A Laravel Nova asset for Modal responses on an action.
markwalet/nova-modal-response is a Laravel package for a laravel nova asset for modal responses on an action..
It currently has 17 GitHub stars and 860.950 downloads on Packagist (latest version v1.2.1).
Install it with composer require markwalet/nova-modal-response.
Discover more Laravel packages by markwalet
or browse all Laravel packages to compare alternatives.
Last updated
Enabling custom modals for action responses in Laravel Nova.

More info for this specific feature can be found in the Nova Documentation.
composer require markwalet/nova-modal-response
This package requires PHP 8.2+ and Laravel 12+.
use Markwalet\NovaModalResponse\ModalResponse;
ModalResponse::text('This is way better than that small notification in the bottom right!')
->title('Result in a modal');
Note: Always build responses through the
ModalResponsehelper. Hand-rolling the raw payload withAction::modal('modal-response', [...])is not a supported part of this package's API and may break without notice.
When you want to render raw html, you can use the html parameter instead:
ModalResponse::html('<ul><li>Show this package to your friends</li><li>Contribute</li><li>???</li><li>Profit!</li></ul>');
There is also a special mode for rendering code snippets. This will surround the body with a <pre> and <code> tag but still leave escaping enabled.
ModalResponse::code(file_get_contents(__FILE__))->title('Look at me!');
Syntax highlighting is enabled by default for code and json blocks. It is using highlight.js under the hood. You can disable this by calling ->withoutSyntaxHighlighting().
If you want to show some serializable data to the client, you can do that as well:
ModalResponse::json([
'lorem' => 'ipsum',
'dolor' => [
'sit',
'amet',
],
]);
You can also specify the size using the size option:
ModalResponse::text('Hello world')->size('7xl');