UNPKG

@ariakit/react-core

Version:

Ariakit React core

60 lines (57 loc) 1.55 kB
"use client"; import { CompositeRowContext, useCompositeContext } from "./72IB6YNO.js"; import { createElement, createHook, forwardRef } from "./ILRXHV7V.js"; import { useId, useWrapElement } from "./K2XTQB3X.js"; // src/composite/composite-row.tsx import { invariant, removeUndefinedValues } from "@ariakit/core/utils/misc"; import { useMemo } from "react"; import { jsx } from "react/jsx-runtime"; var TagName = "div"; var useCompositeRow = createHook( function useCompositeRow2({ store, "aria-setsize": ariaSetSize, "aria-posinset": ariaPosInSet, ...props }) { const context = useCompositeContext(); store = store || context; invariant( store, process.env.NODE_ENV !== "production" && "CompositeRow must be wrapped in a Composite component." ); const id = useId(props.id); const baseElement = store.useState( (state) => state.baseElement || void 0 ); const providerValue = useMemo( () => ({ id, baseElement, ariaSetSize, ariaPosInSet }), [id, baseElement, ariaSetSize, ariaPosInSet] ); props = useWrapElement( props, (element) => /* @__PURE__ */ jsx(CompositeRowContext.Provider, { value: providerValue, children: element }), [providerValue] ); props = { id, ...props }; return removeUndefinedValues(props); } ); var CompositeRow = forwardRef(function CompositeRow2(props) { const htmlProps = useCompositeRow(props); return createElement(TagName, htmlProps); }); export { useCompositeRow, CompositeRow };