@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 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-absolute s-z-10 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");
40427
- var hiddenClasses = "s-translate-y-2 s-opacity-0 s-pointer-events-none"; // Added 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, tooltipPositionClasses, tooltipCenterClasses, contentChildren ? "" : labelClasses), onAnimationEnd: function () { return setIsHovered(false); } }, contentChildren || label)));
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 = {