v4.3.0
BladewindUI 4.3.0 adds descriptions and type-to-jump to <x-bladewind::select>, an animated underline for simple tabs, Laravel 13 support, and a batch of UI fixes. It also repairs the service provider declarations in the individual component packages — if you install single components rather than the full library, this release is a required upgrade.
composer require mkocansey/bladewind:^4.3No breaking changes. Upgrading from 4.2.x is a drop-in.
✨ New
Select items can carry a description
Items now take an optional second line under the label. Descriptions are part of an item's searchable text, so filtering matches on them too.
{{-- manual items --}}
<x-bladewind::select name="plan">
<x-bladewind::select.item value="pro" label="Pro"
description="Unlimited projects, priority support" />
<x-bladewind::select.item value="free" label="Free"
description="One project, community support" />
</x-bladewind::select>For data-driven selects, point description_key at the relevant key:
{{-- data: [ ["id" => 1, "name" => "Burkina Faso", "capital" => "Ouagadougou"], ... ] --}}
<x-bladewind::select name="country"
:data="$countries"
value_key="id"
label_key="name"
description_key="capital" />Closes #255.
Type to jump to a select item
Typing a printable character while a select has focus jumps to the first item whose label starts with what you typed — without opening the dropdown. The buffer clears after a short pause, keystrokes inside the search box are ignored, and an item already chosen in a multiple select is not toggled off.
Arrow-key navigation now stops at either end of the list instead of running past it and writing an empty value.
Closes #474.
Simple tabs get a sliding underline
The per-heading bottom border on simple tabs is replaced by a single line that animates to the active heading. It positions itself on load, on resize, and — via ResizeObserver — when a tab group inside a modal, accordion, or another tab becomes visible for the first time. No markup changes needed.
Code inputs fill on paste
Pasting a multi-character code into an <x-bladewind::code> field distributes the characters across the boxes instead of dropping everything into the first one.
Laravel 13
illuminate/support now allows ^13.0, alongside ^10.0, ^11.0 and ^12.0.
🐛 Fixes
Dropmenu
- Menus use fixed positioning with auto-flip, so they escape
overflow: hiddenancestors instead of being clipped, and reposition on scroll and resize while open. hide_after_clickworks again. Item clicks are bound once (no duplicate handlers on reopen) and the hide is deferred a tick so an inlineonclickor a link navigation still runs. The attribute now acceptstrue,1,"1"and"true".- Outside-click detection moved to
mousedownand no longer mis-fires on the menu itself.
Toggle
- Active colours render again. The
peer-checked:bg-*classes were built by string interpolation, which Tailwind's JIT scanner cannot see; they are now a static map covering all supported colours. - The thumb stays inside the track at every
barsize, with RTL handled.
Other components
- Checkcards: checkmark alignment.
- Rating: star alignment.
- Icon: hidden icons stay hidden.
- Input: lighter borders.
- Number, progress bar: centred labels.
📦 Packaging
Service provider class names fixed in 35 split packages. The extra.laravel.providers entry in each component's own composer.json named a class that does not exist. The monorepo never exercises those entries — the root composer.json has its own list — so this was invisible to anyone installing the full library, and a boot-time fatal for anyone installing a component on its own (composer require mkocansey/bladewind-table and friends). A bin/validate-providers.php check now runs in CI and verifies all 92 declarations resolve.
Stale per-package public/ directories removed. Several packages shipped a second copy of a JS file that nothing ever published — the copy of select.js in packages/select/public had been missing a filter() fix for two releases. All published assets live in packages/core/public and are published by BladewindCoreServiceProvider under the bladewind-public tag. Every component requires bladewind-core, so installing a single component still gets the assets.
If you publish assets, re-publish after upgrading:
php artisan vendor:publish --tag=bladewind-public --forceFull changelog: mkocansey/bladewind@v4.2.1...4.3.0