@patternfly/react-core 5.2.0-prerelease.16 → 5.2.0-prerelease.18
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.
- package/CHANGELOG.md +13 -0
- package/components/package.json +1 -1
- package/deprecated/package.json +1 -1
- package/dist/dynamic/components/AboutModal/package.json +1 -1
- package/dist/dynamic/components/Accordion/package.json +1 -1
- package/dist/dynamic/components/ActionList/package.json +1 -1
- package/dist/dynamic/components/Alert/package.json +1 -1
- package/dist/dynamic/components/Avatar/package.json +1 -1
- package/dist/dynamic/components/BackToTop/package.json +1 -1
- package/dist/dynamic/components/Backdrop/package.json +1 -1
- package/dist/dynamic/components/BackgroundImage/package.json +1 -1
- package/dist/dynamic/components/Badge/package.json +1 -1
- package/dist/dynamic/components/Banner/package.json +1 -1
- package/dist/dynamic/components/Brand/package.json +1 -1
- package/dist/dynamic/components/Breadcrumb/package.json +1 -1
- package/dist/dynamic/components/Button/package.json +1 -1
- package/dist/dynamic/components/CalendarMonth/package.json +1 -1
- package/dist/dynamic/components/Card/package.json +1 -1
- package/dist/dynamic/components/Checkbox/package.json +1 -1
- package/dist/dynamic/components/Chip/package.json +1 -1
- package/dist/dynamic/components/ClipboardCopy/package.json +1 -1
- package/dist/dynamic/components/CodeBlock/package.json +1 -1
- package/dist/dynamic/components/DataList/package.json +1 -1
- package/dist/dynamic/components/DatePicker/package.json +1 -1
- package/dist/dynamic/components/DescriptionList/package.json +1 -1
- package/dist/dynamic/components/Divider/package.json +1 -1
- package/dist/dynamic/components/DragDrop/package.json +1 -1
- package/dist/dynamic/components/Drawer/package.json +1 -1
- package/dist/dynamic/components/Dropdown/package.json +1 -1
- package/dist/dynamic/components/DualListSelector/package.json +1 -1
- package/dist/dynamic/components/EmptyState/package.json +1 -1
- package/dist/dynamic/components/ExpandableSection/package.json +1 -1
- package/dist/dynamic/components/FileUpload/package.json +1 -1
- package/dist/dynamic/components/Form/package.json +1 -1
- package/dist/dynamic/components/FormSelect/package.json +1 -1
- package/dist/dynamic/components/HelperText/package.json +1 -1
- package/dist/dynamic/components/Hint/package.json +1 -1
- package/dist/dynamic/components/Icon/package.json +1 -1
- package/dist/dynamic/components/InputGroup/package.json +1 -1
- package/dist/dynamic/components/JumpLinks/package.json +1 -1
- package/dist/dynamic/components/Label/package.json +1 -1
- package/dist/dynamic/components/List/package.json +1 -1
- package/dist/dynamic/components/LoginPage/package.json +1 -1
- package/dist/dynamic/components/Masthead/package.json +1 -1
- package/dist/dynamic/components/Menu/package.json +1 -1
- package/dist/dynamic/components/MenuToggle/package.json +1 -1
- package/dist/dynamic/components/Modal/package.json +1 -1
- package/dist/dynamic/components/MultipleFileUpload/package.json +1 -1
- package/dist/dynamic/components/Nav/package.json +1 -1
- package/dist/dynamic/components/NotificationBadge/package.json +1 -1
- package/dist/dynamic/components/NotificationDrawer/package.json +1 -1
- package/dist/dynamic/components/NumberInput/package.json +1 -1
- package/dist/dynamic/components/OverflowMenu/package.json +1 -1
- package/dist/dynamic/components/Page/package.json +1 -1
- package/dist/dynamic/components/Pagination/package.json +1 -1
- package/dist/dynamic/components/Panel/package.json +1 -1
- package/dist/dynamic/components/Popover/package.json +1 -1
- package/dist/dynamic/components/Progress/package.json +1 -1
- package/dist/dynamic/components/ProgressStepper/package.json +1 -1
- package/dist/dynamic/components/Radio/package.json +1 -1
- package/dist/dynamic/components/SearchInput/package.json +1 -1
- package/dist/dynamic/components/Select/package.json +1 -1
- package/dist/dynamic/components/Sidebar/package.json +1 -1
- package/dist/dynamic/components/SimpleList/package.json +1 -1
- package/dist/dynamic/components/Skeleton/package.json +1 -1
- package/dist/dynamic/components/SkipToContent/package.json +1 -1
- package/dist/dynamic/components/Slider/package.json +1 -1
- package/dist/dynamic/components/Spinner/package.json +1 -1
- package/dist/dynamic/components/Switch/package.json +1 -1
- package/dist/dynamic/components/Tabs/package.json +1 -1
- package/dist/dynamic/components/Text/package.json +1 -1
- package/dist/dynamic/components/TextArea/package.json +1 -1
- package/dist/dynamic/components/TextInput/package.json +1 -1
- package/dist/dynamic/components/TextInputGroup/package.json +1 -1
- package/dist/dynamic/components/Tile/package.json +1 -1
- package/dist/dynamic/components/TimePicker/package.json +1 -1
- package/dist/dynamic/components/Timestamp/package.json +1 -1
- package/dist/dynamic/components/Title/package.json +1 -1
- package/dist/dynamic/components/ToggleGroup/package.json +1 -1
- package/dist/dynamic/components/Toolbar/package.json +1 -1
- package/dist/dynamic/components/Tooltip/package.json +1 -1
- package/dist/dynamic/components/TreeView/package.json +1 -1
- package/dist/dynamic/components/Truncate/package.json +1 -1
- package/dist/dynamic/components/Wizard/hooks/package.json +1 -1
- package/dist/dynamic/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/ApplicationLauncher/package.json +1 -1
- package/dist/dynamic/deprecated/components/ContextSelector/package.json +1 -1
- package/dist/dynamic/deprecated/components/Dropdown/package.json +1 -1
- package/dist/dynamic/deprecated/components/OptionsMenu/package.json +1 -1
- package/dist/dynamic/deprecated/components/PageHeader/package.json +1 -1
- package/dist/dynamic/deprecated/components/Select/package.json +1 -1
- package/dist/dynamic/deprecated/components/Wizard/package.json +1 -1
- package/dist/dynamic/deprecated/components/package.json +1 -1
- package/dist/dynamic/helpers/FocusTrap/FocusTrap/package.json +1 -1
- package/dist/dynamic/helpers/GenerateId/GenerateId/package.json +1 -1
- package/dist/dynamic/helpers/KeyboardHandler/package.json +1 -1
- package/dist/dynamic/helpers/OUIA/ouia/package.json +1 -1
- package/dist/dynamic/helpers/Popper/Popper/package.json +1 -1
- package/dist/dynamic/helpers/constants/package.json +1 -1
- package/dist/dynamic/helpers/datetimeUtils/package.json +1 -1
- package/dist/dynamic/helpers/favorites/package.json +1 -1
- package/dist/dynamic/helpers/fileUtils/package.json +1 -1
- package/dist/dynamic/helpers/htmlConstants/package.json +1 -1
- package/dist/dynamic/helpers/package.json +1 -1
- package/dist/dynamic/helpers/resizeObserver/package.json +1 -1
- package/dist/dynamic/helpers/typeUtils/package.json +1 -1
- package/dist/dynamic/helpers/useInterval/package.json +1 -1
- package/dist/dynamic/helpers/useIsomorphicLayout/package.json +1 -1
- package/dist/dynamic/helpers/useUnmountEffect/package.json +1 -1
- package/dist/dynamic/helpers/util/package.json +1 -1
- package/dist/dynamic/layouts/Bullseye/package.json +1 -1
- package/dist/dynamic/layouts/Flex/package.json +1 -1
- package/dist/dynamic/layouts/Gallery/package.json +1 -1
- package/dist/dynamic/layouts/Grid/package.json +1 -1
- package/dist/dynamic/layouts/Level/package.json +1 -1
- package/dist/dynamic/layouts/Split/package.json +1 -1
- package/dist/dynamic/layouts/Stack/package.json +1 -1
- package/dist/dynamic/next/components/package.json +1 -1
- package/dist/esm/components/Drawer/DrawerPanelContent.js +4 -4
- package/dist/esm/components/Drawer/DrawerPanelContent.js.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/esm/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.js +1 -1
- package/dist/esm/components/ExpandableSection/ExpandableSection.js.map +1 -1
- package/dist/esm/components/Menu/Menu.d.ts.map +1 -1
- package/dist/esm/components/Menu/Menu.js +2 -1
- package/dist/esm/components/Menu/Menu.js.map +1 -1
- package/dist/esm/components/Menu/MenuContainer.d.ts +2 -0
- package/dist/esm/components/Menu/MenuContainer.d.ts.map +1 -1
- package/dist/esm/components/Menu/MenuContainer.js.map +1 -1
- package/dist/esm/components/Nav/NavList.js +3 -3
- package/dist/esm/components/Nav/NavList.js.map +1 -1
- package/dist/esm/components/Select/Select.d.ts +2 -0
- package/dist/esm/components/Select/Select.d.ts.map +1 -1
- package/dist/esm/components/Select/Select.js.map +1 -1
- package/dist/esm/components/Slider/Slider.d.ts.map +1 -1
- package/dist/esm/components/Slider/Slider.js +2 -1
- package/dist/esm/components/Slider/Slider.js.map +1 -1
- package/dist/esm/components/Tabs/Tabs.js +3 -3
- package/dist/esm/components/Tabs/Tabs.js.map +1 -1
- package/dist/esm/helpers/Popper/Popper.d.ts +2 -1
- package/dist/esm/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/esm/helpers/Popper/Popper.js +3 -13
- package/dist/esm/helpers/Popper/Popper.js.map +1 -1
- package/dist/esm/helpers/util.d.ts +9 -0
- package/dist/esm/helpers/util.d.ts.map +1 -1
- package/dist/esm/helpers/util.js +18 -0
- package/dist/esm/helpers/util.js.map +1 -1
- package/dist/js/components/Drawer/DrawerPanelContent.js +3 -3
- package/dist/js/components/Drawer/DrawerPanelContent.js.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.d.ts +2 -0
- package/dist/js/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/js/components/Dropdown/Dropdown.js.map +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.js +1 -1
- package/dist/js/components/ExpandableSection/ExpandableSection.js.map +1 -1
- package/dist/js/components/Menu/Menu.d.ts.map +1 -1
- package/dist/js/components/Menu/Menu.js +2 -1
- package/dist/js/components/Menu/Menu.js.map +1 -1
- package/dist/js/components/Menu/MenuContainer.d.ts +2 -0
- package/dist/js/components/Menu/MenuContainer.d.ts.map +1 -1
- package/dist/js/components/Menu/MenuContainer.js.map +1 -1
- package/dist/js/components/Nav/NavList.js +2 -2
- package/dist/js/components/Nav/NavList.js.map +1 -1
- package/dist/js/components/Select/Select.d.ts +2 -0
- package/dist/js/components/Select/Select.d.ts.map +1 -1
- package/dist/js/components/Select/Select.js.map +1 -1
- package/dist/js/components/Slider/Slider.d.ts.map +1 -1
- package/dist/js/components/Slider/Slider.js +2 -1
- package/dist/js/components/Slider/Slider.js.map +1 -1
- package/dist/js/components/Tabs/Tabs.js +2 -2
- package/dist/js/components/Tabs/Tabs.js.map +1 -1
- package/dist/js/helpers/Popper/Popper.d.ts +2 -1
- package/dist/js/helpers/Popper/Popper.d.ts.map +1 -1
- package/dist/js/helpers/Popper/Popper.js +5 -16
- package/dist/js/helpers/Popper/Popper.js.map +1 -1
- package/dist/js/helpers/util.d.ts +9 -0
- package/dist/js/helpers/util.d.ts.map +1 -1
- package/dist/js/helpers/util.js +20 -1
- package/dist/js/helpers/util.js.map +1 -1
- package/dist/umd/react-core.min.js +1 -1
- package/helpers/package.json +1 -1
- package/layouts/package.json +1 -1
- package/next/package.json +1 -1
- package/package.json +2 -2
- package/src/components/Checkbox/__tests__/Checkbox.test.tsx +223 -69
- package/src/components/Checkbox/__tests__/__snapshots__/Checkbox.test.tsx.snap +3 -198
- package/src/components/Drawer/DrawerPanelContent.tsx +4 -4
- package/src/components/Dropdown/Dropdown.tsx +2 -0
- package/src/components/ExpandableSection/ExpandableSection.tsx +1 -1
- package/src/components/Menu/Menu.tsx +2 -1
- package/src/components/Menu/MenuContainer.tsx +2 -0
- package/src/components/Nav/NavList.tsx +3 -3
- package/src/components/Select/Select.tsx +2 -0
- package/src/components/Slider/Slider.tsx +2 -1
- package/src/components/Tabs/Tabs.tsx +3 -3
- package/src/helpers/Popper/Popper.tsx +6 -17
- package/src/helpers/__mocks__/util.ts +2 -0
- package/src/helpers/util.ts +22 -0
|
@@ -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 =
|
|
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 =
|
|
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 =
|
|
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:
|
|
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
|
package/src/helpers/util.ts
CHANGED
|
@@ -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
|
+
};
|