@cerberus-design/react
Version:
The Cerberus Design React component library.
86 lines (84 loc) • 2.06 kB
JavaScript
import {
useNavMenuContext
} from "./chunk-FXWN3SPS.js";
import {
Show
} from "./chunk-NUXMADXV.js";
// src/components/deprecated/NavMenuList.tsx
import { useMemo } from "react";
import { cx } from "styled-system/css";
import { vstack } from "styled-system/patterns";
import { jsx } from "react/jsx-runtime";
function getPosition(position) {
const defaultPositions = {
left: "auto",
right: "auto",
top: "auto",
bottom: "auto"
};
switch (position) {
case "right":
return { ...defaultPositions, top: "0%", left: "105%" };
case "left":
return { ...defaultPositions, top: "0%", right: "105%" };
case "bottom":
return { ...defaultPositions, top: "110%" };
case "top":
return { ...defaultPositions, bottom: "110%" };
default:
return defaultPositions;
}
}
var navListStyles = vstack({
alignItems: "flex-start",
bgColor: "page.surface.100",
boxShadow: "lg",
gap: "2",
opacity: "0",
p: "4",
position: "absolute",
rounded: "md",
zIndex: "dropdown",
_motionSafe: {
animationName: "zoomIn",
animationDelay: "100ms",
animationDuration: "150ms",
animationFillMode: "both",
animationTimingFunction: "ease-in-out"
},
_positionBottom: {
transformOrigin: "top left"
},
_positionTop: {
transformOrigin: "bottom left"
},
_positionLeft: {
transformOrigin: "top right"
},
_positionRight: {
transformOrigin: "top left"
}
});
function NavMenuList(props) {
const { position, ...nativeProps } = props;
const { menuRef, expanded } = useNavMenuContext();
const locationStyles = useMemo(
() => getPosition(position ?? "bottom"),
[position]
);
return /* @__PURE__ */ jsx(Show, { when: expanded, children: /* @__PURE__ */ jsx(
"ul",
{
...nativeProps,
"data-position": position ?? "bottom",
className: cx(nativeProps.className, navListStyles),
ref: menuRef,
style: locationStyles
}
) });
}
export {
getPosition,
NavMenuList
};
//# sourceMappingURL=chunk-KIKGNZ2H.js.map