WireKit v2.40.0
Minor. Two silent-failure repairs — a rail that renders the wrong state on a server that keeps its workers alive, and a table that accepted a valid intent and drew it gray — plus a documentation page that described a mechanism replaced months ago.
Classified MINOR rather than PATCH for one reason: the table now accepts three intent values it previously rejected, and widening what an input accepts is additive.
Added
<x-wirekit::data-table>'s badge columns accept every intent<x-wirekit::badge>does. A column can map a cell value to an intent —'intents' => ['processing' => 'accent']— and the set was four values wide while the badge component validates against seven. Namingprimary,accentorinfoproduced a gray pill with no warning, which reads as "no status" rather than as a value the table did not know. All seven now render, andprimaryandinfouse the same accent-derived strengths the badge itself uses, so the word means the same thing in a cell as on a badge. See Data Table.
Fixed
<x-wirekit::app-rail>reads its persisted width from the request, not from the process. Withpersist-driver="cookie", the server half read$_COOKIE, which PHP fills once per PROCESS rather than once per request. Underfpm-fcgithose are the same thing; on any server that keeps a worker alive across requests — Octane, FrankenPHP, RoadRunner — it is filled at boot and never again. The rail then rendered collapsed and the browser widened it a frame later, moving the content column by 187px. Nothing threw; it rendered the other state. The request is asked first now, and the process globals remain as a fallback so an application that has not excepted the cookie fromEncryptCookieskeeps working exactly as before. See App Rail.
Changed
- The self-contained bundles carry Alpine 3.16.3, up from 3.15 and inside the range already
declared.
wirekit-alpine.jsgrows from 282 to 290 KB raw,wirekit-alpine.csp.jsfrom 297 to 305 KB. Nothing changes for a developer who supplies their own Alpine. See Integration.
Documentation
- Checkbox describes how the third state
actually survives a re-render. The page credited an Alpine
x-initsnippet, which is the mechanism that was replaced —x-initruns once, while the indeterminate state usually arrives after the first render and is lost when a round trip morphs the element. The page now names the attribute the component watches, explains why an effect over a server-rendered value would not help, and says what to look for when verifying it from outside the package. - App Rail carries the
EncryptCookiesnote the theme controller has always had. The cookie is written by JavaScript and therefore arrives unencrypted, so Laravel's default middleware drops it on the server read unless the key is excepted.