@ariakit/react-core
Version:
Ariakit React core
81 lines (78 loc) • 1.8 kB
JavaScript
"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
};