{"version":3,"file":"ChatWidgetEmbed.C6OGgcUI.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/UCwHGgD7hPO1aBqb0xn3/8YVEFTXwV2FcV6zN5mh6/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// Density: URL-Parameter ?density=compact|comfortable — compact für Sidebar, comfortable für /chat.\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\";const DENSITY_SET=\"fjnland:set-density\";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 buildWidgetSrc(theme,density,widgetUrl){const url=new URL(widgetUrl);url.searchParams.set(\"theme\",theme);url.searchParams.set(\"density\",density);return url.toString();}export default function ChatWidgetEmbed({density=\"compact\",widgetUrl=`${WIDGET_ORIGIN}/widget`}){const iframeRef=useRef(null);const lastThemeRef=useRef(null);const[iframeSrc]=useState(()=>buildWidgetSrc(detectFramerTheme(),density,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();iframeRef.current?.contentWindow?.postMessage({type:DENSITY_SET,density},\"*\");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();iframeRef.current?.contentWindow?.postMessage({type:DENSITY_SET,density},\"*\");}window.addEventListener(\"message\",handleMessage);return()=>{observer.disconnect();window.clearInterval(poll);media.removeEventListener(\"change\",syncTheme);window.removeEventListener(\"storage\",syncTheme);window.removeEventListener(\"message\",handleMessage);};},[density]);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`},density:{type:ControlType.Enum,title:\"Density\",options:[\"compact\",\"comfortable\"],optionTitles:[\"Sidebar (kompakt)\",\"Full Page (komfortabel)\"],defaultValue:\"compact\"}});\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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"}