1import{k as _,j as g,a as f,m as b}from"./modules/unplugin-icons-D3Nw-66L.js";import{E as v,b as y,o as s,w,g as t,G as o,H as a,f as n,e as i,v as h,x as k,A as r}from"./modules/vue-CynRjMpH.js";import{I as j}from"./slidev/default-X5cGuVg9.js";import{u as B,f as C}from"./slidev/context-zDDIoJ0W.js";import"./index-DCfA-xrU.js";import"./modules/shiki-CCaIuvDs.js";const E={class:"grid grid-cols-3 gap-6 mt-8"},P={class:"text-center"},I={class:"w-20 h-20 mx-auto mb-4 rounded-full bg-yellow-500/20 flex items-center justify-center"},V={class:"text-center"},$={class:"w-20 h-20 mx-auto mb-4 rounded-full bg-purple-500/20 flex items-center justify-center"},D={class:"text-center"},F={class:"w-20 h-20 mx-auto mb-4 rounded-full bg-green-500/20 flex items-center justify-center"},N={class:"mt-8 text-center"},R={class:"inline-flex items-center gap-2 px-6 py-3 bg-green-900/30 rounded-full border border-green-500/50"},U={__name:"slides.md__slidev_7",setup(S){const{$clicksContext:c,$frontmatter:u}=B();return c.setup(),(T,e)=>{const d=_,m=g,x=f,p=b,l=v("click");return s(),y(j,h(k(r(C)(r(u),6))),{default:w(()=>[e[7]||(e[7]=t("h1",null,[a("The Supabase Features Weâre Using "),t("span",{class:"text-red-400"},"ð¯")],-1)),t("div",E,[o((s(),n("div",P,[t("div",I,[i(d,{class:"text-4xl text-yellow-400"})]),e[0]||(e[0]=t("h3",{class:"text-xl font-bold text-yellow-400 mb-2"},"1. Realtime Channels",-1)),e[1]||(e[1]=t("ul",{class:"text-sm text-left text-gray-300 space-y-1"},[t("li",null,"Live sync of player guesses"),t("li",null,"Instant game state updates"),t("li",null,"Built on Postgres logical replication")],-1))])),[[l]]),o((s(),n("div",V,[t("div",$,[i(m,{class:"text-4xl text-purple-400"})]),e[2]||(e[2]=t("h3",{class:"text-xl font-bold text-purple-400 mb-2"},"2. Edge Functions",-1)),e[3]||(e[3]=t("ul",{class:"text-sm text-left text-gray-300 space-y-1"},[t("li",null,"Validate guesses server-side"),t("li",null,"Calculate distances from target"),t("li",null,"Rate limiting and security")],-1))])),[[l]]),o((s(),n("div",D,[t("div",F,[i(x,{class:"text-4xl text-green-400"})]),e[4]||(e[4]=t("h3",{class:"text-xl font-bold text-green-400 mb-2"},"3. PostGIS Extension",-1)),e[5]||(e[5]=t("ul",{class:"text-sm text-left text-gray-300 space-y-1"},[t("li",null,"Efficient geo coordinate storage"),t("li",null,"Fast spatial queries at scale"),t("li",null,"Distance & polygon calculations")],-1))])),[[l]])]),o((s(),n("div",N,[t("div",R,[i(p,{class:"text-yellow-400"}),e[6]||(e[6]=t("span",null,[a("All three work together for "),t("span",{class:"text-green-400 font-bold"},"real-time geospatial magic!")],-1))])])),[[l]]),e[8]||(e[8]=t("div",{class:"absolute bottom-4 right-4 text-sm text-white/50"},"6",-1))]),_:1},16)}}};export{U as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.