import { n as __exportAll } from "./chunk-B-1-B7_t.js";
import { computed, createCommentVNode, createElementBlock, defineComponent, normalizeClass, openBlock } from "vue";
//#region src/components/compositions/elements/display/IframeDisplay.vue?vue&type=script&setup=true&lang.ts
var _hoisted_1 = [
	"src",
	"title",
	"sandbox"
];
var IframeDisplay_vue_vue_type_script_setup_true_lang_default = /* @__PURE__ */ defineComponent({
	__name: "IframeDisplay",
	props: {
		src: {},
		title: {},
		sandbox: { default: "allow-scripts allow-same-origin" },
		classList: {}
	},
	setup(__props) {
		/**
		* Props-driven iframe display.
		*
		* Embeds a remote document inside a sandboxed iframe. The wrapper
		* enforces a 16:9 aspect ratio and responsive width by default.
		*/
		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(["relative w-full overflow-hidden rounded-lg border", rootClass.value]),
				style: { "aspect-ratio": "16 / 9" },
				"data-testid": "iframe-display"
			}, [__props.src ? (openBlock(), createElementBlock("iframe", {
				key: 0,
				src: __props.src,
				title: __props.title ?? "Embedded content",
				class: "absolute inset-0 h-full w-full",
				sandbox: __props.sandbox,
				loading: "lazy",
				referrerpolicy: "no-referrer"
			}, null, 8, _hoisted_1)) : createCommentVNode("", true)], 2);
		};
	}
});
//#endregion
//#region src/components/compositions/elements/display/IframeDisplay.vue
var IframeDisplay_exports = /* @__PURE__ */ __exportAll({ default: () => IframeDisplay_default });
var IframeDisplay_default = IframeDisplay_vue_vue_type_script_setup_true_lang_default;
//#endregion
export { IframeDisplay_exports as n, IframeDisplay_default as t };

//# sourceMappingURL=IframeDisplay-C31yGnrN.js.map