@patternfly/react-core 5.2.0-prerelease.15 → 5.2.0-prerelease.17

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 (203) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/components/package.json +1 -1
  3. package/deprecated/package.json +1 -1
  4. package/dist/dynamic/components/AboutModal/package.json +1 -1
  5. package/dist/dynamic/components/Accordion/package.json +1 -1
  6. package/dist/dynamic/components/ActionList/package.json +1 -1
  7. package/dist/dynamic/components/Alert/package.json +1 -1
  8. package/dist/dynamic/components/Avatar/package.json +1 -1
  9. package/dist/dynamic/components/BackToTop/package.json +1 -1
  10. package/dist/dynamic/components/Backdrop/package.json +1 -1
  11. package/dist/dynamic/components/BackgroundImage/package.json +1 -1
  12. package/dist/dynamic/components/Badge/package.json +1 -1
  13. package/dist/dynamic/components/Banner/package.json +1 -1
  14. package/dist/dynamic/components/Brand/package.json +1 -1
  15. package/dist/dynamic/components/Breadcrumb/package.json +1 -1
  16. package/dist/dynamic/components/Button/package.json +1 -1
  17. package/dist/dynamic/components/CalendarMonth/package.json +1 -1
  18. package/dist/dynamic/components/Card/package.json +1 -1
  19. package/dist/dynamic/components/Checkbox/package.json +1 -1
  20. package/dist/dynamic/components/Chip/package.json +1 -1
  21. package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
  22. package/dist/dynamic/components/CodeBlock/package.json +1 -1
  23. package/dist/dynamic/components/DataList/package.json +1 -1
  24. package/dist/dynamic/components/DatePicker/package.json +1 -1
  25. package/dist/dynamic/components/DescriptionList/package.json +1 -1
  26. package/dist/dynamic/components/Divider/package.json +1 -1
  27. package/dist/dynamic/components/DragDrop/package.json +1 -1
  28. package/dist/dynamic/components/Drawer/package.json +1 -1
  29. package/dist/dynamic/components/Dropdown/package.json +1 -1
  30. package/dist/dynamic/components/DualListSelector/package.json +1 -1
  31. package/dist/dynamic/components/EmptyState/package.json +1 -1
  32. package/dist/dynamic/components/ExpandableSection/package.json +1 -1
  33. package/dist/dynamic/components/FileUpload/package.json +1 -1
  34. package/dist/dynamic/components/Form/package.json +1 -1
  35. package/dist/dynamic/components/FormSelect/package.json +1 -1
  36. package/dist/dynamic/components/HelperText/package.json +1 -1
  37. package/dist/dynamic/components/Hint/package.json +1 -1
  38. package/dist/dynamic/components/Icon/package.json +1 -1
  39. package/dist/dynamic/components/InputGroup/package.json +1 -1
  40. package/dist/dynamic/components/JumpLinks/package.json +1 -1
  41. package/dist/dynamic/components/Label/package.json +1 -1
  42. package/dist/dynamic/components/List/package.json +1 -1
  43. package/dist/dynamic/components/LoginPage/package.json +1 -1
  44. package/dist/dynamic/components/Masthead/package.json +1 -1
  45. package/dist/dynamic/components/Menu/package.json +1 -1
  46. package/dist/dynamic/components/MenuToggle/package.json +1 -1
  47. package/dist/dynamic/components/Modal/package.json +1 -1
  48. package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
  49. package/dist/dynamic/components/Nav/package.json +1 -1
  50. package/dist/dynamic/components/NotificationBadge/package.json +1 -1
  51. package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
  52. package/dist/dynamic/components/NumberInput/package.json +1 -1
  53. package/dist/dynamic/components/OverflowMenu/package.json +1 -1
  54. package/dist/dynamic/components/Page/package.json +1 -1
  55. package/dist/dynamic/components/Pagination/package.json +1 -1
  56. package/dist/dynamic/components/Panel/package.json +1 -1
  57. package/dist/dynamic/components/Popover/package.json +1 -1
  58. package/dist/dynamic/components/Progress/package.json +1 -1
  59. package/dist/dynamic/components/ProgressStepper/package.json +1 -1
  60. package/dist/dynamic/components/Radio/package.json +1 -1
  61. package/dist/dynamic/components/SearchInput/package.json +1 -1
  62. package/dist/dynamic/components/Select/package.json +1 -1
  63. package/dist/dynamic/components/Sidebar/package.json +1 -1
  64. package/dist/dynamic/components/SimpleList/package.json +1 -1
  65. package/dist/dynamic/components/Skeleton/package.json +1 -1
  66. package/dist/dynamic/components/SkipToContent/package.json +1 -1
  67. package/dist/dynamic/components/Slider/package.json +1 -1
  68. package/dist/dynamic/components/Spinner/package.json +1 -1
  69. package/dist/dynamic/components/Switch/package.json +1 -1
  70. package/dist/dynamic/components/Tabs/package.json +1 -1
  71. package/dist/dynamic/components/Text/package.json +1 -1
  72. package/dist/dynamic/components/TextArea/package.json +1 -1
  73. package/dist/dynamic/components/TextInput/package.json +1 -1
  74. package/dist/dynamic/components/TextInputGroup/package.json +1 -1
  75. package/dist/dynamic/components/Tile/package.json +1 -1
  76. package/dist/dynamic/components/TimePicker/package.json +1 -1
  77. package/dist/dynamic/components/Timestamp/package.json +1 -1
  78. package/dist/dynamic/components/Title/package.json +1 -1
  79. package/dist/dynamic/components/ToggleGroup/package.json +1 -1
  80. package/dist/dynamic/components/Toolbar/package.json +1 -1
  81. package/dist/dynamic/components/Tooltip/package.json +1 -1
  82. package/dist/dynamic/components/TreeView/package.json +1 -1
  83. package/dist/dynamic/components/Truncate/package.json +1 -1
  84. package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
  85. package/dist/dynamic/components/Wizard/package.json +1 -1
  86. package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
  87. package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
  88. package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
  89. package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
  90. package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
  91. package/dist/dynamic/deprecated/components/Select/package.json +1 -1
  92. package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
  93. package/dist/dynamic/deprecated/components/package.json +1 -1
  94. package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
  95. package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
  96. package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
  97. package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
  98. package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
  99. package/dist/dynamic/helpers/constants/package.json +1 -1
  100. package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
  101. package/dist/dynamic/helpers/favorites/package.json +1 -1
  102. package/dist/dynamic/helpers/fileUtils/package.json +1 -1
  103. package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
  104. package/dist/dynamic/helpers/package.json +1 -1
  105. package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
  106. package/dist/dynamic/helpers/typeUtils/package.json +1 -1
  107. package/dist/dynamic/helpers/useInterval/package.json +1 -1
  108. package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
  109. package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
  110. package/dist/dynamic/helpers/util/package.json +1 -1
  111. package/dist/dynamic/layouts/Bullseye/package.json +1 -1
  112. package/dist/dynamic/layouts/Flex/package.json +1 -1
  113. package/dist/dynamic/layouts/Gallery/package.json +1 -1
  114. package/dist/dynamic/layouts/Grid/package.json +1 -1
  115. package/dist/dynamic/layouts/Level/package.json +1 -1
  116. package/dist/dynamic/layouts/Split/package.json +1 -1
  117. package/dist/dynamic/layouts/Stack/package.json +1 -1
  118. package/dist/dynamic/next/components/package.json +1 -1
  119. package/dist/esm/components/Chip/Chip.d.ts.map +1 -1
  120. package/dist/esm/components/Chip/Chip.js +2 -2
  121. package/dist/esm/components/Chip/Chip.js.map +1 -1
  122. package/dist/esm/components/Drawer/DrawerPanelContent.js +4 -4
  123. package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
  124. package/dist/esm/components/Dropdown/Dropdown.d.ts +2 -0
  125. package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
  126. package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
  127. package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
  128. package/dist/esm/components/Menu/Menu.js +2 -1
  129. package/dist/esm/components/Menu/Menu.js.map +1 -1
  130. package/dist/esm/components/Menu/MenuContainer.d.ts +2 -0
  131. package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
  132. package/dist/esm/components/Menu/MenuContainer.js.map +1 -1
  133. package/dist/esm/components/Nav/NavList.js +3 -3
  134. package/dist/esm/components/Nav/NavList.js.map +1 -1
  135. package/dist/esm/components/Select/Select.d.ts +2 -0
  136. package/dist/esm/components/Select/Select.d.ts.map +1 -1
  137. package/dist/esm/components/Select/Select.js.map +1 -1
  138. package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
  139. package/dist/esm/components/Slider/Slider.js +2 -1
  140. package/dist/esm/components/Slider/Slider.js.map +1 -1
  141. package/dist/esm/components/Tabs/Tabs.js +3 -3
  142. package/dist/esm/components/Tabs/Tabs.js.map +1 -1
  143. package/dist/esm/helpers/Popper/Popper.d.ts +2 -1
  144. package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
  145. package/dist/esm/helpers/Popper/Popper.js +3 -13
  146. package/dist/esm/helpers/Popper/Popper.js.map +1 -1
  147. package/dist/esm/helpers/util.d.ts +9 -0
  148. package/dist/esm/helpers/util.d.ts.map +1 -1
  149. package/dist/esm/helpers/util.js +18 -0
  150. package/dist/esm/helpers/util.js.map +1 -1
  151. package/dist/js/components/Chip/Chip.d.ts.map +1 -1
  152. package/dist/js/components/Chip/Chip.js +2 -2
  153. package/dist/js/components/Chip/Chip.js.map +1 -1
  154. package/dist/js/components/Drawer/DrawerPanelContent.js +3 -3
  155. package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
  156. package/dist/js/components/Dropdown/Dropdown.d.ts +2 -0
  157. package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
  158. package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
  159. package/dist/js/components/Menu/Menu.d.ts.map +1 -1
  160. package/dist/js/components/Menu/Menu.js +2 -1
  161. package/dist/js/components/Menu/Menu.js.map +1 -1
  162. package/dist/js/components/Menu/MenuContainer.d.ts +2 -0
  163. package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
  164. package/dist/js/components/Menu/MenuContainer.js.map +1 -1
  165. package/dist/js/components/Nav/NavList.js +2 -2
  166. package/dist/js/components/Nav/NavList.js.map +1 -1
  167. package/dist/js/components/Select/Select.d.ts +2 -0
  168. package/dist/js/components/Select/Select.d.ts.map +1 -1
  169. package/dist/js/components/Select/Select.js.map +1 -1
  170. package/dist/js/components/Slider/Slider.d.ts.map +1 -1
  171. package/dist/js/components/Slider/Slider.js +2 -1
  172. package/dist/js/components/Slider/Slider.js.map +1 -1
  173. package/dist/js/components/Tabs/Tabs.js +2 -2
  174. package/dist/js/components/Tabs/Tabs.js.map +1 -1
  175. package/dist/js/helpers/Popper/Popper.d.ts +2 -1
  176. package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
  177. package/dist/js/helpers/Popper/Popper.js +5 -16
  178. package/dist/js/helpers/Popper/Popper.js.map +1 -1
  179. package/dist/js/helpers/util.d.ts +9 -0
  180. package/dist/js/helpers/util.d.ts.map +1 -1
  181. package/dist/js/helpers/util.js +20 -1
  182. package/dist/js/helpers/util.js.map +1 -1
  183. package/dist/umd/react-core.min.js +1 -1
  184. package/helpers/package.json +1 -1
  185. package/layouts/package.json +1 -1
  186. package/next/package.json +1 -1
  187. package/package.json +3 -3
  188. package/src/components/Chip/Chip.tsx +2 -1
  189. package/src/components/Chip/__tests__/Chip.test.tsx +249 -32
  190. package/src/components/Chip/__tests__/ChipGroup.test.tsx +288 -61
  191. package/src/components/Chip/__tests__/__snapshots__/Chip.test.tsx.snap +9 -209
  192. package/src/components/Chip/__tests__/__snapshots__/ChipGroup.test.tsx.snap +2 -313
  193. package/src/components/Drawer/DrawerPanelContent.tsx +4 -4
  194. package/src/components/Dropdown/Dropdown.tsx +2 -0
  195. package/src/components/Menu/Menu.tsx +2 -1
  196. package/src/components/Menu/MenuContainer.tsx +2 -0
  197. package/src/components/Nav/NavList.tsx +3 -3
  198. package/src/components/Select/Select.tsx +2 -0
  199. package/src/components/Slider/Slider.tsx +2 -1
  200. package/src/components/Tabs/Tabs.tsx +3 -3
  201. package/src/helpers/Popper/Popper.tsx +6 -17
  202. package/src/helpers/__mocks__/util.ts +2 -0
  203. package/src/helpers/util.ts +22 -0
@@ -1,6 +1,6 @@
1
1
  // Jest Snapshot v1, https://goo.gl/fbAQLP
2
2
 
3
- exports[`ChipGroup chip group default 1`] = `
3
+ exports[`chip group renders to match snapshot 1`] = `
4
4
  <DocumentFragment>
5
5
  <div
6
6
  aria-label="Chip group category"
@@ -20,321 +20,10 @@ exports[`ChipGroup chip group default 1`] = `
20
20
  <li
21
21
  class="pf-v5-c-chip-group__list-item"
22
22
  >
23
- <div
24
- class="pf-v5-c-chip"
25
- data-ouia-component-id="OUIA-Generated-Chip-1"
26
- data-ouia-component-type="PF5/Chip"
27
- data-ouia-safe="true"
28
- >
29
- <span
30
- class="pf-v5-c-chip__content"
31
- >
32
- <span
33
- class="pf-v5-c-chip__text"
34
- id="pf-random-id-1"
35
- >
36
- 1.1
37
- </span>
38
- </span>
39
- <span
40
- class="pf-v5-c-chip__actions"
41
- >
42
- <button
43
- aria-disabled="false"
44
- aria-label="close"
45
- aria-labelledby="remove_pf-random-id-1 pf-random-id-1"
46
- class="pf-v5-c-button pf-m-plain"
47
- data-ouia-component-id="close"
48
- data-ouia-component-type="PF5/Button"
49
- data-ouia-safe="true"
50
- id="remove_pf-random-id-1"
51
- type="button"
52
- >
53
- <svg
54
- aria-hidden="true"
55
- class="pf-v5-svg"
56
- fill="currentColor"
57
- height="1em"
58
- role="img"
59
- viewBox="0 0 352 512"
60
- width="1em"
61
- >
62
- <path
63
- 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"
64
- />
65
- </svg>
66
- </button>
67
- </span>
68
- </div>
23
+ chips
69
24
  </li>
70
25
  </ul>
71
26
  </div>
72
27
  </div>
73
28
  </DocumentFragment>
74
29
  `;
75
-
76
- exports[`ChipGroup chip group with category 1`] = `
77
- <DocumentFragment>
78
- <div
79
- aria-labelledby="pf-random-id-2"
80
- class="pf-v5-c-chip-group pf-m-category"
81
- data-ouia-component-type="PF5/ChipGroup"
82
- data-ouia-safe="true"
83
- role="group"
84
- >
85
- <div
86
- class="pf-v5-c-chip-group__main"
87
- >
88
- <span
89
- class="pf-v5-c-chip-group__label"
90
- id="pf-random-id-2"
91
- >
92
- category
93
- </span>
94
- <ul
95
- aria-labelledby="pf-random-id-2"
96
- class="pf-v5-c-chip-group__list"
97
- role="list"
98
- >
99
- <li
100
- class="pf-v5-c-chip-group__list-item"
101
- >
102
- <div
103
- class="pf-v5-c-chip"
104
- data-ouia-component-id="OUIA-Generated-Chip-2"
105
- data-ouia-component-type="PF5/Chip"
106
- data-ouia-safe="true"
107
- >
108
- <span
109
- class="pf-v5-c-chip__content"
110
- >
111
- <span
112
- class="pf-v5-c-chip__text"
113
- id="pf-random-id-3"
114
- >
115
- 1.1
116
- </span>
117
- </span>
118
- <span
119
- class="pf-v5-c-chip__actions"
120
- >
121
- <button
122
- aria-disabled="false"
123
- aria-label="close"
124
- aria-labelledby="remove_pf-random-id-3 pf-random-id-3"
125
- class="pf-v5-c-button pf-m-plain"
126
- data-ouia-component-id="close"
127
- data-ouia-component-type="PF5/Button"
128
- data-ouia-safe="true"
129
- id="remove_pf-random-id-3"
130
- type="button"
131
- >
132
- <svg
133
- aria-hidden="true"
134
- class="pf-v5-svg"
135
- fill="currentColor"
136
- height="1em"
137
- role="img"
138
- viewBox="0 0 352 512"
139
- width="1em"
140
- >
141
- <path
142
- 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"
143
- />
144
- </svg>
145
- </button>
146
- </span>
147
- </div>
148
- </li>
149
- </ul>
150
- </div>
151
- </div>
152
- </DocumentFragment>
153
- `;
154
-
155
- exports[`ChipGroup chip group with category and tooltip 1`] = `
156
- <DocumentFragment>
157
- <div
158
- aria-labelledby="pf-random-id-12"
159
- class="pf-v5-c-chip-group pf-m-category"
160
- data-ouia-component-type="PF5/ChipGroup"
161
- data-ouia-safe="true"
162
- role="group"
163
- >
164
- <div
165
- class="pf-v5-c-chip-group__main"
166
- >
167
- <span
168
- class="pf-v5-c-chip-group__label"
169
- id="pf-random-id-12"
170
- >
171
- A very long category name
172
- </span>
173
- <ul
174
- aria-labelledby="pf-random-id-12"
175
- class="pf-v5-c-chip-group__list"
176
- role="list"
177
- >
178
- <li
179
- class="pf-v5-c-chip-group__list-item"
180
- >
181
- <div
182
- class="pf-v5-c-chip"
183
- data-ouia-component-id="OUIA-Generated-Chip-9"
184
- data-ouia-component-type="PF5/Chip"
185
- data-ouia-safe="true"
186
- >
187
- <span
188
- class="pf-v5-c-chip__content"
189
- >
190
- <span
191
- class="pf-v5-c-chip__text"
192
- id="pf-random-id-13"
193
- >
194
- 1.1
195
- </span>
196
- </span>
197
- <span
198
- class="pf-v5-c-chip__actions"
199
- >
200
- <button
201
- aria-disabled="false"
202
- aria-label="close"
203
- aria-labelledby="remove_pf-random-id-13 pf-random-id-13"
204
- class="pf-v5-c-button pf-m-plain"
205
- data-ouia-component-id="close"
206
- data-ouia-component-type="PF5/Button"
207
- data-ouia-safe="true"
208
- id="remove_pf-random-id-13"
209
- type="button"
210
- >
211
- <svg
212
- aria-hidden="true"
213
- class="pf-v5-svg"
214
- fill="currentColor"
215
- height="1em"
216
- role="img"
217
- viewBox="0 0 352 512"
218
- width="1em"
219
- >
220
- <path
221
- 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"
222
- />
223
- </svg>
224
- </button>
225
- </span>
226
- </div>
227
- </li>
228
- </ul>
229
- </div>
230
- </div>
231
- </DocumentFragment>
232
- `;
233
-
234
- exports[`ChipGroup chip group with closable category 1`] = `
235
- <DocumentFragment>
236
- <div
237
- aria-labelledby="pf-random-id-4"
238
- class="pf-v5-c-chip-group pf-m-category"
239
- data-ouia-component-type="PF5/ChipGroup"
240
- data-ouia-safe="true"
241
- role="group"
242
- >
243
- <div
244
- class="pf-v5-c-chip-group__main"
245
- >
246
- <span
247
- class="pf-v5-c-chip-group__label"
248
- id="pf-random-id-4"
249
- >
250
- category
251
- </span>
252
- <ul
253
- aria-labelledby="pf-random-id-4"
254
- class="pf-v5-c-chip-group__list"
255
- role="list"
256
- >
257
- <li
258
- class="pf-v5-c-chip-group__list-item"
259
- >
260
- <div
261
- class="pf-v5-c-chip"
262
- data-ouia-component-id="OUIA-Generated-Chip-3"
263
- data-ouia-component-type="PF5/Chip"
264
- data-ouia-safe="true"
265
- >
266
- <span
267
- class="pf-v5-c-chip__content"
268
- >
269
- <span
270
- class="pf-v5-c-chip__text"
271
- id="pf-random-id-5"
272
- >
273
- 1.1
274
- </span>
275
- </span>
276
- <span
277
- class="pf-v5-c-chip__actions"
278
- >
279
- <button
280
- aria-disabled="false"
281
- aria-label="close"
282
- aria-labelledby="remove_pf-random-id-5 pf-random-id-5"
283
- class="pf-v5-c-button pf-m-plain"
284
- data-ouia-component-id="close"
285
- data-ouia-component-type="PF5/Button"
286
- data-ouia-safe="true"
287
- id="remove_pf-random-id-5"
288
- type="button"
289
- >
290
- <svg
291
- aria-hidden="true"
292
- class="pf-v5-svg"
293
- fill="currentColor"
294
- height="1em"
295
- role="img"
296
- viewBox="0 0 352 512"
297
- width="1em"
298
- >
299
- <path
300
- 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"
301
- />
302
- </svg>
303
- </button>
304
- </span>
305
- </div>
306
- </li>
307
- </ul>
308
- </div>
309
- <div
310
- class="pf-v5-c-chip-group__close"
311
- >
312
- <button
313
- aria-disabled="false"
314
- aria-label="Close chip group"
315
- aria-labelledby="remove_group_pf-random-id-4 pf-random-id-4"
316
- class="pf-v5-c-button pf-m-plain"
317
- data-ouia-component-id="Close chip group"
318
- data-ouia-component-type="PF5/Button"
319
- data-ouia-safe="true"
320
- id="remove_group_pf-random-id-4"
321
- type="button"
322
- >
323
- <svg
324
- aria-hidden="true"
325
- class="pf-v5-svg"
326
- fill="currentColor"
327
- height="1em"
328
- role="img"
329
- viewBox="0 0 512 512"
330
- width="1em"
331
- >
332
- <path
333
- d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z"
334
- />
335
- </svg>
336
- </button>
337
- </div>
338
- </div>
339
- </DocumentFragment>
340
- `;
@@ -2,7 +2,7 @@ import * as React from 'react';
2
2
  import styles from '@patternfly/react-styles/css/components/Drawer/drawer';
3
3
  import { css } from '@patternfly/react-styles';
4
4
  import { DrawerColorVariant, DrawerContext } from './Drawer';
5
- import { formatBreakpointMods } from '../../helpers/util';
5
+ import { formatBreakpointMods, getLanguageDirection } from '../../helpers/util';
6
6
  import { GenerateId } from '../../helpers/GenerateId/GenerateId';
7
7
  import { FocusTrap } from '../../helpers/FocusTrap/FocusTrap';
8
8
  import cssPanelMdFlexBasis from '@patternfly/react-tokens/dist/esm/c_drawer__panel_md_FlexBasis';
@@ -111,7 +111,7 @@ export const DrawerPanelContent: React.FunctionComponent<DrawerPanelContentProps
111
111
  const calcValueNow = () => {
112
112
  let splitterPos;
113
113
  let drawerSize;
114
- const isRTL = window.getComputedStyle(panel.current).getPropertyValue('direction') === 'rtl';
114
+ const isRTL = getLanguageDirection(panel.current) === 'rtl';
115
115
 
116
116
  if (isInline && (position === 'end' || position === 'right')) {
117
117
  if (isRTL) {
@@ -198,7 +198,7 @@ export const DrawerPanelContent: React.FunctionComponent<DrawerPanelContentProps
198
198
  };
199
199
 
200
200
  const handleControlMove = (e: MouseEvent | TouchEvent, controlPosition: number) => {
201
- const isRTL = window.getComputedStyle(panel.current).getPropertyValue('direction') === 'rtl';
201
+ const isRTL = getLanguageDirection(panel.current) === 'rtl';
202
202
 
203
203
  e.stopPropagation();
204
204
  if (!isResizing) {
@@ -264,7 +264,7 @@ export const DrawerPanelContent: React.FunctionComponent<DrawerPanelContentProps
264
264
  const callbackMouseUp = React.useCallback(handleMouseup, []);
265
265
 
266
266
  const handleKeys = (e: React.KeyboardEvent) => {
267
- const isRTL = window.getComputedStyle(panel.current).getPropertyValue('direction') === 'rtl';
267
+ const isRTL = getLanguageDirection(panel.current) === 'rtl';
268
268
 
269
269
  const key = e.key;
270
270
  if (
@@ -19,6 +19,8 @@ export interface DropdownPopperProps {
19
19
  enableFlip?: boolean;
20
20
  /** The container to append the popper to. Defaults to 'inline'. */
21
21
  appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
22
+ /** Flag to prevent the popper from overflowing its container and becoming partially obscured. */
23
+ preventOverflow?: boolean;
22
24
  }
23
25
 
24
26
  export interface DropdownToggleProps {
@@ -311,7 +311,8 @@ class MenuBase extends React.Component<MenuProps, MenuState> {
311
311
  noHorizontalArrowHandling={
312
312
  document.activeElement &&
313
313
  (document.activeElement.classList.contains(breadcrumbStyles.breadcrumbLink) ||
314
- document.activeElement.classList.contains(dropdownStyles.dropdownToggle))
314
+ document.activeElement.classList.contains(dropdownStyles.dropdownToggle) ||
315
+ document.activeElement.tagName === 'INPUT')
315
316
  }
316
317
  noEnterHandling
317
318
  noSpaceHandling
@@ -14,6 +14,8 @@ export interface MenuPopperProps {
14
14
  maxWidth?: string | 'trigger';
15
15
  /** Enable to flip the popper when it reaches the boundary */
16
16
  enableFlip?: boolean;
17
+ /** Flag to prevent the popper from overflowing its container and becoming partially obscured. */
18
+ preventOverflow?: boolean;
17
19
  }
18
20
  export interface MenuContainerProps {
19
21
  /** Menu to be rendered */
@@ -3,7 +3,7 @@ import styles from '@patternfly/react-styles/css/components/Nav/nav';
3
3
  import { css } from '@patternfly/react-styles';
4
4
  import AngleLeftIcon from '@patternfly/react-icons/dist/esm/icons/angle-left-icon';
5
5
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
6
- import { isElementInView } from '../../helpers/util';
6
+ import { getLanguageDirection, isElementInView } from '../../helpers/util';
7
7
  import { NavContext } from './Nav';
8
8
  import { PageSidebarContext } from '../Page/PageSidebar';
9
9
  import { getResizeObserver } from '../../helpers/resizeObserver';
@@ -112,7 +112,7 @@ class NavList extends React.Component<NavListProps> {
112
112
 
113
113
  componentDidMount() {
114
114
  this.observer = getResizeObserver(this.navList.current, this.handleScrollButtons, true);
115
- this.direction = getComputedStyle(this.navList.current).getPropertyValue('direction');
115
+ this.direction = getLanguageDirection(this.navList.current);
116
116
  this.handleScrollButtons();
117
117
  }
118
118
 
@@ -121,7 +121,7 @@ class NavList extends React.Component<NavListProps> {
121
121
  }
122
122
 
123
123
  componentDidUpdate() {
124
- this.direction = getComputedStyle(this.navList.current).getPropertyValue('direction');
124
+ this.direction = getLanguageDirection(this.navList.current);
125
125
  }
126
126
 
127
127
  render() {
@@ -25,6 +25,8 @@ export interface SelectPopperProps {
25
25
  * appendTo={document.getElementById('target')}
26
26
  */
27
27
  appendTo?: HTMLElement | (() => HTMLElement) | 'inline';
28
+ /** Flag to prevent the popper from overflowing its container and becoming partially obscured. */
29
+ preventOverflow?: boolean;
28
30
  }
29
31
 
30
32
  export interface SelectToggleProps {
@@ -8,6 +8,7 @@ import { TextInput } from '../TextInput';
8
8
  import { Tooltip } from '../Tooltip';
9
9
  import cssSliderValue from '@patternfly/react-tokens/dist/esm/c_slider_value';
10
10
  import cssFormControlWidthChars from '@patternfly/react-tokens/dist/esm/c_slider__value_c_form_control_width_chars';
11
+ import { getLanguageDirection } from '../../helpers/util';
11
12
 
12
13
  /** Properties for creating custom steps in a slider. These properties should be passed in as
13
14
  * an object within an array to the slider component's customSteps property.
@@ -125,7 +126,7 @@ export const Slider: React.FunctionComponent<SliderProps> = ({
125
126
  let isRTL: boolean;
126
127
 
127
128
  React.useEffect(() => {
128
- isRTL = window.getComputedStyle(sliderRailRef.current).getPropertyValue('direction') === 'rtl';
129
+ isRTL = getLanguageDirection(sliderRailRef.current) === 'rtl';
129
130
  });
130
131
 
131
132
  React.useEffect(() => {
@@ -6,7 +6,7 @@ import { PickOptional } from '../../helpers/typeUtils';
6
6
  import AngleLeftIcon from '@patternfly/react-icons/dist/esm/icons/angle-left-icon';
7
7
  import AngleRightIcon from '@patternfly/react-icons/dist/esm/icons/angle-right-icon';
8
8
  import PlusIcon from '@patternfly/react-icons/dist/esm/icons/plus-icon';
9
- import { getUniqueId, isElementInView, formatBreakpointMods } from '../../helpers/util';
9
+ import { getUniqueId, isElementInView, formatBreakpointMods, getLanguageDirection } from '../../helpers/util';
10
10
  import { TabContent } from './TabContent';
11
11
  import { TabProps } from './Tab';
12
12
  import { TabsContextProvider } from './TabsContext';
@@ -333,7 +333,7 @@ class Tabs extends React.Component<TabsProps, TabsState> {
333
333
  if (canUseDOM) {
334
334
  window.addEventListener('resize', this.handleScrollButtons, false);
335
335
  }
336
- this.direction = getComputedStyle(this.tabList.current).getPropertyValue('direction');
336
+ this.direction = getLanguageDirection(this.tabList.current);
337
337
  // call the handle resize function to check if scroll buttons should be shown
338
338
  this.handleScrollButtons();
339
339
  }
@@ -381,7 +381,7 @@ class Tabs extends React.Component<TabsProps, TabsState> {
381
381
  this.setState({ showScrollButtons: false });
382
382
  }
383
383
 
384
- this.direction = getComputedStyle(this.tabList.current).getPropertyValue('direction');
384
+ this.direction = getLanguageDirection(this.tabList.current);
385
385
  }
386
386
 
387
387
  render() {
@@ -5,6 +5,7 @@ import { Placement, Modifier } from './thirdparty/popper-core';
5
5
  import { clearTimeouts } from '../util';
6
6
  import { css } from '@patternfly/react-styles';
7
7
  import '@patternfly/react-styles/css/components/Popper/Popper.css';
8
+ import { getLanguageDirection } from '../util';
8
9
 
9
10
  const hash = {
10
11
  left: 'right',
@@ -45,21 +46,6 @@ const getOppositePlacement = (placement: Placement): any =>
45
46
  export const getOpacityTransition = (animationDuration: number) =>
46
47
  `opacity ${animationDuration}ms cubic-bezier(.54, 1.5, .38, 1.11)`;
47
48
 
48
- export const getLanguageDirection = (targetElement: HTMLElement) => {
49
- const defaultDirection = 'ltr';
50
- let direction = defaultDirection;
51
-
52
- if (targetElement) {
53
- direction = getComputedStyle(targetElement).getPropertyValue('direction');
54
- }
55
-
56
- if (['ltr', 'rtl'].includes(direction)) {
57
- return direction as 'ltr' | 'rtl';
58
- }
59
-
60
- return defaultDirection;
61
- };
62
-
63
49
  export interface PopperProps {
64
50
  /**
65
51
  * Trigger reference element to which the popper is relatively placed to.
@@ -186,6 +172,8 @@ export interface PopperProps {
186
172
  * Lifecycle function invoked when the popper has fully transitioned in.
187
173
  */
188
174
  onShown?: () => void;
175
+ /** Flag to prevent the popper from overflowing its container and becoming partially obscured. */
176
+ preventOverflow?: boolean;
189
177
  }
190
178
 
191
179
  export const Popper: React.FunctionComponent<PopperProps> = ({
@@ -224,7 +212,8 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
224
212
  onHide = () => {},
225
213
  onMount = () => {},
226
214
  onShow = () => {},
227
- onShown = () => {}
215
+ onShown = () => {},
216
+ preventOverflow = false
228
217
  }) => {
229
218
  const [triggerElement, setTriggerElement] = React.useState(null);
230
219
  const [refElement, setRefElement] = React.useState<HTMLElement>(null);
@@ -436,7 +425,7 @@ export const Popper: React.FunctionComponent<PopperProps> = ({
436
425
  },
437
426
  {
438
427
  name: 'preventOverflow',
439
- enabled: false
428
+ enabled: preventOverflow
440
429
  },
441
430
  {
442
431
  // adds attribute [data-popper-reference-hidden] to the popper element which can be used to hide it using CSS
@@ -1,3 +1,5 @@
1
1
  export const getUniqueId = () => 'unique_id_mock';
2
2
 
3
3
  export const clearTimeouts = () => {};
4
+
5
+ export const getLanguageDirection = () => 'ltr';
@@ -522,3 +522,25 @@ export const clearTimeouts = (timeoutRefs: React.RefObject<any>[]) => {
522
522
  }
523
523
  });
524
524
  };
525
+
526
+ /**
527
+ * Helper function to get the language direction of a given element, useful for figuring out if left-to-right
528
+ * or right-to-left specific logic should be applied.
529
+ *
530
+ * @param {HTMLElement} targetElement - Element the helper will get the language direction of
531
+ * @param {'ltr' | 'rtl'} defaultDirection - Language direction to assume if one can't be determined, defaults to 'ltr'
532
+ * @returns {'ltr' | 'rtl'} - The language direction of the target element
533
+ */
534
+ export const getLanguageDirection = (targetElement: HTMLElement, defaultDirection: 'ltr' | 'rtl' = 'ltr') => {
535
+ if (!targetElement) {
536
+ return defaultDirection;
537
+ }
538
+
539
+ const computedDirection = getComputedStyle(targetElement).getPropertyValue('direction');
540
+
541
+ if (['ltr', 'rtl'].includes(computedDirection)) {
542
+ return computedDirection as 'ltr' | 'rtl';
543
+ }
544
+
545
+ return defaultDirection;
546
+ };