@fluentui/react-popover 9.0.0-nightly.f81b28ceb3.1 → 9.0.0-rc.1
Sign up to get free protection for your applications and to get access to all the features.
- package/CHANGELOG.json +376 -25
- package/CHANGELOG.md +89 -19
- package/dist/react-popover.d.ts +36 -23
- package/lib/components/Popover/Popover.js +5 -5
- package/lib/components/Popover/Popover.js.map +1 -1
- package/lib/components/Popover/Popover.types.d.ts +7 -4
- package/lib/components/Popover/renderPopover.d.ts +1 -1
- package/lib/components/Popover/renderPopover.js +27 -25
- package/lib/components/Popover/renderPopover.js.map +1 -1
- package/lib/components/Popover/usePopover.d.ts +2 -2
- package/lib/components/Popover/usePopover.js +42 -53
- package/lib/components/Popover/usePopover.js.map +1 -1
- package/lib/components/PopoverSurface/PopoverSurface.js +7 -7
- package/lib/components/PopoverSurface/PopoverSurface.js.map +1 -1
- package/lib/components/PopoverSurface/PopoverSurface.types.d.ts +2 -2
- package/lib/components/PopoverSurface/renderPopoverSurface.d.ts +1 -1
- package/lib/components/PopoverSurface/renderPopoverSurface.js +7 -8
- package/lib/components/PopoverSurface/renderPopoverSurface.js.map +1 -1
- package/lib/components/PopoverSurface/usePopoverSurface.d.ts +4 -5
- package/lib/components/PopoverSurface/usePopoverSurface.js +44 -58
- package/lib/components/PopoverSurface/usePopoverSurface.js.map +1 -1
- package/lib/components/PopoverSurface/usePopoverSurfaceStyles.d.ts +2 -1
- package/lib/components/PopoverSurface/usePopoverSurfaceStyles.js +34 -22
- package/lib/components/PopoverSurface/usePopoverSurfaceStyles.js.map +1 -1
- package/lib/components/PopoverTrigger/PopoverTrigger.d.ts +2 -1
- package/lib/components/PopoverTrigger/PopoverTrigger.js +6 -5
- package/lib/components/PopoverTrigger/PopoverTrigger.js.map +1 -1
- package/lib/components/PopoverTrigger/PopoverTrigger.types.d.ts +9 -2
- package/lib/components/PopoverTrigger/renderPopoverTrigger.d.ts +1 -1
- package/lib/components/PopoverTrigger/renderPopoverTrigger.js +1 -1
- package/lib/components/PopoverTrigger/renderPopoverTrigger.js.map +1 -1
- package/lib/components/PopoverTrigger/usePopoverTrigger.d.ts +2 -2
- package/lib/components/PopoverTrigger/usePopoverTrigger.js +39 -54
- package/lib/components/PopoverTrigger/usePopoverTrigger.js.map +1 -1
- package/lib/popoverContext.d.ts +1 -1
- package/lib/popoverContext.js +3 -7
- package/lib/popoverContext.js.map +1 -1
- package/lib-commonjs/Popover.js +1 -1
- package/lib-commonjs/PopoverSurface.js +1 -1
- package/lib-commonjs/PopoverTrigger.js +1 -1
- package/lib-commonjs/components/Popover/Popover.js +5 -5
- package/lib-commonjs/components/Popover/Popover.js.map +1 -1
- package/lib-commonjs/components/Popover/Popover.types.d.ts +7 -4
- package/lib-commonjs/components/Popover/index.js +1 -1
- package/lib-commonjs/components/Popover/renderPopover.d.ts +1 -1
- package/lib-commonjs/components/Popover/renderPopover.js +31 -29
- package/lib-commonjs/components/Popover/renderPopover.js.map +1 -1
- package/lib-commonjs/components/Popover/usePopover.d.ts +2 -2
- package/lib-commonjs/components/Popover/usePopover.js +50 -62
- package/lib-commonjs/components/Popover/usePopover.js.map +1 -1
- package/lib-commonjs/components/PopoverSurface/PopoverSurface.js +8 -8
- package/lib-commonjs/components/PopoverSurface/PopoverSurface.js.map +1 -1
- package/lib-commonjs/components/PopoverSurface/PopoverSurface.types.d.ts +2 -2
- package/lib-commonjs/components/PopoverSurface/index.js +1 -1
- package/lib-commonjs/components/PopoverSurface/renderPopoverSurface.d.ts +1 -1
- package/lib-commonjs/components/PopoverSurface/renderPopoverSurface.js +12 -15
- package/lib-commonjs/components/PopoverSurface/renderPopoverSurface.js.map +1 -1
- package/lib-commonjs/components/PopoverSurface/usePopoverSurface.d.ts +4 -5
- package/lib-commonjs/components/PopoverSurface/usePopoverSurface.js +50 -65
- package/lib-commonjs/components/PopoverSurface/usePopoverSurface.js.map +1 -1
- package/lib-commonjs/components/PopoverSurface/usePopoverSurfaceStyles.d.ts +2 -1
- package/lib-commonjs/components/PopoverSurface/usePopoverSurfaceStyles.js +38 -24
- package/lib-commonjs/components/PopoverSurface/usePopoverSurfaceStyles.js.map +1 -1
- package/lib-commonjs/components/PopoverTrigger/PopoverTrigger.d.ts +2 -1
- package/lib-commonjs/components/PopoverTrigger/PopoverTrigger.js +6 -5
- package/lib-commonjs/components/PopoverTrigger/PopoverTrigger.js.map +1 -1
- package/lib-commonjs/components/PopoverTrigger/PopoverTrigger.types.d.ts +9 -2
- package/lib-commonjs/components/PopoverTrigger/index.js +1 -1
- package/lib-commonjs/components/PopoverTrigger/renderPopoverTrigger.d.ts +1 -1
- package/lib-commonjs/components/PopoverTrigger/renderPopoverTrigger.js +3 -3
- package/lib-commonjs/components/PopoverTrigger/renderPopoverTrigger.js.map +1 -1
- package/lib-commonjs/components/PopoverTrigger/usePopoverTrigger.d.ts +2 -2
- package/lib-commonjs/components/PopoverTrigger/usePopoverTrigger.js +44 -60
- package/lib-commonjs/components/PopoverTrigger/usePopoverTrigger.js.map +1 -1
- package/lib-commonjs/index.js +1 -1
- package/lib-commonjs/popoverContext.d.ts +1 -1
- package/lib-commonjs/popoverContext.js +5 -9
- package/lib-commonjs/popoverContext.js.map +1 -1
- package/package.json +13 -15
- package/lib/common/isConformant.d.ts +0 -4
- package/lib/common/isConformant.js +0 -13
- package/lib/common/isConformant.js.map +0 -1
- package/lib/common/mockUsePopoverContext.d.ts +0 -7
- package/lib/common/mockUsePopoverContext.js +0 -38
- package/lib/common/mockUsePopoverContext.js.map +0 -1
- package/lib-commonjs/common/isConformant.d.ts +0 -4
- package/lib-commonjs/common/isConformant.js +0 -24
- package/lib-commonjs/common/isConformant.js.map +0 -1
- package/lib-commonjs/common/mockUsePopoverContext.d.ts +0 -7
- package/lib-commonjs/common/mockUsePopoverContext.js +0 -49
- package/lib-commonjs/common/mockUsePopoverContext.js.map +0 -1
package/dist/react-popover.d.ts
CHANGED
@@ -2,12 +2,15 @@ import type { ComponentProps } from '@fluentui/react-utilities';
|
|
2
2
|
import type { ComponentState } from '@fluentui/react-utilities';
|
3
3
|
import type { Context } from '@fluentui/react-context-selector';
|
4
4
|
import type { ContextSelector } from '@fluentui/react-context-selector';
|
5
|
+
import type { FluentTriggerComponent } from '@fluentui/react-utilities';
|
5
6
|
import type { ForwardRefComponent } from '@fluentui/react-utilities';
|
6
|
-
import
|
7
|
+
import { JSXElementConstructor } from 'react';
|
7
8
|
import type { PopperVirtualElement } from '@fluentui/react-positioning';
|
8
9
|
import type { PortalProps } from '@fluentui/react-portal';
|
9
10
|
import type { PositioningShorthand } from '@fluentui/react-positioning';
|
10
11
|
import * as React_2 from 'react';
|
12
|
+
import { ReactElement } from 'react';
|
13
|
+
import type { Slot } from '@fluentui/react-utilities';
|
11
14
|
import type { usePopperMouseTarget } from '@fluentui/react-positioning';
|
12
15
|
|
13
16
|
export declare const arrowHeights: Record<PopoverSize, number>;
|
@@ -15,7 +18,9 @@ export declare const arrowHeights: Record<PopoverSize, number>;
|
|
15
18
|
/**
|
16
19
|
* Data attached to open/close events
|
17
20
|
*/
|
18
|
-
export declare type OnOpenChangeData =
|
21
|
+
export declare type OnOpenChangeData = {
|
22
|
+
open: boolean;
|
23
|
+
};
|
19
24
|
|
20
25
|
/**
|
21
26
|
* The supported events that will trigger open/close of the menu
|
@@ -27,7 +32,7 @@ export declare type OpenPopoverEvents = MouseEvent | TouchEvent | React_2.MouseE
|
|
27
32
|
*/
|
28
33
|
export declare const Popover: React_2.FC<PopoverProps>;
|
29
34
|
|
30
|
-
|
35
|
+
declare type PopoverCommons = Pick<PortalProps, 'mountNode'> & {
|
31
36
|
/**
|
32
37
|
* Controls the opening of the Popover
|
33
38
|
*/
|
@@ -85,8 +90,8 @@ export declare type PopoverContextValue = Pick<PopoverState, 'open' | 'setOpen'
|
|
85
90
|
*/
|
86
91
|
export declare type PopoverProps = Partial<PopoverCommons> & {
|
87
92
|
/**
|
88
|
-
* Can contain two children including {@link PopoverTrigger} and {@link
|
89
|
-
* Alternatively can only contain {@link
|
93
|
+
* Can contain two children including {@link PopoverTrigger} and {@link PopoverSurface}.
|
94
|
+
* Alternatively can only contain {@link PopoverSurface} if using a custom `target`.
|
90
95
|
*/
|
91
96
|
children: [JSX.Element, JSX.Element] | JSX.Element;
|
92
97
|
};
|
@@ -132,6 +137,8 @@ export declare type PopoverState = PopoverCommons & Pick<PopoverProps, 'children
|
|
132
137
|
*/
|
133
138
|
export declare const PopoverSurface: ForwardRefComponent<PopoverSurfaceProps>;
|
134
139
|
|
140
|
+
export declare const popoverSurfaceClassName = "fui-PopoverSurface";
|
141
|
+
|
135
142
|
/**
|
136
143
|
* PopoverSurface Props
|
137
144
|
*/
|
@@ -141,11 +148,9 @@ export declare type PopoverSurfaceProps = ComponentProps<PopoverSurfaceSlots>;
|
|
141
148
|
* Names of the slots in PopoverSurfaceProps
|
142
149
|
*/
|
143
150
|
export declare type PopoverSurfaceSlots = {
|
144
|
-
root:
|
151
|
+
root: Slot<'div'>;
|
145
152
|
};
|
146
153
|
|
147
|
-
export declare const popoverSurfaceSlots: Array<keyof PopoverSurfaceSlots>;
|
148
|
-
|
149
154
|
/**
|
150
155
|
* PopoverSurface State
|
151
156
|
*/
|
@@ -159,71 +164,79 @@ export declare type PopoverSurfaceState = ComponentState<PopoverSurfaceSlots> &
|
|
159
164
|
/**
|
160
165
|
* Wraps a trigger element as an only child and adds the necessary event handling to open a popover.
|
161
166
|
*/
|
162
|
-
export declare const PopoverTrigger: React_2.FC<PopoverTriggerProps
|
167
|
+
export declare const PopoverTrigger: React_2.FC<PopoverTriggerProps> & FluentTriggerComponent;
|
168
|
+
|
169
|
+
export declare type PopoverTriggerChildProps = {
|
170
|
+
ref?: React_2.Ref<never>;
|
171
|
+
} & Pick<React_2.HTMLAttributes<HTMLElement>, 'aria-haspopup' | 'onClick' | 'onMouseEnter' | 'onKeyDown' | 'onMouseLeave' | 'onContextMenu'>;
|
163
172
|
|
164
173
|
/**
|
165
174
|
* PopoverTrigger Props
|
166
175
|
*/
|
167
176
|
export declare type PopoverTriggerProps = {
|
168
|
-
children: React_2.ReactElement
|
177
|
+
children: (React_2.ReactElement & {
|
178
|
+
ref?: React_2.Ref<unknown>;
|
179
|
+
}) | ((props: PopoverTriggerChildProps) => React_2.ReactElement | null);
|
169
180
|
};
|
170
181
|
|
171
182
|
/**
|
172
183
|
* PopoverTrigger State
|
173
184
|
*/
|
174
|
-
export declare type PopoverTriggerState =
|
185
|
+
export declare type PopoverTriggerState = {
|
186
|
+
children: React_2.ReactElement | null;
|
187
|
+
};
|
175
188
|
|
176
189
|
/**
|
177
190
|
* Render the final JSX of Popover
|
178
191
|
*/
|
179
|
-
export declare const
|
192
|
+
export declare const renderPopover_unstable: (state: PopoverState) => JSX.Element;
|
180
193
|
|
181
194
|
/**
|
182
195
|
* Render the final JSX of PopoverSurface
|
183
196
|
*/
|
184
|
-
export declare const
|
197
|
+
export declare const renderPopoverSurface_unstable: (state: PopoverSurfaceState) => JSX.Element | null;
|
185
198
|
|
186
199
|
/**
|
187
200
|
* Render the final JSX of PopoverTrigger
|
188
201
|
*/
|
189
|
-
export declare const
|
202
|
+
export declare const renderPopoverTrigger_unstable: (state: PopoverTriggerState) => ReactElement<any, string | JSXElementConstructor<any>> | null;
|
190
203
|
|
191
204
|
/**
|
192
205
|
* Create the state required to render Popover.
|
193
206
|
*
|
194
207
|
* The returned state can be modified with hooks such as usePopoverStyles,
|
195
|
-
* before being passed to
|
208
|
+
* before being passed to renderPopover_unstable.
|
196
209
|
*
|
197
210
|
* @param props - props from this instance of Popover
|
198
211
|
*/
|
199
|
-
export declare const
|
212
|
+
export declare const usePopover_unstable: (props: PopoverProps) => PopoverState;
|
200
213
|
|
201
|
-
export declare const
|
214
|
+
export declare const usePopoverContext_unstable: <T>(selector: ContextSelector<PopoverContextValue, T>) => T;
|
202
215
|
|
203
216
|
/**
|
204
217
|
* Create the state required to render PopoverSurface.
|
205
218
|
*
|
206
|
-
* The returned state can be modified with hooks such as
|
207
|
-
* before being passed to
|
219
|
+
* The returned state can be modified with hooks such as usePopoverSurfaceStyles_unstable,
|
220
|
+
* before being passed to renderPopoverSurface_unstable.
|
208
221
|
*
|
209
222
|
* @param props - props from this instance of PopoverSurface
|
210
223
|
* @param ref - reference to root HTMLDivElement of PopoverSurface
|
211
224
|
*/
|
212
|
-
export declare const
|
225
|
+
export declare const usePopoverSurface_unstable: (props: PopoverSurfaceProps, ref: React_2.Ref<HTMLDivElement>) => PopoverSurfaceState;
|
213
226
|
|
214
227
|
/**
|
215
228
|
* Apply styling to the PopoverSurface slots based on the state
|
216
229
|
*/
|
217
|
-
export declare const
|
230
|
+
export declare const usePopoverSurfaceStyles_unstable: (state: PopoverSurfaceState) => PopoverSurfaceState;
|
218
231
|
|
219
232
|
/**
|
220
233
|
* Create the state required to render PopoverTrigger.
|
221
234
|
*
|
222
235
|
* The returned state can be modified with hooks such as usePopoverTriggerStyles,
|
223
|
-
* before being passed to
|
236
|
+
* before being passed to renderPopoverTrigger_unstable.
|
224
237
|
*
|
225
238
|
* @param props - props from this instance of PopoverTrigger
|
226
239
|
*/
|
227
|
-
export declare const
|
240
|
+
export declare const usePopoverTrigger_unstable: (props: PopoverTriggerProps) => PopoverTriggerState;
|
228
241
|
|
229
242
|
export { }
|
@@ -1,12 +1,12 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
1
|
+
import { usePopover_unstable } from './usePopover';
|
2
|
+
import { renderPopover_unstable } from './renderPopover';
|
3
3
|
/**
|
4
4
|
* Wrapper component that manages state for a PopoverTrigger and a PopoverSurface components.
|
5
5
|
*/
|
6
6
|
|
7
|
-
export
|
8
|
-
|
9
|
-
return
|
7
|
+
export const Popover = props => {
|
8
|
+
const state = usePopover_unstable(props);
|
9
|
+
return renderPopover_unstable(state);
|
10
10
|
};
|
11
11
|
Popover.displayName = 'Popover';
|
12
12
|
//# sourceMappingURL=Popover.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Popover/Popover.tsx"],"names":[],"mappings":"AACA,SAAS,
|
1
|
+
{"version":3,"sources":["../../../src/components/Popover/Popover.tsx"],"names":[],"mappings":"AACA,SAAS,mBAAT,QAAoC,cAApC;AACA,SAAS,sBAAT,QAAuC,iBAAvC;AAGA;;AAEG;;AACH,OAAO,MAAM,OAAO,GAA2B,KAAK,IAAG;AACrD,QAAM,KAAK,GAAG,mBAAmB,CAAC,KAAD,CAAjC;AAEA,SAAO,sBAAsB,CAAC,KAAD,CAA7B;AACD,CAJM;AAMP,OAAO,CAAC,WAAR,GAAsB,SAAtB","sourceRoot":""}
|
@@ -5,7 +5,7 @@ import type { PortalProps } from '@fluentui/react-portal';
|
|
5
5
|
* Determines popover padding and arrow size
|
6
6
|
*/
|
7
7
|
export declare type PopoverSize = 'small' | 'medium' | 'large';
|
8
|
-
|
8
|
+
declare type PopoverCommons = Pick<PortalProps, 'mountNode'> & {
|
9
9
|
/**
|
10
10
|
* Controls the opening of the Popover
|
11
11
|
*/
|
@@ -55,8 +55,8 @@ export declare type PopoverCommons = Pick<PortalProps, 'mountNode'> & {
|
|
55
55
|
*/
|
56
56
|
export declare type PopoverProps = Partial<PopoverCommons> & {
|
57
57
|
/**
|
58
|
-
* Can contain two children including {@link PopoverTrigger} and {@link
|
59
|
-
* Alternatively can only contain {@link
|
58
|
+
* Can contain two children including {@link PopoverTrigger} and {@link PopoverSurface}.
|
59
|
+
* Alternatively can only contain {@link PopoverSurface} if using a custom `target`.
|
60
60
|
*/
|
61
61
|
children: [JSX.Element, JSX.Element] | JSX.Element;
|
62
62
|
};
|
@@ -93,8 +93,11 @@ export declare type PopoverState = PopoverCommons & Pick<PopoverProps, 'children
|
|
93
93
|
/**
|
94
94
|
* Data attached to open/close events
|
95
95
|
*/
|
96
|
-
export declare type OnOpenChangeData =
|
96
|
+
export declare type OnOpenChangeData = {
|
97
|
+
open: boolean;
|
98
|
+
};
|
97
99
|
/**
|
98
100
|
* The supported events that will trigger open/close of the menu
|
99
101
|
*/
|
100
102
|
export declare type OpenPopoverEvents = MouseEvent | TouchEvent | React.MouseEvent<HTMLElement> | React.KeyboardEvent<HTMLElement> | React.FocusEvent<HTMLElement>;
|
103
|
+
export {};
|
@@ -4,33 +4,35 @@ import { PopoverContext } from '../../popoverContext';
|
|
4
4
|
* Render the final JSX of Popover
|
5
5
|
*/
|
6
6
|
|
7
|
-
export
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
7
|
+
export const renderPopover_unstable = state => {
|
8
|
+
const {
|
9
|
+
open,
|
10
|
+
setOpen,
|
11
|
+
triggerRef,
|
12
|
+
contentRef,
|
13
|
+
openOnContext,
|
14
|
+
openOnHover,
|
15
|
+
mountNode,
|
16
|
+
arrowRef,
|
17
|
+
size,
|
18
|
+
noArrow,
|
19
|
+
appearance,
|
20
|
+
trapFocus
|
21
|
+
} = state;
|
20
22
|
return /*#__PURE__*/React.createElement(PopoverContext.Provider, {
|
21
23
|
value: {
|
22
|
-
open
|
23
|
-
setOpen
|
24
|
-
triggerRef
|
25
|
-
contentRef
|
26
|
-
openOnHover
|
27
|
-
openOnContext
|
28
|
-
mountNode
|
29
|
-
arrowRef
|
30
|
-
size
|
31
|
-
noArrow
|
32
|
-
appearance
|
33
|
-
trapFocus
|
24
|
+
open,
|
25
|
+
setOpen,
|
26
|
+
triggerRef,
|
27
|
+
contentRef,
|
28
|
+
openOnHover,
|
29
|
+
openOnContext,
|
30
|
+
mountNode,
|
31
|
+
arrowRef,
|
32
|
+
size,
|
33
|
+
noArrow,
|
34
|
+
appearance,
|
35
|
+
trapFocus
|
34
36
|
}
|
35
37
|
}, state.children);
|
36
38
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Popover/renderPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,cAAT,QAA+B,sBAA/B;AAGA;;AAEG;;AACH,OAAO,
|
1
|
+
{"version":3,"sources":["../../../src/components/Popover/renderPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,cAAT,QAA+B,sBAA/B;AAGA;;AAEG;;AACH,OAAO,MAAM,sBAAsB,GAAI,KAAD,IAAwB;AAC5D,QAAM;AACJ,IAAA,IADI;AAEJ,IAAA,OAFI;AAGJ,IAAA,UAHI;AAIJ,IAAA,UAJI;AAKJ,IAAA,aALI;AAMJ,IAAA,WANI;AAOJ,IAAA,SAPI;AAQJ,IAAA,QARI;AASJ,IAAA,IATI;AAUJ,IAAA,OAVI;AAWJ,IAAA,UAXI;AAYJ,IAAA;AAZI,MAaF,KAbJ;AAeA,sBACE,KAAA,CAAA,aAAA,CAAC,cAAc,CAAC,QAAhB,EAAwB;AACtB,IAAA,KAAK,EAAE;AACL,MAAA,IADK;AAEL,MAAA,OAFK;AAGL,MAAA,UAHK;AAIL,MAAA,UAJK;AAKL,MAAA,WALK;AAML,MAAA,aANK;AAOL,MAAA,SAPK;AAQL,MAAA,QARK;AASL,MAAA,IATK;AAUL,MAAA,OAVK;AAWL,MAAA,UAXK;AAYL,MAAA;AAZK;AADe,GAAxB,EAgBG,KAAK,CAAC,QAhBT,CADF;AAoBD,CApCM","sourceRoot":""}
|
@@ -3,8 +3,8 @@ import type { PopoverProps, PopoverState } from './Popover.types';
|
|
3
3
|
* Create the state required to render Popover.
|
4
4
|
*
|
5
5
|
* The returned state can be modified with hooks such as usePopoverStyles,
|
6
|
-
* before being passed to
|
6
|
+
* before being passed to renderPopover_unstable.
|
7
7
|
*
|
8
8
|
* @param props - props from this instance of Popover
|
9
9
|
*/
|
10
|
-
export declare const
|
10
|
+
export declare const usePopover_unstable: (props: PopoverProps) => PopoverState;
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import { __assign } from "tslib";
|
2
1
|
import * as React from 'react';
|
3
2
|
import { useControllableState, useEventCallback, useOnClickOutside, useOnScrollOutside } from '@fluentui/react-utilities';
|
4
3
|
import { useFluent } from '@fluentui/react-shared-contexts';
|
@@ -9,75 +8,65 @@ import { arrowHeights } from '../PopoverSurface/index';
|
|
9
8
|
* Create the state required to render Popover.
|
10
9
|
*
|
11
10
|
* The returned state can be modified with hooks such as usePopoverStyles,
|
12
|
-
* before being passed to
|
11
|
+
* before being passed to renderPopover_unstable.
|
13
12
|
*
|
14
13
|
* @param props - props from this instance of Popover
|
15
14
|
*/
|
16
15
|
|
17
|
-
export
|
18
|
-
|
19
|
-
|
20
|
-
setContextTarget = _a[1];
|
21
|
-
|
22
|
-
var initialState = __assign({
|
16
|
+
export const usePopover_unstable = props => {
|
17
|
+
const [contextTarget, setContextTarget] = usePopperMouseTarget();
|
18
|
+
const initialState = {
|
23
19
|
size: 'medium',
|
24
|
-
contextTarget
|
25
|
-
setContextTarget
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
var targetDocument = useFluent().targetDocument;
|
20
|
+
contextTarget,
|
21
|
+
setContextTarget,
|
22
|
+
...props
|
23
|
+
};
|
24
|
+
const [open, setOpen] = useOpenState(initialState);
|
25
|
+
const popperRefs = usePopoverRefs(initialState);
|
26
|
+
const {
|
27
|
+
targetDocument
|
28
|
+
} = useFluent();
|
34
29
|
useOnClickOutside({
|
35
30
|
contains: elementContains,
|
36
31
|
element: targetDocument,
|
37
|
-
callback:
|
38
|
-
return setOpen(ev, false);
|
39
|
-
},
|
32
|
+
callback: ev => setOpen(ev, false),
|
40
33
|
refs: [popperRefs.triggerRef, popperRefs.contentRef],
|
41
34
|
disabled: !open
|
42
35
|
});
|
43
36
|
useOnScrollOutside({
|
44
37
|
contains: elementContains,
|
45
38
|
element: targetDocument,
|
46
|
-
callback:
|
47
|
-
return setOpen(ev, false);
|
48
|
-
},
|
39
|
+
callback: ev => setOpen(ev, false),
|
49
40
|
refs: [popperRefs.triggerRef, popperRefs.contentRef],
|
50
|
-
disabled: !open || !initialState.openOnContext
|
51
|
-
|
52
|
-
return __assign(__assign(__assign({}, initialState), popperRefs), {
|
53
|
-
open: open,
|
54
|
-
setOpen: setOpen,
|
55
|
-
setContextTarget: setContextTarget,
|
56
|
-
contextTarget: contextTarget
|
41
|
+
disabled: !open || !initialState.openOnContext // only close on scroll for context
|
42
|
+
|
57
43
|
});
|
44
|
+
return { ...initialState,
|
45
|
+
...popperRefs,
|
46
|
+
open,
|
47
|
+
setOpen,
|
48
|
+
setContextTarget,
|
49
|
+
contextTarget
|
50
|
+
};
|
58
51
|
};
|
59
52
|
/**
|
60
53
|
* Creates and manages the Popover open state
|
61
54
|
*/
|
62
55
|
|
63
56
|
function useOpenState(state) {
|
64
|
-
|
57
|
+
const onOpenChange = useEventCallback((e, data) => {
|
65
58
|
var _a;
|
66
59
|
|
67
60
|
return (_a = state.onOpenChange) === null || _a === void 0 ? void 0 : _a.call(state, e, data);
|
68
61
|
});
|
69
|
-
|
70
|
-
var _a = useControllableState({
|
62
|
+
const [open, setOpenState] = useControllableState({
|
71
63
|
state: state.open,
|
72
64
|
defaultState: state.defaultOpen,
|
73
65
|
initialState: false
|
74
|
-
})
|
75
|
-
open = _a[0],
|
76
|
-
setOpenState = _a[1];
|
77
|
-
|
66
|
+
});
|
78
67
|
state.open = open !== undefined ? open : state.open;
|
79
|
-
|
80
|
-
|
68
|
+
const setContextTarget = state.setContextTarget;
|
69
|
+
const setOpen = React.useCallback((e, shouldOpen) => {
|
81
70
|
if (shouldOpen && e.type === 'contextmenu') {
|
82
71
|
setContextTarget(e);
|
83
72
|
}
|
@@ -86,7 +75,7 @@ function useOpenState(state) {
|
|
86
75
|
setContextTarget(undefined);
|
87
76
|
}
|
88
77
|
|
89
|
-
setOpenState(
|
78
|
+
setOpenState(prevOpen => {
|
90
79
|
// More than one event (mouse, focus, keyboard) can request the Popover to close
|
91
80
|
// We assume the first event is the correct one
|
92
81
|
if (prevOpen !== shouldOpen) {
|
@@ -106,12 +95,12 @@ function useOpenState(state) {
|
|
106
95
|
|
107
96
|
|
108
97
|
function usePopoverRefs(state) {
|
109
|
-
|
98
|
+
const popperOptions = {
|
110
99
|
position: 'above',
|
111
100
|
align: 'center',
|
112
|
-
target: state.openOnContext ? state.contextTarget : undefined
|
113
|
-
|
114
|
-
|
101
|
+
target: state.openOnContext ? state.contextTarget : undefined,
|
102
|
+
...resolvePositioningShorthand(state.positioning)
|
103
|
+
}; // no reason to render arrow when covering the target
|
115
104
|
|
116
105
|
if (popperOptions.coverTarget) {
|
117
106
|
state.noArrow = true;
|
@@ -121,15 +110,15 @@ function usePopoverRefs(state) {
|
|
121
110
|
popperOptions.offset = mergeArrowOffset(popperOptions.offset, arrowHeights[state.size]);
|
122
111
|
}
|
123
112
|
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
113
|
+
const {
|
114
|
+
targetRef: triggerRef,
|
115
|
+
containerRef: contentRef,
|
116
|
+
arrowRef
|
117
|
+
} = usePopper(popperOptions);
|
129
118
|
return {
|
130
|
-
triggerRef
|
131
|
-
contentRef
|
132
|
-
arrowRef
|
119
|
+
triggerRef,
|
120
|
+
contentRef,
|
121
|
+
arrowRef
|
133
122
|
};
|
134
123
|
}
|
135
124
|
//# sourceMappingURL=usePopover.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/components/Popover/usePopover.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"sources":["../../../src/components/Popover/usePopover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SACE,oBADF,EAEE,gBAFF,EAGE,iBAHF,EAIE,kBAJF,QAKO,2BALP;AAMA,SAAS,SAAT,QAA0B,iCAA1B;AACA,SACE,SADF,EAEE,2BAFF,EAGE,gBAHF,EAIE,oBAJF,QAKO,6BALP;AAMA,SAAS,eAAT,QAAgC,wBAAhC;AACA,SAAS,YAAT,QAA6B,yBAA7B;AAGA;;;;;;;AAOG;;AACH,OAAO,MAAM,mBAAmB,GAAI,KAAD,IAAsC;AACvE,QAAM,CAAC,aAAD,EAAgB,gBAAhB,IAAoC,oBAAoB,EAA9D;AACA,QAAM,YAAY,GAAG;AACnB,IAAA,IAAI,EAAE,QADa;AAEnB,IAAA,aAFmB;AAGnB,IAAA,gBAHmB;AAInB,OAAG;AAJgB,GAArB;AAOA,QAAM,CAAC,IAAD,EAAO,OAAP,IAAkB,YAAY,CAAC,YAAD,CAApC;AACA,QAAM,UAAU,GAAG,cAAc,CAAC,YAAD,CAAjC;AAEA,QAAM;AAAE,IAAA;AAAF,MAAqB,SAAS,EAApC;AACA,EAAA,iBAAiB,CAAC;AAChB,IAAA,QAAQ,EAAE,eADM;AAEhB,IAAA,OAAO,EAAE,cAFO;AAGhB,IAAA,QAAQ,EAAE,EAAE,IAAI,OAAO,CAAC,EAAD,EAAK,KAAL,CAHP;AAIhB,IAAA,IAAI,EAAE,CAAC,UAAU,CAAC,UAAZ,EAAwB,UAAU,CAAC,UAAnC,CAJU;AAKhB,IAAA,QAAQ,EAAE,CAAC;AALK,GAAD,CAAjB;AAOA,EAAA,kBAAkB,CAAC;AACjB,IAAA,QAAQ,EAAE,eADO;AAEjB,IAAA,OAAO,EAAE,cAFQ;AAGjB,IAAA,QAAQ,EAAE,EAAE,IAAI,OAAO,CAAC,EAAD,EAAK,KAAL,CAHN;AAIjB,IAAA,IAAI,EAAE,CAAC,UAAU,CAAC,UAAZ,EAAwB,UAAU,CAAC,UAAnC,CAJW;AAKjB,IAAA,QAAQ,EAAE,CAAC,IAAD,IAAS,CAAC,YAAY,CAAC,aALhB,CAK+B;;AAL/B,GAAD,CAAlB;AAQA,SAAO,EACL,GAAG,YADE;AAEL,OAAG,UAFE;AAGL,IAAA,IAHK;AAIL,IAAA,OAJK;AAKL,IAAA,gBALK;AAML,IAAA;AANK,GAAP;AAQD,CApCM;AAsCP;;AAEG;;AACH,SAAS,YAAT,CACE,KADF,EAC6G;AAE3G,QAAM,YAAY,GAAiC,gBAAgB,CAAC,CAAC,CAAD,EAAI,IAAJ,KAAY;AAAA,QAAA,EAAA;;AAAC,WAAA,CAAA,EAAA,GAAA,KAAK,CAAC,YAAN,MAAkB,IAAlB,IAAkB,EAAA,KAAA,KAAA,CAAlB,GAAkB,KAAA,CAAlB,GAAkB,EAAA,CAAA,IAAA,CAAlB,KAAkB,EAAG,CAAH,EAAM,IAAN,CAAlB;AAA6B,GAA3C,CAAnE;AAEA,QAAM,CAAC,IAAD,EAAO,YAAP,IAAuB,oBAAoB,CAAC;AAChD,IAAA,KAAK,EAAE,KAAK,CAAC,IADmC;AAEhD,IAAA,YAAY,EAAE,KAAK,CAAC,WAF4B;AAGhD,IAAA,YAAY,EAAE;AAHkC,GAAD,CAAjD;AAKA,EAAA,KAAK,CAAC,IAAN,GAAa,IAAI,KAAK,SAAT,GAAqB,IAArB,GAA4B,KAAK,CAAC,IAA/C;AACA,QAAM,gBAAgB,GAAG,KAAK,CAAC,gBAA/B;AAEA,QAAM,OAAO,GAAG,KAAK,CAAC,WAAN,CACd,CAAC,CAAD,EAAuB,UAAvB,KAA8C;AAC5C,QAAI,UAAU,IAAI,CAAC,CAAC,IAAF,KAAW,aAA7B,EAA4C;AAC1C,MAAA,gBAAgB,CAAC,CAAD,CAAhB;AACD;;AAED,QAAI,CAAC,UAAL,EAAiB;AACf,MAAA,gBAAgB,CAAC,SAAD,CAAhB;AACD;;AAED,IAAA,YAAY,CAAC,QAAQ,IAAG;AACtB;AACA;AACA,UAAI,QAAQ,KAAK,UAAjB,EAA6B;AAC3B,QAAA,YAAY,KAAA,IAAZ,IAAA,YAAY,KAAA,KAAA,CAAZ,GAAY,KAAA,CAAZ,GAAA,YAAY,CAAG,CAAH,EAAM;AAAE,UAAA,IAAI,EAAE;AAAR,SAAN,CAAZ;AACD;;AAED,aAAO,UAAP;AACD,KARW,CAAZ;AASD,GAnBa,EAoBd,CAAC,YAAD,EAAe,YAAf,EAA6B,gBAA7B,CApBc,CAAhB;AAuBA,SAAO,CAAC,IAAD,EAAO,OAAP,CAAP;AACD;AAED;;AAEG;;;AACH,SAAS,cAAT,CACE,KADF,EACuH;AAErH,QAAM,aAAa,GAAG;AACpB,IAAA,QAAQ,EAAE,OADU;AAEpB,IAAA,KAAK,EAAE,QAFa;AAGpB,IAAA,MAAM,EAAE,KAAK,CAAC,aAAN,GAAsB,KAAK,CAAC,aAA5B,GAA4C,SAHhC;AAIpB,OAAG,2BAA2B,CAAC,KAAK,CAAC,WAAP;AAJV,GAAtB,CAFqH,CASrH;;AACA,MAAI,aAAa,CAAC,WAAlB,EAA+B;AAC7B,IAAA,KAAK,CAAC,OAAN,GAAgB,IAAhB;AACD;;AAED,MAAI,CAAC,KAAK,CAAC,OAAX,EAAoB;AAClB,IAAA,aAAa,CAAC,MAAd,GAAuB,gBAAgB,CAAC,aAAa,CAAC,MAAf,EAAuB,YAAY,CAAC,KAAK,CAAC,IAAP,CAAnC,CAAvC;AACD;;AAED,QAAM;AAAE,IAAA,SAAS,EAAE,UAAb;AAAyB,IAAA,YAAY,EAAE,UAAvC;AAAmD,IAAA;AAAnD,MAAgE,SAAS,CAAC,aAAD,CAA/E;AAEA,SAAO;AACL,IAAA,UADK;AAEL,IAAA,UAFK;AAGL,IAAA;AAHK,GAAP;AAKD","sourceRoot":""}
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import * as React from 'react';
|
2
|
-
import {
|
3
|
-
import {
|
4
|
-
import {
|
2
|
+
import { usePopoverSurface_unstable } from './usePopoverSurface';
|
3
|
+
import { renderPopoverSurface_unstable } from './renderPopoverSurface';
|
4
|
+
import { usePopoverSurfaceStyles_unstable } from './usePopoverSurfaceStyles';
|
5
5
|
/**
|
6
6
|
* PopoverSurface component renders react children in a positioned box
|
7
7
|
*/
|
8
8
|
|
9
|
-
export
|
10
|
-
|
11
|
-
|
12
|
-
return
|
9
|
+
export const PopoverSurface = /*#__PURE__*/React.forwardRef((props, ref) => {
|
10
|
+
const state = usePopoverSurface_unstable(props, ref);
|
11
|
+
usePopoverSurfaceStyles_unstable(state);
|
12
|
+
return renderPopoverSurface_unstable(state);
|
13
13
|
});
|
14
14
|
PopoverSurface.displayName = 'PopoverSurface';
|
15
15
|
//# sourceMappingURL=PopoverSurface.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/components/PopoverSurface/PopoverSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,
|
1
|
+
{"version":3,"sources":["../../../src/components/PopoverSurface/PopoverSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,0BAAT,QAA2C,qBAA3C;AACA,SAAS,6BAAT,QAA8C,wBAA9C;AACA,SAAS,gCAAT,QAAiD,2BAAjD;AAIA;;AAEG;;AACH,OAAO,MAAM,cAAc,gBAA6C,KAAK,CAAC,UAAN,CAAiB,CAAC,KAAD,EAAQ,GAAR,KAAe;AACtG,QAAM,KAAK,GAAG,0BAA0B,CAAC,KAAD,EAAQ,GAAR,CAAxC;AAEA,EAAA,gCAAgC,CAAC,KAAD,CAAhC;AACA,SAAO,6BAA6B,CAAC,KAAD,CAApC;AACD,CALuE,CAAjE;AAOP,cAAc,CAAC,WAAf,GAA6B,gBAA7B","sourceRoot":""}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { ComponentProps, ComponentState,
|
1
|
+
import type { ComponentProps, ComponentState, Slot } from '@fluentui/react-utilities';
|
2
2
|
import type { PopoverContextValue } from '../../popoverContext';
|
3
3
|
/**
|
4
4
|
* PopoverSurface Props
|
@@ -8,7 +8,7 @@ export declare type PopoverSurfaceProps = ComponentProps<PopoverSurfaceSlots>;
|
|
8
8
|
* Names of the slots in PopoverSurfaceProps
|
9
9
|
*/
|
10
10
|
export declare type PopoverSurfaceSlots = {
|
11
|
-
root:
|
11
|
+
root: Slot<'div'>;
|
12
12
|
};
|
13
13
|
/**
|
14
14
|
* PopoverSurface State
|
@@ -2,4 +2,4 @@ import type { PopoverSurfaceState } from './PopoverSurface.types';
|
|
2
2
|
/**
|
3
3
|
* Render the final JSX of PopoverSurface
|
4
4
|
*/
|
5
|
-
export declare const
|
5
|
+
export declare const renderPopoverSurface_unstable: (state: PopoverSurfaceState) => JSX.Element | null;
|
@@ -1,17 +1,15 @@
|
|
1
|
-
import { __assign } from "tslib";
|
2
1
|
import * as React from 'react';
|
3
2
|
import { Portal } from '@fluentui/react-portal';
|
4
3
|
import { getSlots } from '@fluentui/react-utilities';
|
5
|
-
import { popoverSurfaceSlots } from './usePopoverSurface';
|
6
4
|
/**
|
7
5
|
* Render the final JSX of PopoverSurface
|
8
6
|
*/
|
9
7
|
|
10
|
-
export
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
8
|
+
export const renderPopoverSurface_unstable = state => {
|
9
|
+
const {
|
10
|
+
slots,
|
11
|
+
slotProps
|
12
|
+
} = getSlots(state); // TODO should hidden Popovers be supported ?
|
15
13
|
|
16
14
|
if (!state.open) {
|
17
15
|
return null;
|
@@ -19,7 +17,8 @@ export var renderPopoverSurface = function (state) {
|
|
19
17
|
|
20
18
|
return /*#__PURE__*/React.createElement(Portal, {
|
21
19
|
mountNode: state.mountNode
|
22
|
-
}, /*#__PURE__*/React.createElement(slots.root,
|
20
|
+
}, /*#__PURE__*/React.createElement(slots.root, { ...slotProps.root
|
21
|
+
}, !state.noArrow && /*#__PURE__*/React.createElement("div", {
|
23
22
|
ref: state.arrowRef,
|
24
23
|
className: state.arrowClassName
|
25
24
|
}), slotProps.root.children));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/components/PopoverSurface/renderPopoverSurface.tsx"],"names":[],"mappings":"
|
1
|
+
{"version":3,"sources":["../../../src/components/PopoverSurface/renderPopoverSurface.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAZ,MAAuB,OAAvB;AACA,SAAS,MAAT,QAAuB,wBAAvB;AACA,SAAS,QAAT,QAAyB,2BAAzB;AAGA;;AAEG;;AACH,OAAO,MAAM,6BAA6B,GAAI,KAAD,IAA+B;AAC1E,QAAM;AAAE,IAAA,KAAF;AAAS,IAAA;AAAT,MAAuB,QAAQ,CAAsB,KAAtB,CAArC,CAD0E,CAG1E;;AACA,MAAI,CAAC,KAAK,CAAC,IAAX,EAAiB;AACf,WAAO,IAAP;AACD;;AAED,sBACE,KAAA,CAAA,aAAA,CAAC,MAAD,EAAO;AAAC,IAAA,SAAS,EAAE,KAAK,CAAC;AAAlB,GAAP,eACE,KAAA,CAAA,aAAA,CAAC,KAAK,CAAC,IAAP,EAAW,EAAA,GAAK,SAAS,CAAC;AAAf,GAAX,EACG,CAAC,KAAK,CAAC,OAAP,iBAAkB,KAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,GAAG,EAAE,KAAK,CAAC,QAAhB;AAA0B,IAAA,SAAS,EAAE,KAAK,CAAC;AAA3C,GAAA,CADrB,EAEG,SAAS,CAAC,IAAV,CAAe,QAFlB,CADF,CADF;AAQD,CAhBM","sourceRoot":""}
|
@@ -1,13 +1,12 @@
|
|
1
1
|
import * as React from 'react';
|
2
|
-
import type { PopoverSurfaceProps,
|
3
|
-
export declare const popoverSurfaceSlots: Array<keyof PopoverSurfaceSlots>;
|
2
|
+
import type { PopoverSurfaceProps, PopoverSurfaceState } from './PopoverSurface.types';
|
4
3
|
/**
|
5
4
|
* Create the state required to render PopoverSurface.
|
6
5
|
*
|
7
|
-
* The returned state can be modified with hooks such as
|
8
|
-
* before being passed to
|
6
|
+
* The returned state can be modified with hooks such as usePopoverSurfaceStyles_unstable,
|
7
|
+
* before being passed to renderPopoverSurface_unstable.
|
9
8
|
*
|
10
9
|
* @param props - props from this instance of PopoverSurface
|
11
10
|
* @param ref - reference to root HTMLDivElement of PopoverSurface
|
12
11
|
*/
|
13
|
-
export declare const
|
12
|
+
export declare const usePopoverSurface_unstable: (props: PopoverSurfaceProps, ref: React.Ref<HTMLDivElement>) => PopoverSurfaceState;
|