@fluentui/react-table 9.0.0-alpha.8 → 9.0.0-rc.1

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 (463) hide show
  1. package/CHANGELOG.json +836 -1
  2. package/CHANGELOG.md +212 -2
  3. package/dist/index.d.ts +489 -101
  4. package/lib/DataGrid.js +2 -0
  5. package/lib/DataGrid.js.map +1 -0
  6. package/lib/DataGridBody.js +2 -0
  7. package/lib/DataGridBody.js.map +1 -0
  8. package/lib/DataGridCell.js +2 -0
  9. package/lib/DataGridCell.js.map +1 -0
  10. package/lib/DataGridHeader.js +2 -0
  11. package/lib/DataGridHeader.js.map +1 -0
  12. package/lib/DataGridHeaderCell.js +2 -0
  13. package/lib/DataGridHeaderCell.js.map +1 -0
  14. package/lib/DataGridRow.js +2 -0
  15. package/lib/DataGridRow.js.map +1 -0
  16. package/lib/DataGridSelectionCell.js +2 -0
  17. package/lib/DataGridSelectionCell.js.map +1 -0
  18. package/lib/components/DataGrid/DataGrid.js +15 -0
  19. package/lib/components/DataGrid/DataGrid.js.map +1 -0
  20. package/lib/components/DataGrid/DataGrid.types.js +2 -0
  21. package/lib/components/DataGrid/DataGrid.types.js.map +1 -0
  22. package/lib/components/DataGrid/index.js +6 -0
  23. package/lib/components/DataGrid/index.js.map +1 -0
  24. package/lib/components/DataGrid/renderDataGrid.js +12 -0
  25. package/lib/components/DataGrid/renderDataGrid.js.map +1 -0
  26. package/lib/components/DataGrid/useDataGrid.js +63 -0
  27. package/lib/components/DataGrid/useDataGrid.js.map +1 -0
  28. package/lib/components/DataGrid/useDataGridContextValues.js +15 -0
  29. package/lib/components/DataGrid/useDataGridContextValues.js.map +1 -0
  30. package/lib/components/DataGrid/useDataGridStyles.js +14 -0
  31. package/lib/components/DataGrid/useDataGridStyles.js.map +1 -0
  32. package/lib/components/DataGridBody/DataGridBody.js +14 -0
  33. package/lib/components/DataGridBody/DataGridBody.js.map +1 -0
  34. package/lib/components/DataGridBody/DataGridBody.types.js +2 -0
  35. package/lib/components/DataGridBody/DataGridBody.types.js.map +1 -0
  36. package/lib/components/DataGridBody/index.js +6 -0
  37. package/lib/components/DataGridBody/index.js.map +1 -0
  38. package/lib/components/DataGridBody/renderDataGridBody.js +19 -0
  39. package/lib/components/DataGridBody/renderDataGridBody.js.map +1 -0
  40. package/lib/components/DataGridBody/useDataGridBody.js +31 -0
  41. package/lib/components/DataGridBody/useDataGridBody.js.map +1 -0
  42. package/lib/components/DataGridBody/useDataGridBodyStyles.js +14 -0
  43. package/lib/components/DataGridBody/useDataGridBodyStyles.js.map +1 -0
  44. package/lib/components/DataGridCell/DataGridCell.js +14 -0
  45. package/lib/components/DataGridCell/DataGridCell.js.map +1 -0
  46. package/lib/components/DataGridCell/DataGridCell.types.js +2 -0
  47. package/lib/components/DataGridCell/DataGridCell.types.js.map +1 -0
  48. package/lib/components/DataGridCell/index.js +6 -0
  49. package/lib/components/DataGridCell/index.js.map +1 -0
  50. package/lib/components/DataGridCell/renderDataGridCell.js +8 -0
  51. package/lib/components/DataGridCell/renderDataGridCell.js.map +1 -0
  52. package/lib/components/DataGridCell/useDataGridCell.js +21 -0
  53. package/lib/components/DataGridCell/useDataGridCell.js.map +1 -0
  54. package/lib/components/DataGridCell/useDataGridCellStyles.js +14 -0
  55. package/lib/components/DataGridCell/useDataGridCellStyles.js.map +1 -0
  56. package/lib/components/DataGridHeader/DataGridHeader.js +14 -0
  57. package/lib/components/DataGridHeader/DataGridHeader.js.map +1 -0
  58. package/lib/components/DataGridHeader/DataGridHeader.types.js +2 -0
  59. package/lib/components/DataGridHeader/DataGridHeader.types.js.map +1 -0
  60. package/lib/components/DataGridHeader/index.js +6 -0
  61. package/lib/components/DataGridHeader/index.js.map +1 -0
  62. package/lib/components/DataGridHeader/renderDataGridHeader.js +8 -0
  63. package/lib/components/DataGridHeader/renderDataGridHeader.js.map +1 -0
  64. package/lib/components/DataGridHeader/useDataGridHeader.js +17 -0
  65. package/lib/components/DataGridHeader/useDataGridHeader.js.map +1 -0
  66. package/lib/components/DataGridHeader/useDataGridHeaderStyles.js +14 -0
  67. package/lib/components/DataGridHeader/useDataGridHeaderStyles.js.map +1 -0
  68. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js +14 -0
  69. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -0
  70. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js +2 -0
  71. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -0
  72. package/lib/components/DataGridHeaderCell/index.js +6 -0
  73. package/lib/components/DataGridHeaderCell/index.js.map +1 -0
  74. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js +8 -0
  75. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -0
  76. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js +37 -0
  77. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -0
  78. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js +22 -0
  79. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js.map +1 -0
  80. package/lib/components/DataGridRow/DataGridRow.js +14 -0
  81. package/lib/components/DataGridRow/DataGridRow.js.map +1 -0
  82. package/lib/components/DataGridRow/DataGridRow.types.js +2 -0
  83. package/lib/components/DataGridRow/DataGridRow.types.js.map +1 -0
  84. package/lib/components/DataGridRow/index.js +6 -0
  85. package/lib/components/DataGridRow/index.js.map +1 -0
  86. package/lib/components/DataGridRow/renderDataGridRow.js +21 -0
  87. package/lib/components/DataGridRow/renderDataGridRow.js.map +1 -0
  88. package/lib/components/DataGridRow/useDataGridRow.js +70 -0
  89. package/lib/components/DataGridRow/useDataGridRow.js.map +1 -0
  90. package/lib/components/DataGridRow/useDataGridRowStyles.js +18 -0
  91. package/lib/components/DataGridRow/useDataGridRowStyles.js.map +1 -0
  92. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js +14 -0
  93. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -0
  94. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js +2 -0
  95. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -0
  96. package/lib/components/DataGridSelectionCell/index.js +6 -0
  97. package/lib/components/DataGridSelectionCell/index.js.map +1 -0
  98. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js +8 -0
  99. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -0
  100. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js +47 -0
  101. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -0
  102. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js +22 -0
  103. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js.map +1 -0
  104. package/lib/components/Table/Table.js +1 -2
  105. package/lib/components/Table/Table.js.map +1 -1
  106. package/lib/components/Table/Table.types.js.map +1 -1
  107. package/lib/components/Table/renderTable.js +2 -2
  108. package/lib/components/Table/renderTable.js.map +1 -1
  109. package/lib/components/Table/useTable.js +0 -2
  110. package/lib/components/Table/useTable.js.map +1 -1
  111. package/lib/components/Table/useTableContextValues.js.map +1 -1
  112. package/lib/components/Table/useTableStyles.js +13 -19
  113. package/lib/components/Table/useTableStyles.js.map +1 -1
  114. package/lib/components/TableBody/TableBody.js +1 -2
  115. package/lib/components/TableBody/TableBody.js.map +1 -1
  116. package/lib/components/TableBody/renderTableBody.js +3 -4
  117. package/lib/components/TableBody/renderTableBody.js.map +1 -1
  118. package/lib/components/TableBody/useTableBody.js +0 -2
  119. package/lib/components/TableBody/useTableBody.js.map +1 -1
  120. package/lib/components/TableBody/useTableBodyStyles.js +6 -10
  121. package/lib/components/TableBody/useTableBodyStyles.js.map +1 -1
  122. package/lib/components/TableCell/TableCell.js +1 -2
  123. package/lib/components/TableCell/TableCell.js.map +1 -1
  124. package/lib/components/TableCell/TableCell.types.js.map +1 -1
  125. package/lib/components/TableCell/renderTableCell.js +2 -2
  126. package/lib/components/TableCell/renderTableCell.js.map +1 -1
  127. package/lib/components/TableCell/useTableCell.js +4 -4
  128. package/lib/components/TableCell/useTableCell.js.map +1 -1
  129. package/lib/components/TableCell/useTableCellStyles.js +47 -26
  130. package/lib/components/TableCell/useTableCellStyles.js.map +1 -1
  131. package/lib/components/TableCellActions/TableCellActions.js +1 -2
  132. package/lib/components/TableCellActions/TableCellActions.js.map +1 -1
  133. package/lib/components/TableCellActions/renderTableCellActions.js +3 -4
  134. package/lib/components/TableCellActions/renderTableCellActions.js.map +1 -1
  135. package/lib/components/TableCellActions/useTableCellActions.js +2 -5
  136. package/lib/components/TableCellActions/useTableCellActions.js.map +1 -1
  137. package/lib/components/TableCellActions/useTableCellActionsStyles.js +11 -19
  138. package/lib/components/TableCellActions/useTableCellActionsStyles.js.map +1 -1
  139. package/lib/components/TableCellLayout/TableCellLayout.js +1 -2
  140. package/lib/components/TableCellLayout/TableCellLayout.js.map +1 -1
  141. package/lib/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  142. package/lib/components/TableCellLayout/renderTableCellLayout.js +10 -6
  143. package/lib/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  144. package/lib/components/TableCellLayout/useTableCellLayout.js +5 -5
  145. package/lib/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  146. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  147. package/lib/components/TableCellLayout/useTableCellLayoutStyles.js +41 -35
  148. package/lib/components/TableCellLayout/useTableCellLayoutStyles.js.map +1 -1
  149. package/lib/components/TableHeader/TableHeader.js +1 -2
  150. package/lib/components/TableHeader/TableHeader.js.map +1 -1
  151. package/lib/components/TableHeader/renderTableHeader.js +2 -2
  152. package/lib/components/TableHeader/renderTableHeader.js.map +1 -1
  153. package/lib/components/TableHeader/useTableHeader.js +1 -10
  154. package/lib/components/TableHeader/useTableHeader.js.map +1 -1
  155. package/lib/components/TableHeader/useTableHeaderStyles.js +6 -16
  156. package/lib/components/TableHeader/useTableHeaderStyles.js.map +1 -1
  157. package/lib/components/TableHeaderCell/TableHeaderCell.js +1 -2
  158. package/lib/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  159. package/lib/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  160. package/lib/components/TableHeaderCell/renderTableHeaderCell.js +6 -4
  161. package/lib/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  162. package/lib/components/TableHeaderCell/useTableHeaderCell.js +11 -8
  163. package/lib/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  164. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.js +69 -67
  165. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.js.map +1 -1
  166. package/lib/components/TableRow/TableRow.js +1 -2
  167. package/lib/components/TableRow/TableRow.js.map +1 -1
  168. package/lib/components/TableRow/TableRow.types.js.map +1 -1
  169. package/lib/components/TableRow/renderTableRow.js +3 -4
  170. package/lib/components/TableRow/renderTableRow.js.map +1 -1
  171. package/lib/components/TableRow/useTableRow.js +7 -5
  172. package/lib/components/TableRow/useTableRow.js.map +1 -1
  173. package/lib/components/TableRow/useTableRowStyles.js +137 -162
  174. package/lib/components/TableRow/useTableRowStyles.js.map +1 -1
  175. package/lib/components/TableSelectionCell/TableSelectionCell.js +1 -2
  176. package/lib/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  177. package/lib/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  178. package/lib/components/TableSelectionCell/renderTableSelectionCell.js +6 -4
  179. package/lib/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  180. package/lib/components/TableSelectionCell/useTableSelectionCell.js +9 -5
  181. package/lib/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  182. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.js +43 -46
  183. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.js.map +1 -1
  184. package/lib/contexts/columnIdContext.js +9 -0
  185. package/lib/contexts/columnIdContext.js.map +1 -0
  186. package/lib/contexts/dataGridContext.js +13 -0
  187. package/lib/contexts/dataGridContext.js.map +1 -0
  188. package/lib/contexts/rowIdContext.js +9 -0
  189. package/lib/contexts/rowIdContext.js.map +1 -0
  190. package/lib/contexts/tableContext.js +0 -1
  191. package/lib/contexts/tableContext.js.map +1 -1
  192. package/lib/contexts/tableHeaderContext.js.map +1 -1
  193. package/lib/hooks/createColumn.js +35 -0
  194. package/lib/hooks/createColumn.js.map +1 -0
  195. package/lib/hooks/index.js +4 -3
  196. package/lib/hooks/index.js.map +1 -1
  197. package/lib/hooks/selectionManager.js +16 -32
  198. package/lib/hooks/selectionManager.js.map +1 -1
  199. package/lib/hooks/types.js.map +1 -1
  200. package/lib/hooks/{useTable.js → useTableFeatures.js} +12 -9
  201. package/lib/hooks/useTableFeatures.js.map +1 -0
  202. package/lib/hooks/{useSelection.js → useTableSelection.js} +18 -18
  203. package/lib/hooks/useTableSelection.js.map +1 -0
  204. package/lib/hooks/{useSort.js → useTableSort.js} +12 -21
  205. package/lib/hooks/useTableSort.js.map +1 -0
  206. package/lib/index.js +9 -1
  207. package/lib/index.js.map +1 -1
  208. package/lib-commonjs/DataGrid.js +8 -0
  209. package/lib-commonjs/DataGrid.js.map +1 -0
  210. package/lib-commonjs/DataGridBody.js +8 -0
  211. package/lib-commonjs/DataGridBody.js.map +1 -0
  212. package/lib-commonjs/DataGridCell.js +8 -0
  213. package/lib-commonjs/DataGridCell.js.map +1 -0
  214. package/lib-commonjs/DataGridHeader.js +8 -0
  215. package/lib-commonjs/DataGridHeader.js.map +1 -0
  216. package/lib-commonjs/DataGridHeaderCell.js +8 -0
  217. package/lib-commonjs/DataGridHeaderCell.js.map +1 -0
  218. package/lib-commonjs/DataGridRow.js +8 -0
  219. package/lib-commonjs/DataGridRow.js.map +1 -0
  220. package/lib-commonjs/DataGridSelectionCell.js +8 -0
  221. package/lib-commonjs/DataGridSelectionCell.js.map +1 -0
  222. package/lib-commonjs/Table.js +0 -2
  223. package/lib-commonjs/Table.js.map +1 -1
  224. package/lib-commonjs/TableBody.js +0 -2
  225. package/lib-commonjs/TableBody.js.map +1 -1
  226. package/lib-commonjs/TableCell.js +0 -2
  227. package/lib-commonjs/TableCell.js.map +1 -1
  228. package/lib-commonjs/TableCellActions.js +0 -2
  229. package/lib-commonjs/TableCellActions.js.map +1 -1
  230. package/lib-commonjs/TableCellLayout.js +0 -2
  231. package/lib-commonjs/TableCellLayout.js.map +1 -1
  232. package/lib-commonjs/TableCellPrimaryLayout.js +0 -2
  233. package/lib-commonjs/TableCellPrimaryLayout.js.map +1 -1
  234. package/lib-commonjs/TableHeader.js +0 -2
  235. package/lib-commonjs/TableHeader.js.map +1 -1
  236. package/lib-commonjs/TableHeaderCell.js +0 -2
  237. package/lib-commonjs/TableHeaderCell.js.map +1 -1
  238. package/lib-commonjs/TableRow.js +0 -2
  239. package/lib-commonjs/TableRow.js.map +1 -1
  240. package/lib-commonjs/TableSelectionCell.js +0 -2
  241. package/lib-commonjs/TableSelectionCell.js.map +1 -1
  242. package/lib-commonjs/components/DataGrid/DataGrid.js +21 -0
  243. package/lib-commonjs/components/DataGrid/DataGrid.js.map +1 -0
  244. package/lib-commonjs/components/DataGrid/DataGrid.types.js +6 -0
  245. package/lib-commonjs/components/DataGrid/DataGrid.types.js.map +1 -0
  246. package/lib-commonjs/components/DataGrid/index.js +12 -0
  247. package/lib-commonjs/components/DataGrid/index.js.map +1 -0
  248. package/lib-commonjs/components/DataGrid/renderDataGrid.js +19 -0
  249. package/lib-commonjs/components/DataGrid/renderDataGrid.js.map +1 -0
  250. package/lib-commonjs/components/DataGrid/useDataGrid.js +70 -0
  251. package/lib-commonjs/components/DataGrid/useDataGrid.js.map +1 -0
  252. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js +22 -0
  253. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js.map +1 -0
  254. package/lib-commonjs/components/DataGrid/useDataGridStyles.js +21 -0
  255. package/lib-commonjs/components/DataGrid/useDataGridStyles.js.map +1 -0
  256. package/lib-commonjs/components/DataGridBody/DataGridBody.js +20 -0
  257. package/lib-commonjs/components/DataGridBody/DataGridBody.js.map +1 -0
  258. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js +6 -0
  259. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js.map +1 -0
  260. package/lib-commonjs/components/DataGridBody/index.js +12 -0
  261. package/lib-commonjs/components/DataGridBody/index.js.map +1 -0
  262. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js +26 -0
  263. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js.map +1 -0
  264. package/lib-commonjs/components/DataGridBody/useDataGridBody.js +38 -0
  265. package/lib-commonjs/components/DataGridBody/useDataGridBody.js.map +1 -0
  266. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.js +21 -0
  267. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.js.map +1 -0
  268. package/lib-commonjs/components/DataGridCell/DataGridCell.js +20 -0
  269. package/lib-commonjs/components/DataGridCell/DataGridCell.js.map +1 -0
  270. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js +6 -0
  271. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js.map +1 -0
  272. package/lib-commonjs/components/DataGridCell/index.js +12 -0
  273. package/lib-commonjs/components/DataGridCell/index.js.map +1 -0
  274. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js +15 -0
  275. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js.map +1 -0
  276. package/lib-commonjs/components/DataGridCell/useDataGridCell.js +28 -0
  277. package/lib-commonjs/components/DataGridCell/useDataGridCell.js.map +1 -0
  278. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.js +21 -0
  279. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.js.map +1 -0
  280. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js +20 -0
  281. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js.map +1 -0
  282. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js +6 -0
  283. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js.map +1 -0
  284. package/lib-commonjs/components/DataGridHeader/index.js +12 -0
  285. package/lib-commonjs/components/DataGridHeader/index.js.map +1 -0
  286. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js +15 -0
  287. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js.map +1 -0
  288. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js +24 -0
  289. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js.map +1 -0
  290. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.js +21 -0
  291. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.js.map +1 -0
  292. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js +20 -0
  293. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -0
  294. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js +6 -0
  295. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -0
  296. package/lib-commonjs/components/DataGridHeaderCell/index.js +12 -0
  297. package/lib-commonjs/components/DataGridHeaderCell/index.js.map +1 -0
  298. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js +15 -0
  299. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -0
  300. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js +44 -0
  301. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -0
  302. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js +29 -0
  303. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js.map +1 -0
  304. package/lib-commonjs/components/DataGridRow/DataGridRow.js +20 -0
  305. package/lib-commonjs/components/DataGridRow/DataGridRow.js.map +1 -0
  306. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js +6 -0
  307. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js.map +1 -0
  308. package/lib-commonjs/components/DataGridRow/index.js +12 -0
  309. package/lib-commonjs/components/DataGridRow/index.js.map +1 -0
  310. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js +28 -0
  311. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js.map +1 -0
  312. package/lib-commonjs/components/DataGridRow/useDataGridRow.js +77 -0
  313. package/lib-commonjs/components/DataGridRow/useDataGridRow.js.map +1 -0
  314. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.js +25 -0
  315. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.js.map +1 -0
  316. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js +20 -0
  317. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -0
  318. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js +6 -0
  319. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -0
  320. package/lib-commonjs/components/DataGridSelectionCell/index.js +12 -0
  321. package/lib-commonjs/components/DataGridSelectionCell/index.js.map +1 -0
  322. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js +15 -0
  323. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -0
  324. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js +54 -0
  325. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -0
  326. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js +29 -0
  327. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js.map +1 -0
  328. package/lib-commonjs/components/Table/Table.js +1 -8
  329. package/lib-commonjs/components/Table/Table.js.map +1 -1
  330. package/lib-commonjs/components/Table/Table.types.js.map +1 -1
  331. package/lib-commonjs/components/Table/index.js +0 -6
  332. package/lib-commonjs/components/Table/index.js.map +1 -1
  333. package/lib-commonjs/components/Table/renderTable.js +2 -7
  334. package/lib-commonjs/components/Table/renderTable.js.map +1 -1
  335. package/lib-commonjs/components/Table/useTable.js +0 -5
  336. package/lib-commonjs/components/Table/useTable.js.map +1 -1
  337. package/lib-commonjs/components/Table/useTableContextValues.js +0 -3
  338. package/lib-commonjs/components/Table/useTableContextValues.js.map +1 -1
  339. package/lib-commonjs/components/Table/useTableStyles.js +13 -23
  340. package/lib-commonjs/components/Table/useTableStyles.js.map +1 -1
  341. package/lib-commonjs/components/TableBody/TableBody.js +1 -7
  342. package/lib-commonjs/components/TableBody/TableBody.js.map +1 -1
  343. package/lib-commonjs/components/TableBody/TableBody.types.js.map +1 -1
  344. package/lib-commonjs/components/TableBody/index.js +0 -6
  345. package/lib-commonjs/components/TableBody/index.js.map +1 -1
  346. package/lib-commonjs/components/TableBody/renderTableBody.js +3 -8
  347. package/lib-commonjs/components/TableBody/renderTableBody.js.map +1 -1
  348. package/lib-commonjs/components/TableBody/useTableBody.js +0 -6
  349. package/lib-commonjs/components/TableBody/useTableBody.js.map +1 -1
  350. package/lib-commonjs/components/TableBody/useTableBodyStyles.js +6 -12
  351. package/lib-commonjs/components/TableBody/useTableBodyStyles.js.map +1 -1
  352. package/lib-commonjs/components/TableCell/TableCell.js +1 -7
  353. package/lib-commonjs/components/TableCell/TableCell.js.map +1 -1
  354. package/lib-commonjs/components/TableCell/TableCell.types.js.map +1 -1
  355. package/lib-commonjs/components/TableCell/index.js +0 -6
  356. package/lib-commonjs/components/TableCell/index.js.map +1 -1
  357. package/lib-commonjs/components/TableCell/renderTableCell.js +2 -6
  358. package/lib-commonjs/components/TableCell/renderTableCell.js.map +1 -1
  359. package/lib-commonjs/components/TableCell/useTableCell.js +4 -8
  360. package/lib-commonjs/components/TableCell/useTableCell.js.map +1 -1
  361. package/lib-commonjs/components/TableCell/useTableCellStyles.js +47 -30
  362. package/lib-commonjs/components/TableCell/useTableCellStyles.js.map +1 -1
  363. package/lib-commonjs/components/TableCellActions/TableCellActions.js +1 -7
  364. package/lib-commonjs/components/TableCellActions/TableCellActions.js.map +1 -1
  365. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js.map +1 -1
  366. package/lib-commonjs/components/TableCellActions/index.js +0 -6
  367. package/lib-commonjs/components/TableCellActions/index.js.map +1 -1
  368. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js +3 -8
  369. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js.map +1 -1
  370. package/lib-commonjs/components/TableCellActions/useTableCellActions.js +1 -8
  371. package/lib-commonjs/components/TableCellActions/useTableCellActions.js.map +1 -1
  372. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.js +11 -23
  373. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.js.map +1 -1
  374. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js +1 -8
  375. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js.map +1 -1
  376. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  377. package/lib-commonjs/components/TableCellLayout/index.js +0 -6
  378. package/lib-commonjs/components/TableCellLayout/index.js.map +1 -1
  379. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js +10 -11
  380. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  381. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js +5 -9
  382. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  383. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js +0 -3
  384. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  385. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.js +41 -39
  386. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.js.map +1 -1
  387. package/lib-commonjs/components/TableHeader/TableHeader.js +1 -7
  388. package/lib-commonjs/components/TableHeader/TableHeader.js.map +1 -1
  389. package/lib-commonjs/components/TableHeader/TableHeader.types.js.map +1 -1
  390. package/lib-commonjs/components/TableHeader/index.js +0 -6
  391. package/lib-commonjs/components/TableHeader/index.js.map +1 -1
  392. package/lib-commonjs/components/TableHeader/renderTableHeader.js +2 -7
  393. package/lib-commonjs/components/TableHeader/renderTableHeader.js.map +1 -1
  394. package/lib-commonjs/components/TableHeader/useTableHeader.js +1 -15
  395. package/lib-commonjs/components/TableHeader/useTableHeader.js.map +1 -1
  396. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.js +6 -19
  397. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.js.map +1 -1
  398. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js +1 -7
  399. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  400. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  401. package/lib-commonjs/components/TableHeaderCell/index.js +0 -6
  402. package/lib-commonjs/components/TableHeaderCell/index.js.map +1 -1
  403. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js +6 -8
  404. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  405. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js +10 -14
  406. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  407. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.js +69 -71
  408. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.js.map +1 -1
  409. package/lib-commonjs/components/TableRow/TableRow.js +1 -7
  410. package/lib-commonjs/components/TableRow/TableRow.js.map +1 -1
  411. package/lib-commonjs/components/TableRow/TableRow.types.js.map +1 -1
  412. package/lib-commonjs/components/TableRow/index.js +0 -6
  413. package/lib-commonjs/components/TableRow/index.js.map +1 -1
  414. package/lib-commonjs/components/TableRow/renderTableRow.js +3 -8
  415. package/lib-commonjs/components/TableRow/renderTableRow.js.map +1 -1
  416. package/lib-commonjs/components/TableRow/useTableRow.js +7 -10
  417. package/lib-commonjs/components/TableRow/useTableRow.js.map +1 -1
  418. package/lib-commonjs/components/TableRow/useTableRowStyles.js +137 -170
  419. package/lib-commonjs/components/TableRow/useTableRowStyles.js.map +1 -1
  420. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js +1 -7
  421. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  422. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  423. package/lib-commonjs/components/TableSelectionCell/index.js +0 -6
  424. package/lib-commonjs/components/TableSelectionCell/index.js.map +1 -1
  425. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js +6 -8
  426. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  427. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js +8 -11
  428. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  429. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.js +43 -50
  430. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.js.map +1 -1
  431. package/lib-commonjs/contexts/columnIdContext.js +16 -0
  432. package/lib-commonjs/contexts/columnIdContext.js.map +1 -0
  433. package/lib-commonjs/contexts/dataGridContext.js +20 -0
  434. package/lib-commonjs/contexts/dataGridContext.js.map +1 -0
  435. package/lib-commonjs/contexts/rowIdContext.js +16 -0
  436. package/lib-commonjs/contexts/rowIdContext.js.map +1 -0
  437. package/lib-commonjs/contexts/tableContext.js +0 -5
  438. package/lib-commonjs/contexts/tableContext.js.map +1 -1
  439. package/lib-commonjs/contexts/tableHeaderContext.js +0 -4
  440. package/lib-commonjs/contexts/tableHeaderContext.js.map +1 -1
  441. package/lib-commonjs/hooks/createColumn.js +42 -0
  442. package/lib-commonjs/hooks/createColumn.js.map +1 -0
  443. package/lib-commonjs/hooks/index.js +4 -8
  444. package/lib-commonjs/hooks/index.js.map +1 -1
  445. package/lib-commonjs/hooks/selectionManager.js +16 -34
  446. package/lib-commonjs/hooks/selectionManager.js.map +1 -1
  447. package/lib-commonjs/hooks/types.js.map +1 -1
  448. package/lib-commonjs/hooks/useTableFeatures.js +42 -0
  449. package/lib-commonjs/hooks/useTableFeatures.js.map +1 -0
  450. package/lib-commonjs/hooks/{useSelection.js → useTableSelection.js} +21 -28
  451. package/lib-commonjs/hooks/useTableSelection.js.map +1 -0
  452. package/lib-commonjs/hooks/{useSort.js → useTableSort.js} +15 -29
  453. package/lib-commonjs/hooks/useTableSort.js.map +1 -0
  454. package/lib-commonjs/index.js +244 -30
  455. package/lib-commonjs/index.js.map +1 -1
  456. package/package.json +24 -12
  457. package/lib/hooks/useSelection.js.map +0 -1
  458. package/lib/hooks/useSort.js.map +0 -1
  459. package/lib/hooks/useTable.js.map +0 -1
  460. package/lib-commonjs/hooks/useSelection.js.map +0 -1
  461. package/lib-commonjs/hooks/useSort.js.map +0 -1
  462. package/lib-commonjs/hooks/useTable.js +0 -42
  463. package/lib-commonjs/hooks/useTable.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -9,36 +9,258 @@ import type { ComponentState } from '@fluentui/react-utilities';
9
9
  import type { ForwardRefComponent } from '@fluentui/react-utilities';
10
10
  import type { Radio } from '@fluentui/react-radio';
11
11
  import * as React_2 from 'react';
12
+ import { ReactNode } from 'react';
12
13
  import type { Slot } from '@fluentui/react-utilities';
13
14
  import type { SlotClassNames } from '@fluentui/react-utilities';
14
15
 
15
- export declare interface ColumnDefinition<TItem> {
16
- columnId: ColumnId;
17
- compare?: (a: TItem, b: TItem) => number;
16
+ export declare type CellRenderFunction<TItem = unknown> = (column: TableColumnDefinition<TItem>) => React_2.ReactNode;
17
+
18
+ /**
19
+ * Helper function to create column definition with defaults
20
+ * @param options - column definition options
21
+ * @returns - column definition with defaults
22
+ */
23
+ export declare function createTableColumn<TItem>(options: CreateTableColumnOptions<TItem>): {
24
+ columnId: TableColumnId;
25
+ renderCell: (item: TItem) => ReactNode;
26
+ renderHeaderCell: () => ReactNode;
27
+ compare: (a: TItem, b: TItem) => number;
28
+ };
29
+
30
+ export declare interface CreateTableColumnOptions<TItem> extends Partial<TableColumnDefinition<TItem>> {
31
+ columnId: TableColumnId;
18
32
  }
19
33
 
20
- export declare type ColumnId = string | number;
34
+ /**
35
+ * DataGrid component
36
+ */
37
+ export declare const DataGrid: ForwardRefComponent<DataGridProps>;
38
+
39
+ /**
40
+ * DataGridBody component
41
+ */
42
+ export declare const DataGridBody: ForwardRefComponent<DataGridBodyProps> & (<TItem>(props: DataGridBodyProps<TItem>) => JSX.Element);
21
43
 
22
- export declare interface HeadlessTableState<TItem> extends Pick<UseTableOptions<TItem>, 'items' | 'getRowId'> {
44
+ export declare const dataGridBodyClassNames: SlotClassNames<DataGridBodySlots>;
45
+
46
+ /**
47
+ * DataGridBody Props
48
+ */
49
+ export declare type DataGridBodyProps<TItem = unknown> = Omit<TableBodyProps, 'children'> & {
23
50
  /**
24
- * The row data for rendering
25
- * @param rowEnhancer - Enhances the row with extra user data
51
+ * Render function for rows
26
52
  */
27
- getRows: <TRowState extends RowState<TItem> = RowState<TItem>>(rowEnhancer?: RowEnhancer<TItem, TRowState>) => TRowState[];
53
+ children: RowRenderFunction<TItem>;
54
+ };
55
+
56
+ export declare type DataGridBodySlots = TableBodySlots;
57
+
58
+ /**
59
+ * State used in rendering DataGridBody
60
+ */
61
+ export declare type DataGridBodyState = TableBodyState & {
62
+ rows: TableRowData<unknown>[];
63
+ renderRow: RowRenderFunction;
64
+ };
65
+
66
+ /**
67
+ * DataGridCell component
68
+ */
69
+ export declare const DataGridCell: ForwardRefComponent<DataGridCellProps>;
70
+
71
+ export declare const dataGridCellClassNames: SlotClassNames<DataGridCellSlots>;
72
+
73
+ /**
74
+ * DataGridCell Props
75
+ */
76
+ export declare type DataGridCellProps = TableCellProps;
77
+
78
+ export declare type DataGridCellSlots = TableCellSlots;
79
+
80
+ /**
81
+ * State used in rendering DataGridCell
82
+ */
83
+ export declare type DataGridCellState = TableCellState;
84
+
85
+ export declare const dataGridClassNames: SlotClassNames<DataGridSlots>;
86
+
87
+ export declare type DataGridContextValue = TableFeaturesState<any> & {
28
88
  /**
29
- * State and actions to manage row selection
89
+ * How focus navigation will work in the datagrid
90
+ * @default cell
30
91
  */
31
- selection: TableSelectionState;
92
+ focusMode: DataGridFocusMode;
32
93
  /**
33
- * State and actions to manage row sorting
94
+ * Lets child components know if rows selection is enabled
95
+ * @see selectionMode prop enables row selection on the component
34
96
  */
35
- sort: TableSortState<TItem>;
97
+ selectableRows: boolean;
36
98
  /**
37
- * Table columns
99
+ * Enables subtle selection style
100
+ * @default false
101
+ */
102
+ subtleSelection: boolean;
103
+ /**
104
+ * Row appearance when selected
105
+ * @default brand
106
+ */
107
+ selectionAppearance: TableRowProps['appearance'];
108
+ };
109
+
110
+ export declare type DataGridContextValues = TableContextValues & {
111
+ dataGrid: DataGridContextValue;
112
+ };
113
+
114
+ export declare type DataGridFocusMode = 'none' | 'cell' | 'row_unstable';
115
+
116
+ /**
117
+ * DataGridHeader component
118
+ */
119
+ export declare const DataGridHeader: ForwardRefComponent<DataGridHeaderProps>;
120
+
121
+ /**
122
+ * DataGridHeaderCell component
123
+ */
124
+ export declare const DataGridHeaderCell: ForwardRefComponent<DataGridHeaderCellProps>;
125
+
126
+ export declare const dataGridHeaderCellClassNames: SlotClassNames<DataGridHeaderCellSlots>;
127
+
128
+ /**
129
+ * DataGridHeaderCell Props
130
+ */
131
+ export declare type DataGridHeaderCellProps = TableHeaderCellProps;
132
+
133
+ export declare type DataGridHeaderCellSlots = TableHeaderCellSlots;
134
+
135
+ /**
136
+ * State used in rendering DataGridHeaderCell
137
+ */
138
+ export declare type DataGridHeaderCellState = TableHeaderCellState;
139
+
140
+ export declare const dataGridHeaderClassNames: SlotClassNames<DataGridHeaderSlots>;
141
+
142
+ /**
143
+ * DataGridHeader Props
144
+ */
145
+ export declare type DataGridHeaderProps = TableHeaderProps;
146
+
147
+ export declare type DataGridHeaderSlots = TableHeaderSlots;
148
+
149
+ /**
150
+ * State used in rendering DataGridHeader
151
+ */
152
+ export declare type DataGridHeaderState = TableHeaderState;
153
+
154
+ /**
155
+ * DataGrid Props
156
+ */
157
+ export declare type DataGridProps = TableProps & Pick<DataGridContextValue, 'items' | 'columns' | 'getRowId'> & Pick<Partial<DataGridContextValue>, 'focusMode' | 'subtleSelection' | 'selectionAppearance'> & Pick<UseTableSortOptions, 'sortState' | 'defaultSortState'> & Pick<UseTableSelectionOptions, 'defaultSelectedItems' | 'selectedItems'> & {
158
+ onSortChange?: (e: React_2.MouseEvent, sortState: SortState) => void;
159
+ onSelectionChange?: (e: React_2.MouseEvent | React_2.KeyboardEvent, data: OnSelectionChangeData) => void;
160
+ /**
161
+ * Enables row selection and sets the selection mode
162
+ * @default false
38
163
  */
39
- columns: ColumnDefinition<TItem>[];
164
+ selectionMode?: SelectionMode_2;
165
+ };
166
+
167
+ /**
168
+ * DataGridRow component
169
+ */
170
+ export declare const DataGridRow: ForwardRefComponent<DataGridRowProps> & (<TItem>(props: DataGridRowProps<TItem>) => JSX.Element);
171
+
172
+ export declare const dataGridRowClassNames: SlotClassNames<DataGridRowSlots>;
173
+
174
+ /**
175
+ * DataGridRow Props
176
+ */
177
+ export declare type DataGridRowProps<TItem = unknown> = Omit<TableRowProps, 'children'> & Omit<ComponentProps<DataGridRowSlots>, 'children'> & {
178
+ children: CellRenderFunction<TItem>;
179
+ };
180
+
181
+ export declare type DataGridRowSlots = TableRowSlots & {
182
+ /**
183
+ * When selection is enabled on the @see DataGrid, all rows
184
+ * will render the selection cell.
185
+ */
186
+ selectionCell?: Slot<typeof TableSelectionCell>;
187
+ };
188
+
189
+ /**
190
+ * State used in rendering DataGridRow
191
+ */
192
+ export declare type DataGridRowState = TableRowState & ComponentState<DataGridRowSlots> & {
193
+ renderCell: CellRenderFunction;
194
+ columnDefs: TableColumnDefinition<any>[];
195
+ };
196
+
197
+ /**
198
+ * DataGridSelectionCell component
199
+ */
200
+ export declare const DataGridSelectionCell: ForwardRefComponent<DataGridSelectionCellProps>;
201
+
202
+ export declare const dataGridSelectionCellClassNames: SlotClassNames<DataGridSelectionCellSlots>;
203
+
204
+ /**
205
+ * DataGridSelectionCell Props
206
+ */
207
+ export declare type DataGridSelectionCellProps = TableSelectionCellProps;
208
+
209
+ export declare type DataGridSelectionCellSlots = TableSelectionCellSlots;
210
+
211
+ /**
212
+ * State used in rendering DataGridSelectionCell
213
+ */
214
+ export declare type DataGridSelectionCellState = TableSelectionCellState;
215
+
216
+ export declare type DataGridSlots = TableSlots;
217
+
218
+ /**
219
+ * State used in rendering DataGrid
220
+ */
221
+ export declare type DataGridState = TableState & {
222
+ tableState: TableFeaturesState<unknown>;
223
+ } & Pick<DataGridContextValue, 'focusMode' | 'selectableRows' | 'subtleSelection' | 'selectionAppearance' | 'getRowId'>;
224
+
225
+ declare interface OnSelectionChangeData {
226
+ selectedItems: Set<TableRowId>;
40
227
  }
41
228
 
229
+ /**
230
+ * Render the final JSX of DataGrid
231
+ */
232
+ export declare const renderDataGrid_unstable: (state: DataGridState, contextValues: DataGridContextValues) => JSX.Element;
233
+
234
+ /**
235
+ * Render the final JSX of DataGridBody
236
+ */
237
+ export declare const renderDataGridBody_unstable: (state: DataGridBodyState) => JSX.Element;
238
+
239
+ /**
240
+ * Render the final JSX of DataGridCell
241
+ */
242
+ export declare const renderDataGridCell_unstable: (state: DataGridCellState) => JSX.Element;
243
+
244
+ /**
245
+ * Render the final JSX of DataGridHeader
246
+ */
247
+ export declare const renderDataGridHeader_unstable: (state: DataGridHeaderState) => JSX.Element;
248
+
249
+ /**
250
+ * Render the final JSX of DataGridHeaderCell
251
+ */
252
+ export declare const renderDataGridHeaderCell_unstable: (state: DataGridHeaderCellState) => JSX.Element;
253
+
254
+ /**
255
+ * Render the final JSX of DataGridRow
256
+ */
257
+ export declare const renderDataGridRow_unstable: (state: DataGridRowState) => JSX.Element;
258
+
259
+ /**
260
+ * Render the final JSX of DataGridSelectionCell
261
+ */
262
+ export declare const renderDataGridSelectionCell_unstable: (state: DataGridSelectionCellState) => JSX.Element;
263
+
42
264
  /**
43
265
  * Render the final JSX of Table
44
266
  */
@@ -84,37 +306,26 @@ export declare const renderTableRow_unstable: (state: TableRowState) => JSX.Elem
84
306
  */
85
307
  export declare const renderTableSelectionCell_unstable: (state: TableSelectionCellState) => JSX.Element;
86
308
 
87
- declare type RowEnhancer<TItem, TRowState extends RowState<TItem> = RowState<TItem>> = (row: RowState<TItem>) => TRowState;
88
-
89
- export declare type RowId = string | number;
309
+ declare type RowEnhancer<TItem, TRowState extends TableRowData<TItem> = TableRowData<TItem>> = (row: TableRowData<TItem>) => TRowState;
90
310
 
91
- export declare interface RowState<TItem> {
92
- /**
93
- * User provided data
94
- */
95
- item: TItem;
96
- /**
97
- * The row id, defaults to index position in the collection
98
- */
99
- rowId: RowId;
100
- }
311
+ export declare type RowRenderFunction<TItem = unknown> = (row: TableRowData<TItem>, ...rest: unknown[]) => React_2.ReactNode;
101
312
 
102
313
  declare type SelectionMode_2 = 'single' | 'multiselect';
103
314
 
104
315
  export declare type SortDirection = 'ascending' | 'descending';
105
316
 
106
317
  declare interface SortState {
107
- sortColumn: ColumnId | undefined;
318
+ sortColumn: TableColumnId | undefined;
108
319
  sortDirection: SortDirection;
109
320
  }
110
321
 
111
322
  /**
112
- * Table component - TODO: add more docs
323
+ * Table component
113
324
  */
114
325
  export declare const Table: ForwardRefComponent<TableProps>;
115
326
 
116
327
  /**
117
- * TableBody component - TODO: add more docs
328
+ * TableBody component
118
329
  */
119
330
  export declare const TableBody: ForwardRefComponent<TableBodyProps>;
120
331
 
@@ -137,12 +348,12 @@ export declare type TableBodySlots = {
137
348
  export declare type TableBodyState = ComponentState<TableBodySlots> & Pick<TableContextValue, 'noNativeElements'>;
138
349
 
139
350
  /**
140
- * TableCell component - TODO: add more docs
351
+ * TableCell component
141
352
  */
142
353
  export declare const TableCell: ForwardRefComponent<TableCellProps>;
143
354
 
144
355
  /**
145
- * TableCellActions component - TODO: add more docs
356
+ * TableCellActions component
146
357
  */
147
358
  export declare const TableCellActions: ForwardRefComponent<TableCellActionsProps>;
148
359
 
@@ -173,7 +384,7 @@ export declare const tableCellClassName = "fui-TableCell";
173
384
  export declare const tableCellClassNames: SlotClassNames<TableCellSlots>;
174
385
 
175
386
  /**
176
- * TableCellLayout component - TODO: add more docs
387
+ * TableCellLayout component
177
388
  */
178
389
  export declare const TableCellLayout: ForwardRefComponent<TableCellLayoutProps>;
179
390
 
@@ -189,6 +400,10 @@ declare type TableCellLayoutContextValues = {
189
400
  * TableCellLayout Props
190
401
  */
191
402
  export declare type TableCellLayoutProps = ComponentProps<Partial<TableCellLayoutSlots>> & {
403
+ /**
404
+ * Renders design variants of the table cell
405
+ * @default undefined
406
+ */
192
407
  appearance?: 'primary';
193
408
  };
194
409
 
@@ -209,7 +424,7 @@ export declare type TableCellLayoutSlots = {
209
424
  /**
210
425
  * A layout wrapper for the main and description slots
211
426
  */
212
- wrapper: Slot<'div'>;
427
+ content: Slot<'div'>;
213
428
  };
214
429
 
215
430
  /**
@@ -217,7 +432,7 @@ export declare type TableCellLayoutSlots = {
217
432
  */
218
433
  export declare type TableCellLayoutState = ComponentState<TableCellLayoutSlots> & Pick<TableCellLayoutProps, 'appearance'> & {
219
434
  avatarSize: AvatarSizes | undefined;
220
- };
435
+ } & Pick<TableContextValue, 'size'>;
221
436
 
222
437
  /**
223
438
  * TableCell Props
@@ -231,12 +446,21 @@ export declare type TableCellSlots = {
231
446
  /**
232
447
  * State used in rendering TableCell
233
448
  */
234
- export declare type TableCellState = ComponentState<TableCellSlots> & Pick<TableContextValue, 'noNativeElements'>;
449
+ export declare type TableCellState = ComponentState<TableCellSlots> & Pick<TableContextValue, 'noNativeElements' | 'size'>;
235
450
 
236
451
  export declare const tableClassName = "fui-Table";
237
452
 
238
453
  export declare const tableClassNames: SlotClassNames<TableSlots>;
239
454
 
455
+ export declare interface TableColumnDefinition<TItem> {
456
+ columnId: TableColumnId;
457
+ compare: (a: TItem, b: TItem) => number;
458
+ renderHeaderCell: () => React_2.ReactNode;
459
+ renderCell: (item: TItem) => React_2.ReactNode;
460
+ }
461
+
462
+ export declare type TableColumnId = string | number;
463
+
240
464
  export declare const TableContextProvider: React_2.Provider<TableContextValue | undefined>;
241
465
 
242
466
  export declare type TableContextValue = {
@@ -244,14 +468,16 @@ export declare type TableContextValue = {
244
468
  * Affects the sizes of all table subcomponents
245
469
  * @default medium
246
470
  */
247
- size: 'small' | 'smaller' | 'medium';
471
+ size: 'extra-small' | 'small' | 'medium';
248
472
  /**
249
- * Render all table elements as divs intead of semantic table elements
473
+ * Render all table elements as divs instead of semantic table elements
250
474
  * Using divs no longer uses `display: table` layout but `display: flex`
475
+ * @default false
251
476
  */
252
477
  noNativeElements: boolean;
253
478
  /**
254
479
  * Whether the table is sortable
480
+ * @default false
255
481
  */
256
482
  sortable: boolean;
257
483
  };
@@ -260,13 +486,35 @@ export declare type TableContextValues = {
260
486
  table: TableContextValue;
261
487
  };
262
488
 
489
+ export declare type TableFeaturePlugin = <TItem>(tableState: TableFeaturesState<TItem>) => TableFeaturesState<TItem>;
490
+
491
+ export declare interface TableFeaturesState<TItem> extends Pick<UseTableFeaturesOptions<TItem>, 'items' | 'getRowId'> {
492
+ /**
493
+ * The row data for rendering
494
+ * @param rowEnhancer - Enhances the row with extra user data
495
+ */
496
+ getRows: <TRowState extends TableRowData<TItem> = TableRowData<TItem>>(rowEnhancer?: RowEnhancer<TItem, TRowState>) => TRowState[];
497
+ /**
498
+ * State and actions to manage row selection
499
+ */
500
+ selection: TableSelectionState;
501
+ /**
502
+ * State and actions to manage row sorting
503
+ */
504
+ sort: TableSortState<TItem>;
505
+ /**
506
+ * Table columns
507
+ */
508
+ columns: TableColumnDefinition<TItem>[];
509
+ }
510
+
263
511
  /**
264
- * TableHeader component - TODO: add more docs
512
+ * TableHeader component
265
513
  */
266
514
  export declare const TableHeader: ForwardRefComponent<TableHeaderProps>;
267
515
 
268
516
  /**
269
- * TableHeaderCell component - TODO: add more docs
517
+ * TableHeaderCell component
270
518
  */
271
519
  export declare const TableHeaderCell: ForwardRefComponent<TableHeaderCellProps>;
272
520
 
@@ -278,6 +526,9 @@ export declare const tableHeaderCellClassNames: SlotClassNames<TableHeaderCellSl
278
526
  * TableHeaderCell Props
279
527
  */
280
528
  export declare type TableHeaderCellProps = ComponentProps<Partial<TableHeaderCellSlots>> & {
529
+ /**
530
+ * @default undefined
531
+ */
281
532
  sortDirection?: SortDirection;
282
533
  };
283
534
 
@@ -319,7 +570,7 @@ export declare type TableHeaderState = ComponentState<TableHeaderSlots> & Pick<T
319
570
  export declare type TableProps = ComponentProps<TableSlots> & Partial<TableContextValue>;
320
571
 
321
572
  /**
322
- * TableRow component - TODO: add more docs
573
+ * TableRow component
323
574
  */
324
575
  export declare const TableRow: ForwardRefComponent<TableRowProps>;
325
576
 
@@ -327,12 +578,28 @@ export declare const tableRowClassName = "fui-TableRow";
327
578
 
328
579
  export declare const tableRowClassNames: SlotClassNames<TableRowSlots>;
329
580
 
581
+ export declare interface TableRowData<TItem> {
582
+ /**
583
+ * User provided data
584
+ */
585
+ item: TItem;
586
+ /**
587
+ * The row id, defaults to index position in the collection
588
+ */
589
+ rowId: TableRowId;
590
+ }
591
+
592
+ export declare type TableRowId = string | number;
593
+
594
+ export declare const TableRowIdContextProvider: React_2.Provider<TableRowId | undefined>;
595
+
330
596
  /**
331
597
  * TableRow Props
332
598
  */
333
599
  export declare type TableRowProps = ComponentProps<TableRowSlots> & {
334
600
  /**
335
- * A table row can have different variants
601
+ * A table row can have different variants. These appearances are
602
+ * intended to be used with selection.
336
603
  * @default none
337
604
  */
338
605
  appearance?: 'brand' | 'neutral' | 'none';
@@ -345,10 +612,12 @@ export declare type TableRowSlots = {
345
612
  /**
346
613
  * State used in rendering TableRow
347
614
  */
348
- export declare type TableRowState = ComponentState<TableRowSlots> & Pick<TableContextValue, 'noNativeElements' | 'size'> & Pick<Required<TableRowProps>, 'appearance'>;
615
+ export declare type TableRowState = ComponentState<TableRowSlots> & Pick<TableContextValue, 'noNativeElements' | 'size'> & Pick<Required<TableRowProps>, 'appearance'> & {
616
+ isHeaderRow: boolean;
617
+ };
349
618
 
350
619
  /**
351
- * TableSelectionCell component - TODO: add more docs
620
+ * TableSelectionCell component
352
621
  */
353
622
  export declare const TableSelectionCell: ForwardRefComponent<TableSelectionCellProps>;
354
623
 
@@ -357,18 +626,24 @@ export declare const tableSelectionCellClassNames: SlotClassNames<TableSelection
357
626
  /**
358
627
  * TableSelectionCell Props
359
628
  */
360
- export declare type TableSelectionCellProps = ComponentProps<Partial<Omit<TableSelectionCellSlots, 'media'>>> & {
629
+ export declare type TableSelectionCellProps = ComponentProps<Partial<TableSelectionCellSlots>> & {
361
630
  /**
362
- * A table can have two kinds of selection modes
631
+ * A table can have two kinds of selection modes.
632
+ * @default checkbox
363
633
  */
364
634
  type?: 'checkbox' | 'radio';
635
+ /**
636
+ * @default false
637
+ */
365
638
  checked?: CheckboxProps['checked'];
366
639
  /**
367
- * Only visible when checked or the parent row is hovered
640
+ * Only visible when checked or the parent row is hovered/focused
641
+ * @default false
368
642
  */
369
643
  subtle?: boolean;
370
644
  /**
371
645
  * Completely hides the selection cell visually but takes up the same space
646
+ * @default false
372
647
  */
373
648
  hidden?: boolean;
374
649
  };
@@ -393,27 +668,27 @@ export declare interface TableSelectionState {
393
668
  /**
394
669
  * Clears all selected rows
395
670
  */
396
- clearRows: () => void;
671
+ clearRows: (e: React_2.SyntheticEvent) => void;
397
672
  /**
398
673
  * Selects single row
399
674
  */
400
- selectRow: (rowId: RowId) => void;
675
+ selectRow: (e: React_2.SyntheticEvent, rowId: TableRowId) => void;
401
676
  /**
402
677
  * De-selects single row
403
678
  */
404
- deselectRow: (rowId: RowId) => void;
679
+ deselectRow: (e: React_2.SyntheticEvent, rowId: TableRowId) => void;
405
680
  /**
406
681
  * Toggle selection of all rows
407
682
  */
408
- toggleAllRows: () => void;
683
+ toggleAllRows: (e: React_2.SyntheticEvent) => void;
409
684
  /**
410
685
  * Toggle selection of single row
411
686
  */
412
- toggleRow: (rowId: RowId) => void;
687
+ toggleRow: (e: React_2.SyntheticEvent, rowId: TableRowId) => void;
413
688
  /**
414
689
  * Collection of row ids corresponding to selected rows
415
690
  */
416
- selectedRows: Set<RowId>;
691
+ selectedRows: Set<TableRowId>;
417
692
  /**
418
693
  * Whether all rows are selected
419
694
  */
@@ -425,7 +700,8 @@ export declare interface TableSelectionState {
425
700
  /**
426
701
  * Checks if a given rowId is selected
427
702
  */
428
- isRowSelected: (rowId: RowId) => boolean;
703
+ isRowSelected: (rowId: TableRowId) => boolean;
704
+ selectionMode: SelectionMode_2;
429
705
  }
430
706
 
431
707
  export declare type TableSlots = {
@@ -440,24 +716,24 @@ export declare interface TableSortState<TItem> {
440
716
  /**
441
717
  * Column id of the currently sorted column
442
718
  */
443
- sortColumn: ColumnId | undefined;
719
+ sortColumn: TableColumnId | undefined;
444
720
  /**
445
721
  * Set the sort direction for the specified column
446
722
  */
447
- setColumnSort: (columnId: ColumnId, sortDirection: SortDirection) => void;
723
+ setColumnSort: (event: React_2.SyntheticEvent, columnId: TableColumnId, sortDirection: SortDirection) => void;
448
724
  /**
449
725
  * Toggles the sort direction for specified column
450
726
  */
451
- toggleColumnSort: (columnId: ColumnId) => void;
727
+ toggleColumnSort: (event: React_2.SyntheticEvent, columnId: TableColumnId) => void;
452
728
  /**
453
729
  * Returns the sort direction if a column is sorted,
454
730
  * returns undefined if the column is not sorted
455
731
  */
456
- getSortDirection: (columnId: ColumnId) => SortDirection | undefined;
732
+ getSortDirection: (columnId: TableColumnId) => SortDirection | undefined;
457
733
  /**
458
734
  * Sorts rows and returns a **shallow** copy of original items
459
735
  */
460
- sort: (rows: RowState<TItem>[]) => RowState<TItem>[];
736
+ sort: <TRowState extends TableRowData<TItem>>(rows: TRowState[]) => TRowState[];
461
737
  }
462
738
 
463
739
  /**
@@ -465,47 +741,117 @@ export declare interface TableSortState<TItem> {
465
741
  */
466
742
  export declare type TableState = ComponentState<TableSlots> & Pick<Required<TableProps>, 'size' | 'noNativeElements'> & TableContextValue;
467
743
 
468
- export declare type TableStatePlugin = <TItem>(tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;
744
+ /**
745
+ * Create the state required to render DataGrid.
746
+ *
747
+ * The returned state can be modified with hooks such as useDataGridStyles_unstable,
748
+ * before being passed to renderDataGrid_unstable.
749
+ *
750
+ * @param props - props from this instance of DataGrid
751
+ * @param ref - reference to root HTMLElement of DataGrid
752
+ */
753
+ export declare const useDataGrid_unstable: (props: DataGridProps, ref: React_2.Ref<HTMLElement>) => DataGridState;
469
754
 
470
- export declare function useSelection<TItem>(options: UseSelectionOptions): (tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;
755
+ /**
756
+ * Create the state required to render DataGridBody.
757
+ *
758
+ * The returned state can be modified with hooks such as useDataGridBodyStyles_unstable,
759
+ * before being passed to renderDataGridBody_unstable.
760
+ *
761
+ * @param props - props from this instance of DataGridBody
762
+ * @param ref - reference to root HTMLElement of DataGridBody
763
+ */
764
+ export declare const useDataGridBody_unstable: (props: DataGridBodyProps, ref: React_2.Ref<HTMLElement>) => DataGridBodyState;
471
765
 
472
- declare interface UseSelectionOptions {
473
- /**
474
- * Can be multi or single select
475
- */
476
- selectionMode: SelectionMode_2;
477
- /**
478
- * Used in uncontrolled mode to set initial selected rows on mount
479
- */
480
- defaultSelectedItems?: Set<RowId>;
481
- /**
482
- * Used to control row selection
483
- */
484
- selectedItems?: Set<RowId>;
485
- /**
486
- * Called when selection changes
487
- */
488
- onSelectionChange?: (selectedItems: Set<RowId>) => void;
489
- }
766
+ /**
767
+ * Apply styling to the DataGridBody slots based on the state
768
+ */
769
+ export declare const useDataGridBodyStyles_unstable: (state: DataGridBodyState) => DataGridBodyState;
490
770
 
491
- export declare function useSort<TItem>(options: UseSortOptions): (tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;
771
+ /**
772
+ * Create the state required to render DataGridCell.
773
+ *
774
+ * The returned state can be modified with hooks such as useDataGridCellStyles_unstable,
775
+ * before being passed to renderDataGridCell_unstable.
776
+ *
777
+ * @param props - props from this instance of DataGridCell
778
+ * @param ref - reference to root HTMLElement of DataGridCell
779
+ */
780
+ export declare const useDataGridCell_unstable: (props: DataGridCellProps, ref: React_2.Ref<HTMLElement>) => DataGridCellState;
492
781
 
493
- declare interface UseSortOptions {
494
- /**
495
- * Used to control sorting
496
- */
497
- sortState?: SortState;
498
- /**
499
- * Used in uncontrolled mode to set initial sort column and direction on mount
500
- */
501
- defaultSortState?: SortState;
502
- /**
503
- * Called when sort changes
504
- */
505
- onSortChange?: (state: SortState) => void;
506
- }
782
+ /**
783
+ * Apply styling to the DataGridCell slots based on the state
784
+ */
785
+ export declare const useDataGridCellStyles_unstable: (state: DataGridCellState) => DataGridCellState;
507
786
 
508
- export declare function useTable<TItem>(options: UseTableOptions<TItem>, plugins?: TableStatePlugin[]): HeadlessTableState<TItem>;
787
+ /**
788
+ * Create the state required to render DataGridHeader.
789
+ *
790
+ * The returned state can be modified with hooks such as useDataGridHeaderStyles_unstable,
791
+ * before being passed to renderDataGridHeader_unstable.
792
+ *
793
+ * @param props - props from this instance of DataGridHeader
794
+ * @param ref - reference to root HTMLElement of DataGridHeader
795
+ */
796
+ export declare const useDataGridHeader_unstable: (props: DataGridHeaderProps, ref: React_2.Ref<HTMLElement>) => DataGridHeaderState;
797
+
798
+ /**
799
+ * Create the state required to render DataGridHeaderCell.
800
+ *
801
+ * The returned state can be modified with hooks such as useDataGridHeaderCellStyles_unstable,
802
+ * before being passed to renderDataGridHeaderCell_unstable.
803
+ *
804
+ * @param props - props from this instance of DataGridHeaderCell
805
+ * @param ref - reference to root HTMLElement of DataGridHeaderCell
806
+ */
807
+ export declare const useDataGridHeaderCell_unstable: (props: DataGridHeaderCellProps, ref: React_2.Ref<HTMLElement>) => DataGridHeaderCellState;
808
+
809
+ /**
810
+ * Apply styling to the DataGridHeaderCell slots based on the state
811
+ */
812
+ export declare const useDataGridHeaderCellStyles_unstable: (state: DataGridHeaderCellState) => DataGridHeaderCellState;
813
+
814
+ /**
815
+ * Apply styling to the DataGridHeader slots based on the state
816
+ */
817
+ export declare const useDataGridHeaderStyles_unstable: (state: DataGridHeaderState) => DataGridHeaderState;
818
+
819
+ /**
820
+ * Create the state required to render DataGridRow.
821
+ *
822
+ * The returned state can be modified with hooks such as useDataGridRowStyles_unstable,
823
+ * before being passed to renderDataGridRow_unstable.
824
+ *
825
+ * @param props - props from this instance of DataGridRow
826
+ * @param ref - reference to root HTMLElement of DataGridRow
827
+ */
828
+ export declare const useDataGridRow_unstable: (props: DataGridRowProps, ref: React_2.Ref<HTMLElement>) => DataGridRowState;
829
+
830
+ /**
831
+ * Apply styling to the DataGridRow slots based on the state
832
+ */
833
+ export declare const useDataGridRowStyles_unstable: (state: DataGridRowState) => DataGridRowState;
834
+
835
+ /**
836
+ * Create the state required to render DataGridSelectionCell.
837
+ *
838
+ * The returned state can be modified with hooks such as useDataGridSelectionCellStyles_unstable,
839
+ * before being passed to renderDataGridSelectionCell_unstable.
840
+ *
841
+ * @param props - props from this instance of DataGridSelectionCell
842
+ * @param ref - reference to root HTMLElement of DataGridSelectionCell
843
+ */
844
+ export declare const useDataGridSelectionCell_unstable: (props: DataGridSelectionCellProps, ref: React_2.Ref<HTMLElement>) => DataGridSelectionCellState;
845
+
846
+ /**
847
+ * Apply styling to the DataGridSelectionCell slots based on the state
848
+ */
849
+ export declare const useDataGridSelectionCellStyles_unstable: (state: DataGridSelectionCellState) => DataGridSelectionCellState;
850
+
851
+ /**
852
+ * Apply styling to the DataGrid slots based on the state
853
+ */
854
+ export declare const useDataGridStyles_unstable: (state: DataGridState) => DataGridState;
509
855
 
510
856
  /**
511
857
  * Create the state required to render Table.
@@ -584,6 +930,14 @@ export declare const useTableCellStyles_unstable: (state: TableCellState) => Tab
584
930
 
585
931
  export declare const useTableContext: () => TableContextValue;
586
932
 
933
+ export declare function useTableFeatures<TItem>(options: UseTableFeaturesOptions<TItem>, plugins?: TableFeaturePlugin[]): TableFeaturesState<TItem>;
934
+
935
+ export declare interface UseTableFeaturesOptions<TItem> {
936
+ columns: TableColumnDefinition<TItem>[];
937
+ items: TItem[];
938
+ getRowId?: (item: TItem) => TableRowId;
939
+ }
940
+
587
941
  /**
588
942
  * Create the state required to render TableHeader.
589
943
  *
@@ -616,12 +970,6 @@ export declare const useTableHeaderCellStyles_unstable: (state: TableHeaderCellS
616
970
  */
617
971
  export declare const useTableHeaderStyles_unstable: (state: TableHeaderState) => TableHeaderState;
618
972
 
619
- export declare interface UseTableOptions<TItem> {
620
- columns: ColumnDefinition<TItem>[];
621
- items: TItem[];
622
- getRowId?: (item: TItem) => RowId;
623
- }
624
-
625
973
  /**
626
974
  * Create the state required to render TableRow.
627
975
  *
@@ -633,11 +981,15 @@ export declare interface UseTableOptions<TItem> {
633
981
  */
634
982
  export declare const useTableRow_unstable: (props: TableRowProps, ref: React_2.Ref<HTMLElement>) => TableRowState;
635
983
 
984
+ export declare const useTableRowIdContext: () => TableRowId;
985
+
636
986
  /**
637
987
  * Apply styling to the TableRow slots based on the state
638
988
  */
639
989
  export declare const useTableRowStyles_unstable: (state: TableRowState) => TableRowState;
640
990
 
991
+ export declare function useTableSelection<TItem>(options: UseTableSelectionOptions): (tableState: TableFeaturesState<TItem>) => TableFeaturesState<TItem>;
992
+
641
993
  /**
642
994
  * Create the state required to render TableSelectionCell.
643
995
  *
@@ -654,6 +1006,42 @@ export declare const useTableSelectionCell_unstable: (props: TableSelectionCellP
654
1006
  */
655
1007
  export declare const useTableSelectionCellStyles_unstable: (state: TableSelectionCellState) => TableSelectionCellState;
656
1008
 
1009
+ declare interface UseTableSelectionOptions {
1010
+ /**
1011
+ * Can be multi or single select
1012
+ */
1013
+ selectionMode: SelectionMode_2;
1014
+ /**
1015
+ * Used in uncontrolled mode to set initial selected rows on mount
1016
+ */
1017
+ defaultSelectedItems?: Set<TableRowId>;
1018
+ /**
1019
+ * Used to control row selection
1020
+ */
1021
+ selectedItems?: Set<TableRowId>;
1022
+ /**
1023
+ * Called when selection changes
1024
+ */
1025
+ onSelectionChange?(e: React_2.SyntheticEvent, data: OnSelectionChangeData): void;
1026
+ }
1027
+
1028
+ export declare function useTableSort<TItem>(options: UseTableSortOptions): (tableState: TableFeaturesState<TItem>) => TableFeaturesState<TItem>;
1029
+
1030
+ declare interface UseTableSortOptions {
1031
+ /**
1032
+ * Used to control sorting
1033
+ */
1034
+ sortState?: SortState;
1035
+ /**
1036
+ * Used in uncontrolled mode to set initial sort column and direction on mount
1037
+ */
1038
+ defaultSortState?: SortState;
1039
+ /**
1040
+ * Called when sort changes
1041
+ */
1042
+ onSortChange?(e: React_2.SyntheticEvent, state: SortState): void;
1043
+ }
1044
+
657
1045
  /**
658
1046
  * Apply styling to the Table slots based on the state
659
1047
  */