@patternfly/react-core 6.3.0-prerelease.20 → 6.3.0-prerelease.22

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 (255) 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/Content/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/Drawer/package.json +1 -1
  28. package/dist/dynamic/components/Dropdown/package.json +1 -1
  29. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  30. package/dist/dynamic/components/EmptyState/package.json +1 -1
  31. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  32. package/dist/dynamic/components/FileUpload/package.json +1 -1
  33. package/dist/dynamic/components/Form/package.json +1 -1
  34. package/dist/dynamic/components/FormSelect/package.json +1 -1
  35. package/dist/dynamic/components/HelperText/package.json +1 -1
  36. package/dist/dynamic/components/Hint/package.json +1 -1
  37. package/dist/dynamic/components/Icon/package.json +1 -1
  38. package/dist/dynamic/components/InputGroup/package.json +1 -1
  39. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  40. package/dist/dynamic/components/Label/package.json +1 -1
  41. package/dist/dynamic/components/List/package.json +1 -1
  42. package/dist/dynamic/components/LoginPage/package.json +1 -1
  43. package/dist/dynamic/components/Masthead/package.json +1 -1
  44. package/dist/dynamic/components/Menu/package.json +1 -1
  45. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  46. package/dist/dynamic/components/Modal/package.json +1 -1
  47. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  48. package/dist/dynamic/components/Nav/package.json +1 -1
  49. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  50. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  51. package/dist/dynamic/components/NumberInput/package.json +1 -1
  52. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  53. package/dist/dynamic/components/Page/package.json +1 -1
  54. package/dist/dynamic/components/Pagination/package.json +1 -1
  55. package/dist/dynamic/components/Panel/package.json +1 -1
  56. package/dist/dynamic/components/Popover/package.json +1 -1
  57. package/dist/dynamic/components/Progress/package.json +1 -1
  58. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  59. package/dist/dynamic/components/Radio/package.json +1 -1
  60. package/dist/dynamic/components/SearchInput/package.json +1 -1
  61. package/dist/dynamic/components/Select/package.json +1 -1
  62. package/dist/dynamic/components/Sidebar/package.json +1 -1
  63. package/dist/dynamic/components/SimpleList/package.json +1 -1
  64. package/dist/dynamic/components/Skeleton/package.json +1 -1
  65. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  66. package/dist/dynamic/components/Slider/package.json +1 -1
  67. package/dist/dynamic/components/Spinner/package.json +1 -1
  68. package/dist/dynamic/components/Switch/package.json +1 -1
  69. package/dist/dynamic/components/Tabs/package.json +1 -1
  70. package/dist/dynamic/components/TextArea/package.json +1 -1
  71. package/dist/dynamic/components/TextInput/package.json +1 -1
  72. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  73. package/dist/dynamic/components/TimePicker/package.json +1 -1
  74. package/dist/dynamic/components/Timestamp/package.json +1 -1
  75. package/dist/dynamic/components/Title/package.json +1 -1
  76. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  77. package/dist/dynamic/components/Toolbar/package.json +1 -1
  78. package/dist/dynamic/components/Tooltip/package.json +1 -1
  79. package/dist/dynamic/components/TreeView/package.json +1 -1
  80. package/dist/dynamic/components/Truncate/package.json +1 -1
  81. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  82. package/dist/dynamic/components/Wizard/package.json +1 -1
  83. package/dist/dynamic/deprecated/components/Chip/package.json +1 -1
  84. package/dist/dynamic/deprecated/components/DragDrop/package.json +1 -1
  85. package/dist/dynamic/deprecated/components/DualListSelector/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/Modal/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/Tile/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/package.json +1 -1
  90. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  91. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  92. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  93. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  94. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  95. package/dist/dynamic/helpers/constants/package.json +1 -1
  96. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  97. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  98. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  99. package/dist/dynamic/helpers/package.json +1 -1
  100. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  101. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  103. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  104. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  105. package/dist/dynamic/helpers/util/package.json +1 -1
  106. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  107. package/dist/dynamic/layouts/Flex/package.json +1 -1
  108. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  109. package/dist/dynamic/layouts/Grid/package.json +1 -1
  110. package/dist/dynamic/layouts/Level/package.json +1 -1
  111. package/dist/dynamic/layouts/Split/package.json +1 -1
  112. package/dist/dynamic/layouts/Stack/package.json +1 -1
  113. package/dist/dynamic/styles/package.json +1 -1
  114. package/dist/esm/components/Button/Button.d.ts +8 -0
  115. package/dist/esm/components/Button/Button.d.ts.map +1 -1
  116. package/dist/esm/components/Button/Button.js +18 -5
  117. package/dist/esm/components/Button/Button.js.map +1 -1
  118. package/dist/esm/components/Button/hamburgerIcon.d.ts +2 -0
  119. package/dist/esm/components/Button/hamburgerIcon.d.ts.map +1 -0
  120. package/dist/esm/components/Button/hamburgerIcon.js +7 -0
  121. package/dist/esm/components/Button/hamburgerIcon.js.map +1 -0
  122. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js +1 -1
  123. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  124. package/dist/esm/components/MenuToggle/MenuToggle.d.ts +2 -0
  125. package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  126. package/dist/esm/components/MenuToggle/MenuToggle.js +4 -3
  127. package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
  128. package/dist/esm/components/Page/PageToggleButton.d.ts +4 -0
  129. package/dist/esm/components/Page/PageToggleButton.d.ts.map +1 -1
  130. package/dist/esm/components/Page/PageToggleButton.js +2 -2
  131. package/dist/esm/components/Page/PageToggleButton.js.map +1 -1
  132. package/dist/esm/components/TreeView/TreeView.d.ts +5 -0
  133. package/dist/esm/components/TreeView/TreeView.d.ts.map +1 -1
  134. package/dist/esm/components/TreeView/TreeView.js +5 -5
  135. package/dist/esm/components/TreeView/TreeView.js.map +1 -1
  136. package/dist/esm/components/TreeView/TreeViewListItem.d.ts +5 -0
  137. package/dist/esm/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  138. package/dist/esm/components/TreeView/TreeViewListItem.js +7 -3
  139. package/dist/esm/components/TreeView/TreeViewListItem.js.map +1 -1
  140. package/dist/esm/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  141. package/dist/esm/components/TreeView/TreeViewRoot.js +2 -2
  142. package/dist/esm/components/TreeView/TreeViewRoot.js.map +1 -1
  143. package/dist/esm/demos/DashboardHeader.d.ts.map +1 -1
  144. package/dist/esm/demos/DashboardHeader.js +1 -2
  145. package/dist/esm/demos/DashboardHeader.js.map +1 -1
  146. package/dist/js/components/Button/Button.d.ts +8 -0
  147. package/dist/js/components/Button/Button.d.ts.map +1 -1
  148. package/dist/js/components/Button/Button.js +18 -5
  149. package/dist/js/components/Button/Button.js.map +1 -1
  150. package/dist/js/components/Button/hamburgerIcon.d.ts +2 -0
  151. package/dist/js/components/Button/hamburgerIcon.d.ts.map +1 -0
  152. package/dist/js/components/Button/hamburgerIcon.js +11 -0
  153. package/dist/js/components/Button/hamburgerIcon.js.map +1 -0
  154. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js +1 -1
  155. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  156. package/dist/js/components/MenuToggle/MenuToggle.d.ts +2 -0
  157. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  158. package/dist/js/components/MenuToggle/MenuToggle.js +4 -3
  159. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  160. package/dist/js/components/Page/PageToggleButton.d.ts +4 -0
  161. package/dist/js/components/Page/PageToggleButton.d.ts.map +1 -1
  162. package/dist/js/components/Page/PageToggleButton.js +2 -2
  163. package/dist/js/components/Page/PageToggleButton.js.map +1 -1
  164. package/dist/js/components/TreeView/TreeView.d.ts +5 -0
  165. package/dist/js/components/TreeView/TreeView.d.ts.map +1 -1
  166. package/dist/js/components/TreeView/TreeView.js +5 -5
  167. package/dist/js/components/TreeView/TreeView.js.map +1 -1
  168. package/dist/js/components/TreeView/TreeViewListItem.d.ts +5 -0
  169. package/dist/js/components/TreeView/TreeViewListItem.d.ts.map +1 -1
  170. package/dist/js/components/TreeView/TreeViewListItem.js +6 -2
  171. package/dist/js/components/TreeView/TreeViewListItem.js.map +1 -1
  172. package/dist/js/components/TreeView/TreeViewRoot.d.ts.map +1 -1
  173. package/dist/js/components/TreeView/TreeViewRoot.js +2 -2
  174. package/dist/js/components/TreeView/TreeViewRoot.js.map +1 -1
  175. package/dist/js/demos/DashboardHeader.d.ts.map +1 -1
  176. package/dist/js/demos/DashboardHeader.js +1 -2
  177. package/dist/js/demos/DashboardHeader.js.map +1 -1
  178. package/dist/styles/base-no-reset.css +41 -0
  179. package/dist/styles/base.css +41 -0
  180. package/dist/umd/assets/{output-DzgMn5vn.css → output-uvU5KOTz.css} +15361 -15299
  181. package/dist/umd/react-core.min.js +3 -3
  182. package/helpers/package.json +1 -1
  183. package/layouts/package.json +1 -1
  184. package/next/package.json +1 -1
  185. package/package.json +6 -6
  186. package/src/components/Button/Button.tsx +34 -4
  187. package/src/components/Button/__tests__/Button.test.tsx +373 -92
  188. package/src/components/Button/__tests__/__snapshots__/Button.test.tsx.snap +1 -1
  189. package/src/components/Button/examples/Button.md +49 -13
  190. package/src/components/Button/examples/ButtonHamburger.tsx +9 -0
  191. package/src/components/Button/examples/ButtonSettings.tsx +10 -0
  192. package/src/components/Button/hamburgerIcon.tsx +13 -0
  193. package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +1 -1
  194. package/src/components/ClipboardCopy/__tests__/ClipboardCopyToggle.test.tsx +7 -1
  195. package/src/components/ClipboardCopy/__tests__/__snapshots__/ClipboardCopyToggle.test.tsx.snap +0 -1
  196. package/src/components/Masthead/examples/MastheadBasic.tsx +1 -2
  197. package/src/components/Masthead/examples/MastheadBasicMixedContent.tsx +1 -2
  198. package/src/components/Masthead/examples/MastheadDisplayInline.tsx +1 -2
  199. package/src/components/Masthead/examples/MastheadDisplayStack.tsx +1 -2
  200. package/src/components/Masthead/examples/MastheadDisplayStackInlineResponsive.tsx +1 -2
  201. package/src/components/Masthead/examples/MastheadInsets.tsx +1 -2
  202. package/src/components/Masthead/examples/MastheadLogoCustomComponent.tsx +1 -2
  203. package/src/components/MenuToggle/MenuToggle.tsx +6 -1
  204. package/src/components/MenuToggle/__tests__/MenuToggle.test.tsx +59 -45
  205. package/src/components/MenuToggle/__tests__/__snapshots__/MenuToggle.test.tsx.snap +9 -9
  206. package/src/components/MenuToggle/examples/MenuToggle.md +14 -30
  207. package/src/components/MenuToggle/examples/MenuToggleCustomIcon.tsx +17 -0
  208. package/src/components/MenuToggle/examples/MenuToggleSettings.tsx +8 -0
  209. package/src/components/Page/PageToggleButton.tsx +9 -2
  210. package/src/components/Page/examples/PageCenteredSection.tsx +2 -5
  211. package/src/components/Page/examples/PageGroupSection.tsx +2 -5
  212. package/src/components/Page/examples/PageMainSectionPadding.tsx +2 -5
  213. package/src/components/Page/examples/PageMainSectionVariations.tsx +2 -5
  214. package/src/components/Page/examples/PageMultipleSidebarBody.tsx +2 -5
  215. package/src/components/Page/examples/PageUncontrolledNav.tsx +1 -4
  216. package/src/components/Page/examples/PageVerticalNav.tsx +2 -5
  217. package/src/components/Page/examples/PageWithOrWithoutFill.tsx +2 -5
  218. package/src/components/TreeView/TreeView.tsx +9 -0
  219. package/src/components/TreeView/TreeViewListItem.tsx +17 -2
  220. package/src/components/TreeView/TreeViewRoot.tsx +4 -2
  221. package/src/components/TreeView/__tests__/TreeView.test.tsx +8 -1
  222. package/src/components/TreeView/__tests__/TreeViewList.test.tsx +39 -0
  223. package/src/components/TreeView/__tests__/TreeViewListItem.test.tsx +7 -3
  224. package/src/components/TreeView/__tests__/__snapshots__/TreeView.test.tsx.snap +3 -0
  225. package/src/components/TreeView/examples/TreeViewCompact.tsx +1 -1
  226. package/src/components/TreeView/examples/TreeViewCompactNoBackground.tsx +8 -1
  227. package/src/components/TreeView/examples/TreeViewGuides.tsx +1 -1
  228. package/src/components/TreeView/examples/TreeViewMultiselectable.tsx +1 -0
  229. package/src/components/TreeView/examples/TreeViewSelectionExpansion.tsx +1 -0
  230. package/src/components/TreeView/examples/TreeViewSingleSelectable.tsx +1 -0
  231. package/src/components/TreeView/examples/TreeViewWithActionItems.tsx +1 -0
  232. package/src/components/TreeView/examples/TreeViewWithBadges.tsx +1 -0
  233. package/src/components/TreeView/examples/TreeViewWithCheckboxes.tsx +9 -1
  234. package/src/components/TreeView/examples/TreeViewWithCustomBadges.tsx +1 -0
  235. package/src/components/TreeView/examples/TreeViewWithIconPerItem.tsx +1 -0
  236. package/src/components/TreeView/examples/TreeViewWithIcons.tsx +1 -0
  237. package/src/components/TreeView/examples/TreeViewWithMemoization.tsx +1 -0
  238. package/src/components/TreeView/examples/TreeViewWithSearch.tsx +1 -0
  239. package/src/demos/DashboardHeader.tsx +2 -5
  240. package/src/demos/NotificationDrawer/examples/NotificationDrawerBasic.tsx +2 -5
  241. package/src/demos/NotificationDrawer/examples/NotificationDrawerGrouped.tsx +2 -5
  242. package/src/demos/RTL/examples/PaginatedTable.tsx +2 -9
  243. package/src/demos/examples/Masthead/MastheadWithHorizontalNav.tsx +1 -1
  244. package/src/demos/examples/Masthead/MastheadWithUtilitiesAndUserDropdownMenu.tsx +2 -5
  245. package/src/demos/examples/Nav/NavFlyout.tsx +3 -6
  246. package/src/demos/examples/Nav/NavHorizontal.tsx +1 -1
  247. package/src/demos/examples/Nav/NavHorizontalWithSubnav.tsx +2 -5
  248. package/src/demos/examples/Nav/NavManual.tsx +3 -6
  249. package/src/demos/examples/Page/PageContextSelector.tsx +3 -6
  250. package/src/demos/examples/Page/PageStickySectionBreadcrumb.tsx +2 -5
  251. package/src/demos/examples/Page/PageStickySectionGroup.tsx +2 -5
  252. package/src/demos/examples/Page/PageStickySectionGroupAlternate.tsx +2 -5
  253. package/src/demos/examples/Toolbar/ConsoleLogViewerToolbar.tsx +2 -3
  254. package/src/demos/examples/Wizard/InPageWithDrawer.tsx +1 -4
  255. package/src/demos/examples/Wizard/InPageWithDrawerInformationalStep.tsx +1 -4
@@ -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.3.0-prerelease.19","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.3.0-prerelease.21","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.3.0-prerelease.19","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.3.0-prerelease.21","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.3.0-prerelease.19","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.3.0-prerelease.21","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.3.0-prerelease.20",
3
+ "version": "6.3.0-prerelease.22",
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.mjs --config subpaths.config.json"
47
47
  },
48
48
  "dependencies": {
49
- "@patternfly/react-icons": "^6.3.0-prerelease.5",
50
- "@patternfly/react-styles": "^6.3.0-prerelease.5",
51
- "@patternfly/react-tokens": "^6.3.0-prerelease.5",
49
+ "@patternfly/react-icons": "^6.3.0-prerelease.6",
50
+ "@patternfly/react-styles": "^6.3.0-prerelease.6",
51
+ "@patternfly/react-tokens": "^6.3.0-prerelease.6",
52
52
  "focus-trap": "7.6.4",
53
53
  "react-dropzone": "^14.3.5",
54
54
  "tslib": "^2.8.1"
55
55
  },
56
56
  "devDependencies": {
57
- "@patternfly/patternfly": "6.3.0-prerelease.26",
57
+ "@patternfly/patternfly": "6.3.0-prerelease.29",
58
58
  "case-anything": "^3.1.2",
59
59
  "css": "^3.0.0",
60
60
  "fs-extra": "^11.3.0"
@@ -63,5 +63,5 @@
63
63
  "react": "^17 || ^18 || ^19",
64
64
  "react-dom": "^17 || ^18 || ^19"
65
65
  },
66
- "gitHead": "9e7c8ba6afb5ad01cbac427089f8f9032e523628"
66
+ "gitHead": "627a53b707bc052fdc12e4ad8b4bde7c563d5abc"
67
67
  }
@@ -6,6 +6,8 @@ import { useOUIAProps, OUIAProps } from '../../helpers/OUIA/ouia';
6
6
  import { Badge } from '../Badge';
7
7
  import StarIcon from '@patternfly/react-icons/dist/esm/icons/star-icon';
8
8
  import OutlinedStarIcon from '@patternfly/react-icons/dist/esm/icons/outlined-star-icon';
9
+ import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon';
10
+ import { hamburgerIcon } from './hamburgerIcon';
9
11
 
10
12
  export enum ButtonVariant {
11
13
  primary = 'primary',
@@ -97,6 +99,14 @@ export interface ButtonProps extends Omit<React.HTMLProps<HTMLButtonElement>, 'r
97
99
  tabIndex?: number;
98
100
  /** Adds danger styling to secondary or link button variants */
99
101
  isDanger?: boolean;
102
+ /** Flag indicating whether content the button controls is expanded or not. Required when isHamburger is true. */
103
+ isExpanded?: boolean;
104
+ /** Flag indicating the button is a settings button. This will override the icon property. */
105
+ isSettings?: boolean;
106
+ /** Flag indicating the button is a hamburger button. This will override the icon property. */
107
+ isHamburger?: boolean;
108
+ /** Adjusts and animates the hamburger icon to indicate what will happen upon clicking the button. */
109
+ hamburgerVariant?: 'expand' | 'collapse';
100
110
  /** @hide Forwarded ref */
101
111
  innerRef?: React.Ref<any>;
102
112
  /** Adds count number to button */
@@ -117,6 +127,10 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
117
127
  isAriaDisabled = false,
118
128
  isLoading = null,
119
129
  isDanger = false,
130
+ isExpanded,
131
+ isSettings,
132
+ isHamburger,
133
+ hamburgerVariant,
120
134
  spinnerAriaValueText,
121
135
  spinnerAriaLabelledBy,
122
136
  spinnerAriaLabel,
@@ -140,10 +154,17 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
140
154
  countOptions,
141
155
  ...props
142
156
  }: ButtonProps) => {
143
- if (isFavorite && !ariaLabel && !props['aria-labelledby']) {
157
+ if (isHamburger && ![true, false].includes(isExpanded)) {
144
158
  // eslint-disable-next-line no-console
145
159
  console.error(
146
- 'Button: Each favorite button must have a unique accessible name provided via aria-label or aria-labelledby'
160
+ 'Button: when the isHamburger property is passed in, you must also pass in a boolean value to the isExpanded property. It is expected that a hamburger button controls the expansion of other content.'
161
+ );
162
+ }
163
+ // TODO: Remove isSettings || isHamburger || isFavorite conditional in breaking change to throw this warning for any button that does not have children or aria name
164
+ if ((isSettings || isHamburger || isFavorite) && !ariaLabel && !children && !props['aria-labelledby']) {
165
+ // eslint-disable-next-line no-console
166
+ console.error(
167
+ 'Button: you must provide either visible text content or an accessible name via the aria-label or aria-labelledby properties.'
147
168
  );
148
169
  }
149
170
 
@@ -152,7 +173,7 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
152
173
  const isButtonElement = Component === 'button';
153
174
  const isInlineSpan = isInline && Component === 'span';
154
175
  const isIconAlignedAtEnd = iconPosition === 'end' || iconPosition === 'right';
155
- const shouldOverrideIcon = isFavorite;
176
+ const shouldOverrideIcon = isSettings || isHamburger || isFavorite;
156
177
 
157
178
  const preventedEvents = inoperableEvents.reduce(
158
179
  (handlers, eventToPrevent) => ({
@@ -190,6 +211,12 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
190
211
  );
191
212
  }
192
213
 
214
+ if (isSettings) {
215
+ iconContent = <CogIcon />;
216
+ }
217
+ if (isHamburger) {
218
+ iconContent = hamburgerIcon;
219
+ }
193
220
  if (icon && !shouldOverrideIcon) {
194
221
  iconContent = icon;
195
222
  }
@@ -202,7 +229,6 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
202
229
  )
203
230
  );
204
231
  };
205
-
206
232
  const _icon = renderIcon();
207
233
  const _children = children && <span className={css('pf-v6-c-button__text')}>{children}</span>;
208
234
  // We only want to render the aria-disabled attribute when true, similar to the disabled attribute natively.
@@ -210,6 +236,7 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
210
236
 
211
237
  return (
212
238
  <Component
239
+ aria-expanded={isExpanded} // Move this after the spread props in next breaking change
213
240
  {...props}
214
241
  {...(isAriaDisabled ? preventedEvents : null)}
215
242
  {...(shouldRenderAriaDisabled && { 'aria-disabled': true })}
@@ -217,6 +244,9 @@ const ButtonBase: React.FunctionComponent<ButtonProps> = ({
217
244
  className={css(
218
245
  styles.button,
219
246
  styles.modifiers[variant],
247
+ isSettings && styles.modifiers.settings,
248
+ isHamburger && styles.modifiers.hamburger,
249
+ isHamburger && hamburgerVariant && styles.modifiers[hamburgerVariant],
220
250
  isBlock && styles.modifiers.block,
221
251
  isDisabled && !isButtonElement && styles.modifiers.disabled,
222
252
  isAriaDisabled && styles.modifiers.ariaDisabled,