@patternfly/react-core 5.0.0-alpha.107 → 5.0.0-alpha.109

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 (424) hide show
  1. package/CHANGELOG.md +12 -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/package.json +1 -1
  16. package/dist/esm/components/Card/Card.d.ts +12 -5
  17. package/dist/esm/components/Card/Card.d.ts.map +1 -1
  18. package/dist/esm/components/Card/Card.js +17 -5
  19. package/dist/esm/components/Card/Card.js.map +1 -1
  20. package/dist/esm/components/Card/CardHeader.d.ts +30 -0
  21. package/dist/esm/components/Card/CardHeader.d.ts.map +1 -1
  22. package/dist/esm/components/Card/CardHeader.js +40 -5
  23. package/dist/esm/components/Card/CardHeader.js.map +1 -1
  24. package/dist/esm/components/Card/CardSelectableActions.d.ts +9 -0
  25. package/dist/esm/components/Card/CardSelectableActions.d.ts.map +1 -0
  26. package/dist/esm/components/Card/CardSelectableActions.js +10 -0
  27. package/dist/esm/components/Card/CardSelectableActions.js.map +1 -0
  28. package/dist/esm/components/Card/package.json +1 -1
  29. package/dist/esm/components/Checkbox/Checkbox.d.ts +2 -0
  30. package/dist/esm/components/Checkbox/Checkbox.d.ts.map +1 -1
  31. package/dist/esm/components/Checkbox/Checkbox.js +2 -2
  32. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  33. package/dist/esm/components/Checkbox/package.json +1 -1
  34. package/dist/esm/components/Chip/package.json +1 -1
  35. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js +4 -4
  36. package/dist/esm/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  37. package/dist/esm/components/ClipboardCopy/package.json +1 -1
  38. package/dist/esm/components/CodeBlock/package.json +1 -1
  39. package/dist/esm/components/DataList/package.json +1 -1
  40. package/dist/esm/components/DatePicker/package.json +1 -1
  41. package/dist/esm/components/DescriptionList/package.json +1 -1
  42. package/dist/esm/components/Divider/package.json +1 -1
  43. package/dist/esm/components/DragDrop/package.json +1 -1
  44. package/dist/esm/components/Drawer/package.json +1 -1
  45. package/dist/esm/components/Dropdown/Dropdown.d.ts +11 -3
  46. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  47. package/dist/esm/components/Dropdown/Dropdown.js +11 -5
  48. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  49. package/dist/esm/components/Dropdown/package.json +1 -1
  50. package/dist/esm/components/DualListSelector/package.json +1 -1
  51. package/dist/esm/components/EmptyState/package.json +1 -1
  52. package/dist/esm/components/ExpandableSection/package.json +1 -1
  53. package/dist/esm/components/FileUpload/FileUploadField.js +2 -2
  54. package/dist/esm/components/FileUpload/FileUploadField.js.map +1 -1
  55. package/dist/esm/components/FileUpload/package.json +1 -1
  56. package/dist/esm/components/Form/package.json +1 -1
  57. package/dist/esm/components/FormControl/FormControlIcon.d.ts +16 -0
  58. package/dist/esm/components/FormControl/FormControlIcon.d.ts.map +1 -0
  59. package/dist/esm/components/FormControl/FormControlIcon.js +18 -0
  60. package/dist/esm/components/FormControl/FormControlIcon.js.map +1 -0
  61. package/dist/esm/components/FormSelect/FormSelect.d.ts +0 -2
  62. package/dist/esm/components/FormSelect/FormSelect.d.ts.map +1 -1
  63. package/dist/esm/components/FormSelect/FormSelect.js +9 -3
  64. package/dist/esm/components/FormSelect/FormSelect.js.map +1 -1
  65. package/dist/esm/components/FormSelect/package.json +1 -1
  66. package/dist/esm/components/HelperText/package.json +1 -1
  67. package/dist/esm/components/Hint/package.json +1 -1
  68. package/dist/esm/components/Icon/package.json +1 -1
  69. package/dist/esm/components/InputGroup/package.json +1 -1
  70. package/dist/esm/components/JumpLinks/package.json +1 -1
  71. package/dist/esm/components/Label/package.json +1 -1
  72. package/dist/esm/components/List/package.json +1 -1
  73. package/dist/esm/components/LoginPage/package.json +1 -1
  74. package/dist/esm/components/Masthead/package.json +1 -1
  75. package/dist/esm/components/Menu/package.json +1 -1
  76. package/dist/esm/components/MenuToggle/package.json +1 -1
  77. package/dist/esm/components/Modal/package.json +1 -1
  78. package/dist/esm/components/MultipleFileUpload/package.json +1 -1
  79. package/dist/esm/components/Nav/package.json +1 -1
  80. package/dist/esm/components/NotificationBadge/package.json +1 -1
  81. package/dist/esm/components/NotificationDrawer/package.json +1 -1
  82. package/dist/esm/components/NumberInput/package.json +1 -1
  83. package/dist/esm/components/OverflowMenu/package.json +1 -1
  84. package/dist/esm/components/Page/package.json +1 -1
  85. package/dist/esm/components/Pagination/package.json +1 -1
  86. package/dist/esm/components/Panel/package.json +1 -1
  87. package/dist/esm/components/Popover/package.json +1 -1
  88. package/dist/esm/components/Progress/package.json +1 -1
  89. package/dist/esm/components/ProgressStepper/package.json +1 -1
  90. package/dist/esm/components/Radio/Radio.d.ts +5 -1
  91. package/dist/esm/components/Radio/Radio.d.ts.map +1 -1
  92. package/dist/esm/components/Radio/Radio.js +3 -3
  93. package/dist/esm/components/Radio/Radio.js.map +1 -1
  94. package/dist/esm/components/Radio/package.json +1 -1
  95. package/dist/esm/components/SearchInput/package.json +1 -1
  96. package/dist/esm/components/Select/Select.d.ts +31 -5
  97. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  98. package/dist/esm/components/Select/Select.js +16 -10
  99. package/dist/esm/components/Select/Select.js.map +1 -1
  100. package/dist/esm/components/Select/SelectGroup.d.ts +3 -0
  101. package/dist/esm/components/Select/SelectGroup.d.ts.map +1 -1
  102. package/dist/esm/components/Select/SelectGroup.js.map +1 -1
  103. package/dist/esm/components/Select/SelectOption.d.ts +14 -1
  104. package/dist/esm/components/Select/SelectOption.d.ts.map +1 -1
  105. package/dist/esm/components/Select/SelectOption.js +4 -3
  106. package/dist/esm/components/Select/SelectOption.js.map +1 -1
  107. package/dist/esm/components/Select/package.json +1 -1
  108. package/dist/esm/components/Sidebar/package.json +1 -1
  109. package/dist/esm/components/SimpleList/package.json +1 -1
  110. package/dist/esm/components/Skeleton/package.json +1 -1
  111. package/dist/esm/components/SkipToContent/package.json +1 -1
  112. package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
  113. package/dist/esm/components/Slider/Slider.js +1 -1
  114. package/dist/esm/components/Slider/Slider.js.map +1 -1
  115. package/dist/esm/components/Slider/package.json +1 -1
  116. package/dist/esm/components/Spinner/package.json +1 -1
  117. package/dist/esm/components/Switch/package.json +1 -1
  118. package/dist/esm/components/Tabs/package.json +1 -1
  119. package/dist/esm/components/Text/package.json +1 -1
  120. package/dist/esm/components/TextArea/TextArea.d.ts +0 -4
  121. package/dist/esm/components/TextArea/TextArea.d.ts.map +1 -1
  122. package/dist/esm/components/TextArea/TextArea.js +11 -7
  123. package/dist/esm/components/TextArea/TextArea.js.map +1 -1
  124. package/dist/esm/components/TextArea/package.json +1 -1
  125. package/dist/esm/components/TextInput/TextInput.d.ts +8 -11
  126. package/dist/esm/components/TextInput/TextInput.d.ts.map +1 -1
  127. package/dist/esm/components/TextInput/TextInput.js +10 -13
  128. package/dist/esm/components/TextInput/TextInput.js.map +1 -1
  129. package/dist/esm/components/TextInput/package.json +1 -1
  130. package/dist/esm/components/TextInputGroup/package.json +1 -1
  131. package/dist/esm/components/Tile/package.json +1 -1
  132. package/dist/esm/components/TimePicker/TimePicker.d.ts.map +1 -1
  133. package/dist/esm/components/TimePicker/TimePicker.js +2 -2
  134. package/dist/esm/components/TimePicker/TimePicker.js.map +1 -1
  135. package/dist/esm/components/TimePicker/package.json +1 -1
  136. package/dist/esm/components/Timestamp/package.json +1 -1
  137. package/dist/esm/components/Title/package.json +1 -1
  138. package/dist/esm/components/ToggleGroup/package.json +1 -1
  139. package/dist/esm/components/Toolbar/package.json +1 -1
  140. package/dist/esm/components/Tooltip/package.json +1 -1
  141. package/dist/esm/components/TreeView/TreeViewSearch.d.ts.map +1 -1
  142. package/dist/esm/components/TreeView/TreeViewSearch.js +6 -1
  143. package/dist/esm/components/TreeView/TreeViewSearch.js.map +1 -1
  144. package/dist/esm/components/TreeView/package.json +1 -1
  145. package/dist/esm/components/Truncate/package.json +1 -1
  146. package/dist/esm/components/Wizard/hooks/package.json +1 -1
  147. package/dist/esm/components/Wizard/package.json +1 -1
  148. package/dist/esm/components/package.json +1 -1
  149. package/dist/esm/deprecated/components/ApplicationLauncher/package.json +1 -1
  150. package/dist/esm/deprecated/components/ContextSelector/package.json +1 -1
  151. package/dist/esm/deprecated/components/Dropdown/package.json +1 -1
  152. package/dist/esm/deprecated/components/OptionsMenu/package.json +1 -1
  153. package/dist/esm/deprecated/components/PageHeader/package.json +1 -1
  154. package/dist/esm/deprecated/components/Select/Select.d.ts.map +1 -1
  155. package/dist/esm/deprecated/components/Select/Select.js +16 -18
  156. package/dist/esm/deprecated/components/Select/Select.js.map +1 -1
  157. package/dist/esm/deprecated/components/Select/package.json +1 -1
  158. package/dist/esm/deprecated/components/Wizard/package.json +1 -1
  159. package/dist/esm/deprecated/components/package.json +1 -1
  160. package/dist/esm/deprecated/package.json +1 -1
  161. package/dist/esm/helpers/Popper/Popper.d.ts +1 -1
  162. package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
  163. package/dist/esm/helpers/Popper/thirdparty/popper-core/package.json +1 -1
  164. package/dist/esm/helpers/package.json +1 -1
  165. package/dist/esm/layouts/Bullseye/package.json +1 -1
  166. package/dist/esm/layouts/Flex/package.json +1 -1
  167. package/dist/esm/layouts/Gallery/package.json +1 -1
  168. package/dist/esm/layouts/Grid/package.json +1 -1
  169. package/dist/esm/layouts/Level/package.json +1 -1
  170. package/dist/esm/layouts/Split/package.json +1 -1
  171. package/dist/esm/layouts/Stack/package.json +1 -1
  172. package/dist/esm/layouts/package.json +1 -1
  173. package/dist/esm/next/components/package.json +1 -1
  174. package/dist/esm/next/package.json +1 -1
  175. package/dist/esm/package.json +1 -1
  176. package/dist/js/components/AboutModal/package.json +1 -1
  177. package/dist/js/components/Accordion/package.json +1 -1
  178. package/dist/js/components/ActionList/package.json +1 -1
  179. package/dist/js/components/Alert/package.json +1 -1
  180. package/dist/js/components/Avatar/package.json +1 -1
  181. package/dist/js/components/BackToTop/package.json +1 -1
  182. package/dist/js/components/Backdrop/package.json +1 -1
  183. package/dist/js/components/BackgroundImage/package.json +1 -1
  184. package/dist/js/components/Badge/package.json +1 -1
  185. package/dist/js/components/Banner/package.json +1 -1
  186. package/dist/js/components/Brand/package.json +1 -1
  187. package/dist/js/components/Breadcrumb/package.json +1 -1
  188. package/dist/js/components/Button/package.json +1 -1
  189. package/dist/js/components/CalendarMonth/package.json +1 -1
  190. package/dist/js/components/Card/Card.d.ts +12 -5
  191. package/dist/js/components/Card/Card.d.ts.map +1 -1
  192. package/dist/js/components/Card/Card.js +17 -5
  193. package/dist/js/components/Card/Card.js.map +1 -1
  194. package/dist/js/components/Card/CardHeader.d.ts +30 -0
  195. package/dist/js/components/Card/CardHeader.d.ts.map +1 -1
  196. package/dist/js/components/Card/CardHeader.js +40 -5
  197. package/dist/js/components/Card/CardHeader.js.map +1 -1
  198. package/dist/js/components/Card/CardSelectableActions.d.ts +9 -0
  199. package/dist/js/components/Card/CardSelectableActions.d.ts.map +1 -0
  200. package/dist/js/components/Card/CardSelectableActions.js +14 -0
  201. package/dist/js/components/Card/CardSelectableActions.js.map +1 -0
  202. package/dist/js/components/Card/package.json +1 -1
  203. package/dist/js/components/Checkbox/Checkbox.d.ts +2 -0
  204. package/dist/js/components/Checkbox/Checkbox.d.ts.map +1 -1
  205. package/dist/js/components/Checkbox/Checkbox.js +2 -2
  206. package/dist/js/components/Checkbox/Checkbox.js.map +1 -1
  207. package/dist/js/components/Checkbox/package.json +1 -1
  208. package/dist/js/components/Chip/package.json +1 -1
  209. package/dist/js/components/ClipboardCopy/ClipboardCopy.js +4 -4
  210. package/dist/js/components/ClipboardCopy/ClipboardCopy.js.map +1 -1
  211. package/dist/js/components/ClipboardCopy/package.json +1 -1
  212. package/dist/js/components/CodeBlock/package.json +1 -1
  213. package/dist/js/components/DataList/package.json +1 -1
  214. package/dist/js/components/DatePicker/package.json +1 -1
  215. package/dist/js/components/DescriptionList/package.json +1 -1
  216. package/dist/js/components/Divider/package.json +1 -1
  217. package/dist/js/components/DragDrop/package.json +1 -1
  218. package/dist/js/components/Drawer/package.json +1 -1
  219. package/dist/js/components/Dropdown/Dropdown.d.ts +11 -3
  220. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  221. package/dist/js/components/Dropdown/Dropdown.js +11 -5
  222. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  223. package/dist/js/components/Dropdown/package.json +1 -1
  224. package/dist/js/components/DualListSelector/package.json +1 -1
  225. package/dist/js/components/EmptyState/package.json +1 -1
  226. package/dist/js/components/ExpandableSection/package.json +1 -1
  227. package/dist/js/components/FileUpload/FileUploadField.js +2 -2
  228. package/dist/js/components/FileUpload/FileUploadField.js.map +1 -1
  229. package/dist/js/components/FileUpload/package.json +1 -1
  230. package/dist/js/components/Form/package.json +1 -1
  231. package/dist/js/components/FormControl/FormControlIcon.d.ts +16 -0
  232. package/dist/js/components/FormControl/FormControlIcon.d.ts.map +1 -0
  233. package/dist/js/components/FormControl/FormControlIcon.js +22 -0
  234. package/dist/js/components/FormControl/FormControlIcon.js.map +1 -0
  235. package/dist/js/components/FormSelect/FormSelect.d.ts +0 -2
  236. package/dist/js/components/FormSelect/FormSelect.d.ts.map +1 -1
  237. package/dist/js/components/FormSelect/FormSelect.js +9 -3
  238. package/dist/js/components/FormSelect/FormSelect.js.map +1 -1
  239. package/dist/js/components/FormSelect/package.json +1 -1
  240. package/dist/js/components/HelperText/package.json +1 -1
  241. package/dist/js/components/Hint/package.json +1 -1
  242. package/dist/js/components/Icon/package.json +1 -1
  243. package/dist/js/components/InputGroup/package.json +1 -1
  244. package/dist/js/components/JumpLinks/package.json +1 -1
  245. package/dist/js/components/Label/package.json +1 -1
  246. package/dist/js/components/List/package.json +1 -1
  247. package/dist/js/components/LoginPage/package.json +1 -1
  248. package/dist/js/components/Masthead/package.json +1 -1
  249. package/dist/js/components/Menu/package.json +1 -1
  250. package/dist/js/components/MenuToggle/package.json +1 -1
  251. package/dist/js/components/Modal/package.json +1 -1
  252. package/dist/js/components/MultipleFileUpload/package.json +1 -1
  253. package/dist/js/components/Nav/package.json +1 -1
  254. package/dist/js/components/NotificationBadge/package.json +1 -1
  255. package/dist/js/components/NotificationDrawer/package.json +1 -1
  256. package/dist/js/components/NumberInput/package.json +1 -1
  257. package/dist/js/components/OverflowMenu/package.json +1 -1
  258. package/dist/js/components/Page/package.json +1 -1
  259. package/dist/js/components/Pagination/package.json +1 -1
  260. package/dist/js/components/Panel/package.json +1 -1
  261. package/dist/js/components/Popover/package.json +1 -1
  262. package/dist/js/components/Progress/package.json +1 -1
  263. package/dist/js/components/ProgressStepper/package.json +1 -1
  264. package/dist/js/components/Radio/Radio.d.ts +5 -1
  265. package/dist/js/components/Radio/Radio.d.ts.map +1 -1
  266. package/dist/js/components/Radio/Radio.js +3 -3
  267. package/dist/js/components/Radio/Radio.js.map +1 -1
  268. package/dist/js/components/Radio/package.json +1 -1
  269. package/dist/js/components/SearchInput/package.json +1 -1
  270. package/dist/js/components/Select/Select.d.ts +31 -5
  271. package/dist/js/components/Select/Select.d.ts.map +1 -1
  272. package/dist/js/components/Select/Select.js +16 -10
  273. package/dist/js/components/Select/Select.js.map +1 -1
  274. package/dist/js/components/Select/SelectGroup.d.ts +3 -0
  275. package/dist/js/components/Select/SelectGroup.d.ts.map +1 -1
  276. package/dist/js/components/Select/SelectGroup.js.map +1 -1
  277. package/dist/js/components/Select/SelectOption.d.ts +14 -1
  278. package/dist/js/components/Select/SelectOption.d.ts.map +1 -1
  279. package/dist/js/components/Select/SelectOption.js +4 -4
  280. package/dist/js/components/Select/SelectOption.js.map +1 -1
  281. package/dist/js/components/Select/package.json +1 -1
  282. package/dist/js/components/Sidebar/package.json +1 -1
  283. package/dist/js/components/SimpleList/package.json +1 -1
  284. package/dist/js/components/Skeleton/package.json +1 -1
  285. package/dist/js/components/SkipToContent/package.json +1 -1
  286. package/dist/js/components/Slider/Slider.d.ts.map +1 -1
  287. package/dist/js/components/Slider/Slider.js +1 -1
  288. package/dist/js/components/Slider/Slider.js.map +1 -1
  289. package/dist/js/components/Slider/package.json +1 -1
  290. package/dist/js/components/Spinner/package.json +1 -1
  291. package/dist/js/components/Switch/package.json +1 -1
  292. package/dist/js/components/Tabs/package.json +1 -1
  293. package/dist/js/components/Text/package.json +1 -1
  294. package/dist/js/components/TextArea/TextArea.d.ts +0 -4
  295. package/dist/js/components/TextArea/TextArea.d.ts.map +1 -1
  296. package/dist/js/components/TextArea/TextArea.js +11 -7
  297. package/dist/js/components/TextArea/TextArea.js.map +1 -1
  298. package/dist/js/components/TextArea/package.json +1 -1
  299. package/dist/js/components/TextInput/TextInput.d.ts +8 -11
  300. package/dist/js/components/TextInput/TextInput.d.ts.map +1 -1
  301. package/dist/js/components/TextInput/TextInput.js +10 -13
  302. package/dist/js/components/TextInput/TextInput.js.map +1 -1
  303. package/dist/js/components/TextInput/package.json +1 -1
  304. package/dist/js/components/TextInputGroup/package.json +1 -1
  305. package/dist/js/components/Tile/package.json +1 -1
  306. package/dist/js/components/TimePicker/TimePicker.d.ts.map +1 -1
  307. package/dist/js/components/TimePicker/TimePicker.js +2 -2
  308. package/dist/js/components/TimePicker/TimePicker.js.map +1 -1
  309. package/dist/js/components/TimePicker/package.json +1 -1
  310. package/dist/js/components/Timestamp/package.json +1 -1
  311. package/dist/js/components/Title/package.json +1 -1
  312. package/dist/js/components/ToggleGroup/package.json +1 -1
  313. package/dist/js/components/Toolbar/package.json +1 -1
  314. package/dist/js/components/Tooltip/package.json +1 -1
  315. package/dist/js/components/TreeView/TreeViewSearch.d.ts.map +1 -1
  316. package/dist/js/components/TreeView/TreeViewSearch.js +6 -1
  317. package/dist/js/components/TreeView/TreeViewSearch.js.map +1 -1
  318. package/dist/js/components/TreeView/package.json +1 -1
  319. package/dist/js/components/Truncate/package.json +1 -1
  320. package/dist/js/components/Wizard/hooks/package.json +1 -1
  321. package/dist/js/components/Wizard/package.json +1 -1
  322. package/dist/js/components/package.json +1 -1
  323. package/dist/js/deprecated/components/ApplicationLauncher/package.json +1 -1
  324. package/dist/js/deprecated/components/ContextSelector/package.json +1 -1
  325. package/dist/js/deprecated/components/Dropdown/package.json +1 -1
  326. package/dist/js/deprecated/components/OptionsMenu/package.json +1 -1
  327. package/dist/js/deprecated/components/PageHeader/package.json +1 -1
  328. package/dist/js/deprecated/components/Select/Select.d.ts.map +1 -1
  329. package/dist/js/deprecated/components/Select/Select.js +16 -18
  330. package/dist/js/deprecated/components/Select/Select.js.map +1 -1
  331. package/dist/js/deprecated/components/Select/package.json +1 -1
  332. package/dist/js/deprecated/components/Wizard/package.json +1 -1
  333. package/dist/js/deprecated/components/package.json +1 -1
  334. package/dist/js/deprecated/package.json +1 -1
  335. package/dist/js/helpers/Popper/Popper.d.ts +1 -1
  336. package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
  337. package/dist/js/helpers/Popper/thirdparty/popper-core/package.json +1 -1
  338. package/dist/js/helpers/package.json +1 -1
  339. package/dist/js/layouts/Bullseye/package.json +1 -1
  340. package/dist/js/layouts/Flex/package.json +1 -1
  341. package/dist/js/layouts/Gallery/package.json +1 -1
  342. package/dist/js/layouts/Grid/package.json +1 -1
  343. package/dist/js/layouts/Level/package.json +1 -1
  344. package/dist/js/layouts/Split/package.json +1 -1
  345. package/dist/js/layouts/Stack/package.json +1 -1
  346. package/dist/js/layouts/package.json +1 -1
  347. package/dist/js/next/components/package.json +1 -1
  348. package/dist/js/next/package.json +1 -1
  349. package/dist/js/package.json +1 -1
  350. package/dist/umd/react-core.min.js +2 -2
  351. package/package.json +6 -6
  352. package/src/components/Card/Card.tsx +34 -9
  353. package/src/components/Card/CardHeader.tsx +94 -2
  354. package/src/components/Card/CardSelectableActions.tsx +21 -0
  355. package/src/components/Card/__tests__/Card.test.tsx +11 -7
  356. package/src/components/Card/__tests__/__snapshots__/CardHeader.test.tsx.snap +1 -3
  357. package/src/components/Card/examples/Card.md +59 -16
  358. package/src/components/Card/examples/CardClickable.tsx +54 -0
  359. package/src/components/Card/examples/CardClickableSelectable.tsx +94 -0
  360. package/src/components/Card/examples/{CardLegacySelectable.tsx → CardDeprecatedSelectable.tsx} +2 -0
  361. package/src/components/Card/examples/{CardSelectableA11yHighlight.tsx → CardDeprecatedSelectableA11yHighlight.tsx} +1 -1
  362. package/src/components/Card/examples/CardSelectable.tsx +60 -115
  363. package/src/components/Card/examples/CardSingleSelectable.tsx +52 -0
  364. package/src/components/Checkbox/Checkbox.tsx +5 -2
  365. package/src/components/ClipboardCopy/ClipboardCopy.tsx +4 -4
  366. package/src/components/ClipboardCopy/__tests__/Generated/__snapshots__/ClipboardCopy.test.tsx.snap +13 -10
  367. package/src/components/DatePicker/__tests__/__snapshots__/DatePicker.test.tsx.snap +67 -60
  368. package/src/components/Dropdown/Dropdown.tsx +25 -11
  369. package/src/components/Dropdown/examples/Dropdown.md +10 -1
  370. package/src/components/Dropdown/examples/DropdownBasic.tsx +2 -6
  371. package/src/components/Dropdown/examples/DropdownWithDescriptions.tsx +2 -6
  372. package/src/components/Dropdown/examples/DropdownWithGroups.tsx +2 -6
  373. package/src/components/Dropdown/examples/DropdownWithKebabToggle.tsx +2 -6
  374. package/src/components/FileUpload/FileUploadField.tsx +1 -1
  375. package/src/components/FileUpload/__tests__/__snapshots__/FileUpload.test.tsx.snap +28 -22
  376. package/src/components/FileUpload/__tests__/__snapshots__/FileUploadField.test.tsx.snap +28 -22
  377. package/src/components/FormControl/FormControlIcon.tsx +31 -0
  378. package/src/components/FormSelect/FormSelect.tsx +26 -20
  379. package/src/components/FormSelect/__tests__/FormSelect.test.tsx +2 -2
  380. package/src/components/FormSelect/__tests__/__snapshots__/FormSelect.test.tsx.snap +421 -178
  381. package/src/components/FormSelect/examples/FormSelect.md +7 -6
  382. package/src/components/LoginPage/__tests__/__snapshots__/LoginForm.test.tsx.snap +84 -66
  383. package/src/components/NumberInput/__tests__/__snapshots__/NumberInput.test.tsx.snap +217 -133
  384. package/src/components/Radio/Radio.tsx +7 -2
  385. package/src/components/SearchInput/__tests__/__snapshots__/SearchInput.test.tsx.snap +36 -27
  386. package/src/components/Select/Select.tsx +62 -24
  387. package/src/components/Select/SelectGroup.tsx +3 -0
  388. package/src/components/Select/SelectOption.tsx +22 -2
  389. package/src/components/Select/examples/Select.md +49 -2
  390. package/src/components/Select/examples/SelectBasic.tsx +27 -17
  391. package/src/components/Select/examples/SelectCheckbox.tsx +1 -3
  392. package/src/components/Select/examples/SelectFooter.tsx +57 -0
  393. package/src/components/Select/examples/SelectGrouped.tsx +14 -6
  394. package/src/components/Select/examples/SelectMultiTypeahead.tsx +7 -12
  395. package/src/components/Select/examples/SelectMultiTypeaheadCheckbox.tsx +204 -0
  396. package/src/components/Select/examples/SelectMultiTypeaheadCreatable.tsx +222 -0
  397. package/src/components/Select/examples/SelectOptionVariations.tsx +70 -0
  398. package/src/components/Select/examples/SelectTypeahead.tsx +13 -13
  399. package/src/components/Select/examples/SelectTypeaheadCreatable.tsx +220 -0
  400. package/src/components/Select/examples/SelectViewMore.tsx +146 -0
  401. package/src/components/Slider/Slider.tsx +0 -1
  402. package/src/components/Slider/_tests_/__snapshots__/Slider.test.tsx.snap +52 -40
  403. package/src/components/TextArea/TextArea.tsx +33 -26
  404. package/src/components/TextArea/__tests__/TextArea.test.tsx +6 -6
  405. package/src/components/TextArea/__tests__/__snapshots__/TextArea.test.tsx.snap +11 -8
  406. package/src/components/TextArea/examples/TextArea.md +8 -6
  407. package/src/components/TextInput/TextInput.tsx +43 -47
  408. package/src/components/TextInput/__tests__/TextInput.test.tsx +2 -2
  409. package/src/components/TextInput/__tests__/__snapshots__/TextInput.test.tsx.snap +130 -72
  410. package/src/components/TextInput/examples/TextInput.md +14 -5
  411. package/src/components/TextInput/examples/TextInputCustomIcon.tsx +30 -0
  412. package/src/components/TextInput/examples/TextInputCustomIconInvalid.tsx +20 -0
  413. package/src/components/TimePicker/TimePicker.tsx +2 -4
  414. package/src/components/TreeView/TreeViewSearch.tsx +9 -9
  415. package/src/components/TreeView/__tests__/__snapshots__/TreeView.test.tsx.snap +29 -7
  416. package/src/demos/ComposableMenu/ComposableMenu.md +14 -0
  417. package/src/demos/examples/DateTimePicker/DateTimePicker.tsx +1 -1
  418. package/src/deprecated/components/Select/Select.tsx +21 -25
  419. package/src/deprecated/components/Select/__tests__/__snapshots__/Select.test.tsx.snap +1 -2
  420. package/src/helpers/Popper/Popper.tsx +1 -1
  421. package/src/components/FormSelect/examples/FormSelectIconSpriteVariant.tsx +0 -63
  422. package/src/components/TextArea/examples/TextAreaIconSprite.tsx +0 -41
  423. package/src/components/TextInput/examples/TextInputIcon.tsx +0 -39
  424. package/src/components/TextInput/examples/TextInputIconSprite.tsx +0 -63
@@ -11,51 +11,53 @@ propComponents: ['TextArea']
11
11
  ### Basic
12
12
 
13
13
  ```ts file="./TextAreaBasic.tsx"
14
+
14
15
  ```
15
16
 
16
17
  ### Invalid
17
18
 
18
19
  ```ts file="./TextAreaInvalid.tsx"
20
+
19
21
  ```
20
22
 
21
23
  ### Validated
22
24
 
23
25
  ```ts file="./TextAreaValidated.tsx"
26
+
24
27
  ```
25
28
 
26
29
  ### Vertically resizable
27
30
 
28
31
  ```ts file="./TextAreaVerticallyResizable.tsx"
32
+
29
33
  ```
30
34
 
31
35
  ### Horizontally resizable
32
36
 
33
37
  ```ts file="./TextAreaHorizontallyResizable.tsx"
38
+
34
39
  ```
35
40
 
36
41
  ### Uncontrolled
37
42
 
38
43
  ```ts file="./TextAreaUncontrolled.tsx"
44
+
39
45
  ```
40
46
 
41
47
  ### Disabled
42
48
 
43
49
  ```ts file="./TextAreaDisabled.tsx"
50
+
44
51
  ```
45
52
 
46
53
  ### Read only
47
54
 
48
55
  ```ts file="./TextAreaReadOnly.tsx"
56
+
49
57
  ```
50
58
 
51
59
  ### Auto resizing
52
60
 
53
61
  ```ts file="./TextAreaAutoResizing.tsx"
54
- ```
55
-
56
- ### Icon sprite variants
57
-
58
- **Note:** The icons for the success, invalid, calendar, etc. variations in form control elements are applied as background images to the form element. By default, the image URLs for these icons are data URIs. However, there may be cases where data URIs are not ideal, such as in an application with a content security policy that disallows data URIs for security reasons. The `isIconSprite` variation changes the icon source to an external SVG file that serves as a sprite for all of the supported icons.
59
62
 
60
- ```ts file="./TextAreaIconSprite.tsx"
61
63
  ```
@@ -5,6 +5,7 @@ import { ValidatedOptions } from '../../helpers/constants';
5
5
  import { trimLeft } from '../../helpers/util';
6
6
  import { getDefaultOUIAId, getOUIAProps, OUIAProps } from '../../helpers';
7
7
  import { getResizeObserver } from '../../helpers/resizeObserver';
8
+ import { FormControlIcon } from '../FormControl/FormControlIcon';
8
9
 
9
10
  export enum TextInputTypes {
10
11
  text = 'text',
@@ -25,7 +26,6 @@ export enum TextInputReadOnlyVariant {
25
26
  plain = 'plain'
26
27
  }
27
28
 
28
-
29
29
  export interface TextInputProps
30
30
  extends Omit<React.HTMLProps<HTMLInputElement>, 'onChange' | 'onFocus' | 'onBlur' | 'disabled' | 'ref'>,
31
31
  OUIAProps {
@@ -33,10 +33,11 @@ export interface TextInputProps
33
33
  className?: string;
34
34
  /** Flag to show if the text input is disabled. */
35
35
  isDisabled?: boolean;
36
- /** @deprecated Use readOnlyVariant instead. Flag to show if the text input is read only. */
37
- isReadOnly?: boolean;
38
- /** Read only variant. */
36
+ /** Flag to apply expanded styling */
37
+ isExpanded?: boolean;
38
+ /** Sets the input as readonly and determines the readonly styling. */
39
39
  readOnlyVariant?: 'plain' | 'default';
40
+ /** Flag indicating whether the input is required */
40
41
  isRequired?: boolean;
41
42
  /** Value to indicate if the text input is modified to show that validation state.
42
43
  * If set to success, text input will be modified to indicate valid state.
@@ -60,6 +61,8 @@ export interface TextInputProps
60
61
  | 'url';
61
62
  /** Value of the text input. */
62
63
  value?: string | number;
64
+ /** Placeholder of the text input when there is no value */
65
+ placeholder?: string;
63
66
  /** Aria-label. The text input requires an associated id or aria-label. */
64
67
  'aria-label'?: string;
65
68
  /** @hide A reference object to attach to the text input box. */
@@ -70,14 +73,8 @@ export interface TextInputProps
70
73
  onFocus?: (event?: any) => void;
71
74
  /** Callback function when text input is blurred (focus leaves) */
72
75
  onBlur?: (event?: any) => void;
73
- /** icon variant */
74
- iconVariant?: 'calendar' | 'clock' | 'search';
75
- /** Use the external file instead of a data URI */
76
- isIconSprite?: boolean;
77
- /** Custom icon url to set as the text input's background-image */
78
- customIconUrl?: string;
79
- /** Dimensions for the custom icon set as the text input's background-size */
80
- customIconDimensions?: string;
76
+ /** Custom icon to render. If the validated prop is also passed, this will render an icon in addition to a validated icon. */
77
+ customIcon?: React.ReactNode;
81
78
  /** Value to overwrite the randomly generated data-ouia-component-id.*/
82
79
  ouiaId?: number | string;
83
80
  /** Set the value of data-ouia-safe. Only set to true when the component is in a static state, i.e. no animations are occurring. At all other times, this value must be false. */
@@ -92,12 +89,10 @@ export class TextInputBase extends React.Component<TextInputProps, TextInputStat
92
89
  static displayName = 'TextInputBase';
93
90
  static defaultProps: TextInputProps = {
94
91
  'aria-label': null,
95
- className: '',
96
92
  isRequired: false,
97
93
  validated: 'default' as 'success' | 'warning' | 'error' | 'default',
98
94
  isDisabled: false,
99
- isReadOnly: false,
100
- isIconSprite: false,
95
+ isExpanded: false,
101
96
  type: TextInputTypes.text,
102
97
  isLeftTruncated: false,
103
98
  onChange: (): any => undefined,
@@ -174,60 +169,61 @@ export class TextInputBase extends React.Component<TextInputProps, TextInputStat
174
169
  className,
175
170
  type,
176
171
  value,
172
+ placeholder,
177
173
  validated,
178
174
  /* eslint-disable @typescript-eslint/no-unused-vars */
179
175
  onChange,
180
176
  onFocus,
181
177
  onBlur,
182
178
  isLeftTruncated,
183
- isReadOnly,
179
+ isExpanded,
184
180
  readOnly,
185
181
  readOnlyVariant,
186
182
  isRequired,
187
183
  isDisabled,
188
- isIconSprite,
189
- iconVariant,
190
- customIconUrl,
191
- customIconDimensions,
184
+ customIcon,
192
185
  ouiaId,
193
186
  ouiaSafe,
194
187
  ...props
195
188
  } = this.props;
196
189
 
197
- const customIconStyle = {} as any;
198
- if (customIconUrl) {
199
- customIconStyle.backgroundImage = `url('${customIconUrl}')`;
200
- }
201
- if (customIconDimensions) {
202
- customIconStyle.backgroundSize = customIconDimensions;
203
- }
190
+ const hasStatusIcon = ['success', 'error', 'warning'].includes(validated);
204
191
 
205
192
  return (
206
- <input
207
- {...props}
208
- onFocus={this.onFocus}
209
- onBlur={this.onBlur}
193
+ <div
210
194
  className={css(
211
195
  styles.formControl,
212
- isIconSprite && styles.modifiers.iconSprite,
196
+ readOnlyVariant && styles.modifiers.readonly,
213
197
  readOnlyVariant === 'plain' && styles.modifiers.plain,
214
- validated === ValidatedOptions.success && styles.modifiers.success,
215
- validated === ValidatedOptions.warning && styles.modifiers.warning,
216
- ((iconVariant && iconVariant !== 'search') || customIconUrl) && styles.modifiers.icon,
217
- iconVariant && styles.modifiers[iconVariant],
198
+ isDisabled && styles.modifiers.disabled,
199
+ isExpanded && styles.modifiers.expanded,
200
+ customIcon && styles.modifiers.icon,
201
+ hasStatusIcon && styles.modifiers[validated as 'success' | 'warning' | 'error'],
218
202
  className
219
203
  )}
220
- onChange={this.handleChange}
221
- type={type}
222
- value={this.sanitizeInputValue(value)}
223
- aria-invalid={props['aria-invalid'] ? props['aria-invalid'] : validated === ValidatedOptions.error}
224
- required={isRequired}
225
- disabled={isDisabled}
226
- readOnly={!!readOnlyVariant || isReadOnly || readOnly}
227
- ref={innerRef || this.inputRef}
228
- {...((customIconUrl || customIconDimensions) && { style: customIconStyle })}
229
- {...getOUIAProps(TextInput.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe)}
230
- />
204
+ >
205
+ <input
206
+ {...props}
207
+ onFocus={this.onFocus}
208
+ onBlur={this.onBlur}
209
+ onChange={this.handleChange}
210
+ type={type}
211
+ value={this.sanitizeInputValue(value)}
212
+ aria-invalid={props['aria-invalid'] ? props['aria-invalid'] : validated === ValidatedOptions.error}
213
+ required={isRequired}
214
+ disabled={isDisabled}
215
+ readOnly={!!readOnlyVariant || readOnly}
216
+ ref={innerRef || this.inputRef}
217
+ placeholder={placeholder}
218
+ {...getOUIAProps(TextInput.displayName, ouiaId !== undefined ? ouiaId : this.state.ouiaStateId, ouiaSafe)}
219
+ />
220
+ {(customIcon || hasStatusIcon) && (
221
+ <div className={css(styles.formControlUtilities)}>
222
+ {customIcon && <FormControlIcon customIcon={customIcon} />}
223
+ {hasStatusIcon && <FormControlIcon status={validated as 'success' | 'error' | 'warning'} />}
224
+ </div>
225
+ )}
226
+ </div>
231
227
  );
232
228
  }
233
229
 
@@ -59,12 +59,12 @@ describe('TextInput', () => {
59
59
 
60
60
  test('validated text input success', () => {
61
61
  render(<TextInput {...props} required validated={ValidatedOptions.success} aria-label="validated text input" />);
62
- expect(screen.getByLabelText('validated text input')).toHaveClass('pf-m-success');
62
+ expect(screen.getByLabelText('validated text input').parentElement).toHaveClass('pf-m-success');
63
63
  });
64
64
 
65
65
  test('validated text input warning', () => {
66
66
  render(<TextInput {...props} required validated={ValidatedOptions.warning} aria-label="validated text input" />);
67
- expect(screen.getByLabelText('validated text input')).toHaveClass('pf-m-warning');
67
+ expect(screen.getByLabelText('validated text input').parentElement).toHaveClass('pf-m-warning');
68
68
  });
69
69
 
70
70
  test('validated text input error', () => {
@@ -2,109 +2,167 @@
2
2
 
3
3
  exports[`TextInput default read only text input 1`] = `
4
4
  <DocumentFragment>
5
- <input
6
- aria-invalid="false"
7
- aria-label="default read only text input"
8
- class="pf-v5-c-form-control"
9
- data-ouia-component-id="OUIA-Generated-TextInputBase-5"
10
- data-ouia-component-type="PF4/TextInput"
11
- data-ouia-safe="true"
12
- readonly=""
13
- type="text"
14
- value="read only default"
15
- />
5
+ <div
6
+ class="pf-v5-c-form-control pf-m-readonly"
7
+ >
8
+ <input
9
+ aria-invalid="false"
10
+ aria-label="default read only text input"
11
+ data-ouia-component-id="OUIA-Generated-TextInputBase-5"
12
+ data-ouia-component-type="PF4/TextInput"
13
+ data-ouia-safe="true"
14
+ readonly=""
15
+ type="text"
16
+ value="read only default"
17
+ />
18
+ </div>
16
19
  </DocumentFragment>
17
20
  `;
18
21
 
19
22
  exports[`TextInput disabled text input 1`] = `
20
23
  <DocumentFragment>
21
- <input
22
- aria-invalid="false"
23
- aria-label="disabled text input"
24
- class="pf-v5-c-form-control"
25
- data-ouia-component-id="OUIA-Generated-TextInputBase-3"
26
- data-ouia-component-type="PF4/TextInput"
27
- data-ouia-safe="true"
28
- disabled=""
29
- type="text"
30
- value=""
31
- />
24
+ <div
25
+ class="pf-v5-c-form-control pf-m-disabled"
26
+ >
27
+ <input
28
+ aria-invalid="false"
29
+ aria-label="disabled text input"
30
+ data-ouia-component-id="OUIA-Generated-TextInputBase-3"
31
+ data-ouia-component-type="PF4/TextInput"
32
+ data-ouia-safe="true"
33
+ disabled=""
34
+ type="text"
35
+ value=""
36
+ />
37
+ </div>
32
38
  </DocumentFragment>
33
39
  `;
34
40
 
35
41
  exports[`TextInput invalid text input 1`] = `
36
42
  <DocumentFragment>
37
- <input
38
- aria-invalid="true"
39
- aria-label="invalid text input"
40
- class="pf-v5-c-form-control"
41
- data-ouia-component-id="OUIA-Generated-TextInputBase-7"
42
- data-ouia-component-type="PF4/TextInput"
43
- data-ouia-safe="true"
44
- type="text"
45
- value="test input"
46
- />
43
+ <div
44
+ class="pf-v5-c-form-control pf-m-error"
45
+ >
46
+ <input
47
+ aria-invalid="true"
48
+ aria-label="invalid text input"
49
+ data-ouia-component-id="OUIA-Generated-TextInputBase-7"
50
+ data-ouia-component-type="PF4/TextInput"
51
+ data-ouia-safe="true"
52
+ type="text"
53
+ value="test input"
54
+ />
55
+ <div
56
+ class="pf-v5-c-form-control__utilities"
57
+ >
58
+ <div
59
+ class="pf-v5-c-form-control__icon pf-m-status"
60
+ >
61
+ <svg
62
+ aria-hidden="true"
63
+ class="pf-v5-svg"
64
+ fill="currentColor"
65
+ role="img"
66
+ viewBox="0 0 512 512"
67
+ >
68
+ <path
69
+ d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
70
+ />
71
+ </svg>
72
+ </div>
73
+ </div>
74
+ </div>
47
75
  </DocumentFragment>
48
76
  `;
49
77
 
50
78
  exports[`TextInput plain read only text input 1`] = `
51
79
  <DocumentFragment>
52
- <input
53
- aria-invalid="false"
54
- aria-label="plain read only text input"
55
- class="pf-v5-c-form-control pf-m-plain"
56
- data-ouia-component-id="OUIA-Generated-TextInputBase-6"
57
- data-ouia-component-type="PF4/TextInput"
58
- data-ouia-safe="true"
59
- readonly=""
60
- type="text"
61
- value="read only plain"
62
- />
80
+ <div
81
+ class="pf-v5-c-form-control pf-m-readonly pf-m-plain"
82
+ >
83
+ <input
84
+ aria-invalid="false"
85
+ aria-label="plain read only text input"
86
+ data-ouia-component-id="OUIA-Generated-TextInputBase-6"
87
+ data-ouia-component-type="PF4/TextInput"
88
+ data-ouia-safe="true"
89
+ readonly=""
90
+ type="text"
91
+ value="read only plain"
92
+ />
93
+ </div>
63
94
  </DocumentFragment>
64
95
  `;
65
96
 
66
97
  exports[`TextInput read only text input using isReadOnly 1`] = `
67
98
  <DocumentFragment>
68
- <input
69
- aria-invalid="false"
70
- aria-label="read only text input"
99
+ <div
71
100
  class="pf-v5-c-form-control"
72
- data-ouia-component-id="OUIA-Generated-TextInputBase-4"
73
- data-ouia-component-type="PF4/TextInput"
74
- data-ouia-safe="true"
75
- readonly=""
76
- type="text"
77
- value="read only"
78
- />
101
+ >
102
+ <input
103
+ aria-invalid="false"
104
+ aria-label="read only text input"
105
+ data-ouia-component-id="OUIA-Generated-TextInputBase-4"
106
+ data-ouia-component-type="PF4/TextInput"
107
+ data-ouia-safe="true"
108
+ type="text"
109
+ value="read only"
110
+ />
111
+ </div>
79
112
  </DocumentFragment>
80
113
  `;
81
114
 
82
115
  exports[`TextInput simple text input 1`] = `
83
116
  <DocumentFragment>
84
- <input
85
- aria-invalid="false"
86
- aria-label="simple text input"
117
+ <div
87
118
  class="pf-v5-c-form-control"
88
- data-ouia-component-id="OUIA-Generated-TextInputBase-2"
89
- data-ouia-component-type="PF4/TextInput"
90
- data-ouia-safe="true"
91
- type="text"
92
- value="test input"
93
- />
119
+ >
120
+ <input
121
+ aria-invalid="false"
122
+ aria-label="simple text input"
123
+ data-ouia-component-id="OUIA-Generated-TextInputBase-2"
124
+ data-ouia-component-type="PF4/TextInput"
125
+ data-ouia-safe="true"
126
+ type="text"
127
+ value="test input"
128
+ />
129
+ </div>
94
130
  </DocumentFragment>
95
131
  `;
96
132
 
97
133
  exports[`TextInput validated text input error 1`] = `
98
134
  <DocumentFragment>
99
- <input
100
- aria-invalid="true"
101
- aria-label="validated text input"
102
- class="pf-v5-c-form-control"
103
- data-ouia-component-id="OUIA-Generated-TextInputBase-10"
104
- data-ouia-component-type="PF4/TextInput"
105
- data-ouia-safe="true"
106
- type="text"
107
- value="test input"
108
- />
135
+ <div
136
+ class="pf-v5-c-form-control pf-m-error"
137
+ >
138
+ <input
139
+ aria-invalid="true"
140
+ aria-label="validated text input"
141
+ data-ouia-component-id="OUIA-Generated-TextInputBase-10"
142
+ data-ouia-component-type="PF4/TextInput"
143
+ data-ouia-safe="true"
144
+ type="text"
145
+ value="test input"
146
+ />
147
+ <div
148
+ class="pf-v5-c-form-control__utilities"
149
+ >
150
+ <div
151
+ class="pf-v5-c-form-control__icon pf-m-status"
152
+ >
153
+ <svg
154
+ aria-hidden="true"
155
+ class="pf-v5-svg"
156
+ fill="currentColor"
157
+ role="img"
158
+ viewBox="0 0 512 512"
159
+ >
160
+ <path
161
+ d="M504 256c0 136.997-111.043 248-248 248S8 392.997 8 256C8 119.083 119.043 8 256 8s248 111.083 248 248zm-248 50c-25.405 0-46 20.595-46 46s20.595 46 46 46 46-20.595 46-46-20.595-46-46-46zm-43.673-165.346l7.418 136c.347 6.364 5.609 11.346 11.982 11.346h48.546c6.373 0 11.635-4.982 11.982-11.346l7.418-136c.375-6.874-5.098-12.654-11.982-12.654h-63.383c-6.884 0-12.356 5.78-11.981 12.654z"
162
+ />
163
+ </svg>
164
+ </div>
165
+ </div>
166
+ </div>
109
167
  </DocumentFragment>
110
168
  `;
@@ -6,46 +6,55 @@ cssPrefix: pf-c-form-control
6
6
  propComponents: ['TextInput']
7
7
  ---
8
8
 
9
+ import CalendarIcon from '@patternfly/react-icons/dist/esm/icons/calendar-icon';
10
+ import ClockIcon from '@patternfly/react-icons/dist/esm/icons/clock-icon';
11
+
9
12
  ## Examples
10
13
 
11
14
  ### Basic
12
15
 
13
16
  ```ts file="./TextInputBasic.tsx"
17
+
14
18
  ```
15
19
 
16
20
  ### Disabled
17
21
 
18
22
  ```ts file="./TextInputDisabled.tsx"
23
+
19
24
  ```
20
25
 
21
26
  ### Truncated on Left
22
27
 
23
28
  ```ts file="./TextInputLeftTruncated.tsx"
29
+
24
30
  ```
25
31
 
26
32
  ### Read only
27
33
 
28
34
  ```ts file="./TextInputReadOnly.tsx"
35
+
29
36
  ```
30
37
 
31
38
  ### Invalid
32
39
 
33
40
  ```ts file="./TextInputInvalid.tsx"
41
+
34
42
  ```
35
43
 
36
44
  ### Select text using ref
37
45
 
38
46
  ```ts file="./TextInputSelectUsingRef.tsx"
47
+
39
48
  ```
40
49
 
41
- ### Icon variants
50
+ ### Custom icon
51
+
52
+ ```ts file="./TextInputCustomIcon.tsx"
42
53
 
43
- ```ts file="./TextInputIcon.tsx"
44
54
  ```
45
55
 
46
- ### Icon sprite variants
56
+ ### Custom icon and invalid
47
57
 
48
- **Note:** The icons for the success, invalid, calendar, etc. variations in form control elements are applied as background images to the form element. By default, the image URLs for these icons are data URIs. However, there may be cases where data URIs are not ideal, such as in an application with a content security policy that disallows data URIs for security reasons. The `isIconSprite` variation changes the icon source to an external SVG file that serves as a sprite for all of the supported icons.
58
+ ```ts file="./TextInputCustomIconInvalid.tsx"
49
59
 
50
- ```ts file="./TextInputIconSprite.tsx"
51
60
  ```
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { TextInput } from '@patternfly/react-core';
3
+ import CalendarIcon from '@patternfly/react-icons/dist/esm/icons/calendar-icon';
4
+ import ClockIcon from '@patternfly/react-icons/dist/esm/icons/clock-icon';
5
+
6
+ export const TextInputCustomIcon: React.FunctionComponent = () => {
7
+ const [calendar, setCalendar] = React.useState('');
8
+ const [clock, setClock] = React.useState('');
9
+
10
+ return (
11
+ <>
12
+ <TextInput
13
+ value={calendar}
14
+ type="text"
15
+ customIcon={<CalendarIcon />}
16
+ onChange={(_event, value) => setCalendar(value)}
17
+ aria-label="text input example with calendar icon"
18
+ />
19
+ <br />
20
+ <br />
21
+ <TextInput
22
+ value={clock}
23
+ type="text"
24
+ customIcon={<ClockIcon />}
25
+ onChange={(_event, value) => setClock(value)}
26
+ aria-label="text input example with clock icon"
27
+ />
28
+ </>
29
+ );
30
+ };
@@ -0,0 +1,20 @@
1
+ import React from 'react';
2
+ import { TextInput, ValidatedOptions } from '@patternfly/react-core';
3
+ import CalendarIcon from '@patternfly/react-icons/dist/esm/icons/calendar-icon';
4
+
5
+ export const TextInputCustomIconInvalid: React.FunctionComponent = () => {
6
+ const [calendar, setCalendar] = React.useState('');
7
+
8
+ return (
9
+ <>
10
+ <TextInput
11
+ value={calendar}
12
+ type="text"
13
+ validated={ValidatedOptions.error}
14
+ customIcon={<CalendarIcon />}
15
+ onChange={(_event, value) => setCalendar(value)}
16
+ aria-label="text input example with calendar icon"
17
+ />
18
+ </>
19
+ );
20
+ };
@@ -1,7 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
  import datePickerStyles from '@patternfly/react-styles/css/components/DatePicker/date-picker';
4
- import formStyles from '@patternfly/react-styles/css/components/FormControl/form-control';
5
4
  import menuStyles from '@patternfly/react-styles/css/components/Menu/menu';
6
5
  import { getUniqueId } from '../../helpers';
7
6
  import { Popper } from '../../helpers/Popper/Popper';
@@ -21,7 +20,7 @@ import {
21
20
  getSeconds
22
21
  } from './TimePickerUtils';
23
22
  import { HelperText, HelperTextItem } from '../HelperText';
24
-
23
+ import OutlinedClockIcon from '@patternfly/react-icons/dist/esm/icons/outlined-clock-icon';
25
24
  export interface TimePickerProps
26
25
  extends Omit<React.HTMLProps<HTMLDivElement>, 'onChange' | 'onFocus' | 'onBlur' | 'disabled' | 'ref'> {
27
26
  /** Additional classes added to the time picker. */
@@ -502,14 +501,13 @@ export class TimePicker extends React.Component<TimePickerProps, TimePickerState
502
501
  const textInput = (
503
502
  <TextInput
504
503
  aria-haspopup="menu"
505
- className={css(formStyles.formControl)}
506
504
  id={`${randomId}-input`}
507
505
  aria-label={ariaLabel}
508
506
  validated={isInvalid ? 'error' : 'default'}
509
507
  placeholder={placeholder}
510
508
  value={timeState || ''}
511
509
  type="text"
512
- iconVariant="clock"
510
+ customIcon={<OutlinedClockIcon />}
513
511
  onClick={this.onInputClick}
514
512
  onChange={this.onInputChange}
515
513
  autoComplete="off"
@@ -2,6 +2,7 @@ import * as React from 'react';
2
2
  import { css } from '@patternfly/react-styles';
3
3
  import styles from '@patternfly/react-styles/css/components/TreeView/tree-view';
4
4
  import formStyles from '@patternfly/react-styles/css/components/FormControl/form-control';
5
+ import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon';
5
6
 
6
7
  /** Renders a search input for the tree view. This sub-component should be passed into the
7
8
  * tree view component's toolbar property.
@@ -29,15 +30,14 @@ export const TreeViewSearch: React.FunctionComponent<TreeViewSearchProps> = ({
29
30
  ...props
30
31
  }: TreeViewSearchProps) => (
31
32
  <div className={css(styles.treeViewSearch, className)}>
32
- <input
33
- className={css(formStyles.formControl, formStyles.modifiers.search)}
34
- onChange={onSearch}
35
- id={id}
36
- name={name}
37
- aria-label={ariaLabel}
38
- type="search"
39
- {...props}
40
- />
33
+ <div className={css(formStyles.formControl, formStyles.modifiers.icon)}>
34
+ <input onChange={onSearch} id={id} name={name} aria-label={ariaLabel} type="search" {...props} />
35
+ <div className={css(formStyles.formControlUtilities)}>
36
+ <div className={css(formStyles.formControlIcon)}>
37
+ <SearchIcon />
38
+ </div>
39
+ </div>
40
+ </div>
41
41
  </div>
42
42
  );
43
43
  TreeViewSearch.displayName = 'TreeViewSearch';