@fluentui/react-table 9.0.0-alpha.2 → 9.0.0-alpha.20

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 (508) hide show
  1. package/CHANGELOG.json +1071 -1
  2. package/CHANGELOG.md +280 -2
  3. package/dist/index.d.ts +551 -113
  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/Table.js.map +1 -1
  19. package/lib/TableBody.js.map +1 -1
  20. package/lib/TableCell.js.map +1 -1
  21. package/lib/TableCellActions.js.map +1 -1
  22. package/lib/TableCellLayout.js.map +1 -1
  23. package/lib/TableCellPrimaryLayout.js.map +1 -1
  24. package/lib/TableHeader.js.map +1 -1
  25. package/lib/TableHeaderCell.js.map +1 -1
  26. package/lib/TableRow.js.map +1 -1
  27. package/lib/TableSelectionCell.js.map +1 -1
  28. package/lib/components/DataGrid/DataGrid.js +15 -0
  29. package/lib/components/DataGrid/DataGrid.js.map +1 -0
  30. package/lib/components/DataGrid/DataGrid.types.js +2 -0
  31. package/lib/components/DataGrid/DataGrid.types.js.map +1 -0
  32. package/lib/components/DataGrid/index.js +6 -0
  33. package/lib/components/DataGrid/index.js.map +1 -0
  34. package/lib/components/DataGrid/renderDataGrid.js +12 -0
  35. package/lib/components/DataGrid/renderDataGrid.js.map +1 -0
  36. package/lib/components/DataGrid/useDataGrid.js +63 -0
  37. package/lib/components/DataGrid/useDataGrid.js.map +1 -0
  38. package/lib/components/DataGrid/useDataGridContextValues.js +15 -0
  39. package/lib/components/DataGrid/useDataGridContextValues.js.map +1 -0
  40. package/lib/components/DataGrid/useDataGridStyles.js +14 -0
  41. package/lib/components/DataGrid/useDataGridStyles.js.map +1 -0
  42. package/lib/components/DataGridBody/DataGridBody.js +14 -0
  43. package/lib/components/DataGridBody/DataGridBody.js.map +1 -0
  44. package/lib/components/DataGridBody/DataGridBody.types.js +2 -0
  45. package/lib/components/DataGridBody/DataGridBody.types.js.map +1 -0
  46. package/lib/components/DataGridBody/index.js +6 -0
  47. package/lib/components/DataGridBody/index.js.map +1 -0
  48. package/lib/components/DataGridBody/renderDataGridBody.js +19 -0
  49. package/lib/components/DataGridBody/renderDataGridBody.js.map +1 -0
  50. package/lib/components/DataGridBody/useDataGridBody.js +31 -0
  51. package/lib/components/DataGridBody/useDataGridBody.js.map +1 -0
  52. package/lib/components/DataGridBody/useDataGridBodyStyles.js +14 -0
  53. package/lib/components/DataGridBody/useDataGridBodyStyles.js.map +1 -0
  54. package/lib/components/DataGridCell/DataGridCell.js +14 -0
  55. package/lib/components/DataGridCell/DataGridCell.js.map +1 -0
  56. package/lib/components/DataGridCell/DataGridCell.types.js +2 -0
  57. package/lib/components/DataGridCell/DataGridCell.types.js.map +1 -0
  58. package/lib/components/DataGridCell/index.js +6 -0
  59. package/lib/components/DataGridCell/index.js.map +1 -0
  60. package/lib/components/DataGridCell/renderDataGridCell.js +8 -0
  61. package/lib/components/DataGridCell/renderDataGridCell.js.map +1 -0
  62. package/lib/components/DataGridCell/useDataGridCell.js +21 -0
  63. package/lib/components/DataGridCell/useDataGridCell.js.map +1 -0
  64. package/lib/components/DataGridCell/useDataGridCellStyles.js +14 -0
  65. package/lib/components/DataGridCell/useDataGridCellStyles.js.map +1 -0
  66. package/lib/components/DataGridHeader/DataGridHeader.js +14 -0
  67. package/lib/components/DataGridHeader/DataGridHeader.js.map +1 -0
  68. package/lib/components/DataGridHeader/DataGridHeader.types.js +2 -0
  69. package/lib/components/DataGridHeader/DataGridHeader.types.js.map +1 -0
  70. package/lib/components/DataGridHeader/index.js +6 -0
  71. package/lib/components/DataGridHeader/index.js.map +1 -0
  72. package/lib/components/DataGridHeader/renderDataGridHeader.js +8 -0
  73. package/lib/components/DataGridHeader/renderDataGridHeader.js.map +1 -0
  74. package/lib/components/DataGridHeader/useDataGridHeader.js +17 -0
  75. package/lib/components/DataGridHeader/useDataGridHeader.js.map +1 -0
  76. package/lib/components/DataGridHeader/useDataGridHeaderStyles.js +14 -0
  77. package/lib/components/DataGridHeader/useDataGridHeaderStyles.js.map +1 -0
  78. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js +14 -0
  79. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -0
  80. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js +2 -0
  81. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -0
  82. package/lib/components/DataGridHeaderCell/index.js +6 -0
  83. package/lib/components/DataGridHeaderCell/index.js.map +1 -0
  84. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js +8 -0
  85. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -0
  86. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js +37 -0
  87. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -0
  88. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js +22 -0
  89. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js.map +1 -0
  90. package/lib/components/DataGridRow/DataGridRow.js +14 -0
  91. package/lib/components/DataGridRow/DataGridRow.js.map +1 -0
  92. package/lib/components/DataGridRow/DataGridRow.types.js +2 -0
  93. package/lib/components/DataGridRow/DataGridRow.types.js.map +1 -0
  94. package/lib/components/DataGridRow/index.js +6 -0
  95. package/lib/components/DataGridRow/index.js.map +1 -0
  96. package/lib/components/DataGridRow/renderDataGridRow.js +21 -0
  97. package/lib/components/DataGridRow/renderDataGridRow.js.map +1 -0
  98. package/lib/components/DataGridRow/useDataGridRow.js +70 -0
  99. package/lib/components/DataGridRow/useDataGridRow.js.map +1 -0
  100. package/lib/components/DataGridRow/useDataGridRowStyles.js +18 -0
  101. package/lib/components/DataGridRow/useDataGridRowStyles.js.map +1 -0
  102. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js +14 -0
  103. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -0
  104. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js +2 -0
  105. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -0
  106. package/lib/components/DataGridSelectionCell/index.js +6 -0
  107. package/lib/components/DataGridSelectionCell/index.js.map +1 -0
  108. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js +8 -0
  109. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -0
  110. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js +47 -0
  111. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -0
  112. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js +22 -0
  113. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js.map +1 -0
  114. package/lib/components/Table/Table.js +1 -2
  115. package/lib/components/Table/Table.js.map +1 -1
  116. package/lib/components/Table/Table.types.js.map +1 -1
  117. package/lib/components/Table/index.js.map +1 -1
  118. package/lib/components/Table/renderTable.js +2 -2
  119. package/lib/components/Table/renderTable.js.map +1 -1
  120. package/lib/components/Table/useTable.js +0 -2
  121. package/lib/components/Table/useTable.js.map +1 -1
  122. package/lib/components/Table/useTableContextValues.js.map +1 -1
  123. package/lib/components/Table/useTableStyles.js +26 -11
  124. package/lib/components/Table/useTableStyles.js.map +1 -1
  125. package/lib/components/TableBody/TableBody.js +1 -2
  126. package/lib/components/TableBody/TableBody.js.map +1 -1
  127. package/lib/components/TableBody/TableBody.types.js.map +1 -1
  128. package/lib/components/TableBody/index.js.map +1 -1
  129. package/lib/components/TableBody/renderTableBody.js +3 -4
  130. package/lib/components/TableBody/renderTableBody.js.map +1 -1
  131. package/lib/components/TableBody/useTableBody.js +2 -3
  132. package/lib/components/TableBody/useTableBody.js.map +1 -1
  133. package/lib/components/TableBody/useTableBodyStyles.js +16 -9
  134. package/lib/components/TableBody/useTableBodyStyles.js.map +1 -1
  135. package/lib/components/TableCell/TableCell.js +1 -2
  136. package/lib/components/TableCell/TableCell.js.map +1 -1
  137. package/lib/components/TableCell/TableCell.types.js.map +1 -1
  138. package/lib/components/TableCell/index.js.map +1 -1
  139. package/lib/components/TableCell/renderTableCell.js +2 -2
  140. package/lib/components/TableCell/renderTableCell.js.map +1 -1
  141. package/lib/components/TableCell/useTableCell.js +5 -4
  142. package/lib/components/TableCell/useTableCell.js.map +1 -1
  143. package/lib/components/TableCell/useTableCellStyles.js +58 -13
  144. package/lib/components/TableCell/useTableCellStyles.js.map +1 -1
  145. package/lib/components/TableCellActions/TableCellActions.js +1 -2
  146. package/lib/components/TableCellActions/TableCellActions.js.map +1 -1
  147. package/lib/components/TableCellActions/TableCellActions.types.js.map +1 -1
  148. package/lib/components/TableCellActions/index.js.map +1 -1
  149. package/lib/components/TableCellActions/renderTableCellActions.js +3 -4
  150. package/lib/components/TableCellActions/renderTableCellActions.js.map +1 -1
  151. package/lib/components/TableCellActions/useTableCellActions.js +5 -5
  152. package/lib/components/TableCellActions/useTableCellActions.js.map +1 -1
  153. package/lib/components/TableCellActions/useTableCellActionsStyles.js +12 -20
  154. package/lib/components/TableCellActions/useTableCellActionsStyles.js.map +1 -1
  155. package/lib/components/TableCellLayout/TableCellLayout.js +3 -3
  156. package/lib/components/TableCellLayout/TableCellLayout.js.map +1 -1
  157. package/lib/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  158. package/lib/components/TableCellLayout/index.js.map +1 -1
  159. package/lib/components/TableCellLayout/renderTableCellLayout.js +14 -7
  160. package/lib/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  161. package/lib/components/TableCellLayout/useTableCellLayout.js +14 -4
  162. package/lib/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  163. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js +13 -0
  164. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -0
  165. package/lib/components/TableCellLayout/useTableCellLayoutStyles.js +41 -35
  166. package/lib/components/TableCellLayout/useTableCellLayoutStyles.js.map +1 -1
  167. package/lib/components/TableHeader/TableHeader.js +1 -2
  168. package/lib/components/TableHeader/TableHeader.js.map +1 -1
  169. package/lib/components/TableHeader/TableHeader.types.js.map +1 -1
  170. package/lib/components/TableHeader/index.js.map +1 -1
  171. package/lib/components/TableHeader/renderTableHeader.js +6 -3
  172. package/lib/components/TableHeader/renderTableHeader.js.map +1 -1
  173. package/lib/components/TableHeader/useTableHeader.js +3 -11
  174. package/lib/components/TableHeader/useTableHeader.js.map +1 -1
  175. package/lib/components/TableHeader/useTableHeaderStyles.js +16 -9
  176. package/lib/components/TableHeader/useTableHeaderStyles.js.map +1 -1
  177. package/lib/components/TableHeaderCell/TableHeaderCell.js +1 -2
  178. package/lib/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  179. package/lib/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  180. package/lib/components/TableHeaderCell/index.js.map +1 -1
  181. package/lib/components/TableHeaderCell/renderTableHeaderCell.js +6 -4
  182. package/lib/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  183. package/lib/components/TableHeaderCell/useTableHeaderCell.js +13 -9
  184. package/lib/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  185. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.js +83 -50
  186. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.js.map +1 -1
  187. package/lib/components/TableRow/TableRow.js +1 -2
  188. package/lib/components/TableRow/TableRow.js.map +1 -1
  189. package/lib/components/TableRow/TableRow.types.js.map +1 -1
  190. package/lib/components/TableRow/index.js.map +1 -1
  191. package/lib/components/TableRow/renderTableRow.js +3 -4
  192. package/lib/components/TableRow/renderTableRow.js.map +1 -1
  193. package/lib/components/TableRow/useTableRow.js +12 -6
  194. package/lib/components/TableRow/useTableRow.js.map +1 -1
  195. package/lib/components/TableRow/useTableRowStyles.js +196 -28
  196. package/lib/components/TableRow/useTableRowStyles.js.map +1 -1
  197. package/lib/components/TableSelectionCell/TableSelectionCell.js +1 -2
  198. package/lib/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  199. package/lib/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  200. package/lib/components/TableSelectionCell/index.js.map +1 -1
  201. package/lib/components/TableSelectionCell/renderTableSelectionCell.js +6 -4
  202. package/lib/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  203. package/lib/components/TableSelectionCell/useTableSelectionCell.js +25 -12
  204. package/lib/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  205. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.js +59 -27
  206. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.js.map +1 -1
  207. package/lib/contexts/columnIdContext.js +9 -0
  208. package/lib/contexts/columnIdContext.js.map +1 -0
  209. package/lib/contexts/dataGridContext.js +13 -0
  210. package/lib/contexts/dataGridContext.js.map +1 -0
  211. package/lib/contexts/rowIdContext.js +9 -0
  212. package/lib/contexts/rowIdContext.js.map +1 -0
  213. package/lib/contexts/tableContext.js +0 -1
  214. package/lib/contexts/tableContext.js.map +1 -1
  215. package/lib/contexts/tableHeaderContext.js +6 -0
  216. package/lib/contexts/tableHeaderContext.js.map +1 -0
  217. package/lib/hooks/createColumn.js +35 -0
  218. package/lib/hooks/createColumn.js.map +1 -0
  219. package/lib/hooks/index.js +4 -1
  220. package/lib/hooks/index.js.map +1 -1
  221. package/lib/hooks/selectionManager.js +16 -32
  222. package/lib/hooks/selectionManager.js.map +1 -1
  223. package/lib/hooks/types.js.map +1 -1
  224. package/lib/hooks/useTableFeatures.js +35 -0
  225. package/lib/hooks/useTableFeatures.js.map +1 -0
  226. package/lib/hooks/useTableSelection.js +74 -0
  227. package/lib/hooks/useTableSelection.js.map +1 -0
  228. package/lib/hooks/useTableSort.js +85 -0
  229. package/lib/hooks/useTableSort.js.map +1 -0
  230. package/lib/index.js +9 -1
  231. package/lib/index.js.map +1 -1
  232. package/lib-commonjs/DataGrid.js +8 -0
  233. package/lib-commonjs/DataGrid.js.map +1 -0
  234. package/lib-commonjs/DataGridBody.js +8 -0
  235. package/lib-commonjs/DataGridBody.js.map +1 -0
  236. package/lib-commonjs/DataGridCell.js +8 -0
  237. package/lib-commonjs/DataGridCell.js.map +1 -0
  238. package/lib-commonjs/DataGridHeader.js +8 -0
  239. package/lib-commonjs/DataGridHeader.js.map +1 -0
  240. package/lib-commonjs/DataGridHeaderCell.js +8 -0
  241. package/lib-commonjs/DataGridHeaderCell.js.map +1 -0
  242. package/lib-commonjs/DataGridRow.js +8 -0
  243. package/lib-commonjs/DataGridRow.js.map +1 -0
  244. package/lib-commonjs/DataGridSelectionCell.js +8 -0
  245. package/lib-commonjs/DataGridSelectionCell.js.map +1 -0
  246. package/lib-commonjs/Table.js +0 -2
  247. package/lib-commonjs/Table.js.map +1 -1
  248. package/lib-commonjs/TableBody.js +0 -2
  249. package/lib-commonjs/TableBody.js.map +1 -1
  250. package/lib-commonjs/TableCell.js +0 -2
  251. package/lib-commonjs/TableCell.js.map +1 -1
  252. package/lib-commonjs/TableCellActions.js +0 -2
  253. package/lib-commonjs/TableCellActions.js.map +1 -1
  254. package/lib-commonjs/TableCellLayout.js +0 -2
  255. package/lib-commonjs/TableCellLayout.js.map +1 -1
  256. package/lib-commonjs/TableCellPrimaryLayout.js +0 -2
  257. package/lib-commonjs/TableCellPrimaryLayout.js.map +1 -1
  258. package/lib-commonjs/TableHeader.js +0 -2
  259. package/lib-commonjs/TableHeader.js.map +1 -1
  260. package/lib-commonjs/TableHeaderCell.js +0 -2
  261. package/lib-commonjs/TableHeaderCell.js.map +1 -1
  262. package/lib-commonjs/TableRow.js +0 -2
  263. package/lib-commonjs/TableRow.js.map +1 -1
  264. package/lib-commonjs/TableSelectionCell.js +0 -2
  265. package/lib-commonjs/TableSelectionCell.js.map +1 -1
  266. package/lib-commonjs/components/DataGrid/DataGrid.js +21 -0
  267. package/lib-commonjs/components/DataGrid/DataGrid.js.map +1 -0
  268. package/lib-commonjs/components/DataGrid/DataGrid.types.js +6 -0
  269. package/lib-commonjs/components/DataGrid/DataGrid.types.js.map +1 -0
  270. package/lib-commonjs/components/DataGrid/index.js +12 -0
  271. package/lib-commonjs/components/DataGrid/index.js.map +1 -0
  272. package/lib-commonjs/components/DataGrid/renderDataGrid.js +19 -0
  273. package/lib-commonjs/components/DataGrid/renderDataGrid.js.map +1 -0
  274. package/lib-commonjs/components/DataGrid/useDataGrid.js +70 -0
  275. package/lib-commonjs/components/DataGrid/useDataGrid.js.map +1 -0
  276. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js +22 -0
  277. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js.map +1 -0
  278. package/lib-commonjs/components/DataGrid/useDataGridStyles.js +21 -0
  279. package/lib-commonjs/components/DataGrid/useDataGridStyles.js.map +1 -0
  280. package/lib-commonjs/components/DataGridBody/DataGridBody.js +20 -0
  281. package/lib-commonjs/components/DataGridBody/DataGridBody.js.map +1 -0
  282. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js +6 -0
  283. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js.map +1 -0
  284. package/lib-commonjs/components/DataGridBody/index.js +12 -0
  285. package/lib-commonjs/components/DataGridBody/index.js.map +1 -0
  286. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js +26 -0
  287. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js.map +1 -0
  288. package/lib-commonjs/components/DataGridBody/useDataGridBody.js +38 -0
  289. package/lib-commonjs/components/DataGridBody/useDataGridBody.js.map +1 -0
  290. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.js +21 -0
  291. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.js.map +1 -0
  292. package/lib-commonjs/components/DataGridCell/DataGridCell.js +20 -0
  293. package/lib-commonjs/components/DataGridCell/DataGridCell.js.map +1 -0
  294. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js +6 -0
  295. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js.map +1 -0
  296. package/lib-commonjs/components/DataGridCell/index.js +12 -0
  297. package/lib-commonjs/components/DataGridCell/index.js.map +1 -0
  298. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js +15 -0
  299. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js.map +1 -0
  300. package/lib-commonjs/components/DataGridCell/useDataGridCell.js +28 -0
  301. package/lib-commonjs/components/DataGridCell/useDataGridCell.js.map +1 -0
  302. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.js +21 -0
  303. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.js.map +1 -0
  304. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js +20 -0
  305. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js.map +1 -0
  306. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js +6 -0
  307. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js.map +1 -0
  308. package/lib-commonjs/components/DataGridHeader/index.js +12 -0
  309. package/lib-commonjs/components/DataGridHeader/index.js.map +1 -0
  310. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js +15 -0
  311. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js.map +1 -0
  312. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js +24 -0
  313. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js.map +1 -0
  314. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.js +21 -0
  315. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.js.map +1 -0
  316. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js +20 -0
  317. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -0
  318. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js +6 -0
  319. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -0
  320. package/lib-commonjs/components/DataGridHeaderCell/index.js +12 -0
  321. package/lib-commonjs/components/DataGridHeaderCell/index.js.map +1 -0
  322. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js +15 -0
  323. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -0
  324. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js +44 -0
  325. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -0
  326. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js +29 -0
  327. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js.map +1 -0
  328. package/lib-commonjs/components/DataGridRow/DataGridRow.js +20 -0
  329. package/lib-commonjs/components/DataGridRow/DataGridRow.js.map +1 -0
  330. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js +6 -0
  331. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js.map +1 -0
  332. package/lib-commonjs/components/DataGridRow/index.js +12 -0
  333. package/lib-commonjs/components/DataGridRow/index.js.map +1 -0
  334. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js +28 -0
  335. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js.map +1 -0
  336. package/lib-commonjs/components/DataGridRow/useDataGridRow.js +77 -0
  337. package/lib-commonjs/components/DataGridRow/useDataGridRow.js.map +1 -0
  338. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.js +25 -0
  339. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.js.map +1 -0
  340. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js +20 -0
  341. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -0
  342. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js +6 -0
  343. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -0
  344. package/lib-commonjs/components/DataGridSelectionCell/index.js +12 -0
  345. package/lib-commonjs/components/DataGridSelectionCell/index.js.map +1 -0
  346. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js +15 -0
  347. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -0
  348. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js +54 -0
  349. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -0
  350. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js +29 -0
  351. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js.map +1 -0
  352. package/lib-commonjs/components/Table/Table.js +1 -8
  353. package/lib-commonjs/components/Table/Table.js.map +1 -1
  354. package/lib-commonjs/components/Table/Table.types.js.map +1 -1
  355. package/lib-commonjs/components/Table/index.js +0 -6
  356. package/lib-commonjs/components/Table/index.js.map +1 -1
  357. package/lib-commonjs/components/Table/renderTable.js +2 -7
  358. package/lib-commonjs/components/Table/renderTable.js.map +1 -1
  359. package/lib-commonjs/components/Table/useTable.js +0 -5
  360. package/lib-commonjs/components/Table/useTable.js.map +1 -1
  361. package/lib-commonjs/components/Table/useTableContextValues.js +0 -3
  362. package/lib-commonjs/components/Table/useTableContextValues.js.map +1 -1
  363. package/lib-commonjs/components/Table/useTableStyles.js +26 -15
  364. package/lib-commonjs/components/Table/useTableStyles.js.map +1 -1
  365. package/lib-commonjs/components/TableBody/TableBody.js +1 -7
  366. package/lib-commonjs/components/TableBody/TableBody.js.map +1 -1
  367. package/lib-commonjs/components/TableBody/TableBody.types.js.map +1 -1
  368. package/lib-commonjs/components/TableBody/index.js +0 -6
  369. package/lib-commonjs/components/TableBody/index.js.map +1 -1
  370. package/lib-commonjs/components/TableBody/renderTableBody.js +3 -8
  371. package/lib-commonjs/components/TableBody/renderTableBody.js.map +1 -1
  372. package/lib-commonjs/components/TableBody/useTableBody.js +2 -7
  373. package/lib-commonjs/components/TableBody/useTableBody.js.map +1 -1
  374. package/lib-commonjs/components/TableBody/useTableBodyStyles.js +16 -11
  375. package/lib-commonjs/components/TableBody/useTableBodyStyles.js.map +1 -1
  376. package/lib-commonjs/components/TableCell/TableCell.js +1 -7
  377. package/lib-commonjs/components/TableCell/TableCell.js.map +1 -1
  378. package/lib-commonjs/components/TableCell/TableCell.types.js.map +1 -1
  379. package/lib-commonjs/components/TableCell/index.js +0 -6
  380. package/lib-commonjs/components/TableCell/index.js.map +1 -1
  381. package/lib-commonjs/components/TableCell/renderTableCell.js +2 -6
  382. package/lib-commonjs/components/TableCell/renderTableCell.js.map +1 -1
  383. package/lib-commonjs/components/TableCell/useTableCell.js +5 -8
  384. package/lib-commonjs/components/TableCell/useTableCell.js.map +1 -1
  385. package/lib-commonjs/components/TableCell/useTableCellStyles.js +58 -17
  386. package/lib-commonjs/components/TableCell/useTableCellStyles.js.map +1 -1
  387. package/lib-commonjs/components/TableCellActions/TableCellActions.js +1 -7
  388. package/lib-commonjs/components/TableCellActions/TableCellActions.js.map +1 -1
  389. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js.map +1 -1
  390. package/lib-commonjs/components/TableCellActions/index.js +0 -6
  391. package/lib-commonjs/components/TableCellActions/index.js.map +1 -1
  392. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js +3 -8
  393. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js.map +1 -1
  394. package/lib-commonjs/components/TableCellActions/useTableCellActions.js +4 -8
  395. package/lib-commonjs/components/TableCellActions/useTableCellActions.js.map +1 -1
  396. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.js +12 -25
  397. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.js.map +1 -1
  398. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js +3 -8
  399. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js.map +1 -1
  400. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  401. package/lib-commonjs/components/TableCellLayout/index.js +0 -6
  402. package/lib-commonjs/components/TableCellLayout/index.js.map +1 -1
  403. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js +14 -11
  404. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  405. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js +14 -7
  406. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  407. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js +20 -0
  408. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -0
  409. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.js +41 -39
  410. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.js.map +1 -1
  411. package/lib-commonjs/components/TableHeader/TableHeader.js +1 -7
  412. package/lib-commonjs/components/TableHeader/TableHeader.js.map +1 -1
  413. package/lib-commonjs/components/TableHeader/TableHeader.types.js.map +1 -1
  414. package/lib-commonjs/components/TableHeader/index.js +0 -6
  415. package/lib-commonjs/components/TableHeader/index.js.map +1 -1
  416. package/lib-commonjs/components/TableHeader/renderTableHeader.js +6 -7
  417. package/lib-commonjs/components/TableHeader/renderTableHeader.js.map +1 -1
  418. package/lib-commonjs/components/TableHeader/useTableHeader.js +3 -16
  419. package/lib-commonjs/components/TableHeader/useTableHeader.js.map +1 -1
  420. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.js +16 -12
  421. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.js.map +1 -1
  422. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js +1 -7
  423. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  424. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  425. package/lib-commonjs/components/TableHeaderCell/index.js +0 -6
  426. package/lib-commonjs/components/TableHeaderCell/index.js.map +1 -1
  427. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js +6 -8
  428. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  429. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js +12 -15
  430. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  431. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.js +83 -54
  432. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.js.map +1 -1
  433. package/lib-commonjs/components/TableRow/TableRow.js +1 -7
  434. package/lib-commonjs/components/TableRow/TableRow.js.map +1 -1
  435. package/lib-commonjs/components/TableRow/TableRow.types.js.map +1 -1
  436. package/lib-commonjs/components/TableRow/index.js +0 -6
  437. package/lib-commonjs/components/TableRow/index.js.map +1 -1
  438. package/lib-commonjs/components/TableRow/renderTableRow.js +3 -8
  439. package/lib-commonjs/components/TableRow/renderTableRow.js.map +1 -1
  440. package/lib-commonjs/components/TableRow/useTableRow.js +11 -9
  441. package/lib-commonjs/components/TableRow/useTableRow.js.map +1 -1
  442. package/lib-commonjs/components/TableRow/useTableRowStyles.js +196 -33
  443. package/lib-commonjs/components/TableRow/useTableRowStyles.js.map +1 -1
  444. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js +1 -7
  445. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  446. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  447. package/lib-commonjs/components/TableSelectionCell/index.js +0 -6
  448. package/lib-commonjs/components/TableSelectionCell/index.js.map +1 -1
  449. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js +6 -8
  450. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  451. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js +24 -18
  452. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  453. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.js +59 -30
  454. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.js.map +1 -1
  455. package/lib-commonjs/contexts/columnIdContext.js +16 -0
  456. package/lib-commonjs/contexts/columnIdContext.js.map +1 -0
  457. package/lib-commonjs/contexts/dataGridContext.js +20 -0
  458. package/lib-commonjs/contexts/dataGridContext.js.map +1 -0
  459. package/lib-commonjs/contexts/rowIdContext.js +16 -0
  460. package/lib-commonjs/contexts/rowIdContext.js.map +1 -0
  461. package/lib-commonjs/contexts/tableContext.js +0 -5
  462. package/lib-commonjs/contexts/tableContext.js.map +1 -1
  463. package/lib-commonjs/contexts/tableHeaderContext.js +13 -0
  464. package/lib-commonjs/contexts/tableHeaderContext.js.map +1 -0
  465. package/lib-commonjs/hooks/createColumn.js +42 -0
  466. package/lib-commonjs/hooks/createColumn.js.map +1 -0
  467. package/lib-commonjs/hooks/index.js +4 -4
  468. package/lib-commonjs/hooks/index.js.map +1 -1
  469. package/lib-commonjs/hooks/selectionManager.js +16 -34
  470. package/lib-commonjs/hooks/selectionManager.js.map +1 -1
  471. package/lib-commonjs/hooks/types.js.map +1 -1
  472. package/lib-commonjs/hooks/useTableFeatures.js +42 -0
  473. package/lib-commonjs/hooks/useTableFeatures.js.map +1 -0
  474. package/lib-commonjs/hooks/useTableSelection.js +82 -0
  475. package/lib-commonjs/hooks/useTableSelection.js.map +1 -0
  476. package/lib-commonjs/hooks/useTableSort.js +93 -0
  477. package/lib-commonjs/hooks/useTableSort.js.map +1 -0
  478. package/lib-commonjs/index.js +252 -26
  479. package/lib-commonjs/index.js.map +1 -1
  480. package/package.json +30 -17
  481. package/lib/hooks/useSelection.js +0 -47
  482. package/lib/hooks/useSelection.js.map +0 -1
  483. package/lib/hooks/useSort.js +0 -72
  484. package/lib/hooks/useSort.js.map +0 -1
  485. package/lib/hooks/useTable.js +0 -87
  486. package/lib/hooks/useTable.js.map +0 -1
  487. package/lib/navigationModes/cell.js +0 -250
  488. package/lib/navigationModes/cell.js.map +0 -1
  489. package/lib/navigationModes/composite.js +0 -208
  490. package/lib/navigationModes/composite.js.map +0 -1
  491. package/lib/navigationModes/index.js +0 -3
  492. package/lib/navigationModes/index.js.map +0 -1
  493. package/lib/navigationModes/useNavigationMode.js +0 -42
  494. package/lib/navigationModes/useNavigationMode.js.map +0 -1
  495. package/lib-commonjs/hooks/useSelection.js +0 -59
  496. package/lib-commonjs/hooks/useSelection.js.map +0 -1
  497. package/lib-commonjs/hooks/useSort.js +0 -82
  498. package/lib-commonjs/hooks/useSort.js.map +0 -1
  499. package/lib-commonjs/hooks/useTable.js +0 -99
  500. package/lib-commonjs/hooks/useTable.js.map +0 -1
  501. package/lib-commonjs/navigationModes/cell.js +0 -259
  502. package/lib-commonjs/navigationModes/cell.js.map +0 -1
  503. package/lib-commonjs/navigationModes/composite.js +0 -217
  504. package/lib-commonjs/navigationModes/composite.js.map +0 -1
  505. package/lib-commonjs/navigationModes/index.js +0 -16
  506. package/lib-commonjs/navigationModes/index.js.map +0 -1
  507. package/lib-commonjs/navigationModes/useNavigationMode.js +0 -55
  508. package/lib-commonjs/navigationModes/useNavigationMode.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -1,28 +1,265 @@
1
1
  /// <reference types="react" />
2
2
 
3
3
  import { ARIAButtonSlotProps } from '@fluentui/react-aria';
4
+ import type { AvatarSizes } from '@fluentui/react-avatar';
4
5
  import type { Checkbox } from '@fluentui/react-checkbox';
5
6
  import type { CheckboxProps } from '@fluentui/react-checkbox';
6
7
  import type { ComponentProps } from '@fluentui/react-utilities';
7
8
  import type { ComponentState } from '@fluentui/react-utilities';
8
9
  import type { ForwardRefComponent } from '@fluentui/react-utilities';
10
+ import type { Radio } from '@fluentui/react-radio';
9
11
  import * as React_2 from 'react';
12
+ import { ReactNode } from 'react';
10
13
  import type { Slot } from '@fluentui/react-utilities';
11
14
  import type { SlotClassNames } from '@fluentui/react-utilities';
12
15
 
13
- export declare interface ColumnDefinition<TItem> {
14
- columnId: ColumnId;
15
- 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;
16
32
  }
17
33
 
18
- export declare type ColumnId = string | number;
34
+ /**
35
+ * DataGrid component
36
+ */
37
+ export declare const DataGrid: ForwardRefComponent<DataGridProps>;
19
38
 
20
- declare type OnSelectionChangeCallback = (selectedItems: Set<RowId>) => void;
39
+ /**
40
+ * DataGridBody component
41
+ */
42
+ export declare const DataGridBody: ForwardRefComponent<DataGridBodyProps> & (<TItem>(props: DataGridBodyProps<TItem>) => JSX.Element);
21
43
 
22
- declare type OnSortChangeCallback = (state: {
23
- sortColumn: ColumnId | undefined;
24
- sortDirection: SortDirection;
25
- }) => void;
44
+ export declare const dataGridBodyClassNames: SlotClassNames<DataGridBodySlots>;
45
+
46
+ /**
47
+ * DataGridBody Props
48
+ */
49
+ export declare type DataGridBodyProps<TItem = unknown> = Omit<TableBodyProps, 'children'> & {
50
+ /**
51
+ * Render function for rows
52
+ */
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> & {
88
+ /**
89
+ * How focus navigation will work in the datagrid
90
+ * @default cell
91
+ */
92
+ focusMode: DataGridFocusMode;
93
+ /**
94
+ * Lets child components know if rows selection is enabled
95
+ * @see selectionMode prop enables row selection on the component
96
+ */
97
+ selectableRows: boolean;
98
+ /**
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
163
+ */
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>;
227
+ }
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;
26
263
 
27
264
  /**
28
265
  * Render the final JSX of Table
@@ -47,7 +284,7 @@ export declare const renderTableCellActions_unstable: (state: TableCellActionsSt
47
284
  /**
48
285
  * Render the final JSX of TableCellLayout
49
286
  */
50
- export declare const renderTableCellLayout_unstable: (state: TableCellLayoutState) => JSX.Element;
287
+ export declare const renderTableCellLayout_unstable: (state: TableCellLayoutState, contextValues: TableCellLayoutContextValues) => JSX.Element;
51
288
 
52
289
  /**
53
290
  * Render the final JSX of TableHeader
@@ -69,40 +306,26 @@ export declare const renderTableRow_unstable: (state: TableRowState) => JSX.Elem
69
306
  */
70
307
  export declare const renderTableSelectionCell_unstable: (state: TableSelectionCellState) => JSX.Element;
71
308
 
72
- declare type RowEnhancer<TItem, TRowState extends RowState<TItem> = RowState<TItem>> = (row: RowState<TItem>, state: {
73
- selection: TableSelectionState;
74
- sort: TableSortState;
75
- }) => TRowState;
76
-
77
- export declare type RowId = string | number;
309
+ declare type RowEnhancer<TItem, TRowState extends TableRowData<TItem> = TableRowData<TItem>> = (row: TableRowData<TItem>) => TRowState;
78
310
 
79
- export declare interface RowState<TItem> {
80
- /**
81
- * User provided data
82
- */
83
- item: TItem;
84
- /**
85
- * The row id, defaults to index position in the collection
86
- */
87
- rowId: RowId;
88
- }
311
+ export declare type RowRenderFunction<TItem = unknown> = (row: TableRowData<TItem>, ...rest: unknown[]) => React_2.ReactNode;
89
312
 
90
313
  declare type SelectionMode_2 = 'single' | 'multiselect';
91
314
 
92
315
  export declare type SortDirection = 'ascending' | 'descending';
93
316
 
94
317
  declare interface SortState {
95
- sortColumn: ColumnId | undefined;
318
+ sortColumn: TableColumnId | undefined;
96
319
  sortDirection: SortDirection;
97
320
  }
98
321
 
99
322
  /**
100
- * Table component - TODO: add more docs
323
+ * Table component
101
324
  */
102
325
  export declare const Table: ForwardRefComponent<TableProps>;
103
326
 
104
327
  /**
105
- * TableBody component - TODO: add more docs
328
+ * TableBody component
106
329
  */
107
330
  export declare const TableBody: ForwardRefComponent<TableBodyProps>;
108
331
 
@@ -122,15 +345,15 @@ export declare type TableBodySlots = {
122
345
  /**
123
346
  * State used in rendering TableBody
124
347
  */
125
- export declare type TableBodyState = ComponentState<TableBodySlots>;
348
+ export declare type TableBodyState = ComponentState<TableBodySlots> & Pick<TableContextValue, 'noNativeElements'>;
126
349
 
127
350
  /**
128
- * TableCell component - TODO: add more docs
351
+ * TableCell component
129
352
  */
130
353
  export declare const TableCell: ForwardRefComponent<TableCellProps>;
131
354
 
132
355
  /**
133
- * TableCellActions component - TODO: add more docs
356
+ * TableCellActions component
134
357
  */
135
358
  export declare const TableCellActions: ForwardRefComponent<TableCellActionsProps>;
136
359
 
@@ -139,7 +362,13 @@ export declare const tableCellActionsClassNames: SlotClassNames<TableCellActions
139
362
  /**
140
363
  * TableCellActions Props
141
364
  */
142
- export declare type TableCellActionsProps = ComponentProps<TableCellActionsSlots> & {};
365
+ export declare type TableCellActionsProps = ComponentProps<TableCellActionsSlots> & {
366
+ /**
367
+ * When true, the actions are always visible regardless of row hover.
368
+ * Can be useful keeping the actions visible when a popout surface is opened.
369
+ */
370
+ visible?: boolean;
371
+ };
143
372
 
144
373
  export declare type TableCellActionsSlots = {
145
374
  root: Slot<'div'>;
@@ -148,23 +377,33 @@ export declare type TableCellActionsSlots = {
148
377
  /**
149
378
  * State used in rendering TableCellActions
150
379
  */
151
- export declare type TableCellActionsState = ComponentState<TableCellActionsSlots>;
380
+ export declare type TableCellActionsState = ComponentState<TableCellActionsSlots> & Pick<Required<TableCellActionsProps>, 'visible'>;
152
381
 
153
382
  export declare const tableCellClassName = "fui-TableCell";
154
383
 
155
384
  export declare const tableCellClassNames: SlotClassNames<TableCellSlots>;
156
385
 
157
386
  /**
158
- * TableCellLayout component - TODO: add more docs
387
+ * TableCellLayout component
159
388
  */
160
389
  export declare const TableCellLayout: ForwardRefComponent<TableCellLayoutProps>;
161
390
 
162
391
  export declare const tableCellLayoutClassNames: SlotClassNames<TableCellLayoutSlots>;
163
392
 
393
+ declare type TableCellLayoutContextValues = {
394
+ avatar: {
395
+ size?: AvatarSizes;
396
+ };
397
+ };
398
+
164
399
  /**
165
400
  * TableCellLayout Props
166
401
  */
167
402
  export declare type TableCellLayoutProps = ComponentProps<Partial<TableCellLayoutSlots>> & {
403
+ /**
404
+ * Renders design variants of the table cell
405
+ * @default undefined
406
+ */
168
407
  appearance?: 'primary';
169
408
  };
170
409
 
@@ -185,13 +424,15 @@ export declare type TableCellLayoutSlots = {
185
424
  /**
186
425
  * A layout wrapper for the main and description slots
187
426
  */
188
- wrapper: Slot<'div'>;
427
+ content: Slot<'div'>;
189
428
  };
190
429
 
191
430
  /**
192
431
  * State used in rendering TableCellLayout
193
432
  */
194
- export declare type TableCellLayoutState = ComponentState<TableCellLayoutSlots> & Pick<TableCellLayoutProps, 'appearance'>;
433
+ export declare type TableCellLayoutState = ComponentState<TableCellLayoutSlots> & Pick<TableCellLayoutProps, 'appearance'> & {
434
+ avatarSize: AvatarSizes | undefined;
435
+ } & Pick<TableContextValue, 'size'>;
195
436
 
196
437
  /**
197
438
  * TableCell Props
@@ -205,17 +446,39 @@ export declare type TableCellSlots = {
205
446
  /**
206
447
  * State used in rendering TableCell
207
448
  */
208
- export declare type TableCellState = ComponentState<TableCellSlots>;
449
+ export declare type TableCellState = ComponentState<TableCellSlots> & Pick<TableContextValue, 'noNativeElements' | 'size'>;
209
450
 
210
451
  export declare const tableClassName = "fui-Table";
211
452
 
212
453
  export declare const tableClassNames: SlotClassNames<TableSlots>;
213
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
+
214
464
  export declare const TableContextProvider: React_2.Provider<TableContextValue | undefined>;
215
465
 
216
466
  export declare type TableContextValue = {
217
- size: 'small' | 'smaller' | 'medium';
467
+ /**
468
+ * Affects the sizes of all table subcomponents
469
+ * @default medium
470
+ */
471
+ size: 'extra-small' | 'small' | 'medium';
472
+ /**
473
+ * Render all table elements as divs instead of semantic table elements
474
+ * Using divs no longer uses `display: table` layout but `display: flex`
475
+ * @default false
476
+ */
218
477
  noNativeElements: boolean;
478
+ /**
479
+ * Whether the table is sortable
480
+ * @default false
481
+ */
219
482
  sortable: boolean;
220
483
  };
221
484
 
@@ -223,13 +486,35 @@ export declare type TableContextValues = {
223
486
  table: TableContextValue;
224
487
  };
225
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
+
226
511
  /**
227
- * TableHeader component - TODO: add more docs
512
+ * TableHeader component
228
513
  */
229
514
  export declare const TableHeader: ForwardRefComponent<TableHeaderProps>;
230
515
 
231
516
  /**
232
- * TableHeaderCell component - TODO: add more docs
517
+ * TableHeaderCell component
233
518
  */
234
519
  export declare const TableHeaderCell: ForwardRefComponent<TableHeaderCellProps>;
235
520
 
@@ -241,6 +526,9 @@ export declare const tableHeaderCellClassNames: SlotClassNames<TableHeaderCellSl
241
526
  * TableHeaderCell Props
242
527
  */
243
528
  export declare type TableHeaderCellProps = ComponentProps<Partial<TableHeaderCellSlots>> & {
529
+ /**
530
+ * @default undefined
531
+ */
244
532
  sortDirection?: SortDirection;
245
533
  };
246
534
 
@@ -256,9 +544,7 @@ export declare type TableHeaderCellSlots = {
256
544
  /**
257
545
  * State used in rendering TableHeaderCell
258
546
  */
259
- export declare type TableHeaderCellState = ComponentState<TableHeaderCellSlots> & {
260
- sortable: boolean;
261
- };
547
+ export declare type TableHeaderCellState = ComponentState<TableHeaderCellSlots> & Pick<TableContextValue, 'noNativeElements' | 'sortable'>;
262
548
 
263
549
  export declare const tableHeaderClassName = "fui-TableHeader";
264
550
 
@@ -276,7 +562,7 @@ export declare type TableHeaderSlots = {
276
562
  /**
277
563
  * State used in rendering TableHeader
278
564
  */
279
- export declare type TableHeaderState = ComponentState<TableHeaderSlots>;
565
+ export declare type TableHeaderState = ComponentState<TableHeaderSlots> & Pick<TableContextValue, 'noNativeElements'>;
280
566
 
281
567
  /**
282
568
  * Table Props
@@ -284,7 +570,7 @@ export declare type TableHeaderState = ComponentState<TableHeaderSlots>;
284
570
  export declare type TableProps = ComponentProps<TableSlots> & Partial<TableContextValue>;
285
571
 
286
572
  /**
287
- * TableRow component - TODO: add more docs
573
+ * TableRow component
288
574
  */
289
575
  export declare const TableRow: ForwardRefComponent<TableRowProps>;
290
576
 
@@ -292,10 +578,32 @@ export declare const tableRowClassName = "fui-TableRow";
292
578
 
293
579
  export declare const tableRowClassNames: SlotClassNames<TableRowSlots>;
294
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
+
295
596
  /**
296
597
  * TableRow Props
297
598
  */
298
- export declare type TableRowProps = ComponentProps<TableRowSlots> & {};
599
+ export declare type TableRowProps = ComponentProps<TableRowSlots> & {
600
+ /**
601
+ * A table row can have different variants. These appearances are
602
+ * intended to be used with selection.
603
+ * @default none
604
+ */
605
+ appearance?: 'brand' | 'neutral' | 'none';
606
+ };
299
607
 
300
608
  export declare type TableRowSlots = {
301
609
  root: Slot<'tr', 'div'>;
@@ -304,12 +612,12 @@ export declare type TableRowSlots = {
304
612
  /**
305
613
  * State used in rendering TableRow
306
614
  */
307
- export declare type TableRowState = ComponentState<TableRowSlots> & {
308
- size: TableState['size'];
615
+ export declare type TableRowState = ComponentState<TableRowSlots> & Pick<TableContextValue, 'noNativeElements' | 'size'> & Pick<Required<TableRowProps>, 'appearance'> & {
616
+ isHeaderRow: boolean;
309
617
  };
310
618
 
311
619
  /**
312
- * TableSelectionCell component - TODO: add more docs
620
+ * TableSelectionCell component
313
621
  */
314
622
  export declare const TableSelectionCell: ForwardRefComponent<TableSelectionCellProps>;
315
623
 
@@ -318,12 +626,26 @@ export declare const tableSelectionCellClassNames: SlotClassNames<TableSelection
318
626
  /**
319
627
  * TableSelectionCell Props
320
628
  */
321
- export declare type TableSelectionCellProps = ComponentProps<Partial<Omit<TableSelectionCellSlots, 'media'>>> & {
629
+ export declare type TableSelectionCellProps = ComponentProps<Partial<TableSelectionCellSlots>> & {
322
630
  /**
323
- * A table can have two kinds of selection modes
631
+ * A table can have two kinds of selection modes.
632
+ * @default checkbox
324
633
  */
325
634
  type?: 'checkbox' | 'radio';
635
+ /**
636
+ * @default false
637
+ */
326
638
  checked?: CheckboxProps['checked'];
639
+ /**
640
+ * Only visible when checked or the parent row is hovered/focused
641
+ * @default false
642
+ */
643
+ subtle?: boolean;
644
+ /**
645
+ * Completely hides the selection cell visually but takes up the same space
646
+ * @default false
647
+ */
648
+ hidden?: boolean;
327
649
  };
328
650
 
329
651
  export declare type TableSelectionCellSlots = {
@@ -334,39 +656,39 @@ export declare type TableSelectionCellSlots = {
334
656
  /**
335
657
  * Selection indicator if selection type is radio
336
658
  */
337
- radioIndicator: Slot<'span'>;
659
+ radioIndicator: Slot<typeof Radio>;
338
660
  } & Pick<TableCellSlots, 'root'>;
339
661
 
340
662
  /**
341
663
  * State used in rendering TableSelectionCell
342
664
  */
343
- export declare type TableSelectionCellState = ComponentState<TableSelectionCellSlots> & Pick<Required<TableSelectionCellProps>, 'type' | 'checked'>;
665
+ export declare type TableSelectionCellState = ComponentState<TableSelectionCellSlots> & Pick<Required<TableSelectionCellProps>, 'type' | 'checked' | 'subtle' | 'hidden'> & Pick<TableContextValue, 'noNativeElements'>;
344
666
 
345
667
  export declare interface TableSelectionState {
346
668
  /**
347
669
  * Clears all selected rows
348
670
  */
349
- clearRows: () => void;
671
+ clearRows: (e: React_2.SyntheticEvent) => void;
350
672
  /**
351
673
  * Selects single row
352
674
  */
353
- selectRow: (rowId: RowId) => void;
675
+ selectRow: (e: React_2.SyntheticEvent, rowId: TableRowId) => void;
354
676
  /**
355
677
  * De-selects single row
356
678
  */
357
- deselectRow: (rowId: RowId) => void;
679
+ deselectRow: (e: React_2.SyntheticEvent, rowId: TableRowId) => void;
358
680
  /**
359
681
  * Toggle selection of all rows
360
682
  */
361
- toggleAllRows: () => void;
683
+ toggleAllRows: (e: React_2.SyntheticEvent) => void;
362
684
  /**
363
685
  * Toggle selection of single row
364
686
  */
365
- toggleRow: (rowId: RowId) => void;
687
+ toggleRow: (e: React_2.SyntheticEvent, rowId: TableRowId) => void;
366
688
  /**
367
689
  * Collection of row ids corresponding to selected rows
368
690
  */
369
- selectedRows: RowId[];
691
+ selectedRows: Set<TableRowId>;
370
692
  /**
371
693
  * Whether all rows are selected
372
694
  */
@@ -378,14 +700,15 @@ export declare interface TableSelectionState {
378
700
  /**
379
701
  * Checks if a given rowId is selected
380
702
  */
381
- isRowSelected: (rowId: RowId) => boolean;
703
+ isRowSelected: (rowId: TableRowId) => boolean;
704
+ selectionMode: SelectionMode_2;
382
705
  }
383
706
 
384
707
  export declare type TableSlots = {
385
708
  root: Slot<'table', 'div'>;
386
709
  };
387
710
 
388
- export declare interface TableSortState {
711
+ export declare interface TableSortState<TItem> {
389
712
  /**
390
713
  * Current sort direction
391
714
  */
@@ -393,20 +716,24 @@ export declare interface TableSortState {
393
716
  /**
394
717
  * Column id of the currently sorted column
395
718
  */
396
- sortColumn: ColumnId | undefined;
719
+ sortColumn: TableColumnId | undefined;
397
720
  /**
398
721
  * Set the sort direction for the specified column
399
722
  */
400
- setColumnSort: (columnId: ColumnId, sortDirection: SortDirection) => void;
723
+ setColumnSort: (event: React_2.SyntheticEvent, columnId: TableColumnId, sortDirection: SortDirection) => void;
401
724
  /**
402
725
  * Toggles the sort direction for specified column
403
726
  */
404
- toggleColumnSort: (columnId: ColumnId) => void;
727
+ toggleColumnSort: (event: React_2.SyntheticEvent, columnId: TableColumnId) => void;
405
728
  /**
406
729
  * Returns the sort direction if a column is sorted,
407
730
  * returns undefined if the column is not sorted
408
731
  */
409
- getSortDirection: (columnId: ColumnId) => SortDirection | undefined;
732
+ getSortDirection: (columnId: TableColumnId) => SortDirection | undefined;
733
+ /**
734
+ * Sorts rows and returns a **shallow** copy of original items
735
+ */
736
+ sort: <TRowState extends TableRowData<TItem>>(rows: TRowState[]) => TRowState[];
410
737
  }
411
738
 
412
739
  /**
@@ -414,22 +741,117 @@ export declare interface TableSortState {
414
741
  */
415
742
  export declare type TableState = ComponentState<TableSlots> & Pick<Required<TableProps>, 'size' | 'noNativeElements'> & TableContextValue;
416
743
 
417
- declare interface TableState_2<TItem, TRowState extends RowState<TItem> = RowState<TItem>> {
418
- /**
419
- * The row data for rendering
420
- */
421
- rows: TRowState[];
422
- /**
423
- * State and actions to manage row selection
424
- */
425
- selection: TableSelectionState;
426
- /**
427
- * State and actions to manage row sorting
428
- */
429
- sort: TableSortState;
430
- }
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;
754
+
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;
765
+
766
+ /**
767
+ * Apply styling to the DataGridBody slots based on the state
768
+ */
769
+ export declare const useDataGridBodyStyles_unstable: (state: DataGridBodyState) => DataGridBodyState;
431
770
 
432
- export declare function useTable<TItem, TRowState extends RowState<TItem> = RowState<TItem>>(options: UseTableOptions<TItem, TRowState>): TableState_2<TItem, TRowState>;
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;
781
+
782
+ /**
783
+ * Apply styling to the DataGridCell slots based on the state
784
+ */
785
+ export declare const useDataGridCellStyles_unstable: (state: DataGridCellState) => DataGridCellState;
786
+
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;
433
855
 
434
856
  /**
435
857
  * Create the state required to render Table.
@@ -508,6 +930,14 @@ export declare const useTableCellStyles_unstable: (state: TableCellState) => Tab
508
930
 
509
931
  export declare const useTableContext: () => TableContextValue;
510
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
+
511
941
  /**
512
942
  * Create the state required to render TableHeader.
513
943
  *
@@ -540,38 +970,6 @@ export declare const useTableHeaderCellStyles_unstable: (state: TableHeaderCellS
540
970
  */
541
971
  export declare const useTableHeaderStyles_unstable: (state: TableHeaderState) => TableHeaderState;
542
972
 
543
- export declare interface UseTableOptions<TItem, TRowState extends RowState<TItem> = RowState<TItem>> {
544
- columns: ColumnDefinition<TItem>[];
545
- items: TItem[];
546
- selectionMode?: SelectionMode_2;
547
- /**
548
- * Used in uncontrolled mode to set initial selected rows on mount
549
- */
550
- defaultSelectedRows?: Set<RowId>;
551
- /**
552
- * Used to control row selection
553
- */
554
- selectedRows?: Set<RowId>;
555
- /**
556
- * Called when selection changes
557
- */
558
- onSelectionChange?: OnSelectionChangeCallback;
559
- /**
560
- * Used to control sorting
561
- */
562
- sortState?: SortState;
563
- /**
564
- * Used in uncontrolled mode to set initial sort column and direction on mount
565
- */
566
- defaultSortState?: SortState;
567
- /**
568
- * Called when sort changes
569
- */
570
- onSortChange?: OnSortChangeCallback;
571
- getRowId?: (item: TItem) => RowId;
572
- rowEnhancer?: RowEnhancer<TItem, TRowState>;
573
- }
574
-
575
973
  /**
576
974
  * Create the state required to render TableRow.
577
975
  *
@@ -583,11 +981,15 @@ export declare interface UseTableOptions<TItem, TRowState extends RowState<TItem
583
981
  */
584
982
  export declare const useTableRow_unstable: (props: TableRowProps, ref: React_2.Ref<HTMLElement>) => TableRowState;
585
983
 
984
+ export declare const useTableRowIdContext: () => TableRowId;
985
+
586
986
  /**
587
987
  * Apply styling to the TableRow slots based on the state
588
988
  */
589
989
  export declare const useTableRowStyles_unstable: (state: TableRowState) => TableRowState;
590
990
 
991
+ export declare function useTableSelection<TItem>(options: UseTableSelectionOptions): (tableState: TableFeaturesState<TItem>) => TableFeaturesState<TItem>;
992
+
591
993
  /**
592
994
  * Create the state required to render TableSelectionCell.
593
995
  *
@@ -604,6 +1006,42 @@ export declare const useTableSelectionCell_unstable: (props: TableSelectionCellP
604
1006
  */
605
1007
  export declare const useTableSelectionCellStyles_unstable: (state: TableSelectionCellState) => TableSelectionCellState;
606
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
+
607
1045
  /**
608
1046
  * Apply styling to the Table slots based on the state
609
1047
  */