{"version":3,"file":"StructuredData.Da91JfbS.mjs","names":["useMemo"],"sources":["https:/framerusercontent.com/modules/WsbhN8sqPKaRHjBSiWVC/QwaWhT1iA9w2zN8QOSlM/StructuredData.js"],"sourcesContent":["// User request: In BlogPosting mode, always derive article URL from breadcrumbBlogUrl + articleSlug when both exist, and only fall back to url when either is missing. Also set description default to an empty string, while keeping Organization mode and all other behavior unchanged.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useEffect,useMemo}from\"react\";function withIfValue(target,key,value){const trimmed=value.trim();if(trimmed)target[key]=trimmed;}function normalizeDateValue(value){if(value instanceof Date){const time=value.getTime();return Number.isNaN(time)?\"\":value.toISOString();}const raw=`${value??\"\"}`.trim();if(!raw)return\"\";const parsed=new Date(raw);if(!Number.isNaN(parsed.getTime())){return parsed.toISOString();}return raw;}function normalizeImageValue(value){if(typeof value===\"string\")return value.trim();if(!value||typeof value!==\"object\")return\"\";const src=typeof value.src===\"string\"?value.src.trim():\"\";if(src)return src;const url=typeof value.url===\"string\"?value.url.trim():\"\";return url;}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function StructuredData(props){const{schemaMode,name,url,articleSlug,publisherUrl,title,datePublished,authorName,description,imageUrl={src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Gradient 5 - Green\"},breadcrumbHomeUrl,breadcrumbBlogUrl,githubUrl}=props;const mode=schemaMode;const trimmedUrl=url.trim();const trimmedBlogUrl=breadcrumbBlogUrl.trim();const trimmedArticleSlug=articleSlug.trim().replace(/^\\/+|\\/+$/g,\"\");const resolvedArticleUrl=useMemo(()=>{if(trimmedBlogUrl&&trimmedArticleSlug){const normalizedBase=trimmedBlogUrl.replace(/\\/+$/,\"\");return`${normalizedBase}/${trimmedArticleSlug}`;}return trimmedUrl;},[trimmedUrl,trimmedBlogUrl,trimmedArticleSlug]);const scriptId=useMemo(()=>{const identityUrl=mode===\"BlogPosting\"?resolvedArticleUrl:trimmedUrl;const base=`${mode}-${identityUrl||\"no-url\"}`;const safe=base.toLowerCase().replace(/[^a-z0-9_-]+/g,\"-\");return`framer-structured-data-${safe}`;},[mode,resolvedArticleUrl,trimmedUrl]);const jsonLdString=useMemo(()=>{const trimmedName=name.trim();const trimmedTitle=title.trim();const normalizedDatePublished=normalizeDateValue(datePublished);const trimmedAuthorName=authorName.trim();const trimmedDescription=description.trim();const normalizedImageUrl=normalizeImageValue(imageUrl);const trimmedHomeUrl=breadcrumbHomeUrl.trim();const trimmedGithubUrl=githubUrl.trim();const trimmedPublisherUrl=publisherUrl.trim();if(mode===\"Organization\"){const organization={\"@context\":\"https://schema.org\",\"@type\":\"Organization\",name:trimmedName,url:trimmedUrl};if(trimmedGithubUrl){organization.sameAs=[trimmedGithubUrl];}return JSON.stringify(organization);}const blogPosting={\"@type\":\"BlogPosting\"};withIfValue(blogPosting,\"headline\",trimmedTitle);if(resolvedArticleUrl){blogPosting.mainEntityOfPage={\"@type\":\"WebPage\",\"@id\":resolvedArticleUrl};blogPosting.url=resolvedArticleUrl;}withIfValue(blogPosting,\"datePublished\",normalizedDatePublished);if(trimmedAuthorName){blogPosting.author={\"@type\":\"Person\",name:trimmedAuthorName};}withIfValue(blogPosting,\"description\",trimmedDescription);withIfValue(blogPosting,\"image\",normalizedImageUrl);if(trimmedName||trimmedPublisherUrl){const publisher={\"@type\":\"Organization\"};withIfValue(publisher,\"name\",trimmedName);withIfValue(publisher,\"url\",trimmedPublisherUrl);if(Object.keys(publisher).length>1){blogPosting.publisher=publisher;}}const breadcrumbItems=[{name:\"Home\",item:trimmedHomeUrl},{name:\"Blog\",item:trimmedBlogUrl},{name:trimmedTitle,item:resolvedArticleUrl}].filter(entry=>entry.name.trim()&&entry.item.trim()).map((entry,index)=>({\"@type\":\"ListItem\",position:index+1,name:entry.name,item:entry.item}));const graph=[blogPosting];if(breadcrumbItems.length>0){graph.push({\"@type\":\"BreadcrumbList\",itemListElement:breadcrumbItems});}return JSON.stringify({\"@context\":\"https://schema.org\",\"@graph\":graph});},[mode,name,trimmedUrl,resolvedArticleUrl,title,datePublished,authorName,description,imageUrl,breadcrumbHomeUrl,breadcrumbBlogUrl,githubUrl,publisherUrl]);useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;const existing=document.getElementById(scriptId);if(existing&&existing.parentNode){existing.parentNode.removeChild(existing);}const script=document.createElement(\"script\");script.id=scriptId;script.type=\"application/ld+json\";script.text=jsonLdString;document.head.appendChild(script);return()=>{if(script.parentNode){script.parentNode.removeChild(script);}};},[scriptId,jsonLdString]);return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"relative\",width:0,height:0,overflow:\"hidden\",pointerEvents:\"none\"}});}addPropertyControls(StructuredData,{schemaMode:{type:ControlType.Enum,title:\"Schema\",options:[\"Organization\",\"BlogPosting\"],optionTitles:[\"Organization\",\"BlogPosting\"],defaultValue:\"Organization\"},name:{type:ControlType.String,title:\"Name\",defaultValue:\"Framer\"},url:{type:ControlType.String,title:\"URL\",defaultValue:\"https://www.framer.com\"},articleSlug:{type:ControlType.String,title:\"Article Slug\",defaultValue:\"example-article\"},publisherUrl:{type:ControlType.String,title:\"Publisher URL\",defaultValue:\"https://www.framer.com\"},githubUrl:{type:ControlType.String,title:\"GitHub URL\",defaultValue:\"https://github.com/framer\"},title:{type:ControlType.String,title:\"Title\",defaultValue:\"Example Article\"},datePublished:{type:ControlType.Date,title:\"Published\",defaultValue:\"2026-01-01T00:00:00.000Z\"},authorName:{type:ControlType.String,title:\"Author\",defaultValue:\"Framer Team\"},description:{type:ControlType.String,title:\"Description\",defaultValue:\"\",displayTextArea:true},imageUrl:{type:ControlType.Image,title:\"Image URL\"},breadcrumbHomeUrl:{type:ControlType.String,title:\"Home URL\",defaultValue:\"https://www.framer.com\"},breadcrumbBlogUrl:{type:ControlType.String,title:\"Blog URL\",defaultValue:\"https://www.framer.com/blog\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StructuredData\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StructuredData.map"],"mappings":"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"}