@patternfly/react-core 6.5.0-prerelease.30 → 6.5.0-prerelease.32

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 (260) 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/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  102. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  103. package/dist/dynamic/helpers/package.json +1 -1
  104. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  105. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  106. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  107. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  108. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  109. package/dist/dynamic/helpers/util/package.json +1 -1
  110. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  111. package/dist/dynamic/layouts/Flex/package.json +1 -1
  112. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  113. package/dist/dynamic/layouts/Grid/package.json +1 -1
  114. package/dist/dynamic/layouts/Level/package.json +1 -1
  115. package/dist/dynamic/layouts/Split/package.json +1 -1
  116. package/dist/dynamic/layouts/Stack/package.json +1 -1
  117. package/dist/dynamic/styles/package.json +1 -1
  118. package/dist/esm/components/Accordion/AccordionToggle.d.ts.map +1 -1
  119. package/dist/esm/components/Accordion/AccordionToggle.js.map +1 -1
  120. package/dist/esm/components/Avatar/Avatar.d.ts.map +1 -1
  121. package/dist/esm/components/Avatar/Avatar.js.map +1 -1
  122. package/dist/esm/components/Brand/Brand.d.ts.map +1 -1
  123. package/dist/esm/components/Brand/Brand.js.map +1 -1
  124. package/dist/esm/components/Checkbox/Checkbox.d.ts.map +1 -1
  125. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  126. package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.d.ts.map +1 -1
  127. package/dist/esm/components/ClipboardCopy/ClipboardCopyButton.js.map +1 -1
  128. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  129. package/dist/esm/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  130. package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
  131. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  132. package/dist/esm/components/FileUpload/FileUpload.d.ts.map +1 -1
  133. package/dist/esm/components/FileUpload/FileUpload.js.map +1 -1
  134. package/dist/esm/components/FormSelect/FormSelect.d.ts.map +1 -1
  135. package/dist/esm/components/FormSelect/FormSelect.js.map +1 -1
  136. package/dist/esm/components/LoginPage/LoginPage.d.ts +3 -0
  137. package/dist/esm/components/LoginPage/LoginPage.d.ts.map +1 -1
  138. package/dist/esm/components/LoginPage/LoginPage.js +2 -2
  139. package/dist/esm/components/LoginPage/LoginPage.js.map +1 -1
  140. package/dist/esm/components/Masthead/MastheadLogo.d.ts.map +1 -1
  141. package/dist/esm/components/Masthead/MastheadLogo.js.map +1 -1
  142. package/dist/esm/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  143. package/dist/esm/components/MenuToggle/MenuToggle.js.map +1 -1
  144. package/dist/esm/components/MenuToggle/MenuToggleCheckbox.d.ts.map +1 -1
  145. package/dist/esm/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
  146. package/dist/esm/components/Nav/Nav.d.ts.map +1 -1
  147. package/dist/esm/components/Nav/Nav.js.map +1 -1
  148. package/dist/esm/components/Nav/NavExpandable.d.ts.map +1 -1
  149. package/dist/esm/components/Nav/NavExpandable.js.map +1 -1
  150. package/dist/esm/components/Nav/NavList.d.ts.map +1 -1
  151. package/dist/esm/components/Nav/NavList.js.map +1 -1
  152. package/dist/esm/components/ProgressStepper/ProgressStep.d.ts.map +1 -1
  153. package/dist/esm/components/ProgressStepper/ProgressStep.js.map +1 -1
  154. package/dist/esm/components/ProgressStepper/ProgressStepper.d.ts.map +1 -1
  155. package/dist/esm/components/ProgressStepper/ProgressStepper.js.map +1 -1
  156. package/dist/esm/components/Radio/Radio.d.ts.map +1 -1
  157. package/dist/esm/components/Radio/Radio.js.map +1 -1
  158. package/dist/esm/components/Switch/Switch.d.ts.map +1 -1
  159. package/dist/esm/components/Switch/Switch.js.map +1 -1
  160. package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
  161. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  162. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  163. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  164. package/dist/esm/components/TextInput/TextInput.d.ts.map +1 -1
  165. package/dist/esm/components/TextInput/TextInput.js.map +1 -1
  166. package/dist/esm/components/TimePicker/TimePicker.d.ts.map +1 -1
  167. package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
  168. package/dist/esm/components/Wizard/WizardNavItem.d.ts.map +1 -1
  169. package/dist/esm/components/Wizard/WizardNavItem.js.map +1 -1
  170. package/dist/js/components/Accordion/AccordionToggle.d.ts.map +1 -1
  171. package/dist/js/components/Accordion/AccordionToggle.js.map +1 -1
  172. package/dist/js/components/Avatar/Avatar.d.ts.map +1 -1
  173. package/dist/js/components/Avatar/Avatar.js.map +1 -1
  174. package/dist/js/components/Brand/Brand.d.ts.map +1 -1
  175. package/dist/js/components/Brand/Brand.js.map +1 -1
  176. package/dist/js/components/Checkbox/Checkbox.d.ts.map +1 -1
  177. package/dist/js/components/Checkbox/Checkbox.js.map +1 -1
  178. package/dist/js/components/ClipboardCopy/ClipboardCopyButton.d.ts.map +1 -1
  179. package/dist/js/components/ClipboardCopy/ClipboardCopyButton.js.map +1 -1
  180. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.d.ts.map +1 -1
  181. package/dist/js/components/ClipboardCopy/ClipboardCopyToggle.js.map +1 -1
  182. package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
  183. package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
  184. package/dist/js/components/FileUpload/FileUpload.d.ts.map +1 -1
  185. package/dist/js/components/FileUpload/FileUpload.js.map +1 -1
  186. package/dist/js/components/FormSelect/FormSelect.d.ts.map +1 -1
  187. package/dist/js/components/FormSelect/FormSelect.js.map +1 -1
  188. package/dist/js/components/LoginPage/LoginPage.d.ts +3 -0
  189. package/dist/js/components/LoginPage/LoginPage.d.ts.map +1 -1
  190. package/dist/js/components/LoginPage/LoginPage.js +2 -2
  191. package/dist/js/components/LoginPage/LoginPage.js.map +1 -1
  192. package/dist/js/components/Masthead/MastheadLogo.d.ts.map +1 -1
  193. package/dist/js/components/Masthead/MastheadLogo.js.map +1 -1
  194. package/dist/js/components/MenuToggle/MenuToggle.d.ts.map +1 -1
  195. package/dist/js/components/MenuToggle/MenuToggle.js.map +1 -1
  196. package/dist/js/components/MenuToggle/MenuToggleCheckbox.d.ts.map +1 -1
  197. package/dist/js/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
  198. package/dist/js/components/Nav/Nav.d.ts.map +1 -1
  199. package/dist/js/components/Nav/Nav.js.map +1 -1
  200. package/dist/js/components/Nav/NavExpandable.d.ts.map +1 -1
  201. package/dist/js/components/Nav/NavExpandable.js.map +1 -1
  202. package/dist/js/components/Nav/NavList.d.ts.map +1 -1
  203. package/dist/js/components/Nav/NavList.js.map +1 -1
  204. package/dist/js/components/ProgressStepper/ProgressStep.d.ts.map +1 -1
  205. package/dist/js/components/ProgressStepper/ProgressStep.js.map +1 -1
  206. package/dist/js/components/ProgressStepper/ProgressStepper.d.ts.map +1 -1
  207. package/dist/js/components/ProgressStepper/ProgressStepper.js.map +1 -1
  208. package/dist/js/components/Radio/Radio.d.ts.map +1 -1
  209. package/dist/js/components/Radio/Radio.js.map +1 -1
  210. package/dist/js/components/Switch/Switch.d.ts.map +1 -1
  211. package/dist/js/components/Switch/Switch.js.map +1 -1
  212. package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
  213. package/dist/js/components/Tabs/Tab.js.map +1 -1
  214. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  215. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  216. package/dist/js/components/TextInput/TextInput.d.ts.map +1 -1
  217. package/dist/js/components/TextInput/TextInput.js.map +1 -1
  218. package/dist/js/components/TimePicker/TimePicker.d.ts.map +1 -1
  219. package/dist/js/components/TimePicker/TimePicker.js.map +1 -1
  220. package/dist/js/components/Wizard/WizardNavItem.d.ts.map +1 -1
  221. package/dist/js/components/Wizard/WizardNavItem.js.map +1 -1
  222. package/dist/umd/assets/{output-C9hOBGo-.css → output-DofotEQv.css} +18391 -18391
  223. package/dist/umd/react-core.min.js +1 -1
  224. package/helpers/package.json +1 -1
  225. package/layouts/package.json +1 -1
  226. package/next/package.json +1 -1
  227. package/package.json +2 -2
  228. package/src/components/Accordion/AccordionToggle.tsx +4 -2
  229. package/src/components/Alert/examples/AlertAsyncLiveRegion.tsx +1 -7
  230. package/src/components/Avatar/Avatar.tsx +4 -2
  231. package/src/components/Brand/Brand.tsx +4 -2
  232. package/src/components/Checkbox/Checkbox.tsx +1 -2
  233. package/src/components/ClipboardCopy/ClipboardCopyButton.tsx +4 -2
  234. package/src/components/ClipboardCopy/ClipboardCopyToggle.tsx +4 -2
  235. package/src/components/Compass/__tests__/CompassNavHome.test.tsx +2 -2
  236. package/src/components/Compass/__tests__/CompassNavSearch.test.tsx +2 -2
  237. package/src/components/DatePicker/DatePicker.tsx +2 -1
  238. package/src/components/FileUpload/FileUpload.tsx +4 -5
  239. package/src/components/FormSelect/FormSelect.tsx +1 -2
  240. package/src/components/LoginPage/LoginPage.tsx +5 -2
  241. package/src/components/LoginPage/__tests__/LoginPage.test.tsx +38 -1
  242. package/src/components/LoginPage/__tests__/__snapshots__/LoginPage.test.tsx.snap +92 -0
  243. package/src/components/LoginPage/examples/LoginPage.md +2 -0
  244. package/src/components/LoginPage/examples/LoginPageBasic.tsx +1 -2
  245. package/src/components/Masthead/MastheadLogo.tsx +4 -2
  246. package/src/components/MenuToggle/MenuToggle.tsx +2 -1
  247. package/src/components/MenuToggle/MenuToggleCheckbox.tsx +1 -2
  248. package/src/components/Nav/Nav.tsx +2 -1
  249. package/src/components/Nav/NavExpandable.tsx +1 -2
  250. package/src/components/Nav/NavList.tsx +4 -2
  251. package/src/components/ProgressStepper/ProgressStep.tsx +4 -2
  252. package/src/components/ProgressStepper/ProgressStepper.tsx +4 -2
  253. package/src/components/Radio/Radio.tsx +1 -2
  254. package/src/components/Switch/Switch.tsx +1 -2
  255. package/src/components/Tabs/Tab.tsx +1 -2
  256. package/src/components/Tabs/Tabs.tsx +1 -2
  257. package/src/components/TextInput/TextInput.tsx +1 -2
  258. package/src/components/TimePicker/TimePicker.tsx +4 -2
  259. package/src/components/ToggleGroup/examples/ToggleGroupDefaultSingle.tsx +2 -1
  260. package/src/components/Wizard/WizardNavItem.tsx +1 -2
@@ -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.29","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.31","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.29","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.31","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.29","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.31","private":true}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@patternfly/react-core",
3
- "version": "6.5.0-prerelease.30",
3
+ "version": "6.5.0-prerelease.32",
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": "d589d3a24a46cc04abb58f43b8193aaaad029fda"
66
+ "gitHead": "a5d68cd0e560439039ab540712fb691d999b0590"
67
67
  }
@@ -4,8 +4,10 @@ import styles from '@patternfly/react-styles/css/components/Accordion/accordion'
4
4
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
5
5
  import { AccordionContext, AccordionItemContext } from './AccordionContext';
6
6
 
7
- export interface AccordionToggleProps
8
- extends React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement> {
7
+ export interface AccordionToggleProps extends React.DetailedHTMLProps<
8
+ React.ButtonHTMLAttributes<HTMLButtonElement>,
9
+ HTMLButtonElement
10
+ > {
9
11
  /** Content rendered inside the Accordion toggle */
10
12
  children?: React.ReactNode;
11
13
  /** Additional classes added to the Accordion Toggle */
@@ -42,13 +42,7 @@ export const AsyncLiveRegionAlert: React.FunctionComponent = () => {
42
42
  text="Async alerts on"
43
43
  buttonId="async-alerts-on"
44
44
  isSelected={isActive}
45
- onChange={() => setIsActive(true)}
46
- />
47
- <ToggleGroupItem
48
- text="Async alerts off"
49
- buttonId="async-alerts-off"
50
- isSelected={!isActive}
51
- onChange={() => setIsActive(false)}
45
+ onChange={() => setIsActive(!isActive)}
52
46
  />
53
47
  </ToggleGroup>
54
48
  <AlertGroup hasAnimations isLiveRegion>
@@ -1,8 +1,10 @@
1
1
  import styles from '@patternfly/react-styles/css/components/Avatar/avatar';
2
2
  import { css } from '@patternfly/react-styles';
3
3
 
4
- export interface AvatarProps
5
- extends React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {
4
+ export interface AvatarProps extends React.DetailedHTMLProps<
5
+ React.ImgHTMLAttributes<HTMLImageElement>,
6
+ HTMLImageElement
7
+ > {
6
8
  /** Additional classes added to the avatar. */
7
9
  className?: string;
8
10
  /** Attribute that specifies the URL of the image for the avatar. */
@@ -4,8 +4,10 @@ import { setBreakpointCssVars } from '../../helpers';
4
4
  import cssBrandHeight from '@patternfly/react-tokens/dist/esm/c_brand_Height';
5
5
  import cssBrandWidth from '@patternfly/react-tokens/dist/esm/c_brand_Width';
6
6
 
7
- export interface BrandProps
8
- extends React.DetailedHTMLProps<React.ImgHTMLAttributes<HTMLImageElement>, HTMLImageElement> {
7
+ export interface BrandProps extends React.DetailedHTMLProps<
8
+ React.ImgHTMLAttributes<HTMLImageElement>,
9
+ HTMLImageElement
10
+ > {
9
11
  /** Transforms the Brand into a <picture> element from an <img> element. Container for <source> child elements. */
10
12
  children?: React.ReactNode;
11
13
  /** Additional classes added to the either type of Brand. */
@@ -7,8 +7,7 @@ import { getUniqueId } from '../../helpers/util';
7
7
  import { ASTERISK } from '../../helpers/htmlConstants';
8
8
 
9
9
  export interface CheckboxProps
10
- extends Omit<React.HTMLProps<HTMLInputElement>, 'type' | 'onChange' | 'disabled' | 'label'>,
11
- OUIAProps {
10
+ extends Omit<React.HTMLProps<HTMLInputElement>, 'type' | 'onChange' | 'disabled' | 'label'>, OUIAProps {
12
11
  /** Additional classes added to the checkbox wrapper. This wrapper will be div element by default. It will be a label element if
13
12
  * isLabelWrapped is true, or it can be overridden by any element specified in the component prop.
14
13
  */
@@ -3,8 +3,10 @@ import CopyIcon from '@patternfly/react-icons/dist/esm/icons/copy-icon';
3
3
  import { Button } from '../Button';
4
4
  import { Tooltip, TooltipPosition } from '../Tooltip';
5
5
 
6
- export interface ClipboardCopyButtonProps
7
- extends Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, 'ref'> {
6
+ export interface ClipboardCopyButtonProps extends Omit<
7
+ React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>,
8
+ 'ref'
9
+ > {
8
10
  /** Callback for the copy when the button is clicked */
9
11
  onClick: (event: React.MouseEvent) => void;
10
12
  /** Content of the copy button */
@@ -3,8 +3,10 @@ import { css } from '@patternfly/react-styles';
3
3
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
4
4
  import { Button } from '../Button';
5
5
 
6
- export interface ClipboardCopyToggleProps
7
- extends Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, 'ref'> {
6
+ export interface ClipboardCopyToggleProps extends Omit<
7
+ React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>,
8
+ 'ref'
9
+ > {
8
10
  onClick: (event: React.MouseEvent) => void;
9
11
  id: string;
10
12
  contentId: string;
@@ -22,7 +22,7 @@ test('Renders with default tooltip content', async () => {
22
22
 
23
23
  const button = screen.getByRole('button');
24
24
 
25
- user.hover(button);
25
+ await user.hover(button);
26
26
 
27
27
  await screen.findByRole('tooltip');
28
28
 
@@ -36,7 +36,7 @@ test('Renders with custom tooltip content when provided', async () => {
36
36
 
37
37
  const button = screen.getByRole('button');
38
38
 
39
- user.hover(button);
39
+ await user.hover(button);
40
40
 
41
41
  await screen.findByRole('tooltip');
42
42
  expect(screen.getByRole('tooltip')).toHaveTextContent('Custom tooltip');
@@ -20,7 +20,7 @@ test('Renders with default tooltip content', async () => {
20
20
 
21
21
  const button = screen.getByRole('button');
22
22
 
23
- user.hover(button);
23
+ await user.hover(button);
24
24
 
25
25
  await screen.findByRole('tooltip');
26
26
 
@@ -34,7 +34,7 @@ test('Renders with custom tooltip content when provided', async () => {
34
34
 
35
35
  const button = screen.getByRole('button');
36
36
 
37
- user.hover(button);
37
+ await user.hover(button);
38
38
 
39
39
  await screen.findByRole('tooltip');
40
40
 
@@ -24,7 +24,8 @@ export interface DatePickerRequiredObject {
24
24
  /** The main date picker component. */
25
25
 
26
26
  export interface DatePickerProps
27
- extends CalendarFormat,
27
+ extends
28
+ CalendarFormat,
28
29
  Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'onFocus' | 'onBlur' | 'disabled' | 'ref'> {
29
30
  /** The container to append the menu to. Defaults to 'inline'.
30
31
  * If your menu is being cut off you can append it to an element higher up the DOM tree.
@@ -4,11 +4,10 @@ import { readFile, fileReaderType } from '../../helpers/fileUtils';
4
4
  import { DropEvent } from '../../helpers/typeUtils';
5
5
  import { fromEvent } from 'file-selector';
6
6
 
7
- export interface FileUploadProps
8
- extends Omit<
9
- FileUploadFieldProps,
10
- 'children' | 'onBrowseButtonClick' | 'onClearButtonClick' | 'isDragActive' | 'containerRef'
11
- > {
7
+ export interface FileUploadProps extends Omit<
8
+ FileUploadFieldProps,
9
+ 'children' | 'onBrowseButtonClick' | 'onClearButtonClick' | 'isDragActive' | 'containerRef'
10
+ > {
12
11
  /** Flag to allow editing of a text file's contents after it is selected from disk. */
13
12
  allowEditingUploadedText?: boolean;
14
13
  /** Aria-label for the text area. */
@@ -8,8 +8,7 @@ import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
8
8
  import CaretDownIcon from '@patternfly/react-icons/dist/esm/icons/caret-down-icon';
9
9
 
10
10
  export interface FormSelectProps
11
- extends Omit<React.HTMLProps<HTMLSelectElement>, 'onChange' | 'onBlur' | 'onFocus' | 'disabled'>,
12
- OUIAProps {
11
+ extends Omit<React.HTMLProps<HTMLSelectElement>, 'onChange' | 'onBlur' | 'onFocus' | 'disabled'>, OUIAProps {
13
12
  /** content rendered inside the FormSelect */
14
13
  children: React.ReactNode;
15
14
  /** additional classes added to the FormSelect control */
@@ -2,7 +2,7 @@ import { Fragment } from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
 
4
4
  import { BackgroundImage } from '../BackgroundImage';
5
- import { Brand } from '../Brand';
5
+ import { Brand, BrandProps } from '../Brand';
6
6
  import { List, ListVariant } from '../List';
7
7
 
8
8
  import { Login } from './Login';
@@ -21,6 +21,8 @@ export interface LoginPageProps extends React.HTMLProps<HTMLDivElement> {
21
21
  brandImgSrc?: string;
22
22
  /** Attribute that specifies the alt text of the brand image for the login page */
23
23
  brandImgAlt?: string;
24
+ /** Additional props for the brand image for the login page */
25
+ brandImgProps?: BrandProps;
24
26
  /** Attribute that specifies the URL of the background image for the login page */
25
27
  backgroundImgSrc?: string;
26
28
  /** Content rendered inside of the text component of the login page */
@@ -50,6 +52,7 @@ export const LoginPage: React.FunctionComponent<LoginPageProps> = ({
50
52
  className = '',
51
53
  brandImgSrc = '',
52
54
  brandImgAlt = '',
55
+ brandImgProps,
53
56
  backgroundImgSrc = '',
54
57
  footerListItems = null,
55
58
  textContent = '',
@@ -65,7 +68,7 @@ export const LoginPage: React.FunctionComponent<LoginPageProps> = ({
65
68
  }: LoginPageProps) => {
66
69
  const HeaderBrand = (
67
70
  <Fragment>
68
- <Brand src={brandImgSrc} alt={brandImgAlt} />
71
+ {(brandImgSrc || brandImgProps?.src) && <Brand src={brandImgSrc} alt={brandImgAlt} {...brandImgProps} />}
69
72
  </Fragment>
70
73
  );
71
74
  const Header = <LoginHeader headerBrand={HeaderBrand} />;
@@ -1,5 +1,5 @@
1
1
  import { Fragment } from 'react';
2
- import { render } from '@testing-library/react';
2
+ import { render, screen } from '@testing-library/react';
3
3
 
4
4
  import { LoginPage } from '../LoginPage';
5
5
  import { ListVariant } from '../../List';
@@ -26,3 +26,40 @@ test('check loginpage example against snapshot', () => {
26
26
  );
27
27
  expect(asFragment()).toMatchSnapshot();
28
28
  });
29
+
30
+ test('brand is absent without brandImgSrc and brandImgProps.src', () => {
31
+ const { asFragment } = render(<LoginPage loginTitle="Log into your account" />);
32
+ expect(asFragment()).toMatchSnapshot();
33
+ });
34
+
35
+ test('brand is present with brandImgSrc prop', () => {
36
+ const { asFragment } = render(<LoginPage brandImgSrc="Brand src" loginTitle="Log into your account" />);
37
+ expect(asFragment()).toMatchSnapshot();
38
+ });
39
+
40
+ test('brandImgProps successfully renders brand with props', () => {
41
+ render(
42
+ <LoginPage
43
+ brandImgProps={{ src: 'Brand src', alt: 'Pf-logo', 'aria-label': 'PatternFly logo', className: 'custom-class' }}
44
+ loginTitle="Log into your account"
45
+ />
46
+ );
47
+ const brandImg = screen.getByRole('img', { name: 'PatternFly logo' });
48
+ expect(brandImg).toHaveAttribute('src', 'Brand src');
49
+ expect(brandImg).toHaveAttribute('alt', 'Pf-logo');
50
+ expect(brandImg).toHaveAttribute('aria-label', 'PatternFly logo');
51
+ expect(brandImg).toHaveClass('custom-class');
52
+ });
53
+
54
+ test('Brand is rendered correctly with both brandImgSrc and brandImgProps, prioritizing brandImgProps.src', () => {
55
+ render(
56
+ <LoginPage
57
+ brandImgSrc="Brand-src-that-should-be-ignored"
58
+ brandImgProps={{ src: 'Brand-src-from-props', alt: 'Pf-logo from props' }}
59
+ loginTitle="Log into your account"
60
+ />
61
+ );
62
+ const brandImg = screen.getByRole('img', { name: 'Pf-logo from props' });
63
+ expect(brandImg).toHaveAttribute('src', 'Brand-src-from-props');
64
+ expect(brandImg).toHaveAttribute('alt', 'Pf-logo from props');
65
+ });
@@ -1,5 +1,97 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
+ exports[`brand is absent without brandImgSrc and brandImgProps.src 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="pf-v6-c-login"
7
+ >
8
+ <div
9
+ class="pf-v6-c-login__container"
10
+ >
11
+ <header
12
+ class="pf-v6-c-login__header"
13
+ />
14
+ <main
15
+ class="pf-v6-c-login__main"
16
+ >
17
+ <div
18
+ class="pf-v6-c-login__main-header"
19
+ >
20
+ <h2
21
+ class="pf-v6-c-title pf-m-3xl"
22
+ data-ouia-component-id="OUIA-Generated-Title-2"
23
+ data-ouia-component-type="PF6/Title"
24
+ data-ouia-safe="true"
25
+ >
26
+ Log into your account
27
+ </h2>
28
+ </div>
29
+ <div
30
+ class="pf-v6-c-login__main-body"
31
+ />
32
+ </main>
33
+ <footer
34
+ class="pf-v6-c-login__footer"
35
+ >
36
+ <p />
37
+ <ul
38
+ class="pf-v6-c-list"
39
+ />
40
+ </footer>
41
+ </div>
42
+ </div>
43
+ </DocumentFragment>
44
+ `;
45
+
46
+ exports[`brand is present with brandImgSrc prop 1`] = `
47
+ <DocumentFragment>
48
+ <div
49
+ class="pf-v6-c-login"
50
+ >
51
+ <div
52
+ class="pf-v6-c-login__container"
53
+ >
54
+ <header
55
+ class="pf-v6-c-login__header"
56
+ >
57
+ <img
58
+ alt=""
59
+ class="pf-v6-c-brand"
60
+ src="Brand src"
61
+ />
62
+ </header>
63
+ <main
64
+ class="pf-v6-c-login__main"
65
+ >
66
+ <div
67
+ class="pf-v6-c-login__main-header"
68
+ >
69
+ <h2
70
+ class="pf-v6-c-title pf-m-3xl"
71
+ data-ouia-component-id="OUIA-Generated-Title-3"
72
+ data-ouia-component-type="PF6/Title"
73
+ data-ouia-safe="true"
74
+ >
75
+ Log into your account
76
+ </h2>
77
+ </div>
78
+ <div
79
+ class="pf-v6-c-login__main-body"
80
+ />
81
+ </main>
82
+ <footer
83
+ class="pf-v6-c-login__footer"
84
+ >
85
+ <p />
86
+ <ul
87
+ class="pf-v6-c-list"
88
+ />
89
+ </footer>
90
+ </div>
91
+ </div>
92
+ </DocumentFragment>
93
+ `;
94
+
3
95
  exports[`check loginpage example against snapshot 1`] = `
4
96
  <DocumentFragment>
5
97
  <div
@@ -32,6 +32,8 @@ import GitlabIcon from '@patternfly/react-icons/dist/esm/icons/gitlab-icon';
32
32
  ### Basic
33
33
 
34
34
  By default, a login page requires users to enter both a username and a password into their respective fields. The username must always be a required field, but you can make the password optional by passing the `isPasswordRequired` property to the `<LoginForm>`.
35
+
36
+ This example uses `brandImgProps` to pass the brand image source, alt text, and an extra class, which will be preferred over `brandImgSrc` when both are provided.
35
37
  ```ts file='./LoginPageBasic.tsx' isFullscreen
36
38
 
37
39
  ```
@@ -114,8 +114,7 @@ export const SimpleLoginPage: React.FunctionComponent = () => {
114
114
  return (
115
115
  <LoginPage
116
116
  footerListVariants={ListVariant.inline}
117
- brandImgSrc={brandImg}
118
- brandImgAlt="PatternFly logo"
117
+ brandImgProps={{ src: brandImg, alt: 'PatternFly logo' }}
119
118
  backgroundImgSrc="/assets/images/pf-background.svg"
120
119
  footerListItems={listItem}
121
120
  textContent="This is placeholder text only. Use this area to place any information or introductory message about your application that may be relevant to users."
@@ -1,8 +1,10 @@
1
1
  import styles from '@patternfly/react-styles/css/components/Masthead/masthead';
2
2
  import { css } from '@patternfly/react-styles';
3
3
 
4
- export interface MastheadLogoProps
5
- extends React.DetailedHTMLProps<React.HTMLProps<HTMLAnchorElement>, HTMLAnchorElement> {
4
+ export interface MastheadLogoProps extends React.DetailedHTMLProps<
5
+ React.HTMLProps<HTMLAnchorElement>,
6
+ HTMLAnchorElement
7
+ > {
6
8
  /** Content rendered inside of the masthead logo. */
7
9
  children?: React.ReactNode;
8
10
  /** Additional classes added to the masthead logo. */
@@ -23,7 +23,8 @@ export enum MenuToggleSize {
23
23
  export type MenuToggleElement = HTMLDivElement | HTMLButtonElement;
24
24
 
25
25
  export interface MenuToggleProps
26
- extends Omit<
26
+ extends
27
+ Omit<
27
28
  React.DetailedHTMLProps<
28
29
  React.ButtonHTMLAttributes<HTMLButtonElement> & React.HTMLAttributes<HTMLDivElement>,
29
30
  MenuToggleElement
@@ -5,8 +5,7 @@ import { PickOptional } from '../../helpers/typeUtils';
5
5
  import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
6
6
 
7
7
  export interface MenuToggleCheckboxProps
8
- extends Omit<React.HTMLProps<HTMLInputElement>, 'type' | 'onChange' | 'disabled' | 'checked'>,
9
- OUIAProps {
8
+ extends Omit<React.HTMLProps<HTMLInputElement>, 'type' | 'onChange' | 'disabled' | 'checked'>, OUIAProps {
10
9
  /** Additional classes added to the MenuToggleCheckbox */
11
10
  className?: string;
12
11
  /** Flag to show if the checkbox selection is valid or invalid */
@@ -10,7 +10,8 @@ export type NavSelectClickHandler = (
10
10
  to: string
11
11
  ) => void;
12
12
  export interface NavProps
13
- extends Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, 'onSelect' | 'onToggle'>,
13
+ extends
14
+ Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLElement>, HTMLElement>, 'onSelect' | 'onToggle'>,
14
15
  OUIAProps {
15
16
  /** Anything that can be rendered inside of the nav */
16
17
  children?: React.ReactNode;
@@ -9,8 +9,7 @@ import { PickOptional } from '../../helpers/typeUtils';
9
9
  import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
10
10
 
11
11
  export interface NavExpandableProps
12
- extends Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, 'title'>,
13
- OUIAProps {
12
+ extends Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, 'title'>, OUIAProps {
14
13
  /** Title content shown for the expandable list */
15
14
  title: React.ReactNode;
16
15
  /** If defined, screen readers will read this text instead of the list title */
@@ -9,8 +9,10 @@ import { NavContext } from './Nav';
9
9
  import { PageSidebarContext } from '../Page/PageSidebar';
10
10
  import { getResizeObserver } from '../../helpers/resizeObserver';
11
11
 
12
- export interface NavListProps
13
- extends React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement> {
12
+ export interface NavListProps extends React.DetailedHTMLProps<
13
+ React.HTMLAttributes<HTMLUListElement>,
14
+ HTMLUListElement
15
+ > {
14
16
  /** Children nodes */
15
17
  children?: React.ReactNode;
16
18
  /** Additional classes added to the list */
@@ -15,8 +15,10 @@ export enum ProgressStepVariant {
15
15
  warning = 'warning'
16
16
  }
17
17
 
18
- export interface ProgressStepProps
19
- extends React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement> {
18
+ export interface ProgressStepProps extends React.DetailedHTMLProps<
19
+ React.LiHTMLAttributes<HTMLLIElement>,
20
+ HTMLLIElement
21
+ > {
20
22
  /** Content rendered inside the progress step. */
21
23
  children?: React.ReactNode;
22
24
  /** Additional classes applied to the progress step container. */
@@ -1,8 +1,10 @@
1
1
  import styles from '@patternfly/react-styles/css/components/ProgressStepper/progress-stepper';
2
2
  import { css } from '@patternfly/react-styles';
3
3
 
4
- export interface ProgressStepperProps
5
- extends React.DetailedHTMLProps<React.OlHTMLAttributes<HTMLOListElement>, HTMLOListElement> {
4
+ export interface ProgressStepperProps extends React.DetailedHTMLProps<
5
+ React.OlHTMLAttributes<HTMLOListElement>,
6
+ HTMLOListElement
7
+ > {
6
8
  /** Content rendered inside the progress stepper. */
7
9
  children?: React.ReactNode;
8
10
  /** Additional classes applied to the progress stepper container. */
@@ -6,8 +6,7 @@ import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
6
6
  import { getUniqueId } from '../../helpers/util';
7
7
 
8
8
  export interface RadioProps
9
- extends Omit<React.HTMLProps<HTMLInputElement>, 'disabled' | 'label' | 'onChange' | 'type'>,
10
- OUIAProps {
9
+ extends Omit<React.HTMLProps<HTMLInputElement>, 'disabled' | 'label' | 'onChange' | 'type'>, OUIAProps {
11
10
  /** Additional classes added to the radio wrapper. This wrapper will be div element by default. It will be a label element if
12
11
  * isLabelWrapped is true, or it can be overridden by any element specified in the component prop.
13
12
  */
@@ -6,8 +6,7 @@ import { getUniqueId } from '../../helpers/util';
6
6
  import { getOUIAProps, OUIAProps, getDefaultOUIAId } from '../../helpers';
7
7
 
8
8
  export interface SwitchProps
9
- extends Omit<React.HTMLProps<HTMLInputElement>, 'type' | 'onChange' | 'disabled' | 'label'>,
10
- OUIAProps {
9
+ extends Omit<React.HTMLProps<HTMLInputElement>, 'type' | 'onChange' | 'disabled' | 'label'>, OUIAProps {
11
10
  /** id for the label. */
12
11
  id?: string;
13
12
  /** Additional classes added to the switch */
@@ -9,8 +9,7 @@ import TimesIcon from '@patternfly/react-icons/dist/esm/icons/times-icon';
9
9
  import { TabAction } from './TabAction';
10
10
 
11
11
  export interface TabProps
12
- extends Omit<React.HTMLProps<HTMLAnchorElement | HTMLButtonElement>, 'title' | 'action'>,
13
- OUIAProps {
12
+ extends Omit<React.HTMLProps<HTMLAnchorElement | HTMLButtonElement>, 'title' | 'action'>, OUIAProps {
14
13
  /** content rendered inside the Tab content area. */
15
14
  children?: React.ReactNode;
16
15
  /** additional classes added to the Tab */
@@ -41,8 +41,7 @@ type TabElement = React.ReactElement<TabProps, React.JSXElementConstructor<TabPr
41
41
  type TabsChild = TabElement | boolean | null | undefined;
42
42
 
43
43
  export interface TabsProps
44
- extends Omit<React.HTMLProps<HTMLElement | HTMLDivElement>, 'onSelect' | 'onToggle'>,
45
- OUIAProps {
44
+ extends Omit<React.HTMLProps<HTMLElement | HTMLDivElement>, 'onSelect' | 'onToggle'>, OUIAProps {
46
45
  /** Content rendered inside the tabs component. Only `Tab` components or expressions resulting in a falsy value are allowed here. */
47
46
  children: TabsChild | TabsChild[];
48
47
  /** Additional classes added to the tabs */
@@ -34,8 +34,7 @@ export interface TextInputExpandedObj {
34
34
  }
35
35
 
36
36
  export interface TextInputProps
37
- extends Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'onFocus' | 'onBlur' | 'disabled' | 'ref'>,
38
- OUIAProps {
37
+ extends Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'onFocus' | 'onBlur' | 'disabled' | 'ref'>, OUIAProps {
39
38
  /** Additional classes added to the text input. */
40
39
  className?: string;
41
40
  /** Flag to show if the text input is disabled. */
@@ -23,8 +23,10 @@ import { HelperText, HelperTextItem } from '../HelperText';
23
23
  import OutlinedClockIcon from '@patternfly/react-icons/dist/esm/icons/outlined-clock-icon';
24
24
  import cssDatePickerFormControlWidth from '@patternfly/react-tokens/dist/esm/c_date_picker__input_c_form_control_Width';
25
25
 
26
- export interface TimePickerProps
27
- extends Omit<React.HTMLProps<HTMLDivElement>, 'onChange' | 'onFocus' | 'onBlur' | 'disabled' | 'ref'> {
26
+ export interface TimePickerProps extends Omit<
27
+ React.HTMLProps<HTMLDivElement>,
28
+ 'onChange' | 'onFocus' | 'onBlur' | 'disabled' | 'ref'
29
+ > {
28
30
  /** Additional classes added to the time picker. */
29
31
  className?: string;
30
32
  /** Accessible label for the time picker */
@@ -5,7 +5,8 @@ export const ToggleGroupDefaultSingle: React.FunctionComponent = () => {
5
5
  const [isSelected, setIsSelected] = useState('');
6
6
  const handleItemClick = (event, _isSelected: boolean) => {
7
7
  const id = event.currentTarget.id;
8
- setIsSelected(id);
8
+ // Allow toggling off if clicking the already selected item
9
+ setIsSelected(isSelected === id ? '' : id);
9
10
  };
10
11
  return (
11
12
  <ToggleGroup aria-label="Default with single selectable">
@@ -10,8 +10,7 @@ import { OUIAProps, useOUIAProps } from '../../helpers';
10
10
  import { WizardNavItemStatus } from './types';
11
11
 
12
12
  export interface WizardNavItemProps
13
- extends Omit<React.HTMLProps<HTMLLIElement>, 'onClick' | 'id' | 'content' | 'type'>,
14
- OUIAProps {
13
+ extends Omit<React.HTMLProps<HTMLLIElement>, 'onClick' | 'id' | 'content' | 'type'>, OUIAProps {
15
14
  /** Additional classes spread to the wizard nav item */
16
15
  className?: string;
17
16
  /** Can nest a WizardNav component for substeps */