@undp/design-system-react
Version:
React based design system for UNDP
184 lines (183 loc) • 7.32 kB
JavaScript
import { i as e } from "./dist-DxuGUd9a.js";
import { n as t, t as n } from "./dist-jqIPNHDe.js";
import { n as r } from "./dist-CwCVtfik.js";
import { t as i } from "./dist-C8FJXTu6.js";
import * as a from "react";
import { jsx as o } from "react/jsx-runtime";
//#region node_modules/@radix-ui/react-dismissable-layer/dist/index.mjs
var s = Object.defineProperty, c = (e, t) => s(e, "name", {
value: t,
configurable: !0
}), l = "dismissableLayer.update", u = "dismissableLayer.pointerDownOutside", d = "dismissableLayer.focusOutside", f, p = a.createContext({
layers: /* @__PURE__ */ new Set(),
layersWithOutsidePointerEventsDisabled: /* @__PURE__ */ new Set(),
branches: /* @__PURE__ */ new Set(),
dismissableSurfaces: /* @__PURE__ */ new Set()
}), m = /* @__PURE__ */ a.forwardRef(/* @__PURE__ */ c(function(t, s) {
let { disableOutsidePointerEvents: u = !1, deferPointerDownOutside: d = !1, onEscapeKeyDown: m, onPointerDownOutside: h, onFocusOutside: g, onInteractOutside: _, onDismiss: x, ...S } = t, C = a.useContext(p), [w, T] = a.useState(null), E = w?.ownerDocument ?? globalThis?.document, [, D] = a.useState({}), O = e(s, T), k = Array.from(C.layers), [A] = [...C.layersWithOutsidePointerEventsDisabled].slice(-1), j = A ? k.indexOf(A) : -1, M = w ? k.indexOf(w) : -1, N = C.layersWithOutsidePointerEventsDisabled.size > 0, P = M >= j, F = a.useRef(!1), I = v((e) => {
h?.(e), _?.(e), e.defaultPrevented || x?.();
}, {
ownerDocument: E,
deferPointerDownOutside: d,
isDeferredPointerDownOutsideRef: F,
dismissableSurfaces: C.dismissableSurfaces,
shouldHandlePointerDownOutside: a.useCallback((e) => {
if (!(e instanceof Node)) return !1;
let t = [...C.branches].some((t) => t.contains(e));
return P && !t;
}, [C.branches, P])
}), L = y((e) => {
if (d && F.current) return;
let t = e.target;
[...C.branches].some((e) => e.contains(t)) || (g?.(e), _?.(e), e.defaultPrevented || x?.());
}, E), R = w ? M === k.length - 1 : !1, z = i((e) => {
e.key === "Escape" && (m?.(e), !e.defaultPrevented && x && (e.preventDefault(), x()));
});
return a.useEffect(() => {
if (R) return E.addEventListener("keydown", z, { capture: !0 }), () => E.removeEventListener("keydown", z, { capture: !0 });
}, [
E,
R,
z
]), a.useEffect(() => {
if (w) return u && (C.layersWithOutsidePointerEventsDisabled.size === 0 && (f = E.body.style.pointerEvents, E.body.style.pointerEvents = "none"), C.layersWithOutsidePointerEventsDisabled.add(w)), C.layers.add(w), b(), () => {
u && (C.layersWithOutsidePointerEventsDisabled.delete(w), C.layersWithOutsidePointerEventsDisabled.size === 0 && (E.body.style.pointerEvents = f));
};
}, [
w,
E,
u,
C
]), a.useEffect(() => () => {
w && (C.layers.delete(w), C.layersWithOutsidePointerEventsDisabled.delete(w), b());
}, [w, C]), a.useEffect(() => {
let e = /* @__PURE__ */ c(() => D({}), "handleUpdate");
return document.addEventListener(l, e), () => document.removeEventListener(l, e);
}, []), /* @__PURE__ */ o(n.div, {
...S,
ref: O,
style: {
pointerEvents: N ? P ? "auto" : "none" : void 0,
...t.style
},
onFocusCapture: r(t.onFocusCapture, L.onFocusCapture),
onBlurCapture: r(t.onBlurCapture, L.onBlurCapture),
onPointerDownCapture: r(t.onPointerDownCapture, I.onPointerDownCapture)
});
}, "DismissableLayer")), h = /* @__PURE__ */ a.forwardRef(/* @__PURE__ */ c(function(t, r) {
let i = a.useContext(p), s = a.useRef(null), c = e(r, s);
return a.useEffect(() => {
let e = s.current;
if (e) return i.branches.add(e), () => {
i.branches.delete(e);
};
}, [i.branches]), /* @__PURE__ */ o(n.div, {
...t,
ref: c
});
}, "DismissableLayerBranch"));
function g() {
let e = a.useContext(p), [t, n] = a.useState(null);
return a.useEffect(() => {
if (t) return e.dismissableSurfaces.add(t), () => {
e.dismissableSurfaces.delete(t);
};
}, [t, e.dismissableSurfaces]), n;
}
c(g, "useDismissableLayerSurface");
var _ = /* @__PURE__ */ c(() => !0, "IS_TRUE");
function v(e, t) {
let { ownerDocument: n = globalThis?.document, deferPointerDownOutside: r = !1, isDeferredPointerDownOutsideRef: o, dismissableSurfaces: s, shouldHandlePointerDownOutside: l = _ } = t, d = i(e), f = a.useRef(!1), p = a.useRef(!1), m = a.useRef(/* @__PURE__ */ new Map()), h = a.useRef(() => {});
return a.useEffect(() => {
function e() {
p.current = !1, o.current = !1, m.current.clear();
}
c(e, "resetOutsideInteraction");
function t() {
return Array.from(m.current.values()).some(Boolean);
}
c(t, "isOutsideInteractionIntercepted");
function i(e) {
if (!p.current) return;
let t = e.target;
t instanceof Node && [...s].some((e) => e.contains(t)) || m.current.set(e.type, !0), e.type === "click" && window.setTimeout(() => {
p.current && h.current();
}, 0);
}
c(i, "handleInteractionCapture");
function a(e) {
p.current && m.current.set(e.type, !1);
}
c(a, "handleInteractionBubble");
let g = /* @__PURE__ */ c((i) => {
if (i.target && !f.current) {
let a = function() {
n.removeEventListener("click", h.current);
let r = t();
e(), r || x(u, d, s, { discrete: !0 });
};
if (c(a, "handleAndDispatchPointerDownOutsideEvent"), !l(i.target)) {
n.removeEventListener("click", h.current), e(), f.current = !1;
return;
}
let s = { originalEvent: i };
p.current = !0, o.current = r && i.button === 0, m.current.clear(), !r || i.button !== 0 ? a() : (n.removeEventListener("click", h.current), h.current = a, n.addEventListener("click", h.current, { once: !0 }));
} else n.removeEventListener("click", h.current), e();
f.current = !1;
}, "handlePointerDown"), _ = [
"pointerup",
"mousedown",
"mouseup",
"touchstart",
"touchend",
"click"
];
for (let e of _) n.addEventListener(e, i, !0), n.addEventListener(e, a);
let v = window.setTimeout(() => {
n.addEventListener("pointerdown", g);
}, 0);
return () => {
window.clearTimeout(v), n.removeEventListener("pointerdown", g), n.removeEventListener("click", h.current);
for (let e of _) n.removeEventListener(e, i, !0), n.removeEventListener(e, a);
};
}, [
n,
d,
r,
o,
s,
l
]), { onPointerDownCapture: /* @__PURE__ */ c(() => f.current = !0, "onPointerDownCapture") };
}
c(v, "usePointerDownOutside");
function y(e, t = globalThis?.document) {
let n = i(e), r = a.useRef(!1);
return a.useEffect(() => {
let e = /* @__PURE__ */ c((e) => {
e.target && !r.current && x(d, n, { originalEvent: e }, { discrete: !1 });
}, "handleFocus");
return t.addEventListener("focusin", e), () => t.removeEventListener("focusin", e);
}, [t, n]), {
onFocusCapture: /* @__PURE__ */ c(() => r.current = !0, "onFocusCapture"),
onBlurCapture: /* @__PURE__ */ c(() => r.current = !1, "onBlurCapture")
};
}
c(y, "useFocusOutside");
function b() {
let e = new CustomEvent(l);
document.dispatchEvent(e);
}
c(b, "dispatchUpdate");
function x(e, n, r, { discrete: i }) {
let a = r.originalEvent.target, o = new CustomEvent(e, {
bubbles: !1,
cancelable: !0,
detail: r
});
n && a.addEventListener(e, n, { once: !0 }), i ? t(a, o) : a.dispatchEvent(o);
}
c(x, "handleAndDispatchCustomEvent");
var S = m, C = h;
//#endregion
export { g as i, m as n, S as r, C as t };
//# sourceMappingURL=dist-CMH_aW5P.js.map