UNPKG

@undp/design-system-react

Version:

React based design system for UNDP

151 lines (150 loc) 6.4 kB
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