{"version":3,"file":"GlassStackReveal.CpPyPckZ.mjs","names":["React.useState","React.useRef","__esmMin","le","init_ssg_sandbox_shims","window","_e","de","init_jsx_runtime","p","init_npm_react_18_3_1","ce","motion","init_framer_motion_DhsWWWsN","init_framer_BL9pqxmF","addPropertyControls","ControlType","getLocalizedDirection","html","signals","useDirection","localizedDirection","setLocalizedDirection","direction","update","observer","GlassCard","availableWidth","left","layout","maxRight","hoverWidth","cardWidth","isActive","cardLeft","normalContentWidth","textBoxWidth","restingBackground","index","card","getFontStyles","resolveLayout","props","normalWidth","clamp","scale","overlap","appearance","typography","GlassStackReveal","frameRef","frameWidth","setFrameWidth","activeIndex","setActiveIndex","cards","frame","nextWidth","currentWidth","baseNormalWidth","baseOverlap","requiredWidth","stackWidth","step","defaultCards","init_GlassStackReveal","value","min","fallback","font"],"sources":["https:/framerusercontent.com/modules/71gorcOuGn0gKUZEp7r8/qW7IzjUG96uBqlo0dP1d/GlassStackReveal.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const clamp=(value,fallback,min=0)=>Number.isFinite(value)?Math.max(min,value):fallback;const getFontStyles=(font,scale=1)=>({fontFamily:font?.fontFamily,fontSize:typeof font?.fontSize===\"number\"?font.fontSize*scale:font?.fontSize,fontWeight:font?.fontWeight,lineHeight:font?.lineHeight,letterSpacing:typeof font?.letterSpacing===\"number\"?font.letterSpacing*scale:font?.letterSpacing});function getLocalizedDirection(){if(typeof document===\"undefined\")return\"ltr\";// Framer localization can expose the active locale in the document's\n// language/reading direction or in the localized URL (for example /ar\n// or /ar-SA). Check every signal because not every Framer project updates\n// the html lang attribute in the canvas.\nconst html=document.documentElement;const signals=[html.lang,html.dir,window.location.pathname].filter(Boolean).join(\" \").toLowerCase();return/(^|[^a-z])ar(?:-[a-z]{2})?(?=$|[^a-z])|rtl/.test(signals)?\"rtl\":\"ltr\";}function useDirection(direction){const[localizedDirection,setLocalizedDirection]=React.useState(getLocalizedDirection);React.useEffect(()=>{if(direction!==\"auto\"||typeof document===\"undefined\")return;const update=()=>setLocalizedDirection(getLocalizedDirection());update();// This also supports switching locales in the Framer canvas without\n// requiring a page refresh. The URL check covers localized routes.\nconst observer=new MutationObserver(update);observer.observe(document.documentElement,{attributes:true,attributeFilter:[\"lang\",\"dir\"]});window.addEventListener(\"popstate\",update);window.addEventListener(\"hashchange\",update);return()=>{observer.disconnect();window.removeEventListener(\"popstate\",update);window.removeEventListener(\"hashchange\",update);};},[direction]);return direction===\"auto\"?localizedDirection:direction;}function GlassCard({card,index,left,maxRight,direction,isActive,layout,onHoverStart,onHoverEnd}){// The parent reserves hover space, so every card expands toward the\n// selected reading direction and remains inside the frame.\nconst availableWidth=direction===\"rtl\"?left+layout.normalWidth:maxRight-left;const hoverWidth=Math.max(layout.normalWidth,Math.min(layout.hoverWidth,availableWidth));const cardWidth=isActive?hoverWidth:layout.normalWidth;const cardLeft=isActive&&direction===\"rtl\"?left-(hoverWidth-layout.normalWidth):left;// Keep copy wrapping consistent between resting and hover states.\nconst normalContentWidth=layout.normalWidth-layout.padding*2;const textBoxWidth=layout.textWidth>0?Math.min(layout.textWidth,normalContentWidth):normalContentWidth;const restingBackground=`linear-gradient(115deg, ${layout.normalBackground} 0%, ${layout.restingBackgroundTint} 100%)`;return /*#__PURE__*/_jsxs(motion.article,{onHoverStart:onHoverStart,onHoverEnd:onHoverEnd,initial:false,animate:{width:cardWidth,left:cardLeft,borderColor:layout.borderColor,boxShadow:isActive?\"0 28px 72px rgba(0, 79, 180, 0.34), inset 0 1px rgba(255,255,255,0.2)\":\"inset 0 1px rgba(255,255,255,0.08)\"},transition:{type:\"spring\",stiffness:320,damping:30},style:{position:\"absolute\",top:0,height:layout.height,padding:layout.padding,boxSizing:\"border-box\",overflow:\"hidden\",border:`${layout.borderWidth}px solid`,borderRadius:layout.radius,background:isActive?layout.hoverBackground:restingBackground,backdropFilter:isActive?\"none\":`blur(${layout.blur}px)`,WebkitBackdropFilter:isActive?\"none\":`blur(${layout.blur}px)`,color:layout.textColor,direction,textAlign:direction===\"rtl\"?\"right\":\"left\",cursor:\"pointer\",zIndex:isActive?100:index+1,willChange:\"width, left\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:layout.padding,left:direction===\"ltr\"?layout.padding:undefined,right:direction===\"rtl\"?layout.padding:undefined,width:layout.iconBackgroundSize,height:layout.iconBackgroundSize,borderRadius:\"50%\",background:isActive?layout.activeIconBackground:layout.iconBackground,display:\"grid\",placeItems:\"center\",overflow:\"hidden\"},children:card.icon&&/*#__PURE__*/_jsx(\"img\",{src:card.icon,alt:\"\",draggable:false,style:{width:layout.iconSize,height:layout.iconSize,objectFit:\"contain\"}})}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:layout.padding+layout.numberOffsetY,// Keep the number opposite the icon in both directions.\n// This prevents their corner controls overlapping in RTL.\nleft:direction===\"rtl\"?layout.padding:undefined,right:direction===\"ltr\"?layout.padding:undefined,opacity:isActive?1:.94,color:layout.numberColor,...getFontStyles(layout.numberFont,layout.scale)},children:card.number}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:textBoxWidth,minWidth:textBoxWidth,maxWidth:textBoxWidth,// The icon is absolutely positioned, so reserve the same\n// vertical space it previously occupied in normal flow.\nmarginTop:layout.iconBackgroundSize+17*layout.scale},children:[/*#__PURE__*/_jsx(\"div\",{style:{marginBottom:14*layout.scale,...getFontStyles(layout.titleFont,layout.scale)},children:card.title}),/*#__PURE__*/_jsx(\"div\",{style:{color:isActive?layout.activeBodyColor:layout.bodyColor,...getFontStyles(layout.bodyFont,layout.scale)},children:card.description})]})]});}function resolveLayout(props,scale){const{layout,appearance,typography}=props;const normalWidth=clamp(layout.normalWidth,350,120)*scale;const overlap=Math.min(normalWidth-24*scale,clamp(layout.overlap,135,0)*scale);return{normalWidth,hoverWidth:Math.max(normalWidth,clamp(layout.hoverWidth,520,120)*scale),height:clamp(layout.height,300,160)*scale,overlap,padding:clamp(layout.padding,22,0)*scale,radius:clamp(layout.radius,30,0)*scale,textWidth:clamp(layout.textWidth,0,0)*scale,iconSize:clamp(layout.iconSize,20,1)*scale,iconBackgroundSize:clamp(layout.iconBackgroundSize,48,1)*scale,numberOffsetY:clamp(layout.numberOffsetY,-2,-1e3)*scale,normalBackground:appearance.normalBackground,restingBackgroundTint:appearance.restingBackgroundTint,hoverBackground:appearance.hoverBackground,borderColor:appearance.borderColor,borderWidth:clamp(appearance.borderWidth,1,0)*scale,iconBackground:appearance.iconBackground,activeIconBackground:appearance.activeIconBackground,blur:clamp(appearance.blur,18,0),direction:layout.direction,scale,textColor:typography.textColor,bodyColor:typography.bodyColor,activeBodyColor:typography.activeBodyColor,numberColor:typography.numberColor,numberFont:typography.numberFont,titleFont:typography.titleFont,bodyFont:typography.bodyFont};}// Framer renders this component inside the frame placed on the canvas.\nexport default function GlassStackReveal(props){const frameRef=React.useRef(null);const[frameWidth,setFrameWidth]=React.useState(()=>Number.isFinite(props.width)?props.width:0);const[activeIndex,setActiveIndex]=React.useState(null);const cards=props.cards?.filter(card=>card.title||card.description)??[];// Undefined is intentionally treated as auto, so existing component\n// instances created before this setting was added also localize correctly.\nconst direction=useDirection(props.layout.directionMode===\"manual\"?props.layout.direction:\"auto\");React.useLayoutEffect(()=>{const frame=frameRef.current;if(!frame)return;const update=()=>{const nextWidth=Math.round(frame.getBoundingClientRect().width);setFrameWidth(currentWidth=>currentWidth===nextWidth?currentWidth:nextWidth);};update();// Canvas can render before ResizeObserver is available. The initial\n// measurement still gives it a visible, useful first render.\nif(typeof ResizeObserver===\"undefined\"){window.addEventListener(\"resize\",update);return()=>window.removeEventListener(\"resize\",update);}const observer=new ResizeObserver(update);observer.observe(frame);return()=>observer.disconnect();},[]);const baseNormalWidth=clamp(props.layout.normalWidth,350,120);const baseOverlap=Math.min(baseNormalWidth-24,clamp(props.layout.overlap,135,0));const baseStackWidth=baseNormalWidth+Math.max(0,cards.length-1)*(baseNormalWidth-baseOverlap);// Reserve the difference between normal and hover width at the far right.\n// Without this, a stack that exactly fills its frame gives the last card\n// nowhere to expand in the same rightward direction as every other card.\nconst baseHoverRoom=Math.max(0,clamp(props.layout.hoverWidth,520,baseNormalWidth)-baseNormalWidth);const requiredWidth=baseStackWidth+baseHoverRoom;const scale=frameWidth>0&&requiredWidth>frameWidth?frameWidth/requiredWidth:1;const layout=resolveLayout(props,scale);const stackWidth=layout.normalWidth+Math.max(0,cards.length-1)*(layout.normalWidth-layout.overlap);return /*#__PURE__*/_jsx(\"div\",{ref:frameRef,dir:direction,style:{position:\"relative\",width:\"100%\",height:layout.height,overflow:\"hidden\",background:\"transparent\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",// Use the full frame, rather than collapsed stack width:\n// this leaves room for the final card to expand on hover.\nwidth:frameWidth||stackWidth,height:layout.height,margin:\"0 auto\"},children:cards.map((card,index)=>{const step=layout.normalWidth-layout.overlap;const left=direction===\"rtl\"?(frameWidth||stackWidth)-layout.normalWidth-index*step:index*step;return /*#__PURE__*/_jsx(GlassCard,{card:card,index:index,left:left,maxRight:frameWidth||stackWidth,direction:direction,isActive:activeIndex===index,layout:layout,onHoverStart:()=>setActiveIndex(index),onHoverEnd:()=>setActiveIndex(null)},`${card.number}-${card.title}-${index}`);})})});}const defaultCards=[{number:\"01\",title:\"Customer Focus\",description:\"We prioritize our customers, listening to their needs and partnering with them to create solutions that achieve their goals.\",icon:\"\"},{number:\"02\",title:\"Sustainability\",description:\"We embed sustainability into our solutions, helping clients build procurement and supply chain capabilities that deliver positive, lasting impact.\",icon:\"\"},{number:\"03\",title:\"Integrity\",description:\"We uphold the highest standards of integrity and transparency, always doing what is right without compromise.\",icon:\"\"},{number:\"04\",title:\"Excellence\",description:\"We are committed to delivering exceptional value and outstanding quality in everything we do.\",icon:\"\"}];GlassStackReveal.defaultProps={cards:defaultCards,layout:{normalWidth:350,hoverWidth:520,height:300,overlap:135,textWidth:0,padding:22,radius:30,iconSize:20,iconBackgroundSize:48,numberOffsetY:-2,directionMode:\"auto\",direction:\"ltr\"},appearance:{normalBackground:\"rgba(7, 16, 30, 0.72)\",restingBackgroundTint:\"rgba(35, 93, 151, 0.42)\",hoverBackground:\"#087BFF\",borderColor:\"rgba(255,255,255,0.12)\",borderWidth:1,iconBackground:\"rgba(255,255,255,0.20)\",activeIconBackground:\"rgba(255,255,255,0.24)\",blur:18},typography:{textColor:\"#FFFFFF\",bodyColor:\"rgba(255,255,255,0.34)\",activeBodyColor:\"rgba(255,255,255,0.66)\",numberColor:\"#FFFFFF\",numberFont:{fontFamily:\"Satoshi, Inter, sans-serif\",fontSize:50,fontWeight:700,lineHeight:\"1em\",letterSpacing:\"-0.05em\"},titleFont:{fontFamily:\"Satoshi, Inter, sans-serif\",fontSize:30,fontWeight:500,lineHeight:\"1.1em\",letterSpacing:\"-0.03em\"},bodyFont:{fontFamily:\"Satoshi, Inter, sans-serif\",fontSize:15,fontWeight:500,lineHeight:\"1.55em\",letterSpacing:\"-0.01em\"}}};addPropertyControls(GlassStackReveal,{cards:{type:ControlType.Array,title:\"Cards\",control:{type:ControlType.Object,controls:{number:{type:ControlType.String,title:\"Number\",defaultValue:\"01\"},title:{type:ControlType.String,title:\"Title\",defaultValue:\"Value title\"},description:{type:ControlType.String,title:\"Text\",displayTextArea:true,defaultValue:\"Description\"},icon:{type:ControlType.Image,title:\"Icon\"}}},defaultValue:defaultCards},layout:{type:ControlType.Object,title:\"Layout\",controls:{normalWidth:{type:ControlType.Number,title:\"Card width\",min:120,max:700,unit:\"px\"},hoverWidth:{type:ControlType.Number,title:\"Hover width\",min:120,max:1e3,unit:\"px\"},height:{type:ControlType.Number,title:\"Card height\",min:160,max:700,unit:\"px\"},overlap:{type:ControlType.Number,title:\"Card overlap\",min:0,max:400,unit:\"px\"},textWidth:{type:ControlType.Number,title:\"Text box width\",min:0,max:900,unit:\"px\"},padding:{type:ControlType.Number,title:\"Padding\",min:0,max:100,unit:\"px\"},radius:{type:ControlType.Number,title:\"Corner radius\",min:0,max:100,unit:\"px\"},iconSize:{type:ControlType.Number,title:\"Icon size\",min:1,max:120,unit:\"px\"},iconBackgroundSize:{type:ControlType.Number,title:\"Icon circle size\",min:1,max:160,unit:\"px\"},numberOffsetY:{type:ControlType.Number,title:\"Number height\",min:-100,max:100,unit:\"px\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"ltr\",\"rtl\"],optionTitles:[\"Left to right\",\"Right to left\"],hidden:props=>props.directionMode!==\"manual\"},directionMode:{type:ControlType.Enum,title:\"Direction source\",options:[\"auto\",\"manual\"],optionTitles:[\"Auto (locale)\",\"Manual override\"]}}},appearance:{type:ControlType.Object,title:\"Colors & Glass\",controls:{normalBackground:{type:ControlType.Color,title:\"Card background\"},restingBackgroundTint:{type:ControlType.Color,title:\"Card background tint\"},hoverBackground:{type:ControlType.Color,title:\"Hover background\"},blur:{type:ControlType.Number,title:\"Resting cards BG blur\",description:\"Blur for overlapping cards at rest. The hovered card stays clear.\",min:0,max:60,unit:\"px\"},borderColor:{type:ControlType.Color,title:\"Border\"},borderWidth:{type:ControlType.Number,title:\"Border width\",min:0,max:8,step:.5,unit:\"px\"},iconBackground:{type:ControlType.Color,title:\"Icon circle color\"},activeIconBackground:{type:ControlType.Color,title:\"Hover icon color\"}}},typography:{type:ControlType.Object,title:\"Typography\",controls:{titleFont:{type:ControlType.Font,title:\"Title font\",controls:\"extended\"},bodyFont:{type:ControlType.Font,title:\"Body font\",controls:\"extended\"},numberFont:{type:ControlType.Font,title:\"Number font\",controls:\"extended\"},textColor:{type:ControlType.Color,title:\"Title color\"},bodyColor:{type:ControlType.Color,title:\"Body color\"},activeBodyColor:{type:ControlType.Color,title:\"Hover body color\"},numberColor:{type:ControlType.Color,title:\"Number color\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GlassStackReveal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GlassStackReveal.map"],"mappings":"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"}