UNPKG

@undp/design-system-react

Version:

React based design system for UNDP

184 lines (183 loc) 7.32 kB
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