- What are the requirements for zoltantorok/filament-drag-and-scroll?
- The package requires PHP 8.1 or higher, Laravel 11, 12, or 13, and Filament 5.0 or higher. The Filament 5 constraint is the practical gate: on Filament 3 or 4 the plugin cannot be installed at all, so treat it as a rider on your Filament 5 upgrade rather than a standalone task. PHP and Laravel versions in a current Laravel application are usually already satisfied.
- How do I install and enable filament-drag-and-scroll?
- Run composer require zoltantorok/filament-drag-and-scroll, then add ->dragAndScroll() to the panel() method chain in your PanelProvider, for example after ->login(). No service provider registration, config file, or asset build step is needed. That single method call is the entire enablement.
- Can I enable drag and scroll on one Filament panel only?
- Yes. The method is per-panel, so you call ->dragAndScroll() only in the provider for the panel that needs it and leave the other panel providers untouched. Calling ->dragAndScroll(false) explicitly disables it, which is useful for documenting intent on shared panel configuration. The default is off, so panels you do not touch keep their current behavior.
- Does the package require any database migrations or configuration?
- No. It ships a small JavaScript and CSS bundle plus translation strings and has no migrations, schema changes, queues, or external service calls. Installation does not publish a config file. The only optional publish step is for translations, which you need only if you want to override the bundled language strings.
- Does Shift+drag still work after pagination, sorting, filters, or Livewire SPA navigation?
- That is the main thing to verify before rollout, because Filament tables re-render through Livewire and any handler bound once without event delegation can silently stop working after a table refresh. The package is designed to stay out of the way of normal table usage, but you should still test the gesture in a staging panel after paginating, sorting, filtering, and navigating between pages. If the drag stops working, users typically revert to their previous scrolling habit, so it will not be reported as a bug.
- Is this package an accessibility fix for keyboard users?
- It improves one input modality: pointer-based horizontal scrolling for people using a basic mouse or trackball. It does not deliver keyboard operability, so it should not be recorded as satisfying WCAG 2.1.1 or as closing a broader accessibility commitment. Treat it as a usability improvement alongside, not instead of, keyboard-accessible table navigation.
- Which languages are included and how do I customize the translations?
- English, Spanish, French, German, Italian, Portuguese, Dutch, Russian, Chinese, Japanese, Korean, Hungarian, and Romanian are bundled, and the matching one is picked up automatically from your app locale. To override any string, publish the package assets with php artisan vendor:publish --tag=filament-drag-and-scroll-views and edit the files under resources/lang/vendor. If your application already ships translations for the same locales, check that there is no key collision.
- Will Shift+drag interfere with text selection, row selection, or column reordering?
- Shift plus drag overlaps with native browser text selection, so the handler needs to scope its preventDefault to the table container rather than the whole page. If you use row selection, column reordering, or reorder handles on the same tables, test the gesture against those features in staging before enabling it widely. The package is intended to be non-intrusive, but interaction conflicts only show up when you try them on your own tables.
- Does it work with a strict Content Security Policy?
- Panels that use nonce-based or strict CSP headers are the most likely breakage case, because the injected asset must be allowed to load and initialize. Test on any panel with restrictive headers before rollout, since the failure is silent from a user perspective. Panels without a strict CSP are generally unaffected.
- Is the package safe to use in production, and what are the alternatives?
- Risk is low because the package is purely presentational: no data plane, no service surface, and its worst failure is that the gesture stops working and users scroll as they did before. The maintenance risk is higher than the technical risk, since it is a single-author package with a small install base, so pin the version and be ready to vendor roughly 50 lines of JavaScript yourself if it stalls. Alternatives are the native Shift plus mouse wheel, a custom drag-to-scroll handler in your panel assets, or a generic drag-scroll library. Confirm the tagged release matches the commit you audit before it enters your lockfile.