@radix-ui/react-tooltip 1.0.8-rc.9 → 1.1.0-rc.2

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/dist/index.js CHANGED
@@ -1,596 +1,508 @@
1
- var $iVrL9$babelruntimehelpersextends = require("@babel/runtime/helpers/extends");
2
- var $iVrL9$react = require("react");
3
- var $iVrL9$radixuiprimitive = require("@radix-ui/primitive");
4
- var $iVrL9$radixuireactcomposerefs = require("@radix-ui/react-compose-refs");
5
- var $iVrL9$radixuireactcontext = require("@radix-ui/react-context");
6
- var $iVrL9$radixuireactdismissablelayer = require("@radix-ui/react-dismissable-layer");
7
- var $iVrL9$radixuireactid = require("@radix-ui/react-id");
8
- var $iVrL9$radixuireactpopper = require("@radix-ui/react-popper");
9
- var $iVrL9$radixuireactportal = require("@radix-ui/react-portal");
10
- var $iVrL9$radixuireactpresence = require("@radix-ui/react-presence");
11
- var $iVrL9$radixuireactprimitive = require("@radix-ui/react-primitive");
12
- var $iVrL9$radixuireactslot = require("@radix-ui/react-slot");
13
- var $iVrL9$radixuireactusecontrollablestate = require("@radix-ui/react-use-controllable-state");
14
- var $iVrL9$radixuireactvisuallyhidden = require("@radix-ui/react-visually-hidden");
15
-
16
- function $parcel$export(e, n, v, s) {
17
- Object.defineProperty(e, n, {get: v, set: s, enumerable: true, configurable: true});
18
- }
19
- function $parcel$interopDefault(a) {
20
- return a && a.__esModule ? a.default : a;
21
- }
22
-
23
- $parcel$export(module.exports, "createTooltipScope", () => $c34afbc43c90cc6f$export$1c540a2224f0d865);
24
- $parcel$export(module.exports, "TooltipProvider", () => $c34afbc43c90cc6f$export$f78649fb9ca566b8);
25
- $parcel$export(module.exports, "Tooltip", () => $c34afbc43c90cc6f$export$28c660c63b792dea);
26
- $parcel$export(module.exports, "TooltipTrigger", () => $c34afbc43c90cc6f$export$8c610744efcf8a1d);
27
- $parcel$export(module.exports, "TooltipPortal", () => $c34afbc43c90cc6f$export$7b36b8f925ab7497);
28
- $parcel$export(module.exports, "TooltipContent", () => $c34afbc43c90cc6f$export$e9003e2be37ec060);
29
- $parcel$export(module.exports, "TooltipArrow", () => $c34afbc43c90cc6f$export$c27ee0ad710f7559);
30
- $parcel$export(module.exports, "Provider", () => $c34afbc43c90cc6f$export$2881499e37b75b9a);
31
- $parcel$export(module.exports, "Root", () => $c34afbc43c90cc6f$export$be92b6f5f03c0fe9);
32
- $parcel$export(module.exports, "Trigger", () => $c34afbc43c90cc6f$export$41fb9f06171c75f4);
33
- $parcel$export(module.exports, "Portal", () => $c34afbc43c90cc6f$export$602eac185826482c);
34
- $parcel$export(module.exports, "Content", () => $c34afbc43c90cc6f$export$7c6e2c02157bb7d2);
35
- $parcel$export(module.exports, "Arrow", () => $c34afbc43c90cc6f$export$21b07c8f274aebd5);
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
1
+ "use strict";
2
+ "use client";
3
+ (() => {
4
+ var __create = Object.create;
5
+ var __defProp = Object.defineProperty;
6
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7
+ var __getOwnPropNames = Object.getOwnPropertyNames;
8
+ var __getProtoOf = Object.getPrototypeOf;
9
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
10
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
11
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
12
+ }) : x)(function(x) {
13
+ if (typeof require !== "undefined") return require.apply(this, arguments);
14
+ throw Error('Dynamic require of "' + x + '" is not supported');
15
+ });
16
+ var __copyProps = (to, from, except, desc) => {
17
+ if (from && typeof from === "object" || typeof from === "function") {
18
+ for (let key of __getOwnPropNames(from))
19
+ if (!__hasOwnProp.call(to, key) && key !== except)
20
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
21
+ }
22
+ return to;
23
+ };
24
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
25
+ // If the importer is in node compatibility mode or this is not an ESM
26
+ // file that has been converted to a CommonJS file using a Babel-
27
+ // compatible transform (i.e. "__esModule" has not been set), then set
28
+ // "default" to the CommonJS "module.exports" for node compatibility.
29
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
30
+ mod
31
+ ));
50
32
 
51
- const [$c34afbc43c90cc6f$var$createTooltipContext, $c34afbc43c90cc6f$export$1c540a2224f0d865] = $iVrL9$radixuireactcontext.createContextScope('Tooltip', [
52
- $iVrL9$radixuireactpopper.createPopperScope
53
- ]);
54
- const $c34afbc43c90cc6f$var$usePopperScope = $iVrL9$radixuireactpopper.createPopperScope();
55
- /* -------------------------------------------------------------------------------------------------
56
- * TooltipProvider
57
- * -----------------------------------------------------------------------------------------------*/ const $c34afbc43c90cc6f$var$PROVIDER_NAME = 'TooltipProvider';
58
- const $c34afbc43c90cc6f$var$DEFAULT_DELAY_DURATION = 700;
59
- const $c34afbc43c90cc6f$var$TOOLTIP_OPEN = 'tooltip.open';
60
- const [$c34afbc43c90cc6f$var$TooltipProviderContextProvider, $c34afbc43c90cc6f$var$useTooltipProviderContext] = $c34afbc43c90cc6f$var$createTooltipContext($c34afbc43c90cc6f$var$PROVIDER_NAME);
61
- const $c34afbc43c90cc6f$export$f78649fb9ca566b8 = (props)=>{
62
- const { __scopeTooltip: __scopeTooltip , delayDuration: delayDuration = $c34afbc43c90cc6f$var$DEFAULT_DELAY_DURATION , skipDelayDuration: skipDelayDuration = 300 , disableHoverableContent: disableHoverableContent = false , children: children } = props;
63
- const [isOpenDelayed, setIsOpenDelayed] = $iVrL9$react.useState(true);
64
- const isPointerInTransitRef = $iVrL9$react.useRef(false);
65
- const skipDelayTimerRef = $iVrL9$react.useRef(0);
66
- $iVrL9$react.useEffect(()=>{
67
- const skipDelayTimer = skipDelayTimerRef.current;
68
- return ()=>window.clearTimeout(skipDelayTimer)
69
- ;
33
+ // packages/react/tooltip/src/Tooltip.tsx
34
+ var React = __toESM(__require("react"));
35
+ var import_primitive = __require("@radix-ui/primitive");
36
+ var import_react_compose_refs = __require("@radix-ui/react-compose-refs");
37
+ var import_react_context = __require("@radix-ui/react-context");
38
+ var import_react_dismissable_layer = __require("@radix-ui/react-dismissable-layer");
39
+ var import_react_id = __require("@radix-ui/react-id");
40
+ var PopperPrimitive = __toESM(__require("@radix-ui/react-popper"));
41
+ var import_react_popper = __require("@radix-ui/react-popper");
42
+ var import_react_portal = __require("@radix-ui/react-portal");
43
+ var import_react_presence = __require("@radix-ui/react-presence");
44
+ var import_react_primitive = __require("@radix-ui/react-primitive");
45
+ var import_react_slot = __require("@radix-ui/react-slot");
46
+ var import_react_use_controllable_state = __require("@radix-ui/react-use-controllable-state");
47
+ var VisuallyHiddenPrimitive = __toESM(__require("@radix-ui/react-visually-hidden"));
48
+ var import_jsx_runtime = __require("react/jsx-runtime");
49
+ var [createTooltipContext, createTooltipScope] = (0, import_react_context.createContextScope)("Tooltip", [
50
+ import_react_popper.createPopperScope
51
+ ]);
52
+ var usePopperScope = (0, import_react_popper.createPopperScope)();
53
+ var PROVIDER_NAME = "TooltipProvider";
54
+ var DEFAULT_DELAY_DURATION = 700;
55
+ var TOOLTIP_OPEN = "tooltip.open";
56
+ var [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);
57
+ var TooltipProvider = (props) => {
58
+ const {
59
+ __scopeTooltip,
60
+ delayDuration = DEFAULT_DELAY_DURATION,
61
+ skipDelayDuration = 300,
62
+ disableHoverableContent = false,
63
+ children
64
+ } = props;
65
+ const [isOpenDelayed, setIsOpenDelayed] = React.useState(true);
66
+ const isPointerInTransitRef = React.useRef(false);
67
+ const skipDelayTimerRef = React.useRef(0);
68
+ React.useEffect(() => {
69
+ const skipDelayTimer = skipDelayTimerRef.current;
70
+ return () => window.clearTimeout(skipDelayTimer);
70
71
  }, []);
71
- return /*#__PURE__*/ $iVrL9$react.createElement($c34afbc43c90cc6f$var$TooltipProviderContextProvider, {
72
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
73
+ TooltipProviderContextProvider,
74
+ {
72
75
  scope: __scopeTooltip,
73
- isOpenDelayed: isOpenDelayed,
74
- delayDuration: delayDuration,
75
- onOpen: $iVrL9$react.useCallback(()=>{
76
- window.clearTimeout(skipDelayTimerRef.current);
77
- setIsOpenDelayed(false);
76
+ isOpenDelayed,
77
+ delayDuration,
78
+ onOpen: React.useCallback(() => {
79
+ window.clearTimeout(skipDelayTimerRef.current);
80
+ setIsOpenDelayed(false);
78
81
  }, []),
79
- onClose: $iVrL9$react.useCallback(()=>{
80
- window.clearTimeout(skipDelayTimerRef.current);
81
- skipDelayTimerRef.current = window.setTimeout(()=>setIsOpenDelayed(true)
82
- , skipDelayDuration);
83
- }, [
82
+ onClose: React.useCallback(() => {
83
+ window.clearTimeout(skipDelayTimerRef.current);
84
+ skipDelayTimerRef.current = window.setTimeout(
85
+ () => setIsOpenDelayed(true),
84
86
  skipDelayDuration
85
- ]),
86
- isPointerInTransitRef: isPointerInTransitRef,
87
- onPointerInTransitChange: $iVrL9$react.useCallback((inTransit)=>{
88
- isPointerInTransitRef.current = inTransit;
87
+ );
88
+ }, [skipDelayDuration]),
89
+ isPointerInTransitRef,
90
+ onPointerInTransitChange: React.useCallback((inTransit) => {
91
+ isPointerInTransitRef.current = inTransit;
89
92
  }, []),
90
- disableHoverableContent: disableHoverableContent
91
- }, children);
92
- };
93
- /*#__PURE__*/ Object.assign($c34afbc43c90cc6f$export$f78649fb9ca566b8, {
94
- displayName: $c34afbc43c90cc6f$var$PROVIDER_NAME
95
- });
96
- /* -------------------------------------------------------------------------------------------------
97
- * Tooltip
98
- * -----------------------------------------------------------------------------------------------*/ const $c34afbc43c90cc6f$var$TOOLTIP_NAME = 'Tooltip';
99
- const [$c34afbc43c90cc6f$var$TooltipContextProvider, $c34afbc43c90cc6f$var$useTooltipContext] = $c34afbc43c90cc6f$var$createTooltipContext($c34afbc43c90cc6f$var$TOOLTIP_NAME);
100
- const $c34afbc43c90cc6f$export$28c660c63b792dea = (props)=>{
101
- const { __scopeTooltip: __scopeTooltip , children: children , open: openProp , defaultOpen: defaultOpen = false , onOpenChange: onOpenChange , disableHoverableContent: disableHoverableContentProp , delayDuration: delayDurationProp } = props;
102
- const providerContext = $c34afbc43c90cc6f$var$useTooltipProviderContext($c34afbc43c90cc6f$var$TOOLTIP_NAME, props.__scopeTooltip);
103
- const popperScope = $c34afbc43c90cc6f$var$usePopperScope(__scopeTooltip);
104
- const [trigger, setTrigger] = $iVrL9$react.useState(null);
105
- const contentId = $iVrL9$radixuireactid.useId();
106
- const openTimerRef = $iVrL9$react.useRef(0);
107
- const disableHoverableContent = disableHoverableContentProp !== null && disableHoverableContentProp !== void 0 ? disableHoverableContentProp : providerContext.disableHoverableContent;
108
- const delayDuration = delayDurationProp !== null && delayDurationProp !== void 0 ? delayDurationProp : providerContext.delayDuration;
109
- const wasOpenDelayedRef = $iVrL9$react.useRef(false);
110
- const [open1 = false, setOpen] = $iVrL9$radixuireactusecontrollablestate.useControllableState({
111
- prop: openProp,
112
- defaultProp: defaultOpen,
113
- onChange: (open)=>{
114
- if (open) {
115
- providerContext.onOpen(); // as `onChange` is called within a lifecycle method we
116
- // avoid dispatching via `dispatchDiscreteCustomEvent`.
117
- document.dispatchEvent(new CustomEvent($c34afbc43c90cc6f$var$TOOLTIP_OPEN));
118
- } else providerContext.onClose();
119
- onOpenChange === null || onOpenChange === void 0 || onOpenChange(open);
93
+ disableHoverableContent,
94
+ children
95
+ }
96
+ );
97
+ };
98
+ TooltipProvider.displayName = PROVIDER_NAME;
99
+ var TOOLTIP_NAME = "Tooltip";
100
+ var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
101
+ var Tooltip = (props) => {
102
+ const {
103
+ __scopeTooltip,
104
+ children,
105
+ open: openProp,
106
+ defaultOpen = false,
107
+ onOpenChange,
108
+ disableHoverableContent: disableHoverableContentProp,
109
+ delayDuration: delayDurationProp
110
+ } = props;
111
+ const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);
112
+ const popperScope = usePopperScope(__scopeTooltip);
113
+ const [trigger, setTrigger] = React.useState(null);
114
+ const contentId = (0, import_react_id.useId)();
115
+ const openTimerRef = React.useRef(0);
116
+ const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;
117
+ const delayDuration = delayDurationProp ?? providerContext.delayDuration;
118
+ const wasOpenDelayedRef = React.useRef(false);
119
+ const [open = false, setOpen] = (0, import_react_use_controllable_state.useControllableState)({
120
+ prop: openProp,
121
+ defaultProp: defaultOpen,
122
+ onChange: (open2) => {
123
+ if (open2) {
124
+ providerContext.onOpen();
125
+ document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
126
+ } else {
127
+ providerContext.onClose();
120
128
  }
129
+ onOpenChange?.(open2);
130
+ }
121
131
  });
122
- const stateAttribute = $iVrL9$react.useMemo(()=>{
123
- return open1 ? wasOpenDelayedRef.current ? 'delayed-open' : 'instant-open' : 'closed';
124
- }, [
125
- open1
126
- ]);
127
- const handleOpen = $iVrL9$react.useCallback(()=>{
128
- window.clearTimeout(openTimerRef.current);
129
- wasOpenDelayedRef.current = false;
132
+ const stateAttribute = React.useMemo(() => {
133
+ return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
134
+ }, [open]);
135
+ const handleOpen = React.useCallback(() => {
136
+ window.clearTimeout(openTimerRef.current);
137
+ wasOpenDelayedRef.current = false;
138
+ setOpen(true);
139
+ }, [setOpen]);
140
+ const handleClose = React.useCallback(() => {
141
+ window.clearTimeout(openTimerRef.current);
142
+ setOpen(false);
143
+ }, [setOpen]);
144
+ const handleDelayedOpen = React.useCallback(() => {
145
+ window.clearTimeout(openTimerRef.current);
146
+ openTimerRef.current = window.setTimeout(() => {
147
+ wasOpenDelayedRef.current = true;
130
148
  setOpen(true);
131
- }, [
132
- setOpen
133
- ]);
134
- const handleClose = $iVrL9$react.useCallback(()=>{
135
- window.clearTimeout(openTimerRef.current);
136
- setOpen(false);
137
- }, [
138
- setOpen
139
- ]);
140
- const handleDelayedOpen = $iVrL9$react.useCallback(()=>{
141
- window.clearTimeout(openTimerRef.current);
142
- openTimerRef.current = window.setTimeout(()=>{
143
- wasOpenDelayedRef.current = true;
144
- setOpen(true);
145
- }, delayDuration);
146
- }, [
147
- delayDuration,
148
- setOpen
149
- ]);
150
- $iVrL9$react.useEffect(()=>{
151
- return ()=>window.clearTimeout(openTimerRef.current)
152
- ;
149
+ }, delayDuration);
150
+ }, [delayDuration, setOpen]);
151
+ React.useEffect(() => {
152
+ return () => window.clearTimeout(openTimerRef.current);
153
153
  }, []);
154
- return /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactpopper.Root, popperScope, /*#__PURE__*/ $iVrL9$react.createElement($c34afbc43c90cc6f$var$TooltipContextProvider, {
154
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
155
+ TooltipContextProvider,
156
+ {
155
157
  scope: __scopeTooltip,
156
- contentId: contentId,
157
- open: open1,
158
- stateAttribute: stateAttribute,
159
- trigger: trigger,
158
+ contentId,
159
+ open,
160
+ stateAttribute,
161
+ trigger,
160
162
  onTriggerChange: setTrigger,
161
- onTriggerEnter: $iVrL9$react.useCallback(()=>{
162
- if (providerContext.isOpenDelayed) handleDelayedOpen();
163
- else handleOpen();
164
- }, [
165
- providerContext.isOpenDelayed,
166
- handleDelayedOpen,
167
- handleOpen
168
- ]),
169
- onTriggerLeave: $iVrL9$react.useCallback(()=>{
170
- if (disableHoverableContent) handleClose();
171
- else // Clear the timer in case the pointer leaves the trigger before the tooltip is opened.
163
+ onTriggerEnter: React.useCallback(() => {
164
+ if (providerContext.isOpenDelayed) handleDelayedOpen();
165
+ else handleOpen();
166
+ }, [providerContext.isOpenDelayed, handleDelayedOpen, handleOpen]),
167
+ onTriggerLeave: React.useCallback(() => {
168
+ if (disableHoverableContent) {
169
+ handleClose();
170
+ } else {
172
171
  window.clearTimeout(openTimerRef.current);
173
- }, [
174
- handleClose,
175
- disableHoverableContent
176
- ]),
172
+ }
173
+ }, [handleClose, disableHoverableContent]),
177
174
  onOpen: handleOpen,
178
175
  onClose: handleClose,
179
- disableHoverableContent: disableHoverableContent
180
- }, children));
181
- };
182
- /*#__PURE__*/ Object.assign($c34afbc43c90cc6f$export$28c660c63b792dea, {
183
- displayName: $c34afbc43c90cc6f$var$TOOLTIP_NAME
184
- });
185
- /* -------------------------------------------------------------------------------------------------
186
- * TooltipTrigger
187
- * -----------------------------------------------------------------------------------------------*/ const $c34afbc43c90cc6f$var$TRIGGER_NAME = 'TooltipTrigger';
188
- const $c34afbc43c90cc6f$export$8c610744efcf8a1d = /*#__PURE__*/ $iVrL9$react.forwardRef((props, forwardedRef)=>{
189
- const { __scopeTooltip: __scopeTooltip , ...triggerProps } = props;
190
- const context = $c34afbc43c90cc6f$var$useTooltipContext($c34afbc43c90cc6f$var$TRIGGER_NAME, __scopeTooltip);
191
- const providerContext = $c34afbc43c90cc6f$var$useTooltipProviderContext($c34afbc43c90cc6f$var$TRIGGER_NAME, __scopeTooltip);
192
- const popperScope = $c34afbc43c90cc6f$var$usePopperScope(__scopeTooltip);
193
- const ref = $iVrL9$react.useRef(null);
194
- const composedRefs = $iVrL9$radixuireactcomposerefs.useComposedRefs(forwardedRef, ref, context.onTriggerChange);
195
- const isPointerDownRef = $iVrL9$react.useRef(false);
196
- const hasPointerMoveOpenedRef = $iVrL9$react.useRef(false);
197
- const handlePointerUp = $iVrL9$react.useCallback(()=>isPointerDownRef.current = false
198
- , []);
199
- $iVrL9$react.useEffect(()=>{
200
- return ()=>document.removeEventListener('pointerup', handlePointerUp)
201
- ;
202
- }, [
203
- handlePointerUp
204
- ]);
205
- return /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactpopper.Anchor, ($parcel$interopDefault($iVrL9$babelruntimehelpersextends))({
206
- asChild: true
207
- }, popperScope), /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactprimitive.Primitive.button, ($parcel$interopDefault($iVrL9$babelruntimehelpersextends))({
208
- // We purposefully avoid adding `type=button` here because tooltip triggers are also
209
- // commonly anchors and the anchor `type` attribute signifies MIME type.
210
- "aria-describedby": context.open ? context.contentId : undefined,
211
- "data-state": context.stateAttribute
212
- }, triggerProps, {
213
- ref: composedRefs,
214
- onPointerMove: $iVrL9$radixuiprimitive.composeEventHandlers(props.onPointerMove, (event)=>{
215
- if (event.pointerType === 'touch') return;
176
+ disableHoverableContent,
177
+ children
178
+ }
179
+ ) });
180
+ };
181
+ Tooltip.displayName = TOOLTIP_NAME;
182
+ var TRIGGER_NAME = "TooltipTrigger";
183
+ var TooltipTrigger = React.forwardRef(
184
+ (props, forwardedRef) => {
185
+ const { __scopeTooltip, ...triggerProps } = props;
186
+ const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
187
+ const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);
188
+ const popperScope = usePopperScope(__scopeTooltip);
189
+ const ref = React.useRef(null);
190
+ const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref, context.onTriggerChange);
191
+ const isPointerDownRef = React.useRef(false);
192
+ const hasPointerMoveOpenedRef = React.useRef(false);
193
+ const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);
194
+ React.useEffect(() => {
195
+ return () => document.removeEventListener("pointerup", handlePointerUp);
196
+ }, [handlePointerUp]);
197
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
198
+ import_react_primitive.Primitive.button,
199
+ {
200
+ "aria-describedby": context.open ? context.contentId : void 0,
201
+ "data-state": context.stateAttribute,
202
+ ...triggerProps,
203
+ ref: composedRefs,
204
+ onPointerMove: (0, import_primitive.composeEventHandlers)(props.onPointerMove, (event) => {
205
+ if (event.pointerType === "touch") return;
216
206
  if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {
217
- context.onTriggerEnter();
218
- hasPointerMoveOpenedRef.current = true;
207
+ context.onTriggerEnter();
208
+ hasPointerMoveOpenedRef.current = true;
219
209
  }
220
- }),
221
- onPointerLeave: $iVrL9$radixuiprimitive.composeEventHandlers(props.onPointerLeave, ()=>{
210
+ }),
211
+ onPointerLeave: (0, import_primitive.composeEventHandlers)(props.onPointerLeave, () => {
222
212
  context.onTriggerLeave();
223
213
  hasPointerMoveOpenedRef.current = false;
224
- }),
225
- onPointerDown: $iVrL9$radixuiprimitive.composeEventHandlers(props.onPointerDown, ()=>{
214
+ }),
215
+ onPointerDown: (0, import_primitive.composeEventHandlers)(props.onPointerDown, () => {
226
216
  isPointerDownRef.current = true;
227
- document.addEventListener('pointerup', handlePointerUp, {
228
- once: true
229
- });
230
- }),
231
- onFocus: $iVrL9$radixuiprimitive.composeEventHandlers(props.onFocus, ()=>{
217
+ document.addEventListener("pointerup", handlePointerUp, { once: true });
218
+ }),
219
+ onFocus: (0, import_primitive.composeEventHandlers)(props.onFocus, () => {
232
220
  if (!isPointerDownRef.current) context.onOpen();
233
- }),
234
- onBlur: $iVrL9$radixuiprimitive.composeEventHandlers(props.onBlur, context.onClose),
235
- onClick: $iVrL9$radixuiprimitive.composeEventHandlers(props.onClick, context.onClose)
236
- })));
237
- });
238
- /*#__PURE__*/ Object.assign($c34afbc43c90cc6f$export$8c610744efcf8a1d, {
239
- displayName: $c34afbc43c90cc6f$var$TRIGGER_NAME
240
- });
241
- /* -------------------------------------------------------------------------------------------------
242
- * TooltipPortal
243
- * -----------------------------------------------------------------------------------------------*/ const $c34afbc43c90cc6f$var$PORTAL_NAME = 'TooltipPortal';
244
- const [$c34afbc43c90cc6f$var$PortalProvider, $c34afbc43c90cc6f$var$usePortalContext] = $c34afbc43c90cc6f$var$createTooltipContext($c34afbc43c90cc6f$var$PORTAL_NAME, {
245
- forceMount: undefined
246
- });
247
- const $c34afbc43c90cc6f$export$7b36b8f925ab7497 = (props)=>{
248
- const { __scopeTooltip: __scopeTooltip , forceMount: forceMount , children: children , container: container } = props;
249
- const context = $c34afbc43c90cc6f$var$useTooltipContext($c34afbc43c90cc6f$var$PORTAL_NAME, __scopeTooltip);
250
- return /*#__PURE__*/ $iVrL9$react.createElement($c34afbc43c90cc6f$var$PortalProvider, {
251
- scope: __scopeTooltip,
252
- forceMount: forceMount
253
- }, /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactpresence.Presence, {
254
- present: forceMount || context.open
255
- }, /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactportal.Portal, {
256
- asChild: true,
257
- container: container
258
- }, children)));
259
- };
260
- /*#__PURE__*/ Object.assign($c34afbc43c90cc6f$export$7b36b8f925ab7497, {
261
- displayName: $c34afbc43c90cc6f$var$PORTAL_NAME
262
- });
263
- /* -------------------------------------------------------------------------------------------------
264
- * TooltipContent
265
- * -----------------------------------------------------------------------------------------------*/ const $c34afbc43c90cc6f$var$CONTENT_NAME = 'TooltipContent';
266
- const $c34afbc43c90cc6f$export$e9003e2be37ec060 = /*#__PURE__*/ $iVrL9$react.forwardRef((props, forwardedRef)=>{
267
- const portalContext = $c34afbc43c90cc6f$var$usePortalContext($c34afbc43c90cc6f$var$CONTENT_NAME, props.__scopeTooltip);
268
- const { forceMount: forceMount = portalContext.forceMount , side: side = 'top' , ...contentProps } = props;
269
- const context = $c34afbc43c90cc6f$var$useTooltipContext($c34afbc43c90cc6f$var$CONTENT_NAME, props.__scopeTooltip);
270
- return /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactpresence.Presence, {
271
- present: forceMount || context.open
272
- }, context.disableHoverableContent ? /*#__PURE__*/ $iVrL9$react.createElement($c34afbc43c90cc6f$var$TooltipContentImpl, ($parcel$interopDefault($iVrL9$babelruntimehelpersextends))({
273
- side: side
274
- }, contentProps, {
275
- ref: forwardedRef
276
- })) : /*#__PURE__*/ $iVrL9$react.createElement($c34afbc43c90cc6f$var$TooltipContentHoverable, ($parcel$interopDefault($iVrL9$babelruntimehelpersextends))({
277
- side: side
278
- }, contentProps, {
279
- ref: forwardedRef
280
- })));
281
- });
282
- const $c34afbc43c90cc6f$var$TooltipContentHoverable = /*#__PURE__*/ $iVrL9$react.forwardRef((props, forwardedRef)=>{
283
- const context = $c34afbc43c90cc6f$var$useTooltipContext($c34afbc43c90cc6f$var$CONTENT_NAME, props.__scopeTooltip);
284
- const providerContext = $c34afbc43c90cc6f$var$useTooltipProviderContext($c34afbc43c90cc6f$var$CONTENT_NAME, props.__scopeTooltip);
285
- const ref = $iVrL9$react.useRef(null);
286
- const composedRefs = $iVrL9$radixuireactcomposerefs.useComposedRefs(forwardedRef, ref);
287
- const [pointerGraceArea, setPointerGraceArea] = $iVrL9$react.useState(null);
288
- const { trigger: trigger , onClose: onClose } = context;
221
+ }),
222
+ onBlur: (0, import_primitive.composeEventHandlers)(props.onBlur, context.onClose),
223
+ onClick: (0, import_primitive.composeEventHandlers)(props.onClick, context.onClose)
224
+ }
225
+ ) });
226
+ }
227
+ );
228
+ TooltipTrigger.displayName = TRIGGER_NAME;
229
+ var PORTAL_NAME = "TooltipPortal";
230
+ var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
231
+ forceMount: void 0
232
+ });
233
+ var TooltipPortal = (props) => {
234
+ const { __scopeTooltip, forceMount, children, container } = props;
235
+ const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
236
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_portal.Portal, { asChild: true, container, children }) }) });
237
+ };
238
+ TooltipPortal.displayName = PORTAL_NAME;
239
+ var CONTENT_NAME = "TooltipContent";
240
+ var TooltipContent = React.forwardRef(
241
+ (props, forwardedRef) => {
242
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
243
+ const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
244
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
245
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_presence.Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });
246
+ }
247
+ );
248
+ var TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {
249
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
250
+ const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);
251
+ const ref = React.useRef(null);
252
+ const composedRefs = (0, import_react_compose_refs.useComposedRefs)(forwardedRef, ref);
253
+ const [pointerGraceArea, setPointerGraceArea] = React.useState(null);
254
+ const { trigger, onClose } = context;
289
255
  const content = ref.current;
290
- const { onPointerInTransitChange: onPointerInTransitChange } = providerContext;
291
- const handleRemoveGraceArea = $iVrL9$react.useCallback(()=>{
292
- setPointerGraceArea(null);
293
- onPointerInTransitChange(false);
294
- }, [
295
- onPointerInTransitChange
296
- ]);
297
- const handleCreateGraceArea = $iVrL9$react.useCallback((event, hoverTarget)=>{
256
+ const { onPointerInTransitChange } = providerContext;
257
+ const handleRemoveGraceArea = React.useCallback(() => {
258
+ setPointerGraceArea(null);
259
+ onPointerInTransitChange(false);
260
+ }, [onPointerInTransitChange]);
261
+ const handleCreateGraceArea = React.useCallback(
262
+ (event, hoverTarget) => {
298
263
  const currentTarget = event.currentTarget;
299
- const exitPoint = {
300
- x: event.clientX,
301
- y: event.clientY
302
- };
303
- const exitSide = $c34afbc43c90cc6f$var$getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
304
- const paddedExitPoints = $c34afbc43c90cc6f$var$getPaddedExitPoints(exitPoint, exitSide);
305
- const hoverTargetPoints = $c34afbc43c90cc6f$var$getPointsFromRect(hoverTarget.getBoundingClientRect());
306
- const graceArea = $c34afbc43c90cc6f$var$getHull([
307
- ...paddedExitPoints,
308
- ...hoverTargetPoints
309
- ]);
264
+ const exitPoint = { x: event.clientX, y: event.clientY };
265
+ const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
266
+ const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);
267
+ const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
268
+ const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);
310
269
  setPointerGraceArea(graceArea);
311
270
  onPointerInTransitChange(true);
312
- }, [
313
- onPointerInTransitChange
314
- ]);
315
- $iVrL9$react.useEffect(()=>{
316
- return ()=>handleRemoveGraceArea()
317
- ;
318
- }, [
319
- handleRemoveGraceArea
320
- ]);
321
- $iVrL9$react.useEffect(()=>{
322
- if (trigger && content) {
323
- const handleTriggerLeave = (event)=>handleCreateGraceArea(event, content)
324
- ;
325
- const handleContentLeave = (event)=>handleCreateGraceArea(event, trigger)
326
- ;
327
- trigger.addEventListener('pointerleave', handleTriggerLeave);
328
- content.addEventListener('pointerleave', handleContentLeave);
329
- return ()=>{
330
- trigger.removeEventListener('pointerleave', handleTriggerLeave);
331
- content.removeEventListener('pointerleave', handleContentLeave);
332
- };
333
- }
334
- }, [
335
- trigger,
336
- content,
337
- handleCreateGraceArea,
338
- handleRemoveGraceArea
339
- ]);
340
- $iVrL9$react.useEffect(()=>{
341
- if (pointerGraceArea) {
342
- const handleTrackPointerGrace = (event)=>{
343
- const target = event.target;
344
- const pointerPosition = {
345
- x: event.clientX,
346
- y: event.clientY
347
- };
348
- const hasEnteredTarget = (trigger === null || trigger === void 0 ? void 0 : trigger.contains(target)) || (content === null || content === void 0 ? void 0 : content.contains(target));
349
- const isPointerOutsideGraceArea = !$c34afbc43c90cc6f$var$isPointInPolygon(pointerPosition, pointerGraceArea);
350
- if (hasEnteredTarget) handleRemoveGraceArea();
351
- else if (isPointerOutsideGraceArea) {
352
- handleRemoveGraceArea();
353
- onClose();
354
- }
355
- };
356
- document.addEventListener('pointermove', handleTrackPointerGrace);
357
- return ()=>document.removeEventListener('pointermove', handleTrackPointerGrace)
358
- ;
359
- }
360
- }, [
361
- trigger,
362
- content,
363
- pointerGraceArea,
364
- onClose,
365
- handleRemoveGraceArea
366
- ]);
367
- return /*#__PURE__*/ $iVrL9$react.createElement($c34afbc43c90cc6f$var$TooltipContentImpl, ($parcel$interopDefault($iVrL9$babelruntimehelpersextends))({}, props, {
368
- ref: composedRefs
369
- }));
370
- });
371
- const [$c34afbc43c90cc6f$var$VisuallyHiddenContentContextProvider, $c34afbc43c90cc6f$var$useVisuallyHiddenContentContext] = $c34afbc43c90cc6f$var$createTooltipContext($c34afbc43c90cc6f$var$TOOLTIP_NAME, {
372
- isInside: false
373
- });
374
- const $c34afbc43c90cc6f$var$TooltipContentImpl = /*#__PURE__*/ $iVrL9$react.forwardRef((props, forwardedRef)=>{
375
- const { __scopeTooltip: __scopeTooltip , children: children , 'aria-label': ariaLabel , onEscapeKeyDown: onEscapeKeyDown , onPointerDownOutside: onPointerDownOutside , ...contentProps } = props;
376
- const context = $c34afbc43c90cc6f$var$useTooltipContext($c34afbc43c90cc6f$var$CONTENT_NAME, __scopeTooltip);
377
- const popperScope = $c34afbc43c90cc6f$var$usePopperScope(__scopeTooltip);
378
- const { onClose: onClose } = context; // Close this tooltip if another one opens
379
- $iVrL9$react.useEffect(()=>{
380
- document.addEventListener($c34afbc43c90cc6f$var$TOOLTIP_OPEN, onClose);
381
- return ()=>document.removeEventListener($c34afbc43c90cc6f$var$TOOLTIP_OPEN, onClose)
382
- ;
383
- }, [
384
- onClose
385
- ]); // Close the tooltip if the trigger is scrolled
386
- $iVrL9$react.useEffect(()=>{
271
+ },
272
+ [onPointerInTransitChange]
273
+ );
274
+ React.useEffect(() => {
275
+ return () => handleRemoveGraceArea();
276
+ }, [handleRemoveGraceArea]);
277
+ React.useEffect(() => {
278
+ if (trigger && content) {
279
+ const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);
280
+ const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);
281
+ trigger.addEventListener("pointerleave", handleTriggerLeave);
282
+ content.addEventListener("pointerleave", handleContentLeave);
283
+ return () => {
284
+ trigger.removeEventListener("pointerleave", handleTriggerLeave);
285
+ content.removeEventListener("pointerleave", handleContentLeave);
286
+ };
287
+ }
288
+ }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);
289
+ React.useEffect(() => {
290
+ if (pointerGraceArea) {
291
+ const handleTrackPointerGrace = (event) => {
292
+ const target = event.target;
293
+ const pointerPosition = { x: event.clientX, y: event.clientY };
294
+ const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);
295
+ const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
296
+ if (hasEnteredTarget) {
297
+ handleRemoveGraceArea();
298
+ } else if (isPointerOutsideGraceArea) {
299
+ handleRemoveGraceArea();
300
+ onClose();
301
+ }
302
+ };
303
+ document.addEventListener("pointermove", handleTrackPointerGrace);
304
+ return () => document.removeEventListener("pointermove", handleTrackPointerGrace);
305
+ }
306
+ }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);
307
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TooltipContentImpl, { ...props, ref: composedRefs });
308
+ });
309
+ var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });
310
+ var TooltipContentImpl = React.forwardRef(
311
+ (props, forwardedRef) => {
312
+ const {
313
+ __scopeTooltip,
314
+ children,
315
+ "aria-label": ariaLabel,
316
+ onEscapeKeyDown,
317
+ onPointerDownOutside,
318
+ ...contentProps
319
+ } = props;
320
+ const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
321
+ const popperScope = usePopperScope(__scopeTooltip);
322
+ const { onClose } = context;
323
+ React.useEffect(() => {
324
+ document.addEventListener(TOOLTIP_OPEN, onClose);
325
+ return () => document.removeEventListener(TOOLTIP_OPEN, onClose);
326
+ }, [onClose]);
327
+ React.useEffect(() => {
387
328
  if (context.trigger) {
388
- const handleScroll = (event)=>{
389
- const target = event.target;
390
- if (target !== null && target !== void 0 && target.contains(context.trigger)) onClose();
391
- };
392
- window.addEventListener('scroll', handleScroll, {
393
- capture: true
394
- });
395
- return ()=>window.removeEventListener('scroll', handleScroll, {
396
- capture: true
397
- })
398
- ;
329
+ const handleScroll = (event) => {
330
+ const target = event.target;
331
+ if (target?.contains(context.trigger)) onClose();
332
+ };
333
+ window.addEventListener("scroll", handleScroll, { capture: true });
334
+ return () => window.removeEventListener("scroll", handleScroll, { capture: true });
399
335
  }
400
- }, [
401
- context.trigger,
402
- onClose
403
- ]);
404
- return /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactdismissablelayer.DismissableLayer, {
405
- asChild: true,
406
- disableOutsidePointerEvents: false,
407
- onEscapeKeyDown: onEscapeKeyDown,
408
- onPointerDownOutside: onPointerDownOutside,
409
- onFocusOutside: (event)=>event.preventDefault()
410
- ,
411
- onDismiss: onClose
412
- }, /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactpopper.Content, ($parcel$interopDefault($iVrL9$babelruntimehelpersextends))({
413
- "data-state": context.stateAttribute
414
- }, popperScope, contentProps, {
415
- ref: forwardedRef,
416
- style: {
417
- ...contentProps.style,
418
- '--radix-tooltip-content-transform-origin': 'var(--radix-popper-transform-origin)',
419
- '--radix-tooltip-content-available-width': 'var(--radix-popper-available-width)',
420
- '--radix-tooltip-content-available-height': 'var(--radix-popper-available-height)',
421
- '--radix-tooltip-trigger-width': 'var(--radix-popper-anchor-width)',
422
- '--radix-tooltip-trigger-height': 'var(--radix-popper-anchor-height)'
336
+ }, [context.trigger, onClose]);
337
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
338
+ import_react_dismissable_layer.DismissableLayer,
339
+ {
340
+ asChild: true,
341
+ disableOutsidePointerEvents: false,
342
+ onEscapeKeyDown,
343
+ onPointerDownOutside,
344
+ onFocusOutside: (event) => event.preventDefault(),
345
+ onDismiss: onClose,
346
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
347
+ PopperPrimitive.Content,
348
+ {
349
+ "data-state": context.stateAttribute,
350
+ ...popperScope,
351
+ ...contentProps,
352
+ ref: forwardedRef,
353
+ style: {
354
+ ...contentProps.style,
355
+ // re-namespace exposed content custom properties
356
+ ...{
357
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
358
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
359
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
360
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
361
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
362
+ }
363
+ },
364
+ children: [
365
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react_slot.Slottable, { children }),
366
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: "tooltip", children: ariaLabel || children }) })
367
+ ]
368
+ }
369
+ )
423
370
  }
424
- }), /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactslot.Slottable, null, children), /*#__PURE__*/ $iVrL9$react.createElement($c34afbc43c90cc6f$var$VisuallyHiddenContentContextProvider, {
425
- scope: __scopeTooltip,
426
- isInside: true
427
- }, /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactvisuallyhidden.Root, {
428
- id: context.contentId,
429
- role: "tooltip"
430
- }, ariaLabel || children))));
431
- });
432
- /*#__PURE__*/ Object.assign($c34afbc43c90cc6f$export$e9003e2be37ec060, {
433
- displayName: $c34afbc43c90cc6f$var$CONTENT_NAME
434
- });
435
- /* -------------------------------------------------------------------------------------------------
436
- * TooltipArrow
437
- * -----------------------------------------------------------------------------------------------*/ const $c34afbc43c90cc6f$var$ARROW_NAME = 'TooltipArrow';
438
- const $c34afbc43c90cc6f$export$c27ee0ad710f7559 = /*#__PURE__*/ $iVrL9$react.forwardRef((props, forwardedRef)=>{
439
- const { __scopeTooltip: __scopeTooltip , ...arrowProps } = props;
440
- const popperScope = $c34afbc43c90cc6f$var$usePopperScope(__scopeTooltip);
441
- const visuallyHiddenContentContext = $c34afbc43c90cc6f$var$useVisuallyHiddenContentContext($c34afbc43c90cc6f$var$ARROW_NAME, __scopeTooltip); // if the arrow is inside the `VisuallyHidden`, we don't want to render it all to
442
- // prevent issues in positioning the arrow due to the duplicate
443
- return visuallyHiddenContentContext.isInside ? null : /*#__PURE__*/ $iVrL9$react.createElement($iVrL9$radixuireactpopper.Arrow, ($parcel$interopDefault($iVrL9$babelruntimehelpersextends))({}, popperScope, arrowProps, {
444
- ref: forwardedRef
445
- }));
446
- });
447
- /*#__PURE__*/ Object.assign($c34afbc43c90cc6f$export$c27ee0ad710f7559, {
448
- displayName: $c34afbc43c90cc6f$var$ARROW_NAME
449
- });
450
- /* -----------------------------------------------------------------------------------------------*/ function $c34afbc43c90cc6f$var$getExitSideFromRect(point, rect) {
371
+ );
372
+ }
373
+ );
374
+ TooltipContent.displayName = CONTENT_NAME;
375
+ var ARROW_NAME = "TooltipArrow";
376
+ var TooltipArrow = React.forwardRef(
377
+ (props, forwardedRef) => {
378
+ const { __scopeTooltip, ...arrowProps } = props;
379
+ const popperScope = usePopperScope(__scopeTooltip);
380
+ const visuallyHiddenContentContext = useVisuallyHiddenContentContext(
381
+ ARROW_NAME,
382
+ __scopeTooltip
383
+ );
384
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });
385
+ }
386
+ );
387
+ TooltipArrow.displayName = ARROW_NAME;
388
+ function getExitSideFromRect(point, rect) {
451
389
  const top = Math.abs(rect.top - point.y);
452
390
  const bottom = Math.abs(rect.bottom - point.y);
453
391
  const right = Math.abs(rect.right - point.x);
454
392
  const left = Math.abs(rect.left - point.x);
455
- switch(Math.min(top, bottom, right, left)){
456
- case left:
457
- return 'left';
458
- case right:
459
- return 'right';
460
- case top:
461
- return 'top';
462
- case bottom:
463
- return 'bottom';
464
- default:
465
- throw new Error('unreachable');
393
+ switch (Math.min(top, bottom, right, left)) {
394
+ case left:
395
+ return "left";
396
+ case right:
397
+ return "right";
398
+ case top:
399
+ return "top";
400
+ case bottom:
401
+ return "bottom";
402
+ default:
403
+ throw new Error("unreachable");
466
404
  }
467
- }
468
- function $c34afbc43c90cc6f$var$getPaddedExitPoints(exitPoint, exitSide, padding = 5) {
405
+ }
406
+ function getPaddedExitPoints(exitPoint, exitSide, padding = 5) {
469
407
  const paddedExitPoints = [];
470
- switch(exitSide){
471
- case 'top':
472
- paddedExitPoints.push({
473
- x: exitPoint.x - padding,
474
- y: exitPoint.y + padding
475
- }, {
476
- x: exitPoint.x + padding,
477
- y: exitPoint.y + padding
478
- });
479
- break;
480
- case 'bottom':
481
- paddedExitPoints.push({
482
- x: exitPoint.x - padding,
483
- y: exitPoint.y - padding
484
- }, {
485
- x: exitPoint.x + padding,
486
- y: exitPoint.y - padding
487
- });
488
- break;
489
- case 'left':
490
- paddedExitPoints.push({
491
- x: exitPoint.x + padding,
492
- y: exitPoint.y - padding
493
- }, {
494
- x: exitPoint.x + padding,
495
- y: exitPoint.y + padding
496
- });
497
- break;
498
- case 'right':
499
- paddedExitPoints.push({
500
- x: exitPoint.x - padding,
501
- y: exitPoint.y - padding
502
- }, {
503
- x: exitPoint.x - padding,
504
- y: exitPoint.y + padding
505
- });
506
- break;
408
+ switch (exitSide) {
409
+ case "top":
410
+ paddedExitPoints.push(
411
+ { x: exitPoint.x - padding, y: exitPoint.y + padding },
412
+ { x: exitPoint.x + padding, y: exitPoint.y + padding }
413
+ );
414
+ break;
415
+ case "bottom":
416
+ paddedExitPoints.push(
417
+ { x: exitPoint.x - padding, y: exitPoint.y - padding },
418
+ { x: exitPoint.x + padding, y: exitPoint.y - padding }
419
+ );
420
+ break;
421
+ case "left":
422
+ paddedExitPoints.push(
423
+ { x: exitPoint.x + padding, y: exitPoint.y - padding },
424
+ { x: exitPoint.x + padding, y: exitPoint.y + padding }
425
+ );
426
+ break;
427
+ case "right":
428
+ paddedExitPoints.push(
429
+ { x: exitPoint.x - padding, y: exitPoint.y - padding },
430
+ { x: exitPoint.x - padding, y: exitPoint.y + padding }
431
+ );
432
+ break;
507
433
  }
508
434
  return paddedExitPoints;
509
- }
510
- function $c34afbc43c90cc6f$var$getPointsFromRect(rect) {
511
- const { top: top , right: right , bottom: bottom , left: left } = rect;
435
+ }
436
+ function getPointsFromRect(rect) {
437
+ const { top, right, bottom, left } = rect;
512
438
  return [
513
- {
514
- x: left,
515
- y: top
516
- },
517
- {
518
- x: right,
519
- y: top
520
- },
521
- {
522
- x: right,
523
- y: bottom
524
- },
525
- {
526
- x: left,
527
- y: bottom
528
- }
439
+ { x: left, y: top },
440
+ { x: right, y: top },
441
+ { x: right, y: bottom },
442
+ { x: left, y: bottom }
529
443
  ];
530
- } // Determine if a point is inside of a polygon.
531
- // Based on https://github.com/substack/point-in-polygon
532
- function $c34afbc43c90cc6f$var$isPointInPolygon(point, polygon) {
533
- const { x: x , y: y } = point;
444
+ }
445
+ function isPointInPolygon(point, polygon) {
446
+ const { x, y } = point;
534
447
  let inside = false;
535
- for(let i = 0, j = polygon.length - 1; i < polygon.length; j = i++){
536
- const xi = polygon[i].x;
537
- const yi = polygon[i].y;
538
- const xj = polygon[j].x;
539
- const yj = polygon[j].y; // prettier-ignore
540
- const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
541
- if (intersect) inside = !inside;
448
+ for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {
449
+ const xi = polygon[i].x;
450
+ const yi = polygon[i].y;
451
+ const xj = polygon[j].x;
452
+ const yj = polygon[j].y;
453
+ const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
454
+ if (intersect) inside = !inside;
542
455
  }
543
456
  return inside;
544
- } // Returns a new array of points representing the convex hull of the given set of points.
545
- // https://www.nayuki.io/page/convex-hull-algorithm
546
- function $c34afbc43c90cc6f$var$getHull(points) {
457
+ }
458
+ function getHull(points) {
547
459
  const newPoints = points.slice();
548
- newPoints.sort((a, b)=>{
549
- if (a.x < b.x) return -1;
550
- else if (a.x > b.x) return 1;
551
- else if (a.y < b.y) return -1;
552
- else if (a.y > b.y) return 1;
553
- else return 0;
460
+ newPoints.sort((a, b) => {
461
+ if (a.x < b.x) return -1;
462
+ else if (a.x > b.x) return 1;
463
+ else if (a.y < b.y) return -1;
464
+ else if (a.y > b.y) return 1;
465
+ else return 0;
554
466
  });
555
- return $c34afbc43c90cc6f$var$getHullPresorted(newPoints);
556
- } // Returns the convex hull, assuming that each points[i] <= points[i + 1]. Runs in O(n) time.
557
- function $c34afbc43c90cc6f$var$getHullPresorted(points) {
467
+ return getHullPresorted(newPoints);
468
+ }
469
+ function getHullPresorted(points) {
558
470
  if (points.length <= 1) return points.slice();
559
471
  const upperHull = [];
560
- for(let i = 0; i < points.length; i++){
561
- const p = points[i];
562
- while(upperHull.length >= 2){
563
- const q = upperHull[upperHull.length - 1];
564
- const r = upperHull[upperHull.length - 2];
565
- if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();
566
- else break;
567
- }
568
- upperHull.push(p);
472
+ for (let i = 0; i < points.length; i++) {
473
+ const p = points[i];
474
+ while (upperHull.length >= 2) {
475
+ const q = upperHull[upperHull.length - 1];
476
+ const r = upperHull[upperHull.length - 2];
477
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();
478
+ else break;
479
+ }
480
+ upperHull.push(p);
569
481
  }
570
482
  upperHull.pop();
571
483
  const lowerHull = [];
572
- for(let i1 = points.length - 1; i1 >= 0; i1--){
573
- const p = points[i1];
574
- while(lowerHull.length >= 2){
575
- const q = lowerHull[lowerHull.length - 1];
576
- const r = lowerHull[lowerHull.length - 2];
577
- if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();
578
- else break;
579
- }
580
- lowerHull.push(p);
484
+ for (let i = points.length - 1; i >= 0; i--) {
485
+ const p = points[i];
486
+ while (lowerHull.length >= 2) {
487
+ const q = lowerHull[lowerHull.length - 1];
488
+ const r = lowerHull[lowerHull.length - 2];
489
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();
490
+ else break;
491
+ }
492
+ lowerHull.push(p);
581
493
  }
582
494
  lowerHull.pop();
583
- if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) return upperHull;
584
- else return upperHull.concat(lowerHull);
585
- }
586
- const $c34afbc43c90cc6f$export$2881499e37b75b9a = $c34afbc43c90cc6f$export$f78649fb9ca566b8;
587
- const $c34afbc43c90cc6f$export$be92b6f5f03c0fe9 = $c34afbc43c90cc6f$export$28c660c63b792dea;
588
- const $c34afbc43c90cc6f$export$41fb9f06171c75f4 = $c34afbc43c90cc6f$export$8c610744efcf8a1d;
589
- const $c34afbc43c90cc6f$export$602eac185826482c = $c34afbc43c90cc6f$export$7b36b8f925ab7497;
590
- const $c34afbc43c90cc6f$export$7c6e2c02157bb7d2 = $c34afbc43c90cc6f$export$e9003e2be37ec060;
591
- const $c34afbc43c90cc6f$export$21b07c8f274aebd5 = $c34afbc43c90cc6f$export$c27ee0ad710f7559;
592
-
593
-
594
-
595
-
495
+ if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {
496
+ return upperHull;
497
+ } else {
498
+ return upperHull.concat(lowerHull);
499
+ }
500
+ }
501
+ var Provider = TooltipProvider;
502
+ var Root3 = Tooltip;
503
+ var Trigger = TooltipTrigger;
504
+ var Portal = TooltipPortal;
505
+ var Content2 = TooltipContent;
506
+ var Arrow2 = TooltipArrow;
507
+ })();
596
508
  //# sourceMappingURL=index.js.map