{"version":3,"file":"GoBackButton.DxPIUhoR.mjs","names":["useState"],"sources":["https:/framerusercontent.com/modules/EAdAqvi7L7FsDpt0Q3PU/RBtrAENicg7Z30XxKDfy/GoBackButton.js"],"sourcesContent":["// Navigation back button that adapts based on user's current route\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function GoBackButton(props){const{showIcon,backgroundColor,textColor,hoverBackgroundColor,hoverTextColor,borderRadius,padding,font}=props;const[canGoBack,setCanGoBack]=useState(false);const[isHovered,setIsHovered]=useState(false);const[backText,setBackText]=useState(\"Volver\");// Translation object for different languages\nconst translations={\"es\":\"Volver\",\"en\":\"Go back\",\"fr\":\"Retour\",\"de\":\"Zur\\xfcck\",\"it\":\"Indietro\",\"pt\":\"Voltar\",\"ru\":\"Назад\",\"ja\":\"戻る\",\"ko\":\"뒤로\",\"zh\":\"返回\",\"ar\":\"العودة\",\"hi\":\"वापस जाएं\"};// Function to detect user's language/country\nconst getUserLanguage=()=>{if(typeof window===\"undefined\")return\"es\";// Try to get language from browser\nconst browserLang=navigator.language||navigator.languages?.[0]||\"es\";const langCode=browserLang.split(\"-\")[0].toLowerCase();// Return Spanish as default, or detected language if available\nreturn translations[langCode]?langCode:\"es\";};// Function to extract clean page name from URL\nconst getPageNameFromUrl=url=>{try{const urlObj=new URL(url);const pathname=urlObj.pathname;// Handle root path\nif(pathname===\"/\"||pathname===\"\"){return\"inicio\";}// Get the last segment of the path\nconst segments=pathname.split(\"/\").filter(segment=>segment.length>0);if(segments.length===0)return\"inicio\";let pageName=segments[segments.length-1];// Remove file extensions\npageName=pageName.replace(/\\.(html|htm|php|aspx?|jsp)$/i,\"\");// Replace hyphens, underscores, and dots with spaces\npageName=pageName.replace(/[-_.]/g,\" \");// Handle special cases\nif(pageName.toLowerCase()===\"index\")return\"inicio\";if(pageName===\"\")return\"inicio\";return pageName;}catch(error){return\"p\\xe1gina anterior\";}};useEffect(()=>{if(typeof window!==\"undefined\"){// Detect user's language\nconst userLang=getUserLanguage();const baseText=translations[userLang];// Check if browser supports history API and has previous entries\nconst hasHistory=window.history&&window.history.length>1;// Show button if user can go back in history\nstartTransition(()=>setCanGoBack(hasHistory));// Try to get referrer information for better text\nif(hasHistory&&document.referrer&&document.referrer!==\"\"&&document.referrer!==window.location.href){try{const referrerUrl=new URL(document.referrer);const currentUrl=new URL(window.location.href);// Check if it's from the same domain\nif(referrerUrl.hostname===currentUrl.hostname){const previousPageName=getPageNameFromUrl(document.referrer);startTransition(()=>setBackText(`${baseText} a ${previousPageName}`));return;}}catch(error){console.log(\"Error parsing referrer:\",error);}}// Fallback to simple back text\nif(hasHistory){startTransition(()=>setBackText(baseText));}}},[]);const handleClick=()=>{if(typeof window!==\"undefined\"&&canGoBack){// Before going back, store current page as the \"next\" page for the previous page\nconst currentPageName=getPageNameFromUrl(window.location.href);sessionStorage.setItem(\"nextPageAfterBack\",currentPageName);window.history.back();}};const handleMouseEnter=()=>{startTransition(()=>setIsHovered(true));};const handleMouseLeave=()=>{startTransition(()=>setIsHovered(false));};if(!canGoBack){return null;}const currentBackgroundColor=isHovered?hoverBackgroundColor:backgroundColor;const currentTextColor=isHovered?hoverTextColor:textColor;return /*#__PURE__*/_jsxs(\"button\",{onClick:handleClick,onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,style:{display:\"flex\",alignItems:\"center\",gap:showIcon?\"8px\":\"0px\",backgroundColor:currentBackgroundColor,color:currentTextColor,border:\"none\",borderRadius:`${borderRadius}px`,padding:`${padding}px ${padding*1.5}px`,cursor:\"pointer\",transition:\"all 0.2s ease\",outline:\"none\",...font,minWidth:\"max-content\"},\"aria-label\":backText,children:[showIcon&&/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:/*#__PURE__*/_jsx(\"path\",{d:\"m15 18-6-6 6-6\"})}),/*#__PURE__*/_jsx(\"span\",{children:backText})]});}addPropertyControls(GoBackButton,{showIcon:{type:ControlType.Boolean,title:\"Show Icon\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#FFFFFF\"},hoverBackgroundColor:{type:ControlType.Color,title:\"Hover Background\",defaultValue:\"#333333\"},hoverTextColor:{type:ControlType.Color,title:\"Hover Text Color\",defaultValue:\"#FFFFFF\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",defaultValue:8,min:0,max:32,unit:\"px\"},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:12,min:4,max:32,unit:\"px\"},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"14px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"},controls:\"extended\",defaultFontType:\"sans-serif\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GoBackButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GoBackButton.map"],"mappings":"+UAIG,SAAwB,EAAa,EAAM,CAAC,GAAK,CAAC,WAAS,kBAAgB,YAAU,uBAAqB,iBAAe,eAAa,UAAQ,QAAM,EAAW,CAAC,EAAU,GAAcA,EAAS,GAAM,CAAM,CAAC,EAAU,GAAcA,EAAS,GAAM,CAAM,CAAC,EAAS,GAAaA,EAAS,SAAS,CACjS,EAAa,CAAC,GAAK,SAAS,GAAK,UAAU,GAAK,SAAS,GAAK,SAAY,GAAK,WAAW,GAAK,SAAS,GAAK,QAAQ,GAAK,KAAK,GAAK,KAAK,GAAK,KAAK,GAAK,SAAS,GAAK,YAAY,CAClL,MAAoB,CAAC,GAAU,IAAS,OAAY,MAAM,KACK,IAAM,GAAzD,EAAU,UAAU,EAAU,YAAY,IAAI,MAAgC,MAAM,IAAI,CAAC,GAAG,aAAa,CAC3H,OAAO,EAAa,GAAU,EAAS,MACjC,EAAmB,GAAK,CAAC,GAAG,CAA2B,IAAM,EAAnB,IAAI,IAAI,EAAI,CAAuB,SACnF,GAAG,IAAW,KAAK,IAAW,GAAI,MAAM,SACxC,IAAM,EAAS,EAAS,MAAM,IAAI,CAAC,OAAO,GAAS,EAAQ,OAAO,EAAE,CAAC,GAAG,EAAS,SAAS,EAAE,MAAM,SAAS,IAAI,EAAS,EAAS,EAAS,OAAO,GAG9D,MAFnF,GAAS,EAAS,QAAQ,+BAA+B,GAAG,CAC5D,EAAS,EAAS,QAAQ,SAAS,IAAI,CACpC,EAAS,aAAa,GAAG,SAA0B,IAAW,GAAS,SAAgB,OAAsB,CAAC,MAAM,oBAO4U,OAPpT,MAAc,CAAC,GAAU,IAAS,OAAY,CAC7L,IAAM,EAAS,GAAiB,CAAO,EAAS,EAAa,GACvD,EAAW,EAAO,SAAS,EAAO,QAAQ,OAAO,EAEvD,GADA,MAAoB,EAAa,EAAW,CAAC,CAC1C,GAAY,SAAS,UAAU,SAAS,WAAW,IAAI,SAAS,WAAW,EAAO,SAAS,KAAM,GAAG,CAAC,IAAM,EAAY,IAAI,IAAI,SAAS,SAAS,CAAO,EAAW,IAAI,IAAI,EAAO,SAAS,KAAK,CACnM,GAAG,EAAY,WAAW,EAAW,SAAS,CAAC,IAAM,EAAiB,EAAmB,SAAS,SAAS,CAAC,MAAoB,EAAY,GAAG,EAAS,KAAK,IAAmB,CAAC,CAAC,cAAe,EAAM,CAAC,QAAQ,IAAI,0BAA0B,EAAM,CACjP,GAAY,MAAoB,EAAY,EAAS,CAAC,GAAK,EAAE,CAAC,CACoO,EAAkL,EAAM,SAAS,CAAC,YAD/Y,CAAC,GAAU,IAAS,QAAa,EAAU,CACnI,IAAM,EAAgB,EAAmB,EAAO,SAAS,KAAK,CAAC,eAAe,QAAQ,oBAAoB,EAAgB,CAAC,EAAO,QAAQ,MAAM,GAA2W,iBAA5U,CAAC,MAAoB,EAAa,GAAK,CAAC,EAAkU,iBAApS,CAAC,MAAoB,EAAa,GAAM,CAAC,EAAyR,MAAM,CAAC,QAAQ,OAAO,WAAW,SAAS,IAAI,EAAS,MAAM,MAAM,gBAAhS,EAAU,EAAqB,EAAwS,MAAjQ,EAAU,EAAe,EAA+P,OAAO,OAAO,aAAa,GAAG,EAAa,IAAI,QAAQ,GAAG,EAAQ,KAAK,EAAQ,IAAI,IAAI,OAAO,UAAU,WAAW,gBAAgB,QAAQ,OAAO,GAAG,EAAK,SAAS,cAAc,CAAC,aAAa,EAAS,SAAS,CAAC,GAAuB,EAAK,MAAM,CAAC,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OAAO,OAAO,eAAe,YAAY,IAAI,cAAc,QAAQ,eAAe,QAAQ,SAAsB,EAAK,OAAO,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAc,EAAK,OAAO,CAAC,SAAS,EAAS,CAAC,CAAC,CAAC,CAAC,CAA12B,0BApB9P,IAAsD,IAAoD,CAoBggC,EAAoB,EAAa,CAAC,SAAS,CAAC,KAAK,EAAY,QAAQ,MAAM,YAAY,aAAa,GAAK,aAAa,OAAO,cAAc,OAAO,CAAC,gBAAgB,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,UAAU,CAAC,qBAAqB,CAAC,KAAK,EAAY,MAAM,MAAM,mBAAmB,aAAa,UAAU,CAAC,eAAe,CAAC,KAAK,EAAY,MAAM,MAAM,mBAAmB,aAAa,UAAU,CAAC,aAAa,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,EAAE,IAAI,EAAE,IAAI,GAAG,KAAK,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAY,OAAO,MAAM,UAAU,aAAa,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,aAAa,CAAC,SAAS,OAAO,QAAQ,WAAW,cAAc,UAAU,WAAW,MAAM,CAAC,SAAS,WAAW,gBAAgB,aAAa,CAAC,CAAC"}