@dust-tt/sparkle 0.2.243 → 0.2.244-rc-alb
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 +31 -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 +32 -8
- package/dist/esm/components/Tooltip.js.map +1 -1
- package/dist/sparkle.css +0 -25
- package/package.json +1 -1
- package/src/components/Tooltip.tsx +39 -9
package/dist/cjs/index.js
CHANGED
|
@@ -40400,6 +40400,8 @@ 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 triggerRef = React.useRef(null);
|
|
40404
|
+
var tooltipRef = React.useRef(null);
|
|
40403
40405
|
var handleMouseOver = function () {
|
|
40404
40406
|
var id = window.setTimeout(function () {
|
|
40405
40407
|
setIsHovered(true);
|
|
@@ -40420,21 +40422,43 @@ function Tooltip(_a) {
|
|
|
40420
40422
|
}
|
|
40421
40423
|
};
|
|
40422
40424
|
}, [timerId]);
|
|
40425
|
+
React.useEffect(function () {
|
|
40426
|
+
if (isHovered && triggerRef.current && tooltipRef.current) {
|
|
40427
|
+
var triggerRect = triggerRef.current.getBoundingClientRect();
|
|
40428
|
+
var tooltipRect = tooltipRef.current.getBoundingClientRect();
|
|
40429
|
+
var top_1 = position === "above"
|
|
40430
|
+
? triggerRect.top - tooltipRect.height - 10
|
|
40431
|
+
: triggerRect.bottom + 10;
|
|
40432
|
+
var left = triggerRect.left + triggerRect.width / 2 - tooltipRect.width / 2;
|
|
40433
|
+
// Adjust if tooltip goes off-screen
|
|
40434
|
+
if (left < 0) {
|
|
40435
|
+
left = 0;
|
|
40436
|
+
}
|
|
40437
|
+
if (left + tooltipRect.width > window.innerWidth) {
|
|
40438
|
+
left = window.innerWidth - tooltipRect.width;
|
|
40439
|
+
}
|
|
40440
|
+
if (top_1 < 0) {
|
|
40441
|
+
top_1 = triggerRect.bottom + 10; // Switch to below if above doesn't fit
|
|
40442
|
+
}
|
|
40443
|
+
if (top_1 + tooltipRect.height > window.innerHeight) {
|
|
40444
|
+
top_1 = triggerRect.top - tooltipRect.height - 10; // Switch to above if below doesn't fit
|
|
40445
|
+
}
|
|
40446
|
+
tooltipRef.current.style.top = "".concat(top_1, "px");
|
|
40447
|
+
tooltipRef.current.style.left = "".concat(left, "px");
|
|
40448
|
+
}
|
|
40449
|
+
}, [isHovered, position]);
|
|
40423
40450
|
if (isTouchDevice) {
|
|
40424
40451
|
return React.createElement(React.Fragment, null, children);
|
|
40425
40452
|
}
|
|
40426
|
-
var baseClasses = classNames("s-
|
|
40427
|
-
var hiddenClasses = "s-translate-y-2 s-opacity-0 s-pointer-events-none";
|
|
40453
|
+
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");
|
|
40454
|
+
var hiddenClasses = "s-translate-y-2 s-opacity-0 s-pointer-events-none";
|
|
40428
40455
|
var visibleClasses = "-s-translate-y-0 s-opacity-100";
|
|
40429
40456
|
var hiddenOnMobileClasses = "s-hidden sm:s-block";
|
|
40430
|
-
var tooltipCenterClasses = "s-left-1/2 -s-translate-x-1/2";
|
|
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
|
|
40433
40457
|
var labelLength = (label === null || label === void 0 ? void 0 : label.length) || 0;
|
|
40434
40458
|
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" },
|
|
40459
|
+
return (React.createElement("div", { ref: triggerRef, onMouseEnter: handleMouseOver, onMouseLeave: handleMouseLeave, className: "s-relative s-inline-block" },
|
|
40436
40460
|
children,
|
|
40437
|
-
React.createElement("div", { className: classNames("".concat(isHovered ? visibleClasses : hiddenClasses), baseClasses, hiddenOnMobileClasses,
|
|
40461
|
+
React.createElement("div", { ref: tooltipRef, className: classNames("".concat(isHovered ? visibleClasses : hiddenClasses), baseClasses, hiddenOnMobileClasses, contentChildren ? "" : labelClasses), style: { position: "fixed", top: 0, left: 0 }, onAnimationEnd: function () { return setIsHovered(false); } }, contentChildren || label)));
|
|
40438
40462
|
}
|
|
40439
40463
|
|
|
40440
40464
|
var textClasses = {
|