diff --git a/core/includes/theme.inc b/core/includes/theme.inc
index ff7052d4a8..dd14fb3d6b 100644
--- a/core/includes/theme.inc
+++ b/core/includes/theme.inc
@@ -588,51 +588,6 @@ function template_preprocess_datetime_form(&$variables) {
   }
 }
 
-/**
- * Prepares variables for datetime form wrapper templates.
- *
- * Default template: datetime-wrapper.html.twig.
- *
- * @param array $variables
- *   An associative array containing:
- *   - element: An associative array containing the properties of the element.
- *     Properties used: #title, #children, #required, #attributes.
- */
-function template_preprocess_datetime_wrapper(&$variables) {
-  $element = $variables['element'];
-
-  if (!empty($element['#title'])) {
-    $variables['title'] = $element['#title'];
-    // If the element title is a string, wrap it a render array so that markup
-    // will not be escaped (but XSS-filtered).
-    if (is_string($variables['title']) && $variables['title'] !== '') {
-      $variables['title'] = ['#markup' => $variables['title']];
-    }
-  }
-
-  // Suppress error messages.
-  $variables['errors'] = NULL;
-
-  $variables['description'] = NULL;
-  if (!empty($element['#description'])) {
-    $description_attributes = [];
-    if (!empty($element['#id'])) {
-      $description_attributes['id'] = $element['#id'] . '--description';
-    }
-    $description_attributes['data-drupal-field-elements'] = 'description';
-    $variables['description'] = $element['#description'];
-    $variables['description_attributes'] = new Attribute($description_attributes);
-  }
-
-  $variables['required'] = FALSE;
-  // For required datetime fields 'form-required' & 'js-form-required' classes
-  // are appended to the label attributes.
-  if (!empty($element['#required'])) {
-    $variables['required'] = TRUE;
-  }
-  $variables['content'] = $element['#children'];
-}
-
 /**
  * Prepares variables for links templates.
  *
@@ -2012,9 +1967,6 @@ function drupal_common_theme() {
     'datetime_form' => [
       'render element' => 'element',
     ],
-    'datetime_wrapper' => [
-      'render element' => 'element',
-    ],
     'status_messages' => [
       'variables' => ['status_headings' => [], 'message_list' => NULL],
     ],
diff --git a/core/lib/Drupal/Core/Datetime/Element/Datelist.php b/core/lib/Drupal/Core/Datetime/Element/Datelist.php
index bbb1676d70..b859f27268 100644
--- a/core/lib/Drupal/Core/Datetime/Element/Datelist.php
+++ b/core/lib/Drupal/Core/Datetime/Element/Datelist.php
@@ -28,7 +28,7 @@ public function getInfo() {
         [$class, 'processDatelist'],
       ],
       '#theme' => 'datetime_form',
-      '#theme_wrappers' => ['datetime_wrapper'],
+      '#theme_wrappers' => ['fieldset'],
       '#date_part_order' => ['year', 'month', 'day', 'hour', 'minute'],
       '#date_year_range' => '1900:2050',
       '#date_increment' => 1,
diff --git a/core/lib/Drupal/Core/Datetime/Element/Datetime.php b/core/lib/Drupal/Core/Datetime/Element/Datetime.php
index e1d0aea472..817d599daa 100644
--- a/core/lib/Drupal/Core/Datetime/Element/Datetime.php
+++ b/core/lib/Drupal/Core/Datetime/Element/Datetime.php
@@ -5,8 +5,8 @@
 use Drupal\Component\Utility\NestedArray;
 use Drupal\Component\Utility\Variable;
 use Drupal\Core\Datetime\DrupalDateTime;
-use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Datetime\Entity\DateFormat;
+use Drupal\Core\Form\FormStateInterface;
 use Drupal\Core\Security\DoTrustedCallbackTrait;
 use Drupal\Core\Security\StaticTrustedCallbackHelper;
 use Drupal\Core\Security\TrustedCallbackInterface;
@@ -60,8 +60,6 @@ public function getInfo() {
       '#pre_render' => [
         [$class, 'preRenderGroup'],
       ],
-      '#theme' => 'datetime_form',
-      '#theme_wrappers' => ['datetime_wrapper'],
       '#date_date_format' => $date_format,
       '#date_date_element' => 'date',
       '#date_date_callbacks' => [],
@@ -231,6 +229,30 @@ public static function processDatetime(&$element, FormStateInterface $form_state
 
     $element['#tree'] = TRUE;
 
+    // If we have two value elements, we need a fieldset.
+    if ($element['#date_date_element'] !== 'none' && $element['#date_time_element'] !== 'none') {
+      // We need a fieldset to hold both and to use the #title for the legend.
+      $element['#theme_wrappers'][] = 'fieldset';
+      $element['#theme'] = 'datetime_form';
+      $in_fieldset = TRUE;
+    }
+    // Otherwise, this can be wrapped in a simple container, and requires no
+    // special #theme at all.
+    else {
+      $element['#theme_wrappers'][] = 'container';
+      $in_fieldset = FALSE;
+      // But we're going to need to move a bunch of properties from the parent
+      // element into the value element, so initialize their keys here.
+      $property_keys = [
+        '#title',
+        '#title_display',
+        '#title_attributes',
+        '#description',
+        '#description_display',
+        '#description_attributes',
+      ];
+    }
+
     if ($element['#date_date_element'] != 'none') {
 
       $date_format = $element['#date_date_element'] != 'none' ? static::getHtml5DateFormat($element) : '';
@@ -260,8 +282,6 @@ public static function processDatetime(&$element, FormStateInterface $form_state
 
       $element['date'] = [
         '#type' => 'date',
-        '#title' => t('Date'),
-        '#title_display' => 'invisible',
         '#value' => $date_value,
         '#attributes' => $element['#attributes'] + $extra_attributes,
         '#required' => $element['#required'],
@@ -270,6 +290,22 @@ public static function processDatetime(&$element, FormStateInterface $form_state
         '#date_date_format' => $element['#date_date_format'],
       ];
 
+      // If we're inside a fieldset, the date element needs an invisible label.
+      if ($in_fieldset) {
+        $element['date']['#title'] = t('Date');
+        $element['date']['#title_display'] = 'invisible';
+      }
+      // Otherwise, the date element is all we have, so move the properities
+      // we need from the root element into the date element.
+      else {
+        foreach ($property_keys as $key) {
+          if (isset($element[$key])) {
+            $element['date'][$key] = $element[$key];
+            unset($element[$key]);
+          }
+        }
+      }
+
       // Allows custom callbacks to alter the element.
       if (!empty($element['#date_date_callbacks'])) {
         foreach ($element['#date_date_callbacks'] as $callback) {
@@ -292,8 +328,6 @@ public static function processDatetime(&$element, FormStateInterface $form_state
       ];
       $element['time'] = [
         '#type' => 'date',
-        '#title' => t('Time'),
-        '#title_display' => 'invisible',
         '#value' => $time_value,
         '#attributes' => $element['#attributes'] + $extra_attributes,
         '#required' => $element['#required'],
@@ -301,6 +335,22 @@ public static function processDatetime(&$element, FormStateInterface $form_state
         '#error_no_message' => TRUE,
       ];
 
+      // If we're inside a fieldset, the time element needs an invisible label.
+      if ($in_fieldset) {
+        $element['time']['#title'] = t('Time');
+        $element['time']['#title_display'] = 'invisible';
+      }
+      // Otherwise, the time element is all we have, so move the properities
+      // we need from the root element into the date element.
+      else {
+        foreach ($property_keys as $key) {
+          if (isset($element[$key])) {
+            $element['time'][$key] = $element[$key];
+            unset($element[$key]);
+          }
+        }
+      }
+
       // Allows custom callbacks to alter the element.
       if (!empty($element['#date_time_callbacks'])) {
         foreach ($element['#date_time_callbacks'] as $callback) {
diff --git a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php
index 276d92c431..7ce663bfdc 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDatelistWidget.php
@@ -34,10 +34,6 @@ public static function defaultSettings() {
    */
   public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
     $element = parent::formElement($items, $delta, $element, $form, $form_state);
-
-    // Wrap all of the select elements with a fieldset.
-    $element['#theme_wrappers'][] = 'fieldset';
-
     $date_order = $this->getSetting('date_order');
 
     if ($this->getFieldSetting('datetime_type') == 'datetime') {
@@ -80,6 +76,8 @@ public function formElement(FieldItemListInterface $items, $delta, array $elemen
       '#type' => 'datelist',
       '#date_increment' => $increment,
       '#date_part_order' => $date_part_order,
+      '#title' => $this->fieldDefinition->getLabel(),
+      '#description' => $this->fieldDefinition->getDescription(),
     ] + $element['value'];
 
     return $element;
diff --git a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php
index f811fa9acc..5ad717e4de 100644
--- a/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php
+++ b/core/modules/datetime/src/Plugin/Field/FieldWidget/DateTimeDefaultWidget.php
@@ -3,8 +3,8 @@
 namespace Drupal\datetime\Plugin\Field\FieldWidget;
 
 use Drupal\Core\Entity\EntityStorageInterface;
-use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Field\FieldDefinitionInterface;
+use Drupal\Core\Field\FieldItemListInterface;
 use Drupal\Core\Form\FormStateInterface;
 use Drupal\datetime\Plugin\Field\FieldType\DateTimeItem;
 use Symfony\Component\DependencyInjection\ContainerInterface;
@@ -58,15 +58,10 @@ public static function create(ContainerInterface $container, array $configuratio
   public function formElement(FieldItemListInterface $items, $delta, array $element, array &$form, FormStateInterface $form_state) {
     $element = parent::formElement($items, $delta, $element, $form, $form_state);
 
-    // If the field is date-only, make sure the title is displayed. Otherwise,
-    // wrap everything in a fieldset, and the title will be shown in the legend.
-    if ($this->getFieldSetting('datetime_type') === DateTimeItem::DATETIME_TYPE_DATE) {
-      $element['value']['#title'] = $this->fieldDefinition->getLabel();
-      $element['value']['#description'] = $this->fieldDefinition->getDescription();
-    }
-    else {
-      $element['#theme_wrappers'][] = 'fieldset';
-    }
+    // Pass the label and description (if any) to the datetime (value) element.
+    // It handles wrapping this in a fieldset with a legend if needed.
+    $element['value']['#title'] = $this->fieldDefinition->getLabel();
+    $element['value']['#description'] = $this->fieldDefinition->getDescription();
 
     // Identify the type of date and time elements to use.
     switch ($this->getFieldSetting('datetime_type')) {
diff --git a/core/modules/inline_form_errors/inline_form_errors.module b/core/modules/inline_form_errors/inline_form_errors.module
index 3bacd37b93..2741a069dc 100644
--- a/core/modules/inline_form_errors/inline_form_errors.module
+++ b/core/modules/inline_form_errors/inline_form_errors.module
@@ -48,13 +48,6 @@ function inline_form_errors_preprocess_fieldset(&$variables) {
   _inline_form_errors_set_errors($variables);
 }
 
-/**
- * Implements hook_preprocess_HOOK() for datetime form wrapper templates.
- */
-function inline_form_errors_preprocess_datetime_wrapper(&$variables) {
-  _inline_form_errors_set_errors($variables);
-}
-
 /**
  * Implements hook_element_info_alter().
  */
diff --git a/core/modules/system/templates/datetime-wrapper.html.twig b/core/modules/system/templates/datetime-wrapper.html.twig
deleted file mode 100644
index a14da8937b..0000000000
--- a/core/modules/system/templates/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,37 +0,0 @@
-{#
-/**
- * @file
- * Default theme implementation of a datetime form wrapper.
- *
- * Available variables:
- * - content: The form element to be output, usually a datelist, or datetime.
- * - title: The title of the form element.
- * - title_attributes: HTML attributes for the title wrapper.
- * - description: Description text for the form element.
- * - required: An indicator for whether the associated form element is required.
- *
- * @see template_preprocess_datetime_wrapper()
- *
- * @ingroup themeable
- */
-#}
-{%
-  set title_classes = [
-    required ? 'js-form-required',
-    required ? 'form-required',
-  ]
-%}
-{% if title %}
-  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-{% endif %}
-{{ content }}
-{% if errors %}
-  <div>
-    {{ errors }}
-  </div>
-{% endif %}
-{% if description %}
-  <div{{ description_attributes }}>
-    {{ description }}
-  </div>
-{% endif %}
diff --git a/core/profiles/demo_umami/themes/umami/templates/classy/form/datetime-wrapper.html.twig b/core/profiles/demo_umami/themes/umami/templates/classy/form/datetime-wrapper.html.twig
deleted file mode 100644
index 5b52f2daa3..0000000000
--- a/core/profiles/demo_umami/themes/umami/templates/classy/form/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,36 +0,0 @@
-{#
-/**
- * @file
- * Theme override of a datetime form wrapper.
- *
- * Available variables:
- * - content: The form element to be output, usually a datelist, or datetime.
- * - title: The title of the form element.
- * - title_attributes: HTML attributes for the title wrapper.
- * - description: Description text for the form element.
- * - required: An indicator for whether the associated form element is required.
- *
- * @see template_preprocess_datetime_wrapper()
- */
-#}
-{%
-  set title_classes = [
-    'label',
-    required ? 'js-form-required',
-    required ? 'form-required',
-  ]
-%}
-{% if title %}
-  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-{% endif %}
-{{ content }}
-{% if errors %}
-  <div class="form-item--error-message">
-    <strong>{{ errors }}</strong>
-  </div>
-{% endif %}
-{% if description %}
-  <div{{ description_attributes.addClass('description') }}>
-    {{ description }}
-  </div>
-{% endif %}
diff --git a/core/themes/bartik/templates/classy/form/datetime-wrapper.html.twig b/core/themes/bartik/templates/classy/form/datetime-wrapper.html.twig
deleted file mode 100644
index 5b52f2daa3..0000000000
--- a/core/themes/bartik/templates/classy/form/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,36 +0,0 @@
-{#
-/**
- * @file
- * Theme override of a datetime form wrapper.
- *
- * Available variables:
- * - content: The form element to be output, usually a datelist, or datetime.
- * - title: The title of the form element.
- * - title_attributes: HTML attributes for the title wrapper.
- * - description: Description text for the form element.
- * - required: An indicator for whether the associated form element is required.
- *
- * @see template_preprocess_datetime_wrapper()
- */
-#}
-{%
-  set title_classes = [
-    'label',
-    required ? 'js-form-required',
-    required ? 'form-required',
-  ]
-%}
-{% if title %}
-  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-{% endif %}
-{{ content }}
-{% if errors %}
-  <div class="form-item--error-message">
-    <strong>{{ errors }}</strong>
-  </div>
-{% endif %}
-{% if description %}
-  <div{{ description_attributes.addClass('description') }}>
-    {{ description }}
-  </div>
-{% endif %}
diff --git a/core/themes/claro/claro.theme b/core/themes/claro/claro.theme
index 4004b7623c..bb170b54fd 100644
--- a/core/themes/claro/claro.theme
+++ b/core/themes/claro/claro.theme
@@ -840,23 +840,6 @@ function claro_preprocess_select(&$variables) {
   }
 }
 
-/**
- * Implements template_preprocess_HOOK() for datetime_wrapper.
- */
-function claro_preprocess_datetime_wrapper(&$variables) {
-  if (!empty($variables['element']['#errors'])) {
-    $variables['title_attributes']['class'][] = 'has-error';
-  }
-
-  if (!empty($variables['element']['#disabled'])) {
-    $variables['title_attributes']['class'][] = 'is-disabled';
-
-    if (!empty($variables['description_attributes'])) {
-      $variables['description_attributes']->addClass('is-disabled');
-    }
-  }
-}
-
 /**
  * Implements template_preprocess_HOOK() for fieldset.
  */
diff --git a/core/themes/claro/templates/datetime-wrapper.html.twig b/core/themes/claro/templates/datetime-wrapper.html.twig
deleted file mode 100644
index 4215b28ff2..0000000000
--- a/core/themes/claro/templates/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,34 +0,0 @@
-{#
-/**
- * @file
- * Theme override of a datetime form wrapper.
- *
- * @todo Refactor when https://www.drupal.org/node/3010558 is fixed.
- *
- * @see template_preprocess_form_element()
- */
-#}
-{%
-  set title_classes = [
-    'form-item__label',
-    required ? 'js-form-required',
-    required ? 'form-required',
-    errors ? 'has-error',
-  ]
-%}
-<div class="form-item form-datetime-wrapper">
-{% if title %}
-  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-{% endif %}
-{{ content }}
-{% if errors %}
-  <div class="form-item__error-message">
-    {{ errors }}
-  </div>
-{% endif %}
-{% if description %}
-  <div{{ description_attributes.addClass('form-item__description') }}>
-    {{ description }}
-  </div>
-{% endif %}
-</div>
diff --git a/core/themes/classy/templates/form/datetime-wrapper.html.twig b/core/themes/classy/templates/form/datetime-wrapper.html.twig
deleted file mode 100644
index 5b52f2daa3..0000000000
--- a/core/themes/classy/templates/form/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,36 +0,0 @@
-{#
-/**
- * @file
- * Theme override of a datetime form wrapper.
- *
- * Available variables:
- * - content: The form element to be output, usually a datelist, or datetime.
- * - title: The title of the form element.
- * - title_attributes: HTML attributes for the title wrapper.
- * - description: Description text for the form element.
- * - required: An indicator for whether the associated form element is required.
- *
- * @see template_preprocess_datetime_wrapper()
- */
-#}
-{%
-  set title_classes = [
-    'label',
-    required ? 'js-form-required',
-    required ? 'form-required',
-  ]
-%}
-{% if title %}
-  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-{% endif %}
-{{ content }}
-{% if errors %}
-  <div class="form-item--error-message">
-    <strong>{{ errors }}</strong>
-  </div>
-{% endif %}
-{% if description %}
-  <div{{ description_attributes.addClass('description') }}>
-    {{ description }}
-  </div>
-{% endif %}
diff --git a/core/themes/olivero/templates/datetime-wrapper.html.twig b/core/themes/olivero/templates/datetime-wrapper.html.twig
deleted file mode 100644
index e9230077cc..0000000000
--- a/core/themes/olivero/templates/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,33 +0,0 @@
-{#
-/**
- * @file
- * Theme override of a datetime form wrapper.
- *
- * @todo Refactor when https://www.drupal.org/node/3010558 is fixed.
- *
- * @see template_preprocess_form_element()
- */
-#}
-{%
-  set title_classes = [
-    'form-item__label',
-    required ? 'js-form-required',
-    required ? 'form-required',
-  ]
-%}
-<div class="form-item form-datetime-wrapper">
-  {% if title %}
-    <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-  {% endif %}
-  {{ content }}
-  {% if errors %}
-    <div class="form-item__error-message">
-      {{ errors }}
-    </div>
-  {% endif %}
-  {% if description %}
-    <div{{ description_attributes.addClass('form-item__description') }}>
-      {{ description }}
-    </div>
-  {% endif %}
-</div>
diff --git a/core/themes/seven/templates/classy/form/datetime-wrapper.html.twig b/core/themes/seven/templates/classy/form/datetime-wrapper.html.twig
deleted file mode 100644
index 5b52f2daa3..0000000000
--- a/core/themes/seven/templates/classy/form/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,36 +0,0 @@
-{#
-/**
- * @file
- * Theme override of a datetime form wrapper.
- *
- * Available variables:
- * - content: The form element to be output, usually a datelist, or datetime.
- * - title: The title of the form element.
- * - title_attributes: HTML attributes for the title wrapper.
- * - description: Description text for the form element.
- * - required: An indicator for whether the associated form element is required.
- *
- * @see template_preprocess_datetime_wrapper()
- */
-#}
-{%
-  set title_classes = [
-    'label',
-    required ? 'js-form-required',
-    required ? 'form-required',
-  ]
-%}
-{% if title %}
-  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-{% endif %}
-{{ content }}
-{% if errors %}
-  <div class="form-item--error-message">
-    <strong>{{ errors }}</strong>
-  </div>
-{% endif %}
-{% if description %}
-  <div{{ description_attributes.addClass('description') }}>
-    {{ description }}
-  </div>
-{% endif %}
diff --git a/core/themes/stable/templates/form/datetime-wrapper.html.twig b/core/themes/stable/templates/form/datetime-wrapper.html.twig
deleted file mode 100644
index 3c37ffd20d..0000000000
--- a/core/themes/stable/templates/form/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,31 +0,0 @@
-{#
-/**
- * @file
- * Theme override of a datetime form wrapper.
- *
- * Available variables:
- * - content: The form element to be output, usually a datelist, or datetime.
- * - title: The title of the form element.
- * - title_attributes: HTML attributes for the title wrapper.
- * - description: Description text for the form element.
- * - required: An indicator for whether the associated form element is required.
- *
- * @see template_preprocess_datetime_wrapper()
- */
-#}
-{%
-  set title_classes = [
-    required ? 'js-form-required',
-    required ? 'form-required',
-  ]
-%}
-{% if title %}
-  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-{% endif %}
-{{ content }}
-{% if errors %}
-  <div>
-    {{ errors }}
-  </div>
-{% endif %}
-{{ description }}
diff --git a/core/themes/stable9/templates/form/datetime-wrapper.html.twig b/core/themes/stable9/templates/form/datetime-wrapper.html.twig
deleted file mode 100644
index e30d448a2a..0000000000
--- a/core/themes/stable9/templates/form/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,35 +0,0 @@
-{#
-/**
- * @file
- * Theme override of a datetime form wrapper.
- *
- * Available variables:
- * - content: The form element to be output, usually a datelist, or datetime.
- * - title: The title of the form element.
- * - title_attributes: HTML attributes for the title wrapper.
- * - description: Description text for the form element.
- * - required: An indicator for whether the associated form element is required.
- *
- * @see template_preprocess_datetime_wrapper()
- */
-#}
-{%
-  set title_classes = [
-    required ? 'js-form-required',
-    required ? 'form-required',
-  ]
-%}
-{% if title %}
-  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-{% endif %}
-{{ content }}
-{% if errors %}
-  <div>
-    {{ errors }}
-  </div>
-{% endif %}
-{% if description %}
-  <div{{ description_attributes }}>
-    {{ description }}
-  </div>
-{% endif %}
diff --git a/core/themes/starterkit_theme/templates/form/datetime-wrapper.html.twig b/core/themes/starterkit_theme/templates/form/datetime-wrapper.html.twig
deleted file mode 100644
index 5b52f2daa3..0000000000
--- a/core/themes/starterkit_theme/templates/form/datetime-wrapper.html.twig
+++ /dev/null
@@ -1,36 +0,0 @@
-{#
-/**
- * @file
- * Theme override of a datetime form wrapper.
- *
- * Available variables:
- * - content: The form element to be output, usually a datelist, or datetime.
- * - title: The title of the form element.
- * - title_attributes: HTML attributes for the title wrapper.
- * - description: Description text for the form element.
- * - required: An indicator for whether the associated form element is required.
- *
- * @see template_preprocess_datetime_wrapper()
- */
-#}
-{%
-  set title_classes = [
-    'label',
-    required ? 'js-form-required',
-    required ? 'form-required',
-  ]
-%}
-{% if title %}
-  <h4{{ title_attributes.addClass(title_classes) }}>{{ title }}</h4>
-{% endif %}
-{{ content }}
-{% if errors %}
-  <div class="form-item--error-message">
-    <strong>{{ errors }}</strong>
-  </div>
-{% endif %}
-{% if description %}
-  <div{{ description_attributes.addClass('description') }}>
-    {{ description }}
-  </div>
-{% endif %}
