UNPKG

@ariakit/react-core

Version:

Ariakit React core

81 lines (78 loc) 1.8 kB
"use client"; import { MenubarScopedContextProvider, useMenubarProviderContext } from "./JUCYQ5OS.js"; import { useMenubarStore } from "./NXIITQH7.js"; import { useComposite } from "./NSTBQJLB.js"; import { createElement, createHook, forwardRef } from "./VOQWLFSQ.js"; import { useWrapElement } from "./5GGHRIN3.js"; import { __objRest, __spreadValues } from "./3YLGPPWQ.js"; // src/menubar/menubar.tsx import { jsx } from "react/jsx-runtime"; var TagName = "div"; var useMenubar = createHook( function useMenubar2(_a) { var _b = _a, { store: storeProp, composite = true, orientation: orientationProp, virtualFocus, focusLoop, rtl } = _b, props = __objRest(_b, [ "store", "composite", "orientation", "virtualFocus", "focusLoop", "rtl" ]); const context = useMenubarProviderContext(); storeProp = storeProp || context; const store = useMenubarStore({ store: storeProp, orientation: orientationProp, virtualFocus, focusLoop, rtl }); const orientation = store.useState( (state) => !composite || state.orientation === "both" ? void 0 : state.orientation ); props = useWrapElement( props, (element) => /* @__PURE__ */ jsx(MenubarScopedContextProvider, { value: store, children: element }), [store] ); if (composite) { props = __spreadValues({ role: "menubar", "aria-orientation": orientation }, props); } props = useComposite(__spreadValues({ store, composite }, props)); return props; } ); var Menubar = forwardRef(function Menubar2(props) { const htmlProps = useMenubar(props); return createElement(TagName, htmlProps); }); export { useMenubar, Menubar };