Skip to main content
WireKit

WireKit v2.44.0

Minor release

WireKit's own strings move to the wirekit:: key prefix, and nothing you have written stops working. That closes a defect where your translation of an ordinary English word could change what a WireKit component said — measured in a real application, Dismiss was already live across 173 alert surfaces with the wrong meaning. The catalog is now offered both ways: components ask for wirekit::Close, which your own Close cannot reach, while Close itself still answers for the lookups your templates make on their own behalf. An application that translated Close also keeps that wording inside WireKit components, through a bridge you can switch off when you want ours back. The rest of the release is a landmark that waits to be named, and a rail whose glyphs finally stand on the column they appear to.

Changed

  • WireKit's components now ask for wirekit::Close rather than Close, so your wording of an ordinary English word can no longer change what they say. The catalog is one flat namespace and your entries are layered on top on purpose — but an ordinary English word carries more than one meaning, so an application using Map as a verb changed what a component meaning "a map" displayed, inside the component, with nothing thrown and no test red. Measured in a real application: four genuine collisions, and Dismiss was already live across 173 alert surfaces. Nothing you have written stops working, in either direction. The catalog still answers a plain __('Close') your own templates make, underneath anything you define yourself — so a translation you were getting without asking keeps arriving. And a catalog carrying Close still governs WireKit's own Close through a compatibility bridge, so wording you chose on purpose still reaches the components; writing wirekit::Close takes precedence over that, and translations.legacy_key_bridge in config/wirekit.php turns the bridge off when you want the package's wording back. See Localization.
  • A scroll region becomes a landmark only when you name it. Ten of one component on a page were ten screen-reader landmarks all called the same built-in name, which is the opposite of what a name is for. Keyboard reachability is unchanged and unconditional — every scroll region still takes focus and still scrolls with the arrow keys, which is what WCAG 2.1.1 asks for. What waits for a name is the landmark. Affected: Scroll Area, Code Block, Table, Sticky Panel, Kanban, Status Matrix, Notification Center, Data Table, Event Calendar and Map. Name the ones a reader should be able to jump to; leave the rest unnamed and they stop competing.

Added

  • scroll-area takes label, and event-calendar takes week-label. Both name a scroll region that previously carried a built-in name you could not change, which is the half of the landmark change you need in order to opt back in. Name a region after what it holds — "Release notes" locates it, where "Scrollable content" only repeats what every scroll region already is. See Scroll Area.
  • config/wirekit.php gains a translations section. One option today, legacy_key_bridge, which decides whether a translation you wrote before the prefix existed still applies inside WireKit components. It defaults to on, so an upgrade changes nothing until you say otherwise.

Fixed

  • An icon rail's glyphs stand on the column they appear to, and its mark stands with them. Beside an inset content panel every glyph sat two and a half pixels left of the column's center while the rail's mark sat on it — reported twice, once as an off-center icon and once as a three-pixel gap between the mark and the icons below it. They were one defect seen from two sides. The mark now derives its own inset from the same value the modules pad with, so the two follow each other in every shell rather than agreeing by arithmetic that only held in some. Measured in Chromium and WebKit. See App Rail.
  • php artisan wirekit:verify can see translation collisions again, and reports a catalog that carries both spellings of one string. After the rename its comparison matched nothing and printed a clean result over a live problem — the exact failure the check exists to catch. It now strips the prefix before comparing, names the namespaced key as the way out, and tells you when a catalog holds Close and wirekit::Close at once, because there the plain entry has quietly stopped governing the component.

Documentation

  • Localization covers the new key shape and how to migrate. What the prefix is for, why a flat namespace could not carry two meanings of one word, what happens to a catalog you already wrote, and the three ways to move at your own pace.
  • The documentation sidebar no longer offers three pages under two entries. One group carried a copied list of another group's children, so the same page was reachable from two rows with nothing saying which was canonical.