Download the PHP package mimisk/pinakas without Composer
On this page you can find all versions of the php package mimisk/pinakas. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download mimisk/pinakas
More information about mimisk/pinakas
Files in mimisk/pinakas
Package pinakas
Short Description A simple, reusable Laravel table builder package for fast CRUD listings.
License MIT
Homepage https://github.com/MimisK13/pinakas
Informations about the package pinakas
Pinakas is a simple, reusable Laravel table builder package focused on fast CRUD listings.
Requirements
- PHP
^8.2 - Laravel
^11.0,^12.0, or^13.0
Installation
Via Composer
Install JS dependencies for the interactive controls:
Publish package JS asset:
Import Alpine and Pinakas JS in your app entrypoint (resources/js/app.js):
Rebuild assets:
If your app already starts Alpine (for example through Breeze), only import the published Pinakas JS asset once:
For Vite dev servers using a custom local domain, make sure HMR uses the same lowercase host as the browser URL. Example:
Configuration
Publish config:
config/pinakas.php:
These are global defaults and can be overridden per table.
Usage
Quick Start
Rendering The Table View
Pass the table object to your Blade view:
Render the package table in Blade:
Columns
Define columns with label + model attribute:
Column alignment:
Header alignment (independent from cell alignment):
Header label is optional in make(). If omitted, it is auto-generated
from the attribute:
Date column type:
If ->format(...) is omitted, DateColumn uses columns.date_format from config.
Time column type:
If ->format(...) is omitted, TimeColumn uses columns.time_format from config.
Badge column type:
Boolean column type:
Actions (Single And Group)
Single actions:
Grouped actions:
Custom action URLs may be generated directly or through named routes:
Destructive actions can show a confirmation modal before submit:
DeleteAction::make() uses the Laravel-style *.destroy route name.
Confirmation modals are rendered by pinakas::partials.confirm-modal.
Pinakas also ships pinakas::partials.styles for the required x-cloak
rule, preventing Alpine dropdown/modal flashes while the page initializes.
Pagination
Enable pagination:
Second parameter defines page query key:
Third parameter is optional label text (shown above dropdown):
Pagination template override per table:
You can also pass a direct view name:
Search
Enable global search:
Custom search query key:
Override label / placeholder / icon per table:
Hide label or icon:
Mark specific columns as searchable:
If no columns are marked, search is applied to all defined column attributes.
Sorting
Enable sorting support for this table:
Set icon position per table (override config):
Custom sort query keys:
Mark sortable columns:
You can combine ->searchable() and ->sortable() safely.
Only columns marked with ->sortable() become sortable.
Bulk Actions
Register bulk actions:
Customize selected IDs input name:
Controller endpoint example:
UI Settings
Override global accent color per table:
You may also pass CSS color values:
Control outer table border per table:
Control table rounded class per table:
Control striped rows per table:
Control hoverable rows per table:
Control rounded classes for controls:
Per-Page Selector
Per page dropdown appears automatically when pagination is enabled.
No label is shown by default.
el-select is powered by @tailwindplus/elements (npm).
Custom per-page query key:
Label visibility is controlled globally by pagination.show_label.
If show_label = true and no custom text is passed, default text is Per page.
Loading State
The table includes a built-in loading overlay (spinner + reduced opacity) while form submissions and link navigations are in progress. The UI classes include dark mode variants for table, controls, and loading state.
Empty States
When the table has no data:
When search has no matches:
Full Controller Example
Notes
Route naming convention used by default actions:
user.showuser.edituser.destroy
These are inferred from each row model class (example: App\Models\User -> user.*).
Change log
Please see the CHANGELOG for more information on what has changed recently.
Testing
Static analysis is handled by Larastan:
The GitHub workflow runs both Pest and Larastan against the supported Laravel matrix.
Security
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Credits
- Mimis K
- All Contributors
License
MIT. Please see the LICENSE file for more information.