diff --git a/.cspell.json b/.cspell.json
new file mode 100644
index 0000000000000000000000000000000000000000..bb0ab3626c001bc5ce0890f3c19514297ffc70b9
--- /dev/null
+++ b/.cspell.json
@@ -0,0 +1,28 @@
+{
+  "words": [
+    "animatecss",
+    "autocollapse",
+    "autoresize",
+    "builderlink",
+    "contentvlsuite",
+    "cpath",
+    "crect",
+    "csvg",
+    "deprecatedfield",
+    "dialogclose",
+    "dynamize",
+    "fourcols",
+    "galleryvlsuite",
+    "groupelement",
+    "linuxfoundation",
+    "navlink",
+    "scrollpy",
+    "swiperjs",
+    "tada",
+    "textdirection",
+    "threecols",
+    "twocols",
+    "uidom",
+    "webforms"
+  ]
+}
diff --git a/README.md b/README.md
index c408072917597528f05698c0af23213c67d3365a..de58783e6b1c8f7fadac1e3102675e87e8fe7c83 100644
--- a/README.md
+++ b/README.md
@@ -11,9 +11,9 @@ With collection blocks you will also find a preset of glossaries inside library.
 
 You will be able to use all that as a reference to extend it, modify it after initial installation & apply to any other entity using layout builder.
 
-Although this site editing experience out of the box is available thanks to the utility classes provided by Bootstrap 5, you can use any other theme or CSS framework as long as the utility classes for each functionality you use are available. VLSuite adds theme classes for you avoiding having to override templates in most of cases, also it uses an identifiers base system that allows you to change clasees or extend it without having to touch any code.
+Although this site editing experience out of the box is available thanks to the utility classes provided by Bootstrap 5, you can use any other theme or CSS framework as long as the utility classes for each functionality you use are available. VLSuite adds theme classes for you avoiding having to override templates in most of cases, also it uses an identifiers base system that allows you to change classes or extend it without having to touch any code.
 
-Besides you will be able to see a live preview of any utility applied directly just whit overing each utility option, and apply it just clicking on it.
+Besides you will be able to see a live preview of any utility applied directly just hovering each utility option, and apply it just clicking on it.
 
 Additionally, developers may extend the content authoring experience by adding custom layouts or blocks to have them ready to be used by Content Editors within a few clicks. Also use any other approach block for specific use cases if you need (contrib or custom).
 
@@ -21,7 +21,7 @@ Additionally, developers may extend the content authoring experience by adding c
 - Built upon Drupal Core’s Layout builder.
 - What You See is What You Get experience at the layout and content level, including appearance variants.
 - Editor experience greatly improved over what core provides.
-- Live preview of appearance variants applied by utitlities
+- Live preview of appearance variants applied by utilities
 - Reusable section or complete layouts from your site using layout library.
 - Permissions allow different levels of content editing for users (each utility can be marked as "Advanced" or not).
 - No distribution, profile or theme dependency.
@@ -53,13 +53,13 @@ You can easily set up a new custom block for your project, and within a few clic
 **Please follow these steps carefully to avoid wrong setup, check it again if you experience any inconvenience.**
 
 - Highly recommended using composer to get all dependencies, just use suggested command below (recommended using 1.1.x version to get live preview, collection blocks & many other new features).
-- Make sure your site can use patches; Require "cweagans/composer-patches" & set "enable-patching: true" or apply them by your own (see composer.json inside module in that case). This is a required step to warantee best experience.
+- Make sure your site can use patches; Require "cweagans/composer-patches" & set "enable-patching: true" or apply them by your own (see composer.json inside module in that case). This is a required step to warranty best experience.
 - If you use a bootstrap 5 based theme, make sure "container" class is not added into pages of content using layout builder & VLSuite. Editor will be able to choose if he wants an "Edge to edge" section for each VLSuite section. Floating UI may work incorrectly if you omit this step.
-- Otherwhise using other framework just adjust utility clases by UI or yml to your theme.
+- Otherwise using other framework just adjust utility classes by UI or yml to your theme.
 - Recommended enabling "VLSuite Demo" for faster initial setup (all dependencies, configurations & all requirements are automated). Or enable just modules with features of your choice. That single module will be auto-disabled after doing his job. Core 11 installation note https://drupal.org/i/3435575#comment-15800647
 - Also recommended enabling "VLSuite Shuttle" for faster initial setup but with your own customizations of medias, node & blocks (all dependencies, configurations & all requirements are automated). Or enable just modules with features of your choice. That single module will be auto-disabled after doing his job.
-- Customize any config or provided preset of everytning provided at your choice if you need it (utility classes, collection blocks view modes, medias to be used as background among other).
-- If you don't need all landings to have same content top & botom structure disable "Full content bottom (VLSuite)" & "Full content top (VLSuite)" displays in "/admin/structure/types/manage/vlsuite_landing/display".
+- Customize any config or provided preset of everything provided at your choice if you need it (utility classes, collection blocks view modes, medias to be used as background among other).
+- If you don't need all landings to have same content top & bottom structure disable "Full content bottom (VLSuite)" & "Full content top (VLSuite)" displays in "/admin/structure/types/manage/vlsuite_landing/display".
 - Assign VLSuite permissions and/or role to users of your choice & start creating awesome highly customizable content.
 
 ## Useful notes
@@ -69,7 +69,7 @@ Installed with demo or shuttle installation, or enable "vlsuite_block_headings_m
 
 This block will show an automatically generated menu based on headings (h1...h6) of section where placed.
 To use add a "Two columns with optional top & bottom (VLSuite)" section, place "Block Headings Menu (VLSuite)" on first region, & whatever you like on second (in reverse way menu will be empty, compatible with field blocks, views blocks & block content blocks).
-Notes: Base implementation is as described, yo can extend or modify its behaviour by code.
+Notes: Base implementation is as described, you can extend or modify its behavior by code.
 Used html format of fields that will be used on second region must allow "id" attribute in hx tags in order to have anchors working (see vlsuite "vlsuite:vlsuite_format -> Basic HTML (VLSuite)" as reference).
 
 **Global**
@@ -77,8 +77,8 @@ Use VLSuite demo provided preset as reference for whatever you like to do:
 
 - Apply utility classes to new blocks.
 - See how it works "vlsuite content top & vlsuite content bottom with full view modes".
-- See how to extend or restrict allowed blocks into landing (my new block does not appear to be used on landing node layout builder or whitout possibility to use utilities). That is configured into full customizable layout "Layout options", provided by "layout_builder_restrictions" contrib dependency.
+- See how to extend or restrict allowed blocks into landing (my new block does not appear to be used on landing node layout builder or without possibility to use utilities). That is configured into full customizable layout "Layout options", provided by "layout_builder_restrictions" contrib dependency.
 - Add or use content to/of library. Provided by contrib dependency section library module.
-- My editor role can't apply utilities, modify section options or use slider in sections or fields blocks with multiple cardinallity: make sure you granted "VLSuite" permissions to make that actions to your role. Also make sure su you use "vlsuite_x" block variants not "core" or vlsuite options won't appear.
+- My editor role can't apply utilities, modify section options or use slider in sections or fields blocks with multiple cardinality: make sure you granted "VLSuite" permissions to make that actions to your role. Also make sure su you use "vlsuite_x" block variants not "core" or vlsuite options won't appear.
 - Slider does not work: make sure your views-view.html.twig template adds a "div.view-content" wrapping rows output (see artisan:views sdc component as reference).
 - ...
diff --git a/modules/vlsuite_animations/src/Form/VLSuiteAnimationsSettingsForm.php b/modules/vlsuite_animations/src/Form/VLSuiteAnimationsSettingsForm.php
index 71f02f707f6509eab143bca3c2d29d6e579ae2e2..3f2dbc3ea0ef044e72cff1d3df6eb61b08bbd48f 100644
--- a/modules/vlsuite_animations/src/Form/VLSuiteAnimationsSettingsForm.php
+++ b/modules/vlsuite_animations/src/Form/VLSuiteAnimationsSettingsForm.php
@@ -66,7 +66,7 @@ final class VLSuiteAnimationsSettingsForm extends ConfigFormBase {
    * @return array
    *   Animations processed.
    */
-  protected function animationsTreeValuesProccesed(array $animations) {
+  protected function animationsTreeValuesProcessed(array $animations) {
     $animations_processed = [];
     foreach ($animations as $animation_delta => $animation) {
       $animations_processed[$animation_delta]['identifier'] = $animation['identifier'];
@@ -86,7 +86,7 @@ final class VLSuiteAnimationsSettingsForm extends ConfigFormBase {
    *   Form state.
    */
   public function addAnimation(array $form, FormStateInterface $form_state) {
-    $animations = $this->animationsTreeValuesProccesed($form_state->getValue('animations', []));
+    $animations = $this->animationsTreeValuesProcessed($form_state->getValue('animations', []));
     $animations[] = [];
     $form_state->set('animations', $animations);
     $form_state->setRebuild();
@@ -102,7 +102,7 @@ final class VLSuiteAnimationsSettingsForm extends ConfigFormBase {
    */
   public function removeAnimation(array $form, FormStateInterface $form_state) {
     $animation_delta = $form_state->getTriggeringElement()['#animation_delta'];
-    $animations = $this->animationsTreeValuesProccesed($form_state->getValue('animations', []));
+    $animations = $this->animationsTreeValuesProcessed($form_state->getValue('animations', []));
     unset($animations[$animation_delta]);
     $form_state->set('animations', $animations);
     $form_state->setRebuild();
@@ -175,7 +175,7 @@ final class VLSuiteAnimationsSettingsForm extends ConfigFormBase {
         '#tree' => FALSE,
         '#attributes' => ['class' => ['button--danger']],
         '#value' => $this->t('Remove animation'),
-        '#suffix' => $this->t('WARNING! Make sure no usement before removing.'),
+        '#suffix' => $this->t('WARNING! Make sure no usage before removing.'),
         '#submit' => ['::removeAnimation'],
         '#name' => 'animation_remove_animation_' . $delta,
         '#animation_delta' => $delta,
@@ -253,7 +253,7 @@ final class VLSuiteAnimationsSettingsForm extends ConfigFormBase {
     $form['basics']['main_classes'] = [
       '#type' => 'textfield',
       '#required' => TRUE,
-      '#title' => $this->t('Main class (or classes) to add along with the animation spicific one'),
+      '#title' => $this->t('Main class (or classes) to add along with the animation specific one'),
       '#description' => $this->t('Example "animate__animated". Separated by " " when multiple.'),
       '#default_value' => $this->configFactory->get('vlsuite_animations.settings')->get('main_classes'),
     ];
diff --git a/modules/vlsuite_animations/src/VLSuiteAnimationsHelper.php b/modules/vlsuite_animations/src/VLSuiteAnimationsHelper.php
index b9cab9d7d385f041b2234568c4f59076fe1d95fe..c3a0d4431200a8c073ee95f1eae72a09fcea3c8d 100644
--- a/modules/vlsuite_animations/src/VLSuiteAnimationsHelper.php
+++ b/modules/vlsuite_animations/src/VLSuiteAnimationsHelper.php
@@ -100,7 +100,7 @@ class VLSuiteAnimationsHelper {
    * @param array $defaults
    *   Config for default values.
    * @param array $scope_options
-   *   Scrope options where to apply (e.g: regions for section).
+   *   Scope options where to apply (e.g: regions for section).
    *
    * @return array
    *   Form element.
diff --git a/modules/vlsuite_block/modules/vlsuite_block_cta/vlsuite_block_cta.install b/modules/vlsuite_block/modules/vlsuite_block_cta/vlsuite_block_cta.install
index dd58dc1b11d4ea1cbe3dfd7ddea7b3f4f0e43727..53f596371fb153a028fa04695c47bf435f80e169 100644
--- a/modules/vlsuite_block/modules/vlsuite_block_cta/vlsuite_block_cta.install
+++ b/modules/vlsuite_block/modules/vlsuite_block_cta/vlsuite_block_cta.install
@@ -5,6 +5,8 @@
  * VLSuite - Block - CTA install module file.
  */
 
+use Drupal\vlsuite_block_cta\Entity\Bundle\VLSuiteBlockCta;
+
 /**
  * Implements hook_install().
  */
diff --git a/modules/vlsuite_block/modules/vlsuite_block_icon/vlsuite_block_icon.install b/modules/vlsuite_block/modules/vlsuite_block_icon/vlsuite_block_icon.install
index 5289db1c20aa05c8028cba20b9e5f07d750e1849..ab7e5c6064587fa2edd0691bddccda4c52e135b6 100644
--- a/modules/vlsuite_block/modules/vlsuite_block_icon/vlsuite_block_icon.install
+++ b/modules/vlsuite_block/modules/vlsuite_block_icon/vlsuite_block_icon.install
@@ -5,6 +5,8 @@
  * VLSuite - Block - Icon install module file.
  */
 
+use Drupal\vlsuite_block_icon\Entity\Bundle\VLSuiteBlockIcon;
+
 /**
  * Implements hook_install().
  */
diff --git a/modules/vlsuite_block/modules/vlsuite_block_image/vlsuite_block_image.install b/modules/vlsuite_block/modules/vlsuite_block_image/vlsuite_block_image.install
index e061a73bbcdeed1e7597d8fcea2f1535a41f9343..0e69cff7d8bf7bef6f1f19ff7362b704d325de97 100644
--- a/modules/vlsuite_block/modules/vlsuite_block_image/vlsuite_block_image.install
+++ b/modules/vlsuite_block/modules/vlsuite_block_image/vlsuite_block_image.install
@@ -5,6 +5,8 @@
  * VLSuite - Block - Image install module file.
  */
 
+use Drupal\vlsuite_block_image\Entity\Bundle\VLSuiteBlockImage;
+
 /**
  * Implements hook_install().
  */
diff --git a/modules/vlsuite_block/src/Plugin/Block/VLSuiteMediaBgFieldBlock.php b/modules/vlsuite_block/src/Plugin/Block/VLSuiteMediaBgFieldBlock.php
index d64a4d08f96cc68509caa3cf04b11dc2d5a6444f..e8a55c7202589540aef54ba063acffd8f0af54ea 100644
--- a/modules/vlsuite_block/src/Plugin/Block/VLSuiteMediaBgFieldBlock.php
+++ b/modules/vlsuite_block/src/Plugin/Block/VLSuiteMediaBgFieldBlock.php
@@ -22,7 +22,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  *   deriver = "\Drupal\vlsuite_block\Plugin\Derivative\VLSuiteMediaBgFieldBlockDeriver",
  * )
  */
-class VLSuiteMediaBgFieldBlock extends BlockBase implements ContextAwarePluginInterface, ContainerFactoryPluginInterface {
+final class VLSuiteMediaBgFieldBlock extends BlockBase implements ContextAwarePluginInterface, ContainerFactoryPluginInterface {
 
   /**
    * The entity field manager.
@@ -128,7 +128,7 @@ class VLSuiteMediaBgFieldBlock extends BlockBase implements ContextAwarePluginIn
    * Get media background identifier.
    *
    * @return int
-   *   Media indentifier from entity value.
+   *   Media identifier from entity value.
    */
   public function getMediaBgId() {
     $media_id = 0;
diff --git a/modules/vlsuite_block/src/Plugin/Derivative/VLSuiteMediaBgFieldBlockDeriver.php b/modules/vlsuite_block/src/Plugin/Derivative/VLSuiteMediaBgFieldBlockDeriver.php
index 38f4bafabfc19e1b3d8c80a77c1ea073c450a025..baffda085d7f2e23502c824bee0c9733b3a7ff4d 100644
--- a/modules/vlsuite_block/src/Plugin/Derivative/VLSuiteMediaBgFieldBlockDeriver.php
+++ b/modules/vlsuite_block/src/Plugin/Derivative/VLSuiteMediaBgFieldBlockDeriver.php
@@ -3,7 +3,15 @@
 namespace Drupal\vlsuite_block\Plugin\Derivative;
 
 use Drupal\Component\Plugin\PluginBase;
+use Drupal\Core\Config\ConfigFactoryInterface;
+use Drupal\Core\Entity\EntityTypeRepositoryInterface;
+use Drupal\Core\Entity\EntityFieldManagerInterface;
+use Drupal\Core\Field\FieldTypePluginManagerInterface;
+use Drupal\Core\Field\FormatterPluginManager;
+use Drupal\Core\Config\Entity\ConfigEntityStorageInterface;
+use Drupal\Core\Extension\ModuleHandlerInterface;
 use Drupal\layout_builder\Plugin\Derivative\FieldBlockDeriver;
+use Symfony\Component\DependencyInjection\ContainerInterface;
 
 /**
  * Entity field block definitions for each field that can be used as section bg.
@@ -11,7 +19,45 @@ use Drupal\layout_builder\Plugin\Derivative\FieldBlockDeriver;
  * @internal
  *   Plugin derivers are internal.
  */
-class VLSuiteMediaBgFieldBlockDeriver extends FieldBlockDeriver {
+final class VLSuiteMediaBgFieldBlockDeriver extends FieldBlockDeriver {
+
+  /**
+   * The config factory.
+   *
+   * @var \Drupal\Core\Config\ConfigFactoryInterface
+   */
+  protected $configFactory;
+
+  /**
+   * Constructs a new VLSuiteMediaBgFieldBlockDeriver.
+   */
+  public function __construct(
+    EntityTypeRepositoryInterface $entity_type_repository,
+    EntityFieldManagerInterface $entity_field_manager,
+    FieldTypePluginManagerInterface $field_type_manager,
+    FormatterPluginManager $formatter_manager,
+    ConfigEntityStorageInterface $entityViewDisplayStorage,
+    ModuleHandlerInterface $moduleHandler,
+    ConfigFactoryInterface $config_factory,
+  ) {
+    parent::__construct($entity_type_repository, $entity_field_manager, $field_type_manager, $formatter_manager, $entityViewDisplayStorage, $moduleHandler);
+    $this->configFactory = $config_factory;
+  }
+
+  /**
+   * {@inheritdoc}
+   */
+  public static function create(ContainerInterface $container, $base_plugin_id) {
+    return new static(
+      $container->get('entity_type.repository'),
+      $container->get('entity_field.manager'),
+      $container->get('plugin.manager.field.field_type'),
+      $container->get('plugin.manager.field.formatter'),
+      $container->get('entity_type.manager')->getStorage('entity_view_display'),
+      $container->get('module_handler'),
+      $container->get('config.factory')
+    );
+  }
 
   /**
    * {@inheritdoc}
@@ -24,7 +70,7 @@ class VLSuiteMediaBgFieldBlockDeriver extends FieldBlockDeriver {
       $field_definition = $this->entityFieldManager->getFieldDefinitions($entity_type_id, $bundle)[$field_name];
       $target_type = $field_definition->getType() == 'entity_reference' ? $field_definition->getFieldStorageDefinition()->getSetting('target_type') : NULL;
       $allowed_bundles = $target_type === 'media' ? array_keys($field_definition->getSetting('handler_settings')['target_bundles'] ?? []) : [];
-      $bg_types = array_keys(\Drupal::configFactory()->get('vlsuite_media.settings')->get('bg_types') ?? []);
+      $bg_types = array_keys($this->configFactory->get('vlsuite_media.settings')->get('bg_types') ?? []);
       if (!($target_type === 'media' && !empty(array_intersect($allowed_bundles, $bg_types)))) {
         unset($this->derivatives[$derivative_id]);
       }
diff --git a/modules/vlsuite_block/vlsuite_block.module b/modules/vlsuite_block/vlsuite_block.module
index d5282407777b6fdc21e6c7981fc8d835f6f33034..4b5c243679bbcbb6c7acadc555ab1ddfa44867df 100644
--- a/modules/vlsuite_block/vlsuite_block.module
+++ b/modules/vlsuite_block/vlsuite_block.module
@@ -9,6 +9,7 @@ use Drupal\Core\File\FileSystemInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\file\FileInterface;
 use Drupal\block_content\BlockContentTypeInterface;
+use Drupal\Core\File\FileExists;
 
 /**
  * Implements hook_plugin_filter_TYPE_alter().
@@ -32,7 +33,7 @@ function vlsuite_block_vlsuite_utility_classes_utility_apply_to_options_alter(&$
 }
 
 /**
- * Utilit classes apply to enabled definitions helper function.
+ * Utility classes apply to enabled definitions helper function.
  *
  * @param string $just_for_entity_type_key
  *   Entity type key.
@@ -182,7 +183,7 @@ function _vlsuite_block_update_helper_save_default_icon_file($vlsuite_block_conf
     $vlsuite_block_icon_file_path = \Drupal::service('extension.path.resolver')->getPath('module', 'vlsuite_block') . '/assets/' . $default_icon;
     $destination = 'public://vlsuite_block_icon/';
     \Drupal::service('file_system')->prepareDirectory($destination, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS);
-    $file = \Drupal::service('file.repository')->writeData(file_get_contents($vlsuite_block_icon_file_path), $destination . $default_icon, FileSystemInterface::EXISTS_REPLACE);
+    $file = \Drupal::service('file.repository')->writeData(file_get_contents($vlsuite_block_icon_file_path), $destination . $default_icon, FileExists::Replace);
     $file->set('uuid', $uuid);
     $file->save();
   }
diff --git a/modules/vlsuite_bundle_field/vlsuite_bundle_field.install b/modules/vlsuite_bundle_field/vlsuite_bundle_field.install
index 4ec5fb26fa2c2dbe854a70b256ddf64419a124b5..0254615e8be6d24a90dd02a969ce5868cc7c287a 100644
--- a/modules/vlsuite_bundle_field/vlsuite_bundle_field.install
+++ b/modules/vlsuite_bundle_field/vlsuite_bundle_field.install
@@ -14,18 +14,18 @@ use Drupal\vlsuite_bundle_field\VLSuiteBundleFieldStorageDefinitions;
  */
 function vlsuite_bundle_field_update_10001() {
   $entity_type = \Drupal::service('entity_type.manager')->getDefinition('block_content');
-  $udate_manager = \Drupal::service('entity.definition_update_manager');
-  if ($entity_type instanceof EntityTypeInterface && $udate_manager instanceof EntityDefinitionUpdateManagerInterface) {
-    $storage_definitions_change_list = $udate_manager->getChangeList()['block_content']['field_storage_definitions'] ?? [];
+  $update_manager = \Drupal::service('entity.definition_update_manager');
+  if ($entity_type instanceof EntityTypeInterface && $update_manager instanceof EntityDefinitionUpdateManagerInterface) {
+    $storage_definitions_change_list = $update_manager->getChangeList()['block_content']['field_storage_definitions'] ?? [];
     $definitions = VLSuiteBundleFieldStorageDefinitions::bundleFieldDefinitions($entity_type, $entity_type->id(), []);
     foreach ($definitions as $definition) {
       switch ($storage_definitions_change_list[$definition->getName()] ?? NULL) {
         case EntityDefinitionUpdateManagerInterface::DEFINITION_CREATED:
-          $udate_manager->installFieldStorageDefinition($definition->getName(), $entity_type->id(), 'vlsuite_bundle_field', $definition);
+          $update_manager->installFieldStorageDefinition($definition->getName(), $entity_type->id(), 'vlsuite_bundle_field', $definition);
           break;
 
         case EntityDefinitionUpdateManagerInterface::DEFINITION_UPDATED:
-          $udate_manager->updateFieldStorageDefinition($definition);
+          $update_manager->updateFieldStorageDefinition($definition);
           break;
       }
     }
diff --git a/modules/vlsuite_bundle_field/vlsuite_bundle_field.module b/modules/vlsuite_bundle_field/vlsuite_bundle_field.module
index 2d099673c15e32a5eafb30728f80a92ee7d0fa89..fe9c975155d595120124a447c84b1f5336dcd93b 100644
--- a/modules/vlsuite_bundle_field/vlsuite_bundle_field.module
+++ b/modules/vlsuite_bundle_field/vlsuite_bundle_field.module
@@ -18,7 +18,7 @@ function vlsuite_bundle_field_entity_field_storage_info(EntityTypeInterface $ent
   // use these bundles.
   // Add all base fields so provider module is "vlsuite_bundle_field", that way
   // any bundle field can be used/reused/unused when needed.
-  // @note Optional module dependencies provinding used bundle field types must
+  // @note Optional module dependencies providing used bundle field types must
   // be managed into that module, @see:
   // vlsuite_block_webform_entity_field_storage_info().
   // vlsuite_block_paragraph_entity_field_storage_info().
diff --git a/modules/vlsuite_collection/modules/vlsuite_collection_stmt/vlsuite_collection_stmt.info.yml b/modules/vlsuite_collection/modules/vlsuite_collection_stmt/vlsuite_collection_stmt.info.yml
index 4fe3fe37ed2f3d53d38ed7cb7f9426e05c2d433c..29ce76be31c0e120db60d0b53c30b94b0a0da939 100644
--- a/modules/vlsuite_collection/modules/vlsuite_collection_stmt/vlsuite_collection_stmt.info.yml
+++ b/modules/vlsuite_collection/modules/vlsuite_collection_stmt/vlsuite_collection_stmt.info.yml
@@ -1,6 +1,6 @@
-name: VLSuite - Collection STMT (Statement / Quoute)
+name: VLSuite - Collection STMT (Statement / Quote)
 type: module
-description: Visual Layout Suite (VLSuite) - Collection STMT (Statement / Quoute)
+description: Visual Layout Suite (VLSuite) - Collection STMT (Statement / Quote)
 package: Visual Layout Suite (VLSuite)
 core_version_requirement: ^10.3 || ^11
 
diff --git a/modules/vlsuite_collection/src/VLSuiteCollectionHelper.php b/modules/vlsuite_collection/src/VLSuiteCollectionHelper.php
index 35432d1d65b4ebf8393285990271ff7733db1aed..030796b05166520c996e6ba6091fcdb18b326b8c 100644
--- a/modules/vlsuite_collection/src/VLSuiteCollectionHelper.php
+++ b/modules/vlsuite_collection/src/VLSuiteCollectionHelper.php
@@ -4,8 +4,9 @@ namespace Drupal\vlsuite_collection;
 
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Extension\ExtensionPathResolver;
+use Drupal\Core\File\FileExists;
 use Drupal\Core\File\FileSystemInterface;
-use Drupal\Core\Serialization\Yaml;
+use Drupal\Component\Serialization\Yaml;
 use Drupal\file\FileRepositoryInterface;
 use Drupal\layout_builder\Section;
 use Drupal\layout_builder\SectionComponent;
@@ -48,19 +49,19 @@ class VLSuiteCollectionHelper {
   /**
    * Constructs a "VLSuiteCollectionHelper" object.
    *
-   * @param \Drupal\Core\Extension\ExtensionPathResolver $extension_path_resovler
+   * @param \Drupal\Core\Extension\ExtensionPathResolver $extension_path_resolver
    *   The extension path resolver.
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $entity_type_manager
    *   The entity type manager.
-   * @param \Drupal\Core\File\FileSystemInterface $file_sysyem
+   * @param \Drupal\Core\File\FileSystemInterface $file_system
    *   The file system.
    * @param \Drupal\Core\Entity\EntityTypeManagerInterface $file_repository
    *   The file repository.
    */
-  public function __construct(ExtensionPathResolver $extension_path_resovler, EntityTypeManagerInterface $entity_type_manager, FileSystemInterface $file_sysyem, FileRepositoryInterface $file_repository) {
-    $this->extensionPathResolver = $extension_path_resovler;
+  public function __construct(ExtensionPathResolver $extension_path_resolver, EntityTypeManagerInterface $entity_type_manager, FileSystemInterface $file_system, FileRepositoryInterface $file_repository) {
+    $this->extensionPathResolver = $extension_path_resolver;
     $this->entityTypeManager = $entity_type_manager;
-    $this->fileSystem = $file_sysyem;
+    $this->fileSystem = $file_system;
     $this->fileRepository = $file_repository;
   }
 
@@ -103,10 +104,10 @@ class VLSuiteCollectionHelper {
    *   Section library template uuid to use.
    * @param string $module_name
    *   Module name.
-   * @param array $media_placehold_it
+   * @param array $media_placeholder_it
    *   [Media field name | Media uuid] to use.
    */
-  public function sectionLibraryTemplateCreateFromYmlFile(string $uuid, string $module_name, array $media_placehold_it = []) {
+  public function sectionLibraryTemplateCreateFromYmlFile(string $uuid, string $module_name, array $media_placeholder_it = []) {
     $yml_path = $this->extensionPathResolver->getPath('module', $module_name) . '/assets/section-library-template-' . $uuid . '.yml';
     $yml_content = file_get_contents($yml_path);
 
@@ -132,7 +133,7 @@ class VLSuiteCollectionHelper {
         $source['third_party_settings'],
       );
       foreach ($source['components'] as $uuid => $component_array) {
-        $this->blockMediaPlaceholdIt($component_array, $media_placehold_it);
+        $this->blockMediaPlaceholderIt($component_array, $media_placeholder_it);
         $section->appendComponent((new SectionComponent($uuid, $component_array['region'], $component_array['configuration'])));
       }
       $new_template['layout_section'][] = $section;
@@ -142,15 +143,15 @@ class VLSuiteCollectionHelper {
   }
 
   /**
-   * Section component block media palcehold it.
+   * Section component block media placeholder it.
    *
    * @param array $component_array
    *   Component array.
-   * @param array $media_placehold_it
+   * @param array $media_placeholder_it
    *   [Media field name | Media uuid] to use.
    */
-  protected function blockMediaPlaceholdIt(array &$component_array, array $media_placehold_it) {
-    foreach ($media_placehold_it as $media_field_name => $media_uuid) {
+  protected function blockMediaPlaceholderIt(array &$component_array, array $media_placeholder_it) {
+    foreach ($media_placeholder_it as $media_field_name => $media_uuid) {
       // phpcs:ignore DrupalPractice.FunctionCalls.InsecureUnserialize.InsecureUnserialize
       $block = !empty($component_array['configuration']['block_serialized']) ? unserialize($component_array['configuration']['block_serialized']) : NULL;
       if ($block instanceof VLSuiteBlockBase && $block->hasField($media_field_name) && !$block->get($media_field_name)->isEmpty()) {
@@ -190,7 +191,7 @@ class VLSuiteCollectionHelper {
         return;
       }
       $this->fileSystem->prepareDirectory($destination, FileSystemInterface::CREATE_DIRECTORY | FileSystemInterface::MODIFY_PERMISSIONS);
-      $file = $this->fileRepository->writeData($image_content, $destination . $file_name, FileSystemInterface::EXISTS_REPLACE);
+      $file = $this->fileRepository->writeData($image_content, $destination . $file_name, FileExists::Replace);
       $file->set('uuid', $file_uuid);
       $file->save();
     }
diff --git a/modules/vlsuite_demo/vlsuite_demo.install b/modules/vlsuite_demo/vlsuite_demo.install
index 47d54192b8e8ef5e17b3d2aa56f1c30a67a9a569..b8bbe75d56706a013903a295d7ebc6428c7a2783 100644
--- a/modules/vlsuite_demo/vlsuite_demo.install
+++ b/modules/vlsuite_demo/vlsuite_demo.install
@@ -6,7 +6,7 @@
  */
 
 use Drupal\Component\Utility\NestedArray;
-use Drupal\Core\Serialization\Yaml;
+use Drupal\Component\Serialization\Yaml;
 
 /**
  * Implements hook_install().
@@ -32,7 +32,7 @@ function vlsuite_demo_install() {
  */
 function _vlsuite_demo_layout_builder_display_config_add_allowed_inline_blocks(string $display_config) {
   $editable_config = \Drupal::configFactory()->getEditable($display_config);
-  $allowed_blocks = !empty($editable_config) ? $editable_config->get('third_party_settings.layout_builder_restrictions.entity_view_mode_restriction.allowlisted_blocks') : NULL;
+  $allowed_blocks = $editable_config->get('third_party_settings.layout_builder_restrictions.entity_view_mode_restriction.allowlisted_blocks');
   if (empty($allowed_blocks) || empty($allowed_blocks['VLSuite: Inline blocks'])) {
     return;
   }
@@ -60,9 +60,7 @@ function _vlsuite_demo_layout_builder_display_config_add_allowed_inline_blocks(s
  */
 function _vlsuite_demo_layout_builder_display_config_section_block_set_media_uuid(string $config_name, int $section_delta, string $block_uuid, string $media_field_name, string $media_uuid) {
   $editable_config = \Drupal::configFactory()->getEditable($config_name);
-  if (empty($editable_config)) {
-    return;
-  }
+
   $third_party_settings = $editable_config->get('third_party_settings');
   // phpcs:ignore DrupalPractice.FunctionCalls.InsecureUnserialize.InsecureUnserialize
   $block = unserialize($third_party_settings['layout_builder']['sections'][$section_delta]['components'][$block_uuid]['configuration']['block_serialized'] ?? '');
@@ -78,7 +76,7 @@ function _vlsuite_demo_layout_builder_display_config_section_block_set_media_uui
 }
 
 /**
- * Demo collection block utilitties enable.
+ * Demo collection block utilities enable.
  */
 function _vlsuite_demo_collection_block_utilities_enable() {
   $editable_config = \Drupal::configFactory()->getEditable('vlsuite_block.settings');
@@ -116,7 +114,7 @@ function _vlsuite_demo_collection_block_utilities_enable() {
 }
 
 /**
- * Demo collection block utilitties set from assets.
+ * Demo collection block utilities set from assets.
  */
 function _vlsuite_demo_collection_block_utilities_set() {
   $module_name = 'vlsuite_demo';
@@ -126,7 +124,7 @@ function _vlsuite_demo_collection_block_utilities_set() {
   $utilities = $editable_config->get('utilities');
   $source = Yaml::decode($yml_content);
   $source_utilities = $source['utilities'];
-  $merged_utilitites = NestedArray::mergeDeep($utilities, $source_utilities);
-  $editable_config->set('utilities', $merged_utilitites);
+  $merged_utilities = NestedArray::mergeDeep($utilities, $source_utilities);
+  $editable_config->set('utilities', $merged_utilities);
   $editable_config->save();
 }
diff --git a/modules/vlsuite_generator/src/Drush/Generators/VLSuiteGeneratorModuleGenerator.php b/modules/vlsuite_generator/src/Drush/Generators/VLSuiteGeneratorModuleGenerator.php
index af86ebe85da56ddd89cca35edda37ddcbf81995f..cd6408b998803f71fc4f08656bce057f2037bdb1 100644
--- a/modules/vlsuite_generator/src/Drush/Generators/VLSuiteGeneratorModuleGenerator.php
+++ b/modules/vlsuite_generator/src/Drush/Generators/VLSuiteGeneratorModuleGenerator.php
@@ -5,7 +5,7 @@ namespace Drupal\vlsuite_generator\Drush\Generators;
 use Drupal\Core\DependencyInjection\ContainerInjectionInterface;
 use Drupal\Core\Entity\EntityTypeManagerInterface;
 use Drupal\Core\Url;
-use Drupal\default_content\ExporterInterface;
+use Drupal\default_content\Exporter;
 use Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay;
 use Drupal\layout_builder\Section;
 use Drupal\layout_builder\SectionComponent;
@@ -46,7 +46,7 @@ final class VLSuiteGeneratorModuleGenerator extends BaseGenerator implements Con
   /**
    * The default content exporter.
    *
-   * @var \Drupal\default_content\ExporterInterface
+   * @var \Drupal\default_content\Exporter
    */
   protected $defaultContentExporter;
 
@@ -133,7 +133,7 @@ final class VLSuiteGeneratorModuleGenerator extends BaseGenerator implements Con
   /**
    * {@inheritdoc}
    */
-  public function __construct(EntityTypeManagerInterface $entity_type_manager, ExporterInterface $default_content_exporter) {
+  public function __construct(EntityTypeManagerInterface $entity_type_manager, Exporter $default_content_exporter) {
     parent::__construct();
     $this->entityTypeManager = $entity_type_manager;
     $this->defaultContentExporter = $default_content_exporter;
diff --git a/modules/vlsuite_generator/src/VLSuiteGeneratorModuleGeneratorProcessConfigTrait.php b/modules/vlsuite_generator/src/VLSuiteGeneratorModuleGeneratorProcessConfigTrait.php
index 483bfbc728b6d7454dee7cb23c6ff44db84219f9..fb11e6da94b54b5f09d0e56fd5440a66e683c79d 100644
--- a/modules/vlsuite_generator/src/VLSuiteGeneratorModuleGeneratorProcessConfigTrait.php
+++ b/modules/vlsuite_generator/src/VLSuiteGeneratorModuleGeneratorProcessConfigTrait.php
@@ -20,13 +20,13 @@ trait VLSuiteGeneratorModuleGeneratorProcessConfigTrait {
    *   Require confirmation or bypass.
    */
   protected function processConfigDependencies(string $config_name, bool $require_confirmation = TRUE) {
-    // Avoid reduntant processor.
+    // Avoid redundant processor.
     if (isset($this->config[$config_name])) {
       $this->logger->debug("Config \"{$config_name}\": Redundant processor avoided (config already processed or discarded)");
       return;
     }
 
-    $this->logger->notice("Procesing config dependencies \"{$config_name}\"");
+    $this->logger->notice("Processing config dependencies \"{$config_name}\"");
     $matches = [];
     // Lookup for main entity types config names to manage reverse dependencies
     // as fields, entity displays, etc (dependency is that way not direct).
@@ -70,7 +70,7 @@ trait VLSuiteGeneratorModuleGeneratorProcessConfigTrait {
    */
   protected function processConfigDependenciesEntityTypeBundle(string $config_name, bool $require_confirmation, string $bundle_entity_type, string $bundle) {
     $this->logger->debug("Main config {$config_name}");
-    // Avoid reduntant processor.
+    // Avoid redundant processor.
     if ($require_confirmation && isset($this->entityTypes[$bundle_entity_type][$bundle])) {
       $this->logger->debug("Entity \"{$bundle}\" of type \"{$bundle_entity_type}\": Redundant processor avoided (entity type bundle already processed or discarded)");
       return;
@@ -171,7 +171,7 @@ trait VLSuiteGeneratorModuleGeneratorProcessConfigTrait {
       }
       foreach (array_keys($discarded) as $discarded_config_name) {
         if (isset($config_content['dependencies']['config'][$discarded_config_name])) {
-          $this->logger->debug("Descarded config dependency \"{$discarded_config_name}\": Cleanup for \"{$config_name}\"");
+          $this->logger->debug("Discarded config dependency \"{$discarded_config_name}\": Cleanup for \"{$config_name}\"");
           unset($config_content['dependencies']['config'][$discarded_config_name]);
         }
       }
diff --git a/modules/vlsuite_generator/src/VLSuiteGeneratorModuleGeneratorProcessTrait.php b/modules/vlsuite_generator/src/VLSuiteGeneratorModuleGeneratorProcessTrait.php
index f090403cee1667049df00495595aea9d4a4078d3..39ad413404aec12572484aec92b7a6479c0c21da 100644
--- a/modules/vlsuite_generator/src/VLSuiteGeneratorModuleGeneratorProcessTrait.php
+++ b/modules/vlsuite_generator/src/VLSuiteGeneratorModuleGeneratorProcessTrait.php
@@ -63,7 +63,7 @@ trait VLSuiteGeneratorModuleGeneratorProcessTrait {
    *   Section to process.
    */
   protected function processSection(Section $section) {
-    $this->logger->notice("Procesing section \"{$section->getLayoutId()}\"");
+    $this->logger->notice("Processing section \"{$section->getLayoutId()}\"");
     $this->modules[$section->getLayout()->getPluginDefinition()->getProvider()] = TRUE;
     $this->processSectionStylesDependencies($section);
   }
@@ -79,14 +79,14 @@ trait VLSuiteGeneratorModuleGeneratorProcessTrait {
     $process_result = TRUE;
     if ($block_plugin instanceof FieldBlock) {
       $this->processComponentFieldBlock($component, $block_plugin);
-      // As vluiste uses same base class, this process is complementary.
+      // As VLSuite uses same base class, this process is complementary.
       if ($block_plugin instanceof VLSuiteFieldBlock) {
         $this->processComponentVlsuiteFieldBlock($component, $block_plugin);
       }
     }
     elseif ($block_plugin instanceof InlineBlock) {
       $this->processComponentInlineBlock($component, $block_plugin);
-      // As vluiste uses same base class, this process is complementary.
+      // As VLSuite uses same base class, this process is complementary.
       if ($block_plugin instanceof VLSuiteInlineBlock) {
         $this->processComponentVlsuiteInlineBlock($component, $block_plugin);
       }
@@ -101,10 +101,10 @@ trait VLSuiteGeneratorModuleGeneratorProcessTrait {
       $process_result = FALSE;
     }
     if ($process_result) {
-      $this->logger->notice("Procesing section component \"{$component->getPluginId()}: OK");
+      $this->logger->notice("Processing section component \"{$component->getPluginId()}: OK");
     }
     else {
-      $this->logger->warning("Procesing section component \"{$component->getPluginId()}: KO");
+      $this->logger->warning("Processing section component \"{$component->getPluginId()}: KO");
     }
   }
 
@@ -161,7 +161,7 @@ trait VLSuiteGeneratorModuleGeneratorProcessTrait {
   protected function processComponentFieldBlock(SectionComponent $component, FieldBlock $block_plugin) {
     [$entity_type_id, $bundle] = explode($block_plugin::DERIVATIVE_SEPARATOR, $block_plugin->getDerivativeId(), 3);
     $bundle_entity_type = \Drupal::entityTypeManager()->getDefinition($entity_type_id)->getBundleEntityType();
-    // Avoid reduntant processor.
+    // Avoid redundant processor.
     if (isset($this->entityTypes[$bundle_entity_type][$bundle])) {
       $this->logger->debug("Entity \"{$bundle}\" of type \"{$bundle_entity_type}\": Redundant processor avoided (entity type bundle already processed or discarded)");
       return;
diff --git a/modules/vlsuite_icon_font/src/Controller/VLSuiteIconFontAutocomplete.php b/modules/vlsuite_icon_font/src/Controller/VLSuiteIconFontAutocomplete.php
index 27f889c6529de2766edb4b3d9860e9cf2d27b512..760ddc5572b5fe2db8ce7c87fa0a9f7ae963c891 100644
--- a/modules/vlsuite_icon_font/src/Controller/VLSuiteIconFontAutocomplete.php
+++ b/modules/vlsuite_icon_font/src/Controller/VLSuiteIconFontAutocomplete.php
@@ -12,7 +12,7 @@ use Symfony\Component\HttpFoundation\Request;
 /**
  * VLSuite icon autocomplete controller.
  */
-class VLSuiteIconFontAutocomplete extends ControllerBase {
+final class VLSuiteIconFontAutocomplete extends ControllerBase {
 
   /**
    * The config factory.
diff --git a/modules/vlsuite_icon_font/src/Plugin/Field/FieldFormatter/VLSuiteIconFontIconFormatter.php b/modules/vlsuite_icon_font/src/Plugin/Field/FieldFormatter/VLSuiteIconFontIconFormatter.php
index 663635b2c875afbf9b55f384f40e06b20e84d256..8cb619a0ad3fca9228c03f8fc1518a29c1832a72 100644
--- a/modules/vlsuite_icon_font/src/Plugin/Field/FieldFormatter/VLSuiteIconFontIconFormatter.php
+++ b/modules/vlsuite_icon_font/src/Plugin/Field/FieldFormatter/VLSuiteIconFontIconFormatter.php
@@ -20,7 +20,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  *   }
  * )
  */
-class VLSuiteIconFontIconFormatter extends FormatterBase {
+final class VLSuiteIconFontIconFormatter extends FormatterBase {
 
   /**
    * The icon font helper.
diff --git a/modules/vlsuite_icon_font/src/Plugin/Field/FieldWidget/VLSuiteIconFontIconWidget.php b/modules/vlsuite_icon_font/src/Plugin/Field/FieldWidget/VLSuiteIconFontIconWidget.php
index 1fbdfc21450721e71c142a913e276a71675d31e2..0303b844150833b98ccd4be8262a460b53421200 100644
--- a/modules/vlsuite_icon_font/src/Plugin/Field/FieldWidget/VLSuiteIconFontIconWidget.php
+++ b/modules/vlsuite_icon_font/src/Plugin/Field/FieldWidget/VLSuiteIconFontIconWidget.php
@@ -20,7 +20,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  *   }
  * )
  */
-class VLSuiteIconFontIconWidget extends WidgetBase {
+final class VLSuiteIconFontIconWidget extends WidgetBase {
 
   /**
    * The icon font helper.
diff --git a/modules/vlsuite_icon_font/src/VLSuiteIconFontHelper.php b/modules/vlsuite_icon_font/src/VLSuiteIconFontHelper.php
index af105e3a39f80762f8539f1ae953c5574b52d458..e3d3fd758038475596f3c8e2f5f2eaa3c186e4e4 100644
--- a/modules/vlsuite_icon_font/src/VLSuiteIconFontHelper.php
+++ b/modules/vlsuite_icon_font/src/VLSuiteIconFontHelper.php
@@ -49,13 +49,13 @@ class VLSuiteIconFontHelper {
   /**
    * Get icon form element.
    *
-   * @param string $default_icon
+   * @param string|null $default_icon
    *   Default icon.
    *
    * @return array
    *   Icon form element.
    */
-  public function getIconFontIconFormElement(string $default_icon = NULL) {
+  public function getIconFontIconFormElement(string|NULL $default_icon = NULL) {
     $vlsuite_icon_font_configure_url = Url::fromRoute('vlsuite_icon_font.settings');
     $description = $vlsuite_icon_font_configure_url->access() ? $this->t('Choose icon, start typing for autocomplete suggestions. You can configure <a href=":link" target="_blank">here</a>.',
         [':link' => $vlsuite_icon_font_configure_url->toString()]) : $this->t('Choose icon, start typing for autocomplete suggestions.');
diff --git a/modules/vlsuite_landing/config/optional/core.base_field_override.node.vlsuite_landing.promote.yml b/modules/vlsuite_landing/config/optional/core.base_field_override.node.vlsuite_landing.promote.yml
index 5605e0b1ba9f85bab411da7e41664d2f8edc80f8..5856fc13ab523d5db62b22ccf88467840945c851 100644
--- a/modules/vlsuite_landing/config/optional/core.base_field_override.node.vlsuite_landing.promote.yml
+++ b/modules/vlsuite_landing/config/optional/core.base_field_override.node.vlsuite_landing.promote.yml
@@ -19,6 +19,6 @@ default_value:
     value: 0
 default_value_callback: ''
 settings:
-  on_label: Activado
-  off_label: Desactivado
+  on_label: Activated
+  off_label: Deactivated
 field_type: boolean
diff --git a/modules/vlsuite_landing/modules/vlsuite_landing_content_editor/vlsuite_landing_content_editor.info.yml b/modules/vlsuite_landing/modules/vlsuite_landing_content_editor/vlsuite_landing_content_editor.info.yml
index 013e89145d9f45971a7672981f21a14ed2884845..f3a8bc1ad80eeed3ad7258b7540d348fe9b19d7c 100644
--- a/modules/vlsuite_landing/modules/vlsuite_landing_content_editor/vlsuite_landing_content_editor.info.yml
+++ b/modules/vlsuite_landing/modules/vlsuite_landing_content_editor/vlsuite_landing_content_editor.info.yml
@@ -1,4 +1,4 @@
-name: VLSuite - Laning content editor
+name: VLSuite - Landing content editor
 type: module
 description: Visual Layout Suite (VLSuite) - Landing content editor
 package: Visual Layout Suite (VLSuite)
diff --git a/modules/vlsuite_layout/modules/vlsuite_layout_tabs/src/Plugin/Layout/VLSuiteLayoutTabsBase.php b/modules/vlsuite_layout/modules/vlsuite_layout_tabs/src/Plugin/Layout/VLSuiteLayoutTabsBase.php
index 551c1a727105e713730667833bf529e2df8ade13..51c2cadc6bcc5249a606df8b11deb487a75fb9dc 100644
--- a/modules/vlsuite_layout/modules/vlsuite_layout_tabs/src/Plugin/Layout/VLSuiteLayoutTabsBase.php
+++ b/modules/vlsuite_layout/modules/vlsuite_layout_tabs/src/Plugin/Layout/VLSuiteLayoutTabsBase.php
@@ -12,6 +12,13 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
  */
 abstract class VLSuiteLayoutTabsBase extends VLSuiteLayoutBase {
 
+  /**
+   * The icon font helper service.
+   *
+   * @var \Drupal\vlsuite_icon_font\VLSuiteIconFontHelper
+   */
+  protected $iconFontHelper;
+
   /**
    * {@inheritdoc}
    */
@@ -25,13 +32,33 @@ abstract class VLSuiteLayoutTabsBase extends VLSuiteLayoutBase {
       $container->get('vlsuite_utility_classes.helper'),
       $container->get('vlsuite_slider.helper'),
       $container->get('vlsuite_animations.helper'),
-      $container->get('current_user')
+      $container->get('current_user'),
+      $container->get('vlsuite_icon_font.helper')
     );
     $tabs_base->setPluginDefinitionRegions($configuration['tabs'] ?? []);
     $tabs_base->pluginDefinition->setIconMap($tabs_base->getPluginDefinitionIconMap());
     return $tabs_base;
   }
 
+  /**
+   * Constructs a new VLSuiteLayoutTabsBase object.
+   */
+  public function __construct(
+    array $configuration,
+    $plugin_id,
+    $plugin_definition,
+    $entity_type_manager,
+    $config_factory,
+    $utility_classes_helper,
+    $slider_helper,
+    $animations_helper,
+    $current_user,
+    $icon_font_helper,
+  ) {
+    parent::__construct($configuration, $plugin_id, $plugin_definition, $entity_type_manager, $config_factory, $utility_classes_helper, $slider_helper, $animations_helper, $current_user);
+    $this->iconFontHelper = $icon_font_helper;
+  }
+
   /**
    * Get plugin definition icon map.
    *
@@ -164,7 +191,7 @@ abstract class VLSuiteLayoutTabsBase extends VLSuiteLayoutBase {
         '#default_value' => $tab['title'] ?? NULL,
         '#required' => TRUE,
       ];
-      $form['tabs'][$tab_index]['icon'] = \Drupal::service('vlsuite_icon_font.helper')->getIconFontIconFormElement($tab['icon'] ?? NULL);
+      $form['tabs'][$tab_index]['icon'] = $this->iconFontHelper->getIconFontIconFormElement($tab['icon'] ?? NULL);
       $form['tabs'][$tab_index]['remove'] = [
         '#tree' => FALSE,
         '#name' => 'remove_' . $tab_index . '_settings',
diff --git a/modules/vlsuite_layout/src/Plugin/Layout/VLSuiteLayoutBase.php b/modules/vlsuite_layout/src/Plugin/Layout/VLSuiteLayoutBase.php
index e7cd9ed51adaec41af5e6db1c01e33cbe36ec348..2ca076f098721fa0e1127a1b083f7e5ac6ff31e2 100644
--- a/modules/vlsuite_layout/src/Plugin/Layout/VLSuiteLayoutBase.php
+++ b/modules/vlsuite_layout/src/Plugin/Layout/VLSuiteLayoutBase.php
@@ -105,7 +105,7 @@ abstract class VLSuiteLayoutBase extends LayoutDefault implements PluginFormInte
    * @param \Drupal\Core\Session\AccountInterface $current_user
    *   The current user.
    */
-  final public function __construct(
+  public function __construct(
     array $configuration,
     $plugin_id,
     $plugin_definition,
@@ -310,9 +310,9 @@ abstract class VLSuiteLayoutBase extends LayoutDefault implements PluginFormInte
       $build['#attributes']->addClass($this->utilityClassHelper->getContainerClasses());
     }
 
-    $section_utility_clases_config = $this->configuration[VLSuiteUtilityClassesHelper::UTILITY_CLASSES_KEY][self::APPLY_TO_SECTION] ?? [];
+    $section_utility_classes_config = $this->configuration[VLSuiteUtilityClassesHelper::UTILITY_CLASSES_KEY][self::APPLY_TO_SECTION] ?? [];
 
-    $section_utility_classes = $this->utilityClassHelper->getUtilitiesApplyToClasses(self::APPLY_TO_SECTION, $section_utility_clases_config);
+    $section_utility_classes = $this->utilityClassHelper->getUtilitiesApplyToClasses(self::APPLY_TO_SECTION, $section_utility_classes_config);
     $section_classes = array_merge([
       'vlsuite-layout-bg-wrapper',
       Html::cleanCssIdentifier($this->getPluginDefinition()->id() . '-bg-wrapper'),
@@ -325,13 +325,13 @@ abstract class VLSuiteLayoutBase extends LayoutDefault implements PluginFormInte
       }
       $build['#theme_wrappers']['container']['#attributes']->addClass($section_classes);
       if ($this->inPreview) {
-        $this->utilityClassHelper->applyLivePreviewerAttributes($build['#theme_wrappers']['container']['#attributes'], self::APPLY_TO_SECTION, $section_utility_clases_config);
+        $this->utilityClassHelper->applyLivePreviewerAttributes($build['#theme_wrappers']['container']['#attributes'], self::APPLY_TO_SECTION, $section_utility_classes_config);
       }
     }
     else {
       $build['#attributes']->addClass($section_classes);
       if ($this->inPreview) {
-        $this->utilityClassHelper->applyLivePreviewerAttributes($build['#attributes'], self::APPLY_TO_SECTION, $section_utility_clases_config);
+        $this->utilityClassHelper->applyLivePreviewerAttributes($build['#attributes'], self::APPLY_TO_SECTION, $section_utility_classes_config);
       }
     }
     $media_bg_field = $this->getMediaBgFieldId($regions);
@@ -339,26 +339,26 @@ abstract class VLSuiteLayoutBase extends LayoutDefault implements PluginFormInte
     if (!empty($media_bg)) {
       $look_up_for_media = $this->entityTypeManager->getStorage('media')->load($media_bg);
       if ($look_up_for_media instanceof MediaInterface) {
-        $media_bg_utility_clases_config = $this->configuration[VLSuiteUtilityClassesHelper::UTILITY_CLASSES_KEY][self::APPLY_TO_MEDIA_BG] ?? [];
-        $media_bg_utility_classes = $this->utilityClassHelper->getUtilitiesApplyToClasses(self::APPLY_TO_MEDIA_BG, $media_bg_utility_clases_config);
+        $media_bg_utility_classes_config = $this->configuration[VLSuiteUtilityClassesHelper::UTILITY_CLASSES_KEY][self::APPLY_TO_MEDIA_BG] ?? [];
+        $media_bg_utility_classes = $this->utilityClassHelper->getUtilitiesApplyToClasses(self::APPLY_TO_MEDIA_BG, $media_bg_utility_classes_config);
         $build['media_bg'] = ['#type' => 'container'];
         $build['media_bg']['media'] = $this->entityTypeManager->getViewBuilder('media')->view($look_up_for_media, 'vlsuite_background');
         $build['media_bg']['#attributes']['class'][] = 'vlsuite-layout-bg-wrapper__bg-media';
         $build['media_bg']['#attributes']['class'] = array_merge($build['media_bg']['#attributes']['class'], $media_bg_utility_classes);
         if ($this->inPreview) {
-          $this->utilityClassHelper->applyLivePreviewerAttributes($build['media_bg']['#attributes'], self::APPLY_TO_MEDIA_BG, $media_bg_utility_clases_config);
+          $this->utilityClassHelper->applyLivePreviewerAttributes($build['media_bg']['#attributes'], self::APPLY_TO_MEDIA_BG, $media_bg_utility_classes_config);
         }
       }
     }
 
     $build['#row_attributes'] = new Attribute();
     $build['#row_attributes']->addClass($this->utilityClassHelper->getRowClasses());
-    $row_utility_clases_config = $this->configuration[VLSuiteUtilityClassesHelper::UTILITY_CLASSES_KEY][self::APPLY_TO_ROW] ?? [];
-    $row_utility_classes = $this->utilityClassHelper->getUtilitiesApplyToClasses(self::APPLY_TO_ROW, $row_utility_clases_config);
+    $row_utility_classes_config = $this->configuration[VLSuiteUtilityClassesHelper::UTILITY_CLASSES_KEY][self::APPLY_TO_ROW] ?? [];
+    $row_utility_classes = $this->utilityClassHelper->getUtilitiesApplyToClasses(self::APPLY_TO_ROW, $row_utility_classes_config);
     $build['#row_attributes']->addClass($row_utility_classes);
 
     if ($this->inPreview) {
-      $this->utilityClassHelper->applyLivePreviewerAttributes($build['#row_attributes'], self::APPLY_TO_ROW, $row_utility_clases_config);
+      $this->utilityClassHelper->applyLivePreviewerAttributes($build['#row_attributes'], self::APPLY_TO_ROW, $row_utility_classes_config);
     }
 
     $top_utility_classes_config = $this->configuration[VLSuiteUtilityClassesHelper::UTILITY_CLASSES_KEY][self::APPLY_TO_REGION_TOP] ?? [];
diff --git a/modules/vlsuite_layout_builder/src/Controller/VLSuiteLayoutBuilderDuplicate.php b/modules/vlsuite_layout_builder/src/Controller/VLSuiteLayoutBuilderDuplicate.php
index b194943a41cd9a5ab78a593c6fb9de4de1aee6e1..c34044d9f0370b2dbe3121f31fbbc725a265bac0 100644
--- a/modules/vlsuite_layout_builder/src/Controller/VLSuiteLayoutBuilderDuplicate.php
+++ b/modules/vlsuite_layout_builder/src/Controller/VLSuiteLayoutBuilderDuplicate.php
@@ -18,7 +18,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
 /**
  * Layout builder duplicate controller.
  */
-class VLSuiteLayoutBuilderDuplicate implements ContainerInjectionInterface {
+final class VLSuiteLayoutBuilderDuplicate implements ContainerInjectionInterface {
 
   use LayoutRebuildTrait;
   use DeepCloningTrait;
diff --git a/modules/vlsuite_layout_builder/vlsuite_layout_builder.install b/modules/vlsuite_layout_builder/vlsuite_layout_builder.install
index f3739fd088c5f0a88157be95c6c3b2f5b8658b43..a7ca21f8f87dffc3f129ff406ecd4dcefffb8841 100644
--- a/modules/vlsuite_layout_builder/vlsuite_layout_builder.install
+++ b/modules/vlsuite_layout_builder/vlsuite_layout_builder.install
@@ -6,7 +6,7 @@
  */
 
 /**
- * Ensure new depenencies are enabled.
+ * Ensure new dependencies are enabled.
  */
 function vlsuite_layout_builder_update_10001() {
   if (!\Drupal::service('module_handler')->moduleExists('vlsuite_utility_classes')) {
diff --git a/modules/vlsuite_media/modules/vlsuite_media_local_video/config/optional/field.field.media.vlsuite_local_video.field_media_video_file.yml b/modules/vlsuite_media/modules/vlsuite_media_local_video/config/optional/field.field.media.vlsuite_local_video.field_media_video_file.yml
index 932a29157a04adba4acbfb4e97f0836a10bf3e3a..d809f59406737251df750d7e7daafc8a0c337b12 100644
--- a/modules/vlsuite_media/modules/vlsuite_media_local_video/config/optional/field.field.media.vlsuite_local_video.field_media_video_file.yml
+++ b/modules/vlsuite_media/modules/vlsuite_media_local_video/config/optional/field.field.media.vlsuite_local_video.field_media_video_file.yml
@@ -13,7 +13,7 @@ id: media.vlsuite_local_video.field_media_video_file
 field_name: field_media_video_file
 entity_type: media
 bundle: vlsuite_local_video
-label: 'Archivo de vídeo'
+label: 'Video file'
 description: ''
 required: true
 translatable: true
diff --git a/modules/vlsuite_media/modules/vlsuite_media_remote_video/config/optional/field.field.media.vlsuite_remote_video.field_media_oembed_video.yml b/modules/vlsuite_media/modules/vlsuite_media_remote_video/config/optional/field.field.media.vlsuite_remote_video.field_media_oembed_video.yml
index 29256554997af725f70fba21676eb42135cf3b41..ccc94ccdd8eaa5371289aef8988ede5771fcf797 100644
--- a/modules/vlsuite_media/modules/vlsuite_media_remote_video/config/optional/field.field.media.vlsuite_remote_video.field_media_oembed_video.yml
+++ b/modules/vlsuite_media/modules/vlsuite_media_remote_video/config/optional/field.field.media.vlsuite_remote_video.field_media_oembed_video.yml
@@ -11,7 +11,7 @@ id: media.vlsuite_remote_video.field_media_oembed_video
 field_name: field_media_oembed_video
 entity_type: media
 bundle: vlsuite_remote_video
-label: 'URL de Video remoto'
+label: 'URL remote Video'
 description: ''
 required: true
 translatable: true
diff --git a/modules/vlsuite_media/vlsuite_media.breakpoints.yml b/modules/vlsuite_media/vlsuite_media.breakpoints.yml
index ed6e8bb666ee8061261edc9767481fb426a50700..eec6d71169a16332ae642c5727a560af2d3195a0 100644
--- a/modules/vlsuite_media/vlsuite_media.breakpoints.yml
+++ b/modules/vlsuite_media/vlsuite_media.breakpoints.yml
@@ -1,5 +1,5 @@
 #vlsuite_media.always_active:
-#  label: 'Always acive'
+#  label: 'Always active'
 #  mediaQuery: ''
 #  weight: 0
 #  multipliers:
diff --git a/modules/vlsuite_modal/src/Form/VLSuiteModalSettingsForm.php b/modules/vlsuite_modal/src/Form/VLSuiteModalSettingsForm.php
index b310d9f60d9951dbdc7d7df3c21e434c32f4ba8c..439ba22e93b21a2dbf081f98a9d339dec31f8526 100644
--- a/modules/vlsuite_modal/src/Form/VLSuiteModalSettingsForm.php
+++ b/modules/vlsuite_modal/src/Form/VLSuiteModalSettingsForm.php
@@ -14,7 +14,7 @@ final class VLSuiteModalSettingsForm extends ConfigFormBase {
   /**
    * The library discovery.
    *
-   * @var \Drupal\Core\Asset\LibraryDiscoveryInterface
+   * @var \Drupal\Core\Asset\LibraryDiscoveryCollector
    */
   protected $libraryDiscovery;
 
@@ -94,7 +94,7 @@ final class VLSuiteModalSettingsForm extends ConfigFormBase {
     $form['layout_builder']['layout_builder_admin_inherited'] = [
       '#type' => 'checkbox',
       '#title' => $this->t('Use admin theme appearance for modal pages'),
-      '#description' => $this->t('Inherit appearance dinamically into layout builder "layout" pages (for modal loaded pages, not for main pages, media library widget, drag & drop tables, ...). Main active theme style may interfere, use carefully, this will load original admin theme dependecies, not simulated.'),
+      '#description' => $this->t('Inherit appearance dynamically into layout builder "layout" pages (for modal loaded pages, not for main pages, media library widget, drag & drop tables, ...). Main active theme style may interfere, use carefully, this will load original admin theme dependencies, not simulated.'),
       '#default_value' => $config->get('layout_builder_admin_inherited'),
     ];
 
@@ -126,7 +126,7 @@ final class VLSuiteModalSettingsForm extends ConfigFormBase {
       ->set('layout_builder_enabled', $form_state->getValue('layout_builder_enabled'))
       ->set('layout_builder_admin_inherited', $form_state->getValue('layout_builder_admin_inherited'))
       ->save();
-    $this->libraryDiscovery->clearCachedDefinitions();
+    $this->libraryDiscovery->clear();
 
     parent::submitForm($form, $form_state);
   }
diff --git a/modules/vlsuite_modal/src/Theme/VLSuiteModalThemeNegotiator.php b/modules/vlsuite_modal/src/Theme/VLSuiteModalThemeNegotiator.php
index dfe4ee41178278965640e85a18902634f5777928..d6b3e6817a934cc0bfd402b8a2d3c7561d918b4a 100644
--- a/modules/vlsuite_modal/src/Theme/VLSuiteModalThemeNegotiator.php
+++ b/modules/vlsuite_modal/src/Theme/VLSuiteModalThemeNegotiator.php
@@ -16,13 +16,13 @@ class VLSuiteModalThemeNegotiator extends AjaxBasePageNegotiator {
    */
   public function applies(RouteMatchInterface $route_match) {
     // Inherit admin theme library definitions to have assets loaded before
-    // modal opens, not using iframe due complexity & some limititations like
+    // modal opens, not using iframe due complexity & some limitations like
     // not having modal actions, auto height not working, ...
     // Also avoid replicate some specific theme styles, use originals.
     // This implementation consist:
-    // 1. Build library dinamically with admin theme libraries as dependencies.
+    // 1. Build library dynamically with admin theme libraries as dependencies.
     // 2. Library discovery collector used to mix & ensure styles for lb page.
-    // 3. Layout builder will attach dinamically generated library.
+    // 3. Layout builder will attach dynamically generated library.
     // 4. Layout builder will toggle active theme by theme negotiator.
     // @see
     // VLSuiteModalLayoutBuilderPreRender::preRender().
@@ -53,7 +53,7 @@ class VLSuiteModalThemeNegotiator extends AjaxBasePageNegotiator {
       $is_vlsuite_modal = ($this->requestStack->getCurrentRequest()->request->all('dialogOptions')['target'] ?? NULL) == VLSuiteModalHelper::DIALOG_TARGET;
       // @note name = op (update) will trigger default theme, form errors are
       // unknown at this point (response still not calculated), recommended
-      // adding ife + clientside validation when available for these forms.
+      // adding ife + client-side validation when available for these forms.
       $is_block_form = str_contains($this->requestStack->getCurrentRequest()->request->get('_triggering_element_name') ?? '', 'block_form');
       $is_settings = str_contains($this->requestStack->getCurrentRequest()->request->get('_triggering_element_name') ?? '', 'settings');
       $is_import_section_route = $route_match->getRouteName() == 'section_library.import_section_from_library';
diff --git a/modules/vlsuite_modal/src/VLSuiteModalConfigOverride.php b/modules/vlsuite_modal/src/VLSuiteModalConfigOverride.php
index b7cab85f3a69f0a732f81e6529823035e93d4391..b959193dd2bd3346b95d0277f6501d54d10276d5 100644
--- a/modules/vlsuite_modal/src/VLSuiteModalConfigOverride.php
+++ b/modules/vlsuite_modal/src/VLSuiteModalConfigOverride.php
@@ -92,12 +92,14 @@ class VLSuiteModalConfigOverride implements ConfigFactoryOverrideInterface {
     // Instead just get it before usage in order to avoid getting empty request
     // from request stack.
     $request = $this->requestStack->getCurrentRequest();
-    // Route provider is not added by dependency injection
-    // because it produces circular dependency at config override
-    // phase.
-    /** @var \Drupal\Core\Routing\RouteProviderInterface $router */
-    // @codingStandardsIgnoreLine
+
     if ($request instanceof Request) {
+      // Route provider is not added by dependency injection
+      // because it produces circular dependency at config override
+      // phase.
+      /** @var \Drupal\Core\Routing\RouteProviderInterface $router */
+      // @codingStandardsIgnoreLine
+      // @phpstan-ignore-next-line
       $router = \Drupal::service('router.route_provider');
       $routes = $router->getRouteCollectionForRequest($request);
 
diff --git a/modules/vlsuite_modal/src/VLSuiteModalLibraryDiscoveryCollector.php b/modules/vlsuite_modal/src/VLSuiteModalLibraryDiscoveryCollector.php
index 04ebe230199fc608cba6a3cac8eb13563bd61f1b..e952cadbb118bf8cf31822f5e9b76bf3b00c24c5 100644
--- a/modules/vlsuite_modal/src/VLSuiteModalLibraryDiscoveryCollector.php
+++ b/modules/vlsuite_modal/src/VLSuiteModalLibraryDiscoveryCollector.php
@@ -44,7 +44,7 @@ class VLSuiteModalLibraryDiscoveryCollector extends LibraryDiscoveryCollector {
   }
 
   /**
-   * Set theme initiazilation.
+   * Set theme initialization.
    *
    * @param \Drupal\Core\Theme\ThemeInitializationInterface $theme_initialization
    *   The theme initialization.
diff --git a/modules/vlsuite_modal/vlsuite_modal.services.yml b/modules/vlsuite_modal/vlsuite_modal.services.yml
index 8309d43e5333c03ff57bdfaa01f1c1354d704d7f..0f094b82911319f68ef0024012a9fd71de28c2f5 100644
--- a/modules/vlsuite_modal/vlsuite_modal.services.yml
+++ b/modules/vlsuite_modal/vlsuite_modal.services.yml
@@ -13,7 +13,7 @@ services:
       - { name: theme_negotiator, priority: 1004 }
   vlsuite_modal.library.discovery.collector:
     decorates: library.discovery.collector
-    class: \Drupal\vlsuite_modal\VLSuiteModalLibraryDiscoveryCollector
+    class: Drupal\vlsuite_modal\VLSuiteModalLibraryDiscoveryCollector
     arguments: ['@cache.discovery', '@lock', '@library.discovery.parser', '@theme.manager']
     tags:
       - { name: needs_destruction }
diff --git a/modules/vlsuite_slider/js/vlsuite-slider.js b/modules/vlsuite_slider/js/vlsuite-slider.js
index fe76414a1bdba938642b06f24de6fa8709738fda..75f62605558e4af22948a933c6b4964a2e20e8d0 100644
--- a/modules/vlsuite_slider/js/vlsuite-slider.js
+++ b/modules/vlsuite_slider/js/vlsuite-slider.js
@@ -97,15 +97,15 @@
       };
     }
     if (config['navigation'] ?? false) {
-      var naginationNext = document.createElement('div');
-      naginationNext.classList.add('swiper-button-next');
-      var naginationPrev = document.createElement('div');
-      naginationPrev.classList.add('swiper-button-prev');
-      swiperElement.appendChild(naginationNext);
-      swiperElement.appendChild(naginationPrev);
+      var navigationNext = document.createElement('div');
+      navigationNext.classList.add('swiper-button-next');
+      var navigationPrev = document.createElement('div');
+      navigationPrev.classList.add('swiper-button-prev');
+      swiperElement.appendChild(navigationNext);
+      swiperElement.appendChild(navigationPrev);
       swiperOptions['navigation'] = {
-        nextEl: naginationNext,
-        prevEl: naginationPrev
+        nextEl: navigationNext,
+        prevEl: navigationPrev
       };
     }
     if (config['autoplay'] ?? false) {
@@ -117,3 +117,4 @@
     new window.Swiper(swiperElement, swiperOptions);
   }
 }(Drupal, once, window));
+
diff --git a/modules/vlsuite_slider/src/VLSuiteSliderHelper.php b/modules/vlsuite_slider/src/VLSuiteSliderHelper.php
index 5f15b8afd8ea2a626b1acd5d4440af29db8361bc..d27f14f20e61124ed2eaa865e2883d1098093699 100644
--- a/modules/vlsuite_slider/src/VLSuiteSliderHelper.php
+++ b/modules/vlsuite_slider/src/VLSuiteSliderHelper.php
@@ -54,7 +54,7 @@ class VLSuiteSliderHelper {
    * @param array $defaults
    *   Config for default values.
    * @param array $scope_options
-   *   Scrope options where to apply (e.g: regions for section).
+   *   Scope options where to apply (e.g: regions for section).
    *
    * @return array
    *   Form element.
@@ -191,12 +191,12 @@ class VLSuiteSliderHelper {
    * @param array $slider_config
    *   Slider config.
    * @param string $scope_selector
-   *   Scope selector wher carousel should init.
+   *   Scope selector where carousel should init.
    * @param string $scope_items_selector
    *   Items selector scope (relative to previous) for slide elements.
    *
    * @return string
-   *   Slider opctions serialized.
+   *   Slider options serialized.
    */
   public function getSliderDataAttributeValue(array $slider_config, string $scope_selector = ':scope', string $scope_items_selector = ':scope > div') {
     $value = Json::encode($slider_config + [
diff --git a/modules/vlsuite_utility_classes/js/vlsuite-utility-classes-live-previewer.es6.js b/modules/vlsuite_utility_classes/js/vlsuite-utility-classes-live-previewer.es6.js
index 4b66cdf8c68b758ac82b6ce4654590a393828634..7236c1bdb89e976b712281a98da7e0d3ca3ef9d0 100644
--- a/modules/vlsuite_utility_classes/js/vlsuite-utility-classes-live-previewer.es6.js
+++ b/modules/vlsuite_utility_classes/js/vlsuite-utility-classes-live-previewer.es6.js
@@ -312,7 +312,7 @@
       if (value.includes('auto')) {
         auto_classes = drupalSettings.vlsuite_utility_classes_map['column_widths']['auto'];
       }
-      value.split('-').forEach(function (columnWidthValue, olumnWidthIndex) {
+      value.split('-').forEach(function (columnWidthValue, columnWidthIndex) {
         if (columnWidthValue !== 'auto') {
           classes[columnWidthValue] = drupalSettings.vlsuite_utility_classes_map['column_widths'][columnWidthValue].concat(auto_classes);
         }
@@ -353,7 +353,7 @@
         if (defaults && defaults[identifier] !== undefined) {
           if (isColumnWidths) {
             var classesDefault = {};
-            defaults[identifier].split('-').forEach(function (columnWidthValue, olumnWidthIndex) {
+            defaults[identifier].split('-').forEach(function (columnWidthValue, columnWidthIndex) {
               classesDefault[columnWidthValue] = drupalSettings.vlsuite_utility_classes_map['column_widths'][columnWidthValue];
               groupelement.classList.remove(...classesDefault[columnWidthValue]);
             });
@@ -365,8 +365,8 @@
         }
         if (classes !== null) {
           if (isColumnWidths) {
-            value.split('-').forEach(function (columnWidthValue, olumnWidthIndex) {
-              if (olumnWidthIndex === index) {
+            value.split('-').forEach(function (columnWidthValue, columnWidthIndex) {
+              if (columnWidthIndex === index) {
                 groupelement.classList.add(...classes[columnWidthValue]);
               }
             });
diff --git a/modules/vlsuite_utility_classes/js/vlsuite-utility-classes-live-previewer.js b/modules/vlsuite_utility_classes/js/vlsuite-utility-classes-live-previewer.js
index 45fb6e021ece9382de4bf3b94339e8499bcfdb14..b1a40a0de08250c544da01de9e7728c5b1de7c52 100644
--- a/modules/vlsuite_utility_classes/js/vlsuite-utility-classes-live-previewer.js
+++ b/modules/vlsuite_utility_classes/js/vlsuite-utility-classes-live-previewer.js
@@ -328,7 +328,7 @@
       if (value.includes('auto')) {
         auto_classes = drupalSettings.vlsuite_utility_classes_map['column_widths']['auto'];
       }
-      value.split('-').forEach(function (columnWidthValue, olumnWidthIndex) {
+      value.split('-').forEach(function (columnWidthValue, columnWidthIndex) {
         if (columnWidthValue !== 'auto') {
           classes[columnWidthValue] = drupalSettings.vlsuite_utility_classes_map['column_widths'][columnWidthValue].concat(auto_classes);
         }
@@ -361,12 +361,12 @@
     } else if (Drupal.vlsuite_utility_classes_live_previewer_type_apply_scope[type] === 'region') {
       var defaults = element.dataset.vlsuiteUtilityClassesLivePreviewerDefaults !== undefined ? JSON.parse(element.dataset.vlsuiteUtilityClassesLivePreviewerDefaults) : false;
       if (defaults && defaults[identifier] !== undefined) {
-        var _element$querySelecto;
-        (_element$querySelecto = element.querySelector('[data-region]').classList).remove.apply(_element$querySelecto, _toConsumableArray(drupalSettings.vlsuite_utility_classes_map[identifier].values[defaults[identifier]].classes));
+        var _element$querySelector;
+        (_element$querySelector = element.querySelector('[data-region]').classList).remove.apply(_element$querySelector, _toConsumableArray(drupalSettings.vlsuite_utility_classes_map[identifier].values[defaults[identifier]].classes));
       }
       if (classes !== null) {
-        var _element$querySelecto2;
-        (_element$querySelecto2 = element.querySelector('[data-region]').classList).add.apply(_element$querySelecto2, _toConsumableArray(classes));
+        var _element$querySelector2;
+        (_element$querySelector2 = element.querySelector('[data-region]').classList).add.apply(_element$querySelector2, _toConsumableArray(classes));
       }
     } else if (Drupal.vlsuite_utility_classes_live_previewer_type_apply_scope[type] === 'section') {
       element.closest('[data-layout-delta]').querySelectorAll('[data-vlsuite-utility-classes-live-previewer-apply-to="' + element.dataset.vlsuiteUtilityClassesLivePreviewerApplyTo + '"]').forEach(function (groupelement, index) {
@@ -374,7 +374,7 @@
         if (defaults && defaults[identifier] !== undefined) {
           if (isColumnWidths) {
             var classesDefault = {};
-            defaults[identifier].split('-').forEach(function (columnWidthValue, olumnWidthIndex) {
+            defaults[identifier].split('-').forEach(function (columnWidthValue, columnWidthIndex) {
               var _groupelement$classLi3;
               classesDefault[columnWidthValue] = drupalSettings.vlsuite_utility_classes_map['column_widths'][columnWidthValue];
               (_groupelement$classLi3 = groupelement.classList).remove.apply(_groupelement$classLi3, _toConsumableArray(classesDefault[columnWidthValue]));
@@ -389,8 +389,8 @@
         }
         if (classes !== null) {
           if (isColumnWidths) {
-            value.split('-').forEach(function (columnWidthValue, olumnWidthIndex) {
-              if (olumnWidthIndex === index) {
+            value.split('-').forEach(function (columnWidthValue, columnWidthIndex) {
+              if (columnWidthIndex === index) {
                 var _groupelement$classLi5;
                 (_groupelement$classLi5 = groupelement.classList).add.apply(_groupelement$classLi5, _toConsumableArray(classes[columnWidthValue]));
               }
diff --git a/modules/vlsuite_utility_classes/src/Controller/VLSuiteUtilityClassesApplyTo.php b/modules/vlsuite_utility_classes/src/Controller/VLSuiteUtilityClassesApplyTo.php
index 386130a4ccccb200057fccf3da832ccbdfdcd48d..650332273262f3ab7d4fc4305ba6e240357ec319 100644
--- a/modules/vlsuite_utility_classes/src/Controller/VLSuiteUtilityClassesApplyTo.php
+++ b/modules/vlsuite_utility_classes/src/Controller/VLSuiteUtilityClassesApplyTo.php
@@ -14,7 +14,7 @@ use Symfony\Component\DependencyInjection\ContainerInterface;
 /**
  * Utility classes apply to controller.
  */
-class VLSuiteUtilityClassesApplyTo implements ContainerInjectionInterface {
+final class VLSuiteUtilityClassesApplyTo implements ContainerInjectionInterface {
 
   use LayoutRebuildTrait;
 
diff --git a/modules/vlsuite_utility_classes/src/Form/VLSuiteUtilityClassesSettingsForm.php b/modules/vlsuite_utility_classes/src/Form/VLSuiteUtilityClassesSettingsForm.php
index 6c881ce2eca99a71bddd42f0287940cb3c9ff680..e77e1b79fda0806cda6bed92aae574aad5c05691 100644
--- a/modules/vlsuite_utility_classes/src/Form/VLSuiteUtilityClassesSettingsForm.php
+++ b/modules/vlsuite_utility_classes/src/Form/VLSuiteUtilityClassesSettingsForm.php
@@ -75,7 +75,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
    * @return array
    *   Utilities processed.
    */
-  protected function utilitiesTreeValuesProccesed(array $utilities) {
+  protected function utilitiesTreeValuesProcessed(array $utilities) {
     $utilities_processed = [];
     foreach ($utilities as $utility_delta => $utility) {
       $utilities_processed[$utility_delta]['identifier'] = $utility['identifier'];
@@ -104,7 +104,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
    */
   public function addUtilityClassValue(array $form, FormStateInterface $form_state) {
     $utility_delta = $form_state->getTriggeringElement()['#utility_delta'];
-    $utilities = $this->utilitiesTreeValuesProccesed($form_state->getValue('utilities', []));
+    $utilities = $this->utilitiesTreeValuesProcessed($form_state->getValue('utilities', []));
     $utilities[$utility_delta]['values'][] = [];
     $form_state->set('utilities', $utilities);
     $form_state->setRebuild();
@@ -121,7 +121,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
   public function removeUtilityClassValue(array $form, FormStateInterface $form_state) {
     $utility_delta = $form_state->getTriggeringElement()['#utility_delta'];
     $utility_value_delta = $form_state->getTriggeringElement()['#utility_value_delta'];
-    $utilities = $this->utilitiesTreeValuesProccesed($form_state->getValue('utilities', []));
+    $utilities = $this->utilitiesTreeValuesProcessed($form_state->getValue('utilities', []));
     unset($utilities[$utility_delta]['values'][$utility_value_delta]);
     $form_state->set('utilities', $utilities);
     $form_state->setRebuild();
@@ -136,7 +136,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
    *   Form state.
    */
   public function addUtility(array $form, FormStateInterface $form_state) {
-    $utilities = $this->utilitiesTreeValuesProccesed($form_state->getValue('utilities', []));
+    $utilities = $this->utilitiesTreeValuesProcessed($form_state->getValue('utilities', []));
     $utilities[] = [];
     $form_state->set('utilities', $utilities);
     $form_state->setRebuild();
@@ -152,7 +152,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
    */
   public function removeUtility(array $form, FormStateInterface $form_state) {
     $utility_delta = $form_state->getTriggeringElement()['#utility_delta'];
-    $utilities = $this->utilitiesTreeValuesProccesed($form_state->getValue('utilities', []));
+    $utilities = $this->utilitiesTreeValuesProcessed($form_state->getValue('utilities', []));
     unset($utilities[$utility_delta]);
     $form_state->set('utilities', $utilities);
     $form_state->setRebuild();
@@ -240,7 +240,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
           '#submit' => ['::addUtilityClassValue'],
           '#utility_delta' => $delta,
           '#ajax' => [
-            'callback' => '::refreshUtiltyValuesAjaxCallback',
+            'callback' => '::refreshUtilityValuesAjaxCallback',
             'wrapper' => 'utility-' . $delta . '-values-wrapper',
             'disable-refocus' => TRUE,
           ],
@@ -251,7 +251,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
         '#tree' => FALSE,
         '#attributes' => ['class' => ['button--danger']],
         '#value' => $this->t('Remove utility class'),
-        '#suffix' => $this->t('WARNING! Make sure no usement before removing.'),
+        '#suffix' => $this->t('WARNING! Make sure no usage before removing.'),
         '#submit' => ['::removeUtility'],
         '#name' => 'utility_remove_utility_' . $delta,
         '#utility_delta' => $delta,
@@ -296,12 +296,12 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
           '#attributes' => ['class' => ['button--danger']],
           '#value' => $this->t('Remove utility class value'),
           '#name' => 'utility_remove_value_' . $delta . '_' . $utility_value_key,
-          '#suffix' => $this->t('WARNING! Make sure no usement before removing.'),
+          '#suffix' => $this->t('WARNING! Make sure no usage before removing.'),
           '#submit' => ['::removeUtilityClassValue'],
           '#utility_delta' => $delta,
           '#utility_value_delta' => $utility_value_key,
           '#ajax' => [
-            'callback' => '::refreshUtiltyValuesAjaxCallback',
+            'callback' => '::refreshUtilityValuesAjaxCallback',
             'wrapper' => 'utility-' . $delta . '-values-wrapper',
             'disable-refocus' => TRUE,
           ],
@@ -322,7 +322,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
    * @return array
    *   Utilities values form element for ajax callback.
    */
-  public function refreshUtiltyValuesAjaxCallback(array $form, FormStateInterface $form_state) {
+  public function refreshUtilityValuesAjaxCallback(array $form, FormStateInterface $form_state) {
     $utility_delta = $form_state->getTriggeringElement()['#utility_delta'];
     return $form['utilities'][$utility_delta]['values_wrapper'];
   }
@@ -354,7 +354,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
       '#tree' => TRUE,
       '#open' => TRUE,
       '#title' => $this->t('Info'),
-      '#description' => $this->t('Default provided is using similar as <a href=":link" target="_blank">Bootstrap 5 utilities</a>, you can adjust to fit your bootstrap customization or to your completly customized styles.',
+      '#description' => $this->t('Default provided is using similar as <a href=":link" target="_blank">Bootstrap 5 utilities</a>, you can adjust to fit your bootstrap customization or to your completely customized styles.',
         [':link' => 'https://getbootstrap.com/docs/5.0/utilities']),
     ];
 
@@ -412,7 +412,7 @@ final class VLSuiteUtilityClassesSettingsForm extends ConfigFormBase {
     $form['basics']['col_classes']['col_auto'] = [
       '#type' => 'textfield',
       '#required' => TRUE,
-      '#title' => $this->t('Col auto to add when not filling row base class (or classes)', ['@percentage' => $percentage]),
+      '#title' => $this->t('Col auto to add when not filling row base class (or classes)'),
       '#description' => $this->t('Examples "mx-auto", Separated by " " when multiple.'),
       '#default_value' => $this->configFactory->get('vlsuite_utility_classes.settings')->get('col_classes')['col_auto'] ?? NULL,
     ];
diff --git a/modules/vlsuite_utility_classes/src/VLSuiteUtilityClassesHelper.php b/modules/vlsuite_utility_classes/src/VLSuiteUtilityClassesHelper.php
index 11342da1667321afd740ee420452b6b359ebd8a8..235cbf961fd3c52be33eeaa6effac3f3c193562c 100644
--- a/modules/vlsuite_utility_classes/src/VLSuiteUtilityClassesHelper.php
+++ b/modules/vlsuite_utility_classes/src/VLSuiteUtilityClassesHelper.php
@@ -200,7 +200,7 @@ class VLSuiteUtilityClassesHelper {
    */
   public function getUtilitiesApplyToClasses($apply_to, array $utility_classes_config) {
     $apply_to_utilities = $this->getUtilitiesApplyToList($apply_to, TRUE);
-    $apply_to_config = $utility_classes_config ?? [];
+    $apply_to_config = $utility_classes_config;
     $apply_to_classes = [];
     foreach (array_keys($apply_to_utilities) as $utility_key) {
       if (!empty($apply_to_config[$utility_key]) || (isset($apply_to_config[$utility_key]) && $apply_to_config[$utility_key] == '0')) {
@@ -414,7 +414,7 @@ class VLSuiteUtilityClassesHelper {
   public function buildApplyUtilityClasses(array $apply_to_list, array &$build) {
     $is_field = (!empty($build['#theme']) && $build['#theme'] == 'field' || !empty($build[0]['#theme']) && $build[0]['#theme'] == 'field');
     // @see https://git.drupalcode.org/project/drupal/-/commit/7598b15a28f370ae194153c183b158b13670703a
-    $is_field_parent_preffix = $is_field && !empty($build[0]['#theme']) && $build[0]['#theme'] == 'field' ? '0:' : '';
+    $is_field_parent_prefix = $is_field && !empty($build[0]['#theme']) && $build[0]['#theme'] == 'field' ? '0:' : '';
     foreach ($apply_to_list as $apply_to => $utility_classes_config) {
       $classes = $this->getUtilitiesApplyToClasses($apply_to, $utility_classes_config) ?? NULL;
       $apply_to_array = explode(':', $apply_to);
@@ -438,12 +438,12 @@ class VLSuiteUtilityClassesHelper {
 
       $parents_group = [];
       if (!empty($item)) {
-        $build_apply_to = !$is_field  && !empty($field) && !empty($build[$field]) ? $build[$field] : ($is_field_parent_preffix ? $build[0] : $build);
+        $build_apply_to = !$is_field  && !empty($field) && !empty($build[$field]) ? $build[$field] : ($is_field_parent_prefix ? $build[0] : $build);
         foreach (Element::children($build_apply_to) as $delta) {
           // @see template_preprocess_field().
-          $parents_group[] = (!$is_field ? $field . ':' : $is_field_parent_preffix) . $delta . ':#attributes:class';
+          $parents_group[] = (!$is_field ? $field . ':' : $is_field_parent_prefix) . $delta . ':#attributes:class';
           // @code $parents_group[] = (!$is_field ? $field . ':' : '') . $delta . ':_attributes:class'; @endcode
-          $parents_group[] = (!$is_field ? $field . ':' : $is_field_parent_preffix) . $delta . ':#item_attributes:class';
+          $parents_group[] = (!$is_field ? $field . ':' : $is_field_parent_prefix) . $delta . ':#item_attributes:class';
           // Avoid generic entity render cache when modified per utilities.
           if (!empty($build[$field][$delta]['#cache']['bin']) && $build[$field][$delta]['#cache']['bin'] === 'render') {
             unset($build[$field][$delta]['#cache']['bin']);
@@ -453,7 +453,7 @@ class VLSuiteUtilityClassesHelper {
             unset($build[$delta]['#cache']['bin']);
             unset($build[$delta]['#cache']['keys']);
           }
-          if (!empty($is_field_parent_preffix) && !empty($build[0][$delta]['#cache']['bin']) && $build[0][$delta]['#cache']['bin'] === 'render') {
+          if (!empty($is_field_parent_prefix) && !empty($build[0][$delta]['#cache']['bin']) && $build[0][$delta]['#cache']['bin'] === 'render') {
             unset($build[0][$delta]['#cache']['bin']);
             unset($build[0][$delta]['#cache']['keys']);
           }
@@ -515,7 +515,7 @@ class VLSuiteUtilityClassesHelper {
     $include_advanced = $this->useAdvancedUtilityClasses;
     $is_field = (!empty($build['#theme']) && $build['#theme'] == 'field' || !empty($build[0]['#theme']) && $build[0]['#theme'] == 'field');
     // @see https://git.drupalcode.org/project/drupal/-/commit/7598b15a28f370ae194153c183b158b13670703a
-    $is_field_parent_preffix = $is_field && !empty($build[0]['#theme']) && $build[0]['#theme'] == 'field' ? '0:' : '';
+    $is_field_parent_prefix = $is_field && !empty($build[0]['#theme']) && $build[0]['#theme'] == 'field' ? '0:' : '';
     foreach (array_keys($apply_to_list) as $apply_to) {
       $apply_to_array = explode(':', $apply_to);
       $apply_to_utilities = $this->getUtilitiesApplyToList($apply_to, $include_advanced);
@@ -543,11 +543,11 @@ class VLSuiteUtilityClassesHelper {
       }
       $parents_group = [];
       if (!empty($item)) {
-        $build_apply_to = !$is_field  && !empty($field) && !empty($build[$field]) ? $build[$field] : (!empty($is_field_parent_preffix) ? $build[0] : $build);
+        $build_apply_to = !$is_field  && !empty($field) && !empty($build[$field]) ? $build[$field] : (!empty($is_field_parent_prefix) ? $build[0] : $build);
         foreach (Element::children($build_apply_to) as $delta) {
           // @see template_preprocess_field().
-          $parents_group[] = (!$is_field ? $field . ':' : $is_field_parent_preffix) . $delta . ':#attributes';
-          $parents_group[] = (!$is_field ? $field . ':' : $is_field_parent_preffix) . $delta . ':#item_attributes';
+          $parents_group[] = (!$is_field ? $field . ':' : $is_field_parent_prefix) . $delta . ':#attributes';
+          $parents_group[] = (!$is_field ? $field . ':' : $is_field_parent_prefix) . $delta . ':#item_attributes';
         }
       }
       elseif (!empty($field)) {
diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon
new file mode 100644
index 0000000000000000000000000000000000000000..364905f71489c1bf2c77d2bfe157d6c90f0ee4f2
--- /dev/null
+++ b/phpstan-baseline.neon
@@ -0,0 +1,2 @@
+parameters:
+	ignoreErrors:
diff --git a/phpstan.neon b/phpstan.neon
new file mode 100644
index 0000000000000000000000000000000000000000..a774df925e276714f56935238d0e4ebed3ec6564
--- /dev/null
+++ b/phpstan.neon
@@ -0,0 +1,24 @@
+# Configuration file for PHPStan static code checking, see https://phpstan.org.
+includes:
+  - phpstan-baseline.neon
+parameters:
+  level: 1
+  customRulesetUsed: true
+  reportUnmatchedIgnoredErrors: true
+  paths:
+    - .
+  ignoreErrors:
+    - '#^Class Drupal\\vlsuite_block\\Controller\\VLSuiteBlockChooseBlockController extends @internal class Drupal\\layout_builder_restrictions\\Controller\\ChooseBlockController\.#'
+    - '#^Class Drupal\\vlsuite_block\\Plugin\\Block\\VLSuiteFieldBlock extends @internal class Drupal\\layout_builder\\Plugin\\Block\\FieldBlock\.#'
+    - '#^Class Drupal\\vlsuite_block\\Plugin\\Block\\VLSuiteInlineBlock extends @internal class Drupal\\layout_builder\\Plugin\\Block\\InlineBlock\.#'
+    - '#^Class Drupal\\vlsuite_block\\Plugin\\Derivative\\VLSuiteFieldBlockDeriver extends @internal class Drupal\\layout_builder\\Plugin\\Derivative\\FieldBlockDeriver\.#'
+    - '#^Class Drupal\\vlsuite_block\\Plugin\\Derivative\\VLSuiteMediaBgFieldBlockDeriver extends @internal class Drupal\\layout_builder\\Plugin\\Derivative\\FieldBlockDeriver\.#'
+    - '#^Parameter \$default_content_exporter of method Drupal\\vlsuite_generator\\Drush\\Generators\\VLSuiteGeneratorModuleGenerator\:\:__construct\(\) has invalid type Drupal\\default_content\\Exporter\.#'
+    -
+      message: "#^Unsafe usage of new static\\(\\)\\.$#"
+      count: 1
+      path: modules/vlsuite_layout/modules/vlsuite_layout_tabs/src/Plugin/Layout/VLSuiteLayoutTabsBase.php
+    -
+      message: "#^Unsafe usage of new static\\(\\)\\.$#"
+      count: 1
+      path: modules/vlsuite_layout/src/Plugin/Layout/VLSuiteLayoutBase.php