sit-onyx 1.4.0-dev-20251111093451 → 1.4.0-dev-20251111095201
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.esm-bundler.js +32 -2
- package/dist/index.esm-bundler.js.map +1 -1
- package/dist/index.js +890 -870
- package/package.json +4 -4
|
@@ -878,12 +878,42 @@ const useOutsideClick = ({
|
|
|
878
878
|
};
|
|
879
879
|
useGlobalEventListener({ type: "mousedown", listener: clickListener, disabled });
|
|
880
880
|
if (checkOnTab) {
|
|
881
|
-
const keydownListener =
|
|
881
|
+
const keydownListener = (event) => {
|
|
882
882
|
if (event.key !== "Tab") return;
|
|
883
|
-
await new Promise((resolve) => setTimeout(resolve));
|
|
884
883
|
if (isOutsideClick(document.activeElement)) {
|
|
885
884
|
onOutsideClick(event);
|
|
886
885
|
}
|
|
886
|
+
const controller = new AbortController();
|
|
887
|
+
const { signal } = controller;
|
|
888
|
+
const onFocusIn = (event2) => {
|
|
889
|
+
const target = event2.target;
|
|
890
|
+
if (isOutsideClick(target)) {
|
|
891
|
+
onOutsideClick(event2);
|
|
892
|
+
}
|
|
893
|
+
controller.abort();
|
|
894
|
+
};
|
|
895
|
+
const onWindowBlur = (event2) => {
|
|
896
|
+
if (isOutsideClick(document.activeElement)) {
|
|
897
|
+
onOutsideClick(event2);
|
|
898
|
+
}
|
|
899
|
+
controller.abort();
|
|
900
|
+
};
|
|
901
|
+
const onKeyUp = (e) => {
|
|
902
|
+
if (e.key === "Tab") controller.abort();
|
|
903
|
+
};
|
|
904
|
+
document.addEventListener("focusin", onFocusIn, {
|
|
905
|
+
once: true,
|
|
906
|
+
capture: true,
|
|
907
|
+
// Capture phase to handle before component focus handlers
|
|
908
|
+
signal
|
|
909
|
+
});
|
|
910
|
+
window.addEventListener("blur", onWindowBlur, { once: true, signal });
|
|
911
|
+
document.addEventListener("keyup", onKeyUp, {
|
|
912
|
+
once: true,
|
|
913
|
+
capture: true,
|
|
914
|
+
// Capture phase to prevent conflicts with prevented keydown
|
|
915
|
+
signal
|
|
916
|
+
});
|
|
887
917
|
};
|
|
888
918
|
useGlobalEventListener({ type: "keydown", listener: keydownListener, disabled });
|
|
889
919
|
}
|