import { n as __exportAll } from "./chunk-B-1-B7_t.js";
import { computed, createElementBlock, createVNode, defineComponent, normalizeClass, openBlock, unref } from "vue";
import { ImageIcon } from "@lucide/vue";
//#region src/components/compositions/elements/display/ImageDisplay.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1 = ["src", "alt"];
var _hoisted_2 = {
	key: 1,
	class: "flex h-32 w-full items-center justify-center rounded border border-dashed bg-muted text-muted-foreground",
	"data-testid": "image-display-empty"
};
var ImageDisplay_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
	__name: "ImageDisplay",
	props: {
		src: {},
		alt: {},
		classList: {}
	},
	setup(__props) {
		/**
		* Props-driven image display.
		*
		* Shows a responsive `<img>` when `src` is set, otherwise renders a
		* dashed placeholder.
		*/
		const props = __props;
		const rootClass = computed(() => {
			const cl = props.classList;
			if (!cl) return "";
			return Array.isArray(cl) ? cl.join(" ") : cl;
		});
		return (_ctx, _cache) => {
			return openBlock(), createElementBlock("div", {
				class: normalizeClass(["inline-block", rootClass.value]),
				"data-testid": "image-display"
			}, [__props.src ? (openBlock(), createElementBlock("img", {
				key: 0,
				src: __props.src,
				alt: __props.alt ?? "",
				class: "h-auto max-w-full rounded",
				loading: "lazy"
			}, null, 8, _hoisted_1)) : (openBlock(), createElementBlock("div", _hoisted_2, [createVNode(unref(ImageIcon), { class: "size-6" })]))], 2);
		};
	}
});
//#endregion
//#region src/components/compositions/elements/display/ImageDisplay.vue
var ImageDisplay_exports = /* @__PURE__ */ __exportAll({ default: () => ImageDisplay_default });
var ImageDisplay_default = ImageDisplay_vue_vue_type_script_setup_true_lang_default;
//#endregion
export { ImageDisplay_exports as n, ImageDisplay_default as t };

//# sourceMappingURL=ImageDisplay-rTn-LL8B.js.map