{"version":3,"file":"FileUploadInput.DdB6FXaL.mjs","names":["React.useRef","React.useState"],"sources":["https:/framerusercontent.com/modules/imDa29z4Vu6SKuZIaiy8/rrLoZyhNnZpkErgn3y8c/FileUploadInput.js"],"sourcesContent":["/* =========================================================\n   1) FileUploadInput.tsx  (ATUALIZADO)\n   - Mantém sua lógica original\n   - ✅ adiciona:\n     - onUploaded(url) callback (pra você setar estado no form)\n     - defaultValue (pra prefill/editar)\n     - label + showStatus (opcional)\n     - sizeMode: \"auto\" | \"full\" (largura do botão)\n   ========================================================= */import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function FileUploadInput(props){const{tint,uploadUrl,fieldName,accept,buttonText,submitFieldName,// ✅ novos\nonUploaded,defaultValue,label,showStatus,sizeMode,errorText}=props;const inputRef=React.useRef(null);const[loading,setLoading]=React.useState(false);const[uploadedUrl,setUploadedUrl]=React.useState(defaultValue||\"\");// ✅ se o form fizer prefill depois, atualiza\nReact.useEffect(()=>{if(typeof defaultValue===\"string\"&&defaultValue!==uploadedUrl){setUploadedUrl(defaultValue);}// eslint-disable-next-line react-hooks/exhaustive-deps\n},[defaultValue]);function openFile(){inputRef.current?.click();}async function handleFile(e){const file=e.target.files?.[0];if(!file)return;setLoading(true);const formData=new FormData;formData.append(fieldName,file);try{const response=await fetch(uploadUrl,{method:\"POST\",body:formData});const data=await response.json();const url=data?.url||data?.link||data?.data?.url||\"\";if(url){setUploadedUrl(url);if(typeof onUploaded===\"function\")onUploaded(url);}}catch(err){console.error(\"Erro upload\",err);}setLoading(false);e.target.value=\"\";}// const width = sizeMode === \"full\" ? \"100%\" : 160\nreturn /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\"},children:[label?/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,fontWeight:600,marginBottom:6},children:label}):null,/*#__PURE__*/_jsx(\"input\",{type:\"text\",name:submitFieldName,value:uploadedUrl,readOnly:true,style:{display:\"none\"}}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,type:\"file\",accept:accept,style:{display:\"none\"},onChange:handleFile}),/*#__PURE__*/_jsx(motion.div,{onClick:openFile,style:{width:160,height:48,borderRadius:12,backgroundColor:tint,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",color:\"#fff\",fontWeight:600,userSelect:\"none\",opacity:loading?.7:1,pointerEvents:loading?\"none\":\"auto\"},// whileHover={{ scale: 1.03 }}\nwhileTap:{scale:.97},children:loading?\"Sending...\":buttonText}),showStatus?/*#__PURE__*/_jsx(\"div\",{style:{marginTop:8,fontSize:12,opacity:.85},children:errorText?`❌ ${errorText}`:uploadedUrl?\"✅ Upload OK\":\"\"}):null]});}addPropertyControls(FileUploadInput,{tint:{title:\"Color\",type:ControlType.Color,defaultValue:\"#0099FF\"},uploadUrl:{title:\"Upload URL\",type:ControlType.String,defaultValue:\"https://sua-api.com/upload\"},fieldName:{title:\"Field API\",type:ControlType.String,defaultValue:\"file\"},accept:{title:\"Accept\",type:ControlType.String,defaultValue:\"*/*\"},buttonText:{title:\"Text\",type:ControlType.String,defaultValue:\"Send file\"},submitFieldName:{title:\"Name Submit\",type:ControlType.String,defaultValue:\"attachmentUrl\"},// ✅ novos\nlabel:{title:\"Label\",type:ControlType.String,defaultValue:\"\"},showStatus:{title:\"Show Status\",type:ControlType.Boolean,defaultValue:true},defaultValue:{title:\"Default URL\",type:ControlType.String,defaultValue:\"\"},sizeMode:{title:\"Size\",type:ControlType.Enum,options:[\"auto\",\"full\"],optionTitles:[\"Auto\",\"Full width\"],defaultValue:\"full\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FileUploadInput\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FileUploadInput.map"],"mappings":"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"}