{"version":3,"file":"ScrollReveal.CKIEMDRq.mjs","names":["useState","useCallback","useMemo","useState","useRef","useMemo","useCallback","_Fragment","ScrollReveal","useRef","p","useRef","p"],"sources":["https:/framerusercontent.com/modules/nfSrHGx5h1sWCHqSbQW3/pCpFvQiFCEcmIth2oAKE/FlipCard_component.js","https:/framerusercontent.com/modules/OxH4WR8bc9mUv71N3NKG/qZ4Zt0YHuYRtfwppBHsY/Flipbook3D.js","https:/framerusercontent.com/modules/6qdfezsuUeAplINpmBQE/UpOJslJrQFzWagsCieeG/ScrollReveal_1.js","https:/framerusercontent.com/modules/GZiwBGZyJP6P5g7nnPWI/aGrHgXT4lYOUV6kzJfxz/ScrollReveal.js"],"sourcesContent":["// Draggable card stack component with flip-to-back interaction\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useCallback,useMemo,startTransition}from\"react\";import{motion,AnimatePresence}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n * @framerIntrinsicWidth 300\n * @framerIntrinsicHeight 400\n */export default function FlipCardStack(props){const{cards=[{image:{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Card 1\"},title:\"\",description:\"\"},{image:{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Card 2\"},title:\"\",description:\"\"},{image:{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Card 3\"},title:\"\",description:\"\"}],cardWidth,cardHeight,stackOffset,stackRotation,dragThreshold,animationDuration,animationEase,borderRadius,shadowIntensity,style}=props;const[cardOrder,setCardOrder]=useState(()=>cards.map((_,index)=>index));const getCardTransform=useCallback((index,cardIndex)=>{const stackPosition=cardOrder.indexOf(cardIndex);const positionFromBottom=cardOrder.length-1-stackPosition;return{zIndex:stackPosition,y:-positionFromBottom*stackOffset,rotate:positionFromBottom*stackRotation,scale:1-positionFromBottom*.02,opacity:1};},[cardOrder,stackOffset,stackRotation]);const handleDragEnd=useCallback((event,info,cardIndex)=>{const dragDistance=Math.abs(info.offset.x)+Math.abs(info.offset.y);const velocity=Math.abs(info.velocity.x)+Math.abs(info.velocity.y);if(dragDistance>dragThreshold||velocity>800){startTransition(()=>{setCardOrder(prevOrder=>{const newOrder=[...prevOrder];const draggedCardPosition=newOrder.indexOf(cardIndex);const draggedCard=newOrder.splice(draggedCardPosition,1)[0];newOrder.unshift(draggedCard);return newOrder;});});}},[dragThreshold]);const cardVariants={initial:custom=>({...custom,x:0,y:custom.y}),animate:custom=>({...custom,x:0,y:custom.y,transition:{type:\"spring\",damping:30,stiffness:500,mass:.5,restDelta:.01,restSpeed:.01}}),drag:{scale:1.05,rotate:0,transition:{duration:.05}}};const renderedCards=useMemo(()=>{return cards.map((card,index)=>{const transform=getCardTransform(index,index);const isTopCard=cardOrder.indexOf(index)===cardOrder.length-1;return /*#__PURE__*/_jsxs(motion.div,{custom:transform,variants:cardVariants,initial:\"initial\",animate:\"animate\",exit:\"exit\",whileDrag:\"drag\",drag:isTopCard,dragConstraints:{top:-150,bottom:150,left:-150,right:150},dragElastic:.2,dragSnapToOrigin:true,dragTransition:{power:.3,timeConstant:125,bounceStiffness:500,bounceDamping:30},onDragEnd:(event,info)=>handleDragEnd(event,info,index),style:{position:\"absolute\",width:cardWidth,height:cardHeight,borderRadius,overflow:\"hidden\",cursor:isTopCard?\"grab\":\"default\",boxShadow:`0px ${4+transform.zIndex*2}px ${8+transform.zIndex*4}px rgba(0, 0, 0, ${shadowIntensity})`},whileHover:isTopCard?{scale:1.02}:{},children:[card.image&&/*#__PURE__*/_jsx(\"img\",{src:card.image.src,srcSet:card.image.srcSet,alt:card.image.alt||`Card ${index+1}`,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",objectPosition:`${card.image.positionX||\"50%\"} ${card.image.positionY||\"50%\"}`,userSelect:\"none\",pointerEvents:\"none\"}}),(card.title||card.description)&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",bottom:0,left:0,right:0,background:\"linear-gradient(transparent, rgba(0,0,0,0.7))\",color:\"white\",padding:\"24px\",textAlign:\"left\"},children:[card.title&&/*#__PURE__*/_jsx(\"h3\",{style:{margin:\"0 0 4px 0\",fontSize:\"18px\",fontWeight:\"600\"},children:card.title}),card.description&&/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontSize:\"14px\",opacity:.8},children:card.description})]})]},`card-${index}`);});},[cards,cardOrder,cardWidth,cardHeight,borderRadius,shadowIntensity,getCardTransform,cardVariants,handleDragEnd]);return /*#__PURE__*/_jsxs(\"div\",{style:{...style,position:\"relative\",width:cardWidth,height:cardHeight,perspective:\"1000px\"},children:[/*#__PURE__*/_jsx(AnimatePresence,{children:renderedCards}),cards.length===0&&/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:\"#f0f0f0\",borderRadius,border:\"2px dashed #ccc\",color:\"#666\",textAlign:\"center\",fontSize:\"14px\"},children:[\"Add cards to create\",/*#__PURE__*/_jsx(\"br\",{}),\"your flip stack\"]})]});}addPropertyControls(FlipCardStack,{cards:{type:ControlType.Array,title:\"Cards\",control:{type:ControlType.Object,controls:{image:{type:ControlType.ResponsiveImage,title:\"Image\"},title:{type:ControlType.String,title:\"Title\",placeholder:\"Card title...\",defaultValue:\"\"},description:{type:ControlType.String,title:\"Description\",placeholder:\"Card description...\",displayTextArea:true,defaultValue:\"\"}}},defaultValue:[{image:{src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Gradient 1 - Blue\"}},{image:{src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Gradient 2 - Purple\"}},{image:{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Gradient 3 - Orange\"}}],maxCount:10},cardWidth:{type:ControlType.Number,title:\"Card Width\",min:200,max:600,step:10,unit:\"px\",defaultValue:300},cardHeight:{type:ControlType.Number,title:\"Card Height\",min:200,max:800,step:10,unit:\"px\",defaultValue:400},stackOffset:{type:ControlType.Number,title:\"Offset\",description:\"Vertical spacing between cards in the stack\",min:0,max:20,step:1,unit:\"px\",defaultValue:8},stackRotation:{type:ControlType.Number,title:\"Rotation\",description:\"Rotation angle applied to each card in the stack\",min:-10,max:15,step:.5,unit:\"\\xb0\",defaultValue:-10},dragThreshold:{type:ControlType.Number,title:\"Drag Threshold\",min:30,max:200,step:10,unit:\"px\",defaultValue:80},animationDuration:{type:ControlType.Number,title:\"Animation Speed\",min:.1,max:1,step:.1,unit:\"s\",defaultValue:.3},animationEase:{type:ControlType.Enum,title:\"Animation Ease\",options:[\"linear\",\"easeIn\",\"easeOut\",\"easeInOut\"],optionTitles:[\"Linear\",\"Ease In\",\"Ease Out\",\"Ease In Out\"],defaultValue:\"easeOut\"},borderRadius:{type:ControlType.Number,title:\"Border Radius\",min:0,max:50,step:1,unit:\"px\",defaultValue:24},shadowIntensity:{type:ControlType.Number,title:\"Shadow Intensity\",min:0,max:1,step:.1,defaultValue:.2}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FlipCardStack\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"400\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"300\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FlipCard_component.map","// Flipbook 3D: Realistic page-turn flipbook with full-bleed images\n// Desktop shows spreads (2 pages), mobile shows single pages\n// Full-bleed: images fill pages completely with object-fit: cover\n// Navigation: click left/right, swipe/drag, keyboard arrows\n// 3D page-turn animation with shadow/gradient for spine\n// Lazy loading: current, previous, and next pages only\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useState,useRef,useCallback,useMemo,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";/**\n * Flipbook 3D\n *\n * @framerIntrinsicWidth 800\n * @framerIntrinsicHeight 600\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function Flipbook3D(props){const{frontCover={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Front Cover\"},backCover={src:\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",alt:\"Back Cover\"},innerPages=[{src:\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",alt:\"Page 1\"},{src:\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",alt:\"Page 2\"}],aspectRatio=\"3/4\",borderRadius=\"8px\",padding=\"20px\",enableKeyboardNav=true,enableSwipeDrag=true,showControls=true,backgroundColor=\"#EEEEEE\",bookColor=\"#F8F8F8\",showPageIndicator=true,transition={type:\"tween\",duration:.7,ease:\"easeInOut\"},frontCoverDisplayType=\"cover\",backCoverDisplayType=\"cover\",innerPagesDisplayType=\"cover\"}=props;// Extract numeric values from string props\nconst cornerRadius=parseFloat(borderRadius)||8;const paddingValue=parseFloat(padding)||20;const[currentPage,setCurrentPage]=useState(-1);const[isAnimating,setIsAnimating]=useState(false);const[dragStart,setDragStart]=useState(null);const[animationDirection,setAnimationDirection]=useState(null);const[preloadedPages,setPreloadedPages]=useState(new Set);const[renderKey,setRenderKey]=useState(0);const containerRef=useRef(null);const animationFrameRef=useRef(null);// Force re-render when display types change\nuseEffect(()=>{startTransition(()=>setRenderKey(prev=>prev+1));},[frontCoverDisplayType,backCoverDisplayType,innerPagesDisplayType]);// Check if using default images\nconst defaultImageUrls=[\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",\"https://framerusercontent.com/images/aNsAT3jCvt4zglbWCUoFe33Q.jpg\",\"https://framerusercontent.com/images/BYnxEV1zjYb9bhWh1IwBZ1ZoS60.jpg\",\"https://framerusercontent.com/images/2uTNEj5aTl2K3NJaEFWMbnrA.jpg\",\"https://framerusercontent.com/images/f9RiWoNpmlCMqVRIHz8l8wYfeI.jpg\"];const isUsingDefaultImages=useMemo(()=>{// Check if front cover is default\nif(defaultImageUrls.includes(frontCover.src))return true;// Check if any inner pages are default\nreturn innerPages.some(page=>defaultImageUrls.includes(page.src));},[frontCover,innerPages]);const shouldShowHint=currentPage===-1&&isUsingDefaultImages;// Build complete page array: [frontCover, ...innerPages, backCover]\n// Ensure back cover is always alone by adding empty page if needed\nconst allPages=useMemo(()=>{const pages=[frontCover,...innerPages];// If we have an odd number of pages (excluding back cover), add an empty page\n// This ensures back cover will be alone on the right side\nif(pages.length%2===0){pages.push({src:\"\",alt:\"Empty page\"});}pages.push(backCover);return pages;},[frontCover,innerPages,backCover]);const totalPages=allPages.length;// Preload adjacent pages\nuseEffect(()=>{const pagesToPreload=new Set;// Current pages\npagesToPreload.add(currentPage);pagesToPreload.add(currentPage+1);// Previous pages\npagesToPreload.add(currentPage-1);pagesToPreload.add(currentPage-2);// Next pages (these will be on the back of current pages)\npagesToPreload.add(currentPage+1);pagesToPreload.add(currentPage+2);pagesToPreload.add(currentPage+3);startTransition(()=>setPreloadedPages(pagesToPreload));},[currentPage]);// Calculate aspect ratio\nconst aspectParts=aspectRatio.split(\"/\");const aspectWidth=parseFloat(aspectParts[0])||3;const aspectHeight=parseFloat(aspectParts[1])||4;// Extract transition values\nconst pageTurnDuration=(transition?.duration??.7)*1e3// Convert to ms\n;const easing=transition?.ease===\"linear\"?\"linear\":transition?.ease===\"easeIn\"?\"ease-in\":transition?.ease===\"easeOut\"?\"ease-out\":\"ease-in-out\";// Navigation functions\nconst goToPage=useCallback(pageIndex=>{if(isAnimating)return;let targetPage=pageIndex;targetPage=Math.max(-1,Math.min(totalPages-1,targetPage));if(targetPage===currentPage)return;startTransition(()=>{setAnimationDirection(targetPage>currentPage?\"forward\":\"backward\");setIsAnimating(true);});const startTime=Date.now();const animate=()=>{const elapsed=Date.now()-startTime;const progress=Math.min(elapsed/pageTurnDuration,1);if(progress<1){animationFrameRef.current=requestAnimationFrame(animate);}else{startTransition(()=>{setCurrentPage(targetPage);setIsAnimating(false);setAnimationDirection(null);});}};animationFrameRef.current=requestAnimationFrame(animate);},[currentPage,totalPages,isAnimating,pageTurnDuration]);// Cleanup animation frame on unmount\nuseEffect(()=>{return()=>{if(animationFrameRef.current!==null){cancelAnimationFrame(animationFrameRef.current);}};},[]);const nextPage=useCallback(()=>{goToPage(currentPage+2);},[currentPage,goToPage]);const prevPage=useCallback(()=>{goToPage(currentPage-2);},[currentPage,goToPage]);// Keyboard navigation\nuseEffect(()=>{if(!enableKeyboardNav||typeof window===\"undefined\")return;const handleKeyDown=e=>{if(e.key===\"ArrowRight\"){e.preventDefault();nextPage();}else if(e.key===\"ArrowLeft\"){e.preventDefault();prevPage();}};window.addEventListener(\"keydown\",handleKeyDown);return()=>window.removeEventListener(\"keydown\",handleKeyDown);},[enableKeyboardNav,nextPage,prevPage]);// Click navigation\nconst handleClick=useCallback(e=>{if(!containerRef.current||isAnimating)return;const rect=containerRef.current.getBoundingClientRect();const clickX=e.clientX-rect.left;const isRightSide=clickX>rect.width/2;if(isRightSide){nextPage();}else{prevPage();}},[nextPage,prevPage,isAnimating]);// Swipe/Drag navigation\nconst handleDragStart=useCallback(e=>{if(!enableSwipeDrag)return;const clientX=\"touches\"in e?e.touches[0].clientX:e.clientX;setDragStart(clientX);},[enableSwipeDrag]);const handleDragEnd=useCallback(e=>{if(!enableSwipeDrag||dragStart===null)return;const clientX=\"changedTouches\"in e?e.changedTouches[0].clientX:e.clientX;const diff=dragStart-clientX;const threshold=50;if(Math.abs(diff)>threshold){if(diff>0){nextPage();}else{prevPage();}}setDragStart(null);},[enableSwipeDrag,dragStart,nextPage,prevPage]);// Render page content with front and back faces\nconst renderDoubleSidedPage=(frontPageIndex,backPageIndex,isLeft,isFlipping=false)=>{const frontPage=frontPageIndex>=0&&frontPageIndex<totalPages?allPages[frontPageIndex]:null;const backPage=backPageIndex>=0&&backPageIndex<totalPages?allPages[backPageIndex]:null;const getTransform=()=>{if(!isFlipping||!animationDirection)return\"rotateY(0deg) translateZ(0)\";if(animationDirection===\"forward\"&&!isLeft){// Right page flips to the left\nreturn\"rotateY(-180deg) translateZ(0)\";}else if(animationDirection===\"backward\"&&isLeft){// Left page flips to the right\nreturn\"rotateY(180deg) translateZ(0)\";}return\"rotateY(0deg) translateZ(0)\";};const getZIndex=()=>{if(isFlipping){// During backward flip on left page, ensure it's above the right page\nif(animationDirection===\"backward\"&&isLeft)return 15;return 10;}return 1;};const getObjectFit=pageIndex=>{// Front cover\nif(pageIndex===0)return frontCoverDisplayType;// Back cover (last page)\nif(pageIndex===totalPages-1)return backCoverDisplayType;// Inner pages\nreturn innerPagesDisplayType;};const renderPageFace=(page,isFront,pageIndex)=>{if(!page)return null;// Check if this is an empty page\nconst isEmpty=!page.src||page.src===\"\";// Check if this is the front cover with default images\nconst isFrontCoverWithDefaults=page===frontCover&&isUsingDefaultImages&&isFront;const objectFit=getObjectFit(pageIndex);return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",backfaceVisibility:\"hidden\",WebkitBackfaceVisibility:\"hidden\",transform:isFront?\"rotateY(0deg) translateZ(0.1px)\":\"rotateY(180deg) translateZ(0.1px)\",overflow:\"hidden\",borderRadius:borderRadius,backgroundColor:bookColor,cursor:\"pointer\",WebkitTransform:isFront?\"rotateY(0deg) translateZ(0.1px)\":\"rotateY(180deg) translateZ(0.1px)\"},children:[!isEmpty&&/*#__PURE__*/_jsx(\"img\",{src:page.src,alt:\"\",style:{width:\"100%\",height:\"100%\",objectFit:objectFit,objectPosition:\"center\",display:\"block\",cursor:\"pointer\",minWidth:\"100%\",minHeight:\"100%\"},loading:\"lazy\"},`img-${pageIndex}-${objectFit}-${renderKey}`),isFrontCoverWithDefaults&&/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",top:\"50%\",left:\"50%\",transform:\"translate(-50%, -50%)\",backgroundColor:\"rgba(0,0,0,0.85)\",color:\"#FFFFFF\",padding:\"24px 32px\",borderRadius:\"12px\",fontSize:\"15px\",fontFamily:\"system-ui, -apple-system, sans-serif\",fontWeight:500,textAlign:\"center\",maxWidth:\"90%\",width:\"max-content\",boxShadow:\"0 4px 16px rgba(0,0,0,0.3)\",pointerEvents:\"none\",lineHeight:\"1.5\",zIndex:10},children:[/*#__PURE__*/_jsx(\"div\",{children:\"Please upload your images\"}),/*#__PURE__*/_jsx(\"div\",{children:\"for the Flipbook 3D to work properly\"})]})]},`${pageIndex}-${isFront}-${objectFit}-${renderKey}`);};return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",transformStyle:\"preserve-3d\",WebkitTransformStyle:\"preserve-3d\",transform:getTransform(),transition:isFlipping?`transform ${pageTurnDuration}ms ${easing}`:\"none\",transformOrigin:isLeft?\"right center\":\"left center\",zIndex:getZIndex()},children:[renderPageFace(frontPage,true,frontPageIndex),renderPageFace(backPage,false,backPageIndex)]});};// Render page content\nconst renderPage=(pageIndex,isLeft,isAnimatingPage=false)=>{if(pageIndex<0||pageIndex>=totalPages)return null;const page=allPages[pageIndex];// Check if this is an empty page\nconst isEmpty=!page.src||page.src===\"\";const getTransform=()=>{if(!isAnimatingPage||!animationDirection)return\"translateZ(0)\";if(animationDirection===\"forward\"){// Right page flips to the left\nif(!isLeft){return\"rotateY(-180deg) translateZ(0)\";}}else{// Left page flips to the right\nif(isLeft){return\"rotateY(180deg) translateZ(0)\";}}return\"translateZ(0)\";};const getObjectFit=()=>{// Front cover\nif(pageIndex===0)return frontCoverDisplayType;// Back cover (last page)\nif(pageIndex===totalPages-1)return backCoverDisplayType;// Inner pages\nreturn innerPagesDisplayType;};const objectFit=getObjectFit();return /*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",borderRadius:borderRadius,backgroundColor:bookColor,transformStyle:\"preserve-3d\",WebkitTransformStyle:\"preserve-3d\",transform:getTransform(),transition:`transform ${pageTurnDuration}ms ${easing}`,backfaceVisibility:\"hidden\",WebkitBackfaceVisibility:\"hidden\",willChange:isAnimatingPage?\"transform\":\"auto\"},children:!isEmpty&&/*#__PURE__*/_jsx(\"img\",{src:page.src,alt:\"\",style:{width:\"100%\",height:\"100%\",objectFit:objectFit,objectPosition:\"center\",display:\"block\",cursor:\"pointer\",minWidth:\"100%\",minHeight:\"100%\"},loading:\"lazy\"},`img-${pageIndex}-${objectFit}-${renderKey}`)},`${pageIndex}-${objectFit}-${renderKey}`);};// Empty state\nif(totalPages===0){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:\"#F5F5F5\",borderRadius:borderRadius,color:\"#CCCCCC\",fontSize:\"15px\",fontFamily:\"system-ui, -apple-system, sans-serif\"},children:\"Add pages in the right panel\"});}// Calculate which pages to show\nconst leftPageIndex=currentPage;const rightPageIndex=currentPage+1;// Calculate front and back faces for double-sided pages\n// During forward animation: \n//   - Left page stays as currentPage (static)\n//   - Right page (currentPage+1) flips, showing currentPage+2 on its back\n//   - Underneath we reveal currentPage+3 on the right\n// During backward animation: \n//   - Left page (currentPage) flips backward, showing currentPage-1 on back\n//   - Right page stays as currentPage+1 (static)\n//   - Underneath we reveal currentPage-2 on the left\nconst getLeftPageIndices=()=>{// Special case: when currentPage is -1, left side is empty\nif(currentPage===-1){return{front:-1,back:-1,isFlipping:false};}if(isAnimating&&animationDirection===\"backward\"){// Left page is flipping backward, showing previous page on back\nreturn{front:currentPage,back:currentPage-1,isFlipping:true};}// Left page is static during forward flip or no animation\nreturn{front:currentPage,back:-1,isFlipping:false};};const getRightPageIndices=()=>{// Special case: when currentPage is -1, show front cover on right\nif(currentPage===-1){if(isAnimating&&animationDirection===\"forward\"){// Front cover is flipping to reveal first inner pages\nreturn{front:0,back:1,isFlipping:true};}return{front:0,back:-1,isFlipping:false};}if(isAnimating&&animationDirection===\"forward\"){// Right page is flipping forward, showing next page on back\nreturn{front:currentPage+1,back:currentPage+2,isFlipping:true};}// Right page is static during backward flip or no animation\nreturn{front:currentPage+1,back:-1,isFlipping:false};};const leftIndices=getLeftPageIndices();const rightIndices=getRightPageIndices();const canGoPrev=currentPage>-1;const canGoNext=currentPage<totalPages-2;return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:backgroundColor,padding:padding,userSelect:\"none\",WebkitUserSelect:\"none\",cursor:\"pointer\",perspective:\"2000px\",WebkitPerspective:\"2000px\"},onClick:handleClick,onMouseDown:handleDragStart,onMouseUp:handleDragEnd,onTouchStart:handleDragStart,onTouchEnd:handleDragEnd,children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\",maxWidth:\"90%\",aspectRatio:`${aspectWidth*2}/${aspectHeight}`,display:\"flex\",gap:0,transformStyle:\"preserve-3d\",WebkitTransformStyle:\"preserve-3d\",cursor:\"pointer\"},children:[Array.from(preloadedPages).map(pageIdx=>{if(pageIdx>=0&&pageIdx<totalPages){return /*#__PURE__*/_jsx(\"link\",{rel:\"preload\",as:\"image\",href:allPages[pageIdx].src},`preload-${pageIdx}`);}return null;}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,position:\"relative\",transformStyle:\"preserve-3d\",WebkitTransformStyle:\"preserve-3d\",transform:\"translateZ(0)\",cursor:\"pointer\",zIndex:isAnimating&&animationDirection===\"backward\"?5:1},children:[isAnimating&&animationDirection===\"backward\"&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",zIndex:0,transform:\"translateZ(-1px)\"},children:renderPage(currentPage-2,true,false)}),renderDoubleSidedPage(leftIndices.front,leftIndices.back,true,leftIndices.isFlipping)]}),/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,position:\"relative\",transformStyle:\"preserve-3d\",WebkitTransformStyle:\"preserve-3d\",transform:\"translateZ(0)\",cursor:\"pointer\",zIndex:isAnimating&&animationDirection===\"forward\"?5:1},children:[isAnimating&&animationDirection===\"forward\"&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",zIndex:0,transform:\"translateZ(-1px)\"},children:currentPage===-1?renderPage(2,false,false):currentPage+3<totalPages&&renderPage(currentPage+3,false,false)}),renderDoubleSidedPage(rightIndices.front,rightIndices.back,false,rightIndices.isFlipping)]})]}),showControls&&/*#__PURE__*/_jsxs(_Fragment,{children:[canGoPrev&&/*#__PURE__*/_jsx(\"button\",{onClick:e=>{e.stopPropagation();prevPage();},disabled:isAnimating,style:{position:\"absolute\",left:\"20px\",top:\"50%\",transform:\"translateY(-50%)\",width:\"40px\",height:\"40px\",borderRadius:\"50%\",border:\"none\",backgroundColor:\"rgba(255,255,255,0.9)\",boxShadow:\"0 2px 8px rgba(0,0,0,0.15)\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",opacity:isAnimating?.5:1,transition:\"opacity 200ms ease\"},\"aria-label\":\"Previous page\",children:/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M10 12L6 8L10 4\",stroke:\"#000\",strokeWidth:\"2\",strokeLinecap:\"round\"})})}),canGoNext&&/*#__PURE__*/_jsx(\"button\",{onClick:e=>{e.stopPropagation();nextPage();},disabled:isAnimating,style:{position:\"absolute\",right:\"20px\",top:\"50%\",transform:\"translateY(-50%)\",width:\"40px\",height:\"40px\",borderRadius:\"50%\",border:\"none\",backgroundColor:\"rgba(255,255,255,0.9)\",boxShadow:\"0 2px 8px rgba(0,0,0,0.15)\",cursor:\"pointer\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",opacity:isAnimating?.5:1,transition:\"opacity 200ms ease\"},\"aria-label\":\"Next page\",children:/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 16 16\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M6 4L10 8L6 12\",stroke:\"#000\",strokeWidth:\"2\",strokeLinecap:\"round\"})})})]}),showPageIndicator&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",bottom:\"20px\",left:\"50%\",transform:\"translateX(-50%)\",padding:\"8px 16px\",backgroundColor:\"rgba(0,0,0,0.6)\",color:\"#FFFFFF\",borderRadius:\"20px\",fontSize:\"12px\",fontFamily:\"system-ui, -apple-system, sans-serif\",fontWeight:500},children:currentPage===-1?`Cover 1 / ${totalPages}`:`${currentPage+1}-${Math.min(currentPage+2,totalPages)} / ${totalPages}`})]});}addPropertyControls(Flipbook3D,{frontCover:{type:ControlType.ResponsiveImage,title:\"Front Cover\",description:\"💡 Tip: If images load slowly on your website, reduce the image quality in Framer's image settings for better performance.\"},frontCoverDisplayType:{type:ControlType.Enum,title:\"Front Display\",options:[\"contain\",\"cover\",\"fill\"],optionTitles:[\"Fit\",\"Fill\",\"Stretch\"],defaultValue:\"cover\",displaySegmentedControl:true},backCover:{type:ControlType.ResponsiveImage,title:\"Back Cover\"},backCoverDisplayType:{type:ControlType.Enum,title:\"Back Display\",options:[\"contain\",\"cover\",\"fill\"],optionTitles:[\"Fit\",\"Fill\",\"Stretch\"],defaultValue:\"cover\",displaySegmentedControl:true},innerPages:{type:ControlType.Array,title:\"Inner Pages\",control:{type:ControlType.ResponsiveImage},maxCount:100},innerPagesDisplayType:{type:ControlType.Enum,title:\"Inner Display\",options:[\"contain\",\"cover\",\"fill\"],optionTitles:[\"Fit\",\"Fill\",\"Stretch\"],defaultValue:\"cover\",displaySegmentedControl:true},backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#EEEEEE\"},bookColor:{type:ControlType.Color,title:\"Book Color\",defaultValue:\"#F8F8F8\",description:\"Background color of the pages. Only visible when images are set to 'Fit' display type and don't fill the entire page area.\"},padding:{type:ControlType.Padding,title:\"Padding\",defaultValue:\"20px\"},aspectRatio:{type:ControlType.Enum,title:\"Aspect Ratio\",description:\"Choose an aspect ratio that matches your images. For best results, use images with consistent aspect ratios throughout your flipbook. Portrait ratios (3:4, 4:5, 5:7) work well for traditional layouts, while square (1:1) suits modern designs. Tip: Use high-quality images (at least 1200px on the longest side) for crisp display.\",options:[\"3/4\",\"4/5\",\"5/7\",\"1/1\"],optionTitles:[\"3:4 (Portrait)\",\"4:5 (Portrait)\",\"5:7 (Portrait)\",\"1:1 (Square)\"],defaultValue:\"3/4\"},borderRadius:{type:ControlType.BorderRadius,title:\"Corner Radius\",defaultValue:\"8px\"},transition:{type:ControlType.Transition,title:\"Page Turn\",defaultValue:{type:\"tween\",duration:.7,ease:\"easeInOut\"}},enableKeyboardNav:{type:ControlType.Boolean,title:\"Keyboard Nav\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},enableSwipeDrag:{type:ControlType.Boolean,title:\"Swipe/Drag\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},showControls:{type:ControlType.Boolean,title:\"Show Controls\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showPageIndicator:{type:ControlType.Boolean,title:\"Page Indicator\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"Built by Matthias \\xd6lschlegel 💪\\n[Explore more components](https://tinyurl.com/yb2f5tkz)\"}});Flipbook3D.displayName=\"Flipbook 3D\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Flipbook3D\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"600\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"800\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Flipbook3D.map","// Text scroll reveal component that animates paragraphs on scroll\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useRef}from\"react\";import{motion,useInView,useScroll,useTransform}from\"framer-motion\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function ScrollReveal(props){const{text=\"This is a sample paragraph that will animate on scroll. Each character will fade from transparent to full color as it comes into view. You can customize the timing of the reveal animation.\",revealDuration=.8,revealDelay=0,staggerDelay=.02,font,textColor=\"#000000\",threshold=.1,triggerPosition=\"middle\",htmlTag=\"p\",style}=props;const containerRef=useRef(null);const isStatic=useIsStaticRenderer();// Calculate offset based on trigger position\nconst getOffset=()=>{switch(triggerPosition){case\"top\":return[\"start 1.0\",\"end 0.0\"];case\"middle\":return[\"start 0.8\",\"end 0.2\"];case\"bottom\":return[\"start 0.6\",\"end 0.4\"];default:return[\"start 0.8\",\"end 0.2\"];}};// Use scroll progress with dynamic offset\nconst{scrollYProgress}=useScroll({target:containerRef,offset:getOffset()});// Split text into paragraphs and then into words\nconst paragraphs=text.split(\"\\n\").filter(p=>p.trim().length>0);// Create word arrays for each paragraph, preserving spaces\nconst paragraphWords=paragraphs.map(paragraph=>{const words=paragraph.split(/(\\s+)/);return words.map((word,index)=>({word,index,isSpace:/^\\s+$/.test(word)}));});// Calculate total word count for progress calculation\nconst totalWords=paragraphWords.reduce((total,words)=>total+words.filter(w=>!w.isSpace).length,0);// Reveal all text when section is in view\nconst inView=useInView(containerRef,{amount:threshold});// Static preview for non-interactive environments\nif(isStatic){return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,position:\"relative\"},children:paragraphs.map((paragraph,index)=>{const Tag=htmlTag;return /*#__PURE__*/_jsx(Tag,{style:{...font,color:textColor,margin:index===paragraphs.length-1?0:\"0 0 1em 0\"},children:paragraph},index);})});}let globalWordIndex=0;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,position:\"relative\"},children:paragraphWords.map((words,paragraphIndex)=>{const Tag=htmlTag;return /*#__PURE__*/_jsx(Tag,{style:{...font,margin:paragraphIndex===paragraphWords.length-1?0:\"0 0 1em 0\",display:\"block\"},children:words.map(({word,isSpace},wordIndex)=>{if(isSpace){return /*#__PURE__*/_jsx(\"span\",{children:word},`${paragraphIndex}-${wordIndex}`);}const currentGlobalIndex=globalWordIndex++;// Calculate when this word should start and finish revealing\nconst wordProgress=currentGlobalIndex/totalWords;const revealStart=wordProgress*.18// Start even earlier for much faster animation\n;const revealEnd=Math.min(.32,revealStart+.06)// Reveal ends much sooner for much faster effect\n;// Transform scroll progress to word opacity\n// REVERT: Animate each word individually based on scroll progress\nconst opacity=useTransform(scrollYProgress,[revealStart,revealEnd],[0,1]);return /*#__PURE__*/_jsx(motion.span,{style:{color:textColor,opacity},children:word},`${paragraphIndex}-${wordIndex}`);})},paragraphIndex);})});}addPropertyControls(ScrollReveal,{text:{type:ControlType.String,title:\"Text\",description:\"Text content to animate. Use line breaks to create multiple paragraphs.\",defaultValue:\"This is a sample paragraph that will animate on scroll. Each character will fade from transparent to full color as it comes into view. You can customize the timing of the reveal animation.\\n\\nThis is a second paragraph that will animate character by character. You can add multiple paragraphs by separating them with line breaks.\",displayTextArea:true},htmlTag:{type:ControlType.Enum,title:\"HTML Tag\",description:\"Semantic HTML element to use for accessibility and SEO.\",options:[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"p\",\"span\"],optionTitles:[\"Heading 1\",\"Heading 2\",\"Heading 3\",\"Heading 4\",\"Heading 5\",\"Heading 6\",\"Paragraph\",\"Span\"],defaultValue:\"p\",displaySegmentedControl:false},triggerPosition:{type:ControlType.Enum,title:\"Trigger Position\",description:\"When the animation starts relative to viewport position.\",options:[\"top\",\"middle\",\"bottom\"],optionTitles:[\"Top\",\"Middle\",\"Bottom\"],defaultValue:\"middle\",displaySegmentedControl:true},revealDuration:{type:ControlType.Number,title:\"Duration\",description:\"Total time for the entire text to fully reveal.\",defaultValue:.8,min:.1,max:3,step:.1,unit:\"s\"},revealDelay:{type:ControlType.Number,title:\"Initial Delay\",description:\"Delay before animation starts after trigger.\",defaultValue:0,min:0,max:2,step:.1,unit:\"s\"},staggerDelay:{type:ControlType.Number,title:\"Character Stagger\",description:\"Time delay between each character's animation start.\",defaultValue:.02,min:0,max:.2,step:.01,unit:\"s\"},threshold:{type:ControlType.Number,title:\"Trigger Threshold\",description:\"How much of the element must be visible to trigger animation.\",defaultValue:.1,min:0,max:1,step:.1,unit:\"%\"},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"16px\",variant:\"Regular\",letterSpacing:\"-0.01em\",lineHeight:\"1.6em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollReveal\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrollReveal_1.map","// Text scroll reveal component that animates paragraphs on scroll\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useRef}from\"react\";import{motion,useScroll,useTransform}from\"framer-motion\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function ScrollReveal(props){const{text=\"This is a sample paragraph that will animate on scroll. Each character will fade from transparent to full color as it comes into view. You can customize the timing of the reveal animation.\",revealDuration=.8,revealDelay=0,staggerDelay=.02,font,textColor=\"#000000\",threshold=.1,triggerPosition=\"middle\",htmlTag=\"p\",style}=props;const containerRef=useRef(null);const isStatic=useIsStaticRenderer();// Calculate offset based on trigger position\nconst getOffset=()=>{switch(triggerPosition){case\"top\":return[\"start 1.0\",\"end 0.0\"];case\"middle\":return[\"start 0.8\",\"end 0.2\"];case\"bottom\":return[\"start 0.6\",\"end 0.4\"];default:return[\"start 0.8\",\"end 0.2\"];}};// Use scroll progress with dynamic offset\nconst{scrollYProgress}=useScroll({target:containerRef,offset:getOffset()});// Split text into paragraphs and then into words\nconst paragraphs=text.split(\"\\n\").filter(p=>p.trim().length>0);// Create word arrays for each paragraph, preserving spaces\nconst paragraphWords=paragraphs.map(paragraph=>{const words=paragraph.split(/(\\s+)/);return words.map((word,index)=>({word,index,isSpace:/^\\s+$/.test(word)}));});// Calculate total word count for progress calculation\nconst totalWords=paragraphWords.reduce((total,words)=>total+words.filter(w=>!w.isSpace).length,0);// Static preview for non-interactive environments\nif(isStatic){return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,position:\"relative\"},children:paragraphs.map((paragraph,index)=>{const Tag=htmlTag;return /*#__PURE__*/_jsx(Tag,{style:{...font,color:textColor,margin:index===paragraphs.length-1?0:\"0 0 1em 0\"},children:paragraph},index);})});}let globalWordIndex=0;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{...style,position:\"relative\"},children:paragraphWords.map((words,paragraphIndex)=>{const Tag=htmlTag;return /*#__PURE__*/_jsx(Tag,{style:{...font,margin:paragraphIndex===paragraphWords.length-1?0:\"0 0 1em 0\",display:\"block\"},children:words.map(({word,isSpace},wordIndex)=>{if(isSpace){return /*#__PURE__*/_jsx(\"span\",{children:word},`${paragraphIndex}-${wordIndex}`);}const currentGlobalIndex=globalWordIndex++;// Calculate when this word should start and finish revealing\n// Make reveal much faster: reduce spread and overlap more\nconst wordProgress=currentGlobalIndex/totalWords;const revealStart=wordProgress*.3// v1: slower, more spread out\n;const revealEnd=Math.min(.7,revealStart+.18)// v1: reveal ends later\n;// Transform scroll progress to word opacity\nconst opacity=useTransform(scrollYProgress,[revealStart,revealEnd],[0,1]);return /*#__PURE__*/_jsx(motion.span,{style:{color:textColor,opacity},children:word},`${paragraphIndex}-${wordIndex}`);})},paragraphIndex);})});}addPropertyControls(ScrollReveal,{text:{type:ControlType.String,title:\"Text\",description:\"Text content to animate. Use line breaks to create multiple paragraphs.\",defaultValue:\"This is a sample paragraph that will animate on scroll. Each character will fade from transparent to full color as it comes into view. You can customize the timing of the reveal animation.\\n\\nThis is a second paragraph that will animate character by character. You can add multiple paragraphs by separating them with line breaks.\",displayTextArea:true},htmlTag:{type:ControlType.Enum,title:\"HTML Tag\",description:\"Semantic HTML element to use for accessibility and SEO.\",options:[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"p\",\"span\"],optionTitles:[\"Heading 1\",\"Heading 2\",\"Heading 3\",\"Heading 4\",\"Heading 5\",\"Heading 6\",\"Paragraph\",\"Span\"],defaultValue:\"p\",displaySegmentedControl:false},triggerPosition:{type:ControlType.Enum,title:\"Trigger Position\",description:\"When the animation starts relative to viewport position.\",options:[\"top\",\"middle\",\"bottom\"],optionTitles:[\"Top\",\"Middle\",\"Bottom\"],defaultValue:\"middle\",displaySegmentedControl:true},revealDuration:{type:ControlType.Number,title:\"Duration\",description:\"Total time for the entire text to fully reveal.\",defaultValue:.8,min:.1,max:3,step:.1,unit:\"s\"},revealDelay:{type:ControlType.Number,title:\"Initial Delay\",description:\"Delay before animation starts after trigger.\",defaultValue:0,min:0,max:2,step:.1,unit:\"s\"},staggerDelay:{type:ControlType.Number,title:\"Character Stagger\",description:\"Time delay between each character's animation start.\",defaultValue:.02,min:0,max:.2,step:.01,unit:\"s\"},threshold:{type:ControlType.Number,title:\"Trigger Threshold\",description:\"How much of the element must be visible to trigger animation.\",defaultValue:.1,min:0,max:1,step:.1,unit:\"%\"},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"16px\",variant:\"Regular\",letterSpacing:\"-0.01em\",lineHeight:\"1.6em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollReveal\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrollReveal.map"],"mappings":"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"}