UI components for Angular
OGE is a suite of Angular UI components built on signals: a virtualized data grid, tree list, pivot table, buttons and form editors. Components run zoneless, ship with full template type checking and theme through CSS design tokens.
Requires Angular 22 or 23.
Installation
Packages are independent — install only the families you need. Shared engines (@oge-ui/core for data, @oge-ui/overlay for positioning) are pulled in as dependencies automatically.
# everything at once — one install, one import path
npm install oge-ui
# …or install only what you use — every package is standalone
npm install @oge-ui/grid # data grid (+ @oge-ui/core)
npm install @oge-ui/tree-list # hierarchical grid
npm install @oge-ui/pivot # pivot table
npm install @oge-ui/buttons # buttons, groups, drop-downs (+ @oge-ui/overlay)
npm install @oge-ui/inputs # text, textarea, number and select editorsQuick start
Every component is standalone: import the classes you use into the imports array and bind with signals. No modules, no forms boilerplate — [(value)] works directly against a signal(), and the same editors also plug into Signal Forms ([formField]) and reactive forms (formControl).
import { Component, signal } from '@angular/core';
import { OgeButton } from '@oge-ui/buttons';
import { OgeTextBox } from '@oge-ui/inputs';
@Component({
selector: 'app-search-bar',
imports: [OgeTextBox, OgeButton],
template: `
<oge-text-box
label="Search"
[(value)]="query"
[showClearButton]="true"
(enterKey)="load()"
/>
<oge-button text="Search" severity="accent" [action]="load" />
`,
})
export class SearchBar {
readonly query = signal('');
// async action: the button manages its own loading spinner
readonly load = () => fetch('/api/search?q=' + this.query());
}Components
Virtualized rows, sorting, filtering, grouping, editing, master-detail, remote data and export.
Hierarchical data with lazy loading, tri-state selection, drag & drop reordering and editing.
Cross-tab analytics: rows × columns × measures with totals, sorting and export.
Async actions with automatic loading, click guards, hold-to-confirm, groups and drop-down menus.
Text, textarea, number and select editors with floating labels, validation and three form-binding modes.
Packages
| Package | Contents |
|---|---|
oge-ui | Umbrella: installs and re-exports every package below — one install, one import path. The scoped packages remain the à-la-carte alternative. |
@oge-ui/core | Framework-agnostic engine: data sources, filtering, row pipeline, tree and pivot math, virtualization. No framework dependency — both render layers run this exact code. |
@oge-ui/behavior | Framework-agnostic interaction and accessibility layer: popup positioning, focus trapping, the shared overlay Escape stack, the button press pipeline. Shared by the Angular and React components, so gestures and timings cannot drift between them. |
@oge-ui/react | React umbrella: installs and re-exports every @oge-ui/react-* family below, with one stylesheet import for all of them. The scoped packages remain the à-la-carte alternative. |
@oge-ui/react-buttons | React. Buttons, button groups and drop-down/split buttons as real React components — props, callbacks, controlled state — over the two engines above and the same stylesheet. |
@oge-ui/react-inputs | React. The full editor set on one field chrome: text, textarea, number, the drop-down editors with virtual scrolling, toggles, sliders, color box, calendar and the date editors. |
@oge-ui/react-tabs | React. Tab strip and tab panel: APG activation, overflow menu, closable tabs with async guards, drag reordering and lazy panels. |
@oge-ui/react-layout | React. Layout containers and loading visuals — card, accordion, splitter, toolbar, progress bar, load indicator and skeleton. |
@oge-ui/react-navigation | React. Navigation and wayfinding — virtualized tree view, drawer, stepper, menubar, breadcrumb and pagination. |
@oge-ui/react-overlay | React. The popup foundation the other React families build on: viewport-aware anchored positioning and WAI-ARIA menus. |
@oge-ui/grid | Data Grid component, column directives, templates, CSV/Excel/PDF export entries and the shared theme files. |
@oge-ui/tree-list | Hierarchical grid with lazy loading, tri-state selection, drag & drop and Excel outline export. |
@oge-ui/pivot | Pivot table with field chooser, totals and export (commercial — free for evaluation and development). |
@oge-ui/bpmn | BPMN 2.0 process modeler with its own XML + DI engine, no watermark (commercial — free for evaluation and development). |
@oge-ui/charts | Charts: cartesian series and pie/doughnut on a dependency-free SVG kernel (commercial — free for evaluation and development). |
@oge-ui/gantt | Gantt chart with task tree, dependencies, critical path and drag editing (commercial — free for evaluation and development). |
@oge-ui/upload | File uploader with drag & drop, restrictions, previews and chunked resumable transfer. |
@oge-ui/kanban | Kanban board with columns, swimlanes, WIP limits and drag & drop (commercial — free for evaluation and development). |
@oge-ui/scheduler | Scheduler / event calendar with day, week and month views, drag & resize and form editing (commercial — free for evaluation and development). |
@oge-ui/buttons | Button, ButtonGroup and DropDownButton with async actions, click guards and hold-to-confirm. |
@oge-ui/overlay | Anchored panels, popups and menu lists — the positioning engine behind drop-downs. |
@oge-ui/inputs | TextBox, TextArea, NumberBox plus SelectBox and TagBox (multi-select combobox) on one field chrome, with three form-binding modes. |