primereact 10.3.2 → 10.4.0

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 (161) hide show
  1. package/accordion/accordion.cjs.js +1 -1
  2. package/accordion/accordion.cjs.min.js +1 -1
  3. package/accordion/accordion.esm.js +1 -1
  4. package/accordion/accordion.esm.min.js +1 -1
  5. package/accordion/accordion.js +1 -1
  6. package/accordion/accordion.min.js +1 -1
  7. package/api/api.cjs.js +20 -0
  8. package/api/api.cjs.min.js +1 -1
  9. package/api/api.d.ts +5 -1
  10. package/api/api.esm.js +20 -0
  11. package/api/api.esm.min.js +1 -1
  12. package/api/api.js +20 -0
  13. package/api/api.min.js +1 -1
  14. package/calendar/calendar.cjs.js +509 -150
  15. package/calendar/calendar.cjs.min.js +1 -1
  16. package/calendar/calendar.d.ts +4 -0
  17. package/calendar/calendar.esm.js +510 -151
  18. package/calendar/calendar.esm.min.js +1 -1
  19. package/calendar/calendar.js +509 -150
  20. package/calendar/calendar.min.js +1 -1
  21. package/carousel/carousel.cjs.js +1 -0
  22. package/carousel/carousel.cjs.min.js +1 -1
  23. package/carousel/carousel.esm.js +1 -0
  24. package/carousel/carousel.esm.min.js +1 -1
  25. package/carousel/carousel.js +1 -0
  26. package/carousel/carousel.min.js +1 -1
  27. package/chips/chips.cjs.js +2 -1
  28. package/chips/chips.cjs.min.js +1 -1
  29. package/chips/chips.esm.js +2 -1
  30. package/chips/chips.esm.min.js +1 -1
  31. package/chips/chips.js +2 -1
  32. package/chips/chips.min.js +1 -1
  33. package/contextmenu/contextmenu.cjs.js +4 -4
  34. package/contextmenu/contextmenu.cjs.min.js +1 -1
  35. package/contextmenu/contextmenu.esm.js +4 -4
  36. package/contextmenu/contextmenu.esm.min.js +1 -1
  37. package/contextmenu/contextmenu.js +4 -4
  38. package/contextmenu/contextmenu.min.js +1 -1
  39. package/core/core.js +93 -40
  40. package/core/core.min.js +4 -4
  41. package/datatable/datatable.cjs.js +577 -150
  42. package/datatable/datatable.cjs.min.js +1 -1
  43. package/datatable/datatable.esm.js +573 -146
  44. package/datatable/datatable.esm.min.js +1 -1
  45. package/datatable/datatable.js +577 -150
  46. package/datatable/datatable.min.js +1 -1
  47. package/dataview/dataview.cjs.js +27 -25
  48. package/dataview/dataview.cjs.min.js +1 -1
  49. package/dataview/dataview.d.ts +7 -1
  50. package/dataview/dataview.esm.js +27 -25
  51. package/dataview/dataview.esm.min.js +1 -1
  52. package/dataview/dataview.js +27 -25
  53. package/dataview/dataview.min.js +1 -1
  54. package/divider/divider.cjs.js +2 -2
  55. package/divider/divider.cjs.min.js +1 -1
  56. package/divider/divider.esm.js +2 -2
  57. package/divider/divider.esm.min.js +1 -1
  58. package/divider/divider.js +2 -2
  59. package/divider/divider.min.js +1 -1
  60. package/dropdown/dropdown.cjs.js +20 -25
  61. package/dropdown/dropdown.cjs.min.js +1 -1
  62. package/dropdown/dropdown.d.ts +9 -0
  63. package/dropdown/dropdown.esm.js +20 -25
  64. package/dropdown/dropdown.esm.min.js +1 -1
  65. package/dropdown/dropdown.js +20 -25
  66. package/dropdown/dropdown.min.js +1 -1
  67. package/editor/editor.cjs.js +1 -1
  68. package/editor/editor.cjs.min.js +1 -1
  69. package/editor/editor.esm.js +1 -1
  70. package/editor/editor.esm.min.js +1 -1
  71. package/editor/editor.js +1 -1
  72. package/editor/editor.min.js +1 -1
  73. package/focustrap/focustrap.cjs.js +168 -0
  74. package/focustrap/focustrap.cjs.min.js +1 -0
  75. package/focustrap/focustrap.esm.js +159 -0
  76. package/focustrap/focustrap.esm.min.js +1 -0
  77. package/focustrap/focustrap.js +167 -0
  78. package/focustrap/focustrap.min.js +1 -0
  79. package/focustrap/package.json +7 -0
  80. package/galleria/galleria.cjs.js +26 -24
  81. package/galleria/galleria.cjs.min.js +1 -1
  82. package/galleria/galleria.esm.js +26 -24
  83. package/galleria/galleria.esm.min.js +1 -1
  84. package/galleria/galleria.js +26 -24
  85. package/galleria/galleria.min.js +1 -1
  86. package/hooks/hooks.d.ts +1 -1
  87. package/menubar/menubar.cjs.js +7 -4
  88. package/menubar/menubar.cjs.min.js +1 -1
  89. package/menubar/menubar.esm.js +7 -4
  90. package/menubar/menubar.esm.min.js +1 -1
  91. package/menubar/menubar.js +7 -4
  92. package/menubar/menubar.min.js +1 -1
  93. package/package.json +1 -1
  94. package/paginator/paginator.cjs.js +20 -0
  95. package/paginator/paginator.cjs.min.js +1 -1
  96. package/paginator/paginator.esm.js +20 -0
  97. package/paginator/paginator.esm.min.js +1 -1
  98. package/paginator/paginator.js +20 -0
  99. package/paginator/paginator.min.js +1 -1
  100. package/panelmenu/panelmenu.cjs.js +32 -21
  101. package/panelmenu/panelmenu.cjs.min.js +1 -1
  102. package/panelmenu/panelmenu.esm.js +32 -21
  103. package/panelmenu/panelmenu.esm.min.js +1 -1
  104. package/panelmenu/panelmenu.js +32 -21
  105. package/panelmenu/panelmenu.min.js +1 -1
  106. package/picklist/picklist.cjs.js +20 -0
  107. package/picklist/picklist.cjs.min.js +1 -1
  108. package/picklist/picklist.esm.js +20 -0
  109. package/picklist/picklist.esm.min.js +1 -1
  110. package/picklist/picklist.js +20 -0
  111. package/picklist/picklist.min.js +1 -1
  112. package/primereact.all.cjs.js +1499 -725
  113. package/primereact.all.cjs.min.js +1 -1
  114. package/primereact.all.esm.js +1499 -725
  115. package/primereact.all.esm.min.js +1 -1
  116. package/primereact.all.js +1499 -725
  117. package/primereact.all.min.js +1 -1
  118. package/sidebar/sidebar.cjs.js +18 -16
  119. package/sidebar/sidebar.cjs.min.js +1 -1
  120. package/sidebar/sidebar.esm.js +18 -16
  121. package/sidebar/sidebar.esm.min.js +1 -1
  122. package/sidebar/sidebar.js +18 -16
  123. package/sidebar/sidebar.min.js +1 -1
  124. package/splitbutton/splitbutton.cjs.js +8 -7
  125. package/splitbutton/splitbutton.cjs.min.js +1 -1
  126. package/splitbutton/splitbutton.esm.js +8 -7
  127. package/splitbutton/splitbutton.esm.min.js +1 -1
  128. package/splitbutton/splitbutton.js +8 -7
  129. package/splitbutton/splitbutton.min.js +1 -1
  130. package/splitter/splitter.cjs.js +57 -12
  131. package/splitter/splitter.cjs.min.js +1 -1
  132. package/splitter/splitter.d.ts +13 -1
  133. package/splitter/splitter.esm.js +59 -14
  134. package/splitter/splitter.esm.min.js +1 -1
  135. package/splitter/splitter.js +57 -12
  136. package/splitter/splitter.min.js +1 -1
  137. package/tieredmenu/tieredmenu.cjs.js +8 -7
  138. package/tieredmenu/tieredmenu.cjs.min.js +1 -1
  139. package/tieredmenu/tieredmenu.esm.js +8 -7
  140. package/tieredmenu/tieredmenu.esm.min.js +1 -1
  141. package/tieredmenu/tieredmenu.js +8 -7
  142. package/tieredmenu/tieredmenu.min.js +1 -1
  143. package/toast/toast.cjs.js +20 -0
  144. package/toast/toast.cjs.min.js +1 -1
  145. package/toast/toast.esm.js +20 -0
  146. package/toast/toast.esm.min.js +1 -1
  147. package/toast/toast.js +20 -0
  148. package/toast/toast.min.js +1 -1
  149. package/tree/tree.cjs.js +33 -15
  150. package/tree/tree.cjs.min.js +1 -1
  151. package/tree/tree.esm.js +34 -16
  152. package/tree/tree.esm.min.js +1 -1
  153. package/tree/tree.js +33 -15
  154. package/tree/tree.min.js +1 -1
  155. package/treetable/treetable.cjs.js +205 -68
  156. package/treetable/treetable.cjs.min.js +1 -1
  157. package/treetable/treetable.esm.js +206 -69
  158. package/treetable/treetable.esm.min.js +1 -1
  159. package/treetable/treetable.js +205 -68
  160. package/treetable/treetable.min.js +1 -1
  161. package/web-types.json +34 -1
@@ -681,6 +681,7 @@ var TreeTableBodyCell = function TreeTableBodyCell(props) {
681
681
  var align = getColumnProp('align');
682
682
  /* eslint-enable */
683
683
  var bodyCellProps = mergeProps({
684
+ role: 'cell',
684
685
  className: utils.classNames(bodyClassName || props.className, cx('bodyCell', {
685
686
  bodyProps: props,
686
687
  editingState: editingState,
@@ -776,11 +777,13 @@ var TreeTableRow = /*#__PURE__*/React__namespace.memo(function (props) {
776
777
  event.stopPropagation();
777
778
  };
778
779
  var expand = function expand(event) {
780
+ var navigateFocusToChild = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
779
781
  var expandedKeys = props.expandedKeys ? _objectSpread$4({}, props.expandedKeys) : {};
780
782
  expandedKeys[props.node.key] = true;
781
783
  props.onToggle({
782
784
  originalEvent: event,
783
- value: expandedKeys
785
+ value: expandedKeys,
786
+ navigateFocusToChild: navigateFocusToChild
784
787
  });
785
788
  invokeToggleEvents(event, true);
786
789
  };
@@ -961,49 +964,147 @@ var TreeTableRow = /*#__PURE__*/React__namespace.memo(function (props) {
961
964
  });
962
965
  }
963
966
  };
964
- var _onKeyDown = function onKeyDown(event) {
965
- if (event.target === elementRef.current) {
966
- var rowElement = event.currentTarget;
967
- switch (event.which) {
968
- //down arrow
969
- case 40:
970
- var nextRow = rowElement.nextElementSibling;
971
- if (nextRow) {
972
- nextRow.focus();
973
- }
974
- event.preventDefault();
975
- break;
967
+ var _onKeyDown = function onKeyDown(event, item) {
968
+ switch (event.code) {
969
+ case 'ArrowDown':
970
+ onArrowDownKey(event);
971
+ break;
972
+ case 'ArrowUp':
973
+ onArrowUpKey(event);
974
+ break;
975
+ case 'ArrowLeft':
976
+ onArrowLeftKey(event);
977
+ break;
978
+ case 'ArrowRight':
979
+ onArrowRightKey(event);
980
+ break;
981
+ case 'Home':
982
+ onHomeKey(event);
983
+ break;
984
+ case 'End':
985
+ onEndKey(event);
986
+ break;
987
+ case 'Enter':
988
+ case 'NumpadEnter':
989
+ case 'Space':
990
+ if (!utils.DomHandler.isClickable(event.target)) {
991
+ onEnterKey(event);
992
+ }
993
+ break;
994
+ case 'Tab':
995
+ onTabKey();
996
+ break;
997
+ }
998
+ };
999
+ var onArrowDownKey = function onArrowDownKey(event) {
1000
+ var nextElementSibling = event.currentTarget.nextElementSibling;
1001
+ nextElementSibling && focusRowChange(event.currentTarget, nextElementSibling);
1002
+ event.preventDefault();
1003
+ };
1004
+ var onArrowUpKey = function onArrowUpKey(event) {
1005
+ var previousElementSibling = event.currentTarget.previousElementSibling;
1006
+ previousElementSibling && focusRowChange(event.currentTarget, previousElementSibling);
1007
+ event.preventDefault();
1008
+ };
1009
+ var onArrowRightKey = function onArrowRightKey(event) {
1010
+ var ishiddenIcon = utils.DomHandler.findSingle(event.currentTarget, 'button').style.visibility === 'hidden';
1011
+ utils.DomHandler.findSingle(elementRef.current, '[data-pc-section="rowtoggler"]');
1012
+ if (ishiddenIcon) return;
976
1013
 
977
- //up arrow
978
- case 38:
979
- var previousRow = rowElement.previousElementSibling;
980
- if (previousRow) {
981
- previousRow.focus();
982
- }
983
- event.preventDefault();
984
- break;
1014
+ // !expanded && togglerElement.click();
1015
+ !expanded && expand(event, true);
985
1016
 
986
- //right arrow
987
- case 39:
988
- if (!expanded) {
989
- expand(event);
990
- }
991
- event.preventDefault();
992
- break;
1017
+ // this.$nextTick(() => {
1018
+ // this.onArrowDownKey(event);
1019
+ // });
993
1020
 
994
- //left arrow
995
- case 37:
996
- if (expanded) {
997
- collapse(event);
998
- }
999
- event.preventDefault();
1000
- break;
1021
+ event.preventDefault();
1022
+ };
1023
+ var onArrowLeftKey = function onArrowLeftKey(event) {
1024
+ if (props.level === 0 && !expanded) {
1025
+ return;
1026
+ }
1027
+ var currentTarget = event.currentTarget;
1028
+ var ishiddenIcon = utils.DomHandler.findSingle(currentTarget, 'button').style.visibility === 'hidden';
1029
+ utils.DomHandler.findSingle(currentTarget, '[data-pc-section="rowtoggler"]');
1030
+ if (expanded && !ishiddenIcon) {
1031
+ // togglerElement.click();
1032
+ collapse(event);
1033
+ return;
1034
+ }
1035
+ var target = findBeforeClickableNode(currentTarget);
1036
+ target && focusRowChange(currentTarget, target);
1037
+ };
1038
+ var onHomeKey = function onHomeKey(event) {
1039
+ var findFirstElement = utils.DomHandler.findSingle(event.currentTarget.parentElement, "tr[aria-level=\"".concat(props.level + 1, "\"]"));
1040
+ findFirstElement && utils.DomHandler.focus(findFirstElement);
1041
+ event.preventDefault();
1042
+ };
1043
+ var onEndKey = function onEndKey(event) {
1044
+ var nodes = utils.DomHandler.find(event.currentTarget.parentElement, "tr[aria-level=\"".concat(props.level + 1, "\"]"));
1045
+ var findFirstElement = nodes[nodes.length - 1];
1046
+ utils.DomHandler.focus(findFirstElement);
1047
+ event.preventDefault();
1048
+ };
1049
+ var onEnterKey = function onEnterKey(event) {
1050
+ event.preventDefault();
1051
+ setTabIndexForSelectionMode(event, nodeTouched.current);
1052
+ if (props.selectionMode === 'checkbox') {
1053
+ // this.toggleCheckbox();
1054
+ onCheckboxChange(event);
1055
+ return;
1056
+ }
1057
+
1058
+ // this.$emit('node-click', {
1059
+ // originalEvent: event,
1060
+ // nodeTouched: nodeTouched.current,
1061
+ // node: this.node
1062
+ // });
1001
1063
 
1002
- //enter
1003
- case 13:
1004
- _onClick(event);
1005
- event.preventDefault();
1006
- break;
1064
+ props.onRowClick(event, props.node);
1065
+ nodeTouched.current = false;
1066
+ };
1067
+ var onTabKey = function onTabKey() {
1068
+ var rows = _toConsumableArray(utils.DomHandler.find(elementRef.current.parentElement, 'tr'));
1069
+ var hasSelectedRow = rows.some(function (row) {
1070
+ return utils.DomHandler.getAttribute(row, 'data-p-highlight') || row.getAttribute('aria-checked') === 'true';
1071
+ });
1072
+ rows.forEach(function (row) {
1073
+ row.tabIndex = -1;
1074
+ });
1075
+ if (hasSelectedRow) {
1076
+ var selectedNodes = rows.filter(function (node) {
1077
+ return utils.DomHandler.getAttribute(node, 'data-p-highlight') || node.getAttribute('aria-checked') === 'true';
1078
+ });
1079
+ selectedNodes[0].tabIndex = 0;
1080
+ return;
1081
+ }
1082
+ rows[0].tabIndex = 0;
1083
+ };
1084
+ var focusRowChange = function focusRowChange(firstFocusableRow, currentFocusedRow) {
1085
+ firstFocusableRow.tabIndex = '-1';
1086
+ currentFocusedRow.tabIndex = '0';
1087
+ utils.DomHandler.focus(currentFocusedRow);
1088
+ };
1089
+ var findBeforeClickableNode = function findBeforeClickableNode(node) {
1090
+ var prevNode = node.previousElementSibling;
1091
+ if (prevNode) {
1092
+ var prevNodeButton = prevNode.querySelector('button');
1093
+ if (prevNodeButton && prevNodeButton.style.visibility !== 'hidden') {
1094
+ return prevNode;
1095
+ }
1096
+ return findBeforeClickableNode(prevNode);
1097
+ }
1098
+ return null;
1099
+ };
1100
+ var setTabIndexForSelectionMode = function setTabIndexForSelectionMode(event, nodeTouched) {
1101
+ if (props.selectionMode !== null) {
1102
+ var elements = _toConsumableArray(utils.DomHandler.find(elementRef.current.parentElement, 'tr'));
1103
+ event.currentTarget.tabIndex = nodeTouched === false ? -1 : 0;
1104
+ if (elements.every(function (element) {
1105
+ return element.tabIndex === -1;
1106
+ })) {
1107
+ elements[0].tabIndex = 0;
1007
1108
  }
1008
1109
  }
1009
1110
  };
@@ -1188,6 +1289,12 @@ var TreeTableRow = /*#__PURE__*/React__namespace.memo(function (props) {
1188
1289
  var rowProps = mergeProps({
1189
1290
  tabIndex: 0,
1190
1291
  className: className,
1292
+ 'aria-expanded': expanded,
1293
+ 'aria-level': props.level + 1,
1294
+ 'aria-posinset': props.ariaPosInSet,
1295
+ 'aria-setsize': props.ariaSetSize,
1296
+ 'aria-checked': isChecked(),
1297
+ 'aria-selected': isSelected(),
1191
1298
  style: props.node.style,
1192
1299
  onClick: function onClick(e) {
1193
1300
  return _onClick(e);
@@ -1379,6 +1486,8 @@ var TreeTableBody = /*#__PURE__*/React__namespace.memo(function (props) {
1379
1486
  key: "".concat(node.key || JSON.stringify(node.data), "_").concat(index),
1380
1487
  level: 0,
1381
1488
  rowIndex: index,
1489
+ ariaSetSize: props.value.length,
1490
+ ariaPosInSet: index + 1,
1382
1491
  selectOnEdit: props.selectOnEdit,
1383
1492
  node: node,
1384
1493
  originalOptions: props.originalOptions,
@@ -1442,6 +1551,7 @@ var TreeTableBody = /*#__PURE__*/React__namespace.memo(function (props) {
1442
1551
  };
1443
1552
  var content = props.value && props.value.length ? createRows() : createEmptyMessage();
1444
1553
  var tbodyProps = mergeProps({
1554
+ role: 'rowgroup',
1445
1555
  className: cx('tbody')
1446
1556
  }, getPTOptions('tbody'));
1447
1557
  return /*#__PURE__*/React__namespace.createElement("tbody", tbodyProps, content);
@@ -1513,7 +1623,8 @@ var TreeTableFooter = /*#__PURE__*/React__namespace.memo(function (props) {
1513
1623
  var rowColumns = React__namespace.Children.toArray(RowBase.getCProp(row, 'children'));
1514
1624
  var rowFooterCells = rowColumns.map(createFooterCell);
1515
1625
  var footerRowProps = mergeProps(ptm('footerRow', {
1516
- hostName: props.hostName
1626
+ hostName: props.hostName,
1627
+ role: 'row'
1517
1628
  }));
1518
1629
  return /*#__PURE__*/React__namespace.createElement("tr", _extends({}, footerRowProps, {
1519
1630
  key: index
@@ -1542,6 +1653,7 @@ var TreeTableFooter = /*#__PURE__*/React__namespace.memo(function (props) {
1542
1653
  var content = props.columnGroup ? createColumnGroup() : createColumns(props.columns);
1543
1654
  if (hasFooter()) {
1544
1655
  var tfootProps = mergeProps({
1656
+ role: 'rowgroup',
1545
1657
  className: cx('tfoot')
1546
1658
  }, ptm('tfoot', {
1547
1659
  hostName: props.hostName
@@ -1602,7 +1714,7 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
1602
1714
  }
1603
1715
  };
1604
1716
  var onHeaderKeyDown = function onHeaderKeyDown(event, column) {
1605
- if (event.key === 'Enter') {
1717
+ if (event.key === 'Enter' && event.key === 'Space') {
1606
1718
  onHeaderClick(event, column);
1607
1719
  event.preventDefault();
1608
1720
  }
@@ -1776,6 +1888,7 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
1776
1888
  if (options.filterOnly) {
1777
1889
  var frozen = getColumnProp(column, 'frozen');
1778
1890
  var headerCellProps = mergeProps({
1891
+ role: 'columnheader',
1779
1892
  key: getColumnProp(column, 'columnKey') || getColumnProp(column, 'field') || options.index,
1780
1893
  className: utils.classNames(cx('headerCell', {
1781
1894
  options: options,
@@ -1807,11 +1920,14 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
1807
1920
  var sortIconElement = createSortIcon(column, sorted, sortOrder);
1808
1921
  var ariaSortData = getAriaSort(column, sorted, sortOrder);
1809
1922
  var sortBadge = createSortBadge(column, sortMetaDataIndex);
1923
+ var ariaSort = sorted ? sortOrder ? sortOrder < 0 ? 'descending' : 'ascending' : 'none' : null;
1810
1924
  var headerTooltip = getColumnProp(column, 'headerTooltip');
1811
1925
  var hasTooltip = utils.ObjectUtils.isNotEmpty(headerTooltip);
1812
1926
  var title = createTitle(column, options);
1813
1927
  var resizer = createResizer(column);
1814
- var _headerCellProps = mergeProps({
1928
+ var sortable = getColumnProp(column, 'sortable');
1929
+ var _headerCellProps = mergeProps(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty({
1930
+ role: 'columnheader',
1815
1931
  className: utils.classNames(getColumnProp(column, 'headerClassName') || getColumnProp(column, 'className'), cx('headerCell', {
1816
1932
  headerProps: props,
1817
1933
  frozen: _frozen,
@@ -1822,7 +1938,8 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
1822
1938
  align: align
1823
1939
  })),
1824
1940
  style: getColumnProp(column, 'headerStyle') || getColumnProp(column, 'style'),
1825
- tabIndex: getColumnProp(column, 'sortable') ? props.tabIndex : null,
1941
+ tabIndex: sortable ? props.tabIndex : null,
1942
+ 'aria-sort': ariaSort,
1826
1943
  onClick: function onClick(e) {
1827
1944
  return onHeaderClick(e, column);
1828
1945
  },
@@ -1833,25 +1950,16 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
1833
1950
  return onHeaderKeyDown(e, column);
1834
1951
  },
1835
1952
  rowSpan: getColumnProp(column, 'rowSpan'),
1836
- colSpan: getColumnProp(column, 'colSpan'),
1837
- 'aria-sort': ariaSortData,
1838
- onDragStart: function onDragStart(e) {
1839
- return _onDragStart(e, column);
1840
- },
1841
- onDragOver: function onDragOver(e) {
1842
- return _onDragOver(e, column);
1843
- },
1844
- onDragLeave: function onDragLeave(e) {
1845
- return _onDragLeave(e, column);
1846
- },
1847
- onDrop: function onDrop(e) {
1848
- return _onDrop(e, column);
1849
- },
1850
- 'data-p-sortable-column': getColumnProp(column, 'sortable'),
1851
- 'data-p-resizable-column': props.resizableColumns,
1852
- 'data-p-highlight': sorted,
1853
- 'data-p-frozen-column': getColumnProp(column, 'frozen')
1854
- }, getColumnPTOptions(column, 'root'), getColumnPTOptions(column, 'headerCell', {
1953
+ colSpan: getColumnProp(column, 'colSpan')
1954
+ }, "aria-sort", ariaSortData), "onDragStart", function onDragStart(e) {
1955
+ return _onDragStart(e, column);
1956
+ }), "onDragOver", function onDragOver(e) {
1957
+ return _onDragOver(e, column);
1958
+ }), "onDragLeave", function onDragLeave(e) {
1959
+ return _onDragLeave(e, column);
1960
+ }), "onDrop", function onDrop(e) {
1961
+ return _onDrop(e, column);
1962
+ }), 'data-p-sortable-column', sortable), 'data-p-resizable-column', props.resizableColumns), 'data-p-highlight', sorted), 'data-p-frozen-column', getColumnProp(column, 'frozen')), getColumnPTOptions(column, 'root'), getColumnPTOptions(column, 'headerCell', {
1855
1963
  context: {
1856
1964
  sorted: sorted,
1857
1965
  frozen: _frozen,
@@ -1886,7 +1994,9 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
1886
1994
  var headerRowProps = mergeProps(ptm('headerRow', {
1887
1995
  hostName: props.hostName
1888
1996
  }));
1889
- return /*#__PURE__*/React__namespace.createElement("tr", _extends({}, headerRowProps, {
1997
+ return /*#__PURE__*/React__namespace.createElement("tr", _extends({
1998
+ role: "row"
1999
+ }, headerRowProps, {
1890
2000
  key: index
1891
2001
  }), rowHeaderCells);
1892
2002
  };
@@ -1897,7 +2007,8 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
1897
2007
  var createColumns = function createColumns(columns) {
1898
2008
  if (columns) {
1899
2009
  var headerRowProps = mergeProps(ptm('headerRow', {
1900
- hostName: props.hostName
2010
+ hostName: props.hostName,
2011
+ role: 'row'
1901
2012
  }));
1902
2013
  if (hasColumnFilter(columns)) {
1903
2014
  return /*#__PURE__*/React__namespace.createElement(React__namespace.Fragment, null, /*#__PURE__*/React__namespace.createElement("tr", headerRowProps, columns.map(function (col, i) {
@@ -1914,7 +2025,9 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
1914
2025
  });
1915
2026
  })));
1916
2027
  } else {
1917
- return /*#__PURE__*/React__namespace.createElement("tr", headerRowProps, columns.map(function (col, i) {
2028
+ return /*#__PURE__*/React__namespace.createElement("tr", _extends({
2029
+ role: "row"
2030
+ }, headerRowProps), columns.map(function (col, i) {
1918
2031
  return createHeaderCell(col, {
1919
2032
  index: i,
1920
2033
  filterOnly: false,
@@ -1928,6 +2041,7 @@ var TreeTableHeader = /*#__PURE__*/React__namespace.memo(function (props) {
1928
2041
  };
1929
2042
  var content = props.columnGroup ? createColumnGroup() : createColumns(props.columns);
1930
2043
  var theadProps = mergeProps({
2044
+ role: 'rowgroup',
1931
2045
  className: cx('thead')
1932
2046
  }, ptm('thead', {
1933
2047
  hostName: props.hostName
@@ -2178,6 +2292,7 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
2178
2292
  var columnSortable = React__namespace.useRef(null);
2179
2293
  var columnSortFunction = React__namespace.useRef(null);
2180
2294
  var columnField = React__namespace.useRef(null);
2295
+ var childFocusEvent = React__namespace.useRef(null);
2181
2296
  var _useEventListener = hooks.useEventListener({
2182
2297
  type: 'mousemove',
2183
2298
  listener: function listener(event) {
@@ -2202,10 +2317,19 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
2202
2317
  bindDocumentMouseUpListener = _useEventListener4[0],
2203
2318
  unbindDocumentMouseUpListener = _useEventListener4[1];
2204
2319
  var onToggle = function onToggle(event) {
2320
+ var originalEvent = event.originalEvent,
2321
+ value = event.value,
2322
+ navigateFocusToChild = event.navigateFocusToChild;
2205
2323
  if (props.onToggle) {
2206
- props.onToggle(event);
2324
+ props.onToggle({
2325
+ originalEvent: originalEvent,
2326
+ value: value
2327
+ });
2207
2328
  } else {
2208
- setExpandedKeysState(event.value);
2329
+ if (navigateFocusToChild) {
2330
+ childFocusEvent.current = originalEvent;
2331
+ }
2332
+ setExpandedKeysState(value);
2209
2333
  }
2210
2334
  };
2211
2335
  var onPageChange = function onPageChange(event) {
@@ -2908,6 +3032,17 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
2908
3032
  }
2909
3033
  return data;
2910
3034
  };
3035
+ hooks.useUpdateEffect(function () {
3036
+ if (childFocusEvent.current) {
3037
+ var nodeElement = childFocusEvent.current.target;
3038
+ var nextElementSibling = nodeElement.nextElementSibling;
3039
+ if (nextElementSibling) {
3040
+ nodeElement.tabIndex = '-1';
3041
+ nextElementSibling.tabIndex = '0';
3042
+ utils.DomHandler.focus(nextElementSibling);
3043
+ }
3044
+ }
3045
+ }, [expandedKeysState]);
2911
3046
  React__namespace.useImperativeHandle(ref, function () {
2912
3047
  return {
2913
3048
  props: props,
@@ -3057,6 +3192,7 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
3057
3192
  className: ptCallbacks.cx('wrapper')
3058
3193
  }, ptCallbacks.ptm('wrapper'));
3059
3194
  var tableProps = mergeProps({
3195
+ role: 'table',
3060
3196
  style: props.tableStyle,
3061
3197
  className: utils.classNames(props.tableClassName, ptCallbacks.cx('table'))
3062
3198
  }, ptCallbacks.ptm('table'));
@@ -3140,6 +3276,7 @@ var TreeTable = /*#__PURE__*/React__namespace.forwardRef(function (inProps, ref)
3140
3276
  ref: reorderIndicatorDownRef
3141
3277
  }, reorderIndicatorDownProps), reorderIndicatorDownIcon);
3142
3278
  var rootProps = mergeProps({
3279
+ role: 'table',
3143
3280
  id: props.id,
3144
3281
  className: utils.classNames(props.className, ptCallbacks.cx('root', {
3145
3282
  isRowSelectionMode: isRowSelectionMode