Download the PHP package inlayphp/widgets without Composer

On this page you can find all versions of the php package inlayphp/widgets. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package widgets

Inlay Widgets

Packagist PHP

PHP-first dashboard widgets for Inlay panels and Inertia applications

inlayphp/widgets is the PHP-first dashboard description layer for Inlay panels and Inertia applications. Laravel builds stats, charts, and table widgets; React or Vue renders the versioned payload. Business queries and authorization stay in PHP.

Install

The Composer package depends on inlayphp/tables, inlayphp/forms, and inlayphp/infolists so a PHP dashboard can compose the same table, form, and infolist surfaces without a page-owned schema.

Build a dashboard

Widget names are stable lowercase identifiers. Shared methods are label(), description(), columnSpan() (1–12 or full), columnStart(), tab(), sort(), visible(), poll(), lazy(), headerActions(), and footerActions(). Header and footer actions use the same Inlay\Actions\Action contract as panel, resource, and table actions. Invisible widgets are removed when the dashboard is assembled; duplicates are rejected; remaining widgets sort by order then name.

Dashboard::make() owns the PHP-defined eyebrow, heading, description, and header actions. tab('orders', 'Orders') groups widgets into a reusable tab without adding a custom tab component to the application page. The stock React and Vue renderers keep the header and tabs consistent with the default theme.

Refreshing, lazy loading, and layout

The dashboard's columns() count is what the grid is actually laid out with, and a widget's columnSpan() is narrowed to fit rather than allowed to overflow it — so columns(6) with a widget spanning 8 gives a six-column grid and a full-width widget.

poll() and lazy() are honoured by both stock renderers. A lazy widget shows a placeholder until it is scrolled into view, then renders and asks once for fresh data; where nothing can observe it (server rendering, or no IntersectionObserver) it renders immediately rather than staying blank. A polling widget asks again on its interval, but only while it is shown and the tab is being looked at, so a dashboard left open in a background tab stops asking.

Both ask through a callback you supply, so the transport stays yours:

Without a callback nothing is requested at all. poll(null) turns polling off again.

Cache request-aware widget output

Provider output is request-scoped by default. When a provider performs an expensive query, it can opt into caching with CacheableWidgets:

The resolver uses Laravel's bound cache repository and stores the complete server-built widget objects for the declared TTL. The key is always supplied by the application: include the authenticated user, tenant, locale, date range, or any other input that changes the result. Caching never grants authorization and does not replace the provider's query scope. If no cache repository is bound, an explicitly cacheable provider fails clearly instead of silently serving uncached data.

Request-aware panel providers

Use ProvidesWidgets when data depends on the authenticated user or request:

Panel::widget() accepts a Widget, provider instance, or provider class. Panel::widgets() accepts an iterable. The dashboard controller resolves providers through the container and sends the resulting dashboard as the inlayWidgets Inertia prop.

Outside a panel, inject WidgetResolver and call resolve($sources, $request).

Discover providers

For larger applications, discover provider classes using the same explicit directory/namespace boundary used by fluent panels:

Only concrete classes implementing ProvidesWidgets are registered. Discovery deduplicates and sorts providers, and caches only that class list for the current PHP process. Provider instances and their data are still resolved for every request, so authorization and tenant scoping remain request-safe. Call WidgetDiscovery::clear() (or pass cache: false to discover()) for a long-running worker or a development reload after adding a provider.

Serialized contracts

The dashboard contract is inlay.widget-dashboard.v1:

Every widget uses inlay.widgets.v1 and includes type, name, label, description, columnSpan, sort, visible, pollingInterval, lazy, headerActions, and footerActions.

The built-in frontend chart is a lightweight accessible comparison visualization. chartType remains in the contract so a custom renderer can use Chart.js, ECharts, or another chart system.

Validation and security

PHP builders validate widget identifiers, dashboard/overview column ranges, spans, chart types, numeric datasets, trend names, semantic color tokens, and stat URLs through SafeUrl. These checks protect the contract, not data access.

Authorize and scope every query inside the provider. A hidden widget is not an authorization boundary, and serialized dashboard values should contain only data the current user may see. Custom frontend renderers must keep URL validation when rendering links.

Customization

Both adapters inherit panel CSS variables, accept typed theme and classNames, expose stable data-slot attributes, accept icon registries, and support custom renderers keyed by stats-overview, chart, or table. React accepts an empty node; Vue exposes an empty slot.

Testing

Run each renderer's typecheck and build scripts as well. Related packages: inlayphp/panels supplies dashboard integration, inlayphp/tables supplies table payloads, and inlayphp/support supplies safe URL handling.


All versions of widgets with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
illuminate/contracts Version ^12.0 || ^13.0
illuminate/http Version ^12.0 || ^13.0
inlayphp/actions Version ^0.3 || dev-main
inlayphp/forms Version ^0.3 || dev-main
inlayphp/infolists Version ^0.3 || dev-main
inlayphp/support Version ^0.3 || dev-main
inlayphp/tables Version ^0.3 || dev-main
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package inlayphp/widgets contains the following files

Loading the files please wait ...