UNPKG

@cerberus-design/react

Version:

The Cerberus Design React component library.

86 lines (84 loc) 2.06 kB
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