Changelog
All notable changes to Flux Builder will be documented in this file.
[2.4.0] - 2026-07-23
Changed
- Drag & drop reordering in the editor now uses Livewire 4's native
wire:sortdirective instead of SortableJS. This removes the SortableJS CDN dependency, drops the duplicated JS, and improves morph compatibility. Row reordering and module moves (within and across columns) are handled by newsortRowandsortModulemethods on the editor component.
Performance
- The module palette (51 static module cards) is now rendered inside a Livewire Island, so it renders once and is skipped on every subsequent editor round-trip instead of being re-rendered and morphed on each edit.
[2.3.0] - 2026-06-25
Added
- Carousel module (Data Display) — a scrollable/swipeable slideshow built on Flux Pro's
carouselcomponent, with up to 5 image slides (heading, caption, link), slides-per-view, aspect ratio, arrows (inside/overlap/outside), indicators, autoplay (with interval), edge fade and snap controls.
Changed
- Requirement: bumped
livewire/flux-proto^2.15— the Carousel module depends on Flux Pro'scarouselcomponent, introduced in 2.15.
[2.2.0] - 2026-06-24
Added
- Five new modules, bringing the library to 50 modules and closer to full Flux UI parity:
- Spacer (Layout) — configurable vertical spacing.
- Navlist (Navigation) — vertical navigation list with an optional group heading; ideal for sidebars.
- Field (Form) — a labelled control with description, label badge and a validation message; supports input/textarea/checkbox controls.
- Fieldset (Form) — legend + description grouping a set of inputs.
- Container (Layout) — centered, width-constrained rich-text content area.
[2.1.0] - 2026-06-23
Added
- Table module: per-column Width control (Auto + percentage presets), applied to the rendered table.
- Table module: Full width layout option to stretch the table to the available width.
- Settings renderer: new
headingfield type for grouping fields into sections within a single tab.
Changed
- Table settings reduced from 13 tabs to 5 by consolidating the per-column and per-row tabs into single Columns and Rows tabs, separating structure from sample-row content.
Fixed
- Settings panel tabs now scroll horizontally instead of being crushed, keeping every tab reachable on modules with many settings tabs.
[2.0.0] - 2026-06-22
Changed
- BREAKING: The editor Livewire component is now registered as
flux-builder.editorinstead offlux-builder::editor. Livewire 4 parses::in a component name as a class-namespace separator, which prevented the alias-registered component from resolving. Update any embeds accordingly:- Before:
<livewire:flux-builder::editor /> - After:
<livewire:flux-builder.editor />
- Before:
- Requirements updated to PHP 8.3+, Laravel 12/13, and Livewire 4.
Fixed
- Resolved a
ComponentNotFoundExceptionwhen mounting the builder editor under Livewire 4.
Added
- Feature tests that mount and exercise the
BuilderEditorcomponent under Livewire 4 (regression guard for component-name resolution).
[1.0.0] - 2026-06-22
Added
- Initial release
- 46 pre-built modules covering display, forms, navigation, overlays, and layout
- Visual drag-and-drop editor
- Draft and publish workflow
- Flux UI Pro integration
- Dark mode support
- Custom module API
HasBuilderContenttrait for Eloquent models- Configurable row layouts
- Authorization gate support
Modules Included
- Display: Heading, Text, Image, Icon, Avatar, Profile, Badge, Separator, Skeleton
- Data Display: Card, Chart, Table, Kanban, Calendar
- Feedback: Callout, Toast, Tooltip
- Forms: Input, Textarea, Select, Checkbox, Radio, Switch, Slider, Date Picker, Time Picker, File Upload, OTP Input, Autocomplete, Pillbox, Composer, Editor
- Navigation: Navbar, Brand, Breadcrumbs, Pagination, Tabs, Accordion
- Overlays: Modal, Dropdown, Popover, Command, Context Menu
- Layout: Columns, Button
Upgrade Guide
Migrating from 1.x to 2.0
The editor component name changed. Update every place you embed it:
{{-- Before --}}
<livewire:flux-builder::editor :model="$page" />
{{-- After --}}
<livewire:flux-builder.editor :model="$page" />
Then clear caches:
php artisan view:clear
php artisan livewire:discover