diff --git a/composer.json b/composer.json index f89978c..c5de76b 100644 --- a/composer.json +++ b/composer.json @@ -34,6 +34,7 @@ "drupal/jsonapi_permission_access": "1.0.1", "drupal/layout_builder_admin_theme": "^2.0", "drupal/layout_builder_iframe_modal": "^1.3", + "drupal/layout_builder_restrictions": "^3.0", "drupal/layout_builder_styles": "^2.0", "drupal/mailsystem": "^4.5", "drupal/migrate_plus": "^6.0", @@ -45,6 +46,7 @@ "drupal/upgrade_status": "^4.3", "drupal/views_bulk_operations": "^4.2", "drupal/views_json_source": "^2.0", + "drupal/webform": "^6.3@beta", "drupal/workflow": "^1.8", "drush/drush": "^13", "mglaman/composer-drupal-lenient": "^1.0", diff --git a/composer.lock b/composer.lock index c528c24..5e5d0fb 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": "7715ba9b44e29f0c86822734e3ebd944", + "content-hash": "a69ae602dcd0a11e9813dd2e7ec9caa8", "packages": [ { "name": "asm89/stack-cors", @@ -2937,6 +2937,101 @@ "issues": "https://www.drupal.org/project/issues/3169342?categories=All" } }, + { + "name": "drupal/layout_builder_restrictions", + "version": "3.0.1", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/layout_builder_restrictions.git", + "reference": "3.0.1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/layout_builder_restrictions-3.0.1.zip", + "reference": "3.0.1", + "shasum": "8c55b4d04b9852077eaf7a587f236a036d4fd28f" + }, + "require": { + "drupal/core": "^10 || ^11" + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "3.0.1", + "datestamp": "1733841259", + "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": "The University of Texas at Austin", + "homepage": "https://www.drupal.org/university-of-texas-at-austin", + "role": "Maintainer" + }, + { + "name": "Eirik Morland (eiriksm)", + "homepage": "https://www.drupal.org/u/eiriksm", + "role": "Maintainer" + }, + { + "name": "eiriksm", + "homepage": "https://www.drupal.org/user/1014468" + }, + { + "name": "gravelpot", + "homepage": "https://www.drupal.org/user/748208" + }, + { + "name": "jeff cardwell", + "homepage": "https://www.drupal.org/user/2913129" + }, + { + "name": "lreynaga", + "homepage": "https://www.drupal.org/user/3400232" + }, + { + "name": "mark_fullmer", + "homepage": "https://www.drupal.org/user/2612816" + }, + { + "name": "mmarler", + "homepage": "https://www.drupal.org/user/500192" + }, + { + "name": "ricksta", + "homepage": "https://www.drupal.org/user/311042" + }, + { + "name": "texas_tater", + "homepage": "https://www.drupal.org/user/753614" + }, + { + "name": "twfahey", + "homepage": "https://www.drupal.org/user/3403722" + }, + { + "name": "utexas", + "homepage": "https://www.drupal.org/user/3716409" + } + ], + "description": "Manage which fields & layouts are available in Layout Builder", + "homepage": "https://www.drupal.org/project/layout_builder_restrictions", + "keywords": [ + "Drupal", + "Layout Builder Restrictions" + ], + "support": { + "source": "https://git.drupalcode.org/project/layout_builder_restrictions", + "issues": "https://www.drupal.org/project/issues/layout_builder_restrictions" + } + }, { "name": "drupal/layout_builder_styles", "version": "2.1.0", @@ -3776,6 +3871,113 @@ "issues": "https://www.drupal.org/project/issues/views_json_source" } }, + { + "name": "drupal/webform", + "version": "6.3.0-beta1", + "source": { + "type": "git", + "url": "https://git.drupalcode.org/project/webform.git", + "reference": "6.3.0-beta1" + }, + "dist": { + "type": "zip", + "url": "https://ftp.drupal.org/files/projects/webform-6.3.0-beta1.zip", + "reference": "6.3.0-beta1", + "shasum": "f712d463e883b678d7147b5c80bd8f9da72f13f8" + }, + "require": { + "drupal/core": "^10.3 || ^11.0" + }, + "require-dev": { + "drupal/address": "^2.0", + "drupal/captcha": "^2.0", + "drupal/chosen": "^4.0", + "drupal/clientside_validation": "^4.1", + "drupal/clientside_validation_jquery": "*", + "drupal/devel": "^5.3", + "drupal/entity": "^1.5", + "drupal/entity_print": "^2.15", + "drupal/hal": "^2.0", + "drupal/jquery_ui": "^1.7", + "drupal/jquery_ui_button": "^2.1", + "drupal/jquery_ui_checkboxradio": "^2.1", + "drupal/jquery_ui_datepicker": "^2.1", + "drupal/mailsystem": "^4.5", + "drupal/metatag": "^2.0", + "drupal/paragraphs": "^1.18", + "drupal/select2": "1.x-dev", + "drupal/smtp": "^1.4", + "drupal/styleguide": "^2.1", + "drupal/telephone_validation": "2.x-dev", + "drupal/token": "^1.15", + "drupal/webform_access": "*", + "drupal/webform_attachment": "*", + "drupal/webform_clientside_validation": "*", + "drupal/webform_devel": "*", + "drupal/webform_entity_print": "*", + "drupal/webform_node": "*", + "drupal/webform_options_limit": "*", + "drupal/webform_scheduled_email": "*", + "drupal/webform_share": "*", + "drupal/webform_ui": "*" + }, + "suggest": { + "drupal/jquery_ui_buttons": "Provides jQuery UI Checkboxradio library. Required by the Webform jQueryUI Buttons module. The Webform jQueryUI Buttons module is deprecated because jQueryUI is no longer maintained.", + "drupal/jquery_ui_datepicker": "Provides jQuery UI Datepicker library. Required to support datepickers. The Webform jQueryUI Datepicker module is deprecated because jQueryUI is no longer maintained." + }, + "type": "drupal-module", + "extra": { + "drupal": { + "version": "6.3.0-beta1", + "datestamp": "1736275819", + "security-coverage": { + "status": "not-covered", + "message": "Beta releases are not covered by Drupal security advisories." + } + }, + "drush": { + "services": { + "drush.services.yml": ">=11" + } + } + }, + "notification-url": "https://packages.drupal.org/8/downloads", + "license": [ + "GPL-2.0-or-later" + ], + "authors": [ + { + "name": "Jacob Rockowitz (jrockowitz)", + "homepage": "https://www.drupal.org/u/jrockowitz", + "role": "Maintainer" + }, + { + "name": "Contributors", + "homepage": "https://www.drupal.org/node/7404/committers", + "role": "Contributor" + }, + { + "name": "liam morland", + "homepage": "https://www.drupal.org/user/493050" + }, + { + "name": "quicksketch", + "homepage": "https://www.drupal.org/user/35821" + }, + { + "name": "torotil", + "homepage": "https://www.drupal.org/user/865256" + } + ], + "description": "Enables the creation of webforms and questionnaires.", + "homepage": "https://drupal.org/project/webform", + "support": { + "source": "https://git.drupalcode.org/project/webform", + "issues": "https://www.drupal.org/project/issues/webform?version=8.x", + "docs": "https://www.drupal.org/docs/8/modules/webform", + "forum": "https://drupal.stackexchange.com/questions/tagged/webform" + } + }, { "name": "drupal/workflow", "version": "1.8.0", @@ -15592,7 +15794,8 @@ "aliases": [], "minimum-stability": "dev", "stability-flags": { - "drupal/entity_clone": 10 + "drupal/entity_clone": 10, + "drupal/webform": 10 }, "prefer-stable": true, "prefer-lowest": false, diff --git a/web/themes/custom/dchadwick/css/style.css b/web/themes/custom/dchadwick/css/style.css index d27c4aa..e7cb71a 100644 --- a/web/themes/custom/dchadwick/css/style.css +++ b/web/themes/custom/dchadwick/css/style.css @@ -38,10 +38,11 @@ h4 { } #block-dchadwick-primary-local-tasks { - width: 100%; + width: auto; position: fixed; bottom: 0; - left: 0; + left: 50%; + transform: translateX(-50%); z-index: 9999; } #block-dchadwick-primary-local-tasks > ul { diff --git a/web/themes/custom/dchadwick/css/tabbed-content.css b/web/themes/custom/dchadwick/css/tabbed-content.css new file mode 100644 index 0000000..208cd37 --- /dev/null +++ b/web/themes/custom/dchadwick/css/tabbed-content.css @@ -0,0 +1,12 @@ +.tabbed-content { + display: flex; +} + +.tabbed-content .tab-labels { + flex: 0 1 25%; +} + +.tabbed-content .tab-content { + flex: 0 1 75%; +} + diff --git a/web/themes/custom/dchadwick/dchadwick.layouts.yml b/web/themes/custom/dchadwick/dchadwick.layouts.yml index 08f025e..253c4c9 100644 --- a/web/themes/custom/dchadwick/dchadwick.layouts.yml +++ b/web/themes/custom/dchadwick/dchadwick.layouts.yml @@ -11,3 +11,16 @@ two_row: icon_map: - [top] - [bottom] + +tabbed_content: + label: 'Tabbed Content' + category: 'DC Layouts' + template: templates/layouts/tabbed-content + library: dchadwick/tabbed-content + regions: + label_side: + label: Label Side + content_side: + label: Content Side + icon_map: + - [first, second] diff --git a/web/themes/custom/dchadwick/dchadwick.libraries.yml b/web/themes/custom/dchadwick/dchadwick.libraries.yml index 8efeada..35b5e13 100644 --- a/web/themes/custom/dchadwick/dchadwick.libraries.yml +++ b/web/themes/custom/dchadwick/dchadwick.libraries.yml @@ -34,3 +34,12 @@ articles: - core/drupal - core/once +tabbed-content: + css: + theme: + css/tabbed-content.css: {} + js: + js/tabbedContent.js: { } + dependencies: + - core/drupal + - core/once diff --git a/web/themes/custom/dchadwick/js/tabbedContent.js b/web/themes/custom/dchadwick/js/tabbedContent.js new file mode 100644 index 0000000..a88bad2 --- /dev/null +++ b/web/themes/custom/dchadwick/js/tabbedContent.js @@ -0,0 +1,7 @@ +((Drupal, once) => { + Drupal.behaviors.tabbedContent = { + attach(context) { + // console.log("hello"); + }, + }; +})(Drupal, once); diff --git a/web/themes/custom/dchadwick/src/sass/partials/local-tasks.scss b/web/themes/custom/dchadwick/src/sass/partials/local-tasks.scss index 448946b..e89dbda 100644 --- a/web/themes/custom/dchadwick/src/sass/partials/local-tasks.scss +++ b/web/themes/custom/dchadwick/src/sass/partials/local-tasks.scss @@ -1,8 +1,9 @@ #block-dchadwick-primary-local-tasks { - width: 100%; + width: auto; position: fixed; bottom: 0; - left: 0; + left: 50%; + transform: translateX(-50%); z-index: 9999; > ul { diff --git a/web/themes/custom/dchadwick/templates/layouts/tabbed-content.html.twig b/web/themes/custom/dchadwick/templates/layouts/tabbed-content.html.twig new file mode 100644 index 0000000..40cd820 --- /dev/null +++ b/web/themes/custom/dchadwick/templates/layouts/tabbed-content.html.twig @@ -0,0 +1,15 @@ +{{ attach_library('dchadwick/tabbed-content') }} +{% if content %} +
+ {% if content.label_side %} +
+ {{ content.label_side }} +
+ {% endif %} + {% if content.content_side %} +
+ {{ content.content_side }} +
+ {% endif %} +
+{% endif %}