@underverse-ui/underverse 1.0.120 → 1.0.122

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/index.js CHANGED
@@ -2861,6 +2861,7 @@ var Tooltip = React10.forwardRef(({
2861
2861
  const panelRef = React10.useRef(null);
2862
2862
  const timeoutRef = React10.useRef(void 0);
2863
2863
  const lastAppliedRef = React10.useRef(null);
2864
+ const openedByPointerRef = React10.useRef(false);
2864
2865
  const triggerSelector = React10.useId();
2865
2866
  const delayOpen = typeof delay === "object" ? delay.open || 700 : delay;
2866
2867
  const delayClose = typeof delay === "object" ? delay.close || 300 : delay;
@@ -2904,6 +2905,7 @@ var Tooltip = React10.forwardRef(({
2904
2905
  }, [placement]);
2905
2906
  const handleMouseEnter = () => {
2906
2907
  if (disabled) return;
2908
+ openedByPointerRef.current = true;
2907
2909
  clearTimeout(timeoutRef.current);
2908
2910
  timeoutRef.current = setTimeout(() => {
2909
2911
  setIsOpen(true);
@@ -2917,13 +2919,16 @@ var Tooltip = React10.forwardRef(({
2917
2919
  };
2918
2920
  const closeNow = React10.useCallback(() => {
2919
2921
  clearTimeout(timeoutRef.current);
2922
+ openedByPointerRef.current = false;
2920
2923
  setIsOpen(false);
2921
2924
  }, []);
2922
2925
  const handleFocus = () => {
2923
2926
  if (disabled) return;
2927
+ openedByPointerRef.current = false;
2924
2928
  setIsOpen(true);
2925
2929
  };
2926
2930
  const handleBlur = () => {
2931
+ openedByPointerRef.current = false;
2927
2932
  setIsOpen(false);
2928
2933
  };
2929
2934
  React10.useEffect(() => {
@@ -2981,11 +2986,25 @@ var Tooltip = React10.forwardRef(({
2981
2986
  const handleDocumentKeyDown = (event) => {
2982
2987
  if (event.key === "Escape") closeNow();
2983
2988
  };
2989
+ const handleDocumentPointerMove = (event) => {
2990
+ if (!openedByPointerRef.current) return;
2991
+ const triggerEl = triggerRef.current;
2992
+ if (!triggerEl) {
2993
+ closeNow();
2994
+ return;
2995
+ }
2996
+ const rect = triggerEl.getBoundingClientRect();
2997
+ const tolerance = 2;
2998
+ const insideTrigger = event.clientX >= rect.left - tolerance && event.clientX <= rect.right + tolerance && event.clientY >= rect.top - tolerance && event.clientY <= rect.bottom + tolerance;
2999
+ if (!insideTrigger) closeNow();
3000
+ };
2984
3001
  document.addEventListener("pointerdown", closeNow, true);
2985
3002
  document.addEventListener("keydown", handleDocumentKeyDown);
3003
+ document.addEventListener("pointermove", handleDocumentPointerMove, true);
2986
3004
  return () => {
2987
3005
  document.removeEventListener("pointerdown", closeNow, true);
2988
3006
  document.removeEventListener("keydown", handleDocumentKeyDown);
3007
+ document.removeEventListener("pointermove", handleDocumentPointerMove, true);
2989
3008
  };
2990
3009
  }, [closeNow, isOpen]);
2991
3010
  const childProps = children.props;
@@ -5312,7 +5331,7 @@ var Modal = ({
5312
5331
  {
5313
5332
  ref: modalContentRef,
5314
5333
  className: cn(
5315
- "relative w-full rounded-2xl md:rounded-3xl bg-card text-card-foreground shadow-xl",
5334
+ "relative w-full rounded-2xl md:rounded-3xl border border-border/40 bg-card text-card-foreground shadow-xl",
5316
5335
  "transition-all duration-200 ease-out",
5317
5336
  maxWidthClass,
5318
5337
  fullWidth && "mx-0",