@fluentui/react-table 9.0.0-alpha.9 → 9.0.0-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (417) hide show
  1. package/CHANGELOG.json +798 -1
  2. package/CHANGELOG.md +207 -2
  3. package/dist/index.d.ts +239 -133
  4. package/lib/components/DataGrid/DataGrid.js +1 -2
  5. package/lib/components/DataGrid/DataGrid.js.map +1 -1
  6. package/lib/components/DataGrid/DataGrid.types.js.map +1 -1
  7. package/lib/components/DataGrid/renderDataGrid.js +5 -2
  8. package/lib/components/DataGrid/renderDataGrid.js.map +1 -1
  9. package/lib/components/DataGrid/useDataGrid.js +49 -3
  10. package/lib/components/DataGrid/useDataGrid.js.map +1 -1
  11. package/lib/components/DataGrid/useDataGridContextValues.js +11 -1
  12. package/lib/components/DataGrid/useDataGridContextValues.js.map +1 -1
  13. package/lib/components/DataGrid/useDataGridStyles.js +0 -1
  14. package/lib/components/DataGrid/useDataGridStyles.js.map +1 -1
  15. package/lib/components/DataGridBody/DataGridBody.js +1 -2
  16. package/lib/components/DataGridBody/DataGridBody.js.map +1 -1
  17. package/lib/components/DataGridBody/DataGridBody.types.js.map +1 -1
  18. package/lib/components/DataGridBody/renderDataGridBody.js +13 -3
  19. package/lib/components/DataGridBody/renderDataGridBody.js.map +1 -1
  20. package/lib/components/DataGridBody/useDataGridBody.js +16 -2
  21. package/lib/components/DataGridBody/useDataGridBody.js.map +1 -1
  22. package/lib/components/DataGridBody/useDataGridBodyStyles.js +0 -1
  23. package/lib/components/DataGridBody/useDataGridBodyStyles.js.map +1 -1
  24. package/lib/components/DataGridCell/DataGridCell.js +1 -2
  25. package/lib/components/DataGridCell/DataGridCell.js.map +1 -1
  26. package/lib/components/DataGridCell/renderDataGridCell.js +0 -1
  27. package/lib/components/DataGridCell/renderDataGridCell.js.map +1 -1
  28. package/lib/components/DataGridCell/useDataGridCell.js +7 -3
  29. package/lib/components/DataGridCell/useDataGridCell.js.map +1 -1
  30. package/lib/components/DataGridCell/useDataGridCellStyles.js +0 -1
  31. package/lib/components/DataGridCell/useDataGridCellStyles.js.map +1 -1
  32. package/lib/components/DataGridHeader/DataGridHeader.js +1 -2
  33. package/lib/components/DataGridHeader/DataGridHeader.js.map +1 -1
  34. package/lib/components/DataGridHeader/renderDataGridHeader.js +0 -1
  35. package/lib/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  36. package/lib/components/DataGridHeader/useDataGridHeader.js +2 -2
  37. package/lib/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  38. package/lib/components/DataGridHeader/useDataGridHeaderStyles.js +0 -1
  39. package/lib/components/DataGridHeader/useDataGridHeaderStyles.js.map +1 -1
  40. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js +1 -2
  41. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  42. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js +0 -1
  43. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  44. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js +23 -3
  45. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  46. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js +0 -4
  47. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js.map +1 -1
  48. package/lib/components/DataGridRow/DataGridRow.js +1 -2
  49. package/lib/components/DataGridRow/DataGridRow.js.map +1 -1
  50. package/lib/components/DataGridRow/DataGridRow.types.js.map +1 -1
  51. package/lib/components/DataGridRow/renderDataGridRow.js +15 -3
  52. package/lib/components/DataGridRow/renderDataGridRow.js.map +1 -1
  53. package/lib/components/DataGridRow/useDataGridRow.js +56 -3
  54. package/lib/components/DataGridRow/useDataGridRow.js.map +1 -1
  55. package/lib/components/DataGridRow/useDataGridRowStyles.js +5 -2
  56. package/lib/components/DataGridRow/useDataGridRowStyles.js.map +1 -1
  57. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js +1 -2
  58. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  59. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js +0 -1
  60. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  61. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js +33 -3
  62. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  63. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js +0 -4
  64. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js.map +1 -1
  65. package/lib/components/Table/Table.js +1 -2
  66. package/lib/components/Table/Table.js.map +1 -1
  67. package/lib/components/Table/Table.types.js.map +1 -1
  68. package/lib/components/Table/renderTable.js +2 -2
  69. package/lib/components/Table/renderTable.js.map +1 -1
  70. package/lib/components/Table/useTable.js +0 -2
  71. package/lib/components/Table/useTable.js.map +1 -1
  72. package/lib/components/Table/useTableContextValues.js.map +1 -1
  73. package/lib/components/Table/useTableStyles.js +13 -19
  74. package/lib/components/Table/useTableStyles.js.map +1 -1
  75. package/lib/components/TableBody/TableBody.js +1 -2
  76. package/lib/components/TableBody/TableBody.js.map +1 -1
  77. package/lib/components/TableBody/renderTableBody.js +3 -4
  78. package/lib/components/TableBody/renderTableBody.js.map +1 -1
  79. package/lib/components/TableBody/useTableBody.js +0 -2
  80. package/lib/components/TableBody/useTableBody.js.map +1 -1
  81. package/lib/components/TableBody/useTableBodyStyles.js +6 -10
  82. package/lib/components/TableBody/useTableBodyStyles.js.map +1 -1
  83. package/lib/components/TableCell/TableCell.js +1 -2
  84. package/lib/components/TableCell/TableCell.js.map +1 -1
  85. package/lib/components/TableCell/TableCell.types.js.map +1 -1
  86. package/lib/components/TableCell/renderTableCell.js +2 -2
  87. package/lib/components/TableCell/renderTableCell.js.map +1 -1
  88. package/lib/components/TableCell/useTableCell.js +4 -4
  89. package/lib/components/TableCell/useTableCell.js.map +1 -1
  90. package/lib/components/TableCell/useTableCellStyles.js +47 -26
  91. package/lib/components/TableCell/useTableCellStyles.js.map +1 -1
  92. package/lib/components/TableCellActions/TableCellActions.js +1 -2
  93. package/lib/components/TableCellActions/TableCellActions.js.map +1 -1
  94. package/lib/components/TableCellActions/renderTableCellActions.js +3 -4
  95. package/lib/components/TableCellActions/renderTableCellActions.js.map +1 -1
  96. package/lib/components/TableCellActions/useTableCellActions.js +2 -5
  97. package/lib/components/TableCellActions/useTableCellActions.js.map +1 -1
  98. package/lib/components/TableCellActions/useTableCellActionsStyles.js +11 -19
  99. package/lib/components/TableCellActions/useTableCellActionsStyles.js.map +1 -1
  100. package/lib/components/TableCellLayout/TableCellLayout.js +1 -2
  101. package/lib/components/TableCellLayout/TableCellLayout.js.map +1 -1
  102. package/lib/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  103. package/lib/components/TableCellLayout/renderTableCellLayout.js +10 -6
  104. package/lib/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  105. package/lib/components/TableCellLayout/useTableCellLayout.js +5 -5
  106. package/lib/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  107. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  108. package/lib/components/TableCellLayout/useTableCellLayoutStyles.js +41 -35
  109. package/lib/components/TableCellLayout/useTableCellLayoutStyles.js.map +1 -1
  110. package/lib/components/TableHeader/TableHeader.js +1 -2
  111. package/lib/components/TableHeader/TableHeader.js.map +1 -1
  112. package/lib/components/TableHeader/renderTableHeader.js +2 -2
  113. package/lib/components/TableHeader/renderTableHeader.js.map +1 -1
  114. package/lib/components/TableHeader/useTableHeader.js +1 -10
  115. package/lib/components/TableHeader/useTableHeader.js.map +1 -1
  116. package/lib/components/TableHeader/useTableHeaderStyles.js +6 -16
  117. package/lib/components/TableHeader/useTableHeaderStyles.js.map +1 -1
  118. package/lib/components/TableHeaderCell/TableHeaderCell.js +1 -2
  119. package/lib/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  120. package/lib/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  121. package/lib/components/TableHeaderCell/renderTableHeaderCell.js +6 -4
  122. package/lib/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  123. package/lib/components/TableHeaderCell/useTableHeaderCell.js +11 -8
  124. package/lib/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  125. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.js +69 -67
  126. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.js.map +1 -1
  127. package/lib/components/TableRow/TableRow.js +1 -2
  128. package/lib/components/TableRow/TableRow.js.map +1 -1
  129. package/lib/components/TableRow/TableRow.types.js.map +1 -1
  130. package/lib/components/TableRow/renderTableRow.js +3 -4
  131. package/lib/components/TableRow/renderTableRow.js.map +1 -1
  132. package/lib/components/TableRow/useTableRow.js +7 -5
  133. package/lib/components/TableRow/useTableRow.js.map +1 -1
  134. package/lib/components/TableRow/useTableRowStyles.js +137 -162
  135. package/lib/components/TableRow/useTableRowStyles.js.map +1 -1
  136. package/lib/components/TableSelectionCell/TableSelectionCell.js +1 -2
  137. package/lib/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  138. package/lib/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  139. package/lib/components/TableSelectionCell/renderTableSelectionCell.js +6 -4
  140. package/lib/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  141. package/lib/components/TableSelectionCell/useTableSelectionCell.js +9 -5
  142. package/lib/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  143. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.js +43 -46
  144. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.js.map +1 -1
  145. package/lib/contexts/columnIdContext.js +9 -0
  146. package/lib/contexts/columnIdContext.js.map +1 -0
  147. package/lib/contexts/dataGridContext.js +13 -0
  148. package/lib/contexts/dataGridContext.js.map +1 -0
  149. package/lib/contexts/rowIdContext.js +9 -0
  150. package/lib/contexts/rowIdContext.js.map +1 -0
  151. package/lib/contexts/tableContext.js +0 -1
  152. package/lib/contexts/tableContext.js.map +1 -1
  153. package/lib/contexts/tableHeaderContext.js.map +1 -1
  154. package/lib/hooks/createColumn.js +35 -0
  155. package/lib/hooks/createColumn.js.map +1 -0
  156. package/lib/hooks/index.js +4 -3
  157. package/lib/hooks/index.js.map +1 -1
  158. package/lib/hooks/selectionManager.js +16 -32
  159. package/lib/hooks/selectionManager.js.map +1 -1
  160. package/lib/hooks/types.js.map +1 -1
  161. package/lib/hooks/{useTable.js → useTableFeatures.js} +12 -9
  162. package/lib/hooks/useTableFeatures.js.map +1 -0
  163. package/lib/hooks/{useSelection.js → useTableSelection.js} +18 -18
  164. package/lib/hooks/useTableSelection.js.map +1 -0
  165. package/lib/hooks/{useSort.js → useTableSort.js} +12 -21
  166. package/lib/hooks/useTableSort.js.map +1 -0
  167. package/lib/index.js +2 -1
  168. package/lib/index.js.map +1 -1
  169. package/lib-commonjs/DataGrid.js +0 -2
  170. package/lib-commonjs/DataGrid.js.map +1 -1
  171. package/lib-commonjs/DataGridBody.js +0 -2
  172. package/lib-commonjs/DataGridBody.js.map +1 -1
  173. package/lib-commonjs/DataGridCell.js +0 -2
  174. package/lib-commonjs/DataGridCell.js.map +1 -1
  175. package/lib-commonjs/DataGridHeader.js +0 -2
  176. package/lib-commonjs/DataGridHeader.js.map +1 -1
  177. package/lib-commonjs/DataGridHeaderCell.js +0 -2
  178. package/lib-commonjs/DataGridHeaderCell.js.map +1 -1
  179. package/lib-commonjs/DataGridRow.js +0 -2
  180. package/lib-commonjs/DataGridRow.js.map +1 -1
  181. package/lib-commonjs/DataGridSelectionCell.js +0 -2
  182. package/lib-commonjs/DataGridSelectionCell.js.map +1 -1
  183. package/lib-commonjs/Table.js +0 -2
  184. package/lib-commonjs/Table.js.map +1 -1
  185. package/lib-commonjs/TableBody.js +0 -2
  186. package/lib-commonjs/TableBody.js.map +1 -1
  187. package/lib-commonjs/TableCell.js +0 -2
  188. package/lib-commonjs/TableCell.js.map +1 -1
  189. package/lib-commonjs/TableCellActions.js +0 -2
  190. package/lib-commonjs/TableCellActions.js.map +1 -1
  191. package/lib-commonjs/TableCellLayout.js +0 -2
  192. package/lib-commonjs/TableCellLayout.js.map +1 -1
  193. package/lib-commonjs/TableCellPrimaryLayout.js +0 -2
  194. package/lib-commonjs/TableCellPrimaryLayout.js.map +1 -1
  195. package/lib-commonjs/TableHeader.js +0 -2
  196. package/lib-commonjs/TableHeader.js.map +1 -1
  197. package/lib-commonjs/TableHeaderCell.js +0 -2
  198. package/lib-commonjs/TableHeaderCell.js.map +1 -1
  199. package/lib-commonjs/TableRow.js +0 -2
  200. package/lib-commonjs/TableRow.js.map +1 -1
  201. package/lib-commonjs/TableSelectionCell.js +0 -2
  202. package/lib-commonjs/TableSelectionCell.js.map +1 -1
  203. package/lib-commonjs/components/DataGrid/DataGrid.js +1 -8
  204. package/lib-commonjs/components/DataGrid/DataGrid.js.map +1 -1
  205. package/lib-commonjs/components/DataGrid/DataGrid.types.js.map +1 -1
  206. package/lib-commonjs/components/DataGrid/index.js +0 -6
  207. package/lib-commonjs/components/DataGrid/index.js.map +1 -1
  208. package/lib-commonjs/components/DataGrid/renderDataGrid.js +5 -5
  209. package/lib-commonjs/components/DataGrid/renderDataGrid.js.map +1 -1
  210. package/lib-commonjs/components/DataGrid/useDataGrid.js +49 -6
  211. package/lib-commonjs/components/DataGrid/useDataGrid.js.map +1 -1
  212. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js +11 -4
  213. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js.map +1 -1
  214. package/lib-commonjs/components/DataGrid/useDataGridStyles.js +0 -5
  215. package/lib-commonjs/components/DataGrid/useDataGridStyles.js.map +1 -1
  216. package/lib-commonjs/components/DataGridBody/DataGridBody.js +1 -7
  217. package/lib-commonjs/components/DataGridBody/DataGridBody.js.map +1 -1
  218. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js.map +1 -1
  219. package/lib-commonjs/components/DataGridBody/index.js +0 -6
  220. package/lib-commonjs/components/DataGridBody/index.js.map +1 -1
  221. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js +13 -6
  222. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js.map +1 -1
  223. package/lib-commonjs/components/DataGridBody/useDataGridBody.js +16 -5
  224. package/lib-commonjs/components/DataGridBody/useDataGridBody.js.map +1 -1
  225. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.js +0 -5
  226. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.js.map +1 -1
  227. package/lib-commonjs/components/DataGridCell/DataGridCell.js +1 -7
  228. package/lib-commonjs/components/DataGridCell/DataGridCell.js.map +1 -1
  229. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js.map +1 -1
  230. package/lib-commonjs/components/DataGridCell/index.js +0 -6
  231. package/lib-commonjs/components/DataGridCell/index.js.map +1 -1
  232. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js +0 -4
  233. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js.map +1 -1
  234. package/lib-commonjs/components/DataGridCell/useDataGridCell.js +7 -6
  235. package/lib-commonjs/components/DataGridCell/useDataGridCell.js.map +1 -1
  236. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.js +0 -5
  237. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.js.map +1 -1
  238. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js +1 -7
  239. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js.map +1 -1
  240. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js.map +1 -1
  241. package/lib-commonjs/components/DataGridHeader/index.js +0 -6
  242. package/lib-commonjs/components/DataGridHeader/index.js.map +1 -1
  243. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js +0 -4
  244. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  245. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js +2 -5
  246. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  247. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.js +0 -5
  248. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.js.map +1 -1
  249. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js +1 -7
  250. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  251. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -1
  252. package/lib-commonjs/components/DataGridHeaderCell/index.js +0 -6
  253. package/lib-commonjs/components/DataGridHeaderCell/index.js.map +1 -1
  254. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js +0 -4
  255. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  256. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js +23 -6
  257. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  258. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js +0 -8
  259. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.js.map +1 -1
  260. package/lib-commonjs/components/DataGridRow/DataGridRow.js +1 -7
  261. package/lib-commonjs/components/DataGridRow/DataGridRow.js.map +1 -1
  262. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js.map +1 -1
  263. package/lib-commonjs/components/DataGridRow/index.js +0 -6
  264. package/lib-commonjs/components/DataGridRow/index.js.map +1 -1
  265. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js +15 -6
  266. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js.map +1 -1
  267. package/lib-commonjs/components/DataGridRow/useDataGridRow.js +56 -6
  268. package/lib-commonjs/components/DataGridRow/useDataGridRow.js.map +1 -1
  269. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.js +5 -6
  270. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.js.map +1 -1
  271. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js +1 -7
  272. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  273. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -1
  274. package/lib-commonjs/components/DataGridSelectionCell/index.js +0 -6
  275. package/lib-commonjs/components/DataGridSelectionCell/index.js.map +1 -1
  276. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js +0 -4
  277. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  278. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js +33 -6
  279. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  280. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js +0 -8
  281. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.js.map +1 -1
  282. package/lib-commonjs/components/Table/Table.js +1 -8
  283. package/lib-commonjs/components/Table/Table.js.map +1 -1
  284. package/lib-commonjs/components/Table/Table.types.js.map +1 -1
  285. package/lib-commonjs/components/Table/index.js +0 -6
  286. package/lib-commonjs/components/Table/index.js.map +1 -1
  287. package/lib-commonjs/components/Table/renderTable.js +2 -7
  288. package/lib-commonjs/components/Table/renderTable.js.map +1 -1
  289. package/lib-commonjs/components/Table/useTable.js +0 -5
  290. package/lib-commonjs/components/Table/useTable.js.map +1 -1
  291. package/lib-commonjs/components/Table/useTableContextValues.js +0 -3
  292. package/lib-commonjs/components/Table/useTableContextValues.js.map +1 -1
  293. package/lib-commonjs/components/Table/useTableStyles.js +13 -23
  294. package/lib-commonjs/components/Table/useTableStyles.js.map +1 -1
  295. package/lib-commonjs/components/TableBody/TableBody.js +1 -7
  296. package/lib-commonjs/components/TableBody/TableBody.js.map +1 -1
  297. package/lib-commonjs/components/TableBody/TableBody.types.js.map +1 -1
  298. package/lib-commonjs/components/TableBody/index.js +0 -6
  299. package/lib-commonjs/components/TableBody/index.js.map +1 -1
  300. package/lib-commonjs/components/TableBody/renderTableBody.js +3 -8
  301. package/lib-commonjs/components/TableBody/renderTableBody.js.map +1 -1
  302. package/lib-commonjs/components/TableBody/useTableBody.js +0 -6
  303. package/lib-commonjs/components/TableBody/useTableBody.js.map +1 -1
  304. package/lib-commonjs/components/TableBody/useTableBodyStyles.js +6 -12
  305. package/lib-commonjs/components/TableBody/useTableBodyStyles.js.map +1 -1
  306. package/lib-commonjs/components/TableCell/TableCell.js +1 -7
  307. package/lib-commonjs/components/TableCell/TableCell.js.map +1 -1
  308. package/lib-commonjs/components/TableCell/TableCell.types.js.map +1 -1
  309. package/lib-commonjs/components/TableCell/index.js +0 -6
  310. package/lib-commonjs/components/TableCell/index.js.map +1 -1
  311. package/lib-commonjs/components/TableCell/renderTableCell.js +2 -6
  312. package/lib-commonjs/components/TableCell/renderTableCell.js.map +1 -1
  313. package/lib-commonjs/components/TableCell/useTableCell.js +4 -8
  314. package/lib-commonjs/components/TableCell/useTableCell.js.map +1 -1
  315. package/lib-commonjs/components/TableCell/useTableCellStyles.js +47 -30
  316. package/lib-commonjs/components/TableCell/useTableCellStyles.js.map +1 -1
  317. package/lib-commonjs/components/TableCellActions/TableCellActions.js +1 -7
  318. package/lib-commonjs/components/TableCellActions/TableCellActions.js.map +1 -1
  319. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js.map +1 -1
  320. package/lib-commonjs/components/TableCellActions/index.js +0 -6
  321. package/lib-commonjs/components/TableCellActions/index.js.map +1 -1
  322. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js +3 -8
  323. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js.map +1 -1
  324. package/lib-commonjs/components/TableCellActions/useTableCellActions.js +1 -8
  325. package/lib-commonjs/components/TableCellActions/useTableCellActions.js.map +1 -1
  326. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.js +11 -23
  327. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.js.map +1 -1
  328. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js +1 -8
  329. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js.map +1 -1
  330. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  331. package/lib-commonjs/components/TableCellLayout/index.js +0 -6
  332. package/lib-commonjs/components/TableCellLayout/index.js.map +1 -1
  333. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js +10 -11
  334. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  335. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js +5 -9
  336. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  337. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js +0 -3
  338. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  339. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.js +41 -39
  340. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.js.map +1 -1
  341. package/lib-commonjs/components/TableHeader/TableHeader.js +1 -7
  342. package/lib-commonjs/components/TableHeader/TableHeader.js.map +1 -1
  343. package/lib-commonjs/components/TableHeader/TableHeader.types.js.map +1 -1
  344. package/lib-commonjs/components/TableHeader/index.js +0 -6
  345. package/lib-commonjs/components/TableHeader/index.js.map +1 -1
  346. package/lib-commonjs/components/TableHeader/renderTableHeader.js +2 -7
  347. package/lib-commonjs/components/TableHeader/renderTableHeader.js.map +1 -1
  348. package/lib-commonjs/components/TableHeader/useTableHeader.js +1 -15
  349. package/lib-commonjs/components/TableHeader/useTableHeader.js.map +1 -1
  350. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.js +6 -19
  351. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.js.map +1 -1
  352. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js +1 -7
  353. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  354. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  355. package/lib-commonjs/components/TableHeaderCell/index.js +0 -6
  356. package/lib-commonjs/components/TableHeaderCell/index.js.map +1 -1
  357. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js +6 -8
  358. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  359. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js +10 -14
  360. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  361. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.js +69 -71
  362. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.js.map +1 -1
  363. package/lib-commonjs/components/TableRow/TableRow.js +1 -7
  364. package/lib-commonjs/components/TableRow/TableRow.js.map +1 -1
  365. package/lib-commonjs/components/TableRow/TableRow.types.js.map +1 -1
  366. package/lib-commonjs/components/TableRow/index.js +0 -6
  367. package/lib-commonjs/components/TableRow/index.js.map +1 -1
  368. package/lib-commonjs/components/TableRow/renderTableRow.js +3 -8
  369. package/lib-commonjs/components/TableRow/renderTableRow.js.map +1 -1
  370. package/lib-commonjs/components/TableRow/useTableRow.js +7 -10
  371. package/lib-commonjs/components/TableRow/useTableRow.js.map +1 -1
  372. package/lib-commonjs/components/TableRow/useTableRowStyles.js +137 -170
  373. package/lib-commonjs/components/TableRow/useTableRowStyles.js.map +1 -1
  374. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js +1 -7
  375. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  376. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  377. package/lib-commonjs/components/TableSelectionCell/index.js +0 -6
  378. package/lib-commonjs/components/TableSelectionCell/index.js.map +1 -1
  379. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js +6 -8
  380. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  381. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js +8 -11
  382. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  383. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.js +43 -50
  384. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.js.map +1 -1
  385. package/lib-commonjs/contexts/columnIdContext.js +16 -0
  386. package/lib-commonjs/contexts/columnIdContext.js.map +1 -0
  387. package/lib-commonjs/contexts/dataGridContext.js +20 -0
  388. package/lib-commonjs/contexts/dataGridContext.js.map +1 -0
  389. package/lib-commonjs/contexts/rowIdContext.js +16 -0
  390. package/lib-commonjs/contexts/rowIdContext.js.map +1 -0
  391. package/lib-commonjs/contexts/tableContext.js +0 -5
  392. package/lib-commonjs/contexts/tableContext.js.map +1 -1
  393. package/lib-commonjs/contexts/tableHeaderContext.js +0 -4
  394. package/lib-commonjs/contexts/tableHeaderContext.js.map +1 -1
  395. package/lib-commonjs/hooks/createColumn.js +42 -0
  396. package/lib-commonjs/hooks/createColumn.js.map +1 -0
  397. package/lib-commonjs/hooks/index.js +4 -8
  398. package/lib-commonjs/hooks/index.js.map +1 -1
  399. package/lib-commonjs/hooks/selectionManager.js +16 -34
  400. package/lib-commonjs/hooks/selectionManager.js.map +1 -1
  401. package/lib-commonjs/hooks/types.js.map +1 -1
  402. package/lib-commonjs/hooks/useTableFeatures.js +42 -0
  403. package/lib-commonjs/hooks/useTableFeatures.js.map +1 -0
  404. package/lib-commonjs/hooks/{useSelection.js → useTableSelection.js} +21 -28
  405. package/lib-commonjs/hooks/useTableSelection.js.map +1 -0
  406. package/lib-commonjs/hooks/{useSort.js → useTableSort.js} +15 -29
  407. package/lib-commonjs/hooks/useTableSort.js.map +1 -0
  408. package/lib-commonjs/index.js +27 -44
  409. package/lib-commonjs/index.js.map +1 -1
  410. package/package.json +15 -11
  411. package/lib/hooks/useSelection.js.map +0 -1
  412. package/lib/hooks/useSort.js.map +0 -1
  413. package/lib/hooks/useTable.js.map +0 -1
  414. package/lib-commonjs/hooks/useSelection.js.map +0 -1
  415. package/lib-commonjs/hooks/useSort.js.map +0 -1
  416. package/lib-commonjs/hooks/useTable.js +0 -42
  417. package/lib-commonjs/hooks/useTable.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -9,42 +9,62 @@ 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;
18
- }
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
+ };
19
29
 
20
- export declare type ColumnId = string | number;
30
+ export declare interface CreateTableColumnOptions<TItem> extends Partial<TableColumnDefinition<TItem>> {
31
+ columnId: TableColumnId;
32
+ }
21
33
 
22
34
  /**
23
- * DataGrid component - TODO: add more docs
35
+ * DataGrid component
24
36
  */
25
37
  export declare const DataGrid: ForwardRefComponent<DataGridProps>;
26
38
 
27
39
  /**
28
- * DataGridBody component - TODO: add more docs
40
+ * DataGridBody component
29
41
  */
30
- export declare const DataGridBody: ForwardRefComponent<DataGridBodyProps>;
42
+ export declare const DataGridBody: ForwardRefComponent<DataGridBodyProps> & (<TItem>(props: DataGridBodyProps<TItem>) => JSX.Element);
31
43
 
32
44
  export declare const dataGridBodyClassNames: SlotClassNames<DataGridBodySlots>;
33
45
 
34
46
  /**
35
47
  * DataGridBody Props
36
48
  */
37
- export declare type DataGridBodyProps = TableBodyProps;
49
+ export declare type DataGridBodyProps<TItem = unknown> = Omit<TableBodyProps, 'children'> & {
50
+ /**
51
+ * Render function for rows
52
+ */
53
+ children: RowRenderFunction<TItem>;
54
+ };
38
55
 
39
56
  export declare type DataGridBodySlots = TableBodySlots;
40
57
 
41
58
  /**
42
59
  * State used in rendering DataGridBody
43
60
  */
44
- export declare type DataGridBodyState = TableBodyState;
61
+ export declare type DataGridBodyState = TableBodyState & {
62
+ rows: TableRowData<unknown>[];
63
+ renderRow: RowRenderFunction;
64
+ };
45
65
 
46
66
  /**
47
- * DataGridCell component - TODO: add more docs
67
+ * DataGridCell component
48
68
  */
49
69
  export declare const DataGridCell: ForwardRefComponent<DataGridCellProps>;
50
70
 
@@ -64,15 +84,42 @@ export declare type DataGridCellState = TableCellState;
64
84
 
65
85
  export declare const dataGridClassNames: SlotClassNames<DataGridSlots>;
66
86
 
67
- export declare type DataGridContextValues = TableContextValues;
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';
68
115
 
69
116
  /**
70
- * DataGridHeader component - TODO: add more docs
117
+ * DataGridHeader component
71
118
  */
72
119
  export declare const DataGridHeader: ForwardRefComponent<DataGridHeaderProps>;
73
120
 
74
121
  /**
75
- * DataGridHeaderCell component - TODO: add more docs
122
+ * DataGridHeaderCell component
76
123
  */
77
124
  export declare const DataGridHeaderCell: ForwardRefComponent<DataGridHeaderCellProps>;
78
125
 
@@ -107,29 +154,48 @@ export declare type DataGridHeaderState = TableHeaderState;
107
154
  /**
108
155
  * DataGrid Props
109
156
  */
110
- export declare type DataGridProps = TableProps;
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
+ };
111
166
 
112
167
  /**
113
- * DataGridRow component - TODO: add more docs
168
+ * DataGridRow component
114
169
  */
115
- export declare const DataGridRow: ForwardRefComponent<DataGridRowProps>;
170
+ export declare const DataGridRow: ForwardRefComponent<DataGridRowProps> & (<TItem>(props: DataGridRowProps<TItem>) => JSX.Element);
116
171
 
117
172
  export declare const dataGridRowClassNames: SlotClassNames<DataGridRowSlots>;
118
173
 
119
174
  /**
120
175
  * DataGridRow Props
121
176
  */
122
- export declare type DataGridRowProps = TableRowProps;
177
+ export declare type DataGridRowProps<TItem = unknown> = Omit<TableRowProps, 'children'> & Omit<ComponentProps<DataGridRowSlots>, 'children'> & {
178
+ children: CellRenderFunction<TItem>;
179
+ };
123
180
 
124
- export declare type DataGridRowSlots = TableRowSlots;
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
+ };
125
188
 
126
189
  /**
127
190
  * State used in rendering DataGridRow
128
191
  */
129
- export declare type DataGridRowState = TableRowState;
192
+ export declare type DataGridRowState = TableRowState & ComponentState<DataGridRowSlots> & {
193
+ renderCell: CellRenderFunction;
194
+ columnDefs: TableColumnDefinition<any>[];
195
+ };
130
196
 
131
197
  /**
132
- * DataGridSelectionCell component - TODO: add more docs
198
+ * DataGridSelectionCell component
133
199
  */
134
200
  export declare const DataGridSelectionCell: ForwardRefComponent<DataGridSelectionCellProps>;
135
201
 
@@ -152,26 +218,12 @@ export declare type DataGridSlots = TableSlots;
152
218
  /**
153
219
  * State used in rendering DataGrid
154
220
  */
155
- export declare type DataGridState = TableState;
221
+ export declare type DataGridState = TableState & {
222
+ tableState: TableFeaturesState<unknown>;
223
+ } & Pick<DataGridContextValue, 'focusMode' | 'selectableRows' | 'subtleSelection' | 'selectionAppearance' | 'getRowId'>;
156
224
 
157
- export declare interface HeadlessTableState<TItem> extends Pick<UseTableOptions<TItem>, 'items' | 'getRowId'> {
158
- /**
159
- * The row data for rendering
160
- * @param rowEnhancer - Enhances the row with extra user data
161
- */
162
- getRows: <TRowState extends RowState<TItem> = RowState<TItem>>(rowEnhancer?: RowEnhancer<TItem, TRowState>) => TRowState[];
163
- /**
164
- * State and actions to manage row selection
165
- */
166
- selection: TableSelectionState;
167
- /**
168
- * State and actions to manage row sorting
169
- */
170
- sort: TableSortState<TItem>;
171
- /**
172
- * Table columns
173
- */
174
- columns: ColumnDefinition<TItem>[];
225
+ declare interface OnSelectionChangeData {
226
+ selectedItems: Set<TableRowId>;
175
227
  }
176
228
 
177
229
  /**
@@ -254,37 +306,26 @@ export declare const renderTableRow_unstable: (state: TableRowState) => JSX.Elem
254
306
  */
255
307
  export declare const renderTableSelectionCell_unstable: (state: TableSelectionCellState) => JSX.Element;
256
308
 
257
- declare type RowEnhancer<TItem, TRowState extends RowState<TItem> = RowState<TItem>> = (row: RowState<TItem>) => TRowState;
309
+ declare type RowEnhancer<TItem, TRowState extends TableRowData<TItem> = TableRowData<TItem>> = (row: TableRowData<TItem>) => TRowState;
258
310
 
259
- export declare type RowId = string | number;
260
-
261
- export declare interface RowState<TItem> {
262
- /**
263
- * User provided data
264
- */
265
- item: TItem;
266
- /**
267
- * The row id, defaults to index position in the collection
268
- */
269
- rowId: RowId;
270
- }
311
+ export declare type RowRenderFunction<TItem = unknown> = (row: TableRowData<TItem>, ...rest: unknown[]) => React_2.ReactNode;
271
312
 
272
313
  declare type SelectionMode_2 = 'single' | 'multiselect';
273
314
 
274
315
  export declare type SortDirection = 'ascending' | 'descending';
275
316
 
276
317
  declare interface SortState {
277
- sortColumn: ColumnId | undefined;
318
+ sortColumn: TableColumnId | undefined;
278
319
  sortDirection: SortDirection;
279
320
  }
280
321
 
281
322
  /**
282
- * Table component - TODO: add more docs
323
+ * Table component
283
324
  */
284
325
  export declare const Table: ForwardRefComponent<TableProps>;
285
326
 
286
327
  /**
287
- * TableBody component - TODO: add more docs
328
+ * TableBody component
288
329
  */
289
330
  export declare const TableBody: ForwardRefComponent<TableBodyProps>;
290
331
 
@@ -307,12 +348,12 @@ export declare type TableBodySlots = {
307
348
  export declare type TableBodyState = ComponentState<TableBodySlots> & Pick<TableContextValue, 'noNativeElements'>;
308
349
 
309
350
  /**
310
- * TableCell component - TODO: add more docs
351
+ * TableCell component
311
352
  */
312
353
  export declare const TableCell: ForwardRefComponent<TableCellProps>;
313
354
 
314
355
  /**
315
- * TableCellActions component - TODO: add more docs
356
+ * TableCellActions component
316
357
  */
317
358
  export declare const TableCellActions: ForwardRefComponent<TableCellActionsProps>;
318
359
 
@@ -343,7 +384,7 @@ export declare const tableCellClassName = "fui-TableCell";
343
384
  export declare const tableCellClassNames: SlotClassNames<TableCellSlots>;
344
385
 
345
386
  /**
346
- * TableCellLayout component - TODO: add more docs
387
+ * TableCellLayout component
347
388
  */
348
389
  export declare const TableCellLayout: ForwardRefComponent<TableCellLayoutProps>;
349
390
 
@@ -359,6 +400,10 @@ declare type TableCellLayoutContextValues = {
359
400
  * TableCellLayout Props
360
401
  */
361
402
  export declare type TableCellLayoutProps = ComponentProps<Partial<TableCellLayoutSlots>> & {
403
+ /**
404
+ * Renders design variants of the table cell
405
+ * @default undefined
406
+ */
362
407
  appearance?: 'primary';
363
408
  };
364
409
 
@@ -379,7 +424,7 @@ export declare type TableCellLayoutSlots = {
379
424
  /**
380
425
  * A layout wrapper for the main and description slots
381
426
  */
382
- wrapper: Slot<'div'>;
427
+ content: Slot<'div'>;
383
428
  };
384
429
 
385
430
  /**
@@ -387,7 +432,7 @@ export declare type TableCellLayoutSlots = {
387
432
  */
388
433
  export declare type TableCellLayoutState = ComponentState<TableCellLayoutSlots> & Pick<TableCellLayoutProps, 'appearance'> & {
389
434
  avatarSize: AvatarSizes | undefined;
390
- };
435
+ } & Pick<TableContextValue, 'size'>;
391
436
 
392
437
  /**
393
438
  * TableCell Props
@@ -401,12 +446,21 @@ export declare type TableCellSlots = {
401
446
  /**
402
447
  * State used in rendering TableCell
403
448
  */
404
- export declare type TableCellState = ComponentState<TableCellSlots> & Pick<TableContextValue, 'noNativeElements'>;
449
+ export declare type TableCellState = ComponentState<TableCellSlots> & Pick<TableContextValue, 'noNativeElements' | 'size'>;
405
450
 
406
451
  export declare const tableClassName = "fui-Table";
407
452
 
408
453
  export declare const tableClassNames: SlotClassNames<TableSlots>;
409
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
+
410
464
  export declare const TableContextProvider: React_2.Provider<TableContextValue | undefined>;
411
465
 
412
466
  export declare type TableContextValue = {
@@ -414,14 +468,16 @@ export declare type TableContextValue = {
414
468
  * Affects the sizes of all table subcomponents
415
469
  * @default medium
416
470
  */
417
- size: 'small' | 'smaller' | 'medium';
471
+ size: 'extra-small' | 'small' | 'medium';
418
472
  /**
419
- * Render all table elements as divs intead of semantic table elements
473
+ * Render all table elements as divs instead of semantic table elements
420
474
  * Using divs no longer uses `display: table` layout but `display: flex`
475
+ * @default false
421
476
  */
422
477
  noNativeElements: boolean;
423
478
  /**
424
479
  * Whether the table is sortable
480
+ * @default false
425
481
  */
426
482
  sortable: boolean;
427
483
  };
@@ -430,13 +486,35 @@ export declare type TableContextValues = {
430
486
  table: TableContextValue;
431
487
  };
432
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
+
433
511
  /**
434
- * TableHeader component - TODO: add more docs
512
+ * TableHeader component
435
513
  */
436
514
  export declare const TableHeader: ForwardRefComponent<TableHeaderProps>;
437
515
 
438
516
  /**
439
- * TableHeaderCell component - TODO: add more docs
517
+ * TableHeaderCell component
440
518
  */
441
519
  export declare const TableHeaderCell: ForwardRefComponent<TableHeaderCellProps>;
442
520
 
@@ -448,6 +526,9 @@ export declare const tableHeaderCellClassNames: SlotClassNames<TableHeaderCellSl
448
526
  * TableHeaderCell Props
449
527
  */
450
528
  export declare type TableHeaderCellProps = ComponentProps<Partial<TableHeaderCellSlots>> & {
529
+ /**
530
+ * @default undefined
531
+ */
451
532
  sortDirection?: SortDirection;
452
533
  };
453
534
 
@@ -489,7 +570,7 @@ export declare type TableHeaderState = ComponentState<TableHeaderSlots> & Pick<T
489
570
  export declare type TableProps = ComponentProps<TableSlots> & Partial<TableContextValue>;
490
571
 
491
572
  /**
492
- * TableRow component - TODO: add more docs
573
+ * TableRow component
493
574
  */
494
575
  export declare const TableRow: ForwardRefComponent<TableRowProps>;
495
576
 
@@ -497,12 +578,28 @@ export declare const tableRowClassName = "fui-TableRow";
497
578
 
498
579
  export declare const tableRowClassNames: SlotClassNames<TableRowSlots>;
499
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
+
500
596
  /**
501
597
  * TableRow Props
502
598
  */
503
599
  export declare type TableRowProps = ComponentProps<TableRowSlots> & {
504
600
  /**
505
- * 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.
506
603
  * @default none
507
604
  */
508
605
  appearance?: 'brand' | 'neutral' | 'none';
@@ -515,10 +612,12 @@ export declare type TableRowSlots = {
515
612
  /**
516
613
  * State used in rendering TableRow
517
614
  */
518
- 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
+ };
519
618
 
520
619
  /**
521
- * TableSelectionCell component - TODO: add more docs
620
+ * TableSelectionCell component
522
621
  */
523
622
  export declare const TableSelectionCell: ForwardRefComponent<TableSelectionCellProps>;
524
623
 
@@ -527,18 +626,24 @@ export declare const tableSelectionCellClassNames: SlotClassNames<TableSelection
527
626
  /**
528
627
  * TableSelectionCell Props
529
628
  */
530
- export declare type TableSelectionCellProps = ComponentProps<Partial<Omit<TableSelectionCellSlots, 'media'>>> & {
629
+ export declare type TableSelectionCellProps = ComponentProps<Partial<TableSelectionCellSlots>> & {
531
630
  /**
532
- * A table can have two kinds of selection modes
631
+ * A table can have two kinds of selection modes.
632
+ * @default checkbox
533
633
  */
534
634
  type?: 'checkbox' | 'radio';
635
+ /**
636
+ * @default false
637
+ */
535
638
  checked?: CheckboxProps['checked'];
536
639
  /**
537
- * 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
538
642
  */
539
643
  subtle?: boolean;
540
644
  /**
541
645
  * Completely hides the selection cell visually but takes up the same space
646
+ * @default false
542
647
  */
543
648
  hidden?: boolean;
544
649
  };
@@ -563,27 +668,27 @@ export declare interface TableSelectionState {
563
668
  /**
564
669
  * Clears all selected rows
565
670
  */
566
- clearRows: () => void;
671
+ clearRows: (e: React_2.SyntheticEvent) => void;
567
672
  /**
568
673
  * Selects single row
569
674
  */
570
- selectRow: (rowId: RowId) => void;
675
+ selectRow: (e: React_2.SyntheticEvent, rowId: TableRowId) => void;
571
676
  /**
572
677
  * De-selects single row
573
678
  */
574
- deselectRow: (rowId: RowId) => void;
679
+ deselectRow: (e: React_2.SyntheticEvent, rowId: TableRowId) => void;
575
680
  /**
576
681
  * Toggle selection of all rows
577
682
  */
578
- toggleAllRows: () => void;
683
+ toggleAllRows: (e: React_2.SyntheticEvent) => void;
579
684
  /**
580
685
  * Toggle selection of single row
581
686
  */
582
- toggleRow: (rowId: RowId) => void;
687
+ toggleRow: (e: React_2.SyntheticEvent, rowId: TableRowId) => void;
583
688
  /**
584
689
  * Collection of row ids corresponding to selected rows
585
690
  */
586
- selectedRows: Set<RowId>;
691
+ selectedRows: Set<TableRowId>;
587
692
  /**
588
693
  * Whether all rows are selected
589
694
  */
@@ -595,7 +700,8 @@ export declare interface TableSelectionState {
595
700
  /**
596
701
  * Checks if a given rowId is selected
597
702
  */
598
- isRowSelected: (rowId: RowId) => boolean;
703
+ isRowSelected: (rowId: TableRowId) => boolean;
704
+ selectionMode: SelectionMode_2;
599
705
  }
600
706
 
601
707
  export declare type TableSlots = {
@@ -610,24 +716,24 @@ export declare interface TableSortState<TItem> {
610
716
  /**
611
717
  * Column id of the currently sorted column
612
718
  */
613
- sortColumn: ColumnId | undefined;
719
+ sortColumn: TableColumnId | undefined;
614
720
  /**
615
721
  * Set the sort direction for the specified column
616
722
  */
617
- setColumnSort: (columnId: ColumnId, sortDirection: SortDirection) => void;
723
+ setColumnSort: (event: React_2.SyntheticEvent, columnId: TableColumnId, sortDirection: SortDirection) => void;
618
724
  /**
619
725
  * Toggles the sort direction for specified column
620
726
  */
621
- toggleColumnSort: (columnId: ColumnId) => void;
727
+ toggleColumnSort: (event: React_2.SyntheticEvent, columnId: TableColumnId) => void;
622
728
  /**
623
729
  * Returns the sort direction if a column is sorted,
624
730
  * returns undefined if the column is not sorted
625
731
  */
626
- getSortDirection: (columnId: ColumnId) => SortDirection | undefined;
732
+ getSortDirection: (columnId: TableColumnId) => SortDirection | undefined;
627
733
  /**
628
734
  * Sorts rows and returns a **shallow** copy of original items
629
735
  */
630
- sort: (rows: RowState<TItem>[]) => RowState<TItem>[];
736
+ sort: <TRowState extends TableRowData<TItem>>(rows: TRowState[]) => TRowState[];
631
737
  }
632
738
 
633
739
  /**
@@ -635,8 +741,6 @@ export declare interface TableSortState<TItem> {
635
741
  */
636
742
  export declare type TableState = ComponentState<TableSlots> & Pick<Required<TableProps>, 'size' | 'noNativeElements'> & TableContextValue;
637
743
 
638
- export declare type TableStatePlugin = <TItem>(tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;
639
-
640
744
  /**
641
745
  * Create the state required to render DataGrid.
642
746
  *
@@ -749,46 +853,6 @@ export declare const useDataGridSelectionCellStyles_unstable: (state: DataGridSe
749
853
  */
750
854
  export declare const useDataGridStyles_unstable: (state: DataGridState) => DataGridState;
751
855
 
752
- export declare function useSelection<TItem>(options: UseSelectionOptions): (tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;
753
-
754
- declare interface UseSelectionOptions {
755
- /**
756
- * Can be multi or single select
757
- */
758
- selectionMode: SelectionMode_2;
759
- /**
760
- * Used in uncontrolled mode to set initial selected rows on mount
761
- */
762
- defaultSelectedItems?: Set<RowId>;
763
- /**
764
- * Used to control row selection
765
- */
766
- selectedItems?: Set<RowId>;
767
- /**
768
- * Called when selection changes
769
- */
770
- onSelectionChange?: (selectedItems: Set<RowId>) => void;
771
- }
772
-
773
- export declare function useSort<TItem>(options: UseSortOptions): (tableState: HeadlessTableState<TItem>) => HeadlessTableState<TItem>;
774
-
775
- declare interface UseSortOptions {
776
- /**
777
- * Used to control sorting
778
- */
779
- sortState?: SortState;
780
- /**
781
- * Used in uncontrolled mode to set initial sort column and direction on mount
782
- */
783
- defaultSortState?: SortState;
784
- /**
785
- * Called when sort changes
786
- */
787
- onSortChange?: (state: SortState) => void;
788
- }
789
-
790
- export declare function useTable<TItem>(options: UseTableOptions<TItem>, plugins?: TableStatePlugin[]): HeadlessTableState<TItem>;
791
-
792
856
  /**
793
857
  * Create the state required to render Table.
794
858
  *
@@ -866,6 +930,14 @@ export declare const useTableCellStyles_unstable: (state: TableCellState) => Tab
866
930
 
867
931
  export declare const useTableContext: () => TableContextValue;
868
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
+
869
941
  /**
870
942
  * Create the state required to render TableHeader.
871
943
  *
@@ -898,12 +970,6 @@ export declare const useTableHeaderCellStyles_unstable: (state: TableHeaderCellS
898
970
  */
899
971
  export declare const useTableHeaderStyles_unstable: (state: TableHeaderState) => TableHeaderState;
900
972
 
901
- export declare interface UseTableOptions<TItem> {
902
- columns: ColumnDefinition<TItem>[];
903
- items: TItem[];
904
- getRowId?: (item: TItem) => RowId;
905
- }
906
-
907
973
  /**
908
974
  * Create the state required to render TableRow.
909
975
  *
@@ -915,11 +981,15 @@ export declare interface UseTableOptions<TItem> {
915
981
  */
916
982
  export declare const useTableRow_unstable: (props: TableRowProps, ref: React_2.Ref<HTMLElement>) => TableRowState;
917
983
 
984
+ export declare const useTableRowIdContext: () => TableRowId;
985
+
918
986
  /**
919
987
  * Apply styling to the TableRow slots based on the state
920
988
  */
921
989
  export declare const useTableRowStyles_unstable: (state: TableRowState) => TableRowState;
922
990
 
991
+ export declare function useTableSelection<TItem>(options: UseTableSelectionOptions): (tableState: TableFeaturesState<TItem>) => TableFeaturesState<TItem>;
992
+
923
993
  /**
924
994
  * Create the state required to render TableSelectionCell.
925
995
  *
@@ -936,6 +1006,42 @@ export declare const useTableSelectionCell_unstable: (props: TableSelectionCellP
936
1006
  */
937
1007
  export declare const useTableSelectionCellStyles_unstable: (state: TableSelectionCellState) => TableSelectionCellState;
938
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
+
939
1045
  /**
940
1046
  * Apply styling to the Table slots based on the state
941
1047
  */
@@ -4,9 +4,8 @@ import { renderDataGrid_unstable } from './renderDataGrid';
4
4
  import { useDataGridStyles_unstable } from './useDataGridStyles';
5
5
  import { useDataGridContextValues_unstable } from './useDataGridContextValues';
6
6
  /**
7
- * DataGrid component - TODO: add more docs
7
+ * DataGrid component
8
8
  */
9
-
10
9
  export const DataGrid = /*#__PURE__*/React.forwardRef((props, ref) => {
11
10
  const state = useDataGrid_unstable(props, ref);
12
11
  useDataGridStyles_unstable(state);