@intility/bifrost-react
Version:
React library for Intility's design system, Bifrost.
75 lines (74 loc) • 1.51 kB
JavaScript
"use client";
import { c as _c } from "react-compiler-runtime";
import { forwardRef, useLayoutEffect, useRef } from "react";
import setRef from "../../utils/setRef.js";
import { jsx as _jsx } from "react/jsx-runtime";
const Popover = /*#__PURE__*/forwardRef((t0, ref) => {
const $ = _c(11);
let open;
let props;
if ($[0] !== t0) {
({
open,
...props
} = t0);
$[0] = t0;
$[1] = open;
$[2] = props;
} else {
open = $[1];
props = $[2];
}
const popoverRef = useRef(null);
let t1;
let t2;
if ($[3] !== open) {
t1 = () => {
if (!popoverRef.current) {
return;
}
const stackElement = popoverRef.current;
if (!open && stackElement.matches(":popover-open")) {
stackElement.hidePopover?.();
}
if (open && !stackElement.matches(":popover-open")) {
stackElement.showPopover?.();
}
};
t2 = [open];
$[3] = open;
$[4] = t1;
$[5] = t2;
} else {
t1 = $[4];
t2 = $[5];
}
useLayoutEffect(t1, t2);
let t3;
if ($[6] !== ref) {
t3 = r => {
setRef(popoverRef, r);
setRef(ref, r);
};
$[6] = ref;
$[7] = t3;
} else {
t3 = $[7];
}
let t4;
if ($[8] !== props || $[9] !== t3) {
t4 = /*#__PURE__*/_jsx("span", {
...props,
ref: t3,
popover: "manual"
});
$[8] = props;
$[9] = t3;
$[10] = t4;
} else {
t4 = $[10];
}
return t4;
});
Popover.displayName = "Popover";
export default Popover;