Repository navigation
Release v2.3.0
v2.3.0
Changelog
Filters translate each text once, opt-in strict missing-message contract test, auth scaffold form themes/attributes/root errors/body blocks, form error slots, menu partial, public page-header include, content padding and link/code token fixes. See UPGRADING.
UiKit 2.3: the backlog of the phase-2 migrations (Pwa, ChatKit, SearchKit, AuthKit).
UPGRADING.
Added
|nowo_ui_translatable(params = {})andTwig\TranslatableText: aLabel(or literal) handed to a form theme that
pipes it through|trans(attr.placeholder, choiceplaceholder) is translated exactly once in its own domain.PageContractTestCase::ignoredMissingTranslations()(accepted missing messages:domain:id,id,/regex/) and
strictMissingTranslations()(opt-in strict rule: every missing message fails, catching double translations;
default false = the 2.2 dotted-id rule; strict becomes the default in 3.0).AuthPage::$formThemes,$formAttributes,$documentTitle;FormPage::$formAttributes(extra<form>
attributes,classappended to theformslot).- Auth scaffold: root form errors in the new
form_errorsslot (skippable:AuthPage::$rootErrors = falseor
nowo_ui_auth_root_errors = falsein the extending template); data blocksnowo_ui_auth_bodyand
nowo_ui_auth_after_form. - Slots
form_error,form_errors,input_invalid; the UiKit form theme marks invalid widgets and renders field
errors inform_error; PasswordToggle bridge (inputslot ontoggle_password_widget's input). - Token
--nowo-ui-auth-panel-width. nowo_ui_page_header(header, bundle, extra_actions, header_actions)and the public include
page/_page_header.html.twig(ThemeExtension::PAGE_HEADER_TEMPLATE): the scaffolds' page header for unique pages.- Token
--nowo-ui-content-padding-block;--nowo-ui-linkdeclared next to the primary. - Floating widgets:
menupartial (native<details>disclosure, CSP-safe; itemsLink/Action/ hashes, or
freecontentin apopoverpanel), slotsmenu,menu_toggle,menu_panel,menu_item,popover, tokens
--nowo-ui-menu-z-index,--nowo-ui-menu-min-width,--nowo-ui-menu-max-width; light dismiss (outside click,
Escape) innowo-ui-dialog.js. nowo_ui_class(slot, bundle, defaults: false)/Theme::classFor(…, defaults: false): host-only mode (semantic +
host / bundle classes, never the UiKit framework defaults).
Changed
- Demo (REQ-DEMO-013): export menu on the dashboard (host
menu_toggleclass), sign-in with root form errors
(?failed=1), document title and form attributes; e2e for 2.3; screenshotspage-contract-menu,
page-contract-auth-errors, re-capturedpage-contract-dashboardandpage-contract-default-list(no band above
the navbar). PageContractTestCasecollects all missing messages through theDataCollectorTranslatorand fails on any.
Fixed
- 1.x
page_headerpartial: the title uses the fullpage_titleresolution (Bootstraph3 mb-1), not only the host
classes, so Bootstrap hosts do not get a full-size<h1>. - No padding band above host navbars: the vertical padding moved from
<body class="nowo-ui-body">to the content
region. - Inline
codepink under Bootstrap (--bs-code-colorfollows the code text token; Bootstrap 4text-body). page/authcalledform_start()(symfony/form) even without a form: the form functions moved to
page/_auth_form.html.twig, included only withpage.form.- Auth panel: centred
min(28rem, 100%)in host guest layouts, full-width fields, footer link list reset hardened
against an unlayered Bootstrap reboot. - List filters:
FilterField::$placeholderlabels and the "Any" option (filters.any) were translated twice (by
nowo_ui_trans/|trans, then by the form theme in the field's domain).