{"version":3,"file":"Dropcap.4B8ksO2J.mjs","names":["useMemo"],"sources":["https:/framerusercontent.com/modules/HQVH3HEKVROpOnDJl2Io/yjAkdmHOopKiXGsUZzDj/Dropcap.js"],"sourcesContent":["// Dropcap component that capitalizes the first letter with configurable line height\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useMemo}from\"react\";/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function Dropcap(props){const{text,lines,mainFont,dropcapFont,textColor,dropcapColor,richMode,dropcapLetter,richText}=props;const markdownToHtml=useMemo(()=>{return input=>{const escaped=(input??\"\").replace(/&/g,\"&amp;\").replace(/</g,\"&lt;\").replace(/>/g,\"&gt;\").replace(/\\\"/g,\"&quot;\").replace(/'/g,\"&#039;\");const withLineBreaks=escaped.replace(/\\r\\n|\\r|\\n/g,\"<br />\");// Bold: **text**\nconst withBold=withLineBreaks.replace(/\\*\\*(.+?)\\*\\*/g,\"<strong>$1</strong>\");// Italic: *text* (avoid matching inside ** **)\nconst withItalic=withBold.replace(/(^|[^*])\\*(?!\\s)(.+?)(?!\\s)\\*(?!\\*)/g,\"$1<em>$2</em>\");return withItalic;};},[]);const isRich=richMode===\"rich\";const effectiveText=isRich?richText:text;const{firstLetter,restOfText}=useMemo(()=>{if(isRich){const letter=(dropcapLetter||\"\").trim().slice(0,1)||\"\";return{firstLetter:letter.toUpperCase(),restOfText:richText||\"\"};}if(!text||text.length===0){return{firstLetter:\"\",restOfText:\"\"};}return{firstLetter:text.charAt(0).toUpperCase(),restOfText:text.slice(1)};},[text,isRich,dropcapLetter,richText]);const dropcapSize=useMemo(()=>{const baseFontSize=parseFloat(mainFont.fontSize)||16;const lineHeight=parseFloat(mainFont.lineHeight)||1.3;// Calculate the actual line height in pixels\nconst lineHeightPx=baseFontSize*lineHeight;// Dropcap should be exactly the height of the specified number of lines\n// Increased size for better visual impact\nreturn lineHeightPx*lines*1.1;},[mainFont.fontSize,mainFont.lineHeight,lines]);const dropcapMarginRight=useMemo(()=>{return lines===2?\"4px\":\"8px\";},[lines]);const isFixedWidth=props?.style&&props.style.width===\"100%\";if(!effectiveText||effectiveText.length===0){return /*#__PURE__*/_jsxs(\"div\",{style:{...props.style,position:\"relative\",display:\"block\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{float:\"left\",fontSize:`${dropcapSize}px`,lineHeight:.8,marginTop:\"4px\",marginRight:dropcapMarginRight,color:dropcapColor,fontFamily:dropcapFont.fontFamily,fontWeight:dropcapFont.fontWeight,fontStyle:dropcapFont.fontStyle,letterSpacing:dropcapFont.letterSpacing,opacity:.5},children:\"O\"}),/*#__PURE__*/_jsx(\"span\",{style:{color:textColor,fontSize:mainFont.fontSize,fontFamily:mainFont.fontFamily,fontWeight:mainFont.fontWeight,fontStyle:mainFont.fontStyle,lineHeight:mainFont.lineHeight,letterSpacing:mainFont.letterSpacing,textAlign:mainFont.textAlign,opacity:.5},children:\"nce upon a time, a bold letter in Framer grew big, proud, and stylish. Here, the mighty dropcap made every story start with flair and confidence.\"})]});}return /*#__PURE__*/_jsxs(\"div\",{style:{...props.style,position:\"relative\",display:\"block\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{float:\"left\",fontSize:`${dropcapSize}px`,lineHeight:.8,marginTop:\"4px\",marginRight:dropcapMarginRight,color:dropcapColor,fontFamily:dropcapFont.fontFamily,fontWeight:dropcapFont.fontWeight,fontStyle:dropcapFont.fontStyle,letterSpacing:dropcapFont.letterSpacing},children:firstLetter}),isRich?/*#__PURE__*/_jsx(\"span\",{style:{color:textColor,fontSize:mainFont.fontSize,fontFamily:mainFont.fontFamily,fontWeight:mainFont.fontWeight,fontStyle:mainFont.fontStyle,lineHeight:mainFont.lineHeight,letterSpacing:mainFont.letterSpacing,textAlign:mainFont.textAlign},dangerouslySetInnerHTML:{__html:markdownToHtml(restOfText)}}):/*#__PURE__*/_jsx(\"span\",{style:{color:textColor,fontSize:mainFont.fontSize,fontFamily:mainFont.fontFamily,fontWeight:mainFont.fontWeight,fontStyle:mainFont.fontStyle,lineHeight:mainFont.lineHeight,letterSpacing:mainFont.letterSpacing,textAlign:mainFont.textAlign},children:restOfText})]});}addPropertyControls(Dropcap,{richMode:{type:ControlType.Enum,title:\"Text Mode\",options:[\"plain\",\"rich\"],optionTitles:[\"Plain\",\"Rich\"],defaultValue:\"plain\",displaySegmentedControl:true},dropcapLetter:{type:ControlType.String,title:\"Dropcap\",defaultValue:\"L\",hidden:({richMode})=>richMode!==\"rich\"},richText:{type:ControlType.String,title:\"Rich Text\",defaultValue:\"orem ipsum dolor sit amet.\\n\\nUse **bold** and *italics*, plus empty lines.\",displayTextArea:true,hidden:({richMode})=>richMode!==\"rich\"},text:{type:ControlType.String,title:\"Text\",defaultValue:\"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris.\",displayTextArea:true,hidden:({richMode})=>richMode===\"rich\"},lines:{type:ControlType.Enum,title:\"Dropcap Lines\",options:[2,3],optionTitles:[\"2 Lines\",\"3 Lines\"],defaultValue:2,displaySegmentedControl:true},mainFont:{type:ControlType.Font,title:\"Main Text Font\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},dropcapFont:{type:ControlType.Font,title:\"Dropcap Font\",defaultValue:{variant:\"Bold\",letterSpacing:\"-0.02em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},dropcapColor:{type:ControlType.Color,title:\"Dropcap Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Dropcap\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Dropcap.map"],"mappings":"kLAIG,SAAwB,EAAQ,EAAM,CAAC,GAAK,CAAC,OAAK,QAAM,WAAS,cAAY,YAAU,eAAa,WAAS,gBAAc,YAAU,EAAY,EAAeA,MAAoB,IAAuB,GAAO,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,MAAM,SAAS,CAAC,QAAQ,KAAK,SAAS,CAA8B,QAAQ,cAAc,SAAS,CACtW,QAAQ,iBAAiB,sBAAsB,CACnD,QAAQ,uCAAuC,gBAAgB,CAAuB,EAAE,CAAC,CAAO,EAAO,IAAW,OAAa,EAAc,EAAO,EAAS,EAAU,CAAC,cAAY,cAAYA,MAAgB,EAAqE,CAAC,cAAhD,GAAe,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,EAAE,IAA6B,aAAa,CAAC,WAAW,GAAU,GAAG,CAAK,CAAC,GAAM,EAAK,SAAS,EAAS,CAAC,YAAY,GAAG,WAAW,GAAG,CAAQ,CAAC,YAAY,EAAK,OAAO,EAAE,CAAC,aAAa,CAAC,WAAW,EAAK,MAAM,EAAE,CAAC,CAAG,CAAC,EAAK,EAAO,EAAc,EAAS,CAAC,CAAO,EAAYA,OAAgC,WAAW,EAAS,SAAS,EAAE,KAAoB,WAAW,EAAS,WAAW,EAAE,KAGhpB,EAAM,IAAM,CAAC,EAAS,SAAS,EAAS,WAAW,EAAM,CAAC,CAAO,EAAmBA,MAAoB,IAAQ,EAAE,MAAM,MAAQ,CAAC,EAAM,CAAC,CAAw8B,OAAp7B,GAAO,OAAO,EAAM,MAAM,MAAkB,CAAC,GAAe,EAAc,SAAS,EAAuB,EAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAM,MAAM,SAAS,WAAW,QAAQ,QAAQ,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,SAAS,GAAG,EAAY,IAAI,WAAW,GAAG,UAAU,MAAM,YAAY,EAAmB,MAAM,EAAa,WAAW,EAAY,WAAW,WAAW,EAAY,WAAW,UAAU,EAAY,UAAU,cAAc,EAAY,cAAc,QAAQ,GAAG,CAAC,SAAS,IAAI,CAAC,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAU,SAAS,EAAS,SAAS,WAAW,EAAS,WAAW,WAAW,EAAS,WAAW,UAAU,EAAS,UAAU,WAAW,EAAS,WAAW,cAAc,EAAS,cAAc,UAAU,EAAS,UAAU,QAAQ,GAAG,CAAC,SAAS,oJAAoJ,CAAC,CAAC,CAAC,CAAC,CAAsB,EAAM,MAAM,CAAC,MAAM,CAAC,GAAG,EAAM,MAAM,SAAS,WAAW,QAAQ,QAAQ,CAAC,SAAS,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,MAAM,OAAO,SAAS,GAAG,EAAY,IAAI,WAAW,GAAG,UAAU,MAAM,YAAY,EAAmB,MAAM,EAAa,WAAW,EAAY,WAAW,WAAW,EAAY,WAAW,UAAU,EAAY,UAAU,cAAc,EAAY,cAAc,CAAC,SAAS,EAAY,CAAC,CAAC,EAAoB,EAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAU,SAAS,EAAS,SAAS,WAAW,EAAS,WAAW,WAAW,EAAS,WAAW,UAAU,EAAS,UAAU,WAAW,EAAS,WAAW,cAAc,EAAS,cAAc,UAAU,EAAS,UAAU,CAAC,wBAAwB,CAAC,OAAO,EAAe,EAAW,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAU,SAAS,EAAS,SAAS,WAAW,EAAS,WAAW,WAAW,EAAS,WAAW,UAAU,EAAS,UAAU,WAAW,EAAS,WAAW,cAAc,EAAS,cAAc,UAAU,EAAS,UAAU,CAAC,SAAS,EAAW,CAAC,CAAC,CAAC,CAAC,kBAR9jE,IAAoD,IAA2B,CAQi/D,EAAoB,EAAQ,CAAC,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,YAAY,QAAQ,CAAC,QAAQ,OAAO,CAAC,aAAa,CAAC,QAAQ,OAAO,CAAC,aAAa,QAAQ,wBAAwB,GAAK,CAAC,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,IAAI,QAAQ,CAAC,cAAY,IAAW,OAAO,CAAC,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa;;+CAA8E,gBAAgB,GAAK,QAAQ,CAAC,cAAY,IAAW,OAAO,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,kMAAkM,gBAAgB,GAAK,QAAQ,CAAC,cAAY,IAAW,OAAO,CAAC,MAAM,CAAC,KAAK,EAAY,KAAK,MAAM,gBAAgB,QAAQ,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,UAAU,UAAU,CAAC,aAAa,EAAE,wBAAwB,GAAK,CAAC,SAAS,CAAC,KAAK,EAAY,KAAK,MAAM,iBAAiB,aAAa,CAAC,SAAS,OAAO,QAAQ,SAAS,cAAc,UAAU,WAAW,QAAQ,CAAC,SAAS,WAAW,gBAAgB,aAAa,CAAC,YAAY,CAAC,KAAK,EAAY,KAAK,MAAM,eAAe,aAAa,CAAC,QAAQ,OAAO,cAAc,UAAU,CAAC,SAAS,WAAW,gBAAgB,aAAa,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,aAAa,CAAC,KAAK,EAAY,MAAM,MAAM,gBAAgB,aAAa,UAAU,CAAC,CAAC"}