@patternfly/react-core 5.0.0-alpha.104 → 5.0.0-alpha.106

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 (324) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/esm/components/AboutModal/package.json +1 -1
  3. package/dist/esm/components/Accordion/package.json +1 -1
  4. package/dist/esm/components/ActionList/package.json +1 -1
  5. package/dist/esm/components/Alert/package.json +1 -1
  6. package/dist/esm/components/Avatar/package.json +1 -1
  7. package/dist/esm/components/BackToTop/package.json +1 -1
  8. package/dist/esm/components/Backdrop/package.json +1 -1
  9. package/dist/esm/components/BackgroundImage/package.json +1 -1
  10. package/dist/esm/components/Badge/package.json +1 -1
  11. package/dist/esm/components/Banner/package.json +1 -1
  12. package/dist/esm/components/Brand/package.json +1 -1
  13. package/dist/esm/components/Breadcrumb/package.json +1 -1
  14. package/dist/esm/components/Button/package.json +1 -1
  15. package/dist/esm/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  16. package/dist/esm/components/CalendarMonth/CalendarMonth.js +27 -25
  17. package/dist/esm/components/CalendarMonth/CalendarMonth.js.map +1 -1
  18. package/dist/esm/components/CalendarMonth/package.json +1 -1
  19. package/dist/esm/components/Card/package.json +1 -1
  20. package/dist/esm/components/Checkbox/package.json +1 -1
  21. package/dist/esm/components/Chip/package.json +1 -1
  22. package/dist/esm/components/ClipboardCopy/package.json +1 -1
  23. package/dist/esm/components/CodeBlock/package.json +1 -1
  24. package/dist/esm/components/DataList/package.json +1 -1
  25. package/dist/esm/components/DatePicker/DatePicker.d.ts.map +1 -1
  26. package/dist/esm/components/DatePicker/DatePicker.js +8 -6
  27. package/dist/esm/components/DatePicker/DatePicker.js.map +1 -1
  28. package/dist/esm/components/DatePicker/package.json +1 -1
  29. package/dist/esm/components/DescriptionList/package.json +1 -1
  30. package/dist/esm/components/Divider/package.json +1 -1
  31. package/dist/esm/components/DragDrop/package.json +1 -1
  32. package/dist/esm/components/Drawer/package.json +1 -1
  33. package/dist/esm/components/Dropdown/package.json +1 -1
  34. package/dist/esm/components/DualListSelector/package.json +1 -1
  35. package/dist/esm/components/EmptyState/package.json +1 -1
  36. package/dist/esm/components/ExpandableSection/package.json +1 -1
  37. package/dist/esm/components/FileUpload/FileUploadField.d.ts.map +1 -1
  38. package/dist/esm/components/FileUpload/FileUploadField.js +8 -5
  39. package/dist/esm/components/FileUpload/FileUploadField.js.map +1 -1
  40. package/dist/esm/components/FileUpload/package.json +1 -1
  41. package/dist/esm/components/Form/package.json +1 -1
  42. package/dist/esm/components/FormSelect/package.json +1 -1
  43. package/dist/esm/components/HelperText/package.json +1 -1
  44. package/dist/esm/components/Hint/package.json +1 -1
  45. package/dist/esm/components/Icon/package.json +1 -1
  46. package/dist/esm/components/InputGroup/InputGroup.d.ts.map +1 -1
  47. package/dist/esm/components/InputGroup/InputGroup.js +48 -9
  48. package/dist/esm/components/InputGroup/InputGroup.js.map +1 -1
  49. package/dist/esm/components/InputGroup/InputGroupItem.d.ts +17 -0
  50. package/dist/esm/components/InputGroup/InputGroupItem.d.ts.map +1 -0
  51. package/dist/esm/components/InputGroup/InputGroupItem.js +10 -0
  52. package/dist/esm/components/InputGroup/InputGroupItem.js.map +1 -0
  53. package/dist/esm/components/InputGroup/index.d.ts +1 -0
  54. package/dist/esm/components/InputGroup/index.d.ts.map +1 -1
  55. package/dist/esm/components/InputGroup/index.js +1 -0
  56. package/dist/esm/components/InputGroup/index.js.map +1 -1
  57. package/dist/esm/components/InputGroup/package.json +1 -1
  58. package/dist/esm/components/JumpLinks/package.json +1 -1
  59. package/dist/esm/components/Label/package.json +1 -1
  60. package/dist/esm/components/List/package.json +1 -1
  61. package/dist/esm/components/LoginPage/LoginForm.d.ts.map +1 -1
  62. package/dist/esm/components/LoginPage/LoginForm.js +4 -3
  63. package/dist/esm/components/LoginPage/LoginForm.js.map +1 -1
  64. package/dist/esm/components/LoginPage/package.json +1 -1
  65. package/dist/esm/components/Masthead/package.json +1 -1
  66. package/dist/esm/components/Menu/package.json +1 -1
  67. package/dist/esm/components/MenuToggle/package.json +1 -1
  68. package/dist/esm/components/Modal/package.json +1 -1
  69. package/dist/esm/components/MultipleFileUpload/package.json +1 -1
  70. package/dist/esm/components/Nav/package.json +1 -1
  71. package/dist/esm/components/NotificationBadge/package.json +1 -1
  72. package/dist/esm/components/NotificationDrawer/package.json +1 -1
  73. package/dist/esm/components/NumberInput/NumberInput.d.ts.map +1 -1
  74. package/dist/esm/components/NumberInput/NumberInput.js +11 -8
  75. package/dist/esm/components/NumberInput/NumberInput.js.map +1 -1
  76. package/dist/esm/components/NumberInput/package.json +1 -1
  77. package/dist/esm/components/OverflowMenu/package.json +1 -1
  78. package/dist/esm/components/Page/package.json +1 -1
  79. package/dist/esm/components/Pagination/package.json +1 -1
  80. package/dist/esm/components/Panel/package.json +1 -1
  81. package/dist/esm/components/Popover/package.json +1 -1
  82. package/dist/esm/components/Progress/package.json +1 -1
  83. package/dist/esm/components/ProgressStepper/package.json +1 -1
  84. package/dist/esm/components/Radio/package.json +1 -1
  85. package/dist/esm/components/SearchInput/SearchInput.d.ts.map +1 -1
  86. package/dist/esm/components/SearchInput/SearchInput.js +15 -10
  87. package/dist/esm/components/SearchInput/SearchInput.js.map +1 -1
  88. package/dist/esm/components/SearchInput/package.json +1 -1
  89. package/dist/esm/components/Select/package.json +1 -1
  90. package/dist/esm/components/Sidebar/package.json +1 -1
  91. package/dist/esm/components/SimpleList/package.json +1 -1
  92. package/dist/esm/components/Skeleton/package.json +1 -1
  93. package/dist/esm/components/SkipToContent/package.json +1 -1
  94. package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
  95. package/dist/esm/components/Slider/Slider.js +4 -5
  96. package/dist/esm/components/Slider/Slider.js.map +1 -1
  97. package/dist/esm/components/Slider/package.json +1 -1
  98. package/dist/esm/components/Spinner/package.json +1 -1
  99. package/dist/esm/components/Switch/package.json +1 -1
  100. package/dist/esm/components/Tabs/package.json +1 -1
  101. package/dist/esm/components/Text/package.json +1 -1
  102. package/dist/esm/components/TextArea/package.json +1 -1
  103. package/dist/esm/components/TextInput/package.json +1 -1
  104. package/dist/esm/components/TextInputGroup/package.json +1 -1
  105. package/dist/esm/components/Tile/package.json +1 -1
  106. package/dist/esm/components/TimePicker/TimePicker.d.ts.map +1 -1
  107. package/dist/esm/components/TimePicker/TimePicker.js +5 -4
  108. package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
  109. package/dist/esm/components/TimePicker/package.json +1 -1
  110. package/dist/esm/components/Timestamp/package.json +1 -1
  111. package/dist/esm/components/Title/package.json +1 -1
  112. package/dist/esm/components/ToggleGroup/package.json +1 -1
  113. package/dist/esm/components/Toolbar/package.json +1 -1
  114. package/dist/esm/components/Tooltip/package.json +1 -1
  115. package/dist/esm/components/TreeView/package.json +1 -1
  116. package/dist/esm/components/Truncate/package.json +1 -1
  117. package/dist/esm/components/Wizard/hooks/package.json +1 -1
  118. package/dist/esm/components/Wizard/package.json +1 -1
  119. package/dist/esm/components/package.json +1 -1
  120. package/dist/esm/deprecated/components/ApplicationLauncher/package.json +1 -1
  121. package/dist/esm/deprecated/components/ContextSelector/package.json +1 -1
  122. package/dist/esm/deprecated/components/Dropdown/package.json +1 -1
  123. package/dist/esm/deprecated/components/OptionsMenu/package.json +1 -1
  124. package/dist/esm/deprecated/components/PageHeader/package.json +1 -1
  125. package/dist/esm/deprecated/components/Select/package.json +1 -1
  126. package/dist/esm/deprecated/components/Wizard/package.json +1 -1
  127. package/dist/esm/deprecated/components/package.json +1 -1
  128. package/dist/esm/deprecated/package.json +1 -1
  129. package/dist/esm/helpers/Popper/thirdparty/popper-core/package.json +1 -1
  130. package/dist/esm/helpers/package.json +1 -1
  131. package/dist/esm/layouts/Bullseye/package.json +1 -1
  132. package/dist/esm/layouts/Flex/package.json +1 -1
  133. package/dist/esm/layouts/Gallery/package.json +1 -1
  134. package/dist/esm/layouts/Grid/package.json +1 -1
  135. package/dist/esm/layouts/Level/package.json +1 -1
  136. package/dist/esm/layouts/Split/package.json +1 -1
  137. package/dist/esm/layouts/Stack/package.json +1 -1
  138. package/dist/esm/layouts/package.json +1 -1
  139. package/dist/esm/next/components/package.json +1 -1
  140. package/dist/esm/next/package.json +1 -1
  141. package/dist/esm/package.json +1 -1
  142. package/dist/js/components/AboutModal/package.json +1 -1
  143. package/dist/js/components/Accordion/package.json +1 -1
  144. package/dist/js/components/ActionList/package.json +1 -1
  145. package/dist/js/components/Alert/package.json +1 -1
  146. package/dist/js/components/Avatar/package.json +1 -1
  147. package/dist/js/components/BackToTop/package.json +1 -1
  148. package/dist/js/components/Backdrop/package.json +1 -1
  149. package/dist/js/components/BackgroundImage/package.json +1 -1
  150. package/dist/js/components/Badge/package.json +1 -1
  151. package/dist/js/components/Banner/package.json +1 -1
  152. package/dist/js/components/Brand/package.json +1 -1
  153. package/dist/js/components/Breadcrumb/package.json +1 -1
  154. package/dist/js/components/Button/package.json +1 -1
  155. package/dist/js/components/CalendarMonth/CalendarMonth.d.ts.map +1 -1
  156. package/dist/js/components/CalendarMonth/CalendarMonth.js +26 -24
  157. package/dist/js/components/CalendarMonth/CalendarMonth.js.map +1 -1
  158. package/dist/js/components/CalendarMonth/package.json +1 -1
  159. package/dist/js/components/Card/package.json +1 -1
  160. package/dist/js/components/Checkbox/package.json +1 -1
  161. package/dist/js/components/Chip/package.json +1 -1
  162. package/dist/js/components/ClipboardCopy/package.json +1 -1
  163. package/dist/js/components/CodeBlock/package.json +1 -1
  164. package/dist/js/components/DataList/package.json +1 -1
  165. package/dist/js/components/DatePicker/DatePicker.d.ts.map +1 -1
  166. package/dist/js/components/DatePicker/DatePicker.js +8 -6
  167. package/dist/js/components/DatePicker/DatePicker.js.map +1 -1
  168. package/dist/js/components/DatePicker/package.json +1 -1
  169. package/dist/js/components/DescriptionList/package.json +1 -1
  170. package/dist/js/components/Divider/package.json +1 -1
  171. package/dist/js/components/DragDrop/package.json +1 -1
  172. package/dist/js/components/Drawer/package.json +1 -1
  173. package/dist/js/components/Dropdown/package.json +1 -1
  174. package/dist/js/components/DualListSelector/package.json +1 -1
  175. package/dist/js/components/EmptyState/package.json +1 -1
  176. package/dist/js/components/ExpandableSection/package.json +1 -1
  177. package/dist/js/components/FileUpload/FileUploadField.d.ts.map +1 -1
  178. package/dist/js/components/FileUpload/FileUploadField.js +7 -4
  179. package/dist/js/components/FileUpload/FileUploadField.js.map +1 -1
  180. package/dist/js/components/FileUpload/package.json +1 -1
  181. package/dist/js/components/Form/package.json +1 -1
  182. package/dist/js/components/FormSelect/package.json +1 -1
  183. package/dist/js/components/HelperText/package.json +1 -1
  184. package/dist/js/components/Hint/package.json +1 -1
  185. package/dist/js/components/Icon/package.json +1 -1
  186. package/dist/js/components/InputGroup/InputGroup.d.ts.map +1 -1
  187. package/dist/js/components/InputGroup/InputGroup.js +48 -9
  188. package/dist/js/components/InputGroup/InputGroup.js.map +1 -1
  189. package/dist/js/components/InputGroup/InputGroupItem.d.ts +17 -0
  190. package/dist/js/components/InputGroup/InputGroupItem.d.ts.map +1 -0
  191. package/dist/js/components/InputGroup/InputGroupItem.js +14 -0
  192. package/dist/js/components/InputGroup/InputGroupItem.js.map +1 -0
  193. package/dist/js/components/InputGroup/index.d.ts +1 -0
  194. package/dist/js/components/InputGroup/index.d.ts.map +1 -1
  195. package/dist/js/components/InputGroup/index.js +1 -0
  196. package/dist/js/components/InputGroup/index.js.map +1 -1
  197. package/dist/js/components/InputGroup/package.json +1 -1
  198. package/dist/js/components/JumpLinks/package.json +1 -1
  199. package/dist/js/components/Label/package.json +1 -1
  200. package/dist/js/components/List/package.json +1 -1
  201. package/dist/js/components/LoginPage/LoginForm.d.ts.map +1 -1
  202. package/dist/js/components/LoginPage/LoginForm.js +3 -2
  203. package/dist/js/components/LoginPage/LoginForm.js.map +1 -1
  204. package/dist/js/components/LoginPage/package.json +1 -1
  205. package/dist/js/components/Masthead/package.json +1 -1
  206. package/dist/js/components/Menu/package.json +1 -1
  207. package/dist/js/components/MenuToggle/package.json +1 -1
  208. package/dist/js/components/Modal/package.json +1 -1
  209. package/dist/js/components/MultipleFileUpload/package.json +1 -1
  210. package/dist/js/components/Nav/package.json +1 -1
  211. package/dist/js/components/NotificationBadge/package.json +1 -1
  212. package/dist/js/components/NotificationDrawer/package.json +1 -1
  213. package/dist/js/components/NumberInput/NumberInput.d.ts.map +1 -1
  214. package/dist/js/components/NumberInput/NumberInput.js +10 -7
  215. package/dist/js/components/NumberInput/NumberInput.js.map +1 -1
  216. package/dist/js/components/NumberInput/package.json +1 -1
  217. package/dist/js/components/OverflowMenu/package.json +1 -1
  218. package/dist/js/components/Page/package.json +1 -1
  219. package/dist/js/components/Pagination/package.json +1 -1
  220. package/dist/js/components/Panel/package.json +1 -1
  221. package/dist/js/components/Popover/package.json +1 -1
  222. package/dist/js/components/Progress/package.json +1 -1
  223. package/dist/js/components/ProgressStepper/package.json +1 -1
  224. package/dist/js/components/Radio/package.json +1 -1
  225. package/dist/js/components/SearchInput/SearchInput.d.ts.map +1 -1
  226. package/dist/js/components/SearchInput/SearchInput.js +14 -9
  227. package/dist/js/components/SearchInput/SearchInput.js.map +1 -1
  228. package/dist/js/components/SearchInput/package.json +1 -1
  229. package/dist/js/components/Select/package.json +1 -1
  230. package/dist/js/components/Sidebar/package.json +1 -1
  231. package/dist/js/components/SimpleList/package.json +1 -1
  232. package/dist/js/components/Skeleton/package.json +1 -1
  233. package/dist/js/components/SkipToContent/package.json +1 -1
  234. package/dist/js/components/Slider/Slider.d.ts.map +1 -1
  235. package/dist/js/components/Slider/Slider.js +3 -4
  236. package/dist/js/components/Slider/Slider.js.map +1 -1
  237. package/dist/js/components/Slider/package.json +1 -1
  238. package/dist/js/components/Spinner/package.json +1 -1
  239. package/dist/js/components/Switch/package.json +1 -1
  240. package/dist/js/components/Tabs/package.json +1 -1
  241. package/dist/js/components/Text/package.json +1 -1
  242. package/dist/js/components/TextArea/package.json +1 -1
  243. package/dist/js/components/TextInput/package.json +1 -1
  244. package/dist/js/components/TextInputGroup/package.json +1 -1
  245. package/dist/js/components/Tile/package.json +1 -1
  246. package/dist/js/components/TimePicker/TimePicker.d.ts.map +1 -1
  247. package/dist/js/components/TimePicker/TimePicker.js +4 -3
  248. package/dist/js/components/TimePicker/TimePicker.js.map +1 -1
  249. package/dist/js/components/TimePicker/package.json +1 -1
  250. package/dist/js/components/Timestamp/package.json +1 -1
  251. package/dist/js/components/Title/package.json +1 -1
  252. package/dist/js/components/ToggleGroup/package.json +1 -1
  253. package/dist/js/components/Toolbar/package.json +1 -1
  254. package/dist/js/components/Tooltip/package.json +1 -1
  255. package/dist/js/components/TreeView/package.json +1 -1
  256. package/dist/js/components/Truncate/package.json +1 -1
  257. package/dist/js/components/Wizard/hooks/package.json +1 -1
  258. package/dist/js/components/Wizard/package.json +1 -1
  259. package/dist/js/components/package.json +1 -1
  260. package/dist/js/deprecated/components/ApplicationLauncher/package.json +1 -1
  261. package/dist/js/deprecated/components/ContextSelector/package.json +1 -1
  262. package/dist/js/deprecated/components/Dropdown/package.json +1 -1
  263. package/dist/js/deprecated/components/OptionsMenu/package.json +1 -1
  264. package/dist/js/deprecated/components/PageHeader/package.json +1 -1
  265. package/dist/js/deprecated/components/Select/package.json +1 -1
  266. package/dist/js/deprecated/components/Wizard/package.json +1 -1
  267. package/dist/js/deprecated/components/package.json +1 -1
  268. package/dist/js/deprecated/package.json +1 -1
  269. package/dist/js/helpers/Popper/thirdparty/popper-core/package.json +1 -1
  270. package/dist/js/helpers/package.json +1 -1
  271. package/dist/js/layouts/Bullseye/package.json +1 -1
  272. package/dist/js/layouts/Flex/package.json +1 -1
  273. package/dist/js/layouts/Gallery/package.json +1 -1
  274. package/dist/js/layouts/Grid/package.json +1 -1
  275. package/dist/js/layouts/Level/package.json +1 -1
  276. package/dist/js/layouts/Split/package.json +1 -1
  277. package/dist/js/layouts/Stack/package.json +1 -1
  278. package/dist/js/layouts/package.json +1 -1
  279. package/dist/js/next/components/package.json +1 -1
  280. package/dist/js/next/package.json +1 -1
  281. package/dist/js/package.json +1 -1
  282. package/dist/umd/react-core.min.js +2 -2
  283. package/package.json +2 -2
  284. package/src/components/Alert/examples/AlertGroupAsync.tsx +11 -6
  285. package/src/components/Alert/examples/AlertGroupMultipleDynamic.tsx +7 -4
  286. package/src/components/Alert/examples/AlertGroupSingularDynamic.tsx +17 -10
  287. package/src/components/Alert/examples/AlertGroupSingularDynamicOverflow.tsx +17 -10
  288. package/src/components/Alert/examples/AlertGroupToast.tsx +17 -10
  289. package/src/components/Alert/examples/AlertGroupToastOverflowCapture.tsx +17 -10
  290. package/src/components/CalendarMonth/CalendarMonth.tsx +61 -57
  291. package/src/components/DatePicker/DatePicker.tsx +27 -23
  292. package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +121 -97
  293. package/src/components/FileUpload/FileUploadField.tsx +32 -26
  294. package/src/components/FileUpload/__tests__/__snapshots__/FileUpload.test.tsx.snap +47 -35
  295. package/src/components/FileUpload/__tests__/__snapshots__/FileUploadField.test.tsx.snap +46 -34
  296. package/src/components/InputGroup/InputGroup.tsx +50 -14
  297. package/src/components/InputGroup/InputGroupItem.tsx +44 -0
  298. package/src/components/InputGroup/__tests__/InputGroup.test.tsx +25 -12
  299. package/src/components/InputGroup/examples/InputGroup.md +2 -1
  300. package/src/components/InputGroup/examples/InputGroupBasic.tsx +35 -16
  301. package/src/components/InputGroup/examples/InputGroupWithDropdown.tsx +33 -26
  302. package/src/components/InputGroup/examples/InputGroupWithPopover.tsx +54 -40
  303. package/src/components/InputGroup/examples/InputGroupWithSiblings.tsx +57 -22
  304. package/src/components/InputGroup/examples/InputGroupWithTextarea.tsx +9 -5
  305. package/src/components/InputGroup/index.ts +1 -0
  306. package/src/components/LoginPage/LoginForm.tsx +13 -9
  307. package/src/components/LoginPage/__tests__/__snapshots__/LoginForm.test.tsx.snap +39 -31
  308. package/src/components/NumberInput/NumberInput.tsx +42 -36
  309. package/src/components/NumberInput/__tests__/__snapshots__/NumberInput.test.tsx.snap +904 -748
  310. package/src/components/SearchInput/SearchInput.tsx +29 -25
  311. package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +475 -423
  312. package/src/components/Slider/Slider.tsx +9 -6
  313. package/src/components/Slider/_tests_/__snapshots__/Slider.test.tsx.snap +44 -28
  314. package/src/components/TimePicker/TimePicker.tsx +15 -13
  315. package/src/demos/Button.md +1 -1
  316. package/src/demos/Card/Card.md +30 -41
  317. package/src/demos/Card/CardData.jsx +62 -0
  318. package/src/demos/ComposableMenu/examples/ComposableContextSelector.tsx +20 -15
  319. package/src/demos/DatePicker/examples/DateTimePickerInModal.tsx +15 -3
  320. package/src/demos/DateTimePicker.md +22 -23
  321. package/src/demos/PasswordGenerator.md +22 -17
  322. package/src/demos/PrimaryDetail.md +58 -53
  323. package/src/demos/examples/DateTimePicker/DateTimePicker.tsx +12 -9
  324. package/src/deprecated/components/ContextSelector/__tests__/__snapshots__/ContextSelector.test.tsx.snap +100 -84
@@ -3,6 +3,7 @@ import React from 'react';
3
3
  import { render, screen } from '@testing-library/react';
4
4
 
5
5
  import { InputGroup } from '../InputGroup';
6
+ import { InputGroupItem } from '../InputGroupItem';
6
7
  import { Button } from '../../Button';
7
8
  import { TextInput } from '../../TextInput';
8
9
 
@@ -12,10 +13,14 @@ describe('InputGroup', () => {
12
13
  // If Button has an id props, this should be used in aria-describedby.
13
14
  render(
14
15
  <InputGroup>
15
- <TextInput value="some data" aria-label="some text" />
16
- <Button variant="primary" id="button-id">
17
- hello
18
- </Button>
16
+ <InputGroupItem>
17
+ <TextInput value="some data" aria-label="some text" />
18
+ </InputGroupItem>
19
+ <InputGroupItem>
20
+ <Button variant="primary" id="button-id">
21
+ hello
22
+ </Button>
23
+ </InputGroupItem>
19
24
  </InputGroup>
20
25
  );
21
26
  expect(screen.getByLabelText('some text')).toHaveAttribute('aria-describedby', 'button-id');
@@ -27,10 +32,14 @@ describe('InputGroup', () => {
27
32
  // example has an empty aria-describedby to prevent that from happening.
28
33
  render(
29
34
  <InputGroup>
30
- <TextInput value="some data" aria-describedby="" aria-label="some text" />
31
- <Button id="button-id">
32
- hello
33
- </Button>
35
+ <InputGroupItem>
36
+ <TextInput value="some data" aria-describedby="" aria-label="some text" />
37
+ </InputGroupItem>
38
+ <InputGroupItem>
39
+ <Button id="button-id">
40
+ hello
41
+ </Button>
42
+ </InputGroupItem>
34
43
  </InputGroup>
35
44
  );
36
45
  expect(screen.getByLabelText('some text')).not.toHaveAttribute('aria-describedby');
@@ -42,10 +51,14 @@ describe('InputGroup', () => {
42
51
  // example has a predefined aria-describedby to prevent that from happening
43
52
  render(
44
53
  <InputGroup>
45
- <TextInput value="some data" aria-describedby="myself" aria-label="some text" />
46
- <Button id="button-id">
47
- hello
48
- </Button>
54
+ <InputGroupItem>
55
+ <TextInput value="some data" aria-describedby="myself" aria-label="some text" />
56
+ </InputGroupItem>
57
+ <InputGroupItem>
58
+ <Button id="button-id">
59
+ hello
60
+ </Button>
61
+ </InputGroupItem>
49
62
  </InputGroup>
50
63
  );
51
64
  expect(screen.getByLabelText('some text')).toHaveAttribute('aria-describedby', 'myself');
@@ -2,7 +2,7 @@
2
2
  id: Input group
3
3
  section: components
4
4
  cssPrefix: null
5
- propComponents: ['InputGroup', 'InputGroupText']
5
+ propComponents: ['InputGroup', 'InputGroupItem', 'InputGroupText']
6
6
  ---
7
7
 
8
8
  import AtIcon from '@patternfly/react-icons/dist/esm/icons/at-icon';
@@ -32,6 +32,7 @@ import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-
32
32
 
33
33
  ### With popover
34
34
 
35
+ using `appendTo` with ref to the `InputGroup` for the Popover so that the popover width will depend on the whole input group
35
36
  ```ts file ='./InputGroupWithPopover.tsx'
36
37
 
37
38
  ```
@@ -1,31 +1,50 @@
1
1
  import React from 'react';
2
2
  import AtIcon from '@patternfly/react-icons/dist/esm/icons/at-icon';
3
- import { InputGroup, InputGroupText, InputGroupTextVariant, TextInput, ValidatedOptions } from '@patternfly/react-core';
3
+ import {
4
+ InputGroup,
5
+ InputGroupText,
6
+ InputGroupItem,
7
+ InputGroupTextVariant,
8
+ TextInput,
9
+ ValidatedOptions
10
+ } from '@patternfly/react-core';
4
11
 
5
12
  export const InputGroupBasic: React.FunctionComponent = () => (
6
13
  <React.Fragment>
7
14
  <InputGroup>
8
- <TextInput id="textInput-basic-1" type="email" aria-label="email input field" />
9
- <InputGroupText id="email-example">@example.com</InputGroupText>
15
+ <InputGroupItem isFill>
16
+ <TextInput id="textInput-basic-1" type="email" aria-label="email input field" />
17
+ </InputGroupItem>
18
+ <InputGroupItem isBox>
19
+ <InputGroupText id="email-example">@example.com</InputGroupText>
20
+ </InputGroupItem>
10
21
  </InputGroup>
11
22
  <br />
12
23
  <InputGroup>
13
- <InputGroupText id="username">
14
- <AtIcon />
15
- </InputGroupText>
16
- <TextInput
17
- validated={ValidatedOptions.error}
18
- id="textInput-basic-2"
19
- type="email"
20
- aria-label="Error state username example"
21
- />
24
+ <InputGroupItem isBox>
25
+ <InputGroupText id="username">
26
+ <AtIcon />
27
+ </InputGroupText>
28
+ </InputGroupItem>
29
+ <InputGroupItem isFill>
30
+ <TextInput
31
+ validated={ValidatedOptions.error}
32
+ id="textInput-basic-2"
33
+ type="email"
34
+ aria-label="Error state username example"
35
+ />
36
+ </InputGroupItem>
22
37
  </InputGroup>
23
38
  <br />
24
39
  <InputGroup>
25
- <TextInput name="textInput-basic-3" id="textInput-basic-3" type="text" aria-label="percentage" />
26
- <InputGroupText id="plain-example" variant={InputGroupTextVariant.plain}>
27
- %
28
- </InputGroupText>
40
+ <InputGroupItem isFill>
41
+ <TextInput name="textInput-basic-3" id="textInput-basic-3" type="text" aria-label="percentage" />
42
+ </InputGroupItem>
43
+ <InputGroupItem isPlain isBox>
44
+ <InputGroupText id="plain-example" variant={InputGroupTextVariant.plain}>
45
+ %
46
+ </InputGroupText>
47
+ </InputGroupItem>
29
48
  </InputGroup>
30
49
  </React.Fragment>
31
50
  );
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import {
3
3
  Button,
4
4
  InputGroup,
5
+ InputGroupItem,
5
6
  TextInput,
6
7
  Dropdown,
7
8
  DropdownList,
@@ -24,32 +25,38 @@ export const InputGroupWithDropdown: React.FunctionComponent = () => {
24
25
  return (
25
26
  <React.Fragment>
26
27
  <InputGroup>
27
- <Dropdown
28
- isOpen={isOpen}
29
- onSelect={onSelect}
30
- onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
31
- toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
32
- <MenuToggle ref={toggleRef} onClick={onToggle} isExpanded={isOpen}>
33
- Dropdown
34
- </MenuToggle>
35
- )}
36
- >
37
- <DropdownList>
38
- <DropdownItem itemId={0} key="option1">
39
- Option 1
40
- </DropdownItem>
41
- <DropdownItem itemId={1} key="option2">
42
- Option 2
43
- </DropdownItem>
44
- <DropdownItem itemId={2} key="option3">
45
- Option 3
46
- </DropdownItem>
47
- </DropdownList>
48
- </Dropdown>
49
- <TextInput id="textInput-with-dropdown" aria-label="input with dropdown and button" />
50
- <Button id="inputDropdownButton1" variant="control">
51
- Button
52
- </Button>
28
+ <InputGroupItem>
29
+ <Dropdown
30
+ isOpen={isOpen}
31
+ onSelect={onSelect}
32
+ onOpenChange={(isOpen: boolean) => setIsOpen(isOpen)}
33
+ toggle={(toggleRef: React.Ref<MenuToggleElement>) => (
34
+ <MenuToggle ref={toggleRef} onClick={onToggle} isExpanded={isOpen}>
35
+ Dropdown
36
+ </MenuToggle>
37
+ )}
38
+ >
39
+ <DropdownList>
40
+ <DropdownItem itemId={0} key="option1">
41
+ Option 1
42
+ </DropdownItem>
43
+ <DropdownItem itemId={1} key="option2">
44
+ Option 2
45
+ </DropdownItem>
46
+ <DropdownItem itemId={2} key="option3">
47
+ Option 3
48
+ </DropdownItem>
49
+ </DropdownList>
50
+ </Dropdown>
51
+ </InputGroupItem>
52
+ <InputGroupItem isFill>
53
+ <TextInput id="textInput-with-dropdown" aria-label="input with dropdown and button" />
54
+ </InputGroupItem>
55
+ <InputGroupItem>
56
+ <Button id="inputDropdownButton1" variant="control">
57
+ Button
58
+ </Button>
59
+ </InputGroupItem>
53
60
  </InputGroup>
54
61
  </React.Fragment>
55
62
  );
@@ -1,43 +1,57 @@
1
1
  import React from 'react';
2
2
  import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon';
3
- import { Button, InputGroup, TextInput, Popover, PopoverPosition } from '@patternfly/react-core';
3
+ import { Button, InputGroup, InputGroupItem, TextInput, Popover, PopoverPosition } from '@patternfly/react-core';
4
4
 
5
- export const InputGroupWithPopover: React.FunctionComponent = () => (
6
- <React.Fragment>
7
- <InputGroup>
8
- <TextInput
9
- name="textInput-with-popover-1"
10
- id="textInput-with-popover-1"
11
- type="text"
12
- aria-label="first input example with popover"
13
- />
14
- <Popover
15
- aria-label="popover example"
16
- position={PopoverPosition.top}
17
- bodyContent="This field is an example of an input group with a popover."
18
- >
19
- <Button variant="control" aria-label="popover for input">
20
- <QuestionCircleIcon />
21
- </Button>
22
- </Popover>
23
- </InputGroup>
24
- <br />
25
- <InputGroup>
26
- <TextInput
27
- name="textInput-with-popover-2"
28
- id="textInput-with-popover-2"
29
- type="text"
30
- aria-label="second input example with popover"
31
- />
32
- <Popover
33
- aria-label="popover example"
34
- position={PopoverPosition.top}
35
- bodyContent="This field is an example of an input group with a popover."
36
- >
37
- <Button variant="plain" aria-label="Popover for input">
38
- <QuestionCircleIcon />
39
- </Button>
40
- </Popover>
41
- </InputGroup>
42
- </React.Fragment>
43
- );
5
+ export const InputGroupWithPopover: React.FunctionComponent = () => {
6
+ const inputGroupRef1 = React.useRef(null);
7
+ const inputGroupRef2 = React.useRef(null);
8
+ return (
9
+ <React.Fragment>
10
+ <InputGroup ref={inputGroupRef1}>
11
+ <InputGroupItem isFill>
12
+ <TextInput
13
+ name="textInput-with-popover-1"
14
+ id="textInput-with-popover-1"
15
+ type="text"
16
+ aria-label="first input example with popover"
17
+ />
18
+ </InputGroupItem>
19
+ <InputGroupItem>
20
+ <Popover
21
+ aria-label="popover example"
22
+ position={PopoverPosition.top}
23
+ bodyContent="This field is an example of an input group with a popover."
24
+ appendTo={() => inputGroupRef1.current}
25
+ >
26
+ <Button variant="control" aria-label="popover for input">
27
+ <QuestionCircleIcon />
28
+ </Button>
29
+ </Popover>
30
+ </InputGroupItem>
31
+ </InputGroup>
32
+ <br />
33
+ <InputGroup ref={inputGroupRef2}>
34
+ <InputGroupItem isFill>
35
+ <TextInput
36
+ name="textInput-with-popover-2"
37
+ id="textInput-with-popover-2"
38
+ type="text"
39
+ aria-label="second input example with popover"
40
+ />
41
+ </InputGroupItem>
42
+ <InputGroupItem>
43
+ <Popover
44
+ aria-label="popover example"
45
+ position={PopoverPosition.top}
46
+ bodyContent="This field is an example of an input group with a popover."
47
+ appendTo={() => inputGroupRef2.current}
48
+ >
49
+ <Button variant="plain" aria-label="Popover for input">
50
+ <QuestionCircleIcon />
51
+ </Button>
52
+ </Popover>
53
+ </InputGroupItem>
54
+ </InputGroup>
55
+ </React.Fragment>
56
+ );
57
+ };
@@ -1,37 +1,72 @@
1
1
  import React from 'react';
2
2
  import DollarSignIcon from '@patternfly/react-icons/dist/esm/icons/dollar-sign-icon';
3
- import { Button, TextArea, InputGroup, InputGroupText, TextInput } from '@patternfly/react-core';
3
+ import {
4
+ Button,
5
+ TextArea,
6
+ InputGroup,
7
+ InputGroupText,
8
+ InputGroupItem,
9
+ TextInput,
10
+ } from '@patternfly/react-core';
4
11
 
5
12
  export const InputGroupWithSiblings: React.FunctionComponent = () => (
6
13
  <React.Fragment>
7
14
  <InputGroup>
8
- <Button id="textAreaButton1" variant="control">
9
- Button
10
- </Button>
11
- <TextArea name="textarea1" id="textarea1" aria-label="textarea with buttons" />
12
- <Button variant="control">Button</Button>
15
+ <InputGroupItem>
16
+ <Button id="textAreaButton1" variant="control">
17
+ Button
18
+ </Button>
19
+ </InputGroupItem>
20
+ <InputGroupItem isFill>
21
+ <TextArea
22
+ name="textarea1"
23
+ id="textarea1"
24
+ aria-label="textarea with buttons"
25
+ />
26
+ </InputGroupItem>
27
+ <InputGroupItem>
28
+ <Button variant="control">Button</Button>
29
+ </InputGroupItem>
13
30
  </InputGroup>
14
31
  <br />
15
32
  <InputGroup>
16
- <Button id="textAreaButton3" variant="control">
17
- Button
18
- </Button>
19
- <Button variant="control">Button</Button>
20
- <TextArea name="textarea2" id="textarea2" aria-label="textarea with 3 buttons" />
21
- <Button variant="control">Button</Button>
33
+ <InputGroupItem>
34
+ <Button id="textAreaButton3" variant="control">
35
+ Button
36
+ </Button>
37
+ </InputGroupItem>
38
+ <InputGroupItem>
39
+ <Button variant="control">Button</Button>
40
+ </InputGroupItem>
41
+ <InputGroupItem isFill>
42
+ <TextArea
43
+ name="textarea2"
44
+ id="textarea2"
45
+ aria-label="textarea with 3 buttons"
46
+ />
47
+ </InputGroupItem>
48
+ <InputGroupItem>
49
+ <Button variant="control">Button</Button>
50
+ </InputGroupItem>
22
51
  </InputGroup>
23
52
  <br />
24
53
  <InputGroup>
25
- <InputGroupText>
26
- <DollarSignIcon />
27
- </InputGroupText>
28
- <TextInput
29
- id="textInput-with-siblings"
30
- name="textInput-with-siblings"
31
- type="number"
32
- aria-label="Dollar amount input example"
33
- />
34
- <InputGroupText>.00</InputGroupText>
54
+ <InputGroupItem isBox>
55
+ <InputGroupText>
56
+ <DollarSignIcon />
57
+ </InputGroupText>
58
+ </InputGroupItem>
59
+ <InputGroupItem isFill>
60
+ <TextInput
61
+ id="textInput-with-siblings"
62
+ name="textInput-with-siblings"
63
+ type="number"
64
+ aria-label="Dollar amount input example"
65
+ />
66
+ </InputGroupItem>
67
+ <InputGroupItem isBox>
68
+ <InputGroupText>.00</InputGroupText>
69
+ </InputGroupItem>
35
70
  </InputGroup>
36
71
  </React.Fragment>
37
72
  );
@@ -1,13 +1,17 @@
1
1
  import React from 'react';
2
- import { Button, TextArea, InputGroup } from '@patternfly/react-core';
2
+ import { Button, TextArea, InputGroup, InputGroupItem } from '@patternfly/react-core';
3
3
 
4
4
  export const InputGroupWithTextarea: React.FunctionComponent = () => (
5
5
  <React.Fragment>
6
6
  <InputGroup>
7
- <TextArea name="inputGroup-with-textarea" id="inputGroup-with-textarea" aria-label="textarea with button" />
8
- <Button id="textAreaButton2" variant="control">
9
- Button
10
- </Button>
7
+ <InputGroupItem isFill>
8
+ <TextArea name="inputGroup-with-textarea" id="inputGroup-with-textarea" aria-label="textarea with button" />
9
+ </InputGroupItem>
10
+ <InputGroupItem>
11
+ <Button id="textAreaButton2" variant="control">
12
+ Button
13
+ </Button>
14
+ </InputGroupItem>
11
15
  </InputGroup>
12
16
  </React.Fragment>
13
17
  );
@@ -1,2 +1,3 @@
1
1
  export * from './InputGroup';
2
2
  export * from './InputGroupText';
3
+ export * from './InputGroupItem';
@@ -4,7 +4,7 @@ import { TextInput } from '../TextInput';
4
4
  import { Button } from '../Button';
5
5
  import { Checkbox } from '../Checkbox';
6
6
  import { ValidatedOptions } from '../../helpers/constants';
7
- import { InputGroup } from '../InputGroup';
7
+ import { InputGroup, InputGroupItem } from '../InputGroup';
8
8
  import EyeSlashIcon from '@patternfly/react-icons/dist/esm/icons/eye-slash-icon';
9
9
  import EyeIcon from '@patternfly/react-icons/dist/esm/icons/eye-icon';
10
10
  import { HelperText, HelperTextItem } from '../HelperText';
@@ -121,14 +121,18 @@ export const LoginForm: React.FunctionComponent<LoginFormProps> = ({
121
121
  <FormGroup label={passwordLabel} isRequired fieldId="pf-login-password-id">
122
122
  {isShowPasswordEnabled && (
123
123
  <InputGroup>
124
- {passwordInput}
125
- <Button
126
- variant="control"
127
- onClick={() => setPasswordHidden(!passwordHidden)}
128
- aria-label={passwordHidden ? showPasswordAriaLabel : hidePasswordAriaLabel}
129
- >
130
- {passwordHidden ? <EyeIcon /> : <EyeSlashIcon />}
131
- </Button>
124
+ <InputGroupItem isFill>
125
+ {passwordInput}
126
+ </InputGroupItem>
127
+ <InputGroupItem>
128
+ <Button
129
+ variant="control"
130
+ onClick={() => setPasswordHidden(!passwordHidden)}
131
+ aria-label={passwordHidden ? showPasswordAriaLabel : hidePasswordAriaLabel}
132
+ >
133
+ {passwordHidden ? <EyeIcon /> : <EyeSlashIcon />}
134
+ </Button>
135
+ </InputGroupItem>
132
136
  </InputGroup>
133
137
  )}
134
138
  {!isShowPasswordEnabled && passwordInput}
@@ -218,39 +218,47 @@ exports[`LoginForm LoginForm with show password 1`] = `
218
218
  <div
219
219
  class="pf-v5-c-input-group"
220
220
  >
221
- <input
222
- aria-invalid="false"
223
- class="pf-v5-c-form-control"
224
- data-ouia-component-id="OUIA-Generated-TextInputBase-12"
225
- data-ouia-component-type="PF4/TextInput"
226
- data-ouia-safe="true"
227
- id="pf-login-password-id"
228
- name="pf-login-password-id"
229
- required=""
230
- type="password"
231
- value=""
232
- />
233
- <button
234
- aria-disabled="false"
235
- aria-label="Show password"
236
- class="pf-v5-c-button pf-m-control"
237
- data-ouia-component-id="OUIA-Generated-Button-control-1"
238
- data-ouia-component-type="PF4/Button"
239
- data-ouia-safe="true"
240
- type="button"
221
+ <div
222
+ class="pf-v5-c-input-group__item pf-m-fill"
241
223
  >
242
- <svg
243
- aria-hidden="true"
244
- class="pf-v5-svg"
245
- fill="currentColor"
246
- role="img"
247
- viewBox="0 0 576 512"
224
+ <input
225
+ aria-invalid="false"
226
+ class="pf-v5-c-form-control"
227
+ data-ouia-component-id="OUIA-Generated-TextInputBase-12"
228
+ data-ouia-component-type="PF4/TextInput"
229
+ data-ouia-safe="true"
230
+ id="pf-login-password-id"
231
+ name="pf-login-password-id"
232
+ required=""
233
+ type="password"
234
+ value=""
235
+ />
236
+ </div>
237
+ <div
238
+ class="pf-v5-c-input-group__item"
239
+ >
240
+ <button
241
+ aria-disabled="false"
242
+ aria-label="Show password"
243
+ class="pf-v5-c-button pf-m-control"
244
+ data-ouia-component-id="OUIA-Generated-Button-control-1"
245
+ data-ouia-component-type="PF4/Button"
246
+ data-ouia-safe="true"
247
+ type="button"
248
248
  >
249
- <path
250
- d="M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"
251
- />
252
- </svg>
253
- </button>
249
+ <svg
250
+ aria-hidden="true"
251
+ class="pf-v5-svg"
252
+ fill="currentColor"
253
+ role="img"
254
+ viewBox="0 0 576 512"
255
+ >
256
+ <path
257
+ d="M572.52 241.4C518.29 135.59 410.93 64 288 64S57.68 135.64 3.48 241.41a32.35 32.35 0 0 0 0 29.19C57.71 376.41 165.07 448 288 448s230.32-71.64 284.52-177.41a32.35 32.35 0 0 0 0-29.19zM288 400a144 144 0 1 1 144-144 143.93 143.93 0 0 1-144 144zm0-240a95.31 95.31 0 0 0-25.31 3.79 47.85 47.85 0 0 1-66.9 66.9A95.78 95.78 0 1 0 288 160z"
258
+ />
259
+ </svg>
260
+ </button>
261
+ </div>
254
262
  </div>
255
263
  </div>
256
264
  </div>