@hanzogui/tooltip 8.3.1 → 8.3.3

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.
Files changed (67) hide show
  1. package/dist/cjs/Tooltip.js +142 -0
  2. package/dist/cjs/Tooltip.js.map +1 -0
  3. package/dist/cjs/TooltipSimple.js +35 -0
  4. package/dist/cjs/TooltipSimple.js.map +1 -0
  5. package/dist/cjs/index.js +6 -0
  6. package/dist/cjs/index.js.map +1 -0
  7. package/dist/cjs/package.json +1 -0
  8. package/dist/esm/Tooltip.js +136 -0
  9. package/dist/esm/Tooltip.js.map +1 -0
  10. package/dist/esm/TooltipSimple.js +31 -0
  11. package/dist/esm/TooltipSimple.js.map +1 -0
  12. package/dist/esm/index.js +3 -3
  13. package/dist/esm/index.js.map +1 -1
  14. package/dist/native/Tooltip.js +21 -0
  15. package/dist/native/Tooltip.js.map +1 -0
  16. package/dist/native/TooltipSimple.js +5 -0
  17. package/dist/native/TooltipSimple.js.map +1 -0
  18. package/dist/native/index.js +3 -0
  19. package/dist/native/index.js.map +1 -0
  20. package/package.json +32 -27
  21. package/src/TooltipSimple.tsx +2 -2
  22. package/src/index.tsx +2 -2
  23. package/types/Tooltip.d.ts +6 -6
  24. package/types/Tooltip.d.ts.map +1 -1
  25. package/types/Tooltip.native.d.ts +9 -6
  26. package/types/Tooltip.native.d.ts.map +1 -1
  27. package/types/TooltipSimple.d.ts +1 -1
  28. package/types/TooltipSimple.d.ts.map +1 -1
  29. package/types/TooltipSimple.native.d.ts +3 -1
  30. package/types/TooltipSimple.native.d.ts.map +1 -1
  31. package/types/index.d.ts +2 -2
  32. package/types/index.d.ts.map +1 -1
  33. package/dist/cjs/Tooltip.cjs +0 -241
  34. package/dist/cjs/Tooltip.native.js +0 -50
  35. package/dist/cjs/Tooltip.native.js.map +0 -1
  36. package/dist/cjs/TooltipSimple.cjs +0 -112
  37. package/dist/cjs/TooltipSimple.native.js +0 -34
  38. package/dist/cjs/TooltipSimple.native.js.map +0 -1
  39. package/dist/cjs/index.cjs +0 -21
  40. package/dist/cjs/index.native.js +0 -24
  41. package/dist/cjs/index.native.js.map +0 -1
  42. package/dist/esm/Tooltip.mjs +0 -202
  43. package/dist/esm/Tooltip.mjs.map +0 -1
  44. package/dist/esm/Tooltip.native.js +0 -20
  45. package/dist/esm/Tooltip.native.js.map +0 -1
  46. package/dist/esm/TooltipSimple.mjs +0 -76
  47. package/dist/esm/TooltipSimple.mjs.map +0 -1
  48. package/dist/esm/TooltipSimple.native.js +0 -6
  49. package/dist/esm/TooltipSimple.native.js.map +0 -1
  50. package/dist/esm/index.mjs +0 -3
  51. package/dist/esm/index.mjs.map +0 -1
  52. package/dist/esm/index.native.js +0 -3
  53. package/dist/esm/index.native.js.map +0 -1
  54. package/dist/jsx/Tooltip.mjs +0 -202
  55. package/dist/jsx/Tooltip.mjs.map +0 -1
  56. package/dist/jsx/Tooltip.native.js +0 -50
  57. package/dist/jsx/Tooltip.native.js.map +0 -1
  58. package/dist/jsx/TooltipSimple.mjs +0 -76
  59. package/dist/jsx/TooltipSimple.mjs.map +0 -1
  60. package/dist/jsx/TooltipSimple.native.js +0 -34
  61. package/dist/jsx/TooltipSimple.native.js.map +0 -1
  62. package/dist/jsx/index.js +0 -3
  63. package/dist/jsx/index.js.map +0 -1
  64. package/dist/jsx/index.mjs +0 -3
  65. package/dist/jsx/index.mjs.map +0 -1
  66. package/dist/jsx/index.native.js +0 -24
  67. package/dist/jsx/index.native.js.map +0 -1
@@ -0,0 +1,142 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Tooltip = exports.closeOpenTooltips = exports.TooltipGroup = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ require("@hanzogui/polyfill-dev");
7
+ const floating_1 = require("@hanzogui/floating");
8
+ const core_1 = require("@hanzogui/core");
9
+ const floating_2 = require("@hanzogui/floating");
10
+ const get_token_1 = require("@hanzogui/get-token");
11
+ const helpers_1 = require("@hanzogui/helpers");
12
+ const popover_1 = require("@hanzogui/popover");
13
+ const popper_1 = require("@hanzogui/popper");
14
+ const use_controllable_state_1 = require("@hanzogui/use-controllable-state");
15
+ const React = tslib_1.__importStar(require("react"));
16
+ const TOOLTIP_SCOPE = '';
17
+ // warning: setting to stylebale causes issues with themeInverse across portal root
18
+ // performance: avoid 2 components we never use
19
+ const ALWAYS_DISABLE_TOOLTIP = {
20
+ focus: true,
21
+ 'remove-scroll': true,
22
+ // it's nice to hit escape to hide a tooltip
23
+ // dismiss: true
24
+ };
25
+ const TooltipContent = popper_1.PopperContentFrame.styleable((props, ref) => {
26
+ const preventAnimation = React.useContext(PreventTooltipAnimationContext);
27
+ const zIndexFromContext = React.useContext(TooltipZIndexContext);
28
+ return ((0, jsx_runtime_1.jsx)(popover_1.PopoverContent, { scope: props.scope || TOOLTIP_SCOPE, alwaysDisable: ALWAYS_DISABLE_TOOLTIP, ...(!props.unstyled && {
29
+ backgroundColor: '$background',
30
+ alignItems: 'center',
31
+ pointerEvents: 'none',
32
+ size: '$true',
33
+ }), ref: ref, ...(zIndexFromContext !== undefined && { zIndex: zIndexFromContext }), ...props, ...(preventAnimation && {
34
+ transition: null,
35
+ }) }));
36
+ }, {
37
+ staticConfig: {
38
+ componentName: 'Tooltip',
39
+ },
40
+ });
41
+ const TooltipArrow = React.forwardRef((props, ref) => {
42
+ return ((0, jsx_runtime_1.jsx)(popover_1.PopoverArrow, { scope: props.scope || TOOLTIP_SCOPE, componentName: "Tooltip", ref: ref, ...props }));
43
+ });
44
+ const PreventTooltipAnimationContext = React.createContext(false);
45
+ const TooltipZIndexContext = React.createContext(undefined);
46
+ const TooltipGroup = ({ children, delay, preventAnimation = false, timeoutMs, }) => {
47
+ return ((0, jsx_runtime_1.jsx)(PreventTooltipAnimationContext.Provider, { value: preventAnimation, children: (0, jsx_runtime_1.jsx)(floating_1.FloatingDelayGroup, { timeoutMs: timeoutMs, delay: React.useMemo(() => delay, [JSON.stringify(delay)]), children: children }) }));
48
+ };
49
+ exports.TooltipGroup = TooltipGroup;
50
+ const setOpens = new Set();
51
+ const closeOpenTooltips = () => {
52
+ setOpens.forEach((x) => x(false));
53
+ };
54
+ exports.closeOpenTooltips = closeOpenTooltips;
55
+ const TooltipComponent = React.forwardRef(function Tooltip(props,
56
+ // no real ref here but React complaining need to see why see SandboxCustomStyledAnimatedTooltip.ts
57
+ ref) {
58
+ // hooks inside useFloatingFn confuse the React Compiler
59
+ 'use no memo';
60
+ const { children, delay: delayProp, restMs: restMsProp, onOpenChange: onOpenChangeProp, focus, open: openProp, disableAutoCloseOnScroll, zIndex, scope = TOOLTIP_SCOPE, ...restProps } = props;
61
+ const triggerRef = React.useRef(null);
62
+ const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
63
+ const { delay: delayGroup, setCurrentId } = (0, floating_1.useDelayGroupContext)();
64
+ // Use delayProp if explicitly provided, otherwise fall back to group delay or default 400
65
+ const delay = delayProp !== undefined ? delayProp : (delayGroup ?? 400);
66
+ const restMs = restMsProp ?? (typeof delay === 'number' ? delay : 0);
67
+ const [open, setOpen] = (0, use_controllable_state_1.useControllableState)({
68
+ prop: openProp,
69
+ defaultProp: false,
70
+ onChange: onOpenChangeProp,
71
+ });
72
+ const id = props.groupId;
73
+ const onOpenChange = (0, core_1.useEvent)((open) => {
74
+ if (open) {
75
+ setCurrentId(id);
76
+ }
77
+ setOpen(open);
78
+ });
79
+ // Auto close when document scroll
80
+ React.useEffect(() => {
81
+ if (!open)
82
+ return;
83
+ if (disableAutoCloseOnScroll)
84
+ return;
85
+ if (typeof document === 'undefined')
86
+ return;
87
+ const closeIt = () => {
88
+ setOpen(false);
89
+ };
90
+ setOpens.add(setOpen);
91
+ document.documentElement.addEventListener('scroll', closeIt);
92
+ return () => {
93
+ setOpens.delete(setOpen);
94
+ document.documentElement.removeEventListener('scroll', closeIt);
95
+ };
96
+ }, [open, disableAutoCloseOnScroll]);
97
+ // use the shared floating context from popover — gives us multi-trigger
98
+ // hover coordination (onHoverReference/onLeaveReference + grace period)
99
+ // and safePolygon for free
100
+ const floatingContext = (0, popover_1.useFloatingContext)({
101
+ open,
102
+ setOpen: onOpenChange,
103
+ disable: false,
104
+ disableFocus: false,
105
+ hoverable: true,
106
+ role: 'tooltip',
107
+ focus,
108
+ groupId: id,
109
+ delay,
110
+ restMs,
111
+ });
112
+ const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), []);
113
+ const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), []);
114
+ const contentId = React.useId();
115
+ const smallerSize = props.unstyled
116
+ ? null
117
+ : (0, get_token_1.getSize)('$true', {
118
+ shift: -2,
119
+ bounds: [0],
120
+ });
121
+ const content = ((0, jsx_runtime_1.jsx)(floating_2.FloatingOverrideContext.Provider, { value: floatingContext, children: (0, jsx_runtime_1.jsx)(popper_1.Popper, { scope: scope, size: smallerSize?.key, allowFlip: true, stayInFrame: true, open: open, ...restProps, children: (0, jsx_runtime_1.jsx)(popover_1.PopoverContextProvider, { scope: scope, contentId: contentId, triggerRef: triggerRef, open: open, onOpenChange: setOpen, onOpenToggle: voidFn, hasCustomAnchor: hasCustomAnchor, onCustomAnchorAdd: onCustomAnchorAdd, onCustomAnchorRemove: onCustomAnchorRemove, children: children }) }) }));
122
+ if (zIndex !== undefined) {
123
+ return ((0, jsx_runtime_1.jsx)(TooltipZIndexContext.Provider, { value: zIndex, children: content }));
124
+ }
125
+ return content;
126
+ });
127
+ const TooltipTrigger = React.forwardRef(function TooltipTrigger(props, ref) {
128
+ const { scope, ...rest } = props;
129
+ return (0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { ...rest, scope: scope || TOOLTIP_SCOPE, ref: ref });
130
+ });
131
+ const TooltipAnchor = React.forwardRef(function TooltipAnchor(props, ref) {
132
+ const { scope, ...rest } = props;
133
+ return (0, jsx_runtime_1.jsx)(popover_1.PopoverAnchor, { ...rest, scope: scope || TOOLTIP_SCOPE, ref: ref });
134
+ });
135
+ exports.Tooltip = (0, helpers_1.withStaticProperties)(TooltipComponent, {
136
+ Anchor: TooltipAnchor,
137
+ Arrow: TooltipArrow,
138
+ Content: TooltipContent,
139
+ Trigger: TooltipTrigger,
140
+ });
141
+ const voidFn = () => { };
142
+ //# sourceMappingURL=Tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/Tooltip.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TooltipSimple = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const jsx_runtime_1 = require("react/jsx-runtime");
6
+ const get_token_1 = require("@hanzogui/get-token");
7
+ const text_1 = require("@hanzogui/text");
8
+ const React = tslib_1.__importStar(require("react"));
9
+ const Tooltip_tsx_1 = require("./Tooltip.js");
10
+ exports.TooltipSimple = React.forwardRef(({ label, children, contentProps, disabled, ...tooltipProps }, ref) => {
11
+ 'use no memo';
12
+ const child = React.Children.only(children);
13
+ if (!label) {
14
+ return children;
15
+ }
16
+ return ((0, jsx_runtime_1.jsxs)(Tooltip_tsx_1.Tooltip, { disableRTL: true, offset: 15, restMs: 40, delay: 40,
17
+ // ensure tooltips appear above dialogs and other portaled content
18
+ zIndex: 1000000, ...tooltipProps, ...(disabled ? { open: false } : null), children: [(0, jsx_runtime_1.jsx)(Tooltip_tsx_1.Tooltip.Trigger, { ...(typeof label === 'string' && {
19
+ 'aria-label': label,
20
+ }), asChild: "except-style", children: ref && React.isValidElement(child)
21
+ ? React.cloneElement(child, { ref })
22
+ : child }), (0, jsx_runtime_1.jsxs)(Tooltip_tsx_1.Tooltip.Content, { enterStyle: { y: -4, opacity: 0, scale: 0.96 }, exitStyle: { y: -4, opacity: 0, scale: 0.96 }, scale: 1, elevation: "$0.5", opacity: 1, pointerEvents: "none", paddingVertical: (0, get_token_1.getSpace)(tooltipProps.size || '$true', {
23
+ shift: -4,
24
+ }), animateOnly: ['transform', 'opacity'], transition: [
25
+ 'quicker',
26
+ {
27
+ opacity: {
28
+ overshootClamping: true,
29
+ },
30
+ },
31
+ ], ...contentProps, children: [(0, jsx_runtime_1.jsx)(Tooltip_tsx_1.Tooltip.Arrow, {}), (0, jsx_runtime_1.jsx)(text_1.Paragraph, { maxWidth: 350, overflow: "hidden", size: "$3", textAlign: "center", "$platform-web": {
32
+ textWrap: 'balance',
33
+ }, children: label })] })] }));
34
+ });
35
+ //# sourceMappingURL=TooltipSimple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TooltipSimple.js","sourceRoot":"","sources":["../../src/TooltipSimple.tsx"],"names":[],"mappings":";;;;;AAAA,mDAA8C;AAE9C,yCAA0C;AAC1C,MAAY,KAAK,0CAAa;AAG9B,8CAAuC;AAS1B,QAAA,aAAa,GAAiC,KAAK,CAAC,UAAU,CACzE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE;IACpE,aAAa,CAAA;IAEb,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,CACL,wBAAC,qBAAO,IACN,UAAU,QACV,MAAM,EAAE,EAAE,EACV,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,EAAE;QACT,kEAAkE;QAClE,MAAM,EAAE,OAAS,KACb,YAAY,KACZ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAEvC,uBAAC,qBAAO,CAAC,OAAO,OACV,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI;oBAChC,YAAY,EAAE,KAAK;iBACpB,CAAC,EACF,OAAO,EAAC,cAAc,YAErB,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;oBACjC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,EAAS,CAAC;oBAC3C,CAAC,CAAC,KAAK,GACO,EAElB,wBAAC,qBAAO,CAAC,OAAO,IACd,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAC9C,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAC7C,KAAK,EAAE,CAAC,EACR,SAAS,EAAC,MAAM,EAChB,OAAO,EAAE,CAAC,EACV,aAAa,EAAC,MAAM,EACpB,eAAe,EAAE,IAAA,oBAAQ,EAAC,YAAY,CAAC,IAAI,IAAI,OAAO,EAAE;oBACtD,KAAK,EAAE,CAAC,CAAC;iBACV,CAAC,EACF,WAAW,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EACrC,UAAU,EAAE;oBACV,SAAS;oBACT;wBACE,OAAO,EAAE;4BACP,iBAAiB,EAAE,IAAI;yBACxB;qBACF;iBACF,KACG,YAAY,aAEhB,uBAAC,qBAAO,CAAC,KAAK,KAAG,EACjB,uBAAC,gBAAS,IACR,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAC,QAAQ,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,QAAQ,mBACH;4BACb,QAAQ,EAAE,SAAS;yBACpB,YAEA,KAAK,GACI,IACI,IACV,CACX,CAAA;AACH,CAAC,CACF,CAAA"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./Tooltip.js"), exports);
5
+ tslib_1.__exportStar(require("./TooltipSimple.js"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":";;;AAAA,uDAA6B;AAC7B,6DAAmC"}
@@ -0,0 +1 @@
1
+ { "type": "commonjs" }
@@ -0,0 +1,136 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import '@hanzogui/polyfill-dev';
3
+ import { FloatingDelayGroup, useDelayGroupContext } from '@hanzogui/floating';
4
+ import { useEvent } from '@hanzogui/core';
5
+ import { FloatingOverrideContext } from '@hanzogui/floating';
6
+ import { getSize } from '@hanzogui/get-token';
7
+ import { withStaticProperties } from '@hanzogui/helpers';
8
+ import { PopoverAnchor, PopoverArrow, PopoverContent, PopoverContextProvider, PopoverTrigger, useFloatingContext, } from '@hanzogui/popover';
9
+ import { Popper, PopperContentFrame } from '@hanzogui/popper';
10
+ import { useControllableState } from '@hanzogui/use-controllable-state';
11
+ import * as React from 'react';
12
+ const TOOLTIP_SCOPE = '';
13
+ // warning: setting to stylebale causes issues with themeInverse across portal root
14
+ // performance: avoid 2 components we never use
15
+ const ALWAYS_DISABLE_TOOLTIP = {
16
+ focus: true,
17
+ 'remove-scroll': true,
18
+ // it's nice to hit escape to hide a tooltip
19
+ // dismiss: true
20
+ };
21
+ const TooltipContent = PopperContentFrame.styleable((props, ref) => {
22
+ const preventAnimation = React.useContext(PreventTooltipAnimationContext);
23
+ const zIndexFromContext = React.useContext(TooltipZIndexContext);
24
+ return (_jsx(PopoverContent, { scope: props.scope || TOOLTIP_SCOPE, alwaysDisable: ALWAYS_DISABLE_TOOLTIP, ...(!props.unstyled && {
25
+ backgroundColor: '$background',
26
+ alignItems: 'center',
27
+ pointerEvents: 'none',
28
+ size: '$true',
29
+ }), ref: ref, ...(zIndexFromContext !== undefined && { zIndex: zIndexFromContext }), ...props, ...(preventAnimation && {
30
+ transition: null,
31
+ }) }));
32
+ }, {
33
+ staticConfig: {
34
+ componentName: 'Tooltip',
35
+ },
36
+ });
37
+ const TooltipArrow = React.forwardRef((props, ref) => {
38
+ return (_jsx(PopoverArrow, { scope: props.scope || TOOLTIP_SCOPE, componentName: "Tooltip", ref: ref, ...props }));
39
+ });
40
+ const PreventTooltipAnimationContext = React.createContext(false);
41
+ const TooltipZIndexContext = React.createContext(undefined);
42
+ export const TooltipGroup = ({ children, delay, preventAnimation = false, timeoutMs, }) => {
43
+ return (_jsx(PreventTooltipAnimationContext.Provider, { value: preventAnimation, children: _jsx(FloatingDelayGroup, { timeoutMs: timeoutMs, delay: React.useMemo(() => delay, [JSON.stringify(delay)]), children: children }) }));
44
+ };
45
+ const setOpens = new Set();
46
+ export const closeOpenTooltips = () => {
47
+ setOpens.forEach((x) => x(false));
48
+ };
49
+ const TooltipComponent = React.forwardRef(function Tooltip(props,
50
+ // no real ref here but React complaining need to see why see SandboxCustomStyledAnimatedTooltip.ts
51
+ ref) {
52
+ // hooks inside useFloatingFn confuse the React Compiler
53
+ 'use no memo';
54
+ const { children, delay: delayProp, restMs: restMsProp, onOpenChange: onOpenChangeProp, focus, open: openProp, disableAutoCloseOnScroll, zIndex, scope = TOOLTIP_SCOPE, ...restProps } = props;
55
+ const triggerRef = React.useRef(null);
56
+ const [hasCustomAnchor, setHasCustomAnchor] = React.useState(false);
57
+ const { delay: delayGroup, setCurrentId } = useDelayGroupContext();
58
+ // Use delayProp if explicitly provided, otherwise fall back to group delay or default 400
59
+ const delay = delayProp !== undefined ? delayProp : (delayGroup ?? 400);
60
+ const restMs = restMsProp ?? (typeof delay === 'number' ? delay : 0);
61
+ const [open, setOpen] = useControllableState({
62
+ prop: openProp,
63
+ defaultProp: false,
64
+ onChange: onOpenChangeProp,
65
+ });
66
+ const id = props.groupId;
67
+ const onOpenChange = useEvent((open) => {
68
+ if (open) {
69
+ setCurrentId(id);
70
+ }
71
+ setOpen(open);
72
+ });
73
+ // Auto close when document scroll
74
+ React.useEffect(() => {
75
+ if (!open)
76
+ return;
77
+ if (disableAutoCloseOnScroll)
78
+ return;
79
+ if (typeof document === 'undefined')
80
+ return;
81
+ const closeIt = () => {
82
+ setOpen(false);
83
+ };
84
+ setOpens.add(setOpen);
85
+ document.documentElement.addEventListener('scroll', closeIt);
86
+ return () => {
87
+ setOpens.delete(setOpen);
88
+ document.documentElement.removeEventListener('scroll', closeIt);
89
+ };
90
+ }, [open, disableAutoCloseOnScroll]);
91
+ // use the shared floating context from popover — gives us multi-trigger
92
+ // hover coordination (onHoverReference/onLeaveReference + grace period)
93
+ // and safePolygon for free
94
+ const floatingContext = useFloatingContext({
95
+ open,
96
+ setOpen: onOpenChange,
97
+ disable: false,
98
+ disableFocus: false,
99
+ hoverable: true,
100
+ role: 'tooltip',
101
+ focus,
102
+ groupId: id,
103
+ delay,
104
+ restMs,
105
+ });
106
+ const onCustomAnchorAdd = React.useCallback(() => setHasCustomAnchor(true), []);
107
+ const onCustomAnchorRemove = React.useCallback(() => setHasCustomAnchor(false), []);
108
+ const contentId = React.useId();
109
+ const smallerSize = props.unstyled
110
+ ? null
111
+ : getSize('$true', {
112
+ shift: -2,
113
+ bounds: [0],
114
+ });
115
+ const content = (_jsx(FloatingOverrideContext.Provider, { value: floatingContext, children: _jsx(Popper, { scope: scope, size: smallerSize?.key, allowFlip: true, stayInFrame: true, open: open, ...restProps, children: _jsx(PopoverContextProvider, { scope: scope, contentId: contentId, triggerRef: triggerRef, open: open, onOpenChange: setOpen, onOpenToggle: voidFn, hasCustomAnchor: hasCustomAnchor, onCustomAnchorAdd: onCustomAnchorAdd, onCustomAnchorRemove: onCustomAnchorRemove, children: children }) }) }));
116
+ if (zIndex !== undefined) {
117
+ return (_jsx(TooltipZIndexContext.Provider, { value: zIndex, children: content }));
118
+ }
119
+ return content;
120
+ });
121
+ const TooltipTrigger = React.forwardRef(function TooltipTrigger(props, ref) {
122
+ const { scope, ...rest } = props;
123
+ return _jsx(PopoverTrigger, { ...rest, scope: scope || TOOLTIP_SCOPE, ref: ref });
124
+ });
125
+ const TooltipAnchor = React.forwardRef(function TooltipAnchor(props, ref) {
126
+ const { scope, ...rest } = props;
127
+ return _jsx(PopoverAnchor, { ...rest, scope: scope || TOOLTIP_SCOPE, ref: ref });
128
+ });
129
+ export const Tooltip = withStaticProperties(TooltipComponent, {
130
+ Anchor: TooltipAnchor,
131
+ Arrow: TooltipArrow,
132
+ Content: TooltipContent,
133
+ Trigger: TooltipTrigger,
134
+ });
135
+ const voidFn = () => { };
136
+ //# sourceMappingURL=Tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/Tooltip.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { getSpace } from '@hanzogui/get-token';
3
+ import { Paragraph } from '@hanzogui/text';
4
+ import * as React from 'react';
5
+ import { Tooltip } from './Tooltip.js';
6
+ export const TooltipSimple = React.forwardRef(({ label, children, contentProps, disabled, ...tooltipProps }, ref) => {
7
+ 'use no memo';
8
+ const child = React.Children.only(children);
9
+ if (!label) {
10
+ return children;
11
+ }
12
+ return (_jsxs(Tooltip, { disableRTL: true, offset: 15, restMs: 40, delay: 40,
13
+ // ensure tooltips appear above dialogs and other portaled content
14
+ zIndex: 1000000, ...tooltipProps, ...(disabled ? { open: false } : null), children: [_jsx(Tooltip.Trigger, { ...(typeof label === 'string' && {
15
+ 'aria-label': label,
16
+ }), asChild: "except-style", children: ref && React.isValidElement(child)
17
+ ? React.cloneElement(child, { ref })
18
+ : child }), _jsxs(Tooltip.Content, { enterStyle: { y: -4, opacity: 0, scale: 0.96 }, exitStyle: { y: -4, opacity: 0, scale: 0.96 }, scale: 1, elevation: "$0.5", opacity: 1, pointerEvents: "none", paddingVertical: getSpace(tooltipProps.size || '$true', {
19
+ shift: -4,
20
+ }), animateOnly: ['transform', 'opacity'], transition: [
21
+ 'quicker',
22
+ {
23
+ opacity: {
24
+ overshootClamping: true,
25
+ },
26
+ },
27
+ ], ...contentProps, children: [_jsx(Tooltip.Arrow, {}), _jsx(Paragraph, { maxWidth: 350, overflow: "hidden", size: "$3", textAlign: "center", "$platform-web": {
28
+ textWrap: 'balance',
29
+ }, children: label })] })] }));
30
+ });
31
+ //# sourceMappingURL=TooltipSimple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TooltipSimple.js","sourceRoot":"","sources":["../../src/TooltipSimple.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAG9B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAe,CAAA;AASvC,MAAM,CAAC,MAAM,aAAa,GAAiC,KAAK,CAAC,UAAU,CACzE,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE;IACpE,aAAa,CAAA;IAEb,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,QAAQ,CAAA;IACjB,CAAC;IAED,OAAO,CACL,MAAC,OAAO,IACN,UAAU,QACV,MAAM,EAAE,EAAE,EACV,MAAM,EAAE,EAAE,EACV,KAAK,EAAE,EAAE;QACT,kEAAkE;QAClE,MAAM,EAAE,OAAS,KACb,YAAY,KACZ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAEvC,KAAC,OAAO,CAAC,OAAO,OACV,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI;oBAChC,YAAY,EAAE,KAAK;iBACpB,CAAC,EACF,OAAO,EAAC,cAAc,YAErB,GAAG,IAAI,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC;oBACjC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,GAAG,EAAS,CAAC;oBAC3C,CAAC,CAAC,KAAK,GACO,EAElB,MAAC,OAAO,CAAC,OAAO,IACd,UAAU,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAC9C,SAAS,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAC7C,KAAK,EAAE,CAAC,EACR,SAAS,EAAC,MAAM,EAChB,OAAO,EAAE,CAAC,EACV,aAAa,EAAC,MAAM,EACpB,eAAe,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,OAAO,EAAE;oBACtD,KAAK,EAAE,CAAC,CAAC;iBACV,CAAC,EACF,WAAW,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,EACrC,UAAU,EAAE;oBACV,SAAS;oBACT;wBACE,OAAO,EAAE;4BACP,iBAAiB,EAAE,IAAI;yBACxB;qBACF;iBACF,KACG,YAAY,aAEhB,KAAC,OAAO,CAAC,KAAK,KAAG,EACjB,KAAC,SAAS,IACR,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAC,QAAQ,EACjB,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,QAAQ,mBACH;4BACb,QAAQ,EAAE,SAAS;yBACpB,YAEA,KAAK,GACI,IACI,IACV,CACX,CAAA;AACH,CAAC,CACF,CAAA"}
package/dist/esm/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export * from "./Tooltip.mjs";
2
- export * from "./TooltipSimple.mjs";
3
- //# sourceMappingURL=index.js.map
1
+ export * from './Tooltip.js';
2
+ export * from './TooltipSimple.js';
3
+ //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["../../src/index.tsx"],"sourcesContent":[null],"mappings":"AAAA,cAAc;AACd,cAAc","ignoreList":[]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAe,CAAA;AAC7B,cAAc,oBAAqB,CAAA"}
@@ -0,0 +1,21 @@
1
+ import { withStaticProperties } from '@hanzogui/helpers';
2
+ // no output on native for now
3
+ // could have an option to long-press or similar to show in a context menu/drawer
4
+ const RenderChildren = (props) => {
5
+ return props.children;
6
+ };
7
+ const RenderNull = (props) => {
8
+ return null;
9
+ };
10
+ export const TooltipGroup = () => null;
11
+ export const closeOpenTooltips = () => {
12
+ /* noop */
13
+ };
14
+ export const Tooltip = withStaticProperties(RenderChildren, {
15
+ Anchor: RenderChildren,
16
+ Arrow: RenderNull,
17
+ Close: RenderNull,
18
+ Content: RenderNull,
19
+ Trigger: RenderChildren,
20
+ });
21
+ //# sourceMappingURL=Tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.native.js","sourceRoot":"","sources":["../../src/Tooltip.native.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAA;AAExD,8BAA8B;AAC9B,iFAAiF;AAEjF,MAAM,cAAc,GAAG,CAAC,KAAU,EAAE,EAAE;IACpC,OAAO,KAAK,CAAC,QAAQ,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,KAAU,EAAE,EAAE;IAChC,OAAO,IAAI,CAAA;AACb,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;AAEtC,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,EAAE;IACpC,UAAU;AACZ,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG,oBAAoB,CAAC,cAAc,EAAE;IAC1D,MAAM,EAAE,cAAc;IACtB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,UAAU;IACjB,OAAO,EAAE,UAAU;IACnB,OAAO,EAAE,cAAc;CACxB,CAAC,CAAA"}
@@ -0,0 +1,5 @@
1
+ const RenderChildren = (props) => {
2
+ return props.children;
3
+ };
4
+ export const TooltipSimple = RenderChildren;
5
+ //# sourceMappingURL=TooltipSimple.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TooltipSimple.native.js","sourceRoot":"","sources":["../../src/TooltipSimple.native.tsx"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG,CAAC,KAAU,EAAE,EAAE;IACpC,OAAO,KAAK,CAAC,QAAQ,CAAA;AACvB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG,cAAc,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from './Tooltip.js';
2
+ export * from './TooltipSimple.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,cAAe,CAAA;AAC7B,cAAc,oBAAqB,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hanzogui/tooltip",
3
- "version": "8.3.1",
3
+ "version": "8.3.3",
4
4
  "source": "src/index.tsx",
5
5
  "files": [
6
6
  "src",
@@ -9,19 +9,19 @@
9
9
  ],
10
10
  "type": "module",
11
11
  "sideEffects": false,
12
- "main": "dist/cjs",
13
- "module": "dist/esm",
12
+ "main": "./dist/cjs/index.js",
13
+ "module": "./dist/esm/index.js",
14
14
  "types": "./types/index.d.ts",
15
15
  "exports": {
16
16
  "./package.json": "./package.json",
17
17
  ".": {
18
18
  "types": "./types/index.d.ts",
19
- "react-native": "./dist/esm/index.native.js",
20
- "browser": "./dist/esm/index.mjs",
21
- "module": "./dist/esm/index.mjs",
22
- "import": "./dist/esm/index.mjs",
23
- "require": "./dist/cjs/index.cjs",
24
- "default": "./dist/esm/index.mjs"
19
+ "react-native": "./dist/native/index.js",
20
+ "browser": "./dist/esm/index.js",
21
+ "module": "./dist/esm/index.js",
22
+ "import": "./dist/esm/index.js",
23
+ "require": "./dist/cjs/index.js",
24
+ "default": "./dist/esm/index.js"
25
25
  }
26
26
  },
27
27
  "publishConfig": {
@@ -34,27 +34,32 @@
34
34
  "clean:build": "hanzogui-build clean:build"
35
35
  },
36
36
  "dependencies": {
37
- "@hanzogui/compose-refs": "8.3.1",
38
- "@hanzogui/core": "8.3.1",
39
- "@hanzogui/create-context": "8.3.1",
40
- "@hanzogui/floating": "8.3.1",
41
- "@hanzogui/get-token": "8.3.1",
42
- "@hanzogui/helpers": "8.3.1",
43
- "@hanzogui/polyfill-dev": "8.3.1",
44
- "@hanzogui/popover": "8.3.1",
45
- "@hanzogui/popper": "8.3.1",
46
- "@hanzogui/stacks": "8.3.1",
47
- "@hanzogui/text": "8.3.1",
48
- "@hanzogui/use-controllable-state": "8.3.1",
49
- "@hanzogui/web": "8.3.1"
37
+ "@hanzogui/compose-refs": "8.3.3",
38
+ "@hanzogui/core": "8.3.3",
39
+ "@hanzogui/create-context": "8.3.3",
40
+ "@hanzogui/floating": "8.3.3",
41
+ "@hanzogui/get-token": "8.3.3",
42
+ "@hanzogui/helpers": "8.3.3",
43
+ "@hanzogui/polyfill-dev": "8.3.3",
44
+ "@hanzogui/popover": "8.3.3",
45
+ "@hanzogui/popper": "8.3.3",
46
+ "@hanzogui/stacks": "8.3.3",
47
+ "@hanzogui/text": "8.3.3",
48
+ "@hanzogui/use-controllable-state": "8.3.3",
49
+ "@hanzogui/web": "8.3.3"
50
50
  },
51
51
  "devDependencies": {
52
- "@hanzogui/build": "8.3.1",
53
- "react": ">=19",
54
- "react-native": "0.83.2"
52
+ "@hanzogui/build": "8.3.3",
53
+ "react": "19.2.8",
54
+ "react-native": "^0.87.1"
55
55
  },
56
56
  "peerDependencies": {
57
- "react": ">=19"
57
+ "react": ">=19.2.8"
58
58
  },
59
- "module:jsx": "dist/jsx"
59
+ "module:jsx": "dist/jsx",
60
+ "repository": {
61
+ "type": "git",
62
+ "url": "git+https://github.com/hanzoai/gui.git",
63
+ "directory": "pkgs/ui/tooltip"
64
+ }
60
65
  }
@@ -3,8 +3,8 @@ import type { SizableStackProps } from '@hanzogui/stacks'
3
3
  import { Paragraph } from '@hanzogui/text'
4
4
  import * as React from 'react'
5
5
 
6
- import type { TooltipProps } from './Tooltip'
7
- import { Tooltip } from './Tooltip'
6
+ import type { TooltipProps } from './Tooltip.tsx'
7
+ import { Tooltip } from './Tooltip.tsx'
8
8
 
9
9
  export type TooltipSimpleProps = TooltipProps & {
10
10
  disabled?: boolean
package/src/index.tsx CHANGED
@@ -1,2 +1,2 @@
1
- export * from './Tooltip'
2
- export * from './TooltipSimple'
1
+ export * from './Tooltip.tsx'
2
+ export * from './TooltipSimple.tsx'