Download the PHP package tommasomusetti/filament-doc-studio without Composer
On this page you can find all versions of the php package tommasomusetti/filament-doc-studio. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tommasomusetti/filament-doc-studio
More information about tommasomusetti/filament-doc-studio
Files in tommasomusetti/filament-doc-studio
Package filament-doc-studio
Short Description PDF template builder for end users, inside Filament.
License MIT
Homepage https://github.com/TommasoMusetti/filament-doc-studio
Informations about the package filament-doc-studio
Document Studio
A PDF template builder for end users, inside Filament. Your client drags blocks into a template and prints a record as a PDF — without a developer touching a Blade file for every "can you change the quote layout?".
v1.0.0. The full v1 scope is out: 3 blocks, merge fields, a live preview, dompdf rendering. Feedback and issues are welcome.
Status
| Editor | Filament Builder field, inside your panel |
| Blocks | heading, paragraph (with merge fields), table (line items) |
| Merge fields | yes — a whitelist you declare per model |
| Preview | live, next to the editor, rendered against a sample record |
| Engine | dompdf (pure PHP, nothing to install on the server) |
Installation
The install command publishes the migration and offers to run it. By hand:
Then add the plugin to the panel that should get the editor:
Templates now live under Document templates in that panel.
Rendering a PDF
The renderer never touches Filament, so this works from a queued job or a console command as well as from a panel.
Whitelisting merge fields and line item tables
The paragraph and table blocks pull data from a model, but only through a
DocumentDataSource you write — a template can never reach an Eloquent
attribute you didn't explicitly expose:
Register it once, in a service provider's boot():
The paragraph block's merge tag picker and the table block's collection picker both read this whitelist — a field or column disappears from the editor the moment you stop declaring it, without touching saved templates.
Restricting the blocks a panel offers
A panel can only narrow the list. It cannot offer a block the renderer does not know: disabling a block must never break templates already saved with it.
Adding your own block
A block is one class with two faces — an editor field set, and print HTML:
Register it with the renderer, in a service provider's boot():
Write the HTML dompdf first: table layouts, conservative CSS, no flexbox or grid. And escape anything the user typed — a template is user written content.
Local development
workbench/ is a small Laravel app with a real Filament panel, so the plugin
can be opened in a browser:
Log in with [email protected] / password. The same panel is registered in the
test suite, so the panel tests run against what you see in the browser.
Contributing
Please see CONTRIBUTING.
Security
Please review our security policy on how to report security vulnerabilities.
Credits
License
The MIT License (MIT). Please see License File for more information.
All versions of filament-doc-studio with dependencies
dompdf/dompdf Version ^3.0
filament/filament Version ^4.0|^5.0
filament/forms Version ^4.0|^5.0
spatie/laravel-package-tools Version ^1.15.0