{"version":3,"file":"shared-lib.D7Vfbcyu.mjs","names":["useRef","useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/I2y736B4K1ot4o7ub75Q/laWbE6gQIBauU5Lamvzh/CookieBanner.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{createPortal}from\"react-dom\";import{addPropertyControls,ControlType,useIsStaticRenderer,useLocaleInfo}from\"framer\";// --- i18n:begin (generated from TVP_I18n.ts; dictionary filled from the approved Traditional Chinese CSV) ---\n// English -> Traditional Chinese (Hong Kong) dictionary. Filled from Whisper's approved banner copy (Cookie橫幅文案_Whisper_2026-10-12.md, C1-C11); missing keys fall back to English.\nconst ZH={\"Cookies on this site\":\"本網站的 Cookie\",\"We use analytics cookies to see how visitors use this site, and advertising cookies from Google, Meta and LinkedIn to measure our campaigns. Necessary storage keeps the site and its forms working.\":\"我們使用分析類 Cookie，了解訪客怎樣使用本網站；並使用 Google、Meta 和 LinkedIn 的廣告類 Cookie，衡量我們的推廣活動。必要儲存讓網站和表單正常運作。\",\"You can change your cookie choices at any time through ‘Cookie settings’ in the footer.\":\"你可隨時透過頁尾的「Cookie 設定」更改你的 Cookie 選擇。\",\"Accept all\":\"接受全部\",\"Reject non-essential\":\"拒絕非必要項目\",\"Manage choices\":\"管理選擇\",\"Necessary\":\"必要\",\"Always on. Keeps the site, its forms and your choice working.\":\"一律啟用。讓網站、表單和你的選擇正常運作。\",\"Analytics\":\"分析\",\"Google Analytics. Shows us which pages are useful.\":\"Google Analytics。讓我們知道哪些頁面有用。\",\"Advertising\":\"廣告\",\"Google Ads, Meta Pixel, LinkedIn Insight Tag. Measures whether our campaigns lead to enquiries.\":\"Google Ads、Meta Pixel、LinkedIn Insight Tag。衡量我們的推廣活動是否帶來查詢。\",\"Save choices\":\"儲存選擇\",\"Read our privacy policy\":\"閱讀私隱政策\",\"Cookie settings\":\"Cookie 設定\"};const SKIP=new Set([\"icon\",\"id\",\"key\",\"src\",\"logo\",\"url\",\"type\",\"k\",\"img\",\"image\",\"color\",\"slug\",\"icons\",\"anchor\",\"platform\",\"mark\",\"kind\",\"service\"]);const PATH=/^\\/[A-Za-z0-9\\-_\\/#?=&.%]*$/;const ID_TOKEN=/^[a-z][a-z0-9_-]*$/;/**\n * useI18n() -> { t, h, tr, zh, base }\n *  t(\"English\")  : the Chinese string when the active locale is Chinese and one exists, else the input.\n *  h(\"/about\")   : internal link with the locale prefix (\"/zh/about\"); other links unchanged.\n *  tr(value)     : deep-translates strings in arrays/objects; internal paths get the locale prefix.\n *  base          : the locale prefix (\"\" for English, \"/zh\" for Chinese).\n */function useI18n(){const{activeLocale}=useLocaleInfo();const code=(activeLocale?.code||\"\").toLowerCase();const zh=code.startsWith(\"zh\");const slug=zh?(activeLocale?.slug||\"zh\").replace(/^\\/+|\\/+$/g,\"\"):\"\";const base=slug?`/${slug}`:\"\";const t=s=>{if(!zh||!s)return s;const m=/^(\\s*)([\\s\\S]*?)(\\s*)$/.exec(s);const v=m?ZH[m[2]]:undefined;return v&&m?m[1]+v+m[3]:s;};const h=href=>{if(!base||typeof href!==\"string\"||!href.startsWith(\"/\")||href.startsWith(\"//\"))return href;if(/\\.[a-z0-9]{2,5}($|[?#])/i.test(href))return href;return href===\"/\"?base+\"/\":base+href;};const tr=v=>{if(typeof v===\"string\")return PATH.test(v)?h(v):t(v);if(Array.isArray(v)){// [key, label] tuples: lookup keys such as \"qwen\", \"pass\" or \"all\" stay as authored; only labels are translated.\nconst tuple=v.length>=2&&v.length<=3&&v.every(x=>typeof x===\"string\")&&v.some(x=>!ID_TOKEN.test(x));return v.map((x,i)=>tuple&&typeof x===\"string\"&&ID_TOKEN.test(x)&&(v.length===2||i===v.length-1||i===0)?x:tr(x));}if(v&&typeof v===\"object\"){const proto=Object.getPrototypeOf(v);if(v.$$typeof||proto!==Object.prototype&&proto!==null)return v;const out={};for(const[k,x]of Object.entries(v))out[k]=SKIP.has(k)?x:tr(x);return out;}return v;};return{t,h,tr,zh,base};}/** Removes the locale prefix from a pathname so active-link checks match the English hrefs. */function stripLocale(path,base){if(base&&(path===base||path.startsWith(base+\"/\")))return path.slice(base.length)||\"/\";return path;}// --- i18n:end ---\n// Cookie consent banner. Stores the visitor's choice in localStorage and tells the\n// site head snippet (window.tvpConsentUpdate) so Google Consent Mode, Meta Pixel and the\n// LinkedIn Insight Tag only run after consent. One banner per page: the first mounted\n// instance owns the banner; a second instance in \"link\" mode only renders the settings link.\nconst C={ink:\"var(--token-0bb5c73b-39ff-44b3-b9a5-4752d6ae246c, #0C1A26)\",soft:\"var(--token-5aa72dd5-a301-45a9-b3b3-65e6e42e92e9, #4F5D69)\",surface:\"var(--token-eea74d6b-0ea3-402b-9fa9-9f62e654da93, #FFFFFF)\",action:\"var(--token-b77fc13e-73f3-4194-a77a-6725e25a20ea, #0061C2)\",harbour:\"var(--token-92cd9a56-fb61-41fe-b2a6-a3089d9c5d3e, #0D2B44)\",rule:\"var(--token-35489567-5f57-4eb8-a516-63dff7d48969, #D3DDE2)\",ripple:\"var(--token-5055777b-f171-4d74-822d-c38dc84728bb, #1DCCD9)\"};const FONT='\"Schibsted Grotesk\", \"Schibsted Grotesk Placeholder\", system-ui, sans-serif';const KEY=\"tvp_consent_v1\";const TTL=365*24*60*60*1e3;const OPEN_EVENT=\"tvp-open-cookie-settings\";function readConsent(){try{const raw=window.localStorage.getItem(KEY);if(!raw)return null;const c=JSON.parse(raw);if(!c||typeof c.ts!==\"number\"||Date.now()-c.ts>TTL)return null;return{analytics:!!c.analytics,advertising:!!c.advertising,ts:c.ts};}catch(e){return null;}}function applyConsent(next,prev){try{window.localStorage.setItem(KEY,JSON.stringify(next));}catch(e){/* storage blocked: choice applies to this page view only */}const w=window;if(typeof w.tvpConsentUpdate===\"function\"){w.tvpConsentUpdate({analytics:next.analytics,advertising:next.advertising});}try{window.dispatchEvent(new CustomEvent(\"tvp-consent-change\",{detail:next}));}catch(e){/* old browsers */}// Meta Pixel and LinkedIn cannot be unloaded: a reload stops them after advertising is revoked.\nif(prev&&prev.advertising&&!next.advertising&&w.__tvpAdsLoaded)window.location.reload();}// Banner ownership: the first mounted instance renders the banner, the others stay quiet.\nlet nextId=0;const mounted=[];const subs=new Set;const notify=()=>subs.forEach(f=>f());/**\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */export default function CookieBanner(props){const{t,h}=useI18n();const isStatic=useIsStaticRenderer();const link=props.mode===\"link\";const idRef=useRef(0);const[,force]=useState(0);const[ready,setReady]=useState(false);const[open,setOpen]=useState(false);const[panel,setPanel]=useState(false);const[analytics,setAnalytics]=useState(false);const[advertising,setAdvertising]=useState(false);const prevRef=useRef(null);const firstBtn=useRef(null);useEffect(()=>{if(isStatic)return;const id=++nextId;idRef.current=id;mounted.push(id);const rerender=()=>force(n=>n+1);subs.add(rerender);notify();const stored=readConsent();prevRef.current=stored;if(stored){setAnalytics(stored.analytics);setAdvertising(stored.advertising);}else{setOpen(true);}setReady(true);const openSettings=()=>{const c=readConsent();setAnalytics(c?c.analytics:false);setAdvertising(c?c.advertising:false);setPanel(true);setOpen(true);};window.addEventListener(OPEN_EVENT,openSettings);// Another tab saved a choice: follow it, so this tab does not keep asking.\nconst onStorage=e=>{if(e.key!==KEY)return;const c=readConsent();prevRef.current=c;if(c){setAnalytics(c.analytics);setAdvertising(c.advertising);setOpen(false);setPanel(false);}};window.addEventListener(\"storage\",onStorage);return()=>{window.removeEventListener(OPEN_EVENT,openSettings);window.removeEventListener(\"storage\",onStorage);subs.delete(rerender);const i=mounted.indexOf(id);if(i>=0)mounted.splice(i,1);notify();};},[isStatic]);useEffect(()=>{if(open&&panel)firstBtn.current?.focus();},[open,panel]);const owner=mounted.length>0&&mounted[0]===idRef.current;const decide=(a,d)=>{const next={analytics:a,advertising:d,ts:Date.now()};applyConsent(next,prevRef.current);prevRef.current=next;setAnalytics(a);setAdvertising(d);setOpen(false);setPanel(false);};const openSettings=()=>{try{window.dispatchEvent(new CustomEvent(OPEN_EVENT));}catch(e){/* old browsers */}};const btn={fontFamily:FONT,fontSize:15,fontWeight:600,lineHeight:1.2,minHeight:44,padding:\"10px 16px\",borderRadius:10,cursor:\"pointer\",textAlign:\"center\"};const primary={...btn,background:C.harbour,color:\"#fff\",border:`2px solid ${C.harbour}`};const secondary={...btn,background:C.surface,color:C.harbour,border:`2px solid ${C.harbour}`};const toggleRow=(label,desc,on,set,locked,refBtn)=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"flex-start\",gap:12,padding:\"10px 0\",borderTop:`1px solid ${C.rule}`},children:[/*#__PURE__*/_jsxs(\"div\",{style:{flex:1,minWidth:0},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:14,fontWeight:600,color:C.ink},children:label}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,lineHeight:1.45,color:C.soft,marginTop:2},children:desc})]}),/*#__PURE__*/_jsx(\"button\",{ref:refBtn?firstBtn:undefined,type:\"button\",role:\"switch\",\"aria-checked\":on,\"aria-label\":label,disabled:locked,onClick:()=>set(!on),style:{flex:\"none\",width:44,height:26,borderRadius:999,border:0,padding:3,background:on?C.action:\"#9AA7B1\",cursor:locked?\"default\":\"pointer\",opacity:locked?.6:1,display:\"flex\",justifyContent:on?\"flex-end\":\"flex-start\",alignItems:\"center\"},children:/*#__PURE__*/_jsx(\"span\",{style:{width:20,height:20,borderRadius:999,background:\"#fff\",display:\"block\"}})})]});const card=inline=>/*#__PURE__*/_jsxs(\"div\",{role:\"dialog\",\"aria-label\":t(\"Cookies on this site\"),style:{position:inline?\"relative\":\"fixed\",left:inline?undefined:16,bottom:inline?undefined:16,zIndex:2147482e3,boxSizing:\"border-box\",width:inline?420:\"min(420px, calc(100vw - 32px))\",maxHeight:inline?undefined:\"calc(100vh - 32px)\",overflowY:\"auto\",background:C.surface,color:C.ink,fontFamily:FONT,border:`1px solid ${C.rule}`,borderRadius:14,boxShadow:\"0 14px 40px rgba(12, 26, 38, 0.22)\",padding:18},onKeyDown:e=>{if(e.key===\"Escape\"&&panel)setPanel(false);},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontSize:16,fontWeight:700,lineHeight:1.3},children:t(\"Cookies on this site\")}),/*#__PURE__*/_jsxs(\"p\",{style:{fontSize:14,lineHeight:1.5,color:C.soft,margin:\"8px 0 0\"},children:[t(\"We use analytics cookies to see how visitors use this site, and advertising cookies from Google, Meta and LinkedIn to measure our campaigns. Necessary storage keeps the site and its forms working.\"),\" \",t(\"You can change your cookie choices at any time through ‘Cookie settings’ in the footer.\"),\" \",/*#__PURE__*/_jsx(\"a\",{href:h(\"/privacy\"),style:{color:C.action,fontWeight:600},children:t(\"Read our privacy policy\")})]}),panel?/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:12},children:[toggleRow(t(\"Necessary\"),t(\"Always on. Keeps the site, its forms and your choice working.\"),true,()=>{},true),toggleRow(t(\"Analytics\"),t(\"Google Analytics. Shows us which pages are useful.\"),analytics,setAnalytics,false,true),toggleRow(t(\"Advertising\"),t(\"Google Ads, Meta Pixel, LinkedIn Insight Tag. Measures whether our campaigns lead to enquiries.\"),advertising,setAdvertising),/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",gap:8,marginTop:12,flexWrap:\"wrap\"},children:/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:{...primary,flex:\"1 1 100%\"},onClick:()=>decide(analytics,advertising),children:t(\"Save choices\")})})]}):/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8,marginTop:14,flexWrap:\"wrap\"},children:[/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:{...primary,flex:\"1 1 120px\"},onClick:()=>decide(true,true),children:t(\"Accept all\")}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:{...secondary,flex:\"1 1 120px\"},onClick:()=>decide(false,false),children:t(\"Reject non-essential\")}),/*#__PURE__*/_jsx(\"button\",{type:\"button\",style:{...secondary,flex:\"1 1 100%\"},onClick:()=>setPanel(true),children:t(\"Manage choices\")})]})]});const settingsLink=/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:openSettings,style:{background:\"none\",border:0,padding:0,margin:0,cursor:\"pointer\",fontFamily:FONT,fontSize:14,lineHeight:1.4,color:C.soft,textDecoration:\"underline\",textUnderlineOffset:3},children:t(\"Cookie settings\")});if(isStatic){// Canvas preview so the banner can be seen and styled in the editor.\nreturn link?settingsLink:card(true);}const portal=owner&&ready&&open&&typeof document!==\"undefined\"?/*#__PURE__*/createPortal(card(false),document.body):null;if(link){return /*#__PURE__*/_jsxs(_Fragment,{children:[settingsLink,portal]});}// \"banner\" mode renders nothing in the page flow; the card is portaled to <body>.\nreturn /*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{display:\"block\",width:0,height:0},children:portal});}CookieBanner.defaultProps={mode:\"banner\"};addPropertyControls(CookieBanner,{mode:{title:\"Mode\",type:ControlType.Enum,options:[\"banner\",\"link\"],optionTitles:[\"Banner (global)\",\"Footer link\"],defaultValue:\"banner\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CookieBanner\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"auto\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CookieBanner.map"],"mappings":"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"}