hugoseigle/symfony-ux-autocomplete-select-all
A Symfony UX Autocomplete extension that adds a Select All option to multiple-choice fields, letting users quickly select or clear every option. Simple integration, configurable labels, and smooth compatibility for faster, more user-friendly forms.
Package identity and scope. The release under review is HugoSEIGLE/symfony-ux-autocomplete-select-all v1.0.1. Despite the framing as a Laravel/PHP package, this is a Symfony UX component — it targets Symfony UX Autocomplete (Tom Select-backed) and integrates through Symfony's AssetMapper/Webpack Encore + Stimulus controller registration path, not Laravel's Vite/@vite or Blade component model. This is the single most important evaluation finding: the stack fit is Symfony-first, and Laravel adoption would require manual Stimulus controller wiring and asset pipeline rework rather than a supported install path.
Architecture fit. The package is a thin, client-side behavior layer: it extends an existing autocomplete widget with "select all" semantics. Architecturally this is low-risk and low-coupling — it does not touch server-side domain logic, persistence, or request lifecycle. That is attractive from a blast-radius perspective, but it also means the package's value is bounded: it solves one UI affordance, not a platform capability.
Integration feasibility. Feasible in a Symfony app with Symfony UX Autocomplete already in place. In a Laravel app, feasibility is "possible but bespoke": you would register the Stimulus controller yourself, ensure Tom Select is present, and own the wiring. The absence of any framework-agnostic distribution documentation in the release artifact is a gap.
Technical risk. Concentrated in supply chain and maturity, not in runtime behavior:
Key questions.
peerDependencies / require constraints on symfony/ux-autocomplete and Tom Select — is a breaking upstream bump excluded?Stack fit. Direct fit: Symfony 6/7 + Symfony UX Autocomplete + AssetMapper or Encore. Partial fit: any Stimulus/Tom Select front end. Poor fit: Laravel — this should be treated as "vendor a small JS behavior," not "install a package."
Recommended integration approach (Laravel context). Do not adopt as a Composer dependency for server-side behavior. Instead:
resources/js/controllers/.@hotwired/stimulus + import.meta.glob or the stimulus-laravel conventions).THIRD_PARTY.md.This preserves the behavior while removing the package from the dependency graph — appropriate given the maintenance profile.
Migration path. None required for existing Symfony UX Autocomplete users: additive controller registration, no schema, no data migration, reversible by removing the controller. For a Laravel app already using a Tom Select wrapper, the work is a one-time glue task, estimated at 1–3 engineer-days including test coverage.
Compatibility considerations.
select all semantics interact correctly with any server-side pagination or lazy-loaded option sets — a "select all" that only selects rendered options is a common and subtle correctness bug in this class of component.Sequencing.
Maintenance. Low ongoing code maintenance; disproportionate attention maintenance. A single-maintainer package pinned to another single-vendor UI library's internals means your team owns the upgrade path in practice, regardless of what the package promises. Budget a recurring review each time Symfony UX Autocomplete or Tom Select ships a major.
Support. No commercial support, no SLA, no evident security policy. Treat issue-tracker responsiveness as best-effort. For a purely cosmetic UI affordance this is tolerable; it would not be tolerable if the component were on a revenue-critical transaction path — note that "select all" on a destructive bulk action (bulk delete, bulk status change) elevates this from cosmetic to consequential.
Scaling. Client-side only; no server load implications. The scaling concern is option cardinality: select-all against large option sets can produce oversized form payloads and slow submissions. If the underlying autocomplete paginates or virtualizes, validate the request body size and server-side max-input handling before enabling broadly.
Failure modes.
Ramp-up. Very low for a Symfony developer already familiar with Stimulus — hours. For a Laravel team, the learning cost is not the package but the Stimulus/Tom Select wiring; half a day for a mid-level front-end engineer, plus the review discipline above.
Assessment of v1.0.1 specifically. The release contains a single CI fix and no functional, API, or dependency changes. It carries no integration impact and does not change any of the recommendations above. Its informational value is a maturity signal — the 1.0.0 tag shipped before CI was green — which reinforces rather than alters the caution already expressed. Recommend no action on the basis of this release; proceed with the source-review gate before any adoption decision.
How can I help you explore Laravel packages today?