@cleartrip/ct-design-tooltip-v2 1.1.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.
Files changed (34) hide show
  1. package/dist/ct-design-tooltip-v2.browser.cjs.js +2 -0
  2. package/dist/ct-design-tooltip-v2.browser.cjs.js.map +1 -0
  3. package/dist/ct-design-tooltip-v2.browser.esm.js +2 -0
  4. package/dist/ct-design-tooltip-v2.browser.esm.js.map +1 -0
  5. package/dist/ct-design-tooltip-v2.cjs.js +375 -0
  6. package/dist/ct-design-tooltip-v2.cjs.js.map +1 -0
  7. package/dist/ct-design-tooltip-v2.esm.js +368 -0
  8. package/dist/ct-design-tooltip-v2.esm.js.map +1 -0
  9. package/dist/ct-design-tooltip-v2.umd.js +403 -0
  10. package/dist/ct-design-tooltip-v2.umd.js.map +1 -0
  11. package/dist/src/StyledTooltipV2/StyledTooltipV2.d.ts +4 -0
  12. package/dist/src/StyledTooltipV2/StyledTooltipV2.d.ts.map +1 -0
  13. package/dist/src/StyledTooltipV2/index.d.ts +2 -0
  14. package/dist/src/StyledTooltipV2/index.d.ts.map +1 -0
  15. package/dist/src/StyledTooltipV2/type.d.ts +11 -0
  16. package/dist/src/StyledTooltipV2/type.d.ts.map +1 -0
  17. package/dist/src/StyledTooltipV2Arrow/StyledTooltipV2Arrow.d.ts +4 -0
  18. package/dist/src/StyledTooltipV2Arrow/StyledTooltipV2Arrow.d.ts.map +1 -0
  19. package/dist/src/StyledTooltipV2Arrow/index.d.ts +2 -0
  20. package/dist/src/StyledTooltipV2Arrow/index.d.ts.map +1 -0
  21. package/dist/src/StyledTooltipV2Arrow/type.d.ts +10 -0
  22. package/dist/src/StyledTooltipV2Arrow/type.d.ts.map +1 -0
  23. package/dist/src/TooltipV2.d.ts +5 -0
  24. package/dist/src/TooltipV2.d.ts.map +1 -0
  25. package/dist/src/index.d.ts +3 -0
  26. package/dist/src/index.d.ts.map +1 -0
  27. package/dist/src/style.d.ts +175 -0
  28. package/dist/src/style.d.ts.map +1 -0
  29. package/dist/src/type.d.ts +39 -0
  30. package/dist/src/type.d.ts.map +1 -0
  31. package/dist/stats.html +4838 -0
  32. package/dist/stories/TooltipV2.stories.d.ts +6 -0
  33. package/dist/stories/TooltipV2.stories.d.ts.map +1 -0
  34. package/package.json +42 -0
@@ -0,0 +1,368 @@
1
+ import { __assign } from 'tslib';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { useState, useRef, useEffect, Fragment } from 'react';
4
+ import useTheme from '@cleartrip/ct-design-use-theme';
5
+ import { Container } from '@cleartrip/ct-design-container';
6
+ import styled from 'styled-components';
7
+ import { TooltipChevronDown } from '@cleartrip/ct-design-icons';
8
+ import { isEmpty } from '@cleartrip/ct-design-common-utils';
9
+
10
+ var HOVER_TYPE;
11
+ (function (HOVER_TYPE) {
12
+ HOVER_TYPE["ENTER"] = "ENTER";
13
+ HOVER_TYPE["LEAVE"] = "LEAVE";
14
+ })(HOVER_TYPE || (HOVER_TYPE = {}));
15
+ var ITooltipV2BorderSize;
16
+ (function (ITooltipV2BorderSize) {
17
+ ITooltipV2BorderSize["XS"] = "xs";
18
+ ITooltipV2BorderSize["SM"] = "sm";
19
+ ITooltipV2BorderSize["MD"] = "md";
20
+ ITooltipV2BorderSize["LG"] = "lg";
21
+ ITooltipV2BorderSize["XL"] = "xl";
22
+ })(ITooltipV2BorderSize || (ITooltipV2BorderSize = {}));
23
+ var ITooltipV2Position;
24
+ (function (ITooltipV2Position) {
25
+ ITooltipV2Position["AUTO"] = "auto";
26
+ ITooltipV2Position["LEFT"] = "left";
27
+ ITooltipV2Position["RIGHT"] = "right";
28
+ ITooltipV2Position["TOP"] = "top";
29
+ ITooltipV2Position["BOTTOM"] = "bottom";
30
+ })(ITooltipV2Position || (ITooltipV2Position = {}));
31
+
32
+ var getTooltipV2BorderSize = function (borderSize, theme) {
33
+ switch (borderSize) {
34
+ case ITooltipV2BorderSize.XS: {
35
+ return {
36
+ borderRadius: theme.border.radius[4],
37
+ };
38
+ }
39
+ case ITooltipV2BorderSize.SM: {
40
+ return {
41
+ borderRadius: theme.border.radius[6],
42
+ };
43
+ }
44
+ case ITooltipV2BorderSize.MD: {
45
+ return {
46
+ borderRadius: theme.border.radius[8],
47
+ };
48
+ }
49
+ case ITooltipV2BorderSize.LG: {
50
+ return {
51
+ borderRadius: theme.border.radius[16],
52
+ };
53
+ }
54
+ case ITooltipV2BorderSize.XL: {
55
+ return {
56
+ borderRadius: theme.border.radius[32],
57
+ };
58
+ }
59
+ default: {
60
+ return {
61
+ borderRadius: theme.border.radius[8],
62
+ };
63
+ }
64
+ }
65
+ };
66
+ var getTooltipV2AutoPositionStyle = function (_a) {
67
+ var labelRef = _a.labelRef, tooltipRef = _a.tooltipRef, anchorRef = _a.anchorRef;
68
+ var anchorElement = (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) || document.body;
69
+ if ((tooltipRef === null || tooltipRef === void 0 ? void 0 : tooltipRef.current) && (labelRef === null || labelRef === void 0 ? void 0 : labelRef.current) && anchorElement) {
70
+ var anchorElementStyleData = anchorElement.getBoundingClientRect();
71
+ var tooltipElementStyleData = tooltipRef.current.getBoundingClientRect();
72
+ var anchorRight = anchorElementStyleData.right, anchorBottom = anchorElementStyleData.bottom;
73
+ var tooltipRight = tooltipElementStyleData.right, tooltipBottom = tooltipElementStyleData.bottom;
74
+ var tooltipHeight = tooltipRef.current.offsetHeight;
75
+ var tooltipWidth = tooltipRef.current.offsetWidth;
76
+ var labelHeight = labelRef.current.offsetHeight;
77
+ var labelWidth = labelRef.current.offsetWidth;
78
+ if (tooltipRight > anchorRight && tooltipBottom > anchorBottom) {
79
+ return {
80
+ left: tooltipWidth - labelWidth < 0 ? tooltipWidth - labelWidth : -(tooltipWidth - labelWidth),
81
+ top: -(tooltipHeight + 10),
82
+ };
83
+ }
84
+ else if (tooltipBottom > anchorBottom) {
85
+ return {
86
+ top: -(tooltipHeight + 10),
87
+ };
88
+ }
89
+ else if (tooltipRight > anchorRight) {
90
+ return {
91
+ left: tooltipWidth - labelWidth < 0 ? tooltipWidth - labelWidth : -(tooltipWidth - labelWidth),
92
+ top: labelHeight + 10,
93
+ };
94
+ }
95
+ else {
96
+ return {
97
+ top: labelHeight + 10,
98
+ };
99
+ }
100
+ }
101
+ return {};
102
+ };
103
+ var getTooltipV2BottomPosition = function (_a) {
104
+ var labelRef = _a.labelRef, tooltipRef = _a.tooltipRef, anchorRef = _a.anchorRef;
105
+ var anchorElement = (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) || document.body;
106
+ if ((labelRef === null || labelRef === void 0 ? void 0 : labelRef.current) && (tooltipRef === null || tooltipRef === void 0 ? void 0 : tooltipRef.current)) {
107
+ var _b = anchorElement.getBoundingClientRect(), anchorRight = _b.right, anchorLeft = _b.left;
108
+ var _c = labelRef.current.getBoundingClientRect(), labelRight = _c.right, labelLeft = _c.left;
109
+ var tooltipWidth = tooltipRef.current.offsetWidth;
110
+ var labelHeight = labelRef.current.offsetHeight;
111
+ var labelWidth = labelRef.current.offsetWidth;
112
+ var leftPosition = tooltipWidth - labelWidth < 0 ? (tooltipWidth - labelWidth) / 2 : -(tooltipWidth - labelWidth) / 2;
113
+ if (tooltipWidth > labelWidth && anchorRight - labelRight < (tooltipWidth - labelWidth) / 2) {
114
+ leftPosition -= (tooltipWidth - labelWidth) / 2 - (anchorRight - labelRight) + 4;
115
+ }
116
+ else if (tooltipWidth > labelWidth && labelLeft - anchorLeft < (tooltipWidth - labelWidth) / 2) {
117
+ leftPosition += (tooltipWidth - labelWidth) / 2 - (labelLeft - anchorLeft) + 4;
118
+ }
119
+ return {
120
+ top: labelHeight + 10,
121
+ left: leftPosition,
122
+ };
123
+ }
124
+ return {};
125
+ };
126
+ var getTooltipV2TopPosition = function (_a) {
127
+ var labelRef = _a.labelRef, tooltipRef = _a.tooltipRef, anchorRef = _a.anchorRef;
128
+ var anchorElement = (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) || document.body;
129
+ if ((labelRef === null || labelRef === void 0 ? void 0 : labelRef.current) && (tooltipRef === null || tooltipRef === void 0 ? void 0 : tooltipRef.current)) {
130
+ var _b = anchorElement.getBoundingClientRect(), anchorRight = _b.right, anchorLeft = _b.left;
131
+ var _c = labelRef.current.getBoundingClientRect(), labelRight = _c.right, labelLeft = _c.left;
132
+ var tooltipWidth = tooltipRef.current.offsetWidth;
133
+ var tooltipHeight = tooltipRef.current.offsetHeight;
134
+ var labelWidth = labelRef.current.offsetWidth;
135
+ var leftPosition = tooltipWidth - labelWidth < 0 ? (tooltipWidth - labelWidth) / 2 : -(tooltipWidth - labelWidth) / 2;
136
+ if (tooltipWidth > labelWidth && anchorRight - labelRight < (tooltipWidth - labelWidth) / 2) {
137
+ leftPosition -= (tooltipWidth - labelWidth) / 2 - (anchorRight - labelRight) + 4;
138
+ }
139
+ else if (tooltipWidth > labelWidth && labelLeft - anchorLeft < (tooltipWidth - labelWidth) / 2) {
140
+ leftPosition += (tooltipWidth - labelWidth) / 2 - (labelLeft - anchorLeft) + 4;
141
+ }
142
+ return {
143
+ top: -(tooltipHeight + 10),
144
+ left: leftPosition,
145
+ };
146
+ }
147
+ return {};
148
+ };
149
+ var getTooltipV2Position = function (_a) {
150
+ var position = _a.position, labelRef = _a.labelRef, tooltipRef = _a.tooltipRef, anchorRef = _a.anchorRef; _a.theme;
151
+ if ((labelRef === null || labelRef === void 0 ? void 0 : labelRef.current) && (tooltipRef === null || tooltipRef === void 0 ? void 0 : tooltipRef.current)) {
152
+ var tooltipHeight = tooltipRef.current.offsetHeight;
153
+ var tooltipWidth = tooltipRef.current.offsetWidth;
154
+ var labelHeight = labelRef.current.offsetHeight;
155
+ var labelWidth = labelRef.current.offsetWidth;
156
+ switch (position) {
157
+ case ITooltipV2Position.LEFT: {
158
+ return {
159
+ left: -(tooltipWidth + 10),
160
+ top: -(tooltipHeight / 2 - labelHeight / 2),
161
+ };
162
+ }
163
+ case ITooltipV2Position.RIGHT: {
164
+ return {
165
+ left: labelWidth + 10,
166
+ top: -(tooltipHeight / 2 - labelHeight / 2),
167
+ };
168
+ }
169
+ case ITooltipV2Position.TOP: {
170
+ return getTooltipV2TopPosition({
171
+ labelRef: labelRef,
172
+ tooltipRef: tooltipRef,
173
+ anchorRef: anchorRef,
174
+ });
175
+ }
176
+ case ITooltipV2Position.BOTTOM: {
177
+ return getTooltipV2BottomPosition({
178
+ labelRef: labelRef,
179
+ tooltipRef: tooltipRef,
180
+ anchorRef: anchorRef,
181
+ });
182
+ }
183
+ case ITooltipV2Position.AUTO: {
184
+ return getTooltipV2AutoPositionStyle({
185
+ labelRef: labelRef,
186
+ tooltipRef: tooltipRef,
187
+ anchorRef: anchorRef,
188
+ });
189
+ }
190
+ default: {
191
+ return {
192
+ left: labelWidth,
193
+ top: -(tooltipHeight / 2 - labelHeight / 2),
194
+ };
195
+ }
196
+ }
197
+ }
198
+ };
199
+ var getTooltipV2AutoArrowStyles = function (_a) {
200
+ var labelRef = _a.labelRef, tooltipRef = _a.tooltipRef, anchorRef = _a.anchorRef;
201
+ var anchorElement = (anchorRef === null || anchorRef === void 0 ? void 0 : anchorRef.current) || document.body;
202
+ if ((tooltipRef === null || tooltipRef === void 0 ? void 0 : tooltipRef.current) && (labelRef === null || labelRef === void 0 ? void 0 : labelRef.current) && anchorElement) {
203
+ var anchorElementStyleData = anchorElement.getBoundingClientRect();
204
+ var tooltipElementStyleData = tooltipRef.current.getBoundingClientRect();
205
+ var anchorRight = anchorElementStyleData.right, anchorBottom = anchorElementStyleData.bottom;
206
+ var tooltipRight = tooltipElementStyleData.right, tooltipBottom = tooltipElementStyleData.bottom;
207
+ var labelHeight = labelRef.current.offsetHeight;
208
+ var labelWidth = labelRef.current.offsetWidth;
209
+ if (tooltipRight > anchorRight && tooltipBottom > anchorBottom) {
210
+ return {
211
+ top: '-10px',
212
+ left: labelWidth / 2,
213
+ };
214
+ }
215
+ else if (tooltipBottom > anchorBottom) {
216
+ return {
217
+ top: '-10px',
218
+ left: labelWidth / 2,
219
+ };
220
+ }
221
+ else if (tooltipRight > anchorRight) {
222
+ return {
223
+ rotate: '180deg',
224
+ left: labelWidth / 2,
225
+ top: labelHeight + 4,
226
+ };
227
+ }
228
+ else {
229
+ return {
230
+ rotate: '180deg',
231
+ left: labelWidth / 2,
232
+ top: labelHeight + 4,
233
+ };
234
+ }
235
+ }
236
+ return {};
237
+ };
238
+ var getTooltipV2ArrowStyles = function (_a) {
239
+ var position = _a.position, labelRef = _a.labelRef, tooltipRef = _a.tooltipRef, anchorRef = _a.anchorRef; _a.theme;
240
+ if ((labelRef === null || labelRef === void 0 ? void 0 : labelRef.current) && (tooltipRef === null || tooltipRef === void 0 ? void 0 : tooltipRef.current)) {
241
+ var labelWidth = labelRef.current.offsetWidth;
242
+ var labelHeight = labelRef.current.offsetHeight;
243
+ switch (position) {
244
+ case ITooltipV2Position.TOP: {
245
+ return {
246
+ top: '-10px',
247
+ left: labelWidth / 2,
248
+ };
249
+ }
250
+ case ITooltipV2Position.BOTTOM: {
251
+ return {
252
+ rotate: '180deg',
253
+ top: labelHeight + 4,
254
+ left: labelWidth / 2,
255
+ };
256
+ }
257
+ case ITooltipV2Position.LEFT: {
258
+ return {
259
+ rotate: '-90deg',
260
+ top: 0,
261
+ left: '-16px',
262
+ };
263
+ }
264
+ case ITooltipV2Position.RIGHT: {
265
+ return {
266
+ rotate: '90deg',
267
+ top: 0,
268
+ left: labelWidth - 1,
269
+ };
270
+ }
271
+ case ITooltipV2Position.AUTO: {
272
+ return getTooltipV2AutoArrowStyles({ labelRef: labelRef, tooltipRef: tooltipRef, anchorRef: anchorRef });
273
+ }
274
+ default: {
275
+ return {
276
+ rotate: '90deg',
277
+ top: 0,
278
+ left: labelWidth,
279
+ };
280
+ }
281
+ }
282
+ }
283
+ return {};
284
+ };
285
+ var getTooltipV2Styles = function (_a) {
286
+ var borderSize = _a.borderSize, position = _a.position, labelRef = _a.labelRef, tooltipRef = _a.tooltipRef, anchorRef = _a.anchorRef, theme = _a.theme;
287
+ var tooltipPosition = getTooltipV2Position({ position: position, labelRef: labelRef, tooltipRef: tooltipRef, anchorRef: anchorRef, theme: theme }) || {};
288
+ return __assign(__assign({}, tooltipPosition), getTooltipV2BorderSize(borderSize, theme));
289
+ };
290
+
291
+ var StyledTooltipV2 = styled.div(function (_a) {
292
+ var borderRadius = _a.borderRadius, width = _a.width, left = _a.left, top = _a.top, theme = _a.theme, visibility = _a.visibility;
293
+ return ({
294
+ backgroundColor: theme.color.background.defaultDarkest,
295
+ position: 'absolute',
296
+ zIndex: theme.zIndex.tooltip,
297
+ borderRadius: borderRadius,
298
+ width: width,
299
+ left: left,
300
+ top: top,
301
+ visibility: visibility,
302
+ });
303
+ });
304
+
305
+ var StyledTooltipV2Arrow = styled.div(function (_a) {
306
+ var rotate = _a.rotate, top = _a.top, left = _a.left, theme = _a.theme, visibility = _a.visibility;
307
+ return ({
308
+ rotate: rotate,
309
+ top: top,
310
+ left: left,
311
+ zIndex: theme.zIndex.tooltip,
312
+ position: 'absolute',
313
+ width: 'fit-content',
314
+ display: 'flex',
315
+ visibility: visibility,
316
+ });
317
+ });
318
+
319
+ var TooltipV2 = function (_a) {
320
+ var children = _a.children, labelContainer = _a.labelContainer, _b = _a.borderSize, borderSize = _b === void 0 ? ITooltipV2BorderSize.MD : _b, _c = _a.position, position = _c === void 0 ? ITooltipV2Position.RIGHT : _c, width = _a.width, anchorRef = _a.anchorRef, _d = _a.open, open = _d === void 0 ? false : _d;
321
+ var theme = useTheme();
322
+ var _e = useState(open || false), isHovering = _e[0], setIsHovering = _e[1];
323
+ var _f = useState({}), tooltipStyles = _f[0], setTooltipStyles = _f[1];
324
+ var _g = useState({}), tooltipArrowStyles = _g[0], setTooltipArrowStyles = _g[1];
325
+ var labelRef = useRef(null);
326
+ var tooltipRef = useRef(null);
327
+ var setTooltipV2Styles = function () {
328
+ var tooltipV2Style = getTooltipV2Styles({
329
+ borderSize: borderSize,
330
+ position: position,
331
+ labelRef: labelRef,
332
+ tooltipRef: tooltipRef,
333
+ anchorRef: anchorRef,
334
+ theme: theme,
335
+ });
336
+ var tooltipV2ArrowStyle = getTooltipV2ArrowStyles({
337
+ position: position,
338
+ labelRef: labelRef,
339
+ tooltipRef: tooltipRef,
340
+ anchorRef: anchorRef,
341
+ theme: theme,
342
+ });
343
+ setTooltipStyles(tooltipV2Style);
344
+ setTooltipArrowStyles(tooltipV2ArrowStyle);
345
+ };
346
+ useEffect(function () {
347
+ if (open) {
348
+ setTooltipV2Styles();
349
+ }
350
+ }, []);
351
+ var onHover = function (hoverType) { return function () {
352
+ if (open)
353
+ return;
354
+ if (hoverType === HOVER_TYPE.ENTER) {
355
+ setTooltipV2Styles();
356
+ setIsHovering(true);
357
+ }
358
+ else {
359
+ setTooltipStyles({});
360
+ setTooltipArrowStyles({});
361
+ setIsHovering(false);
362
+ }
363
+ }; };
364
+ return (jsxs(Container, __assign({ position: 'relative' }, { children: [jsx(Container, __assign({ ref: labelRef, onMouseEnter: onHover(HOVER_TYPE.ENTER), onMouseLeave: onHover(HOVER_TYPE.LEAVE), width: 'fit-content' }, { children: labelContainer })), !!children && (jsxs(Fragment, { children: [jsx(StyledTooltipV2, __assign({}, tooltipStyles, { visibility: isHovering && !isEmpty(tooltipStyles) ? 'visible' : 'hidden', width: width || 'fit-content', theme: theme, ref: tooltipRef }, { children: children })), jsx(StyledTooltipV2Arrow, __assign({}, tooltipArrowStyles, { visibility: isHovering && !isEmpty(tooltipArrowStyles) ? 'visible' : 'hidden', theme: theme }, { children: jsx(TooltipChevronDown, {}) }))] }))] })));
365
+ };
366
+
367
+ export { HOVER_TYPE, ITooltipV2BorderSize, ITooltipV2Position, TooltipV2 };
368
+ //# sourceMappingURL=ct-design-tooltip-v2.esm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ct-design-tooltip-v2.esm.js","sources":["../../packages/components/TooltipV2/src/type.ts","../../packages/components/TooltipV2/src/style.ts","../../packages/components/TooltipV2/src/StyledTooltipV2/StyledTooltipV2.tsx","../../packages/components/TooltipV2/src/StyledTooltipV2Arrow/StyledTooltipV2Arrow.tsx","../../packages/components/TooltipV2/src/TooltipV2.tsx"],"sourcesContent":[null,null,null,null,null],"names":["_jsxs","_jsx"],"mappings":"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"}