{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/aeEe477xpzEFqqaZhiTE/ltgP15qtviN0Ho7MrfaG/RollingText.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{motion}from\"framer-motion\";// --- Helper Functions ---\nconst uuidv4=()=>{return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,c=>{const r=Math.random()*16|0;const v=c===\"x\"?r:r&3|8;return v.toString(16);});};/**\n * RollingText with variable font support for optical and weight axes\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 50\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function RollingText({text,transition,stagger,reverse,font,color,textTransform,tag,padding,variable,state}){const innerClassName=`rolling-text-inner-${uuidv4()}`;const Tag=tag;const fontSizeStr=font?.fontSize??\"16px\";const letterSpacingStr=font?.letterSpacing??\"0px\";const rawLineHeight=font?.lineHeight;const fontFamily=font?.fontFamily??\"Inter\";const fontSizeNum=parseInt(fontSizeStr,10)||16;let absoluteLineHeightPx;if(typeof rawLineHeight===\"number\"){absoluteLineHeightPx=fontSizeNum*rawLineHeight;}else if(typeof rawLineHeight===\"string\"&&rawLineHeight.includes(\"em\")){const emValue=parseFloat(rawLineHeight)||1.2;absoluteLineHeightPx=fontSizeNum*emValue;}else if(typeof rawLineHeight===\"string\"){const pxValue=parseFloat(rawLineHeight);absoluteLineHeightPx=isNaN(pxValue)?rawLineHeight:`${pxValue}px`;}else{absoluteLineHeightPx=fontSizeNum*1.2;}const absoluteLineHeightStr=typeof absoluteLineHeightPx===\"number\"?`${absoluteLineHeightPx}px`:absoluteLineHeightPx;const yOffset=`-${absoluteLineHeightStr}`;const variableFontStyles=variable?{fontVariationSettings:`'wght' ${variable.weight}, 'opsz' ${variable.optical}`}:{};const styles=`\n    .${innerClassName} {\n      --font-size: ${fontSizeStr};\n      --text: ${color};\n      --line-height-abs: ${absoluteLineHeightStr};\n      box-sizing: border-box; margin: 0; padding: 0; vertical-align: top;\n      display: flex; overflow: hidden; width: max-content;\n      font-family: ${fontFamily}; font-size: ${fontSizeStr};\n      text-transform: ${textTransform}; user-select: none;\n      text-shadow: 0 var(--line-height-abs) 0 var(--text);\n    }\n    .${innerClassName} span {\n      display: block; -webkit-backface-visibility: hidden; backface-visibility: hidden;\n      white-space: pre; flex-shrink: 0;\n      font-family: inherit; font-weight: inherit; font-style: inherit;\n      font-size: inherit; letter-spacing: inherit;\n      line-height: ${rawLineHeight??1.2};\n      color: var(--text);\n    }\n  `;const wrapperStyle={display:\"flex\",alignItems:\"center\",justifyContent:\"center\",width:\"100%\",height:\"100%\",overflow:\"hidden\",padding:padding,boxSizing:\"border-box\"};const spanVariants={initial:{y:\"0%\"},roll:{y:yOffset}};const baseDuration=typeof transition?.duration===\"number\"?transition.duration:.5;// Convert stagger percentage (0-100) to a factor (0-1)\nconst staggerFactor=stagger/100;// Animation state based on prop\nconst animateState=state===\"Roll\"?\"roll\":\"initial\";return /*#__PURE__*/_jsxs(\"div\",{style:wrapperStyle,children:[/*#__PURE__*/_jsx(Tag,{className:innerClassName,style:variableFontStyles,children:[...text].map((str,index)=>{const charIndex=reverse?text.length-1-index:index;// Apply staggerFactor to the delay calculation\nconst delay=text.length>0?baseDuration/text.length*charIndex*staggerFactor// Multiply by factor\n:0;const motionSpanStyle={display:\"block\",...font,...variableFontStyles};return /*#__PURE__*/_jsx(motion.span,{variants:spanVariants,initial:\"initial\",animate:animateState,transition:{...transition,delay:delay},style:motionSpanStyle,children:str===\" \"?\"\\xa0\":str},index);})}),/*#__PURE__*/_jsx(\"style\",{children:styles})]});}RollingText.displayName=\"Rolling Text\";const defaultFont={fontFamily:\"Inter\",fontWeight:\"400\",fontSize:\"16px\",fontStyle:\"normal\",letterSpacing:\"0px\",lineHeight:1.2};const defaultTransition={type:\"spring\",duration:.4,bounce:0};addPropertyControls(RollingText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Rolling Text\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:defaultFont},variable:{type:ControlType.Object,title:\"Variable\",controls:{optical:{type:ControlType.Number,title:\"Optical\",min:14,max:32,step:1,defaultValue:16},weight:{type:ControlType.Number,title:\"Weight\",min:100,max:900,step:1,defaultValue:400}},defaultValue:{optical:16,weight:400}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#808080\"},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:defaultTransition},stagger:{title:\"Stagger\",type:ControlType.Number,min:0,max:100,step:1,defaultValue:35,unit:\"%\"},padding:{title:\"Padding\",type:ControlType.Padding,defaultValue:\"0px\"},reverse:{type:ControlType.Boolean,title:\"Reverse\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},textTransform:{title:\"Transform\",type:ControlType.Enum,defaultValue:\"none\",options:[\"none\",\"uppercase\",\"lowercase\",\"capitalize\"],optionTitles:[\"None\",\"Uppercase\",\"Lowercase\",\"Capitalize\"]},tag:{type:ControlType.Enum,title:\"Tag\",options:[\"p\",\"span\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],optionTitles:[\"p\",\"span\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],defaultValue:\"p\"},state:{type:ControlType.Enum,title:\"State\",options:[\"Default\",\"Roll\"],optionTitles:[\"Default\",\"Roll\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\",defaultValue:\"Default\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RollingText\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"50\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth fixed\",\"framerIntrinsicWidth\":\"200\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RollingText.map"],
  "mappings": "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",
  "names": ["uuidv4", "c", "r", "RollingText", "text", "transition", "stagger", "reverse", "font", "color", "textTransform", "tag", "padding", "variable", "state", "innerClassName", "Tag", "fontSizeStr", "letterSpacingStr", "rawLineHeight", "fontFamily", "fontSizeNum", "absoluteLineHeightPx", "emValue", "pxValue", "absoluteLineHeightStr", "yOffset", "variableFontStyles", "styles", "wrapperStyle", "spanVariants", "baseDuration", "staggerFactor", "animateState", "u", "p", "str", "index", "charIndex", "delay", "motionSpanStyle", "motion", "defaultFont", "defaultTransition", "addPropertyControls", "ControlType"]
}
