"use client";
import { cn as e } from "../../lib/utils.js";
import { Button as t } from "./button.js";
import "./input.js";
import { Textarea as n } from "./textarea.js";
import "react";
import { jsx as r } from "react/jsx-runtime";
import { cva as i } from "class-variance-authority";
//#region src/components/ui/input-group.tsx
function a({ className: t, ...n }) {
	return /* @__PURE__ */ r("div", {
		"data-slot": "input-group",
		role: "group",
		className: e("group/input-group border-input dark:bg-input/30 relative flex w-full items-center rounded-md border shadow-xs transition-[color,box-shadow] outline-none", "h-9 min-w-0 has-[>textarea]:h-auto", "has-[>[data-align=inline-start]]:[&>input]:pl-2", "has-[>[data-align=inline-end]]:[&>input]:pr-2", "has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3", "has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3", "has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50 has-[[data-slot=input-group-control]:focus-visible]:ring-[3px]", "has-[[data-slot][aria-invalid=true]]:ring-destructive/20 has-[[data-slot][aria-invalid=true]]:border-destructive dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40", t),
		...n
	});
}
var o = i("text-muted-foreground flex h-auto cursor-text items-center justify-center gap-2 py-1.5 text-sm font-medium select-none [&>svg:not([class*='size-'])]:size-4 [&>kbd]:rounded-[calc(var(--radius)-5px)] group-data-[disabled=true]/input-group:opacity-50", {
	variants: { align: {
		"inline-start": "order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]",
		"inline-end": "order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]",
		"block-start": "order-first w-full justify-start px-3 pt-3 [.border-b]:pb-3 group-has-[>input]/input-group:pt-2.5",
		"block-end": "order-last w-full justify-start px-3 pb-3 [.border-t]:pt-3 group-has-[>input]/input-group:pb-2.5"
	} },
	defaultVariants: { align: "inline-start" }
});
function s({ className: t, align: n = "inline-start", ...i }) {
	return /* @__PURE__ */ r("div", {
		role: "group",
		"data-slot": "input-group-addon",
		"data-align": n,
		className: e(o({ align: n }), t),
		onClick: (e) => {
			e.target.closest("button") || e.currentTarget.parentElement?.querySelector("input")?.focus();
		},
		...i
	});
}
var c = i("text-sm shadow-none flex gap-2 items-center", {
	variants: { size: {
		xs: "h-6 gap-1 px-2 rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-3.5 has-[>svg]:px-2",
		sm: "h-8 px-2.5 gap-1.5 rounded-md has-[>svg]:px-2.5",
		"icon-xs": "size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0",
		"icon-sm": "size-8 p-0 has-[>svg]:p-0"
	} },
	defaultVariants: { size: "xs" }
});
function l({ className: n, type: i = "button", variant: a = "ghost", size: o = "xs", ...s }) {
	return /* @__PURE__ */ r(t, {
		type: i,
		"data-size": o,
		variant: a,
		className: e(c({ size: o }), n),
		...s
	});
}
function u({ className: t, ...i }) {
	return /* @__PURE__ */ r(n, {
		"data-slot": "input-group-control",
		className: e("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent", t),
		...i
	});
}
//#endregion
export { a as InputGroup, s as InputGroupAddon, l as InputGroupButton, u as InputGroupTextarea };
