radix-8.x-4.2/src/components/form/fieldset.twig
src/components/form/fieldset.twig
{#
/**
* @file
* Theme override for a fieldset element and its children.
*
* Available variables:
* - attributes: HTML attributes for the fieldset element.
* - errors: (optional) Any errors for this fieldset element, may not be set.
* - required: Boolean indicating whether the fieldeset element is required.
* - legend: The legend element containing the following properties:
* - title: Title of the fieldset, intended for use as the text of the legend.
* - attributes: HTML attributes to apply to the legend.
* - description: The description element containing the following properties:
* - content: The description content of the fieldset.
* - attributes: HTML attributes to apply to the description container.
* - children: The rendered child elements of the fieldset.
* - prefix: The content to add before the fieldset children.
* - suffix: The content to add after the fieldset children.
*
* @see template_preprocess_fieldset()
*/
#}
{%
set fieldset_classes = [
'js-form-item',
'form-item',
'js-form-wrapper',
'form-wrapper',
'card',
'mb-3',
]|merge(fieldset_utility_classes ? fieldset_utility_classes : [])
%}
<fieldset{{ attributes.addClass(fieldset_classes) }}>
{%
set legend_classes = [
'fieldset-legend',
'm-0',
required ? 'js-form-required',
required ? 'form-required',
]
%}
{% if title_display != 'none' %}
<legend{{ legend.attributes.addClass(legend_classes) }}>
{% block legend_title %}
{{ legend.title }}
{%- if required and title_display == 'before' -%}
<span class="font-weight-bolder form-required--indicator ps-1 text-danger">*</span>
{%- endif -%}
{% endblock %}
</legend>
{% endif %}
<div class="fieldset-wrapper">
{% block fieldset_content %}
{% if description_display == 'before' and description.content %}
<small{{ description.attributes.addClass('description', 'form-text', 'text-muted') }}>{{ description.content }}</small>
{% endif %}
{% if errors %}
<div>
{{ errors }}
</div>
{% endif %}
{% if prefix %}
<span class="field-prefix">{{ prefix }}</span>
{% endif %}
{{ children }}
{% if suffix %}
<span class="field-suffix">{{ suffix }}</span>
{% endif %}
{% if description_display in ['after', 'invisible'] and description.content %}
<small{{ description.attributes.addClass('description', 'form-text', 'text-muted') }}>{{ description.content }}</small>
{% endif %}
{% endblock %}
</div>
</fieldset>
