diff --git a/composer.json b/composer.json index 6ea6ca7..52a86a5 100644 --- a/composer.json +++ b/composer.json @@ -19,6 +19,7 @@ "cweagans/composer-patches": "^1.7", "drupal/admin_toolbar": "^3.4", "drupal/bootstrap5": "^4.0", + "drupal/color_field": "^3.0", "drupal/config_split": "^2.0", "drupal/core-composer-scaffold": "^10.3", "drupal/core-project-message": "^10.3", @@ -29,6 +30,7 @@ "drupal/gin_login": "^2.1", "drupal/google_tag": "^2.0", "drupal/jsonapi_permission_access": "1.0.1", + "drupal/layout_builder_admin_theme": "^2.0", "drupal/layout_builder_styles": "^2.0", "drupal/mailsystem": "^4.5", "drupal/migrate_plus": "^6.0", diff --git a/composer.lock b/composer.lock index 41a80ef..e5adf06 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "b4ad2bd086bae7631f8cd18f2b6582df", + "content-hash": "f945ec3f41de2e340cab7c38ab502247", "packages": [ { "name": "asm89/stack-cors", @@ -1603,6 +1603,70 @@ "issues": "https://www.drupal.org/project/issues/bootstrap5" } }, + { + "name": "drupal/color_field", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/color_field.git", + "reference": "3.0.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/color_field-3.0.1.zip", + "reference": "3.0.1", + "shasum": "fd2f75db74063f817d81a537221fa1c8398e4d8f" + }, + "require": { + "drupal/core": "^9 || ^10 || ^11" + }, + "require-dev": { + "drupal/core-recommended": "^9 || ^10", + "drupal/feeds": "^3.0@beta", + "drupal/token": "~1.3" + }, + "suggest": { + "bower-asset/jquery-simple-color": "^v1.2.2: Provides JavaScript library necessary for the Color Grid widget", + "bower-asset/spectrum": "^1.8: Provides JavaScript library necessary for Spectrum widget." + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "3.0.1", + "datestamp": "1717506868", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "targoo", + "homepage": "https://www.drupal.org/user/431910", + "role": "Maintainer" + }, + { + "name": "Nick Wilde", + "homepage": "https://www.drupal.org/user/nickwilde", + "role": "Maintainer" + }, + { + "name": "targoo", + "homepage": "https://www.drupal.org/user/431910" + } + ], + "description": "Provides a color field type to store the color value and opacity", + "homepage": "https://www.drupal.org/project/color_field", + "support": { + "source": "https://git.drupalcode.org/project/color_field", + "issues": "https://www.drupal.org/project/issues/color_field?version=8.x" + } + }, { "name": "drupal/config_split", "version": "2.0.1", @@ -2656,6 +2720,54 @@ "source": "https://git.drupalcode.org/project/jsonapi_permission_access" } }, + { + "name": "drupal/layout_builder_admin_theme", + "version": "2.0.2", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/layout_builder_admin_theme.git", + "reference": "2.0.2" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/layout_builder_admin_theme-2.0.2.zip", + "reference": "2.0.2", + "shasum": "331d2a3d7f8b5130268ae089d03bcae59c1b7544" + }, + "require": { + "drupal/core": "^9 || ^10 || ^11" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "2.0.2", + "datestamp": "1723183931", + "security-coverage": { + "status": "covered", + "message": "Covered by Drupal's security advisory policy" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "ivnish", + "homepage": "https://www.drupal.org/user/3547706" + }, + { + "name": "robert.duplock", + "homepage": "https://www.drupal.org/user/3645985" + } + ], + "description": "Makes your Drupal site use the admin theme when using \"Layout builder\".", + "homepage": "https://www.drupal.org/project/layout_builder_admin_theme", + "support": { + "source": "https://git.drupalcode.org/project/layout_builder_admin_theme" + } + }, { "name": "drupal/layout_builder_styles", "version": "2.0.0", diff --git a/config/default/block_content.type.ping_pong.yml b/config/default/block_content.type.ping_pong.yml new file mode 100644 index 0000000..19e4ba3 --- /dev/null +++ b/config/default/block_content.type.ping_pong.yml @@ -0,0 +1,10 @@ +uuid: 62221ff8-bff9-4615-b8b1-b5387c5c5fb8 +langcode: en +status: true +dependencies: { } +_core: + default_config_hash: v_2vrosNagS8cspYwOOTN8d-vS9d2lGbzc0pbifm1go +id: ping_pong +label: 'Ping Pong' +revision: false +description: 'A ping pong component.' diff --git a/config/default/core.entity_form_display.block_content.ping_pong.default.yml b/config/default/core.entity_form_display.block_content.ping_pong.default.yml new file mode 100644 index 0000000..32d8532 --- /dev/null +++ b/config/default/core.entity_form_display.block_content.ping_pong.default.yml @@ -0,0 +1,68 @@ +uuid: cec1a040-81f5-465e-93b0-7f8c1b329a3b +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.field.block_content.ping_pong.field_ping_pong_background_color + - field.field.block_content.ping_pong.field_ping_pong_body + - field.field.block_content.ping_pong.field_ping_pong_cta + - field.field.block_content.ping_pong.field_ping_pong_layout + - field.field.block_content.ping_pong.field_ping_pong_media_alignment + - field.field.block_content.ping_pong.field_ping_pong_media_items + module: + - color_field + - link + - media_library + - text +_core: + default_config_hash: gtqwbxZq9ow8kKCtm8NHPHnhmke26lB-c6DFht_GpEU +id: block_content.ping_pong.default +targetEntityType: block_content +bundle: ping_pong +mode: default +content: + field_ping_pong_background_color: + type: color_field_widget_box + weight: 1 + region: content + settings: + default_colors: '#ac725e,#d06b64,#f83a22,#fa573c,#ff7537,#ffad46,#42d692,#16a765,#7bd148,#b3dc6c,#fbe983' + third_party_settings: { } + field_ping_pong_body: + type: text_textarea + weight: 5 + region: content + settings: + rows: 5 + placeholder: '' + third_party_settings: { } + field_ping_pong_cta: + type: link_default + weight: 26 + region: content + settings: + placeholder_url: '' + placeholder_title: '' + third_party_settings: { } + field_ping_pong_layout: + type: options_select + weight: 2 + region: content + settings: { } + third_party_settings: { } + field_ping_pong_media_alignment: + type: options_select + weight: 3 + region: content + settings: { } + third_party_settings: { } + field_ping_pong_media_items: + type: media_library_widget + weight: 4 + region: content + settings: + media_types: { } + third_party_settings: { } +hidden: + info: true diff --git a/config/default/core.entity_view_display.block_content.ping_pong.default.yml b/config/default/core.entity_view_display.block_content.ping_pong.default.yml new file mode 100644 index 0000000..0343017 --- /dev/null +++ b/config/default/core.entity_view_display.block_content.ping_pong.default.yml @@ -0,0 +1,77 @@ +uuid: ed5314c0-a437-46a6-8f0a-8a09370c01b2 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.field.block_content.ping_pong.field_ping_pong_background_color + - field.field.block_content.ping_pong.field_ping_pong_body + - field.field.block_content.ping_pong.field_ping_pong_cta + - field.field.block_content.ping_pong.field_ping_pong_layout + - field.field.block_content.ping_pong.field_ping_pong_media_alignment + - field.field.block_content.ping_pong.field_ping_pong_media_items + module: + - color_field + - link + - options + - text +_core: + default_config_hash: qTNnUYshVkxTA-MivgwS3w34Vfb_zBdcltV-4FP5yuM +id: block_content.ping_pong.default +targetEntityType: block_content +bundle: ping_pong +mode: default +content: + field_ping_pong_background_color: + type: color_field_formatter_text + label: hidden + settings: + format: hex + opacity: true + third_party_settings: { } + weight: 5 + region: content + field_ping_pong_body: + type: text_default + label: hidden + settings: { } + third_party_settings: { } + weight: 6 + region: content + field_ping_pong_cta: + type: link + label: hidden + settings: + trim_length: 80 + url_only: false + url_plain: false + rel: '' + target: '' + third_party_settings: { } + weight: 11 + region: content + field_ping_pong_layout: + type: list_default + label: hidden + settings: { } + third_party_settings: { } + weight: 8 + region: content + field_ping_pong_media_alignment: + type: list_default + label: hidden + settings: { } + third_party_settings: { } + weight: 9 + region: content + field_ping_pong_media_items: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: ping_pong + link: false + third_party_settings: { } + weight: 10 + region: content +hidden: + search_api_excerpt: true diff --git a/config/default/core.entity_view_display.media.image.ping_pong.yml b/config/default/core.entity_view_display.media.image.ping_pong.yml new file mode 100644 index 0000000..3dc0269 --- /dev/null +++ b/config/default/core.entity_view_display.media.image.ping_pong.yml @@ -0,0 +1,40 @@ +uuid: ad80e641-9853-4131-9802-0394aa966e30 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.ping_pong + - field.field.media.image.field_media_image + - image.style.large + - media.type.image + module: + - image + - layout_builder +third_party_settings: + layout_builder: + enabled: false + allow_custom: false +_core: + default_config_hash: UKOGAdmEK7rEHkH0kBFPubtXhcaXX1YIbPEyGWBUamQ +id: media.image.ping_pong +targetEntityType: media +bundle: image +mode: ping_pong +content: + field_media_image: + type: image + label: visually_hidden + settings: + image_link: '' + image_style: large + image_loading: + attribute: lazy + third_party_settings: { } + weight: 1 + region: content +hidden: + created: true + name: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/config/default/core.entity_view_display.media.video.ping_pong.yml b/config/default/core.entity_view_display.media.video.ping_pong.yml new file mode 100644 index 0000000..933a4e7 --- /dev/null +++ b/config/default/core.entity_view_display.media.video.ping_pong.yml @@ -0,0 +1,42 @@ +uuid: fd852e6e-b857-45f5-9ff9-125ab5611d51 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.ping_pong + - field.field.media.video.field_media_video_file + - media.type.video + module: + - file + - layout_builder +third_party_settings: + layout_builder: + enabled: false + allow_custom: false +_core: + default_config_hash: '-9v9f614kw0DYPI7FNkmMQ3udIrSSWYETpCgSfbcSOo' +id: media.video.ping_pong +targetEntityType: media +bundle: video +mode: ping_pong +content: + field_media_video_file: + type: file_video + label: visually_hidden + settings: + controls: true + autoplay: false + loop: false + multiple_file_display_type: tags + muted: false + width: 640 + height: 480 + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + name: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/config/default/core.entity_view_mode.media.ping_pong.yml b/config/default/core.entity_view_mode.media.ping_pong.yml new file mode 100644 index 0000000..99f3370 --- /dev/null +++ b/config/default/core.entity_view_mode.media.ping_pong.yml @@ -0,0 +1,13 @@ +uuid: 3907b7a9-1d74-4907-bcd5-ec4cc1071ed2 +langcode: en +status: true +dependencies: + module: + - media +_core: + default_config_hash: X_LwtmVNteGDqRvzdmyTFKkmu7Xx6qaCl-6bLrVLNbA +id: media.ping_pong +label: 'Ping Pong' +description: '' +targetEntityType: media +cache: true diff --git a/config/default/core.extension.yml b/config/default/core.extension.yml index b45ae54..715089f 100644 --- a/config/default/core.extension.yml +++ b/config/default/core.extension.yml @@ -7,12 +7,14 @@ module: block_content: 0 breakpoint: 0 ckeditor5: 0 + color_field: 0 config: 0 config_split: 0 contact: 0 contextual: 0 datetime: 0 dblog: 0 + dc_components: 0 editor: 0 field: 0 field_group: 0 @@ -26,6 +28,7 @@ module: history: 0 image: 0 layout_builder: 0 + layout_builder_admin_theme: 0 layout_discovery: 0 link: 0 mailsystem: 0 diff --git a/config/default/field.field.block_content.ping_pong.field_ping_pong_background_color.yml b/config/default/field.field.block_content.ping_pong.field_ping_pong_background_color.yml new file mode 100644 index 0000000..5b573aa --- /dev/null +++ b/config/default/field.field.block_content.ping_pong.field_ping_pong_background_color.yml @@ -0,0 +1,24 @@ +uuid: 31cd8a2a-3bdf-43cd-9a64-43282c7e94be +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_background_color + module: + - color_field +_core: + default_config_hash: ezyxzl4xM1bQQS3_IcAFFRnju-o64WxI1mdyryUuEHs +id: block_content.ping_pong.field_ping_pong_background_color +field_name: field_ping_pong_background_color +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Background Color' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + opacity: 0 +field_type: color_field_type diff --git a/config/default/field.field.block_content.ping_pong.field_ping_pong_body.yml b/config/default/field.field.block_content.ping_pong.field_ping_pong_body.yml new file mode 100644 index 0000000..9726261 --- /dev/null +++ b/config/default/field.field.block_content.ping_pong.field_ping_pong_body.yml @@ -0,0 +1,24 @@ +uuid: 943e8d34-238f-4de9-9196-87ed7785bf74 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_body + module: + - text +_core: + default_config_hash: zPYZcca0J8LOhhlU6GssSI3-driGRHehexRE-UPiXto +id: block_content.ping_pong.field_ping_pong_body +field_name: field_ping_pong_body +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Body' +description: 'The body text of the ping pong.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + allowed_formats: { } +field_type: text_long diff --git a/config/default/field.field.block_content.ping_pong.field_ping_pong_cta.yml b/config/default/field.field.block_content.ping_pong.field_ping_pong_cta.yml new file mode 100644 index 0000000..7dff190 --- /dev/null +++ b/config/default/field.field.block_content.ping_pong.field_ping_pong_cta.yml @@ -0,0 +1,25 @@ +uuid: 03279c7a-a355-4a6e-b9ad-b6c051d97963 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_cta + module: + - link +_core: + default_config_hash: Zy5QbfM6fjLOfXhhNOrabOUFd1V7SmiYmqQpWl22zXM +id: block_content.ping_pong.field_ping_pong_cta +field_name: field_ping_pong_cta +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong CTA' +description: 'CTA Link for the ping pong item.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + title: 1 + link_type: 17 +field_type: link diff --git a/config/default/field.field.block_content.ping_pong.field_ping_pong_layout.yml b/config/default/field.field.block_content.ping_pong.field_ping_pong_layout.yml new file mode 100644 index 0000000..3c79d33 --- /dev/null +++ b/config/default/field.field.block_content.ping_pong.field_ping_pong_layout.yml @@ -0,0 +1,23 @@ +uuid: 71d04346-f3b6-4b11-ac4f-98cd5ad14b35 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_layout + module: + - options +_core: + default_config_hash: Mu1pQL-7h7tnURr0-HGAwF42_JOngkOL73ENvUKNgWg +id: block_content.ping_pong.field_ping_pong_layout +field_name: field_ping_pong_layout +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Layout' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: list_string diff --git a/config/default/field.field.block_content.ping_pong.field_ping_pong_media_alignment.yml b/config/default/field.field.block_content.ping_pong.field_ping_pong_media_alignment.yml new file mode 100644 index 0000000..12bf1df --- /dev/null +++ b/config/default/field.field.block_content.ping_pong.field_ping_pong_media_alignment.yml @@ -0,0 +1,23 @@ +uuid: 00c6c95a-5f80-45c8-ab83-deecd252ce32 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_media_alignment + module: + - options +_core: + default_config_hash: MIm1pQBMqr4VdFFBJxle8GgnFee2Vrmx-0vhJJL2VJs +id: block_content.ping_pong.field_ping_pong_media_alignment +field_name: field_ping_pong_media_alignment +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Media Alignment' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: list_string diff --git a/config/default/field.field.block_content.ping_pong.field_ping_pong_media_items.yml b/config/default/field.field.block_content.ping_pong.field_ping_pong_media_items.yml new file mode 100644 index 0000000..bbabbe0 --- /dev/null +++ b/config/default/field.field.block_content.ping_pong.field_ping_pong_media_items.yml @@ -0,0 +1,33 @@ +uuid: 207b28f1-37af-4c91-9cb1-d75d76ab2277 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_media_items + - media.type.image + - media.type.video +_core: + default_config_hash: KuTVYswdXH2jP5L9LZoK4oNOGA33Wc7TJPIWy3zJsl4 +id: block_content.ping_pong.field_ping_pong_media_items +field_name: field_ping_pong_media_items +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Media Items' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:media' + handler_settings: + target_bundles: + image: image + video: video + sort: + field: _none + direction: ASC + auto_create: false + auto_create_bundle: image +field_type: entity_reference diff --git a/config/default/field.storage.block_content.field_ping_pong_background_color.yml b/config/default/field.storage.block_content.field_ping_pong_background_color.yml new file mode 100644 index 0000000..acea494 --- /dev/null +++ b/config/default/field.storage.block_content.field_ping_pong_background_color.yml @@ -0,0 +1,22 @@ +uuid: 2c91aadc-de94-4014-80b0-0165cb294d7e +langcode: en +status: true +dependencies: + module: + - block_content + - color_field +_core: + default_config_hash: MSvWPCCT4eCIZnbaC6hljsCAcPpF3Li2apqdmtEBPK0 +id: block_content.field_ping_pong_background_color +field_name: field_ping_pong_background_color +entity_type: block_content +type: color_field_type +settings: + format: '#HEXHEX' +module: color_field +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/default/field.storage.block_content.field_ping_pong_body.yml b/config/default/field.storage.block_content.field_ping_pong_body.yml new file mode 100644 index 0000000..b0803d3 --- /dev/null +++ b/config/default/field.storage.block_content.field_ping_pong_body.yml @@ -0,0 +1,21 @@ +uuid: 251a77bd-a105-4525-b528-0d1acdb5dea0 +langcode: en +status: true +dependencies: + module: + - block_content + - text +_core: + default_config_hash: XNZ-wdt5ua4Zyx_XcALhjx1L1D9V376alPCdRmRr5qQ +id: block_content.field_ping_pong_body +field_name: field_ping_pong_body +entity_type: block_content +type: text_long +settings: { } +module: text +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/default/field.storage.block_content.field_ping_pong_cta.yml b/config/default/field.storage.block_content.field_ping_pong_cta.yml new file mode 100644 index 0000000..62e0ccf --- /dev/null +++ b/config/default/field.storage.block_content.field_ping_pong_cta.yml @@ -0,0 +1,21 @@ +uuid: 5f9b0f7a-f3ed-4b92-9558-d02846914aff +langcode: en +status: true +dependencies: + module: + - block_content + - link +_core: + default_config_hash: _arcoZMgCtlP6bGc6BhPadaSLqR-aMGBNq4LCT0gq7U +id: block_content.field_ping_pong_cta +field_name: field_ping_pong_cta +entity_type: block_content +type: link +settings: { } +module: link +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/default/field.storage.block_content.field_ping_pong_layout.yml b/config/default/field.storage.block_content.field_ping_pong_layout.yml new file mode 100644 index 0000000..b6c04dd --- /dev/null +++ b/config/default/field.storage.block_content.field_ping_pong_layout.yml @@ -0,0 +1,38 @@ +uuid: cb0cf63f-b12d-42a4-9ad8-151a6b45e5c4 +langcode: en +status: true +dependencies: + module: + - block_content + - options +_core: + default_config_hash: qSeZZd3J0QDQqjrG9GLWA9lyQ8-TdiDRcApvG7piG4M +id: block_content.field_ping_pong_layout +field_name: field_ping_pong_layout +entity_type: block_content +type: list_string +settings: + allowed_values: + - + value: '50_50' + label: 50-50 + - + value: '67_33' + label: 67-33 + - + value: '33_67' + label: 33-67 + - + value: '25_75' + label: 25-75 + - + value: '75_25' + label: 75-25 + allowed_values_function: '' +module: options +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/default/field.storage.block_content.field_ping_pong_media_alignment.yml b/config/default/field.storage.block_content.field_ping_pong_media_alignment.yml new file mode 100644 index 0000000..0fc6bf3 --- /dev/null +++ b/config/default/field.storage.block_content.field_ping_pong_media_alignment.yml @@ -0,0 +1,29 @@ +uuid: 5aad3453-4210-45e5-a891-949efed0792c +langcode: en +status: true +dependencies: + module: + - block_content + - options +_core: + default_config_hash: a0JdFR0zzMd8kg8LMeiqMCNLmRKyKh12ZsmPQUVhYLE +id: block_content.field_ping_pong_media_alignment +field_name: field_ping_pong_media_alignment +entity_type: block_content +type: list_string +settings: + allowed_values: + - + value: left + label: Left + - + value: right + label: Right + allowed_values_function: '' +module: options +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/default/field.storage.block_content.field_ping_pong_media_items.yml b/config/default/field.storage.block_content.field_ping_pong_media_items.yml new file mode 100644 index 0000000..d908c21 --- /dev/null +++ b/config/default/field.storage.block_content.field_ping_pong_media_items.yml @@ -0,0 +1,22 @@ +uuid: ced369f0-c81f-44c2-9715-c80f73ba58ae +langcode: en +status: true +dependencies: + module: + - block_content + - media +_core: + default_config_hash: Jwsq7a6-H6IvdO7Gnpw9Tm1tBb2O0a9O7DOcWne62KM +id: block_content.field_ping_pong_media_items +field_name: field_ping_pong_media_items +entity_type: block_content +type: entity_reference +settings: + target_type: media +module: core +locked: false +cardinality: -1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/config/default/layout_builder_admin_theme.config.yml b/config/default/layout_builder_admin_theme.config.yml new file mode 100644 index 0000000..9bed4ab --- /dev/null +++ b/config/default/layout_builder_admin_theme.config.yml @@ -0,0 +1,3 @@ +_core: + default_config_hash: G28OpfOStb3binh5JnrnKOrYQfViQi14-GWN8Zp3o20 +lbat_enable_admin_theme: true diff --git a/web/modules/custom/dc_components/components/ping-pong/ping-pong.component.yml b/web/modules/custom/dc_components/components/ping-pong/ping-pong.component.yml new file mode 100644 index 0000000..2054a25 --- /dev/null +++ b/web/modules/custom/dc_components/components/ping-pong/ping-pong.component.yml @@ -0,0 +1,35 @@ +name: Ping Pong +props: + type: object + properties: + mediaAlign: + type: string + title: Media Alignment + description: 'Which side to put media on.' + layout: + type: string + title: Layout + description: 'The layout widths' + enum: ['50-50', '33-66', '66-33', '25-75', '75-25'] + bgColor: + type: string + title: Color + description: 'The background color.' +slots: + headline: + title: Headline + description: This is the headline for the text block. + body: + title: Body + description: This is the body for the text block. + cta: + title: CTA + description: The CTA link. + media: + title: Media + description: The media item(s). + +libraryOverrides: + dependencies: + - core/drupal + - core/once diff --git a/web/modules/custom/dc_components/components/ping-pong/ping-pong.css b/web/modules/custom/dc_components/components/ping-pong/ping-pong.css new file mode 100644 index 0000000..6ad0dd6 --- /dev/null +++ b/web/modules/custom/dc_components/components/ping-pong/ping-pong.css @@ -0,0 +1,95 @@ +.ping-pong-wrapper { + max-height: 600px; + display: flex; + width: 100%; +} + +.ping-pong { + display: flex; + flex-wrap: wrap; +} + +.ping-pong__info { + justify-content: center; + align-items: center; + display: flex; + flex-wrap: wrap; + flex-direction: row; +} + +.ping-pong__info-inner { + width: 65%; + margin: auto; +} + +@media screen and (max-width: 767px) { + .ping-pong__info-inner { + width: 100%; + padding: 30px; + } +} + +.ping-pong__info h2 { + margin: 0; +} + +.ping-pong.right { + flex-direction: row-reverse; +} + +.ping-pong > div { + flex: 1; +} + +@media screen and (max-width: 767px) { + .ping-pong > div { + flex: 1 0 100%; + } +} + +.field--name-field-ping-pong-cta a { + background: rgba(255, 255, 255, 0.66); + padding: 10px 20px; + border-radius: 10px; + transition: background .5s ease; + cursor: pointer; +} + +.field--name-field-ping-pong-cta a:hover { + background: white; +} + +/** slider styles */ +.ping-pong .slide img { + width: 100%; + object-fit: cover; + display: block; + height: 400px; +} + +.ping-pong .slide.active img { + display: block; + opacity: 1; + visibility: visible; + transition: all .5s ease-in-out; +} + +.ping-pong .slide.hide img { + opacity: 0; + visibility: hidden; + transition: all .5s ease-in-out; +} + +.ping-pong .slide img { + display: none; + visibility: hidden; + opacity: 0; + transition: all .5s ease-in-out; +} + +.ping-pong ul.slides { + list-style-type: none; + padding: 0; + margin: 0; + max-height: 100%; +} diff --git a/web/modules/custom/dc_components/components/ping-pong/ping-pong.js b/web/modules/custom/dc_components/components/ping-pong/ping-pong.js new file mode 100644 index 0000000..a71d75f --- /dev/null +++ b/web/modules/custom/dc_components/components/ping-pong/ping-pong.js @@ -0,0 +1,38 @@ +(function (Drupal, once) { + Drupal.behaviors.pingPongSlider = { + + attach: function (context, settings) { + let sliders = once('pingPongSlider', '.slider', context); + sliders.forEach((slider) => { + // get the slides + let slides = slider.querySelectorAll('.slide'); + slides[0].classList.add("active"); + if (slides.length <= 1) { + return; + } + changeSlide(slider); + }); + + function changeSlide(sliderDiv, loop = 1) { + setTimeout(() => { + let slideCount = sliderDiv.querySelectorAll('.slide').length; + let activeSlide = sliderDiv.querySelector('.slide.active'); + let nextSlide = activeSlide.nextElementSibling; + if (loop == slideCount) { + nextSlide = sliderDiv.querySelectorAll('.slide')[0]; + return; + // get the first slide + } + else { + loop++; + activeSlide.classList.toggle('active'); + nextSlide.classList.toggle('active'); + changeSlide(sliderDiv, loop); + } + }, 10000); + } + } + + }; +})(Drupal, once); + diff --git a/web/modules/custom/dc_components/components/ping-pong/ping-pong.twig b/web/modules/custom/dc_components/components/ping-pong/ping-pong.twig new file mode 100644 index 0000000..54b3575 --- /dev/null +++ b/web/modules/custom/dc_components/components/ping-pong/ping-pong.twig @@ -0,0 +1,40 @@ +{# + * Component variables + * + * props: + * layout + * media_alignment + * background_color + * + * slots + * headline + * body + * cta + * media + * + #} +{% set classes = [ + 'ping-pong', + mediaAlign|clean_class +] %} +
+ {{ title_prefix }} + {{ title_suffix }} +
+ {% block media %}{% endblock %} +
+
+
+
+ {% block headline %}{% endblock %} +
+
+ {% block body %}{% endblock %} +
+
+ {% block cta %}{% endblock %} +
+
+
+
+ diff --git a/web/modules/custom/dc_components/config/install/block_content.type.ping_pong.yml b/web/modules/custom/dc_components/config/install/block_content.type.ping_pong.yml new file mode 100644 index 0000000..f5a91da --- /dev/null +++ b/web/modules/custom/dc_components/config/install/block_content.type.ping_pong.yml @@ -0,0 +1,8 @@ +uuid: 62221ff8-bff9-4615-b8b1-b5387c5c5fb8 +langcode: en +status: true +dependencies: { } +id: ping_pong +label: 'Ping Pong' +revision: false +description: 'A ping pong component.' diff --git a/web/modules/custom/dc_components/config/install/core.entity_form_display.block_content.ping_pong.default.yml b/web/modules/custom/dc_components/config/install/core.entity_form_display.block_content.ping_pong.default.yml new file mode 100644 index 0000000..213cd43 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/core.entity_form_display.block_content.ping_pong.default.yml @@ -0,0 +1,66 @@ +uuid: cec1a040-81f5-465e-93b0-7f8c1b329a3b +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.field.block_content.ping_pong.field_ping_pong_background_color + - field.field.block_content.ping_pong.field_ping_pong_body + - field.field.block_content.ping_pong.field_ping_pong_cta + - field.field.block_content.ping_pong.field_ping_pong_layout + - field.field.block_content.ping_pong.field_ping_pong_media_alignment + - field.field.block_content.ping_pong.field_ping_pong_media_items + module: + - color_field + - link + - media_library + - text +id: block_content.ping_pong.default +targetEntityType: block_content +bundle: ping_pong +mode: default +content: + field_ping_pong_background_color: + type: color_field_widget_box + weight: 1 + region: content + settings: + default_colors: '#ac725e,#d06b64,#f83a22,#fa573c,#ff7537,#ffad46,#42d692,#16a765,#7bd148,#b3dc6c,#fbe983' + third_party_settings: { } + field_ping_pong_body: + type: text_textarea + weight: 5 + region: content + settings: + rows: 5 + placeholder: '' + third_party_settings: { } + field_ping_pong_cta: + type: link_default + weight: 26 + region: content + settings: + placeholder_url: '' + placeholder_title: '' + third_party_settings: { } + field_ping_pong_layout: + type: options_select + weight: 2 + region: content + settings: { } + third_party_settings: { } + field_ping_pong_media_alignment: + type: options_select + weight: 3 + region: content + settings: { } + third_party_settings: { } + field_ping_pong_media_items: + type: media_library_widget + weight: 4 + region: content + settings: + media_types: { } + third_party_settings: { } +hidden: + info: true diff --git a/web/modules/custom/dc_components/config/install/core.entity_view_display.block_content.ping_pong.default.yml b/web/modules/custom/dc_components/config/install/core.entity_view_display.block_content.ping_pong.default.yml new file mode 100644 index 0000000..1623603 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/core.entity_view_display.block_content.ping_pong.default.yml @@ -0,0 +1,75 @@ +uuid: ed5314c0-a437-46a6-8f0a-8a09370c01b2 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.field.block_content.ping_pong.field_ping_pong_background_color + - field.field.block_content.ping_pong.field_ping_pong_body + - field.field.block_content.ping_pong.field_ping_pong_cta + - field.field.block_content.ping_pong.field_ping_pong_layout + - field.field.block_content.ping_pong.field_ping_pong_media_alignment + - field.field.block_content.ping_pong.field_ping_pong_media_items + module: + - color_field + - link + - options + - text +id: block_content.ping_pong.default +targetEntityType: block_content +bundle: ping_pong +mode: default +content: + field_ping_pong_background_color: + type: color_field_formatter_text + label: hidden + settings: + format: hex + opacity: true + third_party_settings: { } + weight: 5 + region: content + field_ping_pong_body: + type: text_default + label: hidden + settings: { } + third_party_settings: { } + weight: 6 + region: content + field_ping_pong_cta: + type: link + label: hidden + settings: + trim_length: 80 + url_only: false + url_plain: false + rel: '' + target: '' + third_party_settings: { } + weight: 11 + region: content + field_ping_pong_layout: + type: list_default + label: hidden + settings: { } + third_party_settings: { } + weight: 8 + region: content + field_ping_pong_media_alignment: + type: list_default + label: hidden + settings: { } + third_party_settings: { } + weight: 9 + region: content + field_ping_pong_media_items: + type: entity_reference_entity_view + label: hidden + settings: + view_mode: ping_pong + link: false + third_party_settings: { } + weight: 10 + region: content +hidden: + search_api_excerpt: true diff --git a/web/modules/custom/dc_components/config/install/core.entity_view_display.media.image.ping_pong.yml b/web/modules/custom/dc_components/config/install/core.entity_view_display.media.image.ping_pong.yml new file mode 100644 index 0000000..a1c40e4 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/core.entity_view_display.media.image.ping_pong.yml @@ -0,0 +1,40 @@ +uuid: ad80e641-9853-4131-9802-0394aa966e30 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.ping_pong + - field.field.media.image.field_media_image + - image.style.large + - media.type.image + module: + - image + - layout_builder +third_party_settings: + layout_builder: + enabled: false + allow_custom: false +_core: + default_config_hash: 73xaTNkI5J6sfFcBmNYeuk070X3mQS_iwwWaPYyfG2M +id: media.image.ping_pong +targetEntityType: media +bundle: image +mode: ping_pong +content: + field_media_image: + type: image + label: visually_hidden + settings: + image_link: '' + image_style: large + image_loading: + attribute: lazy + third_party_settings: { } + weight: 1 + region: content +hidden: + created: true + name: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/web/modules/custom/dc_components/config/install/core.entity_view_display.media.video.ping_pong.yml b/web/modules/custom/dc_components/config/install/core.entity_view_display.media.video.ping_pong.yml new file mode 100644 index 0000000..9af3993 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/core.entity_view_display.media.video.ping_pong.yml @@ -0,0 +1,42 @@ +uuid: fd852e6e-b857-45f5-9ff9-125ab5611d51 +langcode: en +status: true +dependencies: + config: + - core.entity_view_mode.media.ping_pong + - field.field.media.video.field_media_video_file + - media.type.video + module: + - file + - layout_builder +third_party_settings: + layout_builder: + enabled: false + allow_custom: false +_core: + default_config_hash: SxvbuGh-6cQMxl9bBV27-hGI46u7ZvwlMm5ObaJMNnw +id: media.video.ping_pong +targetEntityType: media +bundle: video +mode: ping_pong +content: + field_media_video_file: + type: file_video + label: visually_hidden + settings: + controls: true + autoplay: false + loop: false + multiple_file_display_type: tags + muted: false + width: 640 + height: 480 + third_party_settings: { } + weight: 0 + region: content +hidden: + created: true + name: true + search_api_excerpt: true + thumbnail: true + uid: true diff --git a/web/modules/custom/dc_components/config/install/core.entity_view_mode.media.ping_pong.yml b/web/modules/custom/dc_components/config/install/core.entity_view_mode.media.ping_pong.yml new file mode 100644 index 0000000..fcadce4 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/core.entity_view_mode.media.ping_pong.yml @@ -0,0 +1,11 @@ +uuid: 3907b7a9-1d74-4907-bcd5-ec4cc1071ed2 +langcode: en +status: true +dependencies: + module: + - media +id: media.ping_pong +label: 'Ping Pong' +description: '' +targetEntityType: media +cache: true diff --git a/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_background_color.yml b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_background_color.yml new file mode 100644 index 0000000..eeab7c8 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_background_color.yml @@ -0,0 +1,22 @@ +uuid: 31cd8a2a-3bdf-43cd-9a64-43282c7e94be +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_background_color + module: + - color_field +id: block_content.ping_pong.field_ping_pong_background_color +field_name: field_ping_pong_background_color +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Background Color' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + opacity: 0 +field_type: color_field_type diff --git a/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_body.yml b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_body.yml new file mode 100644 index 0000000..1ce59d1 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_body.yml @@ -0,0 +1,22 @@ +uuid: 943e8d34-238f-4de9-9196-87ed7785bf74 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_body + module: + - text +id: block_content.ping_pong.field_ping_pong_body +field_name: field_ping_pong_body +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Body' +description: 'The body text of the ping pong.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + allowed_formats: { } +field_type: text_long diff --git a/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_cta.yml b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_cta.yml new file mode 100644 index 0000000..d7e3e65 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_cta.yml @@ -0,0 +1,23 @@ +uuid: 03279c7a-a355-4a6e-b9ad-b6c051d97963 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_cta + module: + - link +id: block_content.ping_pong.field_ping_pong_cta +field_name: field_ping_pong_cta +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong CTA' +description: 'CTA Link for the ping pong item.' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + title: 1 + link_type: 17 +field_type: link diff --git a/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_layout.yml b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_layout.yml new file mode 100644 index 0000000..d51e8d1 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_layout.yml @@ -0,0 +1,21 @@ +uuid: 71d04346-f3b6-4b11-ac4f-98cd5ad14b35 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_layout + module: + - options +id: block_content.ping_pong.field_ping_pong_layout +field_name: field_ping_pong_layout +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Layout' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: list_string diff --git a/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_media_alignment.yml b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_media_alignment.yml new file mode 100644 index 0000000..b072e75 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_media_alignment.yml @@ -0,0 +1,21 @@ +uuid: 00c6c95a-5f80-45c8-ab83-deecd252ce32 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_media_alignment + module: + - options +id: block_content.ping_pong.field_ping_pong_media_alignment +field_name: field_ping_pong_media_alignment +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Media Alignment' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: { } +field_type: list_string diff --git a/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_media_items.yml b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_media_items.yml new file mode 100644 index 0000000..49449cb --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.field.block_content.ping_pong.field_ping_pong_media_items.yml @@ -0,0 +1,31 @@ +uuid: 207b28f1-37af-4c91-9cb1-d75d76ab2277 +langcode: en +status: true +dependencies: + config: + - block_content.type.ping_pong + - field.storage.block_content.field_ping_pong_media_items + - media.type.image + - media.type.video +id: block_content.ping_pong.field_ping_pong_media_items +field_name: field_ping_pong_media_items +entity_type: block_content +bundle: ping_pong +label: 'Ping Pong Media Items' +description: '' +required: false +translatable: false +default_value: { } +default_value_callback: '' +settings: + handler: 'default:media' + handler_settings: + target_bundles: + image: image + video: video + sort: + field: _none + direction: ASC + auto_create: false + auto_create_bundle: image +field_type: entity_reference diff --git a/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_background_color.yml b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_background_color.yml new file mode 100644 index 0000000..8e2a1e9 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_background_color.yml @@ -0,0 +1,20 @@ +uuid: 2c91aadc-de94-4014-80b0-0165cb294d7e +langcode: en +status: true +dependencies: + module: + - block_content + - color_field +id: block_content.field_ping_pong_background_color +field_name: field_ping_pong_background_color +entity_type: block_content +type: color_field_type +settings: + format: '#HEXHEX' +module: color_field +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_body.yml b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_body.yml new file mode 100644 index 0000000..0d9882c --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_body.yml @@ -0,0 +1,19 @@ +uuid: 251a77bd-a105-4525-b528-0d1acdb5dea0 +langcode: en +status: true +dependencies: + module: + - block_content + - text +id: block_content.field_ping_pong_body +field_name: field_ping_pong_body +entity_type: block_content +type: text_long +settings: { } +module: text +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_cta.yml b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_cta.yml new file mode 100644 index 0000000..2572b8b --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_cta.yml @@ -0,0 +1,19 @@ +uuid: 5f9b0f7a-f3ed-4b92-9558-d02846914aff +langcode: en +status: true +dependencies: + module: + - block_content + - link +id: block_content.field_ping_pong_cta +field_name: field_ping_pong_cta +entity_type: block_content +type: link +settings: { } +module: link +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_layout.yml b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_layout.yml new file mode 100644 index 0000000..09538d0 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_layout.yml @@ -0,0 +1,36 @@ +uuid: cb0cf63f-b12d-42a4-9ad8-151a6b45e5c4 +langcode: en +status: true +dependencies: + module: + - block_content + - options +id: block_content.field_ping_pong_layout +field_name: field_ping_pong_layout +entity_type: block_content +type: list_string +settings: + allowed_values: + - + value: '50_50' + label: 50-50 + - + value: '67_33' + label: 67-33 + - + value: '33_67' + label: 33-67 + - + value: '25_75' + label: 25-75 + - + value: '75_25' + label: 75-25 + allowed_values_function: '' +module: options +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_media_alignment.yml b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_media_alignment.yml new file mode 100644 index 0000000..88cf565 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_media_alignment.yml @@ -0,0 +1,27 @@ +uuid: 5aad3453-4210-45e5-a891-949efed0792c +langcode: en +status: true +dependencies: + module: + - block_content + - options +id: block_content.field_ping_pong_media_alignment +field_name: field_ping_pong_media_alignment +entity_type: block_content +type: list_string +settings: + allowed_values: + - + value: left + label: Left + - + value: right + label: Right + allowed_values_function: '' +module: options +locked: false +cardinality: 1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_media_items.yml b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_media_items.yml new file mode 100644 index 0000000..1def439 --- /dev/null +++ b/web/modules/custom/dc_components/config/install/field.storage.block_content.field_ping_pong_media_items.yml @@ -0,0 +1,20 @@ +uuid: ced369f0-c81f-44c2-9715-c80f73ba58ae +langcode: en +status: true +dependencies: + module: + - block_content + - media +id: block_content.field_ping_pong_media_items +field_name: field_ping_pong_media_items +entity_type: block_content +type: entity_reference +settings: + target_type: media +module: core +locked: false +cardinality: -1 +translatable: true +indexes: { } +persist_with_no_fields: false +custom_storage: false diff --git a/web/modules/custom/dc_components/dc_components.info.yml b/web/modules/custom/dc_components/dc_components.info.yml new file mode 100644 index 0000000..7c56f85 --- /dev/null +++ b/web/modules/custom/dc_components/dc_components.info.yml @@ -0,0 +1,5 @@ +name: DC Component Library +description: 'Components for use on a site.' +type: module +package: custom +core_version_requirement: ^10.3 || ^11 diff --git a/web/modules/custom/dc_components/dc_components.libraries.yml b/web/modules/custom/dc_components/dc_components.libraries.yml new file mode 100644 index 0000000..0201f4e --- /dev/null +++ b/web/modules/custom/dc_components/dc_components.libraries.yml @@ -0,0 +1,12 @@ +swiffy: + theme: + css: + libraries/swiffy-slider.min.css: { minified: true } + js: + libraries/swiffy-slider.min.js: { minified: true } +glide: + theme: + css: + libraries/glide.core.min.css: { minified: true } + js: + libraries/glide.min.js: { minified: true } diff --git a/web/modules/custom/dc_components/dc_components.module b/web/modules/custom/dc_components/dc_components.module new file mode 100644 index 0000000..7ac9c67 --- /dev/null +++ b/web/modules/custom/dc_components/dc_components.module @@ -0,0 +1,17 @@ + [ + 'render element' => 'elements', + 'base hook' => 'block', + ], + 'field__block_content__field_ping_pong_media_items__ping_pong' => [ + 'render element' => 'elements', + 'base hook' => 'field' + ] + ]; +} diff --git a/web/modules/custom/dc_components/libraries/glide.core.min.css b/web/modules/custom/dc_components/libraries/glide.core.min.css new file mode 100644 index 0000000..4f611b3 --- /dev/null +++ b/web/modules/custom/dc_components/libraries/glide.core.min.css @@ -0,0 +1 @@ +.glide{position:relative;width:100%;box-sizing:border-box}.glide *{box-sizing:inherit}.glide__track{overflow:hidden}.glide__slides{position:relative;width:100%;list-style:none;backface-visibility:hidden;transform-style:preserve-3d;touch-action:pan-Y;overflow:hidden;margin:0;padding:0;white-space:nowrap;display:flex;flex-wrap:nowrap;will-change:transform}.glide__slides--dragging{user-select:none}.glide__slide{width:100%;height:100%;flex-shrink:0;white-space:normal;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.glide__slide a{user-select:none;-webkit-user-drag:none;-moz-user-select:none;-ms-user-select:none}.glide__arrows{-webkit-touch-callout:none;user-select:none}.glide__bullets{-webkit-touch-callout:none;user-select:none}.glide--rtl{direction:rtl}/*# sourceMappingURL=glide.core.min.css.map */ diff --git a/web/modules/custom/dc_components/libraries/glide.min.js b/web/modules/custom/dc_components/libraries/glide.min.js new file mode 100644 index 0000000..7f38c67 --- /dev/null +++ b/web/modules/custom/dc_components/libraries/glide.min.js @@ -0,0 +1,6 @@ +/*! + * Glide.js v3.6.2 + * (c) 2013-2024 Jędrzej Chałubek (https://github.com/jedrzejchalubek/) + * Released under the MIT License. + */ +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Glide=e()}(this,(function(){"use strict";function t(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function e(e){for(var n=1;n0&&void 0!==arguments[0]?arguments[0]:{};i(this,t),this.events=e,this.hop=e.hasOwnProperty}return o(t,[{key:"on",value:function(t,e){if(!w(t)){this.hop.call(this.events,t)||(this.events[t]=[]);var n=this.events[t].push(e)-1;return{remove:function(){delete this.events[t][n]}}}for(var i=0;i1&&void 0!==arguments[1]?arguments[1]:{};i(this,t),this._c={},this._t=[],this._e=new O,this.disabled=!1,this.selector=e,this.settings=S(h,n),this.index=this.settings.startAt}return o(t,[{key:"mount",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this._e.emit("mount.before"),g(t)?this._c=_(this,t,this._e):v("You need to provide a object on `mount()`"),this._e.emit("mount.after"),this}},{key:"mutate",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];return w(t)?this._t=t:v("You need to provide a array on `mutate()`"),this}},{key:"update",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return this.settings=S(this.settings,t),t.hasOwnProperty("startAt")&&(this.index=t.startAt),this._e.emit("update"),this}},{key:"go",value:function(t){return this._c.Run.make(t),this}},{key:"move",value:function(t){return this._c.Transition.disable(),this._c.Move.make(t),this}},{key:"destroy",value:function(){return this._e.emit("destroy"),this}},{key:"play",value:function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0];return t&&(this.settings.autoplay=t),this._e.emit("play"),this}},{key:"pause",value:function(){return this._e.emit("pause"),this}},{key:"disable",value:function(){return this.disabled=!0,this}},{key:"enable",value:function(){return this.disabled=!1,this}},{key:"on",value:function(t,e){return this._e.on(t,e),this}},{key:"isType",value:function(t){return this.settings.type===t}},{key:"settings",get:function(){return this._o},set:function(t){g(t)?this._o=t:v("Options must be an `object` instance.")}},{key:"index",get:function(){return this._i},set:function(t){this._i=p(t)}},{key:"type",get:function(){return this.settings.type}},{key:"disabled",get:function(){return this._d},set:function(t){this._d=!!t}}]),t}();function T(){return(new Date).getTime()}function x(t,e){var n,i,r,o,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},u=0,a=function(){u=!1===s.leading?0:T(),n=null,o=t.apply(i,r),n||(i=r=null)},c=function(){var c=T();u||!1!==s.leading||(u=c);var l=e-(c-u);return i=this,r=arguments,l<=0||l>e?(n&&(clearTimeout(n),n=null),u=c,o=t.apply(i,r),n||(i=r=null)):n||!1===s.trailing||(n=setTimeout(a,l)),o};return c.cancel=function(){clearTimeout(n),u=0,n=i=r=null},c}var j={ltr:["marginLeft","marginRight"],rtl:["marginRight","marginLeft"]};function A(t){if(t&&t.parentNode){for(var e=t.parentNode.firstChild,n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}return[]}function P(t){return Array.prototype.slice.call(t)}var R=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};i(this,t),this.listeners=e}return o(t,[{key:"on",value:function(t,e,n){var i=arguments.length>3&&void 0!==arguments[3]&&arguments[3];m(t)&&(t=[t]);for(var r=0;r2&&void 0!==arguments[2]&&arguments[2];m(t)&&(t=[t]);for(var i=0;i":"<","<":">","=":"="};function z(t,e){return{modify:function(t){return e.Direction.is("rtl")?-t:t}}}function C(t,e){return{modify:function(t){var n=Math.floor(t/e.Sizes.slideWidth);return t+e.Gaps.value*n}}}function M(t,e){return{modify:function(t){return t+e.Clones.grow/2}}}function D(t,e){return{modify:function(n){if(t.settings.focusAt>=0){var i=e.Peek.value;return g(i)?n-i.before:n-i}return n}}}function B(t,e){return{modify:function(n){var i=e.Gaps.value,r=e.Sizes.width,o=t.settings.focusAt,s=e.Sizes.slideWidth;return"center"===o?n-(r/2-s/2):n-s*o-i*o}}}var W=!1;try{var q=Object.defineProperty({},"passive",{get:function(){W=!0}});window.addEventListener("testPassive",null,q),window.removeEventListener("testPassive",null,q)}catch(t){}var I=W,V=["touchstart","mousedown"],G=["touchmove","mousemove"],F=["touchend","touchcancel","mouseup","mouseleave"],N=["mousedown","mousemove","mouseup","mouseleave"];var Y='[data-glide-el^="controls"]',X="".concat(Y,' [data-glide-dir*="<"]'),K="".concat(Y,' [data-glide-dir*=">"]');function J(t){return g(t)?(e=t,Object.keys(e).sort().reduce((function(t,n){return t[n]=e[n],t[n],t}),{})):(v("Breakpoints option must be an object"),{});var e}var Q={Html:function(t,e,n){var i={mount:function(){this.root=t.selector,this.track=this.root.querySelector('[data-glide-el="track"]'),this.collectSlides()},collectSlides:function(){this.slides=P(this.wrapper.children).filter((function(e){return!e.classList.contains(t.settings.classes.slide.clone)}))}};return k(i,"root",{get:function(){return i._r},set:function(t){m(t)&&(t=document.querySelector(t)),null!==t?i._r=t:v("Root element must be a existing Html node")}}),k(i,"track",{get:function(){return i._t},set:function(t){i._t=t}}),k(i,"wrapper",{get:function(){return i.track.children[0]}}),n.on("update",(function(){i.collectSlides()})),i},Translate:function(t,e,n){var i={set:function(n){var i=function(t,e,n){var i=[C,M,D,B].concat(t._t,[z]);return{mutate:function(r){for(var o=0;o")||e.Run.isOffset("|>")?n+(i-r):(i+r)%n},getTravelDistance:function(){var n=e.Sizes.slideWidth*t.settings.perView;return e.Run.isOffset(">")||e.Run.isOffset("|>")?-1*n:n}};return n.on("move",(function(r){if(!t.isType("carousel")||!e.Run.isOffset())return i.set(r.movement);e.Transition.after((function(){n.emit("translate.jump"),i.set(e.Sizes.slideWidth*t.index)}));var o=e.Sizes.slideWidth*e.Translate.getStartIndex();return i.set(o-e.Translate.getTravelDistance())})),n.on("destroy",(function(){i.remove()})),i},Transition:function(t,e,n){var i=!1,r={compose:function(e){var n=t.settings;return i?"".concat(e," 0ms ").concat(n.animationTimingFunc):"".concat(e," ").concat(this.duration,"ms ").concat(n.animationTimingFunc)},set:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"transform";e.Html.wrapper.style.transition=this.compose(t)},remove:function(){e.Html.wrapper.style.transition=""},after:function(t){setTimeout((function(){t()}),this.duration)},enable:function(){i=!1,this.set()},disable:function(){i=!0,this.set()}};return k(r,"duration",{get:function(){var n=t.settings;return t.isType("slider")&&e.Run.offset?n.rewindDuration:n.animationDuration}}),n.on("move",(function(){r.set()})),n.on(["build.before","resize","translate.jump"],(function(){r.disable()})),n.on("run",(function(){r.enable()})),n.on("destroy",(function(){r.remove()})),r},Direction:function(t,e,n){var i={mount:function(){this.value=t.settings.direction},resolve:function(t){var e=t.slice(0,1);return this.is("rtl")?t.split(e).join(L[e]):t},is:function(t){return this.value===t},addClass:function(){e.Html.root.classList.add(t.settings.classes.direction[this.value])},removeClass:function(){e.Html.root.classList.remove(t.settings.classes.direction[this.value])}};return k(i,"value",{get:function(){return i._v},set:function(t){E.indexOf(t)>-1?i._v=t:v("Direction value must be `ltr` or `rtl`")}}),n.on(["destroy","update"],(function(){i.removeClass()})),n.on("update",(function(){i.mount()})),n.on(["build.before","update"],(function(){i.addClass()})),i},Peek:function(t,e,n){var i={mount:function(){this.value=t.settings.peek}};return k(i,"value",{get:function(){return i._v},set:function(t){g(t)?(t.before=p(t.before),t.after=p(t.after)):t=p(t),i._v=t}}),k(i,"reductor",{get:function(){var e=i.value,n=t.settings.perView;return g(e)?e.before/n+e.after/n:2*e/n}}),n.on(["resize","update"],(function(){i.mount()})),i},Sizes:function(t,e,n){var i={setupSlides:function(){for(var t="".concat(this.slideWidth,"px"),n=e.Html.slides,i=0;i0&&void 0!==arguments[0]?arguments[0]:0;this.offset=i,n.emit("move",{movement:this.value}),e.Transition.after((function(){n.emit("move.after",{movement:t.value})}))}};return k(i,"offset",{get:function(){return i._o},set:function(t){i._o=b(t)?0:p(t)}}),k(i,"translate",{get:function(){return e.Sizes.slideWidth*t.index}}),k(i,"value",{get:function(){var t=this.offset,n=this.translate;return e.Direction.is("rtl")?n+t:n-t}}),n.on(["build.before","run"],(function(){i.make()})),i},Clones:function(t,e,n){var i={mount:function(){this.items=[],t.isType("carousel")&&(this.items=this.collect())},collect:function(){var n=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],i=e.Html.slides,r=t.settings,o=r.perView,s=r.classes,u=r.cloningRatio;if(i.length>0)for(var a=+!!t.settings.peek,c=o+a+Math.round(o/2),l=i.slice(0,c).reverse(),f=i.slice(-1*c),d=0;dn?void(t.index=n):void(t.index=r);if(">"!==o||">"!==r)if("<"!==o||"<"!==r){if("|"===o&&(s=t.settings.perView||1),">"===o||"|"===o&&">"===r){var u=function(e){var n=t.index;if(t.isType("carousel"))return n+e;return n+(e-n%e)}(s);return u>n&&(this._o=!0),void(t.index=function(e,n){var r=i.length;if(e<=r)return e;if(t.isType("carousel"))return e-(r+1);if(t.settings.rewind)return i.isBound()&&!i.isEnd()?r:0;if(i.isBound())return r;return Math.floor(r/n)*n}(u,s))}if("<"===o||"|"===o&&"<"===r){var a=function(e){var n=t.index;if(t.isType("carousel"))return n-e;return(Math.ceil(n/e)-1)*e}(s);return a<0&&(this._o=!0),void(t.index=function(e,n){var r=i.length;if(e>=0)return e;if(t.isType("carousel"))return e+(r+1);if(t.settings.rewind)return i.isBound()&&i.isStart()?r:Math.floor(r/n)*n;return 0}(a,s))}v("Invalid direction pattern [".concat(o).concat(r,"] has been used"))}else t.index=0;else t.index=n},isStart:function(){return t.index<=0},isEnd:function(){return t.index>=this.length},isOffset:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:void 0;return t?!!this._o&&("|>"===t?"|"===this.move.direction&&">"===this.move.steps:"|<"===t?"|"===this.move.direction&&"<"===this.move.steps:this.move.direction===t):this._o},isBound:function(){return t.isType("slider")&&"center"!==t.settings.focusAt&&t.settings.bound}};return k(i,"move",{get:function(){return this._m},set:function(t){var e=t.substr(1);this._m={direction:t.substr(0,1),steps:e?p(e)?p(e):e:0}}}),k(i,"length",{get:function(){var n=t.settings,i=e.Html.slides.length;return this.isBound()?i-1-(p(n.perView)-1)+p(n.focusAt):i-1}}),k(i,"offset",{get:function(){return this._o}}),i},Swipe:function(t,e,n){var i=new R,r=0,o=0,s=0,u=!1,a=!!I&&{passive:!0},c={mount:function(){this.bindSwipeStart()},start:function(e){if(!u&&!t.disabled){this.disable();var i=this.touches(e);r=null,o=p(i.pageX),s=p(i.pageY),this.bindSwipeMove(),this.bindSwipeEnd(),n.emit("swipe.start")}},move:function(i){if(!t.disabled){var u=t.settings,a=u.touchAngle,c=u.touchRatio,l=u.classes,f=this.touches(i),d=p(f.pageX)-o,h=p(f.pageY)-s,v=Math.abs(d<<2),m=Math.abs(h<<2),g=Math.sqrt(v+m),y=Math.sqrt(m);if(!(180*(r=Math.asin(y/g))/Math.PIf&&h"))):e.Move.make(),e.Html.root.classList.remove(c.dragging),this.unbindSwipeMove(),this.unbindSwipeEnd(),n.emit("swipe.end")}},bindSwipeStart:function(){var n=this,r=t.settings,o=r.swipeThreshold,s=r.dragThreshold;o&&i.on(V[0],e.Html.wrapper,(function(t){n.start(t)}),a),s&&i.on(V[1],e.Html.wrapper,(function(t){n.start(t)}),a)},unbindSwipeStart:function(){i.off(V[0],e.Html.wrapper,a),i.off(V[1],e.Html.wrapper,a)},bindSwipeMove:function(){var n=this;i.on(G,e.Html.wrapper,x((function(t){n.move(t)}),t.settings.throttle),a)},unbindSwipeMove:function(){i.off(G,e.Html.wrapper,a)},bindSwipeEnd:function(){var t=this;i.on(F,e.Html.wrapper,(function(e){t.end(e)}))},unbindSwipeEnd:function(){i.off(F,e.Html.wrapper)},touches:function(t){return N.indexOf(t.type)>-1?t:t.touches[0]||t.changedTouches[0]},threshold:function(e){var n=t.settings;return N.indexOf(e.type)>-1?n.dragThreshold:n.swipeThreshold},enable:function(){return u=!1,e.Transition.enable(),this},disable:function(){return u=!0,e.Transition.disable(),this}};return n.on("build.after",(function(){e.Html.root.classList.add(t.settings.classes.swipeable)})),n.on("destroy",(function(){c.unbindSwipeStart(),c.unbindSwipeMove(),c.unbindSwipeEnd(),i.destroy()})),c},Images:function(t,e,n){var i=new R,r={mount:function(){this.bind()},bind:function(){i.on("dragstart",e.Html.wrapper,this.dragstart)},unbind:function(){i.off("dragstart",e.Html.wrapper)},dragstart:function(t){t.preventDefault()}};return n.on("destroy",(function(){r.unbind(),i.destroy()})),r},Anchors:function(t,e,n){var i=new R,r=!1,o=!1,s={mount:function(){this._a=e.Html.wrapper.querySelectorAll("a"),this.bind()},bind:function(){i.on("click",e.Html.wrapper,this.click)},unbind:function(){i.off("click",e.Html.wrapper)},click:function(t){o&&(t.stopPropagation(),t.preventDefault())},detach:function(){if(o=!0,!r){for(var t=0;t",ArrowLeft:"<"}[n.code])))}};return n.on(["destroy","update"],(function(){r.unbind()})),n.on("update",(function(){r.mount()})),n.on("destroy",(function(){i.destroy()})),r},Autoplay:function(t,e,n){var i=new R,r={mount:function(){this.enable(),this.start(),t.settings.hoverpause&&this.bind()},enable:function(){this._e=!0},disable:function(){this._e=!1},start:function(){var i=this;this._e&&(this.enable(),t.settings.autoplay&&b(this._i)&&(this._i=setInterval((function(){i.stop(),e.Run.make(">"),i.start(),n.emit("autoplay")}),this.time)))},stop:function(){this._i=clearInterval(this._i)},bind:function(){var t=this;i.on("mouseover",e.Html.root,(function(){t._e&&t.stop()})),i.on("mouseout",e.Html.root,(function(){t._e&&t.start()}))},unbind:function(){i.off(["mouseover","mouseout"],e.Html.root)}};return k(r,"time",{get:function(){var n=e.Html.slides[t.index].getAttribute("data-glide-autoplay");return p(n||t.settings.autoplay)}}),n.on(["destroy","update"],(function(){r.unbind()})),n.on(["run.before","swipe.start","update"],(function(){r.stop()})),n.on(["pause","destroy"],(function(){r.disable(),r.stop()})),n.on(["run.after","swipe.end"],(function(){r.start()})),n.on(["play"],(function(){r.enable(),r.start()})),n.on("update",(function(){r.mount()})),n.on("destroy",(function(){i.destroy()})),r},Breakpoints:function(t,e,n){var i=new R,r=t.settings,o=J(r.breakpoints),s=Object.assign({},r),u={match:function(t){if(void 0!==window.matchMedia)for(var e in t)if(t.hasOwnProperty(e)&&window.matchMedia("(max-width: ".concat(e,"px)")).matches)return t[e];return s}};return Object.assign(r,u.match(o)),i.on("resize",window,x((function(){t.settings=S(r,u.match(o))}),t.settings.throttle)),n.on("update",(function(){o=J(o),s=Object.assign({},r)})),n.on("destroy",(function(){i.off("resize",window)})),u}},U=function(t){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&a(t,e)}(n,t);var e=l(n);function n(){return i(this,n),e.apply(this,arguments)}return o(n,[{key:"mount",value:function(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return d(u(n.prototype),"mount",this).call(this,Object.assign({},Q,t))}}]),n}(H);return U})); diff --git a/web/modules/custom/dc_components/libraries/swiffy-slider.min.css b/web/modules/custom/dc_components/libraries/swiffy-slider.min.css new file mode 100644 index 0000000..2844d3c --- /dev/null +++ b/web/modules/custom/dc_components/libraries/swiffy-slider.min.css @@ -0,0 +1,2 @@ +.swiffy-slider{position:relative;display:block;width:100%;--swiffy-slider-snap-align:center;--swiffy-slider-item-width:100%;--swiffy-slider-item-gap:1rem;--swiffy-slider-item-reveal:0rem;--swiffy-slider-item-ratio:2/1;--swiffy-slider-item-count:1;--swiffy-slider-nav-light:#fff;--swiffy-slider-nav-dark:#333;--swiffy-slider-nav-zoom:1;--swiffy-slider-track-opacity:0.1;--swiffy-slider-track-height:0;--swiffy-slider-nav-outside-size:3.5rem;--swiffy-slider-indicator-outside-size:1.5rem;--swiffy-slider-animation-duration:.75s;--swiffy-slider-animation-delay:0s;--swiffy-slider-animation-timing:ease-in-out}.swiffy-slider,.swiffy-slider::after,.swiffy-slider::before{box-sizing:border-box}.swiffy-slider ::-webkit-scrollbar{height:var(--swiffy-slider-track-height)}.swiffy-slider ::-webkit-scrollbar-track{background:rgba(0,0,0,var(--swiffy-slider-track-opacity))}.swiffy-slider ::-webkit-scrollbar-thumb{background:rgba(0,0,0,.4);border-radius:1rem}.swiffy-slider ::-webkit-scrollbar-thumb:hover{background:rgba(0,0,0,.6)}.slider-container{--swiffy-slider-item-gap-totalwidth:calc(var(--swiffy-slider-item-gap) * (var(--swiffy-slider-item-count) - 1));--swiffy-slider-item-width:calc((100% - var(--swiffy-slider-item-reveal) - var(--swiffy-slider-item-gap-totalwidth)) / var(--swiffy-slider-item-count));overflow-x:auto;-webkit-overflow-scrolling:touch;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;scroll-behavior:smooth;display:grid;align-items:center;height:100%;grid:auto/auto-flow -webkit-max-content;grid:auto/auto-flow max-content;grid-auto-rows:100%;grid-auto-columns:var(--swiffy-slider-item-width);grid-auto-flow:column;grid-gap:var(--swiffy-slider-item-gap);list-style:none;margin:0;padding:0;scrollbar-width:none;scrollbar-color:rgba(0,0,0,.4) rgba(0,0,0,var(--swiffy-slider-track-opacity));background-clip:padding-box}.slider-container>*{scroll-snap-align:var(--swiffy-slider-snap-align);position:relative;width:100%;height:100%}.slider-item-helper .slider-container>*{background-size:cover;background-color:#e1e1e1;background-position:50% 50%;display:flex;justify-content:center;align-items:center}.slider-item-helper:not(.slider-item-ratio) .slider-container>*{min-height:20rem}.slider-item-ratio .slider-container>*>*{position:absolute;top:0;left:0;width:100%;height:100%;-o-object-fit:cover;object-fit:cover}.slider-item-ratio-contain .slider-container>*>*{-o-object-fit:contain;object-fit:contain}.slider-item-ratio .slider-container>::after{display:block;padding-top:calc(100% / (var(--swiffy-slider-item-ratio)));content:""}.slider-item-ratio-32x9{--swiffy-slider-item-ratio:32/9}.slider-item-ratio-21x9{--swiffy-slider-item-ratio:21/9}.slider-item-ratio-16x9{--swiffy-slider-item-ratio:16/9}.slider-item-ratio-4x3{--swiffy-slider-item-ratio:4/3}.slider-item-ratio-2x1{--swiffy-slider-item-ratio:2/1}.slider-item-ratio-1x1{--swiffy-slider-item-ratio:1/1}.slider-item-ratio-3x4{--swiffy-slider-item-ratio:3/4}.slider-nav-scrollbar{--swiffy-slider-track-height:0.5rem}.slider-nav-scrollbar .slider-container{scrollbar-width:thin}.slider-nav-nodelay .slider-container{scroll-behavior:auto}.slider-indicators{position:absolute;right:2rem;bottom:0;left:2rem;display:flex;justify-content:center;padding:0;margin-bottom:1rem;list-style:none}.slider-nav-scrollbar .slider-indicators{margin-bottom:calc(1rem + var(--swiffy-slider-track-height))}.slider-indicators>.active{opacity:1}.swiffy-slider.slider-indicators-outside .slider-nav{margin-bottom:var(--swiffy-slider-indicator-outside-size)}.swiffy-slider.slider-indicators-outside{padding-bottom:var(--swiffy-slider-indicator-outside-size)}.swiffy-slider.slider-indicators-outside .slider-indicators,.swiffy-slider.slider-indicators-outside.slider-indicators{margin-bottom:0}.slider-indicators>*{box-sizing:content-box;flex:0 1 auto;width:2rem;height:.2rem;padding:0;border:.4rem solid transparent;cursor:pointer;background-color:#fff;background-clip:padding-box;opacity:.5;transition:opacity .4s ease}.slider-indicators-square .slider-indicators>*,.slider-indicators-square.slider-indicators>*{width:.5rem;height:.5rem;border:.4rem solid transparent}.slider-indicators-round .slider-indicators>*,.slider-indicators-round.slider-indicators>*{width:.5rem;height:.5rem;border:.4rem solid transparent;border-radius:50%}.slider-indicators-highlight .slider-indicators>.active,.slider-indicators-highlight.slider-indicators>.active{border:.33rem solid transparent;padding:.07rem}.slider-nav{position:absolute;top:0;left:0;bottom:0;border:0;background-color:transparent;cursor:pointer;padding:0;visibility:hidden;opacity:.8;transition:visibility .1s,opacity .2s linear;margin-bottom:var(--swiffy-slider-track-height);display:flex;align-items:center;padding:0 .5rem;-webkit-filter:drop-shadow(0 0 .5rem rgba(0, 0, 0, .5));filter:drop-shadow(0 0 .5rem rgba(0, 0, 0, .5));transform:scale(var(--swiffy-slider-nav-zoom))}.slider-nav::before{position:absolute;content:"";padding:.5rem;width:3rem;height:3rem}.slider-nav::after{content:"";-webkit-mask:url("data:image/svg+xml,");mask:url("data:image/svg+xml,");-webkit-mask-size:cover;mask-size:cover;background-color:var(--swiffy-slider-nav-light);background-origin:content-box;width:3rem;height:3rem}.slider-nav-arrow .slider-nav::after{-webkit-mask:url("data:image/svg+xml,");mask:url("data:image/svg+xml,")}.slider-nav-chevron .slider-nav::after{-webkit-mask:url("data:image/svg+xml,");mask:url("data:image/svg+xml,")}.slider-nav-caret .slider-nav::after{-webkit-mask:url("data:image/svg+xml,");mask:url("data:image/svg+xml,")}.slider-nav-caretfill .slider-nav::after{-webkit-mask:url("data:image/svg+xml,");mask:url("data:image/svg+xml,")}.swiffy-slider:hover .slider-nav{visibility:visible}.swiffy-slider.slider-nav-autohide.slider-item-first-visible .slider-nav:not(.slider-nav-next){visibility:hidden}.swiffy-slider.slider-nav-autohide.slider-item-last-visible .slider-nav.slider-nav-next{visibility:hidden}.slider-nav-outside .slider-container{margin:0 var(--swiffy-slider-nav-outside-size)}.slider-nav-outside .slider-nav{padding:0}.swiffy-slider .slider-nav:hover{opacity:1}.slider-nav-square .slider-nav{padding:0}.slider-nav-round .slider-nav::before,.slider-nav-square .slider-nav::before{background-color:var(--swiffy-slider-nav-light)}.slider-nav-round .slider-nav::after,.slider-nav-square .slider-nav::after{background-color:var(--swiffy-slider-nav-dark);width:2rem;height:2rem;margin:.5rem}.slider-nav-round .slider-nav::before{border-radius:50%}.slider-nav-round .slider-nav::after{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' %3E%3Cpath fill-rule='evenodd' d='M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8z'%3E%3C/path%3E%3C/svg%3E");mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' %3E%3Cpath fill-rule='evenodd' d='M15 8a.5.5 0 0 0-.5-.5H2.707l3.147-3.146a.5.5 0 1 0-.708-.708l-4 4a.5.5 0 0 0 0 .708l4 4a.5.5 0 0 0 .708-.708L2.707 8.5H14.5A.5.5 0 0 0 15 8z'%3E%3C/path%3E%3C/svg%3E")}.slider-nav-dark .slider-nav::after{background-color:var(--swiffy-slider-nav-dark)}.slider-nav-dark.slider-nav-round .slider-nav::before,.slider-nav-dark.slider-nav-square .slider-nav::before{background-color:var(--swiffy-slider-nav-dark)}.slider-nav-dark.slider-nav-round .slider-nav::after,.slider-nav-dark.slider-nav-square .slider-nav::after{background-color:var(--swiffy-slider-nav-light)}.slider-nav-sm{--swiffy-slider-nav-zoom:.75;--swiffy-slider-nav-outside-size:2.5rem}.slider-nav.slider-nav-next::after{transform:rotate(180deg)}.slider-nav.slider-nav-next{right:0;left:unset}.slider-nav-visible .slider-nav{visibility:visible}.slider-nav-dark .slider-nav{opacity:.6}.slider-indicators-dark .slider-indicators>*,.slider-indicators-dark.slider-indicators>*{-webkit-filter:invert(1);filter:invert(1)}.slider-item-snapstart{--swiffy-slider-snap-align:start}.slider-item-nosnap{--swiffy-slider-snap-align:unset}.slider-item-nogap{--swiffy-slider-item-gap:0rem}.slider-item-reveal{--swiffy-slider-item-reveal:8rem}.slider-item-snapstart.slider-item-reveal{--swiffy-slider-item-reveal:4rem}.slider-item-show2{--swiffy-slider-item-count:2}.slider-item-show3{--swiffy-slider-item-count:3}.slider-item-show4{--swiffy-slider-item-count:4}.slider-item-show5{--swiffy-slider-item-count:5}.slider-item-show6{--swiffy-slider-item-count:6}.slider-nav-mousedrag .slider-container{cursor:-webkit-grab;cursor:grab}.slider-nav-mousedrag.dragging .slider-container{-ms-scroll-snap-type:unset;scroll-snap-type:unset;scroll-behavior:unset;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.slider-nav-mousedrag.dragging .slider-nav{visibility:hidden}@media (hover:hover){.slider-nav-mousedrag .slider-container::after{content:"";position:absolute;width:100%;height:100%}}@media (prefers-reduced-motion:no-preference){.slider-nav-animation.slider-nav-animation-fast{--swiffy-slider-animation-duration:.25s}.slider-nav-animation.slider-nav-animation-slow{--swiffy-slider-animation-duration:1.25s}.slider-nav-animation .slider-container>*>*{transition:opacity var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing),transform var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing);transition-delay:var(--swiffy-slider-animation-delay)}.slider-nav-animation .slider-container .slide-visible>*{transition:opacity var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing),transform var(--swiffy-slider-animation-duration) var(--swiffy-slider-animation-timing);transition-delay:var(--swiffy-slider-animation-delay)}.slider-nav-animation.slider-nav-animation-fadein .slider-container>*>*{opacity:.5}.slider-nav-animation.slider-nav-animation-scale .slider-container>*>*{transform:scale(.9)}.slider-nav-animation.slider-nav-animation-appear .slider-container>*>*{opacity:.3;transform:scale(.9)}.slider-nav-animation.slider-nav-animation-scaleup .slider-container>*>*{transform:scale(.25)}.slider-nav-animation.slider-nav-animation-zoomout .slider-container>*{overflow:hidden}.slider-nav-animation.slider-nav-animation-zoomout .slider-container>*>*{transform:scale(1.3)}.slider-nav-animation.slider-nav-animation-turn .slider-container>*>*{transform:rotateY(70deg)}.slider-nav-animation.slider-nav-animation-slideup .slider-container>*>*{transform:translateY(60%) scale(.99)}.slider-nav-animation.slider-nav-animation-slideup .slider-container{overflow-y:hidden}.slider-nav-animation .slider-container>.slide-visible>*{opacity:1;transform:none}}@media (min-width:62rem){.slider-item-show2:not(.slider-item-snapstart) .slider-container>*,.slider-item-show4:not(.slider-item-snapstart) .slider-container>*,.slider-item-show6:not(.slider-item-snapstart) .slider-container>*{scroll-snap-align:unset}.slider-item-show2:not(.slider-item-snapstart) .slider-container>::before,.slider-item-show4:not(.slider-item-snapstart) .slider-container>::before,.slider-item-show6:not(.slider-item-snapstart) .slider-container>::before{content:" ";display:block;position:absolute;left:calc((var(--swiffy-slider-item-gap)/2)*-1);top:0;width:1px;height:1px;scroll-snap-align:var(--swiffy-slider-snap-align)}.slider-nav-outside-expand .slider-nav{margin-left:-4rem}.slider-nav-outside-expand .slider-nav.slider-nav-next{margin-right:-4rem}.slider-nav-sm.slider-nav-outside-expand .slider-nav{margin-left:-3.5rem}.slider-nav-sm.slider-nav-outside-expand .slider-nav.slider-nav-next{margin-right:-3.5rem}.slider-indicators-sm.slider-indicators{display:none}}@media (max-width:62rem){.swiffy-slider{--swiffy-slider-track-height:0rem;--swiffy-slider-item-reveal:0rem;--swiffy-slider-item-count:1;--swiffy-slider-nav-zoom:.875}.swiffy-slider .slider-item-show2-sm{--swiffy-slider-item-count:2}.slider-item-reveal{--swiffy-slider-item-reveal:4rem}.slider-item-snapstart.slider-item-reveal{--swiffy-slider-item-reveal:2rem}.slider-item-show6 .slider-container{grid-auto-columns:calc(25% - (var(--swiffy-slider-item-gap)/ 4*3))}.slider-item-show6.slider-item-reveal .slider-container{grid-auto-columns:calc(25% - (var(--swiffy-slider-item-gap)/ 4*3) - .5rem)}.slider-item-show6.slider-item-reveal .slider-container>*{scroll-snap-align:unset}.slider-item-show6.slider-item-reveal .slider-container>::before{content:" ";display:block;position:absolute;left:calc((var(--swiffy-slider-item-gap)/2)*-1);top:0;width:1px;height:1px;scroll-snap-align:center}.slider-nav::after,.slider-nav::before{width:2rem;height:2rem;padding:.3rem}.slider-nav-round .slider-nav::after,.slider-nav-square .slider-nav::after{width:1.75rem;height:1.75rem;margin:.125rem}.slider-nav-outside .slider-container,.slider-nav-outside-expand .slider-container{margin:0 2rem}.slider-nav-outside-expand .slider-container{margin:0 var(--swiffy-slider-nav-outside-size)}.slider-nav-outside-expand .slider-nav{padding:0}.slider-indicators-round .slider-indicators>*,.slider-indicators-round.slider-indicators>*,.slider-indicators-square .slider-indicators>*,.slider-indicators-square.slider-indicators>*{width:.3rem;height:.3rem}.slider-indicators{margin-bottom:.5rem;display:none}.slider-nav-scrollbar .slider-indicators{margin-bottom:0}.slider-indicators>*{width:1rem;height:.125rem;border-width:.25rem}.slider-indicators-sm .slider-indicators,.slider-indicators-sm.slider-indicators{display:flex}}@media (max-width:48rem){.slider-item-show6 .slider-container{grid-auto-columns:calc(50% - (var(--swiffy-slider-item-gap)/ 2))}.slider-item-show6.slider-item-reveal .slider-container{grid-auto-columns:calc(50% - (var(--swiffy-slider-item-gap)/ 2) - 1.5rem)}}@media (hover:none){.swiffy-slider.slider-nav-touch .slider-nav{visibility:visible}.swiffy-slider:not(.slider-nav-touch).slider-nav-outside .slider-container,.swiffy-slider:not(.slider-nav-touch).slider-nav-outside-expand .slider-container{margin:0 0}.slider-item-nosnap-touch{--swiffy-slider-snap-align:unset}} +/*# sourceMappingURL=swiffy-slider.min.css.map */ diff --git a/web/modules/custom/dc_components/libraries/swiffy-slider.min.css.map b/web/modules/custom/dc_components/libraries/swiffy-slider.min.css.map new file mode 100644 index 0000000..35f85d1 --- /dev/null +++ b/web/modules/custom/dc_components/libraries/swiffy-slider.min.css.map @@ -0,0 +1,8 @@ +{ + "version": 3, + "sources": [ + "swiffy-slider.css" + ], + "names": [], + "mappings": "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" +} \ No newline at end of file diff --git a/web/modules/custom/dc_components/libraries/swiffy-slider.min.js b/web/modules/custom/dc_components/libraries/swiffy-slider.min.js new file mode 100644 index 0000000..04e4103 --- /dev/null +++ b/web/modules/custom/dc_components/libraries/swiffy-slider.min.js @@ -0,0 +1,2 @@ +const swiffyslider={version:"1.6.0",init(e=document.body){for(let t of e.querySelectorAll(".swiffy-slider"))this.initSlider(t)},initSlider(e){for(let t of e.querySelectorAll(".slider-nav")){let i=t.classList.contains("slider-nav-next");t.addEventListener("click",()=>this.slide(e,i),{passive:!0})}for(let t of e.querySelectorAll(".slider-indicators"))t.addEventListener("click",()=>this.slideToByIndicator()),this.onSlideEnd(e,()=>this.handleIndicators(e),60);if(e.classList.contains("slider-nav-autoplay")){const t=e.getAttribute("data-slider-nav-autoplay-interval")?e.getAttribute("data-slider-nav-autoplay-interval"):2500;this.autoPlay(e,t,e.classList.contains("slider-nav-autopause"))}if(["slider-nav-autohide","slider-nav-animation"].some(t=>e.classList.contains(t))){const t=e.getAttribute("data-slider-nav-animation-threshold")?e.getAttribute("data-slider-nav-animation-threshold"):.3;this.setVisibleSlides(e,t)}},setVisibleSlides(e,t=.3){let i=new IntersectionObserver(t=>{t.forEach(e=>{e.isIntersecting?e.target.classList.add("slide-visible"):e.target.classList.remove("slide-visible")}),e.querySelector(".slider-container>*:first-child").classList.contains("slide-visible")?e.classList.add("slider-item-first-visible"):e.classList.remove("slider-item-first-visible"),e.querySelector(".slider-container>*:last-child").classList.contains("slide-visible")?e.classList.add("slider-item-last-visible"):e.classList.remove("slider-item-last-visible")},{root:e.querySelector(".slider-container"),threshold:t});for(let t of e.querySelectorAll(".slider-container>*"))i.observe(t)},slide(e,t=!0){const i=e.querySelector(".slider-container"),s=e.classList.contains("slider-nav-page"),l=e.classList.contains("slider-nav-noloop"),r=e.classList.contains("slider-nav-nodelay"),o=i.children,n=parseInt(window.getComputedStyle(i).columnGap),a=o[0].offsetWidth+n;let d=t?i.scrollLeft+a:i.scrollLeft-a;s&&(d=t?i.scrollLeft+i.offsetWidth:i.scrollLeft-i.offsetWidth),i.scrollLeft<1&&!t&&!l&&(d=i.scrollWidth-i.offsetWidth),i.scrollLeft>=i.scrollWidth-i.offsetWidth&&t&&!l&&(d=0),i.scroll({left:d,behavior:r?"auto":"smooth"})},slideToByIndicator(){const e=window.event.target,t=Array.from(e.parentElement.children).indexOf(e),i=e.parentElement.children.length,s=e.closest(".swiffy-slider"),l=s.querySelector(".slider-container").children.length/i*t;this.slideTo(s,l)},slideTo(e,t){const i=e.querySelector(".slider-container"),s=parseInt(window.getComputedStyle(i).columnGap),l=i.children[0].offsetWidth+s,r=e.classList.contains("slider-nav-nodelay");i.scroll({left:l*t,behavior:r?"auto":"smooth"})},onSlideEnd(e,t,i=125){let s;e.querySelector(".slider-container").addEventListener("scroll",(function(){window.clearTimeout(s),s=setTimeout(t,i)}),{capture:!1,passive:!0})},autoPlay(e,t,i){t=t<750?750:t;let s=setInterval(()=>this.slide(e),t);const l=()=>this.autoPlay(e,t,i);return i&&(["mouseover","touchstart"].forEach((function(t){e.addEventListener(t,(function(){window.clearTimeout(s)}),{once:!0,passive:!0})})),["mouseout","touchend"].forEach((function(t){e.addEventListener(t,(function(){l()}),{once:!0,passive:!0})}))),s},handleIndicators(e){if(!e)return;const t=e.querySelector(".slider-container"),i=t.scrollWidth-t.offsetWidth,s=t.scrollLeft/i;for(let t of e.querySelectorAll(".slider-indicators")){let e=t.children,i=Math.abs(Math.round((e.length-1)*s));for(let t of e)t.classList.remove("active");e[i].classList.add("active")}}};window.swiffyslider=swiffyslider,document.currentScript.hasAttribute("data-noinit")||(document.currentScript.hasAttribute("defer")?swiffyslider.init():document.onreadystatechange=()=>{"interactive"===document.readyState&&swiffyslider.init()}); +//# sourceMappingURL=swiffy-slider.min.js.map \ No newline at end of file diff --git a/web/modules/custom/dc_components/libraries/swiffy-slider.min.js.map b/web/modules/custom/dc_components/libraries/swiffy-slider.min.js.map new file mode 100644 index 0000000..9f918c3 --- /dev/null +++ b/web/modules/custom/dc_components/libraries/swiffy-slider.min.js.map @@ -0,0 +1,104 @@ +{ + "version": 3, + "sources": [ + "swiffy-slider.js" + ], + "names": [ + "swiffyslider", + "version", + "[object Object]", + "rootElement", + "document", + "body", + "sliderElement", + "querySelectorAll", + "this", + "initSlider", + "navElement", + "next", + "classList", + "contains", + "addEventListener", + "slide", + "passive", + "indicatorElement", + "slideToByIndicator", + "onSlideEnd", + "handleIndicators", + "timeout", + "getAttribute", + "autoPlay", + "some", + "className", + "threshold", + "setVisibleSlides", + "observer", + "IntersectionObserver", + "slides", + "forEach", + "isIntersecting", + "target", + "add", + "remove", + "querySelector", + "root", + "observe", + "container", + "fullpage", + "noloop", + "nodelay", + "children", + "gapWidth", + "parseInt", + "window", + "getComputedStyle", + "columnGap", + "scrollStep", + "offsetWidth", + "scrollLeftPosition", + "scrollLeft", + "scrollWidth", + "scroll", + "left", + "behavior", + "indicator", + "event", + "indicatorIndex", + "Array", + "from", + "parentElement", + "indexOf", + "indicatorCount", + "length", + "closest", + "relativeSlideIndex", + "slideTo", + "slideIndex", + "delegate", + "isScrolling", + "clearTimeout", + "setTimeout", + "capture", + "autopause", + "autoplayTimer", + "setInterval", + "autoplayer", + "once", + "slidingAreaWidth", + "percentSlide", + "scrollIndicatorContainers", + "scrollIndicators", + "activeIndicator", + "Math", + "abs", + "round", + "element", + "currentScript", + "hasAttribute", + "init", + "onreadystatechange", + "readyState" + ], + "mappings": "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", + "file": "swiffy-slider.js" +} \ No newline at end of file diff --git a/web/modules/custom/dc_components/templates/block--inline-block--ping-pong.html.twig b/web/modules/custom/dc_components/templates/block--inline-block--ping-pong.html.twig new file mode 100644 index 0000000..d175565 --- /dev/null +++ b/web/modules/custom/dc_components/templates/block--inline-block--ping-pong.html.twig @@ -0,0 +1,45 @@ +{# + * Component variables + * + * props: + * layout + * mediaAlign + * bgColor + * + * slots + * headline + * body + * cta + * media + * + #} +{% set align = content.field_ping_pong_media_alignment.0['#markup'] %} +{% set bgColor = content.field_ping_pong_background_color.0['#markup']|default('#fff') %} +
+ {{ title_prefix }} + {{ title_suffix }} + + {% embed 'dc_components:ping-pong' with { + mediaAlign: align, + bgColor: bgColor, + }%} + + {% block headline %} +

{{ label }}

+ {% endblock%} + + {% block body %} + {{ content.field_ping_pong_body }} + {% endblock %} + + {% block cta %} + {{ content.field_ping_pong_cta }} + {% endblock %} + + {% block media %} + {{ content.field_ping_pong_media_items }} + {% endblock %} + + {% endembed %} + +
diff --git a/web/modules/custom/dc_components/templates/field--block-content--field-ping-pong-media-items--ping-pong.html.twig b/web/modules/custom/dc_components/templates/field--block-content--field-ping-pong-media-items--ping-pong.html.twig new file mode 100644 index 0000000..502714d --- /dev/null +++ b/web/modules/custom/dc_components/templates/field--block-content--field-ping-pong-media-items--ping-pong.html.twig @@ -0,0 +1,50 @@ +{# +/** + * @file + * Theme override for a field. + * + * To override output, copy the "field.html.twig" from the templates directory + * to your theme's directory and customize it, just like customizing other + * Drupal templates such as page.html.twig or node.html.twig. + * + * Instead of overriding the theming for all fields, you can also just override + * theming for a subset of fields using + * @link themeable Theme hook suggestions. @endlink For example, + * here are some theme hook suggestions that can be used for a field_foo field + * on an article node type: + * - field--node--field-foo--article.html.twig + * - field--node--field-foo.html.twig + * - field--node--article.html.twig + * - field--field-foo.html.twig + * - field--text-with-summary.html.twig + * - field.html.twig + * + * Available variables: + * - attributes: HTML attributes for the containing element. + * - label_hidden: Whether to show the field label or not. + * - title_attributes: HTML attributes for the title. + * - label: The label for the field. + * - multiple: TRUE if a field can contain multiple items. + * - items: List of all the field items. Each item contains: + * - attributes: List of HTML attributes for each item. + * - content: The field item's content. + * - entity_type: The entity type to which the field belongs. + * - field_name: The name of the field. + * - field_type: The type of the field. + * - label_display: The display settings for the label. + * + * @see template_preprocess_field() + */ +#} +{% + set title_classes = [ + label_display == 'visually_hidden' ? 'visually-hidden', + ] +%} + +
    + {% for item in items %} +
  • {{ item.content }}
  • + {% endfor %} +
+ diff --git a/web/themes/custom/dchadwick/css/style.css b/web/themes/custom/dchadwick/css/style.css index 4c44d2d..a224aa7 100644 --- a/web/themes/custom/dchadwick/css/style.css +++ b/web/themes/custom/dchadwick/css/style.css @@ -296,6 +296,11 @@ table.cols-5 td.incorrect { html { font-size: 100%; + box-sizing: border-box; +} + +.region-content { + padding: 0; } body { diff --git a/web/themes/custom/dchadwick/src/sass/style.scss b/web/themes/custom/dchadwick/src/sass/style.scss index 147ecf3..a7a11ca 100644 --- a/web/themes/custom/dchadwick/src/sass/style.scss +++ b/web/themes/custom/dchadwick/src/sass/style.scss @@ -34,6 +34,11 @@ $container-plus-padding: 1216px; html { font-size: 100%; + box-sizing: border-box; +} + +.region-content { + padding: 0; } body {