@ariakit/react-core
Version:
Ariakit React core
71 lines (68 loc) • 1.55 kB
JavaScript
"use client";
import {
MenubarScopedContextProvider,
useMenubarProviderContext
} from "./TGNQMQ45.js";
import {
useMenubarStore
} from "./DYQBER5T.js";
import {
useComposite
} from "./E7PWFDGB.js";
import {
createElement,
createHook,
forwardRef
} from "./ILRXHV7V.js";
import {
useWrapElement
} from "./K2XTQB3X.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 = 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 = {
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
};