diff --git a/core/MAINTAINERS.txt b/core/MAINTAINERS.txt index d04d2c5d64192d35345b96d69bd3a0bc007e16fa..53923546b8d4d01822030e435f6fe0482c771d7a 100644 --- a/core/MAINTAINERS.txt +++ b/core/MAINTAINERS.txt @@ -257,6 +257,11 @@ Language - Francesco Placella 'plach' https://www.drupal.org/u/plach - Daniel F. Kudwien 'sun' https://www.drupal.org/u/sun +Layout Builder +- Ted Bowman 'tedbow' https://www.drupal.org/u/tedbow +- Emilie Nouveau 'DyanneNova' https://www.drupal.org/u/dyannenova +- Tim Plunkett 'tim.plunkett' https://www.drupal.org/u/tim.plunkett + Link Field - Weber Macedo 'Mac_Weber' https://www.drupal.org/u/mac_weber diff --git a/core/modules/layout_builder/css/layout-builder-content-translation.css b/core/modules/layout_builder/css/layout-builder-content-translation.css deleted file mode 100644 index bff9c47067d9259f7439b83958339a1cc6077748..0000000000000000000000000000000000000000 --- a/core/modules/layout_builder/css/layout-builder-content-translation.css +++ /dev/null @@ -1,5 +0,0 @@ -/* @todo Move this to Seven as part of https://www.drupal.org/node/3041053 */ -.layout-builder-translation-warning { - background: left 2px url(../../../misc/icons/e29700/warning.svg) no-repeat; - padding-left: 20px; -} diff --git a/core/modules/layout_builder/css/layout-builder.css b/core/modules/layout_builder/css/layout-builder.css index c0eb0da122e83f8aaeb19129a21b04b4c3580502..b7ccc1abad4760acaa83235574b1714938f1ad68 100644 --- a/core/modules/layout_builder/css/layout-builder.css +++ b/core/modules/layout_builder/css/layout-builder.css @@ -88,10 +88,10 @@ background-repeat: no-repeat; } .layout-builder__message--defaults .messages { - background-image: url('../images/globe.svg'); + background-image: url("../images/globe.svg"); } .layout-builder__message--overrides .messages { - background-image: url('../images/location.svg'); + background-image: url("../images/location.svg"); } /** @@ -193,11 +193,11 @@ display: none; } -.layout-builder--move-blocks-active .layout-builder__region-label { +.layout-builder--move-blocks-active .layout-builder__region-label { display: block; } -.layout-builder--move-blocks-active .layout-builder__section-label { +.layout-builder--move-blocks-active .layout-builder__section-label { display: inline; } diff --git a/core/modules/layout_builder/layout_builder.info.yml b/core/modules/layout_builder/layout_builder.info.yml index d3d9699c670b062665b1f689abdb434c4da9be04..6e700e1b09bd00cbf845a14fbfef9c4a7ac83596 100644 --- a/core/modules/layout_builder/layout_builder.info.yml +++ b/core/modules/layout_builder/layout_builder.info.yml @@ -1,7 +1,7 @@ name: 'Layout Builder' type: module description: 'Allows users to add and arrange blocks and content fields directly on the content.' -package: Core (Experimental) +package: Core version: VERSION core: 8.x dependencies: diff --git a/core/modules/layout_builder/layout_builder.libraries.yml b/core/modules/layout_builder/layout_builder.libraries.yml index 57b65605ca1111e8af45a55bdaeaa6639a701cc9..d77b6213685a466015d67962563b4a490c527f7c 100644 --- a/core/modules/layout_builder/layout_builder.libraries.yml +++ b/core/modules/layout_builder/layout_builder.libraries.yml @@ -27,9 +27,3 @@ fourcol_section: css: theme: layouts/fourcol_section/fourcol_section.css: {} - -drupal.layout_builder_content_translation_admin: - version: VERSION - css: - theme: - css/layout-builder-content-translation.css: {} diff --git a/core/modules/layout_builder/layout_builder.module b/core/modules/layout_builder/layout_builder.module index b20ddfb126da2f56ce5e7b04a74407c16b24e144..f03e73afd0956eb5e1e949f1f845cf4593633b7a 100644 --- a/core/modules/layout_builder/layout_builder.module +++ b/core/modules/layout_builder/layout_builder.module @@ -400,11 +400,6 @@ function layout_builder_preprocess_language_content_settings_table(&$variables) '#attributes' => [ 'class' => ['layout-builder-translation-warning'], ], - '#attached' => [ - 'library' => [ - 'layout_builder/drupal.layout_builder_content_translation_admin', - ], - ], ], ]; } diff --git a/core/modules/layout_builder/src/Access/LayoutBuilderAccessCheck.php b/core/modules/layout_builder/src/Access/LayoutBuilderAccessCheck.php index 30795008d3972fb9162d500adb2d58c4df23e479..671265499a7866804430f27f31d0d8c43b615a47 100644 --- a/core/modules/layout_builder/src/Access/LayoutBuilderAccessCheck.php +++ b/core/modules/layout_builder/src/Access/LayoutBuilderAccessCheck.php @@ -15,6 +15,7 @@ * @ingroup layout_builder_access * * @internal + * Tagged services are internal. */ class LayoutBuilderAccessCheck implements AccessInterface { diff --git a/core/modules/layout_builder/src/Access/LayoutPreviewAccessAllowed.php b/core/modules/layout_builder/src/Access/LayoutPreviewAccessAllowed.php index 6754e2be41b38ee63dcd7ba6d57cea5370190249..f5e4b41d0a590d077f49b0964e0b38bf907f7c20 100644 --- a/core/modules/layout_builder/src/Access/LayoutPreviewAccessAllowed.php +++ b/core/modules/layout_builder/src/Access/LayoutPreviewAccessAllowed.php @@ -10,6 +10,7 @@ * Accessible class to allow access for inline blocks in the Layout Builder. * * @internal + * Tagged services are internal. */ class LayoutPreviewAccessAllowed implements AccessibleInterface { diff --git a/core/modules/layout_builder/src/Access/LayoutSectionAccessCheck.php b/core/modules/layout_builder/src/Access/LayoutSectionAccessCheck.php index 6abff2a4bf694ea5086073c79fffa2df7529f66d..e57218c9d94944176155ac5db63f02dfc355c248 100644 --- a/core/modules/layout_builder/src/Access/LayoutSectionAccessCheck.php +++ b/core/modules/layout_builder/src/Access/LayoutSectionAccessCheck.php @@ -12,6 +12,7 @@ * Provides an access check for the Layout Builder UI. * * @internal + * Tagged services are internal. * * @todo Deprecated in Drupal 8.7.0 and will be removed before Drupal 9.0.0. Use * \Drupal\layout_builder\Access\LayoutBuilderAccessCheck instead. See diff --git a/core/modules/layout_builder/src/Cache/LayoutBuilderIsActiveCacheContext.php b/core/modules/layout_builder/src/Cache/LayoutBuilderIsActiveCacheContext.php index 3c3bc25c400585e5ee2d09365fdb7dae69c7dd6e..5edec7f0e5dc24dcdf52fc50425eb6825322189d 100644 --- a/core/modules/layout_builder/src/Cache/LayoutBuilderIsActiveCacheContext.php +++ b/core/modules/layout_builder/src/Cache/LayoutBuilderIsActiveCacheContext.php @@ -13,6 +13,9 @@ * Cache context ID: 'layout_builder_is_active:%entity_type_id', e.g. * 'layout_builder_is_active:node' (to vary by whether the Node entity type has * Layout Builder enabled). + * + * @internal + * Tagged services are internal. */ class LayoutBuilderIsActiveCacheContext implements CalculatedCacheContextInterface { diff --git a/core/modules/layout_builder/src/Cache/LayoutBuilderUiCacheContext.php b/core/modules/layout_builder/src/Cache/LayoutBuilderUiCacheContext.php index 53b589452dcb8f924189c988a9913d4b3828a76c..4626d1cd86df4ca411c2e0628997bf7cdca8a8e3 100644 --- a/core/modules/layout_builder/src/Cache/LayoutBuilderUiCacheContext.php +++ b/core/modules/layout_builder/src/Cache/LayoutBuilderUiCacheContext.php @@ -8,6 +8,9 @@ * Determines if an entity is being viewed in the Layout Builder UI. * * Cache context ID: 'route.name.is_layout_builder_ui'. + * + * @internal + * Tagged services are internal. */ class LayoutBuilderUiCacheContext extends RouteNameCacheContext { diff --git a/core/modules/layout_builder/src/Controller/AddSectionController.php b/core/modules/layout_builder/src/Controller/AddSectionController.php index abe7df3876e921ff2d39cc184dc0c28d2886bf51..a32bcb1e429cffa64297494f25a4e9a84d155a77 100644 --- a/core/modules/layout_builder/src/Controller/AddSectionController.php +++ b/core/modules/layout_builder/src/Controller/AddSectionController.php @@ -14,6 +14,7 @@ * Defines a controller to add a new section. * * @internal + * Controller classes are internal. */ class AddSectionController implements ContainerInjectionInterface { diff --git a/core/modules/layout_builder/src/Controller/ChooseBlockController.php b/core/modules/layout_builder/src/Controller/ChooseBlockController.php index 99397d1b5921d7ca77bbc4ab3e82df1fb9e11056..a20a351d56e42b87c76a04badcff9f8f72a7b914 100644 --- a/core/modules/layout_builder/src/Controller/ChooseBlockController.php +++ b/core/modules/layout_builder/src/Controller/ChooseBlockController.php @@ -18,6 +18,7 @@ * Defines a controller to choose a new block. * * @internal + * Controller classes are internal. */ class ChooseBlockController implements ContainerInjectionInterface { diff --git a/core/modules/layout_builder/src/Controller/ChooseSectionController.php b/core/modules/layout_builder/src/Controller/ChooseSectionController.php index 714c4770f82870f62d8c9afb027207f8a2fcdf36..ec27e92626f36f89177a32b6f34fa2b8ab9de847 100644 --- a/core/modules/layout_builder/src/Controller/ChooseSectionController.php +++ b/core/modules/layout_builder/src/Controller/ChooseSectionController.php @@ -16,6 +16,7 @@ * Defines a controller to choose a new section. * * @internal + * Controller classes are internal. */ class ChooseSectionController implements ContainerInjectionInterface { diff --git a/core/modules/layout_builder/src/Controller/LayoutBuilderController.php b/core/modules/layout_builder/src/Controller/LayoutBuilderController.php index 3c1920a3758126f86beddfe6eac9a1fbe4b07b11..9307f8062e9718b52df9b3ca925bf10911e04a1a 100644 --- a/core/modules/layout_builder/src/Controller/LayoutBuilderController.php +++ b/core/modules/layout_builder/src/Controller/LayoutBuilderController.php @@ -9,6 +9,7 @@ * Defines a controller to provide the Layout Builder admin UI. * * @internal + * Controller classes are internal. */ class LayoutBuilderController { diff --git a/core/modules/layout_builder/src/Controller/LayoutRebuildTrait.php b/core/modules/layout_builder/src/Controller/LayoutRebuildTrait.php index 2cda6ee31cd6a8458fe498848e5c6a947bc18f5e..b8664edc51ac3a30d6ebbacd1b1f28c1734c461c 100644 --- a/core/modules/layout_builder/src/Controller/LayoutRebuildTrait.php +++ b/core/modules/layout_builder/src/Controller/LayoutRebuildTrait.php @@ -9,8 +9,6 @@ /** * Provides AJAX responses to rebuild the Layout Builder. - * - * @internal */ trait LayoutRebuildTrait { diff --git a/core/modules/layout_builder/src/Controller/MoveBlockController.php b/core/modules/layout_builder/src/Controller/MoveBlockController.php index 20f5c37cc9be10bb3c6d67a579d9b1f1678eb83e..2f6f6b2349164aeb7bab9851daec9e4e00c3c189 100644 --- a/core/modules/layout_builder/src/Controller/MoveBlockController.php +++ b/core/modules/layout_builder/src/Controller/MoveBlockController.php @@ -11,6 +11,7 @@ * Defines a controller to move a block. * * @internal + * Controller classes are internal. */ class MoveBlockController implements ContainerInjectionInterface { diff --git a/core/modules/layout_builder/src/DefaultsSectionStorageInterface.php b/core/modules/layout_builder/src/DefaultsSectionStorageInterface.php index 0bcaa387e0263c3d24b81d24d1b0d44b7e96a26a..a21005a02e214f4ffbcf2c422518cce895c633e4 100644 --- a/core/modules/layout_builder/src/DefaultsSectionStorageInterface.php +++ b/core/modules/layout_builder/src/DefaultsSectionStorageInterface.php @@ -7,11 +7,6 @@ /** * Defines an interface for an object that stores layout sections for defaults. * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. - * * @todo Refactor this interface in https://www.drupal.org/node/2985362. */ interface DefaultsSectionStorageInterface extends SectionStorageInterface, ThirdPartySettingsInterface, LayoutBuilderEnabledInterface { diff --git a/core/modules/layout_builder/src/Element/LayoutBuilder.php b/core/modules/layout_builder/src/Element/LayoutBuilder.php index d767899de9b5b9fbc48e1277f9967162e51b1359..ec75e16bac90e991b92149ee0b143577d2acf089 100644 --- a/core/modules/layout_builder/src/Element/LayoutBuilder.php +++ b/core/modules/layout_builder/src/Element/LayoutBuilder.php @@ -20,6 +20,9 @@ * Defines a render element for building the Layout Builder UI. * * @RenderElement("layout_builder") + * + * @internal + * Plugin classes are internal. */ class LayoutBuilder extends RenderElement implements ContainerFactoryPluginInterface { diff --git a/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php b/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php index abb65ca7c1c3f6613b754ddff92393197a4d7f5e..82c8210c2318a637dbe4e0e96a9568f0e7e93581 100644 --- a/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php +++ b/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplay.php @@ -25,11 +25,6 @@ /** * Provides an entity view display entity that has a layout. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ class LayoutBuilderEntityViewDisplay extends BaseEntityViewDisplay implements LayoutEntityDisplayInterface { diff --git a/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplayStorage.php b/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplayStorage.php index e00a2b46306692c487d611cf297c971511f020a7..d701213f9eecee0e56e139fb13b3caf41ceca47f 100644 --- a/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplayStorage.php +++ b/core/modules/layout_builder/src/Entity/LayoutBuilderEntityViewDisplayStorage.php @@ -10,9 +10,7 @@ * Provides storage for entity view display entities that have layouts. * * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. + * Entity handlers are internal. */ class LayoutBuilderEntityViewDisplayStorage extends ConfigEntityStorage { diff --git a/core/modules/layout_builder/src/Entity/LayoutEntityDisplayInterface.php b/core/modules/layout_builder/src/Entity/LayoutEntityDisplayInterface.php index 51151bd81c10944ba8327ad13bcb7b32106de47c..0122c39955b44f7506052779ebd146e3a144df91 100644 --- a/core/modules/layout_builder/src/Entity/LayoutEntityDisplayInterface.php +++ b/core/modules/layout_builder/src/Entity/LayoutEntityDisplayInterface.php @@ -9,11 +9,6 @@ /** * Provides an interface for entity displays that have layout. * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. - * * @todo Refactor this interface in https://www.drupal.org/node/2985362. */ interface LayoutEntityDisplayInterface extends EntityDisplayInterface, SectionListInterface, LayoutBuilderEnabledInterface { diff --git a/core/modules/layout_builder/src/Event/SectionComponentBuildRenderArrayEvent.php b/core/modules/layout_builder/src/Event/SectionComponentBuildRenderArrayEvent.php index 9047e6e9dc52efc51f06ef8d03f92e9cb3d09ee2..b971adcc7e5f6e9287c16ab3ff1f2629a1349fe1 100644 --- a/core/modules/layout_builder/src/Event/SectionComponentBuildRenderArrayEvent.php +++ b/core/modules/layout_builder/src/Event/SectionComponentBuildRenderArrayEvent.php @@ -13,11 +13,6 @@ * build array in this event. * * @see \Drupal\layout_builder\LayoutBuilderEvents::SECTION_COMPONENT_BUILD_RENDER_ARRAY - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ class SectionComponentBuildRenderArrayEvent extends Event { diff --git a/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php b/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php index e352764cce3210005a16d0f04259b05dba5a0184..cbb09c4f4f2982175e120fc796927a061b732303 100644 --- a/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php +++ b/core/modules/layout_builder/src/EventSubscriber/BlockComponentRenderArray.php @@ -19,9 +19,7 @@ * Builds render arrays and handles access for all block components. * * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. + * Tagged services are internal. */ class BlockComponentRenderArray implements EventSubscriberInterface { diff --git a/core/modules/layout_builder/src/EventSubscriber/SetInlineBlockDependency.php b/core/modules/layout_builder/src/EventSubscriber/SetInlineBlockDependency.php index 23e965be8654944b557a5f16a969f3905bde30b1..d1ff4ad3dcb06858bcdb90e7ddde2d0f21e018d7 100644 --- a/core/modules/layout_builder/src/EventSubscriber/SetInlineBlockDependency.php +++ b/core/modules/layout_builder/src/EventSubscriber/SetInlineBlockDependency.php @@ -27,6 +27,7 @@ * the dependency. * * @internal + * Tagged services are internal. * * @see \Drupal\file\FileAccessControlHandler::checkAccess() * @see \Drupal\block_content\BlockContentAccessControlHandler::checkAccess() diff --git a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php index 657ae19cfdc3bc494e59ba1fb1c11df2afd08f97..58e78f2562631839c57a352edf149e7d3a3ed173 100644 --- a/core/modules/layout_builder/src/Field/LayoutSectionItemList.php +++ b/core/modules/layout_builder/src/Field/LayoutSectionItemList.php @@ -14,6 +14,7 @@ * Defines a item list class for layout section fields. * * @internal + * Plugin classes are internal. * * @see \Drupal\layout_builder\Plugin\Field\FieldType\LayoutSectionItem */ diff --git a/core/modules/layout_builder/src/Form/AddBlockForm.php b/core/modules/layout_builder/src/Form/AddBlockForm.php index ccfea97e2fcd742b1e8bb1dece9d7a95114d0577..6f73133de718a6dd2f44c6072dffe073e47b43f4 100644 --- a/core/modules/layout_builder/src/Form/AddBlockForm.php +++ b/core/modules/layout_builder/src/Form/AddBlockForm.php @@ -11,6 +11,7 @@ * Provides a form to add a block. * * @internal + * Form classes are internal. */ class AddBlockForm extends ConfigureBlockFormBase { diff --git a/core/modules/layout_builder/src/Form/ConfigureBlockFormBase.php b/core/modules/layout_builder/src/Form/ConfigureBlockFormBase.php index c2802a4a3d0ba911e9e5c6e2644423725f600e35..ced632a7e0107ac53247e476a805453265c69cb7 100644 --- a/core/modules/layout_builder/src/Form/ConfigureBlockFormBase.php +++ b/core/modules/layout_builder/src/Form/ConfigureBlockFormBase.php @@ -27,6 +27,7 @@ * Provides a base form for configuring a block. * * @internal + * Form classes are internal. */ abstract class ConfigureBlockFormBase extends FormBase implements BaseFormIdInterface { diff --git a/core/modules/layout_builder/src/Form/ConfigureSectionForm.php b/core/modules/layout_builder/src/Form/ConfigureSectionForm.php index 82fce6156b2f09e454af29c8c505c253edc72700..a6d4ec87141bad21d9d8daede16a854634c00e22 100644 --- a/core/modules/layout_builder/src/Form/ConfigureSectionForm.php +++ b/core/modules/layout_builder/src/Form/ConfigureSectionForm.php @@ -21,6 +21,7 @@ * Provides a form for configuring a layout section. * * @internal + * Form classes are internal. */ class ConfigureSectionForm extends FormBase { diff --git a/core/modules/layout_builder/src/Form/DefaultsEntityForm.php b/core/modules/layout_builder/src/Form/DefaultsEntityForm.php index 538cd1e98c1ccabed91ef1308ca4a68f03fcc9f4..b95ddd3bad37ef49980b81c1fc8d1353b0c9f104 100644 --- a/core/modules/layout_builder/src/Form/DefaultsEntityForm.php +++ b/core/modules/layout_builder/src/Form/DefaultsEntityForm.php @@ -15,6 +15,7 @@ * Provides a form containing the Layout Builder UI for defaults. * * @internal + * Form classes are internal. */ class DefaultsEntityForm extends EntityForm { diff --git a/core/modules/layout_builder/src/Form/DiscardLayoutChangesForm.php b/core/modules/layout_builder/src/Form/DiscardLayoutChangesForm.php index 311bc7df3ae326fafe0b66335f85e78d11c4bdcc..7e44a03675a90420abf41a42f31dd4fa8362af1d 100644 --- a/core/modules/layout_builder/src/Form/DiscardLayoutChangesForm.php +++ b/core/modules/layout_builder/src/Form/DiscardLayoutChangesForm.php @@ -11,6 +11,9 @@ /** * Discards any pending changes to the layout. + * + * @internal + * Form classes are internal. */ class DiscardLayoutChangesForm extends ConfirmFormBase { diff --git a/core/modules/layout_builder/src/Form/LayoutBuilderDisableForm.php b/core/modules/layout_builder/src/Form/LayoutBuilderDisableForm.php index 48b42b740daac7c703025b543e57909f6ec99ecd..0a1eb58f73cd6db05bd1be4fb7aeeaa8bc648357 100644 --- a/core/modules/layout_builder/src/Form/LayoutBuilderDisableForm.php +++ b/core/modules/layout_builder/src/Form/LayoutBuilderDisableForm.php @@ -12,6 +12,9 @@ /** * Disables Layout Builder for a given default. + * + * @internal + * Form classes are internal. */ class LayoutBuilderDisableForm extends ConfirmFormBase { diff --git a/core/modules/layout_builder/src/Form/LayoutBuilderEntityViewDisplayForm.php b/core/modules/layout_builder/src/Form/LayoutBuilderEntityViewDisplayForm.php index 72edc2f5b78901ca6c9409c4b29785d52ff13fb2..12049f55c623ba3c336c5aa587db7fb1048dcca1 100644 --- a/core/modules/layout_builder/src/Form/LayoutBuilderEntityViewDisplayForm.php +++ b/core/modules/layout_builder/src/Form/LayoutBuilderEntityViewDisplayForm.php @@ -14,9 +14,7 @@ * Edit form for the LayoutBuilderEntityViewDisplay entity type. * * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. + * Form classes are internal. */ class LayoutBuilderEntityViewDisplayForm extends EntityViewDisplayEditForm { diff --git a/core/modules/layout_builder/src/Form/LayoutRebuildConfirmFormBase.php b/core/modules/layout_builder/src/Form/LayoutRebuildConfirmFormBase.php index 06f09ae9b703736bbaf6107c9d6701534b0cea34..5cf9a3ea8db2331a85fd23360444766c18702905 100644 --- a/core/modules/layout_builder/src/Form/LayoutRebuildConfirmFormBase.php +++ b/core/modules/layout_builder/src/Form/LayoutRebuildConfirmFormBase.php @@ -15,6 +15,7 @@ * Provides a base class for confirmation forms that rebuild the Layout Builder. * * @internal + * Form classes are internal. */ abstract class LayoutRebuildConfirmFormBase extends ConfirmFormBase { diff --git a/core/modules/layout_builder/src/Form/MoveBlockForm.php b/core/modules/layout_builder/src/Form/MoveBlockForm.php index d8205f95255c7c1e92532fcdca1e9dcebbcb9cc9..49e97afa72ab828f2641ed509bf7751ec556411c 100644 --- a/core/modules/layout_builder/src/Form/MoveBlockForm.php +++ b/core/modules/layout_builder/src/Form/MoveBlockForm.php @@ -13,6 +13,9 @@ /** * Provides a form for moving a block. + * + * @internal + * Form classes are internal. */ class MoveBlockForm extends FormBase { diff --git a/core/modules/layout_builder/src/Form/OverridesEntityForm.php b/core/modules/layout_builder/src/Form/OverridesEntityForm.php index 2c523a3197ce81f922c98628dfcbf134a3c5fceb..8b7ba87fbbd563c49860c2118188afef3d351a3a 100644 --- a/core/modules/layout_builder/src/Form/OverridesEntityForm.php +++ b/core/modules/layout_builder/src/Form/OverridesEntityForm.php @@ -19,6 +19,7 @@ * Provides a form containing the Layout Builder UI for overrides. * * @internal + * Form classes are internal. */ class OverridesEntityForm extends ContentEntityForm { diff --git a/core/modules/layout_builder/src/Form/RemoveBlockForm.php b/core/modules/layout_builder/src/Form/RemoveBlockForm.php index 001464b216e14c2fcc919c9776873b09d9f8cf8f..128a5147031761865289edeb09d651e5f3c4edbb 100644 --- a/core/modules/layout_builder/src/Form/RemoveBlockForm.php +++ b/core/modules/layout_builder/src/Form/RemoveBlockForm.php @@ -9,6 +9,7 @@ * Provides a form to confirm the removal of a block. * * @internal + * Form classes are internal. */ class RemoveBlockForm extends LayoutRebuildConfirmFormBase { diff --git a/core/modules/layout_builder/src/Form/RemoveSectionForm.php b/core/modules/layout_builder/src/Form/RemoveSectionForm.php index 13204ea2afafa6ccabc2f5c4012f52758523e438..7a0cb0fd4a1ed31d2fe8e3a0584f9af56169e099 100644 --- a/core/modules/layout_builder/src/Form/RemoveSectionForm.php +++ b/core/modules/layout_builder/src/Form/RemoveSectionForm.php @@ -9,6 +9,7 @@ * Provides a form to confirm the removal of a section. * * @internal + * Form classes are internal. */ class RemoveSectionForm extends LayoutRebuildConfirmFormBase { diff --git a/core/modules/layout_builder/src/Form/RevertOverridesForm.php b/core/modules/layout_builder/src/Form/RevertOverridesForm.php index 7d1b3c9fb9fedc3e5b82ef77e3c6eac3af2ed36b..e352c768f8c2915700c68d205ba02b3a98aecb58 100644 --- a/core/modules/layout_builder/src/Form/RevertOverridesForm.php +++ b/core/modules/layout_builder/src/Form/RevertOverridesForm.php @@ -12,6 +12,9 @@ /** * Reverts the overridden layout to the defaults. + * + * @internal + * Form classes are internal. */ class RevertOverridesForm extends ConfirmFormBase { diff --git a/core/modules/layout_builder/src/Form/UpdateBlockForm.php b/core/modules/layout_builder/src/Form/UpdateBlockForm.php index 59cf91fd56a284ca4d61cf68952b8ef20f63ef4e..5b6f5281048c05eb8ba5dbb2d1634323cb2e343c 100644 --- a/core/modules/layout_builder/src/Form/UpdateBlockForm.php +++ b/core/modules/layout_builder/src/Form/UpdateBlockForm.php @@ -10,6 +10,7 @@ * Provides a form to update a block. * * @internal + * Form classes are internal. */ class UpdateBlockForm extends ConfigureBlockFormBase { diff --git a/core/modules/layout_builder/src/InlineBlockEntityOperations.php b/core/modules/layout_builder/src/InlineBlockEntityOperations.php index 27c350b62751da7a1791cadec39a1a14db6d1868..37a14c1f58241ee089cfb62777fa4923040b9838 100644 --- a/core/modules/layout_builder/src/InlineBlockEntityOperations.php +++ b/core/modules/layout_builder/src/InlineBlockEntityOperations.php @@ -15,6 +15,7 @@ * Defines a class for reacting to entity events related to Inline Blocks. * * @internal + * This is an internal utility class wrapping hook implementations. */ class InlineBlockEntityOperations implements ContainerInjectionInterface { diff --git a/core/modules/layout_builder/src/LayoutBuilderEvents.php b/core/modules/layout_builder/src/LayoutBuilderEvents.php index b680f98d341b45e9d73edcc82d2d2619dea3fdd4..5b19e1c1982ccb65cc7a17d699ba3c000ce28427 100644 --- a/core/modules/layout_builder/src/LayoutBuilderEvents.php +++ b/core/modules/layout_builder/src/LayoutBuilderEvents.php @@ -6,11 +6,6 @@ * Defines events for the layout_builder module. * * @see \Drupal\layout_builder\Event\SectionComponentBuildRenderArrayEvent - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ final class LayoutBuilderEvents { diff --git a/core/modules/layout_builder/src/LayoutBuilderOverridesPermissions.php b/core/modules/layout_builder/src/LayoutBuilderOverridesPermissions.php index f166e388bb72d7d9fc429bf268be5cb0f07ae91e..20c6a5e22e58d6562b2b48ffefdce65ef032aec6 100644 --- a/core/modules/layout_builder/src/LayoutBuilderOverridesPermissions.php +++ b/core/modules/layout_builder/src/LayoutBuilderOverridesPermissions.php @@ -12,6 +12,9 @@ * Provides dynamic permissions for Layout Builder overrides. * * @see \Drupal\layout_builder\Plugin\SectionStorage\OverridesSectionStorage::access() + * + * @internal + * Dynamic permission callbacks are internal. */ class LayoutBuilderOverridesPermissions implements ContainerInjectionInterface { diff --git a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php index c730b20b2d170b29aaa933ec8cb99d5afa0c1557..71005ee48cce5aef064e8a9a0ffeb744db6f0a2c 100644 --- a/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php +++ b/core/modules/layout_builder/src/LayoutBuilderServiceProvider.php @@ -17,6 +17,7 @@ * dynamically. * * @internal + * Service providers are internal. * * @see \Drupal\layout_builder\EventSubscriber\SetInlineBlockDependency */ diff --git a/core/modules/layout_builder/src/LayoutEntityHelperTrait.php b/core/modules/layout_builder/src/LayoutEntityHelperTrait.php index c85c16073bc77fd657cc76399bfbe8ba41ba8ba7..e1c4216ce7ecbf444d96f07360148ab8c1d6c344 100644 --- a/core/modules/layout_builder/src/LayoutEntityHelperTrait.php +++ b/core/modules/layout_builder/src/LayoutEntityHelperTrait.php @@ -15,8 +15,6 @@ /** * Methods to help with entities using the layout builder. - * - * @internal */ trait LayoutEntityHelperTrait { diff --git a/core/modules/layout_builder/src/LayoutTempstoreRepository.php b/core/modules/layout_builder/src/LayoutTempstoreRepository.php index d8fbb47f292382bf298831590883710124586559..36b78948b361ed6abb443a8419425623f71c476e 100644 --- a/core/modules/layout_builder/src/LayoutTempstoreRepository.php +++ b/core/modules/layout_builder/src/LayoutTempstoreRepository.php @@ -6,8 +6,6 @@ /** * Provides a mechanism for loading layouts from tempstore. - * - * @internal */ class LayoutTempstoreRepository implements LayoutTempstoreRepositoryInterface { diff --git a/core/modules/layout_builder/src/LayoutTempstoreRepositoryInterface.php b/core/modules/layout_builder/src/LayoutTempstoreRepositoryInterface.php index 67dc59ca99d807d34b60a44778a138f5df88dca4..a4220b00f16c6fbe0259aaf2ccd98b9a2d00a4c0 100644 --- a/core/modules/layout_builder/src/LayoutTempstoreRepositoryInterface.php +++ b/core/modules/layout_builder/src/LayoutTempstoreRepositoryInterface.php @@ -4,11 +4,6 @@ /** * Provides an interface for loading layouts from tempstore. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ interface LayoutTempstoreRepositoryInterface { diff --git a/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php b/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php index c4c7640471a5a95f5ba66d1da6fe38e24b0596ef..886304fa29e50758ea4a6191b37387e1208ec3ab 100644 --- a/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php +++ b/core/modules/layout_builder/src/Normalizer/LayoutEntityDisplayNormalizer.php @@ -9,7 +9,7 @@ * Normalizes/denormalizes LayoutEntityDisplay objects into an array structure. * * @internal - * All tagged services are internal. + * Tagged services are internal. */ class LayoutEntityDisplayNormalizer extends ConfigEntityNormalizer { diff --git a/core/modules/layout_builder/src/OverridesSectionStorageInterface.php b/core/modules/layout_builder/src/OverridesSectionStorageInterface.php index b00d04d488ca4fac0751bc9caac445916908e564..94ff3bea664ce0d97dd3ee68a655fa6cd4fae813 100644 --- a/core/modules/layout_builder/src/OverridesSectionStorageInterface.php +++ b/core/modules/layout_builder/src/OverridesSectionStorageInterface.php @@ -4,11 +4,6 @@ /** * Defines an interface for an object that stores layout sections for overrides. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ interface OverridesSectionStorageInterface extends SectionStorageInterface { @@ -19,7 +14,7 @@ interface OverridesSectionStorageInterface extends SectionStorageInterface { * The defaults section storage. * * @todo Determine if this method needs a parameter in - * https://www.drupal.org/project/drupal/issues/2936507. + * https://www.drupal.org/project/drupal/issues/2907413. */ public function getDefaultSectionStorage(); diff --git a/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php b/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php index 645a09488ef284d391364b4e462d6e560afe9b44..b89f4630837c4d07e41c2fef37835ec5f8c9f373 100644 --- a/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php +++ b/core/modules/layout_builder/src/Plugin/Block/FieldBlock.php @@ -30,6 +30,9 @@ * id = "field_block", * deriver = "\Drupal\layout_builder\Plugin\Derivative\FieldBlockDeriver", * ) + * + * @internal + * Plugin classes are internal. */ class FieldBlock extends BlockBase implements ContextAwarePluginInterface, ContainerFactoryPluginInterface { diff --git a/core/modules/layout_builder/src/Plugin/DataType/SectionData.php b/core/modules/layout_builder/src/Plugin/DataType/SectionData.php index 353c53fe7cca8ad323c3ecc57c220fee253854ce..8783904d492e55907868440bf7cbea0436fd695d 100644 --- a/core/modules/layout_builder/src/Plugin/DataType/SectionData.php +++ b/core/modules/layout_builder/src/Plugin/DataType/SectionData.php @@ -13,6 +13,9 @@ * label = @Translation("Layout Section"), * description = @Translation("A layout section"), * ) + * + * @internal + * Plugin classes are internal. */ class SectionData extends TypedData { diff --git a/core/modules/layout_builder/src/Plugin/Derivative/ExtraFieldBlockDeriver.php b/core/modules/layout_builder/src/Plugin/Derivative/ExtraFieldBlockDeriver.php index 1a6bb6699bcb097f79fdd8caff57031aac9e2d13..bb61ccc15663f45cab8d234b66f77aee6ed516d4 100644 --- a/core/modules/layout_builder/src/Plugin/Derivative/ExtraFieldBlockDeriver.php +++ b/core/modules/layout_builder/src/Plugin/Derivative/ExtraFieldBlockDeriver.php @@ -17,9 +17,7 @@ * Provides entity field block definitions for every field. * * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. + * Plugin derivers are internal. */ class ExtraFieldBlockDeriver extends DeriverBase implements ContainerDeriverInterface { diff --git a/core/modules/layout_builder/src/Plugin/Derivative/FieldBlockDeriver.php b/core/modules/layout_builder/src/Plugin/Derivative/FieldBlockDeriver.php index ae6771b118f7e69ed7d15aa54a3ac0b6394947b1..97ac8114096e913f20b892b5a2d674e7895ee15a 100644 --- a/core/modules/layout_builder/src/Plugin/Derivative/FieldBlockDeriver.php +++ b/core/modules/layout_builder/src/Plugin/Derivative/FieldBlockDeriver.php @@ -18,6 +18,7 @@ * Provides entity field block definitions for every field. * * @internal + * Plugin derivers are internal. */ class FieldBlockDeriver extends DeriverBase implements ContainerDeriverInterface { diff --git a/core/modules/layout_builder/src/Plugin/Derivative/InlineBlockDeriver.php b/core/modules/layout_builder/src/Plugin/Derivative/InlineBlockDeriver.php index 1faeef1862b47d6eb51f480f2ce84648a34dc81b..2a9704bf1dc43998e39b6cc03afb833302e262e7 100644 --- a/core/modules/layout_builder/src/Plugin/Derivative/InlineBlockDeriver.php +++ b/core/modules/layout_builder/src/Plugin/Derivative/InlineBlockDeriver.php @@ -11,6 +11,7 @@ * Provides inline block plugin definitions for all custom block types. * * @internal + * Plugin derivers are internal. */ class InlineBlockDeriver extends DeriverBase implements ContainerDeriverInterface { diff --git a/core/modules/layout_builder/src/Plugin/Derivative/LayoutBuilderLocalTaskDeriver.php b/core/modules/layout_builder/src/Plugin/Derivative/LayoutBuilderLocalTaskDeriver.php index 9e4a2ce42c4fd5bb41ce4ec084d3054d11467372..9ff31404ce0bdc3bbb4b46e9bb3815db2cd1e96e 100644 --- a/core/modules/layout_builder/src/Plugin/Derivative/LayoutBuilderLocalTaskDeriver.php +++ b/core/modules/layout_builder/src/Plugin/Derivative/LayoutBuilderLocalTaskDeriver.php @@ -16,6 +16,7 @@ * @todo Remove this in https://www.drupal.org/project/drupal/issues/2936655. * * @internal + * Plugin derivers are internal. */ class LayoutBuilderLocalTaskDeriver extends DeriverBase implements ContainerDeriverInterface { diff --git a/core/modules/layout_builder/src/Plugin/Field/FieldType/LayoutSectionItem.php b/core/modules/layout_builder/src/Plugin/Field/FieldType/LayoutSectionItem.php index 0865f0c7c54a25b9dba31061bb7135396d618ddd..e876583ce41dd5e4ee30bf4533312da9bf271467 100644 --- a/core/modules/layout_builder/src/Plugin/Field/FieldType/LayoutSectionItem.php +++ b/core/modules/layout_builder/src/Plugin/Field/FieldType/LayoutSectionItem.php @@ -13,6 +13,7 @@ * Plugin implementation of the 'layout_section' field type. * * @internal + * Plugin classes are internal. * * @FieldType( * id = "layout_section", diff --git a/core/modules/layout_builder/src/Plugin/Field/FieldWidget/LayoutBuilderWidget.php b/core/modules/layout_builder/src/Plugin/Field/FieldWidget/LayoutBuilderWidget.php index 6bd40f7809624621d9a7293edc339c810efd27ad..38ffb792509e00bfeacf82313a3e931c4baa4dee 100644 --- a/core/modules/layout_builder/src/Plugin/Field/FieldWidget/LayoutBuilderWidget.php +++ b/core/modules/layout_builder/src/Plugin/Field/FieldWidget/LayoutBuilderWidget.php @@ -20,9 +20,7 @@ * ) * * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. + * Plugin classes are internal. */ class LayoutBuilderWidget extends WidgetBase { diff --git a/core/modules/layout_builder/src/Plugin/Layout/MultiWidthLayoutBase.php b/core/modules/layout_builder/src/Plugin/Layout/MultiWidthLayoutBase.php index 56f2d646b9bee040195a7315b18e8097081977d1..71ab112dfc7760b18f40faea6daaba21bc738067 100644 --- a/core/modules/layout_builder/src/Plugin/Layout/MultiWidthLayoutBase.php +++ b/core/modules/layout_builder/src/Plugin/Layout/MultiWidthLayoutBase.php @@ -10,9 +10,7 @@ * Base class of layouts with configurable widths. * * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. + * Plugin classes are internal. */ abstract class MultiWidthLayoutBase extends LayoutDefault implements PluginFormInterface { diff --git a/core/modules/layout_builder/src/Plugin/SectionStorage/DefaultsSectionStorage.php b/core/modules/layout_builder/src/Plugin/SectionStorage/DefaultsSectionStorage.php index 98e6e34df2c04c6d3d401804f7e1c4a8ef9eabfd..8c6e8afb28f2b28eaa1cdc2495f84cfd6cfd99a9 100644 --- a/core/modules/layout_builder/src/Plugin/SectionStorage/DefaultsSectionStorage.php +++ b/core/modules/layout_builder/src/Plugin/SectionStorage/DefaultsSectionStorage.php @@ -37,9 +37,7 @@ * ) * * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. + * Plugin classes are internal. */ class DefaultsSectionStorage extends SectionStorageBase implements ContainerFactoryPluginInterface, DefaultsSectionStorageInterface { diff --git a/core/modules/layout_builder/src/Plugin/SectionStorage/OverridesSectionStorage.php b/core/modules/layout_builder/src/Plugin/SectionStorage/OverridesSectionStorage.php index b35a9070e42278ba4ba28e4534ece2b8695a5b6d..cde6f497c56be3f2197b4f96a6d181c8c97f6c2b 100644 --- a/core/modules/layout_builder/src/Plugin/SectionStorage/OverridesSectionStorage.php +++ b/core/modules/layout_builder/src/Plugin/SectionStorage/OverridesSectionStorage.php @@ -44,9 +44,7 @@ * ) * * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. + * Plugin classes are internal. */ class OverridesSectionStorage extends SectionStorageBase implements ContainerFactoryPluginInterface, OverridesSectionStorageInterface, SectionStorageLocalTaskProviderInterface { diff --git a/core/modules/layout_builder/src/Plugin/SectionStorage/SectionStorageBase.php b/core/modules/layout_builder/src/Plugin/SectionStorage/SectionStorageBase.php index 90c9a4250bd01de2e273b67720c09686f4a3f24c..8c6d506c1db9accfbca061547a789736adb896d6 100644 --- a/core/modules/layout_builder/src/Plugin/SectionStorage/SectionStorageBase.php +++ b/core/modules/layout_builder/src/Plugin/SectionStorage/SectionStorageBase.php @@ -11,11 +11,6 @@ /** * Provides a base class for Section Storage types. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ abstract class SectionStorageBase extends ContextAwarePluginBase implements SectionStorageInterface, TempStoreIdentifierInterface { diff --git a/core/modules/layout_builder/src/Plugin/SectionStorage/SectionStorageLocalTaskProviderInterface.php b/core/modules/layout_builder/src/Plugin/SectionStorage/SectionStorageLocalTaskProviderInterface.php index a275d6340dd6504163d2547fa0eec557c2144d58..b7a662ea98e18838495c63ec05b79b028f7580e8 100644 --- a/core/modules/layout_builder/src/Plugin/SectionStorage/SectionStorageLocalTaskProviderInterface.php +++ b/core/modules/layout_builder/src/Plugin/SectionStorage/SectionStorageLocalTaskProviderInterface.php @@ -7,11 +7,6 @@ * * @see \Drupal\layout_builder\Plugin\Derivative\LayoutBuilderLocalTaskDeriver * @see \Drupal\layout_builder\SectionStorageInterface - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ interface SectionStorageLocalTaskProviderInterface { diff --git a/core/modules/layout_builder/src/QuickEditIntegration.php b/core/modules/layout_builder/src/QuickEditIntegration.php index b2b9a62210f7e7f5519f84b5875c38d7720e5e0b..5492b4f3359aafd3834022b81884620e74ce64a4 100644 --- a/core/modules/layout_builder/src/QuickEditIntegration.php +++ b/core/modules/layout_builder/src/QuickEditIntegration.php @@ -22,6 +22,7 @@ * Helper methods for Quick Edit module integration. * * @internal + * This is an internal utility class wrapping hook implementations. */ class QuickEditIntegration implements ContainerInjectionInterface { @@ -92,8 +93,6 @@ public static function create(ContainerInterface $container) { * * @see hook_quickedit_render_field() * @see layout_builder_quickedit_render_field() - * - * @internal */ public function entityViewAlter(array &$build, EntityInterface $entity, EntityViewDisplayInterface $display) { if (!$entity instanceof FieldableEntityInterface || !isset($build['_layout_builder'])) { @@ -243,8 +242,6 @@ public static function deconstructViewModeId($quick_edit_view_mode_id) { * * @return array * The re-rendered field. - * - * @internal */ public function quickEditRenderField(FieldableEntityInterface $entity, $field_name, $quick_edit_view_mode_id, $langcode) { list($entity_view_mode, $delta, $component_uuid) = static::deconstructViewModeId($quick_edit_view_mode_id); diff --git a/core/modules/layout_builder/src/Routing/LayoutBuilderRoutes.php b/core/modules/layout_builder/src/Routing/LayoutBuilderRoutes.php index 1046579458e0ff14bf10b552d6bb9e4feeded769..60d09379685c352718fa96e435014bbc1a8f5eb8 100644 --- a/core/modules/layout_builder/src/Routing/LayoutBuilderRoutes.php +++ b/core/modules/layout_builder/src/Routing/LayoutBuilderRoutes.php @@ -11,6 +11,7 @@ * Provides routes for the Layout Builder UI. * * @internal + * Tagged services are internal. */ class LayoutBuilderRoutes implements EventSubscriberInterface { diff --git a/core/modules/layout_builder/src/Routing/LayoutBuilderRoutesTrait.php b/core/modules/layout_builder/src/Routing/LayoutBuilderRoutesTrait.php index 9b210355db2454ea633776b9c7cecb0656277d0c..aebc9755655b8f9f375e1825f0fe6eb6366d6321 100644 --- a/core/modules/layout_builder/src/Routing/LayoutBuilderRoutesTrait.php +++ b/core/modules/layout_builder/src/Routing/LayoutBuilderRoutesTrait.php @@ -11,11 +11,6 @@ /** * Provides a trait for building routes for a Layout Builder UI. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ trait LayoutBuilderRoutesTrait { diff --git a/core/modules/layout_builder/src/Routing/LayoutTempstoreParamConverter.php b/core/modules/layout_builder/src/Routing/LayoutTempstoreParamConverter.php index 712f9ff850266d159df9440d66213928d7fd04a3..986c7527306354182a85f9da66c8068aa9a67896 100644 --- a/core/modules/layout_builder/src/Routing/LayoutTempstoreParamConverter.php +++ b/core/modules/layout_builder/src/Routing/LayoutTempstoreParamConverter.php @@ -11,6 +11,7 @@ * Loads the section storage from the layout tempstore. * * @internal + * Tagged services are internal. */ class LayoutTempstoreParamConverter implements ParamConverterInterface { diff --git a/core/modules/layout_builder/src/Section.php b/core/modules/layout_builder/src/Section.php index c78692f42c8f30e5e64a2317dfe69b7cb6fb56ea..73225d8fb55e3b8d379089c4d090fbac62870c5a 100644 --- a/core/modules/layout_builder/src/Section.php +++ b/core/modules/layout_builder/src/Section.php @@ -13,16 +13,8 @@ * - An array of settings for the layout plugin. * - An array of components that can be rendered in the section. * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. - * * @see \Drupal\Core\Layout\LayoutDefinition * @see \Drupal\layout_builder\SectionComponent - * - * @todo Determine whether an interface will be provided for this in - * https://www.drupal.org/project/drupal/issues/2930334. */ class Section implements ThirdPartySettingsInterface { diff --git a/core/modules/layout_builder/src/SectionComponent.php b/core/modules/layout_builder/src/SectionComponent.php index 4937f7fbcde669fe61c644c043b2f787877bbdfd..4003f7e7e7de876e940b47a0c9c64afd8db4b4b0 100644 --- a/core/modules/layout_builder/src/SectionComponent.php +++ b/core/modules/layout_builder/src/SectionComponent.php @@ -14,19 +14,9 @@ * \Drupal\Core\Block\BlockPluginInterface, and contain the layout region * within the section layout where the component will be rendered. * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. - * * @see \Drupal\Core\Layout\LayoutDefinition * @see \Drupal\layout_builder\Section * @see \Drupal\layout_builder\SectionStorageInterface - * - * @todo Determine whether to retain the name 'component' in - * https://www.drupal.org/project/drupal/issues/2929783. - * @todo Determine whether an interface will be provided for this in - * https://www.drupal.org/project/drupal/issues/2930334. */ class SectionComponent { diff --git a/core/modules/layout_builder/src/SectionListInterface.php b/core/modules/layout_builder/src/SectionListInterface.php index 767a27ae75929d916fd2e65f1cd2d9b15d5cd40d..9bf2009321b19291ac16202f1c5572e46e77e6a5 100644 --- a/core/modules/layout_builder/src/SectionListInterface.php +++ b/core/modules/layout_builder/src/SectionListInterface.php @@ -5,11 +5,6 @@ /** * Defines the interface for an object that stores layout sections. * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. - * * @see \Drupal\layout_builder\Section */ interface SectionListInterface extends \Countable { diff --git a/core/modules/layout_builder/src/SectionStorage/SectionStorageDefinition.php b/core/modules/layout_builder/src/SectionStorage/SectionStorageDefinition.php index bccd7d14846b9004a4c66dccebddbbe590121b93..eb9e5afc4f065e1820526590d356667b4d37188f 100644 --- a/core/modules/layout_builder/src/SectionStorage/SectionStorageDefinition.php +++ b/core/modules/layout_builder/src/SectionStorage/SectionStorageDefinition.php @@ -8,11 +8,6 @@ /** * Provides section storage type plugin definition. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ class SectionStorageDefinition extends PluginDefinition implements ContextAwarePluginDefinitionInterface { diff --git a/core/modules/layout_builder/src/SectionStorage/SectionStorageManager.php b/core/modules/layout_builder/src/SectionStorage/SectionStorageManager.php index fd14bac830bdee37fca91ca189b9630f586804cc..0257b9a2c8dea1d47629a52f56be666a0f0df090 100644 --- a/core/modules/layout_builder/src/SectionStorage/SectionStorageManager.php +++ b/core/modules/layout_builder/src/SectionStorage/SectionStorageManager.php @@ -19,11 +19,6 @@ * via \Drupal\layout_builder\SectionStorage\SectionStorageManagerInterface. * While internally depending on the parent class is necessary, external code * should only use the methods available on that interface. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ class SectionStorageManager extends DefaultPluginManager implements SectionStorageManagerInterface { diff --git a/core/modules/layout_builder/src/SectionStorage/SectionStorageManagerInterface.php b/core/modules/layout_builder/src/SectionStorage/SectionStorageManagerInterface.php index 82e7dafbe81d2619de317ade8d46e949e98445ac..d2083066ea5402dc64ac6292a95ff2f71c8dc5cd 100644 --- a/core/modules/layout_builder/src/SectionStorage/SectionStorageManagerInterface.php +++ b/core/modules/layout_builder/src/SectionStorage/SectionStorageManagerInterface.php @@ -7,11 +7,6 @@ /** * Provides the interface for a plugin manager of section storage types. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ interface SectionStorageManagerInterface extends DiscoveryInterface { diff --git a/core/modules/layout_builder/src/SectionStorage/SectionStorageTrait.php b/core/modules/layout_builder/src/SectionStorage/SectionStorageTrait.php index 4cb2b07c308a54217f56ff5e493f9622a9baee39..410e406c50ced45faf7a4ab71e2ff8642e2904eb 100644 --- a/core/modules/layout_builder/src/SectionStorage/SectionStorageTrait.php +++ b/core/modules/layout_builder/src/SectionStorage/SectionStorageTrait.php @@ -6,11 +6,6 @@ /** * Provides a trait for storing sections on an object. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ trait SectionStorageTrait { diff --git a/core/modules/layout_builder/src/SectionStorageInterface.php b/core/modules/layout_builder/src/SectionStorageInterface.php index d9063f06c4ef409813dd79e8407bfa549d636c34..41891bb7f0bbf81d3b26f19d682dae4c206d7a05 100644 --- a/core/modules/layout_builder/src/SectionStorageInterface.php +++ b/core/modules/layout_builder/src/SectionStorageInterface.php @@ -11,11 +11,6 @@ /** * Defines an interface for Section Storage type plugins. - * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. */ interface SectionStorageInterface extends SectionListInterface, PluginInspectionInterface, ContextAwarePluginInterface, AccessibleInterface { diff --git a/core/modules/layout_builder/src/TempStoreIdentifierInterface.php b/core/modules/layout_builder/src/TempStoreIdentifierInterface.php index a96e8606eb47723483e61119fcbb156b8e2091ba..037d778ffb9b0260aa3bd734a10375571645da25 100644 --- a/core/modules/layout_builder/src/TempStoreIdentifierInterface.php +++ b/core/modules/layout_builder/src/TempStoreIdentifierInterface.php @@ -5,11 +5,6 @@ /** * Provides an interface that allows an object to provide its own tempstore key. * - * @internal - * Layout Builder is currently experimental and should only be leveraged by - * experimental modules and development releases of contributed modules. - * See https://www.drupal.org/core/experimental for more information. - * * @todo Move to \Drupal\Core\TempStore in https://www.drupal.org/node/3026957. */ interface TempStoreIdentifierInterface { diff --git a/core/themes/seven/css/components/layout-builder-content-translation.css b/core/themes/seven/css/components/layout-builder-content-translation.css new file mode 100644 index 0000000000000000000000000000000000000000..59ff37c19d84457d735ec31a6e18535efbad7783 --- /dev/null +++ b/core/themes/seven/css/components/layout-builder-content-translation.css @@ -0,0 +1,4 @@ +.layout-builder-translation-warning { + background: left 2px url(../../../../misc/icons/e29700/warning.svg) no-repeat; + padding-left: 20px; +} diff --git a/core/themes/seven/seven.libraries.yml b/core/themes/seven/seven.libraries.yml index 6ae159416eb55b1e7f008388895cb1a11cf1ac35..645f4d3439d8a37b74e431a85c2d1efff95cc63f 100644 --- a/core/themes/seven/seven.libraries.yml +++ b/core/themes/seven/seven.libraries.yml @@ -131,3 +131,9 @@ media-form: css/components/media.css: {} dependencies: - media/form + +layout_builder_content_translation_admin: + version: VERSION + css: + component: + css/components/layout-builder-content-translation.css: {} diff --git a/core/themes/seven/seven.theme b/core/themes/seven/seven.theme index 479a4e310a28d9ba83a24d5379c5cbb11b591a1f..76cb9bf7729931dcb5cab8acf5b6c34d6c3b8292 100644 --- a/core/themes/seven/seven.theme +++ b/core/themes/seven/seven.theme @@ -178,3 +178,10 @@ function seven_form_media_form_alter(&$form, FormStateInterface $form_state) { $form['#attached']['library'][] = 'seven/media-form'; } } + +/** + * Implements hook_form_FORM_ID_alter() for language_content_settings_form(). + */ +function seven_form_language_content_settings_form_alter(array &$form, FormStateInterface $form_state) { + $form['#attached']['library'][] = 'seven/layout_builder_content_translation_admin'; +} diff --git a/core/themes/stable/css/layout_builder/layout-builder.css b/core/themes/stable/css/layout_builder/layout-builder.css new file mode 100644 index 0000000000000000000000000000000000000000..a4d38e60880d7e627e8f900dfbf06add3497f296 --- /dev/null +++ b/core/themes/stable/css/layout_builder/layout-builder.css @@ -0,0 +1,217 @@ +.layout-builder { + background-color: #fff; + border: 3px solid #2f91da; + padding: 1.5em 1.5em 0.5em; +} + +.layout-builder__add-section { + background-color: #f7f7f7; + width: 100%; + outline: 2px dashed #979797; + padding: 1.5em 0; + text-align: center; + margin-bottom: 1.5em; +} + +.layout-builder__link--add { + color: #686868; + border-bottom: none; + padding-left: 24px; + background: url(../../../../misc/icons/686868/plus.svg) transparent top left / 16px 16px no-repeat; +} + +.layout-builder__link--add:hover, +.layout-builder__link--add:active, +.layout-builder__link--add:focus { + border-bottom-style: none; + color: #000; +} + +.layout-builder__section { + margin-bottom: 1.5em; +} + +.layout-builder__section .ui-sortable-helper { + background-color: #fff; + outline: 2px solid #f7f7f7; +} + +.layout-builder__section .ui-state-drop { + background-color: #ffd; + outline: 2px dashed #fedb60; + margin: 20px; + padding: 30px; +} + +.layout-builder__region { + outline: 2px dashed #2f91da; +} + +.layout-builder__add-block { + background-color: #eff6fc; + padding: 1.5em 0; + text-align: center; +} + +.layout-builder__link--remove { + position: relative; + background: url(../../../../misc/icons/bebebe/ex.svg) #fff center center / 16px 16px no-repeat; + border: 1px solid #ccc; + box-sizing: border-box; + font-size: 1rem; + padding: 0; + height: 26px; + width: 26px; + white-space: nowrap; + text-indent: -9999px; + display: inline-block; + border-radius: 26px; + margin-left: -10px; + margin-right: 6px; + z-index: 2; +} + +.layout-builder__link--remove:hover { + background-image: url(../../../../misc/icons/787878/ex.svg); +} + +.layout-builder-block { + padding: 1.5em; + cursor: move; +} + +.layout-builder-block [tabindex="-1"] { + pointer-events: none; +} + +.layout-builder__message .messages { + background-repeat: no-repeat; +} +.layout-builder__message--defaults .messages { + background-image: url("../images/globe.svg"); +} +.layout-builder__message--overrides .messages { + background-image: url("../images/location.svg"); +} + +/** + * @todo Remove Umami specific styling in https://www.drupal.org/node/3043228. + */ +.layout-builder__message .messages .messages__content { + background: none; +} + +.layout-builder-block__content-preview-placeholder-label { + margin: 0; + line-height: 1.4; + font-size: 1.429em; + text-align: center; +} + +.layout-builder--content-preview-disabled .layout-builder-block { + border-bottom: 2px dashed #979797; + margin: 0; +} + +#drupal-off-canvas .layout-selection li { + display: block; + padding-bottom: 1em; +} + +#drupal-off-canvas .layout-selection li a { + display: block; + padding-top: 0.55em; +} + +#drupal-off-canvas .inline-block-create-button { + display: block; + padding: 24px; + padding-left: 44px; + font-size: 16px; + color: #eee; + border-bottom: 1px solid #333; + background: url(../../../../misc/icons/bebebe/plus.svg) transparent 16px no-repeat; +} + +#drupal-off-canvas .inline-block-create-button, +#drupal-off-canvas .inline-block-list__item { + margin: 0 -20px; + background-color: #444; +} + +#drupal-off-canvas .inline-block-create-button:hover, +#drupal-off-canvas .inline-block-list__item:hover { + background-color: #333; +} + +#drupal-off-canvas .inline-block-list { + margin-bottom: 15px; +} + +#drupal-off-canvas .inline-block-list__item { + display: block; + padding: 15px 0 15px 25px; +} + +.layout-builder__add-section.is-layout-builder-highlighted { + margin-bottom: calc(1.5em - 8px); + outline: none; +} +.layout-builder__layout.is-layout-builder-highlighted, +.layout-builder-block.is-layout-builder-highlighted, +.layout-builder__add-block.is-layout-builder-highlighted { + margin: -4px -2px; + position: relative; + z-index: 1; +} +.layout-builder__add-block.is-layout-builder-highlighted, +.layout-builder__add-section.is-layout-builder-highlighted, +.layout-builder__layout.is-layout-builder-highlighted:before, +.layout-builder__layout.is-layout-builder-highlighted, +.layout-builder-block.is-layout-builder-highlighted { + border: 4px solid #000; +} + +/* Highlight the active block in the Move Block dialog. */ +#drupal-off-canvas .layout-builder-components-table__block-label--current { + border-left: solid 5px; + padding-left: 17px; +} + +/** + * @todo remove in https://www.drupal.org/project/drupal/issues/3042127 + * This rule ensures the row weight dropdowns in the Move Block dialog + * maintain the background color of their container when they are hovered + * over or are inside the active row. + */ +#drupal-off-canvas .layout-builder-components-table__row .form-item { + background-color: transparent; +} + +.layout-builder__region-label, +.layout-builder__section-label { + display: none; +} + +.layout-builder--move-blocks-active .layout-builder__region-label { + display: block; +} + +.layout-builder--move-blocks-active .layout-builder__section-label { + display: inline; +} + +.layout__region-info { + padding: 0.5em; + text-align: center; + border-bottom: 2px dashed #979797; +} + +/** + * Remove "You have unsaved changes" warning because Layout Builder always has + * unsaved changes until "Save layout" is submitted. + * @todo create issue for todo. + */ +.layout-builder-components-table .tabledrag-changed-warning { + display: none !important; +} diff --git a/core/themes/stable/layouts/fourcol_section/fourcol_section.css b/core/themes/stable/layouts/fourcol_section/fourcol_section.css new file mode 100644 index 0000000000000000000000000000000000000000..de1f3f87f39625074f3af7435faa07680d966a9d --- /dev/null +++ b/core/themes/stable/layouts/fourcol_section/fourcol_section.css @@ -0,0 +1,19 @@ +/* + * @file + * Provides the layout styles for four-column layout section. + */ + +.layout--fourcol-section { + display: flex; + flex-wrap: wrap; +} + +.layout--fourcol-section > .layout__region { + flex: 0 1 100%; +} + +@media screen and (min-width: 40em) { + .layout--fourcol-section > .layout__region { + flex: 0 1 25%; + } +} diff --git a/core/themes/stable/layouts/fourcol_section/layout--fourcol-section.html.twig b/core/themes/stable/layouts/fourcol_section/layout--fourcol-section.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..9a380f76e01dc3d54252c76ed86e4a50fd5b378f --- /dev/null +++ b/core/themes/stable/layouts/fourcol_section/layout--fourcol-section.html.twig @@ -0,0 +1,47 @@ +{# +/** + * @file + * Default theme implementation for a four-column 25%-25%-25%-25% layout. + * + * Available variables: + * - content: The content for this layout. + * - attributes: HTML attributes for the layout <div>. + * + * @ingroup themeable + */ +#} +{% + set classes = [ + 'layout', + 'layout--fourcol-section', + ] +%} +{% if content %} + <div{{ attributes.addClass(classes) }}> + + {% if content.first %} + <div {{ region_attributes.first.addClass('layout__region', 'layout__region--first') }}> + {{ content.first }} + </div> + {% endif %} + + {% if content.second %} + <div {{ region_attributes.second.addClass('layout__region', 'layout__region--second') }}> + {{ content.second }} + </div> + {% endif %} + + {% if content.third %} + <div {{ region_attributes.third.addClass('layout__region', 'layout__region--third') }}> + {{ content.third }} + </div> + {% endif %} + + {% if content.fourth %} + <div {{ region_attributes.fourth.addClass('layout__region', 'layout__region--fourth') }}> + {{ content.fourth }} + </div> + {% endif %} + + </div> +{% endif %} diff --git a/core/themes/stable/layouts/threecol_section/layout--threecol-section.html.twig b/core/themes/stable/layouts/threecol_section/layout--threecol-section.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..1311f28ab2a18bb98e873177804ba5a5dbbb0d42 --- /dev/null +++ b/core/themes/stable/layouts/threecol_section/layout--threecol-section.html.twig @@ -0,0 +1,35 @@ +{# +/** + * @file + * Default theme implementation for a three-column layout. + * + * Available variables: + * - content: The content for this layout. + * - attributes: HTML attributes for the layout <div>. + * + * @ingroup themeable + */ +#} +{% if content %} + <div{{ attributes.addClass(classes) }}> + + {% if content.first %} + <div {{ region_attributes.first.addClass('layout__region', 'layout__region--first') }}> + {{ content.first }} + </div> + {% endif %} + + {% if content.second %} + <div {{ region_attributes.second.addClass('layout__region', 'layout__region--second') }}> + {{ content.second }} + </div> + {% endif %} + + {% if content.third %} + <div {{ region_attributes.third.addClass('layout__region', 'layout__region--third') }}> + {{ content.third }} + </div> + {% endif %} + + </div> +{% endif %} diff --git a/core/themes/stable/layouts/threecol_section/threecol_section.css b/core/themes/stable/layouts/threecol_section/threecol_section.css new file mode 100644 index 0000000000000000000000000000000000000000..49b5578bfc3cab7492a084d98599b394d14b4a11 --- /dev/null +++ b/core/themes/stable/layouts/threecol_section/threecol_section.css @@ -0,0 +1,36 @@ +/* + * @file + * Provides the layout styles for three-column layout section. + */ + +.layout--threecol-section { + display: flex; + flex-wrap: wrap; +} + +.layout--threecol-section > .layout__region { + flex: 0 1 100%; +} + +@media screen and (min-width: 40em) { + .layout--threecol-section--25-50-25 > .layout__region--first, + .layout--threecol-section--25-50-25 > .layout__region--third, + .layout--threecol-section--25-25-50 > .layout__region--first, + .layout--threecol-section--25-25-50 > .layout__region--second, + .layout--threecol-section--50-25-25 > .layout__region--second, + .layout--threecol-section--50-25-25 > .layout__region--third { + flex: 0 1 25%; + } + .layout--threecol-section--25-50-25 > .layout__region--second, + .layout--threecol-section--25-25-50 > .layout__region--third, + .layout--threecol-section--50-25-25 > .layout__region--first { + flex: 0 1 50%; + } + .layout--threecol-section--33-34-33 > .layout__region--first, + .layout--threecol-section--33-34-33 > .layout__region--third { + flex: 0 1 33%; + } + .layout--threecol-section--33-34-33 > .layout__region--second { + flex: 0 1 34%; + } +} diff --git a/core/themes/stable/layouts/twocol_section/layout--twocol-section.html.twig b/core/themes/stable/layouts/twocol_section/layout--twocol-section.html.twig new file mode 100644 index 0000000000000000000000000000000000000000..a5d1d36376b75a26b074f5739fde80971c220603 --- /dev/null +++ b/core/themes/stable/layouts/twocol_section/layout--twocol-section.html.twig @@ -0,0 +1,29 @@ +{# +/** + * @file + * Default theme implementation to display a two-column layout. + * + * Available variables: + * - content: The content for this layout. + * - attributes: HTML attributes for the layout <div>. + * + * @ingroup themeable + */ +#} +{% if content %} + <div{{ attributes }}> + + {% if content.first %} + <div {{ region_attributes.first.addClass('layout__region', 'layout__region--first') }}> + {{ content.first }} + </div> + {% endif %} + + {% if content.second %} + <div {{ region_attributes.second.addClass('layout__region', 'layout__region--second') }}> + {{ content.second }} + </div> + {% endif %} + + </div> +{% endif %} diff --git a/core/themes/stable/layouts/twocol_section/twocol_section.css b/core/themes/stable/layouts/twocol_section/twocol_section.css new file mode 100644 index 0000000000000000000000000000000000000000..0d212233508e58adab640bf0531e68ed1a8f811c --- /dev/null +++ b/core/themes/stable/layouts/twocol_section/twocol_section.css @@ -0,0 +1,40 @@ +/* + * @file + * Provides the layout styles for two-column layout section. + */ + +.layout--twocol-section { + display: flex; + flex-wrap: wrap; +} + +.layout--twocol-section > .layout__region { + flex: 0 1 100%; +} + +@media screen and (min-width: 40em) { + .layout--twocol-section.layout--twocol-section--50-50 > .layout__region--first, + .layout--twocol-section.layout--twocol-section--50-50 > .layout__region--second { + flex: 0 1 50%; + } + + .layout--twocol-section.layout--twocol-section--33-67 > .layout__region--first, + .layout--twocol-section.layout--twocol-section--67-33 > .layout__region--second { + flex: 0 1 33%; + } + + .layout--twocol-section.layout--twocol-section--33-67 > .layout__region--second, + .layout--twocol-section.layout--twocol-section--67-33 > .layout__region--first { + flex: 0 1 67%; + } + + .layout--twocol-section.layout--twocol-section--25-75 > .layout__region--first, + .layout--twocol-section.layout--twocol-section--75-25 > .layout__region--second { + flex: 0 1 25%; + } + + .layout--twocol-section.layout--twocol-section--25-75 > .layout__region--second, + .layout--twocol-section.layout--twocol-section--75-25 > .layout__region--first { + flex: 0 1 75%; + } +} diff --git a/core/themes/stable/stable.info.yml b/core/themes/stable/stable.info.yml index 8d774ce2351ad4441db51c67b032b388704e3709..ea26e952277ee68b91ffaa0ea2bbe5386fd34e76 100644 --- a/core/themes/stable/stable.info.yml +++ b/core/themes/stable/stable.info.yml @@ -134,6 +134,11 @@ libraries-override: theme: css/language.admin.css: css/language/language.admin.css + layout_builder/drupal.layout_builder: + css: + theme: + css/layout-builder.css: css/layout_builder/layout-builder.css + locale/drupal.locale.admin: css: component: