@ariakit/react-core
Version:
Ariakit React core
75 lines (72 loc) • 1.61 kB
JavaScript
"use client";
import {
MenubarScopedContextProvider,
useMenubarProviderContext
} from "./5FUUHUOH.js";
import {
useMenubarStore
} from "./AZFUHMV2.js";
import {
useComposite
} from "./NLF4OZJK.js";
import {
useStoreState
} from "./SOQQIDO4.js";
import {
createElement,
createHook,
forwardRef
} from "./L4OUMOCQ.js";
import {
useWrapElement
} from "./W2TDKEPX.js";
// src/menubar/menubar.tsx
import { jsx } from "react/jsx-runtime";
var TagName = "div";
var useMenubar = createHook(
function useMenubar2({
store: storeProp,
composite = true,
orientation: orientationProp,
virtualFocus,
focusLoop,
rtl,
...props
}) {
const context = useMenubarProviderContext();
storeProp = storeProp || context;
const store = useMenubarStore({
store: storeProp,
orientation: orientationProp,
virtualFocus,
focusLoop,
rtl
});
const orientation = useStoreState(
store,
(state) => !composite || state.orientation === "both" ? void 0 : state.orientation
);
props = useWrapElement(
props,
(element) => /* @__PURE__ */ jsx(MenubarScopedContextProvider, { value: store, children: element }),
[store]
);
if (composite) {
props = {
role: "menubar",
"aria-orientation": orientation,
...props
};
}
props = useComposite({ store, composite, ...props });
return props;
}
);
var Menubar = forwardRef(function Menubar2(props) {
const htmlProps = useMenubar(props);
return createElement(TagName, htmlProps);
});
export {
useMenubar,
Menubar
};