@patternfly/react-core 6.3.0-prerelease.21 → 6.3.0-prerelease.22

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 (162) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  22. package/dist/dynamic/components/Content/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/Drawer/package.json +1 -1
  28. package/dist/dynamic/components/Dropdown/package.json +1 -1
  29. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  30. package/dist/dynamic/components/EmptyState/package.json +1 -1
  31. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  32. package/dist/dynamic/components/FileUpload/package.json +1 -1
  33. package/dist/dynamic/components/Form/package.json +1 -1
  34. package/dist/dynamic/components/FormSelect/package.json +1 -1
  35. package/dist/dynamic/components/HelperText/package.json +1 -1
  36. package/dist/dynamic/components/Hint/package.json +1 -1
  37. package/dist/dynamic/components/Icon/package.json +1 -1
  38. package/dist/dynamic/components/InputGroup/package.json +1 -1
  39. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  40. package/dist/dynamic/components/Label/package.json +1 -1
  41. package/dist/dynamic/components/List/package.json +1 -1
  42. package/dist/dynamic/components/LoginPage/package.json +1 -1
  43. package/dist/dynamic/components/Masthead/package.json +1 -1
  44. package/dist/dynamic/components/Menu/package.json +1 -1
  45. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  46. package/dist/dynamic/components/Modal/package.json +1 -1
  47. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  48. package/dist/dynamic/components/Nav/package.json +1 -1
  49. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  50. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  51. package/dist/dynamic/components/NumberInput/package.json +1 -1
  52. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  53. package/dist/dynamic/components/Page/package.json +1 -1
  54. package/dist/dynamic/components/Pagination/package.json +1 -1
  55. package/dist/dynamic/components/Panel/package.json +1 -1
  56. package/dist/dynamic/components/Popover/package.json +1 -1
  57. package/dist/dynamic/components/Progress/package.json +1 -1
  58. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  59. package/dist/dynamic/components/Radio/package.json +1 -1
  60. package/dist/dynamic/components/SearchInput/package.json +1 -1
  61. package/dist/dynamic/components/Select/package.json +1 -1
  62. package/dist/dynamic/components/Sidebar/package.json +1 -1
  63. package/dist/dynamic/components/SimpleList/package.json +1 -1
  64. package/dist/dynamic/components/Skeleton/package.json +1 -1
  65. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  66. package/dist/dynamic/components/Slider/package.json +1 -1
  67. package/dist/dynamic/components/Spinner/package.json +1 -1
  68. package/dist/dynamic/components/Switch/package.json +1 -1
  69. package/dist/dynamic/components/Tabs/package.json +1 -1
  70. package/dist/dynamic/components/TextArea/package.json +1 -1
  71. package/dist/dynamic/components/TextInput/package.json +1 -1
  72. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  73. package/dist/dynamic/components/TimePicker/package.json +1 -1
  74. package/dist/dynamic/components/Timestamp/package.json +1 -1
  75. package/dist/dynamic/components/Title/package.json +1 -1
  76. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  77. package/dist/dynamic/components/Toolbar/package.json +1 -1
  78. package/dist/dynamic/components/Tooltip/package.json +1 -1
  79. package/dist/dynamic/components/TreeView/package.json +1 -1
  80. package/dist/dynamic/components/Truncate/package.json +1 -1
  81. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/package.json +1 -1
  83. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/package.json +1 -1
  90. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  91. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  92. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  93. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  94. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  95. package/dist/dynamic/helpers/constants/package.json +1 -1
  96. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  97. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  98. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  99. package/dist/dynamic/helpers/package.json +1 -1
  100. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  101. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  103. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  104. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  105. package/dist/dynamic/helpers/util/package.json +1 -1
  106. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  107. package/dist/dynamic/layouts/Flex/package.json +1 -1
  108. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  109. package/dist/dynamic/layouts/Grid/package.json +1 -1
  110. package/dist/dynamic/layouts/Level/package.json +1 -1
  111. package/dist/dynamic/layouts/Split/package.json +1 -1
  112. package/dist/dynamic/layouts/Stack/package.json +1 -1
  113. package/dist/dynamic/styles/package.json +1 -1
  114. package/dist/esm/components/TreeView/TreeView.d.ts +5 -0
  115. package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
  116. package/dist/esm/components/TreeView/TreeView.js +5 -5
  117. package/dist/esm/components/TreeView/TreeView.js.map +1 -1
  118. package/dist/esm/components/TreeView/TreeViewListItem.d.ts +5 -0
  119. package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  120. package/dist/esm/components/TreeView/TreeViewListItem.js +7 -3
  121. package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
  122. package/dist/esm/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  123. package/dist/esm/components/TreeView/TreeViewRoot.js +2 -2
  124. package/dist/esm/components/TreeView/TreeViewRoot.js.map +1 -1
  125. package/dist/js/components/TreeView/TreeView.d.ts +5 -0
  126. package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
  127. package/dist/js/components/TreeView/TreeView.js +5 -5
  128. package/dist/js/components/TreeView/TreeView.js.map +1 -1
  129. package/dist/js/components/TreeView/TreeViewListItem.d.ts +5 -0
  130. package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  131. package/dist/js/components/TreeView/TreeViewListItem.js +6 -2
  132. package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
  133. package/dist/js/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  134. package/dist/js/components/TreeView/TreeViewRoot.js +2 -2
  135. package/dist/js/components/TreeView/TreeViewRoot.js.map +1 -1
  136. package/dist/umd/assets/{output-BDZoYci_.css → output-uvU5KOTz.css} +17264 -17264
  137. package/dist/umd/react-core.min.js +2 -2
  138. package/helpers/package.json +1 -1
  139. package/layouts/package.json +1 -1
  140. package/next/package.json +1 -1
  141. package/package.json +2 -2
  142. package/src/components/TreeView/TreeView.tsx +9 -0
  143. package/src/components/TreeView/TreeViewListItem.tsx +17 -2
  144. package/src/components/TreeView/TreeViewRoot.tsx +4 -2
  145. package/src/components/TreeView/__tests__/TreeView.test.tsx +8 -1
  146. package/src/components/TreeView/__tests__/TreeViewList.test.tsx +39 -0
  147. package/src/components/TreeView/__tests__/TreeViewListItem.test.tsx +7 -3
  148. package/src/components/TreeView/__tests__/__snapshots__/TreeView.test.tsx.snap +3 -0
  149. package/src/components/TreeView/examples/TreeViewCompact.tsx +1 -1
  150. package/src/components/TreeView/examples/TreeViewCompactNoBackground.tsx +8 -1
  151. package/src/components/TreeView/examples/TreeViewGuides.tsx +1 -1
  152. package/src/components/TreeView/examples/TreeViewMultiselectable.tsx +1 -0
  153. package/src/components/TreeView/examples/TreeViewSelectionExpansion.tsx +1 -0
  154. package/src/components/TreeView/examples/TreeViewSingleSelectable.tsx +1 -0
  155. package/src/components/TreeView/examples/TreeViewWithActionItems.tsx +1 -0
  156. package/src/components/TreeView/examples/TreeViewWithBadges.tsx +1 -0
  157. package/src/components/TreeView/examples/TreeViewWithCheckboxes.tsx +9 -1
  158. package/src/components/TreeView/examples/TreeViewWithCustomBadges.tsx +1 -0
  159. package/src/components/TreeView/examples/TreeViewWithIconPerItem.tsx +1 -0
  160. package/src/components/TreeView/examples/TreeViewWithIcons.tsx +1 -0
  161. package/src/components/TreeView/examples/TreeViewWithMemoization.tsx +1 -0
  162. package/src/components/TreeView/examples/TreeViewWithSearch.tsx +1 -0
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.3.0-prerelease.20","private":true}
1
+ {"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.3.0-prerelease.21","private":true}
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.3.0-prerelease.20","private":true}
1
+ {"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.3.0-prerelease.21","private":true}
package/next/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.3.0-prerelease.20","private":true}
1
+ {"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.3.0-prerelease.21","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.3.0-prerelease.21",
3
+ "version": "6.3.0-prerelease.22",
4
4
  "description": "This library provides a set of common React components for use with the PatternFly reference implementation.",
5
5
  "main": "dist/js/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -63,5 +63,5 @@
63
63
  "react": "^17 || ^18 || ^19",
64
64
  "react-dom": "^17 || ^18 || ^19"
65
65
  },
66
- "gitHead": "c40f2f81ebe65b6bd785bc38da66330532ac7a30"
66
+ "gitHead": "627a53b707bc052fdc12e4ad8b4bde7c563d5abc"
67
67
  }
@@ -103,6 +103,11 @@ export interface TreeViewProps {
103
103
  useMemo?: boolean;
104
104
  /** Variant presentation styles for the tree view. */
105
105
  variant?: 'default' | 'compact' | 'compactNoBackground';
106
+ /** Flag indicating whether a tree view has animations. This will always render
107
+ * nested tree view items rather than dynamically rendering them. This prop will be removed in
108
+ * the next breaking change release in favor of defaulting to always-rendered items.
109
+ */
110
+ hasAnimations?: boolean;
106
111
  }
107
112
 
108
113
  export const TreeView: React.FunctionComponent<TreeViewProps> = ({
@@ -130,6 +135,7 @@ export const TreeView: React.FunctionComponent<TreeViewProps> = ({
130
135
  useMemo,
131
136
  'aria-label': ariaLabel,
132
137
  'aria-labelledby': ariaLabelledby,
138
+ hasAnimations,
133
139
  ...props
134
140
  }: TreeViewProps) => {
135
141
  const treeViewList = (
@@ -139,11 +145,13 @@ export const TreeView: React.FunctionComponent<TreeViewProps> = ({
139
145
  isMultiSelectable={isMultiSelectable}
140
146
  aria-label={ariaLabel}
141
147
  aria-labelledby={ariaLabelledby}
148
+ {...props}
142
149
  >
143
150
  {data.map((item) => (
144
151
  <TreeViewListItem
145
152
  key={item.id?.toString() || item.name?.toString()}
146
153
  name={item.name}
154
+ hasAnimations={hasAnimations}
147
155
  title={item.title}
148
156
  id={item.id}
149
157
  isExpanded={allExpanded}
@@ -172,6 +180,7 @@ export const TreeView: React.FunctionComponent<TreeViewProps> = ({
172
180
  <TreeView
173
181
  data={item.children}
174
182
  isNested
183
+ hasAnimations={hasAnimations}
175
184
  parentItem={item}
176
185
  hasCheckboxes={hasCheckboxes}
177
186
  hasBadges={hasBadges}
@@ -1,4 +1,4 @@
1
- import { memo, useState, useEffect } from 'react';
1
+ import { memo, useState, useEffect, Children, isValidElement, cloneElement } from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
  import styles from '@patternfly/react-styles/css/components/TreeView/tree-view';
4
4
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
@@ -68,6 +68,11 @@ export interface TreeViewListItemProps {
68
68
  * every node in the selected item's path.
69
69
  */
70
70
  useMemo?: boolean;
71
+ /** Flag indicating whether a tree view has animations. This will always render
72
+ * nested tree view items rather than dynamically rendering them. This prop will be removed in
73
+ * the next breaking change release in favor of defaulting to always-rendered items.
74
+ */
75
+ hasAnimations?: boolean;
71
76
  }
72
77
 
73
78
  const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
@@ -97,6 +102,7 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
97
102
  expandedIcon,
98
103
  action,
99
104
  compareItems,
105
+ hasAnimations,
100
106
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
101
107
  useMemo
102
108
  }: TreeViewListItemProps) => {
@@ -203,6 +209,15 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
203
209
  activeItems.length > 0 &&
204
210
  activeItems.some((item) => compareItems && item && compareItems(item, itemData));
205
211
 
212
+ const clonedChildren = Children.map(
213
+ children,
214
+ (child) =>
215
+ isValidElement(child) &&
216
+ cloneElement(child as React.ReactElement<any>, {
217
+ inert: internalIsExpanded ? undefined : ''
218
+ })
219
+ );
220
+
206
221
  return (
207
222
  <li
208
223
  id={id}
@@ -247,7 +262,7 @@ const TreeViewListItemBase: React.FunctionComponent<TreeViewListItemProps> = ({
247
262
  </GenerateId>
248
263
  {action && <div className={css(styles.treeViewAction)}>{action}</div>}
249
264
  </div>
250
- {internalIsExpanded && children}
265
+ {(internalIsExpanded || hasAnimations) && clonedChildren}
251
266
  </li>
252
267
  );
253
268
  };
@@ -72,7 +72,7 @@ class TreeViewRoot extends Component<TreeViewRootProps> {
72
72
  const activeElement = document.activeElement;
73
73
  const key = event.key;
74
74
  const treeItems = Array.from(this.treeRef.current?.getElementsByClassName(styles.treeViewNode)).filter(
75
- (el) => !el.classList.contains('pf-m-disabled')
75
+ (el) => !el.classList.contains('pf-m-disabled') && !el.closest(`.${styles.treeViewList}[inert]`)
76
76
  );
77
77
 
78
78
  if (key === KeyTypes.Space) {
@@ -138,7 +138,9 @@ class TreeViewRoot extends Component<TreeViewRootProps> {
138
138
  event.preventDefault();
139
139
  }
140
140
 
141
- const treeNodes = Array.from(this.treeRef.current?.getElementsByClassName(styles.treeViewNode));
141
+ const treeNodes = Array.from(this.treeRef.current?.getElementsByClassName(styles.treeViewNode)).filter(
142
+ (el) => !el.closest(`.${styles.treeViewList}[inert]`)
143
+ );
142
144
 
143
145
  handleArrows(
144
146
  event,
@@ -47,7 +47,8 @@ jest.mock('../TreeViewListItem', () => ({
47
47
  onCollapse,
48
48
  parentItem,
49
49
  title,
50
- useMemo
50
+ useMemo,
51
+ hasAnimations
51
52
  }) => (
52
53
  <div data-testid="TreeViewListItem-mock">
53
54
  <p>{`TreeViewListItem action: ${action}`}</p>
@@ -69,6 +70,7 @@ jest.mock('../TreeViewListItem', () => ({
69
70
  <p>{`TreeViewListItem parentItem: ${parentItem?.name}`}</p>
70
71
  <p>{`TreeViewListItem title: ${title}`}</p>
71
72
  <p>{`TreeViewListItem useMemo: ${useMemo}`}</p>
73
+ <p>{`TreeViewListItem hasAnimations: ${hasAnimations}`}</p>
72
74
  <button onClick={compareItems}>compareItems clicker</button>
73
75
  <button onClick={onCheck}>onCheck clicker</button>
74
76
  <button onClick={onSelect}>onSelect clicker</button>
@@ -286,6 +288,11 @@ test('Passes useMemo to TreeViewListItem', () => {
286
288
 
287
289
  expect(screen.getByText('TreeViewListItem useMemo: true')).toBeVisible();
288
290
  });
291
+ test('Passes hasAnimations to TreeViewListItem', () => {
292
+ render(<TreeView data={[basicData]} hasAnimations={true} />);
293
+
294
+ expect(screen.getByText('TreeViewListItem hasAnimations: true')).toBeVisible();
295
+ });
289
296
  test('Passes data.children to TreeViewListItem', () => {
290
297
  render(<TreeView data={[{ ...basicData, children: [{ name: 'Child 1' }] }]} />);
291
298
 
@@ -1,5 +1,7 @@
1
1
  import { render, screen } from '@testing-library/react';
2
2
  import { TreeViewList } from '../TreeViewList';
3
+ import { TreeViewListItem } from '../TreeViewListItem';
4
+ import { TreeView } from '../TreeView';
3
5
  import styles from '@patternfly/react-styles/css/components/TreeView/tree-view';
4
6
 
5
7
  test(`Renders with class ${styles.treeView}__list by default`, () => {
@@ -84,6 +86,43 @@ test(`Does not render toolbar content when toolbar prop is not passed`, () => {
84
86
  expect(screen.queryByRole('separator')).not.toBeInTheDocument();
85
87
  });
86
88
 
89
+ test('Renders with inert attribute by default when TreeView is passed hasAnimations', () => {
90
+ const options = [
91
+ {
92
+ name: 'Parent 1',
93
+ id: 'parent-1',
94
+ children: [
95
+ {
96
+ name: 'Child 1',
97
+ id: 'child-1'
98
+ }
99
+ ]
100
+ }
101
+ ];
102
+ render(<TreeView hasAnimations data={options} />);
103
+
104
+ expect(screen.getByRole('group')).toHaveAttribute('inert', '');
105
+ });
106
+
107
+ test('Does not render with inert attribute when expanded and TreeView is passed hasAnimations', () => {
108
+ const options = [
109
+ {
110
+ name: 'Parent 1',
111
+ id: 'parent-1',
112
+ defaultExpanded: true,
113
+ children: [
114
+ {
115
+ name: 'Child 1',
116
+ id: 'child-1'
117
+ }
118
+ ]
119
+ }
120
+ ];
121
+ render(<TreeView hasAnimations data={options} />);
122
+
123
+ expect(screen.getByRole('group')).not.toHaveAttribute('inert');
124
+ });
125
+
87
126
  test('Matches snapshot by default', () => {
88
127
  const { asFragment } = render(<TreeViewList>Content</TreeViewList>);
89
128
 
@@ -28,7 +28,7 @@ test(`Does not render children by default`, () => {
28
28
  test(`Renders children if defaultExpanded is true`, () => {
29
29
  render(
30
30
  <TreeViewListItem defaultExpanded={true} {...requiredProps}>
31
- Content
31
+ <div>Content</div>
32
32
  </TreeViewListItem>
33
33
  );
34
34
 
@@ -38,7 +38,7 @@ test(`Renders children if defaultExpanded is true`, () => {
38
38
  test(`Renders children if isExpanded is true`, () => {
39
39
  render(
40
40
  <TreeViewListItem isExpanded={true} {...requiredProps}>
41
- Content
41
+ <div>Content</div>
42
42
  </TreeViewListItem>
43
43
  );
44
44
 
@@ -47,7 +47,11 @@ test(`Renders children if isExpanded is true`, () => {
47
47
 
48
48
  test(`Renders children when toggle is clicked`, async () => {
49
49
  const user = userEvent.setup();
50
- render(<TreeViewListItem {...requiredProps}>Content</TreeViewListItem>);
50
+ render(
51
+ <TreeViewListItem {...requiredProps}>
52
+ <div>Content</div>
53
+ </TreeViewListItem>
54
+ );
51
55
 
52
56
  await user.click(screen.getByRole('button', { name: requiredProps.name }));
53
57
 
@@ -104,6 +104,9 @@ exports[`Matches snapshot 1`] = `
104
104
  <p>
105
105
  TreeViewListItem useMemo: undefined
106
106
  </p>
107
+ <p>
108
+ TreeViewListItem hasAnimations: undefined
109
+ </p>
107
110
  <button>
108
111
  compareItems clicker
109
112
  </button>
@@ -54,5 +54,5 @@ export const TreeViewCompact: React.FunctionComponent = () => {
54
54
  ]
55
55
  }
56
56
  ];
57
- return <TreeView aria-label="Tree View compact example" data={options} variant="compact" />;
57
+ return <TreeView hasAnimations aria-label="Tree View compact example" data={options} variant="compact" />;
58
58
  };
@@ -54,5 +54,12 @@ export const TreeViewCompactNoBackground: React.FunctionComponent = () => {
54
54
  ]
55
55
  }
56
56
  ];
57
- return <TreeView aria-label="Tree View compact no background example" data={options} variant="compactNoBackground" />;
57
+ return (
58
+ <TreeView
59
+ hasAnimations
60
+ aria-label="Tree View compact no background example"
61
+ data={options}
62
+ variant="compactNoBackground"
63
+ />
64
+ );
58
65
  };
@@ -60,5 +60,5 @@ export const GuidesTreeView: React.FunctionComponent = () => {
60
60
  children: [{ name: 'Application 5', id: 'example8-App5' }]
61
61
  }
62
62
  ];
63
- return <TreeView aria-label="Tree View guides example" data={options} hasGuides={true} />;
63
+ return <TreeView hasAnimations aria-label="Tree View guides example" data={options} hasGuides={true} />;
64
64
  };
@@ -76,6 +76,7 @@ export const TreeViewMultiselectable: React.FunctionComponent = () => {
76
76
  ];
77
77
  return (
78
78
  <TreeView
79
+ hasAnimations
79
80
  aria-label="Tree View multiselectable example"
80
81
  isMultiSelectable
81
82
  data={options}
@@ -73,6 +73,7 @@ export const TreeViewSelectableNodes: React.FunctionComponent = () => {
73
73
  ];
74
74
  return (
75
75
  <TreeView
76
+ hasAnimations
76
77
  aria-label="Tree View separate selection and expansion example"
77
78
  hasSelectableNodes
78
79
  data={options}
@@ -82,6 +82,7 @@ export const TreeViewSingleSelectable: React.FunctionComponent = () => {
82
82
  {!allExpanded && 'Expand all'}
83
83
  </Button>
84
84
  <TreeView
85
+ hasAnimations
85
86
  aria-label="Tree View single selectable example"
86
87
  data={options}
87
88
  activeItems={activeItems}
@@ -129,6 +129,7 @@ export const TreeViewWithActionItems: React.FunctionComponent = () => {
129
129
  ];
130
130
  return (
131
131
  <TreeView
132
+ hasAnimations
132
133
  aria-label="Tree View with actions example"
133
134
  data={options}
134
135
  activeItems={activeItems}
@@ -77,6 +77,7 @@ export const TreeViewBadges: React.FunctionComponent = () => {
77
77
 
78
78
  return (
79
79
  <TreeView
80
+ hasAnimations
80
81
  aria-label="Tree View with badges example"
81
82
  data={options}
82
83
  activeItems={activeItems}
@@ -194,5 +194,13 @@ export const TreeViewWithCheckboxes: React.FunctionComponent = () => {
194
194
  }
195
195
  };
196
196
  const mapped = options.map((item) => mapTree(item));
197
- return <TreeView aria-label="Tree View with checkboxes example" data={mapped} onCheck={onCheck} hasCheckboxes />;
197
+ return (
198
+ <TreeView
199
+ hasAnimations
200
+ aria-label="Tree View with checkboxes example"
201
+ data={mapped}
202
+ onCheck={onCheck}
203
+ hasCheckboxes
204
+ />
205
+ );
198
206
  };
@@ -84,6 +84,7 @@ export const TreeViewCustomBadges: React.FunctionComponent = () => {
84
84
  ];
85
85
  return (
86
86
  <TreeView
87
+ hasAnimations
87
88
  aria-label="Tree View with custom badges example"
88
89
  data={options}
89
90
  activeItems={activeItems}
@@ -55,6 +55,7 @@ export const TreeViewWithIconPerItem: React.FunctionComponent = () => {
55
55
  ];
56
56
  return (
57
57
  <TreeView
58
+ hasAnimations
58
59
  aria-label="Tree View with unique icon per item example"
59
60
  data={options}
60
61
  activeItems={activeItems}
@@ -73,6 +73,7 @@ export const TreeViewWithIcons: React.FunctionComponent = () => {
73
73
  ];
74
74
  return (
75
75
  <TreeView
76
+ hasAnimations
76
77
  aria-label="Tree View with icons example"
77
78
  data={options}
78
79
  activeItems={activeItems}
@@ -51,6 +51,7 @@ export const TreeViewWithMemoization: React.FunctionComponent = () => {
51
51
  }
52
52
  const tree = (
53
53
  <TreeView
54
+ hasAnimations
54
55
  aria-label="Tree View with memoization example"
55
56
  data={options}
56
57
  activeItems={activeItems}
@@ -118,6 +118,7 @@ export const TreeViewWithSearch: React.FunctionComponent = () => {
118
118
 
119
119
  return (
120
120
  <TreeView
121
+ hasAnimations
121
122
  aria-label="Tree View with search example"
122
123
  data={filteredItems}
123
124
  activeItems={activeItems}