{"version":3,"file":"Flipbook3D.Cg2UdNUI.mjs","names":["useState","useRef","useMemo","useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/OxH4WR8bc9mUv71N3NKG/qZ4Zt0YHuYRtfwppBHsY/Flipbook3D.js"],"sourcesContent":["// 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"],"mappings":"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"}