diff --git a/examples/grid-lite/components-react/src/App.tsx b/examples/grid-lite/components-react/src/App.tsx
index caa4be7..cdb84e1 100644
--- a/examples/grid-lite/components-react/src/App.tsx
+++ b/examples/grid-lite/components-react/src/App.tsx
@@ -10,7 +10,8 @@ import {
ColumnDefaults,
Column,
Description,
- Pagination
+ Pagination,
+ Header
} from '@highcharts/grid-lite-react';
function App() {
@@ -98,6 +99,13 @@ function App() {
cellRowHeader={false}
/>
Grid Caption v2.1
+
;
+}
+
+export interface HeaderProps {
+ /**
+ * Header tree: column order, inclusion, and grouping.
+ * Each entry is a column id (`string`) or a {@link GroupedHeaderOptions}
+ * object. Maps to Grid Core `options.header`.
+ */
+ header?: Array;
+}
diff --git a/packages/grid-shared-react/src/components/options/header/index.ts b/packages/grid-shared-react/src/components/options/header/index.ts
new file mode 100644
index 0000000..e25312d
--- /dev/null
+++ b/packages/grid-shared-react/src/components/options/header/index.ts
@@ -0,0 +1,15 @@
+/**
+ * Grid React integration.
+ * Copyright (c) 2025, Highsoft
+ *
+ * A valid license is required for using this software.
+ * See highcharts.com/license
+ *
+ */
+
+export { Header } from './Header';
+export type {
+ HeaderProps,
+ GroupedHeaderOptions,
+ HeaderCellAccessibilityProps
+} from './headerProps';
diff --git a/packages/grid-shared-react/src/components/options/index.ts b/packages/grid-shared-react/src/components/options/index.ts
index 67c6419..36984b3 100644
--- a/packages/grid-shared-react/src/components/options/index.ts
+++ b/packages/grid-shared-react/src/components/options/index.ts
@@ -24,3 +24,9 @@ export { Description } from './description';
export type { DescriptionProps } from './description';
export { Pagination } from './pagination';
export type { PaginationProps } from './pagination';
+export { Header } from './header';
+export type {
+ HeaderProps,
+ GroupedHeaderOptions,
+ HeaderCellAccessibilityProps
+} from './header';
diff --git a/packages/grid-shared-react/src/index.ts b/packages/grid-shared-react/src/index.ts
index 989215c..4cfc3ca 100644
--- a/packages/grid-shared-react/src/index.ts
+++ b/packages/grid-shared-react/src/index.ts
@@ -12,7 +12,15 @@ import { GridType, GridInstance } from './hooks/useGrid';
import type { GridProps, GridRefHandle } from './components/BaseGrid';
export { BaseGrid };
-export { Caption, Data, ColumnDefaults, Column, Description, Pagination } from './components/options';
+export {
+ Caption,
+ Data,
+ ColumnDefaults,
+ Column,
+ Description,
+ Pagination,
+ Header
+} from './components/options';
export { getChildProps } from './utils/getChildProps';
export type {
CaptionProps,
@@ -25,6 +33,9 @@ export type {
ColumnDataType,
ColumnSortingOrder,
CellValueGetterContext,
- PaginationProps
+ PaginationProps,
+ HeaderProps,
+ GroupedHeaderOptions,
+ HeaderCellAccessibilityProps
} from './components/options';
export type { GridType, GridInstance, GridProps, GridRefHandle };
diff --git a/packages/grid-shared-react/src/utils/getChildProps.ts b/packages/grid-shared-react/src/utils/getChildProps.ts
index a33c900..4564d86 100644
--- a/packages/grid-shared-react/src/utils/getChildProps.ts
+++ b/packages/grid-shared-react/src/utils/getChildProps.ts
@@ -209,6 +209,15 @@ export function getChildProps(children: ReactNode): Record {
return;
}
+ if (meta.gridOption === 'header') {
+ const { header, children: _ignored } = props;
+
+ if (header !== void 0) {
+ optionsFromChildren.header = header;
+ }
+ return;
+ }
+
const optionParent = optionsFromChildren[meta.gridOption] ?? (
optionsFromChildren[meta.gridOption] = meta.isArrayType ? [] : {}
);