{"version":3,"file":"TextShimmer_Prod.BUsnF6d5.mjs","names":["useId","__esmMin","init_npm_react_18_3_1","ie","c","init_jsx_runtime","p","addPropertyControls","init_framer_DymZktPS","ControlType","TextShimmer","Tag","tag","uid","className","keyframesName","backgroundSize","speedFormatted","speed","gradientFirst","size","gradientLast","animationDuration","delay","startPos","direction","endPos","css","rotation","shimmer","userSelect","font","content","init_TextShimmer_Prod"],"sources":["https:/framerusercontent.com/modules/TS5bPiMUGtjrWMUlvKp9/Lbun5KUVn1DOq0iJPMKK/TextShimmer_Prod.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useId}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function TextShimmer({font,content,color,shimmer,size,speed,userSelect,rotation,delay,tag,direction}){const Tag=tag;// Stable, deterministic ID (same on server + client) → no hydration mismatch.\n// useId() returns values like \":r0:\" which aren't valid in CSS selectors /\n// animation names, so strip the colons to make it CSS-safe.\nconst uid=useId().replace(/:/g,\"\");const className=`text-shimmer-${uid}`;const keyframesName=`shimmer-${uid}`;const backgroundSize=`200% 200%`;const speedFormatted=11-speed;const gradientFirst=50-size*(50-20)/100;const gradientLast=50+size*(80-50)/100;const animationDuration=speedFormatted+delay;// Calculate keyframes positions\nconst startPos=direction===\"left\"?\"-100%\":\"200%\";const endPos=direction===\"left\"?\"200%\":\"-100%\";// Build the CSS once per render. Rendered inline as a <style> tag below so it\n// exists during SSR and works on first paint — no useEffect, no document.head.\nconst css=`\n        @keyframes ${keyframesName} {\n            0%, ${delay/animationDuration*100}% {\n                background-position: ${startPos};\n            }\n            100% {\n                background-position: ${endPos};\n            }\n        }\n        .${className} {\n            background: linear-gradient(\n                ${rotation}deg,\n                transparent 0%,\n                transparent ${gradientFirst}%,\n                ${shimmer} 50%,\n                transparent ${gradientLast}%,\n                transparent 100%\n            );\n            -webkit-background-size: ${backgroundSize};\n            -moz-background-size: ${backgroundSize};\n            background-size: ${backgroundSize};\n            -webkit-background-clip: text;\n            -moz-background-clip: text;\n            background-clip: text;\n            background-repeat: no-repeat;\n            animation: ${keyframesName} ${animationDuration}s linear infinite;\n        }\n    `;return /*#__PURE__*/_jsxs(\"div\",{style:{userSelect:userSelect?\"auto\":\"none\",position:\"relative\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),/*#__PURE__*/_jsx(Tag,{style:{...font,color,marginBlockStart:\"0px\",marginBlockEnd:\"0px\"},children:content}),/*#__PURE__*/_jsx(Tag,{\"aria-hidden\":\"true\",className:className,style:{...font,color:\"transparent\",position:\"absolute\",top:0,left:0,right:0,bottom:0,zIndex:1,marginBlockStart:\"0px\",marginBlockEnd:\"0px\",pointerEvents:\"none\"},children:content})]});}TextShimmer.displayName=\"Text Shimmer\";addPropertyControls(TextShimmer,{font:{type:ControlType.Font,title:\"Font\",defaultValue:\"Inter\",controls:\"extended\"},content:{type:ControlType.String,title:\"Content\",defaultValue:\"Learn Framer With Framer University\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF1A\"},shimmer:{type:ControlType.Color,title:\"Shimmer\",defaultValue:\"#ffffff\"},size:{type:ControlType.Number,title:\"Size\",defaultValue:30,step:1,max:100,min:1},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:5,max:10,min:1,step:1},direction:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"left\",options:[\"left\",\"right\"],optionTitles:[\"Left\",\"Right\"],displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",optionIcons:[\"direction-left\",\"direction-right\"]},userSelect:{title:\"User Select\",type:ControlType.Boolean,defaultValue:false},rotation:{type:ControlType.Number,title:\"Rotation\",defaultValue:90,min:45,unit:\"\\xb0\",max:135,step:1},delay:{type:ControlType.Number,title:\"Delay\",defaultValue:0,min:0,max:10,step:.1},tag:{type:ControlType.Enum,title:\"Tag\",defaultValue:\"p\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"h1\",\"h2\",\"h3\",\"p\"],optionTitles:[\"H1\",\"H2\",\"H3\",\"P\"],description:\"More components at [Framer University](https://frameruni.link/cc).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextShimmer\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutWidth\":\"any\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicHeight\":\"200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextShimmer_Prod.map"],"mappings":"A,iLAQG,SAAwBU,EAAY,CAAC,OAAK,UAAQ,QAAM,UAAQ,OAAK,QAAM,aAAW,WAAS,QAAM,MAAI,aAAW,CAAC,IAAMC,EAAIC,EAG5HC,EAAIb,EAAM,CAAC,CAAC,QAAQ,KAAK,EAAE,EAAQc,EAAU,gBAAgBD,IAAYE,EAAc,WAAWF,IAAYG,EAAe,YAAkBC,EAAe,GAAGC,EAAYC,EAAc,GAAGC,EAAM,GAAO,IAAUC,EAAa,GAAGD,EAAM,GAAO,IAAUE,EAAkBL,EAAeM,EAC7RC,EAASC,IAAY,OAAO,QAAQ,OAAaC,EAAOD,IAAY,OAAO,OAAO,QAElFE,EAAI;qBACWZ,EAAc;kBACjBQ,EAAMD,EAAkB,IAAI;uCACPE,EAAS;;;uCAGTE,EAAO;;;WAGnCZ,EAAU;;kBAEHc,EAAS;;8BAEGT,EAAc;kBAC1BU,EAAQ;8BACIR,EAAa;;;uCAGJL,EAAe;oCAClBA,EAAe;+BACpBA,EAAe;;;;;yBAKrBD,EAAc,GAAGO,EAAkB;;MAEtD,MAAoB,gBAAM,MAAM,CAAC,MAAM,CAAC,WAAWQ,EAAW,OAAO,OAAO,SAAS,UAAU,EAAE,SAAS,CAAc,gBAAK,QAAQ,CAAC,wBAAwB,CAAC,OAAOH,CAAG,CAAC,CAAC,EAAe,gBAAKhB,EAAI,CAAC,MAAM,CAAC,GAAGoB,EAAK,QAAM,iBAAiB,MAAM,eAAe,KAAK,EAAE,SAASC,CAAO,CAAC,EAAe,gBAAKrB,EAAI,CAAC,cAAc,OAAiB,YAAU,MAAM,CAAC,GAAGoB,EAAK,MAAM,cAAc,SAAS,WAAW,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,MAAM,eAAe,MAAM,cAAc,MAAM,EAAE,SAASC,CAAO,CAAC,CAAC,CAAC,CAAC,CAAE,C,0CAAC,EAAY,YAAY,eAAezB,EAAoBG,EAAY,CAAC,KAAK,CAAC,KAAKD,EAAY,KAAK,MAAM,OAAO,aAAa,QAAQ,SAAS,UAAU,EAAE,QAAQ,CAAC,KAAKA,EAAY,OAAO,MAAM,UAAU,aAAa,qCAAqC,EAAE,MAAM,CAAC,KAAKA,EAAY,MAAM,MAAM,QAAQ,aAAa,WAAW,EAAE,QAAQ,CAAC,KAAKA,EAAY,MAAM,MAAM,UAAU,aAAa,SAAS,EAAE,KAAK,CAAC,KAAKA,EAAY,OAAO,MAAM,OAAO,aAAa,GAAG,KAAK,EAAE,IAAI,IAAI,IAAI,CAAC,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,GAAG,IAAI,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,KAAKA,EAAY,KAAK,MAAM,YAAY,aAAa,OAAO,QAAQ,CAAC,OAAO,OAAO,EAAE,aAAa,CAAC,OAAO,OAAO,EAAE,wBAAwB,GAAK,0BAA0B,aAAa,YAAY,CAAC,iBAAiB,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,cAAc,KAAKA,EAAY,QAAQ,aAAa,EAAK,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,MAAM,WAAW,aAAa,GAAG,IAAI,GAAG,KAAK,IAAO,IAAI,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,KAAKA,EAAY,OAAO,MAAM,QAAQ,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,KAAKA,EAAY,KAAK,MAAM,MAAM,aAAa,IAAI,wBAAwB,GAAK,0BAA0B,aAAa,QAAQ,CAAC,KAAK,KAAK,KAAK,GAAG,EAAE,aAAa,CAAC,KAAK,KAAK,KAAK,GAAG,EAAE,YAAY,oEAAoE,CAAC,CAAC,C"}