@patternfly/react-core 6.5.0-prerelease.52 → 6.5.0-prerelease.54

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.
Files changed (165) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  22. package/dist/dynamic/components/Compass/package.json +1 -1
  23. package/dist/dynamic/components/Content/package.json +1 -1
  24. package/dist/dynamic/components/DataList/package.json +1 -1
  25. package/dist/dynamic/components/DatePicker/package.json +1 -1
  26. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  27. package/dist/dynamic/components/Divider/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hero/package.json +1 -1
  38. package/dist/dynamic/components/Hint/package.json +1 -1
  39. package/dist/dynamic/components/Icon/package.json +1 -1
  40. package/dist/dynamic/components/InputGroup/package.json +1 -1
  41. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  42. package/dist/dynamic/components/Label/package.json +1 -1
  43. package/dist/dynamic/components/List/package.json +1 -1
  44. package/dist/dynamic/components/LoginPage/package.json +1 -1
  45. package/dist/dynamic/components/Masthead/package.json +1 -1
  46. package/dist/dynamic/components/Menu/package.json +1 -1
  47. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  48. package/dist/dynamic/components/Modal/package.json +1 -1
  49. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  50. package/dist/dynamic/components/Nav/package.json +1 -1
  51. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  52. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  53. package/dist/dynamic/components/NumberInput/package.json +1 -1
  54. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  55. package/dist/dynamic/components/Page/package.json +1 -1
  56. package/dist/dynamic/components/Pagination/package.json +1 -1
  57. package/dist/dynamic/components/Panel/package.json +1 -1
  58. package/dist/dynamic/components/Popover/package.json +1 -1
  59. package/dist/dynamic/components/Progress/package.json +1 -1
  60. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  61. package/dist/dynamic/components/Radio/package.json +1 -1
  62. package/dist/dynamic/components/SearchInput/package.json +1 -1
  63. package/dist/dynamic/components/Select/package.json +1 -1
  64. package/dist/dynamic/components/Sidebar/package.json +1 -1
  65. package/dist/dynamic/components/SimpleList/package.json +1 -1
  66. package/dist/dynamic/components/Skeleton/package.json +1 -1
  67. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  68. package/dist/dynamic/components/Slider/package.json +1 -1
  69. package/dist/dynamic/components/Spinner/package.json +1 -1
  70. package/dist/dynamic/components/Switch/package.json +1 -1
  71. package/dist/dynamic/components/Tabs/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/TimePicker/package.json +1 -1
  76. package/dist/dynamic/components/Timestamp/package.json +1 -1
  77. package/dist/dynamic/components/Title/package.json +1 -1
  78. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  79. package/dist/dynamic/components/Toolbar/package.json +1 -1
  80. package/dist/dynamic/components/Tooltip/package.json +1 -1
  81. package/dist/dynamic/components/TreeView/package.json +1 -1
  82. package/dist/dynamic/components/Truncate/package.json +1 -1
  83. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/package.json +1 -1
  92. package/dist/dynamic/helpers/AnimationsProvider/AnimationsProvider/package.json +1 -1
  93. package/dist/dynamic/helpers/AnimationsProvider/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/SSRSafeIds/SSRSafeIds/package.json +1 -1
  100. package/dist/dynamic/helpers/constants/package.json +1 -1
  101. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useSSRSafeId/package.json +1 -1
  110. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  111. package/dist/dynamic/helpers/util/package.json +1 -1
  112. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  113. package/dist/dynamic/layouts/Flex/package.json +1 -1
  114. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  115. package/dist/dynamic/layouts/Grid/package.json +1 -1
  116. package/dist/dynamic/layouts/Level/package.json +1 -1
  117. package/dist/dynamic/layouts/Split/package.json +1 -1
  118. package/dist/dynamic/layouts/Stack/package.json +1 -1
  119. package/dist/dynamic/styles/package.json +1 -1
  120. package/dist/esm/components/DataList/DataList.d.ts +11 -9
  121. package/dist/esm/components/DataList/DataList.d.ts.map +1 -1
  122. package/dist/esm/components/DataList/DataList.js +2 -2
  123. package/dist/esm/components/DataList/DataList.js.map +1 -1
  124. package/dist/esm/components/DataList/DataListAction.d.ts +5 -5
  125. package/dist/esm/components/DataList/DataListAction.d.ts.map +1 -1
  126. package/dist/esm/components/DataList/DataListCell.d.ts +6 -6
  127. package/dist/esm/components/DataList/DataListCell.d.ts.map +1 -1
  128. package/dist/esm/components/DataList/DataListItemCells.d.ts +1 -1
  129. package/dist/esm/components/DataList/DataListToggle.d.ts +5 -5
  130. package/dist/esm/components/DataList/DataListToggle.d.ts.map +1 -1
  131. package/dist/esm/components/MenuToggle/MenuToggle.d.ts +2 -0
  132. package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  133. package/dist/esm/components/MenuToggle/MenuToggle.js +3 -2
  134. package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
  135. package/dist/js/components/DataList/DataList.d.ts +11 -9
  136. package/dist/js/components/DataList/DataList.d.ts.map +1 -1
  137. package/dist/js/components/DataList/DataList.js +2 -2
  138. package/dist/js/components/DataList/DataList.js.map +1 -1
  139. package/dist/js/components/DataList/DataListAction.d.ts +5 -5
  140. package/dist/js/components/DataList/DataListAction.d.ts.map +1 -1
  141. package/dist/js/components/DataList/DataListCell.d.ts +6 -6
  142. package/dist/js/components/DataList/DataListCell.d.ts.map +1 -1
  143. package/dist/js/components/DataList/DataListItemCells.d.ts +1 -1
  144. package/dist/js/components/DataList/DataListToggle.d.ts +5 -5
  145. package/dist/js/components/DataList/DataListToggle.d.ts.map +1 -1
  146. package/dist/js/components/MenuToggle/MenuToggle.d.ts +2 -0
  147. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  148. package/dist/js/components/MenuToggle/MenuToggle.js +3 -2
  149. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  150. package/dist/umd/assets/{output-0GgC2cNX.css → output-DecWvTJ7.css} +17217 -17217
  151. package/dist/umd/react-core.min.js +1 -1
  152. package/helpers/package.json +1 -1
  153. package/layouts/package.json +1 -1
  154. package/next/package.json +1 -1
  155. package/package.json +2 -2
  156. package/src/components/DataList/DataList.tsx +13 -9
  157. package/src/components/DataList/DataListAction.tsx +5 -5
  158. package/src/components/DataList/DataListCell.tsx +6 -6
  159. package/src/components/DataList/DataListItemCells.tsx +1 -1
  160. package/src/components/DataList/DataListToggle.tsx +5 -5
  161. package/src/components/DataList/__tests__/DataList.test.tsx +13 -0
  162. package/src/components/MenuToggle/MenuToggle.tsx +6 -1
  163. package/src/components/MenuToggle/__tests__/MenuToggle.test.tsx +17 -0
  164. package/src/components/MenuToggle/examples/MenuToggle.md +8 -0
  165. package/src/components/MenuToggle/examples/MenuToggleInForm.tsx +7 -0
@@ -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.51","private":true}
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.53","private":true}
@@ -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.51","private":true}
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.53","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.51","private":true}
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.53","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.5.0-prerelease.52",
3
+ "version": "6.5.0-prerelease.54",
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": "32dcebeb1b2ed7a6d21ebd9f6ca46ff0f1ebef07"
66
+ "gitHead": "10b92b1d17fc9c9342154c4ec6eb6226bc8b2a51"
67
67
  }
@@ -19,27 +19,29 @@ export enum DataListWrapModifier {
19
19
  }
20
20
 
21
21
  export interface DataListProps extends React.HTMLProps<HTMLUListElement> {
22
- /** Content rendered inside the DataList list */
22
+ /** Content rendered inside the data list list */
23
23
  children?: React.ReactNode;
24
- /** Additional classes added to the DataList list */
24
+ /** Additional classes added to the data list list */
25
25
  className?: string;
26
- /** Adds accessible text to the DataList list */
26
+ /** Adds accessible text to the data list list */
27
27
  'aria-label': string;
28
- /** Optional callback to make DataList selectable, fired when DataListItem selected */
28
+ /** Optional callback to make data list selectable, fired when data list item selected */
29
29
  onSelectDataListItem?: (event: React.MouseEvent | React.KeyboardEvent, id: string) => void;
30
- /** Id of DataList item currently selected */
30
+ /** Id of data list item currently selected */
31
31
  selectedDataListItemId?: string;
32
- /** Flag indicating if DataList should have compact styling */
32
+ /** Flag indicating if data list should have compact styling */
33
33
  isCompact?: boolean;
34
- /** @beta Flag indicating if DataList should have plain styling with a transparent background */
34
+ /** @beta Flag indicating if data list should have plain styling with a transparent background */
35
35
  isPlain?: boolean;
36
+ /** @beta Flag to prevent the data list from automatically applying plain styling when glass theme is enabled. */
37
+ isNoPlainOnGlass?: boolean;
36
38
  /** Specifies the grid breakpoints */
37
39
  gridBreakpoint?: 'none' | 'always' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
38
- /** Determines which wrapping modifier to apply to the DataList */
40
+ /** Determines which wrapping modifier to apply to the data list */
39
41
  wrapModifier?: DataListWrapModifier | 'nowrap' | 'truncate' | 'breakWord';
40
42
  /** Object that causes the data list to render hidden inputs which improve selectable item a11y */
41
43
  onSelectableRowChange?: (event: React.FormEvent<HTMLInputElement>, id: string) => void;
42
- /** @hide custom ref of the DataList */
44
+ /** @hide custom ref of the data list */
43
45
  innerRef?: React.RefObject<HTMLUListElement | null>;
44
46
  }
45
47
 
@@ -62,6 +64,7 @@ export const DataListBase: React.FunctionComponent<DataListProps> = ({
62
64
  selectedDataListItemId = '',
63
65
  isCompact = false,
64
66
  isPlain = false,
67
+ isNoPlainOnGlass = false,
65
68
  gridBreakpoint = 'md',
66
69
  wrapModifier = null,
67
70
  onSelectableRowChange,
@@ -88,6 +91,7 @@ export const DataListBase: React.FunctionComponent<DataListProps> = ({
88
91
  styles.dataList,
89
92
  isCompact && styles.modifiers.compact,
90
93
  isPlain && styles.modifiers.plain,
94
+ isNoPlainOnGlass && styles.modifiers.noPlainOnGlass,
91
95
  gridBreakpointClasses[gridBreakpoint],
92
96
  wrapModifier && styles.modifiers[wrapModifier],
93
97
  className
@@ -3,15 +3,15 @@ import styles from '@patternfly/react-styles/css/components/DataList/data-list';
3
3
  import { formatBreakpointMods } from '../../helpers/util';
4
4
 
5
5
  export interface DataListActionProps extends Omit<React.HTMLProps<HTMLDivElement>, 'children'> {
6
- /** Content rendered as DataList Action (e.g <Button> or <Dropdown>) */
6
+ /** Content rendered as data list action (e.g <Button> or <Dropdown>) */
7
7
  children: React.ReactNode;
8
- /** Additional classes added to the DataList Action */
8
+ /** Additional classes added to the data list action */
9
9
  className?: string;
10
- /** Identify the DataList toggle number */
10
+ /** Identify the data list toggle number */
11
11
  id: string;
12
- /** Adds accessible text to the DataList Action */
12
+ /** Adds accessible text to the data list action */
13
13
  'aria-labelledby': string;
14
- /** Adds accessible text to the DataList Action */
14
+ /** Adds accessible text to the data list action */
15
15
  'aria-label': string;
16
16
  /** What breakpoints to hide/show the data list action */
17
17
  visibility?: {
@@ -5,19 +5,19 @@ import { DataListWrapModifier } from './DataList';
5
5
  import { Tooltip } from '../Tooltip';
6
6
 
7
7
  export interface DataListCellProps extends Omit<React.HTMLProps<HTMLDivElement>, 'width'> {
8
- /** Content rendered inside the DataList cell */
8
+ /** Content rendered inside the data list cell */
9
9
  children?: React.ReactNode;
10
- /** Additional classes added to the DataList cell */
10
+ /** Additional classes added to the data list cell */
11
11
  className?: string;
12
- /** Width (from 1-5) to the DataList cell */
12
+ /** Width (from 1-5) to the data list cell */
13
13
  width?: 1 | 2 | 3 | 4 | 5;
14
- /** Enables the body Content to fill the height of the card */
14
+ /** Enables the body content to fill the height of the card */
15
15
  isFilled?: boolean;
16
16
  /** Aligns the cell content to the right of its parent. */
17
17
  alignRight?: boolean;
18
- /** Set to true if the cell content is an Icon */
18
+ /** Set to true if the cell content is an icon */
19
19
  isIcon?: boolean;
20
- /** Determines which wrapping modifier to apply to the DataListCell */
20
+ /** Determines which wrapping modifier to apply to the data list cell */
21
21
  wrapModifier?: DataListWrapModifier | 'nowrap' | 'truncate' | 'breakWord';
22
22
  }
23
23
 
@@ -2,7 +2,7 @@ import { css } from '@patternfly/react-styles';
2
2
  import styles from '@patternfly/react-styles/css/components/DataList/data-list';
3
3
 
4
4
  export interface DataListItemCellsProps extends React.HTMLProps<HTMLDivElement> {
5
- /** Additional classes added to the DataList item Content Wrapper. Children should be one ore more <DataListCell> nodes */
5
+ /** Additional classes added to the data list item content wrapper. Children should be one or more <DataListCell> nodes */
6
6
  className?: string;
7
7
  /** Array of <DataListCell> nodes that are rendered one after the other. */
8
8
  dataListCells?: React.ReactNode;
@@ -4,17 +4,17 @@ import styles from '@patternfly/react-styles/css/components/DataList/data-list';
4
4
  import { Button, ButtonProps, ButtonVariant } from '../Button';
5
5
 
6
6
  export interface DataListToggleProps extends React.HTMLProps<HTMLDivElement> {
7
- /** Additional classes added to the DataList cell */
7
+ /** Additional classes added to the data list cell */
8
8
  className?: string;
9
- /** Flag to show if the expanded content of the DataList item is visible */
9
+ /** Flag to show if the expanded content of the data list item is visible */
10
10
  isExpanded?: boolean;
11
- /** Identify the DataList toggle number */
11
+ /** Identify the data list toggle number */
12
12
  id: string;
13
13
  /** Id for the row */
14
14
  rowid?: string;
15
- /** Adds accessible text to the DataList toggle */
15
+ /** Adds accessible text to the data list toggle */
16
16
  'aria-labelledby'?: string;
17
- /** Adds accessible text to the DataList toggle */
17
+ /** Adds accessible text to the data list toggle */
18
18
  'aria-label'?: string;
19
19
  /** Allows users of some screen readers to shift focus to the controlled element. Should be used when the controlled contents are not adjacent to the toggle that controls them. */
20
20
  'aria-controls'?: string;
@@ -1,3 +1,4 @@
1
+ import '@testing-library/jest-dom';
1
2
  import { render, screen } from '@testing-library/react';
2
3
  import userEvent from '@testing-library/user-event';
3
4
 
@@ -77,6 +78,18 @@ test(`Renders with class ${styles.modifiers.plain} when isPlain is true`, () =>
77
78
  expect(screen.getByLabelText('list')).toHaveClass(styles.modifiers.plain);
78
79
  });
79
80
 
81
+ test(`Renders with ${styles.modifiers.noPlainOnGlass} when isNoPlainOnGlass is true`, () => {
82
+ render(<DataList aria-label="list" isNoPlainOnGlass />);
83
+ expect(screen.getByLabelText('list')).toHaveClass(styles.modifiers.noPlainOnGlass);
84
+ });
85
+
86
+ test(`Renders with both ${styles.modifiers.plain} and ${styles.modifiers.noPlainOnGlass} when isPlain and isNoPlainOnGlass are true`, () => {
87
+ render(<DataList aria-label="list" isPlain isNoPlainOnGlass />);
88
+ const list = screen.getByLabelText('list');
89
+ expect(list).toHaveClass(styles.modifiers.plain);
90
+ expect(list).toHaveClass(styles.modifiers.noPlainOnGlass);
91
+ });
92
+
80
93
  test('Renders with a hidden input to improve a11y when onSelectableRowChange is passed', () => {
81
94
  render(
82
95
  <DataList aria-label="this is a simple list" onSelectableRowChange={() => {}}>
@@ -45,6 +45,8 @@ export interface MenuToggleProps
45
45
  isFullHeight?: boolean;
46
46
  /** Flag indicating the toggle takes up the full width of its parent */
47
47
  isFullWidth?: boolean;
48
+ /** @beta Flag indicating the toggle is placed inside a form */
49
+ isInForm?: boolean;
48
50
  /** Flag indicating the toggle contains placeholder text */
49
51
  isPlaceholder?: boolean;
50
52
  /** @beta Flag indicating the toggle has circular styling. Can only be applied to plain toggles. */
@@ -83,6 +85,7 @@ class MenuToggleBase extends Component<MenuToggleProps> {
83
85
  isDisabled: false,
84
86
  isFullWidth: false,
85
87
  isFullHeight: false,
88
+ isInForm: false,
86
89
  isPlaceholder: false,
87
90
  isCircle: false,
88
91
  size: 'default',
@@ -99,6 +102,7 @@ class MenuToggleBase extends Component<MenuToggleProps> {
99
102
  isDisabled,
100
103
  isFullHeight,
101
104
  isFullWidth,
105
+ isInForm,
102
106
  isPlaceholder,
103
107
  isCircle,
104
108
  isSettings,
@@ -179,9 +183,10 @@ class MenuToggleBase extends Component<MenuToggleProps> {
179
183
  variant === 'secondary' && styles.modifiers.secondary,
180
184
  status && styles.modifiers[status],
181
185
  (isPlain || isPlainText) && styles.modifiers.plain,
182
- isPlainText && 'pf-m-text',
186
+ isPlainText && styles.modifiers.text,
183
187
  isFullHeight && styles.modifiers.fullHeight,
184
188
  isFullWidth && styles.modifiers.fullWidth,
189
+ isInForm && styles.modifiers.form,
185
190
  isDisabled && styles.modifiers.disabled,
186
191
  isPlaceholder && styles.modifiers.placeholder,
187
192
  isSettings && styles.modifiers.settings,
@@ -57,6 +57,13 @@ describe('Old Snapshot tests - remove when refactoring', () => {
57
57
 
58
58
  const toggleVariants = ['default', 'plain', 'primary', 'plainText', 'secondary', 'typeahead'];
59
59
 
60
+ test(`Renders with classes ${styles.modifiers.plain} and ${styles.modifiers.text} when variant="plainText" is passed`, () => {
61
+ render(<MenuToggle variant="plainText">Toggle</MenuToggle>);
62
+ const toggle = screen.getByRole('button');
63
+ expect(toggle).toHaveClass(styles.modifiers.plain);
64
+ expect(toggle).toHaveClass(styles.modifiers.text);
65
+ });
66
+
60
67
  test(`Renders with class ${styles.modifiers.small} when size="sm" is passed`, () => {
61
68
  render(<MenuToggle size="sm">Toggle</MenuToggle>);
62
69
  expect(screen.getByRole('button')).toHaveClass(styles.modifiers.small);
@@ -101,6 +108,16 @@ test('split toggle passes onClick', async () => {
101
108
  expect(mockClick).toHaveBeenCalled();
102
109
  });
103
110
 
111
+ test(`Renders with class ${styles.modifiers.form} when isInForm is passed`, () => {
112
+ render(<MenuToggle isInForm>Toggle</MenuToggle>);
113
+ expect(screen.getByRole('button')).toHaveClass(styles.modifiers.form);
114
+ });
115
+
116
+ test(`Does not render class ${styles.modifiers.form} when isInForm is false`, () => {
117
+ render(<MenuToggle isInForm={false}>Toggle</MenuToggle>);
118
+ expect(screen.getByRole('button')).not.toHaveClass(styles.modifiers.form);
119
+ });
120
+
104
121
  test(`Renders with class ${styles.modifiers.placeholder} when isPlaceholder is passed`, () => {
105
122
  render(<MenuToggle isPlaceholder>Toggle</MenuToggle>);
106
123
  expect(screen.getByRole('button')).toHaveClass(styles.modifiers.placeholder);
@@ -179,6 +179,14 @@ In the following example, the toggle fills the width of its parent as the window
179
179
 
180
180
  ```
181
181
 
182
+ ### Toggle in a form
183
+
184
+ When a menu toggle is used inside a form, pass the `isInForm` property so the toggle receives form-appropriate styling.
185
+
186
+ ```ts file="MenuToggleInForm.tsx"
187
+
188
+ ```
189
+
182
190
  ### Typeahead toggle
183
191
 
184
192
  To create a typeahead toggle, pass in `variant="typeahead"` to the `<MenuToggle>`. Then, pass a `<TextInputGroup>` component as a child of the `<MenuToggle>`.
@@ -0,0 +1,7 @@
1
+ import { MenuToggle } from '@patternfly/react-core';
2
+
3
+ export const MenuToggleInForm = (): JSX.Element => (
4
+ <MenuToggle isInForm aria-label="Menu toggle in a form">
5
+ In form
6
+ </MenuToggle>
7
+ );