@patternfly/react-core 6.0.0-alpha.71 → 6.0.0-alpha.73

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 (204) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/components/package.json +8 -1
  3. package/deprecated/package.json +8 -1
  4. package/dist/dynamic/components/AboutModal/package.json +8 -1
  5. package/dist/dynamic/components/Accordion/package.json +8 -1
  6. package/dist/dynamic/components/ActionList/package.json +8 -1
  7. package/dist/dynamic/components/Alert/package.json +8 -1
  8. package/dist/dynamic/components/Avatar/package.json +8 -1
  9. package/dist/dynamic/components/BackToTop/package.json +8 -1
  10. package/dist/dynamic/components/Backdrop/package.json +8 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +8 -1
  12. package/dist/dynamic/components/Badge/package.json +8 -1
  13. package/dist/dynamic/components/Banner/package.json +8 -1
  14. package/dist/dynamic/components/Brand/package.json +8 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +8 -1
  16. package/dist/dynamic/components/Button/package.json +8 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +8 -1
  18. package/dist/dynamic/components/Card/package.json +8 -1
  19. package/dist/dynamic/components/Checkbox/package.json +8 -1
  20. package/dist/dynamic/components/ClipboardCopy/package.json +8 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +8 -1
  22. package/dist/dynamic/components/DataList/package.json +8 -1
  23. package/dist/dynamic/components/DatePicker/package.json +8 -1
  24. package/dist/dynamic/components/DescriptionList/package.json +8 -1
  25. package/dist/dynamic/components/Divider/package.json +8 -1
  26. package/dist/dynamic/components/Drawer/package.json +8 -1
  27. package/dist/dynamic/components/Dropdown/package.json +8 -1
  28. package/dist/dynamic/components/DualListSelector/package.json +8 -1
  29. package/dist/dynamic/components/EmptyState/package.json +8 -1
  30. package/dist/dynamic/components/ExpandableSection/package.json +8 -1
  31. package/dist/dynamic/components/FileUpload/package.json +8 -1
  32. package/dist/dynamic/components/Form/package.json +8 -1
  33. package/dist/dynamic/components/FormSelect/package.json +8 -1
  34. package/dist/dynamic/components/HelperText/package.json +8 -1
  35. package/dist/dynamic/components/Hint/package.json +8 -1
  36. package/dist/dynamic/components/Icon/package.json +8 -1
  37. package/dist/dynamic/components/InputGroup/package.json +8 -1
  38. package/dist/dynamic/components/JumpLinks/package.json +8 -1
  39. package/dist/dynamic/components/Label/package.json +8 -1
  40. package/dist/dynamic/components/List/package.json +8 -1
  41. package/dist/dynamic/components/LoginPage/package.json +8 -1
  42. package/dist/dynamic/components/Masthead/package.json +8 -1
  43. package/dist/dynamic/components/Menu/package.json +8 -1
  44. package/dist/dynamic/components/MenuToggle/package.json +8 -1
  45. package/dist/dynamic/components/Modal/package.json +8 -1
  46. package/dist/dynamic/components/MultipleFileUpload/package.json +8 -1
  47. package/dist/dynamic/components/Nav/package.json +8 -1
  48. package/dist/dynamic/components/NotificationBadge/package.json +8 -1
  49. package/dist/dynamic/components/NotificationDrawer/package.json +8 -1
  50. package/dist/dynamic/components/NumberInput/package.json +8 -1
  51. package/dist/dynamic/components/OverflowMenu/package.json +8 -1
  52. package/dist/dynamic/components/Page/package.json +8 -1
  53. package/dist/dynamic/components/Pagination/package.json +8 -1
  54. package/dist/dynamic/components/Panel/package.json +8 -1
  55. package/dist/dynamic/components/Popover/package.json +8 -1
  56. package/dist/dynamic/components/Progress/package.json +8 -1
  57. package/dist/dynamic/components/ProgressStepper/package.json +8 -1
  58. package/dist/dynamic/components/Radio/package.json +8 -1
  59. package/dist/dynamic/components/SearchInput/package.json +8 -1
  60. package/dist/dynamic/components/Select/package.json +8 -1
  61. package/dist/dynamic/components/Sidebar/package.json +8 -1
  62. package/dist/dynamic/components/SimpleList/package.json +8 -1
  63. package/dist/dynamic/components/Skeleton/package.json +8 -1
  64. package/dist/dynamic/components/SkipToContent/package.json +8 -1
  65. package/dist/dynamic/components/Slider/package.json +8 -1
  66. package/dist/dynamic/components/Spinner/package.json +8 -1
  67. package/dist/dynamic/components/Switch/package.json +8 -1
  68. package/dist/dynamic/components/Tabs/package.json +8 -1
  69. package/dist/dynamic/components/Text/package.json +8 -1
  70. package/dist/dynamic/components/TextArea/package.json +8 -1
  71. package/dist/dynamic/components/TextInput/package.json +8 -1
  72. package/dist/dynamic/components/TextInputGroup/package.json +8 -1
  73. package/dist/dynamic/components/Tile/package.json +8 -1
  74. package/dist/dynamic/components/TimePicker/package.json +8 -1
  75. package/dist/dynamic/components/Timestamp/package.json +8 -1
  76. package/dist/dynamic/components/Title/package.json +8 -1
  77. package/dist/dynamic/components/ToggleGroup/package.json +8 -1
  78. package/dist/dynamic/components/Toolbar/package.json +8 -1
  79. package/dist/dynamic/components/Tooltip/package.json +8 -1
  80. package/dist/dynamic/components/TreeView/package.json +8 -1
  81. package/dist/dynamic/components/Truncate/package.json +8 -1
  82. package/dist/dynamic/components/Wizard/hooks/package.json +8 -1
  83. package/dist/dynamic/components/Wizard/package.json +8 -1
  84. package/dist/dynamic/deprecated/components/Chip/package.json +8 -1
  85. package/dist/dynamic/deprecated/components/DragDrop/package.json +8 -1
  86. package/dist/dynamic/deprecated/components/DualListSelector/package.json +8 -1
  87. package/dist/dynamic/deprecated/components/Modal/package.json +8 -1
  88. package/dist/dynamic/deprecated/components/Wizard/package.json +8 -1
  89. package/dist/dynamic/deprecated/components/package.json +8 -1
  90. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +8 -1
  91. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +8 -1
  92. package/dist/dynamic/helpers/KeyboardHandler/package.json +8 -1
  93. package/dist/dynamic/helpers/OUIA/ouia/package.json +8 -1
  94. package/dist/dynamic/helpers/Popper/Popper/package.json +8 -1
  95. package/dist/dynamic/helpers/constants/package.json +8 -1
  96. package/dist/dynamic/helpers/datetimeUtils/package.json +8 -1
  97. package/dist/dynamic/helpers/fileUtils/package.json +8 -1
  98. package/dist/dynamic/helpers/htmlConstants/package.json +8 -1
  99. package/dist/dynamic/helpers/package.json +8 -1
  100. package/dist/dynamic/helpers/resizeObserver/package.json +8 -1
  101. package/dist/dynamic/helpers/typeUtils/package.json +8 -1
  102. package/dist/dynamic/helpers/useInterval/package.json +8 -1
  103. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +8 -1
  104. package/dist/dynamic/helpers/useUnmountEffect/package.json +8 -1
  105. package/dist/dynamic/helpers/util/package.json +8 -1
  106. package/dist/dynamic/layouts/Bullseye/package.json +8 -1
  107. package/dist/dynamic/layouts/Flex/package.json +8 -1
  108. package/dist/dynamic/layouts/Gallery/package.json +8 -1
  109. package/dist/dynamic/layouts/Grid/package.json +8 -1
  110. package/dist/dynamic/layouts/Level/package.json +8 -1
  111. package/dist/dynamic/layouts/Split/package.json +8 -1
  112. package/dist/dynamic/layouts/Stack/package.json +8 -1
  113. package/dist/dynamic/styles/package.json +8 -1
  114. package/dist/esm/components/Banner/Banner.d.ts +1 -1
  115. package/dist/esm/components/Banner/Banner.d.ts.map +1 -1
  116. package/dist/esm/components/CalendarMonth/CalendarMonth.js +16 -19
  117. package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
  118. package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
  119. package/dist/esm/components/DatePicker/DatePicker.js +16 -1
  120. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  121. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.d.ts +1 -1
  122. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.d.ts.map +1 -1
  123. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.js +1 -0
  124. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.js.map +1 -1
  125. package/dist/esm/components/Label/Label.d.ts +1 -1
  126. package/dist/esm/components/Label/Label.d.ts.map +1 -1
  127. package/dist/esm/components/Label/Label.js +2 -2
  128. package/dist/esm/components/Label/Label.js.map +1 -1
  129. package/dist/esm/components/MenuToggle/MenuToggle.d.ts +6 -1
  130. package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  131. package/dist/esm/components/MenuToggle/MenuToggle.js +11 -5
  132. package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
  133. package/dist/esm/deprecated/components/Modal/Modal.d.ts +3 -3
  134. package/dist/esm/deprecated/components/Modal/Modal.d.ts.map +1 -1
  135. package/dist/esm/deprecated/components/Modal/Modal.js +1 -1
  136. package/dist/esm/deprecated/components/Modal/Modal.js.map +1 -1
  137. package/dist/esm/deprecated/components/Modal/ModalContent.d.ts +2 -2
  138. package/dist/esm/deprecated/components/Modal/ModalContent.d.ts.map +1 -1
  139. package/dist/js/components/Banner/Banner.d.ts +1 -1
  140. package/dist/js/components/Banner/Banner.d.ts.map +1 -1
  141. package/dist/js/components/CalendarMonth/CalendarMonth.js +16 -19
  142. package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
  143. package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
  144. package/dist/js/components/DatePicker/DatePicker.js +16 -1
  145. package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
  146. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.d.ts +1 -1
  147. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.d.ts.map +1 -1
  148. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.js +1 -0
  149. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.js.map +1 -1
  150. package/dist/js/components/Label/Label.d.ts +1 -1
  151. package/dist/js/components/Label/Label.d.ts.map +1 -1
  152. package/dist/js/components/Label/Label.js +2 -2
  153. package/dist/js/components/Label/Label.js.map +1 -1
  154. package/dist/js/components/MenuToggle/MenuToggle.d.ts +6 -1
  155. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  156. package/dist/js/components/MenuToggle/MenuToggle.js +11 -5
  157. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  158. package/dist/js/deprecated/components/Modal/Modal.d.ts +3 -3
  159. package/dist/js/deprecated/components/Modal/Modal.d.ts.map +1 -1
  160. package/dist/js/deprecated/components/Modal/Modal.js +1 -1
  161. package/dist/js/deprecated/components/Modal/Modal.js.map +1 -1
  162. package/dist/js/deprecated/components/Modal/ModalContent.d.ts +2 -2
  163. package/dist/js/deprecated/components/Modal/ModalContent.d.ts.map +1 -1
  164. package/dist/styles/assets/images/pf-background.svg +21 -21
  165. package/dist/styles/base-no-reset.css +201 -183
  166. package/dist/styles/base.css +230 -208
  167. package/dist/umd/assets/{output-C1Tl2GQc.css → output-rAmU2c74.css} +6351 -6308
  168. package/dist/umd/react-core.min.js +3 -3
  169. package/helpers/package.json +8 -1
  170. package/layouts/package.json +8 -1
  171. package/next/package.json +8 -1
  172. package/package.json +8 -9
  173. package/src/components/Banner/Banner.tsx +1 -1
  174. package/src/components/Banner/__tests__/Banner.test.tsx +6 -6
  175. package/src/components/Banner/examples/BannerBasic.tsx +2 -2
  176. package/src/components/CalendarMonth/CalendarMonth.tsx +19 -19
  177. package/src/components/DatePicker/DatePicker.tsx +19 -1
  178. package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +3 -0
  179. package/src/components/Drawer/__tests__/DrawerPanelDescription.tsx +1 -0
  180. package/src/components/Label/Label.tsx +3 -3
  181. package/src/components/Label/__tests__/Label.test.tsx +1 -1
  182. package/src/components/Label/__tests__/__snapshots__/Label.test.tsx.snap +72 -36
  183. package/src/components/Label/examples/LabelFilled.tsx +44 -44
  184. package/src/components/Label/examples/LabelGroupEditableAddModal.tsx +1 -1
  185. package/src/components/Label/examples/LabelOutline.tsx +52 -46
  186. package/src/components/MenuToggle/MenuToggle.tsx +29 -7
  187. package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +27 -0
  188. package/src/components/MenuToggle/examples/MenuToggle.md +12 -10
  189. package/src/components/Nav/__tests__/Generated/NavList.test.tsx +1 -1
  190. package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +1 -1
  191. package/src/components/Page/examples/Page.md +8 -0
  192. package/src/components/Page/examples/PageMainSectionVariations.tsx +84 -0
  193. package/src/components/Pagination/__tests__/Generated/__snapshots__/PaginationOptionsMenu.test.tsx.snap +3 -0
  194. package/src/components/Pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +60 -0
  195. package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +2 -2
  196. package/src/components/SimpleList/__tests__/SimpleList.test.tsx +3 -3
  197. package/src/components/TextInput/__tests__/TextInput.test.tsx +1 -1
  198. package/src/demos/DescriptionList/DescriptionList.md +14 -0
  199. package/src/demos/DescriptionList/examples/DescriptionListBasic.tsx +86 -0
  200. package/src/demos/Masthead.md +5 -3
  201. package/src/demos/Tabs.md +2 -3
  202. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +322 -0
  203. package/src/deprecated/components/Modal/Modal.tsx +4 -4
  204. package/src/deprecated/components/Modal/ModalContent.tsx +2 -2
@@ -1 +1,8 @@
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.0.0-alpha.70","private":true}
1
+ {
2
+ "name": "@patternfly/react-core-helpers",
3
+ "main": "../dist/js/helpers/index.js",
4
+ "module": "../dist/esm/helpers/index.js",
5
+ "typings": "../dist/esm/helpers/index.d.ts",
6
+ "version": "6.0.0-alpha.72",
7
+ "private": true
8
+ }
@@ -1 +1,8 @@
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.0.0-alpha.70","private":true}
1
+ {
2
+ "name": "@patternfly/react-core-layouts",
3
+ "main": "../dist/js/layouts/index.js",
4
+ "module": "../dist/esm/layouts/index.js",
5
+ "typings": "../dist/esm/layouts/index.d.ts",
6
+ "version": "6.0.0-alpha.72",
7
+ "private": true
8
+ }
package/next/package.json CHANGED
@@ -1 +1,8 @@
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.0.0-alpha.70","private":true}
1
+ {
2
+ "name": "@patternfly/react-core-next",
3
+ "main": "../dist/js/next/index.js",
4
+ "module": "../dist/esm/next/index.js",
5
+ "typings": "../dist/esm/next/index.d.ts",
6
+ "version": "6.0.0-alpha.72",
7
+ "private": true
8
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.0.0-alpha.71",
3
+ "version": "6.0.0-alpha.73",
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",
@@ -47,23 +47,22 @@
47
47
  "clean:exports": "node scripts/cleanDistExports.js"
48
48
  },
49
49
  "dependencies": {
50
- "@patternfly/react-icons": "^6.0.0-alpha.25",
51
- "@patternfly/react-styles": "^6.0.0-alpha.24",
52
- "@patternfly/react-tokens": "^6.0.0-alpha.24",
50
+ "@patternfly/react-icons": "^6.0.0-alpha.27",
51
+ "@patternfly/react-styles": "^6.0.0-alpha.26",
52
+ "@patternfly/react-tokens": "^6.0.0-alpha.26",
53
53
  "focus-trap": "7.5.4",
54
54
  "react-dropzone": "^14.2.3",
55
55
  "tslib": "^2.6.2"
56
56
  },
57
57
  "devDependencies": {
58
- "@patternfly/patternfly": "6.0.0-alpha.150",
58
+ "@patternfly/patternfly": "6.0.0-alpha.160",
59
59
  "case-anything": "^2.1.13",
60
- "css": "^2.2.3",
61
- "fs-extra": "^11.1.1",
62
- "glob": "^7.1.2"
60
+ "css": "^3.0.0",
61
+ "fs-extra": "^11.2.0"
63
62
  },
64
63
  "peerDependencies": {
65
64
  "react": "^17 || ^18",
66
65
  "react-dom": "^17 || ^18"
67
66
  },
68
- "gitHead": "74b0b00a5b489551ae02aef64d22e6f3fb3557e0"
67
+ "gitHead": "5ce8c9748b3f0fafa36430e68d82d0725dff2f2e"
69
68
  }
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import styles from '@patternfly/react-styles/css/components/Banner/banner';
3
3
  import { css } from '@patternfly/react-styles';
4
4
 
5
- export type BannerColor = 'red' | 'orangered' | 'orange' | 'gold' | 'green' | 'cyan' | 'blue' | 'purple';
5
+ export type BannerColor = 'red' | 'orangered' | 'orange' | 'yellow' | 'green' | 'teal' | 'blue' | 'purple';
6
6
 
7
7
  export type BannerStatus = 'success' | 'warning' | 'danger' | 'info' | 'custom';
8
8
 
@@ -47,9 +47,9 @@ test('Renders with class name pf-m-orange when "orange" is passed to color prop'
47
47
  expect(screen.getByText('Test')).toHaveClass('pf-m-orange');
48
48
  });
49
49
 
50
- test('Renders with class name pf-m-gold when "gold" is passed to color prop', () => {
51
- render(<Banner color="gold">Test</Banner>);
52
- expect(screen.getByText('Test')).toHaveClass('pf-m-gold');
50
+ test('Renders with class name pf-m-yellow when "yellow" is passed to color prop', () => {
51
+ render(<Banner color="yellow">Test</Banner>);
52
+ expect(screen.getByText('Test')).toHaveClass('pf-m-yellow');
53
53
  });
54
54
 
55
55
  test('Renders with class name pf-m-green when "green" is passed to color prop', () => {
@@ -57,9 +57,9 @@ test('Renders with class name pf-m-green when "green" is passed to color prop',
57
57
  expect(screen.getByText('Test')).toHaveClass('pf-m-green');
58
58
  });
59
59
 
60
- test('Renders with class name pf-m-cyan when "cyan" is passed to color prop', () => {
61
- render(<Banner color="cyan">Test</Banner>);
62
- expect(screen.getByText('Test')).toHaveClass('pf-m-cyan');
60
+ test('Renders with class name pf-m-teal when "teal" is passed to color prop', () => {
61
+ render(<Banner color="teal">Test</Banner>);
62
+ expect(screen.getByText('Test')).toHaveClass('pf-m-teal');
63
63
  });
64
64
 
65
65
  test('Renders with class name pf-m-blue when "blue" is passed to color prop', () => {
@@ -11,11 +11,11 @@ export const BannerBasic: React.FunctionComponent = () => (
11
11
  <br />
12
12
  <Banner color="orange">Orange banner</Banner>
13
13
  <br />
14
- <Banner color="gold">Gold banner</Banner>
14
+ <Banner color="yellow">Yellow banner</Banner>
15
15
  <br />
16
16
  <Banner color="green">Green banner</Banner>
17
17
  <br />
18
- <Banner color="cyan">Cyan banner</Banner>
18
+ <Banner color="teal">Teal banner</Banner>
19
19
  <br />
20
20
  <Banner color="blue">Blue banner</Banner>
21
21
  <br />
@@ -168,7 +168,7 @@ export const CalendarMonth = ({
168
168
  const yearFormatted = yearFormat(focusedDate);
169
169
  const [yearInput, setYearInput] = React.useState(yearFormatted.toString());
170
170
 
171
- const [hoveredDate, setHoveredDate] = React.useState(new Date(focusedDate));
171
+ const [hoveredDate, setHoveredDate] = React.useState<Date>(undefined);
172
172
  const focusRef = React.useRef<HTMLButtonElement>();
173
173
  const [hiddenMonthId] = React.useState(getUniqueId('hidden-month-span'));
174
174
  const [shouldFocus, setShouldFocus] = React.useState(false);
@@ -192,7 +192,6 @@ export const CalendarMonth = ({
192
192
 
193
193
  const onMonthClick = (ev: React.MouseEvent, newDate: Date) => {
194
194
  setFocusedDate(newDate);
195
- setHoveredDate(newDate);
196
195
  setShouldFocus(false);
197
196
  onMonthChange(ev, newDate);
198
197
  setYearInput(yearFormat(newDate).toString());
@@ -212,7 +211,6 @@ export const CalendarMonth = ({
212
211
  if (newDate.getTime() !== focusedDate.getTime() && isValidated(newDate)) {
213
212
  ev.preventDefault();
214
213
  setFocusedDate(newDate);
215
- setHoveredDate(newDate);
216
214
  setShouldFocus(true);
217
215
  }
218
216
  };
@@ -238,7 +236,6 @@ export const CalendarMonth = ({
238
236
  if (yearNum >= MIN_YEAR && yearNum <= MAX_YEAR) {
239
237
  const newDate = changeYear(yearNum);
240
238
  setFocusedDate(newDate);
241
- setHoveredDate(newDate);
242
239
  setShouldFocus(false);
243
240
 
244
241
  // We need to manually focus the year input in FireFox when the scroll buttons are clicked, as FireFox doesn't place focus automatically
@@ -282,10 +279,9 @@ export const CalendarMonth = ({
282
279
  .map(({ date }) => date)[0];
283
280
  if (toFocus) {
284
281
  setFocusedDate(toFocus);
285
- setHoveredDate(toFocus);
286
282
  }
287
283
  }
288
- const isHoveredDateValid = isValidated(hoveredDate);
284
+ const isHoveredDateValid = hoveredDate && isValidated(hoveredDate);
289
285
  const monthFormatted = monthFormat(focusedDate);
290
286
 
291
287
  const calendarToRender = (
@@ -331,7 +327,6 @@ export const CalendarMonth = ({
331
327
  onSelectToggle(false);
332
328
  const newDate = changeMonth(Number(monthNum as string));
333
329
  setFocusedDate(newDate);
334
- setHoveredDate(newDate);
335
330
  setShouldFocus(false);
336
331
  onMonthChange(ev, newDate);
337
332
  }, 0);
@@ -369,7 +364,7 @@ export const CalendarMonth = ({
369
364
  </Button>
370
365
  </div>
371
366
  </div>
372
- <table className={styles.calendarMonthCalendar}>
367
+ <table className={styles.calendarMonthCalendar} onMouseLeave={() => setHoveredDate(undefined)}>
373
368
  <thead className={styles.calendarMonthDays}>
374
369
  <tr>
375
370
  {calendar[0].map(({ date }, index) => (
@@ -392,16 +387,21 @@ export const CalendarMonth = ({
392
387
  const isRangeStart = isValidDate(rangeStart) && isSameDate(date, rangeStart);
393
388
  let isInRange = false;
394
389
  let isRangeEnd = false;
395
- if (isValidDate(rangeStart) && isValidDate(dateProp)) {
396
- isInRange = date > rangeStart && date < dateProp;
397
- isRangeEnd = isSameDate(date, dateProp);
398
- } else if (isValidDate(rangeStart) && isHoveredDateValid) {
399
- if (hoveredDate > rangeStart || isSameDate(hoveredDate, rangeStart)) {
400
- isInRange = date > rangeStart && date < hoveredDate;
401
- isRangeEnd = isSameDate(date, hoveredDate);
390
+ if (isValidDate(rangeStart)) {
391
+ let rangeEndDate: Date;
392
+
393
+ if (isValidDate(dateProp)) {
394
+ rangeEndDate = dateProp;
395
+ }
396
+ if (isHoveredDateValid && (!isValidDate(dateProp) || hoveredDate > dateProp)) {
397
+ rangeEndDate = hoveredDate;
398
+ }
399
+
400
+ if (rangeEndDate) {
401
+ isInRange = date >= rangeStart && date <= rangeEndDate;
402
+ isRangeEnd = isSameDate(date, rangeEndDate);
402
403
  }
403
- // Don't handle focused dates before start dates for now.
404
- // Core would likely need new styles
404
+ // Core would likely need new styles for "is selected but disabled"
405
405
  }
406
406
 
407
407
  return (
@@ -412,8 +412,8 @@ export const CalendarMonth = ({
412
412
  isAdjacentMonth && styles.modifiers.adjacentMonth,
413
413
  isToday && styles.modifiers.current,
414
414
  (isSelected || isRangeStart) && styles.modifiers.selected,
415
- !isValid && styles.modifiers.disabled,
416
- (isInRange || isRangeStart || isRangeEnd) && styles.modifiers.inRange,
415
+ !isValid && !(isInRange || isRangeStart || isRangeEnd || isSelected) && styles.modifiers.disabled,
416
+ isInRange && styles.modifiers.inRange,
417
417
  isRangeStart && styles.modifiers.startRange,
418
418
  isRangeEnd && styles.modifiers.endRange
419
419
  )}
@@ -231,12 +231,30 @@ const DatePickerBase = (
231
231
  const createFocusSelectorString = (modifierClass: string) =>
232
232
  `.${calendarMonthStyles.calendarMonthDatesCell}.${modifierClass} .${calendarMonthStyles.calendarMonthDate}`;
233
233
  const focusSelectorForSelectedDate = createFocusSelectorString(calendarMonthStyles.modifiers.selected);
234
+ const focusSelectorForSelectedEndRangeDate = createFocusSelectorString(
235
+ `${calendarMonthStyles.modifiers.selected}.${calendarMonthStyles.modifiers.endRange}`
236
+ );
234
237
  const focusSelectorForUnselectedDate = createFocusSelectorString(calendarMonthStyles.modifiers.current);
235
238
 
239
+ /**
240
+ * Returns a CSS selector for a date button element which will receive initial focus after opening calendar popover.
241
+ * In case of a range picker it returns the end date, if it is selected, start date otherwise.
242
+ * In case of a normal datepicker it returns the selected date, if present, today otherwise.
243
+ */
244
+ const getElementSelectorToFocus = () => {
245
+ if (isValidDate(valueDate) && isValidDate(rangeStart)) {
246
+ return focusSelectorForSelectedEndRangeDate;
247
+ }
248
+ if (isValidDate(valueDate) || isValidDate(rangeStart)) {
249
+ return focusSelectorForSelectedDate;
250
+ }
251
+ return focusSelectorForUnselectedDate;
252
+ };
253
+
236
254
  return (
237
255
  <div className={css(styles.datePicker, className)} ref={datePickerWrapperRef} style={style} {...props}>
238
256
  <Popover
239
- elementToFocus={isValidDate(valueDate) ? focusSelectorForSelectedDate : focusSelectorForUnselectedDate}
257
+ elementToFocus={getElementSelectorToFocus()}
240
258
  position="bottom"
241
259
  bodyContent={
242
260
  <CalendarMonth
@@ -127,6 +127,9 @@ exports[`With popover opened 1`] = `
127
127
  <button
128
128
  aria-expanded="false"
129
129
  class="pf-v6-c-menu-toggle"
130
+ data-ouia-component-id="OUIA-Generated-MenuToggle-1"
131
+ data-ouia-component-type="PF6/MenuToggle"
132
+ data-ouia-safe="true"
130
133
  style="width: 140px;"
131
134
  type="button"
132
135
  >
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { render, screen } from '@testing-library/react';
3
3
  import { DrawerPanelDescription } from '../DrawerPanelDescription';
4
4
  import styles from '@patternfly/react-styles/css/components/Drawer/drawer';
5
+ import '@testing-library/jest-dom';
5
6
 
6
7
  test(`Renders with only class ${styles.drawerDescription} by default`, () => {
7
8
  render(<DrawerPanelDescription>description content</DrawerPanelDescription>);
@@ -20,7 +20,7 @@ export interface LabelProps extends React.HTMLProps<HTMLSpanElement> {
20
20
  /** Additional classes added to the label. */
21
21
  className?: string;
22
22
  /** Color of the label. */
23
- color?: 'blue' | 'cyan' | 'green' | 'orange' | 'purple' | 'red' | 'orangered' | 'grey' | 'gold';
23
+ color?: 'blue' | 'teal' | 'green' | 'orange' | 'purple' | 'red' | 'orangered' | 'grey' | 'yellow';
24
24
  /** Variant of the label. */
25
25
  variant?: 'outline' | 'filled' | 'overflow' | 'add';
26
26
  /** Status of the label with a respective icon and color. Overrides the color set by the color property. */
@@ -83,13 +83,13 @@ export interface LabelProps extends React.HTMLProps<HTMLSpanElement> {
83
83
 
84
84
  const colorStyles = {
85
85
  blue: styles.modifiers.blue,
86
- cyan: styles.modifiers.cyan,
86
+ teal: styles.modifiers.teal,
87
87
  green: styles.modifiers.green,
88
88
  orange: styles.modifiers.orange,
89
89
  purple: styles.modifiers.purple,
90
90
  red: styles.modifiers.red,
91
91
  orangered: styles.modifiers.orangered,
92
- gold: styles.modifiers.gold,
92
+ yellow: styles.modifiers.yellow,
93
93
  grey: ''
94
94
  };
95
95
 
@@ -5,7 +5,7 @@ import userEvent from '@testing-library/user-event';
5
5
 
6
6
  import { Label } from '../Label';
7
7
 
8
- const labelColors = ['blue', 'cyan', 'green', 'orange', 'purple', 'red', 'grey'];
8
+ const labelColors = ['blue', 'teal', 'green', 'orange', 'purple', 'red', 'grey', 'yellow'];
9
9
 
10
10
  describe('Label', () => {
11
11
  test('renders', () => {
@@ -225,42 +225,6 @@ exports[`Label label with close button and outline variant 1`] = `
225
225
  </DocumentFragment>
226
226
  `;
227
227
 
228
- exports[`Label label with cyan color 1`] = `
229
- <DocumentFragment>
230
- <span
231
- class="pf-v6-c-label pf-m-cyan pf-m-filled"
232
- >
233
- <span
234
- class="pf-v6-c-label__content"
235
- >
236
- <span
237
- class="pf-v6-c-label__text"
238
- >
239
- Something
240
- </span>
241
- </span>
242
- </span>
243
- </DocumentFragment>
244
- `;
245
-
246
- exports[`Label label with cyan color with outline variant 1`] = `
247
- <DocumentFragment>
248
- <span
249
- class="pf-v6-c-label pf-m-cyan pf-m-outline"
250
- >
251
- <span
252
- class="pf-v6-c-label__content"
253
- >
254
- <span
255
- class="pf-v6-c-label__text"
256
- >
257
- Something
258
- </span>
259
- </span>
260
- </span>
261
- </DocumentFragment>
262
- `;
263
-
264
228
  exports[`Label label with green color 1`] = `
265
229
  <DocumentFragment>
266
230
  <span
@@ -479,6 +443,42 @@ exports[`Label label with red color with outline variant 1`] = `
479
443
  </DocumentFragment>
480
444
  `;
481
445
 
446
+ exports[`Label label with teal color 1`] = `
447
+ <DocumentFragment>
448
+ <span
449
+ class="pf-v6-c-label pf-m-teal pf-m-filled"
450
+ >
451
+ <span
452
+ class="pf-v6-c-label__content"
453
+ >
454
+ <span
455
+ class="pf-v6-c-label__text"
456
+ >
457
+ Something
458
+ </span>
459
+ </span>
460
+ </span>
461
+ </DocumentFragment>
462
+ `;
463
+
464
+ exports[`Label label with teal color with outline variant 1`] = `
465
+ <DocumentFragment>
466
+ <span
467
+ class="pf-v6-c-label pf-m-teal pf-m-outline"
468
+ >
469
+ <span
470
+ class="pf-v6-c-label__content"
471
+ >
472
+ <span
473
+ class="pf-v6-c-label__text"
474
+ >
475
+ Something
476
+ </span>
477
+ </span>
478
+ </span>
479
+ </DocumentFragment>
480
+ `;
481
+
482
482
  exports[`Label label with truncation 1`] = `
483
483
  <DocumentFragment>
484
484
  <span
@@ -498,6 +498,42 @@ exports[`Label label with truncation 1`] = `
498
498
  </DocumentFragment>
499
499
  `;
500
500
 
501
+ exports[`Label label with yellow color 1`] = `
502
+ <DocumentFragment>
503
+ <span
504
+ class="pf-v6-c-label pf-m-yellow pf-m-filled"
505
+ >
506
+ <span
507
+ class="pf-v6-c-label__content"
508
+ >
509
+ <span
510
+ class="pf-v6-c-label__text"
511
+ >
512
+ Something
513
+ </span>
514
+ </span>
515
+ </span>
516
+ </DocumentFragment>
517
+ `;
518
+
519
+ exports[`Label label with yellow color with outline variant 1`] = `
520
+ <DocumentFragment>
521
+ <span
522
+ class="pf-v6-c-label pf-m-yellow pf-m-outline"
523
+ >
524
+ <span
525
+ class="pf-v6-c-label__content"
526
+ >
527
+ <span
528
+ class="pf-v6-c-label__text"
529
+ >
530
+ Something
531
+ </span>
532
+ </span>
533
+ </span>
534
+ </DocumentFragment>
535
+ `;
536
+
501
537
  exports[`Label renders 1`] = `
502
538
  <DocumentFragment>
503
539
  <span
@@ -259,81 +259,81 @@ export const LabelFilled: React.FunctionComponent = () => {
259
259
  </Label>
260
260
  <br />
261
261
  <br />
262
- <Label color="cyan">Cyan</Label>
263
- <Label color="cyan" icon={<CubeIcon />}>
264
- Cyan icon
262
+ <Label color="teal">Teal</Label>
263
+ <Label color="teal" icon={<CubeIcon />}>
264
+ Teal icon
265
265
  </Label>
266
- <Label color="cyan" onClose={() => Function.prototype}>
267
- Cyan removable
266
+ <Label color="teal" onClose={() => Function.prototype}>
267
+ Teal removable
268
268
  </Label>
269
- <Label color="cyan" icon={<CubeIcon />} onClose={() => Function.prototype}>
270
- Cyan icon removable
269
+ <Label color="teal" icon={<CubeIcon />} onClose={() => Function.prototype}>
270
+ Teal icon removable
271
271
  </Label>
272
- <Label color="cyan" href="#filled">
273
- Cyan link
272
+ <Label color="teal" href="#filled">
273
+ Teal link
274
274
  </Label>
275
- <Label color="cyan" href="#filled" onClose={() => Function.prototype}>
276
- Cyan link removable
275
+ <Label color="teal" href="#filled" onClose={() => Function.prototype}>
276
+ Teal link removable
277
277
  </Label>{' '}
278
- <Label color="cyan" onClick={() => logColor('cyan')}>
279
- Cyan clickable
278
+ <Label color="teal" onClick={() => logColor('teal')}>
279
+ Teal clickable
280
280
  </Label>
281
- <Label color="cyan" onClick={() => logColor('cyan')} onClose={() => Function.prototype}>
282
- Cyan clickable removable
281
+ <Label color="teal" onClick={() => logColor('teal')} onClose={() => Function.prototype}>
282
+ Teal clickable removable
283
283
  </Label>{' '}
284
- <Label color="cyan" icon={<CubeIcon />} onClose={() => Function.prototype} textMaxWidth="16ch">
285
- Cyan label with icon that overflows
284
+ <Label color="teal" icon={<CubeIcon />} onClose={() => Function.prototype} textMaxWidth="16ch">
285
+ Teal label with icon that overflows
286
286
  </Label>{' '}
287
- <Label color="cyan" isDisabled icon={<CubeIcon />} href="#filled" onClose={() => Function.prototype}>
288
- Cyan link removable (disabled)
287
+ <Label color="teal" isDisabled icon={<CubeIcon />} href="#filled" onClose={() => Function.prototype}>
288
+ Teal link removable (disabled)
289
289
  </Label>{' '}
290
290
  <Label
291
- color="cyan"
291
+ color="teal"
292
292
  isDisabled
293
293
  icon={<CubeIcon />}
294
- onClick={() => logColor('cyan')}
294
+ onClick={() => logColor('teal')}
295
295
  onClose={() => Function.prototype}
296
296
  >
297
- Cyan clickable removable (disabled)
297
+ Teal clickable removable (disabled)
298
298
  </Label>
299
299
  <br />
300
300
  <br />
301
- <Label color="gold">Gold</Label>
302
- <Label color="gold" icon={<CubeIcon />}>
303
- Gold icon
301
+ <Label color="yellow">Yellow</Label>
302
+ <Label color="yellow" icon={<CubeIcon />}>
303
+ Yellow icon
304
304
  </Label>
305
- <Label color="gold" onClose={() => Function.prototype}>
306
- Gold removable
305
+ <Label color="yellow" onClose={() => Function.prototype}>
306
+ Yellow removable
307
307
  </Label>
308
- <Label color="gold" icon={<CubeIcon />} onClose={() => Function.prototype}>
309
- Gold icon removable
308
+ <Label color="yellow" icon={<CubeIcon />} onClose={() => Function.prototype}>
309
+ Yellow icon removable
310
310
  </Label>
311
- <Label color="gold" href="#filled">
312
- Gold link
311
+ <Label color="yellow" href="#filled">
312
+ Yellow link
313
313
  </Label>
314
- <Label color="gold" href="#filled" onClose={() => Function.prototype}>
315
- Gold link removable
314
+ <Label color="yellow" href="#filled" onClose={() => Function.prototype}>
315
+ Yellow link removable
316
316
  </Label>{' '}
317
- <Label color="gold" onClick={() => logColor('gold')}>
318
- Gold clickable
317
+ <Label color="yellow" onClick={() => logColor('yellow')}>
318
+ Yellow clickable
319
319
  </Label>
320
- <Label color="gold" onClick={() => logColor('gold')} onClose={() => Function.prototype}>
321
- Gold clickable removable
320
+ <Label color="yellow" onClick={() => logColor('yellow')} onClose={() => Function.prototype}>
321
+ Yellow clickable removable
322
322
  </Label>{' '}
323
- <Label color="gold" icon={<CubeIcon />} onClose={() => Function.prototype} textMaxWidth="16ch">
324
- Gold label with icon that overflows
323
+ <Label color="yellow" icon={<CubeIcon />} onClose={() => Function.prototype} textMaxWidth="16ch">
324
+ Yellow label with icon that overflows
325
325
  </Label>{' '}
326
- <Label color="gold" isDisabled icon={<CubeIcon />} href="#filled" onClose={() => Function.prototype}>
327
- Gold link removable (disabled)
326
+ <Label color="yellow" isDisabled icon={<CubeIcon />} href="#filled" onClose={() => Function.prototype}>
327
+ Yellow link removable (disabled)
328
328
  </Label>{' '}
329
329
  <Label
330
- color="gold"
330
+ color="yellow"
331
331
  isDisabled
332
332
  icon={<CubeIcon />}
333
- onClick={() => logColor('gold')}
333
+ onClick={() => logColor('yellow')}
334
334
  onClose={() => Function.prototype}
335
335
  >
336
- Gold clickable removable (disabled)
336
+ Yellow clickable removable (disabled)
337
337
  </Label>
338
338
  <br />
339
339
  <br />
@@ -182,7 +182,7 @@ export const LabelGroupEditableAddModal: React.FunctionComponent = () => {
182
182
  <MenuItem itemId="Orange">Orange</MenuItem>
183
183
  <MenuItem itemId="Red">Red</MenuItem>
184
184
  <MenuItem itemId="Purple">Purple</MenuItem>
185
- <MenuItem itemId="Cyan">Cyan</MenuItem>
185
+ <MenuItem itemId="Teal">Teal</MenuItem>
186
186
  </MenuList>
187
187
  </MenuContent>
188
188
  </Menu>