UNPKG

@ariakit/react-core

Version:

Ariakit React core

108 lines (89 loc) 3.58 kB
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); var _K3X5TQGKcjs = require('../__chunks/K3X5TQGK.cjs'); require('../__chunks/ZVS6SBRR.cjs'); require('../__chunks/VF7H2WBX.cjs'); require('../__chunks/EJVJIL4S.cjs'); require('../__chunks/CWQU4R75.cjs'); var _PK35DJGAcjs = require('../__chunks/PK35DJGA.cjs'); require('../__chunks/H5ZMZIC6.cjs'); require('../__chunks/PDQXLIRF.cjs'); require('../__chunks/T3QB4FR3.cjs'); require('../__chunks/FVVTEJ4K.cjs'); var _6TI3NXX6cjs = require('../__chunks/6TI3NXX6.cjs'); var _L5A2ID7Scjs = require('../__chunks/L5A2ID7S.cjs'); require('../__chunks/FDRJDQ5Y.cjs'); var _7EQBAZ46cjs = require('../__chunks/7EQBAZ46.cjs'); // src/combobox/combobox-cancel.tsx var _misc = require('@ariakit/core/utils/misc'); var _react = require('react'); var _jsxruntime = require('react/jsx-runtime'); var TagName = "button"; var children = /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "svg", { "aria-hidden": "true", display: "block", viewBox: "0 0 16 16", fill: "none", stroke: "currentColor", strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 1.5, width: "1em", height: "1em", pointerEvents: "none", children: [ /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "5", y1: "5", x2: "11", y2: "11" }), /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "line", { x1: "5", y1: "11", x2: "11", y2: "5" }) ] } ); var useComboboxCancel = _6TI3NXX6cjs.createHook.call(void 0, function useComboboxCancel2(_a) { var _b = _a, { store, hideWhenEmpty } = _b, props = _7EQBAZ46cjs.__objRest.call(void 0, _b, ["store", "hideWhenEmpty"]); const context = _K3X5TQGKcjs.useComboboxProviderContext.call(void 0, ); store = store || context; _misc.invariant.call(void 0, store, process.env.NODE_ENV !== "production" && "ComboboxCancel must receive a `store` prop or be wrapped in a ComboboxProvider component." ); const onClickProp = props.onClick; const onClick = _L5A2ID7Scjs.useEvent.call(void 0, (event) => { onClickProp == null ? void 0 : onClickProp(event); if (event.defaultPrevented) return; store == null ? void 0 : store.setValue(""); store == null ? void 0 : store.move(null); }); const comboboxId = store.useState((state) => { var _a2; return (_a2 = state.baseElement) == null ? void 0 : _a2.id; }); const empty = store.useState((state) => state.value === ""); props = _L5A2ID7Scjs.useWrapElement.call(void 0, props, (element) => { if (!hideWhenEmpty) return element; if (empty) return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _react.Fragment, {}); return element; }, [hideWhenEmpty, empty] ); props = _7EQBAZ46cjs.__spreadProps.call(void 0, _7EQBAZ46cjs.__spreadValues.call(void 0, { children, "aria-label": "Clear input", // This aria-controls will ensure the combobox popup remains visible when // this element gets focused. This logic is done in the ComboboxPopover // component. "aria-controls": comboboxId }, props), { onClick }); props = _PK35DJGAcjs.useButton.call(void 0, props); return props; } ); var ComboboxCancel = _6TI3NXX6cjs.forwardRef.call(void 0, function ComboboxCancel2(props) { const htmlProps = useComboboxCancel(props); return _6TI3NXX6cjs.createElement.call(void 0, TagName, htmlProps); }); exports.ComboboxCancel = ComboboxCancel; exports.useComboboxCancel = useComboboxCancel;