{"version":3,"file":"shared-lib.ByWIkTo0.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/FiiQ0BKlVUNzxXjo8hFs/BDeIULpeB9kBv3zq3U1w/RollingTextHover_Prod.js","https:/framerusercontent.com/modules/vvGHxAUmCkYuWO0ay3fS/6vxvijFKx8gdLCJMGC6Q/L_gJZwZ9I.js","https:/framerusercontent.com/modules/nA0ERBFAYn2jtFVZkZ2R/kzs6IKk1b3EUhXez7VUR/siteMetadata.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState}from\"react\";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);});};// --- Component ---\n/**\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 50\n * @framerDisableUnlink\n */export default function RollingText({text,transition,stagger,reverse,font,color,textTransform,tag,padding}){const[isHovered,setIsHovered]=useState(false);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 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%\"},hover:{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;return /*#__PURE__*/_jsxs(\"div\",{style:wrapperStyle,onMouseEnter:()=>setIsHovered(true),onMouseLeave:()=>setIsHovered(false),children:[/*#__PURE__*/_jsx(Tag,{className:innerClassName,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};return /*#__PURE__*/_jsx(motion.span,{variants:spanVariants,initial:\"initial\",animate:isHovered?\"hover\":\"initial\",transition:{...transition,delay:delay},style:motionSpanStyle,children:str===\" \"?\"\\xa0\":str},index);})}),/*#__PURE__*/_jsx(\"style\",{children:styles})]});}// --- Component Display Name ---\nRollingText.displayName=\"Rolling Text\";// --- Default Properties ---\nconst defaultFont={fontFamily:\"Inter\",fontWeight:\"400\",fontSize:\"16px\",fontStyle:\"normal\",letterSpacing:\"0px\",lineHeight:1.2};const defaultTransition={type:\"spring\",duration:.4,bounce:0};// --- Framer Property Controls ---\naddPropertyControls(RollingText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Rolling Text\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultValue:defaultFont},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#808080\"},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:defaultTransition},// Added Stagger control\nstagger:{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\",description:\"More components at [Framer University](https://frameruni.link/cc).\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RollingText\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"50\",\"framerDisableUnlink\":\"\",\"framerIntrinsicWidth\":\"200\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RollingTextHover_Prod.map","// Generated by Framer (c0aead9)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"FS;Syne-medium\",\"FS;Syne-bold\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Syne\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Syne\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/6RX5HIHKXSNRRZM4TG3ZDRLY4QYRWVVV/LDU4YZVURVJ7AUY5LTGS5UVZP5WMQGD2/HUZK5ZCPMLHN2C4WDX2FZVOULKRASN7B.woff2\",weight:\"500\"},{cssFamilyName:\"Syne\",source:\"fontshare\",style:\"normal\",uiFamilyName:\"Syne\",url:\"https://framerusercontent.com/third-party-assets/fontshare/wf/VKTA33GWIASJYXHVAJ3OV4FXOH4KTFF7/O44P7FGKMRRV3G5MA2GWTBG65MQIQLEZ/2XCKRF7GO6XB2DJSZCJ6MN25CPDFEJEB.woff2\",weight:\"700\"}]}];export const css=['.framer-L3ewZ .framer-styles-preset-1pjbj23:not(.rich-text-wrapper), .framer-L3ewZ .framer-styles-preset-1pjbj23.rich-text-wrapper h1 { --framer-font-family: \"Syne\", \"Syne Placeholder\", sans-serif; --framer-font-family-bold: \"Syne\", \"Syne Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 37px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-letter-spacing: -0.7px; --framer-line-height: 45.6px; --framer-paragraph-spacing: 0px; --framer-text-alignment: start; --framer-text-color: var(--token-08cc498a-1996-48f6-8877-eefd68e7616c, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-L3ewZ\";\nexport const __FramerMetadata__ = {\"exports\":{\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (293632e)\nexport default function metadata(params,activeLocale){return{description:\"Portfolio of Noy Ziv. Branding, performance marketing design & AI-driven creative.\",favicon:\"https://framerusercontent.com/assets/rMjDJav82oLtkhfbvef1gLJRcbE.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/D0S7Bj9jRbCMugg56fVlGBWPZT8.png\",title:\"Noy Ziv | Marketing Designer & Brand Creative\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}