Market
Place your bets and compete
',2)])]),(r(!0),o(f,null,h(i.value,a=>(r(),o("div",{key:a.steam_app_id,onClick:p=>c(a.path),class:"card card-xl bg-base-200 shadow-xl hover:shadow-2xl transition-all cursor-pointer transform hover:-translate-y-2 hover:scale-[1.05] hover:bg-base-100 overflow-hidden"},[e("figure",N,[d.value.has(a.steam_app_id)?(r(),o("div",A,[...t[3]||(t[3]=[e("i",{class:"mdi mdi-gamepad-variant text-5xl"},null,-1)])])):(r(),o("img",{key:0,src:u(a.steam_app_id),alt:a.name,onError:p=>b(a.steam_app_id),class:"w-full h-full object-cover"},null,40,$)),t[4]||(t[4]=e("div",{class:"absolute inset-0 bg-black/30 group-hover:bg-black/20 transition-colors"},null,-1))]),e("div",I,[e("h2",L,y(a.name),1),t[5]||(t[5]=e("div",{class:"card-actions justify-end mt-4"},[e("button",{class:"btn btn-primary"},[e("i",{class:"mdi mdi-arrow-right mr-2"}),_(" Submit results ")])],-1))])],8,B))),128))])),t[7]||(t[7]=e("div",{class:"text-center mt-12 text-base-content/50"},[e("p",null,"Select a game above to begin submitting")],-1))])]))}}),m="#app",V=document.querySelector(m),D=w(P,{...V?.dataset});D.mount(m);
+import{d as v,r as l,q as g,a as o,o as r,b as e,j as f,F as x,g as h,t as y,f as _,E as w}from"./style-CCc0RrA9.js";import{g as k}from"./sdk.gen-CMTwTM_A.js";const j={class:"min-h-screen bg-base-300 flex items-center justify-center px-4"},S={class:"w-full max-w-6xl"},E={key:0,class:"flex justify-center py-20"},C={key:1,class:"grid grid-cols-1 md:grid-cols-2 gap-8"},N=["onClick"],$={class:"relative h-60 bg-base-300 overflow-hidden"},A=["src","alt","onError"],B={key:1,class:"w-full h-full bg-gradient-to-br from-blue-600 to-blue-400 flex items-center justify-center text-white"},L={class:"card-body"},P={class:"card-title text-2xl"},V=v({__name:"Home",setup(F){const i=l(),n=l(!0),d=l(new Set),u=s=>`https://cdn.akamai.steamstatic.com/steam/apps/${s}/header.jpg`,b=s=>{d.value.add(s)},c=s=>{window.location.href=s};return g(async()=>{const s=await k();s.data&&(i.value=s.data),n.value=!1}),(s,t)=>(r(),o("div",j,[e("div",S,[t[6]||(t[6]=e("div",{class:"text-center mb-12"},[e("h1",{class:"text-5xl font-bold mb-4"},"PolyLAN Submitter"),e("p",{class:"text-xl text-base-content/70"}," Choose a game and submit your best solutions ")],-1)),n.value?(r(),o("div",E,[...t[1]||(t[1]=[e("span",{class:"loading loading-spinner loading-lg"},null,-1)])])):(r(),o("div",C,[e("div",{onClick:t[0]||(t[0]=a=>c("/market")),class:"card card-xl bg-base-200 shadow-xl hover:shadow-2xl transition-all cursor-pointer transform hover:-translate-y-2 hover:scale-[1.05] hover:bg-base-100 overflow-hidden"},[...t[2]||(t[2]=[f('Market
Place your bets and compete
',2)])]),(r(!0),o(x,null,h(i.value,a=>(r(),o("div",{key:a.steam_app_id,onClick:p=>c(a.path),class:"card card-xl bg-base-200 shadow-xl hover:shadow-2xl transition-all cursor-pointer transform hover:-translate-y-2 hover:scale-[1.05] hover:bg-base-100 overflow-hidden"},[e("figure",$,[d.value.has(a.steam_app_id)?(r(),o("div",B,[...t[3]||(t[3]=[e("i",{class:"mdi mdi-gamepad-variant text-5xl"},null,-1)])])):(r(),o("img",{key:0,src:u(a.steam_app_id),alt:a.name,onError:p=>b(a.steam_app_id),class:"w-full h-full object-cover"},null,40,A)),t[4]||(t[4]=e("div",{class:"absolute inset-0 bg-black/30 group-hover:bg-black/20 transition-colors"},null,-1))]),e("div",L,[e("h2",P,y(a.name),1),t[5]||(t[5]=e("div",{class:"card-actions justify-end mt-4"},[e("button",{class:"btn btn-primary"},[e("i",{class:"mdi mdi-arrow-right mr-2"}),_(" Submit results ")])],-1))])],8,N))),128))])),t[7]||(t[7]=e("div",{class:"text-center mt-12 text-base-content/50"},[e("p",null,"Select a game above to begin submitting")],-1))])]))}}),m="#app",q=document.querySelector(m),D=w(V,{...q?.dataset});D.mount(m);
diff --git a/polylan_submitter/static_source/vite/assets/index-B10U1JZR.js b/polylan_submitter/static_source/vite/assets/index-B10U1JZR.js
new file mode 100644
index 0000000..3524a9b
--- /dev/null
+++ b/polylan_submitter/static_source/vite/assets/index-B10U1JZR.js
@@ -0,0 +1,5 @@
+import{H as K,r as V,I as q,J as z,c as Q,y as p,K as F,L as st,M as nt,N as ot,O as ct,B as rt,C as at,w as ut,h as ft,P as lt,d as it,a as m,o as j,t as E}from"./style-CCc0RrA9.js";/*!
+ * pinia v3.0.3
+ * (c) 2025 Eduardo San Martin Morote
+ * @license MIT
+ */let U;const I=t=>U=t,X=Symbol();function B(t){return t&&typeof t=="object"&&Object.prototype.toString.call(t)==="[object Object]"&&typeof t.toJSON!="function"}var R;(function(t){t.direct="direct",t.patchObject="patch object",t.patchFunction="patch function"})(R||(R={}));function ht(){const t=K(!0),n=t.run(()=>V({}));let s=[],e=[];const r=q({install(a){I(r),r._a=a,a.provide(X,r),a.config.globalProperties.$pinia=r,e.forEach(u=>s.push(u)),e=[]},use(a){return this._a?s.push(a):e.push(a),this},_p:s,_a:null,_e:t,_s:new Map,state:n});return r}const Y=()=>{};function D(t,n,s,e=Y){t.push(n);const r=()=>{const a=t.indexOf(n);a>-1&&(t.splice(a,1),e())};return!s&&rt()&&at(r),r}function x(t,...n){t.slice().forEach(s=>{s(...n)})}const bt=t=>t(),J=Symbol(),N=Symbol();function W(t,n){t instanceof Map&&n instanceof Map?n.forEach((s,e)=>t.set(e,s)):t instanceof Set&&n instanceof Set&&n.forEach(t.add,t);for(const s in n){if(!n.hasOwnProperty(s))continue;const e=n[s],r=t[s];B(r)&&B(e)&&t.hasOwnProperty(s)&&!p(e)&&!F(e)?t[s]=W(r,e):t[s]=e}return t}const yt=Symbol();function dt(t){return!B(t)||!Object.prototype.hasOwnProperty.call(t,yt)}const{assign:h}=Object;function St(t){return!!(p(t)&&t.effect)}function vt(t,n,s,e){const{state:r,actions:a,getters:u}=n,C=s.state.value[t];let y;function b(){C||(s.state.value[t]=r?r():{});const d=lt(s.state.value[t]);return h(d,a,Object.keys(u||{}).reduce((S,v)=>(S[v]=q(Q(()=>{I(s);const g=s._s.get(t);return u[v].call(g,g)})),S),{}))}return y=Z(t,b,n,s,e,!0),y}function Z(t,n,s={},e,r,a){let u;const C=h({actions:{}},s),y={deep:!0};let b,d,S=[],v=[],g;const k=e.state.value[t];!a&&!k&&(e.state.value[t]={}),V({});let H;function M(c){let o;b=d=!1,typeof c=="function"?(c(e.state.value[t]),o={type:R.patchFunction,storeId:t,events:g}):(W(e.state.value[t],c),o={type:R.patchObject,payload:c,storeId:t,events:g});const f=H=Symbol();ft().then(()=>{H===f&&(b=!0)}),d=!0,x(S,o,e.state.value[t])}const G=a?function(){const{state:o}=s,f=o?o():{};this.$patch(_=>{h(_,f)})}:Y;function $(){u.stop(),S=[],v=[],e._s.delete(t)}const A=(c,o="")=>{if(J in c)return c[N]=o,c;const f=function(){I(e);const _=Array.from(arguments),P=[],L=[];function tt(l){P.push(l)}function et(l){L.push(l)}x(v,{args:_,name:f[N],store:i,after:tt,onError:et});let w;try{w=c.apply(this&&this.$id===t?this:i,_)}catch(l){throw x(L,l),l}return w instanceof Promise?w.then(l=>(x(P,l),l)).catch(l=>(x(L,l),Promise.reject(l))):(x(P,w),w)};return f[J]=!0,f[N]=o,f},T={_p:e,$id:t,$onAction:D.bind(null,v),$patch:M,$reset:G,$subscribe(c,o={}){const f=D(S,c,o.detached,()=>_()),_=u.run(()=>ut(()=>e.state.value[t],P=>{(o.flush==="sync"?d:b)&&c({storeId:t,type:R.direct,events:g},P)},h({},y,o)));return f},$dispose:$},i=ct(T);e._s.set(t,i);const O=(e._a&&e._a.runWithContext||bt)(()=>e._e.run(()=>(u=K()).run(()=>n({action:A}))));for(const c in O){const o=O[c];if(p(o)&&!St(o)||F(o))a||(k&&dt(o)&&(p(o)?o.value=k[c]:W(o,k[c])),e.state.value[t][c]=o);else if(typeof o=="function"){const f=A(o,c);O[c]=f,C.actions[c]=o}}return h(i,O),h(z(i),O),Object.defineProperty(i,"$state",{get:()=>e.state.value[t],set:c=>{M(o=>{h(o,c)})}}),e._p.forEach(c=>{h(i,u.run(()=>c({store:i,app:e._a,pinia:e,options:C})))}),k&&a&&s.hydrate&&s.hydrate(i.$state,k),b=!0,d=!0,i}/*! #__NO_SIDE_EFFECTS__ */function Pt(t,n,s){let e;const r=typeof n=="function";e=r?s:n;function a(u,C){const y=ot();return u=u||(y?nt(X,null):null),u&&I(u),u=U,u._s.has(t)||(r?Z(t,n,e,u):vt(t,e,u)),u._s.get(t)}return a.$id=t,a}function wt(t){const n=z(t),s={};for(const e in n){const r=n[e];r.effect?s[e]=Q({get:()=>t[e],set(a){t[e]=a}}):(p(r)||F(r))&&(s[e]=st(t,e))}return s}const gt={key:0,class:"flex justify-center"},kt={key:0,class:"badge badge-warning badge-lg"},_t={key:1,class:"badge badge-lg"},mt={key:2,class:"badge badge-lg"},jt={key:3,class:"badge badge-lg"},xt={key:1,class:"text-2xl text-base-content/50"},Rt=it({__name:"RankBadge",props:{rank:{}},setup(t){return(n,s)=>t.rank!==null?(j(),m("div",gt,[t.rank===1?(j(),m("span",kt," š #"+E(t.rank),1)):t.rank===2?(j(),m("span",_t," š„ #"+E(t.rank),1)):t.rank===3?(j(),m("span",mt," š„ #"+E(t.rank),1)):(j(),m("span",jt," #"+E(t.rank),1))])):(j(),m("div",xt," No rank yet "))}}),pt=ht();export{Rt as _,Pt as d,pt as p,wt as s};
diff --git a/polylan_submitter/static_source/vite/assets/noita-BBUDcHwQ.js b/polylan_submitter/static_source/vite/assets/noita-BBUDcHwQ.js
new file mode 100644
index 0000000..eb759d4
--- /dev/null
+++ b/polylan_submitter/static_source/vite/assets/noita-BBUDcHwQ.js
@@ -0,0 +1,22 @@
+import{r as J,y as st,x as lt,w as ut,G as at,u as T,d as gt,c as Te,q as dt,a as H,o as L,b as p,f as K,e as Q,t as O,l as Be,F as ue,g as de,n as ne,E as ct}from"./style-CCc0RrA9.js";import{d as ft,s as pt,_ as qe,p as mt}from"./index-B10U1JZR.js";function ht(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var _e={exports:{}},vt=_e.exports,Ue;function St(){return Ue||(Ue=1,(function(e,o){(function(t,n){e.exports=n()})(vt,(function(){var t=1e3,n=6e4,r=36e5,i="millisecond",s="second",u="minute",a="hour",d="day",f="week",h="month",g="quarter",l="year",c="date",m="Invalid Date",y=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,M=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,G={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(V){var C=["th","st","nd","rd"],S=V%100;return"["+V+(C[(S-20)%10]||C[S]||C[0])+"]"}},A=function(V,C,S){var _=String(V);return!_||_.length>=C?V:""+Array(C+1-_.length).join(S)+V},N={s:A,z:function(V){var C=-V.utcOffset(),S=Math.abs(C),_=Math.floor(S/60),w=S%60;return(C<=0?"+":"-")+A(_,2,"0")+":"+A(w,2,"0")},m:function V(C,S){if(C.date()