@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.
- package/CHANGELOG.md +10 -0
- package/components/package.json +8 -1
- package/deprecated/package.json +8 -1
- package/dist/dynamic/components/AboutModal/package.json +8 -1
- package/dist/dynamic/components/Accordion/package.json +8 -1
- package/dist/dynamic/components/ActionList/package.json +8 -1
- package/dist/dynamic/components/Alert/package.json +8 -1
- package/dist/dynamic/components/Avatar/package.json +8 -1
- package/dist/dynamic/components/BackToTop/package.json +8 -1
- package/dist/dynamic/components/Backdrop/package.json +8 -1
- package/dist/dynamic/components/BackgroundImage/package.json +8 -1
- package/dist/dynamic/components/Badge/package.json +8 -1
- package/dist/dynamic/components/Banner/package.json +8 -1
- package/dist/dynamic/components/Brand/package.json +8 -1
- package/dist/dynamic/components/Breadcrumb/package.json +8 -1
- package/dist/dynamic/components/Button/package.json +8 -1
- package/dist/dynamic/components/CalendarMonth/package.json +8 -1
- package/dist/dynamic/components/Card/package.json +8 -1
- package/dist/dynamic/components/Checkbox/package.json +8 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +8 -1
- package/dist/dynamic/components/CodeBlock/package.json +8 -1
- package/dist/dynamic/components/DataList/package.json +8 -1
- package/dist/dynamic/components/DatePicker/package.json +8 -1
- package/dist/dynamic/components/DescriptionList/package.json +8 -1
- package/dist/dynamic/components/Divider/package.json +8 -1
- package/dist/dynamic/components/Drawer/package.json +8 -1
- package/dist/dynamic/components/Dropdown/package.json +8 -1
- package/dist/dynamic/components/DualListSelector/package.json +8 -1
- package/dist/dynamic/components/EmptyState/package.json +8 -1
- package/dist/dynamic/components/ExpandableSection/package.json +8 -1
- package/dist/dynamic/components/FileUpload/package.json +8 -1
- package/dist/dynamic/components/Form/package.json +8 -1
- package/dist/dynamic/components/FormSelect/package.json +8 -1
- package/dist/dynamic/components/HelperText/package.json +8 -1
- package/dist/dynamic/components/Hint/package.json +8 -1
- package/dist/dynamic/components/Icon/package.json +8 -1
- package/dist/dynamic/components/InputGroup/package.json +8 -1
- package/dist/dynamic/components/JumpLinks/package.json +8 -1
- package/dist/dynamic/components/Label/package.json +8 -1
- package/dist/dynamic/components/List/package.json +8 -1
- package/dist/dynamic/components/LoginPage/package.json +8 -1
- package/dist/dynamic/components/Masthead/package.json +8 -1
- package/dist/dynamic/components/Menu/package.json +8 -1
- package/dist/dynamic/components/MenuToggle/package.json +8 -1
- package/dist/dynamic/components/Modal/package.json +8 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +8 -1
- package/dist/dynamic/components/Nav/package.json +8 -1
- package/dist/dynamic/components/NotificationBadge/package.json +8 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +8 -1
- package/dist/dynamic/components/NumberInput/package.json +8 -1
- package/dist/dynamic/components/OverflowMenu/package.json +8 -1
- package/dist/dynamic/components/Page/package.json +8 -1
- package/dist/dynamic/components/Pagination/package.json +8 -1
- package/dist/dynamic/components/Panel/package.json +8 -1
- package/dist/dynamic/components/Popover/package.json +8 -1
- package/dist/dynamic/components/Progress/package.json +8 -1
- package/dist/dynamic/components/ProgressStepper/package.json +8 -1
- package/dist/dynamic/components/Radio/package.json +8 -1
- package/dist/dynamic/components/SearchInput/package.json +8 -1
- package/dist/dynamic/components/Select/package.json +8 -1
- package/dist/dynamic/components/Sidebar/package.json +8 -1
- package/dist/dynamic/components/SimpleList/package.json +8 -1
- package/dist/dynamic/components/Skeleton/package.json +8 -1
- package/dist/dynamic/components/SkipToContent/package.json +8 -1
- package/dist/dynamic/components/Slider/package.json +8 -1
- package/dist/dynamic/components/Spinner/package.json +8 -1
- package/dist/dynamic/components/Switch/package.json +8 -1
- package/dist/dynamic/components/Tabs/package.json +8 -1
- package/dist/dynamic/components/Text/package.json +8 -1
- package/dist/dynamic/components/TextArea/package.json +8 -1
- package/dist/dynamic/components/TextInput/package.json +8 -1
- package/dist/dynamic/components/TextInputGroup/package.json +8 -1
- package/dist/dynamic/components/Tile/package.json +8 -1
- package/dist/dynamic/components/TimePicker/package.json +8 -1
- package/dist/dynamic/components/Timestamp/package.json +8 -1
- package/dist/dynamic/components/Title/package.json +8 -1
- package/dist/dynamic/components/ToggleGroup/package.json +8 -1
- package/dist/dynamic/components/Toolbar/package.json +8 -1
- package/dist/dynamic/components/Tooltip/package.json +8 -1
- package/dist/dynamic/components/TreeView/package.json +8 -1
- package/dist/dynamic/components/Truncate/package.json +8 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +8 -1
- package/dist/dynamic/components/Wizard/package.json +8 -1
- package/dist/dynamic/deprecated/components/Chip/package.json +8 -1
- package/dist/dynamic/deprecated/components/DragDrop/package.json +8 -1
- package/dist/dynamic/deprecated/components/DualListSelector/package.json +8 -1
- package/dist/dynamic/deprecated/components/Modal/package.json +8 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +8 -1
- package/dist/dynamic/deprecated/components/package.json +8 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +8 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +8 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +8 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +8 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +8 -1
- package/dist/dynamic/helpers/constants/package.json +8 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +8 -1
- package/dist/dynamic/helpers/fileUtils/package.json +8 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +8 -1
- package/dist/dynamic/helpers/package.json +8 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +8 -1
- package/dist/dynamic/helpers/typeUtils/package.json +8 -1
- package/dist/dynamic/helpers/useInterval/package.json +8 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +8 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +8 -1
- package/dist/dynamic/helpers/util/package.json +8 -1
- package/dist/dynamic/layouts/Bullseye/package.json +8 -1
- package/dist/dynamic/layouts/Flex/package.json +8 -1
- package/dist/dynamic/layouts/Gallery/package.json +8 -1
- package/dist/dynamic/layouts/Grid/package.json +8 -1
- package/dist/dynamic/layouts/Level/package.json +8 -1
- package/dist/dynamic/layouts/Split/package.json +8 -1
- package/dist/dynamic/layouts/Stack/package.json +8 -1
- package/dist/dynamic/styles/package.json +8 -1
- package/dist/esm/components/Banner/Banner.d.ts +1 -1
- package/dist/esm/components/Banner/Banner.d.ts.map +1 -1
- package/dist/esm/components/CalendarMonth/CalendarMonth.js +16 -19
- package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/esm/components/DatePicker/DatePicker.js +16 -1
- package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.d.ts +1 -1
- package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.d.ts.map +1 -1
- package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.js +1 -0
- package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.js.map +1 -1
- package/dist/esm/components/Label/Label.d.ts +1 -1
- package/dist/esm/components/Label/Label.d.ts.map +1 -1
- package/dist/esm/components/Label/Label.js +2 -2
- package/dist/esm/components/Label/Label.js.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.d.ts +6 -1
- package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/esm/components/MenuToggle/MenuToggle.js +11 -5
- package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/esm/deprecated/components/Modal/Modal.d.ts +3 -3
- package/dist/esm/deprecated/components/Modal/Modal.d.ts.map +1 -1
- package/dist/esm/deprecated/components/Modal/Modal.js +1 -1
- package/dist/esm/deprecated/components/Modal/Modal.js.map +1 -1
- package/dist/esm/deprecated/components/Modal/ModalContent.d.ts +2 -2
- package/dist/esm/deprecated/components/Modal/ModalContent.d.ts.map +1 -1
- package/dist/js/components/Banner/Banner.d.ts +1 -1
- package/dist/js/components/Banner/Banner.d.ts.map +1 -1
- package/dist/js/components/CalendarMonth/CalendarMonth.js +16 -19
- package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
- package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/js/components/DatePicker/DatePicker.js +16 -1
- package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
- package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.d.ts +1 -1
- package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.d.ts.map +1 -1
- package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.js +1 -0
- package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.js.map +1 -1
- package/dist/js/components/Label/Label.d.ts +1 -1
- package/dist/js/components/Label/Label.d.ts.map +1 -1
- package/dist/js/components/Label/Label.js +2 -2
- package/dist/js/components/Label/Label.js.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.d.ts +6 -1
- package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
- package/dist/js/components/MenuToggle/MenuToggle.js +11 -5
- package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
- package/dist/js/deprecated/components/Modal/Modal.d.ts +3 -3
- package/dist/js/deprecated/components/Modal/Modal.d.ts.map +1 -1
- package/dist/js/deprecated/components/Modal/Modal.js +1 -1
- package/dist/js/deprecated/components/Modal/Modal.js.map +1 -1
- package/dist/js/deprecated/components/Modal/ModalContent.d.ts +2 -2
- package/dist/js/deprecated/components/Modal/ModalContent.d.ts.map +1 -1
- package/dist/styles/assets/images/pf-background.svg +21 -21
- package/dist/styles/base-no-reset.css +201 -183
- package/dist/styles/base.css +230 -208
- package/dist/umd/assets/{output-C1Tl2GQc.css → output-rAmU2c74.css} +6351 -6308
- package/dist/umd/react-core.min.js +3 -3
- package/helpers/package.json +8 -1
- package/layouts/package.json +8 -1
- package/next/package.json +8 -1
- package/package.json +8 -9
- package/src/components/Banner/Banner.tsx +1 -1
- package/src/components/Banner/__tests__/Banner.test.tsx +6 -6
- package/src/components/Banner/examples/BannerBasic.tsx +2 -2
- package/src/components/CalendarMonth/CalendarMonth.tsx +19 -19
- package/src/components/DatePicker/DatePicker.tsx +19 -1
- package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +3 -0
- package/src/components/Drawer/__tests__/DrawerPanelDescription.tsx +1 -0
- package/src/components/Label/Label.tsx +3 -3
- package/src/components/Label/__tests__/Label.test.tsx +1 -1
- package/src/components/Label/__tests__/__snapshots__/Label.test.tsx.snap +72 -36
- package/src/components/Label/examples/LabelFilled.tsx +44 -44
- package/src/components/Label/examples/LabelGroupEditableAddModal.tsx +1 -1
- package/src/components/Label/examples/LabelOutline.tsx +52 -46
- package/src/components/MenuToggle/MenuToggle.tsx +29 -7
- package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +27 -0
- package/src/components/MenuToggle/examples/MenuToggle.md +12 -10
- package/src/components/Nav/__tests__/Generated/NavList.test.tsx +1 -1
- package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +1 -1
- package/src/components/Page/examples/Page.md +8 -0
- package/src/components/Page/examples/PageMainSectionVariations.tsx +84 -0
- package/src/components/Pagination/__tests__/Generated/__snapshots__/PaginationOptionsMenu.test.tsx.snap +3 -0
- package/src/components/Pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +60 -0
- package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +2 -2
- package/src/components/SimpleList/__tests__/SimpleList.test.tsx +3 -3
- package/src/components/TextInput/__tests__/TextInput.test.tsx +1 -1
- package/src/demos/DescriptionList/DescriptionList.md +14 -0
- package/src/demos/DescriptionList/examples/DescriptionListBasic.tsx +86 -0
- package/src/demos/Masthead.md +5 -3
- package/src/demos/Tabs.md +2 -3
- package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +322 -0
- package/src/deprecated/components/Modal/Modal.tsx +4 -4
- package/src/deprecated/components/Modal/ModalContent.tsx +2 -2
package/helpers/package.json
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
-
{
|
|
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
|
+
}
|
package/layouts/package.json
CHANGED
|
@@ -1 +1,8 @@
|
|
|
1
|
-
{
|
|
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
|
-
{
|
|
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.
|
|
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.
|
|
51
|
-
"@patternfly/react-styles": "^6.0.0-alpha.
|
|
52
|
-
"@patternfly/react-tokens": "^6.0.0-alpha.
|
|
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.
|
|
58
|
+
"@patternfly/patternfly": "6.0.0-alpha.160",
|
|
59
59
|
"case-anything": "^2.1.13",
|
|
60
|
-
"css": "^
|
|
61
|
-
"fs-extra": "^11.
|
|
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": "
|
|
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' | '
|
|
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-
|
|
51
|
-
render(<Banner color="
|
|
52
|
-
expect(screen.getByText('Test')).toHaveClass('pf-m-
|
|
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-
|
|
61
|
-
render(<Banner color="
|
|
62
|
-
expect(screen.getByText('Test')).toHaveClass('pf-m-
|
|
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="
|
|
14
|
+
<Banner color="yellow">Yellow banner</Banner>
|
|
15
15
|
<br />
|
|
16
16
|
<Banner color="green">Green banner</Banner>
|
|
17
17
|
<br />
|
|
18
|
-
<Banner color="
|
|
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
|
|
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)
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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={
|
|
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' | '
|
|
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
|
-
|
|
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
|
-
|
|
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', '
|
|
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="
|
|
263
|
-
<Label color="
|
|
264
|
-
|
|
262
|
+
<Label color="teal">Teal</Label>
|
|
263
|
+
<Label color="teal" icon={<CubeIcon />}>
|
|
264
|
+
Teal icon
|
|
265
265
|
</Label>
|
|
266
|
-
<Label color="
|
|
267
|
-
|
|
266
|
+
<Label color="teal" onClose={() => Function.prototype}>
|
|
267
|
+
Teal removable
|
|
268
268
|
</Label>
|
|
269
|
-
<Label color="
|
|
270
|
-
|
|
269
|
+
<Label color="teal" icon={<CubeIcon />} onClose={() => Function.prototype}>
|
|
270
|
+
Teal icon removable
|
|
271
271
|
</Label>
|
|
272
|
-
<Label color="
|
|
273
|
-
|
|
272
|
+
<Label color="teal" href="#filled">
|
|
273
|
+
Teal link
|
|
274
274
|
</Label>
|
|
275
|
-
<Label color="
|
|
276
|
-
|
|
275
|
+
<Label color="teal" href="#filled" onClose={() => Function.prototype}>
|
|
276
|
+
Teal link removable
|
|
277
277
|
</Label>{' '}
|
|
278
|
-
<Label color="
|
|
279
|
-
|
|
278
|
+
<Label color="teal" onClick={() => logColor('teal')}>
|
|
279
|
+
Teal clickable
|
|
280
280
|
</Label>
|
|
281
|
-
<Label color="
|
|
282
|
-
|
|
281
|
+
<Label color="teal" onClick={() => logColor('teal')} onClose={() => Function.prototype}>
|
|
282
|
+
Teal clickable removable
|
|
283
283
|
</Label>{' '}
|
|
284
|
-
<Label color="
|
|
285
|
-
|
|
284
|
+
<Label color="teal" icon={<CubeIcon />} onClose={() => Function.prototype} textMaxWidth="16ch">
|
|
285
|
+
Teal label with icon that overflows
|
|
286
286
|
</Label>{' '}
|
|
287
|
-
<Label color="
|
|
288
|
-
|
|
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="
|
|
291
|
+
color="teal"
|
|
292
292
|
isDisabled
|
|
293
293
|
icon={<CubeIcon />}
|
|
294
|
-
onClick={() => logColor('
|
|
294
|
+
onClick={() => logColor('teal')}
|
|
295
295
|
onClose={() => Function.prototype}
|
|
296
296
|
>
|
|
297
|
-
|
|
297
|
+
Teal clickable removable (disabled)
|
|
298
298
|
</Label>
|
|
299
299
|
<br />
|
|
300
300
|
<br />
|
|
301
|
-
<Label color="
|
|
302
|
-
<Label color="
|
|
303
|
-
|
|
301
|
+
<Label color="yellow">Yellow</Label>
|
|
302
|
+
<Label color="yellow" icon={<CubeIcon />}>
|
|
303
|
+
Yellow icon
|
|
304
304
|
</Label>
|
|
305
|
-
<Label color="
|
|
306
|
-
|
|
305
|
+
<Label color="yellow" onClose={() => Function.prototype}>
|
|
306
|
+
Yellow removable
|
|
307
307
|
</Label>
|
|
308
|
-
<Label color="
|
|
309
|
-
|
|
308
|
+
<Label color="yellow" icon={<CubeIcon />} onClose={() => Function.prototype}>
|
|
309
|
+
Yellow icon removable
|
|
310
310
|
</Label>
|
|
311
|
-
<Label color="
|
|
312
|
-
|
|
311
|
+
<Label color="yellow" href="#filled">
|
|
312
|
+
Yellow link
|
|
313
313
|
</Label>
|
|
314
|
-
<Label color="
|
|
315
|
-
|
|
314
|
+
<Label color="yellow" href="#filled" onClose={() => Function.prototype}>
|
|
315
|
+
Yellow link removable
|
|
316
316
|
</Label>{' '}
|
|
317
|
-
<Label color="
|
|
318
|
-
|
|
317
|
+
<Label color="yellow" onClick={() => logColor('yellow')}>
|
|
318
|
+
Yellow clickable
|
|
319
319
|
</Label>
|
|
320
|
-
<Label color="
|
|
321
|
-
|
|
320
|
+
<Label color="yellow" onClick={() => logColor('yellow')} onClose={() => Function.prototype}>
|
|
321
|
+
Yellow clickable removable
|
|
322
322
|
</Label>{' '}
|
|
323
|
-
<Label color="
|
|
324
|
-
|
|
323
|
+
<Label color="yellow" icon={<CubeIcon />} onClose={() => Function.prototype} textMaxWidth="16ch">
|
|
324
|
+
Yellow label with icon that overflows
|
|
325
325
|
</Label>{' '}
|
|
326
|
-
<Label color="
|
|
327
|
-
|
|
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="
|
|
330
|
+
color="yellow"
|
|
331
331
|
isDisabled
|
|
332
332
|
icon={<CubeIcon />}
|
|
333
|
-
onClick={() => logColor('
|
|
333
|
+
onClick={() => logColor('yellow')}
|
|
334
334
|
onClose={() => Function.prototype}
|
|
335
335
|
>
|
|
336
|
-
|
|
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="
|
|
185
|
+
<MenuItem itemId="Teal">Teal</MenuItem>
|
|
186
186
|
</MenuList>
|
|
187
187
|
</MenuContent>
|
|
188
188
|
</Menu>
|