We've added a new Create option component to Flux allowing users to create bespoke options that don't appear in the original list.
Pair that with the new combobox variant on the pillbox component for an even more intuitive experience.
Let’s take a look at both of these new features.
New combobox variant
This variant allows typing and selection in a single, continuous flow, making it ideal for tags, labels, and search-driven interactions.
<flux:pillbox variant="combobox" multiple> <flux:pillbox.option value="javascript">JavaScript</flux:pillbox.option> <flux:pillbox.option value="typescript">TypeScript</flux:pillbox.option> <flux:pillbox.option value="php">PHP</flux:pillbox.option></flux:pillbox>
New create option
Add the flux:pillbox.option.create component at the beginning or end of your options list, and Flux will automatically show it when the current search doesn’t match any existing option.
<flux:pillbox wire:model="selectedTags" variant="combobox" multiple> <x-slot name="input"> <flux:pillbox.input wire:model="search" /> </x-slot> <!-- ... --> <flux:pillbox.option.create wire:click="createTag" min-length="2"> Create tag "<span wire:text="search"></span>" </flux:pillbox.option.create></flux:pillbox>
Your create option logic can now live in your Livewire component and be easily wired up using wire:click.
public function createTag(){ $tag = Tag::create(['name' => $this->search]); $this->selectedTags[] = $tag->id;}
Smart validation
Flux handles common validation cases by default—like preventing duplicate options. It also supports accent-aware matching, so searches for Jose correctly match José.
Use min-length to control when the “create option” prompt appears. For full control, use Laravel validation rules; validation errors are reflected automatically.
Backend search
Using backend filtering? No problem. With :filter="false", Flux waits for the server response, then checks whether the option is unique. The create option is also disabled while a request is in flight, preventing duplicate submissions.
Modals
Use the modal prop when creation requires more than a single action. This is useful for more complex workflows—such as collecting additional fields or running validation inside a dedicated form.
<flux:pillbox.option.create modal="create-tag"> <!-- ... --></flux:pillbox.option.create><flux:modal name="create-tag"> <!-- ... --></flux:modal>
Select support
The create option works with Select as well. You can use it in both searchable select and combobox variants, with the same behavior and API.
<flux:select wire:model="projectId" variant="combobox"> <x-slot name="input"> <flux:select.input wire:model="search" /> </x-slot> <!-- ... --> <flux:select.option.create wire:click="createProject" min-length="2"> Create project "<span wire:text="search"></span>" </flux:select.option.create></flux:select>
Accessibility
And of course, we went to great lengths to make sure the create option and combobox flow honor expected keyboard navigation, focus behavior, and proper ARIA labels so that screen readers can use it just as well.
Check out the
Pillbox documentation and
Select documentation for more examples and the full API reference.