@patternfly/react-core 6.1.1-prerelease.0 → 6.1.1-prerelease.2
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 +13 -0
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/Content/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
- package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
- package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
- package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/styles/package.json +1 -1
- package/dist/esm/components/AboutModal/AboutModal.d.ts.map +1 -1
- package/dist/esm/components/AboutModal/AboutModal.js +2 -2
- package/dist/esm/components/AboutModal/AboutModal.js.map +1 -1
- package/dist/esm/components/Card/CardHeader.d.ts.map +1 -1
- package/dist/esm/components/Card/CardHeader.js +4 -4
- package/dist/esm/components/Card/CardHeader.js.map +1 -1
- package/dist/esm/components/DataList/DataListCheck.d.ts.map +1 -1
- package/dist/esm/components/DataList/DataListCheck.js +2 -2
- package/dist/esm/components/DataList/DataListCheck.js.map +1 -1
- package/dist/esm/deprecated/components/DualListSelector/DualListSelector.d.ts +4 -4
- package/dist/esm/deprecated/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/esm/deprecated/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/js/components/AboutModal/AboutModal.d.ts.map +1 -1
- package/dist/js/components/AboutModal/AboutModal.js +2 -2
- package/dist/js/components/AboutModal/AboutModal.js.map +1 -1
- package/dist/js/components/Card/CardHeader.d.ts.map +1 -1
- package/dist/js/components/Card/CardHeader.js +4 -4
- package/dist/js/components/Card/CardHeader.js.map +1 -1
- package/dist/js/components/DataList/DataListCheck.d.ts.map +1 -1
- package/dist/js/components/DataList/DataListCheck.js +2 -2
- package/dist/js/components/DataList/DataListCheck.js.map +1 -1
- package/dist/js/deprecated/components/DualListSelector/DualListSelector.d.ts +4 -4
- package/dist/js/deprecated/components/DualListSelector/DualListSelector.d.ts.map +1 -1
- package/dist/js/deprecated/components/DualListSelector/DualListSelector.js.map +1 -1
- package/dist/umd/assets/{output-BVwKwvaV.css → output-BpVMmGx2.css} +14722 -14722
- package/dist/umd/react-core.min.js +3 -3
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +2 -2
- package/src/components/AboutModal/AboutModal.tsx +1 -3
- package/src/components/Card/CardHeader.tsx +108 -107
- package/src/components/DataList/DataListCheck.tsx +16 -13
- package/src/components/FileUpload/examples/FileUploadTextWithRestrictions.tsx +2 -10
- package/src/demos/DatePicker/examples/DateTimePickerInModal.tsx +34 -18
- package/src/demos/examples/MultipleFileUpload/MultipleFileUploadRejectedFile.tsx +8 -12
- package/src/deprecated/components/DualListSelector/DualListSelector.tsx +20 -20
package/helpers/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
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.1.
|
|
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.1.1-prerelease.1","private":true}
|
package/layouts/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
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.1.
|
|
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.1.1-prerelease.1","private":true}
|
package/next/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
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.1.
|
|
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.1.1-prerelease.1","private":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "6.1.1-prerelease.
|
|
3
|
+
"version": "6.1.1-prerelease.2",
|
|
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",
|
|
@@ -63,5 +63,5 @@
|
|
|
63
63
|
"react": "^17 || ^18",
|
|
64
64
|
"react-dom": "^17 || ^18"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "9acfd98e73238e0a95cef9cc25834568637cf1b7"
|
|
67
67
|
}
|
|
@@ -6,7 +6,7 @@ import { AboutModalBoxHeader } from './AboutModalBoxHeader';
|
|
|
6
6
|
import { AboutModalBoxBrand } from './AboutModalBoxBrand';
|
|
7
7
|
import { AboutModalBoxCloseButton } from './AboutModalBoxCloseButton';
|
|
8
8
|
import { AboutModalBox } from './AboutModalBox';
|
|
9
|
-
import { Modal, ModalVariant } from '
|
|
9
|
+
import { Modal, ModalVariant } from '../Modal';
|
|
10
10
|
import { GenerateId } from '../../helpers/GenerateId/GenerateId';
|
|
11
11
|
|
|
12
12
|
export interface AboutModalProps extends React.HTMLProps<HTMLDivElement> {
|
|
@@ -82,10 +82,8 @@ export const AboutModal: React.FunctionComponent<AboutModalProps> = ({
|
|
|
82
82
|
{...(productName && { 'aria-labelledby': ariaLabelledBy })}
|
|
83
83
|
aria-label={ariaLabel}
|
|
84
84
|
onEscapePress={onClose}
|
|
85
|
-
showClose={false}
|
|
86
85
|
appendTo={appendTo}
|
|
87
86
|
disableFocusTrap={disableFocusTrap}
|
|
88
|
-
hasNoBodyWrapper
|
|
89
87
|
>
|
|
90
88
|
<AboutModalBox
|
|
91
89
|
style={
|
|
@@ -9,6 +9,7 @@ import { Button } from '../Button';
|
|
|
9
9
|
import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
|
|
10
10
|
import { Radio } from '../Radio';
|
|
11
11
|
import { Checkbox } from '../Checkbox';
|
|
12
|
+
import { GenerateId } from '../../helpers/GenerateId/GenerateId';
|
|
12
13
|
|
|
13
14
|
export interface CardHeaderActionsObject {
|
|
14
15
|
/** Actions of the card header */
|
|
@@ -87,122 +88,122 @@ export const CardHeader: React.FunctionComponent<CardHeaderProps> = ({
|
|
|
87
88
|
toggleButtonProps,
|
|
88
89
|
isToggleRightAligned,
|
|
89
90
|
...props
|
|
90
|
-
}: CardHeaderProps) =>
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
</div>
|
|
112
|
-
);
|
|
113
|
-
|
|
114
|
-
const isClickableOrSelectableOnly = (isClickable && !isSelectable) || (isSelectable && !isClickable);
|
|
115
|
-
if (actions?.actions && isClickableOrSelectableOnly) {
|
|
116
|
-
// eslint-disable-next-line no-console
|
|
117
|
-
console.error(
|
|
118
|
-
`Card: ${
|
|
119
|
-
isClickable ? 'Clickable' : 'Selectable'
|
|
120
|
-
} only cards should not contain any other actions. If you wish to include additional actions, use a clickable and selectable card.`
|
|
91
|
+
}: CardHeaderProps) => (
|
|
92
|
+
<GenerateId>
|
|
93
|
+
{(randomId) => (
|
|
94
|
+
<CardContext.Consumer>
|
|
95
|
+
{({ cardId, isClickable, isSelectable, isSelected, isDisabled: isCardDisabled }) => {
|
|
96
|
+
const cardHeaderToggle = (
|
|
97
|
+
<div className={css(styles.cardHeaderToggle)}>
|
|
98
|
+
<Button
|
|
99
|
+
variant="plain"
|
|
100
|
+
type="button"
|
|
101
|
+
onClick={(evt) => {
|
|
102
|
+
onExpand(evt, cardId);
|
|
103
|
+
}}
|
|
104
|
+
{...toggleButtonProps}
|
|
105
|
+
icon={
|
|
106
|
+
<span className={css(styles.cardHeaderToggleIcon)}>
|
|
107
|
+
<AngleRightIcon />
|
|
108
|
+
</span>
|
|
109
|
+
}
|
|
110
|
+
/>
|
|
111
|
+
</div>
|
|
121
112
|
);
|
|
122
|
-
}
|
|
123
113
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
);
|
|
134
|
-
}
|
|
114
|
+
const isClickableOrSelectableOnly = (isClickable && !isSelectable) || (isSelectable && !isClickable);
|
|
115
|
+
if (actions?.actions && isClickableOrSelectableOnly) {
|
|
116
|
+
// eslint-disable-next-line no-console
|
|
117
|
+
console.error(
|
|
118
|
+
`Card: ${
|
|
119
|
+
isClickable ? 'Clickable' : 'Selectable'
|
|
120
|
+
} only cards should not contain any other actions. If you wish to include additional actions, use a clickable and selectable card.`
|
|
121
|
+
);
|
|
122
|
+
}
|
|
135
123
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
isChecked: selectableActions.isChecked ?? isSelected,
|
|
148
|
-
...selectableActions.selectableActionProps
|
|
149
|
-
});
|
|
124
|
+
const isClickableOnlyCard = isClickable && !isSelectable;
|
|
125
|
+
if (
|
|
126
|
+
(isClickableOnlyCard || isSelectable) &&
|
|
127
|
+
!selectableActions?.selectableActionAriaLabel &&
|
|
128
|
+
!selectableActions?.selectableActionAriaLabelledby
|
|
129
|
+
) {
|
|
130
|
+
// eslint-disable-next-line no-console
|
|
131
|
+
console.error(
|
|
132
|
+
`Card: ${isClickableOnlyCard ? 'Clickable-only cards' : 'Cards with a selectable input'} must have either the selectableActions.selectableActionAriaLabel or selectableActions.selectableActionAriaLabelledby prop passed in order to provide an accessible name to the clickable element.`
|
|
133
|
+
);
|
|
134
|
+
}
|
|
150
135
|
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
className: css(
|
|
157
|
-
'pf-v6-c-card__clickable-action',
|
|
158
|
-
isDisabledLinkCard && styles.modifiers.disabled,
|
|
159
|
-
selectableActions?.isHidden && 'pf-v6-screen-reader'
|
|
160
|
-
),
|
|
161
|
-
id: selectableActions.selectableActionId,
|
|
136
|
+
const SelectableCardInput = selectableActions?.variant === 'single' ? Radio : Checkbox;
|
|
137
|
+
const getSelectableProps = () => ({
|
|
138
|
+
className: css('pf-m-standalone'),
|
|
139
|
+
inputClassName: css(selectableActions?.isHidden && 'pf-v6-screen-reader'),
|
|
140
|
+
label: <></>,
|
|
162
141
|
'aria-label': selectableActions.selectableActionAriaLabel,
|
|
163
142
|
'aria-labelledby': selectableActions.selectableActionAriaLabelledby,
|
|
143
|
+
id: selectableActions.selectableActionId ?? `card-selectable-${randomId}`,
|
|
144
|
+
name: selectableActions.name,
|
|
145
|
+
isDisabled: isCardDisabled,
|
|
146
|
+
onChange: selectableActions.onChange,
|
|
147
|
+
isChecked: selectableActions.isChecked ?? isSelected,
|
|
164
148
|
...selectableActions.selectableActionProps
|
|
165
|
-
};
|
|
149
|
+
});
|
|
166
150
|
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
151
|
+
const isClickableLinkCard = selectableActions?.to !== undefined;
|
|
152
|
+
const ClickableCardComponent = isClickableLinkCard ? 'a' : 'button';
|
|
153
|
+
const getClickableProps = () => {
|
|
154
|
+
const isDisabledLinkCard = isCardDisabled && isClickableLinkCard;
|
|
155
|
+
const baseProps = {
|
|
156
|
+
className: css(
|
|
157
|
+
'pf-v6-c-card__clickable-action',
|
|
158
|
+
isDisabledLinkCard && styles.modifiers.disabled,
|
|
159
|
+
selectableActions?.isHidden && 'pf-v6-screen-reader'
|
|
160
|
+
),
|
|
161
|
+
id: selectableActions.selectableActionId,
|
|
162
|
+
'aria-label': selectableActions.selectableActionAriaLabel,
|
|
163
|
+
'aria-labelledby': selectableActions.selectableActionAriaLabelledby,
|
|
164
|
+
...selectableActions.selectableActionProps
|
|
173
165
|
};
|
|
174
|
-
}
|
|
175
166
|
|
|
176
|
-
|
|
177
|
-
|
|
167
|
+
if (isClickableLinkCard) {
|
|
168
|
+
return {
|
|
169
|
+
...baseProps,
|
|
170
|
+
href: selectableActions.to,
|
|
171
|
+
...(isCardDisabled && { tabIndex: -1, 'aria-disabled': true }),
|
|
172
|
+
...(selectableActions.isExternalLink && { target: '_blank' })
|
|
173
|
+
};
|
|
174
|
+
}
|
|
178
175
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
}
|
|
176
|
+
return { ...baseProps, type: 'button', disabled: isCardDisabled, onClick: selectableActions.onClickAction };
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
return (
|
|
180
|
+
<div
|
|
181
|
+
className={css(styles.cardHeader, isToggleRightAligned && styles.modifiers.toggleRight, className)}
|
|
182
|
+
id={id}
|
|
183
|
+
{...props}
|
|
184
|
+
>
|
|
185
|
+
{onExpand && !isToggleRightAligned && cardHeaderToggle}
|
|
186
|
+
{(actions || (selectableActions && (isClickable || isSelectable))) && (
|
|
187
|
+
<CardActions
|
|
188
|
+
className={actions?.className}
|
|
189
|
+
hasNoOffset={actions?.hasNoOffset || selectableActions?.hasNoOffset}
|
|
190
|
+
>
|
|
191
|
+
{actions?.actions}
|
|
192
|
+
{selectableActions && (isClickable || isSelectable) && (
|
|
193
|
+
<CardSelectableActions className={selectableActions?.className}>
|
|
194
|
+
{isSelectable && <SelectableCardInput {...getSelectableProps()} />}
|
|
195
|
+
{isClickableOnlyCard && <ClickableCardComponent {...getClickableProps()} />}
|
|
196
|
+
</CardSelectableActions>
|
|
197
|
+
)}
|
|
198
|
+
</CardActions>
|
|
199
|
+
)}
|
|
200
|
+
{children && <CardHeaderMain>{children}</CardHeaderMain>}
|
|
201
|
+
{onExpand && isToggleRightAligned && cardHeaderToggle}
|
|
202
|
+
</div>
|
|
203
|
+
);
|
|
204
|
+
}}
|
|
205
|
+
</CardContext.Consumer>
|
|
206
|
+
)}
|
|
207
|
+
</GenerateId>
|
|
208
|
+
);
|
|
208
209
|
CardHeader.displayName = 'CardHeader';
|
|
@@ -2,6 +2,7 @@ import * as React from 'react';
|
|
|
2
2
|
import { css } from '@patternfly/react-styles';
|
|
3
3
|
import styles from '@patternfly/react-styles/css/components/DataList/data-list';
|
|
4
4
|
import { Checkbox, CheckboxProps } from '../Checkbox';
|
|
5
|
+
import { GenerateId } from '../../helpers/GenerateId/GenerateId';
|
|
5
6
|
|
|
6
7
|
export interface DataListCheckProps extends Omit<CheckboxProps, 'ref' | 'id'> {
|
|
7
8
|
/** Id of the DataList checkbox. */
|
|
@@ -46,21 +47,23 @@ export const DataListCheck: React.FunctionComponent<DataListCheckProps> = ({
|
|
|
46
47
|
otherControls = false,
|
|
47
48
|
...props
|
|
48
49
|
}: DataListCheckProps) => {
|
|
49
|
-
const uniqueId = React.useId();
|
|
50
|
-
|
|
51
50
|
const check = (
|
|
52
51
|
<div className={css(styles.dataListCheck)}>
|
|
53
|
-
<
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
52
|
+
<GenerateId>
|
|
53
|
+
{(randomId) => (
|
|
54
|
+
<Checkbox
|
|
55
|
+
id={id ?? `datalist-check-${randomId}`}
|
|
56
|
+
isChecked={isChecked}
|
|
57
|
+
checked={checked}
|
|
58
|
+
defaultChecked={defaultChecked}
|
|
59
|
+
onChange={onChange}
|
|
60
|
+
aria-invalid={!isValid}
|
|
61
|
+
isDisabled={isDisabled}
|
|
62
|
+
isLabelWrapped
|
|
63
|
+
{...props}
|
|
64
|
+
/>
|
|
65
|
+
)}
|
|
66
|
+
</GenerateId>
|
|
64
67
|
</div>
|
|
65
68
|
);
|
|
66
69
|
return (
|
|
@@ -7,8 +7,7 @@ import {
|
|
|
7
7
|
FormGroup,
|
|
8
8
|
HelperText,
|
|
9
9
|
HelperTextItem,
|
|
10
|
-
DropEvent
|
|
11
|
-
Icon
|
|
10
|
+
DropEvent
|
|
12
11
|
} from '@patternfly/react-core';
|
|
13
12
|
|
|
14
13
|
export const TextFileUploadWithRestrictions: React.FunctionComponent = () => {
|
|
@@ -94,14 +93,7 @@ export const TextFileUploadWithRestrictions: React.FunctionComponent = () => {
|
|
|
94
93
|
<FileUploadHelperText>
|
|
95
94
|
<HelperText isLiveRegion>
|
|
96
95
|
<HelperTextItem id="restricted-file-example-helpText" variant={isRejected ? 'error' : 'default'}>
|
|
97
|
-
{isRejected ?
|
|
98
|
-
<>
|
|
99
|
-
<Icon status="danger" />
|
|
100
|
-
{message}
|
|
101
|
-
</>
|
|
102
|
-
) : (
|
|
103
|
-
'Upload a CSV file'
|
|
104
|
-
)}
|
|
96
|
+
{isRejected ? message : 'Upload a CSV file'}
|
|
105
97
|
</HelperTextItem>
|
|
106
98
|
</HelperText>
|
|
107
99
|
</FileUploadHelperText>
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import {
|
|
3
|
+
DatePicker,
|
|
4
|
+
Button,
|
|
5
|
+
TimePicker,
|
|
6
|
+
InputGroup,
|
|
7
|
+
InputGroupItem,
|
|
8
|
+
Modal,
|
|
9
|
+
ModalVariant,
|
|
10
|
+
ModalHeader,
|
|
11
|
+
ModalBody,
|
|
12
|
+
ModalFooter
|
|
13
|
+
} from '@patternfly/react-core';
|
|
4
14
|
|
|
5
15
|
export const SimpleModal = () => {
|
|
6
16
|
const [isModalOpen, setIsModalOpen] = React.useState(false);
|
|
@@ -26,31 +36,37 @@ export const SimpleModal = () => {
|
|
|
26
36
|
<Button variant="primary" onClick={handleModalToggle}>
|
|
27
37
|
Launch modal
|
|
28
38
|
</Button>
|
|
29
|
-
<
|
|
39
|
+
<Modal
|
|
30
40
|
id="date-time-picker-modal"
|
|
31
|
-
variant={
|
|
32
|
-
title="Generic modal header"
|
|
41
|
+
variant={ModalVariant.small}
|
|
33
42
|
isOpen={isModalOpen}
|
|
34
43
|
onEscapePress={onEscapePress}
|
|
35
44
|
onClose={handleModalToggle}
|
|
36
|
-
|
|
45
|
+
>
|
|
46
|
+
<ModalHeader title="Generic modal header" />
|
|
47
|
+
<ModalBody>
|
|
48
|
+
<InputGroup>
|
|
49
|
+
<InputGroupItem>
|
|
50
|
+
<DatePicker ref={dateRef} appendTo={() => document.body} />
|
|
51
|
+
</InputGroupItem>
|
|
52
|
+
<InputGroupItem>
|
|
53
|
+
<TimePicker
|
|
54
|
+
menuAppendTo={() => document.body}
|
|
55
|
+
isOpen={isTimePickerOpen}
|
|
56
|
+
setIsOpen={setIsTimePickerOpen}
|
|
57
|
+
/>
|
|
58
|
+
</InputGroupItem>
|
|
59
|
+
</InputGroup>
|
|
60
|
+
</ModalBody>
|
|
61
|
+
<ModalFooter>
|
|
37
62
|
<Button key="confirm" variant="primary" onClick={handleModalToggle}>
|
|
38
63
|
Confirm
|
|
39
|
-
</Button
|
|
64
|
+
</Button>
|
|
40
65
|
<Button key="cancel" variant="link" onClick={handleModalToggle}>
|
|
41
66
|
Cancel
|
|
42
67
|
</Button>
|
|
43
|
-
|
|
44
|
-
>
|
|
45
|
-
<InputGroup>
|
|
46
|
-
<InputGroupItem>
|
|
47
|
-
<DatePicker ref={dateRef} appendTo={() => document.getElementById('date-time-picker-modal')} />
|
|
48
|
-
</InputGroupItem>
|
|
49
|
-
<InputGroupItem>
|
|
50
|
-
<TimePicker menuAppendTo="parent" isOpen={isTimePickerOpen} setIsOpen={setIsTimePickerOpen} />
|
|
51
|
-
</InputGroupItem>
|
|
52
|
-
</InputGroup>
|
|
53
|
-
</ModalDeprecated>
|
|
68
|
+
</ModalFooter>
|
|
69
|
+
</Modal>
|
|
54
70
|
</React.Fragment>
|
|
55
71
|
);
|
|
56
72
|
};
|
|
@@ -6,9 +6,11 @@ import {
|
|
|
6
6
|
MultipleFileUploadStatus,
|
|
7
7
|
MultipleFileUploadStatusItem,
|
|
8
8
|
Checkbox,
|
|
9
|
-
DropEvent
|
|
9
|
+
DropEvent,
|
|
10
|
+
Modal,
|
|
11
|
+
ModalHeader,
|
|
12
|
+
ModalBody
|
|
10
13
|
} from '@patternfly/react-core';
|
|
11
|
-
import { Modal as ModalDeprecated } from '@patternfly/react-core/deprecated';
|
|
12
14
|
import UploadIcon from '@patternfly/react-icons/dist/esm/icons/upload-icon';
|
|
13
15
|
|
|
14
16
|
interface readFile {
|
|
@@ -135,16 +137,10 @@ export const MultipleFileUploadBasic: React.FunctionComponent = () => {
|
|
|
135
137
|
))}
|
|
136
138
|
</MultipleFileUploadStatus>
|
|
137
139
|
)}
|
|
138
|
-
<
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
showClose
|
|
143
|
-
aria-label="unsupported file upload attempted"
|
|
144
|
-
onClose={() => setModalText('')}
|
|
145
|
-
>
|
|
146
|
-
{modalText}
|
|
147
|
-
</ModalDeprecated>
|
|
140
|
+
<Modal isOpen={!!modalText} aria-label="unsupported file upload attempted" onClose={() => setModalText('')}>
|
|
141
|
+
<ModalHeader title="Unsupported file" titleIconVariant="warning" />
|
|
142
|
+
<ModalBody>{modalText}</ModalBody>
|
|
143
|
+
</Modal>
|
|
148
144
|
</MultipleFileUpload>
|
|
149
145
|
<Checkbox
|
|
150
146
|
id="horizontal-checkbox"
|
|
@@ -59,7 +59,7 @@ export interface DualListSelectorProps {
|
|
|
59
59
|
addSelectedAriaLabel?: string;
|
|
60
60
|
/** Tooltip content for the dynamically built add selected button */
|
|
61
61
|
addSelectedTooltip?: React.ReactNode;
|
|
62
|
-
/**
|
|
62
|
+
/** Additional tooltip properties for the dynamically built add selected tooltip */
|
|
63
63
|
addSelectedTooltipProps?: any;
|
|
64
64
|
/** Callback fired every time dynamically built options are chosen or removed */
|
|
65
65
|
onListChange?: (
|
|
@@ -73,7 +73,7 @@ export interface DualListSelectorProps {
|
|
|
73
73
|
addAllAriaLabel?: string;
|
|
74
74
|
/** Tooltip content for the dynamically built add all button */
|
|
75
75
|
addAllTooltip?: React.ReactNode;
|
|
76
|
-
/**
|
|
76
|
+
/** Additional tooltip properties for the dynamically built add all tooltip */
|
|
77
77
|
addAllTooltipProps?: any;
|
|
78
78
|
/** Optional callback for the dynamically built remove selected button */
|
|
79
79
|
removeSelected?: (newAvailableOptions: React.ReactNode[], newChosenOptions: React.ReactNode[]) => void;
|
|
@@ -81,7 +81,7 @@ export interface DualListSelectorProps {
|
|
|
81
81
|
removeSelectedAriaLabel?: string;
|
|
82
82
|
/** Tooltip content for the dynamically built remove selected button */
|
|
83
83
|
removeSelectedTooltip?: React.ReactNode;
|
|
84
|
-
/**
|
|
84
|
+
/** Additional tooltip properties for the dynamically built remove selected tooltip */
|
|
85
85
|
removeSelectedTooltipProps?: any;
|
|
86
86
|
/** Optional callback for the dynamically built remove all button */
|
|
87
87
|
removeAll?: (newAvailableOptions: React.ReactNode[], newChosenOptions: React.ReactNode[]) => void;
|
|
@@ -89,7 +89,7 @@ export interface DualListSelectorProps {
|
|
|
89
89
|
removeAllAriaLabel?: string;
|
|
90
90
|
/** Tooltip content for the dynamically built remove all button */
|
|
91
91
|
removeAllTooltip?: React.ReactNode;
|
|
92
|
-
/**
|
|
92
|
+
/** Additional tooltip properties for the dynamically built remove all tooltip */
|
|
93
93
|
removeAllTooltipProps?: any;
|
|
94
94
|
/** Optional callback fired when a dynamically built option is selected */
|
|
95
95
|
onOptionSelect?: (
|
|
@@ -286,8 +286,8 @@ class DualListSelector extends React.Component<DualListSelectorProps, DualListSe
|
|
|
286
286
|
chosenFilteredOptions: newChosen,
|
|
287
287
|
availableOptions: newAvailable,
|
|
288
288
|
availableFilteredOptions: newAvailable,
|
|
289
|
-
chosenOptionsSelected: [],
|
|
290
|
-
availableOptionsSelected: []
|
|
289
|
+
chosenOptionsSelected: [] as number[],
|
|
290
|
+
availableOptionsSelected: [] as number[]
|
|
291
291
|
};
|
|
292
292
|
});
|
|
293
293
|
};
|
|
@@ -319,8 +319,8 @@ class DualListSelector extends React.Component<DualListSelectorProps, DualListSe
|
|
|
319
319
|
chosenFilteredOptions: newChosen,
|
|
320
320
|
availableOptions: newAvailable,
|
|
321
321
|
availableFilteredOptions: newAvailable,
|
|
322
|
-
availableTreeOptionsChecked: [],
|
|
323
|
-
chosenTreeOptionsChecked: []
|
|
322
|
+
availableTreeOptionsChecked: [] as string[],
|
|
323
|
+
chosenTreeOptionsChecked: [] as string[]
|
|
324
324
|
};
|
|
325
325
|
});
|
|
326
326
|
};
|
|
@@ -342,8 +342,8 @@ class DualListSelector extends React.Component<DualListSelectorProps, DualListSe
|
|
|
342
342
|
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
343
343
|
|
|
344
344
|
return {
|
|
345
|
-
chosenOptionsSelected: [],
|
|
346
|
-
availableOptionsSelected: [],
|
|
345
|
+
chosenOptionsSelected: [] as number[],
|
|
346
|
+
availableOptionsSelected: [] as number[],
|
|
347
347
|
chosenOptions: newChosen,
|
|
348
348
|
chosenFilteredOptions: newChosen,
|
|
349
349
|
availableOptions: newAvailable,
|
|
@@ -374,8 +374,8 @@ class DualListSelector extends React.Component<DualListSelectorProps, DualListSe
|
|
|
374
374
|
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
375
375
|
|
|
376
376
|
return {
|
|
377
|
-
availableTreeOptionsChecked: [],
|
|
378
|
-
chosenTreeOptionsChecked: [],
|
|
377
|
+
availableTreeOptionsChecked: [] as string[],
|
|
378
|
+
chosenTreeOptionsChecked: [] as string[],
|
|
379
379
|
availableOptions: newAvailable,
|
|
380
380
|
chosenOptions: newChosen
|
|
381
381
|
};
|
|
@@ -404,8 +404,8 @@ class DualListSelector extends React.Component<DualListSelectorProps, DualListSe
|
|
|
404
404
|
chosenFilteredOptions: newChosen,
|
|
405
405
|
availableOptions: newAvailable,
|
|
406
406
|
availableFilteredOptions: newAvailable,
|
|
407
|
-
chosenOptionsSelected: [],
|
|
408
|
-
availableOptionsSelected: []
|
|
407
|
+
chosenOptionsSelected: [] as number[],
|
|
408
|
+
availableOptionsSelected: [] as number[]
|
|
409
409
|
};
|
|
410
410
|
});
|
|
411
411
|
};
|
|
@@ -433,8 +433,8 @@ class DualListSelector extends React.Component<DualListSelectorProps, DualListSe
|
|
|
433
433
|
return {
|
|
434
434
|
chosenOptions: newChosen,
|
|
435
435
|
availableOptions: newAvailable,
|
|
436
|
-
availableTreeOptionsChecked: [],
|
|
437
|
-
chosenTreeOptionsChecked: []
|
|
436
|
+
availableTreeOptionsChecked: [] as string[],
|
|
437
|
+
chosenTreeOptionsChecked: [] as string[]
|
|
438
438
|
};
|
|
439
439
|
});
|
|
440
440
|
};
|
|
@@ -456,8 +456,8 @@ class DualListSelector extends React.Component<DualListSelectorProps, DualListSe
|
|
|
456
456
|
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
457
457
|
|
|
458
458
|
return {
|
|
459
|
-
chosenOptionsSelected: [],
|
|
460
|
-
availableOptionsSelected: [],
|
|
459
|
+
chosenOptionsSelected: [] as number[],
|
|
460
|
+
availableOptionsSelected: [] as number[],
|
|
461
461
|
chosenOptions: newChosen,
|
|
462
462
|
chosenFilteredOptions: newChosen,
|
|
463
463
|
availableOptions: newAvailable,
|
|
@@ -488,8 +488,8 @@ class DualListSelector extends React.Component<DualListSelectorProps, DualListSe
|
|
|
488
488
|
this.props.onListChange && this.props.onListChange(event, newAvailable, newChosen);
|
|
489
489
|
|
|
490
490
|
return {
|
|
491
|
-
availableTreeOptionsChecked: [],
|
|
492
|
-
chosenTreeOptionsChecked: [],
|
|
491
|
+
availableTreeOptionsChecked: [] as string[],
|
|
492
|
+
chosenTreeOptionsChecked: [] as string[],
|
|
493
493
|
availableOptions: newAvailable,
|
|
494
494
|
chosenOptions: newChosen
|
|
495
495
|
};
|