Commit fab8d1e7 authored by xjm's avatar xjm

Issue #3041053 by tim.plunkett, tedbow, xjm, larowlan, phenaproxima, webchick,...

Issue #3041053 by tim.plunkett, tedbow, xjm, larowlan, phenaproxima, webchick, effulgentsia, DyanneNova, Sam152, lauriii, dead_arm, bnjmmn, balsama: Mark Layout Builder as a stable module
parent 51cc6680
......@@ -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
......
/* @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;
}
......@@ -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;
}
......
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:
......
......@@ -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: {}
......@@ -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',
],
],
],
];
}
......
......@@ -15,6 +15,7 @@
* @ingroup layout_builder_access
*
* @internal
* Tagged services are internal.
*/
class LayoutBuilderAccessCheck implements AccessInterface {
......
......@@ -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 {
......
......@@ -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
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -14,6 +14,7 @@
* Defines a controller to add a new section.
*
* @internal
* Controller classes are internal.
*/
class AddSectionController implements ContainerInjectionInterface {
......
......@@ -18,6 +18,7 @@
* Defines a controller to choose a new block.
*
* @internal
* Controller classes are internal.
*/
class ChooseBlockController implements ContainerInjectionInterface {
......
......@@ -16,6 +16,7 @@
* Defines a controller to choose a new section.
*
* @internal
* Controller classes are internal.
*/
class ChooseSectionController implements ContainerInjectionInterface {
......
......@@ -9,6 +9,7 @@
* Defines a controller to provide the Layout Builder admin UI.
*
* @internal
* Controller classes are internal.
*/
class LayoutBuilderController {
......
......@@ -9,8 +9,6 @@
/**
* Provides AJAX responses to rebuild the Layout Builder.
*
* @internal
*/
trait LayoutRebuildTrait {
......
......@@ -11,6 +11,7 @@
* Defines a controller to move a block.
*
* @internal
* Controller classes are internal.
*/
class MoveBlockController implements ContainerInjectionInterface {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -27,6 +27,7 @@
* the dependency.
*
* @internal
* Tagged services are internal.
*
* @see \Drupal\file\FileAccessControlHandler::checkAccess()
* @see \Drupal\block_content\BlockContentAccessControlHandler::checkAccess()
......
......@@ -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
*/
......
......@@ -11,6 +11,7 @@
* Provides a form to add a block.
*
* @internal
* Form classes are internal.
*/
class AddBlockForm extends ConfigureBlockFormBase {
......
......@@ -27,6 +27,7 @@
* Provides a base form for configuring a block.
*
* @internal
* Form classes are internal.
*/
abstract class ConfigureBlockFormBase extends FormBase implements BaseFormIdInterface {
......
......@@ -21,6 +21,7 @@
* Provides a form for configuring a layout section.
*
* @internal
* Form classes are internal.
*/
class ConfigureSectionForm extends FormBase {
......
......@@ -15,6 +15,7 @@
* Provides a form containing the Layout Builder UI for defaults.
*
* @internal
* Form classes are internal.
*/
class DefaultsEntityForm extends EntityForm {
......
......@@ -11,6 +11,9 @@
/**
* Discards any pending changes to the layout.
*
* @internal
* Form classes are internal.
*/
class DiscardLayoutChangesForm extends ConfirmFormBase {
......
......@@ -12,6 +12,9 @@
/**
* Disables Layout Builder for a given default.
*
* @internal
* Form classes are internal.
*/
class LayoutBuilderDisableForm extends ConfirmFormBase {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -13,6 +13,9 @@
/**
* Provides a form for moving a block.
*
* @internal
* Form classes are internal.
*/
class MoveBlockForm extends FormBase {
......
......@@ -19,6 +19,7 @@
* Provides a form containing the Layout Builder UI for overrides.
*
* @internal
* Form classes are internal.
*/
class OverridesEntityForm extends ContentEntityForm {
......
......@@ -9,6 +9,7 @@
* Provides a form to confirm the removal of a block.
*
* @internal
* Form classes are internal.
*/
class RemoveBlockForm extends LayoutRebuildConfirmFormBase {
......
......@@ -9,6 +9,7 @@
* Provides a form to confirm the removal of a section.
*
* @internal
* Form classes are internal.
*/
class RemoveSectionForm extends LayoutRebuildConfirmFormBase {
......
......@@ -12,6 +12,9 @@
/**
* Reverts the overridden layout to the defaults.
*
* @internal
* Form classes are internal.
*/
class RevertOverridesForm extends ConfirmFormBase {
......
......@@ -10,6 +10,7 @@
* Provides a form to update a block.
*
* @internal
* Form classes are internal.
*/
class UpdateBlockForm extends ConfigureBlockFormBase {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -17,6 +17,7 @@
* dynamically.
*
* @internal
* Service providers are internal.
*
* @see \Drupal\layout_builder\EventSubscriber\SetInlineBlockDependency
*/
......
......@@ -15,8 +15,6 @@
/**
* Methods to help with entities using the layout builder.
*
* @internal
*/
trait LayoutEntityHelperTrait {
......
......@@ -6,8 +6,6 @@
/**
* Provides a mechanism for loading layouts from tempstore.
*
* @internal
*/
class LayoutTempstoreRepository implements LayoutTempstoreRepositoryInterface {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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();
......
......@@ -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 {
......
......@@ -13,6 +13,9 @@
* label = @Translation("Layout Section"),
* description = @Translation("A layout section"),
* )
*
* @internal
* Plugin classes are internal.
*/
class SectionData extends TypedData {
......
......@@ -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 {
......
......@@ -18,6 +18,7 @@
* Provides entity field block definitions for every field.
*
* @internal
* Plugin derivers are internal.
*/
class FieldBlockDeriver extends DeriverBase implements ContainerDeriverInterface {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -13,6 +13,7 @@
* Plugin implementation of the 'layout_section' field type.
*
* @internal
* Plugin classes are internal.
*
* @FieldType(
* id = "layout_section",
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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 {
......
......@@ -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);