{"version":3,"file":"StructuredData.D9bmQLoL.mjs","names":["__esmMin","init_jsx_runtime","c","init_framer_D6uXRwWs","addPropertyControls","ControlType","init_i18n","trStr","dictFor","useLang","StructuredData","props","lang","D","T","v","data","kind","links","sameAs","s","base","orgUrl","profiles","PROFILES","orgName","orgDescription","orgLogo","FAQS","f","p","appName","appCategory","FEATURES","priceLow","json","init_StructuredData"],"sources":["https:/framerusercontent.com/modules/lkg0xR9uCaQnupimS7Lu/pvPC2vMzXcs4Z7V83Wn7/StructuredData.js"],"sourcesContent":["// Emits JSON-LD structured data. This is the whole AEO gap: the published site currently has NO\n// structured data on any page, so answer engines can read Re-skill but cannot reliably cite it.\n//\n// WHY THIS WORKS THROUGH A CODE COMPONENT: JSON-LD does not have to live in <head>. Google\n// explicitly supports it anywhere in the document, including <body>. Framer's Site Settings custom\n// code panel is unreachable through the plugin API, but a rendered <script type=\"application/ld+json\">\n// is server-rendered by Framer and parsed the same way. Same trick as GlobalStyles.\n//\n// Renders nothing visible: 0×0, aria-hidden, pointer-events none. Position on the canvas is\n// irrelevant.\n//\n// PLACEMENT\n//   kind=\"organization\" → once, on the homepage. Identifies the company sitewide.\n//   kind=\"faq\"          → on the homepage, beside the FAQ section. Highest-value single addition,\n//                         because the answers already exist and address real buyer questions.\n//   kind=\"software\"     → on /pricing.\n//\n// FAQ LIST IS CANONICAL IN CODE (15 Sep 2026): array props cannot be written through the plugin API,\n// so the homepage instance would keep a stale list forever. FAQS below is what ships. Keep it in step\n// with the visible homepage FAQ, which is a native Framer component edited by hand.\n//\n// ⚠️ Every value here is a public claim in machine-readable form, which is exactly what gets\n// quoted back. Do not put anything in it that is not already true and approved on the site.\n// Prices in particular must match /pricing exactly.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useLang,dictFor,trStr}from\"https://framerusercontent.com/modules/ZICnxbSKm28rdWdBUiaI/nNzUWIDKLgQPqf4A2Cqc/i18n.js\";// 4 Oct 2026: the FAQ schema mirrors the visible homepage FAQ word for word (LmsSecurity.tsx FAQS).\n// Google requires FAQ structured data to match what the page shows. Change both together.\n// 12 Nov 2026: the homepage has no FAQ any more. FAQ data now comes from FaqLd (ProductKit.tsx) inside\n// each page that shows questions, built from the same array, so it always matches the page.\nconst FAQS=[];// Public profiles, merged with whatever the instance lists.\nconst PROFILES=[\"https://www.linkedin.com/company/re-skill-io\",\"https://www.youtube.com/@team_re-skill\",\"https://www.instagram.com/reskill.io/\"];// Only what the site already says, as plain facts for search and answer engines.\nconst FEATURES=[\"Shows which team is behind on which target, from the organisation's own sources, connected read-only\",\"Training from your documents: lessons, narrated video, quizzes and slides\",\"SCORM 1.2, SCORM 2004, cmi5 and xAPI for the LMS you already run\",\"Arabic, Russian, English and any language you request\",\"A named person approves before anything reaches an employee\",\"Cloud by default; VPC and on-premise on Enterprise, on request\"];/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 0\n * @framerIntrinsicHeight 0\n */export default function StructuredData(props){const{kind=\"organization\",orgName,orgUrl,orgLogo,orgDescription,sameAs,appName,appCategory,priceLow,priceCurrency}=props;// On /ru/ and /ar/ the FAQ answers and descriptions match the translated copy on the page.\nconst lang=useLang();const D=dictFor(lang);const T=v=>D&&v?trStr(v,D):v;let data=null;if(kind===\"organization\"){const links=(sameAs||\"\").split(\",\").map(s=>s.trim()).filter(Boolean);const base=(orgUrl||\"\").replace(/\\/$/,\"\");const profiles=Array.from(new Set([...links,...PROFILES]));data={\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":base+\"/#org\",name:orgName,url:orgUrl,description:T(orgDescription),...orgLogo?{logo:orgLogo}:{},sameAs:profiles,areaServed:[\"Saudi Arabia\",\"United Arab Emirates\",\"Gulf Cooperation Council\",\"Central Asia\"],knowsAbout:[\"Workforce training\",\"Compliance training\",\"Arabic e-learning\",\"AI agents\",\"SCORM\",\"cmi5\",\"xAPI\"],contactPoint:{\"@type\":\"ContactPoint\",contactType:\"sales\",url:base+\"/contact\"}},{\"@type\":\"WebSite\",\"@id\":base+\"/#website\",url:orgUrl,name:orgName,inLanguage:[\"en\",\"ru\"],publisher:{\"@id\":base+\"/#org\"}}]};}else if(kind===\"faq\"&&FAQS.length){data={\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",inLanguage:lang,mainEntity:FAQS.map(f=>({\"@type\":\"Question\",name:T(f.question),acceptedAnswer:{\"@type\":\"Answer\",text:T(f.answer)}}))};}else if(kind===\"article\"){// 4 Oct 2026: blog posts and customer stories. Bind Headline, Description, Image, Published and\n// Author to the CMS fields on the detail page so every item carries its own BlogPosting.\nconst p=props;data={\"@context\":\"https://schema.org\",\"@type\":\"BlogPosting\",headline:p.headline||undefined,description:p.articleDescription||undefined,image:p.articleImage?.src||undefined,datePublished:p.published||undefined,author:p.author?{\"@type\":\"Person\",name:p.author}:{\"@type\":\"Organization\",name:orgName},publisher:{\"@type\":\"Organization\",name:orgName,url:orgUrl,logo:orgLogo||undefined}};}else if(kind===\"software\"){data={\"@context\":\"https://schema.org\",\"@type\":\"SoftwareApplication\",name:appName,applicationCategory:appCategory,operatingSystem:\"Web\",description:T(\"Shows an organisation what to train on, delivers training or agents, and reports whether it moved the business. Exports SCORM, cmi5 or xAPI.\"),featureList:FEATURES,offers:{\"@type\":\"AggregateOffer\",lowPrice:priceLow,highPrice:\"550\",offerCount:3,priceCurrency:priceCurrency,url:`${(orgUrl||\"\").replace(/\\/$/,\"\")}/pricing`}};}if(!data)return null;// JSON.stringify escapes quotes correctly; the </script> guard prevents an early tag close.\nconst json=JSON.stringify(data).replace(/<\\/script/gi,\"<\\\\/script\");return /*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":\"true\",style:{position:\"relative\",width:0,height:0,overflow:\"hidden\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"script\",{type:\"application/ld+json\",dangerouslySetInnerHTML:{__html:json}})});}addPropertyControls(StructuredData,{kind:{type:ControlType.Enum,title:\"Schema\",defaultValue:\"organization\",options:[\"organization\",\"faq\",\"software\",\"article\"],optionTitles:[\"Organization\",\"FAQ page\",\"Software / pricing\",\"Article (CMS)\"]},headline:{type:ControlType.String,title:\"Headline\",defaultValue:\"\",hidden:p=>p.kind!==\"article\"},articleDescription:{type:ControlType.String,title:\"Summary\",defaultValue:\"\",hidden:p=>p.kind!==\"article\"},articleImage:{type:ControlType.ResponsiveImage,title:\"Article image\",hidden:p=>p.kind!==\"article\"},published:{type:ControlType.Date,title:\"Published\",hidden:p=>p.kind!==\"article\"},author:{type:ControlType.String,title:\"Author\",defaultValue:\"\",hidden:p=>p.kind!==\"article\"},orgName:{type:ControlType.String,title:\"Name\",defaultValue:\"Re-skill\"},orgUrl:{type:ControlType.String,title:\"URL\",defaultValue:\"https://re-skill.io\"},orgLogo:{type:ControlType.String,title:\"Logo URL\",defaultValue:\"\"},orgDescription:{type:ControlType.String,title:\"Description\",displayTextArea:true,defaultValue:\"Re-skill turns the documents an organisation has already written into finished, reviewed courses to one standard, in Arabic, Russian, English or any language requested, packaged for the LMS it already runs.\",hidden:p=>p.kind!==\"organization\"},sameAs:{type:ControlType.String,title:\"Profiles\",placeholder:\"comma separated URLs\",defaultValue:\"https://www.linkedin.com/company/re-skill-io\",hidden:p=>p.kind!==\"organization\"},appName:{type:ControlType.String,title:\"Product\",defaultValue:\"Re-skill\",hidden:p=>p.kind!==\"software\"},appCategory:{type:ControlType.String,title:\"Category\",defaultValue:\"BusinessApplication\",hidden:p=>p.kind!==\"software\"},priceLow:{type:ControlType.String,title:\"From\",defaultValue:\"0\",hidden:p=>p.kind!==\"software\"},priceCurrency:{type:ControlType.String,title:\"Currency\",defaultValue:\"USD\",hidden:p=>p.kind!==\"software\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StructuredData\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"0\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicHeight\":\"0\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StructuredData.map"],"mappings":"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"}