@ariakit/react-core
Version:
Ariakit React core
72 lines (70 loc) • 1.94 kB
JavaScript
"use client";
import {
useSelectProviderContext
} from "../__chunks/LM7KIZUU.js";
import "../__chunks/Y67KZUMI.js";
import "../__chunks/T2AZQXQU.js";
import "../__chunks/ABN76PSX.js";
import "../__chunks/APTFW6PT.js";
import "../__chunks/5CPL3B7G.js";
import {
createElement,
createHook,
forwardRef,
memo
} from "../__chunks/VOQWLFSQ.js";
import {
useEvent,
useId,
useMergeRefs
} from "../__chunks/5GGHRIN3.js";
import "../__chunks/SK3NAZA3.js";
import {
__objRest,
__spreadProps,
__spreadValues
} from "../__chunks/3YLGPPWQ.js";
// src/select/select-label.tsx
import { invariant, removeUndefinedValues } from "@ariakit/core/utils/misc";
var TagName = "div";
var useSelectLabel = createHook(
function useSelectLabel2(_a) {
var _b = _a, { store } = _b, props = __objRest(_b, ["store"]);
const context = useSelectProviderContext();
store = store || context;
invariant(
store,
process.env.NODE_ENV !== "production" && "SelectLabel must receive a `store` prop or be wrapped in a SelectProvider component."
);
const id = useId(props.id);
const onClickProp = props.onClick;
const onClick = useEvent((event) => {
onClickProp == null ? void 0 : onClickProp(event);
if (event.defaultPrevented) return;
queueMicrotask(() => {
const select = store == null ? void 0 : store.getState().selectElement;
select == null ? void 0 : select.focus();
});
});
props = __spreadProps(__spreadValues({
id
}, props), {
ref: useMergeRefs(store.setLabelElement, props.ref),
onClick,
style: __spreadValues({
cursor: "default"
}, props.style)
});
return removeUndefinedValues(props);
}
);
var SelectLabel = memo(
forwardRef(function SelectLabel2(props) {
const htmlProps = useSelectLabel(props);
return createElement(TagName, htmlProps);
})
);
export {
SelectLabel,
useSelectLabel
};