{"version":3,"file":"RotatingPromoBar.DSVd8dnj.mjs","names":["React.useRef","React.useState","React.useMemo","React.useCallback"],"sources":["https:/framerusercontent.com/modules/PSk9fsYaYTmy4xqj1veZ/hQmW6pBX1rRrNBQtkzvM/RotatingPromoBar.js"],"sourcesContent":["// User request: Create a new self-contained Framer code component named Rotating Promo Bar for the Summit AI homepage. It should be a slim announcement strip that alternates between two editable messages on a configurable interval, supports link click-through, soft message swap animation with reduced-motion support, truncates overflow, and exposes controls for messageOne, messageTwo, link, intervalSeconds, backgroundStart, backgroundEnd, textColor, accentColor, fontSize, and height.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{AnimatePresence,motion,useInView,useReducedMotion}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n */export default function RotatingPromoBar(props){const{messageOne,messageTwo,link,intervalSeconds,backgroundStart,backgroundEnd,textColor,accentColor,fontSize,height}=props;const isStatic=useIsStaticRenderer();const reduceMotion=useReducedMotion();const rootRef=React.useRef(null);const isInView=useInView(rootRef,{margin:\"0px\",amount:.2});const[activeIndex,setActiveIndex]=React.useState(0);const[isCollapsed,setIsCollapsed]=React.useState(false);const messages=React.useMemo(()=>[messageOne,messageTwo],[messageOne,messageTwo]);const durationMs=React.useMemo(()=>Math.max(1,intervalSeconds)*1e3,[intervalSeconds]);const getAccentParts=React.useCallback(message=>{const accentMatch=message.match(/(7-day free trial|7 days free trial|7 day free trial|7-day|7 days)/i);if(!accentMatch||accentMatch.index===undefined){return{before:message,accent:\"\",after:\"\"};}const accent=accentMatch[0];const start=accentMatch.index;const end=start+accent.length;return{before:message.slice(0,start),accent,after:message.slice(end)};},[]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const onScroll=()=>{const nextCollapsed=window.scrollY>20;React.startTransition(()=>{setIsCollapsed(prev=>prev===nextCollapsed?prev:nextCollapsed);});};onScroll();window.addEventListener(\"scroll\",onScroll,{passive:true});return()=>window.removeEventListener(\"scroll\",onScroll);},[]);React.useEffect(()=>{if(isStatic||!isInView)return;const timer=window.setInterval(()=>{React.startTransition(()=>{setActiveIndex(prev=>(prev+1)%messages.length);});},durationMs);return()=>{window.clearInterval(timer);};},[durationMs,isInView,isStatic,messages.length]);const currentMessage=messages[activeIndex]??\"\";const textParts=getAccentParts(currentMessage);const hasLink=typeof link===\"string\"&&link.trim().length>0;const textNode=/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",minWidth:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",overflow:\"hidden\",whiteSpace:\"nowrap\",textOverflow:\"ellipsis\"},children:/*#__PURE__*/_jsx(\"div\",{style:{overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:/*#__PURE__*/_jsx(AnimatePresence,{mode:\"wait\",initial:false,children:/*#__PURE__*/_jsxs(motion.span,{initial:reduceMotion||isStatic?{opacity:1,y:0}:{opacity:0,y:5},animate:reduceMotion||isStatic?{opacity:1,y:0}:{opacity:1,y:0},exit:reduceMotion||isStatic?{opacity:1,y:0}:{opacity:0,y:-5},transition:{duration:reduceMotion||isStatic?0:.35,ease:\"easeOut\"},style:{display:\"inline-block\",color:textColor},children:[textParts.before,textParts.accent?/*#__PURE__*/_jsx(\"span\",{style:{color:accentColor},children:textParts.accent}):null,textParts.after]},currentMessage)})})});return /*#__PURE__*/_jsx(motion.div,{ref:rootRef,initial:false,animate:reduceMotion||isStatic?{opacity:isCollapsed?0:1,y:isCollapsed?-8:0}:{opacity:isCollapsed?0:1,y:isCollapsed?-16:0},transition:{duration:reduceMotion||isStatic?0:.28,ease:\"easeOut\"},style:{position:\"relative\",width:\"100%\",height,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:\"0 16px\",boxSizing:\"border-box\",background:`linear-gradient(90deg, ${backgroundStart} 0%, ${backgroundEnd} 100%)`,color:textColor,fontSize,lineHeight:1.2,overflow:\"hidden\",pointerEvents:isCollapsed?\"none\":\"auto\"},children:hasLink?/*#__PURE__*/_jsx(\"a\",{href:link,\"aria-label\":`Announcement: ${currentMessage}`,style:{color:\"inherit\",textDecoration:\"none\",width:\"100%\",minWidth:0},children:textNode}):textNode});}export function withPromoAwareNav(Component){return /*#__PURE__*/React.forwardRef((props,ref)=>{const reduceMotion=useReducedMotion();const[isPromoPassed,setIsPromoPassed]=React.useState(false);React.useEffect(()=>{if(typeof window===\"undefined\")return;const onScroll=()=>{const nextPromoPassed=window.scrollY>20;React.startTransition(()=>{setIsPromoPassed(prev=>prev===nextPromoPassed?prev:nextPromoPassed);});};onScroll();window.addEventListener(\"scroll\",onScroll,{passive:true});return()=>window.removeEventListener(\"scroll\",onScroll);},[]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props,style:{...props.style},animate:{...props.animate??{},y:isPromoPassed?-42:0},transition:reduceMotion?{...props.transition??{},duration:0}:{...props.transition??{},y:{duration:.28,ease:\"easeOut\"}}});});}addPropertyControls(RotatingPromoBar,{messageOne:{type:ControlType.String,title:\"Message One\",defaultValue:\"Never miss another patient call — book a free demo.\"},messageTwo:{type:ControlType.String,title:\"Message Two\",defaultValue:\"Start your 7-day free trial. No lock-in contracts.\"},link:{type:ControlType.Link,title:\"Link\",defaultValue:\"/#schedule\"},intervalSeconds:{type:ControlType.Number,title:\"Interval\",defaultValue:4,min:1,max:20,step:1,unit:\"s\"},backgroundStart:{type:ControlType.Color,title:\"BG Start\",defaultValue:\"#08142F\"},backgroundEnd:{type:ControlType.Color,title:\"BG End\",defaultValue:\"#113B82\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#F5F8FF\"},accentColor:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#8DD6FF\"},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:14,min:10,max:22,step:1,unit:\"px\"},height:{type:ControlType.Number,title:\"Height\",defaultValue:42,min:24,max:80,step:1,unit:\"px\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RotatingPromoBar\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"withPromoAwareNav\":{\"type\":\"reactHoc\",\"name\":\"withPromoAwareNav\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RotatingPromoBar.map"],"mappings":"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"}