@patternfly/react-table 6.0.0-alpha.1 → 6.0.0-alpha.100

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 (366) hide show
  1. package/CHANGELOG.md +1215 -1
  2. package/README.md +3 -18
  3. package/components/package.json +1 -1
  4. package/deprecated/package.json +1 -1
  5. package/dist/dynamic/components/Table/package.json +1 -1
  6. package/dist/dynamic/components/Table/utils/decorators/package.json +1 -1
  7. package/dist/dynamic/components/Table/utils/package.json +1 -1
  8. package/dist/dynamic/deprecated/components/Table/base/package.json +1 -1
  9. package/dist/dynamic/deprecated/components/Table/package.json +1 -1
  10. package/dist/dynamic/deprecated/components/package.json +1 -1
  11. package/dist/dynamic-modules.json +127 -0
  12. package/dist/esm/components/Table/ActionsColumn.d.ts +3 -1
  13. package/dist/esm/components/Table/ActionsColumn.d.ts.map +1 -1
  14. package/dist/esm/components/Table/ActionsColumn.js +4 -5
  15. package/dist/esm/components/Table/ActionsColumn.js.map +1 -1
  16. package/dist/esm/components/Table/Caption.js +1 -1
  17. package/dist/esm/components/Table/Caption.js.map +1 -1
  18. package/dist/esm/components/Table/CollapseColumn.js +1 -1
  19. package/dist/esm/components/Table/CollapseColumn.js.map +1 -1
  20. package/dist/esm/components/Table/DraggableCell.d.ts.map +1 -1
  21. package/dist/esm/components/Table/DraggableCell.js +1 -2
  22. package/dist/esm/components/Table/DraggableCell.js.map +1 -1
  23. package/dist/esm/components/Table/DraggableRowWrapper.js +2 -2
  24. package/dist/esm/components/Table/DraggableRowWrapper.js.map +1 -1
  25. package/dist/esm/components/Table/EditColumn.d.ts.map +1 -1
  26. package/dist/esm/components/Table/EditColumn.js +4 -7
  27. package/dist/esm/components/Table/EditColumn.js.map +1 -1
  28. package/dist/esm/components/Table/EditableSelectInputCell.d.ts +3 -4
  29. package/dist/esm/components/Table/EditableSelectInputCell.d.ts.map +1 -1
  30. package/dist/esm/components/Table/EditableSelectInputCell.js +11 -7
  31. package/dist/esm/components/Table/EditableSelectInputCell.js.map +1 -1
  32. package/dist/esm/components/Table/EditableTextCell.js +3 -3
  33. package/dist/esm/components/Table/EditableTextCell.js.map +1 -1
  34. package/dist/esm/components/Table/ExpandableRowContent.js +1 -1
  35. package/dist/esm/components/Table/ExpandableRowContent.js.map +1 -1
  36. package/dist/esm/components/Table/FavoritesCell.d.ts.map +1 -1
  37. package/dist/esm/components/Table/FavoritesCell.js +1 -2
  38. package/dist/esm/components/Table/FavoritesCell.js.map +1 -1
  39. package/dist/esm/components/Table/HeaderCellInfoWrapper.d.ts.map +1 -1
  40. package/dist/esm/components/Table/HeaderCellInfoWrapper.js +3 -5
  41. package/dist/esm/components/Table/HeaderCellInfoWrapper.js.map +1 -1
  42. package/dist/esm/components/Table/InnerScrollContainer.js +1 -1
  43. package/dist/esm/components/Table/InnerScrollContainer.js.map +1 -1
  44. package/dist/esm/components/Table/OuterScrollContainer.js +1 -1
  45. package/dist/esm/components/Table/OuterScrollContainer.js.map +1 -1
  46. package/dist/esm/components/Table/RowWrapper.d.ts +1 -1
  47. package/dist/esm/components/Table/RowWrapper.js.map +1 -1
  48. package/dist/esm/components/Table/SelectColumn.d.ts +5 -0
  49. package/dist/esm/components/Table/SelectColumn.d.ts.map +1 -1
  50. package/dist/esm/components/Table/SelectColumn.js +6 -3
  51. package/dist/esm/components/Table/SelectColumn.js.map +1 -1
  52. package/dist/esm/components/Table/SortColumn.d.ts +4 -0
  53. package/dist/esm/components/Table/SortColumn.d.ts.map +1 -1
  54. package/dist/esm/components/Table/SortColumn.js +3 -3
  55. package/dist/esm/components/Table/SortColumn.js.map +1 -1
  56. package/dist/esm/components/Table/Table.d.ts +1 -1
  57. package/dist/esm/components/Table/Table.d.ts.map +1 -1
  58. package/dist/esm/components/Table/Table.js +9 -9
  59. package/dist/esm/components/Table/Table.js.map +1 -1
  60. package/dist/esm/components/Table/TableText.d.ts +3 -1
  61. package/dist/esm/components/Table/TableText.d.ts.map +1 -1
  62. package/dist/esm/components/Table/TableText.js +13 -11
  63. package/dist/esm/components/Table/TableText.js.map +1 -1
  64. package/dist/esm/components/Table/TableTypes.d.ts +29 -25
  65. package/dist/esm/components/Table/TableTypes.d.ts.map +1 -1
  66. package/dist/esm/components/Table/TableTypes.js.map +1 -1
  67. package/dist/esm/components/Table/Tbody.d.ts +1 -1
  68. package/dist/esm/components/Table/Tbody.d.ts.map +1 -1
  69. package/dist/esm/components/Table/Tbody.js +1 -1
  70. package/dist/esm/components/Table/Tbody.js.map +1 -1
  71. package/dist/esm/components/Table/Td.d.ts +2 -2
  72. package/dist/esm/components/Table/Td.d.ts.map +1 -1
  73. package/dist/esm/components/Table/Td.js +9 -5
  74. package/dist/esm/components/Table/Td.js.map +1 -1
  75. package/dist/esm/components/Table/Th.d.ts +12 -1
  76. package/dist/esm/components/Table/Th.d.ts.map +1 -1
  77. package/dist/esm/components/Table/Th.js +26 -12
  78. package/dist/esm/components/Table/Th.js.map +1 -1
  79. package/dist/esm/components/Table/Thead.d.ts +1 -1
  80. package/dist/esm/components/Table/Thead.d.ts.map +1 -1
  81. package/dist/esm/components/Table/Thead.js +1 -1
  82. package/dist/esm/components/Table/Thead.js.map +1 -1
  83. package/dist/esm/components/Table/Tr.d.ts +4 -2
  84. package/dist/esm/components/Table/Tr.d.ts.map +1 -1
  85. package/dist/esm/components/Table/Tr.js +4 -4
  86. package/dist/esm/components/Table/Tr.js.map +1 -1
  87. package/dist/esm/components/Table/TreeRowWrapper.js +2 -2
  88. package/dist/esm/components/Table/TreeRowWrapper.js.map +1 -1
  89. package/dist/esm/components/Table/base/columns-are-equal.js.map +1 -1
  90. package/dist/esm/components/Table/base/evaluate-transforms.js.map +1 -1
  91. package/dist/esm/components/Table/base/merge-props.js.map +1 -1
  92. package/dist/esm/components/Table/base/provider.d.ts +8 -8
  93. package/dist/esm/components/Table/base/provider.js.map +1 -1
  94. package/dist/esm/components/Table/base/types.d.ts +23 -24
  95. package/dist/esm/components/Table/base/types.d.ts.map +1 -1
  96. package/dist/esm/components/Table/base/types.js.map +1 -1
  97. package/dist/esm/components/Table/utils/decorators/cellActions.js +1 -1
  98. package/dist/esm/components/Table/utils/decorators/cellActions.js.map +1 -1
  99. package/dist/esm/components/Table/utils/decorators/cellWidth.js +1 -1
  100. package/dist/esm/components/Table/utils/decorators/cellWidth.js.map +1 -1
  101. package/dist/esm/components/Table/utils/decorators/classNames.js +1 -1
  102. package/dist/esm/components/Table/utils/decorators/classNames.js.map +1 -1
  103. package/dist/esm/components/Table/utils/decorators/collapsible.js +1 -1
  104. package/dist/esm/components/Table/utils/decorators/collapsible.js.map +1 -1
  105. package/dist/esm/components/Table/utils/decorators/compoundExpand.js +1 -1
  106. package/dist/esm/components/Table/utils/decorators/compoundExpand.js.map +1 -1
  107. package/dist/esm/components/Table/utils/decorators/editable.js +1 -1
  108. package/dist/esm/components/Table/utils/decorators/editable.js.map +1 -1
  109. package/dist/esm/components/Table/utils/decorators/favoritable.js +1 -1
  110. package/dist/esm/components/Table/utils/decorators/favoritable.js.map +1 -1
  111. package/dist/esm/components/Table/utils/decorators/info.js +1 -1
  112. package/dist/esm/components/Table/utils/decorators/info.js.map +1 -1
  113. package/dist/esm/components/Table/utils/decorators/selectable.d.ts.map +1 -1
  114. package/dist/esm/components/Table/utils/decorators/selectable.js +5 -5
  115. package/dist/esm/components/Table/utils/decorators/selectable.js.map +1 -1
  116. package/dist/esm/components/Table/utils/decorators/sortable.d.ts.map +1 -1
  117. package/dist/esm/components/Table/utils/decorators/sortable.js +7 -4
  118. package/dist/esm/components/Table/utils/decorators/sortable.js.map +1 -1
  119. package/dist/esm/components/Table/utils/decorators/treeRow.d.ts +3 -3
  120. package/dist/esm/components/Table/utils/decorators/treeRow.d.ts.map +1 -1
  121. package/dist/esm/components/Table/utils/decorators/treeRow.js +5 -5
  122. package/dist/esm/components/Table/utils/decorators/treeRow.js.map +1 -1
  123. package/dist/esm/components/Table/utils/decorators/wrappable.js +1 -1
  124. package/dist/esm/components/Table/utils/decorators/wrappable.js.map +1 -1
  125. package/dist/esm/components/Table/utils/headerUtils.js.map +1 -1
  126. package/dist/esm/components/Table/utils/utils.js.map +1 -1
  127. package/dist/esm/demos/DashboardHeader.d.ts +8 -0
  128. package/dist/esm/demos/DashboardHeader.d.ts.map +1 -0
  129. package/dist/esm/demos/DashboardHeader.js +78 -0
  130. package/dist/esm/demos/DashboardHeader.js.map +1 -0
  131. package/dist/esm/demos/DashboardWrapper.d.ts +85 -0
  132. package/dist/esm/demos/DashboardWrapper.d.ts.map +1 -0
  133. package/dist/esm/demos/DashboardWrapper.js +41 -0
  134. package/dist/esm/demos/DashboardWrapper.js.map +1 -0
  135. package/dist/esm/demos/index.d.ts +4 -0
  136. package/dist/esm/demos/index.d.ts.map +1 -0
  137. package/dist/esm/demos/index.js +4 -0
  138. package/dist/esm/demos/index.js.map +1 -0
  139. package/dist/esm/demos/sampleData.d.ts +13 -0
  140. package/dist/esm/demos/sampleData.d.ts.map +1 -0
  141. package/dist/esm/demos/sampleData.js +764 -0
  142. package/dist/esm/demos/sampleData.js.map +1 -0
  143. package/dist/esm/deprecated/components/Table/Body.d.ts +2 -2
  144. package/dist/esm/deprecated/components/Table/Body.d.ts.map +1 -1
  145. package/dist/esm/deprecated/components/Table/Body.js.map +1 -1
  146. package/dist/esm/deprecated/components/Table/BodyCell.js.map +1 -1
  147. package/dist/esm/deprecated/components/Table/BodyWrapper.js.map +1 -1
  148. package/dist/esm/deprecated/components/Table/Table.d.ts +1 -1
  149. package/dist/esm/deprecated/components/Table/Table.d.ts.map +1 -1
  150. package/dist/esm/deprecated/components/Table/Table.js +3 -4
  151. package/dist/esm/deprecated/components/Table/Table.js.map +1 -1
  152. package/dist/esm/deprecated/components/Table/base/body-row.js.map +1 -1
  153. package/dist/esm/deprecated/components/Table/base/body.d.ts +8 -2
  154. package/dist/esm/deprecated/components/Table/base/body.d.ts.map +1 -1
  155. package/dist/esm/deprecated/components/Table/base/body.js.map +1 -1
  156. package/dist/esm/deprecated/components/Table/base/header-row.js +1 -1
  157. package/dist/esm/deprecated/components/Table/base/header-row.js.map +1 -1
  158. package/dist/esm/deprecated/components/Table/base/header.d.ts +1 -1
  159. package/dist/esm/deprecated/components/Table/base/header.d.ts.map +1 -1
  160. package/dist/esm/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
  161. package/dist/esm/test-helpers/data-helpers.js.map +1 -1
  162. package/dist/js/components/Table/ActionsColumn.d.ts +3 -1
  163. package/dist/js/components/Table/ActionsColumn.d.ts.map +1 -1
  164. package/dist/js/components/Table/ActionsColumn.js +10 -11
  165. package/dist/js/components/Table/ActionsColumn.js.map +1 -1
  166. package/dist/js/components/Table/CollapseColumn.js +2 -2
  167. package/dist/js/components/Table/CollapseColumn.js.map +1 -1
  168. package/dist/js/components/Table/DraggableCell.d.ts.map +1 -1
  169. package/dist/js/components/Table/DraggableCell.js +3 -4
  170. package/dist/js/components/Table/DraggableCell.js.map +1 -1
  171. package/dist/js/components/Table/EditColumn.d.ts.map +1 -1
  172. package/dist/js/components/Table/EditColumn.js +7 -10
  173. package/dist/js/components/Table/EditColumn.js.map +1 -1
  174. package/dist/js/components/Table/EditableSelectInputCell.d.ts +3 -4
  175. package/dist/js/components/Table/EditableSelectInputCell.d.ts.map +1 -1
  176. package/dist/js/components/Table/EditableSelectInputCell.js +9 -5
  177. package/dist/js/components/Table/EditableSelectInputCell.js.map +1 -1
  178. package/dist/js/components/Table/EditableTextCell.js +2 -2
  179. package/dist/js/components/Table/EditableTextCell.js.map +1 -1
  180. package/dist/js/components/Table/FavoritesCell.d.ts.map +1 -1
  181. package/dist/js/components/Table/FavoritesCell.js +3 -4
  182. package/dist/js/components/Table/FavoritesCell.js.map +1 -1
  183. package/dist/js/components/Table/HeaderCellInfoWrapper.d.ts.map +1 -1
  184. package/dist/js/components/Table/HeaderCellInfoWrapper.js +6 -8
  185. package/dist/js/components/Table/HeaderCellInfoWrapper.js.map +1 -1
  186. package/dist/js/components/Table/RowWrapper.d.ts +1 -1
  187. package/dist/js/components/Table/RowWrapper.js +1 -1
  188. package/dist/js/components/Table/RowWrapper.js.map +1 -1
  189. package/dist/js/components/Table/SelectColumn.d.ts +5 -0
  190. package/dist/js/components/Table/SelectColumn.d.ts.map +1 -1
  191. package/dist/js/components/Table/SelectColumn.js +7 -4
  192. package/dist/js/components/Table/SelectColumn.js.map +1 -1
  193. package/dist/js/components/Table/SortColumn.d.ts +4 -0
  194. package/dist/js/components/Table/SortColumn.d.ts.map +1 -1
  195. package/dist/js/components/Table/SortColumn.js +6 -6
  196. package/dist/js/components/Table/SortColumn.js.map +1 -1
  197. package/dist/js/components/Table/Table.d.ts +1 -1
  198. package/dist/js/components/Table/Table.d.ts.map +1 -1
  199. package/dist/js/components/Table/Table.js +5 -5
  200. package/dist/js/components/Table/Table.js.map +1 -1
  201. package/dist/js/components/Table/TableText.d.ts +3 -1
  202. package/dist/js/components/Table/TableText.d.ts.map +1 -1
  203. package/dist/js/components/Table/TableText.js +15 -13
  204. package/dist/js/components/Table/TableText.js.map +1 -1
  205. package/dist/js/components/Table/TableTypes.d.ts +29 -25
  206. package/dist/js/components/Table/TableTypes.d.ts.map +1 -1
  207. package/dist/js/components/Table/TableTypes.js +2 -2
  208. package/dist/js/components/Table/TableTypes.js.map +1 -1
  209. package/dist/js/components/Table/Tbody.d.ts +1 -1
  210. package/dist/js/components/Table/Tbody.d.ts.map +1 -1
  211. package/dist/js/components/Table/Td.d.ts +2 -2
  212. package/dist/js/components/Table/Td.d.ts.map +1 -1
  213. package/dist/js/components/Table/Td.js +8 -4
  214. package/dist/js/components/Table/Td.js.map +1 -1
  215. package/dist/js/components/Table/Th.d.ts +12 -1
  216. package/dist/js/components/Table/Th.d.ts.map +1 -1
  217. package/dist/js/components/Table/Th.js +24 -10
  218. package/dist/js/components/Table/Th.js.map +1 -1
  219. package/dist/js/components/Table/Thead.d.ts +1 -1
  220. package/dist/js/components/Table/Thead.d.ts.map +1 -1
  221. package/dist/js/components/Table/Tr.d.ts +4 -2
  222. package/dist/js/components/Table/Tr.d.ts.map +1 -1
  223. package/dist/js/components/Table/Tr.js +3 -3
  224. package/dist/js/components/Table/Tr.js.map +1 -1
  225. package/dist/js/components/Table/base/columns-are-equal.js.map +1 -1
  226. package/dist/js/components/Table/base/evaluate-transforms.js.map +1 -1
  227. package/dist/js/components/Table/base/merge-props.js.map +1 -1
  228. package/dist/js/components/Table/base/provider.d.ts +8 -8
  229. package/dist/js/components/Table/base/provider.js.map +1 -1
  230. package/dist/js/components/Table/base/types.d.ts +23 -24
  231. package/dist/js/components/Table/base/types.d.ts.map +1 -1
  232. package/dist/js/components/Table/base/types.js.map +1 -1
  233. package/dist/js/components/Table/utils/decorators/compoundExpand.js.map +1 -1
  234. package/dist/js/components/Table/utils/decorators/editable.js.map +1 -1
  235. package/dist/js/components/Table/utils/decorators/favoritable.js.map +1 -1
  236. package/dist/js/components/Table/utils/decorators/selectable.d.ts.map +1 -1
  237. package/dist/js/components/Table/utils/decorators/selectable.js +3 -3
  238. package/dist/js/components/Table/utils/decorators/selectable.js.map +1 -1
  239. package/dist/js/components/Table/utils/decorators/sortable.d.ts.map +1 -1
  240. package/dist/js/components/Table/utils/decorators/sortable.js +7 -4
  241. package/dist/js/components/Table/utils/decorators/sortable.js.map +1 -1
  242. package/dist/js/components/Table/utils/decorators/treeRow.d.ts +3 -3
  243. package/dist/js/components/Table/utils/decorators/treeRow.d.ts.map +1 -1
  244. package/dist/js/components/Table/utils/decorators/treeRow.js +7 -7
  245. package/dist/js/components/Table/utils/decorators/treeRow.js.map +1 -1
  246. package/dist/js/components/Table/utils/headerUtils.js.map +1 -1
  247. package/dist/js/components/Table/utils/utils.js.map +1 -1
  248. package/dist/js/demos/DashboardHeader.d.ts +8 -0
  249. package/dist/js/demos/DashboardHeader.d.ts.map +1 -0
  250. package/dist/js/demos/DashboardHeader.js +83 -0
  251. package/dist/js/demos/DashboardHeader.js.map +1 -0
  252. package/dist/js/demos/DashboardWrapper.d.ts +85 -0
  253. package/dist/js/demos/DashboardWrapper.d.ts.map +1 -0
  254. package/dist/js/demos/DashboardWrapper.js +45 -0
  255. package/dist/js/demos/DashboardWrapper.js.map +1 -0
  256. package/dist/js/demos/index.d.ts +4 -0
  257. package/dist/js/demos/index.d.ts.map +1 -0
  258. package/dist/js/demos/index.js +7 -0
  259. package/dist/js/demos/index.js.map +1 -0
  260. package/dist/js/demos/sampleData.d.ts +13 -0
  261. package/dist/js/demos/sampleData.d.ts.map +1 -0
  262. package/dist/js/demos/sampleData.js +767 -0
  263. package/dist/js/demos/sampleData.js.map +1 -0
  264. package/dist/js/deprecated/components/Table/Body.d.ts +2 -2
  265. package/dist/js/deprecated/components/Table/Body.d.ts.map +1 -1
  266. package/dist/js/deprecated/components/Table/Body.js.map +1 -1
  267. package/dist/js/deprecated/components/Table/BodyCell.js +3 -3
  268. package/dist/js/deprecated/components/Table/BodyCell.js.map +1 -1
  269. package/dist/js/deprecated/components/Table/BodyWrapper.js.map +1 -1
  270. package/dist/js/deprecated/components/Table/Table.d.ts +1 -1
  271. package/dist/js/deprecated/components/Table/Table.d.ts.map +1 -1
  272. package/dist/js/deprecated/components/Table/Table.js +9 -10
  273. package/dist/js/deprecated/components/Table/Table.js.map +1 -1
  274. package/dist/js/deprecated/components/Table/base/body-row.js.map +1 -1
  275. package/dist/js/deprecated/components/Table/base/body.d.ts +8 -2
  276. package/dist/js/deprecated/components/Table/base/body.d.ts.map +1 -1
  277. package/dist/js/deprecated/components/Table/base/body.js.map +1 -1
  278. package/dist/js/deprecated/components/Table/base/header-row.js +1 -1
  279. package/dist/js/deprecated/components/Table/base/header-row.js.map +1 -1
  280. package/dist/js/deprecated/components/Table/base/header.d.ts +1 -1
  281. package/dist/js/deprecated/components/Table/base/header.d.ts.map +1 -1
  282. package/dist/js/deprecated/components/Table/base/resolve-row-key.js.map +1 -1
  283. package/dist/js/test-helpers/data-helpers.js.map +1 -1
  284. package/dist/umd/assets/output-BnU-TMGU.css +26986 -0
  285. package/dist/umd/react-table.min.js +8 -9
  286. package/package.json +8 -12
  287. package/rollup.config.mjs +8 -0
  288. package/single-packages.config.json +3 -6
  289. package/src/components/Table/ActionsColumn.tsx +35 -31
  290. package/src/components/Table/DraggableCell.tsx +2 -3
  291. package/src/components/Table/EditColumn.tsx +21 -9
  292. package/src/components/Table/EditableSelectInputCell.tsx +16 -11
  293. package/src/components/Table/EditableTextCell.tsx +1 -1
  294. package/src/components/Table/FavoritesCell.tsx +2 -3
  295. package/src/components/Table/HeaderCellInfoWrapper.tsx +10 -6
  296. package/src/components/Table/SelectColumn.tsx +27 -8
  297. package/src/components/Table/SortColumn.tsx +15 -1
  298. package/src/components/Table/Table.tsx +6 -6
  299. package/src/components/Table/TableText.tsx +19 -9
  300. package/src/components/Table/TableTypes.tsx +12 -9
  301. package/src/components/Table/Td.tsx +11 -6
  302. package/src/components/Table/Th.tsx +42 -10
  303. package/src/components/Table/Tr.tsx +5 -1
  304. package/src/components/Table/__tests__/Th.test.tsx +31 -0
  305. package/src/components/Table/__tests__/__snapshots__/RowWrapper.test.tsx.snap +4 -4
  306. package/src/components/Table/base/types.tsx +6 -7
  307. package/src/components/Table/examples/Table.md +48 -3
  308. package/src/components/Table/examples/TableActions.tsx +2 -2
  309. package/src/components/Table/examples/TableActionsOverflow.tsx +3 -5
  310. package/src/components/Table/examples/TableCompoundExpandable.tsx +5 -4
  311. package/src/components/Table/examples/TableDraggable.tsx +19 -16
  312. package/src/components/Table/examples/TableEditable.tsx +313 -0
  313. package/src/components/Table/examples/TableEmptyState.tsx +1 -8
  314. package/src/components/Table/examples/TableExpandable.tsx +1 -2
  315. package/src/components/Table/examples/TableMisc.tsx +3 -1
  316. package/src/components/Table/examples/TableNestedExpandable.tsx +1 -1
  317. package/src/components/Table/examples/TableNestedHeaders.tsx +4 -6
  318. package/src/components/Table/examples/TableNestedStickyHeader.tsx +4 -9
  319. package/src/components/Table/examples/TableNestedTableExpandable.tsx +1 -1
  320. package/src/components/Table/examples/TableSelectable.tsx +1 -0
  321. package/src/components/Table/examples/TableSelectableRadio.tsx +1 -1
  322. package/src/components/Table/examples/TableSortableCustom.tsx +2 -3
  323. package/src/components/Table/examples/TableStickyColumnsAndHeader.tsx +6 -5
  324. package/src/components/Table/examples/TableStripedExpandable.tsx +1 -1
  325. package/src/components/Table/utils/__snapshots__/transformers.test.tsx.snap +4 -4
  326. package/src/components/Table/utils/decorators/selectable.tsx +3 -2
  327. package/src/components/Table/utils/decorators/sortable.tsx +8 -2
  328. package/src/components/Table/utils/decorators/treeRow.tsx +3 -3
  329. package/src/components/Table/utils/transformers.test.tsx +14 -11
  330. package/src/demos/DashboardHeader.tsx +201 -0
  331. package/src/demos/DashboardWrapper.tsx +198 -0
  332. package/src/demos/Table.md +181 -0
  333. package/src/demos/assets/avatarImg.svg +18 -0
  334. package/src/demos/assets/index.d.ts +4 -0
  335. package/src/demos/assets/pf-logo.svg +28 -0
  336. package/src/demos/examples/TableAutomaticPagination.tsx +101 -0
  337. package/src/{docs/demos/table-demos/BulkSelect.jsx → demos/examples/TableBulkSelect.tsx} +42 -21
  338. package/src/demos/examples/TableColumnManagement.tsx +484 -0
  339. package/src/demos/examples/TableColumnManagementWithDraggable.tsx +635 -0
  340. package/src/{docs/demos/table-demos/Compact.jsx → demos/examples/TableCompact.tsx} +39 -18
  341. package/src/{docs/demos/table-demos/CompoundExpansion.jsx → demos/examples/TableCompoundExpansion.tsx} +31 -16
  342. package/src/demos/examples/TableEmptyStateDefault.tsx +58 -0
  343. package/src/demos/examples/TableEmptyStateError.tsx +43 -0
  344. package/src/demos/examples/TableEmptyStateLoading.tsx +33 -0
  345. package/src/{docs/demos/table-demos/ExpandCollapseAll.jsx → demos/examples/TableExpandCollapseAll.tsx} +75 -67
  346. package/src/demos/examples/TableFilterable.tsx +387 -0
  347. package/src/{docs/demos/table-demos/SortableResponsive.jsx → demos/examples/TableSortableResponsive.tsx} +42 -43
  348. package/src/{docs/demos/table-demos/StaticBottomPagination.jsx → demos/examples/TableStaticBottomPagination.tsx} +29 -11
  349. package/src/{docs/demos/table-demos/StickyFirstColumn.jsx → demos/examples/TableStickyFirstColumn.tsx} +31 -9
  350. package/src/{docs/demos/table-demos/StickyHeader.jsx → demos/examples/TableStickyHeader.tsx} +3 -3
  351. package/src/demos/index.ts +3 -0
  352. package/src/{docs/demos/table-demos/sampleData.js → demos/sampleData.tsx} +88 -77
  353. package/src/deprecated/components/Table/Table.tsx +2 -3
  354. package/src/deprecated/components/Table/__tests__/Table.test.tsx +4 -9
  355. package/src/deprecated/components/Table/__tests__/__snapshots__/Table.test.tsx.snap +2457 -2274
  356. package/src/deprecated/components/Table/base/header-row.tsx +1 -1
  357. package/src/deprecated/components/Table/examples/LegacyTableCompoundExpandable.tsx +4 -3
  358. package/src/deprecated/components/Table/examples/LegacyTableEmptyState.tsx +6 -8
  359. package/src/deprecated/components/Table/examples/LegacyTableMisc.tsx +4 -3
  360. package/src/deprecated/components/Table/examples/LegacyTableSelectable.tsx +2 -1
  361. package/src/deprecated/components/Table/examples/LegacyTableSortableCustom.tsx +2 -3
  362. package/src/deprecated/components/Table/examples/LegacyTableStripedCustomTr.tsx +2 -6
  363. package/src/deprecated/components/Table/examples/Table.md +49 -40
  364. package/rollup.config.js +0 -7
  365. package/src/docs/demos/Table.md +0 -1622
  366. package/src/docs/demos/table-demos/ColumnManagement.jsx +0 -471
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-table",
3
- "version": "6.0.0-alpha.1",
3
+ "version": "6.0.0-alpha.100",
4
4
  "description": "This library provides a set of React table components for use with the PatternFly 4",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -40,20 +40,16 @@
40
40
  "subpaths": "node ../../scripts/exportSubpaths.js --config subpaths.config.json"
41
41
  },
42
42
  "dependencies": {
43
- "@patternfly/react-core": "^6.0.0-alpha.1",
44
- "@patternfly/react-icons": "^6.0.0-alpha.1",
45
- "@patternfly/react-styles": "^6.0.0-alpha.1",
46
- "@patternfly/react-tokens": "^6.0.0-alpha.1",
47
- "lodash": "^4.17.19",
48
- "tslib": "^2.5.0"
49
- },
50
- "devDependencies": {
51
- "rimraf": "^2.6.2",
52
- "typescript": "^4.7.4"
43
+ "@patternfly/react-core": "^6.0.0-alpha.99",
44
+ "@patternfly/react-icons": "^6.0.0-alpha.35",
45
+ "@patternfly/react-styles": "^6.0.0-alpha.34",
46
+ "@patternfly/react-tokens": "^6.0.0-alpha.34",
47
+ "lodash": "^4.17.21",
48
+ "tslib": "^2.6.3"
53
49
  },
54
50
  "peerDependencies": {
55
51
  "react": "^17 || ^18",
56
52
  "react-dom": "^17 || ^18"
57
53
  },
58
- "gitHead": "abccf530a0a642a4d7b4eda6ada09c5822c855b0"
54
+ "gitHead": "a74cdba65be61e9f94424de4381af804050c409f"
59
55
  }
@@ -0,0 +1,8 @@
1
+ // @ts-check
2
+ import baseConfig from '../rollup.base.mjs';
3
+ import pkg from './package.json' with { type: 'json' };
4
+
5
+ export default baseConfig({
6
+ packageName: pkg.name.replace('@patternfly/', ''),
7
+ name: 'PatternFlyTable'
8
+ });
@@ -1,7 +1,4 @@
1
1
  {
2
- "packageName": "@patternfly/react-table",
3
- "exclude": [
4
- "dist/esm/deprecated/index.js",
5
- "dist/esm/next/index.js"
6
- ]
7
- }
2
+ "packageName": "@patternfly/react-table",
3
+ "exclude": ["dist/esm/deprecated/index.js", "dist/esm/next/index.js"]
4
+ }
@@ -30,6 +30,8 @@ export interface ActionsColumnProps extends Omit<React.HTMLProps<HTMLElement>, '
30
30
  innerRef?: React.Ref<any>;
31
31
  /** Ref to forward to the first item in the popup menu */
32
32
  firstActionItemRef?: React.Ref<HTMLButtonElement>;
33
+ /** Flag indicating that the dropdown's onOpenChange callback should not be called. */
34
+ isOnOpenChangeDisabled?: boolean;
33
35
  }
34
36
 
35
37
  const ActionsColumnBase: React.FunctionComponent<ActionsColumnProps> = ({
@@ -44,6 +46,7 @@ const ActionsColumnBase: React.FunctionComponent<ActionsColumnProps> = ({
44
46
  },
45
47
  innerRef,
46
48
  firstActionItemRef,
49
+ isOnOpenChangeDisabled = false,
47
50
  ...props
48
51
  }: ActionsColumnProps) => {
49
52
  const [isOpen, setIsOpen] = React.useState(false);
@@ -91,7 +94,7 @@ const ActionsColumnBase: React.FunctionComponent<ActionsColumnProps> = ({
91
94
 
92
95
  <Dropdown
93
96
  isOpen={isOpen}
94
- onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
97
+ onOpenChange={!isOnOpenChangeDisabled ? (isOpen: boolean) => setIsOpen(isOpen) : undefined}
95
98
  toggle={(toggleRef: any) =>
96
99
  actionsToggle ? (
97
100
  actionsToggle({ onToggle, isOpen, isDisabled, toggleRef })
@@ -103,9 +106,8 @@ const ActionsColumnBase: React.FunctionComponent<ActionsColumnProps> = ({
103
106
  isExpanded={isOpen}
104
107
  isDisabled={isDisabled}
105
108
  variant="plain"
106
- >
107
- <EllipsisVIcon />
108
- </MenuToggle>
109
+ icon={<EllipsisVIcon />}
110
+ />
109
111
  )
110
112
  }
111
113
  {...(rowData && rowData.actionProps)}
@@ -116,35 +118,37 @@ const ActionsColumnBase: React.FunctionComponent<ActionsColumnProps> = ({
116
118
  <DropdownList>
117
119
  {items
118
120
  .filter((item) => !item.isOutsideDropdown)
119
- .map(({ title, itemKey, onClick, tooltipProps, isSeparator, ...props }, index) => {
120
- if (isSeparator) {
121
- return <Divider key={itemKey || index} data-key={itemKey || index} />;
122
- }
123
- const item = (
124
- <DropdownItem
125
- onClick={(event: any) => {
126
- onActionClick(event, onClick);
127
- onToggle();
128
- }}
129
- {...props}
130
- key={itemKey || index}
131
- data-key={itemKey || index}
132
- ref={index === 0 ? firstActionItemRef : undefined}
133
- >
134
- {title}
135
- </DropdownItem>
136
- );
137
-
138
- if (tooltipProps?.content) {
139
- return (
140
- <Tooltip key={itemKey || index} {...tooltipProps}>
141
- {item}
142
- </Tooltip>
121
+ .map(
122
+ ({ title, itemKey, onClick, tooltipProps, isSeparator, shouldCloseOnClick = true, ...props }, index) => {
123
+ if (isSeparator) {
124
+ return <Divider key={itemKey || index} data-key={itemKey || index} />;
125
+ }
126
+ const item = (
127
+ <DropdownItem
128
+ onClick={(event: any) => {
129
+ onActionClick(event, onClick);
130
+ shouldCloseOnClick && onToggle();
131
+ }}
132
+ {...props}
133
+ key={itemKey || index}
134
+ data-key={itemKey || index}
135
+ ref={index === 0 ? firstActionItemRef : undefined}
136
+ >
137
+ {title}
138
+ </DropdownItem>
143
139
  );
144
- } else {
145
- return item;
140
+
141
+ if (tooltipProps?.content) {
142
+ return (
143
+ <Tooltip key={itemKey || index} {...tooltipProps}>
144
+ {item}
145
+ </Tooltip>
146
+ );
147
+ } else {
148
+ return item;
149
+ }
146
150
  }
147
- })}
151
+ )}
148
152
  </DropdownList>
149
153
  </Dropdown>
150
154
  </React.Fragment>
@@ -24,9 +24,8 @@ export const DraggableCell: React.FunctionComponent<DraggableCellProps> = ({
24
24
  aria-label={ariaLabel || `Draggable row draggable button`}
25
25
  onClick={onClick}
26
26
  {...props}
27
- >
28
- <GripVerticalIcon aria-hidden />
29
- </Button>
27
+ icon={<GripVerticalIcon aria-hidden />}
28
+ />
30
29
  );
31
30
 
32
31
  DraggableCell.displayName = 'DraggableCell';
@@ -33,20 +33,32 @@ export const EditColumn: React.FunctionComponent<EditColumnProps> = ({
33
33
  <React.Fragment>
34
34
  <div className={css(inlineStyles.inlineEditGroup, inlineStyles.modifiers.iconGroup, 'pf-m-action-group')}>
35
35
  <div className={css(inlineStyles.inlineEditAction)}>
36
- <Button aria-label={saveAriaLabel} {...props} onClick={(e) => onClick(e, 'save')} variant="plain">
37
- <CheckIcon />
38
- </Button>
36
+ <Button
37
+ aria-label={saveAriaLabel}
38
+ {...props}
39
+ onClick={(e) => onClick(e, 'save')}
40
+ variant="plain"
41
+ icon={<CheckIcon />}
42
+ />
39
43
  </div>
40
44
  <div className={css(inlineStyles.inlineEditAction)}>
41
- <Button aria-label={cancelAriaLabel} {...props} onClick={(e) => onClick(e, 'cancel')} variant="plain">
42
- <TimesIcon />
43
- </Button>
45
+ <Button
46
+ aria-label={cancelAriaLabel}
47
+ {...props}
48
+ onClick={(e) => onClick(e, 'cancel')}
49
+ variant="plain"
50
+ icon={<TimesIcon />}
51
+ />
44
52
  </div>
45
53
  </div>
46
54
  <div className={css(inlineStyles.inlineEditAction, inlineStyles.modifiers.enableEditable)}>
47
- <Button aria-label={editAriaLabel} {...props} onClick={(e) => onClick(e, 'edit')} variant="plain">
48
- <PencilAltIcon />
49
- </Button>
55
+ <Button
56
+ aria-label={editAriaLabel}
57
+ {...props}
58
+ onClick={(e) => onClick(e, 'edit')}
59
+ variant="plain"
60
+ icon={<PencilAltIcon />}
61
+ />
50
62
  </div>
51
63
  </React.Fragment>
52
64
  );
@@ -1,6 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
- import { Select, SelectOptionObject } from '@patternfly/react-core/dist/esm/deprecated/components/Select';
3
+ import { Select, SelectList } from '@patternfly/react-core/dist/esm/components/Select';
4
+ import { MenuToggle } from '@patternfly/react-core/dist/esm/components/MenuToggle';
4
5
  import inlineStyles from '@patternfly/react-styles/css/components/InlineEdit/inline-edit';
5
6
  import formStyles from '@patternfly/react-styles/css/components/Form/form';
6
7
  import { EditableSelectInputProps } from './base/types';
@@ -15,7 +16,7 @@ export interface IEditableSelectInputCell extends Omit<React.HTMLProps<HTMLEleme
15
16
  /** Event handler which fires when user selects an option in this cell */
16
17
  onSelect: (
17
18
  event: React.MouseEvent | React.ChangeEvent,
18
- newValue: string | SelectOptionObject,
19
+ newValue: any | any[],
19
20
  rowIndex: number,
20
21
  cellIndex: number,
21
22
  isPlaceholder?: boolean
@@ -25,11 +26,11 @@ export interface IEditableSelectInputCell extends Omit<React.HTMLProps<HTMLEleme
25
26
  /** Flag indicating the select input is disabled */
26
27
  isDisabled?: boolean;
27
28
  /** Current selected options to display as the read only value of the table cell */
28
- selections?: string | SelectOptionObject | (string | SelectOptionObject)[];
29
+ selections?: any | any[];
29
30
  /** Flag indicating the select menu is open */
30
31
  isOpen?: boolean;
31
32
  /** Event handler which fires when the select toggle is toggled */
32
- onToggle?: (event: React.MouseEvent | React.ChangeEvent | React.KeyboardEvent | Event, isExpanded: boolean) => void;
33
+ onToggle?: (event: React.MouseEvent | undefined) => void;
33
34
  /** Event handler which fires when the user clears the selections */
34
35
  clearSelection?: (event: React.MouseEvent, rowIndex: number, cellIndex: number) => void;
35
36
  }
@@ -48,10 +49,10 @@ export const EditableSelectInputCell: React.FunctionComponent<IEditableSelectInp
48
49
  }: IEditableSelectInputCell) => {
49
50
  const onSelectHandler = (
50
51
  event: React.MouseEvent | React.ChangeEvent,
51
- newValue: string | SelectOptionObject,
52
- isPlaceholder: boolean
52
+ newValue: any | any[]
53
+ // isPlaceholder: boolean
53
54
  ) => {
54
- onSelect(event, newValue, rowIndex, cellIndex, isPlaceholder);
55
+ onSelect(event, newValue, rowIndex, cellIndex);
55
56
  };
56
57
 
57
58
  const onClear = (event: React.MouseEvent) => {
@@ -64,10 +65,14 @@ export const EditableSelectInputCell: React.FunctionComponent<IEditableSelectInp
64
65
  onSelect={onSelectHandler}
65
66
  {...(clearSelection && { onClear })}
66
67
  isOpen={isOpen}
67
- onToggle={onToggle}
68
- selections={selections}
68
+ selected={selections}
69
+ toggle={(toggleRef: any) => (
70
+ <MenuToggle ref={toggleRef} onClick={onToggle} isExpanded={isOpen}>
71
+ {isOpen ? 'Expanded' : 'Collapsed'}
72
+ </MenuToggle>
73
+ )}
69
74
  >
70
- {options}
75
+ <SelectList>{options}</SelectList>
71
76
  </Select>
72
77
  );
73
78
 
@@ -76,7 +81,7 @@ export const EditableSelectInputCell: React.FunctionComponent<IEditableSelectInp
76
81
  <div className={inlineStyles.inlineEditValue}>{Array.isArray(value) ? value.join(', ') : value}</div>
77
82
  <div className={inlineStyles.inlineEditInput}>
78
83
  {select}
79
- <div className={css(formStyles.formHelperText, formStyles.modifiers.error)} aria-live="polite">
84
+ <div className={css(formStyles.formHelperText)} aria-live="polite">
80
85
  {props.errorText}
81
86
  </div>
82
87
  </div>
@@ -49,7 +49,7 @@ export const EditableTextCell: React.FunctionComponent<IEditableTextCell> = ({
49
49
  }}
50
50
  aria-label={inputAriaLabel}
51
51
  />
52
- <div className={css(formStyles.formHelperText, formStyles.modifiers.error)} aria-live="polite">
52
+ <div className={css(formStyles.formHelperText)} aria-live="polite">
53
53
  {props.errorText}
54
54
  </div>
55
55
  </div>
@@ -33,9 +33,8 @@ export const FavoritesCell: React.FunctionComponent<FavoritesCellProps> = ({
33
33
  onClick={onFavorite}
34
34
  {...ariaProps}
35
35
  {...props}
36
- >
37
- <StarIcon aria-hidden />
38
- </Button>
36
+ icon={<StarIcon aria-hidden />}
37
+ />
39
38
  );
40
39
  };
41
40
  FavoritesCell.displayName = 'FavoritesCell';
@@ -52,15 +52,19 @@ export const HeaderCellInfoWrapper: React.FunctionComponent<ColumnHelpWrapperPro
52
52
  <span className={css(styles.tableColumnHelpAction)}>
53
53
  {variant === 'tooltip' ? (
54
54
  <Tooltip content={info} {...tooltipProps}>
55
- <Button variant="plain" aria-label={ariaLabel || (typeof info === 'string' && info) || 'More info'}>
56
- <HelpIcon />
57
- </Button>
55
+ <Button
56
+ variant="plain"
57
+ aria-label={ariaLabel || (typeof info === 'string' && info) || 'More info'}
58
+ icon={<HelpIcon />}
59
+ />
58
60
  </Tooltip>
59
61
  ) : (
60
62
  <Popover bodyContent={info} {...popoverProps}>
61
- <Button variant="plain" aria-label={ariaLabel || (typeof info === 'string' && info) || 'More info'}>
62
- <HelpIcon />
63
- </Button>
63
+ <Button
64
+ variant="plain"
65
+ aria-label={ariaLabel || (typeof info === 'string' && info) || 'More info'}
66
+ icon={<HelpIcon />}
67
+ />
64
68
  </Popover>
65
69
  )}
66
70
  </span>
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import { Tooltip, TooltipProps } from '@patternfly/react-core/dist/esm/components/Tooltip';
2
3
 
3
4
  export enum RowSelectVariant {
4
5
  radio = 'radio',
@@ -11,6 +12,10 @@ export interface SelectColumnProps {
11
12
  className?: string;
12
13
  onSelect?: (event: React.FormEvent<HTMLInputElement>) => void;
13
14
  selectVariant?: RowSelectVariant;
15
+ /** text to display on the tooltip */
16
+ tooltip?: React.ReactNode;
17
+ /** other props to pass to the tooltip */
18
+ tooltipProps?: Omit<TooltipProps, 'content'>;
14
19
  }
15
20
 
16
21
  export const SelectColumn: React.FunctionComponent<SelectColumnProps> = ({
@@ -19,13 +24,27 @@ export const SelectColumn: React.FunctionComponent<SelectColumnProps> = ({
19
24
  className,
20
25
  onSelect = null as (event: React.FormEvent<HTMLInputElement>) => void,
21
26
  selectVariant,
27
+ tooltip,
28
+ tooltipProps,
22
29
  ...props
23
- }: SelectColumnProps) => (
24
- <React.Fragment>
25
- <label>
26
- <input {...props} type={selectVariant} onChange={onSelect} />
27
- </label>
28
- {children}
29
- </React.Fragment>
30
- );
30
+ }: SelectColumnProps) => {
31
+ const inputRef = React.createRef<HTMLInputElement>();
32
+
33
+ const content = (
34
+ <React.Fragment>
35
+ <label>
36
+ <input {...props} ref={inputRef} type={selectVariant} onChange={onSelect} />
37
+ </label>
38
+ {children}
39
+ </React.Fragment>
40
+ );
41
+
42
+ return tooltip ? (
43
+ <Tooltip triggerRef={inputRef} content={tooltip} {...tooltipProps}>
44
+ {content}
45
+ </Tooltip>
46
+ ) : (
47
+ content
48
+ );
49
+ };
31
50
  SelectColumn.displayName = 'SelectColumn';
@@ -5,6 +5,7 @@ import ArrowsAltVIcon from '@patternfly/react-icons/dist/esm/icons/arrows-alt-v-
5
5
  import { css } from '@patternfly/react-styles';
6
6
  import styles from '@patternfly/react-styles/css/components/Table/table';
7
7
  import { TableText } from './TableText';
8
+ import { TooltipProps } from '@patternfly/react-core/dist/esm/components/Tooltip';
8
9
 
9
10
  export enum SortByDirection {
10
11
  asc = 'asc',
@@ -17,6 +18,9 @@ export interface SortColumnProps extends React.ButtonHTMLAttributes<HTMLButtonEl
17
18
  isSortedBy?: boolean;
18
19
  onSort?: Function;
19
20
  sortDirection?: string;
21
+ tooltip?: React.ReactNode;
22
+ tooltipProps?: Omit<TooltipProps, 'content'>;
23
+ tooltipHasDefaultBehavior?: boolean;
20
24
  }
21
25
 
22
26
  export const SortColumn: React.FunctionComponent<SortColumnProps> = ({
@@ -26,6 +30,9 @@ export const SortColumn: React.FunctionComponent<SortColumnProps> = ({
26
30
  onSort = null,
27
31
  sortDirection = '',
28
32
  type = 'button',
33
+ tooltip,
34
+ tooltipProps,
35
+ tooltipHasDefaultBehavior,
29
36
  ...props
30
37
  }: SortColumnProps) => {
31
38
  let SortedByIcon;
@@ -45,7 +52,14 @@ export const SortColumn: React.FunctionComponent<SortColumnProps> = ({
45
52
  onBlur={() => setFocused(false)}
46
53
  >
47
54
  <div className={css(className, styles.tableButtonContent)}>
48
- <TableText focused={focused}>{children}</TableText>
55
+ <TableText
56
+ tooltip={tooltip}
57
+ tooltipProps={tooltipProps}
58
+ tooltipHasDefaultBehavior={tooltipHasDefaultBehavior}
59
+ focused={focused}
60
+ >
61
+ {children}
62
+ </TableText>
49
63
  <span className={css(styles.tableSortIndicator)}>
50
64
  <SortedByIcon />
51
65
  </span>
@@ -5,7 +5,7 @@ import stylesTreeView from '@patternfly/react-styles/css/components/Table/table-
5
5
  import { css } from '@patternfly/react-styles';
6
6
  import { toCamel } from './utils';
7
7
  import { IVisibility } from './utils/decorators/classNames';
8
- import { useOUIAProps, OUIAProps, handleArrows, setTabIndex } from '@patternfly/react-core';
8
+ import { useOUIAProps, OUIAProps, handleArrows, setTabIndex, KeyTypes } from '@patternfly/react-core';
9
9
  import { TableGridBreakpoint, TableVariant } from './TableTypes';
10
10
 
11
11
  export interface BaseCellProps {
@@ -124,7 +124,7 @@ const TableBase: React.FunctionComponent<TableProps> = ({
124
124
  setTableCaption(
125
125
  <caption>
126
126
  {selectableRowCaptionText}
127
- <div className="pf-v5-screen-reader">
127
+ <div className="pf-v6-screen-reader">
128
128
  This table has selectable rows. It can be navigated by row using tab, and each row can be selected using
129
129
  space or enter.
130
130
  </div>
@@ -132,7 +132,7 @@ const TableBase: React.FunctionComponent<TableProps> = ({
132
132
  );
133
133
  } else {
134
134
  setTableCaption(
135
- <caption className="pf-v5-screen-reader">
135
+ <caption className="pf-v6-screen-reader">
136
136
  This table has selectable rows. It can be navigated by row using tab, and each row can be selected using space
137
137
  or enter.
138
138
  </caption>
@@ -159,8 +159,8 @@ const TableBase: React.FunctionComponent<TableProps> = ({
159
159
  const handleKeys = (event: KeyboardEvent) => {
160
160
  if (
161
161
  isNested ||
162
- !(tableRef && tableRef.current && tableRef.current.classList.contains('pf-m-tree-view')) || // implements roving tab-index to tree tables only
163
- (tableRef && tableRef.current !== (event.target as HTMLElement).closest('.pf-v5-c-table:not(.pf-m-nested)'))
162
+ !(tableRef && tableRef.current && tableRef.current.classList.contains(stylesTreeView.modifiers.treeView)) || // implements roving tab-index to tree tables only
163
+ (tableRef && tableRef.current !== (event.target as HTMLElement).closest(`.${styles.table}:not(.pf-m-nested)`))
164
164
  ) {
165
165
  return;
166
166
  }
@@ -169,7 +169,7 @@ const TableBase: React.FunctionComponent<TableProps> = ({
169
169
  const rows = (Array.from(tableRef.current.querySelectorAll('tbody tr')) as Element[]).filter(
170
170
  (el) => !el.classList.contains('pf-m-disabled') && !(el as HTMLElement).hidden
171
171
  );
172
- if (key === 'Space' || key === 'Enter') {
172
+ if (key === KeyTypes.Space || key === KeyTypes.Enter) {
173
173
  (activeElement as HTMLElement).click();
174
174
  event.preventDefault();
175
175
  }
@@ -26,13 +26,15 @@ export interface TableTextProps extends React.HTMLProps<HTMLDivElement> {
26
26
  /** Determines which wrapping modifier to apply to the table text */
27
27
  wrapModifier?: WrapModifier | 'wrap' | 'nowrap' | 'truncate' | 'breakWord' | 'fitContent';
28
28
  /** text to display on the tooltip */
29
- tooltip?: string;
29
+ tooltip?: React.ReactNode;
30
30
  /** other props to pass to the tooltip */
31
31
  tooltipProps?: Omit<TooltipProps, 'content'>;
32
32
  /** callback used to create the tooltip if text is truncated */
33
33
  onMouseEnter?: (event: any) => void;
34
34
  /** Determines if the TableText is focused by parent component */
35
35
  focused?: boolean;
36
+ /** Determines if tooltip should have normal visbility behavior. If false, the tooltip will only be shown when children is not entirely visible */
37
+ tooltipHasDefaultBehavior?: boolean;
36
38
  }
37
39
 
38
40
  export const TableText: React.FunctionComponent<TableTextProps> = ({
@@ -44,12 +46,13 @@ export const TableText: React.FunctionComponent<TableTextProps> = ({
44
46
  tooltipProps = {},
45
47
  onMouseEnter: onMouseEnterProp = () => {},
46
48
  focused = false,
49
+ tooltipHasDefaultBehavior = false,
47
50
  ...props
48
51
  }: TableTextProps) => {
49
52
  const Component: TableTextVariant | 'span' | 'div' = variant;
50
53
  const textRef = React.createRef<HTMLElement>();
51
54
 
52
- const [tooltip, setTooltip] = React.useState('');
55
+ const [tooltip, setTooltip] = React.useState(tooltipProp);
53
56
  const onMouseEnter = (event: any) => {
54
57
  if (event.target.offsetWidth < event.target.scrollWidth) {
55
58
  setTooltip(tooltipProp || event.target.innerText);
@@ -70,7 +73,7 @@ export const TableText: React.FunctionComponent<TableTextProps> = ({
70
73
  const text = (
71
74
  <Component
72
75
  ref={textRef as React.Ref<HTMLDivElement>}
73
- onMouseEnter={onMouseEnter}
76
+ onMouseEnter={!tooltipHasDefaultBehavior ? onMouseEnter : undefined}
74
77
  className={css(className, wrapModifier && styles.modifiers[wrapModifier], styles.tableText)}
75
78
  {...props}
76
79
  >
@@ -79,15 +82,22 @@ export const TableText: React.FunctionComponent<TableTextProps> = ({
79
82
  );
80
83
 
81
84
  React.useEffect(() => {
82
- if (focused) {
83
- onFocus(textRef.current);
84
- } else {
85
- setTooltip('');
85
+ if (!tooltipHasDefaultBehavior) {
86
+ if (focused) {
87
+ onFocus(textRef.current);
88
+ } else {
89
+ setTooltip('');
90
+ }
86
91
  }
87
- }, [focused]);
92
+ }, [focused, tooltipHasDefaultBehavior]);
88
93
 
89
94
  return tooltip !== '' ? (
90
- <Tooltip triggerRef={textRef} content={tooltip} isVisible {...tooltipProps}>
95
+ <Tooltip
96
+ triggerRef={textRef}
97
+ content={tooltip}
98
+ {...(!tooltipHasDefaultBehavior && { isVisible: true })}
99
+ {...tooltipProps}
100
+ >
91
101
  {text}
92
102
  </Tooltip>
93
103
  ) : (
@@ -1,7 +1,6 @@
1
1
  import { formatterValueType, ColumnType, RowType, RowKeyType, HeaderType } from './base/types';
2
2
  import { SortByDirection } from './SortColumn';
3
3
  import { DropdownItemProps } from '@patternfly/react-core/dist/esm/components/Dropdown';
4
- import { DropdownDirection, DropdownPosition } from '@patternfly/react-core/dist/esm/deprecated/components/Dropdown';
5
4
  import * as React from 'react';
6
5
  import { CustomActionsToggleProps } from './ActionsColumn';
7
6
  import { ButtonProps } from '@patternfly/react-core/dist/esm/components/Button';
@@ -82,7 +81,6 @@ export type OnCheckChange = (
82
81
  // Todo: Update type with next breaking change release
83
82
  // export type IHeaderRow = ColumnType;
84
83
 
85
- // eslint-disable-next-line @typescript-eslint/no-empty-interface
86
84
  export interface IHeaderRow extends ColumnType {}
87
85
 
88
86
  export interface IRowData extends IRow {
@@ -102,8 +100,8 @@ export interface IColumn {
102
100
  rowLabeledBy?: string;
103
101
  expandId?: string;
104
102
  contentId?: string;
105
- dropdownPosition?: DropdownPosition;
106
- dropdownDirection?: DropdownDirection;
103
+ dropdownPosition?: 'right' | 'left';
104
+ dropdownDirection?: 'up' | 'down';
107
105
  menuAppendTo?: HTMLElement | (() => HTMLElement) | 'inline' | 'parent';
108
106
  actionsToggle?: (props: CustomActionsToggleProps) => React.ReactNode;
109
107
  actionsPopperProps?: any;
@@ -132,10 +130,13 @@ export interface IExtra extends IExtraData {
132
130
  rowData?: IRowData;
133
131
  className?: string;
134
132
  ariaLabel?: string;
133
+ tooltip?: React.ReactNode;
134
+ tooltipProps?: Omit<TooltipProps, 'content'>;
135
+ tooltipHasDefaultBehavior?: boolean;
135
136
  }
136
137
 
137
138
  export type IFormatterValueType = formatterValueType & {
138
- title?: string | React.ReactNode;
139
+ title?: React.ReactNode;
139
140
  props?: any;
140
141
  };
141
142
 
@@ -154,7 +155,7 @@ export interface IAction extends Omit<DropdownItemProps, 'title' | 'onClick'>, P
154
155
  /** Key of actions menu item */
155
156
  itemKey?: string;
156
157
  /** Content to display in the actions menu item */
157
- title?: string | React.ReactNode;
158
+ title?: React.ReactNode;
158
159
  /** Render item as aria-disabled option */
159
160
  isAriaDisabled?: boolean;
160
161
  /** Props for adding a tooltip to a menu item. This is used to display tooltip when hovered over the item */
@@ -163,6 +164,8 @@ export interface IAction extends Omit<DropdownItemProps, 'title' | 'onClick'>, P
163
164
  onClick?: (event: React.MouseEvent, rowIndex: number, rowData: IRowData, extraData: IExtraData) => void;
164
165
  /** Flag indicating this action should be placed outside the actions menu, beside the toggle */
165
166
  isOutsideDropdown?: boolean;
167
+ /** Flag indicating whether the actions dropdown should close after an item is clicked. */
168
+ shouldCloseOnClick?: boolean;
166
169
  }
167
170
 
168
171
  export interface ISeparator extends IAction {
@@ -186,7 +189,7 @@ export interface decoratorReturnType {
186
189
  textCenter?: boolean;
187
190
  component?: string;
188
191
  isVisible?: boolean;
189
- title?: string | React.ReactNode;
192
+ title?: React.ReactNode;
190
193
  props?: any;
191
194
  scope?: string;
192
195
  parentId?: number;
@@ -200,7 +203,7 @@ export type IFormatter = (data?: IFormatterValueType, extra?: IExtra) => formatt
200
203
 
201
204
  export interface ICell {
202
205
  /* cell contents */
203
- title?: string | React.ReactNode;
206
+ title?: React.ReactNode;
204
207
  /** transformations applied to the header cell */
205
208
  transforms?: ITransform[];
206
209
  /** transformations applied to the cells within the column's body */
@@ -224,7 +227,7 @@ export interface ICell {
224
227
  export type RowCellContent<T = any> = (value?: string, rowIndex?: number, cellIndex?: number, props?: T) => void;
225
228
 
226
229
  export interface IRowCell<T = any> {
227
- title?: string | React.ReactNode | RowCellContent<T>;
230
+ title?: React.ReactNode | RowCellContent<T>;
228
231
  props?: T;
229
232
  formatters?: IFormatter[];
230
233
  }