diff --git a/src/Controller/ExperienceBuilderController.php b/src/Controller/ExperienceBuilderController.php
index d090d95da8db6987c71c70230c014b0e64daf9a4..f951c0509d32bc08476fa56640ef644bea98424c 100644
--- a/src/Controller/ExperienceBuilderController.php
+++ b/src/Controller/ExperienceBuilderController.php
@@ -114,14 +114,15 @@ HTML;
           'base' => \sprintf('xb/%s/%s', $entity_type, $entity?->id()),
           'entityType' => $entity_type,
           'entity' => $entity?->id(),
-          'demo_mode' => $demo_mode,
+          'entityTypeKeys' => $entity?->getEntityType()->getKeys(),
+          'demoMode' => $demo_mode,
           // Allow for perfect component previews, by letting the client side
           // know what global assets to load in component preview <iframe>s.
           // @see ui/src/components/ComponentPreview.tsx
-          'global_assets' => [
+          'globalAssets' => [
             'css' => $this->assetRenderer->renderCssAssets($preview_assets),
-            'js_header' => $this->assetRenderer->renderJsHeaderAssets($preview_assets),
-            'js_footer' => $this->assetRenderer->renderJsFooterAssets($preview_assets),
+            'jsHeader' => $this->assetRenderer->renderJsHeaderAssets($preview_assets),
+            'jsFooter' => $this->assetRenderer->renderJsFooterAssets($preview_assets),
           ],
           'xbModulePath' => $xb_module_path,
         ],
diff --git a/tests/src/Kernel/Controller/ExperienceBuilderControllerTest.php b/tests/src/Kernel/Controller/ExperienceBuilderControllerTest.php
index d811afc3f37bd3ef30dfbac4bde364df18b1dafe..33211b2ca208459eb4af4bd6b17c01351012f438 100644
--- a/tests/src/Kernel/Controller/ExperienceBuilderControllerTest.php
+++ b/tests/src/Kernel/Controller/ExperienceBuilderControllerTest.php
@@ -64,7 +64,7 @@ final class ExperienceBuilderControllerTest extends KernelTestBase {
     ])->toString();
     self::assertEquals("/xb/$entity_type", $add_url);
     $this->request(Request::create($add_url));
-    $this->assertExperienceBuilderMount($entity_type, '');
+    $this->assertExperienceBuilderMount($entity_type);
 
     $storage = $this->container->get('entity_type.manager')->getStorage($entity_type);
     $sut = $storage->create($values);
@@ -77,7 +77,7 @@ final class ExperienceBuilderControllerTest extends KernelTestBase {
     self::assertEquals("/xb/$entity_type/{$sut->id()}", $edit_url);
     $this->request(Request::create($edit_url));
 
-    $this->assertExperienceBuilderMount($entity_type, $sut->id());
+    $this->assertExperienceBuilderMount($entity_type, $sut);
   }
 
   public static function entityData(): array {
diff --git a/tests/src/Kernel/Entity/Routing/XbHtmlRouteProviderTest.php b/tests/src/Kernel/Entity/Routing/XbHtmlRouteProviderTest.php
index 66955ed13bc0bff307d7b12e71422e326bed0b99..dec419d9794c4ce5af9a285b2511bf3b06d610f5 100644
--- a/tests/src/Kernel/Entity/Routing/XbHtmlRouteProviderTest.php
+++ b/tests/src/Kernel/Entity/Routing/XbHtmlRouteProviderTest.php
@@ -44,7 +44,7 @@ final class XbHtmlRouteProviderTest extends KernelTestBase {
     $this->setUpCurrentUser([], ['administer xb_page']);
     $url = Url::fromRoute('entity.xb_page.add_form')->toString();
     $this->request(Request::create($url));
-    $this->assertExperienceBuilderMount('xb_page', '');
+    $this->assertExperienceBuilderMount('xb_page');
   }
 
   public function testEditFormRoute(): void {
@@ -53,7 +53,7 @@ final class XbHtmlRouteProviderTest extends KernelTestBase {
     $page->save();
     $url = $page->toUrl('edit-form')->toString();
     $this->request(Request::create($url));
-    $this->assertExperienceBuilderMount('xb_page', $page->id());
+    $this->assertExperienceBuilderMount('xb_page', $page);
   }
 
 }
diff --git a/tests/src/Kernel/Traits/XbUiAssertionsTrait.php b/tests/src/Kernel/Traits/XbUiAssertionsTrait.php
index ee032439a1f8e187bd9d3dc6ae9fb7352a5acf62..437d821d2543d26574302fd295ced91bbfd2793f 100644
--- a/tests/src/Kernel/Traits/XbUiAssertionsTrait.php
+++ b/tests/src/Kernel/Traits/XbUiAssertionsTrait.php
@@ -4,6 +4,8 @@ declare(strict_types=1);
 
 namespace Drupal\Tests\experience_builder\Kernel\Traits;
 
+use Drupal\Core\Entity\EntityInterface;
+
 trait XbUiAssertionsTrait {
 
   /**
@@ -11,16 +13,19 @@ trait XbUiAssertionsTrait {
    *
    * @param string $entity_type
    *   The entity type.
-   * @param string|int|null $entity_id
-   *   The entity ID.
+   * @param \Drupal\Core\Entity\EntityInterface $entity
+   *   (optional) The entity.
    */
-  protected function assertExperienceBuilderMount(string $entity_type, string|int|null $entity_id): void {
+  protected function assertExperienceBuilderMount(string $entity_type, ?EntityInterface $entity = NULL): void {
+    $entity_id = $entity ? $entity->id() : NULL;
+    $entity_type_keys = $entity ? $entity->getEntityType()->getKeys() : NULL;
     $this->assertTitle('Drupal Experience Builder');
     self::assertCount(1, $this->cssSelect('#experience-builder'));
     self::assertArrayHasKey('xb', $this->drupalSettings);
     self::assertEquals("xb/$entity_type/$entity_id", $this->drupalSettings['xb']['base']);
     self::assertEquals($entity_type, $this->drupalSettings['xb']['entityType']);
     self::assertEquals($entity_id, $this->drupalSettings['xb']['entity']);
+    self::assertEquals($entity_type_keys, $this->drupalSettings['xb']['entityTypeKeys']);
   }
 
 }
diff --git a/ui/global.d.ts b/ui/global.d.ts
index 1c8a3b9506bc2bd47d4baf046c7f4d23955a4560..ae1fa57f1bb1bc357eb4c907d56375265199e98b 100644
--- a/ui/global.d.ts
+++ b/ui/global.d.ts
@@ -5,15 +5,16 @@ interface DrupalSettings {
     base: string;
     entityType: string;
     entity: string;
-    global_assets: {
+    globalAssets: {
       css: string;
-      js_header: string;
-      js_footer: string;
+      jsHeader: string;
+      jsFooter: string;
     };
     layoutUtils: PropsValues;
     navUtils: PropsValues;
-    demo_mode: boolean;
     xbModulePath: string;
+    selectedComponent: string;
+    demoMode: boolean;
   };
   path: {
     baseUrl: string;
diff --git a/ui/src/components/ComponentPreview.tsx b/ui/src/components/ComponentPreview.tsx
index 7dc29c9cf6ae1703d3f5b41bac4e08e8b9069bae..22def01b08443c535a485a2201e2ca8088a496cb 100644
--- a/ui/src/components/ComponentPreview.tsx
+++ b/ui/src/components/ComponentPreview.tsx
@@ -23,11 +23,11 @@ const ComponentPreview: React.FC<ComponentPreviewProps> = ({
   const defaultPreviewWidth = 300;
   const defaultPreviewHeight = 200;
 
-  const css = drupalSettings?.xb.global_assets.css + component.css;
+  const css = drupalSettings?.xb.globalAssets.css + component.css;
   const js_footer =
-    drupalSettings?.xb.global_assets.js_footer + component.js_footer;
+    drupalSettings?.xb.globalAssets.jsFooter + component.js_footer;
   const js_header =
-    drupalSettings?.xb.global_assets.js_header + component.js_header;
+    drupalSettings?.xb.globalAssets.jsHeader + component.js_header;
 
   const markup = component.default_markup;
   const base_url = window.location.origin + drupalSettings?.path.baseUrl;