@patternfly/react-core 6.0.0-alpha.71 → 6.0.0-alpha.73

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 (204) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/components/package.json +8 -1
  3. package/deprecated/package.json +8 -1
  4. package/dist/dynamic/components/AboutModal/package.json +8 -1
  5. package/dist/dynamic/components/Accordion/package.json +8 -1
  6. package/dist/dynamic/components/ActionList/package.json +8 -1
  7. package/dist/dynamic/components/Alert/package.json +8 -1
  8. package/dist/dynamic/components/Avatar/package.json +8 -1
  9. package/dist/dynamic/components/BackToTop/package.json +8 -1
  10. package/dist/dynamic/components/Backdrop/package.json +8 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +8 -1
  12. package/dist/dynamic/components/Badge/package.json +8 -1
  13. package/dist/dynamic/components/Banner/package.json +8 -1
  14. package/dist/dynamic/components/Brand/package.json +8 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +8 -1
  16. package/dist/dynamic/components/Button/package.json +8 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +8 -1
  18. package/dist/dynamic/components/Card/package.json +8 -1
  19. package/dist/dynamic/components/Checkbox/package.json +8 -1
  20. package/dist/dynamic/components/ClipboardCopy/package.json +8 -1
  21. package/dist/dynamic/components/CodeBlock/package.json +8 -1
  22. package/dist/dynamic/components/DataList/package.json +8 -1
  23. package/dist/dynamic/components/DatePicker/package.json +8 -1
  24. package/dist/dynamic/components/DescriptionList/package.json +8 -1
  25. package/dist/dynamic/components/Divider/package.json +8 -1
  26. package/dist/dynamic/components/Drawer/package.json +8 -1
  27. package/dist/dynamic/components/Dropdown/package.json +8 -1
  28. package/dist/dynamic/components/DualListSelector/package.json +8 -1
  29. package/dist/dynamic/components/EmptyState/package.json +8 -1
  30. package/dist/dynamic/components/ExpandableSection/package.json +8 -1
  31. package/dist/dynamic/components/FileUpload/package.json +8 -1
  32. package/dist/dynamic/components/Form/package.json +8 -1
  33. package/dist/dynamic/components/FormSelect/package.json +8 -1
  34. package/dist/dynamic/components/HelperText/package.json +8 -1
  35. package/dist/dynamic/components/Hint/package.json +8 -1
  36. package/dist/dynamic/components/Icon/package.json +8 -1
  37. package/dist/dynamic/components/InputGroup/package.json +8 -1
  38. package/dist/dynamic/components/JumpLinks/package.json +8 -1
  39. package/dist/dynamic/components/Label/package.json +8 -1
  40. package/dist/dynamic/components/List/package.json +8 -1
  41. package/dist/dynamic/components/LoginPage/package.json +8 -1
  42. package/dist/dynamic/components/Masthead/package.json +8 -1
  43. package/dist/dynamic/components/Menu/package.json +8 -1
  44. package/dist/dynamic/components/MenuToggle/package.json +8 -1
  45. package/dist/dynamic/components/Modal/package.json +8 -1
  46. package/dist/dynamic/components/MultipleFileUpload/package.json +8 -1
  47. package/dist/dynamic/components/Nav/package.json +8 -1
  48. package/dist/dynamic/components/NotificationBadge/package.json +8 -1
  49. package/dist/dynamic/components/NotificationDrawer/package.json +8 -1
  50. package/dist/dynamic/components/NumberInput/package.json +8 -1
  51. package/dist/dynamic/components/OverflowMenu/package.json +8 -1
  52. package/dist/dynamic/components/Page/package.json +8 -1
  53. package/dist/dynamic/components/Pagination/package.json +8 -1
  54. package/dist/dynamic/components/Panel/package.json +8 -1
  55. package/dist/dynamic/components/Popover/package.json +8 -1
  56. package/dist/dynamic/components/Progress/package.json +8 -1
  57. package/dist/dynamic/components/ProgressStepper/package.json +8 -1
  58. package/dist/dynamic/components/Radio/package.json +8 -1
  59. package/dist/dynamic/components/SearchInput/package.json +8 -1
  60. package/dist/dynamic/components/Select/package.json +8 -1
  61. package/dist/dynamic/components/Sidebar/package.json +8 -1
  62. package/dist/dynamic/components/SimpleList/package.json +8 -1
  63. package/dist/dynamic/components/Skeleton/package.json +8 -1
  64. package/dist/dynamic/components/SkipToContent/package.json +8 -1
  65. package/dist/dynamic/components/Slider/package.json +8 -1
  66. package/dist/dynamic/components/Spinner/package.json +8 -1
  67. package/dist/dynamic/components/Switch/package.json +8 -1
  68. package/dist/dynamic/components/Tabs/package.json +8 -1
  69. package/dist/dynamic/components/Text/package.json +8 -1
  70. package/dist/dynamic/components/TextArea/package.json +8 -1
  71. package/dist/dynamic/components/TextInput/package.json +8 -1
  72. package/dist/dynamic/components/TextInputGroup/package.json +8 -1
  73. package/dist/dynamic/components/Tile/package.json +8 -1
  74. package/dist/dynamic/components/TimePicker/package.json +8 -1
  75. package/dist/dynamic/components/Timestamp/package.json +8 -1
  76. package/dist/dynamic/components/Title/package.json +8 -1
  77. package/dist/dynamic/components/ToggleGroup/package.json +8 -1
  78. package/dist/dynamic/components/Toolbar/package.json +8 -1
  79. package/dist/dynamic/components/Tooltip/package.json +8 -1
  80. package/dist/dynamic/components/TreeView/package.json +8 -1
  81. package/dist/dynamic/components/Truncate/package.json +8 -1
  82. package/dist/dynamic/components/Wizard/hooks/package.json +8 -1
  83. package/dist/dynamic/components/Wizard/package.json +8 -1
  84. package/dist/dynamic/deprecated/components/Chip/package.json +8 -1
  85. package/dist/dynamic/deprecated/components/DragDrop/package.json +8 -1
  86. package/dist/dynamic/deprecated/components/DualListSelector/package.json +8 -1
  87. package/dist/dynamic/deprecated/components/Modal/package.json +8 -1
  88. package/dist/dynamic/deprecated/components/Wizard/package.json +8 -1
  89. package/dist/dynamic/deprecated/components/package.json +8 -1
  90. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +8 -1
  91. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +8 -1
  92. package/dist/dynamic/helpers/KeyboardHandler/package.json +8 -1
  93. package/dist/dynamic/helpers/OUIA/ouia/package.json +8 -1
  94. package/dist/dynamic/helpers/Popper/Popper/package.json +8 -1
  95. package/dist/dynamic/helpers/constants/package.json +8 -1
  96. package/dist/dynamic/helpers/datetimeUtils/package.json +8 -1
  97. package/dist/dynamic/helpers/fileUtils/package.json +8 -1
  98. package/dist/dynamic/helpers/htmlConstants/package.json +8 -1
  99. package/dist/dynamic/helpers/package.json +8 -1
  100. package/dist/dynamic/helpers/resizeObserver/package.json +8 -1
  101. package/dist/dynamic/helpers/typeUtils/package.json +8 -1
  102. package/dist/dynamic/helpers/useInterval/package.json +8 -1
  103. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +8 -1
  104. package/dist/dynamic/helpers/useUnmountEffect/package.json +8 -1
  105. package/dist/dynamic/helpers/util/package.json +8 -1
  106. package/dist/dynamic/layouts/Bullseye/package.json +8 -1
  107. package/dist/dynamic/layouts/Flex/package.json +8 -1
  108. package/dist/dynamic/layouts/Gallery/package.json +8 -1
  109. package/dist/dynamic/layouts/Grid/package.json +8 -1
  110. package/dist/dynamic/layouts/Level/package.json +8 -1
  111. package/dist/dynamic/layouts/Split/package.json +8 -1
  112. package/dist/dynamic/layouts/Stack/package.json +8 -1
  113. package/dist/dynamic/styles/package.json +8 -1
  114. package/dist/esm/components/Banner/Banner.d.ts +1 -1
  115. package/dist/esm/components/Banner/Banner.d.ts.map +1 -1
  116. package/dist/esm/components/CalendarMonth/CalendarMonth.js +16 -19
  117. package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
  118. package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
  119. package/dist/esm/components/DatePicker/DatePicker.js +16 -1
  120. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  121. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.d.ts +1 -1
  122. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.d.ts.map +1 -1
  123. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.js +1 -0
  124. package/dist/esm/components/Drawer/__tests__/DrawerPanelDescription.js.map +1 -1
  125. package/dist/esm/components/Label/Label.d.ts +1 -1
  126. package/dist/esm/components/Label/Label.d.ts.map +1 -1
  127. package/dist/esm/components/Label/Label.js +2 -2
  128. package/dist/esm/components/Label/Label.js.map +1 -1
  129. package/dist/esm/components/MenuToggle/MenuToggle.d.ts +6 -1
  130. package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  131. package/dist/esm/components/MenuToggle/MenuToggle.js +11 -5
  132. package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
  133. package/dist/esm/deprecated/components/Modal/Modal.d.ts +3 -3
  134. package/dist/esm/deprecated/components/Modal/Modal.d.ts.map +1 -1
  135. package/dist/esm/deprecated/components/Modal/Modal.js +1 -1
  136. package/dist/esm/deprecated/components/Modal/Modal.js.map +1 -1
  137. package/dist/esm/deprecated/components/Modal/ModalContent.d.ts +2 -2
  138. package/dist/esm/deprecated/components/Modal/ModalContent.d.ts.map +1 -1
  139. package/dist/js/components/Banner/Banner.d.ts +1 -1
  140. package/dist/js/components/Banner/Banner.d.ts.map +1 -1
  141. package/dist/js/components/CalendarMonth/CalendarMonth.js +16 -19
  142. package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
  143. package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
  144. package/dist/js/components/DatePicker/DatePicker.js +16 -1
  145. package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
  146. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.d.ts +1 -1
  147. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.d.ts.map +1 -1
  148. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.js +1 -0
  149. package/dist/js/components/Drawer/__tests__/DrawerPanelDescription.js.map +1 -1
  150. package/dist/js/components/Label/Label.d.ts +1 -1
  151. package/dist/js/components/Label/Label.d.ts.map +1 -1
  152. package/dist/js/components/Label/Label.js +2 -2
  153. package/dist/js/components/Label/Label.js.map +1 -1
  154. package/dist/js/components/MenuToggle/MenuToggle.d.ts +6 -1
  155. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  156. package/dist/js/components/MenuToggle/MenuToggle.js +11 -5
  157. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  158. package/dist/js/deprecated/components/Modal/Modal.d.ts +3 -3
  159. package/dist/js/deprecated/components/Modal/Modal.d.ts.map +1 -1
  160. package/dist/js/deprecated/components/Modal/Modal.js +1 -1
  161. package/dist/js/deprecated/components/Modal/Modal.js.map +1 -1
  162. package/dist/js/deprecated/components/Modal/ModalContent.d.ts +2 -2
  163. package/dist/js/deprecated/components/Modal/ModalContent.d.ts.map +1 -1
  164. package/dist/styles/assets/images/pf-background.svg +21 -21
  165. package/dist/styles/base-no-reset.css +201 -183
  166. package/dist/styles/base.css +230 -208
  167. package/dist/umd/assets/{output-C1Tl2GQc.css → output-rAmU2c74.css} +6351 -6308
  168. package/dist/umd/react-core.min.js +3 -3
  169. package/helpers/package.json +8 -1
  170. package/layouts/package.json +8 -1
  171. package/next/package.json +8 -1
  172. package/package.json +8 -9
  173. package/src/components/Banner/Banner.tsx +1 -1
  174. package/src/components/Banner/__tests__/Banner.test.tsx +6 -6
  175. package/src/components/Banner/examples/BannerBasic.tsx +2 -2
  176. package/src/components/CalendarMonth/CalendarMonth.tsx +19 -19
  177. package/src/components/DatePicker/DatePicker.tsx +19 -1
  178. package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +3 -0
  179. package/src/components/Drawer/__tests__/DrawerPanelDescription.tsx +1 -0
  180. package/src/components/Label/Label.tsx +3 -3
  181. package/src/components/Label/__tests__/Label.test.tsx +1 -1
  182. package/src/components/Label/__tests__/__snapshots__/Label.test.tsx.snap +72 -36
  183. package/src/components/Label/examples/LabelFilled.tsx +44 -44
  184. package/src/components/Label/examples/LabelGroupEditableAddModal.tsx +1 -1
  185. package/src/components/Label/examples/LabelOutline.tsx +52 -46
  186. package/src/components/MenuToggle/MenuToggle.tsx +29 -7
  187. package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +27 -0
  188. package/src/components/MenuToggle/examples/MenuToggle.md +12 -10
  189. package/src/components/Nav/__tests__/Generated/NavList.test.tsx +1 -1
  190. package/src/components/Nav/__tests__/__snapshots__/Nav.test.tsx.snap +1 -1
  191. package/src/components/Page/examples/Page.md +8 -0
  192. package/src/components/Page/examples/PageMainSectionVariations.tsx +84 -0
  193. package/src/components/Pagination/__tests__/Generated/__snapshots__/PaginationOptionsMenu.test.tsx.snap +3 -0
  194. package/src/components/Pagination/__tests__/__snapshots__/Pagination.test.tsx.snap +60 -0
  195. package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +2 -2
  196. package/src/components/SimpleList/__tests__/SimpleList.test.tsx +3 -3
  197. package/src/components/TextInput/__tests__/TextInput.test.tsx +1 -1
  198. package/src/demos/DescriptionList/DescriptionList.md +14 -0
  199. package/src/demos/DescriptionList/examples/DescriptionListBasic.tsx +86 -0
  200. package/src/demos/Masthead.md +5 -3
  201. package/src/demos/Tabs.md +2 -3
  202. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +322 -0
  203. package/src/deprecated/components/Modal/Modal.tsx +4 -4
  204. package/src/deprecated/components/Modal/ModalContent.tsx +2 -2
@@ -328,101 +328,107 @@ export const LabelOutline: React.FunctionComponent = () => {
328
328
  </Label>
329
329
  <br />
330
330
  <br />
331
- <Label variant="outline" color="cyan">
332
- Cyan
331
+ <Label variant="outline" color="teal">
332
+ Teal
333
333
  </Label>
334
- <Label variant="outline" color="cyan" icon={<CubeIcon />}>
335
- Cyan icon
334
+ <Label variant="outline" color="teal" icon={<CubeIcon />}>
335
+ Teal icon
336
336
  </Label>
337
- <Label variant="outline" color="cyan" onClose={() => Function.prototype}>
338
- Cyan removable
337
+ <Label variant="outline" color="teal" onClose={() => Function.prototype}>
338
+ Teal removable
339
339
  </Label>
340
- <Label variant="outline" color="cyan" icon={<CubeIcon />} onClose={() => Function.prototype}>
341
- Cyan icon removable
340
+ <Label variant="outline" color="teal" icon={<CubeIcon />} onClose={() => Function.prototype}>
341
+ Teal icon removable
342
342
  </Label>
343
- <Label variant="outline" color="cyan" href="#outline">
344
- Cyan link
343
+ <Label variant="outline" color="teal" href="#outline">
344
+ Teal link
345
345
  </Label>
346
- <Label variant="outline" color="cyan" href="#outline" onClose={() => Function.prototype}>
347
- Cyan link removable
346
+ <Label variant="outline" color="teal" href="#outline" onClose={() => Function.prototype}>
347
+ Teal link removable
348
348
  </Label>{' '}
349
- <Label variant="outline" color="cyan" onClick={() => logColor('cyan')}>
350
- Cyan clickable
349
+ <Label variant="outline" color="teal" onClick={() => logColor('teal')}>
350
+ Teal clickable
351
351
  </Label>
352
- <Label variant="outline" color="cyan" onClick={() => logColor('cyan')} onClose={() => Function.prototype}>
353
- Cyan clickable removable
352
+ <Label variant="outline" color="teal" onClick={() => logColor('teal')} onClose={() => Function.prototype}>
353
+ Teal clickable removable
354
354
  </Label>
355
- <Label variant="outline" color="cyan" icon={<CubeIcon />} onClose={() => Function.prototype} textMaxWidth="16ch">
356
- Cyan label with icon that overflows
355
+ <Label variant="outline" color="teal" icon={<CubeIcon />} onClose={() => Function.prototype} textMaxWidth="16ch">
356
+ Teal label with icon that overflows
357
357
  </Label>{' '}
358
358
  <Label
359
359
  variant="outline"
360
- color="cyan"
360
+ color="teal"
361
361
  isDisabled
362
362
  icon={<CubeIcon />}
363
363
  href="#filled"
364
364
  onClose={() => Function.prototype}
365
365
  >
366
- Cyan link removable (disabled)
366
+ Teal link removable (disabled)
367
367
  </Label>{' '}
368
368
  <Label
369
369
  variant="outline"
370
- color="cyan"
370
+ color="teal"
371
371
  isDisabled
372
372
  icon={<CubeIcon />}
373
- onClick={() => logColor('cyan')}
373
+ onClick={() => logColor('teal')}
374
374
  onClose={() => Function.prototype}
375
375
  >
376
- Cyan clickable removable (disabled)
376
+ Teal clickable removable (disabled)
377
377
  </Label>
378
378
  <br />
379
379
  <br />
380
- <Label variant="outline" color="gold">
381
- Gold
380
+ <Label variant="outline" color="yellow">
381
+ Yellow
382
382
  </Label>
383
- <Label variant="outline" color="gold" icon={<CubeIcon />}>
384
- Gold icon
383
+ <Label variant="outline" color="yellow" icon={<CubeIcon />}>
384
+ Yellow icon
385
385
  </Label>
386
- <Label variant="outline" color="gold" onClose={() => Function.prototype}>
387
- Gold removable
386
+ <Label variant="outline" color="yellow" onClose={() => Function.prototype}>
387
+ Yellow removable
388
388
  </Label>
389
- <Label variant="outline" color="gold" icon={<CubeIcon />} onClose={() => Function.prototype}>
390
- Gold icon removable
389
+ <Label variant="outline" color="yellow" icon={<CubeIcon />} onClose={() => Function.prototype}>
390
+ Yellow icon removable
391
391
  </Label>
392
- <Label variant="outline" color="gold" href="#outline">
393
- Gold link
392
+ <Label variant="outline" color="yellow" href="#outline">
393
+ Yellow link
394
394
  </Label>
395
- <Label variant="outline" color="gold" href="#outline" onClose={() => Function.prototype}>
396
- Gold link removable
395
+ <Label variant="outline" color="yellow" href="#outline" onClose={() => Function.prototype}>
396
+ Yellow link removable
397
397
  </Label>{' '}
398
- <Label variant="outline" color="gold" onClick={() => logColor('gold')}>
399
- Gold clickable
398
+ <Label variant="outline" color="yellow" onClick={() => logColor('yellow')}>
399
+ Yellow clickable
400
400
  </Label>
401
- <Label variant="outline" color="gold" onClick={() => logColor('gold')} onClose={() => Function.prototype}>
402
- Gold clickable removable
401
+ <Label variant="outline" color="yellow" onClick={() => logColor('yellow')} onClose={() => Function.prototype}>
402
+ Yellow clickable removable
403
403
  </Label>
404
- <Label variant="outline" color="gold" icon={<CubeIcon />} onClose={() => Function.prototype} textMaxWidth="16ch">
405
- Gold label with icon that overflows
404
+ <Label
405
+ variant="outline"
406
+ color="yellow"
407
+ icon={<CubeIcon />}
408
+ onClose={() => Function.prototype}
409
+ textMaxWidth="16ch"
410
+ >
411
+ Yellow label with icon that overflows
406
412
  </Label>{' '}
407
413
  <Label
408
414
  variant="outline"
409
- color="gold"
415
+ color="yellow"
410
416
  isDisabled
411
417
  icon={<CubeIcon />}
412
418
  href="#filled"
413
419
  onClose={() => Function.prototype}
414
420
  >
415
- Gold link removable (disabled)
421
+ Yellow link removable (disabled)
416
422
  </Label>{' '}
417
423
  <Label
418
424
  variant="outline"
419
- color="gold"
425
+ color="yellow"
420
426
  isDisabled
421
427
  icon={<CubeIcon />}
422
- onClick={() => logColor('gold')}
428
+ onClick={() => logColor('yellow')}
423
429
  onClose={() => Function.prototype}
424
430
  >
425
- Gold clickable removable (disabled)
431
+ Yellow clickable removable (disabled)
426
432
  </Label>
427
433
  <br />
428
434
  <br />
@@ -6,6 +6,7 @@ import { BadgeProps } from '../Badge';
6
6
  import CheckCircleIcon from '@patternfly/react-icons/dist/esm/icons/check-circle-icon';
7
7
  import ExclamationCircleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-circle-icon';
8
8
  import ExclamationTriangleIcon from '@patternfly/react-icons/dist/esm/icons/exclamation-triangle-icon';
9
+ import { OUIAProps, getDefaultOUIAId, getOUIAProps } from '../../helpers';
9
10
 
10
11
  export enum MenuToggleStatus {
11
12
  success = 'success',
@@ -24,12 +25,13 @@ export interface SplitButtonOptions {
24
25
 
25
26
  export interface MenuToggleProps
26
27
  extends Omit<
27
- React.DetailedHTMLProps<
28
- React.ButtonHTMLAttributes<HTMLButtonElement> & React.HTMLAttributes<HTMLDivElement>,
29
- MenuToggleElement
28
+ React.DetailedHTMLProps<
29
+ React.ButtonHTMLAttributes<HTMLButtonElement> & React.HTMLAttributes<HTMLDivElement>,
30
+ MenuToggleElement
31
+ >,
32
+ 'ref'
30
33
  >,
31
- 'ref'
32
- > {
34
+ OUIAProps {
33
35
  /** Content rendered inside the toggle */
34
36
  children?: React.ReactNode;
35
37
  /** Additional classes added to the toggle */
@@ -58,16 +60,29 @@ export interface MenuToggleProps
58
60
  badge?: BadgeProps | React.ReactNode;
59
61
  /** @hide Forwarded ref */
60
62
  innerRef?: React.Ref<MenuToggleElement>;
63
+ /** Value to overwrite the randomly generated data-ouia-component-id. It will always target the toggle button. */
64
+ ouiaId?: number | string;
65
+ /** 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. */
66
+ ouiaSafe?: boolean;
61
67
  }
62
68
 
63
- class MenuToggleBase extends React.Component<MenuToggleProps> {
69
+ interface MenuToggleState {
70
+ ouiaStateId: string;
71
+ }
72
+
73
+ class MenuToggleBase extends React.Component<MenuToggleProps, MenuToggleState> {
64
74
  displayName = 'MenuToggleBase';
65
75
  static defaultProps: MenuToggleProps = {
66
76
  className: '',
67
77
  isExpanded: false,
68
78
  isDisabled: false,
69
79
  isFullWidth: false,
70
- isFullHeight: false
80
+ isFullHeight: false,
81
+ ouiaSafe: true
82
+ };
83
+
84
+ state: MenuToggleState = {
85
+ ouiaStateId: getDefaultOUIAId(MenuToggle.displayName, this.props.variant)
71
86
  };
72
87
 
73
88
  render() {
@@ -87,12 +102,16 @@ class MenuToggleBase extends React.Component<MenuToggleProps> {
87
102
  innerRef,
88
103
  onClick,
89
104
  'aria-label': ariaLabel,
105
+ ouiaId,
106
+ ouiaSafe,
90
107
  ...otherProps
91
108
  } = this.props;
92
109
  const isPlain = variant === 'plain';
93
110
  const isPlainText = variant === 'plainText';
94
111
  const isTypeahead = variant === 'typeahead';
95
112
 
113
+ const ouiaProps = getOUIAProps(MenuToggle.displayName, ouiaId ?? this.state.ouiaStateId, ouiaSafe);
114
+
96
115
  let _statusIcon = statusIcon;
97
116
  if (!statusIcon) {
98
117
  switch (status) {
@@ -130,6 +149,7 @@ class MenuToggleBase extends React.Component<MenuToggleProps> {
130
149
  onClick={onClick}
131
150
  aria-label={ariaLabel || 'Menu toggle'}
132
151
  tabIndex={-1}
152
+ {...ouiaProps}
133
153
  >
134
154
  {toggleControls}
135
155
  </button>
@@ -189,6 +209,7 @@ class MenuToggleBase extends React.Component<MenuToggleProps> {
189
209
  onClick={onClick}
190
210
  {...(children && { style: { display: 'flex', paddingLeft: 'var(--pf-v5-global--spacer--sm)' } })}
191
211
  {...otherProps}
212
+ {...ouiaProps}
192
213
  >
193
214
  {children && <span className={css(styles.menuToggleText)}>{children}</span>}
194
215
  {toggleControls}
@@ -207,6 +228,7 @@ class MenuToggleBase extends React.Component<MenuToggleProps> {
207
228
  disabled={isDisabled}
208
229
  onClick={onClick}
209
230
  {...componentProps}
231
+ {...ouiaProps}
210
232
  />
211
233
  );
212
234
  }
@@ -5,6 +5,9 @@ exports[`menu toggle passes additional classes 1`] = `
5
5
  <button
6
6
  aria-expanded="false"
7
7
  class="pf-v6-c-menu-toggle test-class"
8
+ data-ouia-component-id="OUIA-Generated-MenuToggle-2"
9
+ data-ouia-component-type="PF6/MenuToggle"
10
+ data-ouia-safe="true"
8
11
  type="button"
9
12
  >
10
13
  <span
@@ -42,6 +45,9 @@ exports[`menu toggle renders successfully 1`] = `
42
45
  <button
43
46
  aria-expanded="false"
44
47
  class="pf-v6-c-menu-toggle"
48
+ data-ouia-component-id="OUIA-Generated-MenuToggle-1"
49
+ data-ouia-component-type="PF6/MenuToggle"
50
+ data-ouia-safe="true"
45
51
  type="button"
46
52
  >
47
53
  <span
@@ -79,6 +85,9 @@ exports[`menu toggle shows badge 1`] = `
79
85
  <button
80
86
  aria-expanded="false"
81
87
  class="pf-v6-c-menu-toggle"
88
+ data-ouia-component-id="OUIA-Generated-MenuToggle-6"
89
+ data-ouia-component-type="PF6/MenuToggle"
90
+ data-ouia-safe="true"
82
91
  type="button"
83
92
  >
84
93
  <span
@@ -125,6 +134,9 @@ exports[`menu toggle shows icon 1`] = `
125
134
  <button
126
135
  aria-expanded="false"
127
136
  class="pf-v6-c-menu-toggle"
137
+ data-ouia-component-id="OUIA-Generated-MenuToggle-5"
138
+ data-ouia-component-type="PF6/MenuToggle"
139
+ data-ouia-safe="true"
128
140
  type="button"
129
141
  >
130
142
  <span
@@ -179,6 +191,9 @@ exports[`menu toggle shows isDisabled 1`] = `
179
191
  <button
180
192
  aria-expanded="false"
181
193
  class="pf-v6-c-menu-toggle pf-m-disabled"
194
+ data-ouia-component-id="OUIA-Generated-MenuToggle-4"
195
+ data-ouia-component-type="PF6/MenuToggle"
196
+ data-ouia-safe="true"
182
197
  disabled=""
183
198
  type="button"
184
199
  >
@@ -217,6 +232,9 @@ exports[`menu toggle shows isExpanded 1`] = `
217
232
  <button
218
233
  aria-expanded="true"
219
234
  class="pf-v6-c-menu-toggle pf-m-expanded"
235
+ data-ouia-component-id="OUIA-Generated-MenuToggle-3"
236
+ data-ouia-component-type="PF6/MenuToggle"
237
+ data-ouia-safe="true"
220
238
  type="button"
221
239
  >
222
240
  <span
@@ -254,6 +272,9 @@ exports[`menu toggle shows isPlain 1`] = `
254
272
  <button
255
273
  aria-expanded="false"
256
274
  class="pf-v6-c-menu-toggle pf-m-plain"
275
+ data-ouia-component-id="OUIA-Generated-MenuToggle-plain-1"
276
+ data-ouia-component-type="PF6/MenuToggle"
277
+ data-ouia-safe="true"
257
278
  type="button"
258
279
  >
259
280
  <span
@@ -282,6 +303,9 @@ exports[`menu toggle shows isPrimary 1`] = `
282
303
  <button
283
304
  aria-expanded="false"
284
305
  class="pf-v6-c-menu-toggle pf-m-primary"
306
+ data-ouia-component-id="OUIA-Generated-MenuToggle-primary-1"
307
+ data-ouia-component-type="PF6/MenuToggle"
308
+ data-ouia-safe="true"
285
309
  type="button"
286
310
  >
287
311
  <span
@@ -319,6 +343,9 @@ exports[`menu toggle shows plain text 1`] = `
319
343
  <button
320
344
  aria-expanded="false"
321
345
  class="pf-v6-c-menu-toggle pf-m-plain pf-m-text"
346
+ data-ouia-component-id="OUIA-Generated-MenuToggle-plainText-1"
347
+ data-ouia-component-type="PF6/MenuToggle"
348
+ data-ouia-safe="true"
322
349
  type="button"
323
350
  >
324
351
  <span
@@ -191,9 +191,11 @@ import { MenuToggle } from '@patternfly/react-core';
191
191
  </React.Fragment>
192
192
  ```
193
193
 
194
- ### Split button toggle with checkbox
194
+ ### Split toggle with checkbox
195
195
 
196
- To add an action button or other control to a menu toggle, use a split button. A `<MenuToggle>` can be rendered as a split button by adding a `splitButtonOptions` object. Elements to be displayed before the toggle button must be included in the `items` property of `splitButtonOptions`.
196
+ To add a checkbox (or other action/control) to a menu toggle, use a split button.
197
+
198
+ A `<MenuToggle>` can be rendered as a split button by adding a `splitButtonOptions` object. Elements to be displayed before the toggle button must be included in the `items` property of `splitButtonOptions`.
197
199
 
198
200
  The following example shows a split button with a `<MenuToggleCheckbox>`.
199
201
 
@@ -203,25 +205,25 @@ Variant styling can be applied to split button toggles to adjust their appearanc
203
205
 
204
206
  ```
205
207
 
206
- ### Split button toggle with checkbox label
208
+ ### Split toggle with labeled checkbox
207
209
 
208
- To display text in a split button menu toggle, add a label to the `items` property of `splitButtonOptions`.
210
+ To add a text label to a split button toggle, pass `children` to the `<MenuToggle>` component.
209
211
 
210
- ```ts file='MenuToggleSplitButtonCheckboxWithText.tsx'
212
+ ```ts file='MenuToggleSplitButtonCheckboxWithToggleText.tsx'
211
213
 
212
214
  ```
213
215
 
214
- ### Split button toggle with checkbox and toggle button text
216
+ ### Split toggle with checkbox and toggle text label
215
217
 
216
- For split button toggles that should still contain text which will trigger the toggle's `onClick`, pass `children` to the `MenuToggle`.
218
+ You can allow users to select a toggle checkbox by clicking either the checkbox or the text label.
217
219
 
218
- The following example shows a split button with a `<MenuToggleCheckbox>` and toggle button text.
220
+ To do so, pass `children` to the `<MenuToggleCheckbox>` component. When the menu toggle text is clicked, the checkbox's `onChange` callback will be triggered.
219
221
 
220
- ```ts file='MenuToggleSplitButtonCheckboxWithToggleText.tsx'
222
+ ```ts file='MenuToggleSplitButtonCheckboxWithText.tsx'
221
223
 
222
224
  ```
223
225
 
224
- ### Split button toggle with action
226
+ ### Split toggle with action
225
227
 
226
228
  To add an action to a split button, pass `variant='action'` into `splitButtonOptions` and add a `<MenuToggleAction>` to the `items` property of `splitButtonOptions`.
227
229
 
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
 
3
3
  import { render } from '@testing-library/react';
4
- import * as ReactCoreUtils from '@patternfly/react-core/src/helpers/util';
4
+ import * as ReactCoreUtils from '../../../../helpers/util';
5
5
 
6
6
  import { NavList } from '../../NavList';
7
7
  import { NavContext } from '../../Nav';
@@ -874,7 +874,7 @@ exports[`Nav Nav List with flyout 1`] = `
874
874
  data-popper-escaped="true"
875
875
  data-popper-placement="right-start"
876
876
  data-popper-reference-hidden="true"
877
- style="position: absolute; left: 0px; top: 0px; z-index: 9999; opacity: 0; transition: opacity 0ms cubic-bezier(.54, 1.5, .38, 1.11); min-width: 0px; transform: translate(0px, 0px);"
877
+ style="position: absolute; left: 0px; top: 0px; z-index: 9999; opacity: 1; transition: opacity 0ms cubic-bezier(.54, 1.5, .38, 1.11); min-width: 0px; transform: translate(0px, 0px);"
878
878
  >
879
879
  <div>
880
880
  Flyout test
@@ -95,6 +95,14 @@ To remove padding at specific breakpoints, pass in 'noPadding' at those breakpoi
95
95
 
96
96
  ```
97
97
 
98
+ ### Main section variations
99
+
100
+ This example shows all types of page sections.
101
+
102
+ ```ts file="./PageMainSectionVariations.tsx"
103
+
104
+ ```
105
+
98
106
  ### Group section
99
107
 
100
108
  To group page content sections, add 1 or more `<PageGroup>` components to a `<Page>`.
@@ -0,0 +1,84 @@
1
+ import React from 'react';
2
+ import {
3
+ Page,
4
+ Masthead,
5
+ MastheadToggle,
6
+ MastheadMain,
7
+ MastheadBrand,
8
+ MastheadContent,
9
+ PageSidebar,
10
+ PageSidebarBody,
11
+ PageSection,
12
+ PageToggleButton,
13
+ Toolbar,
14
+ ToolbarContent,
15
+ ToolbarItem
16
+ } from '@patternfly/react-core';
17
+ import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon';
18
+
19
+ export const PageMainSectionPadding: React.FunctionComponent = () => {
20
+ const [isSidebarOpen, setIsSidebarOpen] = React.useState(true);
21
+
22
+ const onSidebarToggle = () => {
23
+ setIsSidebarOpen(!isSidebarOpen);
24
+ };
25
+
26
+ const headerToolbar = (
27
+ <Toolbar id="main-variations-toolbar">
28
+ <ToolbarContent>
29
+ <ToolbarItem>header-tools</ToolbarItem>
30
+ </ToolbarContent>
31
+ </Toolbar>
32
+ );
33
+
34
+ const header = (
35
+ <Masthead>
36
+ <MastheadToggle>
37
+ <PageToggleButton
38
+ variant="plain"
39
+ aria-label="Global navigation"
40
+ isSidebarOpen={isSidebarOpen}
41
+ onSidebarToggle={onSidebarToggle}
42
+ id="main-variations-nav-toggle"
43
+ >
44
+ <BarsIcon />
45
+ </PageToggleButton>
46
+ </MastheadToggle>
47
+ <MastheadMain>
48
+ <MastheadBrand href="https://patternfly.org" target="_blank">
49
+ Logo
50
+ </MastheadBrand>
51
+ </MastheadMain>
52
+ <MastheadContent>{headerToolbar}</MastheadContent>
53
+ </Masthead>
54
+ );
55
+
56
+ const sidebar = (
57
+ <PageSidebar isSidebarOpen={isSidebarOpen} id="main-variations-sidebar">
58
+ <PageSidebarBody>Navigation</PageSidebarBody>
59
+ </PageSidebar>
60
+ );
61
+
62
+ return (
63
+ <Page header={header} sidebar={sidebar}>
64
+ <PageSection type="subnav">
65
+ Section with <code>type="subnav"</code> for horizontal subnav navigation
66
+ </PageSection>
67
+ <PageSection type="nav">
68
+ Section with <code>type="nav"</code> for tertiary navigation
69
+ </PageSection>
70
+ <PageSection type="tabs">
71
+ Section with <code>type="tabs"</code> for tabs
72
+ </PageSection>
73
+ <PageSection type="breadcrumb">
74
+ Section with <code>type="breadcrumb"</code> for breadcrumbs
75
+ </PageSection>
76
+ <PageSection>
77
+ Section without <code>type</code> prop or <code>type="default"</code> for main sections
78
+ </PageSection>
79
+ <PageSection type="wizard">
80
+ Section with <code>type="wizard"</code> for wizards
81
+ </PageSection>
82
+ </Page>
83
+ );
84
+ };
@@ -6,6 +6,9 @@ exports[`PaginationOptionsMenu should match snapshot (auto-generated) 1`] = `
6
6
  aria-expanded="false"
7
7
  aria-haspopup="listbox"
8
8
  class="pf-v6-c-menu-toggle pf-m-plain pf-m-text"
9
+ data-ouia-component-id="OUIA-Generated-MenuToggle-plainText-1"
10
+ data-ouia-component-type="PF6/MenuToggle"
11
+ data-ouia-safe="true"
9
12
  id="''-toggle"
10
13
  type="button"
11
14
  >