@ariakit/react-core
Version:
Ariakit React core
97 lines (95 loc) • 2.78 kB
JavaScript
"use client";
import {
useDialogDisclosure
} from "../__chunks/ZTXFEM5L.js";
import "../__chunks/NMGNQVTG.js";
import {
useComboboxProviderContext
} from "../__chunks/OLVWQA7U.js";
import "../__chunks/Y67KZUMI.js";
import "../__chunks/T2AZQXQU.js";
import "../__chunks/ABN76PSX.js";
import "../__chunks/APTFW6PT.js";
import "../__chunks/XCKGTAUF.js";
import "../__chunks/2W3RN7C5.js";
import "../__chunks/OE2EFRVA.js";
import "../__chunks/SWN3JYXT.js";
import "../__chunks/5CPL3B7G.js";
import {
createElement,
createHook,
forwardRef
} from "../__chunks/VOQWLFSQ.js";
import {
useEvent
} from "../__chunks/5GGHRIN3.js";
import "../__chunks/SK3NAZA3.js";
import {
__objRest,
__spreadProps,
__spreadValues
} from "../__chunks/3YLGPPWQ.js";
// src/combobox/combobox-disclosure.tsx
import { invariant } from "@ariakit/core/utils/misc";
import { jsx } from "react/jsx-runtime";
var TagName = "button";
var children = /* @__PURE__ */ jsx(
"svg",
{
"aria-hidden": "true",
display: "block",
fill: "none",
stroke: "currentColor",
strokeLinecap: "round",
strokeLinejoin: "round",
strokeWidth: 1.5,
viewBox: "0 0 16 16",
height: "1em",
width: "1em",
pointerEvents: "none",
children: /* @__PURE__ */ jsx("polyline", { points: "4,6 8,10 12,6" })
}
);
var useComboboxDisclosure = createHook(function useComboboxDisclosure2(_a) {
var _b = _a, { store } = _b, props = __objRest(_b, ["store"]);
const context = useComboboxProviderContext();
store = store || context;
invariant(
store,
process.env.NODE_ENV !== "production" && "ComboboxDisclosure must receive a `store` prop or be wrapped in a ComboboxProvider component."
);
const onMouseDownProp = props.onMouseDown;
const onMouseDown = useEvent((event) => {
onMouseDownProp == null ? void 0 : onMouseDownProp(event);
event.preventDefault();
store == null ? void 0 : store.move(null);
});
const onClickProp = props.onClick;
const onClick = useEvent((event) => {
onClickProp == null ? void 0 : onClickProp(event);
if (event.defaultPrevented) return;
if (!store) return;
const { baseElement } = store.getState();
store.setDisclosureElement(baseElement);
});
const open = store.useState("open");
props = __spreadProps(__spreadValues({
children,
tabIndex: -1,
"aria-label": open ? "Hide popup" : "Show popup",
"aria-expanded": open
}, props), {
onMouseDown,
onClick
});
props = useDialogDisclosure(__spreadValues({ store }, props));
return props;
});
var ComboboxDisclosure = forwardRef(function ComboboxDisclosure2(props) {
const htmlProps = useComboboxDisclosure(props);
return createElement(TagName, htmlProps);
});
export {
ComboboxDisclosure,
useComboboxDisclosure
};