UNPKG

@ariakit/react-core

Version:

Ariakit React core

67 lines (65 loc) 1.7 kB
"use client"; import { TabScopedContextProvider, useTabProviderContext } from "../__chunks/T3X6WUOS.js"; import { useComposite } from "../__chunks/E7PWFDGB.js"; import "../__chunks/5VQZOHHZ.js"; import "../__chunks/72IB6YNO.js"; import "../__chunks/US3TW2XI.js"; import "../__chunks/SWN3JYXT.js"; import "../__chunks/45YOMIF3.js"; import { createElement, createHook, forwardRef } from "../__chunks/ILRXHV7V.js"; import { useWrapElement } from "../__chunks/K2XTQB3X.js"; import "../__chunks/YXGXYGQX.js"; // src/tab/tab-list.tsx import { invariant } from "@ariakit/core/utils/misc"; import { jsx } from "react/jsx-runtime"; var TagName = "div"; var useTabList = createHook( function useTabList2({ store, ...props }) { const context = useTabProviderContext(); store = store || context; invariant( store, process.env.NODE_ENV !== "production" && "TabList must receive a `store` prop or be wrapped in a TabProvider component." ); const orientation = store.useState( (state) => state.orientation === "both" ? void 0 : state.orientation ); props = useWrapElement( props, (element) => /* @__PURE__ */ jsx(TabScopedContextProvider, { value: store, children: element }), [store] ); if (store.composite) { props = { focusable: false, ...props }; } props = { role: "tablist", "aria-orientation": orientation, ...props }; props = useComposite({ store, ...props }); return props; } ); var TabList = forwardRef(function TabList2(props) { const htmlProps = useTabList(props); return createElement(TagName, htmlProps); }); export { TabList, useTabList };