@fluentui-copilot/react-preview 0.8.1 → 0.8.3
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.json +36 -0
- package/CHANGELOG.md +20 -1
- package/lib/Preview.js +0 -1
- package/lib/PreviewContent.js +0 -1
- package/lib/PreviewHeader.js +0 -1
- package/lib/PreviewMetadata.js +0 -1
- package/lib/PreviewSurface.js +0 -1
- package/lib/PreviewTrigger.js +0 -1
- package/lib/components/Preview/Preview.js +3 -4
- package/lib/components/Preview/Preview.types.js +1 -2
- package/lib/components/Preview/index.js +0 -1
- package/lib/components/Preview/renderPreview.js +22 -41
- package/lib/components/Preview/usePreview.js +234 -239
- package/lib/components/PreviewContent/PreviewContent.js +4 -5
- package/lib/components/PreviewContent/PreviewContent.types.js +1 -2
- package/lib/components/PreviewContent/index.js +0 -1
- package/lib/components/PreviewContent/renderPreviewContent.js +4 -6
- package/lib/components/PreviewContent/usePreviewContent.js +12 -14
- package/lib/components/PreviewContent/usePreviewContentStyles.styles.raw.js +26 -0
- package/lib/components/PreviewContent/usePreviewContentStyles.styles.raw.js.map +1 -0
- package/lib/components/PreviewHeader/PreviewHeader.js +4 -5
- package/lib/components/PreviewHeader/PreviewHeader.types.js +1 -2
- package/lib/components/PreviewHeader/index.js +0 -1
- package/lib/components/PreviewHeader/renderPreviewHeader.js +11 -8
- package/lib/components/PreviewHeader/usePreviewHeader.js +48 -56
- package/lib/components/PreviewHeader/usePreviewHeaderStyles.styles.raw.js +110 -0
- package/lib/components/PreviewHeader/usePreviewHeaderStyles.styles.raw.js.map +1 -0
- package/lib/components/PreviewMetadata/PreviewMetadata.js +4 -5
- package/lib/components/PreviewMetadata/PreviewMetadata.types.js +1 -2
- package/lib/components/PreviewMetadata/index.js +0 -1
- package/lib/components/PreviewMetadata/renderPreviewMetadata.js +12 -8
- package/lib/components/PreviewMetadata/usePreviewMetadata.js +29 -36
- package/lib/components/PreviewMetadata/usePreviewMetadataStyles.styles.raw.js +56 -0
- package/lib/components/PreviewMetadata/usePreviewMetadataStyles.styles.raw.js.map +1 -0
- package/lib/components/PreviewSurface/PreviewSurface.js +4 -5
- package/lib/components/PreviewSurface/PreviewSurface.types.js +1 -2
- package/lib/components/PreviewSurface/index.js +0 -1
- package/lib/components/PreviewSurface/renderPreviewSurface.js +2 -4
- package/lib/components/PreviewSurface/usePreviewSurface.js +6 -8
- package/lib/components/PreviewSurface/usePreviewSurfaceStyles.styles.raw.js +29 -0
- package/lib/components/PreviewSurface/usePreviewSurfaceStyles.styles.raw.js.map +1 -0
- package/lib/components/PreviewTrigger/PreviewTrigger.js +3 -4
- package/lib/components/PreviewTrigger/PreviewTrigger.types.js +1 -2
- package/lib/components/PreviewTrigger/index.js +0 -1
- package/lib/components/PreviewTrigger/renderPreviewTrigger.js +2 -4
- package/lib/components/PreviewTrigger/usePreviewTrigger.js +2 -4
- package/lib/index.js +0 -1
- package/lib/previewContext.js +19 -20
- package/lib/utils/index.js +0 -1
- package/lib/utils/openedByHoverPreviewManager.js +14 -15
- package/lib-commonjs/Preview.js +0 -1
- package/lib-commonjs/PreviewContent.js +0 -1
- package/lib-commonjs/PreviewHeader.js +0 -1
- package/lib-commonjs/PreviewMetadata.js +0 -1
- package/lib-commonjs/PreviewSurface.js +0 -1
- package/lib-commonjs/PreviewTrigger.js +0 -1
- package/lib-commonjs/components/Preview/Preview.js +1 -1
- package/lib-commonjs/components/Preview/Preview.js.map +1 -1
- package/lib-commonjs/components/Preview/Preview.types.js +0 -1
- package/lib-commonjs/components/Preview/index.js +0 -1
- package/lib-commonjs/components/Preview/renderPreview.js +1 -1
- package/lib-commonjs/components/Preview/renderPreview.js.map +1 -1
- package/lib-commonjs/components/Preview/usePreview.js +1 -1
- package/lib-commonjs/components/Preview/usePreview.js.map +1 -1
- package/lib-commonjs/components/PreviewContent/PreviewContent.js +1 -1
- package/lib-commonjs/components/PreviewContent/PreviewContent.js.map +1 -1
- package/lib-commonjs/components/PreviewContent/PreviewContent.types.js +0 -1
- package/lib-commonjs/components/PreviewContent/index.js +0 -1
- package/lib-commonjs/components/PreviewContent/renderPreviewContent.js +1 -1
- package/lib-commonjs/components/PreviewContent/renderPreviewContent.js.map +1 -1
- package/lib-commonjs/components/PreviewContent/usePreviewContent.js +1 -1
- package/lib-commonjs/components/PreviewContent/usePreviewContent.js.map +1 -1
- package/lib-commonjs/components/PreviewContent/usePreviewContentStyles.styles.raw.js +42 -0
- package/lib-commonjs/components/PreviewContent/usePreviewContentStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/PreviewHeader/PreviewHeader.js +1 -1
- package/lib-commonjs/components/PreviewHeader/PreviewHeader.js.map +1 -1
- package/lib-commonjs/components/PreviewHeader/PreviewHeader.types.js +0 -1
- package/lib-commonjs/components/PreviewHeader/index.js +0 -1
- package/lib-commonjs/components/PreviewHeader/renderPreviewHeader.js +1 -1
- package/lib-commonjs/components/PreviewHeader/renderPreviewHeader.js.map +1 -1
- package/lib-commonjs/components/PreviewHeader/usePreviewHeader.js +1 -1
- package/lib-commonjs/components/PreviewHeader/usePreviewHeader.js.map +1 -1
- package/lib-commonjs/components/PreviewHeader/usePreviewHeaderStyles.styles.raw.js +129 -0
- package/lib-commonjs/components/PreviewHeader/usePreviewHeaderStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/PreviewMetadata/PreviewMetadata.js +1 -1
- package/lib-commonjs/components/PreviewMetadata/PreviewMetadata.js.map +1 -1
- package/lib-commonjs/components/PreviewMetadata/PreviewMetadata.types.js +0 -1
- package/lib-commonjs/components/PreviewMetadata/index.js +0 -1
- package/lib-commonjs/components/PreviewMetadata/renderPreviewMetadata.js +1 -1
- package/lib-commonjs/components/PreviewMetadata/renderPreviewMetadata.js.map +1 -1
- package/lib-commonjs/components/PreviewMetadata/usePreviewMetadata.js +1 -1
- package/lib-commonjs/components/PreviewMetadata/usePreviewMetadata.js.map +1 -1
- package/lib-commonjs/components/PreviewMetadata/usePreviewMetadataStyles.styles.raw.js +72 -0
- package/lib-commonjs/components/PreviewMetadata/usePreviewMetadataStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/PreviewSurface/PreviewSurface.js +1 -1
- package/lib-commonjs/components/PreviewSurface/PreviewSurface.js.map +1 -1
- package/lib-commonjs/components/PreviewSurface/PreviewSurface.types.js +0 -1
- package/lib-commonjs/components/PreviewSurface/index.js +0 -1
- package/lib-commonjs/components/PreviewSurface/renderPreviewSurface.js +1 -1
- package/lib-commonjs/components/PreviewSurface/renderPreviewSurface.js.map +1 -1
- package/lib-commonjs/components/PreviewSurface/usePreviewSurface.js +1 -1
- package/lib-commonjs/components/PreviewSurface/usePreviewSurface.js.map +1 -1
- package/lib-commonjs/components/PreviewSurface/usePreviewSurfaceStyles.styles.raw.js +45 -0
- package/lib-commonjs/components/PreviewSurface/usePreviewSurfaceStyles.styles.raw.js.map +1 -0
- package/lib-commonjs/components/PreviewTrigger/PreviewTrigger.js +1 -1
- package/lib-commonjs/components/PreviewTrigger/PreviewTrigger.js.map +1 -1
- package/lib-commonjs/components/PreviewTrigger/PreviewTrigger.types.js +0 -1
- package/lib-commonjs/components/PreviewTrigger/index.js +0 -1
- package/lib-commonjs/components/PreviewTrigger/renderPreviewTrigger.js +1 -1
- package/lib-commonjs/components/PreviewTrigger/renderPreviewTrigger.js.map +1 -1
- package/lib-commonjs/components/PreviewTrigger/usePreviewTrigger.js +1 -1
- package/lib-commonjs/components/PreviewTrigger/usePreviewTrigger.js.map +1 -1
- package/lib-commonjs/index.js +0 -1
- package/lib-commonjs/previewContext.js +1 -1
- package/lib-commonjs/previewContext.js.map +1 -1
- package/lib-commonjs/utils/index.js +0 -1
- package/lib-commonjs/utils/openedByHoverPreviewManager.js +1 -1
- package/lib-commonjs/utils/openedByHoverPreviewManager.js.map +1 -1
- package/package.json +7 -7
|
@@ -5,11 +5,11 @@ import { useTimeout } from '@fluentui/react-utilities';
|
|
|
5
5
|
import { addOpenedByHoverPreview, closeAllOpenedByHoverPreviews, removeOpenedByHoverPreview } from '../../utils';
|
|
6
6
|
const POPOVER_MOUSE_DELAY = 250;
|
|
7
7
|
const POPOVER_KEYBOARD_HIDE_DELAY = 0;
|
|
8
|
-
const getDelay = (type, popoverMouseHideDelay)
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
const getDelay = (type, popoverMouseHideDelay)=>{
|
|
9
|
+
if (type === 'focus' || type === 'blur') {
|
|
10
|
+
return POPOVER_KEYBOARD_HIDE_DELAY;
|
|
11
|
+
}
|
|
12
|
+
return popoverMouseHideDelay;
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
15
15
|
* Create the state required to render Preview.
|
|
@@ -19,248 +19,243 @@ const getDelay = (type, popoverMouseHideDelay) => {
|
|
|
19
19
|
*
|
|
20
20
|
* @param props - props from this instance of Preview
|
|
21
21
|
* @param ref - reference to root HTMLElement of Preview
|
|
22
|
-
*/
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const [disableAutoFocus, setDisableAutoFocus] = React.useState(true);
|
|
39
|
-
const {
|
|
40
|
-
current: previewInternalState
|
|
41
|
-
} = React.useRef({
|
|
42
|
-
openByClick: false,
|
|
43
|
-
openByHoverOverTrigger: false,
|
|
44
|
-
openByHoverOverPopover: false,
|
|
45
|
-
openByKeyboard: false
|
|
46
|
-
});
|
|
47
|
-
const triggerMousedOver = React.useRef(false);
|
|
48
|
-
const isOpen = () => {
|
|
49
|
-
return previewInternalState.openByClick || previewInternalState.openByHoverOverTrigger || previewInternalState.openByHoverOverPopover || previewInternalState.openByKeyboard;
|
|
50
|
-
};
|
|
51
|
-
const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
|
|
52
|
-
const preventDefaultClose = React.useRef(false);
|
|
53
|
-
let popoverTrigger = undefined;
|
|
54
|
-
let popoverSurface = undefined;
|
|
55
|
-
if (children.length === 2) {
|
|
56
|
-
popoverTrigger = children[0];
|
|
57
|
-
popoverSurface = children[1];
|
|
58
|
-
} else if (children.length === 1) {
|
|
59
|
-
popoverSurface = children[0];
|
|
60
|
-
}
|
|
61
|
-
const popoverSurfaceId = useId('preview-surface', popoverSurface === null || popoverSurface === void 0 ? void 0 : popoverSurface.props.id);
|
|
62
|
-
const closeCallback = () => {
|
|
63
|
-
previewInternalState.openByClick = false;
|
|
64
|
-
previewInternalState.openByHoverOverTrigger = false;
|
|
65
|
-
previewInternalState.openByHoverOverPopover = false;
|
|
66
|
-
previewInternalState.openByKeyboard = false;
|
|
67
|
-
setIsPopoverOpen(isOpen());
|
|
68
|
-
clearEnterTimeout();
|
|
69
|
-
};
|
|
70
|
-
React.useEffect(() => {
|
|
71
|
-
return () => {
|
|
72
|
-
// Remove all instances of the current popover from the openedByHoverPreviewManager when the component is unmounted.
|
|
73
|
-
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
74
|
-
};
|
|
75
|
-
}, [popoverSurfaceId]);
|
|
76
|
-
if (popoverSurface && popoverTrigger) {
|
|
77
|
-
const handleTriggerTargetEnter = e => {
|
|
78
|
-
previewInternalState.openByHoverOverTrigger = true;
|
|
79
|
-
triggerMousedOver.current = true;
|
|
80
|
-
// We want to disable auto focus only if the popover is being opened by hovering over the trigger
|
|
81
|
-
if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen) {
|
|
82
|
-
setDisableAutoFocus(true);
|
|
83
|
-
closeAllOpenedByHoverPreviews(popoverSurfaceId);
|
|
84
|
-
}
|
|
85
|
-
setEnterTimeout(() => {
|
|
86
|
-
if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen && isOpen()) {
|
|
87
|
-
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
88
|
-
open: true
|
|
89
|
-
});
|
|
90
|
-
addOpenedByHoverPreview(popoverSurfaceId, closeCallback);
|
|
91
|
-
}
|
|
92
|
-
setIsPopoverOpen(isOpen());
|
|
93
|
-
}, showDelay);
|
|
94
|
-
};
|
|
95
|
-
const handleTriggerTargetLeave = e => {
|
|
96
|
-
previewInternalState.openByHoverOverTrigger = false;
|
|
97
|
-
triggerMousedOver.current = false;
|
|
98
|
-
setLeaveTimeout(() => {
|
|
99
|
-
setIsPopoverOpen(isOpen());
|
|
100
|
-
// We want to call onOpenChange only if the popover is actually closing when leaving the trigger
|
|
101
|
-
if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !previewInternalState.openByHoverOverPopover && isPopoverOpen) {
|
|
102
|
-
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
103
|
-
open: false
|
|
104
|
-
});
|
|
105
|
-
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
106
|
-
}
|
|
107
|
-
}, getDelay(e.type, hideDelay));
|
|
108
|
-
};
|
|
109
|
-
const handleTriggerClick = e => {
|
|
110
|
-
// Setting preventDefaultClose so that onPopoverOpenChange does not apply its logic when click is on the trigger as we want to control that behavior.
|
|
111
|
-
preventDefaultClose.current = true;
|
|
112
|
-
// We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via click.
|
|
113
|
-
setDisableAutoFocus(false);
|
|
114
|
-
const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;
|
|
115
|
-
// If openByKeyboard is true, then the popover was already opened via keyboard and we always want to close it.
|
|
116
|
-
previewInternalState.openByClick = previewInternalState.openByKeyboard ? false : !previewInternalState.openByClick;
|
|
117
|
-
previewInternalState.openByHoverOverTrigger = false;
|
|
118
|
-
previewInternalState.openByHoverOverPopover = false;
|
|
119
|
-
previewInternalState.openByKeyboard = false;
|
|
120
|
-
// We set triggerMousedOver to false when clicking, since we just interacted with the trigger via click, and not hover.
|
|
121
|
-
if (triggerMousedOver.current) {
|
|
122
|
-
previewInternalState.openByClick = false;
|
|
123
|
-
triggerMousedOver.current = false;
|
|
124
|
-
} else {
|
|
125
|
-
e.preventDefault();
|
|
126
|
-
}
|
|
127
|
-
if (!tmpOpenByHoverOverTrigger) {
|
|
128
|
-
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
129
|
-
open: previewInternalState.openByClick
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
if (!isOpen()) {
|
|
133
|
-
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
134
|
-
}
|
|
135
|
-
setIsPopoverOpen(isOpen());
|
|
22
|
+
*/ export const usePreview_unstable = (props)=>{
|
|
23
|
+
const { hideDelay = POPOVER_MOUSE_DELAY, onOpenChange, open, positioning, showDelay = POPOVER_MOUSE_DELAY, unstable_disableAutoFocus } = props;
|
|
24
|
+
const children = React.Children.toArray(props.children);
|
|
25
|
+
const { targetDocument } = useFluent();
|
|
26
|
+
const [setEnterTimeout, clearEnterTimeout] = useTimeout();
|
|
27
|
+
const [setLeaveTimeout, clearLeaveTimeout] = useTimeout();
|
|
28
|
+
const [disableAutoFocus, setDisableAutoFocus] = React.useState(true);
|
|
29
|
+
const { current: previewInternalState } = React.useRef({
|
|
30
|
+
openByClick: false,
|
|
31
|
+
openByHoverOverTrigger: false,
|
|
32
|
+
openByHoverOverPopover: false,
|
|
33
|
+
openByKeyboard: false
|
|
34
|
+
});
|
|
35
|
+
const triggerMousedOver = React.useRef(false);
|
|
36
|
+
const isOpen = ()=>{
|
|
37
|
+
return previewInternalState.openByClick || previewInternalState.openByHoverOverTrigger || previewInternalState.openByHoverOverPopover || previewInternalState.openByKeyboard;
|
|
136
38
|
};
|
|
137
|
-
const
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
39
|
+
const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);
|
|
40
|
+
const preventDefaultClose = React.useRef(false);
|
|
41
|
+
let popoverTrigger = undefined;
|
|
42
|
+
let popoverSurface = undefined;
|
|
43
|
+
if (children.length === 2) {
|
|
44
|
+
popoverTrigger = children[0];
|
|
45
|
+
popoverSurface = children[1];
|
|
46
|
+
} else if (children.length === 1) {
|
|
47
|
+
popoverSurface = children[0];
|
|
48
|
+
}
|
|
49
|
+
const popoverSurfaceId = useId('preview-surface', popoverSurface === null || popoverSurface === void 0 ? void 0 : popoverSurface.props.id);
|
|
50
|
+
const closeCallback = ()=>{
|
|
147
51
|
previewInternalState.openByClick = false;
|
|
148
52
|
previewInternalState.openByHoverOverTrigger = false;
|
|
149
53
|
previewInternalState.openByHoverOverPopover = false;
|
|
150
|
-
|
|
151
|
-
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
152
|
-
open: previewInternalState.openByKeyboard
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
if (!isOpen()) {
|
|
156
|
-
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
157
|
-
}
|
|
54
|
+
previewInternalState.openByKeyboard = false;
|
|
158
55
|
setIsPopoverOpen(isOpen());
|
|
159
|
-
|
|
56
|
+
clearEnterTimeout();
|
|
160
57
|
};
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
58
|
+
React.useEffect(()=>{
|
|
59
|
+
return ()=>{
|
|
60
|
+
// Remove all instances of the current popover from the openedByHoverPreviewManager when the component is unmounted.
|
|
61
|
+
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
62
|
+
};
|
|
63
|
+
}, [
|
|
64
|
+
popoverSurfaceId
|
|
65
|
+
]);
|
|
66
|
+
if (popoverSurface && popoverTrigger) {
|
|
67
|
+
const handleTriggerTargetEnter = (e)=>{
|
|
68
|
+
previewInternalState.openByHoverOverTrigger = true;
|
|
69
|
+
triggerMousedOver.current = true;
|
|
70
|
+
// We want to disable auto focus only if the popover is being opened by hovering over the trigger
|
|
71
|
+
if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen) {
|
|
72
|
+
setDisableAutoFocus(true);
|
|
73
|
+
closeAllOpenedByHoverPreviews(popoverSurfaceId);
|
|
74
|
+
}
|
|
75
|
+
setEnterTimeout(()=>{
|
|
76
|
+
if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen && isOpen()) {
|
|
77
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
78
|
+
open: true
|
|
79
|
+
});
|
|
80
|
+
addOpenedByHoverPreview(popoverSurfaceId, closeCallback);
|
|
81
|
+
}
|
|
82
|
+
setIsPopoverOpen(isOpen());
|
|
83
|
+
}, showDelay);
|
|
84
|
+
};
|
|
85
|
+
const handleTriggerTargetLeave = (e)=>{
|
|
86
|
+
previewInternalState.openByHoverOverTrigger = false;
|
|
87
|
+
triggerMousedOver.current = false;
|
|
88
|
+
setLeaveTimeout(()=>{
|
|
89
|
+
setIsPopoverOpen(isOpen());
|
|
90
|
+
// We want to call onOpenChange only if the popover is actually closing when leaving the trigger
|
|
91
|
+
if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !previewInternalState.openByHoverOverPopover && isPopoverOpen) {
|
|
92
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
93
|
+
open: false
|
|
94
|
+
});
|
|
95
|
+
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
96
|
+
}
|
|
97
|
+
}, getDelay(e.type, hideDelay));
|
|
98
|
+
};
|
|
99
|
+
const handleTriggerClick = (e)=>{
|
|
100
|
+
// Setting preventDefaultClose so that onPopoverOpenChange does not apply its logic when click is on the trigger as we want to control that behavior.
|
|
101
|
+
preventDefaultClose.current = true;
|
|
102
|
+
// We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via click.
|
|
103
|
+
setDisableAutoFocus(false);
|
|
104
|
+
const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;
|
|
105
|
+
// If openByKeyboard is true, then the popover was already opened via keyboard and we always want to close it.
|
|
106
|
+
previewInternalState.openByClick = previewInternalState.openByKeyboard ? false : !previewInternalState.openByClick;
|
|
107
|
+
previewInternalState.openByHoverOverTrigger = false;
|
|
108
|
+
previewInternalState.openByHoverOverPopover = false;
|
|
109
|
+
previewInternalState.openByKeyboard = false;
|
|
110
|
+
// We set triggerMousedOver to false when clicking, since we just interacted with the trigger via click, and not hover.
|
|
111
|
+
if (triggerMousedOver.current) {
|
|
112
|
+
previewInternalState.openByClick = false;
|
|
113
|
+
triggerMousedOver.current = false;
|
|
114
|
+
} else {
|
|
115
|
+
e.preventDefault();
|
|
116
|
+
}
|
|
117
|
+
if (!tmpOpenByHoverOverTrigger) {
|
|
118
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
119
|
+
open: previewInternalState.openByClick
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
if (!isOpen()) {
|
|
123
|
+
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
124
|
+
}
|
|
125
|
+
setIsPopoverOpen(isOpen());
|
|
126
|
+
};
|
|
127
|
+
const handleTriggerKeyDown = (e)=>{
|
|
128
|
+
if (e.key === Enter) {
|
|
129
|
+
clearLeaveTimeout();
|
|
130
|
+
// Setting default prevented so that Enter key does not trigger a click event or onPopoverOpenChange.
|
|
131
|
+
e.preventDefault();
|
|
132
|
+
// We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via keyboard.
|
|
133
|
+
setDisableAutoFocus(false);
|
|
134
|
+
const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;
|
|
135
|
+
// If openByClick is true, then the popover was already opened via click and we always want to close it.
|
|
136
|
+
previewInternalState.openByKeyboard = previewInternalState.openByClick ? false : !previewInternalState.openByKeyboard;
|
|
137
|
+
previewInternalState.openByClick = false;
|
|
138
|
+
previewInternalState.openByHoverOverTrigger = false;
|
|
139
|
+
previewInternalState.openByHoverOverPopover = false;
|
|
140
|
+
if (!tmpOpenByHoverOverTrigger) {
|
|
141
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
142
|
+
open: previewInternalState.openByKeyboard
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
if (!isOpen()) {
|
|
146
|
+
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
147
|
+
}
|
|
148
|
+
setIsPopoverOpen(isOpen());
|
|
149
|
+
}
|
|
150
|
+
};
|
|
151
|
+
const handlePopoverTargetEnter = (e)=>{
|
|
152
|
+
previewInternalState.openByHoverOverPopover = true;
|
|
153
|
+
setIsPopoverOpen(isOpen());
|
|
154
|
+
};
|
|
155
|
+
const handlePopoverTargetLeave = (e)=>{
|
|
156
|
+
previewInternalState.openByHoverOverPopover = false;
|
|
157
|
+
setLeaveTimeout(()=>{
|
|
158
|
+
setIsPopoverOpen(isOpen());
|
|
159
|
+
// We want to call onOpenChange only if the popover is actually closing when leaving the popover
|
|
160
|
+
if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !previewInternalState.openByHoverOverTrigger) {
|
|
161
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
162
|
+
open: false
|
|
163
|
+
});
|
|
164
|
+
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
165
|
+
}
|
|
166
|
+
}, getDelay(e.type, hideDelay));
|
|
167
|
+
};
|
|
168
|
+
popoverTrigger = React.cloneElement(popoverTrigger, {
|
|
169
|
+
...popoverTrigger.props,
|
|
170
|
+
children: React.cloneElement(popoverTrigger.props.children, {
|
|
171
|
+
...popoverTrigger.props.children.props,
|
|
172
|
+
onBlur: mergeCallbacks(popoverTrigger.props.children.props.onBlur, handleTriggerTargetLeave),
|
|
173
|
+
onClick: mergeCallbacks(popoverTrigger.props.children.props.onClick, handleTriggerClick),
|
|
174
|
+
onKeyDown: mergeCallbacks(popoverTrigger.props.children.props.onKeyDown, handleTriggerKeyDown),
|
|
175
|
+
onMouseEnter: mergeCallbacks(popoverTrigger.props.children.props.onMouseEnter, handleTriggerTargetEnter),
|
|
176
|
+
onMouseLeave: mergeCallbacks(popoverTrigger.props.children.props.onMouseLeave, handleTriggerTargetLeave)
|
|
177
|
+
})
|
|
178
|
+
});
|
|
179
|
+
var _popoverSurface_props_arialabelledby;
|
|
180
|
+
popoverSurface = React.cloneElement(popoverSurface, {
|
|
181
|
+
...popoverSurface.props,
|
|
182
|
+
'aria-labelledby': (_popoverSurface_props_arialabelledby = popoverSurface.props['aria-labelledby']) !== null && _popoverSurface_props_arialabelledby !== void 0 ? _popoverSurface_props_arialabelledby : popoverSurface.props['aria-label'] ? undefined : popoverSurfaceId,
|
|
183
|
+
id: popoverSurfaceId,
|
|
184
|
+
onMouseEnter: mergeCallbacks(popoverSurface.props.onMouseEnter, handlePopoverTargetEnter),
|
|
185
|
+
onMouseLeave: mergeCallbacks(popoverSurface.props.onMouseLeave, handlePopoverTargetLeave),
|
|
186
|
+
onFocus: mergeCallbacks(popoverSurface.props.onFocus, handlePopoverTargetEnter)
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
// Hitting Escape key should close the popover if it was opened by hover.
|
|
190
|
+
// This is necessary to attach to the document because focus is likely not within the trigger or popover.
|
|
191
|
+
useIsomorphicLayoutEffect(()=>{
|
|
192
|
+
if (isPopoverOpen) {
|
|
193
|
+
const onDocumentKeyDown = (e)=>{
|
|
194
|
+
const openedByHover = !previewInternalState.openByClick && !previewInternalState.openByKeyboard;
|
|
195
|
+
if (openedByHover && e.key === Escape) {
|
|
196
|
+
clearLeaveTimeout();
|
|
197
|
+
// We set state back to its default if the Escape key has been pressed
|
|
198
|
+
setDisableAutoFocus(true);
|
|
199
|
+
closeCallback();
|
|
200
|
+
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
201
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
202
|
+
open: false
|
|
203
|
+
});
|
|
204
|
+
e.stopPropagation();
|
|
205
|
+
}
|
|
206
|
+
};
|
|
207
|
+
targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('keydown', onDocumentKeyDown, {
|
|
208
|
+
capture: true
|
|
209
|
+
});
|
|
210
|
+
return ()=>{
|
|
211
|
+
targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('keydown', onDocumentKeyDown, {
|
|
212
|
+
capture: true
|
|
213
|
+
});
|
|
214
|
+
};
|
|
215
|
+
}
|
|
216
|
+
}, [
|
|
217
|
+
targetDocument,
|
|
218
|
+
isPopoverOpen
|
|
219
|
+
]);
|
|
220
|
+
const onPopoverOpenChange = (e, data)=>{
|
|
221
|
+
if (!preventDefaultClose.current) {
|
|
222
|
+
// We set all open state to false if preventDefaultClose was not set to true and the popover is closing.
|
|
223
|
+
if (!data.open) {
|
|
224
|
+
clearLeaveTimeout();
|
|
225
|
+
closeCallback();
|
|
226
|
+
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
227
|
+
}
|
|
228
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, data);
|
|
175
229
|
}
|
|
176
|
-
|
|
230
|
+
preventDefaultClose.current = false;
|
|
177
231
|
};
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
})
|
|
188
|
-
});
|
|
189
|
-
var _popoverSurface_props_arialabelledby;
|
|
190
|
-
popoverSurface = React.cloneElement(popoverSurface, {
|
|
191
|
-
...popoverSurface.props,
|
|
192
|
-
'aria-labelledby': (_popoverSurface_props_arialabelledby = popoverSurface.props['aria-labelledby']) !== null && _popoverSurface_props_arialabelledby !== void 0 ? _popoverSurface_props_arialabelledby : popoverSurface.props['aria-label'] ? undefined : popoverSurfaceId,
|
|
193
|
-
id: popoverSurfaceId,
|
|
194
|
-
onMouseEnter: mergeCallbacks(popoverSurface.props.onMouseEnter, handlePopoverTargetEnter),
|
|
195
|
-
onMouseLeave: mergeCallbacks(popoverSurface.props.onMouseLeave, handlePopoverTargetLeave),
|
|
196
|
-
onFocus: mergeCallbacks(popoverSurface.props.onFocus, handlePopoverTargetEnter)
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
// Hitting Escape key should close the popover if it was opened by hover.
|
|
200
|
-
// This is necessary to attach to the document because focus is likely not within the trigger or popover.
|
|
201
|
-
useIsomorphicLayoutEffect(() => {
|
|
202
|
-
if (isPopoverOpen) {
|
|
203
|
-
const onDocumentKeyDown = e => {
|
|
204
|
-
const openedByHover = !previewInternalState.openByClick && !previewInternalState.openByKeyboard;
|
|
205
|
-
if (openedByHover && e.key === Escape) {
|
|
206
|
-
clearLeaveTimeout();
|
|
207
|
-
// We set state back to its default if the Escape key has been pressed
|
|
208
|
-
setDisableAutoFocus(true);
|
|
209
|
-
closeCallback();
|
|
210
|
-
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
211
|
-
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, {
|
|
212
|
-
open: false
|
|
213
|
-
});
|
|
214
|
-
e.stopPropagation();
|
|
232
|
+
let resolvedChildren = children;
|
|
233
|
+
if (popoverSurface) {
|
|
234
|
+
if (popoverTrigger) {
|
|
235
|
+
resolvedChildren = [
|
|
236
|
+
popoverTrigger,
|
|
237
|
+
popoverSurface
|
|
238
|
+
];
|
|
239
|
+
} else {
|
|
240
|
+
resolvedChildren = popoverSurface;
|
|
215
241
|
}
|
|
216
|
-
};
|
|
217
|
-
targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('keydown', onDocumentKeyDown, {
|
|
218
|
-
capture: true
|
|
219
|
-
});
|
|
220
|
-
return () => {
|
|
221
|
-
targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('keydown', onDocumentKeyDown, {
|
|
222
|
-
capture: true
|
|
223
|
-
});
|
|
224
|
-
};
|
|
225
|
-
}
|
|
226
|
-
}, [targetDocument, isPopoverOpen]);
|
|
227
|
-
const onPopoverOpenChange = (e, data) => {
|
|
228
|
-
if (!preventDefaultClose.current) {
|
|
229
|
-
// We set all open state to false if preventDefaultClose was not set to true and the popover is closing.
|
|
230
|
-
if (!data.open) {
|
|
231
|
-
clearLeaveTimeout();
|
|
232
|
-
closeCallback();
|
|
233
|
-
removeOpenedByHoverPreview(popoverSurfaceId);
|
|
234
|
-
}
|
|
235
|
-
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(e, data);
|
|
236
242
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
} : {
|
|
256
|
-
autoSize: true,
|
|
257
|
-
...positioning
|
|
258
|
-
},
|
|
259
|
-
unstable_disableAutoFocus: unstable_disableAutoFocus !== null && unstable_disableAutoFocus !== void 0 ? unstable_disableAutoFocus : disableAutoFocus
|
|
260
|
-
});
|
|
261
|
-
return {
|
|
262
|
-
...popoverState,
|
|
263
|
-
isPreviewLocked: previewInternalState.openByClick || previewInternalState.openByKeyboard
|
|
264
|
-
};
|
|
243
|
+
const popoverState = usePopover_unstable({
|
|
244
|
+
...props,
|
|
245
|
+
children: resolvedChildren,
|
|
246
|
+
onOpenChange: onPopoverOpenChange,
|
|
247
|
+
open: open !== null && open !== void 0 ? open : isPopoverOpen,
|
|
248
|
+
positioning: typeof positioning === 'string' ? {
|
|
249
|
+
autoSize: true,
|
|
250
|
+
...resolvePositioningShorthand(positioning)
|
|
251
|
+
} : {
|
|
252
|
+
autoSize: true,
|
|
253
|
+
...positioning
|
|
254
|
+
},
|
|
255
|
+
unstable_disableAutoFocus: unstable_disableAutoFocus !== null && unstable_disableAutoFocus !== void 0 ? unstable_disableAutoFocus : disableAutoFocus
|
|
256
|
+
});
|
|
257
|
+
return {
|
|
258
|
+
...popoverState,
|
|
259
|
+
isPreviewLocked: previewInternalState.openByClick || previewInternalState.openByKeyboard
|
|
260
|
+
};
|
|
265
261
|
};
|
|
266
|
-
//# sourceMappingURL=usePreview.js.map
|
|
@@ -2,10 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
import { usePreviewContent_unstable } from './usePreviewContent';
|
|
3
3
|
import { renderPreviewContent_unstable } from './renderPreviewContent';
|
|
4
4
|
import { usePreviewContentStyles_unstable } from './usePreviewContentStyles.styles';
|
|
5
|
-
export const PreviewContent = /*#__PURE__*/React.forwardRef((props, ref)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
export const PreviewContent = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
6
|
+
const state = usePreviewContent_unstable(props, ref);
|
|
7
|
+
usePreviewContentStyles_unstable(state);
|
|
8
|
+
return renderPreviewContent_unstable(state);
|
|
9
9
|
});
|
|
10
10
|
PreviewContent.displayName = 'PreviewContent';
|
|
11
|
-
//# sourceMappingURL=PreviewContent.js.map
|
|
@@ -2,4 +2,3 @@ export { PreviewContent } from './PreviewContent';
|
|
|
2
2
|
export { renderPreviewContent_unstable } from './renderPreviewContent';
|
|
3
3
|
export { usePreviewContent_unstable } from './usePreviewContent';
|
|
4
4
|
export { previewContentClassNames, usePreviewContentStyles_unstable } from './usePreviewContentStyles.styles';
|
|
5
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import { jsx as _jsx } from "@fluentui/react-jsx-runtime/jsx-runtime";
|
|
1
|
+
import { jsx as _jsx } from "@fluentui/react-jsx-runtime/jsx-runtime";
|
|
2
2
|
import { assertSlots } from '@fluentui/react-components';
|
|
3
3
|
/**
|
|
4
4
|
* Render the final JSX of PreviewContent
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
return /*#__PURE__*/_jsx(state.root, {});
|
|
5
|
+
*/ export const renderPreviewContent_unstable = (state)=>{
|
|
6
|
+
assertSlots(state);
|
|
7
|
+
return /*#__PURE__*/ _jsx(state.root, {});
|
|
9
8
|
};
|
|
10
|
-
//# sourceMappingURL=renderPreviewContent.js.map
|
|
@@ -7,18 +7,16 @@ import { getIntrinsicElementProps, slot } from '@fluentui/react-components';
|
|
|
7
7
|
*
|
|
8
8
|
* @param props - props from this instance of PreviewContent
|
|
9
9
|
* @param ref - reference to root HTMLElement of PreviewContent
|
|
10
|
-
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
};
|
|
10
|
+
*/ export const usePreviewContent_unstable = (props, ref)=>{
|
|
11
|
+
return {
|
|
12
|
+
components: {
|
|
13
|
+
root: 'div'
|
|
14
|
+
},
|
|
15
|
+
root: slot.always(getIntrinsicElementProps('div', {
|
|
16
|
+
ref,
|
|
17
|
+
...props
|
|
18
|
+
}), {
|
|
19
|
+
elementType: 'div'
|
|
20
|
+
})
|
|
21
|
+
};
|
|
23
22
|
};
|
|
24
|
-
//# sourceMappingURL=usePreviewContent.js.map
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { makeResetStyles, mergeClasses } from '@fluentui/react-components';
|
|
2
|
+
import { tokens, typographyStyles } from '@fluentui-copilot/tokens';
|
|
3
|
+
export const previewContentClassNames = {
|
|
4
|
+
root: 'fai-PreviewContent'
|
|
5
|
+
};
|
|
6
|
+
/**
|
|
7
|
+
* Styles for the root slot
|
|
8
|
+
*/ const useRootBaseClassName = makeResetStyles({
|
|
9
|
+
color: tokens.colorNeutralForeground3,
|
|
10
|
+
display: 'flex',
|
|
11
|
+
flexDirection: 'column',
|
|
12
|
+
maxWidth: `calc(256px - ${tokens.spacingHorizontalXS} * 2)`,
|
|
13
|
+
padding: `${tokens.spacingVerticalS} ${tokens.spacingHorizontalS}`,
|
|
14
|
+
rowGap: tokens.spacingVerticalXS,
|
|
15
|
+
wordBreak: 'break-word',
|
|
16
|
+
boxSizing: 'border-box',
|
|
17
|
+
...typographyStyles.caption1
|
|
18
|
+
});
|
|
19
|
+
/**
|
|
20
|
+
* Apply styling to the PreviewContent slots based on the state
|
|
21
|
+
*/ export const usePreviewContentStyles_unstable = (state)=>{
|
|
22
|
+
'use no memo';
|
|
23
|
+
const rootBaseClassName = useRootBaseClassName();
|
|
24
|
+
state.root.className = mergeClasses(previewContentClassNames.root, rootBaseClassName, state.root.className);
|
|
25
|
+
return state;
|
|
26
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["usePreviewContentStyles.styles.ts"],"sourcesContent":["import { makeResetStyles, mergeClasses } from '@fluentui/react-components';\nimport { tokens, typographyStyles } from '@fluentui-copilot/tokens';\nimport type { PreviewContentSlots, PreviewContentState } from './PreviewContent.types';\nimport type { SlotClassNames } from '@fluentui/react-components';\n\nexport const previewContentClassNames: SlotClassNames<PreviewContentSlots> = {\n root: 'fai-PreviewContent',\n};\n\n/**\n * Styles for the root slot\n */\nconst useRootBaseClassName = makeResetStyles({\n color: tokens.colorNeutralForeground3,\n display: 'flex',\n flexDirection: 'column',\n maxWidth: `calc(256px - ${tokens.spacingHorizontalXS} * 2)`,\n padding: `${tokens.spacingVerticalS} ${tokens.spacingHorizontalS}`,\n rowGap: tokens.spacingVerticalXS,\n wordBreak: 'break-word',\n boxSizing: 'border-box',\n ...typographyStyles.caption1,\n});\n\n/**\n * Apply styling to the PreviewContent slots based on the state\n */\nexport const usePreviewContentStyles_unstable = (state: PreviewContentState): PreviewContentState => {\n 'use no memo';\n\n const rootBaseClassName = useRootBaseClassName();\n\n state.root.className = mergeClasses(previewContentClassNames.root, rootBaseClassName, state.root.className);\n\n return state;\n};\n"],"names":["makeResetStyles","mergeClasses","tokens","typographyStyles","previewContentClassNames","root","useRootBaseClassName","color","colorNeutralForeground3","display","flexDirection","maxWidth","spacingHorizontalXS","padding","spacingVerticalS","spacingHorizontalS","rowGap","spacingVerticalXS","wordBreak","boxSizing","caption1","usePreviewContentStyles_unstable","state","rootBaseClassName","className"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,SAASA,eAAe,EAAEC,YAAY,QAAQ,6BAA6B;AAC3E,SAASC,MAAM,EAAEC,gBAAgB,QAAQ,2BAA2B;AAIpE,OAAO,MAAMC,2BAAgE;IAC3EC,MAAM;AACR,EAAE;AAEF;;CAEC,GACD,MAAMC,uBAAuBN,gBAAgB;IAC3CO,OAAOL,OAAOM,uBAAuB;IACrCC,SAAS;IACTC,eAAe;IACfC,UAAU,CAAC,aAAa,EAAET,OAAOU,mBAAmB,CAAC,KAAK,CAAC;IAC3DC,SAAS,CAAC,EAAEX,OAAOY,gBAAgB,CAAC,CAAC,EAAEZ,OAAOa,kBAAkB,CAAC,CAAC;IAClEC,QAAQd,OAAOe,iBAAiB;IAChCC,WAAW;IACXC,WAAW;IACX,GAAGhB,iBAAiBiB,QAAQ;AAC9B;AAEA;;CAEC,GACD,OAAO,MAAMC,mCAAmC,CAACC;IAC/C;IAEA,MAAMC,oBAAoBjB;IAE1BgB,MAAMjB,IAAI,CAACmB,SAAS,GAAGvB,aAAaG,yBAAyBC,IAAI,EAAEkB,mBAAmBD,MAAMjB,IAAI,CAACmB,SAAS;IAE1G,OAAOF;AACT,EAAE"}
|
|
@@ -2,10 +2,9 @@ import * as React from 'react';
|
|
|
2
2
|
import { usePreviewHeader_unstable } from './usePreviewHeader';
|
|
3
3
|
import { renderPreviewHeader_unstable } from './renderPreviewHeader';
|
|
4
4
|
import { usePreviewHeaderStyles_unstable } from './usePreviewHeaderStyles.styles';
|
|
5
|
-
export const PreviewHeader = /*#__PURE__*/React.forwardRef((props, ref)
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
export const PreviewHeader = /*#__PURE__*/ React.forwardRef((props, ref)=>{
|
|
6
|
+
const state = usePreviewHeader_unstable(props, ref);
|
|
7
|
+
usePreviewHeaderStyles_unstable(state);
|
|
8
|
+
return renderPreviewHeader_unstable(state);
|
|
9
9
|
});
|
|
10
10
|
PreviewHeader.displayName = 'PreviewHeader';
|
|
11
|
-
//# sourceMappingURL=PreviewHeader.js.map
|
|
@@ -2,4 +2,3 @@ export { PreviewHeader } from './PreviewHeader';
|
|
|
2
2
|
export { renderPreviewHeader_unstable } from './renderPreviewHeader';
|
|
3
3
|
export { usePreviewHeader_unstable } from './usePreviewHeader';
|
|
4
4
|
export { previewHeaderClassNames, previewHeaderExtraClassNames, usePreviewHeaderStyles_unstable } from './usePreviewHeaderStyles.styles';
|
|
5
|
-
//# sourceMappingURL=index.js.map
|