{"version":3,"file":"SchemaEmitter.BeHe-UVC.mjs","names":["__esmMin","init_jsx_runtime","c","init_framer_BWFVvmND","addPropertyControls","ControlType","applyDates","published","modified","buildLexikon","base","p","url","ORIGIN","node","PUBLISHER","buildBlog","hub","buildPress","SchemaEmitter","props","json","name","kind","style","init_SchemaEmitter"],"sources":["https:/framerusercontent.com/modules/41INlsYTjsH5PKZBfAFq/VaiVU1QjgLcCy5VJ7rDh/SchemaEmitter.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";const ORIGIN=\"https://de.everreal.co\";/**\n * Both dates are emitted whenever the CMS holds them, which is what live does on every\n * blog and Lexikon detail page.\n *\n * An earlier version suppressed dateModified whenever it preceded datePublished, on the\n * grounds that the pair reads incoherently. It does, but the cause is upstream: these are\n * Webflow record stamps, and \"published on\" is a bulk republish instant shared by dozens\n * of items while \"last updated\" is the real per-item edit time, so the earlier value is\n * usually the more truthful one. Suppressing it dropped dateModified from EVERY detail\n * page in the rebuild while live carried it on all of them, which is a worse outcome than\n * an odd ordering: it removes a freshness signal Google reads. Correcting the ordering\n * instead would mean inventing a date, which is not allowed. So the pair ships exactly as\n * the CMS holds it, exactly as live ships it.\n */function applyDates(node,published,modified){if(published)node.datePublished=published;if(modified)node.dateModified=modified;}/**\n * No `publisher.logo`, deliberately. Live emits one and this briefly did too, to match it,\n * but Google's current Article documentation has no required properties at all and\n * `publisher.logo` appears nowhere in its recommended list - the one \"logo\" mention is a\n * warning to use images relevant to the article \"rather than logos\". It was an AMP-era\n * requirement that has since been dropped, so carrying it buys parity with live and\n * nothing in Search. Renée's call, 2026-09-08: keep the markup lean.\n */const PUBLISHER={\"@type\":\"Organization\",\"@id\":ORIGIN+\"/#organization\",name:\"EverReal\",url:ORIGIN};function buildLexikon(p){const base=p.basePath||\"/immobilien-lexikon\";const url=ORIGIN+base+\"/\"+p.slug;const node={\"@context\":\"https://schema.org\",\"@type\":\"WebPage\",name:p.name,description:p.description,url:url,inLanguage:\"de-DE\",publisher:PUBLISHER,mainEntity:{\"@type\":\"DefinedTerm\",name:p.name,description:p.description,inDefinedTermSet:{\"@type\":\"DefinedTermSet\",name:\"EverReal Immobilien-Lexikon\",url:ORIGIN+\"/business/wissen/immobilien-lexikon\"}},breadcrumb:{\"@type\":\"BreadcrumbList\",// No \"Wissen\" level: /business/wissen 404s on live and is not in the manifest.\nitemListElement:[{\"@type\":\"ListItem\",position:1,name:\"Immobilien-Lexikon\",item:ORIGIN+\"/business/wissen/immobilien-lexikon\"},{\"@type\":\"ListItem\",position:2,name:p.name,item:url}]}};applyDates(node,p.datePublished,p.dateModified);return node;}function buildBlog(p){// Ratgeber (B2C) posts live under /go/blog, so the section path must be a prop.\nconst base=p.basePath||\"/blog\";const hub=p.hubName||\"Blog\";const url=ORIGIN+base+\"/\"+p.slug;const node={\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",headline:p.name,description:p.description,url:url,mainEntityOfPage:{\"@type\":\"WebPage\",\"@id\":url,breadcrumb:{\"@type\":\"BreadcrumbList\",// Mirrors the visible breadcrumb exactly (two levels).\nitemListElement:[{\"@type\":\"ListItem\",position:1,name:hub,item:ORIGIN+base},{\"@type\":\"ListItem\",position:2,name:p.name,item:url}]}},inLanguage:\"de-DE\",author:{\"@type\":\"Organization\",name:\"EverReal\",url:ORIGIN},publisher:PUBLISHER};if(p.image)node.image=p.image;applyDates(node,p.datePublished,p.dateModified);return node;}/**\n * Press releases. Live emits NewsArticle on every /presse/* page, so the rebuild does too;\n * NewsArticle rather than BlogPosting is the honest type for a dated corporate announcement,\n * and it is what the original chose. Author and publisher carry the legal name \"EverReal\n * GmbH\" here, again matching live's press pages, where the blog uses the short brand name.\n * The breadcrumb is the one addition: live's press pages have none, and every other detail\n * page in the rebuild carries one that mirrors its visible crumb trail.\n */function buildPress(p){const base=p.basePath||\"/presse\";const hub=p.hubName||\"Presse\";const url=ORIGIN+base+\"/\"+p.slug;const node={\"@context\":\"https://schema.org\",\"@type\":\"NewsArticle\",headline:p.name,description:p.description,url:url,mainEntityOfPage:{\"@type\":\"WebPage\",\"@id\":url,breadcrumb:{\"@type\":\"BreadcrumbList\",itemListElement:[{\"@type\":\"ListItem\",position:1,name:hub,item:ORIGIN+\"/unternehmen/presse\"},{\"@type\":\"ListItem\",position:2,name:p.name,item:url}]}},inLanguage:\"de-DE\",author:{\"@type\":\"Organization\",name:\"EverReal GmbH\",url:ORIGIN},publisher:{\"@type\":\"Organization\",\"@id\":ORIGIN+\"/#organization\",name:\"EverReal GmbH\",url:ORIGIN}};if(p.image)node.image=p.image;applyDates(node,p.datePublished,p.dateModified);return node;}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function SchemaEmitter(props){const{kind,name,style}=props;// Nothing to say without a name: emit no schema rather than an empty node.\n// \"<\" must be escaped or a field containing \"</script>\" would terminate the tag early.\nconst json=name?JSON.stringify(kind===\"blog\"?buildBlog(props):kind===\"press\"?buildPress(props):buildLexikon(props)).replace(/</g,\"\\\\u003c\"):\"\";return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:0,height:0,overflow:\"hidden\",...style},children:json?/*#__PURE__*/_jsx(\"script\",{type:\"application/ld+json\",dangerouslySetInnerHTML:{__html:json}}):null});}addPropertyControls(SchemaEmitter,{kind:{type:ControlType.Enum,title:\"Kind\",options:[\"lexikon\",\"blog\",\"press\"],optionTitles:[\"Lexikon entry\",\"Blog post\",\"Press release\"],defaultValue:\"lexikon\"},name:{type:ControlType.String,title:\"Name\"},description:{type:ControlType.String,title:\"Description\"},slug:{type:ControlType.String,title:\"Slug\"},datePublished:{type:ControlType.String,title:\"Published\"},dateModified:{type:ControlType.String,title:\"Updated\"},image:{type:ControlType.String,title:\"Image URL\"},basePath:{type:ControlType.String,title:\"Base path\"},hubName:{type:ControlType.String,title:\"Hub name\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SchemaEmitter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SchemaEmitter.map"],"mappings":"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"}