@patternfly/react-core 6.5.0-prerelease.18 → 6.5.0-prerelease.19
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 +7 -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/Compass/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/Hero/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/AnimationsProvider/AnimationsProvider/package.json +1 -1
- package/dist/dynamic/helpers/AnimationsProvider/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/Dropdown/Dropdown.d.ts +6 -0
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js +5 -2
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts +4 -0
- package/dist/esm/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.js +5 -4
- package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +6 -0
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js +5 -2
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.d.ts +4 -0
- package/dist/js/components/ExpandableSection/ExpandableSection.d.ts.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.js +5 -4
- package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
- package/dist/umd/assets/{output-BGyvbQam.css → output-NT2AWNLd.css} +17118 -17118
- package/dist/umd/react-core.min.js +1 -1
- 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/Dropdown/Dropdown.tsx +15 -1
- package/src/components/Dropdown/__tests__/Dropdown.test.tsx +26 -0
- package/src/components/ExpandableSection/ExpandableSection.tsx +10 -7
- package/src/components/ExpandableSection/__tests__/ExpandableSection.test.tsx +31 -0
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.5.0-prerelease.
|
|
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.5.0-prerelease.18","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.5.0-prerelease.
|
|
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.5.0-prerelease.18","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.5.0-prerelease.
|
|
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.5.0-prerelease.18","private":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "6.5.0-prerelease.
|
|
3
|
+
"version": "6.5.0-prerelease.19",
|
|
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 || ^19",
|
|
64
64
|
"react-dom": "^17 || ^18 || ^19"
|
|
65
65
|
},
|
|
66
|
-
"gitHead": "
|
|
66
|
+
"gitHead": "6e44a0f4716dd7a38a6efc4c75cb0193ea8b4afe"
|
|
67
67
|
}
|
|
@@ -48,6 +48,12 @@ export interface DropdownProps extends MenuProps, OUIAProps {
|
|
|
48
48
|
ouiaId?: number | string;
|
|
49
49
|
/** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
|
|
50
50
|
ouiaSafe?: boolean;
|
|
51
|
+
/** When applied, wraps dropdown in a container with a data-ouia-component-id.*/
|
|
52
|
+
containerOuiaId?: number | string;
|
|
53
|
+
/** Set the value of data-ouia-safe for the container when containerOuiaId is applied. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
|
|
54
|
+
containerOuiaSafe?: boolean;
|
|
55
|
+
/** Sets the base component to render for the container. Defaults to <span> */
|
|
56
|
+
containerComponent?: React.ReactNode;
|
|
51
57
|
/** z-index of the dropdown menu */
|
|
52
58
|
zIndex?: number;
|
|
53
59
|
/** Additional properties to pass to the Popper */
|
|
@@ -86,11 +92,16 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
86
92
|
shouldFocusFirstItemOnOpen = false,
|
|
87
93
|
shouldPreventScrollOnItemFocus = true,
|
|
88
94
|
focusTimeoutDelay = 0,
|
|
95
|
+
containerOuiaId,
|
|
96
|
+
containerOuiaSafe = true,
|
|
97
|
+
containerComponent = 'span',
|
|
89
98
|
...props
|
|
90
99
|
}: DropdownProps) => {
|
|
91
100
|
const localMenuRef = useRef<HTMLDivElement>(undefined);
|
|
92
101
|
const localToggleRef = useRef<HTMLButtonElement>(undefined);
|
|
93
102
|
const ouiaProps = useOUIAProps(Dropdown.displayName, ouiaId, ouiaSafe);
|
|
103
|
+
const ContainerComponent = containerComponent as any;
|
|
104
|
+
const containerOuiaProps = useOUIAProps('Dropdown container', containerOuiaId, containerOuiaSafe);
|
|
94
105
|
|
|
95
106
|
const menuRef = (innerRef as React.RefObject<HTMLDivElement | null>) || localMenuRef;
|
|
96
107
|
const toggleRef =
|
|
@@ -185,7 +196,8 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
185
196
|
</MenuContent>
|
|
186
197
|
</Menu>
|
|
187
198
|
);
|
|
188
|
-
|
|
199
|
+
|
|
200
|
+
const popper = (
|
|
189
201
|
<Popper
|
|
190
202
|
trigger={typeof toggle === 'function' ? toggle(toggleRef) : toggle.toggleNode}
|
|
191
203
|
triggerRef={toggleRef}
|
|
@@ -196,6 +208,8 @@ const DropdownBase: React.FunctionComponent<DropdownProps> = ({
|
|
|
196
208
|
{...popperProps}
|
|
197
209
|
/>
|
|
198
210
|
);
|
|
211
|
+
|
|
212
|
+
return containerOuiaId ? <ContainerComponent {...containerOuiaProps}>{popper}</ContainerComponent> : popper;
|
|
199
213
|
};
|
|
200
214
|
|
|
201
215
|
export const Dropdown = forwardRef((props: DropdownProps, ref: React.Ref<any>) => (
|
|
@@ -201,6 +201,32 @@ test('onOpenChange is called when passed and user presses esc key', async () =>
|
|
|
201
201
|
expect(onOpenChange).toBeCalledTimes(1);
|
|
202
202
|
});
|
|
203
203
|
|
|
204
|
+
test('applies containerOuiaId to parent element', () => {
|
|
205
|
+
render(
|
|
206
|
+
<Dropdown containerOuiaId="test-dropdown" toggle={(toggleRef) => toggle(toggleRef)}>
|
|
207
|
+
{dropdownChildren}
|
|
208
|
+
</Dropdown>
|
|
209
|
+
);
|
|
210
|
+
|
|
211
|
+
const dropdownToggle = screen.getByRole('button', { name: 'Dropdown' });
|
|
212
|
+
const dropdownParent = dropdownToggle?.parentNode?.parentNode;
|
|
213
|
+
expect(dropdownParent).toHaveAttribute('data-ouia-component-id', 'test-dropdown');
|
|
214
|
+
expect(dropdownParent).toHaveAttribute('data-ouia-component-type', 'PF6/Dropdown container');
|
|
215
|
+
expect(dropdownParent?.tagName).toBe('SPAN');
|
|
216
|
+
});
|
|
217
|
+
|
|
218
|
+
test('Renders with custom container element when containerComponent is passed', () => {
|
|
219
|
+
render(
|
|
220
|
+
<Dropdown containerOuiaId="test-dropdown" containerComponent="div" toggle={(toggleRef) => toggle(toggleRef)}>
|
|
221
|
+
{dropdownChildren}
|
|
222
|
+
</Dropdown>
|
|
223
|
+
);
|
|
224
|
+
|
|
225
|
+
const dropdownToggle = screen.getByRole('button', { name: 'Dropdown' });
|
|
226
|
+
const dropdownParent = dropdownToggle?.parentNode?.parentNode;
|
|
227
|
+
expect(dropdownParent?.tagName).toBe('DIV');
|
|
228
|
+
});
|
|
229
|
+
|
|
204
230
|
test('match snapshot', () => {
|
|
205
231
|
const { asFragment } = render(
|
|
206
232
|
<Dropdown
|
|
@@ -62,6 +62,10 @@ export interface ExpandableSectionProps extends Omit<React.HTMLProps<HTMLDivElem
|
|
|
62
62
|
toggleAriaLabel?: string;
|
|
63
63
|
/** Accessible name via space delimtted list of IDs for the expandable section toggle. */
|
|
64
64
|
toggleAriaLabelledBy?: string;
|
|
65
|
+
/** Icon shown in toggle when variant is not truncated. */
|
|
66
|
+
toggleIcon?: React.ReactNode;
|
|
67
|
+
/** Whether to show a toggle icon when variant is not truncated. If omitted, it is important to ensure the current state of the ExpandableSection is conveyed, most likely by having dynamic toggle text. */
|
|
68
|
+
hasToggleIcon?: boolean;
|
|
65
69
|
/** Truncates the expandable content to the specified number of lines when using the
|
|
66
70
|
* "truncate" variant.
|
|
67
71
|
*/
|
|
@@ -211,6 +215,8 @@ class ExpandableSection extends Component<ExpandableSectionProps, ExpandableSect
|
|
|
211
215
|
toggleContent,
|
|
212
216
|
toggleAriaLabel,
|
|
213
217
|
toggleAriaLabelledBy,
|
|
218
|
+
toggleIcon = <AngleRightIcon />,
|
|
219
|
+
hasToggleIcon = true,
|
|
214
220
|
children,
|
|
215
221
|
isExpanded,
|
|
216
222
|
isDetached,
|
|
@@ -267,13 +273,10 @@ class ExpandableSection extends Component<ExpandableSectionProps, ExpandableSect
|
|
|
267
273
|
aria-controls={uniqueContentId}
|
|
268
274
|
id={uniqueToggleId}
|
|
269
275
|
onClick={(event) => onToggle(event, !propOrStateIsExpanded)}
|
|
270
|
-
{...(variant !== ExpandableSectionVariant.truncate &&
|
|
271
|
-
|
|
272
|
-
<span className={css(styles.expandableSectionToggleIcon)}>
|
|
273
|
-
|
|
274
|
-
</span>
|
|
275
|
-
)
|
|
276
|
-
})}
|
|
276
|
+
{...(variant !== ExpandableSectionVariant.truncate &&
|
|
277
|
+
hasToggleIcon && {
|
|
278
|
+
icon: <span className={css(styles.expandableSectionToggleIcon)}>{toggleIcon}</span>
|
|
279
|
+
})}
|
|
277
280
|
aria-label={toggleAriaLabel}
|
|
278
281
|
aria-labelledby={toggleAriaLabelledBy}
|
|
279
282
|
>
|
|
@@ -3,6 +3,7 @@ import userEvent from '@testing-library/user-event';
|
|
|
3
3
|
|
|
4
4
|
import { ExpandableSection, ExpandableSectionVariant } from '../ExpandableSection';
|
|
5
5
|
import styles from '@patternfly/react-styles/css/components/ExpandableSection/expandable-section';
|
|
6
|
+
import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
6
7
|
|
|
7
8
|
const props = { contentId: 'content-id', toggleId: 'toggle-id' };
|
|
8
9
|
|
|
@@ -271,3 +272,33 @@ test('Renders with div wrapper when toggleWrapper="div"', () => {
|
|
|
271
272
|
const toggle = screen.getByRole('button').parentElement;
|
|
272
273
|
expect(toggle?.tagName).toBe('DIV');
|
|
273
274
|
});
|
|
275
|
+
|
|
276
|
+
test('Can render custom toggle icon', () => {
|
|
277
|
+
render(<ExpandableSection toggleIcon={<BellIcon data-testid="bell-icon" />}>Test content</ExpandableSection>);
|
|
278
|
+
|
|
279
|
+
expect(screen.getByTestId('bell-icon')).toBeInTheDocument();
|
|
280
|
+
});
|
|
281
|
+
|
|
282
|
+
test('Does not render toggle icon when hasToggleIcon is false', () => {
|
|
283
|
+
render(<ExpandableSection hasToggleIcon={false}>Test content</ExpandableSection>);
|
|
284
|
+
|
|
285
|
+
const button = screen.getByRole('button');
|
|
286
|
+
expect(button.querySelector('.pf-v6-c-expandable-section__toggle-icon')).not.toBeInTheDocument();
|
|
287
|
+
});
|
|
288
|
+
|
|
289
|
+
test('Does not render custom toggle icon when hasToggleIcon is false', () => {
|
|
290
|
+
render(
|
|
291
|
+
<ExpandableSection toggleIcon={<BellIcon data-testid="bell-icon" />} hasToggleIcon={false}>
|
|
292
|
+
Test content
|
|
293
|
+
</ExpandableSection>
|
|
294
|
+
);
|
|
295
|
+
|
|
296
|
+
expect(screen.queryByTestId('bell-icon')).not.toBeInTheDocument();
|
|
297
|
+
});
|
|
298
|
+
|
|
299
|
+
test('Renders toggle icon by default when hasToggleIcon is true', () => {
|
|
300
|
+
render(<ExpandableSection>Test content</ExpandableSection>);
|
|
301
|
+
|
|
302
|
+
const button = screen.getByRole('button');
|
|
303
|
+
expect(button.querySelector('.pf-v6-c-expandable-section__toggle-icon')).toBeInTheDocument();
|
|
304
|
+
});
|