Initial Drupal 11 with DDEV setup

This commit is contained in:
gluebox
2025-10-08 11:39:17 -04:00
commit 89ef74b305
25344 changed files with 2599172 additions and 0 deletions

View File

@ -0,0 +1,24 @@
{#
/**
* @file
* Theme override for a feed icon.
*
* Available variables:
* - url: An internal system path or a fully qualified external URL of the feed.
* - title: Title of the feed for describing the feed on the subscribe link.
* - attributes: Remaining HTML attributes for the feed link.
* - title: A descriptive title of the feed link.
* - class: HTML classes to be applied to the feed link.
*/
#}
{{ attach_library('olivero/feed') }}
<a href="{{ url }}"{{ attributes.addClass('feed-icon') }}>
<span class="feed-icon__label">
{{ title }}
</span>
<span class="feed-icon__icon" aria-hidden="true">
{% include "@olivero/../images/rss.svg" %}
</span>
</a>

View File

@ -0,0 +1,75 @@
{#
/**
* @file
* Theme override for status messages.
*
* Displays status, error, and warning messages, grouped by type.
*
* An invisible heading identifies the messages for assistive technology.
* Sighted users see a colored box. See
* https://www.w3.org/TR/WCAG-TECHS/H69.html for info.
*
* Add an ARIA label to the contentinfo area so that assistive technology
* user agents will better describe this landmark.
*
* Available variables:
* - message_list: List of messages to be displayed, grouped by type.
* - status_headings: List of all status types.
* - attributes: HTML attributes for the element, including:
* - class: HTML classes.
*/
#}
{{ attach_library('olivero/messages') }}
<div data-drupal-messages class="messages-list">
<div class="messages__wrapper layout-container">
{% for type, messages in message_list %}
{%
set classes = [
'messages-list__item',
'messages',
'messages--' ~ type,
]
%}
<div{{ attributes
.addClass(classes)
.setAttribute('data-drupal-selector', 'messages')
.setAttribute('role', 'contentinfo')
.setAttribute('aria-label', status_headings[type])
}}>
<div class="messages__container" data-drupal-selector="messages-container"{% if type == 'error' %} role="alert"{% endif %}>
{% if status_headings[type] %}
<div class="messages__header">
<h2 class="visually-hidden">{{ status_headings[type] }}</h2>
<div class="messages__icon">
{% if type == 'error' %}
{% include "@olivero/../images/error.svg" %}
{% elseif type == 'warning' %}
{% include "@olivero/../images/warning.svg" %}
{% elseif type == 'status' %}
{% include "@olivero/../images/status.svg" %}
{% elseif type == 'info' %}
{% include "@olivero/../images/info.svg" %}
{% endif %}
</div>
</div>
{% endif %}
<div class="messages__content">
{% if messages|length > 1 %}
<ul class="messages__list">
{% for message in messages %}
<li class="messages__item">{{ message }}</li>
{% endfor %}
</ul>
{% else %}
{{ messages|first }}
{% endif %}
</div>
</div>
</div>
{# Remove type specific classes. #}
{% set attributes = attributes.removeClass(classes) %}
{% endfor %}
</div>
</div>