diff --git a/404.html b/404.html
index c038983..8cfd90f 100644
--- a/404.html
+++ b/404.html
@@ -25,7 +25,7 @@
 
     <link rel="icon" type="image/png" href="https://pileon.net//favicon.png" />
     <link rel="manifest" href="https://pileon.net//manifest.json" />
-    <script type="module" crossorigin src="https://pileon.net/assets/index-ef40a9f5.js"></script>
+    <script type="module" crossorigin src="https://pileon.net/assets/index-3c7228fc.js"></script>
     <link rel="stylesheet" href="https://pileon.net/assets/index-7167bc07.css">
   <link rel="manifest" href="https://pileon.net/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="https://pileon.net/registerSW.js"></script></head>
 
diff --git a/assets/index-ef40a9f5.js b/assets/index-3c7228fc.js
similarity index 80%
rename from assets/index-ef40a9f5.js
rename to assets/index-3c7228fc.js
index f0bcc5a..8a4295f 100644
--- a/assets/index-ef40a9f5.js
+++ b/assets/index-3c7228fc.js
@@ -1,20 +1,20 @@
-var gr=Object.defineProperty;var hr=(t,e,n)=>e in t?gr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var vt=(t,e,n)=>(hr(t,typeof e!="symbol"?e+"":e,n),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();function te(){}function vr(t,e){for(const n in e)t[n]=e[n];return t}function Fn(t){return t()}function Kt(){return Object.create(null)}function ye(t){t.forEach(Fn)}function de(t){return typeof t=="function"}function Y(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}function pr(t){return Object.keys(t).length===0}function Mn(t,...e){if(t==null){for(const r of e)r(void 0);return te}const n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function br(t){let e;return Mn(t,n=>e=n)(),e}function pe(t,e,n){t.$$.on_destroy.push(Mn(e,n))}function ot(t,e,n,r){if(t){const i=Ln(t,e,n,r);return t[0](i)}}function Ln(t,e,n,r){return t[1]&&r?vr(n.ctx.slice(),t[1](r(e))):n.ctx}function lt(t,e,n,r){if(t[2]&&r){const i=t[2](r(n));if(e.dirty===void 0)return i;if(typeof i=="object"){const o=[],l=Math.max(e.dirty.length,i.length);for(let a=0;a<l;a+=1)o[a]=e.dirty[a]|i[a];return o}return e.dirty|i}return e.dirty}function at(t,e,n,r,i,o){if(i){const l=Ln(e,n,r,o);t.p(l,i)}}function st(t){if(t.ctx.length>32){const e=[],n=t.ctx.length/32;for(let r=0;r<n;r++)e[r]=-1;return e}return-1}function _(t,e){t.appendChild(e)}function D(t,e,n){t.insertBefore(e,n||null)}function E(t){t.parentNode&&t.parentNode.removeChild(t)}function Pe(t,e){for(let n=0;n<t.length;n+=1)t[n]&&t[n].d(e)}function C(t){return document.createElement(t)}function Xe(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function Q(t){return document.createTextNode(t)}function M(){return Q(" ")}function At(){return Q("")}function re(t,e,n,r){return t.addEventListener(e,n,r),()=>t.removeEventListener(e,n,r)}function b(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function yr(t){return Array.from(t.childNodes)}function fe(t,e){e=""+e,t.data!==e&&(t.data=e)}function Ee(t,e,n,r){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,r?"important":"")}let We;function _r(){if(We===void 0){We=!1;try{typeof window<"u"&&window.parent&&window.parent.document}catch{We=!0}}return We}function wr(t,e){getComputedStyle(t).position==="static"&&(t.style.position="relative");const r=C("iframe");r.setAttribute("style","display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;"),r.setAttribute("aria-hidden","true"),r.tabIndex=-1;const i=_r();let o;return i?(r.src="data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}<\/script>",o=re(window,"message",l=>{l.source===r.contentWindow&&e()})):(r.src="about:blank",r.onload=()=>{o=re(r.contentWindow,"resize",e),e()}),_(t,r),()=>{(i||o&&r.contentWindow)&&o(),E(r)}}function q(t,e,n){t.classList.toggle(e,!!n)}function Sr(t,e,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(t,{detail:e,bubbles:n,cancelable:r})}function zt(t,e){return new t(e)}let ze;function Ue(t){ze=t}function He(){if(!ze)throw new Error("Function called outside component initialization");return ze}function ut(t){He().$$.on_mount.push(t)}function In(t){He().$$.on_destroy.push(t)}function ft(){const t=He();return(e,n,{cancelable:r=!1}={})=>{const i=t.$$.callbacks[e];if(i){const o=Sr(e,n,{cancelable:r});return i.slice().forEach(l=>{l.call(t,o)}),!o.defaultPrevented}return!0}}function kr(t,e){return He().$$.context.set(t,e),e}function Rn(t){return He().$$.context.get(t)}function yt(t,e){const n=t.$$.callbacks[e.type];n&&n.slice().forEach(r=>r.call(this,e))}const $e=[],_t=[];let De=[];const Bt=[],Cr=Promise.resolve();let wt=!1;function Tr(){wt||(wt=!0,Cr.then(jn))}function xe(t){De.push(t)}const pt=new Set;let Ce=0;function jn(){if(Ce!==0)return;const t=ze;do{try{for(;Ce<$e.length;){const e=$e[Ce];Ce++,Ue(e),Nr(e.$$)}}catch(e){throw $e.length=0,Ce=0,e}for(Ue(null),$e.length=0,Ce=0;_t.length;)_t.pop()();for(let e=0;e<De.length;e+=1){const n=De[e];pt.has(n)||(pt.add(n),n())}De.length=0}while($e.length);for(;Bt.length;)Bt.pop()();wt=!1,pt.clear(),Ue(t)}function Nr(t){if(t.fragment!==null){t.update(),ye(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(xe)}}function Or(t){const e=[],n=[];De.forEach(r=>t.indexOf(r)===-1?e.push(r):n.push(r)),n.forEach(r=>r()),De=e}const Qe=new Set;let Se;function x(){Se={r:0,c:[],p:Se}}function ee(){Se.r||ye(Se.c),Se=Se.p}function y(t,e){t&&t.i&&(Qe.delete(t),t.i(e))}function k(t,e,n,r){if(t&&t.o){if(Qe.has(t))return;Qe.add(t),Se.c.push(()=>{Qe.delete(t),r&&(n&&t.d(1),r())}),t.o(e)}else r&&r()}function le(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function K(t){t&&t.c()}function j(t,e,n){const{fragment:r,after_update:i}=t.$$;r&&r.m(e,n),xe(()=>{const o=t.$$.on_mount.map(Fn).filter(de);t.$$.on_destroy?t.$$.on_destroy.push(...o):ye(o),t.$$.on_mount=[]}),i.forEach(xe)}function U(t,e){const n=t.$$;n.fragment!==null&&(Or(n.after_update),ye(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Ar(t,e){t.$$.dirty[0]===-1&&($e.push(t),Tr(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Z(t,e,n,r,i,o,l,a=[-1]){const s=ze;Ue(t);const u=t.$$={fragment:null,ctx:[],props:o,update:te,not_equal:i,bound:Kt(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(s?s.$$.context:[])),callbacks:Kt(),dirty:a,skip_bound:!1,root:e.target||s.$$.root};l&&l(u.root);let d=!1;if(u.ctx=n?n(t,e.props||{},(c,f,...m)=>{const g=m.length?m[0]:f;return u.ctx&&i(u.ctx[c],u.ctx[c]=g)&&(!u.skip_bound&&u.bound[c]&&u.bound[c](g),d&&Ar(t,c)),f}):[],u.update(),d=!0,ye(u.before_update),u.fragment=r?r(u.ctx):!1,e.target){if(e.hydrate){const c=yr(e.target);u.fragment&&u.fragment.l(c),c.forEach(E)}else u.fragment&&u.fragment.c();e.intro&&y(t.$$.fragment),j(t,e.target,e.anchor),jn()}Ue(s)}class X{constructor(){vt(this,"$$");vt(this,"$$set")}$destroy(){U(this,1),this.$destroy=te}$on(e,n){if(!de(n))return te;const r=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return r.push(n),()=>{const i=r.indexOf(n);i!==-1&&r.splice(i,1)}}$set(e){this.$$set&&!pr(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const $r="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add($r);function Er(t){let e;return{c(){e=C("span"),e.textContent=`at ${t[0]} ${t[1]}`},m(n,r){D(n,e,r)},p:te,d(n){n&&E(e)}}}function Dr(t){let e,n,r,i=(t[1]||t[0])&&Er(t);return{c(){e=C("footer"),n=C("a"),n.textContent="kangasta / pileon",r=M(),i&&i.c(),b(n,"href","https://github.com/kangasta/pileon.git"),b(n,"target","_blank"),b(e,"class","svelte-ivyywu")},m(o,l){D(o,e,l),_(e,n),_(e,r),i&&i.m(e,null)},p(o,[l]){(o[1]||o[0])&&i.p(o,l)},i:te,o:te,d(o){o&&E(e),i&&i.d()}}}function Pr(t){const e={}.VITE_TAG??"",n="5ab720b58f6d92a92bff8a7c434acc70cb13df08".slice(0,8);return[e,n]}class Fr extends X{constructor(e){super(),Z(this,e,Pr,Dr,Y,{})}}const Te=[];function $t(t,e=te){let n;const r=new Set;function i(a){if(Y(t,a)&&(t=a,n)){const s=!Te.length;for(const u of r)u[1](),Te.push(u,t);if(s){for(let u=0;u<Te.length;u+=2)Te[u][0](Te[u+1]);Te.length=0}}}function o(a){i(a(t))}function l(a,s=te){const u=[a,s];return r.add(u),r.size===1&&(n=e(i,o)||te),a(t),()=>{r.delete(u),r.size===0&&n&&(n(),n=null)}}return{set:i,update:o,subscribe:l}}const Un="settings",Mr={game:"pileon",colors:"default",size:"default"},Lr=JSON.parse(localStorage.getItem(Un)),Fe=$t(Lr??Mr);Fe.subscribe(t=>localStorage.setItem(Un,JSON.stringify(t)));const Ir={},Me=$t(Ir);/*!
+var gr=Object.defineProperty;var hr=(t,e,n)=>e in t?gr(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var vt=(t,e,n)=>(hr(t,typeof e!="symbol"?e+"":e,n),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const l of o.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&r(l)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();function te(){}function vr(t,e){for(const n in e)t[n]=e[n];return t}function Fn(t){return t()}function Kt(){return Object.create(null)}function ye(t){t.forEach(Fn)}function de(t){return typeof t=="function"}function Y(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}function pr(t){return Object.keys(t).length===0}function Mn(t,...e){if(t==null){for(const r of e)r(void 0);return te}const n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function br(t){let e;return Mn(t,n=>e=n)(),e}function pe(t,e,n){t.$$.on_destroy.push(Mn(e,n))}function ot(t,e,n,r){if(t){const i=Ln(t,e,n,r);return t[0](i)}}function Ln(t,e,n,r){return t[1]&&r?vr(n.ctx.slice(),t[1](r(e))):n.ctx}function lt(t,e,n,r){if(t[2]&&r){const i=t[2](r(n));if(e.dirty===void 0)return i;if(typeof i=="object"){const o=[],l=Math.max(e.dirty.length,i.length);for(let a=0;a<l;a+=1)o[a]=e.dirty[a]|i[a];return o}return e.dirty|i}return e.dirty}function at(t,e,n,r,i,o){if(i){const l=Ln(e,n,r,o);t.p(l,i)}}function st(t){if(t.ctx.length>32){const e=[],n=t.ctx.length/32;for(let r=0;r<n;r++)e[r]=-1;return e}return-1}function _(t,e){t.appendChild(e)}function D(t,e,n){t.insertBefore(e,n||null)}function $(t){t.parentNode&&t.parentNode.removeChild(t)}function Pe(t,e){for(let n=0;n<t.length;n+=1)t[n]&&t[n].d(e)}function C(t){return document.createElement(t)}function Xe(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function Q(t){return document.createTextNode(t)}function M(){return Q(" ")}function At(){return Q("")}function re(t,e,n,r){return t.addEventListener(e,n,r),()=>t.removeEventListener(e,n,r)}function b(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function yr(t){return Array.from(t.childNodes)}function fe(t,e){e=""+e,t.data!==e&&(t.data=e)}function $e(t,e,n,r){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,r?"important":"")}let We;function _r(){if(We===void 0){We=!1;try{typeof window<"u"&&window.parent&&window.parent.document}catch{We=!0}}return We}function wr(t,e){getComputedStyle(t).position==="static"&&(t.style.position="relative");const r=C("iframe");r.setAttribute("style","display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;"),r.setAttribute("aria-hidden","true"),r.tabIndex=-1;const i=_r();let o;return i?(r.src="data:text/html,<script>onresize=function(){parent.postMessage(0,'*')}<\/script>",o=re(window,"message",l=>{l.source===r.contentWindow&&e()})):(r.src="about:blank",r.onload=()=>{o=re(r.contentWindow,"resize",e),e()}),_(t,r),()=>{(i||o&&r.contentWindow)&&o(),$(r)}}function q(t,e,n){t.classList.toggle(e,!!n)}function Sr(t,e,{bubbles:n=!1,cancelable:r=!1}={}){return new CustomEvent(t,{detail:e,bubbles:n,cancelable:r})}function zt(t,e){return new t(e)}let ze;function Ue(t){ze=t}function He(){if(!ze)throw new Error("Function called outside component initialization");return ze}function ut(t){He().$$.on_mount.push(t)}function In(t){He().$$.on_destroy.push(t)}function ft(){const t=He();return(e,n,{cancelable:r=!1}={})=>{const i=t.$$.callbacks[e];if(i){const o=Sr(e,n,{cancelable:r});return i.slice().forEach(l=>{l.call(t,o)}),!o.defaultPrevented}return!0}}function kr(t,e){return He().$$.context.set(t,e),e}function Rn(t){return He().$$.context.get(t)}function yt(t,e){const n=t.$$.callbacks[e.type];n&&n.slice().forEach(r=>r.call(this,e))}const Ee=[],_t=[];let De=[];const Bt=[],Cr=Promise.resolve();let wt=!1;function Tr(){wt||(wt=!0,Cr.then(jn))}function xe(t){De.push(t)}const pt=new Set;let Ce=0;function jn(){if(Ce!==0)return;const t=ze;do{try{for(;Ce<Ee.length;){const e=Ee[Ce];Ce++,Ue(e),Nr(e.$$)}}catch(e){throw Ee.length=0,Ce=0,e}for(Ue(null),Ee.length=0,Ce=0;_t.length;)_t.pop()();for(let e=0;e<De.length;e+=1){const n=De[e];pt.has(n)||(pt.add(n),n())}De.length=0}while(Ee.length);for(;Bt.length;)Bt.pop()();wt=!1,pt.clear(),Ue(t)}function Nr(t){if(t.fragment!==null){t.update(),ye(t.before_update);const e=t.dirty;t.dirty=[-1],t.fragment&&t.fragment.p(t.ctx,e),t.after_update.forEach(xe)}}function Or(t){const e=[],n=[];De.forEach(r=>t.indexOf(r)===-1?e.push(r):n.push(r)),n.forEach(r=>r()),De=e}const Qe=new Set;let Se;function x(){Se={r:0,c:[],p:Se}}function ee(){Se.r||ye(Se.c),Se=Se.p}function y(t,e){t&&t.i&&(Qe.delete(t),t.i(e))}function k(t,e,n,r){if(t&&t.o){if(Qe.has(t))return;Qe.add(t),Se.c.push(()=>{Qe.delete(t),r&&(n&&t.d(1),r())}),t.o(e)}else r&&r()}function le(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function K(t){t&&t.c()}function j(t,e,n){const{fragment:r,after_update:i}=t.$$;r&&r.m(e,n),xe(()=>{const o=t.$$.on_mount.map(Fn).filter(de);t.$$.on_destroy?t.$$.on_destroy.push(...o):ye(o),t.$$.on_mount=[]}),i.forEach(xe)}function U(t,e){const n=t.$$;n.fragment!==null&&(Or(n.after_update),ye(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function Ar(t,e){t.$$.dirty[0]===-1&&(Ee.push(t),Tr(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<<e%31}function Z(t,e,n,r,i,o,l,a=[-1]){const s=ze;Ue(t);const u=t.$$={fragment:null,ctx:[],props:o,update:te,not_equal:i,bound:Kt(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(e.context||(s?s.$$.context:[])),callbacks:Kt(),dirty:a,skip_bound:!1,root:e.target||s.$$.root};l&&l(u.root);let d=!1;if(u.ctx=n?n(t,e.props||{},(f,c,...m)=>{const g=m.length?m[0]:c;return u.ctx&&i(u.ctx[f],u.ctx[f]=g)&&(!u.skip_bound&&u.bound[f]&&u.bound[f](g),d&&Ar(t,f)),c}):[],u.update(),d=!0,ye(u.before_update),u.fragment=r?r(u.ctx):!1,e.target){if(e.hydrate){const f=yr(e.target);u.fragment&&u.fragment.l(f),f.forEach($)}else u.fragment&&u.fragment.c();e.intro&&y(t.$$.fragment),j(t,e.target,e.anchor),jn()}Ue(s)}class X{constructor(){vt(this,"$$");vt(this,"$$set")}$destroy(){U(this,1),this.$destroy=te}$on(e,n){if(!de(n))return te;const r=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return r.push(n),()=>{const i=r.indexOf(n);i!==-1&&r.splice(i,1)}}$set(e){this.$$set&&!pr(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const Er="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(Er);function $r(t){let e;return{c(){e=C("span"),e.textContent=`at ${t[0]} ${t[1]}`},m(n,r){D(n,e,r)},p:te,d(n){n&&$(e)}}}function Dr(t){let e,n,r,i=(t[1]||t[0])&&$r(t);return{c(){e=C("footer"),n=C("a"),n.textContent="kangasta / pileon",r=M(),i&&i.c(),b(n,"href","https://github.com/kangasta/pileon.git"),b(n,"target","_blank"),b(e,"class","svelte-ivyywu")},m(o,l){D(o,e,l),_(e,n),_(e,r),i&&i.m(e,null)},p(o,[l]){(o[1]||o[0])&&i.p(o,l)},i:te,o:te,d(o){o&&$(e),i&&i.d()}}}function Pr(t){const e={}.VITE_TAG??"",n="2db0e91a9487e5b42c8b8d913c9e1de033885b2a".slice(0,8);return[e,n]}class Fr extends X{constructor(e){super(),Z(this,e,Pr,Dr,Y,{})}}const Te=[];function Et(t,e=te){let n;const r=new Set;function i(a){if(Y(t,a)&&(t=a,n)){const s=!Te.length;for(const u of r)u[1](),Te.push(u,t);if(s){for(let u=0;u<Te.length;u+=2)Te[u][0](Te[u+1]);Te.length=0}}}function o(a){i(a(t))}function l(a,s=te){const u=[a,s];return r.add(u),r.size===1&&(n=e(i,o)||te),a(t),()=>{r.delete(u),r.size===0&&n&&(n(),n=null)}}return{set:i,update:o,subscribe:l}}const Un="settings",Mr={game:"pileon",colors:"default",size:"default"},Lr=JSON.parse(localStorage.getItem(Un)),Fe=Et(Lr??Mr);Fe.subscribe(t=>localStorage.setItem(Un,JSON.stringify(t)));const Ir={},Me=Et(Ir);/*!
 * tabbable 6.2.0
 * @license MIT, https://github.com/focus-trap/tabbable/blob/master/LICENSE
-*/var Kn=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],et=Kn.join(","),zn=typeof Element>"u",ke=zn?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,tt=!zn&&Element.prototype.getRootNode?function(t){var e;return t==null||(e=t.getRootNode)===null||e===void 0?void 0:e.call(t)}:function(t){return t==null?void 0:t.ownerDocument},nt=function t(e,n){var r;n===void 0&&(n=!0);var i=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),o=i===""||i==="true",l=o||n&&e&&t(e.parentNode);return l},Rr=function(e){var n,r=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"contenteditable");return r===""||r==="true"},Bn=function(e,n,r){if(nt(e))return[];var i=Array.prototype.slice.apply(e.querySelectorAll(et));return n&&ke.call(e,et)&&i.unshift(e),i=i.filter(r),i},Vn=function t(e,n,r){for(var i=[],o=Array.from(e);o.length;){var l=o.shift();if(!nt(l,!1))if(l.tagName==="SLOT"){var a=l.assignedElements(),s=a.length?a:l.children,u=t(s,!0,r);r.flatten?i.push.apply(i,u):i.push({scopeParent:l,candidates:u})}else{var d=ke.call(l,et);d&&r.filter(l)&&(n||!e.includes(l))&&i.push(l);var c=l.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(l),f=!nt(c,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(l));if(c&&f){var m=t(c===!0?l.children:c.children,!0,r);r.flatten?i.push.apply(i,m):i.push({scopeParent:l,candidates:m})}else o.unshift.apply(o,l.children)}}return i},qn=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},we=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||Rr(e))&&!qn(e)?0:e.tabIndex},jr=function(e,n){var r=we(e);return r<0&&n&&!qn(e)?0:r},Ur=function(e,n){return e.tabIndex===n.tabIndex?e.documentOrder-n.documentOrder:e.tabIndex-n.tabIndex},Hn=function(e){return e.tagName==="INPUT"},Kr=function(e){return Hn(e)&&e.type==="hidden"},zr=function(e){var n=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return n},Br=function(e,n){for(var r=0;r<e.length;r++)if(e[r].checked&&e[r].form===n)return e[r]},Vr=function(e){if(!e.name)return!0;var n=e.form||tt(e),r=function(a){return n.querySelectorAll('input[type="radio"][name="'+a+'"]')},i;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")i=r(window.CSS.escape(e.name));else try{i=r(e.name)}catch(l){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",l.message),!1}var o=Br(i,e.form);return!o||o===e},qr=function(e){return Hn(e)&&e.type==="radio"},Hr=function(e){return qr(e)&&!Vr(e)},Wr=function(e){var n,r=e&&tt(e),i=(n=r)===null||n===void 0?void 0:n.host,o=!1;if(r&&r!==e){var l,a,s;for(o=!!((l=i)!==null&&l!==void 0&&(a=l.ownerDocument)!==null&&a!==void 0&&a.contains(i)||e!=null&&(s=e.ownerDocument)!==null&&s!==void 0&&s.contains(e));!o&&i;){var u,d,c;r=tt(i),i=(u=r)===null||u===void 0?void 0:u.host,o=!!((d=i)!==null&&d!==void 0&&(c=d.ownerDocument)!==null&&c!==void 0&&c.contains(i))}}return o},Vt=function(e){var n=e.getBoundingClientRect(),r=n.width,i=n.height;return r===0&&i===0},Jr=function(e,n){var r=n.displayCheck,i=n.getShadowRoot;if(getComputedStyle(e).visibility==="hidden")return!0;var o=ke.call(e,"details>summary:first-of-type"),l=o?e.parentElement:e;if(ke.call(l,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof i=="function"){for(var a=e;e;){var s=e.parentElement,u=tt(e);if(s&&!s.shadowRoot&&i(s)===!0)return Vt(e);e.assignedSlot?e=e.assignedSlot:!s&&u!==e.ownerDocument?e=u.host:e=s}e=a}if(Wr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return Vt(e);return!1},Gr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var n=e.parentElement;n;){if(n.tagName==="FIELDSET"&&n.disabled){for(var r=0;r<n.children.length;r++){var i=n.children.item(r);if(i.tagName==="LEGEND")return ke.call(n,"fieldset[disabled] *")?!0:!i.contains(e)}return!0}n=n.parentElement}return!1},rt=function(e,n){return!(n.disabled||nt(n)||Kr(n)||Jr(n,e)||zr(n)||Gr(n))},St=function(e,n){return!(Hr(n)||we(n)<0||!rt(e,n))},Qr=function(e){var n=parseInt(e.getAttribute("tabindex"),10);return!!(isNaN(n)||n>=0)},Yr=function t(e){var n=[],r=[];return e.forEach(function(i,o){var l=!!i.scopeParent,a=l?i.scopeParent:i,s=jr(a,l),u=l?t(i.candidates):a;s===0?l?n.push.apply(n,u):n.push(a):r.push({documentOrder:o,tabIndex:s,item:i,isScope:l,content:u})}),r.sort(Ur).reduce(function(i,o){return o.isScope?i.push.apply(i,o.content):i.push(o.content),i},[]).concat(n)},Zr=function(e,n){n=n||{};var r;return n.getShadowRoot?r=Vn([e],n.includeContainer,{filter:St.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:Qr}):r=Bn(e,n.includeContainer,St.bind(null,n)),Yr(r)},Xr=function(e,n){n=n||{};var r;return n.getShadowRoot?r=Vn([e],n.includeContainer,{filter:rt.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):r=Bn(e,n.includeContainer,rt.bind(null,n)),r},Ne=function(e,n){if(n=n||{},!e)throw new Error("No node provided");return ke.call(e,et)===!1?!1:St(n,e)},xr=Kn.concat("iframe").join(","),bt=function(e,n){if(n=n||{},!e)throw new Error("No node provided");return ke.call(e,xr)===!1?!1:rt(n,e)};/*!
+*/var Kn=["input:not([inert])","select:not([inert])","textarea:not([inert])","a[href]:not([inert])","button:not([inert])","[tabindex]:not(slot):not([inert])","audio[controls]:not([inert])","video[controls]:not([inert])",'[contenteditable]:not([contenteditable="false"]):not([inert])',"details>summary:first-of-type:not([inert])","details:not([inert])"],et=Kn.join(","),zn=typeof Element>"u",ke=zn?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,tt=!zn&&Element.prototype.getRootNode?function(t){var e;return t==null||(e=t.getRootNode)===null||e===void 0?void 0:e.call(t)}:function(t){return t==null?void 0:t.ownerDocument},nt=function t(e,n){var r;n===void 0&&(n=!0);var i=e==null||(r=e.getAttribute)===null||r===void 0?void 0:r.call(e,"inert"),o=i===""||i==="true",l=o||n&&e&&t(e.parentNode);return l},Rr=function(e){var n,r=e==null||(n=e.getAttribute)===null||n===void 0?void 0:n.call(e,"contenteditable");return r===""||r==="true"},Bn=function(e,n,r){if(nt(e))return[];var i=Array.prototype.slice.apply(e.querySelectorAll(et));return n&&ke.call(e,et)&&i.unshift(e),i=i.filter(r),i},Vn=function t(e,n,r){for(var i=[],o=Array.from(e);o.length;){var l=o.shift();if(!nt(l,!1))if(l.tagName==="SLOT"){var a=l.assignedElements(),s=a.length?a:l.children,u=t(s,!0,r);r.flatten?i.push.apply(i,u):i.push({scopeParent:l,candidates:u})}else{var d=ke.call(l,et);d&&r.filter(l)&&(n||!e.includes(l))&&i.push(l);var f=l.shadowRoot||typeof r.getShadowRoot=="function"&&r.getShadowRoot(l),c=!nt(f,!1)&&(!r.shadowRootFilter||r.shadowRootFilter(l));if(f&&c){var m=t(f===!0?l.children:f.children,!0,r);r.flatten?i.push.apply(i,m):i.push({scopeParent:l,candidates:m})}else o.unshift.apply(o,l.children)}}return i},qn=function(e){return!isNaN(parseInt(e.getAttribute("tabindex"),10))},we=function(e){if(!e)throw new Error("No node provided");return e.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(e.tagName)||Rr(e))&&!qn(e)?0:e.tabIndex},jr=function(e,n){var r=we(e);return r<0&&n&&!qn(e)?0:r},Ur=function(e,n){return e.tabIndex===n.tabIndex?e.documentOrder-n.documentOrder:e.tabIndex-n.tabIndex},Hn=function(e){return e.tagName==="INPUT"},Kr=function(e){return Hn(e)&&e.type==="hidden"},zr=function(e){var n=e.tagName==="DETAILS"&&Array.prototype.slice.apply(e.children).some(function(r){return r.tagName==="SUMMARY"});return n},Br=function(e,n){for(var r=0;r<e.length;r++)if(e[r].checked&&e[r].form===n)return e[r]},Vr=function(e){if(!e.name)return!0;var n=e.form||tt(e),r=function(a){return n.querySelectorAll('input[type="radio"][name="'+a+'"]')},i;if(typeof window<"u"&&typeof window.CSS<"u"&&typeof window.CSS.escape=="function")i=r(window.CSS.escape(e.name));else try{i=r(e.name)}catch(l){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",l.message),!1}var o=Br(i,e.form);return!o||o===e},qr=function(e){return Hn(e)&&e.type==="radio"},Hr=function(e){return qr(e)&&!Vr(e)},Wr=function(e){var n,r=e&&tt(e),i=(n=r)===null||n===void 0?void 0:n.host,o=!1;if(r&&r!==e){var l,a,s;for(o=!!((l=i)!==null&&l!==void 0&&(a=l.ownerDocument)!==null&&a!==void 0&&a.contains(i)||e!=null&&(s=e.ownerDocument)!==null&&s!==void 0&&s.contains(e));!o&&i;){var u,d,f;r=tt(i),i=(u=r)===null||u===void 0?void 0:u.host,o=!!((d=i)!==null&&d!==void 0&&(f=d.ownerDocument)!==null&&f!==void 0&&f.contains(i))}}return o},Vt=function(e){var n=e.getBoundingClientRect(),r=n.width,i=n.height;return r===0&&i===0},Jr=function(e,n){var r=n.displayCheck,i=n.getShadowRoot;if(getComputedStyle(e).visibility==="hidden")return!0;var o=ke.call(e,"details>summary:first-of-type"),l=o?e.parentElement:e;if(ke.call(l,"details:not([open]) *"))return!0;if(!r||r==="full"||r==="legacy-full"){if(typeof i=="function"){for(var a=e;e;){var s=e.parentElement,u=tt(e);if(s&&!s.shadowRoot&&i(s)===!0)return Vt(e);e.assignedSlot?e=e.assignedSlot:!s&&u!==e.ownerDocument?e=u.host:e=s}e=a}if(Wr(e))return!e.getClientRects().length;if(r!=="legacy-full")return!0}else if(r==="non-zero-area")return Vt(e);return!1},Gr=function(e){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(e.tagName))for(var n=e.parentElement;n;){if(n.tagName==="FIELDSET"&&n.disabled){for(var r=0;r<n.children.length;r++){var i=n.children.item(r);if(i.tagName==="LEGEND")return ke.call(n,"fieldset[disabled] *")?!0:!i.contains(e)}return!0}n=n.parentElement}return!1},rt=function(e,n){return!(n.disabled||nt(n)||Kr(n)||Jr(n,e)||zr(n)||Gr(n))},St=function(e,n){return!(Hr(n)||we(n)<0||!rt(e,n))},Qr=function(e){var n=parseInt(e.getAttribute("tabindex"),10);return!!(isNaN(n)||n>=0)},Yr=function t(e){var n=[],r=[];return e.forEach(function(i,o){var l=!!i.scopeParent,a=l?i.scopeParent:i,s=jr(a,l),u=l?t(i.candidates):a;s===0?l?n.push.apply(n,u):n.push(a):r.push({documentOrder:o,tabIndex:s,item:i,isScope:l,content:u})}),r.sort(Ur).reduce(function(i,o){return o.isScope?i.push.apply(i,o.content):i.push(o.content),i},[]).concat(n)},Zr=function(e,n){n=n||{};var r;return n.getShadowRoot?r=Vn([e],n.includeContainer,{filter:St.bind(null,n),flatten:!1,getShadowRoot:n.getShadowRoot,shadowRootFilter:Qr}):r=Bn(e,n.includeContainer,St.bind(null,n)),Yr(r)},Xr=function(e,n){n=n||{};var r;return n.getShadowRoot?r=Vn([e],n.includeContainer,{filter:rt.bind(null,n),flatten:!0,getShadowRoot:n.getShadowRoot}):r=Bn(e,n.includeContainer,rt.bind(null,n)),r},Ne=function(e,n){if(n=n||{},!e)throw new Error("No node provided");return ke.call(e,et)===!1?!1:St(n,e)},xr=Kn.concat("iframe").join(","),bt=function(e,n){if(n=n||{},!e)throw new Error("No node provided");return ke.call(e,xr)===!1?!1:rt(n,e)};/*!
 * focus-trap 7.5.2
 * @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
-*/function qt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Ht(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?qt(Object(n),!0).forEach(function(r){ei(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):qt(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function ei(t,e,n){return e=ni(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ti(t,e){if(typeof t!="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ni(t){var e=ti(t,"string");return typeof e=="symbol"?e:String(e)}var Wt={activateTrap:function(e,n){if(e.length>0){var r=e[e.length-1];r!==n&&r.pause()}var i=e.indexOf(n);i===-1||e.splice(i,1),e.push(n)},deactivateTrap:function(e,n){var r=e.indexOf(n);r!==-1&&e.splice(r,1),e.length>0&&e[e.length-1].unpause()}},ri=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},ii=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},Ke=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},oi=function(e){return Ke(e)&&!e.shiftKey},li=function(e){return Ke(e)&&e.shiftKey},Jt=function(e){return setTimeout(e,0)},Gt=function(e,n){var r=-1;return e.every(function(i,o){return n(i)?(r=o,!1):!0}),r},Re=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return typeof e=="function"?e.apply(void 0,r):e},Je=function(e){return e.target.shadowRoot&&typeof e.composedPath=="function"?e.composedPath()[0]:e.target},ai=[],si=function(e,n){var r=(n==null?void 0:n.document)||document,i=(n==null?void 0:n.trapStack)||ai,o=Ht({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isKeyForward:oi,isKeyBackward:li},n),l={containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},a,s=function(p,h,T){return p&&p[h]!==void 0?p[h]:o[T||h]},u=function(p,h){var T=typeof(h==null?void 0:h.composedPath)=="function"?h.composedPath():void 0;return l.containerGroups.findIndex(function(L){var F=L.container,z=L.tabbableNodes;return F.contains(p)||(T==null?void 0:T.includes(F))||z.find(function(W){return W===p})})},d=function(p){var h=o[p];if(typeof h=="function"){for(var T=arguments.length,L=new Array(T>1?T-1:0),F=1;F<T;F++)L[F-1]=arguments[F];h=h.apply(void 0,L)}if(h===!0&&(h=void 0),!h){if(h===void 0||h===!1)return h;throw new Error("`".concat(p,"` was specified but was not a node, or did not return a node"))}var z=h;if(typeof h=="string"&&(z=r.querySelector(h),!z))throw new Error("`".concat(p,"` as selector refers to no known node"));return z},c=function(){var p=d("initialFocus");if(p===!1)return!1;if(p===void 0||!bt(p,o.tabbableOptions))if(u(r.activeElement)>=0)p=r.activeElement;else{var h=l.tabbableGroups[0],T=h&&h.firstTabbableNode;p=T||d("fallbackFocus")}if(!p)throw new Error("Your focus-trap needs to have at least one focusable element");return p},f=function(){if(l.containerGroups=l.containers.map(function(p){var h=Zr(p,o.tabbableOptions),T=Xr(p,o.tabbableOptions),L=h.length>0?h[0]:void 0,F=h.length>0?h[h.length-1]:void 0,z=T.find(function(G){return Ne(G)}),W=T.slice().reverse().find(function(G){return Ne(G)}),J=!!h.find(function(G){return we(G)>0});return{container:p,tabbableNodes:h,focusableNodes:T,posTabIndexesFound:J,firstTabbableNode:L,lastTabbableNode:F,firstDomTabbableNode:z,lastDomTabbableNode:W,nextTabbableNode:function(V){var oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,ue=h.indexOf(V);return ue<0?oe?T.slice(T.indexOf(V)+1).find(function(ge){return Ne(ge)}):T.slice(0,T.indexOf(V)).reverse().find(function(ge){return Ne(ge)}):h[ue+(oe?1:-1)]}}}),l.tabbableGroups=l.containerGroups.filter(function(p){return p.tabbableNodes.length>0}),l.tabbableGroups.length<=0&&!d("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(l.containerGroups.find(function(p){return p.posTabIndexesFound})&&l.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},m=function B(p){if(p!==!1&&p!==r.activeElement){if(!p||!p.focus){B(c());return}p.focus({preventScroll:!!o.preventScroll}),l.mostRecentlyFocusedNode=p,ri(p)&&p.select()}},g=function(p){var h=d("setReturnFocus",p);return h||(h===!1?!1:p)},w=function(p){var h=p.target,T=p.event,L=p.isBackward,F=L===void 0?!1:L;h=h||Je(T),f();var z=null;if(l.tabbableGroups.length>0){var W=u(h,T),J=W>=0?l.containerGroups[W]:void 0;if(W<0)F?z=l.tabbableGroups[l.tabbableGroups.length-1].lastTabbableNode:z=l.tabbableGroups[0].firstTabbableNode;else if(F){var G=Gt(l.tabbableGroups,function(gt){var ht=gt.firstTabbableNode;return h===ht});if(G<0&&(J.container===h||bt(h,o.tabbableOptions)&&!Ne(h,o.tabbableOptions)&&!J.nextTabbableNode(h,!1))&&(G=W),G>=0){var V=G===0?l.tabbableGroups.length-1:G-1,oe=l.tabbableGroups[V];z=we(h)>=0?oe.lastTabbableNode:oe.lastDomTabbableNode}else Ke(T)||(z=J.nextTabbableNode(h,!1))}else{var ue=Gt(l.tabbableGroups,function(gt){var ht=gt.lastTabbableNode;return h===ht});if(ue<0&&(J.container===h||bt(h,o.tabbableOptions)&&!Ne(h,o.tabbableOptions)&&!J.nextTabbableNode(h))&&(ue=W),ue>=0){var ge=ue===l.tabbableGroups.length-1?0:ue+1,Ut=l.tabbableGroups[ge];z=we(h)>=0?Ut.firstTabbableNode:Ut.firstDomTabbableNode}else Ke(T)||(z=J.nextTabbableNode(h))}}else z=d("fallbackFocus");return z},S=function(p){var h=Je(p);if(!(u(h,p)>=0)){if(Re(o.clickOutsideDeactivates,p)){a.deactivate({returnFocus:o.returnFocusOnDeactivate});return}Re(o.allowOutsideClick,p)||p.preventDefault()}},N=function(p){var h=Je(p),T=u(h,p)>=0;if(T||h instanceof Document)T&&(l.mostRecentlyFocusedNode=h);else{p.stopImmediatePropagation();var L,F=!0;if(l.mostRecentlyFocusedNode)if(we(l.mostRecentlyFocusedNode)>0){var z=u(l.mostRecentlyFocusedNode),W=l.containerGroups[z].tabbableNodes;if(W.length>0){var J=W.findIndex(function(G){return G===l.mostRecentlyFocusedNode});J>=0&&(o.isKeyForward(l.recentNavEvent)?J+1<W.length&&(L=W[J+1],F=!1):J-1>=0&&(L=W[J-1],F=!1))}}else l.containerGroups.some(function(G){return G.tabbableNodes.some(function(V){return we(V)>0})})||(F=!1);else F=!1;F&&(L=w({target:l.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(l.recentNavEvent)})),m(L||l.mostRecentlyFocusedNode||c())}l.recentNavEvent=void 0},$=function(p){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;l.recentNavEvent=p;var T=w({event:p,isBackward:h});T&&(Ke(p)&&p.preventDefault(),m(T))},v=function(p){if(ii(p)&&Re(o.escapeDeactivates,p)!==!1){p.preventDefault(),a.deactivate();return}(o.isKeyForward(p)||o.isKeyBackward(p))&&$(p,o.isKeyBackward(p))},O=function(p){var h=Je(p);u(h,p)>=0||Re(o.clickOutsideDeactivates,p)||Re(o.allowOutsideClick,p)||(p.preventDefault(),p.stopImmediatePropagation())},A=function(){if(l.active)return Wt.activateTrap(i,a),l.delayInitialFocusTimer=o.delayInitialFocus?Jt(function(){m(c())}):m(c()),r.addEventListener("focusin",N,!0),r.addEventListener("mousedown",S,{capture:!0,passive:!1}),r.addEventListener("touchstart",S,{capture:!0,passive:!1}),r.addEventListener("click",O,{capture:!0,passive:!1}),r.addEventListener("keydown",v,{capture:!0,passive:!1}),a},P=function(){if(l.active)return r.removeEventListener("focusin",N,!0),r.removeEventListener("mousedown",S,!0),r.removeEventListener("touchstart",S,!0),r.removeEventListener("click",O,!0),r.removeEventListener("keydown",v,!0),a},R=function(p){var h=p.some(function(T){var L=Array.from(T.removedNodes);return L.some(function(F){return F===l.mostRecentlyFocusedNode})});h&&m(c())},H=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(R):void 0,I=function(){H&&(H.disconnect(),l.active&&!l.paused&&l.containers.map(function(p){H.observe(p,{subtree:!0,childList:!0})}))};return a={get active(){return l.active},get paused(){return l.paused},activate:function(p){if(l.active)return this;var h=s(p,"onActivate"),T=s(p,"onPostActivate"),L=s(p,"checkCanFocusTrap");L||f(),l.active=!0,l.paused=!1,l.nodeFocusedBeforeActivation=r.activeElement,h==null||h();var F=function(){L&&f(),A(),I(),T==null||T()};return L?(L(l.containers.concat()).then(F,F),this):(F(),this)},deactivate:function(p){if(!l.active)return this;var h=Ht({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},p);clearTimeout(l.delayInitialFocusTimer),l.delayInitialFocusTimer=void 0,P(),l.active=!1,l.paused=!1,I(),Wt.deactivateTrap(i,a);var T=s(h,"onDeactivate"),L=s(h,"onPostDeactivate"),F=s(h,"checkCanReturnFocus"),z=s(h,"returnFocus","returnFocusOnDeactivate");T==null||T();var W=function(){Jt(function(){z&&m(g(l.nodeFocusedBeforeActivation)),L==null||L()})};return z&&F?(F(g(l.nodeFocusedBeforeActivation)).then(W,W),this):(W(),this)},pause:function(p){if(l.paused||!l.active)return this;var h=s(p,"onPause"),T=s(p,"onPostPause");return l.paused=!0,h==null||h(),P(),I(),T==null||T(),this},unpause:function(p){if(!l.paused||!l.active)return this;var h=s(p,"onUnpause"),T=s(p,"onPostUnpause");return l.paused=!1,h==null||h(),f(),A(),I(),T==null||T(),this},updateContainerElements:function(p){var h=[].concat(p).filter(Boolean);return l.containers=h.map(function(T){return typeof T=="string"?r.querySelector(T):T}),l.active&&f(),I(),this}},a.updateContainerElements(e),a};const Wn=()=>(Math.random()+1).toString(36).substring(5),Qt={Close:{path:"M 3 3 L 13 13 M 3 13 L 13 3"},Help:{path:"M 8 12 L 8 12 M 8 10 L 8 9 C 8 7 10 8 10 6 A 2 2 0 1 0 6 6 M 8 1.5 A 6.5 6.5 0 0 1 8 14.5 A 6.5 6.5 0 0 1 8 1.5"},Menu:{path:"M 2 4 L 14 4 M 2 8 L 14 8 M 2 12 L 14 12"},Minimize:{path:"M 11 13 L 6.75 13 M 11 11 L 6.75 11 M 11 11 L 11 6.75 M 11 11 L 3 3"},OpenModal:{path:"M 3 3 L 7.25 3 M 3 3 L 3 7.25 M 3 3 L 10 10 M 3 11 A 2 2 0 0 0 5 13 L 11 13 A 2 2 0 0 0 13 11 L 13 5 A 2 2 0 0 0 11 3 L 11 3"},Shuffle:{path:"M 5 2 L 2 5 L 5 8 M 2 5 L 12 5 M 11 14 L 14 11 L 11 8 M 14 11 L 4 11"},Undo:{path:"M 5 3 L 2 6 L 5 9 M 2 6 L 10 6 A 3 3 0 1 1 10 13 L 8 13"}};function ui(t){let e,n,r;return{c(){e=Xe("svg"),n=Xe("path"),b(n,"fill","none"),b(n,"stroke","currentColor"),b(n,"stroke-linecap","round"),b(n,"stroke-linejoin","round"),b(n,"stroke-width","1"),b(n,"d",r=Qt[t[0]].path),b(e,"viewBox","0 0 16 16")},m(i,o){D(i,e,o),_(e,n)},p(i,[o]){o&1&&r!==(r=Qt[i[0]].path)&&b(n,"d",r)},i:te,o:te,d(i){i&&E(e)}}}function fi(t,e,n){let{icon:r}=e;return t.$$set=i=>{"icon"in i&&n(0,r=i.icon)},[r]}class Jn extends X{constructor(e){super(),Z(this,e,fi,ui,Y,{icon:0})}}function ci(t){let e,n,r,i,o,l,a,s,u,d,c;return o=new Jn({props:{icon:t[0]}}),{c(){e=C("div"),n=C("div"),r=C("button"),i=C("div"),K(o.$$.fragment),l=M(),a=C("div"),s=Q(t[1]),b(i,"class","icon svelte-7d82q0"),b(r,"aria-labelledby",t[3]),b(r,"class","clickable svelte-7d82q0"),q(r,"open",open),b(a,"class","label svelte-7d82q0"),b(a,"id",t[3]),b(n,"class","content svelte-7d82q0"),b(e,"class","icon-button clickable svelte-7d82q0")},m(f,m){D(f,e,m),_(e,n),_(n,r),_(r,i),j(o,i,null),_(n,l),_(n,a),_(a,s),u=!0,d||(c=[re(r,"click",function(){de(t[2])&&t[2].apply(this,arguments)}),re(e,"click",function(){de(t[2])&&t[2].apply(this,arguments)})],d=!0)},p(f,[m]){t=f;const g={};m&1&&(g.icon=t[0]),o.$set(g),(!u||m&0)&&q(r,"open",open),(!u||m&2)&&fe(s,t[1])},i(f){u||(y(o.$$.fragment,f),u=!0)},o(f){k(o.$$.fragment,f),u=!1},d(f){f&&E(e),U(o),d=!1,ye(c)}}}function di(t,e,n){let{icon:r}=e,{label:i}=e,{onClick:o}=e;const l=`${Wn()}-label`;return t.$$set=a=>{"icon"in a&&n(0,r=a.icon),"label"in a&&n(1,i=a.label),"onClick"in a&&n(2,o=a.onClick)},[r,i,o,l]}class be extends X{constructor(e){super(),Z(this,e,di,ci,Y,{icon:0,label:1,onClick:2})}}function mi(t){let e,n,r,i,o,l,a,s,u,d,c,f;s=new be({props:{icon:t[2],label:"Close",onClick:t[6]}});const m=t[9].default,g=ot(m,t,t[8],null);return{c(){e=C("div"),n=M(),r=C("div"),i=C("div"),o=C("h2"),l=Q(t[0]),a=M(),K(s.$$.fragment),u=M(),d=C("div"),g&&g.c(),b(e,"class","backdrop svelte-fabgrs"),q(e,"open",t[3]),b(o,"id",t[5]),b(o,"class","svelte-fabgrs"),b(i,"class","header svelte-fabgrs"),b(d,"class","content svelte-fabgrs"),b(r,"class",c="modal "+t[1]+" "+(t[7]?"window-controls-on-left":"")+" svelte-fabgrs"),b(r,"role","dialog"),b(r,"aria-labelledby",t[5]),b(r,"id",t[4]),q(r,"open",t[3])},m(w,S){D(w,e,S),D(w,n,S),D(w,r,S),_(r,i),_(i,o),_(o,l),_(i,a),j(s,i,null),_(r,u),_(r,d),g&&g.m(d,null),f=!0},p(w,[S]){(!f||S&8)&&q(e,"open",w[3]),(!f||S&1)&&fe(l,w[0]);const N={};S&4&&(N.icon=w[2]),s.$set(N),g&&g.p&&(!f||S&256)&&at(g,m,w,w[8],f?lt(m,w[8],S,null):st(w[8]),null),(!f||S&2&&c!==(c="modal "+w[1]+" "+(w[7]?"window-controls-on-left":"")+" svelte-fabgrs"))&&b(r,"class",c),(!f||S&10)&&q(r,"open",w[3])},i(w){f||(y(s.$$.fragment,w),y(g,w),f=!0)},o(w){k(s.$$.fragment,w),k(g,w),f=!1},d(w){w&&(E(e),E(n),E(r)),U(s),g&&g.d(w)}}}function gi(t,e,n){var g,w;let{$$slots:r={},$$scope:i}=e,{title:o}=e,{position:l="center"}=e,{closeIcon:a="Close"}=e;const s=`modal-${Wn()}`,u=`${s}-title`;let d=!1;ut(()=>{const S=si(`#${s}`,{clickOutsideDeactivates:!0,onDeactivate:()=>f()});S.activate();const N=document.body.style.overflow;return document.body.style.overflow="hidden",setTimeout(()=>{n(3,d=!0)},0),()=>{S.deactivate(),document.body.style.overflow=N}});const c=ft(),f=()=>{n(3,d=!1),setTimeout(()=>c("close"),125)};let m=((g=navigator.windowControlsOverlay)==null?void 0:g.visible)&&((w=navigator.windowControlsOverlay)==null?void 0:w.getTitlebarAreaRect().left)>0;return t.$$set=S=>{"title"in S&&n(0,o=S.title),"position"in S&&n(1,l=S.position),"closeIcon"in S&&n(2,a=S.closeIcon),"$$scope"in S&&n(8,i=S.$$scope)},[o,l,a,d,s,u,f,m,i,r]}class Et extends X{constructor(e){super(),Z(this,e,gi,mi,Y,{title:0,position:1,closeIcon:2})}}function hi(t){let e;return{c(){e=Q(t[0])},m(n,r){D(n,e,r)},p(n,r){r&1&&fe(e,n[0])},d(n){n&&E(e)}}}function vi(t){let e,n,r,i,o;const l=t[6].default,a=ot(l,t,t[5],null),s=a||hi(t);return{c(){e=C("button"),s&&s.c(),b(e,"aria-pressed",n=t[1]?"true":"false"),e.disabled=t[1],b(e,"class","svelte-fhaqyy"),q(e,"pressed",t[1])},m(u,d){D(u,e,d),s&&s.m(e,null),r=!0,i||(o=re(e,"click",function(){de(t[2])&&t[2].apply(this,arguments)}),i=!0)},p(u,[d]){t=u,a?a.p&&(!r||d&32)&&at(a,l,t,t[5],r?lt(l,t[5],d,null):st(t[5]),null):s&&s.p&&(!r||d&1)&&s.p(t,r?d:-1),(!r||d&2&&n!==(n=t[1]?"true":"false"))&&b(e,"aria-pressed",n),(!r||d&2)&&(e.disabled=t[1]),(!r||d&2)&&q(e,"pressed",t[1])},i(u){r||(y(s,u),r=!0)},o(u){k(s,u),r=!1},d(u){u&&E(e),s&&s.d(u),i=!1,o()}}}function pi(t,e,n){let r,i,o;pe(t,Fe,f=>n(4,o=f));let{$$slots:l={},$$scope:a}=e,{target:s}=e,{value:u}=e;const{update:d}=Fe,c=()=>{};return t.$$set=f=>{"target"in f&&n(3,s=f.target),"value"in f&&n(0,u=f.value),"$$scope"in f&&n(5,a=f.$$scope)},t.$$.update=()=>{t.$$.dirty&25&&n(1,i=o[s]===u),t.$$.dirty&11&&n(2,r=i?c:()=>d(f=>({...f,[s]:u})))},[u,i,r,s,o,a,l]}class ce extends X{constructor(e){super(),Z(this,e,pi,vi,Y,{target:3,value:0})}}function Yt(t){let e,n;return e=new be({props:{icon:"Help",label:"Help",onClick:t[3].help}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&8&&(o.onClick=r[3].help),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Zt(t){let e,n;return e=new be({props:{icon:"Shuffle",label:"Shuffle",onClick:t[3].shuffle}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&8&&(o.onClick=r[3].shuffle),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Xt(t){let e,n;return e=new be({props:{icon:"Undo",label:"Undo",onClick:t[3].undo}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&8&&(o.onClick=r[3].undo),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function xt(t){let e,n;return e=new Et({props:{position:"left",title:"Menu",$$slots:{default:[_i]},$$scope:{ctx:t}}}),e.$on("close",t[4]("close")),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&128&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function bi(t){let e;return{c(){e=Q("Pileon solitaire")},m(n,r){D(n,e,r)},d(n){n&&E(e)}}}function yi(t){let e;return{c(){e=Q("Deck of cards")},m(n,r){D(n,e,r)},d(n){n&&E(e)}}}function _i(t){let e,n,r,i,o,l,a,s,u,d,c,f,m,g,w,S,N,$,v,O,A,P,R,H,I,B,p,h,T,L,F,z,W,J,G;return i=new ce({props:{target:"game",value:"pileon",$$slots:{default:[bi]},$$scope:{ctx:t}}}),a=new ce({props:{target:"game",value:"deck",$$slots:{default:[yi]},$$scope:{ctx:t}}}),$=new ce({props:{target:"colors",value:"default"}}),O=new ce({props:{target:"colors",value:"standard"}}),P=new ce({props:{target:"colors",value:"four-color"}}),h=new ce({props:{target:"size",value:"default"}}),L=new ce({props:{target:"size",value:"bridge"}}),z=new ce({props:{target:"size",value:"poker"}}),J=new ce({props:{target:"size",value:"small"}}),{c(){e=C("div"),n=C("ul"),r=C("li"),K(i.$$.fragment),o=M(),l=C("li"),K(a.$$.fragment),s=M(),u=C("div"),d=M(),c=C("h3"),c.textContent="Settings",f=M(),m=C("table"),g=C("tr"),w=C("th"),w.textContent="Colors:",S=M(),N=C("td"),K($.$$.fragment),v=Q(" / "),K(O.$$.fragment),A=Q(" / "),K(P.$$.fragment),R=M(),H=C("tr"),I=C("th"),I.textContent="Size:",B=M(),p=C("td"),K(h.$$.fragment),T=Q(" / "),K(L.$$.fragment),F=Q(" / "),K(z.$$.fragment),W=Q(" / "),K(J.$$.fragment),b(r,"class","svelte-vd9w7o"),b(l,"class","svelte-vd9w7o"),b(n,"class","svelte-vd9w7o"),b(u,"class","whitespace svelte-vd9w7o"),b(w,"class","svelte-vd9w7o"),b(N,"class","svelte-vd9w7o"),b(I,"class","svelte-vd9w7o"),b(p,"class","svelte-vd9w7o"),b(m,"class","svelte-vd9w7o"),b(e,"class","drawer svelte-vd9w7o")},m(V,oe){D(V,e,oe),_(e,n),_(n,r),j(i,r,null),_(n,o),_(n,l),j(a,l,null),_(e,s),_(e,u),_(e,d),_(e,c),_(e,f),_(e,m),_(m,g),_(g,w),_(g,S),_(g,N),j($,N,null),_(N,v),j(O,N,null),_(N,A),j(P,N,null),_(m,R),_(m,H),_(H,I),_(H,B),_(H,p),j(h,p,null),_(p,T),j(L,p,null),_(p,F),j(z,p,null),_(p,W),j(J,p,null),G=!0},p(V,oe){const ue={};oe&128&&(ue.$$scope={dirty:oe,ctx:V}),i.$set(ue);const ge={};oe&128&&(ge.$$scope={dirty:oe,ctx:V}),a.$set(ge)},i(V){G||(y(i.$$.fragment,V),y(a.$$.fragment,V),y($.$$.fragment,V),y(O.$$.fragment,V),y(P.$$.fragment,V),y(h.$$.fragment,V),y(L.$$.fragment,V),y(z.$$.fragment,V),y(J.$$.fragment,V),G=!0)},o(V){k(i.$$.fragment,V),k(a.$$.fragment,V),k($.$$.fragment,V),k(O.$$.fragment,V),k(P.$$.fragment,V),k(h.$$.fragment,V),k(L.$$.fragment,V),k(z.$$.fragment,V),k(J.$$.fragment,V),G=!1},d(V){V&&E(e),U(i),U(a),U($),U(O),U(P),U(h),U(L),U(z),U(J)}}}function wi(t){let e,n,r,i,o,l,a,s,u,d,c,f,m,g,w,S;o=new be({props:{icon:"Menu",label:"Menu",onClick:t[4]("open")}});let N=t[3].help!==void 0&&Yt(t),$=t[3].shuffle!==void 0&&Zt(t),v=t[3].undo!==void 0&&Xt(t),O=t[0]&&xt(t);return{c(){e=C("div"),n=C("div"),r=M(),i=C("div"),K(o.$$.fragment),l=M(),N&&N.c(),a=M(),$&&$.c(),s=M(),v&&v.c(),d=M(),c=C("div"),f=M(),O&&O.c(),m=At(),b(n,"class","window-controls svelte-vd9w7o"),b(i,"class",u="menu "+t[2]+" svelte-vd9w7o"),b(c,"class","window-controls svelte-vd9w7o"),b(e,"class","titlebar svelte-vd9w7o")},m(A,P){D(A,e,P),_(e,n),_(e,r),_(e,i),j(o,i,null),_(i,l),N&&N.m(i,null),_(i,a),$&&$.m(i,null),_(i,s),v&&v.m(i,null),t[6](i),_(e,d),_(e,c),D(A,f,P),O&&O.m(A,P),D(A,m,P),g=!0,w||(S=re(window,"resize",t[5]),w=!0)},p(A,[P]){A[3].help!==void 0?N?(N.p(A,P),P&8&&y(N,1)):(N=Yt(A),N.c(),y(N,1),N.m(i,a)):N&&(x(),k(N,1,1,()=>{N=null}),ee()),A[3].shuffle!==void 0?$?($.p(A,P),P&8&&y($,1)):($=Zt(A),$.c(),y($,1),$.m(i,s)):$&&(x(),k($,1,1,()=>{$=null}),ee()),A[3].undo!==void 0?v?(v.p(A,P),P&8&&y(v,1)):(v=Xt(A),v.c(),y(v,1),v.m(i,null)):v&&(x(),k(v,1,1,()=>{v=null}),ee()),(!g||P&4&&u!==(u="menu "+A[2]+" svelte-vd9w7o"))&&b(i,"class",u),A[0]?O?(O.p(A,P),P&1&&y(O,1)):(O=xt(A),O.c(),y(O,1),O.m(m.parentNode,m)):O&&(x(),k(O,1,1,()=>{O=null}),ee())},i(A){g||(y(o.$$.fragment,A),y(N),y($),y(v),y(O),g=!0)},o(A){k(o.$$.fragment,A),k(N),k($),k(v),k(O),g=!1},d(A){A&&(E(e),E(f),E(m)),U(o),N&&N.d(),$&&$.d(),v&&v.d(),t[6](null),O&&O.d(A),w=!1,S()}}}function Si(t,e,n){let r;pe(t,Me,d=>n(3,r=d));let i=!1;const o=d=>c=>{n(0,i=d==="open"),c.stopPropagation()};let l,a="";const s=()=>{var f,m;if(!((f=navigator.windowControlsOverlay)!=null&&f.visible))return;const d=l.getBoundingClientRect(),c=(m=navigator.windowControlsOverlay)==null?void 0:m.getTitlebarAreaRect();c.left>d.left||c.right<d.right?n(2,a="below-titlebar"):n(2,a="")};ut(s);function u(d){_t[d?"unshift":"push"](()=>{l=d,n(1,l)})}return[i,l,a,r,o,s,u]}class ki extends X{constructor(e){super(),Z(this,e,Si,wi,Y,{})}}var ie={},ae={};function Le(t){"@babel/helpers - typeof";return Le=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Le(t)}Object.defineProperty(ae,"__esModule",{value:!0});var kt=ae.Cards=ae.CardSuits=er=ae.CardStringType=ae.Card=void 0;function me(t,e,n){return e=Yn(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Gn(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function en(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,Yn(r.key),r)}}function Qn(t,e,n){return e&&en(t.prototype,e),n&&en(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function Yn(t){var e=Ci(t,"string");return Le(e)==="symbol"?e:String(e)}function Ci(t,e){if(Le(t)!=="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(Le(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Ti(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Be(t,e)}function Ni(t){var e=Xn();return function(){var r=Ve(t),i;if(e){var o=Ve(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return Zn(this,i)}}function Zn(t,e){if(e&&(Le(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Oi(t)}function Oi(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Ct(t){var e=typeof Map=="function"?new Map:void 0;return Ct=function(r){if(r===null||!Ai(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e<"u"){if(e.has(r))return e.get(r);e.set(r,i)}function i(){return Ye(r,arguments,Ve(this).constructor)}return i.prototype=Object.create(r.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),Be(i,r)},Ct(t)}function Ye(t,e,n){return Xn()?Ye=Reflect.construct.bind():Ye=function(i,o,l){var a=[null];a.push.apply(a,o);var s=Function.bind.apply(i,a),u=new s;return l&&Be(u,l.prototype),u},Ye.apply(null,arguments)}function Xn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ai(t){return Function.toString.call(t).indexOf("[native code]")!==-1}function Be(t,e){return Be=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Be(t,e)}function Ve(t){return Ve=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ve(t)}function $i(t,e){return Fi(t)||Pi(t,e)||Di(t,e)||Ei()}function Ei(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Di(t,e){if(t){if(typeof t=="string")return tn(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tn(t,e)}}function tn(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Pi(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,o,l,a=[],s=!0,u=!1;try{if(o=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(a.push(r.value),a.length!==e);s=!0);}catch(d){u=!0,i=d}finally{try{if(!s&&n.return!=null&&(l=n.return(),Object(l)!==l))return}finally{if(u)throw i}}return a}}function Fi(t){if(Array.isArray(t))return t}var xn=function(t){return t[t.Hearts=0]="Hearts",t[t.Spades=1]="Spades",t[t.Diamonds=2]="Diamonds",t[t.Clubs=3]="Clubs",t}({});ae.CardSuits=xn;var Dt=function(t){return t.Char="CHAR",t.Short="SHORT",t.Long="LONG",t.ShortEmoji="SHORT_EMOJI",t.ShortSuit="SHORT_SUIT",t.LongSuit="LONG_SUIT",t.EmojiSuit="EMOJI_SUIT",t.ShortValue="SHORT_VALUE",t.LongValue="LONG_VALUE",t}({}),er=ae.CardStringType=Dt,Mi={"♥":0,"♠":1,"♦":2,"♣":3,h:0,s:1,d:2,c:3},Li={A:1,T:10,J:11,Q:12,K:13},Ii=function(e){var n=/^([2-9ATJQK]{1}|10)([♥♠♦♣hsdc]{1})$/,r=e.match(n);if(!r)throw new Error('Could not parse card from "'.concat(e,'". Input should match ').concat(n,"."));var i=$i(r,3);i[0];var o=i[1],l=i[2],a=Number(o),s=(Number.isNaN(a)?Li[o]:a)-1;return Mi[l]*13+s},Ri=function(e){var n=/^_[a-z]+$/i;if(e.match(n)){var r=Array.from(e.slice(1));return r.map(function(i){var o=i.charCodeAt(0);return o<91?o-65:o-97+26})}return e.split(/[\s,]+/)},ji=function(t){Ti(n,t);var e=Ni(n);function n(r){var i;if(Gn(this,n),typeof r=="number")i=e.call(this,r);else{i=e.call(this);var o=Array.isArray(r)?r:Ri(r);o.forEach(function(l){return i.push(new se(l))})}return Zn(i)}return Qn(n,[{key:"toString",value:function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:se.StringType.Short;return i===Dt.Char?"_"+this.map(function(o){return o.toString(i)}).join(""):this.map(function(o){return o.toString(i)}).join(", ")}}]),n}(Ct(Array));kt=ae.Cards=ji;var Ui=function(e){return typeof e=="string"?Ii(e):e instanceof se?e.num:e},se=function(){function t(e){Gn(this,t),me(this,"num",void 0),this.num=Ui(e)}return Qn(t,[{key:"suit",get:function(){return t.getSuit(this.num)}},{key:"value",get:function(){return t.getValue(this.num)}},{key:"toString",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:t.StringType.Long;switch(n){case t.StringType.Short:return this.toString(t.StringType.ShortValue)+this.toString(t.StringType.ShortSuit);case t.StringType.ShortEmoji:return this.toString(t.StringType.ShortValue)+this.toString(t.StringType.EmojiSuit);case t.StringType.Long:return this.toString(t.StringType.LongValue)+" of "+this.toString(t.StringType.LongSuit);case t.StringType.Char:return t.chars[this.num];case t.StringType.ShortSuit:return t.shortSuits[this.suit];case t.StringType.LongSuit:return t.longSuits[this.suit];case t.StringType.EmojiSuit:return t.emojiSuits[this.suit];case t.StringType.ShortValue:return t.shortValues[this.value===13?0:this.value];case t.StringType.LongValue:return t.longValues[this.value===13?0:this.value]}throw new Error("Unsupported output type")}}],[{key:"fromJSON",value:function(n){var r=n.num;return new t(r)}},{key:"getSuit",value:function(n){return Math.floor(n/13)%4}},{key:"getValue",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return n%13||r?n%13:13}},{key:"compare",value:function(n,r){return r.value-n.value}}]),t}();ae.Card=se;me(se,"Suits",xn);me(se,"StringType",Dt);me(se,"chars","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");me(se,"emojiSuits",["♥","♠","♦","♣"]);me(se,"shortSuits",["h","s","d","c"]);me(se,"longSuits",["hearts","spades","diamonds","clubs"]);me(se,"shortValues",["A","2","3","4","5","6","7","8","9","T","J","Q","K"]);me(se,"longValues",["ace","two","three","four","five","six","seven","eight","nine","ten","jack","queen","king"]);var ct={},ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.uniqueFilter=ne.shuffle=ne.last=ne.isSorted=ne.getCombinationsHelper=ne.getCombinations=ne.arraySubtraction=void 0;var Ki=function(e,n){return e.filter(function(r){return!n.includes(r)})};ne.arraySubtraction=Ki;var tr=function t(e,n,r,i,o){if(i.length>=n)o.push(i);else for(var l=r;l<e.length;l++)t(e,n,l+1,i.concat(e[l]),o)};ne.getCombinationsHelper=tr;var zi=function(e,n){var r=[];return tr(e,n,0,[],r),r};ne.getCombinations=zi;var Bi=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=r?-1:1;try{return e.reduce(function(o,l){if(i*n(o,l)<=0)return l;throw new Error}),!0}catch{return!1}};ne.isSorted=Bi;var Vi=function(e){return e[e.length-1]};ne.last=Vi;var qi=function(e){for(var n=e.length-1;n>0;n--){var r=Math.floor(Math.random()*(n+1)),i=[e[r],e[n]];e[n]=i[0],e[r]=i[1]}return e};ne.shuffle=qi;var Hi=function(e,n,r){return r.indexOf(e)===n};ne.uniqueFilter=Hi;Object.defineProperty(ct,"__esModule",{value:!0});ct.Deck=void 0;var nn=ne,je=ae;function qe(t){"@babel/helpers - typeof";return qe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qe(t)}function Wi(t){return Yi(t)||Qi(t)||Gi(t)||Ji()}function Ji(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
+*/function qt(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),n.push.apply(n,r)}return n}function Ht(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?qt(Object(n),!0).forEach(function(r){ei(t,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):qt(Object(n)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(n,r))})}return t}function ei(t,e,n){return e=ni(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function ti(t,e){if(typeof t!="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ni(t){var e=ti(t,"string");return typeof e=="symbol"?e:String(e)}var Wt={activateTrap:function(e,n){if(e.length>0){var r=e[e.length-1];r!==n&&r.pause()}var i=e.indexOf(n);i===-1||e.splice(i,1),e.push(n)},deactivateTrap:function(e,n){var r=e.indexOf(n);r!==-1&&e.splice(r,1),e.length>0&&e[e.length-1].unpause()}},ri=function(e){return e.tagName&&e.tagName.toLowerCase()==="input"&&typeof e.select=="function"},ii=function(e){return(e==null?void 0:e.key)==="Escape"||(e==null?void 0:e.key)==="Esc"||(e==null?void 0:e.keyCode)===27},Ke=function(e){return(e==null?void 0:e.key)==="Tab"||(e==null?void 0:e.keyCode)===9},oi=function(e){return Ke(e)&&!e.shiftKey},li=function(e){return Ke(e)&&e.shiftKey},Jt=function(e){return setTimeout(e,0)},Gt=function(e,n){var r=-1;return e.every(function(i,o){return n(i)?(r=o,!1):!0}),r},Re=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return typeof e=="function"?e.apply(void 0,r):e},Je=function(e){return e.target.shadowRoot&&typeof e.composedPath=="function"?e.composedPath()[0]:e.target},ai=[],si=function(e,n){var r=(n==null?void 0:n.document)||document,i=(n==null?void 0:n.trapStack)||ai,o=Ht({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isKeyForward:oi,isKeyBackward:li},n),l={containers:[],containerGroups:[],tabbableGroups:[],nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},a,s=function(p,h,T){return p&&p[h]!==void 0?p[h]:o[T||h]},u=function(p,h){var T=typeof(h==null?void 0:h.composedPath)=="function"?h.composedPath():void 0;return l.containerGroups.findIndex(function(L){var F=L.container,z=L.tabbableNodes;return F.contains(p)||(T==null?void 0:T.includes(F))||z.find(function(W){return W===p})})},d=function(p){var h=o[p];if(typeof h=="function"){for(var T=arguments.length,L=new Array(T>1?T-1:0),F=1;F<T;F++)L[F-1]=arguments[F];h=h.apply(void 0,L)}if(h===!0&&(h=void 0),!h){if(h===void 0||h===!1)return h;throw new Error("`".concat(p,"` was specified but was not a node, or did not return a node"))}var z=h;if(typeof h=="string"&&(z=r.querySelector(h),!z))throw new Error("`".concat(p,"` as selector refers to no known node"));return z},f=function(){var p=d("initialFocus");if(p===!1)return!1;if(p===void 0||!bt(p,o.tabbableOptions))if(u(r.activeElement)>=0)p=r.activeElement;else{var h=l.tabbableGroups[0],T=h&&h.firstTabbableNode;p=T||d("fallbackFocus")}if(!p)throw new Error("Your focus-trap needs to have at least one focusable element");return p},c=function(){if(l.containerGroups=l.containers.map(function(p){var h=Zr(p,o.tabbableOptions),T=Xr(p,o.tabbableOptions),L=h.length>0?h[0]:void 0,F=h.length>0?h[h.length-1]:void 0,z=T.find(function(G){return Ne(G)}),W=T.slice().reverse().find(function(G){return Ne(G)}),J=!!h.find(function(G){return we(G)>0});return{container:p,tabbableNodes:h,focusableNodes:T,posTabIndexesFound:J,firstTabbableNode:L,lastTabbableNode:F,firstDomTabbableNode:z,lastDomTabbableNode:W,nextTabbableNode:function(V){var oe=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,ue=h.indexOf(V);return ue<0?oe?T.slice(T.indexOf(V)+1).find(function(ge){return Ne(ge)}):T.slice(0,T.indexOf(V)).reverse().find(function(ge){return Ne(ge)}):h[ue+(oe?1:-1)]}}}),l.tabbableGroups=l.containerGroups.filter(function(p){return p.tabbableNodes.length>0}),l.tabbableGroups.length<=0&&!d("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(l.containerGroups.find(function(p){return p.posTabIndexesFound})&&l.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},m=function B(p){if(p!==!1&&p!==r.activeElement){if(!p||!p.focus){B(f());return}p.focus({preventScroll:!!o.preventScroll}),l.mostRecentlyFocusedNode=p,ri(p)&&p.select()}},g=function(p){var h=d("setReturnFocus",p);return h||(h===!1?!1:p)},w=function(p){var h=p.target,T=p.event,L=p.isBackward,F=L===void 0?!1:L;h=h||Je(T),c();var z=null;if(l.tabbableGroups.length>0){var W=u(h,T),J=W>=0?l.containerGroups[W]:void 0;if(W<0)F?z=l.tabbableGroups[l.tabbableGroups.length-1].lastTabbableNode:z=l.tabbableGroups[0].firstTabbableNode;else if(F){var G=Gt(l.tabbableGroups,function(gt){var ht=gt.firstTabbableNode;return h===ht});if(G<0&&(J.container===h||bt(h,o.tabbableOptions)&&!Ne(h,o.tabbableOptions)&&!J.nextTabbableNode(h,!1))&&(G=W),G>=0){var V=G===0?l.tabbableGroups.length-1:G-1,oe=l.tabbableGroups[V];z=we(h)>=0?oe.lastTabbableNode:oe.lastDomTabbableNode}else Ke(T)||(z=J.nextTabbableNode(h,!1))}else{var ue=Gt(l.tabbableGroups,function(gt){var ht=gt.lastTabbableNode;return h===ht});if(ue<0&&(J.container===h||bt(h,o.tabbableOptions)&&!Ne(h,o.tabbableOptions)&&!J.nextTabbableNode(h))&&(ue=W),ue>=0){var ge=ue===l.tabbableGroups.length-1?0:ue+1,Ut=l.tabbableGroups[ge];z=we(h)>=0?Ut.firstTabbableNode:Ut.firstDomTabbableNode}else Ke(T)||(z=J.nextTabbableNode(h))}}else z=d("fallbackFocus");return z},S=function(p){var h=Je(p);if(!(u(h,p)>=0)){if(Re(o.clickOutsideDeactivates,p)){a.deactivate({returnFocus:o.returnFocusOnDeactivate});return}Re(o.allowOutsideClick,p)||p.preventDefault()}},N=function(p){var h=Je(p),T=u(h,p)>=0;if(T||h instanceof Document)T&&(l.mostRecentlyFocusedNode=h);else{p.stopImmediatePropagation();var L,F=!0;if(l.mostRecentlyFocusedNode)if(we(l.mostRecentlyFocusedNode)>0){var z=u(l.mostRecentlyFocusedNode),W=l.containerGroups[z].tabbableNodes;if(W.length>0){var J=W.findIndex(function(G){return G===l.mostRecentlyFocusedNode});J>=0&&(o.isKeyForward(l.recentNavEvent)?J+1<W.length&&(L=W[J+1],F=!1):J-1>=0&&(L=W[J-1],F=!1))}}else l.containerGroups.some(function(G){return G.tabbableNodes.some(function(V){return we(V)>0})})||(F=!1);else F=!1;F&&(L=w({target:l.mostRecentlyFocusedNode,isBackward:o.isKeyBackward(l.recentNavEvent)})),m(L||l.mostRecentlyFocusedNode||f())}l.recentNavEvent=void 0},E=function(p){var h=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;l.recentNavEvent=p;var T=w({event:p,isBackward:h});T&&(Ke(p)&&p.preventDefault(),m(T))},v=function(p){if(ii(p)&&Re(o.escapeDeactivates,p)!==!1){p.preventDefault(),a.deactivate();return}(o.isKeyForward(p)||o.isKeyBackward(p))&&E(p,o.isKeyBackward(p))},O=function(p){var h=Je(p);u(h,p)>=0||Re(o.clickOutsideDeactivates,p)||Re(o.allowOutsideClick,p)||(p.preventDefault(),p.stopImmediatePropagation())},A=function(){if(l.active)return Wt.activateTrap(i,a),l.delayInitialFocusTimer=o.delayInitialFocus?Jt(function(){m(f())}):m(f()),r.addEventListener("focusin",N,!0),r.addEventListener("mousedown",S,{capture:!0,passive:!1}),r.addEventListener("touchstart",S,{capture:!0,passive:!1}),r.addEventListener("click",O,{capture:!0,passive:!1}),r.addEventListener("keydown",v,{capture:!0,passive:!1}),a},P=function(){if(l.active)return r.removeEventListener("focusin",N,!0),r.removeEventListener("mousedown",S,!0),r.removeEventListener("touchstart",S,!0),r.removeEventListener("click",O,!0),r.removeEventListener("keydown",v,!0),a},R=function(p){var h=p.some(function(T){var L=Array.from(T.removedNodes);return L.some(function(F){return F===l.mostRecentlyFocusedNode})});h&&m(f())},H=typeof window<"u"&&"MutationObserver"in window?new MutationObserver(R):void 0,I=function(){H&&(H.disconnect(),l.active&&!l.paused&&l.containers.map(function(p){H.observe(p,{subtree:!0,childList:!0})}))};return a={get active(){return l.active},get paused(){return l.paused},activate:function(p){if(l.active)return this;var h=s(p,"onActivate"),T=s(p,"onPostActivate"),L=s(p,"checkCanFocusTrap");L||c(),l.active=!0,l.paused=!1,l.nodeFocusedBeforeActivation=r.activeElement,h==null||h();var F=function(){L&&c(),A(),I(),T==null||T()};return L?(L(l.containers.concat()).then(F,F),this):(F(),this)},deactivate:function(p){if(!l.active)return this;var h=Ht({onDeactivate:o.onDeactivate,onPostDeactivate:o.onPostDeactivate,checkCanReturnFocus:o.checkCanReturnFocus},p);clearTimeout(l.delayInitialFocusTimer),l.delayInitialFocusTimer=void 0,P(),l.active=!1,l.paused=!1,I(),Wt.deactivateTrap(i,a);var T=s(h,"onDeactivate"),L=s(h,"onPostDeactivate"),F=s(h,"checkCanReturnFocus"),z=s(h,"returnFocus","returnFocusOnDeactivate");T==null||T();var W=function(){Jt(function(){z&&m(g(l.nodeFocusedBeforeActivation)),L==null||L()})};return z&&F?(F(g(l.nodeFocusedBeforeActivation)).then(W,W),this):(W(),this)},pause:function(p){if(l.paused||!l.active)return this;var h=s(p,"onPause"),T=s(p,"onPostPause");return l.paused=!0,h==null||h(),P(),I(),T==null||T(),this},unpause:function(p){if(!l.paused||!l.active)return this;var h=s(p,"onUnpause"),T=s(p,"onPostUnpause");return l.paused=!1,h==null||h(),c(),A(),I(),T==null||T(),this},updateContainerElements:function(p){var h=[].concat(p).filter(Boolean);return l.containers=h.map(function(T){return typeof T=="string"?r.querySelector(T):T}),l.active&&c(),I(),this}},a.updateContainerElements(e),a};const Wn=()=>(Math.random()+1).toString(36).substring(5),Qt={Close:{path:"M 3 3 L 13 13 M 3 13 L 13 3"},Help:{path:"M 8 12 L 8 12 M 8 10 L 8 9 C 8 7 10 8 10 6 A 2 2 0 1 0 6 6 M 8 1.5 A 6.5 6.5 0 0 1 8 14.5 A 6.5 6.5 0 0 1 8 1.5"},Menu:{path:"M 2 4 L 14 4 M 2 8 L 14 8 M 2 12 L 14 12"},Minimize:{path:"M 11 13 L 6.75 13 M 11 11 L 6.75 11 M 11 11 L 11 6.75 M 11 11 L 3 3"},OpenModal:{path:"M 3 3 L 7.25 3 M 3 3 L 3 7.25 M 3 3 L 10 10 M 3 11 A 2 2 0 0 0 5 13 L 11 13 A 2 2 0 0 0 13 11 L 13 5 A 2 2 0 0 0 11 3 L 11 3"},Shuffle:{path:"M 5 2 L 2 5 L 5 8 M 2 5 L 12 5 M 11 14 L 14 11 L 11 8 M 14 11 L 4 11"},Undo:{path:"M 5 3 L 2 6 L 5 9 M 2 6 L 10 6 A 3 3 0 1 1 10 13 L 8 13"}};function ui(t){let e,n,r;return{c(){e=Xe("svg"),n=Xe("path"),b(n,"fill","none"),b(n,"stroke","currentColor"),b(n,"stroke-linecap","round"),b(n,"stroke-linejoin","round"),b(n,"stroke-width","1"),b(n,"d",r=Qt[t[0]].path),b(e,"viewBox","0 0 16 16")},m(i,o){D(i,e,o),_(e,n)},p(i,[o]){o&1&&r!==(r=Qt[i[0]].path)&&b(n,"d",r)},i:te,o:te,d(i){i&&$(e)}}}function fi(t,e,n){let{icon:r}=e;return t.$$set=i=>{"icon"in i&&n(0,r=i.icon)},[r]}class Jn extends X{constructor(e){super(),Z(this,e,fi,ui,Y,{icon:0})}}function ci(t){let e,n,r,i,o,l,a,s,u,d,f;return o=new Jn({props:{icon:t[0]}}),{c(){e=C("div"),n=C("div"),r=C("button"),i=C("div"),K(o.$$.fragment),l=M(),a=C("div"),s=Q(t[1]),b(i,"class","icon svelte-7d82q0"),b(r,"aria-labelledby",t[3]),b(r,"class","clickable svelte-7d82q0"),q(r,"open",open),b(a,"class","label svelte-7d82q0"),b(a,"id",t[3]),b(n,"class","content svelte-7d82q0"),b(e,"class","icon-button clickable svelte-7d82q0")},m(c,m){D(c,e,m),_(e,n),_(n,r),_(r,i),j(o,i,null),_(n,l),_(n,a),_(a,s),u=!0,d||(f=[re(r,"click",function(){de(t[2])&&t[2].apply(this,arguments)}),re(e,"click",function(){de(t[2])&&t[2].apply(this,arguments)})],d=!0)},p(c,[m]){t=c;const g={};m&1&&(g.icon=t[0]),o.$set(g),(!u||m&0)&&q(r,"open",open),(!u||m&2)&&fe(s,t[1])},i(c){u||(y(o.$$.fragment,c),u=!0)},o(c){k(o.$$.fragment,c),u=!1},d(c){c&&$(e),U(o),d=!1,ye(f)}}}function di(t,e,n){let{icon:r}=e,{label:i}=e,{onClick:o}=e;const l=`${Wn()}-label`;return t.$$set=a=>{"icon"in a&&n(0,r=a.icon),"label"in a&&n(1,i=a.label),"onClick"in a&&n(2,o=a.onClick)},[r,i,o,l]}class be extends X{constructor(e){super(),Z(this,e,di,ci,Y,{icon:0,label:1,onClick:2})}}function mi(t){let e,n,r,i,o,l,a,s,u,d,f,c;s=new be({props:{icon:t[2],label:"Close",onClick:t[6]}});const m=t[9].default,g=ot(m,t,t[8],null);return{c(){e=C("div"),n=M(),r=C("div"),i=C("div"),o=C("h2"),l=Q(t[0]),a=M(),K(s.$$.fragment),u=M(),d=C("div"),g&&g.c(),b(e,"class","backdrop svelte-fabgrs"),q(e,"open",t[3]),b(o,"id",t[5]),b(o,"class","svelte-fabgrs"),b(i,"class","header svelte-fabgrs"),b(d,"class","content svelte-fabgrs"),b(r,"class",f="modal "+t[1]+" "+(t[7]?"window-controls-on-left":"")+" svelte-fabgrs"),b(r,"role","dialog"),b(r,"aria-labelledby",t[5]),b(r,"id",t[4]),q(r,"open",t[3])},m(w,S){D(w,e,S),D(w,n,S),D(w,r,S),_(r,i),_(i,o),_(o,l),_(i,a),j(s,i,null),_(r,u),_(r,d),g&&g.m(d,null),c=!0},p(w,[S]){(!c||S&8)&&q(e,"open",w[3]),(!c||S&1)&&fe(l,w[0]);const N={};S&4&&(N.icon=w[2]),s.$set(N),g&&g.p&&(!c||S&256)&&at(g,m,w,w[8],c?lt(m,w[8],S,null):st(w[8]),null),(!c||S&2&&f!==(f="modal "+w[1]+" "+(w[7]?"window-controls-on-left":"")+" svelte-fabgrs"))&&b(r,"class",f),(!c||S&10)&&q(r,"open",w[3])},i(w){c||(y(s.$$.fragment,w),y(g,w),c=!0)},o(w){k(s.$$.fragment,w),k(g,w),c=!1},d(w){w&&($(e),$(n),$(r)),U(s),g&&g.d(w)}}}function gi(t,e,n){var g,w;let{$$slots:r={},$$scope:i}=e,{title:o}=e,{position:l="center"}=e,{closeIcon:a="Close"}=e;const s=`modal-${Wn()}`,u=`${s}-title`;let d=!1;ut(()=>{const S=si(`#${s}`,{clickOutsideDeactivates:!0,onDeactivate:()=>c()});S.activate();const N=document.body.style.overflow;return document.body.style.overflow="hidden",setTimeout(()=>{n(3,d=!0)},0),()=>{S.deactivate(),document.body.style.overflow=N}});const f=ft(),c=()=>{n(3,d=!1),setTimeout(()=>f("close"),125)};let m=((g=navigator.windowControlsOverlay)==null?void 0:g.visible)&&((w=navigator.windowControlsOverlay)==null?void 0:w.getTitlebarAreaRect().left)>0;return t.$$set=S=>{"title"in S&&n(0,o=S.title),"position"in S&&n(1,l=S.position),"closeIcon"in S&&n(2,a=S.closeIcon),"$$scope"in S&&n(8,i=S.$$scope)},[o,l,a,d,s,u,c,m,i,r]}class $t extends X{constructor(e){super(),Z(this,e,gi,mi,Y,{title:0,position:1,closeIcon:2})}}function hi(t){let e;return{c(){e=Q(t[0])},m(n,r){D(n,e,r)},p(n,r){r&1&&fe(e,n[0])},d(n){n&&$(e)}}}function vi(t){let e,n,r,i,o;const l=t[6].default,a=ot(l,t,t[5],null),s=a||hi(t);return{c(){e=C("button"),s&&s.c(),b(e,"aria-pressed",n=t[1]?"true":"false"),e.disabled=t[1],b(e,"class","svelte-fhaqyy"),q(e,"pressed",t[1])},m(u,d){D(u,e,d),s&&s.m(e,null),r=!0,i||(o=re(e,"click",function(){de(t[2])&&t[2].apply(this,arguments)}),i=!0)},p(u,[d]){t=u,a?a.p&&(!r||d&32)&&at(a,l,t,t[5],r?lt(l,t[5],d,null):st(t[5]),null):s&&s.p&&(!r||d&1)&&s.p(t,r?d:-1),(!r||d&2&&n!==(n=t[1]?"true":"false"))&&b(e,"aria-pressed",n),(!r||d&2)&&(e.disabled=t[1]),(!r||d&2)&&q(e,"pressed",t[1])},i(u){r||(y(s,u),r=!0)},o(u){k(s,u),r=!1},d(u){u&&$(e),s&&s.d(u),i=!1,o()}}}function pi(t,e,n){let r,i,o;pe(t,Fe,c=>n(4,o=c));let{$$slots:l={},$$scope:a}=e,{target:s}=e,{value:u}=e;const{update:d}=Fe,f=()=>{};return t.$$set=c=>{"target"in c&&n(3,s=c.target),"value"in c&&n(0,u=c.value),"$$scope"in c&&n(5,a=c.$$scope)},t.$$.update=()=>{t.$$.dirty&25&&n(1,i=o[s]===u),t.$$.dirty&11&&n(2,r=i?f:()=>d(c=>({...c,[s]:u})))},[u,i,r,s,o,a,l]}class ce extends X{constructor(e){super(),Z(this,e,pi,vi,Y,{target:3,value:0})}}function Yt(t){let e,n;return e=new be({props:{icon:"Help",label:"Help",onClick:t[3].help}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&8&&(o.onClick=r[3].help),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Zt(t){let e,n;return e=new be({props:{icon:"Shuffle",label:"Shuffle",onClick:t[3].shuffle}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&8&&(o.onClick=r[3].shuffle),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Xt(t){let e,n;return e=new be({props:{icon:"Undo",label:"Undo",onClick:t[3].undo}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&8&&(o.onClick=r[3].undo),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function xt(t){let e,n;return e=new $t({props:{position:"left",title:"Menu",$$slots:{default:[_i]},$$scope:{ctx:t}}}),e.$on("close",t[4]("close")),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&128&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function bi(t){let e;return{c(){e=Q("Pileon solitaire")},m(n,r){D(n,e,r)},d(n){n&&$(e)}}}function yi(t){let e;return{c(){e=Q("Deck of cards")},m(n,r){D(n,e,r)},d(n){n&&$(e)}}}function _i(t){let e,n,r,i,o,l,a,s,u,d,f,c,m,g,w,S,N,E,v,O,A,P,R,H,I,B,p,h,T,L,F,z,W,J,G;return i=new ce({props:{target:"game",value:"pileon",$$slots:{default:[bi]},$$scope:{ctx:t}}}),a=new ce({props:{target:"game",value:"deck",$$slots:{default:[yi]},$$scope:{ctx:t}}}),E=new ce({props:{target:"colors",value:"default"}}),O=new ce({props:{target:"colors",value:"standard"}}),P=new ce({props:{target:"colors",value:"four-color"}}),h=new ce({props:{target:"size",value:"default"}}),L=new ce({props:{target:"size",value:"bridge"}}),z=new ce({props:{target:"size",value:"poker"}}),J=new ce({props:{target:"size",value:"small"}}),{c(){e=C("div"),n=C("ul"),r=C("li"),K(i.$$.fragment),o=M(),l=C("li"),K(a.$$.fragment),s=M(),u=C("div"),d=M(),f=C("h3"),f.textContent="Settings",c=M(),m=C("table"),g=C("tr"),w=C("th"),w.textContent="Colors:",S=M(),N=C("td"),K(E.$$.fragment),v=Q(" / "),K(O.$$.fragment),A=Q(" / "),K(P.$$.fragment),R=M(),H=C("tr"),I=C("th"),I.textContent="Size:",B=M(),p=C("td"),K(h.$$.fragment),T=Q(" / "),K(L.$$.fragment),F=Q(" / "),K(z.$$.fragment),W=Q(" / "),K(J.$$.fragment),b(r,"class","svelte-vd9w7o"),b(l,"class","svelte-vd9w7o"),b(n,"class","svelte-vd9w7o"),b(u,"class","whitespace svelte-vd9w7o"),b(w,"class","svelte-vd9w7o"),b(N,"class","svelte-vd9w7o"),b(I,"class","svelte-vd9w7o"),b(p,"class","svelte-vd9w7o"),b(m,"class","svelte-vd9w7o"),b(e,"class","drawer svelte-vd9w7o")},m(V,oe){D(V,e,oe),_(e,n),_(n,r),j(i,r,null),_(n,o),_(n,l),j(a,l,null),_(e,s),_(e,u),_(e,d),_(e,f),_(e,c),_(e,m),_(m,g),_(g,w),_(g,S),_(g,N),j(E,N,null),_(N,v),j(O,N,null),_(N,A),j(P,N,null),_(m,R),_(m,H),_(H,I),_(H,B),_(H,p),j(h,p,null),_(p,T),j(L,p,null),_(p,F),j(z,p,null),_(p,W),j(J,p,null),G=!0},p(V,oe){const ue={};oe&128&&(ue.$$scope={dirty:oe,ctx:V}),i.$set(ue);const ge={};oe&128&&(ge.$$scope={dirty:oe,ctx:V}),a.$set(ge)},i(V){G||(y(i.$$.fragment,V),y(a.$$.fragment,V),y(E.$$.fragment,V),y(O.$$.fragment,V),y(P.$$.fragment,V),y(h.$$.fragment,V),y(L.$$.fragment,V),y(z.$$.fragment,V),y(J.$$.fragment,V),G=!0)},o(V){k(i.$$.fragment,V),k(a.$$.fragment,V),k(E.$$.fragment,V),k(O.$$.fragment,V),k(P.$$.fragment,V),k(h.$$.fragment,V),k(L.$$.fragment,V),k(z.$$.fragment,V),k(J.$$.fragment,V),G=!1},d(V){V&&$(e),U(i),U(a),U(E),U(O),U(P),U(h),U(L),U(z),U(J)}}}function wi(t){let e,n,r,i,o,l,a,s,u,d,f,c,m,g,w,S;o=new be({props:{icon:"Menu",label:"Menu",onClick:t[4]("open")}});let N=t[3].help!==void 0&&Yt(t),E=t[3].shuffle!==void 0&&Zt(t),v=t[3].undo!==void 0&&Xt(t),O=t[0]&&xt(t);return{c(){e=C("div"),n=C("div"),r=M(),i=C("div"),K(o.$$.fragment),l=M(),N&&N.c(),a=M(),E&&E.c(),s=M(),v&&v.c(),d=M(),f=C("div"),c=M(),O&&O.c(),m=At(),b(n,"class","window-controls svelte-vd9w7o"),b(i,"class",u="menu "+t[2]+" svelte-vd9w7o"),b(f,"class","window-controls svelte-vd9w7o"),b(e,"class","titlebar svelte-vd9w7o")},m(A,P){D(A,e,P),_(e,n),_(e,r),_(e,i),j(o,i,null),_(i,l),N&&N.m(i,null),_(i,a),E&&E.m(i,null),_(i,s),v&&v.m(i,null),t[6](i),_(e,d),_(e,f),D(A,c,P),O&&O.m(A,P),D(A,m,P),g=!0,w||(S=re(window,"resize",t[5]),w=!0)},p(A,[P]){A[3].help!==void 0?N?(N.p(A,P),P&8&&y(N,1)):(N=Yt(A),N.c(),y(N,1),N.m(i,a)):N&&(x(),k(N,1,1,()=>{N=null}),ee()),A[3].shuffle!==void 0?E?(E.p(A,P),P&8&&y(E,1)):(E=Zt(A),E.c(),y(E,1),E.m(i,s)):E&&(x(),k(E,1,1,()=>{E=null}),ee()),A[3].undo!==void 0?v?(v.p(A,P),P&8&&y(v,1)):(v=Xt(A),v.c(),y(v,1),v.m(i,null)):v&&(x(),k(v,1,1,()=>{v=null}),ee()),(!g||P&4&&u!==(u="menu "+A[2]+" svelte-vd9w7o"))&&b(i,"class",u),A[0]?O?(O.p(A,P),P&1&&y(O,1)):(O=xt(A),O.c(),y(O,1),O.m(m.parentNode,m)):O&&(x(),k(O,1,1,()=>{O=null}),ee())},i(A){g||(y(o.$$.fragment,A),y(N),y(E),y(v),y(O),g=!0)},o(A){k(o.$$.fragment,A),k(N),k(E),k(v),k(O),g=!1},d(A){A&&($(e),$(c),$(m)),U(o),N&&N.d(),E&&E.d(),v&&v.d(),t[6](null),O&&O.d(A),w=!1,S()}}}function Si(t,e,n){let r;pe(t,Me,d=>n(3,r=d));let i=!1;const o=d=>f=>{n(0,i=d==="open"),f.stopPropagation()};let l,a="";const s=()=>{var c,m;if(!((c=navigator.windowControlsOverlay)!=null&&c.visible))return;const d=l.getBoundingClientRect(),f=(m=navigator.windowControlsOverlay)==null?void 0:m.getTitlebarAreaRect();f.left>d.left||f.right<d.right?n(2,a="below-titlebar"):n(2,a="")};ut(s);function u(d){_t[d?"unshift":"push"](()=>{l=d,n(1,l)})}return[i,l,a,r,o,s,u]}class ki extends X{constructor(e){super(),Z(this,e,Si,wi,Y,{})}}var ie={},ae={};function Le(t){"@babel/helpers - typeof";return Le=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Le(t)}Object.defineProperty(ae,"__esModule",{value:!0});var kt=ae.Cards=ae.CardSuits=er=ae.CardStringType=ae.Card=void 0;function me(t,e,n){return e=Yn(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Gn(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function en(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,Yn(r.key),r)}}function Qn(t,e,n){return e&&en(t.prototype,e),n&&en(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function Yn(t){var e=Ci(t,"string");return Le(e)==="symbol"?e:String(e)}function Ci(t,e){if(Le(t)!=="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(Le(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function Ti(t,e){if(typeof e!="function"&&e!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&Be(t,e)}function Ni(t){var e=Xn();return function(){var r=Ve(t),i;if(e){var o=Ve(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return Zn(this,i)}}function Zn(t,e){if(e&&(Le(e)==="object"||typeof e=="function"))return e;if(e!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Oi(t)}function Oi(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function Ct(t){var e=typeof Map=="function"?new Map:void 0;return Ct=function(r){if(r===null||!Ai(r))return r;if(typeof r!="function")throw new TypeError("Super expression must either be null or a function");if(typeof e<"u"){if(e.has(r))return e.get(r);e.set(r,i)}function i(){return Ye(r,arguments,Ve(this).constructor)}return i.prototype=Object.create(r.prototype,{constructor:{value:i,enumerable:!1,writable:!0,configurable:!0}}),Be(i,r)},Ct(t)}function Ye(t,e,n){return Xn()?Ye=Reflect.construct.bind():Ye=function(i,o,l){var a=[null];a.push.apply(a,o);var s=Function.bind.apply(i,a),u=new s;return l&&Be(u,l.prototype),u},Ye.apply(null,arguments)}function Xn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ai(t){return Function.toString.call(t).indexOf("[native code]")!==-1}function Be(t,e){return Be=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},Be(t,e)}function Ve(t){return Ve=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(n){return n.__proto__||Object.getPrototypeOf(n)},Ve(t)}function Ei(t,e){return Fi(t)||Pi(t,e)||Di(t,e)||$i()}function $i(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Di(t,e){if(t){if(typeof t=="string")return tn(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return tn(t,e)}}function tn(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Pi(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,o,l,a=[],s=!0,u=!1;try{if(o=(n=n.call(t)).next,e===0){if(Object(n)!==n)return;s=!1}else for(;!(s=(r=o.call(n)).done)&&(a.push(r.value),a.length!==e);s=!0);}catch(d){u=!0,i=d}finally{try{if(!s&&n.return!=null&&(l=n.return(),Object(l)!==l))return}finally{if(u)throw i}}return a}}function Fi(t){if(Array.isArray(t))return t}var xn=function(t){return t[t.Hearts=0]="Hearts",t[t.Spades=1]="Spades",t[t.Diamonds=2]="Diamonds",t[t.Clubs=3]="Clubs",t}({});ae.CardSuits=xn;var Dt=function(t){return t.Char="CHAR",t.Short="SHORT",t.Long="LONG",t.ShortEmoji="SHORT_EMOJI",t.ShortSuit="SHORT_SUIT",t.LongSuit="LONG_SUIT",t.EmojiSuit="EMOJI_SUIT",t.ShortValue="SHORT_VALUE",t.LongValue="LONG_VALUE",t}({}),er=ae.CardStringType=Dt,Mi={"♥":0,"♠":1,"♦":2,"♣":3,h:0,s:1,d:2,c:3},Li={A:1,T:10,J:11,Q:12,K:13},Ii=function(e){var n=/^([2-9ATJQK]{1}|10)([♥♠♦♣hsdc]{1})$/,r=e.match(n);if(!r)throw new Error('Could not parse card from "'.concat(e,'". Input should match ').concat(n,"."));var i=Ei(r,3);i[0];var o=i[1],l=i[2],a=Number(o),s=(Number.isNaN(a)?Li[o]:a)-1;return Mi[l]*13+s},Ri=function(e){var n=/^_[a-z]+$/i;if(e.match(n)){var r=Array.from(e.slice(1));return r.map(function(i){var o=i.charCodeAt(0);return o<91?o-65:o-97+26})}return e.split(/[\s,]+/)},ji=function(t){Ti(n,t);var e=Ni(n);function n(r){var i;if(Gn(this,n),typeof r=="number")i=e.call(this,r);else{i=e.call(this);var o=Array.isArray(r)?r:Ri(r);o.forEach(function(l){return i.push(new se(l))})}return Zn(i)}return Qn(n,[{key:"toString",value:function(){var i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:se.StringType.Short;return i===Dt.Char?"_"+this.map(function(o){return o.toString(i)}).join(""):this.map(function(o){return o.toString(i)}).join(", ")}}]),n}(Ct(Array));kt=ae.Cards=ji;var Ui=function(e){return typeof e=="string"?Ii(e):e instanceof se?e.num:e},se=function(){function t(e){Gn(this,t),me(this,"num",void 0),this.num=Ui(e)}return Qn(t,[{key:"suit",get:function(){return t.getSuit(this.num)}},{key:"value",get:function(){return t.getValue(this.num)}},{key:"toString",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:t.StringType.Long;switch(n){case t.StringType.Short:return this.toString(t.StringType.ShortValue)+this.toString(t.StringType.ShortSuit);case t.StringType.ShortEmoji:return this.toString(t.StringType.ShortValue)+this.toString(t.StringType.EmojiSuit);case t.StringType.Long:return this.toString(t.StringType.LongValue)+" of "+this.toString(t.StringType.LongSuit);case t.StringType.Char:return t.chars[this.num];case t.StringType.ShortSuit:return t.shortSuits[this.suit];case t.StringType.LongSuit:return t.longSuits[this.suit];case t.StringType.EmojiSuit:return t.emojiSuits[this.suit];case t.StringType.ShortValue:return t.shortValues[this.value===13?0:this.value];case t.StringType.LongValue:return t.longValues[this.value===13?0:this.value]}throw new Error("Unsupported output type")}}],[{key:"fromJSON",value:function(n){var r=n.num;return new t(r)}},{key:"getSuit",value:function(n){return Math.floor(n/13)%4}},{key:"getValue",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;return n%13||r?n%13:13}},{key:"compare",value:function(n,r){return r.value-n.value}}]),t}();ae.Card=se;me(se,"Suits",xn);me(se,"StringType",Dt);me(se,"chars","ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");me(se,"emojiSuits",["♥","♠","♦","♣"]);me(se,"shortSuits",["h","s","d","c"]);me(se,"longSuits",["hearts","spades","diamonds","clubs"]);me(se,"shortValues",["A","2","3","4","5","6","7","8","9","T","J","Q","K"]);me(se,"longValues",["ace","two","three","four","five","six","seven","eight","nine","ten","jack","queen","king"]);var ct={},ne={};Object.defineProperty(ne,"__esModule",{value:!0});ne.uniqueFilter=ne.shuffle=ne.last=ne.isSorted=ne.getCombinationsHelper=ne.getCombinations=ne.arraySubtraction=void 0;var Ki=function(e,n){return e.filter(function(r){return!n.includes(r)})};ne.arraySubtraction=Ki;var tr=function t(e,n,r,i,o){if(i.length>=n)o.push(i);else for(var l=r;l<e.length;l++)t(e,n,l+1,i.concat(e[l]),o)};ne.getCombinationsHelper=tr;var zi=function(e,n){var r=[];return tr(e,n,0,[],r),r};ne.getCombinations=zi;var Bi=function(e,n){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,i=r?-1:1;try{return e.reduce(function(o,l){if(i*n(o,l)<=0)return l;throw new Error}),!0}catch{return!1}};ne.isSorted=Bi;var Vi=function(e){return e[e.length-1]};ne.last=Vi;var qi=function(e){for(var n=e.length-1;n>0;n--){var r=Math.floor(Math.random()*(n+1)),i=[e[r],e[n]];e[n]=i[0],e[r]=i[1]}return e};ne.shuffle=qi;var Hi=function(e,n,r){return r.indexOf(e)===n};ne.uniqueFilter=Hi;Object.defineProperty(ct,"__esModule",{value:!0});ct.Deck=void 0;var nn=ne,je=ae;function qe(t){"@babel/helpers - typeof";return qe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},qe(t)}function Wi(t){return Yi(t)||Qi(t)||Gi(t)||Ji()}function Ji(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
 In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Gi(t,e){if(t){if(typeof t=="string")return Tt(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Tt(t,e)}}function Qi(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function Yi(t){if(Array.isArray(t))return Tt(t)}function Tt(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function Zi(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function rn(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,nr(r.key),r)}}function Xi(t,e,n){return e&&rn(t.prototype,e),n&&rn(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function xi(t,e,n){return e=nr(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function nr(t){var e=eo(t,"string");return qe(e)==="symbol"?e:String(e)}function eo(t,e){if(qe(t)!=="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(qe(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var to=function(){function t(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;Zi(this,t),xi(this,"cards",void 0),this.cards=Wi(Array(52*n).keys()).map(function(r){return new je.Card(r)}),e&&this.shuffle()}return Xi(t,[{key:"shuffle",value:function(){(0,nn.shuffle)(this.cards)}},{key:"isShuffled",value:function(){return!(0,nn.isSorted)(this.cards,function(n,r){return n.num-r.num})}},{key:"cardsRemaining",get:function(){return this.cards.length}},{key:"pop",value:function(){return this.cards.pop()}},{key:"popN",value:function(n){for(var r=[],i,o=0;o<n&&(i=this.pop());o++)r.push(i);return r}},{key:"toString",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:je.Card.StringType.Char;return new je.Cards(this.cards).toString(n)}}],[{key:"fromJSON",value:function(n){var r=n.cards,i=new t(!1,0);return i.cards=r.map(function(o){return je.Card.fromJSON(o)}),i}},{key:"fromString",value:function(n){var r=new t(!1,0);return r.cards=new je.Cards(n),r}}]),t}();ct.Deck=to;var Ie={},dt={};Object.defineProperty(dt,"__esModule",{value:!0});dt.uuid4=void 0;var no=function(e){var n;do n=Math.random().toString(16).slice(2,e+2);while(n.length<e&&e<=12);return n},ro=function(){var e=[8,4,4,4,12],n=e.map(no).join("-").split("");return n[14]="4",n[19]=(Math.floor(Math.random()*64)%4+8).toString(16),n.join("")};dt.uuid4=ro;Object.defineProperty(Ie,"__esModule",{value:!0});Ie.HandRank=Ie.Hand=void 0;var Oe=ne,he=ae,io=dt;function ve(t){"@babel/helpers - typeof";return ve=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},ve(t)}function _e(t){return so(t)||ao(t)||lo(t)||oo()}function oo(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
-In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lo(t,e){if(t){if(typeof t=="string")return Nt(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Nt(t,e)}}function ao(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function so(t){if(Array.isArray(t))return Nt(t)}function Nt(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function uo(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function on(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,rr(r.key),r)}}function fo(t,e,n){return e&&on(t.prototype,e),n&&on(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function Ze(t,e,n){return e=rr(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function rr(t){var e=co(t,"string");return ve(e)==="symbol"?e:String(e)}function co(t,e){if(ve(t)!=="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(ve(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var ir=function(t){return t[t.High=0]="High",t[t.Pair=5]="Pair",t[t.TwoPairs=10]="TwoPairs",t[t.ThreeOfAKind=15]="ThreeOfAKind",t[t.Straight=20]="Straight",t[t.Flush=25]="Flush",t[t.FullHouse=30]="FullHouse",t[t.FourOfAKind=35]="FourOfAKind",t[t.StraightFlush=40]="StraightFlush",t[t.FiveOfAKind=45]="FiveOfAKind",t}({});Ie.HandRank=ir;var or=function(){function t(e,n,r){uo(this,t),Ze(this,"uuid",void 0),Ze(this,"rank",void 0),Ze(this,"cards",void 0),this.rank=e,this.cards=n,this.uuid=r||(0,io.uuid4)()}return fo(t,[{key:"getCardsString",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:he.Card.StringType.Short;return new he.Cards(this.cards).toString(n)}},{key:"toString",value:function(){var n=this,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:he.Card.StringType.Short,i=he.Card.StringType.LongValue,o=function(s){return n.cards[s].toString(i)},l=this.getCardsString(r);switch(this.rank){case t.Rank.FiveOfAKind:return"Five of a kind, ".concat(o(0),"s (").concat(l,")");case t.Rank.StraightFlush:return"Straigth flush, ".concat(o(0)," high (").concat(l,")");case t.Rank.FourOfAKind:return"Four of a kind, ".concat(o(0),"s (").concat(l,")");case t.Rank.FullHouse:return"Full house, ".concat(o(0),"s over ").concat(o(3),"s (").concat(l,")");case t.Rank.Flush:return"Flush, ".concat(o(0)," high (").concat(l,")");case t.Rank.Straight:return"Straigth, ".concat(o(0)," high (").concat(l,")");case t.Rank.ThreeOfAKind:return"Three of a kind, ".concat(o(0),"s (").concat(l,")");case t.Rank.TwoPairs:return"Two pairs, ".concat(o(0),"s and ").concat(o(2),"s (").concat(l,")");case t.Rank.Pair:return"Pair, ".concat(o(0),"s (").concat(l,")");case t.Rank.High:return"".concat(o(0).replace(/^\w/,function(a){return a.toUpperCase()})," high (").concat(l,")")}throw new Error("Unsupported rank value")}}],[{key:"fromJSON",value:function(n){var r=n.rank,i=n.cards,o=n.uuid;return new t(r,i.map(he.Card.fromJSON),o)}},{key:"solve",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,i,o;return(i=t.isNumOfAKind(5,n))?o=t.Rank.FiveOfAKind:(i=t.isStraightFlush(n,r))?o=t.Rank.StraightFlush:(i=t.isNumOfAKind(4,n))?o=t.Rank.FourOfAKind:(i=t.isFullHouse(n))?o=t.Rank.FullHouse:(i=t.isFlush(n,r))?o=t.Rank.Flush:(i=t.isStraight(n,r))?o=t.Rank.Straight:(i=t.isNumOfAKind(3,n))?o=t.Rank.ThreeOfAKind:(i=t.isTwoPairs(n))?o=t.Rank.TwoPairs:(i=t.isNumOfAKind(2,n))?o=t.Rank.Pair:(i=[],o=t.Rank.High),i=t.fillWithKickers(i,n),new t(o,i)}},{key:"solveHoldEm",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(i===0)return t.solve([].concat(_e(n),_e(r)));for(var o=(0,Oe.getCombinations)(n,n.length-i),l=(0,Oe.getCombinations)(r,Math.min(r.length,i)),a=[],s=0;s<o.length;s++)for(var u=0;u<l.length;u++)a.push(t.solve([].concat(_e(o[s]),_e(l[u]))));return t.max.apply(t,a)}},{key:"compare",value:function(n,r){var i;if(n.cards.length!==r.cards.length)throw new Error("Comparing hands with different number of cards");if((i=r.rank-n.rank)!==0)return i;for(var o=0;o<n.cards.length;o++)if((i=he.Card.compare(n.cards[o],r.cards[o]))!==0)return i;return 0}},{key:"winners",value:function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];var o=t.max.apply(t,r);return r.filter(function(l){return!t.compare(l,o)})}},{key:"max",value:function(){for(var n=function(a,s){return t.compare(a,s)<0?a:s},r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return i.reduce(function(l,a){return n(l,a)})}},{key:"fillWithKickers",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:5;return r=(0,Oe.arraySubtraction)(r,n).sort(he.Card.compare),[].concat(_e(n),_e(r)).slice(0,i)}},{key:"getUniqueValues",value:function(n){return n.map(function(r){return r.value}).filter(Oe.uniqueFilter).sort(function(r,i){return i-r})}},{key:"isNumOfAKind",value:function(n,r){for(var i=t.getUniqueValues(r),o,l=function(d){if(o=r.filter(function(c){return c.value==i[d]}),o.length>=n)return{v:o}},a=0;a<i.length;a++){var s=l(a);if(ve(s)==="object")return s.v}return!1}},{key:"isNumOfAKindCombination",value:function(n,r){for(var i=[],o=0;o<n.length;o++){var l=t.isNumOfAKind(n[o],(0,Oe.arraySubtraction)(r,i));if(l===!1)return!1;l=l,i.push.apply(i,_e(l))}return i}},{key:"isStraightFlush",value:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,i=[],o=function(u){if(i=n.filter(function(c){return c.suit===u}),i.length<r)return"continue";var d=t.isStraight(i,r);if(d)return{v:d}},l=0;l<4;l++){var a=o(l);if(a!=="continue"&&ve(a)==="object")return a.v}return!1}},{key:"isFullHouse",value:function(n){return t.isNumOfAKindCombination([3,2],n)}},{key:"isFlush",value:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,i=function(s){var u=n.filter(function(d){return d.suit==s});if(u.length>=r)return{v:u.sort(he.Card.compare).slice(0,r)}},o=0;o<4;o++){var l=i(o);if(ve(l)==="object")return l.v}return!1}},{key:"isStraight",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,i=t.getUniqueValues(n);if(i.length<r)return!1;i.includes(13)&&i.push(0);for(var o=[i[0]],l=1;l<i.length&&o.length<r;l++)(0,Oe.last)(o)-i[l]===1?o.push(i[l]):o=[i[l]];return o.length==r?o.map(function(a){return n.find(function(s){return s.value===(a||13)})}):!1}},{key:"isTwoPairs",value:function(n){return t.isNumOfAKindCombination([2,2],n)}}]),t}();Ie.Hand=or;Ze(or,"Rank",ir);(function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Card",{enumerable:!0,get:function(){return e.Card}}),Object.defineProperty(t,"CardStringType",{enumerable:!0,get:function(){return e.CardStringType}}),Object.defineProperty(t,"Cards",{enumerable:!0,get:function(){return e.Cards}}),Object.defineProperty(t,"Deck",{enumerable:!0,get:function(){return n.Deck}}),Object.defineProperty(t,"Hand",{enumerable:!0,get:function(){return r.Hand}});var e=ae,n=ct,r=Ie})(ie);const mo=4.5,go=5,ho=3,ln=7,vo=5,lr=t=>{switch(t){case"bridge":return{height:ln,width:mo};case"poker":return{height:ln,width:go};case"small":return{height:vo,width:ho}}},Pt="card-appearance",po={size:"bridge",fourColor:!1},bo=({size:t,colors:e})=>({size:t==="default"?"poker":t,fourColor:e==="four-color"}),ar=t=>{const e=$t(po,n=>(Fe.subscribe(r=>n(t(r))),()=>{}));return kr(Pt,e),e},Ft=()=>Rn(Pt),yo=t=>{const e=Rn(Pt);if(e){const n=br(Fe);e.set(t(n))}},Ot=(t,e,n={})=>r=>{(Array.isArray(t)?t:[t]).includes(r.code)&&e!==void 0&&(n.preventDefault&&r.preventDefault(),e())};function _o(t){let e,n;return{c(){e=Xe("svg"),n=Xe("path"),b(n,"d",t[1]),b(n,"fill","CurrentColor"),b(e,"viewBox","0 0 16 20"),b(e,"class","svelte-1jimf84"),q(e,"flip",t[0])},m(r,i){D(r,e,i),_(e,n)},p(r,[i]){i&2&&b(n,"d",r[1]),i&1&&q(e,"flip",r[0])},i:te,o:te,d(r){r&&E(e)}}}function wo(t,e,n){let r,{suit:i=null}=e,{flip:o=!1}=e;const l=a=>{switch(a){case"hearts":return"M 8 2 C 9 0 11 0 12 0 C 13 0 16 1 16 6 C 16 8 15.5 10 14 12 L 8 20 L 2 12 C 0.5 10 0 8 0 6 C 0 1 3 0 4 0 C 5 0 7 0 8 2";case"spades":return"M 8 0 L 13 5 C 16 8 16 10 16 12 C 16 14 14 16 12 16 C 11 16 9 16 8 14 L 12 20 L 4 20 L 8 14 C 7 16 5 16 4 16 C 2 16 0 14 0 12 C 0 10 0 8 3 5 L 8 0";case"diamonds":return"M 8 0 L 16 10 L 8 20 L 0 10 L 8 0";case"clubs":return"M 8 0 C 10 0 12 2 12 4 C 12 6 11 8 8 10 C 9 8 10 7 12 7 C 14 7 16 9 16 12 C 16 14 14 16 12 16 C 11 16 9 16 8 14 L 12 20 L 4 20 L 8 14 C 7 16 5 16 4 16 C 2 16 0 14 0 12 C 0 9 2 7 4 7 C 6 7 7 8 8 10 C 5 8 4 6 4 4 C 4 2 6 0 8 0";default:return null}};return t.$$set=a=>{"suit"in a&&n(2,i=a.suit),"flip"in a&&n(0,o=a.flip)},t.$$.update=()=>{t.$$.dirty&4&&n(1,r=l(i))},[o,r,i]}class sr extends X{constructor(e){super(),Z(this,e,wo,_o,Y,{suit:2,flip:0})}}function an(t,e,n){const r=t.slice();return r[5]=e[n],r}function sn(t,e,n){const r=t.slice();return r[8]=e[n],r}function un(t){let e,n,r;return n=new sr({props:{suit:t[0],flip:t[8].toLowerCase()==="d"}}),{c(){e=C("span"),K(n.$$.fragment),b(e,"class","svelte-1sm49dl")},m(i,o){D(i,e,o),j(n,e,null),r=!0},p(i,o){const l={};o&1&&(l.suit=i[0]),o&2&&(l.flip=i[8].toLowerCase()==="d"),n.$set(l)},i(i){r||(y(n.$$.fragment,i),r=!0)},o(i){k(n.$$.fragment,i),r=!1},d(i){i&&E(e),U(n)}}}function fn(t){let e,n,r,i,o=le(t[5].split("")),l=[];for(let s=0;s<o.length;s+=1)l[s]=un(sn(t,o,s));const a=s=>k(l[s],1,1,()=>{l[s]=null});return{c(){e=C("div");for(let s=0;s<l.length;s+=1)l[s].c();n=M(),b(e,"class",r="row "+t[3](t[5])+" svelte-1sm49dl")},m(s,u){D(s,e,u);for(let d=0;d<l.length;d+=1)l[d]&&l[d].m(e,null);_(e,n),i=!0},p(s,u){if(u&7){o=le(s[5].split(""));let d;for(d=0;d<o.length;d+=1){const c=sn(s,o,d);l[d]?(l[d].p(c,u),y(l[d],1)):(l[d]=un(c),l[d].c(),y(l[d],1),l[d].m(e,n))}for(x(),d=o.length;d<l.length;d+=1)a(d);ee()}(!i||u&2&&r!==(r="row "+s[3](s[5])+" svelte-1sm49dl"))&&b(e,"class",r)},i(s){if(!i){for(let u=0;u<o.length;u+=1)y(l[u]);i=!0}},o(s){l=l.filter(Boolean);for(let u=0;u<l.length;u+=1)k(l[u]);i=!1},d(s){s&&E(e),Pe(l,s)}}}function So(t){let e,n,r=le(t[2](t[1])),i=[];for(let l=0;l<r.length;l+=1)i[l]=fn(an(t,r,l));const o=l=>k(i[l],1,1,()=>{i[l]=null});return{c(){e=C("div");for(let l=0;l<i.length;l+=1)i[l].c();b(e,"class","center-pattern svelte-1sm49dl")},m(l,a){D(l,e,a);for(let s=0;s<i.length;s+=1)i[s]&&i[s].m(e,null);n=!0},p(l,[a]){if(a&15){r=le(l[2](l[1]));let s;for(s=0;s<r.length;s+=1){const u=an(l,r,s);i[s]?(i[s].p(u,a),y(i[s],1)):(i[s]=fn(u),i[s].c(),y(i[s],1),i[s].m(e,null))}for(x(),s=r.length;s<i.length;s+=1)o(s);ee()}},i(l){if(!n){for(let a=0;a<r.length;a+=1)y(i[a]);n=!0}},o(l){i=i.filter(Boolean);for(let a=0;a<i.length;a+=1)k(i[a]);n=!1},d(l){l&&E(e),Pe(i,l)}}}function ko(t,e,n){let{suit:r}=e,{rank:i}=e;const o={A:["U"],2:["U","D"],3:["U","U","D"],4:["UU","DD"],5:["UU","U","DD"],6:["UU","UU","DD"],7:["UU","u","UU","DD"],8:["UU","UU","DD","DD"],9:["UU","u","UU","DD","DD"],10:["UU","u","UU","DD","d","DD"]},l=s=>o[s]??[],a=s=>s.toUpperCase()===s?"grow":"";return t.$$set=s=>{"suit"in s&&n(0,r=s.suit),"rank"in s&&n(1,i=s.rank)},[r,i,l,a]}class Co extends X{constructor(e){super(),Z(this,e,ko,So,Y,{suit:0,rank:1})}}function To(t){let e,n;const r=t[1].default,i=ot(r,t,t[0],null);return{c(){e=C("span"),i&&i.c(),b(e,"class","screen-reader-only svelte-3uotpv")},m(o,l){D(o,e,l),i&&i.m(e,null),n=!0},p(o,[l]){i&&i.p&&(!n||l&1)&&at(i,r,o,o[0],n?lt(r,o[0],l,null):st(o[0]),null)},i(o){n||(y(i,o),n=!0)},o(o){k(i,o),n=!1},d(o){o&&E(e),i&&i.d(o)}}}function No(t,e,n){let{$$slots:r={},$$scope:i}=e;return t.$$set=o=>{"$$scope"in o&&n(0,i=o.$$scope)},[i,r]}class Oo extends X{constructor(e){super(),Z(this,e,No,To,Y,{})}}function cn(t,e,n){const r=t.slice();return r[16]=e[n],r}function dn(t){let e,n;return e=new Oo({props:{$$slots:{default:[Ao]},$$scope:{ctx:t}}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&524320&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Ao(t){let e;return{c(){e=Q(t[5])},m(n,r){D(n,e,r)},p(n,r){r&32&&fe(e,n[5])},d(n){n&&E(e)}}}function mn(t){let e,n;return e=new Co({props:{suit:t[7],rank:t[8]}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&128&&(o.suit=r[7]),i&256&&(o.rank=r[8]),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function gn(t){let e,n,r,i,o,l,a,s,u,d,c;a=new sr({props:{suit:t[7]}});let f=!t[10]&&mn(t);return{c(){e=C("div"),n=C("div"),r=Q(t[8]),o=M(),l=C("div"),K(a.$$.fragment),s=M(),u=C("div"),f&&f.c(),d=M(),b(n,"class",i="rank rank-"+t[8]+" svelte-hurvu3"),b(l,"class","suit svelte-hurvu3"),b(e,"aria-hidden","true"),b(e,"class",t[16]+" label svelte-hurvu3"),b(u,"class","center svelte-hurvu3"),q(u,"face",t[6])},m(m,g){D(m,e,g),_(e,n),_(n,r),_(e,o),_(e,l),j(a,l,null),D(m,s,g),D(m,u,g),f&&f.m(u,null),_(u,d),c=!0},p(m,g){(!c||g&256)&&fe(r,m[8]),(!c||g&256&&i!==(i="rank rank-"+m[8]+" svelte-hurvu3"))&&b(n,"class",i);const w={};g&128&&(w.suit=m[7]),a.$set(w),m[10]?f&&(x(),k(f,1,1,()=>{f=null}),ee()):f?(f.p(m,g),g&1024&&y(f,1)):(f=mn(m),f.c(),y(f,1),f.m(u,d)),(!c||g&64)&&q(u,"face",m[6])},i(m){c||(y(a.$$.fragment,m),y(f),c=!0)},o(m){k(a.$$.fragment,m),k(f),c=!1},d(m){m&&(E(e),E(s),E(u)),U(a),f&&f.d()}}}function $o(t){let e,n,r,i,o=t[3]&&dn(t),l=le(t[13]),a=[];for(let u=0;u<l.length;u+=1)a[u]=gn(cn(t,l,u));const s=u=>k(a[u],1,1,()=>{a[u]=null});return{c(){e=C("div"),o&&o.c(),n=M();for(let u=0;u<a.length;u+=1)a[u].c();b(e,"class",r="card "+t[7]+" stack-"+t[2]+" svelte-hurvu3"),q(e,"bridge",t[11]),q(e,"small",t[10]),q(e,"fourColor",t[9]),q(e,"empty",t[0]),q(e,"hidden",t[4]),q(e,"shadow",t[1]),q(e,"visible",t[3])},m(u,d){D(u,e,d),o&&o.m(e,null),_(e,n);for(let c=0;c<a.length;c+=1)a[c]&&a[c].m(e,null);i=!0},p(u,[d]){if(u[3]?o?(o.p(u,d),d&8&&y(o,1)):(o=dn(u),o.c(),y(o,1),o.m(e,n)):o&&(x(),k(o,1,1,()=>{o=null}),ee()),d&9664){l=le(u[13]);let c;for(c=0;c<l.length;c+=1){const f=cn(u,l,c);a[c]?(a[c].p(f,d),y(a[c],1)):(a[c]=gn(f),a[c].c(),y(a[c],1),a[c].m(e,null))}for(x(),c=l.length;c<a.length;c+=1)s(c);ee()}(!i||d&132&&r!==(r="card "+u[7]+" stack-"+u[2]+" svelte-hurvu3"))&&b(e,"class",r),(!i||d&2180)&&q(e,"bridge",u[11]),(!i||d&1156)&&q(e,"small",u[10]),(!i||d&644)&&q(e,"fourColor",u[9]),(!i||d&133)&&q(e,"empty",u[0]),(!i||d&148)&&q(e,"hidden",u[4]),(!i||d&134)&&q(e,"shadow",u[1]),(!i||d&140)&&q(e,"visible",u[3])},i(u){if(!i){y(o);for(let d=0;d<l.length;d+=1)y(a[d]);i=!0}},o(u){k(o),a=a.filter(Boolean);for(let d=0;d<a.length;d+=1)k(a[d]);i=!1},d(u){u&&E(e),o&&o.d(),Pe(a,u)}}}function Eo(t,e,n){let r,i,o,l,a,s,u,d,c,f;const m=Ft();pe(t,m,v=>n(15,f=v));let{card:g=null}=e,{empty:w=!1}=e,{shadow:S=!1}=e,{stack:N=void 0}=e;const $=["top","bottom"];return t.$$set=v=>{"card"in v&&n(14,g=v.card),"empty"in v&&n(0,w=v.empty),"shadow"in v&&n(1,S=v.shadow),"stack"in v&&n(2,N=v.stack)},t.$$.update=()=>{t.$$.dirty&32768&&n(11,r=f.size==="bridge"),t.$$.dirty&32768&&n(10,i=f.size==="small"),t.$$.dirty&32768&&n(9,o=f.fourColor),t.$$.dirty&16386&&n(4,l=g===null&&!S),t.$$.dirty&19&&n(3,a=!(w||l||S)),t.$$.dirty&16392&&n(8,s=a&&g.toString(ie.Card.StringType.ShortValue).replace("T","10")),t.$$.dirty&16392&&n(7,u=a&&g.toString(ie.Card.StringType.LongSuit)),t.$$.dirty&16392&&n(6,d=a&&g.num%13>9),t.$$.dirty&16392&&n(5,c=a&&g.toString(ie.Card.StringType.Long))},[w,S,N,a,l,c,d,u,s,o,i,r,m,$,g,f]}class mt extends X{constructor(e){super(),Z(this,e,Eo,$o,Y,{card:14,empty:0,shadow:1,stack:2})}}function hn(t,e,n){const r=t.slice();return r[19]=e[n].card,r[20]=e[n].shadow,r[21]=e[n].transform,r}function vn(t){let e,n;return e=new mt({props:{card:t[0],empty:t[0]===void 0}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&1&&(o.card=r[0]),i&1&&(o.empty=r[0]===void 0),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function pn(t){let e,n,r,i;return n=new mt({props:{card:t[19],shadow:t[20]}}),{c(){e=C("div"),K(n.$$.fragment),r=M(),b(e,"class","shadow-container svelte-1ns87h6"),Ee(e,"transform",t[21])},m(o,l){D(o,e,l),j(n,e,null),_(e,r),i=!0},p(o,l){const a={};l&8&&(a.card=o[19]),l&8&&(a.shadow=o[20]),n.$set(a),(!i||l&8)&&Ee(e,"transform",o[21])},i(o){i||(y(n.$$.fragment,o),i=!0)},o(o){k(n.$$.fragment,o),i=!1},d(o){o&&E(e),U(n)}}}function Do(t){let e,n,r,i,o,l,a=!t[1]&&vn(t),s=le(t[3]),u=[];for(let c=0;c<s.length;c+=1)u[c]=pn(hn(t,s,c));const d=c=>k(u[c],1,1,()=>{u[c]=null});return{c(){e=C("div"),n=C("div"),a&&a.c(),r=M();for(let c=0;c<u.length;c+=1)u[c].c();b(n,"aria-atomic","true"),b(n,"aria-live","polite"),b(e,"aria-label",t[2]),b(e,"aria-disabled",t[1]),b(e,"class","deck svelte-1ns87h6"),b(e,"role","button"),b(e,"tabindex","0"),q(e,"bridge",t[5]),q(e,"small",t[4]),q(e,"shuffling",t[1])},m(c,f){D(c,e,f),_(e,n),a&&a.m(n,null),_(n,r);for(let m=0;m<u.length;m+=1)u[m]&&u[m].m(n,null);i=!0,o||(l=[re(e,"keydown",Ot(["Space","Enter"],t[7],{preventDefault:!0})),re(e,"click",t[7])],o=!0)},p(c,[f]){if(c[1]?a&&(x(),k(a,1,1,()=>{a=null}),ee()):a?(a.p(c,f),f&2&&y(a,1)):(a=vn(c),a.c(),y(a,1),a.m(n,r)),f&8){s=le(c[3]);let m;for(m=0;m<s.length;m+=1){const g=hn(c,s,m);u[m]?(u[m].p(g,f),y(u[m],1)):(u[m]=pn(g),u[m].c(),y(u[m],1),u[m].m(n,null))}for(x(),m=s.length;m<u.length;m+=1)d(m);ee()}(!i||f&4)&&b(e,"aria-label",c[2]),(!i||f&2)&&b(e,"aria-disabled",c[1]),(!i||f&32)&&q(e,"bridge",c[5]),(!i||f&16)&&q(e,"small",c[4]),(!i||f&2)&&q(e,"shuffling",c[1])},i(c){if(!i){y(a);for(let f=0;f<s.length;f+=1)y(u[f]);i=!0}},o(c){k(a),u=u.filter(Boolean);for(let f=0;f<u.length;f+=1)k(u[f]);i=!1},d(c){c&&E(e),a&&a.d(),Pe(u,c),o=!1,ye(l)}}}function Po(t,e,n,r){const i=t/r*e,o=.5*i/(n*52),l=1*i/(n*52);return`translate(${o}em , ${l}em)`}function Fo(t,e,n){let r,i,o,l,a,s;const u=Ft();pe(t,u,P=>n(16,s=P));let{numCards:d=52}=e,{numDecks:c=1}=e,{topCard:f=null}=e,{numShadows:m=10}=e,{shuffleAnimationSteps:g=4}=e,{shuffleAnimationMaxDistanceEm:w=.8}=e,{shuffleAnimationMaxRotateDeg:S=7}=e,{onClick:N=()=>{}}=e,$=0;function v(P,R){const H=h=>[1,R+2].includes(P)?0:(Math.random()*2-1)*h,I=H(w),B=H(w),p=H(S);return`translate(${I}em, ${B}em) rotate(${p}deg)`}function O(){$>0&&setTimeout(()=>{n(15,$-=1),O()},250)}function A(){if(!l)return N()}return t.$$set=P=>{"numCards"in P&&n(8,d=P.numCards),"numDecks"in P&&n(9,c=P.numDecks),"topCard"in P&&n(0,f=P.topCard),"numShadows"in P&&n(10,m=P.numShadows),"shuffleAnimationSteps"in P&&n(11,g=P.shuffleAnimationSteps),"shuffleAnimationMaxDistanceEm"in P&&n(12,w=P.shuffleAnimationMaxDistanceEm),"shuffleAnimationMaxRotateDeg"in P&&n(13,S=P.shuffleAnimationMaxRotateDeg),"onClick"in P&&n(14,N=P.onClick)},t.$$.update=()=>{t.$$.dirty&65536&&n(5,r=(s==null?void 0:s.size)==="bridge"),t.$$.dirty&65536&&n(4,i=(s==null?void 0:s.size)==="small"),t.$$.dirty&2817&&f===null&&d===52*c&&g>0&&(n(15,$=g+2),O()),t.$$.dirty&32768&&n(1,l=$>0),t.$$.dirty&36611&&n(3,o=f===void 0?[]:l?[...Array(m)].map(()=>({card:null,shadow:!1,transform:v($,g)})):[...Array(m)].map((P,R)=>({card:void 0,shadow:!0,transform:Po(R,d,c,m)}))),t.$$.dirty&1&&n(2,a=f===void 0?"Shuffle the deck":"Draw a card")},[f,l,a,o,i,r,u,A,d,c,m,g,w,S,N,$,s]}class Mo extends X{constructor(e){super(),Z(this,e,Fo,Do,Y,{numCards:8,numDecks:9,topCard:0,numShadows:10,shuffleAnimationSteps:11,shuffleAnimationMaxDistanceEm:12,shuffleAnimationMaxRotateDeg:13,onClick:14})}}function Lo(t){let e,n,r;return n=new Mo({props:{onClick:t[2],topCard:t[1],numCards:t[0]}}),{c(){e=C("main"),K(n.$$.fragment),b(e,"class","svelte-1tag1lj")},m(i,o){D(i,e,o),j(n,e,null),r=!0},p(i,[o]){const l={};o&2&&(l.topCard=i[1]),o&1&&(l.numCards=i[0]),n.$set(l)},i(i){r||(y(n.$$.fragment,i),r=!0)},o(i){k(n.$$.fragment,i),r=!1},d(i){i&&E(e),U(n)}}}function Io(t,e,n){ar(bo);let r=new ie.Deck,i=r.cardsRemaining,o=null;function l(){o!==void 0?n(1,o=r.pop()):(r=new ie.Deck,n(1,o=null)),n(0,i=r.cardsRemaining)}const a=s=>{s.stopPropagation(),r=new ie.Deck,n(1,o=null),n(0,i=r.cardsRemaining)};return ut(()=>{Me.update(s=>({...s,shuffle:a}))}),In(()=>{Me.update(s=>({...s,shuffle:void 0}))}),[i,o,l]}class Ro extends X{constructor(e){super(),Z(this,e,Io,Lo,Y,{})}}const it=(t,e)=>lr(e).width+(t-1)*1.125,jo=(t,e,n)=>t.length===0?"empty":e?`closed${n==="rank"?`, ${t[0].toString(ie.CardStringType.LongValue)}s`:""}`:t.toString(ie.CardStringType.Long),Uo=(t,e,n,r,i=!1)=>{const o=jo(new ie.Cards(e),r,i),l=n>0?` ${n} cards selected: ${new ie.Cards(e.slice(e.length-n)).toString(ie.CardStringType.Long)}`:"";return`${t}: ${o}.${l}`},Ko=(t,e,n)=>{const r={sourceStack:e,cards:n};t.dataTransfer.setData("application/json",JSON.stringify(r)),t.dataTransfer.effectAllowed="move"},zo=t=>{const{sourceStack:e,cards:n}=JSON.parse(t.dataTransfer.getData("application/json"));return{sourceStack:e,cards:n.map(ie.Card.fromJSON)}};function Bo(t){let e,n;return e=new mt({props:{card:t[11]?null:t[0][0],stack:"left"}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&2049&&(o.card=r[11]?null:r[0][0]),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Vo(t){let e,n;return e=new mt({props:{empty:!0}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p:te,i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function bn(t){let e,n,r;return n=new ur({props:{cards:t[0].slice(1),capacity:t[1]-1,nested:!0,closed:t[2],index:t[3],isDraggableFn:t[4],selectedCardsN:t[5]}}),{c(){e=C("div"),K(n.$$.fragment),b(e,"class","nested svelte-o50ay1")},m(i,o){D(i,e,o),j(n,e,null),r=!0},p(i,o){const l={};o&1&&(l.cards=i[0].slice(1)),o&2&&(l.capacity=i[1]-1),o&4&&(l.closed=i[2]),o&8&&(l.index=i[3]),o&16&&(l.isDraggableFn=i[4]),o&32&&(l.selectedCardsN=i[5]),n.$set(l)},i(i){r||(y(n.$$.fragment,i),r=!0)},o(i){k(n.$$.fragment,i),r=!1},d(i){i&&E(e),U(n)}}}function qo(t){let e,n,r,i,o,l,a,s,u,d;const c=[Vo,Bo],f=[];function m(w,S){return w[0].length===0?0:1}r=m(t),i=f[r]=c[r](t);let g=t[0].length>1&&bn(t);return{c(){e=C("div"),n=C("div"),i.c(),o=M(),g&&g.c(),b(n,"aria-hidden",l=t[6]?void 0:"true"),b(e,"aria-label",t[7]),b(e,"class","stack svelte-o50ay1"),b(e,"style",t[14]),b(e,"draggable",t[13]),b(e,"role","button"),b(e,"tabindex",a=t[6]?void 0:0),q(e,"selected",t[12])},m(w,S){D(w,e,S),_(e,n),f[r].m(n,null),_(n,o),g&&g.m(n,null),s=!0,u||(d=[re(e,"dblclick",t[19]),re(e,"dragstart",function(){de(t[10])&&t[10].apply(this,arguments)}),re(e,"dragover",function(){de(t[9])&&t[9].apply(this,arguments)}),re(e,"drop",t[20]),re(e,"click",function(){de(t[8])&&t[8].apply(this,arguments)}),re(e,"keydown",function(){de(Ot(["Enter","Space"],t[8],{preventDefault:!0}))&&Ot(["Enter","Space"],t[8],{preventDefault:!0}).apply(this,arguments)})],u=!0)},p(w,[S]){t=w;let N=r;r=m(t),r===N?f[r].p(t,S):(x(),k(f[N],1,1,()=>{f[N]=null}),ee(),i=f[r],i?i.p(t,S):(i=f[r]=c[r](t),i.c()),y(i,1),i.m(n,o)),t[0].length>1?g?(g.p(t,S),S&1&&y(g,1)):(g=bn(t),g.c(),y(g,1),g.m(n,null)):g&&(x(),k(g,1,1,()=>{g=null}),ee()),(!s||S&64&&l!==(l=t[6]?void 0:"true"))&&b(n,"aria-hidden",l),(!s||S&128)&&b(e,"aria-label",t[7]),(!s||S&16384)&&b(e,"style",t[14]),(!s||S&8192)&&b(e,"draggable",t[13]),(!s||S&64&&a!==(a=t[6]?void 0:0))&&b(e,"tabindex",a),(!s||S&4096)&&q(e,"selected",t[12])},i(w){s||(y(i),y(g),s=!0)},o(w){k(i),k(g),s=!1},d(w){w&&E(e),f[r].d(),g&&g.d(),u=!1,ye(d)}}}function Ho(t,e,n){let r,i,o,l,a,s,u,d,c,f;const m=Ft();pe(t,m,I=>n(18,f=I));let{cards:g=[]}=e,{capacity:w=4}=e,{closed:S=!1}=e,{index:N=0}=e,{isDraggableFn:$=()=>!1}=e,{selectedCardsN:v=0}=e,{labelOptions:O={title:"Stack"}}=e,{nested:A=!1}=e;const P=ft();function R(I){yt.call(this,t,I)}function H(I){yt.call(this,t,I)}return t.$$set=I=>{"cards"in I&&n(0,g=I.cards),"capacity"in I&&n(1,w=I.capacity),"closed"in I&&n(2,S=I.closed),"index"in I&&n(3,N=I.index),"isDraggableFn"in I&&n(4,$=I.isDraggableFn),"selectedCardsN"in I&&n(5,v=I.selectedCardsN),"labelOptions"in I&&n(16,O=I.labelOptions),"nested"in I&&n(6,A=I.nested)},t.$$.update=()=>{t.$$.dirty&262144&&n(17,r=f.size),t.$$.dirty&131074&&n(14,i=`width: ${it(w,r)}em`),t.$$.dirty&21&&n(13,o=!S&&$(g)),t.$$.dirty&33&&n(12,l=v>0&&v===g.length),t.$$.dirty&5&&n(11,a=S&&g.length===1),t.$$.dirty&9&&n(10,s=I=>{I.stopPropagation(),Ko(I,N,g)}),t.$$.dirty&72&&n(8,d=()=>{A||P("select",{index:N})}),t.$$.dirty&65637&&n(7,c=A?void 0:Uo(O.title,g,v,S,O.closed))},n(9,u=I=>{I.preventDefault()}),[g,w,S,N,$,v,A,c,d,u,s,a,l,o,i,m,O,r,f,R,H]}class ur extends X{constructor(e){super(),Z(this,e,Ho,qo,Y,{cards:0,capacity:1,closed:2,index:3,isDraggableFn:4,selectedCardsN:5,labelOptions:16,nested:6})}}const Wo=(t,e)=>{const n=t/e;return n<3/4?[3,5]:n<4/3?[4,4]:[5,3]},yn=(t,e)=>({length:t*e-15}),fr=(t,e,n)=>{const r=it(4,t)*e+(e-1),i=lr(t).height*n+(n-1);return[r,i]},Jo=(t,e,n)=>{const r=Math.min(e,n*2.3333333333333335),[i,o]=Wo(r,n),[l,a]=fr(t,i,o),s=r*.95/l,u=n*.95/a;return{fontSize:Math.max(Math.min(s,u),10),columns:i,rows:o,tableWidthEm:l,tableHeightEm:a}},_n=()=>{const t=new ie.Deck;return[...Array(13)].map(()=>t.popN(4)).concat([[],[]])},Mt=t=>{const[e,...n]=t;return n.every(r=>r.value===e.value)},Go=t=>t.length===0?!1:t.length===1?!0:Mt(t),Lt=(t,e)=>t.length+e.length>4?!1:e.length===0||e[e.length-1].value===t[0].value,It=(t,e,n,r)=>{const i=t.map(o=>[...o]);if(!Lt(r,i[n]))throw new Error(`Can not move cards ${r.map(o=>o.toString(er.ShortEmoji))} from pile ${e} to pile ${n}`);return i[e]=i[e].slice(0,i[e].length-r.length),i[n]=[...i[n],...r],i},Rt=t=>t.length===1||Mt(t)?t:Rt(t.slice(1)),Qo=(t,e)=>{if(t[e].length===0)throw new Error("Cannot move cards from an empty pile.");if(jt(t[e]))throw new Error("Cannot move cards from a completed pile.");const n=Rt(t[e]),r=t.reduce((l,a,s)=>s!==e&&Lt(n,a)?[...l,s]:l,[]);if(r.length===0)throw new Error(`Cannot move cards from pile ${e} to any other pile`);const i=r.filter(l=>t[l].length>0),o=i.length>0?i[0]:r[0];return It(t,e,o,n)},Yo=(t,e)=>{const n=t[e].slice(-1);return n.length===0?[[],n]:[t.reduce((i,o,l)=>l!==e&&Lt(n,o)?[...i,l]:i,[]),n]},cr=t=>t.reduce((e,n,r)=>{const[i,o]=Yo(t,r);return i.length===0?e:[...e,[r,i,o]]},[]),Zo=(t,e)=>{if(t[0]!==e[0]||t[1].length!==e[1].length)return!1;for(let n=0;n<t[1].length;n++)if(t[1][n]!==e[1][n])return!1;return new kt(t[2]).toString()===new kt(e[2]).toString()},Xo=t=>(e,n,r)=>{var f;const[i,o,l]=e,a=[...l];if(o.length>1)return[!1,[]];const s=o[0],u=It(t,i,s,l),d=cr(u),c=r.filter(([m])=>m!==s).map(m=>m[0]===i?[s,[i],l]:m).sort((m,g)=>m[0]-g[0]);if(d.length-c.length===1){const m=u[i].slice(-2);if(((f=u[s][0])==null?void 0:f.value)!==l[0].value&&m.length===2&&m.every(g=>g.value===l[0].value))c.push([i,o,[m[1]]]),c.sort((g,w)=>g[0]-w[0]),a.push(m[1]);else return[!1,[]]}return d.length!==c.length?[!1,[]]:[c.every((m,g)=>Zo(m,d[g])),a]},xo=t=>{const e=cr(t);if(e.length===0)return["dead-end",[]];const n=e.map(Xo(t));return n.every(([r])=>r)&&n.length>0?["infinite-loop",n.reduce((i,o)=>[...i,...o[1]],[])]:[!1,[]]},jt=t=>t.length===4&&Mt(t),dr=t=>t.every(e=>jt(e)||e.length===0),el=t=>t.reduce((e,n,r)=>jt(n)?[...e,r]:e,[]),Ae=t=>({type:t,timestamp:Date.now()}),tl=t=>{const e={};return t.forEach(({type:n})=>e[n]=(e[n]??0)+1),e},wn=t=>t.reduce((e,n)=>e+n,0),nl=t=>{const e=t.filter(i=>i.type==="start").map(i=>i.timestamp),n=t.filter(i=>i.type==="stop").map(i=>i.timestamp);if(e.length===0)return[null,null];const r=(n[n.length-1]??Date.now())-e[0];return e.length!==n.length?[null,r]:[wn(n)-wn(e),r]},Ge=(t,e)=>t>0?`${t} ${e}`:"",Sn=t=>{if(t<1e3)return Ge(t,"ms");const e=Math.floor(t/36e5),n=Math.floor(t/6e4-e*60),r=Math.floor(t/1e3-n*60-e*3600);return[Ge(e,"h"),Ge(n,"min"),Ge(r,"s")].join(" ").trim()};function kn(t){let e,n;return e=new Et({props:{title:t[0],position:t[1],closeIcon:"Minimize",$$slots:{default:[rl]},$$scope:{ctx:t}}}),e.$on("close",t[3]),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&1&&(o.title=r[0]),i&2&&(o.position=r[1]),i&64&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function rl(t){let e;const n=t[5].default,r=ot(n,t,t[6],null);return{c(){r&&r.c()},m(i,o){r&&r.m(i,o),e=!0},p(i,o){r&&r.p&&(!e||o&64)&&at(r,n,i,i[6],e?lt(n,i[6],o,null):st(i[6]),null)},i(i){e||(y(r,i),e=!0)},o(i){k(r,i),e=!1},d(i){r&&r.d(i)}}}function il(t){let e,n,r,i,o,l,a,s,u,d,c=t[2]&&kn(t);return r=new Jn({props:{icon:"OpenModal"}}),{c(){c&&c.c(),e=M(),n=C("button"),K(r.$$.fragment),i=M(),o=C("span"),l=Q(t[0]),b(o,"class","title"),b(n,"class",a="minimized-modal "+(t[2]?"":"open")+" svelte-x2lax1")},m(f,m){c&&c.m(f,m),D(f,e,m),D(f,n,m),j(r,n,null),_(n,i),_(n,o),_(o,l),s=!0,u||(d=re(n,"click",t[4]),u=!0)},p(f,[m]){f[2]?c?(c.p(f,m),m&4&&y(c,1)):(c=kn(f),c.c(),y(c,1),c.m(e.parentNode,e)):c&&(x(),k(c,1,1,()=>{c=null}),ee()),(!s||m&1)&&fe(l,f[0]),(!s||m&4&&a!==(a="minimized-modal "+(f[2]?"":"open")+" svelte-x2lax1"))&&b(n,"class",a)},i(f){s||(y(c),y(r.$$.fragment,f),s=!0)},o(f){k(c),k(r.$$.fragment,f),s=!1},d(f){f&&(E(e),E(n)),c&&c.d(f),U(r),u=!1,d()}}}function ol(t,e,n){let{$$slots:r={},$$scope:i}=e,{title:o}=e,{position:l="center"}=e,a=!0;const s=()=>{setTimeout(()=>n(2,a=!1),25)},u=()=>{n(2,a=!0)};return t.$$set=d=>{"title"in d&&n(0,o=d.title),"position"in d&&n(1,l=d.position),"$$scope"in d&&n(6,i=d.$$scope)},[o,l,a,s,u,r,i]}class mr extends X{constructor(e){super(),Z(this,e,ol,il,Y,{title:0,position:1})}}function ll(t){let e,n,r,i,o,l,a,s=Sn(t[0])+"",u,d,c,f,m,g,w=(t[1].move??0)-(t[1].undo??0)+"",S,N,$,v,O,A,P=(t[1].move??0)+(t[1].undo??0)+"",R,H,I,B,p,h,T=(t[1].undo??0)+"",L;return{c(){e=C("p"),e.innerHTML=`Here are statistics about the completed game. Undo and undone moves are
-  excluded from <i>Significant moves</i> but included in <i>Total moves</i>.`,n=M(),r=C("table"),i=C("tr"),o=C("th"),o.textContent="Elapsed time:",l=M(),a=C("td"),u=Q(s),d=M(),c=C("tr"),f=C("th"),f.textContent="Significant moves:",m=M(),g=C("td"),S=Q(w),N=M(),$=C("tr"),v=C("th"),v.textContent="Total moves:",O=M(),A=C("td"),R=Q(P),H=M(),I=C("tr"),B=C("th"),B.textContent="Undone moves:",p=M(),h=C("td"),L=Q(T),b(o,"class","svelte-5tdcck"),b(a,"class","svelte-5tdcck"),b(f,"class","svelte-5tdcck"),b(g,"class","svelte-5tdcck"),b(v,"class","svelte-5tdcck"),b(A,"class","svelte-5tdcck"),b(B,"class","svelte-5tdcck"),b(h,"class","svelte-5tdcck"),b(r,"class","svelte-5tdcck")},m(F,z){D(F,e,z),D(F,n,z),D(F,r,z),_(r,i),_(i,o),_(i,l),_(i,a),_(a,u),_(r,d),_(r,c),_(c,f),_(c,m),_(c,g),_(g,S),_(r,N),_(r,$),_($,v),_($,O),_($,A),_(A,R),_(r,H),_(r,I),_(I,B),_(I,p),_(I,h),_(h,L)},p(F,[z]){z&1&&s!==(s=Sn(F[0])+"")&&fe(u,s),z&2&&w!==(w=(F[1].move??0)-(F[1].undo??0)+"")&&fe(S,w),z&2&&P!==(P=(F[1].move??0)+(F[1].undo??0)+"")&&fe(R,P),z&2&&T!==(T=(F[1].undo??0)+"")&&fe(L,T)},i:te,o:te,d(F){F&&(E(e),E(n),E(r))}}}function al(t,e,n){let r,i,o,{events:l}=e;return t.$$set=a=>{"events"in a&&n(2,l=a.events)},t.$$.update=()=>{t.$$.dirty&4&&n(1,r=tl(l)),t.$$.dirty&4&&n(0,[i,o]=nl(l),o)},[o,r,l]}class sl extends X{constructor(e){super(),Z(this,e,al,ll,Y,{events:2})}}function Cn(t){let e,n;return e=new mr({props:{title:"Completed",$$slots:{default:[ul]},$$scope:{ctx:t}}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&33&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function ul(t){let e,n,r,i,o;return e=new sl({props:{events:t[0]}}),i=new be({props:{icon:"Shuffle",label:"Shuffle",onClick:t[4]}}),{c(){K(e.$$.fragment),n=M(),r=C("div"),K(i.$$.fragment),b(r,"class","actions svelte-16kom67")},m(l,a){j(e,l,a),D(l,n,a),D(l,r,a),j(i,r,null),o=!0},p(l,a){const s={};a&1&&(s.events=l[0]),e.$set(s)},i(l){o||(y(e.$$.fragment,l),y(i.$$.fragment,l),o=!0)},o(l){k(e.$$.fragment,l),k(i.$$.fragment,l),o=!1},d(l){l&&(E(n),E(r)),U(e,l),U(i)}}}function fl(t){let e,n,r=t[1]&&Cn(t);return{c(){r&&r.c(),e=At()},m(i,o){r&&r.m(i,o),D(i,e,o),n=!0},p(i,[o]){i[1]?r?(r.p(i,o),o&2&&y(r,1)):(r=Cn(i),r.c(),y(r,1),r.m(e.parentNode,e)):r&&(x(),k(r,1,1,()=>{r=null}),ee())},i(i){n||(y(r),n=!0)},o(i){k(r),n=!1},d(i){i&&E(e),r&&r.d(i)}}}function cl(t,e,n){let r,{events:i}=e,{piles:o}=e;const l=ft(),a=()=>l("shuffle");return t.$$set=s=>{"events"in s&&n(0,i=s.events),"piles"in s&&n(3,o=s.piles)},t.$$.update=()=>{t.$$.dirty&8&&n(1,r=dr(o))},[i,r,l,o,a]}class dl extends X{constructor(e){super(),Z(this,e,cl,fl,Y,{events:0,piles:3})}}const ml=(t,e=ie.CardStringType.Long)=>{const n=t.map(i=>i.toString(e)),r=[n.slice(0,-1).join(", "),...n.slice(-1)].filter(i=>i).join(" and ");return r.charAt(0).toUpperCase()+r.slice(1)};function Tn(t){let e,n;return e=new mr({props:{title:"Dead end",$$slots:{default:[gl]},$$scope:{ctx:t}}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&131&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Nn(t){let e;return{c(){e=C("p"),e.textContent="No more possible moves. Undo the last move or start a new game."},m(n,r){D(n,e,r)},d(n){n&&E(e)}}}function On(t){let e,n,r;return{c(){e=C("p"),n=Q(t[0]),r=Q(` can be moved back and forth between two piles. There are no
-        other possible moves. Undo the last move or start a new game.`)},m(i,o){D(i,e,o),_(e,n),_(e,r)},p(i,o){o&1&&fe(n,i[0])},d(i){i&&E(e)}}}function gl(t){let e,n,r,i,o,l,a,s=t[1]==="dead-end"&&Nn(),u=t[1]==="infinite-loop"&&On(t);return i=new be({props:{icon:"Shuffle",label:"Shuffle",onClick:t[5]}}),l=new be({props:{icon:"Undo",label:"Undo",onClick:t[6]}}),{c(){s&&s.c(),e=M(),u&&u.c(),n=M(),r=C("div"),K(i.$$.fragment),o=M(),K(l.$$.fragment),b(r,"class","actions svelte-16kom67")},m(d,c){s&&s.m(d,c),D(d,e,c),u&&u.m(d,c),D(d,n,c),D(d,r,c),j(i,r,null),_(r,o),j(l,r,null),a=!0},p(d,c){d[1]==="dead-end"?s||(s=Nn(),s.c(),s.m(e.parentNode,e)):s&&(s.d(1),s=null),d[1]==="infinite-loop"?u?u.p(d,c):(u=On(d),u.c(),u.m(n.parentNode,n)):u&&(u.d(1),u=null)},i(d){a||(y(i.$$.fragment,d),y(l.$$.fragment,d),a=!0)},o(d){k(i.$$.fragment,d),k(l.$$.fragment,d),a=!1},d(d){d&&(E(e),E(n),E(r)),s&&s.d(d),u&&u.d(d),U(i),U(l)}}}function hl(t){let e,n,r=t[1]&&Tn(t);return{c(){r&&r.c(),e=At()},m(i,o){r&&r.m(i,o),D(i,e,o),n=!0},p(i,[o]){i[1]?r?(r.p(i,o),o&2&&y(r,1)):(r=Tn(i),r.c(),y(r,1),r.m(e.parentNode,e)):r&&(x(),k(r,1,1,()=>{r=null}),ee())},i(i){n||(y(r),n=!0)},o(i){k(r),n=!1},d(i){i&&E(e),r&&r.d(i)}}}function vl(t,e,n){let r,i,o,{piles:l}=e;const a=ft(),s=()=>a("shuffle"),u=()=>a("undo");return t.$$set=d=>{"piles"in d&&n(3,l=d.piles)},t.$$.update=()=>{t.$$.dirty&8&&n(1,[r,i]=xo(l),r,(n(4,i),n(3,l))),t.$$.dirty&16&&n(0,o=ml(i))},[o,r,a,l,i,s,u]}class pl extends X{constructor(e){super(),Z(this,e,vl,hl,Y,{piles:3})}}function bl(t){let e,n,r,i,o,l,a,s,u,d,c;return{c(){e=C("p"),e.textContent=`The goal of the pileon solitaire is to rearrange a deck of cards into piles
+In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function lo(t,e){if(t){if(typeof t=="string")return Nt(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);if(n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set")return Array.from(t);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Nt(t,e)}}function ao(t){if(typeof Symbol<"u"&&t[Symbol.iterator]!=null||t["@@iterator"]!=null)return Array.from(t)}function so(t){if(Array.isArray(t))return Nt(t)}function Nt(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function uo(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function on(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,rr(r.key),r)}}function fo(t,e,n){return e&&on(t.prototype,e),n&&on(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function Ze(t,e,n){return e=rr(e),e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function rr(t){var e=co(t,"string");return ve(e)==="symbol"?e:String(e)}function co(t,e){if(ve(t)!=="object"||t===null)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(ve(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}var ir=function(t){return t[t.High=0]="High",t[t.Pair=5]="Pair",t[t.TwoPairs=10]="TwoPairs",t[t.ThreeOfAKind=15]="ThreeOfAKind",t[t.Straight=20]="Straight",t[t.Flush=25]="Flush",t[t.FullHouse=30]="FullHouse",t[t.FourOfAKind=35]="FourOfAKind",t[t.StraightFlush=40]="StraightFlush",t[t.FiveOfAKind=45]="FiveOfAKind",t}({});Ie.HandRank=ir;var or=function(){function t(e,n,r){uo(this,t),Ze(this,"uuid",void 0),Ze(this,"rank",void 0),Ze(this,"cards",void 0),this.rank=e,this.cards=n,this.uuid=r||(0,io.uuid4)()}return fo(t,[{key:"getCardsString",value:function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:he.Card.StringType.Short;return new he.Cards(this.cards).toString(n)}},{key:"toString",value:function(){var n=this,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:he.Card.StringType.Short,i=he.Card.StringType.LongValue,o=function(s){return n.cards[s].toString(i)},l=this.getCardsString(r);switch(this.rank){case t.Rank.FiveOfAKind:return"Five of a kind, ".concat(o(0),"s (").concat(l,")");case t.Rank.StraightFlush:return"Straigth flush, ".concat(o(0)," high (").concat(l,")");case t.Rank.FourOfAKind:return"Four of a kind, ".concat(o(0),"s (").concat(l,")");case t.Rank.FullHouse:return"Full house, ".concat(o(0),"s over ").concat(o(3),"s (").concat(l,")");case t.Rank.Flush:return"Flush, ".concat(o(0)," high (").concat(l,")");case t.Rank.Straight:return"Straigth, ".concat(o(0)," high (").concat(l,")");case t.Rank.ThreeOfAKind:return"Three of a kind, ".concat(o(0),"s (").concat(l,")");case t.Rank.TwoPairs:return"Two pairs, ".concat(o(0),"s and ").concat(o(2),"s (").concat(l,")");case t.Rank.Pair:return"Pair, ".concat(o(0),"s (").concat(l,")");case t.Rank.High:return"".concat(o(0).replace(/^\w/,function(a){return a.toUpperCase()})," high (").concat(l,")")}throw new Error("Unsupported rank value")}}],[{key:"fromJSON",value:function(n){var r=n.rank,i=n.cards,o=n.uuid;return new t(r,i.map(he.Card.fromJSON),o)}},{key:"solve",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,i,o;return(i=t.isNumOfAKind(5,n))?o=t.Rank.FiveOfAKind:(i=t.isStraightFlush(n,r))?o=t.Rank.StraightFlush:(i=t.isNumOfAKind(4,n))?o=t.Rank.FourOfAKind:(i=t.isFullHouse(n))?o=t.Rank.FullHouse:(i=t.isFlush(n,r))?o=t.Rank.Flush:(i=t.isStraight(n,r))?o=t.Rank.Straight:(i=t.isNumOfAKind(3,n))?o=t.Rank.ThreeOfAKind:(i=t.isTwoPairs(n))?o=t.Rank.TwoPairs:(i=t.isNumOfAKind(2,n))?o=t.Rank.Pair:(i=[],o=t.Rank.High),i=t.fillWithKickers(i,n),new t(o,i)}},{key:"solveHoldEm",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;if(i===0)return t.solve([].concat(_e(n),_e(r)));for(var o=(0,Oe.getCombinations)(n,n.length-i),l=(0,Oe.getCombinations)(r,Math.min(r.length,i)),a=[],s=0;s<o.length;s++)for(var u=0;u<l.length;u++)a.push(t.solve([].concat(_e(o[s]),_e(l[u]))));return t.max.apply(t,a)}},{key:"compare",value:function(n,r){var i;if(n.cards.length!==r.cards.length)throw new Error("Comparing hands with different number of cards");if((i=r.rank-n.rank)!==0)return i;for(var o=0;o<n.cards.length;o++)if((i=he.Card.compare(n.cards[o],r.cards[o]))!==0)return i;return 0}},{key:"winners",value:function(){for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];var o=t.max.apply(t,r);return r.filter(function(l){return!t.compare(l,o)})}},{key:"max",value:function(){for(var n=function(a,s){return t.compare(a,s)<0?a:s},r=arguments.length,i=new Array(r),o=0;o<r;o++)i[o]=arguments[o];return i.reduce(function(l,a){return n(l,a)})}},{key:"fillWithKickers",value:function(n,r){var i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:5;return r=(0,Oe.arraySubtraction)(r,n).sort(he.Card.compare),[].concat(_e(n),_e(r)).slice(0,i)}},{key:"getUniqueValues",value:function(n){return n.map(function(r){return r.value}).filter(Oe.uniqueFilter).sort(function(r,i){return i-r})}},{key:"isNumOfAKind",value:function(n,r){for(var i=t.getUniqueValues(r),o,l=function(d){if(o=r.filter(function(f){return f.value==i[d]}),o.length>=n)return{v:o}},a=0;a<i.length;a++){var s=l(a);if(ve(s)==="object")return s.v}return!1}},{key:"isNumOfAKindCombination",value:function(n,r){for(var i=[],o=0;o<n.length;o++){var l=t.isNumOfAKind(n[o],(0,Oe.arraySubtraction)(r,i));if(l===!1)return!1;l=l,i.push.apply(i,_e(l))}return i}},{key:"isStraightFlush",value:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,i=[],o=function(u){if(i=n.filter(function(f){return f.suit===u}),i.length<r)return"continue";var d=t.isStraight(i,r);if(d)return{v:d}},l=0;l<4;l++){var a=o(l);if(a!=="continue"&&ve(a)==="object")return a.v}return!1}},{key:"isFullHouse",value:function(n){return t.isNumOfAKindCombination([3,2],n)}},{key:"isFlush",value:function(n){for(var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,i=function(s){var u=n.filter(function(d){return d.suit==s});if(u.length>=r)return{v:u.sort(he.Card.compare).slice(0,r)}},o=0;o<4;o++){var l=i(o);if(ve(l)==="object")return l.v}return!1}},{key:"isStraight",value:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:5,i=t.getUniqueValues(n);if(i.length<r)return!1;i.includes(13)&&i.push(0);for(var o=[i[0]],l=1;l<i.length&&o.length<r;l++)(0,Oe.last)(o)-i[l]===1?o.push(i[l]):o=[i[l]];return o.length==r?o.map(function(a){return n.find(function(s){return s.value===(a||13)})}):!1}},{key:"isTwoPairs",value:function(n){return t.isNumOfAKindCombination([2,2],n)}}]),t}();Ie.Hand=or;Ze(or,"Rank",ir);(function(t){Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Card",{enumerable:!0,get:function(){return e.Card}}),Object.defineProperty(t,"CardStringType",{enumerable:!0,get:function(){return e.CardStringType}}),Object.defineProperty(t,"Cards",{enumerable:!0,get:function(){return e.Cards}}),Object.defineProperty(t,"Deck",{enumerable:!0,get:function(){return n.Deck}}),Object.defineProperty(t,"Hand",{enumerable:!0,get:function(){return r.Hand}});var e=ae,n=ct,r=Ie})(ie);const mo=4.5,go=5,ho=3,ln=7,vo=5,lr=t=>{switch(t){case"bridge":return{height:ln,width:mo};case"poker":return{height:ln,width:go};case"small":return{height:vo,width:ho}}},Pt="card-appearance",po={size:"bridge",fourColor:!1},bo=({size:t,colors:e})=>({size:t==="default"?"poker":t,fourColor:e==="four-color"}),ar=t=>{const e=Et(po,n=>(Fe.subscribe(r=>n(t(r))),()=>{}));return kr(Pt,e),e},Ft=()=>Rn(Pt),yo=t=>{const e=Rn(Pt);if(e){const n=br(Fe);e.set(t(n))}},Ot=(t,e,n={})=>r=>{(Array.isArray(t)?t:[t]).includes(r.code)&&e!==void 0&&(n.preventDefault&&r.preventDefault(),e())};function _o(t){let e,n;return{c(){e=Xe("svg"),n=Xe("path"),b(n,"d",t[1]),b(n,"fill","CurrentColor"),b(e,"viewBox","0 0 16 20"),b(e,"class","svelte-1jimf84"),q(e,"flip",t[0])},m(r,i){D(r,e,i),_(e,n)},p(r,[i]){i&2&&b(n,"d",r[1]),i&1&&q(e,"flip",r[0])},i:te,o:te,d(r){r&&$(e)}}}function wo(t,e,n){let r,{suit:i=null}=e,{flip:o=!1}=e;const l=a=>{switch(a){case"hearts":return"M 8 2 C 9 0 11 0 12 0 C 13 0 16 1 16 6 C 16 8 15.5 10 14 12 L 8 20 L 2 12 C 0.5 10 0 8 0 6 C 0 1 3 0 4 0 C 5 0 7 0 8 2";case"spades":return"M 8 0 L 13 5 C 16 8 16 10 16 12 C 16 14 14 16 12 16 C 11 16 9 16 8 14 L 12 20 L 4 20 L 8 14 C 7 16 5 16 4 16 C 2 16 0 14 0 12 C 0 10 0 8 3 5 L 8 0";case"diamonds":return"M 8 0 L 16 10 L 8 20 L 0 10 L 8 0";case"clubs":return"M 8 0 C 10 0 12 2 12 4 C 12 6 11 8 8 10 C 9 8 10 7 12 7 C 14 7 16 9 16 12 C 16 14 14 16 12 16 C 11 16 9 16 8 14 L 12 20 L 4 20 L 8 14 C 7 16 5 16 4 16 C 2 16 0 14 0 12 C 0 9 2 7 4 7 C 6 7 7 8 8 10 C 5 8 4 6 4 4 C 4 2 6 0 8 0";default:return null}};return t.$$set=a=>{"suit"in a&&n(2,i=a.suit),"flip"in a&&n(0,o=a.flip)},t.$$.update=()=>{t.$$.dirty&4&&n(1,r=l(i))},[o,r,i]}class sr extends X{constructor(e){super(),Z(this,e,wo,_o,Y,{suit:2,flip:0})}}function an(t,e,n){const r=t.slice();return r[5]=e[n],r}function sn(t,e,n){const r=t.slice();return r[8]=e[n],r}function un(t){let e,n,r;return n=new sr({props:{suit:t[0],flip:t[8].toLowerCase()==="d"}}),{c(){e=C("span"),K(n.$$.fragment),b(e,"class","svelte-1sm49dl")},m(i,o){D(i,e,o),j(n,e,null),r=!0},p(i,o){const l={};o&1&&(l.suit=i[0]),o&2&&(l.flip=i[8].toLowerCase()==="d"),n.$set(l)},i(i){r||(y(n.$$.fragment,i),r=!0)},o(i){k(n.$$.fragment,i),r=!1},d(i){i&&$(e),U(n)}}}function fn(t){let e,n,r,i,o=le(t[5].split("")),l=[];for(let s=0;s<o.length;s+=1)l[s]=un(sn(t,o,s));const a=s=>k(l[s],1,1,()=>{l[s]=null});return{c(){e=C("div");for(let s=0;s<l.length;s+=1)l[s].c();n=M(),b(e,"class",r="row "+t[3](t[5])+" svelte-1sm49dl")},m(s,u){D(s,e,u);for(let d=0;d<l.length;d+=1)l[d]&&l[d].m(e,null);_(e,n),i=!0},p(s,u){if(u&7){o=le(s[5].split(""));let d;for(d=0;d<o.length;d+=1){const f=sn(s,o,d);l[d]?(l[d].p(f,u),y(l[d],1)):(l[d]=un(f),l[d].c(),y(l[d],1),l[d].m(e,n))}for(x(),d=o.length;d<l.length;d+=1)a(d);ee()}(!i||u&2&&r!==(r="row "+s[3](s[5])+" svelte-1sm49dl"))&&b(e,"class",r)},i(s){if(!i){for(let u=0;u<o.length;u+=1)y(l[u]);i=!0}},o(s){l=l.filter(Boolean);for(let u=0;u<l.length;u+=1)k(l[u]);i=!1},d(s){s&&$(e),Pe(l,s)}}}function So(t){let e,n,r=le(t[2](t[1])),i=[];for(let l=0;l<r.length;l+=1)i[l]=fn(an(t,r,l));const o=l=>k(i[l],1,1,()=>{i[l]=null});return{c(){e=C("div");for(let l=0;l<i.length;l+=1)i[l].c();b(e,"class","center-pattern svelte-1sm49dl")},m(l,a){D(l,e,a);for(let s=0;s<i.length;s+=1)i[s]&&i[s].m(e,null);n=!0},p(l,[a]){if(a&15){r=le(l[2](l[1]));let s;for(s=0;s<r.length;s+=1){const u=an(l,r,s);i[s]?(i[s].p(u,a),y(i[s],1)):(i[s]=fn(u),i[s].c(),y(i[s],1),i[s].m(e,null))}for(x(),s=r.length;s<i.length;s+=1)o(s);ee()}},i(l){if(!n){for(let a=0;a<r.length;a+=1)y(i[a]);n=!0}},o(l){i=i.filter(Boolean);for(let a=0;a<i.length;a+=1)k(i[a]);n=!1},d(l){l&&$(e),Pe(i,l)}}}function ko(t,e,n){let{suit:r}=e,{rank:i}=e;const o={A:["U"],2:["U","D"],3:["U","U","D"],4:["UU","DD"],5:["UU","U","DD"],6:["UU","UU","DD"],7:["UU","u","UU","DD"],8:["UU","UU","DD","DD"],9:["UU","u","UU","DD","DD"],10:["UU","u","UU","DD","d","DD"]},l=s=>o[s]??[],a=s=>s.toUpperCase()===s?"grow":"";return t.$$set=s=>{"suit"in s&&n(0,r=s.suit),"rank"in s&&n(1,i=s.rank)},[r,i,l,a]}class Co extends X{constructor(e){super(),Z(this,e,ko,So,Y,{suit:0,rank:1})}}function To(t){let e,n;const r=t[1].default,i=ot(r,t,t[0],null);return{c(){e=C("span"),i&&i.c(),b(e,"class","screen-reader-only svelte-3uotpv")},m(o,l){D(o,e,l),i&&i.m(e,null),n=!0},p(o,[l]){i&&i.p&&(!n||l&1)&&at(i,r,o,o[0],n?lt(r,o[0],l,null):st(o[0]),null)},i(o){n||(y(i,o),n=!0)},o(o){k(i,o),n=!1},d(o){o&&$(e),i&&i.d(o)}}}function No(t,e,n){let{$$slots:r={},$$scope:i}=e;return t.$$set=o=>{"$$scope"in o&&n(0,i=o.$$scope)},[i,r]}class Oo extends X{constructor(e){super(),Z(this,e,No,To,Y,{})}}function cn(t,e,n){const r=t.slice();return r[16]=e[n],r}function dn(t){let e,n;return e=new Oo({props:{$$slots:{default:[Ao]},$$scope:{ctx:t}}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&524320&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Ao(t){let e;return{c(){e=Q(t[5])},m(n,r){D(n,e,r)},p(n,r){r&32&&fe(e,n[5])},d(n){n&&$(e)}}}function mn(t){let e,n;return e=new Co({props:{suit:t[7],rank:t[8]}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&128&&(o.suit=r[7]),i&256&&(o.rank=r[8]),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function gn(t){let e,n,r,i,o,l,a,s,u,d,f;a=new sr({props:{suit:t[7]}});let c=!t[10]&&mn(t);return{c(){e=C("div"),n=C("div"),r=Q(t[8]),o=M(),l=C("div"),K(a.$$.fragment),s=M(),u=C("div"),c&&c.c(),d=M(),b(n,"class",i="rank rank-"+t[8]+" svelte-hurvu3"),b(l,"class","suit svelte-hurvu3"),b(e,"aria-hidden","true"),b(e,"class",t[16]+" label svelte-hurvu3"),b(u,"class","center svelte-hurvu3"),q(u,"face",t[6])},m(m,g){D(m,e,g),_(e,n),_(n,r),_(e,o),_(e,l),j(a,l,null),D(m,s,g),D(m,u,g),c&&c.m(u,null),_(u,d),f=!0},p(m,g){(!f||g&256)&&fe(r,m[8]),(!f||g&256&&i!==(i="rank rank-"+m[8]+" svelte-hurvu3"))&&b(n,"class",i);const w={};g&128&&(w.suit=m[7]),a.$set(w),m[10]?c&&(x(),k(c,1,1,()=>{c=null}),ee()):c?(c.p(m,g),g&1024&&y(c,1)):(c=mn(m),c.c(),y(c,1),c.m(u,d)),(!f||g&64)&&q(u,"face",m[6])},i(m){f||(y(a.$$.fragment,m),y(c),f=!0)},o(m){k(a.$$.fragment,m),k(c),f=!1},d(m){m&&($(e),$(s),$(u)),U(a),c&&c.d()}}}function Eo(t){let e,n,r,i,o=t[3]&&dn(t),l=le(t[13]),a=[];for(let u=0;u<l.length;u+=1)a[u]=gn(cn(t,l,u));const s=u=>k(a[u],1,1,()=>{a[u]=null});return{c(){e=C("div"),o&&o.c(),n=M();for(let u=0;u<a.length;u+=1)a[u].c();b(e,"class",r="card "+t[7]+" stack-"+t[2]+" svelte-hurvu3"),q(e,"bridge",t[11]),q(e,"small",t[10]),q(e,"fourColor",t[9]),q(e,"empty",t[0]),q(e,"hidden",t[4]),q(e,"shadow",t[1]),q(e,"visible",t[3])},m(u,d){D(u,e,d),o&&o.m(e,null),_(e,n);for(let f=0;f<a.length;f+=1)a[f]&&a[f].m(e,null);i=!0},p(u,[d]){if(u[3]?o?(o.p(u,d),d&8&&y(o,1)):(o=dn(u),o.c(),y(o,1),o.m(e,n)):o&&(x(),k(o,1,1,()=>{o=null}),ee()),d&9664){l=le(u[13]);let f;for(f=0;f<l.length;f+=1){const c=cn(u,l,f);a[f]?(a[f].p(c,d),y(a[f],1)):(a[f]=gn(c),a[f].c(),y(a[f],1),a[f].m(e,null))}for(x(),f=l.length;f<a.length;f+=1)s(f);ee()}(!i||d&132&&r!==(r="card "+u[7]+" stack-"+u[2]+" svelte-hurvu3"))&&b(e,"class",r),(!i||d&2180)&&q(e,"bridge",u[11]),(!i||d&1156)&&q(e,"small",u[10]),(!i||d&644)&&q(e,"fourColor",u[9]),(!i||d&133)&&q(e,"empty",u[0]),(!i||d&148)&&q(e,"hidden",u[4]),(!i||d&134)&&q(e,"shadow",u[1]),(!i||d&140)&&q(e,"visible",u[3])},i(u){if(!i){y(o);for(let d=0;d<l.length;d+=1)y(a[d]);i=!0}},o(u){k(o),a=a.filter(Boolean);for(let d=0;d<a.length;d+=1)k(a[d]);i=!1},d(u){u&&$(e),o&&o.d(),Pe(a,u)}}}function $o(t,e,n){let r,i,o,l,a,s,u,d,f,c;const m=Ft();pe(t,m,v=>n(15,c=v));let{card:g=null}=e,{empty:w=!1}=e,{shadow:S=!1}=e,{stack:N=void 0}=e;const E=["top","bottom"];return t.$$set=v=>{"card"in v&&n(14,g=v.card),"empty"in v&&n(0,w=v.empty),"shadow"in v&&n(1,S=v.shadow),"stack"in v&&n(2,N=v.stack)},t.$$.update=()=>{t.$$.dirty&32768&&n(11,r=c.size==="bridge"),t.$$.dirty&32768&&n(10,i=c.size==="small"),t.$$.dirty&32768&&n(9,o=c.fourColor),t.$$.dirty&16386&&n(4,l=g===null&&!S),t.$$.dirty&19&&n(3,a=!(w||l||S)),t.$$.dirty&16392&&n(8,s=a&&g.toString(ie.Card.StringType.ShortValue).replace("T","10")),t.$$.dirty&16392&&n(7,u=a&&g.toString(ie.Card.StringType.LongSuit)),t.$$.dirty&16392&&n(6,d=a&&g.num%13>9),t.$$.dirty&16392&&n(5,f=a&&g.toString(ie.Card.StringType.Long))},[w,S,N,a,l,f,d,u,s,o,i,r,m,E,g,c]}class mt extends X{constructor(e){super(),Z(this,e,$o,Eo,Y,{card:14,empty:0,shadow:1,stack:2})}}function hn(t,e,n){const r=t.slice();return r[19]=e[n].card,r[20]=e[n].shadow,r[21]=e[n].transform,r}function vn(t){let e,n;return e=new mt({props:{card:t[0],empty:t[0]===void 0}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&1&&(o.card=r[0]),i&1&&(o.empty=r[0]===void 0),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function pn(t){let e,n,r,i;return n=new mt({props:{card:t[19],shadow:t[20]}}),{c(){e=C("div"),K(n.$$.fragment),r=M(),b(e,"class","shadow-container svelte-1ns87h6"),$e(e,"transform",t[21])},m(o,l){D(o,e,l),j(n,e,null),_(e,r),i=!0},p(o,l){const a={};l&8&&(a.card=o[19]),l&8&&(a.shadow=o[20]),n.$set(a),(!i||l&8)&&$e(e,"transform",o[21])},i(o){i||(y(n.$$.fragment,o),i=!0)},o(o){k(n.$$.fragment,o),i=!1},d(o){o&&$(e),U(n)}}}function Do(t){let e,n,r,i,o,l,a=!t[1]&&vn(t),s=le(t[3]),u=[];for(let f=0;f<s.length;f+=1)u[f]=pn(hn(t,s,f));const d=f=>k(u[f],1,1,()=>{u[f]=null});return{c(){e=C("div"),n=C("div"),a&&a.c(),r=M();for(let f=0;f<u.length;f+=1)u[f].c();b(n,"aria-atomic","true"),b(n,"aria-live","polite"),b(e,"aria-label",t[2]),b(e,"aria-disabled",t[1]),b(e,"class","deck svelte-1ns87h6"),b(e,"role","button"),b(e,"tabindex","0"),q(e,"bridge",t[5]),q(e,"small",t[4]),q(e,"shuffling",t[1])},m(f,c){D(f,e,c),_(e,n),a&&a.m(n,null),_(n,r);for(let m=0;m<u.length;m+=1)u[m]&&u[m].m(n,null);i=!0,o||(l=[re(e,"keydown",Ot(["Space","Enter"],t[7],{preventDefault:!0})),re(e,"click",t[7])],o=!0)},p(f,[c]){if(f[1]?a&&(x(),k(a,1,1,()=>{a=null}),ee()):a?(a.p(f,c),c&2&&y(a,1)):(a=vn(f),a.c(),y(a,1),a.m(n,r)),c&8){s=le(f[3]);let m;for(m=0;m<s.length;m+=1){const g=hn(f,s,m);u[m]?(u[m].p(g,c),y(u[m],1)):(u[m]=pn(g),u[m].c(),y(u[m],1),u[m].m(n,null))}for(x(),m=s.length;m<u.length;m+=1)d(m);ee()}(!i||c&4)&&b(e,"aria-label",f[2]),(!i||c&2)&&b(e,"aria-disabled",f[1]),(!i||c&32)&&q(e,"bridge",f[5]),(!i||c&16)&&q(e,"small",f[4]),(!i||c&2)&&q(e,"shuffling",f[1])},i(f){if(!i){y(a);for(let c=0;c<s.length;c+=1)y(u[c]);i=!0}},o(f){k(a),u=u.filter(Boolean);for(let c=0;c<u.length;c+=1)k(u[c]);i=!1},d(f){f&&$(e),a&&a.d(),Pe(u,f),o=!1,ye(l)}}}function Po(t,e,n,r){const i=t/r*e,o=.5*i/(n*52),l=1*i/(n*52);return`translate(${o}em , ${l}em)`}function Fo(t,e,n){let r,i,o,l,a,s;const u=Ft();pe(t,u,P=>n(16,s=P));let{numCards:d=52}=e,{numDecks:f=1}=e,{topCard:c=null}=e,{numShadows:m=10}=e,{shuffleAnimationSteps:g=4}=e,{shuffleAnimationMaxDistanceEm:w=.8}=e,{shuffleAnimationMaxRotateDeg:S=7}=e,{onClick:N=()=>{}}=e,E=0;function v(P,R){const H=h=>[1,R+2].includes(P)?0:(Math.random()*2-1)*h,I=H(w),B=H(w),p=H(S);return`translate(${I}em, ${B}em) rotate(${p}deg)`}function O(){E>0&&setTimeout(()=>{n(15,E-=1),O()},250)}function A(){if(!l)return N()}return t.$$set=P=>{"numCards"in P&&n(8,d=P.numCards),"numDecks"in P&&n(9,f=P.numDecks),"topCard"in P&&n(0,c=P.topCard),"numShadows"in P&&n(10,m=P.numShadows),"shuffleAnimationSteps"in P&&n(11,g=P.shuffleAnimationSteps),"shuffleAnimationMaxDistanceEm"in P&&n(12,w=P.shuffleAnimationMaxDistanceEm),"shuffleAnimationMaxRotateDeg"in P&&n(13,S=P.shuffleAnimationMaxRotateDeg),"onClick"in P&&n(14,N=P.onClick)},t.$$.update=()=>{t.$$.dirty&65536&&n(5,r=(s==null?void 0:s.size)==="bridge"),t.$$.dirty&65536&&n(4,i=(s==null?void 0:s.size)==="small"),t.$$.dirty&2817&&c===null&&d===52*f&&g>0&&(n(15,E=g+2),O()),t.$$.dirty&32768&&n(1,l=E>0),t.$$.dirty&36611&&n(3,o=c===void 0?[]:l?[...Array(m)].map(()=>({card:null,shadow:!1,transform:v(E,g)})):[...Array(m)].map((P,R)=>({card:void 0,shadow:!0,transform:Po(R,d,f,m)}))),t.$$.dirty&1&&n(2,a=c===void 0?"Shuffle the deck":"Draw a card")},[c,l,a,o,i,r,u,A,d,f,m,g,w,S,N,E,s]}class Mo extends X{constructor(e){super(),Z(this,e,Fo,Do,Y,{numCards:8,numDecks:9,topCard:0,numShadows:10,shuffleAnimationSteps:11,shuffleAnimationMaxDistanceEm:12,shuffleAnimationMaxRotateDeg:13,onClick:14})}}function Lo(t){let e,n,r;return n=new Mo({props:{onClick:t[2],topCard:t[1],numCards:t[0]}}),{c(){e=C("main"),K(n.$$.fragment),b(e,"class","svelte-1tag1lj")},m(i,o){D(i,e,o),j(n,e,null),r=!0},p(i,[o]){const l={};o&2&&(l.topCard=i[1]),o&1&&(l.numCards=i[0]),n.$set(l)},i(i){r||(y(n.$$.fragment,i),r=!0)},o(i){k(n.$$.fragment,i),r=!1},d(i){i&&$(e),U(n)}}}function Io(t,e,n){ar(bo);let r=new ie.Deck,i=r.cardsRemaining,o=null;function l(){o!==void 0?n(1,o=r.pop()):(r=new ie.Deck,n(1,o=null)),n(0,i=r.cardsRemaining)}const a=s=>{s.stopPropagation(),r=new ie.Deck,n(1,o=null),n(0,i=r.cardsRemaining)};return ut(()=>{Me.update(s=>({...s,shuffle:a}))}),In(()=>{Me.update(s=>({...s,shuffle:void 0}))}),[i,o,l]}class Ro extends X{constructor(e){super(),Z(this,e,Io,Lo,Y,{})}}const it=(t,e)=>lr(e).width+(t-1)*1.125,jo=(t,e,n)=>t.length===0?"empty":e?`closed${n==="rank"?`, ${t[0].toString(ie.CardStringType.LongValue)}s`:""}`:t.toString(ie.CardStringType.Long),Uo=(t,e,n,r,i=!1)=>{const o=jo(new ie.Cards(e),r,i),l=n>0?` ${n} cards selected: ${new ie.Cards(e.slice(e.length-n)).toString(ie.CardStringType.Long)}`:"";return`${t}: ${o}.${l}`},Ko=(t,e,n)=>{const r={sourceStack:e,cards:n};t.dataTransfer.setData("application/json",JSON.stringify(r)),t.dataTransfer.effectAllowed="move"},zo=t=>{const{sourceStack:e,cards:n}=JSON.parse(t.dataTransfer.getData("application/json"));return{sourceStack:e,cards:n.map(ie.Card.fromJSON)}};function Bo(t){let e,n;return e=new mt({props:{card:t[11]?null:t[0][0],stack:"left"}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&2049&&(o.card=r[11]?null:r[0][0]),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Vo(t){let e,n;return e=new mt({props:{empty:!0}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p:te,i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function bn(t){let e,n,r;return n=new ur({props:{cards:t[0].slice(1),capacity:t[1]-1,nested:!0,closed:t[2],index:t[3],isDraggableFn:t[4],selectedCardsN:t[5]}}),{c(){e=C("div"),K(n.$$.fragment),b(e,"class","nested svelte-o50ay1")},m(i,o){D(i,e,o),j(n,e,null),r=!0},p(i,o){const l={};o&1&&(l.cards=i[0].slice(1)),o&2&&(l.capacity=i[1]-1),o&4&&(l.closed=i[2]),o&8&&(l.index=i[3]),o&16&&(l.isDraggableFn=i[4]),o&32&&(l.selectedCardsN=i[5]),n.$set(l)},i(i){r||(y(n.$$.fragment,i),r=!0)},o(i){k(n.$$.fragment,i),r=!1},d(i){i&&$(e),U(n)}}}function qo(t){let e,n,r,i,o,l,a,s,u,d;const f=[Vo,Bo],c=[];function m(w,S){return w[0].length===0?0:1}r=m(t),i=c[r]=f[r](t);let g=t[0].length>1&&bn(t);return{c(){e=C("div"),n=C("div"),i.c(),o=M(),g&&g.c(),b(n,"aria-hidden",l=t[6]?void 0:"true"),b(e,"aria-label",t[7]),b(e,"class","stack svelte-o50ay1"),b(e,"style",t[14]),b(e,"draggable",t[13]),b(e,"role","button"),b(e,"tabindex",a=t[6]?void 0:0),q(e,"selected",t[12])},m(w,S){D(w,e,S),_(e,n),c[r].m(n,null),_(n,o),g&&g.m(n,null),s=!0,u||(d=[re(e,"dblclick",t[19]),re(e,"dragstart",function(){de(t[10])&&t[10].apply(this,arguments)}),re(e,"dragover",function(){de(t[9])&&t[9].apply(this,arguments)}),re(e,"drop",t[20]),re(e,"click",function(){de(t[8])&&t[8].apply(this,arguments)}),re(e,"keydown",function(){de(Ot(["Enter","Space"],t[8],{preventDefault:!0}))&&Ot(["Enter","Space"],t[8],{preventDefault:!0}).apply(this,arguments)})],u=!0)},p(w,[S]){t=w;let N=r;r=m(t),r===N?c[r].p(t,S):(x(),k(c[N],1,1,()=>{c[N]=null}),ee(),i=c[r],i?i.p(t,S):(i=c[r]=f[r](t),i.c()),y(i,1),i.m(n,o)),t[0].length>1?g?(g.p(t,S),S&1&&y(g,1)):(g=bn(t),g.c(),y(g,1),g.m(n,null)):g&&(x(),k(g,1,1,()=>{g=null}),ee()),(!s||S&64&&l!==(l=t[6]?void 0:"true"))&&b(n,"aria-hidden",l),(!s||S&128)&&b(e,"aria-label",t[7]),(!s||S&16384)&&b(e,"style",t[14]),(!s||S&8192)&&b(e,"draggable",t[13]),(!s||S&64&&a!==(a=t[6]?void 0:0))&&b(e,"tabindex",a),(!s||S&4096)&&q(e,"selected",t[12])},i(w){s||(y(i),y(g),s=!0)},o(w){k(i),k(g),s=!1},d(w){w&&$(e),c[r].d(),g&&g.d(),u=!1,ye(d)}}}function Ho(t,e,n){let r,i,o,l,a,s,u,d,f,c;const m=Ft();pe(t,m,I=>n(18,c=I));let{cards:g=[]}=e,{capacity:w=4}=e,{closed:S=!1}=e,{index:N=0}=e,{isDraggableFn:E=()=>!1}=e,{selectedCardsN:v=0}=e,{labelOptions:O={title:"Stack"}}=e,{nested:A=!1}=e;const P=ft();function R(I){yt.call(this,t,I)}function H(I){yt.call(this,t,I)}return t.$$set=I=>{"cards"in I&&n(0,g=I.cards),"capacity"in I&&n(1,w=I.capacity),"closed"in I&&n(2,S=I.closed),"index"in I&&n(3,N=I.index),"isDraggableFn"in I&&n(4,E=I.isDraggableFn),"selectedCardsN"in I&&n(5,v=I.selectedCardsN),"labelOptions"in I&&n(16,O=I.labelOptions),"nested"in I&&n(6,A=I.nested)},t.$$.update=()=>{t.$$.dirty&262144&&n(17,r=c.size),t.$$.dirty&131074&&n(14,i=`width: ${it(w,r)}em`),t.$$.dirty&21&&n(13,o=!S&&E(g)),t.$$.dirty&33&&n(12,l=v>0&&v===g.length),t.$$.dirty&5&&n(11,a=S&&g.length===1),t.$$.dirty&9&&n(10,s=I=>{I.stopPropagation(),Ko(I,N,g)}),t.$$.dirty&72&&n(8,d=()=>{A||P("select",{index:N})}),t.$$.dirty&65637&&n(7,f=A?void 0:Uo(O.title,g,v,S,O.closed))},n(9,u=I=>{I.preventDefault()}),[g,w,S,N,E,v,A,f,d,u,s,a,l,o,i,m,O,r,c,R,H]}class ur extends X{constructor(e){super(),Z(this,e,Ho,qo,Y,{cards:0,capacity:1,closed:2,index:3,isDraggableFn:4,selectedCardsN:5,labelOptions:16,nested:6})}}const Wo=(t,e)=>{const n=t/e;return n<3/4?[3,5]:n<4/3?[4,4]:[5,3]},yn=(t,e)=>({length:t*e-15}),fr=(t,e,n)=>{const r=it(4,t)*e+(e-1),i=lr(t).height*n+(n-1);return[r,i]},Jo=(t,e,n)=>{const r=Math.min(e,n*2.3333333333333335),[i,o]=Wo(r,n),[l,a]=fr(t,i,o),s=r*.95/l,u=n*.95/a;return{fontSize:Math.max(Math.min(s,u),10),columns:i,rows:o,tableWidthEm:l,tableHeightEm:a}},_n=()=>{const t=new ie.Deck;return[...Array(13)].map(()=>t.popN(4)).concat([[],[]])},Mt=t=>{const[e,...n]=t;return n.every(r=>r.value===e.value)},Go=t=>t.length===0?!1:t.length===1?!0:Mt(t),Lt=(t,e)=>t.length+e.length>4?!1:e.length===0||e[e.length-1].value===t[0].value,It=(t,e,n,r)=>{const i=t.map(o=>[...o]);if(!Lt(r,i[n]))throw new Error(`Can not move cards ${r.map(o=>o.toString(er.ShortEmoji))} from pile ${e} to pile ${n}`);return i[e]=i[e].slice(0,i[e].length-r.length),i[n]=[...i[n],...r],i},Rt=t=>t.length===1||Mt(t)?t:Rt(t.slice(1)),Qo=(t,e)=>{if(t[e].length===0)throw new Error("Cannot move cards from an empty pile.");if(jt(t[e]))throw new Error("Cannot move cards from a completed pile.");const n=Rt(t[e]),r=t.reduce((l,a,s)=>s!==e&&Lt(n,a)?[...l,s]:l,[]);if(r.length===0)throw new Error(`Cannot move cards from pile ${e} to any other pile`);const i=r.filter(l=>t[l].length>0),o=i.length>0?i[0]:r[0];return It(t,e,o,n)},Yo=(t,e)=>{const n=t[e].slice(-1);return n.length===0?[[],n]:[t.reduce((i,o,l)=>l!==e&&Lt(n,o)?[...i,l]:i,[]),n]},cr=t=>t.reduce((e,n,r)=>{const[i,o]=Yo(t,r);return i.length===0?e:[...e,[r,i,o]]},[]),Zo=(t,e)=>{if(t[0]!==e[0]||t[1].length!==e[1].length)return!1;for(let n=0;n<t[1].length;n++)if(t[1][n]!==e[1][n])return!1;return new kt(t[2]).toString()===new kt(e[2]).toString()},Xo=t=>(e,n,r)=>{var c;const[i,o,l]=e,a=[...l];if(o.length>1)return[!1,[]];const s=o[0],u=It(t,i,s,l),d=cr(u),f=r.filter(([m])=>m!==s).map(m=>m[0]===i?[s,[i],l]:m).sort((m,g)=>m[0]-g[0]);if(d.length-f.length===1){const m=u[i].slice(-2);if(((c=u[s][0])==null?void 0:c.value)!==l[0].value&&m.length===2&&m.every(g=>g.value===l[0].value))f.push([i,o,[m[1]]]),f.sort((g,w)=>g[0]-w[0]),a.push(m[1]);else return[!1,[]]}return d.length!==f.length?[!1,[]]:[f.every((m,g)=>Zo(m,d[g])),a]},xo=t=>{const e=cr(t);if(e.length===0)return["dead-end",[]];const n=e.map(Xo(t));return n.every(([r])=>r)&&n.length>0?["infinite-loop",n.reduce((i,o)=>[...i,...o[1]],[])]:[!1,[]]},jt=t=>t.length===4&&Mt(t),dr=t=>t.every(e=>jt(e)||e.length===0),el=t=>t.reduce((e,n,r)=>jt(n)?[...e,r]:e,[]),Ae=t=>({type:t,timestamp:Date.now()}),tl=t=>{const e={};return t.forEach(({type:n})=>e[n]=(e[n]??0)+1),e},wn=t=>t.reduce((e,n)=>e+n,0),nl=t=>{const e=t.filter(i=>i.type==="start").map(i=>i.timestamp),n=t.filter(i=>i.type==="stop").map(i=>i.timestamp);if(e.length===0)return[null,null];const r=(n[n.length-1]??Date.now())-e[0];return e.length!==n.length?[null,r]:[wn(n)-wn(e),r]},Ge=(t,e)=>t>0?`${t} ${e}`:"",Sn=t=>{if(t<1e3)return Ge(t,"ms");const e=Math.floor(t/36e5),n=Math.floor(t/6e4-e*60),r=Math.floor(t/1e3-n*60-e*3600);return[Ge(e,"h"),Ge(n,"min"),Ge(r,"s")].join(" ").trim()};function kn(t){let e,n;return e=new $t({props:{title:t[0],position:t[1],closeIcon:"Minimize",$$slots:{default:[rl]},$$scope:{ctx:t}}}),e.$on("close",t[4]),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&1&&(o.title=r[0]),i&2&&(o.position=r[1]),i&128&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function rl(t){let e;const n=t[6].default,r=ot(n,t,t[7],null);return{c(){r&&r.c()},m(i,o){r&&r.m(i,o),e=!0},p(i,o){r&&r.p&&(!e||o&128)&&at(r,n,i,i[7],e?lt(n,i[7],o,null):st(i[7]),null)},i(i){e||(y(r,i),e=!0)},o(i){k(r,i),e=!1},d(i){r&&r.d(i)}}}function il(t){let e,n,r,i,o,l,a,s,u,d,f=t[2]&&kn(t);return r=new Jn({props:{icon:"OpenModal"}}),{c(){f&&f.c(),e=M(),n=C("button"),K(r.$$.fragment),i=M(),o=C("span"),l=Q(t[0]),b(o,"class","title"),b(n,"class",a="minimized-modal "+(t[3]?"open":"")+" svelte-x2lax1")},m(c,m){f&&f.m(c,m),D(c,e,m),D(c,n,m),j(r,n,null),_(n,i),_(n,o),_(o,l),s=!0,u||(d=re(n,"click",t[5]),u=!0)},p(c,[m]){c[2]?f?(f.p(c,m),m&4&&y(f,1)):(f=kn(c),f.c(),y(f,1),f.m(e.parentNode,e)):f&&(x(),k(f,1,1,()=>{f=null}),ee()),(!s||m&1)&&fe(l,c[0]),(!s||m&8&&a!==(a="minimized-modal "+(c[3]?"open":"")+" svelte-x2lax1"))&&b(n,"class",a)},i(c){s||(y(f),y(r.$$.fragment,c),s=!0)},o(c){k(f),k(r.$$.fragment,c),s=!1},d(c){c&&($(e),$(n)),f&&f.d(c),U(r),u=!1,d()}}}function ol(t,e,n){let{$$slots:r={},$$scope:i}=e,{title:o}=e,{position:l="center"}=e,a=!0,s=!1;const u=()=>{n(2,a=!1),setTimeout(()=>n(3,s=!0),25)},d=()=>{n(3,s=!1),setTimeout(()=>n(2,a=!0),100)};return t.$$set=f=>{"title"in f&&n(0,o=f.title),"position"in f&&n(1,l=f.position),"$$scope"in f&&n(7,i=f.$$scope)},[o,l,a,s,u,d,r,i]}class mr extends X{constructor(e){super(),Z(this,e,ol,il,Y,{title:0,position:1})}}function ll(t){let e,n,r,i,o,l,a,s=Sn(t[0])+"",u,d,f,c,m,g,w=(t[1].move??0)-(t[1].undo??0)+"",S,N,E,v,O,A,P=(t[1].move??0)+(t[1].undo??0)+"",R,H,I,B,p,h,T=(t[1].undo??0)+"",L;return{c(){e=C("p"),e.innerHTML=`Here are statistics about the completed game. Undo and undone moves are
+  excluded from <i>Significant moves</i> but included in <i>Total moves</i>.`,n=M(),r=C("table"),i=C("tr"),o=C("th"),o.textContent="Elapsed time:",l=M(),a=C("td"),u=Q(s),d=M(),f=C("tr"),c=C("th"),c.textContent="Significant moves:",m=M(),g=C("td"),S=Q(w),N=M(),E=C("tr"),v=C("th"),v.textContent="Total moves:",O=M(),A=C("td"),R=Q(P),H=M(),I=C("tr"),B=C("th"),B.textContent="Undone moves:",p=M(),h=C("td"),L=Q(T),b(o,"class","svelte-5tdcck"),b(a,"class","svelte-5tdcck"),b(c,"class","svelte-5tdcck"),b(g,"class","svelte-5tdcck"),b(v,"class","svelte-5tdcck"),b(A,"class","svelte-5tdcck"),b(B,"class","svelte-5tdcck"),b(h,"class","svelte-5tdcck"),b(r,"class","svelte-5tdcck")},m(F,z){D(F,e,z),D(F,n,z),D(F,r,z),_(r,i),_(i,o),_(i,l),_(i,a),_(a,u),_(r,d),_(r,f),_(f,c),_(f,m),_(f,g),_(g,S),_(r,N),_(r,E),_(E,v),_(E,O),_(E,A),_(A,R),_(r,H),_(r,I),_(I,B),_(I,p),_(I,h),_(h,L)},p(F,[z]){z&1&&s!==(s=Sn(F[0])+"")&&fe(u,s),z&2&&w!==(w=(F[1].move??0)-(F[1].undo??0)+"")&&fe(S,w),z&2&&P!==(P=(F[1].move??0)+(F[1].undo??0)+"")&&fe(R,P),z&2&&T!==(T=(F[1].undo??0)+"")&&fe(L,T)},i:te,o:te,d(F){F&&($(e),$(n),$(r))}}}function al(t,e,n){let r,i,o,{events:l}=e;return t.$$set=a=>{"events"in a&&n(2,l=a.events)},t.$$.update=()=>{t.$$.dirty&4&&n(1,r=tl(l)),t.$$.dirty&4&&n(0,[i,o]=nl(l),o)},[o,r,l]}class sl extends X{constructor(e){super(),Z(this,e,al,ll,Y,{events:2})}}function Cn(t){let e,n;return e=new mr({props:{title:"Completed",$$slots:{default:[ul]},$$scope:{ctx:t}}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&33&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function ul(t){let e,n,r,i,o;return e=new sl({props:{events:t[0]}}),i=new be({props:{icon:"Shuffle",label:"Shuffle",onClick:t[4]}}),{c(){K(e.$$.fragment),n=M(),r=C("div"),K(i.$$.fragment),b(r,"class","actions svelte-16kom67")},m(l,a){j(e,l,a),D(l,n,a),D(l,r,a),j(i,r,null),o=!0},p(l,a){const s={};a&1&&(s.events=l[0]),e.$set(s)},i(l){o||(y(e.$$.fragment,l),y(i.$$.fragment,l),o=!0)},o(l){k(e.$$.fragment,l),k(i.$$.fragment,l),o=!1},d(l){l&&($(n),$(r)),U(e,l),U(i)}}}function fl(t){let e,n,r=t[1]&&Cn(t);return{c(){r&&r.c(),e=At()},m(i,o){r&&r.m(i,o),D(i,e,o),n=!0},p(i,[o]){i[1]?r?(r.p(i,o),o&2&&y(r,1)):(r=Cn(i),r.c(),y(r,1),r.m(e.parentNode,e)):r&&(x(),k(r,1,1,()=>{r=null}),ee())},i(i){n||(y(r),n=!0)},o(i){k(r),n=!1},d(i){i&&$(e),r&&r.d(i)}}}function cl(t,e,n){let r,{events:i}=e,{piles:o}=e;const l=ft(),a=()=>l("shuffle");return t.$$set=s=>{"events"in s&&n(0,i=s.events),"piles"in s&&n(3,o=s.piles)},t.$$.update=()=>{t.$$.dirty&8&&n(1,r=dr(o))},[i,r,l,o,a]}class dl extends X{constructor(e){super(),Z(this,e,cl,fl,Y,{events:0,piles:3})}}const ml=(t,e=ie.CardStringType.Long)=>{const n=t.map(i=>i.toString(e)),r=[n.slice(0,-1).join(", "),...n.slice(-1)].filter(i=>i).join(" and ");return r.charAt(0).toUpperCase()+r.slice(1)};function Tn(t){let e,n;return e=new mr({props:{title:"Dead end",$$slots:{default:[gl]},$$scope:{ctx:t}}}),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,i){const o={};i&131&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Nn(t){let e;return{c(){e=C("p"),e.textContent="No more possible moves. Undo the last move or start a new game."},m(n,r){D(n,e,r)},d(n){n&&$(e)}}}function On(t){let e,n,r;return{c(){e=C("p"),n=Q(t[0]),r=Q(` can be moved back and forth between two piles. There are no
+        other possible moves. Undo the last move or start a new game.`)},m(i,o){D(i,e,o),_(e,n),_(e,r)},p(i,o){o&1&&fe(n,i[0])},d(i){i&&$(e)}}}function gl(t){let e,n,r,i,o,l,a,s=t[1]==="dead-end"&&Nn(),u=t[1]==="infinite-loop"&&On(t);return i=new be({props:{icon:"Shuffle",label:"Shuffle",onClick:t[5]}}),l=new be({props:{icon:"Undo",label:"Undo",onClick:t[6]}}),{c(){s&&s.c(),e=M(),u&&u.c(),n=M(),r=C("div"),K(i.$$.fragment),o=M(),K(l.$$.fragment),b(r,"class","actions svelte-16kom67")},m(d,f){s&&s.m(d,f),D(d,e,f),u&&u.m(d,f),D(d,n,f),D(d,r,f),j(i,r,null),_(r,o),j(l,r,null),a=!0},p(d,f){d[1]==="dead-end"?s||(s=Nn(),s.c(),s.m(e.parentNode,e)):s&&(s.d(1),s=null),d[1]==="infinite-loop"?u?u.p(d,f):(u=On(d),u.c(),u.m(n.parentNode,n)):u&&(u.d(1),u=null)},i(d){a||(y(i.$$.fragment,d),y(l.$$.fragment,d),a=!0)},o(d){k(i.$$.fragment,d),k(l.$$.fragment,d),a=!1},d(d){d&&($(e),$(n),$(r)),s&&s.d(d),u&&u.d(d),U(i),U(l)}}}function hl(t){let e,n,r=t[1]&&Tn(t);return{c(){r&&r.c(),e=At()},m(i,o){r&&r.m(i,o),D(i,e,o),n=!0},p(i,[o]){i[1]?r?(r.p(i,o),o&2&&y(r,1)):(r=Tn(i),r.c(),y(r,1),r.m(e.parentNode,e)):r&&(x(),k(r,1,1,()=>{r=null}),ee())},i(i){n||(y(r),n=!0)},o(i){k(r),n=!1},d(i){i&&$(e),r&&r.d(i)}}}function vl(t,e,n){let r,i,o,{piles:l}=e;const a=ft(),s=()=>a("shuffle"),u=()=>a("undo");return t.$$set=d=>{"piles"in d&&n(3,l=d.piles)},t.$$.update=()=>{t.$$.dirty&8&&n(1,[r,i]=xo(l),r,(n(4,i),n(3,l))),t.$$.dirty&16&&n(0,o=ml(i))},[o,r,a,l,i,s,u]}class pl extends X{constructor(e){super(),Z(this,e,vl,hl,Y,{piles:3})}}function bl(t){let e,n,r,i,o,l,a,s,u,d,f;return{c(){e=C("p"),e.textContent=`The goal of the pileon solitaire is to rearrange a deck of cards into piles
     of equal ranks from thirteen random piles of four using fifteen piles.`,n=M(),r=C("h3"),r.textContent="Rules",i=M(),o=C("ul"),o.innerHTML=`<li>Each pile can contain up to four cards.</li> <li>Cards can be moved from top of the pile into a pile where the top card is
       of the same rank as the card that is moved.</li> <li>Cards of any rank can be moved into an empty pile.</li> <li>Multiple cards with the same rank can be moved at once.</li> <li>Pile is complete when it contains all four cards with the same rank.</li>`,l=M(),a=C("h3"),a.textContent="Moving cards",s=M(),u=C("ol"),u.innerHTML=`<li>Select the source pile by clicking a pile. Cards to be moved are
       highlighted. Click the source pile again to reduce the amount of selected
       cards.</li> <li>Move cards by clicking the target pile. If the move is valid, the cards
-      are moved from the source pile into the target pile.</li>`,d=M(),c=C("p"),c.textContent=`If your device supports drag-and-drop, you can also drag the cards you want
+      are moved from the source pile into the target pile.</li>`,d=M(),f=C("p"),f.textContent=`If your device supports drag-and-drop, you can also drag the cards you want
     to move from the source pile into the target pile. Double-clicking the
     source pile automatically moves cards from the pile to an available target
-    pile.`},m(f,m){D(f,e,m),D(f,n,m),D(f,r,m),D(f,i,m),D(f,o,m),D(f,l,m),D(f,a,m),D(f,s,m),D(f,u,m),D(f,d,m),D(f,c,m)},p:te,d(f){f&&(E(e),E(n),E(r),E(i),E(o),E(l),E(a),E(s),E(u),E(d),E(c))}}}function yl(t){let e,n;return e=new Et({props:{title:"How to play?",$$slots:{default:[bl]},$$scope:{ctx:t}}}),e.$on("close",t[0]),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,[i]){const o={};i&2&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function _l(t){function e(n){yt.call(this,t,n)}return[e]}class wl extends X{constructor(e){super(),Z(this,e,_l,yl,Y,{})}}function An(t,e,n){const r=t.slice();return r[22]=e[n],r}function $n(t,e,n){const r=t.slice();return r[27]=e[n],r[29]=n,r}function En(t){let e,n,r;return n=new ur({props:{cards:t[27],closed:t[10].includes(t[29]),selectedCardsN:t[9]===t[29]?t[8].length:0,labelOptions:{title:`Stack ${t[29]+1}`,closed:"rank"},index:t[29],isDraggableFn:Go}}),n.$on("drop",t[15](t[29])),n.$on("dblclick",t[16](t[29])),n.$on("select",t[14]),{c(){e=C("div"),K(n.$$.fragment),b(e,"class","pile svelte-3hj6i4")},m(i,o){D(i,e,o),j(n,e,null),r=!0},p(i,o){const l={};o&16&&(l.cards=i[27]),o&1024&&(l.closed=i[10].includes(i[29])),o&768&&(l.selectedCardsN=i[9]===i[29]?i[8].length:0),n.$set(l)},i(i){r||(y(n.$$.fragment,i),r=!0)},o(i){k(n.$$.fragment,i),r=!1},d(i){i&&E(e),U(n)}}}function Dn(t){let e,n;return{c(){e=C("div"),b(e,"class","pile svelte-3hj6i4"),b(e,"style",n=`min-width: ${it(4,t[3])}em`)},m(r,i){D(r,e,i)},p(r,i){i&8&&n!==(n=`min-width: ${it(4,r[3])}em`)&&b(e,"style",n)},d(r){r&&E(e)}}}function Pn(t){let e,n;return e=new wl({}),e.$on("close",t[21]),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p:te,i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Sl(t){let e,n,r,i,o=`${t[7].fontSize}px`,l=`${t[6]*1.25}em`,a,s,u,d,c,f,m=le(t[4]),g=[];for(let v=0;v<m.length;v+=1)g[v]=En($n(t,m,v));const w=v=>k(g[v],1,1,()=>{g[v]=null});let S=le(yn(t[7].columns,t[7].rows)),N=[];for(let v=0;v<S.length;v+=1)N[v]=Dn(An(t,S,v));let $=t[5]&&Pn(t);return u=new dl({props:{events:t[2],piles:t[4]}}),u.$on("shuffle",t[12]),c=new pl({props:{piles:t[4]}}),c.$on("shuffle",t[12]),c.$on("undo",t[13]),{c(){e=C("main");for(let v=0;v<g.length;v+=1)g[v].c();n=M();for(let v=0;v<N.length;v+=1)N[v].c();a=M(),$&&$.c(),s=M(),K(u.$$.fragment),d=M(),K(c.$$.fragment),b(e,"class",r="pileon deal-"+t[7].columns+"x"+t[7].rows+" svelte-3hj6i4"),xe(()=>t[20].call(e)),Ee(e,"font-size",o),Ee(e,"max-width",l)},m(v,O){D(v,e,O);for(let A=0;A<g.length;A+=1)g[A]&&g[A].m(e,null);_(e,n);for(let A=0;A<N.length;A+=1)N[A]&&N[A].m(e,null);i=wr(e,t[20].bind(e)),D(v,a,O),$&&$.m(v,O),D(v,s,O),j(u,v,O),D(v,d,O),j(c,v,O),f=!0},p(v,[O]){if(O&116496){m=le(v[4]);let R;for(R=0;R<m.length;R+=1){const H=$n(v,m,R);g[R]?(g[R].p(H,O),y(g[R],1)):(g[R]=En(H),g[R].c(),y(g[R],1),g[R].m(e,n))}for(x(),R=m.length;R<g.length;R+=1)w(R);ee()}if(O&136){S=le(yn(v[7].columns,v[7].rows));let R;for(R=0;R<S.length;R+=1){const H=An(v,S,R);N[R]?N[R].p(H,O):(N[R]=Dn(H),N[R].c(),N[R].m(e,null))}for(;R<N.length;R+=1)N[R].d(1);N.length=S.length}(!f||O&128&&r!==(r="pileon deal-"+v[7].columns+"x"+v[7].rows+" svelte-3hj6i4"))&&b(e,"class",r),O&128&&o!==(o=`${v[7].fontSize}px`)&&Ee(e,"font-size",o),O&64&&l!==(l=`${v[6]*1.25}em`)&&Ee(e,"max-width",l),v[5]?$?($.p(v,O),O&32&&y($,1)):($=Pn(v),$.c(),y($,1),$.m(s.parentNode,s)):$&&(x(),k($,1,1,()=>{$=null}),ee());const A={};O&4&&(A.events=v[2]),O&16&&(A.piles=v[4]),u.$set(A);const P={};O&16&&(P.piles=v[4]),c.$set(P)},i(v){if(!f){for(let O=0;O<m.length;O+=1)y(g[O]);y($),y(u.$$.fragment,v),y(c.$$.fragment,v),f=!0}},o(v){g=g.filter(Boolean);for(let O=0;O<g.length;O+=1)k(g[O]);k($),k(u.$$.fragment,v),k(c.$$.fragment,v),f=!1},d(v){v&&(E(e),E(a),E(s),E(d)),Pe(g,v),Pe(N,v),i(),$&&$.d(v),U(u,v),U(c,v)}}}function kl(t,e,n){let r,i,o,l,a,s,u,d,c,f,m,g=ar(h=>({size:h.size==="default"?"bridge":h.size,fourColor:h.colors==="four-color"}));pe(t,g,h=>n(19,c=h));let w=[_n()],S=[Ae("start")],N=!1;const $=h=>{h.stopPropagation(),n(5,N=!0)},v=h=>{h.stopPropagation(),n(18,A=[void 0,[]]),n(17,w=[_n()]),n(2,S=[Ae("start")])},O=h=>{h.stopPropagation(),w.length>1&&(n(18,A=[void 0,[]]),n(17,w=w.slice(0,w.length-1)),n(2,S=[...S,Ae("undo")]))};let A=[void 0,[]];const P=(h,T,L)=>{try{n(18,A=[void 0,[]]);const F=It(w[w.length-1],h,T,L);n(17,w=[...w,F]),n(2,S=[...S,Ae("move")])}catch{}},R=h=>{const[T,L]=A,F=h.detail.index;i.includes(F)||(T===void 0||L.length===0?n(18,A=[F,Rt(r[F])]):T===F?n(18,A=[F,L.slice(1)]):T!==F&&(P(T,F,L),n(18,A=[void 0,[]])))},H=h=>T=>{T.preventDefault();const{sourceStack:L,cards:F}=zo(T);L!==h&&P(L,h,F)},I=h=>T=>{T.preventDefault();try{n(18,A=[void 0,[]]);const L=Qo(w[w.length-1],h);n(17,w=[...w,L]),n(2,S=[...S,Ae("move")])}catch{}};ut(()=>{Me.update(h=>({...h,help:$,shuffle:v,undo:O}))}),In(()=>{Me.update(h=>({...h,help:void 0,shuffle:void 0,undo:void 0}))});function B(){m=this.clientHeight,f=this.clientWidth,n(1,m),n(0,f)}const p=()=>{n(5,N=!1)};return t.$$.update=()=>{if(t.$$.dirty&3){const h=f<800||m<400?"small":"bridge";yo(T=>({size:T.size==="default"?h:T.size,fourColor:T.colors==="four-color"}))}t.$$.dirty&131072&&n(4,r=w[w.length-1]),t.$$.dirty&16&&n(10,i=el(r)),t.$$.dirty&20&&dr(r)&&S.push(Ae("stop")),t.$$.dirty&262144&&n(9,o=A[0]),t.$$.dirty&262144&&n(8,l=A[1]),t.$$.dirty&524288&&n(3,a=c.size),t.$$.dirty&11&&n(7,s=Jo(a,f,m)),t.$$.dirty&8&&n(6,[u,d]=fr(a,5,3),u)},[f,m,S,a,r,N,u,s,l,o,i,g,v,O,R,H,I,w,A,c,B,p]}class Cl extends X{constructor(e){super(),Z(this,e,kl,Sl,Y,{})}}function Tl(t){let e,n,r,i,o,l,a,s,u;e=new ki({});var d=t[0];function c(f,m){return{}}return d&&(r=zt(d,c())),l=new Fr({}),{c(){K(e.$$.fragment),n=M(),r&&K(r.$$.fragment),i=M(),o=M(),K(l.$$.fragment)},m(f,m){j(e,f,m),D(f,n,m),r&&j(r,f,m),D(f,i,m),D(f,o,m),j(l,f,m),a=!0,s||(u=re(document.body,"keydown",t[1]),s=!0)},p(f,[m]){if(m&1&&d!==(d=f[0])){if(r){x();const g=r;k(g.$$.fragment,1,0,()=>{U(g,1)}),ee()}d?(r=zt(d,c()),K(r.$$.fragment),y(r.$$.fragment,1),j(r,i.parentNode,i)):r=null}},i(f){a||(y(e.$$.fragment,f),r&&y(r.$$.fragment,f),y(l.$$.fragment,f),a=!0)},o(f){k(e.$$.fragment,f),r&&k(r.$$.fragment,f),k(l.$$.fragment,f),a=!1},d(f){f&&(E(n),E(i),E(o)),U(e,f),r&&U(r,f),U(l,f),s=!1,u()}}}function Nl(t,e,n){let r,i,o;pe(t,Me,a=>n(3,i=a)),pe(t,Fe,a=>n(2,o=a));const l=a=>{a.key==="z"&&(a.ctrlKey||a.metaKey)&&i.undo!==void 0&&i.undo(a),a.key==="F1"&&i.help!==void 0&&i.help(a)};return t.$$.update=()=>{t.$$.dirty&4&&n(0,r=o.game==="deck"?Ro:Cl)},[r,l,o]}class Ol extends X{constructor(e){super(),Z(this,e,Nl,Tl,Y,{})}}new Ol({target:document.body});
+    pile.`},m(c,m){D(c,e,m),D(c,n,m),D(c,r,m),D(c,i,m),D(c,o,m),D(c,l,m),D(c,a,m),D(c,s,m),D(c,u,m),D(c,d,m),D(c,f,m)},p:te,d(c){c&&($(e),$(n),$(r),$(i),$(o),$(l),$(a),$(s),$(u),$(d),$(f))}}}function yl(t){let e,n;return e=new $t({props:{title:"How to play?",$$slots:{default:[bl]},$$scope:{ctx:t}}}),e.$on("close",t[0]),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p(r,[i]){const o={};i&2&&(o.$$scope={dirty:i,ctx:r}),e.$set(o)},i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function _l(t){function e(n){yt.call(this,t,n)}return[e]}class wl extends X{constructor(e){super(),Z(this,e,_l,yl,Y,{})}}function An(t,e,n){const r=t.slice();return r[22]=e[n],r}function En(t,e,n){const r=t.slice();return r[27]=e[n],r[29]=n,r}function $n(t){let e,n,r;return n=new ur({props:{cards:t[27],closed:t[10].includes(t[29]),selectedCardsN:t[9]===t[29]?t[8].length:0,labelOptions:{title:`Stack ${t[29]+1}`,closed:"rank"},index:t[29],isDraggableFn:Go}}),n.$on("drop",t[15](t[29])),n.$on("dblclick",t[16](t[29])),n.$on("select",t[14]),{c(){e=C("div"),K(n.$$.fragment),b(e,"class","pile svelte-3hj6i4")},m(i,o){D(i,e,o),j(n,e,null),r=!0},p(i,o){const l={};o&16&&(l.cards=i[27]),o&1024&&(l.closed=i[10].includes(i[29])),o&768&&(l.selectedCardsN=i[9]===i[29]?i[8].length:0),n.$set(l)},i(i){r||(y(n.$$.fragment,i),r=!0)},o(i){k(n.$$.fragment,i),r=!1},d(i){i&&$(e),U(n)}}}function Dn(t){let e,n;return{c(){e=C("div"),b(e,"class","pile svelte-3hj6i4"),b(e,"style",n=`min-width: ${it(4,t[3])}em`)},m(r,i){D(r,e,i)},p(r,i){i&8&&n!==(n=`min-width: ${it(4,r[3])}em`)&&b(e,"style",n)},d(r){r&&$(e)}}}function Pn(t){let e,n;return e=new wl({}),e.$on("close",t[21]),{c(){K(e.$$.fragment)},m(r,i){j(e,r,i),n=!0},p:te,i(r){n||(y(e.$$.fragment,r),n=!0)},o(r){k(e.$$.fragment,r),n=!1},d(r){U(e,r)}}}function Sl(t){let e,n,r,i,o=`${t[7].fontSize}px`,l=`${t[6]*1.25}em`,a,s,u,d,f,c,m=le(t[4]),g=[];for(let v=0;v<m.length;v+=1)g[v]=$n(En(t,m,v));const w=v=>k(g[v],1,1,()=>{g[v]=null});let S=le(yn(t[7].columns,t[7].rows)),N=[];for(let v=0;v<S.length;v+=1)N[v]=Dn(An(t,S,v));let E=t[5]&&Pn(t);return u=new dl({props:{events:t[2],piles:t[4]}}),u.$on("shuffle",t[12]),f=new pl({props:{piles:t[4]}}),f.$on("shuffle",t[12]),f.$on("undo",t[13]),{c(){e=C("main");for(let v=0;v<g.length;v+=1)g[v].c();n=M();for(let v=0;v<N.length;v+=1)N[v].c();a=M(),E&&E.c(),s=M(),K(u.$$.fragment),d=M(),K(f.$$.fragment),b(e,"class",r="pileon deal-"+t[7].columns+"x"+t[7].rows+" svelte-3hj6i4"),xe(()=>t[20].call(e)),$e(e,"font-size",o),$e(e,"max-width",l)},m(v,O){D(v,e,O);for(let A=0;A<g.length;A+=1)g[A]&&g[A].m(e,null);_(e,n);for(let A=0;A<N.length;A+=1)N[A]&&N[A].m(e,null);i=wr(e,t[20].bind(e)),D(v,a,O),E&&E.m(v,O),D(v,s,O),j(u,v,O),D(v,d,O),j(f,v,O),c=!0},p(v,[O]){if(O&116496){m=le(v[4]);let R;for(R=0;R<m.length;R+=1){const H=En(v,m,R);g[R]?(g[R].p(H,O),y(g[R],1)):(g[R]=$n(H),g[R].c(),y(g[R],1),g[R].m(e,n))}for(x(),R=m.length;R<g.length;R+=1)w(R);ee()}if(O&136){S=le(yn(v[7].columns,v[7].rows));let R;for(R=0;R<S.length;R+=1){const H=An(v,S,R);N[R]?N[R].p(H,O):(N[R]=Dn(H),N[R].c(),N[R].m(e,null))}for(;R<N.length;R+=1)N[R].d(1);N.length=S.length}(!c||O&128&&r!==(r="pileon deal-"+v[7].columns+"x"+v[7].rows+" svelte-3hj6i4"))&&b(e,"class",r),O&128&&o!==(o=`${v[7].fontSize}px`)&&$e(e,"font-size",o),O&64&&l!==(l=`${v[6]*1.25}em`)&&$e(e,"max-width",l),v[5]?E?(E.p(v,O),O&32&&y(E,1)):(E=Pn(v),E.c(),y(E,1),E.m(s.parentNode,s)):E&&(x(),k(E,1,1,()=>{E=null}),ee());const A={};O&4&&(A.events=v[2]),O&16&&(A.piles=v[4]),u.$set(A);const P={};O&16&&(P.piles=v[4]),f.$set(P)},i(v){if(!c){for(let O=0;O<m.length;O+=1)y(g[O]);y(E),y(u.$$.fragment,v),y(f.$$.fragment,v),c=!0}},o(v){g=g.filter(Boolean);for(let O=0;O<g.length;O+=1)k(g[O]);k(E),k(u.$$.fragment,v),k(f.$$.fragment,v),c=!1},d(v){v&&($(e),$(a),$(s),$(d)),Pe(g,v),Pe(N,v),i(),E&&E.d(v),U(u,v),U(f,v)}}}function kl(t,e,n){let r,i,o,l,a,s,u,d,f,c,m,g=ar(h=>({size:h.size==="default"?"bridge":h.size,fourColor:h.colors==="four-color"}));pe(t,g,h=>n(19,f=h));let w=[_n()],S=[Ae("start")],N=!1;const E=h=>{h.stopPropagation(),n(5,N=!0)},v=h=>{h.stopPropagation(),n(18,A=[void 0,[]]),n(17,w=[_n()]),n(2,S=[Ae("start")])},O=h=>{h.stopPropagation(),w.length>1&&(n(18,A=[void 0,[]]),n(17,w=w.slice(0,w.length-1)),n(2,S=[...S,Ae("undo")]))};let A=[void 0,[]];const P=(h,T,L)=>{try{n(18,A=[void 0,[]]);const F=It(w[w.length-1],h,T,L);n(17,w=[...w,F]),n(2,S=[...S,Ae("move")])}catch{}},R=h=>{const[T,L]=A,F=h.detail.index;i.includes(F)||(T===void 0||L.length===0?n(18,A=[F,Rt(r[F])]):T===F?n(18,A=[F,L.slice(1)]):T!==F&&(P(T,F,L),n(18,A=[void 0,[]])))},H=h=>T=>{T.preventDefault();const{sourceStack:L,cards:F}=zo(T);L!==h&&P(L,h,F)},I=h=>T=>{T.preventDefault();try{n(18,A=[void 0,[]]);const L=Qo(w[w.length-1],h);n(17,w=[...w,L]),n(2,S=[...S,Ae("move")])}catch{}};ut(()=>{Me.update(h=>({...h,help:E,shuffle:v,undo:O}))}),In(()=>{Me.update(h=>({...h,help:void 0,shuffle:void 0,undo:void 0}))});function B(){m=this.clientHeight,c=this.clientWidth,n(1,m),n(0,c)}const p=()=>{n(5,N=!1)};return t.$$.update=()=>{if(t.$$.dirty&3){const h=c<800||m<400?"small":"bridge";yo(T=>({size:T.size==="default"?h:T.size,fourColor:T.colors==="four-color"}))}t.$$.dirty&131072&&n(4,r=w[w.length-1]),t.$$.dirty&16&&n(10,i=el(r)),t.$$.dirty&20&&dr(r)&&S.push(Ae("stop")),t.$$.dirty&262144&&n(9,o=A[0]),t.$$.dirty&262144&&n(8,l=A[1]),t.$$.dirty&524288&&n(3,a=f.size),t.$$.dirty&11&&n(7,s=Jo(a,c,m)),t.$$.dirty&8&&n(6,[u,d]=fr(a,5,3),u)},[c,m,S,a,r,N,u,s,l,o,i,g,v,O,R,H,I,w,A,f,B,p]}class Cl extends X{constructor(e){super(),Z(this,e,kl,Sl,Y,{})}}function Tl(t){let e,n,r,i,o,l,a,s,u;e=new ki({});var d=t[0];function f(c,m){return{}}return d&&(r=zt(d,f())),l=new Fr({}),{c(){K(e.$$.fragment),n=M(),r&&K(r.$$.fragment),i=M(),o=M(),K(l.$$.fragment)},m(c,m){j(e,c,m),D(c,n,m),r&&j(r,c,m),D(c,i,m),D(c,o,m),j(l,c,m),a=!0,s||(u=re(document.body,"keydown",t[1]),s=!0)},p(c,[m]){if(m&1&&d!==(d=c[0])){if(r){x();const g=r;k(g.$$.fragment,1,0,()=>{U(g,1)}),ee()}d?(r=zt(d,f()),K(r.$$.fragment),y(r.$$.fragment,1),j(r,i.parentNode,i)):r=null}},i(c){a||(y(e.$$.fragment,c),r&&y(r.$$.fragment,c),y(l.$$.fragment,c),a=!0)},o(c){k(e.$$.fragment,c),r&&k(r.$$.fragment,c),k(l.$$.fragment,c),a=!1},d(c){c&&($(n),$(i),$(o)),U(e,c),r&&U(r,c),U(l,c),s=!1,u()}}}function Nl(t,e,n){let r,i,o;pe(t,Me,a=>n(3,i=a)),pe(t,Fe,a=>n(2,o=a));const l=a=>{a.key==="z"&&(a.ctrlKey||a.metaKey)&&i.undo!==void 0&&i.undo(a),a.key==="F1"&&i.help!==void 0&&i.help(a)};return t.$$.update=()=>{t.$$.dirty&4&&n(0,r=o.game==="deck"?Ro:Cl)},[r,l,o]}class Ol extends X{constructor(e){super(),Z(this,e,Nl,Tl,Y,{})}}new Ol({target:document.body});
diff --git a/index.html b/index.html
index c038983..8cfd90f 100644
--- a/index.html
+++ b/index.html
@@ -25,7 +25,7 @@
 
     <link rel="icon" type="image/png" href="https://pileon.net//favicon.png" />
     <link rel="manifest" href="https://pileon.net//manifest.json" />
-    <script type="module" crossorigin src="https://pileon.net/assets/index-ef40a9f5.js"></script>
+    <script type="module" crossorigin src="https://pileon.net/assets/index-3c7228fc.js"></script>
     <link rel="stylesheet" href="https://pileon.net/assets/index-7167bc07.css">
   <link rel="manifest" href="https://pileon.net/manifest.webmanifest"><script id="vite-plugin-pwa:register-sw" src="https://pileon.net/registerSW.js"></script></head>
 
diff --git a/sw.js b/sw.js
index b5574f4..6b4fbb7 100644
--- a/sw.js
+++ b/sw.js
@@ -1 +1 @@
-if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let o={};const l=e=>i(e,t),c={module:{uri:t},exports:o,require:l};s[t]=Promise.all(n.map((e=>c[e]||l(e)))).then((e=>(r(...e),o)))}}define(["./workbox-89dafc17"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"assets/index-7167bc07.css",revision:null},{url:"assets/index-ef40a9f5.js",revision:null},{url:"index.html",revision:"b6a91cad513f47c135d2a7d12cc82888"},{url:"registerSW.js",revision:"19bf7f5bebfbbbd1c734575aae27e612"},{url:"manifest.webmanifest",revision:"178cb6b081b36b79d616305b9316e663"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));
+if(!self.define){let e,s={};const i=(i,n)=>(i=new URL(i+".js",n).href,s[i]||new Promise((s=>{if("document"in self){const e=document.createElement("script");e.src=i,e.onload=s,document.head.appendChild(e)}else e=i,importScripts(i),s()})).then((()=>{let e=s[i];if(!e)throw new Error(`Module ${i} didn’t register its module`);return e})));self.define=(n,r)=>{const t=e||("document"in self?document.currentScript.src:"")||location.href;if(s[t])return;let o={};const l=e=>i(e,t),c={module:{uri:t},exports:o,require:l};s[t]=Promise.all(n.map((e=>c[e]||l(e)))).then((e=>(r(...e),o)))}}define(["./workbox-89dafc17"],(function(e){"use strict";self.addEventListener("message",(e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})),e.precacheAndRoute([{url:"assets/index-3c7228fc.js",revision:null},{url:"assets/index-7167bc07.css",revision:null},{url:"index.html",revision:"3bf390dc59f8980d89d77011248a88bd"},{url:"registerSW.js",revision:"19bf7f5bebfbbbd1c734575aae27e612"},{url:"manifest.webmanifest",revision:"178cb6b081b36b79d616305b9316e663"}],{}),e.cleanupOutdatedCaches(),e.registerRoute(new e.NavigationRoute(e.createHandlerBoundToURL("index.html")))}));