Repository navigation
Release v2.2.0
v2.2.0
Changelog
Default-theme polish (confirm dialog, tables, filters grid, badges, tabs levels, one primary colour) and the page-contract backlog from the phase-1/2 migrations (scripts partial, table partial, status layout, remote dialogs, progress, form theme, breadcrumbs modes, section actions). See UPGRADING.
UiKit 2.2: default-theme polish and the backlog found after phase 1 of the page-contract migration (REQ-UI-003).
Added
- Confirm dialogs: close ✕ in the header of 2.0 confirms (slot
confirm_close,dismissible,close_label),
Confirm::$size(sm|md|lg) and thesizepartial input,Confirm::delete($message, $title)to name the
item in the title; slotbtn_danger_solid(solid destructive button). - Dialogs:
dialogpartialtitle_html(rich title),title_attr/body_attr;Action::$dialogId(opener
button witharia-haspopup="dialog"; with anhref, remote content fetched into the dialog body through
data-nowo-ui-dialog-src, same origin,nowo-ui:dialog-loadedevent, href fallback);data-nowo-ui-dialog-replace
(swap dialogs, focus-return target handed over). - Tables:
View\Table+tablepartial (the list scaffold's table, reusable; blocksnowo_ui_table_head/
nowo_ui_table_rowthrough embed),ListPage::$table,ListPage::$actionsPosition(start|end),
ListPage::$captionVisible, slottable_caption. - Tabs: slot
tabs_secondaryandtabspartiallevel: 'secondary'(section tabs under an area nav). - Settings:
SettingsSection::$actions(inline after the section submit button). - Breadcrumbs:
PageHeader::$breadcrumbsMode(auto|kit|own). - Filters: "Any" placeholder (
filters.any, 7 locales) for optional single selects without one; text widgets get
theinputslot classes. - Badges: slot
badge_primary;DetailItem::$badge(show values such as a status printed as a badge). - Forms / wizards / progress:
FormPagebody-only mode (form: null/formTag: false),WizardPage::$guest,
progresspartial + slotsprogress/progress_meter(progress.label, 7 locales). - Forms: UiKit form theme
@NowoUiKit/form/nowo_ui_layout.html.twig(form_div_layout +inputslot on widgets,
checkboxes / radios inside a<label>with the newcheck/check_inputslots) for bundles on
css_framework none / custom / tailwind, so bundles stop shipping their own checkbox theme. - Tables: accessible name — the caption, else
aria-labelfromTable::$label(the list scaffold passes the page
title). - Actions:
Action::$title(translatable tooltip, kept on disabled actions throughnowo-ui-action__tip). - Scripts:
scriptspartial +nowo_ui_script_names()/ThemeSlots::SCRIPTS(hosts with their own script
list include the partial);AuthPage::$scripts/nowo_ui_scripts_enabledfor JS-free pages (no runtime script,
no theme boot). - Layouts:
layout/status.html.twig, a self-contained status document (inline critical CSS with the CSP nonce). - Flashes:
flash_messagesinput of theflashespartial. - CSS:
css/nowo-ui-tom-select.css(Tom Select chips / focus from the primary token, optional); tokens listed in
docs/THEMING.md "Default-theme polish tokens (2.2)". - Contract test: the stub
page_headeroverride rendersheader.tabs;inlineTemplates()can replace stub
templates. - Docs: PAGE_CONTRACT "UiKit 2.2 additions" (scripts, JS-free pages, status layout, remote / swapped dialogs, Tom Select
inside a modal<dialog>), MIGRATING_BUNDLES (name the form of a POST action), THEME_SLOTS "Badges".
Changed
- Default theme: confirm dialog with a fixed width (centred with long messages), body text in the text colour,
solid destructive confirm button (dialog and full-page confirm); table header row hierarchy (small uppercase
semibold muted labels, stronger bottom border), numeric / end-aligned header cells followColumn::align, zebra rows
painted on the cells (also under Bootstrap), styled caption, spacing around the pagination; list filters on a
responsive grid with the actions bottom-aligned after the last field; pagination ellipsis like the pills; optional KPI
top accent drawn as an inset shadow that follows the radius (--nowo-ui-kpi-accent*); form help text muted with top spacing and regular spacing
between stacked fields (also in dialogs); plain links,info/primarybadges and the second tab level derive
from the primary token; wizard step links without underline. - Slot defaults (template contract): badges are one subtle set without margin utilities (Bootstrap
bg-*-subtle text-*-emphasis border border-*-subtle;badge_infofollows the primary colour);tableadds
table-stripedon Bootstrap;filtersis a grid (d-grid gap-3 mb-3/grid gap-3 mb-4; Foundation: semantic
only). - The row-actions column header is visible by default (
ListPage::$actionsLabelVisibledefaults to true). - The
section_formpartial printsextra_actions(documented but not rendered before). _breadcrumbs: BreadcrumbKit's output is wrapped without thebreadcrumbsslot host classes / attributes (the
kit's own<nav>carries them); an empty kit trail falls back toPageHeader::$breadcrumbs.- The UiKit document layout prints its scripts through the
scriptspartial (same tags).
Fixed
_action_form_viewalways printsvalueon hidden fields (empty values included).flashespartial: a 1.xflashespage variable no longer replaces the session flashes inside page scaffolds.- The auth scaffold prints its
<footer>only when it has content. - With
icon_set: none,icon_textactions (toolbar, row, filter submit) printed their label twice; icon-only actions
printed the label as the "icon": every action is text-only without an icon set. .nowo-ui-cell--end/--centerlost to.nowo-ui-table th, td { text-align: left }(header and numeric cells).- Row actions stacked in narrow cells: the actions column is
width: 1%; white-space: nowrapand its row actions
no longer wrap. - With css_framework none, inline
codehad the surface colour: own tint (--nowo-ui-code-bgdefault
color-mix(text 7%, surface)) plus a 1px inset border (--nowo-ui-code-border).