import { n as cn } from "./utils-DXzSsU1e.js";
import { createBlock, createVNode, defineComponent, mergeProps, normalizeClass, openBlock, renderSlot, unref, withCtx } from "vue";
import { reactiveOmit } from "@vueuse/core";
import { ComboboxAnchor, ComboboxContent, ComboboxEmpty, ComboboxGroup, ComboboxInput, ComboboxItem, ComboboxItemIndicator, ComboboxPortal, ComboboxRoot, ComboboxSeparator, ComboboxViewport, useForwardProps, useForwardPropsEmits } from "reka-ui";
import { Check } from "@lucide/vue";
//#endregion
//#region src/components/ui/combobox/Combobox.vue
var Combobox_default = /* @__PURE__ */ defineComponent({
	__name: "Combobox",
	props: {
		class: { type: [
			Boolean,
			null,
			String,
			Object,
			Array
		] },
		open: { type: Boolean },
		defaultOpen: { type: Boolean },
		resetSearchTermOnBlur: { type: Boolean },
		resetSearchTermOnSelect: { type: Boolean },
		openOnFocus: { type: Boolean },
		openOnClick: { type: Boolean },
		ignoreFilter: { type: Boolean },
		resetModelValueOnClear: { type: Boolean },
		modelValue: {},
		defaultValue: {},
		multiple: { type: Boolean },
		dir: {},
		disabled: { type: Boolean },
		highlightOnHover: { type: Boolean },
		by: { type: [String, Function] },
		asChild: { type: Boolean },
		as: {},
		name: {},
		required: { type: Boolean }
	},
	emits: [
		"update:modelValue",
		"highlight",
		"update:open"
	],
	setup(__props, { emit: __emit }) {
		const props = __props;
		const emits = __emit;
		const forwarded = useForwardPropsEmits(reactiveOmit(props, "class"), emits);
		return (_ctx, _cache) => {
			return openBlock(), createBlock(unref(ComboboxRoot), mergeProps(unref(forwarded), { class: unref(cn)("relative", props.class) }), {
				default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
				_: 3
			}, 16, ["class"]);
		};
	}
});
//#endregion
//#region src/components/ui/combobox/ComboboxAnchor.vue
var ComboboxAnchor_default = /* @__PURE__ */ defineComponent({
	__name: "ComboboxAnchor",
	props: {
		class: { type: [
			Boolean,
			null,
			String,
			Object,
			Array
		] },
		reference: {},
		asChild: { type: Boolean },
		as: {}
	},
	setup(__props) {
		const props = __props;
		const forwardedProps = useForwardProps(reactiveOmit(props, "class"));
		return (_ctx, _cache) => {
			return openBlock(), createBlock(unref(ComboboxAnchor), mergeProps(unref(forwardedProps), { class: unref(cn)("flex h-10 w-full items-center justify-between rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background focus-within:outline-none focus-within:ring-2 focus-within:ring-ring focus-within:ring-offset-2", props.class) }), {
				default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
				_: 3
			}, 16, ["class"]);
		};
	}
});
//#endregion
//#region src/components/ui/combobox/ComboboxContent.vue
var ComboboxContent_default = /* @__PURE__ */ defineComponent({
	inheritAttrs: false,
	__name: "ComboboxContent",
	props: {
		class: { type: [
			Boolean,
			null,
			String,
			Object,
			Array
		] },
		forceMount: { type: Boolean },
		position: { default: "popper" },
		bodyLock: { type: Boolean },
		hideWhenEmpty: { type: Boolean },
		side: {},
		sideOffset: {},
		sideFlip: { type: Boolean },
		align: {},
		alignOffset: {},
		alignFlip: { type: Boolean },
		avoidCollisions: { type: Boolean },
		collisionBoundary: {},
		collisionPadding: {},
		arrowPadding: {},
		hideShiftedArrow: { type: Boolean },
		sticky: {},
		hideWhenDetached: { type: Boolean },
		positionStrategy: {},
		updatePositionStrategy: {},
		disableUpdateOnLayoutShift: { type: Boolean },
		prioritizePosition: { type: Boolean },
		reference: {},
		asChild: { type: Boolean },
		as: {},
		disableOutsidePointerEvents: { type: Boolean }
	},
	emits: [
		"escapeKeyDown",
		"pointerDownOutside",
		"focusOutside",
		"interactOutside"
	],
	setup(__props, { emit: __emit }) {
		const props = __props;
		const emits = __emit;
		const forwarded = useForwardPropsEmits(reactiveOmit(props, "class"), emits);
		return (_ctx, _cache) => {
			return openBlock(), createBlock(unref(ComboboxPortal), null, {
				default: withCtx(() => [createVNode(unref(ComboboxContent), mergeProps({
					...unref(forwarded),
					..._ctx.$attrs
				}, { class: unref(cn)("relative z-50 max-h-96 min-w-32 overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2", __props.position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1", props.class) }), {
					default: withCtx(() => [createVNode(unref(ComboboxViewport), { class: normalizeClass(unref(cn)("p-1", __props.position === "popper" && "h-[--reka-combobox-trigger-height] w-full min-w-[--reka-combobox-trigger-width]")) }, {
						default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
						_: 3
					}, 8, ["class"])]),
					_: 3
				}, 16, ["class"])]),
				_: 3
			});
		};
	}
});
//#endregion
//#region src/components/ui/combobox/ComboboxEmpty.vue
var ComboboxEmpty_default = /* @__PURE__ */ defineComponent({
	__name: "ComboboxEmpty",
	props: {
		class: { type: [
			Boolean,
			null,
			String,
			Object,
			Array
		] },
		asChild: { type: Boolean },
		as: {}
	},
	setup(__props) {
		const props = __props;
		const delegatedProps = reactiveOmit(props, "class");
		return (_ctx, _cache) => {
			return openBlock(), createBlock(unref(ComboboxEmpty), mergeProps(unref(delegatedProps), { class: unref(cn)("py-6 text-center text-sm text-muted-foreground", props.class) }), {
				default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
				_: 3
			}, 16, ["class"]);
		};
	}
});
//#endregion
//#region src/components/ui/combobox/ComboboxGroup.vue
var ComboboxGroup_default = /* @__PURE__ */ defineComponent({
	__name: "ComboboxGroup",
	props: {
		class: { type: [
			Boolean,
			null,
			String,
			Object,
			Array
		] },
		asChild: { type: Boolean },
		as: {}
	},
	setup(__props) {
		const props = __props;
		const delegatedProps = reactiveOmit(props, "class");
		return (_ctx, _cache) => {
			return openBlock(), createBlock(unref(ComboboxGroup), mergeProps(unref(delegatedProps), { class: unref(cn)("p-1 w-full", props.class) }), {
				default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
				_: 3
			}, 16, ["class"]);
		};
	}
});
//#endregion
//#region src/components/ui/combobox/ComboboxInput.vue
var ComboboxInput_default = /* @__PURE__ */ defineComponent({
	__name: "ComboboxInput",
	props: {
		class: { type: [
			Boolean,
			null,
			String,
			Object,
			Array
		] },
		displayValue: { type: Function },
		modelValue: {},
		autoFocus: { type: Boolean },
		disabled: { type: Boolean },
		asChild: { type: Boolean },
		as: {}
	},
	emits: ["update:modelValue"],
	setup(__props, { emit: __emit }) {
		const props = __props;
		const emits = __emit;
		const forwarded = useForwardPropsEmits(reactiveOmit(props, "class"), emits);
		return (_ctx, _cache) => {
			return openBlock(), createBlock(unref(ComboboxInput), mergeProps(unref(forwarded), { class: unref(cn)("flex w-full bg-transparent text-sm placeholder:text-muted-foreground outline-none disabled:cursor-not-allowed disabled:opacity-50", props.class) }), null, 16, ["class"]);
		};
	}
});
//#endregion
//#region src/components/ui/combobox/ComboboxItem.vue
var ComboboxItem_default = /* @__PURE__ */ defineComponent({
	__name: "ComboboxItem",
	props: {
		class: { type: [
			Boolean,
			null,
			String,
			Object,
			Array
		] },
		textValue: {},
		value: {},
		disabled: { type: Boolean },
		asChild: { type: Boolean },
		as: {}
	},
	emits: ["select"],
	setup(__props, { emit: __emit }) {
		const props = __props;
		const emits = __emit;
		const forwarded = useForwardPropsEmits(reactiveOmit(props, "class"), emits);
		return (_ctx, _cache) => {
			return openBlock(), createBlock(unref(ComboboxItem), mergeProps(unref(forwarded), { class: unref(cn)("relative flex w-full cursor-default select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50", props.class) }), {
				default: withCtx(() => [renderSlot(_ctx.$slots, "default")]),
				_: 3
			}, 16, ["class"]);
		};
	}
});
//#endregion
//#region src/components/ui/combobox/ComboboxItemIndicator.vue
var ComboboxItemIndicator_default = /* @__PURE__ */ defineComponent({
	__name: "ComboboxItemIndicator",
	props: {
		class: { type: [
			Boolean,
			null,
			String,
			Object,
			Array
		] },
		asChild: { type: Boolean },
		as: {}
	},
	setup(__props) {
		const props = __props;
		const forwardedProps = useForwardProps(reactiveOmit(props, "class"));
		return (_ctx, _cache) => {
			return openBlock(), createBlock(unref(ComboboxItemIndicator), mergeProps(unref(forwardedProps), { class: unref(cn)("absolute left-2 flex h-3.5 w-3.5 items-center justify-center", props.class) }), {
				default: withCtx(() => [renderSlot(_ctx.$slots, "default", {}, () => [createVNode(unref(Check), { class: "h-4 w-4" })])]),
				_: 3
			}, 16, ["class"]);
		};
	}
});
//#endregion
//#region src/components/ui/combobox/ComboboxSeparator.vue
var ComboboxSeparator_default = /* @__PURE__ */ defineComponent({
	__name: "ComboboxSeparator",
	props: {
		class: { type: [
			Boolean,
			null,
			String,
			Object,
			Array
		] },
		asChild: { type: Boolean },
		as: {}
	},
	setup(__props) {
		const props = __props;
		const delegatedProps = reactiveOmit(props, "class");
		return (_ctx, _cache) => {
			return openBlock(), createBlock(unref(ComboboxSeparator), mergeProps(unref(delegatedProps), { class: unref(cn)("-mx-1 my-1 h-px bg-muted", props.class) }), null, 16, ["class"]);
		};
	}
});
//#endregion
export { ComboboxGroup_default as a, ComboboxAnchor_default as c, ComboboxInput_default as i, Combobox_default as l, ComboboxItemIndicator_default as n, ComboboxEmpty_default as o, ComboboxItem_default as r, ComboboxContent_default as s, ComboboxSeparator_default as t };

//# sourceMappingURL=combobox-D0Svg8GU.js.map