@patternfly/react-core 6.2.0-prerelease.32 → 6.2.0-prerelease.33
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 +6 -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/Toolbar/ToolbarContent.d.ts +9 -0
- package/dist/esm/components/Toolbar/ToolbarContent.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarContent.js +2 -2
- package/dist/esm/components/Toolbar/ToolbarContent.js.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarGroup.d.ts +9 -0
- package/dist/esm/components/Toolbar/ToolbarGroup.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarGroup.js +2 -2
- package/dist/esm/components/Toolbar/ToolbarGroup.js.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarItem.d.ts +9 -0
- package/dist/esm/components/Toolbar/ToolbarItem.d.ts.map +1 -1
- package/dist/esm/components/Toolbar/ToolbarItem.js +2 -2
- package/dist/esm/components/Toolbar/ToolbarItem.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarContent.d.ts +9 -0
- package/dist/js/components/Toolbar/ToolbarContent.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarContent.js +2 -2
- package/dist/js/components/Toolbar/ToolbarContent.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarGroup.d.ts +9 -0
- package/dist/js/components/Toolbar/ToolbarGroup.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarGroup.js +2 -2
- package/dist/js/components/Toolbar/ToolbarGroup.js.map +1 -1
- package/dist/js/components/Toolbar/ToolbarItem.d.ts +9 -0
- package/dist/js/components/Toolbar/ToolbarItem.d.ts.map +1 -1
- package/dist/js/components/Toolbar/ToolbarItem.js +2 -2
- package/dist/js/components/Toolbar/ToolbarItem.js.map +1 -1
- package/dist/umd/assets/{output-wTo4uWW3.css → output-CL2wZaU8.css} +13570 -13570
- 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/Toolbar/ToolbarContent.tsx +11 -0
- package/src/components/Toolbar/ToolbarGroup.tsx +11 -0
- package/src/components/Toolbar/ToolbarItem.tsx +11 -0
- package/src/components/Toolbar/__tests__/Toolbar.test.tsx +29 -0
- package/src/components/Toolbar/__tests__/ToolbarGroup.test.tsx +28 -1
- package/src/components/Toolbar/__tests__/ToolbarItem.test.tsx +27 -0
- package/src/components/Toolbar/examples/Toolbar.md +8 -1
- package/src/components/Toolbar/examples/ToolbarContentWrap.tsx +35 -0
- package/src/components/Toolbar/examples/ToolbarGroupSpacers.tsx +3 -3
- package/src/components/Toolbar/examples/ToolbarItemSpacers.tsx +5 -5
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.2.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.2.0-prerelease.32","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.2.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.2.0-prerelease.32","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.2.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.2.0-prerelease.32","private":true}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@patternfly/react-core",
|
|
3
|
-
"version": "6.2.0-prerelease.
|
|
3
|
+
"version": "6.2.0-prerelease.33",
|
|
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": "6275b2b5911631465950593d2e101414f47f36b9"
|
|
67
67
|
}
|
|
@@ -16,6 +16,15 @@ export interface ToolbarContentProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
16
16
|
xl?: 'hidden' | 'visible';
|
|
17
17
|
'2xl'?: 'hidden' | 'visible';
|
|
18
18
|
};
|
|
19
|
+
/** Value to set for content wrapping at various breakpoints */
|
|
20
|
+
rowWrap?: {
|
|
21
|
+
default?: 'wrap' | 'nowrap';
|
|
22
|
+
sm?: 'wrap' | 'nowrap';
|
|
23
|
+
md?: 'wrap' | 'nowrap';
|
|
24
|
+
lg?: 'wrap' | 'nowrap';
|
|
25
|
+
xl?: 'wrap' | 'nowrap';
|
|
26
|
+
'2xl'?: 'wrap' | 'nowrap';
|
|
27
|
+
};
|
|
19
28
|
/** Vertical alignment of children */
|
|
20
29
|
alignItems?: 'start' | 'center' | 'baseline' | 'default';
|
|
21
30
|
/** Content to be rendered as children of the content row */
|
|
@@ -50,6 +59,7 @@ class ToolbarContent extends Component<ToolbarContentProps> {
|
|
|
50
59
|
isExpanded,
|
|
51
60
|
toolbarId,
|
|
52
61
|
visibility,
|
|
62
|
+
rowWrap,
|
|
53
63
|
alignItems,
|
|
54
64
|
clearAllFilters,
|
|
55
65
|
showClearFiltersButton,
|
|
@@ -95,6 +105,7 @@ class ToolbarContent extends Component<ToolbarContentProps> {
|
|
|
95
105
|
<div
|
|
96
106
|
className={css(
|
|
97
107
|
styles.toolbarContentSection,
|
|
108
|
+
formatBreakpointMods(rowWrap, styles, '', getBreakpoint(width)),
|
|
98
109
|
alignItems === 'center' && styles.modifiers.alignItemsCenter,
|
|
99
110
|
alignItems === 'start' && styles.modifiers.alignItemsStart,
|
|
100
111
|
alignItems === 'baseline' && styles.modifiers.alignItemsBaseline
|
|
@@ -157,6 +157,15 @@ export interface ToolbarGroupProps extends Omit<React.HTMLProps<HTMLDivElement>,
|
|
|
157
157
|
| 'rowGap_3xl'
|
|
158
158
|
| 'rowGap_4xl';
|
|
159
159
|
};
|
|
160
|
+
/** Value to set for row wrapping at various breakpoints */
|
|
161
|
+
rowWrap?: {
|
|
162
|
+
default?: 'wrap' | 'nowrap';
|
|
163
|
+
sm?: 'wrap' | 'nowrap';
|
|
164
|
+
md?: 'wrap' | 'nowrap';
|
|
165
|
+
lg?: 'wrap' | 'nowrap';
|
|
166
|
+
xl?: 'wrap' | 'nowrap';
|
|
167
|
+
'2xl'?: 'wrap' | 'nowrap';
|
|
168
|
+
};
|
|
160
169
|
/** Content to be rendered inside the data toolbar group */
|
|
161
170
|
children?: React.ReactNode;
|
|
162
171
|
/** Flag that modifies the toolbar group to hide overflow and respond to available space. Used for horizontal navigation. */
|
|
@@ -175,6 +184,7 @@ class ToolbarGroupWithRef extends Component<ToolbarGroupProps> {
|
|
|
175
184
|
gap,
|
|
176
185
|
columnGap,
|
|
177
186
|
rowGap,
|
|
187
|
+
rowWrap,
|
|
178
188
|
className,
|
|
179
189
|
variant,
|
|
180
190
|
children,
|
|
@@ -203,6 +213,7 @@ class ToolbarGroupWithRef extends Component<ToolbarGroupProps> {
|
|
|
203
213
|
formatBreakpointMods(gap, styles, '', getBreakpoint(width)),
|
|
204
214
|
formatBreakpointMods(columnGap, styles, '', getBreakpoint(width)),
|
|
205
215
|
formatBreakpointMods(rowGap, styles, '', getBreakpoint(width)),
|
|
216
|
+
formatBreakpointMods(rowWrap, styles, '', getBreakpoint(width)),
|
|
206
217
|
alignItems === 'start' && styles.modifiers.alignItemsStart,
|
|
207
218
|
alignItems === 'center' && styles.modifiers.alignItemsCenter,
|
|
208
219
|
alignItems === 'baseline' && styles.modifiers.alignItemsBaseline,
|
|
@@ -151,6 +151,15 @@ export interface ToolbarItemProps extends React.HTMLProps<HTMLDivElement> {
|
|
|
151
151
|
| 'rowGap_3xl'
|
|
152
152
|
| 'rowGap_4xl';
|
|
153
153
|
};
|
|
154
|
+
/** Value to set for row wrapping at various breakpoints */
|
|
155
|
+
rowWrap?: {
|
|
156
|
+
default?: 'wrap' | 'nowrap';
|
|
157
|
+
sm?: 'wrap' | 'nowrap';
|
|
158
|
+
md?: 'wrap' | 'nowrap';
|
|
159
|
+
lg?: 'wrap' | 'nowrap';
|
|
160
|
+
xl?: 'wrap' | 'nowrap';
|
|
161
|
+
'2xl'?: 'wrap' | 'nowrap';
|
|
162
|
+
};
|
|
154
163
|
/** id for this data toolbar item */
|
|
155
164
|
id?: string;
|
|
156
165
|
/** Flag indicating if the expand-all variant is expanded or not */
|
|
@@ -168,6 +177,7 @@ export const ToolbarItem: React.FunctionComponent<ToolbarItemProps> = ({
|
|
|
168
177
|
gap,
|
|
169
178
|
columnGap,
|
|
170
179
|
rowGap,
|
|
180
|
+
rowWrap,
|
|
171
181
|
align,
|
|
172
182
|
alignSelf,
|
|
173
183
|
alignItems,
|
|
@@ -196,6 +206,7 @@ export const ToolbarItem: React.FunctionComponent<ToolbarItemProps> = ({
|
|
|
196
206
|
formatBreakpointMods(gap, styles, '', getBreakpoint(width)),
|
|
197
207
|
formatBreakpointMods(columnGap, styles, '', getBreakpoint(width)),
|
|
198
208
|
formatBreakpointMods(rowGap, styles, '', getBreakpoint(width)),
|
|
209
|
+
formatBreakpointMods(rowWrap, styles, '', getBreakpoint(width)),
|
|
199
210
|
alignItems === 'start' && styles.modifiers.alignItemsStart,
|
|
200
211
|
alignItems === 'center' && styles.modifiers.alignItemsCenter,
|
|
201
212
|
alignItems === 'baseline' && styles.modifiers.alignItemsBaseline,
|
|
@@ -147,4 +147,33 @@ describe('Toolbar', () => {
|
|
|
147
147
|
|
|
148
148
|
expect(screen.getByTestId('Toolbar-test-secondary-id')).toHaveClass(styles.modifiers.secondary);
|
|
149
149
|
});
|
|
150
|
+
|
|
151
|
+
describe('ToobarContent rowWrap', () => {
|
|
152
|
+
const bps = ['default', 'sm', 'md', 'lg', 'xl', '2xl'];
|
|
153
|
+
|
|
154
|
+
describe.each(bps)(`rowWrap at various breakpoints`, (bp) => {
|
|
155
|
+
it(`should render with pf-m-wrap when rowWrap is set to wrap at ${bp}`, () => {
|
|
156
|
+
render(
|
|
157
|
+
<Toolbar>
|
|
158
|
+
<ToolbarContent data-testid="toolbarconent" rowWrap={{ [bp]: 'wrap' }}>
|
|
159
|
+
Test
|
|
160
|
+
</ToolbarContent>
|
|
161
|
+
</Toolbar>
|
|
162
|
+
);
|
|
163
|
+
const bpWrapClass = bp === 'default' ? 'pf-m-wrap' : `pf-m-wrap-on-${bp}`;
|
|
164
|
+
|
|
165
|
+
expect(screen.getByTestId('toolbarconent').querySelector('div')).toHaveClass(bpWrapClass);
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
it(`should render with pf-m-nowrap when rowWrap is set to nowrap at ${bp}`, () => {
|
|
169
|
+
render(
|
|
170
|
+
<ToolbarContent data-testid="toolbarconent" rowWrap={{ [bp]: 'nowrap' }}>
|
|
171
|
+
Test
|
|
172
|
+
</ToolbarContent>
|
|
173
|
+
);
|
|
174
|
+
const bpNoWrapClass = bp === 'default' ? 'pf-m-nowrap' : `pf-m-nowrap-on-${bp}`;
|
|
175
|
+
expect(screen.getByTestId('toolbarconent').querySelector('div')).toHaveClass(bpNoWrapClass);
|
|
176
|
+
});
|
|
177
|
+
});
|
|
178
|
+
});
|
|
150
179
|
});
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { render, screen } from '@testing-library/react';
|
|
2
2
|
import { ToolbarGroup } from '../ToolbarGroup';
|
|
3
3
|
|
|
4
|
-
describe('
|
|
4
|
+
describe('ToolbarGroup', () => {
|
|
5
5
|
it('should render with pf-m-overflow-container when isOverflowContainer is set', () => {
|
|
6
6
|
render(
|
|
7
7
|
<ToolbarGroup data-testid="toolbargroup" isOverflowContainer>
|
|
@@ -10,4 +10,31 @@ describe('ToolbarItem', () => {
|
|
|
10
10
|
);
|
|
11
11
|
expect(screen.getByTestId('toolbargroup')).toHaveClass('pf-m-overflow-container');
|
|
12
12
|
});
|
|
13
|
+
|
|
14
|
+
describe('ToobarGroup rowWrap', () => {
|
|
15
|
+
const bps = ['default', 'sm', 'md', 'lg', 'xl', '2xl'];
|
|
16
|
+
|
|
17
|
+
describe.each(bps)(`rowWrap at various breakpoints`, (bp) => {
|
|
18
|
+
it(`should render with pf-m-wrap when rowWrap is set to wrap at ${bp}`, () => {
|
|
19
|
+
render(
|
|
20
|
+
<ToolbarGroup data-testid="toolbargroup" rowWrap={{ [bp]: 'wrap' }}>
|
|
21
|
+
Test
|
|
22
|
+
</ToolbarGroup>
|
|
23
|
+
);
|
|
24
|
+
const bpWrapClass = bp === 'default' ? 'pf-m-wrap' : `pf-m-wrap-on-${bp}`;
|
|
25
|
+
|
|
26
|
+
expect(screen.getByTestId('toolbargroup')).toHaveClass(bpWrapClass);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it(`should render with pf-m-nowrap when rowWrap is set to nowrap at ${bp}`, () => {
|
|
30
|
+
render(
|
|
31
|
+
<ToolbarGroup data-testid="toolbargroup" rowWrap={{ [bp]: 'nowrap' }}>
|
|
32
|
+
Test
|
|
33
|
+
</ToolbarGroup>
|
|
34
|
+
);
|
|
35
|
+
const bpNoWrapClass = bp === 'default' ? 'pf-m-nowrap' : `pf-m-nowrap-on-${bp}`;
|
|
36
|
+
expect(screen.getByTestId('toolbargroup')).toHaveClass(bpNoWrapClass);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
13
40
|
});
|
|
@@ -10,4 +10,31 @@ describe('ToolbarItem', () => {
|
|
|
10
10
|
);
|
|
11
11
|
expect(screen.getByTestId('toolbaritem')).toHaveClass('pf-m-overflow-container');
|
|
12
12
|
});
|
|
13
|
+
|
|
14
|
+
describe('ToobarItem rowWrap', () => {
|
|
15
|
+
const bps = ['default', 'sm', 'md', 'lg', 'xl', '2xl'];
|
|
16
|
+
|
|
17
|
+
describe.each(bps)(`rowWrap at various breakpoints`, (bp) => {
|
|
18
|
+
it(`should render with pf-m-wrap when rowWrap is set to wrap at ${bp}`, () => {
|
|
19
|
+
render(
|
|
20
|
+
<ToolbarItem data-testid="toolbaritem" rowWrap={{ [bp]: 'wrap' }}>
|
|
21
|
+
Test
|
|
22
|
+
</ToolbarItem>
|
|
23
|
+
);
|
|
24
|
+
const bpWrapClass = bp === 'default' ? 'pf-m-wrap' : `pf-m-wrap-on-${bp}`;
|
|
25
|
+
|
|
26
|
+
expect(screen.getByTestId('toolbaritem')).toHaveClass(bpWrapClass);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it(`should render with pf-m-nowrap when rowWrap is set to nowrap at ${bp}`, () => {
|
|
30
|
+
render(
|
|
31
|
+
<ToolbarItem data-testid="toolbaritem" rowWrap={{ [bp]: 'nowrap' }}>
|
|
32
|
+
Test
|
|
33
|
+
</ToolbarItem>
|
|
34
|
+
);
|
|
35
|
+
const bpNoWrapClass = bp === 'default' ? 'pf-m-nowrap' : `pf-m-nowrap-on-${bp}`;
|
|
36
|
+
expect(screen.getByTestId('toolbaritem')).toHaveClass(bpNoWrapClass);
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
});
|
|
13
40
|
});
|
|
@@ -113,11 +113,18 @@ When all of a toolbar's required elements cannot fit in a single line, you can s
|
|
|
113
113
|
|
|
114
114
|
```
|
|
115
115
|
|
|
116
|
-
## Examples with
|
|
116
|
+
## Examples with spacers and wrapping
|
|
117
117
|
You may adjust the space between toolbar items to arrange them into groups. Read our spacers documentation to learn more about using spacers.
|
|
118
118
|
|
|
119
119
|
Items are spaced “16px” apart by default and can be modified by changing their or their parents' `gap`, `columnGap`, and `rowGap` properties. You can set the property values at multiple breakpoints, including "default", "md", "lg", "xl", and "2xl".
|
|
120
120
|
|
|
121
|
+
### Toolbar content wrapping
|
|
122
|
+
The toolbar content section will wrap by default, but you can set the `rowRap` property to `noWrap` to make it not wrap.
|
|
123
|
+
|
|
124
|
+
```ts file="./ToolbarContentWrap.tsx"
|
|
125
|
+
|
|
126
|
+
```
|
|
127
|
+
|
|
121
128
|
### Toolbar group spacers
|
|
122
129
|
|
|
123
130
|
```ts file="./ToolbarGroupSpacers.tsx"
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Fragment } from 'react';
|
|
2
|
+
import { Toolbar, ToolbarItem, ToolbarContent } from '@patternfly/react-core';
|
|
3
|
+
import { Button, SearchInput } from '@patternfly/react-core';
|
|
4
|
+
|
|
5
|
+
export const ToolbarItems: React.FunctionComponent = () => {
|
|
6
|
+
const items = (
|
|
7
|
+
<Fragment>
|
|
8
|
+
<ToolbarItem>
|
|
9
|
+
<SearchInput aria-label="Items example search input" />
|
|
10
|
+
</ToolbarItem>
|
|
11
|
+
<ToolbarItem>
|
|
12
|
+
<Button variant="secondary">Action</Button>
|
|
13
|
+
</ToolbarItem>
|
|
14
|
+
<ToolbarItem>
|
|
15
|
+
<Button variant="secondary">Action</Button>
|
|
16
|
+
</ToolbarItem>
|
|
17
|
+
<ToolbarItem>
|
|
18
|
+
<Button variant="secondary">Action</Button>
|
|
19
|
+
</ToolbarItem>
|
|
20
|
+
<ToolbarItem>
|
|
21
|
+
<Button variant="secondary">Action</Button>
|
|
22
|
+
</ToolbarItem>
|
|
23
|
+
<ToolbarItem variant="separator" />
|
|
24
|
+
<ToolbarItem>
|
|
25
|
+
<Button variant="primary">Action</Button>
|
|
26
|
+
</ToolbarItem>
|
|
27
|
+
</Fragment>
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
return (
|
|
31
|
+
<Toolbar id="toolbar-items-example">
|
|
32
|
+
<ToolbarContent rowWrap={{ default: 'nowrap' }}>{items}</ToolbarContent>
|
|
33
|
+
</Toolbar>
|
|
34
|
+
);
|
|
35
|
+
};
|
|
@@ -76,7 +76,7 @@ export const ToolbarGroupSpacers: React.FunctionComponent = () => {
|
|
|
76
76
|
|
|
77
77
|
const groupRowGapItems = (
|
|
78
78
|
<Fragment>
|
|
79
|
-
<ToolbarGroup
|
|
79
|
+
<ToolbarGroup rowGap={{ default: 'rowGapNone' }} rowWrap={{ default: 'wrap' }}>
|
|
80
80
|
<ToolbarItem>
|
|
81
81
|
<Button variant="secondary">No Row Gap</Button>
|
|
82
82
|
</ToolbarItem>
|
|
@@ -103,7 +103,7 @@ export const ToolbarGroupSpacers: React.FunctionComponent = () => {
|
|
|
103
103
|
</ToolbarItem>
|
|
104
104
|
<ToolbarItem variant="separator"></ToolbarItem>
|
|
105
105
|
</ToolbarGroup>
|
|
106
|
-
<ToolbarGroup
|
|
106
|
+
<ToolbarGroup rowGap={{ default: 'rowGapSm' }} rowWrap={{ default: 'wrap' }}>
|
|
107
107
|
<ToolbarItem>
|
|
108
108
|
<Button variant="secondary">Small Row Gap</Button>
|
|
109
109
|
</ToolbarItem>
|
|
@@ -130,7 +130,7 @@ export const ToolbarGroupSpacers: React.FunctionComponent = () => {
|
|
|
130
130
|
</ToolbarItem>
|
|
131
131
|
<ToolbarItem variant="separator"></ToolbarItem>
|
|
132
132
|
</ToolbarGroup>
|
|
133
|
-
<ToolbarGroup
|
|
133
|
+
<ToolbarGroup rowGap={{ default: 'rowGapXl' }} rowWrap={{ default: 'wrap' }}>
|
|
134
134
|
<ToolbarItem>
|
|
135
135
|
<Button variant="secondary">Extra Large Row Gap</Button>
|
|
136
136
|
</ToolbarItem>
|
|
@@ -5,7 +5,7 @@ import { Button } from '@patternfly/react-core';
|
|
|
5
5
|
export const ToolbarItemSpacers: React.FunctionComponent = () => {
|
|
6
6
|
const itemGapItems = (
|
|
7
7
|
<Fragment>
|
|
8
|
-
<ToolbarGroup
|
|
8
|
+
<ToolbarGroup rowWrap={{ default: 'wrap' }}>
|
|
9
9
|
<ToolbarItem gap={{ default: 'gapNone' }}>
|
|
10
10
|
<Button variant="secondary">No Gap</Button>
|
|
11
11
|
<Button variant="secondary">No Gap</Button>
|
|
@@ -26,7 +26,7 @@ export const ToolbarItemSpacers: React.FunctionComponent = () => {
|
|
|
26
26
|
|
|
27
27
|
const itemColumnGapItems = (
|
|
28
28
|
<Fragment>
|
|
29
|
-
<ToolbarGroup
|
|
29
|
+
<ToolbarGroup rowWrap={{ default: 'wrap' }}>
|
|
30
30
|
<ToolbarItem columnGap={{ default: 'columnGapNone' }}>
|
|
31
31
|
<Button variant="secondary">No Column Gap</Button>
|
|
32
32
|
<Button variant="secondary">No Column Gap</Button>
|
|
@@ -48,17 +48,17 @@ export const ToolbarItemSpacers: React.FunctionComponent = () => {
|
|
|
48
48
|
const itemRowGapItems = (
|
|
49
49
|
<Fragment>
|
|
50
50
|
<ToolbarGroup>
|
|
51
|
-
<ToolbarItem
|
|
51
|
+
<ToolbarItem rowGap={{ default: 'rowGapNone' }} rowWrap={{ default: 'wrap' }}>
|
|
52
52
|
<Button variant="secondary">No Row Gap</Button>
|
|
53
53
|
<Button variant="secondary">No Row Gap</Button>
|
|
54
54
|
</ToolbarItem>
|
|
55
55
|
<ToolbarItem variant="separator"></ToolbarItem>
|
|
56
|
-
<ToolbarItem
|
|
56
|
+
<ToolbarItem rowGap={{ default: 'rowGapSm' }} rowWrap={{ default: 'wrap' }}>
|
|
57
57
|
<Button variant="secondary">Small Row Gap</Button>
|
|
58
58
|
<Button variant="secondary">Small Row Gap</Button>
|
|
59
59
|
</ToolbarItem>
|
|
60
60
|
<ToolbarItem variant="separator"></ToolbarItem>
|
|
61
|
-
<ToolbarItem
|
|
61
|
+
<ToolbarItem rowGap={{ default: 'rowGapXl' }} rowWrap={{ default: 'wrap' }}>
|
|
62
62
|
<Button variant="secondary">Extra Large Row Gap</Button>
|
|
63
63
|
<Button variant="secondary">Extra Large Row Gap</Button>
|
|
64
64
|
</ToolbarItem>
|