@fluentui-copilot/react-preview 0.8.4 → 0.8.6
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 +48 -0
- package/CHANGELOG.md +22 -1
- package/dist/index.d.ts +7 -8
- package/lib/components/Preview/renderPreview.js.map +1 -1
- package/lib/components/Preview/usePreview.js.map +1 -1
- package/lib/components/PreviewContent/renderPreviewContent.js.map +1 -1
- package/lib/components/PreviewHeader/renderPreviewHeader.js.map +1 -1
- package/lib/components/PreviewMetadata/renderPreviewMetadata.js.map +1 -1
- package/lib/components/PreviewSurface/renderPreviewSurface.js.map +1 -1
- package/lib/components/PreviewTrigger/renderPreviewTrigger.js.map +1 -1
- package/lib/utils/openedByHoverPreviewManager.js.map +1 -1
- package/lib-commonjs/components/Preview/renderPreview.js.map +1 -1
- package/lib-commonjs/components/Preview/usePreview.js.map +1 -1
- package/lib-commonjs/components/PreviewContent/renderPreviewContent.js.map +1 -1
- package/lib-commonjs/components/PreviewHeader/renderPreviewHeader.js.map +1 -1
- package/lib-commonjs/components/PreviewMetadata/renderPreviewMetadata.js.map +1 -1
- package/lib-commonjs/components/PreviewSurface/renderPreviewSurface.js.map +1 -1
- package/lib-commonjs/components/PreviewTrigger/renderPreviewTrigger.js.map +1 -1
- package/lib-commonjs/utils/openedByHoverPreviewManager.js.map +1 -1
- package/package.json +11 -11
package/CHANGELOG.json
CHANGED
|
@@ -1,6 +1,54 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui-copilot/react-preview",
|
|
3
3
|
"entries": [
|
|
4
|
+
{
|
|
5
|
+
"date": "Tue, 14 Oct 2025 00:02:52 GMT",
|
|
6
|
+
"tag": "@fluentui-copilot/react-preview_v0.8.6",
|
|
7
|
+
"version": "0.8.6",
|
|
8
|
+
"comments": {
|
|
9
|
+
"patch": [
|
|
10
|
+
{
|
|
11
|
+
"author": "tristan.watanabe@gmail.com",
|
|
12
|
+
"package": "@fluentui-copilot/react-preview",
|
|
13
|
+
"commit": "9a3bf49a3c6302529b2c9b6bc3fc63f549aaf88f",
|
|
14
|
+
"comment": "chore: enforce explicit return types."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"author": "tristan.watanabe@gmail.com",
|
|
18
|
+
"package": "@fluentui-copilot/react-preview",
|
|
19
|
+
"commit": "ced6fa3a284cc90eae5ca16357e15b349f720ca0",
|
|
20
|
+
"comment": "fix: migrate to React 19 compatible JSX and Ref types."
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"author": "twatanabe@microsoft.com",
|
|
24
|
+
"package": "@fluentui-copilot/react-preview",
|
|
25
|
+
"commit": "068a3c71be5da80beeab05640fe768ef631b0c00",
|
|
26
|
+
"comment": "chore: bump @fluentui/react-components peer dep minbar to ^9.70.0."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"author": "tristan.watanabe@gmail.com",
|
|
30
|
+
"package": "@fluentui-copilot/react-preview",
|
|
31
|
+
"commit": "74cfcbd7c8afdc8fe3f4b512a9a421613fa32841",
|
|
32
|
+
"comment": "chore: update react peer deps to support React 19."
|
|
33
|
+
}
|
|
34
|
+
]
|
|
35
|
+
}
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"date": "Mon, 29 Sep 2025 20:26:50 GMT",
|
|
39
|
+
"tag": "@fluentui-copilot/react-preview_v0.8.5",
|
|
40
|
+
"version": "0.8.5",
|
|
41
|
+
"comments": {
|
|
42
|
+
"patch": [
|
|
43
|
+
{
|
|
44
|
+
"author": "tristan.watanabe@gmail.com",
|
|
45
|
+
"package": "@fluentui-copilot/react-preview",
|
|
46
|
+
"commit": "eb866bbd84d778637cb17f869920ae47a3eeec50",
|
|
47
|
+
"comment": "fix: type issues after React 18 upgrade."
|
|
48
|
+
}
|
|
49
|
+
]
|
|
50
|
+
}
|
|
51
|
+
},
|
|
4
52
|
{
|
|
5
53
|
"date": "Thu, 17 Jul 2025 17:49:25 GMT",
|
|
6
54
|
"tag": "@fluentui-copilot/react-preview_v0.8.3",
|
package/CHANGELOG.md
CHANGED
|
@@ -1,9 +1,30 @@
|
|
|
1
1
|
# Change Log - @fluentui-copilot/react-preview
|
|
2
2
|
|
|
3
|
-
This log was last generated on
|
|
3
|
+
This log was last generated on Tue, 14 Oct 2025 00:02:52 GMT and should not be manually modified.
|
|
4
4
|
|
|
5
5
|
<!-- Start content -->
|
|
6
6
|
|
|
7
|
+
## [0.8.6](https://github.com/microsoft/fluentai/tree/@fluentui-copilot/react-preview_v0.8.6)
|
|
8
|
+
|
|
9
|
+
Tue, 14 Oct 2025 00:02:52 GMT
|
|
10
|
+
[Compare changes](https://github.com/microsoft/fluentai/compare/@fluentui-copilot/react-preview_v0.8.5..@fluentui-copilot/react-preview_v0.8.6)
|
|
11
|
+
|
|
12
|
+
### Patches
|
|
13
|
+
|
|
14
|
+
- chore: enforce explicit return types. ([PR #3360](https://github.com/microsoft/fluentai/pull/3360) by tristan.watanabe@gmail.com)
|
|
15
|
+
- fix: migrate to React 19 compatible JSX and Ref types. ([PR #3355](https://github.com/microsoft/fluentai/pull/3355) by tristan.watanabe@gmail.com)
|
|
16
|
+
- chore: bump @fluentui/react-components peer dep minbar to ^9.70.0. ([PR #3344](https://github.com/microsoft/fluentai/pull/3344) by twatanabe@microsoft.com)
|
|
17
|
+
- chore: update react peer deps to support React 19. ([PR #3361](https://github.com/microsoft/fluentai/pull/3361) by tristan.watanabe@gmail.com)
|
|
18
|
+
|
|
19
|
+
## [0.8.5](https://github.com/microsoft/fluentai/tree/@fluentui-copilot/react-preview_v0.8.5)
|
|
20
|
+
|
|
21
|
+
Mon, 29 Sep 2025 20:26:50 GMT
|
|
22
|
+
[Compare changes](https://github.com/microsoft/fluentai/compare/@fluentui-copilot/react-preview_v0.8.3..@fluentui-copilot/react-preview_v0.8.5)
|
|
23
|
+
|
|
24
|
+
### Patches
|
|
25
|
+
|
|
26
|
+
- fix: type issues after React 18 upgrade. ([PR #3341](https://github.com/microsoft/fluentai/pull/3341) by tristan.watanabe@gmail.com)
|
|
27
|
+
|
|
7
28
|
## [0.8.3](https://github.com/microsoft/fluentai/tree/@fluentui-copilot/react-preview_v0.8.3)
|
|
8
29
|
|
|
9
30
|
Thu, 17 Jul 2025 17:49:25 GMT
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ import type { ContextSelector } from '@fluentui/react-context-selector';
|
|
|
7
7
|
import type { DesignVersion } from '@fluentui-copilot/react-provider';
|
|
8
8
|
import { FC } from 'react';
|
|
9
9
|
import type { ForwardRefComponent } from '@fluentui/react-components';
|
|
10
|
-
import {
|
|
10
|
+
import type { JSXElement } from '@fluentui/react-components';
|
|
11
11
|
import type { PopoverContextValue } from '@fluentui/react-components';
|
|
12
12
|
import type { PopoverProps } from '@fluentui/react-components';
|
|
13
13
|
import type { PopoverState } from '@fluentui/react-components';
|
|
@@ -19,7 +19,6 @@ import type { PopoverTriggerState } from '@fluentui/react-components';
|
|
|
19
19
|
import { Provider } from 'react';
|
|
20
20
|
import { ProviderProps } from 'react';
|
|
21
21
|
import * as React_2 from 'react';
|
|
22
|
-
import { ReactElement } from 'react';
|
|
23
22
|
import type { Slot } from '@fluentui/react-components';
|
|
24
23
|
import type { SlotClassNames } from '@fluentui/react-components';
|
|
25
24
|
|
|
@@ -174,32 +173,32 @@ export declare type PreviewTriggerState = PopoverTriggerState & {};
|
|
|
174
173
|
/**
|
|
175
174
|
* Render the final JSX of Preview
|
|
176
175
|
*/
|
|
177
|
-
export declare const renderPreview_unstable: (state: PreviewState) =>
|
|
176
|
+
export declare const renderPreview_unstable: (state: PreviewState) => JSXElement;
|
|
178
177
|
|
|
179
178
|
/**
|
|
180
179
|
* Render the final JSX of PreviewContent
|
|
181
180
|
*/
|
|
182
|
-
export declare const renderPreviewContent_unstable: (state: PreviewContentState) =>
|
|
181
|
+
export declare const renderPreviewContent_unstable: (state: PreviewContentState) => JSXElement;
|
|
183
182
|
|
|
184
183
|
/**
|
|
185
184
|
* Render the final JSX of PreviewHeader
|
|
186
185
|
*/
|
|
187
|
-
export declare const renderPreviewHeader_unstable: (state: PreviewHeaderState) =>
|
|
186
|
+
export declare const renderPreviewHeader_unstable: (state: PreviewHeaderState) => JSXElement;
|
|
188
187
|
|
|
189
188
|
/**
|
|
190
189
|
* Render the final JSX of PreviewMetadata
|
|
191
190
|
*/
|
|
192
|
-
export declare const renderPreviewMetadata_unstable: (state: PreviewMetadataState) =>
|
|
191
|
+
export declare const renderPreviewMetadata_unstable: (state: PreviewMetadataState) => JSXElement;
|
|
193
192
|
|
|
194
193
|
/**
|
|
195
194
|
* Render the final JSX of PreviewSurface
|
|
196
195
|
*/
|
|
197
|
-
export declare const renderPreviewSurface_unstable: (state: PreviewSurfaceState) =>
|
|
196
|
+
export declare const renderPreviewSurface_unstable: (state: PreviewSurfaceState) => JSXElement;
|
|
198
197
|
|
|
199
198
|
/**
|
|
200
199
|
* Render the final JSX of PreviewTrigger
|
|
201
200
|
*/
|
|
202
|
-
export declare const renderPreviewTrigger_unstable: (state: PreviewTriggerState) =>
|
|
201
|
+
export declare const renderPreviewTrigger_unstable: (state: PreviewTriggerState) => JSXElement | null;
|
|
203
202
|
|
|
204
203
|
/**
|
|
205
204
|
* Create the state required to render Preview.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { renderPopover_unstable } from '@fluentui/react-components';\n\nimport { PreviewContextProvider } from '../../previewContext';\nimport type { PreviewState } from './Preview.types';\n\n/**\n * Render the final JSX of Preview\n */\nexport const renderPreview_unstable = (state: PreviewState) => {\n const {\n appearance,\n arrowRef,\n contentRef,\n inertTrapFocus,\n inline,\n isPreviewLocked,\n mountNode,\n open,\n openOnContext,\n openOnHover,\n setOpen,\n size,\n toggleOpen,\n trapFocus,\n triggerRef,\n withArrow,\n } = state;\n\n return (\n <PreviewContextProvider\n value={{\n appearance,\n arrowRef,\n contentRef,\n inertTrapFocus,\n inline,\n isPreviewLocked,\n mountNode,\n open,\n openOnContext,\n openOnHover,\n setOpen,\n size,\n toggleOpen,\n trapFocus,\n triggerRef,\n withArrow,\n }}\n >\n {renderPopover_unstable(state)}\n </PreviewContextProvider>\n );\n};\n"],"names":["React","renderPopover_unstable","PreviewContextProvider","renderPreview_unstable","state","appearance","arrowRef","contentRef","inertTrapFocus","inline","isPreviewLocked","mountNode","open","openOnContext","openOnHover","setOpen","size","toggleOpen","trapFocus","triggerRef","withArrow","value"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,sBAAsB,QAAQ,6BAA6B;
|
|
1
|
+
{"version":3,"sources":["renderPreview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { renderPopover_unstable } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\n\nimport { PreviewContextProvider } from '../../previewContext';\nimport type { PreviewState } from './Preview.types';\n\n/**\n * Render the final JSX of Preview\n */\nexport const renderPreview_unstable = (state: PreviewState): JSXElement => {\n const {\n appearance,\n arrowRef,\n contentRef,\n inertTrapFocus,\n inline,\n isPreviewLocked,\n mountNode,\n open,\n openOnContext,\n openOnHover,\n setOpen,\n size,\n toggleOpen,\n trapFocus,\n triggerRef,\n withArrow,\n } = state;\n\n return (\n <PreviewContextProvider\n value={{\n appearance,\n arrowRef,\n contentRef,\n inertTrapFocus,\n inline,\n isPreviewLocked,\n mountNode,\n open,\n openOnContext,\n openOnHover,\n setOpen,\n size,\n toggleOpen,\n trapFocus,\n triggerRef,\n withArrow,\n }}\n >\n {renderPopover_unstable(state)}\n </PreviewContextProvider>\n );\n};\n"],"names":["React","renderPopover_unstable","PreviewContextProvider","renderPreview_unstable","state","appearance","arrowRef","contentRef","inertTrapFocus","inline","isPreviewLocked","mountNode","open","openOnContext","openOnHover","setOpen","size","toggleOpen","trapFocus","triggerRef","withArrow","value"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,sBAAsB,QAAQ,6BAA6B;AAGpE,SAASC,sBAAsB,QAAQ,uBAAuB;AAG9D;;CAEC,GACD,OAAO,MAAMC,yBAAyB,CAACC;IACrC,MAAM,EACJC,UAAU,EACVC,QAAQ,EACRC,UAAU,EACVC,cAAc,EACdC,MAAM,EACNC,eAAe,EACfC,SAAS,EACTC,IAAI,EACJC,aAAa,EACbC,WAAW,EACXC,OAAO,EACPC,IAAI,EACJC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,SAAS,EACV,GAAGhB;IAEJ,qBACE,oBAACF;QACCmB,OAAO;YACLhB;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;OAECnB,uBAAuBG;AAG9B,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["usePreview.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { Enter, Escape } from '@fluentui/keyboard-keys';\nimport {\n mergeCallbacks,\n resolvePositioningShorthand,\n useFluent,\n useId,\n useIsomorphicLayoutEffect,\n usePopover_unstable,\n} from '@fluentui/react-components';\nimport { useTimeout } from '@fluentui/react-utilities';\nimport type { OnOpenChangeData, OpenPopoverEvents } from '@fluentui/react-components';\n\nimport { addOpenedByHoverPreview, closeAllOpenedByHoverPreviews, removeOpenedByHoverPreview } from '../../utils';\nimport type { PreviewProps, PreviewState } from './Preview.types';\n\ntype PreviewInternalState = {\n openByClick: boolean;\n openByHoverOverTrigger: boolean;\n openByHoverOverPopover: boolean;\n openByKeyboard: boolean;\n};\n\nconst POPOVER_MOUSE_DELAY = 250;\nconst POPOVER_KEYBOARD_HIDE_DELAY = 0;\n\nconst getDelay = (type: string, popoverMouseHideDelay: number): number => {\n if (type === 'focus' || type === 'blur') {\n return POPOVER_KEYBOARD_HIDE_DELAY;\n }\n\n return popoverMouseHideDelay;\n};\n\ntype TargetEvent<T> = React.MouseEvent<T> | React.FocusEvent<T>;\n\n/**\n * Create the state required to render Preview.\n *\n * The returned state can be modified with hooks such as usePreviewStyles_unstable,\n * before being passed to renderPreview_unstable.\n *\n * @param props - props from this instance of Preview\n * @param ref - reference to root HTMLElement of Preview\n */\nexport const usePreview_unstable = (props: PreviewProps): PreviewState => {\n const {\n hideDelay = POPOVER_MOUSE_DELAY,\n onOpenChange,\n open,\n positioning,\n showDelay = POPOVER_MOUSE_DELAY,\n unstable_disableAutoFocus,\n } = props;\n\n const children = React.Children.toArray(props.children) as React.ReactElement[];\n\n const { targetDocument } = useFluent();\n const [setEnterTimeout, clearEnterTimeout] = useTimeout();\n const [setLeaveTimeout, clearLeaveTimeout] = useTimeout();\n\n const [disableAutoFocus, setDisableAutoFocus] = React.useState(true);\n\n const { current: previewInternalState } = React.useRef<PreviewInternalState>({\n openByClick: false,\n openByHoverOverTrigger: false,\n openByHoverOverPopover: false,\n openByKeyboard: false,\n });\n const triggerMousedOver = React.useRef(false);\n\n const isOpen = () => {\n return (\n previewInternalState.openByClick ||\n previewInternalState.openByHoverOverTrigger ||\n previewInternalState.openByHoverOverPopover ||\n previewInternalState.openByKeyboard\n );\n };\n\n const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\n const preventDefaultClose = React.useRef(false);\n\n let popoverTrigger: React.ReactElement | undefined = undefined;\n let popoverSurface: React.ReactElement | undefined = undefined;\n if (children.length === 2) {\n popoverTrigger = children[0];\n popoverSurface = children[1];\n } else if (children.length === 1) {\n popoverSurface = children[0];\n }\n\n const popoverSurfaceId = useId('preview-surface', popoverSurface?.props.id);\n\n const closeCallback = () => {\n previewInternalState.openByClick = false;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n previewInternalState.openByKeyboard = false;\n setIsPopoverOpen(isOpen());\n clearEnterTimeout();\n };\n\n React.useEffect(() => {\n return () => {\n // Remove all instances of the current popover from the openedByHoverPreviewManager when the component is unmounted.\n removeOpenedByHoverPreview(popoverSurfaceId);\n };\n }, [popoverSurfaceId]);\n\n if (popoverSurface && popoverTrigger) {\n const handleTriggerTargetEnter = (e: TargetEvent<HTMLSpanElement>): void => {\n previewInternalState.openByHoverOverTrigger = true;\n triggerMousedOver.current = true;\n\n // We want to disable auto focus only if the popover is being opened by hovering over the trigger\n if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen) {\n setDisableAutoFocus(true);\n closeAllOpenedByHoverPreviews(popoverSurfaceId);\n }\n\n setEnterTimeout(() => {\n if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen && isOpen()) {\n onOpenChange?.(e, { open: true });\n addOpenedByHoverPreview(popoverSurfaceId, closeCallback);\n }\n setIsPopoverOpen(isOpen());\n }, showDelay);\n };\n\n const handleTriggerTargetLeave = (e: TargetEvent<HTMLSpanElement>): void => {\n previewInternalState.openByHoverOverTrigger = false;\n triggerMousedOver.current = false;\n\n setLeaveTimeout(() => {\n setIsPopoverOpen(isOpen());\n\n // We want to call onOpenChange only if the popover is actually closing when leaving the trigger\n if (\n !previewInternalState.openByClick &&\n !previewInternalState.openByKeyboard &&\n !previewInternalState.openByHoverOverPopover &&\n isPopoverOpen\n ) {\n onOpenChange?.(e, { open: false });\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n }, getDelay(e.type, hideDelay));\n };\n\n const handleTriggerClick = (e: TargetEvent<HTMLSpanElement>): void => {\n // Setting preventDefaultClose so that onPopoverOpenChange does not apply its logic when click is on the trigger as we want to control that behavior.\n preventDefaultClose.current = true;\n\n // We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via click.\n setDisableAutoFocus(false);\n\n const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;\n\n // If openByKeyboard is true, then the popover was already opened via keyboard and we always want to close it.\n previewInternalState.openByClick = previewInternalState.openByKeyboard\n ? false\n : !previewInternalState.openByClick;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n previewInternalState.openByKeyboard = false;\n\n // We set triggerMousedOver to false when clicking, since we just interacted with the trigger via click, and not hover.\n if (triggerMousedOver.current) {\n previewInternalState.openByClick = false;\n triggerMousedOver.current = false;\n }\n // If it was not moused over, we want to prevent the default click action from opening a link, so the preview can open first\n else {\n e.preventDefault();\n }\n\n if (!tmpOpenByHoverOverTrigger) {\n onOpenChange?.(e, { open: previewInternalState.openByClick });\n }\n\n if (!isOpen()) {\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n setIsPopoverOpen(isOpen());\n };\n\n const handleTriggerKeyDown = (e: React.KeyboardEvent<HTMLSpanElement>): void => {\n if (e.key === Enter) {\n clearLeaveTimeout();\n\n // Setting default prevented so that Enter key does not trigger a click event or onPopoverOpenChange.\n e.preventDefault();\n\n // We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via keyboard.\n setDisableAutoFocus(false);\n\n const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;\n\n // If openByClick is true, then the popover was already opened via click and we always want to close it.\n previewInternalState.openByKeyboard = previewInternalState.openByClick\n ? false\n : !previewInternalState.openByKeyboard;\n previewInternalState.openByClick = false;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n\n if (!tmpOpenByHoverOverTrigger) {\n onOpenChange?.(e, { open: previewInternalState.openByKeyboard });\n }\n\n if (!isOpen()) {\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n setIsPopoverOpen(isOpen());\n }\n };\n\n const handlePopoverTargetEnter = (e: TargetEvent<HTMLDivElement>): void => {\n previewInternalState.openByHoverOverPopover = true;\n setIsPopoverOpen(isOpen());\n };\n\n const handlePopoverTargetLeave = (e: TargetEvent<HTMLDivElement>): void => {\n previewInternalState.openByHoverOverPopover = false;\n setLeaveTimeout(() => {\n setIsPopoverOpen(isOpen());\n\n // We want to call onOpenChange only if the popover is actually closing when leaving the popover\n if (\n !previewInternalState.openByClick &&\n !previewInternalState.openByKeyboard &&\n !previewInternalState.openByHoverOverTrigger\n ) {\n onOpenChange?.(e, { open: false });\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n }, getDelay(e.type, hideDelay));\n };\n\n popoverTrigger = React.cloneElement(popoverTrigger, {\n ...popoverTrigger.props,\n children: React.cloneElement(popoverTrigger.props.children as React.ReactElement, {\n ...popoverTrigger.props.children.props,\n onBlur: mergeCallbacks(popoverTrigger.props.children.props.onBlur, handleTriggerTargetLeave),\n onClick: mergeCallbacks(popoverTrigger.props.children.props.onClick, handleTriggerClick),\n onKeyDown: mergeCallbacks(popoverTrigger.props.children.props.onKeyDown, handleTriggerKeyDown),\n onMouseEnter: mergeCallbacks(popoverTrigger.props.children.props.onMouseEnter, handleTriggerTargetEnter),\n onMouseLeave: mergeCallbacks(popoverTrigger.props.children.props.onMouseLeave, handleTriggerTargetLeave),\n }),\n });\n\n popoverSurface = React.cloneElement(popoverSurface, {\n ...popoverSurface.props,\n 'aria-labelledby':\n popoverSurface.props['aria-labelledby'] ?? (popoverSurface.props['aria-label'] ? undefined : popoverSurfaceId),\n id: popoverSurfaceId,\n onMouseEnter: mergeCallbacks(popoverSurface.props.onMouseEnter, handlePopoverTargetEnter),\n onMouseLeave: mergeCallbacks(popoverSurface.props.onMouseLeave, handlePopoverTargetLeave),\n onFocus: mergeCallbacks(popoverSurface.props.onFocus, handlePopoverTargetEnter),\n });\n }\n\n // Hitting Escape key should close the popover if it was opened by hover.\n // This is necessary to attach to the document because focus is likely not within the trigger or popover.\n useIsomorphicLayoutEffect(() => {\n if (isPopoverOpen) {\n const onDocumentKeyDown = (e: KeyboardEvent) => {\n const openedByHover = !previewInternalState.openByClick && !previewInternalState.openByKeyboard;\n\n if (openedByHover && e.key === Escape) {\n clearLeaveTimeout();\n\n // We set state back to its default if the Escape key has been pressed\n setDisableAutoFocus(true);\n closeCallback();\n removeOpenedByHoverPreview(popoverSurfaceId);\n\n onOpenChange?.(e as unknown as OpenPopoverEvents, { open: false });\n\n e.stopPropagation();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, { capture: true });\n\n return () => {\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n };\n }\n }, [targetDocument, isPopoverOpen]);\n\n const onPopoverOpenChange = (e: OpenPopoverEvents, data: OnOpenChangeData): void => {\n if (!preventDefaultClose.current) {\n // We set all open state to false if preventDefaultClose was not set to true and the popover is closing.\n if (!data.open) {\n clearLeaveTimeout();\n closeCallback();\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n onOpenChange?.(e, data);\n }\n\n preventDefaultClose.current = false;\n };\n\n let resolvedChildren = children as [JSX.Element, JSX.Element] | JSX.Element;\n if (popoverSurface) {\n if (popoverTrigger) {\n resolvedChildren = [popoverTrigger, popoverSurface];\n } else {\n resolvedChildren = popoverSurface;\n }\n }\n\n const popoverState = usePopover_unstable({\n ...props,\n children: resolvedChildren,\n onOpenChange: onPopoverOpenChange,\n open: open ?? isPopoverOpen,\n positioning:\n typeof positioning === 'string'\n ? { autoSize: true, ...resolvePositioningShorthand(positioning) }\n : { autoSize: true, ...positioning },\n unstable_disableAutoFocus: unstable_disableAutoFocus ?? disableAutoFocus,\n });\n\n return {\n ...popoverState,\n isPreviewLocked: previewInternalState.openByClick || previewInternalState.openByKeyboard,\n };\n};\n"],"names":["React","Enter","Escape","mergeCallbacks","resolvePositioningShorthand","useFluent","useId","useIsomorphicLayoutEffect","usePopover_unstable","useTimeout","addOpenedByHoverPreview","closeAllOpenedByHoverPreviews","removeOpenedByHoverPreview","POPOVER_MOUSE_DELAY","POPOVER_KEYBOARD_HIDE_DELAY","getDelay","type","popoverMouseHideDelay","usePreview_unstable","props","hideDelay","onOpenChange","open","positioning","showDelay","unstable_disableAutoFocus","children","Children","toArray","targetDocument","setEnterTimeout","clearEnterTimeout","setLeaveTimeout","clearLeaveTimeout","disableAutoFocus","setDisableAutoFocus","useState","current","previewInternalState","useRef","openByClick","openByHoverOverTrigger","openByHoverOverPopover","openByKeyboard","triggerMousedOver","isOpen","isPopoverOpen","setIsPopoverOpen","preventDefaultClose","popoverTrigger","undefined","popoverSurface","length","popoverSurfaceId","id","closeCallback","useEffect","handleTriggerTargetEnter","e","handleTriggerTargetLeave","handleTriggerClick","tmpOpenByHoverOverTrigger","preventDefault","handleTriggerKeyDown","key","handlePopoverTargetEnter","handlePopoverTargetLeave","cloneElement","onBlur","onClick","onKeyDown","onMouseEnter","onMouseLeave","onFocus","onDocumentKeyDown","openedByHover","stopPropagation","addEventListener","capture","removeEventListener","onPopoverOpenChange","data","resolvedChildren","popoverState","autoSize","isPreviewLocked"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["usePreview.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { Enter, Escape } from '@fluentui/keyboard-keys';\nimport {\n mergeCallbacks,\n resolvePositioningShorthand,\n useFluent,\n useId,\n useIsomorphicLayoutEffect,\n usePopover_unstable,\n} from '@fluentui/react-components';\nimport { useTimeout } from '@fluentui/react-utilities';\nimport type { OnOpenChangeData, OpenPopoverEvents, JSXElement } from '@fluentui/react-components';\n\nimport { addOpenedByHoverPreview, closeAllOpenedByHoverPreviews, removeOpenedByHoverPreview } from '../../utils';\nimport type { PreviewProps, PreviewState } from './Preview.types';\n\ntype PreviewInternalState = {\n openByClick: boolean;\n openByHoverOverTrigger: boolean;\n openByHoverOverPopover: boolean;\n openByKeyboard: boolean;\n};\n\nconst POPOVER_MOUSE_DELAY = 250;\nconst POPOVER_KEYBOARD_HIDE_DELAY = 0;\n\nconst getDelay = (type: string, popoverMouseHideDelay: number): number => {\n if (type === 'focus' || type === 'blur') {\n return POPOVER_KEYBOARD_HIDE_DELAY;\n }\n\n return popoverMouseHideDelay;\n};\n\ntype TargetEvent<T> = React.MouseEvent<T> | React.FocusEvent<T>;\n\n/**\n * Create the state required to render Preview.\n *\n * The returned state can be modified with hooks such as usePreviewStyles_unstable,\n * before being passed to renderPreview_unstable.\n *\n * @param props - props from this instance of Preview\n * @param ref - reference to root HTMLElement of Preview\n */\nexport const usePreview_unstable = (props: PreviewProps): PreviewState => {\n const {\n hideDelay = POPOVER_MOUSE_DELAY,\n onOpenChange,\n open,\n positioning,\n showDelay = POPOVER_MOUSE_DELAY,\n unstable_disableAutoFocus,\n } = props;\n\n const children = React.Children.toArray(props.children) as JSXElement[];\n\n const { targetDocument } = useFluent();\n const [setEnterTimeout, clearEnterTimeout] = useTimeout();\n const [setLeaveTimeout, clearLeaveTimeout] = useTimeout();\n\n const [disableAutoFocus, setDisableAutoFocus] = React.useState(true);\n\n const { current: previewInternalState } = React.useRef<PreviewInternalState>({\n openByClick: false,\n openByHoverOverTrigger: false,\n openByHoverOverPopover: false,\n openByKeyboard: false,\n });\n const triggerMousedOver = React.useRef(false);\n\n const isOpen = () => {\n return (\n previewInternalState.openByClick ||\n previewInternalState.openByHoverOverTrigger ||\n previewInternalState.openByHoverOverPopover ||\n previewInternalState.openByKeyboard\n );\n };\n\n const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\n const preventDefaultClose = React.useRef(false);\n\n let popoverTrigger: JSXElement | undefined = undefined;\n let popoverSurface: JSXElement | undefined = undefined;\n if (children.length === 2) {\n popoverTrigger = children[0];\n popoverSurface = children[1];\n } else if (children.length === 1) {\n popoverSurface = children[0];\n }\n\n const popoverSurfaceId = useId('preview-surface', popoverSurface?.props.id);\n\n const closeCallback = () => {\n previewInternalState.openByClick = false;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n previewInternalState.openByKeyboard = false;\n setIsPopoverOpen(isOpen());\n clearEnterTimeout();\n };\n\n React.useEffect(() => {\n return () => {\n // Remove all instances of the current popover from the openedByHoverPreviewManager when the component is unmounted.\n removeOpenedByHoverPreview(popoverSurfaceId);\n };\n }, [popoverSurfaceId]);\n\n if (popoverSurface && popoverTrigger) {\n const handleTriggerTargetEnter = (e: TargetEvent<HTMLSpanElement>): void => {\n previewInternalState.openByHoverOverTrigger = true;\n triggerMousedOver.current = true;\n\n // We want to disable auto focus only if the popover is being opened by hovering over the trigger\n if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen) {\n setDisableAutoFocus(true);\n closeAllOpenedByHoverPreviews(popoverSurfaceId);\n }\n\n setEnterTimeout(() => {\n if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen && isOpen()) {\n onOpenChange?.(e, { open: true });\n addOpenedByHoverPreview(popoverSurfaceId, closeCallback);\n }\n setIsPopoverOpen(isOpen());\n }, showDelay);\n };\n\n const handleTriggerTargetLeave = (e: TargetEvent<HTMLSpanElement>): void => {\n previewInternalState.openByHoverOverTrigger = false;\n triggerMousedOver.current = false;\n\n setLeaveTimeout(() => {\n setIsPopoverOpen(isOpen());\n\n // We want to call onOpenChange only if the popover is actually closing when leaving the trigger\n if (\n !previewInternalState.openByClick &&\n !previewInternalState.openByKeyboard &&\n !previewInternalState.openByHoverOverPopover &&\n isPopoverOpen\n ) {\n onOpenChange?.(e, { open: false });\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n }, getDelay(e.type, hideDelay));\n };\n\n const handleTriggerClick = (e: TargetEvent<HTMLSpanElement>): void => {\n // Setting preventDefaultClose so that onPopoverOpenChange does not apply its logic when click is on the trigger as we want to control that behavior.\n preventDefaultClose.current = true;\n\n // We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via click.\n setDisableAutoFocus(false);\n\n const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;\n\n // If openByKeyboard is true, then the popover was already opened via keyboard and we always want to close it.\n previewInternalState.openByClick = previewInternalState.openByKeyboard\n ? false\n : !previewInternalState.openByClick;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n previewInternalState.openByKeyboard = false;\n\n // We set triggerMousedOver to false when clicking, since we just interacted with the trigger via click, and not hover.\n if (triggerMousedOver.current) {\n previewInternalState.openByClick = false;\n triggerMousedOver.current = false;\n }\n // If it was not moused over, we want to prevent the default click action from opening a link, so the preview can open first\n else {\n e.preventDefault();\n }\n\n if (!tmpOpenByHoverOverTrigger) {\n onOpenChange?.(e, { open: previewInternalState.openByClick });\n }\n\n if (!isOpen()) {\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n setIsPopoverOpen(isOpen());\n };\n\n const handleTriggerKeyDown = (e: React.KeyboardEvent<HTMLSpanElement>): void => {\n if (e.key === Enter) {\n clearLeaveTimeout();\n\n // Setting default prevented so that Enter key does not trigger a click event or onPopoverOpenChange.\n e.preventDefault();\n\n // We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via keyboard.\n setDisableAutoFocus(false);\n\n const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;\n\n // If openByClick is true, then the popover was already opened via click and we always want to close it.\n previewInternalState.openByKeyboard = previewInternalState.openByClick\n ? false\n : !previewInternalState.openByKeyboard;\n previewInternalState.openByClick = false;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n\n if (!tmpOpenByHoverOverTrigger) {\n onOpenChange?.(e, { open: previewInternalState.openByKeyboard });\n }\n\n if (!isOpen()) {\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n setIsPopoverOpen(isOpen());\n }\n };\n\n const handlePopoverTargetEnter = (e: TargetEvent<HTMLDivElement>): void => {\n previewInternalState.openByHoverOverPopover = true;\n setIsPopoverOpen(isOpen());\n };\n\n const handlePopoverTargetLeave = (e: TargetEvent<HTMLDivElement>): void => {\n previewInternalState.openByHoverOverPopover = false;\n setLeaveTimeout(() => {\n setIsPopoverOpen(isOpen());\n\n // We want to call onOpenChange only if the popover is actually closing when leaving the popover\n if (\n !previewInternalState.openByClick &&\n !previewInternalState.openByKeyboard &&\n !previewInternalState.openByHoverOverTrigger\n ) {\n onOpenChange?.(e, { open: false });\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n }, getDelay(e.type, hideDelay));\n };\n\n popoverTrigger = React.cloneElement(popoverTrigger, {\n ...popoverTrigger.props,\n children: React.cloneElement(popoverTrigger.props.children as JSXElement, {\n ...popoverTrigger.props.children.props,\n onBlur: mergeCallbacks(popoverTrigger.props.children.props.onBlur, handleTriggerTargetLeave),\n onClick: mergeCallbacks(popoverTrigger.props.children.props.onClick, handleTriggerClick),\n onKeyDown: mergeCallbacks(popoverTrigger.props.children.props.onKeyDown, handleTriggerKeyDown),\n onMouseEnter: mergeCallbacks(popoverTrigger.props.children.props.onMouseEnter, handleTriggerTargetEnter),\n onMouseLeave: mergeCallbacks(popoverTrigger.props.children.props.onMouseLeave, handleTriggerTargetLeave),\n }),\n });\n\n popoverSurface = React.cloneElement(popoverSurface, {\n ...popoverSurface.props,\n 'aria-labelledby':\n popoverSurface.props['aria-labelledby'] ?? (popoverSurface.props['aria-label'] ? undefined : popoverSurfaceId),\n id: popoverSurfaceId,\n onMouseEnter: mergeCallbacks(popoverSurface.props.onMouseEnter, handlePopoverTargetEnter),\n onMouseLeave: mergeCallbacks(popoverSurface.props.onMouseLeave, handlePopoverTargetLeave),\n onFocus: mergeCallbacks(popoverSurface.props.onFocus, handlePopoverTargetEnter),\n });\n }\n\n // Hitting Escape key should close the popover if it was opened by hover.\n // This is necessary to attach to the document because focus is likely not within the trigger or popover.\n useIsomorphicLayoutEffect(() => {\n if (isPopoverOpen) {\n const onDocumentKeyDown = (e: KeyboardEvent) => {\n const openedByHover = !previewInternalState.openByClick && !previewInternalState.openByKeyboard;\n\n if (openedByHover && e.key === Escape) {\n clearLeaveTimeout();\n\n // We set state back to its default if the Escape key has been pressed\n setDisableAutoFocus(true);\n closeCallback();\n removeOpenedByHoverPreview(popoverSurfaceId);\n\n onOpenChange?.(e as unknown as OpenPopoverEvents, { open: false });\n\n e.stopPropagation();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, { capture: true });\n\n return () => {\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n };\n }\n }, [targetDocument, isPopoverOpen]);\n\n const onPopoverOpenChange = (e: OpenPopoverEvents, data: OnOpenChangeData): void => {\n if (!preventDefaultClose.current) {\n // We set all open state to false if preventDefaultClose was not set to true and the popover is closing.\n if (!data.open) {\n clearLeaveTimeout();\n closeCallback();\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n onOpenChange?.(e, data);\n }\n\n preventDefaultClose.current = false;\n };\n\n let resolvedChildren = children as [JSXElement, JSXElement] | JSXElement;\n if (popoverSurface) {\n if (popoverTrigger) {\n resolvedChildren = [popoverTrigger, popoverSurface];\n } else {\n resolvedChildren = popoverSurface;\n }\n }\n\n const popoverState = usePopover_unstable({\n ...props,\n children: resolvedChildren,\n onOpenChange: onPopoverOpenChange,\n open: open ?? isPopoverOpen,\n positioning:\n typeof positioning === 'string'\n ? { autoSize: true, ...resolvePositioningShorthand(positioning) }\n : { autoSize: true, ...positioning },\n unstable_disableAutoFocus: unstable_disableAutoFocus ?? disableAutoFocus,\n });\n\n return {\n ...popoverState,\n isPreviewLocked: previewInternalState.openByClick || previewInternalState.openByKeyboard,\n };\n};\n"],"names":["React","Enter","Escape","mergeCallbacks","resolvePositioningShorthand","useFluent","useId","useIsomorphicLayoutEffect","usePopover_unstable","useTimeout","addOpenedByHoverPreview","closeAllOpenedByHoverPreviews","removeOpenedByHoverPreview","POPOVER_MOUSE_DELAY","POPOVER_KEYBOARD_HIDE_DELAY","getDelay","type","popoverMouseHideDelay","usePreview_unstable","props","hideDelay","onOpenChange","open","positioning","showDelay","unstable_disableAutoFocus","children","Children","toArray","targetDocument","setEnterTimeout","clearEnterTimeout","setLeaveTimeout","clearLeaveTimeout","disableAutoFocus","setDisableAutoFocus","useState","current","previewInternalState","useRef","openByClick","openByHoverOverTrigger","openByHoverOverPopover","openByKeyboard","triggerMousedOver","isOpen","isPopoverOpen","setIsPopoverOpen","preventDefaultClose","popoverTrigger","undefined","popoverSurface","length","popoverSurfaceId","id","closeCallback","useEffect","handleTriggerTargetEnter","e","handleTriggerTargetLeave","handleTriggerClick","tmpOpenByHoverOverTrigger","preventDefault","handleTriggerKeyDown","key","handlePopoverTargetEnter","handlePopoverTargetLeave","cloneElement","onBlur","onClick","onKeyDown","onMouseEnter","onMouseLeave","onFocus","onDocumentKeyDown","openedByHover","stopPropagation","addEventListener","capture","removeEventListener","onPopoverOpenChange","data","resolvedChildren","popoverState","autoSize","isPreviewLocked"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewContent.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { PreviewContentState, PreviewContentSlots } from './PreviewContent.types';\n\n/**\n * Render the final JSX of PreviewContent\n */\nexport const renderPreviewContent_unstable = (state: PreviewContentState) => {\n assertSlots<PreviewContentSlots>(state);\n\n return <state.root />;\n};\n"],"names":["assertSlots","renderPreviewContent_unstable","state","root"],"rangeMappings":";;;;;;;","mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,6BAA6B;
|
|
1
|
+
{"version":3,"sources":["renderPreviewContent.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewContentState, PreviewContentSlots } from './PreviewContent.types';\n\n/**\n * Render the final JSX of PreviewContent\n */\nexport const renderPreviewContent_unstable = (state: PreviewContentState): JSXElement => {\n assertSlots<PreviewContentSlots>(state);\n\n return <state.root />;\n};\n"],"names":["assertSlots","renderPreviewContent_unstable","state","root"],"rangeMappings":";;;;;;;","mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,6BAA6B;AAIzD;;CAEC,GACD,OAAO,MAAMC,gCAAgC,CAACC;IAC5CF,YAAiCE;IAEjC,qBAAO,KAACA,MAAMC,IAAI;AACpB,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewHeader.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { PreviewHeaderState, PreviewHeaderSlots } from './PreviewHeader.types';\n\n/**\n * Render the final JSX of PreviewHeader\n */\nexport const renderPreviewHeader_unstable = (state: PreviewHeaderState) => {\n assertSlots<PreviewHeaderSlots>(state);\n\n return (\n <state.root>\n {state.citation && <state.citation />}\n {state.media && <state.media />}\n <state.label />\n {state.actions && <state.actions />}\n </state.root>\n );\n};\n"],"names":["assertSlots","renderPreviewHeader_unstable","state","root","citation","media","label","actions"],"rangeMappings":";;;;;;;;;;;;;;","mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,6BAA6B;
|
|
1
|
+
{"version":3,"sources":["renderPreviewHeader.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewHeaderState, PreviewHeaderSlots } from './PreviewHeader.types';\n\n/**\n * Render the final JSX of PreviewHeader\n */\nexport const renderPreviewHeader_unstable = (state: PreviewHeaderState): JSXElement => {\n assertSlots<PreviewHeaderSlots>(state);\n\n return (\n <state.root>\n {state.citation && <state.citation />}\n {state.media && <state.media />}\n <state.label />\n {state.actions && <state.actions />}\n </state.root>\n );\n};\n"],"names":["assertSlots","renderPreviewHeader_unstable","state","root","citation","media","label","actions"],"rangeMappings":";;;;;;;;;;;;;;","mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,6BAA6B;AAIzD;;CAEC,GACD,OAAO,MAAMC,+BAA+B,CAACC;IAC3CF,YAAgCE;IAEhC,qBACE,MAACA,MAAMC,IAAI;;YACRD,MAAME,QAAQ,kBAAI,KAACF,MAAME,QAAQ;YACjCF,MAAMG,KAAK,kBAAI,KAACH,MAAMG,KAAK;0BAC5B,KAACH,MAAMI,KAAK;YACXJ,MAAMK,OAAO,kBAAI,KAACL,MAAMK,OAAO;;;AAGtC,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewMetadata.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { PreviewMetadataState, PreviewMetadataSlots } from './PreviewMetadata.types';\n\n/**\n * Render the final JSX of PreviewMetadata\n */\nexport const renderPreviewMetadata_unstable = (state: PreviewMetadataState) => {\n assertSlots<PreviewMetadataSlots>(state);\n\n return (\n <state.root>\n {state.primaryText && <state.primaryText />}\n {state.secondaryText && <state.secondaryText />}\n {state.tertiaryText && <state.tertiaryText />}\n {state.icon && <state.icon />}\n {state.root.children}\n </state.root>\n );\n};\n"],"names":["assertSlots","renderPreviewMetadata_unstable","state","root","primaryText","secondaryText","tertiaryText","icon","children"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,6BAA6B;
|
|
1
|
+
{"version":3,"sources":["renderPreviewMetadata.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewMetadataState, PreviewMetadataSlots } from './PreviewMetadata.types';\n\n/**\n * Render the final JSX of PreviewMetadata\n */\nexport const renderPreviewMetadata_unstable = (state: PreviewMetadataState): JSXElement => {\n assertSlots<PreviewMetadataSlots>(state);\n\n return (\n <state.root>\n {state.primaryText && <state.primaryText />}\n {state.secondaryText && <state.secondaryText />}\n {state.tertiaryText && <state.tertiaryText />}\n {state.icon && <state.icon />}\n {state.root.children}\n </state.root>\n );\n};\n"],"names":["assertSlots","renderPreviewMetadata_unstable","state","root","primaryText","secondaryText","tertiaryText","icon","children"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":"AAAA,0BAA0B,GAC1B,iDAAiD;AAEjD,SAASA,WAAW,QAAQ,6BAA6B;AAIzD;;CAEC,GACD,OAAO,MAAMC,iCAAiC,CAACC;IAC7CF,YAAkCE;IAElC,qBACE,MAACA,MAAMC,IAAI;;YACRD,MAAME,WAAW,kBAAI,KAACF,MAAME,WAAW;YACvCF,MAAMG,aAAa,kBAAI,KAACH,MAAMG,aAAa;YAC3CH,MAAMI,YAAY,kBAAI,KAACJ,MAAMI,YAAY;YACzCJ,MAAMK,IAAI,kBAAI,KAACL,MAAMK,IAAI;YACzBL,MAAMC,IAAI,CAACK,QAAQ;;;AAG1B,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewSurface.tsx"],"sourcesContent":["import { renderPopoverSurface_unstable } from '@fluentui/react-components';\nimport type { PreviewSurfaceState } from './PreviewSurface.types';\n\n/**\n * Render the final JSX of PreviewSurface\n */\nexport const renderPreviewSurface_unstable = (state: PreviewSurfaceState):
|
|
1
|
+
{"version":3,"sources":["renderPreviewSurface.tsx"],"sourcesContent":["import { renderPopoverSurface_unstable } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewSurfaceState } from './PreviewSurface.types';\n\n/**\n * Render the final JSX of PreviewSurface\n */\nexport const renderPreviewSurface_unstable = (state: PreviewSurfaceState): JSXElement => {\n return renderPopoverSurface_unstable(state);\n};\n"],"names":["renderPopoverSurface_unstable","renderPreviewSurface_unstable","state"],"rangeMappings":";;;;;","mappings":"AAAA,SAASA,6BAA6B,QAAQ,6BAA6B;AAI3E;;CAEC,GACD,OAAO,MAAMC,gCAAgC,CAACC;IAC5C,OAAOF,8BAA8BE;AACvC,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewTrigger.tsx"],"sourcesContent":["import { renderPopoverTrigger_unstable } from '@fluentui/react-components';\nimport type { PreviewTriggerState } from './PreviewTrigger.types';\n\n/**\n * Render the final JSX of PreviewTrigger\n */\nexport const renderPreviewTrigger_unstable = (state: PreviewTriggerState) => {\n return renderPopoverTrigger_unstable(state);\n};\n"],"names":["renderPopoverTrigger_unstable","renderPreviewTrigger_unstable","state"],"rangeMappings":";;;;;","mappings":"AAAA,SAASA,6BAA6B,QAAQ,6BAA6B;
|
|
1
|
+
{"version":3,"sources":["renderPreviewTrigger.tsx"],"sourcesContent":["import { renderPopoverTrigger_unstable } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewTriggerState } from './PreviewTrigger.types';\n\n/**\n * Render the final JSX of PreviewTrigger\n */\nexport const renderPreviewTrigger_unstable = (state: PreviewTriggerState): JSXElement | null => {\n return renderPopoverTrigger_unstable(state);\n};\n"],"names":["renderPopoverTrigger_unstable","renderPreviewTrigger_unstable","state"],"rangeMappings":";;;;;","mappings":"AAAA,SAASA,6BAA6B,QAAQ,6BAA6B;AAI3E;;CAEC,GACD,OAAO,MAAMC,gCAAgC,CAACC;IAC5C,OAAOF,8BAA8BE;AACvC,EAAE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["openedByHoverPreviewManager.ts"],"sourcesContent":["type openedByHoverPreviewManager = { id: string; closeCallback: () => void }[];\n\nconst openedByHoverPreviewManager: openedByHoverPreviewManager = [];\n\nexport function addOpenedByHoverPreview(id: string, closeCallback: () => void) {\n openedByHoverPreviewManager.push({ id, closeCallback });\n}\n\nexport function removeOpenedByHoverPreview(id: string) {\n let index = openedByHoverPreviewManager.findIndex(preview => preview.id === id);\n while (index !== -1) {\n openedByHoverPreviewManager.splice(index, 1);\n index = openedByHoverPreviewManager.findIndex(preview => preview.id === id);\n }\n}\n\nexport function closeAllOpenedByHoverPreviews(id: string) {\n for (const openedPreview of openedByHoverPreviewManager) {\n if (openedPreview.id !== id) {\n openedPreview.closeCallback();\n }\n }\n\n openedByHoverPreviewManager.length = 0;\n}\n"],"names":["openedByHoverPreviewManager","addOpenedByHoverPreview","id","closeCallback","push","removeOpenedByHoverPreview","index","findIndex","preview","splice","closeAllOpenedByHoverPreviews","openedPreview","length"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,MAAMA,8BAA2D,EAAE;AAEnE,OAAO,SAASC,wBAAwBC,EAAU,EAAEC,aAAyB;IAC3EH,4BAA4BI,IAAI,CAAC;QAAEF;QAAIC;IAAc;AACvD;AAEA,OAAO,SAASE,2BAA2BH,EAAU;IACnD,IAAII,QAAQN,4BAA4BO,SAAS,CAACC,CAAAA,UAAWA,QAAQN,EAAE,KAAKA;IAC5E,MAAOI,UAAU,CAAC,EAAG;QACnBN,4BAA4BS,MAAM,CAACH,OAAO;QAC1CA,QAAQN,4BAA4BO,SAAS,CAACC,CAAAA,UAAWA,QAAQN,EAAE,KAAKA;IAC1E;AACF;AAEA,OAAO,SAASQ,8BAA8BR,EAAU;IACtD,KAAK,MAAMS,iBAAiBX,4BAA6B;QACvD,IAAIW,cAAcT,EAAE,KAAKA,IAAI;YAC3BS,cAAcR,aAAa;QAC7B;IACF;IAEAH,4BAA4BY,MAAM,GAAG;AACvC"}
|
|
1
|
+
{"version":3,"sources":["openedByHoverPreviewManager.ts"],"sourcesContent":["type openedByHoverPreviewManager = { id: string; closeCallback: () => void }[];\n\nconst openedByHoverPreviewManager: openedByHoverPreviewManager = [];\n\nexport function addOpenedByHoverPreview(id: string, closeCallback: () => void): void {\n openedByHoverPreviewManager.push({ id, closeCallback });\n}\n\nexport function removeOpenedByHoverPreview(id: string): void {\n let index = openedByHoverPreviewManager.findIndex(preview => preview.id === id);\n while (index !== -1) {\n openedByHoverPreviewManager.splice(index, 1);\n index = openedByHoverPreviewManager.findIndex(preview => preview.id === id);\n }\n}\n\nexport function closeAllOpenedByHoverPreviews(id: string): void {\n for (const openedPreview of openedByHoverPreviewManager) {\n if (openedPreview.id !== id) {\n openedPreview.closeCallback();\n }\n }\n\n openedByHoverPreviewManager.length = 0;\n}\n"],"names":["openedByHoverPreviewManager","addOpenedByHoverPreview","id","closeCallback","push","removeOpenedByHoverPreview","index","findIndex","preview","splice","closeAllOpenedByHoverPreviews","openedPreview","length"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;","mappings":"AAEA,MAAMA,8BAA2D,EAAE;AAEnE,OAAO,SAASC,wBAAwBC,EAAU,EAAEC,aAAyB;IAC3EH,4BAA4BI,IAAI,CAAC;QAAEF;QAAIC;IAAc;AACvD;AAEA,OAAO,SAASE,2BAA2BH,EAAU;IACnD,IAAII,QAAQN,4BAA4BO,SAAS,CAACC,CAAAA,UAAWA,QAAQN,EAAE,KAAKA;IAC5E,MAAOI,UAAU,CAAC,EAAG;QACnBN,4BAA4BS,MAAM,CAACH,OAAO;QAC1CA,QAAQN,4BAA4BO,SAAS,CAACC,CAAAA,UAAWA,QAAQN,EAAE,KAAKA;IAC1E;AACF;AAEA,OAAO,SAASQ,8BAA8BR,EAAU;IACtD,KAAK,MAAMS,iBAAiBX,4BAA6B;QACvD,IAAIW,cAAcT,EAAE,KAAKA,IAAI;YAC3BS,cAAcR,aAAa;QAC7B;IACF;IAEAH,4BAA4BY,MAAM,GAAG;AACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { renderPopover_unstable } from '@fluentui/react-components';\n\nimport { PreviewContextProvider } from '../../previewContext';\nimport type { PreviewState } from './Preview.types';\n\n/**\n * Render the final JSX of Preview\n */\nexport const renderPreview_unstable = (state: PreviewState) => {\n const {\n appearance,\n arrowRef,\n contentRef,\n inertTrapFocus,\n inline,\n isPreviewLocked,\n mountNode,\n open,\n openOnContext,\n openOnHover,\n setOpen,\n size,\n toggleOpen,\n trapFocus,\n triggerRef,\n withArrow,\n } = state;\n\n return (\n <PreviewContextProvider\n value={{\n appearance,\n arrowRef,\n contentRef,\n inertTrapFocus,\n inline,\n isPreviewLocked,\n mountNode,\n open,\n openOnContext,\n openOnHover,\n setOpen,\n size,\n toggleOpen,\n trapFocus,\n triggerRef,\n withArrow,\n }}\n >\n {renderPopover_unstable(state)}\n </PreviewContextProvider>\n );\n};\n"],"names":["renderPreview_unstable","state","appearance","arrowRef","contentRef","inertTrapFocus","inline","isPreviewLocked","mountNode","open","openOnContext","openOnHover","setOpen","size","toggleOpen","trapFocus","triggerRef","withArrow","React","createElement","PreviewContextProvider","value","renderPopover_unstable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["renderPreview.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { renderPopover_unstable } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\n\nimport { PreviewContextProvider } from '../../previewContext';\nimport type { PreviewState } from './Preview.types';\n\n/**\n * Render the final JSX of Preview\n */\nexport const renderPreview_unstable = (state: PreviewState): JSXElement => {\n const {\n appearance,\n arrowRef,\n contentRef,\n inertTrapFocus,\n inline,\n isPreviewLocked,\n mountNode,\n open,\n openOnContext,\n openOnHover,\n setOpen,\n size,\n toggleOpen,\n trapFocus,\n triggerRef,\n withArrow,\n } = state;\n\n return (\n <PreviewContextProvider\n value={{\n appearance,\n arrowRef,\n contentRef,\n inertTrapFocus,\n inline,\n isPreviewLocked,\n mountNode,\n open,\n openOnContext,\n openOnHover,\n setOpen,\n size,\n toggleOpen,\n trapFocus,\n triggerRef,\n withArrow,\n }}\n >\n {renderPopover_unstable(state)}\n </PreviewContextProvider>\n );\n};\n"],"names":["renderPreview_unstable","state","appearance","arrowRef","contentRef","inertTrapFocus","inline","isPreviewLocked","mountNode","open","openOnContext","openOnHover","setOpen","size","toggleOpen","trapFocus","triggerRef","withArrow","React","createElement","PreviewContextProvider","value","renderPopover_unstable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAWaA;;;eAAAA;;;;iEAXU;iCAEgB;gCAGA;AAMhC,MAAMA,yBAAyB,CAACC;IACrC,MAAM,EACJC,UAAU,EACVC,QAAQ,EACRC,UAAU,EACVC,cAAc,EACdC,MAAM,EACNC,eAAe,EACfC,SAAS,EACTC,IAAI,EACJC,aAAa,EACbC,WAAW,EACXC,OAAO,EACPC,IAAI,EACJC,UAAU,EACVC,SAAS,EACTC,UAAU,EACVC,SAAS,EACV,GAAGhB;IAEJ,OAAA,WAAA,GACEiB,OAAAC,aAAA,CAACC,sCAAAA,EAAAA;QACCC,OAAO;YACLnB;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;YACAC;QACF;OAECK,IAAAA,uCAAAA,EAAuBrB;AAG9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["usePreview.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { Enter, Escape } from '@fluentui/keyboard-keys';\nimport {\n mergeCallbacks,\n resolvePositioningShorthand,\n useFluent,\n useId,\n useIsomorphicLayoutEffect,\n usePopover_unstable,\n} from '@fluentui/react-components';\nimport { useTimeout } from '@fluentui/react-utilities';\nimport type { OnOpenChangeData, OpenPopoverEvents } from '@fluentui/react-components';\n\nimport { addOpenedByHoverPreview, closeAllOpenedByHoverPreviews, removeOpenedByHoverPreview } from '../../utils';\nimport type { PreviewProps, PreviewState } from './Preview.types';\n\ntype PreviewInternalState = {\n openByClick: boolean;\n openByHoverOverTrigger: boolean;\n openByHoverOverPopover: boolean;\n openByKeyboard: boolean;\n};\n\nconst POPOVER_MOUSE_DELAY = 250;\nconst POPOVER_KEYBOARD_HIDE_DELAY = 0;\n\nconst getDelay = (type: string, popoverMouseHideDelay: number): number => {\n if (type === 'focus' || type === 'blur') {\n return POPOVER_KEYBOARD_HIDE_DELAY;\n }\n\n return popoverMouseHideDelay;\n};\n\ntype TargetEvent<T> = React.MouseEvent<T> | React.FocusEvent<T>;\n\n/**\n * Create the state required to render Preview.\n *\n * The returned state can be modified with hooks such as usePreviewStyles_unstable,\n * before being passed to renderPreview_unstable.\n *\n * @param props - props from this instance of Preview\n * @param ref - reference to root HTMLElement of Preview\n */\nexport const usePreview_unstable = (props: PreviewProps): PreviewState => {\n const {\n hideDelay = POPOVER_MOUSE_DELAY,\n onOpenChange,\n open,\n positioning,\n showDelay = POPOVER_MOUSE_DELAY,\n unstable_disableAutoFocus,\n } = props;\n\n const children = React.Children.toArray(props.children) as React.ReactElement[];\n\n const { targetDocument } = useFluent();\n const [setEnterTimeout, clearEnterTimeout] = useTimeout();\n const [setLeaveTimeout, clearLeaveTimeout] = useTimeout();\n\n const [disableAutoFocus, setDisableAutoFocus] = React.useState(true);\n\n const { current: previewInternalState } = React.useRef<PreviewInternalState>({\n openByClick: false,\n openByHoverOverTrigger: false,\n openByHoverOverPopover: false,\n openByKeyboard: false,\n });\n const triggerMousedOver = React.useRef(false);\n\n const isOpen = () => {\n return (\n previewInternalState.openByClick ||\n previewInternalState.openByHoverOverTrigger ||\n previewInternalState.openByHoverOverPopover ||\n previewInternalState.openByKeyboard\n );\n };\n\n const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\n const preventDefaultClose = React.useRef(false);\n\n let popoverTrigger: React.ReactElement | undefined = undefined;\n let popoverSurface: React.ReactElement | undefined = undefined;\n if (children.length === 2) {\n popoverTrigger = children[0];\n popoverSurface = children[1];\n } else if (children.length === 1) {\n popoverSurface = children[0];\n }\n\n const popoverSurfaceId = useId('preview-surface', popoverSurface?.props.id);\n\n const closeCallback = () => {\n previewInternalState.openByClick = false;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n previewInternalState.openByKeyboard = false;\n setIsPopoverOpen(isOpen());\n clearEnterTimeout();\n };\n\n React.useEffect(() => {\n return () => {\n // Remove all instances of the current popover from the openedByHoverPreviewManager when the component is unmounted.\n removeOpenedByHoverPreview(popoverSurfaceId);\n };\n }, [popoverSurfaceId]);\n\n if (popoverSurface && popoverTrigger) {\n const handleTriggerTargetEnter = (e: TargetEvent<HTMLSpanElement>): void => {\n previewInternalState.openByHoverOverTrigger = true;\n triggerMousedOver.current = true;\n\n // We want to disable auto focus only if the popover is being opened by hovering over the trigger\n if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen) {\n setDisableAutoFocus(true);\n closeAllOpenedByHoverPreviews(popoverSurfaceId);\n }\n\n setEnterTimeout(() => {\n if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen && isOpen()) {\n onOpenChange?.(e, { open: true });\n addOpenedByHoverPreview(popoverSurfaceId, closeCallback);\n }\n setIsPopoverOpen(isOpen());\n }, showDelay);\n };\n\n const handleTriggerTargetLeave = (e: TargetEvent<HTMLSpanElement>): void => {\n previewInternalState.openByHoverOverTrigger = false;\n triggerMousedOver.current = false;\n\n setLeaveTimeout(() => {\n setIsPopoverOpen(isOpen());\n\n // We want to call onOpenChange only if the popover is actually closing when leaving the trigger\n if (\n !previewInternalState.openByClick &&\n !previewInternalState.openByKeyboard &&\n !previewInternalState.openByHoverOverPopover &&\n isPopoverOpen\n ) {\n onOpenChange?.(e, { open: false });\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n }, getDelay(e.type, hideDelay));\n };\n\n const handleTriggerClick = (e: TargetEvent<HTMLSpanElement>): void => {\n // Setting preventDefaultClose so that onPopoverOpenChange does not apply its logic when click is on the trigger as we want to control that behavior.\n preventDefaultClose.current = true;\n\n // We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via click.\n setDisableAutoFocus(false);\n\n const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;\n\n // If openByKeyboard is true, then the popover was already opened via keyboard and we always want to close it.\n previewInternalState.openByClick = previewInternalState.openByKeyboard\n ? false\n : !previewInternalState.openByClick;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n previewInternalState.openByKeyboard = false;\n\n // We set triggerMousedOver to false when clicking, since we just interacted with the trigger via click, and not hover.\n if (triggerMousedOver.current) {\n previewInternalState.openByClick = false;\n triggerMousedOver.current = false;\n }\n // If it was not moused over, we want to prevent the default click action from opening a link, so the preview can open first\n else {\n e.preventDefault();\n }\n\n if (!tmpOpenByHoverOverTrigger) {\n onOpenChange?.(e, { open: previewInternalState.openByClick });\n }\n\n if (!isOpen()) {\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n setIsPopoverOpen(isOpen());\n };\n\n const handleTriggerKeyDown = (e: React.KeyboardEvent<HTMLSpanElement>): void => {\n if (e.key === Enter) {\n clearLeaveTimeout();\n\n // Setting default prevented so that Enter key does not trigger a click event or onPopoverOpenChange.\n e.preventDefault();\n\n // We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via keyboard.\n setDisableAutoFocus(false);\n\n const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;\n\n // If openByClick is true, then the popover was already opened via click and we always want to close it.\n previewInternalState.openByKeyboard = previewInternalState.openByClick\n ? false\n : !previewInternalState.openByKeyboard;\n previewInternalState.openByClick = false;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n\n if (!tmpOpenByHoverOverTrigger) {\n onOpenChange?.(e, { open: previewInternalState.openByKeyboard });\n }\n\n if (!isOpen()) {\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n setIsPopoverOpen(isOpen());\n }\n };\n\n const handlePopoverTargetEnter = (e: TargetEvent<HTMLDivElement>): void => {\n previewInternalState.openByHoverOverPopover = true;\n setIsPopoverOpen(isOpen());\n };\n\n const handlePopoverTargetLeave = (e: TargetEvent<HTMLDivElement>): void => {\n previewInternalState.openByHoverOverPopover = false;\n setLeaveTimeout(() => {\n setIsPopoverOpen(isOpen());\n\n // We want to call onOpenChange only if the popover is actually closing when leaving the popover\n if (\n !previewInternalState.openByClick &&\n !previewInternalState.openByKeyboard &&\n !previewInternalState.openByHoverOverTrigger\n ) {\n onOpenChange?.(e, { open: false });\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n }, getDelay(e.type, hideDelay));\n };\n\n popoverTrigger = React.cloneElement(popoverTrigger, {\n ...popoverTrigger.props,\n children: React.cloneElement(popoverTrigger.props.children as React.ReactElement, {\n ...popoverTrigger.props.children.props,\n onBlur: mergeCallbacks(popoverTrigger.props.children.props.onBlur, handleTriggerTargetLeave),\n onClick: mergeCallbacks(popoverTrigger.props.children.props.onClick, handleTriggerClick),\n onKeyDown: mergeCallbacks(popoverTrigger.props.children.props.onKeyDown, handleTriggerKeyDown),\n onMouseEnter: mergeCallbacks(popoverTrigger.props.children.props.onMouseEnter, handleTriggerTargetEnter),\n onMouseLeave: mergeCallbacks(popoverTrigger.props.children.props.onMouseLeave, handleTriggerTargetLeave),\n }),\n });\n\n popoverSurface = React.cloneElement(popoverSurface, {\n ...popoverSurface.props,\n 'aria-labelledby':\n popoverSurface.props['aria-labelledby'] ?? (popoverSurface.props['aria-label'] ? undefined : popoverSurfaceId),\n id: popoverSurfaceId,\n onMouseEnter: mergeCallbacks(popoverSurface.props.onMouseEnter, handlePopoverTargetEnter),\n onMouseLeave: mergeCallbacks(popoverSurface.props.onMouseLeave, handlePopoverTargetLeave),\n onFocus: mergeCallbacks(popoverSurface.props.onFocus, handlePopoverTargetEnter),\n });\n }\n\n // Hitting Escape key should close the popover if it was opened by hover.\n // This is necessary to attach to the document because focus is likely not within the trigger or popover.\n useIsomorphicLayoutEffect(() => {\n if (isPopoverOpen) {\n const onDocumentKeyDown = (e: KeyboardEvent) => {\n const openedByHover = !previewInternalState.openByClick && !previewInternalState.openByKeyboard;\n\n if (openedByHover && e.key === Escape) {\n clearLeaveTimeout();\n\n // We set state back to its default if the Escape key has been pressed\n setDisableAutoFocus(true);\n closeCallback();\n removeOpenedByHoverPreview(popoverSurfaceId);\n\n onOpenChange?.(e as unknown as OpenPopoverEvents, { open: false });\n\n e.stopPropagation();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, { capture: true });\n\n return () => {\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n };\n }\n }, [targetDocument, isPopoverOpen]);\n\n const onPopoverOpenChange = (e: OpenPopoverEvents, data: OnOpenChangeData): void => {\n if (!preventDefaultClose.current) {\n // We set all open state to false if preventDefaultClose was not set to true and the popover is closing.\n if (!data.open) {\n clearLeaveTimeout();\n closeCallback();\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n onOpenChange?.(e, data);\n }\n\n preventDefaultClose.current = false;\n };\n\n let resolvedChildren = children as [JSX.Element, JSX.Element] | JSX.Element;\n if (popoverSurface) {\n if (popoverTrigger) {\n resolvedChildren = [popoverTrigger, popoverSurface];\n } else {\n resolvedChildren = popoverSurface;\n }\n }\n\n const popoverState = usePopover_unstable({\n ...props,\n children: resolvedChildren,\n onOpenChange: onPopoverOpenChange,\n open: open ?? isPopoverOpen,\n positioning:\n typeof positioning === 'string'\n ? { autoSize: true, ...resolvePositioningShorthand(positioning) }\n : { autoSize: true, ...positioning },\n unstable_disableAutoFocus: unstable_disableAutoFocus ?? disableAutoFocus,\n });\n\n return {\n ...popoverState,\n isPreviewLocked: previewInternalState.openByClick || previewInternalState.openByKeyboard,\n };\n};\n"],"names":["usePreview_unstable","POPOVER_MOUSE_DELAY","POPOVER_KEYBOARD_HIDE_DELAY","getDelay","type","popoverMouseHideDelay","props","hideDelay","onOpenChange","open","positioning","showDelay","unstable_disableAutoFocus","children","React","Children","toArray","targetDocument","useFluent","setEnterTimeout","clearEnterTimeout","useTimeout","setLeaveTimeout","clearLeaveTimeout","disableAutoFocus","setDisableAutoFocus","useState","current","previewInternalState","useRef","openByClick","openByHoverOverTrigger","openByHoverOverPopover","openByKeyboard","triggerMousedOver","isOpen","isPopoverOpen","setIsPopoverOpen","preventDefaultClose","popoverTrigger","undefined","popoverSurface","length","popoverSurfaceId","useId","id","closeCallback","useEffect","removeOpenedByHoverPreview","handleTriggerTargetEnter","e","closeAllOpenedByHoverPreviews","addOpenedByHoverPreview","handleTriggerTargetLeave","handleTriggerClick","tmpOpenByHoverOverTrigger","preventDefault","handleTriggerKeyDown","key","Enter","handlePopoverTargetEnter","handlePopoverTargetLeave","cloneElement","onBlur","mergeCallbacks","onClick","onKeyDown","onMouseEnter","onMouseLeave","onFocus","useIsomorphicLayoutEffect","onDocumentKeyDown","openedByHover","Escape","stopPropagation","addEventListener","capture","removeEventListener","onPopoverOpenChange","data","resolvedChildren","popoverState","usePopover_unstable","autoSize","resolvePositioningShorthand","isPreviewLocked"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["usePreview.ts"],"sourcesContent":["import * as React from 'react';\n\nimport { Enter, Escape } from '@fluentui/keyboard-keys';\nimport {\n mergeCallbacks,\n resolvePositioningShorthand,\n useFluent,\n useId,\n useIsomorphicLayoutEffect,\n usePopover_unstable,\n} from '@fluentui/react-components';\nimport { useTimeout } from '@fluentui/react-utilities';\nimport type { OnOpenChangeData, OpenPopoverEvents, JSXElement } from '@fluentui/react-components';\n\nimport { addOpenedByHoverPreview, closeAllOpenedByHoverPreviews, removeOpenedByHoverPreview } from '../../utils';\nimport type { PreviewProps, PreviewState } from './Preview.types';\n\ntype PreviewInternalState = {\n openByClick: boolean;\n openByHoverOverTrigger: boolean;\n openByHoverOverPopover: boolean;\n openByKeyboard: boolean;\n};\n\nconst POPOVER_MOUSE_DELAY = 250;\nconst POPOVER_KEYBOARD_HIDE_DELAY = 0;\n\nconst getDelay = (type: string, popoverMouseHideDelay: number): number => {\n if (type === 'focus' || type === 'blur') {\n return POPOVER_KEYBOARD_HIDE_DELAY;\n }\n\n return popoverMouseHideDelay;\n};\n\ntype TargetEvent<T> = React.MouseEvent<T> | React.FocusEvent<T>;\n\n/**\n * Create the state required to render Preview.\n *\n * The returned state can be modified with hooks such as usePreviewStyles_unstable,\n * before being passed to renderPreview_unstable.\n *\n * @param props - props from this instance of Preview\n * @param ref - reference to root HTMLElement of Preview\n */\nexport const usePreview_unstable = (props: PreviewProps): PreviewState => {\n const {\n hideDelay = POPOVER_MOUSE_DELAY,\n onOpenChange,\n open,\n positioning,\n showDelay = POPOVER_MOUSE_DELAY,\n unstable_disableAutoFocus,\n } = props;\n\n const children = React.Children.toArray(props.children) as JSXElement[];\n\n const { targetDocument } = useFluent();\n const [setEnterTimeout, clearEnterTimeout] = useTimeout();\n const [setLeaveTimeout, clearLeaveTimeout] = useTimeout();\n\n const [disableAutoFocus, setDisableAutoFocus] = React.useState(true);\n\n const { current: previewInternalState } = React.useRef<PreviewInternalState>({\n openByClick: false,\n openByHoverOverTrigger: false,\n openByHoverOverPopover: false,\n openByKeyboard: false,\n });\n const triggerMousedOver = React.useRef(false);\n\n const isOpen = () => {\n return (\n previewInternalState.openByClick ||\n previewInternalState.openByHoverOverTrigger ||\n previewInternalState.openByHoverOverPopover ||\n previewInternalState.openByKeyboard\n );\n };\n\n const [isPopoverOpen, setIsPopoverOpen] = React.useState(false);\n const preventDefaultClose = React.useRef(false);\n\n let popoverTrigger: JSXElement | undefined = undefined;\n let popoverSurface: JSXElement | undefined = undefined;\n if (children.length === 2) {\n popoverTrigger = children[0];\n popoverSurface = children[1];\n } else if (children.length === 1) {\n popoverSurface = children[0];\n }\n\n const popoverSurfaceId = useId('preview-surface', popoverSurface?.props.id);\n\n const closeCallback = () => {\n previewInternalState.openByClick = false;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n previewInternalState.openByKeyboard = false;\n setIsPopoverOpen(isOpen());\n clearEnterTimeout();\n };\n\n React.useEffect(() => {\n return () => {\n // Remove all instances of the current popover from the openedByHoverPreviewManager when the component is unmounted.\n removeOpenedByHoverPreview(popoverSurfaceId);\n };\n }, [popoverSurfaceId]);\n\n if (popoverSurface && popoverTrigger) {\n const handleTriggerTargetEnter = (e: TargetEvent<HTMLSpanElement>): void => {\n previewInternalState.openByHoverOverTrigger = true;\n triggerMousedOver.current = true;\n\n // We want to disable auto focus only if the popover is being opened by hovering over the trigger\n if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen) {\n setDisableAutoFocus(true);\n closeAllOpenedByHoverPreviews(popoverSurfaceId);\n }\n\n setEnterTimeout(() => {\n if (!previewInternalState.openByClick && !previewInternalState.openByKeyboard && !isPopoverOpen && isOpen()) {\n onOpenChange?.(e, { open: true });\n addOpenedByHoverPreview(popoverSurfaceId, closeCallback);\n }\n setIsPopoverOpen(isOpen());\n }, showDelay);\n };\n\n const handleTriggerTargetLeave = (e: TargetEvent<HTMLSpanElement>): void => {\n previewInternalState.openByHoverOverTrigger = false;\n triggerMousedOver.current = false;\n\n setLeaveTimeout(() => {\n setIsPopoverOpen(isOpen());\n\n // We want to call onOpenChange only if the popover is actually closing when leaving the trigger\n if (\n !previewInternalState.openByClick &&\n !previewInternalState.openByKeyboard &&\n !previewInternalState.openByHoverOverPopover &&\n isPopoverOpen\n ) {\n onOpenChange?.(e, { open: false });\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n }, getDelay(e.type, hideDelay));\n };\n\n const handleTriggerClick = (e: TargetEvent<HTMLSpanElement>): void => {\n // Setting preventDefaultClose so that onPopoverOpenChange does not apply its logic when click is on the trigger as we want to control that behavior.\n preventDefaultClose.current = true;\n\n // We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via click.\n setDisableAutoFocus(false);\n\n const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;\n\n // If openByKeyboard is true, then the popover was already opened via keyboard and we always want to close it.\n previewInternalState.openByClick = previewInternalState.openByKeyboard\n ? false\n : !previewInternalState.openByClick;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n previewInternalState.openByKeyboard = false;\n\n // We set triggerMousedOver to false when clicking, since we just interacted with the trigger via click, and not hover.\n if (triggerMousedOver.current) {\n previewInternalState.openByClick = false;\n triggerMousedOver.current = false;\n }\n // If it was not moused over, we want to prevent the default click action from opening a link, so the preview can open first\n else {\n e.preventDefault();\n }\n\n if (!tmpOpenByHoverOverTrigger) {\n onOpenChange?.(e, { open: previewInternalState.openByClick });\n }\n\n if (!isOpen()) {\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n setIsPopoverOpen(isOpen());\n };\n\n const handleTriggerKeyDown = (e: React.KeyboardEvent<HTMLSpanElement>): void => {\n if (e.key === Enter) {\n clearLeaveTimeout();\n\n // Setting default prevented so that Enter key does not trigger a click event or onPopoverOpenChange.\n e.preventDefault();\n\n // We set disableAutoFocus to false so that interactive elements within popover can be focused when it opens via keyboard.\n setDisableAutoFocus(false);\n\n const tmpOpenByHoverOverTrigger = previewInternalState.openByHoverOverTrigger;\n\n // If openByClick is true, then the popover was already opened via click and we always want to close it.\n previewInternalState.openByKeyboard = previewInternalState.openByClick\n ? false\n : !previewInternalState.openByKeyboard;\n previewInternalState.openByClick = false;\n previewInternalState.openByHoverOverTrigger = false;\n previewInternalState.openByHoverOverPopover = false;\n\n if (!tmpOpenByHoverOverTrigger) {\n onOpenChange?.(e, { open: previewInternalState.openByKeyboard });\n }\n\n if (!isOpen()) {\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n setIsPopoverOpen(isOpen());\n }\n };\n\n const handlePopoverTargetEnter = (e: TargetEvent<HTMLDivElement>): void => {\n previewInternalState.openByHoverOverPopover = true;\n setIsPopoverOpen(isOpen());\n };\n\n const handlePopoverTargetLeave = (e: TargetEvent<HTMLDivElement>): void => {\n previewInternalState.openByHoverOverPopover = false;\n setLeaveTimeout(() => {\n setIsPopoverOpen(isOpen());\n\n // We want to call onOpenChange only if the popover is actually closing when leaving the popover\n if (\n !previewInternalState.openByClick &&\n !previewInternalState.openByKeyboard &&\n !previewInternalState.openByHoverOverTrigger\n ) {\n onOpenChange?.(e, { open: false });\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n }, getDelay(e.type, hideDelay));\n };\n\n popoverTrigger = React.cloneElement(popoverTrigger, {\n ...popoverTrigger.props,\n children: React.cloneElement(popoverTrigger.props.children as JSXElement, {\n ...popoverTrigger.props.children.props,\n onBlur: mergeCallbacks(popoverTrigger.props.children.props.onBlur, handleTriggerTargetLeave),\n onClick: mergeCallbacks(popoverTrigger.props.children.props.onClick, handleTriggerClick),\n onKeyDown: mergeCallbacks(popoverTrigger.props.children.props.onKeyDown, handleTriggerKeyDown),\n onMouseEnter: mergeCallbacks(popoverTrigger.props.children.props.onMouseEnter, handleTriggerTargetEnter),\n onMouseLeave: mergeCallbacks(popoverTrigger.props.children.props.onMouseLeave, handleTriggerTargetLeave),\n }),\n });\n\n popoverSurface = React.cloneElement(popoverSurface, {\n ...popoverSurface.props,\n 'aria-labelledby':\n popoverSurface.props['aria-labelledby'] ?? (popoverSurface.props['aria-label'] ? undefined : popoverSurfaceId),\n id: popoverSurfaceId,\n onMouseEnter: mergeCallbacks(popoverSurface.props.onMouseEnter, handlePopoverTargetEnter),\n onMouseLeave: mergeCallbacks(popoverSurface.props.onMouseLeave, handlePopoverTargetLeave),\n onFocus: mergeCallbacks(popoverSurface.props.onFocus, handlePopoverTargetEnter),\n });\n }\n\n // Hitting Escape key should close the popover if it was opened by hover.\n // This is necessary to attach to the document because focus is likely not within the trigger or popover.\n useIsomorphicLayoutEffect(() => {\n if (isPopoverOpen) {\n const onDocumentKeyDown = (e: KeyboardEvent) => {\n const openedByHover = !previewInternalState.openByClick && !previewInternalState.openByKeyboard;\n\n if (openedByHover && e.key === Escape) {\n clearLeaveTimeout();\n\n // We set state back to its default if the Escape key has been pressed\n setDisableAutoFocus(true);\n closeCallback();\n removeOpenedByHoverPreview(popoverSurfaceId);\n\n onOpenChange?.(e as unknown as OpenPopoverEvents, { open: false });\n\n e.stopPropagation();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, { capture: true });\n\n return () => {\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n };\n }\n }, [targetDocument, isPopoverOpen]);\n\n const onPopoverOpenChange = (e: OpenPopoverEvents, data: OnOpenChangeData): void => {\n if (!preventDefaultClose.current) {\n // We set all open state to false if preventDefaultClose was not set to true and the popover is closing.\n if (!data.open) {\n clearLeaveTimeout();\n closeCallback();\n removeOpenedByHoverPreview(popoverSurfaceId);\n }\n\n onOpenChange?.(e, data);\n }\n\n preventDefaultClose.current = false;\n };\n\n let resolvedChildren = children as [JSXElement, JSXElement] | JSXElement;\n if (popoverSurface) {\n if (popoverTrigger) {\n resolvedChildren = [popoverTrigger, popoverSurface];\n } else {\n resolvedChildren = popoverSurface;\n }\n }\n\n const popoverState = usePopover_unstable({\n ...props,\n children: resolvedChildren,\n onOpenChange: onPopoverOpenChange,\n open: open ?? isPopoverOpen,\n positioning:\n typeof positioning === 'string'\n ? { autoSize: true, ...resolvePositioningShorthand(positioning) }\n : { autoSize: true, ...positioning },\n unstable_disableAutoFocus: unstable_disableAutoFocus ?? disableAutoFocus,\n });\n\n return {\n ...popoverState,\n isPreviewLocked: previewInternalState.openByClick || previewInternalState.openByKeyboard,\n };\n};\n"],"names":["usePreview_unstable","POPOVER_MOUSE_DELAY","POPOVER_KEYBOARD_HIDE_DELAY","getDelay","type","popoverMouseHideDelay","props","hideDelay","onOpenChange","open","positioning","showDelay","unstable_disableAutoFocus","children","React","Children","toArray","targetDocument","useFluent","setEnterTimeout","clearEnterTimeout","useTimeout","setLeaveTimeout","clearLeaveTimeout","disableAutoFocus","setDisableAutoFocus","useState","current","previewInternalState","useRef","openByClick","openByHoverOverTrigger","openByHoverOverPopover","openByKeyboard","triggerMousedOver","isOpen","isPopoverOpen","setIsPopoverOpen","preventDefaultClose","popoverTrigger","undefined","popoverSurface","length","popoverSurfaceId","useId","id","closeCallback","useEffect","removeOpenedByHoverPreview","handleTriggerTargetEnter","e","closeAllOpenedByHoverPreviews","addOpenedByHoverPreview","handleTriggerTargetLeave","handleTriggerClick","tmpOpenByHoverOverTrigger","preventDefault","handleTriggerKeyDown","key","Enter","handlePopoverTargetEnter","handlePopoverTargetLeave","cloneElement","onBlur","mergeCallbacks","onClick","onKeyDown","onMouseEnter","onMouseLeave","onFocus","useIsomorphicLayoutEffect","onDocumentKeyDown","openedByHover","Escape","stopPropagation","addEventListener","capture","removeEventListener","onPopoverOpenChange","data","resolvedChildren","popoverState","usePopover_unstable","autoSize","resolvePositioningShorthand","isPreviewLocked"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewContent.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { PreviewContentState, PreviewContentSlots } from './PreviewContent.types';\n\n/**\n * Render the final JSX of PreviewContent\n */\nexport const renderPreviewContent_unstable = (state: PreviewContentState) => {\n assertSlots<PreviewContentSlots>(state);\n\n return <state.root />;\n};\n"],"names":["renderPreviewContent_unstable","state","assertSlots","_jsx","root"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["renderPreviewContent.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewContentState, PreviewContentSlots } from './PreviewContent.types';\n\n/**\n * Render the final JSX of PreviewContent\n */\nexport const renderPreviewContent_unstable = (state: PreviewContentState): JSXElement => {\n assertSlots<PreviewContentSlots>(state);\n\n return <state.root />;\n};\n"],"names":["renderPreviewContent_unstable","state","assertSlots","_jsx","root"],"rangeMappings":";;;;;;;;;;;;;;;","mappings":";;;;+BAUaA;;;eAAAA;;;4BATb;iCAE4B;AAOrB,MAAMA,gCAAgC,CAACC;IAC5CC,IAAAA,4BAAAA,EAAiCD;IAEjC,OAAA,WAAA,GAAOE,IAAAA,eAAA,EAACF,MAAMG,IAAI,EAAA,CAAA;AACpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewHeader.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { PreviewHeaderState, PreviewHeaderSlots } from './PreviewHeader.types';\n\n/**\n * Render the final JSX of PreviewHeader\n */\nexport const renderPreviewHeader_unstable = (state: PreviewHeaderState) => {\n assertSlots<PreviewHeaderSlots>(state);\n\n return (\n <state.root>\n {state.citation && <state.citation />}\n {state.media && <state.media />}\n <state.label />\n {state.actions && <state.actions />}\n </state.root>\n );\n};\n"],"names":["renderPreviewHeader_unstable","state","assertSlots","_jsxs","root","citation","_jsx","media","label","actions"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["renderPreviewHeader.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewHeaderState, PreviewHeaderSlots } from './PreviewHeader.types';\n\n/**\n * Render the final JSX of PreviewHeader\n */\nexport const renderPreviewHeader_unstable = (state: PreviewHeaderState): JSXElement => {\n assertSlots<PreviewHeaderSlots>(state);\n\n return (\n <state.root>\n {state.citation && <state.citation />}\n {state.media && <state.media />}\n <state.label />\n {state.actions && <state.actions />}\n </state.root>\n );\n};\n"],"names":["renderPreviewHeader_unstable","state","assertSlots","_jsxs","root","citation","_jsx","media","label","actions"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAUaA;;;eAAAA;;;4BATb;iCAE4B;AAOrB,MAAMA,+BAA+B,CAACC;IAC3CC,IAAAA,4BAAAA,EAAgCD;IAEhC,OAAA,WAAA,GACEE,IAAAA,gBAAA,EAACF,MAAMG,IAAI,EAAA;;YACRH,MAAMI,QAAQ,IAAA,WAAA,GAAIC,IAAAA,eAAA,EAACL,MAAMI,QAAQ,EAAA,CAAA;YACjCJ,MAAMM,KAAK,IAAA,WAAA,GAAID,IAAAA,eAAA,EAACL,MAAMM,KAAK,EAAA,CAAA;0BAC5BD,IAAAA,eAAA,EAACL,MAAMO,KAAK,EAAA,CAAA;YACXP,MAAMQ,OAAO,IAAA,WAAA,GAAIH,IAAAA,eAAA,EAACL,MAAMQ,OAAO,EAAA,CAAA;;;AAGtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewMetadata.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { PreviewMetadataState, PreviewMetadataSlots } from './PreviewMetadata.types';\n\n/**\n * Render the final JSX of PreviewMetadata\n */\nexport const renderPreviewMetadata_unstable = (state: PreviewMetadataState) => {\n assertSlots<PreviewMetadataSlots>(state);\n\n return (\n <state.root>\n {state.primaryText && <state.primaryText />}\n {state.secondaryText && <state.secondaryText />}\n {state.tertiaryText && <state.tertiaryText />}\n {state.icon && <state.icon />}\n {state.root.children}\n </state.root>\n );\n};\n"],"names":["renderPreviewMetadata_unstable","state","assertSlots","_jsxs","root","primaryText","_jsx","secondaryText","tertiaryText","icon","children"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["renderPreviewMetadata.tsx"],"sourcesContent":["/** @jsxRuntime automatic */\n/** @jsxImportSource @fluentui/react-jsx-runtime */\n\nimport { assertSlots } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewMetadataState, PreviewMetadataSlots } from './PreviewMetadata.types';\n\n/**\n * Render the final JSX of PreviewMetadata\n */\nexport const renderPreviewMetadata_unstable = (state: PreviewMetadataState): JSXElement => {\n assertSlots<PreviewMetadataSlots>(state);\n\n return (\n <state.root>\n {state.primaryText && <state.primaryText />}\n {state.secondaryText && <state.secondaryText />}\n {state.tertiaryText && <state.tertiaryText />}\n {state.icon && <state.icon />}\n {state.root.children}\n </state.root>\n );\n};\n"],"names":["renderPreviewMetadata_unstable","state","assertSlots","_jsxs","root","primaryText","_jsx","secondaryText","tertiaryText","icon","children"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAUaA;;;eAAAA;;;4BATb;iCAE4B;AAOrB,MAAMA,iCAAiC,CAACC;IAC7CC,IAAAA,4BAAAA,EAAkCD;IAElC,OAAA,WAAA,GACEE,IAAAA,gBAAA,EAACF,MAAMG,IAAI,EAAA;;YACRH,MAAMI,WAAW,IAAA,WAAA,GAAIC,IAAAA,eAAA,EAACL,MAAMI,WAAW,EAAA,CAAA;YACvCJ,MAAMM,aAAa,IAAA,WAAA,GAAID,IAAAA,eAAA,EAACL,MAAMM,aAAa,EAAA,CAAA;YAC3CN,MAAMO,YAAY,IAAA,WAAA,GAAIF,IAAAA,eAAA,EAACL,MAAMO,YAAY,EAAA,CAAA;YACzCP,MAAMQ,IAAI,IAAA,WAAA,GAAIH,IAAAA,eAAA,EAACL,MAAMQ,IAAI,EAAA,CAAA;YACzBR,MAAMG,IAAI,CAACM,QAAQ;;;AAG1B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewSurface.tsx"],"sourcesContent":["import { renderPopoverSurface_unstable } from '@fluentui/react-components';\nimport type { PreviewSurfaceState } from './PreviewSurface.types';\n\n/**\n * Render the final JSX of PreviewSurface\n */\nexport const renderPreviewSurface_unstable = (state: PreviewSurfaceState):
|
|
1
|
+
{"version":3,"sources":["renderPreviewSurface.tsx"],"sourcesContent":["import { renderPopoverSurface_unstable } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewSurfaceState } from './PreviewSurface.types';\n\n/**\n * Render the final JSX of PreviewSurface\n */\nexport const renderPreviewSurface_unstable = (state: PreviewSurfaceState): JSXElement => {\n return renderPopoverSurface_unstable(state);\n};\n"],"names":["renderPreviewSurface_unstable","state","renderPopoverSurface_unstable"],"rangeMappings":";;;;;;;;;;;;;","mappings":";;;;+BAOaA;;;eAAAA;;;iCAPiC;AAOvC,MAAMA,gCAAgC,CAACC;IAC5C,OAAOC,IAAAA,8CAAAA,EAA8BD;AACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["renderPreviewTrigger.tsx"],"sourcesContent":["import { renderPopoverTrigger_unstable } from '@fluentui/react-components';\nimport type { PreviewTriggerState } from './PreviewTrigger.types';\n\n/**\n * Render the final JSX of PreviewTrigger\n */\nexport const renderPreviewTrigger_unstable = (state: PreviewTriggerState) => {\n return renderPopoverTrigger_unstable(state);\n};\n"],"names":["renderPreviewTrigger_unstable","state","renderPopoverTrigger_unstable"],"rangeMappings":";;;;;;;;;;;;;","mappings":";;;;+
|
|
1
|
+
{"version":3,"sources":["renderPreviewTrigger.tsx"],"sourcesContent":["import { renderPopoverTrigger_unstable } from '@fluentui/react-components';\nimport type { JSXElement } from '@fluentui/react-components';\nimport type { PreviewTriggerState } from './PreviewTrigger.types';\n\n/**\n * Render the final JSX of PreviewTrigger\n */\nexport const renderPreviewTrigger_unstable = (state: PreviewTriggerState): JSXElement | null => {\n return renderPopoverTrigger_unstable(state);\n};\n"],"names":["renderPreviewTrigger_unstable","state","renderPopoverTrigger_unstable"],"rangeMappings":";;;;;;;;;;;;;","mappings":";;;;+BAOaA;;;eAAAA;;;iCAPiC;AAOvC,MAAMA,gCAAgC,CAACC;IAC5C,OAAOC,IAAAA,8CAAAA,EAA8BD;AACvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["openedByHoverPreviewManager.ts"],"sourcesContent":["type openedByHoverPreviewManager = { id: string; closeCallback: () => void }[];\n\nconst openedByHoverPreviewManager: openedByHoverPreviewManager = [];\n\nexport function addOpenedByHoverPreview(id: string, closeCallback: () => void) {\n openedByHoverPreviewManager.push({ id, closeCallback });\n}\n\nexport function removeOpenedByHoverPreview(id: string) {\n let index = openedByHoverPreviewManager.findIndex(preview => preview.id === id);\n while (index !== -1) {\n openedByHoverPreviewManager.splice(index, 1);\n index = openedByHoverPreviewManager.findIndex(preview => preview.id === id);\n }\n}\n\nexport function closeAllOpenedByHoverPreviews(id: string) {\n for (const openedPreview of openedByHoverPreviewManager) {\n if (openedPreview.id !== id) {\n openedPreview.closeCallback();\n }\n }\n\n openedByHoverPreviewManager.length = 0;\n}\n"],"names":["addOpenedByHoverPreview","closeAllOpenedByHoverPreviews","removeOpenedByHoverPreview","openedByHoverPreviewManager","id","closeCallback","push","index","findIndex","preview","splice","openedPreview","length"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAIgBA,uBAAAA;eAAAA;;IAYAC,6BAAAA;eAAAA;;IARAC,0BAAAA;eAAAA;;;AANhB,MAAMC,8BAA2D,EAAE;AAE5D,SAASH,wBAAwBI,EAAU,EAAEC,aAAyB;IAC3EF,4BAA4BG,IAAI,CAAC;QAAEF;QAAIC;IAAc;AACvD;AAEO,SAASH,2BAA2BE,EAAU;IACnD,IAAIG,QAAQJ,4BAA4BK,SAAS,CAACC,CAAAA,UAAWA,QAAQL,EAAE,KAAKA;IAC5E,MAAOG,UAAU,CAAC,EAAG;QACnBJ,4BAA4BO,MAAM,CAACH,OAAO;QAC1CA,QAAQJ,4BAA4BK,SAAS,CAACC,CAAAA,UAAWA,QAAQL,EAAE,KAAKA;IAC1E;AACF;AAEO,SAASH,8BAA8BG,EAAU;IACtD,KAAK,MAAMO,iBAAiBR,4BAA6B;QACvD,IAAIQ,cAAcP,EAAE,KAAKA,IAAI;YAC3BO,cAAcN,aAAa;QAC7B;IACF;IAEAF,4BAA4BS,MAAM,GAAG;AACvC"}
|
|
1
|
+
{"version":3,"sources":["openedByHoverPreviewManager.ts"],"sourcesContent":["type openedByHoverPreviewManager = { id: string; closeCallback: () => void }[];\n\nconst openedByHoverPreviewManager: openedByHoverPreviewManager = [];\n\nexport function addOpenedByHoverPreview(id: string, closeCallback: () => void): void {\n openedByHoverPreviewManager.push({ id, closeCallback });\n}\n\nexport function removeOpenedByHoverPreview(id: string): void {\n let index = openedByHoverPreviewManager.findIndex(preview => preview.id === id);\n while (index !== -1) {\n openedByHoverPreviewManager.splice(index, 1);\n index = openedByHoverPreviewManager.findIndex(preview => preview.id === id);\n }\n}\n\nexport function closeAllOpenedByHoverPreviews(id: string): void {\n for (const openedPreview of openedByHoverPreviewManager) {\n if (openedPreview.id !== id) {\n openedPreview.closeCallback();\n }\n }\n\n openedByHoverPreviewManager.length = 0;\n}\n"],"names":["addOpenedByHoverPreview","closeAllOpenedByHoverPreviews","removeOpenedByHoverPreview","openedByHoverPreviewManager","id","closeCallback","push","index","findIndex","preview","splice","openedPreview","length"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAIgBA,uBAAAA;eAAAA;;IAYAC,6BAAAA;eAAAA;;IARAC,0BAAAA;eAAAA;;;AANhB,MAAMC,8BAA2D,EAAE;AAE5D,SAASH,wBAAwBI,EAAU,EAAEC,aAAyB;IAC3EF,4BAA4BG,IAAI,CAAC;QAAEF;QAAIC;IAAc;AACvD;AAEO,SAASH,2BAA2BE,EAAU;IACnD,IAAIG,QAAQJ,4BAA4BK,SAAS,CAACC,CAAAA,UAAWA,QAAQL,EAAE,KAAKA;IAC5E,MAAOG,UAAU,CAAC,EAAG;QACnBJ,4BAA4BO,MAAM,CAACH,OAAO;QAC1CA,QAAQJ,4BAA4BK,SAAS,CAACC,CAAAA,UAAWA,QAAQL,EAAE,KAAKA;IAC1E;AACF;AAEO,SAASH,8BAA8BG,EAAU;IACtD,KAAK,MAAMO,iBAAiBR,4BAA6B;QACvD,IAAIQ,cAAcP,EAAE,KAAKA,IAAI;YAC3BO,cAAcN,aAAa;QAC7B;IACF;IAEAF,4BAA4BS,MAAM,GAAG;AACvC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluentui-copilot/react-preview",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.6",
|
|
4
4
|
"description": "Preview components.",
|
|
5
5
|
"main": "lib-commonjs/index.js",
|
|
6
6
|
"module": "lib/index.js",
|
|
@@ -12,20 +12,20 @@
|
|
|
12
12
|
},
|
|
13
13
|
"license": "MIT",
|
|
14
14
|
"dependencies": {
|
|
15
|
-
"@fluentui-copilot/react-provider": "^0.12.
|
|
16
|
-
"@fluentui-copilot/tokens": "^0.3.
|
|
15
|
+
"@fluentui-copilot/react-provider": "^0.12.6",
|
|
16
|
+
"@fluentui-copilot/tokens": "^0.3.15",
|
|
17
17
|
"@swc/helpers": "^0.5.1"
|
|
18
18
|
},
|
|
19
19
|
"peerDependencies": {
|
|
20
20
|
"@fluentui/keyboard-keys": ">=9.0.8 <10.0.0",
|
|
21
|
-
"@fluentui/react-components": ">=9.
|
|
22
|
-
"@fluentui/react-context-selector": ">=9.2.
|
|
23
|
-
"@fluentui/react-jsx-runtime": ">=9.
|
|
24
|
-
"@fluentui/react-utilities": ">=9.
|
|
25
|
-
"@types/react": ">=16.14.0 <
|
|
26
|
-
"@types/react-dom": ">=16.9.8 <
|
|
27
|
-
"react": ">=16.14.0 <
|
|
28
|
-
"react-dom": ">=16.14.0 <
|
|
21
|
+
"@fluentui/react-components": ">=9.70.0 <10.0.0",
|
|
22
|
+
"@fluentui/react-context-selector": ">=9.2.7 <10.0.0",
|
|
23
|
+
"@fluentui/react-jsx-runtime": ">=9.2.0 <10.0.0",
|
|
24
|
+
"@fluentui/react-utilities": ">=9.24.1 <10.0.0",
|
|
25
|
+
"@types/react": ">=16.14.0 <20.0.0",
|
|
26
|
+
"@types/react-dom": ">=16.9.8 <20.0.0",
|
|
27
|
+
"react": ">=16.14.0 <20.0.0",
|
|
28
|
+
"react-dom": ">=16.14.0 <20.0.0"
|
|
29
29
|
},
|
|
30
30
|
"beachball": {
|
|
31
31
|
"disallowedChangeTypes": [
|