{"version":3,"file":"Menu_code.BfEBREV8.mjs","names":["React.useContext","React.useMemo","React.Fragment","useRef","React.useId","RichText","useStore","useState","React.useCallback"],"sources":["https:/framerusercontent.com/modules/pOhgGSbsM4wQ2P0ozICa/1RAy87qFoGAx33pkJ8Zj/FYoJwe51v.js","https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/28rXvpPsrum7FH6cMELS/1jCAazZw1EGHjrG5Nu5D/Utils.js","https:/framer.com/m/framer/utils.js@^0.9.0","https:/framerusercontent.com/modules/WY2K8LTpCgojw3Av637A/FcHw2gTf0gEaxnwcIORL/Menu_code.js"],"sourcesContent":["// Generated by Framer (cc3b8f8)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,Link,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";const cycleOrder=[\"dhGLtaia_\",\"NltIF7TEJ\"];const serializationHash=\"framer-zjD6s\";const variantClassNames={dhGLtaia_:\"framer-v-sl05km\",NltIF7TEJ:\"framer-v-1qo03ea\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const AIY9og7Pe=undefined;const h_iKPUYy2=undefined;const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={Active:\"NltIF7TEJ\",Inactive:\"dhGLtaia_\"};const getProps=({height,id,link,title,width,...props})=>{return{...props,AIY9og7Pe:link??props.AIY9og7Pe,h_iKPUYy2:title??props.h_iKPUYy2??\"Starters\",variant:humanReadableVariantMap[props.variant]??props.variant??\"dhGLtaia_\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,h_iKPUYy2,AIY9og7Pe,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"dhGLtaia_\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(Link,{href:AIY9og7Pe,motionChild:true,nodeId:\"dhGLtaia_\",openInNewTab:false,scopeId:\"FYoJwe51v\",smoothScroll:true,children:/*#__PURE__*/_jsx(motion.a,{...restProps,...gestureHandlers,className:`${cx(scopingClassNames,\"framer-sl05km\",className,classNames)} framer-1gmme4`,\"data-border\":true,\"data-framer-name\":\"Inactive\",layoutDependency:layoutDependency,layoutId:\"dhGLtaia_\",ref:refBinding,style:{\"--border-bottom-width\":\"2px\",\"--border-color\":\"rgba(50, 50, 50, 0.67)\",\"--border-left-width\":\"2px\",\"--border-right-width\":\"2px\",\"--border-style\":\"solid\",\"--border-top-width\":\"2px\",borderBottomLeftRadius:24,borderBottomRightRadius:24,borderTopLeftRadius:24,borderTopRightRadius:24,...style},variants:{NltIF7TEJ:{\"--border-color\":\"rgba(130, 130, 130, 0.67)\"}},...addPropertyOverrides({NltIF7TEJ:{\"data-framer-name\":\"Active\"}},baseVariant,gestureVariant),children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NVjI7U0YgUHJvIERpc3BsYXkgTWVkaXVt\",\"--framer-font-family\":'\"SF Pro Display Medium\", \"SF Pro Display Medium Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.7))\"},children:\"Starters\"})}),className:\"framer-1qxxize\",fonts:[\"CUSTOMV2;SF Pro Display Medium\"],layoutDependency:layoutDependency,layoutId:\"MFg1yw2Vc\",style:{\"--extracted-r6o4lv\":\"rgba(255, 255, 255, 0.7)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:h_iKPUYy2,variants:{NltIF7TEJ:{\"--extracted-r6o4lv\":\"rgb(255, 255, 255)\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({NltIF7TEJ:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{dir:\"auto\",style:{\"--font-selector\":\"Q1VTVE9NVjI7U0YgUHJvIERpc3BsYXkgTWVkaXVt\",\"--framer-font-family\":'\"SF Pro Display Medium\", \"SF Pro Display Medium Placeholder\", sans-serif',\"--framer-font-size\":\"14px\",\"--framer-font-weight\":\"500\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(255, 255, 255))\"},children:\"Starters\"})})}},baseVariant,gestureVariant)})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-zjD6s.framer-1gmme4, .framer-zjD6s .framer-1gmme4 { display: block; }\",\".framer-zjD6s.framer-sl05km { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; padding: 10px 16px 10px 16px; position: relative; text-decoration: none; width: min-content; }\",\".framer-zjD6s .framer-1qxxize { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",'.framer-zjD6s[data-border=\"true\"]::after, .framer-zjD6s [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; corner-shape: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 37\n * @framerIntrinsicWidth 80\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"auto\",\"auto\"]},\"NltIF7TEJ\":{\"layout\":[\"auto\",\"auto\"]}}}\n * @framerVariables {\"h_iKPUYy2\":\"title\",\"AIY9og7Pe\":\"link\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerFYoJwe51v=withCSS(Component,css,\"framer-zjD6s\");export default FramerFYoJwe51v;FramerFYoJwe51v.displayName=\"menu_category_chip\";FramerFYoJwe51v.defaultProps={height:37,width:80};addPropertyControls(FramerFYoJwe51v,{variant:{options:[\"dhGLtaia_\",\"NltIF7TEJ\"],optionTitles:[\"Inactive\",\"Active\"],title:\"Variant\",type:ControlType.Enum},h_iKPUYy2:{defaultValue:\"Starters\",title:\"Title\",type:ControlType.String},AIY9og7Pe:{title:\"Link\",type:ControlType.Link}});addFonts(FramerFYoJwe51v,[{explicitInter:true,fonts:[{cssFamilyName:\"SF Pro Display Medium\",source:\"custom\",style:\"normal\",uiFamilyName:\"SF Pro Display\",url:\"https://framerusercontent.com/assets/4dHyE8XO4t3U9N6doKwQ3wgBTgM.woff2\",weight:\"500\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerFYoJwe51v\",\"slots\":[],\"annotations\":{\"framerColorSyntax\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"80\",\"framerIntrinsicHeight\":\"37\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]},\\\"NltIF7TEJ\\\":{\\\"layout\\\":[\\\"auto\\\",\\\"auto\\\"]}}}\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerVariables\":\"{\\\"h_iKPUYy2\\\":\\\"title\\\",\\\"AIY9og7Pe\\\":\\\"link\\\"}\",\"framerContractVersion\":\"1\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FYoJwe51v.map","import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map","/*\n * createStore (framer/store@1.0.1)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js\"\n","export const centerContent = {\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\"\n};\nexport const autoSizingText = {\n    width: \"max-content\",\n    wordBreak: \"break-word\",\n    overflowWrap: \"break-word\",\n    overflow: \"hidden\",\n    whiteSpace: \"pre-wrap\",\n    flexShrink: 0\n};\nexport const defaultContainerStyles = {\n    ...centerContent,\n    overflow: \"hidden\"\n};\nexport const containerStyles = defaultContainerStyles;\nexport const randomColor = ()=>\"#\" + Math.floor(Math.random() * 16777215).toString(16)\n;\n\nexport const __FramerMetadata__ = {\"exports\":{\"centerContent\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"containerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"autoSizingText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"defaultContainerStyles\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"randomColor\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}}}}\n//# sourceMappingURL=./Utils.map","/*\n * Utils (framer/utils@0.9.0)\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/28rXvpPsrum7FH6cMELS/1jCAazZw1EGHjrG5Nu5D/Utils.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{randomColor}from\"https://framer.com/m/framer/utils.js@^0.9.0\";import*as React from\"react\";import{useEffect,useRef}from\"react\";// Learn more: https://www.framer.com/developers/overrides/\nconst useStore=createStore({background:\"#0099FF\"});export function withRotate(Component){return /*#__PURE__*/forwardRef((props,ref)=>{return /*#__PURE__*/_jsx(Component,{ref:ref,...props,animate:{rotate:90},transition:{duration:2}});});}export function withHover(Component){return /*#__PURE__*/forwardRef((props,ref)=>{return /*#__PURE__*/_jsx(Component,{ref:ref,...props,whileHover:{scale:1.05}});});}export function withRandomColor(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[store,setStore]=useStore();return /*#__PURE__*/_jsx(Component,{ref:ref,...props,animate:{background:store.background},onClick:()=>{setStore({background:randomColor()});}});});}/**\n * Вешай на кликабельную обёртку карточки блюда (перед переходом)\n * Сохраняет скролл максимально рано, чтобы на мобильных успеть до навигации.\n */export function rememberMenuScroll(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const save=()=>{try{sessionStorage.setItem(\"menuScrollY\",String(window.scrollY||0));sessionStorage.setItem(\"menuScrollTS\",String(Date.now()));}catch{}};const onPointerDown=e=>{save();props?.onPointerDown?.(e);};const onTouchStart=e=>{save();props?.onTouchStart?.(e);};const onMouseDown=e=>{save();props?.onMouseDown?.(e);};return /*#__PURE__*/_jsx(Component,{ref:ref,...props,onPointerDown:onPointerDown,onTouchStart:onTouchStart,onMouseDown:onMouseDown});});}/**\n * Вешай на корневой контейнер страницы меню (или корень scroll-контейнера, если скролл не у window)\n * Восстанавливает скролл при каждом “возврате”/активации страницы (мобилки, back, bfcache).\n */export function restoreMenuScroll(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const tryRestore=React.useCallback(()=>{let y=0;let ts=0;try{y=Number(sessionStorage.getItem(\"menuScrollY\")||\"0\");ts=Number(sessionStorage.getItem(\"menuScrollTS\")||\"0\");}catch{}// если нет сохранения — нечего делать\n//if (y == 0) return\nconsole.log(y);// защита от очень старых значений (например, если пользователь ушёл давно)\nif(ts&&Date.now()-ts>3*60*1e3)return;const start=Date.now();const attempt=()=>{// ждём, пока CMS/страница станет достаточно высокой\nconst okHeight=document.documentElement.scrollHeight>=y+window.innerHeight-8;window.scrollTo({top:y,behavior:\"auto\"});// считаем “успешно”, когда реально доскроллили близко к y\nconst closeEnough=Math.abs((window.scrollY||0)-y)<6;try{sessionStorage.setItem(\"menuScrollY\",String(0));sessionStorage.setItem(\"menuScrollTS\",String(Date.now()));}catch{}if(okHeight&&closeEnough||Date.now()-start>2500){// чистим только после попытки (и лучше после успеха)\nif(closeEnough){try{sessionStorage.removeItem(\"menuScrollY\");sessionStorage.removeItem(\"menuScrollTS\");}catch{}}return;}requestAnimationFrame(attempt);};requestAnimationFrame(attempt);},[]);React.useEffect(()=>{// первичная попытка\nconst t=setTimeout(tryRestore,0);// важные события для мобилок / back / bfcache\nconst onPageShow=()=>tryRestore();const onPopState=()=>tryRestore();const onVis=()=>{if(document.visibilityState===\"visible\")tryRestore();};window.addEventListener(\"pageshow\",onPageShow);window.addEventListener(\"popstate\",onPopState);document.addEventListener(\"visibilitychange\",onVis);return()=>{clearTimeout(t);window.removeEventListener(\"pageshow\",onPageShow);window.removeEventListener(\"popstate\",onPopState);document.removeEventListener(\"visibilitychange\",onVis);};},[tryRestore]);return /*#__PURE__*/_jsx(Component,{ref:ref,...props});});}/**\n * An override that automatically scrolls the active navigation item into view\n * within a horizontal scroll container when the main page is scrolled.\n */// Use forwardRef to get a direct handle on the underlying DOM element of the collection\nexport function ScrollNavOnView(Component){return props=>{const containerRef=props.innerRef||useRef(null);useEffect(()=>{const handleScroll=()=>{const containerEl=containerRef.current;if(!containerEl){// If the element isn't ready yet, try checking again shortly\nconsole.log(\"LOG: Container ref not assigned yet, trying again in 100ms.\");setTimeout(handleScroll,100);return;}// Now containerEl is guaranteed to be an HTMLElement\nconst activeChip=containerEl.querySelector('[data-framer-name=\"Active\"]');if(activeChip){console.log(234);activeChip.scrollIntoView({behavior:\"smooth\",block:\"center\",inline:\"center\"});}};// Listen for scroll events on the main window\nwindow.addEventListener(\"scroll\",handleScroll);handleScroll()// Run on initial load, which triggers the timeout if needed\n;return()=>{// Clean up the event listener\nwindow.removeEventListener(\"scroll\",handleScroll);};},[]);return /*#__PURE__*/_jsx(Component,{...props,innerRef:containerRef});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withRotate\":{\"type\":\"reactHoc\",\"name\":\"withRotate\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"ScrollNavOnView\":{\"type\":\"reactHoc\",\"name\":\"ScrollNavOnView\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"restoreMenuScroll\":{\"type\":\"reactHoc\",\"name\":\"restoreMenuScroll\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"rememberMenuScroll\":{\"type\":\"reactHoc\",\"name\":\"rememberMenuScroll\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withRandomColor\":{\"type\":\"reactHoc\",\"name\":\"withRandomColor\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withHover\":{\"type\":\"reactHoc\",\"name\":\"withHover\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Menu_code.map"],"mappings":"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"}