{"version":3,"file":"FileUploader.1MUC2CKS.mjs","names":["useState","useMemo","startTransition"],"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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"}