{"version":3,"file":"RandomImageBanner.DKe6k0Dh.mjs","names":["useState","useMemo"],"sources":["https:/framerusercontent.com/modules/CL6GxBPNeGFK2LItGxT2/wwSvlGzHSRfZ7p1i6ANv/RandomImageBanner.js"],"sourcesContent":["// create a banner section with randomised images that i can implement. it should show 3 images at a time and randomise whenever the page is reloaded.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{startTransition,useEffect,useMemo,useState}from\"react\";function mulberry32(seed){let a=seed>>>0;return function(){a|=0;a=a+1831565813|0;let t=Math.imul(a^a>>>15,1|a);t=t+Math.imul(t^t>>>7,61|t)^t;return((t^t>>>14)>>>0)/4294967296;};}function shuffleSeeded(arr,seed){const out=arr.slice();const rand=mulberry32(seed||1);for(let i=out.length-1;i>0;i--){const j=Math.floor(rand()*(i+1));[out[i],out[j]]=[out[j],out[i]];}return out;}/**\n * Random Image Banner\n *\n * @framerIntrinsicWidth 900\n * @framerIntrinsicHeight 320\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function RandomImageBanner(props){const{images=[{image:{src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Gradient 5 - Green\"},link:\"\"},{image:{src:\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",alt:\"Gradient 4 - Yellow\"},link:\"\"},{image:{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Gradient 3 - Orange\"},link:\"\"},{image:{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Gradient 2 - Purple\"},link:\"\"},{image:{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Gradient 1 - Blue\"},link:\"\"}],visibleCount,gap,padding,backgroundColor,radius,imageRadius,imageBorder,shadow,hoverScale,baseOverlayColor,hoverOverlayColor,showHoverLabel,labelFont,labelColor,style}=props;const isStatic=useIsStaticRenderer();const[seed,setSeed]=useState(0);const[hoveredKey,setHoveredKey]=useState(null);useEffect(()=>{if(isStatic)return;if(typeof window===\"undefined\")return;// Change only once per page load/mount\nstartTransition(()=>setSeed(Date.now()));},[isStatic]);const preparedImages=useMemo(()=>{const safe=(images||[]).filter(Boolean).map(item=>{// Backwards compatibility: allow plain ResponsiveImage items\nif(item?.src)return{image:item,link:\"\"};if(item?.image?.src)return item;return null;}).filter(Boolean).filter(item=>!!item?.image?.src);if(safe.length===0)return[];if(isStatic||seed===0)return safe;return shuffleSeeded(safe,seed);},[images,seed,isStatic]);const visible=useMemo(()=>{if(preparedImages.length===0)return[];const count=Math.max(1,Math.min(preparedImages.length,Math.floor(visibleCount||1)));if(preparedImages.length<=count)return preparedImages;return preparedImages.slice(0,count);},[preparedImages,visibleCount]);return /*#__PURE__*/_jsx(\"section\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",boxSizing:\"border-box\",display:\"flex\",flexDirection:\"column\",gap,padding,background:backgroundColor,borderRadius:radius,overflow:\"hidden\",boxShadow:shadow,...style},\"aria-label\":\"Random image banner\",children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",flex:1,display:\"grid\",gridTemplateColumns:`repeat(${Math.max(1,Math.floor(visibleCount||1))}, minmax(0, 1fr))`,gap,minHeight:0},children:visible.map((item,idx)=>{const img=item.image;const alt=img?.alt??\"\";const key=`${img?.src||\"img\"}-${idx}`;const href=(item.link||\"\").trim();const Wrapper=href?\"a\":\"div\";const isHovered=hoveredKey===key;const showLabel=showHoverLabel&&!!alt;return /*#__PURE__*/_jsxs(Wrapper,{href:href||undefined,style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius:imageRadius,...imageBorder,display:\"block\",textDecoration:\"none\",color:\"inherit\",transform:isHovered?`scale(${hoverScale})`:\"scale(1)\",transition:\"transform 180ms ease, box-shadow 180ms ease\",willChange:\"transform\"},onMouseEnter:isStatic?undefined:()=>{startTransition(()=>setHoveredKey(key));},onMouseLeave:isStatic?undefined:()=>{startTransition(()=>setHoveredKey(null));},\"aria-label\":href?alt||\"Open link\":undefined,\"aria-hidden\":!href&&!alt?true:undefined,rel:href?\"noopener noreferrer\":undefined,target:href?\"_self\":undefined,children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,background:baseOverlayColor,opacity:isHovered?0:1,transition:\"opacity 220ms ease\",pointerEvents:\"none\",zIndex:1},\"aria-hidden\":\"true\"}),/*#__PURE__*/_jsx(\"img\",{src:img.src,srcSet:img.srcSet,alt:alt,style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",objectFit:\"cover\",transform:isHovered?\"scale(1.03)\":\"scale(1)\",transition:\"transform 220ms ease, filter 220ms ease\",filter:isHovered?\"brightness(0.92) saturate(1.05)\":\"none\",willChange:\"transform, filter\",zIndex:0},loading:\"lazy\",draggable:false}),showLabel&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"flex-end\",justifyContent:\"flex-start\",padding:\"12px\",background:isHovered?hoverOverlayColor:\"transparent\",opacity:isHovered?1:0,transition:\"opacity 180ms ease, background 180ms ease\",pointerEvents:\"none\",zIndex:2},\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"span\",{style:{...labelFont||{},color:labelColor,width:\"max-content\",maxWidth:\"100%\",overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:alt})})]},key);})})});}addPropertyControls(RandomImageBanner,{visibleCount:{type:ControlType.Number,title:\"Visible\",defaultValue:4,min:1,max:12,step:1},images:{type:ControlType.Array,title:\"Images\",maxCount:12,control:{type:ControlType.Object,title:\"Item\",controls:{image:{type:ControlType.ResponsiveImage,title:\"Image\"},link:{type:ControlType.Link,title:\"Link\",defaultValue:\"\"}}},defaultValue:[{image:{src:\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\",alt:\"Gradient 5 - Green\"},link:\"\"},{image:{src:\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",alt:\"Gradient 4 - Yellow\"},link:\"\"},{image:{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Gradient 3 - Orange\"},link:\"\"},{image:{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Gradient 2 - Purple\"},link:\"\"},{image:{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Gradient 1 - Blue\"},link:\"\"}]},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:12,min:0,max:80,step:1,unit:\"px\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"12px\"},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},radius:{type:ControlType.BorderRadius,title:\"Radius\",defaultValue:\"16px\"},imageRadius:{type:ControlType.BorderRadius,title:\"Image Radius\",defaultValue:\"12px\"},imageBorder:{type:ControlType.Border,title:\"Image Border\",optional:true,defaultValue:{borderWidth:0,borderStyle:\"solid\",borderColor:\"rgba(0,0,0,0.1)\"}},shadow:{type:ControlType.BoxShadow,title:\"Shadow\",defaultValue:\"0px 10px 30px rgba(0,0,0,0.08)\"},hoverScale:{type:ControlType.Number,title:\"Hover Scale\",defaultValue:1.03,min:1,max:1.2,step:.01},baseOverlayColor:{type:ControlType.Color,title:\"Base Overlay\",defaultValue:\"rgba(0,0,0,0.35)\"},hoverOverlayColor:{type:ControlType.Color,title:\"Hover Overlay\",defaultValue:\"rgba(0,0,0,0.35)\"},showHoverLabel:{type:ControlType.Boolean,title:\"Hover Label\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},labelFont:{type:ControlType.Font,title:\"Label Font\",controls:\"extended\",defaultFontType:\"sans-serif\",hidden:({showHoverLabel})=>!showHoverLabel,defaultValue:{fontSize:\"15px\",variant:\"Semibold\",letterSpacing:\"-0.01em\",lineHeight:\"1.2em\"}},labelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"#FFFFFF\",hidden:({showHoverLabel})=>!showHoverLabel}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"RandomImageBanner\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"320\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"900\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./RandomImageBanner.map"],"mappings":"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"}