@sanity/ui 4.0.0-next.3 → 4.0.0-next.5
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/README.md +4 -0
- package/dist/_system-CTe2lb5l.d.ts +40 -0
- package/dist/_system-CTe2lb5l.d.ts.map +1 -0
- package/dist/arrow-BG0EMNiC.js +159 -0
- package/dist/arrow-BG0EMNiC.js.map +1 -0
- package/dist/autocomplete.d.ts +140 -0
- package/dist/autocomplete.d.ts.map +1 -0
- package/dist/autocomplete.js +468 -0
- package/dist/autocomplete.js.map +1 -0
- package/dist/breadcrumbs.d.ts +18 -0
- package/dist/breadcrumbs.d.ts.map +1 -0
- package/dist/breadcrumbs.js +112 -0
- package/dist/breadcrumbs.js.map +1 -0
- package/dist/button-BzoZs3Sl.d.ts +76 -0
- package/dist/button-BzoZs3Sl.d.ts.map +1 -0
- package/dist/button-DZkAQOL2.js +174 -0
- package/dist/button-DZkAQOL2.js.map +1 -0
- package/dist/card-C0a0wQTc.d.ts +7 -0
- package/dist/card-C0a0wQTc.d.ts.map +1 -0
- package/dist/code.d.ts +20 -0
- package/dist/code.d.ts.map +1 -0
- package/dist/code.js +85 -0
- package/dist/code.js.map +1 -0
- package/dist/codeFontStyle-DYUujk7K.js +11 -0
- package/dist/codeFontStyle-DYUujk7K.js.map +1 -0
- package/dist/component-DVlwaWB-.d.ts +25 -0
- package/dist/component-DVlwaWB-.d.ts.map +1 -0
- package/dist/element-BYgCE_iK.js +51 -0
- package/dist/element-BYgCE_iK.js.map +1 -0
- package/dist/{getScopedTheme-CqaSCfTH.js → factory-CvRcEQ36.js} +6 -753
- package/dist/factory-CvRcEQ36.js.map +1 -0
- package/dist/flex-BYRpBTOc.js +69 -0
- package/dist/flex-BYRpBTOc.js.map +1 -0
- package/dist/font-EtfxKPUz.d.ts +49 -0
- package/dist/font-EtfxKPUz.d.ts.map +1 -0
- package/dist/getElementRef-5HZQ-Owu.js +91 -0
- package/dist/getElementRef-5HZQ-Owu.js.map +1 -0
- package/dist/getScopedTheme-C-sZsyAz.js +267 -0
- package/dist/getScopedTheme-C-sZsyAz.js.map +1 -0
- package/dist/getTheme_v2-y09KqtEb.js +487 -0
- package/dist/getTheme_v2-y09KqtEb.js.map +1 -0
- package/dist/grid-D88j-N7f.js +108 -0
- package/dist/grid-D88j-N7f.js.map +1 -0
- package/dist/helpers-bwfx1e-Y.js +67 -0
- package/dist/helpers-bwfx1e-Y.js.map +1 -0
- package/dist/hotkeys-B08HIKNu.js +145 -0
- package/dist/hotkeys-B08HIKNu.js.map +1 -0
- package/dist/index.d.ts +139 -926
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +421 -4686
- package/dist/index.js.map +1 -1
- package/dist/layer-BQfdK7rt.d.ts +242 -0
- package/dist/layer-BQfdK7rt.d.ts.map +1 -0
- package/dist/layer-BdkSGATt.js +56 -0
- package/dist/layer-BdkSGATt.js.map +1 -0
- package/dist/menu.d.ts +146 -0
- package/dist/menu.d.ts.map +1 -0
- package/dist/menu.js +602 -0
- package/dist/menu.js.map +1 -0
- package/dist/popover-DmmmSNzL.d.ts +96 -0
- package/dist/popover-DmmmSNzL.d.ts.map +1 -0
- package/dist/popover-Iy6EZEmv.js +406 -0
- package/dist/popover-Iy6EZEmv.js.map +1 -0
- package/dist/popover.d.ts +2 -0
- package/dist/popover.js +3 -0
- package/dist/responsiveFont-hN1mZFjm.js +55 -0
- package/dist/responsiveFont-hN1mZFjm.js.map +1 -0
- package/dist/{rgba-LmTDhX0u.d.ts → rgba-BSYaEUW6.d.ts} +4 -87
- package/dist/rgba-BSYaEUW6.d.ts.map +1 -0
- package/dist/selectable-B0GUIL74.d.ts +7 -0
- package/dist/selectable-B0GUIL74.d.ts.map +1 -0
- package/dist/stack-C5WV-BRh.js +98 -0
- package/dist/stack-C5WV-BRh.js.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/textInput-IbiDH7Jc.js +315 -0
- package/dist/textInput-IbiDH7Jc.js.map +1 -0
- package/dist/theme.d.ts +3 -1
- package/dist/theme.d.ts.map +1 -1
- package/dist/theme.js +3 -1
- package/dist/theme.js.map +1 -1
- package/dist/toast.d.ts +73 -0
- package/dist/toast.d.ts.map +1 -0
- package/dist/toast.js +297 -0
- package/dist/toast.js.map +1 -0
- package/dist/tooltip.d.ts +88 -0
- package/dist/tooltip.d.ts.map +1 -0
- package/dist/tooltip.js +432 -0
- package/dist/tooltip.js.map +1 -0
- package/dist/useClickOutsideEvent-lEVhDFCQ.js +36 -0
- package/dist/useClickOutsideEvent-lEVhDFCQ.js.map +1 -0
- package/dist/useElementSize-BJvbGHq8.js +51 -0
- package/dist/useElementSize-BJvbGHq8.js.map +1 -0
- package/dist/useLayer-9Pz-GG0r.js +704 -0
- package/dist/useLayer-9Pz-GG0r.js.map +1 -0
- package/package.json +15 -4
- package/dist/getScopedTheme-CqaSCfTH.js.map +0 -1
- package/dist/rgba-LmTDhX0u.d.ts.map +0 -1
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { i as Delay, n as LayerProps, r as Placement } from "./layer-BQfdK7rt.js";
|
|
2
|
+
import { s as ThemeColorSchemeKey } from "./_system-CTe2lb5l.js";
|
|
3
|
+
/**
|
|
4
|
+
* @public
|
|
5
|
+
*/
|
|
6
|
+
interface TooltipProps extends Omit<LayerProps, 'as'> {
|
|
7
|
+
/** @deprecated Use `fallbackPlacements` instead. */
|
|
8
|
+
allowedAutoPlacements?: never;
|
|
9
|
+
arrow?: boolean;
|
|
10
|
+
boundaryElement?: HTMLElement | null;
|
|
11
|
+
children?: React.JSX.Element;
|
|
12
|
+
content?: React.ReactNode;
|
|
13
|
+
disabled?: boolean;
|
|
14
|
+
fallbackPlacements?: Placement[];
|
|
15
|
+
padding?: number | number[];
|
|
16
|
+
placement?: Placement;
|
|
17
|
+
/** Whether or not to render the tooltip in a portal element. */
|
|
18
|
+
portal?: boolean | string;
|
|
19
|
+
radius?: number | number[];
|
|
20
|
+
scheme?: ThemeColorSchemeKey;
|
|
21
|
+
shadow?: number | number[];
|
|
22
|
+
/**
|
|
23
|
+
* Adds a delay to open or close the tooltip.
|
|
24
|
+
*
|
|
25
|
+
* If only a `number` is passed, it will be used for both opening and closing.
|
|
26
|
+
*
|
|
27
|
+
* If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.
|
|
28
|
+
*
|
|
29
|
+
* @public
|
|
30
|
+
* @defaultValue 0
|
|
31
|
+
*/
|
|
32
|
+
delay?: Delay;
|
|
33
|
+
/**
|
|
34
|
+
* Whether the tooltip should animate in and out.
|
|
35
|
+
*
|
|
36
|
+
* @beta
|
|
37
|
+
* @defaultValue false
|
|
38
|
+
*/
|
|
39
|
+
animate?: boolean;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Tooltips display information when hovering, focusing or tapping.
|
|
43
|
+
*
|
|
44
|
+
* @public
|
|
45
|
+
*/
|
|
46
|
+
declare const Tooltip: (props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>) => import("react").JSX.Element;
|
|
47
|
+
/**
|
|
48
|
+
* @beta
|
|
49
|
+
*/
|
|
50
|
+
interface TooltipDelayGroupContextValue {
|
|
51
|
+
setIsGroupActive: (nextState: React.SetStateAction<boolean>, delay?: number | undefined) => void;
|
|
52
|
+
setOpenTooltipId: (nextId: string | null, delay?: number | undefined) => void;
|
|
53
|
+
openDelay: number;
|
|
54
|
+
closeDelay: number;
|
|
55
|
+
openTooltipId: string | null;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* @beta
|
|
59
|
+
*/
|
|
60
|
+
declare const TooltipDelayGroupContext: import("react").Context<TooltipDelayGroupContextValue | null>;
|
|
61
|
+
/**
|
|
62
|
+
* @public
|
|
63
|
+
* */
|
|
64
|
+
interface TooltipDelayGroupProviderProps {
|
|
65
|
+
children?: React.ReactNode;
|
|
66
|
+
/**
|
|
67
|
+
* Handles the delays to open or close a tooltip inside a group
|
|
68
|
+
*
|
|
69
|
+
* If only a `number` is passed, it will be used for both opening and closing.
|
|
70
|
+
*
|
|
71
|
+
* If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.
|
|
72
|
+
*
|
|
73
|
+
* @public
|
|
74
|
+
*/
|
|
75
|
+
delay: Delay;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* @public
|
|
79
|
+
* Provides context for a group of tooltip elements that should share a delay
|
|
80
|
+
* which temporarily becomes 1 ms after the first floating element of the group opens.
|
|
81
|
+
*/
|
|
82
|
+
declare function TooltipDelayGroupProvider(props: TooltipDelayGroupProviderProps): React.JSX.Element;
|
|
83
|
+
/**
|
|
84
|
+
* @beta
|
|
85
|
+
*/
|
|
86
|
+
declare function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null;
|
|
87
|
+
export { Tooltip, TooltipDelayGroupContext, type TooltipDelayGroupContextValue, TooltipDelayGroupProvider, type TooltipDelayGroupProviderProps, type TooltipProps, useTooltipDelayGroup };
|
|
88
|
+
//# sourceMappingURL=tooltip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","names":[],"sources":["../src/core/primitives/tooltip/tooltip.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/types.ts","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts"],"mappings":";;;;;UAuDiB,qBAAqB,KAAK;;EAEzC;EACA;EACA,kBAAkB;EAClB,WAAW,MAAM,IAAI;EACrB,UAAU,MAAM;EAChB;EACA,qBAAqB;EACrB;EACA,YAAY;;EAEZ;EACA;EACA,SAAS;EACT;;;;;;;;;;;EAWA,QAAQ;;;;;;;EAOR;;;;;;;cAYW,UAAO,OACX,eAAe,KAAK,MAAM,UAAU,oEAA+C,IAAA;;;;UClG3E;EAEf,mBAAmB,WAAW,MAAM,yBAAyB;EAE7D,mBAAmB,uBAAuB;EAC1C;EACA;EACA;;;;;cCJW,0CAAwB,QAAA;;;;UCIpB;EACf,WAAW,MAAM;;;;;;;;;;EAUjB,OAAO;;;;;;;iBAQO,0BACd,OAAO,iCACN,MAAM,IAAI;;;;iBCvBG,wBAAwB"}
|
package/dist/tooltip.js
ADDED
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { c as POPOVER_MOTION_PROPS, n as _getArrayProp } from "./helpers-bwfx1e-Y.js";
|
|
3
|
+
import { _ as useTheme_v2, d as createGlobalScopedContext, i as usePrefersReducedMotion, s as Card } from "./useLayer-9Pz-GG0r.js";
|
|
4
|
+
import { n as AnimateActivity, r as origin, t as getElementRef } from "./getElementRef-5HZQ-Owu.js";
|
|
5
|
+
import { a as useBoundaryElement, n as Portal, r as usePortal, t as Arrow } from "./arrow-BG0EMNiC.js";
|
|
6
|
+
import { t as Layer } from "./layer-BdkSGATt.js";
|
|
7
|
+
import { c } from "react/compiler-runtime";
|
|
8
|
+
import { Activity, cloneElement, useContext, useEffect, useId, useImperativeHandle, useLayoutEffect, useRef, useState } from "react";
|
|
9
|
+
import { styled } from "styled-components";
|
|
10
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { arrow, autoUpdate, flip, offset, shift, useFloating } from "@floating-ui/react-dom";
|
|
12
|
+
import { motion } from "motion/react";
|
|
13
|
+
import { useEffectEvent } from "use-effect-event";
|
|
14
|
+
/**
|
|
15
|
+
* @beta
|
|
16
|
+
*/
|
|
17
|
+
function useDelayedState(initialState) {
|
|
18
|
+
let $ = c(5), [state, setState] = useState(initialState), delayedAction = useRef(void 0), t0;
|
|
19
|
+
$[0] === Symbol.for("react.memo_cache_sentinel") ? (t0 = (nextState, delay) => {
|
|
20
|
+
let action = () => {
|
|
21
|
+
setState(nextState);
|
|
22
|
+
};
|
|
23
|
+
if (delayedAction.current &&= (clearTimeout(delayedAction.current), void 0), !delay) return action();
|
|
24
|
+
delayedAction.current = setTimeout(action, delay);
|
|
25
|
+
}, $[0] = t0) : t0 = $[0];
|
|
26
|
+
let onStateChange = t0, t1, t2;
|
|
27
|
+
$[1] === Symbol.for("react.memo_cache_sentinel") ? (t1 = () => () => {
|
|
28
|
+
delayedAction.current && clearTimeout(delayedAction.current);
|
|
29
|
+
}, t2 = [], $[1] = t1, $[2] = t2) : (t1 = $[1], t2 = $[2]), useEffect(t1, t2);
|
|
30
|
+
let t3;
|
|
31
|
+
return $[3] === state ? t3 = $[4] : (t3 = [state, onStateChange], $[3] = state, $[4] = t3), t3;
|
|
32
|
+
}
|
|
33
|
+
const DEFAULT_FALLBACK_PLACEMENTS = {
|
|
34
|
+
top: [
|
|
35
|
+
"top-end",
|
|
36
|
+
"top-start",
|
|
37
|
+
"bottom",
|
|
38
|
+
"left",
|
|
39
|
+
"right"
|
|
40
|
+
],
|
|
41
|
+
"top-start": [
|
|
42
|
+
"top",
|
|
43
|
+
"top-end",
|
|
44
|
+
"bottom-start",
|
|
45
|
+
"left-start",
|
|
46
|
+
"right-start"
|
|
47
|
+
],
|
|
48
|
+
"top-end": [
|
|
49
|
+
"top",
|
|
50
|
+
"top-start",
|
|
51
|
+
"bottom-end",
|
|
52
|
+
"left-end",
|
|
53
|
+
"right-end"
|
|
54
|
+
],
|
|
55
|
+
bottom: [
|
|
56
|
+
"bottom-end",
|
|
57
|
+
"bottom-start",
|
|
58
|
+
"top",
|
|
59
|
+
"left",
|
|
60
|
+
"right"
|
|
61
|
+
],
|
|
62
|
+
"bottom-start": [
|
|
63
|
+
"bottom",
|
|
64
|
+
"bottom-end",
|
|
65
|
+
"top-start",
|
|
66
|
+
"left-start",
|
|
67
|
+
"right-start"
|
|
68
|
+
],
|
|
69
|
+
"bottom-end": [
|
|
70
|
+
"bottom",
|
|
71
|
+
"bottom-start",
|
|
72
|
+
"top-end",
|
|
73
|
+
"left-end",
|
|
74
|
+
"right-end"
|
|
75
|
+
],
|
|
76
|
+
left: [
|
|
77
|
+
"left-end",
|
|
78
|
+
"left-start",
|
|
79
|
+
"right",
|
|
80
|
+
"top",
|
|
81
|
+
"bottom"
|
|
82
|
+
],
|
|
83
|
+
"left-start": [
|
|
84
|
+
"left",
|
|
85
|
+
"left-end",
|
|
86
|
+
"right-start",
|
|
87
|
+
"top-start",
|
|
88
|
+
"bottom-start"
|
|
89
|
+
],
|
|
90
|
+
"left-end": [
|
|
91
|
+
"left",
|
|
92
|
+
"left-start",
|
|
93
|
+
"right-end",
|
|
94
|
+
"top-end",
|
|
95
|
+
"bottom-end"
|
|
96
|
+
],
|
|
97
|
+
right: [
|
|
98
|
+
"right-end",
|
|
99
|
+
"right-start",
|
|
100
|
+
"left",
|
|
101
|
+
"top",
|
|
102
|
+
"bottom"
|
|
103
|
+
],
|
|
104
|
+
"right-start": [
|
|
105
|
+
"right",
|
|
106
|
+
"right-end",
|
|
107
|
+
"left-start",
|
|
108
|
+
"top-start",
|
|
109
|
+
"bottom-start"
|
|
110
|
+
],
|
|
111
|
+
"right-end": [
|
|
112
|
+
"right",
|
|
113
|
+
"right-start",
|
|
114
|
+
"left-end",
|
|
115
|
+
"top-end",
|
|
116
|
+
"bottom-end"
|
|
117
|
+
]
|
|
118
|
+
}, MotionCard = styled(motion.create(Card)).withConfig({
|
|
119
|
+
displayName: "MotionCard",
|
|
120
|
+
componentId: "sc-qzzn8n-0"
|
|
121
|
+
})`will-change:transform;`, TooltipCard = function TooltipCard(props) {
|
|
122
|
+
let $ = c(49), animate, arrow, arrowRef, arrowX, arrowY, children, originX, originY, padding, placement, radius, ref, restProps, scheme, shadow, style;
|
|
123
|
+
$[0] === props ? (animate = $[1], arrow = $[2], arrowRef = $[3], arrowX = $[4], arrowY = $[5], children = $[6], originX = $[7], originY = $[8], padding = $[9], placement = $[10], radius = $[11], ref = $[12], restProps = $[13], scheme = $[14], shadow = $[15], style = $[16]) : ({animate, arrow, arrowRef, arrowX, arrowY, children, originX, originY, padding, placement, radius, ref, scheme, shadow, style, ...restProps} = props, $[0] = props, $[1] = animate, $[2] = arrow, $[3] = arrowRef, $[4] = arrowX, $[5] = arrowY, $[6] = children, $[7] = originX, $[8] = originY, $[9] = padding, $[10] = placement, $[11] = radius, $[12] = ref, $[13] = restProps, $[14] = scheme, $[15] = shadow, $[16] = style);
|
|
124
|
+
let t0 = animate ? "transform" : void 0, t1;
|
|
125
|
+
$[17] !== originX || $[18] !== originY || $[19] !== style || $[20] !== t0 ? (t1 = {
|
|
126
|
+
originX,
|
|
127
|
+
originY,
|
|
128
|
+
willChange: t0,
|
|
129
|
+
...style
|
|
130
|
+
}, $[17] = originX, $[18] = originY, $[19] = style, $[20] = t0, $[21] = t1) : t1 = $[21];
|
|
131
|
+
let rootStyle = t1, t2 = arrowX === null ? void 0 : arrowX, t3 = arrowY === null ? void 0 : arrowY, t4;
|
|
132
|
+
$[22] !== t2 || $[23] !== t3 ? (t4 = {
|
|
133
|
+
left: t2,
|
|
134
|
+
top: t3,
|
|
135
|
+
right: void 0,
|
|
136
|
+
bottom: void 0
|
|
137
|
+
}, $[22] = t2, $[23] = t3, $[24] = t4) : t4 = $[24];
|
|
138
|
+
let arrowStyle = t4, t5 = restProps, t6;
|
|
139
|
+
$[25] === animate ? t6 = $[26] : (t6 = animate ? ["hidden", "initial"] : void 0, $[25] = animate, $[26] = t6);
|
|
140
|
+
let t7;
|
|
141
|
+
$[27] === animate ? t7 = $[28] : (t7 = animate ? ["visible", "scaleIn"] : void 0, $[27] = animate, $[28] = t7);
|
|
142
|
+
let t8;
|
|
143
|
+
$[29] === animate ? t8 = $[30] : (t8 = animate ? ["hidden", "scaleOut"] : void 0, $[29] = animate, $[30] = t8);
|
|
144
|
+
let t9;
|
|
145
|
+
$[31] !== arrow || $[32] !== arrowRef || $[33] !== arrowStyle ? (t9 = arrow && /* @__PURE__ */ jsx(Arrow, {
|
|
146
|
+
ref: arrowRef,
|
|
147
|
+
style: arrowStyle,
|
|
148
|
+
width: 15,
|
|
149
|
+
height: 6,
|
|
150
|
+
radius: 2
|
|
151
|
+
}), $[31] = arrow, $[32] = arrowRef, $[33] = arrowStyle, $[34] = t9) : t9 = $[34];
|
|
152
|
+
let t10;
|
|
153
|
+
return $[35] !== children || $[36] !== padding || $[37] !== placement || $[38] !== radius || $[39] !== ref || $[40] !== rootStyle || $[41] !== scheme || $[42] !== shadow || $[43] !== t5 || $[44] !== t6 || $[45] !== t7 || $[46] !== t8 || $[47] !== t9 ? (t10 = /* @__PURE__ */ jsxs(MotionCard, {
|
|
154
|
+
"data-ui": "Tooltip__card",
|
|
155
|
+
...t5,
|
|
156
|
+
"data-placement": placement,
|
|
157
|
+
padding,
|
|
158
|
+
radius,
|
|
159
|
+
ref,
|
|
160
|
+
scheme,
|
|
161
|
+
shadow,
|
|
162
|
+
style: rootStyle,
|
|
163
|
+
variants: POPOVER_MOTION_PROPS.card,
|
|
164
|
+
transition: POPOVER_MOTION_PROPS.transition,
|
|
165
|
+
initial: t6,
|
|
166
|
+
animate: t7,
|
|
167
|
+
exit: t8,
|
|
168
|
+
children: [children, t9]
|
|
169
|
+
}), $[35] = children, $[36] = padding, $[37] = placement, $[38] = radius, $[39] = ref, $[40] = rootStyle, $[41] = scheme, $[42] = shadow, $[43] = t5, $[44] = t6, $[45] = t7, $[46] = t8, $[47] = t9, $[48] = t10) : t10 = $[48], t10;
|
|
170
|
+
}, TooltipDelayGroupContext = createGlobalScopedContext("@sanity/ui/context/tooltipDelayGroup", null);
|
|
171
|
+
/**
|
|
172
|
+
* @beta
|
|
173
|
+
*/
|
|
174
|
+
function useTooltipDelayGroup() {
|
|
175
|
+
return useContext(TooltipDelayGroupContext);
|
|
176
|
+
}
|
|
177
|
+
const StyledTooltip = styled(Layer).withConfig({
|
|
178
|
+
displayName: "StyledTooltip",
|
|
179
|
+
componentId: "sc-yxng5e-0"
|
|
180
|
+
})`pointer-events:none;`, Tooltip = function Tooltip(props) {
|
|
181
|
+
let $ = c(138), boundaryElementContext = useBoundaryElement(), { layer } = useTheme_v2(), _boundaryElement, _fallbackPlacementsProp, _zOffset, childProp, content, delay, disabled, forwardedRef, portalProp, restProps, scheme, t0, t1, t2, t3, t4, t5;
|
|
182
|
+
$[0] === props ? (_boundaryElement = $[1], _fallbackPlacementsProp = $[2], _zOffset = $[3], childProp = $[4], content = $[5], delay = $[6], disabled = $[7], forwardedRef = $[8], portalProp = $[9], restProps = $[10], scheme = $[11], t0 = $[12], t1 = $[13], t2 = $[14], t3 = $[15], t4 = $[16], t5 = $[17]) : ({animate: t0, arrow: t1, boundaryElement: _boundaryElement, children: childProp, content, disabled, fallbackPlacements: _fallbackPlacementsProp, padding: t2, placement: t3, portal: portalProp, radius: t4, ref: forwardedRef, scheme, shadow: t5, zOffset: _zOffset, delay, ...restProps} = props, $[0] = props, $[1] = _boundaryElement, $[2] = _fallbackPlacementsProp, $[3] = _zOffset, $[4] = childProp, $[5] = content, $[6] = delay, $[7] = disabled, $[8] = forwardedRef, $[9] = portalProp, $[10] = restProps, $[11] = scheme, $[12] = t0, $[13] = t1, $[14] = t2, $[15] = t3, $[16] = t4, $[17] = t5);
|
|
183
|
+
let _animate = t0 !== void 0 && t0, arrowProp = t1 !== void 0 && t1, padding = t2 === void 0 ? 2 : t2, placementProp = t3 === void 0 ? "bottom" : t3, radius = t4 === void 0 ? 2 : t4, shadow = t5 === void 0 ? 2 : t5, boundaryElement = _boundaryElement ?? boundaryElementContext?.element, fallbackPlacementsProp = _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? "bottom"], zOffset = _zOffset ?? layer.tooltip.zOffset, animate = !usePrefersReducedMotion() && _animate, t6;
|
|
184
|
+
$[18] === fallbackPlacementsProp ? t6 = $[19] : (t6 = _getArrayProp(fallbackPlacementsProp), $[18] = fallbackPlacementsProp, $[19] = t6);
|
|
185
|
+
let fallbackPlacements = t6, ref = useRef(null), [referenceElement, setReferenceElement] = useState(null), arrowRef = useRef(null), [tooltipMaxWidth, setTooltipMaxWidth] = useState(0), t7;
|
|
186
|
+
$[20] === Symbol.for("react.memo_cache_sentinel") ? (t7 = () => ref.current, $[20] = t7) : t7 = $[20], useImperativeHandle(forwardedRef, t7);
|
|
187
|
+
let portal = usePortal(), portalElement = typeof portalProp == "string" ? portal.elements?.[portalProp] || null : portal.element, t8;
|
|
188
|
+
$[21] !== animate || $[22] !== arrowProp || $[23] !== boundaryElement || $[24] !== fallbackPlacements ? (t8 = {
|
|
189
|
+
animate,
|
|
190
|
+
arrowProp,
|
|
191
|
+
arrowRef,
|
|
192
|
+
boundaryElement,
|
|
193
|
+
fallbackPlacements,
|
|
194
|
+
rootBoundary: "viewport"
|
|
195
|
+
}, $[21] = animate, $[22] = arrowProp, $[23] = boundaryElement, $[24] = fallbackPlacements, $[25] = t8) : t8 = $[25];
|
|
196
|
+
let middleware = useMiddleware(t8), t9;
|
|
197
|
+
$[26] === referenceElement ? t9 = $[27] : (t9 = { reference: referenceElement }, $[26] = referenceElement, $[27] = t9);
|
|
198
|
+
let t10;
|
|
199
|
+
$[28] !== middleware || $[29] !== placementProp || $[30] !== t9 ? (t10 = {
|
|
200
|
+
middleware,
|
|
201
|
+
placement: placementProp,
|
|
202
|
+
whileElementsMounted: autoUpdate,
|
|
203
|
+
elements: t9
|
|
204
|
+
}, $[28] = middleware, $[29] = placementProp, $[30] = t9, $[31] = t10) : t10 = $[31];
|
|
205
|
+
let { floatingStyles, placement, middlewareData, refs, update } = useFloating(t10), arrowX = middlewareData.arrow?.x, arrowY = middlewareData.arrow?.y, originX = middlewareData["@sanity/ui/origin"]?.originX, originY = middlewareData["@sanity/ui/origin"]?.originY, tooltipId = useId(), [isOpen, setIsOpen] = useDelayedState(!1), delayGroupContext = useTooltipDelayGroup(), t11;
|
|
206
|
+
$[32] === delayGroupContext ? t11 = $[33] : (t11 = delayGroupContext || {}, $[32] = delayGroupContext, $[33] = t11);
|
|
207
|
+
let { setIsGroupActive, setOpenTooltipId } = t11, showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId, isInsideGroup = delayGroupContext !== null, openDelayProp = typeof delay == "number" ? delay : delay?.open || 0, closeDelayProp = typeof delay == "number" ? delay : delay?.close || 0, openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp, closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp, t12;
|
|
208
|
+
$[34] !== closeDelay || $[35] !== isInsideGroup || $[36] !== openDelay || $[37] !== setIsGroupActive || $[38] !== setIsOpen || $[39] !== setOpenTooltipId || $[40] !== tooltipId ? (t12 = (open, immediate) => {
|
|
209
|
+
if (isInsideGroup) if (open) {
|
|
210
|
+
let groupedOpenDelay = immediate ? 0 : openDelay;
|
|
211
|
+
setIsGroupActive?.(open, groupedOpenDelay), setOpenTooltipId?.(tooltipId, groupedOpenDelay);
|
|
212
|
+
} else setIsGroupActive?.(open, closeDelay > 200 ? closeDelay : 200), setOpenTooltipId?.(null, immediate ? 0 : closeDelay);
|
|
213
|
+
else setIsOpen(open, immediate ? 0 : open ? openDelay : closeDelay);
|
|
214
|
+
}, $[34] = closeDelay, $[35] = isInsideGroup, $[36] = openDelay, $[37] = setIsGroupActive, $[38] = setIsOpen, $[39] = setOpenTooltipId, $[40] = tooltipId, $[41] = t12) : t12 = $[41];
|
|
215
|
+
let handleIsOpenChange = t12, t13;
|
|
216
|
+
$[42] !== childProp?.props || $[43] !== handleIsOpenChange ? (t13 = (e) => {
|
|
217
|
+
handleIsOpenChange(!1), childProp?.props?.onBlur?.(e);
|
|
218
|
+
}, $[42] = childProp?.props, $[43] = handleIsOpenChange, $[44] = t13) : t13 = $[44], childProp?.props;
|
|
219
|
+
let handleBlur = t13, t14;
|
|
220
|
+
$[45] !== childProp?.props || $[46] !== handleIsOpenChange ? (t14 = (e_0) => {
|
|
221
|
+
handleIsOpenChange(!1, !0), childProp?.props.onClick?.(e_0);
|
|
222
|
+
}, $[45] = childProp?.props, $[46] = handleIsOpenChange, $[47] = t14) : t14 = $[47], childProp?.props;
|
|
223
|
+
let handleClick = t14, t15;
|
|
224
|
+
$[48] !== childProp?.props || $[49] !== handleIsOpenChange ? (t15 = (e_1) => {
|
|
225
|
+
handleIsOpenChange(!1, !0), childProp?.props.onContextMenu?.(e_1);
|
|
226
|
+
}, $[48] = childProp?.props, $[49] = handleIsOpenChange, $[50] = t15) : t15 = $[50], childProp?.props;
|
|
227
|
+
let handleContextMenu = t15, t16;
|
|
228
|
+
$[51] !== childProp?.props || $[52] !== handleIsOpenChange ? (t16 = (e_2) => {
|
|
229
|
+
handleIsOpenChange(!0), childProp?.props?.onFocus?.(e_2);
|
|
230
|
+
}, $[51] = childProp?.props, $[52] = handleIsOpenChange, $[53] = t16) : t16 = $[53], childProp?.props;
|
|
231
|
+
let handleFocus = t16, t17;
|
|
232
|
+
$[54] !== childProp?.props || $[55] !== handleIsOpenChange ? (t17 = (e_3) => {
|
|
233
|
+
handleIsOpenChange(!0), childProp?.props?.onMouseEnter?.(e_3);
|
|
234
|
+
}, $[54] = childProp?.props, $[55] = handleIsOpenChange, $[56] = t17) : t17 = $[56], childProp?.props;
|
|
235
|
+
let handleMouseEnter = t17, t18;
|
|
236
|
+
$[57] !== childProp?.props || $[58] !== handleIsOpenChange ? (t18 = (e_4) => {
|
|
237
|
+
handleIsOpenChange(!1), childProp?.props?.onMouseLeave?.(e_4);
|
|
238
|
+
}, $[57] = childProp?.props, $[58] = handleIsOpenChange, $[59] = t18) : t18 = $[59], childProp?.props;
|
|
239
|
+
let handleMouseLeave = t18, t19;
|
|
240
|
+
$[60] !== handleIsOpenChange || $[61] !== isInsideGroup || $[62] !== referenceElement || $[63] !== showTooltip ? (t19 = {
|
|
241
|
+
handleIsOpenChange,
|
|
242
|
+
referenceElement,
|
|
243
|
+
showTooltip,
|
|
244
|
+
isInsideGroup
|
|
245
|
+
}, $[60] = handleIsOpenChange, $[61] = isInsideGroup, $[62] = referenceElement, $[63] = showTooltip, $[64] = t19) : t19 = $[64], useCloseOnMouseLeave(t19);
|
|
246
|
+
let t20, t21;
|
|
247
|
+
$[65] !== disabled || $[66] !== handleIsOpenChange || $[67] !== showTooltip ? (t20 = () => {
|
|
248
|
+
disabled && showTooltip && handleIsOpenChange(!1);
|
|
249
|
+
}, t21 = [
|
|
250
|
+
disabled,
|
|
251
|
+
handleIsOpenChange,
|
|
252
|
+
showTooltip
|
|
253
|
+
], $[65] = disabled, $[66] = handleIsOpenChange, $[67] = showTooltip, $[68] = t20, $[69] = t21) : (t20 = $[68], t21 = $[69]), useEffect(t20, t21);
|
|
254
|
+
let t22, t23;
|
|
255
|
+
$[70] !== content || $[71] !== handleIsOpenChange || $[72] !== showTooltip ? (t22 = () => {
|
|
256
|
+
!content && showTooltip && handleIsOpenChange(!1);
|
|
257
|
+
}, t23 = [
|
|
258
|
+
content,
|
|
259
|
+
handleIsOpenChange,
|
|
260
|
+
showTooltip
|
|
261
|
+
], $[70] = content, $[71] = handleIsOpenChange, $[72] = showTooltip, $[73] = t22, $[74] = t23) : (t22 = $[73], t23 = $[74]), useEffect(t22, t23);
|
|
262
|
+
let t24, t25;
|
|
263
|
+
$[75] !== handleIsOpenChange || $[76] !== showTooltip ? (t24 = () => {
|
|
264
|
+
if (!showTooltip) return;
|
|
265
|
+
let handleWindowKeyDown = function handleWindowKeyDown(event) {
|
|
266
|
+
event.key === "Escape" && handleIsOpenChange(!1, !0);
|
|
267
|
+
};
|
|
268
|
+
return window.addEventListener("keydown", handleWindowKeyDown), () => {
|
|
269
|
+
window.removeEventListener("keydown", handleWindowKeyDown);
|
|
270
|
+
};
|
|
271
|
+
}, t25 = [handleIsOpenChange, showTooltip], $[75] = handleIsOpenChange, $[76] = showTooltip, $[77] = t24, $[78] = t25) : (t24 = $[77], t25 = $[78]), useEffect(t24, t25);
|
|
272
|
+
let t26;
|
|
273
|
+
$[79] !== boundaryElement || $[80] !== portalElement?.offsetWidth ? (t26 = () => {
|
|
274
|
+
let availableWidths = [...boundaryElement ? [boundaryElement.offsetWidth] : [], portalElement?.offsetWidth || document.body.offsetWidth];
|
|
275
|
+
setTooltipMaxWidth(Math.min(...availableWidths) - 8);
|
|
276
|
+
}, $[79] = boundaryElement, $[80] = portalElement?.offsetWidth, $[81] = t26) : t26 = $[81];
|
|
277
|
+
let t27;
|
|
278
|
+
$[82] !== boundaryElement || $[83] !== portalElement ? (t27 = [boundaryElement, portalElement], $[82] = boundaryElement, $[83] = portalElement, $[84] = t27) : t27 = $[84], useLayoutEffect(t26, t27);
|
|
279
|
+
let t28;
|
|
280
|
+
$[85] === update ? t28 = $[86] : (t28 = (arrowEl) => {
|
|
281
|
+
arrowRef.current = arrowEl, update();
|
|
282
|
+
}, $[85] = update, $[86] = t28);
|
|
283
|
+
let setArrow = t28, t29;
|
|
284
|
+
$[87] === refs ? t29 = $[88] : (t29 = (node) => {
|
|
285
|
+
ref.current = node, refs.setFloating(node);
|
|
286
|
+
}, $[87] = refs, $[88] = t29);
|
|
287
|
+
let setFloating = t29, t30;
|
|
288
|
+
bb0: {
|
|
289
|
+
if (!childProp) {
|
|
290
|
+
t30 = null;
|
|
291
|
+
break bb0;
|
|
292
|
+
}
|
|
293
|
+
let t31;
|
|
294
|
+
$[89] !== childProp || $[90] !== handleBlur || $[91] !== handleClick || $[92] !== handleContextMenu || $[93] !== handleFocus || $[94] !== handleMouseEnter || $[95] !== handleMouseLeave ? (t31 = cloneElement(childProp, {
|
|
295
|
+
onBlur: handleBlur,
|
|
296
|
+
onFocus: handleFocus,
|
|
297
|
+
onMouseEnter: handleMouseEnter,
|
|
298
|
+
onMouseLeave: handleMouseLeave,
|
|
299
|
+
onClick: handleClick,
|
|
300
|
+
onContextMenu: handleContextMenu,
|
|
301
|
+
ref: setReferenceElement
|
|
302
|
+
}), $[89] = childProp, $[90] = handleBlur, $[91] = handleClick, $[92] = handleContextMenu, $[93] = handleFocus, $[94] = handleMouseEnter, $[95] = handleMouseLeave, $[96] = t31) : t31 = $[96], t30 = t31;
|
|
303
|
+
}
|
|
304
|
+
let child = t30, t31;
|
|
305
|
+
$[97] === childProp ? t31 = $[98] : (t31 = childProp ? getElementRef(childProp) : null, $[97] = childProp, $[98] = t31);
|
|
306
|
+
let t32, t33;
|
|
307
|
+
if ($[99] === referenceElement ? (t32 = $[100], t33 = $[101]) : (t32 = () => referenceElement, t33 = [referenceElement], $[99] = referenceElement, $[100] = t32, $[101] = t33), useImperativeHandle(t31, t32, t33), !child) {
|
|
308
|
+
let t34;
|
|
309
|
+
return $[102] === Symbol.for("react.memo_cache_sentinel") ? (t34 = /* @__PURE__ */ jsx(Fragment$1, {}), $[102] = t34) : t34 = $[102], t34;
|
|
310
|
+
}
|
|
311
|
+
if (disabled) return child;
|
|
312
|
+
let t34 = tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : void 0, t35;
|
|
313
|
+
$[103] !== floatingStyles || $[104] !== t34 ? (t35 = {
|
|
314
|
+
...floatingStyles,
|
|
315
|
+
maxWidth: t34
|
|
316
|
+
}, $[103] = floatingStyles, $[104] = t34, $[105] = t35) : t35 = $[105];
|
|
317
|
+
let t36;
|
|
318
|
+
$[106] !== animate || $[107] !== arrowProp || $[108] !== arrowX || $[109] !== arrowY || $[110] !== content || $[111] !== originX || $[112] !== originY || $[113] !== padding || $[114] !== placement || $[115] !== radius || $[116] !== restProps || $[117] !== scheme || $[118] !== setArrow || $[119] !== setFloating || $[120] !== shadow ? (t36 = /* @__PURE__ */ jsx(TooltipCard, {
|
|
319
|
+
...restProps,
|
|
320
|
+
animate,
|
|
321
|
+
arrow: arrowProp,
|
|
322
|
+
arrowRef: setArrow,
|
|
323
|
+
arrowX,
|
|
324
|
+
arrowY,
|
|
325
|
+
originX,
|
|
326
|
+
originY,
|
|
327
|
+
padding,
|
|
328
|
+
placement,
|
|
329
|
+
radius,
|
|
330
|
+
ref: setFloating,
|
|
331
|
+
scheme,
|
|
332
|
+
shadow,
|
|
333
|
+
children: content
|
|
334
|
+
}), $[106] = animate, $[107] = arrowProp, $[108] = arrowX, $[109] = arrowY, $[110] = content, $[111] = originX, $[112] = originY, $[113] = padding, $[114] = placement, $[115] = radius, $[116] = restProps, $[117] = scheme, $[118] = setArrow, $[119] = setFloating, $[120] = shadow, $[121] = t36) : t36 = $[121];
|
|
335
|
+
let t37;
|
|
336
|
+
$[122] !== restProps || $[123] !== setFloating || $[124] !== t35 || $[125] !== t36 || $[126] !== zOffset ? (t37 = /* @__PURE__ */ jsx(StyledTooltip, {
|
|
337
|
+
"data-ui": "Tooltip",
|
|
338
|
+
...restProps,
|
|
339
|
+
ref: setFloating,
|
|
340
|
+
style: t35,
|
|
341
|
+
zOffset,
|
|
342
|
+
children: t36
|
|
343
|
+
}), $[122] = restProps, $[123] = setFloating, $[124] = t35, $[125] = t36, $[126] = zOffset, $[127] = t37) : t37 = $[127];
|
|
344
|
+
let tooltip = t37, t38;
|
|
345
|
+
$[128] !== portalProp || $[129] !== tooltip ? (t38 = portalProp ? /* @__PURE__ */ jsx(Portal, {
|
|
346
|
+
__unstable_name: typeof portalProp == "string" ? portalProp : void 0,
|
|
347
|
+
children: tooltip
|
|
348
|
+
}) : tooltip, $[128] = portalProp, $[129] = tooltip, $[130] = t38) : t38 = $[130];
|
|
349
|
+
let tooltipNode = t38, t39;
|
|
350
|
+
$[131] !== animate || $[132] !== showTooltip || $[133] !== tooltipNode ? (t39 = animate ? /* @__PURE__ */ jsx(AnimateActivity, {
|
|
351
|
+
layoutMode: "default",
|
|
352
|
+
mode: showTooltip ? "visible" : "hidden",
|
|
353
|
+
children: tooltipNode
|
|
354
|
+
}) : /* @__PURE__ */ jsx(Activity, {
|
|
355
|
+
mode: showTooltip ? "visible" : "hidden",
|
|
356
|
+
children: tooltipNode
|
|
357
|
+
}), $[131] = animate, $[132] = showTooltip, $[133] = tooltipNode, $[134] = t39) : t39 = $[134];
|
|
358
|
+
let t40;
|
|
359
|
+
return $[135] !== child || $[136] !== t39 ? (t40 = /* @__PURE__ */ jsxs(Fragment$1, { children: [t39, child] }), $[135] = child, $[136] = t39, $[137] = t40) : t40 = $[137], t40;
|
|
360
|
+
};
|
|
361
|
+
function useMiddleware(t0) {
|
|
362
|
+
let $ = c(17), { animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary } = t0, ret;
|
|
363
|
+
if ($[0] !== animate || $[1] !== arrowProp || $[2] !== arrowRef || $[3] !== boundaryElement || $[4] !== fallbackPlacements || $[5] !== rootBoundary) {
|
|
364
|
+
ret = [];
|
|
365
|
+
let t1 = boundaryElement || void 0, t2;
|
|
366
|
+
$[7] !== fallbackPlacements || $[8] !== rootBoundary || $[9] !== t1 ? (t2 = flip({
|
|
367
|
+
boundary: t1,
|
|
368
|
+
fallbackPlacements,
|
|
369
|
+
padding: 4,
|
|
370
|
+
rootBoundary
|
|
371
|
+
}), $[7] = fallbackPlacements, $[8] = rootBoundary, $[9] = t1, $[10] = t2) : t2 = $[10], ret.push(t2);
|
|
372
|
+
let t3;
|
|
373
|
+
$[11] === Symbol.for("react.memo_cache_sentinel") ? (t3 = offset({ mainAxis: 4 }), $[11] = t3) : t3 = $[11], ret.push(t3);
|
|
374
|
+
let t4 = boundaryElement || void 0, t5;
|
|
375
|
+
if ($[12] !== rootBoundary || $[13] !== t4 ? (t5 = shift({
|
|
376
|
+
boundary: t4,
|
|
377
|
+
rootBoundary,
|
|
378
|
+
padding: 4
|
|
379
|
+
}), $[12] = rootBoundary, $[13] = t4, $[14] = t5) : t5 = $[14], ret.push(t5), arrowProp) {
|
|
380
|
+
let t6;
|
|
381
|
+
$[15] === arrowRef ? t6 = $[16] : (t6 = arrow({
|
|
382
|
+
element: arrowRef,
|
|
383
|
+
padding: 4
|
|
384
|
+
}), $[15] = arrowRef, $[16] = t6), ret.push(t6);
|
|
385
|
+
}
|
|
386
|
+
animate && ret.push(origin), $[0] = animate, $[1] = arrowProp, $[2] = arrowRef, $[3] = boundaryElement, $[4] = fallbackPlacements, $[5] = rootBoundary, $[6] = ret;
|
|
387
|
+
} else ret = $[6];
|
|
388
|
+
return ret;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.
|
|
392
|
+
* @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks
|
|
393
|
+
*/
|
|
394
|
+
function useCloseOnMouseLeave(t0) {
|
|
395
|
+
let $ = c(10), { handleIsOpenChange, referenceElement, showTooltip, isInsideGroup } = t0, t1;
|
|
396
|
+
$[0] !== handleIsOpenChange || $[1] !== referenceElement ? (t1 = (target, teardown) => {
|
|
397
|
+
referenceElement && (referenceElement === target || target instanceof Node && referenceElement.contains(target) || (handleIsOpenChange(!1), teardown()));
|
|
398
|
+
}, $[0] = handleIsOpenChange, $[1] = referenceElement, $[2] = t1) : t1 = $[2];
|
|
399
|
+
let onMouseMove = useEffectEvent(t1), t2;
|
|
400
|
+
$[3] !== isInsideGroup || $[4] !== onMouseMove || $[5] !== showTooltip ? (t2 = () => {
|
|
401
|
+
if (!showTooltip || isInsideGroup) return;
|
|
402
|
+
let handleMouseMove = (event) => {
|
|
403
|
+
onMouseMove(event.target, () => window.removeEventListener("mousemove", handleMouseMove));
|
|
404
|
+
};
|
|
405
|
+
return window.addEventListener("mousemove", handleMouseMove), () => window.removeEventListener("mousemove", handleMouseMove);
|
|
406
|
+
}, $[3] = isInsideGroup, $[4] = onMouseMove, $[5] = showTooltip, $[6] = t2) : t2 = $[6];
|
|
407
|
+
let t3;
|
|
408
|
+
$[7] !== isInsideGroup || $[8] !== showTooltip ? (t3 = [isInsideGroup, showTooltip], $[7] = isInsideGroup, $[8] = showTooltip, $[9] = t3) : t3 = $[9], useEffect(t2, t3);
|
|
409
|
+
}
|
|
410
|
+
/**
|
|
411
|
+
* @public
|
|
412
|
+
* Provides context for a group of tooltip elements that should share a delay
|
|
413
|
+
* which temporarily becomes 1 ms after the first floating element of the group opens.
|
|
414
|
+
*/
|
|
415
|
+
function TooltipDelayGroupProvider(props) {
|
|
416
|
+
let $ = c(9), { children, delay } = props, [isGroupActive, setIsGroupActive] = useDelayedState(!1), [openTooltipId, setOpenTooltipId] = useDelayedState(null), openDelay = typeof delay == "number" ? delay : delay?.open || 0, closeDelay = typeof delay == "number" ? delay : delay?.close || 0, t0 = isGroupActive ? 1 : openDelay, t1;
|
|
417
|
+
$[0] !== closeDelay || $[1] !== openTooltipId || $[2] !== setIsGroupActive || $[3] !== setOpenTooltipId || $[4] !== t0 ? (t1 = {
|
|
418
|
+
setIsGroupActive,
|
|
419
|
+
openTooltipId,
|
|
420
|
+
setOpenTooltipId,
|
|
421
|
+
openDelay: t0,
|
|
422
|
+
closeDelay
|
|
423
|
+
}, $[0] = closeDelay, $[1] = openTooltipId, $[2] = setIsGroupActive, $[3] = setOpenTooltipId, $[4] = t0, $[5] = t1) : t1 = $[5];
|
|
424
|
+
let value = t1, t2;
|
|
425
|
+
return $[6] !== children || $[7] !== value ? (t2 = /* @__PURE__ */ jsx(TooltipDelayGroupContext.Provider, {
|
|
426
|
+
value,
|
|
427
|
+
children
|
|
428
|
+
}), $[6] = children, $[7] = value, $[8] = t2) : t2 = $[8], t2;
|
|
429
|
+
}
|
|
430
|
+
export { Tooltip, TooltipDelayGroupContext, TooltipDelayGroupProvider, useTooltipDelayGroup };
|
|
431
|
+
|
|
432
|
+
//# sourceMappingURL=tooltip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.js","names":["SetStateAction","useCallback","useEffect","useRef","useState","useDelayedState","initialState","$","_c","state","setState","delayedAction","undefined","t0","Symbol","for","nextState","delay","action","current","clearTimeout","setTimeout","onStateChange","t1","t2","t3","Placement","DEFAULT_TOOLTIP_ARROW_WIDTH","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","DEFAULT_FALLBACK_PLACEMENTS","Record","motion","MotionProps","React","CSSProperties","useMemo","styled","ThemeColorSchemeKey","POPOVER_MOTION_PROPS","Placement","Radius","Arrow","Card","CardProps","DEFAULT_TOOLTIP_ARROW_HEIGHT","DEFAULT_TOOLTIP_ARROW_RADIUS","DEFAULT_TOOLTIP_ARROW_WIDTH","MotionCard","create","TooltipCard","props","$","_c","animate","arrow","arrowRef","arrowX","arrowY","children","originX","originY","padding","placement","radius","ref","restProps","scheme","shadow","style","t0","undefined","t1","willChange","rootStyle","t2","t3","t4","left","top","right","bottom","arrowStyle","t5","t6","t7","t8","t9","t10","card","transition","createGlobalScopedContext","TooltipDelayGroupContextValue","TooltipDelayGroupContext","useContext","TooltipDelayGroupContext","TooltipDelayGroupContextValue","useTooltipDelayGroup","value","arrow","autoUpdate","flip","Middleware","offset","RootBoundary","shift","useFloating","Activity","cloneElement","useCallback","useEffect","useId","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","styled","useEffectEvent","ThemeColorSchemeKey","useDelayedState","usePrefersReducedMotion","origin","_getArrayProp","useTheme_v2","Placement","AnimateActivity","useBoundaryElement","getElementRef","Layer","LayerProps","Portal","usePortal","Delay","DEFAULT_FALLBACK_PLACEMENTS","DEFAULT_TOOLTIP_DISTANCE","DEFAULT_TOOLTIP_PADDING","TooltipCard","useTooltipDelayGroup","TooltipProps","Omit","allowedAutoPlacements","boundaryElement","HTMLElement","children","React","JSX","Element","content","ReactNode","disabled","fallbackPlacements","padding","placement","portal","radius","scheme","shadow","delay","animate","StyledTooltip","Tooltip","props","$","_c","boundaryElementContext","layer","_boundaryElement","_fallbackPlacementsProp","_zOffset","childProp","forwardedRef","portalProp","restProps","t0","t1","t2","t3","t4","t5","ref","zOffset","_animate","undefined","arrowProp","placementProp","element","fallbackPlacementsProp","tooltip","prefersReducedMotion","t6","referenceElement","setReferenceElement","arrowRef","tooltipMaxWidth","setTooltipMaxWidth","t7","Symbol","for","current","portalElement","elements","t8","rootBoundary","middleware","useMiddleware","t9","reference","t10","whileElementsMounted","floatingStyles","middlewareData","refs","update","arrowX","x","arrowY","y","originX","originY","tooltipId","isOpen","setIsOpen","delayGroupContext","t11","setIsGroupActive","setOpenTooltipId","showTooltip","openTooltipId","isInsideGroup","openDelayProp","open","closeDelayProp","close","openDelay","closeDelay","t12","immediate","groupedOpenDelay","groupDeactivateDelay","standaloneDelay","handleIsOpenChange","t13","e","onBlur","handleBlur","t14","e_0","onClick","handleClick","t15","e_1","onContextMenu","handleContextMenu","t16","e_2","onFocus","handleFocus","t17","e_3","onMouseEnter","handleMouseEnter","t18","e_4","onMouseLeave","handleMouseLeave","t19","useCloseOnMouseLeave","t20","t21","t22","t23","t24","t25","handleWindowKeyDown","event","key","window","addEventListener","removeEventListener","t26","offsetWidth","availableWidths","document","body","Math","min","t27","t28","arrowEl","setArrow","t29","node","setFloating","t30","bb0","t31","child","t32","t33","t34","t35","maxWidth","t36","t37","t38","tooltipNode","t39","t40","ret","boundary","push","mainAxis","target","teardown","isHoveringReference","Node","contains","onMouseMove","handleMouseMove","useMemo","useDelayedState","Delay","TooltipDelayGroupContext","TooltipDelayGroupContextValue","TooltipDelayGroupProviderProps","children","React","ReactNode","delay","TooltipDelayGroupProvider","props","$","_c","isGroupActive","setIsGroupActive","openTooltipId","setOpenTooltipId","openDelay","open","closeDelay","close","t0","t1","value","t2"],"sources":["../src/core/hooks/useDelayedState.ts","../src/core/primitives/tooltip/constants.ts","../src/core/primitives/tooltip/tooltipCard.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupContext.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/useTooltipDelayGroup.ts","../src/core/primitives/tooltip/tooltip.tsx","../src/core/primitives/tooltip/tooltipDelayGroup/tooltipDelayGroupProvider.tsx"],"sourcesContent":["import {SetStateAction, useCallback, useEffect, useRef, useState} from 'react'\n\n/**\n * @beta\n */\nexport function useDelayedState<S>(\n initialState: S | (() => S),\n): [S, (nextState: SetStateAction<S>, delay?: number) => void] {\n const [state, setState] = useState(initialState)\n const delayedAction = useRef<NodeJS.Timeout | undefined>(undefined)\n\n const onStateChange = useCallback((nextState: SetStateAction<S>, delay?: number) => {\n const action = () => {\n setState(nextState)\n }\n\n // A new state change has been initiated, cancel the previous one.\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n delayedAction.current = undefined\n }\n\n if (!delay) return action()\n delayedAction.current = setTimeout(action, delay)\n }, [])\n\n useEffect(() => {\n return () => {\n if (delayedAction.current) {\n clearTimeout(delayedAction.current)\n }\n }\n }, [])\n\n return [state, onStateChange]\n}\n","import {Placement} from '@floating-ui/react-dom'\n\nexport const DEFAULT_TOOLTIP_ARROW_WIDTH = 15\nexport const DEFAULT_TOOLTIP_ARROW_HEIGHT = 6\nexport const DEFAULT_TOOLTIP_ARROW_RADIUS = 2\n\nexport const DEFAULT_TOOLTIP_DISTANCE = 4\nexport const DEFAULT_TOOLTIP_PADDING = 4\n\nexport const DEFAULT_FALLBACK_PLACEMENTS: Record<Placement, Placement[]> = {\n 'top': ['top-end', 'top-start', 'bottom', 'left', 'right'],\n 'top-start': ['top', 'top-end', 'bottom-start', 'left-start', 'right-start'],\n 'top-end': ['top', 'top-start', 'bottom-end', 'left-end', 'right-end'],\n 'bottom': ['bottom-end', 'bottom-start', 'top', 'left', 'right'],\n 'bottom-start': ['bottom', 'bottom-end', 'top-start', 'left-start', 'right-start'],\n 'bottom-end': ['bottom', 'bottom-start', 'top-end', 'left-end', 'right-end'],\n 'left': ['left-end', 'left-start', 'right', 'top', 'bottom'],\n 'left-start': ['left', 'left-end', 'right-start', 'top-start', 'bottom-start'],\n 'left-end': ['left', 'left-start', 'right-end', 'top-end', 'bottom-end'],\n 'right': ['right-end', 'right-start', 'left', 'top', 'bottom'],\n 'right-start': ['right', 'right-end', 'left-start', 'top-start', 'bottom-start'],\n 'right-end': ['right', 'right-start', 'left-end', 'top-end', 'bottom-end'],\n}\n","import {motion, type MotionProps} from 'motion/react'\nimport React, {CSSProperties, useMemo} from 'react'\nimport {styled} from 'styled-components'\n\nimport {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {POPOVER_MOTION_PROPS} from '../../constants'\nimport {Placement} from '../../types/placement'\nimport {Radius} from '../../types/radius'\nimport {Arrow} from '../../utils/arrow/arrow'\nimport {Card, CardProps} from '../card/card'\nimport {\n DEFAULT_TOOLTIP_ARROW_HEIGHT,\n DEFAULT_TOOLTIP_ARROW_RADIUS,\n DEFAULT_TOOLTIP_ARROW_WIDTH,\n} from './constants'\n\nconst MotionCard = styled(motion.create(Card))`\n will-change: transform;\n`\n\n/**\n * @internal\n */\nexport const TooltipCard = function TooltipCard(\n props: {\n animate?: boolean\n arrow: boolean\n arrowRef: React.Ref<HTMLDivElement>\n arrowX?: number\n arrowY?: number\n originX?: number\n originY?: number\n padding?: number | number[]\n placement?: Placement\n radius?: Radius | Radius[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n } & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'height' | 'width'>,\n) {\n const {\n animate,\n arrow,\n arrowRef,\n arrowX,\n arrowY,\n children,\n originX,\n originY,\n padding,\n placement,\n radius,\n ref,\n scheme,\n shadow,\n style,\n ...restProps\n } = props\n\n const rootStyle: CSSProperties = useMemo(\n () => ({\n originX,\n originY,\n willChange: animate ? 'transform' : undefined,\n ...style,\n }),\n [animate, originX, originY, style],\n )\n\n const arrowStyle: CSSProperties = useMemo(\n () => ({\n left: arrowX !== null ? arrowX : undefined,\n top: arrowY !== null ? arrowY : undefined,\n right: undefined,\n bottom: undefined,\n }),\n [arrowX, arrowY],\n )\n\n return (\n <MotionCard\n data-ui=\"Tooltip__card\"\n // oxlint-disable-next-line no-unsafe-type-assertion\n {...(restProps as CardProps & MotionProps)}\n data-placement={placement}\n padding={padding}\n radius={radius}\n ref={ref}\n scheme={scheme}\n shadow={shadow}\n style={rootStyle}\n variants={POPOVER_MOTION_PROPS.card}\n transition={POPOVER_MOTION_PROPS.transition}\n initial={animate ? ['hidden', 'initial'] : undefined}\n animate={animate ? ['visible', 'scaleIn'] : undefined}\n exit={animate ? ['hidden', 'scaleOut'] : undefined}\n >\n {children}\n\n {arrow && (\n <Arrow\n ref={arrowRef}\n style={arrowStyle}\n width={DEFAULT_TOOLTIP_ARROW_WIDTH}\n height={DEFAULT_TOOLTIP_ARROW_HEIGHT}\n radius={DEFAULT_TOOLTIP_ARROW_RADIUS}\n />\n )}\n </MotionCard>\n )\n}\n","import {createGlobalScopedContext} from '../../../lib/createGlobalScopedContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport const TooltipDelayGroupContext =\n createGlobalScopedContext<TooltipDelayGroupContextValue | null>(\n '@sanity/ui/context/tooltipDelayGroup',\n null,\n )\n","import {useContext} from 'react'\n\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @beta\n */\nexport function useTooltipDelayGroup(): TooltipDelayGroupContextValue | null {\n const value = useContext(TooltipDelayGroupContext)\n\n return value\n}\n","import {\n arrow,\n autoUpdate,\n flip,\n type Middleware,\n offset,\n type RootBoundary,\n shift,\n useFloating,\n} from '@floating-ui/react-dom'\nimport {\n Activity,\n cloneElement,\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'react'\nimport {styled} from 'styled-components'\n// TODO: switch to `useEffectEvent` from `react` once\n// https://github.com/facebook/react/issues/34818 is fixed in the lowest React\n// version we support: on React 19.2 the native hook never sees values past\n// the first render when the calling component is wrapped in `forwardRef` or\n// `memo`, and consumers may wrap `Tooltip` in `memo`.\nimport {useEffectEvent} from 'use-effect-event'\n\nimport type {ThemeColorSchemeKey} from '../../../theme/system/color/_system'\nimport {useDelayedState} from '../../hooks/useDelayedState'\nimport {usePrefersReducedMotion} from '../../hooks/usePrefersReducedMotion'\nimport {origin} from '../../middleware/origin'\nimport {_getArrayProp} from '../../styles/helpers'\nimport {useTheme_v2} from '../../theme/useTheme'\nimport type {Placement} from '../../types/placement'\nimport {AnimateActivity} from '../../utils/animateActivity'\nimport {useBoundaryElement} from '../../utils/boundaryElement/useBoundaryElement'\nimport {getElementRef} from '../../utils/getElementRef'\nimport {Layer, type LayerProps} from '../../utils/layer/layer'\nimport {Portal} from '../../utils/portal/portal'\nimport {usePortal} from '../../utils/portal/usePortal'\nimport type {Delay} from '../types'\nimport {\n DEFAULT_FALLBACK_PLACEMENTS,\n DEFAULT_TOOLTIP_DISTANCE,\n DEFAULT_TOOLTIP_PADDING,\n} from './constants'\nimport {TooltipCard} from './tooltipCard'\nimport {useTooltipDelayGroup} from './tooltipDelayGroup/useTooltipDelayGroup'\n\n/**\n * @public\n */\nexport interface TooltipProps extends Omit<LayerProps, 'as'> {\n /** @deprecated Use `fallbackPlacements` instead. */\n allowedAutoPlacements?: never\n arrow?: boolean\n boundaryElement?: HTMLElement | null\n children?: React.JSX.Element\n content?: React.ReactNode\n disabled?: boolean\n fallbackPlacements?: Placement[]\n padding?: number | number[]\n placement?: Placement\n /** Whether or not to render the tooltip in a portal element. */\n portal?: boolean | string\n radius?: number | number[]\n scheme?: ThemeColorSchemeKey\n shadow?: number | number[]\n /**\n * Adds a delay to open or close the tooltip.\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n * @defaultValue 0\n */\n delay?: Delay\n /**\n * Whether the tooltip should animate in and out.\n *\n * @beta\n * @defaultValue false\n */\n animate?: boolean\n}\n\nconst StyledTooltip = styled(Layer)`\n pointer-events: none;\n`\n\n/**\n * Tooltips display information when hovering, focusing or tapping.\n *\n * @public\n */\nexport const Tooltip = function Tooltip(\n props: TooltipProps & Omit<React.HTMLProps<HTMLDivElement>, 'as' | 'children' | 'content'>,\n) {\n const boundaryElementContext = useBoundaryElement()\n const {layer} = useTheme_v2()\n const {\n animate: _animate = false,\n arrow: arrowProp = false,\n boundaryElement: _boundaryElement,\n children: childProp,\n content,\n disabled,\n fallbackPlacements: _fallbackPlacementsProp,\n padding = 2,\n placement: placementProp = 'bottom',\n portal: portalProp,\n radius = 2,\n ref: forwardedRef,\n scheme,\n shadow = 2,\n zOffset: _zOffset,\n delay,\n ...restProps\n } = props\n const boundaryElement = _boundaryElement ?? boundaryElementContext?.element\n const fallbackPlacementsProp =\n _fallbackPlacementsProp ?? DEFAULT_FALLBACK_PLACEMENTS[props.placement ?? 'bottom']\n const zOffset = _zOffset ?? layer.tooltip.zOffset\n const prefersReducedMotion = usePrefersReducedMotion()\n const animate = prefersReducedMotion ? false : _animate\n const fallbackPlacements = _getArrayProp(fallbackPlacementsProp)\n const ref = useRef<HTMLDivElement | null>(null)\n const [referenceElement, setReferenceElement] = useState<HTMLElement | null>(null)\n const arrowRef = useRef<HTMLDivElement | null>(null)\n const rootBoundary: RootBoundary = 'viewport'\n const [tooltipMaxWidth, setTooltipMaxWidth] = useState(0)\n\n useImperativeHandle<HTMLDivElement | null, HTMLDivElement | null>(forwardedRef, () => ref.current)\n\n const portal = usePortal()\n const portalElement =\n typeof portalProp === 'string' ? portal.elements?.[portalProp] || null : portal.element\n\n const middleware = useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n })\n\n const {floatingStyles, placement, middlewareData, refs, update} = useFloating({\n middleware,\n placement: placementProp,\n whileElementsMounted: autoUpdate,\n elements: {reference: referenceElement},\n })\n\n const arrowX = middlewareData.arrow?.x\n const arrowY = middlewareData.arrow?.y\n\n const originX = middlewareData['@sanity/ui/origin']?.originX\n const originY = middlewareData['@sanity/ui/origin']?.originY\n\n const tooltipId = useId()\n const [isOpen, setIsOpen] = useDelayedState(false)\n const delayGroupContext = useTooltipDelayGroup()\n const {setIsGroupActive, setOpenTooltipId} = delayGroupContext || {}\n const showTooltip = isOpen || delayGroupContext?.openTooltipId === tooltipId\n\n const isInsideGroup = delayGroupContext !== null\n const openDelayProp = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelayProp = typeof delay === 'number' ? delay : delay?.close || 0\n\n const openDelay = isInsideGroup ? delayGroupContext.openDelay : openDelayProp\n const closeDelay = isInsideGroup ? delayGroupContext.closeDelay : closeDelayProp\n\n const handleIsOpenChange = useCallback(\n (open: boolean, immediate?: boolean) => {\n if (isInsideGroup) {\n // When it's inside a group, the open or close status will be handled by the group.\n if (open) {\n const groupedOpenDelay = immediate ? 0 : openDelay\n\n setIsGroupActive?.(open, groupedOpenDelay)\n setOpenTooltipId?.(tooltipId, groupedOpenDelay)\n } else {\n const minimumGroupDeactivateDelay = 200 // We should provide some delay to allow the user to reach the next tooltip.\n const groupDeactivateDelay =\n closeDelay > minimumGroupDeactivateDelay ? closeDelay : minimumGroupDeactivateDelay\n\n setIsGroupActive?.(open, groupDeactivateDelay)\n setOpenTooltipId?.(null, immediate ? 0 : closeDelay)\n }\n } else {\n const standaloneDelay = immediate ? 0 : open ? openDelay : closeDelay\n\n // When it's not inside a group, the open or close status will be handled by the tooltip itself.\n setIsOpen(open, standaloneDelay)\n }\n },\n [\n isInsideGroup,\n openDelay,\n setIsGroupActive,\n setOpenTooltipId,\n tooltipId,\n closeDelay,\n setIsOpen,\n ],\n )\n\n const handleBlur = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onBlur?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleClick = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onClick?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleContextMenu = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false, true)\n childProp?.props.onContextMenu?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleFocus = useCallback(\n (e: FocusEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onFocus?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseEnter = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(true)\n childProp?.props?.onMouseEnter?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n const handleMouseLeave = useCallback(\n (e: MouseEvent) => {\n handleIsOpenChange(false)\n childProp?.props?.onMouseLeave?.(e)\n },\n [childProp?.props, handleIsOpenChange],\n )\n\n // Handle closing the tooltip when the mouse leaves the referenceElement\n useCloseOnMouseLeave({handleIsOpenChange, referenceElement, showTooltip, isInsideGroup})\n\n // Close when `disabled` changes to `true`\n useEffect(() => {\n if (disabled && showTooltip) handleIsOpenChange(false)\n }, [disabled, handleIsOpenChange, showTooltip])\n\n // Close when `content` changes to falsy\n useEffect(() => {\n if (!content && showTooltip) handleIsOpenChange(false)\n }, [content, handleIsOpenChange, showTooltip])\n\n useEffect(() => {\n // If the user clicks on escape key, close the tooltip.\n if (!showTooltip) return\n\n function handleWindowKeyDown(event: KeyboardEvent) {\n if (event.key === 'Escape') {\n handleIsOpenChange(false, true)\n }\n }\n\n window.addEventListener('keydown', handleWindowKeyDown)\n\n // oxlint-disable-next-line consistent-return\n return () => {\n window.removeEventListener('keydown', handleWindowKeyDown)\n }\n }, [handleIsOpenChange, showTooltip])\n\n // // Set the max width of the tooltip based on boundaries and portals\n useLayoutEffect(() => {\n // Get the maximum tooltip width (sans tooltip padding)\n // Tooltip width should never exceed the width of either any supplied boundary or portal element.\n // If both portal and boundary elements are provided, use the smaller width of the two.\n const availableWidths = [\n ...(boundaryElement ? [boundaryElement.offsetWidth] : []),\n portalElement?.offsetWidth || document.body.offsetWidth,\n ]\n\n // oxlint-disable-next-line react-compiler\n setTooltipMaxWidth(Math.min(...availableWidths) - DEFAULT_TOOLTIP_PADDING * 2)\n }, [boundaryElement, portalElement])\n\n const setArrow = useCallback(\n (arrowEl: HTMLDivElement | null) => {\n arrowRef.current = arrowEl\n update()\n },\n [update],\n )\n\n const setFloating = useCallback(\n (node: HTMLDivElement | null) => {\n ref.current = node\n refs.setFloating(node)\n },\n [refs],\n )\n\n const child = useMemo(() => {\n if (!childProp) return null\n\n return cloneElement(childProp, {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onMouseEnter: handleMouseEnter,\n onMouseLeave: handleMouseLeave,\n onClick: handleClick,\n onContextMenu: handleContextMenu,\n ref: setReferenceElement,\n })\n }, [\n childProp,\n handleBlur,\n handleClick,\n handleContextMenu,\n handleFocus,\n handleMouseEnter,\n handleMouseLeave,\n ])\n\n // If there's a child then we need to set the reference element to the cloned child ref\n // and if child changes we make sure to update or remove the reference element.\n useImperativeHandle(childProp ? getElementRef(childProp) : null, () => referenceElement, [\n referenceElement,\n ])\n\n if (!child) return <></>\n\n if (disabled) return child\n\n const tooltip = (\n <StyledTooltip\n data-ui=\"Tooltip\"\n {...restProps}\n ref={setFloating}\n style={{\n ...floatingStyles,\n maxWidth: tooltipMaxWidth > 0 ? `${tooltipMaxWidth}px` : undefined,\n }}\n zOffset={zOffset}\n >\n <TooltipCard\n {...restProps}\n animate={animate}\n arrow={arrowProp}\n arrowRef={setArrow}\n arrowX={arrowX}\n arrowY={arrowY}\n originX={originX}\n originY={originY}\n padding={padding}\n placement={placement}\n radius={radius}\n ref={setFloating}\n scheme={scheme}\n shadow={shadow}\n >\n {content}\n </TooltipCard>\n </StyledTooltip>\n )\n\n const tooltipNode = portalProp ? (\n <Portal __unstable_name={typeof portalProp === 'string' ? portalProp : undefined}>\n {tooltip}\n </Portal>\n ) : (\n tooltip\n )\n\n return (\n <>\n {/* the tooltip */}\n {animate ? (\n <AnimateActivity layoutMode=\"default\" mode={showTooltip ? 'visible' : 'hidden'}>\n {tooltipNode}\n </AnimateActivity>\n ) : (\n <Activity mode={showTooltip ? 'visible' : 'hidden'}>{tooltipNode}</Activity>\n )}\n\n {/* the referred element */}\n {child}\n </>\n )\n}\n\nfunction useMiddleware({\n animate,\n arrowProp,\n arrowRef,\n boundaryElement,\n fallbackPlacements,\n rootBoundary,\n}: {\n animate: boolean\n arrowProp: boolean\n arrowRef: React.RefObject<HTMLDivElement | null>\n boundaryElement: HTMLElement | null\n fallbackPlacements: Placement[]\n rootBoundary: RootBoundary\n}) {\n return useMemo(() => {\n const ret: Middleware[] = []\n\n // Flip the floating element when leaving the boundary box\n ret.push(\n flip({\n boundary: boundaryElement || undefined,\n fallbackPlacements,\n padding: DEFAULT_TOOLTIP_PADDING,\n rootBoundary,\n }),\n )\n\n // Define distance between reference and floating element\n ret.push(offset({mainAxis: DEFAULT_TOOLTIP_DISTANCE}))\n\n // Shift the tooltip so its sits with the boundary element\n ret.push(\n shift({\n boundary: boundaryElement || undefined,\n rootBoundary,\n padding: DEFAULT_TOOLTIP_PADDING,\n }),\n )\n\n // Place arrow\n if (arrowProp) {\n ret.push(arrow({element: arrowRef, padding: DEFAULT_TOOLTIP_PADDING}))\n }\n\n // Determine the origin to scale from.\n // Must be placed after `@sanity/ui/size` and `shift` middleware.\n if (animate) {\n ret.push(origin)\n }\n\n return ret\n }, [animate, arrowProp, arrowRef, boundaryElement, fallbackPlacements, rootBoundary])\n}\n\n/**\n * As `useEffectEvent` should never be passed to other components or hooks, this custom hook groups together the `useEffectEvent` and the `useEffect` hook using it.\n * @see https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events:~:text=Never%20pass%20them%20to%20other%20components%20or%20Hooks\n */\nfunction useCloseOnMouseLeave({\n handleIsOpenChange,\n referenceElement,\n showTooltip,\n isInsideGroup,\n}: {\n handleIsOpenChange: (open: boolean, immediate?: boolean) => void\n referenceElement: HTMLElement | null\n showTooltip: boolean\n isInsideGroup: boolean\n}) {\n // Since we don't want the `mouseevent` events to be attached and removed if the `referenceElement` is changed\n // we use a \"effect event\" (https://19.react.dev/learn/separating-events-from-effects#reading-latest-props-and-state-with-effect-events)\n // in order to always see the latest `referenceElement` value inside the event handler itself.\n const onMouseMove = useEffectEvent((target: EventTarget | null, teardown: () => void) => {\n if (!referenceElement) return\n\n const isHoveringReference =\n referenceElement === target || (target instanceof Node && referenceElement.contains(target))\n\n if (!isHoveringReference) {\n handleIsOpenChange(false)\n // Allow removing the event listener eagerly, to avoid race conditions\n teardown()\n }\n })\n\n // Detect whether the mouse is moving outside of the reference element. This is sometimes\n // necessary, because the tooltip might not always close as it should (e.g. when clicking\n // the reference element triggers a CPU-heavy operation.)\n useEffect(() => {\n if (!showTooltip || isInsideGroup) return\n\n const handleMouseMove = (event: MouseEvent) => {\n onMouseMove(event.target, () => window.removeEventListener('mousemove', handleMouseMove))\n }\n\n window.addEventListener('mousemove', handleMouseMove)\n\n // oxlint-disable-next-line consistent-return\n return () => window.removeEventListener('mousemove', handleMouseMove)\n }, [isInsideGroup, showTooltip])\n}\n","import {useMemo} from 'react'\n\nimport {useDelayedState} from '../../../hooks/useDelayedState'\nimport {Delay} from '../../types'\nimport {TooltipDelayGroupContext} from './tooltipDelayGroupContext'\nimport {TooltipDelayGroupContextValue} from './types'\n\n/**\n * @public\n * */\nexport interface TooltipDelayGroupProviderProps {\n children?: React.ReactNode\n /**\n * Handles the delays to open or close a tooltip inside a group\n *\n * If only a `number` is passed, it will be used for both opening and closing.\n *\n * If an object `{open: number; close:number}` is passed, it can be used to set different delays for each action.\n *\n * @public\n */\n delay: Delay\n}\n\n/**\n * @public\n * Provides context for a group of tooltip elements that should share a delay\n * which temporarily becomes 1 ms after the first floating element of the group opens.\n */\nexport function TooltipDelayGroupProvider(\n props: TooltipDelayGroupProviderProps,\n): React.JSX.Element {\n const {children, delay} = props\n const [isGroupActive, setIsGroupActive] = useDelayedState(false)\n const [openTooltipId, setOpenTooltipId] = useDelayedState<string | null>(null)\n\n const openDelay = typeof delay === 'number' ? delay : delay?.open || 0\n const closeDelay = typeof delay === 'number' ? delay : delay?.close || 0\n\n const value: TooltipDelayGroupContextValue = useMemo(\n () => ({\n setIsGroupActive: setIsGroupActive,\n openTooltipId: openTooltipId,\n setOpenTooltipId: setOpenTooltipId,\n // When the group is active, we want the next tooltip to open immediately.\n openDelay: isGroupActive ? 1 : openDelay,\n closeDelay: closeDelay,\n }),\n [closeDelay, isGroupActive, openDelay, openTooltipId, setIsGroupActive, setOpenTooltipId],\n )\n\n return (\n <TooltipDelayGroupContext.Provider value={value}>{children}</TooltipDelayGroupContext.Provider>\n )\n}\n"],"mappings":"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"}
|