@undp/design-system-react
Version:
React based design system for UNDP
151 lines (150 loc) • 6.4 kB
JavaScript
import { t as e } from "./utils-ca9as9Ye.js";
import { i as t } from "./dist-DxuGUd9a.js";
import { t as n } from "./dist-jqIPNHDe.js";
import { n as r } from "./dist-BKfyhBSH.js";
import { n as i, t as a } from "./dist-CwCVtfik.js";
import { t as o } from "./dist-CnnnGPaT.js";
import { n as s } from "./dist-CMH_aW5P.js";
import { i as c, n as l, r as u, t as d } from "./dist-D8TIRAGv.js";
import * as f from "react";
import p from "react";
import { jsx as m } from "react/jsx-runtime";
//#region node_modules/@radix-ui/react-hover-card/dist/index.mjs
var h = Object.defineProperty, g = (e, t) => h(e, "name", {
value: t,
configurable: !0
}), _, v = "HoverCard", [y, b] = r(v, [c]), x = c(), [S, C] = y(v), w = /* @__PURE__ */ g((e) => {
let { __scopeHoverCard: t, children: n, open: r, defaultOpen: i, onOpenChange: o, openDelay: s = 700, closeDelay: c = 300 } = e, l = x(t), d = f.useRef(0), p = f.useRef(0), h = f.useRef(!1), g = f.useRef(!1), [_, y] = a({
prop: r,
defaultProp: i ?? !1,
onChange: o,
caller: v
}), b = f.useCallback(() => {
clearTimeout(p.current), d.current = window.setTimeout(() => y(!0), s);
}, [s, y]), C = f.useCallback(() => {
clearTimeout(d.current), !h.current && !g.current && (p.current = window.setTimeout(() => y(!1), c));
}, [c, y]), w = f.useCallback(() => y(!1), [y]);
return f.useEffect(() => () => {
clearTimeout(d.current), clearTimeout(p.current);
}, []), /* @__PURE__ */ m(S, {
scope: t,
open: _,
onOpenChange: y,
onOpen: b,
onClose: C,
onDismiss: w,
hasSelectionRef: h,
isPointerDownOnContentRef: g,
children: /* @__PURE__ */ m(u, {
...l,
children: n
})
});
}, "HoverCard"), T = "HoverCardTrigger", E = /* @__PURE__ */ f.forwardRef(/* @__PURE__ */ g(function(e, t) {
let { __scopeHoverCard: r, ...a } = e, o = C(T, r);
return /* @__PURE__ */ m(d, {
asChild: !0,
...x(r),
children: /* @__PURE__ */ m(n.a, {
"data-state": o.open ? "open" : "closed",
...a,
ref: t,
onPointerEnter: i(e.onPointerEnter, M(o.onOpen)),
onPointerLeave: i(e.onPointerLeave, M(o.onClose)),
onFocus: i(e.onFocus, o.onOpen),
onBlur: i(e.onBlur, o.onClose),
onTouchStart: i(e.onTouchStart, (e) => e.preventDefault())
})
});
}, "HoverCardTrigger")), [D, O] = y("HoverCardPortal", { forceMount: void 0 }), k = "HoverCardContent", A = /* @__PURE__ */ f.forwardRef(/* @__PURE__ */ g(function(e, t) {
let n = O(k, e.__scopeHoverCard), { forceMount: r = n.forceMount, ...a } = e, s = C(k, e.__scopeHoverCard);
return /* @__PURE__ */ m(o, {
present: r || s.open,
children: /* @__PURE__ */ m(j, {
"data-state": s.open ? "open" : "closed",
...a,
onPointerEnter: i(e.onPointerEnter, M(s.onOpen)),
onPointerLeave: i(e.onPointerLeave, M(s.onClose)),
ref: t
})
});
}, "HoverCardContent")), j = /* @__PURE__ */ f.forwardRef(/* @__PURE__ */ g(function(e, n) {
let { __scopeHoverCard: r, onEscapeKeyDown: a, onPointerDownOutside: o, onFocusOutside: c, onInteractOutside: u, ...d } = e, p = C(k, r), h = x(r), v = f.useRef(null), y = t(n, v), [b, S] = f.useState(!1);
return f.useEffect(() => {
if (b) {
let e = document.body;
return _ = e.style.userSelect || e.style.webkitUserSelect, e.style.userSelect = "none", e.style.webkitUserSelect = "none", () => {
e.style.userSelect = _, e.style.webkitUserSelect = _;
};
}
}, [b]), f.useEffect(() => {
if (v.current) {
let e = /* @__PURE__ */ g(() => {
S(!1), p.isPointerDownOnContentRef.current = !1, setTimeout(() => {
document.getSelection()?.toString() !== "" && (p.hasSelectionRef.current = !0);
});
}, "handlePointerUp");
return document.addEventListener("pointerup", e), () => {
document.removeEventListener("pointerup", e), p.hasSelectionRef.current = !1, p.isPointerDownOnContentRef.current = !1;
};
}
}, [p.isPointerDownOnContentRef, p.hasSelectionRef]), f.useEffect(() => {
v.current && N(v.current).forEach((e) => e.setAttribute("tabindex", "-1"));
}), /* @__PURE__ */ m(s, {
asChild: !0,
disableOutsidePointerEvents: !1,
onInteractOutside: u,
onEscapeKeyDown: a,
onPointerDownOutside: o,
onFocusOutside: i(c, (e) => {
e.preventDefault();
}),
onDismiss: p.onDismiss,
children: /* @__PURE__ */ m(l, {
...h,
...d,
onPointerDown: i(d.onPointerDown, (e) => {
e.currentTarget.contains(e.target) && S(!0), p.hasSelectionRef.current = !1, p.isPointerDownOnContentRef.current = !0;
}),
ref: y,
style: {
...d.style,
userSelect: b ? "text" : void 0,
WebkitUserSelect: b ? "text" : void 0,
"--radix-hover-card-content-transform-origin": "var(--radix-popper-transform-origin)",
"--radix-hover-card-content-available-width": "var(--radix-popper-available-width)",
"--radix-hover-card-content-available-height": "var(--radix-popper-available-height)",
"--radix-hover-card-trigger-width": "var(--radix-popper-anchor-width)",
"--radix-hover-card-trigger-height": "var(--radix-popper-anchor-height)"
}
})
});
}, "HoverCardContentImpl"));
function M(e) {
return (t) => t.pointerType === "touch" ? void 0 : e();
}
g(M, "excludeTouch");
function N(e) {
let t = [], n = document.createTreeWalker(e, NodeFilter.SHOW_ELEMENT, { acceptNode: /* @__PURE__ */ g((e) => e.tabIndex >= 0 ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP, "acceptNode") });
for (; n.nextNode();) t.push(n.currentNode);
return t;
}
g(N, "getTabbableNodes");
var P = w, F = E, I = A, L = P, R = p.forwardRef(({ className: t, children: n, ...r }, i) => /* @__PURE__ */ m(F, {
...r,
ref: i,
className: e("cursor-pointer text-content-primary", t),
children: n
}));
R.displayName = "HoverCardTrigger";
var z = p.forwardRef(({ className: t, align: n = "center", sideOffset: r = 4, ...i }, a) => /* @__PURE__ */ m(I, {
...i,
ref: a,
align: n,
sideOffset: r,
className: e("data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-64 bg-surface/90 p-2 text-content-primary text-sm outline-hidden backdrop-blur-frosted data-[state=closed]:animate-out data-[state=open]:animate-in", t)
}));
z.displayName = I.displayName;
//#endregion
export { z as n, R as r, L as t };
//# sourceMappingURL=hover-card-_Bf2K-mg.js.map