- Migrate to Filament v4 core APIs (Column instead TextColumn).
- Add
RenderModeEnum(Tree/Table) иContainerModeEnum(Inline/Modal/Drawer). - Extract sugar into traits:
Concerns\HasRenderMode(asTree/asTable/renderAs/isTree/isTable).Concerns\HasContainerPresentation(inModal/inDrawer/inlineContainer/presentIn + BC-methods).
- Inline container now ALWAYS renders pretty-printed raw JSON (no expand/collapse there).
- Click-to-copy on the raw block (with FilamentNotification feedback).
- Modal/Drawer: Tree/Table render preserved; Expand/Collapse toolbar shown only in Tree.
- Add table-like headers for Tree mode; aligned with caret; consistent in light/dark themes.
- Major Blade rewrite (json.blade.php + _partials/tree/_partials/nested):
- Alpine glue for expand/collapse and copy.
- Safer
@jspayloads; no invalid Alpine expressions.
- New CSS (resources/css/filament-json.css):
- fj-scope variables, soft borders, fj-tree-head, fj-raw, fj-raw-interactive, grid lines.
- Works with Fi v4 tokens; dark/light polished.
- Public API cleanups:
- New:
renderAs(),presentIn(),getContainerMode(). - Deprecated:
asModal(),asDrawer(),inline(),getAsModal(),getAsDrawer(),getContainer()
(kept for BC; call new methods internally).
- New:
getState(): normalized arrays/collections with optional null filtering; string limit via characterLimit().
BREAKING CHANGE:
- Column now extends
Filament\Tables\Columns\Column(not TextColumn). - Inline mode always shows raw JSON in-cell; expand/collapse controls are not rendered inline.