{"version":3,"file":"ActionButton.Codu0hc2.mjs","names":["useMemo","useState","useUser","useSession","useCallback","signOut","storeCheckout","sendVerificationEmail"],"sources":["https:/framerusercontent.com/modules/JHjgrlRt9lS5A5ZVDFcg/1lcSadlVt70oWErM3Ibh/ActionButton.js"],"sourcesContent":["// Production-ready Framer FramerAuthButton Component\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{useCallback,useMemo,useState}from\"react\";import{useUser,useSession,signOut,signInSocial,storeCheckout,sendVerificationEmail}from\"https://cdn.jsdelivr.net/npm/@framerauth/sdk@2/dist/framerauth.mjs\";function getUrlWithDomain(path){const baseDomain=window.location.href;if(!path){return baseDomain;}else if(path?.startsWith(\"/\")){const url=new URL(path,baseDomain);return url.href;}else{try{// If it's already a full URL, return as-is\nconst url=new URL(path);return url.href;}catch{// If it fails, fallback to the base domain\nreturn baseDomain;}}try{// If it's already a full URL, return as-is\nconst url=new URL(path);return url.href;}catch{// If it fails, treat as relative path\nconst url=new URL(path,baseDomain);return url.href;}}const defaultSignInWithGoogleLabel=\"Continue with Google\";const defaultSignInWithGoogleIcon=/*#__PURE__*/_jsxs(\"svg\",{version:\"1.1\",x:\"0px\",y:\"0px\",width:\"48px\",height:\"48px\",viewBox:\"0 0 48 48\",\"enable-background\":\"new 0 0 48 48\",children:[/*#__PURE__*/_jsx(\"path\",{fill:\"#FFC107\",d:\"M43.611,20.083H42V20H24v8h11.303c-1.649,4.657-6.08,8-11.303,8c-6.627,0-12-5.373-12-12 c0-6.627,5.373-12,12-12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657C34.046,6.053,29.268,4,24,4C12.955,4,4,12.955,4,24 c0,11.045,8.955,20,20,20c11.045,0,20-8.955,20-20C44,22.659,43.862,21.35,43.611,20.083z\"}),\" \",/*#__PURE__*/_jsx(\"path\",{fill:\"#FF3D00\",d:\"M6.306,14.691l6.571,4.819C14.655,15.108,18.961,12,24,12c3.059,0,5.842,1.154,7.961,3.039l5.657-5.657 C34.046,6.053,29.268,4,24,4C16.318,4,9.656,8.337,6.306,14.691z\"}),\" \",/*#__PURE__*/_jsx(\"path\",{fill:\"#4CAF50\",d:\"M24,44c5.166,0,9.86-1.977,13.409-5.192l-6.19-5.238C29.211,35.091,26.715,36,24,36 c-5.202,0-9.619-3.317-11.283-7.946l-6.522,5.025C9.505,39.556,16.227,44,24,44z\"}),\" \",/*#__PURE__*/_jsx(\"path\",{fill:\"#1976D2\",d:\"M43.611,20.083H42V20H24v8h11.303c-0.792,2.237-2.231,4.166-4.087,5.571 c0.001-0.001,0.002-0.001,0.003-0.002l6.19,5.238C36.971,39.205,44,34,44,24C44,22.659,43.862,21.35,43.611,20.083z\"}),\" \"]});const defaultSignInWithGithubLabel=\"Continue with Github\";const defaultSignInWithGithubIcon=/*#__PURE__*/_jsx(\"svg\",{viewBox:\"0 0 512 512\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM252.8 8c-138.7 0-244.8 105.3-244.8 244 0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1 100-33.2 167.8-128.1 167.8-239 0-138.7-112.5-244-251.2-244zM105.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"})});/**\n * ActionButton.tsx\n * By Joel Whitaker\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth auto prefer-fixed\n * @framerSupportedLayoutHeight auto prefer-fixed\n */export default function ActionButton(props){const{label:_label,image:_image,actionType,authAction,storeAction,link,pluginId,priceId,quantity,newTab,callback,button,style}=props;const{borderObject:buttonBorderObject,buttonShadow,buttonPadding,buttonMargin}=button;const label=useMemo(()=>{let label=_label;if(!_label||_label.trim().length===0){if(actionType===\"auth\"){if(authAction===\"googleSignIn\"){label=defaultSignInWithGoogleLabel;}else if(authAction===\"githubSignIn\"){label=defaultSignInWithGithubLabel;}}}return label;},[_label,actionType,authAction]);const image=useMemo(()=>{let image=_image;if(!image){if(actionType===\"auth\"){if(authAction===\"googleSignIn\"){image=defaultSignInWithGoogleIcon;}else if(authAction===\"githubSignIn\"){image=defaultSignInWithGithubIcon;}}}return image;},[_image,actionType,authAction]);const[isLoading,setIsLoading]=useState(false);// Get user authentication state\nconst{user}=useUser();const{session}=useSession();// Calculate icon/spinner size based on font size, with min/max constraints\nconst fontSize=parseInt(button?.buttonFont?.fontSize||\"13px\");const iconSize=Math.min(Math.max(fontSize,14),120);// Button styles (mirror BaseForm composition)\nconst buttonShadowStyles=buttonShadow||null;const buttonBorderStyles=buttonBorderObject?`inset 0 0 0 ${buttonBorderObject.borderWidth}px ${buttonBorderObject.borderColor}`:null;// Determine if button should render\nconst shouldRender=useCallback(()=>{if(RenderTarget.current()===RenderTarget.canvas){return true;}// Always render non-auth buttons\nif(actionType!==\"auth\"){return true;}// For auth buttons, check user state\nif(authAction===\"googleSignIn\"||authAction===\"githubSignIn\"){// Sign in buttons - only show when logged out\nreturn!session;}if(authAction===\"signOut\"){// Sign out button - only show when logged in\nreturn!!session;}return true;},[actionType,authAction,session]);const handleClick=useCallback(async e=>{e.preventDefault();const callbackURL=getUrlWithDomain(callback);console.log(\"Callback url\",callbackURL);const linkURL=getUrlWithDomain(link);if(isLoading)return;setIsLoading(true);try{switch(actionType){case\"auth\":await handleAuthAction(authAction,callbackURL);break;case\"store\":await handleStoreAction(user,storeAction,pluginId,priceId,quantity,callbackURL);break;case\"link\":handleLinkAction(linkURL,newTab);setIsLoading(false);break;default:setIsLoading(false);}}catch(error){console.error(\"Action failed:\",error);if(error instanceof Error){alert(error.message);}}finally{setIsLoading(false);}},[actionType,authAction,storeAction,link,priceId,quantity,newTab,callback,isLoading,user]);const handleAuthAction=useCallback(async(action,callbackURL)=>{switch(action){case\"googleSignIn\":signInSocial({provider:\"google\",callbackURL:callbackURL});break;case\"githubSignIn\":signInSocial({provider:\"github\",callbackURL:callbackURL});break;case\"signOut\":await signOut();window.location.reload();break;default:throw new Error(`Unknown auth action: ${action}`);}},[]);const handleStoreAction=async(user,action,pluginId,priceId,quantity,callbackURL)=>{switch(action){case\"checkout\":if(!priceId){throw new Error(\"Price ID is required for checkout\");}const res=await storeCheckout({pluginId:pluginId,priceId:priceId,quantity:quantity||1,successUrl:callbackURL});if(res.error){if(user&&res.error.code===\"EMAIL_NOT_VERIFIED\"){const message=`${res.error.message}\nPress OK to send a verification email.`;if(!confirm(message))return;const{error}=await sendVerificationEmail({email:user.email,callbackURL:window.location.href});if(error)throw new Error(error.message);}else{throw new Error(res.error.message||\"Checkout failed\");}}else{window.location.href=res.data.url;}break;case\"portal\":const baseURL=window?.FramerAuth?.baseURL;const portalURL=`${baseURL}/plugins/${pluginId}/portal`;window.open(portalURL,\"_blank\",\"noopener,noreferrer\");setIsLoading(false);break;default:throw new Error(`Unknown store action: ${action}`);}};const handleLinkAction=useCallback((url,newTab)=>{if(!url)return;if(newTab){window.open(url,\"_blank\",\"noopener,noreferrer\");}else{window.location.href=url;}},[]);// Loading spinner component\nconst LoadingSpinner=()=>{return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",border:\"2px solid transparent\",borderTop:`2px solid ${button?.color}`,borderRadius:\"50%\",animation:\"spin 1s linear infinite\"}});};// Icon container component that maintains consistent sizing\nconst IconContainer=()=>{// Only render if we have an image or are loading\nif(!image&&!isLoading)return null;const imageJsx=typeof image===\"object\"&&\"src\"in image?/*#__PURE__*/_jsx(\"img\",{src:image.src,srcSet:image.srcSet,alt:image.alt||\"\",style:{width:\"100%\",height:\"100%\",objectFit:\"contain\"}}):image;return /*#__PURE__*/_jsx(\"div\",{style:{width:`${iconSize}px`,height:`${iconSize}px`,flexShrink:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\"},children:isLoading?/*#__PURE__*/_jsx(LoadingSpinner,{}):image?imageJsx:null});};if(!shouldRender()){return null;}return /*#__PURE__*/_jsxs(\"div\",{style:{margin:buttonMargin},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                    @keyframes spin {\n                        0% { transform: rotate(0deg); }\n                        100% { transform: rotate(360deg); }\n                    }\n                `}),/*#__PURE__*/_jsxs(\"button\",{type:\"button\",disabled:isLoading,style:{...style,width:\"100%\",height:\"100%\",background:button?.fill,color:button?.color,borderRadius:button?.borderRadius??8,border:\"none\",padding:buttonPadding,boxShadow:dynamicBoxShadow(buttonShadowStyles,buttonBorderStyles),cursor:isLoading?\"not-allowed\":\"pointer\",outline:\"none\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:\"8px\",fontSize:16,...button?.buttonFont,userSelect:\"none\",transition:\"background 0.15s, color 0.15s, box-shadow 0.15s\",opacity:isLoading?.7:1,position:\"relative\"},\"aria-label\":label,onClick:handleClick,tabIndex:0,children:[/*#__PURE__*/_jsx(IconContainer,{}),label&&/*#__PURE__*/_jsx(\"span\",{style:{width:\"max-content\",minWidth:0,...button?.buttonFont},children:label})]})]});}function dynamicBoxShadow(...shadows){const output=[];shadows.forEach(shadow=>shadow&&output.push(shadow));return output.join(\", \");}addPropertyControls(ActionButton,{actionType:{type:ControlType.Enum,options:[\"auth\",\"store\",\"link\"],optionTitles:[\"Auth\",\"Store\",\"Link\"]},authAction:{type:ControlType.Enum,title:\"Action\",options:[\"googleSignIn\",\"githubSignIn\",\"signOut\"],optionTitles:[\"Sign in with Google\",\"Sign in with Github\",\"Sign out\"],hidden(props){return props.actionType!==\"auth\";}},link:{type:ControlType.Link,hidden(props){switch(props.actionType){case\"auth\":return true;case\"store\":return true;case\"link\":return false;default:return true;}}},newTab:{type:ControlType.Boolean,title:\"New Tab\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden(props){return props.actionType!==\"link\";}},storeAction:{type:ControlType.Enum,title:\"Action\",options:[\"checkout\",\"portal\"],optionTitles:[\"Checkout\",\"Portal\"],hidden(props){return props.actionType!==\"store\";}},pluginId:{title:\"Plugin\",type:ControlType.Enum,options:[\"stripe\",\"lemonsqueezy\"],optionTitles:[\"Stripe\",\"Lemon Squeezy\"],defaultValue:\"stripe\",hidden(props){return props.actionType!==\"store\";}},priceId:{title:\"Lookup Key\",type:ControlType.String,hidden(props){switch(props.actionType){case\"auth\":return true;case\"store\":return props.storeAction!==\"checkout\";default:return true;}}},quantity:{type:ControlType.Number,defaultValue:1,hidden(props){switch(props.actionType){case\"auth\":return true;case\"store\":return props.storeAction!==\"checkout\";default:return true;}}},label:{type:ControlType.String,title:\"Label\",defaultValue:\"Button\"},image:{type:ControlType.ResponsiveImage},callback:{type:ControlType.Link,title:\"Redirect\",hidden(props){switch(props.actionType){case\"auth\":return!(props.authAction===\"googleSignIn\"||props.authAction===\"githubSignIn\");case\"store\":return props.storeAction!==\"checkout\";default:return true;}}},button:{title:\"Button\",type:ControlType.Object,controls:{buttonFont:{type:ControlType.Font,title:\"Font\",controls:\"extended\"},fill:{title:\"Fill\",type:ControlType.Color,defaultValue:\"#333\"},color:{title:\"Text\",type:ControlType.Color,defaultValue:\"#FFF\"},buttonPadding:{title:\"Padding\",type:ControlType.Padding,defaultValue:\"15px\"},buttonMargin:{type:ControlType.Padding,title:\"Margin\",defaultValue:\"0px\"},borderRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"8px\"},borderObject:{type:ControlType.Border,title:\"Border\",optional:true,defaultValue:{borderWidth:1,borderStyle:\"solid\",borderColor:\"rgba(200,200,200,0.5)\"}},buttonShadow:{type:ControlType.BoxShadow,title:\"Shadow\",optional:true}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ActionButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto prefer-fixed\",\"framerSupportedLayoutWidth\":\"auto prefer-fixed\",\"framerDisableUnlink\":\"*\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ActionButton.map"],"mappings":"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"}