@patternfly/react-core 4.227.2 → 4.227.5

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 (52) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/esm/components/DataList/DataList.d.ts +0 -2
  3. package/dist/esm/components/DataList/DataList.d.ts.map +1 -1
  4. package/dist/esm/components/DataList/DataList.js.map +1 -1
  5. package/dist/esm/components/DataList/DataListItem.d.ts.map +1 -1
  6. package/dist/esm/components/DataList/DataListItem.js +1 -2
  7. package/dist/esm/components/DataList/DataListItem.js.map +1 -1
  8. package/dist/js/components/DataList/DataList.d.ts +0 -2
  9. package/dist/js/components/DataList/DataList.d.ts.map +1 -1
  10. package/dist/js/components/DataList/DataList.js.map +1 -1
  11. package/dist/js/components/DataList/DataListItem.d.ts.map +1 -1
  12. package/dist/js/components/DataList/DataListItem.js +1 -2
  13. package/dist/js/components/DataList/DataListItem.js.map +1 -1
  14. package/dist/umd/react-core.js +1 -2
  15. package/dist/umd/react-core.min.css +3339 -3339
  16. package/dist/umd/react-core.min.js +1 -1
  17. package/package.json +5 -5
  18. package/src/components/DataList/DataList.tsx +0 -2
  19. package/src/components/DataList/DataListItem.tsx +1 -3
  20. package/src/components/DataList/__tests__/DataList.test.tsx +14 -32
  21. package/src/components/DataList/examples/DataListSelectableRows.tsx +1 -1
  22. package/src/components/Menu/examples/Menu.md +19 -1290
  23. package/src/components/Menu/examples/MenuBasic.tsx +51 -0
  24. package/src/components/Menu/examples/MenuFilteringWithTextInput.tsx +52 -0
  25. package/src/components/Menu/examples/MenuOptionMultiSelect.tsx +30 -0
  26. package/src/components/Menu/examples/MenuOptionSingleSelect.tsx +27 -0
  27. package/src/components/Menu/examples/MenuScrollable.tsx +48 -0
  28. package/src/components/Menu/examples/MenuScrollableCustomMenuHeight.tsx +48 -0
  29. package/src/components/Menu/examples/MenuWithActions.tsx +75 -0
  30. package/src/components/Menu/examples/MenuWithCheckbox.tsx +2 -2
  31. package/src/components/Menu/examples/MenuWithDescription.tsx +35 -0
  32. package/src/components/Menu/examples/{MenuDrilldown.tsx → MenuWithDrilldown.tsx} +1 -1
  33. package/src/components/Menu/examples/MenuWithDrilldownBreadcrumbs.tsx +331 -0
  34. package/src/components/Menu/examples/{MenuDrilldownInitialState.tsx → MenuWithDrilldownInitialState.tsx} +0 -0
  35. package/src/components/Menu/examples/{MenuDrilldownSubmenuFunctions.tsx → MenuWithDrilldownSubmenuFunctions.tsx} +1 -1
  36. package/src/components/Menu/examples/MenuWithFavorites.tsx +104 -0
  37. package/src/components/Menu/examples/MenuWithFooter.tsx +40 -0
  38. package/src/components/Menu/examples/MenuWithIcons.tsx +33 -0
  39. package/src/components/Menu/examples/MenuWithLinks.tsx +30 -0
  40. package/src/components/Menu/examples/MenuWithSeparators.tsx +26 -0
  41. package/src/components/Menu/examples/MenuWithTitledGroups.tsx +46 -0
  42. package/src/components/Menu/examples/MenuWithViewMore.tsx +118 -0
  43. package/src/components/Radio/examples/Radio.md +12 -68
  44. package/src/components/Radio/examples/RadioControlled.tsx +21 -0
  45. package/src/components/Radio/examples/RadioDisabled.tsx +15 -0
  46. package/src/components/Radio/examples/RadioLabelWraps.tsx +6 -0
  47. package/src/components/Radio/examples/RadioReversed.tsx +6 -0
  48. package/src/components/Radio/examples/RadioStandaloneInput.tsx +6 -0
  49. package/src/components/Radio/examples/RadioUncontrolled.tsx +6 -0
  50. package/src/components/Radio/examples/RadioWithBody.tsx +6 -0
  51. package/src/components/Radio/examples/RadioWithDescription.tsx +11 -0
  52. package/src/components/Radio/examples/RadioWithDescriptionAndBody.tsx +12 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "4.227.2",
3
+ "version": "4.227.5",
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",
@@ -34,9 +34,9 @@
34
34
  "generate": "node scripts/copyStyles.js"
35
35
  },
36
36
  "dependencies": {
37
- "@patternfly/react-icons": "^4.78.2",
38
- "@patternfly/react-styles": "^4.77.2",
39
- "@patternfly/react-tokens": "^4.79.2",
37
+ "@patternfly/react-icons": "^4.78.5",
38
+ "@patternfly/react-styles": "^4.77.5",
39
+ "@patternfly/react-tokens": "^4.79.5",
40
40
  "focus-trap": "6.9.2",
41
41
  "react-dropzone": "9.0.0",
42
42
  "tippy.js": "5.1.2",
@@ -60,5 +60,5 @@
60
60
  "react": "^16.8.0 || ^17.0.0",
61
61
  "react-dom": "^16.8.0 || ^17.0.0"
62
62
  },
63
- "gitHead": "cf751b0d9ad160595567d4d13942ba2d06813f29"
63
+ "gitHead": "da70962a8c1722d6564f4a679297985ea9567fda"
64
64
  }
@@ -21,8 +21,6 @@ export enum DataListWrapModifier {
21
21
  }
22
22
 
23
23
  export interface SelectableRowObject {
24
- /** Determines if only one of the selectable rows should be selectable at a time */
25
- type: 'multiple' | 'single';
26
24
  /** Callback that executes when the screen reader accessible element receives a change event */
27
25
  onChange: (id: string, event: React.FormEvent<HTMLInputElement>) => void;
28
26
  }
@@ -115,8 +115,6 @@ export class DataListItem extends React.Component<DataListItemProps> {
115
115
  ? { 'aria-label': selectableInputAriaLabel }
116
116
  : { 'aria-labelledby': ariaLabelledBy };
117
117
 
118
- const selectableInputType = selectableRow?.type === 'multiple' ? 'checkbox' : 'radio';
119
-
120
118
  return (
121
119
  <li
122
120
  id={id}
@@ -136,7 +134,7 @@ export class DataListItem extends React.Component<DataListItemProps> {
136
134
  {selectableRow && (
137
135
  <input
138
136
  className="pf-screen-reader"
139
- type={selectableInputType}
137
+ type="radio"
140
138
  checked={isSelected}
141
139
  onChange={event => selectableRow.onChange(id, event)}
142
140
  tabIndex={-1}
@@ -50,7 +50,7 @@ describe('DataList', () => {
50
50
 
51
51
  test('List renders with a hidden input to improve a11y when selectableRow is passed', () => {
52
52
  render(
53
- <DataList aria-label="this is a simple list" selectableRow={{ type: 'multiple', onChange: () => {} }}>
53
+ <DataList aria-label="this is a simple list" selectableRow={{ onChange: () => {} }}>
54
54
  <DataListItem>
55
55
  <DataListItemRow aria-labelledby="test-id">
56
56
  <p id="test-id">Test</p>
@@ -59,7 +59,7 @@ describe('DataList', () => {
59
59
  </DataList>
60
60
  );
61
61
 
62
- const selectableInput = screen.getByRole('checkbox', { hidden: true });
62
+ const selectableInput = screen.getByRole('radio', { hidden: true });
63
63
 
64
64
  expect(selectableInput).toBeInTheDocument();
65
65
  });
@@ -75,35 +75,17 @@ describe('DataList', () => {
75
75
  </DataList>
76
76
  );
77
77
 
78
- const selectableInput = screen.queryByRole('checkbox', { hidden: true });
78
+ const selectableInput = screen.queryByRole('radio', { hidden: true });
79
79
 
80
80
  expect(selectableInput).not.toBeInTheDocument();
81
81
  });
82
82
 
83
- test('List hidden input renders as a radio when selectableRow.type is radio', () => {
84
- render(
85
- <DataList aria-label="this is a simple list" selectableRow={{ type: 'single', onChange: () => {} }}>
86
- <DataListItem>
87
- <DataListItemRow aria-labelledby="test-id">
88
- <p id="test-id">Test</p>
89
- </DataListItemRow>
90
- </DataListItem>
91
- </DataList>
92
- );
93
-
94
- const selectableRadioInput = screen.getByRole('radio', { hidden: true });
95
- const selectableCheckboxInput = screen.queryByRole('checkbox', { hidden: true });
96
-
97
- expect(selectableRadioInput).toBeInTheDocument();
98
- expect(selectableCheckboxInput).not.toBeInTheDocument();
99
- });
100
-
101
83
  test('List calls selectableRow.onChange when the selectable input changes', () => {
102
84
  const mock = jest.fn();
103
85
 
104
86
  render(
105
- <DataList aria-label="this is a simple list" selectableRow={{ type: 'multiple', onChange: mock }}>
106
- <DataListItem>
87
+ <DataList aria-label="this is a simple list" selectableRow={{ onChange: mock }} selectedDataListItemId=''>
88
+ <DataListItem id='item-test-id'>
107
89
  <DataListItemRow aria-labelledby="test-id">
108
90
  <p id="test-id">Test</p>
109
91
  </DataListItemRow>
@@ -111,7 +93,7 @@ describe('DataList', () => {
111
93
  </DataList>
112
94
  );
113
95
 
114
- const selectableInput = screen.getByRole('checkbox', { hidden: true });
96
+ const selectableInput = screen.getByRole('radio', { hidden: true });
115
97
  userEvent.click(selectableInput);
116
98
 
117
99
  expect(mock).toHaveBeenCalled();
@@ -121,8 +103,8 @@ describe('DataList', () => {
121
103
  const mock = jest.fn();
122
104
 
123
105
  render(
124
- <DataList aria-label="this is a simple list" selectableRow={{ type: 'multiple', onChange: mock }}>
125
- <DataListItem>
106
+ <DataList aria-label="this is a simple list" selectableRow={{ onChange: mock }} selectedDataListItemId=''>
107
+ <DataListItem id='item-test-id'>
126
108
  <DataListItemRow aria-labelledby="test-id">
127
109
  <p id="test-id">Test</p>
128
110
  </DataListItemRow>
@@ -135,7 +117,7 @@ describe('DataList', () => {
135
117
 
136
118
  test('Item applies selectableInputAriaLabel to the hidden input', () => {
137
119
  render(
138
- <DataList aria-label="this is a simple list" selectableRow={{ type: 'multiple', onChange: () => {} }}>
120
+ <DataList aria-label="this is a simple list" selectableRow={{ onChange: () => {} }}>
139
121
  <DataListItem selectableInputAriaLabel="Data list item label test">
140
122
  <DataListItemRow aria-labelledby="test-id">
141
123
  <p id="test-id">Test</p>
@@ -144,35 +126,35 @@ describe('DataList', () => {
144
126
  </DataList>
145
127
  );
146
128
 
147
- const selectableInput = screen.getByRole('checkbox', { hidden: true });
129
+ const selectableInput = screen.getByRole('radio', { hidden: true });
148
130
 
149
131
  expect(selectableInput).toHaveAccessibleName('Data list item label test');
150
132
  });
151
133
 
152
134
  test('Item defaults to labelling its input using its aria-labelledby prop', () => {
153
135
  render(
154
- <DataList aria-label="this is a simple list" selectableRow={{ type: 'multiple', onChange: () => {} }}>
136
+ <DataList aria-label="this is a simple list" selectableRow={{ onChange: () => {} }}>
155
137
  <DataListItem aria-labelledby="test-id">
156
138
  <p id="test-id">Test cell content</p>
157
139
  </DataListItem>
158
140
  </DataList>
159
141
  );
160
142
 
161
- const selectableInput = screen.getByRole('checkbox', { hidden: true });
143
+ const selectableInput = screen.getByRole('radio', { hidden: true });
162
144
 
163
145
  expect(selectableInput).toHaveAccessibleName('Test cell content');
164
146
  });
165
147
 
166
148
  test('Item prioritizes selectableInputAriaLabel over aria-labelledby prop', () => {
167
149
  render(
168
- <DataList aria-label="this is a simple list" selectableRow={{ type: 'multiple', onChange: () => {} }}>
150
+ <DataList aria-label="this is a simple list" selectableRow={{ onChange: () => {} }}>
169
151
  <DataListItem aria-labelledby="test-id" selectableInputAriaLabel="Data list item label test">
170
152
  <p id="test-id">Test cell content</p>
171
153
  </DataListItem>
172
154
  </DataList>
173
155
  );
174
156
 
175
- const selectableInput = screen.getByRole('checkbox', { hidden: true });
157
+ const selectableInput = screen.getByRole('radio', { hidden: true });
176
158
 
177
159
  expect(selectableInput).toHaveAccessibleName('Data list item label test');
178
160
  });
@@ -47,7 +47,7 @@ export const DataListSelectableRows: React.FunctionComponent = () => {
47
47
  aria-label="selectable data list example"
48
48
  selectedDataListItemId={selectedDataListItemId}
49
49
  onSelectDataListItem={onSelectDataListItem}
50
- selectableRow={{ type: 'single', onChange: handleInputChange }}
50
+ selectableRow={{ onChange: handleInputChange }}
51
51
  >
52
52
  <DataListItem aria-labelledby="selectable-action-item1" id="item1">
53
53
  <DataListItemRow>