import { c as clientSupportPlugins } from "./GenericMountStory.vue2-2bb5633d.js"; import { d as defineComponent, r as ref, aP as watchEffect, aO as markRaw, o as openBlock, q as createBlock, aQ as mergeProps, aR as resolveDynamicComponent, h as createCommentVNode, K as reactive, v as histoireConfig, z as isRef, a as unref } from "./vendor-3ab3e533.js"; const __default__ = { inheritAttrs: false }; const _sfc_main = /* @__PURE__ */ defineComponent({ ...__default__, __name: "GenericRenderStory", props: { story: null }, setup(__props) { const props = __props; const mountComponent = ref(null); watchEffect(async () => { var _a; const clientPlugin = clientSupportPlugins[(_a = props.story.file) == null ? void 0 : _a.supportPluginId]; if (clientPlugin) { try { const pluginModule = await clientPlugin(); mountComponent.value = markRaw(pluginModule.RenderStory); } catch (e) { console.error(e); throw e; } } }); return (_ctx, _cache) => { return mountComponent.value ? (openBlock(), createBlock(resolveDynamicComponent(mountComponent.value), mergeProps({ key: 0, class: "histoire-generic-render-story __histoire-render-story", story: __props.story }, _ctx.$attrs), null, 16, ["story"])) : createCommentVNode("", true); }; } }); const receivedSettings = reactive({}); function applyPreviewSettings(settings) { Object.assign(receivedSettings, settings); document.documentElement.setAttribute("dir", settings.textDirection); const contrastColor = getContrastColor(settings); document.documentElement.style.setProperty("--histoire-contrast-color", contrastColor); if (histoireConfig.autoApplyContrastColor) { document.documentElement.style.color = contrastColor; } } function getContrastColor(setting) { var _a; return ((_a = histoireConfig.backgroundPresets.find((preset) => preset.color === setting.backgroundColor)) == null ? void 0 : _a.contrastColor) ?? "unset"; } const isObject = (val) => val !== null && typeof val === "object"; function toRawDeep(val, clean = false, seen = /* @__PURE__ */ new WeakMap()) { const unwrappedValue = isRef(val) ? unref(val) : val; if (typeof unwrappedValue === "symbol") { return unwrappedValue.toString(); } if (!isObject(unwrappedValue)) { return unwrappedValue; } if (seen.has(unwrappedValue)) { return seen.get(unwrappedValue); } if (Array.isArray(unwrappedValue)) { const result = []; seen.set(unwrappedValue, result); let list = unwrappedValue.map((value) => toRawDeep(value, clean, seen)); if (clean) { list = list.filter((value) => typeof value !== "function"); } result.push(...list); return result; } else { const result = {}; seen.set(unwrappedValue, result); toRawObject(unwrappedValue, result, clean, seen); return result; } } const toRawObject = (obj, target, clean = false, seen = /* @__PURE__ */ new WeakMap()) => { Object.keys(obj).forEach((key) => { if (clean && typeof obj[key] === "function") { return; } target[key] = toRawDeep(obj[key], clean, seen); }); }; export { _sfc_main as _, applyPreviewSettings as a, getContrastColor as g, toRawDeep as t };