@react-spectrum/overlays 5.6.5 → 5.7.1
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/dist/Modal.main.js +7 -7
- package/dist/Modal.main.js.map +1 -1
- package/dist/Modal.mjs +9 -9
- package/dist/Modal.module.js +9 -9
- package/dist/Modal.module.js.map +1 -1
- package/dist/Overlay.main.js +2 -3
- package/dist/Overlay.main.js.map +1 -1
- package/dist/Overlay.mjs +2 -3
- package/dist/Overlay.module.js +2 -3
- package/dist/Overlay.module.js.map +1 -1
- package/dist/Popover.main.js +10 -10
- package/dist/Popover.main.js.map +1 -1
- package/dist/Popover.mjs +12 -12
- package/dist/Popover.module.js +12 -12
- package/dist/Popover.module.js.map +1 -1
- package/dist/Tray.main.js +5 -5
- package/dist/Tray.main.js.map +1 -1
- package/dist/Tray.mjs +7 -7
- package/dist/Tray.module.js +7 -7
- package/dist/Tray.module.js.map +1 -1
- package/dist/modal_vars_css.main.js.map +1 -1
- package/dist/modal_vars_css.module.js.map +1 -1
- package/dist/popover_vars_css.main.js.map +1 -1
- package/dist/popover_vars_css.module.js.map +1 -1
- package/dist/tray_vars_css.main.js.map +1 -1
- package/dist/tray_vars_css.module.js.map +1 -1
- package/dist/types.d.ts +4 -4
- package/dist/types.d.ts.map +1 -1
- package/dist/underlay_vars_css.main.js.map +1 -1
- package/dist/underlay_vars_css.module.js.map +1 -1
- package/dist/{vars.bf55d9e0.css → vars.a1de7c32.css} +3 -3
- package/dist/{vars.bf55d9e0.css.map → vars.a1de7c32.css.map} +1 -1
- package/package.json +11 -11
- package/src/Modal.tsx +11 -12
- package/src/Overlay.tsx +2 -5
- package/src/Popover.tsx +12 -14
- package/src/Tray.tsx +9 -11
package/src/Modal.tsx
CHANGED
|
@@ -18,9 +18,9 @@ import {Overlay} from './Overlay';
|
|
|
18
18
|
import {OverlayProps} from '@react-types/overlays';
|
|
19
19
|
import {OverlayTriggerState} from '@react-stately/overlays';
|
|
20
20
|
import overrideStyles from './overlays.css';
|
|
21
|
-
import React, {
|
|
21
|
+
import React, {ForwardedRef, forwardRef, ReactNode, useRef} from 'react';
|
|
22
22
|
import {Underlay} from './Underlay';
|
|
23
|
-
import {useViewportSize} from '@react-aria/utils';
|
|
23
|
+
import {useObjectRef, useViewportSize} from '@react-aria/utils';
|
|
24
24
|
|
|
25
25
|
interface ModalProps extends AriaModalOverlayProps, StyleProps, Omit<OverlayProps, 'nodeRef' | 'shouldContainFocus'> {
|
|
26
26
|
children: ReactNode,
|
|
@@ -30,10 +30,11 @@ interface ModalProps extends AriaModalOverlayProps, StyleProps, Omit<OverlayProp
|
|
|
30
30
|
|
|
31
31
|
interface ModalWrapperProps extends ModalProps {
|
|
32
32
|
isOpen?: boolean,
|
|
33
|
-
wrapperRef:
|
|
33
|
+
wrapperRef: RefObject<HTMLDivElement | null>,
|
|
34
|
+
children: ReactNode
|
|
34
35
|
}
|
|
35
36
|
|
|
36
|
-
function Modal(props: ModalProps, ref: DOMRef<HTMLDivElement>) {
|
|
37
|
+
export const Modal = forwardRef(function Modal(props: ModalProps, ref: DOMRef<HTMLDivElement>) {
|
|
37
38
|
let {children, state, ...otherProps} = props;
|
|
38
39
|
let domRef = useDOMRef(ref);
|
|
39
40
|
let wrapperRef = useRef<HTMLDivElement>(null);
|
|
@@ -45,18 +46,19 @@ function Modal(props: ModalProps, ref: DOMRef<HTMLDivElement>) {
|
|
|
45
46
|
</ModalWrapper>
|
|
46
47
|
</Overlay>
|
|
47
48
|
);
|
|
48
|
-
}
|
|
49
|
+
});
|
|
49
50
|
|
|
50
51
|
let typeMap = {
|
|
51
52
|
fullscreen: 'fullscreen',
|
|
52
53
|
fullscreenTakeover: 'fullscreenTakeover'
|
|
53
54
|
};
|
|
54
55
|
|
|
55
|
-
let ModalWrapper = forwardRef(function (props: ModalWrapperProps, ref:
|
|
56
|
+
let ModalWrapper = forwardRef(function (props: ModalWrapperProps, ref: ForwardedRef<HTMLDivElement | null>) {
|
|
56
57
|
let {type, children, state, isOpen, wrapperRef} = props;
|
|
57
|
-
let typeVariant = typeMap[type];
|
|
58
|
+
let typeVariant = type != null ? typeMap[type] : undefined;
|
|
58
59
|
let {styleProps} = useStyleProps(props);
|
|
59
|
-
let
|
|
60
|
+
let objRef = useObjectRef(ref);
|
|
61
|
+
let {modalProps, underlayProps} = useModalOverlay(props, state, objRef);
|
|
60
62
|
|
|
61
63
|
let wrapperClassName = classNames(
|
|
62
64
|
modalStyles,
|
|
@@ -96,7 +98,7 @@ let ModalWrapper = forwardRef(function (props: ModalWrapperProps, ref: RefObject
|
|
|
96
98
|
<div
|
|
97
99
|
{...styleProps}
|
|
98
100
|
{...modalProps}
|
|
99
|
-
ref={
|
|
101
|
+
ref={objRef}
|
|
100
102
|
className={modalClassName}
|
|
101
103
|
data-testid="modal">
|
|
102
104
|
{children}
|
|
@@ -105,6 +107,3 @@ let ModalWrapper = forwardRef(function (props: ModalWrapperProps, ref: RefObject
|
|
|
105
107
|
</div>
|
|
106
108
|
);
|
|
107
109
|
});
|
|
108
|
-
|
|
109
|
-
let _Modal = forwardRef(Modal);
|
|
110
|
-
export {_Modal as Modal};
|
package/src/Overlay.tsx
CHANGED
|
@@ -17,7 +17,7 @@ import {Provider} from '@react-spectrum/provider';
|
|
|
17
17
|
import React, {useCallback, useState} from 'react';
|
|
18
18
|
import {Overlay as ReactAriaOverlay} from '@react-aria/overlays';
|
|
19
19
|
|
|
20
|
-
function Overlay(props: OverlayProps, ref: DOMRef<HTMLDivElement>) {
|
|
20
|
+
export const Overlay = React.forwardRef(function Overlay(props: OverlayProps, ref: DOMRef<HTMLDivElement>) {
|
|
21
21
|
let {
|
|
22
22
|
children,
|
|
23
23
|
isOpen,
|
|
@@ -73,7 +73,4 @@ function Overlay(props: OverlayProps, ref: DOMRef<HTMLDivElement>) {
|
|
|
73
73
|
</Provider>
|
|
74
74
|
</ReactAriaOverlay>
|
|
75
75
|
);
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
let _Overlay = React.forwardRef(Overlay);
|
|
79
|
-
export {_Overlay as Overlay};
|
|
76
|
+
});
|
package/src/Popover.tsx
CHANGED
|
@@ -14,11 +14,11 @@ import {AriaPopoverProps, DismissButton, PopoverAria, usePopover} from '@react-a
|
|
|
14
14
|
import {classNames, useDOMRef, useStyleProps} from '@react-spectrum/utils';
|
|
15
15
|
import {DOMRef, RefObject, StyleProps} from '@react-types/shared';
|
|
16
16
|
import {FocusWithinProps, useFocusWithin} from '@react-aria/interactions';
|
|
17
|
-
import {mergeProps, useLayoutEffect} from '@react-aria/utils';
|
|
17
|
+
import {mergeProps, useLayoutEffect, useObjectRef} from '@react-aria/utils';
|
|
18
18
|
import {Overlay} from './Overlay';
|
|
19
19
|
import {OverlayTriggerState} from '@react-stately/overlays';
|
|
20
20
|
import overrideStyles from './overlays.css';
|
|
21
|
-
import React, {
|
|
21
|
+
import React, {ForwardedRef, forwardRef, ReactNode, useRef, useState} from 'react';
|
|
22
22
|
import styles from '@adobe/spectrum-css-temp/components/popover/vars.css';
|
|
23
23
|
import {Underlay} from './Underlay';
|
|
24
24
|
|
|
@@ -41,7 +41,7 @@ interface PopoverProps extends Omit<AriaPopoverProps, 'popoverRef' | 'maxHeight'
|
|
|
41
41
|
|
|
42
42
|
interface PopoverWrapperProps extends PopoverProps, FocusWithinProps {
|
|
43
43
|
isOpen?: boolean,
|
|
44
|
-
wrapperRef:
|
|
44
|
+
wrapperRef: RefObject<HTMLDivElement | null>
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
interface ArrowProps {
|
|
@@ -67,7 +67,7 @@ let arrowPlacement = {
|
|
|
67
67
|
bottom: 'bottom'
|
|
68
68
|
};
|
|
69
69
|
|
|
70
|
-
function Popover(props: PopoverProps, ref: DOMRef<HTMLDivElement>) {
|
|
70
|
+
export const Popover = forwardRef(function Popover(props: PopoverProps, ref: DOMRef<HTMLDivElement>) {
|
|
71
71
|
let {
|
|
72
72
|
children,
|
|
73
73
|
state,
|
|
@@ -83,9 +83,9 @@ function Popover(props: PopoverProps, ref: DOMRef<HTMLDivElement>) {
|
|
|
83
83
|
</PopoverWrapper>
|
|
84
84
|
</Overlay>
|
|
85
85
|
);
|
|
86
|
-
}
|
|
86
|
+
});
|
|
87
87
|
|
|
88
|
-
const PopoverWrapper = forwardRef((props: PopoverWrapperProps, ref:
|
|
88
|
+
const PopoverWrapper = forwardRef((props: PopoverWrapperProps, ref: ForwardedRef<HTMLDivElement | null>) => {
|
|
89
89
|
let {
|
|
90
90
|
children,
|
|
91
91
|
isOpen,
|
|
@@ -97,9 +97,10 @@ const PopoverWrapper = forwardRef((props: PopoverWrapperProps, ref: RefObject<HT
|
|
|
97
97
|
onDismissButtonPress = () => state.close()
|
|
98
98
|
} = props;
|
|
99
99
|
let {styleProps} = useStyleProps(props);
|
|
100
|
+
let objRef = useObjectRef(ref);
|
|
100
101
|
|
|
101
102
|
let {size, borderWidth, arrowRef} = useArrowSize();
|
|
102
|
-
const borderRadius = usePopoverBorderRadius(
|
|
103
|
+
const borderRadius = usePopoverBorderRadius(objRef);
|
|
103
104
|
let borderDiagonal = borderWidth * Math.SQRT2;
|
|
104
105
|
let primary = size + borderDiagonal;
|
|
105
106
|
let secondary = primary * 2;
|
|
@@ -110,8 +111,8 @@ const PopoverWrapper = forwardRef((props: PopoverWrapperProps, ref: RefObject<HT
|
|
|
110
111
|
placement
|
|
111
112
|
} = usePopover({
|
|
112
113
|
...props,
|
|
113
|
-
popoverRef:
|
|
114
|
-
maxHeight:
|
|
114
|
+
popoverRef: objRef,
|
|
115
|
+
maxHeight: undefined,
|
|
115
116
|
arrowSize: hideArrow ? 0 : secondary,
|
|
116
117
|
arrowBoundaryOffset: borderRadius
|
|
117
118
|
}, state);
|
|
@@ -128,7 +129,7 @@ const PopoverWrapper = forwardRef((props: PopoverWrapperProps, ref: RefObject<HT
|
|
|
128
129
|
...styleProps.style,
|
|
129
130
|
...popoverProps.style
|
|
130
131
|
}}
|
|
131
|
-
ref={
|
|
132
|
+
ref={objRef}
|
|
132
133
|
className={
|
|
133
134
|
classNames(
|
|
134
135
|
styles,
|
|
@@ -154,7 +155,7 @@ const PopoverWrapper = forwardRef((props: PopoverWrapperProps, ref: RefObject<HT
|
|
|
154
155
|
{hideArrow ? null : (
|
|
155
156
|
<Arrow
|
|
156
157
|
arrowProps={arrowProps}
|
|
157
|
-
isLandscape={arrowPlacement[placement] === 'bottom'}
|
|
158
|
+
isLandscape={placement != null ? arrowPlacement[placement] === 'bottom' : false}
|
|
158
159
|
arrowRef={arrowRef}
|
|
159
160
|
primary={primary}
|
|
160
161
|
secondary={secondary}
|
|
@@ -237,9 +238,6 @@ function Arrow(props: ArrowProps) {
|
|
|
237
238
|
);
|
|
238
239
|
}
|
|
239
240
|
|
|
240
|
-
let _Popover = forwardRef(Popover);
|
|
241
|
-
export {_Popover as Popover};
|
|
242
|
-
|
|
243
241
|
/**
|
|
244
242
|
* More explanation on popover tips.
|
|
245
243
|
* - I tried changing the calculation of the popover placement in an effort to get it squarely onto the pixel grid.
|
package/src/Tray.tsx
CHANGED
|
@@ -17,10 +17,10 @@ import {Overlay} from './Overlay';
|
|
|
17
17
|
import {OverlayProps} from '@react-types/overlays';
|
|
18
18
|
import {OverlayTriggerState} from '@react-stately/overlays';
|
|
19
19
|
import overrideStyles from './overlays.css';
|
|
20
|
-
import React, {
|
|
20
|
+
import React, {ForwardedRef, forwardRef, ReactNode, useRef} from 'react';
|
|
21
21
|
import trayStyles from '@adobe/spectrum-css-temp/components/tray/vars.css';
|
|
22
22
|
import {Underlay} from './Underlay';
|
|
23
|
-
import {useViewportSize} from '@react-aria/utils';
|
|
23
|
+
import {useObjectRef, useViewportSize} from '@react-aria/utils';
|
|
24
24
|
|
|
25
25
|
interface TrayProps extends AriaModalOverlayProps, StyleProps, Omit<OverlayProps, 'nodeRef' | 'shouldContainFocus'> {
|
|
26
26
|
children: ReactNode,
|
|
@@ -30,10 +30,10 @@ interface TrayProps extends AriaModalOverlayProps, StyleProps, Omit<OverlayProps
|
|
|
30
30
|
|
|
31
31
|
interface TrayWrapperProps extends TrayProps {
|
|
32
32
|
isOpen?: boolean,
|
|
33
|
-
wrapperRef:
|
|
33
|
+
wrapperRef: RefObject<HTMLDivElement | null>
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
function Tray(props: TrayProps, ref: DOMRef<HTMLDivElement>) {
|
|
36
|
+
export const Tray = forwardRef(function Tray(props: TrayProps, ref: DOMRef<HTMLDivElement>) {
|
|
37
37
|
let {children, state, ...otherProps} = props;
|
|
38
38
|
let domRef = useDOMRef(ref);
|
|
39
39
|
let wrapperRef = useRef<HTMLDivElement>(null);
|
|
@@ -45,9 +45,9 @@ function Tray(props: TrayProps, ref: DOMRef<HTMLDivElement>) {
|
|
|
45
45
|
</TrayWrapper>
|
|
46
46
|
</Overlay>
|
|
47
47
|
);
|
|
48
|
-
}
|
|
48
|
+
});
|
|
49
49
|
|
|
50
|
-
let TrayWrapper = forwardRef(function (props: TrayWrapperProps, ref:
|
|
50
|
+
let TrayWrapper = forwardRef(function (props: TrayWrapperProps, ref: ForwardedRef<HTMLDivElement | null>) {
|
|
51
51
|
let {
|
|
52
52
|
children,
|
|
53
53
|
isOpen,
|
|
@@ -56,11 +56,12 @@ let TrayWrapper = forwardRef(function (props: TrayWrapperProps, ref: RefObject<H
|
|
|
56
56
|
wrapperRef
|
|
57
57
|
} = props;
|
|
58
58
|
let {styleProps} = useStyleProps(props);
|
|
59
|
+
let objRef = useObjectRef(ref);
|
|
59
60
|
|
|
60
61
|
let {modalProps, underlayProps} = useModalOverlay({
|
|
61
62
|
...props,
|
|
62
63
|
isDismissable: true
|
|
63
|
-
}, state,
|
|
64
|
+
}, state, objRef);
|
|
64
65
|
|
|
65
66
|
// We need to measure the window's height in JS rather than using percentages in CSS
|
|
66
67
|
// so that contents (e.g. menu) can inherit the max-height properly. Using percentages
|
|
@@ -103,7 +104,7 @@ let TrayWrapper = forwardRef(function (props: TrayWrapperProps, ref: RefObject<H
|
|
|
103
104
|
{...styleProps}
|
|
104
105
|
{...modalProps}
|
|
105
106
|
className={className}
|
|
106
|
-
ref={
|
|
107
|
+
ref={objRef}
|
|
107
108
|
data-testid="tray">
|
|
108
109
|
<DismissButton onDismiss={state.close} />
|
|
109
110
|
{children}
|
|
@@ -113,6 +114,3 @@ let TrayWrapper = forwardRef(function (props: TrayWrapperProps, ref: RefObject<H
|
|
|
113
114
|
</div>
|
|
114
115
|
);
|
|
115
116
|
});
|
|
116
|
-
|
|
117
|
-
let _Tray = forwardRef(Tray);
|
|
118
|
-
export {_Tray as Tray};
|