import { cn } from "./index3.js";
import { LoadingIndicator } from "./index14.js";
import { cva } from "class-variance-authority";
import { jsx, jsxs } from "react/jsx-runtime";
//#region src/components/molecules/feedback/LoadingOverlay/LoadingOverlay.tsx
var loadingOverlayVariants = cva("relative", {
	variants: { 
	/**
	* Whether the overlay should fill the entire container or just the content area
	*/
fill: {
		content: "",
		container: "h-full w-full"
	} },
	defaultVariants: { fill: "content" }
});
var overlayBackdropVariants = cva("absolute inset-0 z-10 flex items-center justify-center transition-opacity duration-200 ease-smooth motion-reduce:transition-none", {
	variants: {
		/**
		* Background blur effect intensity
		*/
		blur: {
			none: "",
			sm: "supports-backdrop-filter:backdrop-blur-sm",
			md: "supports-backdrop-filter:backdrop-blur-md"
		},
		/**
		* Background color variant
		*/
		background: {
			transparent: "",
			light: "bg-card/80",
			solid: "bg-card"
		}
	},
	defaultVariants: {
		blur: "none",
		background: "light"
	}
});
/**
* LoadingOverlay - Wraps arbitrary content with a loading overlay
*
* Shows a semi-transparent overlay with a LoadingIndicator when loading is true.
* The content remains visible but non-interactive during loading.
*
* @example
* ```tsx
* <LoadingOverlay loading={isLoading}>
*   <Card>Your content here</Card>
* </LoadingOverlay>
* ```
*/
function LoadingOverlay({ loading = false, size = "md", variant = "line-simple", showText = true, text, color, fill, blur, background, className, children, ...props }) {
	return /* @__PURE__ */ jsxs("div", {
		className: cn(loadingOverlayVariants({ fill }), className),
		"aria-busy": loading,
		...props,
		children: [children, loading && /* @__PURE__ */ jsx("div", {
			className: cn(overlayBackdropVariants({
				blur,
				background
			})),
			"data-slot": "loading-overlay",
			children: /* @__PURE__ */ jsx(LoadingIndicator, {
				size,
				variant,
				showText,
				text,
				color
			})
		})]
	});
}
LoadingOverlay.displayName = "LoadingOverlay";
//#endregion
export { LoadingOverlay, loadingOverlayVariants, overlayBackdropVariants };

//# sourceMappingURL=index380.js.map