{# Vendor-Assets über asset()-Helper -- siehe index.html für Details. #} {# Frontend i18n data bridge -- the registration + page logic live in #} {# tags.js (no inline logic). Only the templated dict is injected here. #}

{{ t('Tags') }}

{{ t('Rename, merge or delete tags. Renaming a tag to an existing name merges the two; deleting strips the tag from every task.') }}

{# Display-only filter over the tag list. #}
{{ t('Tag') }} {{ t('Open') }} {{ t('Total') }} {{ t('Actions') }}

{{ t('No tags yet.') }}

{# Rename / merge modal -- Alpine-driven, same pattern as the edit modal. #} {# Delete confirmation modal -- lists the tasks still carrying the tag. #} {# Toast container -- reuses Tabler toast styling. #}
{# tags.js must define tagsPage() + register the $i18n magic BEFORE Alpine #} {# boots. Alpine is deferred; a non-deferred script placed first runs during #} {# parsing, i.e. ahead of it -- same ordering as index.html / app.js. #}