{"version":3,"file":"MJIX5RpFF.Cu8sd-HQ.mjs","names":["useState","useRef","_Fragment","Tile","React.useRef","React.useState","React.useMemo","p","useId","useRef","useMemo","useState","c","useCallback","_Fragment","useLayoutEffect","useEffect"],"sources":["https:/framerusercontent.com/modules/ycRBkUtTGPq2JzTXCzzZ/RnY1QZyrXLPalRBNI0Vr/Comment.js","https:/framerusercontent.com/modules/YJwkduAP6McZpeH8Z1l9/M1ReFRVoSmOdZuq4Se8g/Image_Shatter.js","https:/framerusercontent.com/modules/mXRxxBwcbkicQpdpmmyC/nBjrB1OumMFDFXbEmfGP/CmsFilterBentoGrid.js","https:/framerusercontent.com/modules/Yx2f72iJJFuE0ZPI6vuU/EKCvQkqiSNZvqZ0XKQPT/MJIX5RpFF.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useState,useRef}from\"react\";import{addPropertyControls,ControlType,RenderTarget,motion}from\"framer\";// const AVATAR_URL = \"https://source.boringavatars.com/\"\nconst AVATAR_URL=\"https://framer-university.boringavatars.dev/api/avatar\";const API=\"https://pxwnjmlzfycfhxaecgns.supabase.co/functions/v1/comment\";const LIMIT=2;// Do not change these sentences below without letting me know.\nconst BAD_WORDS=\"Comment contains inappropriate language\";const SPAM=\"Too many comments for today\";const BOT=\"Comment flagged as potential spam or bot activity\";/**\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerIntrinsicWidth 600\n * @framerSupportedLayoutHeight auto\n */export default function Comment(props){const{commentId,title,input,publishButton,commentProps,divider,gaps,emptyState}=props;const isCanvas=RenderTarget.current()===RenderTarget.canvas;const[name,setName]=useState(\"\");const[comment,setComment]=useState(\"\");const[isLoading,setIsLoading]=useState(false);const[comments,setComments]=useState([]);const[hasError,setHasError]=useState(false);const[errorMessage,setErrorMessage]=useState(`You can't send more than ${LIMIT} comments per day under this comments section.`);const[isSmallScreen,setIsSmallScreen]=useState(false);const[currentPage,setCurrentPage]=useState(1);const[totalPages,setTotalPages]=useState(1);const[commentsLoaded,setCommentsLoaded]=useState(false);useEffect(()=>{const handleResize=()=>{setIsSmallScreen(typeof window!==\"undefined\"?window.innerWidth<810:false);};handleResize();window.addEventListener(\"resize\",handleResize);return()=>{window.removeEventListener(\"resize\",handleResize);};},[]);useEffect(()=>{const getData=async()=>{try{const{pathname,host}=window.location;const response=await fetch(`${API}?slug=${pathname}&comment_id=${commentId}&domain=${host}&page=${currentPage}`);if(!response.ok){throw`An error has occured: ${response.status}`;}const{data,pagination}=await response.json();setTotalPages(pagination.totalPages);setComments(prev=>[...prev,...data]);setCommentsLoaded(true);}catch(error){console.error(error);}};if(typeof window!==\"undefined\"&&totalPages>=currentPage){getData();}},[currentPage]);const onSubmit=async e=>{try{e.preventDefault();setHasError(false);setIsLoading(true);const{pathname,host}=window.location;const Botpoison=await import(\"@botpoison/browser\");const botpoison=new Botpoison.default({publicKey:\"pk_76fefdd6-9d97-42e8-af8d-ad0f44708404\"});const{solution}=await botpoison.challenge();const response=await fetch(`${API}`,{method:\"POST\",headers:{\"Content-Type\":\"application/json\"},body:JSON.stringify({slug:pathname,commentId,domain:host,name,comment,_botpoison:solution})});if(!response.ok){const{error}=await response.json();if(error===BAD_WORDS){setErrorMessage(BAD_WORDS+\".\");}else if(error===SPAM){setErrorMessage(`You can't send more than ${LIMIT} comments per day under this comments section.`);}else if(error===BOT){setErrorMessage(BOT+\".\");}else{setErrorMessage(\"An error has occured.\");throw`An error has occured: ${response.status}`;}setHasError(true);}else{const newComment=await response.json();setComments(prevComments=>[newComment[0],...prevComments]);}}catch(error){console.error(error);}finally{setIsLoading(false);setName(\"\");setComment(\"\");}};const handleCommentChange=event=>setComment(event.target.value);const handleNameChange=event=>setName(event.target.value);const styleRef=useRef(null);useEffect(()=>{const styleString=`#comment_component input::placeholder {\n      color: ${input.placeHolderColor} !important;\n    }`;const styleElement=document.createElement(\"style\");styleElement.innerHTML=styleString;document.head.appendChild(styleElement);styleRef.current=styleElement;return()=>{if(styleRef.current){document.head.removeChild(styleRef.current);}};},[props,input.placeHolderColor]);return /*#__PURE__*/_jsx(\"div\",{id:\"comment_component\",style:{display:\"flex\",flexDirection:\"column\",alignItems:\"start\",gap:\"20px\",...props.style},children:/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:`${gaps.commentSection}px`,width:\"100%\"},children:[title.show&&/*#__PURE__*/_jsx(Title,{color:title.color,font:title.font,text:title.text}),/*#__PURE__*/_jsxs(\"form\",{onSubmit:onSubmit,style:{display:\"flex\",flexDirection:isSmallScreen?\"column\":\"row\",gap:\"8px\",alignItems:\"center\",width:\"100%\"},children:[/*#__PURE__*/_jsx(Input,{id:\"name\",value:name,onChange:handleNameChange,placeholder:input.placeHolderName,property:input,isSmallScreen:isSmallScreen}),/*#__PURE__*/_jsx(Input,{id:\"comment\",value:comment,onChange:handleCommentChange,placeholder:input.placeHolderComment,property:input,isSmallScreen:isSmallScreen}),/*#__PURE__*/_jsx(PublishButton,{isActive:name.length>0&&comment.length>0,property:publishButton,isSmallScreen:isSmallScreen,isCanvas:isCanvas})]}),/*#__PURE__*/_jsx(BreakingLine,{backgroundColor:divider}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"20px\",alignItems:\"center\",width:\"100%\"},children:[(hasError||isCanvas)&&/*#__PURE__*/_jsx(Error,{comment:commentProps,errorMessage:errorMessage}),(isLoading||isCanvas)&&/*#__PURE__*/_jsx(Loader,{commentProps:commentProps,gaps:gaps,input:input,loaderContent:{name,comment}}),commentsLoaded&&(comments.length===0||isCanvas)&&/*#__PURE__*/_jsx(NoComment,{comment:commentProps,emptyState:emptyState}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:`${gaps.commentItems}px`,alignItems:\"center\",width:\"100%\"},children:[isCanvas&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(Content,{commentProps:commentProps,comment:\"This is a placeholder comment. It serves as a temporary ipso facto for representation purposes. It's designed to illustrate what the real content might look like once it's placed. Please remember that the actual content may differ from this placeholder. Thank you for understanding the functional purpose of this placeholder text.\",name:\"Nandi\",date:\"12 minutes ago\",gaps:gaps}),/*#__PURE__*/_jsx(Content,{commentProps:commentProps,comment:\"This is a placeholder comment. It serves as a temporary ipso facto for representation purposes. It's designed to illustrate what the real content might look like once it's placed. Please remember that the actual content may differ from this placeholder. Thank you for understanding the functional purpose of this placeholder text.\",name:\"Cl\\xe9ment\",date:\"22 minutes ago\",gaps:gaps})]}),comments&&comments.map(({comment,name,created_at},index)=>{const date=timeSinceMessageSent(created_at);// Check if this is the position to insert the infiniteScrollRef\nconst isInfiniteScrollPosition=comments.length-index===10;return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\"},children:[isInfiniteScrollPosition&&/*#__PURE__*/_jsx(motion.div,{onViewportEnter:()=>setCurrentPage(prev=>prev+1)}),/*#__PURE__*/_jsx(Content,{commentProps:commentProps,comment:comment,name:name,date:date,gaps:gaps},index+created_at)]});})]})]})]})});}const Input=({id,value,onChange,placeholder,property,isSmallScreen})=>{const maxWidth=id===\"name\"&&!isSmallScreen?\"200px\":\"100%\";const borderRadius=property.radiusIsMixed?`${property.radiusTopLeft}px ${property.radiusTopRight}px ${property.radiusBottomRight}px ${property.radiusBottomLeft}px`:`${property.radius}px`;const padding=property.paddingIsMixed?`${property.paddingTopLeft}px ${property.paddingTopRight}px ${property.paddingBottomRight}px ${property.paddingBottomLeft}px`:`${property.padding}px`;const boxShadow=`${property.shadow.x}px ${property.shadow.y}px ${property.shadow.blur}px ${property.shadow.color}`;const handlePaste=e=>e.preventDefault();return /*#__PURE__*/_jsx(\"label\",{htmlFor:id,style:{cursor:\"text\",userSelect:\"none\",display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",gap:\"6px\",width:\"100%\",maxWidth,backgroundColor:property.fill,border:`${property.border.width}px solid ${property.border.color}`,borderRadius,padding,boxShadow,height:property.height===\"auto\"?property.height:`${property.heightNumber}px`},children:/*#__PURE__*/_jsx(\"input\",{id:id,name:id,type:\"text\",placeholder:placeholder,style:{fontSize:\"16px\",fontFamily:\"Inter\",color:property.textColor,backgroundColor:property.fill,outline:\"none\",width:\"100%\",borderWidth:\"0px\",padding:0,...property.font},value:value,onChange:onChange,required:true,onPaste:handlePaste})});};const Title=({color,font,text})=>{return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"row\",width:\"100%\"},children:/*#__PURE__*/_jsx(\"p\",{style:{fontSize:\"21px\",fontFamily:\"Inter\",color,...font,margin:0},children:text})});};const Content=({commentProps,comment,name,date,gaps})=>{const colors=commentProps.image.colors.map(color=>rgbToHex(extractRGBColorFromString(color))).join(\",\");// const image = `${AVATAR_URL}/${\n//     commentProps.image.type\n// }?square&name=${encodeURIComponent(name)}&colors=${colors}`\nconst image=`${AVATAR_URL}?variant=${commentProps.image.type}&square&name=${encodeURIComponent(name)}&colors=${colors}`;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"column\",gap:\"8px\",width:\"100%\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",alignItems:\"center\",gap:`${gaps.profilePictureAndName}px`,width:\"100%\"},children:[/*#__PURE__*/_jsx(\"img\",{src:image,alt:\"\",style:{width:`${commentProps.image.size}px`,height:`${commentProps.image.size}px`,borderRadius:`${commentProps.image.radius}px`,objectFit:\"cover\"}}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",flexDirection:\"row\",gap:`${gaps.nameAndTime}px`,alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{fontSize:\"14px\",fontFamily:\"Inter\",color:commentProps.name.textColor,...commentProps.name.font,margin:0},children:name}),/*#__PURE__*/_jsx(\"p\",{style:{fontSize:\"12px\",fontFamily:\"Inter\",color:commentProps.date.textColor,...commentProps.date.font,margin:0},children:date})]})]}),/*#__PURE__*/_jsx(\"div\",{style:{paddingLeft:`${gaps.profilePictureAndName+commentProps.image.size}px`,display:\"flex\",width:\"100%\"},children:/*#__PURE__*/_jsx(\"p\",{style:{fontSize:\"14px\",fontFamily:\"Inter\",lineHeight:\"1.6em\",color:commentProps.body.textColor,...commentProps.body.font,margin:0},children:comment})})]});};const NoComment=({comment,emptyState})=>{return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",gap:\"8px\",padding:\"44px 0\",width:\"100%\"},children:/*#__PURE__*/_jsx(\"p\",{style:{fontSize:\"14px\",fontFamily:\"Inter\",color:comment.body.textColor,textAlign:\"center\",...comment.body.font,margin:0},children:emptyState})});};const Error=({comment,errorMessage})=>{return /*#__PURE__*/_jsx(\"div\",{style:{backgroundColor:\"#e63030\",display:\"flex\",justifyContent:\"center\",position:\"relative\",width:\"100%\",padding:\"7px 12px\"},children:/*#__PURE__*/_jsx(\"span\",{style:{fontSize:\"14px\",fontFamily:\"Inter\",color:comment.body.textColor,textAlign:\"center\",...comment.body.font},children:errorMessage})});};const BreakingLine=({backgroundColor})=>{return /*#__PURE__*/_jsx(\"div\",{style:{backgroundColor,height:\"1px\",width:\"100%\"}});};const PublishButton=({isActive,property,isSmallScreen,isCanvas})=>{const borderRadius=property.radiusIsMixed?`${property.radiusTopLeft}px ${property.radiusTopRight}px ${property.radiusBottomRight}px ${property.radiusBottomLeft}px`:`${property.radius}px`;const padding=property.paddingIsMixed?`${property.paddingTopLeft}px ${property.paddingTopRight}px ${property.paddingBottomRight}px ${property.paddingBottomLeft}px`:`${property.padding}px`;const boxShadow=`${property.shadow.x}px ${property.shadow.y}px ${property.shadow.blur}px ${property.shadow.color}`;return /*#__PURE__*/_jsx(\"div\",{style:{width:isSmallScreen?\"100%\":\"auto\"},children:/*#__PURE__*/_jsx(\"button\",{type:\"submit\",style:{width:isSmallScreen?\"100%\":\"auto\",userSelect:\"none\",backgroundColor:property.fill,border:`${property.border.width}px solid ${property.border.color}`,borderRadius,padding,boxShadow,height:property.height===\"auto\"?\"auto\":`${property.heightNumber}px`,opacity:isActive||isCanvas?1:.6,cursor:isActive?\"pointer\":\"not-allowed\",display:\"flex\",alignItems:\"center\",gap:\"10px\",justifyContent:\"center\"},children:/*#__PURE__*/_jsx(\"span\",{style:{fontSize:\"14px\",fontFamily:\"Inter\",color:property.textColor,...property.font,margin:0},children:property.label})})});};const Loader=({commentProps,gaps,input,loaderContent})=>{const moveFromLeftToRight={animate:{x:[\"-550%\",\"550%\"],transition:{duration:.05,repeat:Infinity,repeatDelay:1,type:\"spring\",stiffness:300,damping:60,mass:1}}};const borderRadius=input.radiusIsMixed?`${input.radiusTopLeft}px ${input.radiusTopRight}px ${input.radiusBottomRight}px ${input.radiusBottomLeft}px`:`${input.radius}px`;return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",overflow:\"hidden\",borderRadius},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",width:\"100%\",height:\"100%\",backgroundColor:input.fill}}),/*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",width:\"30%\",height:\"300%\",backgroundColor:input.placeHolderColor,opacity:.05,filter:\"blur(15px)\",zIndex:1,rotate:30,top:\"-100%\"},animate:\"animate\",variants:moveFromLeftToRight}),/*#__PURE__*/_jsx(Content,{commentProps:commentProps,comment:loaderContent.comment,name:loaderContent.name,date:\"12 minutes ago\",gaps:gaps})]});};const timeSinceMessageSent=sentDate=>{const currentDate=new Date;const sentDateTime=new Date(sentDate);const timeDifference=currentDate.getTime()-sentDateTime.getTime();const seconds=Math.floor(timeDifference/1e3);const minutes=Math.floor(seconds/60);const hours=Math.floor(minutes/60);const days=Math.floor(hours/24);if(days>=1){const formattedDate=sentDateTime.toLocaleDateString(\"en-US\");return formattedDate;}else if(hours>=1){return hours===1?\"1 hour ago\":`${hours} hours ago`;}else if(minutes>=1){return minutes===1?\"1 minute ago\":`${minutes} minutes ago`;}else{return\"now\";}};const extractRGBColorFromString=str=>{const rgbRegex=/(rgba|rgb)\\(.*?\\)/g;const match=str.match(rgbRegex);return match?match[0]:\"#ffffff\";};const rgbToHex=rgb=>{const regex=/rgb\\((\\d+),\\s*(\\d+),\\s*(\\d+)\\)/;const match=rgb.match(regex);if(!match){console.error(\"Invalid RGB format\");}const r=parseInt(match[1]);const g=parseInt(match[2]);const b=parseInt(match[3]);const componentToHex=c=>{const hex=c.toString(16);return hex.length===1?\"0\"+hex:hex;};const hexR=componentToHex(r);const hexG=componentToHex(g);const hexB=componentToHex(b);return hexR+hexG+hexB;};const fontProperty={type:ControlType.Font,title:\"Font\",controls:\"extended\"};const colorProperty=(title=\"Color\",defaultValue=\"#fff\")=>{return{title,type:ControlType.Color,defaultValue};};const stringProperty=(title=\"Text\",defaultValue=undefined,description=undefined)=>{return{title,type:ControlType.String,defaultValue,description};};const numberProperty=(title=\"Number\",defaultValue=0,description=undefined)=>{return{title,type:ControlType.Number,defaultValue,description};};const shadowProperty={type:ControlType.Object,controls:{color:colorProperty(\"Color\",\"#000000\"),x:numberProperty(\"X\",0),y:numberProperty(\"Y\",0),blur:numberProperty(\"Blur\",0)}};const borderProperty={type:ControlType.Object,controls:{width:numberProperty(\"Width\",0),color:colorProperty(\"Color\",\"#fff\")}};const paddingProperty=(defaultValue=0)=>{return{type:ControlType.FusedNumber,defaultValue,title:\"Padding\",toggleKey:\"paddingIsMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"paddingTopLeft\",\"paddingTopRight\",\"paddingBottomRight\",\"paddingBottomLeft\"],valueLabels:[\"T\",\"R\",\"B\",\"L\"],min:0};};const radiusProperty=(defaultValue=0)=>{return{type:ControlType.FusedNumber,defaultValue,title:\"Radius\",toggleKey:\"radiusIsMixed\",toggleTitles:[\"All\",\"Individual\"],valueKeys:[\"radiusTopLeft\",\"radiusTopRight\",\"radiusBottomRight\",\"radiusBottomLeft\"],valueLabels:[\"NW\",\"NE\",\"SE\",\"SW\"],min:0};};const heightProperty={height:{type:ControlType.Enum,defaultValue:\"fixed\",displaySegmentedControl:true,options:[\"auto\",\"fixed\"],optionTitles:[\"Auto\",\"Fixed\"]},heightNumber:{title:\" \",type:ControlType.Number,defaultValue:44,hidden(props){return props.height===\"auto\";}}};addPropertyControls(Comment,{title:{title:\"Title\",type:ControlType.Object,controls:{show:{title:\"Show\",type:ControlType.Boolean,defaultValue:true},text:stringProperty(\"Text\",\"Comments\"),font:fontProperty,color:colorProperty()}},input:{title:\"Input\",type:ControlType.Object,controls:{placeHolderName:stringProperty(\"Input 1\",\"Your name\",\"Placeholder text for the name input.\"),placeHolderComment:stringProperty(\"Input 2\",\"Write your comment here...\",\"Placeholder text for the comment input.\"),font:fontProperty,fill:colorProperty(\"Fill\",\"#161819\"),textColor:colorProperty(\"Text\"),placeHolderColor:colorProperty(\"Placeholder\",\"#9BA1A5\"),padding:paddingProperty(14),radius:radiusProperty(),border:borderProperty,shadow:shadowProperty,...heightProperty}},publishButton:{title:\"Publish\",type:ControlType.Object,controls:{label:stringProperty(\"Label\",\"Publish\"),font:fontProperty,fill:colorProperty(\"Fill\",\"#fff\"),textColor:colorProperty(\"Text\",\"#000000\"),padding:paddingProperty(16),radius:radiusProperty(),border:borderProperty,shadow:shadowProperty,...heightProperty}},commentProps:{title:\"Comments\",type:ControlType.Object,description:\"Delete inappropriate comments [here](https://spamcomments.learnframer.site/).\",controls:{image:{title:\"Avatars\",type:ControlType.Object,controls:{type:{type:ControlType.Enum,defaultValue:\"marble\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",options:[\"marble\",\"beam\",\"pixel\",\"sunset\",\"ring\",\"bauhaus\"],optionTitles:[\"Marble\",\"Beam\",\"Pixel\",\"Sunset\",\"Ring\",\"Bauhaus\"]},colors:{type:ControlType.Array,control:colorProperty(\"Color\",\"#fff\"),maxCount:5},radius:radiusProperty(14),size:numberProperty(\"Size\",28)}},name:{title:\"Name\",type:ControlType.Object,controls:{font:fontProperty,textColor:colorProperty(\"Text\",\"#fff\")}},date:{title:\"Date\",type:ControlType.Object,controls:{font:fontProperty,textColor:colorProperty(\"Text\",\"rgb(155, 161, 165)\")}},body:{title:\"Body\",type:ControlType.Object,controls:{font:fontProperty,textColor:colorProperty(\"Text\",\"#fff\")}}}},divider:colorProperty(\"Divider\",\"#1E2021\"),gaps:{title:\"Gaps\",type:ControlType.Object,controls:{commentSection:numberProperty(\"Gap 1\",24,\"Gap between title, input, divider, and comments.\"),commentItems:numberProperty(\"Gap 2\",20,\"Gap between comments.\"),profilePictureAndName:numberProperty(\"Gap 3\",12,\"Gap between profile picture and name.\"),nameAndTime:numberProperty(\"Gap 4\",8,\" Gap between name and elapsed time.\")}},emptyState:stringProperty(\"Empty state\",\"No comments yet.\",\"Text displayed under the comment section when no comments have been posted.\"),commentId:stringProperty(\"ID\",undefined,\"If you need help setting the component up [watch this video](https://youtu.be/47VCZ_q0ydI).\")});Comment.displayName=\"Comments Section\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Comment\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerDisableUnlink\":\"*\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"600\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Comment.map","import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{motion,useMotionValue,useSpring,useTransform,useReducedMotion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/** Simple RNG */function makeRng(seed){let s=seed||1;return()=>(s=(s*1664525+1013904223)%4294967296)/4294967296;}/** Normalize common aliases */function normalizeFit(fit){const f=(fit||\"cover\").toLowerCase();if(f===\"fit\")return\"contain\";if(f===\"stretch\")return\"fill\";if(f===\"contain\"||f===\"cover\"||f===\"fill\"||f===\"none\"||f===\"scale-down\")return f;return\"cover\";}/** Compute object-fit: returns image size inside container and its top-left position */function computeObjectFit(natural,w,h,posX,posY,fit){const mode=normalizeFit(fit);const nw=Math.max(1,natural.w);const nh=Math.max(1,natural.h);let scaledW=nw;let scaledH=nh;let imgLeft=0;let imgTop=0;let resolved=mode;if(mode===\"scale-down\"){resolved=nw<=w&&nh<=h?\"none\":\"contain\";}if(resolved===\"fill\"){scaledW=w;scaledH=h;imgLeft=0;imgTop=0;}else if(resolved===\"contain\"){const s=Math.min(w/nw,h/nh);scaledW=nw*s;scaledH=nh*s;imgLeft=(w-scaledW)*posX;imgTop=(h-scaledH)*posY;}else if(resolved===\"cover\"){const s=Math.max(w/nw,h/nh);scaledW=nw*s;scaledH=nh*s;// negative when the image is larger than the container (cropping)\nimgLeft=-(scaledW-w)*posX;imgTop=-(scaledH-h)*posY;}else if(resolved===\"none\"){scaledW=nw;scaledH=nh;imgLeft=(w-scaledW)*posX;imgTop=(h-scaledH)*posY;}return{scaledW,scaledH,imgLeft,imgTop,mode:resolved};}/** Single tile (without Canvas) */function Tile({i,left,top,width,height,centerX,centerY,target,hoverMV,cursorX,cursorY,stiffness,damping,magnetStrength,magnetRadius,bleed,bgUrl,bgSizeW,bgSizeH,imgLeft,imgTop,gpuBoost}){// base offsets/rotation proportional to hover value (0 -> 1)\nconst baseX=useTransform(hoverMV,h=>h*target.x);const baseY=useTransform(hoverMV,h=>h*target.y);const baseR=useTransform(hoverMV,h=>h*target.r);// magnet: computed only on hover and within the radius\nconst magX=useTransform([hoverMV,cursorX,cursorY],([h,mx,my])=>{if(!h||magnetStrength<=0)return 0;const dx=mx-centerX;const dy=my-centerY;const dist=Math.max(1,Math.hypot(dx,dy));if(dist>magnetRadius)return 0;const falloff=1-dist/magnetRadius;const mag=magnetStrength*falloff;return dx/dist*mag;});const magY=useTransform([hoverMV,cursorX,cursorY],([h,mx,my])=>{if(!h||magnetStrength<=0)return 0;const dx=mx-centerX;const dy=my-centerY;const dist=Math.max(1,Math.hypot(dx,dy));if(dist>magnetRadius)return 0;const falloff=1-dist/magnetRadius;const mag=magnetStrength*falloff;return dy/dist*mag;});// total offset + spring\nconst rawX=useTransform([baseX,magX],([b,m])=>b+m);const rawY=useTransform([baseY,magY],([b,m])=>b+m);const x=useSpring(rawX,{stiffness,damping,restDelta:.01});const y=useSpring(rawY,{stiffness,damping,restDelta:.01});const r=useSpring(baseR,{stiffness,damping,restDelta:.01});const style={position:\"absolute\",left:left-bleed,top:top-bleed,width:width+bleed*2,height:height+bleed*2,backgroundImage:bgUrl?`url(\"${bgUrl}\")`:undefined,backgroundRepeat:\"no-repeat\",// image size within container (not the tile size)\nbackgroundSize:`${bgSizeW}px ${bgSizeH}px`,// align the background so all tiles share the same image\n// formula: imgLeft/imgTop - (left/top - bleed)\nbackgroundPosition:`${imgLeft-(left-bleed)}px ${imgTop-(top-bleed)}px`,pointerEvents:\"none\",backfaceVisibility:\"hidden\",transformStyle:\"flat\",willChange:gpuBoost?\"transform\":undefined};return /*#__PURE__*/_jsx(motion.div,{style:{...style,x,y,rotate:r}},i);}/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 300\n * @framerDisableUnlink\n */export default function ImageShatterCanvas({image,imageFit=\"cover\",tilesX,tilesY,maxOffset,maxRotate,seed,springStiffness,springDamping,magnetStrength,reassembleDelay,dprCap=1.5,magnetRadius=200,responsiveTiles=true,style}){const rootRef=React.useRef(null);const[size,setSize]=React.useState({w:600,h:360});// measure container\nReact.useLayoutEffect(()=>{const el=rootRef.current;if(!el)return;const update=()=>setSize({w:Math.max(1,el.clientWidth),h:Math.max(1,el.clientHeight)});update();const ro=new ResizeObserver(update);ro.observe(el);return()=>ro.disconnect();},[]);// load image (with srcset)\nconst[natural,setNatural]=React.useState(null);const[bgUrl,setBgUrl]=React.useState(null);const imgSrc=image?.src??\"https://images.unsplash.com/photo-1755018237679-454c2b98b51f?q=80&w=1935&auto=format&fit=crop&ixlib=rb-4.1.0&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D\";const imgAlt=image?.alt??\"\";React.useEffect(()=>{let cancelled=false;const i=new Image;i.crossOrigin=\"anonymous\";if(image?.srcSet)i.srcset=image.srcSet;i.src=imgSrc;const onReady=()=>{if(cancelled)return;setNatural({w:i.naturalWidth||1,h:i.naturalHeight||1});setBgUrl(i.currentSrc||i.src);};if(i.complete)onReady();else i.onload=onReady;return()=>{cancelled=true;i.onload=null;};},[imgSrc,image?.srcSet]);// DPR capped\nconst dpr=typeof window!==\"undefined\"?Math.min(window.devicePixelRatio||1,Math.max(1,dprCap)):1;// responsive tiles\nconst txRaw=Math.max(2,Math.floor(tilesX));const tyRaw=Math.max(2,Math.floor(tilesY));const tx=responsiveTiles&&size.w<640?Math.max(2,Math.floor(txRaw*.7)):txRaw;const ty=responsiveTiles&&size.w<640?Math.max(2,Math.floor(tyRaw*.7)):tyRaw;// edges aligned to device pixel grid\nconst Nw=Math.max(1,Math.round(size.w*dpr));const Nh=Math.max(1,Math.round(size.h*dpr));const colEdges=React.useMemo(()=>{const edges=new Array(tx+1);for(let i=0;i<=tx;i++)edges[i]=Math.floor(i*Nw/tx)/dpr;edges[tx]=Nw/dpr;return edges;},[tx,Nw,dpr]);const rowEdges=React.useMemo(()=>{const edges=new Array(ty+1);for(let i=0;i<=ty;i++)edges[i]=Math.floor(i*Nh/ty)/dpr;edges[ty]=Nh/dpr;return edges;},[ty,Nh,dpr]);// object-position as percentages\nconst posX=image?.positionX&&image.positionX.endsWith(\"%\")?Math.min(1,Math.max(0,parseFloat(image.positionX)/100)):.5;const posY=image?.positionY&&image.positionY.endsWith(\"%\")?Math.min(1,Math.max(0,parseFloat(image.positionY)/100)):.5;// compute object-fit (prefer imageFit, then image?.fit if provided, else cover)\nconst layout=React.useMemo(()=>{if(!natural)return null;const chosenFit=imageFit??image?.fit??\"cover\";const raw=computeObjectFit(natural,size.w,size.h,posX,posY,chosenFit);// snap to the DPR grid to reduce seams\nconst scaledW=Math.round(raw.scaledW*dpr)/dpr;const scaledH=Math.round(raw.scaledH*dpr)/dpr;const imgLeft=Math.round(raw.imgLeft*dpr)/dpr;const imgTop=Math.round(raw.imgTop*dpr)/dpr;return{...raw,scaledW,scaledH,imgLeft,imgTop};// eslint-disable-next-line react-hooks/exhaustive-deps\n},[natural,size.w,size.h,posX,posY,imageFit,image?.fit,dpr]);const BLEED=1// px\n;// random targets per tile (once)\nconst targets=React.useMemo(()=>{const rng=makeRng(seed||1);const arr=[];for(let i=0;i<tx*ty;i++){const a=rng()*Math.PI*2;const d=rng()*maxOffset;arr.push({x:Math.cos(a)*d,y:Math.sin(a)*d,r:(rng()*2-1)*maxRotate});}return arr;},[tx,ty,maxOffset,maxRotate,seed]);// motion values for cursor/hover\nconst cursorX=useMotionValue(0);const cursorY=useMotionValue(0);const hoverMV=useMotionValue(0)// 0 | 1\n;const prefersReduced=useReducedMotion();// rAF throttle for mouse move\nconst rafRef=React.useRef(null);const onMove=e=>{const el=rootRef.current;if(!el)return;const rect=el.getBoundingClientRect();const x=e.clientX-rect.left;const y=e.clientY-rect.top;if(rafRef.current==null){rafRef.current=requestAnimationFrame(()=>{rafRef.current=null;cursorX.set(x);cursorY.set(y);});}};// respect reassembleDelay\nconst leaveTimer=React.useRef(null);const onEnter=()=>{if(leaveTimer.current){window.clearTimeout(leaveTimer.current);leaveTimer.current=null;}hoverMV.set(1);};const onLeave=()=>{if(reassembleDelay>0){leaveTimer.current=window.setTimeout(()=>{hoverMV.set(0);leaveTimer.current=null;},reassembleDelay);}else{hoverMV.set(0);}};React.useEffect(()=>{return()=>{if(leaveTimer.current)window.clearTimeout(leaveTimer.current);if(rafRef.current)cancelAnimationFrame(rafRef.current);};},[]);const gpuBoost=true;return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,onMouseEnter:onEnter,onMouseLeave:onLeave,onMouseMove:onMove,style:{...style,position:\"relative\",overflow:\"hidden\",userSelect:\"none\",isolation:\"isolate\",transform:\"translateZ(0)\",touchAction:\"none\",[\"--magnet-scale\"]:prefersReduced?0:1},role:\"img\",\"aria-label\":imgAlt,children:natural&&layout&&bgUrl?Array.from({length:ty}).map((_,row)=>Array.from({length:tx}).map((__,col)=>{const i=row*tx+col;const left=colEdges[col];const right=colEdges[col+1];const top=rowEdges[row];const bottom=rowEdges[row+1];const tileW=right-left;const tileH=bottom-top;const cx=left+tileW/2;const cy=top+tileH/2;return /*#__PURE__*/_jsx(Tile,{i:i,left:left,top:top,width:tileW,height:tileH,centerX:cx,centerY:cy,target:{x:prefersReduced?0:targets[i].x,y:prefersReduced?0:targets[i].y,r:prefersReduced?0:targets[i].r},hoverMV:hoverMV,cursorX:cursorX,cursorY:cursorY,stiffness:springStiffness,damping:springDamping,magnetStrength:magnetStrength*(prefersReduced?0:1),magnetRadius:magnetRadius,bleed:BLEED,bgUrl:bgUrl,bgSizeW:layout.scaledW,bgSizeH:layout.scaledH,imgLeft:layout.imgLeft,imgTop:layout.imgTop,gpuBoost:gpuBoost},i);})):null});}ImageShatterCanvas.defaultProps={imageFit:\"cover\",tilesX:14,tilesY:8,maxOffset:120,maxRotate:18,seed:42,springStiffness:220,springDamping:22,magnetStrength:0,reassembleDelay:0,dprCap:1.5,magnetRadius:200,responsiveTiles:true};addPropertyControls(ImageShatterCanvas,{image:{type:ControlType.ResponsiveImage,title:\"Image\"},imageFit:{type:ControlType.Enum,title:\"Image Fit\",options:[\"cover\",\"contain\",\"fill\",\"none\",\"scale-down\"],optionTitles:[\"Cover\",\"Fit (Contain)\",\"Fill\",\"None\",\"Scale Down\"]},tilesX:{type:ControlType.Number,title:\"Tiles (X)\",min:2,max:40,displayStepper:true},tilesY:{type:ControlType.Number,title:\"Tiles (Y)\",min:2,max:40,displayStepper:true},maxOffset:{type:ControlType.Number,title:\"Max Offset\",min:0,max:300,unit:\"px\"},maxRotate:{type:ControlType.Number,title:\"Max Rotate\",min:0,max:45,unit:\"deg\"},seed:{type:ControlType.Number,title:\"Random Seed\",min:0,max:9999,displayStepper:true},springStiffness:{type:ControlType.Number,title:\"Stiffness\",min:50,max:600},springDamping:{type:ControlType.Number,title:\"Damping\",min:5,max:60},magnetStrength:{type:ControlType.Number,title:\"Magnet\",min:0,max:120,unit:\"px\"},reassembleDelay:{type:ControlType.Number,title:\"Back Delay\",min:0,max:2e3,unit:\"ms\"},dprCap:{type:ControlType.Number,title:\"DPR Cap\",min:1,max:3,step:.25},magnetRadius:{type:ControlType.Number,title:\"Magnet Radius\",min:50,max:600,step:10,unit:\"px\"},responsiveTiles:{type:ControlType.Boolean,title:\"Responsive Tiles\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ImageShatterCanvas\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"300\",\"framerIntrinsicHeight\":\"300\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Image_Shatter.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";import{createPortal}from\"react-dom\";import{useState,useEffect,useLayoutEffect,useMemo,useCallback,useRef,useId}from\"react\";/*\n * CMS Bento Gallery\n *\n * A bento (or even) image grid, capped at Max Rows (3 by default), with a\n * category filter, an auto shuffle that walks through every image, and a\n * viewer. Source picks where photos come from: Manual uses the Images list,\n * CMS uses a Collection List connected to the gallery's Feed slot. Each item needs an\n * image; text layers named Tag, Category and Focus are read when present.\n * (Lists built with the older CmsBentoSource companion still work.)\n *\n * STRUCTURE\n * The default export picks a branch with useIsStaticRenderer().\n * - CanvasGallery (canvas, thumbnails, export): plain divs and imgs, the grid\n *   at rest. No motion, transitions, keyframes, timers or observers. It reads\n *   its own Feed slot once after render.\n * - SiteGallery: everything interactive. The shuffle clock, preloading and\n *   aspect probing run only while useActive() reports the gallery near the\n *   viewport on a visible page; before the first report they stay off.\n * Data parsing, capacity, row planning and the CSS builder are plain\n * functions used by both; markup is written separately for each.\n *\n * RESPONSIVE\n * Tiers come from the gallery's own width (container queries in CSS, a\n * ResizeObserver on the root in JS), not from the viewport:\n *   >= DESKTOP_MIN  desktop: bento, or Even: Columns x Max Rows\n *   >= TABLET_MIN   tablet: bento, or Even: Cols Tablet\n *   <  TABLET_MIN   mobile: bento, or Even (or Bento on Mobile off): Cols Mobile\n * Every tier shows whole rows and at most Max Rows of them. Bento rows get\n * random shapes from bentoPattern() (seeded: the canvas and first live render\n * match, and each shuffle re-rolls). Rules keep it from looking broken: no\n * repeated row shape back to back, one full-width row at most on desktop and\n * tablet, and no three-across rows on phones. A small category fills as\n * many rows as it needs, so filtering never flips the layout. The row plan follows the measured tier, so it is rebuilt on resize. Set every control on one breakpoint and create no\n * per-breakpoint overrides.\n *\n * HEIGHT\n * Fit: each row is Row Height tall. A Fixed, Fill or viewport height on the\n * layer (Framer passes height 100%) switches to fill mode: the filter bar keeps\n * its size and the rows share the rest equally, down to 60% of Row Height;\n * below that the gallery grows past the frame rather than squashing.\n *\n * TRUE SHAPE + DEPTH OF FIELD\n * Desktop bento rows are separate two-track grids stacked in a fixed-height\n * column. On hover the tile morphs toward its photo's own aspect ratio (read\n * from the loaded image) at Shape Size times its resting area, clamped so\n * every other tile stays usable; the rest of the bento makes room. Track\n * sizes are worked out in pixels and handed over as fr values so they\n * transition, and the gallery's outer size never changes. Depth of Field\n * dims the other tiles and Greyscale drains their colour. Mouse and keyboard focus only;\n * True Shape is off under reduced motion.\n *\n * SHUFFLE\n * The visible window advances by one screenful every interval until every\n * image has been shown, then keeps cycling for Passes full passes (0 means\n * forever). Hovering the grid, keyboard focus inside it, or an open viewer\n * pauses the clock; it resumes with the time that was left.\n *\n * BANDWIDTH\n * Images use srcSet when Framer provides one. Without it, sized() asks the\n * host for a scaled copy (framerusercontent / Drive). Orientation probing\n * loads a PROBE_W px copy and aborts if the host ignored the resize.\n *\n * FOCUS\n * Focus X / Focus Y set the default crop. A per-photo \"Focus\" value from the\n * CMS (e.g. \"50 20\") overrides both for that photo only.\n */const ROWS_LIMIT=6;const WIDE_SPAN=4;const DESKTOP_MIN=960;const TABLET_MIN=600;const VIEWER_Z=2147483e3;// System sans until the Font control picks a family. The viewer is portalled\n// to <body>, outside any text styles the page sets.\nconst FALLBACK_FONT=\"system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif\";const MIN_RESUME_MS=60;// Longest a swap waits for the next photos to finish loading.\nconst SWAP_WAIT_MAX=3e3;const PROBE_W=16;const PROBE_SANITY_W=64;const PROBE_MAX=60;const PORTRAIT_MAX_RATIO=.95;const TILE_W=1024;const VIEWER_W=2048;// Sample photos so the gallery previews out of the box in Manual mode, with\n// enough images and categories to show the bento, filter and shuffle.\nconst SAMPLE_PHOTOS=[// [image id, tag, category, alt, focus]\n[\"yGJCue9mz8NRpIwDtVepOjAOeo8\",\"Red filter\",\"Art\",\"A man's face through a red filter, being photographed by a camera\",\"\"],[\"JCOAZNKY4h3mIPN1DitXlndOQ\",\"Shared screen\",\"People\",\"Two smiling women looking at their phones\",\"\"],[\"VRHtGJ4imyhDJyB5nMBIMLDlnQ\",\"City walk\",\"People\",\"A person in a black blazer and denim shirt using a smartphone on a street\",\"\"],[\"LF4skrNP0woqEzjejLOku0SB4\",\"Story time\",\"People\",\"Three children reading together on a sea of green tulle\",\"\"],[\"5tP1d9OFSAUqwJwbLsMa2smCLo\",\"Orange coup\\xe9\",\"Still Life\",\"The rear of an orange vintage sports car on gravel\",\"\"],[\"G2rVy4QnTjsoz66QMnji0Nsr1Y\",\"Leaf study\",\"Art\",\"A man in a lilac vest holding a large leaf against a concrete wall\",\"\"],[\"QeyC30ZOUJB10umBi1vXjURCfvk\",\"Headline\",\"Art\",\"A man in a suit holding a newspaper over his face against a teal sky\",\"\"],[\"I8qP8zWGrWJOC4VKhpGplHWM4\",\"Three pours\",\"Still Life\",\"Hands holding three iced drinks garnished with dried citrus on a wooden table\",\"\"],[\"97ILKB3DC6w9dh8pLIar6aqre5w\",\"Red camera\",\"Still Life\",\"A red film camera on a plain white surface\",\"\"],[\"Mwn5He2o3UA0ghoYop412Iwup8\",\"Wrapped citrus\",\"Still Life\",\"An orange wrapped in purple tissue paper on a dark blue surface\",\"\"]];const SAMPLE=SAMPLE_PHOTOS.map(([id,tag,category,alt,focal])=>({image:{src:`https://framerusercontent.com/images/${id}.jpg`,alt},alt,tag,category,focal,link:\"\"}));const DEFAULTS={source:\"manual\",images:SAMPLE,variety:\"bento\",maxRows:3,bentoMobile:true,columns:4,columnsTablet:3,columnsMobile:2,gap:12,rowHeight:200,rowHeightTablet:180,rowHeightMobile:200,radius:16,hoverZoom:1.02,trueShape:true,shapeSize:1.2,depthOfField:.5,greyscale:1,matchOrientation:true,focalX:50,focalY:50,showTags:true,tagPosition:\"Bottom Left\",tagBg:\"rgba(16, 16, 18, 0.55)\",tagColor:\"rgb(255, 255, 255)\",showOpenIcon:true,font:undefined,tileAction:\"viewer\",newTab:true,viewerBackdrop:\"rgba(10, 10, 12, 0.92)\",viewerInk:\"rgb(255, 255, 255)\",viewerCaption:true,shuffleEnabled:true,shuffleInterval:8,passes:3,showFilter:true,allLabel:\"All\",hideCategories:\"\",// Empty colours follow the Theme; a value set in the panel overrides it.\nchipBg:\"\",chipText:\"\",chipActiveBg:\"\",chipActiveText:\"\",showCounts:true,focusRing:\"\",theme:\"light\"};// Panel groups arrive as nested objects; the component reads flat props.\nconst GROUPS=[\"responsive\",\"placement\",\"hover\",\"labels\",\"viewer\",\"shuffle\",\"filterStyle\"];function withDefaults(props){const p={...DEFAULTS};const take=source=>{for(const key of Object.keys(source)){const v=source[key];if(v!==undefined&&v!==null&&!GROUPS.includes(key))p[key]=v;}};const raw=props;take(raw);for(const g of GROUPS){const v=raw[g];if(v&&typeof v===\"object\")take(v);}return cssSafe(p);}// Every prop that reaches the generated stylesheet is constrained here, so\n// the CSS injected by buildCss() only ever holds trusted values: numbers are\n// clamped to sensible ranges, enums fall back to a known option, and colours\n// may only use characters a CSS colour needs. Nothing that could end a rule\n// or open markup (; { } < > quotes backslash) or load a resource (url())\n// gets through; an invalid value falls back to the default.\nfunction cssNum(v,fallback,lo,hi){const n=typeof v===\"number\"?v:parseFloat(String(v));return Number.isFinite(n)?Math.min(hi,Math.max(lo,n)):fallback;}function cssInt(v,fallback,lo,hi){return Math.round(cssNum(v,fallback,lo,hi));}const SAFE_COLOR=/^[#a-z0-9(),.%\\s/-]+$/i;function cssColor(v,fallback){// Framer appends a comment naming the colour style, e.g.\n// var(--token-x, rgb(0, 0, 0)) /* {\"name\":\"Dark\"} */; drop it first.\nconst c=typeof v===\"string\"?v.replace(/\\/\\*[\\s\\S]*?\\*\\//g,\"\").trim():\"\";return c&&c.length<=160&&SAFE_COLOR.test(c)&&!/url\\s*\\(/i.test(c)?c:fallback;}function cssSafe(p){const d=DEFAULTS;return{...p,variety:p.variety===\"even\"?\"even\":\"bento\",theme:p.theme===\"dark\"?\"dark\":\"light\",maxRows:cssInt(p.maxRows,d.maxRows,1,ROWS_LIMIT),columns:cssInt(p.columns,d.columns,1,12),columnsTablet:cssInt(p.columnsTablet,d.columnsTablet,1,12),columnsMobile:cssInt(p.columnsMobile,d.columnsMobile,1,12),rowHeight:cssNum(p.rowHeight,d.rowHeight,40,2e3),rowHeightTablet:cssNum(p.rowHeightTablet,d.rowHeightTablet,40,2e3),rowHeightMobile:cssNum(p.rowHeightMobile,d.rowHeightMobile,40,2e3),gap:cssNum(p.gap,d.gap,0,200),radius:cssNum(p.radius,d.radius,0,500),focalX:cssNum(p.focalX,d.focalX,0,100),focalY:cssNum(p.focalY,d.focalY,0,100),hoverZoom:cssNum(p.hoverZoom,d.hoverZoom,1,2),shapeSize:cssNum(p.shapeSize,d.shapeSize,1,2.5),depthOfField:cssNum(p.depthOfField,d.depthOfField,0,1),greyscale:cssNum(p.greyscale,d.greyscale,0,1),focusRing:cssColor(p.focusRing,d.focusRing),chipBg:cssColor(p.chipBg,d.chipBg),chipText:cssColor(p.chipText,d.chipText),chipActiveBg:cssColor(p.chipActiveBg,d.chipActiveBg),chipActiveText:cssColor(p.chipActiveText,d.chipActiveText),viewerInk:cssColor(p.viewerInk,d.viewerInk),viewerBackdrop:cssColor(p.viewerBackdrop,d.viewerBackdrop),tagBg:cssColor(p.tagBg,d.tagBg),tagColor:cssColor(p.tagColor,d.tagColor)};}const useIsoLayoutEffect=typeof window!==\"undefined\"?useLayoutEffect:useEffect;/* ------------------------------------------------------------------ *//* Pure helpers: data                                                  *//* ------------------------------------------------------------------ */function clean(v){return typeof v===\"string\"?v.trim():\"\";}function toImage(v){if(typeof v===\"string\")return{src:v.trim(),srcSet:\"\",alt:\"\"};if(v&&typeof v===\"object\"){const o=v;return{src:clean(o.src)||clean(o.url),srcSet:clean(o.srcSet),alt:clean(o.alt)||clean(o.altText)};}return{src:\"\",srcSet:\"\",alt:\"\"};}// Manual mode. An empty Images list shows the sample photos as placeholders,\n// so a freshly dropped gallery is never blank.\nfunction manualItems(list){const own=itemsFromArray(list);return own.length?own:itemsFromArray(SAMPLE);}function itemsFromArray(list){const out=[];(Array.isArray(list)?list:[]).forEach((raw,i)=>{if(!raw)return;const img=toImage(raw.image);if(!img.src)return;const tag=clean(raw.tag);const category=clean(raw.category);out.push({src:img.src,srcSet:img.srcSet,alt:clean(raw.alt)||img.alt||tag||category||`Image ${i+1}`,tag,category,focal:clean(raw.focal),link:clean(raw.link)});});return out;}// Reads the gallery's own hidden Feed slot container; nothing outside the\n// component is read. Uses CmsBentoSource nodes when the list has them,\n// otherwise each item's own layers.\nfunction readFeed(root){return root.querySelector(\"[data-bento-node]\")?itemsFromNodes(root):itemsFromLayers(root);}function layerText(item,name){const el=item.querySelector(`[data-framer-name=\"${name}\" i]`);return el?clean(el.textContent||\"\"):\"\";}// A plain Collection List: each item's first image is the photo, and text\n// layers named Tag, Category and Focus (any case) fill those fields. Items\n// are the children of the deepest element that holds every image.\nfunction itemsFromLayers(root){const imgs=Array.from(root.querySelectorAll(\"img\"));if(!imgs.length)return[];let list=imgs[0].parentElement;while(list&&list!==root&&!imgs.every(im=>list.contains(im)))list=list.parentElement;if(!list)return[];const cells=imgs.length>1?Array.from(list.children).filter(c=>c.querySelector(\"img\")):[imgs[0].parentElement||imgs[0]];const out=[];cells.forEach((cell,i)=>{const img=cell.querySelector(\"img\");const src=img?img.getAttribute(\"src\")||\"\":\"\";if(!img||!src)return;const tag=layerText(cell,\"Tag\");const category=layerText(cell,\"Category\");const anchor=cell.closest(\"a[href]\")||cell.querySelector(\"a[href]\");out.push({src,srcSet:img.getAttribute(\"srcset\")||\"\",alt:clean(img.getAttribute(\"alt\"))||tag||category||`Image ${i+1}`,tag,category,focal:layerText(cell,\"Focus\"),link:anchor?anchor.getAttribute(\"href\")||\"\":\"\"});});return out;}function itemsFromNodes(root){const out=[];root.querySelectorAll(\"[data-bento-node]\").forEach((n,i)=>{const src=n.getAttribute(\"data-src\")||\"\";if(!src)return;const tag=n.getAttribute(\"data-tag\")||\"\";const category=n.getAttribute(\"data-category\")||\"\";out.push({src,srcSet:n.getAttribute(\"data-srcset\")||\"\",alt:n.getAttribute(\"data-alt\")||tag||category||`Image ${i+1}`,tag,category,focal:n.getAttribute(\"data-focal\")||\"\",link:n.getAttribute(\"data-link\")||\"\"});});return out;}function sameItems(a,b){if(a.length!==b.length)return false;for(let i=0;i<a.length;i++){const x=a[i];const y=b[i];if(x.src!==y.src||x.srcSet!==y.srcSet||x.tag!==y.tag||x.category!==y.category||x.focal!==y.focal||x.link!==y.link||x.alt!==y.alt)return false;}return true;}function categoryCounts(items){const out={};items.forEach(it=>{if(it.category)out[it.category]=(out[it.category]||0)+1;});return out;}function pad2(n){return n<10?`0${n}`:String(n);}function emptyNote(fromCms,withFeed){if(!fromCms)return\"Add photos to the Images list.\";if(!withFeed)return\"Connect a Collection List to Feed.\";return\"No photos found. Each item in the list needs an image layer.\";}function hasSlot(v){return Array.isArray(v)?v.length>0:!!v;}function sized(src,w){if(typeof src!==\"string\"||!src)return src;if(src.indexOf(\"framerusercontent.com\")!==-1){if(/([?&]scale-down-to=)\\d+/.test(src)){return src.replace(/([?&]scale-down-to=)\\d+/,`$1${w}`);}return src+(src.indexOf(\"?\")===-1?\"?\":\"&\")+\"scale-down-to=\"+w;}if(src.indexOf(\"drive.google.com/thumbnail\")!==-1){if(/([?&]sz=w)\\d+/.test(src)){return src.replace(/([?&]sz=w)\\d+/,`$1${w}`);}return src+(src.indexOf(\"?\")===-1?\"?\":\"&\")+\"sz=w\"+w;}return src;}function clamp(n,lo=0,hi=100){return Math.max(lo,Math.min(hi,n));}// Parse a per-photo focal string from the CMS.\n// Accepts \"50 20\", \"50% 20%\", \"50,20\". Returns a CSS object-position, or\n// null when blank / unparseable so the global settings apply instead.\nfunction parseFocal(raw){if(!raw||typeof raw!==\"string\")return null;const nums=raw.match(/-?\\d+(\\.\\d+)?/g);if(!nums||nums.length<2)return null;const x=parseFloat(nums[0]);const y=parseFloat(nums[1]);if(isNaN(x)||isNaN(y))return null;return`${clamp(x)}% ${clamp(y)}%`;}function shuffled(arr){const a=arr.slice();for(let i=a.length-1;i>0;i--){const j=Math.floor(Math.random()*(i+1));[a[i],a[j]]=[a[j],a[i]];}if(a.length>1&&a.every((v,i)=>v===arr[i])){[a[0],a[1]]=[a[1],a[0]];}return a;}/* ------------------------------------------------------------------ *//* Pure helpers: layout                                                *//* ------------------------------------------------------------------ */function tierFor(width){if(width>=DESKTOP_MIN)return\"desktop\";if(width>=TABLET_MIN)return\"tablet\";return\"mobile\";}function colsFor(p,tier){if(tier===\"tablet\")return Math.max(1,p.columnsTablet);if(tier===\"mobile\")return Math.max(1,p.columnsMobile);return p.variety===\"bento\"?6:Math.max(1,p.columns);}function rowsFor(p){return clamp(Math.round(p.maxRows),1,ROWS_LIMIT);}// Whether a tier renders bento rows. Mobile can opt out to a plain grid.\nfunction bentoAt(p,tier){return p.variety===\"bento\"&&(tier!==\"mobile\"||p.bentoMobile);}function rowHeightFor(p,tier){if(tier===\"tablet\")return p.rowHeightTablet;if(tier===\"mobile\")return p.rowHeightMobile;return p.rowHeight;}// Row shapes, as column weights on a 6 unit row. Phones never get three\n// across (too thin) and their uneven pair is gentler than desktop's.\nconst WIDE_ROWS=[[2,4],[4,2],[3,3],[2,2,2],[6]];const PHONE_ROWS=[[6],[2.5,3.5],[3.5,2.5],[3,3]];// Small seeded generator, so a seed always gives the same pattern (the\n// canvas and the first live render agree) while each shuffle can re-roll.\nfunction seeded(seed){let a=seed>>>0;return()=>{a=a+1831565813>>>0;let t=a;t=Math.imul(t^t>>>15,t|1);t^=t+Math.imul(t^t>>>7,t|61);return((t^t>>>14)>>>0)/4294967296;};}function sameRow(a,b){return a.length===b.length&&a.every((v,i)=>v===b[i]);}// A random bento: one row shape per row, never the same shape twice in a\n// row, at most one full-width row on desktop and tablet, and at least one\n// uneven row there so it reads as bento rather than a grid.\nfunction bentoPattern(p,tier,seed){const rows=rowsFor(p);const phone=tier===\"mobile\";const options=phone?PHONE_ROWS:WIDE_ROWS;const rand=seeded(seed*9973+rows*131+(phone?7:tier===\"tablet\"?3:1));const out=[];let fulls=0;for(let r=0;r<rows;r++){let pick=options[0];for(let tries=0;tries<24;tries++){pick=options[Math.floor(rand()*options.length)];const repeat=out.length>0&&sameRow(out[out.length-1],pick);const tooFull=!phone&&pick.length===1&&(fulls>=1||rows===1);if(!repeat&&!tooFull)break;}if(pick.length===1)fulls++;out.push(pick);}const uneven=row=>row.length===2&&row[0]!==row[1];if(!phone&&!out.some(uneven)){const i=Math.floor(rand()*out.length);out[i]=rand()<.5?[2,4]:[4,2];}return out;}// How many tiles a tier shows: whole rows, never more than Max Rows.\nfunction capacityFor(p,tier,seed=1){const rows=rowsFor(p);if(bentoAt(p,tier))return bentoPattern(p,tier,seed).reduce((a,row)=>a+row.length,0);const cols=colsFor(p,tier);// Bento with mobile opted out: about as many tiles as the bento shows.\nif(p.variety===\"bento\")return cols*Math.min(rows,Math.ceil(rows*2/cols));return cols*rows;}// Column weights per tile from the pattern. A row cut short by a small\n// category shares its width evenly; a lone tile gets the full row.\nfunction spansFor(count,p,tier,seed=1){if(!bentoAt(p,tier))return new Array(count).fill(1);const shapes=bentoPattern(p,tier,seed);const out=[];planRows(count,p,tier,seed).filter(row=>row.bento).forEach((row,r)=>{const shape=shapes[r]||[6];const k=row.slots.length;out.push(...k===shape.length?shape:new Array(k).fill(6/k));});return out;}// Landscape photos into wide slots, portraits into narrow ones.\nfunction arrange(picked,pool,ratios,spans){if(picked.length!==spans.length)return picked;const wide=[];const narrow=[];spans.forEach((s,i)=>(s>=WIDE_SPAN?wide:narrow).push(i));const land=[];const port=[];picked.forEach(idx=>{const r=pool[idx]?ratios[pool[idx].src]:undefined;if(r!==undefined&&r<PORTRAIT_MAX_RATIO)port.push(idx);else land.push(idx);});const out=new Array(picked.length);wide.forEach(s=>{const v=land.length?land.shift():port.shift();if(v!==undefined)out[s]=v;});narrow.forEach(s=>{const v=port.length?port.shift():land.shift();if(v!==undefined)out[s]=v;});for(let i=0;i<out.length;i++)if(out[i]===undefined)return picked;return out;}function tagPlacement(pos){switch(pos){case\"Top Left\":return{top:10,left:10};case\"Top Right\":return{top:10,right:10};case\"Bottom Right\":return{bottom:10,right:10};case\"Bottom Bar\":return{left:0,right:0,bottom:0,maxWidth:\"none\",borderRadius:0};case\"Bottom Left\":default:return{bottom:10,left:10};}}// The open icon sits in the corner the tag leaves free.\nfunction iconPlacement(tagPos){return tagPos===\"Top Right\"?{top:10,left:10}:{top:10,right:10};}// Framer passes height \"100%\" when the layer's height is Fixed, Fill or a\n// viewport unit; Fit leaves it out. In that case the rows share the height.\nfunction fillsHeight(style){return!!style&&style.height===\"100%\";}// In fill mode rows share the height, but never shrink below 60% of the\n// tier's Row Height; a short frame makes the gallery taller, not strips.\nfunction fillMinHeight(p,tier,rowCount){const n=Math.max(1,rowCount);return Math.round(n*rowHeightFor(p,tier)*.6+(n-1)*p.gap);}function fontStyle(f){return f&&typeof f===\"object\"?f:{};}function planRows(n,p,tier,seed=1){const all=(from,to)=>Array.from({length:Math.max(0,to-from)},(_,i)=>from+i);if(!bentoAt(p,tier))return[{slots:all(0,n),bento:false}];const d=Math.min(n,capacityFor(p,tier,seed));const sizes=bentoPattern(p,tier,seed).map(row=>row.length);// A small set (a filtered category) would otherwise fit in one row, and a\n// lone row cannot grow taller on hover. Keep at least two rows when Max\n// Rows allows, so True Shape always has height to work with.\nconst twoRows=d>=2&&d<=3&&rowsFor(p)>=2;const rows=[];for(let i=0,r=0;i<d;r++){const cap=twoRows&&r===0?d-1:d-i;const size=Math.min(sizes[r]||2,cap);rows.push({slots:all(i,i+size),bento:true});i+=size;}if(n>d)rows.push({slots:all(d,n),bento:false});return rows;}// Aspect ratio of the photo a tile is showing, read from its own img.\nfunction ratioOf(cell){const img=cell?cell.querySelector(\"img\"):null;return img&&img.naturalHeight>0?img.naturalWidth/img.naturalHeight:0;}// Which bento tile a point falls on in the resting layout (before any\n// reshape), or -1 for a gap. Rows share the grid height equally and each\n// row splits its width by the tiles' weights, exactly as at rest.\nfunction restSlotAt(grid,x,y,rows,spans,gap){const lines=rows.filter(r=>r.bento);const n=lines.length;if(!n)return-1;const box=grid.getBoundingClientRect();const lx=x-box.left;const ly=y-box.top;const rowH=(box.height-(n-1)*gap)/n;const ri=Math.floor(ly/(rowH+gap));if(ri<0||ri>=n||ly-ri*(rowH+gap)>rowH)return-1;const line=lines[ri];const weight=s=>spans[s]||6;const total=line.slots.reduce((a,s)=>a+weight(s),0);const lineW=box.width-(line.slots.length-1)*gap;let left=0;for(const s of line.slots){const w=lineW*weight(s)/total;if(lx>=left&&lx<=left+w)return s;left+=w+gap;}return-1;}// Track sizes for the desktop bento, as fr values. With the grid's pixel\n// width known they are pixel-scaled, so a reshape interpolates linearly\n// between resting and shaped sizes. shaping is the hovered tile and its\n// photo's aspect ratio (0 when unknown, which keeps the tile's own shape).\n// Track sizes for the desktop bento in pixels (null when the width is not\n// known yet). shaping is the hovered tile and its photo's aspect ratio (0\n// when unknown, which keeps the tile's own shape).\nfunction bentoMetrics(rows,spans,p,width,shaping,tier){const lines=rows.filter(r=>r.bento);const n=lines.length;if(width<=0||n===0)return null;const weight=s=>spans[s]||6;const h0=rowHeightFor(p,tier);const lineW=r=>Math.max(1,width-(r.slots.length-1)*p.gap);const restCols=r=>{const total=r.slots.reduce((a,s)=>a+weight(s),0);return r.slots.map(s=>lineW(r)*weight(s)/total);};const rest={rows:lines.map(()=>h0),cols:lines.map(restCols)};const at=shaping?lines.findIndex(r=>r.slots.includes(shaping.slot)):-1;if(!shaping||at<0)return rest;const line=lines[at];const W=lineW(line);const H=n*h0;const k=line.slots.length;const total=line.slots.reduce((a,s)=>a+weight(s),0);const w0=W*weight(shaping.slot)/total;const area=w0*h0*clamp(p.shapeSize,1,2.5);const ratio=shaping.ratio>0?clamp(shaping.ratio,.5,2.4):w0/h0;// The hovered tile only ever grows: at least 10% taller and 10% wider\n// than at rest (as far as the room allows), leaning toward its photo's\n// proportions, so tall photos mainly gain height and wide photos width.\n// Other rows keep 70% of their height; other tiles in the row keep 20%.\nconst tallest=H-(n-1)*h0*.7;const h=n>1?clamp(Math.sqrt(area/ratio),Math.min(h0*1.1,tallest),tallest):H;const most=W-(k-1)*W*.2;const w=k>1?clamp(h*ratio,Math.min(w0*1.1,most),most):W;const restWeight=total-weight(shaping.slot);return{rows:lines.map((_,i)=>i===at?h:(H-h)/(n-1)),cols:lines.map((r,i)=>i!==at?rest.cols[i]:r.slots.map(s=>s===shaping.slot?w:(W-w)*weight(s)/Math.max(.01,restWeight)))};}// The same sizes as fr tracks. Pixel-scaled fr values interpolate linearly\n// between resting and shaped sizes when the tracks transition.\nfunction bentoTracks(rows,spans,p,width,shaping,tier){const fr=v=>`${Math.max(.01,v).toFixed(2)}fr`;const m=bentoMetrics(rows,spans,p,width,shaping,tier);if(!m){const lines=rows.filter(r=>r.bento);return{rows:lines.map(()=>\"1fr\").join(\" \"),cols:lines.map(r=>r.slots.map(s=>fr(spans[s]||6)).join(\" \"))};}return{rows:m.rows.map(fr).join(\" \"),cols:m.cols.map(c=>c.map(fr).join(\" \"))};}function bentoHeight(rows,p,tier){const n=rows.filter(r=>r.bento).length;return n*rowHeightFor(p,tier)+Math.max(0,n-1)*p.gap;}// Marks a slot that falls past a tier's capacity, so CSS can hide it there.\nfunction outAttrs(slot,p,seed=1){const a={};if(slot>=capacityFor(p,\"mobile\",seed))a[\"data-out-m\"]=\"\";if(slot>=capacityFor(p,\"tablet\",seed))a[\"data-out-t\"]=\"\";if(slot>=capacityFor(p,\"desktop\",seed))a[\"data-out-d\"]=\"\";return a;}// One sizes value for every tile, sized for the widest bento tile. Tiles and\n// the preloader must ask for the same srcset candidate or the preload is a\n// cache miss; a photo can also move between narrow and wide slots.\nfunction tileSizes(p){const bento=p.variety===\"bento\";const grow=bento&&p.trueShape?Math.max(1,p.shapeSize):1;const desk=bento?Math.min(100,Math.round(WIDE_SPAN*grow*100/6)):Math.round(100/colsFor(p,\"desktop\"));const tab=bento?Math.round(WIDE_SPAN*100/6):Math.round(100/colsFor(p,\"tablet\"));const mob=bentoAt(p,\"mobile\")?100:Math.round(100/colsFor(p,\"mobile\"));return`(min-width: ${DESKTOP_MIN}px) ${desk}vw, (min-width: ${TABLET_MIN}px) ${tab}vw, ${mob}vw`;}// Loads and decodes the exact file a tile will request (same src, srcset and\n// sizes), so a swap paints at once instead of popping in late.\nfunction warm(it,sizes){return new Promise(resolve=>{const img=new Image;const done=()=>resolve();if(it.srcSet){img.sizes=sizes;img.srcset=it.srcSet;}img.src=it.srcSet?it.src:sized(it.src,TILE_W);if(typeof img.decode===\"function\")img.decode().then(done,done);else{img.onload=done;img.onerror=done;}});}// Interface colours as variables, so the gallery suits light and dark pages.\n// Theme picks the set; panel colours override via inline variables.\nconst LIGHT_VARS=\"--cbg-track:rgba(0,0,0,0.05);--cbg-text:rgb(107,106,101);--cbg-active-bg:rgb(255,255,255);\"+\"--cbg-active-text:rgb(17,17,17);--cbg-pill-edge:rgba(0,0,0,0.08);--cbg-tile:rgba(0,0,0,0.05);\"+\"--cbg-edge:rgba(0,0,0,0.06);--cbg-skel:rgba(0,0,0,0.06);--cbg-note:rgba(0,0,0,0.45);\"+\"--cbg-note-edge:rgba(0,0,0,0.15);--cbg-ring:rgb(20,20,20);\";const DARK_VARS=\"--cbg-track:rgba(255,255,255,0.08);--cbg-text:rgba(255,255,255,0.62);--cbg-active-bg:rgba(255,255,255,0.92);\"+\"--cbg-active-text:rgb(17,17,17);--cbg-pill-edge:rgba(0,0,0,0.3);--cbg-tile:rgba(255,255,255,0.06);\"+\"--cbg-edge:rgba(255,255,255,0.08);--cbg-skel:rgba(255,255,255,0.08);--cbg-note:rgba(255,255,255,0.55);\"+\"--cbg-note-edge:rgba(255,255,255,0.18);--cbg-ring:rgb(240,240,240);\";function themeClass(uid,p){return p.theme===\"dark\"?` dark-${uid}`:\"\";}// Panel colours, when set, as inline variables (they win over the theme).\nfunction themeOverrides(p){const out={};if(p.chipBg)out[\"--cbg-track\"]=p.chipBg;if(p.chipText)out[\"--cbg-text\"]=p.chipText;if(p.chipActiveBg)out[\"--cbg-active-bg\"]=p.chipActiveBg;if(p.chipActiveText)out[\"--cbg-active-text\"]=p.chipActiveText;if(p.focusRing)out[\"--cbg-ring\"]=p.focusRing;return out;}function buildCss(uid,p,live){const pos=`${clamp(p.focalX)}% ${clamp(p.focalY)}%`;const tier=t=>`.grid-${uid}{grid-template-columns:repeat(${colsFor(p,t)},minmax(0,1fr));`+`grid-auto-rows:${t===\"desktop\"?p.rowHeight:t===\"tablet\"?p.rowHeightTablet:p.rowHeightMobile}px;}`+// Reset at the same specificity as the hide rules, so each tier only\n    // hides what is past its own capacity.\n    `.cell-${uid},.cell-${uid}[data-out-m],.cell-${uid}[data-out-t],.cell-${uid}[data-out-d]{display:block;}`+`.cell-${uid}[data-out-${t[0]}]{display:none;}`;const base=`\n.root-${uid}{container-type:inline-size;container-name:cbg${uid};width:100%;font-family:${FALLBACK_FONT};${LIGHT_VARS}}\n.root-${uid}.dark-${uid}{${DARK_VARS}}\n.fill-${uid}{display:flex;flex-direction:column;height:100%;min-height:0;}\n.fill-${uid} .filters-${uid}{flex:none;}\n.fill-${uid} .grid-${uid}{flex:1 1 auto;min-height:0;grid-auto-rows:minmax(0,1fr);align-content:stretch;}\n.fill-${uid} .grid-${uid}[data-bento]{height:auto;}\n.fill-${uid} .note-${uid}{flex:1 1 auto;}\n.grid-${uid}{display:grid;gap:${p.gap}px;}\n.row-${uid}{display:contents;}\n.cell-${uid}{min-width:0;min-height:0;}\n${tier(\"mobile\")}\n@container cbg${uid} (min-width:${TABLET_MIN}px){${tier(\"tablet\")}}\n@container cbg${uid} (min-width:${DESKTOP_MIN}px){${tier(\"desktop\")}}\n.grid-${uid}[data-bento]{grid-template-columns:minmax(0,1fr);grid-auto-rows:auto;grid-template-rows:var(--rw);height:var(--bh);}\n.row-${uid}[data-bento]{display:grid;gap:${p.gap}px;grid-template-columns:var(--cw);grid-template-rows:minmax(0,1fr);min-height:0;}\n.grid-${uid}[data-bento]>.row-${uid}:not([data-bento]){display:none;}\n.tile-${uid}{position:relative;display:block;width:100%;height:100%;margin:0;padding:0;border:0;overflow:hidden;isolation:isolate;border-radius:${p.radius}px;background:var(--cbg-tile);color:inherit;font:inherit;text-align:left;text-decoration:none;outline:none;-webkit-tap-highlight-color:transparent;}\n.tile-${uid}::after{content:\"\";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px var(--cbg-edge);pointer-events:none;z-index:1;}\n.go-${uid}{cursor:pointer;}\n.zoom-${uid}{position:absolute;inset:0;}\n.img-${uid}{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:${pos};display:block;}\n.blank-${uid}{position:absolute;inset:0;background:var(--cbg-skel);}\n.tag-${uid}{position:absolute;z-index:2;padding:5px 11px;max-width:calc(100% - 20px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none;box-sizing:border-box;}\n.open-${uid}{position:absolute;z-index:3;width:30px;height:30px;border-radius:999px;display:flex;align-items:center;justify-content:center;pointer-events:none;background:rgba(16,16,18,0.36);color:#fff;}\n.filters-${uid}{display:flex;max-width:100%;margin-bottom:${p.gap+6}px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 28px),transparent);}\n.filters-${uid}::-webkit-scrollbar{display:none;}\n.track-${uid}{display:inline-flex;flex:none;gap:2px;padding:3px;border-radius:999px;background:var(--cbg-track);}\n.chip-${uid}{position:relative;isolation:isolate;display:inline-flex;align-items:center;border:0;background:transparent;cursor:pointer;padding:7px 14px;border-radius:999px;font:inherit;line-height:1.2;white-space:nowrap;color:var(--cbg-text);}\n.chip-${uid}[aria-pressed=\"true\"]{color:var(--cbg-active-text);}\n.pill-${uid}{position:absolute;inset:0;z-index:-1;border-radius:999px;background:var(--cbg-active-bg);box-shadow:0 0 0 0.5px var(--cbg-pill-edge),0 1px 2px rgba(0,0,0,0.08);}\n.count-${uid}{display:inline-flex;align-items:center;justify-content:center;min-width:1.6em;margin-left:7px;padding:2px 6px;border-radius:999px;box-sizing:border-box;font-size:0.86em;line-height:1.2;font-weight:500;font-variant-numeric:tabular-nums;background:color-mix(in srgb, currentColor 12%, transparent);}\n.note-${uid}{display:flex;align-items:center;justify-content:center;text-align:center;min-height:${p.rowHeight}px;padding:20px;box-sizing:border-box;border-radius:${p.radius}px;border:1px dashed var(--cbg-note-edge);color:var(--cbg-note);font-size:13px;line-height:1.5;}\n`;if(!live)return base;const ease=\"cubic-bezier(.23,1,.32,1)\";return base+`\n/* Reshapes animate the grid tracks, so photos are re-cropped, never\n   stretched. Each cell is contained so a resize stays local to it. */\n.grid-${uid}[data-bento]{transition:grid-template-rows .6s ${ease};}\n.row-${uid}[data-bento]{transition:grid-template-columns .6s ${ease};}\n.cell-${uid}{contain:layout paint;}\n.img-${uid}{transition:scale .7s ${ease};}\n/* Depth of Field dims and Greyscale drains the other tiles, starting with\n   the hover. Brightness and greyscale are per-pixel filters, far cheaper\n   than blur. The hovered photo is promoted to its own GPU layer so its zoom does\n   not repaint every frame. */\n.img-${uid}{transition:scale .7s ${ease},filter .2s ease;}\n.soft-${uid} .cell-${uid}:not(.on-${uid}) .img-${uid}{filter:grayscale(${clamp(p.greyscale,0,1).toFixed(2)}) brightness(${(1-.5*clamp(p.depthOfField,0,1)).toFixed(2)});scale:1.03;transition:scale .7s ${ease},filter .35s ease;}\n.tile-${uid}:hover .img-${uid},.tile-${uid}:focus-visible .img-${uid}{scale:${p.hoverZoom};will-change:scale;}\n.tile-${uid}:focus-visible{outline:3px solid var(--cbg-ring);outline-offset:-3px;}\n.tag-${uid}{opacity:0;transition:opacity .22s ease;}\n.tile-${uid}:hover .tag-${uid},.tile-${uid}:focus-visible .tag-${uid}{opacity:1;}\n@media (hover:none){.tag-${uid}{opacity:1;}}\n.open-${uid}{opacity:0;transition:opacity .22s ease;}\n.tile-${uid}:hover .open-${uid},.tile-${uid}:focus-visible .open-${uid}{opacity:1;}\n@media (hover:none){.open-${uid}{opacity:1;}}\n.chip-${uid}{transition:background-color .2s ease,color .2s ease,transform .16s ease-out;}\n.chip-${uid}:active{transform:scale(.97);}\n@media (hover:hover) and (pointer:fine){\n.chip-${uid}[aria-pressed=\"false\"]:hover{background:color-mix(in srgb, var(--cbg-text) 12%, transparent);color:color-mix(in srgb, var(--cbg-text) 45%, var(--cbg-active-text));}\n}\n.chip-${uid}:focus-visible{outline:2px solid var(--cbg-ring);outline-offset:2px;}\n.skel-${uid}{border-radius:${p.radius}px;background:var(--cbg-skel);animation:pulse${uid} 1.4s ease-in-out infinite;}\n@keyframes pulse${uid}{0%,100%{opacity:1}50%{opacity:.5}}\n/* After a filter change the new grid is in place at once; its tiles fade in\n   and rise slightly, staggered. Only opacity and transform animate. */\n@keyframes rise${uid}{from{opacity:0;transform:translateY(16px);}to{opacity:1;transform:none;}}\n.enter-${uid} .cell-${uid}{animation:rise${uid} .5s ${ease} both;animation-delay:calc(var(--i, 0) * 35ms);}\n.enter-${uid}[data-bento]{transition:none;}\n.enter-${uid} .row-${uid}[data-bento]{transition:none;}\n.rest-${uid} .grid-${uid},.rest-${uid} .row-${uid},.rest-${uid} .img-${uid},.rest-${uid} .tag-${uid},.rest-${uid} .open-${uid},.rest-${uid} .chip-${uid},.rest-${uid} .grid-${uid},.rest-${uid} .row-${uid}{transition:none;}\n.rest-${uid} .skel-${uid}{animation:none;}\n.vbtn-${uid}{position:absolute;z-index:3;border:0;border-radius:999px;cursor:pointer;padding:0;box-sizing:border-box;display:flex;align-items:center;justify-content:center;color:${p.viewerInk};background:color-mix(in srgb, ${p.viewerInk} 12%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, ${p.viewerInk} 20%, transparent);-webkit-backdrop-filter:blur(12px) saturate(140%);backdrop-filter:blur(12px) saturate(140%);transition:background-color .2s ease,box-shadow .2s ease,scale .16s ease-out;}\n@media (hover:hover) and (pointer:fine){.vbtn-${uid}:hover{background:color-mix(in srgb, ${p.viewerInk} 20%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, ${p.viewerInk} 38%, transparent);}}\n.vbtn-${uid}:active{scale:.94;}\n.vbtn-${uid}:focus-visible{outline:2px solid ${p.viewerInk};outline-offset:3px;}\n.vclose-${uid}{top:16px;right:16px;width:38px;height:38px;}\n.vside-${uid}{top:50%;transform:translateY(-50%);width:42px;height:42px;}\n.vstage-${uid}{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px;padding:64px max(76px, 7vw) 36px;box-sizing:border-box;pointer-events:none;}\n/* Phones: arrows dock to the bottom so the photo can use the full width. */\n.vbar-${uid}{position:absolute;left:0;right:0;bottom:calc(20px + env(safe-area-inset-bottom, 0px));z-index:3;display:none;justify-content:center;gap:14px;pointer-events:none;}\n.vbar-${uid} .vbtn-${uid}{position:relative;pointer-events:auto;width:48px;height:48px;}\n.vimg-${uid}{display:block;max-width:min(calc(100vw - 2 * max(76px, 7vw)), 1320px);max-height:calc(100svh - 180px);}\n.nocap-${uid} .vimg-${uid}{max-height:calc(100svh - 112px);}\n@media (max-width:640px){\n.vside-${uid}{display:none;}\n.vbar-${uid}{display:flex;}\n.vstage-${uid}{padding:60px 16px calc(92px + env(safe-area-inset-bottom, 0px));gap:16px;}\n.vimg-${uid}{max-width:calc(100vw - 32px);max-height:calc(100svh - 236px);}\n.nocap-${uid} .vimg-${uid}{max-height:calc(100svh - 168px);}\n}\n@media (prefers-reduced-motion:reduce){\n.enter-${uid} .cell-${uid}{animation:none;}\n.img-${uid},.tag-${uid},.open-${uid},.chip-${uid},.vbtn-${uid},.grid-${uid},.row-${uid}{transition:none;}\n.chip-${uid}:active,.vbtn-${uid}:active{transform:none;scale:none;}\n.tile-${uid}:hover .img-${uid},.tile-${uid}:focus-visible .img-${uid}{scale:none;}\n.skel-${uid}{animation:none;}\n}\n`;}/* ------------------------------------------------------------------ *//* Icons                                                               *//* ------------------------------------------------------------------ */function Icon({d,size=24,w=2}){return /*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:w,strokeLinecap:\"round\",strokeLinejoin:\"round\",\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"path\",{d:d})});}const CARET_LEFT=\"M15 6l-6 6 6 6\";const CARET_RIGHT=\"M9 6l6 6-6 6\";const CLOSE=\"M6 6l12 12M18 6L6 18\";const EXPAND=\"M14 4h6v6M10 20H4v-6M20 4l-7 7M4 20l7-7\";/* ------------------------------------------------------------------ *//* Entry                                                               *//* ------------------------------------------------------------------ *//**\n * @framerIntrinsicWidth 1080\n * @framerIntrinsicHeight 600\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any\n */export default function CmsBentoGallery(props){const isStatic=useIsStaticRenderer();if(isStatic)return /*#__PURE__*/_jsx(CanvasGallery,{...props});return /*#__PURE__*/_jsx(SiteGallery,{...props});}// Name shown in Framer's Assets panel and layer list.\nCmsBentoGallery.displayName=\"CMS Filter Bento Grid\";/* ------------------------------------------------------------------ *//* Static branch: canvas, thumbnails, export                           *//* ------------------------------------------------------------------ */function CanvasGallery(props){const p=withDefaults(props);const uid=\"s\"+useId().replace(/[^a-zA-Z0-9]/g,\"\");const feedRef=useRef(null);const fromCms=p.source===\"cms\";const withFeed=fromCms&&hasSlot(p.feed);const own=useMemo(()=>manualItems(p.images),[p.images]);const[fed,setFed]=useState([]);// One read of our own Feed slot after it renders. No observers or timers.\nuseIsoLayoutEffect(()=>{if(!withFeed||!feedRef.current)return;const next=readFeed(feedRef.current);setFed(prev=>sameItems(prev,next)?prev:next);},[withFeed,p.feed]);// One width read after render picks the tier, so the canvas shows the\n// bento each breakpoint will get. No observers or timers.\nconst rootRef=useRef(null);const[tier,setTier]=useState(\"desktop\");useIsoLayoutEffect(()=>{const el=rootRef.current;if(!el)return;// offsetWidth is the layout width; getBoundingClientRect() would be\n// scaled by the canvas zoom and pick the wrong tier.\nconst next=tierFor(el.offsetWidth);setTier(prev=>prev===next?prev:next);});const items=fromCms?fed:own;const shown=items.slice(0,capacityFor(p,tier));const spans=spansFor(shown.length,p,tier);const rows=planRows(shown.length,p,tier);const isBento=rows.some(r=>r.bento);const tracks=bentoTracks(rows,spans,p,0,null,tier);const categories=[];if(p.showFilter){const hidden=p.hideCategories.toLowerCase().split(\",\").map(s=>s.trim());items.forEach(it=>{if(it.category&&!categories.includes(it.category)&&!hidden.includes(it.category.toLowerCase()))categories.push(it.category);});}const counts=categoryCounts(items);return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:`root-${uid}${themeClass(uid,p)}${fillsHeight(p.style)?` fill-${uid}`:\"\"}`,style:{...p.style,...themeOverrides(p),width:\"100%\",height:fillsHeight(p.style)?\"100%\":\"auto\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:buildCss(uid,p,false)}}),withFeed?/*#__PURE__*/_jsx(\"div\",{ref:feedRef,style:{display:\"none\"},\"aria-hidden\":\"true\",children:p.feed}):null,categories.length>0?/*#__PURE__*/_jsx(\"div\",{className:`filters-${uid}`,children:/*#__PURE__*/_jsx(\"div\",{className:`track-${uid}`,children:[null,...categories].map((c,i)=>/*#__PURE__*/_jsxs(\"span\",{className:`chip-${uid}`,\"aria-pressed\":i===0,style:fontStyle(p.font),children:[i===0?/*#__PURE__*/_jsx(\"span\",{className:`pill-${uid}`}):null,c||p.allLabel,p.showCounts?/*#__PURE__*/_jsx(\"span\",{className:`count-${uid}`,children:c?counts[c]||0:items.length}):null]},c||\"__all\"))})}):null,shown.length===0?/*#__PURE__*/_jsx(\"div\",{className:`note-${uid}`,children:emptyNote(fromCms,withFeed)}):/*#__PURE__*/_jsx(\"div\",{className:`grid-${uid}`,\"data-bento\":isBento?\"\":undefined,style:isBento?{\"--rw\":tracks.rows,\"--bh\":`${bentoHeight(rows,p,tier)}px`}:undefined,children:rows.map((row,r)=>/*#__PURE__*/_jsx(\"div\",{className:`row-${uid}`,\"data-bento\":row.bento?\"\":undefined,style:row.bento?{\"--cw\":tracks.cols[r]}:undefined,children:row.slots.map(slot=>{const item=shown[slot];const own=parseFocal(item.focal);return /*#__PURE__*/_jsx(\"div\",{className:`cell-${uid}`,...outAttrs(slot,p),children:/*#__PURE__*/_jsxs(\"div\",{className:`tile-${uid}`,children:[/*#__PURE__*/_jsx(\"img\",{className:`img-${uid}`,src:item.srcSet?item.src:sized(item.src,TILE_W),srcSet:item.srcSet||undefined,sizes:item.srcSet?tileSizes(p):undefined,alt:item.alt,style:own?{objectPosition:own}:undefined,draggable:false}),p.showTags&&item.tag?/*#__PURE__*/_jsx(\"span\",{className:`tag-${uid}`,style:{...fontStyle(p.font),background:p.tagBg,color:p.tagColor,borderRadius:999,...tagPlacement(p.tagPosition)},children:item.tag}):null]})},slot);})},r))})]});}/* ------------------------------------------------------------------ *//* Live-only hooks                                                     *//* ------------------------------------------------------------------ */// Open only while the gallery is near the viewport and the page is visible.\n// Stays closed until the first observer report; open if there is no\n// IntersectionObserver at all.\nfunction useActive(ref){const[open,setOpen]=useState(false);useEffect(()=>{const node=ref.current;const canWatch=!!node&&typeof IntersectionObserver!==\"undefined\";const state={near:!canWatch,shown:typeof document===\"undefined\"||document.visibilityState!==\"hidden\"};const sync=()=>{const next=state.near&&state.shown;setOpen(prev=>prev===next?prev:next);};const io=canWatch?new IntersectionObserver(entries=>{state.near=entries[entries.length-1].isIntersecting;sync();},{rootMargin:\"240px 0px\"}):null;if(io&&node)io.observe(node);const onVisibility=()=>{state.shown=document.visibilityState!==\"hidden\";sync();};if(typeof document!==\"undefined\")document.addEventListener(\"visibilitychange\",onVisibility);sync();return()=>{if(io)io.disconnect();if(typeof document!==\"undefined\")document.removeEventListener(\"visibilitychange\",onVisibility);};},[ref]);return open;}function useMedia(query,fallback){const[match,setMatch]=useState(fallback);useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const list=window.matchMedia(query);const read=()=>setMatch(list.matches);read();if(list.addEventListener)list.addEventListener(\"change\",read);else list.addListener(read);return()=>{if(list.removeEventListener)list.removeEventListener(\"change\",read);else list.removeListener(read);};},[query]);return match;}// The gallery's own width and tier, matching the CSS container queries.\nfunction useFrame(ref){const[tier,setTier]=useState(null);const[width,setWidth]=useState(0);useIsoLayoutEffect(()=>{const node=ref.current;if(!node)return;const take=w=>{const next=tierFor(w);setTier(prev=>prev===next?prev:next);const px=Math.round(w);setWidth(prev=>prev===px?prev:px);};// Layout width, unaffected by transforms such as a zoomed canvas.\ntake(node.offsetWidth);if(typeof ResizeObserver===\"undefined\")return;const ro=new ResizeObserver(records=>{for(const r of records)take(r.contentRect.width);});ro.observe(node);return()=>ro.disconnect();},[ref]);return{tier,width};}/* ------------------------------------------------------------------ *//* Live branch                                                         *//* ------------------------------------------------------------------ */function SiteGallery(props){const p=withDefaults(props);const uid=\"c\"+useId().replace(/[^a-zA-Z0-9]/g,\"\");const rootRef=useRef(null);const feedRef=useRef(null);const openerRef=useRef(null);const active=useActive(rootRef);const{tier,width}=useFrame(rootRef);const reduced=useMedia(\"(prefers-reduced-motion: reduce)\",false);const pointerFine=useMedia(\"(hover: hover) and (pointer: fine)\",true);const[mounted,setMounted]=useState(false);useEffect(()=>setMounted(true),[]);// --- Data ---\nconst fromCms=p.source===\"cms\";const withFeed=fromCms&&hasSlot(p.feed);const own=useMemo(()=>manualItems(p.images),[p.images]);const[fed,setFed]=useState([]);// True until the Feed slot has been read once.\nconst[pending,setPending]=useState(withFeed);useEffect(()=>{if(!withFeed){setPending(false);return;}const root=feedRef.current;setPending(false);if(!root)return;let cancelled=false;const commit=()=>{const next=readFeed(root);if(!cancelled)setFed(prev=>sameItems(prev,next)?prev:next);};commit();if(typeof MutationObserver===\"undefined\")return;// Watches only our own hidden slot; sameItems() skips no-op updates.\nconst mo=new MutationObserver(commit);mo.observe(root,{childList:true,subtree:true,attributes:true});return()=>{cancelled=true;mo.disconnect();};},[withFeed,p.feed]);const items=fromCms?fed:own;// --- Filter ---\nconst categories=useMemo(()=>{const hidden=p.hideCategories.toLowerCase().split(\",\").map(s=>s.trim());const set=[];items.forEach(it=>{if(it.category&&!set.includes(it.category)&&!hidden.includes(it.category.toLowerCase()))set.push(it.category);});return set;},[items,p.hideCategories]);const counts=useMemo(()=>categoryCounts(items),[items]);const[chosenCat,setActiveCat]=useState(null);// Bumped on each filter click: remounts the grid so its tiles play the\n// entrance instead of animating the old layout into the new one.\nconst[filterRun,setFilterRun]=useState(0);const[entering,setEntering]=useState(false);const pickCategory=useCallback(c=>{setActiveCat(c);setFilterRun(n=>n+1);setEntering(true);},[]);// The entrance class also pauses track transitions, so drop it once the\n// staggered rise has finished and hover reshapes animate again.\nuseEffect(()=>{if(!entering)return;const t=window.setTimeout(()=>setEntering(false),900);return()=>window.clearTimeout(t);},[entering,filterRun]);// Start loading a category's photos when its tab is hovered, so they are\n// usually ready by the click.\nconst warmCategory=c=>{const list=c?items.filter(it=>it.category===c):items;list.slice(0,12).forEach(it=>warm(it,tileSizes(p)));};const activeCat=chosenCat&&categories.includes(chosenCat)?chosenCat:null;const pool=useMemo(()=>activeCat?items.filter(it=>it.category===activeCat):items,[items,activeCat]);// --- Window ---\nconst bento=p.variety===\"bento\";const t=tier||\"desktop\";// The bento pattern re-rolls with each shuffle. Seed 1 matches the canvas.\nconst[seed,setSeed]=useState(1);const capacity=capacityFor(p,t,seed);const count=Math.min(capacity,pool.length);const nextCountRef=useRef(count);nextCountRef.current=Math.min(capacityFor(p,t,seed+1),pool.length);const desktopBento=bento&&t===\"desktop\";const bentoNow=bentoAt(p,t);const spans=useMemo(()=>spansFor(count,p,t,seed),// eslint-disable-next-line react-hooks/exhaustive-deps\n[count,t,seed,p.variety,p.bentoMobile,p.maxRows]);const fullMs=Math.max(1,p.shuffleInterval)*1e3;const[seq,setSeq]=useState([]);const[winStart,setWinStart]=useState(0);const[passes,setPasses]=useState(0);const winRef=useRef(0);const remainingRef=useRef(fullMs);const durRef=useRef(fullMs);const startedAtRef=useRef(0);useEffect(()=>{setSeq(shuffled(pool.map((_,i)=>i)));winRef.current=0;setWinStart(0);setPasses(0);remainingRef.current=fullMs;},[pool,fullMs]);const order=seq.length===pool.length?seq:pool.map((_,i)=>i);const orderRef=useRef(order);const poolRef=useRef(pool);orderRef.current=order;poolRef.current=pool;const sizes=tileSizes(p);// --- Orientation probe (guarded) ---\nconst[ratios,setRatios]=useState({});const[seen,setSeen]=useState(false);useEffect(()=>{if(active)setSeen(true);},[active]);useEffect(()=>{if(!seen||!bento||!p.matchOrientation||!items.length)return;let cancelled=false;const load=src=>new Promise(resolve=>{const img=new Image;img.onload=()=>resolve(img);img.onerror=()=>resolve(null);img.src=sized(src,PROBE_W);});const run=async()=>{const list=items.slice(0,PROBE_MAX);const first=await load(list[0].src);if(cancelled||!first)return;// If the host ignored the resize parameter we would be pulling\n// full-size originals for every photo. Stop here.\nif(first.naturalWidth>PROBE_SANITY_W)return;const next={};if(first.naturalHeight>0)next[list[0].src]=first.naturalWidth/first.naturalHeight;const rest=await Promise.all(list.slice(1).map(it=>load(it.src)));if(cancelled)return;rest.forEach((im,i)=>{if(im&&im.naturalHeight>0)next[list[i+1].src]=im.naturalWidth/im.naturalHeight;});setRatios(next);};run();return()=>{cancelled=true;};},[items,seen,bento,p.matchOrientation]);const display=useMemo(()=>{const n=order.length;if(!n)return[];const picked=[];for(let k=0;k<count;k++)picked.push(order[(winStart+k)%n]);if(!bentoNow||!p.matchOrientation)return picked;if(!Object.keys(ratios).length)return picked;return arrange(picked,pool,ratios,spans);},[order,winStart,count,bentoNow,p.matchOrientation,ratios,pool,spans]);// --- Clock ---\nconst[hovering,setHovering]=useState(false);const[focusInside,setFocusInside]=useState(false);const[viewing,setViewing]=useState(null);const paused=pointerFine&&hovering||focusInside||viewing!==null;const passesDone=p.passes>0&&passes>=p.passes;const clockOn=p.shuffleEnabled&&active&&!reduced&&!paused&&!passesDone&&pool.length>count&&count>0;useEffect(()=>{if(!clockOn||typeof window===\"undefined\")return;let timer=0;let capTimer=0;let waiting=false;let cancelled=false;const arm=ms=>{durRef.current=ms;startedAtRef.current=Date.now();timer=window.setTimeout(tick,ms);};// On time, load the next screenful first and swap once every photo is\n// decoded (or SWAP_WAIT_MAX passes), so nothing appears late.\nconst tick=()=>{const ord=orderRef.current;const pl=poolRef.current;const n=ord.length;if(!n)return;// Load what the next pattern will show; it may hold more or\n// fewer tiles than the current one.\nconst upcoming=[];for(let k=0;k<nextCountRef.current;k++){const it=pl[ord[(winRef.current+count+k)%n]];if(it)upcoming.push(it);}waiting=true;const cap=new Promise(r=>{capTimer=window.setTimeout(r,SWAP_WAIT_MAX);});Promise.race([Promise.all(upcoming.map(it=>warm(it,sizes))),cap]).then(()=>{window.clearTimeout(capTimer);if(cancelled)return;waiting=false;const next=winRef.current+count;if(next>=pl.length)setPasses(c=>c+1);winRef.current=next%pl.length;setWinStart(winRef.current);setSeed(v=>v+1);arm(fullMs);});};arm(Math.max(MIN_RESUME_MS,Math.min(remainingRef.current,fullMs)));return()=>{cancelled=true;window.clearTimeout(timer);window.clearTimeout(capTimer);// Interrupted mid-load: retry promptly on resume.\nconst elapsed=Date.now()-startedAtRef.current;remainingRef.current=waiting?MIN_RESUME_MS:Math.max(0,durRef.current-elapsed);};},[clockOn,count,pool.length,fullMs,sizes]);// Start loading the next screenful as soon as the current one is up.\nuseEffect(()=>{if(!clockOn||typeof window===\"undefined\")return;const n=order.length;for(let k=0;k<nextCountRef.current;k++){const it=pool[order[(winStart+count+k)%n]];if(it)warm(it,sizes);}},[clockOn,winStart,order,pool,count,sizes,seed]);// --- True Shape + Depth of Field ---\nconst[shaping,setShaping]=useState(null);const canShape=desktopBento&&pointerFine&&!reduced&&p.trueShape;const rows=useMemo(()=>planRows(display.length,p,t,seed),// eslint-disable-next-line react-hooks/exhaustive-deps\n[display.length,t,seed,p.variety,p.maxRows,p.bentoMobile]);const isBento=rows.some(r=>r.bento);const tracks=bentoTracks(rows,spans,p,isBento?width:0,canShape?shaping:null,t);const onFocusTile=useCallback((slot,ratio)=>{setShaping(slot<0?null:{slot,ratio});},[]);// Mouse hover. A reshape moves tile edges, so hit-testing the animated\n// layout feeds back: an edge slides under the cursor, the neighbour takes\n// the hover, the edge slides back. With True Shape on, the hovered tile is\n// read from the resting layout instead, so reshaping cannot change it.\n// A point in a gap keeps the current tile.\nconst shapingRef=useRef(null);shapingRef.current=shaping;const restRef=useRef({rows:[],spans:[],fromRest:false});restRef.current={rows,spans,fromRest:canShape&&isBento};const onGridMove=useCallback(e=>{if(e.pointerType!==\"mouse\"||!pointerFine)return;const grid=e.currentTarget;const rest=restRef.current;let slot=-1;if(rest.fromRest){slot=restSlotAt(grid,e.clientX,e.clientY,rest.rows,rest.spans,p.gap);}else{const cell=e.target.closest(\"[data-slot]\");slot=cell?Number(cell.getAttribute(\"data-slot\")):-1;}if(slot<0)return;const cur=shapingRef.current;if(cur&&cur.slot===slot)return;setShaping({slot,ratio:ratioOf(grid.querySelector(`[data-slot=\"${slot}\"]`))});},[pointerFine,p.gap]);const endHover=useCallback(()=>setShaping(null),[]);useEffect(()=>setShaping(null),[display]);// --- Viewer ---\nconst openAt=useCallback((idx,el)=>{openerRef.current=el;setViewing(idx);},[]);const close=useCallback(()=>{const el=openerRef.current;setViewing(null);if(el&&typeof window!==\"undefined\")window.setTimeout(()=>el.focus({preventScroll:true}),0);},[]);// --- Render ---\nconst css=buildCss(uid,p,true);const soft=!!shaping&&pointerFine&&(p.depthOfField>0||p.greyscale>0);const rootClass=`root-${uid}${themeClass(uid,p)}${fillsHeight(p.style)?` fill-${uid}`:\"\"}${active?\"\":` rest-${uid}`}${soft?` soft-${uid}`:\"\"}`;const bentoVars=(r,tr)=>({\"--rw\":tr.rows,\"--bh\":`${bentoHeight(r,p,t)}px`});const waiting=items.length===0&&pending;return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,className:rootClass,style:{...p.style,...themeOverrides(p),width:\"100%\",height:fillsHeight(p.style)?\"100%\":\"auto\",position:\"relative\"},children:[/*#__PURE__*/_jsx(\"style\",{dangerouslySetInnerHTML:{__html:css}}),withFeed?/*#__PURE__*/_jsx(\"div\",{ref:feedRef,style:{display:\"none\"},\"aria-hidden\":\"true\",children:p.feed}):null,p.showFilter&&categories.length>0?/*#__PURE__*/_jsx(\"div\",{className:`filters-${uid}`,children:/*#__PURE__*/_jsx(\"div\",{className:`track-${uid}`,role:\"group\",\"aria-label\":\"Filter images by category\",children:[null,...categories].map(c=>{const on=c===activeCat;return /*#__PURE__*/_jsxs(\"button\",{type:\"button\",className:`chip-${uid}`,\"aria-pressed\":on,onClick:()=>{if(c!==activeCat)pickCategory(c);},onPointerEnter:()=>warmCategory(c),style:fontStyle(p.font),children:[on?// One pill per gallery; layoutId slides it to the\n// newly selected category.\n/*#__PURE__*/_jsx(motion.span,{layoutId:`pill-${uid}`,className:`pill-${uid}`,transition:reduced?{duration:0}:{type:\"spring\",bounce:.15,duration:.45}}):null,c||p.allLabel,p.showCounts?/*#__PURE__*/_jsx(\"span\",{className:`count-${uid}`,children:c?counts[c]||0:items.length}):null]},c||\"__all\");})})}):null,waiting?(()=>{const sr=planRows(capacity,p,t,seed);const st=bentoTracks(sr,spansFor(capacity,p,t,seed),p,0,null,t);const skelBento=sr.some(r=>r.bento);return /*#__PURE__*/_jsx(\"div\",{className:`grid-${uid}`,\"aria-busy\":\"true\",\"data-bento\":skelBento?\"\":undefined,style:skelBento?bentoVars(sr,st):undefined,children:sr.map((row,r)=>/*#__PURE__*/_jsx(\"div\",{className:`row-${uid}`,\"data-bento\":row.bento?\"\":undefined,style:row.bento?{\"--cw\":st.cols[r]}:undefined,children:row.slots.map(slot=>/*#__PURE__*/_jsx(\"div\",{className:`cell-${uid} skel-${uid}`,...outAttrs(slot,p,seed)},slot))},r))});})():items.length===0?/*#__PURE__*/_jsx(\"div\",{className:`note-${uid}`,children:emptyNote(fromCms,withFeed)}):/*#__PURE__*/_jsx(\"div\",{className:`grid-${uid}${entering?` enter-${uid}`:\"\"}`,\"data-bento\":isBento?\"\":undefined,style:{...isBento?bentoVars(rows,tracks):{},...fillsHeight(p.style)?{minHeight:fillMinHeight(p,t,isBento?rows.filter(r=>r.bento).length:Math.ceil(display.length/colsFor(p,t)))}:{}},onPointerEnter:e=>{if(e.pointerType===\"mouse\")setHovering(true);},onPointerMove:onGridMove,onPointerLeave:()=>{setHovering(false);endHover();},onFocus:()=>setFocusInside(true),onBlur:e=>{if(!e.currentTarget.contains(e.relatedTarget))setFocusInside(false);},children:rows.map((row,r)=>/*#__PURE__*/_jsx(\"div\",{className:`row-${uid}`,\"data-bento\":row.bento?\"\":undefined,style:row.bento?{\"--cw\":tracks.cols[r]}:undefined,children:row.slots.map(slot=>/*#__PURE__*/_jsx(Tile,{uid:uid,p:p,item:pool[display[slot]],index:display[slot],slot:slot,shaped:!!shaping&&shaping.slot===slot,seed:seed,reduced:reduced,eager:seen,pointerFine:pointerFine,onFocusTile:onFocusTile,onOpen:openAt},slot))},r))},`run-${filterRun}`),mounted&&typeof document!==\"undefined\"?/*#__PURE__*/createPortal(/*#__PURE__*/_jsx(AnimatePresence,{children:viewing!==null&&pool[viewing]?/*#__PURE__*/_jsx(Viewer,{uid:uid,p:p,pool:pool,index:viewing,reduced:reduced,onIndex:setViewing,onClose:close},\"cbg-viewer\"):null}),document.body):null]});}/* ------------------------------------------------------------------ *//* Live tile                                                           *//* ------------------------------------------------------------------ */function Tile(props){const{uid,p,item,index,slot,shaped,seed,reduced,eager,onFocusTile,onOpen}=props;const[broken,setBroken]=useState(false);const src=item?item.src:\"\";useEffect(()=>setBroken(false),[src]);if(!item)return null;const own=parseFocal(item.focal);const asLink=p.tileAction===\"link\"&&!!item.link;const asButton=p.tileAction===\"viewer\";const className=`tile-${uid}${asLink||asButton?` go-${uid}`:\"\"}`;const inner=/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"div\",{className:`zoom-${uid}`,children:broken?/*#__PURE__*/_jsx(\"span\",{className:`blank-${uid}`}):/*#__PURE__*/_jsx(AnimatePresence,{initial:false,children:/*#__PURE__*/_jsx(motion.img,{className:`img-${uid}`,src:item.srcSet?item.src:sized(item.src,TILE_W),srcSet:item.srcSet||undefined,sizes:item.srcSet?tileSizes(p):undefined,alt:item.alt,style:own?{objectPosition:own}:undefined,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:reduced?0:.55,delay:reduced?0:slot*.05},// Lazy until the gallery is first seen; photos swapped in\n// later are already loaded, so they must not wait.\nloading:eager?\"eager\":\"lazy\",decoding:\"async\",draggable:false,onError:()=>setBroken(true)},item.src)})}),p.showOpenIcon&&asButton?/*#__PURE__*/_jsx(\"span\",{className:`open-${uid}`,style:iconPlacement(p.tagPosition),children:/*#__PURE__*/_jsx(Icon,{d:EXPAND,size:14,w:2})}):null,p.showTags&&item.tag?/*#__PURE__*/_jsx(\"span\",{className:`tag-${uid}`,style:{...fontStyle(p.font),background:p.tagBg,color:p.tagColor,borderRadius:999,...tagPlacement(p.tagPosition)},children:item.tag}):null]});return /*#__PURE__*/_jsx(\"div\",{className:`cell-${uid}${shaped?` on-${uid}`:\"\"}`,\"data-slot\":slot,style:{[\"--i\"]:Math.min(slot,10)},...outAttrs(slot,p,seed),onFocus:e=>{// Only focus-visible (keyboard) focus reshapes, so clicks and\n// the focus restored when the viewer closes leave it alone.\nlet visible=true;try{visible=e.target.matches(\":focus-visible\");}catch(_){}if(visible)onFocusTile(slot,ratioOf(e.currentTarget));},onBlur:()=>onFocusTile(-1,0),children:asLink?/*#__PURE__*/_jsx(\"a\",{className:className,href:item.link,target:p.newTab?\"_blank\":undefined,rel:p.newTab?\"noopener noreferrer\":undefined,\"aria-label\":item.alt,children:inner}):asButton?/*#__PURE__*/_jsx(\"button\",{type:\"button\",className:className,\"aria-label\":`View ${item.alt}`,onClick:e=>onOpen(index,e.currentTarget),children:inner}):/*#__PURE__*/_jsx(\"div\",{className:className,children:inner})});}/* ------------------------------------------------------------------ *//* Viewer                                                            *//* ------------------------------------------------------------------ */function Viewer(props){const{uid,p,pool,index,reduced,onIndex,onClose}=props;const total=pool.length;const cur=pool[index];const panelRef=useRef(null);const closeRef=useRef(null);const swipe=useRef(null);const step=useCallback(dir=>{if(total<2)return;onIndex(i=>i===null?i:(i+dir+total)%total);},[total,onIndex]);// Move focus to Close and freeze page scroll, padding for the scrollbar\n// so the page behind does not jump sideways.\nuseEffect(()=>{if(closeRef.current)closeRef.current.focus({preventScroll:true});const body=document.body;const overflow=body.style.overflow;const padRight=body.style.paddingRight;const bar=window.innerWidth-document.documentElement.clientWidth;body.style.overflow=\"hidden\";if(bar>0)body.style.paddingRight=`${bar}px`;return()=>{body.style.overflow=overflow;body.style.paddingRight=padRight;};},[]);useEffect(()=>{const onKey=e=>{if(e.key===\"Escape\"){e.preventDefault();onClose();}else if(e.key===\"ArrowRight\"){e.preventDefault();step(1);}else if(e.key===\"ArrowLeft\"){e.preventDefault();step(-1);}};window.addEventListener(\"keydown\",onKey);return()=>window.removeEventListener(\"keydown\",onKey);},[step,onClose]);// Preload the previous and next photo.\nuseEffect(()=>{if(total<2)return;for(const n of[pool[(index+1)%total],pool[(index-1+total)%total]]){if(!n||n===cur)continue;const img=new Image;if(n.srcSet)img.srcset=n.srcSet;img.src=n.srcSet?n.src:sized(n.src,VIEWER_W);}},[index,total,pool,cur]);const keepFocusInside=e=>{if(e.key!==\"Tab\"||!panelRef.current)return;// Only visible buttons: on phones the side arrows are hidden and the\n// docked ones take their place, and the reverse on wider screens.\nconst focusables=Array.from(panelRef.current.querySelectorAll(\"button\")).filter(b=>b.getClientRects().length>0);if(!focusables.length)return;const first=focusables[0];const last=focusables[focusables.length-1];if(e.shiftKey&&document.activeElement===first){e.preventDefault();last.focus();}else if(!e.shiftKey&&document.activeElement===last){e.preventDefault();first.focus();}};const swipeStart=e=>{if(e.pointerType===\"mouse\")return;swipe.current={x:e.clientX,y:e.clientY,id:e.pointerId};};const swipeEnd=e=>{const from=swipe.current;swipe.current=null;if(!from||from.id!==e.pointerId)return;const dx=e.clientX-from.x;const dy=e.clientY-from.y;// A mostly horizontal flick of 48px or more changes photo.\nif(Math.abs(dx)>=48&&Math.abs(dx)>Math.abs(dy)*1.5)step(dx<0?1:-1);};const swallow=e=>e.stopPropagation();if(!cur)return null;return /*#__PURE__*/_jsxs(motion.div,{ref:panelRef,role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":cur.alt,initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:reduced?.1:.25},onClick:onClose,onKeyDown:keepFocusInside,onPointerDown:swipeStart,onPointerUp:swipeEnd,onPointerCancel:()=>swipe.current=null,style:{position:\"fixed\",inset:0,zIndex:VIEWER_Z,background:p.viewerBackdrop,color:p.viewerInk,fontFamily:FALLBACK_FONT,touchAction:\"pan-y\"},children:[/*#__PURE__*/_jsx(\"button\",{ref:closeRef,type:\"button\",\"aria-label\":\"Close\",className:`vbtn-${uid} vclose-${uid}`,onClick:e=>{swallow(e);onClose();},children:/*#__PURE__*/_jsx(Icon,{d:CLOSE,size:18,w:2})}),total>1?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Previous image\",className:`vbtn-${uid} vside-${uid}`,onClick:e=>{swallow(e);step(-1);},style:{left:\"max(12px, 2vw)\"},children:/*#__PURE__*/_jsx(Icon,{d:CARET_LEFT,size:20,w:2})}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Next image\",className:`vbtn-${uid} vside-${uid}`,onClick:e=>{swallow(e);step(1);},style:{right:\"max(12px, 2vw)\"},children:/*#__PURE__*/_jsx(Icon,{d:CARET_RIGHT,size:20,w:2})}),/*#__PURE__*/_jsxs(\"div\",{className:`vbar-${uid}`,children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Previous image\",className:`vbtn-${uid}`,onClick:e=>{swallow(e);step(-1);},children:/*#__PURE__*/_jsx(Icon,{d:CARET_LEFT,size:20,w:2})}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",\"aria-label\":\"Next image\",className:`vbtn-${uid}`,onClick:e=>{swallow(e);step(1);},children:/*#__PURE__*/_jsx(Icon,{d:CARET_RIGHT,size:20,w:2})})]})]}):null,/*#__PURE__*/_jsx(motion.div,{className:`vstage-${uid}${p.viewerCaption?\"\":` nocap-${uid}`}`,initial:{opacity:0,scale:reduced?1:.96},animate:{opacity:1,scale:1},transition:{duration:reduced?.1:.28},children:/*#__PURE__*/_jsxs(\"figure\",{onClick:swallow,style:{margin:0,display:\"flex\",flexDirection:\"column\",gap:16,width:\"fit-content\",maxWidth:\"100%\",pointerEvents:\"auto\"},children:[/*#__PURE__*/_jsx(\"img\",{src:cur.srcSet?cur.src:sized(cur.src,VIEWER_W),srcSet:cur.srcSet||undefined,sizes:cur.srcSet?\"(max-width: 640px) 100vw, 90vw\":undefined,alt:cur.alt,className:`vimg-${uid}`,style:{width:\"auto\",height:\"auto\",objectFit:\"contain\",borderRadius:12,boxShadow:\"0 30px 80px rgba(0,0,0,0.45)\",userSelect:\"none\"},draggable:false}),p.viewerCaption&&(cur.tag||cur.category||total>1)?// Eyebrow caption: category above the title, counter on\n// the right, both aligned to the photo's edges.\n/*#__PURE__*/_jsxs(\"figcaption\",{\"aria-live\":\"polite\",style:{display:\"flex\",alignItems:\"flex-end\",justifyContent:\"space-between\",gap:24,width:\"100%\",color:p.viewerInk},children:[/*#__PURE__*/_jsxs(\"div\",{style:{minWidth:0},children:[cur.category?/*#__PURE__*/_jsx(\"div\",{style:{fontSize:11,fontWeight:500,letterSpacing:\"0.12em\",textTransform:\"uppercase\",opacity:.6,marginBottom:5},children:cur.category}):null,cur.tag?/*#__PURE__*/_jsx(\"div\",{style:{...fontStyle(p.font),fontSize:15,lineHeight:1.35,display:\"-webkit-box\",WebkitLineClamp:2,WebkitBoxOrient:\"vertical\",overflow:\"hidden\"},children:cur.tag}):null]}),total>1?/*#__PURE__*/_jsxs(\"div\",{style:{fontSize:12,opacity:.6,fontVariantNumeric:\"tabular-nums\",whiteSpace:\"nowrap\"},children:[pad2(index+1),\" / \",pad2(total)]}):null]}):null]})},cur.src)]});}/* ------------------------------------------------------------------ *//* Property controls                                                   *//* ------------------------------------------------------------------ */// Grouped rows open a popover. Nested hidden() gets the group's values first\n// and the component's props second.\naddPropertyControls(CmsBentoGallery,{/* ---------------- Content ---------------- */source:{type:ControlType.Enum,title:\"Source\",options:[\"manual\",\"cms\"],optionTitles:[\"Manual\",\"CMS\"],defaultValue:\"manual\",displaySegmentedControl:true},images:{type:ControlType.Array,title:\"Images\",description:\"Sample photos show until you add your own.\",hidden:p=>p.source===\"cms\",maxCount:60,defaultValue:SAMPLE,control:{type:ControlType.Object,controls:{image:{type:ControlType.ResponsiveImage,title:\"Image\"},alt:{type:ControlType.String,title:\"Alt Text\",defaultValue:\"\"},tag:{type:ControlType.String,title:\"Tag\",defaultValue:\"\"},category:{type:ControlType.String,title:\"Category\",defaultValue:\"\"},focal:{type:ControlType.String,title:\"Focus\",placeholder:\"50 20\",defaultValue:\"\"},link:{type:ControlType.Link,title:\"Link\"}}}},feed:{type:ControlType.Slot,title:\"Feed\",maxCount:1,description:\"Connect a Collection List. Each item needs an image; text layers named Tag, Category and Focus are optional.\",hidden:p=>p.source!==\"cms\"},tileAction:{type:ControlType.Enum,title:\"Tile Action\",options:[\"viewer\",\"link\",\"none\"],optionTitles:[\"Open Viewer\",\"Go to Link\",\"Nothing\"],defaultValue:\"viewer\"},newTab:{type:ControlType.Boolean,title:\"Open in New Tab\",defaultValue:true,hidden:p=>p.tileAction!==\"link\"},/* ---------------- Layout ---------------- */variety:{type:ControlType.Enum,title:\"Layout\",options:[\"bento\",\"even\"],optionTitles:[\"Bento\",\"Even\"],defaultValue:\"bento\",displaySegmentedControl:true,description:`Desktop applies when the gallery is ${DESKTOP_MIN}px or wider, tablet from ${TABLET_MIN}px.`},maxRows:{type:ControlType.Number,title:\"Max Rows\",description:\"The grid never grows taller than this. Extra images rotate in with Auto Shuffle.\",min:1,max:ROWS_LIMIT,step:1,defaultValue:3,displayStepper:true},columns:{type:ControlType.Number,title:\"Columns\",min:2,max:8,step:1,defaultValue:4,displayStepper:true,hidden:p=>p.variety!==\"even\"},theme:{type:ControlType.Enum,title:\"Theme\",options:[\"light\",\"dark\"],optionTitles:[\"Light\",\"Dark\"],defaultValue:\"light\",displaySegmentedControl:true,description:\"Pick the one that matches your page background. Colours the filter bar and tiles.\"},rowHeight:{type:ControlType.Number,title:\"Row Height\",description:\"Used when the gallery's height is Fit. With a Fixed, Fill or viewport height, rows share that height instead.\",min:80,max:480,step:10,defaultValue:200,unit:\"px\"},gap:{type:ControlType.Number,title:\"Tile Gap\",min:0,max:48,step:1,defaultValue:12,unit:\"px\"},radius:{type:ControlType.Number,title:\"Corner Radius\",min:0,max:48,step:1,defaultValue:16,unit:\"px\"},responsive:{type:ControlType.Object,title:\"Responsive\",buttonTitle:\"Tablet & Mobile\",controls:{bentoMobile:{type:ControlType.Boolean,title:\"Bento on Mobile\",description:\"Off: phones get a plain grid with Cols Mobile.\",defaultValue:true,hidden:(_g,p)=>!!p&&p.variety===\"even\"},columnsTablet:{type:ControlType.Number,title:\"Cols Tablet\",min:1,max:6,step:1,defaultValue:3,displayStepper:true,hidden:(_g,p)=>!!p&&p.variety!==\"even\"},columnsMobile:{type:ControlType.Number,title:\"Cols Mobile\",min:1,max:4,step:1,defaultValue:2,displayStepper:true,hidden:(g,p)=>!!p&&p.variety!==\"even\"&&!(g&&g.bentoMobile===false)},rowHeightTablet:{type:ControlType.Number,title:\"Row Height Tablet\",min:80,max:480,step:10,defaultValue:180,unit:\"px\"},rowHeightMobile:{type:ControlType.Number,title:\"Row Height Mobile\",min:80,max:480,step:10,defaultValue:200,unit:\"px\"}}},/* ---------------- Photos ---------------- */placement:{type:ControlType.Object,title:\"Placement\",buttonTitle:\"Crop & Orientation\",controls:{matchOrientation:{type:ControlType.Boolean,title:\"Match Orientation\",description:\"Bento: landscape photos in wide tiles, portraits in narrow ones.\",defaultValue:true},focalX:{type:ControlType.Number,title:\"Focus X\",min:0,max:100,step:1,defaultValue:50,unit:\"%\"},focalY:{type:ControlType.Number,title:\"Focus Y\",min:0,max:100,step:1,defaultValue:50,unit:\"%\"}}},hover:{type:ControlType.Object,title:\"Hover\",buttonTitle:\"Effects\",icon:\"effect\",controls:{hoverZoom:{type:ControlType.Number,title:\"Zoom\",min:1,max:1.3,step:.01,defaultValue:1.02},trueShape:{type:ControlType.Boolean,title:\"True Shape\",description:\"Desktop bento: the hovered tile morphs toward its photo's real proportions and the grid makes room.\",defaultValue:true,hidden:(_g,p)=>!!p&&p.variety===\"even\"},shapeSize:{type:ControlType.Number,title:\"Shape Size\",min:1,max:2,step:.05,defaultValue:1.2,hidden:(g,p)=>!!p&&p.variety===\"even\"||!!g&&g.trueShape===false},depthOfField:{type:ControlType.Number,title:\"Depth of Field\",description:\"Dims the other tiles while one is hovered, so it stands forward. 0 turns it off.\",min:0,max:1,step:.05,defaultValue:.5},greyscale:{type:ControlType.Number,title:\"Greyscale\",description:\"Turns the other tiles black and white while one is hovered. 0 keeps their colour.\",min:0,max:1,step:.05,defaultValue:1}}},/* ---------------- Labels ---------------- */font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:13,variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},labels:{type:ControlType.Object,title:\"Labels\",buttonTitle:\"Tags & Icon\",controls:{showTags:{type:ControlType.Boolean,title:\"Tags\",defaultValue:true},tagPosition:{type:ControlType.Enum,title:\"Position\",options:[\"Bottom Left\",\"Bottom Right\",\"Top Left\",\"Top Right\",\"Bottom Bar\"],defaultValue:\"Bottom Left\",hidden:g=>!!g&&g.showTags===false},tagBg:{type:ControlType.Color,title:\"Fill\",defaultValue:\"rgba(16, 16, 18, 0.55)\",hidden:g=>!!g&&g.showTags===false},tagColor:{type:ControlType.Color,title:\"Text\",defaultValue:\"rgb(255, 255, 255)\",hidden:g=>!!g&&g.showTags===false},showOpenIcon:{type:ControlType.Boolean,title:\"Open Icon\",defaultValue:true,hidden:(_g,p)=>!!p&&p.tileAction!==undefined&&p.tileAction!==\"viewer\"}}},/* ---------------- Viewer ---------------- */viewer:{type:ControlType.Object,title:\"Viewer\",buttonTitle:\"Backdrop & Controls\",hidden:p=>p.tileAction!==undefined&&p.tileAction!==\"viewer\",controls:{viewerBackdrop:{type:ControlType.Color,title:\"Backdrop\",defaultValue:\"rgba(10, 10, 12, 0.92)\"},viewerInk:{type:ControlType.Color,title:\"Controls\",description:\"Buttons and caption.\",defaultValue:\"rgb(255, 255, 255)\"},viewerCaption:{type:ControlType.Boolean,title:\"Show Caption\",defaultValue:true}}},/* ---------------- Shuffle ---------------- */shuffleEnabled:{type:ControlType.Boolean,title:\"Auto Shuffle\",description:\"Steps through every image when there are more than fit.\",defaultValue:true},shuffle:{type:ControlType.Object,title:\"Shuffle\",buttonTitle:\"Timing\",hidden:p=>p.shuffleEnabled===false,controls:{shuffleInterval:{type:ControlType.Number,title:\"Every\",min:2,max:60,step:1,unit:\"s\",defaultValue:8},passes:{type:ControlType.Number,title:\"Passes\",description:\"Full passes through all images before stopping. 0 runs forever.\",min:0,max:20,step:1,defaultValue:3,displayStepper:true}}},/* ---------------- Filter ---------------- */showFilter:{type:ControlType.Boolean,title:\"Filter Bar\",defaultValue:true},filterStyle:{type:ControlType.Object,title:\"Filter Style\",buttonTitle:\"Labels & Colors\",hidden:p=>p.showFilter===false,controls:{allLabel:{type:ControlType.String,title:\"All Label\",defaultValue:\"All\"},hideCategories:{type:ControlType.String,title:\"Hide\",placeholder:\"Archive, Drafts\",description:\"Categories to leave out of the bar, comma separated.\",defaultValue:\"\"},showCounts:{type:ControlType.Boolean,title:\"Show Counts\",defaultValue:true},chipBg:{type:ControlType.Color,title:\"Track\",optional:true,description:\"Empty follows the Theme.\"},chipText:{type:ControlType.Color,title:\"Text\",optional:true},chipActiveBg:{type:ControlType.Color,title:\"Active Fill\",optional:true},chipActiveText:{type:ControlType.Color,title:\"Active Text\",optional:true}}},/* ---------------- Accessibility ---------------- */focusRing:{type:ControlType.Color,title:\"Focus Ring\",description:\"Outline shown on tiles and filters when using a keyboard. Empty follows the Theme.\",optional:true}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CmsBentoGallery\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"600\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"1080\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CmsFilterBentoGrid.map","// Generated by Framer (747ab96)\nimport{fontStore}from\"framer\";fontStore.loadFonts([\"GF;Rubik-500\",\"Inter-Bold\",\"Inter-BoldItalic\",\"Inter-Italic\"]);export const fonts=[{explicitInter:true,fonts:[{cssFamilyName:\"Rubik\",source:\"google\",style:\"normal\",uiFamilyName:\"Rubik\",url:\"https://fonts.gstatic.com/s/rubik/v31/iJWZBXyIfDnIV5PNhY1KTN7Z-Yh-NYi1VU80V4bVkA.woff2\",weight:\"500\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/syRNPWzAMIrcJ3wIlPIP43KjQs.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/H89BbHkbHDzlxZzxi8uPzTsp90.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/u6gJwDuwB143kpNK1T1MDKDWkMc.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/43sJ6MfOPh1LCJt46OvyDuSbA6o.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/wccHG0r4gBDAIRhfHiOlq6oEkqw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/WZ367JPwf9bRW6LdTHN8rXgSjw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/ia3uin3hQWqDrVloC1zEtYHWw.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/2A4Xx7CngadFGlVV4xrO06OBHY.woff2\",weight:\"700\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/CfMzU8w2e7tHgF4T4rATMPuWosA.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/867QObYax8ANsfX4TGEVU9YiCM.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Oyn2ZbENFdnW7mt2Lzjk1h9Zb9k.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/cdAe8hgZ1cMyLu9g005pAW3xMo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/DOfvtmE1UplCq161m6Hj8CSQYg.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/pKRFNWFoZl77qYCAIp84lN1h944.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"italic\",uiFamilyName:\"Inter\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/tKtBcDnBMevsEEJKdNGhhkLzYo.woff2\",weight:\"400\"}]}];export const css=['.framer-DLHH1 .framer-styles-preset-qyoave:not(.rich-text-wrapper), .framer-DLHH1 .framer-styles-preset-qyoave.rich-text-wrapper p { --framer-font-family: \"Rubik\", \"Rubik Placeholder\", sans-serif; --framer-font-family-bold: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-bold-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-family-italic: \"Inter\", \"Inter Placeholder\", sans-serif; --framer-font-open-type-features: normal; --framer-font-size: 25px; --framer-font-style: normal; --framer-font-style-bold: normal; --framer-font-style-bold-italic: italic; --framer-font-style-italic: italic; --framer-font-variation-axes: normal; --framer-font-weight: 500; --framer-font-weight-bold: 700; --framer-font-weight-bold-italic: 700; --framer-font-weight-italic: 400; --framer-letter-spacing: 0em; --framer-line-height: 1.1em; --framer-paragraph-spacing: 20px; --framer-text-alignment: start; --framer-text-color: var(--token-8953db84-6ee7-4a06-97fe-8d124548be4e, #000000); --framer-text-decoration: none; --framer-text-stroke-color: initial; --framer-text-stroke-width: initial; --framer-text-transform: none; }'];export const className=\"framer-DLHH1\";\nexport const __FramerMetadata__ = {\"exports\":{\"css\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"className\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"fonts\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}