{"version":3,"file":"SuperfieldsUI.CfZTu1eW.mjs","names":["useRef","useState"],"sources":["https:/framerusercontent.com/modules/QWWD2Mr1f8MoovqEubpd/DdIiJ81dhVBTLzmM0POv/SuperfieldsUI.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useLocaleInfo}from\"framer\";import{useState,useRef,useEffect}from\"react\";// ── LOCALIZATION DICTIONARY ─────────────────────────────────────────────\nconst uiText={fr:{btnExplore:\"Explorer\",btnActive:\"Filtre actif\",benchmark:{role:\"La r\\xe9f\\xe9rence\",moment:\"En d\\xe9but de session pour lire la piste. R\\xe9action pr\\xe9visible.\"},monster:{role:\"La puissance\",moment:\"Quand la piste casse et qu'il faut de la puissance et du backend.\"},finisher:{role:\"Le closer\",moment:\"En fin de set pour finir proprement. Contr\\xf4le maximal.\"},sniper:{role:\"La pr\\xe9cision\",moment:\"Sur piste s\\xe8che ou courte. Trajectoire droite et ma\\xeetris\\xe9e.\"}},de:{btnExplore:\"Entdecken\",btnActive:\"Aktiver Filter\",benchmark:{role:\"Die Referenz\",moment:\"Zu Beginn der Session, um die Bahn zu lesen. Vorhersehbare Reaktion.\"},monster:{role:\"Die Kraft\",moment:\"Wenn die Bahn abbaut und Kraft und Backend ben\\xf6tigt werden.\"},finisher:{role:\"Der Closer\",moment:\"Am Ende eines Sets f\\xfcr ein sauberes Finish. Maximale Kontrolle.\"},sniper:{role:\"Die Pr\\xe4zision\",moment:\"Auf trockenen oder kurzen Bahnen. Gerade und kontrollierte Flugbahn.\"}},da:{btnExplore:\"Udforsk\",btnActive:\"Aktivt filter\",benchmark:{role:\"Referencen\",moment:\"I starten af sessionen for at l\\xe6se banen. Forudsigelig reaktion.\"},monster:{role:\"Kraften\",moment:\"N\\xe5r banen bryder ned og du har brug for kraft og backend.\"},finisher:{role:\"Afslutteren\",moment:\"I slutningen af et s\\xe6t for en ren afslutning. Maksimal kontrol.\"},sniper:{role:\"Pr\\xe6cisionen\",moment:\"P\\xe5 t\\xf8rre eller korte baner. Lige og kontrolleret bane.\"}},es:{btnExplore:\"Explorar\",btnActive:\"Filtro activo\",benchmark:{role:\"La referencia\",moment:\"Al inicio de la sesi\\xf3n para leer la pista. Reacci\\xf3n predecible.\"},monster:{role:\"La potencia\",moment:\"Cuando la pista se rompe y necesitas potencia y backend.\"},finisher:{role:\"El cerrador\",moment:\"Al final del set para un final limpio. Control m\\xe1ximo.\"},sniper:{role:\"La precisi\\xf3n\",moment:\"En pistas secas o cortas. Trayectoria recta y controlada.\"}},it:{btnExplore:\"Esplora\",btnActive:\"Filtro attivo\",benchmark:{role:\"Il riferimento\",moment:\"All'inizio della sessione per leggere la pista. Reazione prevedibile.\"},monster:{role:\"La potenza\",moment:\"Quando la pista si rompe e hai bisogno di potenza e backend.\"},finisher:{role:\"Il closer\",moment:\"Alla fine di un set per una chiusura pulita. Massimo controllo.\"},sniper:{role:\"La precisione\",moment:\"Su piste asciutte o corte. Traiettoria dritta e controllata.\"}},nl:{btnExplore:\"Ontdekken\",btnActive:\"Actief filter\",benchmark:{role:\"De referentie\",moment:\"Aan het begin van de sessie om de baan te lezen. Voorspelbare reactie.\"},monster:{role:\"De kracht\",moment:\"Wanneer de baan afbreekt en je kracht en backend nodig hebt.\"},finisher:{role:\"De afmaker\",moment:\"Aan het einde van een set voor een zuivere finish. Maximale controle.\"},sniper:{role:\"De precisie\",moment:\"Op droge of korte banen. Rechte en gecontroleerde baan.\"}},pl:{btnExplore:\"Odkryj\",btnActive:\"Aktywny filtr\",benchmark:{role:\"Odniesienie\",moment:\"Na początku sesji do odczytania toru. Przewidywalna reakcja.\"},monster:{role:\"Moc\",moment:\"Gdy tor się załamuje i potrzebujesz mocy oraz backendu.\"},finisher:{role:\"Zamykający\",moment:\"Pod koniec seta dla czystego wykończenia. Maksymalna kontrola.\"},sniper:{role:\"Precyzja\",moment:\"Na suchych lub kr\\xf3tkich torach. Prosta i kontrolowana trajektoria.\"}},ro:{btnExplore:\"Explorează\",btnActive:\"Filtru activ\",benchmark:{role:\"Referința\",moment:\"La \\xeenceputul sesiunii pentru a citi pista. Reacție previzibilă.\"},monster:{role:\"Puterea\",moment:\"C\\xe2nd pista se strică și ai nevoie de putere și backend.\"},finisher:{role:\"Closer-ul\",moment:\"La sf\\xe2rșitul unui set pentru un final curat. Control maxim.\"},sniper:{role:\"Precizia\",moment:\"Pe piste uscate sau scurte. Traiectorie dreaptă și controlată.\"}},sv:{btnExplore:\"Utforska\",btnActive:\"Aktivt filter\",benchmark:{role:\"Referensen\",moment:\"I b\\xf6rjan av sessionen f\\xf6r att l\\xe4sa banan. F\\xf6ruts\\xe4gbar reaktion.\"},monster:{role:\"Kraften\",moment:\"N\\xe4r banan bryts ner och du beh\\xf6ver kraft och backend.\"},finisher:{role:\"Avslutaren\",moment:\"I slutet av ett set f\\xf6r en ren avslutning. Maximal kontroll.\"},sniper:{role:\"Precisionen\",moment:\"P\\xe5 torra eller korta banor. Rak och kontrollerad bana.\"}},cs:{btnExplore:\"Prozkoumat\",btnActive:\"Aktivn\\xed filtr\",benchmark:{role:\"Reference\",moment:\"Na zač\\xe1tku session pro čten\\xed dr\\xe1hy. Předv\\xeddateln\\xe1 reakce.\"},monster:{role:\"S\\xedla\",moment:\"Když se dr\\xe1ha rozpadne a potřebujete s\\xedlu a backend.\"},finisher:{role:\"Zav\\xedr\\xe1k\",moment:\"Na konci setu pro čist\\xfd z\\xe1věr. Maxim\\xe1ln\\xed kontrola.\"},sniper:{role:\"Přesnost\",moment:\"Na such\\xfdch nebo kr\\xe1tk\\xfdch drah\\xe1ch. Př\\xedm\\xe1 a kontrolovan\\xe1 trajektoria.\"}},tr:{btnExplore:\"Keşfet\",btnActive:\"Aktif filtre\",benchmark:{role:\"Referans\",moment:\"Pisti okumak i\\xe7in seansın başında. \\xd6ng\\xf6r\\xfclebilir reaksiyon.\"},monster:{role:\"G\\xfc\\xe7\",moment:\"Pist bozulduğunda ve g\\xfcce ve backend'e ihtiyacınız olduğunda.\"},finisher:{role:\"Kapatıcı\",moment:\"Temiz bir bitiş i\\xe7in setin sonunda. Maksimum kontrol.\"},sniper:{role:\"Hassasiyet\",moment:\"Kuru veya kısa pistlerde. D\\xfcz ve kontroll\\xfc y\\xf6r\\xfcnge.\"}}};// ── BASE CARD DATA ─────────────────────────────────────────────\n// Paste your image and icon URLs here\nconst BASE_CARDS=[{id:\"Benchmark\",dictKey:\"benchmark\",eyebrow:\"SOLID / STRONG SYMMETRIC\",title:\"THE BENCHMARK\",image:\"https://framerusercontent.com/images/xHXPwHeQqQLuk71yI4Ir1P9XLw.jpg?width=976&height=1248\",icon:\"https://framerusercontent.com/images/ryNLznSSUchx943hrXKrb6H25U.svg?width=32&height=32\"},{id:\"Monster\",dictKey:\"monster\",eyebrow:\"PEARL / ASYMMETRIC\",title:\"THE MONSTER\",image:\"https://framerusercontent.com/images/7F3RXFoDKwKhpCDUNjNV6jwHppc.jpg?width=1243&height=1590\",icon:\"https://framerusercontent.com/images/EPaczeosjvIR1LaRbVyc6ZYFobI.svg?width=30&height=30\"},{id:\"Finisher\",dictKey:\"finisher\",eyebrow:\"HYBRID / SYMMETRIC\",title:\"THE FINISHER\",image:\"https://framerusercontent.com/images/IfSV4k9Ra4JrzQH0AMtyEW0U90.jpg?width=1500&height=1000\",icon:\"https://framerusercontent.com/images/Y0gmIvcptv6fYeLJnJPJeT4AWg.svg?width=30&height=30\"},{id:\"Sniper\",dictKey:\"sniper\",eyebrow:\"URETHANE / LOW FLARE\",title:\"THE SNIPER\",image:\"https://framerusercontent.com/images/odZA9b7nFwyhOg39S9lmlIxuY.jpg?width=1500&height=1000\",icon:\"https://framerusercontent.com/images/FkZ3SWxMtLDOabMDMQQGmb0ZMfQ.svg?width=32&height=32\"}];export function withCustomProxyCards(Component){return props=>{const superfieldsRef=useRef(null);const[activeIds,setActiveIds]=useState([]);// SSR-safe locale: read Framer's active locale so the server-rendered HTML is already in the right language\nconst __localeInfo=useLocaleInfo();const __ssrLang=String(__localeInfo?.activeLocale?.code||\"fr\").split(\"-\")[0].toLowerCase();const[localeCode,setLocaleCode]=useState([\"fr\",\"de\",\"da\",\"es\",\"it\",\"nl\",\"pl\",\"ro\",\"sv\",\"cs\",\"tr\"].includes(__ssrLang)?__ssrLang:\"fr\");// 1. Detect Locale\nuseEffect(()=>{if(typeof window!==\"undefined\"){const rawLangPath=window.location.pathname.split(\"/\")[1]||\"\";const pathLang=rawLangPath.split(\"-\")[0].toLowerCase();const validLangs=[\"fr\",\"de\",\"da\",\"es\",\"it\",\"nl\",\"pl\",\"ro\",\"sv\",\"cs\",\"tr\"];if(validLangs.includes(pathLang)){setLocaleCode(pathLang);}}},[]);const t=uiText[localeCode]||uiText.fr;// 2. Sync with Superfields URL\nuseEffect(()=>{if(typeof window===\"undefined\")return;const syncStateWithURL=()=>{const searchParams=decodeURIComponent(window.location.search).toLowerCase();const currentlyActive=BASE_CARDS.filter(card=>searchParams.includes(card.id.toLowerCase())).map(card=>card.id);setActiveIds(currentlyActive);};syncStateWithURL();window.addEventListener(\"popstate\",syncStateWithURL);const originalPushState=history.pushState;const originalReplaceState=history.replaceState;history.pushState=function(...args){originalPushState.apply(this,args);syncStateWithURL();};history.replaceState=function(...args){originalReplaceState.apply(this,args);syncStateWithURL();};return()=>{window.removeEventListener(\"popstate\",syncStateWithURL);history.pushState=originalPushState;history.replaceState=originalReplaceState;};},[]);// 3. Proxy Click Handler\nconst handleCardClick=id=>{if(superfieldsRef.current){const walker=document.createTreeWalker(superfieldsRef.current,NodeFilter.SHOW_TEXT,null);let textNode;while(textNode=walker.nextNode()){if(textNode.nodeValue?.trim().toLowerCase()===id.toLowerCase()){const parentElement=textNode.parentElement;if(parentElement){parentElement.dispatchEvent(new MouseEvent(\"click\",{view:window,bubbles:true,cancelable:true}));}break;}}}// ── ADDED SCROLL LOGIC ──────────────────────────────────────\n// A tiny 50ms delay ensures Framer has time to update the layout\n// below (if the filter changes the height) before we scroll to it.\n// ── UPDATED SCROLL LOGIC ──────────────────────────────────────\nsetTimeout(()=>{// Looks for the mobile section first. If it doesn't exist/isn't rendered,\n// it falls back to the desktop section.\nconst catalogSection=document.getElementById(\"scroll-to-main-mobile\")||document.getElementById(\"scroll-to-main\");if(catalogSection){catalogSection.scrollIntoView({behavior:\"smooth\",block:\"start\"});}},50);};return /*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",position:\"relative\"},children:[/*#__PURE__*/_jsx(\"div\",{className:\"sf-proxy-grid\",children:BASE_CARDS.map(card=>{const isActive=activeIds.includes(card.id);const titleWords=card.title.split(\" \");const firstWord=titleWords[0];const restOfTitle=titleWords.slice(1).join(\" \");// Grab translated text based on dictionary key\nconst cardText=t[card.dictKey];return /*#__PURE__*/_jsxs(\"div\",{className:`sf-proxy-card-wrap ${isActive?\"is-active\":\"\"}`,onClick:()=>handleCardClick(card.id),children:[card.image?/*#__PURE__*/_jsx(\"img\",{src:card.image,alt:card.title,className:\"sf-bg-img\"}):/*#__PURE__*/_jsx(\"div\",{className:\"sf-bg-fallback\"}),/*#__PURE__*/_jsx(\"div\",{className:\"sf-overlay\"}),/*#__PURE__*/_jsx(\"div\",{className:\"sf-icon\",children:card.icon?/*#__PURE__*/_jsx(\"img\",{src:card.icon,alt:`${card.title} icon`,className:\"sf-custom-icon\"}):/*#__PURE__*/_jsx(BallIcon,{type:card.id,active:isActive})}),/*#__PURE__*/_jsxs(\"div\",{className:\"sf-content\",children:[/*#__PURE__*/_jsx(\"div\",{className:\"sf-eyebrow\",children:card.eyebrow}),/*#__PURE__*/_jsxs(\"div\",{className:\"sf-title\",children:[firstWord,\" \",/*#__PURE__*/_jsx(\"br\",{}),restOfTitle&&/*#__PURE__*/_jsx(\"em\",{children:restOfTitle})]}),/*#__PURE__*/_jsxs(\"div\",{className:\"sf-desc\",children:[/*#__PURE__*/_jsx(\"strong\",{style:{color:\"#fff\"},children:cardText.role}),/*#__PURE__*/_jsx(\"br\",{}),cardText.moment]}),/*#__PURE__*/_jsx(\"div\",{className:\"sf-divider\"}),/*#__PURE__*/_jsx(\"div\",{className:\"sf-cta\",children:isActive?`✓ ${t.btnActive}`:`${t.btnExplore} →`})]})]},card.id);})}),/*#__PURE__*/_jsx(\"div\",{ref:superfieldsRef,style:{position:\"absolute\",opacity:0,pointerEvents:\"none\",zIndex:-1,width:\"100%\",height:0,overflow:\"hidden\"},children:/*#__PURE__*/_jsx(Component,{...props})}),/*#__PURE__*/_jsx(\"style\",{children:`\n                    .sf-proxy-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; width: 100%; }\n                    @media (max-width: 1200px) { .sf-proxy-grid { grid-template-columns: repeat(2, 1fr); } }\n                 @media (max-width: 768px) {\n    .sf-proxy-grid { \n        display: flex; \n        overflow-x: auto; \n        scroll-snap-type: x mandatory; \n        /* 1. Add significant padding to create a safe zone inside the scroll container */\n        padding-top: 24px; \n        padding-bottom: 50px; /* Room for the bottom shadow */\n        /* 2. Offset the padding with negative margin so it doesn't ruin your Framer spacing */\n        margin-top: -24px; \n        margin-bottom: -50px;\n    }\n    \n    .sf-proxy-grid::-webkit-scrollbar { display: none; }\n    \n    .sf-proxy-card-wrap { \n        flex: 0 0 85%; \n        scroll-snap-align: start; \n        /* 3. Add a small margin to push the card away from the very top edge */\n        margin-top: 8px; \n    }\n}\n\n                    .sf-proxy-card-wrap { position: relative; min-height: 340px; border-radius: 20px; background: #0a0a0c; cursor: pointer; overflow: hidden; border: 1.5px solid transparent; background-clip: padding-box; transition: all 0.4s cubic-bezier(0.2, 0.8, 0.2, 1); font-family: 'Inter', -apple-system, sans-serif; }\n                    .sf-proxy-card-wrap::before { content: ''; position: absolute; inset: 0px; border-radius: 20px; padding: 1.5px; background: transparent; -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; z-index: 10; transition: background 0.5s ease; }\n                    .sf-proxy-card-wrap:hover::before { background: linear-gradient(180deg, transparent 40%, rgba(255, 59, 46, 0.9) 100%); }\n                    .sf-proxy-card-wrap.is-active::before { background: #ff3b2e; }\n                    .sf-proxy-card-wrap:hover { transform: translateY(-6px); box-shadow: 0 24px 60px rgba(0,0,0,0.5), 0 0 50px rgba(255, 59, 46, 0.25); }\n\n                    .sf-bg-img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; z-index: 0; transition: transform 0.6s ease; }\n                    .sf-bg-fallback { width: 100%; height: 100%; position: absolute; inset: 0; z-index: 0; background: linear-gradient(135deg, #1a0808 0%, #0a0a0c 100%); }\n                    .sf-proxy-card-wrap:hover .sf-bg-img { transform: scale(1.05); }\n\n                    .sf-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.7) 50%, rgba(0,0,0,0.95) 100%); z-index: 1; pointer-events: none; }\n                    \n                    .sf-icon { position: absolute; top: 16px; left: 16px; width: 40px; height: 40px; background: rgba(20,20,24,0.85); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.08); border-radius: 10px; display: flex; align-items: center; justify-content: center; z-index: 3; padding: 8px; box-sizing: border-box; }\n                    \n                    .sf-custom-icon { width: 100%; height: 100%; object-fit: contain; transition: filter 0.3s ease; }\n                    .sf-proxy-card-wrap.is-active .sf-custom-icon { filter: brightness(0) saturate(100%) invert(35%) sepia(61%) saturate(3533%) hue-rotate(342deg) brightness(102%) contrast(105%); }\n\n                    .sf-content { position: absolute; left: 16px; bottom: 16px; right: 16px; z-index: 2; display: flex; flex-direction: column; align-items: flex-start; }\n                    .sf-eyebrow { font-size: 10px; font-weight: 700; letter-spacing: 0.16em; color: #ff3b2e; margin-bottom: 8px; text-transform: uppercase; }\n                    .sf-title { font-family: 'Anton', sans-serif; font-size: 32px; color: #f5f5f7; margin: 0 0 10px 0; line-height: 0.95; text-transform: uppercase; letter-spacing: 0.02em; }\n                    .sf-title em { font-family: 'Instrument Serif', serif; font-style: italic; color: #ff3b2e; font-weight: 400; text-transform: none; }\n                    .sf-desc { font-size: 12px; color: rgba(255,255,255,0.7); line-height: 1.4; margin: 0 0 14px 0; }\n                    .sf-divider { width: 40px; height: 1px; background: rgba(255,255,255,0.3); margin-bottom: 14px; }\n                    \n                    .sf-cta { padding: 10px 16px; background: rgba(20,20,24,0.7); border: 1px solid rgba(255,255,255,0.18); border-radius: 100px; font-family: 'Anton', sans-serif; font-size: 11px; letter-spacing: 0.1em; color: #f5f5f7; display: inline-flex; align-items: center; text-transform: uppercase; transition: all 0.2s; }\n                    .sf-proxy-card-wrap:hover .sf-cta { background: rgba(40, 20, 22, 0.85); border-color: rgba(255, 59, 46, 0.4); }\n                    .sf-proxy-card-wrap.is-active .sf-cta { background: #ff3b2e; border-color: #ff3b2e; box-shadow: 0 4px 16px rgba(255, 59, 46, 0.35); }\n                `})]});};}function BallIcon({type,active}){const bg=active?\"#ff3b2e\":\"#888\";const dot=active?\"#fff\":\"#444\";const d={Benchmark:[{cx:9,cy:8,r:2.2},{cx:15,cy:8,r:2.2},{cx:12,cy:14,r:2}],Monster:[{cx:10,cy:7,r:2.4},{cx:15,cy:10,r:2},{cx:10,cy:14,r:2}],Finisher:[{cx:12,cy:8,r:2.5},{cx:9,cy:14,r:1.8},{cx:15,cy:14,r:1.8}],Sniper:[{cx:12,cy:7,r:2},{cx:8,cy:13,r:2.2},{cx:16,cy:13,r:2.2}]};const dots=d[type]||d.Benchmark;return /*#__PURE__*/_jsxs(\"svg\",{viewBox:\"0 0 24 24\",fill:\"none\",style:{width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"10\",fill:bg}),dots.map((p,i)=>/*#__PURE__*/_jsx(\"circle\",{cx:p.cx,cy:p.cy,r:p.r,fill:dot},i))]});}\nexport const __FramerMetadata__ = {\"exports\":{\"withCustomProxyCards\":{\"type\":\"reactHoc\",\"name\":\"withCustomProxyCards\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SuperfieldsUI.map"],"mappings":"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"}