owenmelbz/nova-radio-field
A Laravel Nova field that renders options as radio buttons instead of a dropdown, giving a clearer single-choice selection UI. Configure it with the same options array you'd use for Nova's built-in select fields, and it drops straight into resource forms with no extra setup.
Field subclass and one compiled Vue component, not a platform. The realistic framing is "a few engineering hours saved against a permanent fork obligation." Because the last release predates Nova 4's asset pipeline, the buy side of the ledger carries a compatibility spike and an ownership transfer; the build side is a contained internal component with the same behavior. Present both costs to the same stakeholder in the same meeting.Select/Boolean plus dependsOn(). This package is a useful probe for whether the need is real before you commit headcount to a shared abstraction.dependsOn(), and is keyboard-navigable. Writing these down now means the make-or-buy call gets made on evidence rather than demo.fields() array. Not a rules engine, not cross-resource logic, not a wizard.laravel/nova, confirm the shipped dist/js bundle renders inside the form's Vue tree, and exercise create, update, validation-error, and toggle states on one low-traffic resource. Check composer.json and the bundle — the README will not tell you.nova-components/), a pinned version, a named owner, and a license check that permits forking.Select with native dependsOn() already satisfies the requirement, the only thing you're buying is the radio buttons — and that is rarely worth a dependency.Look elsewhere if: you're on an untested Nova release and won't fund the spike; your accessibility baseline requires verified keyboard and screen-reader semantics and the control turns out to be styled markup; supply-chain policy disallows unmaintained single-maintainer packages; the visibility rules are complex or will be duplicated across many resources (centralize in a shared factory instead); or two radios would target the same field, toggled fields are conditionally omitted from the form, or option keys are integers — Nova stringifies values and the toggle matching becomes unreliable.
Executive summary. A small accelerator for internal admin screens: it presents a short set of mutually exclusive choices as inline radio buttons and reveals only the follow-on fields that matter for the selected choice. Cleaner forms, fewer mis-entries on status and settings screens, marginally faster delivery of back-office tooling. It is a tactical convenience, not a platform bet, and it carries a known cost — the package is four years stale and would become ours to maintain. Recommend approving a half-day compatibility spike, with the expectation that the outcome is "fork and own," not "adopt and rely on."
For engineering. Treat this as a time-saving Nova field, not a long-term dependency. The surface is tiny and readable in an hour: one Field subclass plus one Vue component, with ->options(), ->toggle(), and the inherited Nova modifiers. The risk sits entirely in the bundle — built against Nova 3-era tooling, it can go blank or throw inside the shared form Vue tree with no build error. Gate on a throwaway branch: Composer resolution, render, persistence on create and update, validation-error display, toggle behavior, and coexistence with native dependsOn(). Pass → vendor into nova-components/, pin the build, assign an owner, and add revalidation to the Nova upgrade checklist. Fail → the same behavior is a contained internal build of roughly equal size.
For product and operations. Staff see only the fields relevant to the choice they made, which cuts clutter and mis-entry on the screens they use every day. The trade is supply-chain risk on an old, single-maintainer package with no dependents. Manage it by piloting on one low-traffic resource, keeping the toggle rules centralized in a shared factory so they don't drift across resources, and accepting that we — not upstream — fix anything that breaks. Do not extend it to customer-facing forms or complex conditional workflows, and mark the next Nova upgrade as the moment the fork gets re-validated.
How can I help you explore Laravel packages today?