Dashboard widgets for Polysource — KPI counters, top-N lists, sparkline charts.
Part of the Polysource monorepo. MIT-licensed.
WidgetInterface(5-method contract) +AbstractWidgetbase.- 3 concrete widgets:
CounterWidget— KPI counter ("12 failed messages", "$45 678 revenue today")ListWidget— top-N list ("5 most recent orders")ChartWidget— sparkline chart (textual fallback in v0.1)
Dashboardimmutable VO +DashboardRegistry(tagged_iteratorpolysource.widgets.dashboard).DashboardExtensionTwig extension (render_widget(),render_dashboard(Dashboard|string),polysource_dashboards()).- 4 Bootstrap 5 templates (dashboard layout + counter/list/chart partials).
See ADR-022. Drag-drop composition deferred to v0.2.
composer require polysource/widgetsRegister the bundle:
return [
Polysource\Widgets\PolysourceWidgetsBundle::class => ['all' => true],
];WidgetInterface is 5 methods. Drop in a custom tile in 1 hour:
#[AutoconfigureTag('polysource.widgets.dashboard')]
final class IncidentRotatorWidget extends AbstractWidget
{
public function getName(): string { return 'incident_rotator'; }
public function getTemplate(): string { return '@App/widgets/incident_rotator.html.twig'; }
public function getData(): array { /* return what your template needs */ }
}See extensibility map.