@melt-ui/svelte
Advanced tools
Comparing version 0.26.0 to 0.26.1
@@ -11,3 +11,3 @@ import { addEventListener, builder, createElHelpers, effect, executeCallbacks, generateId, makeHullFromElements, noop, omit, pointInPolygon, styleToString, } from '../../internal/helpers'; | ||
open: false, | ||
closeOnPointerDown: false, | ||
closeOnPointerDown: true, | ||
openDelay: 1000, | ||
@@ -17,3 +17,2 @@ closeDelay: 0, | ||
const { name } = createElHelpers('tooltip'); | ||
// TODO: Add grace area to prevent tooltip from closing when moving from trigger to tooltip | ||
export function createTooltip(props) { | ||
@@ -36,4 +35,2 @@ const withDefaults = { ...defaults, ...props }; | ||
} | ||
if (clickedTrigger) | ||
return; | ||
openTimeout = window.setTimeout(() => { | ||
@@ -43,3 +40,3 @@ open.set(true); | ||
}; | ||
const closeTooltip = () => { | ||
const closeTooltip = (isBlur) => { | ||
const $options = get(options); | ||
@@ -52,3 +49,4 @@ if (closeTimeout) { | ||
open.set(false); | ||
clickedTrigger = false; | ||
if (isBlur) | ||
clickedTrigger = false; | ||
}, $options.closeDelay); | ||
@@ -66,5 +64,9 @@ }; | ||
const $options = get(options); | ||
if ($options.closeOnPointerDown) { | ||
open.set(false); | ||
clickedTrigger = true; | ||
if (!$options.closeOnPointerDown) | ||
return; | ||
open.set(false); | ||
clickedTrigger = true; | ||
if (openTimeout) { | ||
window.clearTimeout(openTimeout); | ||
openTimeout = null; | ||
} | ||
@@ -76,4 +78,7 @@ }), addEventListener(node, 'mouseover', openTooltip), addEventListener(node, 'mouseleave', () => { | ||
} | ||
clickedTrigger = false; | ||
}), addEventListener(node, 'focus', openTooltip), addEventListener(node, 'blur', closeTooltip), addEventListener(node, 'keydown', (e) => { | ||
}), addEventListener(node, 'focus', () => { | ||
if (clickedTrigger) | ||
return; | ||
openTooltip(); | ||
}), addEventListener(node, 'blur', () => closeTooltip(true)), addEventListener(node, 'keydown', (e) => { | ||
if (e.key === 'Escape') { | ||
@@ -88,3 +93,2 @@ if (openTimeout) { | ||
} | ||
clickedTrigger = false; | ||
open.set(false); | ||
@@ -154,3 +158,3 @@ } | ||
const triggerEl = document.getElementById(ids.trigger); | ||
if (!triggerEl || document.activeElement === triggerEl) | ||
if (!triggerEl || (document.activeElement === triggerEl && !clickedTrigger)) | ||
return; | ||
@@ -157,0 +161,0 @@ const contentEl = document.getElementById(ids.content); |
{ | ||
"name": "@melt-ui/svelte", | ||
"version": "0.26.0", | ||
"version": "0.26.1", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "exports": { |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
419096
10293