@progress/kendo-react-grid 13.3.0 → 13.4.0-develop.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (256) hide show
  1. package/BasePDFExport.d.ts +31 -0
  2. package/Grid.d.ts +129 -0
  3. package/GridClientContextReader.d.ts +17 -0
  4. package/GridClientWrapper.d.ts +32 -0
  5. package/GridClientWrapper.js +1 -1
  6. package/GridClientWrapper.mjs +21 -25
  7. package/GridColumn.d.ts +51 -0
  8. package/GridComponent.d.ts +14 -0
  9. package/GridComponent.js +1 -1
  10. package/GridComponent.mjs +6 -6
  11. package/GridPdfExportButton.d.ts +18 -0
  12. package/GridSearchBox.d.ts +27 -0
  13. package/GridState.d.ts +30 -0
  14. package/GridToolbar.d.ts +48 -0
  15. package/ScrollMode.d.ts +8 -0
  16. package/StatusBar.d.ts +59 -0
  17. package/VirtualScroll.d.ts +45 -0
  18. package/cells/GridDetailHierarchyCell.d.ts +16 -0
  19. package/cells/GridFilterCell.d.ts +10 -0
  20. package/cells/GridFilterCell.mjs +4 -4
  21. package/cells/datacell/GridCell.d.ts +15 -0
  22. package/cells/datacell/GridCellServer.d.ts +15 -0
  23. package/cells/datacell/GridCellServerContainer.d.ts +11 -0
  24. package/cells/datacell/useCellClientTdProps.d.ts +69 -0
  25. package/cells/datacell/utils.d.ts +20 -0
  26. package/cells/detailcell/GridDetailCell.d.ts +23 -0
  27. package/cells/detailcell/GridDetailCellServer.d.ts +11 -0
  28. package/cells/detailcell/GridDetailCellServerContainer.d.ts +12 -0
  29. package/cells/detailcell/useDetailCellClientTdProps.d.ts +23 -0
  30. package/cells/detailcell/utils.d.ts +19 -0
  31. package/cells/editcell/GridEditCell.d.ts +15 -0
  32. package/cells/editcell/GridEditCellEditor.d.ts +11 -0
  33. package/cells/editcell/GridEditCellServer.d.ts +15 -0
  34. package/cells/editcell/GridEditCellServerContainer.d.ts +11 -0
  35. package/cells/editcell/useEditCellClientTdProps.d.ts +25 -0
  36. package/cells/editcell/utils.d.ts +19 -0
  37. package/cells/groupcell/GridGroupCell.d.ts +15 -0
  38. package/cells/groupcell/GridGroupCellServer.d.ts +15 -0
  39. package/cells/groupcell/GridGroupCellServerContainer.d.ts +12 -0
  40. package/cells/groupcell/GridGroupCellToggle.d.ts +13 -0
  41. package/cells/groupcell/useGroupCellClientTdProps.d.ts +41 -0
  42. package/cells/groupcell/utils.d.ts +22 -0
  43. package/cells/hierarchycell/GridHierarchyCell.d.ts +15 -0
  44. package/cells/hierarchycell/GridHierarchyCellServer.d.ts +15 -0
  45. package/cells/hierarchycell/GridHierarchyCellServerContainer.d.ts +11 -0
  46. package/cells/hierarchycell/GridHierarchyCellToggle.d.ts +13 -0
  47. package/cells/hierarchycell/GridHierarchyCellToggle.mjs +2 -2
  48. package/cells/hierarchycell/useHierarchyCellClientTdProps.d.ts +32 -0
  49. package/cells/hierarchycell/utils.d.ts +20 -0
  50. package/cells/hooks.d.ts +25 -0
  51. package/cells/rowreordercell/GridRowReorderCell.d.ts +15 -0
  52. package/cells/rowreordercell/GridRowReorderCellServer.d.ts +15 -0
  53. package/cells/rowreordercell/GridRowReorderCellServerContainer.d.ts +11 -0
  54. package/cells/rowreordercell/useRowReorderCellClientTdProps.d.ts +27 -0
  55. package/cells/rowreordercell/utils.d.ts +15 -0
  56. package/cells/selectioncell/GridSelectionCell.d.ts +15 -0
  57. package/cells/selectioncell/GridSelectionCellInput.d.ts +13 -0
  58. package/cells/selectioncell/GridSelectionCellServer.d.ts +15 -0
  59. package/cells/selectioncell/GridSelectionCellServerContainer.d.ts +11 -0
  60. package/cells/selectioncell/useSelectionCellClientTdProps.d.ts +25 -0
  61. package/cells/selectioncell/utils.d.ts +25 -0
  62. package/codemods/v11/cell-render.js +2 -9
  63. package/codemods/v11/column-cell.js +2 -9
  64. package/codemods/v11/column-filter-cell.js +2 -9
  65. package/codemods/v11/column-footer-cell.js +2 -9
  66. package/codemods/v11/column-header-cell.js +2 -9
  67. package/codemods/v11/detail-expand-state.js +2 -9
  68. package/codemods/v11/edit-state.js +2 -9
  69. package/codemods/v11/filter-cell-render.js +2 -9
  70. package/codemods/v11/group-expand-state.js +2 -9
  71. package/codemods/v11/header-cell-render.js +2 -9
  72. package/codemods/v11/index.js +0 -7
  73. package/codemods/v11/row-render.js +2 -9
  74. package/codemods/v11/selection-state.js +2 -9
  75. package/codemods/v11/utils.js +2 -9
  76. package/columnMenu/GridColumnMenuCheckboxFilter.d.ts +58 -0
  77. package/columnMenu/GridColumnMenuCheckboxFilter.js +1 -1
  78. package/columnMenu/GridColumnMenuCheckboxFilter.mjs +0 -1
  79. package/columnMenu/GridColumnMenuColumnsChooser.d.ts +30 -0
  80. package/columnMenu/GridColumnMenuColumnsList.d.ts +34 -0
  81. package/columnMenu/GridColumnMenuFilter.d.ts +101 -0
  82. package/columnMenu/GridColumnMenuFilterCell.d.ts +29 -0
  83. package/columnMenu/GridColumnMenuFilterUI.d.ts +13 -0
  84. package/columnMenu/GridColumnMenuGroup.d.ts +61 -0
  85. package/columnMenu/GridColumnMenuGroup.mjs +3 -3
  86. package/columnMenu/GridColumnMenuItem.d.ts +48 -0
  87. package/columnMenu/GridColumnMenuItemContent.d.ts +22 -0
  88. package/columnMenu/GridColumnMenuItemGroup.d.ts +18 -0
  89. package/columnMenu/GridColumnMenuSort.d.ts +67 -0
  90. package/columnMenu/GridColumnMenuWrapper.d.ts +33 -0
  91. package/columnMenu/GridColumnMenuWrapper.mjs +5 -5
  92. package/columnMenu/adaptiveContent/GridActionSheetFooter.d.ts +26 -0
  93. package/columnMenu/adaptiveContent/GridAdaptiveCheckboxFilter.d.ts +27 -0
  94. package/columnMenu/adaptiveContent/GridAdaptiveCheckboxFilter.mjs +4 -4
  95. package/columnMenu/adaptiveContent/GridAdaptiveColumnChooser.d.ts +32 -0
  96. package/columnMenu/adaptiveContent/GridAdaptiveColumnChooser.mjs +3 -3
  97. package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.d.ts +12 -0
  98. package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.js +1 -1
  99. package/columnMenu/adaptiveContent/GridAdaptiveColumnMenu.mjs +4 -4
  100. package/columnMenu/adaptiveContent/GridAdaptiveFilterMenu.d.ts +27 -0
  101. package/columnMenu/adaptiveContent/GridAdaptiveFilterMenu.mjs +8 -8
  102. package/columnMenu/adaptiveContext/GridColumnMenuAdaptiveContext.d.ts +23 -0
  103. package/components/GridContainerElementContainer.d.ts +12 -0
  104. package/components/GridDragClue.d.ts +12 -0
  105. package/components/GridDraggableRowsContainer.d.ts +20 -0
  106. package/components/GridDropClue.d.ts +12 -0
  107. package/components/GridEditDialog.d.ts +22 -0
  108. package/components/GridEditDialog.mjs +1 -1
  109. package/components/GridElementContainer.d.ts +14 -0
  110. package/components/GridLoader.d.ts +17 -0
  111. package/components/PagerContainer.d.ts +12 -0
  112. package/components/VirtualScrollHeightContainer.d.ts +12 -0
  113. package/components/colGroup/GridColGroup.d.ts +12 -0
  114. package/components/icons/reorder-row-svg.d.ts +12 -0
  115. package/components/noRecords/GridNoRecords.d.ts +31 -0
  116. package/components/noRecords/GridNoRecordsContainer.d.ts +15 -0
  117. package/components/noRecords/GridNoRecordsContainer.mjs +1 -1
  118. package/components/table/GridTable.d.ts +12 -0
  119. package/components/table/GridTableBody.d.ts +12 -0
  120. package/components/table/GridTableScrollable.d.ts +12 -0
  121. package/components/utils.d.ts +21 -0
  122. package/constants/index.d.ts +15 -0
  123. package/constants/index.mjs +2 -2
  124. package/contextMenu/GridContextMenu.d.ts +205 -0
  125. package/contextMenu/GridContextMenu.mjs +19 -19
  126. package/contextMenu/enums.d.ts +36 -0
  127. package/dist/cdn/js/kendo-react-grid.js +1 -1
  128. package/drag/ColumnDraggable.d.ts +26 -0
  129. package/drag/ColumnResize.d.ts +47 -0
  130. package/drag/CommonDragLogic.d.ts +50 -0
  131. package/drag/GroupingIndicator.d.ts +26 -0
  132. package/drag/GroupingIndicator.js +1 -1
  133. package/drag/GroupingIndicator.mjs +20 -20
  134. package/filterCommon.d.ts +86 -0
  135. package/footer/Footer.d.ts +38 -0
  136. package/footer/Footer.js +1 -1
  137. package/footer/Footer.mjs +9 -9
  138. package/footer/FooterCell.d.ts +19 -0
  139. package/footer/FooterRow.d.ts +23 -0
  140. package/footer/client/FooterCellContainer.d.ts +12 -0
  141. package/header/FilterRow.d.ts +35 -0
  142. package/header/GridHeaderCell.d.ts +48 -0
  143. package/header/GridHeaderSelectionCell.d.ts +13 -0
  144. package/header/GroupPanel.d.ts +23 -0
  145. package/header/GroupPanel.js +1 -1
  146. package/header/GroupPanel.mjs +11 -11
  147. package/header/Header.d.ts +44 -0
  148. package/header/Header.js +1 -1
  149. package/header/Header.mjs +1 -1
  150. package/header/HeaderRow.d.ts +45 -0
  151. package/header/client/GridFilterCellContainer.d.ts +12 -0
  152. package/header/client/GridFilterCellElementContainer.d.ts +12 -0
  153. package/header/client/GridHeaderCellContainer.d.ts +12 -0
  154. package/header/client/GridHeaderCellElementContainer.d.ts +12 -0
  155. package/header/client/GridHeaderRowContainer.d.ts +16 -0
  156. package/header/client/GridHeaderRowReorderCell.d.ts +12 -0
  157. package/header/client/HeaderCellResizer.d.ts +11 -0
  158. package/header/client/HeaderRowDraggable.d.ts +11 -0
  159. package/index.d.mts +84 -5356
  160. package/index.d.ts +84 -5356
  161. package/interfaces/ColumnType.d.ts +13 -0
  162. package/interfaces/CompositeHighlightDescriptor.d.ts +29 -0
  163. package/interfaces/GridAIAssistantCommand.d.ts +110 -0
  164. package/interfaces/GridAICommands.d.ts +60 -0
  165. package/interfaces/GridCellProps.d.ts +112 -0
  166. package/interfaces/GridCellRenderModel.d.ts +15 -0
  167. package/interfaces/GridCellsSettings.d.ts +366 -0
  168. package/interfaces/GridColSpanProps.d.ts +21 -0
  169. package/interfaces/GridColumnChildrenProps.d.ts +18 -0
  170. package/interfaces/GridColumnMenuBaseProps.d.ts +21 -0
  171. package/interfaces/GridColumnMenuColumnProps.d.ts +32 -0
  172. package/interfaces/GridColumnMenuColumnsChooserBaseProps.d.ts +22 -0
  173. package/interfaces/GridColumnMenuFilterBaseProps.d.ts +31 -0
  174. package/interfaces/GridColumnMenuFilterUIProps.d.ts +38 -0
  175. package/interfaces/GridColumnMenuGroupBaseProps.d.ts +26 -0
  176. package/interfaces/GridColumnMenuProps.d.ts +24 -0
  177. package/interfaces/GridColumnMenuSortBaseProps.d.ts +27 -0
  178. package/interfaces/GridColumnProps.d.ts +230 -0
  179. package/interfaces/GridColumnState.d.ts +52 -0
  180. package/interfaces/GridDataType.d.ts +12 -0
  181. package/interfaces/GridDetailExpandableSettings.d.ts +11 -0
  182. package/interfaces/GridDetailRowProps.d.ts +20 -0
  183. package/interfaces/GridEditDialogProps.d.ts +30 -0
  184. package/interfaces/GridEditableSettings.d.ts +16 -0
  185. package/interfaces/GridFilterCellProps.d.ts +67 -0
  186. package/interfaces/GridFilterOperator.d.ts +13 -0
  187. package/interfaces/GridFilterOperators.d.ts +56 -0
  188. package/interfaces/GridFooterCellProps.d.ts +29 -0
  189. package/interfaces/GridGroupExpandableSettings.d.ts +22 -0
  190. package/interfaces/GridGroupableSettings.d.ts +25 -0
  191. package/interfaces/GridHeaderCellProps.d.ts +23 -0
  192. package/interfaces/GridHighlightDescriptor.d.ts +16 -0
  193. package/interfaces/GridNoRecordsProps.d.ts +16 -0
  194. package/interfaces/GridProps.d.ts +1083 -0
  195. package/interfaces/GridReorderDropDir.d.ts +11 -0
  196. package/interfaces/GridRowProps.d.ts +75 -0
  197. package/interfaces/GridRowReorderSettings.d.ts +25 -0
  198. package/interfaces/GridRowSpannableSettings.d.ts +21 -0
  199. package/interfaces/GridRowType.d.ts +16 -0
  200. package/interfaces/GridRowsSettings.d.ts +57 -0
  201. package/interfaces/GridSelectableSettings.d.ts +25 -0
  202. package/interfaces/GridSortSettings.d.ts +26 -0
  203. package/interfaces/GridStackedLayoutSettings.d.ts +60 -0
  204. package/interfaces/GridToolbarProps.d.ts +17 -0
  205. package/interfaces/VirtualScrollInterface.d.ts +29 -0
  206. package/interfaces/events.d.ts +357 -0
  207. package/interfaces/index.d.ts +15 -0
  208. package/messages/index.d.ts +365 -0
  209. package/messages/messagesMap.d.ts +14 -0
  210. package/package-metadata.d.ts +12 -0
  211. package/package-metadata.js +1 -1
  212. package/package-metadata.mjs +10 -16
  213. package/package.json +17 -17
  214. package/paging/GridPagerSettings.d.ts +89 -0
  215. package/paging/Page.d.ts +20 -0
  216. package/rows/GridDetailRow.d.ts +41 -0
  217. package/rows/GridDetailRowRenderer.d.ts +48 -0
  218. package/rows/GridRow.d.ts +13 -0
  219. package/rows/GridRowRenderer.d.ts +47 -0
  220. package/sortCommon.d.ts +20 -0
  221. package/stacked/GridStackedCell.d.ts +67 -0
  222. package/stacked/GridStackedDetailToggle.d.ts +20 -0
  223. package/stacked/GridStackedDetailToggle.mjs +2 -2
  224. package/stacked/GridStackedRow.d.ts +214 -0
  225. package/stacked/StackedModeComponents.d.ts +45 -0
  226. package/stacked/StackedModeRow.d.ts +46 -0
  227. package/toolbar-tools/GridToolbarAIAssistant.d.ts +246 -0
  228. package/toolbar-tools/GridToolbarCheckboxFilter.d.ts +89 -0
  229. package/toolbar-tools/GridToolbarCheckboxFilter.js +1 -1
  230. package/toolbar-tools/GridToolbarCheckboxFilter.mjs +0 -1
  231. package/toolbar-tools/GridToolbarColumnsChooser.d.ts +55 -0
  232. package/toolbar-tools/GridToolbarFilter.d.ts +72 -0
  233. package/toolbar-tools/GridToolbarFilter.mjs +5 -5
  234. package/toolbar-tools/GridToolbarGroup.d.ts +55 -0
  235. package/toolbar-tools/GridToolbarSeparator.d.ts +21 -0
  236. package/toolbar-tools/GridToolbarSort.d.ts +55 -0
  237. package/toolbar-tools/GridToolbarSpacer.d.ts +21 -0
  238. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarCheckboxFilter.d.ts +35 -0
  239. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarCheckboxFilter.mjs +3 -3
  240. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarColumnChooser.d.ts +33 -0
  241. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarColumnChooser.mjs +3 -3
  242. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarFilter.d.ts +34 -0
  243. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarFilter.mjs +3 -3
  244. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarGroup.d.ts +26 -0
  245. package/toolbar-tools/adaptiveContent/GridAdaptiveToolbarSort.d.ts +27 -0
  246. package/toolbar-tools/adaptiveContext/GridToolbarAdaptiveContext.d.ts +23 -0
  247. package/toolbar-tools/ai-tool/GridAIPrompt.d.ts +160 -0
  248. package/utils/GridContext.d.ts +12 -0
  249. package/utils/_clientModule.d.ts +11 -0
  250. package/utils/_serverModule.d.ts +12 -0
  251. package/utils/handleAIResponse.d.ts +221 -0
  252. package/utils/index.d.ts +185 -0
  253. package/utils/index.js +1 -1
  254. package/utils/index.mjs +2 -2
  255. package/utils/premium.d.ts +31 -0
  256. package/utils/virtualColumns.d.ts +18 -0
@@ -0,0 +1,1083 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2026 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ import { ComponentType } from 'react';
9
+ import { DataResult, SortDescriptor, CompositeFilterDescriptor, GroupDescriptor } from '@progress/kendo-data-query';
10
+ import { GridGroupableSettings } from './GridGroupableSettings.js';
11
+ import { GridSortChangeEvent, GridFilterChangeEvent, GridPageChangeEvent, GridSelectionChangeEvent, GridHeaderSelectionChangeEvent, GridRowClickEvent, GridItemChangeEvent, GridDataStateChangeEvent, GridColumnResizeEvent, GridColumnReorderEvent, GridGroupChangeEvent, GridEvent, GridRowDoubleClickEvent, GridNavigationActionEvent, GridKeyDownEvent, GridContextMenuEvent, GridContextMenuItemClickEvent, GridEditChangeEvent, GridDetailExpandChangeEvent, GridGroupExpandChangeEvent, GridRowReorderEvent, GridSearchChangeEvent, GridColumnsStateChangeEvent, GridHighlightChangeEvent } from './events.js';
12
+ import { ScrollMode } from '../ScrollMode.js';
13
+ import { GridSortSettings } from './GridSortSettings.js';
14
+ import { GridPagerSettings } from '../paging/GridPagerSettings.js';
15
+ import { GridDetailRowProps } from '../interfaces/GridDetailRowProps.js';
16
+ import { GridColumnMenuProps } from '../interfaces/GridColumnMenuProps.js';
17
+ import { GridFilterOperators } from './GridFilterOperators.js';
18
+ import { GridSelectableSettings } from './GridSelectableSettings.js';
19
+ import { ClipboardSettings, EditDescriptor, PagerProps, NavigatableSettings, SelectDescriptor, GroupExpandDescriptor, DetailExpandDescriptor, SearchField, GridClipboardEvent } from '@progress/kendo-react-data-tools';
20
+ import { GridClassStructure, KendoReactComponentBaseProps } from '@progress/kendo-react-common';
21
+ import { GridCellsSettings } from './GridCellsSettings.js';
22
+ import { SVGIcon } from '@progress/kendo-svg-icons';
23
+ import { IntlService, LocalizationService } from '@progress/kendo-react-intl';
24
+ import { GridCellBaseOptions, GridContextMenuOptions } from '../contextMenu/GridContextMenu.js';
25
+ import { GridEditableSettings } from './GridEditableSettings.js';
26
+ import { GridRowReorderSettings } from './GridRowReorderSettings.js';
27
+ import { GridRowSpannableSettings } from './GridRowSpannableSettings.js';
28
+ import { GridRowsSettings } from './GridRowsSettings.js';
29
+ import { GridColumnState } from './GridColumnState.js';
30
+ import { GridEditDialogProps } from './GridEditDialogProps.js';
31
+ import { GridHighlightDescriptor } from './GridHighlightDescriptor.js';
32
+ import { GridDataLayoutMode, GridStackedLayoutSettings } from './GridStackedLayoutSettings.js';
33
+ /**
34
+ * Represents the props of the [KendoReact Grid component](https://www.telerik.com/kendo-react-ui/components/grid).
35
+ */
36
+ export interface GridProps extends KendoReactComponentBaseProps {
37
+ /**
38
+ * Enables data-processing inside the GridComponent based on its state.
39
+ * Provides an easy, built-in way to handle data operations like sorting, filtering, grouping, and paging.
40
+ *
41
+ * @default false
42
+ *
43
+ * @example
44
+ * ```jsx
45
+ * <Grid
46
+ * autoProcessData={{
47
+ * filter: true,
48
+ * search: true,
49
+ * sort: true,
50
+ * group: true,
51
+ * page: true
52
+ * }}
53
+ * />
54
+ * ```
55
+ */
56
+ autoProcessData?: boolean | {
57
+ filter?: boolean;
58
+ search?: boolean;
59
+ sort?: boolean;
60
+ group?: boolean;
61
+ page?: boolean;
62
+ };
63
+ /**
64
+ * Sets the Grid row key prop to the value of this field in the dataItem.
65
+ * If not set, the dataItem index will be used for the row key, which might lead to rows not updating during paging or scrolling.
66
+ *
67
+ * @example
68
+ * ```jsx
69
+ * <Grid dataItemKey="ID" />
70
+ * ```
71
+ */
72
+ dataItemKey?: string;
73
+ /**
74
+ * Sets a class for the Grid DOM element.
75
+ *
76
+ * @example
77
+ * ```jsx
78
+ * <Grid className="custom-grid-class" />
79
+ * ```
80
+ */
81
+ className?: string;
82
+ /**
83
+ * Defines a set of custom cell components that the Grid will render instead of the default cells.
84
+ *
85
+ * @example
86
+ * ```jsx
87
+ * import { GridCustomCellProps } from '@progress/kendo-react-grid';
88
+ *
89
+ * const CustomCell = (props: GridCustomCellProps) => (
90
+ * <td {...props.tdProps}>
91
+ * {props.dataItem[props.field]}
92
+ * </td>
93
+ * );
94
+ *
95
+ * <Grid
96
+ * cells={{
97
+ * data: CustomCell
98
+ * }}
99
+ * />
100
+ * ```
101
+ */
102
+ cells?: GridCellsSettings;
103
+ /**
104
+ *
105
+ * @example
106
+ * ```jsx
107
+ * import { GridCustomRowProps } from '@progress/kendo-react-grid';
108
+ *
109
+ * const CustomRow = (props: GridCustomRowProps) => (
110
+ * <tr {...props.trProps} style={{ backgroundColor: props.dataItem?.highlight ? 'yellow' : 'white' }}>
111
+ * {props.children}
112
+ * </tr>
113
+ * );
114
+ *
115
+ * <Grid
116
+ * rows={{
117
+ * data: CustomRow
118
+ * }}
119
+ * />
120
+ * ```
121
+ */
122
+ rows?: GridRowsSettings;
123
+ /**
124
+ * Sets the data of the Grid ([see example](https://www.telerik.com/kendo-react-ui/components/grid/paging)). If you use paging, the `data` option has to contain only the items for the current page. It takes values of type null, any or [DataResult](https://www.telerik.com/kendo-react-ui/components/datatools/api/dataresult)
125
+ * Accepts values of type `null`, `any[]`, or `DataResult`.
126
+ *
127
+ * @example
128
+ * ```jsx
129
+ * <Grid data={data} />
130
+ * ```
131
+ */
132
+ data?: any[] | DataResult | null;
133
+ /**
134
+ * Enables sorting for the columns with their `field` option set.
135
+ * ([see example](https://www.telerik.com/kendo-react-ui/components/grid/sorting))
136
+ *
137
+ * @example
138
+ * ```jsx
139
+ * <Grid sortable={true} />
140
+ * ```
141
+ */
142
+ sortable?: GridSortSettings;
143
+ /**
144
+ * Enables clipboard copy, cut, and paste manipulations. Accepts `ClipboardSettings` or a boolean value.
145
+ *
146
+ * @example
147
+ * ```jsx
148
+ * <Grid clipboard={true} />
149
+ * ```
150
+ */
151
+ clipboard?: ClipboardSettings | boolean;
152
+ /**
153
+ * Fires when clipboard support is enabled, and one of the actions (e.g., copy) is triggered.
154
+ * Accepts a `GridClipboardEvent` object.
155
+ *
156
+ * @example
157
+ * ```jsx
158
+ * <Grid
159
+ * clipboard={true}
160
+ * onClipboard={(event) => console.log('Clipboard action:', event.action)}
161
+ * />
162
+ * ```
163
+ */
164
+ onClipboard?: (event: GridClipboardEvent) => void;
165
+ /**
166
+ * Fires when the sorting of the Grid is changed. You must handle the event and sort the data.
167
+ * ([see example](https://www.telerik.com/kendo-react-ui/components/grid/sorting))
168
+ *
169
+ * @example
170
+ * ```jsx
171
+ * <Grid
172
+ * sortable={true}
173
+ * onSortChange={(event) => console.log('Sort changed:', event.sort)}
174
+ * />
175
+ * ```
176
+ */
177
+ onSortChange?: (event: GridSortChangeEvent) => void;
178
+ /**
179
+ * The ([descriptors](https://www.telerik.com/kendo-react-ui/components/datatools/api/sortdescriptor)) by which the data is sorted. Applies the sorting styles and buttons to the affected columns.
180
+ *
181
+ * @example
182
+ * ```jsx
183
+ * <Grid sort={[{ field: 'name', dir: 'asc' }]} />
184
+ * ```
185
+ */
186
+ sort?: SortDescriptor[];
187
+ /**
188
+ * The default `sort` state applied to the Grid when using uncontrolled mode.
189
+ * ([see example](https://www.telerik.com/kendo-react-ui/components/grid/sorting))
190
+ *
191
+ * @example
192
+ * ```jsx
193
+ * <Grid defaultSort={[{ field: 'name', dir: 'asc' }]} />
194
+ * ```
195
+ */
196
+ defaultSort?: SortDescriptor[];
197
+ /**
198
+ * Enables filtering for the columns with their `field` option set.
199
+ *
200
+ * @example
201
+ * ```jsx
202
+ * <Grid filterable={true} />
203
+ * ```
204
+ */
205
+ filterable?: boolean;
206
+ /**
207
+ * The [descriptor](https://www.telerik.com/kendo-react-ui/components/datatools/api/compositefilterdescriptor) by which
208
+ * the data is filtered ([more information and examples](https://www.telerik.com/kendo-react-ui/components/grid/filtering)). This affects
209
+ * the values and buttons in the `FilterRow` of the Grid.
210
+ *
211
+ * @example
212
+ * ```jsx
213
+ * <Grid filter={{ logic: 'and', filters: [{ field: 'name', operator: 'contains', value: 'John' }] }} />
214
+ * ```
215
+ */
216
+ filter?: CompositeFilterDescriptor;
217
+ /**
218
+ * The default `filter` state applied to the Grid when using uncontrolled mode.
219
+ *
220
+ * @example
221
+ * ```jsx
222
+ * <Grid defaultFilter={{ logic: 'and', filters: [{ field: 'name', operator: 'contains', value: 'John' }] }} />
223
+ * ```
224
+ */
225
+ defaultFilter?: CompositeFilterDescriptor;
226
+ /**
227
+ * The filter operators for the Grid filters.
228
+ *
229
+ * @example
230
+ * ```jsx
231
+ * <Grid filterOperators={{ text: [{ text: 'grid.filterContainsOperator', operator: 'contains' }] }} />
232
+ * ```
233
+ */
234
+ filterOperators?: GridFilterOperators;
235
+ /**
236
+ * Fires when the Grid filter is modified through the UI. You must handle the event and filter the data.
237
+ *
238
+ * @example
239
+ * ```jsx
240
+ * <Grid
241
+ * filterable={true}
242
+ * onFilterChange={(event) => console.log('Filter changed:', event.filter)}
243
+ * />
244
+ * ```
245
+ */
246
+ onFilterChange?: (event: GridFilterChangeEvent) => void;
247
+ /**
248
+ * Fires when the Grid highlight is modified. You must handle the event and filter the data.
249
+ *
250
+ * @example
251
+ * ```jsx
252
+ * <Grid
253
+ * onHighlightChange={(event) => console.log('Highlight changed:', event.highlight)}
254
+ * />
255
+ * ```
256
+ */
257
+ onHighlightChange?: (event: GridHighlightChangeEvent) => void;
258
+ /**
259
+ * Specifies whether the loader of the Grid will be displayed.
260
+ *
261
+ * @example
262
+ * ```jsx
263
+ * <Grid
264
+ * showLoader={true}
265
+ * loader={<div>Loading...</div>}
266
+ * />
267
+ * ```
268
+ */
269
+ showLoader?: boolean;
270
+ /**
271
+ * A custom component that the Grid will render instead of the built-in loader.
272
+ *
273
+ * @example
274
+ * ```jsx
275
+ * <Grid loader={<div>Custom Loader...</div>} />
276
+ * ```
277
+ */
278
+ loader?: React.ReactNode;
279
+ /**
280
+ * Fires when the user reorders a row.
281
+ *
282
+ * @example
283
+ * ```jsx
284
+ * <Grid onRowReorder={(event) => console.log('Row reordered:', event)} />
285
+ * ```
286
+ */
287
+ onRowReorder?: (event: GridRowReorderEvent) => void;
288
+ /**
289
+ * Specifies a React element that will be cloned and rendered inside the column menu of the Grid.
290
+ *
291
+ * @example
292
+ * ```jsx
293
+ * <Grid columnMenu={() => <div>Custom Column Menu</div>} />
294
+ * ```
295
+ */
296
+ columnMenu?: null | ComponentType<GridColumnMenuProps>;
297
+ /**
298
+ * Specifies the context menu settings applied to the Grid.
299
+ *
300
+ * @example
301
+ * ```jsx
302
+ * <Grid contextMenu={true} />
303
+ * ```
304
+ */
305
+ contextMenu?: boolean | GridContextMenuOptions | ((options: GridCellBaseOptions) => boolean | GridContextMenuOptions);
306
+ /**
307
+ * Globally overrides the default (three vertical dots) column menu icon for the whole Grid. If set, the prop can be overridden on column level
308
+ * using the ([menuIcon](https://www.telerik.com/kendo-react-ui/components/grid/api/gridcolumnprops#toc-menuicon)) property.
309
+ */
310
+ columnMenuIcon?: SVGIcon;
311
+ /**
312
+ * Providing different rendering of the popup element based on the screen dimensions.
313
+ */
314
+ adaptive?: boolean;
315
+ /**
316
+ * Specifies the text that is rendered as title in the adaptive popup.
317
+ */
318
+ adaptiveTitle?: string;
319
+ /**
320
+ * The [descriptors](https://www.telerik.com/kendo-react-ui/components/datatools/api/groupdescriptor)[] by which the data will be grouped
321
+ * ([more information and examples](https://www.telerik.com/kendo-react-ui/components/grid/grouping)).
322
+ *
323
+ * @example
324
+ * ```jsx
325
+ * <Grid group={[{ field: 'CategoryName' }]} />
326
+ * ```
327
+ */
328
+ group?: GroupDescriptor[];
329
+ /**
330
+ * The default `group` state applied to the Grid when using uncontrolled mode.
331
+ *
332
+ * @example
333
+ * ```jsx
334
+ * <Grid defaultGroup={[{ field: 'CategoryName' }]} />
335
+ * ```
336
+ */
337
+ defaultGroup?: GroupDescriptor[];
338
+ /**
339
+ * Fires when the grouping of the Grid is changed. You have to handle the event yourself and group the data
340
+ * ([more information and examples](https://www.telerik.com/kendo-react-ui/components/grid/grouping)).
341
+ *
342
+ * @example
343
+ * ```jsx
344
+ * <Grid onGroupChange={(event) => console.log('Group changed:', event.group)} />
345
+ * ```
346
+ */
347
+ onGroupChange?: (event: GridGroupChangeEvent) => void;
348
+ /**
349
+ * Configures the pager of the Grid. Accepts `GridPagerSettings` or a boolean value.([see example](https://www.telerik.com/kendo-react-ui/components/grid/paging))
350
+ *
351
+ * The available options are:
352
+ * - `buttonCount: Number`&mdash;Sets the maximum numeric buttons count before the buttons are collapsed.
353
+ * - `info: Boolean`&mdash;Toggles the information about the current page and the total number of records.
354
+ * - `type: PagerType`&mdash;Accepts the `numeric` (buttons with numbers) and `input` (input for typing the page number) values.
355
+ * - `pageSizes: Boolean` or `Array<number>`&mdash;Shows a menu for selecting the page size.
356
+ * - `pageSizeValue: String or Number`&mdash;Sets the selected value of the page size Dropdownlist. It is useful when the selected value could also be a string not only a number.
357
+ * - `previousNext: Boolean`&mdash;Toggles the **Previous** and **Next** buttons.
358
+ * - `navigatable: Boolean`&mdash;Defines if the pager will be navigatable.
359
+ * - `responsive: Boolean`&mdash;Defines if the pager will be responsive. If true, hides the tools that do not fit to the available space.
360
+ * - `adaptive: Boolean`&mdash;Providing different rendering of the page sizes select element based on the screen dimensions.
361
+ * - `adaptiveTitle: String`&mdash;Specifies the text that is rendered as title in the adaptive page sizes select element.
362
+ *
363
+ * @example
364
+ * ```jsx
365
+ * <Grid pageable={{ pageSizes: true }} />
366
+ * ```
367
+ */
368
+ pageable?: GridPagerSettings | boolean;
369
+ /**
370
+ * Defines the page size used by the Grid pager. Required for paging functionality.
371
+ *
372
+ * @example
373
+ * ```jsx
374
+ * <Grid pageSize={10} />
375
+ * ```
376
+ */
377
+ pageSize?: number;
378
+ /**
379
+ * The pager component that the Grid will render instead of the built-in pager.
380
+ * It takes values of type null and ComponentType&lt;[PagerProps](https://www.telerik.com/kendo-react-ui/components/datatools/api/pagerprops)&gt
381
+ *
382
+ * @example
383
+ * ```jsx
384
+ * <Grid pager={() => <div>Custom Pager</div>} />
385
+ * ```
386
+ */
387
+ pager?: null | ComponentType<PagerProps>;
388
+ /**
389
+ * When set to true the Grid pdf export will be enabled.
390
+ * If set to an object, the Grid will use the provided settings to export the PDF.
391
+ *
392
+ * @example
393
+ * ```jsx
394
+ * <Grid pdf={true} />
395
+ * ```
396
+ */
397
+ pdf?: boolean | GridProps;
398
+ /**
399
+ * Fires when the user clicks the PDF export button.
400
+ *
401
+ * @example
402
+ * ```jsx
403
+ *
404
+ * <Grid onPdfExport={async (event) => {
405
+ * const pdf = await import('@progress/kendo-react-pdf');
406
+ * await pdf.saveGridPDF(event.target);
407
+ * }} />
408
+ * ```
409
+ */
410
+ onPdfExport?: (event: {
411
+ target: HTMLDivElement;
412
+ }) => Promise<void>;
413
+ /**
414
+ * Alias for the `pageSize` property. If `take` is set, `pageSize` will be ignored.
415
+ *
416
+ * @example
417
+ * ```jsx
418
+ * <Grid take={20} />
419
+ * ```
420
+ */
421
+ take?: number;
422
+ /**
423
+ * The default `take` state applied to the Grid when using uncontrolled mode.
424
+ *
425
+ * @example
426
+ * ```jsx
427
+ * <Grid defaultTake={20} />
428
+ * ```
429
+ */
430
+ defaultTake?: number;
431
+ /**
432
+ * Fires when the page of the Grid is changed.
433
+ *
434
+ * @example
435
+ * ```jsx
436
+ * <Grid onPageChange={(event) => console.log('Page changed:', event.page)} />
437
+ * ```
438
+ */
439
+ onPageChange?: (event: GridPageChangeEvent) => void;
440
+ /**
441
+ * Defines the total number of data items in all pages. Required for paging functionality.
442
+ *
443
+ * @example
444
+ * ```jsx
445
+ * <Grid total={100} />
446
+ * ```
447
+ */
448
+ total?: number;
449
+ /**
450
+ * Defines the number of records that will be skipped by the pager ([see example](https://www.telerik.com/kendo-react-ui/components/grid/paging)). Required by the paging functionality.
451
+ *
452
+ * @example
453
+ * ```jsx
454
+ * <Grid skip={10} />
455
+ * ```
456
+ */
457
+ skip?: number;
458
+ /**
459
+ * The default `skip` state applied to the Grid when using uncontrolled mode.
460
+ *
461
+ * @example
462
+ * ```jsx
463
+ * <Grid defaultSkip={10} />
464
+ * ```
465
+ */
466
+ defaultSkip?: number;
467
+ /**
468
+ * Determines if the scroll position will be updated after a data change.
469
+ * If set to `true`, the scroll will remain in the same position.
470
+ */
471
+ fixedScroll?: boolean;
472
+ /**
473
+ * The descriptor by which the detail row is expanded.
474
+ *
475
+ * @example
476
+ * ```jsx
477
+ * <Grid detailExpand={{ ['item-data-key-id']: true }} />
478
+ * ```
479
+ */
480
+ detailExpand?: DetailExpandDescriptor;
481
+ /**
482
+ * Sets a custom edit dialog component that the Grid will render instead of the built-in edit dialog.
483
+ */
484
+ editDialog?: (props: GridEditDialogProps) => React.ReactNode;
485
+ /**
486
+ * The default `detailExpand` state applied to the Grid when using uncontrolled mode.
487
+ *
488
+ * @example
489
+ * ```jsx
490
+ * <Grid defaultDetailExpand={{ ['item-data-key-id']: true }} />
491
+ * ```
492
+ */
493
+ defaultDetailExpand?: DetailExpandDescriptor;
494
+ /**
495
+ * Fires when the user expands or collapses a detail row.
496
+ *
497
+ * @example
498
+ * ```jsx
499
+ * <Grid onDetailExpandChange={(event) => console.log('Detail expand changed:', event)} />
500
+ * ```
501
+ */
502
+ onDetailExpandChange?: (event: GridDetailExpandChangeEvent) => void;
503
+ /**
504
+ * The descriptor by which the group is expanded.
505
+ *
506
+ * @example
507
+ * ```jsx
508
+ * <Grid groupExpand={[{ field: 'CategoryName', expanded: true }]} />
509
+ * ```
510
+ */
511
+ groupExpand?: GroupExpandDescriptor[];
512
+ /**
513
+ * The default `groupExpand` state applied to the Grid when using uncontrolled mode.
514
+ *
515
+ * @example
516
+ * ```jsx
517
+ * <Grid defaultGroupExpand={[{ field: 'CategoryName', expanded: true }]} />
518
+ * ```
519
+ */
520
+ defaultGroupExpand?: GroupExpandDescriptor[];
521
+ /**
522
+ * Fires when the user expands or collapses a group.
523
+ *
524
+ * @example
525
+ * ```jsx
526
+ * <Grid onGroupExpandChange={(event) => console.log('Group expand changed:', event)} />
527
+ * ```
528
+ */
529
+ onGroupExpandChange?: (event: GridGroupExpandChangeEvent) => void;
530
+ /**
531
+ * The [descriptor](https://www.telerik.com/kendo-react-ui/components/datatools/api/selectdescriptor) by which the selected state of an item is defined.
532
+ * Passing a boolean value will select the whole row, while passing an array of strings will select individual.
533
+ *
534
+ * @example
535
+ * ```jsx
536
+ * <Grid select={{ ['item-data-key-id']: true }} />
537
+ * ```
538
+ */
539
+ select?: SelectDescriptor;
540
+ /**
541
+ * The descriptor by which the highlight state of an item is defined.
542
+ * Passing a boolean value will highlight the whole row, while passing an object will highlight individual cells by their field.
543
+ *
544
+ * @example
545
+ * ```jsx
546
+ * <Grid highlight={{ ['item-data-key-id']: true }} />
547
+ * <Grid highlight={{ ['item-data-key-id']: [2, 3] }} />
548
+ * ```
549
+ */
550
+ highlight?: GridHighlightDescriptor;
551
+ /**
552
+ * The default `select` state applied to the Grid when using uncontrolled mode.
553
+ *
554
+ * @example
555
+ * ```jsx
556
+ * <Grid defaultSelect={{ ['item-data-key-id']: true }} />
557
+ * ```
558
+ */
559
+ defaultSelect?: SelectDescriptor;
560
+ /**
561
+ * The Grid selectable settings.
562
+ *
563
+ * @example
564
+ * ```jsx
565
+ * <Grid selectable={{ enabled: true, mode: 'single' }} />
566
+ * ```
567
+ */
568
+ selectable?: boolean | GridSelectableSettings;
569
+ /**
570
+ * Fires when the user tries to select or deselect a row or cell.
571
+ *
572
+ * @example
573
+ * ```jsx
574
+ * <Grid onSelectionChange={(event) => console.log('Selection changed:', event)} />
575
+ * ```
576
+ */
577
+ onSelectionChange?: (event: GridSelectionChangeEvent) => void;
578
+ /**
579
+ * Fires when the user clicks the checkbox of a column header whose type is set to `checkbox`.
580
+ *
581
+ * @example
582
+ * ```jsx
583
+ * <Grid onHeaderSelectionChange={(event) => console.log('Header selection changed:', event)} />
584
+ * ```
585
+ */
586
+ onHeaderSelectionChange?: (event: GridHeaderSelectionChangeEvent) => void;
587
+ /**
588
+ * Fires when the user clicks a row.
589
+ *
590
+ * @example
591
+ * ```jsx
592
+ * <Grid onRowClick={(event) => console.log('Row clicked:', event)} />
593
+ * ```
594
+ */
595
+ onRowClick?: (event: GridRowClickEvent) => void;
596
+ /**
597
+ * Fires when the user double clicks a row.
598
+ *
599
+ * @example
600
+ * ```jsx
601
+ * <Grid onRowDoubleClick={(event) => console.log('Row double clicked:', event)} />
602
+ * ```
603
+ */
604
+ onRowDoubleClick?: (event: GridRowDoubleClickEvent) => void;
605
+ /**
606
+ * Fires when the user changes the values of the item.
607
+ *
608
+ * @example
609
+ * ```jsx
610
+ * <Grid onItemChange={(event) => console.log('Item changed:', event)} />
611
+ * ```
612
+ */
613
+ onItemChange?: (event: GridItemChangeEvent) => void;
614
+ /**
615
+ * The descriptor by which the in-edit mode of an item is defined.
616
+ *
617
+ * @example
618
+ * ```jsx
619
+ * <Grid edit={{ ['item-data-key-id']: true }} />
620
+ * ```
621
+ */
622
+ edit?: EditDescriptor;
623
+ /**
624
+ * The default `edit` state applied to the Grid when using uncontrolled mode.
625
+ *
626
+ * @example
627
+ * ```jsx
628
+ * <Grid defaultEdit={{ ['item-data-key-id']: true }} />
629
+ * ```
630
+ */
631
+ defaultEdit?: EditDescriptor;
632
+ /**
633
+ * The Grid editable settings.
634
+ *
635
+ * @example
636
+ * ```jsx
637
+ * <Grid editable={{ enabled: true, mode: 'inline' }} />
638
+ * ```
639
+ */
640
+ editable?: boolean | GridEditableSettings;
641
+ /**
642
+ * Fires when the user enters or exits an in-edit mode of a row or cell.
643
+ *
644
+ * @example
645
+ * ```jsx
646
+ * <Grid onEditChange={(event) => console.log('Edit changed:', event)} />
647
+ * ```
648
+ */
649
+ onEditChange?: (event: GridEditChangeEvent) => void;
650
+ /**
651
+ * Defines the scroll mode that is used by the Grid ([see example](https://www.telerik.com/kendo-react-ui/components/grid/scroll-modes)).
652
+ *
653
+ * The available options are:
654
+ * - `none`&mdash;Renders no scrollbar.
655
+ * - `scrollable`&mdash;This is the default scroll mode. It requires the setting of the `height` option.
656
+ * - `virtual`&mdash;Displays no pager and renders a portion of the data (optimized rendering) while the user is scrolling the content.
657
+ *
658
+ * @example
659
+ * ```jsx
660
+ * <Grid scrollable="virtual" />
661
+ * ```
662
+ */
663
+ scrollable?: ScrollMode;
664
+ /**
665
+ * Defines the row height and forces an equal height to all rows ([see example](https://www.telerik.com/kendo-react-ui/components/grid/scroll-modes)).
666
+ *
667
+ * @example
668
+ * ```jsx
669
+ * <Grid rowHeight={50} />
670
+ * ```
671
+ */
672
+ rowHeight?: number;
673
+ /**
674
+ * Defines the detail row height and forces an equal height to all detail rows.
675
+ *
676
+ * @example
677
+ * ```jsx
678
+ * <Grid detailRowHeight={100} />
679
+ * ```
680
+ */
681
+ detailRowHeight?: number;
682
+ /**
683
+ * Specifies a React element that will be cloned and rendered inside the detail rows of the currently expanded items ([see example](https://www.telerik.com/kendo-react-ui/components/grid/hierarchy)).
684
+ *
685
+ * @example
686
+ * ```jsx
687
+ * <Grid detail={()=>(<div>Detail Content</div>)} />
688
+ * ```
689
+ */
690
+ detail?: null | ComponentType<GridDetailRowProps>;
691
+ /**
692
+ * The descriptor by which the data is searched. Its first FilterDescriptor populates the GridSearchBox.
693
+ *
694
+ * @example
695
+ * ```jsx
696
+ * <Grid search={{ logic: 'and', filters: [{ field: 'name', operator: 'contains', value: 'test' }] }} />
697
+ * ```
698
+ */
699
+ search?: CompositeFilterDescriptor;
700
+ /**
701
+ * The descriptor by which the data is searched by default. Its first FilterDescriptor populates the GridSearchBox.
702
+ *
703
+ * @example
704
+ * ```jsx
705
+ * <Grid defaultSearch={{ logic: 'or', filters: [{ field: 'category', operator: 'eq', value: 'electronics' }] }} />
706
+ * ```
707
+ */
708
+ defaultSearch?: CompositeFilterDescriptor;
709
+ /**
710
+ * Defines the fields of the data that are filtered by the GridSearchBox.
711
+ *
712
+ * @example
713
+ * ```jsx
714
+ * <Grid searchFields={['name', 'category']} />
715
+ * ```
716
+ */
717
+ searchFields?: (string | SearchField)[];
718
+ /**
719
+ * Fires when the search value of the GridSearchBox is changed.
720
+ *
721
+ * @example
722
+ * ```jsx
723
+ * <Grid onSearchChange={(event) => console.log('Search changed:', event)} />
724
+ * ```
725
+ */
726
+ onSearchChange?: (event: GridSearchChangeEvent) => void;
727
+ /**
728
+ * Represents the `style` HTML attribute.
729
+ *
730
+ * @example
731
+ * ```jsx
732
+ * <Grid style={{ backgroundColor: 'lightblue' }} />
733
+ * ```
734
+ */
735
+ style?: React.CSSProperties;
736
+ /**
737
+ * Fires when the data state of the Grid is changed ([more information](https://www.telerik.com/kendo-react-ui/components/grid/data-operations/local-operations) and [example](https://www.telerik.com/kendo-react-ui/components/grid/data-operations/odata-server-operations)).
738
+ *
739
+ * @example
740
+ * ```jsx
741
+ * <Grid onDataStateChange={(event) => console.log('Data state changed:', event)} />
742
+ * ```
743
+ */
744
+ onDataStateChange?: (event: GridDataStateChangeEvent) => void;
745
+ /**
746
+ * If set to `true`, the user can resize columns by dragging the edges (resize handles) of their header cells ([see example](https://www.telerik.com/kendo-react-ui/components/grid/columns/resizing)).
747
+ *
748
+ * @example
749
+ * ```jsx
750
+ * <Grid resizable={true} />
751
+ * ```
752
+ */
753
+ resizable?: boolean;
754
+ /**
755
+ * If set to `true`, the user can reorder columns by dragging their header cells ([see example](https://www.telerik.com/kendo-react-ui/components/grid/columns/reordering)).
756
+ *
757
+ * @example
758
+ * ```jsx
759
+ * <Grid reorderable={true} />
760
+ * ```
761
+ */
762
+ reorderable?: boolean;
763
+ /**
764
+ * Defines the row reorder settings.
765
+ *
766
+ * @example
767
+ * ```jsx
768
+ * <Grid rowReorderable={true} />
769
+ * ```
770
+ */
771
+ rowReorderable?: boolean | GridRowReorderSettings;
772
+ /**
773
+ * Determines if grouping by dragging and dropping the column headers is allowed ([more information and examples](https://www.telerik.com/kendo-react-ui/components/grid/grouping)).
774
+ *
775
+ * @example
776
+ * ```jsx
777
+ * <Grid groupable={true} />
778
+ * ```
779
+ */
780
+ groupable?: GridGroupableSettings | boolean;
781
+ /**
782
+ * Fires when a column is resized. Only fired when the Grid is run as a client component.
783
+ *
784
+ * @example
785
+ * ```jsx
786
+ * <Grid onColumnResize={(event) => console.log('Column resized:', event)} />
787
+ * ```
788
+ */
789
+ onColumnResize?: (event: GridColumnResizeEvent) => void;
790
+ /**
791
+ * Fires when the columns are reordered.
792
+ *
793
+ * @example
794
+ * ```jsx
795
+ * <Grid onColumnReorder={(event) => console.log('Column reordered:', event)} />
796
+ * ```
797
+ */
798
+ onColumnReorder?: (event: GridColumnReorderEvent) => void;
799
+ /**
800
+ * Fires when Grid is scrolled. Only fired when the Grid is run as a client component.
801
+ *
802
+ * @example
803
+ * ```jsx
804
+ * <Grid onScroll={(event) => console.log('Grid scrolled:', event)} />
805
+ * ```
806
+ */
807
+ onScroll?: (event: GridEvent) => void;
808
+ /**
809
+ * Enables virtualization of the columns. If virtualization is enabled, the columns outside the view are not rendered.
810
+ *
811
+ * @example
812
+ * ```jsx
813
+ * <Grid columnVirtualization={true} />
814
+ * ```
815
+ */
816
+ columnVirtualization?: boolean;
817
+ /**
818
+ * If set to `true`, the user can use dedicated shortcuts to interact with the Grid.
819
+ * By default, navigation is disabled and the Grid content is accessible in the normal tab sequence.
820
+ *
821
+ * @example
822
+ * ```jsx
823
+ * <Grid navigatable={true} />
824
+ * ```
825
+ */
826
+ navigatable?: boolean | NavigatableSettings;
827
+ /**
828
+ * Fires when Grid keyboard navigation position is changed. Only fired when the Grid is run as a client component.
829
+ *
830
+ * @example
831
+ * ```jsx
832
+ * <Grid onNavigationAction={(event) => console.log('Navigation action:', event)} />
833
+ * ```
834
+ */
835
+ onNavigationAction?: (event: GridNavigationActionEvent) => void;
836
+ /**
837
+ * Fires when the user press keyboard key. Only fired when the Grid is run as a client component.
838
+ *
839
+ * @example
840
+ * ```jsx
841
+ * <Grid onKeyDown={(event) => console.log('Key pressed:', event)} />
842
+ * ```
843
+ */
844
+ onKeyDown?: (event: GridKeyDownEvent) => void;
845
+ /**
846
+ * Defines if the group descriptor columns are locked (frozen or sticky).
847
+ * Locked columns are the columns that are visible at all times while the user scrolls the component horizontally.
848
+ * Defaults to `false`.
849
+ *
850
+ * @example
851
+ * ```jsx
852
+ * <Grid lockGroups={true} />
853
+ * ```
854
+ */
855
+ lockGroups?: boolean;
856
+ /**
857
+ * Configures the `size` of the Grid.
858
+ *
859
+ * The available options are:
860
+ * - small
861
+ * - medium
862
+ *
863
+ * @default undefined (theme-controlled)
864
+ *
865
+ * @example
866
+ * ```jsx
867
+ * <Grid size="small" />
868
+ * ```
869
+ */
870
+ size?: 'small' | 'medium';
871
+ /**
872
+ * The event that is fired when the ContextMenu is activated. Only fired when the Grid is run as a client component.
873
+ *
874
+ * @example
875
+ * ```jsx
876
+ * <Grid onContextMenu={(event) => console.log('Context menu activated:', event)} />
877
+ * ```
878
+ */
879
+ onContextMenu?: (event: GridContextMenuEvent) => void;
880
+ /**
881
+ * The event that is fired when the ContextMenu item is clicked. Only fired when the Grid is run as a client component.
882
+ *
883
+ * @example
884
+ * ```jsx
885
+ * <Grid onContextMenuItemClick={(event) => console.log('Context menu item clicked:', event)} />
886
+ * ```
887
+ */
888
+ onContextMenuItemClick?: (event: GridContextMenuItemClickEvent) => void;
889
+ /**
890
+ * Sets the `id` property of the top div element of the component.
891
+ *
892
+ * @example
893
+ * ```jsx
894
+ * <Grid id="custom-grid-id" />
895
+ * ```
896
+ */
897
+ id?: string;
898
+ /**
899
+ * @hidden
900
+ */
901
+ unstyled?: GridClassStructure;
902
+ /**
903
+ * Enables the built-in row span feature of the Grid.
904
+ *
905
+ * @example
906
+ * ```jsx
907
+ * <Grid rowSpannable={true} />
908
+ * ```
909
+ */
910
+ rowSpannable?: boolean | GridRowSpannableSettings;
911
+ /**
912
+ * The collection of column states of the grid.
913
+ *
914
+ * @example
915
+ * ```jsx
916
+ * <Grid columnsState={[{ field: 'ProductName', locked: true }]} />
917
+ * ```
918
+ */
919
+ columnsState?: GridColumnState[];
920
+ /**
921
+ * The default columns state, used only for the initial load.
922
+ *
923
+ * @example
924
+ * ```jsx
925
+ * <Grid defaultColumnsState={[{ field: 'ProductName', locked: false }]} />
926
+ * ```
927
+ */
928
+ defaultColumnsState?: GridColumnState[];
929
+ /**
930
+ * Fires when the columns state of the Grid is changed.
931
+ *
932
+ * @example
933
+ * ```jsx
934
+ * <Grid onColumnsStateChange={(event) => console.log('Columns state changed:', event)} />
935
+ * ```
936
+ */
937
+ onColumnsStateChange?: (event: GridColumnsStateChangeEvent) => void;
938
+ /**
939
+ * Sets the locale of the Grid when used as a server component.
940
+ * Have not effect when the Grid is used as a client component.
941
+ *
942
+ * @example
943
+ * ```jsx
944
+ * <Grid locale="en-US" />
945
+ * ```
946
+ */
947
+ locale?: string;
948
+ /**
949
+ * Sets the language of the Grid when used as a server component.
950
+ * Have not effect when the Grid is used as a client component.
951
+ *
952
+ * @example
953
+ * ```jsx
954
+ * <Grid language="en" />
955
+ * ```
956
+ */
957
+ language?: string;
958
+ /**
959
+ * Specifies the data layout mode for the Grid.
960
+ *
961
+ * - `"columns"`: Traditional column-based table layout (default).
962
+ * - `"stacked"`: Card-based layout where each row displays as a vertical
963
+ * stack of field label/value pairs. Useful for responsive layouts
964
+ * and mobile devices.
965
+ *
966
+ * The stacked mode is independent of `adaptiveMode` and can be used separately.
967
+ *
968
+ * > Note: Row/column spanning is not supported in stacked mode.
969
+ *
970
+ * @default "columns"
971
+ *
972
+ * @example
973
+ * ```tsx
974
+ * // Traditional column layout (default)
975
+ * <Grid dataLayoutMode="columns" data={data}>
976
+ * <GridColumn field="name" title="Name" />
977
+ * <GridColumn field="email" title="Email" />
978
+ * </Grid>
979
+ *
980
+ * // Stacked card layout
981
+ * <Grid dataLayoutMode="stacked" data={data}>
982
+ * <GridColumn field="name" title="Name" />
983
+ * <GridColumn field="email" title="Email" />
984
+ * </Grid>
985
+ * ```
986
+ */
987
+ dataLayoutMode?: GridDataLayoutMode;
988
+ /**
989
+ * Configuration for the stacked layout mode.
990
+ * Only applicable when `dataLayoutMode="stacked"`.
991
+ *
992
+ * The `cols` property defines how stacked cells are arranged:
993
+ * - As a number: Creates that many equal-width columns
994
+ * - As an array: The length defines column count, values define widths
995
+ *
996
+ * @example
997
+ * ```tsx
998
+ * // Two-column stacked layout with equal widths
999
+ * <Grid
1000
+ * dataLayoutMode="stacked"
1001
+ * stackedLayoutSettings={{ cols: 2 }}
1002
+ * data={data}
1003
+ * >
1004
+ * <GridColumn field="name" title="Name" />
1005
+ * <GridColumn field="email" title="Email" />
1006
+ * </Grid>
1007
+ *
1008
+ * // Three columns with custom widths using fr units
1009
+ * <Grid
1010
+ * dataLayoutMode="stacked"
1011
+ * stackedLayoutSettings={{ cols: ['1fr', '2fr', '1fr'] }}
1012
+ * data={data}
1013
+ * >
1014
+ * ...
1015
+ * </Grid>
1016
+ *
1017
+ * // Custom widths with pixel and fraction units
1018
+ * <Grid
1019
+ * dataLayoutMode="stacked"
1020
+ * stackedLayoutSettings={{ cols: [{ width: 200 }, { width: '1fr' }] }}
1021
+ * data={data}
1022
+ * >
1023
+ * ...
1024
+ * </Grid>
1025
+ * ```
1026
+ */
1027
+ stackedLayoutSettings?: GridStackedLayoutSettings;
1028
+ }
1029
+ /**
1030
+ * @hidden
1031
+ */
1032
+ export interface GridComponentProps extends GridProps {
1033
+ /**
1034
+ * @hidden
1035
+ */
1036
+ localization?: LocalizationService;
1037
+ /**
1038
+ * @hidden
1039
+ */
1040
+ intl?: IntlService;
1041
+ /**
1042
+ * @hidden
1043
+ */
1044
+ scrollLeftRef?: {
1045
+ current: number;
1046
+ };
1047
+ /**
1048
+ * @hidden
1049
+ */
1050
+ widthRef?: {
1051
+ current: number;
1052
+ };
1053
+ /**
1054
+ * @hidden
1055
+ */
1056
+ containerHeightRef?: {
1057
+ current: number;
1058
+ };
1059
+ /**
1060
+ * @hidden
1061
+ */
1062
+ minRowHeightRef?: {
1063
+ current: number;
1064
+ };
1065
+ /**
1066
+ * @hidden
1067
+ */
1068
+ virtualSkipRef?: {
1069
+ current: number;
1070
+ };
1071
+ /**
1072
+ * @hidden
1073
+ */
1074
+ forceUpdate?: React.DispatchWithoutAction;
1075
+ /**
1076
+ * @hidden
1077
+ */
1078
+ isClient?: boolean;
1079
+ /**
1080
+ * @hidden
1081
+ */
1082
+ innerGrid?: any;
1083
+ }