Команда Filament випустила v5.10.0 у репозиторії filamentphp/filament. Реліз містить п'ять нових можливостей і велику кількість виправлень: від авторизації та ізоляції стану до доступності, часових поясів і локалізацій. Повний перелік змін доступний у порівнянні v5.9.0...v5.10.0.
Нові можливості
- Керування сіткою в rich editor - додано grid controls для rich editor (#20585).
- Допоміжний контент для віджетів-графіків - chart widgets отримали assistive content (#20628).
- Пов'язані записи в замиканнях елементів - related records тепер передаються в item closures (#20633).
- Скелетони завантаження таблиць - додано table loading skeletons (#20632).
submitOnCompletion() для OneTimeCodeInput - новий метод, доданий учасником спільноти @wannevancamp (#20636).
Авторизація та безпека станів
У релізі з'явилося кілька виправлень, пов'язаних з авторизацією та коректним розмежуванням стану:
- початкові запити віджетів і relation manager тепер проходять авторизацію (#20587);
- предки вкладених ресурсів авторизуються послідовно (#20591);
- стан автентифікації тепер обмежується guard-ом і моделлю користувача (#20581);
- збережений стан ізольовано між таблицями (#20603);
- дії над записами в relation manager ізольовано (#20609);
- при відновленні Livewire-компонентів враховуються scopes моделей (#20616);
- до власних inline-тегів
script Filament додано CSP nonces (#20634).
Форми, поля та схеми
- Для завантажених файлів тепер використовуються імена на основі хешу (#20582); динамічні шляхи імен файлів у
FileUpload обчислюються коректно (#20595), а умови callback і ключі файлів зберігаються (#20588).
- Збережено цілісність елементів
Repeater і Builder (#20589).
- Відновлено стан вкладок і wizard та додано валідацію індексів кроків (#20593).
- Нормалізовано приведення типів стану схем (#20586) та порівняння стану в
fixIndistinctState() (#20648).
- Виправлено
hasMultipleStateRelationship(), який читав запис замість шляху стану (#20576).
- Правила
scopedUnique() і scopedExists() тепер працюють без моделі схеми (#20629).
- Значення за замовчуванням числових атрибутів
TextInput обчислюються коректно (#20606).
- Для date picker нормалізовано межі дат і збережено семантику часових поясів (#20620); також виправлено конвертацію часового поясу для immutable-значень дат (#20600).
- Підтримано конвертацію трицифрових hex-кольорів (#20599).
- Порожні теги видаляються під час гідрації (#20604).
- Виправлено видалення бейджів у
Select з множинним вибором, коли значення опції містить лапку (#20659).
- Виправлено порядок цифр у
OneTimeCodeInput для RTL-макетів (#20638).
Rich editor
- Імпортовані превʼю custom blocks тепер перегенеровуються (#20583).
- Мітки enum визначаються до форматування rich text (#20601).
Таблиці, імпорт та експорт
- Пошукові wildcard-символи тепер сприймаються як звичайний текст (#20627).
- Виправлено
toggleAllTableColumns() для колонок усередині групи (#20647).
- Керування фокусом у випадному списку фільтрів таблиці (#20619).
- Для груп масових дій використовуються атрибути dropdown (#20602).
- Невдалі записи файлів експорту тепер відхиляються (#20594).
- Під час імпорту приймаються повторювані ключі пошуку звʼязків (#20598).
- Дії зі звʼязками, заблоковані вето, тепер повідомляються як помилки (#20592).
Доступність та інтерфейс
- Покращено доступність іконок схем (#20625).
- Підказки, помилки та обовʼязковість полів тепер коректно повʼязуються з полями (#20610).
- У sticky-модалках працює прокручування з клавіатури (#20626).
- Збережено фокус під час завантаження Livewire (#20645) та виправлено розсинхрон
aria-expanded у dropdown після запиту Livewire (#20635).
- Покращено взаємодію зі сповіщеннями та dropdown (#20656).
- Збережено фокус при показі пароля та компактні affix-дії (#20613).
- Додано відступ після кнопки мобільного сайдбару (#20641).
- Тепер відображаються всі ширини кільця навколо зображень (#20615).
Інші виправлення
- Глобальний пошук скидається після SPA-навігації (#20574), а ввід провайдера глобального пошуку нормалізується (#20597).
- Кеш ассетів скидається для dev-версій і невідомих назв пакетів (#20578).
- Ассети публікуються без executable-біта (#20631).
- Генеруються правильні назви view для Livewire-компонентів (#20614).
- Збережено версію пакета шрифтів (#20621).
- Виправлено обробку відсутніх заголовків infolist і збереження повʼязаних моделей (#20596).
- Збережено конфігурацію рендерингу іконок (#20605).
- Стилі атрибутів компонентів обʼєднуються з коректними роздільниками (#20607).
- Хуки за замовчуванням застосовуються до схем без аргументів (#20608).
Документація та залежності
Документація поповнилася поясненням поведінки часткового оновлення форм (#20624) та описом рівнів заголовків схем (#20622). Dependabot оновив zizmorcore/zizmor-action до 0.6.4 (#20538), WyriHaximus/github-action-get-previous-tag до 2.1.0 (#20539) та brace-expansion до 1.1.21 (#20643).
Переклади
Спільнота доповнила й виправила локалізації: іспанську (#20573), словацьку, чеську, польську та німецьку (#20575), македонську (#20580), pt_BR (#20611), французьку (#20617, #20642), арабську (#20639), японську (#20637) та zh_CN (#20657). Також виправлено переклади в списку інструмента перекладу (#20612).
Нові контриб'ютори
У цьому релізі вперше долучилися: @I90rche, @rolland97, @dvcom69, @GabeSilvaDev, @Ultra2000, @akine, @VincentBorgers, @GrandadEvans та @Vasiliy-Bondarenko.