zhortein/datatable-bundle
A Laravel datatable bundle that simplifies presenting and managing tabular data. It provides reusable table rendering with filtering, sorting, and pagination support, helping you build admin lists and searchable records with less boilerplate.
textContent in the dynamic Search Builder closes a class of injection risk in user-driven query construction. That is a directly citable item for security review and for any customer-facing questionnaire about input handling.Adopt when:
Look elsewhere or defer when:
2.0.0-beta.1; APIs around theme metadata and capabilities may still shift before final.For executives: This release converts a Bootstrap-tied component into a themeable one. Practically, it means we can serve multiple brands or tenants from a single codebase with our own styling as a contained, replaceable artifact instead of a fork — a meaningful reduction in long-term maintenance cost and a faster path to white-label and design-system work. It also hardens user-supplied search input against script injection, which is a clean win for security review and customer due diligence. The tradeoff is that this is a beta with documented breaking changes; treating it as a deliberate, scheduled upgrade rather than an incidental one keeps the risk bounded and keeps us on a supported path.
For engineering: The 2.0 line introduces a public theme registry — immutable metadata, declared capabilities, and asset ownership — with fresh-host validation of a full external theme package. Every shell, partial, and typed-cell template now resolves through the selected theme, and default cell presentation moved into BootstrapTheme. The Stimulus controller no longer imports Bootstrap-specific code or relies on generated classes; confirmation uses native <dialog> and dynamic controls consume theme-supplied classes. Search Builder construction now builds DOM nodes and uses textContent rather than HTML interpolation. Net effect: presentation is a contract we can implement once, our CSS framework is no longer dictated by the package, and one injection vector is gone. Cost is a coordinated migration — template overrides, assets, and confirmation dialogs all change together — so plan it as one unit against the migration guide, and pin to the beta only behind a feature flag until 2.0 is stable.
How can I help you explore Laravel packages today?