Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Icon Action Toolbar Laravel Package

digital-creative/icon-action-toolbar

A Filament package that turns table row actions into a compact icon action toolbar, helping Laravel admin panels save space while keeping common actions one click away. Configure icons, tooltips, and action groups for cleaner resource tables.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Build vs. buy for admin density. The package turns a resource's action column into a compact icon toolbar (view / edit / replicate / delete + custom actions) while preserving tooltips, labels, confirmation dialogs, visibility rules, and authorization. For a Laravel admin panel with dense index screens, that is roughly 1–2 weeks of bespoke toolbar work avoided, at zero licence cost (MIT). Default recommendation: conditional pilot, not build — with an explicit rollback path.

  • Where to spend admin UX effort. The value is density on triage screens — orders, moderation queues, support tickets — where an operator scans many rows and repeatedly fires the same 3–5 actions. It is not a win on data-entry forms, low-frequency resources, or screens where the button label is doing the safety work. This gives us a scoping rule: icon toolbar on high-frequency scan screens, labelled buttons everywhere else.

  • A go/no-go fact-check that must precede any roadmap commitment. The listing metadata says Filament; every technical read of the shipped releases says Laravel Nova (actions(), nova:publish, Nova::script(), Nova policies, a nova-packages-toolbar dependency). These are different frameworks with different registration surfaces, asset pipelines, and compatibility matrices. This is the first product decision: resolve it in an afternoon, or a roadmap item gets scheduled against the wrong stack and burns a sprint.

  • Accessibility posture as a product requirement, not a polish item. Icon-only buttons have no accessible name unless a real label is set. Compressing Delete into an unlabelled icon removes the label that was providing the safety cue. This drives two product constraints: destructive actions stay confirmation-gated and last in the row, and any custom icon action ships with a real label plus a focus-visible tooltip. If we can't meet that, we keep that one action as a labelled button — mixed rendering is acceptable.

  • Interaction convention as a design system asset. Icon order must be fixed and shared across resources (view → edit → replicate → custom → delete), enforced via a shared trait/abstract resource. Muscle memory is the entire UX payoff; an engineer reordering icons "for aesthetics" is a real regression class. This is a design-governance decision we make once.

  • Ceiling on toolbar length. ~4–6 actions is the practical cap; beyond that, icons are slower than a dropdown. Anything more goes into an overflow menu. That bounds which resources are eligible and prevents the toolbar from degrading quietly as features accrete.

  • Fallback as a first-class requirement. v0.1.3 shipped frontend-only fixes (hover states, row alignment, scrollable detail toolbar, a replicate-icon fix) and moved the toolbar onto a shared component in a patch release. Product consequence: we always keep the labelled-button rendering reachable behind a config/env flag so rollback is a one-line change, not a revert commit.

When to Consider This Package

Adopt it (pilot) when all of these hold:

  • Your admin panel is Laravel Nova — verified by reading composer.json and src/ at the installed tag, not by the marketplace description. If it's Filament, stop and re-evaluate; the listing copy is not trustworthy here.
  • You have at least one high-frequency, wide-row index screen with 3–5 actions that already work correctly as plain buttons. That screen is the pilot; nothing else converts in wave one.
  • Your team can own a browser-level test for the toolbar (icon count, order, permission-filtered count, replicate actually copies) — the failure modes here are visual and interaction-level, and unit tests won't catch them.
  • You accept version discipline: pin exactly (0.1.3, not ^0.1), treat every bump as a change request with a documented rollback pin, and read the changelog before upgrading.

Look elsewhere or defer when:

  • The stack is Filament or ambiguous and nobody will spend an afternoon resolving it.
  • You need a stated compatibility matrix for Nova/Laravel/PHP majors — none is published; you must verify it yourself on a scratch branch.
  • The resource is form-heavy, low-frequency, or safety-critical — icon compression costs more than it saves.
  • You'd need to fork the Vue components or patch resources/js/. That surface moved materially in a patch release; it is unsupported in practice.
  • You need more than ~6 actions per row — that's a menu problem, not a toolbar problem.
  • Procurement requires maintainer depth and adoption signals: 26 stars, 0 dependents, single maintainer, 0.1.x, one first-time contributor landing a structural refactor. This is a small, MIT-licensed convenience — fine as a non-critical-path UX layer, not fine as a load-bearing dependency.

Maturity note to carry into the decision: score 3.73, opportunity 27.37. Read that as "cheap, useful, unproven" — an efficiency purchase with a small blast radius, not a platform bet.

How to Pitch It (Stakeholders)

To executives — one paragraph: We're looking at a small MIT-licensed UI package that compresses the row of action buttons in our admin tables into compact icons, keeping tooltips, confirmation dialogs, and permission rules intact. It costs nothing to license and replaces roughly one to two weeks of custom toolbar work. We'd run it as a one-screen pilot behind a feature flag with a one-line rollback, and measure time-to-complete on a high-volume triage task. Two caveats drive the caution: the package's own listing is inconsistent about whether it targets Filament or Laravel Nova, and it's a young 0.1.x release with a single maintainer — so we're treating it as a UX layer on a non-critical path, not infrastructure. Recommendation: fund a one-week pilot, not an org-wide rollout.

To engineering — the ask, in order:

  1. Resolve the framework question first. composer show -a digital-creative/icon-action-toolbar, then read composer.json and src/. Nova imports → Nova. Filament imports → Filament. Nothing gets scheduled until this is answered; record the finding in our dependency notes so it isn't re-litigated.
  2. Install pinned at exactly 0.1.3, publish assets, and clear caches. Verify the browser network tab shows a new JS hash — the v0.1.3 changes are frontend-only, so stale assets will look like a failed upgrade.
  3. Convert one dense index resource only, 3–5 existing actions, with the old button rendering kept reachable behind a flag. Success criteria: same actions, same authorization behaviour, same confirmations, fewer pixels per row, keyboard tab order walkable end to end.
  4. Lock icon order (view → edit → replicate → custom → delete) in a shared trait so new resources can't drift. Destructive actions stay confirmation-gated and last.
  5. Invest on the stable surface: action icon() / visible() on PHP classes → action ordering in actions() → config file. Do not touch resources/js/, and keep any CSS overrides in one small commented file (or skip overrides entirely and use the package's styling options) — class names moved in the last patch release.
  6. Write a browser test asserting the positive (4 icons, correct order, replicate copies) and the negative (a user without delete permission sees 3 icons, and the third is the custom action, not delete shifted left).

What success and failure look like: Success is a measurably faster scan-and-act loop on one screen with zero accessibility regressions — every icon has a real accessible name, tooltips appear on focus not just hover, focus rings are visible in light and dark mode. Failure is an icon toolbar that quietly hides an action from a screen reader user, or a CSS override that breaks silently on the next patch bump. Either way, the rollback is one flag.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk