@dust-tt/sparkle 0.2.243 → 0.2.244-rc
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/index.js +28 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/components/Tooltip.d.ts.map +1 -1
- package/dist/esm/components/Tooltip.js +29 -8
- package/dist/esm/components/Tooltip.js.map +1 -1
- package/dist/sparkle.css +0 -20
- package/package.json +1 -1
- package/src/components/Tooltip.tsx +31 -8
package/dist/cjs/index.js
CHANGED
|
@@ -40400,9 +40400,12 @@ function Tooltip(_a) {
|
|
|
40400
40400
|
var _c = __read(React.useState(false), 2), isHovered = _c[0], setIsHovered = _c[1];
|
|
40401
40401
|
var _d = __read(React.useState(null), 2), timerId = _d[0], setTimerId = _d[1];
|
|
40402
40402
|
var _e = __read(React.useState(false), 2), isTouchDevice = _e[0], setIsTouchDevice = _e[1];
|
|
40403
|
+
var _f = __read(React.useState({ top: 0, left: 0 }), 2), tooltipPosition = _f[0], setTooltipPosition = _f[1];
|
|
40404
|
+
var triggerRef = React.useRef(null);
|
|
40403
40405
|
var handleMouseOver = function () {
|
|
40404
40406
|
var id = window.setTimeout(function () {
|
|
40405
40407
|
setIsHovered(true);
|
|
40408
|
+
updateTooltipPosition();
|
|
40406
40409
|
}, 600);
|
|
40407
40410
|
setTimerId(id);
|
|
40408
40411
|
};
|
|
@@ -40412,6 +40415,15 @@ function Tooltip(_a) {
|
|
|
40412
40415
|
}
|
|
40413
40416
|
setIsHovered(false);
|
|
40414
40417
|
};
|
|
40418
|
+
var updateTooltipPosition = function () {
|
|
40419
|
+
if (triggerRef.current) {
|
|
40420
|
+
var rect = triggerRef.current.getBoundingClientRect();
|
|
40421
|
+
setTooltipPosition({
|
|
40422
|
+
top: position === "above" ? rect.top - 10 : rect.bottom + 10,
|
|
40423
|
+
left: rect.left + rect.width / 2,
|
|
40424
|
+
});
|
|
40425
|
+
}
|
|
40426
|
+
};
|
|
40415
40427
|
React.useEffect(function () {
|
|
40416
40428
|
setIsTouchDevice("ontouchstart" in window || navigator.maxTouchPoints > 0);
|
|
40417
40429
|
return function () {
|
|
@@ -40420,21 +40432,30 @@ function Tooltip(_a) {
|
|
|
40420
40432
|
}
|
|
40421
40433
|
};
|
|
40422
40434
|
}, [timerId]);
|
|
40435
|
+
React.useEffect(function () {
|
|
40436
|
+
window.addEventListener("scroll", updateTooltipPosition);
|
|
40437
|
+
window.addEventListener("resize", updateTooltipPosition);
|
|
40438
|
+
return function () {
|
|
40439
|
+
window.removeEventListener("scroll", updateTooltipPosition);
|
|
40440
|
+
window.removeEventListener("resize", updateTooltipPosition);
|
|
40441
|
+
};
|
|
40442
|
+
}, []);
|
|
40423
40443
|
if (isTouchDevice) {
|
|
40424
40444
|
return React.createElement(React.Fragment, null, children);
|
|
40425
40445
|
}
|
|
40426
|
-
var baseClasses = classNames("s-
|
|
40427
|
-
var hiddenClasses = "s-translate-y-2 s-opacity-0 s-pointer-events-none";
|
|
40446
|
+
var baseClasses = classNames("s-fixed s-z-50 s-px-3 s-py-2 s-text-sm s-rounded-xl s-border s-shadow-md s-transition-all s-duration-500 s-ease-out s-transform", "s-border-structure-100 dark:s-border-structure-50-dark s-bg-structure-0 dark:s-bg-structure-100-dark s-text-element-700 dark:s-text-element-600-dark");
|
|
40447
|
+
var hiddenClasses = "s-translate-y-2 s-opacity-0 s-pointer-events-none";
|
|
40428
40448
|
var visibleClasses = "-s-translate-y-0 s-opacity-100";
|
|
40429
40449
|
var hiddenOnMobileClasses = "s-hidden sm:s-block";
|
|
40430
|
-
var tooltipCenterClasses = "
|
|
40431
|
-
var tooltipPositionClasses = position === "above" ? "s-bottom-full s-mb-2" : "s-top-full s-mt-2";
|
|
40432
|
-
// if tooltip text is too long we need to wrap it
|
|
40450
|
+
var tooltipCenterClasses = "-s-translate-x-1/2";
|
|
40433
40451
|
var labelLength = (label === null || label === void 0 ? void 0 : label.length) || 0;
|
|
40434
40452
|
var labelClasses = labelLength > 80 ? "s-w-[38em]" : "s-whitespace-nowrap";
|
|
40435
|
-
return (React.createElement("div", { onMouseEnter: handleMouseOver, onMouseLeave: handleMouseLeave, className: "s-relative s-inline-block" },
|
|
40453
|
+
return (React.createElement("div", { ref: triggerRef, onMouseEnter: handleMouseOver, onMouseLeave: handleMouseLeave, className: "s-relative s-inline-block" },
|
|
40436
40454
|
children,
|
|
40437
|
-
React.createElement("div", { className: classNames("".concat(isHovered ? visibleClasses : hiddenClasses), baseClasses, hiddenOnMobileClasses,
|
|
40455
|
+
React.createElement("div", { className: classNames("".concat(isHovered ? visibleClasses : hiddenClasses), baseClasses, hiddenOnMobileClasses, tooltipCenterClasses, contentChildren ? "" : labelClasses), style: {
|
|
40456
|
+
top: "".concat(tooltipPosition.top, "px"),
|
|
40457
|
+
left: "".concat(tooltipPosition.left, "px"),
|
|
40458
|
+
}, onAnimationEnd: function () { return setIsHovered(false); } }, contentChildren || label)));
|
|
40438
40459
|
}
|
|
40439
40460
|
|
|
40440
40461
|
var textClasses = {
|