{"version":3,"file":"FileUploadInput.DAQuwNMH.mjs","names":["mask","Base","MotionSVG","SVG","svg","getProps","Icon","React.forwardRef","React.forwardRef","React.useRef","React.useState","React.useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/JwoX1aureBeFHoieVtOm/LaffJCiaXW0jBtgMKFxw/Zd5AumroY.js","https:/framerusercontent.com/modules/mKsKHHD3R8S9aHiLQfcZ/D39BzRREJwSFfc4m1wTl/kEA60d4xV.js","https:/framerusercontent.com/modules/rlaq0DfsvouH1RpJdd5N/iwuDzwi4dOzqdVSOLHLg/FileUploadInput.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 2 C 0 0.895 0.895 0 2 0 L 12.5 0 C 13.605 0 14.5 0.895 14.5 2 L 14.5 10.5 C 14.5 11.605 13.605 12.5 12.5 12.5 L 2 12.5 C 0.895 12.5 0 11.605 0 10.5 Z\" fill=\"transparent\" height=\"12.5px\" id=\"igqs8SMkL\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--1335ju, 1.5)\" stroke=\"var(--18mrqx2, rgb(0, 0, 0))\" transform=\"translate(4.75 5.75)\" width=\"14.5px\"/><path d=\"M 0 0 L 6.5 5.75 L 13 0\" fill=\"transparent\" height=\"5.75px\" id=\"p1zmtyRu9\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--1335ju, 1.5)\" stroke=\"var(--18mrqx2, rgb(0, 0, 0))\" transform=\"translate(5.5 6.5)\" width=\"13px\"/></svg>';const getProps=({dots,height,id,stroke,width,width1,...props})=>{return{...props,BKVe8Pgvw:dots??props.BKVe8Pgvw??1,fICyAUQY1:stroke??props.fICyAUQY1??\"rgb(0, 0, 0)\",lKf_CQTz5:width1??props.lKf_CQTz5??1.5};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,fICyAUQY1,lKf_CQTz5,BKVe8Pgvw,...restProps}=getProps(props);const href=useSVGTemplate(\"3126051712\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-GYADw\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1335ju\":lKf_CQTz5,\"--18mrqx2\":fICyAUQY1,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-GYADw { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"fICyAUQY1\":\"stroke\",\"lKf_CQTz5\":\"width1\",\"BKVe8Pgvw\":\"dots\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Mail\",\"color\":{\"type\":\"variable\",\"value\":\"18mrqx2\"},\"set\":{\"localId\":\"vectorSet/SuYHhKUZG\",\"id\":\"SuYHhKUZG\",\"moduleId\":\"EqX8thWQjdZcOB1c6p5N\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-GYADw\");Icon.displayName=\"Mail\";export default Icon;addPropertyControls(Icon,{fICyAUQY1:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color},lKf_CQTz5:{defaultValue:1.5,displayStepper:true,hidden:false,max:4,min:0,step:.5,title:\"Width\",type:ControlType.Number},BKVe8Pgvw:{defaultValue:1,displayStepper:true,hidden:true,max:4,min:1,title:\"Dots\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerVector\":\"{\\\"name\\\":\\\"Mail\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"18mrqx2\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/SuYHhKUZG\\\",\\\"id\\\":\\\"SuYHhKUZG\\\",\\\"moduleId\\\":\\\"EqX8thWQjdZcOB1c6p5N\\\"}}\",\"framerIntrinsicWidth\":\"24\",\"framerVariables\":\"{\\\"fICyAUQY1\\\":\\\"stroke\\\",\\\"lKf_CQTz5\\\":\\\"width1\\\",\\\"BKVe8Pgvw\\\":\\\"dots\\\"}\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerIntrinsicHeight\":\"24\",\"framerDisableUnlink\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 4.143 0 L 1.318 0 C 0.59 0 0 0.59 0 1.318 C 0 8.598 5.902 14.5 13.182 14.5 C 13.91 14.5 14.5 13.91 14.5 13.182 L 14.5 10.357 L 11.393 8.286 L 9.782 9.897 C 9.502 10.177 9.084 10.264 8.732 10.082 C 8.136 9.774 7.168 9.195 6.214 8.286 C 5.238 7.354 4.665 6.351 4.378 5.744 C 4.217 5.404 4.311 5.011 4.577 4.745 L 6.214 3.107 Z\" fill=\"transparent\" height=\"14.5px\" id=\"C_pi34XOG\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--1335ju, 1.5)\" stroke=\"var(--18mrqx2, rgb(0, 0, 0))\" transform=\"translate(4.75 4.75)\" width=\"14.5px\"/></svg>';const getProps=({dots,height,id,stroke,width,width1,...props})=>{return{...props,BKVe8Pgvw:dots??props.BKVe8Pgvw??1,fICyAUQY1:stroke??props.fICyAUQY1??\"rgb(0, 0, 0)\",lKf_CQTz5:width1??props.lKf_CQTz5??1.5};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,fICyAUQY1,lKf_CQTz5,BKVe8Pgvw,...restProps}=getProps(props);const href=useSVGTemplate(\"3104486134\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-6VZPi\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1335ju\":lKf_CQTz5,\"--18mrqx2\":fICyAUQY1,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-6VZPi { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"fICyAUQY1\":\"stroke\",\"lKf_CQTz5\":\"width1\",\"BKVe8Pgvw\":\"dots\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Phone\",\"color\":{\"type\":\"variable\",\"value\":\"18mrqx2\"},\"set\":{\"localId\":\"vectorSet/SuYHhKUZG\",\"id\":\"SuYHhKUZG\",\"moduleId\":\"EqX8thWQjdZcOB1c6p5N\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-6VZPi\");Icon.displayName=\"Phone\";export default Icon;addPropertyControls(Icon,{fICyAUQY1:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Stroke\",type:ControlType.Color},lKf_CQTz5:{defaultValue:1.5,displayStepper:true,hidden:false,max:4,min:0,step:.5,title:\"Width\",type:ControlType.Number},BKVe8Pgvw:{defaultValue:1,displayStepper:true,hidden:true,max:4,min:1,title:\"Dots\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"24\",\"framerIntrinsicHeight\":\"24\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerImmutableVariables\":\"true\",\"framerVariables\":\"{\\\"fICyAUQY1\\\":\\\"stroke\\\",\\\"lKf_CQTz5\\\":\\\"width1\\\",\\\"BKVe8Pgvw\\\":\\\"dots\\\"}\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisableUnlink\":\"true\",\"framerVector\":\"{\\\"name\\\":\\\"Phone\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"18mrqx2\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/SuYHhKUZG\\\",\\\"id\\\":\\\"SuYHhKUZG\\\",\\\"moduleId\\\":\\\"EqX8thWQjdZcOB1c6p5N\\\"}}\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion}from\"framer-motion\";// ─────────────────────────────────────────────\n// File Utilities\n// ─────────────────────────────────────────────\nfunction readFileAsBase64(file){return new Promise((resolve,reject)=>{const reader=new FileReader;reader.onload=()=>{const result=String(reader.result||\"\");resolve(result.split(\",\")[1]||\"\");};reader.onerror=()=>{reject(new Error(\"파일을 읽을 수 없습니다.\"));};reader.readAsDataURL(file);});}function wait(ms){return new Promise(resolve=>setTimeout(resolve,ms));}function formatFileSize(size){if(size<1024)return`${size} B`;if(size<1024*1024){return`${(size/1024).toFixed(1)} KB`;}return`${(size/(1024*1024)).toFixed(2)} MB`;}function getAcceptedTypes(type,custom){switch(type){case\"image\":return\"image/*\";case\"video\":return\"video/*\";case\"audio\":return\"audio/*\";case\"custom\":return custom;default:return\"\";}}function isFileTypeAllowed(file,accept){if(!accept)return true;const allowed=accept.split(\",\").map(item=>item.trim().toLowerCase()).filter(Boolean);return allowed.some(type=>{const mime=file.type.toLowerCase();const fileName=file.name.toLowerCase();if(type.startsWith(\".\")){return fileName.endsWith(type);}if(type.endsWith(\"/*\")){return mime.startsWith(type.slice(0,-1));}return mime===type;});}// ─────────────────────────────────────────────\n// Google Apps Script\n// ─────────────────────────────────────────────\nfunction checkUploadStatus(scriptUrl,id){return new Promise((resolve,reject)=>{const callback=\"driveUploadCallback_\"+Math.random().toString(36).slice(2);const script=document.createElement(\"script\");let settled=false;const cleanup=()=>{clearTimeout(timeout);script.remove();delete window[callback];};const finish=(error,data)=>{if(settled)return;settled=true;cleanup();if(error)reject(error);else resolve(data);};const timeout=window.setTimeout(()=>{finish(new Error(\"업로드 확인 시간이 초과되었습니다.\"));},1e4);window[callback]=data=>{finish(undefined,data);};script.onerror=()=>{finish(new Error(\"업로드 상태를 확인할 수 없습니다.\"));};const separator=scriptUrl.includes(\"?\")?\"&\":\"?\";script.src=scriptUrl+separator+\"id=\"+encodeURIComponent(id)+\"&callback=\"+encodeURIComponent(callback);document.body.appendChild(script);});}async function uploadToDrive(file,scriptUrl){const id=crypto.randomUUID();const base64=await readFileAsBase64(file);await fetch(scriptUrl,{method:\"POST\",mode:\"no-cors\",headers:{\"Content-Type\":\"text/plain\"},body:JSON.stringify({id,name:file.name,mimeType:file.type||\"application/octet-stream\",base64})});for(let attempt=0;attempt<30;attempt++){const result=await checkUploadStatus(scriptUrl,id);if(result?.status===\"success\"&&result.url){return result.url;}if(result?.status===\"error\"){throw new Error(result.message||\"파일 업로드에 실패했습니다.\");}await wait(1e3);}throw new Error(\"업로드 결과를 확인하지 못했습니다.\");}// ─────────────────────────────────────────────\n// Icons\n// ─────────────────────────────────────────────\nfunction UploadIcon({size,color}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",style:{flexShrink:0},children:/*#__PURE__*/_jsx(\"path\",{d:\"M12 16V7M12 7L8.5 10.5M12 7L15.5 10.5M5 15.5V17C5 18.1046 5.89543 19 7 19H17C18.1046 19 19 18.1046 19 17V15.5\",stroke:color,strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})});}function FileIcon({size,color}){return /*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",style:{flexShrink:0},children:[/*#__PURE__*/_jsx(\"path\",{d:\"M7 3H14L19 8V20C19 20.5523 18.5523 21 18 21H7C6.44772 21 6 20.5523 6 20V4C6 3.44772 6.44772 3 7 3Z\",stroke:color,strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M14 3V8H19\",stroke:color,strokeWidth:\"1.8\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})]});}function CloseIcon({size,color}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M5 5L19 19M19 5L5 19\",stroke:color,strokeWidth:\"1.8\",strokeLinecap:\"round\"})});}// ─────────────────────────────────────────────\n// Main Component\n// ─────────────────────────────────────────────\n/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function GoogleDriveFileUpload(props){const{name=\"attachment\",scriptUrl=\"\",required=false,autoFocus=false,fileTypes=\"all\",fileTypesCustom=\".pdf,.docx\",maxSize=10,text=\"Click to upload file.\\nMax ## MB\",uploadingText=\"Uploading [FileName]...\",layout={direction:\"vertical\",alignH:\"center\",gap:8},font={},color=\"#999999\",fill=\"rgba(187,187,187,0.15)\",radius=\"10px\",padding=\"12px\",icon={enabled:true,image:\"\",size:22,location:\"start\",color:\"#999999\",spinner:true},xButton={enabled:true,size:16,location:\"topRight\",inset:4,background:\"transparent\",radius:8},imagePreview={enabled:false,height:40,aspectRatio:\"auto\",radius:5},border={width:1,style:\"dashed\",color:\"rgba(136,136,136,0.2)\",colorFocus:\"#0099FF\",colorInvalid:\"#D43C3C\"},shadows={default:\"none\",focus:\"none\",invalid:\"none\"},bgBlur=0,transition,style}=props;const inputRef=React.useRef(null);const hiddenRef=React.useRef(null);const containerRef=React.useRef(null);const selectedFileRef=React.useRef(null);const uploadUrlRef=React.useRef(\"\");const uploadingRef=React.useRef(false);const requestRef=React.useRef(0);const allowNextSubmitRef=React.useRef(false);const[selectedFile,setSelectedFile]=React.useState(null);const[status,setStatus]=React.useState(\"idle\");const[error,setError]=React.useState(\"\");const[isDragging,setIsDragging]=React.useState(false);const[isFocused,setIsFocused]=React.useState(false);const[imagePreviewUrl,setImagePreviewUrl]=React.useState(\"\");const[fileInputKey,setFileInputKey]=React.useState(0);const isStaticRenderer=useIsStaticRenderer();const isUploading=status===\"uploading\";const isInvalid=Boolean(error);const isHighlighted=isDragging||isFocused;const isVertical=layout.direction===\"vertical\";const iconColor=icon.color||color;const accept=getAcceptedTypes(fileTypes,fileTypesCustom);// ─────────────────────────────────────────\n// File URL\n// ─────────────────────────────────────────\nconst updateFileUrl=React.useCallback(url=>{uploadUrlRef.current=url;if(hiddenRef.current){hiddenRef.current.value=url;hiddenRef.current.setAttribute(\"value\",url);}},[]);// ─────────────────────────────────────────\n// Image Preview\n// ─────────────────────────────────────────\nReact.useEffect(()=>{if(!selectedFile||!selectedFile.type.startsWith(\"image/\")){setImagePreviewUrl(\"\");return;}const url=URL.createObjectURL(selectedFile);setImagePreviewUrl(url);return()=>{URL.revokeObjectURL(url);};},[selectedFile]);// ─────────────────────────────────────────\n// File Selection\n// ─────────────────────────────────────────\nconst processFile=file=>{if(uploadingRef.current)return;setError(\"\");if(!isFileTypeAllowed(file,accept)){setError(\"지원하지 않는 파일 형식입니다.\");if(inputRef.current){inputRef.current.value=\"\";}return;}if(file.size>maxSize*1024*1024){setError(`최대 ${maxSize}MB까지 업로드할 수 있습니다.`);if(inputRef.current){inputRef.current.value=\"\";}return;}++requestRef.current;selectedFileRef.current=file;setSelectedFile(file);updateFileUrl(\"\");setStatus(\"idle\");// Upload is delayed until Form submission.\n};// ─────────────────────────────────────────\n// Remove File\n// ─────────────────────────────────────────\nconst handleRemove=()=>{if(uploadingRef.current)return;++requestRef.current;selectedFileRef.current=null;if(inputRef.current){inputRef.current.value=\"\";}setFileInputKey(prev=>prev+1);setSelectedFile(null);setImagePreviewUrl(\"\");setStatus(\"idle\");setError(\"\");updateFileUrl(\"\");};// ─────────────────────────────────────────\n// Form Submission\n// ─────────────────────────────────────────\nReact.useEffect(()=>{const form=containerRef.current?.closest(\"form\");if(!form)return;const handleSubmit=async event=>{if(event.target!==form)return;const submitEvent=event;if(allowNextSubmitRef.current){allowNextSubmitRef.current=false;return;}if(uploadingRef.current){event.preventDefault();event.stopImmediatePropagation();return;}const file=selectedFileRef.current;if(!file&&required){event.preventDefault();event.stopImmediatePropagation();setError(\"파일을 첨부해주세요.\");return;}if(!file)return;if(uploadUrlRef.current)return;event.preventDefault();event.stopImmediatePropagation();const submitter=submitEvent.submitter;const requestId=++requestRef.current;if(!scriptUrl||!scriptUrl.includes(\"/exec\")){setError(\"Apps Script URL을 확인해주세요.\");setStatus(\"error\");return;}uploadingRef.current=true;setStatus(\"uploading\");setError(\"\");try{const url=await uploadToDrive(file,scriptUrl);if(requestId!==requestRef.current)return;updateFileUrl(url);uploadingRef.current=false;setStatus(\"success\");window.setTimeout(()=>{if(!form.isConnected||requestId!==requestRef.current){return;}try{allowNextSubmitRef.current=true;if(submitter instanceof HTMLButtonElement||submitter instanceof HTMLInputElement){if(submitter.isConnected){form.requestSubmit(submitter);}else{form.requestSubmit();}}else{form.requestSubmit();}window.setTimeout(()=>{allowNextSubmitRef.current=false;},0);}catch(submitError){allowNextSubmitRef.current=false;setError(\"폼 제출을 다시 시도해주세요.\");console.error(submitError);}},0);}catch(err){if(requestId!==requestRef.current)return;uploadingRef.current=false;setStatus(\"error\");setError(err?.message||\"파일 업로드에 실패했습니다.\");}};window.addEventListener(\"submit\",handleSubmit,true);return()=>{window.removeEventListener(\"submit\",handleSubmit,true);};},[required,scriptUrl,updateFileUrl]);// ─────────────────────────────────────────\n// Styles\n// ─────────────────────────────────────────\nconst borderColor=isInvalid?border.colorInvalid:isHighlighted?border.colorFocus:border.color;const boxShadow=isInvalid?shadows.invalid:isHighlighted?shadows.focus:shadows.default;const alignItems=isVertical?layout.alignH===\"start\"?\"flex-start\":layout.alignH===\"end\"?\"flex-end\":\"center\":\"center\";const justifyContent=isVertical?\"center\":layout.alignH===\"start\"?\"flex-start\":layout.alignH===\"end\"?\"flex-end\":\"center\";const iconFirst=icon.location!==\"end\";const xButtonPosition=()=>{const inset=xButton.inset;switch(xButton.location){case\"topLeft\":return{top:inset,left:inset};case\"topRight\":return{top:inset,right:inset};case\"centerLeft\":return{top:\"50%\",left:inset,transform:\"translateY(-50%)\"};case\"centerRight\":return{top:\"50%\",right:inset,transform:\"translateY(-50%)\"};case\"bottomLeft\":return{bottom:inset,left:inset};case\"bottomRight\":return{bottom:inset,right:inset};default:return{top:inset,right:inset};}};const renderIcon=()=>{if(!icon.enabled)return null;if(icon.image){return /*#__PURE__*/_jsx(\"img\",{src:icon.image,alt:\"\",style:{width:icon.size,height:icon.size,objectFit:\"contain\",flexShrink:0}});}return /*#__PURE__*/_jsx(UploadIcon,{size:icon.size,color:iconColor});};const renderSpinner=()=>{return /*#__PURE__*/_jsx(motion.div,{\"aria-label\":\"Uploading\",style:{width:16,height:16,borderRadius:\"50%\",border:`2px solid ${iconColor}33`,borderTopColor:iconColor,flexShrink:0},animate:isStaticRenderer?{rotate:0}:{rotate:360},transition:{repeat:Infinity,duration:.8,ease:\"linear\"}});};const renderFilePreview=()=>{if(!imagePreview.enabled||!imagePreviewUrl){return /*#__PURE__*/_jsx(FileIcon,{size:icon.size,color:iconColor});}return /*#__PURE__*/_jsx(\"div\",{style:{width:imagePreview.aspectRatio===\"square\"?imagePreview.height:\"auto\",height:imagePreview.height,maxWidth:\"100%\",borderRadius:imagePreview.radius,overflow:\"hidden\",flexShrink:0},children:/*#__PURE__*/_jsx(\"img\",{src:imagePreviewUrl,alt:\"File preview\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})});};// ─────────────────────────────────────────\n// Render\n// ─────────────────────────────────────────\nreturn /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"auto\",position:\"relative\",color,...font,...style},children:[/*#__PURE__*/_jsx(\"input\",{ref:hiddenRef,type:\"hidden\",name:name,defaultValue:\"\"}),/*#__PURE__*/_jsx(\"input\",{ref:inputRef,type:\"file\",accept:accept,autoFocus:autoFocus,style:{display:\"none\"},onChange:event=>{const file=event.target.files?.[0];if(file)processFile(file);}},fileInputKey),/*#__PURE__*/_jsx(motion.div,{role:\"button\",tabIndex:0,\"aria-label\":\"Upload file\",onFocus:()=>setIsFocused(true),onBlur:()=>setIsFocused(false),onClick:()=>{if(!isUploading){inputRef.current?.click();}},onKeyDown:event=>{if((event.key===\"Enter\"||event.key===\" \")&&!isUploading){event.preventDefault();inputRef.current?.click();}},onDragOver:event=>{event.preventDefault();if(!isUploading){setIsDragging(true);}},onDragLeave:event=>{event.preventDefault();setIsDragging(false);},onDrop:event=>{event.preventDefault();setIsDragging(false);if(isUploading)return;const file=event.dataTransfer.files?.[0];if(file)processFile(file);},style:{width:\"100%\",boxSizing:\"border-box\",position:\"relative\",display:\"flex\",flexDirection:isVertical?iconFirst?\"column\":\"column-reverse\":iconFirst?\"row\":\"row-reverse\",alignItems,justifyContent,gap:layout.gap,textAlign:isVertical?layout.alignH===\"start\"?\"left\":layout.alignH===\"end\"?\"right\":\"center\":\"left\",border:`${border.width}px ${selectedFile?\"solid\":border.style} ${borderColor}`,borderRadius:radius,padding,background:fill,boxShadow:boxShadow||\"none\",backdropFilter:bgBlur>0?`blur(${bgBlur}px)`:\"none\",cursor:isUploading?\"wait\":\"pointer\",transition:\"background 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease\"},children:!selectedFile?/*#__PURE__*/_jsxs(_Fragment,{children:[renderIcon(),/*#__PURE__*/_jsx(\"span\",{style:{whiteSpace:\"pre-line\",lineHeight:1.4,minWidth:0},children:text.replace(/##/g,String(maxSize))})]}):/*#__PURE__*/_jsxs(_Fragment,{children:[renderFilePreview(),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",minWidth:0,flex:1,gap:3},children:[/*#__PURE__*/_jsx(\"span\",{style:{overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:selectedFile.name}),/*#__PURE__*/_jsx(\"span\",{style:{opacity:.7,fontSize:\"0.85em\"},children:isUploading?uploadingText.replace(/\\[FileName\\]/g,selectedFile.name):status===\"success\"?`업로드 완료 \\xb7 ${formatFileSize(selectedFile.size)}`:`선택됨 \\xb7 ${formatFileSize(selectedFile.size)}`})]}),isUploading&&icon.spinner&&renderSpinner(),!isUploading&&xButton.enabled&&/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Remove file\",onClick:event=>{event.stopPropagation();handleRemove();},style:{position:\"absolute\",...xButtonPosition(),width:xButton.size+8,height:xButton.size+8,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:4,border:\"none\",background:xButton.background||\"transparent\",borderRadius:xButton.radius,cursor:\"pointer\",color},children:/*#__PURE__*/_jsx(CloseIcon,{size:xButton.size,color:color})})]})}),error&&/*#__PURE__*/_jsx(\"div\",{role:\"alert\",style:{marginTop:6,fontSize:\"0.85em\",lineHeight:1.4,color:border.colorInvalid},children:error})]});}// ─────────────────────────────────────────────\n// Framer Property Controls\n// ─────────────────────────────────────────────\naddPropertyControls(GoogleDriveFileUpload,{// ── Form ──────────────────────────────────\nname:{type:ControlType.String,title:\"Name\",defaultValue:\"attachment\",preventLocalization:true},scriptUrl:{type:ControlType.String,title:\"Apps Script URL\",defaultValue:\"\",placeholder:\"https://script.google.com/macros/s/.../exec\",preventLocalization:true},required:{type:ControlType.Boolean,title:\"Required\",defaultValue:false},autoFocus:{type:ControlType.Boolean,title:\"Auto-Focus\",defaultValue:false},// ── File Types ────────────────────────────\nfileTypes:{type:ControlType.Enum,title:\"File Types\",defaultValue:\"all\",options:[\"all\",\"audio\",\"video\",\"image\",\"custom\"],optionTitles:[\"Any File\",\"Any Audio File\",\"Any Video File\",\"Any Image File\",\"Custom\"]},fileTypesCustom:{type:ControlType.String,title:\"Custom Types\",defaultValue:\".pdf,.docx\",placeholder:\".pdf,.docx,.xlsx\",hidden:props=>props.fileTypes!==\"custom\"},maxSize:{type:ControlType.Number,title:\"Max Size\",defaultValue:10,min:1,max:10,step:1,unit:\"MB\"},// ── Text ──────────────────────────────────\ntext:{type:ControlType.String,title:\"Text\",displayTextArea:true,defaultValue:\"Click to upload file or drag-and-drop.\\nMax ## MB\",description:\"## → max size in MB\"},uploadingText:{type:ControlType.String,title:\"Uploading Text\",defaultValue:\"Uploading [FileName]...\",description:\"[FileName] → file name\"},// ── Layout ────────────────────────────────\nlayout:{type:ControlType.Object,title:\"Layout\",controls:{direction:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"vertical\",options:[\"horizontal\",\"vertical\"],optionTitles:[\"Horizontal\",\"Vertical\"],optionIcons:[\"direction-horizontal\",\"direction-vertical\"],displaySegmentedControl:true},alignH:{type:ControlType.Enum,title:\"Align\",defaultValue:\"center\",options:[\"start\",\"center\",\"end\"],optionTitles:[\"Start\",\"Center\",\"End\"],displaySegmentedControl:true},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:8,min:0,max:100,step:1,unit:\"px\"}}},// ── Font ──────────────────────────────────\nfont:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:14,lineHeight:1.4}},// ── Colors ────────────────────────────────\ncolor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#999999\"},fill:{type:ControlType.Color,title:\"Fill\",defaultValue:\"rgba(187,187,187,0.15)\"},// ── Radius & Padding ──────────────────────\nradius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"10px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"12px\"},// ── Icon ──────────────────────────────────\nicon:{type:ControlType.Object,title:\"Icon\",optional:true,defaultValue:{enabled:true,image:\"\",size:22,location:\"start\",color:\"#999999\",spinner:true},controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true},image:{type:ControlType.Image,title:\"Custom Icon\"},size:{type:ControlType.Number,title:\"Size\",defaultValue:22,min:8,max:100,step:1},location:{type:ControlType.Enum,title:\"Location\",defaultValue:\"start\",options:[\"start\",\"end\"],optionTitles:[\"Start\",\"End\"],displaySegmentedControl:true},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#999999\"},spinner:{type:ControlType.Boolean,title:\"Spinner\",defaultValue:true}}},// ── X Button ──────────────────────────────\nxButton:{type:ControlType.Object,title:\"X Button\",optional:true,defaultValue:{enabled:true,size:16,location:\"topRight\",inset:4,background:\"transparent\",radius:8},controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:true},size:{type:ControlType.Number,title:\"Size\",defaultValue:16,min:8,max:40},location:{type:ControlType.Enum,title:\"Location\",defaultValue:\"topRight\",options:[\"topLeft\",\"topRight\",\"centerLeft\",\"centerRight\",\"bottomLeft\",\"bottomRight\"],optionTitles:[\"Top Left\",\"Top Right\",\"Center Left\",\"Center Right\",\"Bottom Left\",\"Bottom Right\"]},inset:{type:ControlType.Number,title:\"Inset\",defaultValue:4,min:0,max:100,unit:\"px\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"transparent\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:8,min:0,max:100}}},// ── Image Preview ─────────────────────────\nimagePreview:{type:ControlType.Object,title:\"Image Preview\",optional:true,defaultValue:{enabled:false,height:40,aspectRatio:\"auto\",radius:5},controls:{enabled:{type:ControlType.Boolean,title:\"Enabled\",defaultValue:false},height:{type:ControlType.Number,title:\"Height\",defaultValue:40,min:20,max:300,unit:\"px\"},aspectRatio:{type:ControlType.Enum,title:\"Aspect Ratio\",defaultValue:\"auto\",options:[\"auto\",\"square\"],optionTitles:[\"Auto\",\"Square\"],displaySegmentedControl:true},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:5,min:0,max:100}},hidden:props=>props.fileTypes===\"audio\"||props.fileTypes===\"video\"},// ── Border ────────────────────────────────\nborder:{type:ControlType.Object,title:\"Border\",defaultValue:{width:1,style:\"dashed\",color:\"rgba(136,136,136,0.2)\",colorFocus:\"#0099FF\",colorInvalid:\"#D43C3C\"},controls:{width:{type:ControlType.Number,title:\"Width\",defaultValue:1,min:0,max:20,unit:\"px\"},style:{type:ControlType.Enum,title:\"Style\",defaultValue:\"dashed\",options:[\"solid\",\"dashed\",\"dotted\"],optionTitles:[\"Solid\",\"Dashed\",\"Dotted\"]},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"rgba(136,136,136,0.2)\"},colorFocus:{type:ControlType.Color,title:\"Focus\",defaultValue:\"#0099FF\"},colorInvalid:{type:ControlType.Color,title:\"Invalid\",defaultValue:\"#D43C3C\"}}},// ── Shadows ───────────────────────────────\nshadows:{type:ControlType.Object,title:\"Shadows\",optional:true,controls:{default:{type:ControlType.BoxShadow,title:\"Default\"},focus:{type:ControlType.BoxShadow,title:\"Focus\"},invalid:{type:ControlType.BoxShadow,title:\"Invalid\"}}},// ── Blur ──────────────────────────────────\nbgBlur:{type:ControlType.Number,title:\"BG Blur\",defaultValue:0,min:0,max:100,step:1,displayStepper:true},// ── Transition ────────────────────────────\ntransition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"tween\",duration:.2}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GoogleDriveFileUpload\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FileUploadInput.map"],"mappings":"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"}