devletes/filament-timeline-view
Render Filament Tables as chronological timelines. Adds Table macros ->asTimeline() and ->asDoubleSidedTimeline(), plus a TimelineEntry column to turn any table query into date-grouped cards with avatars, timestamps, actions dropdown, collapsible days, and load-more.
filament/tables), leveraging Filament’s existing APIs (macros, columns, actions, grouping) without requiring a full Filament panel. This aligns well with projects already using Filament for admin interfaces.TimelineEntry column is a layout component, meaning it can be mixed with other Filament columns (e.g., TextColumn, ImageColumn) or replaced entirely with custom layouts. This modularity reduces coupling and allows for future customization.TimelineEntry with Stack::make()) for non-standard use cases.composer require, php artisan filament:assets), and the package auto-registers macros and assets. No plugin registration or service provider configuration is needed.^5.0 and PHP ^8.2, which is a hard dependency. Projects using older versions (e.g., Filament 4) would need a migration path.published_at or similar) and relies on Filament’s query builder for sorting/pagination. Projects with non-standard data models may need adapters..fi-ta-timeline). This could lead to maintenance overhead if multiple panels use the timeline.published_at, author, title) align with the package’s assumptions? If not, how will closures or custom layouts accommodate gaps?^5.0? If not, what’s the upgrade path?published_at descending.^5.0 and PHP ^8.2 are met. If not, plan an upgrade or fork the package.TimelineEntry fields (title, content, image, author, time).CompanyPulseWidget) to test integration.resources/css/filament.css).TimelineEntry with Stack::make() or other Filament columns.composer require devletes/filament-timeline-view
php artisan filament:assets
TimelineEntry::make() and ->asTimeline() in a resource or widget.TimelineEntry::make()
->title('title')
->content('body')
->time('published_at')
->author('user.name', 'user.avatar')
->defaultGroup(Group::make('published_at')->date()).->collapsible().->recordActions([...]).null or invalid data.->with() for eager loading, ->orderBy() for sorting).->select() for specific columns).| Scenario | Impact | Mitigation |
|---|---|---|
Missing published_at or grouping field |
Timeline renders as a flat list or fails. | Use closures to provide fallback values or validate data before rendering. |
| CSS conflicts | Timeline styling breaks (e.g., misaligned cards, invisible line). | Inspect .ftv-shell and .fi-ta-timeline in browser dev tools; adjust specificity. |
| Alpine.js conflicts | Collapsible groups fail to toggle. | Check for duplicate Alpine initializations; isolate directives. |
| Action failures | Kebab dropdown actions don’t trigger. | Verify recordActions are properly configured and permissions are set. |
| Pagination issues | "Load more" button doesn’t work or loads incorrect data. | Ensure the query supports ->paginate() and hasMorePages(). |
How can I help you explore Laravel packages today?