import { cva } from "class-variance-authority";
import { jsx } from "react/jsx-runtime";

//#region src/components/Input/Input.tsx
const cn = (...classes) => classes.filter(Boolean).join(" ");
const inputVariants = cva([
	"w-full select-text resize-none text-base shadow-none outline-none",
	"transition-all duration-300 md:text-sm",
	"ring-0",
	"disabled:opacity-50",
	"rounded-xl [corner-shape:squircle] supports-[corner-shape:squircle]:rounded-2xl"
].join(" "), {
	variants: {
		variant: {
			default: [
				"text-text",
				"bg-neutral-50 dark:bg-neutral-950",
				"ring-text/20",
				"disabled:ring-0",
				"hover:ring-3",
				"focus-within:ring-4",
				"focus-visible:outline-none focus-visible:ring-4",
				"[box-shadow:none] focus:[box-shadow:none]",
				"aria-invalid:border-error"
			].join(" "),
			invisible: "border-none text-inherit outline-none ring-0"
		},
		size: {
			sm: "px-2 py-2 text-sm md:py-1.5 md:text-xs",
			md: "px-2 py-3 md:py-2",
			lg: "p-4"
		},
		validationStyleEnabled: {
			disabled: "",
			enabled: "valid:border-success invalid:border-error"
		}
	},
	defaultVariants: {
		variant: "default",
		size: "md",
		validationStyleEnabled: "disabled"
	}
});
let InputVariant = /* @__PURE__ */ function(InputVariant$1) {
	InputVariant$1["DEFAULT"] = "default";
	InputVariant$1["INVISIBLE"] = "invisible";
	return InputVariant$1;
}({});
let InputSize = /* @__PURE__ */ function(InputSize$1) {
	InputSize$1["MD"] = "md";
	InputSize$1["LG"] = "lg";
	return InputSize$1;
}({});
const Input = ({ validationStyleEnabled = false, variant, size, className, ...props }) => /* @__PURE__ */ jsx("input", {
	className: cn(inputVariants({
		variant,
		size,
		validationStyleEnabled: validationStyleEnabled ? "enabled" : "disabled"
	}), className),
	...props
});

//#endregion
export { Input, InputSize, InputVariant, inputVariants };
//# sourceMappingURL=Input.mjs.map