@patternfly/react-core 4.258.8 → 4.260.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 (169) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.d.ts +2 -0
  3. package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.d.ts.map +1 -1
  4. package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.js +2 -2
  5. package/dist/esm/components/ApplicationLauncher/ApplicationLauncher.js.map +1 -1
  6. package/dist/esm/components/ContextSelector/ContextSelector.d.ts +2 -0
  7. package/dist/esm/components/ContextSelector/ContextSelector.d.ts.map +1 -1
  8. package/dist/esm/components/ContextSelector/ContextSelector.js +4 -3
  9. package/dist/esm/components/ContextSelector/ContextSelector.js.map +1 -1
  10. package/dist/esm/components/Dropdown/Dropdown.d.ts +2 -0
  11. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  12. package/dist/esm/components/Dropdown/Dropdown.js +2 -2
  13. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  14. package/dist/esm/components/Dropdown/DropdownWithContext.d.ts.map +1 -1
  15. package/dist/esm/components/Dropdown/DropdownWithContext.js +2 -2
  16. package/dist/esm/components/Dropdown/DropdownWithContext.js.map +1 -1
  17. package/dist/esm/components/HelperText/__mocks__/HelperText.d.ts +4 -0
  18. package/dist/esm/components/HelperText/__mocks__/HelperText.d.ts.map +1 -0
  19. package/dist/esm/components/HelperText/__mocks__/HelperText.js +5 -0
  20. package/dist/esm/components/HelperText/__mocks__/HelperText.js.map +1 -0
  21. package/dist/esm/components/HelperText/__mocks__/HelperTextItem.d.ts +4 -0
  22. package/dist/esm/components/HelperText/__mocks__/HelperTextItem.d.ts.map +1 -0
  23. package/dist/esm/components/HelperText/__mocks__/HelperTextItem.js +5 -0
  24. package/dist/esm/components/HelperText/__mocks__/HelperTextItem.js.map +1 -0
  25. package/dist/esm/components/HelperText/__mocks__/index.d.ts +3 -0
  26. package/dist/esm/components/HelperText/__mocks__/index.d.ts.map +1 -0
  27. package/dist/esm/components/HelperText/__mocks__/index.js +3 -0
  28. package/dist/esm/components/HelperText/__mocks__/index.js.map +1 -0
  29. package/dist/esm/components/Nav/NavItem.d.ts +2 -0
  30. package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
  31. package/dist/esm/components/Nav/NavItem.js +2 -2
  32. package/dist/esm/components/Nav/NavItem.js.map +1 -1
  33. package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts +2 -0
  34. package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
  35. package/dist/esm/components/OptionsMenu/OptionsMenu.js +2 -2
  36. package/dist/esm/components/OptionsMenu/OptionsMenu.js.map +1 -1
  37. package/dist/esm/components/Progress/Progress.d.ts +4 -0
  38. package/dist/esm/components/Progress/Progress.d.ts.map +1 -1
  39. package/dist/esm/components/Progress/Progress.js +2 -2
  40. package/dist/esm/components/Progress/Progress.js.map +1 -1
  41. package/dist/esm/components/Progress/ProgressContainer.d.ts +4 -0
  42. package/dist/esm/components/Progress/ProgressContainer.d.ts.map +1 -1
  43. package/dist/esm/components/Progress/ProgressContainer.js +4 -2
  44. package/dist/esm/components/Progress/ProgressContainer.js.map +1 -1
  45. package/dist/esm/components/Progress/ProgressHelperText.d.ts +9 -0
  46. package/dist/esm/components/Progress/ProgressHelperText.d.ts.map +1 -0
  47. package/dist/esm/components/Progress/ProgressHelperText.js +9 -0
  48. package/dist/esm/components/Progress/ProgressHelperText.js.map +1 -0
  49. package/dist/esm/components/SearchInput/SearchInput.d.ts +2 -0
  50. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  51. package/dist/esm/components/SearchInput/SearchInput.js +2 -2
  52. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  53. package/dist/esm/components/Select/Select.d.ts +2 -0
  54. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  55. package/dist/esm/components/Select/Select.js +4 -3
  56. package/dist/esm/components/Select/Select.js.map +1 -1
  57. package/dist/esm/components/Tabs/OverflowTab.d.ts +2 -0
  58. package/dist/esm/components/Tabs/OverflowTab.d.ts.map +1 -1
  59. package/dist/esm/components/Tabs/OverflowTab.js +2 -2
  60. package/dist/esm/components/Tabs/OverflowTab.js.map +1 -1
  61. package/dist/esm/components/TimePicker/TimePicker.d.ts +3 -0
  62. package/dist/esm/components/TimePicker/TimePicker.d.ts.map +1 -1
  63. package/dist/esm/components/TimePicker/TimePicker.js +4 -3
  64. package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
  65. package/dist/esm/next/components/Dropdown/Dropdown.d.ts +2 -0
  66. package/dist/esm/next/components/Dropdown/Dropdown.d.ts.map +1 -1
  67. package/dist/esm/next/components/Dropdown/Dropdown.js +2 -2
  68. package/dist/esm/next/components/Dropdown/Dropdown.js.map +1 -1
  69. package/dist/esm/next/components/Select/Select.d.ts +2 -0
  70. package/dist/esm/next/components/Select/Select.d.ts.map +1 -1
  71. package/dist/esm/next/components/Select/Select.js +2 -2
  72. package/dist/esm/next/components/Select/Select.js.map +1 -1
  73. package/dist/js/components/ApplicationLauncher/ApplicationLauncher.d.ts +2 -0
  74. package/dist/js/components/ApplicationLauncher/ApplicationLauncher.d.ts.map +1 -1
  75. package/dist/js/components/ApplicationLauncher/ApplicationLauncher.js +2 -2
  76. package/dist/js/components/ApplicationLauncher/ApplicationLauncher.js.map +1 -1
  77. package/dist/js/components/ContextSelector/ContextSelector.d.ts +2 -0
  78. package/dist/js/components/ContextSelector/ContextSelector.d.ts.map +1 -1
  79. package/dist/js/components/ContextSelector/ContextSelector.js +4 -3
  80. package/dist/js/components/ContextSelector/ContextSelector.js.map +1 -1
  81. package/dist/js/components/Dropdown/Dropdown.d.ts +2 -0
  82. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  83. package/dist/js/components/Dropdown/Dropdown.js +2 -2
  84. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  85. package/dist/js/components/Dropdown/DropdownWithContext.d.ts.map +1 -1
  86. package/dist/js/components/Dropdown/DropdownWithContext.js +2 -2
  87. package/dist/js/components/Dropdown/DropdownWithContext.js.map +1 -1
  88. package/dist/js/components/HelperText/__mocks__/HelperText.d.ts +4 -0
  89. package/dist/js/components/HelperText/__mocks__/HelperText.d.ts.map +1 -0
  90. package/dist/js/components/HelperText/__mocks__/HelperText.js +10 -0
  91. package/dist/js/components/HelperText/__mocks__/HelperText.js.map +1 -0
  92. package/dist/js/components/HelperText/__mocks__/HelperTextItem.d.ts +4 -0
  93. package/dist/js/components/HelperText/__mocks__/HelperTextItem.d.ts.map +1 -0
  94. package/dist/js/components/HelperText/__mocks__/HelperTextItem.js +10 -0
  95. package/dist/js/components/HelperText/__mocks__/HelperTextItem.js.map +1 -0
  96. package/dist/js/components/HelperText/__mocks__/index.d.ts +3 -0
  97. package/dist/js/components/HelperText/__mocks__/index.d.ts.map +1 -0
  98. package/dist/js/components/HelperText/__mocks__/index.js +6 -0
  99. package/dist/js/components/HelperText/__mocks__/index.js.map +1 -0
  100. package/dist/js/components/Nav/NavItem.d.ts +2 -0
  101. package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
  102. package/dist/js/components/Nav/NavItem.js +2 -2
  103. package/dist/js/components/Nav/NavItem.js.map +1 -1
  104. package/dist/js/components/OptionsMenu/OptionsMenu.d.ts +2 -0
  105. package/dist/js/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
  106. package/dist/js/components/OptionsMenu/OptionsMenu.js +2 -2
  107. package/dist/js/components/OptionsMenu/OptionsMenu.js.map +1 -1
  108. package/dist/js/components/Progress/Progress.d.ts +4 -0
  109. package/dist/js/components/Progress/Progress.d.ts.map +1 -1
  110. package/dist/js/components/Progress/Progress.js +2 -2
  111. package/dist/js/components/Progress/Progress.js.map +1 -1
  112. package/dist/js/components/Progress/ProgressContainer.d.ts +4 -0
  113. package/dist/js/components/Progress/ProgressContainer.d.ts.map +1 -1
  114. package/dist/js/components/Progress/ProgressContainer.js +4 -2
  115. package/dist/js/components/Progress/ProgressContainer.js.map +1 -1
  116. package/dist/js/components/Progress/ProgressHelperText.d.ts +9 -0
  117. package/dist/js/components/Progress/ProgressHelperText.d.ts.map +1 -0
  118. package/dist/js/components/Progress/ProgressHelperText.js +13 -0
  119. package/dist/js/components/Progress/ProgressHelperText.js.map +1 -0
  120. package/dist/js/components/SearchInput/SearchInput.d.ts +2 -0
  121. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  122. package/dist/js/components/SearchInput/SearchInput.js +2 -2
  123. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  124. package/dist/js/components/Select/Select.d.ts +2 -0
  125. package/dist/js/components/Select/Select.d.ts.map +1 -1
  126. package/dist/js/components/Select/Select.js +4 -3
  127. package/dist/js/components/Select/Select.js.map +1 -1
  128. package/dist/js/components/Tabs/OverflowTab.d.ts +2 -0
  129. package/dist/js/components/Tabs/OverflowTab.d.ts.map +1 -1
  130. package/dist/js/components/Tabs/OverflowTab.js +2 -2
  131. package/dist/js/components/Tabs/OverflowTab.js.map +1 -1
  132. package/dist/js/components/TimePicker/TimePicker.d.ts +3 -0
  133. package/dist/js/components/TimePicker/TimePicker.d.ts.map +1 -1
  134. package/dist/js/components/TimePicker/TimePicker.js +4 -3
  135. package/dist/js/components/TimePicker/TimePicker.js.map +1 -1
  136. package/dist/js/next/components/Dropdown/Dropdown.d.ts +2 -0
  137. package/dist/js/next/components/Dropdown/Dropdown.d.ts.map +1 -1
  138. package/dist/js/next/components/Dropdown/Dropdown.js +2 -2
  139. package/dist/js/next/components/Dropdown/Dropdown.js.map +1 -1
  140. package/dist/js/next/components/Select/Select.d.ts +2 -0
  141. package/dist/js/next/components/Select/Select.d.ts.map +1 -1
  142. package/dist/js/next/components/Select/Select.js +2 -2
  143. package/dist/js/next/components/Select/Select.js.map +1 -1
  144. package/dist/umd/react-core.min.css +2174 -2174
  145. package/dist/umd/react-core.min.js +4 -4
  146. package/package.json +2 -2
  147. package/src/components/ApplicationLauncher/ApplicationLauncher.tsx +4 -0
  148. package/src/components/ContextSelector/ContextSelector.tsx +6 -1
  149. package/src/components/Dropdown/Dropdown.tsx +4 -0
  150. package/src/components/Dropdown/DropdownWithContext.tsx +2 -0
  151. package/src/components/HelperText/__mocks__/HelperText.tsx +9 -0
  152. package/src/components/HelperText/__mocks__/HelperTextItem.tsx +9 -0
  153. package/src/components/HelperText/__mocks__/index.ts +2 -0
  154. package/src/components/Nav/NavItem.tsx +4 -0
  155. package/src/components/OptionsMenu/OptionsMenu.tsx +4 -0
  156. package/src/components/Progress/Progress.tsx +6 -0
  157. package/src/components/Progress/ProgressContainer.tsx +8 -1
  158. package/src/components/Progress/ProgressHelperText.tsx +20 -0
  159. package/src/components/Progress/__tests__/Progress.test.tsx +13 -1
  160. package/src/components/Progress/__tests__/ProgressHelperText.test.tsx +35 -0
  161. package/src/components/Progress/__tests__/__snapshots__/ProgressHelperText.test.tsx.snap +11 -0
  162. package/src/components/Progress/examples/Progress.md +4 -0
  163. package/src/components/Progress/examples/ProgressHelperText.tsx +42 -0
  164. package/src/components/SearchInput/SearchInput.tsx +4 -0
  165. package/src/components/Select/Select.tsx +6 -1
  166. package/src/components/Tabs/OverflowTab.tsx +4 -0
  167. package/src/components/TimePicker/TimePicker.tsx +6 -1
  168. package/src/next/components/Dropdown/Dropdown.tsx +4 -0
  169. package/src/next/components/Select/Select.tsx +4 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "4.258.8",
3
+ "version": "4.260.0",
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",
@@ -70,5 +70,5 @@
70
70
  "react": "^16.8 || ^17 || ^18",
71
71
  "react-dom": "^16.8 || ^17 || ^18"
72
72
  },
73
- "gitHead": "caf942ac339aec701ec15dfc6cb48d4859b7c3e4"
73
+ "gitHead": "8d5d8dc62afaae1e70567b802bf617bf73df36a4"
74
74
  }
@@ -63,6 +63,8 @@ export interface ApplicationLauncherProps
63
63
  toggleId?: string;
64
64
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
65
65
  removeFindDomNode?: boolean;
66
+ /** z-index of the application launcher when menuAppendTo is not inline. */
67
+ zIndex?: number;
66
68
  }
67
69
 
68
70
  export class ApplicationLauncher extends React.Component<ApplicationLauncherProps> {
@@ -133,6 +135,7 @@ export class ApplicationLauncher extends React.Component<ApplicationLauncherProp
133
135
  searchNoResultsText,
134
136
  menuAppendTo,
135
137
  removeFindDomNode,
138
+ zIndex = 9999,
136
139
  ...props
137
140
  } = this.props;
138
141
  let renderableItems: React.ReactNode[] = [];
@@ -194,6 +197,7 @@ export class ApplicationLauncher extends React.Component<ApplicationLauncherProp
194
197
  aria-label={ariaLabel}
195
198
  menuAppendTo={menuAppendTo}
196
199
  removeFindDomNode={removeFindDomNode}
200
+ zIndex={zIndex}
197
201
  toggle={
198
202
  <DropdownToggle
199
203
  id={toggleId}
@@ -68,6 +68,8 @@ export interface ContextSelectorProps extends Omit<ToggleMenuBaseProps, 'menuApp
68
68
  id?: string;
69
69
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
70
70
  removeFindDomNode?: boolean;
71
+ /** z-index of the context selector when menuAppendTo is not inline. */
72
+ zIndex?: number;
71
73
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
72
74
  ouiaId?: number | string;
73
75
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
@@ -96,7 +98,8 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
96
98
  isPlain: false,
97
99
  isText: false,
98
100
  isFlipEnabled: true,
99
- removeFindDomNode: false
101
+ removeFindDomNode: false,
102
+ zIndex: 9999
100
103
  };
101
104
  constructor(props: ContextSelectorProps) {
102
105
  super(props);
@@ -139,6 +142,7 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
139
142
  isFlipEnabled,
140
143
  id,
141
144
  removeFindDomNode,
145
+ zIndex,
142
146
  ...props
143
147
  } = this.props;
144
148
 
@@ -235,6 +239,7 @@ export class ContextSelector extends React.Component<ContextSelectorProps, { oui
235
239
  appendTo={menuAppendTo === 'parent' ? getParentElement() : menuAppendTo}
236
240
  isVisible={isOpen}
237
241
  removeFindDomNode={removeFindDomNode}
242
+ zIndex={zIndex}
238
243
  />
239
244
  );
240
245
  }
@@ -62,6 +62,8 @@ export interface DropdownProps
62
62
  isFlipEnabled?: boolean;
63
63
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
64
64
  removeFindDomNode?: boolean;
65
+ /** z-index of the dropdown when menuAppendTo is not inline. */
66
+ zIndex?: number;
65
67
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
66
68
  ouiaId?: number | string;
67
69
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
@@ -79,6 +81,7 @@ export const Dropdown: React.FunctionComponent<DropdownProps> = ({
79
81
  menuAppendTo = 'inline',
80
82
  isFlipEnabled = true,
81
83
  removeFindDomNode = false,
84
+ zIndex = 9999,
82
85
  ...props
83
86
  }: DropdownProps) => (
84
87
  <DropdownContext.Provider
@@ -108,6 +111,7 @@ export const Dropdown: React.FunctionComponent<DropdownProps> = ({
108
111
  menuAppendTo={menuAppendTo}
109
112
  isFlipEnabled={isFlipEnabled}
110
113
  removeFindDomNode={removeFindDomNode}
114
+ zIndex={zIndex}
111
115
  {...props}
112
116
  />
113
117
  </DropdownContext.Provider>
@@ -78,6 +78,7 @@ export class DropdownWithContext extends React.Component<DropdownProps & OUIAPro
78
78
  menuAppendTo,
79
79
  isFlipEnabled,
80
80
  removeFindDomNode,
81
+ zIndex,
81
82
  ...props
82
83
  } = this.props;
83
84
  const id = toggle.props.id || `pf-dropdown-toggle-id-${DropdownWithContext.currentId++}`;
@@ -175,6 +176,7 @@ export class DropdownWithContext extends React.Component<DropdownProps & OUIAPro
175
176
  appendTo={menuAppendTo === 'parent' ? getParentElement() : menuAppendTo}
176
177
  isVisible={isOpen}
177
178
  removeFindDomNode={removeFindDomNode}
179
+ zIndex={zIndex}
178
180
  popperMatchesTriggerWidth={false}
179
181
  />
180
182
  );
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { HelperTextProps } from '../';
3
+
4
+ export const HelperText = ({ children, isLiveRegion }: HelperTextProps) => (
5
+ <>
6
+ <div data-testid="helper-text-children-container">{children}</div>
7
+ <p>{`isLiveRegion: ${isLiveRegion}`}</p>
8
+ </>
9
+ );
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import { HelperTextItemProps } from '../';
3
+
4
+ export const HelperTextItem = ({ children, variant }: HelperTextItemProps) => (
5
+ <>
6
+ <div data-testid="helper-text-item-children-container">{children}</div>
7
+ <p>{`variant: ${variant}`}</p>
8
+ </>
9
+ );
@@ -0,0 +1,2 @@
1
+ export * from './HelperText';
2
+ export * from './HelperTextItem';
@@ -34,6 +34,8 @@ export interface NavItemProps extends Omit<React.HTMLProps<HTMLAnchorElement>, '
34
34
  onShowFlyout?: () => void;
35
35
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
36
36
  removeFindDomNode?: boolean;
37
+ /** z-index of the flyout nav item */
38
+ zIndex?: number;
37
39
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
38
40
  ouiaId?: number | string;
39
41
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
@@ -56,6 +58,7 @@ export const NavItem: React.FunctionComponent<NavItemProps> = ({
56
58
  ouiaId,
57
59
  ouiaSafe,
58
60
  removeFindDomNode = false,
61
+ zIndex = 9999,
59
62
  ...props
60
63
  }: NavItemProps) => {
61
64
  const { flyoutRef, setFlyoutRef } = React.useContext(NavContext);
@@ -225,6 +228,7 @@ export const NavItem: React.FunctionComponent<NavItemProps> = ({
225
228
  isVisible={flyoutVisible}
226
229
  onDocumentKeyDown={handleFlyout}
227
230
  removeFindDomNode={removeFindDomNode}
231
+ zIndex={zIndex}
228
232
  />
229
233
  );
230
234
 
@@ -49,6 +49,8 @@ export interface OptionsMenuProps
49
49
  menuAppendTo?: HTMLElement | (() => HTMLElement) | 'inline' | 'parent';
50
50
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
51
51
  removeFindDomNode?: boolean;
52
+ /** z-index of the options menu when menuAppendTo is not inline. */
53
+ zIndex?: number;
52
54
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
53
55
  ouiaId?: number | string;
54
56
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
@@ -68,6 +70,7 @@ export const OptionsMenu: React.FunctionComponent<OptionsMenuProps> = ({
68
70
  ouiaId,
69
71
  ouiaSafe = true,
70
72
  removeFindDomNode = false,
73
+ zIndex = 9999,
71
74
  ...props
72
75
  }: OptionsMenuProps) => (
73
76
  <DropdownContext.Provider
@@ -96,6 +99,7 @@ export const OptionsMenu: React.FunctionComponent<OptionsMenuProps> = ({
96
99
  toggle={toggle}
97
100
  menuAppendTo={menuAppendTo}
98
101
  removeFindDomNode={removeFindDomNode}
102
+ zIndex={zIndex}
99
103
  {...props}
100
104
  />
101
105
  </DropdownContext.Provider>
@@ -42,6 +42,10 @@ export interface ProgressProps extends Omit<React.HTMLProps<HTMLDivElement>, 'si
42
42
  'aria-label'?: string;
43
43
  /** Associates the ProgressBar with it's label for accessibility purposes. Required when title not used */
44
44
  'aria-labelledby'?: string;
45
+ /** @beta Content which can be used to convey additional information about the progress component.
46
+ * We recommend the helper text component as it was designed for this purpose.
47
+ */
48
+ helperText?: React.ReactNode;
45
49
  }
46
50
 
47
51
  export class Progress extends React.Component<ProgressProps> {
@@ -85,6 +89,7 @@ export class Progress extends React.Component<ProgressProps> {
85
89
  tooltipPosition,
86
90
  'aria-label': ariaLabel,
87
91
  'aria-labelledby': ariaLabelledBy,
92
+ helperText,
88
93
  ...props
89
94
  } = this.props;
90
95
 
@@ -137,6 +142,7 @@ export class Progress extends React.Component<ProgressProps> {
137
142
  progressBarAriaProps={progressBarAriaProps}
138
143
  isTitleTruncated={isTitleTruncated}
139
144
  tooltipPosition={tooltipPosition}
145
+ helperText={helperText}
140
146
  />
141
147
  </div>
142
148
  );
@@ -6,6 +6,7 @@ import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle
6
6
  import TimesCircleIcon from '@patternfly/react-icons/dist/esm/icons/times-circle-icon';
7
7
  import ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';
8
8
  import { AriaProps, ProgressBar } from './ProgressBar';
9
+ import { ProgressHelperText } from './ProgressHelperText';
9
10
 
10
11
  export enum ProgressMeasureLocation {
11
12
  outside = 'outside',
@@ -53,6 +54,10 @@ export interface ProgressContainerProps extends Omit<React.HTMLProps<HTMLDivElem
53
54
  | 'left-end'
54
55
  | 'right-start'
55
56
  | 'right-end';
57
+ /** @beta Content which can be used to convey additional information about the progress component.
58
+ * We recommend the helper text component as it was designed for this purpose.
59
+ */
60
+ helperText?: React.ReactNode;
56
61
  }
57
62
 
58
63
  const variantToIcon = {
@@ -70,7 +75,8 @@ export const ProgressContainer: React.FunctionComponent<ProgressContainerProps>
70
75
  variant = null,
71
76
  measureLocation = ProgressMeasureLocation.top,
72
77
  isTitleTruncated = false,
73
- tooltipPosition
78
+ tooltipPosition,
79
+ helperText
74
80
  }: ProgressContainerProps) => {
75
81
  const StatusIcon = variantToIcon.hasOwnProperty(variant) && variantToIcon[variant];
76
82
  const [tooltip, setTooltip] = React.useState('');
@@ -117,6 +123,7 @@ export const ProgressContainer: React.FunctionComponent<ProgressContainerProps>
117
123
  <ProgressBar role="progressbar" progressBarAriaProps={progressBarAriaProps} value={value}>
118
124
  {measureLocation === ProgressMeasureLocation.inside && `${value}%`}
119
125
  </ProgressBar>
126
+ {helperText && <ProgressHelperText>{helperText}</ProgressHelperText>}
120
127
  </React.Fragment>
121
128
  );
122
129
  };
@@ -0,0 +1,20 @@
1
+ import * as React from 'react';
2
+ import progressStyle from '@patternfly/react-styles/css/components/Progress/progress';
3
+
4
+ export interface ProgressHelperTextProps extends React.HTMLProps<HTMLDivElement> {
5
+ /** Content which can be used to convey additional information about the progress component.
6
+ * We recommend the helper text component as it was designed for this purpose.
7
+ */
8
+ children?: React.ReactNode;
9
+ }
10
+
11
+ export const ProgressHelperText: React.FunctionComponent<ProgressHelperTextProps> = ({
12
+ children,
13
+ ...props
14
+ }: ProgressHelperTextProps) => (
15
+ <div className={progressStyle.progressHelperText} {...props}>
16
+ {children}
17
+ </div>
18
+ );
19
+
20
+ ProgressHelperText.displayName = 'ProgressHelperText';
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, screen } from '@testing-library/react';
3
3
  import { Progress, ProgressSize } from '../Progress';
4
4
  import { ProgressVariant, ProgressMeasureLocation } from '../ProgressContainer';
5
5
 
@@ -97,3 +97,15 @@ test('progress component generates console warning when no accessible name is pr
97
97
  render(<Progress value={33} />);
98
98
  expect(consoleWarnMock).toHaveBeenCalled();
99
99
  });
100
+
101
+ test('Does not render helper text by default', () => {
102
+ render(<Progress/>);
103
+
104
+ expect(screen.queryByText('Test helper text')).not.toBeInTheDocument();
105
+ })
106
+
107
+ test('Renders passed helper text', () => {
108
+ render(<Progress helperText="Test helper text" />);
109
+
110
+ expect(screen.getByText('Test helper text')).toBeVisible();
111
+ });
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { render, screen } from '@testing-library/react';
3
+ import { ProgressHelperText } from '../ProgressHelperText';
4
+
5
+ test('Renders without children', () => {
6
+ render(
7
+ <div data-testid="container">
8
+ <ProgressHelperText />
9
+ </div>
10
+ );
11
+ expect(screen.getByTestId('container').firstChild).toBeVisible();
12
+ });
13
+
14
+ test('Renders children', () => {
15
+ render(<ProgressHelperText>Test</ProgressHelperText>);
16
+
17
+ expect(screen.getByText('Test')).toBeVisible();
18
+ });
19
+
20
+ test('Renders with class pf-c-progress__helper-text on the div containing the helper text component', () => {
21
+ render(<ProgressHelperText>Test</ProgressHelperText>);
22
+
23
+ expect(screen.getByText('Test')).toHaveClass('pf-c-progress__helper-text');
24
+ });
25
+
26
+ test('Renders with inherited element props spread to the component', () => {
27
+ render(<ProgressHelperText aria-label="Test label">Test</ProgressHelperText>);
28
+
29
+ expect(screen.getByText('Test')).toHaveAccessibleName('Test label');
30
+ });
31
+
32
+ test('Matches the snapshot', () => {
33
+ const { asFragment } = render(<ProgressHelperText>test</ProgressHelperText>);
34
+ expect(asFragment()).toMatchSnapshot();
35
+ });
@@ -0,0 +1,11 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Matches the snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="pf-c-progress__helper-text"
7
+ >
8
+ test
9
+ </div>
10
+ </DocumentFragment>
11
+ `;
@@ -74,3 +74,7 @@ propComponents: ['Progress']
74
74
  ### Title outside of progress bar
75
75
  ```ts file="./ProgressTitleOutsideOfProgressBar.tsx"
76
76
  ```
77
+
78
+ ### Helper text
79
+ ```ts file="./ProgressHelperText.tsx" isBeta
80
+ ```
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ import { Progress, ProgressProps, HelperText, HelperTextItem, Radio } from '@patternfly/react-core';
3
+
4
+ export const ProgressHelperText: React.FunctionComponent = () => {
5
+ type ProgressVariant = ProgressProps['variant'];
6
+
7
+ const [selectedVariant, setSelectedVariant] = React.useState<ProgressVariant>(undefined);
8
+
9
+ const progressVariants: ProgressVariant[] = [undefined, 'success', 'warning', 'danger'];
10
+
11
+ const capitalize = (input: string) => input[0].toUpperCase() + input.substring(1);
12
+ const formatVariantName = (variant: ProgressVariant) => (variant ? capitalize(variant) : 'Default');
13
+
14
+ const variantOptions = progressVariants.map(variant => (
15
+ <Radio
16
+ id={`progress-helper-text-${variant}-selector`}
17
+ label={`${formatVariantName(variant)} variant`}
18
+ isChecked={variant === selectedVariant}
19
+ onChange={() => setSelectedVariant(variant)}
20
+ key={formatVariantName(variant)}
21
+ name="Progress variant options"
22
+ />
23
+ ));
24
+
25
+ const helperTextVariant = selectedVariant === 'danger' ? 'error' : selectedVariant;
26
+
27
+ const helperText = (
28
+ <HelperText>
29
+ <HelperTextItem variant={helperTextVariant}>
30
+ {`${formatVariantName(selectedVariant)} variant is being displayed`}
31
+ </HelperTextItem>
32
+ </HelperText>
33
+ );
34
+
35
+ return (
36
+ <>
37
+ {variantOptions}
38
+ <br />
39
+ <Progress value={33} title="Title" helperText={helperText} variant={selectedVariant} />
40
+ </>
41
+ );
42
+ };
@@ -119,6 +119,8 @@ export interface SearchInputProps extends Omit<React.HTMLProps<HTMLDivElement>,
119
119
  previousNavigationButtonAriaLabel?: string;
120
120
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
121
121
  removeFindDomNode?: boolean;
122
+ /** z-index of the advanced search form when appendTo is not inline. */
123
+ zIndex?: number;
122
124
  /** Label for the button which resets the advanced search form and clears the search input. */
123
125
  resetButtonLabel?: string;
124
126
  /** The number of search results returned. Either a total number of results,
@@ -160,6 +162,7 @@ const SearchInputBase: React.FunctionComponent<SearchInputProps> = ({
160
162
  isDisabled = false,
161
163
  appendTo,
162
164
  removeFindDomNode = false,
165
+ zIndex = 9999,
163
166
  type = 'text',
164
167
  ...props
165
168
  }: SearchInputProps) => {
@@ -416,6 +419,7 @@ const SearchInputBase: React.FunctionComponent<SearchInputProps> = ({
416
419
  enableFlip={true}
417
420
  appendTo={() => appendTo || searchInputRef.current}
418
421
  removeFindDomNode={removeFindDomNode}
422
+ zIndex={zIndex}
419
423
  />
420
424
  </div>
421
425
  );
@@ -186,6 +186,8 @@ export interface SelectProps
186
186
  isFlipEnabled?: boolean;
187
187
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
188
188
  removeFindDomNode?: boolean;
189
+ /** z-index of the select menu when menuAppendTo is not inline. */
190
+ zIndex?: number;
189
191
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
190
192
  ouiaId?: number | string;
191
193
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
@@ -267,7 +269,8 @@ export class Select extends React.Component<SelectProps & OUIAProps, SelectState
267
269
  isCreateSelectOptionObject: false,
268
270
  shouldResetOnSelect: true,
269
271
  isFlipEnabled: true,
270
- removeFindDomNode: false
272
+ removeFindDomNode: false,
273
+ zIndex: 9999
271
274
  };
272
275
 
273
276
  state: SelectState = {
@@ -1034,6 +1037,7 @@ export class Select extends React.Component<SelectProps & OUIAProps, SelectState
1034
1037
  shouldResetOnSelect,
1035
1038
  isFlipEnabled,
1036
1039
  removeFindDomNode,
1040
+ zIndex,
1037
1041
  ...props
1038
1042
  } = this.props;
1039
1043
  const {
@@ -1478,6 +1482,7 @@ export class Select extends React.Component<SelectProps & OUIAProps, SelectState
1478
1482
  appendTo={menuAppendTo === 'parent' ? getParentElement() : menuAppendTo}
1479
1483
  isVisible={isOpen}
1480
1484
  removeFindDomNode={removeFindDomNode}
1485
+ zIndex={zIndex}
1481
1486
  />
1482
1487
  )}
1483
1488
  </SelectContext.Provider>
@@ -21,6 +21,8 @@ export interface OverflowTabProps extends React.HTMLProps<HTMLLIElement> {
21
21
  toggleAriaLabel?: string;
22
22
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
23
23
  removeFindDomNode?: boolean;
24
+ /** z-index of the overflow tab */
25
+ zIndex?: number;
24
26
  }
25
27
 
26
28
  export const OverflowTab: React.FunctionComponent<OverflowTabProps> = ({
@@ -30,6 +32,7 @@ export const OverflowTab: React.FunctionComponent<OverflowTabProps> = ({
30
32
  defaultTitleText = 'More',
31
33
  toggleAriaLabel,
32
34
  removeFindDomNode = false,
35
+ zIndex = 9999,
33
36
  ...props
34
37
  }: OverflowTabProps) => {
35
38
  const menuRef = React.useRef<HTMLDivElement>();
@@ -139,6 +142,7 @@ export const OverflowTab: React.FunctionComponent<OverflowTabProps> = ({
139
142
  popperMatchesTriggerWidth={false}
140
143
  appendTo={overflowLIRef.current}
141
144
  removeFindDomNode={removeFindDomNode}
145
+ zIndex={zIndex}
142
146
  />
143
147
  );
144
148
  };
@@ -73,6 +73,8 @@ export interface TimePickerProps
73
73
  setIsOpen?: (isOpen?: boolean) => void;
74
74
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
75
75
  removeFindDomNode?: boolean;
76
+ /** z-index of the time picker */
77
+ zIndex?: number;
76
78
  }
77
79
 
78
80
  interface TimePickerState {
@@ -111,7 +113,8 @@ export class TimePicker extends React.Component<TimePickerProps, TimePickerState
111
113
  maxTime: '',
112
114
  isOpen: false,
113
115
  setIsOpen: () => {},
114
- removeFindDomNode: false
116
+ removeFindDomNode: false,
117
+ zIndex: 9999
115
118
  };
116
119
 
117
120
  constructor(props: TimePickerProps) {
@@ -461,6 +464,7 @@ export class TimePicker extends React.Component<TimePickerProps, TimePickerState
461
464
  includeSeconds,
462
465
  /* eslint-enable @typescript-eslint/no-unused-vars */
463
466
  removeFindDomNode,
467
+ zIndex,
464
468
  ...props
465
469
  } = this.props;
466
470
  const { timeState, isTimeOptionsOpen, isInvalid, minTimeState, maxTimeState } = this.state;
@@ -535,6 +539,7 @@ export class TimePicker extends React.Component<TimePickerProps, TimePickerState
535
539
  popper={menuContainer}
536
540
  isVisible={isTimeOptionsOpen}
537
541
  removeFindDomNode={removeFindDomNode}
542
+ zIndex={zIndex}
538
543
  />
539
544
  </div>
540
545
  </div>
@@ -30,6 +30,8 @@ export interface DropdownProps extends MenuProps, OUIAProps {
30
30
  ouiaId?: number | string;
31
31
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
32
32
  ouiaSafe?: boolean;
33
+ /** z-index of the dropdown menu */
34
+ zIndex?: number;
33
35
  }
34
36
 
35
37
  const DropdownBase: React.FunctionComponent<DropdownProps> = ({
@@ -45,6 +47,7 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
45
47
  innerRef,
46
48
  ouiaId,
47
49
  ouiaSafe = true,
50
+ zIndex = 9999,
48
51
  ...props
49
52
  }: DropdownProps) => {
50
53
  const localMenuRef = React.useRef<HTMLDivElement>();
@@ -119,6 +122,7 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
119
122
  popper={menu}
120
123
  appendTo={containerRef.current || undefined}
121
124
  isVisible={isOpen}
125
+ zIndex={zIndex}
122
126
  />
123
127
  </div>
124
128
  );
@@ -26,6 +26,8 @@ export interface SelectProps extends MenuProps, OUIAProps {
26
26
  minWidth?: string;
27
27
  /** @hide Forwarded ref */
28
28
  innerRef?: React.Ref<HTMLDivElement>;
29
+ /** z-index of the select menu */
30
+ zIndex?: number;
29
31
  }
30
32
 
31
33
  const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
@@ -39,6 +41,7 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
39
41
  isPlain,
40
42
  minWidth,
41
43
  innerRef,
44
+ zIndex = 9999,
42
45
  ...props
43
46
  }: SelectProps & OUIAProps) => {
44
47
  const localMenuRef = React.useRef<HTMLDivElement>();
@@ -117,6 +120,7 @@ const SelectBase: React.FunctionComponent<SelectProps & OUIAProps> = ({
117
120
  popper={menu}
118
121
  appendTo={containerRef.current || undefined}
119
122
  isVisible={isOpen}
123
+ zIndex={zIndex}
120
124
  />
121
125
  </div>
122
126
  );