{"version":3,"file":"FAQSchema.DZVLQPff.mjs","names":["__esmMin","init_npm_react_18_3_1","init_jsx_runtime","K","c","addPropertyControls","init_framer_BptO5W0R","slugFrom","last","page","htmlToText","html","ENTITIES","m","n","nodeToText","node","el","inner","FAQSchema","mainEntity","items","clean","it","x","slug","base","prefix","SITE","link","json","init_FAQSchema","s","ControlType"],"sources":["https:/framerusercontent.com/modules/e76NngQFpbgEcvP4yaQ5/dWEzUFLOxYbAAgrJh8lX/FAQSchema.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const SITE=\"https://bensonhurstdentalcare.com\";// The page link is bound to the CMS Slug, so the slug is read from the last path segment of the resolved link.\nfunction slugFrom(page){const path=(page||\"\").split(/[?#]/)[0].replace(/\\/+$/,\"\");const last=path.split(\"/\").pop()||\"\";return/^[a-z0-9-]+$/.test(last)?last:\"\";}const ENTITIES={\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"',\"&#39;\":\"'\",\"&apos;\":\"'\",\"&nbsp;\":\" \"};function htmlToText(html){return html.replace(/<br\\s*\\/?>/gi,\" \").replace(/<\\/(p|div|li|h[1-6])>/gi,\" \").replace(/<[^>]+>/g,\"\").replace(/&(amp|lt|gt|quot|#39|apos|nbsp);/g,m=>ENTITIES[m]??m).replace(/&#(\\d+);/g,(_,n)=>String.fromCharCode(Number(n)));}function nodeToText(node){if(node==null||typeof node===\"boolean\")return\"\";if(typeof node===\"string\")return/<[a-z][^>]*>/i.test(node)||/&[a-z#0-9]+;/i.test(node)?htmlToText(node):node;if(typeof node===\"number\")return String(node);if(Array.isArray(node))return node.map(nodeToText).join(\"\");if(/*#__PURE__*/React.isValidElement(node)){const el=node;const inner=nodeToText(el.props?.children);return typeof el.type===\"string\"&&/^(p|div|li|h[1-6]|br)$/.test(el.type)?inner+\" \":inner;}return\"\";}const clean=s=>s.replace(/\\s+/g,\" \").trim();/**\n * Outputs FAQPage JSON-LD for the FAQ items it receives. Renders nothing visible.\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function FAQSchema({items=[],page=\"\",prefix=\"\",node=\"#webpage\"}){const mainEntity=(items||[]).map(it=>({q:clean(nodeToText(it?.question)),a:clean(nodeToText(it?.answer))})).filter(x=>x.q&&x.a).map(x=>({\"@type\":\"Question\",name:x.q,acceptedAnswer:{\"@type\":\"Answer\",text:x.a}}));if(mainEntity.length===0)return null;const slug=slugFrom(page);const base=slug&&prefix?`${SITE}/${prefix.replace(/^\\/+|\\/+$/g,\"\")}/${slug}`:\"\";const link=base?{\"@id\":`${base}#faq`,isPartOf:{\"@id\":`${base}${node||\"#webpage\"}`}}:{};const json=JSON.stringify({\"@context\":\"https://schema.org\",\"@type\":\"FAQPage\",...link,mainEntity}).replace(/</g,\"\\\\u003c\");return /*#__PURE__*/_jsx(\"script\",{type:\"application/ld+json\",dangerouslySetInnerHTML:{__html:json}});}FAQSchema.displayName=\"FAQ Schema (JSON-LD)\";addPropertyControls(FAQSchema,{page:{type:ControlType.Link,title:\"Page (bound to Slug)\"},prefix:{type:ControlType.String,title:\"Path prefix\",placeholder:\"/our-doctors\"},node:{type:ControlType.String,title:\"Page node\",defaultValue:\"#webpage\"},items:{type:ControlType.Array,title:\"FAQ\",control:{type:ControlType.Object,controls:{question:{type:ControlType.String,title:\"Question\"},answer:{type:ControlType.String,title:\"Answer\",displayTextArea:true}}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FAQSchema\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FAQSchema.map"],"mappings":"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"}