v5.0.0 #611
mkocansey
announced in
Announcements
v5.0.0
#611
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
v5.0.0
This consolidates everything since the last published release,
4.3.0. Two versionsshipped to Packagist in between —
4.4.0and4.5.0— but neither got a GitHubRelease of its own, so their changes (including the package rename) are folded in
here too.
Breaking changes
The Composer package name changed, twice:
mkocansey/bladewind→bladewindui/bladewindui(4.4.0) →bladewindui/ui(4.5.0).Nothing else moved — the PHP namespace, the
x-bladewind::Blade namespace, thebladewindconfig key, and thepublic/vendor/bladewindasset path are alluntouched, so existing markup and config need no changes. Both old names keep
working via metapackage shims; update your
composer.jsonwhenever you like:The one thing that does break silently: a hardcoded vendor path, most commonly
a Tailwind v4
@sourcedirective.Miss this and the build still succeeds — it just stops generating the utility
classes scanned from BladeWind's own templates, and styles quietly disappear. Check
any deploy script, asset pipeline, or IDE helper config that references the old
path too. Full details in
docs/migration/README.md.Buttons now emit a real
typeattribute. Previously the type was writtenthrough
{{ }}, which escapes quotes, so the rendered markup wastype="button"— not a valid HTML type keyword, so every button fellback to the browser default of
type="submit". A BladeWind<button>inside a<form>submitted that form on click regardless ofcan_submit. This is nowfixed: buttons only submit a form when
can_submit="true"is set. If you wererelying on the old (accidental) submit behavior, add
can_submit="true"explicitly.New components
dates or events, distinct from the form-bound Datepicker. Supports
none,single, andmultipleselection modes, a real hour grid for week/day view withtimed and all-day events, an inbuilt event details drawer, and a
highlight-todaytoggle.
filtering, selection, sticky headers, and both client-side and server-driven
pagination.
actions, shortcuts, empty states, and asynchronous results.
shipped in
4.5.0.New features
old()and validation errors themselves.input,textarea,select,checkbox,radio,datepicker, andfilepickernowtake
fill_from_oldandshow_validation_errorprops (both defaultfalse,configurable globally) instead of every field wiring value/error state by hand.
input-groupcomponent for attaching a button or select to an input,handling the corner radius and border collapse that used to be done by hand.
icongains asizeprop,cardgains apaddingscale(
none…large, or any Tailwind utility), and the shared radius helper gainsmore named values — replacing a long tail of
!utility overrides consumerswere reaching for.
tablegains a:columnsmodel and an empty-state slot;paginationnow consumes a Laravel paginator directly;
statisticgains tones, trenddirection, hints, and progress.
@bladewindScriptsBlade directive replaces hand-picking<script src>tags per layout. All JS helpers are now also exported on
window, so theshims consumers used to write for inline handlers are no longer needed.
bladewind-ui-no-preflight.min.css) for appsthat already ship their own Tailwind reset, alongside the full bundle.
component rule reads now carries a literal fallback, so an app that resets
Tailwind's theme tokens doesn't silently break BladeWind's own styling.
!importantremoved from every component rule (78 declarations acrossbutton, input, table, and tabs). Consumers can now override component styles
with ordinary CSS; verified backward compatible rule-by-rule against the
previous bundle.
ancestor (the classic case: a wide table's
overflow-x-autowrapper). Allthree now position against the trigger's screen rect and reposition on scroll,
matching the fix Dropmenu already had.
tabs, toggle, rating, accordion, slider, and checkcards, plus keyboard
navigation for tabs and the rating slider.
Fixes
first render in any long-lived PHP process (Octane, PHP-FPM worker reuse, or
a single test run rendering more than one instance) —
include_oncededupesby file path for the life of the process, not per request. Switched to the
same
@once-scoped<script src>pattern Datepicker already used correctly.has_shadow="false"and similar previously rendered onto the root element as-is; worst case was
button.circleleakingshow_focus_ring,title,onclick, and an emptyhref(which resolves to the current page).domEls()returning
falseinstead of an empty list when nothing matched a selector —which could throw partway through page load and silently skip everything
after it, including the new
windowexports above.Internal
Command Palette and Data Grid were rebuilt as anonymous Blade components (no
behavior change) to match the rest of the library's convention rather than
Sidebar's now-deprecated pattern. A new browser-driven test tier (Playwright)
covers geometry that render-only tests can't — popup clipping, focus traps,
viewport edges — and compiled-CSS assertions now guard against the bundle
drifting from its sources.
Every package still shares one version number across all split repos
(
composer require bladewindui/calendar,bladewindui/data-grid,bladewindui/command-palette, etc., orbladewindui/uifor the full install).This discussion was created from the release v5.0.0.
All reactions