{"version":3,"file":"DownloadButton.CSItCc-R.mjs","names":["useState","useCallback","__esmMin","window","ne","te","init_ssg_sandbox_shims","_e","init_jsx_runtime","init_npm_react_18_3_1","p","init_framer_CaDWdxiz","addPropertyControls","ControlType","DownloadButton","props","showDropdown","setShowDropdown","downloadImage","blob","image","format","url","link","filename","canvas","ctx","img","error","handleMainClick","showFormatOptions","formats","style","textColor","buttonFont","label","init_DownloadButton"],"sources":["https:/framerusercontent.com/modules/eWoVOgaavBZDt9wRY1z0/xhfatdoNBfrKXB5G7yaN/DownloadButton.js"],"sourcesContent":["// Create a download button component for images and SVGs with multiple format options\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useCallback,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function DownloadButton(props){const{label=\"Download\",image={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Download image\"},filename=\"image\",textColor=\"#000000\",showFormatOptions=true,buttonFont,style}=props;const[showDropdown,setShowDropdown]=useState(false);const downloadImage=useCallback(async format=>{if(typeof window===\"undefined\")return;try{const response=await fetch(image.src);const blob=await response.blob();if(format===\"svg\"&&blob.type.includes(\"svg\")){// Direct SVG download\nconst url=URL.createObjectURL(blob);const link=document.createElement(\"a\");link.href=url;link.download=`${filename}.svg`;document.body.appendChild(link);link.click();document.body.removeChild(link);URL.revokeObjectURL(url);}else{// Convert to canvas for other formats\nconst canvas=document.createElement(\"canvas\");const ctx=canvas.getContext(\"2d\");const img=new Image;img.onload=()=>{canvas.width=img.width;canvas.height=img.height;ctx?.drawImage(img,0,0);canvas.toBlob(blob=>{if(blob){const url=URL.createObjectURL(blob);const link=document.createElement(\"a\");link.href=url;link.download=`${filename}.${format}`;document.body.appendChild(link);link.click();document.body.removeChild(link);URL.revokeObjectURL(url);}},`image/${format}`,.9);};img.crossOrigin=\"anonymous\";img.src=image.src;}}catch(error){console.error(\"Download failed:\",error);}startTransition(()=>setShowDropdown(false));},[image.src,filename]);const handleMainClick=()=>{if(showFormatOptions){startTransition(()=>setShowDropdown(!showDropdown));}else{downloadImage(\"png\");}};const formats=[{key:\"png\",label:\"PNG\"},{key:\"svg\",label:\"SVG\"}];return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",display:\"inline-block\",...style},children:[/*#__PURE__*/_jsxs(\"button\",{onClick:handleMainClick,style:{backgroundColor:\"transparent\",color:textColor,border:\"none\",borderRadius:0,padding:\"4px 0\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",gap:\"8px\",transition:\"all 0.2s ease\",...buttonFont,minWidth:\"max-content\",textDecoration:\"underline\"},onMouseEnter:e=>{e.currentTarget.style.opacity=\"0.7\";e.currentTarget.style.transform=\"translateY(0)\";},onMouseLeave:e=>{e.currentTarget.style.opacity=\"1\";e.currentTarget.style.transform=\"translateY(0)\";},children:[/*#__PURE__*/_jsx(\"span\",{style:{textDecoration:\"underline\"},children:label}),/*#__PURE__*/_jsxs(\"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:\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"}),/*#__PURE__*/_jsx(\"polyline\",{points:\"7,10 12,15 17,10\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"12\",y1:\"15\",x2:\"12\",y2:\"3\"})]})]}),showFormatOptions&&showDropdown&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:\"100%\",left:0,right:0,backgroundColor:\"#FFFFFF\",border:\"1px solid #E5E5E5\",borderRadius:4,boxShadow:\"0 4px 12px rgba(0, 0, 0, 0.1)\",zIndex:1e3,marginTop:\"4px\",overflow:\"hidden\"},children:formats.map(format=>/*#__PURE__*/_jsxs(\"button\",{onClick:()=>downloadImage(format.key),style:{width:\"100%\",padding:\"12px 16px\",border:\"none\",backgroundColor:\"transparent\",color:\"#333333\",cursor:\"pointer\",textAlign:\"left\",transition:\"background-color 0.2s ease\",...buttonFont},onMouseEnter:e=>{e.currentTarget.style.backgroundColor=\"#F5F5F5\";},onMouseLeave:e=>{e.currentTarget.style.backgroundColor=\"transparent\";},children:[\"Download as \",format.label]},format.key))})]});}addPropertyControls(DownloadButton,{label:{type:ControlType.String,title:\"Button Text\",defaultValue:\"Download\"},image:{type:ControlType.ResponsiveImage,title:\"Image to Download\"},filename:{type:ControlType.String,title:\"Filename\",defaultValue:\"image\",placeholder:\"Enter filename without extension\"},showFormatOptions:{type:ControlType.Boolean,title:\"Format Options\",defaultValue:true,enabledTitle:\"Show Dropdown\",disabledTitle:\"PNG Only\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},buttonFont:{type:ControlType.Font,title:\"Button Font\",defaultValue:{fontSize:\"14px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1em\"},controls:\"extended\",defaultFontType:\"sans-serif\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DownloadButton\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DownloadButton.map"],"mappings":"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"}