{"version":3,"file":"Gallery_Variable.s-twPyLe.mjs","names":["React.useState","React.useRef","React.useMemo","React.useCallback","current","best","p"],"sources":["https:/framerusercontent.com/modules/gG25wvS9yU1Elf5xBgKu/jnN8mOG2MHdk8MO8rzQm/Gallery_Variable.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";function useIsCoarsePointer(){const[coarse,setCoarse]=React.useState(false);React.useEffect(()=>{if(typeof window===\"undefined\"||!window.matchMedia)return;const mq=window.matchMedia(\"(pointer: coarse)\");const update=()=>setCoarse(!!mq.matches);update();mq.addEventListener?.(\"change\",update);return()=>mq.removeEventListener?.(\"change\",update);},[]);return coarse;}function useViewportUnit(){const[unit,setUnit]=React.useState(\"vh\");React.useEffect(()=>{if(typeof window===\"undefined\"||!window.CSS?.supports)return;const supports=window.CSS.supports(\"height: 1dvh\");setUnit(supports?\"dvh\":\"vh\");},[]);return unit;}function useIsNarrow(maxWidth){const[narrow,setNarrow]=React.useState(false);React.useEffect(()=>{if(typeof window===\"undefined\")return;const calc=()=>setNarrow(window.innerWidth<=maxWidth);calc();window.addEventListener(\"resize\",calc);return()=>window.removeEventListener(\"resize\",calc);},[maxWidth]);return narrow;}function resolveFramerLinkToHref(linkValue){if(!linkValue)return null;if(typeof linkValue===\"string\")return linkValue;const directKeys=[\"href\",\"url\",\"path\",\"pathname\",\"to\"];for(const k of directKeys){const v=linkValue?.[k];if(typeof v===\"string\"&&v.trim())return v;}for(const key of Object.keys(linkValue)){const v=linkValue[key];if(typeof v===\"string\"){if(v.startsWith(\"/\")||v.startsWith(\"http\"))return v;}}return null;}/* ===================== Buttons ===================== */function TextButton({label,onClick}){const[hover,setHover]=React.useState(false);const style={fontFamily:\"Geist, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial\",fontWeight:500,fontSize:14,lineHeight:\"16px\",letterSpacing:\"0.01em\",textTransform:\"lowercase\",color:hover?\"rgba(0,0,0,0.65)\":\"#000\",background:\"transparent\",border:\"none\",padding:0,cursor:\"pointer\",userSelect:\"none\",WebkitUserSelect:\"none\",textDecoration:\"underline\",textUnderlineOffset:2,transition:\"color 140ms ease\"};return /*#__PURE__*/_jsx(\"button\",{type:\"button\",style:style,onClick:onClick,onPointerEnter:()=>setHover(true),onPointerLeave:()=>setHover(false),children:label});}function ButtonRow(props){const email=props.email??\"hello@example.com\";const subject=props.subject??\"\";const mailto=`mailto:${encodeURIComponent(email)}${subject?`?subject=${encodeURIComponent(subject)}`:\"\"}`;const isMobile=useIsNarrow(480);const go=linkValue=>{const href=resolveFramerLinkToHref(linkValue);if(!href)return;window.location.href=href;};const wrapStyle={width:\"100%\",boxSizing:\"border-box\",paddingLeft:props.paddingX,paddingRight:props.paddingX,marginTop:props.marginTop};return /*#__PURE__*/_jsx(\"div\",{style:wrapStyle,children:!isMobile?/*#__PURE__*/_jsxs(\"div\",{style:styles.rowDesktop,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.left,children:[/*#__PURE__*/_jsx(TextButton,{label:\"previous\",onClick:()=>go(props.previousLink)}),/*#__PURE__*/_jsx(TextButton,{label:\"next\",onClick:()=>go(props.nextLink)})]}),/*#__PURE__*/_jsx(\"div\",{style:{flex:1}}),/*#__PURE__*/_jsx(TextButton,{label:\"inquiries\",onClick:()=>window.location.href=mailto})]}):/*#__PURE__*/_jsxs(\"div\",{style:styles.rowMobile,children:[/*#__PURE__*/_jsxs(\"div\",{style:styles.left,children:[/*#__PURE__*/_jsx(TextButton,{label:\"previous\",onClick:()=>go(props.previousLink)}),/*#__PURE__*/_jsx(TextButton,{label:\"next\",onClick:()=>go(props.nextLink)})]}),/*#__PURE__*/_jsx(TextButton,{label:\"inquiries\",onClick:()=>window.location.href=mailto})]})});}const styles={rowDesktop:{width:\"100%\",display:\"flex\",alignItems:\"center\",gap:20},rowMobile:{width:\"100%\",display:\"flex\",flexDirection:\"column\",alignItems:\"flex-start\",gap:12},left:{display:\"flex\",alignItems:\"center\",gap:20}};/* ===================== Gallery ===================== */export default function InfiniteGalleryWithThumbs(props){const{items,heightPercent,thumbHeight,clickStep,previousLink,nextLink,email,subject,thumbsOffsetUnderSlider,buttonsOffsetUnderThumbs,buttonsPaddingX}=props;const containerRef=React.useRef(null);const total=items.length;const loopItems=React.useMemo(()=>[...items,...items,...items],[items]);const[activeIndex,setActiveIndex]=React.useState(0);const vhUnit=useViewportUnit();const isMobile=useIsNarrow(480);// ✅ Change: treat mobile as coarse so it snaps slide-by-slide\nconst isCoarse=useIsCoarsePointer()||isMobile;// Desktop/Tablet bleibt wie vorher: GAP=3\n// Mobile: kein Rand/Spalt -> GAP=0\nconst GAP=isMobile?0:3;const responsiveThumbHeight=isCoarse?Math.max(40,Math.round(thumbHeight*.75)):thumbHeight;const downRef=React.useRef(null);const movedRef=React.useRef(false);const TAP_THRESHOLD=10;const scrollEndTimer=React.useRef(null);const normalizeLoop=React.useCallback(()=>{const el=containerRef.current;if(!el)return;const third=el.scrollWidth/3;if(el.scrollLeft<third*.5)el.scrollLeft+=third;else if(el.scrollLeft>third*1.5)el.scrollLeft-=third;},[]);const getStep=React.useCallback(()=>{const el=containerRef.current;if(!el)return 0;if(isCoarse)return el.clientWidth||1;return clickStep>0?clickStep:Math.max(240,Math.round(el.clientWidth*.55));},[clickStep,isCoarse]);const scrollToNearestSlide=React.useCallback(()=>{const el=containerRef.current;if(!el||total===0)return;const w=el.clientWidth||1;const target=Math.round(el.scrollLeft/w)*w;el.scrollTo({left:target,behavior:\"smooth\"});window.setTimeout(normalizeLoop,250);},[normalizeLoop,total]);const scrollByAmount=React.useCallback(delta=>{const el=containerRef.current;if(!el)return;el.scrollTo({left:el.scrollLeft+delta,behavior:\"smooth\"});window.setTimeout(normalizeLoop,250);},[normalizeLoop]);React.useEffect(()=>{const el=containerRef.current;if(!el)return;const jumpMiddle=()=>{el.scrollLeft=el.scrollWidth/3;if(isCoarse)window.setTimeout(scrollToNearestSlide,0);};jumpMiddle();window.addEventListener(\"resize\",jumpMiddle);return()=>window.removeEventListener(\"resize\",jumpMiddle);},[isCoarse,scrollToNearestSlide]);React.useEffect(()=>{if(isCoarse)return;const onKeyDown=e=>{if([\"input\",\"textarea\"].includes(e.target?.tagName?.toLowerCase()))return;if(e.key===\"ArrowLeft\"){e.preventDefault();scrollByAmount(-getStep());}if(e.key===\"ArrowRight\"){e.preventDefault();scrollByAmount(getStep());}};window.addEventListener(\"keydown\",onKeyDown);return()=>window.removeEventListener(\"keydown\",onKeyDown);},[getStep,scrollByAmount,isCoarse]);const onScroll=()=>{const el=containerRef.current;if(!el||total===0)return;normalizeLoop();if(isCoarse){const w=el.clientWidth||1;const idx=Math.round(el.scrollLeft/w)%total;setActiveIndex((idx+total)%total);}else{const avg=el.scrollWidth/loopItems.length;const idx=Math.round(el.scrollLeft/avg)%total;setActiveIndex((idx+total)%total);}if(isCoarse){if(scrollEndTimer.current)window.clearTimeout(scrollEndTimer.current);scrollEndTimer.current=window.setTimeout(scrollToNearestSlide,90);}};const onPointerDown=e=>{downRef.current={x:e.clientX,y:e.clientY};movedRef.current=false;};const onPointerMove=e=>{if(!downRef.current)return;if(Math.abs(e.clientX-downRef.current.x)>TAP_THRESHOLD||Math.abs(e.clientY-downRef.current.y)>TAP_THRESHOLD)movedRef.current=true;};const onPointerUp=e=>{if(movedRef.current)return;const rect=e.currentTarget.getBoundingClientRect();const x=(e.clientX-rect.left)/rect.width;const step=getStep();if(!step)return;scrollByAmount(x<.5?-step:step);};const scrollToIndex=targetIndex=>{const el=containerRef.current;if(!el||total===0)return;if(isCoarse){const w=el.clientWidth||1;const current=el.scrollLeft;const candidates=[targetIndex,targetIndex+total,targetIndex+total*2].map(i=>i*w);const best=candidates.reduce((a,b)=>Math.abs(b-current)<Math.abs(a-current)?b:a);el.scrollTo({left:best,behavior:\"smooth\"});window.setTimeout(()=>{normalizeLoop();scrollToNearestSlide();},250);return;}const avg=el.scrollWidth/loopItems.length;const current=el.scrollLeft;const candidates=[targetIndex,targetIndex+total,targetIndex+total*2].map(i=>i*avg);const best=candidates.reduce((a,b)=>Math.abs(b-current)<Math.abs(a-current)?b:a);el.scrollTo({left:best,behavior:\"smooth\"});window.setTimeout(normalizeLoop,250);};return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",overflow:\"hidden\",// Desktop/Tablet: exakt wie vorher\nheight:!isMobile?`${heightPercent}${vhUnit}`:undefined,// ✅ Mobile: immer 4:5 (statt 1:1)\naspectRatio:isMobile?\"4 / 5\":undefined},children:/*#__PURE__*/_jsxs(\"div\",{ref:containerRef,onScroll:onScroll,onPointerDown:onPointerDown,onPointerMove:onPointerMove,onPointerUp:onPointerUp,style:{height:\"100%\",display:\"flex\",alignItems:\"center\",overflowX:\"auto\",overflowY:\"hidden\",gap:GAP,WebkitOverflowScrolling:\"touch\",scrollbarWidth:\"none\",touchAction:\"pan-x pan-y\",cursor:isCoarse?\"auto\":\"default\",scrollSnapType:isCoarse?\"x mandatory\":\"none\"},children:[/*#__PURE__*/_jsx(\"style\",{children:`div::-webkit-scrollbar{display:none}`}),loopItems.map((item,i)=>{const isImage=item.type===\"image\";const src=isImage?item.image:item.video;// Desktop/Tablet: contain wie vorher.\n// Mobile: cover für edge-to-edge cropping\nconst fit=isMobile?\"cover\":\"contain\";return /*#__PURE__*/_jsx(\"div\",{style:{flex:isCoarse?\"0 0 100%\":\"0 0 auto\",width:isCoarse?\"100%\":\"auto\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",scrollSnapAlign:isCoarse?\"center\":\"none\",pointerEvents:\"none\"},children:isImage?/*#__PURE__*/_jsx(\"img\",{src:src,draggable:false,style:{height:\"100%\",width:\"100%\",objectFit:fit,display:\"block\"}}):/*#__PURE__*/_jsx(\"video\",{src:src,poster:item.poster,muted:true,loop:true,autoPlay:true,playsInline:true,style:{height:\"100%\",width:\"100%\",objectFit:fit,display:\"block\"}})},i);})]})}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:responsiveThumbHeight,display:\"flex\",alignItems:\"center\",overflowX:\"auto\",gap:3,marginTop:thumbsOffsetUnderSlider},children:items.map((item,i)=>{const isImage=item.type===\"image\";const src=isImage?item.image:item.video;const isActive=i===activeIndex;return /*#__PURE__*/_jsx(\"div\",{onClick:()=>scrollToIndex(i),style:{height:\"100%\",cursor:\"pointer\",opacity:isActive?1:.4,border:isActive?\"1px solid rgba(0,0,0,0.55)\":\"1px solid transparent\",transition:\"opacity 0.2s ease, border 0.2s ease\",flex:\"0 0 auto\"},children:isImage?/*#__PURE__*/_jsx(\"img\",{src:src,draggable:false,style:{height:\"100%\",width:\"auto\",objectFit:\"cover\",display:\"block\"}}):/*#__PURE__*/_jsx(\"video\",{src:src,muted:true,playsInline:true,style:{height:\"100%\",width:\"auto\",objectFit:\"cover\",display:\"block\"}})},i);})}),!isMobile&&/*#__PURE__*/_jsx(ButtonRow,{previousLink:previousLink,nextLink:nextLink,email:email,subject:subject,paddingX:buttonsPaddingX,marginTop:buttonsOffsetUnderThumbs})]});}InfiniteGalleryWithThumbs.defaultProps={items:[],heightPercent:65,thumbHeight:64,clickStep:0,previousLink:undefined,nextLink:undefined,email:\"hello@example.com\",subject:\"\",thumbsOffsetUnderSlider:3,buttonsOffsetUnderThumbs:20,buttonsPaddingX:20};addPropertyControls(InfiniteGalleryWithThumbs,{items:{type:ControlType.Array,title:\"Items\",propertyControl:{type:ControlType.Object,controls:{type:{type:ControlType.Enum,options:[\"image\",\"video\"],optionTitles:[\"Image\",\"Video\"],defaultValue:\"image\"},image:{type:ControlType.Image,title:\"Image\",hidden:p=>p.type!==\"image\"},video:{type:ControlType.File,title:\"Video\",allowedFileTypes:[\"mp4\",\"mov\",\"webm\"],hidden:p=>p.type!==\"video\"},poster:{type:ControlType.Image,title:\"Poster\",hidden:p=>p.type!==\"video\"}}}},heightPercent:{type:ControlType.Number,title:\"Main Height (vh)\",min:40,max:90,step:1,defaultValue:65},thumbHeight:{type:ControlType.Number,title:\"Thumb Height (px)\",min:40,max:120,step:2,defaultValue:64},clickStep:{type:ControlType.Number,title:\"Click step (px)\",min:0,max:2e3,step:10,defaultValue:0},previousLink:{type:ControlType.Link,title:\"previous page\"},nextLink:{type:ControlType.Link,title:\"next page\"},email:{type:ControlType.String,title:\"inquiries email\",defaultValue:\"hello@example.com\"},subject:{type:ControlType.String,title:\"mail subject\",defaultValue:\"\"},thumbsOffsetUnderSlider:{type:ControlType.Number,title:\"Abstand Bild → Thumbs\",min:0,max:40,step:1,defaultValue:3},buttonsOffsetUnderThumbs:{type:ControlType.Number,title:\"Abstand Thumbs → Buttons\",min:0,max:200,step:1,defaultValue:20},buttonsPaddingX:{type:ControlType.Number,title:\"Buttons Padding X\",min:0,max:80,step:1,defaultValue:20}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"InfiniteGalleryWithThumbs\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Gallery_Variable.map"],"mappings":"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"}