@patternfly/react-core 4.244.1 → 4.245.0

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 (290) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/esm/components/Alert/Alert.d.ts +4 -0
  3. package/dist/esm/components/Alert/Alert.d.ts.map +1 -1
  4. package/dist/esm/components/Alert/Alert.js.map +1 -1
  5. package/dist/esm/components/Alert/AlertActionCloseButton.js +2 -4
  6. package/dist/esm/components/Alert/AlertActionCloseButton.js.map +1 -1
  7. package/dist/esm/components/Alert/AlertToggleExpandButton.js +1 -1
  8. package/dist/esm/components/Alert/AlertToggleExpandButton.js.map +1 -1
  9. package/dist/esm/components/Breadcrumb/Breadcrumb.d.ts +4 -0
  10. package/dist/esm/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  11. package/dist/esm/components/Breadcrumb/Breadcrumb.js.map +1 -1
  12. package/dist/esm/components/Button/Button.d.ts +4 -0
  13. package/dist/esm/components/Button/Button.d.ts.map +1 -1
  14. package/dist/esm/components/Button/Button.js.map +1 -1
  15. package/dist/esm/components/Card/Card.d.ts +4 -0
  16. package/dist/esm/components/Card/Card.d.ts.map +1 -1
  17. package/dist/esm/components/Card/Card.js.map +1 -1
  18. package/dist/esm/components/Checkbox/Checkbox.d.ts +4 -0
  19. package/dist/esm/components/Checkbox/Checkbox.d.ts.map +1 -1
  20. package/dist/esm/components/Checkbox/Checkbox.js.map +1 -1
  21. package/dist/esm/components/Chip/Chip.d.ts +2 -0
  22. package/dist/esm/components/Chip/Chip.d.ts.map +1 -1
  23. package/dist/esm/components/Chip/Chip.js.map +1 -1
  24. package/dist/esm/components/ChipGroup/ChipGroup.d.ts +2 -0
  25. package/dist/esm/components/ChipGroup/ChipGroup.d.ts.map +1 -1
  26. package/dist/esm/components/ChipGroup/ChipGroup.js.map +1 -1
  27. package/dist/esm/components/ContextSelector/ContextSelector.d.ts +4 -0
  28. package/dist/esm/components/ContextSelector/ContextSelector.d.ts.map +1 -1
  29. package/dist/esm/components/ContextSelector/ContextSelector.js.map +1 -1
  30. package/dist/esm/components/Dropdown/Dropdown.d.ts +4 -0
  31. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  32. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  33. package/dist/esm/components/Dropdown/DropdownItem.d.ts +4 -0
  34. package/dist/esm/components/Dropdown/DropdownItem.d.ts.map +1 -1
  35. package/dist/esm/components/Dropdown/DropdownItem.js.map +1 -1
  36. package/dist/esm/components/Dropdown/DropdownSeparator.d.ts +4 -0
  37. package/dist/esm/components/Dropdown/DropdownSeparator.d.ts.map +1 -1
  38. package/dist/esm/components/Dropdown/DropdownSeparator.js.map +1 -1
  39. package/dist/esm/components/Dropdown/DropdownToggle.d.ts +4 -0
  40. package/dist/esm/components/Dropdown/DropdownToggle.d.ts.map +1 -1
  41. package/dist/esm/components/Dropdown/DropdownToggle.js.map +1 -1
  42. package/dist/esm/components/Dropdown/DropdownToggleCheckbox.d.ts +4 -0
  43. package/dist/esm/components/Dropdown/DropdownToggleCheckbox.d.ts.map +1 -1
  44. package/dist/esm/components/Dropdown/DropdownToggleCheckbox.js.map +1 -1
  45. package/dist/esm/components/Form/Form.d.ts +4 -2
  46. package/dist/esm/components/Form/Form.d.ts.map +1 -1
  47. package/dist/esm/components/Form/Form.js +4 -3
  48. package/dist/esm/components/Form/Form.js.map +1 -1
  49. package/dist/esm/components/FormSelect/FormSelect.d.ts +4 -0
  50. package/dist/esm/components/FormSelect/FormSelect.d.ts.map +1 -1
  51. package/dist/esm/components/FormSelect/FormSelect.js.map +1 -1
  52. package/dist/esm/components/LoginPage/LoginForm.d.ts +1 -1
  53. package/dist/esm/components/LoginPage/LoginForm.d.ts.map +1 -1
  54. package/dist/esm/components/Menu/Menu.d.ts +4 -0
  55. package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
  56. package/dist/esm/components/Menu/Menu.js.map +1 -1
  57. package/dist/esm/components/MenuToggle/MenuToggleCheckbox.d.ts +4 -0
  58. package/dist/esm/components/MenuToggle/MenuToggleCheckbox.d.ts.map +1 -1
  59. package/dist/esm/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
  60. package/dist/esm/components/Modal/Modal.d.ts +4 -0
  61. package/dist/esm/components/Modal/Modal.d.ts.map +1 -1
  62. package/dist/esm/components/Modal/Modal.js.map +1 -1
  63. package/dist/esm/components/Modal/ModalBoxCloseButton.d.ts +2 -0
  64. package/dist/esm/components/Modal/ModalBoxCloseButton.d.ts.map +1 -1
  65. package/dist/esm/components/Modal/ModalBoxCloseButton.js.map +1 -1
  66. package/dist/esm/components/Modal/ModalContent.d.ts +4 -0
  67. package/dist/esm/components/Modal/ModalContent.d.ts.map +1 -1
  68. package/dist/esm/components/Modal/ModalContent.js.map +1 -1
  69. package/dist/esm/components/Nav/Nav.d.ts +4 -0
  70. package/dist/esm/components/Nav/Nav.d.ts.map +1 -1
  71. package/dist/esm/components/Nav/Nav.js.map +1 -1
  72. package/dist/esm/components/Nav/NavExpandable.d.ts +2 -0
  73. package/dist/esm/components/Nav/NavExpandable.d.ts.map +1 -1
  74. package/dist/esm/components/Nav/NavExpandable.js.map +1 -1
  75. package/dist/esm/components/Nav/NavItem.d.ts +4 -0
  76. package/dist/esm/components/Nav/NavItem.d.ts.map +1 -1
  77. package/dist/esm/components/Nav/NavItem.js.map +1 -1
  78. package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts +4 -0
  79. package/dist/esm/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
  80. package/dist/esm/components/OptionsMenu/OptionsMenu.js.map +1 -1
  81. package/dist/esm/components/OverflowMenu/OverflowMenu.d.ts +7 -1
  82. package/dist/esm/components/OverflowMenu/OverflowMenu.d.ts.map +1 -1
  83. package/dist/esm/components/OverflowMenu/OverflowMenu.js +36 -23
  84. package/dist/esm/components/OverflowMenu/OverflowMenu.js.map +1 -1
  85. package/dist/esm/components/Pagination/Pagination.d.ts +4 -0
  86. package/dist/esm/components/Pagination/Pagination.d.ts.map +1 -1
  87. package/dist/esm/components/Pagination/Pagination.js.map +1 -1
  88. package/dist/esm/components/Radio/Radio.d.ts +4 -0
  89. package/dist/esm/components/Radio/Radio.d.ts.map +1 -1
  90. package/dist/esm/components/Radio/Radio.js.map +1 -1
  91. package/dist/esm/components/Select/Select.d.ts +4 -0
  92. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  93. package/dist/esm/components/Select/Select.js.map +1 -1
  94. package/dist/esm/components/Switch/Switch.d.ts +4 -0
  95. package/dist/esm/components/Switch/Switch.d.ts.map +1 -1
  96. package/dist/esm/components/Switch/Switch.js.map +1 -1
  97. package/dist/esm/components/Tabs/Tab.d.ts +2 -0
  98. package/dist/esm/components/Tabs/Tab.d.ts.map +1 -1
  99. package/dist/esm/components/Tabs/Tab.js.map +1 -1
  100. package/dist/esm/components/Tabs/TabContent.d.ts +4 -0
  101. package/dist/esm/components/Tabs/TabContent.d.ts.map +1 -1
  102. package/dist/esm/components/Tabs/TabContent.js.map +1 -1
  103. package/dist/esm/components/Tabs/Tabs.d.ts +4 -0
  104. package/dist/esm/components/Tabs/Tabs.d.ts.map +1 -1
  105. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  106. package/dist/esm/components/Text/Text.d.ts +4 -0
  107. package/dist/esm/components/Text/Text.d.ts.map +1 -1
  108. package/dist/esm/components/Text/Text.js.map +1 -1
  109. package/dist/esm/components/TextInput/TextInput.d.ts +4 -0
  110. package/dist/esm/components/TextInput/TextInput.d.ts.map +1 -1
  111. package/dist/esm/components/TextInput/TextInput.js.map +1 -1
  112. package/dist/esm/components/Title/Title.d.ts +4 -0
  113. package/dist/esm/components/Title/Title.d.ts.map +1 -1
  114. package/dist/esm/components/Title/Title.js.map +1 -1
  115. package/dist/esm/components/Toolbar/Toolbar.d.ts +4 -0
  116. package/dist/esm/components/Toolbar/Toolbar.d.ts.map +1 -1
  117. package/dist/esm/components/Toolbar/Toolbar.js.map +1 -1
  118. package/dist/js/components/Alert/Alert.d.ts +4 -0
  119. package/dist/js/components/Alert/Alert.d.ts.map +1 -1
  120. package/dist/js/components/Alert/Alert.js.map +1 -1
  121. package/dist/js/components/Alert/AlertActionCloseButton.js +2 -4
  122. package/dist/js/components/Alert/AlertActionCloseButton.js.map +1 -1
  123. package/dist/js/components/Alert/AlertToggleExpandButton.js +1 -1
  124. package/dist/js/components/Alert/AlertToggleExpandButton.js.map +1 -1
  125. package/dist/js/components/Breadcrumb/Breadcrumb.d.ts +4 -0
  126. package/dist/js/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
  127. package/dist/js/components/Breadcrumb/Breadcrumb.js.map +1 -1
  128. package/dist/js/components/Button/Button.d.ts +4 -0
  129. package/dist/js/components/Button/Button.d.ts.map +1 -1
  130. package/dist/js/components/Button/Button.js.map +1 -1
  131. package/dist/js/components/Card/Card.d.ts +4 -0
  132. package/dist/js/components/Card/Card.d.ts.map +1 -1
  133. package/dist/js/components/Card/Card.js.map +1 -1
  134. package/dist/js/components/Checkbox/Checkbox.d.ts +4 -0
  135. package/dist/js/components/Checkbox/Checkbox.d.ts.map +1 -1
  136. package/dist/js/components/Checkbox/Checkbox.js.map +1 -1
  137. package/dist/js/components/Chip/Chip.d.ts +2 -0
  138. package/dist/js/components/Chip/Chip.d.ts.map +1 -1
  139. package/dist/js/components/Chip/Chip.js.map +1 -1
  140. package/dist/js/components/ChipGroup/ChipGroup.d.ts +2 -0
  141. package/dist/js/components/ChipGroup/ChipGroup.d.ts.map +1 -1
  142. package/dist/js/components/ChipGroup/ChipGroup.js.map +1 -1
  143. package/dist/js/components/ContextSelector/ContextSelector.d.ts +4 -0
  144. package/dist/js/components/ContextSelector/ContextSelector.d.ts.map +1 -1
  145. package/dist/js/components/ContextSelector/ContextSelector.js.map +1 -1
  146. package/dist/js/components/Dropdown/Dropdown.d.ts +4 -0
  147. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  148. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  149. package/dist/js/components/Dropdown/DropdownItem.d.ts +4 -0
  150. package/dist/js/components/Dropdown/DropdownItem.d.ts.map +1 -1
  151. package/dist/js/components/Dropdown/DropdownItem.js.map +1 -1
  152. package/dist/js/components/Dropdown/DropdownSeparator.d.ts +4 -0
  153. package/dist/js/components/Dropdown/DropdownSeparator.d.ts.map +1 -1
  154. package/dist/js/components/Dropdown/DropdownSeparator.js.map +1 -1
  155. package/dist/js/components/Dropdown/DropdownToggle.d.ts +4 -0
  156. package/dist/js/components/Dropdown/DropdownToggle.d.ts.map +1 -1
  157. package/dist/js/components/Dropdown/DropdownToggle.js.map +1 -1
  158. package/dist/js/components/Dropdown/DropdownToggleCheckbox.d.ts +4 -0
  159. package/dist/js/components/Dropdown/DropdownToggleCheckbox.d.ts.map +1 -1
  160. package/dist/js/components/Dropdown/DropdownToggleCheckbox.js.map +1 -1
  161. package/dist/js/components/Form/Form.d.ts +4 -2
  162. package/dist/js/components/Form/Form.d.ts.map +1 -1
  163. package/dist/js/components/Form/Form.js +4 -4
  164. package/dist/js/components/Form/Form.js.map +1 -1
  165. package/dist/js/components/FormSelect/FormSelect.d.ts +4 -0
  166. package/dist/js/components/FormSelect/FormSelect.d.ts.map +1 -1
  167. package/dist/js/components/FormSelect/FormSelect.js.map +1 -1
  168. package/dist/js/components/LoginPage/LoginForm.d.ts +1 -1
  169. package/dist/js/components/LoginPage/LoginForm.d.ts.map +1 -1
  170. package/dist/js/components/Menu/Menu.d.ts +4 -0
  171. package/dist/js/components/Menu/Menu.d.ts.map +1 -1
  172. package/dist/js/components/Menu/Menu.js.map +1 -1
  173. package/dist/js/components/MenuToggle/MenuToggleCheckbox.d.ts +4 -0
  174. package/dist/js/components/MenuToggle/MenuToggleCheckbox.d.ts.map +1 -1
  175. package/dist/js/components/MenuToggle/MenuToggleCheckbox.js.map +1 -1
  176. package/dist/js/components/Modal/Modal.d.ts +4 -0
  177. package/dist/js/components/Modal/Modal.d.ts.map +1 -1
  178. package/dist/js/components/Modal/Modal.js.map +1 -1
  179. package/dist/js/components/Modal/ModalBoxCloseButton.d.ts +2 -0
  180. package/dist/js/components/Modal/ModalBoxCloseButton.d.ts.map +1 -1
  181. package/dist/js/components/Modal/ModalBoxCloseButton.js.map +1 -1
  182. package/dist/js/components/Modal/ModalContent.d.ts +4 -0
  183. package/dist/js/components/Modal/ModalContent.d.ts.map +1 -1
  184. package/dist/js/components/Modal/ModalContent.js.map +1 -1
  185. package/dist/js/components/Nav/Nav.d.ts +4 -0
  186. package/dist/js/components/Nav/Nav.d.ts.map +1 -1
  187. package/dist/js/components/Nav/Nav.js.map +1 -1
  188. package/dist/js/components/Nav/NavExpandable.d.ts +2 -0
  189. package/dist/js/components/Nav/NavExpandable.d.ts.map +1 -1
  190. package/dist/js/components/Nav/NavExpandable.js.map +1 -1
  191. package/dist/js/components/Nav/NavItem.d.ts +4 -0
  192. package/dist/js/components/Nav/NavItem.d.ts.map +1 -1
  193. package/dist/js/components/Nav/NavItem.js.map +1 -1
  194. package/dist/js/components/OptionsMenu/OptionsMenu.d.ts +4 -0
  195. package/dist/js/components/OptionsMenu/OptionsMenu.d.ts.map +1 -1
  196. package/dist/js/components/OptionsMenu/OptionsMenu.js.map +1 -1
  197. package/dist/js/components/OverflowMenu/OverflowMenu.d.ts +7 -1
  198. package/dist/js/components/OverflowMenu/OverflowMenu.d.ts.map +1 -1
  199. package/dist/js/components/OverflowMenu/OverflowMenu.js +35 -22
  200. package/dist/js/components/OverflowMenu/OverflowMenu.js.map +1 -1
  201. package/dist/js/components/Pagination/Pagination.d.ts +4 -0
  202. package/dist/js/components/Pagination/Pagination.d.ts.map +1 -1
  203. package/dist/js/components/Pagination/Pagination.js.map +1 -1
  204. package/dist/js/components/Radio/Radio.d.ts +4 -0
  205. package/dist/js/components/Radio/Radio.d.ts.map +1 -1
  206. package/dist/js/components/Radio/Radio.js.map +1 -1
  207. package/dist/js/components/Select/Select.d.ts +4 -0
  208. package/dist/js/components/Select/Select.d.ts.map +1 -1
  209. package/dist/js/components/Select/Select.js.map +1 -1
  210. package/dist/js/components/Switch/Switch.d.ts +4 -0
  211. package/dist/js/components/Switch/Switch.d.ts.map +1 -1
  212. package/dist/js/components/Switch/Switch.js.map +1 -1
  213. package/dist/js/components/Tabs/Tab.d.ts +2 -0
  214. package/dist/js/components/Tabs/Tab.d.ts.map +1 -1
  215. package/dist/js/components/Tabs/Tab.js.map +1 -1
  216. package/dist/js/components/Tabs/TabContent.d.ts +4 -0
  217. package/dist/js/components/Tabs/TabContent.d.ts.map +1 -1
  218. package/dist/js/components/Tabs/TabContent.js.map +1 -1
  219. package/dist/js/components/Tabs/Tabs.d.ts +4 -0
  220. package/dist/js/components/Tabs/Tabs.d.ts.map +1 -1
  221. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  222. package/dist/js/components/Text/Text.d.ts +4 -0
  223. package/dist/js/components/Text/Text.d.ts.map +1 -1
  224. package/dist/js/components/Text/Text.js.map +1 -1
  225. package/dist/js/components/TextInput/TextInput.d.ts +4 -0
  226. package/dist/js/components/TextInput/TextInput.d.ts.map +1 -1
  227. package/dist/js/components/TextInput/TextInput.js.map +1 -1
  228. package/dist/js/components/Title/Title.d.ts +4 -0
  229. package/dist/js/components/Title/Title.d.ts.map +1 -1
  230. package/dist/js/components/Title/Title.js.map +1 -1
  231. package/dist/js/components/Toolbar/Toolbar.d.ts +4 -0
  232. package/dist/js/components/Toolbar/Toolbar.d.ts.map +1 -1
  233. package/dist/js/components/Toolbar/Toolbar.js.map +1 -1
  234. package/dist/umd/react-core.min.js +2 -2
  235. package/package.json +2 -2
  236. package/src/components/Alert/Alert.tsx +4 -0
  237. package/src/components/Alert/AlertActionCloseButton.tsx +2 -2
  238. package/src/components/Alert/AlertToggleExpandButton.tsx +2 -2
  239. package/src/components/Alert/__tests__/Alert.test.tsx +713 -199
  240. package/src/components/Alert/__tests__/AlertActionCloseButton.test.tsx +125 -0
  241. package/src/components/Alert/__tests__/AlertActionLink.test.tsx +59 -0
  242. package/src/components/Alert/__tests__/AlertIcon.test.tsx +83 -0
  243. package/src/components/Alert/__tests__/AlertToggleExpandButton.test.tsx +150 -0
  244. package/src/components/Alert/__tests__/__snapshots__/Alert.test.tsx.snap +12 -2569
  245. package/src/components/Alert/__tests__/__snapshots__/AlertActionCloseButton.test.tsx.snap +31 -0
  246. package/src/components/Alert/__tests__/__snapshots__/AlertActionLink.test.tsx.snap +17 -0
  247. package/src/components/Alert/__tests__/__snapshots__/AlertIcon.test.tsx.snap +11 -0
  248. package/src/components/Alert/__tests__/__snapshots__/AlertToggleExpandButton.test.tsx.snap +24 -0
  249. package/src/components/Breadcrumb/Breadcrumb.tsx +4 -0
  250. package/src/components/Button/Button.tsx +4 -0
  251. package/src/components/Card/Card.tsx +4 -0
  252. package/src/components/Checkbox/Checkbox.tsx +4 -0
  253. package/src/components/Chip/Chip.tsx +2 -0
  254. package/src/components/ChipGroup/ChipGroup.tsx +2 -0
  255. package/src/components/ContextSelector/ContextSelector.tsx +4 -0
  256. package/src/components/Dropdown/Dropdown.tsx +4 -0
  257. package/src/components/Dropdown/DropdownItem.tsx +4 -0
  258. package/src/components/Dropdown/DropdownSeparator.tsx +4 -0
  259. package/src/components/Dropdown/DropdownToggle.tsx +4 -0
  260. package/src/components/Dropdown/DropdownToggleCheckbox.tsx +4 -0
  261. package/src/components/Dropdown/examples/Dropdown.md +1 -1
  262. package/src/components/Form/Form.tsx +9 -2
  263. package/src/components/FormSelect/FormSelect.tsx +4 -0
  264. package/src/components/LoginPage/LoginForm.tsx +1 -1
  265. package/src/components/Menu/Menu.tsx +4 -0
  266. package/src/components/MenuToggle/MenuToggleCheckbox.tsx +4 -0
  267. package/src/components/Modal/Modal.tsx +4 -0
  268. package/src/components/Modal/ModalBoxCloseButton.tsx +2 -0
  269. package/src/components/Modal/ModalContent.tsx +4 -0
  270. package/src/components/Nav/Nav.tsx +4 -0
  271. package/src/components/Nav/NavExpandable.tsx +2 -0
  272. package/src/components/Nav/NavItem.tsx +4 -0
  273. package/src/components/OptionsMenu/OptionsMenu.tsx +4 -0
  274. package/src/components/OverflowMenu/OverflowMenu.tsx +46 -25
  275. package/src/components/OverflowMenu/__tests__/OverflowMenu.test.tsx +38 -0
  276. package/src/components/OverflowMenu/examples/OverflowMenu.md +127 -35
  277. package/src/components/OverflowMenu/examples/OverflowMenuBreakpointOnContainer.tsx +100 -0
  278. package/src/components/Pagination/Pagination.tsx +4 -0
  279. package/src/components/Radio/Radio.tsx +4 -0
  280. package/src/components/Select/Select.tsx +4 -0
  281. package/src/components/Switch/Switch.tsx +4 -0
  282. package/src/components/Tabs/Tab.tsx +2 -0
  283. package/src/components/Tabs/TabContent.tsx +4 -0
  284. package/src/components/Tabs/Tabs.tsx +4 -0
  285. package/src/components/Text/Text.tsx +4 -0
  286. package/src/components/TextInput/TextInput.tsx +4 -0
  287. package/src/components/Title/Title.tsx +4 -0
  288. package/src/components/Toolbar/Toolbar.tsx +4 -0
  289. package/src/demos/examples/DashboardHeader.js +35 -6
  290. package/src/helpers/OUIA/OUIA.md +1 -1
@@ -0,0 +1,31 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Matches the snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <button
6
+ aria-label="Close variantLabel alert: title"
7
+ >
8
+ <svg
9
+ aria-hidden="true"
10
+ fill="currentColor"
11
+ height="1em"
12
+ role="img"
13
+ style="vertical-align: -0.125em;"
14
+ viewBox="0 0 352 512"
15
+ width="1em"
16
+ >
17
+ <path
18
+ d="M242.72 256l100.07-100.07c12.28-12.28 12.28-32.19 0-44.48l-22.24-22.24c-12.28-12.28-32.19-12.28-44.48 0L176 189.28 75.93 89.21c-12.28-12.28-32.19-12.28-44.48 0L9.21 111.45c-12.28 12.28-12.28 32.19 0 44.48L109.28 256 9.21 356.07c-12.28 12.28-12.28 32.19 0 44.48l22.24 22.24c12.28 12.28 32.2 12.28 44.48 0L176 322.72l100.07 100.07c12.28 12.28 32.2 12.28 44.48 0l22.24-22.24c12.28-12.28 12.28-32.19 0-44.48L242.72 256z"
19
+ />
20
+ </svg>
21
+ </button>
22
+ <p>
23
+ variant: plain
24
+ </p>
25
+ <p
26
+ id="labelling-id"
27
+ >
28
+ Test label
29
+ </p>
30
+ </DocumentFragment>
31
+ `;
@@ -0,0 +1,17 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Matches the snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <button
6
+ class=""
7
+ >
8
+ Test
9
+ </button>
10
+ <p>
11
+ variant: link
12
+ </p>
13
+ <p>
14
+ isInline: true
15
+ </p>
16
+ </DocumentFragment>
17
+ `;
@@ -0,0 +1,11 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Matches snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <div
6
+ class="pf-c-alert__icon"
7
+ >
8
+ Bell icon mock
9
+ </div>
10
+ </DocumentFragment>
11
+ `;
@@ -0,0 +1,24 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`Matches snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <button
6
+ aria-expanded="false"
7
+ aria-label="Toggle variantLabel alert: title"
8
+ >
9
+ <span
10
+ class="pf-c-alert__toggle-icon"
11
+ >
12
+ Icon mock
13
+ </span>
14
+ </button>
15
+ <p>
16
+ variant: plain
17
+ </p>
18
+ <p
19
+ id="labelling-id"
20
+ >
21
+ Test label
22
+ </p>
23
+ </DocumentFragment>
24
+ `;
@@ -10,6 +10,10 @@ export interface BreadcrumbProps extends React.HTMLProps<HTMLElement>, OUIAProps
10
10
  className?: string;
11
11
  /** Aria label added to the breadcrumb nav. */
12
12
  'aria-label'?: string;
13
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
14
+ ouiaId?: number | string;
15
+ /** 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. */
16
+ ouiaSafe?: boolean;
13
17
  }
14
18
 
15
19
  export const Breadcrumb: React.FunctionComponent<BreadcrumbProps> = ({
@@ -80,6 +80,10 @@ export interface ButtonProps extends Omit<React.HTMLProps<HTMLButtonElement>, 'r
80
80
  innerRef?: React.Ref<any>;
81
81
  /** Adds count number to button */
82
82
  countOptions?: BadgeCountObject;
83
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
84
+ ouiaId?: number | string;
85
+ /** 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. */
86
+ ouiaSafe?: boolean;
83
87
  }
84
88
 
85
89
  const ButtonBase: React.FunctionComponent<ButtonProps> = ({
@@ -42,6 +42,10 @@ export interface CardProps extends React.HTMLProps<HTMLElement>, OUIAProps {
42
42
  selectableInputAriaLabel?: string;
43
43
  /** Callback that executes when the selectable input is changed */
44
44
  onSelectableInputChange?: (labelledBy: string, event: React.FormEvent<HTMLInputElement>) => void;
45
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
46
+ ouiaId?: number | string;
47
+ /** 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. */
48
+ ouiaSafe?: boolean;
45
49
  }
46
50
 
47
51
  interface CardContextProps {
@@ -33,6 +33,10 @@ export interface CheckboxProps
33
33
  body?: React.ReactNode;
34
34
  /** Sets the input wrapper component to render. Defaults to <div> */
35
35
  component?: React.ElementType;
36
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
37
+ ouiaId?: number | string;
38
+ /** 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. */
39
+ ouiaSafe?: boolean;
36
40
  }
37
41
 
38
42
  // tslint:disable-next-line:no-empty
@@ -41,6 +41,8 @@ export interface ChipProps extends React.HTMLProps<HTMLDivElement>, OUIAProps {
41
41
 
42
42
  /** Css property expressed in percentage or any css unit that overrides the default value of the max-width of the chip's text */
43
43
  textMaxWidth?: string;
44
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
45
+ ouiaId?: number | string;
44
46
  }
45
47
 
46
48
  interface ChipState {
@@ -50,6 +50,8 @@ export interface ChipGroupProps extends React.HTMLProps<HTMLUListElement>, OUIAP
50
50
  | 'left-end'
51
51
  | 'right-start'
52
52
  | 'right-end';
53
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
54
+ ouiaId?: number | string;
53
55
  }
54
56
 
55
57
  interface ChipGroupState {
@@ -68,6 +68,10 @@ export interface ContextSelectorProps extends Omit<ToggleMenuBaseProps, 'menuApp
68
68
  id?: string;
69
69
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
70
70
  removeFindDomNode?: boolean;
71
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
72
+ ouiaId?: number | string;
73
+ /** 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. */
74
+ ouiaSafe?: boolean;
71
75
  }
72
76
 
73
77
  export class ContextSelector extends React.Component<ContextSelectorProps, { ouiaStateId: string }> {
@@ -62,6 +62,10 @@ export interface DropdownProps
62
62
  isFlipEnabled?: boolean;
63
63
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
64
64
  removeFindDomNode?: boolean;
65
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
66
+ ouiaId?: number | string;
67
+ /** 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. */
68
+ ouiaSafe?: boolean;
65
69
  }
66
70
 
67
71
  export const Dropdown: React.FunctionComponent<DropdownProps> = ({
@@ -47,6 +47,10 @@ export interface DropdownItemProps extends Omit<InternalDropdownItemProps, 'tabI
47
47
  autoFocus?: boolean;
48
48
  /** A short description of the dropdown item, displayed under the dropdown item content */
49
49
  description?: React.ReactNode;
50
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
51
+ ouiaId?: number | string;
52
+ /** 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. */
53
+ ouiaSafe?: boolean;
50
54
  }
51
55
 
52
56
  export const DropdownItem: React.FunctionComponent<DropdownItemProps> = ({
@@ -9,6 +9,10 @@ export interface SeparatorProps extends React.HTMLProps<HTMLAnchorElement>, OUIA
9
9
  className?: string;
10
10
  /** Click event to pass to InternalDropdownItem */
11
11
  onClick?: (event: React.MouseEvent<HTMLAnchorElement> | React.KeyboardEvent | MouseEvent) => void;
12
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
13
+ ouiaId?: number | string;
14
+ /** 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. */
15
+ ouiaSafe?: boolean;
12
16
  }
13
17
 
14
18
  export const DropdownSeparator: React.FunctionComponent<SeparatorProps> = ({
@@ -49,6 +49,10 @@ export interface DropdownToggleProps extends React.HTMLProps<HTMLButtonElement>,
49
49
  type?: 'button' | 'submit' | 'reset';
50
50
  /** Callback called when the Enter key is pressed */
51
51
  onEnter?: (event?: React.MouseEvent<HTMLButtonElement>) => void;
52
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
53
+ ouiaId?: number | string;
54
+ /** 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. */
55
+ ouiaSafe?: boolean;
52
56
  }
53
57
 
54
58
  export const DropdownToggle: React.FunctionComponent<DropdownToggleProps> = ({
@@ -25,6 +25,10 @@ export interface DropdownToggleCheckboxProps
25
25
  id: string;
26
26
  /** Aria-label of the checkbox */
27
27
  'aria-label': string;
28
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
29
+ ouiaId?: number | string;
30
+ /** 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. */
31
+ ouiaSafe?: boolean;
28
32
  }
29
33
 
30
34
  export class DropdownToggleCheckbox extends React.Component<DropdownToggleCheckboxProps, { ouiaStateId: string }> {
@@ -3,7 +3,7 @@ id: Dropdown
3
3
  section: components
4
4
  cssPrefix: pf-c-dropdown
5
5
  propComponents:
6
- ['Dropdown', 'DropdownGroup', 'DropdownItem', 'DropdownToggle', 'DropdownToggleCheckbox', 'DropdownToggleAction']
6
+ ['Dropdown', 'DropdownGroup', 'DropdownItem', 'DropdownToggle', 'DropdownToggleCheckbox', 'DropdownToggleAction', DropdownSeparator]
7
7
  ouia: true
8
8
  ---
9
9
 
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import styles from '@patternfly/react-styles/css/components/Form/form';
3
3
  import { css } from '@patternfly/react-styles';
4
4
 
5
- export interface FormProps extends React.HTMLProps<HTMLFormElement> {
5
+ export interface FormProps extends Omit<React.HTMLProps<HTMLFormElement>, 'ref'> {
6
6
  /** Anything that can be rendered as Form content. */
7
7
  children?: React.ReactNode;
8
8
  /** Additional classes added to the Form. */
@@ -13,14 +13,17 @@ export interface FormProps extends React.HTMLProps<HTMLFormElement> {
13
13
  isWidthLimited?: boolean;
14
14
  /** Sets a custom max-width for the form. */
15
15
  maxWidth?: string;
16
+ /** @hide Forwarded ref */
17
+ innerRef?: React.Ref<any>;
16
18
  }
17
19
 
18
- export const Form: React.FunctionComponent<FormProps> = ({
20
+ const FormBase: React.FunctionComponent<FormProps> = ({
19
21
  children = null,
20
22
  className = '',
21
23
  isHorizontal = false,
22
24
  isWidthLimited = false,
23
25
  maxWidth = '',
26
+ innerRef,
24
27
  ...props
25
28
  }: FormProps) => (
26
29
  <form
@@ -38,8 +41,12 @@ export const Form: React.FunctionComponent<FormProps> = ({
38
41
  (isWidthLimited || maxWidth) && styles.modifiers.limitWidth,
39
42
  className
40
43
  )}
44
+ ref={innerRef}
41
45
  >
42
46
  {children}
43
47
  </form>
44
48
  );
49
+
50
+ export const Form = React.forwardRef((props: FormProps, ref: React.Ref<any>) => <FormBase innerRef={ref} {...props} />);
51
+
45
52
  Form.displayName = 'Form';
@@ -33,6 +33,10 @@ export interface FormSelectProps
33
33
  onChange?: (value: string, event: React.FormEvent<HTMLSelectElement>) => void;
34
34
  /** Custom flag to show that the FormSelect requires an associated id or aria-label. */
35
35
  'aria-label'?: string;
36
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
37
+ ouiaId?: number | string;
38
+ /** 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. */
39
+ ouiaSafe?: boolean;
36
40
  }
37
41
 
38
42
  export class FormSelect extends React.Component<FormSelectProps, { ouiaStateId: string }> {
@@ -8,7 +8,7 @@ import { InputGroup } 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
 
11
- export interface LoginFormProps extends React.HTMLProps<HTMLFormElement> {
11
+ export interface LoginFormProps extends Omit<React.HTMLProps<HTMLFormElement>, 'ref'> {
12
12
  /** Flag to indicate if the first dropdown item should not gain initial focus */
13
13
  noAutoFocus?: boolean;
14
14
  /** Additional classes added to the login main body's form */
@@ -59,6 +59,10 @@ export interface MenuProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'r
59
59
  isPlain?: boolean;
60
60
  /** Indicates if the menu should be srollable */
61
61
  isScrollable?: boolean;
62
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
63
+ ouiaId?: number | string;
64
+ /** 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. */
65
+ ouiaSafe?: boolean;
62
66
  }
63
67
 
64
68
  export interface MenuState {
@@ -27,6 +27,10 @@ export interface MenuToggleCheckboxProps
27
27
  children?: React.ReactNode;
28
28
  /** Id of the checkbox */
29
29
  id: string;
30
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
31
+ ouiaId?: number | string;
32
+ /** 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. */
33
+ ouiaSafe?: boolean;
30
34
  }
31
35
 
32
36
  export class MenuToggleCheckbox extends React.Component<MenuToggleCheckboxProps, { ouiaStateId: string }> {
@@ -72,6 +72,10 @@ export interface ModalProps extends React.HTMLProps<HTMLDivElement>, OUIAProps {
72
72
  variant?: 'small' | 'medium' | 'large' | 'default';
73
73
  /** Default width of the modal. */
74
74
  width?: number | string;
75
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
76
+ ouiaId?: number | string;
77
+ /** 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. */
78
+ ouiaSafe?: boolean;
75
79
  }
76
80
 
77
81
  export enum ModalVariant {
@@ -8,6 +8,8 @@ export interface ModalBoxCloseButtonProps extends OUIAProps {
8
8
  className?: string;
9
9
  /** A callback for when the close button is clicked. */
10
10
  onClose?: () => void;
11
+ /** Value to set the data-ouia-component-id.*/
12
+ ouiaId?: number | string;
11
13
  }
12
14
 
13
15
  export const ModalBoxCloseButton: React.FunctionComponent<ModalBoxCloseButtonProps> = ({
@@ -79,6 +79,10 @@ export interface ModalContentProps extends OUIAProps {
79
79
  variant?: 'small' | 'medium' | 'large' | 'default';
80
80
  /** Default width of the modal. */
81
81
  width?: number | string;
82
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
83
+ ouiaId?: number | string;
84
+ /** 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. */
85
+ ouiaSafe?: boolean;
82
86
  }
83
87
 
84
88
  export const ModalContent: React.FunctionComponent<ModalContentProps> = ({
@@ -36,6 +36,10 @@ export interface NavProps
36
36
  theme?: 'dark' | 'light';
37
37
  /** For horizontal navs */
38
38
  variant?: 'default' | 'horizontal' | 'tertiary' | 'horizontal-subnav';
39
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
40
+ ouiaId?: number | string;
41
+ /** 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. */
42
+ ouiaSafe?: boolean;
39
43
  }
40
44
 
41
45
  export interface NavContextProps {
@@ -32,6 +32,8 @@ export interface NavExpandableProps
32
32
  onExpand?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>, val: boolean) => void;
33
33
  /** Additional props added to the NavExpandable <button> */
34
34
  buttonProps?: any;
35
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
36
+ ouiaId?: number | string;
35
37
  }
36
38
 
37
39
  interface NavExpandableState {
@@ -34,6 +34,10 @@ export interface NavItemProps extends Omit<React.HTMLProps<HTMLAnchorElement>, '
34
34
  onShowFlyout?: () => void;
35
35
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
36
36
  removeFindDomNode?: boolean;
37
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
38
+ ouiaId?: number | string;
39
+ /** 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. */
40
+ ouiaSafe?: boolean;
37
41
  }
38
42
 
39
43
  export const NavItem: React.FunctionComponent<NavItemProps> = ({
@@ -49,6 +49,10 @@ export interface OptionsMenuProps
49
49
  menuAppendTo?: HTMLElement | (() => HTMLElement) | 'inline' | 'parent';
50
50
  /** @beta Opt-in for updated popper that does not use findDOMNode. */
51
51
  removeFindDomNode?: boolean;
52
+ /** Value to overwrite the randomly generated data-ouia-component-id.*/
53
+ ouiaId?: number | string;
54
+ /** 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. */
55
+ ouiaSafe?: boolean;
52
56
  }
53
57
 
54
58
  export const OptionsMenu: React.FunctionComponent<OptionsMenuProps> = ({
@@ -2,18 +2,9 @@ import * as React from 'react';
2
2
  import styles from '@patternfly/react-styles/css/components/OverflowMenu/overflow-menu';
3
3
  import { css } from '@patternfly/react-styles';
4
4
  import { OverflowMenuContext } from './OverflowMenuContext';
5
- import mdBreakpoint from '@patternfly/react-tokens/dist/esm/global_breakpoint_md';
6
- import lgBreakpoint from '@patternfly/react-tokens/dist/esm/global_breakpoint_lg';
7
- import xlBreakpoint from '@patternfly/react-tokens/dist/esm/global_breakpoint_xl';
8
- import xl2Breakpoint from '@patternfly/react-tokens/dist/esm/global_breakpoint_2xl';
9
- import { debounce, canUseDOM } from '../../helpers/util';
10
-
11
- const breakpoints = {
12
- md: mdBreakpoint,
13
- lg: lgBreakpoint,
14
- xl: xlBreakpoint,
15
- '2xl': xl2Breakpoint
16
- };
5
+ import { debounce } from '../../helpers/util';
6
+ import { globalWidthBreakpoints } from '../../helpers/constants';
7
+ import { getResizeObserver } from '../../helpers/resizeObserver';
17
8
 
18
9
  export interface OverflowMenuProps extends React.HTMLProps<HTMLDivElement> {
19
10
  /** Any elements that can be rendered in the menu */
@@ -21,11 +12,14 @@ export interface OverflowMenuProps extends React.HTMLProps<HTMLDivElement> {
21
12
  /** Additional classes added to the OverflowMenu. */
22
13
  className?: string;
23
14
  /** Indicates breakpoint at which to switch between horizontal menu and vertical dropdown */
24
- breakpoint: 'md' | 'lg' | 'xl' | '2xl';
15
+ breakpoint: 'sm' | 'md' | 'lg' | 'xl' | '2xl';
16
+ /** A container reference to base the specified breakpoint on instead of the viewport width. */
17
+ breakpointReference?: HTMLElement | (() => HTMLElement) | React.RefObject<any>;
25
18
  }
26
19
 
27
20
  export interface OverflowMenuState extends React.HTMLProps<HTMLDivElement> {
28
21
  isBelowBreakpoint: boolean;
22
+ breakpointRef: HTMLElement;
29
23
  }
30
24
 
31
25
  export class OverflowMenu extends React.Component<OverflowMenuProps, OverflowMenuState> {
@@ -33,40 +27,67 @@ export class OverflowMenu extends React.Component<OverflowMenuProps, OverflowMen
33
27
  constructor(props: OverflowMenuProps) {
34
28
  super(props);
35
29
  this.state = {
36
- isBelowBreakpoint: false
30
+ isBelowBreakpoint: false,
31
+ breakpointRef: undefined
37
32
  };
38
33
  }
39
34
 
35
+ observer: any = () => {};
36
+
37
+ getBreakpointRef() {
38
+ const { breakpointReference } = this.props;
39
+
40
+ if ((breakpointReference as React.RefObject<any>).current) {
41
+ return (breakpointReference as React.RefObject<any>).current;
42
+ } else if (typeof breakpointReference === 'function') {
43
+ return breakpointReference();
44
+ }
45
+ }
46
+
40
47
  componentDidMount() {
48
+ const reference = this.props.breakpointReference ? this.getBreakpointRef() : undefined;
49
+
50
+ this.setState({ breakpointRef: reference });
51
+ this.observer = getResizeObserver(reference, this.handleResizeWithDelay);
41
52
  this.handleResize();
42
- if (canUseDOM) {
43
- window.addEventListener('resize', this.handleResizeWithDelay);
53
+ }
54
+
55
+ componentDidUpdate(prevProps: Readonly<OverflowMenuProps>, prevState: Readonly<OverflowMenuState>): void {
56
+ const reference = this.props.breakpointReference ? this.getBreakpointRef() : undefined;
57
+
58
+ if (prevState.breakpointRef !== reference) {
59
+ // To remove any previous observer/event listener from componentDidMount before adding a new one
60
+ this.observer();
61
+ this.setState({ breakpointRef: reference });
62
+ this.observer = getResizeObserver(reference, this.handleResizeWithDelay);
63
+ this.handleResize();
44
64
  }
45
65
  }
46
66
 
47
67
  componentWillUnmount() {
48
- if (canUseDOM) {
49
- window.removeEventListener('resize', this.handleResizeWithDelay);
50
- }
68
+ this.observer();
51
69
  }
52
70
 
53
71
  handleResize = () => {
54
- const breakpointPx = breakpoints[this.props.breakpoint];
55
- if (!breakpointPx) {
72
+ const breakpointWidth = globalWidthBreakpoints[this.props.breakpoint];
73
+ if (!breakpointWidth) {
56
74
  // eslint-disable-next-line no-console
57
75
  console.error('OverflowMenu will not be visible without a valid breakpoint.');
58
76
  return;
59
77
  }
60
- const breakpointWidth = Number(breakpointPx.value.replace('px', ''));
61
- const isBelowBreakpoint = window.innerWidth < breakpointWidth;
62
- this.setState({ isBelowBreakpoint });
78
+
79
+ const relativeWidth = this.state.breakpointRef ? this.state.breakpointRef.clientWidth : window.innerWidth;
80
+ const isBelowBreakpoint = relativeWidth < breakpointWidth;
81
+ if (this.state.isBelowBreakpoint !== isBelowBreakpoint) {
82
+ this.setState({ isBelowBreakpoint });
83
+ }
63
84
  };
64
85
 
65
86
  handleResizeWithDelay = debounce(this.handleResize, 250);
66
87
 
67
88
  render() {
68
89
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
69
- const { className, breakpoint, children, ...props } = this.props;
90
+ const { className, breakpoint, children, breakpointReference, ...props } = this.props;
70
91
 
71
92
  return (
72
93
  <div {...props} className={css(styles.overflowMenu, className)}>
@@ -4,6 +4,7 @@ import { render, screen } from '@testing-library/react';
4
4
 
5
5
  import styles from '@patternfly/react-styles/css/components/OverflowMenu/overflow-menu';
6
6
  import { OverflowMenu } from '../OverflowMenu';
7
+ import * as getResizeObserver from '../../../helpers/resizeObserver';
7
8
 
8
9
  describe('OverflowMenu', () => {
9
10
  test('md', () => {
@@ -42,4 +43,41 @@ describe('OverflowMenu', () => {
42
43
 
43
44
  expect(myMock).toHaveBeenCalled();
44
45
  });
46
+
47
+ test('should call resizeObserver on undefined containerRefElement', () => {
48
+ const resizeObserver = jest.spyOn(getResizeObserver, 'getResizeObserver');
49
+
50
+ render(<OverflowMenu breakpoint={'md'} />);
51
+
52
+ expect(resizeObserver).toHaveBeenCalledWith(undefined, expect.any(Function));
53
+ });
54
+
55
+ test('should call resizeObserver on selector ref containerRefElement', () => {
56
+ const resizeObserver = jest.spyOn(getResizeObserver, 'getResizeObserver');
57
+
58
+ render(
59
+ <div id="selector-ref-test">
60
+ <OverflowMenu breakpointReference={() => document.getElementById('selector-ref-test')} breakpoint={'md'}>
61
+ <div>Selector ref test</div>
62
+ </OverflowMenu>
63
+ </div>
64
+ );
65
+
66
+ const containerRef = screen.getByText('Selector ref test').parentElement?.parentElement;
67
+
68
+ expect(resizeObserver).toHaveBeenCalledWith(containerRef, expect.any(Function));
69
+ });
70
+
71
+ test('should call resizeObserver on React ref containerRefElement', () => {
72
+ const resizeObserver = jest.spyOn(getResizeObserver, 'getResizeObserver');
73
+ const containerRef = React.createRef<HTMLDivElement>();
74
+
75
+ render(
76
+ <div ref={containerRef}>
77
+ <OverflowMenu breakpointReference={containerRef} breakpoint={'md'} />
78
+ </div>
79
+ );
80
+
81
+ expect(resizeObserver).toHaveBeenCalledWith(containerRef.current, expect.any(Function));
82
+ });
45
83
  });