Socket
Socket
Sign inDemoInstall

@zag-js/interact-outside

Package Overview
Dependencies
Maintainers
1
Versions
805
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@zag-js/interact-outside - npm Package Compare versions

Comparing version 0.72.0 to 0.73.0

53

dist/index.js

@@ -8,2 +8,4 @@ 'use strict';

// src/index.ts
// src/frame-utils.ts
function getWindowFrames(win) {

@@ -17,17 +19,2 @@ const frames = {

},
queueBeforeEvent(event, listener) {
const cleanup = /* @__PURE__ */ new Set();
frames.each((frame) => {
try {
cleanup.add(domEvent.queueBeforeEvent(frame.document, event, listener));
} catch {
}
});
return () => {
try {
cleanup.forEach((fn) => fn());
} catch {
}
};
},
addEventListener(event, listener, options) {

@@ -58,2 +45,25 @@ frames.each((frame) => {

}
function getParentWindow(win) {
const parent = win.frameElement != null ? win.parent : null;
return {
addEventListener: (event, listener, options) => {
try {
parent?.addEventListener(event, listener, options);
} catch {
}
return () => {
try {
parent?.removeEventListener(event, listener, options);
} catch {
}
};
},
removeEventListener: (event, listener, options) => {
try {
parent?.removeEventListener(event, listener, options);
} catch {
}
}
};
}

@@ -76,4 +86,3 @@ // src/index.ts

}
function isEventWithinScrollbar(event) {
const target = domQuery.getEventTarget(event);
function isEventWithinScrollbar(event, target) {
if (!target || !isPointerEvent(event)) return false;

@@ -92,2 +101,3 @@ const isScrollableY = target.scrollHeight > target.clientHeight;

const frames = getWindowFrames(win);
const parentWin = getParentWindow(win);
function isEventOutside(event) {

@@ -98,3 +108,5 @@ const target = domQuery.getEventTarget(event);

if (isEventPointWithin(node, event)) return false;
if (isEventWithinScrollbar(event)) return false;
if (isEventWithinScrollbar(event, target)) return false;
const scrollParent = domQuery.getNearestOverflowAncestor(node);
if (isEventWithinScrollbar(event, scrollParent)) return false;
return !exclude?.(target);

@@ -127,2 +139,3 @@ }

pointerdownCleanups.add(domEvent.addDomEvent(doc, "click", handler, { once: true }));
pointerdownCleanups.add(parentWin.addEventListener("click", handler, { once: true }));
pointerdownCleanups.add(frames.addEventListener("click", handler, { once: true }));

@@ -135,4 +148,5 @@ } else {

const timer = setTimeout(() => {
cleanups.add(domEvent.addDomEvent(doc, "pointerdown", onPointerDown, true));
cleanups.add(parentWin.addEventListener("pointerdown", onPointerDown, true));
cleanups.add(frames.addEventListener("pointerdown", onPointerDown, true));
cleanups.add(domEvent.addDomEvent(doc, "pointerdown", onPointerDown, true));
}, 0);

@@ -159,2 +173,3 @@ function onFocusin(event) {

cleanups.add(domEvent.addDomEvent(doc, "focusin", onFocusin, true));
cleanups.add(parentWin.addEventListener("focusin", onFocusin, true));
cleanups.add(frames.addEventListener("focusin", onFocusin, true));

@@ -161,0 +176,0 @@ return () => {

{
"name": "@zag-js/interact-outside",
"version": "0.72.0",
"version": "0.73.0",
"description": "Track interations or focus outside an element",

@@ -19,5 +19,5 @@ "keywords": [

"dependencies": {
"@zag-js/dom-query": "0.72.0",
"@zag-js/dom-event": "0.72.0",
"@zag-js/utils": "0.72.0"
"@zag-js/dom-query": "0.73.0",
"@zag-js/dom-event": "0.73.0",
"@zag-js/utils": "0.73.0"
},

@@ -24,0 +24,0 @@ "devDependencies": {

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc