@tamagui/tooltip 1.7.5 → 1.7.7
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/cjs/Tooltip.js +93 -94
- package/dist/cjs/Tooltip.js.map +3 -3
- package/dist/esm/Tooltip.js +98 -95
- package/dist/esm/Tooltip.js.map +3 -3
- package/dist/esm/Tooltip.mjs +98 -95
- package/dist/esm/Tooltip.mjs.map +3 -3
- package/dist/jsx/Tooltip.js +91 -88
- package/dist/jsx/Tooltip.js.map +3 -3
- package/dist/jsx/Tooltip.mjs +91 -88
- package/dist/jsx/Tooltip.mjs.map +3 -3
- package/package.json +13 -13
- package/src/Tooltip.tsx +116 -108
- package/types/Tooltip.d.ts +25 -10
- package/types/Tooltip.d.ts.map +1 -1
package/dist/cjs/Tooltip.js
CHANGED
|
@@ -28,7 +28,7 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
29
|
var Tooltip_exports = {};
|
|
30
30
|
__export(Tooltip_exports, {
|
|
31
|
-
Tooltip: () =>
|
|
31
|
+
Tooltip: () => Tooltip2,
|
|
32
32
|
TooltipGroup: () => TooltipGroup
|
|
33
33
|
});
|
|
34
34
|
module.exports = __toCommonJS(Tooltip_exports);
|
|
@@ -41,24 +41,26 @@ var import_get_size = require("@tamagui/get-size");
|
|
|
41
41
|
var import_popover = require("@tamagui/popover");
|
|
42
42
|
var import_popper = require("@tamagui/popper");
|
|
43
43
|
var React = __toESM(require("react"));
|
|
44
|
-
const TooltipContent =
|
|
45
|
-
(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
44
|
+
const TooltipContent = import_popper.PopperContentFrame.extractable(
|
|
45
|
+
React.forwardRef(
|
|
46
|
+
({ __scopePopover, ...props }, ref) => {
|
|
47
|
+
const popperScope = (0, import_popover.usePopoverScope)(__scopePopover);
|
|
48
|
+
const popper = (0, import_popper.usePopperContext)("PopperContent", popperScope["__scopePopper"]);
|
|
49
|
+
const padding = props.size || popper.size || (0, import_get_size.stepTokenUpOrDown)("size", "$true", -2);
|
|
50
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
51
|
+
import_popover.PopoverContent,
|
|
52
|
+
{
|
|
53
|
+
componentName: "Tooltip",
|
|
54
|
+
disableRemoveScroll: true,
|
|
55
|
+
trapFocus: false,
|
|
56
|
+
padding,
|
|
57
|
+
pointerEvents: "none",
|
|
58
|
+
ref,
|
|
59
|
+
...props
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
)
|
|
62
64
|
);
|
|
63
65
|
const TooltipArrow = React.forwardRef((props, ref) => {
|
|
64
66
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popover.PopoverArrow, { componentName: "Tooltip", ref, ...props });
|
|
@@ -66,83 +68,80 @@ const TooltipArrow = React.forwardRef((props, ref) => {
|
|
|
66
68
|
const TooltipGroup = ({ children, delay }) => {
|
|
67
69
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.FloatingDelayGroup, { delay: React.useMemo(() => delay, [JSON.stringify(delay)]), children });
|
|
68
70
|
};
|
|
69
|
-
const
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
71
|
+
const TooltipComponent = React.forwardRef(function Tooltip(props, ref) {
|
|
72
|
+
const {
|
|
73
|
+
__scopePopover,
|
|
74
|
+
children,
|
|
75
|
+
delay: delayProp,
|
|
76
|
+
restMs = typeof delayProp === "undefined" ? 500 : typeof delayProp === "number" ? delayProp : 0,
|
|
77
|
+
onOpenChange: onOpenChangeProp,
|
|
78
|
+
focus,
|
|
79
|
+
...restProps
|
|
80
|
+
} = props;
|
|
81
|
+
const popperScope = (0, import_popover.usePopoverScope)(__scopePopover);
|
|
82
|
+
const triggerRef = React.useRef(null);
|
|
83
|
+
const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
|
|
84
|
+
const { delay: delayGroup, setCurrentId } = (0, import_react.useDelayGroupContext)();
|
|
85
|
+
const delay = delayProp ?? delayGroup;
|
|
86
|
+
const [open, setOpen] = React.useState(false);
|
|
87
|
+
const id = props.groupId;
|
|
88
|
+
const onOpenChange = (0, import_core.useEvent)((open2) => {
|
|
89
|
+
setOpen(open2);
|
|
90
|
+
if (open2) {
|
|
91
|
+
setCurrentId(id);
|
|
92
|
+
}
|
|
93
|
+
onOpenChangeProp == null ? void 0 : onOpenChangeProp(open2);
|
|
94
|
+
});
|
|
95
|
+
const useFloatingFn = (props2) => {
|
|
96
|
+
const floating = (0, import_react.useFloating)({
|
|
97
|
+
...props2,
|
|
98
|
+
open,
|
|
99
|
+
onOpenChange
|
|
93
100
|
});
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
})
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
(0, import_react.useDelayGroup)(floating.context, { id })
|
|
106
|
-
]);
|
|
107
|
-
return {
|
|
108
|
-
...floating,
|
|
109
|
-
getReferenceProps,
|
|
110
|
-
getFloatingProps
|
|
111
|
-
};
|
|
101
|
+
const { getReferenceProps, getFloatingProps } = (0, import_react.useInteractions)([
|
|
102
|
+
(0, import_react.useHover)(floating.context, { delay, restMs }),
|
|
103
|
+
(0, import_react.useFocus)(floating.context, focus),
|
|
104
|
+
(0, import_react.useRole)(floating.context, { role: "tooltip" }),
|
|
105
|
+
(0, import_react.useDismiss)(floating.context),
|
|
106
|
+
(0, import_react.useDelayGroup)(floating.context, { id })
|
|
107
|
+
]);
|
|
108
|
+
return {
|
|
109
|
+
...floating,
|
|
110
|
+
getReferenceProps,
|
|
111
|
+
getFloatingProps
|
|
112
112
|
};
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
);
|
|
145
|
-
Tooltip.displayName = "Tooltip";
|
|
113
|
+
};
|
|
114
|
+
const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open]);
|
|
115
|
+
const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), []);
|
|
116
|
+
const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), []);
|
|
117
|
+
const contentId = (0, import_core.useId)();
|
|
118
|
+
const twoSmallerKey = (0, import_get_size.stepTokenUpOrDown)("size", "$true", -2).key;
|
|
119
|
+
const size = `$${twoSmallerKey}`;
|
|
120
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_floating.FloatingOverrideContext.Provider, { value: useFloatingContext, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popper.Popper, { size, ...popperScope, ...restProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
121
|
+
import_popover.__PopoverProviderInternal,
|
|
122
|
+
{
|
|
123
|
+
scope: __scopePopover,
|
|
124
|
+
popperScope: popperScope.__scopePopper,
|
|
125
|
+
contentId,
|
|
126
|
+
triggerRef,
|
|
127
|
+
sheetBreakpoint: false,
|
|
128
|
+
scopeKey: "",
|
|
129
|
+
open,
|
|
130
|
+
onOpenChange: setOpen,
|
|
131
|
+
onOpenToggle: voidFn,
|
|
132
|
+
hasCustomAnchor,
|
|
133
|
+
onCustomAnchorAdd,
|
|
134
|
+
onCustomAnchorRemove,
|
|
135
|
+
children
|
|
136
|
+
}
|
|
137
|
+
) }) });
|
|
138
|
+
});
|
|
139
|
+
const Tooltip2 = (0, import_core.withStaticProperties)(TooltipComponent, {
|
|
140
|
+
Anchor: import_popover.PopoverAnchor,
|
|
141
|
+
Arrow: TooltipArrow,
|
|
142
|
+
Content: TooltipContent,
|
|
143
|
+
Trigger: import_popover.PopoverTrigger
|
|
144
|
+
});
|
|
146
145
|
const voidFn = () => {
|
|
147
146
|
};
|
|
148
147
|
// Annotate the CommonJS export names for ESM import in node:
|
package/dist/cjs/Tooltip.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Tooltip.tsx"],
|
|
4
|
-
"sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
6
|
-
"names": ["open", "props"]
|
|
4
|
+
"sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport {\n Popper,\n PopperContentFrame,\n PopperProps,\n usePopperContext,\n} from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = PopperContentFrame.extractable(\n React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"Tooltip\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n )\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"Tooltip\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n focus?: {\n enabled?: boolean\n keyboardOnly?: boolean\n }\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nconst TooltipComponent = React.forwardRef(function Tooltip(\n props: ScopedProps<TooltipProps, 'Popover'>,\n // theres no real ref here but React complaining need to see why see SandboxCustomStyledAnimatedTooltip.ts\n ref\n) {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n focus,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context, focus),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n})\n\nexport const Tooltip = withStaticProperties(TooltipComponent, {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n})\n\nconst voidFn = () => {}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,iBAAAA;AAAA,EAAA;AAAA;AAAA;AA6CQ;AA7CR,0BAAO;AAEP,mBAUO;AACP,kBAAkE;AAElE,sBAAuD;AACvD,sBAAkC;AAClC,qBASO;AACP,oBAKO;AACP,YAAuB;AAEvB,MAAM,iBAAiB,iCAAmB;AAAA,EACxC,MAAM;AAAA,IACJ,CACE,EAAE,gBAAgB,GAAG,MAAM,GAC3B,QACG;AACH,YAAM,kBAAc,gCAAgB,cAAc;AAClD,YAAM,aAAS,gCAAiB,iBAAiB,YAAY,eAAe,CAAC;AAC7E,YAAM,UAAU,MAAM,QAAQ,OAAO,YAAQ,mCAAkB,QAAQ,SAAS,EAAE;AAClF,aACE;AAAA,QAAC;AAAA;AAAA,UACC,eAAc;AAAA,UACd,qBAAmB;AAAA,UACnB,WAAW;AAAA,UACX;AAAA,UACA,eAAc;AAAA,UACd;AAAA,UACC,GAAG;AAAA;AAAA,MACN;AAAA,IAEJ;AAAA,EACF;AACF;AAEA,MAAM,eAAe,MAAM,WAAW,CAAC,OAA0B,QAAa;AAC5E,SAAO,4CAAC,+BAAa,eAAc,WAAU,KAAW,GAAG,OAAO;AACpE,CAAC;AA0BM,MAAM,eAAe,CAAC,EAAE,UAAU,MAAM,MAAwC;AACrF,SACE,4CAAC,mCAAmB,OAAO,MAAM,QAAQ,MAAM,OAAO,CAAC,KAAK,UAAU,KAAK,CAAC,CAAC,GAC1E,UACH;AAEJ;AAEA,MAAM,mBAAmB,MAAM,WAAW,SAAS,QACjD,OAEA,KACA;AACA,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA,OAAO;AAAA,IACP,SAAS,OAAO,cAAc,cAC1B,MACA,OAAO,cAAc,WACrB,YACA;AAAA,IACJ,cAAc;AAAA,IACd;AAAA,IACA,GAAG;AAAA,EACL,IAAI;AACJ,QAAM,kBAAc,gCAAgB,cAAc;AAClD,QAAM,aAAa,MAAM,OAA0B,IAAI;AACvD,QAAM,CAAC,iBAAiB,kBAAkB,IAAI,MAAM,SAAS,KAAK;AAClE,QAAM,EAAE,OAAO,YAAY,aAAa,QAAI,mCAAqB;AACjE,QAAM,QAAQ,aAAa;AAC3B,QAAM,CAAC,MAAM,OAAO,IAAI,MAAM,SAAS,KAAK;AAC5C,QAAM,KAAK,MAAM;AAEjB,QAAM,mBAAe,sBAAS,CAACC,UAAS;AACtC,YAAQA,KAAI;AACZ,QAAIA,OAAM;AACR,mBAAa,EAAE;AAAA,IACjB;AACA,yDAAmBA;AAAA,EACrB,CAAC;AAED,QAAM,gBAA+B,CAACC,WAAU;AAE9C,UAAM,eAAW,0BAAY;AAAA,MAC3B,GAAGA;AAAA,MACH;AAAA,MACA;AAAA,IACF,CAAC;AACD,UAAM,EAAE,mBAAmB,iBAAiB,QAAI,8BAAgB;AAAA,UAC9D,uBAAS,SAAS,SAAS,EAAE,OAAO,OAAO,CAAC;AAAA,UAC5C,uBAAS,SAAS,SAAS,KAAK;AAAA,UAChC,sBAAQ,SAAS,SAAS,EAAE,MAAM,UAAU,CAAC;AAAA,UAC7C,yBAAW,SAAS,OAAO;AAAA,UAC3B,4BAAc,SAAS,SAAS,EAAE,GAAG,CAAC;AAAA,IACxC,CAAC;AACD,WAAO;AAAA,MACL,GAAG;AAAA,MACH;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAEA,QAAM,qBAAqB,MAAM,YAAY,eAAe,CAAC,IAAI,OAAO,IAAI,CAAC;AAC7E,QAAM,oBAAoB,MAAM,YAAY,MAAM,mBAAmB,IAAI,GAAG,CAAC,CAAC;AAC9E,QAAM,uBAAuB,MAAM,YAAY,MAAM,mBAAmB,KAAK,GAAG,CAAC,CAAC;AAClF,QAAM,gBAAY,mBAAM;AACxB,QAAM,oBAAgB,mCAAkB,QAAQ,SAAS,EAAE,EAAE;AAC7D,QAAM,OAAO,IAAI;AAEjB,SACE,4CAAC,wCAAwB,UAAxB,EAAiC,OAAO,oBAEvC,sDAAC,wBAAO,MAA2B,GAAG,aAAc,GAAG,WACrD;AAAA,IAAC;AAAA;AAAA,MACC,OAAO;AAAA,MACP,aAAa,YAAY;AAAA,MACzB;AAAA,MACA;AAAA,MACA,iBAAiB;AAAA,MACjB,UAAS;AAAA,MACT;AAAA,MACA,cAAc;AAAA,MACd,cAAc;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH,GACF,GACF;AAEJ,CAAC;AAEM,MAAMF,eAAU,kCAAqB,kBAAkB;AAAA,EAC5D,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AAAA,EACT,SAAS;AACX,CAAC;AAED,MAAM,SAAS,MAAM;AAAC;",
|
|
6
|
+
"names": ["Tooltip", "open", "props"]
|
|
7
7
|
}
|
package/dist/esm/Tooltip.js
CHANGED
|
@@ -22,26 +22,32 @@ import {
|
|
|
22
22
|
__PopoverProviderInternal,
|
|
23
23
|
usePopoverScope
|
|
24
24
|
} from "@tamagui/popover";
|
|
25
|
-
import {
|
|
25
|
+
import {
|
|
26
|
+
Popper,
|
|
27
|
+
PopperContentFrame,
|
|
28
|
+
usePopperContext
|
|
29
|
+
} from "@tamagui/popper";
|
|
26
30
|
import * as React from "react";
|
|
27
|
-
const TooltipContent =
|
|
28
|
-
(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
const TooltipContent = PopperContentFrame.extractable(
|
|
32
|
+
React.forwardRef(
|
|
33
|
+
({ __scopePopover, ...props }, ref) => {
|
|
34
|
+
const popperScope = usePopoverScope(__scopePopover);
|
|
35
|
+
const popper = usePopperContext("PopperContent", popperScope["__scopePopper"]);
|
|
36
|
+
const padding = props.size || popper.size || stepTokenUpOrDown("size", "$true", -2);
|
|
37
|
+
return /* @__PURE__ */ jsx(
|
|
38
|
+
PopoverContent,
|
|
39
|
+
{
|
|
40
|
+
componentName: "Tooltip",
|
|
41
|
+
disableRemoveScroll: true,
|
|
42
|
+
trapFocus: false,
|
|
43
|
+
padding,
|
|
44
|
+
pointerEvents: "none",
|
|
45
|
+
ref,
|
|
46
|
+
...props
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
)
|
|
45
51
|
);
|
|
46
52
|
const TooltipArrow = React.forwardRef((props, ref) => {
|
|
47
53
|
return /* @__PURE__ */ jsx(PopoverArrow, { componentName: "Tooltip", ref, ...props });
|
|
@@ -49,87 +55,84 @@ const TooltipArrow = React.forwardRef((props, ref) => {
|
|
|
49
55
|
const TooltipGroup = ({ children, delay }) => {
|
|
50
56
|
return /* @__PURE__ */ jsx(FloatingDelayGroup, { delay: React.useMemo(() => delay, [JSON.stringify(delay)]), children });
|
|
51
57
|
};
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
58
|
+
const TooltipComponent = React.forwardRef(function Tooltip(props, ref) {
|
|
59
|
+
const {
|
|
60
|
+
__scopePopover,
|
|
61
|
+
children,
|
|
62
|
+
delay: delayProp,
|
|
63
|
+
restMs = typeof delayProp === "undefined" ? 500 : typeof delayProp === "number" ? delayProp : 0,
|
|
64
|
+
onOpenChange: onOpenChangeProp,
|
|
65
|
+
focus,
|
|
66
|
+
...restProps
|
|
67
|
+
} = props;
|
|
68
|
+
const popperScope = usePopoverScope(__scopePopover);
|
|
69
|
+
const triggerRef = React.useRef(null);
|
|
70
|
+
const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
|
|
71
|
+
const { delay: delayGroup, setCurrentId } = useDelayGroupContext();
|
|
72
|
+
const delay = delayProp ?? delayGroup;
|
|
73
|
+
const [open, setOpen] = React.useState(false);
|
|
74
|
+
const id = props.groupId;
|
|
75
|
+
const onOpenChange = useEvent((open2) => {
|
|
76
|
+
setOpen(open2);
|
|
77
|
+
if (open2) {
|
|
78
|
+
setCurrentId(id);
|
|
79
|
+
}
|
|
80
|
+
onOpenChangeProp == null ? void 0 : onOpenChangeProp(open2);
|
|
81
|
+
});
|
|
82
|
+
const useFloatingFn = (props2) => {
|
|
83
|
+
const floating = useFloating({
|
|
84
|
+
...props2,
|
|
85
|
+
open,
|
|
86
|
+
onOpenChange
|
|
76
87
|
});
|
|
77
|
-
const
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
useDelayGroup(floating.context, { id })
|
|
89
|
-
]);
|
|
90
|
-
return {
|
|
91
|
-
...floating,
|
|
92
|
-
getReferenceProps,
|
|
93
|
-
getFloatingProps
|
|
94
|
-
};
|
|
88
|
+
const { getReferenceProps, getFloatingProps } = useInteractions([
|
|
89
|
+
useHover(floating.context, { delay, restMs }),
|
|
90
|
+
useFocus(floating.context, focus),
|
|
91
|
+
useRole(floating.context, { role: "tooltip" }),
|
|
92
|
+
useDismiss(floating.context),
|
|
93
|
+
useDelayGroup(floating.context, { id })
|
|
94
|
+
]);
|
|
95
|
+
return {
|
|
96
|
+
...floating,
|
|
97
|
+
getReferenceProps,
|
|
98
|
+
getFloatingProps
|
|
95
99
|
};
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
);
|
|
128
|
-
Tooltip.displayName = "Tooltip";
|
|
100
|
+
};
|
|
101
|
+
const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open]);
|
|
102
|
+
const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), []);
|
|
103
|
+
const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), []);
|
|
104
|
+
const contentId = useId();
|
|
105
|
+
const twoSmallerKey = stepTokenUpOrDown("size", "$true", -2).key;
|
|
106
|
+
const size = `$${twoSmallerKey}`;
|
|
107
|
+
return /* @__PURE__ */ jsx(FloatingOverrideContext.Provider, { value: useFloatingContext, children: /* @__PURE__ */ jsx(Popper, { size, ...popperScope, ...restProps, children: /* @__PURE__ */ jsx(
|
|
108
|
+
__PopoverProviderInternal,
|
|
109
|
+
{
|
|
110
|
+
scope: __scopePopover,
|
|
111
|
+
popperScope: popperScope.__scopePopper,
|
|
112
|
+
contentId,
|
|
113
|
+
triggerRef,
|
|
114
|
+
sheetBreakpoint: false,
|
|
115
|
+
scopeKey: "",
|
|
116
|
+
open,
|
|
117
|
+
onOpenChange: setOpen,
|
|
118
|
+
onOpenToggle: voidFn,
|
|
119
|
+
hasCustomAnchor,
|
|
120
|
+
onCustomAnchorAdd,
|
|
121
|
+
onCustomAnchorRemove,
|
|
122
|
+
children
|
|
123
|
+
}
|
|
124
|
+
) }) });
|
|
125
|
+
});
|
|
126
|
+
const Tooltip2 = withStaticProperties(TooltipComponent, {
|
|
127
|
+
Anchor: PopoverAnchor,
|
|
128
|
+
Arrow: TooltipArrow,
|
|
129
|
+
Content: TooltipContent,
|
|
130
|
+
Trigger: PopoverTrigger
|
|
131
|
+
});
|
|
129
132
|
const voidFn = () => {
|
|
130
133
|
};
|
|
131
134
|
export {
|
|
132
|
-
Tooltip,
|
|
135
|
+
Tooltip2 as Tooltip,
|
|
133
136
|
TooltipGroup
|
|
134
137
|
};
|
|
135
138
|
//# sourceMappingURL=Tooltip.js.map
|
package/dist/esm/Tooltip.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/Tooltip.tsx"],
|
|
4
|
-
"sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport {
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["open", "props"]
|
|
4
|
+
"sourcesContent": ["import '@tamagui/polyfill-dev'\n\nimport {\n FloatingDelayGroup,\n useDelayGroup,\n useDelayGroupContext,\n useDismiss,\n useFloating,\n useFocus,\n useHover,\n useInteractions,\n useRole,\n} from '@floating-ui/react'\nimport { SizeTokens, useEvent, useId, withStaticProperties } from '@tamagui/core'\nimport { ScopedProps } from '@tamagui/create-context'\nimport { FloatingOverrideContext, UseFloatingFn } from '@tamagui/floating'\nimport { stepTokenUpOrDown } from '@tamagui/get-size'\nimport {\n PopoverAnchor,\n PopoverArrow,\n PopoverArrowProps,\n PopoverContent,\n PopoverContentProps,\n PopoverTrigger,\n __PopoverProviderInternal,\n usePopoverScope,\n} from '@tamagui/popover'\nimport {\n Popper,\n PopperContentFrame,\n PopperProps,\n usePopperContext,\n} from '@tamagui/popper'\nimport * as React from 'react'\n\nconst TooltipContent = PopperContentFrame.extractable(\n React.forwardRef(\n (\n { __scopePopover, ...props }: ScopedProps<PopoverContentProps, 'Popover'>,\n ref: any\n ) => {\n const popperScope = usePopoverScope(__scopePopover)\n const popper = usePopperContext('PopperContent', popperScope['__scopePopper'])\n const padding = props.size || popper.size || stepTokenUpOrDown('size', '$true', -2)\n return (\n <PopoverContent\n componentName=\"Tooltip\"\n disableRemoveScroll\n trapFocus={false}\n padding={padding}\n pointerEvents=\"none\"\n ref={ref}\n {...props}\n />\n )\n }\n )\n)\n\nconst TooltipArrow = React.forwardRef((props: PopoverArrowProps, ref: any) => {\n return <PopoverArrow componentName=\"Tooltip\" ref={ref} {...props} />\n})\n\nexport type TooltipProps = PopperProps & {\n children?: React.ReactNode\n onOpenChange?: (open: boolean) => void\n focus?: {\n enabled?: boolean\n keyboardOnly?: boolean\n }\n groupId?: string\n restMs?: number\n delay?:\n | number\n | {\n open?: number\n close?: number\n }\n}\n\ntype Delay =\n | number\n | Partial<{\n open: number\n close: number\n }>\n\nexport const TooltipGroup = ({ children, delay }: { children?: any; delay: Delay }) => {\n return (\n <FloatingDelayGroup delay={React.useMemo(() => delay, [JSON.stringify(delay)])}>\n {children}\n </FloatingDelayGroup>\n )\n}\n\nconst TooltipComponent = React.forwardRef(function Tooltip(\n props: ScopedProps<TooltipProps, 'Popover'>,\n // theres no real ref here but React complaining need to see why see SandboxCustomStyledAnimatedTooltip.ts\n ref\n) {\n const {\n __scopePopover,\n children,\n delay: delayProp,\n restMs = typeof delayProp === 'undefined'\n ? 500\n : typeof delayProp === 'number'\n ? delayProp\n : 0,\n onOpenChange: onOpenChangeProp,\n focus,\n ...restProps\n } = props\n const popperScope = usePopoverScope(__scopePopover)\n const triggerRef = React.useRef<HTMLButtonElement>(null)\n const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false)\n const { delay: delayGroup, setCurrentId } = useDelayGroupContext()\n const delay = delayProp ?? delayGroup\n const [open, setOpen] = React.useState(false)\n const id = props.groupId\n\n const onOpenChange = useEvent((open) => {\n setOpen(open)\n if (open) {\n setCurrentId(id)\n }\n onOpenChangeProp?.(open)\n })\n\n const useFloatingFn: UseFloatingFn = (props) => {\n // @ts-ignore\n const floating = useFloating({\n ...props,\n open,\n onOpenChange,\n })\n const { getReferenceProps, getFloatingProps } = useInteractions([\n useHover(floating.context, { delay, restMs }),\n useFocus(floating.context, focus),\n useRole(floating.context, { role: 'tooltip' }),\n useDismiss(floating.context),\n useDelayGroup(floating.context, { id }),\n ])\n return {\n ...floating,\n getReferenceProps,\n getFloatingProps,\n } as any\n }\n\n const useFloatingContext = React.useCallback(useFloatingFn, [id, delay, open])\n const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), [])\n const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), [])\n const contentId = useId()\n const twoSmallerKey = stepTokenUpOrDown('size', '$true', -2).key\n const size = `$${twoSmallerKey}`\n\n return (\n <FloatingOverrideContext.Provider value={useFloatingContext}>\n {/* default tooltip to a smaller size */}\n <Popper size={size as SizeTokens} {...popperScope} {...restProps}>\n <__PopoverProviderInternal\n scope={__scopePopover}\n popperScope={popperScope.__scopePopper}\n contentId={contentId}\n triggerRef={triggerRef}\n sheetBreakpoint={false}\n scopeKey=\"\"\n open={open}\n onOpenChange={setOpen}\n onOpenToggle={voidFn}\n hasCustomAnchor={hasCustomAnchor}\n onCustomAnchorAdd={onCustomAnchorAdd}\n onCustomAnchorRemove={onCustomAnchorRemove}\n >\n {children}\n </__PopoverProviderInternal>\n </Popper>\n </FloatingOverrideContext.Provider>\n )\n})\n\nexport const Tooltip = withStaticProperties(TooltipComponent, {\n Anchor: PopoverAnchor,\n Arrow: TooltipArrow,\n Content: TooltipContent,\n Trigger: PopoverTrigger,\n})\n\nconst voidFn = () => {}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["open", "props", "Tooltip"]
|
|
7
7
|
}
|