@fluentui/react-tooltip 9.74.7-experimental.cli-api.20261006-ccaa611d58.0 → 9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,25 +1,50 @@
1
1
  # Change Log - @fluentui/react-tooltip
2
2
 
3
- <!-- This log was last generated on Tue, 06 Oct 2026 11:40:17 GMT and should not be manually modified. -->
3
+ <!-- This log was last generated on Thu, 08 Oct 2026 09:39:48 GMT and should not be manually modified. -->
4
4
 
5
5
  <!-- Start content -->
6
6
 
7
- ## [9.74.7-experimental.cli-api.20261006-ccaa611d58.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.74.7-experimental.cli-api.20261006-ccaa611d58.0)
7
+ ## [9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0)
8
8
 
9
- Tue, 06 Oct 2026 11:40:17 GMT
10
- [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.10.5..@fluentui/react-tooltip_v9.74.7-experimental.cli-api.20261006-ccaa611d58.0)
9
+ Thu, 08 Oct 2026 09:39:48 GMT
10
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.10.7..@fluentui/react-tooltip_v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0)
11
11
 
12
12
  ### Changes
13
13
 
14
- - Release 9.74.7-experimental.cli-api.20261006-ccaa611d58 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by 257645319+office-ogx-auth-helper[bot]@users.noreply.github.com)
15
- - Bump @fluentui/keyboard-keys to v9.74.7-experimental.cli-api.20261006-ccaa611d58.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
16
- - Bump @fluentui/react-jsx-runtime to v9.74.7-experimental.cli-api.20261006-ccaa611d58.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
17
- - Bump @fluentui/react-portal to v9.74.7-experimental.cli-api.20261006-ccaa611d58.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
18
- - Bump @fluentui/react-positioning to v9.74.7-experimental.cli-api.20261006-ccaa611d58.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
19
- - Bump @fluentui/react-shared-contexts to v9.74.7-experimental.cli-api.20261006-ccaa611d58.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
20
- - Bump @fluentui/react-tabster to v9.74.7-experimental.cli-api.20261006-ccaa611d58.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
21
- - Bump @fluentui/react-theme to v9.74.7-experimental.cli-api.20261006-ccaa611d58.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
22
- - Bump @fluentui/react-utilities to v9.74.7-experimental.cli-api.20261006-ccaa611d58.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
14
+ - Release 9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by 257645319+office-ogx-auth-helper[bot]@users.noreply.github.com)
15
+ - Bump @fluentui/keyboard-keys to v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
16
+ - Bump @fluentui/react-jsx-runtime to v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
17
+ - Bump @fluentui/react-portal to v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
18
+ - Bump @fluentui/react-positioning to v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
19
+ - Bump @fluentui/react-shared-contexts to v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
20
+ - Bump @fluentui/react-tabster to v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
21
+ - Bump @fluentui/react-theme to v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
22
+ - Bump @fluentui/react-utilities to v9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
23
+
24
+ ## [9.10.7](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.10.7)
25
+
26
+ Wed, 23 Sep 2026 09:04:33 GMT
27
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.10.6..@fluentui/react-tooltip_v9.10.7)
28
+
29
+ ### Patches
30
+
31
+ - fix: hide tooltips only when their trigger is fully clipped, not when portaled content escapes the trigger's clipping boundary ([PR #36605](https://github.com/microsoft/fluentui/pull/36605) by paulmardling@microsoft.com)
32
+ - Bump @fluentui/react-positioning to v9.23.3 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
33
+
34
+ ## [9.10.6](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.10.6)
35
+
36
+ Tue, 22 Sep 2026 11:25:39 GMT
37
+ [Compare changes](https://github.com/microsoft/fluentui/compare/@fluentui/react-tooltip_v9.10.5..@fluentui/react-tooltip_v9.10.6)
38
+
39
+ ### Patches
40
+
41
+ - fix: remove unused react-dom and @types/react-dom peer dependencies, mark @types/react as optional ([PR #36559](https://github.com/microsoft/fluentui/pull/36559) by martinhochel@microsoft.com)
42
+ - Bump @fluentui/react-jsx-runtime to v9.4.6 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
43
+ - Bump @fluentui/react-portal to v9.8.16 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
44
+ - Bump @fluentui/react-positioning to v9.23.2 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
45
+ - Bump @fluentui/react-shared-contexts to v9.26.4 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
46
+ - Bump @fluentui/react-tabster to v9.26.18 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
47
+ - Bump @fluentui/react-utilities to v9.26.7 ([commit](https://github.com/microsoft/fluentui/commit/undefined) by beachball)
23
48
 
24
49
  ## [9.10.5](https://github.com/microsoft/fluentui/tree/@fluentui/react-tooltip_v9.10.5)
25
50
 
@@ -3,7 +3,7 @@ import * as React from "react";
3
3
  import { mergeArrowOffset, resolvePositioningShorthand, usePositioning } from "@fluentui/react-positioning";
4
4
  import { useTooltipVisibility_unstable as useTooltipVisibility, useFluent_unstable as useFluent } from "@fluentui/react-shared-contexts";
5
5
  import { KEYBORG_FOCUSIN, useIsNavigatingWithKeyboard } from "@fluentui/react-tabster";
6
- import { applyTriggerPropsToChildren, useControllableState, useId, useIsomorphicLayoutEffect, useIsSSR, useMergedRefs, getTriggerChild, mergeCallbacks, useEventCallback, slot, getReactElementRef } from "@fluentui/react-utilities";
6
+ import { applyTriggerPropsToChildren, useControllableState, useId, useIsomorphicLayoutEffect, useIsSSR, useMergedRefs, getTriggerChild, mergeCallbacks, useEventCallback, slot, getReactElementRef, isHTMLElement } from "@fluentui/react-utilities";
7
7
  import { arrowHeight, tooltipBorderRadius } from "./private/constants.js";
8
8
  import { useTooltipTimeout } from "./private/useTooltipTimeout.js";
9
9
  import { Escape } from "@fluentui/keyboard-keys";
@@ -48,10 +48,12 @@ import { Escape } from "@fluentui/keyboard-keys";
48
48
  };
49
49
  state.content.id = useId('tooltip-', state.content.id);
50
50
  const resolvedPositioning = resolvePositioningShorthand(state.positioning);
51
+ const isVirtualTarget = resolvedPositioning.target !== undefined && !isHTMLElement(resolvedPositioning.target);
51
52
  const onPositioningEnd = useEventCallback((event)=>{
52
53
  var _resolvedPositioning_onPositioningEnd;
53
- const { escaped, referenceHidden } = event.detail;
54
- setHidden(escaped || referenceHidden);
54
+ // Portaled tooltips can escape the trigger's clipping ancestors while the trigger is still visible.
55
+ // Virtual targets can be reported as hidden based on synthetic geometry.
56
+ setHidden(!isVirtualTarget && event.detail.referenceHidden);
55
57
  (_resolvedPositioning_onPositioningEnd = resolvedPositioning.onPositioningEnd) === null || _resolvedPositioning_onPositioningEnd === void 0 ? void 0 : _resolvedPositioning_onPositioningEnd.call(resolvedPositioning, event);
56
58
  });
57
59
  const positioningOptions = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Tooltip/useTooltipBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { mergeArrowOffset, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport type { PositioningProps } from '@fluentui/react-positioning';\nimport {\n useTooltipVisibility_unstable as useTooltipVisibility,\n useFluent_unstable as useFluent,\n} from '@fluentui/react-shared-contexts';\nimport type { KeyborgFocusInEvent } from '@fluentui/react-tabster';\nimport { KEYBORG_FOCUSIN, useIsNavigatingWithKeyboard } from '@fluentui/react-tabster';\nimport {\n applyTriggerPropsToChildren,\n useControllableState,\n useId,\n useIsomorphicLayoutEffect,\n useIsSSR,\n useMergedRefs,\n getTriggerChild,\n mergeCallbacks,\n useEventCallback,\n slot,\n getReactElementRef,\n} from '@fluentui/react-utilities';\nimport type { TooltipBaseProps, TooltipBaseState, TooltipChildProps, OnVisibleChangeData } from './Tooltip.types';\nimport { arrowHeight, tooltipBorderRadius } from './private/constants';\nimport { useTooltipTimeout } from './private/useTooltipTimeout';\nimport { Escape } from '@fluentui/keyboard-keys';\n\ntype OnPositioningEndEvent = Parameters<Exclude<PositioningProps['onPositioningEnd'], undefined>>[0];\n\n/**\n * Create the state required to render Tooltip.\n *\n * The returned state can be modified with hooks such as useTooltipStyles_unstable,\n * before being passed to renderTooltip_unstable.\n *\n * @param props - props from this instance of Tooltip\n */\nexport const useTooltipBase_unstable = (props: TooltipBaseProps): TooltipBaseState => {\n const context = useTooltipVisibility();\n const isServerSideRender = useIsSSR();\n const { targetDocument } = useFluent();\n\n const [visible, setVisibleInternal] = useControllableState({ state: props.visible, initialState: false });\n const [hidden, setHidden] = React.useState(false);\n\n const {\n children,\n content,\n withArrow = false,\n positioning = 'above',\n onVisibleChange,\n relationship,\n showDelay = 250,\n hideDelay = 250,\n mountNode,\n } = props;\n\n const state: TooltipBaseState = {\n withArrow,\n positioning,\n showDelay,\n hideDelay,\n relationship,\n visible,\n hidden,\n shouldRenderTooltip: visible,\n mountNode,\n // Slots\n components: {\n content: 'div',\n },\n content: slot.always(content, {\n defaultProps: {\n role: 'tooltip',\n },\n elementType: 'div',\n }),\n };\n\n state.content.id = useId('tooltip-', state.content.id);\n\n const resolvedPositioning = resolvePositioningShorthand(state.positioning);\n const onPositioningEnd = useEventCallback((event: OnPositioningEndEvent) => {\n const { escaped, referenceHidden } = event.detail;\n\n setHidden(escaped || referenceHidden);\n resolvedPositioning.onPositioningEnd?.(event);\n });\n\n const positioningOptions = {\n enabled: state.visible,\n arrowPadding: 2 * tooltipBorderRadius,\n position: 'above' as const,\n align: 'center' as const,\n offset: 4,\n ...resolvedPositioning,\n onPositioningEnd,\n };\n\n if (state.withArrow) {\n positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeight);\n }\n\n const {\n targetRef,\n containerRef,\n arrowRef,\n }: {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n targetRef: React.MutableRefObject<unknown>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n containerRef: React.MutableRefObject<HTMLDivElement>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n arrowRef: React.MutableRefObject<HTMLDivElement>;\n } = usePositioning(positioningOptions);\n\n const [setDelayTimeout, clearDelayTimeout] = useTooltipTimeout(containerRef);\n\n const setVisible = React.useCallback(\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => {\n clearDelayTimeout();\n setVisibleInternal(oldVisible => {\n if (data.visible !== oldVisible) {\n onVisibleChange?.(ev, data);\n }\n return data.visible;\n });\n },\n [clearDelayTimeout, setVisibleInternal, onVisibleChange],\n );\n\n state.content.ref = useMergedRefs(state.content.ref, containerRef);\n state.arrowRef = arrowRef;\n\n // When this tooltip is visible, hide any other tooltips, and register it\n // as the visibleTooltip with the TooltipContext.\n // Also add a listener on document to hide the tooltip if Escape is pressed\n useIsomorphicLayoutEffect(() => {\n if (visible) {\n const thisTooltip = {\n hide: (ev?: KeyboardEvent) => setVisible(undefined, { visible: false, documentKeyboardEvent: ev }),\n };\n\n context.visibleTooltip?.hide();\n // eslint-disable-next-line react-hooks/immutability\n context.visibleTooltip = thisTooltip;\n\n const onDocumentKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === Escape && !ev.defaultPrevented) {\n thisTooltip.hide(ev);\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover, Menu and Tooltip\n ev.preventDefault();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, {\n // As this event is added at targeted document,\n // we need to capture the event to be sure keydown handling from tooltip happens first\n capture: true,\n });\n\n // Dismiss the tooltip when the document becomes hidden (e.g. tab backgrounded,\n // app switched on mobile). The original trigger (hover/tap/focus) is no longer\n // active in this case, so persisting the tooltip is a stale UI state.\n const onDocumentVisibilityChange = () => {\n if (targetDocument?.visibilityState === 'hidden') {\n thisTooltip.hide();\n }\n };\n\n targetDocument?.addEventListener('visibilitychange', onDocumentVisibilityChange);\n\n return () => {\n if (context.visibleTooltip === thisTooltip) {\n context.visibleTooltip = undefined;\n }\n\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n targetDocument?.removeEventListener('visibilitychange', onDocumentVisibilityChange);\n };\n }\n }, [context, targetDocument, visible, setVisible]);\n\n // Used to skip showing the tooltip in certain situations when the trigger is focused.\n // See comments where this is set for more info.\n const ignoreNextFocusEventRef = React.useRef(false);\n\n // Listener for onPointerEnter and onFocus on the trigger element\n const onEnterTrigger = React.useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n if (ev.type === 'focus' && ignoreNextFocusEventRef.current) {\n ignoreNextFocusEventRef.current = false;\n return;\n }\n\n // Show immediately if another tooltip is already visible\n const delay = context.visibleTooltip ? 0 : state.showDelay;\n\n setDelayTimeout(() => {\n setVisible(ev, { visible: true });\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.showDelay, context],\n );\n\n const isNavigatingWithKeyboard = useIsNavigatingWithKeyboard();\n\n // Callback ref that attaches a keyborg:focusin event listener.\n const [keyborgListenerCallbackRef] = React.useState(() => {\n const onKeyborgFocusIn = ((ev: KeyborgFocusInEvent) => {\n // Skip showing the tooltip if focus moved programmatically.\n // For example, we don't want to show the tooltip when a dialog is closed\n // and Tabster programmatically restores focus to the trigger button.\n // See https://github.com/microsoft/fluentui/issues/27576\n if (ev.detail?.isFocusedProgrammatically && !isNavigatingWithKeyboard()) {\n ignoreNextFocusEventRef.current = true;\n }\n }) as EventListener;\n\n // Save the current element to remove the listener when the ref changes\n let current: Element | null = null;\n\n // Callback ref that attaches the listener to the element\n return (element: Element | null) => {\n current?.removeEventListener(KEYBORG_FOCUSIN, onKeyborgFocusIn);\n element?.addEventListener(KEYBORG_FOCUSIN, onKeyborgFocusIn);\n current = element;\n };\n });\n\n // Listener for onPointerLeave and onBlur on the trigger element\n const onLeaveTrigger = React.useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n let delay = state.hideDelay;\n\n if (ev.type === 'blur') {\n // Hide immediately when losing focus\n delay = 0;\n\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement.\n // See https://github.com/microsoft/fluentui/issues/13541\n ignoreNextFocusEventRef.current = targetDocument?.activeElement === ev.target;\n }\n\n setDelayTimeout(() => {\n setVisible(ev, { visible: false });\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.hideDelay, targetDocument],\n );\n\n // Cancel the hide timer when the mouse or focus enters the tooltip, and restart it when the mouse or focus leaves.\n // This keeps the tooltip visible when the mouse is moved over it, or it has focus within.\n // eslint-disable-next-line react-hooks/immutability\n state.content.onPointerEnter = mergeCallbacks(state.content.onPointerEnter, clearDelayTimeout);\n // eslint-disable-next-line react-hooks/immutability, react-hooks/refs\n state.content.onPointerLeave = mergeCallbacks(state.content.onPointerLeave, onLeaveTrigger);\n // eslint-disable-next-line react-hooks/immutability\n state.content.onFocus = mergeCallbacks(state.content.onFocus, clearDelayTimeout);\n // eslint-disable-next-line react-hooks/immutability, react-hooks/refs\n state.content.onBlur = mergeCallbacks(state.content.onBlur, onLeaveTrigger);\n\n const child = getTriggerChild(children);\n\n const triggerAriaProps: Pick<TooltipChildProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby'> = {};\n const isPopupExpanded =\n child?.props?.['aria-haspopup'] &&\n (child?.props?.['aria-expanded'] === true || child?.props?.['aria-expanded'] === 'true');\n\n if (relationship === 'label') {\n // aria-label only works if the content is a string. Otherwise, need to use aria-labelledby.\n if (typeof state.content.children === 'string') {\n triggerAriaProps['aria-label'] = state.content.children;\n } else {\n triggerAriaProps['aria-labelledby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-labelledby refers to a valid element\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = true;\n }\n } else if (relationship === 'description') {\n triggerAriaProps['aria-describedby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-describedby refers to a valid element\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = true;\n }\n\n // Case 1: Don't render the Tooltip in SSR to avoid hydration errors\n // Case 2: Don't render the Tooltip, if it triggers Menu or another popup and it's already opened\n if (isServerSideRender || isPopupExpanded) {\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = false;\n }\n\n // Apply the trigger props to the child, either by calling the render function, or cloning with the new props\n // eslint-disable-next-line react-hooks/immutability\n state.children = applyTriggerPropsToChildren(children, {\n ...triggerAriaProps,\n ...child?.props,\n ref: useMergedRefs(\n getReactElementRef<HTMLButtonElement>(child),\n keyborgListenerCallbackRef,\n // If the target prop is not provided, attach targetRef to the trigger element's ref prop\n positioningOptions.target === undefined ? targetRef : undefined,\n ),\n // eslint-disable-next-line react-hooks/refs\n onPointerEnter: useEventCallback(mergeCallbacks(child?.props?.onPointerEnter, onEnterTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onPointerLeave: useEventCallback(mergeCallbacks(child?.props?.onPointerLeave, onLeaveTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onFocus: useEventCallback(mergeCallbacks(child?.props?.onFocus, onEnterTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onBlur: useEventCallback(mergeCallbacks(child?.props?.onBlur, onLeaveTrigger)),\n });\n\n return state;\n};\n"],"names":["React","mergeArrowOffset","resolvePositioningShorthand","usePositioning","useTooltipVisibility_unstable","useTooltipVisibility","useFluent_unstable","useFluent","KEYBORG_FOCUSIN","useIsNavigatingWithKeyboard","applyTriggerPropsToChildren","useControllableState","useId","useIsomorphicLayoutEffect","useIsSSR","useMergedRefs","getTriggerChild","mergeCallbacks","useEventCallback","slot","getReactElementRef","arrowHeight","tooltipBorderRadius","useTooltipTimeout","Escape","useTooltipBase_unstable","props","child","context","isServerSideRender","targetDocument","visible","setVisibleInternal","state","initialState","hidden","setHidden","useState","children","content","withArrow","positioning","onVisibleChange","relationship","showDelay","hideDelay","mountNode","shouldRenderTooltip","components","always","defaultProps","role","elementType","id","resolvedPositioning","onPositioningEnd","event","escaped","referenceHidden","detail","positioningOptions","enabled","arrowPadding","position","align","offset","targetRef","containerRef","arrowRef","setDelayTimeout","clearDelayTimeout","setVisible","useCallback","ev","data","oldVisible","ref","thisTooltip","hide","undefined","documentKeyboardEvent","visibleTooltip","onDocumentKeyDown","key","defaultPrevented","preventDefault","addEventListener","capture","onDocumentVisibilityChange","visibilityState","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","isNavigatingWithKeyboard","keyborgListenerCallbackRef","onKeyborgFocusIn","isFocusedProgrammatically","element","onLeaveTrigger","activeElement","target","onPointerEnter","onPointerLeave","onFocus","onBlur","triggerAriaProps","isPopupExpanded"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/Tooltip/useTooltipBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { mergeArrowOffset, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport type { PositioningProps } from '@fluentui/react-positioning';\nimport {\n useTooltipVisibility_unstable as useTooltipVisibility,\n useFluent_unstable as useFluent,\n} from '@fluentui/react-shared-contexts';\nimport type { KeyborgFocusInEvent } from '@fluentui/react-tabster';\nimport { KEYBORG_FOCUSIN, useIsNavigatingWithKeyboard } from '@fluentui/react-tabster';\nimport {\n applyTriggerPropsToChildren,\n useControllableState,\n useId,\n useIsomorphicLayoutEffect,\n useIsSSR,\n useMergedRefs,\n getTriggerChild,\n mergeCallbacks,\n useEventCallback,\n slot,\n getReactElementRef,\n isHTMLElement,\n} from '@fluentui/react-utilities';\nimport type { TooltipBaseProps, TooltipBaseState, TooltipChildProps, OnVisibleChangeData } from './Tooltip.types';\nimport { arrowHeight, tooltipBorderRadius } from './private/constants';\nimport { useTooltipTimeout } from './private/useTooltipTimeout';\nimport { Escape } from '@fluentui/keyboard-keys';\n\ntype OnPositioningEndEvent = Parameters<Exclude<PositioningProps['onPositioningEnd'], undefined>>[0];\n\n/**\n * Create the state required to render Tooltip.\n *\n * The returned state can be modified with hooks such as useTooltipStyles_unstable,\n * before being passed to renderTooltip_unstable.\n *\n * @param props - props from this instance of Tooltip\n */\nexport const useTooltipBase_unstable = (props: TooltipBaseProps): TooltipBaseState => {\n const context = useTooltipVisibility();\n const isServerSideRender = useIsSSR();\n const { targetDocument } = useFluent();\n\n const [visible, setVisibleInternal] = useControllableState({ state: props.visible, initialState: false });\n const [hidden, setHidden] = React.useState(false);\n\n const {\n children,\n content,\n withArrow = false,\n positioning = 'above',\n onVisibleChange,\n relationship,\n showDelay = 250,\n hideDelay = 250,\n mountNode,\n } = props;\n\n const state: TooltipBaseState = {\n withArrow,\n positioning,\n showDelay,\n hideDelay,\n relationship,\n visible,\n hidden,\n shouldRenderTooltip: visible,\n mountNode,\n // Slots\n components: {\n content: 'div',\n },\n content: slot.always(content, {\n defaultProps: {\n role: 'tooltip',\n },\n elementType: 'div',\n }),\n };\n\n state.content.id = useId('tooltip-', state.content.id);\n\n const resolvedPositioning = resolvePositioningShorthand(state.positioning);\n const isVirtualTarget = resolvedPositioning.target !== undefined && !isHTMLElement(resolvedPositioning.target);\n const onPositioningEnd = useEventCallback((event: OnPositioningEndEvent) => {\n // Portaled tooltips can escape the trigger's clipping ancestors while the trigger is still visible.\n // Virtual targets can be reported as hidden based on synthetic geometry.\n setHidden(!isVirtualTarget && event.detail.referenceHidden);\n resolvedPositioning.onPositioningEnd?.(event);\n });\n\n const positioningOptions = {\n enabled: state.visible,\n arrowPadding: 2 * tooltipBorderRadius,\n position: 'above' as const,\n align: 'center' as const,\n offset: 4,\n ...resolvedPositioning,\n onPositioningEnd,\n };\n\n if (state.withArrow) {\n positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeight);\n }\n\n const {\n targetRef,\n containerRef,\n arrowRef,\n }: {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n targetRef: React.MutableRefObject<unknown>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n containerRef: React.MutableRefObject<HTMLDivElement>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n arrowRef: React.MutableRefObject<HTMLDivElement>;\n } = usePositioning(positioningOptions);\n\n const [setDelayTimeout, clearDelayTimeout] = useTooltipTimeout(containerRef);\n\n const setVisible = React.useCallback(\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => {\n clearDelayTimeout();\n setVisibleInternal(oldVisible => {\n if (data.visible !== oldVisible) {\n onVisibleChange?.(ev, data);\n }\n return data.visible;\n });\n },\n [clearDelayTimeout, setVisibleInternal, onVisibleChange],\n );\n\n state.content.ref = useMergedRefs(state.content.ref, containerRef);\n state.arrowRef = arrowRef;\n\n // When this tooltip is visible, hide any other tooltips, and register it\n // as the visibleTooltip with the TooltipContext.\n // Also add a listener on document to hide the tooltip if Escape is pressed\n useIsomorphicLayoutEffect(() => {\n if (visible) {\n const thisTooltip = {\n hide: (ev?: KeyboardEvent) => setVisible(undefined, { visible: false, documentKeyboardEvent: ev }),\n };\n\n context.visibleTooltip?.hide();\n // eslint-disable-next-line react-hooks/immutability\n context.visibleTooltip = thisTooltip;\n\n const onDocumentKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === Escape && !ev.defaultPrevented) {\n thisTooltip.hide(ev);\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover, Menu and Tooltip\n ev.preventDefault();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, {\n // As this event is added at targeted document,\n // we need to capture the event to be sure keydown handling from tooltip happens first\n capture: true,\n });\n\n // Dismiss the tooltip when the document becomes hidden (e.g. tab backgrounded,\n // app switched on mobile). The original trigger (hover/tap/focus) is no longer\n // active in this case, so persisting the tooltip is a stale UI state.\n const onDocumentVisibilityChange = () => {\n if (targetDocument?.visibilityState === 'hidden') {\n thisTooltip.hide();\n }\n };\n\n targetDocument?.addEventListener('visibilitychange', onDocumentVisibilityChange);\n\n return () => {\n if (context.visibleTooltip === thisTooltip) {\n context.visibleTooltip = undefined;\n }\n\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n targetDocument?.removeEventListener('visibilitychange', onDocumentVisibilityChange);\n };\n }\n }, [context, targetDocument, visible, setVisible]);\n\n // Used to skip showing the tooltip in certain situations when the trigger is focused.\n // See comments where this is set for more info.\n const ignoreNextFocusEventRef = React.useRef(false);\n\n // Listener for onPointerEnter and onFocus on the trigger element\n const onEnterTrigger = React.useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n if (ev.type === 'focus' && ignoreNextFocusEventRef.current) {\n ignoreNextFocusEventRef.current = false;\n return;\n }\n\n // Show immediately if another tooltip is already visible\n const delay = context.visibleTooltip ? 0 : state.showDelay;\n\n setDelayTimeout(() => {\n setVisible(ev, { visible: true });\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.showDelay, context],\n );\n\n const isNavigatingWithKeyboard = useIsNavigatingWithKeyboard();\n\n // Callback ref that attaches a keyborg:focusin event listener.\n const [keyborgListenerCallbackRef] = React.useState(() => {\n const onKeyborgFocusIn = ((ev: KeyborgFocusInEvent) => {\n // Skip showing the tooltip if focus moved programmatically.\n // For example, we don't want to show the tooltip when a dialog is closed\n // and Tabster programmatically restores focus to the trigger button.\n // See https://github.com/microsoft/fluentui/issues/27576\n if (ev.detail?.isFocusedProgrammatically && !isNavigatingWithKeyboard()) {\n ignoreNextFocusEventRef.current = true;\n }\n }) as EventListener;\n\n // Save the current element to remove the listener when the ref changes\n let current: Element | null = null;\n\n // Callback ref that attaches the listener to the element\n return (element: Element | null) => {\n current?.removeEventListener(KEYBORG_FOCUSIN, onKeyborgFocusIn);\n element?.addEventListener(KEYBORG_FOCUSIN, onKeyborgFocusIn);\n current = element;\n };\n });\n\n // Listener for onPointerLeave and onBlur on the trigger element\n const onLeaveTrigger = React.useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n let delay = state.hideDelay;\n\n if (ev.type === 'blur') {\n // Hide immediately when losing focus\n delay = 0;\n\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement.\n // See https://github.com/microsoft/fluentui/issues/13541\n ignoreNextFocusEventRef.current = targetDocument?.activeElement === ev.target;\n }\n\n setDelayTimeout(() => {\n setVisible(ev, { visible: false });\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.hideDelay, targetDocument],\n );\n\n // Cancel the hide timer when the mouse or focus enters the tooltip, and restart it when the mouse or focus leaves.\n // This keeps the tooltip visible when the mouse is moved over it, or it has focus within.\n // eslint-disable-next-line react-hooks/immutability\n state.content.onPointerEnter = mergeCallbacks(state.content.onPointerEnter, clearDelayTimeout);\n // eslint-disable-next-line react-hooks/immutability, react-hooks/refs\n state.content.onPointerLeave = mergeCallbacks(state.content.onPointerLeave, onLeaveTrigger);\n // eslint-disable-next-line react-hooks/immutability\n state.content.onFocus = mergeCallbacks(state.content.onFocus, clearDelayTimeout);\n // eslint-disable-next-line react-hooks/immutability, react-hooks/refs\n state.content.onBlur = mergeCallbacks(state.content.onBlur, onLeaveTrigger);\n\n const child = getTriggerChild(children);\n\n const triggerAriaProps: Pick<TooltipChildProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby'> = {};\n const isPopupExpanded =\n child?.props?.['aria-haspopup'] &&\n (child?.props?.['aria-expanded'] === true || child?.props?.['aria-expanded'] === 'true');\n\n if (relationship === 'label') {\n // aria-label only works if the content is a string. Otherwise, need to use aria-labelledby.\n if (typeof state.content.children === 'string') {\n triggerAriaProps['aria-label'] = state.content.children;\n } else {\n triggerAriaProps['aria-labelledby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-labelledby refers to a valid element\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = true;\n }\n } else if (relationship === 'description') {\n triggerAriaProps['aria-describedby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-describedby refers to a valid element\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = true;\n }\n\n // Case 1: Don't render the Tooltip in SSR to avoid hydration errors\n // Case 2: Don't render the Tooltip, if it triggers Menu or another popup and it's already opened\n if (isServerSideRender || isPopupExpanded) {\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = false;\n }\n\n // Apply the trigger props to the child, either by calling the render function, or cloning with the new props\n // eslint-disable-next-line react-hooks/immutability\n state.children = applyTriggerPropsToChildren(children, {\n ...triggerAriaProps,\n ...child?.props,\n ref: useMergedRefs(\n getReactElementRef<HTMLButtonElement>(child),\n keyborgListenerCallbackRef,\n // If the target prop is not provided, attach targetRef to the trigger element's ref prop\n positioningOptions.target === undefined ? targetRef : undefined,\n ),\n // eslint-disable-next-line react-hooks/refs\n onPointerEnter: useEventCallback(mergeCallbacks(child?.props?.onPointerEnter, onEnterTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onPointerLeave: useEventCallback(mergeCallbacks(child?.props?.onPointerLeave, onLeaveTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onFocus: useEventCallback(mergeCallbacks(child?.props?.onFocus, onEnterTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onBlur: useEventCallback(mergeCallbacks(child?.props?.onBlur, onLeaveTrigger)),\n });\n\n return state;\n};\n"],"names":["React","mergeArrowOffset","resolvePositioningShorthand","usePositioning","useTooltipVisibility_unstable","useTooltipVisibility","useFluent_unstable","useFluent","KEYBORG_FOCUSIN","useIsNavigatingWithKeyboard","applyTriggerPropsToChildren","useControllableState","useId","useIsomorphicLayoutEffect","useIsSSR","useMergedRefs","getTriggerChild","mergeCallbacks","useEventCallback","slot","getReactElementRef","isHTMLElement","arrowHeight","tooltipBorderRadius","useTooltipTimeout","Escape","useTooltipBase_unstable","props","child","context","isServerSideRender","targetDocument","visible","setVisibleInternal","state","initialState","hidden","setHidden","useState","children","content","withArrow","positioning","onVisibleChange","relationship","showDelay","hideDelay","mountNode","shouldRenderTooltip","components","always","defaultProps","role","elementType","id","resolvedPositioning","isVirtualTarget","target","undefined","onPositioningEnd","event","detail","referenceHidden","positioningOptions","enabled","arrowPadding","position","align","offset","targetRef","containerRef","arrowRef","setDelayTimeout","clearDelayTimeout","setVisible","useCallback","ev","data","oldVisible","ref","thisTooltip","hide","documentKeyboardEvent","visibleTooltip","onDocumentKeyDown","key","defaultPrevented","preventDefault","addEventListener","capture","onDocumentVisibilityChange","visibilityState","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","isNavigatingWithKeyboard","keyborgListenerCallbackRef","onKeyborgFocusIn","isFocusedProgrammatically","element","onLeaveTrigger","activeElement","onPointerEnter","onPointerLeave","onFocus","onBlur","triggerAriaProps","isPopupExpanded"],"mappings":"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"}
@@ -119,11 +119,11 @@ const useStyles = /*#__PURE__*/__styles({
119
119
  p: -2
120
120
  }], [".f1bzqsji{padding:4px 11px 6px 11px;}", {
121
121
  p: -1
122
- }], ".fxugw4r{background-color:var(--colorNeutralBackground1);}", ".f19n0e5{color:var(--colorNeutralForeground1);}", ".fxeb0a7{filter:drop-shadow(0 0 2px var(--colorNeutralShadowAmbient)) drop-shadow(0 4px 8px var(--colorNeutralShadowKey));}", ".ftgm304{display:block;}", ".fd7fpy0{visibility:hidden;}", ".f1aehjj5{pointer-events:none;}", ".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}", ".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}", ".f1euv43f{position:absolute;}", ".f1bsuimh{z-index:-1;}", ".f1s3jn22{--fui-positioning-arrow-height:8.484px;}", ".fv40uqz{--fui-positioning-arrow-offset:-4.242px;}", ".f1u2r49w{background-color:inherit;}", ".fqhgnl{background-clip:content-box;}", ".f17bz04i{border-bottom-left-radius:var(--borderRadiusSmall);}", ".f36o3x3{transform:rotate(var(--fui-positioning-arrow-angle));}", ".fzofk8q{height:var(--fui-positioning-arrow-height);}", ".f1wbx1ie{width:var(--fui-positioning-arrow-height);}", ".f1wl9k8s::before{content:\"\";}", ".f1aocrix::before{display:block;}", ".f1ljr5q2::before{background-color:inherit;}", [".f155f1qt::before{margin:-1px;}", {
122
+ }], ".fxugw4r{background-color:var(--colorNeutralBackground1);}", ".f19n0e5{color:var(--colorNeutralForeground1);}", ".fxeb0a7{filter:drop-shadow(0 0 2px var(--colorNeutralShadowAmbient)) drop-shadow(0 4px 8px var(--colorNeutralShadowKey));}", ".ftgm304{display:block;}", ".fd7fpy0{visibility:hidden;}", ".f1aehjj5{pointer-events:none;}", ".fg3r6xk{background-color:var(--colorNeutralBackgroundStatic);}", ".fonrgv7{color:var(--colorNeutralForegroundStaticInverted);}", ".f1euv43f{position:absolute;}", ".f1bsuimh{z-index:-1;}", ".f1s3jn22{--fui-positioning-arrow-height:8.484px;}", ".fv40uqz{--fui-positioning-arrow-offset:-4.242px;}", ".f1u2r49w{background-color:inherit;}", ".fqhgnl{background-clip:content-box;}", ".f17bz04i{border-bottom-left-radius:var(--borderRadiusSmall) ;}", ".f36o3x3{transform:rotate(var(--fui-positioning-arrow-angle)) ;}", ".fzofk8q{height:var(--fui-positioning-arrow-height);}", ".f1wbx1ie{width:var(--fui-positioning-arrow-height);}", ".f1wl9k8s::before{content:\"\";}", ".f1aocrix::before{display:block;}", ".f1ljr5q2::before{background-color:inherit;}", [".f155f1qt::before{margin:-1px;}", {
123
123
  p: -1
124
124
  }], ".f9mhzq7::before{width:100%;}", ".fr6rhvx::before{height:100%;}", [".f1kc0wz4::before{border:1px solid var(--colorTransparentStroke);}", {
125
125
  p: -2
126
- }], ".fgq90dz::before{border-bottom-left-radius:var(--borderRadiusSmall);}", ".fq0y47f::before{clip-path:polygon(0% 0%, 100% 100%, 0% 100%);}", "[data-popper-placement^=\"top\"] .f1pwrbz6{bottom:var(--fui-positioning-arrow-offset);}", "[data-popper-placement^=\"top\"] .f1hxxcvm{--fui-positioning-arrow-angle:-45deg;}", "[data-popper-placement^=\"right\"] .fw8rgyo{left:var(--fui-positioning-arrow-offset);}", "[data-popper-placement^=\"right\"] .f1wnzycx{--fui-positioning-arrow-angle:45deg;}", "[data-popper-placement^=\"bottom\"] .f1730wal{top:var(--fui-positioning-arrow-offset);}", "[data-popper-placement^=\"bottom\"] .f1fy4ixr{--fui-positioning-arrow-angle:135deg;}", "[data-popper-placement^=\"left\"] .fobkauc{right:var(--fui-positioning-arrow-offset);}", "[data-popper-placement^=\"left\"] .f16bqv1l{--fui-positioning-arrow-angle:225deg;}"]
126
+ }], ".fgq90dz::before{border-bottom-left-radius:var(--borderRadiusSmall) ;}", ".fq0y47f::before{clip-path:polygon(0% 0%, 100% 100%, 0% 100%);}", "[data-popper-placement^=\"top\"] .f1pwrbz6{bottom:var(--fui-positioning-arrow-offset);}", "[data-popper-placement^=\"top\"] .f1hxxcvm{--fui-positioning-arrow-angle:-45deg;}", "[data-popper-placement^=\"right\"] .fw8rgyo{left:var(--fui-positioning-arrow-offset) ;}", "[data-popper-placement^=\"right\"] .f1wnzycx{--fui-positioning-arrow-angle:45deg;}", "[data-popper-placement^=\"bottom\"] .f1730wal{top:var(--fui-positioning-arrow-offset);}", "[data-popper-placement^=\"bottom\"] .f1fy4ixr{--fui-positioning-arrow-angle:135deg;}", "[data-popper-placement^=\"left\"] .fobkauc{right:var(--fui-positioning-arrow-offset) ;}", "[data-popper-placement^=\"left\"] .f16bqv1l{--fui-positioning-arrow-angle:225deg;}"]
127
127
  });
128
128
  /**
129
129
  * Apply styling to the Tooltip slots based on the state
@@ -52,10 +52,12 @@ const useTooltipBase_unstable = (props)=>{
52
52
  };
53
53
  state.content.id = (0, _reactutilities.useId)('tooltip-', state.content.id);
54
54
  const resolvedPositioning = (0, _reactpositioning.resolvePositioningShorthand)(state.positioning);
55
+ const isVirtualTarget = resolvedPositioning.target !== undefined && !(0, _reactutilities.isHTMLElement)(resolvedPositioning.target);
55
56
  const onPositioningEnd = (0, _reactutilities.useEventCallback)((event)=>{
56
57
  var _resolvedPositioning_onPositioningEnd;
57
- const { escaped, referenceHidden } = event.detail;
58
- setHidden(escaped || referenceHidden);
58
+ // Portaled tooltips can escape the trigger's clipping ancestors while the trigger is still visible.
59
+ // Virtual targets can be reported as hidden based on synthetic geometry.
60
+ setHidden(!isVirtualTarget && event.detail.referenceHidden);
59
61
  (_resolvedPositioning_onPositioningEnd = resolvedPositioning.onPositioningEnd) === null || _resolvedPositioning_onPositioningEnd === void 0 ? void 0 : _resolvedPositioning_onPositioningEnd.call(resolvedPositioning, event);
60
62
  });
61
63
  const positioningOptions = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Tooltip/useTooltipBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { mergeArrowOffset, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport type { PositioningProps } from '@fluentui/react-positioning';\nimport {\n useTooltipVisibility_unstable as useTooltipVisibility,\n useFluent_unstable as useFluent,\n} from '@fluentui/react-shared-contexts';\nimport type { KeyborgFocusInEvent } from '@fluentui/react-tabster';\nimport { KEYBORG_FOCUSIN, useIsNavigatingWithKeyboard } from '@fluentui/react-tabster';\nimport {\n applyTriggerPropsToChildren,\n useControllableState,\n useId,\n useIsomorphicLayoutEffect,\n useIsSSR,\n useMergedRefs,\n getTriggerChild,\n mergeCallbacks,\n useEventCallback,\n slot,\n getReactElementRef,\n} from '@fluentui/react-utilities';\nimport type { TooltipBaseProps, TooltipBaseState, TooltipChildProps, OnVisibleChangeData } from './Tooltip.types';\nimport { arrowHeight, tooltipBorderRadius } from './private/constants';\nimport { useTooltipTimeout } from './private/useTooltipTimeout';\nimport { Escape } from '@fluentui/keyboard-keys';\n\ntype OnPositioningEndEvent = Parameters<Exclude<PositioningProps['onPositioningEnd'], undefined>>[0];\n\n/**\n * Create the state required to render Tooltip.\n *\n * The returned state can be modified with hooks such as useTooltipStyles_unstable,\n * before being passed to renderTooltip_unstable.\n *\n * @param props - props from this instance of Tooltip\n */\nexport const useTooltipBase_unstable = (props: TooltipBaseProps): TooltipBaseState => {\n const context = useTooltipVisibility();\n const isServerSideRender = useIsSSR();\n const { targetDocument } = useFluent();\n\n const [visible, setVisibleInternal] = useControllableState({ state: props.visible, initialState: false });\n const [hidden, setHidden] = React.useState(false);\n\n const {\n children,\n content,\n withArrow = false,\n positioning = 'above',\n onVisibleChange,\n relationship,\n showDelay = 250,\n hideDelay = 250,\n mountNode,\n } = props;\n\n const state: TooltipBaseState = {\n withArrow,\n positioning,\n showDelay,\n hideDelay,\n relationship,\n visible,\n hidden,\n shouldRenderTooltip: visible,\n mountNode,\n // Slots\n components: {\n content: 'div',\n },\n content: slot.always(content, {\n defaultProps: {\n role: 'tooltip',\n },\n elementType: 'div',\n }),\n };\n\n state.content.id = useId('tooltip-', state.content.id);\n\n const resolvedPositioning = resolvePositioningShorthand(state.positioning);\n const onPositioningEnd = useEventCallback((event: OnPositioningEndEvent) => {\n const { escaped, referenceHidden } = event.detail;\n\n setHidden(escaped || referenceHidden);\n resolvedPositioning.onPositioningEnd?.(event);\n });\n\n const positioningOptions = {\n enabled: state.visible,\n arrowPadding: 2 * tooltipBorderRadius,\n position: 'above' as const,\n align: 'center' as const,\n offset: 4,\n ...resolvedPositioning,\n onPositioningEnd,\n };\n\n if (state.withArrow) {\n positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeight);\n }\n\n const {\n targetRef,\n containerRef,\n arrowRef,\n }: {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n targetRef: React.MutableRefObject<unknown>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n containerRef: React.MutableRefObject<HTMLDivElement>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n arrowRef: React.MutableRefObject<HTMLDivElement>;\n } = usePositioning(positioningOptions);\n\n const [setDelayTimeout, clearDelayTimeout] = useTooltipTimeout(containerRef);\n\n const setVisible = React.useCallback(\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => {\n clearDelayTimeout();\n setVisibleInternal(oldVisible => {\n if (data.visible !== oldVisible) {\n onVisibleChange?.(ev, data);\n }\n return data.visible;\n });\n },\n [clearDelayTimeout, setVisibleInternal, onVisibleChange],\n );\n\n state.content.ref = useMergedRefs(state.content.ref, containerRef);\n state.arrowRef = arrowRef;\n\n // When this tooltip is visible, hide any other tooltips, and register it\n // as the visibleTooltip with the TooltipContext.\n // Also add a listener on document to hide the tooltip if Escape is pressed\n useIsomorphicLayoutEffect(() => {\n if (visible) {\n const thisTooltip = {\n hide: (ev?: KeyboardEvent) => setVisible(undefined, { visible: false, documentKeyboardEvent: ev }),\n };\n\n context.visibleTooltip?.hide();\n // eslint-disable-next-line react-hooks/immutability\n context.visibleTooltip = thisTooltip;\n\n const onDocumentKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === Escape && !ev.defaultPrevented) {\n thisTooltip.hide(ev);\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover, Menu and Tooltip\n ev.preventDefault();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, {\n // As this event is added at targeted document,\n // we need to capture the event to be sure keydown handling from tooltip happens first\n capture: true,\n });\n\n // Dismiss the tooltip when the document becomes hidden (e.g. tab backgrounded,\n // app switched on mobile). The original trigger (hover/tap/focus) is no longer\n // active in this case, so persisting the tooltip is a stale UI state.\n const onDocumentVisibilityChange = () => {\n if (targetDocument?.visibilityState === 'hidden') {\n thisTooltip.hide();\n }\n };\n\n targetDocument?.addEventListener('visibilitychange', onDocumentVisibilityChange);\n\n return () => {\n if (context.visibleTooltip === thisTooltip) {\n context.visibleTooltip = undefined;\n }\n\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n targetDocument?.removeEventListener('visibilitychange', onDocumentVisibilityChange);\n };\n }\n }, [context, targetDocument, visible, setVisible]);\n\n // Used to skip showing the tooltip in certain situations when the trigger is focused.\n // See comments where this is set for more info.\n const ignoreNextFocusEventRef = React.useRef(false);\n\n // Listener for onPointerEnter and onFocus on the trigger element\n const onEnterTrigger = React.useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n if (ev.type === 'focus' && ignoreNextFocusEventRef.current) {\n ignoreNextFocusEventRef.current = false;\n return;\n }\n\n // Show immediately if another tooltip is already visible\n const delay = context.visibleTooltip ? 0 : state.showDelay;\n\n setDelayTimeout(() => {\n setVisible(ev, { visible: true });\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.showDelay, context],\n );\n\n const isNavigatingWithKeyboard = useIsNavigatingWithKeyboard();\n\n // Callback ref that attaches a keyborg:focusin event listener.\n const [keyborgListenerCallbackRef] = React.useState(() => {\n const onKeyborgFocusIn = ((ev: KeyborgFocusInEvent) => {\n // Skip showing the tooltip if focus moved programmatically.\n // For example, we don't want to show the tooltip when a dialog is closed\n // and Tabster programmatically restores focus to the trigger button.\n // See https://github.com/microsoft/fluentui/issues/27576\n if (ev.detail?.isFocusedProgrammatically && !isNavigatingWithKeyboard()) {\n ignoreNextFocusEventRef.current = true;\n }\n }) as EventListener;\n\n // Save the current element to remove the listener when the ref changes\n let current: Element | null = null;\n\n // Callback ref that attaches the listener to the element\n return (element: Element | null) => {\n current?.removeEventListener(KEYBORG_FOCUSIN, onKeyborgFocusIn);\n element?.addEventListener(KEYBORG_FOCUSIN, onKeyborgFocusIn);\n current = element;\n };\n });\n\n // Listener for onPointerLeave and onBlur on the trigger element\n const onLeaveTrigger = React.useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n let delay = state.hideDelay;\n\n if (ev.type === 'blur') {\n // Hide immediately when losing focus\n delay = 0;\n\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement.\n // See https://github.com/microsoft/fluentui/issues/13541\n ignoreNextFocusEventRef.current = targetDocument?.activeElement === ev.target;\n }\n\n setDelayTimeout(() => {\n setVisible(ev, { visible: false });\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.hideDelay, targetDocument],\n );\n\n // Cancel the hide timer when the mouse or focus enters the tooltip, and restart it when the mouse or focus leaves.\n // This keeps the tooltip visible when the mouse is moved over it, or it has focus within.\n // eslint-disable-next-line react-hooks/immutability\n state.content.onPointerEnter = mergeCallbacks(state.content.onPointerEnter, clearDelayTimeout);\n // eslint-disable-next-line react-hooks/immutability, react-hooks/refs\n state.content.onPointerLeave = mergeCallbacks(state.content.onPointerLeave, onLeaveTrigger);\n // eslint-disable-next-line react-hooks/immutability\n state.content.onFocus = mergeCallbacks(state.content.onFocus, clearDelayTimeout);\n // eslint-disable-next-line react-hooks/immutability, react-hooks/refs\n state.content.onBlur = mergeCallbacks(state.content.onBlur, onLeaveTrigger);\n\n const child = getTriggerChild(children);\n\n const triggerAriaProps: Pick<TooltipChildProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby'> = {};\n const isPopupExpanded =\n child?.props?.['aria-haspopup'] &&\n (child?.props?.['aria-expanded'] === true || child?.props?.['aria-expanded'] === 'true');\n\n if (relationship === 'label') {\n // aria-label only works if the content is a string. Otherwise, need to use aria-labelledby.\n if (typeof state.content.children === 'string') {\n triggerAriaProps['aria-label'] = state.content.children;\n } else {\n triggerAriaProps['aria-labelledby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-labelledby refers to a valid element\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = true;\n }\n } else if (relationship === 'description') {\n triggerAriaProps['aria-describedby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-describedby refers to a valid element\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = true;\n }\n\n // Case 1: Don't render the Tooltip in SSR to avoid hydration errors\n // Case 2: Don't render the Tooltip, if it triggers Menu or another popup and it's already opened\n if (isServerSideRender || isPopupExpanded) {\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = false;\n }\n\n // Apply the trigger props to the child, either by calling the render function, or cloning with the new props\n // eslint-disable-next-line react-hooks/immutability\n state.children = applyTriggerPropsToChildren(children, {\n ...triggerAriaProps,\n ...child?.props,\n ref: useMergedRefs(\n getReactElementRef<HTMLButtonElement>(child),\n keyborgListenerCallbackRef,\n // If the target prop is not provided, attach targetRef to the trigger element's ref prop\n positioningOptions.target === undefined ? targetRef : undefined,\n ),\n // eslint-disable-next-line react-hooks/refs\n onPointerEnter: useEventCallback(mergeCallbacks(child?.props?.onPointerEnter, onEnterTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onPointerLeave: useEventCallback(mergeCallbacks(child?.props?.onPointerLeave, onLeaveTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onFocus: useEventCallback(mergeCallbacks(child?.props?.onFocus, onEnterTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onBlur: useEventCallback(mergeCallbacks(child?.props?.onBlur, onLeaveTrigger)),\n });\n\n return state;\n};\n"],"names":["React","mergeArrowOffset","resolvePositioningShorthand","usePositioning","useTooltipVisibility_unstable","useTooltipVisibility","useFluent_unstable","useFluent","KEYBORG_FOCUSIN","useIsNavigatingWithKeyboard","applyTriggerPropsToChildren","useControllableState","useId","useIsomorphicLayoutEffect","useIsSSR","useMergedRefs","getTriggerChild","mergeCallbacks","useEventCallback","slot","getReactElementRef","arrowHeight","tooltipBorderRadius","useTooltipTimeout","Escape","useTooltipBase_unstable","props","child","context","isServerSideRender","targetDocument","visible","setVisibleInternal","state","initialState","hidden","setHidden","useState","children","content","withArrow","positioning","onVisibleChange","relationship","showDelay","hideDelay","mountNode","shouldRenderTooltip","components","always","defaultProps","role","elementType","id","resolvedPositioning","onPositioningEnd","event","escaped","referenceHidden","detail","positioningOptions","enabled","arrowPadding","position","align","offset","targetRef","containerRef","arrowRef","setDelayTimeout","clearDelayTimeout","setVisible","useCallback","ev","data","oldVisible","ref","thisTooltip","hide","undefined","documentKeyboardEvent","visibleTooltip","onDocumentKeyDown","key","defaultPrevented","preventDefault","addEventListener","capture","onDocumentVisibilityChange","visibilityState","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","isNavigatingWithKeyboard","keyborgListenerCallbackRef","onKeyborgFocusIn","isFocusedProgrammatically","element","onLeaveTrigger","activeElement","target","onPointerEnter","onPointerLeave","onFocus","onBlur","triggerAriaProps","isPopupExpanded"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/components/Tooltip/useTooltipBase.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { mergeArrowOffset, resolvePositioningShorthand, usePositioning } from '@fluentui/react-positioning';\nimport type { PositioningProps } from '@fluentui/react-positioning';\nimport {\n useTooltipVisibility_unstable as useTooltipVisibility,\n useFluent_unstable as useFluent,\n} from '@fluentui/react-shared-contexts';\nimport type { KeyborgFocusInEvent } from '@fluentui/react-tabster';\nimport { KEYBORG_FOCUSIN, useIsNavigatingWithKeyboard } from '@fluentui/react-tabster';\nimport {\n applyTriggerPropsToChildren,\n useControllableState,\n useId,\n useIsomorphicLayoutEffect,\n useIsSSR,\n useMergedRefs,\n getTriggerChild,\n mergeCallbacks,\n useEventCallback,\n slot,\n getReactElementRef,\n isHTMLElement,\n} from '@fluentui/react-utilities';\nimport type { TooltipBaseProps, TooltipBaseState, TooltipChildProps, OnVisibleChangeData } from './Tooltip.types';\nimport { arrowHeight, tooltipBorderRadius } from './private/constants';\nimport { useTooltipTimeout } from './private/useTooltipTimeout';\nimport { Escape } from '@fluentui/keyboard-keys';\n\ntype OnPositioningEndEvent = Parameters<Exclude<PositioningProps['onPositioningEnd'], undefined>>[0];\n\n/**\n * Create the state required to render Tooltip.\n *\n * The returned state can be modified with hooks such as useTooltipStyles_unstable,\n * before being passed to renderTooltip_unstable.\n *\n * @param props - props from this instance of Tooltip\n */\nexport const useTooltipBase_unstable = (props: TooltipBaseProps): TooltipBaseState => {\n const context = useTooltipVisibility();\n const isServerSideRender = useIsSSR();\n const { targetDocument } = useFluent();\n\n const [visible, setVisibleInternal] = useControllableState({ state: props.visible, initialState: false });\n const [hidden, setHidden] = React.useState(false);\n\n const {\n children,\n content,\n withArrow = false,\n positioning = 'above',\n onVisibleChange,\n relationship,\n showDelay = 250,\n hideDelay = 250,\n mountNode,\n } = props;\n\n const state: TooltipBaseState = {\n withArrow,\n positioning,\n showDelay,\n hideDelay,\n relationship,\n visible,\n hidden,\n shouldRenderTooltip: visible,\n mountNode,\n // Slots\n components: {\n content: 'div',\n },\n content: slot.always(content, {\n defaultProps: {\n role: 'tooltip',\n },\n elementType: 'div',\n }),\n };\n\n state.content.id = useId('tooltip-', state.content.id);\n\n const resolvedPositioning = resolvePositioningShorthand(state.positioning);\n const isVirtualTarget = resolvedPositioning.target !== undefined && !isHTMLElement(resolvedPositioning.target);\n const onPositioningEnd = useEventCallback((event: OnPositioningEndEvent) => {\n // Portaled tooltips can escape the trigger's clipping ancestors while the trigger is still visible.\n // Virtual targets can be reported as hidden based on synthetic geometry.\n setHidden(!isVirtualTarget && event.detail.referenceHidden);\n resolvedPositioning.onPositioningEnd?.(event);\n });\n\n const positioningOptions = {\n enabled: state.visible,\n arrowPadding: 2 * tooltipBorderRadius,\n position: 'above' as const,\n align: 'center' as const,\n offset: 4,\n ...resolvedPositioning,\n onPositioningEnd,\n };\n\n if (state.withArrow) {\n positioningOptions.offset = mergeArrowOffset(positioningOptions.offset, arrowHeight);\n }\n\n const {\n targetRef,\n containerRef,\n arrowRef,\n }: {\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n targetRef: React.MutableRefObject<unknown>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n containerRef: React.MutableRefObject<HTMLDivElement>;\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n arrowRef: React.MutableRefObject<HTMLDivElement>;\n } = usePositioning(positioningOptions);\n\n const [setDelayTimeout, clearDelayTimeout] = useTooltipTimeout(containerRef);\n\n const setVisible = React.useCallback(\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => {\n clearDelayTimeout();\n setVisibleInternal(oldVisible => {\n if (data.visible !== oldVisible) {\n onVisibleChange?.(ev, data);\n }\n return data.visible;\n });\n },\n [clearDelayTimeout, setVisibleInternal, onVisibleChange],\n );\n\n state.content.ref = useMergedRefs(state.content.ref, containerRef);\n state.arrowRef = arrowRef;\n\n // When this tooltip is visible, hide any other tooltips, and register it\n // as the visibleTooltip with the TooltipContext.\n // Also add a listener on document to hide the tooltip if Escape is pressed\n useIsomorphicLayoutEffect(() => {\n if (visible) {\n const thisTooltip = {\n hide: (ev?: KeyboardEvent) => setVisible(undefined, { visible: false, documentKeyboardEvent: ev }),\n };\n\n context.visibleTooltip?.hide();\n // eslint-disable-next-line react-hooks/immutability\n context.visibleTooltip = thisTooltip;\n\n const onDocumentKeyDown = (ev: KeyboardEvent) => {\n if (ev.key === Escape && !ev.defaultPrevented) {\n thisTooltip.hide(ev);\n // stop propagation to avoid conflicting with other elements that listen for `Escape`\n // e,g: Dialog, Popover, Menu and Tooltip\n ev.preventDefault();\n }\n };\n\n targetDocument?.addEventListener('keydown', onDocumentKeyDown, {\n // As this event is added at targeted document,\n // we need to capture the event to be sure keydown handling from tooltip happens first\n capture: true,\n });\n\n // Dismiss the tooltip when the document becomes hidden (e.g. tab backgrounded,\n // app switched on mobile). The original trigger (hover/tap/focus) is no longer\n // active in this case, so persisting the tooltip is a stale UI state.\n const onDocumentVisibilityChange = () => {\n if (targetDocument?.visibilityState === 'hidden') {\n thisTooltip.hide();\n }\n };\n\n targetDocument?.addEventListener('visibilitychange', onDocumentVisibilityChange);\n\n return () => {\n if (context.visibleTooltip === thisTooltip) {\n context.visibleTooltip = undefined;\n }\n\n targetDocument?.removeEventListener('keydown', onDocumentKeyDown, { capture: true });\n targetDocument?.removeEventListener('visibilitychange', onDocumentVisibilityChange);\n };\n }\n }, [context, targetDocument, visible, setVisible]);\n\n // Used to skip showing the tooltip in certain situations when the trigger is focused.\n // See comments where this is set for more info.\n const ignoreNextFocusEventRef = React.useRef(false);\n\n // Listener for onPointerEnter and onFocus on the trigger element\n const onEnterTrigger = React.useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n if (ev.type === 'focus' && ignoreNextFocusEventRef.current) {\n ignoreNextFocusEventRef.current = false;\n return;\n }\n\n // Show immediately if another tooltip is already visible\n const delay = context.visibleTooltip ? 0 : state.showDelay;\n\n setDelayTimeout(() => {\n setVisible(ev, { visible: true });\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.showDelay, context],\n );\n\n const isNavigatingWithKeyboard = useIsNavigatingWithKeyboard();\n\n // Callback ref that attaches a keyborg:focusin event listener.\n const [keyborgListenerCallbackRef] = React.useState(() => {\n const onKeyborgFocusIn = ((ev: KeyborgFocusInEvent) => {\n // Skip showing the tooltip if focus moved programmatically.\n // For example, we don't want to show the tooltip when a dialog is closed\n // and Tabster programmatically restores focus to the trigger button.\n // See https://github.com/microsoft/fluentui/issues/27576\n if (ev.detail?.isFocusedProgrammatically && !isNavigatingWithKeyboard()) {\n ignoreNextFocusEventRef.current = true;\n }\n }) as EventListener;\n\n // Save the current element to remove the listener when the ref changes\n let current: Element | null = null;\n\n // Callback ref that attaches the listener to the element\n return (element: Element | null) => {\n current?.removeEventListener(KEYBORG_FOCUSIN, onKeyborgFocusIn);\n element?.addEventListener(KEYBORG_FOCUSIN, onKeyborgFocusIn);\n current = element;\n };\n });\n\n // Listener for onPointerLeave and onBlur on the trigger element\n const onLeaveTrigger = React.useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n (ev: React.PointerEvent<HTMLElement> | React.FocusEvent<HTMLElement>) => {\n let delay = state.hideDelay;\n\n if (ev.type === 'blur') {\n // Hide immediately when losing focus\n delay = 0;\n\n // The focused element gets a blur event when the document loses focus\n // (e.g. switching tabs in the browser), but we don't want to show the\n // tooltip again when the document gets focus back. Handle this case by\n // checking if the blurred element is still the document's activeElement.\n // See https://github.com/microsoft/fluentui/issues/13541\n ignoreNextFocusEventRef.current = targetDocument?.activeElement === ev.target;\n }\n\n setDelayTimeout(() => {\n setVisible(ev, { visible: false });\n }, delay);\n\n ev.persist(); // Persist the event since the setVisible call will happen asynchronously\n },\n [setDelayTimeout, setVisible, state.hideDelay, targetDocument],\n );\n\n // Cancel the hide timer when the mouse or focus enters the tooltip, and restart it when the mouse or focus leaves.\n // This keeps the tooltip visible when the mouse is moved over it, or it has focus within.\n // eslint-disable-next-line react-hooks/immutability\n state.content.onPointerEnter = mergeCallbacks(state.content.onPointerEnter, clearDelayTimeout);\n // eslint-disable-next-line react-hooks/immutability, react-hooks/refs\n state.content.onPointerLeave = mergeCallbacks(state.content.onPointerLeave, onLeaveTrigger);\n // eslint-disable-next-line react-hooks/immutability\n state.content.onFocus = mergeCallbacks(state.content.onFocus, clearDelayTimeout);\n // eslint-disable-next-line react-hooks/immutability, react-hooks/refs\n state.content.onBlur = mergeCallbacks(state.content.onBlur, onLeaveTrigger);\n\n const child = getTriggerChild(children);\n\n const triggerAriaProps: Pick<TooltipChildProps, 'aria-label' | 'aria-labelledby' | 'aria-describedby'> = {};\n const isPopupExpanded =\n child?.props?.['aria-haspopup'] &&\n (child?.props?.['aria-expanded'] === true || child?.props?.['aria-expanded'] === 'true');\n\n if (relationship === 'label') {\n // aria-label only works if the content is a string. Otherwise, need to use aria-labelledby.\n if (typeof state.content.children === 'string') {\n triggerAriaProps['aria-label'] = state.content.children;\n } else {\n triggerAriaProps['aria-labelledby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-labelledby refers to a valid element\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = true;\n }\n } else if (relationship === 'description') {\n triggerAriaProps['aria-describedby'] = state.content.id;\n // Always render the tooltip even if hidden, so that aria-describedby refers to a valid element\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = true;\n }\n\n // Case 1: Don't render the Tooltip in SSR to avoid hydration errors\n // Case 2: Don't render the Tooltip, if it triggers Menu or another popup and it's already opened\n if (isServerSideRender || isPopupExpanded) {\n // eslint-disable-next-line react-hooks/immutability\n state.shouldRenderTooltip = false;\n }\n\n // Apply the trigger props to the child, either by calling the render function, or cloning with the new props\n // eslint-disable-next-line react-hooks/immutability\n state.children = applyTriggerPropsToChildren(children, {\n ...triggerAriaProps,\n ...child?.props,\n ref: useMergedRefs(\n getReactElementRef<HTMLButtonElement>(child),\n keyborgListenerCallbackRef,\n // If the target prop is not provided, attach targetRef to the trigger element's ref prop\n positioningOptions.target === undefined ? targetRef : undefined,\n ),\n // eslint-disable-next-line react-hooks/refs\n onPointerEnter: useEventCallback(mergeCallbacks(child?.props?.onPointerEnter, onEnterTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onPointerLeave: useEventCallback(mergeCallbacks(child?.props?.onPointerLeave, onLeaveTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onFocus: useEventCallback(mergeCallbacks(child?.props?.onFocus, onEnterTrigger)),\n // eslint-disable-next-line react-hooks/refs\n onBlur: useEventCallback(mergeCallbacks(child?.props?.onBlur, onLeaveTrigger)),\n });\n\n return state;\n};\n"],"names":["React","mergeArrowOffset","resolvePositioningShorthand","usePositioning","useTooltipVisibility_unstable","useTooltipVisibility","useFluent_unstable","useFluent","KEYBORG_FOCUSIN","useIsNavigatingWithKeyboard","applyTriggerPropsToChildren","useControllableState","useId","useIsomorphicLayoutEffect","useIsSSR","useMergedRefs","getTriggerChild","mergeCallbacks","useEventCallback","slot","getReactElementRef","isHTMLElement","arrowHeight","tooltipBorderRadius","useTooltipTimeout","Escape","useTooltipBase_unstable","props","child","context","isServerSideRender","targetDocument","visible","setVisibleInternal","state","initialState","hidden","setHidden","useState","children","content","withArrow","positioning","onVisibleChange","relationship","showDelay","hideDelay","mountNode","shouldRenderTooltip","components","always","defaultProps","role","elementType","id","resolvedPositioning","isVirtualTarget","target","undefined","onPositioningEnd","event","detail","referenceHidden","positioningOptions","enabled","arrowPadding","position","align","offset","targetRef","containerRef","arrowRef","setDelayTimeout","clearDelayTimeout","setVisible","useCallback","ev","data","oldVisible","ref","thisTooltip","hide","documentKeyboardEvent","visibleTooltip","onDocumentKeyDown","key","defaultPrevented","preventDefault","addEventListener","capture","onDocumentVisibilityChange","visibilityState","removeEventListener","ignoreNextFocusEventRef","useRef","onEnterTrigger","type","current","delay","persist","isNavigatingWithKeyboard","keyborgListenerCallbackRef","onKeyborgFocusIn","isFocusedProgrammatically","element","onLeaveTrigger","activeElement","onPointerEnter","onPointerLeave","onFocus","onBlur","triggerAriaProps","isPopupExpanded"],"mappings":"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"}
@@ -167,8 +167,8 @@ const tooltipClassNames = {
167
167
  ".fv40uqz{--fui-positioning-arrow-offset:-4.242px;}",
168
168
  ".f1u2r49w{background-color:inherit;}",
169
169
  ".fqhgnl{background-clip:content-box;}",
170
- ".f17bz04i{border-bottom-left-radius:var(--borderRadiusSmall);}",
171
- ".f36o3x3{transform:rotate(var(--fui-positioning-arrow-angle));}",
170
+ ".f17bz04i{border-bottom-left-radius:var(--borderRadiusSmall) ;}",
171
+ ".f36o3x3{transform:rotate(var(--fui-positioning-arrow-angle)) ;}",
172
172
  ".fzofk8q{height:var(--fui-positioning-arrow-height);}",
173
173
  ".f1wbx1ie{width:var(--fui-positioning-arrow-height);}",
174
174
  ".f1wl9k8s::before{content:\"\";}",
@@ -188,15 +188,15 @@ const tooltipClassNames = {
188
188
  p: -2
189
189
  }
190
190
  ],
191
- ".fgq90dz::before{border-bottom-left-radius:var(--borderRadiusSmall);}",
191
+ ".fgq90dz::before{border-bottom-left-radius:var(--borderRadiusSmall) ;}",
192
192
  ".fq0y47f::before{clip-path:polygon(0% 0%, 100% 100%, 0% 100%);}",
193
193
  "[data-popper-placement^=\"top\"] .f1pwrbz6{bottom:var(--fui-positioning-arrow-offset);}",
194
194
  "[data-popper-placement^=\"top\"] .f1hxxcvm{--fui-positioning-arrow-angle:-45deg;}",
195
- "[data-popper-placement^=\"right\"] .fw8rgyo{left:var(--fui-positioning-arrow-offset);}",
195
+ "[data-popper-placement^=\"right\"] .fw8rgyo{left:var(--fui-positioning-arrow-offset) ;}",
196
196
  "[data-popper-placement^=\"right\"] .f1wnzycx{--fui-positioning-arrow-angle:45deg;}",
197
197
  "[data-popper-placement^=\"bottom\"] .f1730wal{top:var(--fui-positioning-arrow-offset);}",
198
198
  "[data-popper-placement^=\"bottom\"] .f1fy4ixr{--fui-positioning-arrow-angle:135deg;}",
199
- "[data-popper-placement^=\"left\"] .fobkauc{right:var(--fui-positioning-arrow-offset);}",
199
+ "[data-popper-placement^=\"left\"] .fobkauc{right:var(--fui-positioning-arrow-offset) ;}",
200
200
  "[data-popper-placement^=\"left\"] .f16bqv1l{--fui-positioning-arrow-angle:225deg;}"
201
201
  ]
202
202
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluentui/react-tooltip",
3
- "version": "9.74.7-experimental.cli-api.20261006-ccaa611d58.0",
3
+ "version": "9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0",
4
4
  "description": "React components for building web experiences",
5
5
  "main": "lib-commonjs/index.cjs",
6
6
  "module": "lib/index.js",
@@ -12,14 +12,14 @@
12
12
  },
13
13
  "license": "MIT",
14
14
  "dependencies": {
15
- "@fluentui/keyboard-keys": "9.74.7-experimental.cli-api.20261006-ccaa611d58.0",
16
- "@fluentui/react-jsx-runtime": "9.74.7-experimental.cli-api.20261006-ccaa611d58.0",
17
- "@fluentui/react-portal": "9.74.7-experimental.cli-api.20261006-ccaa611d58.0",
18
- "@fluentui/react-positioning": "9.74.7-experimental.cli-api.20261006-ccaa611d58.0",
19
- "@fluentui/react-shared-contexts": "9.74.7-experimental.cli-api.20261006-ccaa611d58.0",
20
- "@fluentui/react-tabster": "9.74.7-experimental.cli-api.20261006-ccaa611d58.0",
21
- "@fluentui/react-theme": "9.74.7-experimental.cli-api.20261006-ccaa611d58.0",
22
- "@fluentui/react-utilities": "9.74.7-experimental.cli-api.20261006-ccaa611d58.0",
15
+ "@fluentui/keyboard-keys": "9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0",
16
+ "@fluentui/react-jsx-runtime": "9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0",
17
+ "@fluentui/react-portal": "9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0",
18
+ "@fluentui/react-positioning": "9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0",
19
+ "@fluentui/react-shared-contexts": "9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0",
20
+ "@fluentui/react-tabster": "9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0",
21
+ "@fluentui/react-theme": "9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0",
22
+ "@fluentui/react-utilities": "9.74.9-experimental.menu-disable-autofocus.20261008-e9914a95c6.0",
23
23
  "@griffel/react": "^1.5.32",
24
24
  "@swc/helpers": "^0.5.1"
25
25
  },
@@ -44,7 +44,6 @@
44
44
  "default": "./lib-commonjs/index.cjs"
45
45
  }
46
46
  },
47
- "./metadata.json": "./dist/metadata/index.json",
48
47
  "./package.json": "./package.json"
49
48
  },
50
49
  "files": [
@@ -52,9 +51,7 @@
52
51
  "dist/*.d.ts",
53
52
  "dist/*.d.cts",
54
53
  "lib",
55
- "lib-commonjs",
56
- "dist/metadata"
54
+ "lib-commonjs"
57
55
  ],
58
- "type": "module",
59
- "fluentuiCatalog": "./metadata.json"
56
+ "type": "module"
60
57
  }
@@ -1 +0,0 @@
1
- {"completeness":{"status":"complete"},"declarationInputs":[{"conditions":["types","import"],"fingerprint":{"algorithm":"sha256","value":"c14e26eec2ef1777d6ac7c81662213c8da996108a9bd885064ea745e5d56ac66"},"path":"dist/index.d.ts"},{"conditions":["types","require"],"fingerprint":{"algorithm":"sha256","value":"c14e26eec2ef1777d6ac7c81662213c8da996108a9bd885064ea745e5d56ac66"},"path":"dist/index.d.cts"}],"dependencyInputs":[{"conditions":["types","import"],"declarationFingerprint":{"algorithm":"sha256","value":"0ff1b165090b491f5e1407ae680b9a0bc3806dc56827ec85f93c57390491e732"},"declarationPath":"index.d.ts","entrypoint":".","package":{"name":"@types/react","version":"19.2.2"},"requested":"react"},{"conditions":["types","import"],"declarationFingerprint":{"algorithm":"sha256","value":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c"},"declarationPath":"lib/lib.dom.d.ts","entrypoint":".","package":{"name":"typescript","version":"5.7.3"},"requested":"typescript"},{"conditions":["types","import"],"declarationFingerprint":{"algorithm":"sha256","value":"a625fbcb53deaf3ef94c69672e2f386bb65bc9224c41b7a26f4976e70d89bfeb"},"declarationPath":"dist/index.d.ts","entrypoint":".","package":{"name":"@fluentui/react-positioning","version":"9.74.7-experimental.cli-api.20261006-ccaa611d58.0"},"requested":"@fluentui/react-positioning"},{"conditions":["types","import"],"declarationFingerprint":{"algorithm":"sha256","value":"acaae36652346e6e081a605eed966b610baa5ee4c5478815dc525c43f973d594"},"declarationPath":"dist/index.d.ts","entrypoint":".","package":{"name":"@fluentui/react-portal","version":"9.74.7-experimental.cli-api.20261006-ccaa611d58.0"},"requested":"@fluentui/react-portal"},{"conditions":["types","import"],"declarationFingerprint":{"algorithm":"sha256","value":"eb27b444251c8b068b168c5e0aa338fe952e84f28d9632a03f93ad292ca6b2f2"},"declarationPath":"dist/index.d.ts","entrypoint":".","package":{"name":"@fluentui/react-utilities","version":"9.74.7-experimental.cli-api.20261006-ccaa611d58.0"},"requested":"@fluentui/react-utilities"},{"conditions":["types","require"],"declarationFingerprint":{"algorithm":"sha256","value":"0ff1b165090b491f5e1407ae680b9a0bc3806dc56827ec85f93c57390491e732"},"declarationPath":"index.d.ts","entrypoint":".","package":{"name":"@types/react","version":"19.2.2"},"requested":"react"},{"conditions":["types","require"],"declarationFingerprint":{"algorithm":"sha256","value":"4fd3f3422b2d2a3dfd5cdd0f387b3a8ec45f006c6ea896a4cb41264c2100bb2c"},"declarationPath":"lib/lib.dom.d.ts","entrypoint":".","package":{"name":"typescript","version":"5.7.3"},"requested":"typescript"},{"conditions":["types","require"],"declarationFingerprint":{"algorithm":"sha256","value":"a625fbcb53deaf3ef94c69672e2f386bb65bc9224c41b7a26f4976e70d89bfeb"},"declarationPath":"dist/index.d.cts","entrypoint":".","package":{"name":"@fluentui/react-positioning","version":"9.74.7-experimental.cli-api.20261006-ccaa611d58.0"},"requested":"@fluentui/react-positioning"},{"conditions":["types","require"],"declarationFingerprint":{"algorithm":"sha256","value":"acaae36652346e6e081a605eed966b610baa5ee4c5478815dc525c43f973d594"},"declarationPath":"dist/index.d.cts","entrypoint":".","package":{"name":"@fluentui/react-portal","version":"9.74.7-experimental.cli-api.20261006-ccaa611d58.0"},"requested":"@fluentui/react-portal"},{"conditions":["types","require"],"declarationFingerprint":{"algorithm":"sha256","value":"eb27b444251c8b068b168c5e0aa338fe952e84f28d9632a03f93ad292ca6b2f2"},"declarationPath":"dist/index.d.cts","entrypoint":".","package":{"name":"@fluentui/react-utilities","version":"9.74.7-experimental.cli-api.20261006-ccaa611d58.0"},"requested":"@fluentui/react-utilities"}],"diagnostics":[],"generator":{"name":"@fluentui/api-metadata","version":"0.0.0"},"kind":"api-record","package":{"name":"@fluentui/react-tooltip","version":"9.74.7-experimental.cli-api.20261006-ccaa611d58.0"},"recordId":"api:root","schema":{"major":1,"revision":5},"symbols":[{"classifications":[{"confidence":"heuristic","evidence":["no stronger product facet matched"],"facet":"utility"}],"declarations":[{"documentation":"Data for the Tooltip's onVisibleChange event.","id":"symbol:OnVisibleChangeData:declaration:0","kind":"type-alias","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":264,"start":251,"status":"resolved","target":{"entrypoint":".","export":"KeyboardEvent","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"{\n visible: boolean;\n /**\n * The event object, if this visibility change was triggered by a keyboard event on the document element\n * (such as Escape to hide the visible tooltip). Otherwise undefined.\n */\n documentKeyboardEvent?: KeyboardEvent;\n}"}}],"source":{"end":913,"file":"dist/index.d.ts","start":603},"type":{"references":[{"end":286,"start":273,"status":"resolved","target":{"entrypoint":".","export":"KeyboardEvent","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"OnVisibleChangeData = {\n visible: boolean;\n /**\n * The event object, if this visibility change was triggered by a keyboard event on the document element\n * (such as Escape to hide the visible tooltip). Otherwise undefined.\n */\n documentKeyboardEvent?: KeyboardEvent;\n}"}}],"effectiveType":{"members":[{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"The event object, if this visibility change was triggered by a keyboard event on the document element\n(such as Escape to hide the visible tooltip). Otherwise undefined.","kind":"property","name":"documentKeyboardEvent","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:OnVisibleChangeData"}],"status":{"status":"complete"},"type":{"references":[],"text":"KeyboardEvent"}},{"declarationPackages":["@fluentui/react-tooltip"],"kind":"property","name":"visible","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:OnVisibleChangeData"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}}],"signatures":[],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"OnVisibleChangeData"}},"fingerprint":{"algorithm":"sha256","value":"ff033f49ada859d90ac74860a4df412a7fe949dc1f432217e40536171c746bdb"},"id":"symbol:OnVisibleChangeData","name":"OnVisibleChangeData","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":264,"start":251,"status":"resolved","target":{"entrypoint":".","export":"KeyboardEvent","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"{\n visible: boolean;\n /**\n * The event object, if this visibility change was triggered by a keyboard event on the document element\n * (such as Escape to hide the visible tooltip). Otherwise undefined.\n */\n documentKeyboardEvent?: KeyboardEvent;\n}"}}],"type":{"references":[{"end":286,"start":273,"status":"resolved","target":{"entrypoint":".","export":"KeyboardEvent","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"OnVisibleChangeData = {\n visible: boolean;\n /**\n * The event object, if this visibility change was triggered by a keyboard event on the document element\n * (such as Escape to hide the visible tooltip). Otherwise undefined.\n */\n documentKeyboardEvent?: KeyboardEvent;\n}"}},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the renderX convention"],"facet":"render"}],"declarations":[{"documentation":"Render the final JSX of Tooltip","id":"symbol:renderTooltip_unstable:declaration:0","kind":"variable","namespaces":["value"],"signatures":[{"documentation":"Render the final JSX of Tooltip","id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"state","optional":false,"rest":false,"type":{"references":[],"text":"TooltipBaseState"}}],"returnType":{"references":[],"text":"JSXElement"},"source":{"end":1042,"file":"dist/index.d.ts","start":1003},"typeParameters":[]}],"source":{"end":1042,"file":"dist/index.d.ts","start":979},"type":{"references":[{"end":24,"start":8,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipBaseState"}},{"end":39,"start":29,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}}],"text":"(state: TooltipBaseState) => JSXElement"}}],"effectiveType":{"members":[],"signatures":[{"documentation":"Render the final JSX of Tooltip","id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"state","optional":false,"rest":false,"type":{"references":[],"text":"TooltipBaseState"}}],"returnType":{"references":[],"text":"JSXElement"},"source":{"end":1042,"file":"dist/index.d.ts","start":1003},"typeParameters":[]}],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"(state: TooltipBaseState) => JSXElement"}},"fingerprint":{"algorithm":"sha256","value":"a3133cd7f06aaccd197695ebea567e5a76ee3ed3734b1cf309c9537c6d46918d"},"id":"symbol:renderTooltip_unstable","name":"renderTooltip_unstable","namespaces":["value"],"relationships":[],"type":{"references":[{"end":24,"start":8,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipBaseState"}},{"end":39,"start":29,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}}],"text":"(state: TooltipBaseState) => JSXElement"}},{"classifications":[{"confidence":"heuristic","evidence":["no stronger product facet matched"],"facet":"utility"}],"declarations":[{"documentation":"A tooltip provides light weight contextual information on top of its target element.","id":"symbol:Tooltip:declaration:0","kind":"variable","namespaces":["value"],"signatures":[{"id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"props","optional":false,"rest":false,"type":{"references":[],"text":"TooltipProps"}}],"returnType":{"references":[],"text":"React_2.ReactNode | Promise<React_2.ReactNode>"},"typeParameters":[]}],"source":{"end":1195,"file":"dist/index.d.ts","start":1162},"type":{"references":[{"end":10,"start":0,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":23,"start":11,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}}],"text":"React_2.FC<TooltipProps>"}}],"effectiveType":{"members":[{"declarationPackages":["@types/react"],"documentation":"Used in debugging messages. You might want to set it\nexplicitly if you want to display a different name for\ndebugging purposes.","kind":"property","name":"displayName","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:Tooltip"}],"status":{"status":"complete"},"type":{"references":[],"text":"string"}},{"declarationPackages":["@types/react"],"deprecated":"Only kept in types for backwards compatibility. Will be removed in a future major release.","documentation":"Ignored by React.","kind":"property","name":"propTypes","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:Tooltip"}],"status":{"status":"complete"},"type":{"references":[],"text":"any"}}],"signatures":[{"id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"props","optional":false,"rest":false,"type":{"references":[],"text":"TooltipProps"}}],"returnType":{"references":[],"text":"React_2.ReactNode | Promise<React_2.ReactNode>"},"typeParameters":[]}],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"React_2.FC<TooltipProps>"}},"fingerprint":{"algorithm":"sha256","value":"f749b317d052716d80c5ebd8ca215e5a57772ba299ea5699ced9166e8d527b10"},"id":"symbol:Tooltip","name":"Tooltip","namespaces":["value"],"relationships":[],"type":{"references":[{"end":10,"start":0,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":23,"start":11,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}}],"text":"React_2.FC<TooltipProps>"}},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Props"],"facet":"props"}],"declarations":[{"id":"symbol:TooltipBaseProps:declaration:0","kind":"type-alias","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":17,"start":5,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}}],"text":"Omit<TooltipProps, 'appearance'>"}}],"source":{"end":1270,"file":"dist/index.d.ts","start":1198},"type":{"references":[{"end":36,"start":24,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}}],"text":"TooltipBaseProps = Omit<TooltipProps, 'appearance'>"}}],"effectiveType":{"members":[{"declarationPackages":["@fluentui/react-utilities"],"kind":"property","name":"children","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"React_2.ReactElement<unknown, string | React_2.JSXElementConstructor<any>> | ((props: TooltipTriggerProps) => React_2.ReactElement | null)"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"The text or JSX content of the tooltip.","kind":"property","name":"content","optional":false,"presentation":{"basis":"declaration","kind":"slot","nullable":false,"slotType":{"entrypoint":".","export":"Slot","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"},"summary":"NonNullable<Slot<'div'>>","targets":[{"kind":"intrinsic","name":"div","role":"default"}]},"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"NonNullable<WithSlotShorthandValue<{ as?: \"div\"; } & Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, \"children\"> & { children?: any; }>>"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"250","documentation":"Delay before the tooltip is hidden, in milliseconds.","kind":"property","name":"hideDelay","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"number"}},{"declarationPackages":["@fluentui/react-portal"],"defaultValue":"a new element on document.body without any styling","documentation":"Where the portal children are mounted on DOM","kind":"property","name":"mountNode","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"HTMLElement | { element?: HTMLElement | null; className?: string; }"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"Notification when the visibility of the tooltip is changing.\n\n**Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on\nthe document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.","kind":"property","name":"onVisibleChange","optional":true,"readonly":false,"signatures":[{"id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"event","optional":false,"rest":false,"type":{"references":[],"text":"React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement, Element>"}},{"name":"data","optional":false,"rest":false,"type":{"references":[],"text":"OnVisibleChangeData"}}],"returnType":{"references":[],"text":"void"},"source":{"end":2446,"file":"dist/index.d.ts","start":2323},"typeParameters":[]}],"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"(event: React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => void"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"above","documentation":"Configure the positioning of the tooltip","kind":"property","name":"positioning","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"PositioningShorthand"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"(Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n\n* `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n displaying only an icon, for example.\n* `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n* `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n screen readers, and should only be used if the tooltip's text is available by some other means.","kind":"property","name":"relationship","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"\"label\" | \"description\" | \"inaccessible\""}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"250","documentation":"Delay before the tooltip is shown, in milliseconds.","kind":"property","name":"showDelay","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"number"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"false","documentation":"Control the tooltip's visibility programatically.\n\nThis can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n\nIf not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\ntrigger (child) element.","kind":"property","name":"visible","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"false","documentation":"Render an arrow pointing to the target element","kind":"property","name":"withArrow","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}}],"signatures":[],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"TooltipBaseProps"}},"fingerprint":{"algorithm":"sha256","value":"98710942f9d73f6105fbf0c2058d74e2aa81a850f0681c3696fcdb8cc811f3b2"},"id":"symbol:TooltipBaseProps","name":"TooltipBaseProps","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":17,"start":5,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}}],"text":"Omit<TooltipProps, 'appearance'>"}}],"type":{"references":[{"end":36,"start":24,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}}],"text":"TooltipBaseProps = Omit<TooltipProps, 'appearance'>"}},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with State"],"facet":"state"}],"declarations":[{"id":"symbol:TooltipBaseState:declaration:0","kind":"type-alias","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":17,"start":5,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}}],"text":"Omit<TooltipState, 'appearance'>"}}],"source":{"end":1344,"file":"dist/index.d.ts","start":1272},"type":{"references":[{"end":36,"start":24,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}}],"text":"TooltipBaseState = Omit<TooltipState, 'appearance'>"}}],"effectiveType":{"members":[{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"CSS class for the arrow element","kind":"property","name":"arrowClassName","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"string"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"Ref to the arrow element","kind":"property","name":"arrowRef","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"React_2.Ref<HTMLDivElement>"}},{"declarationPackages":["@fluentui/react-tooltip"],"kind":"property","name":"children","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"JSXElement"}},{"declarationPackages":["@fluentui/react-utilities"],"deprecated":"The base element type for each slot.\nThis property is deprecated and will be removed in a future version.\nThe slot base element type is declared through `slot.*(slotShorthand, {elementType: ElementType})` instead.","kind":"property","name":"components","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"{ content: React_2.ElementType<any, keyof React_2.JSX.IntrinsicElements>; }"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"The text or JSX content of the tooltip.","kind":"property","name":"content","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"Omit<{ as?: \"div\"; } & Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, \"children\"> & { children?: any; }, \"children\"> & { children?: any; }"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"Whether positioning has determined that the tooltip or its target is outside its clipping boundary.","kind":"property","name":"hidden","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"250","documentation":"Delay before the tooltip is hidden, in milliseconds.","kind":"property","name":"hideDelay","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"number"}},{"declarationPackages":["@fluentui/react-portal"],"defaultValue":"a new element on document.body without any styling","documentation":"Where the portal children are mounted on DOM","kind":"property","name":"mountNode","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"HTMLElement | { element?: HTMLElement | null; className?: string; }"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"above","documentation":"Configure the positioning of the tooltip","kind":"property","name":"positioning","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"PositioningShorthand"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"(Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n\n* `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n displaying only an icon, for example.\n* `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n* `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n screen readers, and should only be used if the tooltip's text is available by some other means.","kind":"property","name":"relationship","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"\"label\" | \"description\" | \"inaccessible\""}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"Whether the tooltip should be rendered to the DOM.","kind":"property","name":"shouldRenderTooltip","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"250","documentation":"Delay before the tooltip is shown, in milliseconds.","kind":"property","name":"showDelay","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"number"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"false","documentation":"Control the tooltip's visibility programatically.\n\nThis can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n\nIf not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\ntrigger (child) element.","kind":"property","name":"visible","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"false","documentation":"Render an arrow pointing to the target element","kind":"property","name":"withArrow","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipBaseState"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}}],"signatures":[],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"TooltipBaseState"}},"fingerprint":{"algorithm":"sha256","value":"51f8d118319984fa91377e51e057bb1276e55ffd48dee93cbf817f17f83b067c"},"id":"symbol:TooltipBaseState","name":"TooltipBaseState","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":17,"start":5,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}}],"text":"Omit<TooltipState, 'appearance'>"}}],"type":{"references":[{"end":36,"start":24,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}}],"text":"TooltipBaseState = Omit<TooltipState, 'appearance'>"}},{"classifications":[{"confidence":"heuristic","evidence":["no stronger product facet matched"],"facet":"utility"}],"declarations":[{"id":"symbol:tooltipClassNames:declaration:0","kind":"variable","namespaces":["value"],"source":{"end":1414,"file":"dist/index.d.ts","start":1367},"type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"SlotClassNames","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}}],"text":"SlotClassNames<TooltipSlots>"}}],"effectiveType":{"members":[{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"The text or JSX content of the tooltip.","kind":"property","name":"content","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:tooltipClassNames"}],"status":{"status":"complete"},"type":{"references":[],"text":"string"}}],"signatures":[],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"SlotClassNames<TooltipSlots>"}},"fingerprint":{"algorithm":"sha256","value":"9d6cbe0aab85252e031b9b05027cc5da33d1741dcd9c5c85d2f6d25328169fca"},"id":"symbol:tooltipClassNames","name":"tooltipClassNames","namespaces":["value"],"relationships":[],"type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"SlotClassNames","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}}],"text":"SlotClassNames<TooltipSlots>"}},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Props"],"facet":"props"}],"declarations":[{"documentation":"Properties for Tooltip","id":"symbol:TooltipProps:declaration:0","kind":"type-alias","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"ComponentProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":43,"start":31,"status":"resolved","target":{"entrypoint":".","export":"TriggerProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":63,"start":44,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipTriggerProps"}},{"end":83,"start":72,"status":"resolved","target":{"entrypoint":".","export":"PortalProps","kind":"dependency","namespace":"type","package":"@fluentui/react-portal"}},{"end":865,"start":845,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":877,"start":866,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":899,"start":881,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":911,"start":900,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":951,"start":932,"status":"resolved","target":{"kind":"local","symbol":"symbol:OnVisibleChangeData"}},{"end":1093,"start":1073,"status":"resolved","target":{"entrypoint":".","export":"PositioningShorthand","kind":"dependency","namespace":"type","package":"@fluentui/react-positioning"}}],"text":"ComponentProps<TooltipSlots> & TriggerProps<TooltipTriggerProps> & Pick<PortalProps, 'mountNode'> & {\n /**\n * The tooltip's visual appearance.\n * * `normal` - Uses the theme's background and text colors.\n * * `inverted` - Higher contrast variant that uses the theme's inverted colors.\n *\n * @default normal\n */\n appearance?: 'normal' | 'inverted';\n /**\n * Delay before the tooltip is hidden, in milliseconds.\n *\n * @default 250\n */\n hideDelay?: number;\n /**\n * Notification when the visibility of the tooltip is changing.\n *\n * **Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on\n * the document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.\n */\n onVisibleChange?: (event: React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => void;\n /**\n * Configure the positioning of the tooltip\n *\n * @default above\n */\n positioning?: PositioningShorthand;\n /**\n * (Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n *\n * * `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n * displaying only an icon, for example.\n * * `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n * * `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n * screen readers, and should only be used if the tooltip's text is available by some other means.\n */\n relationship: 'label' | 'description' | 'inaccessible';\n /**\n * Delay before the tooltip is shown, in milliseconds.\n *\n * @default 250\n */\n showDelay?: number;\n /**\n * Control the tooltip's visibility programatically.\n *\n * This can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n *\n * If not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\n * trigger (child) element.\n *\n * @default false\n */\n visible?: boolean;\n /**\n * Render an arrow pointing to the target element\n *\n * @default false\n */\n withArrow?: boolean;\n}"}},{"kind":"intersection","type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"ComponentProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":43,"start":31,"status":"resolved","target":{"entrypoint":".","export":"TriggerProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":63,"start":44,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipTriggerProps"}},{"end":83,"start":72,"status":"resolved","target":{"entrypoint":".","export":"PortalProps","kind":"dependency","namespace":"type","package":"@fluentui/react-portal"}},{"end":865,"start":845,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":877,"start":866,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":899,"start":881,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":911,"start":900,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":951,"start":932,"status":"resolved","target":{"kind":"local","symbol":"symbol:OnVisibleChangeData"}},{"end":1093,"start":1073,"status":"resolved","target":{"entrypoint":".","export":"PositioningShorthand","kind":"dependency","namespace":"type","package":"@fluentui/react-positioning"}}],"text":"ComponentProps<TooltipSlots> & TriggerProps<TooltipTriggerProps> & Pick<PortalProps, 'mountNode'> & {\n /**\n * The tooltip's visual appearance.\n * * `normal` - Uses the theme's background and text colors.\n * * `inverted` - Higher contrast variant that uses the theme's inverted colors.\n *\n * @default normal\n */\n appearance?: 'normal' | 'inverted';\n /**\n * Delay before the tooltip is hidden, in milliseconds.\n *\n * @default 250\n */\n hideDelay?: number;\n /**\n * Notification when the visibility of the tooltip is changing.\n *\n * **Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on\n * the document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.\n */\n onVisibleChange?: (event: React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => void;\n /**\n * Configure the positioning of the tooltip\n *\n * @default above\n */\n positioning?: PositioningShorthand;\n /**\n * (Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n *\n * * `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n * displaying only an icon, for example.\n * * `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n * * `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n * screen readers, and should only be used if the tooltip's text is available by some other means.\n */\n relationship: 'label' | 'description' | 'inaccessible';\n /**\n * Delay before the tooltip is shown, in milliseconds.\n *\n * @default 250\n */\n showDelay?: number;\n /**\n * Control the tooltip's visibility programatically.\n *\n * This can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n *\n * If not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\n * trigger (child) element.\n *\n * @default false\n */\n visible?: boolean;\n /**\n * Render an arrow pointing to the target element\n *\n * @default false\n */\n withArrow?: boolean;\n}"}},{"kind":"union","type":{"references":[],"text":"'normal' | 'inverted'"}},{"kind":"union","type":{"references":[{"end":20,"start":0,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":32,"start":21,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":54,"start":36,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":66,"start":55,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined"}},{"kind":"union","type":{"references":[],"text":"'label' | 'description' | 'inaccessible'"}}],"source":{"end":3919,"file":"dist/index.d.ts","start":1451},"type":{"references":[{"end":29,"start":15,"status":"resolved","target":{"entrypoint":".","export":"ComponentProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":42,"start":30,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":58,"start":46,"status":"resolved","target":{"entrypoint":".","export":"TriggerProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":78,"start":59,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipTriggerProps"}},{"end":98,"start":87,"status":"resolved","target":{"entrypoint":".","export":"PortalProps","kind":"dependency","namespace":"type","package":"@fluentui/react-portal"}},{"end":880,"start":860,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":892,"start":881,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":914,"start":896,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":926,"start":915,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":966,"start":947,"status":"resolved","target":{"kind":"local","symbol":"symbol:OnVisibleChangeData"}},{"end":1108,"start":1088,"status":"resolved","target":{"entrypoint":".","export":"PositioningShorthand","kind":"dependency","namespace":"type","package":"@fluentui/react-positioning"}}],"text":"TooltipProps = ComponentProps<TooltipSlots> & TriggerProps<TooltipTriggerProps> & Pick<PortalProps, 'mountNode'> & {\n /**\n * The tooltip's visual appearance.\n * * `normal` - Uses the theme's background and text colors.\n * * `inverted` - Higher contrast variant that uses the theme's inverted colors.\n *\n * @default normal\n */\n appearance?: 'normal' | 'inverted';\n /**\n * Delay before the tooltip is hidden, in milliseconds.\n *\n * @default 250\n */\n hideDelay?: number;\n /**\n * Notification when the visibility of the tooltip is changing.\n *\n * **Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on\n * the document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.\n */\n onVisibleChange?: (event: React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => void;\n /**\n * Configure the positioning of the tooltip\n *\n * @default above\n */\n positioning?: PositioningShorthand;\n /**\n * (Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n *\n * * `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n * displaying only an icon, for example.\n * * `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n * * `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n * screen readers, and should only be used if the tooltip's text is available by some other means.\n */\n relationship: 'label' | 'description' | 'inaccessible';\n /**\n * Delay before the tooltip is shown, in milliseconds.\n *\n * @default 250\n */\n showDelay?: number;\n /**\n * Control the tooltip's visibility programatically.\n *\n * This can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n *\n * If not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\n * trigger (child) element.\n *\n * @default false\n */\n visible?: boolean;\n /**\n * Render an arrow pointing to the target element\n *\n * @default false\n */\n withArrow?: boolean;\n}"}}],"effectiveType":{"members":[{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"normal","documentation":"The tooltip's visual appearance.\n* `normal` - Uses the theme's background and text colors.\n* `inverted` - Higher contrast variant that uses the theme's inverted colors.","kind":"property","name":"appearance","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"\"normal\" | \"inverted\""}},{"declarationPackages":["@fluentui/react-utilities"],"kind":"property","name":"children","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"React_2.ReactElement<unknown, string | React_2.JSXElementConstructor<any>> | ((props: TooltipTriggerProps) => React_2.ReactElement | null)"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"The text or JSX content of the tooltip.","kind":"property","name":"content","optional":false,"presentation":{"basis":"declaration","kind":"slot","nullable":false,"slotType":{"entrypoint":".","export":"Slot","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"},"summary":"NonNullable<Slot<'div'>>","targets":[{"kind":"intrinsic","name":"div","role":"default"}]},"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"NonNullable<WithSlotShorthandValue<{ as?: \"div\"; } & Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, \"children\"> & { children?: any; }>>"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"250","documentation":"Delay before the tooltip is hidden, in milliseconds.","kind":"property","name":"hideDelay","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"number"}},{"declarationPackages":["@fluentui/react-portal"],"defaultValue":"a new element on document.body without any styling","documentation":"Where the portal children are mounted on DOM","kind":"property","name":"mountNode","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"HTMLElement | { element?: HTMLElement | null; className?: string; }"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"Notification when the visibility of the tooltip is changing.\n\n**Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on\nthe document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.","kind":"property","name":"onVisibleChange","optional":true,"readonly":false,"signatures":[{"id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"event","optional":false,"rest":false,"type":{"references":[],"text":"React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement, Element>"}},{"name":"data","optional":false,"rest":false,"type":{"references":[],"text":"OnVisibleChangeData"}}],"returnType":{"references":[],"text":"void"},"source":{"end":2446,"file":"dist/index.d.ts","start":2323},"typeParameters":[]}],"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"(event: React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => void"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"above","documentation":"Configure the positioning of the tooltip","kind":"property","name":"positioning","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"PositioningShorthand"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"(Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n\n* `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n displaying only an icon, for example.\n* `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n* `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n screen readers, and should only be used if the tooltip's text is available by some other means.","kind":"property","name":"relationship","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"\"label\" | \"description\" | \"inaccessible\""}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"250","documentation":"Delay before the tooltip is shown, in milliseconds.","kind":"property","name":"showDelay","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"number"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"false","documentation":"Control the tooltip's visibility programatically.\n\nThis can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n\nIf not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\ntrigger (child) element.","kind":"property","name":"visible","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"false","documentation":"Render an arrow pointing to the target element","kind":"property","name":"withArrow","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}}],"signatures":[],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"TooltipProps"}},"fingerprint":{"algorithm":"sha256","value":"2c8f69d769478ef7a31e7446362ad67fdd54aebb041e8d66242df900b4e071d6"},"id":"symbol:TooltipProps","name":"TooltipProps","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"ComponentProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":43,"start":31,"status":"resolved","target":{"entrypoint":".","export":"TriggerProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":63,"start":44,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipTriggerProps"}},{"end":83,"start":72,"status":"resolved","target":{"entrypoint":".","export":"PortalProps","kind":"dependency","namespace":"type","package":"@fluentui/react-portal"}},{"end":865,"start":845,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":877,"start":866,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":899,"start":881,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":911,"start":900,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":951,"start":932,"status":"resolved","target":{"kind":"local","symbol":"symbol:OnVisibleChangeData"}},{"end":1093,"start":1073,"status":"resolved","target":{"entrypoint":".","export":"PositioningShorthand","kind":"dependency","namespace":"type","package":"@fluentui/react-positioning"}}],"text":"ComponentProps<TooltipSlots> & TriggerProps<TooltipTriggerProps> & Pick<PortalProps, 'mountNode'> & {\n /**\n * The tooltip's visual appearance.\n * * `normal` - Uses the theme's background and text colors.\n * * `inverted` - Higher contrast variant that uses the theme's inverted colors.\n *\n * @default normal\n */\n appearance?: 'normal' | 'inverted';\n /**\n * Delay before the tooltip is hidden, in milliseconds.\n *\n * @default 250\n */\n hideDelay?: number;\n /**\n * Notification when the visibility of the tooltip is changing.\n *\n * **Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on\n * the document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.\n */\n onVisibleChange?: (event: React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => void;\n /**\n * Configure the positioning of the tooltip\n *\n * @default above\n */\n positioning?: PositioningShorthand;\n /**\n * (Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n *\n * * `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n * displaying only an icon, for example.\n * * `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n * * `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n * screen readers, and should only be used if the tooltip's text is available by some other means.\n */\n relationship: 'label' | 'description' | 'inaccessible';\n /**\n * Delay before the tooltip is shown, in milliseconds.\n *\n * @default 250\n */\n showDelay?: number;\n /**\n * Control the tooltip's visibility programatically.\n *\n * This can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n *\n * If not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\n * trigger (child) element.\n *\n * @default false\n */\n visible?: boolean;\n /**\n * Render an arrow pointing to the target element\n *\n * @default false\n */\n withArrow?: boolean;\n}"}},{"kind":"intersection","type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"ComponentProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":43,"start":31,"status":"resolved","target":{"entrypoint":".","export":"TriggerProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":63,"start":44,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipTriggerProps"}},{"end":83,"start":72,"status":"resolved","target":{"entrypoint":".","export":"PortalProps","kind":"dependency","namespace":"type","package":"@fluentui/react-portal"}},{"end":865,"start":845,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":877,"start":866,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":899,"start":881,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":911,"start":900,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":951,"start":932,"status":"resolved","target":{"kind":"local","symbol":"symbol:OnVisibleChangeData"}},{"end":1093,"start":1073,"status":"resolved","target":{"entrypoint":".","export":"PositioningShorthand","kind":"dependency","namespace":"type","package":"@fluentui/react-positioning"}}],"text":"ComponentProps<TooltipSlots> & TriggerProps<TooltipTriggerProps> & Pick<PortalProps, 'mountNode'> & {\n /**\n * The tooltip's visual appearance.\n * * `normal` - Uses the theme's background and text colors.\n * * `inverted` - Higher contrast variant that uses the theme's inverted colors.\n *\n * @default normal\n */\n appearance?: 'normal' | 'inverted';\n /**\n * Delay before the tooltip is hidden, in milliseconds.\n *\n * @default 250\n */\n hideDelay?: number;\n /**\n * Notification when the visibility of the tooltip is changing.\n *\n * **Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on\n * the document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.\n */\n onVisibleChange?: (event: React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => void;\n /**\n * Configure the positioning of the tooltip\n *\n * @default above\n */\n positioning?: PositioningShorthand;\n /**\n * (Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n *\n * * `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n * displaying only an icon, for example.\n * * `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n * * `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n * screen readers, and should only be used if the tooltip's text is available by some other means.\n */\n relationship: 'label' | 'description' | 'inaccessible';\n /**\n * Delay before the tooltip is shown, in milliseconds.\n *\n * @default 250\n */\n showDelay?: number;\n /**\n * Control the tooltip's visibility programatically.\n *\n * This can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n *\n * If not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\n * trigger (child) element.\n *\n * @default false\n */\n visible?: boolean;\n /**\n * Render an arrow pointing to the target element\n *\n * @default false\n */\n withArrow?: boolean;\n}"}},{"kind":"union","type":{"references":[],"text":"'normal' | 'inverted'"}},{"kind":"union","type":{"references":[{"end":20,"start":0,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":32,"start":21,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":54,"start":36,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":66,"start":55,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined"}},{"kind":"union","type":{"references":[],"text":"'label' | 'description' | 'inaccessible'"}}],"type":{"references":[{"end":29,"start":15,"status":"resolved","target":{"entrypoint":".","export":"ComponentProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":42,"start":30,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":58,"start":46,"status":"resolved","target":{"entrypoint":".","export":"TriggerProps","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":78,"start":59,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipTriggerProps"}},{"end":98,"start":87,"status":"resolved","target":{"entrypoint":".","export":"PortalProps","kind":"dependency","namespace":"type","package":"@fluentui/react-portal"}},{"end":880,"start":860,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":892,"start":881,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":914,"start":896,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":926,"start":915,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}},{"end":966,"start":947,"status":"resolved","target":{"kind":"local","symbol":"symbol:OnVisibleChangeData"}},{"end":1108,"start":1088,"status":"resolved","target":{"entrypoint":".","export":"PositioningShorthand","kind":"dependency","namespace":"type","package":"@fluentui/react-positioning"}}],"text":"TooltipProps = ComponentProps<TooltipSlots> & TriggerProps<TooltipTriggerProps> & Pick<PortalProps, 'mountNode'> & {\n /**\n * The tooltip's visual appearance.\n * * `normal` - Uses the theme's background and text colors.\n * * `inverted` - Higher contrast variant that uses the theme's inverted colors.\n *\n * @default normal\n */\n appearance?: 'normal' | 'inverted';\n /**\n * Delay before the tooltip is hidden, in milliseconds.\n *\n * @default 250\n */\n hideDelay?: number;\n /**\n * Notification when the visibility of the tooltip is changing.\n *\n * **Note**: for backwards compatibility, `event` will be undefined if this was triggered by a keyboard event on\n * the document element. Use `data.documentKeyboardEvent` if the keyboard event object is needed.\n */\n onVisibleChange?: (event: React_2.PointerEvent<HTMLElement> | React_2.FocusEvent<HTMLElement> | undefined, data: OnVisibleChangeData) => void;\n /**\n * Configure the positioning of the tooltip\n *\n * @default above\n */\n positioning?: PositioningShorthand;\n /**\n * (Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n *\n * * `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n * displaying only an icon, for example.\n * * `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n * * `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n * screen readers, and should only be used if the tooltip's text is available by some other means.\n */\n relationship: 'label' | 'description' | 'inaccessible';\n /**\n * Delay before the tooltip is shown, in milliseconds.\n *\n * @default 250\n */\n showDelay?: number;\n /**\n * Control the tooltip's visibility programatically.\n *\n * This can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n *\n * If not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\n * trigger (child) element.\n *\n * @default false\n */\n visible?: boolean;\n /**\n * Render an arrow pointing to the target element\n *\n * @default false\n */\n withArrow?: boolean;\n}"}},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Slots"],"facet":"slots"}],"declarations":[{"documentation":"Slot properties for Tooltip","id":"symbol:TooltipSlots:declaration:0","kind":"type-alias","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":94,"start":90,"status":"resolved","target":{"entrypoint":".","export":"Slot","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}}],"text":"{\n /**\n * The text or JSX content of the tooltip.\n */\n content: NonNullable<Slot<'div'>>;\n}"}}],"source":{"end":4101,"file":"dist/index.d.ts","start":3960},"type":{"references":[{"end":109,"start":105,"status":"resolved","target":{"entrypoint":".","export":"Slot","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}}],"text":"TooltipSlots = {\n /**\n * The text or JSX content of the tooltip.\n */\n content: NonNullable<Slot<'div'>>;\n}"}}],"effectiveType":{"members":[{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"The text or JSX content of the tooltip.","kind":"property","name":"content","optional":false,"presentation":{"basis":"declaration","kind":"slot","nullable":false,"slotType":{"entrypoint":".","export":"Slot","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"},"summary":"NonNullable<Slot<'div'>>","targets":[{"kind":"intrinsic","name":"div","role":"default"}]},"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipSlots"}],"status":{"status":"complete"},"type":{"references":[],"text":"NonNullable<WithSlotShorthandValue<{ as?: \"div\"; } & Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, \"children\"> & { children?: any; }>>"}}],"signatures":[],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"TooltipSlots"}},"fingerprint":{"algorithm":"sha256","value":"521c001091091d723ad32a0c72115146f5c351c40ea5b965b32938fe2a616914"},"id":"symbol:TooltipSlots","name":"TooltipSlots","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":94,"start":90,"status":"resolved","target":{"entrypoint":".","export":"Slot","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}}],"text":"{\n /**\n * The text or JSX content of the tooltip.\n */\n content: NonNullable<Slot<'div'>>;\n}"}}],"type":{"references":[{"end":109,"start":105,"status":"resolved","target":{"entrypoint":".","export":"Slot","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}}],"text":"TooltipSlots = {\n /**\n * The text or JSX content of the tooltip.\n */\n content: NonNullable<Slot<'div'>>;\n}"}},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with State"],"facet":"state"}],"declarations":[{"documentation":"State used in rendering Tooltip","id":"symbol:TooltipState:declaration:0","kind":"type-alias","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"ComponentState","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":48,"start":36,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":108,"start":96,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":224,"start":214,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":561,"start":550,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":576,"start":562,"status":"resolved","target":{"entrypoint":".","export":"HTMLDivElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"ComponentState<TooltipSlots> & Pick<TooltipProps, 'mountNode' | 'relationship'> & Required<Pick<TooltipProps, 'appearance' | 'hideDelay' | 'positioning' | 'showDelay' | 'visible' | 'withArrow'>> & {\n children?: JSXElement | null;\n /**\n * Whether positioning has determined that the tooltip or its target is outside its clipping boundary.\n */\n hidden?: boolean;\n /**\n * Whether the tooltip should be rendered to the DOM.\n */\n shouldRenderTooltip?: boolean;\n /**\n * Ref to the arrow element\n */\n arrowRef?: React_2.Ref<HTMLDivElement>;\n /**\n * CSS class for the arrow element\n */\n arrowClassName?: string;\n}"}},{"kind":"intersection","type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"ComponentState","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":48,"start":36,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":108,"start":96,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":224,"start":214,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":561,"start":550,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":576,"start":562,"status":"resolved","target":{"entrypoint":".","export":"HTMLDivElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"ComponentState<TooltipSlots> & Pick<TooltipProps, 'mountNode' | 'relationship'> & Required<Pick<TooltipProps, 'appearance' | 'hideDelay' | 'positioning' | 'showDelay' | 'visible' | 'withArrow'>> & {\n children?: JSXElement | null;\n /**\n * Whether positioning has determined that the tooltip or its target is outside its clipping boundary.\n */\n hidden?: boolean;\n /**\n * Whether the tooltip should be rendered to the DOM.\n */\n shouldRenderTooltip?: boolean;\n /**\n * Ref to the arrow element\n */\n arrowRef?: React_2.Ref<HTMLDivElement>;\n /**\n * CSS class for the arrow element\n */\n arrowClassName?: string;\n}"}},{"kind":"union","type":{"references":[],"text":"'mountNode' | 'relationship'"}},{"kind":"union","type":{"references":[],"text":"'appearance' | 'hideDelay' | 'positioning' | 'showDelay' | 'visible' | 'withArrow'"}},{"kind":"union","type":{"references":[{"end":10,"start":0,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}}],"text":"JSXElement | null"}}],"source":{"end":4846,"file":"dist/index.d.ts","start":4146},"type":{"references":[{"end":29,"start":15,"status":"resolved","target":{"entrypoint":".","export":"ComponentState","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":42,"start":30,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":63,"start":51,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":123,"start":111,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":239,"start":229,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":576,"start":565,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":591,"start":577,"status":"resolved","target":{"entrypoint":".","export":"HTMLDivElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"TooltipState = ComponentState<TooltipSlots> & Pick<TooltipProps, 'mountNode' | 'relationship'> & Required<Pick<TooltipProps, 'appearance' | 'hideDelay' | 'positioning' | 'showDelay' | 'visible' | 'withArrow'>> & {\n children?: JSXElement | null;\n /**\n * Whether positioning has determined that the tooltip or its target is outside its clipping boundary.\n */\n hidden?: boolean;\n /**\n * Whether the tooltip should be rendered to the DOM.\n */\n shouldRenderTooltip?: boolean;\n /**\n * Ref to the arrow element\n */\n arrowRef?: React_2.Ref<HTMLDivElement>;\n /**\n * CSS class for the arrow element\n */\n arrowClassName?: string;\n}"}}],"effectiveType":{"members":[{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"normal","documentation":"The tooltip's visual appearance.\n* `normal` - Uses the theme's background and text colors.\n* `inverted` - Higher contrast variant that uses the theme's inverted colors.","kind":"property","name":"appearance","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"\"normal\" | \"inverted\""}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"CSS class for the arrow element","kind":"property","name":"arrowClassName","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"string"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"Ref to the arrow element","kind":"property","name":"arrowRef","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"React_2.Ref<HTMLDivElement>"}},{"declarationPackages":["@fluentui/react-tooltip"],"kind":"property","name":"children","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"JSXElement"}},{"declarationPackages":["@fluentui/react-utilities"],"deprecated":"The base element type for each slot.\nThis property is deprecated and will be removed in a future version.\nThe slot base element type is declared through `slot.*(slotShorthand, {elementType: ElementType})` instead.","kind":"property","name":"components","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"{ content: React_2.ElementType<any, keyof React_2.JSX.IntrinsicElements>; }"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"The text or JSX content of the tooltip.","kind":"property","name":"content","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"Omit<{ as?: \"div\"; } & Omit<React_2.DetailedHTMLProps<React_2.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, \"children\"> & { children?: any; }, \"children\"> & { children?: any; }"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"Whether positioning has determined that the tooltip or its target is outside its clipping boundary.","kind":"property","name":"hidden","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"250","documentation":"Delay before the tooltip is hidden, in milliseconds.","kind":"property","name":"hideDelay","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"number"}},{"declarationPackages":["@fluentui/react-portal"],"defaultValue":"a new element on document.body without any styling","documentation":"Where the portal children are mounted on DOM","kind":"property","name":"mountNode","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"HTMLElement | { element?: HTMLElement | null; className?: string; }"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"above","documentation":"Configure the positioning of the tooltip","kind":"property","name":"positioning","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"PositioningShorthand"}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"(Required) Specifies whether this tooltip is acting as the description or label of its trigger element.\n\n* `label` - The tooltip sets the trigger's aria-label or aria-labelledby attribute. This is useful for buttons\n displaying only an icon, for example.\n* `description` - The tooltip sets the trigger's aria-description or aria-describedby attribute.\n* `inaccessible` - No aria attributes are set on the trigger. This makes the tooltip's content inaccessible to\n screen readers, and should only be used if the tooltip's text is available by some other means.","kind":"property","name":"relationship","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"\"label\" | \"description\" | \"inaccessible\""}},{"declarationPackages":["@fluentui/react-tooltip"],"documentation":"Whether the tooltip should be rendered to the DOM.","kind":"property","name":"shouldRenderTooltip","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"250","documentation":"Delay before the tooltip is shown, in milliseconds.","kind":"property","name":"showDelay","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"number"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"false","documentation":"Control the tooltip's visibility programatically.\n\nThis can be used in conjunction with onVisibleChange to modify the tooltip's show and hide behavior.\n\nIf not provided, the visibility will be controlled by the tooltip itself, based on hover and focus events on the\ntrigger (child) element.","kind":"property","name":"visible","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}},{"declarationPackages":["@fluentui/react-tooltip"],"defaultValue":"false","documentation":"Render an arrow pointing to the target element","kind":"property","name":"withArrow","optional":false,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipState"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean"}}],"signatures":[],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"TooltipState"}},"fingerprint":{"algorithm":"sha256","value":"a28347bcd20ec737cf6dda54b21c038d546318375d9710fa96de241b9bb147b4"},"id":"symbol:TooltipState","name":"TooltipState","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"ComponentState","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":48,"start":36,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":108,"start":96,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":224,"start":214,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":561,"start":550,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":576,"start":562,"status":"resolved","target":{"entrypoint":".","export":"HTMLDivElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"ComponentState<TooltipSlots> & Pick<TooltipProps, 'mountNode' | 'relationship'> & Required<Pick<TooltipProps, 'appearance' | 'hideDelay' | 'positioning' | 'showDelay' | 'visible' | 'withArrow'>> & {\n children?: JSXElement | null;\n /**\n * Whether positioning has determined that the tooltip or its target is outside its clipping boundary.\n */\n hidden?: boolean;\n /**\n * Whether the tooltip should be rendered to the DOM.\n */\n shouldRenderTooltip?: boolean;\n /**\n * Ref to the arrow element\n */\n arrowRef?: React_2.Ref<HTMLDivElement>;\n /**\n * CSS class for the arrow element\n */\n arrowClassName?: string;\n}"}},{"kind":"intersection","type":{"references":[{"end":14,"start":0,"status":"resolved","target":{"entrypoint":".","export":"ComponentState","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":27,"start":15,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":48,"start":36,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":108,"start":96,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":224,"start":214,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":561,"start":550,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":576,"start":562,"status":"resolved","target":{"entrypoint":".","export":"HTMLDivElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"ComponentState<TooltipSlots> & Pick<TooltipProps, 'mountNode' | 'relationship'> & Required<Pick<TooltipProps, 'appearance' | 'hideDelay' | 'positioning' | 'showDelay' | 'visible' | 'withArrow'>> & {\n children?: JSXElement | null;\n /**\n * Whether positioning has determined that the tooltip or its target is outside its clipping boundary.\n */\n hidden?: boolean;\n /**\n * Whether the tooltip should be rendered to the DOM.\n */\n shouldRenderTooltip?: boolean;\n /**\n * Ref to the arrow element\n */\n arrowRef?: React_2.Ref<HTMLDivElement>;\n /**\n * CSS class for the arrow element\n */\n arrowClassName?: string;\n}"}},{"kind":"union","type":{"references":[],"text":"'mountNode' | 'relationship'"}},{"kind":"union","type":{"references":[],"text":"'appearance' | 'hideDelay' | 'positioning' | 'showDelay' | 'visible' | 'withArrow'"}},{"kind":"union","type":{"references":[{"end":10,"start":0,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}}],"text":"JSXElement | null"}}],"type":{"references":[{"end":29,"start":15,"status":"resolved","target":{"entrypoint":".","export":"ComponentState","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":42,"start":30,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipSlots"}},{"end":63,"start":51,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":123,"start":111,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":239,"start":229,"status":"resolved","target":{"entrypoint":".","export":"JSXElement","kind":"dependency","namespace":"type","package":"@fluentui/react-utilities"}},{"end":576,"start":565,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":591,"start":577,"status":"resolved","target":{"entrypoint":".","export":"HTMLDivElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"TooltipState = ComponentState<TooltipSlots> & Pick<TooltipProps, 'mountNode' | 'relationship'> & Required<Pick<TooltipProps, 'appearance' | 'hideDelay' | 'positioning' | 'showDelay' | 'visible' | 'withArrow'>> & {\n children?: JSXElement | null;\n /**\n * Whether positioning has determined that the tooltip or its target is outside its clipping boundary.\n */\n hidden?: boolean;\n /**\n * Whether the tooltip should be rendered to the DOM.\n */\n shouldRenderTooltip?: boolean;\n /**\n * Ref to the arrow element\n */\n arrowRef?: React_2.Ref<HTMLDivElement>;\n /**\n * CSS class for the arrow element\n */\n arrowClassName?: string;\n}"}},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Props"],"facet":"props"}],"declarations":[{"documentation":"The properties that are added to the child of the Tooltip","id":"symbol:TooltipTriggerProps:declaration:0","kind":"type-alias","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":23,"start":12,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":65,"start":43,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":77,"start":66,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"{\n ref?: React_2.Ref<unknown>;\n} & Pick<React_2.HTMLAttributes<HTMLElement>, 'aria-describedby' | 'aria-label' | 'aria-labelledby' | 'onBlur' | 'onFocus' | 'onPointerEnter' | 'onPointerLeave' | 'aria-haspopup' | 'aria-expanded'>"}},{"kind":"intersection","type":{"references":[{"end":23,"start":12,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":65,"start":43,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":77,"start":66,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"{\n ref?: React_2.Ref<unknown>;\n} & Pick<React_2.HTMLAttributes<HTMLElement>, 'aria-describedby' | 'aria-label' | 'aria-labelledby' | 'onBlur' | 'onFocus' | 'onPointerEnter' | 'onPointerLeave' | 'aria-haspopup' | 'aria-expanded'>"}},{"kind":"union","type":{"references":[],"text":"'aria-describedby' | 'aria-label' | 'aria-labelledby' | 'onBlur' | 'onFocus' | 'onPointerEnter' | 'onPointerLeave' | 'aria-haspopup' | 'aria-expanded'"}}],"source":{"end":5191,"file":"dist/index.d.ts","start":4917},"type":{"references":[{"end":45,"start":34,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":87,"start":65,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":99,"start":88,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"TooltipTriggerProps = {\n ref?: React_2.Ref<unknown>;\n} & Pick<React_2.HTMLAttributes<HTMLElement>, 'aria-describedby' | 'aria-label' | 'aria-labelledby' | 'onBlur' | 'onFocus' | 'onPointerEnter' | 'onPointerLeave' | 'aria-haspopup' | 'aria-expanded'>"}}],"effectiveType":{"members":[{"declarationPackages":["@types/react"],"documentation":"Identifies the element (or elements) that describes the object.","kind":"property","name":"aria-describedby","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"string"}},{"declarationPackages":["@types/react"],"documentation":"Indicates whether the element, or another grouping element it controls, is currently expanded or collapsed.","kind":"property","name":"aria-expanded","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"false | true | \"false\" | \"true\""}},{"declarationPackages":["@types/react"],"documentation":"Indicates the availability and type of interactive popup element, such as menu or dialog, that can be triggered by an element.","kind":"property","name":"aria-haspopup","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"boolean | \"dialog\" | \"menu\" | \"false\" | \"true\" | \"listbox\" | \"tree\" | \"grid\""}},{"declarationPackages":["@types/react"],"documentation":"Defines a string value that labels the current element.","kind":"property","name":"aria-label","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"string"}},{"declarationPackages":["@types/react"],"documentation":"Identifies the element (or elements) that labels the current element.","kind":"property","name":"aria-labelledby","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"string"}},{"declarationPackages":["@types/react"],"kind":"property","name":"onBlur","optional":true,"readonly":false,"signatures":[{"id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"event","optional":false,"rest":false,"type":{"references":[],"text":"React_2.FocusEvent<HTMLElement, Element>"}}],"returnType":{"references":[],"text":"void"},"typeParameters":[]}],"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"React_2.FocusEventHandler<HTMLElement>"}},{"declarationPackages":["@types/react"],"kind":"property","name":"onFocus","optional":true,"readonly":false,"signatures":[{"id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"event","optional":false,"rest":false,"type":{"references":[],"text":"React_2.FocusEvent<HTMLElement, Element>"}}],"returnType":{"references":[],"text":"void"},"typeParameters":[]}],"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"React_2.FocusEventHandler<HTMLElement>"}},{"declarationPackages":["@types/react"],"kind":"property","name":"onPointerEnter","optional":true,"readonly":false,"signatures":[{"id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"event","optional":false,"rest":false,"type":{"references":[],"text":"React_2.PointerEvent<HTMLElement>"}}],"returnType":{"references":[],"text":"void"},"typeParameters":[]}],"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"React_2.PointerEventHandler<HTMLElement>"}},{"declarationPackages":["@types/react"],"kind":"property","name":"onPointerLeave","optional":true,"readonly":false,"signatures":[{"id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"event","optional":false,"rest":false,"type":{"references":[],"text":"React_2.PointerEvent<HTMLElement>"}}],"returnType":{"references":[],"text":"void"},"typeParameters":[]}],"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"React_2.PointerEventHandler<HTMLElement>"}},{"declarationPackages":["@fluentui/react-tooltip"],"kind":"property","name":"ref","optional":true,"readonly":false,"sources":[{"kind":"local","symbol":"symbol:TooltipTriggerProps"}],"status":{"status":"complete"},"type":{"references":[],"text":"React_2.Ref<unknown>"}}],"signatures":[],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"TooltipTriggerProps"}},"fingerprint":{"algorithm":"sha256","value":"8fcac28d0c13bb58ba51def99b6a9e32b10655e52b19e4acd3797698fade12a2"},"id":"symbol:TooltipTriggerProps","name":"TooltipTriggerProps","namespaces":["type"],"relationships":[{"kind":"alias","type":{"references":[{"end":23,"start":12,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":65,"start":43,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":77,"start":66,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"{\n ref?: React_2.Ref<unknown>;\n} & Pick<React_2.HTMLAttributes<HTMLElement>, 'aria-describedby' | 'aria-label' | 'aria-labelledby' | 'onBlur' | 'onFocus' | 'onPointerEnter' | 'onPointerLeave' | 'aria-haspopup' | 'aria-expanded'>"}},{"kind":"intersection","type":{"references":[{"end":23,"start":12,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":65,"start":43,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":77,"start":66,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"{\n ref?: React_2.Ref<unknown>;\n} & Pick<React_2.HTMLAttributes<HTMLElement>, 'aria-describedby' | 'aria-label' | 'aria-labelledby' | 'onBlur' | 'onFocus' | 'onPointerEnter' | 'onPointerLeave' | 'aria-haspopup' | 'aria-expanded'>"}},{"kind":"union","type":{"references":[],"text":"'aria-describedby' | 'aria-label' | 'aria-labelledby' | 'onBlur' | 'onFocus' | 'onPointerEnter' | 'onPointerLeave' | 'aria-haspopup' | 'aria-expanded'"}}],"type":{"references":[{"end":45,"start":34,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":87,"start":65,"status":"resolved","target":{"entrypoint":".","export":"*","kind":"dependency","namespace":"type","package":"react"}},{"end":99,"start":88,"status":"resolved","target":{"entrypoint":".","export":"HTMLElement","kind":"dependency","namespace":"type","package":"typescript"}}],"text":"TooltipTriggerProps = {\n ref?: React_2.Ref<unknown>;\n} & Pick<React_2.HTMLAttributes<HTMLElement>, 'aria-describedby' | 'aria-label' | 'aria-labelledby' | 'onBlur' | 'onFocus' | 'onPointerEnter' | 'onPointerLeave' | 'aria-haspopup' | 'aria-expanded'>"}},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the useX hook convention"],"facet":"hook"}],"declarations":[{"documentation":"Create the state required to render Tooltip.\n\nThe returned state can be modified with hooks such as useTooltipStyles_unstable,\nbefore being passed to renderTooltip_unstable.","id":"symbol:useTooltip_unstable:declaration:0","kind":"variable","namespaces":["value"],"signatures":[{"documentation":"Create the state required to render Tooltip.\n\nThe returned state can be modified with hooks such as useTooltipStyles_unstable,\nbefore being passed to renderTooltip_unstable.","id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"props","optional":false,"rest":false,"type":{"references":[],"text":"TooltipProps"}}],"returnType":{"references":[],"text":"TooltipState"},"source":{"end":5522,"file":"dist/index.d.ts","start":5485},"typeParameters":[]}],"source":{"end":5522,"file":"dist/index.d.ts","start":5464},"type":{"references":[{"end":20,"start":8,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":37,"start":25,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}}],"text":"(props: TooltipProps) => TooltipState"}}],"effectiveType":{"members":[],"signatures":[{"documentation":"Create the state required to render Tooltip.\n\nThe returned state can be modified with hooks such as useTooltipStyles_unstable,\nbefore being passed to renderTooltip_unstable.","id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"props","optional":false,"rest":false,"type":{"references":[],"text":"TooltipProps"}}],"returnType":{"references":[],"text":"TooltipState"},"source":{"end":5522,"file":"dist/index.d.ts","start":5485},"typeParameters":[]}],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"(props: TooltipProps) => TooltipState"}},"fingerprint":{"algorithm":"sha256","value":"bbeca9187bceaa98374fd95322b7eddbb6e1407a4ba46d53e40989c5492987e3"},"id":"symbol:useTooltip_unstable","name":"useTooltip_unstable","namespaces":["value"],"relationships":[],"type":{"references":[{"end":20,"start":8,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipProps"}},{"end":37,"start":25,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}}],"text":"(props: TooltipProps) => TooltipState"}},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the useX hook convention"],"facet":"hook"}],"declarations":[{"documentation":"Create the state required to render Tooltip.\n\nThe returned state can be modified with hooks such as useTooltipStyles_unstable,\nbefore being passed to renderTooltip_unstable.","id":"symbol:useTooltipBase_unstable:declaration:0","kind":"variable","namespaces":["value"],"signatures":[{"documentation":"Create the state required to render Tooltip.\n\nThe returned state can be modified with hooks such as useTooltipStyles_unstable,\nbefore being passed to renderTooltip_unstable.","id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"props","optional":false,"rest":false,"type":{"references":[],"text":"TooltipBaseProps"}}],"returnType":{"references":[],"text":"TooltipBaseState"},"source":{"end":5866,"file":"dist/index.d.ts","start":5821},"typeParameters":[]}],"source":{"end":5866,"file":"dist/index.d.ts","start":5796},"type":{"references":[{"end":24,"start":8,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipBaseProps"}},{"end":45,"start":29,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipBaseState"}}],"text":"(props: TooltipBaseProps) => TooltipBaseState"}}],"effectiveType":{"members":[],"signatures":[{"documentation":"Create the state required to render Tooltip.\n\nThe returned state can be modified with hooks such as useTooltipStyles_unstable,\nbefore being passed to renderTooltip_unstable.","id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"props","optional":false,"rest":false,"type":{"references":[],"text":"TooltipBaseProps"}}],"returnType":{"references":[],"text":"TooltipBaseState"},"source":{"end":5866,"file":"dist/index.d.ts","start":5821},"typeParameters":[]}],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"(props: TooltipBaseProps) => TooltipBaseState"}},"fingerprint":{"algorithm":"sha256","value":"8658c3c844f760c8f59a0c13d8d7b0e66ee85ba99bdad136d4599b16a0efa0ce"},"id":"symbol:useTooltipBase_unstable","name":"useTooltipBase_unstable","namespaces":["value"],"relationships":[],"type":{"references":[{"end":24,"start":8,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipBaseProps"}},{"end":45,"start":29,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipBaseState"}}],"text":"(props: TooltipBaseProps) => TooltipBaseState"}},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the useX hook convention"],"facet":"hook"}],"declarations":[{"documentation":"Apply styling to the Tooltip slots based on the state","id":"symbol:useTooltipStyles_unstable:declaration:0","kind":"variable","namespaces":["value"],"signatures":[{"documentation":"Apply styling to the Tooltip slots based on the state","id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"state","optional":false,"rest":false,"type":{"references":[],"text":"TooltipState"}}],"returnType":{"references":[],"text":"TooltipState"},"source":{"end":6019,"file":"dist/index.d.ts","start":5982},"typeParameters":[]}],"source":{"end":6019,"file":"dist/index.d.ts","start":5955},"type":{"references":[{"end":20,"start":8,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}},{"end":37,"start":25,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}}],"text":"(state: TooltipState) => TooltipState"}}],"effectiveType":{"members":[],"signatures":[{"documentation":"Apply styling to the Tooltip slots based on the state","id":"signature:call:0","kind":"call","overload":0,"parameters":[{"name":"state","optional":false,"rest":false,"type":{"references":[],"text":"TooltipState"}}],"returnType":{"references":[],"text":"TooltipState"},"source":{"end":6019,"file":"dist/index.d.ts","start":5982},"typeParameters":[]}],"status":{"reasons":["checker-rendered effective type expressions do not include semantic reference spans"],"status":"partial"},"type":{"references":[],"text":"(state: TooltipState) => TooltipState"}},"fingerprint":{"algorithm":"sha256","value":"dc7b60aeb34092c6c85e3586f63a40432c08c034a9c29553de6eff67a9344f24"},"id":"symbol:useTooltipStyles_unstable","name":"useTooltipStyles_unstable","namespaces":["value"],"relationships":[],"type":{"references":[{"end":20,"start":8,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}},{"end":37,"start":25,"status":"resolved","target":{"kind":"local","symbol":"symbol:TooltipState"}}],"text":"(state: TooltipState) => TooltipState"}}]}
@@ -1 +0,0 @@
1
- {"capabilities":{"api":{"status":"supported"},"effectiveTypes":{"reasons":["checker-derived type strings do not carry semantic reference spans"],"status":"partial"},"guidance":{"reasons":["guidance is outside the declaration generator MVP"],"status":"unsupported"},"search":{"reasons":["search is outside the declaration generator MVP"],"status":"unsupported"}},"completeness":{"api":{"status":"complete"},"guidance":{"reasons":["not generated"],"status":"unavailable"},"search":{"reasons":["not generated"],"status":"unavailable"}},"declarationInputs":[{"conditions":["types","require"],"fingerprint":{"algorithm":"sha256","value":"c14e26eec2ef1777d6ac7c81662213c8da996108a9bd885064ea745e5d56ac66"},"path":"dist/index.d.cts"},{"conditions":["types","import"],"fingerprint":{"algorithm":"sha256","value":"c14e26eec2ef1777d6ac7c81662213c8da996108a9bd885064ea745e5d56ac66"},"path":"dist/index.d.ts"}],"diagnostics":[],"exports":[{"classifications":[{"confidence":"heuristic","evidence":["no stronger product facet matched"],"facet":"utility"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"OnVisibleChangeData","exportKind":"named","id":"route:root:OnVisibleChangeData:type:types-import","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:OnVisibleChangeData"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["no stronger product facet matched"],"facet":"utility"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"OnVisibleChangeData","exportKind":"named","id":"route:root:OnVisibleChangeData:type:types-require","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:OnVisibleChangeData"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the renderX convention"],"facet":"render"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"renderTooltip_unstable","exportKind":"named","id":"route:root:renderTooltip_unstable:value:types-import","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:renderTooltip_unstable"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the renderX convention"],"facet":"render"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"renderTooltip_unstable","exportKind":"named","id":"route:root:renderTooltip_unstable:value:types-require","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:renderTooltip_unstable"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["no stronger product facet matched"],"facet":"utility"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"Tooltip","exportKind":"named","id":"route:root:Tooltip:value:types-import","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:Tooltip"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["no stronger product facet matched"],"facet":"utility"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"Tooltip","exportKind":"named","id":"route:root:Tooltip:value:types-require","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:Tooltip"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Props"],"facet":"props"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"TooltipBaseProps","exportKind":"named","id":"route:root:TooltipBaseProps:type:types-import","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipBaseProps"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Props"],"facet":"props"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"TooltipBaseProps","exportKind":"named","id":"route:root:TooltipBaseProps:type:types-require","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipBaseProps"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with State"],"facet":"state"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"TooltipBaseState","exportKind":"named","id":"route:root:TooltipBaseState:type:types-import","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipBaseState"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with State"],"facet":"state"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"TooltipBaseState","exportKind":"named","id":"route:root:TooltipBaseState:type:types-require","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipBaseState"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["no stronger product facet matched"],"facet":"utility"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"tooltipClassNames","exportKind":"named","id":"route:root:tooltipClassNames:value:types-import","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:tooltipClassNames"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["no stronger product facet matched"],"facet":"utility"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"tooltipClassNames","exportKind":"named","id":"route:root:tooltipClassNames:value:types-require","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:tooltipClassNames"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Props"],"facet":"props"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"TooltipProps","exportKind":"named","id":"route:root:TooltipProps:type:types-import","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipProps"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Props"],"facet":"props"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"TooltipProps","exportKind":"named","id":"route:root:TooltipProps:type:types-require","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipProps"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Slots"],"facet":"slots"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"TooltipSlots","exportKind":"named","id":"route:root:TooltipSlots:type:types-import","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipSlots"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Slots"],"facet":"slots"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"TooltipSlots","exportKind":"named","id":"route:root:TooltipSlots:type:types-require","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipSlots"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with State"],"facet":"state"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"TooltipState","exportKind":"named","id":"route:root:TooltipState:type:types-import","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipState"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with State"],"facet":"state"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"TooltipState","exportKind":"named","id":"route:root:TooltipState:type:types-require","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipState"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Props"],"facet":"props"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"TooltipTriggerProps","exportKind":"named","id":"route:root:TooltipTriggerProps:type:types-import","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipTriggerProps"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name ends with Props"],"facet":"props"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"TooltipTriggerProps","exportKind":"named","id":"route:root:TooltipTriggerProps:type:types-require","namespace":"type","target":{"kind":"local","record":"api:root","symbol":"symbol:TooltipTriggerProps"},"typeOnly":true},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the useX hook convention"],"facet":"hook"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"useTooltip_unstable","exportKind":"named","id":"route:root:useTooltip_unstable:value:types-import","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:useTooltip_unstable"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the useX hook convention"],"facet":"hook"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"useTooltip_unstable","exportKind":"named","id":"route:root:useTooltip_unstable:value:types-require","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:useTooltip_unstable"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the useX hook convention"],"facet":"hook"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"useTooltipBase_unstable","exportKind":"named","id":"route:root:useTooltipBase_unstable:value:types-import","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:useTooltipBase_unstable"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the useX hook convention"],"facet":"hook"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"useTooltipBase_unstable","exportKind":"named","id":"route:root:useTooltipBase_unstable:value:types-require","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:useTooltipBase_unstable"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the useX hook convention"],"facet":"hook"}],"conditions":["types","import"],"declarationInputs":["dist/index.d.ts"],"entrypoint":".","export":"useTooltipStyles_unstable","exportKind":"named","id":"route:root:useTooltipStyles_unstable:value:types-import","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:useTooltipStyles_unstable"},"typeOnly":false},{"classifications":[{"confidence":"heuristic","evidence":["export name follows the useX hook convention"],"facet":"hook"}],"conditions":["types","require"],"declarationInputs":["dist/index.d.cts"],"entrypoint":".","export":"useTooltipStyles_unstable","exportKind":"named","id":"route:root:useTooltipStyles_unstable:value:types-require","namespace":"value","target":{"kind":"local","record":"api:root","symbol":"symbol:useTooltipStyles_unstable"},"typeOnly":false}],"generator":{"name":"@fluentui/api-metadata","version":"0.0.0"},"kind":"package-index","package":{"name":"@fluentui/react-tooltip","version":"9.74.7-experimental.cli-api.20261006-ccaa611d58.0"},"records":[{"fingerprint":{"algorithm":"sha256","value":"0503288d7782923fe190e5902570f56f9dc3b54907600da6aa78d3e476d543e4"},"id":"api:root","kind":"api","path":"api/api-root.json","symbols":["symbol:OnVisibleChangeData","symbol:renderTooltip_unstable","symbol:Tooltip","symbol:TooltipBaseProps","symbol:TooltipBaseState","symbol:tooltipClassNames","symbol:TooltipProps","symbol:TooltipSlots","symbol:TooltipState","symbol:TooltipTriggerProps","symbol:useTooltip_unstable","symbol:useTooltipBase_unstable","symbol:useTooltipStyles_unstable"]}],"schema":{"major":1,"revision":5},"system":"fluent-v9"}