{"version":3,"file":"ChatWidgetEmbed.BbAt5F1U.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/UCwHGgD7hPO1aBqb0xn3/ZGXO9ayEcztqiS8P5L9L/ChatWidgetEmbed.js"],"sourcesContent":["// Framer Code Component — in Framer als ChatWidgetEmbed anlegen oder bestehendes ersetzen.\n//\n// Option A (transparenter Embed): Section/Stack hinter diesem Component auf\n// `transparent` oder `#0a0a0a` setzen — sonst scheint der Framer-Section-Hintergrund durch.\n//\n// Theme: URL-Parameter ?theme=light|dark + postMessage mit dem eingebetteten Widget.\n// Folgt dem Framer ThemeToggle über die Seiten-Hintergrundfarbe (Framer setzt keine html.dark-Klasse).\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useRef,useState}from\"react\";const WIDGET_ORIGIN=\"https://fjnland-chat.vercel.app\";const THEME_SET=\"fjnland:set-theme\";const THEME_REQUEST=\"fjnland:request-theme\";function parseRgb(color){const match=color.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)/);if(!match){return null;}return[Number(match[1]),Number(match[2]),Number(match[3])];}function detectThemeFromBackground(){for(const element of[document.body,document.documentElement]){const background=getComputedStyle(element).backgroundColor;const rgb=parseRgb(background);if(!rgb){continue;}if(background===\"rgba(0, 0, 0, 0)\"||background===\"transparent\"){continue;}const luminance=.2126*rgb[0]+.7152*rgb[1]+.0722*rgb[2];return luminance>140?\"light\":\"dark\";}return null;}function detectFramerTheme(){if(typeof document===\"undefined\"||typeof window===\"undefined\"){return\"dark\";}const root=document.documentElement;const datasetTheme=root.dataset.fjnTheme;if(datasetTheme===\"dark\"||datasetTheme===\"light\"){return datasetTheme;}const stored=window.localStorage.getItem(\"theme\");if(stored===\"dark\"||stored===\"light\"){return stored;}if(root.classList.contains(\"dark\")||root.getAttribute(\"data-framer-theme\")===\"dark\"){return\"dark\";}const fromBackground=detectThemeFromBackground();if(fromBackground){return fromBackground;}return window.matchMedia(\"(prefers-color-scheme: dark)\").matches?\"dark\":\"light\";}function widgetSrc(theme,widgetUrl){const url=new URL(widgetUrl);url.searchParams.set(\"theme\",theme);return url.toString();}export default function ChatWidgetEmbed({widgetUrl=`${WIDGET_ORIGIN}/widget`}){const iframeRef=useRef(null);const lastThemeRef=useRef(null);const[iframeSrc]=useState(()=>widgetSrc(detectFramerTheme(),widgetUrl));const[colorScheme,setColorScheme]=useState(()=>detectFramerTheme());useEffect(()=>{function pushTheme(theme){if(lastThemeRef.current===theme){return;}lastThemeRef.current=theme;setColorScheme(theme);iframeRef.current?.contentWindow?.postMessage({type:THEME_SET,theme},\"*\");}function syncTheme(){pushTheme(detectFramerTheme());}syncTheme();const observer=new MutationObserver(syncTheme);observer.observe(document.documentElement,{attributes:true,attributeFilter:[\"class\",\"data-framer-theme\",\"data-fjn-theme\",\"style\"],subtree:true});observer.observe(document.body,{attributes:true,attributeFilter:[\"class\",\"style\"],subtree:true});const poll=window.setInterval(syncTheme,300);const media=window.matchMedia(\"(prefers-color-scheme: dark)\");media.addEventListener(\"change\",syncTheme);window.addEventListener(\"storage\",syncTheme);function handleMessage(event){if(event.data?.type!==THEME_REQUEST){return;}syncTheme();}window.addEventListener(\"message\",handleMessage);return()=>{observer.disconnect();window.clearInterval(poll);media.removeEventListener(\"change\",syncTheme);window.removeEventListener(\"storage\",syncTheme);window.removeEventListener(\"message\",handleMessage);};},[]);return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",minHeight:0,background:\"transparent\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"iframe\",{ref:iframeRef,src:iframeSrc,title:\"fjnland Chat\",style:{width:\"100%\",height:\"100%\",border:\"none\",display:\"block\",background:\"transparent\",colorScheme},allow:\"clipboard-write\"})});}addPropertyControls(ChatWidgetEmbed,{widgetUrl:{type:ControlType.String,title:\"Widget URL\",defaultValue:`${WIDGET_ORIGIN}/widget`}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ChatWidgetEmbed\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ChatWidgetEmbed.map"],"mappings":"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"}