@ariakit/react-core
Version:
Ariakit React core
79 lines (77 loc) • 1.86 kB
JavaScript
"use client";
import {
useToolbarStore
} from "../__chunks/WVRNRYET.js";
import {
ToolbarScopedContextProvider,
useToolbarProviderContext
} from "../__chunks/GBYFLPF5.js";
import "../__chunks/W6MTWV42.js";
import {
useComposite
} from "../__chunks/NLF4OZJK.js";
import "../__chunks/7NJRHOSP.js";
import "../__chunks/55ENK5IP.js";
import "../__chunks/NO3UEYQ2.js";
import "../__chunks/3F6D4KUU.js";
import "../__chunks/SWN3JYXT.js";
import {
useStoreState
} from "../__chunks/SOQQIDO4.js";
import "../__chunks/CTVD4XJH.js";
import {
createElement,
createHook,
forwardRef
} from "../__chunks/L4OUMOCQ.js";
import {
useWrapElement
} from "../__chunks/W2TDKEPX.js";
import "../__chunks/AZVQSWGA.js";
// src/toolbar/toolbar.tsx
import { jsx } from "react/jsx-runtime";
var TagName = "div";
var useToolbar = createHook(
function useToolbar2({
store: storeProp,
orientation: orientationProp,
virtualFocus,
focusLoop,
rtl,
...props
}) {
const context = useToolbarProviderContext();
storeProp = storeProp || context;
const store = useToolbarStore({
store: storeProp,
orientation: orientationProp,
virtualFocus,
focusLoop,
rtl
});
const orientation = useStoreState(
store,
(state) => state.orientation === "both" ? void 0 : state.orientation
);
props = useWrapElement(
props,
(element) => /* @__PURE__ */ jsx(ToolbarScopedContextProvider, { value: store, children: element }),
[store]
);
props = {
role: "toolbar",
"aria-orientation": orientation,
...props
};
props = useComposite({ store, ...props });
return props;
}
);
var Toolbar = forwardRef(function Toolbar2(props) {
const htmlProps = useToolbar(props);
return createElement(TagName, htmlProps);
});
export {
Toolbar,
useToolbar
};