{"version":3,"file":"FileUploader.DaJLJIPQ.mjs","names":["useState","useMemo","startTransition","__esmMin","init_npm_react_18_3_1","te","pe","window","init_ssg_sandbox_shims","_e","init_jsx_runtime","p","addPropertyControls","init_framer_BL70qLPA","ControlType","FileDownloader","props","isHovered","setIsHovered","downloadUrl","useFileUpload","fileUrl","fileUrlInput","fileExtension","url","parts","downloadName","fileName","transformedLabel","buttonLabel","textCase","txt","style","showIcon","iconGap","hover","buttonColor","buttonTextColor","font","resp","blob","link","iconPosition","iconSize","iconColor","icon","init_FileUploader"],"sources":["https:/framerusercontent.com/modules/sjulcv0tXnD8aNMOMH2P/TMKXaFRwIzU2FTGVEPOy/FileUploader.js"],"sourcesContent":["// Download file component with upload and filename control\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,startTransition,useMemo}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * File Downloader\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */function FileDownloader(props){const{useFileUpload,fileUrl=\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",fileUrlInput=\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",fileName=\"downloaded-file\",buttonLabel,style,font,buttonColor,buttonTextColor,borderRadius,padding,showIcon,icon={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Icon\"},iconGap,iconPosition,textCase,iconSize,iconColor,hover}=props;// Remove upload state and input\nconst[isHovered,setIsHovered]=useState(false);const downloadUrl=useFileUpload?fileUrl:fileUrlInput;// Extract file extension from URL\nconst getFileExtension=url=>{if(!url)return\"\";const pathname=url.split(\"?\")[0]// Remove query params\n;const parts=pathname.split(\".\");return parts.length>1?parts[parts.length-1]:\"\";};const fileExtension=getFileExtension(fileUrl);const downloadName=fileExtension&&!fileName.includes(\".\")?`${fileName}.${fileExtension}`:fileName||\"downloaded-file\";// Apply text case transformation\nconst transformedLabel=useMemo(()=>{if(!buttonLabel)return buttonLabel;switch(textCase){case\"uppercase\":return buttonLabel.toUpperCase();case\"lowercase\":return buttonLabel.toLowerCase();case\"title\":return buttonLabel.replace(/\\w\\S*/g,txt=>txt.charAt(0).toUpperCase()+txt.substr(1).toLowerCase());case\"sentence\":return buttonLabel.charAt(0).toUpperCase()+buttonLabel.slice(1).toLowerCase();default:return buttonLabel;}},[buttonLabel,textCase]);return /*#__PURE__*/_jsx(\"div\",{style:{...style,width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",position:\"relative\"},children:/*#__PURE__*/_jsxs(\"a\",{href:downloadUrl,download:downloadName,style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexDirection:iconPosition===\"after\"?\"row\":\"row\",gap:showIcon?`${iconGap}px`:0,background:isHovered?hover?hover.fill:buttonColor:buttonColor,color:isHovered?hover?hover.color:buttonTextColor:buttonTextColor,border:\"none\",borderRadius,cursor:\"pointer\",textAlign:\"center\",textDecoration:\"none\",padding,whiteSpace:\"nowrap\",transform:isHovered?`scale(${hover?hover.scale:1})`:\"scale(1)\",transition:`all ${hover?hover.transition:.2}s ease-in-out`,...font},tabIndex:0,\"aria-label\":`Download ${downloadName}`,onMouseEnter:()=>startTransition(()=>setIsHovered(true)),onMouseLeave:()=>startTransition(()=>setIsHovered(false)),onClick:e=>{e.preventDefault();if(typeof window!==\"undefined\"){fetch(downloadUrl).then(resp=>resp.blob()).then(blob=>{const url=window.URL.createObjectURL(blob);const link=document.createElement(\"a\");link.href=url;link.download=downloadName;document.body.appendChild(link);link.click();document.body.removeChild(link);window.URL.revokeObjectURL(url);});}},children:[showIcon&&iconPosition===\"before\"&&/*#__PURE__*/_jsx(\"div\",{style:{width:`${iconSize}px`,height:`${iconSize}px`,backgroundColor:isHovered?hover?hover.color:iconColor:iconColor,WebkitMaskImage:`url(${icon.src})`,WebkitMaskSize:\"contain\",WebkitMaskRepeat:\"no-repeat\",WebkitMaskPosition:\"center\",maskImage:`url(${icon.src})`,maskSize:\"contain\",maskRepeat:\"no-repeat\",maskPosition:\"center\",transition:`background-color ${hover?hover.transition:.2}s ease-in-out`},role:\"img\",\"aria-label\":icon.alt||\"Icon\"}),/*#__PURE__*/_jsx(\"span\",{children:transformedLabel}),showIcon&&iconPosition===\"after\"&&/*#__PURE__*/_jsx(\"div\",{style:{width:`${iconSize}px`,height:`${iconSize}px`,backgroundColor:isHovered?hover?hover.color:iconColor:iconColor,WebkitMaskImage:`url(${icon.src})`,WebkitMaskSize:\"contain\",WebkitMaskRepeat:\"no-repeat\",WebkitMaskPosition:\"center\",maskImage:`url(${icon.src})`,maskSize:\"contain\",maskRepeat:\"no-repeat\",maskPosition:\"center\",transition:`background-color ${hover?hover.transition:.2}s ease-in-out`},role:\"img\",\"aria-label\":icon.alt||\"Icon\"})]})});}// Helper function to determine if a color is light or dark\nfunction isLightColor(color){// Convert hex to RGB\nconst hex=color.replace(\"#\",\"\");const r=parseInt(hex.substr(0,2),16);const g=parseInt(hex.substr(2,2),16);const b=parseInt(hex.substr(4,2),16);// Calculate luminance\nconst luminance=(.299*r+.587*g+.114*b)/255;return luminance>.5;}addPropertyControls(FileDownloader,{useFileUpload:{type:ControlType.Boolean,title:\"File Source\",defaultValue:true,enabledTitle:\"Upload\",disabledTitle:\"URL\"},fileUrl:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"gif\",\"webp\",\"svg\",\"pdf\",\"doc\",\"docx\",\"txt\",\"mp4\",\"webm\",\"mov\",\"mp3\",\"wav\",\"ogg\"],hidden:({useFileUpload})=>!useFileUpload},fileUrlInput:{type:ControlType.String,title:\"File URL\",defaultValue:\"https://framerusercontent.com/assets/MLWPbW1dUQawJLhhun3dBwpgJak.mp4\",placeholder:\"Enter file URL or connect variable...\",hidden:({useFileUpload})=>useFileUpload},fileName:{type:ControlType.String,title:\"File Name\",defaultValue:\"downloaded-file\",placeholder:\"Set file name...\"},buttonLabel:{type:ControlType.String,title:\"Button Label\",defaultValue:\"Download File\"},textCase:{type:ControlType.Enum,title:\"Text Case Transform\",options:[\"none\",\"uppercase\",\"lowercase\",\"title\",\"sentence\"],optionTitles:[\"None\",\"UPPERCASE\",\"lowercase\",\"Title Case\",\"Sentence case\"],defaultValue:\"none\",displaySegmentedControl:false},showIcon:{type:ControlType.Boolean,title:\"Show Icon\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},icon:{type:ControlType.ResponsiveImage,title:\"Icon\",hidden:({showIcon})=>!showIcon},iconSize:{type:ControlType.Number,title:\"Icon Size\",defaultValue:20,min:8,max:64,hidden:({showIcon})=>!showIcon},iconPosition:{type:ControlType.Enum,title:\"Icon Position\",options:[\"before\",\"after\"],optionTitles:[\"Before\",\"After\"],defaultValue:\"before\",displaySegmentedControl:true,hidden:({showIcon})=>!showIcon},iconGap:{type:ControlType.Number,title:\"Icon Gap\",defaultValue:8,min:0,max:32,hidden:({showIcon})=>!showIcon},iconColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#FFFFFF\",hidden:({showIcon})=>!showIcon},buttonColor:{type:ControlType.Color,title:\"Button Color\",defaultValue:\"#111111\"},buttonTextColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#fff\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,max:32},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"16px\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{variant:\"Medium\",fontSize:\"15px\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"}},hover:{type:ControlType.Object,title:\"Hover\",optional:true,controls:{scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:.5,max:2,step:.01},fill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"#333333\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FFFFFF\"},transition:{type:ControlType.Number,title:\"Transition\",defaultValue:.2,min:0,max:2,step:.05,unit:\"s\"}},defaultValue:{scale:1,fill:\"#333333\",color:\"#FFFFFF\",transition:.2}}});export default FileDownloader;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FileDownloader\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FileUploader.map"],"mappings":"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"}