@rescui/tooltip 0.11.3 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/index.css +23 -23
- package/lib/tooltip.js +38 -15
- package/lib/tooltip.p.module.css.js +7 -7
- package/package.json +2 -2
package/lib/index.css
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
.
|
|
1
|
+
._tooltip_rbs2oy_5{
|
|
2
2
|
position:relative;
|
|
3
3
|
}
|
|
4
|
-
.
|
|
4
|
+
._closing_rbs2oy_9{
|
|
5
5
|
pointer-events:none;
|
|
6
6
|
}
|
|
7
|
-
.
|
|
7
|
+
._content_rbs2oy_13{
|
|
8
8
|
--rs-theme-dark:1;
|
|
9
9
|
--_rs-tooltip-border-width:1px;
|
|
10
10
|
|
|
@@ -76,33 +76,33 @@
|
|
|
76
76
|
transition:opacity 300ms var(--rs-transition-function, ease), transform 300ms var(--rs-transition-function, ease);
|
|
77
77
|
transform:translate(0, 0);
|
|
78
78
|
}
|
|
79
|
-
[data-popper-placement='top-end'] .
|
|
80
|
-
[data-popper-placement='bottom-end'] .
|
|
79
|
+
[data-popper-placement='top-end'] ._content_rbs2oy_13,
|
|
80
|
+
[data-popper-placement='bottom-end'] ._content_rbs2oy_13{
|
|
81
81
|
margin-right:0;
|
|
82
82
|
}
|
|
83
|
-
[data-popper-placement='top-start'] .
|
|
84
|
-
[data-popper-placement='bottom-start'] .
|
|
83
|
+
[data-popper-placement='top-start'] ._content_rbs2oy_13,
|
|
84
|
+
[data-popper-placement='bottom-start'] ._content_rbs2oy_13{
|
|
85
85
|
margin-left:0;
|
|
86
86
|
}
|
|
87
|
-
[data-popper-placement='left-end'] .
|
|
88
|
-
[data-popper-placement='right-end'] .
|
|
87
|
+
[data-popper-placement='left-end'] ._content_rbs2oy_13,
|
|
88
|
+
[data-popper-placement='right-end'] ._content_rbs2oy_13{
|
|
89
89
|
margin-bottom:0;
|
|
90
90
|
}
|
|
91
|
-
[data-popper-placement='left-start'] .
|
|
92
|
-
[data-popper-placement='right-start'] .
|
|
91
|
+
[data-popper-placement='left-start'] ._content_rbs2oy_13,
|
|
92
|
+
[data-popper-placement='right-start'] ._content_rbs2oy_13{
|
|
93
93
|
margin-top:0;
|
|
94
94
|
}
|
|
95
|
-
.
|
|
95
|
+
._initial_rbs2oy_55 ._content_rbs2oy_13{
|
|
96
96
|
transition:none;
|
|
97
97
|
}
|
|
98
|
-
.
|
|
98
|
+
._closing_rbs2oy_9 ._content_rbs2oy_13{
|
|
99
99
|
transition-duration:200ms, 200ms;
|
|
100
100
|
}
|
|
101
|
-
.
|
|
102
|
-
.
|
|
101
|
+
._initial_rbs2oy_55 ._content_rbs2oy_13,
|
|
102
|
+
._closing_rbs2oy_9 ._content_rbs2oy_13{
|
|
103
103
|
opacity:0;
|
|
104
104
|
}
|
|
105
|
-
.
|
|
105
|
+
._outerThemeLight_rbs2oy_69 ._content_rbs2oy_13{
|
|
106
106
|
--rs-color-primary-dark-theme:var(--rs-color-primary-light-theme);
|
|
107
107
|
--rs-color-primary-dim-dark-theme:var(--rs-color-primary-dim-light-theme);
|
|
108
108
|
--rs-color-primary-fog-dark-theme:var(--rs-color-primary-fog-light-theme);
|
|
@@ -113,7 +113,7 @@
|
|
|
113
113
|
--rs-color-primary-t-fog-light-theme
|
|
114
114
|
);
|
|
115
115
|
}
|
|
116
|
-
.
|
|
116
|
+
._outerThemeDark_rbs2oy_82 ._content_rbs2oy_13{
|
|
117
117
|
--rs-color-primary-light-theme:var(--rs-color-primary-dark-theme);
|
|
118
118
|
--rs-color-primary-dim-light-theme:var(--rs-color-primary-dim-dark-theme);
|
|
119
119
|
--rs-color-primary-fog-light-theme:var(--rs-color-primary-fog-dark-theme);
|
|
@@ -124,20 +124,20 @@
|
|
|
124
124
|
--rs-color-primary-t-fog-dark-theme
|
|
125
125
|
);
|
|
126
126
|
}
|
|
127
|
-
.
|
|
127
|
+
._initial_rbs2oy_55[data-popper-placement^='top'] ._content_rbs2oy_13, ._closing_rbs2oy_9[data-popper-placement^='top'] ._content_rbs2oy_13{
|
|
128
128
|
transform:translate(0, 10px);
|
|
129
129
|
}
|
|
130
|
-
.
|
|
130
|
+
._initial_rbs2oy_55[data-popper-placement^='right'] ._content_rbs2oy_13, ._closing_rbs2oy_9[data-popper-placement^='right'] ._content_rbs2oy_13{
|
|
131
131
|
transform:translate(-10px, 0);
|
|
132
132
|
}
|
|
133
|
-
.
|
|
133
|
+
._initial_rbs2oy_55[data-popper-placement^='bottom'] ._content_rbs2oy_13, ._closing_rbs2oy_9[data-popper-placement^='bottom'] ._content_rbs2oy_13{
|
|
134
134
|
transform:translate(0, -10px);
|
|
135
135
|
}
|
|
136
|
-
.
|
|
136
|
+
._initial_rbs2oy_55[data-popper-placement^='left'] ._content_rbs2oy_13, ._closing_rbs2oy_9[data-popper-placement^='left'] ._content_rbs2oy_13{
|
|
137
137
|
transform:translate(10px, 0);
|
|
138
138
|
}
|
|
139
|
-
.
|
|
140
|
-
.
|
|
139
|
+
._trigger_rbs2oy_114:focus-visible,
|
|
140
|
+
._trigger_rbs2oy_114:focus[data-focus-method='key']{
|
|
141
141
|
outline:none;
|
|
142
142
|
|
|
143
143
|
box-shadow:var(--rs-color-primary-t-dim-light-theme) 0 0 0 4px;
|
package/lib/tooltip.js
CHANGED
|
@@ -14,11 +14,27 @@ const HIDE_TIMEOUT = 500;
|
|
|
14
14
|
const Portal = _ref => {
|
|
15
15
|
let {
|
|
16
16
|
children,
|
|
17
|
-
target
|
|
17
|
+
target
|
|
18
18
|
} = _ref;
|
|
19
19
|
return target ? /*#__PURE__*/ReactDOM.createPortal(children, target) : null;
|
|
20
20
|
};
|
|
21
21
|
|
|
22
|
+
const TooltipPortal = _ref2 => {
|
|
23
|
+
let {
|
|
24
|
+
children,
|
|
25
|
+
renderBesideTrigger,
|
|
26
|
+
target
|
|
27
|
+
} = _ref2;
|
|
28
|
+
|
|
29
|
+
if (renderBesideTrigger) {
|
|
30
|
+
return children;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return /*#__PURE__*/React.createElement(Portal, {
|
|
34
|
+
target: target
|
|
35
|
+
}, children);
|
|
36
|
+
};
|
|
37
|
+
|
|
22
38
|
const isNode = maybeNode => {
|
|
23
39
|
switch (typeof maybeNode) {
|
|
24
40
|
case 'string':
|
|
@@ -45,7 +61,7 @@ const OUTER_THEME_STYLES = {
|
|
|
45
61
|
light: styles.outerThemeLight,
|
|
46
62
|
dark: styles.outerThemeDark
|
|
47
63
|
};
|
|
48
|
-
const TriggerRenderer = /*#__PURE__*/React.forwardRef((
|
|
64
|
+
const TriggerRenderer = /*#__PURE__*/React.forwardRef((_ref3, ref) => {
|
|
49
65
|
let {
|
|
50
66
|
setTriggerRef,
|
|
51
67
|
targetComponent,
|
|
@@ -53,7 +69,7 @@ const TriggerRenderer = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
|
53
69
|
handleMouseEnterTarget,
|
|
54
70
|
handleMouseLeaveTarget,
|
|
55
71
|
children
|
|
56
|
-
} =
|
|
72
|
+
} = _ref3;
|
|
57
73
|
const eventListeners = !isControlled ? {
|
|
58
74
|
onMouseEnter: handleMouseEnterTarget,
|
|
59
75
|
onMouseLeave: handleMouseLeaveTarget,
|
|
@@ -103,7 +119,7 @@ const TriggerRenderer = /*#__PURE__*/React.forwardRef((_ref2, ref) => {
|
|
|
103
119
|
});
|
|
104
120
|
TriggerRenderer.displayName = 'TriggerRenderer'; // eslint-disable-next-line complexity
|
|
105
121
|
|
|
106
|
-
const Tooltip =
|
|
122
|
+
const Tooltip = _ref4 => {
|
|
107
123
|
let {
|
|
108
124
|
children,
|
|
109
125
|
targetComponent = 'span',
|
|
@@ -116,7 +132,7 @@ const Tooltip = _ref3 => {
|
|
|
116
132
|
fallbackPlacements = ['top', 'bottom'],
|
|
117
133
|
disableHideDelay,
|
|
118
134
|
renderBesideTrigger = false
|
|
119
|
-
} =
|
|
135
|
+
} = _ref4;
|
|
120
136
|
const {
|
|
121
137
|
tooltipZIndex
|
|
122
138
|
} = useLayeringContext();
|
|
@@ -138,8 +154,8 @@ const Tooltip = _ref3 => {
|
|
|
138
154
|
setIsFirstRender(false);
|
|
139
155
|
}, []);
|
|
140
156
|
isVisible = isFirstRender && !renderBesideTrigger ? false : isVisible;
|
|
157
|
+
const ownerDocument = triggerRef?.ownerDocument;
|
|
141
158
|
const isOpen = isVisible || isTooltipHovered;
|
|
142
|
-
const PortalResolved = renderBesideTrigger ? React.Fragment : Portal;
|
|
143
159
|
useEffect(() => {
|
|
144
160
|
if (schedulePopperUpdateRef.current) {
|
|
145
161
|
schedulePopperUpdateRef.current();
|
|
@@ -176,10 +192,10 @@ const Tooltip = _ref3 => {
|
|
|
176
192
|
setIsInitial(true);
|
|
177
193
|
}
|
|
178
194
|
}, [isExists]);
|
|
179
|
-
const disableInitialFlag = useCallback(
|
|
195
|
+
const disableInitialFlag = useCallback(_ref5 => {
|
|
180
196
|
let {
|
|
181
197
|
state
|
|
182
|
-
} =
|
|
198
|
+
} = _ref5;
|
|
183
199
|
const el = state.elements.popper; // force layout phase
|
|
184
200
|
// to make sure that the dom has registered the initial
|
|
185
201
|
// styles with resolved placement (for `auto` placement)
|
|
@@ -192,7 +208,8 @@ const Tooltip = _ref3 => {
|
|
|
192
208
|
|
|
193
209
|
useEffect(() => {
|
|
194
210
|
if (!isInitial && contentRef.current) {
|
|
195
|
-
const
|
|
211
|
+
const ownerWindow = contentRef.current.ownerDocument.defaultView;
|
|
212
|
+
const isTransitionDisabled = ownerWindow?.getComputedStyle(contentRef.current).transitionDuration === '0s';
|
|
196
213
|
|
|
197
214
|
if (isTransitionDisabled) {
|
|
198
215
|
handleAnimationEnd();
|
|
@@ -207,9 +224,12 @@ const Tooltip = _ref3 => {
|
|
|
207
224
|
// But in this specific context, because of the nature of the state-ref "triggerRef",
|
|
208
225
|
// we are sure that the tooltip wouldn't be rendered on the first client render.
|
|
209
226
|
// Therefore, the first render on the client will be the same as on the server.
|
|
210
|
-
const triggerStyles = getComputedStyle(triggerRef);
|
|
211
|
-
|
|
212
|
-
|
|
227
|
+
const triggerStyles = ownerDocument?.defaultView?.getComputedStyle(triggerRef);
|
|
228
|
+
|
|
229
|
+
if (triggerStyles) {
|
|
230
|
+
themeFromCss = extractThemeFromCss(triggerStyles);
|
|
231
|
+
primaryColors = extractPrimaryColors(triggerStyles);
|
|
232
|
+
}
|
|
213
233
|
}
|
|
214
234
|
|
|
215
235
|
const {
|
|
@@ -217,10 +237,10 @@ const Tooltip = _ref3 => {
|
|
|
217
237
|
noProvider
|
|
218
238
|
} = useContext(ThemeContext);
|
|
219
239
|
const theme = noProvider ? themeFromCss : themeFromContext;
|
|
220
|
-
const calcOffset = useCallback(
|
|
240
|
+
const calcOffset = useCallback(_ref6 => {
|
|
221
241
|
let {
|
|
222
242
|
placement: offsetPlacement
|
|
223
|
-
} =
|
|
243
|
+
} = _ref6;
|
|
224
244
|
|
|
225
245
|
if (_includesInstanceProperty(offsetPlacement).call(offsetPlacement, 'left') || _includesInstanceProperty(offsetPlacement).call(offsetPlacement, 'right')) {
|
|
226
246
|
return [0, sparse ? 16 : 8];
|
|
@@ -260,7 +280,10 @@ const Tooltip = _ref3 => {
|
|
|
260
280
|
isControlled: isControlled,
|
|
261
281
|
handleMouseEnterTarget: handleMouseEnterTarget,
|
|
262
282
|
handleMouseLeaveTarget: handleMouseLeaveTarget
|
|
263
|
-
}, children), tooltipShouldBeRendered && /*#__PURE__*/React.createElement(
|
|
283
|
+
}, children), tooltipShouldBeRendered && /*#__PURE__*/React.createElement(TooltipPortal, {
|
|
284
|
+
renderBesideTrigger: renderBesideTrigger,
|
|
285
|
+
target: ownerDocument?.body
|
|
286
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
264
287
|
className: cn(styles.tooltip, isInitial && styles.initial, isClosing && styles.closing, OUTER_THEME_STYLES[theme], className),
|
|
265
288
|
ref: setPopperRef,
|
|
266
289
|
style: { ...popperStyles.popper,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
var styles = {
|
|
2
|
-
"tooltip": "
|
|
3
|
-
"closing": "
|
|
4
|
-
"content": "
|
|
5
|
-
"initial": "
|
|
6
|
-
"outerThemeLight": "
|
|
7
|
-
"outerThemeDark": "
|
|
8
|
-
"trigger": "
|
|
2
|
+
"tooltip": "_tooltip_rbs2oy_5",
|
|
3
|
+
"closing": "_closing_rbs2oy_9",
|
|
4
|
+
"content": "_content_rbs2oy_13",
|
|
5
|
+
"initial": "_initial_rbs2oy_55",
|
|
6
|
+
"outerThemeLight": "_outerThemeLight_rbs2oy_69",
|
|
7
|
+
"outerThemeDark": "_outerThemeDark_rbs2oy_82",
|
|
8
|
+
"trigger": "_trigger_rbs2oy_114"
|
|
9
9
|
};
|
|
10
10
|
export { styles as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rescui/tooltip",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.12.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "JetBrains",
|
|
@@ -37,5 +37,5 @@
|
|
|
37
37
|
"build": "rescui-scripts build"
|
|
38
38
|
},
|
|
39
39
|
"nx": {},
|
|
40
|
-
"gitHead": "
|
|
40
|
+
"gitHead": "7aade8fced69c4a1ac61078a1daf2c1cd4f5a1c9"
|
|
41
41
|
}
|