{"version":3,"file":"StructuredData.CDNPiCot.mjs","names":[],"sources":["https:/framerusercontent.com/modules/DA2578Lk13sI6dunwd3i/rnZZ9bBiWo9fQuwIVOof/StructuredData.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";// schema.org JSON-LD for keenable.ai, rendered into the page's static HTML.\n// The Organization node is the one app.keenable.ai carries (same @id, name, url\n// and logo), so both hosts describe one company. Only facts the pages show are\n// marked up.\nconst SITE=\"https://keenable.ai/\";const LOGO=\"https://framerusercontent.com/images/OnMsGFmAf0nM3frNRGKVMIjywao.png\";const ORGANIZATION={\"@type\":\"Organization\",\"@id\":`${SITE}#organization`,name:\"Keenable\",url:SITE,logo:LOGO};const HOMEPAGE_GRAPH={\"@context\":\"https://schema.org\",\"@graph\":[{...ORGANIZATION,alternateName:\"Keenable.ai\",description:\"Keenable is independent web search infrastructure for AI: our own crawler, index and ranking, and it gets better the more agents use it.\",founder:[{\"@type\":\"Person\",name:\"Andrey Styskin\",jobTitle:\"Co-founder and CEO\",sameAs:[\"https://www.linkedin.com/in/andrey-styskin/\",\"https://x.com/styskin\"]},{\"@type\":\"Person\",name:\"Matthias Petri\",jobTitle:\"Co-founder and Chief Scientist\"}],sameAs:[\"https://x.com/KeenableAI\",\"https://www.linkedin.com/company/keenableai/\"]},{\"@type\":\"WebSite\",\"@id\":`${SITE}#website`,url:SITE,name:\"Keenable\",publisher:{\"@id\":ORGANIZATION[\"@id\"]},inLanguage:\"en\"}]};// `<` is escaped so no field value can close the script element early.\nfunction JsonLd({data}){const json=JSON.stringify(data).replace(/</g,\"\\\\u003c\");return /*#__PURE__*/_jsx(\"script\",{type:\"application/ld+json\",dangerouslySetInnerHTML:{__html:json}});}/**\n * Block 1: who Keenable is. Homepage only.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export function HomepageSchema(){return /*#__PURE__*/_jsx(JsonLd,{data:HOMEPAGE_GRAPH});}// \"Ilya Gusev, Matthias Petri, and Andrey Styskin\" → three authors. A name with\n// no space (\"TechCrunch\") or ending in \"Team\" (\"Keenable Team\") is an\n// organization, everything else a person — as the post page shows it.\nfunction authors(byline){return byline.split(/,\\s*(?:and\\s+)?|\\s+and\\s+/).map(name=>name.trim()).filter(Boolean).map(name=>!name.includes(\" \")||/\\bTeam$/.test(name)?{\"@type\":\"Organization\",name}:{\"@type\":\"Person\",name});}// The CMS date carries no time of day; the calendar day is what the page shows.\nfunction isoDay(value){if(!value)return undefined;const date=new Date(String(value));return Number.isNaN(date.getTime())?undefined:date.toISOString().slice(0,10);}function imageUrl(value){const src=typeof value===\"string\"?value:value?.src;return src?src.split(\"?\")[0]:undefined;}/**\n * Block 2: who wrote the post and when. Blog post CMS template only.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export function BlogPostingSchema(props){const{title,description,author,date,cover,slug}=props;if(!title||!slug)return null;const url=`${SITE}blog/${slug}`;const image=imageUrl(cover);const data={\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",mainEntityOfPage:{\"@type\":\"WebPage\",\"@id\":url},headline:title,...description?{description}:{},...image?{image:[image]}:{},...isoDay(date)?{datePublished:isoDay(date)}:{},...author?{author:authors(author)}:{},publisher:ORGANIZATION,inLanguage:\"en\"};return /*#__PURE__*/_jsx(JsonLd,{data:data});}addPropertyControls(BlogPostingSchema,{title:{type:ControlType.String,title:\"Title\"},description:{type:ControlType.String,title:\"Description\"},author:{type:ControlType.String,title:\"Author\"},date:{type:ControlType.Date,title:\"Date\"},cover:{type:ControlType.ResponsiveImage,title:\"Cover\"},slug:{type:ControlType.String,title:\"Slug\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"HomepageSchema\":{\"type\":\"reactComponent\",\"name\":\"HomepageSchema\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"BlogPostingSchema\":{\"type\":\"reactComponent\",\"name\":\"BlogPostingSchema\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StructuredData.map"],"mappings":"4JAKA,SAAS,EAAO,CAAC,QAAM,CAAyD,OAAoB,EAAK,SAAS,CAAC,KAAK,sBAAsB,wBAAwB,CAAC,OAApI,KAAK,UAAU,CAAI,CAAC,CAAC,QAAQ,KAAK,SAA4G,CAAC,CAAC,CAAC,CAAE,CAKnL,SAAgB,GAAgB,CAAC,OAAoB,EAAK,EAAO,CAAC,KAAK,CAAc,CAAC,CAAE,CAG3F,SAAS,EAAQ,EAAO,CAAC,OAAO,EAAO,MAAM,2BAA2B,CAAC,CAAC,IAAI,GAAM,EAAK,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,IAAI,GAAM,CAAC,EAAK,SAAS,GAAG,GAAG,UAAU,KAAK,CAAI,EAAE,CAAC,QAAQ,eAAe,MAAI,EAAE,CAAC,QAAQ,SAAS,MAAI,CAAC,CAAE,CAC5N,SAAS,EAAO,EAAM,CAAC,GAAG,CAAC,EAAM,OAAiB,IAAM,EAAK,IAAI,KAAK,OAAO,CAAK,CAAC,EAAE,OAAO,OAAO,MAAM,EAAK,QAAQ,CAAC,EAAE,IAAA,GAAU,EAAK,YAAY,CAAC,CAAC,MAAM,EAAE,EAAE,CAAE,CAAC,SAAS,EAAS,EAAM,CAAC,IAAM,EAAI,OAAO,GAAQ,SAAS,EAAM,GAAO,IAAI,OAAO,EAAI,EAAI,MAAM,GAAG,CAAC,CAAC,GAAG,IAAA,EAAU,CAKnR,SAAgB,EAAkB,EAAM,CAAC,GAAK,CAAC,QAAM,cAAY,SAAO,OAAK,QAAM,QAAM,EAAM,GAAG,CAAC,GAAO,CAAC,EAAK,OAAO,KAAK,IAAM,EAAI,GAAG,EAAK,OAAO,IAAa,EAAM,EAAS,CAAK,EAA4T,OAAoB,EAAK,EAAO,CAAC,KAAK,CAApV,WAAW,qBAAqB,QAAQ,cAAc,iBAAiB,CAAC,QAAQ,UAAU,MAAM,CAAG,EAAE,SAAS,EAAM,GAAG,EAAY,CAAC,aAAW,EAAE,CAAC,EAAE,GAAG,EAAM,CAAC,MAAM,CAAC,CAAK,CAAC,EAAE,CAAC,EAAE,GAAG,EAAO,CAAI,EAAE,CAAC,cAAc,EAAO,CAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAO,CAAC,OAAO,EAAQ,CAAM,CAAC,EAAE,CAAC,EAAE,UAAU,EAAa,WAAW,IAA+C,CAAC,CAAC,CAAE,uBAnBxf,IAAoD,EAIxF,EAAK,uBAA+G,EAAa,CAAC,QAAQ,eAAe,MAAM,GAAG,EAAK,eAAe,KAAK,WAAW,IAAI,EAAK,KAAK,sEAAI,EAAQ,EAAe,CAAC,WAAW,qBAAqB,SAAS,CAAC,CAAC,GAAG,EAAa,cAAc,cAAc,YAAY,2IAA2I,QAAQ,CAAC,CAAC,QAAQ,SAAS,KAAK,iBAAiB,SAAS,qBAAqB,OAAO,CAAC,8CAA8C,uBAAuB,CAAC,EAAE,CAAC,QAAQ,SAAS,KAAK,iBAAiB,SAAS,gCAAgC,CAAC,EAAE,OAAO,CAAC,2BAA2B,8CAA8C,CAAC,EAAE,CAAC,QAAQ,UAAU,MAAM,GAAG,EAAK,UAAU,IAAI,EAAK,KAAK,WAAW,UAAU,CAAC,MAAM,EAAa,MAAM,EAAE,WAAW,IAAI,CAAC,CAAC,EAenY,EAAoB,EAAkB,CAAC,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,EAAE,YAAY,CAAC,KAAK,EAAY,OAAO,MAAM,aAAa,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,EAAE,MAAM,CAAC,KAAK,EAAY,gBAAgB,MAAM,OAAO,EAAE,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,MAAM,CAAC,CAAC"}