Skip to content

Release v1.15.0

Choose a tag to compare

@github-actions github-actions released this 13 Oct 14:51
· 171 commits to main since this release

Release v1.15.0: icon filter actions, pre-paint theme boot, sidebar rail, temporary-reveal / collapse-panel / datatable peers.

Changelog

Added

  • Icon filter actions (partials/_filter_actions.html.twig): submit_icon / clear_icon (rendered through components/_icon.html.twig and icon_set) and icon_only (visually-hidden label + title / aria-label, square .nowo-ui-filter-bar__action--icon-only). Defaults unchanged.
  • Pre-paint theme boot: partials/_theme_boot.html.twig (inline script with the CSP nonce, or inline: false → js/nowo-ui-theme-boot.js). Reads data-nowo-ui-pref-{theme,density,motion,font-scale,contrast,sidebar} (alias data-user-*) on <html>, falls back to the theme cookie / localStorage / OS and sets data-theme, data-ui-density, data-motion, data-font-scale, data-contrast before first paint; window.nowoUiPrefs, window.nowoUiThemeBoot().
  • Theme storage keys shared by the boot and the toggle: data-nowo-ui-theme-storage is also read from <html>, new optional data-nowo-ui-theme-cookie (assets/src/nowo-ui-theme-core.ts).
  • Sidebar rail (opt-in data-nowo-ui-sidebar-rail on the shell, _shell.html.twig sidebar_rail / sidebar_mode): expanded / icons-only rail / hidden, burger ping-pong through the rail, phones keep the drawer, localStorage + optional cookie sync with configurable keys (data-nowo-ui-sidebar-storage, -cookie, -hidden-value, -default, -rail-labels), rail tooltips and initials, nowo-ui:sidebar-mode event, window.nowoUiSetSidebarMode(). CSS: .nowo-ui-shell.is-aside-rail (desktop only), --nowo-ui-aside-rail-width. Side-effect-free helpers for host shells: assets/src/nowo-ui-sidebar-core.ts. _burger.html.twig rail: true prints the next-action labels (nav.sidebar_expand, nav.sidebar_rail, nav.sidebar_hide; 7 locales).
  • Stimulus peers temporary-reveal (masked secret, timed reveal, clear-on-hide purge), collapse-panel (persistent panels; storage key and server default as values) and datatable (responsive DataTables with server-side paging / sorting; datatables.net-dt and datatables.net-responsive-dt are optional peer dependencies). Ported from Symfony Beacon with neutral copy.
  • Vitest suites for the new modules and peers (coverage-gated); PHPUnit for the new partial options.

Changed

  • Dev: Rector RemoveConcatAutocastRector applied to Configuration::findInvalidRewrite() (drops a redundant (string) cast; behaviour-neutral).

Fixed

  • _burger.html.twig: expanded: false (e.g. _shell.html.twig with collapsed: true) rendered aria-expanded="true" because of |default(true).