Compose complex business interfaces
Picture your application using the frontend kit's reusable maps, grids, documents, schedules, and other components.
In the appApplication · FrontendUpdated September 19, 2026
Picture your application using the frontend kit's reusable maps, grids, documents, schedules, and other components.
The frontend kit provides pre-wired business components on top of the design system primitives. They use Angular, zoneless change detection,
OnPush, and signals. Each application receives a copy of the kit in its repository: it can use the components as-is, compose them through slots, or declare a visible fork when the need genuinely diverges.A complete application composes its shell, search, filters, cards, and actions from the same conventions.
Interactive map
mapis built on MapLibre GL. It displays points, custom markers, links between points, popups, selection, and a hideable legend. The viewport can fit the data.The
mapReadyevent provides access to MapLibre so you can add GeoJSON sources, areas, heatmaps, terrain, or specialized layers. The kit supplies the interaction framework while the application supplies data, geocoding, and business rules.Use it for a fleet, field work, sites, assets, or a network. A production-ready tile provider is still required for significant traffic.
The map combines navigation, markers, and business information in a single view. The displayed data is fictitious.
Excel-like data-entry grid
data-sheettargets tasks where keyboard speed matters: row-by-row entry, pasting from Excel, typed cells, inline validation, and calculated or read-only columns.The component emits changes but does not directly mutate business objects. The page therefore retains control over the draft, overall validation, and submission to the API.
This boundary makes the component useful for a budget, allocation, pricing catalog, or corrected import without claiming to replace Excel.
The grid speeds up structured entry, pasting, and data correction. The displayed data is fictitious.
Rich data table
data-tablecombines typed columns, sorting, selection, bulk actions, expandable details, pagination, density, and loading, error, or empty-list states. It works with local data or a server-side paginated source.Slots can display a badge, action, thumbnail, or business detail. Pivots, analytical aggregations, and advanced grouping require an extension or specialized component.
The table brings together browsing, selection, and business actions on structured data. The displayed data is fictitious.
Documents, images, and transfers
document-viewerroutes content by type: inline text, JSON, and CSV; images with a lightbox; PDFs with pagination and zoom; and DOCX with browser rendering. PDF and DOCX parsers load only when the viewer needs them.Document management combines a list, metadata, upload, and viewing, then the application adds its permissions and retention rules.
uploadadds the drop zone, transfer queue, progress, cancellation, and retry. It does not replace backend controls, antivirus scanning, or quotas.Time, scheduling, and assignment
Three components cover different views:
event-calendarfor events positioned in a calendar;planning-gridfor groups, rows, and reordering;timelinefor periods placed on a time scale.They suit resources, teams, field work, milestones, and roadmaps. They do not automatically calculate a critical path or optimal schedule.
The planning components present events, assignments, and periods for the relevant business workflow. The displayed data is fictitious.
Composed interfaces
The kit also includes:
list-detail, to coordinate a list and the selected record;chat, for conversations, attachments, and side-by-side views;filter-bar, for search, statuses, and date ranges;stat-card, to compose a dashboard;select, compatible with Angular forms;markdown, with code highlighting and URL filtering;lightbox, for viewing media;segmented, to quickly choose a mode or view.Customize without losing the foundation
Complex components expose
TemplateRefslots or content projection for cells, rows, markers, options, and empty states. A standard adaptation therefore remains declarative.When an application truly needs to diverge, it copies the relevant entry into
kit-forks. The fork becomes explicit, attributable, and testable instead of silently modifying the shared copy.