{"version":3,"file":"TruncateText.BHD63pIM.mjs","names":[],"sources":["https:/framerusercontent.com/modules/PJrQfUWWET37WvHwOp9X/QnO7MeykzgmqvtyLOpDt/TruncateText.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";export default function TruncateText(props){const{text,font,color,textAlign,letterMode,maxCharacters,lineCount,ellipsis,style}=props;let display=text??\"\";let clampStyle={};if(letterMode){// Truncate by character count\nif(display.length>maxCharacters){display=display.slice(0,maxCharacters).trimEnd();if(ellipsis)display+=\"…\";}clampStyle={whiteSpace:\"nowrap\",overflow:\"hidden\"};}else{// Truncate by number of lines (CSS line clamp)\nclampStyle={display:\"-webkit-box\",WebkitBoxOrient:\"vertical\",WebkitLineClamp:lineCount,overflow:\"hidden\"};}return /*#__PURE__*/_jsx(\"div\",{style:{// The font control supplies fontFamily, fontWeight,\n// fontSize, lineHeight and letterSpacing together.\n...font,color,textAlign,width:\"100%\",margin:0,...clampStyle,...style},children:display});}TruncateText.displayName=\"Truncate Text\";addPropertyControls(TruncateText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Rate Limiting Strategies That Actually Work at Scale\",displayTextArea:true},font:{// Native Framer font picker — family, weight, size, line-height,\n// letter-spacing all editable here. This is what makes Geist apply.\ntype:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,variant:\"Medium\",lineHeight:\"1.3em\"}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgb(92, 92, 97)\"},textAlign:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},letterMode:{type:ControlType.Boolean,title:\"Mode\",enabledTitle:\"Characters\",disabledTitle:\"Lines\",defaultValue:true},maxCharacters:{type:ControlType.Number,title:\"Max Chars\",defaultValue:32,min:1,max:500,step:1,hidden:p=>p.letterMode===false},lineCount:{type:ControlType.Number,title:\"Max Lines\",defaultValue:1,min:1,max:20,step:1,hidden:p=>p.letterMode===true},ellipsis:{type:ControlType.Boolean,title:\"Ellipsis\",enabledTitle:\"Yes\",disabledTitle:\"No\",defaultValue:true,hidden:p=>p.letterMode===false}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TruncateText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TruncateText.map"],"mappings":"4JAA+F,SAAwB,EAAa,EAAM,CAAC,GAAK,CAAC,OAAK,OAAK,QAAM,YAAU,aAAW,gBAAc,YAAU,WAAS,SAAO,EAAU,EAAQ,GAAM,GAAO,EAAW,CAAC,EAE9J,OAFmK,GAC3Q,EAAQ,OAAO,IAAe,EAAQ,EAAQ,MAAM,EAAE,CAAa,CAAC,CAAC,QAAQ,EAAK,IAAS,GAAS,MAAK,EAAW,CAAC,WAAW,SAAS,SAAS,QAAQ,GAC7J,EAAW,CAAC,QAAQ,cAAc,gBAAgB,WAAW,gBAAgB,EAAU,SAAS,QAAQ,EAAuB,EAAK,MAAM,CAAC,MAAM,CAEjJ,GAAG,EAAK,QAAM,YAAU,MAAM,OAAO,OAAO,EAAE,GAAG,EAAW,GAAG,CAAK,EAAE,SAAS,CAAO,CAAC,CAAE,iBAJ/C,IAAoD,EAIJ,EAAa,YAAY,gBAAgB,EAAoB,EAAa,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,uDAAuD,gBAAgB,EAAI,EAAE,KAAK,CAE/S,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,GAAG,QAAQ,SAAS,WAAW,OAAO,CAAC,EAAE,MAAM,CAAC,KAAK,EAAY,MAAM,MAAM,QAAQ,aAAa,iBAAiB,EAAE,UAAU,CAAC,KAAK,EAAY,KAAK,MAAM,QAAQ,QAAQ,CAAC,OAAO,SAAS,OAAO,EAAE,aAAa,CAAC,OAAO,SAAS,OAAO,EAAE,aAAa,OAAO,wBAAwB,EAAI,EAAE,WAAW,CAAC,KAAK,EAAY,QAAQ,MAAM,OAAO,aAAa,aAAa,cAAc,QAAQ,aAAa,EAAI,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,OAAO,GAAG,EAAE,aAAa,EAAK,EAAE,UAAU,CAAC,KAAK,EAAY,OAAO,MAAM,YAAY,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,OAAO,GAAG,EAAE,aAAa,EAAI,EAAE,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,WAAW,aAAa,MAAM,cAAc,KAAK,aAAa,GAAK,OAAO,GAAG,EAAE,aAAa,EAAK,CAAC,CAAC"}