clone of olivero for island lives
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

107 lines
3.6 KiB

12 months ago
{#
/**
* @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 <fieldset> 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> element.
* - description: The description element containing the following properties:
* - content: The description content of the <fieldset>.
* - attributes: HTML attributes to apply to the description container.
* - description_display: Description display setting. It can have these values:
* - before: The description is output before the element.
* - after: The description is output after the element (default).
* - invisible: The description is output after the element, hidden visually
* but available to screen readers.
* - 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.
* - title_display: Title display setting.
* - inline_items: Boolean indicating whether the <fieldset> items are inline.
*
* @see template_preprocess_fieldset()
* @see olives_preprocess_fieldset()
*/
#}
{%
set classes = [
'fieldset',
attributes.hasClass('fieldgroup') ? 'fieldset--group',
'js-form-item',
'form-item',
'js-form-wrapper',
'form-wrapper',
]
%}
{%
set wrapper_classes = [
'fieldset__wrapper',
attributes.hasClass('fieldgroup') ? 'fieldset__wrapper--group',
]
%}
{%
set legend_span_classes = [
'fieldset__label',
attributes.hasClass('fieldgroup') ? 'fieldset__label--group',
required ? 'js-form-required',
required ? 'form-required',
]
%}
{%
set legend_classes = [
'fieldset__legend',
attributes.hasClass('fieldgroup') and not attributes.hasClass('form-composite') ? 'fieldset__legend--group',
attributes.hasClass('form-composite') ? 'fieldset__legend--composite',
title_display == 'invisible' ? 'fieldset__legend--invisible' : 'fieldset__legend--visible',
]
%}
{%
set description_classes = [
'fieldset__description',
]
%}
<fieldset{{ attributes.addClass(classes) }}>
{# Always wrap fieldset legends in a <span> for CSS positioning. #}
{% if legend.title %}
<legend{{ legend.attributes.addClass(legend_classes) }}>
<span{{ legend_span.attributes.addClass(legend_span_classes) }}>{{ legend.title }}</span>
</legend>
{% endif %}
<div{{ content_attributes.addClass(wrapper_classes) }}>
{% if inline_items %}
<div class="container-inline">
{% endif %}
{% if description_display == 'before' and description.content %}
<div{{ description.attributes.addClass(description_classes) }}>{{ description.content }}</div>
{% endif %}
{% if prefix %}
<span class="fieldset__prefix">{{ prefix }}</span>
{% endif %}
{{ children }}
{% if suffix %}
<span class="fieldset__suffix">{{ suffix }}</span>
{% endif %}
{% if errors %}
<div class="fieldset__error-message">
{{ errors }}
</div>
{% endif %}
{% if description_display in ['after', 'invisible'] and description.content %}
<div{{ description.attributes.addClass(description_classes) }}>{{ description.content }}</div>
{% endif %}
{% if inline_items %}
</div>
{% endif %}
</div>
</fieldset>