@patternfly/react-core 6.0.0-alpha.10 → 6.0.0-alpha.12
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 +11 -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/Chip/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/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/DragDrop/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/Text/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/Tile/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/ApplicationLauncher/package.json +1 -1
- package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
- package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
- package/dist/dynamic/deprecated/components/Select/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/favorites/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/next/components/package.json +1 -1
- package/dist/esm/components/Button/Button.d.ts +14 -4
- package/dist/esm/components/Button/Button.d.ts.map +1 -1
- package/dist/esm/components/Button/Button.js +9 -8
- package/dist/esm/components/Button/Button.js.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.js +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
- package/dist/esm/components/Nav/Nav.d.ts +1 -3
- package/dist/esm/components/Nav/Nav.d.ts.map +1 -1
- package/dist/esm/components/Nav/Nav.js +4 -5
- package/dist/esm/components/Nav/Nav.js.map +1 -1
- package/dist/esm/components/Nav/NavExpandable.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavExpandable.js +1 -1
- package/dist/esm/components/Nav/NavExpandable.js.map +1 -1
- package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavItem.js +4 -2
- package/dist/esm/components/Nav/NavItem.js.map +1 -1
- package/dist/esm/components/Nav/NavList.d.ts.map +1 -1
- package/dist/esm/components/Nav/NavList.js +9 -4
- package/dist/esm/components/Nav/NavList.js.map +1 -1
- package/dist/esm/components/Page/Page.d.ts +6 -6
- package/dist/esm/components/Page/Page.d.ts.map +1 -1
- package/dist/esm/components/Page/Page.js +9 -9
- package/dist/esm/components/Page/Page.js.map +1 -1
- package/dist/js/components/Button/Button.d.ts +14 -4
- package/dist/js/components/Button/Button.d.ts.map +1 -1
- package/dist/js/components/Button/Button.js +10 -9
- package/dist/js/components/Button/Button.js.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.js +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSectionToggle.js.map +1 -1
- package/dist/js/components/Nav/Nav.d.ts +1 -3
- package/dist/js/components/Nav/Nav.d.ts.map +1 -1
- package/dist/js/components/Nav/Nav.js +4 -5
- package/dist/js/components/Nav/Nav.js.map +1 -1
- package/dist/js/components/Nav/NavExpandable.d.ts.map +1 -1
- package/dist/js/components/Nav/NavExpandable.js +1 -1
- package/dist/js/components/Nav/NavExpandable.js.map +1 -1
- package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
- package/dist/js/components/Nav/NavItem.js +4 -2
- package/dist/js/components/Nav/NavItem.js.map +1 -1
- package/dist/js/components/Nav/NavList.d.ts.map +1 -1
- package/dist/js/components/Nav/NavList.js +9 -4
- package/dist/js/components/Nav/NavList.js.map +1 -1
- package/dist/js/components/Page/Page.d.ts +6 -6
- package/dist/js/components/Page/Page.d.ts.map +1 -1
- package/dist/js/components/Page/Page.js +9 -9
- package/dist/js/components/Page/Page.js.map +1 -1
- 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 +6 -6
- package/src/components/Button/Button.tsx +21 -9
- package/src/components/Button/__tests__/Button.test.tsx +20 -5
- package/src/components/Button/__tests__/__snapshots__/Button.test.tsx.snap +1 -1
- package/src/components/Button/examples/Button.md +17 -0
- package/src/components/Button/examples/ButtonAriaDisabled.tsx +21 -45
- package/src/components/Button/examples/ButtonCallToAction.tsx +8 -10
- package/src/components/Button/examples/ButtonDisabled.tsx +44 -31
- package/src/components/Button/examples/ButtonLinks.tsx +14 -14
- package/src/components/Button/examples/ButtonPlainHasNoPadding.tsx +13 -0
- package/src/components/Button/examples/ButtonProgress.tsx +22 -17
- package/src/components/Button/examples/ButtonSmall.tsx +7 -9
- package/src/components/Button/examples/ButtonStateful.tsx +32 -0
- package/src/components/Button/examples/ButtonTypes.tsx +6 -4
- package/src/components/Button/examples/ButtonVariations.tsx +58 -43
- package/src/components/Button/examples/ButtonWithCount.tsx +75 -68
- package/src/components/ExpandableSection/ExpandableSection.tsx +1 -1
- package/src/components/ExpandableSection/ExpandableSectionToggle.tsx +1 -1
- package/src/components/ExpandableSection/examples/ExpandableSection.md +5 -1
- package/src/components/ExpandableSection/examples/ExpandableSectionIndented.tsx +24 -11
- package/src/components/Nav/Nav.tsx +5 -11
- package/src/components/Nav/NavExpandable.tsx +0 -1
- package/src/components/Nav/NavItem.tsx +4 -2
- package/src/components/Nav/NavList.tsx +27 -18
- package/src/components/Nav/__tests__/Generated/__snapshots__/NavExpandable.test.tsx.snap +1 -1
- package/src/components/Nav/__tests__/Nav.test.tsx +2 -32
- package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +156 -362
- package/src/components/Nav/examples/Nav.md +0 -6
- package/src/components/Nav/examples/NavExpandable.tsx +1 -2
- package/src/components/Nav/examples/nav.css +0 -14
- package/src/components/Page/Page.tsx +16 -16
- package/src/components/Page/__tests__/Page.test.tsx +5 -5
- package/src/components/Page/__tests__/__snapshots__/Page.test.tsx.snap +178 -106
- package/src/components/Page/examples/Page.md +1 -11
- package/src/components/Page/examples/PageGroupSection.tsx +1 -1
- package/src/demos/Nav.md +0 -10
- package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +1 -2
- package/src/components/Nav/examples/NavLegacyTertiary.tsx +0 -32
- package/src/components/Page/examples/PageTertiaryNav.tsx +0 -41
- package/src/demos/examples/Nav/deprecated/NavLight.tsx +0 -95
- package/src/demos/examples/Nav/deprecated/NavTertiary.tsx +0 -91
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.0.0-alpha.
|
|
1
|
+
{"name":"@patternfly/react-core-helpers","main":"../dist/js/helpers/index.js","module":"../dist/esm/helpers/index.js","typings":"../dist/esm/helpers/index.d.ts","version":"6.0.0-alpha.11","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.0.0-alpha.
|
|
1
|
+
{"name":"@patternfly/react-core-layouts","main":"../dist/js/layouts/index.js","module":"../dist/esm/layouts/index.js","typings":"../dist/esm/layouts/index.d.ts","version":"6.0.0-alpha.11","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.0.0-alpha.
|
|
1
|
+
{"name":"@patternfly/react-core-next","main":"../dist/js/next/index.js","module":"../dist/esm/next/index.js","typings":"../dist/esm/next/index.d.ts","version":"6.0.0-alpha.11","private":true}
|
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.12",
|
|
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",
|
|
@@ -46,15 +46,15 @@
|
|
|
46
46
|
"subpaths": "node ../../scripts/exportSubpaths.js --config subpaths.config.json"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"@patternfly/react-icons": "^6.0.0-alpha.
|
|
50
|
-
"@patternfly/react-styles": "^6.0.0-alpha.
|
|
51
|
-
"@patternfly/react-tokens": "^6.0.0-alpha.
|
|
49
|
+
"@patternfly/react-icons": "^6.0.0-alpha.7",
|
|
50
|
+
"@patternfly/react-styles": "^6.0.0-alpha.7",
|
|
51
|
+
"@patternfly/react-tokens": "^6.0.0-alpha.7",
|
|
52
52
|
"focus-trap": "7.5.2",
|
|
53
53
|
"react-dropzone": "^14.2.3",
|
|
54
54
|
"tslib": "^2.5.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@patternfly/patternfly": "6.0.0-alpha.
|
|
57
|
+
"@patternfly/patternfly": "6.0.0-alpha.51",
|
|
58
58
|
"@rollup/plugin-commonjs": "^25.0.0",
|
|
59
59
|
"@rollup/plugin-node-resolve": "^15.0.2",
|
|
60
60
|
"@rollup/plugin-replace": "^5.0.2",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"react": "^17 || ^18",
|
|
73
73
|
"react-dom": "^17 || ^18"
|
|
74
74
|
},
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "87d0bb0109fc927bcc3cec91bf034912507caa56"
|
|
76
76
|
}
|
|
@@ -13,7 +13,8 @@ export enum ButtonVariant {
|
|
|
13
13
|
warning = 'warning',
|
|
14
14
|
link = 'link',
|
|
15
15
|
plain = 'plain',
|
|
16
|
-
control = 'control'
|
|
16
|
+
control = 'control',
|
|
17
|
+
stateful = 'stateful'
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
export enum ButtonType {
|
|
@@ -28,6 +29,12 @@ export enum ButtonSize {
|
|
|
28
29
|
lg = 'lg'
|
|
29
30
|
}
|
|
30
31
|
|
|
32
|
+
export enum ButtonState {
|
|
33
|
+
read = 'read',
|
|
34
|
+
unread = 'unread',
|
|
35
|
+
attention = 'attention'
|
|
36
|
+
}
|
|
37
|
+
|
|
31
38
|
export interface BadgeCountObject {
|
|
32
39
|
/** Adds styling to the badge to indicate it has been read */
|
|
33
40
|
isRead?: boolean;
|
|
@@ -44,8 +51,8 @@ export interface ButtonProps extends Omit<React.HTMLProps<HTMLButtonElement>, 'r
|
|
|
44
51
|
className?: string;
|
|
45
52
|
/** Sets the base component to render. defaults to button */
|
|
46
53
|
component?: React.ElementType<any> | React.ComponentType<any>;
|
|
47
|
-
/** Adds
|
|
48
|
-
|
|
54
|
+
/** Adds clicked styling to button. */
|
|
55
|
+
isClicked?: boolean;
|
|
49
56
|
/** Adds block styling to button */
|
|
50
57
|
isBlock?: boolean;
|
|
51
58
|
/** Adds disabled styling and disables the button using the disabled html attribute */
|
|
@@ -69,7 +76,11 @@ export interface ButtonProps extends Omit<React.HTMLProps<HTMLButtonElement>, 'r
|
|
|
69
76
|
/** Sets button type */
|
|
70
77
|
type?: 'button' | 'submit' | 'reset';
|
|
71
78
|
/** Adds button variant styles */
|
|
72
|
-
variant?: 'primary' | 'secondary' | 'tertiary' | 'danger' | 'warning' | 'link' | 'plain' | 'control';
|
|
79
|
+
variant?: 'primary' | 'secondary' | 'tertiary' | 'danger' | 'warning' | 'link' | 'plain' | 'control' | 'stateful';
|
|
80
|
+
/** Sets state of the stateful button variant. Default is "unread" */
|
|
81
|
+
state?: 'read' | 'unread' | 'attention';
|
|
82
|
+
/** Applies no padding on a plain button variant. Use when plain button is placed inline with text */
|
|
83
|
+
hasNoPadding?: boolean;
|
|
73
84
|
/** Sets position of the icon. Note: "left" and "right" are deprecated. Use "start" and "end" instead */
|
|
74
85
|
iconPosition?: 'start' | 'end' | 'left' | 'right';
|
|
75
86
|
/** Adds accessible text to the button. */
|
|
@@ -94,9 +105,7 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
|
|
|
94
105
|
children = null,
|
|
95
106
|
className = '',
|
|
96
107
|
component = 'button',
|
|
97
|
-
|
|
98
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
99
|
-
isActive = false,
|
|
108
|
+
isClicked = false,
|
|
100
109
|
isBlock = false,
|
|
101
110
|
isDisabled = false,
|
|
102
111
|
isAriaDisabled = false,
|
|
@@ -110,6 +119,8 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
|
|
|
110
119
|
isInline = false,
|
|
111
120
|
type = ButtonType.button,
|
|
112
121
|
variant = ButtonVariant.primary,
|
|
122
|
+
state = ButtonState.unread,
|
|
123
|
+
hasNoPadding = false,
|
|
113
124
|
iconPosition = 'start',
|
|
114
125
|
'aria-label': ariaLabel = null,
|
|
115
126
|
icon = null,
|
|
@@ -157,12 +168,13 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
|
|
|
157
168
|
isBlock && styles.modifiers.block,
|
|
158
169
|
isDisabled && styles.modifiers.disabled,
|
|
159
170
|
isAriaDisabled && styles.modifiers.ariaDisabled,
|
|
160
|
-
|
|
161
|
-
// isActive && styles.modifiers.active,
|
|
171
|
+
isClicked && styles.modifiers.clicked,
|
|
162
172
|
isInline && variant === ButtonVariant.link && styles.modifiers.inline,
|
|
163
173
|
isDanger && (variant === ButtonVariant.secondary || variant === ButtonVariant.link) && styles.modifiers.danger,
|
|
164
174
|
isLoading !== null && variant !== ButtonVariant.plain && styles.modifiers.progress,
|
|
165
175
|
isLoading && styles.modifiers.inProgress,
|
|
176
|
+
hasNoPadding && variant === ButtonVariant.plain && styles.modifiers.noPadding,
|
|
177
|
+
variant === ButtonVariant.stateful && styles.modifiers[state],
|
|
166
178
|
size === ButtonSize.sm && styles.modifiers.small,
|
|
167
179
|
size === ButtonSize.lg && styles.modifiers.displayLg,
|
|
168
180
|
className
|
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
|
|
3
3
|
import { render, screen } from '@testing-library/react';
|
|
4
4
|
|
|
5
|
-
import { Button, ButtonVariant } from '../Button';
|
|
5
|
+
import { Button, ButtonState, ButtonVariant } from '../Button';
|
|
6
6
|
|
|
7
7
|
Object.values(ButtonVariant).forEach((variant) => {
|
|
8
8
|
if (variant !== 'primary') {
|
|
@@ -55,10 +55,9 @@ test('Renders with class pf-m-block when isBlock = true', () => {
|
|
|
55
55
|
expect(screen.getByRole('button')).toHaveClass('pf-m-block');
|
|
56
56
|
});
|
|
57
57
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
expect(screen.getByRole('button')).toHaveClass('pf-m-active');
|
|
58
|
+
xtest('Renders with class pf-m-clicked when isClicked = true', () => {
|
|
59
|
+
render(<Button isClicked>Clicked Button</Button>);
|
|
60
|
+
expect(screen.getByRole('button')).toHaveClass('pf-m-clicked');
|
|
62
61
|
});
|
|
63
62
|
|
|
64
63
|
test('Renders with class pf-m-disabled when isDisabled = true', () => {
|
|
@@ -80,6 +79,22 @@ test('Does not disable button when isDisabled = true and component = a', () => {
|
|
|
80
79
|
expect(screen.getByText('Disabled yet focusable button')).not.toHaveProperty('disabled');
|
|
81
80
|
});
|
|
82
81
|
|
|
82
|
+
test('Renders with class pf-m-unread by default when variant = stateful', () => {
|
|
83
|
+
render(<Button variant="stateful">Stateful Button</Button>);
|
|
84
|
+
expect(screen.getByRole('button')).toHaveClass('pf-m-stateful', 'pf-m-unread');
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
Object.values(ButtonState).forEach((state) => {
|
|
88
|
+
test(`Renders with class pf-m-${state} when state = ${state} and variant = stateful`, () => {
|
|
89
|
+
render(
|
|
90
|
+
<Button variant="stateful" state={state}>
|
|
91
|
+
Stateful Button - {state}
|
|
92
|
+
</Button>
|
|
93
|
+
);
|
|
94
|
+
expect(screen.getByRole('button')).toHaveClass('pf-m-stateful', `pf-m-${state}`);
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
|
|
83
98
|
test('Renders with class pf-m-danger when isDanger = true and variant = secondary', () => {
|
|
84
99
|
render(
|
|
85
100
|
<Button variant="secondary" isDanger>
|
|
@@ -6,7 +6,7 @@ exports[`Renders basic button 1`] = `
|
|
|
6
6
|
aria-disabled="false"
|
|
7
7
|
aria-label="basic button"
|
|
8
8
|
class="pf-v5-c-button pf-m-primary"
|
|
9
|
-
data-ouia-component-id="OUIA-Generated-Button-primary-
|
|
9
|
+
data-ouia-component-id="OUIA-Generated-Button-primary-27"
|
|
10
10
|
data-ouia-component-type="PF5/Button"
|
|
11
11
|
data-ouia-safe="true"
|
|
12
12
|
type="button"
|
|
@@ -12,6 +12,8 @@ import ExternalLinkSquareAltIcon from '@patternfly/react-icons/dist/esm/icons/ex
|
|
|
12
12
|
import CopyIcon from '@patternfly/react-icons/dist/esm/icons/copy-icon';
|
|
13
13
|
import ArrowRightIcon from '@patternfly/react-icons/dist/esm/icons/arrow-right-icon';
|
|
14
14
|
import UploadIcon from '@patternfly/react-icons/dist/esm/icons/upload-icon';
|
|
15
|
+
import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
16
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
|
|
15
17
|
import { Link } from '@reach/router';
|
|
16
18
|
|
|
17
19
|
## Examples
|
|
@@ -33,6 +35,7 @@ PatternFly supports several button styling variants to be used in different scen
|
|
|
33
35
|
| Link | Links are labeled, but have no background or border. Use for actions that require less emphasis, actions that navigate users to another page within the same window, and/or actions that navigate to external pages in a new window. Links may be placed inline with text using the `isInline` property.|
|
|
34
36
|
| Plain | Plain buttons have no styling and are intended to be labeled with icons. |
|
|
35
37
|
| Control | Control buttons can be labeled with text or icons. Primarily intended to be paired with other controls in an [input group](/components/input-group). |
|
|
38
|
+
| Stateful | Stateful buttons are ideal for displaying the state of notifications. They have 3 states: `read`, `unread` and `attention`.
|
|
36
39
|
|
|
37
40
|
### Disabled buttons
|
|
38
41
|
|
|
@@ -107,3 +110,17 @@ Buttons can display a `count` in the form of a badge to indicate some value or n
|
|
|
107
110
|
|
|
108
111
|
```ts file="./ButtonWithCount.tsx" isBeta
|
|
109
112
|
```
|
|
113
|
+
|
|
114
|
+
### Plain with no padding
|
|
115
|
+
|
|
116
|
+
To display a plain/icon button inline with text, use `noPadding` prop in addition to `variant="plain"`.
|
|
117
|
+
|
|
118
|
+
```ts file="./ButtonPlainHasNoPadding.tsx"
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### Stateful
|
|
122
|
+
|
|
123
|
+
Stateful buttons are ideal for displaying the state of notifications. Use `variant="stateful"` alongside with the `state` property, which can have these 3 values: `read`, `unread` (used as default) and `attention` (which means unread and requires attention).
|
|
124
|
+
|
|
125
|
+
```ts file="./ButtonStateful.tsx"
|
|
126
|
+
```
|
|
@@ -1,52 +1,28 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Button, Tooltip } from '@patternfly/react-core';
|
|
3
|
-
import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
2
|
+
import { Button, Flex, Tooltip } from '@patternfly/react-core';
|
|
4
3
|
import PlusCircleIcon from '@patternfly/react-icons/dist/esm/icons/plus-circle-icon';
|
|
5
4
|
|
|
6
5
|
export const ButtonAriaDisabled: React.FunctionComponent = () => (
|
|
7
|
-
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
</Button>{' '}
|
|
13
|
-
<Button isAriaDisabled variant="tertiary">
|
|
14
|
-
Tertiary aria disabled
|
|
15
|
-
</Button>{' '}
|
|
16
|
-
<Button isAriaDisabled variant="danger">
|
|
17
|
-
Danger disabled
|
|
18
|
-
</Button>{' '}
|
|
19
|
-
<Button isAriaDisabled variant="warning">
|
|
20
|
-
Warning disabled
|
|
21
|
-
</Button>
|
|
22
|
-
<br />
|
|
23
|
-
<br />
|
|
24
|
-
<Button isAriaDisabled variant="link" icon={<PlusCircleIcon />}>
|
|
25
|
-
Link aria disabled
|
|
26
|
-
</Button>{' '}
|
|
27
|
-
<Button isAriaDisabled variant="link" isInline>
|
|
28
|
-
Inline link aria disabled
|
|
29
|
-
</Button>{' '}
|
|
30
|
-
<Button variant="link" isDanger isAriaDisabled>
|
|
31
|
-
Danger link disabled
|
|
32
|
-
</Button>{' '}
|
|
33
|
-
<Button isAriaDisabled variant="plain" aria-label="Action">
|
|
34
|
-
<TimesIcon />
|
|
35
|
-
</Button>{' '}
|
|
36
|
-
<Button isAriaDisabled variant="control">
|
|
37
|
-
Control aria disabled
|
|
38
|
-
</Button>
|
|
39
|
-
<br />
|
|
40
|
-
<br />
|
|
41
|
-
<Tooltip content="Aria-disabled buttons are like disabled buttons, but focusable. Allows for tooltip support.">
|
|
42
|
-
<Button isAriaDisabled variant="secondary">
|
|
43
|
-
Secondary button to core docs
|
|
6
|
+
<>
|
|
7
|
+
<Flex columnGap={{ default: 'columnGapSm' }}>
|
|
8
|
+
<Button isAriaDisabled>Primary aria disabled</Button>
|
|
9
|
+
<Button isAriaDisabled variant="link" icon={<PlusCircleIcon />}>
|
|
10
|
+
Link aria disabled
|
|
44
11
|
</Button>
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
<Button component="a" isAriaDisabled href="https://pf4.patternfly.org/" target="_blank" variant="tertiary">
|
|
48
|
-
Tertiary link as button to core docs
|
|
12
|
+
<Button isAriaDisabled variant="link" isInline>
|
|
13
|
+
Inline link aria disabled
|
|
49
14
|
</Button>
|
|
50
|
-
</
|
|
51
|
-
|
|
15
|
+
</Flex>
|
|
16
|
+
<br />
|
|
17
|
+
<Flex columnGap={{ default: 'columnGapSm' }}>
|
|
18
|
+
<Tooltip content="Aria-disabled buttons are like disabled buttons, but focusable. Allows for tooltip support.">
|
|
19
|
+
<Button isAriaDisabled>Primary button with tooltip</Button>
|
|
20
|
+
</Tooltip>
|
|
21
|
+
<Tooltip content="Aria-disabled link as button with tooltip">
|
|
22
|
+
<Button component="a" isAriaDisabled href="https://www.patternfly.org/" target="_blank" variant="secondary">
|
|
23
|
+
Secondary link as button to PatternFly home
|
|
24
|
+
</Button>
|
|
25
|
+
</Tooltip>
|
|
26
|
+
</Flex>
|
|
27
|
+
</>
|
|
52
28
|
);
|
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Button } from '@patternfly/react-core';
|
|
2
|
+
import { Button, Flex } from '@patternfly/react-core';
|
|
3
3
|
import ArrowRightIcon from '@patternfly/react-icons/dist/esm/icons/arrow-right-icon';
|
|
4
4
|
|
|
5
5
|
export const ButtonCallToAction: React.FunctionComponent = () => (
|
|
6
|
-
<
|
|
6
|
+
<Flex columnGap={{ default: 'columnGapSm' }}>
|
|
7
7
|
<Button variant="primary" size="lg">
|
|
8
8
|
Call to action
|
|
9
|
-
</Button>
|
|
9
|
+
</Button>
|
|
10
10
|
<Button variant="secondary" size="lg">
|
|
11
11
|
Call to action
|
|
12
|
-
</Button>
|
|
12
|
+
</Button>
|
|
13
13
|
<Button variant="tertiary" size="lg">
|
|
14
14
|
Call to action
|
|
15
|
-
</Button>{' '}
|
|
16
|
-
<Button variant="link" size="lg">
|
|
17
|
-
Call to action <ArrowRightIcon />
|
|
18
15
|
</Button>
|
|
19
|
-
<
|
|
20
|
-
|
|
21
|
-
|
|
16
|
+
<Button variant="link" size="lg" icon={<ArrowRightIcon />} iconPosition="end">
|
|
17
|
+
Call to action
|
|
18
|
+
</Button>
|
|
19
|
+
</Flex>
|
|
22
20
|
);
|
|
@@ -1,39 +1,52 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Button } from '@patternfly/react-core';
|
|
2
|
+
import { Button, Flex } from '@patternfly/react-core';
|
|
3
3
|
import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
|
|
4
4
|
import PlusCircleIcon from '@patternfly/react-icons/dist/esm/icons/plus-circle-icon';
|
|
5
|
+
import CopyIcon from '@patternfly/react-icons/dist/esm/icons/copy-icon';
|
|
5
6
|
|
|
6
7
|
export const ButtonDisabled: React.FunctionComponent = () => (
|
|
7
|
-
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
<>
|
|
9
|
+
<Flex columnGap={{ default: 'columnGapSm' }}>
|
|
10
|
+
<Button isDisabled>Primary</Button>
|
|
11
|
+
<Button variant="secondary" isDisabled>
|
|
12
|
+
Secondary
|
|
13
|
+
</Button>
|
|
14
|
+
<Button variant="secondary" isDanger isDisabled>
|
|
15
|
+
Danger secondary
|
|
16
|
+
</Button>
|
|
17
|
+
<Button isDisabled variant="tertiary">
|
|
18
|
+
Tertiary
|
|
19
|
+
</Button>
|
|
20
|
+
<Button isDisabled variant="danger">
|
|
21
|
+
Danger
|
|
22
|
+
</Button>
|
|
23
|
+
<Button isDisabled variant="warning">
|
|
24
|
+
Warning
|
|
25
|
+
</Button>
|
|
26
|
+
</Flex>
|
|
21
27
|
<br />
|
|
28
|
+
<Flex columnGap={{ default: 'columnGapSm' }}>
|
|
29
|
+
<Button isDisabled variant="link" icon={<PlusCircleIcon />}>
|
|
30
|
+
Link
|
|
31
|
+
</Button>
|
|
32
|
+
<Button isDisabled variant="link" isInline>
|
|
33
|
+
Inline link
|
|
34
|
+
</Button>
|
|
35
|
+
<Button variant="link" isDanger isDisabled>
|
|
36
|
+
Danger link
|
|
37
|
+
</Button>
|
|
38
|
+
<Button isDisabled variant="plain" aria-label="Action">
|
|
39
|
+
<TimesIcon />
|
|
40
|
+
</Button>
|
|
41
|
+
</Flex>
|
|
22
42
|
<br />
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
<Button isDisabled variant="plain" aria-label="Action">
|
|
33
|
-
<TimesIcon />
|
|
34
|
-
</Button>{' '}
|
|
35
|
-
<Button isDisabled variant="control">
|
|
36
|
-
Control disabled
|
|
37
|
-
</Button>
|
|
38
|
-
</React.Fragment>
|
|
43
|
+
<Flex columnGap={{ default: 'columnGapSm' }}>
|
|
44
|
+
<Button isDisabled variant="control">
|
|
45
|
+
Control
|
|
46
|
+
</Button>
|
|
47
|
+
<Button isDisabled variant="control" aria-label="Copy">
|
|
48
|
+
<CopyIcon />
|
|
49
|
+
</Button>
|
|
50
|
+
</Flex>
|
|
51
|
+
</>
|
|
39
52
|
);
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Button } from '@patternfly/react-core';
|
|
2
|
+
import { Button, Flex } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
4
|
export const ButtonLinks: React.FunctionComponent = () => (
|
|
5
|
-
<
|
|
6
|
-
<Button component="a" href="https://
|
|
7
|
-
Link to
|
|
8
|
-
</Button>{' '}
|
|
9
|
-
<Button component="a" href="https://pf4.patternfly.org/" target="_blank" variant="secondary">
|
|
10
|
-
Secondary link to core docs
|
|
11
|
-
</Button>{' '}
|
|
12
|
-
<Button isDisabled component="a" href="https://pf4.patternfly.org/" target="_blank" variant="tertiary">
|
|
13
|
-
Tertiary link to core docs
|
|
14
|
-
</Button>{' '}
|
|
15
|
-
<Button component="a" href="https://pf4.patternfly.org/contribution/#modifiers" variant="link">
|
|
16
|
-
Jump to modifiers in contribution guidelines
|
|
5
|
+
<Flex>
|
|
6
|
+
<Button component="a" href="https://www.patternfly.org/" target="_blank" variant="primary">
|
|
7
|
+
Link to PatternFly home
|
|
17
8
|
</Button>
|
|
18
|
-
|
|
9
|
+
<Button component="a" href="https://www.patternfly.org/" target="_blank" variant="secondary">
|
|
10
|
+
Secondary link to PatternFly home
|
|
11
|
+
</Button>
|
|
12
|
+
<Button isDisabled component="a" href="https://www.patternfly.org/" target="_blank" variant="tertiary">
|
|
13
|
+
Tertiary link to PatternFly home
|
|
14
|
+
</Button>
|
|
15
|
+
<Button component="a" href="https://www.patternfly.org/" variant="link">
|
|
16
|
+
Jump to PatternFly home
|
|
17
|
+
</Button>
|
|
18
|
+
</Flex>
|
|
19
19
|
);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Button } from '@patternfly/react-core';
|
|
3
|
+
import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
|
|
4
|
+
|
|
5
|
+
export const ButtonPlainHasNoPadding: React.FunctionComponent = () => (
|
|
6
|
+
<p>
|
|
7
|
+
This is an example of a button
|
|
8
|
+
<Button variant="plain" hasNoPadding aria-label="More info">
|
|
9
|
+
<QuestionCircleIcon />
|
|
10
|
+
</Button>
|
|
11
|
+
which is placed inline with text
|
|
12
|
+
</p>
|
|
13
|
+
);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Button } from '@patternfly/react-core';
|
|
2
|
+
import { Button, Flex } from '@patternfly/react-core';
|
|
3
3
|
import UploadIcon from '@patternfly/react-icons/dist/esm/icons/upload-icon';
|
|
4
4
|
|
|
5
5
|
interface LoadingPropsType {
|
|
@@ -36,19 +36,24 @@ export const ButtonProgress: React.FunctionComponent = () => {
|
|
|
36
36
|
uploadingProps.isLoading = isUploading;
|
|
37
37
|
|
|
38
38
|
return (
|
|
39
|
-
|
|
40
|
-
<
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
39
|
+
<>
|
|
40
|
+
<Flex columnGap={{ default: 'columnGapSm' }}>
|
|
41
|
+
<Button
|
|
42
|
+
variant="primary"
|
|
43
|
+
id="primary-loading-button"
|
|
44
|
+
onClick={() => setIsPrimaryLoading(!isPrimaryLoading)}
|
|
45
|
+
{...primaryLoadingProps}
|
|
46
|
+
>
|
|
47
|
+
{isPrimaryLoading ? 'Click to stop loading' : 'Click to start loading'}
|
|
48
|
+
</Button>
|
|
49
|
+
<Button
|
|
50
|
+
variant="secondary"
|
|
51
|
+
onClick={() => setIsSecondaryLoading(!isSecondaryLoading)}
|
|
52
|
+
{...secondaryLoadingProps}
|
|
53
|
+
>
|
|
54
|
+
{isSecondaryLoading ? 'Click to stop loading' : 'Click to start loading'}
|
|
55
|
+
</Button>
|
|
56
|
+
</Flex>
|
|
52
57
|
<br />
|
|
53
58
|
<Button
|
|
54
59
|
variant="plain"
|
|
@@ -56,12 +61,12 @@ export const ButtonProgress: React.FunctionComponent = () => {
|
|
|
56
61
|
onClick={() => setIsUploading(!isUploading)}
|
|
57
62
|
icon={<UploadIcon />}
|
|
58
63
|
{...uploadingProps}
|
|
59
|
-
/>
|
|
64
|
+
/>
|
|
60
65
|
<br />
|
|
61
66
|
<br />
|
|
62
67
|
<Button variant="link" isInline onClick={() => setIsInlineLoading(!isInlineLoading)} {...inlineLoadingProps}>
|
|
63
68
|
{isInlineLoading ? 'Pause loading logs' : 'Resume loading logs'}
|
|
64
|
-
</Button>
|
|
65
|
-
|
|
69
|
+
</Button>
|
|
70
|
+
</>
|
|
66
71
|
);
|
|
67
72
|
};
|
|
@@ -1,24 +1,22 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Button } from '@patternfly/react-core';
|
|
2
|
+
import { Button, Flex } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
4
|
export const ButtonSmall: React.FunctionComponent = () => (
|
|
5
|
-
<
|
|
5
|
+
<Flex columnGap={{ default: 'columnGapSm' }}>
|
|
6
6
|
<Button variant="primary" size="sm">
|
|
7
7
|
Primary
|
|
8
|
-
</Button>
|
|
8
|
+
</Button>
|
|
9
9
|
<Button variant="secondary" size="sm">
|
|
10
10
|
Secondary
|
|
11
|
-
</Button>
|
|
11
|
+
</Button>
|
|
12
12
|
<Button variant="tertiary" size="sm">
|
|
13
13
|
Tertiary
|
|
14
|
-
</Button>
|
|
14
|
+
</Button>
|
|
15
15
|
<Button variant="danger" size="sm">
|
|
16
16
|
Danger
|
|
17
|
-
</Button>
|
|
17
|
+
</Button>
|
|
18
18
|
<Button variant="warning" size="sm">
|
|
19
19
|
Warning
|
|
20
20
|
</Button>
|
|
21
|
-
|
|
22
|
-
<br />
|
|
23
|
-
</React.Fragment>
|
|
21
|
+
</Flex>
|
|
24
22
|
);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Button, Flex } from '@patternfly/react-core';
|
|
3
|
+
import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon';
|
|
4
|
+
|
|
5
|
+
export const ButtonStateful: React.FunctionComponent = () => (
|
|
6
|
+
<Flex>
|
|
7
|
+
<div>
|
|
8
|
+
<div>
|
|
9
|
+
<strong>Read</strong>
|
|
10
|
+
</div>
|
|
11
|
+
<Button variant="stateful" state="read" icon={<BellIcon />}>
|
|
12
|
+
10 <span className="pf-v5-screen-reader">items</span>
|
|
13
|
+
</Button>
|
|
14
|
+
</div>
|
|
15
|
+
<div>
|
|
16
|
+
<div>
|
|
17
|
+
<strong>Unread</strong>
|
|
18
|
+
</div>
|
|
19
|
+
<Button variant="stateful" state="unread" icon={<BellIcon />}>
|
|
20
|
+
10 <span className="pf-v5-screen-reader">unread items</span>
|
|
21
|
+
</Button>
|
|
22
|
+
</div>
|
|
23
|
+
<div>
|
|
24
|
+
<div>
|
|
25
|
+
<strong>Attention</strong>
|
|
26
|
+
</div>
|
|
27
|
+
<Button variant="stateful" state="attention" icon={<BellIcon />}>
|
|
28
|
+
10 <span className="pf-v5-screen-reader">unread items, needs attention</span>
|
|
29
|
+
</Button>
|
|
30
|
+
</div>
|
|
31
|
+
</Flex>
|
|
32
|
+
);
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Button } from '@patternfly/react-core';
|
|
2
|
+
import { Button, Flex } from '@patternfly/react-core';
|
|
3
3
|
|
|
4
4
|
export const ButtonTypes: React.FunctionComponent = () => (
|
|
5
|
-
<
|
|
6
|
-
<Button type="submit">Submit</Button>
|
|
7
|
-
|
|
5
|
+
<Flex columnGap={{ default: 'columnGapSm' }}>
|
|
6
|
+
<Button type="submit">Submit</Button>
|
|
7
|
+
<Button type="reset">Reset</Button>
|
|
8
|
+
<Button>Default</Button>
|
|
9
|
+
</Flex>
|
|
8
10
|
);
|