@patternfly/react-core 4.198.14 → 4.198.15

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 +8 -0
  2. package/dist/esm/components/Form/FormFieldGroup.d.ts +1 -1
  3. package/dist/esm/components/Form/FormFieldGroupExpandable.d.ts +2 -2
  4. package/dist/esm/components/Form/FormFieldGroupHeader.d.ts +3 -1
  5. package/dist/esm/components/Form/FormFieldGroupHeader.d.ts.map +1 -1
  6. package/dist/esm/components/Form/FormFieldGroupHeader.js.map +1 -1
  7. package/dist/esm/components/Form/InternalFormFieldGroup.d.ts +2 -2
  8. package/dist/esm/components/Tabs/Tab.d.ts +3 -1
  9. package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
  10. package/dist/esm/components/Tabs/Tab.js +4 -3
  11. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  12. package/dist/esm/components/Tabs/TabButton.d.ts +2 -0
  13. package/dist/esm/components/Tabs/TabButton.d.ts.map +1 -1
  14. package/dist/esm/components/Tabs/TabButton.js +2 -2
  15. package/dist/esm/components/Tabs/TabButton.js.map +1 -1
  16. package/dist/esm/components/Tile/Tile.d.ts.map +1 -1
  17. package/dist/esm/components/Tile/Tile.js +1 -1
  18. package/dist/esm/components/Tile/Tile.js.map +1 -1
  19. package/dist/js/components/Form/FormFieldGroup.d.ts +1 -1
  20. package/dist/js/components/Form/FormFieldGroupExpandable.d.ts +2 -2
  21. package/dist/js/components/Form/FormFieldGroupHeader.d.ts +3 -1
  22. package/dist/js/components/Form/FormFieldGroupHeader.d.ts.map +1 -1
  23. package/dist/js/components/Form/FormFieldGroupHeader.js.map +1 -1
  24. package/dist/js/components/Form/InternalFormFieldGroup.d.ts +2 -2
  25. package/dist/js/components/Tabs/Tab.d.ts +3 -1
  26. package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
  27. package/dist/js/components/Tabs/Tab.js +4 -3
  28. package/dist/js/components/Tabs/Tab.js.map +1 -1
  29. package/dist/js/components/Tabs/TabButton.d.ts +2 -0
  30. package/dist/js/components/Tabs/TabButton.d.ts.map +1 -1
  31. package/dist/js/components/Tabs/TabButton.js +2 -2
  32. package/dist/js/components/Tabs/TabButton.js.map +1 -1
  33. package/dist/js/components/Tile/Tile.d.ts.map +1 -1
  34. package/dist/js/components/Tile/Tile.js +1 -1
  35. package/dist/js/components/Tile/Tile.js.map +1 -1
  36. package/dist/umd/react-core.js +6 -6
  37. package/dist/umd/react-core.min.js +1 -1
  38. package/package.json +5 -5
  39. package/src/components/Form/FormFieldGroup.tsx +1 -1
  40. package/src/components/Form/FormFieldGroupExpandable.tsx +2 -2
  41. package/src/components/Form/FormFieldGroupHeader.tsx +5 -1
  42. package/src/components/Form/InternalFormFieldGroup.tsx +2 -2
  43. package/src/components/Form/__tests__/FormFieldGroup.test.tsx +1 -1
  44. package/src/components/Form/__tests__/__snapshots__/FormFieldGroup.test.tsx.snap +1 -1
  45. package/src/components/Form/examples/Form.md +1 -1
  46. package/src/components/Tabs/Tab.tsx +31 -24
  47. package/src/components/Tabs/TabButton.tsx +5 -1
  48. package/src/components/Tabs/examples/Tabs.md +527 -256
  49. package/src/components/Tile/Tile.tsx +3 -0
  50. package/src/components/Tile/__tests__/__snapshots__/Tile.test.tsx.snap +9 -0
  51. package/src/components/Tile/examples/Tile.md +41 -39
  52. package/src/demos/TileDemo.md +17 -35
@@ -33,6 +33,9 @@ export const Tile: React.FunctionComponent<TileProps> = ({
33
33
  ...props
34
34
  }: TileProps) => (
35
35
  <div
36
+ role="option"
37
+ aria-selected={isSelected}
38
+ {...(isDisabled && { 'aria-disabled': isDisabled })}
36
39
  className={css(
37
40
  styles.tile,
38
41
  isSelected && styles.modifiers.selected,
@@ -4,6 +4,7 @@ exports[`Tile basic 1`] = `
4
4
  <div>
5
5
  <div
6
6
  class="pf-c-tile"
7
+ role="option"
7
8
  tabindex="0"
8
9
  >
9
10
  <div
@@ -22,7 +23,9 @@ exports[`Tile basic 1`] = `
22
23
  exports[`Tile renders disabled 1`] = `
23
24
  <div>
24
25
  <div
26
+ aria-disabled="true"
25
27
  class="pf-c-tile pf-m-disabled"
28
+ role="option"
26
29
  tabindex="0"
27
30
  >
28
31
  <div
@@ -41,7 +44,9 @@ exports[`Tile renders disabled 1`] = `
41
44
  exports[`Tile renders selected 1`] = `
42
45
  <div>
43
46
  <div
47
+ aria-selected="true"
44
48
  class="pf-c-tile pf-m-selected"
49
+ role="option"
45
50
  tabindex="0"
46
51
  >
47
52
  <div
@@ -61,6 +66,7 @@ exports[`Tile renders with icon 1`] = `
61
66
  <div>
62
67
  <div
63
68
  class="pf-c-tile"
69
+ role="option"
64
70
  tabindex="0"
65
71
  >
66
72
  <div
@@ -97,6 +103,7 @@ exports[`Tile renders with stacked icon 1`] = `
97
103
  <div>
98
104
  <div
99
105
  class="pf-c-tile"
106
+ role="option"
100
107
  tabindex="0"
101
108
  >
102
109
  <div
@@ -133,6 +140,7 @@ exports[`Tile renders with stacked large icon 1`] = `
133
140
  <div>
134
141
  <div
135
142
  class="pf-c-tile pf-m-display-lg"
143
+ role="option"
136
144
  tabindex="0"
137
145
  >
138
146
  <div
@@ -169,6 +177,7 @@ exports[`Tile renders with subtext 1`] = `
169
177
  <div>
170
178
  <div
171
179
  class="pf-c-tile"
180
+ role="option"
172
181
  tabindex="0"
173
182
  >
174
183
  <div
@@ -9,7 +9,6 @@ beta: true
9
9
  import PlusIcon from '@patternfly/react-icons/dist/esm/icons/plus-icon';
10
10
  import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
11
11
 
12
-
13
12
  ## Examples
14
13
 
15
14
  Keyboard interaction patterns and a11y is implemented in the Tile demos, located in the [Demo section](/documentation/react/demos/tiledemo).
@@ -20,29 +19,30 @@ Keyboard interaction patterns and a11y is implemented in the Tile demos, located
20
19
  import React from 'react';
21
20
  import { Tile } from '@patternfly/react-core';
22
21
 
23
- <React.Fragment>
24
- <Tile title="Default" />
22
+ <div role="listbox" aria-label="Basic tiles">
23
+ <Tile title="Default" isSelected={false} />
25
24
  <Tile title="Selected" isSelected />
26
- <Tile title="Disabled" isDisabled />
27
- </React.Fragment>
25
+ <Tile title="Disabled" isDisabled isSelected={false} />
26
+ </div>;
28
27
  ```
29
28
 
30
-
31
29
  ### With subtext
32
30
 
33
31
  ```js
34
32
  import React from 'react';
35
33
  import { Tile } from '@patternfly/react-core';
36
34
 
37
- <React.Fragment>
38
- <Tile title="Default">Subtext goes here</Tile>{' '}
35
+ <div role="listbox" aria-label="Tiles with subtext">
36
+ <Tile title="Default" isSelected={false}>
37
+ Subtext goes here
38
+ </Tile>{' '}
39
39
  <Tile title="Selected" isSelected>
40
40
  Subtext goes here
41
41
  </Tile>{' '}
42
- <Tile title="Disabled" isDisabled>
42
+ <Tile title="Disabled" isDisabled isSelected={false}>
43
43
  Subtext goes here
44
44
  </Tile>
45
- </React.Fragment>
45
+ </div>;
46
46
  ```
47
47
 
48
48
  ### With icon
@@ -52,17 +52,17 @@ import React from 'react';
52
52
  import { Tile } from '@patternfly/react-core';
53
53
  import PlusIcon from '@patternfly/react-icons/dist/esm/icons/plus-icon';
54
54
 
55
- <React.Fragment>
56
- <Tile title="Default" icon={<PlusIcon />}>
55
+ <div role="listbox" aria-label="Tiles with icon">
56
+ <Tile title="Default" icon={<PlusIcon />} isSelected={false}>
57
57
  Subtext goes here
58
58
  </Tile>{' '}
59
59
  <Tile title="Selected" icon={<PlusIcon />} isSelected>
60
60
  Subtext goes here
61
61
  </Tile>{' '}
62
- <Tile title="Disabled" icon={<PlusIcon />} isDisabled>
62
+ <Tile title="Disabled" icon={<PlusIcon />} isDisabled isSelected={false}>
63
63
  Subtext goes here
64
64
  </Tile>
65
- </React.Fragment>
65
+ </div>;
66
66
  ```
67
67
 
68
68
  ### Stacked
@@ -72,17 +72,17 @@ import React from 'react';
72
72
  import { Tile } from '@patternfly/react-core';
73
73
  import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
74
74
 
75
- <React.Fragment>
76
- <Tile title="Default" icon={<BellIcon />} isStacked>
75
+ <div role="listbox" aria-label="Stacked tiles">
76
+ <Tile title="Default" icon={<BellIcon />} isStacked isSelected={false}>
77
77
  Subtext goes here
78
78
  </Tile>{' '}
79
79
  <Tile title="Selected" icon={<BellIcon />} isStacked isSelected>
80
80
  Subtext goes here
81
81
  </Tile>{' '}
82
- <Tile title="Disabled" icon={<BellIcon />} isStacked isDisabled>
82
+ <Tile title="Disabled" icon={<BellIcon />} isStacked isDisabled isSelected={false}>
83
83
  Subtext goes here
84
84
  </Tile>
85
- </React.Fragment>
85
+ </div>;
86
86
  ```
87
87
 
88
88
  ### Stacked with large icons
@@ -92,17 +92,17 @@ import React from 'react';
92
92
  import { Tile } from '@patternfly/react-core';
93
93
  import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
94
94
 
95
- <React.Fragment>
96
- <Tile title="Default" icon={<BellIcon />} isStacked isDisplayLarge>
95
+ <div role="listbox" aria-label="Stacked tiles with large icons">
96
+ <Tile title="Default" icon={<BellIcon />} isStacked isDisplayLarge isSelected={false}>
97
97
  Subtext goes here
98
98
  </Tile>{' '}
99
99
  <Tile title="Selected" icon={<BellIcon />} isStacked isDisplayLarge isSelected>
100
100
  Subtext goes here
101
101
  </Tile>{' '}
102
- <Tile title="Disabled" icon={<BellIcon />} isStacked isDisplayLarge isDisabled>
102
+ <Tile title="Disabled" icon={<BellIcon />} isStacked isDisplayLarge isDisabled isSelected={false}>
103
103
  Subtext goes here
104
104
  </Tile>
105
- </React.Fragment>
105
+ </div>;
106
106
  ```
107
107
 
108
108
  ### With extra content
@@ -112,22 +112,24 @@ import React from 'react';
112
112
  import { Tile, Flex } from '@patternfly/react-core';
113
113
  import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
114
114
 
115
- <Flex>
116
- <Flex flex={{ default: 'flex_1' }}>
117
- <Tile title="Default" icon={<BellIcon />} isStacked>
118
- This is really really long subtext that goes on for so long that it has to wrap to the next line. This is really
119
- really long subtext that goes on for so long that it has to wrap to the next line.
120
- </Tile>
121
- </Flex>
122
- <Flex flex={{ default: 'flex_1' }}>
123
- <Tile title="Selected" icon={<BellIcon />} isStacked>
124
- This is really really long subtext that goes on for so long that it has to wrap to the next line.
125
- </Tile>
126
- </Flex>
127
- <Flex flex={{ default: 'flex_1' }}>
128
- <Tile title="Disabled" icon={<BellIcon />} isStacked>
129
- Subtext goes here
130
- </Tile>
115
+ <div role="listbox" aria-label="Tiles with extra content">
116
+ <Flex>
117
+ <Flex flex={{ default: 'flex_1' }}>
118
+ <Tile title="Default" icon={<BellIcon />} isStacked isSelected={false}>
119
+ This is really really long subtext that goes on for so long that it has to wrap to the next line. This is really
120
+ really long subtext that goes on for so long that it has to wrap to the next line.
121
+ </Tile>
122
+ </Flex>
123
+ <Flex flex={{ default: 'flex_1' }}>
124
+ <Tile title="Selected" icon={<BellIcon />} isStacked isSelected>
125
+ This is really really long subtext that goes on for so long that it has to wrap to the next line.
126
+ </Tile>
127
+ </Flex>
128
+ <Flex flex={{ default: 'flex_1' }}>
129
+ <Tile title="Disabled" icon={<BellIcon />} isStacked isDisabled isSelected={false}>
130
+ Subtext goes here
131
+ </Tile>
132
+ </Flex>
131
133
  </Flex>
132
- </Flex>
134
+ </div>;
133
135
  ```
@@ -13,11 +13,11 @@ import { Tile } from '@patternfly/react-core';
13
13
 
14
14
  const TileSingleSelect: React.FunctionComponent = () => {
15
15
  const [selectedId, setSelectedId] = React.useState<string>('');
16
-
17
- const onSelect = (event: React.MouseEvent) => {``
16
+
17
+ const onSelect = (event: React.MouseEvent) => {
18
18
  setSelectedId(event.currentTarget.id);
19
19
  };
20
-
20
+
21
21
  const onKeyDown = (event: React.KeyboardEvent) => {
22
22
  if (event.key === ' ' || event.key === 'Enter') {
23
23
  event.preventDefault();
@@ -26,32 +26,14 @@ const TileSingleSelect: React.FunctionComponent = () => {
26
26
  };
27
27
 
28
28
  return (
29
- <div>
30
- <Tile
31
- title="Tile 1"
32
- id="tile-1"
33
- onClick={onSelect}
34
- onKeyDown={onKeyDown}
35
- isSelected={selectedId === 'tile-1'}
36
- />
37
- <Tile
38
- title="Tile 2"
39
- id="tile-2"
40
- onClick={onSelect}
41
- onKeyDown={onKeyDown}
42
- isSelected={selectedId === 'tile-2'}
43
- />
44
- <Tile title="Tile 3" id="tile-3" isDisabled />
45
- <Tile
46
- title="Tile 4"
47
- id="tile-4"
48
- onClick={onSelect}
49
- onKeyDown={onKeyDown}
50
- isSelected={selectedId === 'tile-4'}
51
- />
29
+ <div role="listbox" aria-label="Single selection tiles">
30
+ <Tile title="Tile 1" id="tile-1" onClick={onSelect} onKeyDown={onKeyDown} isSelected={selectedId === 'tile-1'} />
31
+ <Tile title="Tile 2" id="tile-2" onClick={onSelect} onKeyDown={onKeyDown} isSelected={selectedId === 'tile-2'} />
32
+ <Tile title="Tile 3" id="tile-3" isDisabled isSelected={selectedId === 'tile-3'} />
33
+ <Tile title="Tile 4" id="tile-4" onClick={onSelect} onKeyDown={onKeyDown} isSelected={selectedId === 'tile-4'} />
52
34
  </div>
53
35
  );
54
- }
36
+ };
55
37
  ```
56
38
 
57
39
  ### Tiles with multiple selection
@@ -62,18 +44,18 @@ import { Tile } from '@patternfly/react-core';
62
44
 
63
45
  const TileMultiSelect: React.FunctionComponent = () => {
64
46
  const [selectedIds, setSelectedIds] = React.useState<string[]>([]);
65
-
47
+
66
48
  const onSelect = (event: React.MouseEvent | React.KeyboardEvent) => {
67
49
  const targetId = event.currentTarget.id;
68
50
  setSelectedIds(prevSelectedIds => {
69
- const newSelectedIds = prevSelectedIds.includes(targetId) ?
70
- prevSelectedIds.filter(id => id !== targetId) :
71
- [...prevSelectedIds, targetId]
51
+ const newSelectedIds = prevSelectedIds.includes(targetId)
52
+ ? prevSelectedIds.filter(id => id !== targetId)
53
+ : [...prevSelectedIds, targetId];
72
54
  console.log('tile selections: ', newSelectedIds);
73
55
  return newSelectedIds;
74
56
  });
75
57
  };
76
-
58
+
77
59
  const onKeyDown = (event: React.KeyboardEvent) => {
78
60
  console.log(event.key);
79
61
  if (event.key === ' ' || event.key === 'Enter') {
@@ -81,9 +63,9 @@ const TileMultiSelect: React.FunctionComponent = () => {
81
63
  onSelect(event);
82
64
  }
83
65
  };
84
-
66
+
85
67
  return (
86
- <div>
68
+ <div role="listbox" aria-multiselectable={true} aria-label="Multiselectable tiles">
87
69
  <Tile
88
70
  title="Tile 1"
89
71
  id="tile-1"
@@ -108,5 +90,5 @@ const TileMultiSelect: React.FunctionComponent = () => {
108
90
  />
109
91
  </div>
110
92
  );
111
- }
93
+ };
112
94
  ```