khalin/nova4-indicator-field
A Laravel Nova 4 field for displaying compact status indicators in resource tables and detail views. Render colored dots, labels, and conditional states with a simple API—handy for showing boolean flags, health checks, or workflow status at a glance.
active, pending, failed, an enum case, a health flag) to a color-coded dot or labeled badge on resource index tables and detail pages. The product decision it unlocks is readability of record state at the moment of action — an operator scanning a hundred orders, subscriptions, or jobs can triage without opening records or consulting a legend.Recommendation: Fork / Reference. The UX capability is worth having; this specific package is not worth depending on.
Consider it when:
laravel-nova).canSee/authorization semantics end to end.Look elsewhere when:
withCount/withSum, or a cached accessor first, then decide on presentation.Gating checks before any adoption: confirm the exact laravel/nova constraint resolves against your locked version and that the package resolves from Packagist at all (composer show khalin/nova4-indicator-field --all); confirm the tagged release ships precompiled dist/ assets (many Nova field repos require an npm build against laravel-nova); confirm whether a service provider exists and is auto-discovered; verify the color strings match the component's own vocabulary rather than arbitrary Tailwind classes (passing emerald-500 fails silently); and grep the component for v-html on user-influenced values, which inside an authenticated admin panel is an XSS vector against your admins. Treat zero tests as your problem: a smoke test asserting the field renders on index and detail pages is the minimum bar.
For executives — one paragraph. We can make the internal admin surface dramatically easier to scan by placing color-coded status — order state, subscription lifecycle, review stage — directly on the record lists and detail pages our support and ops teams already use. The cost is small and time-boxed: the underlying capability is a few hundred lines, so we would copy the pattern in-house rather than take a long-term dependency on a single-maintainer package last released in 2022. That choice keeps us off an upgrade ceiling when we move to the next Nova major version, and it costs roughly a day of engineering against a measurable drop in the time it takes an operator to triage a queue.
For engineering — the summary you need to decide. It's a Nova 4 field: one PHP field class plus a small Vue component that maps a value or closure to a fixed color vocabulary (green/amber/red/gray — not arbitrary Tailwind class names), with optional label and tooltip, usable on index, detail, and form views. No config file, no migration, no publish step; zero front-end setup. Three caveats drive the recommendation. First, provenance: the Packagist name (khalin/...), the GitHub owner (oleghalin), and the repo URL don't line up — resolve who controls publish credentials before running its compiled JS in an authenticated admin panel. Second, longevity: single author, last release April 2022, zero dependents, no visible CI or tests, and no validation past Nova 4.x — this is your upgrade ceiling, not a feature. Third, hygiene: prior assessments disagree on whether a service provider exists, so read vendor/ to settle auto-discovery, confirm the tag ships dist/, and grep for v-html on interpolated model data. Recommended plan: treat it as a reference implementation, vendor the field class and component into app/Nova/Fields/ under our namespace with MIT attribution, register assets explicitly, centralize the color map in one class reused across resources and lenses, normalize enums/nulls via resolveUsing with a deliberate gray fallback, keep it ->exceptOnForms(), and budget the query cost (withCount in indexQuery) before it hits an index. Add one feature test asserting the field renders on index and detail, and a release-checklist visual check for any page using it. If we must stay external: pin the exact version, commit composer.lock, and add a runbook line to re-validate on every Nova minor bump. If Nova 5 is anywhere on the roadmap, skip the port and build the equivalent against the current field API now.
How can I help you explore Laravel packages today?