diff --git a/src/Plugin/UiPatterns/Source/WysiwygWidget.php b/src/Plugin/UiPatterns/Source/WysiwygWidget.php
index b7db192c7ca5956cb47e93689493eeeb5070a09a..8bf60a7695f9c0af5acea2c9d3d4fa6893d8dffc 100644
--- a/src/Plugin/UiPatterns/Source/WysiwygWidget.php
+++ b/src/Plugin/UiPatterns/Source/WysiwygWidget.php
@@ -40,6 +40,9 @@ class WysiwygWidget extends SourcePluginBase implements TrustedCallbackInterface
    *   Processed element
    */
   public static function textFormat(array $element) : array {
+    if (!isset($element['#ui_patterns']) || !$element['#ui_patterns']) {
+      return $element;
+    }
     if (isset($element['format']['format']['#access']) &&
       !$element['format']['format']['#access']) {
       // See code at Drupal\filter\Element\TextFormat::processTextFormat()
@@ -87,9 +90,7 @@ class WysiwygWidget extends SourcePluginBase implements TrustedCallbackInterface
     $value = $this->getSetting('value');
     $element = [
       '#type' => 'text_format',
-      '#pre_render' => [
-        [static::class, 'textFormat'],
-      ],
+      '#ui_patterns' => TRUE,
     ];
     if (is_array($value) && array_key_exists("value", $value)) {
       $element['#default_value'] = $value['value'];
diff --git a/ui_patterns.module b/ui_patterns.module
index b64884adfa599f6506b7648b7fca4c2046422749..3bbdbebbd68de9ed803c2061019f4d165e03923f 100644
--- a/ui_patterns.module
+++ b/ui_patterns.module
@@ -7,6 +7,8 @@
 
 declare(strict_types=1);
 
+use Drupal\ui_patterns\Plugin\UiPatterns\Source\WysiwygWidget;
+
 /**
  * Implements hook_element_info_alter().
  */
@@ -15,6 +17,9 @@ function ui_patterns_element_info_alter(array &$types): void {
     array_unshift($types['component']['#pre_render'], 'ui_patterns.component_element_alter:alter');
     array_unshift($types['component']['#pre_render'], 'ui_patterns.component_element_builder:build');
   }
+  if (isset($types['text_format'])) {
+    $types['text_format']['#pre_render'][] = [WysiwygWidget::class, 'textFormat'];
+  }
 }
 
 /**