Skip to main content

Architecture

topgrid is a monorepo composed of 13 packages. Packages are classified as Open (MIT) or Pro (commercial license).

Package List

PackageCategoryDescription
@topgrid/gridOpen (MIT)Meta package — re-exports all open packages
@topgrid/grid-coreOpen (MIT)TanStack Table abstraction wrapper + useGridState core hook
@topgrid/grid-featuresOpen (MIT)Sort, filter, pagination and other common feature builder options
@topgrid/grid-exportOpen (MIT)Excel/CSV/PDF export (xlsx, jspdf peers)
@topgrid/grid-renderersOpen (MIT)Cell renderer component library (date, number, badge, etc.)
@topgrid/grid-licenseOpen (MIT)Runtime Pro license validation module
@topgrid/grid-pro-aggProAggregation — group sum, average, count
@topgrid/grid-pro-datamapProData mapping — code-to-label conversion, hierarchical select
@topgrid/grid-pro-headerProAdvanced header — multi-row header merge, fixed header
@topgrid/grid-pro-masterProMaster-Detail — row expansion + nested grid
@topgrid/grid-pro-mergingProCell merging — automatic rowSpan/colSpan for equal values
@topgrid/grid-pro-rangeProRange selection — drag cell select, copy, paste
@topgrid/grid-pro-trackingProChange tracking — edited row/cell dirty state management

Dependency Diagram

graph TD
subgraph Open["Open (MIT)"]
grid["@topgrid/grid<br/>(meta)"]
grid-core["@topgrid/grid-core"]
grid-features["@topgrid/grid-features"]
grid-export["@topgrid/grid-export"]
grid-renderers["@topgrid/grid-renderers"]
grid-license["@topgrid/grid-license"]
end

subgraph Pro["Pro (commercial license)"]
pro-agg["@topgrid/grid-pro-agg"]
pro-datamap["@topgrid/grid-pro-datamap"]
pro-header["@topgrid/grid-pro-header"]
pro-master["@topgrid/grid-pro-master"]
pro-merging["@topgrid/grid-pro-merging"]
pro-range["@topgrid/grid-pro-range"]
pro-tracking["@topgrid/grid-pro-tracking"]
end

subgraph Peers["peer dependencies"]
react["react ^18"]
tanstack["@tanstack/react-table ^8"]
virtual["@tanstack/react-virtual ^3"]
end

grid --> grid-core
grid --> grid-features
grid --> grid-renderers
grid-core --> grid-features
pro-agg --> grid-core
pro-datamap --> grid-core
pro-header --> grid-core
pro-master --> grid-core
pro-merging --> grid-core
pro-range --> grid-core
pro-tracking --> grid-core
pro-agg --> grid-license
pro-datamap --> grid-license
pro-header --> grid-license
pro-master --> grid-license
pro-merging --> grid-license
pro-range --> grid-license
pro-tracking --> grid-license
grid-core --> react
grid-core --> tanstack
grid-core --> virtual

Directory Structure

topgrid/
├── packages/ # Published packages (pnpm publish)
│ ├── grid/ # MIT — meta package
│ ├── grid-core/ # MIT — core hook
│ ├── grid-features/ # MIT — feature builders
│ ├── grid-export/ # MIT — export utilities
│ ├── grid-renderers/ # MIT — cell renderers
│ ├── grid-license/ # MIT — license validation
│ ├── grid-pro-agg/ # Pro — aggregation
│ ├── grid-pro-datamap/ # Pro — data mapping
│ ├── grid-pro-header/ # Pro — advanced header
│ ├── grid-pro-master/ # Pro — master-detail
│ ├── grid-pro-merging/ # Pro — cell merging
│ ├── grid-pro-range/ # Pro — range selection
│ └── grid-pro-tracking/ # Pro — change tracking
└── apps/
└── docs/ # private — Docusaurus + TypeDoc API documentation site

Pro Package License Activation

When using Pro packages, @topgrid/grid-license performs runtime license validation. Initialize your license key once at the application entry point.

import { setLicenseKey } from '@topgrid/grid-license';

setLicenseKey('YOUR-LICENSE-KEY');

Without a valid license key, Pro components display a watermark overlay. Contact sales@platree.com to obtain a license key.