{"version":3,"file":"PromadeLanguage.Gx2CC9uL.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/vj7bFUjvEQFgEzNBkdoG/vf3CKm378wlVcBk7IhSU/createStore.js","https:/framer.com/m/framer/store.js@^1.0.0","https:/framerusercontent.com/modules/I937hsfenC0s7tM0x1xQ/CaCOsMYU6DaywMlqFe3R/PromadeLanguage.js"],"sourcesContent":["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","import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{forwardRef,useEffect,useRef}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{Link,RenderTarget}from\"framer\";const key=\"promade.language\";const changeEvent=\"promade:language\";const useLanguage=createStore({language:\"zh\",ready:false});export function useSavedLanguage(){const[state,setState]=useLanguage();useEffect(()=>{const sync=()=>{let language=state.language;try{const saved=localStorage.getItem(key);if(saved===\"en\"||saved===\"zh\")language=saved;}catch{}setState({language,ready:true});};sync();const storage=e=>{if(e.key===key)sync();};window.addEventListener(\"storage\",storage);window.addEventListener(changeEvent,sync);return()=>{window.removeEventListener(\"storage\",storage);window.removeEventListener(changeEvent,sync);};},[]);const change=language=>{setState({language,ready:true});try{localStorage.setItem(key,language);}catch{}window.dispatchEvent(new Event(changeEvent));};return[state,change];}// Copy stays authored in Framer; language selection never translates content.\nexport function translate(text,language){return text;}/** One language choice for native pages, CMS pages, and the shared navigation. */export function SiteLanguageBridge({routeId}){const[state,change]=useSavedLanguage();const chinese=useRef(null);const english=useRef(null);const canvas=RenderTarget.current()===RenderTarget.canvas;const isCn=routeId===\"xyr8iH7KV\";const isEn=routeId===\"Ro92fZp3E\";const about=isCn||isEn;// Keep the desktop/tablet About photo inside the usable viewport.\n// The outer column stays the same width, preserving the text layout.\nuseEffect(()=>{if(canvas||!about)return;const selector='[data-framer-name=\"Sticky image\"]';const media=window.matchMedia(\"(min-width: 810px)\");const style=document.createElement(\"style\");style.setAttribute(\"data-promade-about-photo-fit\",\"\");style.textContent=`\n                                                                                                                                                                                                                                                                                                                                                                        @media (min-width: 810px) {\n                                                                                                                                                                                                                                                                                                                                                                                        [data-framer-name=\"Sticky image\"][data-about-photo-fit] {\n                                                                                                                                                                                                                                                                                                                                                                                                            height: var(--about-photo-height) !important;\n                                                                                                                                                                                                                                                                                                                                                                                                                                min-height: 0 !important;\n                                                                                                                                                                                                                                                                                                                                                                                                                                                }\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                [data-framer-name=\"Sticky image\"][data-about-photo-fit] > div {\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    width: var(--about-photo-width) !important;\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        height: 100% !important;\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            max-width: 100% !important;\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            }\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }\n                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                `;document.head.appendChild(style);const observed=new Set;const fit=()=>{document.querySelectorAll(selector).forEach(frame=>{if(!observed.has(frame)){observed.add(frame);observer.observe(frame);}if(!media.matches){frame.removeAttribute(\"data-about-photo-fit\");frame.style.removeProperty(\"--about-photo-height\");frame.style.removeProperty(\"--about-photo-width\");return;}const width=frame.getBoundingClientRect().width;if(!width)return;const top=parseFloat(getComputedStyle(frame).top)||128;const height=Math.min(width/.88,Math.max(1,window.innerHeight-top-64));const photoWidth=height*.88;frame.style.setProperty(\"--about-photo-height\",height+\"px\");frame.style.setProperty(\"--about-photo-width\",photoWidth+\"px\");frame.setAttribute(\"data-about-photo-fit\",\"\");});};const observer=new ResizeObserver(fit);fit();window.addEventListener(\"resize\",fit);const timer=window.setInterval(fit,500);return()=>{window.removeEventListener(\"resize\",fit);window.clearInterval(timer);observer.disconnect();style.remove();observed.forEach(frame=>{frame.removeAttribute(\"data-about-photo-fit\");frame.style.removeProperty(\"--about-photo-height\");frame.style.removeProperty(\"--about-photo-width\");});};},[canvas,about,routeId]);// About service links reuse the existing Works filters on every breakpoint.\nconst works=useRef(null);useEffect(()=>{if(canvas)return;const categories=[[\"brand-identity\",\"Brand Identity\",\"品牌视觉全案\"],[\"wayfinding\",\"Wayfinding\",\"空间导视系统\"],[\"characters-merch\",\"Characters & Merch\",\"IP形象设计\"],[\"product\",\"Product\",\"产品设计\"],[\"graphic\",\"Graphic\",\"平面视觉设计\"],[\"ui-ux\",\"UI/UX\",\"UI/UX 交互\"]];const intentKey=\"promade.aboutCategory\";const cleanups=[];const bound=new WeakSet;const open=index=>{change(isCn?\"zh\":\"en\");try{sessionStorage.setItem(intentKey,JSON.stringify({category:categories[index][0],time:Date.now()}));}catch{}works.current?.click();};const bind=(element,index)=>{if(bound.has(element))return;bound.add(element);const old={role:element.getAttribute(\"role\"),tab:element.getAttribute(\"tabindex\"),cursor:element.style.cursor,label:element.getAttribute(\"aria-label\")};element.setAttribute(\"role\",\"link\");element.setAttribute(\"tabindex\",\"0\");element.setAttribute(\"aria-label\",(isCn?\"查看\":\"View \")+categories[index][isCn?2:1]);element.style.cursor=\"pointer\";const click=e=>{e.preventDefault();e.stopPropagation();open(index);};const keydown=e=>{if(e.key===\"Enter\")click(e);};element.addEventListener(\"click\",click);element.addEventListener(\"keydown\",keydown);cleanups.push(()=>{element.removeEventListener(\"click\",click);element.removeEventListener(\"keydown\",keydown);for(const[attr,value]of[[\"role\",old.role],[\"tabindex\",old.tab],[\"aria-label\",old.label]]){if(value===null)element.removeAttribute(attr);else element.setAttribute(attr,value);}element.style.cursor=old.cursor;});};let finished=false;const scan=()=>{if(about){categories.forEach(([id],index)=>{document.querySelectorAll('[data-framer-name=\"Philosophy\"][id]').forEach(element=>{if(element.id===id||element.id.startsWith(id+\"-\"))bind(element,index);});});document.querySelectorAll('[data-framer-name=\"Project Grid\"]').forEach(grid=>{Array.from(grid.children).slice(0,6).forEach((card,index)=>bind(card,index));});}else if(routeId===\"R0nahnDwO\"&&!finished){let intent=null;try{intent=JSON.parse(sessionStorage.getItem(intentKey)||\"null\");}catch{}if(!intent||Date.now()-intent.time>6e4)return;const category=categories.find(c=>c[0]===intent.category);if(!category)return;const normalize=s=>s.replace(/\\s/g,\"\").toLowerCase();const title=Array.from(document.querySelectorAll('[data-framer-name=\"Title\"]')).find(e=>e.getBoundingClientRect().width>0&&category.slice(1).some(label=>normalize(label)===normalize(e.textContent||\"\"))&&e.parentElement?.hasAttribute(\"tabindex\"));if(!title)return;const filter=title.parentElement;if(filter.getAttribute(\"data-framer-name\")!==\"Active\"){const pointer={bubbles:true,pointerId:1,pointerType:\"mouse\",button:0,isPrimary:true};filter.dispatchEvent(new PointerEvent(\"pointerdown\",pointer));filter.dispatchEvent(new PointerEvent(\"pointerup\",pointer));return;}finished=true;sessionStorage.removeItem(intentKey);const menu=title.parentElement?.parentElement?.parentElement;window.setTimeout(()=>{if(menu?.isConnected){const top=window.scrollY+menu.getBoundingClientRect().top-80;window.scrollTo({top:Math.max(0,top),behavior:\"instant\"});}},350);}};scan();const timer=window.setInterval(scan,250);return()=>{window.clearInterval(timer);cleanups.forEach(fn=>fn());};},[canvas,routeId]);useEffect(()=>{if(canvas)return;const click=event=>{const target=event.target;const control=target.closest(\"a,button,[role=button]\");const label=control?.textContent?.trim().toUpperCase();if(label!==\"中文\"&&label!==\"EN\")return;event.preventDefault();event.stopPropagation();const language=label===\"中文\"?\"zh\":\"en\";change(language);if(about&&(language===\"zh\"&&!isCn||language===\"en\"&&!isEn)){(language===\"zh\"?chinese:english).current?.click();}};document.addEventListener(\"click\",click,true);return()=>document.removeEventListener(\"click\",click,true);},[canvas,routeId,state.language]);useEffect(()=>{if(canvas||!state.ready)return;if(about&&(state.language===\"zh\"&&!isCn||state.language===\"en\"&&!isEn)){(state.language===\"zh\"?chinese:english).current?.click();}},[canvas,routeId,state.ready,state.language]);return /*#__PURE__*/_jsxs(\"span\",{\"aria-hidden\":\"true\",style:{display:\"none\"},\"data-language-control\":true,children:[/*#__PURE__*/_jsx(Link,{href:\"/meridian-brand-identity\",children:/*#__PURE__*/_jsx(\"a\",{ref:works,href:\"/meridian-brand-identity\",tabIndex:-1,children:\"Works category\"})}),/*#__PURE__*/_jsx(Link,{href:\"/about-cn\",children:/*#__PURE__*/_jsx(\"a\",{ref:chinese,href:\"/about-cn\",tabIndex:-1,children:\"中文页面\"})}),/*#__PURE__*/_jsx(Link,{href:\"/about-en\",children:/*#__PURE__*/_jsx(\"a\",{ref:english,href:\"/about-en\",tabIndex:-1,children:\"English page\"})})]});}export function withChinese(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[state,change]=useSavedLanguage();return /*#__PURE__*/_jsx(Component,{...props,ref:ref,role:\"button\",tabIndex:0,\"aria-label\":\"切换为中文\",\"aria-pressed\":state.language===\"zh\",style:{...props.style,cursor:\"pointer\"},onClick:()=>change(\"zh\"),onKeyDown:event=>{if(event.key===\"Enter\"||event.key===\" \"){event.preventDefault();change(\"zh\");}}});});}export function withEnglish(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[state,change]=useSavedLanguage();return /*#__PURE__*/_jsx(Component,{...props,ref:ref,role:\"button\",tabIndex:0,\"aria-label\":\"Switch to English\",\"aria-pressed\":state.language===\"en\",style:{...props.style,cursor:\"pointer\"},onClick:()=>change(\"en\"),onKeyDown:event=>{if(event.key===\"Enter\"||event.key===\" \"){event.preventDefault();change(\"en\");}}});});}export function withChineseText(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[state]=useSavedLanguage();return state.language!==\"en\"?/*#__PURE__*/_jsx(Component,{...props,ref:ref}):null;});}export function withEnglishText(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[state]=useSavedLanguage();return state.language===\"en\"?/*#__PURE__*/_jsx(Component,{...props,ref:ref}):null;});}export function withAllWork(Component){return /*#__PURE__*/forwardRef((props,ref)=>{const[state]=useSavedLanguage();return /*#__PURE__*/_jsx(Component,{...props,ref:ref,text:state.language===\"en\"?\"All Work\":\"全部\"});});}\nexport const __FramerMetadata__ = {\"exports\":{\"useSavedLanguage\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEnglishText\":{\"type\":\"reactHoc\",\"name\":\"withEnglishText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withChinese\":{\"type\":\"reactHoc\",\"name\":\"withChinese\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withAllWork\":{\"type\":\"reactHoc\",\"name\":\"withAllWork\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withEnglish\":{\"type\":\"reactHoc\",\"name\":\"withEnglish\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SiteLanguageBridge\":{\"type\":\"reactComponent\",\"name\":\"SiteLanguageBridge\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"withChineseText\":{\"type\":\"reactHoc\",\"name\":\"withChineseText\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"translate\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./PromadeLanguage.map"],"mappings":"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"}