Files
ogame-vue-ts/docs/assets/GalaxyView-C-Ue9wLo.js
谦君 705ee8c3db feat: 初始化项目结构与核心功能
引入项目基础目录结构,包含多语言支持、主要页面与组件、核心游戏逻辑、UI 组件库、加密与本地持久化、自动化 Docker 构建流程、GitHub issue 模板(中英文)、README(中英文)、LICENSE 及开发配置文件。实现 OGame 单机版主要功能模块,为后续开发和扩展奠定基础。
2025-12-11 14:49:25 +08:00

1 line
40 KiB
JavaScript

import{t as e}from"./eye-BrZrKlSB.js";import{t}from"./CardDescription-Cb9v68Xa.js";import{$n as n,A as r,An as i,Bn as a,Bt as o,Dn as s,Dt as c,En as l,Fn as u,G as d,Gn as f,Gt as p,Hn as m,Ht as h,In as g,It as _,Jn as v,Kn as y,Ln as b,Lt as x,Mn as S,Nn as C,On as w,Pn as T,Qn as E,Rn as D,Tn as O,Tt as ee,Un as k,Ut as te,Vn as A,Vt as ne,Wn as re,Xn as j,Xt as ie,Yn as ae,Yt as oe,Zn as M,Zt as se,_n as ce,an as N,ar as P,bn as le,cn as ue,dn as F,dt as de,en as I,er as L,fn as fe,ft as pe,gn as me,hn as he,in as ge,ir as _e,jn as R,jt as z,k as ve,kn as B,kt as ye,lt as be,mn as xe,nn as Se,nr as Ce,on as V,or as we,pn as Te,qn as H,rn as Ee,rr as U,sn as W,sr as G,tn as De,tr as K,un as Oe,ut as ke,vn as q,wn as Ae,xn as je,yn as J,zt as Y}from"./index-BpOElaf9.js";import{t as Me}from"./AlertDialog-BbpHh-RO.js";function Ne(e){return typeof e==`string`?`'${e}'`:new Pe().serialize(e)}var Pe=function(){class e{#e=new Map;compare(e,t){let n=typeof e,r=typeof t;return n===`string`&&r===`string`?e.localeCompare(t):n===`number`&&r===`number`?e-t:String.prototype.localeCompare.call(this.serialize(e,!0),this.serialize(t,!0))}serialize(e,t){if(e===null)return`null`;switch(typeof e){case`string`:return t?e:`'${e}'`;case`bigint`:return`${e}n`;case`object`:return this.$object(e);case`function`:return this.$function(e)}return String(e)}serializeObject(e){let t=Object.prototype.toString.call(e);if(t!==`[object Object]`)return this.serializeBuiltInType(t.length<10?`unknown:${t}`:t.slice(8,-1),e);let n=e.constructor,r=n===Object||n===void 0?``:n.name;if(r!==``&&globalThis[r]===n)return this.serializeBuiltInType(r,e);if(typeof e.toJSON==`function`){let t=e.toJSON();return r+(typeof t==`object`&&t?this.$object(t):`(${this.serialize(t)})`)}return this.serializeObjectEntries(r,Object.entries(e))}serializeBuiltInType(e,t){let n=this[`$`+e];if(n)return n.call(this,t);if(typeof t?.entries==`function`)return this.serializeObjectEntries(e,t.entries());throw Error(`Cannot serialize ${e}`)}serializeObjectEntries(e,t){let n=Array.from(t).sort((e,t)=>this.compare(e[0],t[0])),r=`${e}{`;for(let e=0;e<n.length;e++){let[t,i]=n[e];r+=`${this.serialize(t,!0)}:${this.serialize(i)}`,e<n.length-1&&(r+=`,`)}return r+`}`}$object(e){let t=this.#e.get(e);return t===void 0&&(this.#e.set(e,`#${this.#e.size}`),t=this.serializeObject(e),this.#e.set(e,t)),t}$function(e){let t=Function.prototype.toString.call(e);return t.slice(-15)===`[native code] }`?`${e.name||``}()[native]`:`${e.name}(${e.length})${t.replace(/\s*\n\s*/g,``)}`}$Array(e){let t=`[`;for(let n=0;n<e.length;n++)t+=this.serialize(e[n]),n<e.length-1&&(t+=`,`);return t+`]`}$Date(e){try{return`Date(${e.toISOString()})`}catch{return`Date(null)`}}$ArrayBuffer(e){return`ArrayBuffer[${new Uint8Array(e).join(`,`)}]`}$Set(e){return`Set${this.$Array(Array.from(e).sort((e,t)=>this.compare(e,t)))}`}$Map(e){return this.serializeObjectEntries(`Map`,e.entries())}}for(let t of[`Error`,`RegExp`,`URL`])e.prototype[`$`+t]=function(e){return`${t}(${e})`};for(let t of[`Int8Array`,`Uint8Array`,`Uint8ClampedArray`,`Int16Array`,`Uint16Array`,`Int32Array`,`Uint32Array`,`Float32Array`,`Float64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`,`)}]`};for(let t of[`BigInt64Array`,`BigUint64Array`])e.prototype[`$`+t]=function(e){return`${t}[${e.join(`n,`)}${e.length>0?`n`:``}]`};return e}();function Fe(e,t){return e===t||Ne(e)===Ne(t)}function Ie(e,t=-1/0,n=1/0){return Math.min(n,Math.max(t,e))}function Le(e){let t=he({dir:L(`ltr`)});return w(()=>e?.value||t.dir?.value||`ltr`)}function Re(e){return w(()=>Ce(e)?!!F(e)?.closest(`form`):!0)}function ze(e){let t=xe(``,1e3);return{search:t,handleTypeaheadSearch:(n,r)=>{if(t.value+=n,e)e(n);else{let e=q(),n=r.map(e=>({...e,textValue:e.value?.textValue??e.ref.textContent?.trim()??``})),i=n.find(t=>t.ref===e),a=Ve(n.map(e=>e.textValue),t.value,i?.textValue),o=n.find(e=>e.textValue===a);return o&&o.ref.focus(),o?.ref}},resetTypeahead:()=>{t.value=``}}}function Be(e,t){return e.map((n,r)=>e[(t+r)%e.length])}function Ve(e,t,n){let r=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,i=n?e.indexOf(n):-1,a=Be(e,Math.max(i,0));r.length===1&&(a=a.filter(e=>e!==n));let o=a.find(e=>e.toLowerCase().startsWith(r.toLowerCase()));return o===n?void 0:o}function He(){let e=L();return{primitiveElement:e,currentElement:w(()=>[`#text`,`#comment`].includes(e.value?.$el.nodeName)?e.value?.$el.nextElementSibling:F(e))}}var Ue=`data-reka-collection-item`;function X(e={}){let{key:t=``,isProvider:r=!1}=e,i=`${t}CollectionProvider`,a;if(r){let e=L(new Map);a={collectionRef:L(),itemMap:e},y(i,a)}else a=D(i);let o=(e=!1)=>{let t=a.collectionRef.value;if(!t)return[];let n=Array.from(t.querySelectorAll(`[${Ue}]`)),r=Array.from(a.itemMap.value.values()).sort((e,t)=>n.indexOf(e.ref)-n.indexOf(t.ref));return e?r:r.filter(e=>e.ref.dataset.disabled!==``)},s=u({name:`CollectionSlot`,setup(e,{slots:t}){let{primitiveElement:n,currentElement:r}=He();return j(r,()=>{a.collectionRef.value=r.value}),()=>b(De,{ref:n},t)}}),c=u({name:`CollectionItem`,inheritAttrs:!1,props:{value:{validator:()=>!0}},setup(e,{slots:t,attrs:r}){let{primitiveElement:i,currentElement:o}=He();return M(t=>{if(o.value){let r=n(o.value);a.itemMap.value.set(r,{ref:o.value,value:e.value}),t(()=>a.itemMap.value.delete(r))}}),()=>b(De,{...r,[Ue]:``,ref:i},t)}});return{getItems:o,reactiveItems:w(()=>Array.from(a.itemMap.value.values())),itemMapSize:w(()=>a.itemMap.value.size),CollectionSlot:s,CollectionItem:c}}var We=u({__name:`VisuallyHidden`,props:{feature:{type:String,required:!1,default:`focusable`},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(f(),i(U(I),{as:e.as,"as-child":e.asChild,"aria-hidden":e.feature===`focusable`?`true`:void 0,"data-hidden":e.feature===`fully-hidden`?``:void 0,tabindex:e.feature===`fully-hidden`?`-1`:void 0,style:{position:`absolute`,border:0,width:`1px`,height:`1px`,padding:0,margin:`-1px`,overflow:`hidden`,clip:`rect(0, 0, 0, 0)`,clipPath:`inset(50%)`,whiteSpace:`nowrap`,wordWrap:`normal`,top:`-1px`,left:`-1px`}},{default:E(()=>[v(e.$slots,`default`)]),_:3},8,[`as`,`as-child`,`aria-hidden`,`data-hidden`,`tabindex`]))}});function Ge(e){let t=he({nonce:L()});return w(()=>e?.value||t.nonce?.value)}var Ke=[` `,`Enter`,`ArrowUp`,`ArrowDown`],qe=[` `,`Enter`];function Z(e,t,n){return e===void 0?!1:Array.isArray(e)?e.some(e=>Je(e,t,n)):Je(e,t,n)}function Je(e,t,n){return e===void 0||t===void 0?!1:typeof e==`string`?e===t:typeof n==`function`?n(e,t):typeof n==`string`?e?.[n]===t?.[n]:Fe(e,t)}function Ye(e){return e==null||e===``||Array.isArray(e)&&e.length===0}var Xe={key:0,value:``},[Q,Ze]=J(`SelectRoot`),Qe=u({inheritAttrs:!1,__name:`SelectRoot`,props:{open:{type:Boolean,required:!1,default:void 0},defaultOpen:{type:Boolean,required:!1},defaultValue:{type:null,required:!1},modelValue:{type:null,required:!1,default:void 0},by:{type:[String,Function],required:!1},dir:{type:String,required:!1},multiple:{type:Boolean,required:!1},autocomplete:{type:String,required:!1},disabled:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1}},emits:[`update:modelValue`,`update:open`],setup(e,{emit:t}){let n=e,r=t,{required:o,disabled:s,multiple:c,dir:u}=K(n),d=Te(n,`modelValue`,r,{defaultValue:n.defaultValue??(c.value?[]:void 0),passive:n.modelValue===void 0,deep:!0}),p=Te(n,`open`,r,{defaultValue:n.defaultOpen,passive:n.open===void 0}),m=L(),h=L(),g=L({x:0,y:0}),_=w(()=>c.value&&Array.isArray(d.value)?d.value?.length===0:me(d.value));X({isProvider:!0});let y=Le(u),b=Re(m),x=L(new Set),C=w(()=>Array.from(x.value).map(e=>e.value).join(`;`));function T(e){if(c.value){let t=Array.isArray(d.value)?[...d.value]:[],r=t.findIndex(t=>Je(t,e,n.by));r===-1?t.push(e):t.splice(r,1),d.value=[...t]}else d.value=e}function D(e){return Array.from(x.value).find(t=>Z(e,t.value,n.by))}return Ze({triggerElement:m,onTriggerChange:e=>{m.value=e},valueElement:h,onValueElementChange:e=>{h.value=e},contentId:``,modelValue:d,onValueChange:T,by:n.by,open:p,multiple:c,required:o,onOpenChange:e=>{p.value=e},dir:y,triggerPointerDownPosRef:g,disabled:s,isEmptyModelValue:_,optionsSet:x,onOptionAdd:e=>{let t=D(e.value);t&&x.value.delete(t),x.value.add(e)},onOptionRemove:e=>{let t=D(e.value);t&&x.value.delete(t)}}),(e,t)=>(f(),i(U(te),null,{default:E(()=>[v(e.$slots,`default`,{modelValue:U(d),open:U(p)}),U(b)?(f(),i($e,{key:C.value,"aria-hidden":`true`,tabindex:`-1`,multiple:U(c),required:U(o),name:e.name,autocomplete:e.autocomplete,disabled:U(s),value:U(d)},{default:E(()=>[U(me)(U(d))?(f(),S(`option`,Xe)):R(`v-if`,!0),(f(!0),S(l,null,H(Array.from(x.value),e=>(f(),S(`option`,a({key:e.value??``},{ref_for:!0},e),null,16))),128))]),_:1},8,[`multiple`,`required`,`name`,`autocomplete`,`disabled`,`value`])):R(`v-if`,!0)]),_:3}))}}),$e=u({__name:`BubbleSelect`,props:{autocomplete:{type:String,required:!1},autofocus:{type:Boolean,required:!1},disabled:{type:Boolean,required:!1},form:{type:String,required:!1},multiple:{type:Boolean,required:!1},name:{type:String,required:!1},required:{type:Boolean,required:!1},size:{type:Number,required:!1},value:{type:null,required:!1}},setup(e){let t=e,n=L(),r=Q();j(()=>t.value,(e,t)=>{let r=window.HTMLSelectElement.prototype,i=Object.getOwnPropertyDescriptor(r,`value`).set;if(e!==t&&i&&n.value){let t=new Event(`change`,{bubbles:!0});i.call(n.value,e),n.value.dispatchEvent(t)}});function o(e){r.onValueChange(e.target.value)}return(e,r)=>(f(),i(U(We),{"as-child":``},{default:E(()=>[B(`select`,a({ref_key:`selectElement`,ref:n},t,{onInput:o}),[v(e.$slots,`default`)],16)]),_:3}))}}),et=u({__name:`SelectPopperPosition`,props:{side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1,default:10},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=V(e);return(e,n)=>(f(),i(U(ne),a(U(t),{style:{boxSizing:`border-box`,"--reka-select-content-transform-origin":`var(--reka-popper-transform-origin)`,"--reka-select-content-available-width":`var(--reka-popper-available-width)`,"--reka-select-content-available-height":`var(--reka-popper-available-height)`,"--reka-select-trigger-width":`var(--reka-popper-anchor-width)`,"--reka-select-trigger-height":`var(--reka-popper-anchor-height)`}}),{default:E(()=>[v(e.$slots,`default`)]),_:3},16))}}),tt={onViewportChange:()=>{},itemTextRefCallback:()=>{},itemRefCallback:()=>{}},[$,nt]=J(`SelectContent`),rt=u({__name:`SelectContentImpl`,props:{position:{type:String,required:!1,default:`item-aligned`},bodyLock:{type:Boolean,required:!1,default:!0},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1,default:`start`},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,o=Q();ue(),Oe(n.bodyLock);let{CollectionSlot:s,getItems:c}=X(),l=L();ge(l);let{search:u,handleTypeaheadSearch:d}=ze(),p=L(),m=L(),h=L(),g=L(!1),_=L(!1),y=L(!1);function b(){m.value&&l.value&&oe([m.value,l.value])}j(g,()=>{b()});let{onOpenChange:x,triggerPointerDownPosRef:S}=o;M(e=>{if(!l.value)return;let t={x:0,y:0},n=e=>{t={x:Math.abs(Math.round(e.pageX)-(S.value?.x??0)),y:Math.abs(Math.round(e.pageY)-(S.value?.y??0))}},r=e=>{e.pointerType!==`touch`&&(t.x<=10&&t.y<=10?e.preventDefault():l.value?.contains(e.target)||x(!1),document.removeEventListener(`pointermove`,n),S.value=null)};S.value!==null&&(document.addEventListener(`pointermove`,n),document.addEventListener(`pointerup`,r,{capture:!0,once:!0})),e(()=>{document.removeEventListener(`pointermove`,n),document.removeEventListener(`pointerup`,r,{capture:!0})})});function C(e){let t=e.ctrlKey||e.altKey||e.metaKey;if(e.key===`Tab`&&e.preventDefault(),!t&&e.key.length===1&&d(e.key,c()),[`ArrowUp`,`ArrowDown`,`Home`,`End`].includes(e.key)){let t=[...c().map(e=>e.ref)];if([`ArrowUp`,`End`].includes(e.key)&&(t=t.slice().reverse()),[`ArrowUp`,`ArrowDown`].includes(e.key)){let n=e.target,r=t.indexOf(n);t=t.slice(r+1)}setTimeout(()=>oe(t)),e.preventDefault()}}let D=V(w(()=>n.position===`popper`?n:{}).value);return nt({content:l,viewport:p,onViewportChange:e=>{p.value=e},itemRefCallback:(e,t,n)=>{let r=!_.value&&!n,i=Z(o.modelValue.value,t,o.by);if(o.multiple.value){if(y.value)return;(i||r)&&(m.value=e,i&&(y.value=!0))}else (i||r)&&(m.value=e);r&&(_.value=!0)},selectedItem:m,selectedItemText:h,onItemLeave:()=>{l.value?.focus()},itemTextRefCallback:(e,t,n)=>{let r=!_.value&&!n;(Z(o.modelValue.value,t,o.by)||r)&&(h.value=e)},focusSelectedItem:b,position:n.position,isPositioned:g,searchRef:u}),(e,t)=>(f(),i(U(s),null,{default:E(()=>[T(U(ie),{"as-child":``,onMountAutoFocus:t[6]||=O(()=>{},[`prevent`]),onUnmountAutoFocus:t[7]||=e=>{r(`closeAutoFocus`,e),!e.defaultPrevented&&(U(o).triggerElement.value?.focus({preventScroll:!0}),e.preventDefault())}},{default:E(()=>[T(U(se),{"as-child":``,"disable-outside-pointer-events":``,onFocusOutside:t[2]||=O(()=>{},[`prevent`]),onDismiss:t[3]||=e=>U(o).onOpenChange(!1),onEscapeKeyDown:t[4]||=e=>r(`escapeKeyDown`,e),onPointerDownOutside:t[5]||=e=>r(`pointerDownOutside`,e)},{default:E(()=>[(f(),i(ae(e.position===`popper`?et:ot),a({...e.$attrs,...U(D)},{id:U(o).contentId,ref:e=>{let t=U(F)(e);t?.hasAttribute(`data-reka-popper-content-wrapper`)?l.value=t.firstElementChild:l.value=t},role:`listbox`,"data-state":U(o).open.value?`open`:`closed`,dir:U(o).dir.value,style:{display:`flex`,flexDirection:`column`,outline:`none`},onContextmenu:t[0]||=O(()=>{},[`prevent`]),onPlaced:t[1]||=e=>g.value=!0,onKeydown:C}),{default:E(()=>[v(e.$slots,`default`)]),_:3},16,[`id`,`data-state`,`dir`,`onKeydown`]))]),_:3})]),_:3})]),_:3}))}}),[it,at]=J(`SelectItemAlignedPosition`),ot=u({inheritAttrs:!1,__name:`SelectItemAlignedPosition`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`placed`],setup(e,{emit:t}){let n=e,r=t,{getItems:i}=X(),o=Q(),s=$(),c=L(!1),l=L(!0),u=L(),{forwardRef:d,currentElement:p}=W(),{viewport:m,selectedItem:h,selectedItemText:g,focusSelectedItem:_}=s;function y(){if(o.triggerElement.value&&o.valueElement.value&&u.value&&p.value&&m?.value&&h?.value&&g?.value){let e=o.triggerElement.value.getBoundingClientRect(),t=p.value.getBoundingClientRect(),n=o.valueElement.value.getBoundingClientRect(),a=g.value.getBoundingClientRect();if(o.dir.value!==`rtl`){let r=a.left-t.left,i=n.left-r,o=e.left-i,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-10,d=Ie(i,10,Math.max(10,l-c));u.value.style.minWidth=`${s}px`,u.value.style.left=`${d}px`}else{let r=t.right-a.right,i=window.innerWidth-n.right-r,o=window.innerWidth-e.right-i,s=e.width+o,c=Math.max(s,t.width),l=window.innerWidth-10,d=Ie(i,10,Math.max(10,l-c));u.value.style.minWidth=`${s}px`,u.value.style.right=`${d}px`}let s=i().map(e=>e.ref),l=window.innerHeight-20,d=m.value.scrollHeight,f=window.getComputedStyle(p.value),_=Number.parseInt(f.borderTopWidth,10),v=Number.parseInt(f.paddingTop,10),y=Number.parseInt(f.borderBottomWidth,10),b=Number.parseInt(f.paddingBottom,10),x=_+v+d+b+y,S=Math.min(h.value.offsetHeight*5,x),C=window.getComputedStyle(m.value),w=Number.parseInt(C.paddingTop,10),T=Number.parseInt(C.paddingBottom,10),E=e.top+e.height/2-10,D=l-E,O=h.value.offsetHeight/2,ee=h.value.offsetTop+O,k=_+v+ee,te=x-k;if(k<=E){let e=h.value===s[s.length-1];u.value.style.bottom=`0px`;let t=p.value.clientHeight-m.value.offsetTop-m.value.offsetHeight,n=k+Math.max(D,O+(e?T:0)+t+y);u.value.style.height=`${n}px`}else{let e=h.value===s[0];u.value.style.top=`0px`;let t=Math.max(E,_+m.value.offsetTop+(e?w:0)+O)+te;u.value.style.height=`${t}px`,m.value.scrollTop=k-E+m.value.offsetTop}u.value.style.margin=`10px 0`,u.value.style.minHeight=`${S}px`,u.value.style.maxHeight=`${l}px`,r(`placed`),requestAnimationFrame(()=>c.value=!0)}}let b=L(``);k(async()=>{await A(),y(),p.value&&(b.value=window.getComputedStyle(p.value).zIndex)});function x(e){e&&l.value===!0&&(y(),_?.(),l.value=!1)}return fe(o.triggerElement,()=>{y()}),at({contentWrapper:u,shouldExpandOnScrollRef:c,onScrollButtonChange:x}),(e,t)=>(f(),S(`div`,{ref_key:`contentWrapperElement`,ref:u,style:we({display:`flex`,flexDirection:`column`,position:`fixed`,zIndex:b.value})},[T(U(I),a({ref:U(d),style:{boxSizing:`border-box`,maxHeight:`100%`}},{...e.$attrs,...n}),{default:E(()=>[v(e.$slots,`default`)]),_:3},16)],4))}}),st=u({inheritAttrs:!1,__name:`SelectProvider`,props:{context:{type:Object,required:!0}},setup(e){return Ze(e.context),nt(tt),(e,t)=>v(e.$slots,`default`)}}),ct={key:1},lt=u({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean,required:!1},position:{type:String,required:!1},bodyLock:{type:Boolean,required:!1},side:{type:null,required:!1},sideOffset:{type:Number,required:!1},sideFlip:{type:Boolean,required:!1},align:{type:null,required:!1},alignOffset:{type:Number,required:!1},alignFlip:{type:Boolean,required:!1},avoidCollisions:{type:Boolean,required:!1},collisionBoundary:{type:null,required:!1},collisionPadding:{type:[Number,Object],required:!1},arrowPadding:{type:Number,required:!1},sticky:{type:String,required:!1},hideWhenDetached:{type:Boolean,required:!1},positionStrategy:{type:String,required:!1},updatePositionStrategy:{type:String,required:!1},disableUpdateOnLayoutShift:{type:Boolean,required:!1},prioritizePosition:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=N(n,t),a=Q(),o=L();k(()=>{o.value=new DocumentFragment});let c=L(),l=w(()=>n.forceMount||a.open.value),u=L(l.value);return j(l,()=>{setTimeout(()=>u.value=l.value)}),(e,t)=>l.value||u.value||c.value?.present?(f(),i(U(Se),{key:0,ref_key:`presenceRef`,ref:c,present:l.value},{default:E(()=>[T(rt,P(g({...U(r),...e.$attrs})),{default:E(()=>[v(e.$slots,`default`)]),_:3},16)]),_:3},8,[`present`])):o.value?(f(),S(`div`,ct,[(f(),i(s,{to:o.value},[T(st,{context:U(a)},{default:E(()=>[v(e.$slots,`default`)]),_:3},8,[`context`])],8,[`to`]))])):R(`v-if`,!0)}}),ut=u({__name:`SelectIcon`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){return(e,t)=>(f(),i(U(I),{"aria-hidden":`true`,as:e.as,"as-child":e.asChild},{default:E(()=>[v(e.$slots,`default`,{},()=>[t[0]||=C(``)])]),_:3},8,[`as`,`as-child`]))}}),[dt,ft]=J(`SelectItem`),pt=u({__name:`SelectItem`,props:{value:{type:null,required:!0},disabled:{type:Boolean,required:!1},textValue:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},emits:[`select`],setup(e,{emit:t}){let n=e,r=t,{disabled:a}=K(n),o=Q(),s=$(),{forwardRef:c,currentElement:l}=W(),{CollectionItem:u}=X(),d=w(()=>Z(o.modelValue?.value,n.value,o.by)),p=L(!1),m=L(n.textValue??``),h=Ee(void 0,`reka-select-item-text`);async function g(e){e.defaultPrevented||ce(`select.select`,_,{originalEvent:e,value:n.value})}async function _(e){await A(),r(`select`,e),!e.defaultPrevented&&(a.value||(o.onValueChange(n.value),o.multiple.value||o.onOpenChange(!1)))}async function y(e){await A(),!e.defaultPrevented&&(a.value?s.onItemLeave?.():e.currentTarget?.focus({preventScroll:!0}))}async function b(e){await A(),!e.defaultPrevented&&e.currentTarget===q()&&s.onItemLeave?.()}async function x(e){await A(),!e.defaultPrevented&&(s.searchRef?.value!==``&&e.key===` `||(qe.includes(e.key)&&g(e),e.key===` `&&e.preventDefault()))}if(n.value===``)throw Error(`A <SelectItem /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.`);return k(()=>{l.value&&s.itemRefCallback(l.value,n.value,n.disabled)}),ft({value:n.value,disabled:a,textId:h,isSelected:d,onItemTextChange:e=>{m.value=((m.value||e?.textContent)??``).trim()}}),(e,t)=>(f(),i(U(u),{value:{textValue:m.value}},{default:E(()=>[T(U(I),{ref:U(c),role:`option`,"aria-labelledby":U(h),"data-highlighted":p.value?``:void 0,"aria-selected":d.value,"data-state":d.value?`checked`:`unchecked`,"aria-disabled":U(a)||void 0,"data-disabled":U(a)?``:void 0,tabindex:U(a)?void 0:-1,as:e.as,"as-child":e.asChild,onFocus:t[0]||=e=>p.value=!0,onBlur:t[1]||=e=>p.value=!1,onPointerup:g,onPointerdown:t[2]||=e=>{e.currentTarget.focus({preventScroll:!0})},onTouchend:t[3]||=O(()=>{},[`prevent`,`stop`]),onPointermove:y,onPointerleave:b,onKeydown:x},{default:E(()=>[v(e.$slots,`default`)]),_:3},8,[`aria-labelledby`,`data-highlighted`,`aria-selected`,`data-state`,`aria-disabled`,`data-disabled`,`tabindex`,`as`,`as-child`])]),_:3},8,[`value`]))}}),mt=u({__name:`SelectItemIndicator`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=dt();return(e,r)=>U(n).isSelected.value?(f(),i(U(I),a({key:0,"aria-hidden":`true`},t),{default:E(()=>[v(e.$slots,`default`)]),_:3},16)):R(`v-if`,!0)}}),ht=u({inheritAttrs:!1,__name:`SelectItemText`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,n=Q(),r=$(),o=dt(),{forwardRef:s,currentElement:c}=W(),l=w(()=>({value:o.value,disabled:o.disabled.value,textContent:c.value?.textContent??o.value?.toString()??``}));return k(()=>{c.value&&(o.onItemTextChange(c.value),r.itemTextRefCallback(c.value,o.value,o.disabled.value),n.onOptionAdd(l.value))}),re(()=>{n.onOptionRemove(l.value)}),(e,n)=>(f(),i(U(I),a({id:U(o).textId,ref:U(s)},{...t,...e.$attrs}),{default:E(()=>[v(e.$slots,`default`)]),_:3},16,[`id`]))}}),gt=u({__name:`SelectPortal`,props:{to:{type:null,required:!1},disabled:{type:Boolean,required:!1},defer:{type:Boolean,required:!1},forceMount:{type:Boolean,required:!1}},setup(e){let t=e;return(e,n)=>(f(),i(U(p),P(g(t)),{default:E(()=>[v(e.$slots,`default`)]),_:3},16))}}),_t=u({__name:`SelectScrollButtonImpl`,emits:[`autoScroll`],setup(e,{emit:t}){let n=t,{getItems:r}=X(),o=$(),s=L(null);function c(){s.value!==null&&(window.clearInterval(s.value),s.value=null)}M(()=>{r().map(e=>e.ref).find(e=>e===q())?.scrollIntoView({block:`nearest`})});function l(){s.value===null&&(s.value=window.setInterval(()=>{n(`autoScroll`)},50))}function u(){o.onItemLeave?.(),s.value===null&&(s.value=window.setInterval(()=>{n(`autoScroll`)},50))}return m(()=>c()),(e,t)=>(f(),i(U(I),a({"aria-hidden":`true`,style:{flexShrink:0}},e.$parent?.$props,{onPointerdown:l,onPointermove:u,onPointerleave:t[0]||=()=>{c()}}),{default:E(()=>[v(e.$slots,`default`)]),_:3},16))}}),vt=u({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=$(),n=t.position===`item-aligned`?it():void 0,{forwardRef:r,currentElement:a}=W(),o=L(!1);return M(e=>{if(t.viewport?.value&&t.isPositioned?.value){let n=t.viewport.value;function r(){let e=n.scrollHeight-n.clientHeight;o.value=Math.ceil(n.scrollTop)<e}r(),n.addEventListener(`scroll`,r),e(()=>n.removeEventListener(`scroll`,r))}}),j(a,()=>{a.value&&n?.onScrollButtonChange(a.value)}),(e,n)=>o.value?(f(),i(_t,{key:0,ref:U(r),onAutoScroll:n[0]||=()=>{let{viewport:e,selectedItem:n}=U(t);e?.value&&n?.value&&(e.value.scrollTop=e.value.scrollTop+n.value.offsetHeight)}},{default:E(()=>[v(e.$slots,`default`)]),_:3},512)):R(`v-if`,!0)}}),yt=u({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=$(),n=t.position===`item-aligned`?it():void 0,{forwardRef:r,currentElement:a}=W(),o=L(!1);return M(e=>{if(t.viewport?.value&&t.isPositioned?.value){let n=t.viewport.value;function r(){o.value=n.scrollTop>0}r(),n.addEventListener(`scroll`,r),e(()=>n.removeEventListener(`scroll`,r))}}),j(a,()=>{a.value&&n?.onScrollButtonChange(a.value)}),(e,n)=>o.value?(f(),i(_t,{key:0,ref:U(r),onAutoScroll:n[0]||=()=>{let{viewport:e,selectedItem:n}=U(t);e?.value&&n?.value&&(e.value.scrollTop=e.value.scrollTop-n.value.offsetHeight)}},{default:E(()=>[v(e.$slots,`default`)]),_:3},512)):R(`v-if`,!0)}}),bt=u({__name:`SelectTrigger`,props:{disabled:{type:Boolean,required:!1},reference:{type:null,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`button`}},setup(e){let t=e,n=Q(),{forwardRef:r,currentElement:a}=W(),o=w(()=>n.disabled?.value||t.disabled);n.contentId||=Ee(void 0,`reka-select-content`),k(()=>{n.onTriggerChange(a.value)});let{getItems:s}=X(),{search:c,handleTypeaheadSearch:l,resetTypeahead:u}=ze();function d(){o.value||(n.onOpenChange(!0),u())}function p(e){d(),n.triggerPointerDownPosRef.value={x:Math.round(e.pageX),y:Math.round(e.pageY)}}return(e,t)=>(f(),i(U(h),{"as-child":``,reference:e.reference},{default:E(()=>[T(U(I),{ref:U(r),role:`combobox`,type:e.as===`button`?`button`:void 0,"aria-controls":U(n).contentId,"aria-expanded":U(n).open.value||!1,"aria-required":U(n).required?.value,"aria-autocomplete":`none`,disabled:o.value,dir:U(n)?.dir.value,"data-state":U(n)?.open.value?`open`:`closed`,"data-disabled":o.value?``:void 0,"data-placeholder":U(Ye)(U(n).modelValue?.value)?``:void 0,"as-child":e.asChild,as:e.as,onClick:t[0]||=e=>{(e?.currentTarget)?.focus()},onPointerdown:t[1]||=e=>{if(e.pointerType===`touch`)return e.preventDefault();let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),e.button===0&&e.ctrlKey===!1&&(p(e),e.preventDefault())},onPointerup:t[2]||=O(e=>{e.pointerType===`touch`&&p(e)},[`prevent`]),onKeydown:t[3]||=e=>{let t=U(c)!==``;!(e.ctrlKey||e.altKey||e.metaKey)&&e.key.length===1&&t&&e.key===` `||(U(l)(e.key,U(s)()),U(Ke).includes(e.key)&&(d(),e.preventDefault()))}},{default:E(()=>[v(e.$slots,`default`)]),_:3},8,[`type`,`aria-controls`,`aria-expanded`,`aria-required`,`disabled`,`dir`,`data-state`,`data-disabled`,`data-placeholder`,`as-child`,`as`])]),_:3},8,[`reference`]))}}),xt=u({__name:`SelectValue`,props:{placeholder:{type:String,required:!1,default:``},asChild:{type:Boolean,required:!1},as:{type:null,required:!1,default:`span`}},setup(e){let t=e,{forwardRef:n,currentElement:r}=W(),a=Q();k(()=>{a.valueElement=r});let o=w(()=>{let e=[],t=Array.from(a.optionsSet.value),n=e=>t.find(t=>Z(e,t.value,a.by));return e=Array.isArray(a.modelValue.value)?a.modelValue.value.map(e=>n(e)?.textContent??``):[n(a.modelValue.value)?.textContent??``],e.filter(Boolean)}),s=w(()=>o.value.length?o.value.join(`, `):t.placeholder);return(e,r)=>(f(),i(U(I),{ref:U(n),as:e.as,"as-child":e.asChild,style:{pointerEvents:`none`},"data-placeholder":o.value.length?void 0:t.placeholder},{default:E(()=>[v(e.$slots,`default`,{selectedLabel:o.value,modelValue:U(a).modelValue.value},()=>[C(G(s.value),1)])]),_:3},8,[`as`,`as-child`,`data-placeholder`]))}}),St=u({__name:`SelectViewport`,props:{nonce:{type:String,required:!1},asChild:{type:Boolean,required:!1},as:{type:null,required:!1}},setup(e){let t=e,{nonce:n}=K(t),r=Ge(n),i=$(),o=i.position===`item-aligned`?it():void 0,{forwardRef:s,currentElement:c}=W();k(()=>{i?.onViewportChange(c.value)});let u=L(0);function d(e){let t=e.currentTarget,{shouldExpandOnScrollRef:n,contentWrapper:r}=o??{};if(n?.value&&r?.value){let e=Math.abs(u.value-t.scrollTop);if(e>0){let n=window.innerHeight-20,i=Number.parseFloat(r.value.style.minHeight),a=Number.parseFloat(r.value.style.height),o=Math.max(i,a);if(o<n){let i=o+e,a=Math.min(n,i),s=i-a;r.value.style.height=`${a}px`,r.value.style.bottom===`0px`&&(t.scrollTop=s>0?s:0,r.value.style.justifyContent=`flex-end`)}}}u.value=t.scrollTop}return(e,n)=>(f(),S(l,null,[T(U(I),a({ref:U(s),"data-reka-select-viewport":``,role:`presentation`},{...e.$attrs,...t},{style:{position:`relative`,flex:1,overflow:`hidden auto`},onScroll:d}),{default:E(()=>[v(e.$slots,`default`)]),_:3},16),T(U(I),{as:`style`,nonce:U(r)},{default:E(()=>n[0]||=[C(` /* Hide scrollbars cross-browser and enable momentum scroll for touch devices */ [data-reka-select-viewport] { scrollbar-width:none; -ms-overflow-style: none; -webkit-overflow-scrolling: touch; } [data-reka-select-viewport]::-webkit-scrollbar { display: none; } `)]),_:1,__:[0]},8,[`nonce`])],64))}}),Ct=z(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]),wt=z(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]),Tt=z(`chevron-up`,[[`path`,{d:`m18 15-6-6-6 6`,key:`153udz`}]]),Et=u({__name:`Select`,props:{open:{type:Boolean},defaultOpen:{type:Boolean},defaultValue:{},modelValue:{},by:{type:[String,Function]},dir:{},multiple:{type:Boolean},autocomplete:{},disabled:{type:Boolean},name:{},required:{type:Boolean}},emits:[`update:modelValue`,`update:open`],setup(e,{emit:t}){let n=N(e,t);return(e,t)=>(f(),i(U(Qe),a({"data-slot":`select`},U(n)),{default:E(t=>[v(e.$slots,`default`,P(g(t)))]),_:3},16))}}),Dt=u({inheritAttrs:!1,__name:`SelectContent`,props:{forceMount:{type:Boolean},position:{default:`popper`},bodyLock:{type:Boolean},side:{},sideOffset:{},sideFlip:{type:Boolean},align:{},alignOffset:{},alignFlip:{type:Boolean},avoidCollisions:{type:Boolean},collisionBoundary:{},collisionPadding:{},arrowPadding:{},sticky:{},hideWhenDetached:{type:Boolean},positionStrategy:{},updatePositionStrategy:{},disableUpdateOnLayoutShift:{type:Boolean},prioritizePosition:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{}},emits:[`closeAutoFocus`,`escapeKeyDown`,`pointerDownOutside`],setup(e,{emit:t}){let n=e,r=t,s=N(x(n,`class`),r);return(t,r)=>(f(),i(U(gt),null,{default:E(()=>[T(U(lt),a({"data-slot":`select-content`},{...t.$attrs,...U(s)},{class:U(o)(`bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--reka-select-content-available-height) min-w-[8rem] overflow-x-hidden overflow-y-auto rounded-md border shadow-md`,e.position===`popper`&&`data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1`,n.class)}),{default:E(()=>[T(U(jt)),T(U(St),{class:_e(U(o)(`p-1`,e.position===`popper`&&`h-[var(--reka-select-trigger-height)] w-full min-w-[var(--reka-select-trigger-width)] scroll-my-1`))},{default:E(()=>[v(t.$slots,`default`)]),_:3},8,[`class`]),T(U(At))]),_:3},16,[`class`])]),_:3}))}}),Ot={class:`absolute right-2 flex size-3.5 items-center justify-center`},kt=u({__name:`SelectItem`,props:{value:{},disabled:{type:Boolean},textValue:{},asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=V(x(t,`class`));return(e,r)=>(f(),i(U(pt),a({"data-slot":`select-item`},U(n),{class:U(o)(`focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2`,t.class)}),{default:E(()=>[B(`span`,Ot,[T(U(mt),null,{default:E(()=>[v(e.$slots,`indicator-icon`,{},()=>[T(U(Ct),{class:`size-4`})])]),_:3})]),T(U(ht),null,{default:E(()=>[v(e.$slots,`default`)]),_:3})]),_:3},16,[`class`]))}}),At=u({__name:`SelectScrollDownButton`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=V(x(t,`class`));return(e,r)=>(f(),i(U(vt),a({"data-slot":`select-scroll-down-button`},U(n),{class:U(o)(`flex cursor-default items-center justify-center py-1`,t.class)}),{default:E(()=>[v(e.$slots,`default`,{},()=>[T(U(wt),{class:`size-4`})])]),_:3},16,[`class`]))}}),jt=u({__name:`SelectScrollUpButton`,props:{asChild:{type:Boolean},as:{},class:{}},setup(e){let t=e,n=V(x(t,`class`));return(e,r)=>(f(),i(U(yt),a({"data-slot":`select-scroll-up-button`},U(n),{class:U(o)(`flex cursor-default items-center justify-center py-1`,t.class)}),{default:E(()=>[v(e.$slots,`default`,{},()=>[T(U(Tt),{class:`size-4`})])]),_:3},16,[`class`]))}}),Mt=u({__name:`SelectTrigger`,props:{disabled:{type:Boolean},reference:{},asChild:{type:Boolean},as:{},class:{},size:{default:`default`}},setup(e){let t=e,n=V(x(t,`class`,`size`));return(r,s)=>(f(),i(U(bt),a({"data-slot":`select-trigger`,"data-size":e.size},U(n),{class:U(o)(`border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4`,t.class)}),{default:E(()=>[v(r.$slots,`default`),T(U(ut),{"as-child":``},{default:E(()=>[T(U(wt),{class:`size-4 opacity-50`})]),_:1})]),_:3},16,[`data-size`,`class`]))}}),Nt=u({__name:`SelectValue`,props:{placeholder:{},asChild:{type:Boolean},as:{}},setup(e){let t=e;return(e,n)=>(f(),i(U(xt),a({"data-slot":`select-value`},t),{default:E(()=>[v(e.$slots,`default`)]),_:3},16))}}),Pt={class:`container mx-auto p-4 sm:p-6 space-y-4 sm:space-y-6`},Ft={class:`text-2xl sm:text-3xl font-bold`},It={class:`grid grid-cols-2 sm:grid-cols-3 gap-3 sm:gap-4`},Lt={class:`space-y-2`},Rt={class:`space-y-2`},zt={class:`col-span-2 sm:col-span-1 flex items-end`},Bt={class:`space-y-2`},Vt={class:`w-8 sm:w-12 text-center`},Ht={class:`flex-1 min-w-0`},Ut={key:0,class:`space-y-1`},Wt={class:`flex items-center gap-2`},Gt={class:`font-semibold text-sm sm:text-base truncate`},Kt={class:`text-xs text-muted-foreground`},qt={key:1,class:`text-sm text-muted-foreground`},Jt={class:`flex gap-1 sm:gap-2 flex-shrink-0`},Yt=u({__name:`GalaxyView`,setup(n){let a=je(),o=Ae(),{t:s}=le(),u=L(null),p=L(1),m=L(1),h=L(1),g=L(1),v=L([]);k(()=>{a.currentPlanet&&(h.value=a.currentPlanet.position.galaxy,g.value=a.currentPlanet.position.system,p.value=h.value,m.value=g.value,b())});let y=(e,t)=>r(e,t).map(n=>{let r=ve(e,t,n.position),i=a.universePlanets[r]||null;return{position:n.position,planet:i}}),b=()=>{h.value=p.value,g.value=m.value,v.value=y(h.value,g.value)},x=()=>{a.currentPlanet&&(h.value=a.currentPlanet.position.galaxy,g.value=a.currentPlanet.position.system,p.value=h.value,m.value=g.value,b())},w=e=>e?e.ownerId===a.player.id:!1,D=e=>{a.currentPlanetId=e,o.push(`/overview`)},O=(e,t,n)=>{let r=e?e.position:{galaxy:h.value,system:g.value,position:n},i=`${r.galaxy}:${r.system}:${r.position}`,a=``,c=``;t===`spy`?(c=s(`galaxyView.scoutPlanetTitle`),a=s(`galaxyView.scoutPlanetMessage`).replace(`{coordinates}`,i)):t===`attack`?(c=s(`galaxyView.attackPlanetTitle`),a=s(`galaxyView.attackPlanetMessage`).replace(`{coordinates}`,i)):t===`colonize`&&(c=s(`galaxyView.colonizePlanetTitle`),a=s(`galaxyView.colonizePlanetMessage`).replace(`{coordinates}`,i)),u.value?.show({title:c,message:a,onConfirm:()=>{o.push({path:`/fleet`,query:{galaxy:r.galaxy,system:r.system,position:r.position,mission:t}})}})};return(n,r)=>(f(),S(`div`,Pt,[B(`h1`,Ft,G(U(s)(`galaxyView.title`)),1),T(U(pe),null,{default:E(()=>[T(U(ke),null,{default:E(()=>[T(U(be),null,{default:E(()=>[C(G(U(s)(`galaxyView.selectCoordinates`)),1)]),_:1})]),_:1}),T(U(de),null,{default:E(()=>[B(`div`,It,[B(`div`,Lt,[T(U(d),{for:`select-galaxy`,class:`text-xs sm:text-sm`},{default:E(()=>[C(G(U(s)(`galaxyView.galaxy`)),1)]),_:1}),(f(),i(U(Et),{key:U(a).locale,"model-value":String(p.value),"onUpdate:modelValue":r[0]||=e=>{p.value=Number(e),b()}},{default:E(()=>[T(U(Mt),{id:`select-galaxy`,class:`w-full`},{default:E(()=>[T(U(Nt),{placeholder:U(s)(`galaxyView.selectGalaxy`)},null,8,[`placeholder`])]),_:1}),T(U(Dt),null,{default:E(()=>[(f(),S(l,null,H(9,e=>T(U(kt),{key:e,value:String(e)},{default:E(()=>[C(G(U(s)(`galaxyView.galaxy`))+` `+G(e),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`model-value`]))]),B(`div`,Rt,[T(U(d),{for:`select-system`,class:`text-xs sm:text-sm`},{default:E(()=>[C(G(U(s)(`galaxyView.system`)),1)]),_:1}),(f(),i(U(Et),{key:`${U(a).locale}-system`,"model-value":String(m.value),"onUpdate:modelValue":r[1]||=e=>{m.value=Number(e),b()}},{default:E(()=>[T(U(Mt),{id:`select-system`,class:`w-full`},{default:E(()=>[T(U(Nt),{placeholder:U(s)(`galaxyView.selectSystem`)},null,8,[`placeholder`])]),_:1}),T(U(Dt),null,{default:E(()=>[(f(),S(l,null,H(10,e=>T(U(kt),{key:e,value:String(e)},{default:E(()=>[C(G(U(s)(`galaxyView.system`))+` `+G(e),1)]),_:2},1032,[`value`])),64))]),_:1})]),_:1},8,[`model-value`]))]),B(`div`,zt,[T(U(Y),{onClick:x,variant:`outline`,class:`w-full`},{default:E(()=>[T(U(ye),{class:`h-4 w-4 mr-2`}),C(` `+G(U(s)(`galaxyView.myPlanet`)),1)]),_:1})])])]),_:1})]),_:1}),T(U(pe),null,{default:E(()=>[T(U(ke),null,{default:E(()=>[T(U(be),null,{default:E(()=>[C(G(U(s)(`galaxyView.galaxy`))+` `+G(h.value)+`:`+G(g.value),1)]),_:1}),T(U(t),null,{default:E(()=>[C(G(U(s)(`galaxyView.totalPositions`)),1)]),_:1})]),_:1}),T(U(de),null,{default:E(()=>[B(`div`,Bt,[(f(!0),S(l,null,H(v.value,t=>(f(),S(`div`,{key:t.position,class:_e([`flex items-center gap-2 sm:gap-4 p-2 sm:p-3 border rounded-lg hover:bg-muted/50 transition-colors`,{"bg-blue-50 dark:bg-blue-950 border-blue-300 dark:border-blue-700":w(t.planet),"bg-muted/30":!t.planet}])},[B(`div`,Vt,[T(U(_),{variant:`outline`,class:`text-xs sm:text-sm`},{default:E(()=>[C(G(t.position),1)]),_:2},1024)]),B(`div`,Ht,[t.planet?(f(),S(`div`,Ut,[B(`div`,Wt,[B(`h3`,Gt,G(t.planet.name),1),w(t.planet)?(f(),i(U(_),{key:0,variant:`default`,class:`text-xs`},{default:E(()=>[C(G(U(s)(`galaxyView.mine`)),1)]),_:1})):(f(),i(U(_),{key:1,variant:`secondary`,class:`text-xs`},{default:E(()=>[C(G(U(s)(`galaxyView.hostile`)),1)]),_:1}))]),B(`p`,Kt,` [`+G(t.planet.position.galaxy)+`:`+G(t.planet.position.system)+`:`+G(t.planet.position.position)+`] `,1)])):(f(),S(`div`,qt,G(U(s)(`galaxyView.emptySlot`)),1))]),B(`div`,Jt,[t.planet&&!w(t.planet)?(f(),i(U(Y),{key:0,onClick:e=>O(t.planet,`spy`),variant:`outline`,size:`sm`,class:`h-8 w-8 p-0`,title:U(s)(`galaxyView.scout`)},{default:E(()=>[T(U(e),{class:`h-3 w-3 sm:h-4 sm:w-4`})]),_:1},8,[`onClick`,`title`])):R(``,!0),t.planet&&!w(t.planet)?(f(),i(U(Y),{key:1,onClick:e=>O(t.planet,`attack`),variant:`outline`,size:`sm`,class:`h-8 w-8 p-0`,title:U(s)(`galaxyView.attack`)},{default:E(()=>[T(U(ee),{class:`h-3 w-3 sm:h-4 sm:w-4`})]),_:1},8,[`onClick`,`title`])):R(``,!0),t.planet?R(``,!0):(f(),i(U(Y),{key:2,onClick:e=>O(null,`colonize`,t.position),variant:`outline`,size:`sm`,class:`h-8 w-8 p-0`,title:U(s)(`galaxyView.colonize`)},{default:E(()=>[T(U(c),{class:`h-3 w-3 sm:h-4 sm:w-4`})]),_:1},8,[`onClick`,`title`])),t.planet&&w(t.planet)?(f(),i(U(Y),{key:3,onClick:e=>D(t.planet.id),variant:`outline`,size:`sm`,class:`h-8 w-8 p-0`,title:U(s)(`galaxyView.switch`)},{default:E(()=>[T(U(ye),{class:`h-3 w-3 sm:h-4 sm:w-4`})]),_:1},8,[`onClick`,`title`])):R(``,!0)])],2))),128))])]),_:1})]),_:1}),T(Me,{ref_key:`actionDialog`,ref:u},null,512)]))}});export{Yt as default};