{"version":3,"file":"EmphasisParagraph.CptCSIcs.mjs","names":["useMemo","__esmMin","pe","init_npm_react_18_3_1","c","init_jsx_runtime","addPropertyControls","init_framer_CcSHI2rN","ControlType","EmphasisParagraph","props","parts","terms","bold","t","b","a","text","esc","re","s","weight","align","p","boldWeight","boldColor","i","init_EmphasisParagraph"],"sources":["https:/framerusercontent.com/modules/VDSHsHnlaRoMGzrp9lcK/qlBY3BqkDaokGcQR4pZc/EmphasisParagraph.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useMemo}from\"react\";/**\n * Emphasis Paragraph — body copy with named terms picked out in a heavier\n * weight (and, by default, a brighter colour).\n *\n * WHY THIS EXISTS: Framer's native text node cannot carry a bold run that the\n * MCP plugin can express. Passing inline `<strong>` markup makes the plugin\n * LIFT each tagged word out into its own sibling Text node, leaving holes in\n * the sentence (\"Connect Bigdata.com to , , or  in one click.\"). So partial\n * emphasis has to come from a component.\n *\n * Defaults match the site's `/body-inv` style exactly, measured off the live\n * page: Hanken Grotesk 18px, weight 300, line-height 27.9px (1.55),\n * rgb(190,193,201). Because the base weight is only 300, emphasis needs both\n * more weight and more brightness to register — 600 alone on a muted grey\n * reads as an accident rather than intent.\n *\n * `bold` is a comma-separated list of terms. Matching is longest-first so a\n * term that contains another (\"ChatGPT\" vs \"Chat\") can't be partially eaten,\n * and case-insensitive but rendered from the source text so casing is kept.\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 520\n * @framerIntrinsicHeight 112\n * @framerDisableUnlink\n */export default function EmphasisParagraph(props){const{text=\"\",bold=\"\",color=\"rgb(190,193,201)\",boldColor=\"rgb(255,253,245)\",fontSize=18,weight=300,boldWeight=600,lineHeight=1.55,align=\"left\"}=props;const parts=useMemo(()=>{const terms=(bold||\"\").split(\",\").map(t=>t.trim()).filter(Boolean).sort((a,b)=>b.length-a.length)// longest first: \"ChatGPT\" before \"Chat\"\n;if(!terms.length||!text)return[{s:text,hit:false}];const esc=terms.map(t=>t.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\"));const re=new RegExp(`(${esc.join(\"|\")})`,\"gi\");return text.split(re).filter(s=>s!==\"\").map(s=>({s,hit:terms.some(t=>t.toLowerCase()===s.toLowerCase())}));},[text,bold]);return /*#__PURE__*/_jsx(\"p\",{style:{margin:0,width:\"100%\",fontFamily:'\"Hanken Grotesk\", \"Hanken Grotesk Placeholder\", sans-serif',fontSize,fontWeight:weight,lineHeight,color,textAlign:align,...props.style},children:parts.map((p,i)=>p.hit?/*#__PURE__*/_jsx(\"strong\",{style:{fontWeight:boldWeight,color:boldColor},children:p.s},i):/*#__PURE__*/_jsx(\"span\",{children:p.s},i))});}addPropertyControls(EmphasisParagraph,{text:{type:ControlType.String,title:\"Text\",displayTextArea:true,defaultValue:\"\"},bold:{type:ControlType.String,title:\"Emphasise\",description:\"Comma-separated terms to render in the heavier weight.\",defaultValue:\"\"},color:{type:ControlType.Color,title:\"Colour\",defaultValue:\"rgb(190,193,201)\"},boldColor:{type:ControlType.Color,title:\"Emphasis colour\",defaultValue:\"rgb(255,253,245)\"},fontSize:{type:ControlType.Number,title:\"Size\",defaultValue:18,min:12,max:34},weight:{type:ControlType.Number,title:\"Weight\",defaultValue:300,min:100,max:700,step:100},boldWeight:{type:ControlType.Number,title:\"Emphasis weight\",defaultValue:600,min:300,max:900,step:100},lineHeight:{type:ControlType.Number,title:\"Line height\",defaultValue:1.55,min:1,max:2.2,step:.05},align:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],defaultValue:\"left\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"EmphasisParagraph\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"112\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"auto\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"520\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./EmphasisParagraph.map"],"mappings":"A,0KAyBG,SAAwBS,EAAkB,EAAM,CAAC,GAAK,CAAC,OAAK,GAAG,OAAK,GAAG,QAAM,mBAAmB,YAAU,mBAAmB,WAAS,GAAG,SAAO,IAAI,aAAW,IAAI,aAAW,KAAK,QAAM,QAAQC,EAAYC,EAAMX,MAAY,CAAC,IAAMY,GAAOC,GAAM,GAAA,CAAI,MAAM,GAAG,CAAC,CAAC,IAAI,GAAGC,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,EAAE,IAAIC,EAAE,OAAOC,EAAE,MAAM,EAClU,GAAG,CAACJ,EAAM,QAAQ,CAACK,EAAK,MAAM,CAAC,CAAC,EAAEA,EAAK,IAAI,EAAK,CAAC,EAAE,IAAMC,EAAIN,EAAM,IAAI,GAAGE,EAAE,QAAQ,sBAAsB,MAAM,CAAC,EAAQK,EAAO,OAAO,IAAID,EAAI,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,OAAOD,EAAK,MAAME,CAAE,CAAC,CAAC,OAAO,GAAGC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAE,IAAIR,EAAM,KAAK,GAAGE,EAAE,YAAY,IAAIM,EAAE,YAAY,CAAC,CAAC,EAAE,CAAE,EAAE,CAACH,EAAKJ,CAAI,CAAC,EAAE,MAAoB,gBAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,OAAO,WAAW,6DAA6D,WAAS,WAAWQ,EAAO,aAAW,QAAM,UAAUC,EAAM,GAAGZ,EAAM,KAAK,EAAE,SAASC,EAAM,KAAK,EAAE,IAAIY,EAAE,IAAiB,gBAAK,SAAS,CAAC,MAAM,CAAC,WAAWC,EAAW,MAAMC,CAAS,EAAE,SAASF,EAAE,CAAC,EAAEG,CAAC,EAAe,gBAAK,OAAO,CAAC,SAASH,EAAE,CAAC,EAAEG,CAAC,CAAC,CAAC,CAAC,CAAE,C,0CAACpB,EAAoBG,EAAkB,CAAC,KAAK,CAAC,KAAKD,EAAY,OAAO,MAAM,OAAO,gBAAgB,GAAK,aAAa,EAAE,EAAE,KAAK,CAAC,KAAKA,EAAY,OAAO,MAAM,YAAY,YAAY,yDAAyD,aAAa,EAAE,EAAE,MAAM,CAAC,KAAKA,EAAY,MAAM,MAAM,SAAS,aAAa,kBAAkB,EAAE,UAAU,CAAC,KAAKA,EAAY,MAAM,MAAM,kBAAkB,aAAa,kBAAkB,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,MAAM,OAAO,aAAa,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,OAAO,CAAC,KAAKA,EAAY,OAAO,MAAM,SAAS,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,kBAAkB,aAAa,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG,EAAE,WAAW,CAAC,KAAKA,EAAY,OAAO,MAAM,cAAc,aAAa,KAAK,IAAI,EAAE,IAAI,IAAI,KAAK,GAAG,EAAE,MAAM,CAAC,KAAKA,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,OAAO,SAAS,OAAO,EAAE,aAAa,MAAM,CAAC,CAAC,C"}