{"version":3,"file":"Motionbutton.BZD2sUhJ.mjs","names":["useRef","useState","useCallback","React"],"sources":["https:/framerusercontent.com/modules/9jRKMqugQjLrYsbEMHFL/ZzAOAeXyZYvzR4sjpWBw/Motionbutton.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import React,{useCallback,useEffect,useRef,useState}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";/**\n * MOTION BUTTON — v2.0\n *\n * One accessible play/pause control for either a native Framer video or the\n * separate RouteBackground RAF animation component.\n *\n * v1.8 makes the short-video trigger reliable inside nested Framer instances:\n *   · The trigger watches this visible button—not a potentially oversized\n *     parent component whose intersection ratio may never reach the threshold.\n *   · No sessionStorage gate. It runs once per mounted page visit, so a stale\n *     preview session can never suppress it while the component is being tested.\n *   · A new Short intro property defaults on, avoiding old stored false values\n *     from the earlier Intro play property.\n *\n * The honest two-pass intro:\n *   · If Short intro is enabled and the video is under five seconds, it\n *     plays once, rests for one second, then plays once more.\n *   · Native play/pause events drive the icon and time readout, so the\n *     control visibly reports autoplay and shows pass ×1/2 then ×2/2.\n *   · The intro runs once per page visit, respects reduced motion,\n *     disables native looping and yields immediately to manual interaction.\n *   · Manual playback is always one-shot; the native Loop setting is ignored.\n *\n * v1.9 mobile sizing:\n *   · Time shown: the full 140 × 48 desktop pill.\n *   · Time hidden: a 48 × 48 circular touch target.\n *   · During a short intro, the compact control temporarily expands to 84 × 48\n *     to show Pause/Play + ×1/2 or ×2/2, then returns to the circle.\n *\n * v2.0 background mode:\n *   · Sends a site-wide event to every RouteBackground instance.\n *   · Persists Pause/Play as the visitor's explicit motion preference.\n *   · Uses action-based accessible names: Pause background motion / Play\n *     background motion. Visible text reports Motion playing / Motion paused.\n *\n * v1.5 hardening retained:\n *   · No injected stylesheet or shared selector. Framer can omit nested\n *     <style> elements while rendering component instances on the canvas.\n *   · Critical presentation rules are written directly to the live button\n *     element with inline !important priority. This survives nested design\n *     components, SSR/hydration and page-level button resets.\n *   · Declarative inline styles remain as the server-rendered fallback.\n *\n * DISCOVERY  ascends parent-by-parent to the nearest ancestor holding a\n *            <video>; \"Scope\" pins it to a named frame instead.\n * TIME       visible \"0:04 / 0:12\" is aria-hidden; the duration is\n *            folded once into the accessible name.\n * TRUTH      playing state derives from the video's own events.\n * NATIVE LAYER  Autoplay off, Controls off, Muted on. Loop is forced off.\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 140\n * @framerIntrinsicHeight 48\n */const isCanvas=()=>RenderTarget.current()===RenderTarget.canvas;const fmt=s=>{if(!isFinite(s)||s<0)s=0;const m=Math.floor(s/60);const r=Math.floor(s%60);return`${m}:${r<10?\"0\":\"\"}${r}`;};const useSafeLayoutEffect=typeof window!==\"undefined\"?React.useLayoutEffect:React.useEffect;const BUTTON_WIDTH=140;const BACKGROUND_BUTTON_WIDTH=168;const COMPACT_BUTTON_WIDTH=48;const COMPACT_INTRO_WIDTH=84;const BUTTON_HEIGHT=48;const INTRO_MAX_SECONDS=5;const BACKGROUND_MOTION_EVENT=\"jw-background-motion-change\";const BACKGROUND_MOTION_STORAGE=\"jw-background-motion-preference\";export default function MotionButton({motionType=\"video\",label=\"\",scope=\"\",showTime=true,autoIntro=true,background=\"#F5F0E8\",iconColor=\"#1C1917\",textColor=\"#1C1917\",ringColor=\"#FF9231\",fontSize=13,style}){const canvas=isCanvas();const hostRef=useRef(null);const buttonRef=useRef(null);const timeRef=useRef(null);const videoRef=useRef(null);const introActiveRef=useRef(false);const introConsumedRef=useRef(false);const introPassRef=useRef(0);const introBoundaryHandledRef=useRef(false);const introTimerRef=useRef(null);const originalMutedRef=useRef(null);const[found,setFound]=useState(false);const[playing,setPlaying]=useState(false);const[current,setCurrent]=useState(0);const[duration,setDuration]=useState(0);const[focusRing,setFocusRing]=useState(false);const[introPass,setIntroPass]=useState(0);const[reducedMotion,setReducedMotion]=useState(false);const[backgroundPaused,setBackgroundPaused]=useState(false);const markIntroConsumed=useCallback(()=>{introConsumedRef.current=true;},[]);const setBackgroundMotion=useCallback(paused=>{setBackgroundPaused(paused);if(typeof window===\"undefined\")return;try{window.localStorage.setItem(BACKGROUND_MOTION_STORAGE,paused?\"paused\":\"playing\");}catch(error){// The same-page event still works when storage is unavailable.\n}window.dispatchEvent(new CustomEvent(BACKGROUND_MOTION_EVENT,{detail:{paused}}));},[]);const clearIntroTimer=useCallback(()=>{if(introTimerRef.current!==null){clearTimeout(introTimerRef.current);introTimerRef.current=null;}},[]);const stopIntro=useCallback(resetToStart=>{clearIntroTimer();const video=videoRef.current;if(video){video.pause();video.loop=false;if(originalMutedRef.current!==null){video.muted=originalMutedRef.current;}if(resetToStart){try{video.currentTime=0;}catch(error){// Metadata can disappear while a Framer layer unmounts.\n}}}originalMutedRef.current=null;introActiveRef.current=false;introPassRef.current=0;introBoundaryHandledRef.current=false;setIntroPass(0);if(resetToStart)setCurrent(0);},[clearIntroTimer]);const handleIntroPassEnd=useCallback(video=>{if(!introActiveRef.current||introBoundaryHandledRef.current){return;}introBoundaryHandledRef.current=true;video.pause();video.loop=false;if(introPassRef.current===1){setCurrent(video.duration||0);introTimerRef.current=setTimeout(()=>{introTimerRef.current=null;if(!introActiveRef.current)return;introPassRef.current=2;introBoundaryHandledRef.current=false;setIntroPass(2);video.loop=false;video.muted=true;video.currentTime=0;setCurrent(0);video.play().catch(()=>stopIntro(true));},1e3);return;}markIntroConsumed();stopIntro(true);},[markIntroConsumed,stopIntro]);/* ── discovery ──\n       Ascend until an ancestor contains a <video>. Retried on a short\n       schedule because Framer can hydrate the video layer after this\n       component mounts. */useEffect(()=>{if(canvas||motionType!==\"video\"||typeof document===\"undefined\"){return;}const attach=v=>{videoRef.current=v;introConsumedRef.current=false;// This component owns playback truth. A Framer layer's Loop toggle\n// must never turn a user-started play into indefinite motion.\nv.loop=false;setFound(true);setPlaying(!v.paused&&!v.ended);setCurrent(v.currentTime||0);if(v.duration&&isFinite(v.duration))setDuration(v.duration);const onPlay=()=>setPlaying(true);const onStop=()=>setPlaying(false);const onEnded=()=>{setPlaying(false);if(introActiveRef.current)handleIntroPassEnd(v);};const onTime=()=>{setCurrent(v.currentTime);// Some browsers do not dispatch `ended` reliably after a\n// programmatic pause/seek. Catch the boundary just before it.\nif(introActiveRef.current&&!introBoundaryHandledRef.current&&v.duration>0&&isFinite(v.duration)&&v.currentTime>=Math.max(0,v.duration-.08)){handleIntroPassEnd(v);}};const onMeta=()=>setDuration(v.duration||0);v.addEventListener(\"play\",onPlay);v.addEventListener(\"pause\",onStop);v.addEventListener(\"ended\",onEnded);v.addEventListener(\"timeupdate\",onTime);v.addEventListener(\"loadedmetadata\",onMeta);v.addEventListener(\"durationchange\",onMeta);return()=>{v.removeEventListener(\"play\",onPlay);v.removeEventListener(\"pause\",onStop);v.removeEventListener(\"ended\",onEnded);v.removeEventListener(\"timeupdate\",onTime);v.removeEventListener(\"loadedmetadata\",onMeta);v.removeEventListener(\"durationchange\",onMeta);};};let cleanup;const find=()=>{if(videoRef.current)return;let v=null;let visibilityTarget=null;if(scope){visibilityTarget=document.querySelector('[data-framer-name=\"'+scope+'\"]');v=visibilityTarget?.querySelector(\"video\")||null;}else{let el=hostRef.current;while(el&&el!==document.body){const hit=el.querySelector(\"video\");if(hit){v=hit;visibilityTarget=el;break;}el=el.parentElement;}}if(v&&visibilityTarget)cleanup=attach(v);};find();const t1=setTimeout(find,400);const t2=setTimeout(find,1600);return()=>{clearTimeout(t1);clearTimeout(t2);cleanup?.();clearIntroTimer();const video=videoRef.current;if(video){video.pause();video.loop=false;if(originalMutedRef.current!==null){video.muted=originalMutedRef.current;}}originalMutedRef.current=null;introActiveRef.current=false;introPassRef.current=0;introBoundaryHandledRef.current=false;videoRef.current=null;};},[canvas,clearIntroTimer,handleIntroPassEnd,label,motionType,scope]);/* Keep the live system preference, rather than reading it only once. If a\n       visitor enables reduced motion while the intro is armed or playing, the\n       next intro effect pass cancels it immediately. */useEffect(()=>{if(canvas||typeof window===\"undefined\"||!window.matchMedia){return;}const media=window.matchMedia(\"(prefers-reduced-motion: reduce)\");const update=()=>setReducedMotion(media.matches);update();media.addEventListener?.(\"change\",update);return()=>media.removeEventListener?.(\"change\",update);},[canvas]);/* Background mode shares one explicit site-wide preference with every\n       RouteBackground instance. An explicit Play is allowed to override the\n       operating-system preference; without an explicit choice, reduced motion\n       starts paused. */useEffect(()=>{if(canvas||motionType!==\"background\"||typeof window===\"undefined\"){return;}let initialPaused=reducedMotion;try{const stored=window.localStorage.getItem(BACKGROUND_MOTION_STORAGE);if(stored===\"paused\")initialPaused=true;if(stored===\"playing\")initialPaused=false;}catch(error){// Fall back to the system preference.\n}setBackgroundPaused(initialPaused);const onMotionChange=event=>{const detail=event.detail;if(typeof detail?.paused===\"boolean\"){setBackgroundPaused(detail.paused);}};const onStorage=event=>{if(event.key!==BACKGROUND_MOTION_STORAGE)return;if(event.newValue===\"paused\")setBackgroundPaused(true);if(event.newValue===\"playing\")setBackgroundPaused(false);};window.addEventListener(BACKGROUND_MOTION_EVENT,onMotionChange);window.addEventListener(\"storage\",onStorage);return()=>{window.removeEventListener(BACKGROUND_MOTION_EVENT,onMotionChange);window.removeEventListener(\"storage\",onStorage);};},[canvas,motionType,reducedMotion]);/* Optional two-pass introduction. It arms after metadata confirms a\n       genuinely short clip and this instance's button enters the viewport. */useEffect(()=>{if(canvas||motionType!==\"video\"||!autoIntro||!found||reducedMotion||duration<=0||duration>=INTRO_MAX_SECONDS||typeof window===\"undefined\"){if(introActiveRef.current)stopIntro(true);return;}if(introActiveRef.current)return;const video=videoRef.current;// The button is the dependable visibility proxy: if visitors can see\n// the control, they can see and stop the short motion it introduces.\nconst target=hostRef.current;if(!video||!target)return;if(introConsumedRef.current)return;let observer=null;let cancelled=false;let started=false;let visibilityCheck=0;const startIntro=()=>{if(cancelled||started||introConsumedRef.current||introActiveRef.current){return;}started=true;originalMutedRef.current=video.muted;video.loop=false;video.muted=true;video.playsInline=true;try{video.currentTime=0;}catch(error){// Metadata can briefly be unavailable during hydration.\n}setCurrent(0);introActiveRef.current=true;introPassRef.current=1;introBoundaryHandledRef.current=false;setIntroPass(1);video.play().catch(()=>stopIntro(true));};const startIfVisible=()=>{const rect=target.getBoundingClientRect();const visible=rect.width>0&&rect.height>0&&rect.bottom>0&&rect.right>0&&rect.top<window.innerHeight&&rect.left<window.innerWidth;if(visible){observer?.disconnect();startIntro();}};if(typeof IntersectionObserver===\"undefined\"){startIfVisible();}else{observer=new IntersectionObserver(entries=>{const entry=entries[0];if(entry?.isIntersecting){observer?.disconnect();startIntro();}},{threshold:[0,.01]});observer.observe(target);startIfVisible();}// Framer can finish a nested layout one frame after effects run. This\n// second geometry check catches that without relying on the observer.\nvisibilityCheck=window.setTimeout(startIfVisible,350);return()=>{cancelled=true;observer?.disconnect();window.clearTimeout(visibilityCheck);};},[canvas,duration,found,motionType,autoIntro,reducedMotion,stopIntro]);const toggle=useCallback(()=>{if(motionType===\"background\"){setBackgroundMotion(!backgroundPaused);return;}const v=videoRef.current;if(!v)return;markIntroConsumed();// During a pass, the visible Pause control pauses immediately. During\n// the one-second rest, the visible Play control cancels the schedule\n// and starts an ordinary, one-shot manual play immediately.\nif(introActiveRef.current){const wasResting=introTimerRef.current!==null;stopIntro(wasResting);if(!wasResting)return;}v.loop=false;if(v.paused||v.ended){if(v.ended||v.duration>0&&v.currentTime>=v.duration-.05){v.currentTime=0;}v.play().catch(()=>{});}else{v.pause();}},[backgroundPaused,markIntroConsumed,motionType,setBackgroundMotion,stopIntro]);const onFocus=event=>{let visible=true;try{visible=event.target.matches(\":focus-visible\");}catch(error){visible=true;}setFocusRing(visible);};/* ── assembled pieces ── */const isBackground=motionType===\"background\";const isMotionPlaying=isBackground?!backgroundPaused:playing;const introCounterActive=!isBackground&&introPass>0;const showDuration=!isBackground&&duration>0;const ariaLabel=[isBackground?backgroundPaused?\"Play background motion\":\"Pause background motion\":isMotionPlaying?\"Pause motion\":\"Play motion\",label?\"— \"+label:\"\",introCounterActive?\", intro pass \"+introPass+\" of 2\":\"\",showDuration?\", \"+Math.round(duration)+\" seconds\":\"\"].join(\" \").replace(/\\s+/g,\" \").trim();const h=BUTTON_HEIGHT;const compact=!showTime;const showReadout=showTime||introCounterActive;const fullButtonWidth=isBackground?BACKGROUND_BUTTON_WIDTH:BUTTON_WIDTH;const hostWidth=showTime?fullButtonWidth:COMPACT_BUTTON_WIDTH;const buttonWidth=showTime?fullButtonWidth:introCounterActive?COMPACT_INTRO_WIDTH:COMPACT_BUTTON_WIDTH;const buttonGap=showReadout?showTime?8:6:0;const buttonPadding=showTime?isBackground?\"0 14px\":\"0 \"+Math.round(h*.33)+\"px\":introCounterActive?\"0 10px\":\"0\";const resizeTransition=compact&&!isBackground&&!reducedMotion?\"width 180ms ease, min-width 180ms ease, max-width 180ms ease\":\"none\";const time=isBackground?backgroundPaused?\"Motion paused\":\"Motion playing\":canvas?\"0:00 / 0:12\":introPass>0?fmt(current)+\" \\xb7 \\xd7\"+introPass+\"/2\":fmt(current)+\" / \"+fmt(duration);const readout=showTime?time:\"\\xd7\"+introPass+\"/2\";const readoutFontSize=showTime?fontSize:12;const missing=!isBackground&&!canvas&&!found;/* Framer can discard a nested component's <style> element on the\n       canvas. Apply the rules to the actual DOM nodes instead. Using the\n       important priority also beats site-wide button resets. */useSafeLayoutEffect(()=>{const host=hostRef.current;if(host){const setHost=(property,value)=>host.style.setProperty(property,value,\"important\");const hostRules={width:hostWidth+\"px\",\"min-width\":hostWidth+\"px\",\"max-width\":hostWidth+\"px\",height:BUTTON_HEIGHT+\"px\",\"min-height\":BUTTON_HEIGHT+\"px\",\"max-height\":BUTTON_HEIGHT+\"px\",flex:\"0 0 \"+hostWidth+\"px\",overflow:\"visible\",display:\"flex\",\"align-items\":\"center\",// The compact slot stays 48px wide. Its pill grows leftward,\n// keeping a bottom-right Framer constraint perfectly pinned.\n\"justify-content\":compact?\"flex-end\":\"center\"};Object.entries(hostRules).forEach(([property,value])=>setHost(property,value));}const button=buttonRef.current;if(!button)return;const setButton=(property,value)=>button.style.setProperty(property,value,\"important\");const buttonRules={\"-webkit-appearance\":\"none\",appearance:\"none\",\"box-sizing\":\"border-box\",display:\"inline-flex\",\"align-items\":\"center\",\"justify-content\":\"center\",gap:buttonGap+\"px\",width:buttonWidth+\"px\",\"min-width\":buttonWidth+\"px\",\"max-width\":buttonWidth+\"px\",height:h+\"px\",\"min-height\":h+\"px\",\"max-height\":h+\"px\",\"flex-shrink\":\"0\",padding:buttonPadding,margin:\"0\",border:\"0\",\"border-radius\":\"9999px\",overflow:\"hidden\",background,color:textColor,cursor:missing?\"not-allowed\":\"pointer\",opacity:missing?\"0.55\":\"1\",\"line-height\":\"1\",\"touch-action\":\"manipulation\",\"-webkit-tap-highlight-color\":\"transparent\",\"box-shadow\":focusRing?\"0 0 0 3px \"+ringColor+\", 0 0 0 6px rgba(255,255,255,0.9)\":\"0 2px 10px rgba(20,17,15,0.35)\",outline:\"none\",transition:resizeTransition};Object.entries(buttonRules).forEach(([property,value])=>setButton(property,value));const timeNode=timeRef.current;if(timeNode){const setTime=(property,value)=>timeNode.style.setProperty(property,value,\"important\");const timeRules={\"font-family\":\"Google Sans, system-ui, sans-serif\",\"font-size\":readoutFontSize+\"px\",\"font-weight\":\"600\",\"letter-spacing\":\"0.02em\",color:textColor,\"font-variant-numeric\":\"tabular-nums\",\"white-space\":\"nowrap\",\"line-height\":\"1\"};Object.entries(timeRules).forEach(([property,value])=>setTime(property,value));}const icon=button.querySelector(\"svg\");if(icon instanceof SVGElement){icon.style.setProperty(\"display\",\"block\",\"important\");icon.style.setProperty(\"width\",\"20px\",\"important\");icon.style.setProperty(\"height\",\"20px\",\"important\");icon.style.setProperty(\"flex-shrink\",\"0\",\"important\");icon.querySelectorAll(\"path, rect\").forEach(shape=>{if(shape instanceof SVGElement){shape.style.setProperty(\"fill\",iconColor,\"important\");}});}},[background,buttonGap,buttonPadding,buttonWidth,compact,focusRing,fontSize,h,hostWidth,iconColor,missing,isMotionPlaying,readoutFontSize,resizeTransition,ringColor,showTime,textColor]);return /*#__PURE__*/_jsx(\"div\",{ref:hostRef,\"data-motion-button\":\"\",style:{...style,width:hostWidth,minWidth:hostWidth,maxWidth:hostWidth,height:BUTTON_HEIGHT,minHeight:BUTTON_HEIGHT,maxHeight:BUTTON_HEIGHT,flex:`0 0 ${hostWidth}px`,overflow:\"visible\",display:\"flex\",alignItems:\"center\",justifyContent:compact?\"flex-end\":\"center\"},children:/*#__PURE__*/_jsxs(\"button\",{ref:buttonRef,type:\"button\",\"aria-label\":ariaLabel,disabled:missing,onClick:toggle,onFocus:onFocus,onBlur:()=>setFocusRing(false),title:missing?\"No video layer found in this frame\":isBackground&&reducedMotion&&backgroundPaused?\"Reduced motion is enabled. Activate to play background motion.\":!isBackground&&reducedMotion?\"Automatic intro skipped because reduced motion is enabled\":undefined,style:{WebkitAppearance:\"none\",appearance:\"none\",boxSizing:\"border-box\",display:\"inline-flex\",alignItems:\"center\",justifyContent:\"center\",gap:buttonGap,width:buttonWidth,maxWidth:buttonWidth,height:h,minHeight:h,maxHeight:h,minWidth:buttonWidth,flexShrink:0,padding:buttonPadding,border:0,borderRadius:9999,overflow:\"hidden\",background,cursor:missing?\"not-allowed\":\"pointer\",opacity:missing?.55:1,lineHeight:1,touchAction:\"manipulation\",boxShadow:focusRing?\"0 0 0 3px \"+ringColor+\", 0 0 0 6px rgba(255,255,255,0.9)\":\"0 2px 10px rgba(20,17,15,0.35)\",outline:\"none\",transition:resizeTransition},children:[isMotionPlaying?/*#__PURE__*/_jsx(PauseIcon,{color:iconColor}):/*#__PURE__*/_jsx(PlayIcon,{color:iconColor}),showReadout?// Visual nicety only — a timecode re-announced every\n// second is noise; duration lives in the label instead.\n/*#__PURE__*/_jsx(\"span\",{ref:timeRef,\"aria-hidden\":\"true\",style:{fontFamily:\"Google Sans, system-ui, sans-serif\",fontSize:readoutFontSize,fontWeight:600,letterSpacing:\"0.02em\",color:textColor,fontVariantNumeric:\"tabular-nums\",whiteSpace:\"nowrap\"},children:readout}):null]})});}/* Simple SVG icons; live-node styling above protects them from page resets. */function PauseIcon({color}){return /*#__PURE__*/_jsxs(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",children:[/*#__PURE__*/_jsx(\"rect\",{x:\"5\",y:\"4\",width:\"5\",height:\"16\",rx:\"2.5\",fill:color}),/*#__PURE__*/_jsx(\"rect\",{x:\"14\",y:\"4\",width:\"5\",height:\"16\",rx:\"2.5\",fill:color})]});}function PlayIcon({color}){return /*#__PURE__*/_jsx(\"svg\",{width:\"20\",height:\"20\",viewBox:\"0 0 24 24\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M8 5.5C8 4.4 9.2 3.7 10.1 4.3L19.6 10.8C20.5 11.4 20.5 12.6 19.6 13.2L10.1 19.7C9.2 20.3 8 19.6 8 18.5V5.5Z\",fill:color})});}const backgroundMode=p=>p.motionType===\"background\";addPropertyControls(MotionButton,{motionType:{type:ControlType.Enum,title:\"Controls\",defaultValue:\"video\",options:[\"video\",\"background\"],optionTitles:[\"Video\",\"Background\"],displaySegmentedControl:true,description:\"Video controls the nearest native video. Background controls every RouteBackground animation on the site.\"},label:{type:ControlType.String,title:\"Label\",defaultValue:\"\",placeholder:\"Search experience\",description:\"Names the button per instance: “Play motion — Search experience”.\"},scope:{type:ControlType.String,title:\"Scope\",defaultValue:\"\",placeholder:\"Auto (nearest video)\",description:\"Leave empty to control the nearest video in this frame. Or type a layer name to pin it.\",hidden:backgroundMode},showTime:{type:ControlType.Boolean,title:\"Time\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"Hide uses a 48 \\xd7 48 mobile control. Video mode expands only while showing the short-intro pass counter.\"},autoIntro:{type:ControlType.Boolean,title:\"Short intro\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",description:\"For videos under 5 seconds: plays twice with a 1 second pause, shows a pass counter, and runs once per page visit. Reduced motion skips it.\",hidden:backgroundMode},background:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#F5F0E8\"},iconColor:{type:ControlType.Color,title:\"Icon\",defaultValue:\"#1C1917\"},textColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"#1C1917\"},fontSize:{type:ControlType.Number,title:\"Text size\",min:10,max:18,step:1,defaultValue:13},ringColor:{type:ControlType.Color,title:\"Focus ring\",defaultValue:\"#FF9231\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MotionButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Motionbutton.map"],"mappings":"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"}