{"version":3,"file":"CustomizableText.Bm_s37ev.mjs","names":["useMemo"],"sources":["https:/framerusercontent.com/modules/mUGi5vCy9DTpLin0AC80/v2egtPqnxPVYIGHNxcZw/CustomizableText.js"],"sourcesContent":["// Text component with customizable styling for text between brackets []\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useMemo}from\"react\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function CustomizableText(props){const{text,defaultColor,defaultFont,bracketColor,bracketFont,bracketBackground,useGradient,gradientColor1,gradientStartStop,gradientColorMid,gradientMidStop,gradientColor2,gradientEndStop,gradientAngle,bracketPadding,bracketBorderRadius,bracketBorder,textAlign,balanceText,style}=props;const parsedContent=useMemo(()=>{const regex=/\\[([^\\]]+)\\]/g;const parts=[];let lastIndex=0;let match;while((match=regex.exec(text))!==null){if(match.index>lastIndex){parts.push({text:text.slice(lastIndex,match.index),isBracketed:false});}parts.push({text:match[1],isBracketed:true});lastIndex=regex.lastIndex;}if(lastIndex<text.length){parts.push({text:text.slice(lastIndex),isBracketed:false});}return parts;},[text]);const bracketBackgroundStyle=useMemo(()=>{if(useGradient){const clamp=v=>Math.max(0,Math.min(100,v));let start=clamp(gradientStartStop);let end=clamp(gradientEndStop);if(start>end)[start,end]=[end,start];const mid=Math.max(start,Math.min(end,clamp(gradientMidStop)));return{background:`linear-gradient(${gradientAngle}deg, ${gradientColor1} ${start}%, ${gradientColorMid} ${mid}%, ${gradientColor2} ${end}%)`};}return{backgroundColor:bracketBackground};},[useGradient,gradientColor1,gradientStartStop,gradientColorMid,gradientMidStop,gradientColor2,gradientEndStop,gradientAngle,bracketBackground]);return /*#__PURE__*/_jsx(\"div\",{style:{...style,position:\"relative\",width:style?.width===\"100%\"?\"100%\":\"max-content\",height:style?.height===\"100%\"?\"100%\":\"auto\",minWidth:style?.width===\"100%\"?undefined:\"max-content\",textAlign:textAlign},children:/*#__PURE__*/_jsx(\"span\",{style:{...defaultFont,color:defaultColor,whiteSpace:\"pre-wrap\",wordBreak:\"break-word\",display:\"block\",...balanceText&&{textWrap:\"balance\",// @ts-ignore - Safari prefix\nWebkitTextWrap:\"balance\"}},children:parsedContent.map((part,index)=>{if(part.isBracketed){return /*#__PURE__*/_jsx(\"span\",{style:{...bracketFont,color:bracketColor,...bracketBackgroundStyle,padding:`${bracketPadding}px`,borderRadius:`${bracketBorderRadius}px`,border:bracketBorder},children:part.text},index);}return /*#__PURE__*/_jsx(\"span\",{children:part.text},index);})})});}addPropertyControls(CustomizableText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Hello [World]! This is a [customizable] text component.\",displayTextArea:true},textAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},balanceText:{type:ControlType.Boolean,title:\"Balance Text\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},defaultColor:{type:ControlType.Color,title:\"Default Color\",defaultValue:\"#000000\"},defaultFont:{type:ControlType.Font,title:\"Default Font\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},bracketColor:{type:ControlType.Color,title:\"Bracket Text Color\",defaultValue:\"#FFFFFF\"},bracketFont:{type:ControlType.Font,title:\"Bracket Font\",defaultValue:{fontSize:\"15px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},useGradient:{type:ControlType.Boolean,title:\"Background Type\",defaultValue:false,enabledTitle:\"Gradient\",disabledTitle:\"Solid\"},bracketBackground:{type:ControlType.Color,title:\"Bracket Background\",defaultValue:\"#000000\",hidden:({useGradient})=>useGradient},gradientColor1:{type:ControlType.Color,title:\"Gradient Start\",defaultValue:\"#000000\",hidden:({useGradient})=>!useGradient},gradientStartStop:{type:ControlType.Number,title:\"Start Stop\",defaultValue:0,min:0,max:100,step:1,unit:\"%\",hidden:({useGradient})=>!useGradient},gradientColorMid:{type:ControlType.Color,title:\"Gradient Center\",defaultValue:\"#000000\",hidden:({useGradient})=>!useGradient},gradientMidStop:{type:ControlType.Number,title:\"Center Stop\",defaultValue:50,min:0,max:100,step:1,unit:\"%\",hidden:({useGradient})=>!useGradient},gradientColor2:{type:ControlType.Color,title:\"Gradient End\",defaultValue:\"#000000\",hidden:({useGradient})=>!useGradient},gradientEndStop:{type:ControlType.Number,title:\"End Stop\",defaultValue:100,min:0,max:100,step:1,unit:\"%\",hidden:({useGradient})=>!useGradient},gradientAngle:{type:ControlType.Number,title:\"Gradient Angle\",defaultValue:90,min:0,max:360,step:1,unit:\"deg\",hidden:({useGradient})=>!useGradient},bracketPadding:{type:ControlType.Number,title:\"Bracket Padding\",defaultValue:4,min:0,max:20,step:1,unit:\"px\"},bracketBorderRadius:{type:ControlType.Number,title:\"Bracket Radius\",defaultValue:4,min:0,max:20,step:1,unit:\"px\"},bracketBorder:{type:ControlType.String,title:\"Bracket Border\",defaultValue:\"none\",placeholder:\"1px solid #000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CustomizableText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CustomizableText.map"],"mappings":"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"}