{"version":3,"file":"HighsetUser.COC6bbeG.mjs","names":["useState","createClient"],"sources":["https:/framerusercontent.com/modules/szDs4iKCrrJZdTCzwonn/xs1tyIy18dKm5VmclZhd/HighsetUser.js"],"sourcesContent":["// HighsetUser.tsx — HIGHSET User System v2.3\n// v2.3: Social-Login (Google/Apple via Supabase Web-OAuth) im LoginModal; useUser um\n//       signInWithProvider + getMyRanks erweitert; UserSettings um username/lang (App-Parität)\n// Exportiert: useUser, LoginModal, UserButton, FavoriteAreaButton, ProjectButton\n// Alle Komponenten teilen denselben Supabase-Client (Singleton)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect}from\"react\";import{createClient}from\"https://esm.sh/@supabase/supabase-js@2\";const SB_URL=\"https://rwervbgtzbgpacoxptrb.supabase.co\";const SB_KEY=\"sb_publishable_GcUBFQB-kSzoJgbmhMiYIA_D4IdjD8B\";const FONT=`-apple-system, \"SF Pro Display\", BlinkMacSystemFont, \"Segoe UI\", sans-serif`;const CARD=\"#1c1c1e\";const GOLD=\"#D4A847\";const SEP=\"rgba(255,255,255,0.07)\";// ── Singleton Client (einmal erstellt, von allen Komponenten geteilt) ─────────\nconst supabase=createClient(SB_URL,SB_KEY);// ── useUser Hook ──────────────────────────────────────────────────────────────\n// Verwendung in anderen Komponenten:\n//   import { useUser } from \"./HighsetUser\"\n//   const { user, isFavorite, toggleFavorite, isProject, toggleProject } = useUser()\nexport function useUser(){const[user,setUser]=useState(null);const[favorites,setFavorites]=useState([]);const[projects,setProjects]=useState([]);const[ticks,setTicks]=useState([]);const[settings,setSettings]=useState(null);const[loading,setLoading]=useState(true);async function loadData(uid){const[f,p,s,t]=await Promise.all([supabase.from(\"user_favorites\").select(\"area_slug\").eq(\"user_id\",uid),supabase.from(\"user_projects\").select(\"*\").eq(\"user_id\",uid),supabase.from(\"user_settings\").select(\"*\").eq(\"user_id\",uid).maybeSingle(),supabase.from(\"user_ticks\").select(\"*\").eq(\"user_id\",uid)]);if(f.data)setFavorites(f.data.map(r=>r.area_slug));if(p.data)setProjects(p.data);if(t.data)setTicks(t.data);if(s.data){const st=s.data;setSettings(st);// Körpergröße mit localStorage sync (rückwärtskompatibel mit BoulderPage)\nif(st.body_height){try{localStorage.setItem(\"hset_h\",String(st.body_height));}catch{}}}}useEffect(()=>{supabase.auth.getSession().then(({data})=>{if(data.session?.user){const u=data.session.user;setUser({id:u.id,email:u.email||\"\"});loadData(u.id);}setLoading(false);});const sub=supabase.auth.onAuthStateChange((_e,session)=>{if(session?.user){const u=session.user;setUser({id:u.id,email:u.email||\"\"});loadData(u.id);}else{setUser(null);setFavorites([]);setProjects([]);setTicks([]);setSettings(null);}});return()=>{sub.data.subscription.unsubscribe();};},[]);async function signIn(email,pw){const{error}=await supabase.auth.signInWithPassword({email,password:pw});return error?.message||null;}async function signUp(email,pw){const{error}=await supabase.auth.signUp({email,password:pw});return error?.message||null;}// Social-Login (Google/Apple) via Supabase Web-OAuth — Redirect-Flow.\n// Redirect-URI = aktuelle Origin (in Supabase Auth → URL Configuration whitelisten).\nasync function signInWithProvider(provider){const redirectTo=typeof window!==\"undefined\"?window.location.origin:undefined;const{error}=await supabase.auth.signInWithOAuth({provider,options:{redirectTo}});return error?.message||null;}// scope:\"local\" = nur dieses Browser-Token löschen (kein globaler Server-Revoke),\n// damit die native App-Session unberührt bleibt.\nasync function signOut(){await supabase.auth.signOut({scope:\"local\"});}// Eigene Rang-Platzierungen (pro Region) — RPC existiert serverseitig.\nasync function getMyRanks(){const{data,error}=await supabase.rpc(\"get_my_ranks\");if(error)return null;return data||[];}async function deleteAccount(){const{data}=await supabase.auth.getSession();const token=data.session?.access_token;if(!token)return\"Nicht angemeldet\";const resp=await fetch(\"https://highset.faymonvillejulius.workers.dev/delete-account\",{method:\"POST\",headers:{Authorization:`Bearer ${token}`}});if(!resp.ok){const err=await resp.json().catch(()=>({}));return err.error||\"Fehler beim L\\xf6schen\";}await supabase.auth.signOut();return null;}async function toggleFavorite(areaSlug){if(!user)return;if(favorites.includes(areaSlug)){await supabase.from(\"user_favorites\").delete().eq(\"user_id\",user.id).eq(\"area_slug\",areaSlug);setFavorites(f=>f.filter(s=>s!==areaSlug));}else{await supabase.from(\"user_favorites\").insert({user_id:user.id,area_slug:areaSlug});setFavorites(f=>[...f,areaSlug]);}}async function toggleTick(b){if(!user)return;const ex=ticks.find(t=>t.boulder_id===b.id);if(ex){await supabase.from(\"user_ticks\").delete().eq(\"id\",ex.id);setTicks(t=>t.filter(x=>x.id!==ex.id));}else{const{data}=await supabase.from(\"user_ticks\").insert({user_id:user.id,boulder_id:b.id,boulder_name:b.name,area_slug:b.areaSlug,grade:b.grade}).select().maybeSingle();if(data)setTicks(t=>[data,...t]);}}async function toggleProject(b){if(!user)return;const ex=projects.find(p=>p.boulder_id===b.id);if(ex){await supabase.from(\"user_projects\").delete().eq(\"id\",ex.id);setProjects(p=>p.filter(x=>x.id!==ex.id));}else{const{data}=await supabase.from(\"user_projects\").insert({user_id:user.id,boulder_id:b.id,boulder_name:b.name,area_slug:b.areaSlug,note:\"\"}).select().maybeSingle();if(data)setProjects(p=>[data,...p]);}}async function saveSettings(patch){if(!user)return;const row={user_id:user.id,...patch,updated_at:new Date().toISOString()};await supabase.from(\"user_settings\").upsert(row,{onConflict:\"user_id\"});setSettings(s=>({...s||{shoe_size:\"\",body_height:0,bakery_slug:\"\"},...patch}));if(patch.body_height){try{localStorage.setItem(\"hset_h\",String(patch.body_height));}catch{}}}return{user,favorites,projects,ticks,settings,loading,signIn,signUp,signInWithProvider,signOut,deleteAccount,getMyRanks,toggleFavorite,toggleProject,toggleTick,saveSettings,isFavorite:slug=>favorites.includes(slug),isProject:id=>projects.some(p=>p.boulder_id===id),isTick:id=>ticks.some(t=>t.boulder_id===id)};}// ── Login anfordern (race-sicher) ─────────────────────────────────────────────\n// Framer hydriert Code-Komponenten als unabhängige Inseln: Ein Login-Button kann\n// schon klickbar sein, BEVOR die LoginModal-Insel ihren highset:login-Listener\n// registriert hat → Event verpufft (\"Anmelden-Button geht nicht\"). Deshalb\n// zusätzlich Zeitstempel-Merker setzen — LoginModal liest ihn beim Mount nach.\nfunction requestLogin(){if(typeof window===\"undefined\")return;try{window.__hsLoginPending=Date.now();}catch{}window.dispatchEvent(new CustomEvent(\"highset:login\"));}// ── Hilfsfunktion: Login-Modal öffnen (aus anderen Komponenten aufrufen) ──────\nexport function openLoginModal(){// SSR-sicher: Framer rendert Exports serverseitig — dort gibt es kein window.\n// Als (versehentlich platzierte) Komponente rendert das schlicht nichts.\nif(typeof window!==\"undefined\")requestLogin();return null;}// ── LoginModal ────────────────────────────────────────────────────────────────\n// Einmal auf jeder Seite platzieren (z.B. im Layout).\n// Öffnet sich wenn openLoginModal() oder UserButton aufgerufen wird.\nexport function LoginModal(){const[open,setOpen]=useState(false);const[mode,setMode]=useState(\"in\");const[email,setEmail]=useState(\"\");const[pw,setPw]=useState(\"\");const[err,setErr]=useState(\"\");const[ok,setOk]=useState(\"\");const[busy,setBusy]=useState(false);const[confirmDelete,setConfirmDelete]=useState(false);const{user,signIn,signUp,signInWithProvider,signOut,deleteAccount}=useUser();async function oauth(provider){setErr(\"\");setOk(\"\");setBusy(true);const e=await signInWithProvider(provider);setBusy(false);if(e)setErr(e);// bei Erfolg leitet Supabase per Redirect weiter (kein setOpen nötig)\n}useEffect(()=>{function onOpen(){try{window.__hsLoginPending=0;}catch{}setOpen(true);}window.addEventListener(\"highset:login\",onOpen);// Klick fiel in die Hydration-Lücke (Listener existierte noch nicht):\n// Merker von requestLogin() nachlesen und Modal trotzdem öffnen.\ntry{const t=window.__hsLoginPending;if(t&&Date.now()-t<6e4){window.__hsLoginPending=0;setOpen(true);}}catch{}return()=>window.removeEventListener(\"highset:login\",onOpen);},[]);async function submit(){setErr(\"\");setOk(\"\");setBusy(true);const e=mode===\"in\"?await signIn(email,pw):await signUp(email,pw);setBusy(false);if(e)setErr(e);else if(mode===\"up\")setOk(\"Check deine Emails zum Bestaetigen!\");else setOpen(false);}if(!open)return null;return /*#__PURE__*/_jsx(\"div\",{style:{position:\"fixed\",inset:0,zIndex:9999,background:\"rgba(0,0,0,0.75)\",backdropFilter:\"blur(10px)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontFamily:FONT},onClick:e=>{if(e.target===e.currentTarget)setOpen(false);},children:/*#__PURE__*/_jsxs(\"div\",{style:{background:CARD,borderRadius:20,padding:32,width:340,border:\"1px solid rgba(255,255,255,0.10)\",boxShadow:\"0 24px 80px rgba(0,0,0,0.6)\"},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",marginBottom:24},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontSize:20,fontWeight:700,color:\"#fff\"},children:user?\"Konto\":mode===\"in\"?\"Anmelden\":\"Registrieren\"}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>setOpen(false),style:{background:\"rgba(255,255,255,0.08)\",border:\"none\",borderRadius:20,width:32,height:32,color:\"rgba(255,255,255,0.5)\",cursor:\"pointer\",fontSize:18,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",fontFamily:FONT},children:\"x\"})]}),user?/* Eingeloggt *//*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsx(\"p\",{style:{color:\"rgba(255,255,255,0.4)\",fontSize:14,margin:\"0 0 20px\"},children:user.email}),/*#__PURE__*/_jsx(\"button\",{onClick:async()=>{await signOut();setOpen(false);window.location.assign(\"/\");},style:{width:\"100%\",padding:14,background:\"rgba(255,69,58,0.12)\",border:\"1px solid rgba(255,69,58,0.25)\",borderRadius:12,color:\"#FF453A\",fontSize:15,fontWeight:600,cursor:\"pointer\",fontFamily:FONT},children:\"Abmelden\"}),!confirmDelete?/*#__PURE__*/_jsx(\"button\",{onClick:()=>setConfirmDelete(true),style:{width:\"100%\",marginTop:10,padding:10,background:\"transparent\",border:\"none\",color:\"rgba(255,255,255,0.25)\",fontSize:13,cursor:\"pointer\",fontFamily:FONT},children:\"Konto l\\xf6schen\"}):/*#__PURE__*/_jsxs(\"div\",{style:{marginTop:16,padding:16,background:\"rgba(255,69,58,0.08)\",borderRadius:12,border:\"1px solid rgba(255,69,58,0.2)\"},children:[/*#__PURE__*/_jsx(\"p\",{style:{color:\"rgba(255,255,255,0.6)\",fontSize:13,margin:\"0 0 12px\",lineHeight:1.5},children:\"Konto wirklich l\\xf6schen? Alle Daten (Favoriten, Ticks, Projekte) werden dauerhaft entfernt.\"}),err!==\"\"&&/*#__PURE__*/_jsx(\"p\",{style:{color:\"#FF453A\",fontSize:13,margin:\"0 0 10px\",fontFamily:FONT},children:err}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",gap:8},children:[/*#__PURE__*/_jsx(\"button\",{onClick:async()=>{setBusy(true);setErr(\"\");const e=await deleteAccount();setBusy(false);if(e)setErr(e);else{setOpen(false);setConfirmDelete(false);}},disabled:busy,style:{flex:1,padding:\"10px 0\",background:\"#FF453A\",border:\"none\",borderRadius:10,color:\"#fff\",fontSize:13,fontWeight:700,cursor:\"pointer\",fontFamily:FONT,opacity:busy?.6:1},children:busy?\"...\":\"Ja, l\\xf6schen\"}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>{setConfirmDelete(false);setErr(\"\");},style:{flex:1,padding:\"10px 0\",background:\"rgba(255,255,255,0.08)\",border:\"none\",borderRadius:10,color:\"rgba(255,255,255,0.6)\",fontSize:13,fontWeight:600,cursor:\"pointer\",fontFamily:FONT},children:\"Abbrechen\"})]})]})]}):/* Login / Register Form *//*#__PURE__*/_jsxs(\"div\",{children:[/*#__PURE__*/_jsxs(\"button\",{onClick:()=>oauth(\"google\"),disabled:busy,style:{width:\"100%\",padding:13,marginBottom:10,background:\"#fff\",border:\"none\",borderRadius:12,color:\"#1c1c1e\",fontSize:15,fontWeight:600,cursor:\"pointer\",fontFamily:FONT,opacity:busy?.6:1,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:10},children:[/*#__PURE__*/_jsxs(\"svg\",{width:\"18\",height:\"18\",viewBox:\"0 0 48 48\",children:[/*#__PURE__*/_jsx(\"path\",{fill:\"#EA4335\",d:\"M24 9.5c3.5 0 6.6 1.2 9.1 3.6l6.8-6.8C35.9 2.4 30.3 0 24 0 14.6 0 6.4 5.4 2.5 13.2l7.9 6.1C12.3 13.2 17.7 9.5 24 9.5z\"}),/*#__PURE__*/_jsx(\"path\",{fill:\"#4285F4\",d:\"M46.1 24.5c0-1.6-.1-3.1-.4-4.5H24v9h12.4c-.5 2.9-2.1 5.3-4.6 6.9l7.1 5.5c4.1-3.8 6.5-9.4 6.5-16.9z\"}),/*#__PURE__*/_jsx(\"path\",{fill:\"#FBBC05\",d:\"M10.4 28.3c-.5-1.4-.7-2.9-.7-4.3s.3-3 .7-4.3l-7.9-6.1C.9 16.6 0 20.2 0 24s.9 7.4 2.5 10.4l7.9-6.1z\"}),/*#__PURE__*/_jsx(\"path\",{fill:\"#34A853\",d:\"M24 48c6.5 0 11.9-2.1 15.9-5.8l-7.1-5.5c-2 1.3-4.5 2.1-8.8 2.1-6.3 0-11.7-3.7-13.6-9.8l-7.9 6.1C6.4 42.6 14.6 48 24 48z\"})]}),\"Mit Google fortfahren\"]}),/*#__PURE__*/_jsxs(\"button\",{onClick:()=>oauth(\"apple\"),disabled:busy,style:{width:\"100%\",padding:13,marginBottom:16,background:\"#000\",border:\"1px solid rgba(255,255,255,0.18)\",borderRadius:12,color:\"#fff\",fontSize:15,fontWeight:600,cursor:\"pointer\",fontFamily:FONT,opacity:busy?.6:1,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",gap:10},children:[/*#__PURE__*/_jsx(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"#fff\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M17.05 12.04c-.03-2.85 2.33-4.22 2.44-4.29-1.33-1.95-3.4-2.22-4.13-2.25-1.76-.18-3.43 1.03-4.32 1.03-.89 0-2.26-1.01-3.71-.98-1.91.03-3.67 1.11-4.65 2.82-1.98 3.44-.51 8.53 1.42 11.32.94 1.36 2.06 2.89 3.53 2.83 1.42-.06 1.95-.91 3.66-.91 1.71 0 2.19.91 3.69.88 1.52-.03 2.49-1.39 3.42-2.76 1.08-1.58 1.53-3.11 1.55-3.19-.03-.01-2.98-1.14-3.01-4.53zM14.28 3.78c.78-.95 1.31-2.27 1.16-3.58-1.13.05-2.49.75-3.3 1.7-.72.84-1.36 2.18-1.19 3.46 1.26.1 2.55-.64 3.33-1.58z\"})}),\"Mit Apple fortfahren\"]}),/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:10,margin:\"0 0 16px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{flex:1,height:1,background:SEP}}),/*#__PURE__*/_jsx(\"span\",{style:{color:\"rgba(255,255,255,0.3)\",fontSize:12},children:\"oder\"}),/*#__PURE__*/_jsx(\"div\",{style:{flex:1,height:1,background:SEP}})]}),/*#__PURE__*/_jsx(\"input\",{value:email,onChange:e=>setEmail(e.target.value),placeholder:\"E-Mail\",type:\"email\",style:{width:\"100%\",padding:\"13px 16px\",marginBottom:10,background:\"rgba(255,255,255,0.07)\",border:\"1px solid rgba(255,255,255,0.10)\",borderRadius:12,color:\"#fff\",fontSize:15,fontFamily:FONT,boxSizing:\"border-box\",outline:\"none\"}}),/*#__PURE__*/_jsx(\"input\",{value:pw,onChange:e=>setPw(e.target.value),placeholder:\"Passwort\",type:\"password\",onKeyDown:e=>{if(e.key===\"Enter\")submit();},style:{width:\"100%\",padding:\"13px 16px\",marginBottom:16,background:\"rgba(255,255,255,0.07)\",border:\"1px solid rgba(255,255,255,0.10)\",borderRadius:12,color:\"#fff\",fontSize:15,fontFamily:FONT,boxSizing:\"border-box\",outline:\"none\"}}),err!==\"\"&&/*#__PURE__*/_jsx(\"p\",{style:{color:\"#FF453A\",fontSize:13,margin:\"0 0 12px\",fontFamily:FONT},children:err}),ok!==\"\"&&/*#__PURE__*/_jsx(\"p\",{style:{color:\"#30D158\",fontSize:13,margin:\"0 0 12px\",fontFamily:FONT},children:ok}),/*#__PURE__*/_jsx(\"button\",{onClick:submit,disabled:busy,style:{width:\"100%\",padding:14,background:GOLD,border:\"none\",borderRadius:12,color:\"#000\",fontSize:15,fontWeight:700,cursor:\"pointer\",fontFamily:FONT,opacity:busy?.6:1,transition:\"opacity .2s\"},children:busy?\"...\":mode===\"in\"?\"Anmelden\":\"Registrieren\"}),/*#__PURE__*/_jsx(\"button\",{onClick:()=>{setMode(m=>m===\"in\"?\"up\":\"in\");setErr(\"\");setOk(\"\");},style:{width:\"100%\",marginTop:10,padding:10,background:\"transparent\",border:\"none\",color:\"rgba(255,255,255,0.35)\",fontSize:13,cursor:\"pointer\",fontFamily:FONT},children:mode===\"in\"?\"Noch kein Konto? Registrieren\":\"Bereits Mitglied? Anmelden\"})]})]})});}LoginModal.displayName=\"LoginModal\";addPropertyControls(LoginModal,{});// ── Hilfsfunktion: Initialen aus E-Mail ──────────────────────────────────────\nfunction emailInitials(email){const local=email.split(\"@\")[0];const parts=local.split(/[._\\-+]/).filter(Boolean);if(parts.length>=2)return(parts[0][0]+parts[1][0]).toUpperCase();return local.slice(0,2).toUpperCase();}// ── UserButton ────────────────────────────────────────────────────────────────\n// Nicht eingeloggt → öffnet LoginModal\n// Eingeloggt       → navigiert zu /mein-highset\nexport function UserButton({size=36}){const{user}=useUser();if(!user){return /*#__PURE__*/_jsx(\"button\",{onClick:()=>requestLogin(),title:\"Anmelden\",style:{width:size,height:size,borderRadius:size/2,background:\"rgba(255,255,255,0.08)\",border:\"1px solid rgba(255,255,255,0.12)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",color:\"rgba(255,255,255,0.5)\",flexShrink:0},children:/*#__PURE__*/_jsxs(\"svg\",{width:\"16\",height:\"16\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2\",children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"8\",r:\"4\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 20c0-4 3.6-7 8-7s8 3 8 7\"})]})});}const initials=emailInitials(user.email);return /*#__PURE__*/_jsx(\"button\",{onClick:()=>{window.location.href=\"/mein-highset\";},title:\"Mein HIGHSET\",style:{width:size,height:size,borderRadius:size/2,background:GOLD,border:\"none\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",cursor:\"pointer\",color:\"#000\",fontSize:Math.round(size*.35),fontWeight:700,fontFamily:FONT,flexShrink:0},children:initials});}UserButton.displayName=\"UserButton\";addPropertyControls(UserButton,{size:{type:ControlType.Number,defaultValue:36,min:28,max:56,step:2}});// ── FavoriteAreaButton ────────────────────────────────────────────────────────\n// In AreaPage einbauen. areaSlug aus den Daten übergeben.\nexport function FavoriteAreaButton({areaSlug=\"\"}){const{user,isFavorite,toggleFavorite}=useUser();const active=isFavorite(areaSlug);function handle(){if(!user){requestLogin();return;}toggleFavorite(areaSlug);}return /*#__PURE__*/_jsxs(\"button\",{onClick:handle,title:active?\"Aus Favoriten entfernen\":\"Als Lieblingsgebiet speichern\",style:{background:active?\"rgba(212,168,71,0.15)\":\"rgba(255,255,255,0.07)\",border:`1px solid ${active?\"rgba(212,168,71,0.35)\":\"rgba(255,255,255,0.12)\"}`,borderRadius:20,padding:\"8px 14px\",display:\"flex\",alignItems:\"center\",gap:6,cursor:\"pointer\",color:active?GOLD:\"rgba(255,255,255,0.45)\",fontSize:13,fontFamily:FONT,transition:\"all .2s\"},children:[/*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:active?GOLD:\"none\",stroke:active?GOLD:\"currentColor\",strokeWidth:\"2\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"})}),active?\"Gespeichert\":\"Speichern\"]});}FavoriteAreaButton.displayName=\"FavoriteAreaButton\";addPropertyControls(FavoriteAreaButton,{areaSlug:{type:ControlType.String,defaultValue:\"\"}});// ── ProjectButton ─────────────────────────────────────────────────────────────\n// In BoulderPage einbauen. boulderId/boulderName/areaSlug aus den Daten übergeben.\nexport function ProjectButton({boulderId=0,boulderName=\"\",areaSlug=\"\"}){const{user,isProject,toggleProject}=useUser();const active=isProject(boulderId);function handle(){if(!user){requestLogin();return;}toggleProject({id:boulderId,name:boulderName,areaSlug});}return /*#__PURE__*/_jsxs(\"button\",{onClick:handle,title:active?\"Aus Projekten entfernen\":\"Als Projekt merken\",style:{background:active?\"rgba(10,132,255,0.15)\":\"rgba(255,255,255,0.07)\",border:`1px solid ${active?\"rgba(10,132,255,0.35)\":\"rgba(255,255,255,0.12)\"}`,borderRadius:20,padding:\"8px 14px\",display:\"flex\",alignItems:\"center\",gap:6,cursor:\"pointer\",color:active?\"#0A84FF\":\"rgba(255,255,255,0.45)\",fontSize:13,fontFamily:FONT,transition:\"all .2s\"},children:[/*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.5\",children:active?/*#__PURE__*/_jsx(\"path\",{d:\"M20 6L9 17l-5-5\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M12 5v14M5 12h14\"})}),active?\"Im Projekt\":\"Als Projekt\"]});}ProjectButton.displayName=\"ProjectButton\";addPropertyControls(ProjectButton,{boulderId:{type:ControlType.Number,defaultValue:0},boulderName:{type:ControlType.String,defaultValue:\"\"},areaSlug:{type:ControlType.String,defaultValue:\"\"}});// ── TickButton ────────────────────────────────────────────────────────────────\n// In BoulderPage einbauen. Markiert einen Boulder als geklettert (Tick).\nexport function TickButton({boulderId=0,boulderName=\"\",areaSlug=\"\",grade=\"\"}){const{user,isTick,toggleTick}=useUser();const active=isTick(boulderId);function handle(){if(!user){requestLogin();return;}toggleTick({id:boulderId,name:boulderName,areaSlug,grade});}return /*#__PURE__*/_jsxs(\"button\",{onClick:handle,title:active?\"Tick entfernen\":\"Als geklettert markieren\",style:{background:active?\"rgba(48,209,88,0.15)\":\"rgba(255,255,255,0.07)\",border:`1px solid ${active?\"rgba(48,209,88,0.35)\":\"rgba(255,255,255,0.12)\"}`,borderRadius:20,padding:\"8px 14px\",display:\"flex\",alignItems:\"center\",gap:6,cursor:\"pointer\",color:active?\"#30D158\":\"rgba(255,255,255,0.45)\",fontSize:13,fontFamily:FONT,transition:\"all .2s\"},children:[/*#__PURE__*/_jsx(\"svg\",{width:\"14\",height:\"14\",viewBox:\"0 0 24 24\",fill:\"none\",stroke:\"currentColor\",strokeWidth:\"2.5\",children:active?/*#__PURE__*/_jsx(\"path\",{d:\"M20 6L9 17l-5-5\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M9 12l2 2 4-4M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0z\"})}),active?\"Geklettert\":\"Tick\"]});}TickButton.displayName=\"TickButton\";addPropertyControls(TickButton,{boulderId:{type:ControlType.Number,defaultValue:0},boulderName:{type:ControlType.String,defaultValue:\"\"},areaSlug:{type:ControlType.String,defaultValue:\"\"},grade:{type:ControlType.String,defaultValue:\"\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"ProjectButton\":{\"type\":\"reactComponent\",\"name\":\"ProjectButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"openLoginModal\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"TickButton\":{\"type\":\"reactComponent\",\"name\":\"TickButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"FavoriteAreaButton\":{\"type\":\"reactComponent\",\"name\":\"FavoriteAreaButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"useUser\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"LoginModal\":{\"type\":\"reactComponent\",\"name\":\"LoginModal\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"UserButton\":{\"type\":\"reactComponent\",\"name\":\"UserButton\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HighsetUser.map"],"mappings":"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"}