@patternfly/react-core 6.5.0-prerelease.2 → 6.5.0-prerelease.4

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 (194) hide show
  1. package/CHANGELOG.md +17 -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/Compass/package.json +1 -1
  23. package/dist/dynamic/components/Content/package.json +1 -1
  24. package/dist/dynamic/components/DataList/package.json +1 -1
  25. package/dist/dynamic/components/DatePicker/package.json +1 -1
  26. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  27. package/dist/dynamic/components/Divider/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/TextArea/package.json +1 -1
  72. package/dist/dynamic/components/TextInput/package.json +1 -1
  73. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  74. package/dist/dynamic/components/TimePicker/package.json +1 -1
  75. package/dist/dynamic/components/Timestamp/package.json +1 -1
  76. package/dist/dynamic/components/Title/package.json +1 -1
  77. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  78. package/dist/dynamic/components/Toolbar/package.json +1 -1
  79. package/dist/dynamic/components/Tooltip/package.json +1 -1
  80. package/dist/dynamic/components/TreeView/package.json +1 -1
  81. package/dist/dynamic/components/Truncate/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  83. package/dist/dynamic/components/Wizard/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/package.json +1 -1
  91. package/dist/dynamic/helpers/AnimationsProvider/AnimationsProvider/package.json +1 -1
  92. package/dist/dynamic/helpers/AnimationsProvider/package.json +1 -1
  93. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  94. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  95. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  96. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  97. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  98. package/dist/dynamic/helpers/constants/package.json +1 -1
  99. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  100. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  102. package/dist/dynamic/helpers/package.json +1 -1
  103. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  104. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  105. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  106. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  107. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  108. package/dist/dynamic/helpers/util/package.json +1 -1
  109. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  110. package/dist/dynamic/layouts/Flex/package.json +1 -1
  111. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  112. package/dist/dynamic/layouts/Grid/package.json +1 -1
  113. package/dist/dynamic/layouts/Level/package.json +1 -1
  114. package/dist/dynamic/layouts/Split/package.json +1 -1
  115. package/dist/dynamic/layouts/Stack/package.json +1 -1
  116. package/dist/dynamic/styles/package.json +1 -1
  117. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts +9 -2
  118. package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  119. package/dist/esm/components/ExpandableSection/ExpandableSection.js +5 -3
  120. package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
  121. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts +5 -0
  122. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  123. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js +3 -2
  124. package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  125. package/dist/esm/components/Page/Page.d.ts.map +1 -1
  126. package/dist/esm/components/Page/Page.js +1 -0
  127. package/dist/esm/components/Page/Page.js.map +1 -1
  128. package/dist/esm/components/Page/PageContext.d.ts +1 -0
  129. package/dist/esm/components/Page/PageContext.d.ts.map +1 -1
  130. package/dist/esm/components/Page/PageContext.js +1 -0
  131. package/dist/esm/components/Page/PageContext.js.map +1 -1
  132. package/dist/esm/components/Page/PageSidebar.js +2 -2
  133. package/dist/esm/components/Page/PageSidebar.js.map +1 -1
  134. package/dist/esm/components/Progress/Progress.d.ts +2 -0
  135. package/dist/esm/components/Progress/Progress.d.ts.map +1 -1
  136. package/dist/esm/components/Progress/Progress.js +2 -2
  137. package/dist/esm/components/Progress/Progress.js.map +1 -1
  138. package/dist/esm/components/Progress/ProgressContainer.d.ts +2 -0
  139. package/dist/esm/components/Progress/ProgressContainer.d.ts.map +1 -1
  140. package/dist/esm/components/Progress/ProgressContainer.js +2 -2
  141. package/dist/esm/components/Progress/ProgressContainer.js.map +1 -1
  142. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +9 -2
  143. package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
  144. package/dist/js/components/ExpandableSection/ExpandableSection.js +5 -3
  145. package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
  146. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts +5 -0
  147. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.d.ts.map +1 -1
  148. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js +3 -2
  149. package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
  150. package/dist/js/components/Page/Page.d.ts.map +1 -1
  151. package/dist/js/components/Page/Page.js +1 -0
  152. package/dist/js/components/Page/Page.js.map +1 -1
  153. package/dist/js/components/Page/PageContext.d.ts +1 -0
  154. package/dist/js/components/Page/PageContext.d.ts.map +1 -1
  155. package/dist/js/components/Page/PageContext.js +1 -0
  156. package/dist/js/components/Page/PageContext.js.map +1 -1
  157. package/dist/js/components/Page/PageSidebar.js +2 -2
  158. package/dist/js/components/Page/PageSidebar.js.map +1 -1
  159. package/dist/js/components/Progress/Progress.d.ts +2 -0
  160. package/dist/js/components/Progress/Progress.d.ts.map +1 -1
  161. package/dist/js/components/Progress/Progress.js +2 -2
  162. package/dist/js/components/Progress/Progress.js.map +1 -1
  163. package/dist/js/components/Progress/ProgressContainer.d.ts +2 -0
  164. package/dist/js/components/Progress/ProgressContainer.d.ts.map +1 -1
  165. package/dist/js/components/Progress/ProgressContainer.js +2 -2
  166. package/dist/js/components/Progress/ProgressContainer.js.map +1 -1
  167. package/dist/umd/assets/{output-DxVGusJA.css → output-TagVdL0S.css} +15766 -15766
  168. package/dist/umd/react-core.min.js +3 -3
  169. package/helpers/package.json +1 -1
  170. package/layouts/package.json +1 -1
  171. package/next/package.json +1 -1
  172. package/package.json +2 -2
  173. package/src/components/ExpandableSection/ExpandableSection.tsx +17 -5
  174. package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +48 -38
  175. package/src/components/ExpandableSection/__tests__/ExpandableSection.test.tsx +63 -0
  176. package/src/components/ExpandableSection/__tests__/ExpandableSectionToggle.test.tsx +28 -0
  177. package/src/components/ExpandableSection/examples/ExpandableSection.md +16 -0
  178. package/src/components/ExpandableSection/examples/ExpandableSectionCustomToggle.tsx +31 -16
  179. package/src/components/ExpandableSection/examples/ExpandableSectionUncontrolledDynamicToggleFunction.tsx +13 -0
  180. package/src/components/ExpandableSection/examples/ExpandableSectionWithHeading.tsx +89 -0
  181. package/src/components/Page/Page.tsx +1 -0
  182. package/src/components/Page/PageContext.tsx +2 -0
  183. package/src/components/Page/PageSidebar.tsx +2 -2
  184. package/src/components/Page/__tests__/Generated/__snapshots__/PageSidebar.test.tsx.snap +1 -1
  185. package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +12 -12
  186. package/src/components/Progress/Progress.tsx +4 -0
  187. package/src/components/Progress/ProgressContainer.tsx +5 -2
  188. package/src/components/Progress/__tests__/Generated/ProgressContainer.test.tsx +1 -0
  189. package/src/components/Progress/__tests__/Progress.test.tsx +32 -0
  190. package/src/components/Progress/examples/Progress.md +2 -14
  191. package/src/components/Progress/examples/ProgressInteractiveFailure.tsx +55 -0
  192. package/src/components/Progress/examples/ProgressFailureWithoutMeasure.tsx +0 -5
  193. package/src/components/Progress/examples/ProgressInsideSuccess.tsx +0 -10
  194. package/src/components/Progress/examples/ProgressOutsideFailure.tsx +0 -10
@@ -48,6 +48,8 @@ export interface ProgressProps extends Omit<React.HTMLProps<HTMLDivElement>, 'si
48
48
  * We recommend the helper text component as it was designed for this purpose.
49
49
  */
50
50
  helperText?: React.ReactNode;
51
+ /** Flag indicating whether the status icon should be hidden, helpful when space is limited (such as within table cells). When set to true, you must ensure the context of the status is provided in another way, such as via the progress measure. */
52
+ hideStatusIcon?: boolean;
51
53
  }
52
54
 
53
55
  class Progress extends Component<ProgressProps> {
@@ -94,6 +96,7 @@ class Progress extends Component<ProgressProps> {
94
96
  'aria-labelledby': ariaLabelledBy,
95
97
  'aria-describedby': ariaDescribedBy,
96
98
  helperText,
99
+ hideStatusIcon,
97
100
  ...props
98
101
  } = this.props;
99
102
 
@@ -151,6 +154,7 @@ class Progress extends Component<ProgressProps> {
151
154
  isTitleTruncated={isTitleTruncated}
152
155
  tooltipPosition={tooltipPosition}
153
156
  helperText={helperText}
157
+ hideStatusIcon={hideStatusIcon}
154
158
  />
155
159
  </div>
156
160
  );
@@ -58,6 +58,8 @@ export interface ProgressContainerProps extends Omit<React.HTMLProps<HTMLDivElem
58
58
  * We recommend the helper text component as it was designed for this purpose.
59
59
  */
60
60
  helperText?: React.ReactNode;
61
+ /** Hide the status icon, helpful when space is limited (such as within table cells) */
62
+ hideStatusIcon?: boolean;
61
63
  }
62
64
 
63
65
  const variantToIcon = {
@@ -76,9 +78,10 @@ export const ProgressContainer: React.FunctionComponent<ProgressContainerProps>
76
78
  measureLocation = ProgressMeasureLocation.top,
77
79
  isTitleTruncated = false,
78
80
  tooltipPosition,
79
- helperText
81
+ helperText,
82
+ hideStatusIcon = false
80
83
  }: ProgressContainerProps) => {
81
- const StatusIcon = variantToIcon.hasOwnProperty(variant) && variantToIcon[variant];
84
+ const StatusIcon = !hideStatusIcon && variantToIcon.hasOwnProperty(variant) && variantToIcon[variant];
82
85
  const [tooltip, setTooltip] = useState('');
83
86
  const titleRef = useRef(null);
84
87
  const updateTooltip = (event: any) => {
@@ -15,6 +15,7 @@ it('ProgressContainer should match snapshot (auto-generated)', () => {
15
15
  variant={'danger'}
16
16
  measureLocation={'outside'}
17
17
  value={42}
18
+ hideStatusIcon={false}
18
19
  />
19
20
  );
20
21
  expect(asFragment()).toMatchSnapshot();
@@ -108,3 +108,35 @@ test('Renders passed helper text', () => {
108
108
 
109
109
  expect(screen.getByText('Test helper text')).toBeVisible();
110
110
  });
111
+
112
+ describe('hideStatusIcon prop behavior', () => {
113
+ test('shows status icon by default when hideStatusIcon is not set', () => {
114
+ render(<Progress id="default-status-icon-test" value={100} variant="success" />);
115
+
116
+ expect(screen.getByRole('img', { hidden: true })).toBeInTheDocument();
117
+ });
118
+
119
+ test('hides status icon when hideStatusIcon flag is set with success variant', () => {
120
+ render(<Progress id="hide-icon-success" value={100} variant="success" hideStatusIcon />);
121
+
122
+ expect(screen.queryByRole('img', { hidden: true })).not.toBeInTheDocument();
123
+ });
124
+
125
+ test('hides status icon when hideStatusIcon flag is set with danger variant', () => {
126
+ render(<Progress id="hide-icon-danger" value={50} variant="danger" hideStatusIcon />);
127
+
128
+ expect(screen.queryByRole('img', { hidden: true })).not.toBeInTheDocument();
129
+ });
130
+
131
+ test('hides status icon when hideStatusIcon flag is set with warning variant', () => {
132
+ render(<Progress id="hide-icon-warning" value={75} variant="warning" hideStatusIcon />);
133
+
134
+ expect(screen.queryByRole('img', { hidden: true })).not.toBeInTheDocument();
135
+ });
136
+
137
+ test('shows status icon when hideStatusIcon is explicitly false', () => {
138
+ render(<Progress id="show-icon-success" value={100} variant="success" hideStatusIcon={false} />);
139
+
140
+ expect(screen.getByRole('img', { hidden: true })).toBeInTheDocument();
141
+ });
142
+ });
@@ -107,20 +107,8 @@ When conveying status, you should ensure:
107
107
 
108
108
  ```
109
109
 
110
- ### Inside success
110
+ ### Interactive status icon and measure location
111
111
 
112
- ```ts file="./ProgressInsideSuccess.tsx"
113
-
114
- ```
115
-
116
- ### Outside failure
117
-
118
- ```ts file="./ProgressOutsideFailure.tsx"
119
-
120
- ```
121
-
122
- ### Failure without measure
123
-
124
- ```ts file="./ProgressFailureWithoutMeasure.tsx"
112
+ ```ts file="./ProgressInteractiveFailure.tsx"
125
113
 
126
114
  ```
@@ -0,0 +1,55 @@
1
+ import { useState } from 'react';
2
+ import {
3
+ Progress,
4
+ ProgressMeasureLocation,
5
+ ProgressVariant,
6
+ Radio,
7
+ Checkbox,
8
+ Form,
9
+ FormGroup
10
+ } from '@patternfly/react-core';
11
+
12
+ export const ProgressInteractiveFailure: React.FunctionComponent = () => {
13
+ const [measureLocation, setMeasureLocation] = useState<ProgressMeasureLocation>(ProgressMeasureLocation.inside);
14
+ const [hideStatusIcon, setHideStatusIcon] = useState<boolean>(false);
15
+
16
+ const measureLocationOptions = [
17
+ { value: ProgressMeasureLocation.inside, label: 'Inside' },
18
+ { value: ProgressMeasureLocation.outside, label: 'Outside' },
19
+ { value: ProgressMeasureLocation.top, label: 'Top' },
20
+ { value: ProgressMeasureLocation.none, label: 'None' }
21
+ ];
22
+
23
+ return (
24
+ <Form>
25
+ <FormGroup fieldId="measure-location" label="Measure location">
26
+ {measureLocationOptions.map((option) => (
27
+ <Radio
28
+ key={option.value}
29
+ id={`measure-location-${option.value}`}
30
+ name="measure-location"
31
+ label={option.label}
32
+ value={option.value}
33
+ isChecked={measureLocation === option.value}
34
+ onChange={() => setMeasureLocation(option.value)}
35
+ />
36
+ ))}
37
+ </FormGroup>
38
+ <FormGroup fieldId="hide-status-icon">
39
+ <Checkbox
40
+ id="hide-status-icon"
41
+ label="Hide status icon"
42
+ isChecked={hideStatusIcon}
43
+ onChange={(_, checked) => setHideStatusIcon(checked)}
44
+ />
45
+ </FormGroup>
46
+ <Progress
47
+ value={33}
48
+ title="Title"
49
+ measureLocation={measureLocation}
50
+ variant={ProgressVariant.danger}
51
+ hideStatusIcon={hideStatusIcon}
52
+ />
53
+ </Form>
54
+ );
55
+ };
@@ -1,5 +0,0 @@
1
- import { Progress, ProgressMeasureLocation, ProgressVariant } from '@patternfly/react-core';
2
-
3
- export const ProgressFailureWithoutMeasure: React.FunctionComponent = () => (
4
- <Progress value={33} title="Title" measureLocation={ProgressMeasureLocation.none} variant={ProgressVariant.danger} />
5
- );
@@ -1,10 +0,0 @@
1
- import { Progress, ProgressMeasureLocation, ProgressVariant } from '@patternfly/react-core';
2
-
3
- export const ProgressInsideSuccess: React.FunctionComponent = () => (
4
- <Progress
5
- value={100}
6
- title="Title"
7
- measureLocation={ProgressMeasureLocation.inside}
8
- variant={ProgressVariant.success}
9
- />
10
- );
@@ -1,10 +0,0 @@
1
- import { Progress, ProgressMeasureLocation, ProgressVariant } from '@patternfly/react-core';
2
-
3
- export const ProgressOutsideFailure: React.FunctionComponent = () => (
4
- <Progress
5
- value={33}
6
- title="Title"
7
- measureLocation={ProgressMeasureLocation.outside}
8
- variant={ProgressVariant.danger}
9
- />
10
- );