{"version":3,"file":"ProjectGallery.QqOV-9WI.mjs","names":["useState","useRef","useMemo","_Fragment"],"sources":["https:/framerusercontent.com/modules/UheTY1yhp2wncHMyuty7/unq4KCFquqb6QnJFLV62/ProjectGallery.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{useState,useMemo,useRef,useEffect}from\"react\";import{createPortal}from\"react-dom\";import{motion,AnimatePresence,addPropertyControls,ControlType,RenderTarget,useInView}from\"framer\";/**\n * ProjectGallery — Self-contained filterable gallery for Framer\n * v5 — fix allLabel reactivity, multi-category support, category sort order\n *\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 800\n * @framerIntrinsicHeight 600\n * @framerDisableUnlink\n */// ─── Types ────────────────────────────────────────────────────────────────────\n// Sentinel constant — never shown to user, never collides with a real category\nconst ALL_SENTINEL=\"__ALL__\";// ─── Helpers ──────────────────────────────────────────────────────────────────\nfunction hexToRgba(color,opacity){const hex=(color||\"#000000\").replace(\"#\",\"\");const r=parseInt(hex.substring(0,2),16)||0;const g=parseInt(hex.substring(2,4),16)||0;const b=parseInt(hex.substring(4,6),16)||0;return`rgba(${r},${g},${b},${opacity})`;}/**\n * Parse a comma-separated category string into a trimmed array of non-empty strings.\n * \"Commercial, Motion Design, \" → [\"Commercial\", \"Motion Design\"]\n */function parseCategories(raw){if(!raw?.trim())return[];return raw.split(\",\").map(s=>s.trim()).filter(Boolean);}// ─── Portal ───────────────────────────────────────────────────────────────────\n// Teleports children into document.body, escaping any CSS transform/filter\n// stacking context that Framer may create on ancestor elements.\nfunction Portal({children}){const[mounted,setMounted]=useState(false);useEffect(()=>{setMounted(true);},[]);if(!mounted)return null;return /*#__PURE__*/createPortal(children,document.body);}function VideoCard({src,hoverBehavior,focalX=50,focalY=50,containerRef}){const videoRef=useRef(null);React.useEffect(()=>{const container=containerRef?.current;const video=videoRef.current;if(!container||!video)return;const onEnter=()=>{if(hoverBehavior===\"pause-on-hover\")video.pause();else video.play();};const onLeave=()=>{if(hoverBehavior===\"pause-on-hover\")video.play();else video.pause();};container.addEventListener(\"mouseenter\",onEnter);container.addEventListener(\"mouseleave\",onLeave);return()=>{container.removeEventListener(\"mouseenter\",onEnter);container.removeEventListener(\"mouseleave\",onLeave);};},[hoverBehavior,containerRef]);return /*#__PURE__*/_jsx(\"video\",{ref:videoRef,src:src,autoPlay:hoverBehavior===\"pause-on-hover\",loop:true,muted:true,playsInline:true,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",objectPosition:`${focalX}% ${focalY}%`,display:\"block\",pointerEvents:\"none\"}});}// ─── Play Button ─────────────────────────────────────────────────────────────\nfunction PlayButton({size,color,bg,opacity,radius,offsetX,offsetY,hoverOnly}){const[hovered,setHovered]=useState(false);const visible=hoverOnly?hovered:true;return /*#__PURE__*/_jsx(\"div\",{onMouseEnter:()=>setHovered(true),onMouseLeave:()=>setHovered(false),style:{position:\"absolute\",inset:0,pointerEvents:hoverOnly?\"auto\":\"none\",zIndex:3},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:\"50%\",left:\"50%\",transform:`translate(calc(-50% + ${offsetX}px), calc(-50% + ${offsetY}px))`,width:size,height:size,borderRadius:`${radius}%`,backgroundColor:bg,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",opacity:visible?opacity:0,transition:\"opacity 0.2s ease\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"svg\",{width:size*.38,height:size*.38,viewBox:\"0 0 24 24\",fill:color,children:/*#__PURE__*/_jsx(\"polygon\",{points:\"6,3 20,12 6,21\"})})})});}// ─── Animated Card ────────────────────────────────────────────────────────────\nfunction AnimatedCard({i,isCanvas,cardTextGap,children}){const ref=useRef(null);const inView=useInView(ref,{once:true,margin:\"0px 0px -60px 0px\"});return /*#__PURE__*/_jsx(motion.div,{ref:ref,initial:isCanvas?{opacity:1,y:0}:{opacity:0,y:40},animate:isCanvas||inView?{opacity:1,y:0}:{opacity:0,y:40},exit:{opacity:0,y:20,transition:{duration:.2,ease:\"easeIn\"}},transition:{duration:1.8,delay:isCanvas?0:i*.25,ease:[.16,1,.3,1]},style:{display:\"flex\",flexDirection:\"column\",gap:`${cardTextGap}px`},children:children});}// ─── Close Button ─────────────────────────────────────────────────────────────\nfunction CloseButton({onClick,bg,color}){const[hov,setHov]=useState(false);return /*#__PURE__*/_jsx(\"div\",{onClick:e=>{e.stopPropagation();onClick();},onMouseEnter:()=>setHov(true),onMouseLeave:()=>setHov(false),style:{position:\"absolute\",top:\"24px\",right:\"24px\",width:\"44px\",height:\"44px\",borderRadius:\"50%\",backgroundColor:hov?\"rgba(255,255,255,0.25)\":bg,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",color,zIndex:10,transition:\"background-color 0.2s\",flexShrink:0},children:/*#__PURE__*/_jsxs(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:color,strokeWidth:\"2.5\",strokeLinecap:\"round\",strokeLinejoin:\"round\",children:[/*#__PURE__*/_jsx(\"line\",{x1:\"18\",y1:\"6\",x2:\"6\",y2:\"18\"}),/*#__PURE__*/_jsx(\"line\",{x1:\"6\",y1:\"6\",x2:\"18\",y2:\"18\"})]})});}// ─── Vimeo Lightbox ───────────────────────────────────────────────────────────\nfunction VimeoLightbox({vimeoUrl,vimeoRatio=\"16/9\",title,text,clientLogo,clientLogoSize,onClose,overlayColor,overlayOpacity,blur,panelBg,panelRadius,panelMaxWidth,panelPadding,textColor,titleSize,textSize,lightboxFont,closeBg,closeColor}){const vimeoId=useMemo(()=>{const match=vimeoUrl.match(/(?:vimeo\\.com\\/)(?:video\\/)?(\\d+)/);return match?match[1]:null;},[vimeoUrl]);// Calcul du ratio iframe : \"16/9\" → 56.25%, \"9/16\" → 177.78%, etc.\nconst ratioPadding=useMemo(()=>{const map={\"16/9\":\"56.25%\",\"9/16\":\"177.78%\",\"4/3\":\"75%\",\"1/1\":\"100%\"};return map[vimeoRatio]??\"56.25%\";},[vimeoRatio]);// Pour les formats verticaux, réduire le maxWidth du panel pour ne pas avoir\n// une fenêtre trop large avec une vidéo mince au centre\nconst effectiveMaxWidth=useMemo(()=>{if(vimeoRatio===\"9/16\")return Math.min(panelMaxWidth,420);if(vimeoRatio===\"1/1\")return Math.min(panelMaxWidth,640);return panelMaxWidth;},[vimeoRatio,panelMaxWidth]);const fontFamily=lightboxFont?.fontFamily||\"Inter, sans-serif\";const overlayBg=hexToRgba(overlayColor,overlayOpacity);return /*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:onClose,style:{position:\"fixed\",top:0,left:0,right:0,bottom:0,backgroundColor:overlayBg,backdropFilter:blur>0?`blur(${blur}px)`:\"none\",WebkitBackdropFilter:blur>0?`blur(${blur}px)`:\"none\",zIndex:99999,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:\"40px\",cursor:\"zoom-out\",pointerEvents:\"auto\"},children:[/*#__PURE__*/_jsx(CloseButton,{onClick:onClose,bg:closeBg,color:closeColor}),/*#__PURE__*/_jsxs(motion.div,{initial:{scale:.95,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.95,opacity:0},transition:{type:\"spring\",damping:25,stiffness:300},onClick:e=>e.stopPropagation(),style:{backgroundColor:panelBg,borderRadius:`${panelRadius}px`,overflow:\"hidden\",maxWidth:`${effectiveMaxWidth}px`,width:\"100%\",cursor:\"default\",boxShadow:\"0 32px 80px rgba(0,0,0,0.35)\"},children:[vimeoId&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",paddingBottom:ratioPadding,height:0,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"iframe\",{src:`https://player.vimeo.com/video/${vimeoId}?autoplay=1&loop=0&title=0&byline=0&portrait=0`,style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",border:\"none\"},allow:\"autoplay; fullscreen; picture-in-picture\",allowFullScreen:true})}),(clientLogo||title||text)&&/*#__PURE__*/_jsxs(\"div\",{style:{padding:`${panelPadding}px`,display:\"flex\",flexDirection:\"column\",gap:\"10px\"},children:[clientLogo?.src&&/*#__PURE__*/_jsx(\"img\",{src:clientLogo.src,alt:\"client logo\",style:{height:`${clientLogoSize}px`,width:\"auto\",objectFit:\"contain\",alignSelf:\"flex-start\"}}),title&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily,fontSize:`${titleSize}px`,fontWeight:600,color:textColor,lineHeight:1.3},children:title}),text&&/*#__PURE__*/_jsx(\"div\",{style:{fontFamily,fontSize:`${textSize}px`,fontWeight:400,color:textColor,opacity:.65,lineHeight:1.6},children:text})]})]})]});}// ─── Image Lightbox ───────────────────────────────────────────────────────────\nfunction ImageLightbox({src,onClose,overlayColor,overlayOpacity,blur,closeBg,closeColor}){const overlayBg=hexToRgba(overlayColor,overlayOpacity);return /*#__PURE__*/_jsxs(motion.div,{initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},onClick:onClose,style:{position:\"fixed\",top:0,left:0,right:0,bottom:0,backgroundColor:overlayBg,backdropFilter:blur>0?`blur(${blur}px)`:\"none\",WebkitBackdropFilter:blur>0?`blur(${blur}px)`:\"none\",zIndex:99999,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:\"40px\",cursor:\"zoom-out\",pointerEvents:\"auto\"},children:[/*#__PURE__*/_jsx(CloseButton,{onClick:onClose,bg:closeBg,color:closeColor}),/*#__PURE__*/_jsx(motion.img,{src:src,initial:{scale:.95,opacity:0},animate:{scale:1,opacity:1},exit:{scale:.95,opacity:0},transition:{type:\"spring\",damping:25,stiffness:300},onClick:e=>e.stopPropagation(),style:{maxWidth:\"100%\",maxHeight:\"100%\",objectFit:\"contain\",boxShadow:\"0 24px 64px rgba(0,0,0,0.5)\",cursor:\"default\"}})]});}// ─── Gallery Card ─────────────────────────────────────────────────────────────\nfunction GalleryCard({item,isCanvas,cardTextGap,aspectRatio,cardRadius,hoverZoomScale,showHoverOverlay,hoverOverlayRgba,showPlayButton,playButtonSize,playButtonColor,playButtonBg,playButtonOpacity,playButtonRadius,playButtonOffsetX,playButtonOffsetY,playButtonOnHoverOnly,cardStyles,cardTextColor,cardUppercase,onCardClick}){const containerRef=useRef(null);const hasClickAction=item.vimeoUrl?.trim()||item.mediaType===\"image\"&&item.image?.src;const showPlay=showPlayButton&&(item.mediaType===\"video\"||item.vimeoUrl?.trim());const videoSrc=item.mediaType===\"video\"?item.videoSource===\"upload\"?item.videoFile||\"\":item.videoUrl||\"\":\"\";return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsxs(\"div\",{ref:containerRef,onClick:()=>onCardClick(item),style:{width:\"100%\",aspectRatio,overflow:\"hidden\",backgroundColor:\"#1a1a1a\",flexShrink:0,cursor:!isCanvas&&hasClickAction?\"pointer\":\"default\",position:\"relative\",borderRadius:`${cardRadius}px`},children:[item.mediaType===\"video\"&&videoSrc?/*#__PURE__*/_jsx(VideoCard,{src:videoSrc,hoverBehavior:item.videoHoverBehavior||\"pause-on-hover\",focalX:item.focalX,focalY:item.focalY,containerRef:containerRef}):item.image?.src?/*#__PURE__*/_jsx(motion.div,{whileHover:{scale:hoverZoomScale??1.04},transition:{duration:.6,ease:[.22,.03,.26,1]},style:{width:\"100%\",height:\"100%\",backgroundImage:`url(${item.image.src})`,backgroundSize:\"cover\",backgroundPosition:`${item.focalX??50}% ${item.focalY??50}%`,backgroundRepeat:\"no-repeat\",display:\"block\",transformOrigin:\"center center\"}}):/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",color:\"#888\",fontSize:11,fontFamily:cardStyles.fontFamily,textAlign:\"center\",padding:\"12px\",gap:\"6px\",lineHeight:1.4},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:18},children:\"+\"}),\"Add image & fill in Title and Category\"]}),showHoverOverlay&&!isCanvas&&/*#__PURE__*/_jsx(motion.div,{initial:{opacity:0},whileHover:{opacity:1},transition:{duration:.25},style:{position:\"absolute\",inset:0,backgroundColor:hoverOverlayRgba,pointerEvents:\"none\",zIndex:1}}),showPlay&&!isCanvas&&/*#__PURE__*/_jsx(PlayButton,{size:playButtonSize,color:playButtonColor,bg:playButtonBg,opacity:playButtonOpacity,radius:playButtonRadius,offsetX:playButtonOffsetX,offsetY:playButtonOffsetY,hoverOnly:playButtonOnHoverOnly})]}),item.title&&/*#__PURE__*/_jsx(\"div\",{style:{fontSize:cardStyles.fontSize,fontWeight:cardStyles.fontWeight,color:cardTextColor,fontFamily:cardStyles.fontFamily,letterSpacing:cardStyles.letterSpacing,lineHeight:cardStyles.lineHeight,textAlign:cardStyles.textAlign,textTransform:cardUppercase?\"uppercase\":\"none\",width:\"100%\",overflowWrap:\"break-word\",wordBreak:\"break-word\"},children:item.title})]});}// ─── Main Component ───────────────────────────────────────────────────────────\nexport default function ProjectGallery(props){const{items=[],columns,cardGap,cardRadius,tabGap,sectionGap,showHoverOverlay,hoverOverlayColor,hoverOverlayOpacity,hoverZoomScale,showFilterMenu,activeTextColor,inactiveTextColor,underlineColor,dividerColor,tabFont,tabUppercase,cardTextColor,cardFont,cardUppercase,cardTextGap,allLabel,aspectRatio,showPlayButton,playButtonSize,playButtonColor,playButtonBg,playButtonOpacity,playButtonRadius,playButtonOffsetX,playButtonOffsetY,playButtonOnHoverOnly,lightboxOverlayColor,lightboxOverlayOpacity,lightboxBlur,lightboxPanelBg,lightboxPanelRadius,lightboxPanelMaxWidth,lightboxPanelPadding,lightboxTextColor,lightboxTitleSize,lightboxTextSize,lightboxFont,lightboxCloseBg,lightboxCloseColor,clientLogoSize,categoryOrder}=props;const getFontStyle=(font,defaultSize,defaultWeight)=>{const rawSize=font?.fontSize??defaultSize;const fontSize=typeof rawSize===\"number\"?`${rawSize}px`:rawSize;return{fontFamily:font?.fontFamily||\"Inter, sans-serif\",fontSize,fontWeight:font?.fontWeight??defaultWeight,letterSpacing:font?.letterSpacing??0,lineHeight:font?.lineHeight??1.3,textAlign:font?.textAlign||\"left\"};};const tabStyles=getFontStyle(tabFont,14,500);const cardStyles=getFontStyle(cardFont,13,400);// ── FIX 1: activeTab uses the sentinel internally, never the label string ──\n// This means renaming allLabel never breaks the \"show all\" state.\nconst[activeTab,setActiveTab]=useState(ALL_SENTINEL);// If allLabel prop changes while the \"all\" tab is active, nothing breaks\n// because we compare against ALL_SENTINEL, not the label.\n// ── Build tabs with optional explicit sort order ───────────────────────────\nconst tabs=useMemo(()=>{// Collect all unique categories from items (preserve first-seen casing)\nconst catsMap=new Map;items.forEach(item=>{parseCategories(item.category).forEach(cat=>{if(!catsMap.has(cat.toLowerCase()))catsMap.set(cat.toLowerCase(),cat);});});const order=parseCategories(categoryOrder||\"\");if(order.length===0){// No explicit order — keep insertion order\nreturn[ALL_SENTINEL,...Array.from(catsMap.values())];}// Start with the explicitly ordered categories (only those that actually exist)\nconst ordered=order.map(cat=>catsMap.get(cat.toLowerCase())).filter(cat=>cat!==undefined);// Append any remaining categories not mentioned in categoryOrder\nconst orderedKeys=new Set(order.map(c=>c.toLowerCase()));const rest=Array.from(catsMap.values()).filter(cat=>!orderedKeys.has(cat.toLowerCase()));return[ALL_SENTINEL,...ordered,...rest];},[items,categoryOrder]);const[lightboxImage,setLightboxImage]=useState(null);const[lightboxItem,setLightboxItem]=useState(null);// Bloquer le scroll de la page quand une lightbox est ouverte\nuseEffect(()=>{const isOpen=!!(lightboxItem||lightboxImage);document.body.style.overflow=isOpen?\"hidden\":\"\";return()=>{document.body.style.overflow=\"\";};},[lightboxItem,lightboxImage]);const tabsRef=useRef(null);const tabsInView=useInView(tabsRef,{once:true,margin:\"0px 0px -50px 0px\"});// ── FIX 2: Filter with multi-category support ─────────────────────────────\nconst filtered=useMemo(()=>{if(activeTab===ALL_SENTINEL)return items;return items.filter(item=>{const cats=parseCategories(item.category).map(c=>c.toLowerCase());return cats.includes(activeTab.toLowerCase());});},[items,activeTab]);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const handleCardClick=item=>{if(isCanvas)return;if(item.vimeoUrl?.trim()){setLightboxItem(item);return;}if(item.mediaType===\"image\"&&item.image?.src)setLightboxImage(item.image.src);};const hoverOverlayRgba=hexToRgba(hoverOverlayColor||\"#000000\",hoverOverlayOpacity??.15);if(!items||items.length===0){return /*#__PURE__*/_jsx(\"div\",{style:{padding:\"24px\",color:\"#888\",fontSize:13,fontFamily:\"Inter, sans-serif\",border:\"1px dashed #444\",borderRadius:8,textAlign:\"center\"},children:\"← Add projects in the right panel (Items)\"});}return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:`${sectionGap}px`,width:\"100%\"},children:[showFilterMenu&&/*#__PURE__*/_jsx(motion.div,{ref:tabsRef,initial:isCanvas?{opacity:1,y:0}:{opacity:0,y:15},animate:isCanvas||tabsInView?{opacity:1,y:0}:{opacity:0,y:15},transition:{duration:1.2,ease:[.16,1,.3,1],delay:.1},style:{display:\"flex\",flexWrap:\"wrap\",gap:`${tabGap}px`,width:\"100%\",borderBottom:`1px solid ${dividerColor}`,position:\"relative\",paddingBottom:\"1px\"},children:tabs.map((tab,i)=>{const isActive=activeTab===tab;// Display label: sentinel → allLabel prop, others → as-is\nconst displayLabel=tab===ALL_SENTINEL?allLabel:tab;return /*#__PURE__*/_jsxs(motion.button,{onClick:()=>setActiveTab(tab),initial:isCanvas?{opacity:1,x:0}:{opacity:0,x:-10},animate:isCanvas||tabsInView?{opacity:1,x:0}:{opacity:0,x:-10},transition:{duration:.6,delay:isCanvas?0:.2+i*.05,ease:[.22,1,.36,1]},style:{border:\"none\",backgroundColor:\"transparent\",padding:\"8px 0\",cursor:\"pointer\",fontWeight:tabStyles.fontWeight,fontSize:tabStyles.fontSize,fontFamily:tabStyles.fontFamily,letterSpacing:tabStyles.letterSpacing,lineHeight:tabStyles.lineHeight,textAlign:tabStyles.textAlign,textTransform:tabUppercase?\"uppercase\":\"none\",color:isActive?activeTextColor:inactiveTextColor,transition:\"color 0.2s ease\",outline:\"none\",userSelect:\"none\",whiteSpace:\"nowrap\",position:\"relative\"},children:[displayLabel,isActive&&/*#__PURE__*/_jsx(motion.div,{layoutId:\"tabUnderline\",style:{position:\"absolute\",bottom:\"-2px\",left:0,right:0,height:\"2px\",backgroundColor:underlineColor,zIndex:2},transition:{type:\"spring\",stiffness:500,damping:35}})]},tab);})}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gridTemplateColumns:`repeat(${columns}, 1fr)`,gap:`${cardGap}px`,width:\"100%\"},children:/*#__PURE__*/_jsx(AnimatePresence,{mode:\"wait\",children:filtered.map((item,i)=>{return /*#__PURE__*/_jsx(AnimatedCard,{i:i,isCanvas:isCanvas,cardTextGap:cardTextGap,children:/*#__PURE__*/_jsx(GalleryCard,{item:item,isCanvas:isCanvas,cardTextGap:cardTextGap,aspectRatio:aspectRatio,cardRadius:cardRadius,hoverZoomScale:hoverZoomScale,showHoverOverlay:showHoverOverlay,hoverOverlayRgba:hoverOverlayRgba,showPlayButton:showPlayButton,playButtonSize:playButtonSize,playButtonColor:playButtonColor,playButtonBg:playButtonBg,playButtonOpacity:playButtonOpacity,playButtonRadius:playButtonRadius,playButtonOffsetX:playButtonOffsetX,playButtonOffsetY:playButtonOffsetY,playButtonOnHoverOnly:playButtonOnHoverOnly,cardStyles:cardStyles,cardTextColor:cardTextColor,cardUppercase:cardUppercase,onCardClick:handleCardClick})},`${activeTab}-${i}`);})})}),/*#__PURE__*/_jsx(Portal,{children:/*#__PURE__*/_jsxs(AnimatePresence,{children:[lightboxItem&&/*#__PURE__*/_jsx(VimeoLightbox,{vimeoUrl:lightboxItem.vimeoUrl,vimeoRatio:lightboxItem.vimeoRatio??\"16/9\",title:lightboxItem.lightboxTitle||lightboxItem.title,text:lightboxItem.lightboxText||\"\",clientLogo:lightboxItem.clientLogo,clientLogoSize:clientLogoSize,onClose:()=>setLightboxItem(null),overlayColor:lightboxOverlayColor,overlayOpacity:lightboxOverlayOpacity,blur:lightboxBlur,panelBg:lightboxPanelBg,panelRadius:lightboxPanelRadius,panelMaxWidth:lightboxPanelMaxWidth,panelPadding:lightboxPanelPadding,textColor:lightboxTextColor,titleSize:lightboxTitleSize,textSize:lightboxTextSize,lightboxFont:lightboxFont,closeBg:lightboxCloseBg,closeColor:lightboxCloseColor},\"vimeo-lb\"),lightboxImage&&!lightboxItem&&/*#__PURE__*/_jsx(ImageLightbox,{src:lightboxImage,onClose:()=>setLightboxImage(null),overlayColor:lightboxOverlayColor,overlayOpacity:lightboxOverlayOpacity,blur:lightboxBlur,closeBg:lightboxCloseBg,closeColor:lightboxCloseColor},\"image-lb\")]})})]});}// ─── Property Controls ────────────────────────────────────────────────────────\naddPropertyControls(ProjectGallery,{items:{type:ControlType.Array,title:\"Items\",control:{type:ControlType.Object,controls:{mediaType:{type:ControlType.Enum,title:\"Media Type\",options:[\"image\",\"video\"],optionTitles:[\"Image\",\"Video\"],defaultValue:\"image\"},image:{type:ControlType.ResponsiveImage,title:\"Image\",hidden:props=>props.mediaType===\"video\"},videoSource:{type:ControlType.Enum,title:\"Video Source\",options:[\"upload\",\"url\"],optionTitles:[\"Upload\",\"URL\"],defaultValue:\"upload\",hidden:props=>props.mediaType!==\"video\"},videoFile:{type:ControlType.File,title:\"Video File\",allowedFileTypes:[\"mp4\",\"webm\",\"mov\",\"ogg\"],hidden:props=>props.mediaType!==\"video\"||props.videoSource!==\"upload\"},videoUrl:{type:ControlType.String,title:\"Video URL\",placeholder:\"https://example.com/video.mp4\",defaultValue:\"\",hidden:props=>props.mediaType!==\"video\"||props.videoSource!==\"url\"},videoHoverBehavior:{type:ControlType.Enum,title:\"Hover Behavior\",options:[\"pause-on-hover\",\"play-on-hover\"],optionTitles:[\"Pause on hover\",\"Play on hover\"],defaultValue:\"pause-on-hover\",hidden:props=>props.mediaType!==\"video\"},title:{type:ControlType.String,title:\"Title\",defaultValue:\"Project Name\"},category:{type:ControlType.String,title:\"Category\",placeholder:\"e.g. Commercial, Motion Design\",defaultValue:\"Commercial\"},focalX:{type:ControlType.Number,title:\"Focal X\",defaultValue:50,min:0,max:100,step:1,displayStepper:true,unit:\"%\"},focalY:{type:ControlType.Number,title:\"Focal Y\",defaultValue:50,min:0,max:100,step:1,displayStepper:true,unit:\"%\"},vimeoUrl:{type:ControlType.String,title:\"Vimeo URL\",placeholder:\"https://vimeo.com/123456789\",defaultValue:\"\"},vimeoRatio:{type:ControlType.Enum,title:\"Vimeo Ratio\",options:[\"16/9\",\"9/16\",\"4/3\",\"1/1\"],optionTitles:[\"16:9 (paysage)\",\"9:16 (vertical)\",\"4:3\",\"1:1 (carr\\xe9)\"],defaultValue:\"16/9\",hidden:props=>!props.vimeoUrl?.trim()},lightboxTitle:{type:ControlType.String,title:\"Lightbox Title\",placeholder:\"Override title (optional)\",defaultValue:\"\"},lightboxText:{type:ControlType.String,title:\"Lightbox Text\",placeholder:\"Description in lightbox\",defaultValue:\"\",displayTextArea:true},clientLogo:{type:ControlType.ResponsiveImage,title:\"Client Logo\"}}},defaultValue:[{title:\"Project 1\",category:\"Category A\",mediaType:\"image\"},{title:\"Project 2\",category:\"Category B\",mediaType:\"image\"},{title:\"Project 3\",category:\"Category A, Category B\",mediaType:\"video\"},{title:\"Project 4\",category:\"Category C\",mediaType:\"image\"},{title:\"Project 5\",category:\"Category B, Category C\",mediaType:\"video\"}]},allLabel:{type:ControlType.String,title:\"All Label\",defaultValue:\"ALL\"},categoryOrder:{type:ControlType.String,title:\"Category Order\",placeholder:\"e.g. Motion Design, Commercial, Brand\",defaultValue:\"\"},// ── FILTER MENU ──────────────────────────────────────────────────────────\nshowFilterMenu:{type:ControlType.Boolean,title:\"Show Filters\",defaultValue:true},tabFont:{type:ControlType.Font,title:\"Tab Font\",defaultValue:{fontFamily:\"Inter\",fontSize:14,fontWeight:500},controls:\"extended\"},tabUppercase:{type:ControlType.Boolean,title:\"Tab Uppercase\",defaultValue:true},activeTextColor:{type:ControlType.Color,title:\"Active Tab\",defaultValue:\"#000000\"},inactiveTextColor:{type:ControlType.Color,title:\"Inactive Tab\",defaultValue:\"#888888\"},underlineColor:{type:ControlType.Color,title:\"Underline\",defaultValue:\"#000000\"},dividerColor:{type:ControlType.Color,title:\"Divider\",defaultValue:\"#e5e5e5\"},tabGap:{type:ControlType.Number,title:\"Tab Gap\",defaultValue:16,min:0,max:40},// ── CARDS ────────────────────────────────────────────────────────────────\ncardFont:{type:ControlType.Font,title:\"Card Font\",defaultValue:{fontFamily:\"Inter\",fontSize:13,fontWeight:400},controls:\"extended\"},cardUppercase:{type:ControlType.Boolean,title:\"Card Uppercase\",defaultValue:false},cardTextColor:{type:ControlType.Color,title:\"Card Title Color\",defaultValue:\"#000000\"},cardRadius:{type:ControlType.Number,title:\"Card Radius\",defaultValue:0,min:0,max:48,displayStepper:true,unit:\"px\"},columns:{type:ControlType.Number,title:\"Columns\",defaultValue:3,min:1,max:6,step:1,displayStepper:true},aspectRatio:{type:ControlType.Enum,title:\"Aspect Ratio\",options:[\"1 / 1\",\"4 / 3\",\"16 / 9\",\"3 / 4\",\"9 / 16\"],optionTitles:[\"Square\",\"4:3\",\"16:9\",\"Portrait 3:4\",\"Portrait 9:16\"],defaultValue:\"4 / 3\"},cardGap:{type:ControlType.Number,title:\"Card Gap\",defaultValue:16,min:0,max:80},cardTextGap:{type:ControlType.Number,title:\"Img to Title Gap\",defaultValue:4,min:0,max:40},// ── HOVER ────────────────────────────────────────────────────────────────\nshowHoverOverlay:{type:ControlType.Boolean,title:\"Hover Overlay\",defaultValue:true},hoverOverlayColor:{type:ControlType.Color,title:\"Overlay Color\",defaultValue:\"#000000\",hidden:props=>!props.showHoverOverlay},hoverOverlayOpacity:{type:ControlType.Number,title:\"Overlay Opacity\",defaultValue:.15,min:0,max:1,step:.05,hidden:props=>!props.showHoverOverlay},hoverZoomScale:{type:ControlType.Number,title:\"Hover Zoom\",defaultValue:1.04,min:1,max:1.2,step:.01,description:\"Set to 1 to disable zoom\"},// ── PLAY BUTTON ──────────────────────────────────────────────────────────\nshowPlayButton:{type:ControlType.Boolean,title:\"Show Play Button\",defaultValue:true},playButtonOnHoverOnly:{type:ControlType.Boolean,title:\"Show on Hover Only\",defaultValue:false,hidden:props=>!props.showPlayButton},playButtonSize:{type:ControlType.Number,title:\"Button Size\",defaultValue:48,min:24,max:120,displayStepper:true,hidden:props=>!props.showPlayButton},playButtonRadius:{type:ControlType.Number,title:\"Button Radius\",defaultValue:50,min:0,max:50,displayStepper:true,description:\"50=circle, 0=square\",hidden:props=>!props.showPlayButton},playButtonColor:{type:ControlType.Color,title:\"Icon Color\",defaultValue:\"#FFFFFF\",hidden:props=>!props.showPlayButton},playButtonBg:{type:ControlType.Color,title:\"Button BG\",defaultValue:\"rgba(0,0,0,0.5)\",hidden:props=>!props.showPlayButton},playButtonOpacity:{type:ControlType.Number,title:\"Button Opacity\",defaultValue:1,min:0,max:1,step:.05,hidden:props=>!props.showPlayButton},playButtonOffsetX:{type:ControlType.Number,title:\"Offset X\",defaultValue:0,min:-200,max:200,displayStepper:true,unit:\"px\",hidden:props=>!props.showPlayButton},playButtonOffsetY:{type:ControlType.Number,title:\"Offset Y\",defaultValue:0,min:-200,max:200,displayStepper:true,unit:\"px\",hidden:props=>!props.showPlayButton},// ── LIGHTBOX OVERLAY ─────────────────────────────────────────────────────\nlightboxOverlayColor:{type:ControlType.Color,title:\"Overlay Color\",defaultValue:\"#000000\"},lightboxOverlayOpacity:{type:ControlType.Number,title:\"Overlay Opacity\",defaultValue:.88,min:0,max:1,step:.05},lightboxBlur:{type:ControlType.Number,title:\"Overlay Blur\",defaultValue:12,min:0,max:40,unit:\"px\"},// ── LIGHTBOX PANEL ───────────────────────────────────────────────────────\nlightboxPanelBg:{type:ControlType.Color,title:\"Panel BG\",defaultValue:\"#FFFFFF\"},lightboxPanelRadius:{type:ControlType.Number,title:\"Panel Radius\",defaultValue:12,min:0,max:48,displayStepper:true,unit:\"px\"},lightboxPanelMaxWidth:{type:ControlType.Number,title:\"Panel Max Width\",defaultValue:900,min:400,max:1400,displayStepper:true,unit:\"px\"},lightboxPanelPadding:{type:ControlType.Number,title:\"Panel Padding\",defaultValue:24,min:0,max:60,displayStepper:true,unit:\"px\"},lightboxTextColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},lightboxTitleSize:{type:ControlType.Number,title:\"Title Size\",defaultValue:18,min:12,max:40,displayStepper:true,unit:\"px\"},lightboxTextSize:{type:ControlType.Number,title:\"Text Size\",defaultValue:14,min:10,max:24,displayStepper:true,unit:\"px\"},lightboxFont:{type:ControlType.Font,title:\"Panel Font\",defaultValue:{fontFamily:\"Inter\",fontSize:14,fontWeight:400},controls:\"extended\"},// ── LIGHTBOX CLOSE BUTTON ────────────────────────────────────────────────\nlightboxCloseBg:{type:ControlType.Color,title:\"Close Button BG\",defaultValue:\"rgba(255,255,255,0.15)\"},lightboxCloseColor:{type:ControlType.Color,title:\"Close Icon Color\",defaultValue:\"#FFFFFF\"},// ── CLIENT LOGO ──────────────────────────────────────────────────────────\nclientLogoSize:{type:ControlType.Number,title:\"Client Logo Height\",defaultValue:40,min:16,max:120,displayStepper:true,unit:\"px\"},// ── LAYOUT ───────────────────────────────────────────────────────────────\nsectionGap:{type:ControlType.Number,title:\"Tabs to Cards Gap\",defaultValue:40,min:0,max:120}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ProjectGallery\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProjectGallery.map"],"mappings":"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"}