{"version":3,"file":"shared.DqeX-R9Y.mjs","names":["useState","useRef","useMemo","useCallback","__esmMin","init_ssg_sandbox_shims","te","ne","window","_e","de","init_jsx_runtime","pe","c","init_npm_react_18_3_1","ce","addPropertyControls","init_framer_B6PCHH0A","useIsStaticRenderer","ControlType","uint8ToArrayBuffer","copy","data","extToMime","ext","path","normalizePath","dirname","normalized","index","resolveRelativePath","cleaned","rawRelative","baseParts","baseDir","relParts","merged","part","parseDimensionsFromHtml","adSizeMeta","html","cssOrInlineSize","bodyAttrs","parseDimensionsFromText","match","text","width","height","parseDimensionsFromCss","cssText","sanitizeClickThroughCandidate","value","extractClickThroughUrl","pattern","sanitized","decodeHtmlEntities","extractHtmlTitle","titleMatch","hasNativeClickOpenHandler","hasWindowOpen","hasClickTagIdentifier","stripZipExtension","trimmed","name","getFileExtension","fileUrl","isImageExtension","isPdfExtension","sourceZipNameFromUrl","zipUrl","filename","fallback","loadZipLib","unzipEntries","unzipped","unzipSync","zipArrayBuffer","files","rawPath","normalizedPath","buildBannerHtml","indexDir","indexPath","blobMap","decoder","encoder","entryPath","entries","url","registerUrl","shouldRewrite","rewritePath","normalizedTarget","cssDir","rewrittenCss","quote","cssUrl","rewrittenHtml","indexHtml","attr","clickThroughUrl","clickScript","detectBannerDimensions","fromName","sourceName","fromHtml","cssSize","extractBannerUnits","indexPaths","units","indexBytes","htmlTitle","size","sourceZipName","folder","inZipName","srcDoc","HTML5BannerPreviewFlexible","props","isStatic","status","setStatus","errorMessage","setErrorMessage","banners","setBanners","zipErrors","setZipErrors","localZipFiles","setLocalZipFiles","isDragOver","setIsDragOver","blobUrlsRef","fileInputRef","normalizedRemoteZipFiles","zipFiles","file","hasAnyZipSource","zipFile","clearBlobUrls","loadZips","allZipFiles","sources","errors","source","buffer","response","masterEntries","nestedZipEntries","nestedHasValidBanner","nestedPath","nestedBytes","nestedDisplayName","bannersFromNested","banner","nestedError","nestedMessage","item","bannersFromSingle","zipError","message","prioritizedUnits","unit","fallbackError","error","addLocalFiles","zipOnly","incomingFiles","next","prev","existing","handleInputChange","event","handleDrop","handleDragOver","handleDragLeave","openFilePicker","clearLocalFiles","labelStyle","labelColor","labelFont","previewBackground","cardBorderColor","cardBackground","cardRadius","cardPadding","gridGap","placeholderText","loadingText","errorTextColor","renderWidth","renderHeight","sizeLabel","displayName","HTML5BannerPreviewFiles","normalizedItems","items","normalizedColumnCount","columnCount","rootRef","resizeObserversRef","cardElementsRef","containerWidth","setContainerWidth","cardHeights","setCardHeights","root","observer","nextWidth","activeColumnCount","setCardNode","existingObserver","id","node","validIds","changed","columns","nextColumns","columnHeights","targetColumn","i","nextHeight","columnItems","hasFile","canPreviewImage","isPdf","columnIndex","init_HTML5_Banner_Preview_Flexible"],"sources":["https:/framerusercontent.com/modules/bZ9R4bp5CFf3ZaPgoGlH/e0VSLwQeYABCftX7eptl/HTML5_Banner_Preview_Flexible.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useCallback,useEffect,useMemo,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";function uint8ToArrayBuffer(data){const copy=new Uint8Array(data.byteLength);copy.set(data);return copy.buffer;}function extToMime(path){const ext=path.toLowerCase().split(\".\").pop()??\"\";if(ext===\"html\"||ext===\"htm\")return\"text/html\";if(ext===\"css\")return\"text/css\";if(ext===\"js\"||ext===\"mjs\")return\"text/javascript\";if(ext===\"json\")return\"application/json\";if(ext===\"svg\")return\"image/svg+xml\";if(ext===\"png\")return\"image/png\";if(ext===\"jpg\"||ext===\"jpeg\")return\"image/jpeg\";if(ext===\"gif\")return\"image/gif\";if(ext===\"webp\")return\"image/webp\";if(ext===\"woff\")return\"font/woff\";if(ext===\"woff2\")return\"font/woff2\";if(ext===\"ttf\")return\"font/ttf\";if(ext===\"otf\")return\"font/otf\";if(ext===\"mp4\")return\"video/mp4\";if(ext===\"mp3\")return\"audio/mpeg\";return\"application/octet-stream\";}function normalizePath(path){return path.replace(/\\\\/g,\"/\").replace(/^\\.?\\//,\"\");}function dirname(path){const normalized=normalizePath(path);const index=normalized.lastIndexOf(\"/\");return index===-1?\"\":normalized.slice(0,index);}function resolveRelativePath(baseDir,rawRelative){const cleaned=rawRelative.split(\"?\")[0].split(\"#\")[0];const baseParts=baseDir?baseDir.split(\"/\"):[];const relParts=cleaned.split(\"/\");const merged=[...baseParts];for(const part of relParts){if(!part||part===\".\")continue;if(part===\"..\"){if(merged.length>0)merged.pop();continue;}merged.push(part);}return normalizePath(merged.join(\"/\"));}function parseDimensionsFromHtml(html){const adSizeMeta=html.match(/<meta[^>]*name=[\"']ad\\.size[\"'][^>]*content=[\"'][^\"']*width\\s*=\\s*(\\d+)\\s*,\\s*height\\s*=\\s*(\\d+)[^\"']*[\"'][^>]*>/i);if(adSizeMeta){return{width:Number(adSizeMeta[1]),height:Number(adSizeMeta[2])};}const cssOrInlineSize=html.match(/(width|max-width)\\s*[:=]\\s*[\"']?(\\d{2,4})px[\"']?[^<\\n\\r]{0,100}(height|max-height)\\s*[:=]\\s*[\"']?(\\d{2,4})px/i);if(cssOrInlineSize){return{width:Number(cssOrInlineSize[2]),height:Number(cssOrInlineSize[4])};}const bodyAttrs=html.match(/<body[^>]*width=[\"']?(\\d{2,4})[\"']?[^>]*height=[\"']?(\\d{2,4})[\"']?[^>]*>/i);if(bodyAttrs){return{width:Number(bodyAttrs[1]),height:Number(bodyAttrs[2])};}return{};}function parseDimensionsFromText(text){const match=text.match(/(?:^|[^0-9])(\\d{2,4})\\s*[xX]\\s*(\\d{2,4})(?:[^0-9]|$)/);if(!match)return{};const width=Number(match[1]);const height=Number(match[2]);if(!Number.isFinite(width)||!Number.isFinite(height))return{};return{width,height};}function parseDimensionsFromCss(cssText){const clean=cssText.replace(/\\s+/g,\" \");const match=clean.match(/(width|max-width)\\s*:\\s*(\\d{2,4})px[^{};]{0,150}(height|max-height)\\s*:\\s*(\\d{2,4})px/i);if(!match)return{};return{width:Number(match[2]),height:Number(match[4])};}function sanitizeClickThroughCandidate(value){const cleaned=value.trim().replace(/^['\"`]|['\"`]$/g,\"\");if(!cleaned)return undefined;if(/^(javascript:|data:|#)/i.test(cleaned))return undefined;if(/^(https?:)?\\/\\//i.test(cleaned))return cleaned;return undefined;}function extractClickThroughUrl(html){const patterns=[/<meta[^>]*name=[\"'](?:clicktag\\d*|clicktag|clickthroughurl|exit_url|clickurl)[\"'][^>]*content=[\"']([^\"']+)[\"'][^>]*>/gi,/<meta[^>]*content=[\"']([^\"']+)[\"'][^>]*name=[\"'](?:clicktag\\d*|clicktag|clickthroughurl|exit_url|clickurl)[\"'][^>]*>/gi,/(?:var|let|const)?\\s*(?:window\\.)?(?:clicktag\\d*|clicktag|clickTAG\\d*|ClickTag\\d*|exit_url|exitUrl|clickThroughUrl)\\s*[:=]\\s*(['\"`])([^'\"`]+)\\1/gi,/[\"'](?:clicktag\\d*|clicktag|clickTAG\\d*|ClickTag\\d*|exit_url|exitUrl|clickThroughUrl)[\"']\\s*:\\s*(['\"`])([^'\"`]+)\\1/gi];for(const pattern of patterns){pattern.lastIndex=0;let match=pattern.exec(html);while(match){const candidate=match[2]??match[1];const sanitized=sanitizeClickThroughCandidate(candidate);if(sanitized)return sanitized;match=pattern.exec(html);}}return undefined;}function decodeHtmlEntities(value){return value.replace(/&amp;/gi,\"&\").replace(/&lt;/gi,\"<\").replace(/&gt;/gi,\">\").replace(/&quot;/gi,'\"').replace(/&#39;/gi,\"'\");}function extractHtmlTitle(html){const titleMatch=html.match(/<title[^>]*>([\\s\\S]*?)<\\/title>/i);if(!titleMatch)return undefined;const decoded=decodeHtmlEntities(titleMatch[1]).trim();return decoded||undefined;}function hasNativeClickOpenHandler(html){const openWithClickTagPatterns=[/window\\.open\\s*\\([^)]*\\b(?:clicktag\\d*|clicktag|clickTAG\\d*|ClickTag\\d*|exit_url|exitUrl|clickThroughUrl)\\b[^)]*\\)/i,/location(?:\\.href)?\\s*=\\s*(?:window\\.)?\\b(?:clicktag\\d*|clicktag|clickTAG\\d*|ClickTag\\d*|exit_url|exitUrl|clickThroughUrl)\\b/i];for(const pattern of openWithClickTagPatterns){if(pattern.test(html))return true;}const hasWindowOpen=/window\\.open\\s*\\(/i.test(html);const hasClickTagIdentifier=/\\b(?:clicktag\\d*|clicktag|clickTAG\\d*|ClickTag\\d*|exit_url|exitUrl|clickThroughUrl)\\b/i.test(html);return hasWindowOpen&&hasClickTagIdentifier;}function stripZipExtension(name){const trimmed=name.trim();if(!trimmed)return\"Creative\";return trimmed.replace(/\\.zip$/i,\"\");}function getFileExtension(fileUrl){const clean=fileUrl.split(\"?\")[0].split(\"#\")[0];const lastPart=clean.split(\"/\").pop()??\"\";const ext=lastPart.split(\".\").pop()??\"\";return ext.toLowerCase();}function isImageExtension(ext){return ext===\"jpg\"||ext===\"jpeg\"||ext===\"png\"||ext===\"gif\";}function isPdfExtension(ext){return ext===\"pdf\";}function sourceZipNameFromUrl(zipUrl){if(!zipUrl)return\"Uploaded ZIP\";try{const parsed=new URL(zipUrl);const filename=parsed.pathname.split(\"/\").pop();if(filename)return decodeURIComponent(filename);}catch(_error){const fallback=zipUrl.split(\"/\").pop();if(fallback)return fallback;}return\"Uploaded ZIP\";}async function loadZipLib(){if(typeof window===\"undefined\"){throw new Error(\"ZIP processing is unavailable during server rendering.\");}try{// @ts-expect-error Runtime ESM URL import for Framer/browser environments.\nreturn await import(\"https://esm.sh/fflate@0.8.2?bundle\");}catch(_error){throw new Error(\"Could not load ZIP library in this environment.\");}}async function unzipEntries(zipArrayBuffer){const{unzipSync}=await loadZipLib();try{const unzipped=unzipSync(new Uint8Array(zipArrayBuffer));const files=new Map;for(const[rawPath,data]of Object.entries(unzipped)){const normalizedPath=normalizePath(rawPath);if(!normalizedPath||normalizedPath.endsWith(\"/\"))continue;files.set(normalizedPath,data instanceof Uint8Array?data:new Uint8Array(data));}return files;}catch(_error){throw new Error(\"Invalid or unsupported ZIP file.\");}}function buildBannerHtml(indexPath,indexHtml,entries,registerUrl,clickThroughUrl){const indexDir=dirname(indexPath);const blobMap=new Map;const decoder=new TextDecoder;const encoder=new TextEncoder;for(const[entryPath,data]of entries.entries()){const url=URL.createObjectURL(new Blob([uint8ToArrayBuffer(data)],{type:extToMime(entryPath)}));registerUrl(url);blobMap.set(normalizePath(entryPath),url);}const shouldRewrite=value=>{const trimmed=value.trim();if(!trimmed)return false;if(/^(data:|blob:|https?:|\\/\\/|#|mailto:|tel:|javascript:)/i.test(trimmed))return false;return true;};const rewritePath=rawPath=>{if(!shouldRewrite(rawPath))return rawPath;const normalizedTarget=resolveRelativePath(indexDir,rawPath);return blobMap.get(normalizedTarget)??rawPath;};for(const[entryPath,data]of entries.entries()){if(!/\\.css$/i.test(entryPath))continue;const cssDir=dirname(entryPath);const cssText=decoder.decode(data);const rewrittenCss=cssText.replace(/url\\((['\"]?)([^'\")]+)\\1\\)/gi,(_match,quote,value)=>{if(!shouldRewrite(value))return`url(${quote}${value}${quote})`;const normalizedTarget=resolveRelativePath(cssDir,value);const rewritten=blobMap.get(normalizedTarget)??value;return`url(${quote}${rewritten}${quote})`;});const cssUrl=URL.createObjectURL(new Blob([uint8ToArrayBuffer(encoder.encode(rewrittenCss))],{type:\"text/css\"}));registerUrl(cssUrl);blobMap.set(normalizePath(entryPath),cssUrl);}const rewrittenAttributes=indexHtml.replace(/(src|href|poster)=[\"']([^\"']+)[\"']/gi,(_match,attr,value)=>`${attr}=\"${rewritePath(value)}\"`);const rewrittenHtml=rewrittenAttributes.replace(/url\\((['\"]?)([^'\")]+)\\1\\)/gi,(_match,quote,value)=>{const rewritten=rewritePath(value);return`url(${quote}${rewritten}${quote})`;});if(!clickThroughUrl)return rewrittenHtml;if(hasNativeClickOpenHandler(indexHtml))return rewrittenHtml;const serializedUrl=JSON.stringify(clickThroughUrl);const clickScript=`<script>(function(){var clickUrl=${serializedUrl};if(!clickUrl)return;var lastOpenAt=0;var guardMs=300;document.addEventListener(\"click\",function(){var now=Date.now();if(now-lastOpenAt<guardMs)return;lastOpenAt=now;window.open(clickUrl,\"_blank\",\"noopener,noreferrer\");});})();</script>`;if(/<\\/body>/i.test(rewrittenHtml)){return rewrittenHtml.replace(/<\\/body>/i,`${clickScript}</body>`);}return`${rewrittenHtml}${clickScript}`;}function detectBannerDimensions(sourceName,indexPath,indexHtml,entries){const fromName=parseDimensionsFromText(`${sourceName} ${indexPath}`);if(fromName.width&&fromName.height)return fromName;const fromHtml=parseDimensionsFromHtml(indexHtml);if(fromHtml.width&&fromHtml.height)return fromHtml;const decoder=new TextDecoder;for(const[path,data]of entries.entries()){if(!/\\.css$/i.test(path))continue;const cssText=decoder.decode(data);const cssSize=parseDimensionsFromCss(cssText);if(cssSize.width&&cssSize.height)return cssSize;}return{};}function extractBannerUnits(entries,sourceZipName,registerUrl){const decoder=new TextDecoder;const indexPaths=[...entries.keys()].filter(path=>/(^|\\/)index\\.html?$/i.test(path));const units=[];for(const indexPath of indexPaths){const indexBytes=entries.get(indexPath);if(!indexBytes)continue;const indexHtml=decoder.decode(indexBytes);const htmlTitle=extractHtmlTitle(indexHtml);const size=detectBannerDimensions(sourceZipName,indexPath,indexHtml,entries);const clickThroughUrl=extractClickThroughUrl(indexHtml);const folder=dirname(indexPath);const inZipName=folder?folder.split(\"/\").pop()||folder:\"Root\";const srcDoc=buildBannerHtml(indexPath,indexHtml,entries,registerUrl,clickThroughUrl);units.push({id:`${sourceZipName}-${indexPath}`,name:inZipName,sourceZipName,htmlTitle,width:size.width,height:size.height,clickThroughUrl,srcDoc});}return units;}/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function HTML5BannerPreviewFlexible(props){const{zipFile=\"\",zipFiles=[],previewBackground,cardBackground,cardBorderColor,cardRadius,cardPadding,gridGap,labelColor,labelFont,placeholderText,loadingText,errorTextColor}=props;const isStatic=useIsStaticRenderer();const[status,setStatus]=useState(\"idle\");const[errorMessage,setErrorMessage]=useState(\"\");const[banners,setBanners]=useState([]);const[zipErrors,setZipErrors]=useState([]);const[localZipFiles,setLocalZipFiles]=useState([]);const[isDragOver,setIsDragOver]=useState(false);const blobUrlsRef=useRef([]);const fileInputRef=useRef(null);const normalizedRemoteZipFiles=useMemo(()=>zipFiles.filter(file=>typeof file===\"string\"&&file.trim().length>0),[zipFiles]);const hasAnyZipSource=useMemo(()=>{const hasSingleZip=typeof zipFile===\"string\"&&zipFile.trim().length>0;return hasSingleZip||normalizedRemoteZipFiles.length>0||localZipFiles.length>0;},[zipFile,normalizedRemoteZipFiles,localZipFiles.length]);const clearBlobUrls=useCallback(()=>{for(const url of blobUrlsRef.current)URL.revokeObjectURL(url);blobUrlsRef.current=[];},[]);const registerUrl=useCallback(url=>{blobUrlsRef.current.push(url);},[]);const loadZips=useCallback(async()=>{const allZipFiles=[...normalizedRemoteZipFiles];if(zipFile)allZipFiles.push(zipFile);const dedupedZipFiles=Array.from(new Set(allZipFiles));const sources=[...dedupedZipFiles.map((zipUrl,index)=>({id:`remote-${index}-${zipUrl}`,label:sourceZipNameFromUrl(zipUrl),kind:\"remote\",zipUrl})),...localZipFiles.map((file,index)=>({id:`local-${index}-${file.name}-${file.size}-${file.lastModified}`,label:file.name||\"Local ZIP\",kind:\"local\",file}))];if(sources.length===0){clearBlobUrls();startTransition(()=>{setStatus(\"idle\");setErrorMessage(\"\");setBanners([]);setZipErrors([]);});return;}if(typeof window===\"undefined\")return;clearBlobUrls();startTransition(()=>{setStatus(\"loading\");setErrorMessage(\"\");setBanners([]);setZipErrors([]);});try{const units=[];const errors=[];for(const source of sources){const sourceName=source.label;try{let buffer;if(source.kind===\"remote\"){const response=await fetch(source.zipUrl);if(!response.ok)throw new Error(\"Could not fetch the uploaded ZIP file.\");buffer=await response.arrayBuffer();}else{buffer=await source.file.arrayBuffer();}const masterEntries=await unzipEntries(buffer);const nestedZipEntries=[...masterEntries.entries()].filter(([path])=>/\\.zip$/i.test(path));if(nestedZipEntries.length>0){let nestedHasValidBanner=false;for(const[nestedPath,nestedBytes]of nestedZipEntries){const nestedDisplayName=nestedPath.split(\"/\").pop()||nestedPath;try{const nestedBuffer=uint8ToArrayBuffer(nestedBytes);const nestedEntries=await unzipEntries(nestedBuffer);const bannersFromNested=extractBannerUnits(nestedEntries,nestedDisplayName,registerUrl);if(bannersFromNested.length>0){nestedHasValidBanner=true;units.push(...bannersFromNested.map(banner=>({...banner,id:`${source.id}-${banner.id}`})));}else{errors.push({id:`${source.id}-${nestedPath}-no-index`,source:`${sourceName} / ${nestedDisplayName}`,message:\"No valid banner creative detected (missing index.html).\"});}}catch(nestedError){const nestedMessage=nestedError instanceof Error?nestedError.message:\"Failed to read nested ZIP file.\";errors.push({id:`${source.id}-${nestedPath}-invalid`,source:`${sourceName} / ${nestedDisplayName}`,message:nestedMessage});}}if(!nestedHasValidBanner){const hasNoNestedErrorsForThisZip=!errors.some(item=>item.id.startsWith(`${source.id}-`));if(hasNoNestedErrorsForThisZip){errors.push({id:`${source.id}-no-nested-banners`,source:sourceName,message:\"No valid nested banner ZIPs were detected.\"});}}}else{const bannersFromSingle=extractBannerUnits(masterEntries,sourceName,registerUrl);if(bannersFromSingle.length>0){units.push(...bannersFromSingle.map(banner=>({...banner,id:`${source.id}-${banner.id}`})));}else{errors.push({id:`${source.id}-no-index`,source:sourceName,message:\"No valid banner creative detected (missing index.html).\"});}}}catch(zipError){const message=zipError instanceof Error?zipError.message:\"Failed to read ZIP file.\";errors.push({id:`${source.id}-fetch-or-unzip`,source:sourceName,message});}}const prioritizedUnits=[...units.filter(unit=>unit.width===970&&unit.height===250),...units.filter(unit=>!(unit.width===970&&unit.height===250))];if(prioritizedUnits.length>0){startTransition(()=>{setBanners(prioritizedUnits);setZipErrors(errors);setStatus(\"ready\");setErrorMessage(\"\");});}else{const fallbackError=errors[0]?.message??\"No valid banner creatives were detected (missing index.html).\";startTransition(()=>{setStatus(\"error\");setErrorMessage(fallbackError);setZipErrors(errors);setBanners([]);});}}catch(error){const message=error instanceof Error?error.message:\"Failed to read ZIP files.\";startTransition(()=>{setStatus(\"error\");setErrorMessage(message);setZipErrors([]);setBanners([]);});}},[zipFile,normalizedRemoteZipFiles,localZipFiles,clearBlobUrls,registerUrl]);const addLocalFiles=useCallback(incomingFiles=>{const zipOnly=incomingFiles.filter(file=>/\\.zip$/i.test(file.name)||file.type===\"application/zip\");if(zipOnly.length===0)return;startTransition(()=>{setLocalZipFiles(prev=>{const next=[...prev];for(const file of zipOnly){const duplicate=next.some(existing=>existing.name===file.name&&existing.size===file.size&&existing.lastModified===file.lastModified);if(!duplicate)next.push(file);}return next;});});},[]);const handleInputChange=useCallback(event=>{const files=event.target.files?Array.from(event.target.files):[];addLocalFiles(files);event.target.value=\"\";},[addLocalFiles]);const handleDrop=useCallback(event=>{event.preventDefault();event.stopPropagation();if(isDragOver){startTransition(()=>setIsDragOver(false));}const files=event.dataTransfer?.files?Array.from(event.dataTransfer.files):[];addLocalFiles(files);},[addLocalFiles,isDragOver]);const handleDragOver=useCallback(event=>{event.preventDefault();event.stopPropagation();startTransition(()=>setIsDragOver(true));},[]);const handleDragLeave=useCallback(event=>{event.preventDefault();event.stopPropagation();startTransition(()=>setIsDragOver(false));},[]);const openFilePicker=useCallback(()=>{if(typeof window===\"undefined\")return;fileInputRef.current?.click();},[]);const clearLocalFiles=useCallback(()=>{startTransition(()=>{setLocalZipFiles([]);setIsDragOver(false);});},[]);useEffect(()=>{loadZips();return()=>clearBlobUrls();},[loadZips,clearBlobUrls]);const labelStyle=useMemo(()=>({color:labelColor,fontSize:labelFont?.fontSize,lineHeight:labelFont?.lineHeight,letterSpacing:labelFont?.letterSpacing,fontWeight:labelFont?.fontWeight,fontStyle:labelFont?.fontStyle,fontFamily:labelFont?.fontFamily,textAlign:labelFont?.textAlign}),[labelColor,labelFont]);return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"auto\",background:previewBackground,padding:8,boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`@keyframes h5bp-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }`}),!hasAnyZipSource&&/*#__PURE__*/_jsxs(\"div\",{onDrop:handleDrop,onDragOver:handleDragOver,onDragLeave:handleDragLeave,style:{border:`1px dashed ${isDragOver?labelColor:cardBorderColor}`,background:cardBackground,borderRadius:cardRadius,padding:cardPadding,marginBottom:gridGap,display:\"flex\",flexDirection:\"column\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:labelColor,width:\"max-content\"},children:\"Local preview ZIPs (editor/preview only)\"}),/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:labelColor},children:\"Drop .zip files here or choose multiple ZIPs from Finder. These local files are not saved to Framer props.\"}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",gap:8,alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:openFilePicker,style:{appearance:\"none\",border:`1px solid ${cardBorderColor}`,background:\"#FFFFFF\",color:labelColor,borderRadius:8,padding:\"8px 12px\",cursor:\"pointer\"},children:\"Choose ZIP files…\"}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:clearLocalFiles,style:{appearance:\"none\",border:`1px solid ${cardBorderColor}`,background:\"#FFFFFF\",color:labelColor,borderRadius:8,padding:\"8px 12px\",cursor:\"pointer\"},children:\"Clear local files\"}),/*#__PURE__*/_jsxs(\"span\",{style:{...labelStyle,color:labelColor},children:[localZipFiles.length,\" local file\",localZipFiles.length===1?\"\":\"s\",\" selected\"]})]}),/*#__PURE__*/_jsx(\"input\",{ref:fileInputRef,type:\"file\",multiple:true,accept:\".zip,application/zip\",onChange:handleInputChange,style:{display:\"none\"},\"aria-label\":\"Choose local ZIP files for preview\"})]}),status===\"idle\"&&!hasAnyZipSource&&/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:labelColor,padding:8},children:placeholderText}),status===\"loading\"&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:10,...labelStyle,color:labelColor,padding:8},children:[!isStatic&&/*#__PURE__*/_jsx(\"div\",{\"aria-hidden\":true,style:{width:16,height:16,borderRadius:\"999px\",border:`2px solid ${cardBorderColor}`,borderTopColor:labelColor,animation:\"h5bp-spin 0.8s linear infinite\",flex:\"0 0 auto\"}}),/*#__PURE__*/_jsx(\"span\",{children:loadingText})]}),status===\"error\"&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:gridGap},children:[/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:errorTextColor,padding:8},role:\"status\",\"aria-live\":\"polite\",children:errorMessage}),zipErrors.length>0&&/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",alignItems:\"flex-start\",gap:gridGap},children:zipErrors.map(zipError=>{return /*#__PURE__*/_jsxs(\"div\",{style:{background:cardBackground,border:`1px solid ${cardBorderColor}`,borderRadius:cardRadius,padding:cardPadding,display:\"flex\",flexDirection:\"column\",gap:8,maxWidth:\"100%\",boxSizing:\"border-box\",minWidth:220},role:\"status\",\"aria-live\":\"polite\",children:[/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:labelColor,width:\"max-content\"},children:zipError.source}),/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:errorTextColor},children:zipError.message})]},zipError.id);})})]}),status===\"ready\"&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexWrap:\"wrap\",alignItems:\"flex-start\",gap:gridGap},children:[banners.map(banner=>{const width=banner.width??300;const height=banner.height??250;const renderWidth=width+5;const renderHeight=height+5;const sizeLabel=banner.width&&banner.height?`${banner.width}\\xd7${banner.height}`:\"Unknown size\";const displayName=banner.htmlTitle||stripZipExtension(banner.sourceZipName);return /*#__PURE__*/_jsxs(\"div\",{style:{background:cardBackground,border:`1px solid ${cardBorderColor}`,borderRadius:cardRadius,padding:cardPadding,display:\"flex\",flexDirection:\"column\",gap:8,maxWidth:\"100%\",boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{...labelStyle,color:labelColor,width:\"max-content\"},children:[displayName,\" • \",sizeLabel]}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:renderWidth,height:renderHeight,maxWidth:\"100%\"},children:/*#__PURE__*/_jsx(\"iframe\",{title:`${banner.name} preview`,sandbox:\"allow-scripts allow-same-origin allow-popups allow-popups-to-escape-sandbox\",scrolling:\"no\",srcDoc:banner.srcDoc,style:{width:\"100%\",height:\"100%\",overflow:\"hidden\",border:`1px solid ${cardBorderColor}`,borderRadius:4,background:\"#FFFFFF\",display:\"block\"}})})]},banner.id);}),zipErrors.map(zipError=>{return /*#__PURE__*/_jsxs(\"div\",{style:{background:cardBackground,border:`1px solid ${cardBorderColor}`,borderRadius:cardRadius,padding:cardPadding,display:\"flex\",flexDirection:\"column\",gap:8,maxWidth:\"100%\",boxSizing:\"border-box\",minWidth:220},role:\"status\",\"aria-live\":\"polite\",children:[/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:labelColor,width:\"max-content\"},children:zipError.source}),/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:errorTextColor},children:zipError.message})]},zipError.id);})]})]});}/**\n * User request: Create a separate multi-file upload version for individual creative files (jpg/jpeg/png/gif/pdf), no ZIP support, editable array items with upload boxes, image preview when possible, and matching style controls.\n *//**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export function HTML5BannerPreviewFiles(props){const{items=[{label:\"Creative\",file:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\"}],previewBackground,cardBackground,cardBorderColor,cardRadius,cardPadding,gridGap,labelColor,labelFont,errorTextColor,placeholderText,columnCount}=props;const labelStyle=useMemo(()=>({color:labelColor,fontSize:labelFont?.fontSize,lineHeight:labelFont?.lineHeight,letterSpacing:labelFont?.letterSpacing,fontWeight:labelFont?.fontWeight,fontStyle:labelFont?.fontStyle,fontFamily:labelFont?.fontFamily,textAlign:labelFont?.textAlign}),[labelColor,labelFont]);const normalizedItems=useMemo(()=>(items||[]).map((item,index)=>({id:`${index}-${item?.label||\"creative\"}`,label:item?.label?.trim()||\"Creative\",file:item?.file||\"\"})),[items]);const normalizedColumnCount=useMemo(()=>Math.max(1,Math.min(6,columnCount||3)),[columnCount]);const rootRef=useRef(null);const resizeObserversRef=useRef(new Map);const cardElementsRef=useRef(new Map);const[containerWidth,setContainerWidth]=useState(null);const[cardHeights,setCardHeights]=useState({});useEffect(()=>{if(typeof window===\"undefined\"||!rootRef.current)return;const root=rootRef.current;const observer=new ResizeObserver(entries=>{const nextWidth=entries[0]?.contentRect.width;if(!nextWidth)return;startTransition(()=>setContainerWidth(nextWidth));});observer.observe(root);return()=>observer.disconnect();},[]);const activeColumnCount=useMemo(()=>{if(containerWidth===null)return normalizedColumnCount;if(containerWidth<=1300)return 1;if(containerWidth<=1800)return 2;return normalizedColumnCount;},[containerWidth,normalizedColumnCount]);const setCardNode=useCallback((id,node)=>{const existingObserver=resizeObserversRef.current.get(id);if(existingObserver){existingObserver.disconnect();resizeObserversRef.current.delete(id);}if(!node||typeof window===\"undefined\"){cardElementsRef.current.delete(id);return;}cardElementsRef.current.set(id,node);const observer=new ResizeObserver(entries=>{const height=entries[0]?.contentRect.height;if(!height)return;startTransition(()=>setCardHeights(prev=>{if(prev[id]===height)return prev;return{...prev,[id]:height};}));});observer.observe(node);resizeObserversRef.current.set(id,observer);},[]);useEffect(()=>{const validIds=new Set(normalizedItems.map(item=>item.id));for(const[id,observer]of resizeObserversRef.current.entries()){if(validIds.has(id))continue;observer.disconnect();resizeObserversRef.current.delete(id);cardElementsRef.current.delete(id);}startTransition(()=>setCardHeights(prev=>{const next={};let changed=false;for(const[id,height]of Object.entries(prev)){if(!validIds.has(id)){changed=true;continue;}next[id]=height;}return changed?next:prev;}));},[normalizedItems]);useEffect(()=>{return()=>{for(const observer of resizeObserversRef.current.values())observer.disconnect();resizeObserversRef.current.clear();cardElementsRef.current.clear();};},[]);const columns=useMemo(()=>{const nextColumns=Array.from({length:activeColumnCount},()=>[]);const columnHeights=Array.from({length:activeColumnCount},()=>0);for(const item of normalizedItems){let targetColumn=0;for(let i=1;i<activeColumnCount;i++){if(columnHeights[i]<columnHeights[targetColumn])targetColumn=i;}nextColumns[targetColumn].push(item);const nextHeight=cardHeights[item.id]??0;columnHeights[targetColumn]+=nextHeight+gridGap;}return nextColumns;},[normalizedItems,activeColumnCount,cardHeights,gridGap]);return /*#__PURE__*/_jsxs(\"div\",{className:\"h5bp-files-root\",ref:rootRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",minWidth:1200,overflow:\"hidden\",background:previewBackground,padding:8,boxSizing:\"border-box\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                .h5bp-files-root {\n                    container-type: inline-size;\n                }\n\n                .h5bp-files-columns {\n                    display: flex;\n                    flex-direction: row;\n                    align-items: flex-start;\n                    width: max-content;\n                    min-width: 100%;\n                }\n\n                .h5bp-files-column {\n                    display: flex;\n                    flex-direction: column;\n                    align-items: flex-start;\n                    width: max-content;\n                }\n\n                .h5bp-files-card {\n                    width: max-content;\n                }\n\n                .h5bp-files-image {\n                    width: auto;\n                    height: auto;\n                    max-width: none;\n                }\n\n                @container (max-width: 1800px) {\n                    .h5bp-files-columns {\n                        flex-direction: row;\n                        width: max-content;\n                        min-width: 100%;\n                    }\n\n                    .h5bp-files-column {\n                        width: max-content;\n                    }\n\n                    .h5bp-files-card {\n                        width: max-content;\n                        max-width: none;\n                    }\n\n                    .h5bp-files-image {\n                        width: auto;\n                        height: auto;\n                        max-width: 100%;\n                    }\n                }\n\n                @container (max-width: 1300px) {\n                    .h5bp-files-columns {\n                        flex-direction: column;\n                        width: 100%;\n                        min-width: 0;\n                    }\n\n                    .h5bp-files-column {\n                        width: 100%;\n                    }\n\n                    .h5bp-files-card {\n                        width: 100%;\n                        max-width: 100%;\n                    }\n\n                    .h5bp-files-image {\n                        width: auto;\n                        height: auto;\n                        max-width: 100%;\n                    }\n                }\n            `}),normalizedItems.length===0&&/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:labelColor,padding:8},children:placeholderText}),normalizedItems.length>0&&/*#__PURE__*/_jsx(\"div\",{className:\"h5bp-files-columns\",style:{gap:`${gridGap}px`},children:columns.map((columnItems,columnIndex)=>/*#__PURE__*/_jsx(\"div\",{className:\"h5bp-files-column\",style:{gap:`${gridGap}px`},children:columnItems.map(item=>{const ext=getFileExtension(item.file);const hasFile=Boolean(item.file);const canPreviewImage=hasFile&&isImageExtension(ext);const isPdf=hasFile&&isPdfExtension(ext);return /*#__PURE__*/_jsxs(\"div\",{className:\"h5bp-files-card\",ref:node=>{setCardNode(item.id,node);},style:{background:cardBackground,border:`1px solid ${cardBorderColor}`,borderRadius:cardRadius,padding:cardPadding,display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\",gap:8,width:\"max-content\",boxSizing:\"border-box\",minWidth:hasFile&&canPreviewImage?undefined:220},children:[/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:labelColor,width:\"max-content\"},\"aria-label\":item.label,children:item.label}),!hasFile&&/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:errorTextColor},children:\"No file selected\"}),canPreviewImage&&/*#__PURE__*/_jsx(\"img\",{className:\"h5bp-files-image\",src:item.file,alt:`${item.label} preview`,style:{width:\"auto\",height:\"auto\",border:`1px solid ${cardBorderColor}`,borderRadius:4,display:\"block\",background:\"#FFFFFF\"}}),hasFile&&!canPreviewImage&&/*#__PURE__*/_jsxs(\"div\",{role:\"status\",\"aria-live\":\"polite\",style:{border:`1px solid ${cardBorderColor}`,borderRadius:4,background:\"#FFFFFF\",padding:12,display:\"flex\",flexDirection:\"column\",gap:6,minHeight:92,minWidth:220,justifyContent:\"center\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:labelColor},children:isPdf?\"PDF file selected\":\"Preview unavailable for this file type\"}),/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:labelColor,overflowWrap:\"anywhere\"},children:item.file}),/*#__PURE__*/_jsx(\"div\",{style:{...labelStyle,color:errorTextColor},children:\"Remove this item from the Items list in the property panel.\"})]})]},item.id);})},`column-${columnIndex}`))})]});}addPropertyControls(HTML5BannerPreviewFlexible,{zipFiles:{type:ControlType.Array,title:\"Banner ZIPs\",defaultValue:[],control:{type:ControlType.File,allowedFileTypes:[\"zip\"]}},zipFile:{type:ControlType.File,title:\"Banner ZIP (single or master)\",description:\"Upload either one creative ZIP or a master ZIP containing nested creative ZIPs.\",allowedFileTypes:[\"zip\"]},previewBackground:{type:ControlType.Color,title:\"Background\",defaultValue:\"#F5F5F5\"},cardBackground:{type:ControlType.Color,title:\"Card BG\",defaultValue:\"#FFFFFF\"},cardBorderColor:{type:ControlType.Color,title:\"Card Border\",defaultValue:\"#EEEEEE\"},cardRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"12px\"},cardPadding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"10px\"},gridGap:{type:ControlType.Number,title:\"Grid Gap\",min:0,max:48,step:1,defaultValue:12},labelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#000000\"},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},placeholderText:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Upload a banner .zip (single creative) or a master .zip with nested banner ZIPs.\"},loadingText:{type:ControlType.String,title:\"Loading\",defaultValue:\"Unzipping banners…\"},errorTextColor:{type:ControlType.Color,title:\"Error Color\",defaultValue:\"#000000\"}});addPropertyControls(HTML5BannerPreviewFiles,{items:{type:ControlType.Array,title:\"Items\",defaultValue:[{label:\"Creative\",file:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\"}],control:{type:ControlType.Object,controls:{label:{type:ControlType.String,title:\"Label\",defaultValue:\"Creative\"},file:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"jpeg\",\"jpg\",\"png\",\"gif\",\"pdf\"]}}}},previewBackground:{type:ControlType.Color,title:\"Background\",defaultValue:\"#F5F5F5\"},cardBackground:{type:ControlType.Color,title:\"Card BG\",defaultValue:\"#FFFFFF\"},cardBorderColor:{type:ControlType.Color,title:\"Card Border\",defaultValue:\"#EEEEEE\"},cardRadius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"12px\"},cardPadding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"10px\"},gridGap:{type:ControlType.Number,title:\"Grid Gap\",min:0,max:48,step:1,defaultValue:12},columnCount:{type:ControlType.Number,title:\"Columns\",min:1,max:6,step:1,defaultValue:3},labelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#000000\"},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"14px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},errorTextColor:{type:ControlType.Color,title:\"Error Color\",defaultValue:\"#000000\"},placeholderText:{type:ControlType.String,title:\"Placeholder\",defaultValue:\"Add individual creative files in the Items control.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"HTML5BannerPreviewFiles\":{\"type\":\"reactComponent\",\"name\":\"HTML5BannerPreviewFiles\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"HTML5BannerPreviewFlexible\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HTML5_Banner_Preview_Flexible.map"],"mappings":"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"}