From 94ca4dd72c050f1f2cb9d92e1a202754e7fca809 Mon Sep 17 00:00:00 2001 From: Josh Siviour Date: Mon, 3 Aug 2026 22:30:42 +1000 Subject: [PATCH] fix(ec2): return RSA key pairs in PKCS#1 PEM and add a UI key-type selector (#683) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit get-password-data --priv-launch-key requires PEM, but ssh-keygen writes the OpenSSH container by default, so even an explicitly-RSA key pair failed with "Unable to decrypt password data using provided private key file" — which reads like a padding problem rather than a format one. AWS returns PKCS#1 PEM for RSA key pairs. OpenSSH reads that format for SSH either way. The create-key-pair UI gains a key-type selector, defaulting to the rsa the page already sent, with a hint that RSA is required for Windows password retrieval. The API default stays ed25519. Changing it is a separate decision. --- spinifex/handlers/ec2/key/service_impl.go | 12 ++- .../handlers/ec2/key/service_impl_test.go | 7 ++ .../spinifexui/frontend/dist/assets/_.js | 2 +- .../spinifexui/frontend/dist/assets/_auth.js | 2 +- .../frontend/dist/assets/_bucket.js | 2 +- .../frontend/dist/assets/_clusterName.js | 2 +- .../frontend/dist/assets/_clusterName2.js | 2 +- .../frontend/dist/assets/_groupName.js | 2 +- .../spinifexui/frontend/dist/assets/_id.js | 2 +- .../spinifexui/frontend/dist/assets/_id10.js | 2 +- .../spinifexui/frontend/dist/assets/_id11.js | 2 +- .../spinifexui/frontend/dist/assets/_id12.js | 2 +- .../spinifexui/frontend/dist/assets/_id13.js | 2 +- .../spinifexui/frontend/dist/assets/_id14.js | 2 +- .../spinifexui/frontend/dist/assets/_id15.js | 2 +- .../spinifexui/frontend/dist/assets/_id16.js | 2 +- .../spinifexui/frontend/dist/assets/_id17.js | 2 +- .../spinifexui/frontend/dist/assets/_id18.js | 4 +- .../spinifexui/frontend/dist/assets/_id2.js | 2 +- .../spinifexui/frontend/dist/assets/_id3.js | 2 +- .../spinifexui/frontend/dist/assets/_id4.js | 2 +- .../spinifexui/frontend/dist/assets/_id5.js | 2 +- .../spinifexui/frontend/dist/assets/_id6.js | 2 +- .../spinifexui/frontend/dist/assets/_id7.js | 2 +- .../spinifexui/frontend/dist/assets/_id8.js | 2 +- .../spinifexui/frontend/dist/assets/_id9.js | 2 +- .../dist/assets/_instanceProfileName.js | 2 +- .../frontend/dist/assets/_policyArn.js | 2 +- .../frontend/dist/assets/_roleName.js | 2 +- .../frontend/dist/assets/_serviceName.js | 2 +- .../frontend/dist/assets/_taskId.js | 2 +- .../frontend/dist/assets/_userName.js | 2 +- .../spinifexui/frontend/dist/assets/admin.js | 2 +- .../frontend/dist/assets/alert-dialog.js | 1 - .../frontend/dist/assets/allocate-address.js | 2 +- .../spinifexui/frontend/dist/assets/badge.js | 2 +- .../dist/assets/certificate-import-dialog.js | 2 +- .../frontend/dist/assets/create-bucket.js | 2 +- .../frontend/dist/assets/create-cluster.js | 2 +- .../frontend/dist/assets/create-group.js | 2 +- .../dist/assets/create-instance-profile.js | 2 +- .../dist/assets/create-internet-gateway.js | 2 +- .../frontend/dist/assets/create-key-pair.js | 1 - .../dist/assets/create-launch-template.js | 8 +- .../dist/assets/create-load-balancer.js | 4 +- .../dist/assets/create-nat-gateway.js | 4 +- .../dist/assets/create-placement-group.js | 2 +- .../frontend/dist/assets/create-policy.js | 2 +- .../frontend/dist/assets/create-role.js | 2 +- .../dist/assets/create-route-table.js | 2 +- .../dist/assets/create-security-group.js | 2 +- .../frontend/dist/assets/create-service.js | 2 +- .../frontend/dist/assets/create-snapshot.js | 2 +- .../frontend/dist/assets/create-subnet.js | 2 +- .../dist/assets/create-target-group.js | 2 +- .../frontend/dist/assets/create-user.js | 2 +- .../frontend/dist/assets/create-volume.js | 4 +- .../frontend/dist/assets/create-vpc.js | 2 +- .../dist/assets/delete-confirmation-dialog.js | 2 +- .../dist/assets/describe-addresses.js | 2 +- .../frontend/dist/assets/describe-images.js | 2 +- .../dist/assets/describe-instances.js | 2 +- .../dist/assets/describe-internet-gateways.js | 2 +- .../dist/assets/describe-key-pairs.js | 2 +- .../dist/assets/describe-launch-templates.js | 2 +- .../dist/assets/describe-load-balancers.js | 2 +- .../dist/assets/describe-nat-gateways.js | 2 +- .../dist/assets/describe-placement-groups.js | 2 +- .../dist/assets/describe-route-tables.js | 2 +- .../dist/assets/describe-security-groups.js | 2 +- .../dist/assets/describe-snapshots.js | 2 +- .../frontend/dist/assets/describe-subnets.js | 2 +- .../dist/assets/describe-target-groups.js | 2 +- .../frontend/dist/assets/describe-volumes.js | 2 +- .../frontend/dist/assets/describe-vpcs.js | 2 +- .../frontend/dist/assets/download.js | 1 - .../spinifexui/frontend/dist/assets/ecs2.js | 2 +- .../frontend/dist/assets/form-actions.js | 1 - .../frontend/dist/assets/import-key-pair.js | 4 +- .../spinifexui/frontend/dist/assets/index.js | 24 +++--- .../dist/assets/inline-policies-panel.js | 2 +- .../assets/launch-template-data-fields.js | 4 +- .../frontend/dist/assets/list-clusters.js | 2 +- .../frontend/dist/assets/list-clusters2.js | 2 +- .../frontend/dist/assets/list-groups.js | 2 +- .../dist/assets/list-instance-profiles.js | 2 +- .../frontend/dist/assets/list-policies.js | 2 +- .../frontend/dist/assets/list-repositories.js | 2 +- .../frontend/dist/assets/list-roles.js | 2 +- .../frontend/dist/assets/list-users.js | 2 +- .../spinifexui/frontend/dist/assets/login.js | 2 +- .../spinifexui/frontend/dist/assets/ls.js | 2 +- .../spinifexui/frontend/dist/assets/nodes.js | 2 +- .../dist/assets/register-task-definition.js | 2 +- .../frontend/dist/assets/run-task.js | 2 +- .../frontend/dist/assets/service-metrics.js | 2 +- .../dist/assets/system-image-required.js | 2 +- .../frontend/dist/assets/tags-editor.js | 2 +- .../frontend/dist/assets/target-group-form.js | 2 +- .../frontend/dist/assets/task-definitions.js | 2 +- .../frontend/dist/assets/triangle-alert.js | 1 - .../frontend/dist/assets/upload-button.js | 2 +- .../frontend/src/mutations/ec2.test.tsx | 20 ++++- .../spinifexui/frontend/src/mutations/ec2.ts | 2 +- .../_auth/ec2/(key)/create-key-pair.test.tsx | 77 +++++++++++++++++++ .../_auth/ec2/(key)/create-key-pair.tsx | 59 +++++++++++++- .../spinifexui/frontend/src/types/ec2.test.ts | 31 +++++++- .../spinifexui/frontend/src/types/ec2.ts | 3 + 108 files changed, 312 insertions(+), 134 deletions(-) delete mode 100644 spinifex/services/spinifexui/frontend/dist/assets/alert-dialog.js delete mode 100644 spinifex/services/spinifexui/frontend/dist/assets/create-key-pair.js delete mode 100644 spinifex/services/spinifexui/frontend/dist/assets/download.js delete mode 100644 spinifex/services/spinifexui/frontend/dist/assets/form-actions.js delete mode 100644 spinifex/services/spinifexui/frontend/dist/assets/triangle-alert.js create mode 100644 spinifex/services/spinifexui/frontend/src/routes/_auth/ec2/(key)/create-key-pair.test.tsx diff --git a/spinifex/handlers/ec2/key/service_impl.go b/spinifex/handlers/ec2/key/service_impl.go index b6302147a..139bf5dcd 100644 --- a/spinifex/handlers/ec2/key/service_impl.go +++ b/spinifex/handlers/ec2/key/service_impl.go @@ -92,7 +92,9 @@ func (s *KeyServiceImpl) CreateKeyPair(ctx context.Context, input *ec2.CreateKey return nil, errors.New(awserrors.ErrorInvalidKeyPairDuplicate) } - // Determine key type (default: ed25519, optional: rsa) + // Determine key type (default: ed25519, optional: rsa). This deviates from + // AWS, which defaults to rsa. Only rsa can wrap a Windows administrator + // password, so a Windows launch has to ask for it explicitly. keyType := "ed25519" if input.KeyType != nil { switch *input.KeyType { @@ -119,11 +121,13 @@ func (s *KeyServiceImpl) CreateKeyPair(ctx context.Context, input *ec2.CreateKey // Generate key pair using ssh-keygen var cmd *exec.Cmd if keyType == "ed25519" { - // ED25519 key (modern, recommended) + // ED25519 has no PEM representation, so it stays in OpenSSH format. cmd = exec.Command("ssh-keygen", "-t", "ed25519", "-f", privateKeyPath, "-N", "", "-C", "") } else { - // RSA 2048-bit key - cmd = exec.Command("ssh-keygen", "-t", "rsa", "-b", "2048", "-f", privateKeyPath, "-N", "", "-C", "") + // RSA 2048-bit in PKCS#1 PEM, as AWS returns it. OpenSSH reads that format + // for SSH either way, but GetPasswordData's --priv-launch-key cannot read + // the OpenSSH container at all. + cmd = exec.Command("ssh-keygen", "-t", "rsa", "-b", "2048", "-m", "PEM", "-f", privateKeyPath, "-N", "", "-C", "") } var stderr bytes.Buffer diff --git a/spinifex/handlers/ec2/key/service_impl_test.go b/spinifex/handlers/ec2/key/service_impl_test.go index 164578950..6ae39064c 100644 --- a/spinifex/handlers/ec2/key/service_impl_test.go +++ b/spinifex/handlers/ec2/key/service_impl_test.go @@ -185,6 +185,9 @@ func TestCreateKeyPair_ED25519(t *testing.T) { // Verify metadata stored in S3, carrying the key type it was created with. metaPath := "keys/" + testAccountID + "/" + *out.KeyPairId + ".json" assert.Contains(t, string(readStoredObject(t, store, metaPath)), `"KeyType":"ed25519"`) + + // ED25519 has no PEM representation, so it stays in the OpenSSH container. + assert.Contains(t, *out.KeyMaterial, "BEGIN OPENSSH PRIVATE KEY") } func TestCreateKeyPair_RSA(t *testing.T) { @@ -200,6 +203,10 @@ func TestCreateKeyPair_RSA(t *testing.T) { assert.Equal(t, "my-rsa-key", *out.KeyName) + // PKCS#1 PEM, as AWS returns it: get-password-data --priv-launch-key cannot + // read the OpenSSH container ssh-keygen writes by default. + assert.Contains(t, *out.KeyMaterial, "BEGIN RSA PRIVATE KEY") + // The key is generated per-run, so the digest is not knowable in advance. // Recompute it from the private key the caller was handed: that is what pins // the fingerprint to the private key rather than to the public one. diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_.js b/spinifex/services/spinifexui/frontend/dist/assets/_.js index d23edd99b..528e547cc 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{Jt as r,Kt as i,Yt as a,en as o}from"./auth.js";import{n as s,r as c,t as l}from"./upload-button.js";import{r as u}from"./s3.js";import{t as d}from"./s32.js";import{Xn as f,_n as p,mn as m,r as h}from"./index.js";var g=t(),_=e();function v(){let e=(0,g.c)(24),{bucket:t,_splat:v}=h.useParams(),y=r(v??``),{data:b}=f(d(t,y)),x=u(),S;e[0]===b.Contents?S=e[1]:(S=b.Contents??[],e[0]=b.Contents,e[1]=S);let C=S,w;e[2]===b.CommonPrefixes?w=e[3]:(w=b.CommonPrefixes??[],e[2]=b.CommonPrefixes,e[3]=w);let T=w,E=y.split(`/`).filter(Boolean),D=[{name:t,path:`/s3/ls/${t}`},...E.map((e,n)=>{let r=`${E.slice(0,n+1).join(`/`)}/`;return{name:e,path:`/s3/ls/${t}/${r}`}})],O=E.length>1?`/s3/ls/${t}/${E.slice(0,-1).join(`/`)}/`:`/s3/ls/${t}`,k;e[4]===O?k=e[5]:(k=(0,_.jsx)(p,{to:O,children:`Back`}),e[4]=O,e[5]=k);let A;e[6]!==t||e[7]!==y||e[8]!==x.isPending||e[9]!==x.mutateAsync?(A=(0,_.jsx)(l,{bucket:t,isPending:x.isPending,onUpload:x.mutateAsync,prefix:y}),e[6]=t,e[7]=y,e[8]=x.isPending,e[9]=x.mutateAsync,e[10]=A):A=e[10];let j;e[11]===x.error?j=e[12]:(j=x.error&&(0,_.jsx)(m,{error:x.error,msg:`Failed to upload object`}),e[11]=x.error,e[12]=j);let M;e[13]!==t||e[14]!==T||e[15]!==y?(M=T.length>0&&(0,_.jsxs)(`div`,{className:`mb-6`,children:[(0,_.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Folders`}),(0,_.jsx)(`div`,{className:`space-y-2`,children:T.map(e=>{if(!e.Prefix)return null;let n=o(a(e.Prefix,y)),r=i(e.Prefix,y);return(0,_.jsx)(c,{bucketName:t,folderName:n,fullPrefix:r},e.Prefix)})})]}),e[13]=t,e[14]=T,e[15]=y,e[16]=M):M=e[16];let N;e[17]!==t||e[18]!==C||e[19]!==y?(N=C.length>0&&(0,_.jsxs)(`div`,{className:`space-y-2`,children:[(0,_.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Objects`}),C.map(e=>{if(!e.Key)return null;let n=a(e.Key,y),r=i(e.Key,y);return(0,_.jsx)(s,{bucketName:t,displayName:n,fullKey:r,object:e},e.Key)})]}),e[17]=t,e[18]=C,e[19]=y,e[20]=N):N=e[20];let P;return e[21]!==T.length||e[22]!==C.length?(P=C.length===0&&T.length===0&&(0,_.jsx)(`p`,{className:`text-muted-foreground`,children:`No objects found in this folder.`}),e[21]=T.length,e[22]=C.length,e[23]=P):P=e[23],(0,_.jsxs)(_.Fragment,{children:[k,(0,_.jsx)(`div`,{className:`mb-6`,children:(0,_.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,_.jsx)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:D.map((e,t)=>(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t>0&&(0,_.jsx)(`span`,{children:`/`}),t===D.length-1?(0,_.jsx)(`span`,{className:`text-foreground`,children:e.name}):(0,_.jsx)(n,{className:`hover:text-foreground`,to:e.path,children:e.name})]},e.path))}),A]})}),j,M,N,P]})}export{v as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{Jt as r,Kt as i,Yt as a,en as o}from"./auth.js";import{n as s,r as c,t as l}from"./upload-button.js";import{r as u}from"./s3.js";import{t as d}from"./s32.js";import{$n as f,Sn as p,Tn as m,r as h}from"./index.js";var g=t(),_=e();function v(){let e=(0,g.c)(24),{bucket:t,_splat:v}=h.useParams(),y=r(v??``),{data:b}=f(d(t,y)),x=u(),S;e[0]===b.Contents?S=e[1]:(S=b.Contents??[],e[0]=b.Contents,e[1]=S);let C=S,w;e[2]===b.CommonPrefixes?w=e[3]:(w=b.CommonPrefixes??[],e[2]=b.CommonPrefixes,e[3]=w);let T=w,E=y.split(`/`).filter(Boolean),D=[{name:t,path:`/s3/ls/${t}`},...E.map((e,n)=>{let r=`${E.slice(0,n+1).join(`/`)}/`;return{name:e,path:`/s3/ls/${t}/${r}`}})],O=E.length>1?`/s3/ls/${t}/${E.slice(0,-1).join(`/`)}/`:`/s3/ls/${t}`,k;e[4]===O?k=e[5]:(k=(0,_.jsx)(m,{to:O,children:`Back`}),e[4]=O,e[5]=k);let A;e[6]!==t||e[7]!==y||e[8]!==x.isPending||e[9]!==x.mutateAsync?(A=(0,_.jsx)(l,{bucket:t,isPending:x.isPending,onUpload:x.mutateAsync,prefix:y}),e[6]=t,e[7]=y,e[8]=x.isPending,e[9]=x.mutateAsync,e[10]=A):A=e[10];let j;e[11]===x.error?j=e[12]:(j=x.error&&(0,_.jsx)(p,{error:x.error,msg:`Failed to upload object`}),e[11]=x.error,e[12]=j);let M;e[13]!==t||e[14]!==T||e[15]!==y?(M=T.length>0&&(0,_.jsxs)(`div`,{className:`mb-6`,children:[(0,_.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Folders`}),(0,_.jsx)(`div`,{className:`space-y-2`,children:T.map(e=>{if(!e.Prefix)return null;let n=o(a(e.Prefix,y)),r=i(e.Prefix,y);return(0,_.jsx)(c,{bucketName:t,folderName:n,fullPrefix:r},e.Prefix)})})]}),e[13]=t,e[14]=T,e[15]=y,e[16]=M):M=e[16];let N;e[17]!==t||e[18]!==C||e[19]!==y?(N=C.length>0&&(0,_.jsxs)(`div`,{className:`space-y-2`,children:[(0,_.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Objects`}),C.map(e=>{if(!e.Key)return null;let n=a(e.Key,y),r=i(e.Key,y);return(0,_.jsx)(s,{bucketName:t,displayName:n,fullKey:r,object:e},e.Key)})]}),e[17]=t,e[18]=C,e[19]=y,e[20]=N):N=e[20];let P;return e[21]!==T.length||e[22]!==C.length?(P=C.length===0&&T.length===0&&(0,_.jsx)(`p`,{className:`text-muted-foreground`,children:`No objects found in this folder.`}),e[21]=T.length,e[22]=C.length,e[23]=P):P=e[23],(0,_.jsxs)(_.Fragment,{children:[k,(0,_.jsx)(`div`,{className:`mb-6`,children:(0,_.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[(0,_.jsx)(`div`,{className:`flex items-center gap-2 text-sm text-muted-foreground`,children:D.map((e,t)=>(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[t>0&&(0,_.jsx)(`span`,{children:`/`}),t===D.length-1?(0,_.jsx)(`span`,{className:`text-foreground`,children:e.name}):(0,_.jsx)(n,{className:`hover:text-foreground`,to:e.path,children:e.name})]},e.path))}),A]})}),j,M,N,P]})}export{v as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_auth.js b/spinifex/services/spinifexui/frontend/dist/assets/_auth.js index a8930f5b4..8c3048b65 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_auth.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_auth.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{$t as a}from"./auth.js";import{t as o}from"./createLucideIcon.js";import{t as s}from"./chevron-down.js";import{t as c}from"./chevron-right.js";import{A as l,M as u,_ as d,d as f,l as p,n as m,p as h,w as g}from"./ec2.js";import{n as _}from"./s32.js";import{Bn as v,Dn as ee,Hn as y,Kn as b,Un as x,Vn as te,Wn as S,Zn as C,dn as w,qn as T,zn as E}from"./index.js";import{t as D}from"./state-badge.js";import{r as O,t as k}from"./admin.js";import{t as ne}from"./badge.js";import{a as A,i as j,n as M,o as N,r as P,t as F}from"./card.js";var I=o(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),L=o(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),R=o(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]),re=o(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),z=r(),B=t(n(),1),V=e(),H=[{name:`Air-gap Support`,key:`airgap`},{name:`NVIDIA Bluefield DPU`,key:`bluefield`},{name:`NVIDIA MIG Support`,key:`mig`}];function U(e){let t=Math.floor(e/86400),n=Math.floor(e%86400/3600);if(t>0)return`${t}d ${n}h`;let r=Math.floor(e%3600/60);return n>0?`${n}h ${r}m`:`${r}m`}function W(){let e=(0,z.c)(110),{isAdmin:t,version:n,license:r}=ee(),[i,a]=(0,B.useState)(!1),o;e[0]===t?o=e[1]:(o={...k,enabled:t},e[0]=t,e[1]=o);let{data:l}=C(o),u;e[2]===t?u=e[3]:(u={...O,enabled:t},e[2]=t,e[3]=u);let{data:d}=C(u);if(!t||!n)return null;let f,p,m,h,g,_,v,y,b,x,S,w,T,E,D,j,M,I,L;if(e[4]!==r||e[5]!==l?.cluster_mode||e[6]!==l?.nodes||e[7]!==n.arch||e[8]!==n.commit||e[9]!==n.os||e[10]!==n.version||e[11]!==d?.vms){h=l?.nodes??[];let t;e[31]===d?.vms?t=e[32]:(t=d?.vms??[],e[31]=d?.vms,e[32]=t);let i=t,a=l?.cluster_mode??`single-node`;m=r===`open-source`;let o=h[0]?.region??null,s=h.reduce(se,0),c=h.reduce(oe,0),u=h.reduce(ae,0),ee=h.reduce(ie,0);S=`mb-6 space-y-4`,y=`grid grid-cols-1 gap-4 md:grid-cols-3`;let C;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,V.jsx)(A,{className:`pb-2`,children:(0,V.jsxs)(N,{className:`flex items-center gap-2 text-sm`,children:[(0,V.jsx)(re,{className:`size-3.5`}),`Spinifex Info`]})}),e[33]=C):C=e[33];let O;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Version`}),e[34]=O):O=e[34];let k;e[35]===n.version?k=e[36]:(k=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[O,(0,V.jsx)(`span`,{className:`font-mono`,children:n.version})]}),e[35]=n.version,e[36]=k);let R;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Commit`}),e[37]=R):R=e[37];let z;e[38]===n.commit?z=e[39]:(z=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[R,(0,V.jsx)(`span`,{className:`font-mono`,children:n.commit})]}),e[38]=n.commit,e[39]=z);let B;e[40]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Platform`}),e[40]=B):B=e[40];let H;e[41]!==n.arch||e[42]!==n.os?(H=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[B,(0,V.jsxs)(`span`,{children:[n.os,`/`,n.arch]})]}),e[41]=n.arch,e[42]=n.os,e[43]=H):H=e[43],b=(0,V.jsxs)(F,{children:[C,(0,V.jsxs)(P,{className:`space-y-1 text-xs`,children:[k,z,H,o&&(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Region`}),(0,V.jsx)(`span`,{children:o})]})]})]});let U;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,V.jsx)(A,{className:`pb-2`,children:(0,V.jsx)(N,{className:`text-sm`,children:`License & Support`})}),e[44]=U):U=e[44];let W;e[45]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`License`}),e[45]=W):W=e[45];let ce=m?`secondary`:`default`,G=m?`Open Source (AGPLv3)`:`Commercial`,K;e[46]!==ce||e[47]!==G?(K=(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[W,(0,V.jsx)(ne,{variant:ce,children:G})]}),e[46]=ce,e[47]=G,e[48]=K):K=e[48];let q;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Support`}),e[49]=q):q=e[49];let J=m?`Community`:`Standard`,Y;e[50]===J?Y=e[51]:(Y=(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[q,(0,V.jsx)(`span`,{children:J})]}),e[50]=J,e[51]=Y);let X;e[52]===m?X=e[53]:(X=m&&(0,V.jsx)(`a`,{href:`https://mulgadc.com/purchase`,target:`_blank`,rel:`noopener noreferrer`,className:`mt-2 block text-xs font-medium text-primary hover:underline`,children:`Upgrade to Commercial →`}),e[52]=m,e[53]=X),e[54]!==K||e[55]!==Y||e[56]!==X?(x=(0,V.jsxs)(F,{children:[U,(0,V.jsxs)(P,{className:`space-y-2 text-xs`,children:[K,Y,X]})]}),e[54]=K,e[55]=Y,e[56]=X,e[57]=x):x=e[57],p=F,e[58]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,V.jsx)(A,{className:`pb-2`,children:(0,V.jsxs)(N,{className:`flex items-center gap-2 text-sm`,children:[(0,V.jsx)(te,{className:`size-3.5`}),`Cluster Status`]})}),e[58]=v):v=e[58],f=P,M=`space-y-2 text-xs`,e[59]===a?I=e[60]:(I=(0,V.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,V.jsx)(ne,{variant:`outline`,children:a})}),e[59]=a,e[60]=I);let Z;e[61]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Nodes`}),e[61]=Z):Z=e[61],L=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[Z,(0,V.jsx)(`span`,{children:h.length})]});let Q;e[62]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Instances`}),e[62]=Q):Q=e[62],e[63]===i.length?g=e[64]:(g=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[Q,(0,V.jsx)(`span`,{children:i.length})]}),e[63]=i.length,e[64]=g);let $;e[65]===Symbol.for(`react.memo_cache_sentinel`)?($=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`vCPU`}),e[65]=$):$=e[65],_=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[$,(0,V.jsxs)(`span`,{children:[c,` / `,s]})]}),D=`flex justify-between`,e[66]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Memory`}),e[66]=j):j=e[66],w=ee.toFixed(1),T=` / `,E=u.toFixed(1),e[4]=r,e[5]=l?.cluster_mode,e[6]=l?.nodes,e[7]=n.arch,e[8]=n.commit,e[9]=n.os,e[10]=n.version,e[11]=d?.vms,e[12]=f,e[13]=p,e[14]=m,e[15]=h,e[16]=g,e[17]=_,e[18]=v,e[19]=y,e[20]=b,e[21]=x,e[22]=S,e[23]=w,e[24]=T,e[25]=E,e[26]=D,e[27]=j,e[28]=M,e[29]=I,e[30]=L}else f=e[12],p=e[13],m=e[14],h=e[15],g=e[16],_=e[17],v=e[18],y=e[19],b=e[20],x=e[21],S=e[22],w=e[23],T=e[24],E=e[25],D=e[26],j=e[27],M=e[28],I=e[29],L=e[30];let U;e[67]!==w||e[68]!==T||e[69]!==E?(U=(0,V.jsxs)(`span`,{children:[w,T,E,` GB`]}),e[67]=w,e[68]=T,e[69]=E,e[70]=U):U=e[70];let W;e[71]!==U||e[72]!==D||e[73]!==j?(W=(0,V.jsxs)(`div`,{className:D,children:[j,U]}),e[71]=U,e[72]=D,e[73]=j,e[74]=W):W=e[74];let G;e[75]!==f||e[76]!==g||e[77]!==_||e[78]!==W||e[79]!==M||e[80]!==I||e[81]!==L?(G=(0,V.jsxs)(f,{className:M,children:[I,L,g,_,W]}),e[75]=f,e[76]=g,e[77]=_,e[78]=W,e[79]=M,e[80]=I,e[81]=L,e[82]=G):G=e[82];let K;e[83]!==p||e[84]!==v||e[85]!==G?(K=(0,V.jsxs)(p,{children:[v,G]}),e[83]=p,e[84]=v,e[85]=G,e[86]=K):K=e[86];let q;e[87]!==y||e[88]!==b||e[89]!==x||e[90]!==K?(q=(0,V.jsxs)(`div`,{className:y,children:[b,x,K]}),e[87]=y,e[88]=b,e[89]=x,e[90]=K,e[91]=q):q=e[91];let J;e[92]!==h||e[93]!==i?(J=h.length>0&&(0,V.jsxs)(F,{children:[(0,V.jsx)(A,{className:`pb-0`,children:(0,V.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 text-sm font-medium`,onClick:()=>a(!i),children:[i?(0,V.jsx)(s,{className:`size-3.5`}):(0,V.jsx)(c,{className:`size-3.5`}),`Nodes (`,h.length,`)`]})}),i&&(0,V.jsx)(P,{className:`pt-2`,children:(0,V.jsx)(ce,{nodes:h})})]}),e[92]=h,e[93]=i,e[94]=J):J=e[94];let Y;e[95]===Symbol.for(`react.memo_cache_sentinel`)?(Y=(0,V.jsx)(A,{className:`pb-2`,children:(0,V.jsx)(N,{className:`text-sm`,children:`Commercial Add-ons`})}),e[95]=Y):Y=e[95];let X;e[96]===m?X=e[97]:(X=H.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,V.jsx)(`span`,{className:m?`text-muted-foreground`:void 0,children:e.name}),m?(0,V.jsx)(R,{className:`size-3 text-muted-foreground`}):(0,V.jsx)(ne,{variant:`outline`,className:`text-[0.625rem]`,children:`Active`})]},e.key)),e[96]=m,e[97]=X);let Z;e[98]===X?Z=e[99]:(Z=(0,V.jsx)(`div`,{className:`space-y-2`,children:X}),e[98]=X,e[99]=Z);let Q;e[100]===m?Q=e[101]:(Q=m&&(0,V.jsx)(`a`,{href:`https://mulgadc.com/purchase`,target:`_blank`,rel:`noopener noreferrer`,className:`mt-3 block text-xs font-medium text-primary hover:underline`,children:`Learn more about commercial features →`}),e[100]=m,e[101]=Q);let $;e[102]!==Z||e[103]!==Q?($=(0,V.jsxs)(F,{children:[Y,(0,V.jsxs)(P,{children:[Z,Q]})]}),e[102]=Z,e[103]=Q,e[104]=$):$=e[104];let le;return e[105]!==S||e[106]!==q||e[107]!==J||e[108]!==$?(le=(0,V.jsxs)(`div`,{className:S,children:[q,J,$]}),e[105]=S,e[106]=q,e[107]=J,e[108]=$,e[109]=le):le=e[109],le}function ie(e,t){return e+t.alloc_mem_gb}function ae(e,t){return e+t.total_mem_gb}function oe(e,t){return e+t.alloc_vcpu}function se(e,t){return e+t.total_vcpu}function ce(e){let t=(0,z.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Name`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Status`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Roles`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`IP`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Region`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`AZ`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Uptime`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`EC2`}),(0,V.jsx)(`th`,{className:`pb-1 font-medium`,children:`Services`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(G),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,V.jsx)(`div`,{className:`overflow-x-auto`,children:(0,V.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,V.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function G(e){return(0,V.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,V.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.node}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,V.jsx)(ne,{variant:e.status===`Ready`?`default`:`secondary`,className:`text-[0.625rem]`,children:e.status})}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,V.jsxs)(`div`,{className:`flex gap-1`,children:[e.nats_role&&(0,V.jsxs)(`span`,{className:`text-muted-foreground`,children:[`nats:`,e.nats_role]}),e.predastore_role&&(0,V.jsxs)(`span`,{className:`text-muted-foreground`,children:[`ps:`,e.predastore_role]})]})}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.host}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.region}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.az}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:U(e.uptime)}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.vm_count}),(0,V.jsx)(`td`,{className:`py-1.5`,children:(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.services.length})})]},e.node)}var K=5;function q(){let e=(0,z.c)(11),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,V.jsx)(w,{title:`Dashboard`}),n=(0,V.jsx)(W,{}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(Q,{})}),e[2]=r):r=e[2];let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(me,{})}),e[3]=i):i=e[3];let a;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(ye,{})}),e[4]=a):a=e[4];let o;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(xe,{})}),e[5]=o):o=e[5];let s;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(Ce,{})}),e[6]=s):s=e[6];let c;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(Te,{})}),e[7]=c):c=e[7];let l;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(De,{})}),e[8]=l):l=e[8];let u;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(je,{})}),e[9]=u):u=e[9];let d;return e[10]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,V.jsxs)(V.Fragment,{children:[t,n,(0,V.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3`,children:[r,i,a,o,s,c,l,u,(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(ke,{})})]})]}),e[10]=d):d=e[10],d}function J(){let e=(0,z.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,V.jsx)(A,{children:(0,V.jsx)(`div`,{className:`h-4 w-32 animate-pulse rounded bg-muted`})}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,V.jsxs)(F,{children:[t,(0,V.jsx)(P,{children:(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`div`,{className:`h-3 w-48 animate-pulse rounded bg-muted`}),(0,V.jsx)(`div`,{className:`h-3 w-36 animate-pulse rounded bg-muted`})]})})]}),e[1]=n):n=e[1],n}function Y(e){let t=(0,z.c)(16),{title:n,icon:r,count:a,to:o,children:s}=e,c;t[0]!==r||t[1]!==n?(c=(0,V.jsxs)(N,{className:`flex items-center gap-2`,children:[r,n]}),t[0]=r,t[1]=n,t[2]=c):c=t[2];let l;t[3]===a?l=t[4]:(l=(0,V.jsx)(M,{children:(0,V.jsx)(`span`,{className:`rounded-md bg-muted px-2 py-0.5 text-xs font-semibold tabular-nums`,children:a})}),t[3]=a,t[4]=l);let u;t[5]!==c||t[6]!==l?(u=(0,V.jsxs)(A,{children:[c,l]}),t[5]=c,t[6]=l,t[7]=u):u=t[7];let d;t[8]===s?d=t[9]:(d=(0,V.jsx)(P,{children:s}),t[8]=s,t[9]=d);let f;t[10]===o?f=t[11]:(f=(0,V.jsx)(j,{children:(0,V.jsx)(i,{to:o,className:`text-xs font-medium text-primary hover:underline`,children:`View all →`})}),t[10]=o,t[11]=f);let p;return t[12]!==u||t[13]!==d||t[14]!==f?(p=(0,V.jsxs)(F,{children:[u,d,f]}),t[12]=u,t[13]=d,t[14]=f,t[15]=p):p=t[15],p}function X(e){let t=(0,z.c)(2),{total:n}=e;if(n<=K)return null;let r=n-K,i;return t[0]===r?i=t[1]:(i=(0,V.jsxs)(`p`,{className:`mt-1 text-[0.625rem] text-muted-foreground`,children:[`+`,r,` more`]}),t[0]=r,t[1]=i),i}function Z(e){let t=(0,z.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,V.jsx)(`div`,{className:`flex items-center justify-between py-0.5 text-xs`,children:n}),t[0]=n,t[1]=r),r}function Q(){let e=(0,z.c)(16),{data:t}=C(p),n,r,i,a,o;if(e[0]!==t?.Reservations){let s=t?.Reservations?.flatMap(pe)??[];n=s.filter(fe),i=s.filter(de),a=s.filter(ue),r=s.filter(le),o=[...i,...r].slice(0,K),e[0]=t?.Reservations,e[1]=n,e[2]=r,e[3]=i,e[4]=a,e[5]=o}else n=e[1],r=e[2],i=e[3],a=e[4],o=e[5];let s=o,c;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,V.jsx)(b,{className:`size-3.5`}),e[6]=c):c=e[6];let l;e[7]!==n.length||e[8]!==s||e[9]!==r||e[10]!==i||e[11]!==a?(l=n.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No instances`}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`mb-2 flex gap-3 text-[0.625rem] text-muted-foreground`,children:[(0,V.jsxs)(`span`,{children:[i.length,` running`]}),(0,V.jsxs)(`span`,{children:[a.length,` stopped`]})]}),(0,V.jsx)(`div`,{className:`space-y-0.5`,children:s.map($)}),(0,V.jsx)(X,{total:i.length+r.length})]}),e[7]=n.length,e[8]=s,e[9]=r,e[10]=i,e[11]=a,e[12]=l):l=e[12];let u;return e[13]!==n.length||e[14]!==l?(u=(0,V.jsx)(Y,{title:`Instances`,icon:c,count:n.length,to:`/ec2/describe-instances`,children:l}),e[13]=n.length,e[14]=l,e[15]=u):u=e[15],u}function $(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.InstanceId}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.InstanceType})]},e.InstanceId)}function le(e){return e.State?.Name===`pending`}function ue(e){return e.State?.Name===`stopped`}function de(e){return e.State?.Name===`running`}function fe(e){return e.State?.Name!==`terminated`}function pe(e){return e.Instances??[]}function me(){let e=(0,z.c)(3),{data:t}=C(l),n;if(e[0]!==t?.Volumes){let r=t?.Volumes??[],i=r.reduce(ve,0),a=r.filter(_e),o=r.filter(ge),s=r.slice(0,K),c;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,V.jsx)(I,{className:`size-3.5`}),e[2]=c):c=e[2],n=(0,V.jsx)(Y,{title:`Volumes`,icon:c,count:r.length,to:`/ec2/describe-volumes`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No volumes`}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`mb-2 flex gap-3 text-[0.625rem] text-muted-foreground`,children:[(0,V.jsxs)(`span`,{children:[i,` GiB total`]}),(0,V.jsxs)(`span`,{children:[a.length,` in-use`]}),(0,V.jsxs)(`span`,{children:[o.length,` available`]})]}),(0,V.jsx)(`div`,{className:`space-y-0.5`,children:s.map(he)}),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.Volumes,e[1]=n}else n=e[1];return n}function he(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.VolumeId}),(0,V.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,V.jsxs)(`span`,{className:`text-muted-foreground`,children:[e.Size,` GiB`]}),(0,V.jsx)(D,{state:e.State})]})]},e.VolumeId)}function ge(e){return e.State===`available`}function _e(e){return e.State===`in-use`}function ve(e,t){return e+(t.Size??0)}function ye(){let e=(0,z.c)(3),{data:t}=C(u),n;if(e[0]!==t?.Vpcs){let r=t?.Vpcs??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(x,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`VPCs`,icon:a,count:r.length,to:`/ec2/describe-vpcs`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No VPCs`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(be),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.Vpcs,e[1]=n}else n=e[1];return n}function be(e){let t=a(e.Tags);return(0,V.jsxs)(Z,{children:[(0,V.jsxs)(`span`,{className:`font-mono`,children:[e.VpcId,t&&(0,V.jsxs)(`span`,{className:`ml-1 font-sans text-muted-foreground`,children:[`(`,t,`)`]})]}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.CidrBlock})]},e.VpcId)}function xe(){let e=(0,z.c)(3),{data:t}=C(h),n;if(e[0]!==t?.KeyPairs){let r=t?.KeyPairs??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(S,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`Key Pairs`,icon:a,count:r.length,to:`/ec2/describe-key-pairs`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No key pairs`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Se),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.KeyPairs,e[1]=n}else n=e[1];return n}function Se(e){return(0,V.jsx)(Z,{children:(0,V.jsx)(`span`,{className:`font-mono`,children:e.KeyName})},e.KeyPairId)}function Ce(){let e=(0,z.c)(3),{data:t}=C(_),n;if(e[0]!==t?.Buckets){let r=t?.Buckets??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(L,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`S3 Buckets`,icon:a,count:r.length,to:`/s3/ls`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No buckets`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(we),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.Buckets,e[1]=n}else n=e[1];return n}function we(e){return(0,V.jsx)(Z,{children:(0,V.jsx)(`span`,{className:`font-mono`,children:e.Name})},e.Name)}function Te(){let e=(0,z.c)(3),{data:t}=C(g),n;if(e[0]!==t?.SecurityGroups){let r=t?.SecurityGroups??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(v,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`Security Groups`,icon:a,count:r.length,to:`/ec2/describe-security-groups`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No security groups`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Ee),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.SecurityGroups,e[1]=n}else n=e[1];return n}function Ee(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.GroupName}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.VpcId})]},e.GroupId)}function De(){let e=(0,z.c)(3),{data:t}=C(d),n;if(e[0]!==t?.NatGateways){let r=t?.NatGateways??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(E,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`NAT Gateways`,icon:a,count:r.length,to:`/ec2/describe-nat-gateways`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No NAT gateways`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Oe),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.NatGateways,e[1]=n}else n=e[1];return n}function Oe(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.NatGatewayId}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.State})]},e.NatGatewayId)}function ke(){let e=(0,z.c)(3),{data:t}=C(f),n;if(e[0]!==t?.InternetGateways){let r=t?.InternetGateways??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(y,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`Internet Gateways`,icon:a,count:r.length,to:`/ec2/describe-internet-gateways`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No internet gateways`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Ae),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.InternetGateways,e[1]=n}else n=e[1];return n}function Ae(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.InternetGatewayId}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.Attachments?.[0]?.VpcId?`attached`:`detached`})]},e.InternetGatewayId)}function je(){let e=(0,z.c)(3),{data:t}=C(m),n;if(e[0]!==t?.Addresses){let r=t?.Addresses??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(T,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`Elastic IPs`,icon:a,count:r.length,to:`/ec2/describe-addresses`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No Elastic IPs`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Me),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.Addresses,e[1]=n}else n=e[1];return n}function Me(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.PublicIp}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.AssociationId?`associated`:`available`})]},e.AllocationId)}export{q as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{$t as a}from"./auth.js";import{t as o}from"./createLucideIcon.js";import{t as s}from"./chevron-down.js";import{t as c}from"./chevron-right.js";import{A as l,M as u,_ as d,d as f,l as p,n as m,p as h,w as g}from"./ec2.js";import{n as _}from"./s32.js";import{Bn as v,Fn as ee,Gn as y,Hn as b,Jn as x,Kn as S,Un as te,Wn as C,Yn as w,er as T,yn as E}from"./index.js";import{t as D}from"./state-badge.js";import{r as O,t as k}from"./admin.js";import{t as ne}from"./badge.js";import{a as A,i as j,n as M,o as N,r as P,t as F}from"./card.js";var I=o(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),L=o(`folder-open`,[[`path`,{d:`m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2`,key:`usdka0`}]]),R=o(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]),re=o(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),z=r(),B=t(n(),1),V=e(),H=[{name:`Air-gap Support`,key:`airgap`},{name:`NVIDIA Bluefield DPU`,key:`bluefield`},{name:`NVIDIA MIG Support`,key:`mig`}];function U(e){let t=Math.floor(e/86400),n=Math.floor(e%86400/3600);if(t>0)return`${t}d ${n}h`;let r=Math.floor(e%3600/60);return n>0?`${n}h ${r}m`:`${r}m`}function W(){let e=(0,z.c)(110),{isAdmin:t,version:n,license:r}=ee(),[i,a]=(0,B.useState)(!1),o;e[0]===t?o=e[1]:(o={...k,enabled:t},e[0]=t,e[1]=o);let{data:l}=T(o),u;e[2]===t?u=e[3]:(u={...O,enabled:t},e[2]=t,e[3]=u);let{data:d}=T(u);if(!t||!n)return null;let f,p,m,h,g,_,v,y,b,x,S,C,w,E,D,j,M,I,L;if(e[4]!==r||e[5]!==l?.cluster_mode||e[6]!==l?.nodes||e[7]!==n.arch||e[8]!==n.commit||e[9]!==n.os||e[10]!==n.version||e[11]!==d?.vms){h=l?.nodes??[];let t;e[31]===d?.vms?t=e[32]:(t=d?.vms??[],e[31]=d?.vms,e[32]=t);let i=t,a=l?.cluster_mode??`single-node`;m=r===`open-source`;let o=h[0]?.region??null,s=h.reduce(se,0),c=h.reduce(oe,0),u=h.reduce(ae,0),ee=h.reduce(ie,0);S=`mb-6 space-y-4`,y=`grid grid-cols-1 gap-4 md:grid-cols-3`;let T;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,V.jsx)(A,{className:`pb-2`,children:(0,V.jsxs)(N,{className:`flex items-center gap-2 text-sm`,children:[(0,V.jsx)(re,{className:`size-3.5`}),`Spinifex Info`]})}),e[33]=T):T=e[33];let O;e[34]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Version`}),e[34]=O):O=e[34];let k;e[35]===n.version?k=e[36]:(k=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[O,(0,V.jsx)(`span`,{className:`font-mono`,children:n.version})]}),e[35]=n.version,e[36]=k);let R;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Commit`}),e[37]=R):R=e[37];let z;e[38]===n.commit?z=e[39]:(z=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[R,(0,V.jsx)(`span`,{className:`font-mono`,children:n.commit})]}),e[38]=n.commit,e[39]=z);let B;e[40]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Platform`}),e[40]=B):B=e[40];let H;e[41]!==n.arch||e[42]!==n.os?(H=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[B,(0,V.jsxs)(`span`,{children:[n.os,`/`,n.arch]})]}),e[41]=n.arch,e[42]=n.os,e[43]=H):H=e[43],b=(0,V.jsxs)(F,{children:[T,(0,V.jsxs)(P,{className:`space-y-1 text-xs`,children:[k,z,H,o&&(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Region`}),(0,V.jsx)(`span`,{children:o})]})]})]});let U;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,V.jsx)(A,{className:`pb-2`,children:(0,V.jsx)(N,{className:`text-sm`,children:`License & Support`})}),e[44]=U):U=e[44];let W;e[45]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`License`}),e[45]=W):W=e[45];let ce=m?`secondary`:`default`,G=m?`Open Source (AGPLv3)`:`Commercial`,K;e[46]!==ce||e[47]!==G?(K=(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[W,(0,V.jsx)(ne,{variant:ce,children:G})]}),e[46]=ce,e[47]=G,e[48]=K):K=e[48];let q;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Support`}),e[49]=q):q=e[49];let J=m?`Community`:`Standard`,Y;e[50]===J?Y=e[51]:(Y=(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[q,(0,V.jsx)(`span`,{children:J})]}),e[50]=J,e[51]=Y);let X;e[52]===m?X=e[53]:(X=m&&(0,V.jsx)(`a`,{href:`https://mulgadc.com/purchase`,target:`_blank`,rel:`noopener noreferrer`,className:`mt-2 block text-xs font-medium text-primary hover:underline`,children:`Upgrade to Commercial →`}),e[52]=m,e[53]=X),e[54]!==K||e[55]!==Y||e[56]!==X?(x=(0,V.jsxs)(F,{children:[U,(0,V.jsxs)(P,{className:`space-y-2 text-xs`,children:[K,Y,X]})]}),e[54]=K,e[55]=Y,e[56]=X,e[57]=x):x=e[57],p=F,e[58]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,V.jsx)(A,{className:`pb-2`,children:(0,V.jsxs)(N,{className:`flex items-center gap-2 text-sm`,children:[(0,V.jsx)(te,{className:`size-3.5`}),`Cluster Status`]})}),e[58]=v):v=e[58],f=P,M=`space-y-2 text-xs`,e[59]===a?I=e[60]:(I=(0,V.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,V.jsx)(ne,{variant:`outline`,children:a})}),e[59]=a,e[60]=I);let Z;e[61]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Nodes`}),e[61]=Z):Z=e[61],L=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[Z,(0,V.jsx)(`span`,{children:h.length})]});let Q;e[62]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Instances`}),e[62]=Q):Q=e[62],e[63]===i.length?g=e[64]:(g=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[Q,(0,V.jsx)(`span`,{children:i.length})]}),e[63]=i.length,e[64]=g);let $;e[65]===Symbol.for(`react.memo_cache_sentinel`)?($=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`vCPU`}),e[65]=$):$=e[65],_=(0,V.jsxs)(`div`,{className:`flex justify-between`,children:[$,(0,V.jsxs)(`span`,{children:[c,` / `,s]})]}),D=`flex justify-between`,e[66]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Memory`}),e[66]=j):j=e[66],C=ee.toFixed(1),w=` / `,E=u.toFixed(1),e[4]=r,e[5]=l?.cluster_mode,e[6]=l?.nodes,e[7]=n.arch,e[8]=n.commit,e[9]=n.os,e[10]=n.version,e[11]=d?.vms,e[12]=f,e[13]=p,e[14]=m,e[15]=h,e[16]=g,e[17]=_,e[18]=v,e[19]=y,e[20]=b,e[21]=x,e[22]=S,e[23]=C,e[24]=w,e[25]=E,e[26]=D,e[27]=j,e[28]=M,e[29]=I,e[30]=L}else f=e[12],p=e[13],m=e[14],h=e[15],g=e[16],_=e[17],v=e[18],y=e[19],b=e[20],x=e[21],S=e[22],C=e[23],w=e[24],E=e[25],D=e[26],j=e[27],M=e[28],I=e[29],L=e[30];let U;e[67]!==C||e[68]!==w||e[69]!==E?(U=(0,V.jsxs)(`span`,{children:[C,w,E,` GB`]}),e[67]=C,e[68]=w,e[69]=E,e[70]=U):U=e[70];let W;e[71]!==U||e[72]!==D||e[73]!==j?(W=(0,V.jsxs)(`div`,{className:D,children:[j,U]}),e[71]=U,e[72]=D,e[73]=j,e[74]=W):W=e[74];let G;e[75]!==f||e[76]!==g||e[77]!==_||e[78]!==W||e[79]!==M||e[80]!==I||e[81]!==L?(G=(0,V.jsxs)(f,{className:M,children:[I,L,g,_,W]}),e[75]=f,e[76]=g,e[77]=_,e[78]=W,e[79]=M,e[80]=I,e[81]=L,e[82]=G):G=e[82];let K;e[83]!==p||e[84]!==v||e[85]!==G?(K=(0,V.jsxs)(p,{children:[v,G]}),e[83]=p,e[84]=v,e[85]=G,e[86]=K):K=e[86];let q;e[87]!==y||e[88]!==b||e[89]!==x||e[90]!==K?(q=(0,V.jsxs)(`div`,{className:y,children:[b,x,K]}),e[87]=y,e[88]=b,e[89]=x,e[90]=K,e[91]=q):q=e[91];let J;e[92]!==h||e[93]!==i?(J=h.length>0&&(0,V.jsxs)(F,{children:[(0,V.jsx)(A,{className:`pb-0`,children:(0,V.jsxs)(`button`,{type:`button`,className:`flex items-center gap-2 text-sm font-medium`,onClick:()=>a(!i),children:[i?(0,V.jsx)(s,{className:`size-3.5`}):(0,V.jsx)(c,{className:`size-3.5`}),`Nodes (`,h.length,`)`]})}),i&&(0,V.jsx)(P,{className:`pt-2`,children:(0,V.jsx)(ce,{nodes:h})})]}),e[92]=h,e[93]=i,e[94]=J):J=e[94];let Y;e[95]===Symbol.for(`react.memo_cache_sentinel`)?(Y=(0,V.jsx)(A,{className:`pb-2`,children:(0,V.jsx)(N,{className:`text-sm`,children:`Commercial Add-ons`})}),e[95]=Y):Y=e[95];let X;e[96]===m?X=e[97]:(X=H.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center justify-between text-xs`,children:[(0,V.jsx)(`span`,{className:m?`text-muted-foreground`:void 0,children:e.name}),m?(0,V.jsx)(R,{className:`size-3 text-muted-foreground`}):(0,V.jsx)(ne,{variant:`outline`,className:`text-[0.625rem]`,children:`Active`})]},e.key)),e[96]=m,e[97]=X);let Z;e[98]===X?Z=e[99]:(Z=(0,V.jsx)(`div`,{className:`space-y-2`,children:X}),e[98]=X,e[99]=Z);let Q;e[100]===m?Q=e[101]:(Q=m&&(0,V.jsx)(`a`,{href:`https://mulgadc.com/purchase`,target:`_blank`,rel:`noopener noreferrer`,className:`mt-3 block text-xs font-medium text-primary hover:underline`,children:`Learn more about commercial features →`}),e[100]=m,e[101]=Q);let $;e[102]!==Z||e[103]!==Q?($=(0,V.jsxs)(F,{children:[Y,(0,V.jsxs)(P,{children:[Z,Q]})]}),e[102]=Z,e[103]=Q,e[104]=$):$=e[104];let le;return e[105]!==S||e[106]!==q||e[107]!==J||e[108]!==$?(le=(0,V.jsxs)(`div`,{className:S,children:[q,J,$]}),e[105]=S,e[106]=q,e[107]=J,e[108]=$,e[109]=le):le=e[109],le}function ie(e,t){return e+t.alloc_mem_gb}function ae(e,t){return e+t.total_mem_gb}function oe(e,t){return e+t.alloc_vcpu}function se(e,t){return e+t.total_vcpu}function ce(e){let t=(0,z.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,V.jsx)(`thead`,{children:(0,V.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Name`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Status`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Roles`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`IP`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Region`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`AZ`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Uptime`}),(0,V.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`EC2`}),(0,V.jsx)(`th`,{className:`pb-1 font-medium`,children:`Services`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(G),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,V.jsx)(`div`,{className:`overflow-x-auto`,children:(0,V.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,V.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function G(e){return(0,V.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,V.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.node}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,V.jsx)(ne,{variant:e.status===`Ready`?`default`:`secondary`,className:`text-[0.625rem]`,children:e.status})}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,V.jsxs)(`div`,{className:`flex gap-1`,children:[e.nats_role&&(0,V.jsxs)(`span`,{className:`text-muted-foreground`,children:[`nats:`,e.nats_role]}),e.predastore_role&&(0,V.jsxs)(`span`,{className:`text-muted-foreground`,children:[`ps:`,e.predastore_role]})]})}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.host}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.region}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.az}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:U(e.uptime)}),(0,V.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.vm_count}),(0,V.jsx)(`td`,{className:`py-1.5`,children:(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.services.length})})]},e.node)}var K=5;function q(){let e=(0,z.c)(11),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,V.jsx)(E,{title:`Dashboard`}),n=(0,V.jsx)(W,{}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(Q,{})}),e[2]=r):r=e[2];let i;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(me,{})}),e[3]=i):i=e[3];let a;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(ye,{})}),e[4]=a):a=e[4];let o;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(xe,{})}),e[5]=o):o=e[5];let s;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(Ce,{})}),e[6]=s):s=e[6];let c;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(Te,{})}),e[7]=c):c=e[7];let l;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(De,{})}),e[8]=l):l=e[8];let u;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(je,{})}),e[9]=u):u=e[9];let d;return e[10]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,V.jsxs)(V.Fragment,{children:[t,n,(0,V.jsxs)(`div`,{className:`grid grid-cols-1 gap-4 md:grid-cols-2 xl:grid-cols-3`,children:[r,i,a,o,s,c,l,u,(0,V.jsx)(B.Suspense,{fallback:(0,V.jsx)(J,{}),children:(0,V.jsx)(ke,{})})]})]}),e[10]=d):d=e[10],d}function J(){let e=(0,z.c)(2),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,V.jsx)(A,{children:(0,V.jsx)(`div`,{className:`h-4 w-32 animate-pulse rounded bg-muted`})}),e[0]=t):t=e[0];let n;return e[1]===Symbol.for(`react.memo_cache_sentinel`)?(n=(0,V.jsxs)(F,{children:[t,(0,V.jsx)(P,{children:(0,V.jsxs)(`div`,{className:`space-y-2`,children:[(0,V.jsx)(`div`,{className:`h-3 w-48 animate-pulse rounded bg-muted`}),(0,V.jsx)(`div`,{className:`h-3 w-36 animate-pulse rounded bg-muted`})]})})]}),e[1]=n):n=e[1],n}function Y(e){let t=(0,z.c)(16),{title:n,icon:r,count:a,to:o,children:s}=e,c;t[0]!==r||t[1]!==n?(c=(0,V.jsxs)(N,{className:`flex items-center gap-2`,children:[r,n]}),t[0]=r,t[1]=n,t[2]=c):c=t[2];let l;t[3]===a?l=t[4]:(l=(0,V.jsx)(M,{children:(0,V.jsx)(`span`,{className:`rounded-md bg-muted px-2 py-0.5 text-xs font-semibold tabular-nums`,children:a})}),t[3]=a,t[4]=l);let u;t[5]!==c||t[6]!==l?(u=(0,V.jsxs)(A,{children:[c,l]}),t[5]=c,t[6]=l,t[7]=u):u=t[7];let d;t[8]===s?d=t[9]:(d=(0,V.jsx)(P,{children:s}),t[8]=s,t[9]=d);let f;t[10]===o?f=t[11]:(f=(0,V.jsx)(j,{children:(0,V.jsx)(i,{to:o,className:`text-xs font-medium text-primary hover:underline`,children:`View all →`})}),t[10]=o,t[11]=f);let p;return t[12]!==u||t[13]!==d||t[14]!==f?(p=(0,V.jsxs)(F,{children:[u,d,f]}),t[12]=u,t[13]=d,t[14]=f,t[15]=p):p=t[15],p}function X(e){let t=(0,z.c)(2),{total:n}=e;if(n<=K)return null;let r=n-K,i;return t[0]===r?i=t[1]:(i=(0,V.jsxs)(`p`,{className:`mt-1 text-[0.625rem] text-muted-foreground`,children:[`+`,r,` more`]}),t[0]=r,t[1]=i),i}function Z(e){let t=(0,z.c)(2),{children:n}=e,r;return t[0]===n?r=t[1]:(r=(0,V.jsx)(`div`,{className:`flex items-center justify-between py-0.5 text-xs`,children:n}),t[0]=n,t[1]=r),r}function Q(){let e=(0,z.c)(16),{data:t}=T(p),n,r,i,a,o;if(e[0]!==t?.Reservations){let s=t?.Reservations?.flatMap(pe)??[];n=s.filter(fe),i=s.filter(de),a=s.filter(ue),r=s.filter(le),o=[...i,...r].slice(0,K),e[0]=t?.Reservations,e[1]=n,e[2]=r,e[3]=i,e[4]=a,e[5]=o}else n=e[1],r=e[2],i=e[3],a=e[4],o=e[5];let s=o,c;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,V.jsx)(x,{className:`size-3.5`}),e[6]=c):c=e[6];let l;e[7]!==n.length||e[8]!==s||e[9]!==r||e[10]!==i||e[11]!==a?(l=n.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No instances`}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`mb-2 flex gap-3 text-[0.625rem] text-muted-foreground`,children:[(0,V.jsxs)(`span`,{children:[i.length,` running`]}),(0,V.jsxs)(`span`,{children:[a.length,` stopped`]})]}),(0,V.jsx)(`div`,{className:`space-y-0.5`,children:s.map($)}),(0,V.jsx)(X,{total:i.length+r.length})]}),e[7]=n.length,e[8]=s,e[9]=r,e[10]=i,e[11]=a,e[12]=l):l=e[12];let u;return e[13]!==n.length||e[14]!==l?(u=(0,V.jsx)(Y,{title:`Instances`,icon:c,count:n.length,to:`/ec2/describe-instances`,children:l}),e[13]=n.length,e[14]=l,e[15]=u):u=e[15],u}function $(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.InstanceId}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.InstanceType})]},e.InstanceId)}function le(e){return e.State?.Name===`pending`}function ue(e){return e.State?.Name===`stopped`}function de(e){return e.State?.Name===`running`}function fe(e){return e.State?.Name!==`terminated`}function pe(e){return e.Instances??[]}function me(){let e=(0,z.c)(3),{data:t}=T(l),n;if(e[0]!==t?.Volumes){let r=t?.Volumes??[],i=r.reduce(ve,0),a=r.filter(_e),o=r.filter(ge),s=r.slice(0,K),c;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,V.jsx)(I,{className:`size-3.5`}),e[2]=c):c=e[2],n=(0,V.jsx)(Y,{title:`Volumes`,icon:c,count:r.length,to:`/ec2/describe-volumes`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No volumes`}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsxs)(`div`,{className:`mb-2 flex gap-3 text-[0.625rem] text-muted-foreground`,children:[(0,V.jsxs)(`span`,{children:[i,` GiB total`]}),(0,V.jsxs)(`span`,{children:[a.length,` in-use`]}),(0,V.jsxs)(`span`,{children:[o.length,` available`]})]}),(0,V.jsx)(`div`,{className:`space-y-0.5`,children:s.map(he)}),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.Volumes,e[1]=n}else n=e[1];return n}function he(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.VolumeId}),(0,V.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,V.jsxs)(`span`,{className:`text-muted-foreground`,children:[e.Size,` GiB`]}),(0,V.jsx)(D,{state:e.State})]})]},e.VolumeId)}function ge(e){return e.State===`available`}function _e(e){return e.State===`in-use`}function ve(e,t){return e+(t.Size??0)}function ye(){let e=(0,z.c)(3),{data:t}=T(u),n;if(e[0]!==t?.Vpcs){let r=t?.Vpcs??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(y,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`VPCs`,icon:a,count:r.length,to:`/ec2/describe-vpcs`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No VPCs`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(be),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.Vpcs,e[1]=n}else n=e[1];return n}function be(e){let t=a(e.Tags);return(0,V.jsxs)(Z,{children:[(0,V.jsxs)(`span`,{className:`font-mono`,children:[e.VpcId,t&&(0,V.jsxs)(`span`,{className:`ml-1 font-sans text-muted-foreground`,children:[`(`,t,`)`]})]}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.CidrBlock})]},e.VpcId)}function xe(){let e=(0,z.c)(3),{data:t}=T(h),n;if(e[0]!==t?.KeyPairs){let r=t?.KeyPairs??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(S,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`Key Pairs`,icon:a,count:r.length,to:`/ec2/describe-key-pairs`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No key pairs`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Se),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.KeyPairs,e[1]=n}else n=e[1];return n}function Se(e){return(0,V.jsx)(Z,{children:(0,V.jsx)(`span`,{className:`font-mono`,children:e.KeyName})},e.KeyPairId)}function Ce(){let e=(0,z.c)(3),{data:t}=T(_),n;if(e[0]!==t?.Buckets){let r=t?.Buckets??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(L,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`S3 Buckets`,icon:a,count:r.length,to:`/s3/ls`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No buckets`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(we),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.Buckets,e[1]=n}else n=e[1];return n}function we(e){return(0,V.jsx)(Z,{children:(0,V.jsx)(`span`,{className:`font-mono`,children:e.Name})},e.Name)}function Te(){let e=(0,z.c)(3),{data:t}=T(g),n;if(e[0]!==t?.SecurityGroups){let r=t?.SecurityGroups??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(b,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`Security Groups`,icon:a,count:r.length,to:`/ec2/describe-security-groups`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No security groups`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Ee),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.SecurityGroups,e[1]=n}else n=e[1];return n}function Ee(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.GroupName}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.VpcId})]},e.GroupId)}function De(){let e=(0,z.c)(3),{data:t}=T(d),n;if(e[0]!==t?.NatGateways){let r=t?.NatGateways??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(v,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`NAT Gateways`,icon:a,count:r.length,to:`/ec2/describe-nat-gateways`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No NAT gateways`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Oe),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.NatGateways,e[1]=n}else n=e[1];return n}function Oe(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.NatGatewayId}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.State})]},e.NatGatewayId)}function ke(){let e=(0,z.c)(3),{data:t}=T(f),n;if(e[0]!==t?.InternetGateways){let r=t?.InternetGateways??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(C,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`Internet Gateways`,icon:a,count:r.length,to:`/ec2/describe-internet-gateways`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No internet gateways`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Ae),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.InternetGateways,e[1]=n}else n=e[1];return n}function Ae(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.InternetGatewayId}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.Attachments?.[0]?.VpcId?`attached`:`detached`})]},e.InternetGatewayId)}function je(){let e=(0,z.c)(3),{data:t}=T(m),n;if(e[0]!==t?.Addresses){let r=t?.Addresses??[],i=r.slice(0,K),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,V.jsx)(w,{className:`size-3.5`}),e[2]=a):a=e[2],n=(0,V.jsx)(Y,{title:`Elastic IPs`,icon:a,count:r.length,to:`/ec2/describe-addresses`,children:r.length===0?(0,V.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No Elastic IPs`}):(0,V.jsxs)(`div`,{className:`space-y-0.5`,children:[i.map(Me),(0,V.jsx)(X,{total:r.length})]})}),e[0]=t?.Addresses,e[1]=n}else n=e[1];return n}function Me(e){return(0,V.jsxs)(Z,{children:[(0,V.jsx)(`span`,{className:`font-mono`,children:e.PublicIp}),(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:e.AssociationId?`associated`:`available`})]},e.AllocationId)}export{q as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_bucket.js b/spinifex/services/spinifexui/frontend/dist/assets/_bucket.js index da8a85960..5c219c36b 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_bucket.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_bucket.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{en as n}from"./auth.js";import{n as r,r as i,t as a}from"./upload-button.js";import{r as o}from"./s3.js";import{t as s}from"./s32.js";import{Xn as c,_n as l,dn as u,i as d,mn as f}from"./index.js";var p=t(),m=e();function h(){let e=(0,p.c)(31),{bucket:t}=d.useParams(),h;e[0]===t?h=e[1]:(h=s(t),e[0]=t,e[1]=h);let{data:g}=c(h),_=o(),v;e[2]===g.Contents?v=e[3]:(v=g.Contents??[],e[2]=g.Contents,e[3]=v);let y=v,b;e[4]===g.CommonPrefixes?b=e[5]:(b=g.CommonPrefixes??[],e[4]=g.CommonPrefixes,e[5]=b);let x=b,S;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,m.jsx)(l,{to:`/s3/ls`,children:`Back to buckets`}),e[6]=S):S=e[6];let C;e[7]!==t||e[8]!==_.isPending||e[9]!==_.mutateAsync?(C=(0,m.jsx)(a,{bucket:t,isPending:_.isPending,onUpload:_.mutateAsync}),e[7]=t,e[8]=_.isPending,e[9]=_.mutateAsync,e[10]=C):C=e[10];let w;e[11]!==t||e[12]!==C?(w=(0,m.jsx)(u,{actions:C,title:t}),e[11]=t,e[12]=C,e[13]=w):w=e[13];let T;e[14]===_.error?T=e[15]:(T=_.error&&(0,m.jsx)(f,{error:_.error,msg:`Failed to upload object`}),e[14]=_.error,e[15]=T);let E;e[16]!==t||e[17]!==x?(E=x.length>0&&(0,m.jsxs)(`div`,{className:`mb-6`,children:[(0,m.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Folders`}),(0,m.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>{if(!e.Prefix)return null;let r=n(e.Prefix);return(0,m.jsx)(i,{bucketName:t,folderName:r,fullPrefix:e.Prefix},e.Prefix)})})]}),e[16]=t,e[17]=x,e[18]=E):E=e[18];let D;e[19]!==t||e[20]!==y?(D=y.length>0&&(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Objects`}),y.map(e=>e.Key?(0,m.jsx)(r,{bucketName:t,displayName:e.Key,fullKey:e.Key,object:e},e.Key):null)]}),e[19]=t,e[20]=y,e[21]=D):D=e[21];let O;e[22]!==x.length||e[23]!==y.length?(O=y.length===0&&x.length===0&&(0,m.jsx)(`p`,{className:`text-muted-foreground`,children:`No objects found in this bucket.`}),e[22]=x.length,e[23]=y.length,e[24]=O):O=e[24];let k;return e[25]!==w||e[26]!==T||e[27]!==E||e[28]!==D||e[29]!==O?(k=(0,m.jsxs)(m.Fragment,{children:[S,w,T,E,D,O]}),e[25]=w,e[26]=T,e[27]=E,e[28]=D,e[29]=O,e[30]=k):k=e[30],k}export{h as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{en as n}from"./auth.js";import{n as r,r as i,t as a}from"./upload-button.js";import{r as o}from"./s3.js";import{t as s}from"./s32.js";import{$n as c,Sn as l,Tn as u,i as d,yn as f}from"./index.js";var p=t(),m=e();function h(){let e=(0,p.c)(31),{bucket:t}=d.useParams(),h;e[0]===t?h=e[1]:(h=s(t),e[0]=t,e[1]=h);let{data:g}=c(h),_=o(),v;e[2]===g.Contents?v=e[3]:(v=g.Contents??[],e[2]=g.Contents,e[3]=v);let y=v,b;e[4]===g.CommonPrefixes?b=e[5]:(b=g.CommonPrefixes??[],e[4]=g.CommonPrefixes,e[5]=b);let x=b,S;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,m.jsx)(u,{to:`/s3/ls`,children:`Back to buckets`}),e[6]=S):S=e[6];let C;e[7]!==t||e[8]!==_.isPending||e[9]!==_.mutateAsync?(C=(0,m.jsx)(a,{bucket:t,isPending:_.isPending,onUpload:_.mutateAsync}),e[7]=t,e[8]=_.isPending,e[9]=_.mutateAsync,e[10]=C):C=e[10];let w;e[11]!==t||e[12]!==C?(w=(0,m.jsx)(f,{actions:C,title:t}),e[11]=t,e[12]=C,e[13]=w):w=e[13];let T;e[14]===_.error?T=e[15]:(T=_.error&&(0,m.jsx)(l,{error:_.error,msg:`Failed to upload object`}),e[14]=_.error,e[15]=T);let E;e[16]!==t||e[17]!==x?(E=x.length>0&&(0,m.jsxs)(`div`,{className:`mb-6`,children:[(0,m.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Folders`}),(0,m.jsx)(`div`,{className:`space-y-2`,children:x.map(e=>{if(!e.Prefix)return null;let r=n(e.Prefix);return(0,m.jsx)(i,{bucketName:t,folderName:r,fullPrefix:e.Prefix},e.Prefix)})})]}),e[16]=t,e[17]=x,e[18]=E):E=e[18];let D;e[19]!==t||e[20]!==y?(D=y.length>0&&(0,m.jsxs)(`div`,{className:`space-y-2`,children:[(0,m.jsx)(`h2`,{className:`mb-3 text-lg font-semibold`,children:`Objects`}),y.map(e=>e.Key?(0,m.jsx)(r,{bucketName:t,displayName:e.Key,fullKey:e.Key,object:e},e.Key):null)]}),e[19]=t,e[20]=y,e[21]=D):D=e[21];let O;e[22]!==x.length||e[23]!==y.length?(O=y.length===0&&x.length===0&&(0,m.jsx)(`p`,{className:`text-muted-foreground`,children:`No objects found in this bucket.`}),e[22]=x.length,e[23]=y.length,e[24]=O):O=e[24];let k;return e[25]!==w||e[26]!==T||e[27]!==E||e[28]!==D||e[29]!==O?(k=(0,m.jsxs)(m.Fragment,{children:[S,w,T,E,D,O]}),e[25]=w,e[26]=T,e[27]=E,e[28]=D,e[29]=O,e[30]=k):k=e[30],k}export{h as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_clusterName.js b/spinifex/services/spinifexui/frontend/dist/assets/_clusterName.js index dfc7b08d5..23e403884 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_clusterName.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_clusterName.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{O as c,c as l,p as u,w as d}from"./ec2.js";import{i as f,r as p,s as m,t as h}from"./ecs.js";import{i as g,l as _,o as v,r as y,u as b}from"./ecs2.js";import{Ln as x,Xn as S,Zn as C,_n as w,d as T,dn as E,fn as D,mn as ee,rn as O,sn as k}from"./index.js";import{a as A,i as j,l as te,n as M,o as N,r as P,s as F,t as I}from"./alert-dialog.js";import{t as L}from"./delete-confirmation-dialog.js";import{n as R,t as z}from"./detail-row.js";import{t as B}from"./state-badge.js";import{i as V,n as ne,r as H,t as re}from"./tabs.js";var U=r(),W=t(n(),1),G=e(),K=`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`;function q({clusterName:e,open:t,onOpenChange:n}){let r=v(),{data:i}=C(c),{data:a}=C(d),{data:o}=C(u),{data:s}=C(l),f=i?.Subnets??[],p=a?.SecurityGroups??[],m=o?.KeyPairs??[],h=s?.InstanceTypes??[],[g,_]=(0,W.useState)(`t3.small`),[y,b]=(0,W.useState)(1),[S,w]=(0,W.useState)(``),[T,E]=(0,W.useState)(``),[L,R]=(0,W.useState)(``);function z(e){e||(_(`t3.small`),b(1),w(``),E(``),R(``),r.reset()),n(e)}async function B(){try{await r.mutateAsync({Cluster:e,InstanceType:g||void 0,Count:y,SubnetID:S,SecurityGroupID:T,KeyName:L||void 0}),z(!1)}catch{}}let V=r.isPending||S===``||T===``;return(0,G.jsx)(I,{onOpenChange:z,open:t,children:(0,G.jsxs)(j,{className:`max-h-[85vh] overflow-y-auto`,children:[(0,G.jsxs)(F,{children:[(0,G.jsx)(te,{children:`Provision EC2 capacity`}),(0,G.jsxs)(A,{children:[`Launch container instances into cluster “`,e,`”. They register automatically once booted.`]})]}),(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(O,{children:[(0,G.jsx)(k,{children:(0,G.jsx)(`label`,{htmlFor:`provision-instance-type`,children:`Instance type`})}),(0,G.jsx)(D,{id:`provision-instance-type`,instanceTypes:h,onValueChange:_,value:g})]}),(0,G.jsxs)(O,{children:[(0,G.jsx)(k,{children:(0,G.jsx)(`label`,{htmlFor:`provision-count`,children:`Count`})}),(0,G.jsx)(x,{id:`provision-count`,max:10,min:1,onChange:e=>b(Number(e.target.value)),type:`number`,value:y})]}),(0,G.jsxs)(O,{children:[(0,G.jsx)(k,{children:(0,G.jsx)(`label`,{htmlFor:`provision-subnet`,children:`Subnet`})}),(0,G.jsxs)(`select`,{className:K,id:`provision-subnet`,onChange:e=>w(e.target.value),value:S,children:[(0,G.jsx)(`option`,{value:``,children:`Select a subnet`}),f.map(e=>(0,G.jsxs)(`option`,{value:e.SubnetId??``,children:[e.SubnetId,` (`,e.CidrBlock,e.AvailabilityZone?`, ${e.AvailabilityZone}`:``,`)`]},e.SubnetId))]})]}),(0,G.jsxs)(O,{children:[(0,G.jsx)(k,{children:(0,G.jsx)(`label`,{htmlFor:`provision-sg`,children:`Security group`})}),(0,G.jsxs)(`select`,{className:K,id:`provision-sg`,onChange:e=>E(e.target.value),value:T,children:[(0,G.jsx)(`option`,{value:``,children:`Select a security group`}),p.map(e=>(0,G.jsxs)(`option`,{value:e.GroupId??``,children:[e.GroupId,` (`,e.GroupName,`)`]},e.GroupId))]})]}),(0,G.jsxs)(O,{children:[(0,G.jsx)(k,{children:(0,G.jsx)(`label`,{htmlFor:`provision-key`,children:`Key pair`})}),(0,G.jsxs)(`select`,{className:K,id:`provision-key`,onChange:e=>R(e.target.value),value:L,children:[(0,G.jsx)(`option`,{value:``,children:`None`}),m.map(e=>(0,G.jsx)(`option`,{value:e.KeyName??``,children:e.KeyName},e.KeyPairId))]})]})]}),r.error&&(0,G.jsx)(ee,{error:r.error instanceof Error?r.error:void 0,msg:`Failed to provision capacity.`}),(0,G.jsxs)(N,{children:[(0,G.jsx)(P,{children:`Cancel`}),(0,G.jsx)(M,{disabled:V,onClick:e=>{e.preventDefault(),B()},children:r.isPending?`Provisioning…`:`Provision`})]})]})})}var J={drain:`Drain`,activate:`Activate`,deregister:`Deregister`},Y={drain:`Draining force-stops the service-owned tasks on this instance so it can be retired.`,activate:`This returns the instance to ACTIVE so the scheduler can place tasks on it again.`,deregister:`This force-removes the container instance record. Any tasks it still holds are stopped.`};function ie(e){let t=(0,U.c)(28),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=p(n),t[0]=n,t[1]=r);let{data:i}=S(r),a=b(),o=g(),[c,l]=(0,W.useState)(null),[u,d]=(0,W.useState)(!1),f;t[2]!==n||t[3]!==o||t[4]!==c||t[5]!==a?(f=function(){if(!c)return;let e=()=>l(null);if(c.action===`deregister`){o.mutate({cluster:n,containerInstance:c.arn},{onSuccess:e});return}a.mutate({cluster:n,containerInstance:c.arn,status:c.action===`drain`?`DRAINING`:`ACTIVE`},{onSuccess:e})},t[2]=n,t[3]=o,t[4]=c,t[5]=a,t[6]=f):f=t[6];let m=f,h=a.isError||o.isError,_=a.error??o.error,v=a.isPending||o.isPending,y;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,G.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,G.jsx)(s,{onClick:()=>d(!0),size:`sm`,children:`Provision EC2 capacity`})}),t[7]=y):y=t[7];let x;t[8]!==_||t[9]!==h?(x=h&&(0,G.jsx)(ee,{error:_ instanceof Error?_:void 0,msg:`Container instance action failed.`}),t[8]=_,t[9]=h,t[10]=x):x=t[10];let C;t[11]===i?C=t[12]:(C=i.length===0?(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`No container instances found.`}):(0,G.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`EC2 Instance`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Running`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Pending`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,G.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,G.jsx)(`tbody`,{children:i.map(e=>{let t=e.containerInstanceArn??``,n=e.status===`DRAINING`;return(0,G.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.ec2InstanceId}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(B,{state:e.status})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.runningTasksCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.pendingTasksCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(s,{"aria-label":n?`Activate container instance`:`Drain container instance`,onClick:()=>l({arn:t,action:n?`activate`:`drain`}),size:`sm`,variant:`outline`,children:n?`Activate`:`Drain`}),(0,G.jsx)(s,{onClick:()=>l({arn:t,action:`deregister`}),size:`sm`,variant:`destructive`,children:`Deregister`})]})})]},t)})})]})}),t[11]=i,t[12]=C);let w;t[13]!==n||t[14]!==u?(w=(0,G.jsx)(q,{clusterName:n,onOpenChange:d,open:u}),t[13]=n,t[14]=u,t[15]=w):w=t[15];let T=c?J[c.action]:`Confirm`,E=c?Y[c.action]:``,D;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(D=e=>!e&&l(null),t[16]=D):D=t[16];let O=c!==null,k;t[17]!==m||t[18]!==v||t[19]!==O||t[20]!==T||t[21]!==E?(k=(0,G.jsx)(L,{confirmLabel:T,description:E,isPending:v,onConfirm:m,onOpenChange:D,open:O,title:`Container instance`}),t[17]=m,t[18]=v,t[19]=O,t[20]=T,t[21]=E,t[22]=k):k=t[22];let A;return t[23]!==k||t[24]!==x||t[25]!==C||t[26]!==w?(A=(0,G.jsxs)(G.Fragment,{children:[y,x,C,w,k]}),t[23]=k,t[24]=x,t[25]=C,t[26]=w,t[27]=A):A=t[27],A}function X(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function ae(e){let t=(0,U.c)(13),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=f(n),t[0]=n,t[1]=r);let{data:a}=S(r),o;t[2]===n?o=t[3]:(o={cluster:n},t[2]=n,t[3]=o);let c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,G.jsx)(s,{size:`sm`,children:`Create service`}),t[4]=c):c=t[4];let l;t[5]===o?l=t[6]:(l=(0,G.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,G.jsx)(i,{search:o,to:`/ecs/create-service`,children:c})}),t[5]=o,t[6]=l);let u;t[7]!==n||t[8]!==a?(u=a.length===0?(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`No services found.`}):(0,G.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Desired`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Running`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Pending`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Task Definition`})]})}),(0,G.jsx)(`tbody`,{children:a.map(e=>(0,G.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,G.jsx)(i,{className:`underline`,params:{clusterName:n,serviceName:e.serviceName??``},to:`/ecs/list-clusters/$clusterName/services/$serviceName`,children:e.serviceName})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(B,{state:e.status})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.desiredCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.runningCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.pendingCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:X(e.taskDefinition)})]},e.serviceArn??e.serviceName))})]})}),t[7]=n,t[8]=a,t[9]=u):u=t[9];let d;return t[10]!==l||t[11]!==u?(d=(0,G.jsxs)(G.Fragment,{children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12],d}function Z(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function oe(e){let t=(0,U.c)(27),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=m(n),t[0]=n,t[1]=r);let{data:a}=S(r),o=_(),[c,l]=(0,W.useState)(null),u;t[2]!==n||t[3]!==c||t[4]!==o?(u=function(){c&&o.mutate({cluster:n,task:c},{onSuccess:()=>l(null)})},t[2]=n,t[3]=c,t[4]=o,t[5]=u):u=t[5];let d=u,f;t[6]===n?f=t[7]:(f={cluster:n},t[6]=n,t[7]=f);let p;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,G.jsx)(s,{size:`sm`,children:`Run task`}),t[8]=p):p=t[8];let h;t[9]===f?h=t[10]:(h=(0,G.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,G.jsx)(i,{search:f,to:`/ecs/run-task`,children:p})}),t[9]=f,t[10]=h);let g;t[11]!==o.error||t[12]!==o.isError?(g=o.isError&&(0,G.jsx)(ee,{error:o.error instanceof Error?o.error:void 0,msg:`Failed to stop task.`}),t[11]=o.error,t[12]=o.isError,t[13]=g):g=t[13];let v;t[14]!==n||t[15]!==a?(v=a.length===0?(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`No tasks found.`}):(0,G.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Task`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Last Status`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Desired Status`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Group`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,G.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,G.jsx)(`tbody`,{children:a.map(e=>{let t=Z(e.taskArn),r=e.lastStatus!==`STOPPED`;return(0,G.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:(0,G.jsx)(i,{className:`underline`,params:{clusterName:n,taskId:t},to:`/ecs/list-clusters/$clusterName/tasks/$taskId`,children:t})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(B,{state:e.lastStatus})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.desiredStatus}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.group}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-right`,children:r&&(0,G.jsx)(s,{onClick:()=>l(e.taskArn??t),size:`sm`,variant:`destructive`,children:`Stop`})})]},t)})})]})}),t[14]=n,t[15]=a,t[16]=v):v=t[16];let y;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>!e&&l(null),t[17]=y):y=t[17];let b=c!==null,x;t[18]!==d||t[19]!==o.isPending||t[20]!==b?(x=(0,G.jsx)(L,{confirmLabel:`Stop task`,description:`This stops the task and releases its ENI and reserved capacity.`,isPending:o.isPending,onConfirm:d,onOpenChange:y,open:b,pendingLabel:`Stopping…`,title:`Stop task`}),t[18]=d,t[19]=o.isPending,t[20]=b,t[21]=x):x=t[21];let C;return t[22]!==x||t[23]!==h||t[24]!==g||t[25]!==v?(C=(0,G.jsxs)(G.Fragment,{children:[h,g,v,x]}),t[22]=x,t[23]=h,t[24]=g,t[25]=v,t[26]=C):C=t[26],C}function Q(e){let t=(0,U.c)(70),{clusterName:n}=e,r=a(),[i,c]=(0,W.useState)(!1),l;t[0]===n?l=t[1]:(l=h(n),t[0]=n,t[1]=l);let{data:u}=S(l),d=y(),f;t[2]!==n||t[3]!==d||t[4]!==r?(f=function(){d.mutate(n,{onSuccess:()=>{r({to:`/ecs/list-clusters`})}})},t[2]=n,t[3]=d,t[4]=r,t[5]=f):f=t[5];let p=f;if(!u){let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,G.jsx)(w,{to:`/ecs/list-clusters`,children:`Clusters`}),t[6]=e):e=t[6];let r;t[7]===n?r=t[8]:(r=(0,G.jsx)(E,{subtitle:`Cluster Details`,title:n}),t[7]=n,t[8]=r);let i;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`Cluster not found.`}),t[9]=i):i=t[9];let a;return t[10]===r?a=t[11]:(a=(0,G.jsxs)(G.Fragment,{children:[e,r,i]}),t[10]=r,t[11]=a),a}let m;t[12]===u.tags?m=t[13]:(m=u.tags??[],t[12]=u.tags,t[13]=m);let g=m,_;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,G.jsx)(w,{to:`/ecs/list-clusters`,children:`Clusters`}),t[14]=_):_=t[14];let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>c(!0),t[15]=v):v=t[15];let b;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,G.jsxs)(s,{onClick:v,size:`sm`,variant:`destructive`,children:[(0,G.jsx)(o,{className:`size-4`}),`Delete`]}),t[16]=b):b=t[16];let x;t[17]===u.status?x=t[18]:(x=(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[b,(0,G.jsx)(B,{state:u.status})]}),t[17]=u.status,t[18]=x);let C;t[19]!==n||t[20]!==x?(C=(0,G.jsx)(E,{actions:x,subtitle:`Cluster Details`,title:n}),t[19]=n,t[20]=x,t[21]=C):C=t[21];let T;t[22]!==d.error||t[23]!==d.isError?(T=d.isError&&(0,G.jsx)(ee,{error:d.error instanceof Error?d.error:void 0,msg:`Failed to delete cluster.`}),t[22]=d.error,t[23]=d.isError,t[24]=T):T=t[24];let D;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,G.jsx)(R.Header,{children:`Overview`}),t[25]=D):D=t[25];let O;t[26]===u.clusterArn?O=t[27]:(O=(0,G.jsx)(z,{label:`ARN`,value:u.clusterArn}),t[26]=u.clusterArn,t[27]=O);let k;t[28]===u.status?k=t[29]:(k=(0,G.jsx)(z,{label:`Status`,value:u.status}),t[28]=u.status,t[29]=k);let A=String(u.activeServicesCount??0),j;t[30]===A?j=t[31]:(j=(0,G.jsx)(z,{label:`Active services`,value:A}),t[30]=A,t[31]=j);let te=String(u.runningTasksCount??0),M;t[32]===te?M=t[33]:(M=(0,G.jsx)(z,{label:`Running tasks`,value:te}),t[32]=te,t[33]=M);let N=String(u.pendingTasksCount??0),P;t[34]===N?P=t[35]:(P=(0,G.jsx)(z,{label:`Pending tasks`,value:N}),t[34]=N,t[35]=P);let F=String(u.registeredContainerInstancesCount??0),I;t[36]===F?I=t[37]:(I=(0,G.jsx)(z,{label:`Registered instances`,value:F}),t[36]=F,t[37]=I);let K;t[38]!==O||t[39]!==k||t[40]!==j||t[41]!==M||t[42]!==P||t[43]!==I?(K=(0,G.jsxs)(R,{children:[D,(0,G.jsxs)(R.Content,{children:[O,k,j,M,P,I]})]}),t[38]=O,t[39]=k,t[40]=j,t[41]=M,t[42]=P,t[43]=I,t[44]=K):K=t[44];let q;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,G.jsxs)(ne,{children:[(0,G.jsx)(V,{value:`services`,children:`Services`}),(0,G.jsx)(V,{value:`tasks`,children:`Tasks`}),(0,G.jsx)(V,{value:`infrastructure`,children:`Infrastructure`}),(0,G.jsx)(V,{value:`tags`,children:`Tags`})]}),t[45]=q):q=t[45];let J;t[46]===n?J=t[47]:(J=(0,G.jsx)(H,{value:`services`,children:(0,G.jsx)(ae,{clusterName:n})}),t[46]=n,t[47]=J);let Y;t[48]===n?Y=t[49]:(Y=(0,G.jsx)(H,{value:`tasks`,children:(0,G.jsx)(oe,{clusterName:n})}),t[48]=n,t[49]=Y);let X;t[50]===n?X=t[51]:(X=(0,G.jsx)(H,{value:`infrastructure`,children:(0,G.jsx)(ie,{clusterName:n})}),t[50]=n,t[51]=X);let Z;t[52]===g?Z=t[53]:(Z=(0,G.jsx)(H,{value:`tags`,children:g.length===0?(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`No tags.`}):(0,G.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Key`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Value`})]})}),(0,G.jsx)(`tbody`,{children:g.map(se)})]})})}),t[52]=g,t[53]=Z);let Q;t[54]!==J||t[55]!==Y||t[56]!==X||t[57]!==Z?(Q=(0,G.jsxs)(re,{className:`mt-6`,defaultValue:`services`,children:[q,J,Y,X,Z]}),t[54]=J,t[55]=Y,t[56]=X,t[57]=Z,t[58]=Q):Q=t[58];let ce=`This permanently deletes cluster "${n}" and force-stops every task it holds. This cannot be undone.`,$;t[59]!==d.isPending||t[60]!==p||t[61]!==i||t[62]!==ce?($=(0,G.jsx)(L,{description:ce,isPending:d.isPending,onConfirm:p,onOpenChange:c,open:i,title:`Delete cluster`}),t[59]=d.isPending,t[60]=p,t[61]=i,t[62]=ce,t[63]=$):$=t[63];let le;return t[64]!==K||t[65]!==Q||t[66]!==$||t[67]!==C||t[68]!==T?(le=(0,G.jsxs)(G.Fragment,{children:[_,C,T,K,Q,$]}),t[64]=K,t[65]=Q,t[66]=$,t[67]=C,t[68]=T,t[69]=le):le=t[69],le}function se(e){return(0,G.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.key}),(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.value})]},e.key)}function ce(){let e=(0,U.c)(2),{clusterName:t}=T.useParams(),n;return e[0]===t?n=e[1]:(n=(0,G.jsx)(Q,{clusterName:t}),e[0]=t,e[1]=n),n}export{ce as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{O as c,c as l,p as u,w as d}from"./ec2.js";import{i as f,r as p,s as m,t as h}from"./ecs.js";import{i as g,l as _,o as v,r as y,u as b}from"./ecs2.js";import{$n as x,B as S,F as C,I as w,L as T,R as E,Rn as D,Sn as O,Tn as k,U as A,V as j,bn as M,d as N,dn as P,er as F,hn as I,yn as ee,z as L}from"./index.js";import{t as R}from"./delete-confirmation-dialog.js";import{n as z,t as B}from"./detail-row.js";import{t as V}from"./state-badge.js";import{i as H,n as te,r as ne,t as re}from"./tabs.js";var U=r(),W=t(n(),1),G=e(),K=`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`;function q({clusterName:e,open:t,onOpenChange:n}){let r=v(),{data:i}=F(c),{data:a}=F(d),{data:o}=F(u),{data:s}=F(l),f=i?.Subnets??[],p=a?.SecurityGroups??[],m=o?.KeyPairs??[],h=s?.InstanceTypes??[],[g,_]=(0,W.useState)(`t3.small`),[y,b]=(0,W.useState)(1),[x,k]=(0,W.useState)(``),[N,ee]=(0,W.useState)(``),[R,z]=(0,W.useState)(``);function B(e){e||(_(`t3.small`),b(1),k(``),ee(``),z(``),r.reset()),n(e)}async function V(){try{await r.mutateAsync({Cluster:e,InstanceType:g||void 0,Count:y,SubnetID:x,SecurityGroupID:N,KeyName:R||void 0}),B(!1)}catch{}}let H=r.isPending||x===``||N===``;return(0,G.jsx)(C,{onOpenChange:B,open:t,children:(0,G.jsxs)(E,{className:`max-h-[85vh] overflow-y-auto`,children:[(0,G.jsxs)(j,{children:[(0,G.jsx)(A,{children:`Provision EC2 capacity`}),(0,G.jsxs)(L,{children:[`Launch container instances into cluster “`,e,`”. They register automatically once booted.`]})]}),(0,G.jsxs)(`div`,{className:`space-y-4`,children:[(0,G.jsxs)(P,{children:[(0,G.jsx)(I,{children:(0,G.jsx)(`label`,{htmlFor:`provision-instance-type`,children:`Instance type`})}),(0,G.jsx)(M,{id:`provision-instance-type`,instanceTypes:h,onValueChange:_,value:g})]}),(0,G.jsxs)(P,{children:[(0,G.jsx)(I,{children:(0,G.jsx)(`label`,{htmlFor:`provision-count`,children:`Count`})}),(0,G.jsx)(D,{id:`provision-count`,max:10,min:1,onChange:e=>b(Number(e.target.value)),type:`number`,value:y})]}),(0,G.jsxs)(P,{children:[(0,G.jsx)(I,{children:(0,G.jsx)(`label`,{htmlFor:`provision-subnet`,children:`Subnet`})}),(0,G.jsxs)(`select`,{className:K,id:`provision-subnet`,onChange:e=>k(e.target.value),value:x,children:[(0,G.jsx)(`option`,{value:``,children:`Select a subnet`}),f.map(e=>(0,G.jsxs)(`option`,{value:e.SubnetId??``,children:[e.SubnetId,` (`,e.CidrBlock,e.AvailabilityZone?`, ${e.AvailabilityZone}`:``,`)`]},e.SubnetId))]})]}),(0,G.jsxs)(P,{children:[(0,G.jsx)(I,{children:(0,G.jsx)(`label`,{htmlFor:`provision-sg`,children:`Security group`})}),(0,G.jsxs)(`select`,{className:K,id:`provision-sg`,onChange:e=>ee(e.target.value),value:N,children:[(0,G.jsx)(`option`,{value:``,children:`Select a security group`}),p.map(e=>(0,G.jsxs)(`option`,{value:e.GroupId??``,children:[e.GroupId,` (`,e.GroupName,`)`]},e.GroupId))]})]}),(0,G.jsxs)(P,{children:[(0,G.jsx)(I,{children:(0,G.jsx)(`label`,{htmlFor:`provision-key`,children:`Key pair`})}),(0,G.jsxs)(`select`,{className:K,id:`provision-key`,onChange:e=>z(e.target.value),value:R,children:[(0,G.jsx)(`option`,{value:``,children:`None`}),m.map(e=>(0,G.jsx)(`option`,{value:e.KeyName??``,children:e.KeyName},e.KeyPairId))]})]})]}),r.error&&(0,G.jsx)(O,{error:r.error instanceof Error?r.error:void 0,msg:`Failed to provision capacity.`}),(0,G.jsxs)(S,{children:[(0,G.jsx)(T,{children:`Cancel`}),(0,G.jsx)(w,{disabled:H,onClick:e=>{e.preventDefault(),V()},children:r.isPending?`Provisioning…`:`Provision`})]})]})})}var J={drain:`Drain`,activate:`Activate`,deregister:`Deregister`},Y={drain:`Draining force-stops the service-owned tasks on this instance so it can be retired.`,activate:`This returns the instance to ACTIVE so the scheduler can place tasks on it again.`,deregister:`This force-removes the container instance record. Any tasks it still holds are stopped.`};function ie(e){let t=(0,U.c)(28),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=p(n),t[0]=n,t[1]=r);let{data:i}=x(r),a=b(),o=g(),[c,l]=(0,W.useState)(null),[u,d]=(0,W.useState)(!1),f;t[2]!==n||t[3]!==o||t[4]!==c||t[5]!==a?(f=function(){if(!c)return;let e=()=>l(null);if(c.action===`deregister`){o.mutate({cluster:n,containerInstance:c.arn},{onSuccess:e});return}a.mutate({cluster:n,containerInstance:c.arn,status:c.action===`drain`?`DRAINING`:`ACTIVE`},{onSuccess:e})},t[2]=n,t[3]=o,t[4]=c,t[5]=a,t[6]=f):f=t[6];let m=f,h=a.isError||o.isError,_=a.error??o.error,v=a.isPending||o.isPending,y;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,G.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,G.jsx)(s,{onClick:()=>d(!0),size:`sm`,children:`Provision EC2 capacity`})}),t[7]=y):y=t[7];let S;t[8]!==_||t[9]!==h?(S=h&&(0,G.jsx)(O,{error:_ instanceof Error?_:void 0,msg:`Container instance action failed.`}),t[8]=_,t[9]=h,t[10]=S):S=t[10];let C;t[11]===i?C=t[12]:(C=i.length===0?(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`No container instances found.`}):(0,G.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`EC2 Instance`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Running`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Pending`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,G.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,G.jsx)(`tbody`,{children:i.map(e=>{let t=e.containerInstanceArn??``,n=e.status===`DRAINING`;return(0,G.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.ec2InstanceId}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(V,{state:e.status})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.runningTasksCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.pendingTasksCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,G.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,G.jsx)(s,{"aria-label":n?`Activate container instance`:`Drain container instance`,onClick:()=>l({arn:t,action:n?`activate`:`drain`}),size:`sm`,variant:`outline`,children:n?`Activate`:`Drain`}),(0,G.jsx)(s,{onClick:()=>l({arn:t,action:`deregister`}),size:`sm`,variant:`destructive`,children:`Deregister`})]})})]},t)})})]})}),t[11]=i,t[12]=C);let w;t[13]!==n||t[14]!==u?(w=(0,G.jsx)(q,{clusterName:n,onOpenChange:d,open:u}),t[13]=n,t[14]=u,t[15]=w):w=t[15];let T=c?J[c.action]:`Confirm`,E=c?Y[c.action]:``,D;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(D=e=>!e&&l(null),t[16]=D):D=t[16];let k=c!==null,A;t[17]!==m||t[18]!==v||t[19]!==k||t[20]!==T||t[21]!==E?(A=(0,G.jsx)(R,{confirmLabel:T,description:E,isPending:v,onConfirm:m,onOpenChange:D,open:k,title:`Container instance`}),t[17]=m,t[18]=v,t[19]=k,t[20]=T,t[21]=E,t[22]=A):A=t[22];let j;return t[23]!==A||t[24]!==S||t[25]!==C||t[26]!==w?(j=(0,G.jsxs)(G.Fragment,{children:[y,S,C,w,A]}),t[23]=A,t[24]=S,t[25]=C,t[26]=w,t[27]=j):j=t[27],j}function X(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function ae(e){let t=(0,U.c)(13),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=f(n),t[0]=n,t[1]=r);let{data:a}=x(r),o;t[2]===n?o=t[3]:(o={cluster:n},t[2]=n,t[3]=o);let c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,G.jsx)(s,{size:`sm`,children:`Create service`}),t[4]=c):c=t[4];let l;t[5]===o?l=t[6]:(l=(0,G.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,G.jsx)(i,{search:o,to:`/ecs/create-service`,children:c})}),t[5]=o,t[6]=l);let u;t[7]!==n||t[8]!==a?(u=a.length===0?(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`No services found.`}):(0,G.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Desired`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Running`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Pending`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Task Definition`})]})}),(0,G.jsx)(`tbody`,{children:a.map(e=>(0,G.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,G.jsx)(i,{className:`underline`,params:{clusterName:n,serviceName:e.serviceName??``},to:`/ecs/list-clusters/$clusterName/services/$serviceName`,children:e.serviceName})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(V,{state:e.status})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.desiredCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.runningCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.pendingCount??0}),(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:X(e.taskDefinition)})]},e.serviceArn??e.serviceName))})]})}),t[7]=n,t[8]=a,t[9]=u):u=t[9];let d;return t[10]!==l||t[11]!==u?(d=(0,G.jsxs)(G.Fragment,{children:[l,u]}),t[10]=l,t[11]=u,t[12]=d):d=t[12],d}function Z(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function oe(e){let t=(0,U.c)(27),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=m(n),t[0]=n,t[1]=r);let{data:a}=x(r),o=_(),[c,l]=(0,W.useState)(null),u;t[2]!==n||t[3]!==c||t[4]!==o?(u=function(){c&&o.mutate({cluster:n,task:c},{onSuccess:()=>l(null)})},t[2]=n,t[3]=c,t[4]=o,t[5]=u):u=t[5];let d=u,f;t[6]===n?f=t[7]:(f={cluster:n},t[6]=n,t[7]=f);let p;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,G.jsx)(s,{size:`sm`,children:`Run task`}),t[8]=p):p=t[8];let h;t[9]===f?h=t[10]:(h=(0,G.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,G.jsx)(i,{search:f,to:`/ecs/run-task`,children:p})}),t[9]=f,t[10]=h);let g;t[11]!==o.error||t[12]!==o.isError?(g=o.isError&&(0,G.jsx)(O,{error:o.error instanceof Error?o.error:void 0,msg:`Failed to stop task.`}),t[11]=o.error,t[12]=o.isError,t[13]=g):g=t[13];let v;t[14]!==n||t[15]!==a?(v=a.length===0?(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`No tasks found.`}):(0,G.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Task`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Last Status`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Desired Status`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Group`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,G.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,G.jsx)(`tbody`,{children:a.map(e=>{let t=Z(e.taskArn),r=e.lastStatus!==`STOPPED`;return(0,G.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:(0,G.jsx)(i,{className:`underline`,params:{clusterName:n,taskId:t},to:`/ecs/list-clusters/$clusterName/tasks/$taskId`,children:t})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:(0,G.jsx)(V,{state:e.lastStatus})}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.desiredStatus}),(0,G.jsx)(`td`,{className:`px-4 py-2`,children:e.group}),(0,G.jsx)(`td`,{className:`px-4 py-2 text-right`,children:r&&(0,G.jsx)(s,{onClick:()=>l(e.taskArn??t),size:`sm`,variant:`destructive`,children:`Stop`})})]},t)})})]})}),t[14]=n,t[15]=a,t[16]=v):v=t[16];let y;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(y=e=>!e&&l(null),t[17]=y):y=t[17];let b=c!==null,S;t[18]!==d||t[19]!==o.isPending||t[20]!==b?(S=(0,G.jsx)(R,{confirmLabel:`Stop task`,description:`This stops the task and releases its ENI and reserved capacity.`,isPending:o.isPending,onConfirm:d,onOpenChange:y,open:b,pendingLabel:`Stopping…`,title:`Stop task`}),t[18]=d,t[19]=o.isPending,t[20]=b,t[21]=S):S=t[21];let C;return t[22]!==S||t[23]!==h||t[24]!==g||t[25]!==v?(C=(0,G.jsxs)(G.Fragment,{children:[h,g,v,S]}),t[22]=S,t[23]=h,t[24]=g,t[25]=v,t[26]=C):C=t[26],C}function Q(e){let t=(0,U.c)(70),{clusterName:n}=e,r=a(),[i,c]=(0,W.useState)(!1),l;t[0]===n?l=t[1]:(l=h(n),t[0]=n,t[1]=l);let{data:u}=x(l),d=y(),f;t[2]!==n||t[3]!==d||t[4]!==r?(f=function(){d.mutate(n,{onSuccess:()=>{r({to:`/ecs/list-clusters`})}})},t[2]=n,t[3]=d,t[4]=r,t[5]=f):f=t[5];let p=f;if(!u){let e;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,G.jsx)(k,{to:`/ecs/list-clusters`,children:`Clusters`}),t[6]=e):e=t[6];let r;t[7]===n?r=t[8]:(r=(0,G.jsx)(ee,{subtitle:`Cluster Details`,title:n}),t[7]=n,t[8]=r);let i;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`Cluster not found.`}),t[9]=i):i=t[9];let a;return t[10]===r?a=t[11]:(a=(0,G.jsxs)(G.Fragment,{children:[e,r,i]}),t[10]=r,t[11]=a),a}let m;t[12]===u.tags?m=t[13]:(m=u.tags??[],t[12]=u.tags,t[13]=m);let g=m,_;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,G.jsx)(k,{to:`/ecs/list-clusters`,children:`Clusters`}),t[14]=_):_=t[14];let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=()=>c(!0),t[15]=v):v=t[15];let b;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,G.jsxs)(s,{onClick:v,size:`sm`,variant:`destructive`,children:[(0,G.jsx)(o,{className:`size-4`}),`Delete`]}),t[16]=b):b=t[16];let S;t[17]===u.status?S=t[18]:(S=(0,G.jsxs)(`div`,{className:`flex items-center gap-2`,children:[b,(0,G.jsx)(V,{state:u.status})]}),t[17]=u.status,t[18]=S);let C;t[19]!==n||t[20]!==S?(C=(0,G.jsx)(ee,{actions:S,subtitle:`Cluster Details`,title:n}),t[19]=n,t[20]=S,t[21]=C):C=t[21];let w;t[22]!==d.error||t[23]!==d.isError?(w=d.isError&&(0,G.jsx)(O,{error:d.error instanceof Error?d.error:void 0,msg:`Failed to delete cluster.`}),t[22]=d.error,t[23]=d.isError,t[24]=w):w=t[24];let T;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,G.jsx)(z.Header,{children:`Overview`}),t[25]=T):T=t[25];let E;t[26]===u.clusterArn?E=t[27]:(E=(0,G.jsx)(B,{label:`ARN`,value:u.clusterArn}),t[26]=u.clusterArn,t[27]=E);let D;t[28]===u.status?D=t[29]:(D=(0,G.jsx)(B,{label:`Status`,value:u.status}),t[28]=u.status,t[29]=D);let A=String(u.activeServicesCount??0),j;t[30]===A?j=t[31]:(j=(0,G.jsx)(B,{label:`Active services`,value:A}),t[30]=A,t[31]=j);let M=String(u.runningTasksCount??0),N;t[32]===M?N=t[33]:(N=(0,G.jsx)(B,{label:`Running tasks`,value:M}),t[32]=M,t[33]=N);let P=String(u.pendingTasksCount??0),F;t[34]===P?F=t[35]:(F=(0,G.jsx)(B,{label:`Pending tasks`,value:P}),t[34]=P,t[35]=F);let I=String(u.registeredContainerInstancesCount??0),L;t[36]===I?L=t[37]:(L=(0,G.jsx)(B,{label:`Registered instances`,value:I}),t[36]=I,t[37]=L);let K;t[38]!==E||t[39]!==D||t[40]!==j||t[41]!==N||t[42]!==F||t[43]!==L?(K=(0,G.jsxs)(z,{children:[T,(0,G.jsxs)(z.Content,{children:[E,D,j,N,F,L]})]}),t[38]=E,t[39]=D,t[40]=j,t[41]=N,t[42]=F,t[43]=L,t[44]=K):K=t[44];let q;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,G.jsxs)(te,{children:[(0,G.jsx)(H,{value:`services`,children:`Services`}),(0,G.jsx)(H,{value:`tasks`,children:`Tasks`}),(0,G.jsx)(H,{value:`infrastructure`,children:`Infrastructure`}),(0,G.jsx)(H,{value:`tags`,children:`Tags`})]}),t[45]=q):q=t[45];let J;t[46]===n?J=t[47]:(J=(0,G.jsx)(ne,{value:`services`,children:(0,G.jsx)(ae,{clusterName:n})}),t[46]=n,t[47]=J);let Y;t[48]===n?Y=t[49]:(Y=(0,G.jsx)(ne,{value:`tasks`,children:(0,G.jsx)(oe,{clusterName:n})}),t[48]=n,t[49]=Y);let X;t[50]===n?X=t[51]:(X=(0,G.jsx)(ne,{value:`infrastructure`,children:(0,G.jsx)(ie,{clusterName:n})}),t[50]=n,t[51]=X);let Z;t[52]===g?Z=t[53]:(Z=(0,G.jsx)(ne,{value:`tags`,children:g.length===0?(0,G.jsx)(`p`,{className:`text-muted-foreground`,children:`No tags.`}):(0,G.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,G.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,G.jsx)(`thead`,{children:(0,G.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Key`}),(0,G.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Value`})]})}),(0,G.jsx)(`tbody`,{children:g.map(se)})]})})}),t[52]=g,t[53]=Z);let Q;t[54]!==J||t[55]!==Y||t[56]!==X||t[57]!==Z?(Q=(0,G.jsxs)(re,{className:`mt-6`,defaultValue:`services`,children:[q,J,Y,X,Z]}),t[54]=J,t[55]=Y,t[56]=X,t[57]=Z,t[58]=Q):Q=t[58];let ce=`This permanently deletes cluster "${n}" and force-stops every task it holds. This cannot be undone.`,$;t[59]!==d.isPending||t[60]!==p||t[61]!==i||t[62]!==ce?($=(0,G.jsx)(R,{description:ce,isPending:d.isPending,onConfirm:p,onOpenChange:c,open:i,title:`Delete cluster`}),t[59]=d.isPending,t[60]=p,t[61]=i,t[62]=ce,t[63]=$):$=t[63];let le;return t[64]!==K||t[65]!==Q||t[66]!==$||t[67]!==C||t[68]!==w?(le=(0,G.jsxs)(G.Fragment,{children:[_,C,w,K,Q,$]}),t[64]=K,t[65]=Q,t[66]=$,t[67]=C,t[68]=w,t[69]=le):le=t[69],le}function se(e){return(0,G.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.key}),(0,G.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.value})]},e.key)}function ce(){let e=(0,U.c)(2),{clusterName:t}=N.useParams(),n;return e[0]===t?n=e[1]:(n=(0,G.jsx)(Q,{clusterName:t}),e[0]=t,e[1]=n),n}export{ce as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_clusterName2.js b/spinifex/services/spinifexui/frontend/dist/assets/_clusterName2.js index 2156dfe69..b473f2d19 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_clusterName2.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_clusterName2.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{Xt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{t as c}from"./circle-arrow-up.js";import{t as l}from"./trash-2.js";import{t as u}from"./triangle-alert.js";import{t as d}from"./button.js";import{O as f,c as p}from"./ec2.js";import{C as m,S as h,T as g,_,b as v,c as y,f as b,h as x,i as S,l as C,m as w,n as T,p as E,r as D,s as O,u as k,v as A,w as j,x as M,y as N}from"./eks.js";import{a as P,i as F,l as I,n as L,o as R,r as z,s as B,t as V,u as H}from"./eks2.js";import{y as U}from"./iam2.js";import{Ln as W,Sn as ee,Xn as G,Zn as te,_n as ne,an as K,dn as re,fn as ie,hn as ae,in as q,mn as oe,pn as se,rn as J,sn as Y,u as ce,vn as le,xn as ue,yn as de}from"./index.js";import{i as fe,l as pe,n as me,o as he,r as ge,s as _e,t as ve}from"./alert-dialog.js";import{t as ye}from"./delete-confirmation-dialog.js";import{n as X,t as Z}from"./detail-row.js";import{t as be}from"./badge.js";import{i as xe,n as Se,r as Ce,t as we}from"./tabs.js";import{t as Te}from"./json-editor.js";var Ee=s(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),De=r(),Q=t(n(),1),$=e();function Oe(e){return e?.split(`/`).pop()??e??``}function ke(e){let t=(0,De.c)(55),{clusterName:n,principalArn:r,onDelete:i}=e,a;t[0]!==n||t[1]!==r?(a=L(n,r),t[0]=n,t[1]=r,t[2]=a):a=t[2];let{data:o}=te(a),s;t[3]!==n||t[4]!==r?(s=R(n,r),t[3]=n,t[4]=r,t[5]=s):s=t[5];let{data:c}=te(s),u=E(),f=h(),[p,m]=(0,Q.useState)(T[0].arn),g=o?.accessEntry,_;t[6]===c?.associatedAccessPolicies?_=t[7]:(_=c?.associatedAccessPolicies??[],t[6]=c?.associatedAccessPolicies,t[7]=_);let v=_,y;t[8]===r?y=t[9]:(y=(0,$.jsx)(`span`,{className:`truncate font-mono text-xs`,children:r}),t[8]=r,t[9]=y);let b;t[10]!==i||t[11]!==r?(b=()=>i(r),t[10]=i,t[11]=r,t[12]=b):b=t[12];let x;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(l,{className:`size-4`}),t[13]=x):x=t[13];let S;t[14]===b?S=t[15]:(S=(0,$.jsx)(d,{onClick:b,size:`icon`,variant:`ghost`,children:x}),t[14]=b,t[15]=S);let C;t[16]!==y||t[17]!==S?(C=(0,$.jsx)(X.Header,{children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[y,S]})}),t[16]=y,t[17]=S,t[18]=C):C=t[18];let w=g?.type,D;t[19]===w?D=t[20]:(D=(0,$.jsx)(Z,{label:`Type`,value:w}),t[19]=w,t[20]=D);let O;t[21]===g?O=t[22]:(O=g?.kubernetesGroups?.length?g.kubernetesGroups.join(`, `):`—`,t[21]=g,t[22]=O);let k;t[23]===O?k=t[24]:(k=(0,$.jsx)(Z,{label:`Kubernetes groups`,value:O}),t[23]=O,t[24]=k);let A;t[25]!==v||t[26]!==n||t[27]!==f||t[28]!==r?(A=v.length>0?(0,$.jsx)(`div`,{className:`space-y-1`,children:v.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{children:Oe(e.policyArn)}),(0,$.jsx)(d,{onClick:()=>f.mutate({clusterName:n,principalArn:r,policyArn:e.policyArn??``}),size:`sm`,variant:`ghost`,children:`Remove`})]},e.policyArn))}):`—`,t[25]=v,t[26]=n,t[27]=f,t[28]=r,t[29]=A):A=t[29];let j;t[30]===A?j=t[31]:(j=(0,$.jsx)(Z,{label:`Access policies`,value:A}),t[30]=A,t[31]=j);let M;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(M=e=>m(e.target.value),t[32]=M):M=t[32];let N;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(N=T.map(Ae),t[33]=N):N=t[33];let P;t[34]===p?P=t[35]:(P=(0,$.jsx)(`select`,{"aria-label":`Access policy`,className:`h-7 flex-1 rounded-md border border-input bg-input/20 px-2 text-sm`,onChange:M,value:p,children:N}),t[34]=p,t[35]=P);let F;t[36]!==u||t[37]!==n||t[38]!==p||t[39]!==r?(F=()=>u.mutate({clusterName:n,principalArn:r,policyArn:p,accessScopeType:`cluster`}),t[36]=u,t[37]=n,t[38]=p,t[39]=r,t[40]=F):F=t[40];let I;t[41]!==u.isPending||t[42]!==F?(I=(0,$.jsx)(d,{disabled:u.isPending,onClick:F,size:`sm`,children:`Associate`}),t[41]=u.isPending,t[42]=F,t[43]=I):I=t[43];let z;t[44]!==P||t[45]!==I?(z=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 pt-2`,children:[P,I]}),t[44]=P,t[45]=I,t[46]=z):z=t[46];let B;t[47]!==D||t[48]!==k||t[49]!==j||t[50]!==z?(B=(0,$.jsxs)(X.Content,{children:[D,k,j,z]}),t[47]=D,t[48]=k,t[49]=j,t[50]=z,t[51]=B):B=t[51];let V;return t[52]!==B||t[53]!==C?(V=(0,$.jsxs)(X,{children:[C,B]}),t[52]=B,t[53]=C,t[54]=V):V=t[54],V}function Ae(e){return(0,$.jsx)(`option`,{value:e.arn,children:e.name},e.arn)}function je(e){let t=(0,De.c)(41),{clusterName:n,open:r,onOpenChange:i}=e,a=w(),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o={resolver:le(C),defaultValues:{principalArn:``,kubernetesGroups:``}},t[0]=o):o=t[0];let{formState:s,handleSubmit:c,register:l,reset:u}=ue(o),{errors:d}=s,f;t[1]!==n||t[2]!==a||t[3]!==i||t[4]!==u?(f=async e=>{await a.mutateAsync({clusterName:n,principalArn:e.principalArn,kubernetesGroups:e.kubernetesGroups.split(`,`).map(Me).filter(Boolean)}),u(),i(!1)},t[1]=n,t[2]=a,t[3]=i,t[4]=u,t[5]=f):f=t[5];let p=f,m;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(_e,{children:(0,$.jsx)(pe,{children:`Add access entry`})}),t[6]=m):m=t[6];let h;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ae-principal`,children:`IAM principal ARN`})}),t[7]=h):h=t[7];let g=!!d.principalArn,_;t[8]===l?_=t[9]:(_=l(`principalArn`),t[8]=l,t[9]=_);let v;t[10]!==g||t[11]!==_?(v=(0,$.jsx)(W,{"aria-invalid":g,id:`ae-principal`,placeholder:`arn:aws:iam::000000000000:role/my-role`,..._}),t[10]=g,t[11]=_,t[12]=v):v=t[12];let y;t[13]===d.principalArn?y=t[14]:(y=(0,$.jsx)(K,{errors:[d.principalArn]}),t[13]=d.principalArn,t[14]=y);let b;t[15]!==v||t[16]!==y?(b=(0,$.jsxs)(J,{children:[h,v,y]}),t[15]=v,t[16]=y,t[17]=b):b=t[17];let x;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ae-groups`,children:`Kubernetes groups`})}),t[18]=x):x=t[18];let S;t[19]===l?S=t[20]:(S=l(`kubernetesGroups`),t[19]=l,t[20]=S);let T;t[21]===S?T=t[22]:(T=(0,$.jsxs)(J,{children:[x,(0,$.jsx)(W,{id:`ae-groups`,placeholder:`system:masters`,...S})]}),t[21]=S,t[22]=T);let E;t[23]!==b||t[24]!==T?(E=(0,$.jsxs)(`form`,{className:`space-y-4`,id:`add-access-entry-form`,children:[b,T]}),t[23]=b,t[24]=T,t[25]=E):E=t[25];let D;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(ge,{children:`Cancel`}),t[26]=D):D=t[26];let O;t[27]!==c||t[28]!==p?(O=e=>{e.preventDefault(),c(p)()},t[27]=c,t[28]=p,t[29]=O):O=t[29];let k=a.isPending?`Creating…`:`Create`,A;t[30]!==a.isPending||t[31]!==O||t[32]!==k?(A=(0,$.jsxs)(he,{children:[D,(0,$.jsx)(me,{disabled:a.isPending,onClick:O,children:k})]}),t[30]=a.isPending,t[31]=O,t[32]=k,t[33]=A):A=t[33];let j;t[34]!==E||t[35]!==A?(j=(0,$.jsxs)(fe,{children:[m,E,A]}),t[34]=E,t[35]=A,t[36]=j):j=t[36];let M;return t[37]!==i||t[38]!==r||t[39]!==j?(M=(0,$.jsx)(ve,{onOpenChange:i,open:r,children:j}),t[37]=i,t[38]=r,t[39]=j,t[40]=M):M=t[40],M}function Me(e){return e.trim()}function Ne(e){let t=(0,De.c)(25),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=V(n),t[0]=n,t[1]=r);let{data:i}=G(r),a=A(),[o,s]=(0,Q.useState)(!1),[c,l]=(0,Q.useState)(),u;t[2]===i.accessEntries?u=t[3]:(u=i.accessEntries??[],t[2]=i.accessEntries,t[3]=u);let f=u,p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,$.jsx)(d,{onClick:()=>s(!0),size:`sm`,children:`Add access entry`})}),t[4]=p):p=t[4];let m;t[5]!==n||t[6]!==f?(m=f.length>0?(0,$.jsx)(`div`,{className:`space-y-4`,children:f.map(e=>(0,$.jsx)(ke,{clusterName:n,onDelete:l,principalArn:e},e))}):(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No access entries.`}),t[5]=n,t[6]=f,t[7]=m):m=t[7];let h;t[8]!==n||t[9]!==o?(h=(0,$.jsx)(je,{clusterName:n,onOpenChange:s,open:o}),t[8]=n,t[9]=o,t[10]=h):h=t[10];let g=`Delete access entry for "${c??``}"?`,_;t[11]!==n||t[12]!==a||t[13]!==c?(_=()=>{c&&a.mutate({clusterName:n,principalArn:c},{onSuccess:()=>l(void 0)})},t[11]=n,t[12]=a,t[13]=c,t[14]=_):_=t[14];let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>!e&&l(void 0),t[15]=v):v=t[15];let y=c!==void 0,b;t[16]!==a.isPending||t[17]!==g||t[18]!==_||t[19]!==y?(b=(0,$.jsx)(ye,{description:g,isPending:a.isPending,onConfirm:_,onOpenChange:v,open:y,title:`Delete access entry`}),t[16]=a.isPending,t[17]=g,t[18]=_,t[19]=y,t[20]=b):b=t[20];let x;return t[21]!==b||t[22]!==m||t[23]!==h?(x=(0,$.jsxs)($.Fragment,{children:[p,m,h,b]}),t[21]=b,t[22]=m,t[23]=h,t[24]=x):x=t[24],x}var Pe=new Set([`CREATING`,`UPDATING`,`DELETING`]),Fe=5e3,Ie=`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`;function Le(e){let t=(0,De.c)(95),{clusterName:n,catalog:r,installed:i,open:a,onOpenChange:o}=e,s=x(),c;t[0]===i?c=t[1]:(c=e=>!i.includes(e.addonName??``),t[0]=i,t[1]=c);let l=r.filter(c),u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u={resolver:le(k),defaultValues:{addonName:``,addonVersion:``,serviceAccountRoleArn:``,configurationValues:``}},t[2]=u):u=t[2];let{control:d,formState:f,handleSubmit:p,register:m,reset:h,setValue:g}=ue(u),{errors:_}=f,v;t[3]===d?v=t[4]:(v={control:d,name:`addonName`},t[3]=d,t[4]=v);let y=ee(v),b;t[5]===d?b=t[6]:(b={control:d,name:`addonVersion`},t[5]=d,t[6]=b);let S=ee(b),C;t[7]===y?C=t[8]:(C=e=>e.addonName===y,t[7]=y,t[8]=C);let w=r.find(C)?.addonVersions??[],T;t[9]===S?T=t[10]:(T=e=>e.addonVersion===S,t[9]=S,t[10]=T);let E=w.find(T)?.requiresIamPermissions??!1,D;t[11]!==r||t[12]!==g?(D=e=>{let t=r.find(t=>t.addonName===e)?.addonVersions?.[0]?.addonVersion??``;g(`addonName`,e,{shouldValidate:!0}),g(`addonVersion`,t,{shouldValidate:!0})},t[11]=r,t[12]=g,t[13]=D):D=t[13];let O=D,A;t[14]!==n||t[15]!==s||t[16]!==o||t[17]!==h?(A=async e=>{await s.mutateAsync({clusterName:n,addonName:e.addonName,addonVersion:e.addonVersion||void 0,serviceAccountRoleArn:e.serviceAccountRoleArn.trim()||void 0,configurationValues:e.configurationValues.trim()||void 0}),h(),o(!1)},t[14]=n,t[15]=s,t[16]=o,t[17]=h,t[18]=A):A=t[18];let j=A,M=ve,N=fe,P;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,$.jsx)(_e,{children:(0,$.jsx)(pe,{children:`Add add-on`})}),t[19]=P):P=t[19];let F;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`addon-name`,children:`Add-on`})}),t[20]=F):F=t[20];let I=!!_.addonName,L;t[21]===O?L=t[22]:(L=e=>O(e.target.value),t[21]=O,t[22]=L);let R;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsx)(`option`,{value:``,children:`Select add-on`}),t[23]=R):R=t[23];let z=l.map(ze),B;t[24]!==y||t[25]!==I||t[26]!==L||t[27]!==z?(B=(0,$.jsxs)(`select`,{"aria-invalid":I,className:Ie,id:`addon-name`,onChange:L,value:y,children:[R,z]}),t[24]=y,t[25]=I,t[26]=L,t[27]=z,t[28]=B):B=t[28];let V;t[29]===_.addonName?V=t[30]:(V=(0,$.jsx)(K,{errors:[_.addonName]}),t[29]=_.addonName,t[30]=V);let H;t[31]!==B||t[32]!==V?(H=(0,$.jsxs)(J,{children:[F,B,V]}),t[31]=B,t[32]=V,t[33]=H):H=t[33];let U=J,G;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`addon-version`,children:`Version`})}),t[34]=G):G=t[34];let te=!!_.addonVersion,ne=Ie,re=w.length===0,ie;t[35]===g?ie=t[36]:(ie=e=>g(`addonVersion`,e.target.value,{shouldValidate:!0}),t[35]=g,t[36]=ie);let ae=w.map(Re),q;t[37]!==S||t[38]!==te||t[39]!==ne||t[40]!==re||t[41]!==ie||t[42]!==ae?(q=(0,$.jsx)(`select`,{"aria-invalid":te,className:ne,disabled:re,id:`addon-version`,onChange:ie,value:S,children:ae}),t[37]=S,t[38]=te,t[39]=ne,t[40]=re,t[41]=ie,t[42]=ae,t[43]=q):q=t[43];let oe;t[44]===_.addonVersion?oe=t[45]:(oe=(0,$.jsx)(K,{errors:[_.addonVersion]}),t[44]=_.addonVersion,t[45]=oe);let se;t[46]!==U||t[47]!==G||t[48]!==q||t[49]!==oe?(se=(0,$.jsxs)(U,{children:[G,q,oe]}),t[46]=U,t[47]=G,t[48]=q,t[49]=oe,t[50]=se):se=t[50];let ce;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`addon-role`,children:`Service account IAM role ARN`})}),t[51]=ce):ce=t[51];let ye;t[52]===m?ye=t[53]:(ye=m(`serviceAccountRoleArn`),t[52]=m,t[53]=ye);let X;t[54]===ye?X=t[55]:(X=(0,$.jsx)(W,{id:`addon-role`,placeholder:`arn:aws:iam::…:role/…`,...ye}),t[54]=ye,t[55]=X);let Z;t[56]===E?Z=t[57]:(Z=E&&(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`This add-on needs IAM permissions — provide an IRSA role ARN.`}),t[56]=E,t[57]=Z);let be;t[58]!==X||t[59]!==Z?(be=(0,$.jsxs)(J,{children:[ce,X,Z]}),t[58]=X,t[59]=Z,t[60]=be):be=t[60];let xe;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(xe=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`addon-config`,children:`Configuration values (JSON)`})}),t[61]=xe):xe=t[61];let Se;t[62]===_.configurationValues?Se=t[63]:(Se=e=>{let{field:t}=e,{onBlur:n,onChange:r,ref:i,value:a}=t;return(0,$.jsx)(Te,{error:!!_.configurationValues,id:`addon-config`,onBlur:n,onChange:r,placeholder:`{"replicaCount": 2}`,ref:i,rows:4,value:a})},t[62]=_.configurationValues,t[63]=Se);let Ce;t[64]!==d||t[65]!==Se?(Ce=(0,$.jsx)(de,{control:d,name:`configurationValues`,render:Se}),t[64]=d,t[65]=Se,t[66]=Ce):Ce=t[66];let we;t[67]===_.configurationValues?we=t[68]:(we=(0,$.jsx)(K,{errors:[_.configurationValues]}),t[67]=_.configurationValues,t[68]=we);let Ee;t[69]!==Ce||t[70]!==we?(Ee=(0,$.jsxs)(J,{children:[xe,Ce,we]}),t[69]=Ce,t[70]=we,t[71]=Ee):Ee=t[71];let Q;t[72]!==H||t[73]!==se||t[74]!==be||t[75]!==Ee?(Q=(0,$.jsxs)(`form`,{className:`space-y-4`,id:`add-addon-form`,children:[H,se,be,Ee]}),t[72]=H,t[73]=se,t[74]=be,t[75]=Ee,t[76]=Q):Q=t[76];let Oe;t[77]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,$.jsx)(ge,{children:`Cancel`}),t[77]=Oe):Oe=t[77];let ke;t[78]!==p||t[79]!==j?(ke=e=>{e.preventDefault(),p(j)()},t[78]=p,t[79]=j,t[80]=ke):ke=t[80];let Ae=s.isPending?`Adding…`:`Add`,je;t[81]!==s.isPending||t[82]!==ke||t[83]!==Ae?(je=(0,$.jsxs)(he,{children:[Oe,(0,$.jsx)(me,{disabled:s.isPending,onClick:ke,children:Ae})]}),t[81]=s.isPending,t[82]=ke,t[83]=Ae,t[84]=je):je=t[84];let Me;t[85]!==N||t[86]!==P||t[87]!==Q||t[88]!==je?(Me=(0,$.jsxs)(N,{className:`max-h-[85vh] overflow-y-auto`,children:[P,Q,je]}),t[85]=N,t[86]=P,t[87]=Q,t[88]=je,t[89]=Me):Me=t[89];let Ne;return t[90]!==M||t[91]!==o||t[92]!==a||t[93]!==Me?(Ne=(0,$.jsx)(M,{onOpenChange:o,open:a,children:Me}),t[90]=M,t[91]=o,t[92]=a,t[93]=Me,t[94]=Ne):Ne=t[94],Ne}function Re(e,t){return(0,$.jsxs)(`option`,{value:e.addonVersion??``,children:[e.addonVersion,t===0?` (latest)`:``]},e.addonVersion)}function ze(e){return(0,$.jsx)(`option`,{value:e.addonName??``,children:e.addonName},e.addonName)}function Be(e){let t=(0,De.c)(48),{clusterName:n,addonName:r,current:i,versions:a,open:o,onOpenChange:s}=e,c=j(),[l,u]=(0,Q.useState)(i.addonVersion??``),[d,f]=(0,Q.useState)(i.serviceAccountRoleArn??``),[p,m]=(0,Q.useState)(i.configurationValues??``),[h,g]=(0,Q.useState)(),[_,v]=(0,Q.useState)(o);o!==_&&(v(o),o&&(u(i.addonVersion??``),f(i.serviceAccountRoleArn??``),m(i.configurationValues??``),g(void 0)));let y;t[0]!==r||t[1]!==n||t[2]!==p||t[3]!==s||t[4]!==d||t[5]!==c||t[6]!==l?(y=()=>{let e=O.safeParse(p);if(!e.success){g(e.error.issues[0]?.message??`Configuration must be valid JSON`);return}g(void 0),c.mutate({clusterName:n,addonName:r,addonVersion:l||void 0,serviceAccountRoleArn:d.trim()||void 0,configurationValues:p.trim()||void 0},{onSuccess:()=>s(!1)})},t[0]=r,t[1]=n,t[2]=p,t[3]=s,t[4]=d,t[5]=c,t[6]=l,t[7]=y):y=t[7];let b=y,x;t[8]===r?x=t[9]:(x=(0,$.jsx)(_e,{children:(0,$.jsxs)(pe,{children:[`Update `,r]})}),t[8]=r,t[9]=x);let S;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`update-addon-version`,children:`Version`})}),t[10]=S):S=t[10];let C=a.length===0,w;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>u(e.target.value),t[11]=w):w=t[11];let T;t[12]===a?T=t[13]:(T=a.map(Ve),t[12]=a,t[13]=T);let E;t[14]!==C||t[15]!==T||t[16]!==l?(E=(0,$.jsxs)(J,{children:[S,(0,$.jsx)(`select`,{className:Ie,disabled:C,id:`update-addon-version`,onChange:w,value:l,children:T})]}),t[14]=C,t[15]=T,t[16]=l,t[17]=E):E=t[17];let D;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`update-addon-role`,children:`Service account IAM role ARN`})}),t[18]=D):D=t[18];let k;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(k=e=>f(e.target.value),t[19]=k):k=t[19];let A;t[20]===d?A=t[21]:(A=(0,$.jsxs)(J,{children:[D,(0,$.jsx)(W,{id:`update-addon-role`,onChange:k,placeholder:`arn:aws:iam::…:role/…`,value:d})]}),t[20]=d,t[21]=A);let M;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`update-addon-config`,children:`Configuration values (JSON)`})}),t[22]=M):M=t[22];let N=!!h,P;t[23]!==p||t[24]!==N?(P=(0,$.jsxs)(J,{children:[M,(0,$.jsx)(Te,{error:N,id:`update-addon-config`,onChange:m,rows:4,value:p})]}),t[23]=p,t[24]=N,t[25]=P):P=t[25];let F;t[26]!==A||t[27]!==P||t[28]!==E?(F=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[E,A,P]}),t[26]=A,t[27]=P,t[28]=E,t[29]=F):F=t[29];let I;t[30]===h?I=t[31]:(I=h&&(0,$.jsx)(`p`,{className:`mt-2 text-xs text-destructive`,children:h}),t[30]=h,t[31]=I);let L;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsx)(ge,{children:`Cancel`}),t[32]=L):L=t[32];let R;t[33]===b?R=t[34]:(R=e=>{e.preventDefault(),b()},t[33]=b,t[34]=R);let z=c.isPending?`Updating…`:`Update`,B;t[35]!==R||t[36]!==z||t[37]!==c.isPending?(B=(0,$.jsxs)(he,{children:[L,(0,$.jsx)(me,{disabled:c.isPending,onClick:R,children:z})]}),t[35]=R,t[36]=z,t[37]=c.isPending,t[38]=B):B=t[38];let V;t[39]!==F||t[40]!==I||t[41]!==B||t[42]!==x?(V=(0,$.jsxs)(fe,{className:`max-h-[85vh] overflow-y-auto`,children:[x,F,I,B]}),t[39]=F,t[40]=I,t[41]=B,t[42]=x,t[43]=V):V=t[43];let H;return t[44]!==s||t[45]!==o||t[46]!==V?(H=(0,$.jsx)(ve,{onOpenChange:s,open:o,children:V}),t[44]=s,t[45]=o,t[46]=V,t[47]=H):H=t[47],H}function Ve(e){return(0,$.jsx)(`option`,{value:e,children:e},e)}function He(e){let t=(0,De.c)(53),{clusterName:n,addonName:r,catalog:i,onDelete:a}=e,o;t[0]!==r||t[1]!==n?(o=z(n,r),t[0]=r,t[1]=n,t[2]=o):o=t[2];let s;t[3]===o?s=t[4]:(s={...o,refetchInterval:We},t[3]=o,t[4]=s);let{data:u}=te(s),[f,p]=(0,Q.useState)(!1),m=u?.addon,h=m?.health?.issues?.[0]?.message,g;t[5]!==r||t[6]!==i?(g=i.find(e=>e.addonName===r)?.addonVersions?.map(Ue).filter(Boolean)??[],t[5]=r,t[6]=i,t[7]=g):g=t[7];let _=g,v;t[8]===r?v=t[9]:(v=(0,$.jsx)(`span`,{children:r}),t[8]=r,t[9]=v);let b=m?.status,x;t[10]===b?x=t[11]:(x=y(b),t[10]=b,t[11]=x);let S=m?.status??`UNKNOWN`,C;t[12]!==x||t[13]!==S?(C=(0,$.jsx)(be,{variant:x,children:S}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>p(!0),t[15]=w):w=t[15];let T;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(d,{"aria-label":`Update add-on`,onClick:w,size:`icon`,variant:`ghost`,children:(0,$.jsx)(c,{className:`size-4`})}),t[16]=T):T=t[16];let E;t[17]!==r||t[18]!==a?(E=()=>a(r),t[17]=r,t[18]=a,t[19]=E):E=t[19];let D;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(l,{className:`size-4`}),t[20]=D):D=t[20];let O;t[21]===E?O=t[22]:(O=(0,$.jsx)(d,{"aria-label":`Remove add-on`,onClick:E,size:`icon`,variant:`ghost`,children:D}),t[21]=E,t[22]=O);let k;t[23]!==O||t[24]!==C?(k=(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[C,T,O]}),t[23]=O,t[24]=C,t[25]=k):k=t[25];let A;t[26]!==k||t[27]!==v?(A=(0,$.jsx)(X.Header,{children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[v,k]})}),t[26]=k,t[27]=v,t[28]=A):A=t[28];let j=m?.addonVersion,M;t[29]===j?M=t[30]:(M=(0,$.jsx)(Z,{label:`Version`,value:j}),t[29]=j,t[30]=M);let N=m?.serviceAccountRoleArn,P;t[31]===N?P=t[32]:(P=(0,$.jsx)(Z,{label:`IRSA role`,value:N}),t[31]=N,t[32]=P);let F;t[33]===h?F=t[34]:(F=h&&(0,$.jsx)(Z,{label:`Issue`,value:(0,$.jsx)(`span`,{className:`text-destructive`,children:h})}),t[33]=h,t[34]=F);let I;t[35]!==M||t[36]!==P||t[37]!==F?(I=(0,$.jsxs)(X.Content,{children:[M,P,F]}),t[35]=M,t[36]=P,t[37]=F,t[38]=I):I=t[38];let L=m?.addonVersion,R=m?.serviceAccountRoleArn,B=m?.configurationValues,V;t[39]!==L||t[40]!==R||t[41]!==B?(V={addonVersion:L,serviceAccountRoleArn:R,configurationValues:B},t[39]=L,t[40]=R,t[41]=B,t[42]=V):V=t[42];let H;t[43]!==r||t[44]!==n||t[45]!==f||t[46]!==V||t[47]!==_?(H=(0,$.jsx)(Be,{addonName:r,clusterName:n,current:V,onOpenChange:p,open:f,versions:_}),t[43]=r,t[44]=n,t[45]=f,t[46]=V,t[47]=_,t[48]=H):H=t[48];let U;return t[49]!==A||t[50]!==I||t[51]!==H?(U=(0,$.jsxs)(X,{children:[A,I,H]}),t[49]=A,t[50]=I,t[51]=H,t[52]=U):U=t[52],U}function Ue(e){return e.addonVersion??``}function We(e){return Pe.has(e.state.data?.addon?.status??``)?Fe:!1}function Ge(e){let t=(0,De.c)(31),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=P(n),t[0]=n,t[1]=r);let{data:i}=G(r),{data:a}=te(F),o=N(),[s,c]=(0,Q.useState)(!1),[l,u]=(0,Q.useState)(),f;t[2]===i.addons?f=t[3]:(f=i.addons??[],t[2]=i.addons,t[3]=f);let p=f,m;t[4]===a?.addons?m=t[5]:(m=a?.addons??[],t[4]=a?.addons,t[5]=m);let h=m,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Add-on manifests are staged; activation completes when the cluster reports the workload ready.`}),t[6]=g):g=t[6];let _;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsxs)(`div`,{className:`mb-4 flex items-center justify-between gap-4`,children:[g,(0,$.jsx)(d,{onClick:()=>c(!0),size:`sm`,children:`Add add-on`})]}),t[7]=_):_=t[7];let v;t[8]!==p||t[9]!==h||t[10]!==n?(v=p.length>0?(0,$.jsx)(`div`,{className:`space-y-4`,children:p.map(e=>(0,$.jsx)(He,{addonName:e,catalog:h,clusterName:n,onDelete:u},e))}):(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No add-ons installed.`}),t[8]=p,t[9]=h,t[10]=n,t[11]=v):v=t[11];let y;t[12]!==p||t[13]!==h||t[14]!==n||t[15]!==s?(y=(0,$.jsx)(Le,{catalog:h,clusterName:n,installed:p,onOpenChange:c,open:s}),t[12]=p,t[13]=h,t[14]=n,t[15]=s,t[16]=y):y=t[16];let b=`Remove add-on "${l??``}" from the cluster?`,x;t[17]!==n||t[18]!==o||t[19]!==l?(x=()=>{l&&o.mutate({clusterName:n,addonName:l},{onSuccess:()=>u(void 0)})},t[17]=n,t[18]=o,t[19]=l,t[20]=x):x=t[20];let S;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>!e&&u(void 0),t[21]=S):S=t[21];let C=l!==void 0,w;t[22]!==o.isPending||t[23]!==C||t[24]!==b||t[25]!==x?(w=(0,$.jsx)(ye,{confirmLabel:`Remove`,description:b,isPending:o.isPending,onConfirm:x,onOpenChange:S,open:C,pendingLabel:`Removing…`,title:`Remove add-on`}),t[22]=o.isPending,t[23]=C,t[24]=b,t[25]=x,t[26]=w):w=t[26];let T;return t[27]!==w||t[28]!==v||t[29]!==y?(T=(0,$.jsxs)($.Fragment,{children:[_,v,y,w]}),t[27]=w,t[28]=v,t[29]=y,t[30]=T):T=t[30],T}function Ke(e){let t=(0,De.c)(6),{to:n,id:r}=e,a;t[0]===r?a=t[1]:(a={id:r},t[0]=r,t[1]=a);let o;return t[2]!==r||t[3]!==a||t[4]!==n?(o=(0,$.jsx)(i,{className:`font-mono text-primary underline-offset-2 hover:underline`,params:a,to:n,children:r}),t[2]=r,t[3]=a,t[4]=n,t[5]=o):o=t[5],o}function qe(e){let t=(0,De.c)(45),{cluster:n}=e,r=n?.resourcesVpcConfig,i;t[0]===r?.subnetIds?i=t[1]:(i=r?.subnetIds??[],t[0]=r?.subnetIds,t[1]=i);let a=i,o;t[2]===r?.securityGroupIds?o=t[3]:(o=r?.securityGroupIds??[],t[2]=r?.securityGroupIds,t[3]=o);let s=o,c;t[4]===r?.publicAccessCidrs?c=t[5]:(c=r?.publicAccessCidrs??[],t[4]=r?.publicAccessCidrs,t[5]=c);let l=c,u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,$.jsx)(X.Header,{children:`VPC`}),t[6]=u):u=t[6];let d;t[7]===r?d=t[8]:(d=r?.vpcId?(0,$.jsx)(Ke,{id:r.vpcId,to:`/ec2/describe-vpcs/$id`}):void 0,t[7]=r,t[8]=d);let f;t[9]===d?f=t[10]:(f=(0,$.jsx)(Z,{label:`VPC`,value:d}),t[9]=d,t[10]=f);let p=n?.endpoint,m;t[11]===p?m=t[12]:(m=(0,$.jsx)(Z,{label:`API server endpoint`,value:p}),t[11]=p,t[12]=m);let h=r?.endpointPublicAccess?`Enabled`:`Disabled`,g;t[13]===h?g=t[14]:(g=(0,$.jsx)(Z,{label:`Public access`,value:h}),t[13]=h,t[14]=g);let _=r?.endpointPrivateAccess?`Enabled`:`Disabled`,v;t[15]===_?v=t[16]:(v=(0,$.jsx)(Z,{label:`Private access`,value:_}),t[15]=_,t[16]=v);let y;t[17]!==l||t[18]!==r?.endpointPublicAccess?(y=r?.endpointPublicAccess&&(0,$.jsx)(Z,{label:`Public access CIDRs`,value:l.length>0?(0,$.jsx)(`div`,{className:`space-y-1 font-mono text-xs`,children:l.map(Xe)}):`Any (0.0.0.0/0)`}),t[17]=l,t[18]=r?.endpointPublicAccess,t[19]=y):y=t[19];let b;t[20]!==g||t[21]!==v||t[22]!==y||t[23]!==f||t[24]!==m?(b=(0,$.jsxs)(X,{children:[u,(0,$.jsxs)(X.Content,{children:[f,m,g,v,y]})]}),t[20]=g,t[21]=v,t[22]=y,t[23]=f,t[24]=m,t[25]=b):b=t[25];let x;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(X.Header,{children:`Subnets`}),t[26]=x):x=t[26];let S;t[27]===a?S=t[28]:(S=(0,$.jsxs)(X,{children:[x,(0,$.jsx)(X.Content,{children:a.length>0?(0,$.jsx)(`div`,{className:`space-y-1`,children:a.map(Ye)}):(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No subnets.`})})]}),t[27]=a,t[28]=S);let C;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,$.jsx)(X.Header,{children:`Security groups`}),t[29]=C):C=t[29];let w;t[30]===r?w=t[31]:(w=r?.clusterSecurityGroupId?(0,$.jsx)(Ke,{id:r.clusterSecurityGroupId,to:`/ec2/describe-security-groups/$id`}):void 0,t[30]=r,t[31]=w);let T;t[32]===w?T=t[33]:(T=(0,$.jsx)(Z,{label:`Cluster security group`,value:w}),t[32]=w,t[33]=T);let E;t[34]===s?E=t[35]:(E=s.length>0?(0,$.jsx)(`div`,{className:`space-y-1`,children:s.map(Je)}):`—`,t[34]=s,t[35]=E);let D;t[36]===E?D=t[37]:(D=(0,$.jsx)(Z,{label:`Additional security groups`,value:E}),t[36]=E,t[37]=D);let O;t[38]!==T||t[39]!==D?(O=(0,$.jsxs)(X,{children:[C,(0,$.jsxs)(X.Content,{children:[T,D]})]}),t[38]=T,t[39]=D,t[40]=O):O=t[40];let k;return t[41]!==b||t[42]!==S||t[43]!==O?(k=(0,$.jsxs)($.Fragment,{children:[b,S,O]}),t[41]=b,t[42]=S,t[43]=O,t[44]=k):k=t[44],k}function Je(e){return(0,$.jsx)(Ke,{id:e,to:`/ec2/describe-security-groups/$id`},e)}function Ye(e){return(0,$.jsx)(Ke,{id:e,to:`/ec2/describe-subnets/$id`},e)}function Xe(e){return(0,$.jsx)(`div`,{children:e},e)}function Ze(e){return!!e&&(e.endsWith(`_GPU`)||e.endsWith(`_NVIDIA`))}function Qe(e,t){let n=t.find(t=>t.InstanceType===e);return!!n&&se(n)}function $e(e){let t=(0,De.c)(44),{clusterName:n,nodegroupName:r,current:i,open:a,onOpenChange:o}=e,s=m(),[c,l]=(0,Q.useState)(i.minSize??0),[u,d]=(0,Q.useState)(i.desiredSize??0),[f,p]=(0,Q.useState)(i.maxSize??0),[h,g]=(0,Q.useState)(),[_,v]=(0,Q.useState)(a);a!==_&&(v(a),a&&(l(i.minSize??0),d(i.desiredSize??0),p(i.maxSize??0),g(void 0)));let y;t[0]!==n||t[1]!==u||t[2]!==f||t[3]!==c||t[4]!==r||t[5]!==o||t[6]!==s?(y=()=>{if(!(c<=u&&u<=f)){g(`Sizes must satisfy min ≤ desired ≤ max`);return}s.mutate({clusterName:n,nodegroupName:r,minSize:c,desiredSize:u,maxSize:f},{onSuccess:()=>o(!1)})},t[0]=n,t[1]=u,t[2]=f,t[3]=c,t[4]=r,t[5]=o,t[6]=s,t[7]=y):y=t[7];let b=y,x;t[8]===r?x=t[9]:(x=(0,$.jsx)(_e,{children:(0,$.jsxs)(pe,{children:[`Scale `,r]})}),t[8]=r,t[9]=x);let S;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`scale-min`,children:`Min`})}),t[10]=S):S=t[10];let C;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>l(Number(e.target.value)),t[11]=C):C=t[11];let w;t[12]===c?w=t[13]:(w=(0,$.jsxs)(J,{children:[S,(0,$.jsx)(W,{id:`scale-min`,onChange:C,type:`number`,value:c})]}),t[12]=c,t[13]=w);let T;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`scale-desired`,children:`Desired`})}),t[14]=T):T=t[14];let E;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(E=e=>d(Number(e.target.value)),t[15]=E):E=t[15];let D;t[16]===u?D=t[17]:(D=(0,$.jsxs)(J,{children:[T,(0,$.jsx)(W,{id:`scale-desired`,onChange:E,type:`number`,value:u})]}),t[16]=u,t[17]=D);let O;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`scale-max`,children:`Max`})}),t[18]=O):O=t[18];let k;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(k=e=>p(Number(e.target.value)),t[19]=k):k=t[19];let A;t[20]===f?A=t[21]:(A=(0,$.jsxs)(J,{children:[O,(0,$.jsx)(W,{id:`scale-max`,onChange:k,type:`number`,value:f})]}),t[20]=f,t[21]=A);let j;t[22]!==A||t[23]!==w||t[24]!==D?(j=(0,$.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[w,D,A]}),t[22]=A,t[23]=w,t[24]=D,t[25]=j):j=t[25];let M;t[26]===h?M=t[27]:(M=h&&(0,$.jsx)(`p`,{className:`mt-2 text-xs text-destructive`,children:h}),t[26]=h,t[27]=M);let N;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(ge,{children:`Cancel`}),t[28]=N):N=t[28];let P;t[29]===b?P=t[30]:(P=e=>{e.preventDefault(),b()},t[29]=b,t[30]=P);let F=s.isPending?`Scaling…`:`Scale`,I;t[31]!==s.isPending||t[32]!==P||t[33]!==F?(I=(0,$.jsxs)(he,{children:[N,(0,$.jsx)(me,{disabled:s.isPending,onClick:P,children:F})]}),t[31]=s.isPending,t[32]=P,t[33]=F,t[34]=I):I=t[34];let L;t[35]!==j||t[36]!==M||t[37]!==I||t[38]!==x?(L=(0,$.jsxs)(fe,{children:[x,j,M,I]}),t[35]=j,t[36]=M,t[37]=I,t[38]=x,t[39]=L):L=t[39];let R;return t[40]!==o||t[41]!==a||t[42]!==L?(R=(0,$.jsx)(ve,{onOpenChange:o,open:a,children:L}),t[40]=o,t[41]=a,t[42]=L,t[43]=R):R=t[43],R}function et(e){let t=(0,De.c)(71),{clusterName:n,clusterVersion:r,nodegroupName:i,onDelete:a}=e,o;t[0]!==n||t[1]!==i?(o=I(n,i),t[0]=n,t[1]=i,t[2]=o):o=t[2];let{data:s}=te(o),u=g(),f=s?.nodegroup,p=f?.scalingConfig,[m,h]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)(!1),y=!!r&&!!f?.version&&f.version!==r,b=f?.amiType,x;t[3]===b?x=t[4]:(x=Ze(b),t[3]=b,t[4]=x);let S=x,C;t[5]===i?C=t[6]:(C=(0,$.jsx)(`span`,{children:i}),t[5]=i,t[6]=C);let w;t[7]===S?w=t[8]:(w=S&&(0,$.jsx)(be,{variant:`secondary`,children:`GPU`}),t[7]=S,t[8]=w);let T;t[9]!==C||t[10]!==w?(T=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[C,w]}),t[9]=C,t[10]=w,t[11]=T):T=t[11];let E;t[12]===y?E=t[13]:(E=y&&(0,$.jsx)(d,{"aria-label":`Update node group version`,onClick:()=>v(!0),size:`icon`,variant:`ghost`,children:(0,$.jsx)(c,{className:`size-4`})}),t[12]=y,t[13]=E);let D;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>h(!0),t[14]=D):D=t[14];let O;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(d,{"aria-label":`Scale node group`,onClick:D,size:`icon`,variant:`ghost`,children:(0,$.jsx)(Ee,{className:`size-4`})}),t[15]=O):O=t[15];let k;t[16]!==i||t[17]!==a?(k=()=>a(i),t[16]=i,t[17]=a,t[18]=k):k=t[18];let A;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(l,{className:`size-4`}),t[19]=A):A=t[19];let j;t[20]===k?j=t[21]:(j=(0,$.jsx)(d,{"aria-label":`Delete node group`,onClick:k,size:`icon`,variant:`ghost`,children:A}),t[20]=k,t[21]=j);let M;t[22]!==j||t[23]!==E?(M=(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[E,O,j]}),t[22]=j,t[23]=E,t[24]=M):M=t[24];let N;t[25]!==M||t[26]!==T?(N=(0,$.jsx)(X.Header,{children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[T,M]})}),t[25]=M,t[26]=T,t[27]=N):N=t[27];let P=f?.status,F;t[28]===P?F=t[29]:(F=(0,$.jsx)(Z,{label:`Status`,value:P}),t[28]=P,t[29]=F);let L=y?`${f?.version} (cluster on ${r})`:f?.version,R;t[30]===L?R=t[31]:(R=(0,$.jsx)(Z,{label:`Kubernetes version`,value:L}),t[30]=L,t[31]=R);let z;t[32]===f?.instanceTypes?z=t[33]:(z=f?.instanceTypes?.join(`, `),t[32]=f?.instanceTypes,t[33]=z);let B;t[34]===z?B=t[35]:(B=(0,$.jsx)(Z,{label:`Instance types`,value:z}),t[34]=z,t[35]=B);let V=f?.amiType,H;t[36]===V?H=t[37]:(H=(0,$.jsx)(Z,{label:`AMI type`,value:V}),t[36]=V,t[37]=H);let U=f?.capacityType,W;t[38]===U?W=t[39]:(W=(0,$.jsx)(Z,{label:`Capacity type`,value:U}),t[38]=U,t[39]=W);let ee=p?`${p.minSize} / ${p.desiredSize} / ${p.maxSize}`:void 0,G;t[40]===ee?G=t[41]:(G=(0,$.jsx)(Z,{label:`Scaling (min / desired / max)`,value:ee}),t[40]=ee,t[41]=G);let ne;t[42]!==F||t[43]!==R||t[44]!==B||t[45]!==H||t[46]!==W||t[47]!==G?(ne=(0,$.jsxs)(X.Content,{children:[F,R,B,H,W,G]}),t[42]=F,t[43]=R,t[44]=B,t[45]=H,t[46]=W,t[47]=G,t[48]=ne):ne=t[48];let K;t[49]===p?K=t[50]:(K=p??{},t[49]=p,t[50]=K);let re;t[51]!==n||t[52]!==i||t[53]!==m||t[54]!==K?(re=(0,$.jsx)($e,{clusterName:n,current:K,nodegroupName:i,onOpenChange:h,open:m}),t[51]=n,t[52]=i,t[53]=m,t[54]=K,t[55]=re):re=t[55];let ie=`Update node group "${i}" from ${f?.version} to ${r}? Nodes are replaced in a rolling update.`,ae;t[56]!==n||t[57]!==r||t[58]!==i||t[59]!==u?(ae=()=>u.mutate({clusterName:n,nodegroupName:i,version:r},{onSuccess:()=>v(!1)}),t[56]=n,t[57]=r,t[58]=i,t[59]=u,t[60]=ae):ae=t[60];let q;t[61]!==_||t[62]!==ie||t[63]!==ae||t[64]!==u.isPending?(q=(0,$.jsx)(ye,{confirmLabel:`Update`,description:ie,isPending:u.isPending,onConfirm:ae,onOpenChange:v,open:_,title:`Update node group version`}),t[61]=_,t[62]=ie,t[63]=ae,t[64]=u.isPending,t[65]=q):q=t[65];let oe;return t[66]!==N||t[67]!==ne||t[68]!==re||t[69]!==q?(oe=(0,$.jsxs)(X,{children:[N,ne,re,q]}),t[66]=N,t[67]=ne,t[68]=re,t[69]=q,t[70]=oe):oe=t[70],oe}function tt(e){let t=(0,De.c)(141),{clusterName:n,vpcId:r,open:i,onOpenChange:a}=e,{data:o}=te(U),{data:s}=te(f),{data:c}=te(p),l=_(),u;t[0]===o?.Roles?u=t[1]:(u=o?.Roles??[],t[0]=o?.Roles,t[1]=u);let d=u,m;t[2]===r?m=t[3]:(m=e=>e.VpcId===r,t[2]=r,t[3]=m);let h=(s?.Subnets??[]).filter(m),g;t[4]===c?.InstanceTypes?g=t[5]:(g=c?.InstanceTypes??[],t[4]=c?.InstanceTypes,t[5]=g);let v=g,y;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(y=le(b),t[6]=y):y=t[6];let x;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(x={resolver:y,defaultValues:{nodegroupName:``,nodeRole:``,subnetIds:[],instanceTypes:`t3.medium`,amiType:`AL2_x86_64`,capacityType:`ON_DEMAND`,diskSize:20,minSize:1,desiredSize:2,maxSize:3}},t[7]=x):x=t[7];let{control:C,formState:w,handleSubmit:T,register:E,reset:O,setValue:k}=ue(x),{errors:A}=w,j;t[8]===C?j=t[9]:(j={control:C,name:`subnetIds`},t[8]=C,t[9]=j);let M=ee(j),N;t[10]===C?N=t[11]:(N={control:C,name:`instanceTypes`},t[10]=C,t[11]=N);let P=ee(N),F;t[12]!==v||t[13]!==P?(F=Qe(P,v),t[12]=v,t[13]=P,t[14]=F):F=t[14];let I=F,L;t[15]!==M||t[16]!==k?(L=e=>{let t=M.includes(e)?M.filter(t=>t!==e):[...M,e];k(`subnetIds`,t,{shouldValidate:!0})},t[15]=M,t[16]=k,t[17]=L):L=t[17];let R=L,z;t[18]!==n||t[19]!==l||t[20]!==a||t[21]!==O?(z=async e=>{await l.mutateAsync({clusterName:n,nodegroupName:e.nodegroupName,nodeRole:e.nodeRole,subnetIds:e.subnetIds,instanceTypes:e.instanceTypes.split(`,`).map(at).filter(Boolean),amiType:e.amiType,capacityType:e.capacityType,diskSize:e.diskSize,minSize:e.minSize,desiredSize:e.desiredSize,maxSize:e.maxSize}),O(),a(!1)},t[18]=n,t[19]=l,t[20]=a,t[21]=O,t[22]=z):z=t[22];let B=z,V=ve,H=fe,G;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(_e,{children:(0,$.jsx)(pe,{children:`Add node group`})}),t[23]=G):G=t[23];let ne;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(ne=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ng-name`,children:`Name`})}),t[24]=ne):ne=t[24];let re=!!A.nodegroupName,ae;t[25]===E?ae=t[26]:(ae=E(`nodegroupName`),t[25]=E,t[26]=ae);let oe;t[27]!==re||t[28]!==ae?(oe=(0,$.jsx)(W,{"aria-invalid":re,id:`ng-name`,placeholder:`my-nodegroup`,...ae}),t[27]=re,t[28]=ae,t[29]=oe):oe=t[29];let se;t[30]===A.nodegroupName?se=t[31]:(se=(0,$.jsx)(K,{errors:[A.nodegroupName]}),t[30]=A.nodegroupName,t[31]=se);let ce;t[32]!==oe||t[33]!==se?(ce=(0,$.jsxs)(J,{children:[ne,oe,se]}),t[32]=oe,t[33]=se,t[34]=ce):ce=t[34];let ye;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(ye=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ng-role`,children:`Node IAM role`})}),t[35]=ye):ye=t[35];let X=!!A.nodeRole,Z;t[36]===E?Z=t[37]:(Z=E(`nodeRole`),t[36]=E,t[37]=Z);let be;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(be=(0,$.jsx)(`option`,{value:``,children:`Select role`}),t[38]=be):be=t[38];let xe;t[39]===d?xe=t[40]:(xe=d.map(it),t[39]=d,t[40]=xe);let Se;t[41]!==X||t[42]!==Z||t[43]!==xe?(Se=(0,$.jsxs)(`select`,{"aria-invalid":X,className:`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`,id:`ng-role`,...Z,children:[be,xe]}),t[41]=X,t[42]=Z,t[43]=xe,t[44]=Se):Se=t[44];let Ce;t[45]===A.nodeRole?Ce=t[46]:(Ce=(0,$.jsx)(K,{errors:[A.nodeRole]}),t[45]=A.nodeRole,t[46]=Ce);let we;t[47]!==Se||t[48]!==Ce?(we=(0,$.jsxs)(J,{children:[ye,Se,Ce]}),t[47]=Se,t[48]=Ce,t[49]=we):we=t[49];let Te=J,Ee;t[50]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=(0,$.jsx)(Y,{children:`Subnets`}),t[50]=Ee):Ee=t[50];let Q=h.length===0?(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No subnets in the cluster VPC.`}):(0,$.jsx)(`div`,{className:`space-y-1`,children:h.map(e=>(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,$.jsx)(`input`,{"aria-label":`Subnet ${e.SubnetId}`,checked:M.includes(e.SubnetId??``),onChange:()=>R(e.SubnetId??``),type:`checkbox`}),(0,$.jsxs)(`span`,{className:`font-mono`,children:[e.SubnetId,` · `,e.CidrBlock]})]},e.SubnetId))}),Oe;t[51]===A.subnetIds?Oe=t[52]:(Oe=(0,$.jsx)(K,{errors:[A.subnetIds]}),t[51]=A.subnetIds,t[52]=Oe);let ke;t[53]!==Te||t[54]!==Ee||t[55]!==Q||t[56]!==Oe?(ke=(0,$.jsxs)(Te,{children:[Ee,Q,Oe]}),t[53]=Te,t[54]=Ee,t[55]=Q,t[56]=Oe,t[57]=ke):ke=t[57];let Ae;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ng-instance-type`,children:`Instance type`})}),t[58]=Ae):Ae=t[58];let je;t[59]!==A.instanceTypes||t[60]!==v?(je=e=>{let{field:t}=e;return(0,$.jsx)(ie,{"aria-invalid":!!A.instanceTypes,id:`ng-instance-type`,instanceTypes:v,onValueChange:t.onChange,value:t.value})},t[59]=A.instanceTypes,t[60]=v,t[61]=je):je=t[61];let Me;t[62]!==C||t[63]!==je?(Me=(0,$.jsx)(de,{control:C,name:`instanceTypes`,render:je}),t[62]=C,t[63]=je,t[64]=Me):Me=t[64];let Ne;t[65]===I?Ne=t[66]:(Ne=I&&(0,$.jsxs)(q,{children:[`GPU node AMI is auto-selected for this instance type. This node group is tainted `,(0,$.jsx)(`code`,{children:`nvidia.com/gpu=present:NoSchedule`}),` `,`by default, so ordinary pods won't schedule onto GPU workers.`]}),t[65]=I,t[66]=Ne);let Pe;t[67]===A.instanceTypes?Pe=t[68]:(Pe=(0,$.jsx)(K,{errors:[A.instanceTypes]}),t[67]=A.instanceTypes,t[68]=Pe);let Fe;t[69]!==Me||t[70]!==Ne||t[71]!==Pe?(Fe=(0,$.jsxs)(J,{children:[Ae,Me,Ne,Pe]}),t[69]=Me,t[70]=Ne,t[71]=Pe,t[72]=Fe):Fe=t[72];let Ie;t[73]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ng-ami`,children:`AMI type`})}),t[73]=Ie):Ie=t[73];let Le;t[74]===E?Le=t[75]:(Le=E(`amiType`),t[74]=E,t[75]=Le);let Re;t[76]===Symbol.for(`react.memo_cache_sentinel`)?(Re=D.map(rt),t[76]=Re):Re=t[76];let ze;t[77]===Le?ze=t[78]:(ze=(0,$.jsxs)(J,{children:[Ie,(0,$.jsx)(`select`,{className:`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`,id:`ng-ami`,...Le,children:Re})]}),t[77]=Le,t[78]=ze);let Be;t[79]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ng-capacity`,children:`Capacity type`})}),t[79]=Be):Be=t[79];let Ve;t[80]===E?Ve=t[81]:(Ve=E(`capacityType`),t[80]=E,t[81]=Ve);let He;t[82]===Symbol.for(`react.memo_cache_sentinel`)?(He=S.map(nt),t[82]=He):He=t[82];let Ue;t[83]===Ve?Ue=t[84]:(Ue=(0,$.jsxs)(J,{children:[Be,(0,$.jsx)(`select`,{className:`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`,id:`ng-capacity`,...Ve,children:He})]}),t[83]=Ve,t[84]=Ue);let We;t[85]!==ze||t[86]!==Ue?(We=(0,$.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[ze,Ue]}),t[85]=ze,t[86]=Ue,t[87]=We):We=t[87];let Ge;t[88]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ng-disk`,children:`Disk (GB)`})}),t[88]=Ge):Ge=t[88];let Ke;t[89]===E?Ke=t[90]:(Ke=E(`diskSize`,{valueAsNumber:!0}),t[89]=E,t[90]=Ke);let qe;t[91]===Ke?qe=t[92]:(qe=(0,$.jsxs)(J,{children:[Ge,(0,$.jsx)(W,{id:`ng-disk`,type:`number`,...Ke})]}),t[91]=Ke,t[92]=qe);let Je;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(Je=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ng-min`,children:`Min`})}),t[93]=Je):Je=t[93];let Ye;t[94]===E?Ye=t[95]:(Ye=E(`minSize`,{valueAsNumber:!0}),t[94]=E,t[95]=Ye);let Xe;t[96]===Ye?Xe=t[97]:(Xe=(0,$.jsxs)(J,{children:[Je,(0,$.jsx)(W,{id:`ng-min`,type:`number`,...Ye})]}),t[96]=Ye,t[97]=Xe);let Ze;t[98]===Symbol.for(`react.memo_cache_sentinel`)?(Ze=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ng-desired`,children:`Desired`})}),t[98]=Ze):Ze=t[98];let $e;t[99]===E?$e=t[100]:($e=E(`desiredSize`,{valueAsNumber:!0}),t[99]=E,t[100]=$e);let et;t[101]===$e?et=t[102]:(et=(0,$.jsxs)(J,{children:[Ze,(0,$.jsx)(W,{id:`ng-desired`,type:`number`,...$e})]}),t[101]=$e,t[102]=et);let tt;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(tt=(0,$.jsx)(Y,{children:(0,$.jsx)(`label`,{htmlFor:`ng-max`,children:`Max`})}),t[103]=tt):tt=t[103];let ot;t[104]===E?ot=t[105]:(ot=E(`maxSize`,{valueAsNumber:!0}),t[104]=E,t[105]=ot);let st;t[106]===ot?st=t[107]:(st=(0,$.jsxs)(J,{children:[tt,(0,$.jsx)(W,{id:`ng-max`,type:`number`,...ot})]}),t[106]=ot,t[107]=st);let ct;t[108]!==qe||t[109]!==Xe||t[110]!==et||t[111]!==st?(ct=(0,$.jsxs)(`div`,{className:`grid grid-cols-4 gap-3`,children:[qe,Xe,et,st]}),t[108]=qe,t[109]=Xe,t[110]=et,t[111]=st,t[112]=ct):ct=t[112];let lt;t[113]===A.desiredSize?lt=t[114]:(lt=(0,$.jsx)(K,{errors:[A.desiredSize]}),t[113]=A.desiredSize,t[114]=lt);let ut;t[115]!==ce||t[116]!==we||t[117]!==ke||t[118]!==Fe||t[119]!==We||t[120]!==ct||t[121]!==lt?(ut=(0,$.jsxs)(`form`,{className:`space-y-4`,id:`add-nodegroup-form`,children:[ce,we,ke,Fe,We,ct,lt]}),t[115]=ce,t[116]=we,t[117]=ke,t[118]=Fe,t[119]=We,t[120]=ct,t[121]=lt,t[122]=ut):ut=t[122];let dt;t[123]===Symbol.for(`react.memo_cache_sentinel`)?(dt=(0,$.jsx)(ge,{children:`Cancel`}),t[123]=dt):dt=t[123];let ft;t[124]!==T||t[125]!==B?(ft=e=>{e.preventDefault(),T(B)()},t[124]=T,t[125]=B,t[126]=ft):ft=t[126];let pt=l.isPending?`Creating…`:`Create`,mt;t[127]!==l.isPending||t[128]!==ft||t[129]!==pt?(mt=(0,$.jsxs)(he,{children:[dt,(0,$.jsx)(me,{disabled:l.isPending,onClick:ft,children:pt})]}),t[127]=l.isPending,t[128]=ft,t[129]=pt,t[130]=mt):mt=t[130];let ht;t[131]!==H||t[132]!==G||t[133]!==ut||t[134]!==mt?(ht=(0,$.jsxs)(H,{className:`max-h-[85vh] overflow-y-auto`,children:[G,ut,mt]}),t[131]=H,t[132]=G,t[133]=ut,t[134]=mt,t[135]=ht):ht=t[135];let gt;return t[136]!==V||t[137]!==a||t[138]!==i||t[139]!==ht?(gt=(0,$.jsx)(V,{onOpenChange:a,open:i,children:ht}),t[136]=V,t[137]=a,t[138]=i,t[139]=ht,t[140]=gt):gt=t[140],gt}function nt(e){return(0,$.jsx)(`option`,{value:e,children:e},e)}function rt(e){return(0,$.jsx)(`option`,{value:e,children:e},e)}function it(e){return(0,$.jsx)(`option`,{value:e.Arn??``,children:e.RoleName},e.Arn)}function at(e){return e.trim()}function ot(e){let t=(0,De.c)(27),{clusterName:n,clusterVersion:r,vpcId:i}=e,a;t[0]===n?a=t[1]:(a=H(n),t[0]=n,t[1]=a);let{data:o}=G(a),s=M(),[c,l]=(0,Q.useState)(!1),[u,f]=(0,Q.useState)(),p;t[2]===o.nodegroups?p=t[3]:(p=o.nodegroups??[],t[2]=o.nodegroups,t[3]=p);let m=p,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,$.jsx)(d,{onClick:()=>l(!0),size:`sm`,children:`Add node group`})}),t[4]=h):h=t[4];let g;t[5]!==n||t[6]!==r||t[7]!==m?(g=m.length>0?(0,$.jsx)(`div`,{className:`space-y-4`,children:m.map(e=>(0,$.jsx)(et,{clusterName:n,clusterVersion:r,nodegroupName:e,onDelete:f},e))}):(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No node groups.`}),t[5]=n,t[6]=r,t[7]=m,t[8]=g):g=t[8];let _;t[9]!==n||t[10]!==c||t[11]!==i?(_=(0,$.jsx)(tt,{clusterName:n,onOpenChange:l,open:c,vpcId:i}),t[9]=n,t[10]=c,t[11]=i,t[12]=_):_=t[12];let v=`Delete node group "${u??``}"? This terminates its nodes.`,y;t[13]!==n||t[14]!==s||t[15]!==u?(y=()=>{u&&s.mutate({clusterName:n,nodegroupName:u},{onSuccess:()=>f(void 0)})},t[13]=n,t[14]=s,t[15]=u,t[16]=y):y=t[16];let b;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>!e&&f(void 0),t[17]=b):b=t[17];let x=u!==void 0,S;t[18]!==s.isPending||t[19]!==v||t[20]!==y||t[21]!==x?(S=(0,$.jsx)(ye,{description:v,isPending:s.isPending,onConfirm:y,onOpenChange:b,open:x,title:`Delete node group`}),t[18]=s.isPending,t[19]=v,t[20]=y,t[21]=x,t[22]=S):S=t[22];let C;return t[23]!==S||t[24]!==g||t[25]!==_?(C=(0,$.jsxs)($.Fragment,{children:[h,g,_,S]}),t[23]=S,t[24]=g,t[25]=_,t[26]=C):C=t[26],C}var st=`ap-southeast-2`;function ct(e){switch(e??``){case`ACTIVE`:return`default`;case`FAILED`:return`destructive`;default:return`secondary`}}function lt(e){let t=(0,De.c)(134),{clusterName:n}=e,r=a(),[i,s]=(0,Q.useState)(!1),c;t[0]===n?c=t[1]:(c=B(n),t[0]=n,t[1]=c);let{data:f}=G(c),p=v(),m=f.cluster,h,g,_,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N;if(t[2]!==m?.arn||t[3]!==m?.health?.issues||t[4]!==m?.status||t[5]!==n||t[6]!==p||t[7]!==r){let e=m?.health?.issues??[],i;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(i={type:`bin`,value:`aws eks update-kubeconfig`},t[26]=i):i=t[26];let a;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(a={type:`flag`,value:` --name `},t[27]=a):a=t[27];let o;t[28]===n?o=t[29]:(o={type:`value`,value:n},t[28]=n,t[29]=o);let c;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(c={type:`flag`,value:` --region `},t[30]=c):c=t[30];let f;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(f={type:`value`,value:st},t[31]=f):f=t[31];let v;t[32]===o?v=t[33]:(v={label:`Configure kubectl`,parts:[i,a,o,c,f]},t[32]=o,t[33]=v);let P;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(P={label:`Verify access`,parts:[{type:`bin`,value:`kubectl get nodes`}]},t[34]=P):P=t[34];let F;t[35]===v?F=t[36]:(F=[v,P],t[35]=v,t[36]=F),S=F;let I;t[37]!==n||t[38]!==p||t[39]!==r?(I=function(){p.mutate(n,{onSuccess:()=>{r({to:`/eks/list-clusters`})}})},t[37]=n,t[38]=p,t[39]=r,t[40]=I):I=t[40],x=I,t[41]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,$.jsx)(ne,{to:`/eks/list-clusters`,children:`Clusters`}),t[41]=C):C=t[41];let L;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(L=()=>s(!0),t[42]=L):L=t[42];let R;t[43]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsxs)(d,{onClick:L,size:`sm`,variant:`destructive`,children:[(0,$.jsx)(l,{className:`size-4`}),`Delete`]}),t[43]=R):R=t[43];let z=m?.status,B;t[44]===z?B=t[45]:(B=ct(z),t[44]=z,t[45]=B);let V=m?.status??`UNKNOWN`,H;t[46]!==B||t[47]!==V?(H=(0,$.jsx)(be,{variant:B,children:V}),t[46]=B,t[47]=V,t[48]=H):H=t[48];let U=e.length>0&&(0,$.jsxs)(be,{variant:`destructive`,children:[(0,$.jsx)(u,{className:`size-3`}),e.length===1?`1 health issue`:`${e.length} health issues`]}),W;t[49]!==H||t[50]!==U?(W=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[R,H,U]}),t[49]=H,t[50]=U,t[51]=W):W=t[51],t[52]!==n||t[53]!==W?(w=(0,$.jsx)(re,{actions:W,subtitle:`Cluster Details`,title:n}),t[52]=n,t[53]=W,t[54]=w):w=t[54],t[55]!==p.error||t[56]!==p.isError?(T=p.isError&&(0,$.jsx)(oe,{error:p.error instanceof Error?p.error:void 0,msg:`Failed to delete cluster.`}),t[55]=p.error,t[56]=p.isError,t[57]=T):T=t[57],b=we,M=`overview`,t[58]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsxs)(Se,{children:[(0,$.jsx)(xe,{value:`overview`,children:`Overview`}),(0,$.jsx)(xe,{value:`compute`,children:`Compute`}),(0,$.jsx)(xe,{value:`addons`,children:`Add-ons`}),(0,$.jsx)(xe,{value:`access`,children:`Access`}),(0,$.jsx)(xe,{value:`networking`,children:`Networking`}),(0,$.jsx)(xe,{value:`connect`,children:`Connect`})]}),t[58]=N):N=t[58],y=Ce,j=`overview`,_=X,t[59]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(X.Header,{children:`Cluster`}),t[59]=A):A=t[59],g=X.Content;let ee=m?.arn;t[60]===ee?O=t[61]:(O=(0,$.jsx)(Z,{label:`ARN`,value:ee}),t[60]=ee,t[61]=O);let G=m?.status;t[62]===G?k=t[63]:(k=(0,$.jsx)(Z,{label:`Status`,value:G}),t[62]=G,t[63]=k),h=Z,E=`Health`,D=e.length>0?e.map(ut).filter(Boolean).join(`; `):`OK`,t[2]=m?.arn,t[3]=m?.health?.issues,t[4]=m?.status,t[5]=n,t[6]=p,t[7]=r,t[8]=h,t[9]=g,t[10]=_,t[11]=y,t[12]=b,t[13]=x,t[14]=S,t[15]=C,t[16]=w,t[17]=T,t[18]=E,t[19]=D,t[20]=O,t[21]=k,t[22]=A,t[23]=j,t[24]=M,t[25]=N}else h=t[8],g=t[9],_=t[10],y=t[11],b=t[12],x=t[13],S=t[14],C=t[15],w=t[16],T=t[17],E=t[18],D=t[19],O=t[20],k=t[21],A=t[22],j=t[23],M=t[24],N=t[25];let P;t[64]!==h||t[65]!==E||t[66]!==D?(P=(0,$.jsx)(h,{label:E,value:D}),t[64]=h,t[65]=E,t[66]=D,t[67]=P):P=t[67];let F=m?.version,I;t[68]===F?I=t[69]:(I=(0,$.jsx)(Z,{label:`Kubernetes version`,value:F}),t[68]=F,t[69]=I);let L=m?.platformVersion,R;t[70]===L?R=t[71]:(R=(0,$.jsx)(Z,{label:`Platform version`,value:L}),t[70]=L,t[71]=R);let z=m?.endpoint,V;t[72]===z?V=t[73]:(V=(0,$.jsx)(Z,{label:`Endpoint`,value:z}),t[72]=z,t[73]=V);let H=m?.identity?.oidc?.issuer,U;t[74]===H?U=t[75]:(U=(0,$.jsx)(Z,{label:`OIDC issuer`,value:H}),t[74]=H,t[75]=U);let W=m?.resourcesVpcConfig?.vpcId,ee;t[76]===W?ee=t[77]:(ee=(0,$.jsx)(Z,{label:`VPC`,value:W}),t[76]=W,t[77]=ee);let te=m?.createdAt,K;t[78]===te?K=t[79]:(K=o(te),t[78]=te,t[79]=K);let ie;t[80]===K?ie=t[81]:(ie=(0,$.jsx)(Z,{label:`Created at`,value:K}),t[80]=K,t[81]=ie);let q;t[82]!==g||t[83]!==P||t[84]!==I||t[85]!==R||t[86]!==V||t[87]!==U||t[88]!==ee||t[89]!==ie||t[90]!==O||t[91]!==k?(q=(0,$.jsxs)(g,{children:[O,k,P,I,R,V,U,ee,ie]}),t[82]=g,t[83]=P,t[84]=I,t[85]=R,t[86]=V,t[87]=U,t[88]=ee,t[89]=ie,t[90]=O,t[91]=k,t[92]=q):q=t[92];let se;t[93]!==_||t[94]!==q||t[95]!==A?(se=(0,$.jsxs)(_,{children:[A,q]}),t[93]=_,t[94]=q,t[95]=A,t[96]=se):se=t[96];let J;t[97]!==y||t[98]!==se||t[99]!==j?(J=(0,$.jsx)(y,{value:j,children:se}),t[97]=y,t[98]=se,t[99]=j,t[100]=J):J=t[100];let Y=m?.version,ce=m?.resourcesVpcConfig?.vpcId,le;t[101]!==n||t[102]!==Y||t[103]!==ce?(le=(0,$.jsx)(Ce,{value:`compute`,children:(0,$.jsx)(ot,{clusterName:n,clusterVersion:Y,vpcId:ce})}),t[101]=n,t[102]=Y,t[103]=ce,t[104]=le):le=t[104];let ue;t[105]===n?ue=t[106]:(ue=(0,$.jsx)(Ce,{value:`addons`,children:(0,$.jsx)(Ge,{clusterName:n})}),t[105]=n,t[106]=ue);let de;t[107]===n?de=t[108]:(de=(0,$.jsx)(Ce,{value:`access`,children:(0,$.jsx)(Ne,{clusterName:n})}),t[107]=n,t[108]=de);let fe;t[109]===m?fe=t[110]:(fe=(0,$.jsx)(Ce,{value:`networking`,children:(0,$.jsx)(qe,{cluster:m})}),t[109]=m,t[110]=fe);let pe;t[111]===S?pe=t[112]:(pe=(0,$.jsx)(Ce,{value:`connect`,children:(0,$.jsx)(ae,{commands:S})}),t[111]=S,t[112]=pe);let me;t[113]!==b||t[114]!==J||t[115]!==le||t[116]!==ue||t[117]!==de||t[118]!==fe||t[119]!==pe||t[120]!==M||t[121]!==N?(me=(0,$.jsxs)(b,{defaultValue:M,children:[N,J,le,ue,de,fe,pe]}),t[113]=b,t[114]=J,t[115]=le,t[116]=ue,t[117]=de,t[118]=fe,t[119]=pe,t[120]=M,t[121]=N,t[122]=me):me=t[122];let he=`This permanently deletes cluster "${n}" and its control plane. This cannot be undone.`,ge;t[123]!==p.isPending||t[124]!==x||t[125]!==i||t[126]!==he?(ge=(0,$.jsx)(ye,{description:he,isPending:p.isPending,onConfirm:x,onOpenChange:s,open:i,title:`Delete cluster`}),t[123]=p.isPending,t[124]=x,t[125]=i,t[126]=he,t[127]=ge):ge=t[127];let _e;return t[128]!==C||t[129]!==w||t[130]!==T||t[131]!==me||t[132]!==ge?(_e=(0,$.jsxs)($.Fragment,{children:[C,w,T,me,ge]}),t[128]=C,t[129]=w,t[130]=T,t[131]=me,t[132]=ge,t[133]=_e):_e=t[133],_e}function ut(e){return e.message}function dt(){let e=(0,De.c)(2),{clusterName:t}=ce.useParams(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(lt,{clusterName:t}),e[0]=t,e[1]=n),n}export{dt as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{Xt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{t as c}from"./circle-arrow-up.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{O as d,c as f}from"./ec2.js";import{C as p,S as m,T as h,_ as g,b as _,c as v,f as y,h as b,i as x,l as S,m as C,n as w,p as T,r as E,s as D,u as O,v as k,w as A,x as j,y as M}from"./eks.js";import{a as N,i as P,l as F,n as I,o as L,r as R,s as z,t as B,u as V}from"./eks2.js";import{y as H}from"./iam2.js";import{$n as U,An as ee,B as W,Cn as G,Dn as te,En as ne,F as re,I as ie,L as ae,R as oe,Rn as K,Sn as se,Tn as ce,U as le,V as ue,Vn as de,bn as fe,dn as q,er as pe,fn as me,hn as J,kn as he,pn as ge,u as _e,xn as ve,yn as ye}from"./index.js";import{t as be}from"./delete-confirmation-dialog.js";import{n as Y,t as X}from"./detail-row.js";import{t as xe}from"./badge.js";import{i as Se,n as Ce,r as Z,t as we}from"./tabs.js";import{t as Te}from"./json-editor.js";var Ee=s(`sliders-horizontal`,[[`path`,{d:`M10 5H3`,key:`1qgfaw`}],[`path`,{d:`M12 19H3`,key:`yhmn1j`}],[`path`,{d:`M14 3v4`,key:`1sua03`}],[`path`,{d:`M16 17v4`,key:`1q0r14`}],[`path`,{d:`M21 12h-9`,key:`1o4lsq`}],[`path`,{d:`M21 19h-5`,key:`1rlt1p`}],[`path`,{d:`M21 5h-7`,key:`1oszz2`}],[`path`,{d:`M8 10v4`,key:`tgpxqk`}],[`path`,{d:`M8 12H3`,key:`a7s4jb`}]]),De=r(),Q=t(n(),1),$=e();function Oe(e){return e?.split(`/`).pop()??e??``}function ke(e){let t=(0,De.c)(55),{clusterName:n,principalArn:r,onDelete:i}=e,a;t[0]!==n||t[1]!==r?(a=I(n,r),t[0]=n,t[1]=r,t[2]=a):a=t[2];let{data:o}=pe(a),s;t[3]!==n||t[4]!==r?(s=L(n,r),t[3]=n,t[4]=r,t[5]=s):s=t[5];let{data:c}=pe(s),d=T(),f=m(),[p,h]=(0,Q.useState)(w[0].arn),g=o?.accessEntry,_;t[6]===c?.associatedAccessPolicies?_=t[7]:(_=c?.associatedAccessPolicies??[],t[6]=c?.associatedAccessPolicies,t[7]=_);let v=_,y;t[8]===r?y=t[9]:(y=(0,$.jsx)(`span`,{className:`truncate font-mono text-xs`,children:r}),t[8]=r,t[9]=y);let b;t[10]!==i||t[11]!==r?(b=()=>i(r),t[10]=i,t[11]=r,t[12]=b):b=t[12];let x;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(l,{className:`size-4`}),t[13]=x):x=t[13];let S;t[14]===b?S=t[15]:(S=(0,$.jsx)(u,{onClick:b,size:`icon`,variant:`ghost`,children:x}),t[14]=b,t[15]=S);let C;t[16]!==y||t[17]!==S?(C=(0,$.jsx)(Y.Header,{children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[y,S]})}),t[16]=y,t[17]=S,t[18]=C):C=t[18];let E=g?.type,D;t[19]===E?D=t[20]:(D=(0,$.jsx)(X,{label:`Type`,value:E}),t[19]=E,t[20]=D);let O;t[21]===g?O=t[22]:(O=g?.kubernetesGroups?.length?g.kubernetesGroups.join(`, `):`—`,t[21]=g,t[22]=O);let k;t[23]===O?k=t[24]:(k=(0,$.jsx)(X,{label:`Kubernetes groups`,value:O}),t[23]=O,t[24]=k);let A;t[25]!==v||t[26]!==n||t[27]!==f||t[28]!==r?(A=v.length>0?(0,$.jsx)(`div`,{className:`space-y-1`,children:v.map(e=>(0,$.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,$.jsx)(`span`,{children:Oe(e.policyArn)}),(0,$.jsx)(u,{onClick:()=>f.mutate({clusterName:n,principalArn:r,policyArn:e.policyArn??``}),size:`sm`,variant:`ghost`,children:`Remove`})]},e.policyArn))}):`—`,t[25]=v,t[26]=n,t[27]=f,t[28]=r,t[29]=A):A=t[29];let j;t[30]===A?j=t[31]:(j=(0,$.jsx)(X,{label:`Access policies`,value:A}),t[30]=A,t[31]=j);let M;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(M=e=>h(e.target.value),t[32]=M):M=t[32];let N;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(N=w.map(Ae),t[33]=N):N=t[33];let P;t[34]===p?P=t[35]:(P=(0,$.jsx)(`select`,{"aria-label":`Access policy`,className:`h-7 flex-1 rounded-md border border-input bg-input/20 px-2 text-sm`,onChange:M,value:p,children:N}),t[34]=p,t[35]=P);let F;t[36]!==d||t[37]!==n||t[38]!==p||t[39]!==r?(F=()=>d.mutate({clusterName:n,principalArn:r,policyArn:p,accessScopeType:`cluster`}),t[36]=d,t[37]=n,t[38]=p,t[39]=r,t[40]=F):F=t[40];let R;t[41]!==d.isPending||t[42]!==F?(R=(0,$.jsx)(u,{disabled:d.isPending,onClick:F,size:`sm`,children:`Associate`}),t[41]=d.isPending,t[42]=F,t[43]=R):R=t[43];let z;t[44]!==P||t[45]!==R?(z=(0,$.jsxs)(`div`,{className:`flex items-center gap-2 pt-2`,children:[P,R]}),t[44]=P,t[45]=R,t[46]=z):z=t[46];let B;t[47]!==D||t[48]!==k||t[49]!==j||t[50]!==z?(B=(0,$.jsxs)(Y.Content,{children:[D,k,j,z]}),t[47]=D,t[48]=k,t[49]=j,t[50]=z,t[51]=B):B=t[51];let V;return t[52]!==B||t[53]!==C?(V=(0,$.jsxs)(Y,{children:[C,B]}),t[52]=B,t[53]=C,t[54]=V):V=t[54],V}function Ae(e){return(0,$.jsx)(`option`,{value:e.arn,children:e.name},e.arn)}function je(e){let t=(0,De.c)(41),{clusterName:n,open:r,onOpenChange:i}=e,a=C(),o;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(o={resolver:ne(S),defaultValues:{principalArn:``,kubernetesGroups:``}},t[0]=o):o=t[0];let{formState:s,handleSubmit:c,register:l,reset:u}=he(o),{errors:d}=s,f;t[1]!==n||t[2]!==a||t[3]!==i||t[4]!==u?(f=async e=>{await a.mutateAsync({clusterName:n,principalArn:e.principalArn,kubernetesGroups:e.kubernetesGroups.split(`,`).map(Me).filter(Boolean)}),u(),i(!1)},t[1]=n,t[2]=a,t[3]=i,t[4]=u,t[5]=f):f=t[5];let p=f,m;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,$.jsx)(ue,{children:(0,$.jsx)(le,{children:`Add access entry`})}),t[6]=m):m=t[6];let h;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ae-principal`,children:`IAM principal ARN`})}),t[7]=h):h=t[7];let g=!!d.principalArn,_;t[8]===l?_=t[9]:(_=l(`principalArn`),t[8]=l,t[9]=_);let v;t[10]!==g||t[11]!==_?(v=(0,$.jsx)(K,{"aria-invalid":g,id:`ae-principal`,placeholder:`arn:aws:iam::000000000000:role/my-role`,..._}),t[10]=g,t[11]=_,t[12]=v):v=t[12];let y;t[13]===d.principalArn?y=t[14]:(y=(0,$.jsx)(ge,{errors:[d.principalArn]}),t[13]=d.principalArn,t[14]=y);let b;t[15]!==v||t[16]!==y?(b=(0,$.jsxs)(q,{children:[h,v,y]}),t[15]=v,t[16]=y,t[17]=b):b=t[17];let x;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ae-groups`,children:`Kubernetes groups`})}),t[18]=x):x=t[18];let w;t[19]===l?w=t[20]:(w=l(`kubernetesGroups`),t[19]=l,t[20]=w);let T;t[21]===w?T=t[22]:(T=(0,$.jsxs)(q,{children:[x,(0,$.jsx)(K,{id:`ae-groups`,placeholder:`system:masters`,...w})]}),t[21]=w,t[22]=T);let E;t[23]!==b||t[24]!==T?(E=(0,$.jsxs)(`form`,{className:`space-y-4`,id:`add-access-entry-form`,children:[b,T]}),t[23]=b,t[24]=T,t[25]=E):E=t[25];let D;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(ae,{children:`Cancel`}),t[26]=D):D=t[26];let O;t[27]!==c||t[28]!==p?(O=e=>{e.preventDefault(),c(p)()},t[27]=c,t[28]=p,t[29]=O):O=t[29];let k=a.isPending?`Creating…`:`Create`,A;t[30]!==a.isPending||t[31]!==O||t[32]!==k?(A=(0,$.jsxs)(W,{children:[D,(0,$.jsx)(ie,{disabled:a.isPending,onClick:O,children:k})]}),t[30]=a.isPending,t[31]=O,t[32]=k,t[33]=A):A=t[33];let j;t[34]!==E||t[35]!==A?(j=(0,$.jsxs)(oe,{children:[m,E,A]}),t[34]=E,t[35]=A,t[36]=j):j=t[36];let M;return t[37]!==i||t[38]!==r||t[39]!==j?(M=(0,$.jsx)(re,{onOpenChange:i,open:r,children:j}),t[37]=i,t[38]=r,t[39]=j,t[40]=M):M=t[40],M}function Me(e){return e.trim()}function Ne(e){let t=(0,De.c)(25),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=B(n),t[0]=n,t[1]=r);let{data:i}=U(r),a=k(),[o,s]=(0,Q.useState)(!1),[c,l]=(0,Q.useState)(),d;t[2]===i.accessEntries?d=t[3]:(d=i.accessEntries??[],t[2]=i.accessEntries,t[3]=d);let f=d,p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,$.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,$.jsx)(u,{onClick:()=>s(!0),size:`sm`,children:`Add access entry`})}),t[4]=p):p=t[4];let m;t[5]!==n||t[6]!==f?(m=f.length>0?(0,$.jsx)(`div`,{className:`space-y-4`,children:f.map(e=>(0,$.jsx)(ke,{clusterName:n,onDelete:l,principalArn:e},e))}):(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No access entries.`}),t[5]=n,t[6]=f,t[7]=m):m=t[7];let h;t[8]!==n||t[9]!==o?(h=(0,$.jsx)(je,{clusterName:n,onOpenChange:s,open:o}),t[8]=n,t[9]=o,t[10]=h):h=t[10];let g=`Delete access entry for "${c??``}"?`,_;t[11]!==n||t[12]!==a||t[13]!==c?(_=()=>{c&&a.mutate({clusterName:n,principalArn:c},{onSuccess:()=>l(void 0)})},t[11]=n,t[12]=a,t[13]=c,t[14]=_):_=t[14];let v;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(v=e=>!e&&l(void 0),t[15]=v):v=t[15];let y=c!==void 0,b;t[16]!==a.isPending||t[17]!==g||t[18]!==_||t[19]!==y?(b=(0,$.jsx)(be,{description:g,isPending:a.isPending,onConfirm:_,onOpenChange:v,open:y,title:`Delete access entry`}),t[16]=a.isPending,t[17]=g,t[18]=_,t[19]=y,t[20]=b):b=t[20];let x;return t[21]!==b||t[22]!==m||t[23]!==h?(x=(0,$.jsxs)($.Fragment,{children:[p,m,h,b]}),t[21]=b,t[22]=m,t[23]=h,t[24]=x):x=t[24],x}var Pe=new Set([`CREATING`,`UPDATING`,`DELETING`]),Fe=5e3,Ie=`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`;function Le(e){let t=(0,De.c)(95),{clusterName:n,catalog:r,installed:i,open:a,onOpenChange:o}=e,s=b(),c;t[0]===i?c=t[1]:(c=e=>!i.includes(e.addonName??``),t[0]=i,t[1]=c);let l=r.filter(c),u;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(u={resolver:ne(O),defaultValues:{addonName:``,addonVersion:``,serviceAccountRoleArn:``,configurationValues:``}},t[2]=u):u=t[2];let{control:d,formState:f,handleSubmit:p,register:m,reset:h,setValue:g}=he(u),{errors:_}=f,v;t[3]===d?v=t[4]:(v={control:d,name:`addonName`},t[3]=d,t[4]=v);let y=ee(v),x;t[5]===d?x=t[6]:(x={control:d,name:`addonVersion`},t[5]=d,t[6]=x);let S=ee(x),C;t[7]===y?C=t[8]:(C=e=>e.addonName===y,t[7]=y,t[8]=C);let w=r.find(C)?.addonVersions??[],T;t[9]===S?T=t[10]:(T=e=>e.addonVersion===S,t[9]=S,t[10]=T);let E=w.find(T)?.requiresIamPermissions??!1,D;t[11]!==r||t[12]!==g?(D=e=>{let t=r.find(t=>t.addonName===e)?.addonVersions?.[0]?.addonVersion??``;g(`addonName`,e,{shouldValidate:!0}),g(`addonVersion`,t,{shouldValidate:!0})},t[11]=r,t[12]=g,t[13]=D):D=t[13];let k=D,A;t[14]!==n||t[15]!==s||t[16]!==o||t[17]!==h?(A=async e=>{await s.mutateAsync({clusterName:n,addonName:e.addonName,addonVersion:e.addonVersion||void 0,serviceAccountRoleArn:e.serviceAccountRoleArn.trim()||void 0,configurationValues:e.configurationValues.trim()||void 0}),h(),o(!1)},t[14]=n,t[15]=s,t[16]=o,t[17]=h,t[18]=A):A=t[18];let j=A,M=re,N=oe,P;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,$.jsx)(ue,{children:(0,$.jsx)(le,{children:`Add add-on`})}),t[19]=P):P=t[19];let F;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`addon-name`,children:`Add-on`})}),t[20]=F):F=t[20];let I=!!_.addonName,L;t[21]===k?L=t[22]:(L=e=>k(e.target.value),t[21]=k,t[22]=L);let R;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,$.jsx)(`option`,{value:``,children:`Select add-on`}),t[23]=R):R=t[23];let z=l.map(ze),B;t[24]!==y||t[25]!==I||t[26]!==L||t[27]!==z?(B=(0,$.jsxs)(`select`,{"aria-invalid":I,className:Ie,id:`addon-name`,onChange:L,value:y,children:[R,z]}),t[24]=y,t[25]=I,t[26]=L,t[27]=z,t[28]=B):B=t[28];let V;t[29]===_.addonName?V=t[30]:(V=(0,$.jsx)(ge,{errors:[_.addonName]}),t[29]=_.addonName,t[30]=V);let H;t[31]!==B||t[32]!==V?(H=(0,$.jsxs)(q,{children:[F,B,V]}),t[31]=B,t[32]=V,t[33]=H):H=t[33];let U=q,G;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`addon-version`,children:`Version`})}),t[34]=G):G=t[34];let se=!!_.addonVersion,ce=Ie,de=w.length===0,fe;t[35]===g?fe=t[36]:(fe=e=>g(`addonVersion`,e.target.value,{shouldValidate:!0}),t[35]=g,t[36]=fe);let pe=w.map(Re),me;t[37]!==S||t[38]!==se||t[39]!==ce||t[40]!==de||t[41]!==fe||t[42]!==pe?(me=(0,$.jsx)(`select`,{"aria-invalid":se,className:ce,disabled:de,id:`addon-version`,onChange:fe,value:S,children:pe}),t[37]=S,t[38]=se,t[39]=ce,t[40]=de,t[41]=fe,t[42]=pe,t[43]=me):me=t[43];let _e;t[44]===_.addonVersion?_e=t[45]:(_e=(0,$.jsx)(ge,{errors:[_.addonVersion]}),t[44]=_.addonVersion,t[45]=_e);let ve;t[46]!==U||t[47]!==G||t[48]!==me||t[49]!==_e?(ve=(0,$.jsxs)(U,{children:[G,me,_e]}),t[46]=U,t[47]=G,t[48]=me,t[49]=_e,t[50]=ve):ve=t[50];let ye;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(ye=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`addon-role`,children:`Service account IAM role ARN`})}),t[51]=ye):ye=t[51];let be;t[52]===m?be=t[53]:(be=m(`serviceAccountRoleArn`),t[52]=m,t[53]=be);let Y;t[54]===be?Y=t[55]:(Y=(0,$.jsx)(K,{id:`addon-role`,placeholder:`arn:aws:iam::…:role/…`,...be}),t[54]=be,t[55]=Y);let X;t[56]===E?X=t[57]:(X=E&&(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`This add-on needs IAM permissions — provide an IRSA role ARN.`}),t[56]=E,t[57]=X);let xe;t[58]!==Y||t[59]!==X?(xe=(0,$.jsxs)(q,{children:[ye,Y,X]}),t[58]=Y,t[59]=X,t[60]=xe):xe=t[60];let Se;t[61]===Symbol.for(`react.memo_cache_sentinel`)?(Se=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`addon-config`,children:`Configuration values (JSON)`})}),t[61]=Se):Se=t[61];let Ce;t[62]===_.configurationValues?Ce=t[63]:(Ce=e=>{let{field:t}=e,{onBlur:n,onChange:r,ref:i,value:a}=t;return(0,$.jsx)(Te,{error:!!_.configurationValues,id:`addon-config`,onBlur:n,onChange:r,placeholder:`{"replicaCount": 2}`,ref:i,rows:4,value:a})},t[62]=_.configurationValues,t[63]=Ce);let Z;t[64]!==d||t[65]!==Ce?(Z=(0,$.jsx)(te,{control:d,name:`configurationValues`,render:Ce}),t[64]=d,t[65]=Ce,t[66]=Z):Z=t[66];let we;t[67]===_.configurationValues?we=t[68]:(we=(0,$.jsx)(ge,{errors:[_.configurationValues]}),t[67]=_.configurationValues,t[68]=we);let Ee;t[69]!==Z||t[70]!==we?(Ee=(0,$.jsxs)(q,{children:[Se,Z,we]}),t[69]=Z,t[70]=we,t[71]=Ee):Ee=t[71];let Q;t[72]!==H||t[73]!==ve||t[74]!==xe||t[75]!==Ee?(Q=(0,$.jsxs)(`form`,{className:`space-y-4`,id:`add-addon-form`,children:[H,ve,xe,Ee]}),t[72]=H,t[73]=ve,t[74]=xe,t[75]=Ee,t[76]=Q):Q=t[76];let Oe;t[77]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,$.jsx)(ae,{children:`Cancel`}),t[77]=Oe):Oe=t[77];let ke;t[78]!==p||t[79]!==j?(ke=e=>{e.preventDefault(),p(j)()},t[78]=p,t[79]=j,t[80]=ke):ke=t[80];let Ae=s.isPending?`Adding…`:`Add`,je;t[81]!==s.isPending||t[82]!==ke||t[83]!==Ae?(je=(0,$.jsxs)(W,{children:[Oe,(0,$.jsx)(ie,{disabled:s.isPending,onClick:ke,children:Ae})]}),t[81]=s.isPending,t[82]=ke,t[83]=Ae,t[84]=je):je=t[84];let Me;t[85]!==N||t[86]!==P||t[87]!==Q||t[88]!==je?(Me=(0,$.jsxs)(N,{className:`max-h-[85vh] overflow-y-auto`,children:[P,Q,je]}),t[85]=N,t[86]=P,t[87]=Q,t[88]=je,t[89]=Me):Me=t[89];let Ne;return t[90]!==M||t[91]!==o||t[92]!==a||t[93]!==Me?(Ne=(0,$.jsx)(M,{onOpenChange:o,open:a,children:Me}),t[90]=M,t[91]=o,t[92]=a,t[93]=Me,t[94]=Ne):Ne=t[94],Ne}function Re(e,t){return(0,$.jsxs)(`option`,{value:e.addonVersion??``,children:[e.addonVersion,t===0?` (latest)`:``]},e.addonVersion)}function ze(e){return(0,$.jsx)(`option`,{value:e.addonName??``,children:e.addonName},e.addonName)}function Be(e){let t=(0,De.c)(48),{clusterName:n,addonName:r,current:i,versions:a,open:o,onOpenChange:s}=e,c=A(),[l,u]=(0,Q.useState)(i.addonVersion??``),[d,f]=(0,Q.useState)(i.serviceAccountRoleArn??``),[p,m]=(0,Q.useState)(i.configurationValues??``),[h,g]=(0,Q.useState)(),[_,v]=(0,Q.useState)(o);o!==_&&(v(o),o&&(u(i.addonVersion??``),f(i.serviceAccountRoleArn??``),m(i.configurationValues??``),g(void 0)));let y;t[0]!==r||t[1]!==n||t[2]!==p||t[3]!==s||t[4]!==d||t[5]!==c||t[6]!==l?(y=()=>{let e=D.safeParse(p);if(!e.success){g(e.error.issues[0]?.message??`Configuration must be valid JSON`);return}g(void 0),c.mutate({clusterName:n,addonName:r,addonVersion:l||void 0,serviceAccountRoleArn:d.trim()||void 0,configurationValues:p.trim()||void 0},{onSuccess:()=>s(!1)})},t[0]=r,t[1]=n,t[2]=p,t[3]=s,t[4]=d,t[5]=c,t[6]=l,t[7]=y):y=t[7];let b=y,x;t[8]===r?x=t[9]:(x=(0,$.jsx)(ue,{children:(0,$.jsxs)(le,{children:[`Update `,r]})}),t[8]=r,t[9]=x);let S;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`update-addon-version`,children:`Version`})}),t[10]=S):S=t[10];let C=a.length===0,w;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>u(e.target.value),t[11]=w):w=t[11];let T;t[12]===a?T=t[13]:(T=a.map(Ve),t[12]=a,t[13]=T);let E;t[14]!==C||t[15]!==T||t[16]!==l?(E=(0,$.jsxs)(q,{children:[S,(0,$.jsx)(`select`,{className:Ie,disabled:C,id:`update-addon-version`,onChange:w,value:l,children:T})]}),t[14]=C,t[15]=T,t[16]=l,t[17]=E):E=t[17];let O;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`update-addon-role`,children:`Service account IAM role ARN`})}),t[18]=O):O=t[18];let k;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(k=e=>f(e.target.value),t[19]=k):k=t[19];let j;t[20]===d?j=t[21]:(j=(0,$.jsxs)(q,{children:[O,(0,$.jsx)(K,{id:`update-addon-role`,onChange:k,placeholder:`arn:aws:iam::…:role/…`,value:d})]}),t[20]=d,t[21]=j);let M;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`update-addon-config`,children:`Configuration values (JSON)`})}),t[22]=M):M=t[22];let N=!!h,P;t[23]!==p||t[24]!==N?(P=(0,$.jsxs)(q,{children:[M,(0,$.jsx)(Te,{error:N,id:`update-addon-config`,onChange:m,rows:4,value:p})]}),t[23]=p,t[24]=N,t[25]=P):P=t[25];let F;t[26]!==j||t[27]!==P||t[28]!==E?(F=(0,$.jsxs)(`div`,{className:`space-y-4`,children:[E,j,P]}),t[26]=j,t[27]=P,t[28]=E,t[29]=F):F=t[29];let I;t[30]===h?I=t[31]:(I=h&&(0,$.jsx)(`p`,{className:`mt-2 text-xs text-destructive`,children:h}),t[30]=h,t[31]=I);let L;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsx)(ae,{children:`Cancel`}),t[32]=L):L=t[32];let R;t[33]===b?R=t[34]:(R=e=>{e.preventDefault(),b()},t[33]=b,t[34]=R);let z=c.isPending?`Updating…`:`Update`,B;t[35]!==R||t[36]!==z||t[37]!==c.isPending?(B=(0,$.jsxs)(W,{children:[L,(0,$.jsx)(ie,{disabled:c.isPending,onClick:R,children:z})]}),t[35]=R,t[36]=z,t[37]=c.isPending,t[38]=B):B=t[38];let V;t[39]!==F||t[40]!==I||t[41]!==B||t[42]!==x?(V=(0,$.jsxs)(oe,{className:`max-h-[85vh] overflow-y-auto`,children:[x,F,I,B]}),t[39]=F,t[40]=I,t[41]=B,t[42]=x,t[43]=V):V=t[43];let H;return t[44]!==s||t[45]!==o||t[46]!==V?(H=(0,$.jsx)(re,{onOpenChange:s,open:o,children:V}),t[44]=s,t[45]=o,t[46]=V,t[47]=H):H=t[47],H}function Ve(e){return(0,$.jsx)(`option`,{value:e,children:e},e)}function He(e){let t=(0,De.c)(53),{clusterName:n,addonName:r,catalog:i,onDelete:a}=e,o;t[0]!==r||t[1]!==n?(o=R(n,r),t[0]=r,t[1]=n,t[2]=o):o=t[2];let s;t[3]===o?s=t[4]:(s={...o,refetchInterval:We},t[3]=o,t[4]=s);let{data:d}=pe(s),[f,p]=(0,Q.useState)(!1),m=d?.addon,h=m?.health?.issues?.[0]?.message,g;t[5]!==r||t[6]!==i?(g=i.find(e=>e.addonName===r)?.addonVersions?.map(Ue).filter(Boolean)??[],t[5]=r,t[6]=i,t[7]=g):g=t[7];let _=g,y;t[8]===r?y=t[9]:(y=(0,$.jsx)(`span`,{children:r}),t[8]=r,t[9]=y);let b=m?.status,x;t[10]===b?x=t[11]:(x=v(b),t[10]=b,t[11]=x);let S=m?.status??`UNKNOWN`,C;t[12]!==x||t[13]!==S?(C=(0,$.jsx)(xe,{variant:x,children:S}),t[12]=x,t[13]=S,t[14]=C):C=t[14];let w;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(w=()=>p(!0),t[15]=w):w=t[15];let T;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(u,{"aria-label":`Update add-on`,onClick:w,size:`icon`,variant:`ghost`,children:(0,$.jsx)(c,{className:`size-4`})}),t[16]=T):T=t[16];let E;t[17]!==r||t[18]!==a?(E=()=>a(r),t[17]=r,t[18]=a,t[19]=E):E=t[19];let D;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,$.jsx)(l,{className:`size-4`}),t[20]=D):D=t[20];let O;t[21]===E?O=t[22]:(O=(0,$.jsx)(u,{"aria-label":`Remove add-on`,onClick:E,size:`icon`,variant:`ghost`,children:D}),t[21]=E,t[22]=O);let k;t[23]!==O||t[24]!==C?(k=(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[C,T,O]}),t[23]=O,t[24]=C,t[25]=k):k=t[25];let A;t[26]!==k||t[27]!==y?(A=(0,$.jsx)(Y.Header,{children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[y,k]})}),t[26]=k,t[27]=y,t[28]=A):A=t[28];let j=m?.addonVersion,M;t[29]===j?M=t[30]:(M=(0,$.jsx)(X,{label:`Version`,value:j}),t[29]=j,t[30]=M);let N=m?.serviceAccountRoleArn,P;t[31]===N?P=t[32]:(P=(0,$.jsx)(X,{label:`IRSA role`,value:N}),t[31]=N,t[32]=P);let F;t[33]===h?F=t[34]:(F=h&&(0,$.jsx)(X,{label:`Issue`,value:(0,$.jsx)(`span`,{className:`text-destructive`,children:h})}),t[33]=h,t[34]=F);let I;t[35]!==M||t[36]!==P||t[37]!==F?(I=(0,$.jsxs)(Y.Content,{children:[M,P,F]}),t[35]=M,t[36]=P,t[37]=F,t[38]=I):I=t[38];let L=m?.addonVersion,z=m?.serviceAccountRoleArn,B=m?.configurationValues,V;t[39]!==L||t[40]!==z||t[41]!==B?(V={addonVersion:L,serviceAccountRoleArn:z,configurationValues:B},t[39]=L,t[40]=z,t[41]=B,t[42]=V):V=t[42];let H;t[43]!==r||t[44]!==n||t[45]!==f||t[46]!==V||t[47]!==_?(H=(0,$.jsx)(Be,{addonName:r,clusterName:n,current:V,onOpenChange:p,open:f,versions:_}),t[43]=r,t[44]=n,t[45]=f,t[46]=V,t[47]=_,t[48]=H):H=t[48];let U;return t[49]!==A||t[50]!==I||t[51]!==H?(U=(0,$.jsxs)(Y,{children:[A,I,H]}),t[49]=A,t[50]=I,t[51]=H,t[52]=U):U=t[52],U}function Ue(e){return e.addonVersion??``}function We(e){return Pe.has(e.state.data?.addon?.status??``)?Fe:!1}function Ge(e){let t=(0,De.c)(31),{clusterName:n}=e,r;t[0]===n?r=t[1]:(r=N(n),t[0]=n,t[1]=r);let{data:i}=U(r),{data:a}=pe(P),o=M(),[s,c]=(0,Q.useState)(!1),[l,d]=(0,Q.useState)(),f;t[2]===i.addons?f=t[3]:(f=i.addons??[],t[2]=i.addons,t[3]=f);let p=f,m;t[4]===a?.addons?m=t[5]:(m=a?.addons??[],t[4]=a?.addons,t[5]=m);let h=m,g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Add-on manifests are staged; activation completes when the cluster reports the workload ready.`}),t[6]=g):g=t[6];let _;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,$.jsxs)(`div`,{className:`mb-4 flex items-center justify-between gap-4`,children:[g,(0,$.jsx)(u,{onClick:()=>c(!0),size:`sm`,children:`Add add-on`})]}),t[7]=_):_=t[7];let v;t[8]!==p||t[9]!==h||t[10]!==n?(v=p.length>0?(0,$.jsx)(`div`,{className:`space-y-4`,children:p.map(e=>(0,$.jsx)(He,{addonName:e,catalog:h,clusterName:n,onDelete:d},e))}):(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No add-ons installed.`}),t[8]=p,t[9]=h,t[10]=n,t[11]=v):v=t[11];let y;t[12]!==p||t[13]!==h||t[14]!==n||t[15]!==s?(y=(0,$.jsx)(Le,{catalog:h,clusterName:n,installed:p,onOpenChange:c,open:s}),t[12]=p,t[13]=h,t[14]=n,t[15]=s,t[16]=y):y=t[16];let b=`Remove add-on "${l??``}" from the cluster?`,x;t[17]!==n||t[18]!==o||t[19]!==l?(x=()=>{l&&o.mutate({clusterName:n,addonName:l},{onSuccess:()=>d(void 0)})},t[17]=n,t[18]=o,t[19]=l,t[20]=x):x=t[20];let S;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(S=e=>!e&&d(void 0),t[21]=S):S=t[21];let C=l!==void 0,w;t[22]!==o.isPending||t[23]!==C||t[24]!==b||t[25]!==x?(w=(0,$.jsx)(be,{confirmLabel:`Remove`,description:b,isPending:o.isPending,onConfirm:x,onOpenChange:S,open:C,pendingLabel:`Removing…`,title:`Remove add-on`}),t[22]=o.isPending,t[23]=C,t[24]=b,t[25]=x,t[26]=w):w=t[26];let T;return t[27]!==w||t[28]!==v||t[29]!==y?(T=(0,$.jsxs)($.Fragment,{children:[_,v,y,w]}),t[27]=w,t[28]=v,t[29]=y,t[30]=T):T=t[30],T}function Ke(e){let t=(0,De.c)(6),{to:n,id:r}=e,a;t[0]===r?a=t[1]:(a={id:r},t[0]=r,t[1]=a);let o;return t[2]!==r||t[3]!==a||t[4]!==n?(o=(0,$.jsx)(i,{className:`font-mono text-primary underline-offset-2 hover:underline`,params:a,to:n,children:r}),t[2]=r,t[3]=a,t[4]=n,t[5]=o):o=t[5],o}function qe(e){let t=(0,De.c)(45),{cluster:n}=e,r=n?.resourcesVpcConfig,i;t[0]===r?.subnetIds?i=t[1]:(i=r?.subnetIds??[],t[0]=r?.subnetIds,t[1]=i);let a=i,o;t[2]===r?.securityGroupIds?o=t[3]:(o=r?.securityGroupIds??[],t[2]=r?.securityGroupIds,t[3]=o);let s=o,c;t[4]===r?.publicAccessCidrs?c=t[5]:(c=r?.publicAccessCidrs??[],t[4]=r?.publicAccessCidrs,t[5]=c);let l=c,u;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,$.jsx)(Y.Header,{children:`VPC`}),t[6]=u):u=t[6];let d;t[7]===r?d=t[8]:(d=r?.vpcId?(0,$.jsx)(Ke,{id:r.vpcId,to:`/ec2/describe-vpcs/$id`}):void 0,t[7]=r,t[8]=d);let f;t[9]===d?f=t[10]:(f=(0,$.jsx)(X,{label:`VPC`,value:d}),t[9]=d,t[10]=f);let p=n?.endpoint,m;t[11]===p?m=t[12]:(m=(0,$.jsx)(X,{label:`API server endpoint`,value:p}),t[11]=p,t[12]=m);let h=r?.endpointPublicAccess?`Enabled`:`Disabled`,g;t[13]===h?g=t[14]:(g=(0,$.jsx)(X,{label:`Public access`,value:h}),t[13]=h,t[14]=g);let _=r?.endpointPrivateAccess?`Enabled`:`Disabled`,v;t[15]===_?v=t[16]:(v=(0,$.jsx)(X,{label:`Private access`,value:_}),t[15]=_,t[16]=v);let y;t[17]!==l||t[18]!==r?.endpointPublicAccess?(y=r?.endpointPublicAccess&&(0,$.jsx)(X,{label:`Public access CIDRs`,value:l.length>0?(0,$.jsx)(`div`,{className:`space-y-1 font-mono text-xs`,children:l.map(Xe)}):`Any (0.0.0.0/0)`}),t[17]=l,t[18]=r?.endpointPublicAccess,t[19]=y):y=t[19];let b;t[20]!==g||t[21]!==v||t[22]!==y||t[23]!==f||t[24]!==m?(b=(0,$.jsxs)(Y,{children:[u,(0,$.jsxs)(Y.Content,{children:[f,m,g,v,y]})]}),t[20]=g,t[21]=v,t[22]=y,t[23]=f,t[24]=m,t[25]=b):b=t[25];let x;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(Y.Header,{children:`Subnets`}),t[26]=x):x=t[26];let S;t[27]===a?S=t[28]:(S=(0,$.jsxs)(Y,{children:[x,(0,$.jsx)(Y.Content,{children:a.length>0?(0,$.jsx)(`div`,{className:`space-y-1`,children:a.map(Ye)}):(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No subnets.`})})]}),t[27]=a,t[28]=S);let C;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,$.jsx)(Y.Header,{children:`Security groups`}),t[29]=C):C=t[29];let w;t[30]===r?w=t[31]:(w=r?.clusterSecurityGroupId?(0,$.jsx)(Ke,{id:r.clusterSecurityGroupId,to:`/ec2/describe-security-groups/$id`}):void 0,t[30]=r,t[31]=w);let T;t[32]===w?T=t[33]:(T=(0,$.jsx)(X,{label:`Cluster security group`,value:w}),t[32]=w,t[33]=T);let E;t[34]===s?E=t[35]:(E=s.length>0?(0,$.jsx)(`div`,{className:`space-y-1`,children:s.map(Je)}):`—`,t[34]=s,t[35]=E);let D;t[36]===E?D=t[37]:(D=(0,$.jsx)(X,{label:`Additional security groups`,value:E}),t[36]=E,t[37]=D);let O;t[38]!==T||t[39]!==D?(O=(0,$.jsxs)(Y,{children:[C,(0,$.jsxs)(Y.Content,{children:[T,D]})]}),t[38]=T,t[39]=D,t[40]=O):O=t[40];let k;return t[41]!==b||t[42]!==S||t[43]!==O?(k=(0,$.jsxs)($.Fragment,{children:[b,S,O]}),t[41]=b,t[42]=S,t[43]=O,t[44]=k):k=t[44],k}function Je(e){return(0,$.jsx)(Ke,{id:e,to:`/ec2/describe-security-groups/$id`},e)}function Ye(e){return(0,$.jsx)(Ke,{id:e,to:`/ec2/describe-subnets/$id`},e)}function Xe(e){return(0,$.jsx)(`div`,{children:e},e)}function Ze(e){return!!e&&(e.endsWith(`_GPU`)||e.endsWith(`_NVIDIA`))}function Qe(e,t){let n=t.find(t=>t.InstanceType===e);return!!n&&ve(n)}function $e(e){let t=(0,De.c)(44),{clusterName:n,nodegroupName:r,current:i,open:a,onOpenChange:o}=e,s=p(),[c,l]=(0,Q.useState)(i.minSize??0),[u,d]=(0,Q.useState)(i.desiredSize??0),[f,m]=(0,Q.useState)(i.maxSize??0),[h,g]=(0,Q.useState)(),[_,v]=(0,Q.useState)(a);a!==_&&(v(a),a&&(l(i.minSize??0),d(i.desiredSize??0),m(i.maxSize??0),g(void 0)));let y;t[0]!==n||t[1]!==u||t[2]!==f||t[3]!==c||t[4]!==r||t[5]!==o||t[6]!==s?(y=()=>{if(!(c<=u&&u<=f)){g(`Sizes must satisfy min ≤ desired ≤ max`);return}s.mutate({clusterName:n,nodegroupName:r,minSize:c,desiredSize:u,maxSize:f},{onSuccess:()=>o(!1)})},t[0]=n,t[1]=u,t[2]=f,t[3]=c,t[4]=r,t[5]=o,t[6]=s,t[7]=y):y=t[7];let b=y,x;t[8]===r?x=t[9]:(x=(0,$.jsx)(ue,{children:(0,$.jsxs)(le,{children:[`Scale `,r]})}),t[8]=r,t[9]=x);let S;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`scale-min`,children:`Min`})}),t[10]=S):S=t[10];let C;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(C=e=>l(Number(e.target.value)),t[11]=C):C=t[11];let w;t[12]===c?w=t[13]:(w=(0,$.jsxs)(q,{children:[S,(0,$.jsx)(K,{id:`scale-min`,onChange:C,type:`number`,value:c})]}),t[12]=c,t[13]=w);let T;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`scale-desired`,children:`Desired`})}),t[14]=T):T=t[14];let E;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(E=e=>d(Number(e.target.value)),t[15]=E):E=t[15];let D;t[16]===u?D=t[17]:(D=(0,$.jsxs)(q,{children:[T,(0,$.jsx)(K,{id:`scale-desired`,onChange:E,type:`number`,value:u})]}),t[16]=u,t[17]=D);let O;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`scale-max`,children:`Max`})}),t[18]=O):O=t[18];let k;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(k=e=>m(Number(e.target.value)),t[19]=k):k=t[19];let A;t[20]===f?A=t[21]:(A=(0,$.jsxs)(q,{children:[O,(0,$.jsx)(K,{id:`scale-max`,onChange:k,type:`number`,value:f})]}),t[20]=f,t[21]=A);let j;t[22]!==A||t[23]!==w||t[24]!==D?(j=(0,$.jsxs)(`div`,{className:`grid grid-cols-3 gap-3`,children:[w,D,A]}),t[22]=A,t[23]=w,t[24]=D,t[25]=j):j=t[25];let M;t[26]===h?M=t[27]:(M=h&&(0,$.jsx)(`p`,{className:`mt-2 text-xs text-destructive`,children:h}),t[26]=h,t[27]=M);let N;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(ae,{children:`Cancel`}),t[28]=N):N=t[28];let P;t[29]===b?P=t[30]:(P=e=>{e.preventDefault(),b()},t[29]=b,t[30]=P);let F=s.isPending?`Scaling…`:`Scale`,I;t[31]!==s.isPending||t[32]!==P||t[33]!==F?(I=(0,$.jsxs)(W,{children:[N,(0,$.jsx)(ie,{disabled:s.isPending,onClick:P,children:F})]}),t[31]=s.isPending,t[32]=P,t[33]=F,t[34]=I):I=t[34];let L;t[35]!==j||t[36]!==M||t[37]!==I||t[38]!==x?(L=(0,$.jsxs)(oe,{children:[x,j,M,I]}),t[35]=j,t[36]=M,t[37]=I,t[38]=x,t[39]=L):L=t[39];let R;return t[40]!==o||t[41]!==a||t[42]!==L?(R=(0,$.jsx)(re,{onOpenChange:o,open:a,children:L}),t[40]=o,t[41]=a,t[42]=L,t[43]=R):R=t[43],R}function et(e){let t=(0,De.c)(71),{clusterName:n,clusterVersion:r,nodegroupName:i,onDelete:a}=e,o;t[0]!==n||t[1]!==i?(o=F(n,i),t[0]=n,t[1]=i,t[2]=o):o=t[2];let{data:s}=pe(o),d=h(),f=s?.nodegroup,p=f?.scalingConfig,[m,g]=(0,Q.useState)(!1),[_,v]=(0,Q.useState)(!1),y=!!r&&!!f?.version&&f.version!==r,b=f?.amiType,x;t[3]===b?x=t[4]:(x=Ze(b),t[3]=b,t[4]=x);let S=x,C;t[5]===i?C=t[6]:(C=(0,$.jsx)(`span`,{children:i}),t[5]=i,t[6]=C);let w;t[7]===S?w=t[8]:(w=S&&(0,$.jsx)(xe,{variant:`secondary`,children:`GPU`}),t[7]=S,t[8]=w);let T;t[9]!==C||t[10]!==w?(T=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[C,w]}),t[9]=C,t[10]=w,t[11]=T):T=t[11];let E;t[12]===y?E=t[13]:(E=y&&(0,$.jsx)(u,{"aria-label":`Update node group version`,onClick:()=>v(!0),size:`icon`,variant:`ghost`,children:(0,$.jsx)(c,{className:`size-4`})}),t[12]=y,t[13]=E);let D;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(D=()=>g(!0),t[14]=D):D=t[14];let O;t[15]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(u,{"aria-label":`Scale node group`,onClick:D,size:`icon`,variant:`ghost`,children:(0,$.jsx)(Ee,{className:`size-4`})}),t[15]=O):O=t[15];let k;t[16]!==i||t[17]!==a?(k=()=>a(i),t[16]=i,t[17]=a,t[18]=k):k=t[18];let A;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(l,{className:`size-4`}),t[19]=A):A=t[19];let j;t[20]===k?j=t[21]:(j=(0,$.jsx)(u,{"aria-label":`Delete node group`,onClick:k,size:`icon`,variant:`ghost`,children:A}),t[20]=k,t[21]=j);let M;t[22]!==j||t[23]!==E?(M=(0,$.jsxs)(`div`,{className:`flex items-center gap-1`,children:[E,O,j]}),t[22]=j,t[23]=E,t[24]=M):M=t[24];let N;t[25]!==M||t[26]!==T?(N=(0,$.jsx)(Y.Header,{children:(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[T,M]})}),t[25]=M,t[26]=T,t[27]=N):N=t[27];let P=f?.status,I;t[28]===P?I=t[29]:(I=(0,$.jsx)(X,{label:`Status`,value:P}),t[28]=P,t[29]=I);let L=y?`${f?.version} (cluster on ${r})`:f?.version,R;t[30]===L?R=t[31]:(R=(0,$.jsx)(X,{label:`Kubernetes version`,value:L}),t[30]=L,t[31]=R);let z;t[32]===f?.instanceTypes?z=t[33]:(z=f?.instanceTypes?.join(`, `),t[32]=f?.instanceTypes,t[33]=z);let B;t[34]===z?B=t[35]:(B=(0,$.jsx)(X,{label:`Instance types`,value:z}),t[34]=z,t[35]=B);let V=f?.amiType,H;t[36]===V?H=t[37]:(H=(0,$.jsx)(X,{label:`AMI type`,value:V}),t[36]=V,t[37]=H);let U=f?.capacityType,ee;t[38]===U?ee=t[39]:(ee=(0,$.jsx)(X,{label:`Capacity type`,value:U}),t[38]=U,t[39]=ee);let W=p?`${p.minSize} / ${p.desiredSize} / ${p.maxSize}`:void 0,G;t[40]===W?G=t[41]:(G=(0,$.jsx)(X,{label:`Scaling (min / desired / max)`,value:W}),t[40]=W,t[41]=G);let te;t[42]!==I||t[43]!==R||t[44]!==B||t[45]!==H||t[46]!==ee||t[47]!==G?(te=(0,$.jsxs)(Y.Content,{children:[I,R,B,H,ee,G]}),t[42]=I,t[43]=R,t[44]=B,t[45]=H,t[46]=ee,t[47]=G,t[48]=te):te=t[48];let ne;t[49]===p?ne=t[50]:(ne=p??{},t[49]=p,t[50]=ne);let re;t[51]!==n||t[52]!==i||t[53]!==m||t[54]!==ne?(re=(0,$.jsx)($e,{clusterName:n,current:ne,nodegroupName:i,onOpenChange:g,open:m}),t[51]=n,t[52]=i,t[53]=m,t[54]=ne,t[55]=re):re=t[55];let ie=`Update node group "${i}" from ${f?.version} to ${r}? Nodes are replaced in a rolling update.`,ae;t[56]!==n||t[57]!==r||t[58]!==i||t[59]!==d?(ae=()=>d.mutate({clusterName:n,nodegroupName:i,version:r},{onSuccess:()=>v(!1)}),t[56]=n,t[57]=r,t[58]=i,t[59]=d,t[60]=ae):ae=t[60];let oe;t[61]!==_||t[62]!==ie||t[63]!==ae||t[64]!==d.isPending?(oe=(0,$.jsx)(be,{confirmLabel:`Update`,description:ie,isPending:d.isPending,onConfirm:ae,onOpenChange:v,open:_,title:`Update node group version`}),t[61]=_,t[62]=ie,t[63]=ae,t[64]=d.isPending,t[65]=oe):oe=t[65];let K;return t[66]!==N||t[67]!==te||t[68]!==re||t[69]!==oe?(K=(0,$.jsxs)(Y,{children:[N,te,re,oe]}),t[66]=N,t[67]=te,t[68]=re,t[69]=oe,t[70]=K):K=t[70],K}function tt(e){let t=(0,De.c)(141),{clusterName:n,vpcId:r,open:i,onOpenChange:a}=e,{data:o}=pe(H),{data:s}=pe(d),{data:c}=pe(f),l=g(),u;t[0]===o?.Roles?u=t[1]:(u=o?.Roles??[],t[0]=o?.Roles,t[1]=u);let p=u,m;t[2]===r?m=t[3]:(m=e=>e.VpcId===r,t[2]=r,t[3]=m);let h=(s?.Subnets??[]).filter(m),_;t[4]===c?.InstanceTypes?_=t[5]:(_=c?.InstanceTypes??[],t[4]=c?.InstanceTypes,t[5]=_);let v=_,b;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(b=ne(y),t[6]=b):b=t[6];let S;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(S={resolver:b,defaultValues:{nodegroupName:``,nodeRole:``,subnetIds:[],instanceTypes:`t3.medium`,amiType:`AL2_x86_64`,capacityType:`ON_DEMAND`,diskSize:20,minSize:1,desiredSize:2,maxSize:3}},t[7]=S):S=t[7];let{control:C,formState:w,handleSubmit:T,register:D,reset:O,setValue:k}=he(S),{errors:A}=w,j;t[8]===C?j=t[9]:(j={control:C,name:`subnetIds`},t[8]=C,t[9]=j);let M=ee(j),N;t[10]===C?N=t[11]:(N={control:C,name:`instanceTypes`},t[10]=C,t[11]=N);let P=ee(N),F;t[12]!==v||t[13]!==P?(F=Qe(P,v),t[12]=v,t[13]=P,t[14]=F):F=t[14];let I=F,L;t[15]!==M||t[16]!==k?(L=e=>{let t=M.includes(e)?M.filter(t=>t!==e):[...M,e];k(`subnetIds`,t,{shouldValidate:!0})},t[15]=M,t[16]=k,t[17]=L):L=t[17];let R=L,z;t[18]!==n||t[19]!==l||t[20]!==a||t[21]!==O?(z=async e=>{await l.mutateAsync({clusterName:n,nodegroupName:e.nodegroupName,nodeRole:e.nodeRole,subnetIds:e.subnetIds,instanceTypes:e.instanceTypes.split(`,`).map(at).filter(Boolean),amiType:e.amiType,capacityType:e.capacityType,diskSize:e.diskSize,minSize:e.minSize,desiredSize:e.desiredSize,maxSize:e.maxSize}),O(),a(!1)},t[18]=n,t[19]=l,t[20]=a,t[21]=O,t[22]=z):z=t[22];let B=z,V=re,U=oe,G;t[23]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,$.jsx)(ue,{children:(0,$.jsx)(le,{children:`Add node group`})}),t[23]=G):G=t[23];let se;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(se=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ng-name`,children:`Name`})}),t[24]=se):se=t[24];let ce=!!A.nodegroupName,de;t[25]===D?de=t[26]:(de=D(`nodegroupName`),t[25]=D,t[26]=de);let _e;t[27]!==ce||t[28]!==de?(_e=(0,$.jsx)(K,{"aria-invalid":ce,id:`ng-name`,placeholder:`my-nodegroup`,...de}),t[27]=ce,t[28]=de,t[29]=_e):_e=t[29];let ve;t[30]===A.nodegroupName?ve=t[31]:(ve=(0,$.jsx)(ge,{errors:[A.nodegroupName]}),t[30]=A.nodegroupName,t[31]=ve);let ye;t[32]!==_e||t[33]!==ve?(ye=(0,$.jsxs)(q,{children:[se,_e,ve]}),t[32]=_e,t[33]=ve,t[34]=ye):ye=t[34];let be;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(be=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ng-role`,children:`Node IAM role`})}),t[35]=be):be=t[35];let Y=!!A.nodeRole,X;t[36]===D?X=t[37]:(X=D(`nodeRole`),t[36]=D,t[37]=X);let xe;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(xe=(0,$.jsx)(`option`,{value:``,children:`Select role`}),t[38]=xe):xe=t[38];let Se;t[39]===p?Se=t[40]:(Se=p.map(it),t[39]=p,t[40]=Se);let Ce;t[41]!==Y||t[42]!==X||t[43]!==Se?(Ce=(0,$.jsxs)(`select`,{"aria-invalid":Y,className:`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`,id:`ng-role`,...X,children:[xe,Se]}),t[41]=Y,t[42]=X,t[43]=Se,t[44]=Ce):Ce=t[44];let Z;t[45]===A.nodeRole?Z=t[46]:(Z=(0,$.jsx)(ge,{errors:[A.nodeRole]}),t[45]=A.nodeRole,t[46]=Z);let we;t[47]!==Ce||t[48]!==Z?(we=(0,$.jsxs)(q,{children:[be,Ce,Z]}),t[47]=Ce,t[48]=Z,t[49]=we):we=t[49];let Te=q,Ee;t[50]===Symbol.for(`react.memo_cache_sentinel`)?(Ee=(0,$.jsx)(J,{children:`Subnets`}),t[50]=Ee):Ee=t[50];let Q=h.length===0?(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No subnets in the cluster VPC.`}):(0,$.jsx)(`div`,{className:`space-y-1`,children:h.map(e=>(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,$.jsx)(`input`,{"aria-label":`Subnet ${e.SubnetId}`,checked:M.includes(e.SubnetId??``),onChange:()=>R(e.SubnetId??``),type:`checkbox`}),(0,$.jsxs)(`span`,{className:`font-mono`,children:[e.SubnetId,` · `,e.CidrBlock]})]},e.SubnetId))}),Oe;t[51]===A.subnetIds?Oe=t[52]:(Oe=(0,$.jsx)(ge,{errors:[A.subnetIds]}),t[51]=A.subnetIds,t[52]=Oe);let ke;t[53]!==Te||t[54]!==Ee||t[55]!==Q||t[56]!==Oe?(ke=(0,$.jsxs)(Te,{children:[Ee,Q,Oe]}),t[53]=Te,t[54]=Ee,t[55]=Q,t[56]=Oe,t[57]=ke):ke=t[57];let Ae;t[58]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ng-instance-type`,children:`Instance type`})}),t[58]=Ae):Ae=t[58];let je;t[59]!==A.instanceTypes||t[60]!==v?(je=e=>{let{field:t}=e;return(0,$.jsx)(fe,{"aria-invalid":!!A.instanceTypes,id:`ng-instance-type`,instanceTypes:v,onValueChange:t.onChange,value:t.value})},t[59]=A.instanceTypes,t[60]=v,t[61]=je):je=t[61];let Me;t[62]!==C||t[63]!==je?(Me=(0,$.jsx)(te,{control:C,name:`instanceTypes`,render:je}),t[62]=C,t[63]=je,t[64]=Me):Me=t[64];let Ne;t[65]===I?Ne=t[66]:(Ne=I&&(0,$.jsxs)(me,{children:[`GPU node AMI is auto-selected for this instance type. This node group is tainted `,(0,$.jsx)(`code`,{children:`nvidia.com/gpu=present:NoSchedule`}),` `,`by default, so ordinary pods won't schedule onto GPU workers.`]}),t[65]=I,t[66]=Ne);let Pe;t[67]===A.instanceTypes?Pe=t[68]:(Pe=(0,$.jsx)(ge,{errors:[A.instanceTypes]}),t[67]=A.instanceTypes,t[68]=Pe);let Fe;t[69]!==Me||t[70]!==Ne||t[71]!==Pe?(Fe=(0,$.jsxs)(q,{children:[Ae,Me,Ne,Pe]}),t[69]=Me,t[70]=Ne,t[71]=Pe,t[72]=Fe):Fe=t[72];let Ie;t[73]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ng-ami`,children:`AMI type`})}),t[73]=Ie):Ie=t[73];let Le;t[74]===D?Le=t[75]:(Le=D(`amiType`),t[74]=D,t[75]=Le);let Re;t[76]===Symbol.for(`react.memo_cache_sentinel`)?(Re=E.map(rt),t[76]=Re):Re=t[76];let ze;t[77]===Le?ze=t[78]:(ze=(0,$.jsxs)(q,{children:[Ie,(0,$.jsx)(`select`,{className:`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`,id:`ng-ami`,...Le,children:Re})]}),t[77]=Le,t[78]=ze);let Be;t[79]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ng-capacity`,children:`Capacity type`})}),t[79]=Be):Be=t[79];let Ve;t[80]===D?Ve=t[81]:(Ve=D(`capacityType`),t[80]=D,t[81]=Ve);let He;t[82]===Symbol.for(`react.memo_cache_sentinel`)?(He=x.map(nt),t[82]=He):He=t[82];let Ue;t[83]===Ve?Ue=t[84]:(Ue=(0,$.jsxs)(q,{children:[Be,(0,$.jsx)(`select`,{className:`h-7 w-full rounded-md border border-input bg-input/20 px-2 text-sm`,id:`ng-capacity`,...Ve,children:He})]}),t[83]=Ve,t[84]=Ue);let We;t[85]!==ze||t[86]!==Ue?(We=(0,$.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[ze,Ue]}),t[85]=ze,t[86]=Ue,t[87]=We):We=t[87];let Ge;t[88]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ng-disk`,children:`Disk (GB)`})}),t[88]=Ge):Ge=t[88];let Ke;t[89]===D?Ke=t[90]:(Ke=D(`diskSize`,{valueAsNumber:!0}),t[89]=D,t[90]=Ke);let qe;t[91]===Ke?qe=t[92]:(qe=(0,$.jsxs)(q,{children:[Ge,(0,$.jsx)(K,{id:`ng-disk`,type:`number`,...Ke})]}),t[91]=Ke,t[92]=qe);let Je;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(Je=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ng-min`,children:`Min`})}),t[93]=Je):Je=t[93];let Ye;t[94]===D?Ye=t[95]:(Ye=D(`minSize`,{valueAsNumber:!0}),t[94]=D,t[95]=Ye);let Xe;t[96]===Ye?Xe=t[97]:(Xe=(0,$.jsxs)(q,{children:[Je,(0,$.jsx)(K,{id:`ng-min`,type:`number`,...Ye})]}),t[96]=Ye,t[97]=Xe);let Ze;t[98]===Symbol.for(`react.memo_cache_sentinel`)?(Ze=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ng-desired`,children:`Desired`})}),t[98]=Ze):Ze=t[98];let $e;t[99]===D?$e=t[100]:($e=D(`desiredSize`,{valueAsNumber:!0}),t[99]=D,t[100]=$e);let et;t[101]===$e?et=t[102]:(et=(0,$.jsxs)(q,{children:[Ze,(0,$.jsx)(K,{id:`ng-desired`,type:`number`,...$e})]}),t[101]=$e,t[102]=et);let tt;t[103]===Symbol.for(`react.memo_cache_sentinel`)?(tt=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`ng-max`,children:`Max`})}),t[103]=tt):tt=t[103];let ot;t[104]===D?ot=t[105]:(ot=D(`maxSize`,{valueAsNumber:!0}),t[104]=D,t[105]=ot);let st;t[106]===ot?st=t[107]:(st=(0,$.jsxs)(q,{children:[tt,(0,$.jsx)(K,{id:`ng-max`,type:`number`,...ot})]}),t[106]=ot,t[107]=st);let ct;t[108]!==qe||t[109]!==Xe||t[110]!==et||t[111]!==st?(ct=(0,$.jsxs)(`div`,{className:`grid grid-cols-4 gap-3`,children:[qe,Xe,et,st]}),t[108]=qe,t[109]=Xe,t[110]=et,t[111]=st,t[112]=ct):ct=t[112];let lt;t[113]===A.desiredSize?lt=t[114]:(lt=(0,$.jsx)(ge,{errors:[A.desiredSize]}),t[113]=A.desiredSize,t[114]=lt);let ut;t[115]!==ye||t[116]!==we||t[117]!==ke||t[118]!==Fe||t[119]!==We||t[120]!==ct||t[121]!==lt?(ut=(0,$.jsxs)(`form`,{className:`space-y-4`,id:`add-nodegroup-form`,children:[ye,we,ke,Fe,We,ct,lt]}),t[115]=ye,t[116]=we,t[117]=ke,t[118]=Fe,t[119]=We,t[120]=ct,t[121]=lt,t[122]=ut):ut=t[122];let dt;t[123]===Symbol.for(`react.memo_cache_sentinel`)?(dt=(0,$.jsx)(ae,{children:`Cancel`}),t[123]=dt):dt=t[123];let ft;t[124]!==T||t[125]!==B?(ft=e=>{e.preventDefault(),T(B)()},t[124]=T,t[125]=B,t[126]=ft):ft=t[126];let pt=l.isPending?`Creating…`:`Create`,mt;t[127]!==l.isPending||t[128]!==ft||t[129]!==pt?(mt=(0,$.jsxs)(W,{children:[dt,(0,$.jsx)(ie,{disabled:l.isPending,onClick:ft,children:pt})]}),t[127]=l.isPending,t[128]=ft,t[129]=pt,t[130]=mt):mt=t[130];let ht;t[131]!==U||t[132]!==G||t[133]!==ut||t[134]!==mt?(ht=(0,$.jsxs)(U,{className:`max-h-[85vh] overflow-y-auto`,children:[G,ut,mt]}),t[131]=U,t[132]=G,t[133]=ut,t[134]=mt,t[135]=ht):ht=t[135];let gt;return t[136]!==V||t[137]!==a||t[138]!==i||t[139]!==ht?(gt=(0,$.jsx)(V,{onOpenChange:a,open:i,children:ht}),t[136]=V,t[137]=a,t[138]=i,t[139]=ht,t[140]=gt):gt=t[140],gt}function nt(e){return(0,$.jsx)(`option`,{value:e,children:e},e)}function rt(e){return(0,$.jsx)(`option`,{value:e,children:e},e)}function it(e){return(0,$.jsx)(`option`,{value:e.Arn??``,children:e.RoleName},e.Arn)}function at(e){return e.trim()}function ot(e){let t=(0,De.c)(27),{clusterName:n,clusterVersion:r,vpcId:i}=e,a;t[0]===n?a=t[1]:(a=V(n),t[0]=n,t[1]=a);let{data:o}=U(a),s=j(),[c,l]=(0,Q.useState)(!1),[d,f]=(0,Q.useState)(),p;t[2]===o.nodegroups?p=t[3]:(p=o.nodegroups??[],t[2]=o.nodegroups,t[3]=p);let m=p,h;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,$.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,$.jsx)(u,{onClick:()=>l(!0),size:`sm`,children:`Add node group`})}),t[4]=h):h=t[4];let g;t[5]!==n||t[6]!==r||t[7]!==m?(g=m.length>0?(0,$.jsx)(`div`,{className:`space-y-4`,children:m.map(e=>(0,$.jsx)(et,{clusterName:n,clusterVersion:r,nodegroupName:e,onDelete:f},e))}):(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No node groups.`}),t[5]=n,t[6]=r,t[7]=m,t[8]=g):g=t[8];let _;t[9]!==n||t[10]!==c||t[11]!==i?(_=(0,$.jsx)(tt,{clusterName:n,onOpenChange:l,open:c,vpcId:i}),t[9]=n,t[10]=c,t[11]=i,t[12]=_):_=t[12];let v=`Delete node group "${d??``}"? This terminates its nodes.`,y;t[13]!==n||t[14]!==s||t[15]!==d?(y=()=>{d&&s.mutate({clusterName:n,nodegroupName:d},{onSuccess:()=>f(void 0)})},t[13]=n,t[14]=s,t[15]=d,t[16]=y):y=t[16];let b;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(b=e=>!e&&f(void 0),t[17]=b):b=t[17];let x=d!==void 0,S;t[18]!==s.isPending||t[19]!==v||t[20]!==y||t[21]!==x?(S=(0,$.jsx)(be,{description:v,isPending:s.isPending,onConfirm:y,onOpenChange:b,open:x,title:`Delete node group`}),t[18]=s.isPending,t[19]=v,t[20]=y,t[21]=x,t[22]=S):S=t[22];let C;return t[23]!==S||t[24]!==g||t[25]!==_?(C=(0,$.jsxs)($.Fragment,{children:[h,g,_,S]}),t[23]=S,t[24]=g,t[25]=_,t[26]=C):C=t[26],C}var st=`ap-southeast-2`;function ct(e){switch(e??``){case`ACTIVE`:return`default`;case`FAILED`:return`destructive`;default:return`secondary`}}function lt(e){let t=(0,De.c)(134),{clusterName:n}=e,r=a(),[i,s]=(0,Q.useState)(!1),c;t[0]===n?c=t[1]:(c=z(n),t[0]=n,t[1]=c);let{data:d}=U(c),f=_(),p=d.cluster,m,h,g,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M;if(t[2]!==p?.arn||t[3]!==p?.health?.issues||t[4]!==p?.status||t[5]!==n||t[6]!==f||t[7]!==r){let e=p?.health?.issues??[],i;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(i={type:`bin`,value:`aws eks update-kubeconfig`},t[26]=i):i=t[26];let a;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(a={type:`flag`,value:` --name `},t[27]=a):a=t[27];let o;t[28]===n?o=t[29]:(o={type:`value`,value:n},t[28]=n,t[29]=o);let c;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(c={type:`flag`,value:` --region `},t[30]=c):c=t[30];let d;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(d={type:`value`,value:st},t[31]=d):d=t[31];let _;t[32]===o?_=t[33]:(_={label:`Configure kubectl`,parts:[i,a,o,c,d]},t[32]=o,t[33]=_);let N;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(N={label:`Verify access`,parts:[{type:`bin`,value:`kubectl get nodes`}]},t[34]=N):N=t[34];let P;t[35]===_?P=t[36]:(P=[_,N],t[35]=_,t[36]=P),x=P;let F;t[37]!==n||t[38]!==f||t[39]!==r?(F=function(){f.mutate(n,{onSuccess:()=>{r({to:`/eks/list-clusters`})}})},t[37]=n,t[38]=f,t[39]=r,t[40]=F):F=t[40],b=F,t[41]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,$.jsx)(ce,{to:`/eks/list-clusters`,children:`Clusters`}),t[41]=S):S=t[41];let I;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(I=()=>s(!0),t[42]=I):I=t[42];let L;t[43]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsxs)(u,{onClick:I,size:`sm`,variant:`destructive`,children:[(0,$.jsx)(l,{className:`size-4`}),`Delete`]}),t[43]=L):L=t[43];let R=p?.status,z;t[44]===R?z=t[45]:(z=ct(R),t[44]=R,t[45]=z);let B=p?.status??`UNKNOWN`,V;t[46]!==z||t[47]!==B?(V=(0,$.jsx)(xe,{variant:z,children:B}),t[46]=z,t[47]=B,t[48]=V):V=t[48];let H=e.length>0&&(0,$.jsxs)(xe,{variant:`destructive`,children:[(0,$.jsx)(de,{className:`size-3`}),e.length===1?`1 health issue`:`${e.length} health issues`]}),U;t[49]!==V||t[50]!==H?(U=(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[L,V,H]}),t[49]=V,t[50]=H,t[51]=U):U=t[51],t[52]!==n||t[53]!==U?(C=(0,$.jsx)(ye,{actions:U,subtitle:`Cluster Details`,title:n}),t[52]=n,t[53]=U,t[54]=C):C=t[54],t[55]!==f.error||t[56]!==f.isError?(w=f.isError&&(0,$.jsx)(se,{error:f.error instanceof Error?f.error:void 0,msg:`Failed to delete cluster.`}),t[55]=f.error,t[56]=f.isError,t[57]=w):w=t[57],y=we,j=`overview`,t[58]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,$.jsxs)(Ce,{children:[(0,$.jsx)(Se,{value:`overview`,children:`Overview`}),(0,$.jsx)(Se,{value:`compute`,children:`Compute`}),(0,$.jsx)(Se,{value:`addons`,children:`Add-ons`}),(0,$.jsx)(Se,{value:`access`,children:`Access`}),(0,$.jsx)(Se,{value:`networking`,children:`Networking`}),(0,$.jsx)(Se,{value:`connect`,children:`Connect`})]}),t[58]=M):M=t[58],v=Z,A=`overview`,g=Y,t[59]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,$.jsx)(Y.Header,{children:`Cluster`}),t[59]=k):k=t[59],h=Y.Content;let ee=p?.arn;t[60]===ee?D=t[61]:(D=(0,$.jsx)(X,{label:`ARN`,value:ee}),t[60]=ee,t[61]=D);let W=p?.status;t[62]===W?O=t[63]:(O=(0,$.jsx)(X,{label:`Status`,value:W}),t[62]=W,t[63]=O),m=X,T=`Health`,E=e.length>0?e.map(ut).filter(Boolean).join(`; `):`OK`,t[2]=p?.arn,t[3]=p?.health?.issues,t[4]=p?.status,t[5]=n,t[6]=f,t[7]=r,t[8]=m,t[9]=h,t[10]=g,t[11]=v,t[12]=y,t[13]=b,t[14]=x,t[15]=S,t[16]=C,t[17]=w,t[18]=T,t[19]=E,t[20]=D,t[21]=O,t[22]=k,t[23]=A,t[24]=j,t[25]=M}else m=t[8],h=t[9],g=t[10],v=t[11],y=t[12],b=t[13],x=t[14],S=t[15],C=t[16],w=t[17],T=t[18],E=t[19],D=t[20],O=t[21],k=t[22],A=t[23],j=t[24],M=t[25];let N;t[64]!==m||t[65]!==T||t[66]!==E?(N=(0,$.jsx)(m,{label:T,value:E}),t[64]=m,t[65]=T,t[66]=E,t[67]=N):N=t[67];let P=p?.version,F;t[68]===P?F=t[69]:(F=(0,$.jsx)(X,{label:`Kubernetes version`,value:P}),t[68]=P,t[69]=F);let I=p?.platformVersion,L;t[70]===I?L=t[71]:(L=(0,$.jsx)(X,{label:`Platform version`,value:I}),t[70]=I,t[71]=L);let R=p?.endpoint,B;t[72]===R?B=t[73]:(B=(0,$.jsx)(X,{label:`Endpoint`,value:R}),t[72]=R,t[73]=B);let V=p?.identity?.oidc?.issuer,H;t[74]===V?H=t[75]:(H=(0,$.jsx)(X,{label:`OIDC issuer`,value:V}),t[74]=V,t[75]=H);let ee=p?.resourcesVpcConfig?.vpcId,W;t[76]===ee?W=t[77]:(W=(0,$.jsx)(X,{label:`VPC`,value:ee}),t[76]=ee,t[77]=W);let te=p?.createdAt,ne;t[78]===te?ne=t[79]:(ne=o(te),t[78]=te,t[79]=ne);let re;t[80]===ne?re=t[81]:(re=(0,$.jsx)(X,{label:`Created at`,value:ne}),t[80]=ne,t[81]=re);let ie;t[82]!==h||t[83]!==N||t[84]!==F||t[85]!==L||t[86]!==B||t[87]!==H||t[88]!==W||t[89]!==re||t[90]!==D||t[91]!==O?(ie=(0,$.jsxs)(h,{children:[D,O,N,F,L,B,H,W,re]}),t[82]=h,t[83]=N,t[84]=F,t[85]=L,t[86]=B,t[87]=H,t[88]=W,t[89]=re,t[90]=D,t[91]=O,t[92]=ie):ie=t[92];let ae;t[93]!==g||t[94]!==ie||t[95]!==k?(ae=(0,$.jsxs)(g,{children:[k,ie]}),t[93]=g,t[94]=ie,t[95]=k,t[96]=ae):ae=t[96];let oe;t[97]!==v||t[98]!==ae||t[99]!==A?(oe=(0,$.jsx)(v,{value:A,children:ae}),t[97]=v,t[98]=ae,t[99]=A,t[100]=oe):oe=t[100];let K=p?.version,le=p?.resourcesVpcConfig?.vpcId,ue;t[101]!==n||t[102]!==K||t[103]!==le?(ue=(0,$.jsx)(Z,{value:`compute`,children:(0,$.jsx)(ot,{clusterName:n,clusterVersion:K,vpcId:le})}),t[101]=n,t[102]=K,t[103]=le,t[104]=ue):ue=t[104];let fe;t[105]===n?fe=t[106]:(fe=(0,$.jsx)(Z,{value:`addons`,children:(0,$.jsx)(Ge,{clusterName:n})}),t[105]=n,t[106]=fe);let q;t[107]===n?q=t[108]:(q=(0,$.jsx)(Z,{value:`access`,children:(0,$.jsx)(Ne,{clusterName:n})}),t[107]=n,t[108]=q);let pe;t[109]===p?pe=t[110]:(pe=(0,$.jsx)(Z,{value:`networking`,children:(0,$.jsx)(qe,{cluster:p})}),t[109]=p,t[110]=pe);let me;t[111]===x?me=t[112]:(me=(0,$.jsx)(Z,{value:`connect`,children:(0,$.jsx)(G,{commands:x})}),t[111]=x,t[112]=me);let J;t[113]!==y||t[114]!==oe||t[115]!==ue||t[116]!==fe||t[117]!==q||t[118]!==pe||t[119]!==me||t[120]!==j||t[121]!==M?(J=(0,$.jsxs)(y,{defaultValue:j,children:[M,oe,ue,fe,q,pe,me]}),t[113]=y,t[114]=oe,t[115]=ue,t[116]=fe,t[117]=q,t[118]=pe,t[119]=me,t[120]=j,t[121]=M,t[122]=J):J=t[122];let he=`This permanently deletes cluster "${n}" and its control plane. This cannot be undone.`,ge;t[123]!==f.isPending||t[124]!==b||t[125]!==i||t[126]!==he?(ge=(0,$.jsx)(be,{description:he,isPending:f.isPending,onConfirm:b,onOpenChange:s,open:i,title:`Delete cluster`}),t[123]=f.isPending,t[124]=b,t[125]=i,t[126]=he,t[127]=ge):ge=t[127];let _e;return t[128]!==S||t[129]!==C||t[130]!==w||t[131]!==J||t[132]!==ge?(_e=(0,$.jsxs)($.Fragment,{children:[S,C,w,J,ge]}),t[128]=S,t[129]=C,t[130]=w,t[131]=J,t[132]=ge,t[133]=_e):_e=t[133],_e}function ut(e){return e.message}function dt(){let e=(0,De.c)(2),{clusterName:t}=_e.useParams(),n;return e[0]===t?n=e[1]:(n=(0,$.jsx)(lt,{clusterName:t}),e[0]=t,e[1]=n),n}export{dt as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_groupName.js b/spinifex/services/spinifexui/frontend/dist/assets/_groupName.js index 81da9ebde..e244015aa 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_groupName.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_groupName.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{Xt as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{O as c,n as l,p as u}from"./iam.js";import{C as d,s as f}from"./iam2.js";import{Xn as p,_n as m,dn as h,l as g,mn as _}from"./index.js";import{t as v}from"./delete-confirmation-dialog.js";import{n as y,t as b}from"./detail-row.js";import{n as x,t as S}from"./inline-policies-panel.js";var C=t(n()),w=e();function T(){let{groupName:e}=g.useParams(),t=i(),{data:n}=p(f(e)),{data:T}=p(d),E=u(),D=l(),O=c(),[k,A]=(0,C.useState)(!1),[j,M]=(0,C.useState)(!1),[N,P]=(0,C.useState)(null),F=n.Group,I=n.Users??[],L=T.Users??[],R=new Set(I.map(e=>e.UserName)),z=L.filter(e=>e.UserName&&!R.has(e.UserName)),B=async()=>{try{await E.mutateAsync(e),t({to:`/iam/list-groups`})}finally{A(!1)}},V=async t=>{await D.mutateAsync({groupName:e,userName:t}),M(!1)},H=async t=>{P(t);try{await O.mutateAsync({groupName:e,userName:t})}finally{P(null)}};return F?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(m,{to:`/iam/list-groups`,children:`Back to groups`}),E.error&&(0,w.jsx)(_,{error:E.error,msg:`Failed to delete group`}),D.error&&(0,w.jsx)(_,{error:D.error,msg:`Failed to add user`}),O.error&&(0,w.jsx)(_,{error:O.error,msg:`Failed to remove user`}),(0,w.jsxs)(`div`,{className:`space-y-6`,children:[(0,w.jsx)(h,{actions:(0,w.jsxs)(s,{onClick:()=>A(!0),size:`sm`,variant:`destructive`,children:[(0,w.jsx)(o,{className:`size-4`}),`Delete`]}),subtitle:`Group Details`,title:F.GroupName??``}),(0,w.jsxs)(y,{children:[(0,w.jsx)(y.Header,{children:`Group Information`}),(0,w.jsxs)(y.Content,{children:[(0,w.jsx)(b,{label:`Group Name`,value:F.GroupName}),(0,w.jsx)(b,{label:`Group ID`,value:F.GroupId}),(0,w.jsx)(b,{label:`ARN`,value:F.Arn}),(0,w.jsx)(b,{label:`Path`,value:F.Path}),(0,w.jsx)(b,{label:`Created`,value:a(F.CreateDate)})]})]}),(0,w.jsxs)(y,{children:[(0,w.jsx)(y.Header,{children:(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsx)(`span`,{children:`Members`}),(0,w.jsx)(s,{onClick:()=>M(!j),size:`sm`,children:`Add User`})]})}),(0,w.jsxs)(y.Content,{children:[j&&z.length>0&&(0,w.jsxs)(`div`,{className:`col-span-2 space-y-2 rounded-md border p-3`,children:[(0,w.jsx)(`p`,{className:`text-sm font-medium`,children:`Select a user to add:`}),(0,w.jsx)(`div`,{className:`space-y-1`,children:z.map(e=>(0,w.jsxs)(`button`,{className:`flex w-full items-center justify-between rounded-md p-2 text-left text-sm hover:bg-accent`,disabled:D.isPending,onClick:()=>{e.UserName&&V(e.UserName)},type:`button`,children:[(0,w.jsx)(`span`,{children:e.UserName}),(0,w.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.Arn})]},e.UserName))})]}),j&&z.length===0&&(0,w.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No users available to add.`}),I.length>0?(0,w.jsx)(`div`,{className:`col-span-2 space-y-3`,children:I.map(e=>(0,w.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,w.jsx)(r,{className:`text-sm font-medium hover:underline`,params:{userName:e.UserName??``},to:`/iam/list-users/$userName`,children:e.UserName}),(0,w.jsx)(s,{disabled:N===e.UserName,onClick:()=>{e.UserName&&H(e.UserName)},size:`sm`,variant:`outline`,children:`Remove`})]},e.UserName))}):(0,w.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No members.`})]})]}),(0,w.jsx)(x,{kind:`group`,name:e}),(0,w.jsx)(S,{kind:`group`,name:e})]}),(0,w.jsx)(v,{description:`Are you sure you want to delete the group "${e}"? This action cannot be undone. You must remove all members and detach all policies first.`,isPending:E.isPending,onConfirm:B,onOpenChange:A,open:k,title:`Delete Group`})]}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(m,{to:`/iam/list-groups`,children:`Back to groups`}),(0,w.jsx)(`p`,{className:`text-muted-foreground`,children:`Group not found.`})]})}export{T as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{Xt as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{O as c,n as l,p as u}from"./iam.js";import{C as d,s as f}from"./iam2.js";import{$n as p,Sn as m,Tn as h,l as g,yn as _}from"./index.js";import{t as v}from"./delete-confirmation-dialog.js";import{n as y,t as b}from"./detail-row.js";import{n as x,t as S}from"./inline-policies-panel.js";var C=t(n()),w=e();function T(){let{groupName:e}=g.useParams(),t=i(),{data:n}=p(f(e)),{data:T}=p(d),E=u(),D=l(),O=c(),[k,A]=(0,C.useState)(!1),[j,M]=(0,C.useState)(!1),[N,P]=(0,C.useState)(null),F=n.Group,I=n.Users??[],L=T.Users??[],R=new Set(I.map(e=>e.UserName)),z=L.filter(e=>e.UserName&&!R.has(e.UserName)),B=async()=>{try{await E.mutateAsync(e),t({to:`/iam/list-groups`})}finally{A(!1)}},V=async t=>{await D.mutateAsync({groupName:e,userName:t}),M(!1)},H=async t=>{P(t);try{await O.mutateAsync({groupName:e,userName:t})}finally{P(null)}};return F?(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(h,{to:`/iam/list-groups`,children:`Back to groups`}),E.error&&(0,w.jsx)(m,{error:E.error,msg:`Failed to delete group`}),D.error&&(0,w.jsx)(m,{error:D.error,msg:`Failed to add user`}),O.error&&(0,w.jsx)(m,{error:O.error,msg:`Failed to remove user`}),(0,w.jsxs)(`div`,{className:`space-y-6`,children:[(0,w.jsx)(_,{actions:(0,w.jsxs)(s,{onClick:()=>A(!0),size:`sm`,variant:`destructive`,children:[(0,w.jsx)(o,{className:`size-4`}),`Delete`]}),subtitle:`Group Details`,title:F.GroupName??``}),(0,w.jsxs)(y,{children:[(0,w.jsx)(y.Header,{children:`Group Information`}),(0,w.jsxs)(y.Content,{children:[(0,w.jsx)(b,{label:`Group Name`,value:F.GroupName}),(0,w.jsx)(b,{label:`Group ID`,value:F.GroupId}),(0,w.jsx)(b,{label:`ARN`,value:F.Arn}),(0,w.jsx)(b,{label:`Path`,value:F.Path}),(0,w.jsx)(b,{label:`Created`,value:a(F.CreateDate)})]})]}),(0,w.jsxs)(y,{children:[(0,w.jsx)(y.Header,{children:(0,w.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,w.jsx)(`span`,{children:`Members`}),(0,w.jsx)(s,{onClick:()=>M(!j),size:`sm`,children:`Add User`})]})}),(0,w.jsxs)(y.Content,{children:[j&&z.length>0&&(0,w.jsxs)(`div`,{className:`col-span-2 space-y-2 rounded-md border p-3`,children:[(0,w.jsx)(`p`,{className:`text-sm font-medium`,children:`Select a user to add:`}),(0,w.jsx)(`div`,{className:`space-y-1`,children:z.map(e=>(0,w.jsxs)(`button`,{className:`flex w-full items-center justify-between rounded-md p-2 text-left text-sm hover:bg-accent`,disabled:D.isPending,onClick:()=>{e.UserName&&V(e.UserName)},type:`button`,children:[(0,w.jsx)(`span`,{children:e.UserName}),(0,w.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.Arn})]},e.UserName))})]}),j&&z.length===0&&(0,w.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No users available to add.`}),I.length>0?(0,w.jsx)(`div`,{className:`col-span-2 space-y-3`,children:I.map(e=>(0,w.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,w.jsx)(r,{className:`text-sm font-medium hover:underline`,params:{userName:e.UserName??``},to:`/iam/list-users/$userName`,children:e.UserName}),(0,w.jsx)(s,{disabled:N===e.UserName,onClick:()=>{e.UserName&&H(e.UserName)},size:`sm`,variant:`outline`,children:`Remove`})]},e.UserName))}):(0,w.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No members.`})]})]}),(0,w.jsx)(x,{kind:`group`,name:e}),(0,w.jsx)(S,{kind:`group`,name:e})]}),(0,w.jsx)(v,{description:`Are you sure you want to delete the group "${e}"? This action cannot be undone. You must remove all members and detach all policies first.`,isPending:E.isPending,onConfirm:B,onOpenChange:A,open:k,title:`Delete Group`})]}):(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(h,{to:`/iam/list-groups`,children:`Back to groups`}),(0,w.jsx)(`p`,{className:`text-muted-foreground`,children:`Group not found.`})]})}export{T as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id.js b/spinifex/services/spinifexui/frontend/dist/assets/_id.js index 4d206b7d1..f48b0c415 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./useNavigate.js";import{$t as i}from"./auth.js";import{c as a,i as o,n as s,s as c,t as l}from"./select.js";import{t as u}from"./trash-2.js";import{t as d}from"./button.js";import{l as f,t as p}from"./ec2.js";import{Vt as m,Xn as h,Zt as g,_n as _,dn as v,k as y,mn as b,nt as x}from"./index.js";import{t as S}from"./delete-confirmation-dialog.js";import{n as C,t as w}from"./detail-row.js";var T=t(n()),E=e();function D(){let{id:e}=y.useParams(),t=r(),{data:n}=h(p(e)),{data:D}=h(f),O=x(),k=m(),A=g(),[j,M]=(0,T.useState)(!1),[N,P]=(0,T.useState)(``),F=n.Addresses?.[0],I=D.Reservations?.flatMap(e=>e.Instances??[]).filter(e=>e.State?.Name===`running`||e.State?.Name===`stopped`)??[],L=async()=>{try{await A.mutateAsync(e),t({to:`/ec2/describe-addresses`})}finally{M(!1)}},R=async()=>{N&&await O.mutateAsync({allocationId:e,instanceId:N})},z=async()=>{F?.AssociationId&&await k.mutateAsync(F.AssociationId)};if(!F?.AllocationId)return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(_,{to:`/ec2/describe-addresses`,children:`Back to Elastic IPs`}),(0,E.jsx)(`p`,{className:`text-muted-foreground`,children:`Elastic IP not found.`})]});let B=!!F.AssociationId,V=i(F.Tags);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(_,{to:`/ec2/describe-addresses`,children:`Back to Elastic IPs`}),(A.error??O.error??k.error)&&(0,E.jsx)(b,{error:A.error??O.error??k.error??void 0,msg:`Elastic IP action failed`}),(0,E.jsxs)(`div`,{className:`space-y-6`,children:[(0,E.jsx)(v,{actions:(0,E.jsxs)(d,{disabled:B||A.isPending,onClick:()=>M(!0),size:`sm`,variant:`destructive`,children:[(0,E.jsx)(u,{className:`size-4`}),`Release`]}),subtitle:`Elastic IP Details`,title:V?`${F.AllocationId} (${V})`:F.AllocationId}),(0,E.jsxs)(C,{children:[(0,E.jsx)(C.Header,{children:`Elastic IP Information`}),(0,E.jsxs)(C.Content,{children:[(0,E.jsx)(w,{label:`Allocation ID`,value:F.AllocationId}),(0,E.jsx)(w,{label:`Public IP`,value:F.PublicIp}),(0,E.jsx)(w,{label:`Domain`,value:F.Domain}),(0,E.jsx)(w,{label:`Association ID`,value:F.AssociationId??`—`}),(0,E.jsx)(w,{label:`Instance ID`,value:F.InstanceId??`—`}),(0,E.jsx)(w,{label:`Private IP`,value:F.PrivateIpAddress??`—`})]})]}),(0,E.jsxs)(C,{children:[(0,E.jsx)(C.Header,{children:`Association`}),(0,E.jsx)(C.Content,{children:B?(0,E.jsx)(d,{disabled:k.isPending,onClick:z,size:`sm`,variant:`outline`,children:`Disassociate`}):(0,E.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,E.jsx)(`div`,{className:`flex-1`,children:(0,E.jsxs)(l,{onValueChange:e=>P(e??``),value:N,children:[(0,E.jsx)(c,{className:`w-full`,children:(0,E.jsx)(a,{placeholder:`Select an instance`})}),(0,E.jsx)(s,{children:I.map(e=>{let t=i(e.Tags);return(0,E.jsx)(o,{value:e.InstanceId??``,children:t?`${e.InstanceId} (${t})`:e.InstanceId},e.InstanceId)})})]})}),(0,E.jsx)(d,{disabled:!N||O.isPending,onClick:R,size:`sm`,children:`Associate`})]})})]})]}),(0,E.jsx)(S,{description:`Are you sure you want to release the Elastic IP "${F.AllocationId}" (${F.PublicIp})? This action cannot be undone.`,isPending:A.isPending,onConfirm:L,onOpenChange:M,open:j,title:`Release Elastic IP`})]})}export{D as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./useNavigate.js";import{$t as i}from"./auth.js";import{c as a,i as o,n as s,s as c,t as l}from"./select.js";import{t as u}from"./trash-2.js";import{t as d}from"./button.js";import{l as f,t as p}from"./ec2.js";import{$n as m,Sn as h,Tn as g,Yt as _,an as v,dt as y,k as b,yn as x}from"./index.js";import{t as S}from"./delete-confirmation-dialog.js";import{n as C,t as w}from"./detail-row.js";var T=t(n()),E=e();function D(){let{id:e}=b.useParams(),t=r(),{data:n}=m(p(e)),{data:D}=m(f),O=y(),k=_(),A=v(),[j,M]=(0,T.useState)(!1),[N,P]=(0,T.useState)(``),F=n.Addresses?.[0],I=D.Reservations?.flatMap(e=>e.Instances??[]).filter(e=>e.State?.Name===`running`||e.State?.Name===`stopped`)??[],L=async()=>{try{await A.mutateAsync(e),t({to:`/ec2/describe-addresses`})}finally{M(!1)}},R=async()=>{N&&await O.mutateAsync({allocationId:e,instanceId:N})},z=async()=>{F?.AssociationId&&await k.mutateAsync(F.AssociationId)};if(!F?.AllocationId)return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(g,{to:`/ec2/describe-addresses`,children:`Back to Elastic IPs`}),(0,E.jsx)(`p`,{className:`text-muted-foreground`,children:`Elastic IP not found.`})]});let B=!!F.AssociationId,V=i(F.Tags);return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(g,{to:`/ec2/describe-addresses`,children:`Back to Elastic IPs`}),(A.error??O.error??k.error)&&(0,E.jsx)(h,{error:A.error??O.error??k.error??void 0,msg:`Elastic IP action failed`}),(0,E.jsxs)(`div`,{className:`space-y-6`,children:[(0,E.jsx)(x,{actions:(0,E.jsxs)(d,{disabled:B||A.isPending,onClick:()=>M(!0),size:`sm`,variant:`destructive`,children:[(0,E.jsx)(u,{className:`size-4`}),`Release`]}),subtitle:`Elastic IP Details`,title:V?`${F.AllocationId} (${V})`:F.AllocationId}),(0,E.jsxs)(C,{children:[(0,E.jsx)(C.Header,{children:`Elastic IP Information`}),(0,E.jsxs)(C.Content,{children:[(0,E.jsx)(w,{label:`Allocation ID`,value:F.AllocationId}),(0,E.jsx)(w,{label:`Public IP`,value:F.PublicIp}),(0,E.jsx)(w,{label:`Domain`,value:F.Domain}),(0,E.jsx)(w,{label:`Association ID`,value:F.AssociationId??`—`}),(0,E.jsx)(w,{label:`Instance ID`,value:F.InstanceId??`—`}),(0,E.jsx)(w,{label:`Private IP`,value:F.PrivateIpAddress??`—`})]})]}),(0,E.jsxs)(C,{children:[(0,E.jsx)(C.Header,{children:`Association`}),(0,E.jsx)(C.Content,{children:B?(0,E.jsx)(d,{disabled:k.isPending,onClick:z,size:`sm`,variant:`outline`,children:`Disassociate`}):(0,E.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,E.jsx)(`div`,{className:`flex-1`,children:(0,E.jsxs)(l,{onValueChange:e=>P(e??``),value:N,children:[(0,E.jsx)(c,{className:`w-full`,children:(0,E.jsx)(a,{placeholder:`Select an instance`})}),(0,E.jsx)(s,{children:I.map(e=>{let t=i(e.Tags);return(0,E.jsx)(o,{value:e.InstanceId??``,children:t?`${e.InstanceId} (${t})`:e.InstanceId},e.InstanceId)})})]})}),(0,E.jsx)(d,{disabled:!N||O.isPending,onClick:R,size:`sm`,children:`Associate`})]})})]})]}),(0,E.jsx)(S,{description:`Are you sure you want to release the Elastic IP "${F.AllocationId}" (${F.PublicIp})? This action cannot be undone.`,isPending:A.isPending,onConfirm:L,onOpenChange:M,open:j,title:`Release Elastic IP`})]})}export{D as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id10.js b/spinifex/services/spinifexui/frontend/dist/assets/_id10.js index 0e7bcf4e4..0ce196c7e 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id10.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id10.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{c as o,i as s,n as c,s as l,t as u}from"./select.js";import{t as d}from"./trash-2.js";import{t as f}from"./button.js";import{O as ee,_ as p,d as te,x as m}from"./ec2.js";import{L as h,Ln as g,Mt as _,Sn as ne,Ut as v,W as y,Xn as b,_n as x,_t as S,an as C,b as re,dn as ie,it as ae,jt as w,mn as T,rn as E,sn as D,vn as O,xn as k,yn as A}from"./index.js";import{t as oe}from"./delete-confirmation-dialog.js";import{n as j,t as M}from"./detail-row.js";import{t as se}from"./badge.js";var N=t(n()),P=e();function F(e){return e.GatewayId??e.NatGatewayId??e.NetworkInterfaceId??e.InstanceId??e.VpcPeeringConnectionId??`—`}function I(){let{id:e}=re.useParams(),t=i(),{data:n}=b(m(e)),{data:I}=b(te),{data:L}=b(p),{data:R}=b(ee),z=_(),B=S(),V=w(),H=ae(),U=v(),[W,G]=(0,N.useState)(!1),K=n.RouteTables?.[0],q=k({resolver:O(y),defaultValues:{destinationCidrBlock:`0.0.0.0/0`,targetType:`igw`,targetId:``}}),ce=ne({control:q.control,name:`targetType`}),J=k({resolver:O(h),defaultValues:{subnetId:``}});if(!K?.RouteTableId)return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(x,{to:`/ec2/describe-route-tables`,children:`Back to Route Tables`}),(0,P.jsx)(`p`,{className:`text-muted-foreground`,children:`Route Table not found.`})]});let Y=K.RouteTableId,X=a(K.Tags),Z=K.Associations?.some(e=>e.Main)??!1,Q=K.Routes??[],$=(K.Associations??[]).filter(e=>e.SubnetId),le=(I.InternetGateways??[]).filter(e=>e.Attachments?.some(e=>e.VpcId===K.VpcId)),ue=(L.NatGateways??[]).filter(e=>e.VpcId===K.VpcId&&e.State===`available`),de=new Set($.map(e=>e.SubnetId)),fe=(R.Subnets??[]).filter(e=>e.VpcId===K.VpcId&&!de.has(e.SubnetId)),pe=async()=>{try{await z.mutateAsync(Y),t({to:`/ec2/describe-route-tables`})}finally{G(!1)}},me=async e=>{await B.mutateAsync({routeTableId:Y,destinationCidrBlock:e.destinationCidrBlock,gatewayId:e.targetType===`igw`?e.targetId:void 0,natGatewayId:e.targetType===`nat`?e.targetId:void 0}),q.reset({destinationCidrBlock:`0.0.0.0/0`,targetType:`igw`,targetId:``})},he=async e=>{await H.mutateAsync({routeTableId:Y,subnetId:e.subnetId}),J.reset({subnetId:``})};return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(x,{to:`/ec2/describe-route-tables`,children:`Back to Route Tables`}),z.error&&(0,P.jsx)(T,{error:z.error,msg:`Failed to delete Route Table`}),(0,P.jsxs)(`div`,{className:`space-y-6`,children:[(0,P.jsx)(ie,{actions:(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,P.jsxs)(f,{disabled:Z||z.isPending,onClick:()=>G(!0),size:`sm`,variant:`destructive`,children:[(0,P.jsx)(d,{className:`size-4`}),`Delete`]}),Z&&(0,P.jsx)(se,{variant:`secondary`,children:`Main`})]}),subtitle:`Route Table Details`,title:X?`${K.RouteTableId} (${X})`:K.RouteTableId}),(0,P.jsxs)(j,{children:[(0,P.jsx)(j.Header,{children:`Route Table Information`}),(0,P.jsxs)(j.Content,{children:[(0,P.jsx)(M,{label:`Route Table ID`,value:K.RouteTableId}),(0,P.jsx)(M,{label:`Main`,value:Z?`Yes`:`No`}),(0,P.jsx)(M,{label:`VPC ID`,value:K.VpcId?(0,P.jsx)(r,{className:`text-primary hover:underline`,params:{id:K.VpcId},to:`/ec2/describe-vpcs/$id`,children:K.VpcId}):`—`}),(0,P.jsx)(M,{label:`Owner ID`,value:K.OwnerId??`—`})]})]}),(0,P.jsxs)(j,{children:[(0,P.jsx)(j.Header,{children:`Routes`}),(0,P.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,P.jsx)(`div`,{className:`overflow-x-auto rounded-md border`,children:(0,P.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,P.jsx)(`thead`,{className:`bg-muted/50 text-left text-muted-foreground`,children:(0,P.jsxs)(`tr`,{children:[(0,P.jsx)(`th`,{className:`p-2 font-medium`,children:`Destination`}),(0,P.jsx)(`th`,{className:`p-2 font-medium`,children:`Target`}),(0,P.jsx)(`th`,{className:`p-2 font-medium`,children:`Status`}),(0,P.jsx)(`th`,{className:`p-2`,children:(0,P.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,P.jsx)(`tbody`,{children:Q.length>0?Q.map(e=>{let t=e.DestinationCidrBlock??e.DestinationPrefixListId??`—`,n=e.GatewayId===`local`,r=e.DestinationCidrBlock;return(0,P.jsxs)(`tr`,{className:`border-t`,children:[(0,P.jsx)(`td`,{className:`p-2 font-mono`,children:t}),(0,P.jsx)(`td`,{className:`p-2 font-mono`,children:F(e)}),(0,P.jsx)(`td`,{className:`p-2`,children:e.State??`—`}),(0,P.jsx)(`td`,{className:`p-2 text-right`,children:!n&&r&&(0,P.jsx)(f,{disabled:V.isPending,onClick:async()=>await V.mutateAsync({routeTableId:Y,destinationCidrBlock:r}),size:`sm`,variant:`ghost`,children:(0,P.jsx)(d,{className:`size-4`})})})]},t)}):(0,P.jsx)(`tr`,{children:(0,P.jsx)(`td`,{className:`p-2 text-muted-foreground`,colSpan:4,children:`No routes.`})})})]})}),(B.error??V.error)&&(0,P.jsx)(T,{error:B.error??V.error??void 0,msg:`Failed to update route`}),(0,P.jsxs)(`form`,{className:`grid items-end gap-3 sm:grid-cols-[1fr_1fr_1fr_auto]`,onSubmit:q.handleSubmit(me),children:[(0,P.jsxs)(E,{children:[(0,P.jsx)(D,{children:(0,P.jsx)(`label`,{htmlFor:`destinationCidrBlock`,children:`Destination`})}),(0,P.jsx)(g,{id:`destinationCidrBlock`,placeholder:`0.0.0.0/0`,...q.register(`destinationCidrBlock`)}),(0,P.jsx)(C,{errors:[q.formState.errors.destinationCidrBlock]})]}),(0,P.jsxs)(E,{children:[(0,P.jsx)(D,{children:(0,P.jsx)(`label`,{htmlFor:`targetType`,children:`Target type`})}),(0,P.jsx)(A,{control:q.control,name:`targetType`,render:({field:e})=>(0,P.jsxs)(u,{onValueChange:t=>{e.onChange(t),q.setValue(`targetId`,``)},value:e.value,children:[(0,P.jsx)(l,{className:`w-full`,id:`targetType`,children:(0,P.jsx)(o,{})}),(0,P.jsxs)(c,{children:[(0,P.jsx)(s,{value:`igw`,children:`Internet Gateway`}),(0,P.jsx)(s,{value:`nat`,children:`NAT Gateway`})]})]})})]}),(0,P.jsxs)(E,{children:[(0,P.jsx)(D,{children:(0,P.jsx)(`label`,{htmlFor:`targetId`,children:`Target`})}),(0,P.jsx)(A,{control:q.control,name:`targetId`,render:({field:e})=>(0,P.jsxs)(u,{onValueChange:t=>e.onChange(t),value:e.value??``,children:[(0,P.jsx)(l,{"aria-invalid":!!q.formState.errors.targetId,className:`w-full`,id:`targetId`,children:(0,P.jsx)(o,{placeholder:`Select target`})}),(0,P.jsx)(c,{children:ce===`igw`?le.map(e=>(0,P.jsx)(s,{value:e.InternetGatewayId??``,children:e.InternetGatewayId},e.InternetGatewayId)):ue.map(e=>(0,P.jsx)(s,{value:e.NatGatewayId??``,children:e.NatGatewayId},e.NatGatewayId))})]})}),(0,P.jsx)(C,{errors:[q.formState.errors.targetId]})]}),(0,P.jsx)(f,{disabled:B.isPending,size:`sm`,type:`submit`,children:`Add route`})]})]})]}),(0,P.jsxs)(j,{children:[(0,P.jsx)(j.Header,{children:`Subnet Associations`}),(0,P.jsxs)(`div`,{className:`space-y-4 p-4`,children:[$.length>0?(0,P.jsx)(`ul`,{className:`space-y-2`,children:$.map(e=>{let t=e.RouteTableAssociationId;return(0,P.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border p-2 text-sm`,children:[(0,P.jsx)(r,{className:`font-mono text-primary hover:underline`,params:{id:e.SubnetId??``},to:`/ec2/describe-subnets/$id`,children:e.SubnetId}),(0,P.jsx)(f,{disabled:!t||U.isPending,onClick:async()=>{t&&await U.mutateAsync(t)},size:`sm`,variant:`ghost`,children:(0,P.jsx)(d,{className:`size-4`})})]},t)})}):(0,P.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No subnet associations.`}),(H.error??U.error)&&(0,P.jsx)(T,{error:H.error??U.error??void 0,msg:`Failed to update association`}),(0,P.jsxs)(`form`,{className:`grid items-end gap-3 sm:grid-cols-[1fr_auto]`,onSubmit:J.handleSubmit(he),children:[(0,P.jsxs)(E,{children:[(0,P.jsx)(D,{children:(0,P.jsx)(`label`,{htmlFor:`subnetId`,children:`Associate subnet`})}),(0,P.jsx)(A,{control:J.control,name:`subnetId`,render:({field:e})=>(0,P.jsxs)(u,{onValueChange:t=>e.onChange(t),value:e.value??``,children:[(0,P.jsx)(l,{"aria-invalid":!!J.formState.errors.subnetId,className:`w-full`,id:`subnetId`,children:(0,P.jsx)(o,{placeholder:`Select a subnet`})}),(0,P.jsx)(c,{children:fe.map(e=>{let t=a(e.Tags);return(0,P.jsx)(s,{value:e.SubnetId??``,children:t?`${e.SubnetId} (${t})`:`${e.SubnetId} (${e.CidrBlock})`},e.SubnetId)})})]})}),(0,P.jsx)(C,{errors:[J.formState.errors.subnetId]})]}),(0,P.jsx)(f,{disabled:H.isPending,size:`sm`,type:`submit`,children:`Associate`})]})]})]})]}),(0,P.jsx)(oe,{description:`Are you sure you want to delete the Route Table "${K.RouteTableId}"? This action cannot be undone.`,isPending:z.isPending,onConfirm:pe,onOpenChange:G,open:W,title:`Delete Route Table`})]})}export{I as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{c as o,i as s,n as c,s as l,t as u}from"./select.js";import{t as d}from"./trash-2.js";import{t as f}from"./button.js";import{O as p,_ as m,d as h,x as g}from"./ec2.js";import{$ as ee,$n as _,An as te,Bt as ne,Dn as v,En as y,Rn as re,Sn as b,Tn as x,Tt as ie,Zt as S,b as C,dn as w,hn as T,kn as E,pn as D,pt as O,q as ae,yn as oe,zt as se}from"./index.js";import{t as ce}from"./delete-confirmation-dialog.js";import{n as k,t as A}from"./detail-row.js";import{t as j}from"./badge.js";var M=t(n()),N=e();function P(e){return e.GatewayId??e.NatGatewayId??e.NetworkInterfaceId??e.InstanceId??e.VpcPeeringConnectionId??`—`}function F(){let{id:e}=C.useParams(),t=i(),{data:n}=_(g(e)),{data:F}=_(h),{data:I}=_(m),{data:L}=_(p),R=ne(),z=ie(),B=se(),V=O(),H=S(),[U,W]=(0,M.useState)(!1),G=n.RouteTables?.[0],K=E({resolver:y(ee),defaultValues:{destinationCidrBlock:`0.0.0.0/0`,targetType:`igw`,targetId:``}}),le=te({control:K.control,name:`targetType`}),q=E({resolver:y(ae),defaultValues:{subnetId:``}});if(!G?.RouteTableId)return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(x,{to:`/ec2/describe-route-tables`,children:`Back to Route Tables`}),(0,N.jsx)(`p`,{className:`text-muted-foreground`,children:`Route Table not found.`})]});let J=G.RouteTableId,Y=a(G.Tags),X=G.Associations?.some(e=>e.Main)??!1,Z=G.Routes??[],Q=(G.Associations??[]).filter(e=>e.SubnetId),$=(F.InternetGateways??[]).filter(e=>e.Attachments?.some(e=>e.VpcId===G.VpcId)),ue=(I.NatGateways??[]).filter(e=>e.VpcId===G.VpcId&&e.State===`available`),de=new Set(Q.map(e=>e.SubnetId)),fe=(L.Subnets??[]).filter(e=>e.VpcId===G.VpcId&&!de.has(e.SubnetId)),pe=async()=>{try{await R.mutateAsync(J),t({to:`/ec2/describe-route-tables`})}finally{W(!1)}},me=async e=>{await z.mutateAsync({routeTableId:J,destinationCidrBlock:e.destinationCidrBlock,gatewayId:e.targetType===`igw`?e.targetId:void 0,natGatewayId:e.targetType===`nat`?e.targetId:void 0}),K.reset({destinationCidrBlock:`0.0.0.0/0`,targetType:`igw`,targetId:``})},he=async e=>{await V.mutateAsync({routeTableId:J,subnetId:e.subnetId}),q.reset({subnetId:``})};return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(x,{to:`/ec2/describe-route-tables`,children:`Back to Route Tables`}),R.error&&(0,N.jsx)(b,{error:R.error,msg:`Failed to delete Route Table`}),(0,N.jsxs)(`div`,{className:`space-y-6`,children:[(0,N.jsx)(oe,{actions:(0,N.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,N.jsxs)(f,{disabled:X||R.isPending,onClick:()=>W(!0),size:`sm`,variant:`destructive`,children:[(0,N.jsx)(d,{className:`size-4`}),`Delete`]}),X&&(0,N.jsx)(j,{variant:`secondary`,children:`Main`})]}),subtitle:`Route Table Details`,title:Y?`${G.RouteTableId} (${Y})`:G.RouteTableId}),(0,N.jsxs)(k,{children:[(0,N.jsx)(k.Header,{children:`Route Table Information`}),(0,N.jsxs)(k.Content,{children:[(0,N.jsx)(A,{label:`Route Table ID`,value:G.RouteTableId}),(0,N.jsx)(A,{label:`Main`,value:X?`Yes`:`No`}),(0,N.jsx)(A,{label:`VPC ID`,value:G.VpcId?(0,N.jsx)(r,{className:`text-primary hover:underline`,params:{id:G.VpcId},to:`/ec2/describe-vpcs/$id`,children:G.VpcId}):`—`}),(0,N.jsx)(A,{label:`Owner ID`,value:G.OwnerId??`—`})]})]}),(0,N.jsxs)(k,{children:[(0,N.jsx)(k.Header,{children:`Routes`}),(0,N.jsxs)(`div`,{className:`space-y-4 p-4`,children:[(0,N.jsx)(`div`,{className:`overflow-x-auto rounded-md border`,children:(0,N.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,N.jsx)(`thead`,{className:`bg-muted/50 text-left text-muted-foreground`,children:(0,N.jsxs)(`tr`,{children:[(0,N.jsx)(`th`,{className:`p-2 font-medium`,children:`Destination`}),(0,N.jsx)(`th`,{className:`p-2 font-medium`,children:`Target`}),(0,N.jsx)(`th`,{className:`p-2 font-medium`,children:`Status`}),(0,N.jsx)(`th`,{className:`p-2`,children:(0,N.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,N.jsx)(`tbody`,{children:Z.length>0?Z.map(e=>{let t=e.DestinationCidrBlock??e.DestinationPrefixListId??`—`,n=e.GatewayId===`local`,r=e.DestinationCidrBlock;return(0,N.jsxs)(`tr`,{className:`border-t`,children:[(0,N.jsx)(`td`,{className:`p-2 font-mono`,children:t}),(0,N.jsx)(`td`,{className:`p-2 font-mono`,children:P(e)}),(0,N.jsx)(`td`,{className:`p-2`,children:e.State??`—`}),(0,N.jsx)(`td`,{className:`p-2 text-right`,children:!n&&r&&(0,N.jsx)(f,{disabled:B.isPending,onClick:async()=>await B.mutateAsync({routeTableId:J,destinationCidrBlock:r}),size:`sm`,variant:`ghost`,children:(0,N.jsx)(d,{className:`size-4`})})})]},t)}):(0,N.jsx)(`tr`,{children:(0,N.jsx)(`td`,{className:`p-2 text-muted-foreground`,colSpan:4,children:`No routes.`})})})]})}),(z.error??B.error)&&(0,N.jsx)(b,{error:z.error??B.error??void 0,msg:`Failed to update route`}),(0,N.jsxs)(`form`,{className:`grid items-end gap-3 sm:grid-cols-[1fr_1fr_1fr_auto]`,onSubmit:K.handleSubmit(me),children:[(0,N.jsxs)(w,{children:[(0,N.jsx)(T,{children:(0,N.jsx)(`label`,{htmlFor:`destinationCidrBlock`,children:`Destination`})}),(0,N.jsx)(re,{id:`destinationCidrBlock`,placeholder:`0.0.0.0/0`,...K.register(`destinationCidrBlock`)}),(0,N.jsx)(D,{errors:[K.formState.errors.destinationCidrBlock]})]}),(0,N.jsxs)(w,{children:[(0,N.jsx)(T,{children:(0,N.jsx)(`label`,{htmlFor:`targetType`,children:`Target type`})}),(0,N.jsx)(v,{control:K.control,name:`targetType`,render:({field:e})=>(0,N.jsxs)(u,{onValueChange:t=>{e.onChange(t),K.setValue(`targetId`,``)},value:e.value,children:[(0,N.jsx)(l,{className:`w-full`,id:`targetType`,children:(0,N.jsx)(o,{})}),(0,N.jsxs)(c,{children:[(0,N.jsx)(s,{value:`igw`,children:`Internet Gateway`}),(0,N.jsx)(s,{value:`nat`,children:`NAT Gateway`})]})]})})]}),(0,N.jsxs)(w,{children:[(0,N.jsx)(T,{children:(0,N.jsx)(`label`,{htmlFor:`targetId`,children:`Target`})}),(0,N.jsx)(v,{control:K.control,name:`targetId`,render:({field:e})=>(0,N.jsxs)(u,{onValueChange:t=>e.onChange(t),value:e.value??``,children:[(0,N.jsx)(l,{"aria-invalid":!!K.formState.errors.targetId,className:`w-full`,id:`targetId`,children:(0,N.jsx)(o,{placeholder:`Select target`})}),(0,N.jsx)(c,{children:le===`igw`?$.map(e=>(0,N.jsx)(s,{value:e.InternetGatewayId??``,children:e.InternetGatewayId},e.InternetGatewayId)):ue.map(e=>(0,N.jsx)(s,{value:e.NatGatewayId??``,children:e.NatGatewayId},e.NatGatewayId))})]})}),(0,N.jsx)(D,{errors:[K.formState.errors.targetId]})]}),(0,N.jsx)(f,{disabled:z.isPending,size:`sm`,type:`submit`,children:`Add route`})]})]})]}),(0,N.jsxs)(k,{children:[(0,N.jsx)(k.Header,{children:`Subnet Associations`}),(0,N.jsxs)(`div`,{className:`space-y-4 p-4`,children:[Q.length>0?(0,N.jsx)(`ul`,{className:`space-y-2`,children:Q.map(e=>{let t=e.RouteTableAssociationId;return(0,N.jsxs)(`li`,{className:`flex items-center justify-between rounded-md border p-2 text-sm`,children:[(0,N.jsx)(r,{className:`font-mono text-primary hover:underline`,params:{id:e.SubnetId??``},to:`/ec2/describe-subnets/$id`,children:e.SubnetId}),(0,N.jsx)(f,{disabled:!t||H.isPending,onClick:async()=>{t&&await H.mutateAsync(t)},size:`sm`,variant:`ghost`,children:(0,N.jsx)(d,{className:`size-4`})})]},t)})}):(0,N.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No subnet associations.`}),(V.error??H.error)&&(0,N.jsx)(b,{error:V.error??H.error??void 0,msg:`Failed to update association`}),(0,N.jsxs)(`form`,{className:`grid items-end gap-3 sm:grid-cols-[1fr_auto]`,onSubmit:q.handleSubmit(he),children:[(0,N.jsxs)(w,{children:[(0,N.jsx)(T,{children:(0,N.jsx)(`label`,{htmlFor:`subnetId`,children:`Associate subnet`})}),(0,N.jsx)(v,{control:q.control,name:`subnetId`,render:({field:e})=>(0,N.jsxs)(u,{onValueChange:t=>e.onChange(t),value:e.value??``,children:[(0,N.jsx)(l,{"aria-invalid":!!q.formState.errors.subnetId,className:`w-full`,id:`subnetId`,children:(0,N.jsx)(o,{placeholder:`Select a subnet`})}),(0,N.jsx)(c,{children:fe.map(e=>{let t=a(e.Tags);return(0,N.jsx)(s,{value:e.SubnetId??``,children:t?`${e.SubnetId} (${t})`:`${e.SubnetId} (${e.CidrBlock})`},e.SubnetId)})})]})}),(0,N.jsx)(D,{errors:[q.formState.errors.subnetId]})]}),(0,N.jsx)(f,{disabled:V.isPending,size:`sm`,type:`submit`,children:`Associate`})]})]})]})]}),(0,N.jsx)(ce,{description:`Are you sure you want to delete the Route Table "${G.RouteTableId}"? This action cannot be undone.`,isPending:R.isPending,onConfirm:pe,onOpenChange:W,open:U,title:`Delete Route Table`})]})}export{F as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id11.js b/spinifex/services/spinifexui/frontend/dist/assets/_id11.js index 7abe850e4..12447d9af 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id11.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id11.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{c as o,i as s,n as c,s as l,t as u}from"./select.js";import{t as d}from"./plus.js";import{t as f}from"./trash-2.js";import{t as p}from"./button.js";import{C as ee}from"./ec2.js";import{$ as te,$t as m,Ln as h,Nt as g,Qt as _,Rn as v,Sn as ne,Xn as y,_n as b,an as re,ct as ie,dn as x,mn as ae,rn as S,sn as C,st as oe,vn as se,xn as ce,y as w,yn as le}from"./index.js";import{i as ue,l as de,n as fe,o as pe,r as me,s as he,t as ge}from"./alert-dialog.js";import{t as T}from"./delete-confirmation-dialog.js";import{n as E,t as D}from"./detail-row.js";var _e=r(),O=t(n()),k=e();function A(e){if(!e||e===`-1`)return`All traffic`;let t=e.toUpperCase();return t===`TCP`||t===`UDP`||t===`ICMP`?t:e}function j(e,t,n){return!n||n===`-1`||e===void 0||t===void 0||e===-1&&t===-1?`All`:e===t?e.toString():`${e}-${t}`}function M(e){let t=(0,_e.c)(87),{open:n,onOpenChange:r,direction:i,groupId:a}=e,o=ie(),s=oe(),c=i===`ingress`?o:s,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l={resolver:se(te),defaultValues:{ipProtocol:`tcp`,fromPort:0,toPort:0,cidrIp:`0.0.0.0/0`}},t[0]=l):l=t[0];let{control:u,handleSubmit:d,register:f,reset:p,formState:ee}=ce(l),{errors:m}=ee,g;t[1]===u?g=t[2]:(g={control:u,name:`ipProtocol`},t[1]=u,t[2]=g);let _=ne(g),v=_===`-1`||_===`icmp`,y;t[3]!==a||t[4]!==c||t[5]!==r||t[6]!==v||t[7]!==p?(y=async e=>{let t={groupId:a,ipProtocol:e.ipProtocol,fromPort:v?-1:e.fromPort,toPort:v?-1:e.toPort,cidrIp:e.cidrIp};await c.mutateAsync(t),p(),r(!1)},t[3]=a,t[4]=c,t[5]=r,t[6]=v,t[7]=p,t[8]=y):y=t[8];let b=y,x=i===`ingress`?`Inbound`:`Outbound`,w;t[9]===x?w=t[10]:(w=(0,k.jsx)(he,{children:(0,k.jsxs)(de,{children:[`Add `,x,` Rule`]})}),t[9]=x,t[10]=w);let T;t[11]===c.error?T=t[12]:(T=c.error&&(0,k.jsx)(ae,{error:c.error,msg:`Failed to add rule`}),t[11]=c.error,t[12]=T);let E;t[13]!==d||t[14]!==b?(E=d(b),t[13]=d,t[14]=b,t[15]=E):E=t[15];let D;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,k.jsx)(C,{children:(0,k.jsx)(`label`,{htmlFor:`ipProtocol`,children:`Protocol`})}),t[16]=D):D=t[16];let O;t[17]===u?O=t[18]:(O=(0,k.jsx)(le,{control:u,name:`ipProtocol`,render:ve}),t[17]=u,t[18]=O);let A;t[19]===m.ipProtocol?A=t[20]:(A=(0,k.jsx)(re,{errors:[m.ipProtocol]}),t[19]=m.ipProtocol,t[20]=A);let j;t[21]!==O||t[22]!==A?(j=(0,k.jsxs)(S,{children:[D,O,A]}),t[21]=O,t[22]=A,t[23]=j):j=t[23];let M;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,k.jsx)(C,{children:(0,k.jsx)(`label`,{htmlFor:`fromPort`,children:`From Port`})}),t[24]=M):M=t[24];let N=!!m.fromPort,P;t[25]===f?P=t[26]:(P=f(`fromPort`,{valueAsNumber:!0}),t[25]=f,t[26]=P);let F;t[27]!==v||t[28]!==N||t[29]!==P?(F=(0,k.jsx)(h,{"aria-invalid":N,disabled:v,id:`fromPort`,type:`number`,...P}),t[27]=v,t[28]=N,t[29]=P,t[30]=F):F=t[30];let I;t[31]===m.fromPort?I=t[32]:(I=(0,k.jsx)(re,{errors:[m.fromPort]}),t[31]=m.fromPort,t[32]=I);let L;t[33]!==F||t[34]!==I?(L=(0,k.jsxs)(S,{children:[M,F,I]}),t[33]=F,t[34]=I,t[35]=L):L=t[35];let R;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,k.jsx)(C,{children:(0,k.jsx)(`label`,{htmlFor:`toPort`,children:`To Port`})}),t[36]=R):R=t[36];let ye=!!m.toPort,z;t[37]===f?z=t[38]:(z=f(`toPort`,{valueAsNumber:!0}),t[37]=f,t[38]=z);let B;t[39]!==v||t[40]!==ye||t[41]!==z?(B=(0,k.jsx)(h,{"aria-invalid":ye,disabled:v,id:`toPort`,type:`number`,...z}),t[39]=v,t[40]=ye,t[41]=z,t[42]=B):B=t[42];let V;t[43]===m.toPort?V=t[44]:(V=(0,k.jsx)(re,{errors:[m.toPort]}),t[43]=m.toPort,t[44]=V);let H;t[45]!==B||t[46]!==V?(H=(0,k.jsxs)(S,{children:[R,B,V]}),t[45]=B,t[46]=V,t[47]=H):H=t[47];let U;t[48]!==L||t[49]!==H?(U=(0,k.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[L,H]}),t[48]=L,t[49]=H,t[50]=U):U=t[50];let be=i===`ingress`?`Source`:`Destination`,W;t[51]===be?W=t[52]:(W=(0,k.jsx)(C,{children:(0,k.jsxs)(`label`,{htmlFor:`cidrIp`,children:[be,` CIDR`]})}),t[51]=be,t[52]=W);let xe=!!m.cidrIp,G;t[53]===f?G=t[54]:(G=f(`cidrIp`),t[53]=f,t[54]=G);let K;t[55]!==xe||t[56]!==G?(K=(0,k.jsx)(h,{"aria-invalid":xe,id:`cidrIp`,placeholder:`0.0.0.0/0`,...G}),t[55]=xe,t[56]=G,t[57]=K):K=t[57];let q;t[58]===m.cidrIp?q=t[59]:(q=(0,k.jsx)(re,{errors:[m.cidrIp]}),t[58]=m.cidrIp,t[59]=q);let J;t[60]!==W||t[61]!==K||t[62]!==q?(J=(0,k.jsxs)(S,{children:[W,K,q]}),t[60]=W,t[61]=K,t[62]=q,t[63]=J):J=t[63];let Y;t[64]!==j||t[65]!==U||t[66]!==J||t[67]!==E?(Y=(0,k.jsxs)(`form`,{className:`space-y-4`,id:`add-rule-form`,onSubmit:E,children:[j,U,J]}),t[64]=j,t[65]=U,t[66]=J,t[67]=E,t[68]=Y):Y=t[68];let X;t[69]!==c||t[70]!==p?(X=(0,k.jsx)(me,{onClick:()=>{p(),c.reset()},children:`Cancel`}),t[69]=c,t[70]=p,t[71]=X):X=t[71];let Se=c.isPending?`Adding…`:`Add Rule`,Z;t[72]!==c.isPending||t[73]!==Se?(Z=(0,k.jsx)(fe,{disabled:c.isPending,form:`add-rule-form`,type:`submit`,children:Se}),t[72]=c.isPending,t[73]=Se,t[74]=Z):Z=t[74];let Q;t[75]!==X||t[76]!==Z?(Q=(0,k.jsxs)(pe,{children:[X,Z]}),t[75]=X,t[76]=Z,t[77]=Q):Q=t[77];let $;t[78]!==Y||t[79]!==Q||t[80]!==w||t[81]!==T?($=(0,k.jsxs)(ue,{children:[w,T,Y,Q]}),t[78]=Y,t[79]=Q,t[80]=w,t[81]=T,t[82]=$):$=t[82];let Ce;return t[83]!==r||t[84]!==n||t[85]!==$?(Ce=(0,k.jsx)(ge,{onOpenChange:r,open:n,children:$}),t[83]=r,t[84]=n,t[85]=$,t[86]=Ce):Ce=t[86],Ce}function ve(e){let{field:t}=e;return(0,k.jsxs)(u,{onValueChange:e=>t.onChange(e),value:t.value,children:[(0,k.jsx)(l,{className:`w-full`,id:`ipProtocol`,children:(0,k.jsx)(o,{})}),(0,k.jsxs)(c,{children:[(0,k.jsx)(s,{value:`tcp`,children:`TCP`}),(0,k.jsx)(s,{value:`udp`,children:`UDP`}),(0,k.jsx)(s,{value:`icmp`,children:`ICMP`}),(0,k.jsx)(s,{value:`-1`,children:`All traffic (-1)`})]})]})}function N(e){return[...(e.IpRanges??[]).map(e=>({kind:`cidr`,value:e.CidrIp??``})),...(e.UserIdGroupPairs??[]).map(e=>({kind:`group`,value:e.GroupId??``}))]}function P({rule:e,source:t,groupId:n,direction:r}){let i=m(),a=_(),o=r===`ingress`?i:a,s=async()=>{try{await o.mutateAsync({groupId:n,ipProtocol:e.IpProtocol??`-1`,fromPort:e.FromPort??-1,toPort:e.ToPort??-1,...t.kind===`group`?{sourceGroupId:t.value}:{cidrIp:t.value}})}catch{}},c=t.kind===`group`&&t.value===n?`${t.value} (this security group)`:t.value;return(0,k.jsxs)(`div`,{className:`space-y-0`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b px-4 py-3 last:border-b-0`,children:[(0,k.jsxs)(`div`,{className:`grid flex-1 grid-cols-3 gap-4 text-sm`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`span`,{className:`text-muted-foreground`,children:`Protocol: `}),A(e.IpProtocol)]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`span`,{className:`text-muted-foreground`,children:`Port Range: `}),j(e.FromPort,e.ToPort,e.IpProtocol)]}),(0,k.jsxs)(`div`,{children:[(0,k.jsxs)(`span`,{className:`text-muted-foreground`,children:[r===`ingress`?`Source`:`Destination`,`:`,` `]}),c]})]}),(0,k.jsx)(p,{disabled:o.isPending,onClick:s,size:`icon-xs`,variant:`ghost`,children:(0,k.jsx)(v,{className:`size-3`})})]}),o.error&&(0,k.jsx)(`div`,{className:`px-4 pb-2`,children:(0,k.jsx)(ae,{error:o.error,msg:`Failed to remove rule`})})]})}function F(){let{id:e}=w.useParams(),t=a(),{data:n}=y(ee(e)),r=n.SecurityGroups?.[0],o=g(),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(!1),[te,m]=(0,O.useState)(!1),h=async()=>{try{await o.mutateAsync(e),t({to:`/ec2/describe-security-groups`})}finally{c(!1)}};if(!r?.GroupId)return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(b,{to:`/ec2/describe-security-groups`,children:`Back to Security Groups`}),(0,k.jsx)(`p`,{className:`text-muted-foreground`,children:`Security group not found.`})]});let _=r.IpPermissions??[],v=r.IpPermissionsEgress??[];return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(b,{to:`/ec2/describe-security-groups`,children:`Back to Security Groups`}),o.error&&(0,k.jsx)(ae,{error:o.error,msg:`Failed to delete security group`}),(0,k.jsxs)(`div`,{className:`space-y-6`,children:[(0,k.jsx)(x,{actions:(0,k.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,k.jsxs)(p,{onClick:()=>c(!0),size:`sm`,variant:`destructive`,children:[(0,k.jsx)(f,{className:`size-4`}),`Delete`]})}),subtitle:`Security Group Details`,title:r.GroupName?`${r.GroupId} (${r.GroupName})`:r.GroupId}),(0,k.jsxs)(E,{children:[(0,k.jsx)(E.Header,{children:`Security Group Information`}),(0,k.jsxs)(E.Content,{children:[(0,k.jsx)(D,{label:`Group ID`,value:r.GroupId}),(0,k.jsx)(D,{label:`Group Name`,value:r.GroupName}),(0,k.jsx)(D,{label:`Description`,value:r.Description}),(0,k.jsx)(D,{label:`VPC ID`,value:r.VpcId?(0,k.jsx)(i,{className:`text-primary hover:underline`,params:{id:r.VpcId},to:`/ec2/describe-vpcs/$id`,children:r.VpcId}):`—`}),(0,k.jsx)(D,{label:`Owner ID`,value:r.OwnerId})]})]}),(0,k.jsxs)(E,{children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b p-4`,children:[(0,k.jsxs)(`h2`,{className:`font-semibold`,children:[`Inbound Rules (`,_.length,`)`]}),(0,k.jsxs)(p,{onClick:()=>u(!0),size:`sm`,variant:`outline`,children:[(0,k.jsx)(d,{className:`size-4`}),`Add Rule`]})]}),_.length>0?(0,k.jsx)(`div`,{children:_.flatMap(e=>N(e).map(t=>(0,k.jsx)(P,{direction:`ingress`,groupId:r.GroupId??``,rule:e,source:t},`${e.IpProtocol}-${e.FromPort}-${e.ToPort}-${t.kind}-${t.value}`)))}):(0,k.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:`No inbound rules.`})]}),(0,k.jsxs)(E,{children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b p-4`,children:[(0,k.jsxs)(`h2`,{className:`font-semibold`,children:[`Outbound Rules (`,v.length,`)`]}),(0,k.jsxs)(p,{onClick:()=>m(!0),size:`sm`,variant:`outline`,children:[(0,k.jsx)(d,{className:`size-4`}),`Add Rule`]})]}),v.length>0?(0,k.jsx)(`div`,{children:v.flatMap(e=>N(e).map(t=>(0,k.jsx)(P,{direction:`egress`,groupId:r.GroupId??``,rule:e,source:t},`${e.IpProtocol}-${e.FromPort}-${e.ToPort}-${t.kind}-${t.value}`)))}):(0,k.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:`No outbound rules.`})]})]}),(0,k.jsx)(T,{description:`Are you sure you want to delete the security group "${r.GroupId}"? This action cannot be undone.`,isPending:o.isPending,onConfirm:h,onOpenChange:c,open:s,title:`Delete Security Group`}),(0,k.jsx)(M,{direction:`ingress`,groupId:r.GroupId,onOpenChange:u,open:l}),(0,k.jsx)(M,{direction:`egress`,groupId:r.GroupId,onOpenChange:m,open:te})]})}export{F as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{c as o,i as s,n as c,s as l,t as u}from"./select.js";import{t as d}from"./plus.js";import{t as f}from"./trash-2.js";import{t as p}from"./button.js";import{C as ee}from"./ec2.js";import{$n as m,An as te,B as ne,Dn as re,En as ie,F as h,I as ae,L as oe,R as se,Rn as ce,Sn as le,Tn as g,U as ue,V as de,Vt as fe,_t as pe,ct as me,dn as _,gt as he,hn as v,kn as ge,on as y,pn as b,sn as x,y as S,yn as C,zn as w}from"./index.js";import{t as T}from"./delete-confirmation-dialog.js";import{n as E,t as D}from"./detail-row.js";var _e=r(),O=t(n()),k=e();function A(e){if(!e||e===`-1`)return`All traffic`;let t=e.toUpperCase();return t===`TCP`||t===`UDP`||t===`ICMP`?t:e}function j(e,t,n){return!n||n===`-1`||e===void 0||t===void 0||e===-1&&t===-1?`All`:e===t?e.toString():`${e}-${t}`}function M(e){let t=(0,_e.c)(87),{open:n,onOpenChange:r,direction:i,groupId:a}=e,o=pe(),s=he(),c=i===`ingress`?o:s,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l={resolver:ie(me),defaultValues:{ipProtocol:`tcp`,fromPort:0,toPort:0,cidrIp:`0.0.0.0/0`}},t[0]=l):l=t[0];let{control:u,handleSubmit:d,register:f,reset:p,formState:ee}=ge(l),{errors:m}=ee,g;t[1]===u?g=t[2]:(g={control:u,name:`ipProtocol`},t[1]=u,t[2]=g);let fe=te(g),y=fe===`-1`||fe===`icmp`,x;t[3]!==a||t[4]!==c||t[5]!==r||t[6]!==y||t[7]!==p?(x=async e=>{let t={groupId:a,ipProtocol:e.ipProtocol,fromPort:y?-1:e.fromPort,toPort:y?-1:e.toPort,cidrIp:e.cidrIp};await c.mutateAsync(t),p(),r(!1)},t[3]=a,t[4]=c,t[5]=r,t[6]=y,t[7]=p,t[8]=x):x=t[8];let S=x,C=i===`ingress`?`Inbound`:`Outbound`,w;t[9]===C?w=t[10]:(w=(0,k.jsx)(de,{children:(0,k.jsxs)(ue,{children:[`Add `,C,` Rule`]})}),t[9]=C,t[10]=w);let T;t[11]===c.error?T=t[12]:(T=c.error&&(0,k.jsx)(le,{error:c.error,msg:`Failed to add rule`}),t[11]=c.error,t[12]=T);let E;t[13]!==d||t[14]!==S?(E=d(S),t[13]=d,t[14]=S,t[15]=E):E=t[15];let D;t[16]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,k.jsx)(v,{children:(0,k.jsx)(`label`,{htmlFor:`ipProtocol`,children:`Protocol`})}),t[16]=D):D=t[16];let O;t[17]===u?O=t[18]:(O=(0,k.jsx)(re,{control:u,name:`ipProtocol`,render:ve}),t[17]=u,t[18]=O);let A;t[19]===m.ipProtocol?A=t[20]:(A=(0,k.jsx)(b,{errors:[m.ipProtocol]}),t[19]=m.ipProtocol,t[20]=A);let j;t[21]!==O||t[22]!==A?(j=(0,k.jsxs)(_,{children:[D,O,A]}),t[21]=O,t[22]=A,t[23]=j):j=t[23];let M;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,k.jsx)(v,{children:(0,k.jsx)(`label`,{htmlFor:`fromPort`,children:`From Port`})}),t[24]=M):M=t[24];let N=!!m.fromPort,P;t[25]===f?P=t[26]:(P=f(`fromPort`,{valueAsNumber:!0}),t[25]=f,t[26]=P);let F;t[27]!==y||t[28]!==N||t[29]!==P?(F=(0,k.jsx)(ce,{"aria-invalid":N,disabled:y,id:`fromPort`,type:`number`,...P}),t[27]=y,t[28]=N,t[29]=P,t[30]=F):F=t[30];let I;t[31]===m.fromPort?I=t[32]:(I=(0,k.jsx)(b,{errors:[m.fromPort]}),t[31]=m.fromPort,t[32]=I);let L;t[33]!==F||t[34]!==I?(L=(0,k.jsxs)(_,{children:[M,F,I]}),t[33]=F,t[34]=I,t[35]=L):L=t[35];let ye;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(ye=(0,k.jsx)(v,{children:(0,k.jsx)(`label`,{htmlFor:`toPort`,children:`To Port`})}),t[36]=ye):ye=t[36];let be=!!m.toPort,R;t[37]===f?R=t[38]:(R=f(`toPort`,{valueAsNumber:!0}),t[37]=f,t[38]=R);let z;t[39]!==y||t[40]!==be||t[41]!==R?(z=(0,k.jsx)(ce,{"aria-invalid":be,disabled:y,id:`toPort`,type:`number`,...R}),t[39]=y,t[40]=be,t[41]=R,t[42]=z):z=t[42];let B;t[43]===m.toPort?B=t[44]:(B=(0,k.jsx)(b,{errors:[m.toPort]}),t[43]=m.toPort,t[44]=B);let V;t[45]!==z||t[46]!==B?(V=(0,k.jsxs)(_,{children:[ye,z,B]}),t[45]=z,t[46]=B,t[47]=V):V=t[47];let H;t[48]!==L||t[49]!==V?(H=(0,k.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[L,V]}),t[48]=L,t[49]=V,t[50]=H):H=t[50];let xe=i===`ingress`?`Source`:`Destination`,U;t[51]===xe?U=t[52]:(U=(0,k.jsx)(v,{children:(0,k.jsxs)(`label`,{htmlFor:`cidrIp`,children:[xe,` CIDR`]})}),t[51]=xe,t[52]=U);let Se=!!m.cidrIp,W;t[53]===f?W=t[54]:(W=f(`cidrIp`),t[53]=f,t[54]=W);let G;t[55]!==Se||t[56]!==W?(G=(0,k.jsx)(ce,{"aria-invalid":Se,id:`cidrIp`,placeholder:`0.0.0.0/0`,...W}),t[55]=Se,t[56]=W,t[57]=G):G=t[57];let K;t[58]===m.cidrIp?K=t[59]:(K=(0,k.jsx)(b,{errors:[m.cidrIp]}),t[58]=m.cidrIp,t[59]=K);let q;t[60]!==U||t[61]!==G||t[62]!==K?(q=(0,k.jsxs)(_,{children:[U,G,K]}),t[60]=U,t[61]=G,t[62]=K,t[63]=q):q=t[63];let J;t[64]!==j||t[65]!==H||t[66]!==q||t[67]!==E?(J=(0,k.jsxs)(`form`,{className:`space-y-4`,id:`add-rule-form`,onSubmit:E,children:[j,H,q]}),t[64]=j,t[65]=H,t[66]=q,t[67]=E,t[68]=J):J=t[68];let Y;t[69]!==c||t[70]!==p?(Y=(0,k.jsx)(oe,{onClick:()=>{p(),c.reset()},children:`Cancel`}),t[69]=c,t[70]=p,t[71]=Y):Y=t[71];let Ce=c.isPending?`Adding…`:`Add Rule`,X;t[72]!==c.isPending||t[73]!==Ce?(X=(0,k.jsx)(ae,{disabled:c.isPending,form:`add-rule-form`,type:`submit`,children:Ce}),t[72]=c.isPending,t[73]=Ce,t[74]=X):X=t[74];let Z;t[75]!==Y||t[76]!==X?(Z=(0,k.jsxs)(ne,{children:[Y,X]}),t[75]=Y,t[76]=X,t[77]=Z):Z=t[77];let Q;t[78]!==J||t[79]!==Z||t[80]!==w||t[81]!==T?(Q=(0,k.jsxs)(se,{children:[w,T,J,Z]}),t[78]=J,t[79]=Z,t[80]=w,t[81]=T,t[82]=Q):Q=t[82];let $;return t[83]!==r||t[84]!==n||t[85]!==Q?($=(0,k.jsx)(h,{onOpenChange:r,open:n,children:Q}),t[83]=r,t[84]=n,t[85]=Q,t[86]=$):$=t[86],$}function ve(e){let{field:t}=e;return(0,k.jsxs)(u,{onValueChange:e=>t.onChange(e),value:t.value,children:[(0,k.jsx)(l,{className:`w-full`,id:`ipProtocol`,children:(0,k.jsx)(o,{})}),(0,k.jsxs)(c,{children:[(0,k.jsx)(s,{value:`tcp`,children:`TCP`}),(0,k.jsx)(s,{value:`udp`,children:`UDP`}),(0,k.jsx)(s,{value:`icmp`,children:`ICMP`}),(0,k.jsx)(s,{value:`-1`,children:`All traffic (-1)`})]})]})}function N(e){return[...(e.IpRanges??[]).map(e=>({kind:`cidr`,value:e.CidrIp??``})),...(e.UserIdGroupPairs??[]).map(e=>({kind:`group`,value:e.GroupId??``}))]}function P({rule:e,source:t,groupId:n,direction:r}){let i=x(),a=y(),o=r===`ingress`?i:a,s=async()=>{try{await o.mutateAsync({groupId:n,ipProtocol:e.IpProtocol??`-1`,fromPort:e.FromPort??-1,toPort:e.ToPort??-1,...t.kind===`group`?{sourceGroupId:t.value}:{cidrIp:t.value}})}catch{}},c=t.kind===`group`&&t.value===n?`${t.value} (this security group)`:t.value;return(0,k.jsxs)(`div`,{className:`space-y-0`,children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b px-4 py-3 last:border-b-0`,children:[(0,k.jsxs)(`div`,{className:`grid flex-1 grid-cols-3 gap-4 text-sm`,children:[(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`span`,{className:`text-muted-foreground`,children:`Protocol: `}),A(e.IpProtocol)]}),(0,k.jsxs)(`div`,{children:[(0,k.jsx)(`span`,{className:`text-muted-foreground`,children:`Port Range: `}),j(e.FromPort,e.ToPort,e.IpProtocol)]}),(0,k.jsxs)(`div`,{children:[(0,k.jsxs)(`span`,{className:`text-muted-foreground`,children:[r===`ingress`?`Source`:`Destination`,`:`,` `]}),c]})]}),(0,k.jsx)(p,{disabled:o.isPending,onClick:s,size:`icon-xs`,variant:`ghost`,children:(0,k.jsx)(w,{className:`size-3`})})]}),o.error&&(0,k.jsx)(`div`,{className:`px-4 pb-2`,children:(0,k.jsx)(le,{error:o.error,msg:`Failed to remove rule`})})]})}function F(){let{id:e}=S.useParams(),t=a(),{data:n}=m(ee(e)),r=n.SecurityGroups?.[0],o=fe(),[s,c]=(0,O.useState)(!1),[l,u]=(0,O.useState)(!1),[te,ne]=(0,O.useState)(!1),re=async()=>{try{await o.mutateAsync(e),t({to:`/ec2/describe-security-groups`})}finally{c(!1)}};if(!r?.GroupId)return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(g,{to:`/ec2/describe-security-groups`,children:`Back to Security Groups`}),(0,k.jsx)(`p`,{className:`text-muted-foreground`,children:`Security group not found.`})]});let ie=r.IpPermissions??[],h=r.IpPermissionsEgress??[];return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(g,{to:`/ec2/describe-security-groups`,children:`Back to Security Groups`}),o.error&&(0,k.jsx)(le,{error:o.error,msg:`Failed to delete security group`}),(0,k.jsxs)(`div`,{className:`space-y-6`,children:[(0,k.jsx)(C,{actions:(0,k.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,k.jsxs)(p,{onClick:()=>c(!0),size:`sm`,variant:`destructive`,children:[(0,k.jsx)(f,{className:`size-4`}),`Delete`]})}),subtitle:`Security Group Details`,title:r.GroupName?`${r.GroupId} (${r.GroupName})`:r.GroupId}),(0,k.jsxs)(E,{children:[(0,k.jsx)(E.Header,{children:`Security Group Information`}),(0,k.jsxs)(E.Content,{children:[(0,k.jsx)(D,{label:`Group ID`,value:r.GroupId}),(0,k.jsx)(D,{label:`Group Name`,value:r.GroupName}),(0,k.jsx)(D,{label:`Description`,value:r.Description}),(0,k.jsx)(D,{label:`VPC ID`,value:r.VpcId?(0,k.jsx)(i,{className:`text-primary hover:underline`,params:{id:r.VpcId},to:`/ec2/describe-vpcs/$id`,children:r.VpcId}):`—`}),(0,k.jsx)(D,{label:`Owner ID`,value:r.OwnerId})]})]}),(0,k.jsxs)(E,{children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b p-4`,children:[(0,k.jsxs)(`h2`,{className:`font-semibold`,children:[`Inbound Rules (`,ie.length,`)`]}),(0,k.jsxs)(p,{onClick:()=>u(!0),size:`sm`,variant:`outline`,children:[(0,k.jsx)(d,{className:`size-4`}),`Add Rule`]})]}),ie.length>0?(0,k.jsx)(`div`,{children:ie.flatMap(e=>N(e).map(t=>(0,k.jsx)(P,{direction:`ingress`,groupId:r.GroupId??``,rule:e,source:t},`${e.IpProtocol}-${e.FromPort}-${e.ToPort}-${t.kind}-${t.value}`)))}):(0,k.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:`No inbound rules.`})]}),(0,k.jsxs)(E,{children:[(0,k.jsxs)(`div`,{className:`flex items-center justify-between border-b p-4`,children:[(0,k.jsxs)(`h2`,{className:`font-semibold`,children:[`Outbound Rules (`,h.length,`)`]}),(0,k.jsxs)(p,{onClick:()=>ne(!0),size:`sm`,variant:`outline`,children:[(0,k.jsx)(d,{className:`size-4`}),`Add Rule`]})]}),h.length>0?(0,k.jsx)(`div`,{children:h.flatMap(e=>N(e).map(t=>(0,k.jsx)(P,{direction:`egress`,groupId:r.GroupId??``,rule:e,source:t},`${e.IpProtocol}-${e.FromPort}-${e.ToPort}-${t.kind}-${t.value}`)))}):(0,k.jsx)(`p`,{className:`p-4 text-sm text-muted-foreground`,children:`No outbound rules.`})]})]}),(0,k.jsx)(T,{description:`Are you sure you want to delete the security group "${r.GroupId}"? This action cannot be undone.`,isPending:o.isPending,onConfirm:re,onOpenChange:c,open:s,title:`Delete Security Group`}),(0,k.jsx)(M,{direction:`ingress`,groupId:r.GroupId,onOpenChange:u,open:l}),(0,k.jsx)(M,{direction:`egress`,groupId:r.GroupId,onOpenChange:ne,open:te})]})}export{F as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id12.js b/spinifex/services/spinifexui/frontend/dist/assets/_id12.js index fd4ffe6ec..c11e6f582 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id12.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id12.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{Xt as ee}from"./auth.js";import{t as a}from"./copy.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{T as c,b as te}from"./ec2.js";import{Gn as ne,Ln as l,Pt as re,Xn as u,Xt as d,_n as f,dn as p,lt as m,mn as h,rn as g,sn as _,v as ie}from"./index.js";import{a as v,i as y,l as b,n as x,o as S,r as C,s as w,t as T}from"./alert-dialog.js";import{t as E}from"./delete-confirmation-dialog.js";import{n as D,t as O}from"./detail-row.js";import{t as k}from"./state-badge.js";import{t as A}from"./textarea.js";var j=t(n()),M=e();function N(){let{id:e}=ie.useParams(),t=i(),{data:n}=u(c(e)),{data:N}=u(te),P=n.Snapshots?.[0],F=re(),I=m(),L=d(),[R,z]=(0,j.useState)(!1),[B,V]=(0,j.useState)(!1),[H,U]=(0,j.useState)(``),[W,G]=(0,j.useState)(!1),[K,q]=(0,j.useState)(``),[J,Y]=(0,j.useState)(``),[X,Z]=(0,j.useState)(null),ae=N.Regions?.[0]?.RegionName??`ap-southeast-2`,Q=P?.State===`completed`,oe=P?.State===`completed`;function se(e){e||(q(``),Y(``),Z(null)),G(e)}async function ce(){try{let t=await L.mutateAsync({snapshotId:e,name:K,description:J||void 0});Z(t.ImageId??null),q(``),Y(``)}catch{}}let le=async()=>{try{await F.mutateAsync(e),t({to:`/ec2/describe-snapshots`})}finally{z(!1)}},$=async()=>{try{await I.mutateAsync({sourceSnapshotId:e,sourceRegion:ae,description:H||void 0}),V(!1),U(``)}catch{}};if(!P?.SnapshotId)return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(f,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),(0,M.jsx)(`p`,{className:`text-muted-foreground`,children:`Snapshot not found.`})]});let ue=ee(P.StartTime);return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(f,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),F.error&&(0,M.jsx)(h,{error:F.error,msg:`Failed to delete snapshot`}),I.error&&(0,M.jsx)(h,{error:I.error,msg:`Failed to copy snapshot`}),L.error&&(0,M.jsx)(h,{error:L.error,msg:`Failed to register image`}),(0,M.jsxs)(`div`,{className:`space-y-6`,children:[(0,M.jsx)(p,{actions:(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsxs)(s,{disabled:!Q,onClick:()=>z(!0),size:`sm`,variant:`destructive`,children:[(0,M.jsx)(o,{className:`size-4`}),`Delete`]}),(0,M.jsxs)(s,{disabled:!Q,onClick:()=>V(!0),size:`sm`,variant:`outline`,children:[(0,M.jsx)(a,{className:`size-4`}),`Copy Snapshot`]}),(0,M.jsxs)(s,{disabled:!oe,onClick:()=>G(!0),size:`sm`,variant:`outline`,children:[(0,M.jsx)(ne,{className:`size-4`}),`Register as AMI`]}),(0,M.jsx)(k,{state:P.State})]}),subtitle:`Snapshot Details`,title:P.SnapshotId}),(0,M.jsxs)(D,{children:[(0,M.jsx)(D.Header,{children:`Snapshot Information`}),(0,M.jsxs)(D.Content,{children:[(0,M.jsx)(O,{label:`Snapshot ID`,value:P.SnapshotId}),(0,M.jsx)(O,{label:`Volume ID`,value:P.VolumeId?(0,M.jsx)(r,{className:`text-primary hover:underline`,params:{id:P.VolumeId},to:`/ec2/describe-volumes/$id`,children:P.VolumeId}):void 0}),(0,M.jsx)(O,{label:`Volume Size`,value:`${P.VolumeSize} GiB`}),(0,M.jsx)(O,{label:`State`,value:P.State}),(0,M.jsx)(O,{label:`Description`,value:P.Description}),(0,M.jsx)(O,{label:`Progress`,value:P.Progress}),(0,M.jsx)(O,{label:`Start Time`,value:ue}),(0,M.jsx)(O,{label:`Owner ID`,value:P.OwnerId}),(0,M.jsx)(O,{label:`Encrypted`,value:P.Encrypted?`Yes`:`No`})]})]})]}),(0,M.jsx)(E,{description:`Are you sure you want to delete the snapshot "${P.SnapshotId}"? This action cannot be undone.`,isPending:F.isPending,onConfirm:le,onOpenChange:z,open:R,title:`Delete Snapshot`}),(0,M.jsx)(T,{onOpenChange:V,open:B,children:(0,M.jsxs)(y,{children:[(0,M.jsxs)(w,{children:[(0,M.jsx)(b,{children:`Copy Snapshot`}),(0,M.jsx)(v,{children:`Create a copy of this snapshot in the current region.`})]}),(0,M.jsxs)(g,{children:[(0,M.jsx)(_,{children:(0,M.jsx)(`label`,{htmlFor:`copyDescription`,children:`Description (optional)`})}),(0,M.jsx)(l,{id:`copyDescription`,onChange:e=>U(e.target.value),placeholder:`Description for the snapshot copy`,value:H})]}),(0,M.jsxs)(S,{children:[(0,M.jsx)(C,{children:`Cancel`}),(0,M.jsx)(x,{disabled:I.isPending,onClick:$,children:I.isPending?`Copying…`:`Copy Snapshot`})]})]})}),(0,M.jsx)(T,{onOpenChange:se,open:W,children:(0,M.jsxs)(y,{children:[(0,M.jsxs)(w,{children:[(0,M.jsx)(b,{children:X?`Image Registered`:`Register as AMI`}),(0,M.jsx)(v,{children:X?(0,M.jsxs)(M.Fragment,{children:[`AMI`,` `,(0,M.jsx)(r,{className:`text-primary hover:underline`,params:{id:X},to:`/ec2/describe-images/$id`,children:X}),` `,`was registered successfully.`]}):`Create an AMI from snapshot "${e}".`})]}),!X&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(g,{children:[(0,M.jsx)(_,{children:(0,M.jsx)(`label`,{htmlFor:`registerName`,children:`Name`})}),(0,M.jsx)(l,{id:`registerName`,onChange:e=>q(e.target.value),placeholder:`my-image`,value:K})]}),(0,M.jsxs)(g,{children:[(0,M.jsx)(_,{children:(0,M.jsx)(`label`,{htmlFor:`registerDescription`,children:`Description (optional)`})}),(0,M.jsx)(A,{id:`registerDescription`,onChange:e=>Y(e.target.value),placeholder:`Optional description`,rows:2,value:J})]})]}),(0,M.jsxs)(S,{children:[(0,M.jsx)(C,{children:X?`Close`:`Cancel`}),!X&&(0,M.jsx)(x,{disabled:L.isPending||!K.trim(),onClick:ce,children:L.isPending?`Registering…`:`Register AMI`})]})]})})]})}export{N as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as ee}from"./useNavigate.js";import{Xt as i}from"./auth.js";import{t as a}from"./copy.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{T as te,b as ne}from"./ec2.js";import{$n as c,B as l,F as u,Ht as re,I as d,L as f,R as p,Rn as m,Sn as h,Tn as g,U as _,V as v,dn as y,hn as b,in as ie,qn as x,v as S,vt as C,yn as w,z as T}from"./index.js";import{t as E}from"./delete-confirmation-dialog.js";import{n as D,t as O}from"./detail-row.js";import{t as k}from"./state-badge.js";import{t as A}from"./textarea.js";var j=t(n()),M=e();function N(){let{id:e}=S.useParams(),t=ee(),{data:n}=c(te(e)),{data:N}=c(ne),P=n.Snapshots?.[0],F=re(),I=C(),L=ie(),[R,z]=(0,j.useState)(!1),[B,V]=(0,j.useState)(!1),[H,U]=(0,j.useState)(``),[W,G]=(0,j.useState)(!1),[K,q]=(0,j.useState)(``),[J,Y]=(0,j.useState)(``),[X,Z]=(0,j.useState)(null),ae=N.Regions?.[0]?.RegionName??`ap-southeast-2`,Q=P?.State===`completed`,oe=P?.State===`completed`;function se(e){e||(q(``),Y(``),Z(null)),G(e)}async function ce(){try{let t=await L.mutateAsync({snapshotId:e,name:K,description:J||void 0});Z(t.ImageId??null),q(``),Y(``)}catch{}}let le=async()=>{try{await F.mutateAsync(e),t({to:`/ec2/describe-snapshots`})}finally{z(!1)}},$=async()=>{try{await I.mutateAsync({sourceSnapshotId:e,sourceRegion:ae,description:H||void 0}),V(!1),U(``)}catch{}};if(!P?.SnapshotId)return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(g,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),(0,M.jsx)(`p`,{className:`text-muted-foreground`,children:`Snapshot not found.`})]});let ue=i(P.StartTime);return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(g,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),F.error&&(0,M.jsx)(h,{error:F.error,msg:`Failed to delete snapshot`}),I.error&&(0,M.jsx)(h,{error:I.error,msg:`Failed to copy snapshot`}),L.error&&(0,M.jsx)(h,{error:L.error,msg:`Failed to register image`}),(0,M.jsxs)(`div`,{className:`space-y-6`,children:[(0,M.jsx)(w,{actions:(0,M.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,M.jsxs)(s,{disabled:!Q,onClick:()=>z(!0),size:`sm`,variant:`destructive`,children:[(0,M.jsx)(o,{className:`size-4`}),`Delete`]}),(0,M.jsxs)(s,{disabled:!Q,onClick:()=>V(!0),size:`sm`,variant:`outline`,children:[(0,M.jsx)(a,{className:`size-4`}),`Copy Snapshot`]}),(0,M.jsxs)(s,{disabled:!oe,onClick:()=>G(!0),size:`sm`,variant:`outline`,children:[(0,M.jsx)(x,{className:`size-4`}),`Register as AMI`]}),(0,M.jsx)(k,{state:P.State})]}),subtitle:`Snapshot Details`,title:P.SnapshotId}),(0,M.jsxs)(D,{children:[(0,M.jsx)(D.Header,{children:`Snapshot Information`}),(0,M.jsxs)(D.Content,{children:[(0,M.jsx)(O,{label:`Snapshot ID`,value:P.SnapshotId}),(0,M.jsx)(O,{label:`Volume ID`,value:P.VolumeId?(0,M.jsx)(r,{className:`text-primary hover:underline`,params:{id:P.VolumeId},to:`/ec2/describe-volumes/$id`,children:P.VolumeId}):void 0}),(0,M.jsx)(O,{label:`Volume Size`,value:`${P.VolumeSize} GiB`}),(0,M.jsx)(O,{label:`State`,value:P.State}),(0,M.jsx)(O,{label:`Description`,value:P.Description}),(0,M.jsx)(O,{label:`Progress`,value:P.Progress}),(0,M.jsx)(O,{label:`Start Time`,value:ue}),(0,M.jsx)(O,{label:`Owner ID`,value:P.OwnerId}),(0,M.jsx)(O,{label:`Encrypted`,value:P.Encrypted?`Yes`:`No`})]})]})]}),(0,M.jsx)(E,{description:`Are you sure you want to delete the snapshot "${P.SnapshotId}"? This action cannot be undone.`,isPending:F.isPending,onConfirm:le,onOpenChange:z,open:R,title:`Delete Snapshot`}),(0,M.jsx)(u,{onOpenChange:V,open:B,children:(0,M.jsxs)(p,{children:[(0,M.jsxs)(v,{children:[(0,M.jsx)(_,{children:`Copy Snapshot`}),(0,M.jsx)(T,{children:`Create a copy of this snapshot in the current region.`})]}),(0,M.jsxs)(y,{children:[(0,M.jsx)(b,{children:(0,M.jsx)(`label`,{htmlFor:`copyDescription`,children:`Description (optional)`})}),(0,M.jsx)(m,{id:`copyDescription`,onChange:e=>U(e.target.value),placeholder:`Description for the snapshot copy`,value:H})]}),(0,M.jsxs)(l,{children:[(0,M.jsx)(f,{children:`Cancel`}),(0,M.jsx)(d,{disabled:I.isPending,onClick:$,children:I.isPending?`Copying…`:`Copy Snapshot`})]})]})}),(0,M.jsx)(u,{onOpenChange:se,open:W,children:(0,M.jsxs)(p,{children:[(0,M.jsxs)(v,{children:[(0,M.jsx)(_,{children:X?`Image Registered`:`Register as AMI`}),(0,M.jsx)(T,{children:X?(0,M.jsxs)(M.Fragment,{children:[`AMI`,` `,(0,M.jsx)(r,{className:`text-primary hover:underline`,params:{id:X},to:`/ec2/describe-images/$id`,children:X}),` `,`was registered successfully.`]}):`Create an AMI from snapshot "${e}".`})]}),!X&&(0,M.jsxs)(M.Fragment,{children:[(0,M.jsxs)(y,{children:[(0,M.jsx)(b,{children:(0,M.jsx)(`label`,{htmlFor:`registerName`,children:`Name`})}),(0,M.jsx)(m,{id:`registerName`,onChange:e=>q(e.target.value),placeholder:`my-image`,value:K})]}),(0,M.jsxs)(y,{children:[(0,M.jsx)(b,{children:(0,M.jsx)(`label`,{htmlFor:`registerDescription`,children:`Description (optional)`})}),(0,M.jsx)(A,{id:`registerDescription`,onChange:e=>Y(e.target.value),placeholder:`Optional description`,rows:2,value:J})]})]}),(0,M.jsxs)(l,{children:[(0,M.jsx)(f,{children:X?`Close`:`Cancel`}),!X&&(0,M.jsx)(d,{disabled:L.isPending||!K.trim(),onClick:ce,children:L.isPending?`Registering…`:`Register AMI`})]})]})})]})}export{N as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id13.js b/spinifex/services/spinifexui/frontend/dist/assets/_id13.js index 3ad06e416..5849b0f18 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id13.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id13.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{D as c}from"./ec2.js";import{Ft as l,Xn as u,_ as d,_n as f,dn as p,mn as m}from"./index.js";import{t as h}from"./delete-confirmation-dialog.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./state-badge.js";var y=t(n()),b=e();function x(){let{id:e}=d.useParams(),t=i(),{data:n}=u(c(e)),x=n.Subnets?.[0],S=l(),[C,w]=(0,y.useState)(!1),T=async()=>{try{await S.mutateAsync(e),t({to:`/ec2/describe-subnets`})}finally{w(!1)}};if(!x?.SubnetId)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`Subnet not found.`})]});let E=a(x.Tags);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),S.error&&(0,b.jsx)(m,{error:S.error,msg:`Failed to delete subnet`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(p,{actions:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(s,{onClick:()=>w(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(o,{className:`size-4`}),`Delete`]}),(0,b.jsx)(v,{state:x.State})]}),subtitle:`Subnet Details`,title:E?`${x.SubnetId} (${E})`:x.SubnetId}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Subnet Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Subnet ID`,value:x.SubnetId}),(0,b.jsx)(_,{label:`VPC ID`,value:x.VpcId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:x.VpcId},to:`/ec2/describe-vpcs/$id`,children:x.VpcId}):`—`}),(0,b.jsx)(_,{label:`State`,value:x.State}),(0,b.jsx)(_,{label:`CIDR Block`,value:x.CidrBlock}),(0,b.jsx)(_,{label:`Availability Zone`,value:x.AvailabilityZone}),(0,b.jsx)(_,{label:`Available IP Count`,value:x.AvailableIpAddressCount?.toString()}),(0,b.jsx)(_,{label:`Map Public IP on Launch`,value:x.MapPublicIpOnLaunch?`Yes`:`No`}),(0,b.jsx)(_,{label:`Default for AZ`,value:x.DefaultForAz?`Yes`:`No`})]})]})]}),(0,b.jsx)(h,{description:`Are you sure you want to delete the subnet "${x.SubnetId}"? This action cannot be undone.`,isPending:S.isPending,onConfirm:T,onOpenChange:w,open:C,title:`Delete Subnet`})]})}export{x as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{D as c}from"./ec2.js";import{$n as l,Sn as u,Tn as d,Ut as f,_ as p,yn as m}from"./index.js";import{t as h}from"./delete-confirmation-dialog.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./state-badge.js";var y=t(n()),b=e();function x(){let{id:e}=p.useParams(),t=i(),{data:n}=l(c(e)),x=n.Subnets?.[0],S=f(),[C,w]=(0,y.useState)(!1),T=async()=>{try{await S.mutateAsync(e),t({to:`/ec2/describe-subnets`})}finally{w(!1)}};if(!x?.SubnetId)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`Subnet not found.`})]});let E=a(x.Tags);return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),S.error&&(0,b.jsx)(u,{error:S.error,msg:`Failed to delete subnet`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(m,{actions:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(s,{onClick:()=>w(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(o,{className:`size-4`}),`Delete`]}),(0,b.jsx)(v,{state:x.State})]}),subtitle:`Subnet Details`,title:E?`${x.SubnetId} (${E})`:x.SubnetId}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Subnet Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Subnet ID`,value:x.SubnetId}),(0,b.jsx)(_,{label:`VPC ID`,value:x.VpcId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:x.VpcId},to:`/ec2/describe-vpcs/$id`,children:x.VpcId}):`—`}),(0,b.jsx)(_,{label:`State`,value:x.State}),(0,b.jsx)(_,{label:`CIDR Block`,value:x.CidrBlock}),(0,b.jsx)(_,{label:`Availability Zone`,value:x.AvailabilityZone}),(0,b.jsx)(_,{label:`Available IP Count`,value:x.AvailableIpAddressCount?.toString()}),(0,b.jsx)(_,{label:`Map Public IP on Launch`,value:x.MapPublicIpOnLaunch?`Yes`:`No`}),(0,b.jsx)(_,{label:`Default for AZ`,value:x.DefaultForAz?`Yes`:`No`})]})]})]}),(0,b.jsx)(h,{description:`Are you sure you want to delete the subnet "${x.SubnetId}"? This action cannot be undone.`,isPending:S.isPending,onConfirm:T,onOpenChange:w,open:C,title:`Delete Subnet`})]})}export{x as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id14.js b/spinifex/services/spinifexui/frontend/dist/assets/_id14.js index b2849a5ae..5111a2ebc 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id14.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id14.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./useNavigate.js";import{$t as a,qt as o}from"./auth.js";import{t as s}from"./trash-2.js";import{t as c}from"./button.js";import{l}from"./ec2.js";import{_ as u,c as d,l as f,m as p,p as m}from"./elbv2.js";import{c as h,d as g,l as _,s as v}from"./elbv22.js";import{Ln as y,Xn as b,Zn as x,_n as S,dn as C,g as w,mn as T}from"./index.js";import{a as E,i as D,l as O,n as k,o as A,r as j,s as M,t as N}from"./alert-dialog.js";import{t as P}from"./delete-confirmation-dialog.js";import{n as F,t as I}from"./detail-row.js";import{i as L,n as R,t as z}from"./tags-editor.js";import{i as B,n as V,r as H,t as U}from"./tabs.js";var W=r(),G=t(n(),1),K=e();function q(e){let t=e.trim();if(t===``)return;let n=Number(t);if(!(!Number.isInteger(n)||n<1||n>65535))return n}function J(e){let t=(0,W.c)(33),{open:n,onOpenChange:r,instances:i,defaultPort:o,isPending:s,onConfirm:c}=e,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l={},t[0]=l):l=t[0];let[u,d]=(0,G.useState)(l),[f,p]=(0,G.useState)(),[m,h]=(0,G.useState)(n);n!==m&&(h(n),n||(d({}),p(void 0)));let g;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>{d(t=>{let n=t[e];return n?.checked?{...t,[e]:{...n,checked:!1}}:{...t,[e]:{checked:!0,port:n?.port??``}}})},t[1]=g):g=t[1];let _=g,v;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(v=(e,t)=>{d(n=>({...n,[e]:{checked:n[e]?.checked??!0,port:t}}))},t[2]=v):v=t[2];let b=v,x;t[3]!==c||t[4]!==u?(x=()=>{let e=Object.entries(u).filter(Y);if(e.length===0){p(`Select at least one instance.`);return}let t=[];for(let[n,r]of e){if(r.port.trim()===``){t.push({id:n});continue}let e=q(r.port);if(e===void 0){p(`Port for ${n} must be an integer between 1 and 65535.`);return}t.push({id:n,port:e})}p(void 0),c(t)},t[3]=c,t[4]=u,t[5]=x):x=t[5];let S=x,C;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,K.jsx)(O,{children:`Register targets`}),t[6]=C):C=t[6];let w;t[7]===o?w=t[8]:(w=(0,K.jsxs)(M,{children:[C,(0,K.jsxs)(E,{children:[`Select instances to register. Leave port blank to use the target group port (`,o,`).`]})]}),t[7]=o,t[8]=w);let T;t[9]!==o||t[10]!==i||t[11]!==u?(T=i.length===0?(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No instances available in this VPC.`}):(0,K.jsx)(`div`,{className:`max-h-72 space-y-1 overflow-y-auto`,children:i.map(e=>{let t=e.InstanceId??``,n=u[t],r=n?.checked??!1,i=a(e.Tags);return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 rounded px-1 py-1 text-xs hover:bg-accent`,children:[(0,K.jsx)(`input`,{"aria-label":`Register target ${t}`,checked:r,id:`register-target-${t}`,onChange:()=>_(t),type:`checkbox`}),(0,K.jsxs)(`label`,{className:`flex flex-1 items-center gap-2`,htmlFor:`register-target-${t}`,children:[(0,K.jsx)(`span`,{className:`font-mono`,children:t}),i&&(0,K.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,i,`)`]}),(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:e.State?.Name??``})]}),r&&(0,K.jsx)(y,{"aria-label":`Port override for ${t}`,className:`w-24`,onChange:e=>b(t,e.target.value),placeholder:String(o),value:n?.port??``})]},t)})}),t[9]=o,t[10]=i,t[11]=u,t[12]=T):T=t[12];let P;t[13]===f?P=t[14]:(P=f&&(0,K.jsx)(`p`,{className:`text-xs text-destructive`,role:`alert`,children:f}),t[13]=f,t[14]=P);let F;t[15]===s?F=t[16]:(F=(0,K.jsx)(j,{disabled:s,children:`Cancel`}),t[15]=s,t[16]=F);let I=s?`Registering…`:`Register`,L;t[17]!==S||t[18]!==s||t[19]!==I?(L=(0,K.jsx)(k,{disabled:s,onClick:S,children:I}),t[17]=S,t[18]=s,t[19]=I,t[20]=L):L=t[20];let R;t[21]!==L||t[22]!==F?(R=(0,K.jsxs)(A,{children:[F,L]}),t[21]=L,t[22]=F,t[23]=R):R=t[23];let z;t[24]!==R||t[25]!==w||t[26]!==T||t[27]!==P?(z=(0,K.jsxs)(D,{className:`sm:max-w-lg`,children:[w,T,P,R]}),t[24]=R,t[25]=w,t[26]=T,t[27]=P,t[28]=z):z=t[28];let B;return t[29]!==r||t[30]!==n||t[31]!==z?(B=(0,K.jsx)(N,{onOpenChange:r,open:n,children:z}),t[29]=r,t[30]=n,t[31]=z,t[32]=B):B=t[32],B}function Y(e){let[,t]=e;return t.checked&&t!==void 0}var X=5e3,Z=new Set([`healthy`]),Q=new Set([`unhealthy`,`unavailable`]),$=new Set([`initial`,`draining`]);function ee(e){return e&&Z.has(e)?`bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-100`:e&&Q.has(e)?`bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-100`:e&&$.has(e)?`bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100`:`bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-100`}function te(e){return`${e.Id??``}:${e.Port??``}`}function ne({targetGroupArn:e,vpcId:t,defaultPort:n,isActive:r}){let{data:i}=b(l),{data:a,isLoading:u,error:d}=x({...g(e),refetchInterval:r?X:!1,refetchIntervalInBackground:!1}),m=p(),h=f(),[_,v]=(0,G.useState)(!1),[y,S]=(0,G.useState)(),C=(i.Reservations?.flatMap(e=>e.Instances??[])??[]).filter(e=>e.VpcId===t&&e.State?.Name!==`terminated`),w=a?.TargetHealthDescriptions??[];return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[m.error&&(0,K.jsx)(T,{error:m.error,msg:`Failed to register targets`}),h.error&&(0,K.jsx)(T,{error:h.error,msg:`Failed to deregister target`}),d&&(0,K.jsx)(T,{error:d,msg:`Failed to load target health`}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:u?`Loading target health…`:`${w.length} target${w.length===1?``:`s`}`}),(0,K.jsx)(c,{onClick:()=>v(!0),size:`sm`,children:`Register targets`})]}),w.length===0?(0,K.jsx)(`p`,{className:`text-muted-foreground`,children:`No targets registered.`}):(0,K.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,K.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,K.jsx)(`thead`,{children:(0,K.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Target`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Port`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`AZ`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Health`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Reason`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Description`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,K.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,K.jsx)(`tbody`,{children:w.map(e=>{let t=e.Target??{Id:``},n=e.TargetHealth?.State;return(0,K.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,K.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:t.Id??``}),(0,K.jsx)(`td`,{className:`px-4 py-2`,children:t.Port??``}),(0,K.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:t.AvailabilityZone??``}),(0,K.jsx)(`td`,{className:`px-4 py-2`,children:(0,K.jsx)(`span`,{className:o(`rounded-full px-2 py-0.5 text-xs`,ee(n)),children:n??`unknown`})}),(0,K.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:e.TargetHealth?.Reason??``}),(0,K.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:e.TargetHealth?.Description??``}),(0,K.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,K.jsx)(c,{"aria-label":`Deregister ${t.Id}`,onClick:()=>S(t),size:`sm`,variant:`ghost`,children:(0,K.jsx)(s,{className:`size-4`})})})]},te(t))})})]})}),(0,K.jsx)(J,{defaultPort:n,instances:C,isPending:m.isPending,onConfirm:async t=>{try{await m.mutateAsync({targetGroupArn:e,targets:t}),v(!1)}catch{}},onOpenChange:v,open:_}),(0,K.jsx)(P,{description:y?`Deregister ${y.Id}${y.Port?`:${y.Port}`:``} from this target group?`:``,isPending:h.isPending,onConfirm:async()=>{if(y?.Id)try{await h.mutateAsync({targetGroupArn:e,targets:[{id:y.Id,port:y.Port}]})}finally{S(void 0)}},onOpenChange:e=>!e&&S(void 0),open:y!==void 0,title:`Deregister target`})]})}function re({arn:e}){let t=i(),{data:n}=b(_(e)),{data:r}=b(h(e)),{data:a}=b(v([e])),o=d(),l=m(),f=u(),[p,g]=(0,G.useState)(!1),[y,x]=(0,G.useState)(`overview`),w=n.TargetGroups?.[0];if(!w?.TargetGroupArn)return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(S,{to:`/ec2/describe-target-groups`,children:`Back to target groups`}),(0,K.jsx)(`p`,{className:`text-muted-foreground`,children:`Target group not found.`})]});let E=async()=>{try{await o.mutateAsync(e),t({to:`/ec2/describe-target-groups`})}finally{g(!1)}},D=r.Attributes??[],O=a?.TagDescriptions?.find(t=>t.ResourceArn===e)?.Tags??[];return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(S,{to:`/ec2/describe-target-groups`,children:`Back to target groups`}),o.error&&(0,K.jsx)(T,{error:o.error,msg:`Failed to delete target group`}),(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(C,{actions:(0,K.jsxs)(c,{onClick:()=>g(!0),size:`sm`,variant:`destructive`,children:[(0,K.jsx)(s,{className:`size-4`}),`Delete`]}),subtitle:`Target Group Details`,title:w.TargetGroupName??w.TargetGroupArn}),(0,K.jsxs)(U,{onValueChange:x,value:y,children:[(0,K.jsxs)(V,{children:[(0,K.jsx)(B,{value:`overview`,children:`Overview`}),(0,K.jsx)(B,{value:`targets`,children:`Targets`}),(0,K.jsx)(B,{value:`health-checks`,children:`Health checks`}),(0,K.jsx)(B,{value:`attributes`,children:`Attributes`}),(0,K.jsx)(B,{value:`tags`,children:`Tags`})]}),(0,K.jsx)(H,{value:`overview`,children:(0,K.jsxs)(F,{children:[(0,K.jsx)(F.Header,{children:`Target group`}),(0,K.jsxs)(F.Content,{children:[(0,K.jsx)(I,{label:`ARN`,value:w.TargetGroupArn}),(0,K.jsx)(I,{label:`Protocol`,value:w.Protocol}),(0,K.jsx)(I,{label:`Port`,value:w.Port?.toString()}),(0,K.jsx)(I,{label:`VPC`,value:w.VpcId}),(0,K.jsx)(I,{label:`Target type`,value:w.TargetType}),(0,K.jsx)(I,{label:`Protocol version`,value:w.ProtocolVersion}),(0,K.jsx)(I,{label:`IP address type`,value:w.IpAddressType})]})]})}),(0,K.jsx)(H,{value:`targets`,children:(0,K.jsx)(ne,{defaultPort:w.Port??80,isActive:y===`targets`,targetGroupArn:w.TargetGroupArn,vpcId:w.VpcId})}),(0,K.jsxs)(H,{value:`health-checks`,children:[(0,K.jsx)(`p`,{className:`mb-3 text-sm text-muted-foreground`,children:`Health-check settings are set at creation time. Editing lands in a future slice (mulga-948).`}),(0,K.jsxs)(F,{children:[(0,K.jsx)(F.Header,{children:`Health check`}),(0,K.jsxs)(F.Content,{children:[(0,K.jsx)(I,{label:`Enabled`,value:w.HealthCheckEnabled===void 0?void 0:String(w.HealthCheckEnabled)}),(0,K.jsx)(I,{label:`Protocol`,value:w.HealthCheckProtocol}),(0,K.jsx)(I,{label:`Path`,value:w.HealthCheckPath}),(0,K.jsx)(I,{label:`Port`,value:w.HealthCheckPort}),(0,K.jsx)(I,{label:`Interval (s)`,value:w.HealthCheckIntervalSeconds?.toString()}),(0,K.jsx)(I,{label:`Timeout (s)`,value:w.HealthCheckTimeoutSeconds?.toString()}),(0,K.jsx)(I,{label:`Healthy threshold`,value:w.HealthyThresholdCount?.toString()}),(0,K.jsx)(I,{label:`Unhealthy threshold`,value:w.UnhealthyThresholdCount?.toString()}),(0,K.jsx)(I,{label:`Matcher (HTTP codes)`,value:w.Matcher?.HttpCode??w.Matcher?.GrpcCode})]})]})]}),(0,K.jsx)(H,{value:`attributes`,children:(0,K.jsx)(R,{attributes:D,error:l.error,isPending:l.isPending,isSuccess:l.isSuccess,onSubmit:t=>{l.mutate({targetGroupArn:e,attributes:t})},specs:L})}),(0,K.jsx)(H,{value:`tags`,children:(0,K.jsx)(z,{error:f.error,isPending:f.isPending,isSuccess:f.isSuccess,onSubmit:t=>f.mutate({resourceArn:e,tags:t,initialKeys:O.map(e=>e.Key??``).filter(e=>e.length>0)}),tags:O})})]})]}),(0,K.jsx)(P,{description:`Are you sure you want to delete target group "${w.TargetGroupName??w.TargetGroupArn}"? This action cannot be undone.`,isPending:o.isPending,onConfirm:E,onOpenChange:g,open:p,title:`Delete Target Group`})]})}function ie(){let e=(0,W.c)(2),{id:t}=w.useParams(),n=decodeURIComponent(t),r;return e[0]===n?r=e[1]:(r=(0,K.jsx)(re,{arn:n}),e[0]=n,e[1]=r),r}export{ie as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./useNavigate.js";import{$t as a,qt as o}from"./auth.js";import{t as s}from"./trash-2.js";import{t as c}from"./button.js";import{l}from"./ec2.js";import{_ as u,c as d,l as f,m as p,p as m}from"./elbv2.js";import{c as h,d as g,l as _,s as v}from"./elbv22.js";import{$n as y,B as b,F as x,I as S,L as C,R as w,Rn as T,Sn as E,Tn as D,U as O,V as k,er as A,g as j,yn as M,z as N}from"./index.js";import{t as P}from"./delete-confirmation-dialog.js";import{n as F,t as I}from"./detail-row.js";import{i as L,n as R,t as z}from"./tags-editor.js";import{i as B,n as V,r as H,t as U}from"./tabs.js";var W=r(),G=t(n(),1),K=e();function q(e){let t=e.trim();if(t===``)return;let n=Number(t);if(!(!Number.isInteger(n)||n<1||n>65535))return n}function J(e){let t=(0,W.c)(33),{open:n,onOpenChange:r,instances:i,defaultPort:o,isPending:s,onConfirm:c}=e,l;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(l={},t[0]=l):l=t[0];let[u,d]=(0,G.useState)(l),[f,p]=(0,G.useState)(),[m,h]=(0,G.useState)(n);n!==m&&(h(n),n||(d({}),p(void 0)));let g;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(g=e=>{d(t=>{let n=t[e];return n?.checked?{...t,[e]:{...n,checked:!1}}:{...t,[e]:{checked:!0,port:n?.port??``}}})},t[1]=g):g=t[1];let _=g,v;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(v=(e,t)=>{d(n=>({...n,[e]:{checked:n[e]?.checked??!0,port:t}}))},t[2]=v):v=t[2];let y=v,E;t[3]!==c||t[4]!==u?(E=()=>{let e=Object.entries(u).filter(Y);if(e.length===0){p(`Select at least one instance.`);return}let t=[];for(let[n,r]of e){if(r.port.trim()===``){t.push({id:n});continue}let e=q(r.port);if(e===void 0){p(`Port for ${n} must be an integer between 1 and 65535.`);return}t.push({id:n,port:e})}p(void 0),c(t)},t[3]=c,t[4]=u,t[5]=E):E=t[5];let D=E,A;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,K.jsx)(O,{children:`Register targets`}),t[6]=A):A=t[6];let j;t[7]===o?j=t[8]:(j=(0,K.jsxs)(k,{children:[A,(0,K.jsxs)(N,{children:[`Select instances to register. Leave port blank to use the target group port (`,o,`).`]})]}),t[7]=o,t[8]=j);let M;t[9]!==o||t[10]!==i||t[11]!==u?(M=i.length===0?(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No instances available in this VPC.`}):(0,K.jsx)(`div`,{className:`max-h-72 space-y-1 overflow-y-auto`,children:i.map(e=>{let t=e.InstanceId??``,n=u[t],r=n?.checked??!1,i=a(e.Tags);return(0,K.jsxs)(`div`,{className:`flex items-center gap-2 rounded px-1 py-1 text-xs hover:bg-accent`,children:[(0,K.jsx)(`input`,{"aria-label":`Register target ${t}`,checked:r,id:`register-target-${t}`,onChange:()=>_(t),type:`checkbox`}),(0,K.jsxs)(`label`,{className:`flex flex-1 items-center gap-2`,htmlFor:`register-target-${t}`,children:[(0,K.jsx)(`span`,{className:`font-mono`,children:t}),i&&(0,K.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,i,`)`]}),(0,K.jsx)(`span`,{className:`text-muted-foreground`,children:e.State?.Name??``})]}),r&&(0,K.jsx)(T,{"aria-label":`Port override for ${t}`,className:`w-24`,onChange:e=>y(t,e.target.value),placeholder:String(o),value:n?.port??``})]},t)})}),t[9]=o,t[10]=i,t[11]=u,t[12]=M):M=t[12];let P;t[13]===f?P=t[14]:(P=f&&(0,K.jsx)(`p`,{className:`text-xs text-destructive`,role:`alert`,children:f}),t[13]=f,t[14]=P);let F;t[15]===s?F=t[16]:(F=(0,K.jsx)(C,{disabled:s,children:`Cancel`}),t[15]=s,t[16]=F);let I=s?`Registering…`:`Register`,L;t[17]!==D||t[18]!==s||t[19]!==I?(L=(0,K.jsx)(S,{disabled:s,onClick:D,children:I}),t[17]=D,t[18]=s,t[19]=I,t[20]=L):L=t[20];let R;t[21]!==L||t[22]!==F?(R=(0,K.jsxs)(b,{children:[F,L]}),t[21]=L,t[22]=F,t[23]=R):R=t[23];let z;t[24]!==R||t[25]!==j||t[26]!==M||t[27]!==P?(z=(0,K.jsxs)(w,{className:`sm:max-w-lg`,children:[j,M,P,R]}),t[24]=R,t[25]=j,t[26]=M,t[27]=P,t[28]=z):z=t[28];let B;return t[29]!==r||t[30]!==n||t[31]!==z?(B=(0,K.jsx)(x,{onOpenChange:r,open:n,children:z}),t[29]=r,t[30]=n,t[31]=z,t[32]=B):B=t[32],B}function Y(e){let[,t]=e;return t.checked&&t!==void 0}var X=5e3,Z=new Set([`healthy`]),Q=new Set([`unhealthy`,`unavailable`]),$=new Set([`initial`,`draining`]);function ee(e){return e&&Z.has(e)?`bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-100`:e&&Q.has(e)?`bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-100`:e&&$.has(e)?`bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-100`:`bg-gray-100 text-gray-800 dark:bg-gray-800 dark:text-gray-100`}function te(e){return`${e.Id??``}:${e.Port??``}`}function ne({targetGroupArn:e,vpcId:t,defaultPort:n,isActive:r}){let{data:i}=y(l),{data:a,isLoading:u,error:d}=A({...g(e),refetchInterval:r?X:!1,refetchIntervalInBackground:!1}),m=p(),h=f(),[_,v]=(0,G.useState)(!1),[b,x]=(0,G.useState)(),S=(i.Reservations?.flatMap(e=>e.Instances??[])??[]).filter(e=>e.VpcId===t&&e.State?.Name!==`terminated`),C=a?.TargetHealthDescriptions??[];return(0,K.jsxs)(`div`,{className:`space-y-3`,children:[m.error&&(0,K.jsx)(E,{error:m.error,msg:`Failed to register targets`}),h.error&&(0,K.jsx)(E,{error:h.error,msg:`Failed to deregister target`}),d&&(0,K.jsx)(E,{error:d,msg:`Failed to load target health`}),(0,K.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,K.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:u?`Loading target health…`:`${C.length} target${C.length===1?``:`s`}`}),(0,K.jsx)(c,{onClick:()=>v(!0),size:`sm`,children:`Register targets`})]}),C.length===0?(0,K.jsx)(`p`,{className:`text-muted-foreground`,children:`No targets registered.`}):(0,K.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,K.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,K.jsx)(`thead`,{children:(0,K.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Target`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Port`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`AZ`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Health`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Reason`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Description`}),(0,K.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,K.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,K.jsx)(`tbody`,{children:C.map(e=>{let t=e.Target??{Id:``},n=e.TargetHealth?.State;return(0,K.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,K.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:t.Id??``}),(0,K.jsx)(`td`,{className:`px-4 py-2`,children:t.Port??``}),(0,K.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:t.AvailabilityZone??``}),(0,K.jsx)(`td`,{className:`px-4 py-2`,children:(0,K.jsx)(`span`,{className:o(`rounded-full px-2 py-0.5 text-xs`,ee(n)),children:n??`unknown`})}),(0,K.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:e.TargetHealth?.Reason??``}),(0,K.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:e.TargetHealth?.Description??``}),(0,K.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,K.jsx)(c,{"aria-label":`Deregister ${t.Id}`,onClick:()=>x(t),size:`sm`,variant:`ghost`,children:(0,K.jsx)(s,{className:`size-4`})})})]},te(t))})})]})}),(0,K.jsx)(J,{defaultPort:n,instances:S,isPending:m.isPending,onConfirm:async t=>{try{await m.mutateAsync({targetGroupArn:e,targets:t}),v(!1)}catch{}},onOpenChange:v,open:_}),(0,K.jsx)(P,{description:b?`Deregister ${b.Id}${b.Port?`:${b.Port}`:``} from this target group?`:``,isPending:h.isPending,onConfirm:async()=>{if(b?.Id)try{await h.mutateAsync({targetGroupArn:e,targets:[{id:b.Id,port:b.Port}]})}finally{x(void 0)}},onOpenChange:e=>!e&&x(void 0),open:b!==void 0,title:`Deregister target`})]})}function re({arn:e}){let t=i(),{data:n}=y(_(e)),{data:r}=y(h(e)),{data:a}=y(v([e])),o=d(),l=m(),f=u(),[p,g]=(0,G.useState)(!1),[b,x]=(0,G.useState)(`overview`),S=n.TargetGroups?.[0];if(!S?.TargetGroupArn)return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(D,{to:`/ec2/describe-target-groups`,children:`Back to target groups`}),(0,K.jsx)(`p`,{className:`text-muted-foreground`,children:`Target group not found.`})]});let C=async()=>{try{await o.mutateAsync(e),t({to:`/ec2/describe-target-groups`})}finally{g(!1)}},w=r.Attributes??[],T=a?.TagDescriptions?.find(t=>t.ResourceArn===e)?.Tags??[];return(0,K.jsxs)(K.Fragment,{children:[(0,K.jsx)(D,{to:`/ec2/describe-target-groups`,children:`Back to target groups`}),o.error&&(0,K.jsx)(E,{error:o.error,msg:`Failed to delete target group`}),(0,K.jsxs)(`div`,{className:`space-y-6`,children:[(0,K.jsx)(M,{actions:(0,K.jsxs)(c,{onClick:()=>g(!0),size:`sm`,variant:`destructive`,children:[(0,K.jsx)(s,{className:`size-4`}),`Delete`]}),subtitle:`Target Group Details`,title:S.TargetGroupName??S.TargetGroupArn}),(0,K.jsxs)(U,{onValueChange:x,value:b,children:[(0,K.jsxs)(V,{children:[(0,K.jsx)(B,{value:`overview`,children:`Overview`}),(0,K.jsx)(B,{value:`targets`,children:`Targets`}),(0,K.jsx)(B,{value:`health-checks`,children:`Health checks`}),(0,K.jsx)(B,{value:`attributes`,children:`Attributes`}),(0,K.jsx)(B,{value:`tags`,children:`Tags`})]}),(0,K.jsx)(H,{value:`overview`,children:(0,K.jsxs)(F,{children:[(0,K.jsx)(F.Header,{children:`Target group`}),(0,K.jsxs)(F.Content,{children:[(0,K.jsx)(I,{label:`ARN`,value:S.TargetGroupArn}),(0,K.jsx)(I,{label:`Protocol`,value:S.Protocol}),(0,K.jsx)(I,{label:`Port`,value:S.Port?.toString()}),(0,K.jsx)(I,{label:`VPC`,value:S.VpcId}),(0,K.jsx)(I,{label:`Target type`,value:S.TargetType}),(0,K.jsx)(I,{label:`Protocol version`,value:S.ProtocolVersion}),(0,K.jsx)(I,{label:`IP address type`,value:S.IpAddressType})]})]})}),(0,K.jsx)(H,{value:`targets`,children:(0,K.jsx)(ne,{defaultPort:S.Port??80,isActive:b===`targets`,targetGroupArn:S.TargetGroupArn,vpcId:S.VpcId})}),(0,K.jsxs)(H,{value:`health-checks`,children:[(0,K.jsx)(`p`,{className:`mb-3 text-sm text-muted-foreground`,children:`Health-check settings are set at creation time. Editing lands in a future slice (mulga-948).`}),(0,K.jsxs)(F,{children:[(0,K.jsx)(F.Header,{children:`Health check`}),(0,K.jsxs)(F.Content,{children:[(0,K.jsx)(I,{label:`Enabled`,value:S.HealthCheckEnabled===void 0?void 0:String(S.HealthCheckEnabled)}),(0,K.jsx)(I,{label:`Protocol`,value:S.HealthCheckProtocol}),(0,K.jsx)(I,{label:`Path`,value:S.HealthCheckPath}),(0,K.jsx)(I,{label:`Port`,value:S.HealthCheckPort}),(0,K.jsx)(I,{label:`Interval (s)`,value:S.HealthCheckIntervalSeconds?.toString()}),(0,K.jsx)(I,{label:`Timeout (s)`,value:S.HealthCheckTimeoutSeconds?.toString()}),(0,K.jsx)(I,{label:`Healthy threshold`,value:S.HealthyThresholdCount?.toString()}),(0,K.jsx)(I,{label:`Unhealthy threshold`,value:S.UnhealthyThresholdCount?.toString()}),(0,K.jsx)(I,{label:`Matcher (HTTP codes)`,value:S.Matcher?.HttpCode??S.Matcher?.GrpcCode})]})]})]}),(0,K.jsx)(H,{value:`attributes`,children:(0,K.jsx)(R,{attributes:w,error:l.error,isPending:l.isPending,isSuccess:l.isSuccess,onSubmit:t=>{l.mutate({targetGroupArn:e,attributes:t})},specs:L})}),(0,K.jsx)(H,{value:`tags`,children:(0,K.jsx)(z,{error:f.error,isPending:f.isPending,isSuccess:f.isSuccess,onSubmit:t=>f.mutate({resourceArn:e,tags:t,initialKeys:T.map(e=>e.Key??``).filter(e=>e.length>0)}),tags:T})})]})]}),(0,K.jsx)(P,{description:`Are you sure you want to delete target group "${S.TargetGroupName??S.TargetGroupArn}"? This action cannot be undone.`,isPending:o.isPending,onConfirm:C,onOpenChange:g,open:p,title:`Delete Target Group`})]})}function ie(){let e=(0,W.c)(2),{id:t}=j.useParams(),n=decodeURIComponent(t),r;return e[0]===n?r=e[1]:(r=(0,K.jsx)(re,{arn:n}),e[0]=n,e[1]=r),r}export{ie as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id15.js b/spinifex/services/spinifexui/frontend/dist/assets/_id15.js index 621254168..4ee2b471c 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id15.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id15.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a,Xt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{c,i as l,n as ee,s as te,t as u}from"./select.js";import{t as d}from"./trash-2.js";import{n as f,t as p}from"./button.js";import{k as m,l as h}from"./ec2.js";import{Bt as g,It as _,Jn as ne,Ln as re,Xn as v,_n as y,dn as b,h as ie,mn as x,ot as S,rn as C,sn as w}from"./index.js";import{a as T,i as E,l as D,n as O,o as k,r as A,s as j,t as M}from"./alert-dialog.js";import{t as ae}from"./delete-confirmation-dialog.js";import{n as N,t as P}from"./detail-row.js";import{t as F}from"./state-badge.js";var I=s(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),L=s(`link-2-off`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7`,key:`10o201`}],[`path`,{d:`M15 7h2a5 5 0 0 1 4 8`,key:`1d3206`}],[`line`,{x1:`8`,x2:`12`,y1:`12`,y2:`12`,key:`rvw6j4`}],[`line`,{x1:`2`,x2:`22`,y1:`2`,y2:`22`,key:`a6p6uj`}]]),R=t(n()),z=e();function B(){let{id:e}=ie.useParams(),t=i(),{data:n}=v(m(e)),{data:s}=v(h),B=n.Volumes?.[0],V=_(),H=S(),U=g(),[W,G]=(0,R.useState)(null),[K,q]=(0,R.useState)(``),[J,Y]=(0,R.useState)(``),[X,Z]=(0,R.useState)(!1),oe=s.Reservations?.flatMap(e=>e.Instances?.filter(e=>e.State?.Name===`running`)??[])??[],Q=B?.State===`available`&&(!B.Attachments||B.Attachments.length===0),$=()=>G(null);return B?.VolumeId?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(y,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),V.error&&(0,z.jsx)(x,{error:V.error,msg:`Failed to delete volume`}),H.error&&(0,z.jsx)(x,{error:H.error,msg:`Failed to attach volume`}),U.error&&(0,z.jsx)(x,{error:U.error,msg:`Failed to detach volume`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(b,{actions:(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,z.jsxs)(p,{disabled:!Q,onClick:()=>G(`delete`),size:`sm`,variant:`destructive`,children:[(0,z.jsx)(d,{className:`size-4`}),`Delete`]}),Q?(0,z.jsx)(r,{className:f({variant:`outline`}),params:{id:B.VolumeId},to:`/ec2/modify-volume/$id`,children:`Resize Volume`}):(0,z.jsx)(p,{disabled:!0,variant:`outline`,children:`Resize Volume`}),Q?(0,z.jsxs)(p,{onClick:()=>G(`attach`),size:`sm`,variant:`outline`,children:[(0,z.jsx)(I,{className:`size-4`}),`Attach`]}):null,B.Attachments&&B.Attachments.length>0?(0,z.jsxs)(p,{onClick:()=>G(`detach`),size:`sm`,variant:`outline`,children:[(0,z.jsx)(L,{className:`size-4`}),`Detach`]}):null,(0,z.jsxs)(r,{className:f({variant:`outline`,size:`sm`}),search:{volumeId:B.VolumeId},to:`/ec2/create-snapshot`,children:[(0,z.jsx)(ne,{className:`size-4`}),`Create Snapshot`]}),(0,z.jsx)(F,{state:B.State})]}),subtitle:`Volume Details`,title:B.VolumeId}),(0,z.jsxs)(N,{children:[(0,z.jsx)(N.Header,{children:`Volume Information`}),(0,z.jsxs)(N.Content,{children:[(0,z.jsx)(P,{label:`Volume ID`,value:B.VolumeId}),(0,z.jsx)(P,{label:`Size`,value:`${B.Size} GiB`}),(0,z.jsx)(P,{label:`Volume Type`,value:B.VolumeType}),(0,z.jsx)(P,{label:`State`,value:B.State}),(0,z.jsx)(P,{label:`Availability Zone`,value:B.AvailabilityZone}),(0,z.jsx)(P,{label:`Create Time`,value:o(B.CreateTime)}),(0,z.jsx)(P,{label:`Encrypted`,value:B.Encrypted?`Yes`:`No`}),(0,z.jsx)(P,{label:`KMS Key ID`,value:B.KmsKeyId})]})]}),B.Attachments&&B.Attachments.length>0&&(0,z.jsxs)(N,{children:[(0,z.jsx)(N.Header,{children:`Attachments`}),B.Attachments.map(e=>(0,z.jsxs)(N.Content,{children:[(0,z.jsx)(P,{label:`Instance ID`,value:e.InstanceId?(0,z.jsx)(r,{className:`text-primary hover:underline`,params:{id:e.InstanceId},to:`/ec2/describe-instances/$id`,children:e.InstanceId}):void 0}),(0,z.jsx)(P,{label:`Device`,value:e.Device}),(0,z.jsx)(P,{label:`Status`,value:e.State}),(0,z.jsx)(P,{label:`Attach Time`,value:o(e.AttachTime)}),(0,z.jsx)(P,{label:`Delete on Termination`,value:e.DeleteOnTermination?`Yes`:`No`})]},e.InstanceId))]})]}),(0,z.jsx)(ae,{description:`Are you sure you want to delete the volume "${B.VolumeId}"? This action cannot be undone.`,isPending:V.isPending,onConfirm:async()=>{try{await V.mutateAsync(e),t({to:`/ec2/describe-volumes`})}finally{$()}},onOpenChange:e=>{e||$()},open:W===`delete`,title:`Delete Volume`}),(0,z.jsx)(M,{onOpenChange:e=>{e||($(),q(``),Y(``))},open:W===`attach`,children:(0,z.jsxs)(E,{children:[(0,z.jsxs)(j,{children:[(0,z.jsx)(D,{children:`Attach Volume`}),(0,z.jsx)(T,{children:`Attach this volume to a running instance.`})]}),(0,z.jsxs)(C,{children:[(0,z.jsx)(w,{children:(0,z.jsx)(`label`,{htmlFor:`attachInstance`,children:`Instance`})}),(0,z.jsxs)(u,{onValueChange:e=>q(e??``),value:K,children:[(0,z.jsx)(te,{className:`w-full`,id:`attachInstance`,children:(0,z.jsx)(c,{placeholder:`Select an instance`})}),(0,z.jsx)(ee,{children:oe.map(e=>{let t=a(e.Tags);return(0,z.jsxs)(l,{value:e.InstanceId??``,children:[e.InstanceId,t?` (${t})`:``]},e.InstanceId)})})]})]}),(0,z.jsxs)(C,{children:[(0,z.jsx)(w,{children:(0,z.jsx)(`label`,{htmlFor:`attachDevice`,children:`Device (optional)`})}),(0,z.jsx)(re,{id:`attachDevice`,onChange:e=>Y(e.target.value),placeholder:`/dev/sdf`,value:J})]}),(0,z.jsxs)(k,{children:[(0,z.jsx)(A,{children:`Cancel`}),(0,z.jsx)(O,{disabled:H.isPending||!K,onClick:async()=>{try{await H.mutateAsync({volumeId:e,instanceId:K,device:J||void 0}),$(),q(``),Y(``)}catch{}},children:H.isPending?`Attaching…`:`Attach`})]})]})}),(0,z.jsx)(M,{onOpenChange:e=>{e||($(),Z(!1))},open:W===`detach`,children:(0,z.jsxs)(E,{children:[(0,z.jsxs)(j,{children:[(0,z.jsx)(D,{children:`Detach Volume`}),(0,z.jsxs)(T,{children:[`Are you sure you want to detach the volume "`,B.VolumeId,`" from instance "`,B.Attachments?.[0]?.InstanceId,`"?`]})]}),(0,z.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,z.jsx)(`input`,{"aria-label":`Force detach`,checked:X,onChange:e=>Z(e.target.checked),type:`checkbox`}),`Force detach`]}),(0,z.jsxs)(k,{children:[(0,z.jsx)(A,{children:`Cancel`}),(0,z.jsx)(O,{disabled:U.isPending,onClick:async()=>{let t=B?.Attachments?.[0]?.InstanceId;try{await U.mutateAsync({volumeId:e,instanceId:t??void 0,force:X||void 0}),$(),Z(!1)}catch{}},children:U.isPending?`Detaching…`:`Detach`})]})]})})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(y,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),(0,z.jsx)(`p`,{className:`text-muted-foreground`,children:`Volume not found.`})]})}export{B as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a,Xt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{c,i as l,n as u,s as d,t as f}from"./select.js";import{t as p}from"./trash-2.js";import{n as m,t as h}from"./button.js";import{k as g,l as _}from"./ec2.js";import{$n as v,B as y,F as b,I as x,Jt as ee,L as S,R as C,Rn as w,Sn as T,Tn as E,U as D,V as O,Wt as te,Zn as ne,dn as k,h as A,hn as j,ht as re,yn as ie,z as M}from"./index.js";import{t as ae}from"./delete-confirmation-dialog.js";import{n as N,t as P}from"./detail-row.js";import{t as F}from"./state-badge.js";var I=s(`link-2`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7h2`,key:`8i5ue5`}],[`path`,{d:`M15 7h2a5 5 0 1 1 0 10h-2`,key:`1b9ql8`}],[`line`,{x1:`8`,x2:`16`,y1:`12`,y2:`12`,key:`1jonct`}]]),L=s(`link-2-off`,[[`path`,{d:`M9 17H7A5 5 0 0 1 7 7`,key:`10o201`}],[`path`,{d:`M15 7h2a5 5 0 0 1 4 8`,key:`1d3206`}],[`line`,{x1:`8`,x2:`12`,y1:`12`,y2:`12`,key:`rvw6j4`}],[`line`,{x1:`2`,x2:`22`,y1:`2`,y2:`22`,key:`a6p6uj`}]]),R=t(n()),z=e();function B(){let{id:e}=A.useParams(),t=i(),{data:n}=v(g(e)),{data:s}=v(_),B=n.Volumes?.[0],V=te(),H=re(),U=ee(),[W,G]=(0,R.useState)(null),[K,q]=(0,R.useState)(``),[J,Y]=(0,R.useState)(``),[X,Z]=(0,R.useState)(!1),oe=s.Reservations?.flatMap(e=>e.Instances?.filter(e=>e.State?.Name===`running`)??[])??[],Q=B?.State===`available`&&(!B.Attachments||B.Attachments.length===0),$=()=>G(null);return B?.VolumeId?(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(E,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),V.error&&(0,z.jsx)(T,{error:V.error,msg:`Failed to delete volume`}),H.error&&(0,z.jsx)(T,{error:H.error,msg:`Failed to attach volume`}),U.error&&(0,z.jsx)(T,{error:U.error,msg:`Failed to detach volume`}),(0,z.jsxs)(`div`,{className:`space-y-6`,children:[(0,z.jsx)(ie,{actions:(0,z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,z.jsxs)(h,{disabled:!Q,onClick:()=>G(`delete`),size:`sm`,variant:`destructive`,children:[(0,z.jsx)(p,{className:`size-4`}),`Delete`]}),Q?(0,z.jsx)(r,{className:m({variant:`outline`}),params:{id:B.VolumeId},to:`/ec2/modify-volume/$id`,children:`Resize Volume`}):(0,z.jsx)(h,{disabled:!0,variant:`outline`,children:`Resize Volume`}),Q?(0,z.jsxs)(h,{onClick:()=>G(`attach`),size:`sm`,variant:`outline`,children:[(0,z.jsx)(I,{className:`size-4`}),`Attach`]}):null,B.Attachments&&B.Attachments.length>0?(0,z.jsxs)(h,{onClick:()=>G(`detach`),size:`sm`,variant:`outline`,children:[(0,z.jsx)(L,{className:`size-4`}),`Detach`]}):null,(0,z.jsxs)(r,{className:m({variant:`outline`,size:`sm`}),search:{volumeId:B.VolumeId},to:`/ec2/create-snapshot`,children:[(0,z.jsx)(ne,{className:`size-4`}),`Create Snapshot`]}),(0,z.jsx)(F,{state:B.State})]}),subtitle:`Volume Details`,title:B.VolumeId}),(0,z.jsxs)(N,{children:[(0,z.jsx)(N.Header,{children:`Volume Information`}),(0,z.jsxs)(N.Content,{children:[(0,z.jsx)(P,{label:`Volume ID`,value:B.VolumeId}),(0,z.jsx)(P,{label:`Size`,value:`${B.Size} GiB`}),(0,z.jsx)(P,{label:`Volume Type`,value:B.VolumeType}),(0,z.jsx)(P,{label:`State`,value:B.State}),(0,z.jsx)(P,{label:`Availability Zone`,value:B.AvailabilityZone}),(0,z.jsx)(P,{label:`Create Time`,value:o(B.CreateTime)}),(0,z.jsx)(P,{label:`Encrypted`,value:B.Encrypted?`Yes`:`No`}),(0,z.jsx)(P,{label:`KMS Key ID`,value:B.KmsKeyId})]})]}),B.Attachments&&B.Attachments.length>0&&(0,z.jsxs)(N,{children:[(0,z.jsx)(N.Header,{children:`Attachments`}),B.Attachments.map(e=>(0,z.jsxs)(N.Content,{children:[(0,z.jsx)(P,{label:`Instance ID`,value:e.InstanceId?(0,z.jsx)(r,{className:`text-primary hover:underline`,params:{id:e.InstanceId},to:`/ec2/describe-instances/$id`,children:e.InstanceId}):void 0}),(0,z.jsx)(P,{label:`Device`,value:e.Device}),(0,z.jsx)(P,{label:`Status`,value:e.State}),(0,z.jsx)(P,{label:`Attach Time`,value:o(e.AttachTime)}),(0,z.jsx)(P,{label:`Delete on Termination`,value:e.DeleteOnTermination?`Yes`:`No`})]},e.InstanceId))]})]}),(0,z.jsx)(ae,{description:`Are you sure you want to delete the volume "${B.VolumeId}"? This action cannot be undone.`,isPending:V.isPending,onConfirm:async()=>{try{await V.mutateAsync(e),t({to:`/ec2/describe-volumes`})}finally{$()}},onOpenChange:e=>{e||$()},open:W===`delete`,title:`Delete Volume`}),(0,z.jsx)(b,{onOpenChange:e=>{e||($(),q(``),Y(``))},open:W===`attach`,children:(0,z.jsxs)(C,{children:[(0,z.jsxs)(O,{children:[(0,z.jsx)(D,{children:`Attach Volume`}),(0,z.jsx)(M,{children:`Attach this volume to a running instance.`})]}),(0,z.jsxs)(k,{children:[(0,z.jsx)(j,{children:(0,z.jsx)(`label`,{htmlFor:`attachInstance`,children:`Instance`})}),(0,z.jsxs)(f,{onValueChange:e=>q(e??``),value:K,children:[(0,z.jsx)(d,{className:`w-full`,id:`attachInstance`,children:(0,z.jsx)(c,{placeholder:`Select an instance`})}),(0,z.jsx)(u,{children:oe.map(e=>{let t=a(e.Tags);return(0,z.jsxs)(l,{value:e.InstanceId??``,children:[e.InstanceId,t?` (${t})`:``]},e.InstanceId)})})]})]}),(0,z.jsxs)(k,{children:[(0,z.jsx)(j,{children:(0,z.jsx)(`label`,{htmlFor:`attachDevice`,children:`Device (optional)`})}),(0,z.jsx)(w,{id:`attachDevice`,onChange:e=>Y(e.target.value),placeholder:`/dev/sdf`,value:J})]}),(0,z.jsxs)(y,{children:[(0,z.jsx)(S,{children:`Cancel`}),(0,z.jsx)(x,{disabled:H.isPending||!K,onClick:async()=>{try{await H.mutateAsync({volumeId:e,instanceId:K,device:J||void 0}),$(),q(``),Y(``)}catch{}},children:H.isPending?`Attaching…`:`Attach`})]})]})}),(0,z.jsx)(b,{onOpenChange:e=>{e||($(),Z(!1))},open:W===`detach`,children:(0,z.jsxs)(C,{children:[(0,z.jsxs)(O,{children:[(0,z.jsx)(D,{children:`Detach Volume`}),(0,z.jsxs)(M,{children:[`Are you sure you want to detach the volume "`,B.VolumeId,`" from instance "`,B.Attachments?.[0]?.InstanceId,`"?`]})]}),(0,z.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,z.jsx)(`input`,{"aria-label":`Force detach`,checked:X,onChange:e=>Z(e.target.checked),type:`checkbox`}),`Force detach`]}),(0,z.jsxs)(y,{children:[(0,z.jsx)(S,{children:`Cancel`}),(0,z.jsx)(x,{disabled:U.isPending,onClick:async()=>{let t=B?.Attachments?.[0]?.InstanceId;try{await U.mutateAsync({volumeId:e,instanceId:t??void 0,force:X||void 0}),$(),Z(!1)}catch{}},children:U.isPending?`Detaching…`:`Detach`})]})]})})]}):(0,z.jsxs)(z.Fragment,{children:[(0,z.jsx)(E,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),(0,z.jsx)(`p`,{className:`text-muted-foreground`,children:`Volume not found.`})]})}export{B as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id16.js b/spinifex/services/spinifexui/frontend/dist/assets/_id16.js index 4d08c3126..4489e130d 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id16.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id16.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{k as r}from"./ec2.js";import{Jt as i,Ln as a,Q as o,Xn as s,_n as c,an as l,dn as u,m as d,mn as f,rn as p,sn as m,vn as h,xn as g}from"./index.js";import{t as _}from"./form-actions.js";var v=t(),y=e();function b(){let e=(0,v.c)(53),{id:t}=d.useParams(),b=n(),x;e[0]===t?x=e[1]:(x=r(t),e[0]=t,e[1]=x);let{data:S}=s(x),C=S.Volumes?.[0],w=C?.VolumeId,T=i(),E=C?.Size??1,D;e[2]===E?D=e[3]:(D=h(o.refine(e=>e.size>E,{message:`New size must be greater than current size (${E} GiB)`,path:[`size`]})),e[2]=E,e[3]=D);let O;e[4]===E?O=e[5]:(O={size:E},e[4]=E,e[5]=O);let k;e[6]!==D||e[7]!==O?(k={resolver:D,defaultValues:O},e[6]=D,e[7]=O,e[8]=k):k=e[8];let{handleSubmit:A,register:j,formState:M}=g(k),{errors:N,isSubmitting:P}=M;if(!w){let t;return e[9]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(c,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),(0,y.jsx)(`p`,{className:`text-muted-foreground`,children:`Volume not found.`})]}),e[9]=t):t=e[9],t}let F;e[10]!==T||e[11]!==b||e[12]!==w?(F=async e=>{await T.mutateAsync({...e,volumeId:w}),b({to:`/ec2/describe-volumes/$id`,params:{id:w}})},e[10]=T,e[11]=b,e[12]=w,e[13]=F):F=e[13];let I=F,L,R;e[14]===w?(L=e[15],R=e[16]):(L=(0,y.jsx)(c,{params:{id:w},to:`/ec2/describe-volumes/$id`,children:`Back to volume`}),R=(0,y.jsx)(u,{subtitle:w,title:`Resize Volume`}),e[14]=w,e[15]=L,e[16]=R);let z;e[17]===T.error?z=e[18]:(z=T.error&&(0,y.jsx)(f,{error:T.error,msg:`Failed to resize volume`}),e[17]=T.error,e[18]=z);let B;e[19]!==A||e[20]!==I?(B=A(I),e[19]=A,e[20]=I,e[21]=B):B=e[21];let V;e[22]===E?V=e[23]:(V=(0,y.jsx)(`div`,{className:`space-y-2`,children:(0,y.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Current size: `,E,` GiB`]})}),e[22]=E,e[23]=V);let H;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,y.jsx)(m,{children:(0,y.jsx)(`label`,{htmlFor:`size`,children:`New size (GiB)`})}),e[24]=H):H=e[24];let U=!!N.size,W=E+1,G;e[25]===j?G=e[26]:(G=j(`size`,{valueAsNumber:!0}),e[25]=j,e[26]=G);let K;e[27]!==U||e[28]!==W||e[29]!==G?(K=(0,y.jsx)(a,{"aria-invalid":U,id:`size`,min:W,type:`number`,...G}),e[27]=U,e[28]=W,e[29]=G,e[30]=K):K=e[30];let q;e[31]===N.size?q=e[32]:(q=(0,y.jsx)(l,{errors:[N.size]}),e[31]=N.size,e[32]=q);let J;e[33]!==K||e[34]!==q?(J=(0,y.jsxs)(p,{children:[H,K,q]}),e[33]=K,e[34]=q,e[35]=J):J=e[35];let Y;e[36]!==b||e[37]!==w?(Y=async()=>await b({to:`/ec2/describe-volumes/$id`,params:{id:w}}),e[36]=b,e[37]=w,e[38]=Y):Y=e[38];let X;e[39]!==P||e[40]!==T.isPending||e[41]!==Y?(X=(0,y.jsx)(_,{isPending:T.isPending,isSubmitting:P,onCancel:Y,pendingLabel:`Resizing\\u2026`,submitLabel:`Resize Volume`}),e[39]=P,e[40]=T.isPending,e[41]=Y,e[42]=X):X=e[42];let Z;e[43]!==V||e[44]!==J||e[45]!==X||e[46]!==B?(Z=(0,y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:B,children:[V,J,X]}),e[43]=V,e[44]=J,e[45]=X,e[46]=B,e[47]=Z):Z=e[47];let Q;return e[48]!==Z||e[49]!==L||e[50]!==R||e[51]!==z?(Q=(0,y.jsxs)(y.Fragment,{children:[L,R,z,Z]}),e[48]=Z,e[49]=L,e[50]=R,e[51]=z,e[52]=Q):Q=e[52],Q}export{b as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{k as r}from"./ec2.js";import{$n as i,En as a,Rn as o,Sn as s,Tn as c,W as l,dn as u,hn as d,kn as f,m as p,nn as m,pn as h,st as g,yn as _}from"./index.js";var v=t(),y=e();function b(){let e=(0,v.c)(53),{id:t}=p.useParams(),b=n(),x;e[0]===t?x=e[1]:(x=r(t),e[0]=t,e[1]=x);let{data:S}=i(x),C=S.Volumes?.[0],w=C?.VolumeId,T=m(),E=C?.Size??1,D;e[2]===E?D=e[3]:(D=a(g.refine(e=>e.size>E,{message:`New size must be greater than current size (${E} GiB)`,path:[`size`]})),e[2]=E,e[3]=D);let O;e[4]===E?O=e[5]:(O={size:E},e[4]=E,e[5]=O);let k;e[6]!==D||e[7]!==O?(k={resolver:D,defaultValues:O},e[6]=D,e[7]=O,e[8]=k):k=e[8];let{handleSubmit:A,register:j,formState:M}=f(k),{errors:N,isSubmitting:P}=M;if(!w){let t;return e[9]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(c,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),(0,y.jsx)(`p`,{className:`text-muted-foreground`,children:`Volume not found.`})]}),e[9]=t):t=e[9],t}let F;e[10]!==T||e[11]!==b||e[12]!==w?(F=async e=>{await T.mutateAsync({...e,volumeId:w}),b({to:`/ec2/describe-volumes/$id`,params:{id:w}})},e[10]=T,e[11]=b,e[12]=w,e[13]=F):F=e[13];let I=F,L,R;e[14]===w?(L=e[15],R=e[16]):(L=(0,y.jsx)(c,{params:{id:w},to:`/ec2/describe-volumes/$id`,children:`Back to volume`}),R=(0,y.jsx)(_,{subtitle:w,title:`Resize Volume`}),e[14]=w,e[15]=L,e[16]=R);let z;e[17]===T.error?z=e[18]:(z=T.error&&(0,y.jsx)(s,{error:T.error,msg:`Failed to resize volume`}),e[17]=T.error,e[18]=z);let B;e[19]!==A||e[20]!==I?(B=A(I),e[19]=A,e[20]=I,e[21]=B):B=e[21];let V;e[22]===E?V=e[23]:(V=(0,y.jsx)(`div`,{className:`space-y-2`,children:(0,y.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Current size: `,E,` GiB`]})}),e[22]=E,e[23]=V);let H;e[24]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,y.jsx)(d,{children:(0,y.jsx)(`label`,{htmlFor:`size`,children:`New size (GiB)`})}),e[24]=H):H=e[24];let U=!!N.size,W=E+1,G;e[25]===j?G=e[26]:(G=j(`size`,{valueAsNumber:!0}),e[25]=j,e[26]=G);let K;e[27]!==U||e[28]!==W||e[29]!==G?(K=(0,y.jsx)(o,{"aria-invalid":U,id:`size`,min:W,type:`number`,...G}),e[27]=U,e[28]=W,e[29]=G,e[30]=K):K=e[30];let q;e[31]===N.size?q=e[32]:(q=(0,y.jsx)(h,{errors:[N.size]}),e[31]=N.size,e[32]=q);let J;e[33]!==K||e[34]!==q?(J=(0,y.jsxs)(u,{children:[H,K,q]}),e[33]=K,e[34]=q,e[35]=J):J=e[35];let Y;e[36]!==b||e[37]!==w?(Y=async()=>await b({to:`/ec2/describe-volumes/$id`,params:{id:w}}),e[36]=b,e[37]=w,e[38]=Y):Y=e[38];let X;e[39]!==P||e[40]!==T.isPending||e[41]!==Y?(X=(0,y.jsx)(l,{isPending:T.isPending,isSubmitting:P,onCancel:Y,pendingLabel:`Resizing\\u2026`,submitLabel:`Resize Volume`}),e[39]=P,e[40]=T.isPending,e[41]=Y,e[42]=X):X=e[42];let Z;e[43]!==V||e[44]!==J||e[45]!==X||e[46]!==B?(Z=(0,y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:B,children:[V,J,X]}),e[43]=V,e[44]=J,e[45]=X,e[46]=B,e[47]=Z):Z=e[47];let Q;return e[48]!==Z||e[49]!==L||e[50]!==R||e[51]!==z?(Q=(0,y.jsxs)(y.Fragment,{children:[L,R,z,Z]}),e[48]=Z,e[49]=L,e[50]=R,e[51]=z,e[52]=Q):Q=e[52],Q}export{b as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id17.js b/spinifex/services/spinifexui/frontend/dist/assets/_id17.js index b2987bc0b..bd269d745 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id17.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id17.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{O as c,j as l}from"./ec2.js";import{Lt as u,Xn as d,_n as f,dn as p,mn as m,p as h}from"./index.js";import{t as g}from"./delete-confirmation-dialog.js";import{n as _,t as v}from"./detail-row.js";import{t as y}from"./state-badge.js";var b=t(n()),x=e();function S(){let{id:e}=h.useParams(),t=i(),{data:n}=d(l(e)),{data:S}=d(c),C=n.Vpcs?.[0],w=u(),[T,E]=(0,b.useState)(!1),D=S.Subnets?.filter(t=>t.VpcId===e)??[],O=async()=>{try{await w.mutateAsync(e),t({to:`/ec2/describe-vpcs`})}finally{E(!1)}};if(!C?.VpcId)return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(f,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),(0,x.jsx)(`p`,{className:`text-muted-foreground`,children:`VPC not found.`})]});let k=a(C.Tags);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(f,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),w.error&&(0,x.jsx)(m,{error:w.error,msg:`Failed to delete VPC`}),(0,x.jsxs)(`div`,{className:`space-y-6`,children:[(0,x.jsx)(p,{actions:(0,x.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,x.jsxs)(s,{onClick:()=>E(!0),size:`sm`,variant:`destructive`,children:[(0,x.jsx)(o,{className:`size-4`}),`Delete`]}),(0,x.jsx)(y,{state:C.State})]}),subtitle:`VPC Details`,title:k?`${C.VpcId} (${k})`:C.VpcId}),(0,x.jsxs)(_,{children:[(0,x.jsx)(_.Header,{children:`VPC Information`}),(0,x.jsxs)(_.Content,{children:[(0,x.jsx)(v,{label:`VPC ID`,value:C.VpcId}),(0,x.jsx)(v,{label:`State`,value:C.State}),(0,x.jsx)(v,{label:`CIDR Block`,value:C.CidrBlock}),(0,x.jsx)(v,{label:`Is Default`,value:C.IsDefault?`Yes`:`No`}),(0,x.jsx)(v,{label:`DHCP Options ID`,value:C.DhcpOptionsId}),(0,x.jsx)(v,{label:`Instance Tenancy`,value:C.InstanceTenancy}),(0,x.jsx)(v,{label:`Owner ID`,value:C.OwnerId})]})]}),D.length>0&&(0,x.jsxs)(_,{children:[(0,x.jsxs)(_.Header,{children:[`Subnets (`,D.length,`)`]}),D.map(e=>e.SubnetId?(0,x.jsxs)(_.Content,{children:[(0,x.jsx)(v,{label:`Subnet ID`,value:(0,x.jsx)(r,{className:`text-primary hover:underline`,params:{id:e.SubnetId},to:`/ec2/describe-subnets/$id`,children:e.SubnetId})}),(0,x.jsx)(v,{label:`CIDR Block`,value:e.CidrBlock}),(0,x.jsx)(v,{label:`Availability Zone`,value:e.AvailabilityZone}),(0,x.jsx)(v,{label:`State`,value:e.State})]},e.SubnetId):null)]})]}),(0,x.jsx)(g,{description:`Are you sure you want to delete the VPC "${C.VpcId}"? This action cannot be undone. The VPC must have no associated subnets or internet gateways.`,isPending:w.isPending,onConfirm:O,onOpenChange:E,open:T,title:`Delete VPC`})]})}export{S as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{O as c,j as l}from"./ec2.js";import{$n as u,Gt as d,Sn as f,Tn as p,p as m,yn as h}from"./index.js";import{t as g}from"./delete-confirmation-dialog.js";import{n as _,t as v}from"./detail-row.js";import{t as y}from"./state-badge.js";var b=t(n()),x=e();function S(){let{id:e}=m.useParams(),t=i(),{data:n}=u(l(e)),{data:S}=u(c),C=n.Vpcs?.[0],w=d(),[T,E]=(0,b.useState)(!1),D=S.Subnets?.filter(t=>t.VpcId===e)??[],O=async()=>{try{await w.mutateAsync(e),t({to:`/ec2/describe-vpcs`})}finally{E(!1)}};if(!C?.VpcId)return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(p,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),(0,x.jsx)(`p`,{className:`text-muted-foreground`,children:`VPC not found.`})]});let k=a(C.Tags);return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(p,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),w.error&&(0,x.jsx)(f,{error:w.error,msg:`Failed to delete VPC`}),(0,x.jsxs)(`div`,{className:`space-y-6`,children:[(0,x.jsx)(h,{actions:(0,x.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,x.jsxs)(s,{onClick:()=>E(!0),size:`sm`,variant:`destructive`,children:[(0,x.jsx)(o,{className:`size-4`}),`Delete`]}),(0,x.jsx)(y,{state:C.State})]}),subtitle:`VPC Details`,title:k?`${C.VpcId} (${k})`:C.VpcId}),(0,x.jsxs)(_,{children:[(0,x.jsx)(_.Header,{children:`VPC Information`}),(0,x.jsxs)(_.Content,{children:[(0,x.jsx)(v,{label:`VPC ID`,value:C.VpcId}),(0,x.jsx)(v,{label:`State`,value:C.State}),(0,x.jsx)(v,{label:`CIDR Block`,value:C.CidrBlock}),(0,x.jsx)(v,{label:`Is Default`,value:C.IsDefault?`Yes`:`No`}),(0,x.jsx)(v,{label:`DHCP Options ID`,value:C.DhcpOptionsId}),(0,x.jsx)(v,{label:`Instance Tenancy`,value:C.InstanceTenancy}),(0,x.jsx)(v,{label:`Owner ID`,value:C.OwnerId})]})]}),D.length>0&&(0,x.jsxs)(_,{children:[(0,x.jsxs)(_.Header,{children:[`Subnets (`,D.length,`)`]}),D.map(e=>e.SubnetId?(0,x.jsxs)(_.Content,{children:[(0,x.jsx)(v,{label:`Subnet ID`,value:(0,x.jsx)(r,{className:`text-primary hover:underline`,params:{id:e.SubnetId},to:`/ec2/describe-subnets/$id`,children:e.SubnetId})}),(0,x.jsx)(v,{label:`CIDR Block`,value:e.CidrBlock}),(0,x.jsx)(v,{label:`Availability Zone`,value:e.AvailabilityZone}),(0,x.jsx)(v,{label:`State`,value:e.State})]},e.SubnetId):null)]})]}),(0,x.jsx)(g,{description:`Are you sure you want to delete the VPC "${C.VpcId}"? This action cannot be undone. The VPC must have no associated subnets or internet gateways.`,isPending:w.isPending,onConfirm:O,onOpenChange:E,open:T,title:`Delete VPC`})]})}export{S as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id18.js b/spinifex/services/spinifexui/frontend/dist/assets/_id18.js index e132589d8..37d1ff69f 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id18.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id18.js @@ -1,4 +1,4 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{Xt as a,Zt as o}from"./auth.js";import{t as s}from"./button.js";import{i as c,n as l,r as u,t as d}from"./ecr.js";import{a as f,c as p,l as m,o as h,r as g,s as _,t as v}from"./ecr2.js";import{r as y}from"./json.js";import{Xn as b,dn as x,f as S}from"./index.js";import{a as C,i as w,l as T,n as E,o as D,r as O,s as k,t as A}from"./alert-dialog.js";import{t as j}from"./badge.js";import{i as M,n as N,r as P,t as F}from"./tabs.js";import{t as ee}from"./json-editor.js";var I=r(),L=t(n(),1),R=e(),z=`{ +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{Xt as a,Zt as o}from"./auth.js";import{t as s}from"./button.js";import{i as c,n as l,r as u,t as d}from"./ecr.js";import{a as f,c as p,l as m,o as h,r as g,s as _,t as v}from"./ecr2.js";import{r as y}from"./json.js";import{$n as b,B as x,F as S,I as C,L as w,R as T,U as E,V as D,f as O,yn as k,z as A}from"./index.js";import{t as j}from"./badge.js";import{i as M,n as N,r as P,t as F}from"./tabs.js";import{t as ee}from"./json-editor.js";var I=r(),L=t(n(),1),R=e(),z=`{ "rules": [ { "rulePriority": 1, @@ -14,4 +14,4 @@ import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}fro ] }`;function B(e){let t=(0,I.c)(54),{repositoryName:n}=e,r;t[0]===n?r=t[1]:(r=d(n),t[0]=n,t[1]=r);let{data:i}=b(r),a=p(),o=g(),c=h(),[l,u]=(0,L.useState)(i??``),[f,m]=(0,L.useState)(i);i!==f&&(m(i),u(i??``));let _;t[2]!==l||t[3]!==a||t[4]!==n?(_=async function(){try{await a.mutateAsync({repositoryName:n,lifecyclePolicyText:l})}catch{}},t[2]=l,t[3]=a,t[4]=n,t[5]=_):_=t[5];let v=_,x;t[6]!==o||t[7]!==n?(x=async function(){try{await o.mutateAsync(n)}catch{}},t[6]=o,t[7]=n,t[8]=x):x=t[8];let S=x,C;t[9]!==c||t[10]!==n?(C=async function(){try{await c.mutateAsync(n)}catch{}},t[9]=c,t[10]=n,t[11]=C):C=t[11];let w=C,T;t[12]===l?T=t[13]:(T=l.trim(),t[12]=l,t[13]=T);let E=T,D;t[14]!==l||t[15]!==E.length?(D=E.length>0&&!y(l),t[14]=l,t[15]=E.length,t[16]=D):D=t[16];let O=D,k=a.error??o.error??c.error,A;t[17]===c.data?.previewResults?A=t[18]:(A=c.data?.previewResults??[],t[17]=c.data?.previewResults,t[18]=A);let j=A,M;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,R.jsx)(`h2`,{className:`text-sm font-medium`,children:`Lifecycle policy`}),t[19]=M):M=t[19];let N=o.isPending||!i,P=o.isPending?`Deleting…`:`Delete`,F;t[20]!==S||t[21]!==P||t[22]!==N?(F=(0,R.jsx)(s,{disabled:N,onClick:S,size:`sm`,variant:`destructive`,children:P}),t[20]=S,t[21]=P,t[22]=N,t[23]=F):F=t[23];let B=c.isPending||!i,te=c.isPending?`Previewing…`:`Preview`,H;t[24]!==w||t[25]!==B||t[26]!==te?(H=(0,R.jsx)(s,{disabled:B,onClick:w,size:`sm`,variant:`outline`,children:te}),t[24]=w,t[25]=B,t[26]=te,t[27]=H):H=t[27];let U=a.isPending||E.length===0||O,W=a.isPending?`Saving…`:`Save`,G;t[28]!==v||t[29]!==U||t[30]!==W?(G=(0,R.jsx)(s,{disabled:U,onClick:v,size:`sm`,children:W}),t[28]=v,t[29]=U,t[30]=W,t[31]=G):G=t[31];let K;t[32]!==F||t[33]!==H||t[34]!==G?(K=(0,R.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[M,(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[F,H,G]})]}),t[32]=F,t[33]=H,t[34]=G,t[35]=K):K=t[35];let q;t[36]!==l||t[37]!==O?(q=(0,R.jsx)(ee,{className:`text-xs`,error:O,onChange:u,placeholder:z,rows:14,value:l}),t[36]=l,t[37]=O,t[38]=q):q=t[38];let J;t[39]===O?J=t[40]:(J=O&&(0,R.jsx)(`p`,{className:`mt-2 text-sm text-destructive`,children:`Lifecycle policy must be valid JSON.`}),t[39]=O,t[40]=J);let Y;t[41]===k?Y=t[42]:(Y=k&&(0,R.jsx)(`p`,{className:`mt-2 text-sm text-destructive`,children:k.message}),t[41]=k,t[42]=Y);let X;t[43]!==K||t[44]!==q||t[45]!==J||t[46]!==Y?(X=(0,R.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[K,q,J,Y]}),t[43]=K,t[44]=q,t[45]=J,t[46]=Y,t[47]=X):X=t[47];let Z;t[48]!==c.isSuccess||t[49]!==j?(Z=c.isSuccess&&(0,R.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,R.jsxs)(`h3`,{className:`mb-2 text-sm font-medium`,children:[`Preview: `,j.length,` image`,j.length===1?``:`s`,` would expire`]}),j.length>0?(0,R.jsx)(`div`,{className:`overflow-x-auto rounded-lg border`,children:(0,R.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,R.jsx)(`thead`,{children:(0,R.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Tags`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Digest`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Pushed`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Rule`})]})}),(0,R.jsx)(`tbody`,{children:j.map(V)})]})}):(0,R.jsx)(`p`,{className:`text-muted-foreground`,children:`No images match this policy.`})]}),t[48]=c.isSuccess,t[49]=j,t[50]=Z):Z=t[50];let Q;return t[51]!==X||t[52]!==Z?(Q=(0,R.jsxs)(`div`,{className:`space-y-4`,children:[X,Z]}),t[51]=X,t[52]=Z,t[53]=Q):Q=t[53],Q}function V(e){return(0,R.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,R.jsx)(`td`,{className:`px-4 py-2`,children:e.imageTags&&e.imageTags.length>0?e.imageTags.join(`, `):``}),(0,R.jsxs)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:[e.imageDigest?.slice(0,19),`…`]}),(0,R.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:a(e.imagePushedAt)}),(0,R.jsx)(`td`,{className:`px-4 py-2`,children:e.appliedRulePriority})]},e.imageDigest)}function te(e){let t=(0,I.c)(38),{repositoryName:n}=e,r;t[0]===n?r=t[1]:(r=c(n),t[0]=n,t[1]=r);let{data:i}=b(r),a=m(),o=f(),[l,u]=(0,L.useState)(i??``),[d,p]=(0,L.useState)(i);i!==d&&(p(i),u(i??``));let h;t[2]!==l||t[3]!==n||t[4]!==a?(h=async function(){try{await a.mutateAsync({repositoryName:n,policyText:l})}catch{}},t[2]=l,t[3]=n,t[4]=a,t[5]=h):h=t[5];let g=h,_;t[6]!==o||t[7]!==n?(_=async function(){try{await o.mutateAsync(n)}catch{}},t[6]=o,t[7]=n,t[8]=_):_=t[8];let v=_,x;t[9]===l?x=t[10]:(x=l.trim(),t[9]=l,t[10]=x);let S=x,C;t[11]!==l||t[12]!==S.length?(C=S.length>0&&!y(l),t[11]=l,t[12]=S.length,t[13]=C):C=t[13];let w=C,T=a.error??o.error,E;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,R.jsx)(`h2`,{className:`text-sm font-medium`,children:`Repository policy`}),t[14]=E):E=t[14];let D=o.isPending||!i,O=o.isPending?`Deleting…`:`Delete`,k;t[15]!==v||t[16]!==D||t[17]!==O?(k=(0,R.jsx)(s,{disabled:D,onClick:v,size:`sm`,variant:`destructive`,children:O}),t[15]=v,t[16]=D,t[17]=O,t[18]=k):k=t[18];let A=a.isPending||S.length===0||w,j=a.isPending?`Saving…`:`Save`,M;t[19]!==g||t[20]!==A||t[21]!==j?(M=(0,R.jsx)(s,{disabled:A,onClick:g,size:`sm`,children:j}),t[19]=g,t[20]=A,t[21]=j,t[22]=M):M=t[22];let N;t[23]!==M||t[24]!==k?(N=(0,R.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[E,(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[k,M]})]}),t[23]=M,t[24]=k,t[25]=N):N=t[25];let P;t[26]!==l||t[27]!==w?(P=(0,R.jsx)(ee,{className:`text-xs`,error:w,onChange:u,placeholder:`No policy attached. Paste an IAM policy document to set one.`,rows:10,value:l}),t[26]=l,t[27]=w,t[28]=P):P=t[28];let F;t[29]===w?F=t[30]:(F=w&&(0,R.jsx)(`p`,{className:`mt-2 text-sm text-destructive`,children:`Policy must be valid JSON.`}),t[29]=w,t[30]=F);let z;t[31]===T?z=t[32]:(z=T&&(0,R.jsx)(`p`,{className:`mt-2 text-sm text-destructive`,children:T.message}),t[31]=T,t[32]=z);let B;return t[33]!==N||t[34]!==P||t[35]!==F||t[36]!==z?(B=(0,R.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[N,P,F,z]}),t[33]=N,t[34]=P,t[35]=F,t[36]=z,t[37]=B):B=t[37],B}var H=`ap-southeast-2`;function U(e){if(!e)return``;let t=e.indexOf(`/`);return t===-1?e:e.slice(0,t)}function W(e){let t=(0,I.c)(18),{repositoryName:n,repositoryUri:r}=e,[i,a]=(0,L.useState)(!1),o;t[0]===r?o=t[1]:(o=U(r),t[0]=r,t[1]=o);let c=o,l=r??`${c}/${n}`,u=`aws ecr get-login-password --region ${H} | docker login --username AWS --password-stdin ${c}`,d=`docker build -t ${n} .`,f=`docker tag ${n}:latest ${l}:latest`,p=`docker push ${l}:latest`,m;t[2]!==u||t[3]!==d||t[4]!==f||t[5]!==p?(m=[u,d,f,p],t[2]=u,t[3]=d,t[4]=f,t[5]=p,t[6]=m):m=t[6];let h=m,g;t[7]===h?g=t[8]:(g=async function(){await navigator.clipboard.writeText(h.join(` `)),a(!0),setTimeout(()=>a(!1),2e3)},t[7]=h,t[8]=g);let _=g,v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,R.jsx)(`h2`,{className:`text-sm font-medium`,children:`Push commands`}),t[9]=v):v=t[9];let y=i?`Copied`:`Copy`,b;t[10]!==_||t[11]!==y?(b=(0,R.jsxs)(`div`,{className:`mb-2 flex items-center justify-between`,children:[v,(0,R.jsx)(s,{onClick:_,size:`sm`,variant:`outline`,children:y})]}),t[10]=_,t[11]=y,t[12]=b):b=t[12];let x=h.join(` -`),S;t[13]===x?S=t[14]:(S=(0,R.jsx)(`pre`,{className:`overflow-x-auto rounded bg-muted p-3 font-mono text-xs`,children:x}),t[13]=x,t[14]=S);let C;return t[15]!==b||t[16]!==S?(C=(0,R.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[b,S]}),t[15]=b,t[16]=S,t[17]=C):C=t[17],C}function G(e){let t=(0,I.c)(31),{repositoryName:n,repositoryUri:r,imageTagMutability:i}=e,a=_(),o=i===`IMMUTABLE`,c=o?`MUTABLE`:`IMMUTABLE`,l=o?`Make mutable`:`Make immutable`,u;t[0]!==c||t[1]!==a||t[2]!==n?(u=async function(){try{await a.mutateAsync({repositoryName:n,imageTagMutability:c})}catch{}},t[0]=c,t[1]=a,t[2]=n,t[3]=u):u=t[3];let d=u,f;t[4]!==n||t[5]!==r?(f=(0,R.jsx)(W,{repositoryName:n,repositoryUri:r}),t[4]=n,t[5]=r,t[6]=f):f=t[6];let p;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,R.jsx)(`h2`,{className:`text-sm font-medium`,children:`Tag immutability`}),t[7]=p):p=t[7];let m=o?`Tags cannot be overwritten to point at a different image.`:`Tags can be overwritten by a new push.`,h;t[8]===m?h=t[9]:(h=(0,R.jsxs)(`div`,{children:[p,(0,R.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:m})]}),t[8]=m,t[9]=h);let g=o?`default`:`outline`,v=o?`Immutable`:`Mutable`,y;t[10]!==g||t[11]!==v?(y=(0,R.jsx)(j,{variant:g,children:v}),t[10]=g,t[11]=v,t[12]=y):y=t[12];let b;t[13]!==h||t[14]!==y?(b=(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[h,y]}),t[13]=h,t[14]=y,t[15]=b):b=t[15];let x;t[16]===a.error?x=t[17]:(x=a.error&&(0,R.jsx)(`p`,{className:`mt-2 text-sm text-destructive`,children:a.error.message}),t[16]=a.error,t[17]=x);let S;t[18]===d?S=t[19]:(S=()=>void d(),t[18]=d,t[19]=S);let C=a.isPending?`Saving…`:l,w;t[20]!==a.isPending||t[21]!==S||t[22]!==C?(w=(0,R.jsx)(s,{className:`mt-3`,disabled:a.isPending,onClick:S,size:`sm`,variant:`outline`,children:C}),t[20]=a.isPending,t[21]=S,t[22]=C,t[23]=w):w=t[23];let T;t[24]!==x||t[25]!==w||t[26]!==b?(T=(0,R.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[b,x,w]}),t[24]=x,t[25]=w,t[26]=b,t[27]=T):T=t[27];let E;return t[28]!==T||t[29]!==f?(E=(0,R.jsxs)(`div`,{className:`space-y-6`,children:[f,T]}),t[28]=T,t[29]=f,t[30]=E):E=t[30],E}function K(){let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,R.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,R.jsx)(`h2`,{className:`mb-2 text-sm font-medium`,children:`Image scanning`}),(0,R.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Vulnerability scanning is not supported by this registry. Pushed images are stored and served without scan findings.`})]}),e[0]=t):t=e[0],t}function q(e){let t=(0,I.c)(57),{repositoryName:n}=e,{data:r}=b(l),c;t[0]===n?c=t[1]:(c=u(n),t[0]=n,t[1]=c);let{data:d}=b(c),f=v(),[p,m]=(0,L.useState)(null),h;t[2]===r.repositories?h=t[3]:(h=r.repositories??[],t[2]=r.repositories,t[3]=h);let g;if(t[4]!==n||t[5]!==h){let e;t[7]===n?e=t[8]:(e=e=>e.repositoryName===n,t[7]=n,t[8]=e),g=h.find(e),t[4]=n,t[5]=h,t[6]=g}else g=t[6];let _=g,y;t[9]===d.imageDetails?y=t[10]:(y=d.imageDetails??[],t[9]=d.imageDetails,t[10]=y);let S=y,j;t[11]!==f||t[12]!==p||t[13]!==n?(j=async function(){if(p)try{await f.mutateAsync({repositoryName:n,imageIds:[{imageDigest:p}]}),m(null)}catch{}},t[11]=f,t[12]=p,t[13]=n,t[14]=j):j=t[14];let ee=j,z=_?.repositoryUri,V;t[15]!==n||t[16]!==z?(V=(0,R.jsx)(x,{subtitle:z,title:n}),t[15]=n,t[16]=z,t[17]=V):V=t[17];let H;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,R.jsx)(`div`,{className:`mb-4`,children:(0,R.jsx)(i,{className:`text-sm text-primary hover:underline`,to:`/ecr/list-repositories`,children:`← Back to repositories`})}),t[18]=H):H=t[18];let U;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,R.jsxs)(N,{children:[(0,R.jsx)(M,{value:`summary`,children:`Summary`}),(0,R.jsx)(M,{value:`images`,children:`Images`}),(0,R.jsx)(M,{value:`lifecycle`,children:`Lifecycle`}),(0,R.jsx)(M,{value:`scan`,children:`Scan`}),(0,R.jsx)(M,{value:`permissions`,children:`Permissions`})]}),t[19]=U):U=t[19];let W=_?.imageTagMutability,q=_?.repositoryUri,J;t[20]!==n||t[21]!==W||t[22]!==q?(J=(0,R.jsx)(P,{value:`summary`,children:(0,R.jsx)(G,{imageTagMutability:W,repositoryName:n,repositoryUri:q})}),t[20]=n,t[21]=W,t[22]=q,t[23]=J):J=t[23];let Y;t[24]===S?Y=t[25]:(Y=(0,R.jsx)(P,{value:`images`,children:S.length>0?(0,R.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,R.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,R.jsx)(`thead`,{children:(0,R.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Tags`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Digest`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Size`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Pushed`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,R.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,R.jsx)(`tbody`,{children:S.map(e=>{if(!e.imageDigest)return null;let t=e.imageDigest;return(0,R.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,R.jsx)(`td`,{className:`px-4 py-2`,children:e.imageTags&&e.imageTags.length>0?e.imageTags.join(`, `):``}),(0,R.jsxs)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:[t.slice(0,19),`…`]}),(0,R.jsx)(`td`,{className:`px-4 py-2`,children:o(e.imageSizeInBytes??0)}),(0,R.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:a(e.imagePushedAt)}),(0,R.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,R.jsx)(s,{onClick:()=>m(t),size:`sm`,variant:`destructive`,children:`Delete`})})]},t)})})]})}):(0,R.jsx)(`p`,{className:`text-muted-foreground`,children:`No images pushed yet.`})}),t[24]=S,t[25]=Y);let X;t[26]===n?X=t[27]:(X=(0,R.jsx)(P,{value:`lifecycle`,children:(0,R.jsx)(B,{repositoryName:n})}),t[26]=n,t[27]=X);let Z;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,R.jsx)(P,{value:`scan`,children:(0,R.jsx)(K,{})}),t[28]=Z):Z=t[28];let Q;t[29]===n?Q=t[30]:(Q=(0,R.jsx)(P,{value:`permissions`,children:(0,R.jsx)(te,{repositoryName:n})}),t[29]=n,t[30]=Q);let $;t[31]!==J||t[32]!==Y||t[33]!==X||t[34]!==Q?($=(0,R.jsxs)(F,{defaultValue:`summary`,children:[U,J,Y,X,Z,Q]}),t[31]=J,t[32]=Y,t[33]=X,t[34]=Q,t[35]=$):$=t[35];let ne;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(ne=e=>!e&&m(null),t[36]=ne):ne=t[36];let re=p!==null,ie;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,R.jsxs)(k,{children:[(0,R.jsx)(T,{children:`Delete image?`}),(0,R.jsx)(C,{children:`This permanently deletes the image manifest and any tags pointing at it. This cannot be undone.`})]}),t[37]=ie):ie=t[37];let ae;t[38]===f.error?ae=t[39]:(ae=f.error&&(0,R.jsx)(`p`,{className:`text-sm text-destructive`,children:f.error.message}),t[38]=f.error,t[39]=ae);let oe;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(oe=(0,R.jsx)(O,{children:`Cancel`}),t[40]=oe):oe=t[40];let se;t[41]===ee?se=t[42]:(se=e=>{e.preventDefault(),ee()},t[41]=ee,t[42]=se);let ce=f.isPending?`Deleting…`:`Delete`,le;t[43]!==f.isPending||t[44]!==se||t[45]!==ce?(le=(0,R.jsxs)(D,{children:[oe,(0,R.jsx)(E,{disabled:f.isPending,onClick:se,children:ce})]}),t[43]=f.isPending,t[44]=se,t[45]=ce,t[46]=le):le=t[46];let ue;t[47]!==ae||t[48]!==le?(ue=(0,R.jsxs)(w,{children:[ie,ae,le]}),t[47]=ae,t[48]=le,t[49]=ue):ue=t[49];let de;t[50]!==re||t[51]!==ue?(de=(0,R.jsx)(A,{onOpenChange:ne,open:re,children:ue}),t[50]=re,t[51]=ue,t[52]=de):de=t[52];let fe;return t[53]!==$||t[54]!==de||t[55]!==V?(fe=(0,R.jsxs)(R.Fragment,{children:[V,H,$,de]}),t[53]=$,t[54]=de,t[55]=V,t[56]=fe):fe=t[56],fe}function J(){let e=(0,I.c)(2),{id:t}=S.useParams(),n=decodeURIComponent(t),r;return e[0]===n?r=e[1]:(r=(0,R.jsx)(q,{repositoryName:n}),e[0]=n,e[1]=r),r}export{J as component}; \ No newline at end of file +`),S;t[13]===x?S=t[14]:(S=(0,R.jsx)(`pre`,{className:`overflow-x-auto rounded bg-muted p-3 font-mono text-xs`,children:x}),t[13]=x,t[14]=S);let C;return t[15]!==b||t[16]!==S?(C=(0,R.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[b,S]}),t[15]=b,t[16]=S,t[17]=C):C=t[17],C}function G(e){let t=(0,I.c)(31),{repositoryName:n,repositoryUri:r,imageTagMutability:i}=e,a=_(),o=i===`IMMUTABLE`,c=o?`MUTABLE`:`IMMUTABLE`,l=o?`Make mutable`:`Make immutable`,u;t[0]!==c||t[1]!==a||t[2]!==n?(u=async function(){try{await a.mutateAsync({repositoryName:n,imageTagMutability:c})}catch{}},t[0]=c,t[1]=a,t[2]=n,t[3]=u):u=t[3];let d=u,f;t[4]!==n||t[5]!==r?(f=(0,R.jsx)(W,{repositoryName:n,repositoryUri:r}),t[4]=n,t[5]=r,t[6]=f):f=t[6];let p;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,R.jsx)(`h2`,{className:`text-sm font-medium`,children:`Tag immutability`}),t[7]=p):p=t[7];let m=o?`Tags cannot be overwritten to point at a different image.`:`Tags can be overwritten by a new push.`,h;t[8]===m?h=t[9]:(h=(0,R.jsxs)(`div`,{children:[p,(0,R.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:m})]}),t[8]=m,t[9]=h);let g=o?`default`:`outline`,v=o?`Immutable`:`Mutable`,y;t[10]!==g||t[11]!==v?(y=(0,R.jsx)(j,{variant:g,children:v}),t[10]=g,t[11]=v,t[12]=y):y=t[12];let b;t[13]!==h||t[14]!==y?(b=(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[h,y]}),t[13]=h,t[14]=y,t[15]=b):b=t[15];let x;t[16]===a.error?x=t[17]:(x=a.error&&(0,R.jsx)(`p`,{className:`mt-2 text-sm text-destructive`,children:a.error.message}),t[16]=a.error,t[17]=x);let S;t[18]===d?S=t[19]:(S=()=>void d(),t[18]=d,t[19]=S);let C=a.isPending?`Saving…`:l,w;t[20]!==a.isPending||t[21]!==S||t[22]!==C?(w=(0,R.jsx)(s,{className:`mt-3`,disabled:a.isPending,onClick:S,size:`sm`,variant:`outline`,children:C}),t[20]=a.isPending,t[21]=S,t[22]=C,t[23]=w):w=t[23];let T;t[24]!==x||t[25]!==w||t[26]!==b?(T=(0,R.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[b,x,w]}),t[24]=x,t[25]=w,t[26]=b,t[27]=T):T=t[27];let E;return t[28]!==T||t[29]!==f?(E=(0,R.jsxs)(`div`,{className:`space-y-6`,children:[f,T]}),t[28]=T,t[29]=f,t[30]=E):E=t[30],E}function K(){let e=(0,I.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,R.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[(0,R.jsx)(`h2`,{className:`mb-2 text-sm font-medium`,children:`Image scanning`}),(0,R.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Vulnerability scanning is not supported by this registry. Pushed images are stored and served without scan findings.`})]}),e[0]=t):t=e[0],t}function q(e){let t=(0,I.c)(57),{repositoryName:n}=e,{data:r}=b(l),c;t[0]===n?c=t[1]:(c=u(n),t[0]=n,t[1]=c);let{data:d}=b(c),f=v(),[p,m]=(0,L.useState)(null),h;t[2]===r.repositories?h=t[3]:(h=r.repositories??[],t[2]=r.repositories,t[3]=h);let g;if(t[4]!==n||t[5]!==h){let e;t[7]===n?e=t[8]:(e=e=>e.repositoryName===n,t[7]=n,t[8]=e),g=h.find(e),t[4]=n,t[5]=h,t[6]=g}else g=t[6];let _=g,y;t[9]===d.imageDetails?y=t[10]:(y=d.imageDetails??[],t[9]=d.imageDetails,t[10]=y);let O=y,j;t[11]!==f||t[12]!==p||t[13]!==n?(j=async function(){if(p)try{await f.mutateAsync({repositoryName:n,imageIds:[{imageDigest:p}]}),m(null)}catch{}},t[11]=f,t[12]=p,t[13]=n,t[14]=j):j=t[14];let ee=j,z=_?.repositoryUri,V;t[15]!==n||t[16]!==z?(V=(0,R.jsx)(k,{subtitle:z,title:n}),t[15]=n,t[16]=z,t[17]=V):V=t[17];let H;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,R.jsx)(`div`,{className:`mb-4`,children:(0,R.jsx)(i,{className:`text-sm text-primary hover:underline`,to:`/ecr/list-repositories`,children:`← Back to repositories`})}),t[18]=H):H=t[18];let U;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,R.jsxs)(N,{children:[(0,R.jsx)(M,{value:`summary`,children:`Summary`}),(0,R.jsx)(M,{value:`images`,children:`Images`}),(0,R.jsx)(M,{value:`lifecycle`,children:`Lifecycle`}),(0,R.jsx)(M,{value:`scan`,children:`Scan`}),(0,R.jsx)(M,{value:`permissions`,children:`Permissions`})]}),t[19]=U):U=t[19];let W=_?.imageTagMutability,q=_?.repositoryUri,J;t[20]!==n||t[21]!==W||t[22]!==q?(J=(0,R.jsx)(P,{value:`summary`,children:(0,R.jsx)(G,{imageTagMutability:W,repositoryName:n,repositoryUri:q})}),t[20]=n,t[21]=W,t[22]=q,t[23]=J):J=t[23];let Y;t[24]===O?Y=t[25]:(Y=(0,R.jsx)(P,{value:`images`,children:O.length>0?(0,R.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,R.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,R.jsx)(`thead`,{children:(0,R.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Tags`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Digest`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Size`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Pushed`}),(0,R.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,R.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,R.jsx)(`tbody`,{children:O.map(e=>{if(!e.imageDigest)return null;let t=e.imageDigest;return(0,R.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,R.jsx)(`td`,{className:`px-4 py-2`,children:e.imageTags&&e.imageTags.length>0?e.imageTags.join(`, `):``}),(0,R.jsxs)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:[t.slice(0,19),`…`]}),(0,R.jsx)(`td`,{className:`px-4 py-2`,children:o(e.imageSizeInBytes??0)}),(0,R.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:a(e.imagePushedAt)}),(0,R.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,R.jsx)(s,{onClick:()=>m(t),size:`sm`,variant:`destructive`,children:`Delete`})})]},t)})})]})}):(0,R.jsx)(`p`,{className:`text-muted-foreground`,children:`No images pushed yet.`})}),t[24]=O,t[25]=Y);let X;t[26]===n?X=t[27]:(X=(0,R.jsx)(P,{value:`lifecycle`,children:(0,R.jsx)(B,{repositoryName:n})}),t[26]=n,t[27]=X);let Z;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(Z=(0,R.jsx)(P,{value:`scan`,children:(0,R.jsx)(K,{})}),t[28]=Z):Z=t[28];let Q;t[29]===n?Q=t[30]:(Q=(0,R.jsx)(P,{value:`permissions`,children:(0,R.jsx)(te,{repositoryName:n})}),t[29]=n,t[30]=Q);let $;t[31]!==J||t[32]!==Y||t[33]!==X||t[34]!==Q?($=(0,R.jsxs)(F,{defaultValue:`summary`,children:[U,J,Y,X,Z,Q]}),t[31]=J,t[32]=Y,t[33]=X,t[34]=Q,t[35]=$):$=t[35];let ne;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(ne=e=>!e&&m(null),t[36]=ne):ne=t[36];let re=p!==null,ie;t[37]===Symbol.for(`react.memo_cache_sentinel`)?(ie=(0,R.jsxs)(D,{children:[(0,R.jsx)(E,{children:`Delete image?`}),(0,R.jsx)(A,{children:`This permanently deletes the image manifest and any tags pointing at it. This cannot be undone.`})]}),t[37]=ie):ie=t[37];let ae;t[38]===f.error?ae=t[39]:(ae=f.error&&(0,R.jsx)(`p`,{className:`text-sm text-destructive`,children:f.error.message}),t[38]=f.error,t[39]=ae);let oe;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(oe=(0,R.jsx)(w,{children:`Cancel`}),t[40]=oe):oe=t[40];let se;t[41]===ee?se=t[42]:(se=e=>{e.preventDefault(),ee()},t[41]=ee,t[42]=se);let ce=f.isPending?`Deleting…`:`Delete`,le;t[43]!==f.isPending||t[44]!==se||t[45]!==ce?(le=(0,R.jsxs)(x,{children:[oe,(0,R.jsx)(C,{disabled:f.isPending,onClick:se,children:ce})]}),t[43]=f.isPending,t[44]=se,t[45]=ce,t[46]=le):le=t[46];let ue;t[47]!==ae||t[48]!==le?(ue=(0,R.jsxs)(T,{children:[ie,ae,le]}),t[47]=ae,t[48]=le,t[49]=ue):ue=t[49];let de;t[50]!==re||t[51]!==ue?(de=(0,R.jsx)(S,{onOpenChange:ne,open:re,children:ue}),t[50]=re,t[51]=ue,t[52]=de):de=t[52];let fe;return t[53]!==$||t[54]!==de||t[55]!==V?(fe=(0,R.jsxs)(R.Fragment,{children:[V,H,$,de]}),t[53]=$,t[54]=de,t[55]=V,t[56]=fe):fe=t[56],fe}function J(){let e=(0,I.c)(2),{id:t}=O.useParams(),n=decodeURIComponent(t),r;return e[0]===n?r=e[1]:(r=(0,R.jsx)(q,{repositoryName:n}),e[0]=n,e[1]=r),r}export{J as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id2.js b/spinifex/services/spinifexui/frontend/dist/assets/_id2.js index 78267047b..3a6b5e297 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id2.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id2.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./QueryClientProvider.js";import{t as a}from"./useMutation.js";import{t as o}from"./useNavigate.js";import{r as s}from"./auth.js";import{t as c}from"./circle-arrow-up.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{a as d}from"./ec2.js";import{Dn as f,O as p,On as m,Rt as h,Xn as g,_n as _,dn as v,mn as y}from"./index.js";import{a as b,i as x,l as S,n as C,o as w,r as T,s as E,t as D}from"./alert-dialog.js";import{t as O}from"./delete-confirmation-dialog.js";import{t as k}from"./state-badge.js";import{r as A}from"./system-managed.js";import{t as j}from"./ami-details.js";var M=t(n()),N=r();function P(){let e=(0,N.c)(2),t=i(),n;return e[0]===t?n=e[1]:(n={mutationFn:F,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`images`]})}},e[0]=t,e[1]=n),a(n)}async function F(e){let t=s();if(!t)throw Error(`Not authenticated`);return await m({action:`PromoteImage`,credentials:t,params:{ImageId:e}})}var I=e(),L=`000000000000`;function R(){let{id:e}=p.useParams(),t=o(),{data:n}=g(d(e)),r=n?.Images?.[0],{isAdmin:i}=f(),a=h(),s=P(),[m,N]=(0,M.useState)(!1),[F,R]=(0,M.useState)(!1);if(!r?.ImageId||A(r))return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(_,{to:`/ec2/describe-images`,children:`Back to images`}),(0,I.jsx)(`p`,{className:`text-muted-foreground`,children:`Image not found.`})]});let z=r.OwnerId===L;async function B(){try{await a.mutateAsync(e),t({to:`/ec2/describe-images`})}finally{N(!1)}}async function V(){try{await s.mutateAsync(e),R(!1)}catch{}}return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(_,{to:`/ec2/describe-images`,children:`Back to images`}),a.error&&(0,I.jsx)(y,{error:a.error,msg:`Failed to deregister image`}),s.error&&(0,I.jsx)(y,{error:s.error,msg:`Failed to promote image`}),(0,I.jsxs)(`div`,{className:`space-y-6`,children:[(0,I.jsx)(v,{actions:(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i&&!z&&(0,I.jsxs)(u,{onClick:()=>R(!0),size:`sm`,variant:`outline`,children:[(0,I.jsx)(c,{className:`size-4`}),`Promote to System`]}),(0,I.jsxs)(u,{onClick:()=>N(!0),size:`sm`,variant:`destructive`,children:[(0,I.jsx)(l,{className:`size-4`}),`Deregister`]}),(0,I.jsx)(k,{state:r.State})]}),subtitle:`Image Details`,title:r.ImageId}),(0,I.jsx)(j,{image:r,showExtendedDetails:!0})]}),(0,I.jsx)(O,{description:`Are you sure you want to deregister "${r.ImageId}"? The backing snapshot will not be deleted.`,isPending:a.isPending,onConfirm:B,onOpenChange:N,open:m,title:`Deregister Image`}),(0,I.jsx)(D,{onOpenChange:R,open:F,children:(0,I.jsxs)(x,{children:[(0,I.jsxs)(E,{children:[(0,I.jsx)(S,{children:`Promote to System Image`}),(0,I.jsxs)(b,{children:[`This will make “`,r.ImageId,`” visible to all accounts as a system image. This cannot be undone via the UI.`]})]}),(0,I.jsxs)(w,{children:[(0,I.jsx)(T,{children:`Cancel`}),(0,I.jsx)(C,{disabled:s.isPending,onClick:V,children:s.isPending?`Promoting…`:`Promote`})]})]})})]})}export{R as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./QueryClientProvider.js";import{t as a}from"./useMutation.js";import{t as o}from"./useNavigate.js";import{r as s}from"./auth.js";import{t as c}from"./circle-arrow-up.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{a as d}from"./ec2.js";import{$n as f,B as p,F as m,Fn as h,I as g,In as _,Kt as v,L as y,O as b,R as x,Sn as S,Tn as C,U as w,V as T,yn as E,z as D}from"./index.js";import{t as O}from"./delete-confirmation-dialog.js";import{t as k}from"./state-badge.js";import{r as A}from"./system-managed.js";import{t as j}from"./ami-details.js";var M=t(n()),N=r();function P(){let e=(0,N.c)(2),t=i(),n;return e[0]===t?n=e[1]:(n={mutationFn:F,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`images`]})}},e[0]=t,e[1]=n),a(n)}async function F(e){let t=s();if(!t)throw Error(`Not authenticated`);return await _({action:`PromoteImage`,credentials:t,params:{ImageId:e}})}var I=e(),L=`000000000000`;function R(){let{id:e}=b.useParams(),t=o(),{data:n}=f(d(e)),r=n?.Images?.[0],{isAdmin:i}=h(),a=v(),s=P(),[_,N]=(0,M.useState)(!1),[F,R]=(0,M.useState)(!1);if(!r?.ImageId||A(r))return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(C,{to:`/ec2/describe-images`,children:`Back to images`}),(0,I.jsx)(`p`,{className:`text-muted-foreground`,children:`Image not found.`})]});let z=r.OwnerId===L;async function B(){try{await a.mutateAsync(e),t({to:`/ec2/describe-images`})}finally{N(!1)}}async function V(){try{await s.mutateAsync(e),R(!1)}catch{}}return(0,I.jsxs)(I.Fragment,{children:[(0,I.jsx)(C,{to:`/ec2/describe-images`,children:`Back to images`}),a.error&&(0,I.jsx)(S,{error:a.error,msg:`Failed to deregister image`}),s.error&&(0,I.jsx)(S,{error:s.error,msg:`Failed to promote image`}),(0,I.jsxs)(`div`,{className:`space-y-6`,children:[(0,I.jsx)(E,{actions:(0,I.jsxs)(`div`,{className:`flex items-center gap-2`,children:[i&&!z&&(0,I.jsxs)(u,{onClick:()=>R(!0),size:`sm`,variant:`outline`,children:[(0,I.jsx)(c,{className:`size-4`}),`Promote to System`]}),(0,I.jsxs)(u,{onClick:()=>N(!0),size:`sm`,variant:`destructive`,children:[(0,I.jsx)(l,{className:`size-4`}),`Deregister`]}),(0,I.jsx)(k,{state:r.State})]}),subtitle:`Image Details`,title:r.ImageId}),(0,I.jsx)(j,{image:r,showExtendedDetails:!0})]}),(0,I.jsx)(O,{description:`Are you sure you want to deregister "${r.ImageId}"? The backing snapshot will not be deleted.`,isPending:a.isPending,onConfirm:B,onOpenChange:N,open:_,title:`Deregister Image`}),(0,I.jsx)(m,{onOpenChange:R,open:F,children:(0,I.jsxs)(x,{children:[(0,I.jsxs)(T,{children:[(0,I.jsx)(w,{children:`Promote to System Image`}),(0,I.jsxs)(D,{children:[`This will make “`,r.ImageId,`” visible to all accounts as a system image. This cannot be undone via the UI.`]})]}),(0,I.jsxs)(p,{children:[(0,I.jsx)(y,{children:`Cancel`}),(0,I.jsx)(g,{disabled:s.isPending,onClick:V,children:s.isPending?`Promoting…`:`Promote`})]})]})})]})}export{R as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id3.js b/spinifex/services/spinifexui/frontend/dist/assets/_id3.js index 4b7f9d163..1b51ebc1c 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id3.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id3.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{Qt as a,Xt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{c,i as l,n as u,s as d,t as f}from"./select.js";import{t as p}from"./rotate-cw.js";import{t as m}from"./trash-2.js";import{t as h}from"./button.js";import{a as g,c as _,i as v,s as y}from"./ec2.js";import{f as b}from"./iam2.js";import{D as x,Dn as S,Ht as C,Kt as w,Ln as T,Wt as E,Xn as D,Yt as O,Zn as k,_n as A,dn as j,en as M,fn as ee,mn as N,nn as P,rn as F,rt as I,sn as L,tn as R,ut as z}from"./index.js";import{a as B,i as V,l as H,n as U,o as W,r as G,s as K,t as q}from"./alert-dialog.js";import{t as J}from"./delete-confirmation-dialog.js";import{n as Y,t as X}from"./detail-row.js";import{t as te}from"./state-badge.js";import{t as ne}from"./ami-details.js";import{r as re}from"./admin.js";import{t as ie}from"./textarea.js";var ae=s(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),oe=s(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),se=s(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),ce=s(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),le=s(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),Z=t(n(),1),Q=e();function ue({instanceId:e,open:t,onOpenChange:n}){let r=z(),[i,a]=(0,Z.useState)(``),[o,s]=(0,Z.useState)(``),[c,l]=(0,Z.useState)(null);function u(e){e||(a(``),s(``),l(null)),n(e)}async function d(){try{let t=await r.mutateAsync({instanceId:e,name:i,description:o||void 0});l(t.ImageId??null),a(``),s(``)}catch{}}return(0,Q.jsx)(q,{onOpenChange:u,open:t,children:(0,Q.jsxs)(V,{children:[(0,Q.jsxs)(K,{children:[(0,Q.jsx)(H,{children:c?`Image Created`:`Create Image (AMI)`}),(0,Q.jsx)(B,{children:c?`Image "${c}" was created successfully.`:`Create an AMI from instance "${e}".`})]}),!c&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(F,{children:[(0,Q.jsx)(L,{children:(0,Q.jsx)(`label`,{htmlFor:`imageName`,children:`Name`})}),(0,Q.jsx)(T,{id:`imageName`,onChange:e=>a(e.target.value),placeholder:`my-image`,value:i})]}),(0,Q.jsxs)(F,{children:[(0,Q.jsx)(L,{children:(0,Q.jsx)(`label`,{htmlFor:`imageDescription`,children:`Description`})}),(0,Q.jsx)(ie,{id:`imageDescription`,onChange:e=>s(e.target.value),placeholder:`Optional description`,rows:2,value:o})]})]}),(0,Q.jsxs)(W,{children:[(0,Q.jsx)(G,{children:c?`Close`:`Cancel`}),!c&&(0,Q.jsx)(U,{disabled:r.isPending||!i.trim(),onClick:d,children:r.isPending?`Creating…`:`Create Image`})]})]})})}var $=r();function de(e){let t=(0,$.c)(22),{gpu:n}=e;if(!n)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(Y.Header,{children:`GPU`}),t[0]=r):r=t[0];let i;t[1]===n.model?i=t[2]:(i=(0,Q.jsx)(X,{label:`Model`,value:n.model}),t[1]=n.model,t[2]=i);let o;t[3]===n.vram_mib?o=t[4]:(o=a(n.vram_mib),t[3]=n.vram_mib,t[4]=o);let s;t[5]===o?s=t[6]:(s=(0,Q.jsx)(X,{label:`VRAM`,value:o}),t[5]=o,t[6]=s);let c=n.profile?`MIG slice`:`PCIe passthrough`,l;t[7]===c?l=t[8]:(l=(0,Q.jsx)(X,{label:`Attachment`,value:c}),t[7]=c,t[8]=l);let u;t[9]===n.profile?u=t[10]:(u=n.profile&&(0,Q.jsx)(X,{label:`Profile`,value:n.profile}),t[9]=n.profile,t[10]=u);let d;t[11]===n.mdev_path?d=t[12]:(d=n.mdev_path&&(0,Q.jsx)(X,{label:`Mdev path`,value:n.mdev_path}),t[11]=n.mdev_path,t[12]=d);let f;t[13]===n.pci_address?f=t[14]:(f=n.pci_address&&(0,Q.jsx)(X,{label:`PCI address`,value:n.pci_address}),t[13]=n.pci_address,t[14]=f);let p;return t[15]!==i||t[16]!==s||t[17]!==l||t[18]!==u||t[19]!==d||t[20]!==f?(p=(0,Q.jsxs)(Y,{children:[r,(0,Q.jsxs)(Y.Content,{children:[i,s,l,u,d,f]})]}),t[15]=i,t[16]=s,t[17]=l,t[18]=u,t[19]=d,t[20]=f,t[21]=p):p=t[21],p}function fe(e){let t=(0,$.c)(31),{instanceId:n}=e,r;t[0]===n?r=t[1]:(r=v(n),t[0]=n,t[1]=r);let{data:a}=k(r),{data:o}=k(b),s=I(),l=C(),[p,m]=(0,Z.useState)(``),g;t[2]===a?.IamInstanceProfileAssociations?g=t[3]:(g=a?.IamInstanceProfileAssociations?.find(me),t[2]=a?.IamInstanceProfileAssociations,t[3]=g);let _=g,y;t[4]===o?.InstanceProfiles?y=t[5]:(y=o?.InstanceProfiles??[],t[4]=o?.InstanceProfiles,t[5]=y);let x=y,S;t[6]!==s||t[7]!==n||t[8]!==p?(S=async()=>{p&&(await s.mutateAsync({instanceId:n,instanceProfileName:p}),m(``))},t[6]=s,t[7]=n,t[8]=p,t[9]=S):S=t[9];let w=S,T;t[10]!==_||t[11]!==l||t[12]!==n?(T=async()=>{_?.AssociationId&&await l.mutateAsync({associationId:_.AssociationId,instanceId:n})},t[10]=_,t[11]=l,t[12]=n,t[13]=T):T=t[13];let E=T,D;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Q.jsx)(Y.Header,{children:`IAM Role`}),t[14]=D):D=t[14];let O;t[15]===s.error?O=t[16]:(O=s.error&&(0,Q.jsx)(`div`,{className:`col-span-2`,children:(0,Q.jsx)(N,{error:s.error,msg:`Failed to associate instance profile`})}),t[15]=s.error,t[16]=O);let A;t[17]===l.error?A=t[18]:(A=l.error&&(0,Q.jsx)(`div`,{className:`col-span-2`,children:(0,Q.jsx)(N,{error:l.error,msg:`Failed to disassociate instance profile`})}),t[17]=l.error,t[18]=A);let j;t[19]!==s.isPending||t[20]!==_||t[21]!==l.isPending||t[22]!==w||t[23]!==E||t[24]!==x||t[25]!==p?(j=_?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(X,{label:`Instance Profile ARN`,value:_.IamInstanceProfile?.Arn}),(0,Q.jsx)(X,{label:`State`,value:(0,Q.jsx)(te,{state:_.State})}),(0,Q.jsx)(`div`,{className:`col-span-2 flex justify-end`,children:(0,Q.jsx)(h,{disabled:l.isPending,onClick:E,size:`sm`,variant:`destructive`,children:l.isPending?`Detaching…`:`Detach`})})]}):(0,Q.jsxs)(`div`,{className:`col-span-2 space-y-3`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No instance profile is associated. Associate one to flow role credentials to this instance via IMDS.`}),x.length>0?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(f,{onValueChange:e=>m(e??``),value:p,children:[(0,Q.jsx)(d,{className:`w-full`,children:(0,Q.jsx)(c,{placeholder:`Select an instance profile`})}),(0,Q.jsx)(u,{children:x.map(pe)})]}),(0,Q.jsx)(h,{disabled:!p||s.isPending,onClick:w,size:`sm`,children:s.isPending?`Associating…`:`Associate`})]}):(0,Q.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`No instance profiles exist.`,` `,(0,Q.jsx)(i,{className:`text-primary hover:underline`,to:`/iam/create-instance-profile`,children:`Create one`}),` `,`first.`]})]}),t[19]=s.isPending,t[20]=_,t[21]=l.isPending,t[22]=w,t[23]=E,t[24]=x,t[25]=p,t[26]=j):j=t[26];let M;return t[27]!==O||t[28]!==A||t[29]!==j?(M=(0,Q.jsxs)(Y,{children:[D,(0,Q.jsxs)(Y.Content,{children:[O,A,j]})]}),t[27]=O,t[28]=A,t[29]=j,t[30]=M):M=t[30],M}function pe(e){return(0,Q.jsx)(l,{value:e.InstanceProfileName??``,children:e.InstanceProfileName},e.InstanceProfileName)}function me(e){return e.State===`associating`||e.State===`associated`}var he=new Set([`pending`,`stopping`,`shutting-down`,`terminated`]);function ge(e){let t=(0,$.c)(43),{instanceId:n,state:r}=e,i=M(),a=R(),o=O(),s=P(),[c,l]=(0,Z.useState)(!1),u=he.has(r??``),d;t[0]!==n||t[1]!==s?(d=()=>{s.mutate(n,{onSettled:()=>l(!1)})},t[0]=n,t[1]=s,t[2]=d):d=t[2];let f=d;if(u&&r!==`terminated`){let e;return t[3]===r?e=t[4]:(e=(0,Q.jsx)(`div`,{className:`rounded-lg border bg-muted/50 p-4`,children:(0,Q.jsxs)(`p`,{className:`text-center text-sm text-muted-foreground`,children:[`Instance is `,r,`. Actions will be available once the operation completes.`]})}),t[3]=r,t[4]=e),e}if(r===`terminated`){let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`div`,{className:`rounded-lg border bg-muted/50 p-4`,children:(0,Q.jsx)(`p`,{className:`text-center text-sm text-muted-foreground`,children:`This instance has been terminated and cannot be managed.`})}),t[5]=e):e=t[5],e}let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(`h2`,{className:`mb-4 font-semibold`,children:`Instance Actions`}),t[6]=g):g=t[6];let _;t[7]===i.error?_=t[8]:(_=i.error&&(0,Q.jsx)(N,{error:i.error,msg:`Failed to start instance`}),t[7]=i.error,t[8]=_);let v;t[9]===a.error?v=t[10]:(v=a.error&&(0,Q.jsx)(N,{error:a.error,msg:`Failed to stop instance`}),t[9]=a.error,t[10]=v);let y;t[11]===o.error?y=t[12]:(y=o.error&&(0,Q.jsx)(N,{error:o.error,msg:`Failed to reboot instance`}),t[11]=o.error,t[12]=y);let b;t[13]===s.error?b=t[14]:(b=s.error&&(0,Q.jsx)(N,{error:s.error,msg:`Failed to terminate instance`}),t[13]=s.error,t[14]=b);let x;t[15]!==n||t[16]!==i||t[17]!==r?(x=r===`stopped`&&(0,Q.jsxs)(h,{disabled:i.isPending,onClick:()=>i.mutate(n),size:`sm`,variant:`default`,children:[(0,Q.jsx)(se,{className:`size-4`}),i.isPending?`Starting`:`Start`]}),t[15]=n,t[16]=i,t[17]=r,t[18]=x):x=t[18];let S;t[19]!==n||t[20]!==o||t[21]!==r||t[22]!==a?(S=r===`running`&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(h,{disabled:a.isPending,onClick:()=>a.mutate(n),size:`sm`,variant:`outline`,children:[(0,Q.jsx)(oe,{className:`size-4`}),a.isPending?`Stopping`:`Stop`]}),(0,Q.jsxs)(h,{disabled:o.isPending,onClick:()=>o.mutate(n),size:`sm`,variant:`outline`,children:[(0,Q.jsx)(p,{className:`size-4`}),o.isPending?`Rebooting`:`Reboot`]})]}),t[19]=n,t[20]=o,t[21]=r,t[22]=a,t[23]=S):S=t[23];let C;t[24]!==r||t[25]!==s.isPending?(C=(r===`stopped`||r===`running`)&&(0,Q.jsxs)(h,{disabled:s.isPending,onClick:()=>l(!0),size:`sm`,variant:`destructive`,children:[(0,Q.jsx)(m,{className:`size-4`}),s.isPending?`Terminating`:`Terminate`]}),t[24]=r,t[25]=s.isPending,t[26]=C):C=t[26];let w;t[27]!==x||t[28]!==S||t[29]!==C?(w=(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[x,S,C]}),t[27]=x,t[28]=S,t[29]=C,t[30]=w):w=t[30];let T=`Are you sure you want to terminate the instance "${n}"? This action cannot be undone.`,E;t[31]!==f||t[32]!==c||t[33]!==T||t[34]!==s.isPending?(E=(0,Q.jsx)(J,{confirmLabel:`Terminate`,description:T,isPending:s.isPending,onConfirm:f,onOpenChange:l,open:c,pendingLabel:`Terminating…`,title:`Terminate Instance`}),t[31]=f,t[32]=c,t[33]=T,t[34]=s.isPending,t[35]=E):E=t[35];let D;return t[36]!==w||t[37]!==E||t[38]!==_||t[39]!==v||t[40]!==y||t[41]!==b?(D=(0,Q.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[g,_,v,y,b,w,E]}),t[36]=w,t[37]=E,t[38]=_,t[39]=v,t[40]=y,t[41]=b,t[42]=D):D=t[42],D}function _e(){let{id:e}=x.useParams(),{isAdmin:t}=S(),{data:n}=D(y(e)),r=n.Reservations?.[0]?.Instances?.[0],{data:a}=D(g(r?.ImageId)),s=a?.Images?.[0],{data:c}=D(_),{data:l}=k({...re,enabled:t,refetchInterval:5e3}),u=l?.vms?.find(t=>t.instance_id===e),d=w(),f=E(),[p,m]=(0,Z.useState)(!1),[v,b]=(0,Z.useState)(``),[C,T]=(0,Z.useState)(!1),[O,M]=(0,Z.useState)(null),[P,I]=(0,Z.useState)(!1);if(!r?.InstanceId)return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(A,{to:`/ec2/describe-instances`,children:`Back to instances`}),(0,Q.jsx)(`p`,{className:`text-muted-foreground`,children:`Instance not found.`})]});let R=o(r.LaunchTime),z=r.State?.Name===`running`,J=r.State?.Name===`stopped`;async function ie(){try{await d.mutateAsync({instanceId:e,instanceType:v}),m(!1),b(``)}catch{}}async function oe(){try{let t=await f.mutateAsync(e),n=t.Output?atob(t.Output):`(no output)`;M(n),T(!0)}catch{}}return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(A,{to:`/ec2/describe-instances`,children:`Back to instances`}),d.error&&(0,Q.jsx)(N,{error:d.error,msg:`Failed to modify instance`}),f.error&&(0,Q.jsx)(N,{error:f.error,msg:`Failed to get console output`}),(0,Q.jsxs)(`div`,{className:`space-y-6`,children:[(0,Q.jsx)(j,{actions:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[z&&(0,Q.jsxs)(h,{disabled:f.isPending,onClick:oe,size:`sm`,variant:`outline`,children:[(0,Q.jsx)(le,{className:`size-4`}),f.isPending?`Fetching…`:`View Console`]}),(z||J)&&(0,Q.jsxs)(h,{onClick:()=>I(!0),size:`sm`,variant:`outline`,children:[(0,Q.jsx)(ae,{className:`size-4`}),`Create Image`]}),J&&(0,Q.jsxs)(h,{onClick:()=>{b(r.InstanceType??``),m(!0)},size:`sm`,variant:`outline`,children:[(0,Q.jsx)(ce,{className:`size-4`}),`Modify Instance`]}),(0,Q.jsx)(te,{state:r.State?.Name})]}),subtitle:`Instance Details`,title:r.InstanceId}),(0,Q.jsx)(ge,{instanceId:r.InstanceId,state:r.State?.Name}),C&&O!==null&&(0,Q.jsxs)(Y,{children:[(0,Q.jsx)(Y.Header,{children:(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[`Console Output`,(0,Q.jsx)(h,{onClick:()=>{T(!1),M(null)},size:`sm`,variant:`ghost`,children:`Hide`})]})}),(0,Q.jsx)(`div`,{className:`p-4`,children:(0,Q.jsx)(`pre`,{className:`max-h-96 overflow-y-auto rounded bg-muted p-3 font-mono text-xs whitespace-pre-wrap`,children:O})})]}),(0,Q.jsxs)(Y,{children:[(0,Q.jsx)(Y.Header,{children:`Instance Information`}),(0,Q.jsxs)(Y.Content,{children:[(0,Q.jsx)(X,{label:`Instance ID`,value:r.InstanceId}),(0,Q.jsx)(X,{label:`Instance Type`,value:r.InstanceType}),(0,Q.jsx)(X,{label:`Instance State`,value:r.State?.Name}),(0,Q.jsx)(X,{label:`State Code`,value:r.State?.Code?.toString()}),(0,Q.jsx)(X,{label:`Launch Time`,value:R}),(0,Q.jsx)(X,{label:`Availability Zone`,value:r.Placement?.AvailabilityZone}),(0,Q.jsx)(X,{label:`Placement Group`,value:r.Placement?.GroupName?(0,Q.jsx)(i,{className:`text-primary hover:underline`,to:`/ec2/describe-placement-groups`,children:r.Placement.GroupName}):void 0})]})]}),(r.PrivateIpAddress||r.PublicIpAddress||r.VpcId||r.SubnetId||r.SecurityGroups&&r.SecurityGroups.length>0)&&(0,Q.jsxs)(Y,{children:[(0,Q.jsx)(Y.Header,{children:`Network & Security`}),(0,Q.jsxs)(Y.Content,{children:[(0,Q.jsx)(X,{label:`Private IP Address`,value:r.PrivateIpAddress}),(0,Q.jsx)(X,{label:`Public IP Address`,value:r.PublicIpAddress}),(0,Q.jsx)(X,{label:`Private DNS`,value:r.PrivateDnsName}),(0,Q.jsx)(X,{label:`Public DNS`,value:r.PublicDnsName}),(0,Q.jsx)(X,{label:`VPC ID`,value:r.VpcId?(0,Q.jsx)(i,{className:`text-primary hover:underline`,params:{id:r.VpcId},to:`/ec2/describe-vpcs/$id`,children:r.VpcId}):void 0}),(0,Q.jsx)(X,{label:`Subnet ID`,value:r.SubnetId?(0,Q.jsx)(i,{className:`text-primary hover:underline`,params:{id:r.SubnetId},to:`/ec2/describe-subnets/$id`,children:r.SubnetId}):void 0}),(0,Q.jsx)(X,{label:`Key Name`,value:r.KeyName}),(0,Q.jsx)(X,{label:`Security Groups`,value:r.SecurityGroups?.map(e=>e.GroupName).join(`, `)})]})]}),(0,Q.jsx)(fe,{instanceId:r.InstanceId}),t&&(0,Q.jsx)(de,{gpu:u?.gpu}),r.BlockDeviceMappings&&r.BlockDeviceMappings.length>0&&(0,Q.jsxs)(Y,{children:[(0,Q.jsx)(Y.Header,{children:`Block Device Mappings`}),r.BlockDeviceMappings.map(e=>(0,Q.jsxs)(Y.Content,{children:[(0,Q.jsx)(X,{label:`Device Name`,value:e.DeviceName}),(0,Q.jsx)(X,{label:`Volume ID`,value:e.Ebs?.VolumeId?(0,Q.jsx)(i,{className:`text-primary hover:underline`,params:{id:e.Ebs.VolumeId},to:`/ec2/describe-volumes/$id`,children:e.Ebs.VolumeId}):void 0}),(0,Q.jsx)(X,{label:`Status`,value:e.Ebs?.Status}),(0,Q.jsx)(X,{label:`Attach Time`,value:o(e.Ebs?.AttachTime)}),(0,Q.jsx)(X,{label:`Delete on Termination`,value:e.Ebs?.DeleteOnTermination?`Yes`:`No`})]},e.DeviceName))]}),s&&(0,Q.jsx)(ne,{image:s})]}),(0,Q.jsx)(q,{onOpenChange:e=>{e||(m(!1),b(``))},open:p,children:(0,Q.jsxs)(V,{children:[(0,Q.jsxs)(K,{children:[(0,Q.jsx)(H,{children:`Modify Instance`}),(0,Q.jsxs)(B,{children:[`Select a new instance type for "`,r.InstanceId,`". The instance must be stopped to modify its attributes.`]})]}),(0,Q.jsxs)(F,{children:[(0,Q.jsx)(L,{children:(0,Q.jsx)(`label`,{htmlFor:`instanceType`,children:`Instance Type`})}),(0,Q.jsx)(ee,{className:`w-full`,id:`instanceType`,instanceTypes:c.InstanceTypes??[],onValueChange:b,value:v})]}),(0,Q.jsxs)(W,{children:[(0,Q.jsx)(G,{children:`Cancel`}),(0,Q.jsx)(U,{disabled:d.isPending||!v||v===r.InstanceType,onClick:ie,children:d.isPending?`Saving…`:`Save Changes`})]})]})}),(0,Q.jsx)(ue,{instanceId:r.InstanceId,onOpenChange:I,open:P})]})}export{_e as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{Qt as a,Xt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{c,i as l,n as u,s as d,t as f}from"./select.js";import{t as p}from"./rotate-cw.js";import{t as m}from"./trash-2.js";import{t as h}from"./button.js";import{a as g,c as _,i as v,s as y}from"./ec2.js";import{f as b}from"./iam2.js";import{$n as x,B as S,D as C,F as w,Fn as T,I as E,L as D,Qt as O,R as k,Rn as A,Sn as j,Tn as M,U as N,V as P,Xt as F,bn as ee,cn as I,dn as L,en as te,er as R,ft as z,hn as B,ln as V,rn as H,un as ne,yn as re,yt as U,z as W}from"./index.js";import{t as G}from"./delete-confirmation-dialog.js";import{n as K,t as q}from"./detail-row.js";import{t as J}from"./state-badge.js";import{t as ie}from"./ami-details.js";import{r as ae}from"./admin.js";import{t as Y}from"./textarea.js";var oe=s(`image-plus`,[[`path`,{d:`M16 5h6`,key:`1vod17`}],[`path`,{d:`M19 2v6`,key:`4bpg5p`}],[`path`,{d:`M21 11.5V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h7.5`,key:`1ue2ih`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}]]),X=s(`pause`,[[`rect`,{x:`14`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`kaeet6`}],[`rect`,{x:`5`,y:`3`,width:`5`,height:`18`,rx:`1`,key:`1wsw3u`}]]),se=s(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),ce=s(`settings-2`,[[`path`,{d:`M14 17H5`,key:`gfn3mx`}],[`path`,{d:`M19 7h-9`,key:`6i9tg`}],[`circle`,{cx:`17`,cy:`17`,r:`3`,key:`18b49y`}],[`circle`,{cx:`7`,cy:`7`,r:`3`,key:`dfmy0x`}]]),le=s(`terminal`,[[`path`,{d:`M12 19h8`,key:`baeox8`}],[`path`,{d:`m4 17 6-6-6-6`,key:`1yngyt`}]]),Z=t(n(),1),Q=e();function ue({instanceId:e,open:t,onOpenChange:n}){let r=U(),[i,a]=(0,Z.useState)(``),[o,s]=(0,Z.useState)(``),[c,l]=(0,Z.useState)(null);function u(e){e||(a(``),s(``),l(null)),n(e)}async function d(){try{let t=await r.mutateAsync({instanceId:e,name:i,description:o||void 0});l(t.ImageId??null),a(``),s(``)}catch{}}return(0,Q.jsx)(w,{onOpenChange:u,open:t,children:(0,Q.jsxs)(k,{children:[(0,Q.jsxs)(P,{children:[(0,Q.jsx)(N,{children:c?`Image Created`:`Create Image (AMI)`}),(0,Q.jsx)(W,{children:c?`Image "${c}" was created successfully.`:`Create an AMI from instance "${e}".`})]}),!c&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(L,{children:[(0,Q.jsx)(B,{children:(0,Q.jsx)(`label`,{htmlFor:`imageName`,children:`Name`})}),(0,Q.jsx)(A,{id:`imageName`,onChange:e=>a(e.target.value),placeholder:`my-image`,value:i})]}),(0,Q.jsxs)(L,{children:[(0,Q.jsx)(B,{children:(0,Q.jsx)(`label`,{htmlFor:`imageDescription`,children:`Description`})}),(0,Q.jsx)(Y,{id:`imageDescription`,onChange:e=>s(e.target.value),placeholder:`Optional description`,rows:2,value:o})]})]}),(0,Q.jsxs)(S,{children:[(0,Q.jsx)(D,{children:c?`Close`:`Cancel`}),!c&&(0,Q.jsx)(E,{disabled:r.isPending||!i.trim(),onClick:d,children:r.isPending?`Creating…`:`Create Image`})]})]})})}var $=r();function de(e){let t=(0,$.c)(22),{gpu:n}=e;if(!n)return null;let r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Q.jsx)(K.Header,{children:`GPU`}),t[0]=r):r=t[0];let i;t[1]===n.model?i=t[2]:(i=(0,Q.jsx)(q,{label:`Model`,value:n.model}),t[1]=n.model,t[2]=i);let o;t[3]===n.vram_mib?o=t[4]:(o=a(n.vram_mib),t[3]=n.vram_mib,t[4]=o);let s;t[5]===o?s=t[6]:(s=(0,Q.jsx)(q,{label:`VRAM`,value:o}),t[5]=o,t[6]=s);let c=n.profile?`MIG slice`:`PCIe passthrough`,l;t[7]===c?l=t[8]:(l=(0,Q.jsx)(q,{label:`Attachment`,value:c}),t[7]=c,t[8]=l);let u;t[9]===n.profile?u=t[10]:(u=n.profile&&(0,Q.jsx)(q,{label:`Profile`,value:n.profile}),t[9]=n.profile,t[10]=u);let d;t[11]===n.mdev_path?d=t[12]:(d=n.mdev_path&&(0,Q.jsx)(q,{label:`Mdev path`,value:n.mdev_path}),t[11]=n.mdev_path,t[12]=d);let f;t[13]===n.pci_address?f=t[14]:(f=n.pci_address&&(0,Q.jsx)(q,{label:`PCI address`,value:n.pci_address}),t[13]=n.pci_address,t[14]=f);let p;return t[15]!==i||t[16]!==s||t[17]!==l||t[18]!==u||t[19]!==d||t[20]!==f?(p=(0,Q.jsxs)(K,{children:[r,(0,Q.jsxs)(K.Content,{children:[i,s,l,u,d,f]})]}),t[15]=i,t[16]=s,t[17]=l,t[18]=u,t[19]=d,t[20]=f,t[21]=p):p=t[21],p}function fe(e){let t=(0,$.c)(31),{instanceId:n}=e,r;t[0]===n?r=t[1]:(r=v(n),t[0]=n,t[1]=r);let{data:a}=R(r),{data:o}=R(b),s=z(),l=F(),[p,m]=(0,Z.useState)(``),g;t[2]===a?.IamInstanceProfileAssociations?g=t[3]:(g=a?.IamInstanceProfileAssociations?.find(me),t[2]=a?.IamInstanceProfileAssociations,t[3]=g);let _=g,y;t[4]===o?.InstanceProfiles?y=t[5]:(y=o?.InstanceProfiles??[],t[4]=o?.InstanceProfiles,t[5]=y);let x=y,S;t[6]!==s||t[7]!==n||t[8]!==p?(S=async()=>{p&&(await s.mutateAsync({instanceId:n,instanceProfileName:p}),m(``))},t[6]=s,t[7]=n,t[8]=p,t[9]=S):S=t[9];let C=S,w;t[10]!==_||t[11]!==l||t[12]!==n?(w=async()=>{_?.AssociationId&&await l.mutateAsync({associationId:_.AssociationId,instanceId:n})},t[10]=_,t[11]=l,t[12]=n,t[13]=w):w=t[13];let T=w,E;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,Q.jsx)(K.Header,{children:`IAM Role`}),t[14]=E):E=t[14];let D;t[15]===s.error?D=t[16]:(D=s.error&&(0,Q.jsx)(`div`,{className:`col-span-2`,children:(0,Q.jsx)(j,{error:s.error,msg:`Failed to associate instance profile`})}),t[15]=s.error,t[16]=D);let O;t[17]===l.error?O=t[18]:(O=l.error&&(0,Q.jsx)(`div`,{className:`col-span-2`,children:(0,Q.jsx)(j,{error:l.error,msg:`Failed to disassociate instance profile`})}),t[17]=l.error,t[18]=O);let k;t[19]!==s.isPending||t[20]!==_||t[21]!==l.isPending||t[22]!==C||t[23]!==T||t[24]!==x||t[25]!==p?(k=_?(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(q,{label:`Instance Profile ARN`,value:_.IamInstanceProfile?.Arn}),(0,Q.jsx)(q,{label:`State`,value:(0,Q.jsx)(J,{state:_.State})}),(0,Q.jsx)(`div`,{className:`col-span-2 flex justify-end`,children:(0,Q.jsx)(h,{disabled:l.isPending,onClick:T,size:`sm`,variant:`destructive`,children:l.isPending?`Detaching…`:`Detach`})})]}):(0,Q.jsxs)(`div`,{className:`col-span-2 space-y-3`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No instance profile is associated. Associate one to flow role credentials to this instance via IMDS.`}),x.length>0?(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Q.jsxs)(f,{onValueChange:e=>m(e??``),value:p,children:[(0,Q.jsx)(d,{className:`w-full`,children:(0,Q.jsx)(c,{placeholder:`Select an instance profile`})}),(0,Q.jsx)(u,{children:x.map(pe)})]}),(0,Q.jsx)(h,{disabled:!p||s.isPending,onClick:C,size:`sm`,children:s.isPending?`Associating…`:`Associate`})]}):(0,Q.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`No instance profiles exist.`,` `,(0,Q.jsx)(i,{className:`text-primary hover:underline`,to:`/iam/create-instance-profile`,children:`Create one`}),` `,`first.`]})]}),t[19]=s.isPending,t[20]=_,t[21]=l.isPending,t[22]=C,t[23]=T,t[24]=x,t[25]=p,t[26]=k):k=t[26];let A;return t[27]!==D||t[28]!==O||t[29]!==k?(A=(0,Q.jsxs)(K,{children:[E,(0,Q.jsxs)(K.Content,{children:[D,O,k]})]}),t[27]=D,t[28]=O,t[29]=k,t[30]=A):A=t[30],A}function pe(e){return(0,Q.jsx)(l,{value:e.InstanceProfileName??``,children:e.InstanceProfileName},e.InstanceProfileName)}function me(e){return e.State===`associating`||e.State===`associated`}var he=new Set([`pending`,`stopping`,`shutting-down`,`terminated`]);function ge(e){let t=(0,$.c)(43),{instanceId:n,state:r}=e,i=I(),a=V(),o=H(),s=ne(),[c,l]=(0,Z.useState)(!1),u=he.has(r??``),d;t[0]!==n||t[1]!==s?(d=()=>{s.mutate(n,{onSettled:()=>l(!1)})},t[0]=n,t[1]=s,t[2]=d):d=t[2];let f=d;if(u&&r!==`terminated`){let e;return t[3]===r?e=t[4]:(e=(0,Q.jsx)(`div`,{className:`rounded-lg border bg-muted/50 p-4`,children:(0,Q.jsxs)(`p`,{className:`text-center text-sm text-muted-foreground`,children:[`Instance is `,r,`. Actions will be available once the operation completes.`]})}),t[3]=r,t[4]=e),e}if(r===`terminated`){let e;return t[5]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,Q.jsx)(`div`,{className:`rounded-lg border bg-muted/50 p-4`,children:(0,Q.jsx)(`p`,{className:`text-center text-sm text-muted-foreground`,children:`This instance has been terminated and cannot be managed.`})}),t[5]=e):e=t[5],e}let g;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Q.jsx)(`h2`,{className:`mb-4 font-semibold`,children:`Instance Actions`}),t[6]=g):g=t[6];let _;t[7]===i.error?_=t[8]:(_=i.error&&(0,Q.jsx)(j,{error:i.error,msg:`Failed to start instance`}),t[7]=i.error,t[8]=_);let v;t[9]===a.error?v=t[10]:(v=a.error&&(0,Q.jsx)(j,{error:a.error,msg:`Failed to stop instance`}),t[9]=a.error,t[10]=v);let y;t[11]===o.error?y=t[12]:(y=o.error&&(0,Q.jsx)(j,{error:o.error,msg:`Failed to reboot instance`}),t[11]=o.error,t[12]=y);let b;t[13]===s.error?b=t[14]:(b=s.error&&(0,Q.jsx)(j,{error:s.error,msg:`Failed to terminate instance`}),t[13]=s.error,t[14]=b);let x;t[15]!==n||t[16]!==i||t[17]!==r?(x=r===`stopped`&&(0,Q.jsxs)(h,{disabled:i.isPending,onClick:()=>i.mutate(n),size:`sm`,variant:`default`,children:[(0,Q.jsx)(se,{className:`size-4`}),i.isPending?`Starting`:`Start`]}),t[15]=n,t[16]=i,t[17]=r,t[18]=x):x=t[18];let S;t[19]!==n||t[20]!==o||t[21]!==r||t[22]!==a?(S=r===`running`&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsxs)(h,{disabled:a.isPending,onClick:()=>a.mutate(n),size:`sm`,variant:`outline`,children:[(0,Q.jsx)(X,{className:`size-4`}),a.isPending?`Stopping`:`Stop`]}),(0,Q.jsxs)(h,{disabled:o.isPending,onClick:()=>o.mutate(n),size:`sm`,variant:`outline`,children:[(0,Q.jsx)(p,{className:`size-4`}),o.isPending?`Rebooting`:`Reboot`]})]}),t[19]=n,t[20]=o,t[21]=r,t[22]=a,t[23]=S):S=t[23];let C;t[24]!==r||t[25]!==s.isPending?(C=(r===`stopped`||r===`running`)&&(0,Q.jsxs)(h,{disabled:s.isPending,onClick:()=>l(!0),size:`sm`,variant:`destructive`,children:[(0,Q.jsx)(m,{className:`size-4`}),s.isPending?`Terminating`:`Terminate`]}),t[24]=r,t[25]=s.isPending,t[26]=C):C=t[26];let w;t[27]!==x||t[28]!==S||t[29]!==C?(w=(0,Q.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[x,S,C]}),t[27]=x,t[28]=S,t[29]=C,t[30]=w):w=t[30];let T=`Are you sure you want to terminate the instance "${n}"? This action cannot be undone.`,E;t[31]!==f||t[32]!==c||t[33]!==T||t[34]!==s.isPending?(E=(0,Q.jsx)(G,{confirmLabel:`Terminate`,description:T,isPending:s.isPending,onConfirm:f,onOpenChange:l,open:c,pendingLabel:`Terminating…`,title:`Terminate Instance`}),t[31]=f,t[32]=c,t[33]=T,t[34]=s.isPending,t[35]=E):E=t[35];let D;return t[36]!==w||t[37]!==E||t[38]!==_||t[39]!==v||t[40]!==y||t[41]!==b?(D=(0,Q.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[g,_,v,y,b,w,E]}),t[36]=w,t[37]=E,t[38]=_,t[39]=v,t[40]=y,t[41]=b,t[42]=D):D=t[42],D}function _e(){let{id:e}=C.useParams(),{isAdmin:t}=T(),{data:n}=x(y(e)),r=n.Reservations?.[0]?.Instances?.[0],{data:a}=x(g(r?.ImageId)),s=a?.Images?.[0],{data:c}=x(_),{data:l}=R({...ae,enabled:t,refetchInterval:5e3}),u=l?.vms?.find(t=>t.instance_id===e),d=te(),f=O(),[p,m]=(0,Z.useState)(!1),[v,b]=(0,Z.useState)(``),[A,F]=(0,Z.useState)(!1),[I,z]=(0,Z.useState)(null),[V,H]=(0,Z.useState)(!1);if(!r?.InstanceId)return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(M,{to:`/ec2/describe-instances`,children:`Back to instances`}),(0,Q.jsx)(`p`,{className:`text-muted-foreground`,children:`Instance not found.`})]});let ne=o(r.LaunchTime),U=r.State?.Name===`running`,G=r.State?.Name===`stopped`;async function Y(){try{await d.mutateAsync({instanceId:e,instanceType:v}),m(!1),b(``)}catch{}}async function X(){try{let t=await f.mutateAsync(e),n=t.Output?atob(t.Output):`(no output)`;z(n),F(!0)}catch{}}return(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(M,{to:`/ec2/describe-instances`,children:`Back to instances`}),d.error&&(0,Q.jsx)(j,{error:d.error,msg:`Failed to modify instance`}),f.error&&(0,Q.jsx)(j,{error:f.error,msg:`Failed to get console output`}),(0,Q.jsxs)(`div`,{className:`space-y-6`,children:[(0,Q.jsx)(re,{actions:(0,Q.jsxs)(`div`,{className:`flex items-center gap-2`,children:[U&&(0,Q.jsxs)(h,{disabled:f.isPending,onClick:X,size:`sm`,variant:`outline`,children:[(0,Q.jsx)(le,{className:`size-4`}),f.isPending?`Fetching…`:`View Console`]}),(U||G)&&(0,Q.jsxs)(h,{onClick:()=>H(!0),size:`sm`,variant:`outline`,children:[(0,Q.jsx)(oe,{className:`size-4`}),`Create Image`]}),G&&(0,Q.jsxs)(h,{onClick:()=>{b(r.InstanceType??``),m(!0)},size:`sm`,variant:`outline`,children:[(0,Q.jsx)(ce,{className:`size-4`}),`Modify Instance`]}),(0,Q.jsx)(J,{state:r.State?.Name})]}),subtitle:`Instance Details`,title:r.InstanceId}),(0,Q.jsx)(ge,{instanceId:r.InstanceId,state:r.State?.Name}),A&&I!==null&&(0,Q.jsxs)(K,{children:[(0,Q.jsx)(K.Header,{children:(0,Q.jsxs)(`div`,{className:`flex items-center justify-between`,children:[`Console Output`,(0,Q.jsx)(h,{onClick:()=>{F(!1),z(null)},size:`sm`,variant:`ghost`,children:`Hide`})]})}),(0,Q.jsx)(`div`,{className:`p-4`,children:(0,Q.jsx)(`pre`,{className:`max-h-96 overflow-y-auto rounded bg-muted p-3 font-mono text-xs whitespace-pre-wrap`,children:I})})]}),(0,Q.jsxs)(K,{children:[(0,Q.jsx)(K.Header,{children:`Instance Information`}),(0,Q.jsxs)(K.Content,{children:[(0,Q.jsx)(q,{label:`Instance ID`,value:r.InstanceId}),(0,Q.jsx)(q,{label:`Instance Type`,value:r.InstanceType}),(0,Q.jsx)(q,{label:`Instance State`,value:r.State?.Name}),(0,Q.jsx)(q,{label:`State Code`,value:r.State?.Code?.toString()}),(0,Q.jsx)(q,{label:`Launch Time`,value:ne}),(0,Q.jsx)(q,{label:`Availability Zone`,value:r.Placement?.AvailabilityZone}),(0,Q.jsx)(q,{label:`Placement Group`,value:r.Placement?.GroupName?(0,Q.jsx)(i,{className:`text-primary hover:underline`,to:`/ec2/describe-placement-groups`,children:r.Placement.GroupName}):void 0})]})]}),(r.PrivateIpAddress||r.PublicIpAddress||r.VpcId||r.SubnetId||r.SecurityGroups&&r.SecurityGroups.length>0)&&(0,Q.jsxs)(K,{children:[(0,Q.jsx)(K.Header,{children:`Network & Security`}),(0,Q.jsxs)(K.Content,{children:[(0,Q.jsx)(q,{label:`Private IP Address`,value:r.PrivateIpAddress}),(0,Q.jsx)(q,{label:`Public IP Address`,value:r.PublicIpAddress}),(0,Q.jsx)(q,{label:`Private DNS`,value:r.PrivateDnsName}),(0,Q.jsx)(q,{label:`Public DNS`,value:r.PublicDnsName}),(0,Q.jsx)(q,{label:`VPC ID`,value:r.VpcId?(0,Q.jsx)(i,{className:`text-primary hover:underline`,params:{id:r.VpcId},to:`/ec2/describe-vpcs/$id`,children:r.VpcId}):void 0}),(0,Q.jsx)(q,{label:`Subnet ID`,value:r.SubnetId?(0,Q.jsx)(i,{className:`text-primary hover:underline`,params:{id:r.SubnetId},to:`/ec2/describe-subnets/$id`,children:r.SubnetId}):void 0}),(0,Q.jsx)(q,{label:`Key Name`,value:r.KeyName}),(0,Q.jsx)(q,{label:`Security Groups`,value:r.SecurityGroups?.map(e=>e.GroupName).join(`, `)})]})]}),(0,Q.jsx)(fe,{instanceId:r.InstanceId}),t&&(0,Q.jsx)(de,{gpu:u?.gpu}),r.BlockDeviceMappings&&r.BlockDeviceMappings.length>0&&(0,Q.jsxs)(K,{children:[(0,Q.jsx)(K.Header,{children:`Block Device Mappings`}),r.BlockDeviceMappings.map(e=>(0,Q.jsxs)(K.Content,{children:[(0,Q.jsx)(q,{label:`Device Name`,value:e.DeviceName}),(0,Q.jsx)(q,{label:`Volume ID`,value:e.Ebs?.VolumeId?(0,Q.jsx)(i,{className:`text-primary hover:underline`,params:{id:e.Ebs.VolumeId},to:`/ec2/describe-volumes/$id`,children:e.Ebs.VolumeId}):void 0}),(0,Q.jsx)(q,{label:`Status`,value:e.Ebs?.Status}),(0,Q.jsx)(q,{label:`Attach Time`,value:o(e.Ebs?.AttachTime)}),(0,Q.jsx)(q,{label:`Delete on Termination`,value:e.Ebs?.DeleteOnTermination?`Yes`:`No`})]},e.DeviceName))]}),s&&(0,Q.jsx)(ie,{image:s})]}),(0,Q.jsx)(w,{onOpenChange:e=>{e||(m(!1),b(``))},open:p,children:(0,Q.jsxs)(k,{children:[(0,Q.jsxs)(P,{children:[(0,Q.jsx)(N,{children:`Modify Instance`}),(0,Q.jsxs)(W,{children:[`Select a new instance type for "`,r.InstanceId,`". The instance must be stopped to modify its attributes.`]})]}),(0,Q.jsxs)(L,{children:[(0,Q.jsx)(B,{children:(0,Q.jsx)(`label`,{htmlFor:`instanceType`,children:`Instance Type`})}),(0,Q.jsx)(ee,{className:`w-full`,id:`instanceType`,instanceTypes:c.InstanceTypes??[],onValueChange:b,value:v})]}),(0,Q.jsxs)(S,{children:[(0,Q.jsx)(D,{children:`Cancel`}),(0,Q.jsx)(E,{disabled:d.isPending||!v||v===r.InstanceType,onClick:Y,children:d.isPending?`Saving…`:`Save Changes`})]})]})}),(0,Q.jsx)(ue,{instanceId:r.InstanceId,onOpenChange:H,open:V})]})}export{_e as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id4.js b/spinifex/services/spinifexui/frontend/dist/assets/_id4.js index b1cf0a34b..c934a251d 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id4.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id4.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{c as o,i as s,n as c,s as l,t as u}from"./select.js";import{t as d}from"./trash-2.js";import{t as f}from"./button.js";import{M as p,u as m}from"./ec2.js";import{E as h,Tt as g,Xn as _,_n as v,at as y,dn as b,mn as x,zt as S}from"./index.js";import{t as C}from"./delete-confirmation-dialog.js";import{n as w,t as T}from"./detail-row.js";var E=t(n()),D=e();function O(){let{id:e}=h.useParams(),t=i(),{data:n}=_(m(e)),{data:O}=_(p),k=y(),A=S(),j=g(),[M,N]=(0,E.useState)(!1),[P,F]=(0,E.useState)(``),I=n.InternetGateways?.[0],L=O.Vpcs??[],R=async()=>{try{await j.mutateAsync(e),t({to:`/ec2/describe-internet-gateways`})}finally{N(!1)}},z=async()=>{P&&await k.mutateAsync({internetGatewayId:e,vpcId:P})},B=async t=>{await A.mutateAsync({internetGatewayId:e,vpcId:t})};if(!I?.InternetGatewayId)return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(v,{to:`/ec2/describe-internet-gateways`,children:`Back to Internet Gateways`}),(0,D.jsx)(`p`,{className:`text-muted-foreground`,children:`Internet Gateway not found.`})]});let V=I.Attachments?.[0],H=!!V?.VpcId,U=a(I.Tags);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(v,{to:`/ec2/describe-internet-gateways`,children:`Back to Internet Gateways`}),(j.error??k.error??A.error)&&(0,D.jsx)(x,{error:j.error??k.error??A.error??void 0,msg:`Internet Gateway action failed`}),(0,D.jsxs)(`div`,{className:`space-y-6`,children:[(0,D.jsx)(b,{actions:(0,D.jsxs)(f,{disabled:H||j.isPending,onClick:()=>N(!0),size:`sm`,variant:`destructive`,children:[(0,D.jsx)(d,{className:`size-4`}),`Delete`]}),subtitle:`Internet Gateway Details`,title:U?`${I.InternetGatewayId} (${U})`:I.InternetGatewayId}),(0,D.jsxs)(w,{children:[(0,D.jsx)(w.Header,{children:`Internet Gateway Information`}),(0,D.jsxs)(w.Content,{children:[(0,D.jsx)(T,{label:`Internet Gateway ID`,value:I.InternetGatewayId}),(0,D.jsx)(T,{label:`Owner ID`,value:I.OwnerId??`—`}),(0,D.jsx)(T,{label:`State`,value:V?.State??`detached`})]})]}),(0,D.jsxs)(w,{children:[(0,D.jsx)(w.Header,{children:`VPC Attachment`}),(0,D.jsx)(w.Content,{children:H?(0,D.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,D.jsx)(r,{className:`text-primary hover:underline`,params:{id:V.VpcId??``},to:`/ec2/describe-vpcs/$id`,children:V.VpcId}),(0,D.jsx)(f,{disabled:A.isPending,onClick:async()=>await B(V.VpcId??``),size:`sm`,variant:`outline`,children:`Detach`})]}):(0,D.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,D.jsx)(`div`,{className:`flex-1`,children:(0,D.jsxs)(u,{onValueChange:e=>F(e??``),value:P,children:[(0,D.jsx)(l,{className:`w-full`,children:(0,D.jsx)(o,{placeholder:`Select a VPC`})}),(0,D.jsx)(c,{children:L.map(e=>{let t=a(e.Tags);return(0,D.jsx)(s,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)})})]})}),(0,D.jsx)(f,{disabled:!P||k.isPending,onClick:z,size:`sm`,children:`Attach`})]})})]})]}),(0,D.jsx)(C,{description:`Are you sure you want to delete the Internet Gateway "${I.InternetGatewayId}"? This action cannot be undone.`,isPending:j.isPending,onConfirm:R,onOpenChange:N,open:M,title:`Delete Internet Gateway`})]})}export{O as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{c as o,i as s,n as c,s as l,t as u}from"./select.js";import{t as d}from"./trash-2.js";import{t as f}from"./button.js";import{M as p,u as m}from"./ec2.js";import{$n as h,E as g,Nt as _,Sn as v,Tn as y,mt as b,qt as x,yn as S}from"./index.js";import{t as C}from"./delete-confirmation-dialog.js";import{n as w,t as T}from"./detail-row.js";var E=t(n()),D=e();function O(){let{id:e}=g.useParams(),t=i(),{data:n}=h(m(e)),{data:O}=h(p),k=b(),A=x(),j=_(),[M,N]=(0,E.useState)(!1),[P,F]=(0,E.useState)(``),I=n.InternetGateways?.[0],L=O.Vpcs??[],R=async()=>{try{await j.mutateAsync(e),t({to:`/ec2/describe-internet-gateways`})}finally{N(!1)}},z=async()=>{P&&await k.mutateAsync({internetGatewayId:e,vpcId:P})},B=async t=>{await A.mutateAsync({internetGatewayId:e,vpcId:t})};if(!I?.InternetGatewayId)return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(y,{to:`/ec2/describe-internet-gateways`,children:`Back to Internet Gateways`}),(0,D.jsx)(`p`,{className:`text-muted-foreground`,children:`Internet Gateway not found.`})]});let V=I.Attachments?.[0],H=!!V?.VpcId,U=a(I.Tags);return(0,D.jsxs)(D.Fragment,{children:[(0,D.jsx)(y,{to:`/ec2/describe-internet-gateways`,children:`Back to Internet Gateways`}),(j.error??k.error??A.error)&&(0,D.jsx)(v,{error:j.error??k.error??A.error??void 0,msg:`Internet Gateway action failed`}),(0,D.jsxs)(`div`,{className:`space-y-6`,children:[(0,D.jsx)(S,{actions:(0,D.jsxs)(f,{disabled:H||j.isPending,onClick:()=>N(!0),size:`sm`,variant:`destructive`,children:[(0,D.jsx)(d,{className:`size-4`}),`Delete`]}),subtitle:`Internet Gateway Details`,title:U?`${I.InternetGatewayId} (${U})`:I.InternetGatewayId}),(0,D.jsxs)(w,{children:[(0,D.jsx)(w.Header,{children:`Internet Gateway Information`}),(0,D.jsxs)(w.Content,{children:[(0,D.jsx)(T,{label:`Internet Gateway ID`,value:I.InternetGatewayId}),(0,D.jsx)(T,{label:`Owner ID`,value:I.OwnerId??`—`}),(0,D.jsx)(T,{label:`State`,value:V?.State??`detached`})]})]}),(0,D.jsxs)(w,{children:[(0,D.jsx)(w.Header,{children:`VPC Attachment`}),(0,D.jsx)(w.Content,{children:H?(0,D.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,D.jsx)(r,{className:`text-primary hover:underline`,params:{id:V.VpcId??``},to:`/ec2/describe-vpcs/$id`,children:V.VpcId}),(0,D.jsx)(f,{disabled:A.isPending,onClick:async()=>await B(V.VpcId??``),size:`sm`,variant:`outline`,children:`Detach`})]}):(0,D.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,D.jsx)(`div`,{className:`flex-1`,children:(0,D.jsxs)(u,{onValueChange:e=>F(e??``),value:P,children:[(0,D.jsx)(l,{className:`w-full`,children:(0,D.jsx)(o,{placeholder:`Select a VPC`})}),(0,D.jsx)(c,{children:L.map(e=>{let t=a(e.Tags);return(0,D.jsx)(s,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)})})]})}),(0,D.jsx)(f,{disabled:!P||k.isPending,onClick:z,size:`sm`,children:`Attach`})]})})]})]}),(0,D.jsx)(C,{description:`Are you sure you want to delete the Internet Gateway "${I.InternetGatewayId}"? This action cannot be undone.`,isPending:j.isPending,onConfirm:R,onOpenChange:N,open:M,title:`Delete Internet Gateway`})]})}export{O as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id5.js b/spinifex/services/spinifexui/frontend/dist/assets/_id5.js index a3403e550..b6390eed4 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id5.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id5.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./useNavigate.js";import{Xt as i}from"./auth.js";import{t as a}from"./trash-2.js";import{t as o}from"./button.js";import{f as s}from"./ec2.js";import{Et as c,T as l,Xn as u,_n as d,dn as f,mn as p}from"./index.js";import{t as m}from"./delete-confirmation-dialog.js";import{n as h,t as g}from"./detail-row.js";var _=t(n()),v=e();function y(){let{id:e}=l.useParams(),t=r(),{data:n}=u(s(e)),y=n.KeyPairs?.[0],b=c(),[x,S]=(0,_.useState)(!1),C=async()=>{try{await b.mutateAsync(e),t({to:`/ec2/describe-key-pairs`})}finally{S(!1)}};if(!y?.KeyPairId)return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(d,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),(0,v.jsx)(`p`,{className:`text-muted-foreground`,children:`Key pair not found.`})]});let w=i(y.CreateTime);return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(d,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),b.error&&(0,v.jsx)(p,{error:b.error,msg:`Failed to delete key pair`}),(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsx)(f,{actions:(0,v.jsxs)(o,{onClick:()=>S(!0),size:`sm`,variant:`destructive`,children:[(0,v.jsx)(a,{className:`size-4`}),`Delete`]}),subtitle:`Key Pair Details`,title:y.KeyName??``}),(0,v.jsxs)(h,{children:[(0,v.jsx)(h.Header,{children:`Key Pair Information`}),(0,v.jsxs)(h.Content,{children:[(0,v.jsx)(g,{label:`Key Pair ID`,value:y.KeyPairId}),(0,v.jsx)(g,{label:`Key Name`,value:y.KeyName}),(0,v.jsx)(g,{label:`Key Type`,value:y.KeyType}),(0,v.jsx)(g,{label:`Key Fingerprint`,value:y.KeyFingerprint}),(0,v.jsx)(g,{label:`Creation Date`,value:w})]})]}),y.Tags&&y.Tags.length>0&&(0,v.jsxs)(h,{children:[(0,v.jsx)(h.Header,{children:`Tags`}),(0,v.jsx)(h.Content,{children:y.Tags.map(e=>(0,v.jsx)(g,{label:e.Key??``,value:e.Value},e.Key))})]})]}),(0,v.jsx)(m,{description:`Are you sure you want to delete the key pair "${y.KeyName}"? This action cannot be undone. Any instances using this key pair will no longer be able to be accessed with it.`,isPending:b.isPending,onConfirm:C,onOpenChange:S,open:x,title:`Delete Key Pair`})]})}export{y as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./useNavigate.js";import{Xt as i}from"./auth.js";import{t as a}from"./trash-2.js";import{t as o}from"./button.js";import{f as s}from"./ec2.js";import{$n as c,Pt as l,Sn as u,T as d,Tn as f,yn as p}from"./index.js";import{t as m}from"./delete-confirmation-dialog.js";import{n as h,t as g}from"./detail-row.js";var _=t(n()),v=e();function y(){let{id:e}=d.useParams(),t=r(),{data:n}=c(s(e)),y=n.KeyPairs?.[0],b=l(),[x,S]=(0,_.useState)(!1),C=async()=>{try{await b.mutateAsync(e),t({to:`/ec2/describe-key-pairs`})}finally{S(!1)}};if(!y?.KeyPairId)return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(f,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),(0,v.jsx)(`p`,{className:`text-muted-foreground`,children:`Key pair not found.`})]});let w=i(y.CreateTime);return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(f,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),b.error&&(0,v.jsx)(u,{error:b.error,msg:`Failed to delete key pair`}),(0,v.jsxs)(`div`,{className:`space-y-6`,children:[(0,v.jsx)(p,{actions:(0,v.jsxs)(o,{onClick:()=>S(!0),size:`sm`,variant:`destructive`,children:[(0,v.jsx)(a,{className:`size-4`}),`Delete`]}),subtitle:`Key Pair Details`,title:y.KeyName??``}),(0,v.jsxs)(h,{children:[(0,v.jsx)(h.Header,{children:`Key Pair Information`}),(0,v.jsxs)(h.Content,{children:[(0,v.jsx)(g,{label:`Key Pair ID`,value:y.KeyPairId}),(0,v.jsx)(g,{label:`Key Name`,value:y.KeyName}),(0,v.jsx)(g,{label:`Key Type`,value:y.KeyType}),(0,v.jsx)(g,{label:`Key Fingerprint`,value:y.KeyFingerprint}),(0,v.jsx)(g,{label:`Creation Date`,value:w})]})]}),y.Tags&&y.Tags.length>0&&(0,v.jsxs)(h,{children:[(0,v.jsx)(h.Header,{children:`Tags`}),(0,v.jsx)(h.Content,{children:y.Tags.map(e=>(0,v.jsx)(g,{label:e.Key??``,value:e.Value},e.Key))})]})]}),(0,v.jsx)(m,{description:`Are you sure you want to delete the key pair "${y.KeyName}"? This action cannot be undone. Any instances using this key pair will no longer be able to be accessed with it.`,isPending:b.isPending,onConfirm:C,onOpenChange:S,open:x,title:`Delete Key Pair`})]})}export{y as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id6.js b/spinifex/services/spinifexui/frontend/dist/assets/_id6.js index 963bb0933..d0d580b3a 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id6.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id6.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{Xt as a}from"./auth.js";import{t as o}from"./createLucideIcon.js";import{c as s,i as c,n as l,s as u,t as d}from"./select.js";import{t as f}from"./trash-2.js";import{t as p}from"./button.js";import{h as m,m as h}from"./ec2.js";import{Dt as g,Ln as _,Ot as v,V as y,Xn as b,_n as x,dn as S,mn as C,mt as w,qt as ee,rn as T,sn as E,vn as D,w as te,xn as ne}from"./index.js";import{t as re}from"./delete-confirmation-dialog.js";import{n as O,t as k}from"./detail-row.js";import{t as A}from"./launch-template-data-fields.js";import{t as j}from"./badge.js";var M=o(`rocket`,[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`,key:`u4xsad`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`,key:`676m9`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`,key:`92ym6u`}]]),N=o(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),P=t(n()),F=e();function I(e){if(!e)return``;try{let t=atob(e),n=new Uint8Array(t.length);for(let e=0;et.LaunchTemplateId===e),G=(o.LaunchTemplateVersions??[]).toSorted((e,t)=>(t.VersionNumber??0)-(e.VersionNumber??0)),{control:K,handleSubmit:q,register:J,getValues:Y,reset:X,formState:{errors:ie,isSubmitting:Z}}=ne({resolver:D(y),defaultValues:{versionDescription:``,...R}});if(!W?.LaunchTemplateId)return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(x,{to:`/ec2/describe-launch-templates`,children:`Back to launch templates`}),(0,F.jsx)(`p`,{className:`text-muted-foreground`,children:`Launch template not found.`})]});let Q=W.DefaultVersionNumber,ae=e=>{if(e===`none`){X({...Y(),sourceVersion:void 0,...R});return}let t=G.find(t=>String(t.VersionNumber)===e);X({...Y(),sourceVersion:e,...L(t?.LaunchTemplateData)})},oe=async t=>{await I.mutateAsync({launchTemplateId:e,defaultVersion:String(t)})},se=async t=>{await z.mutateAsync({launchTemplateId:e,versions:[String(t)]})},ce=async()=>{try{await B.mutateAsync(e),t({to:`/ec2/describe-launch-templates`})}finally{U(!1)}},le=async t=>{await V.mutateAsync({...t,launchTemplateId:e}),X({versionDescription:``,sourceVersion:void 0,...R})},$=I.error??z.error;return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(x,{to:`/ec2/describe-launch-templates`,children:`Back to launch templates`}),B.error&&(0,F.jsx)(C,{error:B.error,msg:`Failed to delete launch template`}),(0,F.jsxs)(`div`,{className:`space-y-6`,children:[(0,F.jsx)(S,{actions:(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxs)(p,{disabled:B.isPending,onClick:()=>U(!0),size:`sm`,variant:`destructive`,children:[(0,F.jsx)(f,{className:`size-4`}),`Delete`]}),(0,F.jsxs)(j,{variant:`secondary`,children:[`default v`,Q]})]}),subtitle:`Launch Template Details`,title:W.LaunchTemplateName??W.LaunchTemplateId}),(0,F.jsxs)(O,{children:[(0,F.jsx)(O.Header,{children:`Launch Template Information`}),(0,F.jsxs)(O.Content,{children:[(0,F.jsx)(k,{label:`Launch Template ID`,value:W.LaunchTemplateId}),(0,F.jsx)(k,{label:`Name`,value:W.LaunchTemplateName}),(0,F.jsx)(k,{label:`Default Version`,value:String(W.DefaultVersionNumber)}),(0,F.jsx)(k,{label:`Latest Version`,value:String(W.LatestVersionNumber)}),(0,F.jsx)(k,{label:`Created`,value:a(W.CreateTime)})]})]}),(0,F.jsxs)(O,{children:[(0,F.jsx)(O.Header,{children:`Versions`}),(0,F.jsxs)(`div`,{className:`space-y-4 p-4`,children:[$&&(0,F.jsx)(C,{error:$,msg:`Failed to update version`}),(0,F.jsx)(`div`,{className:`overflow-x-auto rounded-md border`,children:(0,F.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,F.jsx)(`thead`,{className:`bg-muted/50 text-left text-muted-foreground`,children:(0,F.jsxs)(`tr`,{children:[(0,F.jsx)(`th`,{className:`p-2 font-medium`,children:`Version`}),(0,F.jsx)(`th`,{className:`p-2 font-medium`,children:`Description`}),(0,F.jsx)(`th`,{className:`p-2 font-medium`,children:`Default`}),(0,F.jsx)(`th`,{className:`p-2 font-medium`,children:`Created`}),(0,F.jsx)(`th`,{className:`p-2`,children:(0,F.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,F.jsx)(`tbody`,{children:G.map(t=>{let n=t.VersionNumber,i=n===Q;return(0,F.jsxs)(`tr`,{className:`border-t`,children:[(0,F.jsx)(`td`,{className:`p-2 font-mono`,children:n}),(0,F.jsx)(`td`,{className:`p-2`,children:t.VersionDescription??`—`}),(0,F.jsx)(`td`,{className:`p-2`,children:i?(0,F.jsx)(j,{variant:`secondary`,children:`Default`}):`—`}),(0,F.jsx)(`td`,{className:`p-2`,children:a(t.CreateTime)}),(0,F.jsx)(`td`,{className:`p-2`,children:(0,F.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,F.jsx)(r,{search:{launchTemplateId:e,launchTemplateVersion:String(n)},to:`/ec2/run-instances`,children:(0,F.jsxs)(p,{size:`sm`,variant:`ghost`,children:[(0,F.jsx)(M,{className:`size-4`}),`Launch`]})}),!i&&n!==void 0&&(0,F.jsxs)(p,{disabled:I.isPending,onClick:async()=>await oe(n),size:`sm`,variant:`ghost`,children:[(0,F.jsx)(N,{className:`size-4`}),`Set default`]}),(0,F.jsx)(p,{disabled:i||z.isPending||n===void 0,onClick:async()=>{n!==void 0&&await se(n)},size:`sm`,variant:`ghost`,children:(0,F.jsx)(f,{className:`size-4`})})]})})]},n)})})]})})]})]}),(0,F.jsxs)(O,{children:[(0,F.jsx)(O.Header,{children:`Create Version`}),(0,F.jsxs)(`div`,{className:`p-4`,children:[V.error&&(0,F.jsx)(C,{error:V.error,msg:`Failed to create version`}),(0,F.jsxs)(`form`,{className:`space-y-6`,onSubmit:q(le),children:[(0,F.jsxs)(T,{children:[(0,F.jsx)(E,{children:(0,F.jsx)(`label`,{htmlFor:`sourceVersion`,children:`Clone from version`})}),(0,F.jsxs)(d,{onValueChange:e=>ae(e??`none`),value:Y(`sourceVersion`)??`none`,children:[(0,F.jsx)(u,{className:`w-full`,id:`sourceVersion`,children:(0,F.jsx)(s,{})}),(0,F.jsxs)(l,{children:[(0,F.jsx)(c,{value:`none`,children:`none (start blank)`}),G.map(e=>(0,F.jsxs)(c,{value:String(e.VersionNumber),children:[`v`,e.VersionNumber,e.VersionDescription?` — ${e.VersionDescription}`:``]},e.VersionNumber))]})]})]}),(0,F.jsxs)(T,{children:[(0,F.jsx)(E,{children:(0,F.jsx)(`label`,{htmlFor:`versionDescription`,children:`Version Description`})}),(0,F.jsx)(_,{id:`versionDescription`,placeholder:`What changed in this version`,...J(`versionDescription`)})]}),(0,F.jsx)(A,{control:K,errors:ie,register:J}),(0,F.jsx)(p,{disabled:Z||V.isPending,type:`submit`,children:Z||V.isPending?`Creating…`:`Create Version`})]})]})]})]}),(0,F.jsx)(re,{description:`Are you sure you want to delete the launch template "${W.LaunchTemplateName??W.LaunchTemplateId}"? All versions will be deleted. This action cannot be undone.`,isPending:B.isPending,onConfirm:ce,onOpenChange:U,open:H,title:`Delete Launch Template`})]})}export{z as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as ee}from"./link.js";import{t as r}from"./useNavigate.js";import{Xt as i}from"./auth.js";import{t as a}from"./createLucideIcon.js";import{c as o,i as s,n as c,s as l,t as u}from"./select.js";import{t as d}from"./trash-2.js";import{t as f}from"./button.js";import{h as p,m}from"./ec2.js";import{$n as h,En as g,Ft as _,It as v,Rn as y,Sn as b,St as x,Tn as S,X as te,dn as C,hn as w,kn as T,tn as E,w as D,yn as ne}from"./index.js";import{t as re}from"./delete-confirmation-dialog.js";import{n as O,t as k}from"./detail-row.js";import{t as A}from"./launch-template-data-fields.js";import{t as j}from"./badge.js";var M=a(`rocket`,[[`path`,{d:`M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5`,key:`qeys4`}],[`path`,{d:`M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09`,key:`u4xsad`}],[`path`,{d:`M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z`,key:`676m9`}],[`path`,{d:`M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05`,key:`92ym6u`}]]),N=a(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),P=t(n()),F=e();function I(e){if(!e)return``;try{let t=atob(e),n=new Uint8Array(t.length);for(let e=0;et.LaunchTemplateId===e),G=(a.LaunchTemplateVersions??[]).toSorted((e,t)=>(t.VersionNumber??0)-(e.VersionNumber??0)),{control:K,handleSubmit:q,register:J,getValues:Y,reset:X,formState:{errors:ie,isSubmitting:Z}}=T({resolver:g(te),defaultValues:{versionDescription:``,...R}});if(!W?.LaunchTemplateId)return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(S,{to:`/ec2/describe-launch-templates`,children:`Back to launch templates`}),(0,F.jsx)(`p`,{className:`text-muted-foreground`,children:`Launch template not found.`})]});let Q=W.DefaultVersionNumber,ae=e=>{if(e===`none`){X({...Y(),sourceVersion:void 0,...R});return}let t=G.find(t=>String(t.VersionNumber)===e);X({...Y(),sourceVersion:e,...L(t?.LaunchTemplateData)})},oe=async t=>{await I.mutateAsync({launchTemplateId:e,defaultVersion:String(t)})},se=async t=>{await z.mutateAsync({launchTemplateId:e,versions:[String(t)]})},ce=async()=>{try{await B.mutateAsync(e),t({to:`/ec2/describe-launch-templates`})}finally{U(!1)}},le=async t=>{await V.mutateAsync({...t,launchTemplateId:e}),X({versionDescription:``,sourceVersion:void 0,...R})},$=I.error??z.error;return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(S,{to:`/ec2/describe-launch-templates`,children:`Back to launch templates`}),B.error&&(0,F.jsx)(b,{error:B.error,msg:`Failed to delete launch template`}),(0,F.jsxs)(`div`,{className:`space-y-6`,children:[(0,F.jsx)(ne,{actions:(0,F.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,F.jsxs)(f,{disabled:B.isPending,onClick:()=>U(!0),size:`sm`,variant:`destructive`,children:[(0,F.jsx)(d,{className:`size-4`}),`Delete`]}),(0,F.jsxs)(j,{variant:`secondary`,children:[`default v`,Q]})]}),subtitle:`Launch Template Details`,title:W.LaunchTemplateName??W.LaunchTemplateId}),(0,F.jsxs)(O,{children:[(0,F.jsx)(O.Header,{children:`Launch Template Information`}),(0,F.jsxs)(O.Content,{children:[(0,F.jsx)(k,{label:`Launch Template ID`,value:W.LaunchTemplateId}),(0,F.jsx)(k,{label:`Name`,value:W.LaunchTemplateName}),(0,F.jsx)(k,{label:`Default Version`,value:String(W.DefaultVersionNumber)}),(0,F.jsx)(k,{label:`Latest Version`,value:String(W.LatestVersionNumber)}),(0,F.jsx)(k,{label:`Created`,value:i(W.CreateTime)})]})]}),(0,F.jsxs)(O,{children:[(0,F.jsx)(O.Header,{children:`Versions`}),(0,F.jsxs)(`div`,{className:`space-y-4 p-4`,children:[$&&(0,F.jsx)(b,{error:$,msg:`Failed to update version`}),(0,F.jsx)(`div`,{className:`overflow-x-auto rounded-md border`,children:(0,F.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,F.jsx)(`thead`,{className:`bg-muted/50 text-left text-muted-foreground`,children:(0,F.jsxs)(`tr`,{children:[(0,F.jsx)(`th`,{className:`p-2 font-medium`,children:`Version`}),(0,F.jsx)(`th`,{className:`p-2 font-medium`,children:`Description`}),(0,F.jsx)(`th`,{className:`p-2 font-medium`,children:`Default`}),(0,F.jsx)(`th`,{className:`p-2 font-medium`,children:`Created`}),(0,F.jsx)(`th`,{className:`p-2`,children:(0,F.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,F.jsx)(`tbody`,{children:G.map(t=>{let n=t.VersionNumber,r=n===Q;return(0,F.jsxs)(`tr`,{className:`border-t`,children:[(0,F.jsx)(`td`,{className:`p-2 font-mono`,children:n}),(0,F.jsx)(`td`,{className:`p-2`,children:t.VersionDescription??`—`}),(0,F.jsx)(`td`,{className:`p-2`,children:r?(0,F.jsx)(j,{variant:`secondary`,children:`Default`}):`—`}),(0,F.jsx)(`td`,{className:`p-2`,children:i(t.CreateTime)}),(0,F.jsx)(`td`,{className:`p-2`,children:(0,F.jsxs)(`div`,{className:`flex items-center justify-end gap-1`,children:[(0,F.jsx)(ee,{search:{launchTemplateId:e,launchTemplateVersion:String(n)},to:`/ec2/run-instances`,children:(0,F.jsxs)(f,{size:`sm`,variant:`ghost`,children:[(0,F.jsx)(M,{className:`size-4`}),`Launch`]})}),!r&&n!==void 0&&(0,F.jsxs)(f,{disabled:I.isPending,onClick:async()=>await oe(n),size:`sm`,variant:`ghost`,children:[(0,F.jsx)(N,{className:`size-4`}),`Set default`]}),(0,F.jsx)(f,{disabled:r||z.isPending||n===void 0,onClick:async()=>{n!==void 0&&await se(n)},size:`sm`,variant:`ghost`,children:(0,F.jsx)(d,{className:`size-4`})})]})})]},n)})})]})})]})]}),(0,F.jsxs)(O,{children:[(0,F.jsx)(O.Header,{children:`Create Version`}),(0,F.jsxs)(`div`,{className:`p-4`,children:[V.error&&(0,F.jsx)(b,{error:V.error,msg:`Failed to create version`}),(0,F.jsxs)(`form`,{className:`space-y-6`,onSubmit:q(le),children:[(0,F.jsxs)(C,{children:[(0,F.jsx)(w,{children:(0,F.jsx)(`label`,{htmlFor:`sourceVersion`,children:`Clone from version`})}),(0,F.jsxs)(u,{onValueChange:e=>ae(e??`none`),value:Y(`sourceVersion`)??`none`,children:[(0,F.jsx)(l,{className:`w-full`,id:`sourceVersion`,children:(0,F.jsx)(o,{})}),(0,F.jsxs)(c,{children:[(0,F.jsx)(s,{value:`none`,children:`none (start blank)`}),G.map(e=>(0,F.jsxs)(s,{value:String(e.VersionNumber),children:[`v`,e.VersionNumber,e.VersionDescription?` — ${e.VersionDescription}`:``]},e.VersionNumber))]})]})]}),(0,F.jsxs)(C,{children:[(0,F.jsx)(w,{children:(0,F.jsx)(`label`,{htmlFor:`versionDescription`,children:`Version Description`})}),(0,F.jsx)(y,{id:`versionDescription`,placeholder:`What changed in this version`,...J(`versionDescription`)})]}),(0,F.jsx)(A,{control:K,errors:ie,register:J}),(0,F.jsx)(f,{disabled:Z||V.isPending,type:`submit`,children:Z||V.isPending?`Creating…`:`Create Version`})]})]})]})]}),(0,F.jsx)(re,{description:`Are you sure you want to delete the launch template "${W.LaunchTemplateName??W.LaunchTemplateId}"? All versions will be deleted. This action cannot be undone.`,isPending:B.isPending,onConfirm:ce,onOpenChange:U,open:H,title:`Delete Launch Template`})]})}export{z as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id7.js b/spinifex/services/spinifexui/frontend/dist/assets/_id7.js index de6040c35..7083aa806 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id7.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id7.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./useNavigate.js";import{$t as a,Xt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{c,i as l,n as u,s as d,t as f}from"./select.js";import{t as p}from"./trash-2.js";import{t as m}from"./button.js";import{t as h}from"./certificate-import-dialog.js";import{O as g,w as _}from"./ec2.js";import{_ as v,a as y,d as b,f as x,g as S,h as C,o as w,r as T,s as E,t as D,u as O}from"./elbv2.js";import{i as k,n as A,o as j,r as M,s as N,t as P,u as F}from"./elbv22.js";import{C as I,Ln as ee,P as L,Sn as te,Xn as R,_n as z,an as ne,bn as re,dn as B,mn as V,rn as H,sn as U,vn as W,xn as G,yn as ie}from"./index.js";import{a as K,i as q,l as ae,n as oe,o as se,r as ce,s as le,t as ue}from"./alert-dialog.js";import{t as de}from"./delete-confirmation-dialog.js";import{n as J,t as Y}from"./detail-row.js";import{t as fe}from"./state-badge.js";import{c as pe,i as me,n as X,o as he,s as Z,t as ge}from"./elbv23.js";import{n as _e,r as ve,t as ye}from"./tags-editor.js";import{i as be,n as xe,r as Se,t as Ce}from"./tabs.js";var we=s(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Te=r(),Q=t(n(),1),$=e(),Ee=80,De=443,Oe=[],ke=[];function Ae(e){let t=e.CertificateArn?.split(`/`).pop()??e.CertificateArn??``;return e.DomainName?`${e.DomainName} · ${t}`:t}function je(e){let t=(0,Te.c)(55),{form:n,protocols:r,targetGroups:i,certificates:a,sslPolicies:o}=e,s=a===void 0?Oe:a,l=o===void 0?ke:o,{control:p,register:g,getValues:_,setValue:v,formState:y}=n,{errors:b}=y,[x,S]=(0,Q.useState)(!1),C;t[0]===p?C=t[1]:(C={control:p,name:`protocol`},t[0]=p,t[1]=C);let w=te(C),T=w===`HTTPS`,E;t[2]===w?E=t[3]:(E=Z(w),t[2]=w,t[3]=E);let D=E,O;t[4]!==_||t[5]!==v?(O=e=>{if(!e)return;let t=_(`port`);Z(e)?(t===Ee&&v(`port`,De),e===`HTTPS`?_(`sslPolicy`)||v(`sslPolicy`,ge):v(`sslPolicy`,void 0)):(t===De&&v(`port`,Ee),v(`certificateArn`,void 0),v(`sslPolicy`,void 0))},t[4]=_,t[5]=v,t[6]=O):O=t[6];let k=O,A;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(U,{children:(0,$.jsx)(`label`,{htmlFor:`listener-protocol`,children:`Protocol`})}),t[7]=A):A=t[7];let j;t[8]!==k||t[9]!==r?(j=e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:e=>{t.onChange(e),k(e)},value:t.value,children:[(0,$.jsx)(d,{className:`w-full`,id:`listener-protocol`,children:(0,$.jsx)(c,{})}),(0,$.jsx)(u,{children:r.map(Fe)})]})},t[8]=k,t[9]=r,t[10]=j):j=t[10];let M;t[11]!==p||t[12]!==j?(M=(0,$.jsxs)(H,{children:[A,(0,$.jsx)(ie,{control:p,name:`protocol`,render:j})]}),t[11]=p,t[12]=j,t[13]=M):M=t[13];let N;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(U,{children:(0,$.jsx)(`label`,{htmlFor:`listener-port`,children:`Port`})}),t[14]=N):N=t[14];let P=!!b.port,F=D?`443`:`80`,I;t[15]===g?I=t[16]:(I=g(`port`,{valueAsNumber:!0}),t[15]=g,t[16]=I);let L;t[17]!==P||t[18]!==F||t[19]!==I?(L=(0,$.jsx)(ee,{"aria-invalid":P,id:`listener-port`,inputMode:`numeric`,placeholder:F,type:`number`,...I}),t[17]=P,t[18]=F,t[19]=I,t[20]=L):L=t[20];let R;t[21]===b.port?R=t[22]:(R=(0,$.jsx)(ne,{errors:[b.port]}),t[21]=b.port,t[22]=R);let z;t[23]!==L||t[24]!==R?(z=(0,$.jsxs)(H,{children:[N,L,R]}),t[23]=L,t[24]=R,t[25]=z):z=t[25];let re;t[26]!==s||t[27]!==p||t[28]!==b.certificateArn||t[29]!==x||t[30]!==T||t[31]!==D||t[32]!==v||t[33]!==l?(re=D&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(H,{children:[(0,$.jsx)(U,{children:(0,$.jsx)(`label`,{htmlFor:`listener-certificate`,children:`Certificate`})}),(0,$.jsx)(ie,{control:p,name:`certificateArn`,render:e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value??``,children:[(0,$.jsx)(d,{"aria-invalid":!!b.certificateArn,className:`w-full`,id:`listener-certificate`,children:(0,$.jsx)(c,{placeholder:`Select certificate`})}),(0,$.jsx)(u,{children:s.map(Pe)})]})}}),(0,$.jsx)(ne,{errors:[b.certificateArn]}),(0,$.jsxs)(`div`,{className:`mt-1 flex items-center justify-between`,children:[s.length===0&&(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No certificates imported yet.`}),(0,$.jsx)(m,{className:`ml-auto`,onClick:()=>S(!0),size:`sm`,type:`button`,variant:`ghost`,children:`Import certificate…`})]})]}),T&&(0,$.jsxs)(H,{children:[(0,$.jsx)(U,{children:(0,$.jsx)(`label`,{htmlFor:`listener-ssl-policy`,children:`Security policy`})}),(0,$.jsx)(ie,{control:p,name:`sslPolicy`,render:e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value??`ELBSecurityPolicy-2016-08`,children:[(0,$.jsx)(d,{className:`w-full`,id:`listener-ssl-policy`,children:(0,$.jsx)(c,{})}),(0,$.jsx)(u,{children:l.map(Ne)})]})}})]}),(0,$.jsx)(h,{onImported:e=>v(`certificateArn`,e,{shouldValidate:!0}),onOpenChange:S,open:x})]}),t[26]=s,t[27]=p,t[28]=b.certificateArn,t[29]=x,t[30]=T,t[31]=D,t[32]=v,t[33]=l,t[34]=re):re=t[34];let B;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,$.jsx)(U,{children:(0,$.jsx)(`label`,{htmlFor:`listener-default-tg`,children:`Default target group`})}),t[35]=B):B=t[35];let V;t[36]!==b.defaultTargetGroupArn||t[37]!==i?(V=e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value??``,children:[(0,$.jsx)(d,{"aria-invalid":!!b.defaultTargetGroupArn,className:`w-full`,id:`listener-default-tg`,children:(0,$.jsx)(c,{placeholder:`Select target group`})}),(0,$.jsx)(u,{children:i.map(Me)})]})},t[36]=b.defaultTargetGroupArn,t[37]=i,t[38]=V):V=t[38];let W;t[39]!==p||t[40]!==V?(W=(0,$.jsx)(ie,{control:p,name:`defaultTargetGroupArn`,render:V}),t[39]=p,t[40]=V,t[41]=W):W=t[41];let G;t[42]===b.defaultTargetGroupArn?G=t[43]:(G=(0,$.jsx)(ne,{errors:[b.defaultTargetGroupArn]}),t[42]=b.defaultTargetGroupArn,t[43]=G);let K;t[44]===i.length?K=t[45]:(K=i.length===0&&(0,$.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`No target groups available in this VPC. Create one first.`}),t[44]=i.length,t[45]=K);let q;t[46]!==W||t[47]!==G||t[48]!==K?(q=(0,$.jsxs)(H,{children:[B,W,G,K]}),t[46]=W,t[47]=G,t[48]=K,t[49]=q):q=t[49];let ae;return t[50]!==z||t[51]!==re||t[52]!==q||t[53]!==M?(ae=(0,$.jsxs)($.Fragment,{children:[M,z,re,q]}),t[50]=z,t[51]=re,t[52]=q,t[53]=M,t[54]=ae):ae=t[54],ae}function Me(e){return(0,$.jsxs)(l,{value:e.TargetGroupArn??``,children:[e.TargetGroupName,` · `,e.Protocol,`:`,e.Port]},e.TargetGroupArn)}function Ne(e){return(0,$.jsx)(l,{value:e.Name??``,children:e.Name},e.Name)}function Pe(e){return(0,$.jsx)(l,{value:e.CertificateArn??``,children:Ae(e)},e.CertificateArn)}function Fe(e){return(0,$.jsx)(l,{value:e,children:e},e)}function Ie({listenerArn:e,targetGroups:t}){let{data:n}=R(P(e)),r=T(),i=x(),a=E(),[o,s]=(0,Q.useState)(!1),[c,l]=(0,Q.useState)(),[u,d]=(0,Q.useState)(),f=n.Rules??[],h=new Map;for(let e of t)e.TargetGroupArn&&e.TargetGroupName&&h.set(e.TargetGroupArn,e.TargetGroupName);return(0,$.jsxs)(`div`,{className:`space-y-3`,children:[r.error&&(0,$.jsx)(V,{error:r.error,msg:`Failed to create rule`}),i.error&&(0,$.jsx)(V,{error:i.error,msg:`Failed to modify rule`}),a.error&&(0,$.jsx)(V,{error:a.error,msg:`Failed to delete rule`}),(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[f.length,` rule`,f.length===1?``:`s`,` (including default)`]}),(0,$.jsx)(m,{onClick:()=>s(!0),size:`sm`,children:`Add rule`})]}),(0,$.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,$.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Priority`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Conditions`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Forward to`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,$.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,$.jsx)(`tbody`,{children:f.map(e=>(0,$.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,$.jsx)(`td`,{className:`px-4 py-2`,children:e.Priority}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:Le(e.Conditions,e.IsDefault===!0)}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:ze(e,h)}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-right`,children:e.IsDefault===!0?(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Edit via listener`}):(0,$.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,$.jsx)(m,{"aria-label":`Edit rule ${e.Priority}`,onClick:()=>l(e),size:`sm`,variant:`ghost`,children:(0,$.jsx)(we,{className:`size-4`})}),(0,$.jsx)(m,{"aria-label":`Delete rule ${e.Priority}`,onClick:()=>d(e),size:`sm`,variant:`ghost`,children:(0,$.jsx)(p,{className:`size-4`})})]})})]},e.RuleArn??e.Priority??`default`))})]})}),o&&(0,$.jsx)(We,{isPending:r.isPending,mode:`add`,onOpenChange:s,onSubmit:async t=>{try{await r.mutateAsync({listenerArn:e,priority:t.priority,conditions:t.conditions.map(Be),forwardTargetGroupArn:t.forwardTargetGroupArn}),s(!1)}catch{}},open:o,targetGroups:t}),(0,$.jsx)(We,{initialRule:c,isPending:i.isPending,mode:`edit`,onOpenChange:e=>!e&&l(void 0),onSubmit:async t=>{if(c?.RuleArn)try{await i.mutateAsync({ruleArn:c.RuleArn,listenerArn:e,conditions:t.conditions.map(Be),forwardTargetGroupArn:t.forwardTargetGroupArn}),l(void 0)}catch{}},open:c!==void 0,targetGroups:t}),(0,$.jsx)(de,{description:u?`Delete rule with priority ${u.Priority}? This cannot be undone.`:``,isPending:a.isPending,onConfirm:async()=>{if(u?.RuleArn)try{await a.mutateAsync({ruleArn:u.RuleArn,listenerArn:e})}finally{d(void 0)}},onOpenChange:e=>!e&&d(void 0),open:u!==void 0,title:`Delete rule`})]})}function Le(e,t){return t?`default`:!e||e.length===0?`—`:e.map(e=>{let t=Re(e);return`${e.Field}: ${t.join(`, `)}`}).join(` AND `)}function Re(e){if(e.Field===void 0)return e.Values??[];switch(e.Field){case`host-header`:return e.HostHeaderConfig?.Values??e.Values??[];case`path-pattern`:return e.PathPatternConfig?.Values??e.Values??[];case`http-header`:{let t=e.HttpHeaderConfig?.HttpHeaderName??`?`;return(e.HttpHeaderConfig?.Values??[]).map(e=>`${t}=${e}`)}case`http-request-method`:return e.HttpRequestMethodConfig?.Values??[];case`source-ip`:return e.SourceIpConfig?.Values??[];case`query-string`:return(e.QueryStringConfig?.Values??[]).map(e=>e.Key?`${e.Key}=${e.Value??``}`:e.Value??``);default:return e.Values??[]}}function ze(e,t){let n=e.Actions?.[0];return n?n.Type===`forward`&&n.TargetGroupArn?t.get(n.TargetGroupArn)??n.TargetGroupArn:n.Type??`—`:`—`}function Be(e){let t=e.rawValues.split(/[\n,]/).map(e=>e.trim()).filter(e=>e.length>0);return e.field===`query-string`?{field:e.field,values:[],queryStringPairs:t.map(e=>{let t=e.indexOf(`=`);return t===-1?{value:e}:{key:e.slice(0,t),value:e.slice(t+1)}})}:{field:e.field,values:t,httpHeaderName:e.httpHeaderName}}var Ve=1,He=[{field:`path-pattern`,rawValues:``}];function Ue(e){let t=Number(e.Priority??Ve),n=e.Conditions?.map(e=>Xe(e))??[];return{priority:Number.isFinite(t)?t:Ve,conditions:n.length>0?n:He,forwardTargetGroupArn:e.Actions?.[0]?.TargetGroupArn??``}}function We(e){let t=(0,Te.c)(84),{open:n,onOpenChange:r,onSubmit:i,isPending:a,targetGroups:o,mode:s,initialRule:l}=e,p,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=W(me),h={priority:Ve,conditions:He,forwardTargetGroupArn:``},t[0]=p,t[1]=h):(p=t[0],h=t[1]);let g;t[2]===l?g=t[3]:(g=l?Ue(l):void 0,t[2]=l,t[3]=g);let _;t[4]===g?_=t[5]:(_={resolver:p,defaultValues:h,values:g},t[4]=g,t[5]=_);let v=G(_),y;t[6]===v.control?y=t[7]:(y={control:v.control,name:`conditions`},t[6]=v.control,t[7]=y);let{fields:b,append:x,remove:S}=re(y),C;t[8]!==v||t[9]!==i?(C=v.handleSubmit(i),t[8]=v,t[9]=i,t[10]=C):C=t[10];let w=C,T;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(T={maxWidth:`40rem`,width:`calc(100vw - 2rem)`},t[11]=T):T=t[11];let E=s===`add`?`Add rule`:`Edit rule`,D;t[12]===E?D=t[13]:(D=(0,$.jsx)(ae,{children:E}),t[12]=E,t[13]=D);let O;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(K,{children:`Routing rules match incoming requests and forward them to a target group. Rules evaluate in priority order; the listener default applies when no rule matches.`}),t[14]=O):O=t[14];let k;t[15]===D?k=t[16]:(k=(0,$.jsxs)(le,{children:[D,O]}),t[15]=D,t[16]=k);let A;t[17]===w?A=t[18]:(A=e=>{e.preventDefault(),w()},t[17]=w,t[18]=A);let j;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,$.jsx)(U,{children:(0,$.jsx)(`label`,{htmlFor:`rule-priority`,children:`Priority`})}),t[19]=j):j=t[19];let M=!!v.formState.errors.priority,N;t[20]===v?N=t[21]:(N=v.register(`priority`,{valueAsNumber:!0}),t[20]=v,t[21]=N);let P;t[22]!==M||t[23]!==N?(P=(0,$.jsx)(ee,{"aria-invalid":M,id:`rule-priority`,inputMode:`numeric`,type:`number`,...N}),t[22]=M,t[23]=N,t[24]=P):P=t[24];let F;t[25]===v.formState.errors.priority?F=t[26]:(F=(0,$.jsx)(ne,{errors:[v.formState.errors.priority]}),t[25]=v.formState.errors.priority,t[26]=F);let I;t[27]!==P||t[28]!==F?(I=(0,$.jsxs)(H,{children:[j,P,F]}),t[27]=P,t[28]=F,t[29]=I):I=t[29];let L;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,$.jsx)(U,{children:`Conditions`}),t[30]=L):L=t[30];let te=b.length>=5,R;t[31]===x?R=t[32]:(R=()=>x({field:`path-pattern`,rawValues:``}),t[31]=x,t[32]=R);let z;t[33]!==te||t[34]!==R?(z=(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[L,(0,$.jsx)(m,{disabled:te,onClick:R,size:`sm`,type:`button`,variant:`outline`,children:`Add condition`})]}),t[33]=te,t[34]=R,t[35]=z):z=t[35];let B;if(t[36]!==b||t[37]!==v||t[38]!==S){let e;t[40]!==b.length||t[41]!==v||t[42]!==S?(e=(e,t)=>(0,$.jsx)(Ke,{form:v,index:t,onRemove:b.length>1?()=>S(t):void 0},e.id),t[40]=b.length,t[41]=v,t[42]=S,t[43]=e):e=t[43],B=b.map(e),t[36]=b,t[37]=v,t[38]=S,t[39]=B}else B=t[39];let V;t[44]!==z||t[45]!==B?(V=(0,$.jsxs)(`div`,{className:`space-y-3`,children:[z,B]}),t[44]=z,t[45]=B,t[46]=V):V=t[46];let de;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(de=(0,$.jsx)(U,{children:(0,$.jsx)(`label`,{htmlFor:`rule-forward-tg`,children:`Forward to target group`})}),t[47]=de):de=t[47];let J;t[48]!==v.formState.errors.forwardTargetGroupArn||t[49]!==o?(J=e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value??``,children:[(0,$.jsx)(d,{"aria-invalid":!!v.formState.errors.forwardTargetGroupArn,className:`w-full`,id:`rule-forward-tg`,children:(0,$.jsx)(c,{placeholder:`Select target group`})}),(0,$.jsx)(u,{children:o.map(Ge)})]})},t[48]=v.formState.errors.forwardTargetGroupArn,t[49]=o,t[50]=J):J=t[50];let Y;t[51]!==v.control||t[52]!==J?(Y=(0,$.jsx)(ie,{control:v.control,name:`forwardTargetGroupArn`,render:J}),t[51]=v.control,t[52]=J,t[53]=Y):Y=t[53];let fe;t[54]===v.formState.errors.forwardTargetGroupArn?fe=t[55]:(fe=(0,$.jsx)(ne,{errors:[v.formState.errors.forwardTargetGroupArn]}),t[54]=v.formState.errors.forwardTargetGroupArn,t[55]=fe);let pe;t[56]!==Y||t[57]!==fe?(pe=(0,$.jsxs)(H,{children:[de,Y,fe]}),t[56]=Y,t[57]=fe,t[58]=pe):pe=t[58];let X;t[59]!==A||t[60]!==I||t[61]!==V||t[62]!==pe?(X=(0,$.jsxs)(`form`,{className:`min-w-0 space-y-4`,onSubmit:A,children:[I,V,pe]}),t[59]=A,t[60]=I,t[61]=V,t[62]=pe,t[63]=X):X=t[63];let he;t[64]===a?he=t[65]:(he=(0,$.jsx)(ce,{disabled:a,children:`Cancel`}),t[64]=a,t[65]=he);let Z;t[66]!==a||t[67]!==s?(Z=Ze(s,a),t[66]=a,t[67]=s,t[68]=Z):Z=t[68];let ge;t[69]!==w||t[70]!==a||t[71]!==Z?(ge=(0,$.jsx)(oe,{disabled:a,onClick:w,children:Z}),t[69]=w,t[70]=a,t[71]=Z,t[72]=ge):ge=t[72];let _e;t[73]!==he||t[74]!==ge?(_e=(0,$.jsxs)(se,{children:[he,ge]}),t[73]=he,t[74]=ge,t[75]=_e):_e=t[75];let ve;t[76]!==k||t[77]!==X||t[78]!==_e?(ve=(0,$.jsxs)(q,{className:`grid-cols-[minmax(0,1fr)]`,style:T,children:[k,X,_e]}),t[76]=k,t[77]=X,t[78]=_e,t[79]=ve):ve=t[79];let ye;return t[80]!==r||t[81]!==n||t[82]!==ve?(ye=(0,$.jsx)(ue,{onOpenChange:r,open:n,children:ve}),t[80]=r,t[81]=n,t[82]=ve,t[83]=ye):ye=t[83],ye}function Ge(e){return(0,$.jsxs)(l,{value:e.TargetGroupArn??``,children:[e.TargetGroupName,` · `,e.Protocol,`:`,e.Port]},e.TargetGroupArn)}function Ke(e){let t=(0,Te.c)(54),{form:n,index:r,onRemove:i}=e,a,o,s,h,g,_,v,y,b,x;if(t[0]!==n||t[1]!==r||t[2]!==i){let e=n.watch(`conditions.${r}.field`);s=n.formState.errors.conditions?.[r],y=`space-y-2 rounded-md border p-3`;let S=`rule-cond-${r}-field`,C;t[13]===S?C=t[14]:(C=(0,$.jsx)(U,{children:(0,$.jsx)(`label`,{htmlFor:S,children:`Type`})}),t[13]=S,t[14]=C);let w=`conditions.${r}.field`,T;t[15]===r?T=t[16]:(T=e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value,children:[(0,$.jsx)(d,{className:`w-full`,id:`rule-cond-${r}-field`,children:(0,$.jsx)(c,{})}),(0,$.jsxs)(u,{children:[(0,$.jsx)(l,{value:`path-pattern`,children:`Path pattern`}),(0,$.jsx)(l,{value:`host-header`,children:`Host header`}),(0,$.jsx)(l,{value:`http-header`,children:`HTTP header`}),(0,$.jsx)(l,{value:`http-request-method`,children:`HTTP method`}),(0,$.jsx)(l,{value:`source-ip`,children:`Source IP CIDR`}),(0,$.jsx)(l,{value:`query-string`,children:`Query string`})]})]})},t[15]=r,t[16]=T);let E;t[17]!==n.control||t[18]!==w||t[19]!==T?(E=(0,$.jsx)(ie,{control:n.control,name:w,render:T}),t[17]=n.control,t[18]=w,t[19]=T,t[20]=E):E=t[20];let D;t[21]!==E||t[22]!==C?(D=(0,$.jsxs)(`div`,{className:`flex-1`,children:[C,E]}),t[21]=E,t[22]=C,t[23]=D):D=t[23];let O;t[24]!==r||t[25]!==i?(O=i&&(0,$.jsx)(m,{"aria-label":`Remove condition ${r+1}`,className:`self-end`,onClick:i,size:`sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(p,{className:`size-4`})}),t[24]=r,t[25]=i,t[26]=O):O=t[26],t[27]!==D||t[28]!==O?(b=(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[D,O]}),t[27]=D,t[28]=O,t[29]=b):b=t[29],x=e===`http-header`&&(0,$.jsxs)(H,{children:[(0,$.jsx)(U,{children:(0,$.jsx)(`label`,{htmlFor:`rule-cond-${r}-hdr-name`,children:`Header name`})}),(0,$.jsx)(ee,{"aria-invalid":!!s?.httpHeaderName,id:`rule-cond-${r}-hdr-name`,placeholder:`X-Tenant`,...n.register(`conditions.${r}.httpHeaderName`)}),(0,$.jsx)(ne,{errors:[s?.httpHeaderName]})]}),o=H;let k=`rule-cond-${r}-values`,A;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`(comma or newline separated, max 5)`}),t[30]=A):A=t[30],t[31]===k?v=t[32]:(v=(0,$.jsx)(U,{children:(0,$.jsxs)(`label`,{htmlFor:k,children:[`Values`,` `,A]})}),t[31]=k,t[32]=v),a=ee,h=!!s?.rawValues,g=`rule-cond-${r}-values`,_=qe(e),t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=s,t[6]=h,t[7]=g,t[8]=_,t[9]=v,t[10]=y,t[11]=b,t[12]=x}else a=t[3],o=t[4],s=t[5],h=t[6],g=t[7],_=t[8],v=t[9],y=t[10],b=t[11],x=t[12];let S;t[33]!==n||t[34]!==r?(S=n.register(`conditions.${r}.rawValues`),t[33]=n,t[34]=r,t[35]=S):S=t[35];let C;t[36]!==a||t[37]!==h||t[38]!==g||t[39]!==_||t[40]!==S?(C=(0,$.jsx)(a,{"aria-invalid":h,id:g,placeholder:_,...S}),t[36]=a,t[37]=h,t[38]=g,t[39]=_,t[40]=S,t[41]=C):C=t[41];let w=s?.rawValues,T;t[42]===w?T=t[43]:(T=(0,$.jsx)(ne,{errors:[w]}),t[42]=w,t[43]=T);let E;t[44]!==o||t[45]!==T||t[46]!==v||t[47]!==C?(E=(0,$.jsxs)(o,{children:[v,C,T]}),t[44]=o,t[45]=T,t[46]=v,t[47]=C,t[48]=E):E=t[48];let D;return t[49]!==E||t[50]!==y||t[51]!==b||t[52]!==x?(D=(0,$.jsxs)(`div`,{className:y,children:[b,x,E]}),t[49]=E,t[50]=y,t[51]=b,t[52]=x,t[53]=D):D=t[53],D}function qe(e){switch(e){case`path-pattern`:return`/api/*`;case`host-header`:return`*.example.com`;case`http-header`:return`acme`;case`http-request-method`:return`GET, POST`;case`source-ip`:return`10.0.0.0/8`;case`query-string`:return`key=value`;default:return``}}var Je=new Set([`host-header`,`path-pattern`,`http-header`,`http-request-method`,`source-ip`,`query-string`]);function Ye(e){return e!==void 0&&Je.has(e)}function Xe(e){let t=Re(e);return{field:Ye(e.Field)?e.Field:`path-pattern`,httpHeaderName:e.HttpHeaderConfig?.HttpHeaderName,rawValues:t.join(`, `)}}function Ze(e,t){return t?e===`add`?`Adding…`:`Saving…`:e===`add`?`Add rule`:`Save changes`}function Qe(e){return{protocol:he(e),port:80,defaultTargetGroupArn:``}}function $e(e,t){let n=t.find(t=>t===e.Protocol)??t[0]??`HTTP`,r=Z(n);return{protocol:n,port:e.Port??80,defaultTargetGroupArn:e.DefaultActions?.[0]?.TargetGroupArn??``,certificateArn:r?e.Certificates?.[0]?.CertificateArn:void 0,sslPolicy:n===`HTTPS`?e.SslPolicy:void 0}}function et(e){if(e.Protocol!==`HTTPS`)return`—`;let t=e.Certificates?.[0]?.CertificateArn?.split(`/`).pop(),n=e.SslPolicy;return t&&n?`${n} · ${t}`:n??t??`—`}function tt({loadBalancerArn:e,vpcId:t,lbType:n}){let r=pe(n),{data:i}=R(A(e)),{data:a}=R(F),{data:o}=R(L),{data:s}=R(j),c=D(),l=y(),u=O(),[d,f]=(0,Q.useState)(!1),[h,g]=(0,Q.useState)(),[_,v]=(0,Q.useState)(),[b,x]=(0,Q.useState)(),S=i.Listeners??[],C=a.TargetGroups??[],w=C.filter(e=>e.VpcId===t),T=o.CertificateSummaryList??[],E=s.SslPolicies??[],k=new Map;for(let e of C)e.TargetGroupArn&&e.TargetGroupName&&k.set(e.TargetGroupArn,e.TargetGroupName);let M=e=>{let t=e.DefaultActions?.[0];if(!t)return`—`;if(t.Type===`forward`&&t.TargetGroupArn){let e=k.get(t.TargetGroupArn);return e?`forward → ${e}`:`forward → ${t.TargetGroupArn}`}return t.Type??`—`};return(0,$.jsxs)(`div`,{className:`space-y-3`,children:[c.error&&(0,$.jsx)(V,{error:c.error,msg:`Failed to create listener`}),u.error&&(0,$.jsx)(V,{error:u.error,msg:`Failed to modify listener`}),l.error&&(0,$.jsx)(V,{error:l.error,msg:`Failed to delete listener`}),(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[S.length,` listener`,S.length===1?``:`s`]}),(0,$.jsx)(m,{onClick:()=>f(!0),size:`sm`,children:`Add listener`})]}),S.length===0?(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No listeners configured.`}):(0,$.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,$.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Protocol`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Port`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`TLS`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Default action`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Listener ARN`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,$.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,$.jsx)(`tbody`,{children:S.map(e=>{let t=e.ListenerArn??``,n=b===t;return(0,$.jsxs)(Q.Fragment,{children:[(0,$.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,$.jsx)(`td`,{className:`px-4 py-2`,children:e.Protocol}),(0,$.jsx)(`td`,{className:`px-4 py-2`,children:e.Port}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:et(e)}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:M(e)}),(0,$.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:t}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,$.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,$.jsx)(m,{"aria-label":`${n?`Hide`:`Show`} rules for listener ${e.Protocol}:${e.Port}`,onClick:()=>x(n?void 0:t),size:`sm`,variant:`ghost`,children:n?`Hide rules`:`Rules`}),(0,$.jsx)(m,{"aria-label":`Edit listener ${e.Protocol}:${e.Port}`,onClick:()=>g(e),size:`sm`,variant:`ghost`,children:(0,$.jsx)(we,{className:`size-4`})}),(0,$.jsx)(m,{"aria-label":`Delete listener ${e.Protocol}:${e.Port}`,onClick:()=>v(e),size:`sm`,variant:`ghost`,children:(0,$.jsx)(p,{className:`size-4`})})]})})]}),n&&t&&(0,$.jsx)(`tr`,{className:`border-b bg-muted/30 last:border-0`,children:(0,$.jsx)(`td`,{className:`px-4 py-3`,colSpan:6,children:(0,$.jsx)(Ie,{listenerArn:t,targetGroups:w})})})]},t)})})]})}),d&&(0,$.jsx)(nt,{certificates:T,isPending:c.isPending,lbType:n,onOpenChange:f,onSubmit:async t=>{try{await c.mutateAsync({loadBalancerArn:e,protocol:t.protocol,port:t.port,defaultTargetGroupArn:t.defaultTargetGroupArn,certificateArn:t.certificateArn,sslPolicy:t.sslPolicy}),f(!1)}catch{}},open:d,protocols:r,sslPolicies:E,targetGroups:w}),(0,$.jsx)(rt,{certificates:T,isPending:u.isPending,listener:h,onOpenChange:e=>!e&&g(void 0),onSubmit:async t=>{if(h?.ListenerArn)try{await u.mutateAsync({listenerArn:h.ListenerArn,loadBalancerArn:e,protocol:t.protocol,port:t.port,defaultTargetGroupArn:t.defaultTargetGroupArn,certificateArn:t.certificateArn,sslPolicy:t.sslPolicy}),g(void 0)}catch{}},protocols:r,sslPolicies:E,targetGroups:w}),(0,$.jsx)(de,{description:_?`Delete listener ${_.Protocol}:${_.Port}? This cannot be undone.`:``,isPending:l.isPending,onConfirm:async()=>{if(_?.ListenerArn)try{await l.mutateAsync(_.ListenerArn)}finally{v(void 0)}},onOpenChange:e=>!e&&v(void 0),open:_!==void 0,title:`Delete listener`})]})}function nt(e){let t=(0,Te.c)(37),{open:n,onOpenChange:r,lbType:i,protocols:a,targetGroups:o,certificates:s,sslPolicies:c,isPending:l,onSubmit:u}=e,d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=W(X),t[0]=d):d=t[0];let f;t[1]===i?f=t[2]:(f=Qe(i),t[1]=i,t[2]=f);let p;t[3]===f?p=t[4]:(p={resolver:d,defaultValues:f},t[3]=f,t[4]=p);let m=G(p),h;t[5]!==m||t[6]!==u?(h=m.handleSubmit(u),t[5]=m,t[6]=u,t[7]=h):h=t[7];let g=h,_;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(_={maxWidth:`32rem`,width:`calc(100vw - 2rem)`},t[8]=_):_=t[8];let v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsxs)(le,{children:[(0,$.jsx)(ae,{children:`Add listener`}),(0,$.jsx)(K,{children:`Listeners forward incoming traffic to a default target group.`})]}),t[9]=v):v=t[9];let y;t[10]===g?y=t[11]:(y=e=>{e.preventDefault(),g()},t[10]=g,t[11]=y);let b;t[12]!==s||t[13]!==m||t[14]!==a||t[15]!==c||t[16]!==o?(b=(0,$.jsx)(je,{certificates:s,form:m,protocols:a,sslPolicies:c,targetGroups:o}),t[12]=s,t[13]=m,t[14]=a,t[15]=c,t[16]=o,t[17]=b):b=t[17];let x;t[18]!==y||t[19]!==b?(x=(0,$.jsx)(`form`,{className:`min-w-0 space-y-4`,onSubmit:y,children:b}),t[18]=y,t[19]=b,t[20]=x):x=t[20];let S;t[21]===l?S=t[22]:(S=(0,$.jsx)(ce,{disabled:l,children:`Cancel`}),t[21]=l,t[22]=S);let C=l?`Adding…`:`Add listener`,w;t[23]!==g||t[24]!==l||t[25]!==C?(w=(0,$.jsx)(oe,{disabled:l,onClick:g,children:C}),t[23]=g,t[24]=l,t[25]=C,t[26]=w):w=t[26];let T;t[27]!==S||t[28]!==w?(T=(0,$.jsxs)(se,{children:[S,w]}),t[27]=S,t[28]=w,t[29]=T):T=t[29];let E;t[30]!==T||t[31]!==x?(E=(0,$.jsxs)(q,{className:`grid-cols-[minmax(0,1fr)]`,style:_,children:[v,x,T]}),t[30]=T,t[31]=x,t[32]=E):E=t[32];let D;return t[33]!==r||t[34]!==n||t[35]!==E?(D=(0,$.jsx)(ue,{onOpenChange:r,open:n,children:E}),t[33]=r,t[34]=n,t[35]=E,t[36]=D):D=t[36],D}function rt(e){let t=(0,Te.c)(39),{listener:n,onOpenChange:r,protocols:i,targetGroups:a,certificates:o,sslPolicies:s,isPending:c,onSubmit:l}=e,u=n!==void 0,d,f;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=W(X),f={protocol:`HTTP`,port:80,defaultTargetGroupArn:``},t[0]=d,t[1]=f):(d=t[0],f=t[1]);let p;t[2]!==n||t[3]!==i?(p=n?$e(n,i):void 0,t[2]=n,t[3]=i,t[4]=p):p=t[4];let m;t[5]===p?m=t[6]:(m={resolver:d,defaultValues:f,values:p},t[5]=p,t[6]=m);let h=G(m),g;t[7]!==h||t[8]!==l?(g=h.handleSubmit(l),t[7]=h,t[8]=l,t[9]=g):g=t[9];let _=g,v;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(v={maxWidth:`32rem`,width:`calc(100vw - 2rem)`},t[10]=v):v=t[10];let y;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsxs)(le,{children:[(0,$.jsx)(ae,{children:`Edit listener`}),(0,$.jsx)(K,{children:`Update port, protocol, or default target group. Changes apply without dropping the listener.`})]}),t[11]=y):y=t[11];let b;t[12]===_?b=t[13]:(b=e=>{e.preventDefault(),_()},t[12]=_,t[13]=b);let x;t[14]!==o||t[15]!==h||t[16]!==i||t[17]!==s||t[18]!==a?(x=(0,$.jsx)(je,{certificates:o,form:h,protocols:i,sslPolicies:s,targetGroups:a}),t[14]=o,t[15]=h,t[16]=i,t[17]=s,t[18]=a,t[19]=x):x=t[19];let S;t[20]!==b||t[21]!==x?(S=(0,$.jsx)(`form`,{className:`min-w-0 space-y-4`,onSubmit:b,children:x}),t[20]=b,t[21]=x,t[22]=S):S=t[22];let C;t[23]===c?C=t[24]:(C=(0,$.jsx)(ce,{disabled:c,children:`Cancel`}),t[23]=c,t[24]=C);let w=c?`Saving…`:`Save changes`,T;t[25]!==_||t[26]!==c||t[27]!==w?(T=(0,$.jsx)(oe,{disabled:c,onClick:_,children:w}),t[25]=_,t[26]=c,t[27]=w,t[28]=T):T=t[28];let E;t[29]!==C||t[30]!==T?(E=(0,$.jsxs)(se,{children:[C,T]}),t[29]=C,t[30]=T,t[31]=E):E=t[31];let D;t[32]!==S||t[33]!==E?(D=(0,$.jsxs)(q,{className:`grid-cols-[minmax(0,1fr)]`,style:v,children:[y,S,E]}),t[32]=S,t[33]=E,t[34]=D):D=t[34];let O;return t[35]!==r||t[36]!==u||t[37]!==D?(O=(0,$.jsx)(ue,{onOpenChange:r,open:u,children:D}),t[35]=r,t[36]=u,t[37]=D,t[38]=O):O=t[38],O}function it(e,t){if(e.length!==t.length)return!1;let n=new Set(t);return e.every(e=>n.has(e))}function at(e){let t=(0,Te.c)(46),{available:n,current:r,onSubmit:i,isPending:a,error:o,isSuccess:s}=e,c;t[0]===r?c=t[1]:(c=[...r],t[0]=r,t[1]=c);let l=c,[u,d]=(0,Q.useState)(l),f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=e=>{d(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},t[2]=f):f=t[2];let p=f,h;t[3]===l?h=t[4]:(h=()=>d(l),t[3]=l,t[4]=h);let g=h,_;t[5]!==l||t[6]!==u?(_=it(u,l),t[5]=l,t[6]=u,t[7]=_):_=t[7];let v=!_,y=u.length===0,b;t[8]!==v||t[9]!==y||t[10]!==i||t[11]!==u?(b=e=>{e.preventDefault(),!(!v||y)&&i(u)},t[8]=v,t[9]=y,t[10]=i,t[11]=u,t[12]=b):b=t[12];let x;t[13]===o?x=t[14]:(x=o&&(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive`,role:`alert`,children:o.message||`Failed to update security groups`}),t[13]=o,t[14]=x);let S;t[15]!==v||t[16]!==s?(S=s&&!v&&(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-emerald-500 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400`,role:`status`,children:`Security groups updated.`}),t[15]=v,t[16]=s,t[17]=S):S=t[17];let C;t[18]!==n||t[19]!==u?(C=n.length===0?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No security groups in this VPC.`}):n.map(e=>(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,$.jsx)(`input`,{"aria-label":`Security group ${e.GroupId} (${e.GroupName})`,checked:u.includes(e.GroupId??``),onChange:()=>p(e.GroupId??``),type:`checkbox`}),(0,$.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId)),t[18]=n,t[19]=u,t[20]=C):C=t[20];let w;t[21]===y?w=t[22]:(w=y&&(0,$.jsx)(`p`,{className:`text-xs text-destructive`,children:`At least one security group is required.`}),t[21]=y,t[22]=w);let T;t[23]!==C||t[24]!==w?(T=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1 p-4`,children:[C,w]}),t[23]=C,t[24]=w,t[25]=T):T=t[25];let E=v?`Unsaved changes`:`No changes`,D;t[26]===E?D=t[27]:(D=(0,$.jsx)(`span`,{className:`mr-auto text-xs text-muted-foreground`,children:E}),t[26]=E,t[27]=D);let O=a||!v,k;t[28]!==g||t[29]!==O?(k=(0,$.jsx)(m,{disabled:O,onClick:g,size:`sm`,type:`button`,variant:`secondary`,children:`Reset`}),t[28]=g,t[29]=O,t[30]=k):k=t[30];let A=a||!v||y,j=a?`Saving…`:`Save changes`,M;t[31]!==A||t[32]!==j?(M=(0,$.jsx)(m,{disabled:A,size:`sm`,type:`submit`,children:j}),t[31]=A,t[32]=j,t[33]=M):M=t[33];let N;t[34]!==D||t[35]!==k||t[36]!==M?(N=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t p-4`,children:[D,k,M]}),t[34]=D,t[35]=k,t[36]=M,t[37]=N):N=t[37];let P;t[38]!==T||t[39]!==N?(P=(0,$.jsxs)(`div`,{className:`rounded-lg border bg-card`,children:[T,N]}),t[38]=T,t[39]=N,t[40]=P):P=t[40];let F;return t[41]!==P||t[42]!==b||t[43]!==x||t[44]!==S?(F=(0,$.jsxs)(`form`,{onSubmit:b,children:[x,S,P]}),t[41]=P,t[42]=b,t[43]=x,t[44]=S,t[45]=F):F=t[45],F}function ot(e,t){if(e.length!==t.length)return!1;let n=new Set(t);return e.every(e=>n.has(e))}function st(e){let t=a(e.Tags),n=e.AvailabilityZone?` · ${e.AvailabilityZone}`:``,r=e.CidrBlock?` (${e.CidrBlock})`:``;return`${e.SubnetId}${t?` — ${t}`:``}${r}${n}`}function ct(e){let t=(0,Te.c)(47),{available:n,current:r,onSubmit:i,isPending:a,error:o,isSuccess:s}=e,c;t[0]===r?c=t[1]:(c=[...r],t[0]=r,t[1]=c);let l=c,[u,d]=(0,Q.useState)(l),f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=e=>{d(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},t[2]=f):f=t[2];let p=f,h;t[3]===l?h=t[4]:(h=()=>d(l),t[3]=l,t[4]=h);let g=h,_;t[5]!==l||t[6]!==u?(_=ot(u,l),t[5]=l,t[6]=u,t[7]=_):_=t[7];let v=!_,y=u.length===0,b;t[8]!==v||t[9]!==y||t[10]!==i||t[11]!==u?(b=e=>{e.preventDefault(),!(!v||y)&&i(u)},t[8]=v,t[9]=y,t[10]=i,t[11]=u,t[12]=b):b=t[12];let x;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-amber-500 bg-amber-500/10 p-3 text-sm text-amber-700 dark:text-amber-400`,role:`note`,children:`Applying a subnet change re-homes the load balancer by relaunching its underlying system VM. Expect a brief data-plane interruption while it restarts.`}),t[13]=x):x=t[13];let S;t[14]===o?S=t[15]:(S=o&&(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive`,role:`alert`,children:o.message||`Failed to update subnets`}),t[14]=o,t[15]=S);let C;t[16]!==v||t[17]!==s?(C=s&&!v&&(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-emerald-500 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400`,role:`status`,children:`Subnets updated.`}),t[16]=v,t[17]=s,t[18]=C):C=t[18];let w;t[19]!==n||t[20]!==u?(w=n.length===0?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No subnets in this VPC.`}):n.map(e=>(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,$.jsx)(`input`,{"aria-label":`Subnet ${e.SubnetId}`,checked:u.includes(e.SubnetId??``),onChange:()=>p(e.SubnetId??``),type:`checkbox`}),(0,$.jsx)(`span`,{className:`font-mono`,children:st(e)})]},e.SubnetId)),t[19]=n,t[20]=u,t[21]=w):w=t[21];let T;t[22]===y?T=t[23]:(T=y&&(0,$.jsx)(`p`,{className:`text-xs text-destructive`,children:`At least one subnet is required.`}),t[22]=y,t[23]=T);let E;t[24]!==T||t[25]!==w?(E=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1 p-4`,children:[w,T]}),t[24]=T,t[25]=w,t[26]=E):E=t[26];let D=v?`Unsaved changes`:`No changes`,O;t[27]===D?O=t[28]:(O=(0,$.jsx)(`span`,{className:`mr-auto text-xs text-muted-foreground`,children:D}),t[27]=D,t[28]=O);let k=a||!v,A;t[29]!==g||t[30]!==k?(A=(0,$.jsx)(m,{disabled:k,onClick:g,size:`sm`,type:`button`,variant:`secondary`,children:`Reset`}),t[29]=g,t[30]=k,t[31]=A):A=t[31];let j=a||!v||y,M=a?`Saving…`:`Save changes`,N;t[32]!==j||t[33]!==M?(N=(0,$.jsx)(m,{disabled:j,size:`sm`,type:`submit`,children:M}),t[32]=j,t[33]=M,t[34]=N):N=t[34];let P;t[35]!==O||t[36]!==A||t[37]!==N?(P=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t p-4`,children:[O,A,N]}),t[35]=O,t[36]=A,t[37]=N,t[38]=P):P=t[38];let F;t[39]!==E||t[40]!==P?(F=(0,$.jsxs)(`div`,{className:`rounded-lg border bg-card`,children:[E,P]}),t[39]=E,t[40]=P,t[41]=F):F=t[41];let I;return t[42]!==F||t[43]!==b||t[44]!==S||t[45]!==C?(I=(0,$.jsxs)(`form`,{onSubmit:b,children:[x,S,C,F]}),t[42]=F,t[43]=b,t[44]=S,t[45]=C,t[46]=I):I=t[46],I}function lt({arn:e}){let t=i(),{data:n}=R(k(e)),{data:r}=R(M(e)),{data:s}=R(N([e])),{data:c}=R(g),{data:l}=R(_),u=w(),d=b(),f=v(),h=C(),y=S(),[x,T]=(0,Q.useState)(!1),E=n.LoadBalancers?.[0];if(!E?.LoadBalancerArn)return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(z,{to:`/ec2/describe-load-balancers`,children:`Back to load balancers`}),(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`Load balancer not found.`})]});let D=async()=>{try{await u.mutateAsync(e),t({to:`/ec2/describe-load-balancers`})}finally{T(!1)}},O=c.Subnets??[],A=e=>{let t=O.find(t=>t.SubnetId===e);if(!t)return e;let n=a(t.Tags),r=t.CidrBlock?` (${t.CidrBlock})`:``;return n?`${e} — ${n}${r}`:`${e}${r}`},j=r.Attributes??[],P=s?.TagDescriptions?.find(t=>t.ResourceArn===e)?.Tags??[],F=(E.SecurityGroups??[]).filter(e=>e!==void 0),I=(l.SecurityGroups??[]).filter(e=>e.VpcId===E.VpcId),ee=O.filter(e=>e.VpcId===E.VpcId),L=(E.AvailabilityZones??[]).map(e=>e.SubnetId).filter(e=>e!==void 0),te=E.Type===`network`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(z,{to:`/ec2/describe-load-balancers`,children:`Back to load balancers`}),u.error&&(0,$.jsx)(V,{error:u.error,msg:`Failed to delete load balancer`}),(0,$.jsxs)(`div`,{className:`space-y-6`,children:[(0,$.jsx)(B,{actions:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(m,{onClick:()=>T(!0),size:`sm`,variant:`destructive`,children:[(0,$.jsx)(p,{className:`size-4`}),`Delete`]}),(0,$.jsx)(fe,{state:E.State?.Code})]}),subtitle:`Load Balancer Details`,title:E.LoadBalancerName??E.LoadBalancerArn}),(0,$.jsxs)(Ce,{defaultValue:`overview`,children:[(0,$.jsxs)(xe,{children:[(0,$.jsx)(be,{value:`overview`,children:`Overview`}),(0,$.jsx)(be,{value:`listeners`,children:`Listeners`}),(0,$.jsx)(be,{value:`subnets`,children:`Subnets`}),!te&&(0,$.jsx)(be,{value:`security-groups`,children:`Security groups`}),(0,$.jsx)(be,{value:`attributes`,children:`Attributes`}),(0,$.jsx)(be,{value:`tags`,children:`Tags`})]}),(0,$.jsxs)(Se,{value:`overview`,children:[(0,$.jsxs)(J,{children:[(0,$.jsx)(J.Header,{children:`Load balancer`}),(0,$.jsxs)(J.Content,{children:[(0,$.jsx)(Y,{label:`ARN`,value:E.LoadBalancerArn}),(0,$.jsx)(Y,{label:`DNS name`,value:E.DNSName}),(0,$.jsx)(Y,{label:`State`,value:E.State?.Reason?`${E.State.Code} — ${E.State.Reason}`:E.State?.Code}),(0,$.jsx)(Y,{label:`Type`,value:E.Type}),(0,$.jsx)(Y,{label:`Scheme`,value:E.Scheme}),(0,$.jsx)(Y,{label:`IP address type`,value:E.IpAddressType}),(0,$.jsx)(Y,{label:`VPC`,value:E.VpcId}),(0,$.jsx)(Y,{label:`Created at`,value:o(E.CreatedTime)})]})]}),(0,$.jsxs)(J,{children:[(0,$.jsx)(J.Header,{children:`Availability zones`}),(0,$.jsx)(J.Content,{children:(E.AvailabilityZones??[]).map(e=>(0,$.jsx)(Y,{label:e.ZoneName??`—`,value:e.SubnetId?A(e.SubnetId):void 0},`${e.ZoneName}-${e.SubnetId}`))})]}),(E.SecurityGroups??[]).length>0&&(0,$.jsxs)(J,{children:[(0,$.jsx)(J.Header,{children:`Security groups`}),(0,$.jsx)(J.Content,{children:(E.SecurityGroups??[]).map(e=>(0,$.jsx)(Y,{label:`Security group`,value:e},e))})]})]}),(0,$.jsx)(Se,{value:`listeners`,children:(0,$.jsx)(tt,{lbType:te?`network`:`application`,loadBalancerArn:e,vpcId:E.VpcId})}),(0,$.jsx)(Se,{value:`subnets`,children:(0,$.jsx)(ct,{available:ee,current:L,error:y.error,isPending:y.isPending,isSuccess:y.isSuccess,onSubmit:t=>y.mutate({loadBalancerArn:e,subnetIds:t})})}),!te&&(0,$.jsx)(Se,{value:`security-groups`,children:(0,$.jsx)(at,{available:I,current:F,error:h.error,isPending:h.isPending,isSuccess:h.isSuccess,onSubmit:t=>h.mutate({loadBalancerArn:e,securityGroupIds:t})})}),(0,$.jsx)(Se,{value:`attributes`,children:(0,$.jsx)(_e,{attributes:j,error:d.error,isPending:d.isPending,isSuccess:d.isSuccess,onSubmit:t=>{d.mutate({loadBalancerArn:e,attributes:t})},specs:ve})}),(0,$.jsx)(Se,{value:`tags`,children:(0,$.jsx)(ye,{error:f.error,isPending:f.isPending,isSuccess:f.isSuccess,onSubmit:t=>f.mutate({resourceArn:e,tags:t,initialKeys:P.map(e=>e.Key??``).filter(e=>e.length>0)}),tags:P})})]})]}),(0,$.jsx)(de,{description:`Are you sure you want to delete load balancer "${E.LoadBalancerName??E.LoadBalancerArn}"? This action cannot be undone.`,isPending:u.isPending,onConfirm:D,onOpenChange:T,open:x,title:`Delete load balancer`})]})}function ut(){let e=(0,Te.c)(2),{id:t}=I.useParams(),n=decodeURIComponent(t),r;return e[0]===n?r=e[1]:(r=(0,$.jsx)(lt,{arn:n}),e[0]=n,e[1]=r),r}export{ut as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./useNavigate.js";import{$t as a,Xt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{c,i as l,n as u,s as d,t as f}from"./select.js";import{t as p}from"./trash-2.js";import{t as m}from"./button.js";import{t as h}from"./certificate-import-dialog.js";import{O as g,w as _}from"./ec2.js";import{_ as v,a as y,d as b,f as x,g as S,h as C,o as w,r as T,s as E,t as D,u as O}from"./elbv2.js";import{i as k,n as A,o as j,r as M,s as N,t as P,u as F}from"./elbv22.js";import{$n as I,An as ee,B as L,C as R,Dn as z,En as B,F as V,I as te,L as H,On as ne,P as U,R as W,Rn as re,Sn as G,Tn as K,U as ie,V as ae,dn as q,hn as J,kn as oe,pn as se,yn as ce,z as le}from"./index.js";import{t as ue}from"./delete-confirmation-dialog.js";import{n as Y,t as X}from"./detail-row.js";import{t as de}from"./state-badge.js";import{c as fe,i as pe,n as me,o as he,s as Z,t as ge}from"./elbv23.js";import{n as _e,r as ve,t as ye}from"./tags-editor.js";import{i as be,n as xe,r as Se,t as Ce}from"./tabs.js";var we=s(`pencil`,[[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}],[`path`,{d:`m15 5 4 4`,key:`1mk7zo`}]]),Te=r(),Q=t(n(),1),$=e(),Ee=80,De=443,Oe=[],ke=[];function Ae(e){let t=e.CertificateArn?.split(`/`).pop()??e.CertificateArn??``;return e.DomainName?`${e.DomainName} · ${t}`:t}function je(e){let t=(0,Te.c)(55),{form:n,protocols:r,targetGroups:i,certificates:a,sslPolicies:o}=e,s=a===void 0?Oe:a,l=o===void 0?ke:o,{control:p,register:g,getValues:_,setValue:v,formState:y}=n,{errors:b}=y,[x,S]=(0,Q.useState)(!1),C;t[0]===p?C=t[1]:(C={control:p,name:`protocol`},t[0]=p,t[1]=C);let w=ee(C),T=w===`HTTPS`,E;t[2]===w?E=t[3]:(E=Z(w),t[2]=w,t[3]=E);let D=E,O;t[4]!==_||t[5]!==v?(O=e=>{if(!e)return;let t=_(`port`);Z(e)?(t===Ee&&v(`port`,De),e===`HTTPS`?_(`sslPolicy`)||v(`sslPolicy`,ge):v(`sslPolicy`,void 0)):(t===De&&v(`port`,Ee),v(`certificateArn`,void 0),v(`sslPolicy`,void 0))},t[4]=_,t[5]=v,t[6]=O):O=t[6];let k=O,A;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`listener-protocol`,children:`Protocol`})}),t[7]=A):A=t[7];let j;t[8]!==k||t[9]!==r?(j=e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:e=>{t.onChange(e),k(e)},value:t.value,children:[(0,$.jsx)(d,{className:`w-full`,id:`listener-protocol`,children:(0,$.jsx)(c,{})}),(0,$.jsx)(u,{children:r.map(Fe)})]})},t[8]=k,t[9]=r,t[10]=j):j=t[10];let M;t[11]!==p||t[12]!==j?(M=(0,$.jsxs)(q,{children:[A,(0,$.jsx)(z,{control:p,name:`protocol`,render:j})]}),t[11]=p,t[12]=j,t[13]=M):M=t[13];let N;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`listener-port`,children:`Port`})}),t[14]=N):N=t[14];let P=!!b.port,F=D?`443`:`80`,I;t[15]===g?I=t[16]:(I=g(`port`,{valueAsNumber:!0}),t[15]=g,t[16]=I);let L;t[17]!==P||t[18]!==F||t[19]!==I?(L=(0,$.jsx)(re,{"aria-invalid":P,id:`listener-port`,inputMode:`numeric`,placeholder:F,type:`number`,...I}),t[17]=P,t[18]=F,t[19]=I,t[20]=L):L=t[20];let R;t[21]===b.port?R=t[22]:(R=(0,$.jsx)(se,{errors:[b.port]}),t[21]=b.port,t[22]=R);let B;t[23]!==L||t[24]!==R?(B=(0,$.jsxs)(q,{children:[N,L,R]}),t[23]=L,t[24]=R,t[25]=B):B=t[25];let V;t[26]!==s||t[27]!==p||t[28]!==b.certificateArn||t[29]!==x||t[30]!==T||t[31]!==D||t[32]!==v||t[33]!==l?(V=D&&(0,$.jsxs)($.Fragment,{children:[(0,$.jsxs)(q,{children:[(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`listener-certificate`,children:`Certificate`})}),(0,$.jsx)(z,{control:p,name:`certificateArn`,render:e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value??``,children:[(0,$.jsx)(d,{"aria-invalid":!!b.certificateArn,className:`w-full`,id:`listener-certificate`,children:(0,$.jsx)(c,{placeholder:`Select certificate`})}),(0,$.jsx)(u,{children:s.map(Pe)})]})}}),(0,$.jsx)(se,{errors:[b.certificateArn]}),(0,$.jsxs)(`div`,{className:`mt-1 flex items-center justify-between`,children:[s.length===0&&(0,$.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No certificates imported yet.`}),(0,$.jsx)(m,{className:`ml-auto`,onClick:()=>S(!0),size:`sm`,type:`button`,variant:`ghost`,children:`Import certificate…`})]})]}),T&&(0,$.jsxs)(q,{children:[(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`listener-ssl-policy`,children:`Security policy`})}),(0,$.jsx)(z,{control:p,name:`sslPolicy`,render:e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value??`ELBSecurityPolicy-2016-08`,children:[(0,$.jsx)(d,{className:`w-full`,id:`listener-ssl-policy`,children:(0,$.jsx)(c,{})}),(0,$.jsx)(u,{children:l.map(Ne)})]})}})]}),(0,$.jsx)(h,{onImported:e=>v(`certificateArn`,e,{shouldValidate:!0}),onOpenChange:S,open:x})]}),t[26]=s,t[27]=p,t[28]=b.certificateArn,t[29]=x,t[30]=T,t[31]=D,t[32]=v,t[33]=l,t[34]=V):V=t[34];let te;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`listener-default-tg`,children:`Default target group`})}),t[35]=te):te=t[35];let H;t[36]!==b.defaultTargetGroupArn||t[37]!==i?(H=e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value??``,children:[(0,$.jsx)(d,{"aria-invalid":!!b.defaultTargetGroupArn,className:`w-full`,id:`listener-default-tg`,children:(0,$.jsx)(c,{placeholder:`Select target group`})}),(0,$.jsx)(u,{children:i.map(Me)})]})},t[36]=b.defaultTargetGroupArn,t[37]=i,t[38]=H):H=t[38];let ne;t[39]!==p||t[40]!==H?(ne=(0,$.jsx)(z,{control:p,name:`defaultTargetGroupArn`,render:H}),t[39]=p,t[40]=H,t[41]=ne):ne=t[41];let U;t[42]===b.defaultTargetGroupArn?U=t[43]:(U=(0,$.jsx)(se,{errors:[b.defaultTargetGroupArn]}),t[42]=b.defaultTargetGroupArn,t[43]=U);let W;t[44]===i.length?W=t[45]:(W=i.length===0&&(0,$.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`No target groups available in this VPC. Create one first.`}),t[44]=i.length,t[45]=W);let G;t[46]!==ne||t[47]!==U||t[48]!==W?(G=(0,$.jsxs)(q,{children:[te,ne,U,W]}),t[46]=ne,t[47]=U,t[48]=W,t[49]=G):G=t[49];let K;return t[50]!==B||t[51]!==V||t[52]!==G||t[53]!==M?(K=(0,$.jsxs)($.Fragment,{children:[M,B,V,G]}),t[50]=B,t[51]=V,t[52]=G,t[53]=M,t[54]=K):K=t[54],K}function Me(e){return(0,$.jsxs)(l,{value:e.TargetGroupArn??``,children:[e.TargetGroupName,` · `,e.Protocol,`:`,e.Port]},e.TargetGroupArn)}function Ne(e){return(0,$.jsx)(l,{value:e.Name??``,children:e.Name},e.Name)}function Pe(e){return(0,$.jsx)(l,{value:e.CertificateArn??``,children:Ae(e)},e.CertificateArn)}function Fe(e){return(0,$.jsx)(l,{value:e,children:e},e)}function Ie({listenerArn:e,targetGroups:t}){let{data:n}=I(P(e)),r=T(),i=x(),a=E(),[o,s]=(0,Q.useState)(!1),[c,l]=(0,Q.useState)(),[u,d]=(0,Q.useState)(),f=n.Rules??[],h=new Map;for(let e of t)e.TargetGroupArn&&e.TargetGroupName&&h.set(e.TargetGroupArn,e.TargetGroupName);return(0,$.jsxs)(`div`,{className:`space-y-3`,children:[r.error&&(0,$.jsx)(G,{error:r.error,msg:`Failed to create rule`}),i.error&&(0,$.jsx)(G,{error:i.error,msg:`Failed to modify rule`}),a.error&&(0,$.jsx)(G,{error:a.error,msg:`Failed to delete rule`}),(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[f.length,` rule`,f.length===1?``:`s`,` (including default)`]}),(0,$.jsx)(m,{onClick:()=>s(!0),size:`sm`,children:`Add rule`})]}),(0,$.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,$.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Priority`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Conditions`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Forward to`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,$.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,$.jsx)(`tbody`,{children:f.map(e=>(0,$.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,$.jsx)(`td`,{className:`px-4 py-2`,children:e.Priority}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:Le(e.Conditions,e.IsDefault===!0)}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:ze(e,h)}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-right`,children:e.IsDefault===!0?(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`Edit via listener`}):(0,$.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,$.jsx)(m,{"aria-label":`Edit rule ${e.Priority}`,onClick:()=>l(e),size:`sm`,variant:`ghost`,children:(0,$.jsx)(we,{className:`size-4`})}),(0,$.jsx)(m,{"aria-label":`Delete rule ${e.Priority}`,onClick:()=>d(e),size:`sm`,variant:`ghost`,children:(0,$.jsx)(p,{className:`size-4`})})]})})]},e.RuleArn??e.Priority??`default`))})]})}),o&&(0,$.jsx)(We,{isPending:r.isPending,mode:`add`,onOpenChange:s,onSubmit:async t=>{try{await r.mutateAsync({listenerArn:e,priority:t.priority,conditions:t.conditions.map(Be),forwardTargetGroupArn:t.forwardTargetGroupArn}),s(!1)}catch{}},open:o,targetGroups:t}),(0,$.jsx)(We,{initialRule:c,isPending:i.isPending,mode:`edit`,onOpenChange:e=>!e&&l(void 0),onSubmit:async t=>{if(c?.RuleArn)try{await i.mutateAsync({ruleArn:c.RuleArn,listenerArn:e,conditions:t.conditions.map(Be),forwardTargetGroupArn:t.forwardTargetGroupArn}),l(void 0)}catch{}},open:c!==void 0,targetGroups:t}),(0,$.jsx)(ue,{description:u?`Delete rule with priority ${u.Priority}? This cannot be undone.`:``,isPending:a.isPending,onConfirm:async()=>{if(u?.RuleArn)try{await a.mutateAsync({ruleArn:u.RuleArn,listenerArn:e})}finally{d(void 0)}},onOpenChange:e=>!e&&d(void 0),open:u!==void 0,title:`Delete rule`})]})}function Le(e,t){return t?`default`:!e||e.length===0?`—`:e.map(e=>{let t=Re(e);return`${e.Field}: ${t.join(`, `)}`}).join(` AND `)}function Re(e){if(e.Field===void 0)return e.Values??[];switch(e.Field){case`host-header`:return e.HostHeaderConfig?.Values??e.Values??[];case`path-pattern`:return e.PathPatternConfig?.Values??e.Values??[];case`http-header`:{let t=e.HttpHeaderConfig?.HttpHeaderName??`?`;return(e.HttpHeaderConfig?.Values??[]).map(e=>`${t}=${e}`)}case`http-request-method`:return e.HttpRequestMethodConfig?.Values??[];case`source-ip`:return e.SourceIpConfig?.Values??[];case`query-string`:return(e.QueryStringConfig?.Values??[]).map(e=>e.Key?`${e.Key}=${e.Value??``}`:e.Value??``);default:return e.Values??[]}}function ze(e,t){let n=e.Actions?.[0];return n?n.Type===`forward`&&n.TargetGroupArn?t.get(n.TargetGroupArn)??n.TargetGroupArn:n.Type??`—`:`—`}function Be(e){let t=e.rawValues.split(/[\n,]/).map(e=>e.trim()).filter(e=>e.length>0);return e.field===`query-string`?{field:e.field,values:[],queryStringPairs:t.map(e=>{let t=e.indexOf(`=`);return t===-1?{value:e}:{key:e.slice(0,t),value:e.slice(t+1)}})}:{field:e.field,values:t,httpHeaderName:e.httpHeaderName}}var Ve=1,He=[{field:`path-pattern`,rawValues:``}];function Ue(e){let t=Number(e.Priority??Ve),n=e.Conditions?.map(e=>Xe(e))??[];return{priority:Number.isFinite(t)?t:Ve,conditions:n.length>0?n:He,forwardTargetGroupArn:e.Actions?.[0]?.TargetGroupArn??``}}function We(e){let t=(0,Te.c)(84),{open:n,onOpenChange:r,onSubmit:i,isPending:a,targetGroups:o,mode:s,initialRule:l}=e,p,h;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(p=B(pe),h={priority:Ve,conditions:He,forwardTargetGroupArn:``},t[0]=p,t[1]=h):(p=t[0],h=t[1]);let g;t[2]===l?g=t[3]:(g=l?Ue(l):void 0,t[2]=l,t[3]=g);let _;t[4]===g?_=t[5]:(_={resolver:p,defaultValues:h,values:g},t[4]=g,t[5]=_);let v=oe(_),y;t[6]===v.control?y=t[7]:(y={control:v.control,name:`conditions`},t[6]=v.control,t[7]=y);let{fields:b,append:x,remove:S}=ne(y),C;t[8]!==v||t[9]!==i?(C=v.handleSubmit(i),t[8]=v,t[9]=i,t[10]=C):C=t[10];let w=C,T;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(T={maxWidth:`40rem`,width:`calc(100vw - 2rem)`},t[11]=T):T=t[11];let E=s===`add`?`Add rule`:`Edit rule`,D;t[12]===E?D=t[13]:(D=(0,$.jsx)(ie,{children:E}),t[12]=E,t[13]=D);let O;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,$.jsx)(le,{children:`Routing rules match incoming requests and forward them to a target group. Rules evaluate in priority order; the listener default applies when no rule matches.`}),t[14]=O):O=t[14];let k;t[15]===D?k=t[16]:(k=(0,$.jsxs)(ae,{children:[D,O]}),t[15]=D,t[16]=k);let A;t[17]===w?A=t[18]:(A=e=>{e.preventDefault(),w()},t[17]=w,t[18]=A);let j;t[19]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`rule-priority`,children:`Priority`})}),t[19]=j):j=t[19];let M=!!v.formState.errors.priority,N;t[20]===v?N=t[21]:(N=v.register(`priority`,{valueAsNumber:!0}),t[20]=v,t[21]=N);let P;t[22]!==M||t[23]!==N?(P=(0,$.jsx)(re,{"aria-invalid":M,id:`rule-priority`,inputMode:`numeric`,type:`number`,...N}),t[22]=M,t[23]=N,t[24]=P):P=t[24];let F;t[25]===v.formState.errors.priority?F=t[26]:(F=(0,$.jsx)(se,{errors:[v.formState.errors.priority]}),t[25]=v.formState.errors.priority,t[26]=F);let I;t[27]!==P||t[28]!==F?(I=(0,$.jsxs)(q,{children:[j,P,F]}),t[27]=P,t[28]=F,t[29]=I):I=t[29];let ee;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,$.jsx)(J,{children:`Conditions`}),t[30]=ee):ee=t[30];let R=b.length>=5,U;t[31]===x?U=t[32]:(U=()=>x({field:`path-pattern`,rawValues:``}),t[31]=x,t[32]=U);let G;t[33]!==R||t[34]!==U?(G=(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[ee,(0,$.jsx)(m,{disabled:R,onClick:U,size:`sm`,type:`button`,variant:`outline`,children:`Add condition`})]}),t[33]=R,t[34]=U,t[35]=G):G=t[35];let K;if(t[36]!==b||t[37]!==v||t[38]!==S){let e;t[40]!==b.length||t[41]!==v||t[42]!==S?(e=(e,t)=>(0,$.jsx)(Ke,{form:v,index:t,onRemove:b.length>1?()=>S(t):void 0},e.id),t[40]=b.length,t[41]=v,t[42]=S,t[43]=e):e=t[43],K=b.map(e),t[36]=b,t[37]=v,t[38]=S,t[39]=K}else K=t[39];let ce;t[44]!==G||t[45]!==K?(ce=(0,$.jsxs)(`div`,{className:`space-y-3`,children:[G,K]}),t[44]=G,t[45]=K,t[46]=ce):ce=t[46];let ue;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(ue=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`rule-forward-tg`,children:`Forward to target group`})}),t[47]=ue):ue=t[47];let Y;t[48]!==v.formState.errors.forwardTargetGroupArn||t[49]!==o?(Y=e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value??``,children:[(0,$.jsx)(d,{"aria-invalid":!!v.formState.errors.forwardTargetGroupArn,className:`w-full`,id:`rule-forward-tg`,children:(0,$.jsx)(c,{placeholder:`Select target group`})}),(0,$.jsx)(u,{children:o.map(Ge)})]})},t[48]=v.formState.errors.forwardTargetGroupArn,t[49]=o,t[50]=Y):Y=t[50];let X;t[51]!==v.control||t[52]!==Y?(X=(0,$.jsx)(z,{control:v.control,name:`forwardTargetGroupArn`,render:Y}),t[51]=v.control,t[52]=Y,t[53]=X):X=t[53];let de;t[54]===v.formState.errors.forwardTargetGroupArn?de=t[55]:(de=(0,$.jsx)(se,{errors:[v.formState.errors.forwardTargetGroupArn]}),t[54]=v.formState.errors.forwardTargetGroupArn,t[55]=de);let fe;t[56]!==X||t[57]!==de?(fe=(0,$.jsxs)(q,{children:[ue,X,de]}),t[56]=X,t[57]=de,t[58]=fe):fe=t[58];let me;t[59]!==A||t[60]!==I||t[61]!==ce||t[62]!==fe?(me=(0,$.jsxs)(`form`,{className:`min-w-0 space-y-4`,onSubmit:A,children:[I,ce,fe]}),t[59]=A,t[60]=I,t[61]=ce,t[62]=fe,t[63]=me):me=t[63];let he;t[64]===a?he=t[65]:(he=(0,$.jsx)(H,{disabled:a,children:`Cancel`}),t[64]=a,t[65]=he);let Z;t[66]!==a||t[67]!==s?(Z=Ze(s,a),t[66]=a,t[67]=s,t[68]=Z):Z=t[68];let ge;t[69]!==w||t[70]!==a||t[71]!==Z?(ge=(0,$.jsx)(te,{disabled:a,onClick:w,children:Z}),t[69]=w,t[70]=a,t[71]=Z,t[72]=ge):ge=t[72];let _e;t[73]!==he||t[74]!==ge?(_e=(0,$.jsxs)(L,{children:[he,ge]}),t[73]=he,t[74]=ge,t[75]=_e):_e=t[75];let ve;t[76]!==k||t[77]!==me||t[78]!==_e?(ve=(0,$.jsxs)(W,{className:`grid-cols-[minmax(0,1fr)]`,style:T,children:[k,me,_e]}),t[76]=k,t[77]=me,t[78]=_e,t[79]=ve):ve=t[79];let ye;return t[80]!==r||t[81]!==n||t[82]!==ve?(ye=(0,$.jsx)(V,{onOpenChange:r,open:n,children:ve}),t[80]=r,t[81]=n,t[82]=ve,t[83]=ye):ye=t[83],ye}function Ge(e){return(0,$.jsxs)(l,{value:e.TargetGroupArn??``,children:[e.TargetGroupName,` · `,e.Protocol,`:`,e.Port]},e.TargetGroupArn)}function Ke(e){let t=(0,Te.c)(54),{form:n,index:r,onRemove:i}=e,a,o,s,h,g,_,v,y,b,x;if(t[0]!==n||t[1]!==r||t[2]!==i){let e=n.watch(`conditions.${r}.field`);s=n.formState.errors.conditions?.[r],y=`space-y-2 rounded-md border p-3`;let S=`rule-cond-${r}-field`,C;t[13]===S?C=t[14]:(C=(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:S,children:`Type`})}),t[13]=S,t[14]=C);let w=`conditions.${r}.field`,T;t[15]===r?T=t[16]:(T=e=>{let{field:t}=e;return(0,$.jsxs)(f,{onValueChange:t.onChange,value:t.value,children:[(0,$.jsx)(d,{className:`w-full`,id:`rule-cond-${r}-field`,children:(0,$.jsx)(c,{})}),(0,$.jsxs)(u,{children:[(0,$.jsx)(l,{value:`path-pattern`,children:`Path pattern`}),(0,$.jsx)(l,{value:`host-header`,children:`Host header`}),(0,$.jsx)(l,{value:`http-header`,children:`HTTP header`}),(0,$.jsx)(l,{value:`http-request-method`,children:`HTTP method`}),(0,$.jsx)(l,{value:`source-ip`,children:`Source IP CIDR`}),(0,$.jsx)(l,{value:`query-string`,children:`Query string`})]})]})},t[15]=r,t[16]=T);let E;t[17]!==n.control||t[18]!==w||t[19]!==T?(E=(0,$.jsx)(z,{control:n.control,name:w,render:T}),t[17]=n.control,t[18]=w,t[19]=T,t[20]=E):E=t[20];let D;t[21]!==E||t[22]!==C?(D=(0,$.jsxs)(`div`,{className:`flex-1`,children:[C,E]}),t[21]=E,t[22]=C,t[23]=D):D=t[23];let O;t[24]!==r||t[25]!==i?(O=i&&(0,$.jsx)(m,{"aria-label":`Remove condition ${r+1}`,className:`self-end`,onClick:i,size:`sm`,type:`button`,variant:`ghost`,children:(0,$.jsx)(p,{className:`size-4`})}),t[24]=r,t[25]=i,t[26]=O):O=t[26],t[27]!==D||t[28]!==O?(b=(0,$.jsxs)(`div`,{className:`flex gap-2`,children:[D,O]}),t[27]=D,t[28]=O,t[29]=b):b=t[29],x=e===`http-header`&&(0,$.jsxs)(q,{children:[(0,$.jsx)(J,{children:(0,$.jsx)(`label`,{htmlFor:`rule-cond-${r}-hdr-name`,children:`Header name`})}),(0,$.jsx)(re,{"aria-invalid":!!s?.httpHeaderName,id:`rule-cond-${r}-hdr-name`,placeholder:`X-Tenant`,...n.register(`conditions.${r}.httpHeaderName`)}),(0,$.jsx)(se,{errors:[s?.httpHeaderName]})]}),o=q;let k=`rule-cond-${r}-values`,A;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,$.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:`(comma or newline separated, max 5)`}),t[30]=A):A=t[30],t[31]===k?v=t[32]:(v=(0,$.jsx)(J,{children:(0,$.jsxs)(`label`,{htmlFor:k,children:[`Values`,` `,A]})}),t[31]=k,t[32]=v),a=re,h=!!s?.rawValues,g=`rule-cond-${r}-values`,_=qe(e),t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=s,t[6]=h,t[7]=g,t[8]=_,t[9]=v,t[10]=y,t[11]=b,t[12]=x}else a=t[3],o=t[4],s=t[5],h=t[6],g=t[7],_=t[8],v=t[9],y=t[10],b=t[11],x=t[12];let S;t[33]!==n||t[34]!==r?(S=n.register(`conditions.${r}.rawValues`),t[33]=n,t[34]=r,t[35]=S):S=t[35];let C;t[36]!==a||t[37]!==h||t[38]!==g||t[39]!==_||t[40]!==S?(C=(0,$.jsx)(a,{"aria-invalid":h,id:g,placeholder:_,...S}),t[36]=a,t[37]=h,t[38]=g,t[39]=_,t[40]=S,t[41]=C):C=t[41];let w=s?.rawValues,T;t[42]===w?T=t[43]:(T=(0,$.jsx)(se,{errors:[w]}),t[42]=w,t[43]=T);let E;t[44]!==o||t[45]!==T||t[46]!==v||t[47]!==C?(E=(0,$.jsxs)(o,{children:[v,C,T]}),t[44]=o,t[45]=T,t[46]=v,t[47]=C,t[48]=E):E=t[48];let D;return t[49]!==E||t[50]!==y||t[51]!==b||t[52]!==x?(D=(0,$.jsxs)(`div`,{className:y,children:[b,x,E]}),t[49]=E,t[50]=y,t[51]=b,t[52]=x,t[53]=D):D=t[53],D}function qe(e){switch(e){case`path-pattern`:return`/api/*`;case`host-header`:return`*.example.com`;case`http-header`:return`acme`;case`http-request-method`:return`GET, POST`;case`source-ip`:return`10.0.0.0/8`;case`query-string`:return`key=value`;default:return``}}var Je=new Set([`host-header`,`path-pattern`,`http-header`,`http-request-method`,`source-ip`,`query-string`]);function Ye(e){return e!==void 0&&Je.has(e)}function Xe(e){let t=Re(e);return{field:Ye(e.Field)?e.Field:`path-pattern`,httpHeaderName:e.HttpHeaderConfig?.HttpHeaderName,rawValues:t.join(`, `)}}function Ze(e,t){return t?e===`add`?`Adding…`:`Saving…`:e===`add`?`Add rule`:`Save changes`}function Qe(e){return{protocol:he(e),port:80,defaultTargetGroupArn:``}}function $e(e,t){let n=t.find(t=>t===e.Protocol)??t[0]??`HTTP`,r=Z(n);return{protocol:n,port:e.Port??80,defaultTargetGroupArn:e.DefaultActions?.[0]?.TargetGroupArn??``,certificateArn:r?e.Certificates?.[0]?.CertificateArn:void 0,sslPolicy:n===`HTTPS`?e.SslPolicy:void 0}}function et(e){if(e.Protocol!==`HTTPS`)return`—`;let t=e.Certificates?.[0]?.CertificateArn?.split(`/`).pop(),n=e.SslPolicy;return t&&n?`${n} · ${t}`:n??t??`—`}function tt({loadBalancerArn:e,vpcId:t,lbType:n}){let r=fe(n),{data:i}=I(A(e)),{data:a}=I(F),{data:o}=I(U),{data:s}=I(j),c=D(),l=y(),u=O(),[d,f]=(0,Q.useState)(!1),[h,g]=(0,Q.useState)(),[_,v]=(0,Q.useState)(),[b,x]=(0,Q.useState)(),S=i.Listeners??[],C=a.TargetGroups??[],w=C.filter(e=>e.VpcId===t),T=o.CertificateSummaryList??[],E=s.SslPolicies??[],k=new Map;for(let e of C)e.TargetGroupArn&&e.TargetGroupName&&k.set(e.TargetGroupArn,e.TargetGroupName);let M=e=>{let t=e.DefaultActions?.[0];if(!t)return`—`;if(t.Type===`forward`&&t.TargetGroupArn){let e=k.get(t.TargetGroupArn);return e?`forward → ${e}`:`forward → ${t.TargetGroupArn}`}return t.Type??`—`};return(0,$.jsxs)(`div`,{className:`space-y-3`,children:[c.error&&(0,$.jsx)(G,{error:c.error,msg:`Failed to create listener`}),u.error&&(0,$.jsx)(G,{error:u.error,msg:`Failed to modify listener`}),l.error&&(0,$.jsx)(G,{error:l.error,msg:`Failed to delete listener`}),(0,$.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,$.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[S.length,` listener`,S.length===1?``:`s`]}),(0,$.jsx)(m,{onClick:()=>f(!0),size:`sm`,children:`Add listener`})]}),S.length===0?(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`No listeners configured.`}):(0,$.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,$.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,$.jsx)(`thead`,{children:(0,$.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Protocol`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Port`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`TLS`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Default action`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Listener ARN`}),(0,$.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,$.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,$.jsx)(`tbody`,{children:S.map(e=>{let t=e.ListenerArn??``,n=b===t;return(0,$.jsxs)(Q.Fragment,{children:[(0,$.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,$.jsx)(`td`,{className:`px-4 py-2`,children:e.Protocol}),(0,$.jsx)(`td`,{className:`px-4 py-2`,children:e.Port}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:et(e)}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:M(e)}),(0,$.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:t}),(0,$.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,$.jsxs)(`div`,{className:`flex justify-end gap-1`,children:[(0,$.jsx)(m,{"aria-label":`${n?`Hide`:`Show`} rules for listener ${e.Protocol}:${e.Port}`,onClick:()=>x(n?void 0:t),size:`sm`,variant:`ghost`,children:n?`Hide rules`:`Rules`}),(0,$.jsx)(m,{"aria-label":`Edit listener ${e.Protocol}:${e.Port}`,onClick:()=>g(e),size:`sm`,variant:`ghost`,children:(0,$.jsx)(we,{className:`size-4`})}),(0,$.jsx)(m,{"aria-label":`Delete listener ${e.Protocol}:${e.Port}`,onClick:()=>v(e),size:`sm`,variant:`ghost`,children:(0,$.jsx)(p,{className:`size-4`})})]})})]}),n&&t&&(0,$.jsx)(`tr`,{className:`border-b bg-muted/30 last:border-0`,children:(0,$.jsx)(`td`,{className:`px-4 py-3`,colSpan:6,children:(0,$.jsx)(Ie,{listenerArn:t,targetGroups:w})})})]},t)})})]})}),d&&(0,$.jsx)(nt,{certificates:T,isPending:c.isPending,lbType:n,onOpenChange:f,onSubmit:async t=>{try{await c.mutateAsync({loadBalancerArn:e,protocol:t.protocol,port:t.port,defaultTargetGroupArn:t.defaultTargetGroupArn,certificateArn:t.certificateArn,sslPolicy:t.sslPolicy}),f(!1)}catch{}},open:d,protocols:r,sslPolicies:E,targetGroups:w}),(0,$.jsx)(rt,{certificates:T,isPending:u.isPending,listener:h,onOpenChange:e=>!e&&g(void 0),onSubmit:async t=>{if(h?.ListenerArn)try{await u.mutateAsync({listenerArn:h.ListenerArn,loadBalancerArn:e,protocol:t.protocol,port:t.port,defaultTargetGroupArn:t.defaultTargetGroupArn,certificateArn:t.certificateArn,sslPolicy:t.sslPolicy}),g(void 0)}catch{}},protocols:r,sslPolicies:E,targetGroups:w}),(0,$.jsx)(ue,{description:_?`Delete listener ${_.Protocol}:${_.Port}? This cannot be undone.`:``,isPending:l.isPending,onConfirm:async()=>{if(_?.ListenerArn)try{await l.mutateAsync(_.ListenerArn)}finally{v(void 0)}},onOpenChange:e=>!e&&v(void 0),open:_!==void 0,title:`Delete listener`})]})}function nt(e){let t=(0,Te.c)(37),{open:n,onOpenChange:r,lbType:i,protocols:a,targetGroups:o,certificates:s,sslPolicies:c,isPending:l,onSubmit:u}=e,d;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=B(me),t[0]=d):d=t[0];let f;t[1]===i?f=t[2]:(f=Qe(i),t[1]=i,t[2]=f);let p;t[3]===f?p=t[4]:(p={resolver:d,defaultValues:f},t[3]=f,t[4]=p);let m=oe(p),h;t[5]!==m||t[6]!==u?(h=m.handleSubmit(u),t[5]=m,t[6]=u,t[7]=h):h=t[7];let g=h,_;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(_={maxWidth:`32rem`,width:`calc(100vw - 2rem)`},t[8]=_):_=t[8];let v;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,$.jsxs)(ae,{children:[(0,$.jsx)(ie,{children:`Add listener`}),(0,$.jsx)(le,{children:`Listeners forward incoming traffic to a default target group.`})]}),t[9]=v):v=t[9];let y;t[10]===g?y=t[11]:(y=e=>{e.preventDefault(),g()},t[10]=g,t[11]=y);let b;t[12]!==s||t[13]!==m||t[14]!==a||t[15]!==c||t[16]!==o?(b=(0,$.jsx)(je,{certificates:s,form:m,protocols:a,sslPolicies:c,targetGroups:o}),t[12]=s,t[13]=m,t[14]=a,t[15]=c,t[16]=o,t[17]=b):b=t[17];let x;t[18]!==y||t[19]!==b?(x=(0,$.jsx)(`form`,{className:`min-w-0 space-y-4`,onSubmit:y,children:b}),t[18]=y,t[19]=b,t[20]=x):x=t[20];let S;t[21]===l?S=t[22]:(S=(0,$.jsx)(H,{disabled:l,children:`Cancel`}),t[21]=l,t[22]=S);let C=l?`Adding…`:`Add listener`,w;t[23]!==g||t[24]!==l||t[25]!==C?(w=(0,$.jsx)(te,{disabled:l,onClick:g,children:C}),t[23]=g,t[24]=l,t[25]=C,t[26]=w):w=t[26];let T;t[27]!==S||t[28]!==w?(T=(0,$.jsxs)(L,{children:[S,w]}),t[27]=S,t[28]=w,t[29]=T):T=t[29];let E;t[30]!==T||t[31]!==x?(E=(0,$.jsxs)(W,{className:`grid-cols-[minmax(0,1fr)]`,style:_,children:[v,x,T]}),t[30]=T,t[31]=x,t[32]=E):E=t[32];let D;return t[33]!==r||t[34]!==n||t[35]!==E?(D=(0,$.jsx)(V,{onOpenChange:r,open:n,children:E}),t[33]=r,t[34]=n,t[35]=E,t[36]=D):D=t[36],D}function rt(e){let t=(0,Te.c)(39),{listener:n,onOpenChange:r,protocols:i,targetGroups:a,certificates:o,sslPolicies:s,isPending:c,onSubmit:l}=e,u=n!==void 0,d,f;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(d=B(me),f={protocol:`HTTP`,port:80,defaultTargetGroupArn:``},t[0]=d,t[1]=f):(d=t[0],f=t[1]);let p;t[2]!==n||t[3]!==i?(p=n?$e(n,i):void 0,t[2]=n,t[3]=i,t[4]=p):p=t[4];let m;t[5]===p?m=t[6]:(m={resolver:d,defaultValues:f,values:p},t[5]=p,t[6]=m);let h=oe(m),g;t[7]!==h||t[8]!==l?(g=h.handleSubmit(l),t[7]=h,t[8]=l,t[9]=g):g=t[9];let _=g,v;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(v={maxWidth:`32rem`,width:`calc(100vw - 2rem)`},t[10]=v):v=t[10];let y;t[11]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,$.jsxs)(ae,{children:[(0,$.jsx)(ie,{children:`Edit listener`}),(0,$.jsx)(le,{children:`Update port, protocol, or default target group. Changes apply without dropping the listener.`})]}),t[11]=y):y=t[11];let b;t[12]===_?b=t[13]:(b=e=>{e.preventDefault(),_()},t[12]=_,t[13]=b);let x;t[14]!==o||t[15]!==h||t[16]!==i||t[17]!==s||t[18]!==a?(x=(0,$.jsx)(je,{certificates:o,form:h,protocols:i,sslPolicies:s,targetGroups:a}),t[14]=o,t[15]=h,t[16]=i,t[17]=s,t[18]=a,t[19]=x):x=t[19];let S;t[20]!==b||t[21]!==x?(S=(0,$.jsx)(`form`,{className:`min-w-0 space-y-4`,onSubmit:b,children:x}),t[20]=b,t[21]=x,t[22]=S):S=t[22];let C;t[23]===c?C=t[24]:(C=(0,$.jsx)(H,{disabled:c,children:`Cancel`}),t[23]=c,t[24]=C);let w=c?`Saving…`:`Save changes`,T;t[25]!==_||t[26]!==c||t[27]!==w?(T=(0,$.jsx)(te,{disabled:c,onClick:_,children:w}),t[25]=_,t[26]=c,t[27]=w,t[28]=T):T=t[28];let E;t[29]!==C||t[30]!==T?(E=(0,$.jsxs)(L,{children:[C,T]}),t[29]=C,t[30]=T,t[31]=E):E=t[31];let D;t[32]!==S||t[33]!==E?(D=(0,$.jsxs)(W,{className:`grid-cols-[minmax(0,1fr)]`,style:v,children:[y,S,E]}),t[32]=S,t[33]=E,t[34]=D):D=t[34];let O;return t[35]!==r||t[36]!==u||t[37]!==D?(O=(0,$.jsx)(V,{onOpenChange:r,open:u,children:D}),t[35]=r,t[36]=u,t[37]=D,t[38]=O):O=t[38],O}function it(e,t){if(e.length!==t.length)return!1;let n=new Set(t);return e.every(e=>n.has(e))}function at(e){let t=(0,Te.c)(46),{available:n,current:r,onSubmit:i,isPending:a,error:o,isSuccess:s}=e,c;t[0]===r?c=t[1]:(c=[...r],t[0]=r,t[1]=c);let l=c,[u,d]=(0,Q.useState)(l),f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=e=>{d(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},t[2]=f):f=t[2];let p=f,h;t[3]===l?h=t[4]:(h=()=>d(l),t[3]=l,t[4]=h);let g=h,_;t[5]!==l||t[6]!==u?(_=it(u,l),t[5]=l,t[6]=u,t[7]=_):_=t[7];let v=!_,y=u.length===0,b;t[8]!==v||t[9]!==y||t[10]!==i||t[11]!==u?(b=e=>{e.preventDefault(),!(!v||y)&&i(u)},t[8]=v,t[9]=y,t[10]=i,t[11]=u,t[12]=b):b=t[12];let x;t[13]===o?x=t[14]:(x=o&&(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive`,role:`alert`,children:o.message||`Failed to update security groups`}),t[13]=o,t[14]=x);let S;t[15]!==v||t[16]!==s?(S=s&&!v&&(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-emerald-500 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400`,role:`status`,children:`Security groups updated.`}),t[15]=v,t[16]=s,t[17]=S):S=t[17];let C;t[18]!==n||t[19]!==u?(C=n.length===0?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No security groups in this VPC.`}):n.map(e=>(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,$.jsx)(`input`,{"aria-label":`Security group ${e.GroupId} (${e.GroupName})`,checked:u.includes(e.GroupId??``),onChange:()=>p(e.GroupId??``),type:`checkbox`}),(0,$.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId)),t[18]=n,t[19]=u,t[20]=C):C=t[20];let w;t[21]===y?w=t[22]:(w=y&&(0,$.jsx)(`p`,{className:`text-xs text-destructive`,children:`At least one security group is required.`}),t[21]=y,t[22]=w);let T;t[23]!==C||t[24]!==w?(T=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1 p-4`,children:[C,w]}),t[23]=C,t[24]=w,t[25]=T):T=t[25];let E=v?`Unsaved changes`:`No changes`,D;t[26]===E?D=t[27]:(D=(0,$.jsx)(`span`,{className:`mr-auto text-xs text-muted-foreground`,children:E}),t[26]=E,t[27]=D);let O=a||!v,k;t[28]!==g||t[29]!==O?(k=(0,$.jsx)(m,{disabled:O,onClick:g,size:`sm`,type:`button`,variant:`secondary`,children:`Reset`}),t[28]=g,t[29]=O,t[30]=k):k=t[30];let A=a||!v||y,j=a?`Saving…`:`Save changes`,M;t[31]!==A||t[32]!==j?(M=(0,$.jsx)(m,{disabled:A,size:`sm`,type:`submit`,children:j}),t[31]=A,t[32]=j,t[33]=M):M=t[33];let N;t[34]!==D||t[35]!==k||t[36]!==M?(N=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t p-4`,children:[D,k,M]}),t[34]=D,t[35]=k,t[36]=M,t[37]=N):N=t[37];let P;t[38]!==T||t[39]!==N?(P=(0,$.jsxs)(`div`,{className:`rounded-lg border bg-card`,children:[T,N]}),t[38]=T,t[39]=N,t[40]=P):P=t[40];let F;return t[41]!==P||t[42]!==b||t[43]!==x||t[44]!==S?(F=(0,$.jsxs)(`form`,{onSubmit:b,children:[x,S,P]}),t[41]=P,t[42]=b,t[43]=x,t[44]=S,t[45]=F):F=t[45],F}function ot(e,t){if(e.length!==t.length)return!1;let n=new Set(t);return e.every(e=>n.has(e))}function st(e){let t=a(e.Tags),n=e.AvailabilityZone?` · ${e.AvailabilityZone}`:``,r=e.CidrBlock?` (${e.CidrBlock})`:``;return`${e.SubnetId}${t?` — ${t}`:``}${r}${n}`}function ct(e){let t=(0,Te.c)(47),{available:n,current:r,onSubmit:i,isPending:a,error:o,isSuccess:s}=e,c;t[0]===r?c=t[1]:(c=[...r],t[0]=r,t[1]=c);let l=c,[u,d]=(0,Q.useState)(l),f;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=e=>{d(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},t[2]=f):f=t[2];let p=f,h;t[3]===l?h=t[4]:(h=()=>d(l),t[3]=l,t[4]=h);let g=h,_;t[5]!==l||t[6]!==u?(_=ot(u,l),t[5]=l,t[6]=u,t[7]=_):_=t[7];let v=!_,y=u.length===0,b;t[8]!==v||t[9]!==y||t[10]!==i||t[11]!==u?(b=e=>{e.preventDefault(),!(!v||y)&&i(u)},t[8]=v,t[9]=y,t[10]=i,t[11]=u,t[12]=b):b=t[12];let x;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-amber-500 bg-amber-500/10 p-3 text-sm text-amber-700 dark:text-amber-400`,role:`note`,children:`Applying a subnet change re-homes the load balancer by relaunching its underlying system VM. Expect a brief data-plane interruption while it restarts.`}),t[13]=x):x=t[13];let S;t[14]===o?S=t[15]:(S=o&&(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive`,role:`alert`,children:o.message||`Failed to update subnets`}),t[14]=o,t[15]=S);let C;t[16]!==v||t[17]!==s?(C=s&&!v&&(0,$.jsx)(`div`,{className:`mb-4 rounded-md border border-emerald-500 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400`,role:`status`,children:`Subnets updated.`}),t[16]=v,t[17]=s,t[18]=C):C=t[18];let w;t[19]!==n||t[20]!==u?(w=n.length===0?(0,$.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No subnets in this VPC.`}):n.map(e=>(0,$.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,$.jsx)(`input`,{"aria-label":`Subnet ${e.SubnetId}`,checked:u.includes(e.SubnetId??``),onChange:()=>p(e.SubnetId??``),type:`checkbox`}),(0,$.jsx)(`span`,{className:`font-mono`,children:st(e)})]},e.SubnetId)),t[19]=n,t[20]=u,t[21]=w):w=t[21];let T;t[22]===y?T=t[23]:(T=y&&(0,$.jsx)(`p`,{className:`text-xs text-destructive`,children:`At least one subnet is required.`}),t[22]=y,t[23]=T);let E;t[24]!==T||t[25]!==w?(E=(0,$.jsxs)(`div`,{className:`flex flex-col gap-1 p-4`,children:[w,T]}),t[24]=T,t[25]=w,t[26]=E):E=t[26];let D=v?`Unsaved changes`:`No changes`,O;t[27]===D?O=t[28]:(O=(0,$.jsx)(`span`,{className:`mr-auto text-xs text-muted-foreground`,children:D}),t[27]=D,t[28]=O);let k=a||!v,A;t[29]!==g||t[30]!==k?(A=(0,$.jsx)(m,{disabled:k,onClick:g,size:`sm`,type:`button`,variant:`secondary`,children:`Reset`}),t[29]=g,t[30]=k,t[31]=A):A=t[31];let j=a||!v||y,M=a?`Saving…`:`Save changes`,N;t[32]!==j||t[33]!==M?(N=(0,$.jsx)(m,{disabled:j,size:`sm`,type:`submit`,children:M}),t[32]=j,t[33]=M,t[34]=N):N=t[34];let P;t[35]!==O||t[36]!==A||t[37]!==N?(P=(0,$.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t p-4`,children:[O,A,N]}),t[35]=O,t[36]=A,t[37]=N,t[38]=P):P=t[38];let F;t[39]!==E||t[40]!==P?(F=(0,$.jsxs)(`div`,{className:`rounded-lg border bg-card`,children:[E,P]}),t[39]=E,t[40]=P,t[41]=F):F=t[41];let I;return t[42]!==F||t[43]!==b||t[44]!==S||t[45]!==C?(I=(0,$.jsxs)(`form`,{onSubmit:b,children:[x,S,C,F]}),t[42]=F,t[43]=b,t[44]=S,t[45]=C,t[46]=I):I=t[46],I}function lt({arn:e}){let t=i(),{data:n}=I(k(e)),{data:r}=I(M(e)),{data:s}=I(N([e])),{data:c}=I(g),{data:l}=I(_),u=w(),d=b(),f=v(),h=C(),y=S(),[x,T]=(0,Q.useState)(!1),E=n.LoadBalancers?.[0];if(!E?.LoadBalancerArn)return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(K,{to:`/ec2/describe-load-balancers`,children:`Back to load balancers`}),(0,$.jsx)(`p`,{className:`text-muted-foreground`,children:`Load balancer not found.`})]});let D=async()=>{try{await u.mutateAsync(e),t({to:`/ec2/describe-load-balancers`})}finally{T(!1)}},O=c.Subnets??[],A=e=>{let t=O.find(t=>t.SubnetId===e);if(!t)return e;let n=a(t.Tags),r=t.CidrBlock?` (${t.CidrBlock})`:``;return n?`${e} — ${n}${r}`:`${e}${r}`},j=r.Attributes??[],P=s?.TagDescriptions?.find(t=>t.ResourceArn===e)?.Tags??[],F=(E.SecurityGroups??[]).filter(e=>e!==void 0),ee=(l.SecurityGroups??[]).filter(e=>e.VpcId===E.VpcId),L=O.filter(e=>e.VpcId===E.VpcId),R=(E.AvailabilityZones??[]).map(e=>e.SubnetId).filter(e=>e!==void 0),z=E.Type===`network`;return(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(K,{to:`/ec2/describe-load-balancers`,children:`Back to load balancers`}),u.error&&(0,$.jsx)(G,{error:u.error,msg:`Failed to delete load balancer`}),(0,$.jsxs)(`div`,{className:`space-y-6`,children:[(0,$.jsx)(ce,{actions:(0,$.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,$.jsxs)(m,{onClick:()=>T(!0),size:`sm`,variant:`destructive`,children:[(0,$.jsx)(p,{className:`size-4`}),`Delete`]}),(0,$.jsx)(de,{state:E.State?.Code})]}),subtitle:`Load Balancer Details`,title:E.LoadBalancerName??E.LoadBalancerArn}),(0,$.jsxs)(Ce,{defaultValue:`overview`,children:[(0,$.jsxs)(xe,{children:[(0,$.jsx)(be,{value:`overview`,children:`Overview`}),(0,$.jsx)(be,{value:`listeners`,children:`Listeners`}),(0,$.jsx)(be,{value:`subnets`,children:`Subnets`}),!z&&(0,$.jsx)(be,{value:`security-groups`,children:`Security groups`}),(0,$.jsx)(be,{value:`attributes`,children:`Attributes`}),(0,$.jsx)(be,{value:`tags`,children:`Tags`})]}),(0,$.jsxs)(Se,{value:`overview`,children:[(0,$.jsxs)(Y,{children:[(0,$.jsx)(Y.Header,{children:`Load balancer`}),(0,$.jsxs)(Y.Content,{children:[(0,$.jsx)(X,{label:`ARN`,value:E.LoadBalancerArn}),(0,$.jsx)(X,{label:`DNS name`,value:E.DNSName}),(0,$.jsx)(X,{label:`State`,value:E.State?.Reason?`${E.State.Code} — ${E.State.Reason}`:E.State?.Code}),(0,$.jsx)(X,{label:`Type`,value:E.Type}),(0,$.jsx)(X,{label:`Scheme`,value:E.Scheme}),(0,$.jsx)(X,{label:`IP address type`,value:E.IpAddressType}),(0,$.jsx)(X,{label:`VPC`,value:E.VpcId}),(0,$.jsx)(X,{label:`Created at`,value:o(E.CreatedTime)})]})]}),(0,$.jsxs)(Y,{children:[(0,$.jsx)(Y.Header,{children:`Availability zones`}),(0,$.jsx)(Y.Content,{children:(E.AvailabilityZones??[]).map(e=>(0,$.jsx)(X,{label:e.ZoneName??`—`,value:e.SubnetId?A(e.SubnetId):void 0},`${e.ZoneName}-${e.SubnetId}`))})]}),(E.SecurityGroups??[]).length>0&&(0,$.jsxs)(Y,{children:[(0,$.jsx)(Y.Header,{children:`Security groups`}),(0,$.jsx)(Y.Content,{children:(E.SecurityGroups??[]).map(e=>(0,$.jsx)(X,{label:`Security group`,value:e},e))})]})]}),(0,$.jsx)(Se,{value:`listeners`,children:(0,$.jsx)(tt,{lbType:z?`network`:`application`,loadBalancerArn:e,vpcId:E.VpcId})}),(0,$.jsx)(Se,{value:`subnets`,children:(0,$.jsx)(ct,{available:L,current:R,error:y.error,isPending:y.isPending,isSuccess:y.isSuccess,onSubmit:t=>y.mutate({loadBalancerArn:e,subnetIds:t})})}),!z&&(0,$.jsx)(Se,{value:`security-groups`,children:(0,$.jsx)(at,{available:ee,current:F,error:h.error,isPending:h.isPending,isSuccess:h.isSuccess,onSubmit:t=>h.mutate({loadBalancerArn:e,securityGroupIds:t})})}),(0,$.jsx)(Se,{value:`attributes`,children:(0,$.jsx)(_e,{attributes:j,error:d.error,isPending:d.isPending,isSuccess:d.isSuccess,onSubmit:t=>{d.mutate({loadBalancerArn:e,attributes:t})},specs:ve})}),(0,$.jsx)(Se,{value:`tags`,children:(0,$.jsx)(ye,{error:f.error,isPending:f.isPending,isSuccess:f.isSuccess,onSubmit:t=>f.mutate({resourceArn:e,tags:t,initialKeys:P.map(e=>e.Key??``).filter(e=>e.length>0)}),tags:P})})]})]}),(0,$.jsx)(ue,{description:`Are you sure you want to delete load balancer "${E.LoadBalancerName??E.LoadBalancerArn}"? This action cannot be undone.`,isPending:u.isPending,onConfirm:D,onOpenChange:T,open:x,title:`Delete load balancer`})]})}function ut(){let e=(0,Te.c)(2),{id:t}=R.useParams(),n=decodeURIComponent(t),r;return e[0]===n?r=e[1]:(r=(0,$.jsx)(lt,{arn:n}),e[0]=n,e[1]=r),r}export{ut as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id8.js b/spinifex/services/spinifexui/frontend/dist/assets/_id8.js index e9f58ae37..13766917a 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id8.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id8.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{g as c}from"./ec2.js";import{S as l,Xn as u,_n as d,dn as f,kt as p,mn as m}from"./index.js";import{t as h}from"./delete-confirmation-dialog.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./state-badge.js";var y=t(n()),b=e();function x(){let{id:e}=l.useParams(),t=i(),{data:n}=u(c(e)),x=p(),[S,C]=(0,y.useState)(!1),w=n.NatGateways?.[0],T=async()=>{try{await x.mutateAsync(e),t({to:`/ec2/describe-nat-gateways`})}finally{C(!1)}};if(!w?.NatGatewayId)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d,{to:`/ec2/describe-nat-gateways`,children:`Back to NAT Gateways`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`NAT Gateway not found.`})]});let E=a(w.Tags),D=w.NatGatewayAddresses?.[0];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d,{to:`/ec2/describe-nat-gateways`,children:`Back to NAT Gateways`}),x.error&&(0,b.jsx)(m,{error:x.error,msg:`Failed to delete NAT Gateway`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(f,{actions:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(s,{disabled:x.isPending,onClick:()=>C(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(o,{className:`size-4`}),`Delete`]}),(0,b.jsx)(v,{state:w.State})]}),subtitle:`NAT Gateway Details`,title:E?`${w.NatGatewayId} (${E})`:w.NatGatewayId}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`NAT Gateway Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`NAT Gateway ID`,value:w.NatGatewayId}),(0,b.jsx)(_,{label:`State`,value:w.State}),(0,b.jsx)(_,{label:`Connectivity`,value:w.ConnectivityType}),(0,b.jsx)(_,{label:`Subnet ID`,value:w.SubnetId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:w.SubnetId},to:`/ec2/describe-subnets/$id`,children:w.SubnetId}):`—`}),(0,b.jsx)(_,{label:`VPC ID`,value:w.VpcId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:w.VpcId},to:`/ec2/describe-vpcs/$id`,children:w.VpcId}):`—`}),(0,b.jsx)(_,{label:`Public IP`,value:D?.PublicIp??`—`}),(0,b.jsx)(_,{label:`Allocation ID`,value:D?.AllocationId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:D.AllocationId},to:`/ec2/describe-addresses/$id`,children:D.AllocationId}):`—`})]})]})]}),(0,b.jsx)(h,{description:`Are you sure you want to delete the NAT Gateway "${w.NatGatewayId}"? This action cannot be undone. The associated Elastic IP is not released.`,isPending:x.isPending,onConfirm:T,onOpenChange:C,open:S,title:`Delete NAT Gateway`})]})}export{x as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{g as c}from"./ec2.js";import{$n as l,Lt as u,S as d,Sn as f,Tn as p,yn as m}from"./index.js";import{t as h}from"./delete-confirmation-dialog.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./state-badge.js";var y=t(n()),b=e();function x(){let{id:e}=d.useParams(),t=i(),{data:n}=l(c(e)),x=u(),[S,C]=(0,y.useState)(!1),w=n.NatGateways?.[0],T=async()=>{try{await x.mutateAsync(e),t({to:`/ec2/describe-nat-gateways`})}finally{C(!1)}};if(!w?.NatGatewayId)return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p,{to:`/ec2/describe-nat-gateways`,children:`Back to NAT Gateways`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`NAT Gateway not found.`})]});let E=a(w.Tags),D=w.NatGatewayAddresses?.[0];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(p,{to:`/ec2/describe-nat-gateways`,children:`Back to NAT Gateways`}),x.error&&(0,b.jsx)(f,{error:x.error,msg:`Failed to delete NAT Gateway`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(m,{actions:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(s,{disabled:x.isPending,onClick:()=>C(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(o,{className:`size-4`}),`Delete`]}),(0,b.jsx)(v,{state:w.State})]}),subtitle:`NAT Gateway Details`,title:E?`${w.NatGatewayId} (${E})`:w.NatGatewayId}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`NAT Gateway Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`NAT Gateway ID`,value:w.NatGatewayId}),(0,b.jsx)(_,{label:`State`,value:w.State}),(0,b.jsx)(_,{label:`Connectivity`,value:w.ConnectivityType}),(0,b.jsx)(_,{label:`Subnet ID`,value:w.SubnetId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:w.SubnetId},to:`/ec2/describe-subnets/$id`,children:w.SubnetId}):`—`}),(0,b.jsx)(_,{label:`VPC ID`,value:w.VpcId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:w.VpcId},to:`/ec2/describe-vpcs/$id`,children:w.VpcId}):`—`}),(0,b.jsx)(_,{label:`Public IP`,value:D?.PublicIp??`—`}),(0,b.jsx)(_,{label:`Allocation ID`,value:D?.AllocationId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:D.AllocationId},to:`/ec2/describe-addresses/$id`,children:D.AllocationId}):`—`})]})]})]}),(0,b.jsx)(h,{description:`Are you sure you want to delete the NAT Gateway "${w.NatGatewayId}"? This action cannot be undone. The associated Elastic IP is not released.`,isPending:x.isPending,onConfirm:T,onOpenChange:C,open:S,title:`Delete NAT Gateway`})]})}export{x as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_id9.js b/spinifex/services/spinifexui/frontend/dist/assets/_id9.js index 4d10bd66c..f92deb23a 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_id9.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_id9.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{t as a}from"./trash-2.js";import{t as o}from"./button.js";import{l as s,v as c}from"./ec2.js";import{At as l,Xn as u,_n as d,dn as f,mn as p,x as m}from"./index.js";import{t as h}from"./delete-confirmation-dialog.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./state-badge.js";var y=t(n()),b=e();function x(){let{id:e}=m.useParams(),t=i(),{data:n}=u(c(e)),{data:x}=u(s),S=l(),[C,w]=(0,y.useState)(!1),T=n.PlacementGroups?.[0],E=x.Reservations?.flatMap(e=>e.Instances??[]).filter(e=>e.Placement?.GroupName===T?.GroupName)??[];return T?.GroupId?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),S.error&&(0,b.jsx)(p,{error:S.error,msg:`Failed to delete placement group`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(f,{actions:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(o,{onClick:()=>w(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(a,{className:`size-4`}),`Delete`]}),(0,b.jsx)(v,{state:T.State})]}),subtitle:`Placement Group Details`,title:T.GroupName??T.GroupId}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Placement Group Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Group ID`,value:T.GroupId}),(0,b.jsx)(_,{label:`Group Name`,value:T.GroupName}),(0,b.jsx)(_,{label:`Strategy`,value:T.Strategy}),(0,b.jsx)(_,{label:`State`,value:T.State}),(0,b.jsx)(_,{label:`Spread Level`,value:T.SpreadLevel})]})]}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Instances`}),E.length>0?E.map(e=>(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Instance ID`,value:e.InstanceId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:e.InstanceId},to:`/ec2/describe-instances/$id`,children:e.InstanceId}):void 0}),(0,b.jsx)(_,{label:`State`,value:e.State?.Name}),(0,b.jsx)(_,{label:`Instance Type`,value:e.InstanceType}),(0,b.jsx)(_,{label:`Availability Zone`,value:e.Placement?.AvailabilityZone})]},e.InstanceId)):(0,b.jsx)(g.Content,{children:(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`No instances in this placement group.`})})]})]}),(0,b.jsx)(h,{description:`Are you sure you want to delete the placement group "${T.GroupName}"? The group must have no running instances.`,isPending:S.isPending,onConfirm:async()=>{if(T?.GroupName)try{await S.mutateAsync(T.GroupName),t({to:`/ec2/describe-placement-groups`})}finally{w(!1)}},onOpenChange:w,open:C,title:`Delete Placement Group`})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`Placement group not found.`})]})}export{x as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{t as a}from"./trash-2.js";import{t as o}from"./button.js";import{l as s,v as c}from"./ec2.js";import{$n as l,Rt as u,Sn as d,Tn as f,x as p,yn as m}from"./index.js";import{t as h}from"./delete-confirmation-dialog.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./state-badge.js";var y=t(n()),b=e();function x(){let{id:e}=p.useParams(),t=i(),{data:n}=l(c(e)),{data:x}=l(s),S=u(),[C,w]=(0,y.useState)(!1),T=n.PlacementGroups?.[0],E=x.Reservations?.flatMap(e=>e.Instances??[]).filter(e=>e.Placement?.GroupName===T?.GroupName)??[];return T?.GroupId?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),S.error&&(0,b.jsx)(d,{error:S.error,msg:`Failed to delete placement group`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(m,{actions:(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(o,{onClick:()=>w(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(a,{className:`size-4`}),`Delete`]}),(0,b.jsx)(v,{state:T.State})]}),subtitle:`Placement Group Details`,title:T.GroupName??T.GroupId}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Placement Group Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Group ID`,value:T.GroupId}),(0,b.jsx)(_,{label:`Group Name`,value:T.GroupName}),(0,b.jsx)(_,{label:`Strategy`,value:T.Strategy}),(0,b.jsx)(_,{label:`State`,value:T.State}),(0,b.jsx)(_,{label:`Spread Level`,value:T.SpreadLevel})]})]}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Instances`}),E.length>0?E.map(e=>(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Instance ID`,value:e.InstanceId?(0,b.jsx)(r,{className:`text-primary hover:underline`,params:{id:e.InstanceId},to:`/ec2/describe-instances/$id`,children:e.InstanceId}):void 0}),(0,b.jsx)(_,{label:`State`,value:e.State?.Name}),(0,b.jsx)(_,{label:`Instance Type`,value:e.InstanceType}),(0,b.jsx)(_,{label:`Availability Zone`,value:e.Placement?.AvailabilityZone})]},e.InstanceId)):(0,b.jsx)(g.Content,{children:(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`No instances in this placement group.`})})]})]}),(0,b.jsx)(h,{description:`Are you sure you want to delete the placement group "${T.GroupName}"? The group must have no running instances.`,isPending:S.isPending,onConfirm:async()=>{if(T?.GroupName)try{await S.mutateAsync(T.GroupName),t({to:`/ec2/describe-placement-groups`})}finally{w(!1)}},onOpenChange:w,open:C,title:`Delete Placement Group`})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`Placement group not found.`})]})}export{x as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_instanceProfileName.js b/spinifex/services/spinifexui/frontend/dist/assets/_instanceProfileName.js index 8e05d6988..32e6eec31 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_instanceProfileName.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_instanceProfileName.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{Xt as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{D as c,h as l,t as u}from"./iam.js";import{u as d,y as f}from"./iam2.js";import{Xn as p,_n as m,c as h,dn as g,mn as _}from"./index.js";import{t as v}from"./delete-confirmation-dialog.js";import{n as y,t as b}from"./detail-row.js";var x=t(n()),S=e();function C(){let{instanceProfileName:e}=h.useParams(),t=i(),{data:n}=p(d(e)),{data:C}=p(f),w=l(),T=u(),E=c(),[D,O]=(0,x.useState)(!1),[k,A]=(0,x.useState)(!1),[j,M]=(0,x.useState)(null),N=n.InstanceProfile,P=N?.Roles??[],F=C.Roles??[],I=new Set(P.map(e=>e.RoleName)),L=F.filter(e=>e.RoleName&&!I.has(e.RoleName)),R=async()=>{try{await w.mutateAsync(e),t({to:`/iam/list-instance-profiles`})}finally{O(!1)}},z=async t=>{await T.mutateAsync({instanceProfileName:e,roleName:t}),A(!1)},B=async t=>{M(t);try{await E.mutateAsync({instanceProfileName:e,roleName:t})}finally{M(null)}};return N?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(m,{to:`/iam/list-instance-profiles`,children:`Back to instance profiles`}),w.error&&(0,S.jsx)(_,{error:w.error,msg:`Failed to delete instance profile`}),T.error&&(0,S.jsx)(_,{error:T.error,msg:`Failed to add role`}),E.error&&(0,S.jsx)(_,{error:E.error,msg:`Failed to remove role`}),(0,S.jsxs)(`div`,{className:`space-y-6`,children:[(0,S.jsx)(g,{actions:(0,S.jsxs)(s,{onClick:()=>O(!0),size:`sm`,variant:`destructive`,children:[(0,S.jsx)(o,{className:`size-4`}),`Delete`]}),subtitle:`Instance Profile Details`,title:N.InstanceProfileName??``}),(0,S.jsxs)(y,{children:[(0,S.jsx)(y.Header,{children:`Instance Profile Information`}),(0,S.jsxs)(y.Content,{children:[(0,S.jsx)(b,{label:`Name`,value:N.InstanceProfileName}),(0,S.jsx)(b,{label:`ID`,value:N.InstanceProfileId}),(0,S.jsx)(b,{label:`ARN`,value:N.Arn}),(0,S.jsx)(b,{label:`Path`,value:N.Path}),(0,S.jsx)(b,{label:`Created`,value:a(N.CreateDate)})]})]}),(0,S.jsxs)(y,{children:[(0,S.jsx)(y.Header,{children:(0,S.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,S.jsx)(`span`,{children:`Roles`}),(0,S.jsx)(s,{onClick:()=>A(!k),size:`sm`,children:`Add Role`})]})}),(0,S.jsxs)(y.Content,{children:[k&&L.length>0&&(0,S.jsxs)(`div`,{className:`col-span-2 space-y-2 rounded-md border p-3`,children:[(0,S.jsx)(`p`,{className:`text-sm font-medium`,children:`Select a role to add:`}),(0,S.jsx)(`div`,{className:`space-y-1`,children:L.map(e=>(0,S.jsxs)(`button`,{className:`flex w-full items-center justify-between rounded-md p-2 text-left text-sm hover:bg-accent`,disabled:T.isPending,onClick:()=>{e.RoleName&&z(e.RoleName)},type:`button`,children:[(0,S.jsx)(`span`,{children:e.RoleName}),(0,S.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.Arn})]},e.RoleName))})]}),k&&L.length===0&&(0,S.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No roles available to add.`}),P.length>0?(0,S.jsx)(`div`,{className:`col-span-2 space-y-3`,children:P.map(e=>(0,S.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,S.jsx)(r,{className:`text-sm font-medium text-primary hover:underline`,params:{roleName:e.RoleName??``},to:`/iam/list-roles/$roleName`,children:e.RoleName}),(0,S.jsx)(s,{disabled:j===e.RoleName,onClick:()=>{e.RoleName&&B(e.RoleName)},size:`sm`,variant:`outline`,children:`Remove`})]},e.RoleName))}):(0,S.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No roles in this instance profile.`})]})]})]}),(0,S.jsx)(v,{description:`Are you sure you want to delete the instance profile "${e}"? This action cannot be undone. You must remove all roles first.`,isPending:w.isPending,onConfirm:R,onOpenChange:O,open:D,title:`Delete Instance Profile`})]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(m,{to:`/iam/list-instance-profiles`,children:`Back to instance profiles`}),(0,S.jsx)(`p`,{className:`text-muted-foreground`,children:`Instance profile not found.`})]})}export{C as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{Xt as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{D as c,h as l,t as u}from"./iam.js";import{u as d,y as f}from"./iam2.js";import{$n as p,Sn as m,Tn as h,c as g,yn as _}from"./index.js";import{t as v}from"./delete-confirmation-dialog.js";import{n as y,t as b}from"./detail-row.js";var x=t(n()),S=e();function C(){let{instanceProfileName:e}=g.useParams(),t=i(),{data:n}=p(d(e)),{data:C}=p(f),w=l(),T=u(),E=c(),[D,O]=(0,x.useState)(!1),[k,A]=(0,x.useState)(!1),[j,M]=(0,x.useState)(null),N=n.InstanceProfile,P=N?.Roles??[],F=C.Roles??[],I=new Set(P.map(e=>e.RoleName)),L=F.filter(e=>e.RoleName&&!I.has(e.RoleName)),R=async()=>{try{await w.mutateAsync(e),t({to:`/iam/list-instance-profiles`})}finally{O(!1)}},z=async t=>{await T.mutateAsync({instanceProfileName:e,roleName:t}),A(!1)},B=async t=>{M(t);try{await E.mutateAsync({instanceProfileName:e,roleName:t})}finally{M(null)}};return N?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(h,{to:`/iam/list-instance-profiles`,children:`Back to instance profiles`}),w.error&&(0,S.jsx)(m,{error:w.error,msg:`Failed to delete instance profile`}),T.error&&(0,S.jsx)(m,{error:T.error,msg:`Failed to add role`}),E.error&&(0,S.jsx)(m,{error:E.error,msg:`Failed to remove role`}),(0,S.jsxs)(`div`,{className:`space-y-6`,children:[(0,S.jsx)(_,{actions:(0,S.jsxs)(s,{onClick:()=>O(!0),size:`sm`,variant:`destructive`,children:[(0,S.jsx)(o,{className:`size-4`}),`Delete`]}),subtitle:`Instance Profile Details`,title:N.InstanceProfileName??``}),(0,S.jsxs)(y,{children:[(0,S.jsx)(y.Header,{children:`Instance Profile Information`}),(0,S.jsxs)(y.Content,{children:[(0,S.jsx)(b,{label:`Name`,value:N.InstanceProfileName}),(0,S.jsx)(b,{label:`ID`,value:N.InstanceProfileId}),(0,S.jsx)(b,{label:`ARN`,value:N.Arn}),(0,S.jsx)(b,{label:`Path`,value:N.Path}),(0,S.jsx)(b,{label:`Created`,value:a(N.CreateDate)})]})]}),(0,S.jsxs)(y,{children:[(0,S.jsx)(y.Header,{children:(0,S.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,S.jsx)(`span`,{children:`Roles`}),(0,S.jsx)(s,{onClick:()=>A(!k),size:`sm`,children:`Add Role`})]})}),(0,S.jsxs)(y.Content,{children:[k&&L.length>0&&(0,S.jsxs)(`div`,{className:`col-span-2 space-y-2 rounded-md border p-3`,children:[(0,S.jsx)(`p`,{className:`text-sm font-medium`,children:`Select a role to add:`}),(0,S.jsx)(`div`,{className:`space-y-1`,children:L.map(e=>(0,S.jsxs)(`button`,{className:`flex w-full items-center justify-between rounded-md p-2 text-left text-sm hover:bg-accent`,disabled:T.isPending,onClick:()=>{e.RoleName&&z(e.RoleName)},type:`button`,children:[(0,S.jsx)(`span`,{children:e.RoleName}),(0,S.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.Arn})]},e.RoleName))})]}),k&&L.length===0&&(0,S.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No roles available to add.`}),P.length>0?(0,S.jsx)(`div`,{className:`col-span-2 space-y-3`,children:P.map(e=>(0,S.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,S.jsx)(r,{className:`text-sm font-medium text-primary hover:underline`,params:{roleName:e.RoleName??``},to:`/iam/list-roles/$roleName`,children:e.RoleName}),(0,S.jsx)(s,{disabled:j===e.RoleName,onClick:()=>{e.RoleName&&B(e.RoleName)},size:`sm`,variant:`outline`,children:`Remove`})]},e.RoleName))}):(0,S.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No roles in this instance profile.`})]})]})]}),(0,S.jsx)(v,{description:`Are you sure you want to delete the instance profile "${e}"? This action cannot be undone. You must remove all roles first.`,isPending:w.isPending,onConfirm:R,onOpenChange:O,open:D,title:`Delete Instance Profile`})]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(h,{to:`/iam/list-instance-profiles`,children:`Back to instance profiles`}),(0,S.jsx)(`p`,{className:`text-muted-foreground`,children:`Instance profile not found.`})]})}export{C as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_policyArn.js b/spinifex/services/spinifexui/frontend/dist/assets/_policyArn.js index 34ba69fa3..11aec8628 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_policyArn.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_policyArn.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./useNavigate.js";import{Xt as i}from"./auth.js";import{t as a}from"./trash-2.js";import{t as o}from"./button.js";import{g as s}from"./iam.js";import{h as c,m as l}from"./iam2.js";import{Xn as u,_n as d,dn as f,mn as p,s as m}from"./index.js";import{t as h}from"./delete-confirmation-dialog.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./policy-document-viewer.js";var y=t(n()),b=e();function x(){let{policyArn:e}=m.useParams(),t=decodeURIComponent(e),n=r(),{data:x}=u(l(t)),S=x.Policy,C=s(),[w,T]=(0,y.useState)(!1),E=S?.DefaultVersionId??`v1`,{data:D}=u(c(t,E)),O=D?.PolicyVersion?.Document?decodeURIComponent(D.PolicyVersion.Document):null;return S?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d,{to:`/iam/list-policies`,children:`Back to policies`}),C.error&&(0,b.jsx)(p,{error:C.error,msg:`Failed to delete policy`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(f,{actions:(0,b.jsxs)(o,{onClick:()=>T(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(a,{className:`size-4`}),`Delete`]}),subtitle:`Policy Details`,title:S.PolicyName??``}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Policy Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Policy Name`,value:S.PolicyName}),(0,b.jsx)(_,{label:`Policy ID`,value:S.PolicyId}),(0,b.jsx)(_,{label:`ARN`,value:S.Arn}),(0,b.jsx)(_,{label:`Path`,value:S.Path}),(0,b.jsx)(_,{label:`Description`,value:S.Description??`-`}),(0,b.jsx)(_,{label:`Created`,value:i(S.CreateDate)})]})]}),O&&(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Policy Document`}),(0,b.jsx)(`div`,{className:`p-4`,children:(0,b.jsx)(v,{document:O})})]})]}),(0,b.jsx)(h,{description:`Are you sure you want to delete the policy "${S.PolicyName}"? This action cannot be undone.`,isPending:C.isPending,onConfirm:async()=>{try{await C.mutateAsync(t),n({to:`/iam/list-policies`})}finally{T(!1)}},onOpenChange:T,open:w,title:`Delete Policy`})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(d,{to:`/iam/list-policies`,children:`Back to policies`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`Policy not found.`})]})}export{x as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./useNavigate.js";import{Xt as i}from"./auth.js";import{t as a}from"./trash-2.js";import{t as o}from"./button.js";import{g as s}from"./iam.js";import{h as c,m as l}from"./iam2.js";import{$n as u,Sn as d,Tn as f,s as p,yn as m}from"./index.js";import{t as h}from"./delete-confirmation-dialog.js";import{n as g,t as _}from"./detail-row.js";import{t as v}from"./policy-document-viewer.js";var y=t(n()),b=e();function x(){let{policyArn:e}=p.useParams(),t=decodeURIComponent(e),n=r(),{data:x}=u(l(t)),S=x.Policy,C=s(),[w,T]=(0,y.useState)(!1),E=S?.DefaultVersionId??`v1`,{data:D}=u(c(t,E)),O=D?.PolicyVersion?.Document?decodeURIComponent(D.PolicyVersion.Document):null;return S?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f,{to:`/iam/list-policies`,children:`Back to policies`}),C.error&&(0,b.jsx)(d,{error:C.error,msg:`Failed to delete policy`}),(0,b.jsxs)(`div`,{className:`space-y-6`,children:[(0,b.jsx)(m,{actions:(0,b.jsxs)(o,{onClick:()=>T(!0),size:`sm`,variant:`destructive`,children:[(0,b.jsx)(a,{className:`size-4`}),`Delete`]}),subtitle:`Policy Details`,title:S.PolicyName??``}),(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Policy Information`}),(0,b.jsxs)(g.Content,{children:[(0,b.jsx)(_,{label:`Policy Name`,value:S.PolicyName}),(0,b.jsx)(_,{label:`Policy ID`,value:S.PolicyId}),(0,b.jsx)(_,{label:`ARN`,value:S.Arn}),(0,b.jsx)(_,{label:`Path`,value:S.Path}),(0,b.jsx)(_,{label:`Description`,value:S.Description??`-`}),(0,b.jsx)(_,{label:`Created`,value:i(S.CreateDate)})]})]}),O&&(0,b.jsxs)(g,{children:[(0,b.jsx)(g.Header,{children:`Policy Document`}),(0,b.jsx)(`div`,{className:`p-4`,children:(0,b.jsx)(v,{document:O})})]})]}),(0,b.jsx)(h,{description:`Are you sure you want to delete the policy "${S.PolicyName}"? This action cannot be undone.`,isPending:C.isPending,onConfirm:async()=>{try{await C.mutateAsync(t),n({to:`/iam/list-policies`})}finally{T(!1)}},onOpenChange:T,open:w,title:`Delete Policy`})]}):(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(f,{to:`/iam/list-policies`,children:`Back to policies`}),(0,b.jsx)(`p`,{className:`text-muted-foreground`,children:`Policy not found.`})]})}export{x as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_roleName.js b/spinifex/services/spinifexui/frontend/dist/assets/_roleName.js index f90159064..00f35207e 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_roleName.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_roleName.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{Xt as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{_ as c}from"./iam.js";import{d as l,v as u}from"./iam2.js";import{Xn as d,_n as f,dn as p,mn as m,o as h}from"./index.js";import{t as g}from"./delete-confirmation-dialog.js";import{n as _,t as v}from"./detail-row.js";import{t as y}from"./policy-document-viewer.js";import{n as b,t as x}from"./inline-policies-panel.js";var S=t(n()),C=e();function w(){let{roleName:e}=h.useParams(),t=i(),{data:n}=d(u(e)),{data:w}=d(l(e)),T=c(),[E,D]=(0,S.useState)(!1),O=n.Role,k=w.InstanceProfiles??[],A=O?.AssumeRolePolicyDocument?decodeURIComponent(O.AssumeRolePolicyDocument):null;return O?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(f,{to:`/iam/list-roles`,children:`Back to roles`}),T.error&&(0,C.jsx)(m,{error:T.error,msg:`Failed to delete role`}),(0,C.jsxs)(`div`,{className:`space-y-6`,children:[(0,C.jsx)(p,{actions:(0,C.jsxs)(s,{onClick:()=>D(!0),size:`sm`,variant:`destructive`,children:[(0,C.jsx)(o,{className:`size-4`}),`Delete`]}),subtitle:`Role Details`,title:O.RoleName??``}),(0,C.jsxs)(_,{children:[(0,C.jsx)(_.Header,{children:`Role Information`}),(0,C.jsxs)(_.Content,{children:[(0,C.jsx)(v,{label:`Role Name`,value:O.RoleName}),(0,C.jsx)(v,{label:`Role ID`,value:O.RoleId}),(0,C.jsx)(v,{label:`ARN`,value:O.Arn}),(0,C.jsx)(v,{label:`Path`,value:O.Path}),(0,C.jsx)(v,{label:`Description`,value:O.Description??`-`}),(0,C.jsx)(v,{label:`Created`,value:a(O.CreateDate)})]})]}),A&&(0,C.jsxs)(_,{children:[(0,C.jsx)(_.Header,{children:`Trust Policy`}),(0,C.jsx)(`div`,{className:`p-4`,children:(0,C.jsx)(y,{document:A})})]}),(0,C.jsx)(b,{kind:`role`,name:e}),(0,C.jsx)(x,{kind:`role`,name:e}),(0,C.jsxs)(_,{children:[(0,C.jsx)(_.Header,{children:`Instance Profiles`}),(0,C.jsx)(_.Content,{children:k.length>0?(0,C.jsx)(`div`,{className:`col-span-2 space-y-3`,children:k.map(e=>(0,C.jsxs)(r,{className:`flex items-center justify-between rounded-md border p-3 transition-colors hover:bg-accent`,params:{instanceProfileName:e.InstanceProfileName??``},to:`/iam/list-instance-profiles/$instanceProfileName`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:e.InstanceProfileName}),(0,C.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.Arn})]},e.InstanceProfileName))}):(0,C.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`This role is not in any instance profile.`})})]})]}),(0,C.jsx)(g,{description:`Are you sure you want to delete the role "${e}"? This action cannot be undone. You must detach all policies and remove it from all instance profiles first.`,isPending:T.isPending,onConfirm:async()=>{try{await T.mutateAsync(e),t({to:`/iam/list-roles`})}finally{D(!1)}},onOpenChange:D,open:E,title:`Delete Role`})]}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(f,{to:`/iam/list-roles`,children:`Back to roles`}),(0,C.jsx)(`p`,{className:`text-muted-foreground`,children:`Role not found.`})]})}export{w as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{t as r}from"./link.js";import{t as i}from"./useNavigate.js";import{Xt as a}from"./auth.js";import{t as o}from"./trash-2.js";import{t as s}from"./button.js";import{_ as c}from"./iam.js";import{d as l,v as u}from"./iam2.js";import{$n as d,Sn as f,Tn as p,o as m,yn as h}from"./index.js";import{t as g}from"./delete-confirmation-dialog.js";import{n as _,t as v}from"./detail-row.js";import{t as y}from"./policy-document-viewer.js";import{n as b,t as x}from"./inline-policies-panel.js";var S=t(n()),C=e();function w(){let{roleName:e}=m.useParams(),t=i(),{data:n}=d(u(e)),{data:w}=d(l(e)),T=c(),[E,D]=(0,S.useState)(!1),O=n.Role,k=w.InstanceProfiles??[],A=O?.AssumeRolePolicyDocument?decodeURIComponent(O.AssumeRolePolicyDocument):null;return O?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(p,{to:`/iam/list-roles`,children:`Back to roles`}),T.error&&(0,C.jsx)(f,{error:T.error,msg:`Failed to delete role`}),(0,C.jsxs)(`div`,{className:`space-y-6`,children:[(0,C.jsx)(h,{actions:(0,C.jsxs)(s,{onClick:()=>D(!0),size:`sm`,variant:`destructive`,children:[(0,C.jsx)(o,{className:`size-4`}),`Delete`]}),subtitle:`Role Details`,title:O.RoleName??``}),(0,C.jsxs)(_,{children:[(0,C.jsx)(_.Header,{children:`Role Information`}),(0,C.jsxs)(_.Content,{children:[(0,C.jsx)(v,{label:`Role Name`,value:O.RoleName}),(0,C.jsx)(v,{label:`Role ID`,value:O.RoleId}),(0,C.jsx)(v,{label:`ARN`,value:O.Arn}),(0,C.jsx)(v,{label:`Path`,value:O.Path}),(0,C.jsx)(v,{label:`Description`,value:O.Description??`-`}),(0,C.jsx)(v,{label:`Created`,value:a(O.CreateDate)})]})]}),A&&(0,C.jsxs)(_,{children:[(0,C.jsx)(_.Header,{children:`Trust Policy`}),(0,C.jsx)(`div`,{className:`p-4`,children:(0,C.jsx)(y,{document:A})})]}),(0,C.jsx)(b,{kind:`role`,name:e}),(0,C.jsx)(x,{kind:`role`,name:e}),(0,C.jsxs)(_,{children:[(0,C.jsx)(_.Header,{children:`Instance Profiles`}),(0,C.jsx)(_.Content,{children:k.length>0?(0,C.jsx)(`div`,{className:`col-span-2 space-y-3`,children:k.map(e=>(0,C.jsxs)(r,{className:`flex items-center justify-between rounded-md border p-3 transition-colors hover:bg-accent`,params:{instanceProfileName:e.InstanceProfileName??``},to:`/iam/list-instance-profiles/$instanceProfileName`,children:[(0,C.jsx)(`p`,{className:`text-sm font-medium`,children:e.InstanceProfileName}),(0,C.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.Arn})]},e.InstanceProfileName))}):(0,C.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`This role is not in any instance profile.`})})]})]}),(0,C.jsx)(g,{description:`Are you sure you want to delete the role "${e}"? This action cannot be undone. You must detach all policies and remove it from all instance profiles first.`,isPending:T.isPending,onConfirm:async()=>{try{await T.mutateAsync(e),t({to:`/iam/list-roles`})}finally{D(!1)}},onOpenChange:D,open:E,title:`Delete Role`})]}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(p,{to:`/iam/list-roles`,children:`Back to roles`}),(0,C.jsx)(`p`,{className:`text-muted-foreground`,children:`Role not found.`})]})}export{w as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_serviceName.js b/spinifex/services/spinifexui/frontend/dist/assets/_serviceName.js index 968d57195..00022fb8a 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_serviceName.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_serviceName.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{i as r,s as i}from"./ecs.js";import{Xn as a,_n as o,dn as s,n as c}from"./index.js";import{n as l,t as u}from"./detail-row.js";import{t as d}from"./state-badge.js";var f=t(),p=e();function m(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function h(e,t){return(e.attachments??[]).find(e=>e.type===`ElasticNetworkInterface`)?.details?.find(e=>e.name===t)?.value}function g(e){let t=(0,f.c)(69),{clusterName:c,serviceName:g}=e,b;t[0]===c?b=t[1]:(b=r(c),t[0]=c,t[1]=b);let{data:x}=a(b),S;t[2]===c?S=t[3]:(S=i(c),t[2]=c,t[3]=S);let{data:C}=a(S),w,T,E,D,O,k,A,j,M,N;if(t[4]!==c||t[5]!==g||t[6]!==x||t[7]!==C){E=Symbol.for(`react.early_return_sentinel`);bb0:{let e;t[18]===g?e=t[19]:(e=e=>e.serviceName===g,t[18]=g,t[19]=e);let r=x.find(e);if(!r){let e;t[20]===c?e=t[21]:(e={clusterName:c},t[20]=c,t[21]=e);let n;t[22]!==c||t[23]!==e?(n=(0,p.jsx)(o,{params:e,to:`/ecs/list-clusters/$clusterName`,children:c}),t[22]=c,t[23]=e,t[24]=n):n=t[24];let r;t[25]===g?r=t[26]:(r=(0,p.jsx)(s,{subtitle:`Service Details`,title:g}),t[25]=g,t[26]=r);let i;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`Service not found.`}),t[27]=i):i=t[27];let a;t[28]!==n||t[29]!==r?(a=(0,p.jsxs)(p.Fragment,{children:[n,r,i]}),t[28]=n,t[29]=r,t[30]=a):a=t[30],E=a;break bb0}let i=r.loadBalancers??[],a;t[31]===g?a=t[32]:(a=e=>e.group===`service:${g}`,t[31]=g,t[32]=a);let f=C.filter(a),b=r.deployments??[],S=r.events??[],P;t[33]===c?P=t[34]:(P={clusterName:c},t[33]=c,t[34]=P),t[35]!==c||t[36]!==P?(A=(0,p.jsx)(o,{params:P,to:`/ecs/list-clusters/$clusterName`,children:c}),t[35]=c,t[36]=P,t[37]=A):A=t[37],j=(0,p.jsx)(s,{actions:(0,p.jsx)(d,{state:r.status}),subtitle:`Service Details`,title:g});let F;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,p.jsx)(l.Header,{children:`Configuration`}),t[38]=F):F=t[38];let I=String(r.desiredCount??0),L;t[39]===I?L=t[40]:(L=(0,p.jsx)(u,{label:`Desired count`,value:I}),t[39]=I,t[40]=L);let R=String(r.runningCount??0),z;t[41]===R?z=t[42]:(z=(0,p.jsx)(u,{label:`Running count`,value:R}),t[41]=R,t[42]=z);let B=String(r.pendingCount??0),V;t[43]===B?V=t[44]:(V=(0,p.jsx)(u,{label:`Pending count`,value:B}),t[43]=B,t[44]=V);let H=(0,p.jsxs)(l.Content,{children:[(0,p.jsx)(u,{label:`Status`,value:(0,p.jsx)(d,{state:r.status})}),L,z,V,(0,p.jsx)(u,{label:`Task definition`,value:m(r.taskDefinition)}),(0,p.jsx)(u,{label:`Launch type`,value:r.launchType}),(0,p.jsx)(u,{label:`Scheduling strategy`,value:r.schedulingStrategy})]});t[45]===H?M=t[46]:(M=(0,p.jsxs)(l,{children:[F,H]}),t[45]=H,t[46]=M);let U;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Load balancers`}),t[47]=U):U=t[47];let W=i.length===0?(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`None`}):(0,p.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,p.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Target Group`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Container`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Port`})]})}),(0,p.jsx)(`tbody`,{children:i.map(y)})]})});t[48]===W?N=t[49]:(N=(0,p.jsxs)(`div`,{className:`mt-6`,children:[U,W]}),t[48]=W,t[49]=N);let G;t[50]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,p.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Tasks`}),t[50]=G):G=t[50];let K=f.length===0?(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`No tasks found.`}):(0,p.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,p.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Task`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Last Status`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Private IP`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Public IP`})]})}),(0,p.jsx)(`tbody`,{children:f.map(e=>{let t=m(e.taskArn);return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:(0,p.jsx)(n,{className:`underline`,params:{clusterName:c,taskId:t},to:`/ecs/list-clusters/$clusterName/tasks/$taskId`,children:t})}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:(0,p.jsx)(d,{state:e.lastStatus})}),(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:h(e,`privateIPv4Address`)??`—`}),(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:h(e,`publicIPv4Address`)??`—`})]},t)})})]})});t[51]===K?w=t[52]:(w=(0,p.jsxs)(`div`,{className:`mt-6`,children:[G,K]}),t[51]=K,t[52]=w);let q;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,p.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Deployments`}),t[53]=q):q=t[53];let J=b.length===0?(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`None`}):(0,p.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,p.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Task Definition`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Desired`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Running`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Pending`})]})}),(0,p.jsx)(`tbody`,{children:b.map(v)})]})});t[54]===J?T=t[55]:(T=(0,p.jsxs)(`div`,{className:`mt-6`,children:[q,J]}),t[54]=J,t[55]=T),D=`mt-6`,t[56]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,p.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Events`}),t[56]=O):O=t[56],k=S.length===0?(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`None`}):(0,p.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,p.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Time`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Message`})]})}),(0,p.jsx)(`tbody`,{children:S.map(_)})]})})}t[4]=c,t[5]=g,t[6]=x,t[7]=C,t[8]=w,t[9]=T,t[10]=E,t[11]=D,t[12]=O,t[13]=k,t[14]=A,t[15]=j,t[16]=M,t[17]=N}else w=t[8],T=t[9],E=t[10],D=t[11],O=t[12],k=t[13],A=t[14],j=t[15],M=t[16],N=t[17];if(E!==Symbol.for(`react.early_return_sentinel`))return E;let P;t[57]!==D||t[58]!==O||t[59]!==k?(P=(0,p.jsxs)(`div`,{className:D,children:[O,k]}),t[57]=D,t[58]=O,t[59]=k,t[60]=P):P=t[60];let F;return t[61]!==w||t[62]!==T||t[63]!==P||t[64]!==A||t[65]!==j||t[66]!==M||t[67]!==N?(F=(0,p.jsxs)(p.Fragment,{children:[A,j,M,N,w,T,P]}),t[61]=w,t[62]=T,t[63]=P,t[64]=A,t[65]=j,t[66]=M,t[67]=N,t[68]=F):F=t[68],F}function _(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.createdAt?new Date(e.createdAt).toISOString():``}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.message})]},e.id)}function v(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.status}),(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:m(e.taskDefinition)}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.desiredCount??0}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.runningCount??0}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.pendingCount??0})]},e.id)}function y(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:m(e.targetGroupArn)}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.containerName}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.containerPort})]},`${e.targetGroupArn??``}-${e.containerName??``}-${e.containerPort??``}`)}function b(){let e=(0,f.c)(3),{clusterName:t,serviceName:n}=c.useParams(),r;return e[0]!==t||e[1]!==n?(r=(0,p.jsx)(g,{clusterName:t,serviceName:n}),e[0]=t,e[1]=n,e[2]=r):r=e[2],r}export{b as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{i as r,s as i}from"./ecs.js";import{$n as a,Tn as o,n as s,yn as c}from"./index.js";import{n as l,t as u}from"./detail-row.js";import{t as d}from"./state-badge.js";var f=t(),p=e();function m(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function h(e,t){return(e.attachments??[]).find(e=>e.type===`ElasticNetworkInterface`)?.details?.find(e=>e.name===t)?.value}function g(e){let t=(0,f.c)(69),{clusterName:s,serviceName:g}=e,b;t[0]===s?b=t[1]:(b=r(s),t[0]=s,t[1]=b);let{data:x}=a(b),S;t[2]===s?S=t[3]:(S=i(s),t[2]=s,t[3]=S);let{data:C}=a(S),w,T,E,D,O,k,A,j,M,N;if(t[4]!==s||t[5]!==g||t[6]!==x||t[7]!==C){E=Symbol.for(`react.early_return_sentinel`);bb0:{let e;t[18]===g?e=t[19]:(e=e=>e.serviceName===g,t[18]=g,t[19]=e);let r=x.find(e);if(!r){let e;t[20]===s?e=t[21]:(e={clusterName:s},t[20]=s,t[21]=e);let n;t[22]!==s||t[23]!==e?(n=(0,p.jsx)(o,{params:e,to:`/ecs/list-clusters/$clusterName`,children:s}),t[22]=s,t[23]=e,t[24]=n):n=t[24];let r;t[25]===g?r=t[26]:(r=(0,p.jsx)(c,{subtitle:`Service Details`,title:g}),t[25]=g,t[26]=r);let i;t[27]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`Service not found.`}),t[27]=i):i=t[27];let a;t[28]!==n||t[29]!==r?(a=(0,p.jsxs)(p.Fragment,{children:[n,r,i]}),t[28]=n,t[29]=r,t[30]=a):a=t[30],E=a;break bb0}let i=r.loadBalancers??[],a;t[31]===g?a=t[32]:(a=e=>e.group===`service:${g}`,t[31]=g,t[32]=a);let f=C.filter(a),b=r.deployments??[],S=r.events??[],P;t[33]===s?P=t[34]:(P={clusterName:s},t[33]=s,t[34]=P),t[35]!==s||t[36]!==P?(A=(0,p.jsx)(o,{params:P,to:`/ecs/list-clusters/$clusterName`,children:s}),t[35]=s,t[36]=P,t[37]=A):A=t[37],j=(0,p.jsx)(c,{actions:(0,p.jsx)(d,{state:r.status}),subtitle:`Service Details`,title:g});let F;t[38]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,p.jsx)(l.Header,{children:`Configuration`}),t[38]=F):F=t[38];let I=String(r.desiredCount??0),L;t[39]===I?L=t[40]:(L=(0,p.jsx)(u,{label:`Desired count`,value:I}),t[39]=I,t[40]=L);let R=String(r.runningCount??0),z;t[41]===R?z=t[42]:(z=(0,p.jsx)(u,{label:`Running count`,value:R}),t[41]=R,t[42]=z);let B=String(r.pendingCount??0),V;t[43]===B?V=t[44]:(V=(0,p.jsx)(u,{label:`Pending count`,value:B}),t[43]=B,t[44]=V);let H=(0,p.jsxs)(l.Content,{children:[(0,p.jsx)(u,{label:`Status`,value:(0,p.jsx)(d,{state:r.status})}),L,z,V,(0,p.jsx)(u,{label:`Task definition`,value:m(r.taskDefinition)}),(0,p.jsx)(u,{label:`Launch type`,value:r.launchType}),(0,p.jsx)(u,{label:`Scheduling strategy`,value:r.schedulingStrategy})]});t[45]===H?M=t[46]:(M=(0,p.jsxs)(l,{children:[F,H]}),t[45]=H,t[46]=M);let U;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Load balancers`}),t[47]=U):U=t[47];let W=i.length===0?(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`None`}):(0,p.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,p.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Target Group`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Container`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Port`})]})}),(0,p.jsx)(`tbody`,{children:i.map(y)})]})});t[48]===W?N=t[49]:(N=(0,p.jsxs)(`div`,{className:`mt-6`,children:[U,W]}),t[48]=W,t[49]=N);let G;t[50]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,p.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Tasks`}),t[50]=G):G=t[50];let K=f.length===0?(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`No tasks found.`}):(0,p.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,p.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Task`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Last Status`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Private IP`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Public IP`})]})}),(0,p.jsx)(`tbody`,{children:f.map(e=>{let t=m(e.taskArn);return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:(0,p.jsx)(n,{className:`underline`,params:{clusterName:s,taskId:t},to:`/ecs/list-clusters/$clusterName/tasks/$taskId`,children:t})}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:(0,p.jsx)(d,{state:e.lastStatus})}),(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:h(e,`privateIPv4Address`)??`—`}),(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:h(e,`publicIPv4Address`)??`—`})]},t)})})]})});t[51]===K?w=t[52]:(w=(0,p.jsxs)(`div`,{className:`mt-6`,children:[G,K]}),t[51]=K,t[52]=w);let q;t[53]===Symbol.for(`react.memo_cache_sentinel`)?(q=(0,p.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Deployments`}),t[53]=q):q=t[53];let J=b.length===0?(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`None`}):(0,p.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,p.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Task Definition`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Desired`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Running`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Pending`})]})}),(0,p.jsx)(`tbody`,{children:b.map(v)})]})});t[54]===J?T=t[55]:(T=(0,p.jsxs)(`div`,{className:`mt-6`,children:[q,J]}),t[54]=J,t[55]=T),D=`mt-6`,t[56]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,p.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Events`}),t[56]=O):O=t[56],k=S.length===0?(0,p.jsx)(`p`,{className:`text-muted-foreground`,children:`None`}):(0,p.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,p.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Time`}),(0,p.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Message`})]})}),(0,p.jsx)(`tbody`,{children:S.map(_)})]})})}t[4]=s,t[5]=g,t[6]=x,t[7]=C,t[8]=w,t[9]=T,t[10]=E,t[11]=D,t[12]=O,t[13]=k,t[14]=A,t[15]=j,t[16]=M,t[17]=N}else w=t[8],T=t[9],E=t[10],D=t[11],O=t[12],k=t[13],A=t[14],j=t[15],M=t[16],N=t[17];if(E!==Symbol.for(`react.early_return_sentinel`))return E;let P;t[57]!==D||t[58]!==O||t[59]!==k?(P=(0,p.jsxs)(`div`,{className:D,children:[O,k]}),t[57]=D,t[58]=O,t[59]=k,t[60]=P):P=t[60];let F;return t[61]!==w||t[62]!==T||t[63]!==P||t[64]!==A||t[65]!==j||t[66]!==M||t[67]!==N?(F=(0,p.jsxs)(p.Fragment,{children:[A,j,M,N,w,T,P]}),t[61]=w,t[62]=T,t[63]=P,t[64]=A,t[65]=j,t[66]=M,t[67]=N,t[68]=F):F=t[68],F}function _(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.createdAt?new Date(e.createdAt).toISOString():``}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.message})]},e.id)}function v(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.status}),(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:m(e.taskDefinition)}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.desiredCount??0}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.runningCount??0}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.pendingCount??0})]},e.id)}function y(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:m(e.targetGroupArn)}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.containerName}),(0,p.jsx)(`td`,{className:`px-4 py-2`,children:e.containerPort})]},`${e.targetGroupArn??``}-${e.containerName??``}-${e.containerPort??``}`)}function b(){let e=(0,f.c)(3),{clusterName:t,serviceName:n}=s.useParams(),r;return e[0]!==t||e[1]!==n?(r=(0,p.jsx)(g,{clusterName:t,serviceName:n}),e[0]=t,e[1]=n,e[2]=r):r=e[2],r}export{b as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_taskId.js b/spinifex/services/spinifexui/frontend/dist/assets/_taskId.js index 973333f0c..395ea6777 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_taskId.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_taskId.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{s as n}from"./ecs.js";import{Xn as r,_n as i,dn as a,t as o}from"./index.js";import{n as s,t as c}from"./detail-row.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function p(e,t){return e?.details?.find(e=>e.name===t)?.value}function m(e){return e?new Date(e).toISOString():``}function h(e){let t=(0,u.c)(48),{clusterName:o,taskId:h}=e,v;t[0]===o?v=t[1]:(v=n(o),t[0]=o,t[1]=v);let{data:y}=r(v),b,x,S,C,w,T,E,D;if(t[2]!==o||t[3]!==h||t[4]!==y){D=Symbol.for(`react.early_return_sentinel`);bb0:{let e;t[13]===h?e=t[14]:(e=e=>(e.taskArn??``).endsWith(h),t[13]=h,t[14]=e);let n=y.find(e);if(!n){let e;t[15]===o?e=t[16]:(e={clusterName:o},t[15]=o,t[16]=e);let n;t[17]!==o||t[18]!==e?(n=(0,d.jsx)(i,{params:e,to:`/ecs/list-clusters/$clusterName`,children:o}),t[17]=o,t[18]=e,t[19]=n):n=t[19];let r;t[20]===h?r=t[21]:(r=(0,d.jsx)(a,{subtitle:`Task Details`,title:h}),t[20]=h,t[21]=r);let s;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`Task not found.`}),t[22]=s):s=t[22];let c;t[23]!==n||t[24]!==r?(c=(0,d.jsxs)(d.Fragment,{children:[n,r,s]}),t[23]=n,t[24]=r,t[25]=c):c=t[25],D=c;break bb0}let r=(n.attachments??[]).find(_),u=n.containers??[],v=u.some(g),O;t[26]===o?O=t[27]:(O={clusterName:o},t[26]=o,t[27]=O),t[28]!==o||t[29]!==O?(C=(0,d.jsx)(i,{params:O,to:`/ecs/list-clusters/$clusterName`,children:o}),t[28]=o,t[29]=O,t[30]=C):C=t[30],w=(0,d.jsx)(a,{actions:(0,d.jsx)(l,{state:n.lastStatus}),subtitle:`Task Details`,title:f(n.taskArn)});let k;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,d.jsx)(s.Header,{children:`Configuration`}),t[31]=k):k=t[31];let A=(0,d.jsxs)(s.Content,{children:[(0,d.jsx)(c,{label:`Task ID`,value:f(n.taskArn)}),(0,d.jsx)(c,{label:`Last status`,value:(0,d.jsx)(l,{state:n.lastStatus})}),(0,d.jsx)(c,{label:`Desired status`,value:n.desiredStatus}),(0,d.jsx)(c,{label:`Task definition`,value:f(n.taskDefinitionArn)}),(0,d.jsx)(c,{label:`Launch type`,value:n.launchType}),(0,d.jsx)(c,{label:`Container instance`,value:f(n.containerInstanceArn)}),(0,d.jsx)(c,{label:`Created at`,value:m(n.createdAt)}),(0,d.jsx)(c,{label:`Started at`,value:m(n.startedAt)}),(0,d.jsx)(c,{label:`Stopped at`,value:m(n.stoppedAt)}),n.stoppedReason?(0,d.jsx)(c,{label:`Stopped reason`,value:n.stoppedReason}):null]});t[32]===A?T=t[33]:(T=(0,d.jsxs)(s,{children:[k,A]}),t[32]=A,t[33]=T);let j;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,d.jsx)(s.Header,{children:`Networking`}),t[34]=j):j=t[34];let M=r?(0,d.jsxs)(s.Content,{children:[(0,d.jsx)(c,{label:`ENI ID`,value:p(r,`networkInterfaceId`)}),(0,d.jsx)(c,{label:`Private IP`,value:p(r,`privateIPv4Address`)}),(0,d.jsx)(c,{label:`Public IP`,value:p(r,`publicIPv4Address`)}),(0,d.jsx)(c,{label:`Subnet`,value:p(r,`subnetId`)}),(0,d.jsx)(c,{label:`MAC`,value:p(r,`macAddress`)})]}):(0,d.jsx)(`div`,{className:`p-4`,children:(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`Network mode does not assign an ENI.`})});t[35]===M?E=t[36]:(E=(0,d.jsx)(`div`,{className:`mt-6`,children:(0,d.jsxs)(s,{children:[j,M]})}),t[35]=M,t[36]=E),b=`mt-6`,t[37]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,d.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Containers`}),t[37]=x):x=t[37],S=u.length===0?(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No containers.`}):(0,d.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,d.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Image`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Health`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Exit Code / Reason`}),v&&(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`GPUs`})]})}),(0,d.jsx)(`tbody`,{children:u.map(e=>(0,d.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,d.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:e.name}),(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.image}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:(0,d.jsx)(l,{state:e.lastStatus})}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.healthStatus}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.exitCode===void 0?e.reason??``:String(e.exitCode)}),v&&(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.gpuIds&&e.gpuIds.length>0?e.gpuIds.join(`, `):`—`})]},e.name??e.containerArn))})]})})}t[2]=o,t[3]=h,t[4]=y,t[5]=b,t[6]=x,t[7]=S,t[8]=C,t[9]=w,t[10]=T,t[11]=E,t[12]=D}else b=t[5],x=t[6],S=t[7],C=t[8],w=t[9],T=t[10],E=t[11],D=t[12];if(D!==Symbol.for(`react.early_return_sentinel`))return D;let O;t[38]!==b||t[39]!==x||t[40]!==S?(O=(0,d.jsxs)(`div`,{className:b,children:[x,S]}),t[38]=b,t[39]=x,t[40]=S,t[41]=O):O=t[41];let k;return t[42]!==O||t[43]!==C||t[44]!==w||t[45]!==T||t[46]!==E?(k=(0,d.jsxs)(d.Fragment,{children:[C,w,T,E,O]}),t[42]=O,t[43]=C,t[44]=w,t[45]=T,t[46]=E,t[47]=k):k=t[47],k}function g(e){return(e.gpuIds?.length??0)>0}function _(e){return e.type===`ElasticNetworkInterface`}function v(){let e=(0,u.c)(3),{clusterName:t,taskId:n}=o.useParams(),r;return e[0]!==t||e[1]!==n?(r=(0,d.jsx)(h,{clusterName:t,taskId:n}),e[0]=t,e[1]=n,e[2]=r):r=e[2],r}export{v as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{s as n}from"./ecs.js";import{$n as r,Tn as i,t as a,yn as o}from"./index.js";import{n as s,t as c}from"./detail-row.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(e){if(!e)return``;let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function p(e,t){return e?.details?.find(e=>e.name===t)?.value}function m(e){return e?new Date(e).toISOString():``}function h(e){let t=(0,u.c)(48),{clusterName:a,taskId:h}=e,v;t[0]===a?v=t[1]:(v=n(a),t[0]=a,t[1]=v);let{data:y}=r(v),b,x,S,C,w,T,E,D;if(t[2]!==a||t[3]!==h||t[4]!==y){D=Symbol.for(`react.early_return_sentinel`);bb0:{let e;t[13]===h?e=t[14]:(e=e=>(e.taskArn??``).endsWith(h),t[13]=h,t[14]=e);let n=y.find(e);if(!n){let e;t[15]===a?e=t[16]:(e={clusterName:a},t[15]=a,t[16]=e);let n;t[17]!==a||t[18]!==e?(n=(0,d.jsx)(i,{params:e,to:`/ecs/list-clusters/$clusterName`,children:a}),t[17]=a,t[18]=e,t[19]=n):n=t[19];let r;t[20]===h?r=t[21]:(r=(0,d.jsx)(o,{subtitle:`Task Details`,title:h}),t[20]=h,t[21]=r);let s;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`Task not found.`}),t[22]=s):s=t[22];let c;t[23]!==n||t[24]!==r?(c=(0,d.jsxs)(d.Fragment,{children:[n,r,s]}),t[23]=n,t[24]=r,t[25]=c):c=t[25],D=c;break bb0}let r=(n.attachments??[]).find(_),u=n.containers??[],v=u.some(g),O;t[26]===a?O=t[27]:(O={clusterName:a},t[26]=a,t[27]=O),t[28]!==a||t[29]!==O?(C=(0,d.jsx)(i,{params:O,to:`/ecs/list-clusters/$clusterName`,children:a}),t[28]=a,t[29]=O,t[30]=C):C=t[30],w=(0,d.jsx)(o,{actions:(0,d.jsx)(l,{state:n.lastStatus}),subtitle:`Task Details`,title:f(n.taskArn)});let k;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,d.jsx)(s.Header,{children:`Configuration`}),t[31]=k):k=t[31];let A=(0,d.jsxs)(s.Content,{children:[(0,d.jsx)(c,{label:`Task ID`,value:f(n.taskArn)}),(0,d.jsx)(c,{label:`Last status`,value:(0,d.jsx)(l,{state:n.lastStatus})}),(0,d.jsx)(c,{label:`Desired status`,value:n.desiredStatus}),(0,d.jsx)(c,{label:`Task definition`,value:f(n.taskDefinitionArn)}),(0,d.jsx)(c,{label:`Launch type`,value:n.launchType}),(0,d.jsx)(c,{label:`Container instance`,value:f(n.containerInstanceArn)}),(0,d.jsx)(c,{label:`Created at`,value:m(n.createdAt)}),(0,d.jsx)(c,{label:`Started at`,value:m(n.startedAt)}),(0,d.jsx)(c,{label:`Stopped at`,value:m(n.stoppedAt)}),n.stoppedReason?(0,d.jsx)(c,{label:`Stopped reason`,value:n.stoppedReason}):null]});t[32]===A?T=t[33]:(T=(0,d.jsxs)(s,{children:[k,A]}),t[32]=A,t[33]=T);let j;t[34]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,d.jsx)(s.Header,{children:`Networking`}),t[34]=j):j=t[34];let M=r?(0,d.jsxs)(s.Content,{children:[(0,d.jsx)(c,{label:`ENI ID`,value:p(r,`networkInterfaceId`)}),(0,d.jsx)(c,{label:`Private IP`,value:p(r,`privateIPv4Address`)}),(0,d.jsx)(c,{label:`Public IP`,value:p(r,`publicIPv4Address`)}),(0,d.jsx)(c,{label:`Subnet`,value:p(r,`subnetId`)}),(0,d.jsx)(c,{label:`MAC`,value:p(r,`macAddress`)})]}):(0,d.jsx)(`div`,{className:`p-4`,children:(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`Network mode does not assign an ENI.`})});t[35]===M?E=t[36]:(E=(0,d.jsx)(`div`,{className:`mt-6`,children:(0,d.jsxs)(s,{children:[j,M]})}),t[35]=M,t[36]=E),b=`mt-6`,t[37]===Symbol.for(`react.memo_cache_sentinel`)?(x=(0,d.jsx)(`h2`,{className:`mb-2 font-semibold`,children:`Containers`}),t[37]=x):x=t[37],S=u.length===0?(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No containers.`}):(0,d.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,d.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Image`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Health`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Exit Code / Reason`}),v&&(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`GPUs`})]})}),(0,d.jsx)(`tbody`,{children:u.map(e=>(0,d.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,d.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:e.name}),(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.image}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:(0,d.jsx)(l,{state:e.lastStatus})}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.healthStatus}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.exitCode===void 0?e.reason??``:String(e.exitCode)}),v&&(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.gpuIds&&e.gpuIds.length>0?e.gpuIds.join(`, `):`—`})]},e.name??e.containerArn))})]})})}t[2]=a,t[3]=h,t[4]=y,t[5]=b,t[6]=x,t[7]=S,t[8]=C,t[9]=w,t[10]=T,t[11]=E,t[12]=D}else b=t[5],x=t[6],S=t[7],C=t[8],w=t[9],T=t[10],E=t[11],D=t[12];if(D!==Symbol.for(`react.early_return_sentinel`))return D;let O;t[38]!==b||t[39]!==x||t[40]!==S?(O=(0,d.jsxs)(`div`,{className:b,children:[x,S]}),t[38]=b,t[39]=x,t[40]=S,t[41]=O):O=t[41];let k;return t[42]!==O||t[43]!==C||t[44]!==w||t[45]!==T||t[46]!==E?(k=(0,d.jsxs)(d.Fragment,{children:[C,w,T,E,O]}),t[42]=O,t[43]=C,t[44]=w,t[45]=T,t[46]=E,t[47]=k):k=t[47],k}function g(e){return(e.gpuIds?.length??0)>0}function _(e){return e.type===`ElasticNetworkInterface`}function v(){let e=(0,u.c)(3),{clusterName:t,taskId:n}=a.useParams(),r;return e[0]!==t||e[1]!==n?(r=(0,d.jsx)(h,{clusterName:t,taskId:n}),e[0]=t,e[1]=n,e[2]=r):r=e[2],r}export{v as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/_userName.js b/spinifex/services/spinifexui/frontend/dist/assets/_userName.js index 7572fd0cc..10cffda92 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/_userName.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/_userName.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{Xt as o}from"./auth.js";import{t as s}from"./check.js";import{t as c}from"./trash-2.js";import{t as l}from"./triangle-alert.js";import{t as u}from"./button.js";import{O as d,f,k as p,o as m,y as h}from"./iam.js";import{S as g,c as _,t as v}from"./iam2.js";import{Xn as y,_n as b,a as x,dn as S,gn as C,mn as w}from"./index.js";import{a as T,c as E,i as D,l as O,o as k,r as A,s as j,t as M}from"./alert-dialog.js";import{t as N}from"./delete-confirmation-dialog.js";import{n as P,t as F}from"./detail-row.js";import{t as I}from"./state-badge.js";import{n as L,t as R}from"./inline-policies-panel.js";var z=t(n()),B=r(),V=e();function H(e){let t=(0,B.c)(27),{onClose:n,accessKeyId:r,secretAccessKey:i}=e,{copied:a,copy:o}=C(),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,V.jsxs)(j,{children:[(0,V.jsx)(E,{children:(0,V.jsx)(l,{className:`text-destructive`})}),(0,V.jsx)(O,{children:`Save Your Access Key`}),(0,V.jsx)(T,{children:`This is your only chance to view the secret access key. Please copy it now. You won't be able to retrieve it again.`})]}),t[0]=c):c=t[0];let d;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Access Key ID: `}),t[1]=d):d=t[1];let f;t[2]===r?f=t[3]:(f=(0,V.jsxs)(`div`,{children:[d,r]}),t[2]=r,t[3]=f);let p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Secret Access Key: `}),t[4]=p):p=t[4];let m;t[5]===i?m=t[6]:(m=(0,V.jsxs)(`div`,{children:[p,i]}),t[5]=i,t[6]=m);let h;t[7]!==f||t[8]!==m?(h=(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border p-4 font-mono text-sm`,children:[f,m]}),t[7]=f,t[8]=m,t[9]=h):h=t[9];let g;t[10]!==r||t[11]!==o||t[12]!==i?(g=async()=>await o(`Access Key ID: ${r}\nSecret Access Key: ${i}`),t[10]=r,t[11]=o,t[12]=i,t[13]=g):g=t[13];let _;t[14]===a?_=t[15]:(_=a?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(s,{className:`mr-2 size-4`}),`Copied!`]}):`Copy to Clipboard`,t[14]=a,t[15]=_);let v;t[16]!==g||t[17]!==_?(v=(0,V.jsx)(u,{className:`w-full`,onClick:g,type:`button`,variant:`outline`,children:_}),t[16]=g,t[17]=_,t[18]=v):v=t[18];let y;t[19]!==h||t[20]!==v?(y=(0,V.jsxs)(`div`,{className:`space-y-3`,children:[h,v]}),t[19]=h,t[20]=v,t[21]=y):y=t[21];let b;t[22]===n?b=t[23]:(b=(0,V.jsx)(k,{children:(0,V.jsx)(A,{onClick:n,children:`Close and Continue`})}),t[22]=n,t[23]=b);let x;return t[24]!==y||t[25]!==b?(x=(0,V.jsx)(M,{open:!0,children:(0,V.jsxs)(D,{className:`max-w-2xl`,children:[c,y,b]})}),t[24]=y,t[25]=b,t[26]=x):x=t[26],x}function U(){let{userName:e}=x.useParams(),t=a(),{data:n}=y(g(e)),{data:r}=y(v(e)),{data:s}=y(_(e)),l=h(),C=m(),T=f(),E=p(),D=d(),[O,k]=(0,z.useState)(!1),[A,j]=(0,z.useState)(null),[M,B]=(0,z.useState)(null),[U,W]=(0,z.useState)(null),G=n.User,K=r.AccessKeyMetadata??[],q=s.Groups??[],J=async()=>{try{await l.mutateAsync(e),t({to:`/iam/list-users`})}finally{k(!1)}},Y=async()=>{let t=await C.mutateAsync(e);t.AccessKey&&j({accessKeyId:t.AccessKey.AccessKeyId??``,secretAccessKey:t.AccessKey.SecretAccessKey??``})},X=async t=>{if(t.AccessKeyId){B(t.AccessKeyId);try{await E.mutateAsync({userName:e,accessKeyId:t.AccessKeyId,status:t.Status===`Active`?`Inactive`:`Active`})}finally{B(null)}}},Z=async t=>{B(t);try{await T.mutateAsync({userName:e,accessKeyId:t})}finally{B(null)}},Q=async t=>{W(t);try{await D.mutateAsync({groupName:t,userName:e})}finally{W(null)}};return G?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(b,{to:`/iam/list-users`,children:`Back to users`}),l.error&&(0,V.jsx)(w,{error:l.error,msg:`Failed to delete user`}),C.error&&(0,V.jsx)(w,{error:C.error,msg:`Failed to create access key`}),T.error&&(0,V.jsx)(w,{error:T.error,msg:`Failed to delete access key`}),D.error&&(0,V.jsx)(w,{error:D.error,msg:`Failed to remove from group`}),(0,V.jsxs)(`div`,{className:`space-y-6`,children:[(0,V.jsx)(S,{actions:(0,V.jsxs)(u,{onClick:()=>k(!0),size:`sm`,variant:`destructive`,children:[(0,V.jsx)(c,{className:`size-4`}),`Delete`]}),subtitle:`User Details`,title:G.UserName??``}),(0,V.jsxs)(P,{children:[(0,V.jsx)(P.Header,{children:`User Information`}),(0,V.jsxs)(P.Content,{children:[(0,V.jsx)(F,{label:`User Name`,value:G.UserName}),(0,V.jsx)(F,{label:`User ID`,value:G.UserId}),(0,V.jsx)(F,{label:`ARN`,value:G.Arn}),(0,V.jsx)(F,{label:`Path`,value:G.Path}),(0,V.jsx)(F,{label:`Created`,value:o(G.CreateDate)})]})]}),(0,V.jsxs)(P,{children:[(0,V.jsx)(P.Header,{children:(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,V.jsx)(`span`,{children:`Access Keys`}),(0,V.jsx)(u,{disabled:C.isPending,onClick:Y,size:`sm`,children:C.isPending?`Creating...`:`Create Access Key`})]})}),(0,V.jsx)(P.Content,{children:K.length>0?(0,V.jsx)(`div`,{className:`col-span-2 space-y-3`,children:K.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-1`,children:[(0,V.jsx)(`p`,{className:`font-mono text-sm`,children:e.AccessKeyId}),(0,V.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Created `,o(e.CreateDate)]})]}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(I,{state:e.Status}),(0,V.jsx)(u,{disabled:M===e.AccessKeyId,onClick:async()=>await X(e),size:`sm`,variant:`outline`,children:e.Status===`Active`?`Deactivate`:`Activate`}),(0,V.jsx)(u,{disabled:M===e.AccessKeyId,onClick:()=>{e.AccessKeyId&&Z(e.AccessKeyId)},size:`sm`,variant:`destructive`,children:`Delete`})]})]},e.AccessKeyId))}):(0,V.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No access keys.`})})]}),(0,V.jsx)(L,{kind:`user`,name:e}),(0,V.jsx)(R,{kind:`user`,name:e}),(0,V.jsxs)(P,{children:[(0,V.jsx)(P.Header,{children:`Groups`}),(0,V.jsx)(P.Content,{children:q.length>0?(0,V.jsx)(`div`,{className:`col-span-2 space-y-3`,children:q.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,V.jsx)(i,{className:`text-sm font-medium hover:underline`,params:{groupName:e.GroupName??``},to:`/iam/list-groups/$groupName`,children:e.GroupName}),(0,V.jsx)(u,{disabled:U===e.GroupName,onClick:()=>{e.GroupName&&Q(e.GroupName)},size:`sm`,variant:`outline`,children:`Remove`})]},e.GroupName))}):(0,V.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`Not a member of any group.`})})]})]}),(0,V.jsx)(N,{description:`Are you sure you want to delete the user "${e}"? This action cannot be undone. You must detach all policies and delete all access keys first.`,isPending:l.isPending,onConfirm:J,onOpenChange:k,open:O,title:`Delete User`}),A&&(0,V.jsx)(H,{accessKeyId:A.accessKeyId,onClose:()=>j(null),secretAccessKey:A.secretAccessKey})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(b,{to:`/iam/list-users`,children:`Back to users`}),(0,V.jsx)(`p`,{className:`text-muted-foreground`,children:`User not found.`})]})}export{U as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{Xt as o}from"./auth.js";import{t as s}from"./check.js";import{t as c}from"./trash-2.js";import{t as l}from"./button.js";import{O as u,f as d,k as f,o as p,y as m}from"./iam.js";import{S as h,c as g,t as _}from"./iam2.js";import{$n as v,B as y,F as b,H as x,L as S,R as C,Sn as w,Tn as T,U as E,V as D,Vn as O,a as k,wn as A,yn as j,z as M}from"./index.js";import{t as N}from"./delete-confirmation-dialog.js";import{n as P,t as F}from"./detail-row.js";import{t as I}from"./state-badge.js";import{n as L,t as R}from"./inline-policies-panel.js";var z=t(n()),B=r(),V=e();function H(e){let t=(0,B.c)(27),{onClose:n,accessKeyId:r,secretAccessKey:i}=e,{copied:a,copy:o}=A(),c;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,V.jsxs)(D,{children:[(0,V.jsx)(x,{children:(0,V.jsx)(O,{className:`text-destructive`})}),(0,V.jsx)(E,{children:`Save Your Access Key`}),(0,V.jsx)(M,{children:`This is your only chance to view the secret access key. Please copy it now. You won't be able to retrieve it again.`})]}),t[0]=c):c=t[0];let u;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Access Key ID: `}),t[1]=u):u=t[1];let d;t[2]===r?d=t[3]:(d=(0,V.jsxs)(`div`,{children:[u,r]}),t[2]=r,t[3]=d);let f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,V.jsx)(`span`,{className:`text-muted-foreground`,children:`Secret Access Key: `}),t[4]=f):f=t[4];let p;t[5]===i?p=t[6]:(p=(0,V.jsxs)(`div`,{children:[f,i]}),t[5]=i,t[6]=p);let m;t[7]!==d||t[8]!==p?(m=(0,V.jsxs)(`div`,{className:`space-y-2 rounded-md border p-4 font-mono text-sm`,children:[d,p]}),t[7]=d,t[8]=p,t[9]=m):m=t[9];let h;t[10]!==r||t[11]!==o||t[12]!==i?(h=async()=>await o(`Access Key ID: ${r}\nSecret Access Key: ${i}`),t[10]=r,t[11]=o,t[12]=i,t[13]=h):h=t[13];let g;t[14]===a?g=t[15]:(g=a?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(s,{className:`mr-2 size-4`}),`Copied!`]}):`Copy to Clipboard`,t[14]=a,t[15]=g);let _;t[16]!==h||t[17]!==g?(_=(0,V.jsx)(l,{className:`w-full`,onClick:h,type:`button`,variant:`outline`,children:g}),t[16]=h,t[17]=g,t[18]=_):_=t[18];let v;t[19]!==m||t[20]!==_?(v=(0,V.jsxs)(`div`,{className:`space-y-3`,children:[m,_]}),t[19]=m,t[20]=_,t[21]=v):v=t[21];let w;t[22]===n?w=t[23]:(w=(0,V.jsx)(y,{children:(0,V.jsx)(S,{onClick:n,children:`Close and Continue`})}),t[22]=n,t[23]=w);let T;return t[24]!==v||t[25]!==w?(T=(0,V.jsx)(b,{open:!0,children:(0,V.jsxs)(C,{className:`max-w-2xl`,children:[c,v,w]})}),t[24]=v,t[25]=w,t[26]=T):T=t[26],T}function U(){let{userName:e}=k.useParams(),t=a(),{data:n}=v(h(e)),{data:r}=v(_(e)),{data:s}=v(g(e)),y=m(),b=p(),x=d(),S=f(),C=u(),[E,D]=(0,z.useState)(!1),[O,A]=(0,z.useState)(null),[M,B]=(0,z.useState)(null),[U,W]=(0,z.useState)(null),G=n.User,K=r.AccessKeyMetadata??[],q=s.Groups??[],J=async()=>{try{await y.mutateAsync(e),t({to:`/iam/list-users`})}finally{D(!1)}},Y=async()=>{let t=await b.mutateAsync(e);t.AccessKey&&A({accessKeyId:t.AccessKey.AccessKeyId??``,secretAccessKey:t.AccessKey.SecretAccessKey??``})},X=async t=>{if(t.AccessKeyId){B(t.AccessKeyId);try{await S.mutateAsync({userName:e,accessKeyId:t.AccessKeyId,status:t.Status===`Active`?`Inactive`:`Active`})}finally{B(null)}}},Z=async t=>{B(t);try{await x.mutateAsync({userName:e,accessKeyId:t})}finally{B(null)}},Q=async t=>{W(t);try{await C.mutateAsync({groupName:t,userName:e})}finally{W(null)}};return G?(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(T,{to:`/iam/list-users`,children:`Back to users`}),y.error&&(0,V.jsx)(w,{error:y.error,msg:`Failed to delete user`}),b.error&&(0,V.jsx)(w,{error:b.error,msg:`Failed to create access key`}),x.error&&(0,V.jsx)(w,{error:x.error,msg:`Failed to delete access key`}),C.error&&(0,V.jsx)(w,{error:C.error,msg:`Failed to remove from group`}),(0,V.jsxs)(`div`,{className:`space-y-6`,children:[(0,V.jsx)(j,{actions:(0,V.jsxs)(l,{onClick:()=>D(!0),size:`sm`,variant:`destructive`,children:[(0,V.jsx)(c,{className:`size-4`}),`Delete`]}),subtitle:`User Details`,title:G.UserName??``}),(0,V.jsxs)(P,{children:[(0,V.jsx)(P.Header,{children:`User Information`}),(0,V.jsxs)(P.Content,{children:[(0,V.jsx)(F,{label:`User Name`,value:G.UserName}),(0,V.jsx)(F,{label:`User ID`,value:G.UserId}),(0,V.jsx)(F,{label:`ARN`,value:G.Arn}),(0,V.jsx)(F,{label:`Path`,value:G.Path}),(0,V.jsx)(F,{label:`Created`,value:o(G.CreateDate)})]})]}),(0,V.jsxs)(P,{children:[(0,V.jsx)(P.Header,{children:(0,V.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,V.jsx)(`span`,{children:`Access Keys`}),(0,V.jsx)(l,{disabled:b.isPending,onClick:Y,size:`sm`,children:b.isPending?`Creating...`:`Create Access Key`})]})}),(0,V.jsx)(P.Content,{children:K.length>0?(0,V.jsx)(`div`,{className:`col-span-2 space-y-3`,children:K.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,V.jsxs)(`div`,{className:`space-y-1`,children:[(0,V.jsx)(`p`,{className:`font-mono text-sm`,children:e.AccessKeyId}),(0,V.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Created `,o(e.CreateDate)]})]}),(0,V.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,V.jsx)(I,{state:e.Status}),(0,V.jsx)(l,{disabled:M===e.AccessKeyId,onClick:async()=>await X(e),size:`sm`,variant:`outline`,children:e.Status===`Active`?`Deactivate`:`Activate`}),(0,V.jsx)(l,{disabled:M===e.AccessKeyId,onClick:()=>{e.AccessKeyId&&Z(e.AccessKeyId)},size:`sm`,variant:`destructive`,children:`Delete`})]})]},e.AccessKeyId))}):(0,V.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No access keys.`})})]}),(0,V.jsx)(L,{kind:`user`,name:e}),(0,V.jsx)(R,{kind:`user`,name:e}),(0,V.jsxs)(P,{children:[(0,V.jsx)(P.Header,{children:`Groups`}),(0,V.jsx)(P.Content,{children:q.length>0?(0,V.jsx)(`div`,{className:`col-span-2 space-y-3`,children:q.map(e=>(0,V.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,V.jsx)(i,{className:`text-sm font-medium hover:underline`,params:{groupName:e.GroupName??``},to:`/iam/list-groups/$groupName`,children:e.GroupName}),(0,V.jsx)(l,{disabled:U===e.GroupName,onClick:()=>{e.GroupName&&Q(e.GroupName)},size:`sm`,variant:`outline`,children:`Remove`})]},e.GroupName))}):(0,V.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`Not a member of any group.`})})]})]}),(0,V.jsx)(N,{description:`Are you sure you want to delete the user "${e}"? This action cannot be undone. You must detach all policies and delete all access keys first.`,isPending:y.isPending,onConfirm:J,onOpenChange:D,open:E,title:`Delete User`}),O&&(0,V.jsx)(H,{accessKeyId:O.accessKeyId,onClose:()=>A(null),secretAccessKey:O.secretAccessKey})]}):(0,V.jsxs)(V.Fragment,{children:[(0,V.jsx)(T,{to:`/iam/list-users`,children:`Back to users`}),(0,V.jsx)(`p`,{className:`text-muted-foreground`,children:`User not found.`})]})}export{U as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/admin.js b/spinifex/services/spinifexui/frontend/dist/assets/admin.js index 0a2b62727..e9a01dccc 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/admin.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/admin.js @@ -1 +1 @@ -import{t as e}from"./queryOptions.js";import{r as t}from"./auth.js";import{On as n}from"./index.js";var r=e({queryKey:[`admin`,`nodes`],queryFn:async()=>{let e=t();if(!e)throw Error(`Not authenticated`);return await n({action:`GetNodes`,credentials:e})},staleTime:1e4}),i=e({queryKey:[`admin`,`vms`],queryFn:async()=>{let e=t();if(!e)throw Error(`Not authenticated`);return await n({action:`GetVMs`,credentials:e})},staleTime:1e4}),a=e({queryKey:[`admin`,`storageStatus`],queryFn:async()=>{let e=t();if(!e)throw Error(`Not authenticated`);return await n({action:`GetStorageStatus`,credentials:e})},staleTime:1e4});export{a as n,i as r,r as t}; \ No newline at end of file +import{t as e}from"./queryOptions.js";import{r as t}from"./auth.js";import{In as n}from"./index.js";var r=e({queryKey:[`admin`,`nodes`],queryFn:async()=>{let e=t();if(!e)throw Error(`Not authenticated`);return await n({action:`GetNodes`,credentials:e})},staleTime:1e4}),i=e({queryKey:[`admin`,`vms`],queryFn:async()=>{let e=t();if(!e)throw Error(`Not authenticated`);return await n({action:`GetVMs`,credentials:e})},staleTime:1e4}),a=e({queryKey:[`admin`,`storageStatus`],queryFn:async()=>{let e=t();if(!e)throw Error(`Not authenticated`);return await n({action:`GetStorageStatus`,credentials:e})},staleTime:1e4});export{a as n,i as r,r as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/alert-dialog.js b/spinifex/services/spinifexui/frontend/dist/assets/alert-dialog.js deleted file mode 100644 index 4f9aef2a9..000000000 --- a/spinifex/services/spinifexui/frontend/dist/assets/alert-dialog.js +++ /dev/null @@ -1 +0,0 @@ -import{n as e,t}from"./compiler-runtime.js";import{qt as n}from"./auth.js";import{t as r}from"./button.js";import{An as i,Fn as a,In as o,Mn as s,Nn as c,Pn as l,jn as u}from"./index.js";function d(e){return u(e,`alert-dialog`)}var f=t(),p=e();function m(e){let t=(0,f.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,p.jsx)(d,{"data-slot":`alert-dialog`,...n}),t[2]=n,t[3]=r),r}function h(e){let t=(0,f.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,p.jsx)(s,{"data-slot":`alert-dialog-portal`,...n}),t[2]=n,t[3]=r),r}function g(e){let t=(0,f.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let a;t[3]===r?a=t[4]:(a=n(`data-closed:fade-out-0 data-open:fade-in-0 data-closed:animate-out data-open:animate-in fixed inset-0 isolate z-50 bg-black/80 duration-100 supports-backdrop-filter:backdrop-blur-xs`,r),t[3]=r,t[4]=a);let s;return t[5]!==i||t[6]!==a?(s=(0,p.jsx)(o,{className:a,"data-slot":`alert-dialog-overlay`,...i}),t[5]=i,t[6]=a,t[7]=s):s=t[7],s}function _(e){let t=(0,f.c)(11),r,i,a;t[0]===e?(r=t[1],i=t[2],a=t[3]):({className:r,size:a,...i}=e,t[0]=e,t[1]=r,t[2]=i,t[3]=a);let o=a===void 0?`default`:a,s;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,p.jsx)(g,{}),t[4]=s):s=t[4];let l;t[5]===r?l=t[6]:(l=n(`data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 group/alert-dialog-content data-closed:animate-out data-open:animate-in fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-3 rounded-xl bg-background p-4 ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-64 data-[size=default]:sm:max-w-sm`,r),t[5]=r,t[6]=l);let u;return t[7]!==i||t[8]!==o||t[9]!==l?(u=(0,p.jsxs)(h,{children:[s,(0,p.jsx)(c,{className:l,"data-size":o,"data-slot":`alert-dialog-content`,...i})]}),t[7]=i,t[8]=o,t[9]=l,t[10]=u):u=t[10],u}function v(e){let t=(0,f.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let a;t[3]===r?a=t[4]:(a=n(`grid grid-rows-[auto_1fr] place-items-center gap-1 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]`,r),t[3]=r,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,p.jsx)(`div`,{className:a,"data-slot":`alert-dialog-header`,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function y(e){let t=(0,f.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let a;t[3]===r?a=t[4]:(a=n(`flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end`,r),t[3]=r,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,p.jsx)(`div`,{className:a,"data-slot":`alert-dialog-footer`,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function b(e){let t=(0,f.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let a;t[3]===r?a=t[4]:(a=n(`mb-2 inline-flex size-8 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-4`,r),t[3]=r,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,p.jsx)(`div`,{className:a,"data-slot":`alert-dialog-media`,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function x(e){let t=(0,f.c)(8),r,a;t[0]===e?(r=t[1],a=t[2]):({className:r,...a}=e,t[0]=e,t[1]=r,t[2]=a);let o;t[3]===r?o=t[4]:(o=n(`text-sm font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2`,r),t[3]=r,t[4]=o);let s;return t[5]!==a||t[6]!==o?(s=(0,p.jsx)(i,{className:o,"data-slot":`alert-dialog-title`,...a}),t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function S(e){let t=(0,f.c)(8),r,i;t[0]===e?(r=t[1],i=t[2]):({className:r,...i}=e,t[0]=e,t[1]=r,t[2]=i);let a;t[3]===r?a=t[4]:(a=n(`text-xs/relaxed text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,r),t[3]=r,t[4]=a);let o;return t[5]!==i||t[6]!==a?(o=(0,p.jsx)(l,{className:a,"data-slot":`alert-dialog-description`,...i}),t[5]=i,t[6]=a,t[7]=o):o=t[7],o}function C(e){let t=(0,f.c)(8),i,a;t[0]===e?(i=t[1],a=t[2]):({className:i,...a}=e,t[0]=e,t[1]=i,t[2]=a);let o;t[3]===i?o=t[4]:(o=n(i),t[3]=i,t[4]=o);let s;return t[5]!==a||t[6]!==o?(s=(0,p.jsx)(r,{className:o,"data-slot":`alert-dialog-action`,...a}),t[5]=a,t[6]=o,t[7]=s):s=t[7],s}function w(e){let t=(0,f.c)(14),i,o,s,c;t[0]===e?(i=t[1],o=t[2],s=t[3],c=t[4]):({className:i,variant:s,size:c,...o}=e,t[0]=e,t[1]=i,t[2]=o,t[3]=s,t[4]=c);let l=s===void 0?`outline`:s,u=c===void 0?`default`:c,d;t[5]===i?d=t[6]:(d=n(i),t[5]=i,t[6]=d);let m;t[7]!==u||t[8]!==l?(m=(0,p.jsx)(r,{size:u,variant:l}),t[7]=u,t[8]=l,t[9]=m):m=t[9];let h;return t[10]!==o||t[11]!==d||t[12]!==m?(h=(0,p.jsx)(a,{className:d,"data-slot":`alert-dialog-cancel`,render:m,...o}),t[10]=o,t[11]=d,t[12]=m,t[13]=h):h=t[13],h}export{S as a,b as c,_ as i,x as l,C as n,y as o,w as r,v as s,m as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/allocate-address.js b/spinifex/services/spinifexui/frontend/dist/assets/allocate-address.js index 7a9fbfeb6..359c766e2 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/allocate-address.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/allocate-address.js @@ -1,3 +1,3 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{I as r,Ln as i,Sn as a,_n as o,dn as s,hn as c,mn as l,rn as u,sn as d,tt as f,vn as p,xn as m}from"./index.js";import{t as h}from"./form-actions.js";var g=t(),_=e();function v(){let e=(0,g.c)(36),t=n(),v=f(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:p(r),defaultValues:{name:``}},e[0]=b):b=e[0];let{control:x,handleSubmit:S,register:C,formState:w}=m(b),{isSubmitting:T}=w,E;e[1]===x?E=e[2]:(E={control:x},e[1]=x,e[2]=E);let D=a(E),O;e[3]!==v||e[4]!==t?(O=async e=>{let n=(await v.mutateAsync({name:e.name?.trim()??void 0})).AllocationId;t(n?{to:`/ec2/describe-addresses/$id`,params:{id:n}}:{to:`/ec2/describe-addresses`})},e[3]=v,e[4]=t,e[5]=O):O=e[5];let k=O,A,j;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,_.jsx)(o,{to:`/ec2/describe-addresses`,children:`Back to Elastic IPs`}),j=(0,_.jsx)(s,{title:`Allocate Elastic IP`}),e[6]=A,e[7]=j):(A=e[6],j=e[7]);let M;e[8]===v.error?M=e[9]:(M=v.error&&(0,_.jsx)(l,{error:v.error,msg:`Failed to allocate Elastic IP`}),e[8]=v.error,e[9]=M);let N;e[10]!==S||e[11]!==k?(N=S(k),e[10]=S,e[11]=k,e[12]=N):N=e[12];let P;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,_.jsx)(d,{children:(0,_.jsx)(`label`,{htmlFor:`name`,children:`Name (optional)`})}),e[13]=P):P=e[13];let F;e[14]===C?F=e[15]:(F=C(`name`),e[14]=C,e[15]=F);let I;e[16]===F?I=e[17]:(I=(0,_.jsxs)(u,{children:[P,(0,_.jsx)(i,{id:`name`,placeholder:`my-elastic-ip`,...F})]}),e[16]=F,e[17]=I);let L=D.name??``,R;e[18]===L?R=e[19]:(R=y(L),e[18]=L,e[19]=R);let z;e[20]===R?z=e[21]:(z=(0,_.jsx)(c,{commands:R}),e[20]=R,e[21]=z);let B;e[22]===t?B=e[23]:(B=async()=>await t({to:`/ec2/describe-addresses`}),e[22]=t,e[23]=B);let V;e[24]!==v.isPending||e[25]!==T||e[26]!==B?(V=(0,_.jsx)(h,{isPending:v.isPending,isSubmitting:T,onCancel:B,pendingLabel:`Allocating…`,submitLabel:`Allocate`}),e[24]=v.isPending,e[25]=T,e[26]=B,e[27]=V):V=e[27];let H;e[28]!==I||e[29]!==z||e[30]!==V||e[31]!==N?(H=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:N,children:[I,z,V]}),e[28]=I,e[29]=z,e[30]=V,e[31]=N,e[32]=H):H=e[32];let U;return e[33]!==H||e[34]!==M?(U=(0,_.jsxs)(_.Fragment,{children:[A,j,M,H]}),e[33]=H,e[34]=M,e[35]=U):U=e[35],U}function y(e){let t=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 allocate-address`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{An as r,Cn as i,En as a,K as o,Rn as s,Sn as c,Tn as l,W as u,dn as d,hn as f,kn as p,ut as m,yn as h}from"./index.js";var g=t(),_=e();function v(){let e=(0,g.c)(36),t=n(),v=m(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:a(o),defaultValues:{name:``}},e[0]=b):b=e[0];let{control:x,handleSubmit:S,register:C,formState:w}=p(b),{isSubmitting:T}=w,E;e[1]===x?E=e[2]:(E={control:x},e[1]=x,e[2]=E);let D=r(E),O;e[3]!==v||e[4]!==t?(O=async e=>{let n=(await v.mutateAsync({name:e.name?.trim()??void 0})).AllocationId;t(n?{to:`/ec2/describe-addresses/$id`,params:{id:n}}:{to:`/ec2/describe-addresses`})},e[3]=v,e[4]=t,e[5]=O):O=e[5];let k=O,A,j;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,_.jsx)(l,{to:`/ec2/describe-addresses`,children:`Back to Elastic IPs`}),j=(0,_.jsx)(h,{title:`Allocate Elastic IP`}),e[6]=A,e[7]=j):(A=e[6],j=e[7]);let M;e[8]===v.error?M=e[9]:(M=v.error&&(0,_.jsx)(c,{error:v.error,msg:`Failed to allocate Elastic IP`}),e[8]=v.error,e[9]=M);let N;e[10]!==S||e[11]!==k?(N=S(k),e[10]=S,e[11]=k,e[12]=N):N=e[12];let P;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,_.jsx)(f,{children:(0,_.jsx)(`label`,{htmlFor:`name`,children:`Name (optional)`})}),e[13]=P):P=e[13];let F;e[14]===C?F=e[15]:(F=C(`name`),e[14]=C,e[15]=F);let I;e[16]===F?I=e[17]:(I=(0,_.jsxs)(d,{children:[P,(0,_.jsx)(s,{id:`name`,placeholder:`my-elastic-ip`,...F})]}),e[16]=F,e[17]=I);let L=D.name??``,R;e[18]===L?R=e[19]:(R=y(L),e[18]=L,e[19]=R);let z;e[20]===R?z=e[21]:(z=(0,_.jsx)(i,{commands:R}),e[20]=R,e[21]=z);let B;e[22]===t?B=e[23]:(B=async()=>await t({to:`/ec2/describe-addresses`}),e[22]=t,e[23]=B);let V;e[24]!==v.isPending||e[25]!==T||e[26]!==B?(V=(0,_.jsx)(u,{isPending:v.isPending,isSubmitting:T,onCancel:B,pendingLabel:`Allocating…`,submitLabel:`Allocate`}),e[24]=v.isPending,e[25]=T,e[26]=B,e[27]=V):V=e[27];let H;e[28]!==I||e[29]!==z||e[30]!==V||e[31]!==N?(H=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:N,children:[I,z,V]}),e[28]=I,e[29]=z,e[30]=V,e[31]=N,e[32]=H):H=e[32];let U;return e[33]!==H||e[34]!==M?(U=(0,_.jsxs)(_.Fragment,{children:[A,j,M,H]}),e[33]=H,e[34]=M,e[35]=U):U=e[35],U}function y(e){let t=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 allocate-address`},{type:`flag`,value:` \\ --domain`},{type:`value`,value:` vpc`}];return e.trim()&&t.push({type:`flag`,value:` \\ --tag-specifications`},{type:`value`,value:` 'ResourceType=elastic-ip,Tags=[{Key=Name,Value=${e.trim()}}]'`}),[{label:`Allocate Elastic IP`,parts:t}]}export{v as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/badge.js b/spinifex/services/spinifexui/frontend/dist/assets/badge.js index af39be58b..f6d012c9f 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/badge.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/badge.js @@ -1 +1 @@ -import{t as e}from"./compiler-runtime.js";import{f as t,t as n}from"./dist.js";import{qt as r}from"./auth.js";import{Yn as i}from"./index.js";var a=e(),o=n(`group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] font-medium whitespace-nowrap transition-all transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-2.5!`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20`,outline:`border-border bg-input/20 text-foreground dark:bg-input/30 [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function s(e){let n=(0,a.c)(13),s,c,l,u,d;if(n[0]!==e){let{className:a,variant:f,render:p,...m}=e;s=p,d=f===void 0?`default`:f,u=i,c=`span`,l=t({className:r(o({className:a,variant:d}))},m),n[0]=e,n[1]=s,n[2]=c,n[3]=l,n[4]=u,n[5]=d}else s=n[1],c=n[2],l=n[3],u=n[4],d=n[5];let f;n[6]===d?f=n[7]:(f={slot:`badge`,variant:d},n[6]=d,n[7]=f);let p;return n[8]!==s||n[9]!==c||n[10]!==l||n[11]!==f?(p={defaultTagName:c,props:l,render:s,state:f},n[8]=s,n[9]=c,n[10]=l,n[11]=f,n[12]=p):p=n[12],u(p)}export{s as t}; \ No newline at end of file +import{t as e}from"./compiler-runtime.js";import{f as t,t as n}from"./dist.js";import{qt as r}from"./auth.js";import{Qn as i}from"./index.js";var a=e(),o=n(`group/badge inline-flex h-5 w-fit shrink-0 items-center justify-center gap-1 overflow-hidden rounded-full border border-transparent px-2 py-0.5 text-[0.625rem] font-medium whitespace-nowrap transition-all transition-colors focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 has-data-[icon=inline-end]:pr-1.5 has-data-[icon=inline-start]:pl-1.5 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&>svg]:pointer-events-none [&>svg]:size-2.5!`,{variants:{variant:{default:`bg-primary text-primary-foreground [a]:hover:bg-primary/80`,secondary:`bg-secondary text-secondary-foreground [a]:hover:bg-secondary/80`,destructive:`bg-destructive/10 text-destructive focus-visible:ring-destructive/20 dark:bg-destructive/20 dark:focus-visible:ring-destructive/40 [a]:hover:bg-destructive/20`,outline:`border-border bg-input/20 text-foreground dark:bg-input/30 [a]:hover:bg-muted [a]:hover:text-muted-foreground`,ghost:`hover:bg-muted hover:text-muted-foreground dark:hover:bg-muted/50`,link:`text-primary underline-offset-4 hover:underline`}},defaultVariants:{variant:`default`}});function s(e){let n=(0,a.c)(13),s,c,l,u,d;if(n[0]!==e){let{className:a,variant:f,render:p,...m}=e;s=p,d=f===void 0?`default`:f,u=i,c=`span`,l=t({className:r(o({className:a,variant:d}))},m),n[0]=e,n[1]=s,n[2]=c,n[3]=l,n[4]=u,n[5]=d}else s=n[1],c=n[2],l=n[3],u=n[4],d=n[5];let f;n[6]===d?f=n[7]:(f={slot:`badge`,variant:d},n[6]=d,n[7]=f);let p;return n[8]!==s||n[9]!==c||n[10]!==l||n[11]!==f?(p={defaultTagName:c,props:l,render:s,state:f},n[8]=s,n[9]=c,n[10]=l,n[11]=f,n[12]=p):p=n[12],u(p)}export{s as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/certificate-import-dialog.js b/spinifex/services/spinifexui/frontend/dist/assets/certificate-import-dialog.js index 58705a30d..8e8e6a9f7 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/certificate-import-dialog.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/certificate-import-dialog.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./QueryClientProvider.js";import{t as a}from"./useMutation.js";import{Li as o,n as s}from"./awsClient.js";import{En as c,Tn as l,mn as u,rn as d,sn as f,wn as p}from"./index.js";import{a as m,i as ee,l as te,n as h,o as g,r as _,s as v,t as y}from"./alert-dialog.js";import{t as b}from"./textarea.js";var x=class extends c(p,l,`ImportCertificate`,o){},S=t(n(),1),C=r(),w=new TextEncoder;function T(){let e=(0,C.c)(2),t=i(),n;return e[0]===t?n=e[1]:(n={mutationFn:E,onSuccess:()=>{t.invalidateQueries({queryKey:[`acm`,`certificates`]})}},e[0]=t,e[1]=n),a(n)}async function E(e){let t=new x({Certificate:w.encode(e.certificate),PrivateKey:w.encode(e.privateKey),CertificateChain:e.certificateChain&&e.certificateChain.length>0?w.encode(e.certificateChain):void 0});return await s().send(t)}var D=e();function O(e){let t=(0,C.c)(54),{open:n,onOpenChange:r,onImported:i}=e,[a,o]=(0,S.useState)(``),[s,c]=(0,S.useState)(``),[l,p]=(0,S.useState)(``),x=T(),w;t[0]===x?w=t[1]:(w=()=>{o(``),c(``),p(``),x.reset()},t[0]=x,t[1]=w);let E=w,O;t[2]!==r||t[3]!==E?(O=e=>{e||E(),r(e)},t[2]=r,t[3]=E,t[4]=O):O=t[4];let k=O,A;t[5]!==a||t[6]!==s?(A=a.trim().length>0&&s.trim().length>0,t[5]=a,t[6]=s,t[7]=A):A=t[7];let j=A,M;t[8]!==j||t[9]!==a||t[10]!==l||t[11]!==x||t[12]!==i||t[13]!==r||t[14]!==s||t[15]!==E?(M=async()=>{if(j)try{let e=await x.mutateAsync({certificate:a,privateKey:s,certificateChain:l});e.CertificateArn&&i(e.CertificateArn),E(),r(!1)}catch{}},t[8]=j,t[9]=a,t[10]=l,t[11]=x,t[12]=i,t[13]=r,t[14]=s,t[15]=E,t[16]=M):M=t[16];let N=M,P;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(P={maxWidth:`36rem`,width:`calc(100vw - 2rem)`},t[17]=P):P=t[17];let F;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,D.jsxs)(v,{children:[(0,D.jsx)(te,{children:`Import certificate`}),(0,D.jsx)(m,{children:`Paste a PEM-encoded certificate and its private key. The optional chain is appended for intermediate CAs.`})]}),t[18]=F):F=t[18];let I;t[19]===x.error?I=t[20]:(I=x.error&&(0,D.jsx)(u,{error:x.error,msg:`Failed to import certificate`}),t[19]=x.error,t[20]=I);let L;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,D.jsx)(f,{children:(0,D.jsx)(`label`,{htmlFor:`cert-body`,children:`Certificate body`})}),t[21]=L):L=t[21];let R;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(R=e=>o(e.target.value),t[22]=R):R=t[22];let z;t[23]===a?z=t[24]:(z=(0,D.jsxs)(d,{children:[L,(0,D.jsx)(b,{className:`font-mono text-xs`,id:`cert-body`,onChange:R,placeholder:`-----BEGIN CERTIFICATE-----`,rows:5,value:a})]}),t[23]=a,t[24]=z);let B;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,D.jsx)(f,{children:(0,D.jsx)(`label`,{htmlFor:`cert-key`,children:`Private key`})}),t[25]=B):B=t[25];let V;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(V=e=>c(e.target.value),t[26]=V):V=t[26];let H;t[27]===s?H=t[28]:(H=(0,D.jsxs)(d,{children:[B,(0,D.jsx)(b,{className:`font-mono text-xs`,id:`cert-key`,onChange:V,placeholder:`-----BEGIN PRIVATE KEY-----`,rows:5,value:s})]}),t[27]=s,t[28]=H);let U;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,D.jsx)(f,{children:(0,D.jsx)(`label`,{htmlFor:`cert-chain`,children:`Certificate chain (optional)`})}),t[29]=U):U=t[29];let W;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(W=e=>p(e.target.value),t[30]=W):W=t[30];let G;t[31]===l?G=t[32]:(G=(0,D.jsxs)(d,{children:[U,(0,D.jsx)(b,{className:`font-mono text-xs`,id:`cert-chain`,onChange:W,placeholder:`-----BEGIN CERTIFICATE-----`,rows:4,value:l})]}),t[31]=l,t[32]=G);let K;t[33]!==z||t[34]!==H||t[35]!==G?(K=(0,D.jsxs)(`div`,{className:`min-w-0 space-y-4`,children:[z,H,G]}),t[33]=z,t[34]=H,t[35]=G,t[36]=K):K=t[36];let q;t[37]===x.isPending?q=t[38]:(q=(0,D.jsx)(_,{disabled:x.isPending,children:`Cancel`}),t[37]=x.isPending,t[38]=q);let J=!j||x.isPending,Y=x.isPending?`Importing…`:`Import`,X;t[39]!==N||t[40]!==J||t[41]!==Y?(X=(0,D.jsx)(h,{disabled:J,onClick:N,children:Y}),t[39]=N,t[40]=J,t[41]=Y,t[42]=X):X=t[42];let Z;t[43]!==q||t[44]!==X?(Z=(0,D.jsxs)(g,{children:[q,X]}),t[43]=q,t[44]=X,t[45]=Z):Z=t[45];let Q;t[46]!==K||t[47]!==Z||t[48]!==I?(Q=(0,D.jsxs)(ee,{className:`grid-cols-[minmax(0,1fr)]`,style:P,children:[F,I,K,Z]}),t[46]=K,t[47]=Z,t[48]=I,t[49]=Q):Q=t[49];let $;return t[50]!==k||t[51]!==n||t[52]!==Q?($=(0,D.jsx)(y,{onOpenChange:k,open:n,children:Q}),t[50]=k,t[51]=n,t[52]=Q,t[53]=$):$=t[53],$}export{O as t}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./QueryClientProvider.js";import{t as a}from"./useMutation.js";import{Li as o,n as s}from"./awsClient.js";import{B as c,F as l,I as u,L as d,Mn as f,Nn as p,Pn as m,R as h,Sn as ee,U as te,V as g,dn as _,hn as v,z as y}from"./index.js";import{t as b}from"./textarea.js";var x=class extends m(f,p,`ImportCertificate`,o){},S=t(n(),1),C=r(),w=new TextEncoder;function T(){let e=(0,C.c)(2),t=i(),n;return e[0]===t?n=e[1]:(n={mutationFn:E,onSuccess:()=>{t.invalidateQueries({queryKey:[`acm`,`certificates`]})}},e[0]=t,e[1]=n),a(n)}async function E(e){let t=new x({Certificate:w.encode(e.certificate),PrivateKey:w.encode(e.privateKey),CertificateChain:e.certificateChain&&e.certificateChain.length>0?w.encode(e.certificateChain):void 0});return await s().send(t)}var D=e();function O(e){let t=(0,C.c)(54),{open:n,onOpenChange:r,onImported:i}=e,[a,o]=(0,S.useState)(``),[s,f]=(0,S.useState)(``),[p,m]=(0,S.useState)(``),x=T(),w;t[0]===x?w=t[1]:(w=()=>{o(``),f(``),m(``),x.reset()},t[0]=x,t[1]=w);let E=w,O;t[2]!==r||t[3]!==E?(O=e=>{e||E(),r(e)},t[2]=r,t[3]=E,t[4]=O):O=t[4];let k=O,A;t[5]!==a||t[6]!==s?(A=a.trim().length>0&&s.trim().length>0,t[5]=a,t[6]=s,t[7]=A):A=t[7];let j=A,M;t[8]!==j||t[9]!==a||t[10]!==p||t[11]!==x||t[12]!==i||t[13]!==r||t[14]!==s||t[15]!==E?(M=async()=>{if(j)try{let e=await x.mutateAsync({certificate:a,privateKey:s,certificateChain:p});e.CertificateArn&&i(e.CertificateArn),E(),r(!1)}catch{}},t[8]=j,t[9]=a,t[10]=p,t[11]=x,t[12]=i,t[13]=r,t[14]=s,t[15]=E,t[16]=M):M=t[16];let N=M,P;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(P={maxWidth:`36rem`,width:`calc(100vw - 2rem)`},t[17]=P):P=t[17];let F;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,D.jsxs)(g,{children:[(0,D.jsx)(te,{children:`Import certificate`}),(0,D.jsx)(y,{children:`Paste a PEM-encoded certificate and its private key. The optional chain is appended for intermediate CAs.`})]}),t[18]=F):F=t[18];let I;t[19]===x.error?I=t[20]:(I=x.error&&(0,D.jsx)(ee,{error:x.error,msg:`Failed to import certificate`}),t[19]=x.error,t[20]=I);let L;t[21]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,D.jsx)(v,{children:(0,D.jsx)(`label`,{htmlFor:`cert-body`,children:`Certificate body`})}),t[21]=L):L=t[21];let R;t[22]===Symbol.for(`react.memo_cache_sentinel`)?(R=e=>o(e.target.value),t[22]=R):R=t[22];let z;t[23]===a?z=t[24]:(z=(0,D.jsxs)(_,{children:[L,(0,D.jsx)(b,{className:`font-mono text-xs`,id:`cert-body`,onChange:R,placeholder:`-----BEGIN CERTIFICATE-----`,rows:5,value:a})]}),t[23]=a,t[24]=z);let B;t[25]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,D.jsx)(v,{children:(0,D.jsx)(`label`,{htmlFor:`cert-key`,children:`Private key`})}),t[25]=B):B=t[25];let V;t[26]===Symbol.for(`react.memo_cache_sentinel`)?(V=e=>f(e.target.value),t[26]=V):V=t[26];let H;t[27]===s?H=t[28]:(H=(0,D.jsxs)(_,{children:[B,(0,D.jsx)(b,{className:`font-mono text-xs`,id:`cert-key`,onChange:V,placeholder:`-----BEGIN PRIVATE KEY-----`,rows:5,value:s})]}),t[27]=s,t[28]=H);let U;t[29]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,D.jsx)(v,{children:(0,D.jsx)(`label`,{htmlFor:`cert-chain`,children:`Certificate chain (optional)`})}),t[29]=U):U=t[29];let W;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(W=e=>m(e.target.value),t[30]=W):W=t[30];let G;t[31]===p?G=t[32]:(G=(0,D.jsxs)(_,{children:[U,(0,D.jsx)(b,{className:`font-mono text-xs`,id:`cert-chain`,onChange:W,placeholder:`-----BEGIN CERTIFICATE-----`,rows:4,value:p})]}),t[31]=p,t[32]=G);let K;t[33]!==z||t[34]!==H||t[35]!==G?(K=(0,D.jsxs)(`div`,{className:`min-w-0 space-y-4`,children:[z,H,G]}),t[33]=z,t[34]=H,t[35]=G,t[36]=K):K=t[36];let q;t[37]===x.isPending?q=t[38]:(q=(0,D.jsx)(d,{disabled:x.isPending,children:`Cancel`}),t[37]=x.isPending,t[38]=q);let J=!j||x.isPending,Y=x.isPending?`Importing…`:`Import`,X;t[39]!==N||t[40]!==J||t[41]!==Y?(X=(0,D.jsx)(u,{disabled:J,onClick:N,children:Y}),t[39]=N,t[40]=J,t[41]=Y,t[42]=X):X=t[42];let Z;t[43]!==q||t[44]!==X?(Z=(0,D.jsxs)(c,{children:[q,X]}),t[43]=q,t[44]=X,t[45]=Z):Z=t[45];let Q;t[46]!==K||t[47]!==Z||t[48]!==I?(Q=(0,D.jsxs)(h,{className:`grid-cols-[minmax(0,1fr)]`,style:P,children:[F,I,K,Z]}),t[46]=K,t[47]=Z,t[48]=I,t[49]=Q):Q=t[49];let $;return t[50]!==k||t[51]!==n||t[52]!==Q?($=(0,D.jsx)(l,{onOpenChange:k,open:n,children:Q}),t[50]=k,t[51]=n,t[52]=Q,t[53]=$):$=t[53],$}export{O as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-bucket.js b/spinifex/services/spinifexui/frontend/dist/assets/create-bucket.js index 99981bca3..d4fb072bb 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-bucket.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-bucket.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{f as r,u as i}from"./auth.js";import{t as a}from"./s3.js";import{Ln as o,Sn as s,_n as c,an as l,dn as u,hn as d,mn as f,rn as p,sn as m,vn as h,xn as g}from"./index.js";import{t as _}from"./form-actions.js";var v=t(),y=i({bucketName:r().min(3,`Bucket name must be at least 3 characters`).max(63,`Bucket name must be at most 63 characters`).regex(/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/,`Must start and end with a lowercase letter or number`).regex(/^[a-z0-9.-]+$/,`Only lowercase letters, numbers, hyphens, and periods allowed`).refine(e=>!e.includes(`..`),`Must not contain consecutive periods`).refine(e=>!(e.includes(`.-`)||e.includes(`-.`)),`Must not contain adjacent period and hyphen`)}),b=e();function x(){let e=(0,v.c)(44),t=n(),r=a(),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={resolver:h(y)},e[0]=i):i=e[0];let{handleSubmit:x,register:C,control:w,formState:T}=g(i),{errors:E,isSubmitting:D}=T,O;e[1]===w?O=e[2]:(O={control:w},e[1]=w,e[2]=O);let k=s(O),A;e[3]===k?A=e[4]:(A=e=>e?k[e]:void 0,e[3]=k,e[4]=A);let j=A,M;e[5]!==r||e[6]!==t?(M=async e=>{await r.mutateAsync(e),t({to:`/s3/ls`})},e[5]=r,e[6]=t,e[7]=M):M=e[7];let N=M,P,F;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,b.jsx)(c,{to:`/s3/ls`,children:`Back to buckets`}),F=(0,b.jsx)(u,{title:`Create Bucket`}),e[8]=P,e[9]=F):(P=e[8],F=e[9]);let I;e[10]===r.error?I=e[11]:(I=r.error&&(0,b.jsx)(f,{error:r.error,msg:`Failed to create bucket`}),e[10]=r.error,e[11]=I);let L;e[12]!==x||e[13]!==N?(L=x(N),e[12]=x,e[13]=N,e[14]=L):L=e[14];let R;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,b.jsx)(m,{children:(0,b.jsx)(`label`,{htmlFor:`bucketName`,children:`Bucket Name`})}),e[15]=R):R=e[15];let z=!!E.bucketName,B;e[16]===C?B=e[17]:(B=C(`bucketName`),e[16]=C,e[17]=B);let V;e[18]!==z||e[19]!==B?(V=(0,b.jsx)(o,{"aria-invalid":z,id:`bucketName`,placeholder:`my-bucket`,type:`text`,...B}),e[18]=z,e[19]=B,e[20]=V):V=e[20];let H;e[21]===E.bucketName?H=e[22]:(H=(0,b.jsx)(l,{errors:[E.bucketName]}),e[21]=E.bucketName,e[22]=H);let U;e[23]!==V||e[24]!==H?(U=(0,b.jsxs)(p,{children:[R,V,H]}),e[23]=V,e[24]=H,e[25]=U):U=e[25];let W;e[26]===j?W=e[27]:(W=S(j),e[26]=j,e[27]=W);let G;e[28]===W?G=e[29]:(G=(0,b.jsx)(d,{commands:W}),e[28]=W,e[29]=G);let K;e[30]===t?K=e[31]:(K=async()=>await t({to:`/s3/ls`}),e[30]=t,e[31]=K);let q;e[32]!==r.isPending||e[33]!==D||e[34]!==K?(q=(0,b.jsx)(_,{isPending:r.isPending,isSubmitting:D,onCancel:K,pendingLabel:`Creating…`,submitLabel:`Create Bucket`}),e[32]=r.isPending,e[33]=D,e[34]=K,e[35]=q):q=e[35];let J;e[36]!==U||e[37]!==G||e[38]!==q||e[39]!==L?(J=(0,b.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:L,children:[U,G,q]}),e[36]=U,e[37]=G,e[38]=q,e[39]=L,e[40]=J):J=e[40];let Y;return e[41]!==J||e[42]!==I?(Y=(0,b.jsxs)(b.Fragment,{children:[P,F,I,J]}),e[41]=J,e[42]=I,e[43]=Y):Y=e[43],Y}function S(e){let t=e(`bucketName`);return[{label:`Create Bucket`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws s3api create-bucket`},{type:`flag`,value:` --bucket`},{type:`value`,value:` ${(typeof t==`string`?t:``)||``}`}]}]}export{x as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{f as r,u as i}from"./auth.js";import{t as a}from"./s3.js";import{An as o,Cn as s,En as c,Rn as l,Sn as u,Tn as d,W as f,dn as p,hn as m,kn as h,pn as g,yn as _}from"./index.js";var v=t(),y=i({bucketName:r().min(3,`Bucket name must be at least 3 characters`).max(63,`Bucket name must be at most 63 characters`).regex(/^[a-z0-9][a-z0-9.-]*[a-z0-9]$/,`Must start and end with a lowercase letter or number`).regex(/^[a-z0-9.-]+$/,`Only lowercase letters, numbers, hyphens, and periods allowed`).refine(e=>!e.includes(`..`),`Must not contain consecutive periods`).refine(e=>!(e.includes(`.-`)||e.includes(`-.`)),`Must not contain adjacent period and hyphen`)}),b=e();function x(){let e=(0,v.c)(44),t=n(),r=a(),i;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i={resolver:c(y)},e[0]=i):i=e[0];let{handleSubmit:x,register:C,control:w,formState:T}=h(i),{errors:E,isSubmitting:D}=T,O;e[1]===w?O=e[2]:(O={control:w},e[1]=w,e[2]=O);let k=o(O),A;e[3]===k?A=e[4]:(A=e=>e?k[e]:void 0,e[3]=k,e[4]=A);let j=A,M;e[5]!==r||e[6]!==t?(M=async e=>{await r.mutateAsync(e),t({to:`/s3/ls`})},e[5]=r,e[6]=t,e[7]=M):M=e[7];let N=M,P,F;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,b.jsx)(d,{to:`/s3/ls`,children:`Back to buckets`}),F=(0,b.jsx)(_,{title:`Create Bucket`}),e[8]=P,e[9]=F):(P=e[8],F=e[9]);let I;e[10]===r.error?I=e[11]:(I=r.error&&(0,b.jsx)(u,{error:r.error,msg:`Failed to create bucket`}),e[10]=r.error,e[11]=I);let L;e[12]!==x||e[13]!==N?(L=x(N),e[12]=x,e[13]=N,e[14]=L):L=e[14];let R;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,b.jsx)(m,{children:(0,b.jsx)(`label`,{htmlFor:`bucketName`,children:`Bucket Name`})}),e[15]=R):R=e[15];let z=!!E.bucketName,B;e[16]===C?B=e[17]:(B=C(`bucketName`),e[16]=C,e[17]=B);let V;e[18]!==z||e[19]!==B?(V=(0,b.jsx)(l,{"aria-invalid":z,id:`bucketName`,placeholder:`my-bucket`,type:`text`,...B}),e[18]=z,e[19]=B,e[20]=V):V=e[20];let H;e[21]===E.bucketName?H=e[22]:(H=(0,b.jsx)(g,{errors:[E.bucketName]}),e[21]=E.bucketName,e[22]=H);let U;e[23]!==V||e[24]!==H?(U=(0,b.jsxs)(p,{children:[R,V,H]}),e[23]=V,e[24]=H,e[25]=U):U=e[25];let W;e[26]===j?W=e[27]:(W=S(j),e[26]=j,e[27]=W);let G;e[28]===W?G=e[29]:(G=(0,b.jsx)(s,{commands:W}),e[28]=W,e[29]=G);let K;e[30]===t?K=e[31]:(K=async()=>await t({to:`/s3/ls`}),e[30]=t,e[31]=K);let q;e[32]!==r.isPending||e[33]!==D||e[34]!==K?(q=(0,b.jsx)(f,{isPending:r.isPending,isSubmitting:D,onCancel:K,pendingLabel:`Creating…`,submitLabel:`Create Bucket`}),e[32]=r.isPending,e[33]=D,e[34]=K,e[35]=q):q=e[35];let J;e[36]!==U||e[37]!==G||e[38]!==q||e[39]!==L?(J=(0,b.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:L,children:[U,G,q]}),e[36]=U,e[37]=G,e[38]=q,e[39]=L,e[40]=J):J=e[40];let Y;return e[41]!==J||e[42]!==I?(Y=(0,b.jsxs)(b.Fragment,{children:[P,F,I,J]}),e[41]=J,e[42]=I,e[43]=Y):Y=e[43],Y}function S(e){let t=e(`bucketName`);return[{label:`Create Bucket`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws s3api create-bucket`},{type:`flag`,value:` --bucket`},{type:`value`,value:` ${(typeof t==`string`?t:``)||``}`}]}]}export{x as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-cluster.js b/spinifex/services/spinifexui/frontend/dist/assets/create-cluster.js index 3fa1ab6d4..9433ade7e 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-cluster.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-cluster.js @@ -1 +1 @@ -import{n as e,o as t,r as n}from"./compiler-runtime.js";import{n as r}from"./QueryClientProvider.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{c as o,i as s,n as c,s as l,t as u}from"./select.js";import{t as d}from"./button.js";import{M as f,O as p,o as m}from"./ec2.js";import{a as h,d as ee,g as te,o as g,t as _}from"./eks.js";import{i as v,u as y}from"./iam.js";import{y as b}from"./iam2.js";import{Ln as x,Sn as S,Xn as C,_n as w,an as T,dn as E,mn as D,rn as O,sn as k,vn as ne,xn as re,yn as A}from"./index.js";import{t as j}from"./form-actions.js";import{a as M,i as N,l as P,n as F,o as I,r as L,s as R,t as z}from"./alert-dialog.js";import{n as ie}from"./system-managed.js";import{t as ae}from"./system-image-required.js";import{t as B}from"./policy-document-viewer.js";var V=t(n(),1),H=e();function U(e){return`${e.trim()||`cluster`}-eks-cluster-role`}function W({clusterName:e,open:t,onOpenChange:n,onCreated:r}){let i=y(),a=v(),[o,s]=(0,V.useState)(U(e)),[c,l]=(0,V.useState)(null),[u,d]=(0,V.useState)(t);t!==u&&(d(t),t&&(s(U(e)),l(null)));let f=i.isPending||a.isPending;function p(e){e||l(null),n(e)}async function m(){l(null);let e=o.trim();try{let t=await i.mutateAsync({roleName:e,assumeRolePolicyDocument:h});await a.mutateAsync({roleName:e,policyArn:_});let o=t.Role?.Arn;if(!o){l(`Role was created but no ARN was returned.`);return}r(o),n(!1)}catch(e){l(e instanceof Error?e.message:`Failed to create role.`)}}return(0,H.jsx)(z,{onOpenChange:p,open:t,children:(0,H.jsxs)(N,{className:`max-w-lg sm:max-w-lg`,children:[(0,H.jsxs)(R,{children:[(0,H.jsx)(P,{children:`Create cluster IAM role`}),(0,H.jsx)(M,{children:`Creates an IAM role trusted by the EKS control plane and attaches the AmazonEKSClusterPolicy managed policy.`})]}),(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:(0,H.jsx)(`label`,{htmlFor:`eks-role-name`,children:`Role name`})}),(0,H.jsx)(x,{id:`eks-role-name`,onChange:e=>s(e.target.value),placeholder:`my-cluster-eks-cluster-role`,value:o})]}),(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:`Trust policy (JSON)`}),(0,H.jsx)(B,{document:h})]}),(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:`Attached managed policy`}),(0,H.jsx)(`code`,{className:`block rounded-md border bg-muted p-2 font-mono text-sm break-all`,children:_}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Grants the EKS control plane the permissions it needs to manage the cluster.`})]}),c&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:c}),(0,H.jsxs)(I,{children:[(0,H.jsx)(L,{children:`Cancel`}),(0,H.jsx)(F,{disabled:f||!o.trim(),onClick:m,children:f?`Creating…`:`Create role`})]})]})})}function G(e){let t=a(e.Tags);return t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`}function K(e){let t=a(e.Tags);return`${t?`${e.SubnetId} (${t})`:e.SubnetId} · ${e.CidrBlock}`}function q(){let e=i(),t=r(),[n,a]=(0,V.useState)(!1),[h,_]=(0,V.useState)(!1),{data:v}=C(f),{data:y}=C(p),{data:M}=C(b),{data:N}=C(m),P=te(),F=(N.Images??[]).some(ie),I=async()=>{a(!0);try{await t.invalidateQueries({queryKey:m.queryKey})}finally{a(!1)}},L=v.Vpcs??[],R=y.Subnets??[],z=M.Roles??[],{control:B,formState:{errors:U,isSubmitting:q},handleSubmit:J,register:oe,setValue:Y}=re({resolver:ne(ee),defaultValues:{name:``,version:g[0],roleArn:``,vpcId:``,subnetIds:[],bootstrapClusterCreatorAdminPermissions:!0,endpointPublicAccess:!0,endpointPrivateAccess:!1,publicAccessCidrs:[`0.0.0.0/0`]}}),se=S({control:B,name:`vpcId`}),X=S({control:B,name:`subnetIds`}),ce=S({control:B,name:`endpointPublicAccess`}),Z=S({control:B,name:`publicAccessCidrs`}),Q=R.filter(e=>e.VpcId===se),$=(e=``)=>{Y(`vpcId`,e??``,{shouldValidate:!0}),Y(`subnetIds`,[])},le=e=>{let t=X.includes(e)?X.filter(t=>t!==e):[...X,e];Y(`subnetIds`,t,{shouldValidate:!0})},ue=(e,t)=>{let n=[...Z];n[e]=t,Y(`publicAccessCidrs`,n,{shouldValidate:!0})},de=()=>Y(`publicAccessCidrs`,[...Z,``],{shouldValidate:!0}),fe=e=>Y(`publicAccessCidrs`,Z.filter((t,n)=>n!==e),{shouldValidate:!0}),pe=S({control:B,name:`name`}),me=async e=>{await t.invalidateQueries({queryKey:b.queryKey}),Y(`roleArn`,e,{shouldValidate:!0})};return F?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(w,{to:`/eks/list-clusters`,children:`Clusters`}),(0,H.jsx)(E,{subtitle:`EKS`,title:`Create Cluster`}),P.error&&(0,H.jsx)(D,{error:P.error,msg:`Failed to create cluster`}),(0,H.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:J(async t=>{await P.mutateAsync(t),await e({to:`/eks/list-clusters/$clusterName`,params:{clusterName:t.name}})}),children:[(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:(0,H.jsx)(`label`,{htmlFor:`cluster-name`,children:`Name`})}),(0,H.jsx)(x,{"aria-invalid":!!U.name,id:`cluster-name`,placeholder:`my-cluster`,...oe(`name`)}),(0,H.jsx)(T,{errors:[U.name]})]}),(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:(0,H.jsx)(`label`,{htmlFor:`cluster-version`,children:`Kubernetes version`})}),(0,H.jsx)(A,{control:B,name:`version`,render:({field:e})=>(0,H.jsxs)(u,{onValueChange:e.onChange,value:e.value,children:[(0,H.jsx)(l,{className:`w-full`,id:`cluster-version`,children:(0,H.jsx)(o,{placeholder:`Select version`})}),(0,H.jsx)(c,{children:g.map(e=>(0,H.jsx)(s,{value:e,children:e},e))})]})}),(0,H.jsx)(T,{errors:[U.version]})]}),(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:(0,H.jsx)(`label`,{htmlFor:`cluster-role`,children:`Cluster IAM role`})}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(A,{control:B,name:`roleArn`,render:({field:e})=>(0,H.jsxs)(u,{onValueChange:e.onChange,value:e.value,children:[(0,H.jsx)(l,{"aria-invalid":!!U.roleArn,className:`w-full`,id:`cluster-role`,children:(0,H.jsx)(o,{placeholder:`Select role`})}),(0,H.jsx)(c,{children:z.map(e=>(0,H.jsx)(s,{value:e.Arn??``,children:e.RoleName},e.Arn))})]})}),(0,H.jsx)(d,{onClick:()=>_(!0),type:`button`,variant:`outline`,children:`Create role`})]}),(0,H.jsx)(T,{errors:[U.roleArn]})]}),(0,H.jsx)(W,{clusterName:pe,onCreated:me,onOpenChange:_,open:h}),(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:(0,H.jsx)(`label`,{htmlFor:`cluster-vpc`,children:`VPC`})}),(0,H.jsx)(A,{control:B,name:`vpcId`,render:({field:e})=>(0,H.jsxs)(u,{onValueChange:e=>$(e),value:e.value,children:[(0,H.jsx)(l,{"aria-invalid":!!U.vpcId,className:`w-full`,id:`cluster-vpc`,children:(0,H.jsx)(o,{placeholder:`Select VPC`})}),(0,H.jsx)(c,{children:L.map(e=>(0,H.jsx)(s,{value:e.VpcId??``,children:G(e)},e.VpcId))})]})}),(0,H.jsx)(T,{errors:[U.vpcId]})]}),(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:`Subnets (select at least 1)`}),Q.length===0?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No subnets in the selected VPC.`}):(0,H.jsx)(`div`,{className:`space-y-1`,children:Q.map(e=>(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,H.jsx)(`input`,{"aria-label":`Subnet ${K(e)}`,checked:X.includes(e.SubnetId??``),onChange:()=>le(e.SubnetId??``),type:`checkbox`}),(0,H.jsx)(`span`,{className:`font-mono`,children:K(e)})]},e.SubnetId))}),(0,H.jsx)(T,{errors:[U.subnetIds]})]}),(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:`Endpoint access`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Public access exposes the API server on an internet-facing endpoint; private access keeps it reachable only from within the VPC. At least one must be enabled.`}),(0,H.jsx)(A,{control:B,name:`endpointPublicAccess`,render:({field:e})=>(0,H.jsxs)(`label`,{className:`mt-2 flex items-center gap-2 text-xs`,children:[(0,H.jsx)(`input`,{"aria-label":`Enable public access`,checked:e.value,onChange:t=>e.onChange(t.target.checked),type:`checkbox`}),`Public`]})}),(0,H.jsx)(A,{control:B,name:`endpointPrivateAccess`,render:({field:e})=>(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,H.jsx)(`input`,{"aria-label":`Enable private access`,checked:e.value,onChange:t=>e.onChange(t.target.checked),type:`checkbox`}),`Private`]})}),(0,H.jsx)(T,{errors:[U.endpointPublicAccess]}),ce&&(0,H.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Public access source ranges (CIDR). Defaults to`,` `,(0,H.jsx)(`span`,{className:`font-mono`,children:`0.0.0.0/0`}),`.`]}),Z.map((e,t)=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(x,{"aria-label":`Public access CIDR ${t+1}`,className:`font-mono`,onChange:e=>ue(t,e.target.value),placeholder:`203.0.113.0/24`,value:e}),(0,H.jsx)(d,{onClick:()=>fe(t),size:`sm`,type:`button`,variant:`ghost`,children:`Remove`})]},t)),(0,H.jsx)(d,{onClick:de,size:`sm`,type:`button`,variant:`outline`,children:`Add CIDR`}),(0,H.jsx)(T,{errors:[U.publicAccessCidrs]})]})]}),(0,H.jsxs)(O,{children:[(0,H.jsx)(k,{children:`Access`}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Authentication mode is `,(0,H.jsx)(`span`,{className:`font-mono`,children:`API`}),` (IAM access entries). The legacy aws-auth ConfigMap is not supported.`]}),(0,H.jsx)(A,{control:B,name:`bootstrapClusterCreatorAdminPermissions`,render:({field:e})=>(0,H.jsxs)(`label`,{className:`mt-2 flex items-center gap-2 text-xs`,children:[(0,H.jsx)(`input`,{"aria-label":`Grant the cluster creator admin permissions`,checked:e.value,onChange:t=>e.onChange(t.target.checked),type:`checkbox`}),`Grant the cluster creator admin permissions`]})})]}),(0,H.jsx)(j,{isPending:P.isPending,isSubmitting:q,onCancel:async()=>await e({to:`/eks/list-clusters`}),pendingLabel:`Creating…`,submitLabel:`Create Cluster`})]})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(w,{to:`/eks/list-clusters`,children:`Clusters`}),(0,H.jsx)(E,{subtitle:`EKS`,title:`Create Cluster`}),(0,H.jsx)(ae,{description:`EKS clusters boot a Spinifex-managed node image (K3s) that is not shipped with the platform. Import it before creating a cluster.`,importCommand:`spx admin images import --name spinifex-eks-node`,isRechecking:n,onRecheck:I,title:`EKS system image not found`})]})}var J=q;export{J as component}; \ No newline at end of file +import{n as e,o as t,r as n}from"./compiler-runtime.js";import{n as r}from"./QueryClientProvider.js";import{t as i}from"./useNavigate.js";import{$t as a}from"./auth.js";import{c as o,i as s,n as c,s as l,t as u}from"./select.js";import{t as d}from"./button.js";import{M as f,O as p,o as m}from"./ec2.js";import{a as h,d as ee,g as te,o as g,t as _}from"./eks.js";import{i as v,u as y}from"./iam.js";import{y as b}from"./iam2.js";import{$n as x,An as S,B as C,Dn as w,En as T,F as E,I as D,L as O,R as k,Rn as A,Sn as j,Tn as M,U as N,V as P,W as ne,dn as F,hn as I,kn as re,pn as L,yn as R,z}from"./index.js";import{n as ie}from"./system-managed.js";import{t as ae}from"./system-image-required.js";import{t as B}from"./policy-document-viewer.js";var V=t(n(),1),H=e();function U(e){return`${e.trim()||`cluster`}-eks-cluster-role`}function W({clusterName:e,open:t,onOpenChange:n,onCreated:r}){let i=y(),a=v(),[o,s]=(0,V.useState)(U(e)),[c,l]=(0,V.useState)(null),[u,d]=(0,V.useState)(t);t!==u&&(d(t),t&&(s(U(e)),l(null)));let f=i.isPending||a.isPending;function p(e){e||l(null),n(e)}async function m(){l(null);let e=o.trim();try{let t=await i.mutateAsync({roleName:e,assumeRolePolicyDocument:h});await a.mutateAsync({roleName:e,policyArn:_});let o=t.Role?.Arn;if(!o){l(`Role was created but no ARN was returned.`);return}r(o),n(!1)}catch(e){l(e instanceof Error?e.message:`Failed to create role.`)}}return(0,H.jsx)(E,{onOpenChange:p,open:t,children:(0,H.jsxs)(k,{className:`max-w-lg sm:max-w-lg`,children:[(0,H.jsxs)(P,{children:[(0,H.jsx)(N,{children:`Create cluster IAM role`}),(0,H.jsx)(z,{children:`Creates an IAM role trusted by the EKS control plane and attaches the AmazonEKSClusterPolicy managed policy.`})]}),(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:(0,H.jsx)(`label`,{htmlFor:`eks-role-name`,children:`Role name`})}),(0,H.jsx)(A,{id:`eks-role-name`,onChange:e=>s(e.target.value),placeholder:`my-cluster-eks-cluster-role`,value:o})]}),(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:`Trust policy (JSON)`}),(0,H.jsx)(B,{document:h})]}),(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:`Attached managed policy`}),(0,H.jsx)(`code`,{className:`block rounded-md border bg-muted p-2 font-mono text-sm break-all`,children:_}),(0,H.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Grants the EKS control plane the permissions it needs to manage the cluster.`})]}),c&&(0,H.jsx)(`p`,{className:`text-sm text-destructive`,children:c}),(0,H.jsxs)(C,{children:[(0,H.jsx)(O,{children:`Cancel`}),(0,H.jsx)(D,{disabled:f||!o.trim(),onClick:m,children:f?`Creating…`:`Create role`})]})]})})}function G(e){let t=a(e.Tags);return t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`}function K(e){let t=a(e.Tags);return`${t?`${e.SubnetId} (${t})`:e.SubnetId} · ${e.CidrBlock}`}function q(){let e=i(),t=r(),[n,a]=(0,V.useState)(!1),[h,_]=(0,V.useState)(!1),{data:v}=x(f),{data:y}=x(p),{data:C}=x(b),{data:E}=x(m),D=te(),O=(E.Images??[]).some(ie),k=async()=>{a(!0);try{await t.invalidateQueries({queryKey:m.queryKey})}finally{a(!1)}},N=v.Vpcs??[],P=y.Subnets??[],z=C.Roles??[],{control:B,formState:{errors:U,isSubmitting:q},handleSubmit:J,register:oe,setValue:Y}=re({resolver:T(ee),defaultValues:{name:``,version:g[0],roleArn:``,vpcId:``,subnetIds:[],bootstrapClusterCreatorAdminPermissions:!0,endpointPublicAccess:!0,endpointPrivateAccess:!1,publicAccessCidrs:[`0.0.0.0/0`]}}),se=S({control:B,name:`vpcId`}),X=S({control:B,name:`subnetIds`}),ce=S({control:B,name:`endpointPublicAccess`}),Z=S({control:B,name:`publicAccessCidrs`}),Q=P.filter(e=>e.VpcId===se),$=(e=``)=>{Y(`vpcId`,e??``,{shouldValidate:!0}),Y(`subnetIds`,[])},le=e=>{let t=X.includes(e)?X.filter(t=>t!==e):[...X,e];Y(`subnetIds`,t,{shouldValidate:!0})},ue=(e,t)=>{let n=[...Z];n[e]=t,Y(`publicAccessCidrs`,n,{shouldValidate:!0})},de=()=>Y(`publicAccessCidrs`,[...Z,``],{shouldValidate:!0}),fe=e=>Y(`publicAccessCidrs`,Z.filter((t,n)=>n!==e),{shouldValidate:!0}),pe=S({control:B,name:`name`}),me=async e=>{await t.invalidateQueries({queryKey:b.queryKey}),Y(`roleArn`,e,{shouldValidate:!0})};return O?(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(M,{to:`/eks/list-clusters`,children:`Clusters`}),(0,H.jsx)(R,{subtitle:`EKS`,title:`Create Cluster`}),D.error&&(0,H.jsx)(j,{error:D.error,msg:`Failed to create cluster`}),(0,H.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:J(async t=>{await D.mutateAsync(t),await e({to:`/eks/list-clusters/$clusterName`,params:{clusterName:t.name}})}),children:[(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:(0,H.jsx)(`label`,{htmlFor:`cluster-name`,children:`Name`})}),(0,H.jsx)(A,{"aria-invalid":!!U.name,id:`cluster-name`,placeholder:`my-cluster`,...oe(`name`)}),(0,H.jsx)(L,{errors:[U.name]})]}),(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:(0,H.jsx)(`label`,{htmlFor:`cluster-version`,children:`Kubernetes version`})}),(0,H.jsx)(w,{control:B,name:`version`,render:({field:e})=>(0,H.jsxs)(u,{onValueChange:e.onChange,value:e.value,children:[(0,H.jsx)(l,{className:`w-full`,id:`cluster-version`,children:(0,H.jsx)(o,{placeholder:`Select version`})}),(0,H.jsx)(c,{children:g.map(e=>(0,H.jsx)(s,{value:e,children:e},e))})]})}),(0,H.jsx)(L,{errors:[U.version]})]}),(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:(0,H.jsx)(`label`,{htmlFor:`cluster-role`,children:`Cluster IAM role`})}),(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(w,{control:B,name:`roleArn`,render:({field:e})=>(0,H.jsxs)(u,{onValueChange:e.onChange,value:e.value,children:[(0,H.jsx)(l,{"aria-invalid":!!U.roleArn,className:`w-full`,id:`cluster-role`,children:(0,H.jsx)(o,{placeholder:`Select role`})}),(0,H.jsx)(c,{children:z.map(e=>(0,H.jsx)(s,{value:e.Arn??``,children:e.RoleName},e.Arn))})]})}),(0,H.jsx)(d,{onClick:()=>_(!0),type:`button`,variant:`outline`,children:`Create role`})]}),(0,H.jsx)(L,{errors:[U.roleArn]})]}),(0,H.jsx)(W,{clusterName:pe,onCreated:me,onOpenChange:_,open:h}),(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:(0,H.jsx)(`label`,{htmlFor:`cluster-vpc`,children:`VPC`})}),(0,H.jsx)(w,{control:B,name:`vpcId`,render:({field:e})=>(0,H.jsxs)(u,{onValueChange:e=>$(e),value:e.value,children:[(0,H.jsx)(l,{"aria-invalid":!!U.vpcId,className:`w-full`,id:`cluster-vpc`,children:(0,H.jsx)(o,{placeholder:`Select VPC`})}),(0,H.jsx)(c,{children:N.map(e=>(0,H.jsx)(s,{value:e.VpcId??``,children:G(e)},e.VpcId))})]})}),(0,H.jsx)(L,{errors:[U.vpcId]})]}),(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:`Subnets (select at least 1)`}),Q.length===0?(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No subnets in the selected VPC.`}):(0,H.jsx)(`div`,{className:`space-y-1`,children:Q.map(e=>(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,H.jsx)(`input`,{"aria-label":`Subnet ${K(e)}`,checked:X.includes(e.SubnetId??``),onChange:()=>le(e.SubnetId??``),type:`checkbox`}),(0,H.jsx)(`span`,{className:`font-mono`,children:K(e)})]},e.SubnetId))}),(0,H.jsx)(L,{errors:[U.subnetIds]})]}),(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:`Endpoint access`}),(0,H.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Public access exposes the API server on an internet-facing endpoint; private access keeps it reachable only from within the VPC. At least one must be enabled.`}),(0,H.jsx)(w,{control:B,name:`endpointPublicAccess`,render:({field:e})=>(0,H.jsxs)(`label`,{className:`mt-2 flex items-center gap-2 text-xs`,children:[(0,H.jsx)(`input`,{"aria-label":`Enable public access`,checked:e.value,onChange:t=>e.onChange(t.target.checked),type:`checkbox`}),`Public`]})}),(0,H.jsx)(w,{control:B,name:`endpointPrivateAccess`,render:({field:e})=>(0,H.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,H.jsx)(`input`,{"aria-label":`Enable private access`,checked:e.value,onChange:t=>e.onChange(t.target.checked),type:`checkbox`}),`Private`]})}),(0,H.jsx)(L,{errors:[U.endpointPublicAccess]}),ce&&(0,H.jsxs)(`div`,{className:`mt-2 space-y-2`,children:[(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Public access source ranges (CIDR). Defaults to`,` `,(0,H.jsx)(`span`,{className:`font-mono`,children:`0.0.0.0/0`}),`.`]}),Z.map((e,t)=>(0,H.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,H.jsx)(A,{"aria-label":`Public access CIDR ${t+1}`,className:`font-mono`,onChange:e=>ue(t,e.target.value),placeholder:`203.0.113.0/24`,value:e}),(0,H.jsx)(d,{onClick:()=>fe(t),size:`sm`,type:`button`,variant:`ghost`,children:`Remove`})]},t)),(0,H.jsx)(d,{onClick:de,size:`sm`,type:`button`,variant:`outline`,children:`Add CIDR`}),(0,H.jsx)(L,{errors:[U.publicAccessCidrs]})]})]}),(0,H.jsxs)(F,{children:[(0,H.jsx)(I,{children:`Access`}),(0,H.jsxs)(`p`,{className:`text-xs text-muted-foreground`,children:[`Authentication mode is `,(0,H.jsx)(`span`,{className:`font-mono`,children:`API`}),` (IAM access entries). The legacy aws-auth ConfigMap is not supported.`]}),(0,H.jsx)(w,{control:B,name:`bootstrapClusterCreatorAdminPermissions`,render:({field:e})=>(0,H.jsxs)(`label`,{className:`mt-2 flex items-center gap-2 text-xs`,children:[(0,H.jsx)(`input`,{"aria-label":`Grant the cluster creator admin permissions`,checked:e.value,onChange:t=>e.onChange(t.target.checked),type:`checkbox`}),`Grant the cluster creator admin permissions`]})})]}),(0,H.jsx)(ne,{isPending:D.isPending,isSubmitting:q,onCancel:async()=>await e({to:`/eks/list-clusters`}),pendingLabel:`Creating…`,submitLabel:`Create Cluster`})]})]}):(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(M,{to:`/eks/list-clusters`,children:`Clusters`}),(0,H.jsx)(R,{subtitle:`EKS`,title:`Create Cluster`}),(0,H.jsx)(ae,{description:`EKS clusters boot a Spinifex-managed node image (K3s) that is not shipped with the platform. Import it before creating a cluster.`,importCommand:`spx admin images import --name spinifex-eks-node`,isRechecking:n,onRecheck:k,title:`EKS system image not found`})]})}var J=q;export{J as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-group.js b/spinifex/services/spinifexui/frontend/dist/assets/create-group.js index fe8f52cbe..8985d9acc 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-group.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-group.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{s as r}from"./iam.js";import{Ln as i,Sn as a,_n as o,an as s,dn as ee,hn as c,mn as l,rn as u,sn as d,vn as f,xn as p}from"./index.js";import{t as m}from"./form-actions.js";import{n as h}from"./iam3.js";var g=t(),_=e();function v(){let e=(0,g.c)(55),t=n(),v=r(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:f(h)},e[0]=b):b=e[0];let{handleSubmit:x,register:S,control:C,formState:w}=p(b),{errors:T,isSubmitting:E}=w,D;e[1]===C?D=e[2]:(D={control:C},e[1]=C,e[2]=D);let O=a(D),k;e[3]===O?k=e[4]:(k=e=>e?O[e]:void 0,e[3]=O,e[4]=k);let A=k,j;e[5]!==v||e[6]!==t?(j=async e=>{await v.mutateAsync(e),t({to:`/iam/list-groups`})},e[5]=v,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,_.jsx)(o,{to:`/iam/list-groups`,children:`Back to groups`}),P=(0,_.jsx)(ee,{title:`Create Group`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===v.error?F=e[11]:(F=v.error&&(0,_.jsx)(l,{error:v.error,msg:`Failed to create group`}),e[10]=v.error,e[11]=F);let I;e[12]!==x||e[13]!==M?(I=x(M),e[12]=x,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,_.jsx)(d,{children:(0,_.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[15]=L):L=e[15];let R=!!T.groupName,z;e[16]===S?z=e[17]:(z=S(`groupName`),e[16]=S,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,_.jsx)(i,{"aria-invalid":R,id:`groupName`,placeholder:`my-group...`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===T.groupName?V=e[22]:(V=(0,_.jsx)(s,{errors:[T.groupName]}),e[21]=T.groupName,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,_.jsxs)(u,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(d,{children:(0,_.jsx)(`label`,{htmlFor:`path`,children:`Path (optional)`})}),e[26]=U):U=e[26];let W;e[27]===S?W=e[28]:(W=S(`path`),e[27]=S,e[28]=W);let G;e[29]===W?G=e[30]:(G=(0,_.jsx)(i,{id:`path`,placeholder:`/`,...W}),e[29]=W,e[30]=G);let K;e[31]===T.path?K=e[32]:(K=(0,_.jsx)(s,{errors:[T.path]}),e[31]=T.path,e[32]=K);let q;e[33]!==G||e[34]!==K?(q=(0,_.jsxs)(u,{children:[U,G,K]}),e[33]=G,e[34]=K,e[35]=q):q=e[35];let J;e[36]===A?J=e[37]:(J=y(A),e[36]=A,e[37]=J);let Y;e[38]===J?Y=e[39]:(Y=(0,_.jsx)(c,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/iam/list-groups`}),e[40]=t,e[41]=X);let Z;e[42]!==v.isPending||e[43]!==E||e[44]!==X?(Z=(0,_.jsx)(m,{isPending:v.isPending,isSubmitting:E,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create Group`}),e[42]=v.isPending,e[43]=E,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==H||e[47]!==q||e[48]!==Y||e[49]!==Z||e[50]!==I?(Q=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[46]=H,e[47]=q,e[48]=Y,e[49]=Z,e[50]=I,e[51]=Q):Q=e[51];let $;return e[52]!==Q||e[53]!==F?($=(0,_.jsxs)(_.Fragment,{children:[N,P,F,Q]}),e[52]=Q,e[53]=F,e[54]=$):$=e[54],$}function y(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`path`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-group`},{type:`flag`,value:` --group-name`},{type:`value`,value:` ${n||``}`}];return i&&i!==`/`&&a.push({type:`flag`,value:` --path`},{type:`value`,value:` ${i}`}),[{label:`Create Group`,parts:a}]}export{v as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{s as r}from"./iam.js";import{An as i,Cn as a,En as o,Rn as s,Sn as c,Tn as l,W as u,dn as d,hn as f,kn as p,pn as m,yn as h}from"./index.js";import{n as g}from"./iam3.js";var _=t(),v=e();function y(){let e=(0,_.c)(55),t=n(),y=r(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:o(g)},e[0]=b):b=e[0];let{handleSubmit:x,register:S,control:C,formState:w}=p(b),{errors:T,isSubmitting:E}=w,D;e[1]===C?D=e[2]:(D={control:C},e[1]=C,e[2]=D);let O=i(D),k;e[3]===O?k=e[4]:(k=e=>e?O[e]:void 0,e[3]=O,e[4]=k);let A=k,j;e[5]!==y||e[6]!==t?(j=async e=>{await y.mutateAsync(e),t({to:`/iam/list-groups`})},e[5]=y,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,v.jsx)(l,{to:`/iam/list-groups`,children:`Back to groups`}),P=(0,v.jsx)(h,{title:`Create Group`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===y.error?F=e[11]:(F=y.error&&(0,v.jsx)(c,{error:y.error,msg:`Failed to create group`}),e[10]=y.error,e[11]=F);let I;e[12]!==x||e[13]!==M?(I=x(M),e[12]=x,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,v.jsx)(f,{children:(0,v.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[15]=L):L=e[15];let R=!!T.groupName,z;e[16]===S?z=e[17]:(z=S(`groupName`),e[16]=S,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,v.jsx)(s,{"aria-invalid":R,id:`groupName`,placeholder:`my-group...`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===T.groupName?V=e[22]:(V=(0,v.jsx)(m,{errors:[T.groupName]}),e[21]=T.groupName,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,v.jsxs)(d,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,v.jsx)(f,{children:(0,v.jsx)(`label`,{htmlFor:`path`,children:`Path (optional)`})}),e[26]=U):U=e[26];let W;e[27]===S?W=e[28]:(W=S(`path`),e[27]=S,e[28]=W);let G;e[29]===W?G=e[30]:(G=(0,v.jsx)(s,{id:`path`,placeholder:`/`,...W}),e[29]=W,e[30]=G);let K;e[31]===T.path?K=e[32]:(K=(0,v.jsx)(m,{errors:[T.path]}),e[31]=T.path,e[32]=K);let q;e[33]!==G||e[34]!==K?(q=(0,v.jsxs)(d,{children:[U,G,K]}),e[33]=G,e[34]=K,e[35]=q):q=e[35];let J;e[36]===A?J=e[37]:(J=ee(A),e[36]=A,e[37]=J);let Y;e[38]===J?Y=e[39]:(Y=(0,v.jsx)(a,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/iam/list-groups`}),e[40]=t,e[41]=X);let Z;e[42]!==y.isPending||e[43]!==E||e[44]!==X?(Z=(0,v.jsx)(u,{isPending:y.isPending,isSubmitting:E,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create Group`}),e[42]=y.isPending,e[43]=E,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==H||e[47]!==q||e[48]!==Y||e[49]!==Z||e[50]!==I?(Q=(0,v.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[46]=H,e[47]=q,e[48]=Y,e[49]=Z,e[50]=I,e[51]=Q):Q=e[51];let $;return e[52]!==Q||e[53]!==F?($=(0,v.jsxs)(v.Fragment,{children:[N,P,F,Q]}),e[52]=Q,e[53]=F,e[54]=$):$=e[54],$}function ee(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`path`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-group`},{type:`flag`,value:` --group-name`},{type:`value`,value:` ${n||``}`}];return i&&i!==`/`&&a.push({type:`flag`,value:` --path`},{type:`value`,value:` ${i}`}),[{label:`Create Group`,parts:a}]}export{y as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-instance-profile.js b/spinifex/services/spinifexui/frontend/dist/assets/create-instance-profile.js index afb19bb59..8d47f6292 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-instance-profile.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-instance-profile.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as r}from"./iam.js";import{Ln as i,Sn as a,_n as o,an as s,dn as ee,hn as c,mn as l,rn as u,sn as d,vn as f,xn as p}from"./index.js";import{t as m}from"./form-actions.js";import{r as h}from"./iam3.js";var g=t(),_=e();function v(){let e=(0,g.c)(55),t=n(),v=r(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:f(h)},e[0]=b):b=e[0];let{handleSubmit:x,register:S,control:C,formState:w}=p(b),{errors:T,isSubmitting:E}=w,D;e[1]===C?D=e[2]:(D={control:C},e[1]=C,e[2]=D);let O=a(D),k;e[3]===O?k=e[4]:(k=e=>e?O[e]:void 0,e[3]=O,e[4]=k);let A=k,j;e[5]!==v||e[6]!==t?(j=async e=>{await v.mutateAsync(e),t({to:`/iam/list-instance-profiles`})},e[5]=v,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,_.jsx)(o,{to:`/iam/list-instance-profiles`,children:`Back to instance profiles`}),P=(0,_.jsx)(ee,{title:`Create Instance Profile`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===v.error?F=e[11]:(F=v.error&&(0,_.jsx)(l,{error:v.error,msg:`Failed to create instance profile`}),e[10]=v.error,e[11]=F);let I;e[12]!==x||e[13]!==M?(I=x(M),e[12]=x,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,_.jsx)(d,{children:(0,_.jsx)(`label`,{htmlFor:`instanceProfileName`,children:`Instance Profile Name`})}),e[15]=L):L=e[15];let R=!!T.instanceProfileName,z;e[16]===S?z=e[17]:(z=S(`instanceProfileName`),e[16]=S,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,_.jsx)(i,{"aria-invalid":R,id:`instanceProfileName`,placeholder:`my-instance-profile...`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===T.instanceProfileName?V=e[22]:(V=(0,_.jsx)(s,{errors:[T.instanceProfileName]}),e[21]=T.instanceProfileName,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,_.jsxs)(u,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(d,{children:(0,_.jsx)(`label`,{htmlFor:`path`,children:`Path (optional)`})}),e[26]=U):U=e[26];let W;e[27]===S?W=e[28]:(W=S(`path`),e[27]=S,e[28]=W);let G;e[29]===W?G=e[30]:(G=(0,_.jsx)(i,{id:`path`,placeholder:`/`,...W}),e[29]=W,e[30]=G);let K;e[31]===T.path?K=e[32]:(K=(0,_.jsx)(s,{errors:[T.path]}),e[31]=T.path,e[32]=K);let q;e[33]!==G||e[34]!==K?(q=(0,_.jsxs)(u,{children:[U,G,K]}),e[33]=G,e[34]=K,e[35]=q):q=e[35];let J;e[36]===A?J=e[37]:(J=y(A),e[36]=A,e[37]=J);let Y;e[38]===J?Y=e[39]:(Y=(0,_.jsx)(c,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/iam/list-instance-profiles`}),e[40]=t,e[41]=X);let Z;e[42]!==v.isPending||e[43]!==E||e[44]!==X?(Z=(0,_.jsx)(m,{isPending:v.isPending,isSubmitting:E,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create Instance Profile`}),e[42]=v.isPending,e[43]=E,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==H||e[47]!==q||e[48]!==Y||e[49]!==Z||e[50]!==I?(Q=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[46]=H,e[47]=q,e[48]=Y,e[49]=Z,e[50]=I,e[51]=Q):Q=e[51];let $;return e[52]!==Q||e[53]!==F?($=(0,_.jsxs)(_.Fragment,{children:[N,P,F,Q]}),e[52]=Q,e[53]=F,e[54]=$):$=e[54],$}function y(e){let t=e(`instanceProfileName`),n=typeof t==`string`?t:``,r=e(`path`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-instance-profile`},{type:`flag`,value:` --instance-profile-name`},{type:`value`,value:` ${n||``}`}];return i&&i!==`/`&&a.push({type:`flag`,value:` --path`},{type:`value`,value:` ${i}`}),[{label:`Create Instance Profile`,parts:a}]}export{v as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as r}from"./iam.js";import{An as i,Cn as a,En as o,Rn as s,Sn as c,Tn as l,W as u,dn as d,hn as f,kn as p,pn as m,yn as h}from"./index.js";import{r as g}from"./iam3.js";var _=t(),v=e();function y(){let e=(0,_.c)(55),t=n(),y=r(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:o(g)},e[0]=b):b=e[0];let{handleSubmit:x,register:S,control:C,formState:w}=p(b),{errors:T,isSubmitting:E}=w,D;e[1]===C?D=e[2]:(D={control:C},e[1]=C,e[2]=D);let O=i(D),k;e[3]===O?k=e[4]:(k=e=>e?O[e]:void 0,e[3]=O,e[4]=k);let A=k,j;e[5]!==y||e[6]!==t?(j=async e=>{await y.mutateAsync(e),t({to:`/iam/list-instance-profiles`})},e[5]=y,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,v.jsx)(l,{to:`/iam/list-instance-profiles`,children:`Back to instance profiles`}),P=(0,v.jsx)(h,{title:`Create Instance Profile`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===y.error?F=e[11]:(F=y.error&&(0,v.jsx)(c,{error:y.error,msg:`Failed to create instance profile`}),e[10]=y.error,e[11]=F);let I;e[12]!==x||e[13]!==M?(I=x(M),e[12]=x,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,v.jsx)(f,{children:(0,v.jsx)(`label`,{htmlFor:`instanceProfileName`,children:`Instance Profile Name`})}),e[15]=L):L=e[15];let R=!!T.instanceProfileName,z;e[16]===S?z=e[17]:(z=S(`instanceProfileName`),e[16]=S,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,v.jsx)(s,{"aria-invalid":R,id:`instanceProfileName`,placeholder:`my-instance-profile...`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===T.instanceProfileName?V=e[22]:(V=(0,v.jsx)(m,{errors:[T.instanceProfileName]}),e[21]=T.instanceProfileName,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,v.jsxs)(d,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,v.jsx)(f,{children:(0,v.jsx)(`label`,{htmlFor:`path`,children:`Path (optional)`})}),e[26]=U):U=e[26];let W;e[27]===S?W=e[28]:(W=S(`path`),e[27]=S,e[28]=W);let G;e[29]===W?G=e[30]:(G=(0,v.jsx)(s,{id:`path`,placeholder:`/`,...W}),e[29]=W,e[30]=G);let K;e[31]===T.path?K=e[32]:(K=(0,v.jsx)(m,{errors:[T.path]}),e[31]=T.path,e[32]=K);let q;e[33]!==G||e[34]!==K?(q=(0,v.jsxs)(d,{children:[U,G,K]}),e[33]=G,e[34]=K,e[35]=q):q=e[35];let J;e[36]===A?J=e[37]:(J=ee(A),e[36]=A,e[37]=J);let Y;e[38]===J?Y=e[39]:(Y=(0,v.jsx)(a,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/iam/list-instance-profiles`}),e[40]=t,e[41]=X);let Z;e[42]!==y.isPending||e[43]!==E||e[44]!==X?(Z=(0,v.jsx)(u,{isPending:y.isPending,isSubmitting:E,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create Instance Profile`}),e[42]=y.isPending,e[43]=E,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==H||e[47]!==q||e[48]!==Y||e[49]!==Z||e[50]!==I?(Q=(0,v.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[46]=H,e[47]=q,e[48]=Y,e[49]=Z,e[50]=I,e[51]=Q):Q=e[51];let $;return e[52]!==Q||e[53]!==F?($=(0,v.jsxs)(v.Fragment,{children:[N,P,F,Q]}),e[52]=Q,e[53]=F,e[54]=$):$=e[54],$}function ee(e){let t=e(`instanceProfileName`),n=typeof t==`string`?t:``,r=e(`path`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-instance-profile`},{type:`flag`,value:` --instance-profile-name`},{type:`value`,value:` ${n||``}`}];return i&&i!==`/`&&a.push({type:`flag`,value:` --path`},{type:`value`,value:` ${i}`}),[{label:`Create Instance Profile`,parts:a}]}export{y as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-internet-gateway.js b/spinifex/services/spinifexui/frontend/dist/assets/create-internet-gateway.js index af475004d..4f21a9db0 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-internet-gateway.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-internet-gateway.js @@ -1,2 +1,2 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{Ln as r,R as i,Sn as a,_n as o,dn as s,dt as c,hn as l,mn as u,rn as d,sn as f,vn as p,xn as m}from"./index.js";import{t as h}from"./form-actions.js";var g=t(),_=e();function v(){let e=(0,g.c)(36),t=n(),v=c(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:p(i),defaultValues:{name:``}},e[0]=b):b=e[0];let{control:x,handleSubmit:S,register:C,formState:w}=m(b),{isSubmitting:T}=w,E;e[1]===x?E=e[2]:(E={control:x},e[1]=x,e[2]=E);let D=a(E),O;e[3]!==v||e[4]!==t?(O=async e=>{let n=(await v.mutateAsync({name:e.name?.trim()??void 0})).InternetGateway?.InternetGatewayId;t(n?{to:`/ec2/describe-internet-gateways/$id`,params:{id:n}}:{to:`/ec2/describe-internet-gateways`})},e[3]=v,e[4]=t,e[5]=O):O=e[5];let k=O,A,j;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,_.jsx)(o,{to:`/ec2/describe-internet-gateways`,children:`Back to Internet Gateways`}),j=(0,_.jsx)(s,{title:`Create Internet Gateway`}),e[6]=A,e[7]=j):(A=e[6],j=e[7]);let M;e[8]===v.error?M=e[9]:(M=v.error&&(0,_.jsx)(u,{error:v.error,msg:`Failed to create Internet Gateway`}),e[8]=v.error,e[9]=M);let N;e[10]!==S||e[11]!==k?(N=S(k),e[10]=S,e[11]=k,e[12]=N):N=e[12];let P;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,_.jsx)(f,{children:(0,_.jsx)(`label`,{htmlFor:`name`,children:`Name (optional)`})}),e[13]=P):P=e[13];let F;e[14]===C?F=e[15]:(F=C(`name`),e[14]=C,e[15]=F);let I;e[16]===F?I=e[17]:(I=(0,_.jsxs)(d,{children:[P,(0,_.jsx)(r,{id:`name`,placeholder:`my-internet-gateway`,...F})]}),e[16]=F,e[17]=I);let L=D.name??``,R;e[18]===L?R=e[19]:(R=y(L),e[18]=L,e[19]=R);let z;e[20]===R?z=e[21]:(z=(0,_.jsx)(l,{commands:R}),e[20]=R,e[21]=z);let B;e[22]===t?B=e[23]:(B=async()=>await t({to:`/ec2/describe-internet-gateways`}),e[22]=t,e[23]=B);let V;e[24]!==v.isPending||e[25]!==T||e[26]!==B?(V=(0,_.jsx)(h,{isPending:v.isPending,isSubmitting:T,onCancel:B,pendingLabel:`Creating…`,submitLabel:`Create`}),e[24]=v.isPending,e[25]=T,e[26]=B,e[27]=V):V=e[27];let H;e[28]!==I||e[29]!==z||e[30]!==V||e[31]!==N?(H=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:N,children:[I,z,V]}),e[28]=I,e[29]=z,e[30]=V,e[31]=N,e[32]=H):H=e[32];let U;return e[33]!==H||e[34]!==M?(U=(0,_.jsxs)(_.Fragment,{children:[A,j,M,H]}),e[33]=H,e[34]=M,e[35]=U):U=e[35],U}function y(e){let t=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-internet-gateway`}];return e.trim()&&t.push({type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{An as r,Cn as i,En as a,J as o,Rn as s,Sn as c,Tn as l,W as u,bt as d,dn as f,hn as p,kn as m,yn as h}from"./index.js";var g=t(),_=e();function v(){let e=(0,g.c)(36),t=n(),v=d(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:a(o),defaultValues:{name:``}},e[0]=b):b=e[0];let{control:x,handleSubmit:S,register:C,formState:w}=m(b),{isSubmitting:T}=w,E;e[1]===x?E=e[2]:(E={control:x},e[1]=x,e[2]=E);let D=r(E),O;e[3]!==v||e[4]!==t?(O=async e=>{let n=(await v.mutateAsync({name:e.name?.trim()??void 0})).InternetGateway?.InternetGatewayId;t(n?{to:`/ec2/describe-internet-gateways/$id`,params:{id:n}}:{to:`/ec2/describe-internet-gateways`})},e[3]=v,e[4]=t,e[5]=O):O=e[5];let k=O,A,j;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,_.jsx)(l,{to:`/ec2/describe-internet-gateways`,children:`Back to Internet Gateways`}),j=(0,_.jsx)(h,{title:`Create Internet Gateway`}),e[6]=A,e[7]=j):(A=e[6],j=e[7]);let M;e[8]===v.error?M=e[9]:(M=v.error&&(0,_.jsx)(c,{error:v.error,msg:`Failed to create Internet Gateway`}),e[8]=v.error,e[9]=M);let N;e[10]!==S||e[11]!==k?(N=S(k),e[10]=S,e[11]=k,e[12]=N):N=e[12];let P;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,_.jsx)(p,{children:(0,_.jsx)(`label`,{htmlFor:`name`,children:`Name (optional)`})}),e[13]=P):P=e[13];let F;e[14]===C?F=e[15]:(F=C(`name`),e[14]=C,e[15]=F);let I;e[16]===F?I=e[17]:(I=(0,_.jsxs)(f,{children:[P,(0,_.jsx)(s,{id:`name`,placeholder:`my-internet-gateway`,...F})]}),e[16]=F,e[17]=I);let L=D.name??``,R;e[18]===L?R=e[19]:(R=y(L),e[18]=L,e[19]=R);let z;e[20]===R?z=e[21]:(z=(0,_.jsx)(i,{commands:R}),e[20]=R,e[21]=z);let B;e[22]===t?B=e[23]:(B=async()=>await t({to:`/ec2/describe-internet-gateways`}),e[22]=t,e[23]=B);let V;e[24]!==v.isPending||e[25]!==T||e[26]!==B?(V=(0,_.jsx)(u,{isPending:v.isPending,isSubmitting:T,onCancel:B,pendingLabel:`Creating…`,submitLabel:`Create`}),e[24]=v.isPending,e[25]=T,e[26]=B,e[27]=V):V=e[27];let H;e[28]!==I||e[29]!==z||e[30]!==V||e[31]!==N?(H=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:N,children:[I,z,V]}),e[28]=I,e[29]=z,e[30]=V,e[31]=N,e[32]=H):H=e[32];let U;return e[33]!==H||e[34]!==M?(U=(0,_.jsxs)(_.Fragment,{children:[A,j,M,H]}),e[33]=H,e[34]=M,e[35]=U):U=e[35],U}function y(e){let t=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-internet-gateway`}];return e.trim()&&t.push({type:`flag`,value:` \\ --tag-specifications`},{type:`value`,value:` 'ResourceType=internet-gateway,Tags=[{Key=Name,Value=${e.trim()}}]'`}),[{label:`Create Internet Gateway`,parts:t}]}export{v as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-key-pair.js b/spinifex/services/spinifexui/frontend/dist/assets/create-key-pair.js deleted file mode 100644 index 0de4788db..000000000 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-key-pair.js +++ /dev/null @@ -1 +0,0 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./useNavigate.js";import{t as a}from"./check.js";import{t as o}from"./download.js";import{t as s}from"./triangle-alert.js";import{t as c}from"./button.js";import{Ln as l,Sn as u,_n as d,an as f,dn as p,ft as m,gn as h,hn as g,mn as _,rn as v,sn as y,vn as b,xn as x,z as S}from"./index.js";import{t as C}from"./form-actions.js";import{a as ee,c as w,i as T,l as E,o as D,r as O,s as k,t as A}from"./alert-dialog.js";var j=t(n()),M=r(),N=e();function P(e){let t=(0,M.c)(38),{open:n,keyName:r,keyMaterial:l}=e,u=i(),{copied:d,copy:f}=h(),p;t[0]!==l||t[1]!==r?(p=()=>{let e=new Blob([l],{type:`text/plain`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`${r}.pem`,n.click(),URL.revokeObjectURL(t)},t[0]=l,t[1]=r,t[2]=p):p=t[2];let m=p,g;t[3]===u?g=t[4]:(g=()=>{u({to:`/ec2/describe-key-pairs`})},t[3]=u,t[4]=g);let _=g,v,y;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(v=(0,N.jsx)(w,{children:(0,N.jsx)(s,{className:`text-destructive`})}),y=(0,N.jsx)(E,{children:`Save Your Private Key`}),t[5]=v,t[6]=y):(v=t[5],y=t[6]);let b;t[7]===r?b=t[8]:(b=(0,N.jsxs)(k,{children:[v,y,(0,N.jsxs)(ee,{children:[`This is your only chance to save the private key file for`,` `,(0,N.jsx)(`strong`,{children:r}),`. Please download or copy it now. You won't be able to retrieve it again.`]})]}),t[7]=r,t[8]=b);let x=`Private key material for ${r}`,S;t[9]!==l||t[10]!==x?(S=(0,N.jsx)(`textarea`,{"aria-label":x,className:`w-full resize-none overflow-y-auto rounded-md border border-input bg-input/20 px-2 py-2 font-mono text-xs`,readOnly:!0,rows:4,value:l}),t[9]=l,t[10]=x,t[11]=S):S=t[11];let C;t[12]!==f||t[13]!==l?(C=async()=>await f(l),t[12]=f,t[13]=l,t[14]=C):C=t[14];let j;t[15]===d?j=t[16]:(j=d?(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(a,{className:`mr-2 size-4`}),`Copied!`]}):`Copy to Clipboard`,t[15]=d,t[16]=j);let P;t[17]!==C||t[18]!==j?(P=(0,N.jsx)(c,{className:`flex-1`,onClick:C,type:`button`,variant:`outline`,children:j}),t[17]=C,t[18]=j,t[19]=P):P=t[19];let F;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,N.jsx)(o,{className:`mr-2 size-4`}),t[20]=F):F=t[20];let I;t[21]===m?I=t[22]:(I=(0,N.jsxs)(c,{className:`flex-1`,onClick:m,type:`button`,variant:`outline`,children:[F,`Download .pem File`]}),t[21]=m,t[22]=I);let L;t[23]!==P||t[24]!==I?(L=(0,N.jsxs)(`div`,{className:`flex gap-2`,children:[P,I]}),t[23]=P,t[24]=I,t[25]=L):L=t[25];let R;t[26]!==L||t[27]!==S?(R=(0,N.jsxs)(`div`,{className:`space-y-3`,children:[S,L]}),t[26]=L,t[27]=S,t[28]=R):R=t[28];let z;t[29]===_?z=t[30]:(z=(0,N.jsx)(D,{children:(0,N.jsx)(O,{onClick:_,children:`Close and Continue`})}),t[29]=_,t[30]=z);let B;t[31]!==R||t[32]!==z||t[33]!==b?(B=(0,N.jsxs)(T,{className:`max-w-2xl`,children:[b,R,z]}),t[31]=R,t[32]=z,t[33]=b,t[34]=B):B=t[34];let V;return t[35]!==n||t[36]!==B?(V=(0,N.jsx)(A,{open:n,children:B}),t[35]=n,t[36]=B,t[37]=V):V=t[37],V}function F(){let e=(0,M.c)(46),t=i(),n=m(),[r,a]=(0,j.useState)(null),o;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(o={resolver:b(S)},e[0]=o):o=e[0];let{handleSubmit:s,register:c,control:h,formState:ee}=x(o),{errors:w,isSubmitting:T}=ee,E;e[1]===h?E=e[2]:(E={control:h},e[1]=h,e[2]=E);let D=u(E),O;e[3]===D?O=e[4]:(O=e=>e?D[e]:void 0,e[3]=D,e[4]=O);let k=O,A;e[5]===n?A=e[6]:(A=async e=>{let t=await n.mutateAsync(e);t.KeyMaterial&&a({keyName:e.keyName,material:t.KeyMaterial})},e[5]=n,e[6]=A);let F=A,L,R;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,N.jsx)(d,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),R=(0,N.jsx)(p,{title:`Create Key Pair`}),e[7]=L,e[8]=R):(L=e[7],R=e[8]);let z;e[9]===n.error?z=e[10]:(z=n.error&&(0,N.jsx)(_,{error:n.error,msg:`Failed to create key pair`}),e[9]=n.error,e[10]=z);let B;e[11]!==s||e[12]!==F?(B=s(F),e[11]=s,e[12]=F,e[13]=B):B=e[13];let V;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,N.jsx)(y,{children:(0,N.jsx)(`label`,{htmlFor:`keyName`,children:`Key Pair Name`})}),e[14]=V):V=e[14];let H=!!w.keyName,U;e[15]===c?U=e[16]:(U=c(`keyName`),e[15]=c,e[16]=U);let W;e[17]!==H||e[18]!==U?(W=(0,N.jsx)(l,{"aria-invalid":H,id:`keyName`,placeholder:`my-key-pair…`,...U}),e[17]=H,e[18]=U,e[19]=W):W=e[19];let G;e[20]===w.keyName?G=e[21]:(G=(0,N.jsx)(f,{errors:[w.keyName]}),e[20]=w.keyName,e[21]=G);let K;e[22]!==W||e[23]!==G?(K=(0,N.jsxs)(v,{children:[V,W,G]}),e[22]=W,e[23]=G,e[24]=K):K=e[24];let q;e[25]===k?q=e[26]:(q=I(k),e[25]=k,e[26]=q);let J;e[27]===q?J=e[28]:(J=(0,N.jsx)(g,{commands:q}),e[27]=q,e[28]=J);let Y;e[29]===t?Y=e[30]:(Y=async()=>await t({to:`/ec2/describe-key-pairs`}),e[29]=t,e[30]=Y);let X;e[31]!==n.isPending||e[32]!==T||e[33]!==Y?(X=(0,N.jsx)(C,{isPending:n.isPending,isSubmitting:T,onCancel:Y,pendingLabel:`Creating…`,submitLabel:`Create Key Pair`}),e[31]=n.isPending,e[32]=T,e[33]=Y,e[34]=X):X=e[34];let Z;e[35]!==K||e[36]!==J||e[37]!==X||e[38]!==B?(Z=(0,N.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:B,children:[K,J,X]}),e[35]=K,e[36]=J,e[37]=X,e[38]=B,e[39]=Z):Z=e[39];let Q;e[40]===r?Q=e[41]:(Q=r&&(0,N.jsx)(P,{keyMaterial:r.material,keyName:r.keyName,open:!!r}),e[40]=r,e[41]=Q);let $;return e[42]!==Z||e[43]!==Q||e[44]!==z?($=(0,N.jsxs)(N.Fragment,{children:[L,R,z,Z,Q]}),e[42]=Z,e[43]=Q,e[44]=z,e[45]=$):$=e[45],$}function I(e){let t=e(`keyName`);return[{label:`Create Key Pair`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-key-pair`},{type:`flag`,value:` --key-name`},{type:`value`,value:` ${(typeof t==`string`?t:``)||``}`}]}]}export{F as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-launch-template.js b/spinifex/services/spinifexui/frontend/dist/assets/create-launch-template.js index b1c4ddbab..229fdf2df 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-launch-template.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-launch-template.js @@ -1,4 +1,4 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{B as r,Ln as i,Sn as a,_n as o,an as s,dn as c,et as l,hn as ee,mn as te,pt as ne,rn as u,sn as d,vn as f,xn as p}from"./index.js";import{t as m}from"./form-actions.js";import{t as h}from"./launch-template-data-fields.js";var g=t(),_=e();function v(){let e=(0,g.c)(56),t=n(),v=ne(),y;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(y=f(r),e[0]=y):y=e[0];let x;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(x={resolver:y,defaultValues:{launchTemplateName:``,versionDescription:``,imageId:``,instanceType:``,securityGroupIds:[],userData:``}},e[1]=x):x=e[1];let{control:S,handleSubmit:C,register:w,formState:T}=p(x),{errors:E,isSubmitting:D}=T,O;e[2]===S?O=e[3]:(O={control:S},e[2]=S,e[3]=O);let k=a(O),A;e[4]!==v||e[5]!==t?(A=async e=>{let n=(await v.mutateAsync(e)).LaunchTemplate?.LaunchTemplateId;if(!n){t({to:`/ec2/describe-launch-templates`});return}t({to:`/ec2/describe-launch-templates/$id`,params:{id:n}})},e[4]=v,e[5]=t,e[6]=A):A=e[6];let j=A,M,N;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,_.jsx)(o,{to:`/ec2/describe-launch-templates`,children:`Back to launch templates`}),N=(0,_.jsx)(c,{title:`Create Launch Template`}),e[7]=M,e[8]=N):(M=e[7],N=e[8]);let P;e[9]===v.error?P=e[10]:(P=v.error&&(0,_.jsx)(te,{error:v.error,msg:`Failed to create launch template`}),e[9]=v.error,e[10]=P);let F;e[11]!==C||e[12]!==j?(F=C(j),e[11]=C,e[12]=j,e[13]=F):F=e[13];let I;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,_.jsx)(d,{children:(0,_.jsx)(`label`,{htmlFor:`launchTemplateName`,children:`Name`})}),e[14]=I):I=e[14];let L=!!E.launchTemplateName,R;e[15]===w?R=e[16]:(R=w(`launchTemplateName`),e[15]=w,e[16]=R);let z;e[17]!==L||e[18]!==R?(z=(0,_.jsx)(i,{"aria-invalid":L,id:`launchTemplateName`,placeholder:`my-launch-template`,...R}),e[17]=L,e[18]=R,e[19]=z):z=e[19];let B;e[20]===E.launchTemplateName?B=e[21]:(B=(0,_.jsx)(s,{errors:[E.launchTemplateName]}),e[20]=E.launchTemplateName,e[21]=B);let V;e[22]!==z||e[23]!==B?(V=(0,_.jsxs)(u,{children:[I,z,B]}),e[22]=z,e[23]=B,e[24]=V):V=e[24];let H;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,_.jsx)(d,{children:(0,_.jsx)(`label`,{htmlFor:`versionDescription`,children:`Version Description`})}),e[25]=H):H=e[25];let U;e[26]===w?U=e[27]:(U=w(`versionDescription`),e[26]=w,e[27]=U);let W;e[28]===U?W=e[29]:(W=(0,_.jsxs)(u,{children:[H,(0,_.jsx)(i,{id:`versionDescription`,placeholder:`Initial version`,...U})]}),e[28]=U,e[29]=W);let G;e[30]!==S||e[31]!==E||e[32]!==w?(G=(0,_.jsx)(h,{control:S,errors:E,register:w}),e[30]=S,e[31]=E,e[32]=w,e[33]=G):G=e[33];let K=k.launchTemplateName??``,q=k.versionDescription??``,J;e[34]!==K||e[35]!==q||e[36]!==k?(J=b(K,q,l(k)),e[34]=K,e[35]=q,e[36]=k,e[37]=J):J=e[37];let Y;e[38]===J?Y=e[39]:(Y=(0,_.jsx)(ee,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/ec2/describe-launch-templates`}),e[40]=t,e[41]=X);let Z;e[42]!==v.isPending||e[43]!==D||e[44]!==X?(Z=(0,_.jsx)(m,{isPending:v.isPending,isSubmitting:D,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Launch Template`}),e[42]=v.isPending,e[43]=D,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==V||e[47]!==W||e[48]!==G||e[49]!==Y||e[50]!==Z||e[51]!==F?(Q=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:F,children:[V,W,G,Y,Z]}),e[46]=V,e[47]=W,e[48]=G,e[49]=Y,e[50]=Z,e[51]=F,e[52]=Q):Q=e[52];let $;return e[53]!==Q||e[54]!==P?($=(0,_.jsxs)(_.Fragment,{children:[M,N,P,Q]}),e[53]=Q,e[54]=P,e[55]=$):$=e[55],$}function y(e){return`'${e.replaceAll(`'`,`'"'"'`)}'`}function b(e,t,n){let r=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-launch-template`},{type:`flag`,value:` \\ - --launch-template-name`},{type:`value`,value:` ${e?y(e):``}`}];return t&&r.push({type:`flag`,value:` \\ - --version-description`},{type:`value`,value:` ${y(t)}`}),r.push({type:`flag`,value:` \\ - --launch-template-data`},{type:`value`,value:` ${y(JSON.stringify(n))}`}),[{label:`Create Launch Template`,parts:r}]}export{v as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{An as r,Cn as i,En as a,Rn as o,Sn as s,Tn as c,W as l,Y as ee,dn as u,hn as d,kn as te,lt as f,pn as p,xt as m,yn as h}from"./index.js";import{t as g}from"./launch-template-data-fields.js";var _=t(),v=e();function y(){let e=(0,_.c)(56),t=n(),y=m(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b=a(ee),e[0]=b):b=e[0];let S;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(S={resolver:b,defaultValues:{launchTemplateName:``,versionDescription:``,imageId:``,instanceType:``,securityGroupIds:[],userData:``}},e[1]=S):S=e[1];let{control:C,handleSubmit:w,register:T,formState:ne}=te(S),{errors:E,isSubmitting:D}=ne,O;e[2]===C?O=e[3]:(O={control:C},e[2]=C,e[3]=O);let k=r(O),A;e[4]!==y||e[5]!==t?(A=async e=>{let n=(await y.mutateAsync(e)).LaunchTemplate?.LaunchTemplateId;if(!n){t({to:`/ec2/describe-launch-templates`});return}t({to:`/ec2/describe-launch-templates/$id`,params:{id:n}})},e[4]=y,e[5]=t,e[6]=A):A=e[6];let j=A,M,N;e[7]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,v.jsx)(c,{to:`/ec2/describe-launch-templates`,children:`Back to launch templates`}),N=(0,v.jsx)(h,{title:`Create Launch Template`}),e[7]=M,e[8]=N):(M=e[7],N=e[8]);let P;e[9]===y.error?P=e[10]:(P=y.error&&(0,v.jsx)(s,{error:y.error,msg:`Failed to create launch template`}),e[9]=y.error,e[10]=P);let F;e[11]!==w||e[12]!==j?(F=w(j),e[11]=w,e[12]=j,e[13]=F):F=e[13];let I;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,v.jsx)(d,{children:(0,v.jsx)(`label`,{htmlFor:`launchTemplateName`,children:`Name`})}),e[14]=I):I=e[14];let L=!!E.launchTemplateName,R;e[15]===T?R=e[16]:(R=T(`launchTemplateName`),e[15]=T,e[16]=R);let z;e[17]!==L||e[18]!==R?(z=(0,v.jsx)(o,{"aria-invalid":L,id:`launchTemplateName`,placeholder:`my-launch-template`,...R}),e[17]=L,e[18]=R,e[19]=z):z=e[19];let B;e[20]===E.launchTemplateName?B=e[21]:(B=(0,v.jsx)(p,{errors:[E.launchTemplateName]}),e[20]=E.launchTemplateName,e[21]=B);let V;e[22]!==z||e[23]!==B?(V=(0,v.jsxs)(u,{children:[I,z,B]}),e[22]=z,e[23]=B,e[24]=V):V=e[24];let H;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,v.jsx)(d,{children:(0,v.jsx)(`label`,{htmlFor:`versionDescription`,children:`Version Description`})}),e[25]=H):H=e[25];let U;e[26]===T?U=e[27]:(U=T(`versionDescription`),e[26]=T,e[27]=U);let W;e[28]===U?W=e[29]:(W=(0,v.jsxs)(u,{children:[H,(0,v.jsx)(o,{id:`versionDescription`,placeholder:`Initial version`,...U})]}),e[28]=U,e[29]=W);let G;e[30]!==C||e[31]!==E||e[32]!==T?(G=(0,v.jsx)(g,{control:C,errors:E,register:T}),e[30]=C,e[31]=E,e[32]=T,e[33]=G):G=e[33];let K=k.launchTemplateName??``,q=k.versionDescription??``,J;e[34]!==K||e[35]!==q||e[36]!==k?(J=x(K,q,f(k)),e[34]=K,e[35]=q,e[36]=k,e[37]=J):J=e[37];let Y;e[38]===J?Y=e[39]:(Y=(0,v.jsx)(i,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/ec2/describe-launch-templates`}),e[40]=t,e[41]=X);let Z;e[42]!==y.isPending||e[43]!==D||e[44]!==X?(Z=(0,v.jsx)(l,{isPending:y.isPending,isSubmitting:D,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Launch Template`}),e[42]=y.isPending,e[43]=D,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==V||e[47]!==W||e[48]!==G||e[49]!==Y||e[50]!==Z||e[51]!==F?(Q=(0,v.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:F,children:[V,W,G,Y,Z]}),e[46]=V,e[47]=W,e[48]=G,e[49]=Y,e[50]=Z,e[51]=F,e[52]=Q):Q=e[52];let $;return e[53]!==Q||e[54]!==P?($=(0,v.jsxs)(v.Fragment,{children:[M,N,P,Q]}),e[53]=Q,e[54]=P,e[55]=$):$=e[55],$}function b(e){return`'${e.replaceAll(`'`,`'"'"'`)}'`}function x(e,t,n){let r=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-launch-template`},{type:`flag`,value:` \\ + --launch-template-name`},{type:`value`,value:` ${e?b(e):``}`}];return t&&r.push({type:`flag`,value:` \\ + --version-description`},{type:`value`,value:` ${b(t)}`}),r.push({type:`flag`,value:` \\ + --launch-template-data`},{type:`value`,value:` ${b(JSON.stringify(n))}`}),[{label:`Create Launch Template`,parts:r}]}export{y as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-load-balancer.js b/spinifex/services/spinifexui/frontend/dist/assets/create-load-balancer.js index ec861c3f4..7ec7bf876 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-load-balancer.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-load-balancer.js @@ -1,4 +1,4 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as ee}from"./useNavigate.js";import{$t as te}from"./auth.js";import{c as i,i as a,n as o,s,t as c}from"./select.js";import{t as ne}from"./plus.js";import{t as re}from"./trash-2.js";import{t as ie}from"./button.js";import{t as ae}from"./certificate-import-dialog.js";import{M as oe,O as l,w as se}from"./ec2.js";import{n as ce}from"./elbv2.js";import{o as le,u as ue}from"./elbv22.js";import{Ln as u,P as de,Sn as d,Xn as f,_n as fe,an as p,dn as pe,hn as me,mn as he,rn as m,sn as h,vn as ge,xn as _e,yn as g}from"./index.js";import{t as ve}from"./form-actions.js";import{t as ye}from"./target-group-form.js";import{a as be,c as xe,o as Se,r as Ce,s as we,t as Te}from"./elbv23.js";var Ee=r(),De=t(n(),1),_=e();function Oe(e){let t=te(e.Tags);return t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`}function ke(e){let t=te(e.Tags);return`${t?`${e.SubnetId} (${t})`:e.SubnetId} · ${e.CidrBlock}`}function Ae(e){return e===`TLS`||e===`TCP`?`TCP`:e===`UDP`?`UDP`:e===`TCP_UDP`?`TCP_UDP`:`HTTP`}function je(e){let t=new Map;for(let n of e){let e=n.AvailabilityZone??`unknown`,r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t.entries()].toSorted((e,t)=>e[0].localeCompare(t[0])).map(([e,t])=>({az:e,subnets:t}))}function Me(){let e=(0,Ee.c)(219),t=ee(),{data:n}=f(oe),{data:r}=f(l),{data:te}=f(se),{data:a}=f(ue),{data:Oe}=f(de),{data:Me}=f(le),v=ce(),[y,He]=(0,De.useState)(null),[Ue,We]=(0,De.useState)(!1),Ge;e[0]===n.Vpcs?Ge=e[1]:(Ge=n.Vpcs??[],e[0]=n.Vpcs,e[1]=Ge);let b=Ge,Ke=r.Subnets??[],qe=te.SecurityGroups??[],Je;e[2]===a.TargetGroups?Je=e[3]:(Je=a.TargetGroups??[],e[2]=a.TargetGroups,e[3]=Je);let Ye=Je,Xe;e[4]===Oe.CertificateSummaryList?Xe=e[5]:(Xe=Oe.CertificateSummaryList??[],e[4]=Oe.CertificateSummaryList,e[5]=Xe);let Ze=Xe,Qe;e[6]===Me.SslPolicies?Qe=e[7]:(Qe=Me.SslPolicies??[],e[6]=Me.SslPolicies,e[7]=Qe);let $e=Qe,et;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(et=ge(Ce),e[8]=et):et=e[8];let tt=b[0]?.VpcId??``,nt,rt,it,at;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(nt=[],rt=[],it=[],at={protocol:`HTTP`,port:80,targetGroupMode:`new`,existingTargetGroupArn:``,certificateArn:void 0,sslPolicy:void 0},e[9]=nt,e[10]=rt,e[11]=it,e[12]=at):(nt=e[9],rt=e[10],it=e[11],at=e[12]);let ot;e[13]===tt?ot=e[14]:(ot={resolver:et,defaultValues:{name:``,type:`application`,scheme:`internet-facing`,vpcId:tt,subnetIds:nt,securityGroupIds:rt,tags:it,listener:at}},e[13]=tt,e[14]=ot);let st=_e(ot),ct;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(ct=ge(be),e[15]=ct):ct=e[15];let lt=b[0]?.VpcId??``,ut,dt;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(ut={protocol:`HTTP`,path:`/`,port:`traffic-port`,intervalSeconds:30,timeoutSeconds:5,healthyThresholdCount:5,unhealthyThresholdCount:2,matcher:`200`},dt=[],e[16]=ut,e[17]=dt):(ut=e[16],dt=e[17]);let ft;e[18]===lt?ft=e[19]:(ft={resolver:ct,defaultValues:{name:``,protocol:`HTTP`,port:80,vpcId:lt,healthCheck:ut,tags:dt}},e[18]=lt,e[19]=ft);let x=_e(ft),{handleSubmit:pt,register:S,watch:mt,control:C,setValue:w,getValues:T,formState:ht}=st,{errors:E,isSubmitting:gt}=ht,_t;e[20]===C?_t=e[21]:(_t={control:C,name:`vpcId`},e[20]=C,e[21]=_t);let D=d(_t),vt;e[22]===C?vt=e[23]:(vt={control:C,name:`subnetIds`},e[22]=C,e[23]=vt);let yt=d(vt),bt;e[24]===C?bt=e[25]:(bt={control:C,name:`securityGroupIds`},e[24]=C,e[25]=bt);let xt=d(bt),St;e[26]===C?St=e[27]:(St={control:C,name:`type`},e[26]=C,e[27]=St);let Ct=d(St),wt;e[28]===C?wt=e[29]:(wt={control:C,name:`listener.protocol`},e[28]=C,e[29]=wt);let O=d(wt),Tt;e[30]===C?Tt=e[31]:(Tt={control:C,name:`listener.targetGroupMode`},e[30]=C,e[31]=Tt);let k=d(Tt),Et;e[32]===C?Et=e[33]:(Et={control:C,name:`tags`},e[32]=C,e[33]=Et);let Dt=d(Et),Ot=Ct===`network`,kt;e[34]===O?kt=e[35]:(kt=we(O),e[34]=O,e[35]=kt);let At=kt,jt;e[36]===Ct?jt=e[37]:(jt=xe(Ct),e[36]=Ct,e[37]=jt);let Mt=jt,Nt;e[38]===Ot?Nt=e[39]:(Nt=Ot?[`TCP`,`UDP`,`TLS`,`TCP_UDP`]:[`HTTP`,`HTTPS`],e[38]=Ot,e[39]=Nt);let Pt=Nt,Ft;e[40]===D?Ft=e[41]:(Ft=e=>e.VpcId===D,e[40]=D,e[41]=Ft);let It=Ke.filter(Ft),Lt;e[42]===D?Lt=e[43]:(Lt=e=>e.VpcId===D,e[42]=D,e[43]=Lt);let Rt=qe.filter(Lt),zt;if(e[44]!==Ye||e[45]!==D){let t;e[47]===D?t=e[48]:(t=e=>e.VpcId===D,e[47]=D,e[48]=t),zt=Ye.filter(t),e[44]=Ye,e[45]=D,e[46]=zt}else zt=e[46];let Bt=zt,Vt;e[49]===x?Vt=e[50]:(Vt=e=>{let t=Ae(e);x.setValue(`protocol`,t),x.setValue(`healthCheck.protocol`,t===`HTTP`?`HTTP`:`TCP`)},e[49]=x,e[50]=Vt);let A=Vt,Ht;e[51]!==w||e[52]!==A?(Ht=e=>{w(`type`,e);let t=Se(e);w(`listener.protocol`,t),w(`listener.port`,80),w(`listener.certificateArn`,void 0),w(`listener.sslPolicy`,void 0),e===`network`&&w(`securityGroupIds`,[]),A(t)},e[51]=w,e[52]=A,e[53]=Ht):Ht=e[53];let Ut=Ht,Wt;e[54]!==T||e[55]!==w||e[56]!==A?(Wt=e=>{w(`listener.protocol`,e);let t=T(`listener.port`);we(e)?(t===80&&w(`listener.port`,443),e===`HTTPS`&&!T(`listener.sslPolicy`)&&w(`listener.sslPolicy`,Te)):(t===443&&w(`listener.port`,80),w(`listener.certificateArn`,void 0),w(`listener.sslPolicy`,void 0)),A(e)},e[54]=T,e[55]=w,e[56]=A,e[57]=Wt):Wt=e[57];let Gt=Wt,Kt;e[58]!==w||e[59]!==x?(Kt=e=>{let t=(e===void 0?``:e)??``;w(`vpcId`,t,{shouldValidate:!0}),w(`subnetIds`,[],{shouldValidate:!0}),w(`securityGroupIds`,[]),w(`listener.existingTargetGroupArn`,``),x.setValue(`vpcId`,t)},e[58]=w,e[59]=x,e[60]=Kt):Kt=e[60];let qt=Kt,Jt;e[61]!==T||e[62]!==w?(Jt=e=>{let t=T(`subnetIds`),n=t.includes(e)?t.filter(t=>t!==e):[...t,e];w(`subnetIds`,n,{shouldValidate:!0})},e[61]=T,e[62]=w,e[63]=Jt):Jt=e[63];let Yt=Jt,Xt;e[64]!==T||e[65]!==w?(Xt=e=>{let t=T(`securityGroupIds`),n=t.includes(e)?t.filter(t=>t!==e):[...t,e];w(`securityGroupIds`,n)},e[64]=T,e[65]=w,e[66]=Xt):Xt=e[66];let Zt=Xt,Qt;e[67]!==t||e[68]!==x||e[69]!==v?(Qt=async e=>{He(null);let n;if(e.listener.targetGroupMode===`new`){if(!await x.trigger())return;n=x.getValues()}let r=await v.mutateAsync({lb:{name:e.name,type:e.type,scheme:e.scheme,vpcId:e.vpcId,subnetIds:e.subnetIds,securityGroupIds:e.securityGroupIds,tags:e.tags},listener:{protocol:e.listener.protocol,port:e.listener.port,targetGroupMode:e.listener.targetGroupMode,existingTargetGroupArn:e.listener.existingTargetGroupArn,certificateArn:e.listener.certificateArn,sslPolicy:e.listener.sslPolicy,newTargetGroup:n}});He(r),!r.error&&r.loadBalancerArn&&t({to:`/ec2/describe-load-balancers/$id`,params:{id:encodeURIComponent(r.loadBalancerArn)}})},e[67]=t,e[68]=x,e[69]=v,e[70]=Qt):Qt=e[70];let $t=Qt,en=je(It),j,M;e[71]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,_.jsx)(fe,{to:`/ec2/describe-load-balancers`,children:`Back to load balancers`}),M=(0,_.jsx)(pe,{title:`Create Load Balancer`}),e[71]=j,e[72]=M):(j=e[71],M=e[72]);let N;e[73]===v.error?N=e[74]:(N=v.error&&(0,_.jsx)(he,{error:v.error,msg:`Failed to create load balancer`}),e[73]=v.error,e[74]=N);let P;e[75]===y?P=e[76]:(P=y?.error&&(0,_.jsxs)(`div`,{className:`mb-6 max-w-4xl rounded-md border border-destructive bg-destructive/10 p-4`,children:[(0,_.jsxs)(`h2`,{className:`text-sm font-medium text-destructive`,children:[`Wizard failed: `,y.failedStep]}),(0,_.jsx)(`p`,{className:`mt-1 text-sm text-destructive`,children:y.error.message}),y.created.length>0&&(0,_.jsxs)(`div`,{className:`mt-3`,children:[(0,_.jsx)(`p`,{className:`text-xs font-medium text-destructive`,children:`Successfully created resources (clean up manually if needed):`}),(0,_.jsx)(`ul`,{className:`mt-1 list-inside list-disc text-xs text-destructive`,children:y.created.map(Be)})]})]}),e[75]=y,e[76]=P);let F;e[77]!==pt||e[78]!==$t?(F=pt($t),e[77]=pt,e[78]=$t,e[79]=F):F=e[79];let tn;e[80]===Symbol.for(`react.memo_cache_sentinel`)?(tn=(0,_.jsx)(h,{children:(0,_.jsx)(`label`,{htmlFor:`lb-name`,children:`Name`})}),e[80]=tn):tn=e[80];let nn=!!E.name,I;e[81]===S?I=e[82]:(I=S(`name`),e[81]=S,e[82]=I);let L;e[83]!==nn||e[84]!==I?(L=(0,_.jsx)(u,{"aria-invalid":nn,id:`lb-name`,placeholder:`my-load-balancer`,...I}),e[83]=nn,e[84]=I,e[85]=L):L=e[85];let R;e[86]===E.name?R=e[87]:(R=(0,_.jsx)(p,{errors:[E.name]}),e[86]=E.name,e[87]=R);let z;e[88]!==L||e[89]!==R?(z=(0,_.jsxs)(m,{children:[tn,L,R]}),e[88]=L,e[89]=R,e[90]=z):z=e[90];let rn;e[91]===Symbol.for(`react.memo_cache_sentinel`)?(rn=(0,_.jsx)(h,{children:`Type`}),e[91]=rn):rn=e[91];let B;e[92]===Ut?B=e[93]:(B=e=>{let{field:t}=e;return(0,_.jsxs)(`div`,{className:`flex gap-4`,children:[(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,_.jsx)(`input`,{"aria-label":`Application Load Balancer`,checked:t.value===`application`,name:`lb-type`,onChange:()=>Ut(`application`),type:`radio`}),`Application (ALB)`]}),(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,_.jsx)(`input`,{"aria-label":`Network Load Balancer`,checked:t.value===`network`,name:`lb-type`,onChange:()=>Ut(`network`),type:`radio`}),`Network (NLB)`]})]})},e[92]=Ut,e[93]=B);let V;e[94]!==C||e[95]!==B?(V=(0,_.jsxs)(m,{children:[rn,(0,_.jsx)(g,{control:C,name:`type`,render:B})]}),e[94]=C,e[95]=B,e[96]=V):V=e[96];let an;e[97]===Symbol.for(`react.memo_cache_sentinel`)?(an=(0,_.jsx)(h,{children:`Scheme`}),e[97]=an):an=e[97];let H;e[98]===C?H=e[99]:(H=(0,_.jsxs)(m,{children:[an,(0,_.jsx)(g,{control:C,name:`scheme`,render:ze})]}),e[98]=C,e[99]=H);let on;e[100]===Symbol.for(`react.memo_cache_sentinel`)?(on=(0,_.jsx)(h,{children:(0,_.jsx)(`label`,{htmlFor:`lb-vpc`,children:`VPC`})}),e[100]=on):on=e[100];let U;e[101]!==E.vpcId||e[102]!==qt||e[103]!==b?(U=e=>{let{field:t}=e;return(0,_.jsxs)(c,{onValueChange:e=>qt(e),value:t.value??``,children:[(0,_.jsx)(s,{"aria-invalid":!!E.vpcId,className:`w-full`,id:`lb-vpc`,children:(0,_.jsx)(i,{placeholder:`Select VPC`})}),(0,_.jsx)(o,{children:b.map(Re)})]})},e[101]=E.vpcId,e[102]=qt,e[103]=b,e[104]=U):U=e[104];let sn;e[105]!==C||e[106]!==U?(sn=(0,_.jsx)(g,{control:C,name:`vpcId`,render:U}),e[105]=C,e[106]=U,e[107]=sn):sn=e[107];let W;e[108]===E.vpcId?W=e[109]:(W=(0,_.jsx)(p,{errors:[E.vpcId]}),e[108]=E.vpcId,e[109]=W);let G;e[110]!==sn||e[111]!==W?(G=(0,_.jsxs)(m,{children:[on,sn,W]}),e[110]=sn,e[111]=W,e[112]=G):G=e[112];let cn;e[113]===Symbol.for(`react.memo_cache_sentinel`)?(cn=(0,_.jsx)(h,{children:`Subnets (select at least 1)`}),e[113]=cn):cn=e[113];let ln=en.length===0?(0,_.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No subnets in the selected VPC.`}):(0,_.jsx)(`div`,{className:`space-y-3`,children:en.map(e=>(0,_.jsxs)(`div`,{children:[(0,_.jsx)(`p`,{className:`mb-1 text-xs font-medium text-muted-foreground`,children:e.az}),(0,_.jsx)(`div`,{className:`space-y-1`,children:e.subnets.map(e=>(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,_.jsx)(`input`,{"aria-label":`Subnet ${ke(e)}`,checked:yt.includes(e.SubnetId??``),onChange:()=>Yt(e.SubnetId??``),type:`checkbox`}),(0,_.jsx)(`span`,{className:`font-mono`,children:ke(e)})]},e.SubnetId))})]},e.az))}),K;e[114]===E.subnetIds?K=e[115]:(K=(0,_.jsx)(p,{errors:[E.subnetIds]}),e[114]=E.subnetIds,e[115]=K);let q;e[116]!==ln||e[117]!==K?(q=(0,_.jsxs)(m,{children:[cn,ln,K]}),e[116]=ln,e[117]=K,e[118]=q):q=e[118];let un=!Ot&&(0,_.jsxs)(m,{children:[(0,_.jsx)(h,{children:`Security groups`}),Rt.length===0?(0,_.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No security groups in the selected VPC.`}):(0,_.jsx)(`div`,{className:`space-y-1`,children:Rt.map(e=>(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,_.jsx)(`input`,{"aria-label":`Security group ${e.GroupId} (${e.GroupName})`,checked:xt.includes(e.GroupId??``),onChange:()=>Zt(e.GroupId??``),type:`checkbox`}),(0,_.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))})]}),dn;e[119]===Symbol.for(`react.memo_cache_sentinel`)?(dn=(0,_.jsx)(h,{children:`Tags`}),e[119]=dn):dn=e[119];let J;if(e[120]!==T||e[121]!==S||e[122]!==w||e[123]!==Dt){let t;e[125]!==T||e[126]!==S||e[127]!==w?(t=(e,t)=>(0,_.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,_.jsx)(u,{placeholder:`Key`,...S(`tags.${t}.key`)}),(0,_.jsx)(u,{placeholder:`Value`,...S(`tags.${t}.value`)}),(0,_.jsx)(ie,{onClick:()=>w(`tags`,T(`tags`).filter((e,n)=>n!==t)),size:`icon`,type:`button`,variant:`ghost`,children:(0,_.jsx)(re,{className:`size-3.5`})})]},t),e[125]=T,e[126]=S,e[127]=w,e[128]=t):t=e[128],J=Dt.map(t),e[120]=T,e[121]=S,e[122]=w,e[123]=Dt,e[124]=J}else J=e[124];let Y;e[129]!==T||e[130]!==w?(Y=()=>w(`tags`,[...T(`tags`),{key:``,value:``}]),e[129]=T,e[130]=w,e[131]=Y):Y=e[131];let fn;e[132]===Symbol.for(`react.memo_cache_sentinel`)?(fn=(0,_.jsx)(ne,{className:`size-3.5`}),e[132]=fn):fn=e[132];let X;e[133]===Y?X=e[134]:(X=(0,_.jsxs)(ie,{onClick:Y,size:`sm`,type:`button`,variant:`outline`,children:[fn,`Add tag`]}),e[133]=Y,e[134]=X);let Z;e[135]!==J||e[136]!==X?(Z=(0,_.jsxs)(m,{children:[dn,(0,_.jsxs)(`div`,{className:`space-y-2`,children:[J,X]})]}),e[135]=J,e[136]=X,e[137]=Z):Z=e[137];let pn;e[138]===Symbol.for(`react.memo_cache_sentinel`)?(pn=(0,_.jsx)(`h2`,{className:`text-sm font-semibold`,children:`First listener & default target group`}),e[138]=pn):pn=e[138];let mn;e[139]===Symbol.for(`react.memo_cache_sentinel`)?(mn=(0,_.jsx)(h,{children:(0,_.jsx)(`label`,{htmlFor:`listener-protocol`,children:`Protocol`})}),e[139]=mn):mn=e[139];let Q;e[140]!==Gt||e[141]!==Mt?(Q=e=>{let{field:t}=e;return(0,_.jsxs)(c,{onValueChange:e=>{e&&Gt(e)},value:t.value,children:[(0,_.jsx)(s,{className:`w-full`,id:`listener-protocol`,children:(0,_.jsx)(i,{})}),(0,_.jsx)(o,{children:Mt.map(Le)})]})},e[140]=Gt,e[141]=Mt,e[142]=Q):Q=e[142];let hn;e[143]!==C||e[144]!==Q?(hn=(0,_.jsxs)(m,{children:[mn,(0,_.jsx)(g,{control:C,name:`listener.protocol`,render:Q})]}),e[143]=C,e[144]=Q,e[145]=hn):hn=e[145];let gn;e[146]===Symbol.for(`react.memo_cache_sentinel`)?(gn=(0,_.jsx)(h,{children:(0,_.jsx)(`label`,{htmlFor:`listener-port`,children:`Port`})}),e[146]=gn):gn=e[146];let _n=!!E.listener?.port,vn;e[147]===S?vn=e[148]:(vn=S(`listener.port`,{valueAsNumber:!0}),e[147]=S,e[148]=vn);let yn;e[149]!==_n||e[150]!==vn?(yn=(0,_.jsx)(u,{"aria-invalid":_n,id:`listener-port`,inputMode:`numeric`,type:`number`,...vn}),e[149]=_n,e[150]=vn,e[151]=yn):yn=e[151];let bn=E.listener?.port,xn;e[152]===bn?xn=e[153]:(xn=(0,_.jsx)(p,{errors:[bn]}),e[152]=bn,e[153]=xn);let Sn;e[154]!==yn||e[155]!==xn?(Sn=(0,_.jsxs)(m,{children:[gn,yn,xn]}),e[154]=yn,e[155]=xn,e[156]=Sn):Sn=e[156];let Cn;e[157]!==Ze||e[158]!==C||e[159]!==E.listener?.certificateArn||e[160]!==At||e[161]!==O||e[162]!==$e?(Cn=At&&(0,_.jsxs)(_.Fragment,{children:[(0,_.jsxs)(m,{children:[(0,_.jsx)(h,{children:(0,_.jsx)(`label`,{htmlFor:`listener-certificate`,children:`Certificate`})}),(0,_.jsx)(g,{control:C,name:`listener.certificateArn`,render:e=>{let{field:t}=e;return(0,_.jsxs)(c,{onValueChange:t.onChange,value:t.value??``,children:[(0,_.jsx)(s,{"aria-invalid":!!E.listener?.certificateArn,className:`w-full`,id:`listener-certificate`,children:(0,_.jsx)(i,{placeholder:`Select certificate`})}),(0,_.jsx)(o,{children:Ze.map(Ie)})]})}}),(0,_.jsx)(p,{errors:[E.listener?.certificateArn]}),(0,_.jsxs)(`div`,{className:`mt-1 flex items-center justify-between`,children:[Ze.length===0&&(0,_.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No certificates imported yet.`}),(0,_.jsx)(ie,{className:`ml-auto`,onClick:()=>We(!0),size:`sm`,type:`button`,variant:`ghost`,children:`Import certificate…`})]})]}),O===`HTTPS`&&(0,_.jsxs)(m,{children:[(0,_.jsx)(h,{children:(0,_.jsx)(`label`,{htmlFor:`listener-ssl-policy`,children:`Security policy`})}),(0,_.jsx)(g,{control:C,name:`listener.sslPolicy`,render:e=>{let{field:t}=e;return(0,_.jsxs)(c,{onValueChange:t.onChange,value:t.value??`ELBSecurityPolicy-2016-08`,children:[(0,_.jsx)(s,{className:`w-full`,id:`listener-ssl-policy`,children:(0,_.jsx)(i,{})}),(0,_.jsx)(o,{children:$e.map(Fe)})]})}})]})]}),e[157]=Ze,e[158]=C,e[159]=E.listener?.certificateArn,e[160]=At,e[161]=O,e[162]=$e,e[163]=Cn):Cn=e[163];let wn;e[164]===Symbol.for(`react.memo_cache_sentinel`)?(wn=(0,_.jsx)(h,{children:`Default target group`}),e[164]=wn):wn=e[164];let Tn;e[165]===C?Tn=e[166]:(Tn=(0,_.jsxs)(m,{children:[wn,(0,_.jsx)(g,{control:C,name:`listener.targetGroupMode`,render:Pe})]}),e[165]=C,e[166]=Tn);let En;e[167]!==C||e[168]!==E.listener?.existingTargetGroupArn||e[169]!==k||e[170]!==Bt?(En=k===`existing`&&(0,_.jsxs)(m,{children:[(0,_.jsx)(h,{children:(0,_.jsx)(`label`,{htmlFor:`tg-existing`,children:`Target group`})}),(0,_.jsx)(g,{control:C,name:`listener.existingTargetGroupArn`,render:e=>{let{field:t}=e;return(0,_.jsxs)(c,{onValueChange:t.onChange,value:t.value??``,children:[(0,_.jsx)(s,{"aria-invalid":!!E.listener?.existingTargetGroupArn,className:`w-full`,id:`tg-existing`,children:(0,_.jsx)(i,{placeholder:`Select target group`})}),(0,_.jsx)(o,{children:Bt.map(Ne)})]})}}),(0,_.jsx)(p,{errors:[E.listener?.existingTargetGroupArn]}),Bt.length===0&&(0,_.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`No target groups in this VPC. Choose “Create new” instead.`})]}),e[167]=C,e[168]=E.listener?.existingTargetGroupArn,e[169]=k,e[170]=Bt,e[171]=En):En=e[171];let Dn;e[172]!==Pt||e[173]!==x||e[174]!==k||e[175]!==b?(Dn=k===`new`&&(0,_.jsx)(`div`,{className:`space-y-4 border-l-2 border-muted pl-4`,children:(0,_.jsx)(ye,{allowedProtocols:Pt,form:x,vpcs:b})}),e[172]=Pt,e[173]=x,e[174]=k,e[175]=b,e[176]=Dn):Dn=e[176];let On;e[177]!==hn||e[178]!==Sn||e[179]!==Cn||e[180]!==Tn||e[181]!==En||e[182]!==Dn?(On=(0,_.jsxs)(`div`,{className:`space-y-4 rounded-md border bg-card p-4`,children:[pn,hn,Sn,Cn,Tn,En,Dn]}),e[177]=hn,e[178]=Sn,e[179]=Cn,e[180]=Tn,e[181]=En,e[182]=Dn,e[183]=On):On=e[183];let kn;e[184]===w?kn=e[185]:(kn=e=>w(`listener.certificateArn`,e,{shouldValidate:!0}),e[184]=w,e[185]=kn);let An;e[186]!==Ue||e[187]!==kn?(An=(0,_.jsx)(ae,{onImported:kn,onOpenChange:We,open:Ue}),e[186]=Ue,e[187]=kn,e[188]=An):An=e[188];let jn;e[189]!==x.watch||e[190]!==mt?(jn=Ve(mt,x.watch),e[189]=x.watch,e[190]=mt,e[191]=jn):jn=e[191];let Mn;e[192]===jn?Mn=e[193]:(Mn=(0,_.jsx)(me,{commands:jn}),e[192]=jn,e[193]=Mn);let Nn;e[194]===t?Nn=e[195]:(Nn=async()=>await t({to:`/ec2/describe-load-balancers`}),e[194]=t,e[195]=Nn);let Pn;e[196]!==gt||e[197]!==Nn||e[198]!==v.isPending?(Pn=(0,_.jsx)(ve,{isPending:v.isPending,isSubmitting:gt,onCancel:Nn,pendingLabel:`Creating…`,submitLabel:`Create Load Balancer`}),e[196]=gt,e[197]=Nn,e[198]=v.isPending,e[199]=Pn):Pn=e[199];let $;e[200]!==F||e[201]!==z||e[202]!==V||e[203]!==H||e[204]!==G||e[205]!==q||e[206]!==un||e[207]!==Z||e[208]!==On||e[209]!==An||e[210]!==Mn||e[211]!==Pn?($=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:F,children:[z,V,H,G,q,un,Z,On,An,Mn,Pn]}),e[200]=F,e[201]=z,e[202]=V,e[203]=H,e[204]=G,e[205]=q,e[206]=un,e[207]=Z,e[208]=On,e[209]=An,e[210]=Mn,e[211]=Pn,e[212]=$):$=e[212];let Fn;return e[213]!==j||e[214]!==M||e[215]!==N||e[216]!==P||e[217]!==$?(Fn=(0,_.jsxs)(_.Fragment,{children:[j,M,N,P,$]}),e[213]=j,e[214]=M,e[215]=N,e[216]=P,e[217]=$,e[218]=Fn):Fn=e[218],Fn}function Ne(e){return(0,_.jsxs)(a,{value:e.TargetGroupArn??``,children:[e.TargetGroupName,` · `,e.Protocol,`:`,e.Port]},e.TargetGroupArn)}function Pe(e){let{field:t}=e;return(0,_.jsxs)(`div`,{className:`flex gap-4`,children:[(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,_.jsx)(`input`,{"aria-label":`Create new target group`,checked:t.value===`new`,name:`tg-mode`,onChange:()=>t.onChange(`new`),type:`radio`}),`Create new`]}),(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,_.jsx)(`input`,{"aria-label":`Use existing target group`,checked:t.value===`existing`,name:`tg-mode`,onChange:()=>t.onChange(`existing`),type:`radio`}),`Use existing`]})]})}function Fe(e){return(0,_.jsx)(a,{value:e.Name??``,children:e.Name},e.Name)}function Ie(e){return(0,_.jsx)(a,{value:e.CertificateArn??``,children:e.DomainName??e.CertificateArn?.split(`/`).pop()},e.CertificateArn)}function Le(e){return(0,_.jsx)(a,{value:e,children:e},e)}function Re(e){return(0,_.jsx)(a,{value:e.VpcId??``,children:Oe(e)},e.VpcId)}function ze(e){let{field:t}=e;return(0,_.jsxs)(`div`,{className:`flex gap-4`,children:[(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,_.jsx)(`input`,{"aria-label":`Internet-facing`,checked:t.value===`internet-facing`,name:`scheme`,onChange:()=>t.onChange(`internet-facing`),type:`radio`}),`Internet-facing`]}),(0,_.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,_.jsx)(`input`,{"aria-label":`Internal`,checked:t.value===`internal`,name:`scheme`,onChange:()=>t.onChange(`internal`),type:`radio`}),`Internal`]})]})}function Be(e,t){return(0,_.jsxs)(`li`,{children:[e.type,`: `,e.id??`(created)`]},t)}function Ve(e,t){let n=t=>{let n=e(t);return typeof n==`string`?n:``},r=t=>{let n=e(t);return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]},ee=t=>{let n=e(t);return typeof n==`number`&&Number.isFinite(n)?n:void 0},te=n(`name`)||``,i=n(`type`)||`application`,a=n(`scheme`)||`internet-facing`,o=r(`subnetIds`),s=r(`securityGroupIds`),c=n(`listener.protocol`)||`HTTP`,ne=ee(`listener.port`)??80,re=n(`listener.certificateArn`),ie=n(`listener.sslPolicy`),ae=n(`listener.targetGroupMode`),oe=n(`listener.existingTargetGroupArn`),l=[],se={type:`comment`,value:i===`network`?`# Create NLB with listener and default target group +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as ee}from"./useNavigate.js";import{$t as te}from"./auth.js";import{c as i,i as a,n as o,s,t as c}from"./select.js";import{t as ne}from"./plus.js";import{t as re}from"./trash-2.js";import{t as ie}from"./button.js";import{t as ae}from"./certificate-import-dialog.js";import{M as oe,O as l,w as se}from"./ec2.js";import{n as ce}from"./elbv2.js";import{o as le,u as ue}from"./elbv22.js";import{$n as u,An as d,Cn as de,Dn as f,En as fe,P as pe,Rn as me,Sn as he,Tn as ge,W as _e,dn as p,hn as m,kn as ve,pn as h,yn as ye}from"./index.js";import{t as be}from"./target-group-form.js";import{a as xe,c as Se,o as Ce,r as we,s as Te,t as Ee}from"./elbv23.js";var De=r(),Oe=t(n(),1),g=e();function ke(e){let t=te(e.Tags);return t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`}function Ae(e){let t=te(e.Tags);return`${t?`${e.SubnetId} (${t})`:e.SubnetId} · ${e.CidrBlock}`}function je(e){return e===`TLS`||e===`TCP`?`TCP`:e===`UDP`?`UDP`:e===`TCP_UDP`?`TCP_UDP`:`HTTP`}function Me(e){let t=new Map;for(let n of e){let e=n.AvailabilityZone??`unknown`,r=t.get(e)??[];r.push(n),t.set(e,r)}return[...t.entries()].toSorted((e,t)=>e[0].localeCompare(t[0])).map(([e,t])=>({az:e,subnets:t}))}function Ne(){let e=(0,De.c)(219),t=ee(),{data:n}=u(oe),{data:r}=u(l),{data:te}=u(se),{data:a}=u(ue),{data:ke}=u(pe),{data:Ne}=u(le),_=ce(),[v,Ue]=(0,Oe.useState)(null),[We,Ge]=(0,Oe.useState)(!1),Ke;e[0]===n.Vpcs?Ke=e[1]:(Ke=n.Vpcs??[],e[0]=n.Vpcs,e[1]=Ke);let y=Ke,qe=r.Subnets??[],Je=te.SecurityGroups??[],Ye;e[2]===a.TargetGroups?Ye=e[3]:(Ye=a.TargetGroups??[],e[2]=a.TargetGroups,e[3]=Ye);let Xe=Ye,Ze;e[4]===ke.CertificateSummaryList?Ze=e[5]:(Ze=ke.CertificateSummaryList??[],e[4]=ke.CertificateSummaryList,e[5]=Ze);let Qe=Ze,$e;e[6]===Ne.SslPolicies?$e=e[7]:($e=Ne.SslPolicies??[],e[6]=Ne.SslPolicies,e[7]=$e);let et=$e,tt;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(tt=fe(we),e[8]=tt):tt=e[8];let nt=y[0]?.VpcId??``,rt,it,at,ot;e[9]===Symbol.for(`react.memo_cache_sentinel`)?(rt=[],it=[],at=[],ot={protocol:`HTTP`,port:80,targetGroupMode:`new`,existingTargetGroupArn:``,certificateArn:void 0,sslPolicy:void 0},e[9]=rt,e[10]=it,e[11]=at,e[12]=ot):(rt=e[9],it=e[10],at=e[11],ot=e[12]);let st;e[13]===nt?st=e[14]:(st={resolver:tt,defaultValues:{name:``,type:`application`,scheme:`internet-facing`,vpcId:nt,subnetIds:rt,securityGroupIds:it,tags:at,listener:ot}},e[13]=nt,e[14]=st);let ct=ve(st),lt;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(lt=fe(xe),e[15]=lt):lt=e[15];let ut=y[0]?.VpcId??``,dt,ft;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(dt={protocol:`HTTP`,path:`/`,port:`traffic-port`,intervalSeconds:30,timeoutSeconds:5,healthyThresholdCount:5,unhealthyThresholdCount:2,matcher:`200`},ft=[],e[16]=dt,e[17]=ft):(dt=e[16],ft=e[17]);let pt;e[18]===ut?pt=e[19]:(pt={resolver:lt,defaultValues:{name:``,protocol:`HTTP`,port:80,vpcId:ut,healthCheck:dt,tags:ft}},e[18]=ut,e[19]=pt);let b=ve(pt),{handleSubmit:mt,register:x,watch:ht,control:S,setValue:C,getValues:w,formState:gt}=ct,{errors:T,isSubmitting:_t}=gt,vt;e[20]===S?vt=e[21]:(vt={control:S,name:`vpcId`},e[20]=S,e[21]=vt);let E=d(vt),yt;e[22]===S?yt=e[23]:(yt={control:S,name:`subnetIds`},e[22]=S,e[23]=yt);let bt=d(yt),xt;e[24]===S?xt=e[25]:(xt={control:S,name:`securityGroupIds`},e[24]=S,e[25]=xt);let St=d(xt),Ct;e[26]===S?Ct=e[27]:(Ct={control:S,name:`type`},e[26]=S,e[27]=Ct);let wt=d(Ct),Tt;e[28]===S?Tt=e[29]:(Tt={control:S,name:`listener.protocol`},e[28]=S,e[29]=Tt);let D=d(Tt),Et;e[30]===S?Et=e[31]:(Et={control:S,name:`listener.targetGroupMode`},e[30]=S,e[31]=Et);let O=d(Et),Dt;e[32]===S?Dt=e[33]:(Dt={control:S,name:`tags`},e[32]=S,e[33]=Dt);let Ot=d(Dt),kt=wt===`network`,At;e[34]===D?At=e[35]:(At=Te(D),e[34]=D,e[35]=At);let jt=At,Mt;e[36]===wt?Mt=e[37]:(Mt=Se(wt),e[36]=wt,e[37]=Mt);let Nt=Mt,Pt;e[38]===kt?Pt=e[39]:(Pt=kt?[`TCP`,`UDP`,`TLS`,`TCP_UDP`]:[`HTTP`,`HTTPS`],e[38]=kt,e[39]=Pt);let Ft=Pt,It;e[40]===E?It=e[41]:(It=e=>e.VpcId===E,e[40]=E,e[41]=It);let Lt=qe.filter(It),Rt;e[42]===E?Rt=e[43]:(Rt=e=>e.VpcId===E,e[42]=E,e[43]=Rt);let zt=Je.filter(Rt),Bt;if(e[44]!==Xe||e[45]!==E){let t;e[47]===E?t=e[48]:(t=e=>e.VpcId===E,e[47]=E,e[48]=t),Bt=Xe.filter(t),e[44]=Xe,e[45]=E,e[46]=Bt}else Bt=e[46];let Vt=Bt,Ht;e[49]===b?Ht=e[50]:(Ht=e=>{let t=je(e);b.setValue(`protocol`,t),b.setValue(`healthCheck.protocol`,t===`HTTP`?`HTTP`:`TCP`)},e[49]=b,e[50]=Ht);let k=Ht,Ut;e[51]!==C||e[52]!==k?(Ut=e=>{C(`type`,e);let t=Ce(e);C(`listener.protocol`,t),C(`listener.port`,80),C(`listener.certificateArn`,void 0),C(`listener.sslPolicy`,void 0),e===`network`&&C(`securityGroupIds`,[]),k(t)},e[51]=C,e[52]=k,e[53]=Ut):Ut=e[53];let Wt=Ut,Gt;e[54]!==w||e[55]!==C||e[56]!==k?(Gt=e=>{C(`listener.protocol`,e);let t=w(`listener.port`);Te(e)?(t===80&&C(`listener.port`,443),e===`HTTPS`&&!w(`listener.sslPolicy`)&&C(`listener.sslPolicy`,Ee)):(t===443&&C(`listener.port`,80),C(`listener.certificateArn`,void 0),C(`listener.sslPolicy`,void 0)),k(e)},e[54]=w,e[55]=C,e[56]=k,e[57]=Gt):Gt=e[57];let Kt=Gt,qt;e[58]!==C||e[59]!==b?(qt=e=>{let t=(e===void 0?``:e)??``;C(`vpcId`,t,{shouldValidate:!0}),C(`subnetIds`,[],{shouldValidate:!0}),C(`securityGroupIds`,[]),C(`listener.existingTargetGroupArn`,``),b.setValue(`vpcId`,t)},e[58]=C,e[59]=b,e[60]=qt):qt=e[60];let Jt=qt,Yt;e[61]!==w||e[62]!==C?(Yt=e=>{let t=w(`subnetIds`),n=t.includes(e)?t.filter(t=>t!==e):[...t,e];C(`subnetIds`,n,{shouldValidate:!0})},e[61]=w,e[62]=C,e[63]=Yt):Yt=e[63];let Xt=Yt,Zt;e[64]!==w||e[65]!==C?(Zt=e=>{let t=w(`securityGroupIds`),n=t.includes(e)?t.filter(t=>t!==e):[...t,e];C(`securityGroupIds`,n)},e[64]=w,e[65]=C,e[66]=Zt):Zt=e[66];let Qt=Zt,$t;e[67]!==t||e[68]!==b||e[69]!==_?($t=async e=>{Ue(null);let n;if(e.listener.targetGroupMode===`new`){if(!await b.trigger())return;n=b.getValues()}let r=await _.mutateAsync({lb:{name:e.name,type:e.type,scheme:e.scheme,vpcId:e.vpcId,subnetIds:e.subnetIds,securityGroupIds:e.securityGroupIds,tags:e.tags},listener:{protocol:e.listener.protocol,port:e.listener.port,targetGroupMode:e.listener.targetGroupMode,existingTargetGroupArn:e.listener.existingTargetGroupArn,certificateArn:e.listener.certificateArn,sslPolicy:e.listener.sslPolicy,newTargetGroup:n}});Ue(r),!r.error&&r.loadBalancerArn&&t({to:`/ec2/describe-load-balancers/$id`,params:{id:encodeURIComponent(r.loadBalancerArn)}})},e[67]=t,e[68]=b,e[69]=_,e[70]=$t):$t=e[70];let en=$t,tn=Me(Lt),A,j;e[71]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,g.jsx)(ge,{to:`/ec2/describe-load-balancers`,children:`Back to load balancers`}),j=(0,g.jsx)(ye,{title:`Create Load Balancer`}),e[71]=A,e[72]=j):(A=e[71],j=e[72]);let M;e[73]===_.error?M=e[74]:(M=_.error&&(0,g.jsx)(he,{error:_.error,msg:`Failed to create load balancer`}),e[73]=_.error,e[74]=M);let N;e[75]===v?N=e[76]:(N=v?.error&&(0,g.jsxs)(`div`,{className:`mb-6 max-w-4xl rounded-md border border-destructive bg-destructive/10 p-4`,children:[(0,g.jsxs)(`h2`,{className:`text-sm font-medium text-destructive`,children:[`Wizard failed: `,v.failedStep]}),(0,g.jsx)(`p`,{className:`mt-1 text-sm text-destructive`,children:v.error.message}),v.created.length>0&&(0,g.jsxs)(`div`,{className:`mt-3`,children:[(0,g.jsx)(`p`,{className:`text-xs font-medium text-destructive`,children:`Successfully created resources (clean up manually if needed):`}),(0,g.jsx)(`ul`,{className:`mt-1 list-inside list-disc text-xs text-destructive`,children:v.created.map(Ve)})]})]}),e[75]=v,e[76]=N);let P;e[77]!==mt||e[78]!==en?(P=mt(en),e[77]=mt,e[78]=en,e[79]=P):P=e[79];let nn;e[80]===Symbol.for(`react.memo_cache_sentinel`)?(nn=(0,g.jsx)(m,{children:(0,g.jsx)(`label`,{htmlFor:`lb-name`,children:`Name`})}),e[80]=nn):nn=e[80];let rn=!!T.name,F;e[81]===x?F=e[82]:(F=x(`name`),e[81]=x,e[82]=F);let I;e[83]!==rn||e[84]!==F?(I=(0,g.jsx)(me,{"aria-invalid":rn,id:`lb-name`,placeholder:`my-load-balancer`,...F}),e[83]=rn,e[84]=F,e[85]=I):I=e[85];let L;e[86]===T.name?L=e[87]:(L=(0,g.jsx)(h,{errors:[T.name]}),e[86]=T.name,e[87]=L);let R;e[88]!==I||e[89]!==L?(R=(0,g.jsxs)(p,{children:[nn,I,L]}),e[88]=I,e[89]=L,e[90]=R):R=e[90];let an;e[91]===Symbol.for(`react.memo_cache_sentinel`)?(an=(0,g.jsx)(m,{children:`Type`}),e[91]=an):an=e[91];let z;e[92]===Wt?z=e[93]:(z=e=>{let{field:t}=e;return(0,g.jsxs)(`div`,{className:`flex gap-4`,children:[(0,g.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,g.jsx)(`input`,{"aria-label":`Application Load Balancer`,checked:t.value===`application`,name:`lb-type`,onChange:()=>Wt(`application`),type:`radio`}),`Application (ALB)`]}),(0,g.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,g.jsx)(`input`,{"aria-label":`Network Load Balancer`,checked:t.value===`network`,name:`lb-type`,onChange:()=>Wt(`network`),type:`radio`}),`Network (NLB)`]})]})},e[92]=Wt,e[93]=z);let B;e[94]!==S||e[95]!==z?(B=(0,g.jsxs)(p,{children:[an,(0,g.jsx)(f,{control:S,name:`type`,render:z})]}),e[94]=S,e[95]=z,e[96]=B):B=e[96];let on;e[97]===Symbol.for(`react.memo_cache_sentinel`)?(on=(0,g.jsx)(m,{children:`Scheme`}),e[97]=on):on=e[97];let V;e[98]===S?V=e[99]:(V=(0,g.jsxs)(p,{children:[on,(0,g.jsx)(f,{control:S,name:`scheme`,render:Be})]}),e[98]=S,e[99]=V);let sn;e[100]===Symbol.for(`react.memo_cache_sentinel`)?(sn=(0,g.jsx)(m,{children:(0,g.jsx)(`label`,{htmlFor:`lb-vpc`,children:`VPC`})}),e[100]=sn):sn=e[100];let cn;e[101]!==T.vpcId||e[102]!==Jt||e[103]!==y?(cn=e=>{let{field:t}=e;return(0,g.jsxs)(c,{onValueChange:e=>Jt(e),value:t.value??``,children:[(0,g.jsx)(s,{"aria-invalid":!!T.vpcId,className:`w-full`,id:`lb-vpc`,children:(0,g.jsx)(i,{placeholder:`Select VPC`})}),(0,g.jsx)(o,{children:y.map(ze)})]})},e[101]=T.vpcId,e[102]=Jt,e[103]=y,e[104]=cn):cn=e[104];let H;e[105]!==S||e[106]!==cn?(H=(0,g.jsx)(f,{control:S,name:`vpcId`,render:cn}),e[105]=S,e[106]=cn,e[107]=H):H=e[107];let U;e[108]===T.vpcId?U=e[109]:(U=(0,g.jsx)(h,{errors:[T.vpcId]}),e[108]=T.vpcId,e[109]=U);let W;e[110]!==H||e[111]!==U?(W=(0,g.jsxs)(p,{children:[sn,H,U]}),e[110]=H,e[111]=U,e[112]=W):W=e[112];let ln;e[113]===Symbol.for(`react.memo_cache_sentinel`)?(ln=(0,g.jsx)(m,{children:`Subnets (select at least 1)`}),e[113]=ln):ln=e[113];let un=tn.length===0?(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No subnets in the selected VPC.`}):(0,g.jsx)(`div`,{className:`space-y-3`,children:tn.map(e=>(0,g.jsxs)(`div`,{children:[(0,g.jsx)(`p`,{className:`mb-1 text-xs font-medium text-muted-foreground`,children:e.az}),(0,g.jsx)(`div`,{className:`space-y-1`,children:e.subnets.map(e=>(0,g.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,g.jsx)(`input`,{"aria-label":`Subnet ${Ae(e)}`,checked:bt.includes(e.SubnetId??``),onChange:()=>Xt(e.SubnetId??``),type:`checkbox`}),(0,g.jsx)(`span`,{className:`font-mono`,children:Ae(e)})]},e.SubnetId))})]},e.az))}),G;e[114]===T.subnetIds?G=e[115]:(G=(0,g.jsx)(h,{errors:[T.subnetIds]}),e[114]=T.subnetIds,e[115]=G);let K;e[116]!==un||e[117]!==G?(K=(0,g.jsxs)(p,{children:[ln,un,G]}),e[116]=un,e[117]=G,e[118]=K):K=e[118];let dn=!kt&&(0,g.jsxs)(p,{children:[(0,g.jsx)(m,{children:`Security groups`}),zt.length===0?(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No security groups in the selected VPC.`}):(0,g.jsx)(`div`,{className:`space-y-1`,children:zt.map(e=>(0,g.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,g.jsx)(`input`,{"aria-label":`Security group ${e.GroupId} (${e.GroupName})`,checked:St.includes(e.GroupId??``),onChange:()=>Qt(e.GroupId??``),type:`checkbox`}),(0,g.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))})]}),fn;e[119]===Symbol.for(`react.memo_cache_sentinel`)?(fn=(0,g.jsx)(m,{children:`Tags`}),e[119]=fn):fn=e[119];let q;if(e[120]!==w||e[121]!==x||e[122]!==C||e[123]!==Ot){let t;e[125]!==w||e[126]!==x||e[127]!==C?(t=(e,t)=>(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(me,{placeholder:`Key`,...x(`tags.${t}.key`)}),(0,g.jsx)(me,{placeholder:`Value`,...x(`tags.${t}.value`)}),(0,g.jsx)(ie,{onClick:()=>C(`tags`,w(`tags`).filter((e,n)=>n!==t)),size:`icon`,type:`button`,variant:`ghost`,children:(0,g.jsx)(re,{className:`size-3.5`})})]},t),e[125]=w,e[126]=x,e[127]=C,e[128]=t):t=e[128],q=Ot.map(t),e[120]=w,e[121]=x,e[122]=C,e[123]=Ot,e[124]=q}else q=e[124];let J;e[129]!==w||e[130]!==C?(J=()=>C(`tags`,[...w(`tags`),{key:``,value:``}]),e[129]=w,e[130]=C,e[131]=J):J=e[131];let pn;e[132]===Symbol.for(`react.memo_cache_sentinel`)?(pn=(0,g.jsx)(ne,{className:`size-3.5`}),e[132]=pn):pn=e[132];let Y;e[133]===J?Y=e[134]:(Y=(0,g.jsxs)(ie,{onClick:J,size:`sm`,type:`button`,variant:`outline`,children:[pn,`Add tag`]}),e[133]=J,e[134]=Y);let X;e[135]!==q||e[136]!==Y?(X=(0,g.jsxs)(p,{children:[fn,(0,g.jsxs)(`div`,{className:`space-y-2`,children:[q,Y]})]}),e[135]=q,e[136]=Y,e[137]=X):X=e[137];let mn;e[138]===Symbol.for(`react.memo_cache_sentinel`)?(mn=(0,g.jsx)(`h2`,{className:`text-sm font-semibold`,children:`First listener & default target group`}),e[138]=mn):mn=e[138];let hn;e[139]===Symbol.for(`react.memo_cache_sentinel`)?(hn=(0,g.jsx)(m,{children:(0,g.jsx)(`label`,{htmlFor:`listener-protocol`,children:`Protocol`})}),e[139]=hn):hn=e[139];let Z;e[140]!==Kt||e[141]!==Nt?(Z=e=>{let{field:t}=e;return(0,g.jsxs)(c,{onValueChange:e=>{e&&Kt(e)},value:t.value,children:[(0,g.jsx)(s,{className:`w-full`,id:`listener-protocol`,children:(0,g.jsx)(i,{})}),(0,g.jsx)(o,{children:Nt.map(Re)})]})},e[140]=Kt,e[141]=Nt,e[142]=Z):Z=e[142];let gn;e[143]!==S||e[144]!==Z?(gn=(0,g.jsxs)(p,{children:[hn,(0,g.jsx)(f,{control:S,name:`listener.protocol`,render:Z})]}),e[143]=S,e[144]=Z,e[145]=gn):gn=e[145];let _n;e[146]===Symbol.for(`react.memo_cache_sentinel`)?(_n=(0,g.jsx)(m,{children:(0,g.jsx)(`label`,{htmlFor:`listener-port`,children:`Port`})}),e[146]=_n):_n=e[146];let vn=!!T.listener?.port,yn;e[147]===x?yn=e[148]:(yn=x(`listener.port`,{valueAsNumber:!0}),e[147]=x,e[148]=yn);let bn;e[149]!==vn||e[150]!==yn?(bn=(0,g.jsx)(me,{"aria-invalid":vn,id:`listener-port`,inputMode:`numeric`,type:`number`,...yn}),e[149]=vn,e[150]=yn,e[151]=bn):bn=e[151];let xn=T.listener?.port,Sn;e[152]===xn?Sn=e[153]:(Sn=(0,g.jsx)(h,{errors:[xn]}),e[152]=xn,e[153]=Sn);let Cn;e[154]!==bn||e[155]!==Sn?(Cn=(0,g.jsxs)(p,{children:[_n,bn,Sn]}),e[154]=bn,e[155]=Sn,e[156]=Cn):Cn=e[156];let wn;e[157]!==Qe||e[158]!==S||e[159]!==T.listener?.certificateArn||e[160]!==jt||e[161]!==D||e[162]!==et?(wn=jt&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsxs)(p,{children:[(0,g.jsx)(m,{children:(0,g.jsx)(`label`,{htmlFor:`listener-certificate`,children:`Certificate`})}),(0,g.jsx)(f,{control:S,name:`listener.certificateArn`,render:e=>{let{field:t}=e;return(0,g.jsxs)(c,{onValueChange:t.onChange,value:t.value??``,children:[(0,g.jsx)(s,{"aria-invalid":!!T.listener?.certificateArn,className:`w-full`,id:`listener-certificate`,children:(0,g.jsx)(i,{placeholder:`Select certificate`})}),(0,g.jsx)(o,{children:Qe.map(Le)})]})}}),(0,g.jsx)(h,{errors:[T.listener?.certificateArn]}),(0,g.jsxs)(`div`,{className:`mt-1 flex items-center justify-between`,children:[Qe.length===0&&(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No certificates imported yet.`}),(0,g.jsx)(ie,{className:`ml-auto`,onClick:()=>Ge(!0),size:`sm`,type:`button`,variant:`ghost`,children:`Import certificate…`})]})]}),D===`HTTPS`&&(0,g.jsxs)(p,{children:[(0,g.jsx)(m,{children:(0,g.jsx)(`label`,{htmlFor:`listener-ssl-policy`,children:`Security policy`})}),(0,g.jsx)(f,{control:S,name:`listener.sslPolicy`,render:e=>{let{field:t}=e;return(0,g.jsxs)(c,{onValueChange:t.onChange,value:t.value??`ELBSecurityPolicy-2016-08`,children:[(0,g.jsx)(s,{className:`w-full`,id:`listener-ssl-policy`,children:(0,g.jsx)(i,{})}),(0,g.jsx)(o,{children:et.map(Ie)})]})}})]})]}),e[157]=Qe,e[158]=S,e[159]=T.listener?.certificateArn,e[160]=jt,e[161]=D,e[162]=et,e[163]=wn):wn=e[163];let Tn;e[164]===Symbol.for(`react.memo_cache_sentinel`)?(Tn=(0,g.jsx)(m,{children:`Default target group`}),e[164]=Tn):Tn=e[164];let En;e[165]===S?En=e[166]:(En=(0,g.jsxs)(p,{children:[Tn,(0,g.jsx)(f,{control:S,name:`listener.targetGroupMode`,render:Fe})]}),e[165]=S,e[166]=En);let Dn;e[167]!==S||e[168]!==T.listener?.existingTargetGroupArn||e[169]!==O||e[170]!==Vt?(Dn=O===`existing`&&(0,g.jsxs)(p,{children:[(0,g.jsx)(m,{children:(0,g.jsx)(`label`,{htmlFor:`tg-existing`,children:`Target group`})}),(0,g.jsx)(f,{control:S,name:`listener.existingTargetGroupArn`,render:e=>{let{field:t}=e;return(0,g.jsxs)(c,{onValueChange:t.onChange,value:t.value??``,children:[(0,g.jsx)(s,{"aria-invalid":!!T.listener?.existingTargetGroupArn,className:`w-full`,id:`tg-existing`,children:(0,g.jsx)(i,{placeholder:`Select target group`})}),(0,g.jsx)(o,{children:Vt.map(Pe)})]})}}),(0,g.jsx)(h,{errors:[T.listener?.existingTargetGroupArn]}),Vt.length===0&&(0,g.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`No target groups in this VPC. Choose “Create new” instead.`})]}),e[167]=S,e[168]=T.listener?.existingTargetGroupArn,e[169]=O,e[170]=Vt,e[171]=Dn):Dn=e[171];let On;e[172]!==Ft||e[173]!==b||e[174]!==O||e[175]!==y?(On=O===`new`&&(0,g.jsx)(`div`,{className:`space-y-4 border-l-2 border-muted pl-4`,children:(0,g.jsx)(be,{allowedProtocols:Ft,form:b,vpcs:y})}),e[172]=Ft,e[173]=b,e[174]=O,e[175]=y,e[176]=On):On=e[176];let kn;e[177]!==gn||e[178]!==Cn||e[179]!==wn||e[180]!==En||e[181]!==Dn||e[182]!==On?(kn=(0,g.jsxs)(`div`,{className:`space-y-4 rounded-md border bg-card p-4`,children:[mn,gn,Cn,wn,En,Dn,On]}),e[177]=gn,e[178]=Cn,e[179]=wn,e[180]=En,e[181]=Dn,e[182]=On,e[183]=kn):kn=e[183];let An;e[184]===C?An=e[185]:(An=e=>C(`listener.certificateArn`,e,{shouldValidate:!0}),e[184]=C,e[185]=An);let jn;e[186]!==We||e[187]!==An?(jn=(0,g.jsx)(ae,{onImported:An,onOpenChange:Ge,open:We}),e[186]=We,e[187]=An,e[188]=jn):jn=e[188];let Mn;e[189]!==b.watch||e[190]!==ht?(Mn=He(ht,b.watch),e[189]=b.watch,e[190]=ht,e[191]=Mn):Mn=e[191];let Nn;e[192]===Mn?Nn=e[193]:(Nn=(0,g.jsx)(de,{commands:Mn}),e[192]=Mn,e[193]=Nn);let Pn;e[194]===t?Pn=e[195]:(Pn=async()=>await t({to:`/ec2/describe-load-balancers`}),e[194]=t,e[195]=Pn);let Q;e[196]!==_t||e[197]!==Pn||e[198]!==_.isPending?(Q=(0,g.jsx)(_e,{isPending:_.isPending,isSubmitting:_t,onCancel:Pn,pendingLabel:`Creating…`,submitLabel:`Create Load Balancer`}),e[196]=_t,e[197]=Pn,e[198]=_.isPending,e[199]=Q):Q=e[199];let $;e[200]!==P||e[201]!==R||e[202]!==B||e[203]!==V||e[204]!==W||e[205]!==K||e[206]!==dn||e[207]!==X||e[208]!==kn||e[209]!==jn||e[210]!==Nn||e[211]!==Q?($=(0,g.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:P,children:[R,B,V,W,K,dn,X,kn,jn,Nn,Q]}),e[200]=P,e[201]=R,e[202]=B,e[203]=V,e[204]=W,e[205]=K,e[206]=dn,e[207]=X,e[208]=kn,e[209]=jn,e[210]=Nn,e[211]=Q,e[212]=$):$=e[212];let Fn;return e[213]!==A||e[214]!==j||e[215]!==M||e[216]!==N||e[217]!==$?(Fn=(0,g.jsxs)(g.Fragment,{children:[A,j,M,N,$]}),e[213]=A,e[214]=j,e[215]=M,e[216]=N,e[217]=$,e[218]=Fn):Fn=e[218],Fn}function Pe(e){return(0,g.jsxs)(a,{value:e.TargetGroupArn??``,children:[e.TargetGroupName,` · `,e.Protocol,`:`,e.Port]},e.TargetGroupArn)}function Fe(e){let{field:t}=e;return(0,g.jsxs)(`div`,{className:`flex gap-4`,children:[(0,g.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,g.jsx)(`input`,{"aria-label":`Create new target group`,checked:t.value===`new`,name:`tg-mode`,onChange:()=>t.onChange(`new`),type:`radio`}),`Create new`]}),(0,g.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,g.jsx)(`input`,{"aria-label":`Use existing target group`,checked:t.value===`existing`,name:`tg-mode`,onChange:()=>t.onChange(`existing`),type:`radio`}),`Use existing`]})]})}function Ie(e){return(0,g.jsx)(a,{value:e.Name??``,children:e.Name},e.Name)}function Le(e){return(0,g.jsx)(a,{value:e.CertificateArn??``,children:e.DomainName??e.CertificateArn?.split(`/`).pop()},e.CertificateArn)}function Re(e){return(0,g.jsx)(a,{value:e,children:e},e)}function ze(e){return(0,g.jsx)(a,{value:e.VpcId??``,children:ke(e)},e.VpcId)}function Be(e){let{field:t}=e;return(0,g.jsxs)(`div`,{className:`flex gap-4`,children:[(0,g.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,g.jsx)(`input`,{"aria-label":`Internet-facing`,checked:t.value===`internet-facing`,name:`scheme`,onChange:()=>t.onChange(`internet-facing`),type:`radio`}),`Internet-facing`]}),(0,g.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,g.jsx)(`input`,{"aria-label":`Internal`,checked:t.value===`internal`,name:`scheme`,onChange:()=>t.onChange(`internal`),type:`radio`}),`Internal`]})]})}function Ve(e,t){return(0,g.jsxs)(`li`,{children:[e.type,`: `,e.id??`(created)`]},t)}function He(e,t){let n=t=>{let n=e(t);return typeof n==`string`?n:``},r=t=>{let n=e(t);return Array.isArray(n)?n.filter(e=>typeof e==`string`):[]},ee=t=>{let n=e(t);return typeof n==`number`&&Number.isFinite(n)?n:void 0},te=n(`name`)||``,i=n(`type`)||`application`,a=n(`scheme`)||`internet-facing`,o=r(`subnetIds`),s=r(`securityGroupIds`),c=n(`listener.protocol`)||`HTTP`,ne=ee(`listener.port`)??80,re=n(`listener.certificateArn`),ie=n(`listener.sslPolicy`),ae=n(`listener.targetGroupMode`),oe=n(`listener.existingTargetGroupArn`),l=[],se={type:`comment`,value:i===`network`?`# Create NLB with listener and default target group `:`# Create ALB with listener and default target group @@ -18,4 +18,4 @@ import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as ee}fr --port`},{type:`value`,value:` ${ne}`}];return(c===`HTTPS`||c===`TLS`)&&re&&(u.push({type:`flag`,value:` \\ --certificates`},{type:`value`,value:` CertificateArn=${re}`}),c===`HTTPS`&&ie&&u.push({type:`flag`,value:` \\ --ssl-policy`},{type:`value`,value:` ${ie}`})),u.push({type:`flag`,value:` \\ - --default-actions`},{type:`value`,value:` Type=forward,TargetGroupArn="$TG_ARN"`}),l.push({label:`Create Listener`,parts:u}),l}var v=Me;export{v as component}; \ No newline at end of file + --default-actions`},{type:`value`,value:` Type=forward,TargetGroupArn="$TG_ARN"`}),l.push({label:`Create Listener`,parts:u}),l}var _=Ne;export{_ as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-nat-gateway.js b/spinifex/services/spinifexui/frontend/dist/assets/create-nat-gateway.js index 9f95612bd..190040d6b 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-nat-gateway.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-nat-gateway.js @@ -1,4 +1,4 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./useNavigate.js";import{$t as i}from"./auth.js";import{c as a,i as o,n as s,s as c,t as ee}from"./select.js";import{O as te,n as ne}from"./ec2.js";import{H as re,Ln as ie,Sn as ae,Xn as oe,_n as se,an as ce,dn as le,hn as ue,ht as de,mn as fe,rn as l,sn as u,vn as pe,xn as me,yn as he}from"./index.js";import{t as ge}from"./form-actions.js";var _e=t(),d=e();function f(){let e=(0,_e.c)(70),t=r(),{data:i}=oe(te),{data:o}=oe(ne),f=de(),p;e[0]===i.Subnets?p=e[1]:(p=i.Subnets??[],e[0]=i.Subnets,e[1]=p);let m=p,h;e[2]===m?h=e[3]:(h=m.filter(xe),e[2]=m,e[3]=h);let Ce=h,g=Ce.length>0?Ce:m,_;e[4]===o.Addresses?_=e[5]:(_=o.Addresses??[],e[4]=o.Addresses,e[5]=_);let v;e[6]===_?v=e[7]:(v=_.filter(be),e[6]=_,e[7]=v);let y=v,b;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:pe(re),defaultValues:{subnetId:``,allocationId:``,name:``}},e[8]=b):b=e[8];let{control:x,handleSubmit:S,register:C,formState:we}=me(b),{errors:w,isSubmitting:T}=we,E;e[9]===x?E=e[10]:(E={control:x},e[9]=x,e[10]=E);let D=ae(E),O;e[11]===D?O=e[12]:(O=e=>e?D[e]:void 0,e[11]=D,e[12]=O);let k=O,A;e[13]!==f||e[14]!==t?(A=async e=>{let n=(await f.mutateAsync({subnetId:e.subnetId,allocationId:e.allocationId,name:e.name?.trim()??void 0})).NatGateway?.NatGatewayId;t(n?{to:`/ec2/describe-nat-gateways/$id`,params:{id:n}}:{to:`/ec2/describe-nat-gateways`})},e[13]=f,e[14]=t,e[15]=A):A=e[15];let j=A,M,N;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,d.jsx)(se,{to:`/ec2/describe-nat-gateways`,children:`Back to NAT Gateways`}),M=(0,d.jsx)(le,{title:`Create NAT Gateway`}),e[16]=M,e[17]=N):(M=e[16],N=e[17]);let P;e[18]===f.error?P=e[19]:(P=f.error&&(0,d.jsx)(fe,{error:f.error,msg:`Failed to create NAT Gateway`}),e[18]=f.error,e[19]=P);let F;e[20]!==S||e[21]!==j?(F=S(j),e[20]=S,e[21]=j,e[22]=F):F=e[22];let I;e[23]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`name`,children:`Name (optional)`})}),e[23]=I):I=e[23];let L;e[24]===C?L=e[25]:(L=C(`name`),e[24]=C,e[25]=L);let R;e[26]===L?R=e[27]:(R=(0,d.jsxs)(l,{children:[I,(0,d.jsx)(ie,{id:`name`,placeholder:`my-nat-gateway`,...L})]}),e[26]=L,e[27]=R);let z;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`subnetId`,children:`Public subnet`})}),e[28]=z):z=e[28];let B;e[29]!==w.subnetId||e[30]!==g?(B=e=>{let{field:t}=e;return(0,d.jsxs)(ee,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,d.jsx)(c,{"aria-invalid":!!w.subnetId,className:`w-full`,id:`subnetId`,children:(0,d.jsx)(a,{placeholder:`Select a public subnet`})}),(0,d.jsx)(s,{children:g.map(ye)})]})},e[29]=w.subnetId,e[30]=g,e[31]=B):B=e[31];let V;e[32]!==x||e[33]!==B?(V=(0,d.jsx)(he,{control:x,name:`subnetId`,render:B}),e[32]=x,e[33]=B,e[34]=V):V=e[34];let H;e[35]===w.subnetId?H=e[36]:(H=(0,d.jsx)(ce,{errors:[w.subnetId]}),e[35]=w.subnetId,e[36]=H);let U;e[37]!==V||e[38]!==H?(U=(0,d.jsxs)(l,{children:[z,V,H]}),e[37]=V,e[38]=H,e[39]=U):U=e[39];let W;e[40]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`allocationId`,children:`Elastic IP`})}),e[40]=W):W=e[40];let G;e[41]!==y||e[42]!==x||e[43]!==w.allocationId?(G=y.length>0?(0,d.jsx)(he,{control:x,name:`allocationId`,render:e=>{let{field:t}=e;return(0,d.jsxs)(ee,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,d.jsx)(c,{"aria-invalid":!!w.allocationId,className:`w-full`,id:`allocationId`,children:(0,d.jsx)(a,{placeholder:`Select an Elastic IP`})}),(0,d.jsx)(s,{children:y.map(ve)})]})}}):(0,d.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`No available Elastic IPs.`,` `,(0,d.jsx)(n,{className:`text-primary hover:underline`,to:`/ec2/allocate-address`,children:`Allocate one`}),` `,`first.`]}),e[41]=y,e[42]=x,e[43]=w.allocationId,e[44]=G):G=e[44];let K;e[45]===w.allocationId?K=e[46]:(K=(0,d.jsx)(ce,{errors:[w.allocationId]}),e[45]=w.allocationId,e[46]=K);let q;e[47]!==G||e[48]!==K?(q=(0,d.jsxs)(l,{children:[W,G,K]}),e[47]=G,e[48]=K,e[49]=q):q=e[49];let J;e[50]===k?J=e[51]:(J=Se(k),e[50]=k,e[51]=J);let Y;e[52]===J?Y=e[53]:(Y=(0,d.jsx)(ue,{commands:J}),e[52]=J,e[53]=Y);let X;e[54]===t?X=e[55]:(X=async()=>await t({to:`/ec2/describe-nat-gateways`}),e[54]=t,e[55]=X);let Z;e[56]!==f.isPending||e[57]!==T||e[58]!==X?(Z=(0,d.jsx)(ge,{isPending:f.isPending,isSubmitting:T,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create NAT Gateway`}),e[56]=f.isPending,e[57]=T,e[58]=X,e[59]=Z):Z=e[59];let Q;e[60]!==F||e[61]!==R||e[62]!==U||e[63]!==q||e[64]!==Y||e[65]!==Z?(Q=(0,d.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:F,children:[R,U,q,Y,Z]}),e[60]=F,e[61]=R,e[62]=U,e[63]=q,e[64]=Y,e[65]=Z,e[66]=Q):Q=e[66];let $;return e[67]!==P||e[68]!==Q?($=(0,d.jsxs)(d.Fragment,{children:[N,M,P,Q]}),e[67]=P,e[68]=Q,e[69]=$):$=e[69],$}function ve(e){return(0,d.jsx)(o,{value:e.AllocationId??``,children:`${e.AllocationId} (${e.PublicIp})`},e.AllocationId)}function ye(e){let t=i(e.Tags);return(0,d.jsx)(o,{value:e.SubnetId??``,children:t?`${e.SubnetId} (${t})`:`${e.SubnetId} (${e.CidrBlock})`},e.SubnetId)}function be(e){return!e.AssociationId}function xe(e){return e.MapPublicIpOnLaunch}function Se(e){let t=e(`subnetId`),n=typeof t==`string`?t:``,r=e(`allocationId`),i=typeof r==`string`?r:``,a=e(`name`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-nat-gateway`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./useNavigate.js";import{$t as i}from"./auth.js";import{c as a,i as o,n as s,s as ee,t as te}from"./select.js";import{O as ne,n as re}from"./ec2.js";import{$n as ie,An as ae,Cn as oe,Ct as se,Dn as ce,En as le,Rn as ue,Sn as de,Tn as fe,W as pe,Z as me,dn as c,hn as l,kn as he,pn as ge,yn as _e}from"./index.js";var ve=t(),u=e();function d(){let e=(0,ve.c)(70),t=r(),{data:i}=ie(ne),{data:o}=ie(re),d=se(),f;e[0]===i.Subnets?f=e[1]:(f=i.Subnets??[],e[0]=i.Subnets,e[1]=f);let p=f,m;e[2]===p?m=e[3]:(m=p.filter(Se),e[2]=p,e[3]=m);let h=m,g=h.length>0?h:p,_;e[4]===o.Addresses?_=e[5]:(_=o.Addresses??[],e[4]=o.Addresses,e[5]=_);let v;e[6]===_?v=e[7]:(v=_.filter(xe),e[6]=_,e[7]=v);let y=v,b;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:le(me),defaultValues:{subnetId:``,allocationId:``,name:``}},e[8]=b):b=e[8];let{control:x,handleSubmit:S,register:C,formState:we}=he(b),{errors:w,isSubmitting:T}=we,E;e[9]===x?E=e[10]:(E={control:x},e[9]=x,e[10]=E);let D=ae(E),O;e[11]===D?O=e[12]:(O=e=>e?D[e]:void 0,e[11]=D,e[12]=O);let k=O,A;e[13]!==d||e[14]!==t?(A=async e=>{let n=(await d.mutateAsync({subnetId:e.subnetId,allocationId:e.allocationId,name:e.name?.trim()??void 0})).NatGateway?.NatGatewayId;t(n?{to:`/ec2/describe-nat-gateways/$id`,params:{id:n}}:{to:`/ec2/describe-nat-gateways`})},e[13]=d,e[14]=t,e[15]=A):A=e[15];let j=A,M,N;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,u.jsx)(fe,{to:`/ec2/describe-nat-gateways`,children:`Back to NAT Gateways`}),M=(0,u.jsx)(_e,{title:`Create NAT Gateway`}),e[16]=M,e[17]=N):(M=e[16],N=e[17]);let P;e[18]===d.error?P=e[19]:(P=d.error&&(0,u.jsx)(de,{error:d.error,msg:`Failed to create NAT Gateway`}),e[18]=d.error,e[19]=P);let F;e[20]!==S||e[21]!==j?(F=S(j),e[20]=S,e[21]=j,e[22]=F):F=e[22];let I;e[23]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,u.jsx)(l,{children:(0,u.jsx)(`label`,{htmlFor:`name`,children:`Name (optional)`})}),e[23]=I):I=e[23];let L;e[24]===C?L=e[25]:(L=C(`name`),e[24]=C,e[25]=L);let R;e[26]===L?R=e[27]:(R=(0,u.jsxs)(c,{children:[I,(0,u.jsx)(ue,{id:`name`,placeholder:`my-nat-gateway`,...L})]}),e[26]=L,e[27]=R);let z;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(z=(0,u.jsx)(l,{children:(0,u.jsx)(`label`,{htmlFor:`subnetId`,children:`Public subnet`})}),e[28]=z):z=e[28];let B;e[29]!==w.subnetId||e[30]!==g?(B=e=>{let{field:t}=e;return(0,u.jsxs)(te,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,u.jsx)(ee,{"aria-invalid":!!w.subnetId,className:`w-full`,id:`subnetId`,children:(0,u.jsx)(a,{placeholder:`Select a public subnet`})}),(0,u.jsx)(s,{children:g.map(be)})]})},e[29]=w.subnetId,e[30]=g,e[31]=B):B=e[31];let V;e[32]!==x||e[33]!==B?(V=(0,u.jsx)(ce,{control:x,name:`subnetId`,render:B}),e[32]=x,e[33]=B,e[34]=V):V=e[34];let H;e[35]===w.subnetId?H=e[36]:(H=(0,u.jsx)(ge,{errors:[w.subnetId]}),e[35]=w.subnetId,e[36]=H);let U;e[37]!==V||e[38]!==H?(U=(0,u.jsxs)(c,{children:[z,V,H]}),e[37]=V,e[38]=H,e[39]=U):U=e[39];let W;e[40]===Symbol.for(`react.memo_cache_sentinel`)?(W=(0,u.jsx)(l,{children:(0,u.jsx)(`label`,{htmlFor:`allocationId`,children:`Elastic IP`})}),e[40]=W):W=e[40];let G;e[41]!==y||e[42]!==x||e[43]!==w.allocationId?(G=y.length>0?(0,u.jsx)(ce,{control:x,name:`allocationId`,render:e=>{let{field:t}=e;return(0,u.jsxs)(te,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,u.jsx)(ee,{"aria-invalid":!!w.allocationId,className:`w-full`,id:`allocationId`,children:(0,u.jsx)(a,{placeholder:`Select an Elastic IP`})}),(0,u.jsx)(s,{children:y.map(ye)})]})}}):(0,u.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`No available Elastic IPs.`,` `,(0,u.jsx)(n,{className:`text-primary hover:underline`,to:`/ec2/allocate-address`,children:`Allocate one`}),` `,`first.`]}),e[41]=y,e[42]=x,e[43]=w.allocationId,e[44]=G):G=e[44];let K;e[45]===w.allocationId?K=e[46]:(K=(0,u.jsx)(ge,{errors:[w.allocationId]}),e[45]=w.allocationId,e[46]=K);let q;e[47]!==G||e[48]!==K?(q=(0,u.jsxs)(c,{children:[W,G,K]}),e[47]=G,e[48]=K,e[49]=q):q=e[49];let J;e[50]===k?J=e[51]:(J=Ce(k),e[50]=k,e[51]=J);let Y;e[52]===J?Y=e[53]:(Y=(0,u.jsx)(oe,{commands:J}),e[52]=J,e[53]=Y);let X;e[54]===t?X=e[55]:(X=async()=>await t({to:`/ec2/describe-nat-gateways`}),e[54]=t,e[55]=X);let Z;e[56]!==d.isPending||e[57]!==T||e[58]!==X?(Z=(0,u.jsx)(pe,{isPending:d.isPending,isSubmitting:T,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create NAT Gateway`}),e[56]=d.isPending,e[57]=T,e[58]=X,e[59]=Z):Z=e[59];let Q;e[60]!==F||e[61]!==R||e[62]!==U||e[63]!==q||e[64]!==Y||e[65]!==Z?(Q=(0,u.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:F,children:[R,U,q,Y,Z]}),e[60]=F,e[61]=R,e[62]=U,e[63]=q,e[64]=Y,e[65]=Z,e[66]=Q):Q=e[66];let $;return e[67]!==P||e[68]!==Q?($=(0,u.jsxs)(u.Fragment,{children:[N,M,P,Q]}),e[67]=P,e[68]=Q,e[69]=$):$=e[69],$}function ye(e){return(0,u.jsx)(o,{value:e.AllocationId??``,children:`${e.AllocationId} (${e.PublicIp})`},e.AllocationId)}function be(e){let t=i(e.Tags);return(0,u.jsx)(o,{value:e.SubnetId??``,children:t?`${e.SubnetId} (${t})`:`${e.SubnetId} (${e.CidrBlock})`},e.SubnetId)}function xe(e){return!e.AssociationId}function Se(e){return e.MapPublicIpOnLaunch}function Ce(e){let t=e(`subnetId`),n=typeof t==`string`?t:``,r=e(`allocationId`),i=typeof r==`string`?r:``,a=e(`name`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-nat-gateway`},{type:`flag`,value:` \\ --subnet-id`},{type:`value`,value:` ${n||``}`},{type:`flag`,value:` \\ --allocation-id`},{type:`value`,value:` ${i||``}`}];return o.trim()&&s.push({type:`flag`,value:` \\ - --tag-specifications`},{type:`value`,value:` 'ResourceType=natgateway,Tags=[{Key=Name,Value=${o.trim()}}]'`}),[{label:`Create NAT Gateway`,parts:s}]}export{f as component}; \ No newline at end of file + --tag-specifications`},{type:`value`,value:` 'ResourceType=natgateway,Tags=[{Key=Name,Value=${o.trim()}}]'`}),[{label:`Create NAT Gateway`,parts:s}]}export{d as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-placement-group.js b/spinifex/services/spinifexui/frontend/dist/assets/create-placement-group.js index 92c293024..d09b0b055 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-placement-group.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-placement-group.js @@ -1,3 +1,3 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as r,i,n as a,s as ee,t as o}from"./select.js";import{Ln as te,Sn as ne,U as re,_n as s,an as c,dn as l,gt as u,hn as d,mn as f,rn as p,sn as m,vn as h,xn as g,yn as _}from"./index.js";import{t as v}from"./form-actions.js";var ie=t(),y=e();function b(){let e=(0,ie.c)(56),t=n(),b=u(),x;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(x={resolver:h(re),defaultValues:{groupName:``,strategy:`spread`}},e[0]=x):x=e[0];let{control:S,handleSubmit:C,register:w,formState:oe}=g(x),{errors:T,isSubmitting:E}=oe,D;e[1]===S?D=e[2]:(D={control:S},e[1]=S,e[2]=D);let O=ne(D),k;e[3]===O?k=e[4]:(k=e=>e?O[e]:void 0,e[3]=O,e[4]=k);let A=k,j;e[5]!==b||e[6]!==t?(j=async e=>{let n=await b.mutateAsync(e);t({to:`/ec2/describe-placement-groups/$id`,params:{id:n.PlacementGroup?.GroupId??``}})},e[5]=b,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,y.jsx)(s,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),P=(0,y.jsx)(l,{title:`Create Placement Group`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===b.error?F=e[11]:(F=b.error&&(0,y.jsx)(f,{error:b.error,msg:`Failed to create placement group`}),e[10]=b.error,e[11]=F);let I;e[12]!==C||e[13]!==M?(I=C(M),e[12]=C,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,y.jsx)(m,{children:(0,y.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[15]=L):L=e[15];let R=!!T.groupName,z;e[16]===w?z=e[17]:(z=w(`groupName`),e[16]=w,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,y.jsx)(te,{"aria-invalid":R,id:`groupName`,placeholder:`my-placement-group`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===T.groupName?V=e[22]:(V=(0,y.jsx)(c,{errors:[T.groupName]}),e[21]=T.groupName,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,y.jsxs)(p,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,y.jsx)(m,{children:(0,y.jsx)(`label`,{htmlFor:`strategy`,children:`Strategy`})}),e[26]=U):U=e[26];let W;e[27]===T.strategy?W=e[28]:(W=e=>{let{field:t}=e;return(0,y.jsxs)(o,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,y.jsx)(ee,{"aria-invalid":!!T.strategy,className:`w-full`,id:`strategy`,children:(0,y.jsx)(r,{})}),(0,y.jsxs)(a,{children:[(0,y.jsx)(i,{value:`spread`,children:`spread`}),(0,y.jsx)(i,{value:`cluster`,children:`cluster`})]})]})},e[27]=T.strategy,e[28]=W);let G;e[29]!==S||e[30]!==W?(G=(0,y.jsx)(_,{control:S,name:`strategy`,render:W}),e[29]=S,e[30]=W,e[31]=G):G=e[31];let K;e[32]===T.strategy?K=e[33]:(K=(0,y.jsx)(c,{errors:[T.strategy]}),e[32]=T.strategy,e[33]=K);let q;e[34]!==G||e[35]!==K?(q=(0,y.jsxs)(p,{children:[U,G,K]}),e[34]=G,e[35]=K,e[36]=q):q=e[36];let J;e[37]===A?J=e[38]:(J=ae(A),e[37]=A,e[38]=J);let Y;e[39]===J?Y=e[40]:(Y=(0,y.jsx)(d,{commands:J}),e[39]=J,e[40]=Y);let X;e[41]===t?X=e[42]:(X=async()=>await t({to:`/ec2/describe-placement-groups`}),e[41]=t,e[42]=X);let Z;e[43]!==b.isPending||e[44]!==E||e[45]!==X?(Z=(0,y.jsx)(v,{isPending:b.isPending,isSubmitting:E,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Placement Group`}),e[43]=b.isPending,e[44]=E,e[45]=X,e[46]=Z):Z=e[46];let Q;e[47]!==H||e[48]!==q||e[49]!==Y||e[50]!==Z||e[51]!==I?(Q=(0,y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[47]=H,e[48]=q,e[49]=Y,e[50]=Z,e[51]=I,e[52]=Q):Q=e[52];let $;return e[53]!==Q||e[54]!==F?($=(0,y.jsxs)(y.Fragment,{children:[N,P,F,Q]}),e[53]=Q,e[54]=F,e[55]=$):$=e[55],$}function x(e){return`'${e.replaceAll(`'`,`'"'"'`)}'`}function ae(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`strategy`),i=typeof r==`string`?r:``;return[{label:`Create Placement Group`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-placement-group`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as r,i,n as a,s as ee,t as o}from"./select.js";import{An as te,Cn as ne,Dn as re,En as s,Q as c,Rn as l,Sn as u,Tn as d,W as f,dn as p,hn as m,kn as h,pn as g,wt as _,yn as v}from"./index.js";var ie=t(),y=e();function b(){let e=(0,ie.c)(56),t=n(),b=_(),x;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(x={resolver:s(c),defaultValues:{groupName:``,strategy:`spread`}},e[0]=x):x=e[0];let{control:S,handleSubmit:C,register:w,formState:oe}=h(x),{errors:T,isSubmitting:E}=oe,D;e[1]===S?D=e[2]:(D={control:S},e[1]=S,e[2]=D);let O=te(D),k;e[3]===O?k=e[4]:(k=e=>e?O[e]:void 0,e[3]=O,e[4]=k);let A=k,j;e[5]!==b||e[6]!==t?(j=async e=>{let n=await b.mutateAsync(e);t({to:`/ec2/describe-placement-groups/$id`,params:{id:n.PlacementGroup?.GroupId??``}})},e[5]=b,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,y.jsx)(d,{to:`/ec2/describe-placement-groups`,children:`Back to placement groups`}),P=(0,y.jsx)(v,{title:`Create Placement Group`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===b.error?F=e[11]:(F=b.error&&(0,y.jsx)(u,{error:b.error,msg:`Failed to create placement group`}),e[10]=b.error,e[11]=F);let I;e[12]!==C||e[13]!==M?(I=C(M),e[12]=C,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,y.jsx)(m,{children:(0,y.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[15]=L):L=e[15];let R=!!T.groupName,z;e[16]===w?z=e[17]:(z=w(`groupName`),e[16]=w,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,y.jsx)(l,{"aria-invalid":R,id:`groupName`,placeholder:`my-placement-group`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===T.groupName?V=e[22]:(V=(0,y.jsx)(g,{errors:[T.groupName]}),e[21]=T.groupName,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,y.jsxs)(p,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,y.jsx)(m,{children:(0,y.jsx)(`label`,{htmlFor:`strategy`,children:`Strategy`})}),e[26]=U):U=e[26];let W;e[27]===T.strategy?W=e[28]:(W=e=>{let{field:t}=e;return(0,y.jsxs)(o,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,y.jsx)(ee,{"aria-invalid":!!T.strategy,className:`w-full`,id:`strategy`,children:(0,y.jsx)(r,{})}),(0,y.jsxs)(a,{children:[(0,y.jsx)(i,{value:`spread`,children:`spread`}),(0,y.jsx)(i,{value:`cluster`,children:`cluster`})]})]})},e[27]=T.strategy,e[28]=W);let G;e[29]!==S||e[30]!==W?(G=(0,y.jsx)(re,{control:S,name:`strategy`,render:W}),e[29]=S,e[30]=W,e[31]=G):G=e[31];let K;e[32]===T.strategy?K=e[33]:(K=(0,y.jsx)(g,{errors:[T.strategy]}),e[32]=T.strategy,e[33]=K);let q;e[34]!==G||e[35]!==K?(q=(0,y.jsxs)(p,{children:[U,G,K]}),e[34]=G,e[35]=K,e[36]=q):q=e[36];let J;e[37]===A?J=e[38]:(J=ae(A),e[37]=A,e[38]=J);let Y;e[39]===J?Y=e[40]:(Y=(0,y.jsx)(ne,{commands:J}),e[39]=J,e[40]=Y);let X;e[41]===t?X=e[42]:(X=async()=>await t({to:`/ec2/describe-placement-groups`}),e[41]=t,e[42]=X);let Z;e[43]!==b.isPending||e[44]!==E||e[45]!==X?(Z=(0,y.jsx)(f,{isPending:b.isPending,isSubmitting:E,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Placement Group`}),e[43]=b.isPending,e[44]=E,e[45]=X,e[46]=Z):Z=e[46];let Q;e[47]!==H||e[48]!==q||e[49]!==Y||e[50]!==Z||e[51]!==I?(Q=(0,y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[47]=H,e[48]=q,e[49]=Y,e[50]=Z,e[51]=I,e[52]=Q):Q=e[52];let $;return e[53]!==Q||e[54]!==F?($=(0,y.jsxs)(y.Fragment,{children:[N,P,F,Q]}),e[53]=Q,e[54]=F,e[55]=$):$=e[55],$}function x(e){return`'${e.replaceAll(`'`,`'"'"'`)}'`}function ae(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`strategy`),i=typeof r==`string`?r:``;return[{label:`Create Placement Group`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-placement-group`},{type:`flag`,value:` \\ --group-name`},{type:`value`,value:` ${n?x(n):``}`},{type:`flag`,value:` \\ --strategy`},{type:`value`,value:` ${i||`spread`}`}]}]}export{b as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-policy.js b/spinifex/services/spinifexui/frontend/dist/assets/create-policy.js index e0ebcee8b..14b97253e 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-policy.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-policy.js @@ -1,4 +1,4 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{l as r}from"./iam.js";import{Ln as i,Sn as a,_n as o,an as s,dn as c,hn as l,mn as ee,rn as u,sn as d,vn as te,xn as ne,yn as re}from"./index.js";import{t as ie}from"./form-actions.js";import{t as ae}from"./json-editor.js";import{i as oe}from"./iam3.js";var se=t(),f=e(),p=JSON.stringify({Version:`2012-10-17`,Statement:[{Effect:`Allow`,Action:`*`,Resource:`*`}]},null,2);function m(){let e=(0,se.c)(67),t=n(),m=r(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g={resolver:te(oe),defaultValues:{policyDocument:p}},e[0]=g):g=e[0];let{handleSubmit:_,register:v,control:y,formState:ce}=ne(g),{errors:b,isSubmitting:x}=ce,S;e[1]===y?S=e[2]:(S={control:y},e[1]=y,e[2]=S);let C=a(S),w;e[3]===C?w=e[4]:(w=e=>e?C[e]:void 0,e[3]=C,e[4]=w);let T=w,E;e[5]!==m||e[6]!==t?(E=async e=>{await m.mutateAsync(e),t({to:`/iam/list-policies`})},e[5]=m,e[6]=t,e[7]=E):E=e[7];let D=E,O,k;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,f.jsx)(o,{to:`/iam/list-policies`,children:`Back to policies`}),k=(0,f.jsx)(c,{title:`Create Policy`}),e[8]=O,e[9]=k):(O=e[8],k=e[9]);let A;e[10]===m.error?A=e[11]:(A=m.error&&(0,f.jsx)(ee,{error:m.error,msg:`Failed to create policy`}),e[10]=m.error,e[11]=A);let j;e[12]!==_||e[13]!==D?(j=_(D),e[12]=_,e[13]=D,e[14]=j):j=e[14];let M;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`policyName`,children:`Policy Name`})}),e[15]=M):M=e[15];let N=!!b.policyName,P;e[16]===v?P=e[17]:(P=v(`policyName`),e[16]=v,e[17]=P);let F;e[18]!==N||e[19]!==P?(F=(0,f.jsx)(i,{"aria-invalid":N,id:`policyName`,placeholder:`my-policy...`,...P}),e[18]=N,e[19]=P,e[20]=F):F=e[20];let I;e[21]===b.policyName?I=e[22]:(I=(0,f.jsx)(s,{errors:[b.policyName]}),e[21]=b.policyName,e[22]=I);let L;e[23]!==F||e[24]!==I?(L=(0,f.jsxs)(u,{children:[M,F,I]}),e[23]=F,e[24]=I,e[25]=L):L=e[25];let R;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`description`,children:`Description (optional)`})}),e[26]=R):R=e[26];let z;e[27]===v?z=e[28]:(z=v(`description`),e[27]=v,e[28]=z);let B;e[29]===z?B=e[30]:(B=(0,f.jsx)(i,{id:`description`,placeholder:`A brief description of this policy...`,...z}),e[29]=z,e[30]=B);let V;e[31]===b.description?V=e[32]:(V=(0,f.jsx)(s,{errors:[b.description]}),e[31]=b.description,e[32]=V);let H;e[33]!==B||e[34]!==V?(H=(0,f.jsxs)(u,{children:[R,B,V]}),e[33]=B,e[34]=V,e[35]=H):H=e[35];let U;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`policyDocument`,children:`Policy Document (JSON)`})}),e[36]=U):U=e[36];let W;e[37]===b.policyDocument?W=e[38]:(W=e=>{let{field:t}=e,{onBlur:n,onChange:r,ref:i,value:a}=t;return(0,f.jsx)(ae,{error:!!b.policyDocument,id:`policyDocument`,onBlur:n,onChange:r,ref:i,rows:15,value:a})},e[37]=b.policyDocument,e[38]=W);let G;e[39]!==y||e[40]!==W?(G=(0,f.jsx)(re,{control:y,name:`policyDocument`,render:W}),e[39]=y,e[40]=W,e[41]=G):G=e[41];let K;e[42]===b.policyDocument?K=e[43]:(K=(0,f.jsx)(s,{errors:[b.policyDocument]}),e[42]=b.policyDocument,e[43]=K);let q;e[44]!==G||e[45]!==K?(q=(0,f.jsxs)(u,{children:[U,G,K]}),e[44]=G,e[45]=K,e[46]=q):q=e[46];let J;e[47]===T?J=e[48]:(J=h(T),e[47]=T,e[48]=J);let Y;e[49]===J?Y=e[50]:(Y=(0,f.jsx)(l,{commands:J}),e[49]=J,e[50]=Y);let X;e[51]===t?X=e[52]:(X=async()=>await t({to:`/iam/list-policies`}),e[51]=t,e[52]=X);let Z;e[53]!==m.isPending||e[54]!==x||e[55]!==X?(Z=(0,f.jsx)(ie,{isPending:m.isPending,isSubmitting:x,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create Policy`}),e[53]=m.isPending,e[54]=x,e[55]=X,e[56]=Z):Z=e[56];let Q;e[57]!==L||e[58]!==H||e[59]!==q||e[60]!==Y||e[61]!==Z||e[62]!==j?(Q=(0,f.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:j,children:[L,H,q,Y,Z]}),e[57]=L,e[58]=H,e[59]=q,e[60]=Y,e[61]=Z,e[62]=j,e[63]=Q):Q=e[63];let $;return e[64]!==Q||e[65]!==A?($=(0,f.jsxs)(f.Fragment,{children:[O,k,A,Q]}),e[64]=Q,e[65]=A,e[66]=$):$=e[66],$}function h(e){let t=e(`policyName`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=e(`policyDocument`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-policy`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{l as r}from"./iam.js";import{An as i,Cn as a,Dn as o,En as s,Rn as c,Sn as ee,Tn as te,W as ne,dn as l,hn as u,kn as re,pn as d,yn as ie}from"./index.js";import{t as ae}from"./json-editor.js";import{i as oe}from"./iam3.js";var se=t(),f=e(),p=JSON.stringify({Version:`2012-10-17`,Statement:[{Effect:`Allow`,Action:`*`,Resource:`*`}]},null,2);function m(){let e=(0,se.c)(67),t=n(),m=r(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g={resolver:s(oe),defaultValues:{policyDocument:p}},e[0]=g):g=e[0];let{handleSubmit:_,register:v,control:y,formState:ce}=re(g),{errors:b,isSubmitting:x}=ce,S;e[1]===y?S=e[2]:(S={control:y},e[1]=y,e[2]=S);let C=i(S),w;e[3]===C?w=e[4]:(w=e=>e?C[e]:void 0,e[3]=C,e[4]=w);let T=w,E;e[5]!==m||e[6]!==t?(E=async e=>{await m.mutateAsync(e),t({to:`/iam/list-policies`})},e[5]=m,e[6]=t,e[7]=E):E=e[7];let D=E,O,k;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,f.jsx)(te,{to:`/iam/list-policies`,children:`Back to policies`}),k=(0,f.jsx)(ie,{title:`Create Policy`}),e[8]=O,e[9]=k):(O=e[8],k=e[9]);let A;e[10]===m.error?A=e[11]:(A=m.error&&(0,f.jsx)(ee,{error:m.error,msg:`Failed to create policy`}),e[10]=m.error,e[11]=A);let j;e[12]!==_||e[13]!==D?(j=_(D),e[12]=_,e[13]=D,e[14]=j):j=e[14];let M;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`policyName`,children:`Policy Name`})}),e[15]=M):M=e[15];let N=!!b.policyName,P;e[16]===v?P=e[17]:(P=v(`policyName`),e[16]=v,e[17]=P);let F;e[18]!==N||e[19]!==P?(F=(0,f.jsx)(c,{"aria-invalid":N,id:`policyName`,placeholder:`my-policy...`,...P}),e[18]=N,e[19]=P,e[20]=F):F=e[20];let I;e[21]===b.policyName?I=e[22]:(I=(0,f.jsx)(d,{errors:[b.policyName]}),e[21]=b.policyName,e[22]=I);let L;e[23]!==F||e[24]!==I?(L=(0,f.jsxs)(l,{children:[M,F,I]}),e[23]=F,e[24]=I,e[25]=L):L=e[25];let R;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`description`,children:`Description (optional)`})}),e[26]=R):R=e[26];let z;e[27]===v?z=e[28]:(z=v(`description`),e[27]=v,e[28]=z);let B;e[29]===z?B=e[30]:(B=(0,f.jsx)(c,{id:`description`,placeholder:`A brief description of this policy...`,...z}),e[29]=z,e[30]=B);let V;e[31]===b.description?V=e[32]:(V=(0,f.jsx)(d,{errors:[b.description]}),e[31]=b.description,e[32]=V);let H;e[33]!==B||e[34]!==V?(H=(0,f.jsxs)(l,{children:[R,B,V]}),e[33]=B,e[34]=V,e[35]=H):H=e[35];let U;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`policyDocument`,children:`Policy Document (JSON)`})}),e[36]=U):U=e[36];let W;e[37]===b.policyDocument?W=e[38]:(W=e=>{let{field:t}=e,{onBlur:n,onChange:r,ref:i,value:a}=t;return(0,f.jsx)(ae,{error:!!b.policyDocument,id:`policyDocument`,onBlur:n,onChange:r,ref:i,rows:15,value:a})},e[37]=b.policyDocument,e[38]=W);let G;e[39]!==y||e[40]!==W?(G=(0,f.jsx)(o,{control:y,name:`policyDocument`,render:W}),e[39]=y,e[40]=W,e[41]=G):G=e[41];let K;e[42]===b.policyDocument?K=e[43]:(K=(0,f.jsx)(d,{errors:[b.policyDocument]}),e[42]=b.policyDocument,e[43]=K);let q;e[44]!==G||e[45]!==K?(q=(0,f.jsxs)(l,{children:[U,G,K]}),e[44]=G,e[45]=K,e[46]=q):q=e[46];let J;e[47]===T?J=e[48]:(J=h(T),e[47]=T,e[48]=J);let Y;e[49]===J?Y=e[50]:(Y=(0,f.jsx)(a,{commands:J}),e[49]=J,e[50]=Y);let X;e[51]===t?X=e[52]:(X=async()=>await t({to:`/iam/list-policies`}),e[51]=t,e[52]=X);let Z;e[53]!==m.isPending||e[54]!==x||e[55]!==X?(Z=(0,f.jsx)(ne,{isPending:m.isPending,isSubmitting:x,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create Policy`}),e[53]=m.isPending,e[54]=x,e[55]=X,e[56]=Z):Z=e[56];let Q;e[57]!==L||e[58]!==H||e[59]!==q||e[60]!==Y||e[61]!==Z||e[62]!==j?(Q=(0,f.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:j,children:[L,H,q,Y,Z]}),e[57]=L,e[58]=H,e[59]=q,e[60]=Y,e[61]=Z,e[62]=j,e[63]=Q):Q=e[63];let $;return e[64]!==Q||e[65]!==A?($=(0,f.jsxs)(f.Fragment,{children:[O,k,A,Q]}),e[64]=Q,e[65]=A,e[66]=$):$=e[66],$}function h(e){let t=e(`policyName`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=e(`policyDocument`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-policy`},{type:`flag`,value:` \\ --policy-name`},{type:`value`,value:` ${n||``}`}];return i&&s.push({type:`flag`,value:` \\ --description`},{type:`value`,value:` "${i}"`}),s.push({type:`flag`,value:` \\ --policy-document`},{type:`value`,value:` '${o||``}'`}),[{label:`Create Policy`,parts:s}]}export{m as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-role.js b/spinifex/services/spinifexui/frontend/dist/assets/create-role.js index 39150f222..6ded79503 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-role.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-role.js @@ -1,4 +1,4 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{u as r}from"./iam.js";import{Ln as i,Sn as a,_n as o,an as s,dn as c,hn as l,mn as ee,rn as u,sn as d,vn as te,xn as ne,yn as re}from"./index.js";import{t as ie}from"./form-actions.js";import{t as ae}from"./json-editor.js";import{a as oe,t as se}from"./iam3.js";var f=t(),p=e();function m(){let e=(0,f.c)(67),t=n(),m=r(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g={resolver:te(oe),defaultValues:{assumeRolePolicyDocument:se}},e[0]=g):g=e[0];let{handleSubmit:_,register:v,control:y,formState:ce}=ne(g),{errors:b,isSubmitting:x}=ce,S;e[1]===y?S=e[2]:(S={control:y},e[1]=y,e[2]=S);let C=a(S),w;e[3]===C?w=e[4]:(w=e=>e?C[e]:void 0,e[3]=C,e[4]=w);let T=w,E;e[5]!==m||e[6]!==t?(E=async e=>{await m.mutateAsync(e),t({to:`/iam/list-roles`})},e[5]=m,e[6]=t,e[7]=E):E=e[7];let D=E,O,k;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,p.jsx)(o,{to:`/iam/list-roles`,children:`Back to roles`}),k=(0,p.jsx)(c,{title:`Create Role`}),e[8]=O,e[9]=k):(O=e[8],k=e[9]);let A;e[10]===m.error?A=e[11]:(A=m.error&&(0,p.jsx)(ee,{error:m.error,msg:`Failed to create role`}),e[10]=m.error,e[11]=A);let j;e[12]!==_||e[13]!==D?(j=_(D),e[12]=_,e[13]=D,e[14]=j):j=e[14];let M;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,p.jsx)(d,{children:(0,p.jsx)(`label`,{htmlFor:`roleName`,children:`Role Name`})}),e[15]=M):M=e[15];let N=!!b.roleName,P;e[16]===v?P=e[17]:(P=v(`roleName`),e[16]=v,e[17]=P);let F;e[18]!==N||e[19]!==P?(F=(0,p.jsx)(i,{"aria-invalid":N,id:`roleName`,placeholder:`my-role...`,...P}),e[18]=N,e[19]=P,e[20]=F):F=e[20];let I;e[21]===b.roleName?I=e[22]:(I=(0,p.jsx)(s,{errors:[b.roleName]}),e[21]=b.roleName,e[22]=I);let L;e[23]!==F||e[24]!==I?(L=(0,p.jsxs)(u,{children:[M,F,I]}),e[23]=F,e[24]=I,e[25]=L):L=e[25];let R;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,p.jsx)(d,{children:(0,p.jsx)(`label`,{htmlFor:`description`,children:`Description (optional)`})}),e[26]=R):R=e[26];let z;e[27]===v?z=e[28]:(z=v(`description`),e[27]=v,e[28]=z);let B;e[29]===z?B=e[30]:(B=(0,p.jsx)(i,{id:`description`,placeholder:`A brief description of this role...`,...z}),e[29]=z,e[30]=B);let V;e[31]===b.description?V=e[32]:(V=(0,p.jsx)(s,{errors:[b.description]}),e[31]=b.description,e[32]=V);let H;e[33]!==B||e[34]!==V?(H=(0,p.jsxs)(u,{children:[R,B,V]}),e[33]=B,e[34]=V,e[35]=H):H=e[35];let U;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(d,{children:(0,p.jsx)(`label`,{htmlFor:`assumeRolePolicyDocument`,children:`Trust Policy (JSON)`})}),e[36]=U):U=e[36];let W;e[37]===b.assumeRolePolicyDocument?W=e[38]:(W=e=>{let{field:t}=e,{onBlur:n,onChange:r,ref:i,value:a}=t;return(0,p.jsx)(ae,{error:!!b.assumeRolePolicyDocument,id:`assumeRolePolicyDocument`,onBlur:n,onChange:r,ref:i,rows:15,value:a})},e[37]=b.assumeRolePolicyDocument,e[38]=W);let G;e[39]!==y||e[40]!==W?(G=(0,p.jsx)(re,{control:y,name:`assumeRolePolicyDocument`,render:W}),e[39]=y,e[40]=W,e[41]=G):G=e[41];let K;e[42]===b.assumeRolePolicyDocument?K=e[43]:(K=(0,p.jsx)(s,{errors:[b.assumeRolePolicyDocument]}),e[42]=b.assumeRolePolicyDocument,e[43]=K);let q;e[44]!==G||e[45]!==K?(q=(0,p.jsxs)(u,{children:[U,G,K]}),e[44]=G,e[45]=K,e[46]=q):q=e[46];let J;e[47]===T?J=e[48]:(J=h(T),e[47]=T,e[48]=J);let Y;e[49]===J?Y=e[50]:(Y=(0,p.jsx)(l,{commands:J}),e[49]=J,e[50]=Y);let X;e[51]===t?X=e[52]:(X=async()=>await t({to:`/iam/list-roles`}),e[51]=t,e[52]=X);let Z;e[53]!==m.isPending||e[54]!==x||e[55]!==X?(Z=(0,p.jsx)(ie,{isPending:m.isPending,isSubmitting:x,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create Role`}),e[53]=m.isPending,e[54]=x,e[55]=X,e[56]=Z):Z=e[56];let Q;e[57]!==L||e[58]!==H||e[59]!==q||e[60]!==Y||e[61]!==Z||e[62]!==j?(Q=(0,p.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:j,children:[L,H,q,Y,Z]}),e[57]=L,e[58]=H,e[59]=q,e[60]=Y,e[61]=Z,e[62]=j,e[63]=Q):Q=e[63];let $;return e[64]!==Q||e[65]!==A?($=(0,p.jsxs)(p.Fragment,{children:[O,k,A,Q]}),e[64]=Q,e[65]=A,e[66]=$):$=e[66],$}function h(e){let t=e(`roleName`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=e(`assumeRolePolicyDocument`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-role`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{u as r}from"./iam.js";import{An as i,Cn as a,Dn as o,En as s,Rn as c,Sn as ee,Tn as te,W as ne,dn as l,hn as u,kn as re,pn as d,yn as ie}from"./index.js";import{t as ae}from"./json-editor.js";import{a as oe,t as se}from"./iam3.js";var f=t(),p=e();function m(){let e=(0,f.c)(67),t=n(),m=r(),g;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(g={resolver:s(oe),defaultValues:{assumeRolePolicyDocument:se}},e[0]=g):g=e[0];let{handleSubmit:_,register:v,control:y,formState:ce}=re(g),{errors:b,isSubmitting:x}=ce,S;e[1]===y?S=e[2]:(S={control:y},e[1]=y,e[2]=S);let C=i(S),w;e[3]===C?w=e[4]:(w=e=>e?C[e]:void 0,e[3]=C,e[4]=w);let T=w,E;e[5]!==m||e[6]!==t?(E=async e=>{await m.mutateAsync(e),t({to:`/iam/list-roles`})},e[5]=m,e[6]=t,e[7]=E):E=e[7];let D=E,O,k;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,p.jsx)(te,{to:`/iam/list-roles`,children:`Back to roles`}),k=(0,p.jsx)(ie,{title:`Create Role`}),e[8]=O,e[9]=k):(O=e[8],k=e[9]);let A;e[10]===m.error?A=e[11]:(A=m.error&&(0,p.jsx)(ee,{error:m.error,msg:`Failed to create role`}),e[10]=m.error,e[11]=A);let j;e[12]!==_||e[13]!==D?(j=_(D),e[12]=_,e[13]=D,e[14]=j):j=e[14];let M;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,p.jsx)(u,{children:(0,p.jsx)(`label`,{htmlFor:`roleName`,children:`Role Name`})}),e[15]=M):M=e[15];let N=!!b.roleName,P;e[16]===v?P=e[17]:(P=v(`roleName`),e[16]=v,e[17]=P);let F;e[18]!==N||e[19]!==P?(F=(0,p.jsx)(c,{"aria-invalid":N,id:`roleName`,placeholder:`my-role...`,...P}),e[18]=N,e[19]=P,e[20]=F):F=e[20];let I;e[21]===b.roleName?I=e[22]:(I=(0,p.jsx)(d,{errors:[b.roleName]}),e[21]=b.roleName,e[22]=I);let L;e[23]!==F||e[24]!==I?(L=(0,p.jsxs)(l,{children:[M,F,I]}),e[23]=F,e[24]=I,e[25]=L):L=e[25];let R;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,p.jsx)(u,{children:(0,p.jsx)(`label`,{htmlFor:`description`,children:`Description (optional)`})}),e[26]=R):R=e[26];let z;e[27]===v?z=e[28]:(z=v(`description`),e[27]=v,e[28]=z);let B;e[29]===z?B=e[30]:(B=(0,p.jsx)(c,{id:`description`,placeholder:`A brief description of this role...`,...z}),e[29]=z,e[30]=B);let V;e[31]===b.description?V=e[32]:(V=(0,p.jsx)(d,{errors:[b.description]}),e[31]=b.description,e[32]=V);let H;e[33]!==B||e[34]!==V?(H=(0,p.jsxs)(l,{children:[R,B,V]}),e[33]=B,e[34]=V,e[35]=H):H=e[35];let U;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(u,{children:(0,p.jsx)(`label`,{htmlFor:`assumeRolePolicyDocument`,children:`Trust Policy (JSON)`})}),e[36]=U):U=e[36];let W;e[37]===b.assumeRolePolicyDocument?W=e[38]:(W=e=>{let{field:t}=e,{onBlur:n,onChange:r,ref:i,value:a}=t;return(0,p.jsx)(ae,{error:!!b.assumeRolePolicyDocument,id:`assumeRolePolicyDocument`,onBlur:n,onChange:r,ref:i,rows:15,value:a})},e[37]=b.assumeRolePolicyDocument,e[38]=W);let G;e[39]!==y||e[40]!==W?(G=(0,p.jsx)(o,{control:y,name:`assumeRolePolicyDocument`,render:W}),e[39]=y,e[40]=W,e[41]=G):G=e[41];let K;e[42]===b.assumeRolePolicyDocument?K=e[43]:(K=(0,p.jsx)(d,{errors:[b.assumeRolePolicyDocument]}),e[42]=b.assumeRolePolicyDocument,e[43]=K);let q;e[44]!==G||e[45]!==K?(q=(0,p.jsxs)(l,{children:[U,G,K]}),e[44]=G,e[45]=K,e[46]=q):q=e[46];let J;e[47]===T?J=e[48]:(J=h(T),e[47]=T,e[48]=J);let Y;e[49]===J?Y=e[50]:(Y=(0,p.jsx)(a,{commands:J}),e[49]=J,e[50]=Y);let X;e[51]===t?X=e[52]:(X=async()=>await t({to:`/iam/list-roles`}),e[51]=t,e[52]=X);let Z;e[53]!==m.isPending||e[54]!==x||e[55]!==X?(Z=(0,p.jsx)(ne,{isPending:m.isPending,isSubmitting:x,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create Role`}),e[53]=m.isPending,e[54]=x,e[55]=X,e[56]=Z):Z=e[56];let Q;e[57]!==L||e[58]!==H||e[59]!==q||e[60]!==Y||e[61]!==Z||e[62]!==j?(Q=(0,p.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:j,children:[L,H,q,Y,Z]}),e[57]=L,e[58]=H,e[59]=q,e[60]=Y,e[61]=Z,e[62]=j,e[63]=Q):Q=e[63];let $;return e[64]!==Q||e[65]!==A?($=(0,p.jsxs)(p.Fragment,{children:[O,k,A,Q]}),e[64]=Q,e[65]=A,e[66]=$):$=e[66],$}function h(e){let t=e(`roleName`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=e(`assumeRolePolicyDocument`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-role`},{type:`flag`,value:` \\ --role-name`},{type:`value`,value:` ${n||``}`}];return i&&s.push({type:`flag`,value:` \\ --description`},{type:`value`,value:` "${i}"`}),s.push({type:`flag`,value:` \\ --assume-role-policy-document`},{type:`value`,value:` '${o||``}'`}),[{label:`Create Role`,parts:s}]}export{m as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-route-table.js b/spinifex/services/spinifexui/frontend/dist/assets/create-route-table.js index e3452ce99..7d67577eb 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-route-table.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-route-table.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{$t as r}from"./auth.js";import{c as i,i as a,n as o,s,t as c}from"./select.js";import{M as l}from"./ec2.js";import{G as u,Ln as d,Xn as f,_n as p,an as m,dn as h,mn as g,rn as _,sn as v,vn as y,vt as b,xn as x,yn as S}from"./index.js";import{t as C}from"./form-actions.js";var w=t(),T=e();function E(){let e=(0,w.c)(44),t=n(),{data:r}=f(l),a=b(),E;e[0]===r.Vpcs?E=e[1]:(E=r.Vpcs??[],e[0]=r.Vpcs,e[1]=E);let O=E,k;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(k={resolver:y(u),defaultValues:{vpcId:``,name:``}},e[2]=k):k=e[2];let{control:A,handleSubmit:j,register:M,formState:N}=x(k),{errors:P,isSubmitting:F}=N,I;e[3]!==a||e[4]!==t?(I=async e=>{let n=(await a.mutateAsync({vpcId:e.vpcId,name:e.name?.trim()?e.name.trim():void 0})).RouteTable?.RouteTableId;t(n?{to:`/ec2/describe-route-tables/$id`,params:{id:n}}:{to:`/ec2/describe-route-tables`})},e[3]=a,e[4]=t,e[5]=I):I=e[5];let L=I,R,z;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,T.jsx)(p,{to:`/ec2/describe-route-tables`,children:`Back to Route Tables`}),z=(0,T.jsx)(h,{title:`Create Route Table`}),e[6]=R,e[7]=z):(R=e[6],z=e[7]);let B;e[8]===a.error?B=e[9]:(B=a.error&&(0,T.jsx)(g,{error:a.error,msg:`Failed to create Route Table`}),e[8]=a.error,e[9]=B);let V;e[10]!==j||e[11]!==L?(V=j(L),e[10]=j,e[11]=L,e[12]=V):V=e[12];let H;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,T.jsx)(v,{children:(0,T.jsx)(`label`,{htmlFor:`name`,children:`Name (optional)`})}),e[13]=H):H=e[13];let U;e[14]===M?U=e[15]:(U=M(`name`),e[14]=M,e[15]=U);let W;e[16]===U?W=e[17]:(W=(0,T.jsxs)(_,{children:[H,(0,T.jsx)(d,{id:`name`,placeholder:`my-route-table`,...U})]}),e[16]=U,e[17]=W);let G;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,T.jsx)(v,{children:(0,T.jsx)(`label`,{htmlFor:`vpcId`,children:`VPC`})}),e[18]=G):G=e[18];let K;e[19]!==P.vpcId||e[20]!==O?(K=e=>{let{field:t}=e;return(0,T.jsxs)(c,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,T.jsx)(s,{"aria-invalid":!!P.vpcId,className:`w-full`,id:`vpcId`,children:(0,T.jsx)(i,{placeholder:`Select a VPC`})}),(0,T.jsx)(o,{children:O.map(D)})]})},e[19]=P.vpcId,e[20]=O,e[21]=K):K=e[21];let q;e[22]!==A||e[23]!==K?(q=(0,T.jsx)(S,{control:A,name:`vpcId`,render:K}),e[22]=A,e[23]=K,e[24]=q):q=e[24];let J;e[25]===P.vpcId?J=e[26]:(J=(0,T.jsx)(m,{errors:[P.vpcId]}),e[25]=P.vpcId,e[26]=J);let Y;e[27]!==q||e[28]!==J?(Y=(0,T.jsxs)(_,{children:[G,q,J]}),e[27]=q,e[28]=J,e[29]=Y):Y=e[29];let X;e[30]===t?X=e[31]:(X=async()=>await t({to:`/ec2/describe-route-tables`}),e[30]=t,e[31]=X);let Z;e[32]!==a.isPending||e[33]!==F||e[34]!==X?(Z=(0,T.jsx)(C,{isPending:a.isPending,isSubmitting:F,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Route Table`}),e[32]=a.isPending,e[33]=F,e[34]=X,e[35]=Z):Z=e[35];let Q;e[36]!==W||e[37]!==Y||e[38]!==Z||e[39]!==V?(Q=(0,T.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:V,children:[W,Y,Z]}),e[36]=W,e[37]=Y,e[38]=Z,e[39]=V,e[40]=Q):Q=e[40];let $;return e[41]!==Q||e[42]!==B?($=(0,T.jsxs)(T.Fragment,{children:[R,z,B,Q]}),e[41]=Q,e[42]=B,e[43]=$):$=e[43],$}function D(e){let t=r(e.Tags);return(0,T.jsx)(a,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}export{E as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{$t as r}from"./auth.js";import{c as i,i as a,n as o,s,t as c}from"./select.js";import{M as l}from"./ec2.js";import{$n as u,Dn as d,En as f,Et as p,Rn as m,Sn as h,Tn as g,W as _,dn as v,et as y,hn as b,kn as x,pn as S,yn as C}from"./index.js";var w=t(),T=e();function E(){let e=(0,w.c)(44),t=n(),{data:r}=u(l),a=p(),E;e[0]===r.Vpcs?E=e[1]:(E=r.Vpcs??[],e[0]=r.Vpcs,e[1]=E);let O=E,k;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(k={resolver:f(y),defaultValues:{vpcId:``,name:``}},e[2]=k):k=e[2];let{control:A,handleSubmit:j,register:M,formState:N}=x(k),{errors:P,isSubmitting:F}=N,I;e[3]!==a||e[4]!==t?(I=async e=>{let n=(await a.mutateAsync({vpcId:e.vpcId,name:e.name?.trim()?e.name.trim():void 0})).RouteTable?.RouteTableId;t(n?{to:`/ec2/describe-route-tables/$id`,params:{id:n}}:{to:`/ec2/describe-route-tables`})},e[3]=a,e[4]=t,e[5]=I):I=e[5];let L=I,R,z;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,T.jsx)(g,{to:`/ec2/describe-route-tables`,children:`Back to Route Tables`}),z=(0,T.jsx)(C,{title:`Create Route Table`}),e[6]=R,e[7]=z):(R=e[6],z=e[7]);let B;e[8]===a.error?B=e[9]:(B=a.error&&(0,T.jsx)(h,{error:a.error,msg:`Failed to create Route Table`}),e[8]=a.error,e[9]=B);let V;e[10]!==j||e[11]!==L?(V=j(L),e[10]=j,e[11]=L,e[12]=V):V=e[12];let H;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,T.jsx)(b,{children:(0,T.jsx)(`label`,{htmlFor:`name`,children:`Name (optional)`})}),e[13]=H):H=e[13];let U;e[14]===M?U=e[15]:(U=M(`name`),e[14]=M,e[15]=U);let W;e[16]===U?W=e[17]:(W=(0,T.jsxs)(v,{children:[H,(0,T.jsx)(m,{id:`name`,placeholder:`my-route-table`,...U})]}),e[16]=U,e[17]=W);let G;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,T.jsx)(b,{children:(0,T.jsx)(`label`,{htmlFor:`vpcId`,children:`VPC`})}),e[18]=G):G=e[18];let K;e[19]!==P.vpcId||e[20]!==O?(K=e=>{let{field:t}=e;return(0,T.jsxs)(c,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,T.jsx)(s,{"aria-invalid":!!P.vpcId,className:`w-full`,id:`vpcId`,children:(0,T.jsx)(i,{placeholder:`Select a VPC`})}),(0,T.jsx)(o,{children:O.map(D)})]})},e[19]=P.vpcId,e[20]=O,e[21]=K):K=e[21];let q;e[22]!==A||e[23]!==K?(q=(0,T.jsx)(d,{control:A,name:`vpcId`,render:K}),e[22]=A,e[23]=K,e[24]=q):q=e[24];let J;e[25]===P.vpcId?J=e[26]:(J=(0,T.jsx)(S,{errors:[P.vpcId]}),e[25]=P.vpcId,e[26]=J);let Y;e[27]!==q||e[28]!==J?(Y=(0,T.jsxs)(v,{children:[G,q,J]}),e[27]=q,e[28]=J,e[29]=Y):Y=e[29];let X;e[30]===t?X=e[31]:(X=async()=>await t({to:`/ec2/describe-route-tables`}),e[30]=t,e[31]=X);let Z;e[32]!==a.isPending||e[33]!==F||e[34]!==X?(Z=(0,T.jsx)(_,{isPending:a.isPending,isSubmitting:F,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Route Table`}),e[32]=a.isPending,e[33]=F,e[34]=X,e[35]=Z):Z=e[35];let Q;e[36]!==W||e[37]!==Y||e[38]!==Z||e[39]!==V?(Q=(0,T.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:V,children:[W,Y,Z]}),e[36]=W,e[37]=Y,e[38]=Z,e[39]=V,e[40]=Q):Q=e[40];let $;return e[41]!==Q||e[42]!==B?($=(0,T.jsxs)(T.Fragment,{children:[R,z,B,Q]}),e[41]=Q,e[42]=B,e[43]=$):$=e[43],$}function D(e){let t=r(e.Tags);return(0,T.jsx)(a,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}export{E as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-security-group.js b/spinifex/services/spinifexui/frontend/dist/assets/create-security-group.js index 8c13c02e0..f6652e119 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-security-group.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-security-group.js @@ -1,4 +1,4 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{$t as r}from"./auth.js";import{c as ee,i,n as a,s as o,t as te}from"./select.js";import{M as ne}from"./ec2.js";import{K as re,Ln as ie,Sn as ae,Xn as oe,_n as se,an as s,dn as ce,hn as le,mn as ue,rn as c,sn as l,vn as de,xn as fe,yn as pe,yt as me}from"./index.js";import{t as he}from"./form-actions.js";var ge=t(),u=e();function d(){let e=(0,ge.c)(73),t=n(),{data:r}=oe(ne),i=me(),d;e[0]===r.Vpcs?d=e[1]:(d=r.Vpcs??[],e[0]=r.Vpcs,e[1]=d);let f=d,p;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=de(re),e[2]=p):p=e[2];let m=f[0]?.VpcId??``,h;e[3]===m?h=e[4]:(h={resolver:p,defaultValues:{groupName:``,description:``,vpcId:m}},e[3]=m,e[4]=h);let{control:g,handleSubmit:_,register:v,formState:ye}=fe(h),{errors:y,isSubmitting:b}=ye,x;e[5]===g?x=e[6]:(x={control:g},e[5]=g,e[6]=x);let S=ae(x),C;e[7]===S?C=e[8]:(C=e=>e?S[e]:void 0,e[7]=S,e[8]=C);let w=C,T;e[9]!==i||e[10]!==t?(T=async e=>{let n=(await i.mutateAsync(e)).GroupId;t(n?{to:`/ec2/describe-security-groups/$id`,params:{id:n}}:{to:`/ec2/describe-security-groups`})},e[9]=i,e[10]=t,e[11]=T):T=e[11];let E=T,D,O;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,u.jsx)(se,{to:`/ec2/describe-security-groups`,children:`Back to Security Groups`}),O=(0,u.jsx)(ce,{title:`Create Security Group`}),e[12]=D,e[13]=O):(D=e[12],O=e[13]);let k;e[14]===i.error?k=e[15]:(k=i.error&&(0,u.jsx)(ue,{error:i.error,msg:`Failed to create security group`}),e[14]=i.error,e[15]=k);let A;e[16]!==_||e[17]!==E?(A=_(E),e[16]=_,e[17]=E,e[18]=A):A=e[18];let j;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,u.jsx)(l,{children:(0,u.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[19]=j):j=e[19];let M=!!y.groupName,N;e[20]===v?N=e[21]:(N=v(`groupName`),e[20]=v,e[21]=N);let P;e[22]!==M||e[23]!==N?(P=(0,u.jsx)(ie,{"aria-invalid":M,id:`groupName`,placeholder:`my-security-group`,...N}),e[22]=M,e[23]=N,e[24]=P):P=e[24];let F;e[25]===y.groupName?F=e[26]:(F=(0,u.jsx)(s,{errors:[y.groupName]}),e[25]=y.groupName,e[26]=F);let I;e[27]!==P||e[28]!==F?(I=(0,u.jsxs)(c,{children:[j,P,F]}),e[27]=P,e[28]=F,e[29]=I):I=e[29];let L;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,u.jsx)(l,{children:(0,u.jsx)(`label`,{htmlFor:`description`,children:`Description`})}),e[30]=L):L=e[30];let R=!!y.description,z;e[31]===v?z=e[32]:(z=v(`description`),e[31]=v,e[32]=z);let B;e[33]!==R||e[34]!==z?(B=(0,u.jsx)(ie,{"aria-invalid":R,id:`description`,placeholder:`My security group description`,...z}),e[33]=R,e[34]=z,e[35]=B):B=e[35];let V;e[36]===y.description?V=e[37]:(V=(0,u.jsx)(s,{errors:[y.description]}),e[36]=y.description,e[37]=V);let H;e[38]!==B||e[39]!==V?(H=(0,u.jsxs)(c,{children:[L,B,V]}),e[38]=B,e[39]=V,e[40]=H):H=e[40];let U;e[41]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,u.jsx)(l,{children:(0,u.jsx)(`label`,{htmlFor:`vpcId`,children:`VPC`})}),e[41]=U):U=e[41];let W;e[42]!==y.vpcId||e[43]!==f?(W=e=>{let{field:t}=e;return(0,u.jsxs)(te,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,u.jsx)(o,{"aria-invalid":!!y.vpcId,className:`w-full`,id:`vpcId`,children:(0,u.jsx)(ee,{})}),(0,u.jsx)(a,{children:f.map(_e)})]})},e[42]=y.vpcId,e[43]=f,e[44]=W):W=e[44];let G;e[45]!==g||e[46]!==W?(G=(0,u.jsx)(pe,{control:g,name:`vpcId`,render:W}),e[45]=g,e[46]=W,e[47]=G):G=e[47];let K;e[48]===y.vpcId?K=e[49]:(K=(0,u.jsx)(s,{errors:[y.vpcId]}),e[48]=y.vpcId,e[49]=K);let q;e[50]!==G||e[51]!==K?(q=(0,u.jsxs)(c,{children:[U,G,K]}),e[50]=G,e[51]=K,e[52]=q):q=e[52];let J;e[53]===w?J=e[54]:(J=ve(w),e[53]=w,e[54]=J);let Y;e[55]===J?Y=e[56]:(Y=(0,u.jsx)(le,{commands:J}),e[55]=J,e[56]=Y);let X;e[57]===t?X=e[58]:(X=async()=>await t({to:`/ec2/describe-security-groups`}),e[57]=t,e[58]=X);let Z;e[59]!==i.isPending||e[60]!==b||e[61]!==X?(Z=(0,u.jsx)(he,{isPending:i.isPending,isSubmitting:b,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Security Group`}),e[59]=i.isPending,e[60]=b,e[61]=X,e[62]=Z):Z=e[62];let Q;e[63]!==A||e[64]!==I||e[65]!==H||e[66]!==q||e[67]!==Y||e[68]!==Z?(Q=(0,u.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:A,children:[I,H,q,Y,Z]}),e[63]=A,e[64]=I,e[65]=H,e[66]=q,e[67]=Y,e[68]=Z,e[69]=Q):Q=e[69];let $;return e[70]!==k||e[71]!==Q?($=(0,u.jsxs)(u.Fragment,{children:[D,O,k,Q]}),e[70]=k,e[71]=Q,e[72]=$):$=e[72],$}function _e(e){let t=r(e.Tags);return(0,u.jsx)(i,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}function ve(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`description`),ee=typeof r==`string`?r:``,i=e(`vpcId`),a=typeof i==`string`?i:``,o=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-security-group`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{$t as r}from"./auth.js";import{c as ee,i,n as a,s as o,t as te}from"./select.js";import{M as ne}from"./ec2.js";import{$n as re,An as ie,Cn as ae,Dn as oe,Dt as se,En as ce,Rn as le,Sn as ue,Tn as de,W as fe,dn as s,hn as c,kn as pe,pn as l,tt as me,yn as he}from"./index.js";var ge=t(),u=e();function d(){let e=(0,ge.c)(73),t=n(),{data:r}=re(ne),i=se(),d;e[0]===r.Vpcs?d=e[1]:(d=r.Vpcs??[],e[0]=r.Vpcs,e[1]=d);let f=d,p;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(p=ce(me),e[2]=p):p=e[2];let m=f[0]?.VpcId??``,h;e[3]===m?h=e[4]:(h={resolver:p,defaultValues:{groupName:``,description:``,vpcId:m}},e[3]=m,e[4]=h);let{control:g,handleSubmit:_,register:v,formState:ye}=pe(h),{errors:y,isSubmitting:b}=ye,x;e[5]===g?x=e[6]:(x={control:g},e[5]=g,e[6]=x);let S=ie(x),C;e[7]===S?C=e[8]:(C=e=>e?S[e]:void 0,e[7]=S,e[8]=C);let w=C,T;e[9]!==i||e[10]!==t?(T=async e=>{let n=(await i.mutateAsync(e)).GroupId;t(n?{to:`/ec2/describe-security-groups/$id`,params:{id:n}}:{to:`/ec2/describe-security-groups`})},e[9]=i,e[10]=t,e[11]=T):T=e[11];let E=T,D,O;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,u.jsx)(de,{to:`/ec2/describe-security-groups`,children:`Back to Security Groups`}),O=(0,u.jsx)(he,{title:`Create Security Group`}),e[12]=D,e[13]=O):(D=e[12],O=e[13]);let k;e[14]===i.error?k=e[15]:(k=i.error&&(0,u.jsx)(ue,{error:i.error,msg:`Failed to create security group`}),e[14]=i.error,e[15]=k);let A;e[16]!==_||e[17]!==E?(A=_(E),e[16]=_,e[17]=E,e[18]=A):A=e[18];let j;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,u.jsx)(c,{children:(0,u.jsx)(`label`,{htmlFor:`groupName`,children:`Group Name`})}),e[19]=j):j=e[19];let M=!!y.groupName,N;e[20]===v?N=e[21]:(N=v(`groupName`),e[20]=v,e[21]=N);let P;e[22]!==M||e[23]!==N?(P=(0,u.jsx)(le,{"aria-invalid":M,id:`groupName`,placeholder:`my-security-group`,...N}),e[22]=M,e[23]=N,e[24]=P):P=e[24];let F;e[25]===y.groupName?F=e[26]:(F=(0,u.jsx)(l,{errors:[y.groupName]}),e[25]=y.groupName,e[26]=F);let I;e[27]!==P||e[28]!==F?(I=(0,u.jsxs)(s,{children:[j,P,F]}),e[27]=P,e[28]=F,e[29]=I):I=e[29];let L;e[30]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,u.jsx)(c,{children:(0,u.jsx)(`label`,{htmlFor:`description`,children:`Description`})}),e[30]=L):L=e[30];let R=!!y.description,z;e[31]===v?z=e[32]:(z=v(`description`),e[31]=v,e[32]=z);let B;e[33]!==R||e[34]!==z?(B=(0,u.jsx)(le,{"aria-invalid":R,id:`description`,placeholder:`My security group description`,...z}),e[33]=R,e[34]=z,e[35]=B):B=e[35];let V;e[36]===y.description?V=e[37]:(V=(0,u.jsx)(l,{errors:[y.description]}),e[36]=y.description,e[37]=V);let H;e[38]!==B||e[39]!==V?(H=(0,u.jsxs)(s,{children:[L,B,V]}),e[38]=B,e[39]=V,e[40]=H):H=e[40];let U;e[41]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,u.jsx)(c,{children:(0,u.jsx)(`label`,{htmlFor:`vpcId`,children:`VPC`})}),e[41]=U):U=e[41];let W;e[42]!==y.vpcId||e[43]!==f?(W=e=>{let{field:t}=e;return(0,u.jsxs)(te,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,u.jsx)(o,{"aria-invalid":!!y.vpcId,className:`w-full`,id:`vpcId`,children:(0,u.jsx)(ee,{})}),(0,u.jsx)(a,{children:f.map(_e)})]})},e[42]=y.vpcId,e[43]=f,e[44]=W):W=e[44];let G;e[45]!==g||e[46]!==W?(G=(0,u.jsx)(oe,{control:g,name:`vpcId`,render:W}),e[45]=g,e[46]=W,e[47]=G):G=e[47];let K;e[48]===y.vpcId?K=e[49]:(K=(0,u.jsx)(l,{errors:[y.vpcId]}),e[48]=y.vpcId,e[49]=K);let q;e[50]!==G||e[51]!==K?(q=(0,u.jsxs)(s,{children:[U,G,K]}),e[50]=G,e[51]=K,e[52]=q):q=e[52];let J;e[53]===w?J=e[54]:(J=ve(w),e[53]=w,e[54]=J);let Y;e[55]===J?Y=e[56]:(Y=(0,u.jsx)(ae,{commands:J}),e[55]=J,e[56]=Y);let X;e[57]===t?X=e[58]:(X=async()=>await t({to:`/ec2/describe-security-groups`}),e[57]=t,e[58]=X);let Z;e[59]!==i.isPending||e[60]!==b||e[61]!==X?(Z=(0,u.jsx)(fe,{isPending:i.isPending,isSubmitting:b,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Security Group`}),e[59]=i.isPending,e[60]=b,e[61]=X,e[62]=Z):Z=e[62];let Q;e[63]!==A||e[64]!==I||e[65]!==H||e[66]!==q||e[67]!==Y||e[68]!==Z?(Q=(0,u.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:A,children:[I,H,q,Y,Z]}),e[63]=A,e[64]=I,e[65]=H,e[66]=q,e[67]=Y,e[68]=Z,e[69]=Q):Q=e[69];let $;return e[70]!==k||e[71]!==Q?($=(0,u.jsxs)(u.Fragment,{children:[D,O,k,Q]}),e[70]=k,e[71]=Q,e[72]=$):$=e[72],$}function _e(e){let t=r(e.Tags);return(0,u.jsx)(i,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}function ve(e){let t=e(`groupName`),n=typeof t==`string`?t:``,r=e(`description`),ee=typeof r==`string`?r:``,i=e(`vpcId`),a=typeof i==`string`?i:``,o=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-security-group`},{type:`flag`,value:` \\ --group-name`},{type:`value`,value:` ${n||``}`},{type:`flag`,value:` \\ --description`},{type:`value`,value:` "${ee||``}"`}];return a&&o.push({type:`flag`,value:` \\ --vpc-id`},{type:`value`,value:` ${a}`}),[{label:`Create Security Group`,parts:o}]}export{d as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-service.js b/spinifex/services/spinifexui/frontend/dist/assets/create-service.js index f47d1b006..7a8407df8 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-service.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-service.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as ee,i as te,n as ne,s as re,t as ie}from"./select.js";import{O as ae,w as oe}from"./ec2.js";import{a as se,o as ce}from"./ecs.js";import{n as le}from"./ecs2.js";import{u as ue}from"./elbv22.js";import{Ln as de,M as r,Sn as fe,Xn as pe,Zn as me,_n as he,an as ge,dn as _e,mn as ve,rn as i,sn as a,vn as ye,xn as be,yn as xe}from"./index.js";import{t as Se}from"./form-actions.js";import{n as Ce}from"./ecs3.js";var we=t(),o=e();function Te(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function s(e){let t=(0,we.c)(121),{cluster:r}=e,Te=n(),s=le(),{data:Oe}=pe(ce),{data:ke}=pe(ae),{data:Ae}=pe(oe),{data:je}=pe(ue),Me;t[0]===ke.Subnets?Me=t[1]:(Me=ke.Subnets??[],t[0]=ke.Subnets,t[1]=Me);let Ne=Me,c;t[2]===Ae.SecurityGroups?c=t[3]:(c=Ae.SecurityGroups??[],t[2]=Ae.SecurityGroups,t[3]=c);let Pe=c,l;t[4]===je.TargetGroups?l=t[5]:(l=je.TargetGroups??[],t[4]=je.TargetGroups,t[5]=l);let Fe=l,Ie;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=ye(Ce),t[6]=Ie):Ie=t[6];let u,d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],d=[],t[7]=u,t[8]=d):(u=t[7],d=t[8]);let f;t[9]===r?f=t[10]:(f={resolver:Ie,defaultValues:{cluster:r,serviceName:``,taskDefinition:``,desiredCount:1,subnets:u,securityGroups:d,assignPublicIp:!1,targetGroupArn:``,loadBalancerContainerName:``,loadBalancerContainerPort:``}},t[9]=r,t[10]=f);let{control:p,handleSubmit:Le,register:m,setValue:Re,getValues:ze,formState:Be}=be(f),{errors:h,isSubmitting:Ve}=Be,g;t[11]===p?g=t[12]:(g={control:p,name:`taskDefinition`},t[11]=p,t[12]=g);let He=fe(g),_;t[13]===He?_=t[14]:(_=se(He),t[13]=He,t[14]=_);let{data:Ue}=me(_),v=Ue?.networkMode===`awsvpc`,y;t[15]===p?y=t[16]:(y={control:p,name:`subnets`},t[15]=p,t[16]=y);let b=fe(y),x;t[17]===p?x=t[18]:(x={control:p,name:`securityGroups`},t[17]=p,t[18]=x);let We=fe(x),S;t[19]!==ze||t[20]!==Re?(S=(e,t)=>{let n=ze(e);Re(e,n.includes(t)?n.filter(e=>e!==t):[...n,t],{shouldValidate:!0})},t[19]=ze,t[20]=Re,t[21]=S):S=t[21];let C=S,Ge;t[22]!==r||t[23]!==Te?(Ge=function(){Te({to:`/ecs/list-clusters/$clusterName`,params:{clusterName:r}})},t[22]=r,t[23]=Te,t[24]=Ge):Ge=t[24];let w=Ge,Ke;t[25]!==v||t[26]!==s||t[27]!==w?(Ke=async function(e){await s.mutateAsync({...e,awsvpc:v}),w()},t[25]=v,t[26]=s,t[27]=w,t[28]=Ke):Ke=t[28];let qe=Ke,Je=v&&b.length===0,T;t[29]===r?T=t[30]:(T={clusterName:r},t[29]=r,t[30]=T);let E;t[31]!==r||t[32]!==T?(E=(0,o.jsx)(he,{params:T,to:`/ecs/list-clusters/$clusterName`,children:r}),t[31]=r,t[32]=T,t[33]=E):E=t[33];let Ye=`Cluster: ${r}`,D;t[34]===Ye?D=t[35]:(D=(0,o.jsx)(_e,{subtitle:Ye,title:`Create Service`}),t[34]=Ye,t[35]=D);let O;t[36]!==s.error||t[37]!==s.isError?(O=s.isError&&(0,o.jsx)(ve,{error:s.error instanceof Error?s.error:void 0,msg:`Failed to create service.`}),t[36]=s.error,t[37]=s.isError,t[38]=O):O=t[38];let k;t[39]!==Le||t[40]!==qe?(k=Le(qe),t[39]=Le,t[40]=qe,t[41]=k):k=t[41];let Xe;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(Xe=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`serviceName`,children:`Service name`})}),t[42]=Xe):Xe=t[42];let A;t[43]===m?A=t[44]:(A=m(`serviceName`),t[43]=m,t[44]=A);let j;t[45]===A?j=t[46]:(j=(0,o.jsx)(de,{id:`serviceName`,placeholder:`api`,...A}),t[45]=A,t[46]=j);let M;t[47]===h.serviceName?M=t[48]:(M=(0,o.jsx)(ge,{errors:[h.serviceName]}),t[47]=h.serviceName,t[48]=M);let N;t[49]!==j||t[50]!==M?(N=(0,o.jsxs)(i,{children:[Xe,j,M]}),t[49]=j,t[50]=M,t[51]=N):N=t[51];let Ze;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Ze=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`taskDefinition`,children:`Task definition`})}),t[52]=Ze):Ze=t[52];let P;t[53]===Oe?P=t[54]:(P=e=>{let{field:t}=e;return(0,o.jsxs)(ie,{onValueChange:t.onChange,value:t.value,children:[(0,o.jsx)(re,{className:`w-full`,id:`taskDefinition`,children:(0,o.jsx)(ee,{placeholder:`Select a task definition`})}),(0,o.jsx)(ne,{children:Oe.map(De)})]})},t[53]=Oe,t[54]=P);let F;t[55]!==p||t[56]!==P?(F=(0,o.jsx)(xe,{control:p,name:`taskDefinition`,render:P}),t[55]=p,t[56]=P,t[57]=F):F=t[57];let I;t[58]===h.taskDefinition?I=t[59]:(I=(0,o.jsx)(ge,{errors:[h.taskDefinition]}),t[58]=h.taskDefinition,t[59]=I);let L;t[60]!==F||t[61]!==I?(L=(0,o.jsxs)(i,{children:[Ze,F,I]}),t[60]=F,t[61]=I,t[62]=L):L=t[62];let Qe;t[63]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`desiredCount`,children:`Desired count`})}),t[63]=Qe):Qe=t[63];let R;t[64]===m?R=t[65]:(R=m(`desiredCount`,{valueAsNumber:!0}),t[64]=m,t[65]=R);let z;t[66]===R?z=t[67]:(z=(0,o.jsx)(de,{id:`desiredCount`,type:`number`,...R}),t[66]=R,t[67]=z);let B;t[68]===h.desiredCount?B=t[69]:(B=(0,o.jsx)(ge,{errors:[h.desiredCount]}),t[68]=h.desiredCount,t[69]=B);let V;t[70]!==z||t[71]!==B?(V=(0,o.jsxs)(i,{children:[Qe,z,B]}),t[70]=z,t[71]=B,t[72]=V):V=t[72];let H;t[73]!==v||t[74]!==m||t[75]!==Pe||t[76]!==We||t[77]!==b||t[78]!==Ne||t[79]!==C?(H=v&&(0,o.jsxs)(`div`,{className:`space-y-4 rounded-lg border bg-card p-4`,children:[(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This task definition uses awsvpc networking. Select at least one subnet.`}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`span`,{className:`text-sm font-medium`,children:`Subnets`}),(0,o.jsx)(`div`,{className:`mt-2 space-y-1`,children:Ne.map(e=>(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,o.jsx)(`input`,{checked:b.includes(e.SubnetId??``),onChange:()=>C(`subnets`,e.SubnetId??``),type:`checkbox`}),(0,o.jsxs)(`span`,{className:`font-mono`,children:[e.SubnetId,` (`,e.CidrBlock,`)`]})]},e.SubnetId))})]}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`span`,{className:`text-sm font-medium`,children:`Security groups`}),(0,o.jsx)(`div`,{className:`mt-2 space-y-1`,children:Pe.map(e=>(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,o.jsx)(`input`,{checked:We.includes(e.GroupId??``),onChange:()=>C(`securityGroups`,e.GroupId??``),type:`checkbox`}),(0,o.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))})]}),(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,o.jsx)(`input`,{type:`checkbox`,...m(`assignPublicIp`)}),(0,o.jsx)(`span`,{children:`Assign public IP`})]})]}),t[73]=v,t[74]=m,t[75]=Pe,t[76]=We,t[77]=b,t[78]=Ne,t[79]=C,t[80]=H):H=t[80];let $e;t[81]===Symbol.for(`react.memo_cache_sentinel`)?($e=(0,o.jsx)(`h2`,{className:`font-semibold`,children:`Load balancer (optional)`}),t[81]=$e):$e=t[81];let et;t[82]===Symbol.for(`react.memo_cache_sentinel`)?(et=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`targetGroupArn`,children:`Target group`})}),t[82]=et):et=t[82];let U;t[83]===Fe?U=t[84]:(U=e=>{let{field:t}=e;return(0,o.jsxs)(ie,{onValueChange:e=>t.onChange(e===`none`?``:e),value:t.value===``?`none`:t.value,children:[(0,o.jsx)(re,{className:`w-full`,id:`targetGroupArn`,children:(0,o.jsx)(ee,{})}),(0,o.jsxs)(ne,{children:[(0,o.jsx)(te,{value:`none`,children:`none`}),Fe.map(Ee)]})]})},t[83]=Fe,t[84]=U);let W;t[85]!==p||t[86]!==U?(W=(0,o.jsxs)(i,{children:[et,(0,o.jsx)(xe,{control:p,name:`targetGroupArn`,render:U})]}),t[85]=p,t[86]=U,t[87]=W):W=t[87];let tt;t[88]===Symbol.for(`react.memo_cache_sentinel`)?(tt=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`lbContainerName`,children:`Container name`})}),t[88]=tt):tt=t[88];let G;t[89]===m?G=t[90]:(G=m(`loadBalancerContainerName`),t[89]=m,t[90]=G);let K;t[91]===G?K=t[92]:(K=(0,o.jsxs)(i,{children:[tt,(0,o.jsx)(de,{id:`lbContainerName`,placeholder:`app`,...G})]}),t[91]=G,t[92]=K);let nt;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(nt=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`lbContainerPort`,children:`Container port`})}),t[93]=nt):nt=t[93];let q;t[94]===m?q=t[95]:(q=m(`loadBalancerContainerPort`),t[94]=m,t[95]=q);let J;t[96]===q?J=t[97]:(J=(0,o.jsxs)(i,{children:[nt,(0,o.jsx)(de,{id:`lbContainerPort`,placeholder:`80`,type:`number`,...q})]}),t[96]=q,t[97]=J);let Y;t[98]!==K||t[99]!==J?(Y=(0,o.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[K,J]}),t[98]=K,t[99]=J,t[100]=Y):Y=t[100];let X;t[101]!==W||t[102]!==Y?(X=(0,o.jsxs)(`div`,{className:`space-y-4 rounded-lg border bg-card p-4`,children:[$e,W,Y]}),t[101]=W,t[102]=Y,t[103]=X):X=t[103];let rt=s.isPending||Je,Z;t[104]!==w||t[105]!==Ve||t[106]!==rt?(Z=(0,o.jsx)(Se,{isPending:rt,isSubmitting:Ve,onCancel:w,pendingLabel:`Creating…`,submitLabel:`Create Service`}),t[104]=w,t[105]=Ve,t[106]=rt,t[107]=Z):Z=t[107];let Q;t[108]!==k||t[109]!==N||t[110]!==L||t[111]!==V||t[112]!==H||t[113]!==X||t[114]!==Z?(Q=(0,o.jsxs)(`form`,{className:`max-w-2xl space-y-6`,onSubmit:k,children:[N,L,V,H,X,Z]}),t[108]=k,t[109]=N,t[110]=L,t[111]=V,t[112]=H,t[113]=X,t[114]=Z,t[115]=Q):Q=t[115];let $;return t[116]!==E||t[117]!==D||t[118]!==O||t[119]!==Q?($=(0,o.jsxs)(o.Fragment,{children:[E,D,O,Q]}),t[116]=E,t[117]=D,t[118]=O,t[119]=Q,t[120]=$):$=t[120],$}function Ee(e){return(0,o.jsx)(te,{value:e.TargetGroupArn??``,children:e.TargetGroupName},e.TargetGroupArn)}function De(e){let t=Te(e);return(0,o.jsx)(te,{value:t,children:t},e)}function Oe(){let e=(0,we.c)(2),{cluster:t}=r.useSearch(),n;return e[0]===t?n=e[1]:(n=(0,o.jsx)(s,{cluster:t}),e[0]=t,e[1]=n),n}export{Oe as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as ee,i as te,n as ne,s as re,t as ie}from"./select.js";import{O as ae,w as oe}from"./ec2.js";import{a as se,o as ce}from"./ecs.js";import{n as le}from"./ecs2.js";import{u as ue}from"./elbv22.js";import{$n as de,An as fe,Dn as pe,En as me,M as r,Rn as he,Sn as ge,Tn as _e,W as ve,dn as i,er as ye,hn as a,kn as be,pn as xe,yn as Se}from"./index.js";import{n as Ce}from"./ecs3.js";var we=t(),o=e();function Te(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function s(e){let t=(0,we.c)(121),{cluster:r}=e,Te=n(),s=le(),{data:Oe}=de(ce),{data:ke}=de(ae),{data:Ae}=de(oe),{data:je}=de(ue),Me;t[0]===ke.Subnets?Me=t[1]:(Me=ke.Subnets??[],t[0]=ke.Subnets,t[1]=Me);let Ne=Me,c;t[2]===Ae.SecurityGroups?c=t[3]:(c=Ae.SecurityGroups??[],t[2]=Ae.SecurityGroups,t[3]=c);let Pe=c,l;t[4]===je.TargetGroups?l=t[5]:(l=je.TargetGroups??[],t[4]=je.TargetGroups,t[5]=l);let Fe=l,Ie;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=me(Ce),t[6]=Ie):Ie=t[6];let u,d;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(u=[],d=[],t[7]=u,t[8]=d):(u=t[7],d=t[8]);let f;t[9]===r?f=t[10]:(f={resolver:Ie,defaultValues:{cluster:r,serviceName:``,taskDefinition:``,desiredCount:1,subnets:u,securityGroups:d,assignPublicIp:!1,targetGroupArn:``,loadBalancerContainerName:``,loadBalancerContainerPort:``}},t[9]=r,t[10]=f);let{control:p,handleSubmit:Le,register:m,setValue:Re,getValues:ze,formState:Be}=be(f),{errors:h,isSubmitting:Ve}=Be,g;t[11]===p?g=t[12]:(g={control:p,name:`taskDefinition`},t[11]=p,t[12]=g);let He=fe(g),_;t[13]===He?_=t[14]:(_=se(He),t[13]=He,t[14]=_);let{data:Ue}=ye(_),v=Ue?.networkMode===`awsvpc`,y;t[15]===p?y=t[16]:(y={control:p,name:`subnets`},t[15]=p,t[16]=y);let b=fe(y),x;t[17]===p?x=t[18]:(x={control:p,name:`securityGroups`},t[17]=p,t[18]=x);let We=fe(x),S;t[19]!==ze||t[20]!==Re?(S=(e,t)=>{let n=ze(e);Re(e,n.includes(t)?n.filter(e=>e!==t):[...n,t],{shouldValidate:!0})},t[19]=ze,t[20]=Re,t[21]=S):S=t[21];let C=S,Ge;t[22]!==r||t[23]!==Te?(Ge=function(){Te({to:`/ecs/list-clusters/$clusterName`,params:{clusterName:r}})},t[22]=r,t[23]=Te,t[24]=Ge):Ge=t[24];let w=Ge,Ke;t[25]!==v||t[26]!==s||t[27]!==w?(Ke=async function(e){await s.mutateAsync({...e,awsvpc:v}),w()},t[25]=v,t[26]=s,t[27]=w,t[28]=Ke):Ke=t[28];let qe=Ke,Je=v&&b.length===0,T;t[29]===r?T=t[30]:(T={clusterName:r},t[29]=r,t[30]=T);let E;t[31]!==r||t[32]!==T?(E=(0,o.jsx)(_e,{params:T,to:`/ecs/list-clusters/$clusterName`,children:r}),t[31]=r,t[32]=T,t[33]=E):E=t[33];let Ye=`Cluster: ${r}`,D;t[34]===Ye?D=t[35]:(D=(0,o.jsx)(Se,{subtitle:Ye,title:`Create Service`}),t[34]=Ye,t[35]=D);let O;t[36]!==s.error||t[37]!==s.isError?(O=s.isError&&(0,o.jsx)(ge,{error:s.error instanceof Error?s.error:void 0,msg:`Failed to create service.`}),t[36]=s.error,t[37]=s.isError,t[38]=O):O=t[38];let k;t[39]!==Le||t[40]!==qe?(k=Le(qe),t[39]=Le,t[40]=qe,t[41]=k):k=t[41];let Xe;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(Xe=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`serviceName`,children:`Service name`})}),t[42]=Xe):Xe=t[42];let A;t[43]===m?A=t[44]:(A=m(`serviceName`),t[43]=m,t[44]=A);let j;t[45]===A?j=t[46]:(j=(0,o.jsx)(he,{id:`serviceName`,placeholder:`api`,...A}),t[45]=A,t[46]=j);let M;t[47]===h.serviceName?M=t[48]:(M=(0,o.jsx)(xe,{errors:[h.serviceName]}),t[47]=h.serviceName,t[48]=M);let N;t[49]!==j||t[50]!==M?(N=(0,o.jsxs)(i,{children:[Xe,j,M]}),t[49]=j,t[50]=M,t[51]=N):N=t[51];let Ze;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Ze=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`taskDefinition`,children:`Task definition`})}),t[52]=Ze):Ze=t[52];let P;t[53]===Oe?P=t[54]:(P=e=>{let{field:t}=e;return(0,o.jsxs)(ie,{onValueChange:t.onChange,value:t.value,children:[(0,o.jsx)(re,{className:`w-full`,id:`taskDefinition`,children:(0,o.jsx)(ee,{placeholder:`Select a task definition`})}),(0,o.jsx)(ne,{children:Oe.map(De)})]})},t[53]=Oe,t[54]=P);let F;t[55]!==p||t[56]!==P?(F=(0,o.jsx)(pe,{control:p,name:`taskDefinition`,render:P}),t[55]=p,t[56]=P,t[57]=F):F=t[57];let I;t[58]===h.taskDefinition?I=t[59]:(I=(0,o.jsx)(xe,{errors:[h.taskDefinition]}),t[58]=h.taskDefinition,t[59]=I);let L;t[60]!==F||t[61]!==I?(L=(0,o.jsxs)(i,{children:[Ze,F,I]}),t[60]=F,t[61]=I,t[62]=L):L=t[62];let Qe;t[63]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`desiredCount`,children:`Desired count`})}),t[63]=Qe):Qe=t[63];let R;t[64]===m?R=t[65]:(R=m(`desiredCount`,{valueAsNumber:!0}),t[64]=m,t[65]=R);let z;t[66]===R?z=t[67]:(z=(0,o.jsx)(he,{id:`desiredCount`,type:`number`,...R}),t[66]=R,t[67]=z);let B;t[68]===h.desiredCount?B=t[69]:(B=(0,o.jsx)(xe,{errors:[h.desiredCount]}),t[68]=h.desiredCount,t[69]=B);let V;t[70]!==z||t[71]!==B?(V=(0,o.jsxs)(i,{children:[Qe,z,B]}),t[70]=z,t[71]=B,t[72]=V):V=t[72];let H;t[73]!==v||t[74]!==m||t[75]!==Pe||t[76]!==We||t[77]!==b||t[78]!==Ne||t[79]!==C?(H=v&&(0,o.jsxs)(`div`,{className:`space-y-4 rounded-lg border bg-card p-4`,children:[(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This task definition uses awsvpc networking. Select at least one subnet.`}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`span`,{className:`text-sm font-medium`,children:`Subnets`}),(0,o.jsx)(`div`,{className:`mt-2 space-y-1`,children:Ne.map(e=>(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,o.jsx)(`input`,{checked:b.includes(e.SubnetId??``),onChange:()=>C(`subnets`,e.SubnetId??``),type:`checkbox`}),(0,o.jsxs)(`span`,{className:`font-mono`,children:[e.SubnetId,` (`,e.CidrBlock,`)`]})]},e.SubnetId))})]}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`span`,{className:`text-sm font-medium`,children:`Security groups`}),(0,o.jsx)(`div`,{className:`mt-2 space-y-1`,children:Pe.map(e=>(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,o.jsx)(`input`,{checked:We.includes(e.GroupId??``),onChange:()=>C(`securityGroups`,e.GroupId??``),type:`checkbox`}),(0,o.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))})]}),(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,o.jsx)(`input`,{type:`checkbox`,...m(`assignPublicIp`)}),(0,o.jsx)(`span`,{children:`Assign public IP`})]})]}),t[73]=v,t[74]=m,t[75]=Pe,t[76]=We,t[77]=b,t[78]=Ne,t[79]=C,t[80]=H):H=t[80];let $e;t[81]===Symbol.for(`react.memo_cache_sentinel`)?($e=(0,o.jsx)(`h2`,{className:`font-semibold`,children:`Load balancer (optional)`}),t[81]=$e):$e=t[81];let et;t[82]===Symbol.for(`react.memo_cache_sentinel`)?(et=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`targetGroupArn`,children:`Target group`})}),t[82]=et):et=t[82];let U;t[83]===Fe?U=t[84]:(U=e=>{let{field:t}=e;return(0,o.jsxs)(ie,{onValueChange:e=>t.onChange(e===`none`?``:e),value:t.value===``?`none`:t.value,children:[(0,o.jsx)(re,{className:`w-full`,id:`targetGroupArn`,children:(0,o.jsx)(ee,{})}),(0,o.jsxs)(ne,{children:[(0,o.jsx)(te,{value:`none`,children:`none`}),Fe.map(Ee)]})]})},t[83]=Fe,t[84]=U);let W;t[85]!==p||t[86]!==U?(W=(0,o.jsxs)(i,{children:[et,(0,o.jsx)(pe,{control:p,name:`targetGroupArn`,render:U})]}),t[85]=p,t[86]=U,t[87]=W):W=t[87];let tt;t[88]===Symbol.for(`react.memo_cache_sentinel`)?(tt=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`lbContainerName`,children:`Container name`})}),t[88]=tt):tt=t[88];let G;t[89]===m?G=t[90]:(G=m(`loadBalancerContainerName`),t[89]=m,t[90]=G);let K;t[91]===G?K=t[92]:(K=(0,o.jsxs)(i,{children:[tt,(0,o.jsx)(he,{id:`lbContainerName`,placeholder:`app`,...G})]}),t[91]=G,t[92]=K);let nt;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(nt=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`lbContainerPort`,children:`Container port`})}),t[93]=nt):nt=t[93];let q;t[94]===m?q=t[95]:(q=m(`loadBalancerContainerPort`),t[94]=m,t[95]=q);let J;t[96]===q?J=t[97]:(J=(0,o.jsxs)(i,{children:[nt,(0,o.jsx)(he,{id:`lbContainerPort`,placeholder:`80`,type:`number`,...q})]}),t[96]=q,t[97]=J);let Y;t[98]!==K||t[99]!==J?(Y=(0,o.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[K,J]}),t[98]=K,t[99]=J,t[100]=Y):Y=t[100];let X;t[101]!==W||t[102]!==Y?(X=(0,o.jsxs)(`div`,{className:`space-y-4 rounded-lg border bg-card p-4`,children:[$e,W,Y]}),t[101]=W,t[102]=Y,t[103]=X):X=t[103];let rt=s.isPending||Je,Z;t[104]!==w||t[105]!==Ve||t[106]!==rt?(Z=(0,o.jsx)(ve,{isPending:rt,isSubmitting:Ve,onCancel:w,pendingLabel:`Creating…`,submitLabel:`Create Service`}),t[104]=w,t[105]=Ve,t[106]=rt,t[107]=Z):Z=t[107];let Q;t[108]!==k||t[109]!==N||t[110]!==L||t[111]!==V||t[112]!==H||t[113]!==X||t[114]!==Z?(Q=(0,o.jsxs)(`form`,{className:`max-w-2xl space-y-6`,onSubmit:k,children:[N,L,V,H,X,Z]}),t[108]=k,t[109]=N,t[110]=L,t[111]=V,t[112]=H,t[113]=X,t[114]=Z,t[115]=Q):Q=t[115];let $;return t[116]!==E||t[117]!==D||t[118]!==O||t[119]!==Q?($=(0,o.jsxs)(o.Fragment,{children:[E,D,O,Q]}),t[116]=E,t[117]=D,t[118]=O,t[119]=Q,t[120]=$):$=t[120],$}function Ee(e){return(0,o.jsx)(te,{value:e.TargetGroupArn??``,children:e.TargetGroupName},e.TargetGroupArn)}function De(e){let t=Te(e);return(0,o.jsx)(te,{value:t,children:t},e)}function Oe(){let e=(0,we.c)(2),{cluster:t}=r.useSearch(),n;return e[0]===t?n=e[1]:(n=(0,o.jsx)(s,{cluster:t}),e[0]=t,e[1]=n),n}export{Oe as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-snapshot.js b/spinifex/services/spinifexui/frontend/dist/assets/create-snapshot.js index 63316734a..759bd3b6e 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-snapshot.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-snapshot.js @@ -1,3 +1,3 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as r,i,n as a,s as o,t as ee}from"./select.js";import{A as te}from"./ec2.js";import{N as ne,Sn as s,Xn as c,_n as l,an as re,bt as u,dn as d,hn as f,mn as p,q as m,rn as h,sn as g,vn as ie,xn as ae,yn as oe}from"./index.js";import{t as se}from"./form-actions.js";import{t as ce}from"./textarea.js";var le=t(),_=e();function v(){let e=(0,le.c)(55),t=n(),{data:i}=c(te),v=u(),y;e[0]===i.Volumes?y=e[1]:(y=i.Volumes??[],e[0]=i.Volumes,e[1]=y);let b=y,{volumeId:fe}=ne.useSearch(),x=fe??b[0]?.VolumeId??``,S;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(S=ie(m),e[2]=S):S=e[2];let C;e[3]===x?C=e[4]:(C={resolver:S,defaultValues:{volumeId:x,description:``}},e[3]=x,e[4]=C);let{control:w,handleSubmit:T,register:E,formState:D}=ae(C),{errors:O,isSubmitting:k}=D,A;e[5]===w?A=e[6]:(A={control:w},e[5]=w,e[6]=A);let j=s(A),M;e[7]===j?M=e[8]:(M=e=>e?j[e]:void 0,e[7]=j,e[8]=M);let N=M,P;e[9]!==v||e[10]!==t?(P=async e=>{await v.mutateAsync(e),t({to:`/ec2/describe-snapshots`})},e[9]=v,e[10]=t,e[11]=P):P=e[11];let F=P,I,L;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,_.jsx)(l,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),L=(0,_.jsx)(d,{title:`Create Snapshot`}),e[12]=I,e[13]=L):(I=e[12],L=e[13]);let R;e[14]===v.error?R=e[15]:(R=v.error&&(0,_.jsx)(p,{error:v.error,msg:`Failed to create snapshot`}),e[14]=v.error,e[15]=R);let z;e[16]!==T||e[17]!==F?(z=T(F),e[16]=T,e[17]=F,e[18]=z):z=e[18];let B;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,_.jsx)(g,{children:(0,_.jsx)(`label`,{htmlFor:`volumeId`,children:`Volume`})}),e[19]=B):B=e[19];let V;e[20]!==O.volumeId||e[21]!==b?(V=e=>{let{field:t}=e;return(0,_.jsxs)(ee,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,_.jsx)(o,{"aria-invalid":!!O.volumeId,className:`w-full`,id:`volumeId`,children:(0,_.jsx)(r,{})}),(0,_.jsx)(a,{children:b.map(ue)})]})},e[20]=O.volumeId,e[21]=b,e[22]=V):V=e[22];let H;e[23]!==w||e[24]!==V?(H=(0,_.jsx)(oe,{control:w,name:`volumeId`,render:V}),e[23]=w,e[24]=V,e[25]=H):H=e[25];let U;e[26]===O.volumeId?U=e[27]:(U=(0,_.jsx)(re,{errors:[O.volumeId]}),e[26]=O.volumeId,e[27]=U);let W;e[28]!==H||e[29]!==U?(W=(0,_.jsxs)(h,{children:[B,H,U]}),e[28]=H,e[29]=U,e[30]=W):W=e[30];let G;e[31]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,_.jsx)(g,{children:(0,_.jsx)(`label`,{htmlFor:`description`,children:`Description (optional)`})}),e[31]=G):G=e[31];let K;e[32]===E?K=e[33]:(K=E(`description`),e[32]=E,e[33]=K);let q;e[34]===K?q=e[35]:(q=(0,_.jsxs)(h,{children:[G,(0,_.jsx)(ce,{id:`description`,placeholder:`Snapshot description`,...K})]}),e[34]=K,e[35]=q);let J;e[36]===N?J=e[37]:(J=de(N),e[36]=N,e[37]=J);let Y;e[38]===J?Y=e[39]:(Y=(0,_.jsx)(f,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/ec2/describe-snapshots`}),e[40]=t,e[41]=X);let Z;e[42]!==v.isPending||e[43]!==k||e[44]!==X?(Z=(0,_.jsx)(se,{isPending:v.isPending,isSubmitting:k,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Snapshot`}),e[42]=v.isPending,e[43]=k,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==z||e[47]!==W||e[48]!==q||e[49]!==Y||e[50]!==Z?(Q=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:z,children:[W,q,Y,Z]}),e[46]=z,e[47]=W,e[48]=q,e[49]=Y,e[50]=Z,e[51]=Q):Q=e[51];let $;return e[52]!==Q||e[53]!==R?($=(0,_.jsxs)(_.Fragment,{children:[I,L,R,Q]}),e[52]=Q,e[53]=R,e[54]=$):$=e[54],$}function ue(e){return(0,_.jsxs)(i,{value:e.VolumeId??``,children:[e.VolumeId,` (`,e.Size,` GiB)`]},e.VolumeId)}function de(e){let t=e(`volumeId`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-snapshot`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as r,i,n as a,s as o,t as ee}from"./select.js";import{A as te}from"./ec2.js";import{$n as ne,An as s,Cn as c,Dn as l,En as re,N as u,Ot as d,Sn as f,Tn as p,W as m,dn as h,hn as g,kn as ie,nt as ae,pn as oe,yn as se}from"./index.js";import{t as ce}from"./textarea.js";var le=t(),_=e();function v(){let e=(0,le.c)(55),t=n(),{data:i}=ne(te),v=d(),y;e[0]===i.Volumes?y=e[1]:(y=i.Volumes??[],e[0]=i.Volumes,e[1]=y);let b=y,{volumeId:fe}=u.useSearch(),x=fe??b[0]?.VolumeId??``,S;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(S=re(ae),e[2]=S):S=e[2];let C;e[3]===x?C=e[4]:(C={resolver:S,defaultValues:{volumeId:x,description:``}},e[3]=x,e[4]=C);let{control:w,handleSubmit:T,register:E,formState:D}=ie(C),{errors:O,isSubmitting:k}=D,A;e[5]===w?A=e[6]:(A={control:w},e[5]=w,e[6]=A);let j=s(A),M;e[7]===j?M=e[8]:(M=e=>e?j[e]:void 0,e[7]=j,e[8]=M);let N=M,P;e[9]!==v||e[10]!==t?(P=async e=>{await v.mutateAsync(e),t({to:`/ec2/describe-snapshots`})},e[9]=v,e[10]=t,e[11]=P):P=e[11];let F=P,I,L;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,_.jsx)(p,{to:`/ec2/describe-snapshots`,children:`Back to snapshots`}),L=(0,_.jsx)(se,{title:`Create Snapshot`}),e[12]=I,e[13]=L):(I=e[12],L=e[13]);let R;e[14]===v.error?R=e[15]:(R=v.error&&(0,_.jsx)(f,{error:v.error,msg:`Failed to create snapshot`}),e[14]=v.error,e[15]=R);let z;e[16]!==T||e[17]!==F?(z=T(F),e[16]=T,e[17]=F,e[18]=z):z=e[18];let B;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,_.jsx)(g,{children:(0,_.jsx)(`label`,{htmlFor:`volumeId`,children:`Volume`})}),e[19]=B):B=e[19];let V;e[20]!==O.volumeId||e[21]!==b?(V=e=>{let{field:t}=e;return(0,_.jsxs)(ee,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,_.jsx)(o,{"aria-invalid":!!O.volumeId,className:`w-full`,id:`volumeId`,children:(0,_.jsx)(r,{})}),(0,_.jsx)(a,{children:b.map(ue)})]})},e[20]=O.volumeId,e[21]=b,e[22]=V):V=e[22];let H;e[23]!==w||e[24]!==V?(H=(0,_.jsx)(l,{control:w,name:`volumeId`,render:V}),e[23]=w,e[24]=V,e[25]=H):H=e[25];let U;e[26]===O.volumeId?U=e[27]:(U=(0,_.jsx)(oe,{errors:[O.volumeId]}),e[26]=O.volumeId,e[27]=U);let W;e[28]!==H||e[29]!==U?(W=(0,_.jsxs)(h,{children:[B,H,U]}),e[28]=H,e[29]=U,e[30]=W):W=e[30];let G;e[31]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,_.jsx)(g,{children:(0,_.jsx)(`label`,{htmlFor:`description`,children:`Description (optional)`})}),e[31]=G):G=e[31];let K;e[32]===E?K=e[33]:(K=E(`description`),e[32]=E,e[33]=K);let q;e[34]===K?q=e[35]:(q=(0,_.jsxs)(h,{children:[G,(0,_.jsx)(ce,{id:`description`,placeholder:`Snapshot description`,...K})]}),e[34]=K,e[35]=q);let J;e[36]===N?J=e[37]:(J=de(N),e[36]=N,e[37]=J);let Y;e[38]===J?Y=e[39]:(Y=(0,_.jsx)(c,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/ec2/describe-snapshots`}),e[40]=t,e[41]=X);let Z;e[42]!==v.isPending||e[43]!==k||e[44]!==X?(Z=(0,_.jsx)(m,{isPending:v.isPending,isSubmitting:k,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Snapshot`}),e[42]=v.isPending,e[43]=k,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==z||e[47]!==W||e[48]!==q||e[49]!==Y||e[50]!==Z?(Q=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:z,children:[W,q,Y,Z]}),e[46]=z,e[47]=W,e[48]=q,e[49]=Y,e[50]=Z,e[51]=Q):Q=e[51];let $;return e[52]!==Q||e[53]!==R?($=(0,_.jsxs)(_.Fragment,{children:[I,L,R,Q]}),e[52]=Q,e[53]=R,e[54]=$):$=e[54],$}function ue(e){return(0,_.jsxs)(i,{value:e.VolumeId??``,children:[e.VolumeId,` (`,e.Size,` GiB)`]},e.VolumeId)}function de(e){let t=e(`volumeId`),n=typeof t==`string`?t:``,r=e(`description`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-snapshot`},{type:`flag`,value:` \\ --volume-id`},{type:`value`,value:` ${n||``}`}];return i&&a.push({type:`flag`,value:` \\ --description`},{type:`value`,value:` "${i}"`}),[{label:`Create Snapshot`,parts:a}]}export{v as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-subnet.js b/spinifex/services/spinifexui/frontend/dist/assets/create-subnet.js index 80503d5bf..ddc394632 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-subnet.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-subnet.js @@ -1,4 +1,4 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{$t as r}from"./auth.js";import{c as i,i as a,n as o,s,t as c}from"./select.js";import{M as ee,r as te}from"./ec2.js";import{J as ne,Ln as re,Sn as ie,Xn as ae,_n as oe,an as se,dn as ce,hn as le,mn as ue,rn as l,sn as u,vn as de,xn as fe,xt as pe,yn as me}from"./index.js";import{t as he}from"./form-actions.js";var ge=t(),d=e();function f(){let e=(0,ge.c)(74),t=n(),{data:r}=ae(ee),{data:f}=ae(te),p=pe(),m;e[0]===r.Vpcs?m=e[1]:(m=r.Vpcs??[],e[0]=r.Vpcs,e[1]=m);let h=m,g;e[2]===f.AvailabilityZones?g=e[3]:(g=f.AvailabilityZones??[],e[2]=f.AvailabilityZones,e[3]=g);let _=g,v;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=de(ne),e[4]=v):v=e[4];let y=h[0]?.VpcId??``,b;e[5]===y?b=e[6]:(b={resolver:v,defaultValues:{vpcId:y,cidrBlock:`10.0.1.0/24`,availabilityZone:void 0,mapPublicIpOnLaunch:!1}},e[5]=y,e[6]=b);let{control:x,handleSubmit:xe,register:Se,formState:Ce}=fe(b),{errors:S,isSubmitting:we}=Ce,C;e[7]===x?C=e[8]:(C={control:x},e[7]=x,e[8]=C);let w=ie(C),T;e[9]===w?T=e[10]:(T=e=>e?w[e]:void 0,e[9]=w,e[10]=T);let E=T,D;e[11]!==p||e[12]!==t?(D=async e=>{let n=(await p.mutateAsync(e)).Subnet?.SubnetId;t(n?{to:`/ec2/describe-subnets/$id`,params:{id:n}}:{to:`/ec2/describe-subnets`})},e[11]=p,e[12]=t,e[13]=D):D=e[13];let O=D,k,A;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,d.jsx)(oe,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),k=(0,d.jsx)(ce,{title:`Create Subnet`}),e[14]=k,e[15]=A):(k=e[14],A=e[15]);let j;e[16]===p.error?j=e[17]:(j=p.error&&(0,d.jsx)(ue,{error:p.error,msg:`Failed to create subnet`}),e[16]=p.error,e[17]=j);let M;e[18]!==xe||e[19]!==O?(M=xe(O),e[18]=xe,e[19]=O,e[20]=M):M=e[20];let N;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`vpcId`,children:`VPC`})}),e[21]=N):N=e[21];let P;e[22]!==S.vpcId||e[23]!==h?(P=e=>{let{field:t}=e;return(0,d.jsxs)(c,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,d.jsx)(s,{"aria-invalid":!!S.vpcId,className:`w-full`,id:`vpcId`,children:(0,d.jsx)(i,{})}),(0,d.jsx)(o,{children:h.map(ye)})]})},e[22]=S.vpcId,e[23]=h,e[24]=P):P=e[24];let F;e[25]!==x||e[26]!==P?(F=(0,d.jsx)(me,{control:x,name:`vpcId`,render:P}),e[25]=x,e[26]=P,e[27]=F):F=e[27];let I;e[28]===S.vpcId?I=e[29]:(I=(0,d.jsx)(se,{errors:[S.vpcId]}),e[28]=S.vpcId,e[29]=I);let L;e[30]!==F||e[31]!==I?(L=(0,d.jsxs)(l,{children:[N,F,I]}),e[30]=F,e[31]=I,e[32]=L):L=e[32];let R;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`cidrBlock`,children:`CIDR Block`})}),e[33]=R):R=e[33];let Te=!!S.cidrBlock,z;e[34]===Se?z=e[35]:(z=Se(`cidrBlock`),e[34]=Se,e[35]=z);let B;e[36]!==Te||e[37]!==z?(B=(0,d.jsx)(re,{"aria-invalid":Te,id:`cidrBlock`,placeholder:`10.0.1.0/24`,...z}),e[36]=Te,e[37]=z,e[38]=B):B=e[38];let V;e[39]===S.cidrBlock?V=e[40]:(V=(0,d.jsx)(se,{errors:[S.cidrBlock]}),e[39]=S.cidrBlock,e[40]=V);let H;e[41]!==B||e[42]!==V?(H=(0,d.jsxs)(l,{children:[R,B,V]}),e[41]=B,e[42]=V,e[43]=H):H=e[43];let U;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`availabilityZone`,children:`Availability Zone (optional)`})}),e[44]=U):U=e[44];let W;e[45]===_?W=e[46]:(W=e=>{let{field:t}=e;return(0,d.jsxs)(c,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,d.jsx)(s,{className:`w-full`,id:`availabilityZone`,children:(0,d.jsx)(i,{})}),(0,d.jsxs)(o,{children:[(0,d.jsx)(a,{value:`none`,children:`none`}),_.map(ve)]})]})},e[45]=_,e[46]=W);let G;e[47]!==x||e[48]!==W?(G=(0,d.jsxs)(l,{children:[U,(0,d.jsx)(me,{control:x,name:`availabilityZone`,render:W})]}),e[47]=x,e[48]=W,e[49]=G):G=e[49];let K;e[50]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,d.jsx)(u,{children:`Auto-assign public IPv4`}),e[50]=K):K=e[50];let q;e[51]===x?q=e[52]:(q=(0,d.jsxs)(l,{children:[K,(0,d.jsx)(me,{control:x,name:`mapPublicIpOnLaunch`,render:_e})]}),e[51]=x,e[52]=q);let J;e[53]===E?J=e[54]:(J=be(E),e[53]=E,e[54]=J);let Y;e[55]===J?Y=e[56]:(Y=(0,d.jsx)(le,{commands:J}),e[55]=J,e[56]=Y);let X;e[57]===t?X=e[58]:(X=async()=>await t({to:`/ec2/describe-subnets`}),e[57]=t,e[58]=X);let Z;e[59]!==p.isPending||e[60]!==we||e[61]!==X?(Z=(0,d.jsx)(he,{isPending:p.isPending,isSubmitting:we,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Subnet`}),e[59]=p.isPending,e[60]=we,e[61]=X,e[62]=Z):Z=e[62];let Q;e[63]!==M||e[64]!==L||e[65]!==H||e[66]!==G||e[67]!==q||e[68]!==Y||e[69]!==Z?(Q=(0,d.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:M,children:[L,H,G,q,Y,Z]}),e[63]=M,e[64]=L,e[65]=H,e[66]=G,e[67]=q,e[68]=Y,e[69]=Z,e[70]=Q):Q=e[70];let $;return e[71]!==j||e[72]!==Q?($=(0,d.jsxs)(d.Fragment,{children:[A,k,j,Q]}),e[71]=j,e[72]=Q,e[73]=$):$=e[73],$}function _e(e){let{field:t}=e;return(0,d.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,d.jsx)(`input`,{"aria-label":`Enable auto-assign public IPv4 address`,checked:t.value??!1,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Enable auto-assign public IPv4 address`]})}function ve(e){return(0,d.jsx)(a,{value:e.ZoneName??``,children:e.ZoneName},e.ZoneName)}function ye(e){let t=r(e.Tags);return(0,d.jsx)(a,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}function be(e){let t=e(`vpcId`),n=typeof t==`string`?t:``,r=e(`cidrBlock`),i=typeof r==`string`?r:``,a=e(`availabilityZone`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-subnet`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{$t as r}from"./auth.js";import{c as i,i as a,n as o,s,t as c}from"./select.js";import{M as ee,r as te}from"./ec2.js";import{$n as ne,An as re,Cn as ie,Dn as ae,En as oe,Rn as se,Sn as ce,Tn as le,W as ue,dn as l,hn as u,kn as de,kt as fe,pn as pe,rt as me,yn as he}from"./index.js";var ge=t(),d=e();function f(){let e=(0,ge.c)(74),t=n(),{data:r}=ne(ee),{data:f}=ne(te),p=fe(),m;e[0]===r.Vpcs?m=e[1]:(m=r.Vpcs??[],e[0]=r.Vpcs,e[1]=m);let h=m,g;e[2]===f.AvailabilityZones?g=e[3]:(g=f.AvailabilityZones??[],e[2]=f.AvailabilityZones,e[3]=g);let _=g,v;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(v=oe(me),e[4]=v):v=e[4];let y=h[0]?.VpcId??``,b;e[5]===y?b=e[6]:(b={resolver:v,defaultValues:{vpcId:y,cidrBlock:`10.0.1.0/24`,availabilityZone:void 0,mapPublicIpOnLaunch:!1}},e[5]=y,e[6]=b);let{control:x,handleSubmit:xe,register:Se,formState:Ce}=de(b),{errors:S,isSubmitting:we}=Ce,C;e[7]===x?C=e[8]:(C={control:x},e[7]=x,e[8]=C);let w=re(C),T;e[9]===w?T=e[10]:(T=e=>e?w[e]:void 0,e[9]=w,e[10]=T);let E=T,D;e[11]!==p||e[12]!==t?(D=async e=>{let n=(await p.mutateAsync(e)).Subnet?.SubnetId;t(n?{to:`/ec2/describe-subnets/$id`,params:{id:n}}:{to:`/ec2/describe-subnets`})},e[11]=p,e[12]=t,e[13]=D):D=e[13];let O=D,k,A;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,d.jsx)(le,{to:`/ec2/describe-subnets`,children:`Back to Subnets`}),k=(0,d.jsx)(he,{title:`Create Subnet`}),e[14]=k,e[15]=A):(k=e[14],A=e[15]);let j;e[16]===p.error?j=e[17]:(j=p.error&&(0,d.jsx)(ce,{error:p.error,msg:`Failed to create subnet`}),e[16]=p.error,e[17]=j);let M;e[18]!==xe||e[19]!==O?(M=xe(O),e[18]=xe,e[19]=O,e[20]=M):M=e[20];let N;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`vpcId`,children:`VPC`})}),e[21]=N):N=e[21];let P;e[22]!==S.vpcId||e[23]!==h?(P=e=>{let{field:t}=e;return(0,d.jsxs)(c,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,d.jsx)(s,{"aria-invalid":!!S.vpcId,className:`w-full`,id:`vpcId`,children:(0,d.jsx)(i,{})}),(0,d.jsx)(o,{children:h.map(ye)})]})},e[22]=S.vpcId,e[23]=h,e[24]=P):P=e[24];let F;e[25]!==x||e[26]!==P?(F=(0,d.jsx)(ae,{control:x,name:`vpcId`,render:P}),e[25]=x,e[26]=P,e[27]=F):F=e[27];let I;e[28]===S.vpcId?I=e[29]:(I=(0,d.jsx)(pe,{errors:[S.vpcId]}),e[28]=S.vpcId,e[29]=I);let L;e[30]!==F||e[31]!==I?(L=(0,d.jsxs)(l,{children:[N,F,I]}),e[30]=F,e[31]=I,e[32]=L):L=e[32];let R;e[33]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`cidrBlock`,children:`CIDR Block`})}),e[33]=R):R=e[33];let Te=!!S.cidrBlock,z;e[34]===Se?z=e[35]:(z=Se(`cidrBlock`),e[34]=Se,e[35]=z);let B;e[36]!==Te||e[37]!==z?(B=(0,d.jsx)(se,{"aria-invalid":Te,id:`cidrBlock`,placeholder:`10.0.1.0/24`,...z}),e[36]=Te,e[37]=z,e[38]=B):B=e[38];let V;e[39]===S.cidrBlock?V=e[40]:(V=(0,d.jsx)(pe,{errors:[S.cidrBlock]}),e[39]=S.cidrBlock,e[40]=V);let H;e[41]!==B||e[42]!==V?(H=(0,d.jsxs)(l,{children:[R,B,V]}),e[41]=B,e[42]=V,e[43]=H):H=e[43];let U;e[44]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`availabilityZone`,children:`Availability Zone (optional)`})}),e[44]=U):U=e[44];let W;e[45]===_?W=e[46]:(W=e=>{let{field:t}=e;return(0,d.jsxs)(c,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,d.jsx)(s,{className:`w-full`,id:`availabilityZone`,children:(0,d.jsx)(i,{})}),(0,d.jsxs)(o,{children:[(0,d.jsx)(a,{value:`none`,children:`none`}),_.map(ve)]})]})},e[45]=_,e[46]=W);let G;e[47]!==x||e[48]!==W?(G=(0,d.jsxs)(l,{children:[U,(0,d.jsx)(ae,{control:x,name:`availabilityZone`,render:W})]}),e[47]=x,e[48]=W,e[49]=G):G=e[49];let K;e[50]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,d.jsx)(u,{children:`Auto-assign public IPv4`}),e[50]=K):K=e[50];let q;e[51]===x?q=e[52]:(q=(0,d.jsxs)(l,{children:[K,(0,d.jsx)(ae,{control:x,name:`mapPublicIpOnLaunch`,render:_e})]}),e[51]=x,e[52]=q);let J;e[53]===E?J=e[54]:(J=be(E),e[53]=E,e[54]=J);let Y;e[55]===J?Y=e[56]:(Y=(0,d.jsx)(ie,{commands:J}),e[55]=J,e[56]=Y);let X;e[57]===t?X=e[58]:(X=async()=>await t({to:`/ec2/describe-subnets`}),e[57]=t,e[58]=X);let Z;e[59]!==p.isPending||e[60]!==we||e[61]!==X?(Z=(0,d.jsx)(ue,{isPending:p.isPending,isSubmitting:we,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Subnet`}),e[59]=p.isPending,e[60]=we,e[61]=X,e[62]=Z):Z=e[62];let Q;e[63]!==M||e[64]!==L||e[65]!==H||e[66]!==G||e[67]!==q||e[68]!==Y||e[69]!==Z?(Q=(0,d.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:M,children:[L,H,G,q,Y,Z]}),e[63]=M,e[64]=L,e[65]=H,e[66]=G,e[67]=q,e[68]=Y,e[69]=Z,e[70]=Q):Q=e[70];let $;return e[71]!==j||e[72]!==Q?($=(0,d.jsxs)(d.Fragment,{children:[A,k,j,Q]}),e[71]=j,e[72]=Q,e[73]=$):$=e[73],$}function _e(e){let{field:t}=e;return(0,d.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,d.jsx)(`input`,{"aria-label":`Enable auto-assign public IPv4 address`,checked:t.value??!1,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Enable auto-assign public IPv4 address`]})}function ve(e){return(0,d.jsx)(a,{value:e.ZoneName??``,children:e.ZoneName},e.ZoneName)}function ye(e){let t=r(e.Tags);return(0,d.jsx)(a,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}function be(e){let t=e(`vpcId`),n=typeof t==`string`?t:``,r=e(`cidrBlock`),i=typeof r==`string`?r:``,a=e(`availabilityZone`),o=typeof a==`string`?a:``,s=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-subnet`},{type:`flag`,value:` \\ --vpc-id`},{type:`value`,value:` ${n||``}`},{type:`flag`,value:` \\ --cidr-block`},{type:`value`,value:` ${i||``}`}];o&&s.push({type:`flag`,value:` \\ --availability-zone`},{type:`value`,value:` ${o}`});let c=[{label:`Create Subnet`,parts:s}];return e(`mapPublicIpOnLaunch`)===!0&&c.push({label:`Enable auto-assign public IPv4`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 modify-subnet-attribute`},{type:`flag`,value:` \\ diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-target-group.js b/spinifex/services/spinifexui/frontend/dist/assets/create-target-group.js index 10877b778..17a3997eb 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-target-group.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-target-group.js @@ -1,4 +1,4 @@ -import{n as e}from"./compiler-runtime.js";import{t}from"./useNavigate.js";import{M as n}from"./ec2.js";import{i as r}from"./elbv2.js";import{Xn as i,_n as a,dn as o,hn as s,mn as c,vn as l,xn as u}from"./index.js";import{t as d}from"./form-actions.js";import{t as f}from"./target-group-form.js";import{a as p}from"./elbv23.js";var m=e();function h(){let e=t(),{data:h}=i(n),_=r(),v=h.Vpcs??[],y=u({resolver:l(p),defaultValues:{name:``,protocol:`HTTP`,port:80,vpcId:v[0]?.VpcId??``,healthCheck:{protocol:`HTTP`,path:`/`,port:`traffic-port`,intervalSeconds:30,timeoutSeconds:5,healthyThresholdCount:5,unhealthyThresholdCount:2,matcher:`200`},tags:[]}}),{handleSubmit:b,watch:x,formState:{isSubmitting:S}}=y;return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(a,{to:`/ec2/describe-target-groups`,children:`Back to target groups`}),(0,m.jsx)(o,{title:`Create Target Group`}),_.error&&(0,m.jsx)(c,{error:_.error,msg:`Failed to create target group`}),(0,m.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:b(async t=>{try{let n=(await _.mutateAsync(t)).TargetGroups?.[0]?.TargetGroupArn;e(n?{to:`/ec2/describe-target-groups/$id`,params:{id:encodeURIComponent(n)}}:{to:`/ec2/describe-target-groups`})}catch{}}),children:[(0,m.jsx)(f,{form:y,vpcs:v}),(0,m.jsx)(s,{commands:g(x)}),(0,m.jsx)(d,{isPending:_.isPending,isSubmitting:S,onCancel:async()=>await e({to:`/ec2/describe-target-groups`}),pendingLabel:`Creating…`,submitLabel:`Create Target Group`})]})]})}function g(e){let t=t=>{let n=e(t);return typeof n==`string`?n:``},n=t=>{let n=e(t);return typeof n==`number`&&Number.isFinite(n)?n:void 0},r=t(`name`),i=t(`protocol`)||`HTTP`,a=n(`port`),o=t(`vpcId`),s=t(`healthCheck.protocol`)||`HTTP`,c=t(`healthCheck.path`)||`/`,l=t(`healthCheck.port`)||`traffic-port`,u=n(`healthCheck.intervalSeconds`),d=n(`healthCheck.timeoutSeconds`),f=n(`healthCheck.healthyThresholdCount`),p=n(`healthCheck.unhealthyThresholdCount`),m=t(`healthCheck.matcher`)||`200`,h=[{type:`bin`,value:`AWS_PROFILE=spinifex aws elbv2 create-target-group`},{type:`flag`,value:` \\ +import{n as e}from"./compiler-runtime.js";import{t}from"./useNavigate.js";import{M as n}from"./ec2.js";import{i as r}from"./elbv2.js";import{$n as i,Cn as a,En as o,Sn as s,Tn as c,W as l,kn as u,yn as d}from"./index.js";import{t as f}from"./target-group-form.js";import{a as p}from"./elbv23.js";var m=e();function h(){let e=t(),{data:h}=i(n),_=r(),v=h.Vpcs??[],y=u({resolver:o(p),defaultValues:{name:``,protocol:`HTTP`,port:80,vpcId:v[0]?.VpcId??``,healthCheck:{protocol:`HTTP`,path:`/`,port:`traffic-port`,intervalSeconds:30,timeoutSeconds:5,healthyThresholdCount:5,unhealthyThresholdCount:2,matcher:`200`},tags:[]}}),{handleSubmit:b,watch:x,formState:{isSubmitting:S}}=y;return(0,m.jsxs)(m.Fragment,{children:[(0,m.jsx)(c,{to:`/ec2/describe-target-groups`,children:`Back to target groups`}),(0,m.jsx)(d,{title:`Create Target Group`}),_.error&&(0,m.jsx)(s,{error:_.error,msg:`Failed to create target group`}),(0,m.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:b(async t=>{try{let n=(await _.mutateAsync(t)).TargetGroups?.[0]?.TargetGroupArn;e(n?{to:`/ec2/describe-target-groups/$id`,params:{id:encodeURIComponent(n)}}:{to:`/ec2/describe-target-groups`})}catch{}}),children:[(0,m.jsx)(f,{form:y,vpcs:v}),(0,m.jsx)(a,{commands:g(x)}),(0,m.jsx)(l,{isPending:_.isPending,isSubmitting:S,onCancel:async()=>await e({to:`/ec2/describe-target-groups`}),pendingLabel:`Creating…`,submitLabel:`Create Target Group`})]})]})}function g(e){let t=t=>{let n=e(t);return typeof n==`string`?n:``},n=t=>{let n=e(t);return typeof n==`number`&&Number.isFinite(n)?n:void 0},r=t(`name`),i=t(`protocol`)||`HTTP`,a=n(`port`),o=t(`vpcId`),s=t(`healthCheck.protocol`)||`HTTP`,c=t(`healthCheck.path`)||`/`,l=t(`healthCheck.port`)||`traffic-port`,u=n(`healthCheck.intervalSeconds`),d=n(`healthCheck.timeoutSeconds`),f=n(`healthCheck.healthyThresholdCount`),p=n(`healthCheck.unhealthyThresholdCount`),m=t(`healthCheck.matcher`)||`200`,h=[{type:`bin`,value:`AWS_PROFILE=spinifex aws elbv2 create-target-group`},{type:`flag`,value:` \\ --name`},{type:`value`,value:` ${r||``}`},{type:`flag`,value:` \\ --protocol`},{type:`value`,value:` ${i}`},{type:`flag`,value:` \\ --port`},{type:`value`,value:` ${a??80}`},{type:`flag`,value:` \\ diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-user.js b/spinifex/services/spinifexui/frontend/dist/assets/create-user.js index de1f7239b..bcca602c7 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-user.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-user.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{d as r}from"./iam.js";import{Ln as i,Sn as a,_n as o,an as s,dn as ee,hn as c,mn as l,rn as u,sn as d,vn as f,xn as p}from"./index.js";import{t as m}from"./form-actions.js";import{o as h}from"./iam3.js";var g=t(),_=e();function v(){let e=(0,g.c)(55),t=n(),v=r(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:f(h)},e[0]=b):b=e[0];let{handleSubmit:x,register:S,control:C,formState:w}=p(b),{errors:T,isSubmitting:E}=w,D;e[1]===C?D=e[2]:(D={control:C},e[1]=C,e[2]=D);let O=a(D),k;e[3]===O?k=e[4]:(k=e=>e?O[e]:void 0,e[3]=O,e[4]=k);let A=k,j;e[5]!==v||e[6]!==t?(j=async e=>{await v.mutateAsync(e),t({to:`/iam/list-users`})},e[5]=v,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,_.jsx)(o,{to:`/iam/list-users`,children:`Back to users`}),P=(0,_.jsx)(ee,{title:`Create User`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===v.error?F=e[11]:(F=v.error&&(0,_.jsx)(l,{error:v.error,msg:`Failed to create user`}),e[10]=v.error,e[11]=F);let I;e[12]!==x||e[13]!==M?(I=x(M),e[12]=x,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,_.jsx)(d,{children:(0,_.jsx)(`label`,{htmlFor:`userName`,children:`User Name`})}),e[15]=L):L=e[15];let R=!!T.userName,z;e[16]===S?z=e[17]:(z=S(`userName`),e[16]=S,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,_.jsx)(i,{"aria-invalid":R,id:`userName`,placeholder:`my-user...`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===T.userName?V=e[22]:(V=(0,_.jsx)(s,{errors:[T.userName]}),e[21]=T.userName,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,_.jsxs)(u,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(d,{children:(0,_.jsx)(`label`,{htmlFor:`path`,children:`Path (optional)`})}),e[26]=U):U=e[26];let W;e[27]===S?W=e[28]:(W=S(`path`),e[27]=S,e[28]=W);let G;e[29]===W?G=e[30]:(G=(0,_.jsx)(i,{id:`path`,placeholder:`/`,...W}),e[29]=W,e[30]=G);let K;e[31]===T.path?K=e[32]:(K=(0,_.jsx)(s,{errors:[T.path]}),e[31]=T.path,e[32]=K);let q;e[33]!==G||e[34]!==K?(q=(0,_.jsxs)(u,{children:[U,G,K]}),e[33]=G,e[34]=K,e[35]=q):q=e[35];let J;e[36]===A?J=e[37]:(J=y(A),e[36]=A,e[37]=J);let Y;e[38]===J?Y=e[39]:(Y=(0,_.jsx)(c,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/iam/list-users`}),e[40]=t,e[41]=X);let Z;e[42]!==v.isPending||e[43]!==E||e[44]!==X?(Z=(0,_.jsx)(m,{isPending:v.isPending,isSubmitting:E,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create User`}),e[42]=v.isPending,e[43]=E,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==H||e[47]!==q||e[48]!==Y||e[49]!==Z||e[50]!==I?(Q=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[46]=H,e[47]=q,e[48]=Y,e[49]=Z,e[50]=I,e[51]=Q):Q=e[51];let $;return e[52]!==Q||e[53]!==F?($=(0,_.jsxs)(_.Fragment,{children:[N,P,F,Q]}),e[52]=Q,e[53]=F,e[54]=$):$=e[54],$}function y(e){let t=e(`userName`),n=typeof t==`string`?t:``,r=e(`path`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-user`},{type:`flag`,value:` --user-name`},{type:`value`,value:` ${n||``}`}];return i&&i!==`/`&&a.push({type:`flag`,value:` --path`},{type:`value`,value:` ${i}`}),[{label:`Create User`,parts:a}]}export{v as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{d as r}from"./iam.js";import{An as i,Cn as a,En as o,Rn as s,Sn as c,Tn as l,W as u,dn as d,hn as f,kn as p,pn as m,yn as h}from"./index.js";import{o as g}from"./iam3.js";var _=t(),v=e();function y(){let e=(0,_.c)(55),t=n(),y=r(),b;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(b={resolver:o(g)},e[0]=b):b=e[0];let{handleSubmit:x,register:S,control:C,formState:w}=p(b),{errors:T,isSubmitting:E}=w,D;e[1]===C?D=e[2]:(D={control:C},e[1]=C,e[2]=D);let O=i(D),k;e[3]===O?k=e[4]:(k=e=>e?O[e]:void 0,e[3]=O,e[4]=k);let A=k,j;e[5]!==y||e[6]!==t?(j=async e=>{await y.mutateAsync(e),t({to:`/iam/list-users`})},e[5]=y,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,v.jsx)(l,{to:`/iam/list-users`,children:`Back to users`}),P=(0,v.jsx)(h,{title:`Create User`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===y.error?F=e[11]:(F=y.error&&(0,v.jsx)(c,{error:y.error,msg:`Failed to create user`}),e[10]=y.error,e[11]=F);let I;e[12]!==x||e[13]!==M?(I=x(M),e[12]=x,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,v.jsx)(f,{children:(0,v.jsx)(`label`,{htmlFor:`userName`,children:`User Name`})}),e[15]=L):L=e[15];let R=!!T.userName,z;e[16]===S?z=e[17]:(z=S(`userName`),e[16]=S,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,v.jsx)(s,{"aria-invalid":R,id:`userName`,placeholder:`my-user...`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===T.userName?V=e[22]:(V=(0,v.jsx)(m,{errors:[T.userName]}),e[21]=T.userName,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,v.jsxs)(d,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,v.jsx)(f,{children:(0,v.jsx)(`label`,{htmlFor:`path`,children:`Path (optional)`})}),e[26]=U):U=e[26];let W;e[27]===S?W=e[28]:(W=S(`path`),e[27]=S,e[28]=W);let G;e[29]===W?G=e[30]:(G=(0,v.jsx)(s,{id:`path`,placeholder:`/`,...W}),e[29]=W,e[30]=G);let K;e[31]===T.path?K=e[32]:(K=(0,v.jsx)(m,{errors:[T.path]}),e[31]=T.path,e[32]=K);let q;e[33]!==G||e[34]!==K?(q=(0,v.jsxs)(d,{children:[U,G,K]}),e[33]=G,e[34]=K,e[35]=q):q=e[35];let J;e[36]===A?J=e[37]:(J=ee(A),e[36]=A,e[37]=J);let Y;e[38]===J?Y=e[39]:(Y=(0,v.jsx)(a,{commands:J}),e[38]=J,e[39]=Y);let X;e[40]===t?X=e[41]:(X=async()=>await t({to:`/iam/list-users`}),e[40]=t,e[41]=X);let Z;e[42]!==y.isPending||e[43]!==E||e[44]!==X?(Z=(0,v.jsx)(u,{isPending:y.isPending,isSubmitting:E,onCancel:X,pendingLabel:`Creating...`,submitLabel:`Create User`}),e[42]=y.isPending,e[43]=E,e[44]=X,e[45]=Z):Z=e[45];let Q;e[46]!==H||e[47]!==q||e[48]!==Y||e[49]!==Z||e[50]!==I?(Q=(0,v.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[46]=H,e[47]=q,e[48]=Y,e[49]=Z,e[50]=I,e[51]=Q):Q=e[51];let $;return e[52]!==Q||e[53]!==F?($=(0,v.jsxs)(v.Fragment,{children:[N,P,F,Q]}),e[52]=Q,e[53]=F,e[54]=$):$=e[54],$}function ee(e){let t=e(`userName`),n=typeof t==`string`?t:``,r=e(`path`),i=typeof r==`string`?r:``,a=[{type:`bin`,value:`AWS_PROFILE=spinifex aws iam create-user`},{type:`flag`,value:` --user-name`},{type:`value`,value:` ${n||``}`}];return i&&i!==`/`&&a.push({type:`flag`,value:` --path`},{type:`value`,value:` ${i}`}),[{label:`Create User`,parts:a}]}export{y as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-volume.js b/spinifex/services/spinifexui/frontend/dist/assets/create-volume.js index 327da1463..bfb26c024 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-volume.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-volume.js @@ -1,3 +1,3 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as r,i,n as a,s as o,t as s}from"./select.js";import{r as c}from"./ec2.js";import{Ln as l,St as u,Xn as ee,Y as te,_n as ne,an as d,dn as re,hn as ie,mn as ae,rn as f,sn as p,vn as oe,xn as se,yn as m}from"./index.js";import{t as h}from"./form-actions.js";var ce=t(),g=e();function _(){let e=(0,ce.c)(57),t=n(),{data:i}=ee(c),_=u(),y;e[0]===i.AvailabilityZones?y=e[1]:(y=i.AvailabilityZones??[],e[0]=i.AvailabilityZones,e[1]=y);let b=y,x=b[0]?.ZoneName??``,S;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(S=oe(te),e[2]=S):S=e[2];let C;e[3]===x?C=e[4]:(C={resolver:S,defaultValues:{size:1,availabilityZone:x}},e[3]=x,e[4]=C);let{control:w,handleSubmit:T,register:E,watch:D,formState:O}=se(C),{errors:k,isSubmitting:A}=O,j;e[5]!==_||e[6]!==t?(j=async e=>{await _.mutateAsync(e),t({to:`/ec2/describe-volumes`})},e[5]=_,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,g.jsx)(ne,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),P=(0,g.jsx)(re,{title:`Create Volume`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===_.error?F=e[11]:(F=_.error&&(0,g.jsx)(ae,{error:_.error,msg:`Failed to create volume`}),e[10]=_.error,e[11]=F);let I;e[12]!==T||e[13]!==M?(I=T(M),e[12]=T,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,g.jsx)(p,{children:(0,g.jsx)(`label`,{htmlFor:`size`,children:`Size (GiB)`})}),e[15]=L):L=e[15];let R=!!k.size,z;e[16]===E?z=e[17]:(z=E(`size`,{valueAsNumber:!0}),e[16]=E,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,g.jsx)(l,{"aria-invalid":R,id:`size`,max:16384,min:1,type:`number`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===k.size?V=e[22]:(V=(0,g.jsx)(d,{errors:[k.size]}),e[21]=k.size,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,g.jsxs)(f,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,g.jsx)(p,{children:(0,g.jsx)(`label`,{htmlFor:`availabilityZone`,children:`Availability Zone`})}),e[26]=U):U=e[26];let W;e[27]!==b||e[28]!==k.availabilityZone?(W=e=>{let{field:t}=e;return(0,g.jsxs)(s,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,g.jsx)(o,{"aria-invalid":!!k.availabilityZone,className:`w-full`,id:`availabilityZone`,children:(0,g.jsx)(r,{})}),(0,g.jsx)(a,{children:b.map(v)})]})},e[27]=b,e[28]=k.availabilityZone,e[29]=W):W=e[29];let G;e[30]!==w||e[31]!==W?(G=(0,g.jsx)(m,{control:w,name:`availabilityZone`,render:W}),e[30]=w,e[31]=W,e[32]=G):G=e[32];let K;e[33]===k.availabilityZone?K=e[34]:(K=(0,g.jsx)(d,{errors:[k.availabilityZone]}),e[33]=k.availabilityZone,e[34]=K);let q;e[35]!==G||e[36]!==K?(q=(0,g.jsxs)(f,{children:[U,G,K]}),e[35]=G,e[36]=K,e[37]=q):q=e[37];let J;e[38]===D?J=e[39]:(J=le(D),e[38]=D,e[39]=J);let Y;e[40]===J?Y=e[41]:(Y=(0,g.jsx)(ie,{commands:J}),e[40]=J,e[41]=Y);let X;e[42]===t?X=e[43]:(X=async()=>await t({to:`/ec2/describe-volumes`}),e[42]=t,e[43]=X);let Z;e[44]!==_.isPending||e[45]!==A||e[46]!==X?(Z=(0,g.jsx)(h,{isPending:_.isPending,isSubmitting:A,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Volume`}),e[44]=_.isPending,e[45]=A,e[46]=X,e[47]=Z):Z=e[47];let Q;e[48]!==H||e[49]!==q||e[50]!==Y||e[51]!==Z||e[52]!==I?(Q=(0,g.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[48]=H,e[49]=q,e[50]=Y,e[51]=Z,e[52]=I,e[53]=Q):Q=e[53];let $;return e[54]!==Q||e[55]!==F?($=(0,g.jsxs)(g.Fragment,{children:[N,P,F,Q]}),e[54]=Q,e[55]=F,e[56]=$):$=e[56],$}function v(e){return(0,g.jsx)(i,{value:e.ZoneName??``,children:e.ZoneName},e.ZoneName)}function le(e){let t=e(`size`),n=typeof t==`number`?t:0,r=e(`availabilityZone`),i=typeof r==`string`?r:``;return[{label:`Create Volume`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-volume`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as r,i,n as a,s as o,t as s}from"./select.js";import{r as c}from"./ec2.js";import{$n as l,At as u,Cn as d,Dn as ee,En as te,Rn as f,Sn as ne,Tn as re,W as ie,dn as p,hn as m,it as ae,kn as oe,pn as h,yn as se}from"./index.js";var g=t(),_=e();function v(){let e=(0,g.c)(57),t=n(),{data:i}=l(c),v=u(),b;e[0]===i.AvailabilityZones?b=e[1]:(b=i.AvailabilityZones??[],e[0]=i.AvailabilityZones,e[1]=b);let x=b,S=x[0]?.ZoneName??``,C;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(C=te(ae),e[2]=C):C=e[2];let w;e[3]===S?w=e[4]:(w={resolver:C,defaultValues:{size:1,availabilityZone:S}},e[3]=S,e[4]=w);let{control:T,handleSubmit:E,register:D,watch:O,formState:le}=oe(w),{errors:k,isSubmitting:A}=le,j;e[5]!==v||e[6]!==t?(j=async e=>{await v.mutateAsync(e),t({to:`/ec2/describe-volumes`})},e[5]=v,e[6]=t,e[7]=j):j=e[7];let M=j,N,P;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,_.jsx)(re,{to:`/ec2/describe-volumes`,children:`Back to volumes`}),P=(0,_.jsx)(se,{title:`Create Volume`}),e[8]=N,e[9]=P):(N=e[8],P=e[9]);let F;e[10]===v.error?F=e[11]:(F=v.error&&(0,_.jsx)(ne,{error:v.error,msg:`Failed to create volume`}),e[10]=v.error,e[11]=F);let I;e[12]!==E||e[13]!==M?(I=E(M),e[12]=E,e[13]=M,e[14]=I):I=e[14];let L;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,_.jsx)(m,{children:(0,_.jsx)(`label`,{htmlFor:`size`,children:`Size (GiB)`})}),e[15]=L):L=e[15];let R=!!k.size,z;e[16]===D?z=e[17]:(z=D(`size`,{valueAsNumber:!0}),e[16]=D,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,_.jsx)(f,{"aria-invalid":R,id:`size`,max:16384,min:1,type:`number`,...z}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===k.size?V=e[22]:(V=(0,_.jsx)(h,{errors:[k.size]}),e[21]=k.size,e[22]=V);let H;e[23]!==B||e[24]!==V?(H=(0,_.jsxs)(p,{children:[L,B,V]}),e[23]=B,e[24]=V,e[25]=H):H=e[25];let U;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,_.jsx)(m,{children:(0,_.jsx)(`label`,{htmlFor:`availabilityZone`,children:`Availability Zone`})}),e[26]=U):U=e[26];let W;e[27]!==x||e[28]!==k.availabilityZone?(W=e=>{let{field:t}=e;return(0,_.jsxs)(s,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,_.jsx)(o,{"aria-invalid":!!k.availabilityZone,className:`w-full`,id:`availabilityZone`,children:(0,_.jsx)(r,{})}),(0,_.jsx)(a,{children:x.map(y)})]})},e[27]=x,e[28]=k.availabilityZone,e[29]=W):W=e[29];let G;e[30]!==T||e[31]!==W?(G=(0,_.jsx)(ee,{control:T,name:`availabilityZone`,render:W}),e[30]=T,e[31]=W,e[32]=G):G=e[32];let K;e[33]===k.availabilityZone?K=e[34]:(K=(0,_.jsx)(h,{errors:[k.availabilityZone]}),e[33]=k.availabilityZone,e[34]=K);let q;e[35]!==G||e[36]!==K?(q=(0,_.jsxs)(p,{children:[U,G,K]}),e[35]=G,e[36]=K,e[37]=q):q=e[37];let J;e[38]===O?J=e[39]:(J=ce(O),e[38]=O,e[39]=J);let Y;e[40]===J?Y=e[41]:(Y=(0,_.jsx)(d,{commands:J}),e[40]=J,e[41]=Y);let X;e[42]===t?X=e[43]:(X=async()=>await t({to:`/ec2/describe-volumes`}),e[42]=t,e[43]=X);let Z;e[44]!==v.isPending||e[45]!==A||e[46]!==X?(Z=(0,_.jsx)(ie,{isPending:v.isPending,isSubmitting:A,onCancel:X,pendingLabel:`Creating…`,submitLabel:`Create Volume`}),e[44]=v.isPending,e[45]=A,e[46]=X,e[47]=Z):Z=e[47];let Q;e[48]!==H||e[49]!==q||e[50]!==Y||e[51]!==Z||e[52]!==I?(Q=(0,_.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:I,children:[H,q,Y,Z]}),e[48]=H,e[49]=q,e[50]=Y,e[51]=Z,e[52]=I,e[53]=Q):Q=e[53];let $;return e[54]!==Q||e[55]!==F?($=(0,_.jsxs)(_.Fragment,{children:[N,P,F,Q]}),e[54]=Q,e[55]=F,e[56]=$):$=e[56],$}function y(e){return(0,_.jsx)(i,{value:e.ZoneName??``,children:e.ZoneName},e.ZoneName)}function ce(e){let t=e(`size`),n=typeof t==`number`?t:0,r=e(`availabilityZone`),i=typeof r==`string`?r:``;return[{label:`Create Volume`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-volume`},{type:`flag`,value:` \\ --size`},{type:`value`,value:` ${n||1}`},{type:`flag`,value:` \\ - --availability-zone`},{type:`value`,value:` ${i||``}`}]}]}export{_ as component}; \ No newline at end of file + --availability-zone`},{type:`value`,value:` ${i||``}`}]}]}export{v as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/create-vpc.js b/spinifex/services/spinifexui/frontend/dist/assets/create-vpc.js index ea8c9c8d6..c0225791f 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/create-vpc.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/create-vpc.js @@ -1,4 +1,4 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./useNavigate.js";import{t as a}from"./chevron-down.js";import{t as o}from"./chevron-right.js";import{c as s,i as c,n as l,s as u,t as d}from"./select.js";import{t as f}from"./button.js";import{t as p}from"./subnet-calculator.js";import{Ct as m,Ln as ee,Sn as h,X as g,_n as te,an as ne,dn as re,hn as ie,mn as ae,rn as _,sn as v,vn as oe,wt as se,xn as ce,yn as y}from"./index.js";import{t as le}from"./form-actions.js";var ue=r(),de=t(n(),1),b=e();function fe(e){let t=(0,ue.c)(18),{form:n,type:r,count:i,defaults:s}=e,[c,l]=(0,de.useState)(!1),u=r===`public`?`publicSubnetCidrs`:`privateSubnetCidrs`;if(i===0)return null;let d;t[0]===c?d=t[1]:(d=()=>l(!c),t[0]=c,t[1]=d);let p;t[2]===c?p=t[3]:(p=c?(0,b.jsx)(a,{className:`size-3`}):(0,b.jsx)(o,{className:`size-3`}),t[2]=c,t[3]=p);let m;t[4]!==d||t[5]!==p||t[6]!==r?(m=(0,b.jsxs)(f,{className:`gap-1 px-0 text-xs text-muted-foreground`,onClick:d,type:`button`,variant:`link`,children:[p,`Customize `,r,` subnet CIDR blocks`]}),t[4]=d,t[5]=p,t[6]=r,t[7]=m):m=t[7];let h;t[8]!==i||t[9]!==s||t[10]!==c||t[11]!==u||t[12]!==n||t[13]!==r?(h=c&&(0,b.jsx)(`div`,{className:`mt-2 space-y-2`,children:Array.from({length:i},(e,t)=>(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsxs)(`span`,{className:`w-32 text-xs text-muted-foreground`,children:[r===`public`?`Public`:`Private`,` subnet `,t+1]}),(0,b.jsx)(ee,{defaultValue:s[t],placeholder:s[t],...n.register(`${u}.${t}`)})]},t))}),t[8]=i,t[9]=s,t[10]=c,t[11]=u,t[12]=n,t[13]=r,t[14]=h):h=t[14];let g;return t[15]!==m||t[16]!==h?(g=(0,b.jsxs)(`div`,{className:`mt-2`,children:[m,h]}),t[15]=m,t[16]=h,t[17]=g):g=t[17],g}function x(e){let t=(0,ue.c)(8),{label:n,cidr:r,variant:i}=e,a=`rounded-md border px-3 py-2 text-xs ${i===`public`?`border-emerald-500/30 bg-emerald-500/10`:`border-blue-500/30 bg-blue-500/10`}`,o;t[0]===n?o=t[1]:(o=(0,b.jsx)(`div`,{className:`font-medium`,children:n}),t[0]=n,t[1]=o);let s;t[2]===r?s=t[3]:(s=(0,b.jsx)(`div`,{className:`text-muted-foreground`,children:r}),t[2]=r,t[3]=s);let c;return t[4]!==a||t[5]!==o||t[6]!==s?(c=(0,b.jsxs)(`div`,{className:a,children:[o,s]}),t[4]=a,t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function pe(e){let t=(0,ue.c)(14),{mode:n,vpcCidr:r,publicSubnets:i,privateSubnets:a,hasIgw:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,b.jsx)(`h3`,{className:`mb-3 text-xs font-semibold tracking-wider text-muted-foreground uppercase`,children:`Preview`}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=(0,b.jsxs)(`div`,{className:`mb-3 text-xs font-medium`,children:[`VPC `,(0,b.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,r,`)`]})]}),t[1]=r,t[2]=c);let l;t[3]!==o||t[4]!==n||t[5]!==a||t[6]!==i?(l=n===`vpc-and-more`&&(0,b.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-3`,children:[(0,b.jsxs)(`div`,{className:`space-y-2`,children:[(0,b.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Subnets`}),i.map(S),a.map(me),i.length===0&&a.length===0&&(0,b.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`No subnets`})]}),(0,b.jsxs)(`div`,{className:`space-y-2`,children:[(0,b.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Route Tables`}),i.length>0&&(0,b.jsxs)(`div`,{className:`rounded-md border border-foreground/10 bg-background px-3 py-2 text-xs`,children:[(0,b.jsx)(`div`,{className:`font-medium`,children:`Public Route Table`}),(0,b.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:`0.0.0.0/0 → IGW`}),(0,b.jsx)(`div`,{className:`text-muted-foreground`,children:`local`})]}),a.length>0&&(0,b.jsxs)(`div`,{className:`rounded-md border border-foreground/10 bg-background px-3 py-2 text-xs`,children:[(0,b.jsx)(`div`,{className:`font-medium`,children:`Private Route Table`}),(0,b.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:`local`})]})]}),(0,b.jsxs)(`div`,{className:`space-y-2`,children:[(0,b.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Network Connections`}),o&&(0,b.jsxs)(`div`,{className:`rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs`,children:[(0,b.jsx)(`div`,{className:`font-medium`,children:`Internet Gateway`}),(0,b.jsx)(`div`,{className:`text-muted-foreground`,children:`Attached to VPC`})]}),!o&&(0,b.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`No internet gateway`})]})]}),t[3]=o,t[4]=n,t[5]=a,t[6]=i,t[7]=l):l=t[7];let u;t[8]===n?u=t[9]:(u=n===`vpc-only`&&(0,b.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`VPC only — no additional resources will be created.`}),t[8]=n,t[9]=u);let d;return t[10]!==c||t[11]!==l||t[12]!==u?(d=(0,b.jsxs)(`div`,{className:`rounded-lg border bg-muted/30 p-4`,children:[s,(0,b.jsxs)(`div`,{className:`rounded-lg border-2 border-dashed border-foreground/20 p-4`,children:[c,l,u]})]}),t[10]=c,t[11]=l,t[12]=u,t[13]=d):d=t[13],d}function me(e){return(0,b.jsx)(x,{cidr:e.cidr,label:e.label,variant:`private`},e.cidr)}function S(e){return(0,b.jsx)(x,{cidr:e.cidr,label:e.label,variant:`public`},e.cidr)}var he=[0,1],C=[0,1,2];function w(){let e=(0,ue.c)(86),t=i(),n=m(),r=se(),[a,o]=(0,de.useState)(null),s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=oe(g),e[0]=s):s=e[0];let c;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(c={resolver:s,defaultValues:{mode:`vpc-only`,namePrefix:``,autoGenerateNames:!0,cidrBlock:`10.0.0.0/16`,tenancy:`default`,natGateway:`none`,publicSubnetCount:1,privateSubnetCount:1,publicSubnetCidrs:[],privateSubnetCidrs:[],tags:[]}},e[1]=c):c=e[1];let l=ce(c),{handleSubmit:u,register:d,watch:f,control:x,formState:me}=l,{errors:S,isSubmitting:he}=me,C;e[2]===x?C=e[3]:(C={control:x,name:`mode`},e[2]=x,e[3]=C);let w=h(C),Ee;e[4]===x?Ee=e[5]:(Ee={control:x,name:`cidrBlock`},e[4]=x,e[5]=Ee);let De=h(Ee),T;e[6]===x?T=e[7]:(T={control:x,name:`publicSubnetCount`},e[6]=x,e[7]=T);let E=h(T),D;e[8]===x?D=e[9]:(D={control:x,name:`privateSubnetCount`},e[8]=x,e[9]=D);let Oe=h(D),O=p(De||`10.0.0.0/16`,w===`vpc-and-more`?E:0,w===`vpc-and-more`?Oe:0),[k,ke]=(0,de.useState)(``),Ae;e[10]!==n||e[11]!==t||e[12]!==r?(Ae=async e=>{if(o(null),e.mode===`vpc-only`){let r=e.autoGenerateNames&&e.namePrefix?`${e.namePrefix}-vpc`:e.namePrefix,i=(await n.mutateAsync({cidrBlock:e.cidrBlock,name:r||void 0})).Vpc?.VpcId;t(i?{to:`/ec2/describe-vpcs/$id`,params:{id:i}}:{to:`/ec2/describe-vpcs`});return}ke(`Creating VPC and resources...`);let i=await r.mutateAsync(e);o(i),!i.error&&i.vpcId&&t({to:`/ec2/describe-vpcs/$id`,params:{id:i.vpcId}}),ke(``)},e[10]=n,e[11]=t,e[12]=r,e[13]=Ae):Ae=e[13];let je=Ae,Me=n.error??r.error,Ne=n.isPending||r.isPending,A,j;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,b.jsx)(te,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),j=(0,b.jsx)(re,{title:`Create VPC`}),e[14]=A,e[15]=j):(A=e[14],j=e[15]);let M;e[16]===Me?M=e[17]:(M=Me&&(0,b.jsx)(ae,{error:Me,msg:`Failed to create VPC`}),e[16]=Me,e[17]=M);let N;e[18]===a?N=e[19]:(N=a?.error&&(0,b.jsxs)(`div`,{className:`mb-6 max-w-4xl rounded-md border border-destructive bg-destructive/10 p-4`,children:[(0,b.jsxs)(`h2`,{className:`text-sm font-medium text-destructive`,children:[`Wizard failed: `,a.failedStep]}),(0,b.jsx)(`p`,{className:`mt-1 text-sm text-destructive`,children:a.error.message}),a.created.length>0&&(0,b.jsxs)(`div`,{className:`mt-3`,children:[(0,b.jsx)(`p`,{className:`text-xs font-medium text-destructive`,children:`Successfully created resources:`}),(0,b.jsx)(`ul`,{className:`mt-1 list-inside list-disc text-xs text-destructive`,children:a.created.map(we)})]})]}),e[18]=a,e[19]=N);let P;e[20]===k?P=e[21]:(P=k&&(0,b.jsx)(`div`,{className:`mb-4 max-w-4xl text-sm text-muted-foreground`,children:k}),e[20]=k,e[21]=P);let F;e[22]!==u||e[23]!==je?(F=u(je),e[22]=u,e[23]=je,e[24]=F):F=e[24];let Pe;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(Pe=(0,b.jsx)(v,{children:`Resources to create`}),e[25]=Pe):Pe=e[25];let I;e[26]===x?I=e[27]:(I=(0,b.jsxs)(_,{children:[Pe,(0,b.jsx)(y,{control:x,name:`mode`,render:Ce})]}),e[26]=x,e[27]=I);let L;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,b.jsx)(v,{children:(0,b.jsx)(`label`,{htmlFor:`namePrefix`,children:`Name tag auto-generation`})}),e[28]=L):L=e[28];let R;e[29]===d?R=e[30]:(R=d(`namePrefix`),e[29]=d,e[30]=R);let z;e[31]===R?z=e[32]:(z=(0,b.jsx)(ee,{id:`namePrefix`,placeholder:`project`,...R}),e[31]=R,e[32]=z);let B;e[33]===x?B=e[34]:(B=(0,b.jsx)(y,{control:x,name:`autoGenerateNames`,render:Se}),e[33]=x,e[34]=B);let V;e[35]!==z||e[36]!==B?(V=(0,b.jsxs)(_,{children:[L,(0,b.jsxs)(`div`,{className:`flex items-center gap-3`,children:[z,B]})]}),e[35]=z,e[36]=B,e[37]=V):V=e[37];let H;e[38]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,b.jsx)(v,{children:(0,b.jsx)(`label`,{htmlFor:`cidrBlock`,children:`IPv4 CIDR block`})}),e[38]=H):H=e[38];let Fe=!!S.cidrBlock,U;e[39]===d?U=e[40]:(U=d(`cidrBlock`),e[39]=d,e[40]=U);let W;e[41]!==Fe||e[42]!==U?(W=(0,b.jsx)(ee,{"aria-invalid":Fe,id:`cidrBlock`,placeholder:`10.0.0.0/16`,...U}),e[41]=Fe,e[42]=U,e[43]=W):W=e[43];let G;e[44]===S.cidrBlock?G=e[45]:(G=(0,b.jsx)(ne,{errors:[S.cidrBlock]}),e[44]=S.cidrBlock,e[45]=G);let K;e[46]!==W||e[47]!==G?(K=(0,b.jsxs)(_,{children:[H,W,G]}),e[46]=W,e[47]=G,e[48]=K):K=e[48];let Ie;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,b.jsx)(v,{children:`Tenancy`}),e[49]=Ie):Ie=e[49];let q;e[50]===x?q=e[51]:(q=(0,b.jsxs)(_,{children:[Ie,(0,b.jsx)(y,{control:x,name:`tenancy`,render:xe})]}),e[50]=x,e[51]=q);let Le=w===`vpc-and-more`&&(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(_,{children:[(0,b.jsx)(v,{children:`Number of public subnets`}),(0,b.jsx)(y,{control:x,name:`publicSubnetCount`,render:be}),(0,b.jsx)(fe,{count:E,defaults:O.publicSubnets.map(ye),form:l,type:`public`})]}),(0,b.jsxs)(_,{children:[(0,b.jsx)(v,{children:`Number of private subnets`}),(0,b.jsx)(y,{control:x,name:`privateSubnetCount`,render:ve}),(0,b.jsx)(fe,{count:Oe,defaults:O.privateSubnets.map(_e),form:l,type:`private`})]}),E>0&&Oe>0&&(0,b.jsxs)(_,{children:[(0,b.jsx)(v,{children:`NAT gateways`}),(0,b.jsx)(y,{control:x,name:`natGateway`,render:ge}),(0,b.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Creates an Elastic IP + NAT gateway in the public subnet and routes private subnet egress (0.0.0.0/0) through it.`})]})]}),Re=ie,ze=Te(f,O),J;e[52]!==Re||e[53]!==ze?(J=(0,b.jsx)(Re,{commands:ze}),e[52]=Re,e[53]=ze,e[54]=J):J=e[54];let Y;e[55]===t?Y=e[56]:(Y=async()=>await t({to:`/ec2/describe-vpcs`}),e[55]=t,e[56]=Y);let X;e[57]!==Ne||e[58]!==he||e[59]!==Y?(X=(0,b.jsx)(le,{isPending:Ne,isSubmitting:he,onCancel:Y,pendingLabel:`Creating…`,submitLabel:`Create VPC`}),e[57]=Ne,e[58]=he,e[59]=Y,e[60]=X):X=e[60];let Z;e[61]!==F||e[62]!==I||e[63]!==V||e[64]!==K||e[65]!==q||e[66]!==Le||e[67]!==J||e[68]!==X?(Z=(0,b.jsxs)(`form`,{className:`min-w-0 flex-1 space-y-6`,onSubmit:F,children:[I,V,K,q,Le,J,X]}),e[61]=F,e[62]=I,e[63]=V,e[64]=K,e[65]=q,e[66]=Le,e[67]=J,e[68]=X,e[69]=Z):Z=e[69];let Be=w===`vpc-and-more`&&E>0,Ve=De||`10.0.0.0/16`,Q;e[70]!==w||e[71]!==O.privateSubnets||e[72]!==O.publicSubnets||e[73]!==Be||e[74]!==Ve?(Q=(0,b.jsx)(`div`,{className:`hidden min-w-0 flex-1 lg:block`,children:(0,b.jsx)(pe,{hasIgw:Be,mode:w,privateSubnets:O.privateSubnets,publicSubnets:O.publicSubnets,vpcCidr:Ve})}),e[70]=w,e[71]=O.privateSubnets,e[72]=O.publicSubnets,e[73]=Be,e[74]=Ve,e[75]=Q):Q=e[75];let $;e[76]!==Z||e[77]!==Q?($=(0,b.jsxs)(`div`,{className:`flex max-w-6xl gap-8`,children:[Z,Q]}),e[76]=Z,e[77]=Q,e[78]=$):$=e[78];let He;return e[79]!==M||e[80]!==N||e[81]!==P||e[82]!==$||e[83]!==A||e[84]!==j?(He=(0,b.jsxs)(b.Fragment,{children:[A,j,M,N,P,$]}),e[79]=M,e[80]=N,e[81]=P,e[82]=$,e[83]=A,e[84]=j,e[85]=He):He=e[85],He}function ge(e){let{field:t}=e;return(0,b.jsxs)(d,{onValueChange:t.onChange,value:t.value??`none`,children:[(0,b.jsx)(u,{id:`natGateway`,children:(0,b.jsx)(s,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(c,{value:`none`,children:`None`}),(0,b.jsx)(c,{value:`single`,children:`In 1 AZ`})]})]})}function _e(e){return e.cidr}function ve(e){let{field:t}=e;return(0,b.jsx)(`div`,{className:`flex gap-1`,children:C.map(e=>(0,b.jsx)(f,{onClick:()=>t.onChange(e),size:`sm`,type:`button`,variant:t.value===e?`default`:`outline`,children:e},e))})}function ye(e){return e.cidr}function be(e){let{field:t}=e;return(0,b.jsx)(`div`,{className:`flex gap-1`,children:he.map(e=>(0,b.jsx)(f,{onClick:()=>t.onChange(e),size:`sm`,type:`button`,variant:t.value===e?`default`:`outline`,children:e},e))})}function xe(e){let{field:t}=e;return(0,b.jsxs)(d,{onValueChange:t.onChange,value:t.value,children:[(0,b.jsx)(u,{id:`tenancy`,children:(0,b.jsx)(s,{})}),(0,b.jsxs)(l,{children:[(0,b.jsx)(c,{value:`default`,children:`default`}),(0,b.jsx)(c,{value:`dedicated`,children:`dedicated`})]})]})}function Se(e){let{field:t}=e;return(0,b.jsxs)(`label`,{className:`flex shrink-0 items-center gap-2 text-xs`,children:[(0,b.jsx)(`input`,{"aria-label":`Auto-generate name tags`,checked:t.value,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Auto-generate`]})}function Ce(e){let{field:t}=e;return(0,b.jsxs)(`div`,{className:`flex gap-4`,children:[(0,b.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,b.jsx)(`input`,{"aria-label":`VPC only`,checked:t.value===`vpc-only`,name:`mode`,onChange:()=>t.onChange(`vpc-only`),type:`radio`}),`VPC only`]}),(0,b.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,b.jsx)(`input`,{"aria-label":`VPC and more`,checked:t.value===`vpc-and-more`,name:`mode`,onChange:()=>t.onChange(`vpc-and-more`),type:`radio`}),`VPC and more`]})]})}function we(e,t){return(0,b.jsxs)(`li`,{children:[e.type,`: `,e.id]},t)}function Te(e,t){let n=e(`mode`),r=typeof n==`string`?n:``,i=e(`cidrBlock`),a=typeof i==`string`?i:``,o=e(`tenancy`),s=typeof o==`string`?o:``,c=e(`natGateway`),l=typeof c==`string`?c:``;if(r===`vpc-only`){let e=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-vpc`},{type:`flag`,value:` \\ +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./useNavigate.js";import{t as a}from"./chevron-down.js";import{t as o}from"./chevron-right.js";import{c as s,i as c,n as l,s as u,t as d}from"./select.js";import{t as ee}from"./button.js";import{t as f}from"./subnet-calculator.js";import{An as p,Cn as m,Dn as h,En as te,Mt as ne,Rn as re,Sn as ie,Tn as ae,W as oe,at as se,dn as g,hn as _,jt as ce,kn as le,pn as ue,yn as de}from"./index.js";var v=r(),fe=t(n(),1),y=e();function pe(e){let t=(0,v.c)(18),{form:n,type:r,count:i,defaults:s}=e,[c,l]=(0,fe.useState)(!1),u=r===`public`?`publicSubnetCidrs`:`privateSubnetCidrs`;if(i===0)return null;let d;t[0]===c?d=t[1]:(d=()=>l(!c),t[0]=c,t[1]=d);let f;t[2]===c?f=t[3]:(f=c?(0,y.jsx)(a,{className:`size-3`}):(0,y.jsx)(o,{className:`size-3`}),t[2]=c,t[3]=f);let p;t[4]!==d||t[5]!==f||t[6]!==r?(p=(0,y.jsxs)(ee,{className:`gap-1 px-0 text-xs text-muted-foreground`,onClick:d,type:`button`,variant:`link`,children:[f,`Customize `,r,` subnet CIDR blocks`]}),t[4]=d,t[5]=f,t[6]=r,t[7]=p):p=t[7];let m;t[8]!==i||t[9]!==s||t[10]!==c||t[11]!==u||t[12]!==n||t[13]!==r?(m=c&&(0,y.jsx)(`div`,{className:`mt-2 space-y-2`,children:Array.from({length:i},(e,t)=>(0,y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,y.jsxs)(`span`,{className:`w-32 text-xs text-muted-foreground`,children:[r===`public`?`Public`:`Private`,` subnet `,t+1]}),(0,y.jsx)(re,{defaultValue:s[t],placeholder:s[t],...n.register(`${u}.${t}`)})]},t))}),t[8]=i,t[9]=s,t[10]=c,t[11]=u,t[12]=n,t[13]=r,t[14]=m):m=t[14];let h;return t[15]!==p||t[16]!==m?(h=(0,y.jsxs)(`div`,{className:`mt-2`,children:[p,m]}),t[15]=p,t[16]=m,t[17]=h):h=t[17],h}function b(e){let t=(0,v.c)(8),{label:n,cidr:r,variant:i}=e,a=`rounded-md border px-3 py-2 text-xs ${i===`public`?`border-emerald-500/30 bg-emerald-500/10`:`border-blue-500/30 bg-blue-500/10`}`,o;t[0]===n?o=t[1]:(o=(0,y.jsx)(`div`,{className:`font-medium`,children:n}),t[0]=n,t[1]=o);let s;t[2]===r?s=t[3]:(s=(0,y.jsx)(`div`,{className:`text-muted-foreground`,children:r}),t[2]=r,t[3]=s);let c;return t[4]!==a||t[5]!==o||t[6]!==s?(c=(0,y.jsxs)(`div`,{className:a,children:[o,s]}),t[4]=a,t[5]=o,t[6]=s,t[7]=c):c=t[7],c}function me(e){let t=(0,v.c)(14),{mode:n,vpcCidr:r,publicSubnets:i,privateSubnets:a,hasIgw:o}=e,s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,y.jsx)(`h3`,{className:`mb-3 text-xs font-semibold tracking-wider text-muted-foreground uppercase`,children:`Preview`}),t[0]=s):s=t[0];let c;t[1]===r?c=t[2]:(c=(0,y.jsxs)(`div`,{className:`mb-3 text-xs font-medium`,children:[`VPC `,(0,y.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(`,r,`)`]})]}),t[1]=r,t[2]=c);let l;t[3]!==o||t[4]!==n||t[5]!==a||t[6]!==i?(l=n===`vpc-and-more`&&(0,y.jsxs)(`div`,{className:`grid gap-4 md:grid-cols-3`,children:[(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Subnets`}),i.map(x),a.map(he),i.length===0&&a.length===0&&(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`No subnets`})]}),(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Route Tables`}),i.length>0&&(0,y.jsxs)(`div`,{className:`rounded-md border border-foreground/10 bg-background px-3 py-2 text-xs`,children:[(0,y.jsx)(`div`,{className:`font-medium`,children:`Public Route Table`}),(0,y.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:`0.0.0.0/0 → IGW`}),(0,y.jsx)(`div`,{className:`text-muted-foreground`,children:`local`})]}),a.length>0&&(0,y.jsxs)(`div`,{className:`rounded-md border border-foreground/10 bg-background px-3 py-2 text-xs`,children:[(0,y.jsx)(`div`,{className:`font-medium`,children:`Private Route Table`}),(0,y.jsx)(`div`,{className:`mt-1 text-muted-foreground`,children:`local`})]})]}),(0,y.jsxs)(`div`,{className:`space-y-2`,children:[(0,y.jsx)(`div`,{className:`text-xs font-medium text-muted-foreground`,children:`Network Connections`}),o&&(0,y.jsxs)(`div`,{className:`rounded-md border border-amber-500/30 bg-amber-500/10 px-3 py-2 text-xs`,children:[(0,y.jsx)(`div`,{className:`font-medium`,children:`Internet Gateway`}),(0,y.jsx)(`div`,{className:`text-muted-foreground`,children:`Attached to VPC`})]}),!o&&(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`No internet gateway`})]})]}),t[3]=o,t[4]=n,t[5]=a,t[6]=i,t[7]=l):l=t[7];let u;t[8]===n?u=t[9]:(u=n===`vpc-only`&&(0,y.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:`VPC only — no additional resources will be created.`}),t[8]=n,t[9]=u);let d;return t[10]!==c||t[11]!==l||t[12]!==u?(d=(0,y.jsxs)(`div`,{className:`rounded-lg border bg-muted/30 p-4`,children:[s,(0,y.jsxs)(`div`,{className:`rounded-lg border-2 border-dashed border-foreground/20 p-4`,children:[c,l,u]})]}),t[10]=c,t[11]=l,t[12]=u,t[13]=d):d=t[13],d}function he(e){return(0,y.jsx)(b,{cidr:e.cidr,label:e.label,variant:`private`},e.cidr)}function x(e){return(0,y.jsx)(b,{cidr:e.cidr,label:e.label,variant:`public`},e.cidr)}var S=[0,1],C=[0,1,2];function w(){let e=(0,v.c)(86),t=i(),n=ce(),r=ne(),[a,o]=(0,fe.useState)(null),s;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=te(se),e[0]=s):s=e[0];let c;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(c={resolver:s,defaultValues:{mode:`vpc-only`,namePrefix:``,autoGenerateNames:!0,cidrBlock:`10.0.0.0/16`,tenancy:`default`,natGateway:`none`,publicSubnetCount:1,privateSubnetCount:1,publicSubnetCidrs:[],privateSubnetCidrs:[],tags:[]}},e[1]=c):c=e[1];let l=le(c),{handleSubmit:u,register:d,watch:ee,control:b,formState:he}=l,{errors:x,isSubmitting:S}=he,C;e[2]===b?C=e[3]:(C={control:b,name:`mode`},e[2]=b,e[3]=C);let w=p(C),T;e[4]===b?T=e[5]:(T={control:b,name:`cidrBlock`},e[4]=b,e[5]=T);let Ee=p(T),De;e[6]===b?De=e[7]:(De={control:b,name:`publicSubnetCount`},e[6]=b,e[7]=De);let Oe=p(De),ke;e[8]===b?ke=e[9]:(ke={control:b,name:`privateSubnetCount`},e[8]=b,e[9]=ke);let Ae=p(ke),E=f(Ee||`10.0.0.0/16`,w===`vpc-and-more`?Oe:0,w===`vpc-and-more`?Ae:0),[D,je]=(0,fe.useState)(``),O;e[10]!==n||e[11]!==t||e[12]!==r?(O=async e=>{if(o(null),e.mode===`vpc-only`){let r=e.autoGenerateNames&&e.namePrefix?`${e.namePrefix}-vpc`:e.namePrefix,i=(await n.mutateAsync({cidrBlock:e.cidrBlock,name:r||void 0})).Vpc?.VpcId;t(i?{to:`/ec2/describe-vpcs/$id`,params:{id:i}}:{to:`/ec2/describe-vpcs`});return}je(`Creating VPC and resources...`);let i=await r.mutateAsync(e);o(i),!i.error&&i.vpcId&&t({to:`/ec2/describe-vpcs/$id`,params:{id:i.vpcId}}),je(``)},e[10]=n,e[11]=t,e[12]=r,e[13]=O):O=e[13];let Me=O,k=n.error??r.error,Ne=n.isPending||r.isPending,A,j;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,y.jsx)(ae,{to:`/ec2/describe-vpcs`,children:`Back to VPCs`}),j=(0,y.jsx)(de,{title:`Create VPC`}),e[14]=A,e[15]=j):(A=e[14],j=e[15]);let M;e[16]===k?M=e[17]:(M=k&&(0,y.jsx)(ie,{error:k,msg:`Failed to create VPC`}),e[16]=k,e[17]=M);let N;e[18]===a?N=e[19]:(N=a?.error&&(0,y.jsxs)(`div`,{className:`mb-6 max-w-4xl rounded-md border border-destructive bg-destructive/10 p-4`,children:[(0,y.jsxs)(`h2`,{className:`text-sm font-medium text-destructive`,children:[`Wizard failed: `,a.failedStep]}),(0,y.jsx)(`p`,{className:`mt-1 text-sm text-destructive`,children:a.error.message}),a.created.length>0&&(0,y.jsxs)(`div`,{className:`mt-3`,children:[(0,y.jsx)(`p`,{className:`text-xs font-medium text-destructive`,children:`Successfully created resources:`}),(0,y.jsx)(`ul`,{className:`mt-1 list-inside list-disc text-xs text-destructive`,children:a.created.map(we)})]})]}),e[18]=a,e[19]=N);let P;e[20]===D?P=e[21]:(P=D&&(0,y.jsx)(`div`,{className:`mb-4 max-w-4xl text-sm text-muted-foreground`,children:D}),e[20]=D,e[21]=P);let F;e[22]!==u||e[23]!==Me?(F=u(Me),e[22]=u,e[23]=Me,e[24]=F):F=e[24];let Pe;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(Pe=(0,y.jsx)(_,{children:`Resources to create`}),e[25]=Pe):Pe=e[25];let I;e[26]===b?I=e[27]:(I=(0,y.jsxs)(g,{children:[Pe,(0,y.jsx)(h,{control:b,name:`mode`,render:Ce})]}),e[26]=b,e[27]=I);let Fe;e[28]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=(0,y.jsx)(_,{children:(0,y.jsx)(`label`,{htmlFor:`namePrefix`,children:`Name tag auto-generation`})}),e[28]=Fe):Fe=e[28];let L;e[29]===d?L=e[30]:(L=d(`namePrefix`),e[29]=d,e[30]=L);let R;e[31]===L?R=e[32]:(R=(0,y.jsx)(re,{id:`namePrefix`,placeholder:`project`,...L}),e[31]=L,e[32]=R);let z;e[33]===b?z=e[34]:(z=(0,y.jsx)(h,{control:b,name:`autoGenerateNames`,render:Se}),e[33]=b,e[34]=z);let B;e[35]!==R||e[36]!==z?(B=(0,y.jsxs)(g,{children:[Fe,(0,y.jsxs)(`div`,{className:`flex items-center gap-3`,children:[R,z]})]}),e[35]=R,e[36]=z,e[37]=B):B=e[37];let V;e[38]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,y.jsx)(_,{children:(0,y.jsx)(`label`,{htmlFor:`cidrBlock`,children:`IPv4 CIDR block`})}),e[38]=V):V=e[38];let Ie=!!x.cidrBlock,H;e[39]===d?H=e[40]:(H=d(`cidrBlock`),e[39]=d,e[40]=H);let U;e[41]!==Ie||e[42]!==H?(U=(0,y.jsx)(re,{"aria-invalid":Ie,id:`cidrBlock`,placeholder:`10.0.0.0/16`,...H}),e[41]=Ie,e[42]=H,e[43]=U):U=e[43];let W;e[44]===x.cidrBlock?W=e[45]:(W=(0,y.jsx)(ue,{errors:[x.cidrBlock]}),e[44]=x.cidrBlock,e[45]=W);let G;e[46]!==U||e[47]!==W?(G=(0,y.jsxs)(g,{children:[V,U,W]}),e[46]=U,e[47]=W,e[48]=G):G=e[48];let K;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(K=(0,y.jsx)(_,{children:`Tenancy`}),e[49]=K):K=e[49];let q;e[50]===b?q=e[51]:(q=(0,y.jsxs)(g,{children:[K,(0,y.jsx)(h,{control:b,name:`tenancy`,render:xe})]}),e[50]=b,e[51]=q);let Le=w===`vpc-and-more`&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(g,{children:[(0,y.jsx)(_,{children:`Number of public subnets`}),(0,y.jsx)(h,{control:b,name:`publicSubnetCount`,render:be}),(0,y.jsx)(pe,{count:Oe,defaults:E.publicSubnets.map(ye),form:l,type:`public`})]}),(0,y.jsxs)(g,{children:[(0,y.jsx)(_,{children:`Number of private subnets`}),(0,y.jsx)(h,{control:b,name:`privateSubnetCount`,render:ve}),(0,y.jsx)(pe,{count:Ae,defaults:E.privateSubnets.map(_e),form:l,type:`private`})]}),Oe>0&&Ae>0&&(0,y.jsxs)(g,{children:[(0,y.jsx)(_,{children:`NAT gateways`}),(0,y.jsx)(h,{control:b,name:`natGateway`,render:ge}),(0,y.jsx)(`p`,{className:`mt-1 text-xs text-muted-foreground`,children:`Creates an Elastic IP + NAT gateway in the public subnet and routes private subnet egress (0.0.0.0/0) through it.`})]})]}),Re=m,ze=Te(ee,E),J;e[52]!==Re||e[53]!==ze?(J=(0,y.jsx)(Re,{commands:ze}),e[52]=Re,e[53]=ze,e[54]=J):J=e[54];let Y;e[55]===t?Y=e[56]:(Y=async()=>await t({to:`/ec2/describe-vpcs`}),e[55]=t,e[56]=Y);let X;e[57]!==Ne||e[58]!==S||e[59]!==Y?(X=(0,y.jsx)(oe,{isPending:Ne,isSubmitting:S,onCancel:Y,pendingLabel:`Creating…`,submitLabel:`Create VPC`}),e[57]=Ne,e[58]=S,e[59]=Y,e[60]=X):X=e[60];let Z;e[61]!==F||e[62]!==I||e[63]!==B||e[64]!==G||e[65]!==q||e[66]!==Le||e[67]!==J||e[68]!==X?(Z=(0,y.jsxs)(`form`,{className:`min-w-0 flex-1 space-y-6`,onSubmit:F,children:[I,B,G,q,Le,J,X]}),e[61]=F,e[62]=I,e[63]=B,e[64]=G,e[65]=q,e[66]=Le,e[67]=J,e[68]=X,e[69]=Z):Z=e[69];let Be=w===`vpc-and-more`&&Oe>0,Ve=Ee||`10.0.0.0/16`,Q;e[70]!==w||e[71]!==E.privateSubnets||e[72]!==E.publicSubnets||e[73]!==Be||e[74]!==Ve?(Q=(0,y.jsx)(`div`,{className:`hidden min-w-0 flex-1 lg:block`,children:(0,y.jsx)(me,{hasIgw:Be,mode:w,privateSubnets:E.privateSubnets,publicSubnets:E.publicSubnets,vpcCidr:Ve})}),e[70]=w,e[71]=E.privateSubnets,e[72]=E.publicSubnets,e[73]=Be,e[74]=Ve,e[75]=Q):Q=e[75];let $;e[76]!==Z||e[77]!==Q?($=(0,y.jsxs)(`div`,{className:`flex max-w-6xl gap-8`,children:[Z,Q]}),e[76]=Z,e[77]=Q,e[78]=$):$=e[78];let He;return e[79]!==M||e[80]!==N||e[81]!==P||e[82]!==$||e[83]!==A||e[84]!==j?(He=(0,y.jsxs)(y.Fragment,{children:[A,j,M,N,P,$]}),e[79]=M,e[80]=N,e[81]=P,e[82]=$,e[83]=A,e[84]=j,e[85]=He):He=e[85],He}function ge(e){let{field:t}=e;return(0,y.jsxs)(d,{onValueChange:t.onChange,value:t.value??`none`,children:[(0,y.jsx)(u,{id:`natGateway`,children:(0,y.jsx)(s,{})}),(0,y.jsxs)(l,{children:[(0,y.jsx)(c,{value:`none`,children:`None`}),(0,y.jsx)(c,{value:`single`,children:`In 1 AZ`})]})]})}function _e(e){return e.cidr}function ve(e){let{field:t}=e;return(0,y.jsx)(`div`,{className:`flex gap-1`,children:C.map(e=>(0,y.jsx)(ee,{onClick:()=>t.onChange(e),size:`sm`,type:`button`,variant:t.value===e?`default`:`outline`,children:e},e))})}function ye(e){return e.cidr}function be(e){let{field:t}=e;return(0,y.jsx)(`div`,{className:`flex gap-1`,children:S.map(e=>(0,y.jsx)(ee,{onClick:()=>t.onChange(e),size:`sm`,type:`button`,variant:t.value===e?`default`:`outline`,children:e},e))})}function xe(e){let{field:t}=e;return(0,y.jsxs)(d,{onValueChange:t.onChange,value:t.value,children:[(0,y.jsx)(u,{id:`tenancy`,children:(0,y.jsx)(s,{})}),(0,y.jsxs)(l,{children:[(0,y.jsx)(c,{value:`default`,children:`default`}),(0,y.jsx)(c,{value:`dedicated`,children:`dedicated`})]})]})}function Se(e){let{field:t}=e;return(0,y.jsxs)(`label`,{className:`flex shrink-0 items-center gap-2 text-xs`,children:[(0,y.jsx)(`input`,{"aria-label":`Auto-generate name tags`,checked:t.value,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Auto-generate`]})}function Ce(e){let{field:t}=e;return(0,y.jsxs)(`div`,{className:`flex gap-4`,children:[(0,y.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,y.jsx)(`input`,{"aria-label":`VPC only`,checked:t.value===`vpc-only`,name:`mode`,onChange:()=>t.onChange(`vpc-only`),type:`radio`}),`VPC only`]}),(0,y.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,y.jsx)(`input`,{"aria-label":`VPC and more`,checked:t.value===`vpc-and-more`,name:`mode`,onChange:()=>t.onChange(`vpc-and-more`),type:`radio`}),`VPC and more`]})]})}function we(e,t){return(0,y.jsxs)(`li`,{children:[e.type,`: `,e.id]},t)}function Te(e,t){let n=e(`mode`),r=typeof n==`string`?n:``,i=e(`cidrBlock`),a=typeof i==`string`?i:``,o=e(`tenancy`),s=typeof o==`string`?o:``,c=e(`natGateway`),l=typeof c==`string`?c:``;if(r===`vpc-only`){let e=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-vpc`},{type:`flag`,value:` \\ --cidr-block`},{type:`value`,value:` ${a||`10.0.0.0/16`}`}];return s&&s!=="default"&&e.push({type:`flag`,value:` \\ --instance-tenancy`},{type:`value`,value:` ${s}`}),[{label:`Create VPC`,parts:e}]}let u=[],d=[...t.publicSubnets.map((e,t)=>({...e,name:`PUBLIC_SUBNET_${t+1}`})),...t.privateSubnets.map((e,t)=>({...e,name:`PRIVATE_SUBNET_${t+1}`}))];u.push({label:`Create VPC`,parts:[{type:`comment`,value:`# Create VPC with subnets, internet gateway, and routing diff --git a/spinifex/services/spinifexui/frontend/dist/assets/delete-confirmation-dialog.js b/spinifex/services/spinifexui/frontend/dist/assets/delete-confirmation-dialog.js index 947a6e4d9..d374cf5df 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/delete-confirmation-dialog.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/delete-confirmation-dialog.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{a as n,i as r,l as i,n as a,o,r as s,s as c,t as l}from"./alert-dialog.js";var u=t(),d=e();function f(e){let t=(0,u.c)(19),{open:f,onOpenChange:p,title:m,description:h,isPending:g,onConfirm:_,confirmLabel:v,pendingLabel:y}=e,b=v===void 0?`Delete`:v,x=y===void 0?`Deleting…`:y,S;t[0]===m?S=t[1]:(S=(0,d.jsx)(i,{children:m}),t[0]=m,t[1]=S);let C;t[2]===h?C=t[3]:(C=(0,d.jsx)(n,{children:h}),t[2]=h,t[3]=C);let w;t[4]!==S||t[5]!==C?(w=(0,d.jsxs)(c,{children:[S,C]}),t[4]=S,t[5]=C,t[6]=w):w=t[6];let T;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,d.jsx)(s,{children:`Cancel`}),t[7]=T):T=t[7];let E=g?x:b,D;t[8]!==g||t[9]!==_||t[10]!==E?(D=(0,d.jsxs)(o,{children:[T,(0,d.jsx)(a,{disabled:g,onClick:_,children:E})]}),t[8]=g,t[9]=_,t[10]=E,t[11]=D):D=t[11];let O;t[12]!==w||t[13]!==D?(O=(0,d.jsxs)(r,{children:[w,D]}),t[12]=w,t[13]=D,t[14]=O):O=t[14];let k;return t[15]!==p||t[16]!==f||t[17]!==O?(k=(0,d.jsx)(l,{onOpenChange:p,open:f,children:O}),t[15]=p,t[16]=f,t[17]=O,t[18]=k):k=t[18],k}export{f as t}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{B as n,F as r,I as i,L as a,R as o,U as s,V as c,z as l}from"./index.js";var u=t(),d=e();function f(e){let t=(0,u.c)(19),{open:f,onOpenChange:p,title:m,description:h,isPending:g,onConfirm:_,confirmLabel:v,pendingLabel:y}=e,b=v===void 0?`Delete`:v,x=y===void 0?`Deleting…`:y,S;t[0]===m?S=t[1]:(S=(0,d.jsx)(s,{children:m}),t[0]=m,t[1]=S);let C;t[2]===h?C=t[3]:(C=(0,d.jsx)(l,{children:h}),t[2]=h,t[3]=C);let w;t[4]!==S||t[5]!==C?(w=(0,d.jsxs)(c,{children:[S,C]}),t[4]=S,t[5]=C,t[6]=w):w=t[6];let T;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(T=(0,d.jsx)(a,{children:`Cancel`}),t[7]=T):T=t[7];let E=g?x:b,D;t[8]!==g||t[9]!==_||t[10]!==E?(D=(0,d.jsxs)(n,{children:[T,(0,d.jsx)(i,{disabled:g,onClick:_,children:E})]}),t[8]=g,t[9]=_,t[10]=E,t[11]=D):D=t[11];let O;t[12]!==w||t[13]!==D?(O=(0,d.jsxs)(o,{children:[w,D]}),t[12]=w,t[13]=D,t[14]=O):O=t[14];let k;return t[15]!==p||t[16]!==f||t[17]!==O?(k=(0,d.jsx)(r,{onOpenChange:p,open:f,children:O}),t[15]=p,t[16]=f,t[17]=O,t[18]=k):k=t[18],k}export{f as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-addresses.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-addresses.js index c43b6af63..e5bb79a63 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-addresses.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-addresses.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{n as a}from"./ec2.js";import{Xn as o,dn as s}from"./index.js";import{t as c}from"./list-card.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=o(a),r;e[0]===t.Addresses?r=e[1]:(r=t.Addresses??[],e[0]=t.Addresses,e[1]=r);let c=r,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(s,{actions:(0,u.jsx)(n,{to:`/ec2/allocate-address`,children:(0,u.jsx)(i,{children:`Allocate Elastic IP`})}),title:`Elastic IPs`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No Elastic IPs found.`})]}),e[3]=c,e[4]=p),p}function f(e){if(!e.AllocationId)return null;let t=r(e.Tags),n=e.AssociationId?`${e.PublicIp} • associated`:`${e.PublicIp} • available`;return(0,u.jsx)(c,{params:{id:e.AllocationId},subtitle:n,title:t?`${e.AllocationId} (${t})`:e.AllocationId??``,to:`/ec2/describe-addresses/$id`},e.AllocationId)}export{d as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{n as a}from"./ec2.js";import{$n as o,yn as s}from"./index.js";import{t as c}from"./list-card.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=o(a),r;e[0]===t.Addresses?r=e[1]:(r=t.Addresses??[],e[0]=t.Addresses,e[1]=r);let c=r,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(s,{actions:(0,u.jsx)(n,{to:`/ec2/allocate-address`,children:(0,u.jsx)(i,{children:`Allocate Elastic IP`})}),title:`Elastic IPs`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No Elastic IPs found.`})]}),e[3]=c,e[4]=p),p}function f(e){if(!e.AllocationId)return null;let t=r(e.Tags),n=e.AssociationId?`${e.PublicIp} • associated`:`${e.PublicIp} • available`;return(0,u.jsx)(c,{params:{id:e.AllocationId},subtitle:n,title:t?`${e.AllocationId} (${t})`:e.AllocationId??``,to:`/ec2/describe-addresses/$id`},e.AllocationId)}export{d as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-images.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-images.js index 4c0f75318..067f1faa8 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-images.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-images.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{o as n}from"./ec2.js";import{Xn as r,dn as i}from"./index.js";import{t as a}from"./list-card.js";import{t as o}from"./state-badge.js";import{r as s}from"./system-managed.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=r(n),a;if(e[0]!==t.Images){let n=(t.Images??[]).filter(f),r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,l.jsx)(i,{title:`Images`}),e[2]=r):r=e[2],a=(0,l.jsxs)(l.Fragment,{children:[r,n.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:n.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No images found.`})]}),e[0]=t.Images,e[1]=a}else a=e[1];return a}function d(e){return e.ImageId?(0,l.jsx)(a,{badge:(0,l.jsx)(o,{state:e.State}),params:{id:e.ImageId},subtitle:e.ImageId??``,title:e.Name??e.ImageId??``,to:`/ec2/describe-images/$id`},e.ImageId):null}function f(e){return!s(e)}export{u as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{o as n}from"./ec2.js";import{$n as r,yn as i}from"./index.js";import{t as a}from"./list-card.js";import{t as o}from"./state-badge.js";import{r as s}from"./system-managed.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=r(n),a;if(e[0]!==t.Images){let n=(t.Images??[]).filter(f),r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,l.jsx)(i,{title:`Images`}),e[2]=r):r=e[2],a=(0,l.jsxs)(l.Fragment,{children:[r,n.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:n.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No images found.`})]}),e[0]=t.Images,e[1]=a}else a=e[1];return a}function d(e){return e.ImageId?(0,l.jsx)(a,{badge:(0,l.jsx)(o,{state:e.State}),params:{id:e.ImageId},subtitle:e.ImageId??``,title:e.Name??e.ImageId??``,to:`/ec2/describe-images/$id`},e.ImageId):null}function f(e){return!s(e)}export{u as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-instances.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-instances.js index 6eb60d355..54dd675be 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-instances.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-instances.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{l as i}from"./ec2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./state-badge.js";var l=t(),u=e(),d={running:0,pending:1,stopping:2,"shutting-down":3,stopped:4,terminated:5};function f(){let e=(0,l.c)(3),{data:t}=a(i),s;if(e[0]!==t.Reservations){let i=(t.Reservations?.flatMap(h)??[]).toSorted(m),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/run-instances`,children:(0,u.jsx)(r,{children:`Run Instances`})}),title:`Instances`}),e[2]=a):a=e[2],s=(0,u.jsxs)(u.Fragment,{children:[a,i.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:i.map(p)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No instances found.`})]}),e[0]=t.Reservations,e[1]=s}else s=e[1];return s}function p(e){return e.InstanceId?(0,u.jsx)(s,{badge:(0,u.jsx)(c,{state:e.State?.Name}),params:{id:e.InstanceId},subtitle:`${e.InstanceType}`,title:e.InstanceId,to:`/ec2/describe-instances/$id`},e.InstanceId):null}function m(e,t){let n=d[e.State?.Name??``]??6,r=d[t.State?.Name??``]??6;return n===r?(e.InstanceId??``).localeCompare(t.InstanceId??``):n-r}function h(e){return e.Instances??[]}export{f as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{l as i}from"./ec2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./state-badge.js";var l=t(),u=e(),d={running:0,pending:1,stopping:2,"shutting-down":3,stopped:4,terminated:5};function f(){let e=(0,l.c)(3),{data:t}=a(i),s;if(e[0]!==t.Reservations){let i=(t.Reservations?.flatMap(h)??[]).toSorted(m),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/run-instances`,children:(0,u.jsx)(r,{children:`Run Instances`})}),title:`Instances`}),e[2]=a):a=e[2],s=(0,u.jsxs)(u.Fragment,{children:[a,i.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:i.map(p)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No instances found.`})]}),e[0]=t.Reservations,e[1]=s}else s=e[1];return s}function p(e){return e.InstanceId?(0,u.jsx)(s,{badge:(0,u.jsx)(c,{state:e.State?.Name}),params:{id:e.InstanceId},subtitle:`${e.InstanceType}`,title:e.InstanceId,to:`/ec2/describe-instances/$id`},e.InstanceId):null}function m(e,t){let n=d[e.State?.Name??``]??6,r=d[t.State?.Name??``]??6;return n===r?(e.InstanceId??``).localeCompare(t.InstanceId??``):n-r}function h(e){return e.Instances??[]}export{f as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-internet-gateways.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-internet-gateways.js index bc41ae2eb..c615a96be 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-internet-gateways.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-internet-gateways.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{d as a}from"./ec2.js";import{Xn as o,dn as s}from"./index.js";import{t as c}from"./list-card.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=o(a),r;e[0]===t.InternetGateways?r=e[1]:(r=t.InternetGateways??[],e[0]=t.InternetGateways,e[1]=r);let c=r,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(s,{actions:(0,u.jsx)(n,{to:`/ec2/create-internet-gateway`,children:(0,u.jsx)(i,{children:`Create Internet Gateway`})}),title:`Internet Gateways`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No Internet Gateways found.`})]}),e[3]=c,e[4]=p),p}function f(e){if(!e.InternetGatewayId)return null;let t=r(e.Tags),n=e.Attachments?.[0]?.VpcId;return(0,u.jsx)(c,{params:{id:e.InternetGatewayId},subtitle:n?`attached to ${n}`:`detached`,title:t?`${e.InternetGatewayId} (${t})`:e.InternetGatewayId,to:`/ec2/describe-internet-gateways/$id`},e.InternetGatewayId)}export{d as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{d as a}from"./ec2.js";import{$n as o,yn as s}from"./index.js";import{t as c}from"./list-card.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=o(a),r;e[0]===t.InternetGateways?r=e[1]:(r=t.InternetGateways??[],e[0]=t.InternetGateways,e[1]=r);let c=r,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(s,{actions:(0,u.jsx)(n,{to:`/ec2/create-internet-gateway`,children:(0,u.jsx)(i,{children:`Create Internet Gateway`})}),title:`Internet Gateways`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No Internet Gateways found.`})]}),e[3]=c,e[4]=p),p}function f(e){if(!e.InternetGatewayId)return null;let t=r(e.Tags),n=e.Attachments?.[0]?.VpcId;return(0,u.jsx)(c,{params:{id:e.InternetGatewayId},subtitle:n?`attached to ${n}`:`detached`,title:t?`${e.InternetGatewayId} (${t})`:e.InternetGatewayId,to:`/ec2/describe-internet-gateways/$id`},e.InternetGatewayId)}export{d as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-key-pairs.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-key-pairs.js index 4098d703d..204564a23 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-key-pairs.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-key-pairs.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{p as i}from"./ec2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(4),{data:t}=a(i),s;if(e[0]!==t.KeyPairs){let i=(t.KeyPairs??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(n,{to:`/ec2/import-key-pair`,children:(0,l.jsx)(r,{variant:`outline`,children:`Import Key Pair`})}),e[2]=a):a=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,l.jsx)(o,{actions:(0,l.jsxs)(`div`,{className:`flex gap-2`,children:[a,(0,l.jsx)(n,{to:`/ec2/create-key-pair`,children:(0,l.jsx)(r,{children:`Create Key Pair`})})]}),title:`Key Pairs`}),e[3]=c):c=e[3],s=(0,l.jsxs)(l.Fragment,{children:[c,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No key pairs found.`})]}),e[0]=t.KeyPairs,e[1]=s}else s=e[1];return s}function d(e){return e.KeyPairId?(0,l.jsx)(s,{params:{id:e.KeyPairId},subtitle:e.KeyPairId??``,title:e.KeyName??``,to:`/ec2/describe-key-pairs/$id`},e.KeyPairId):null}function f(e,t){let n=e.KeyName?.toLowerCase()??``,r=t.KeyName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{p as i}from"./ec2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(4),{data:t}=a(i),s;if(e[0]!==t.KeyPairs){let i=(t.KeyPairs??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(n,{to:`/ec2/import-key-pair`,children:(0,l.jsx)(r,{variant:`outline`,children:`Import Key Pair`})}),e[2]=a):a=e[2];let c;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,l.jsx)(o,{actions:(0,l.jsxs)(`div`,{className:`flex gap-2`,children:[a,(0,l.jsx)(n,{to:`/ec2/create-key-pair`,children:(0,l.jsx)(r,{children:`Create Key Pair`})})]}),title:`Key Pairs`}),e[3]=c):c=e[3],s=(0,l.jsxs)(l.Fragment,{children:[c,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No key pairs found.`})]}),e[0]=t.KeyPairs,e[1]=s}else s=e[1];return s}function d(e){return e.KeyPairId?(0,l.jsx)(s,{params:{id:e.KeyPairId},subtitle:e.KeyPairId??``,title:e.KeyName??``,to:`/ec2/describe-key-pairs/$id`},e.KeyPairId):null}function f(e,t){let n=e.KeyName?.toLowerCase()??``,r=t.KeyName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-launch-templates.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-launch-templates.js index e70e4fbf6..81d8446b3 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-launch-templates.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-launch-templates.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{h as i}from"./ec2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./badge.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=a(i),s;e[0]===t.LaunchTemplates?s=e[1]:(s=t.LaunchTemplates??[],e[0]=t.LaunchTemplates,e[1]=s);let c=s,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/create-launch-template`,children:(0,u.jsx)(r,{children:`Create Launch Template`})}),title:`Launch Templates`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No launch templates found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.LaunchTemplateId?(0,u.jsx)(s,{badge:(0,u.jsxs)(c,{variant:`secondary`,children:[`default v`,e.DefaultVersionNumber]}),params:{id:e.LaunchTemplateId},subtitle:`${e.LaunchTemplateId} • latest v${e.LatestVersionNumber}`,title:e.LaunchTemplateName??e.LaunchTemplateId,to:`/ec2/describe-launch-templates/$id`},e.LaunchTemplateId):null}export{d as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{h as i}from"./ec2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./badge.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=a(i),s;e[0]===t.LaunchTemplates?s=e[1]:(s=t.LaunchTemplates??[],e[0]=t.LaunchTemplates,e[1]=s);let c=s,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/create-launch-template`,children:(0,u.jsx)(r,{children:`Create Launch Template`})}),title:`Launch Templates`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No launch templates found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.LaunchTemplateId?(0,u.jsx)(s,{badge:(0,u.jsxs)(c,{variant:`secondary`,children:[`default v`,e.DefaultVersionNumber]}),params:{id:e.LaunchTemplateId},subtitle:`${e.LaunchTemplateId} • latest v${e.LatestVersionNumber}`,title:e.LaunchTemplateName??e.LaunchTemplateId,to:`/ec2/describe-launch-templates/$id`},e.LaunchTemplateId):null}export{d as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-load-balancers.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-load-balancers.js index 993a2d3f3..bf35bc808 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-load-balancers.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-load-balancers.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./useNavigate.js";import{Xt as i}from"./auth.js";import{t as a}from"./button.js";import{a as o}from"./elbv22.js";import{Xn as s,dn as c}from"./index.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(10),t=r(),{data:f}=s(o),m;e[0]===f.LoadBalancers?m=e[1]:(m=f.LoadBalancers??[],e[0]=f.LoadBalancers,e[1]=m);let h=m,g;e[2]===t?g=e[3]:(g=(0,d.jsx)(c,{actions:(0,d.jsx)(a,{onClick:async()=>await t({to:`/ec2/create-load-balancer`}),children:`Create Load Balancer`}),title:`Load Balancers`}),e[2]=t,e[3]=g);let _;e[4]!==h||e[5]!==t?(_=h.length>0?(0,d.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,d.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`DNS Name`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`State`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Type`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Scheme`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`VPC`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Created`})]})}),(0,d.jsx)(`tbody`,{children:h.map(e=>{if(!e.LoadBalancerArn)return null;let r=e.LoadBalancerArn;return(0,d.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:async()=>await t({to:`/ec2/describe-load-balancers/$id`,params:{id:encodeURIComponent(r)}}),children:[(0,d.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,d.jsx)(n,{className:`text-primary hover:underline`,onClick:p,params:{id:encodeURIComponent(r)},to:`/ec2/describe-load-balancers/$id`,children:e.LoadBalancerName??r})}),(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.DNSName??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:(0,d.jsx)(l,{state:e.State?.Code})}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Type??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Scheme??``}),(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.VpcId??``}),(0,d.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:i(e.CreatedTime)})]},r)})})]})}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No load balancers found.`}),e[4]=h,e[5]=t,e[6]=_):_=e[6];let v;return e[7]!==g||e[8]!==_?(v=(0,d.jsxs)(d.Fragment,{children:[g,_]}),e[7]=g,e[8]=_,e[9]=v):v=e[9],v}function p(e){return e.stopPropagation()}var m=f;export{m as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./useNavigate.js";import{Xt as i}from"./auth.js";import{t as a}from"./button.js";import{a as o}from"./elbv22.js";import{$n as s,yn as c}from"./index.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(10),t=r(),{data:f}=s(o),m;e[0]===f.LoadBalancers?m=e[1]:(m=f.LoadBalancers??[],e[0]=f.LoadBalancers,e[1]=m);let h=m,g;e[2]===t?g=e[3]:(g=(0,d.jsx)(c,{actions:(0,d.jsx)(a,{onClick:async()=>await t({to:`/ec2/create-load-balancer`}),children:`Create Load Balancer`}),title:`Load Balancers`}),e[2]=t,e[3]=g);let _;e[4]!==h||e[5]!==t?(_=h.length>0?(0,d.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,d.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`DNS Name`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`State`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Type`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Scheme`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`VPC`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Created`})]})}),(0,d.jsx)(`tbody`,{children:h.map(e=>{if(!e.LoadBalancerArn)return null;let r=e.LoadBalancerArn;return(0,d.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:async()=>await t({to:`/ec2/describe-load-balancers/$id`,params:{id:encodeURIComponent(r)}}),children:[(0,d.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,d.jsx)(n,{className:`text-primary hover:underline`,onClick:p,params:{id:encodeURIComponent(r)},to:`/ec2/describe-load-balancers/$id`,children:e.LoadBalancerName??r})}),(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.DNSName??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:(0,d.jsx)(l,{state:e.State?.Code})}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Type??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Scheme??``}),(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.VpcId??``}),(0,d.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:i(e.CreatedTime)})]},r)})})]})}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No load balancers found.`}),e[4]=h,e[5]=t,e[6]=_):_=e[6];let v;return e[7]!==g||e[8]!==_?(v=(0,d.jsxs)(d.Fragment,{children:[g,_]}),e[7]=g,e[8]=_,e[9]=v):v=e[9],v}function p(e){return e.stopPropagation()}var m=f;export{m as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-nat-gateways.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-nat-gateways.js index 3874f86d0..2d55dfa55 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-nat-gateways.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-nat-gateways.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{_ as a}from"./ec2.js";import{Xn as o,dn as s}from"./index.js";import{t as c}from"./list-card.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=o(a),r;e[0]===t.NatGateways?r=e[1]:(r=t.NatGateways??[],e[0]=t.NatGateways,e[1]=r);let c=r,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(n,{to:`/ec2/create-nat-gateway`,children:(0,d.jsx)(i,{children:`Create NAT Gateway`})}),title:`NAT Gateways`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No NAT Gateways found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.NatGatewayId)return null;let t=r(e.Tags);return(0,d.jsx)(c,{badge:(0,d.jsx)(l,{state:e.State}),params:{id:e.NatGatewayId},subtitle:e.SubnetId??``,title:t?`${e.NatGatewayId} (${t})`:e.NatGatewayId,to:`/ec2/describe-nat-gateways/$id`},e.NatGatewayId)}export{f as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{_ as a}from"./ec2.js";import{$n as o,yn as s}from"./index.js";import{t as c}from"./list-card.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=o(a),r;e[0]===t.NatGateways?r=e[1]:(r=t.NatGateways??[],e[0]=t.NatGateways,e[1]=r);let c=r,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(n,{to:`/ec2/create-nat-gateway`,children:(0,d.jsx)(i,{children:`Create NAT Gateway`})}),title:`NAT Gateways`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No NAT Gateways found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.NatGatewayId)return null;let t=r(e.Tags);return(0,d.jsx)(c,{badge:(0,d.jsx)(l,{state:e.State}),params:{id:e.NatGatewayId},subtitle:e.SubnetId??``,title:t?`${e.NatGatewayId} (${t})`:e.NatGatewayId,to:`/ec2/describe-nat-gateways/$id`},e.NatGatewayId)}export{f as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-placement-groups.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-placement-groups.js index 555e23567..48bc51179 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-placement-groups.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-placement-groups.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{y as i}from"./ec2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./state-badge.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=a(i),s;e[0]===t.PlacementGroups?s=e[1]:(s=t.PlacementGroups??[],e[0]=t.PlacementGroups,e[1]=s);let c=s,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/create-placement-group`,children:(0,u.jsx)(r,{children:`Create Placement Group`})}),title:`Placement Groups`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No placement groups found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.GroupId?(0,u.jsx)(s,{badge:(0,u.jsx)(c,{state:e.State}),params:{id:e.GroupId},subtitle:`${e.Strategy} \u2022 ${e.GroupId}`,title:e.GroupName??e.GroupId,to:`/ec2/describe-placement-groups/$id`},e.GroupId):null}export{d as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{y as i}from"./ec2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./state-badge.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=a(i),s;e[0]===t.PlacementGroups?s=e[1]:(s=t.PlacementGroups??[],e[0]=t.PlacementGroups,e[1]=s);let c=s,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/create-placement-group`,children:(0,u.jsx)(r,{children:`Create Placement Group`})}),title:`Placement Groups`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No placement groups found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.GroupId?(0,u.jsx)(s,{badge:(0,u.jsx)(c,{state:e.State}),params:{id:e.GroupId},subtitle:`${e.Strategy} \u2022 ${e.GroupId}`,title:e.GroupName??e.GroupId,to:`/ec2/describe-placement-groups/$id`},e.GroupId):null}export{d as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-route-tables.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-route-tables.js index dd5d4a173..19a31357c 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-route-tables.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-route-tables.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{S as a}from"./ec2.js";import{Xn as o,dn as s}from"./index.js";import{t as c}from"./list-card.js";import{t as l}from"./badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=o(a),r;e[0]===t.RouteTables?r=e[1]:(r=t.RouteTables??[],e[0]=t.RouteTables,e[1]=r);let c=r,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(n,{to:`/ec2/create-route-table`,children:(0,d.jsx)(i,{children:`Create Route Table`})}),title:`Route Tables`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No Route Tables found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.RouteTableId)return null;let t=r(e.Tags),n=e.Associations?.some(h)??!1,i=e.Associations?.filter(m).length??0;return(0,d.jsx)(c,{badge:n?(0,d.jsx)(l,{variant:`secondary`,children:`Main`}):null,params:{id:e.RouteTableId},subtitle:`${e.VpcId??``} · ${i} subnet${i===1?``:`s`}`,title:t?`${e.RouteTableId} (${t})`:e.RouteTableId,to:`/ec2/describe-route-tables/$id`},e.RouteTableId)}function m(e){return e.SubnetId}function h(e){return e.Main}export{f as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{S as a}from"./ec2.js";import{$n as o,yn as s}from"./index.js";import{t as c}from"./list-card.js";import{t as l}from"./badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=o(a),r;e[0]===t.RouteTables?r=e[1]:(r=t.RouteTables??[],e[0]=t.RouteTables,e[1]=r);let c=r,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(n,{to:`/ec2/create-route-table`,children:(0,d.jsx)(i,{children:`Create Route Table`})}),title:`Route Tables`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No Route Tables found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.RouteTableId)return null;let t=r(e.Tags),n=e.Associations?.some(h)??!1,i=e.Associations?.filter(m).length??0;return(0,d.jsx)(c,{badge:n?(0,d.jsx)(l,{variant:`secondary`,children:`Main`}):null,params:{id:e.RouteTableId},subtitle:`${e.VpcId??``} · ${i} subnet${i===1?``:`s`}`,title:t?`${e.RouteTableId} (${t})`:e.RouteTableId,to:`/ec2/describe-route-tables/$id`},e.RouteTableId)}function m(e){return e.SubnetId}function h(e){return e.Main}export{f as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-security-groups.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-security-groups.js index 9a7f6a4f7..4bf1258f7 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-security-groups.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-security-groups.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{w as i}from"./ec2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(5),{data:t}=a(i),s;e[0]===t.SecurityGroups?s=e[1]:(s=t.SecurityGroups??[],e[0]=t.SecurityGroups,e[1]=s);let u=s,f;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/ec2/create-security-group`,children:(0,l.jsx)(r,{children:`Create Security Group`})}),title:`Security Groups`}),e[2]=f):f=e[2];let p;return e[3]===u?p=e[4]:(p=(0,l.jsxs)(l.Fragment,{children:[f,u.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:u.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No security groups found.`})]}),e[3]=u,e[4]=p),p}function d(e){return e.GroupId?(0,l.jsx)(s,{params:{id:e.GroupId},subtitle:e.VpcId??``,title:e.GroupName?`${e.GroupId} (${e.GroupName})`:e.GroupId,to:`/ec2/describe-security-groups/$id`},e.GroupId):null}export{u as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{w as i}from"./ec2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(5),{data:t}=a(i),s;e[0]===t.SecurityGroups?s=e[1]:(s=t.SecurityGroups??[],e[0]=t.SecurityGroups,e[1]=s);let u=s,f;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/ec2/create-security-group`,children:(0,l.jsx)(r,{children:`Create Security Group`})}),title:`Security Groups`}),e[2]=f):f=e[2];let p;return e[3]===u?p=e[4]:(p=(0,l.jsxs)(l.Fragment,{children:[f,u.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:u.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No security groups found.`})]}),e[3]=u,e[4]=p),p}function d(e){return e.GroupId?(0,l.jsx)(s,{params:{id:e.GroupId},subtitle:e.VpcId??``,title:e.GroupName?`${e.GroupId} (${e.GroupName})`:e.GroupId,to:`/ec2/describe-security-groups/$id`},e.GroupId):null}export{u as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-snapshots.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-snapshots.js index 03efcb420..a725f2125 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-snapshots.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-snapshots.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{E as i}from"./ec2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./state-badge.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=a(i),s;e[0]===t.Snapshots?s=e[1]:(s=t.Snapshots??[],e[0]=t.Snapshots,e[1]=s);let c=s,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/create-snapshot`,children:(0,u.jsx)(r,{children:`Create Snapshot`})}),title:`Snapshots`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No snapshots found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.SnapshotId?(0,u.jsx)(s,{badge:(0,u.jsx)(c,{state:e.State}),params:{id:e.SnapshotId},subtitle:`${e.VolumeSize} GiB \u2022 ${e.VolumeId}`,title:e.SnapshotId,to:`/ec2/describe-snapshots/$id`},e.SnapshotId):null}export{d as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{E as i}from"./ec2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./state-badge.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=a(i),s;e[0]===t.Snapshots?s=e[1]:(s=t.Snapshots??[],e[0]=t.Snapshots,e[1]=s);let c=s,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/create-snapshot`,children:(0,u.jsx)(r,{children:`Create Snapshot`})}),title:`Snapshots`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No snapshots found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.SnapshotId?(0,u.jsx)(s,{badge:(0,u.jsx)(c,{state:e.State}),params:{id:e.SnapshotId},subtitle:`${e.VolumeSize} GiB \u2022 ${e.VolumeId}`,title:e.SnapshotId,to:`/ec2/describe-snapshots/$id`},e.SnapshotId):null}export{d as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-subnets.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-subnets.js index b74e78bf0..6d0d019f9 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-subnets.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-subnets.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{O as a}from"./ec2.js";import{Xn as o,dn as s}from"./index.js";import{t as c}from"./list-card.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=o(a),r;e[0]===t.Subnets?r=e[1]:(r=t.Subnets??[],e[0]=t.Subnets,e[1]=r);let c=r,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(n,{to:`/ec2/create-subnet`,children:(0,d.jsx)(i,{children:`Create Subnet`})}),title:`Subnets`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No subnets found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.SubnetId)return null;let t=r(e.Tags);return(0,d.jsx)(c,{badge:(0,d.jsx)(l,{state:e.State}),params:{id:e.SubnetId},subtitle:`${e.CidrBlock??``} \u2022 ${e.AvailabilityZone??``}`,title:t?`${e.SubnetId} (${t})`:e.SubnetId,to:`/ec2/describe-subnets/$id`},e.SubnetId)}export{f as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{O as a}from"./ec2.js";import{$n as o,yn as s}from"./index.js";import{t as c}from"./list-card.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=o(a),r;e[0]===t.Subnets?r=e[1]:(r=t.Subnets??[],e[0]=t.Subnets,e[1]=r);let c=r,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(n,{to:`/ec2/create-subnet`,children:(0,d.jsx)(i,{children:`Create Subnet`})}),title:`Subnets`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No subnets found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.SubnetId)return null;let t=r(e.Tags);return(0,d.jsx)(c,{badge:(0,d.jsx)(l,{state:e.State}),params:{id:e.SubnetId},subtitle:`${e.CidrBlock??``} \u2022 ${e.AvailabilityZone??``}`,title:t?`${e.SubnetId} (${t})`:e.SubnetId,to:`/ec2/describe-subnets/$id`},e.SubnetId)}export{f as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-target-groups.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-target-groups.js index 7f1bcc8a2..93a92750d 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-target-groups.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-target-groups.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./useNavigate.js";import{t as i}from"./button.js";import{d as a,u as o}from"./elbv22.js";import{Xn as s,Zn as c,dn as l}from"./index.js";var u=t(),d=e();function f(){let e=(0,u.c)(6),t=r(),{data:a}=s(o),c;e[0]===a.TargetGroups?c=e[1]:(c=a.TargetGroups??[],e[0]=a.TargetGroups,e[1]=c);let f=c,h;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,d.jsx)(l,{actions:(0,d.jsx)(n,{to:`/ec2/create-target-group`,children:(0,d.jsx)(i,{children:`Create Target Group`})}),title:`Target Groups`}),e[2]=h):h=e[2];let g;return e[3]!==t||e[4]!==f?(g=(0,d.jsxs)(d.Fragment,{children:[h,f.length>0?(0,d.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,d.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Protocol`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Port`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`VPC`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Target Type`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Targets`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Health`})]})}),(0,d.jsx)(`tbody`,{children:f.map(e=>{if(!e.TargetGroupArn)return null;let r=e.TargetGroupArn;return(0,d.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:async()=>await t({to:`/ec2/describe-target-groups/$id`,params:{id:encodeURIComponent(r)}}),children:[(0,d.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,d.jsx)(n,{className:`text-primary hover:underline`,onClick:p,params:{id:encodeURIComponent(r)},to:`/ec2/describe-target-groups/$id`,children:e.TargetGroupName??r})}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Protocol??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Port??``}),(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.VpcId??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.TargetType??``}),(0,d.jsx)(m,{arn:r})]},r)})})]})}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No target groups found.`})]}),e[3]=t,e[4]=f,e[5]=g):g=e[5],g}function p(e){return e.stopPropagation()}function m(e){let t=(0,u.c)(13),{arn:n}=e,r;t[0]===n?r=t[1]:(r=a(n),t[0]=n,t[1]=r);let{data:i,isLoading:o}=c(r);if(o){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`td`,{className:`px-4 py-2 text-muted-foreground`,children:`…`}),(0,d.jsx)(`td`,{className:`px-4 py-2 text-muted-foreground`,children:`…`})]}),t[2]=e):e=t[2],e}let s,l;if(t[3]!==i?.TargetHealthDescriptions){s=i?.TargetHealthDescriptions??[];let e={};for(let t of s){let n=t.TargetHealth?.State??`unknown`;e[n]=(e[n]??0)+1}l=Object.entries(e).map(h).join(`, `)||`—`,t[3]=i?.TargetHealthDescriptions,t[4]=s,t[5]=l}else s=t[4],l=t[5];let f=l,p;t[6]===s.length?p=t[7]:(p=(0,d.jsx)(`td`,{className:`px-4 py-2`,children:s.length}),t[6]=s.length,t[7]=p);let m;t[8]===f?m=t[9]:(m=(0,d.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:f}),t[8]=f,t[9]=m);let g;return t[10]!==p||t[11]!==m?(g=(0,d.jsxs)(d.Fragment,{children:[p,m]}),t[10]=p,t[11]=m,t[12]=g):g=t[12],g}function h(e){let[t,n]=e;return`${n} ${t}`}var g=f;export{g as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./useNavigate.js";import{t as i}from"./button.js";import{d as a,u as o}from"./elbv22.js";import{$n as s,er as c,yn as l}from"./index.js";var u=t(),d=e();function f(){let e=(0,u.c)(6),t=r(),{data:a}=s(o),c;e[0]===a.TargetGroups?c=e[1]:(c=a.TargetGroups??[],e[0]=a.TargetGroups,e[1]=c);let f=c,h;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(h=(0,d.jsx)(l,{actions:(0,d.jsx)(n,{to:`/ec2/create-target-group`,children:(0,d.jsx)(i,{children:`Create Target Group`})}),title:`Target Groups`}),e[2]=h):h=e[2];let g;return e[3]!==t||e[4]!==f?(g=(0,d.jsxs)(d.Fragment,{children:[h,f.length>0?(0,d.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,d.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Protocol`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Port`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`VPC`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Target Type`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Targets`}),(0,d.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Health`})]})}),(0,d.jsx)(`tbody`,{children:f.map(e=>{if(!e.TargetGroupArn)return null;let r=e.TargetGroupArn;return(0,d.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:async()=>await t({to:`/ec2/describe-target-groups/$id`,params:{id:encodeURIComponent(r)}}),children:[(0,d.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,d.jsx)(n,{className:`text-primary hover:underline`,onClick:p,params:{id:encodeURIComponent(r)},to:`/ec2/describe-target-groups/$id`,children:e.TargetGroupName??r})}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Protocol??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.Port??``}),(0,d.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.VpcId??``}),(0,d.jsx)(`td`,{className:`px-4 py-2`,children:e.TargetType??``}),(0,d.jsx)(m,{arn:r})]},r)})})]})}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No target groups found.`})]}),e[3]=t,e[4]=f,e[5]=g):g=e[5],g}function p(e){return e.stopPropagation()}function m(e){let t=(0,u.c)(13),{arn:n}=e,r;t[0]===n?r=t[1]:(r=a(n),t[0]=n,t[1]=r);let{data:i,isLoading:o}=c(r);if(o){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(`td`,{className:`px-4 py-2 text-muted-foreground`,children:`…`}),(0,d.jsx)(`td`,{className:`px-4 py-2 text-muted-foreground`,children:`…`})]}),t[2]=e):e=t[2],e}let s,l;if(t[3]!==i?.TargetHealthDescriptions){s=i?.TargetHealthDescriptions??[];let e={};for(let t of s){let n=t.TargetHealth?.State??`unknown`;e[n]=(e[n]??0)+1}l=Object.entries(e).map(h).join(`, `)||`—`,t[3]=i?.TargetHealthDescriptions,t[4]=s,t[5]=l}else s=t[4],l=t[5];let f=l,p;t[6]===s.length?p=t[7]:(p=(0,d.jsx)(`td`,{className:`px-4 py-2`,children:s.length}),t[6]=s.length,t[7]=p);let m;t[8]===f?m=t[9]:(m=(0,d.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:f}),t[8]=f,t[9]=m);let g;return t[10]!==p||t[11]!==m?(g=(0,d.jsxs)(d.Fragment,{children:[p,m]}),t[10]=p,t[11]=m,t[12]=g):g=t[12],g}function h(e){let[t,n]=e;return`${n} ${t}`}var g=f;export{g as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-volumes.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-volumes.js index 76df567fd..459c7ad41 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-volumes.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-volumes.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{A as i}from"./ec2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./state-badge.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=a(i),s;e[0]===t.Volumes?s=e[1]:(s=t.Volumes??[],e[0]=t.Volumes,e[1]=s);let c=s,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/create-volume`,children:(0,u.jsx)(r,{children:`Create Volume`})}),title:`Volumes`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No volumes found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.VolumeId?(0,u.jsx)(s,{badge:(0,u.jsx)(c,{state:e.State}),params:{id:e.VolumeId},subtitle:`${e.Size} GiB`,title:e.VolumeId,to:`/ec2/describe-volumes/$id`},e.VolumeId):null}export{d as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{A as i}from"./ec2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";import{t as c}from"./state-badge.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=a(i),s;e[0]===t.Volumes?s=e[1]:(s=t.Volumes??[],e[0]=t.Volumes,e[1]=s);let c=s,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(o,{actions:(0,u.jsx)(n,{to:`/ec2/create-volume`,children:(0,u.jsx)(r,{children:`Create Volume`})}),title:`Volumes`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No volumes found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.VolumeId?(0,u.jsx)(s,{badge:(0,u.jsx)(c,{state:e.State}),params:{id:e.VolumeId},subtitle:`${e.Size} GiB`,title:e.VolumeId,to:`/ec2/describe-volumes/$id`},e.VolumeId):null}export{d as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/describe-vpcs.js b/spinifex/services/spinifexui/frontend/dist/assets/describe-vpcs.js index 476dc761a..f048c193c 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/describe-vpcs.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/describe-vpcs.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{M as a}from"./ec2.js";import{Xn as o,dn as s}from"./index.js";import{t as c}from"./list-card.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=o(a),r;e[0]===t.Vpcs?r=e[1]:(r=t.Vpcs??[],e[0]=t.Vpcs,e[1]=r);let c=r,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(n,{to:`/ec2/create-vpc`,children:(0,d.jsx)(i,{children:`Create VPC`})}),title:`VPCs`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No VPCs found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.VpcId)return null;let t=r(e.Tags);return(0,d.jsx)(c,{badge:(0,d.jsx)(l,{state:e.State}),params:{id:e.VpcId},subtitle:e.CidrBlock??``,title:t?`${e.VpcId} (${t})`:e.VpcId,to:`/ec2/describe-vpcs/$id`},e.VpcId)}export{f as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{$t as r}from"./auth.js";import{t as i}from"./button.js";import{M as a}from"./ec2.js";import{$n as o,yn as s}from"./index.js";import{t as c}from"./list-card.js";import{t as l}from"./state-badge.js";var u=t(),d=e();function f(){let e=(0,u.c)(5),{data:t}=o(a),r;e[0]===t.Vpcs?r=e[1]:(r=t.Vpcs??[],e[0]=t.Vpcs,e[1]=r);let c=r,l;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,d.jsx)(s,{actions:(0,d.jsx)(n,{to:`/ec2/create-vpc`,children:(0,d.jsx)(i,{children:`Create VPC`})}),title:`VPCs`}),e[2]=l):l=e[2];let f;return e[3]===c?f=e[4]:(f=(0,d.jsxs)(d.Fragment,{children:[l,c.length>0?(0,d.jsx)(`div`,{className:`space-y-4`,children:c.map(p)}):(0,d.jsx)(`p`,{className:`text-muted-foreground`,children:`No VPCs found.`})]}),e[3]=c,e[4]=f),f}function p(e){if(!e.VpcId)return null;let t=r(e.Tags);return(0,d.jsx)(c,{badge:(0,d.jsx)(l,{state:e.State}),params:{id:e.VpcId},subtitle:e.CidrBlock??``,title:t?`${e.VpcId} (${t})`:e.VpcId,to:`/ec2/describe-vpcs/$id`},e.VpcId)}export{f as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/download.js b/spinifex/services/spinifexui/frontend/dist/assets/download.js deleted file mode 100644 index 637e84d9b..000000000 --- a/spinifex/services/spinifexui/frontend/dist/assets/download.js +++ /dev/null @@ -1 +0,0 @@ -import{t as e}from"./createLucideIcon.js";var t=e(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]);export{t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/ecs2.js b/spinifex/services/spinifexui/frontend/dist/assets/ecs2.js index be86b8aaa..612128c8e 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/ecs2.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/ecs2.js @@ -1 +1 @@ -import{t as e}from"./compiler-runtime.js";import{n as t}from"./QueryClientProvider.js";import{t as n}from"./useMutation.js";import{C as r,Wt as i,r as a}from"./auth.js";import{Fn as o,In as s,Jn as c,Mn as l,Nn as u,Pn as d,Xn as f,Yn as p,a as m,qn as h}from"./awsClient.js";import{c as g,l as _,r as v,u as y}from"./ecs.js";import{kn as b}from"./index.js";var x=class extends y(g,_,`CreateCluster`,l){},S=class extends y(g,_,`CreateService`,u){},C=class extends y(g,_,`DeleteCluster`,d){},w=class extends y(g,_,`DeregisterContainerInstance`,o){},T=class extends y(g,_,`DeregisterTaskDefinition`,s){},E=class extends y(g,_,`RegisterTaskDefinition`,h){},D=class extends y(g,_,`RunTask`,c){},O=class extends y(g,_,`StopTask`,p){},k=class extends y(g,_,`UpdateContainerInstancesState`,f){},A=e(),j=`ap-southeast-2`,M=9999,N=`AmazonEC2ContainerServiceV20141113.ProvisionCapacity`;function ee(e){try{let t=JSON.parse(e);if(t&&typeof t==`object`){if(`message`in t&&typeof t.message==`string`)return t.message;if(`Message`in t&&typeof t.Message==`string`)return t.Message}}catch{}return null}async function P(e){let t=a();if(!t)throw Error(`Not authenticated`);let n=window.location.protocol.replace(`:`,``),o=JSON.stringify(e),s=new i({method:`POST`,protocol:n,hostname:`localhost`,port:M,path:`/`,headers:{host:`localhost:${M}`,"content-type":`application/x-amz-json-1.1`,"x-amz-target":N},body:o}),c=await new r({credentials:{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,sessionToken:t.sessionToken},region:j,service:`ecs`,sha256:b}).sign(s),l={};for(let[e,t]of Object.entries(c.headers))typeof t==`string`&&(l[e]=t);let u=`${window.location.protocol}//${window.location.host}/proxy/awsgw/`,d=await fetch(u,{method:`POST`,headers:l,body:o});if(!d.ok){let e=await d.text().catch(()=>``),t=ee(e)??e;throw Error(`ProvisionCapacity failed: ${d.status}${t?` - ${t}`:``}`)}return await d.json()}function F(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:I,onSuccess:()=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`]})}},e[0]=r,e[1]=i),n(i)}async function I(e){let t=new x({clusterName:e});return await m().send(t)}function L(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:R,onSuccess:()=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`]})}},e[0]=r,e[1]=i),n(i)}async function R(e){let t=new C({cluster:e});return await m().send(t)}function z(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:B,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`tasks`]})}},e[0]=r,e[1]=i),n(i)}async function B(e){let t=new O({cluster:e.cluster,task:e.task});return await m().send(t)}function V(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:H,onSuccess:()=>{r.invalidateQueries({queryKey:[`ecs`,`task-definitions`]})}},e[0]=r,e[1]=i),n(i)}async function H(e){let t=new T({taskDefinition:e});return await m().send(t)}function U(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:W,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`container-instances`]})}},e[0]=r,e[1]=i),n(i)}async function W(e){let t=new k({cluster:e.cluster,containerInstances:[e.containerInstance],status:e.status});return await m().send(t)}function G(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:K,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`container-instances`]})}},e[0]=r,e[1]=i),n(i)}async function K(e){let t=new w({cluster:e.cluster,containerInstance:e.containerInstance,force:!0});return await m().send(t)}function q(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:J,onSuccess:()=>{r.invalidateQueries({queryKey:[`ecs`,`task-definitions`]})}},e[0]=r,e[1]=i),n(i)}async function J(e){let t={name:e.containerName,image:e.image,essential:e.essential,cpu:e.containerCpu?Number(e.containerCpu):void 0,memory:e.containerMemory?Number(e.containerMemory):void 0,portMappings:e.portMappings.length>0?e.portMappings.map(Y):void 0,resourceRequirements:e.containerGpuCount>0?[{type:`GPU`,value:String(e.containerGpuCount)}]:void 0},n=new E({family:e.family,networkMode:e.networkMode,cpu:e.cpu||void 0,memory:e.memory||void 0,containerDefinitions:[t]});return await m().send(n)}function Y(e){return{containerPort:e.containerPort,hostPort:e.containerPort,protocol:e.protocol}}function X(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:Z,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:v(t.Cluster).queryKey})}},e[0]=r,e[1]=i),n(i)}async function Z(e){return await P(e)}function Q(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:$,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`tasks`]})}},e[0]=r,e[1]=i),n(i)}async function $(e){let t=new D({cluster:e.cluster,taskDefinition:e.taskDefinition,count:e.count,networkConfiguration:e.awsvpc?{awsvpcConfiguration:{subnets:e.subnets,securityGroups:e.securityGroups.length>0?e.securityGroups:void 0,assignPublicIp:e.assignPublicIp?`ENABLED`:`DISABLED`}}:void 0}),n=await m().send(t);if((n.tasks?.length??0)===0&&n.failures?.length){let e=n.failures[0];throw Error(`Task not placed: ${e?.reason??`unknown`}${e?.detail?` (${e.detail})`:``}`)}return n}function te(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:ne,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`services`]})}},e[0]=r,e[1]=i),n(i)}async function ne(e){let t=new S({cluster:e.cluster,serviceName:e.serviceName,taskDefinition:e.taskDefinition,desiredCount:e.desiredCount,networkConfiguration:e.awsvpc?{awsvpcConfiguration:{subnets:e.subnets,securityGroups:e.securityGroups.length>0?e.securityGroups:void 0,assignPublicIp:e.assignPublicIp?`ENABLED`:`DISABLED`}}:void 0,loadBalancers:e.targetGroupArn?[{targetGroupArn:e.targetGroupArn,containerName:e.loadBalancerContainerName||void 0,containerPort:e.loadBalancerContainerPort?Number(e.loadBalancerContainerPort):void 0}]:void 0});return await m().send(t)}export{V as a,Q as c,G as i,z as l,te as n,X as o,L as r,q as s,F as t,U as u}; \ No newline at end of file +import{t as e}from"./compiler-runtime.js";import{n as t}from"./QueryClientProvider.js";import{t as n}from"./useMutation.js";import{C as r,Wt as i,r as a}from"./auth.js";import{Fn as o,In as s,Jn as c,Mn as l,Nn as u,Pn as d,Xn as f,Yn as p,a as m,qn as h}from"./awsClient.js";import{c as g,l as _,r as v,u as y}from"./ecs.js";import{Ln as b}from"./index.js";var x=class extends y(g,_,`CreateCluster`,l){},S=class extends y(g,_,`CreateService`,u){},C=class extends y(g,_,`DeleteCluster`,d){},w=class extends y(g,_,`DeregisterContainerInstance`,o){},T=class extends y(g,_,`DeregisterTaskDefinition`,s){},E=class extends y(g,_,`RegisterTaskDefinition`,h){},D=class extends y(g,_,`RunTask`,c){},O=class extends y(g,_,`StopTask`,p){},k=class extends y(g,_,`UpdateContainerInstancesState`,f){},A=e(),j=`ap-southeast-2`,M=9999,N=`AmazonEC2ContainerServiceV20141113.ProvisionCapacity`;function ee(e){try{let t=JSON.parse(e);if(t&&typeof t==`object`){if(`message`in t&&typeof t.message==`string`)return t.message;if(`Message`in t&&typeof t.Message==`string`)return t.Message}}catch{}return null}async function P(e){let t=a();if(!t)throw Error(`Not authenticated`);let n=window.location.protocol.replace(`:`,``),o=JSON.stringify(e),s=new i({method:`POST`,protocol:n,hostname:`localhost`,port:M,path:`/`,headers:{host:`localhost:${M}`,"content-type":`application/x-amz-json-1.1`,"x-amz-target":N},body:o}),c=await new r({credentials:{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,sessionToken:t.sessionToken},region:j,service:`ecs`,sha256:b}).sign(s),l={};for(let[e,t]of Object.entries(c.headers))typeof t==`string`&&(l[e]=t);let u=`${window.location.protocol}//${window.location.host}/proxy/awsgw/`,d=await fetch(u,{method:`POST`,headers:l,body:o});if(!d.ok){let e=await d.text().catch(()=>``),t=ee(e)??e;throw Error(`ProvisionCapacity failed: ${d.status}${t?` - ${t}`:``}`)}return await d.json()}function F(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:I,onSuccess:()=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`]})}},e[0]=r,e[1]=i),n(i)}async function I(e){let t=new x({clusterName:e});return await m().send(t)}function L(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:R,onSuccess:()=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`]})}},e[0]=r,e[1]=i),n(i)}async function R(e){let t=new C({cluster:e});return await m().send(t)}function z(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:B,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`tasks`]})}},e[0]=r,e[1]=i),n(i)}async function B(e){let t=new O({cluster:e.cluster,task:e.task});return await m().send(t)}function V(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:H,onSuccess:()=>{r.invalidateQueries({queryKey:[`ecs`,`task-definitions`]})}},e[0]=r,e[1]=i),n(i)}async function H(e){let t=new T({taskDefinition:e});return await m().send(t)}function U(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:W,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`container-instances`]})}},e[0]=r,e[1]=i),n(i)}async function W(e){let t=new k({cluster:e.cluster,containerInstances:[e.containerInstance],status:e.status});return await m().send(t)}function G(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:K,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`container-instances`]})}},e[0]=r,e[1]=i),n(i)}async function K(e){let t=new w({cluster:e.cluster,containerInstance:e.containerInstance,force:!0});return await m().send(t)}function q(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:J,onSuccess:()=>{r.invalidateQueries({queryKey:[`ecs`,`task-definitions`]})}},e[0]=r,e[1]=i),n(i)}async function J(e){let t={name:e.containerName,image:e.image,essential:e.essential,cpu:e.containerCpu?Number(e.containerCpu):void 0,memory:e.containerMemory?Number(e.containerMemory):void 0,portMappings:e.portMappings.length>0?e.portMappings.map(Y):void 0,resourceRequirements:e.containerGpuCount>0?[{type:`GPU`,value:String(e.containerGpuCount)}]:void 0},n=new E({family:e.family,networkMode:e.networkMode,cpu:e.cpu||void 0,memory:e.memory||void 0,containerDefinitions:[t]});return await m().send(n)}function Y(e){return{containerPort:e.containerPort,hostPort:e.containerPort,protocol:e.protocol}}function X(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:Z,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:v(t.Cluster).queryKey})}},e[0]=r,e[1]=i),n(i)}async function Z(e){return await P(e)}function Q(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:$,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`tasks`]})}},e[0]=r,e[1]=i),n(i)}async function $(e){let t=new D({cluster:e.cluster,taskDefinition:e.taskDefinition,count:e.count,networkConfiguration:e.awsvpc?{awsvpcConfiguration:{subnets:e.subnets,securityGroups:e.securityGroups.length>0?e.securityGroups:void 0,assignPublicIp:e.assignPublicIp?`ENABLED`:`DISABLED`}}:void 0}),n=await m().send(t);if((n.tasks?.length??0)===0&&n.failures?.length){let e=n.failures[0];throw Error(`Task not placed: ${e?.reason??`unknown`}${e?.detail?` (${e.detail})`:``}`)}return n}function te(){let e=(0,A.c)(2),r=t(),i;return e[0]===r?i=e[1]:(i={mutationFn:ne,onSuccess:(e,t)=>{r.invalidateQueries({queryKey:[`ecs`,`clusters`,t.cluster,`services`]})}},e[0]=r,e[1]=i),n(i)}async function ne(e){let t=new S({cluster:e.cluster,serviceName:e.serviceName,taskDefinition:e.taskDefinition,desiredCount:e.desiredCount,networkConfiguration:e.awsvpc?{awsvpcConfiguration:{subnets:e.subnets,securityGroups:e.securityGroups.length>0?e.securityGroups:void 0,assignPublicIp:e.assignPublicIp?`ENABLED`:`DISABLED`}}:void 0,loadBalancers:e.targetGroupArn?[{targetGroupArn:e.targetGroupArn,containerName:e.loadBalancerContainerName||void 0,containerPort:e.loadBalancerContainerPort?Number(e.loadBalancerContainerPort):void 0}]:void 0});return await m().send(t)}export{V as a,Q as c,G as i,z as l,te as n,X as o,L as r,q as s,F as t,U as u}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/form-actions.js b/spinifex/services/spinifexui/frontend/dist/assets/form-actions.js deleted file mode 100644 index f2074c408..000000000 --- a/spinifex/services/spinifexui/frontend/dist/assets/form-actions.js +++ /dev/null @@ -1 +0,0 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./button.js";var r=t(),i=e();function a(e){let t=(0,r.c)(9),{isSubmitting:a,isPending:o,onCancel:s,submitLabel:c,pendingLabel:l}=e,u=a||o,d;t[0]!==u||t[1]!==s?(d=(0,i.jsx)(n,{disabled:u,onClick:s,type:`button`,variant:`outline`,children:`Cancel`}),t[0]=u,t[1]=s,t[2]=d):d=t[2];let f=u?l:c,p;t[3]!==u||t[4]!==f?(p=(0,i.jsx)(n,{disabled:u,type:`submit`,children:f}),t[3]=u,t[4]=f,t[5]=p):p=t[5];let m;return t[6]!==d||t[7]!==p?(m=(0,i.jsxs)(`div`,{className:`flex gap-2`,children:[d,p]}),t[6]=d,t[7]=p,t[8]=m):m=t[8],m}export{a as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/import-key-pair.js b/spinifex/services/spinifexui/frontend/dist/assets/import-key-pair.js index f57520166..3d9341e5b 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/import-key-pair.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/import-key-pair.js @@ -1,3 +1,3 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{Gt as r,Ln as ee,Sn as i,Z as te,_n as a,an as o,dn as s,hn as ne,mn as re,rn as c,sn as l,vn as u,xn as d}from"./index.js";import{t as f}from"./form-actions.js";import{t as p}from"./textarea.js";var m=t(),h=e();function g(){let e=(0,m.c)(57),t=n(),g=r(),v;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(v={resolver:u(te)},e[0]=v):v=e[0];let{handleSubmit:y,register:b,control:x,formState:S}=d(v),{errors:C,isSubmitting:w}=S,T;e[1]===x?T=e[2]:(T={control:x},e[1]=x,e[2]=T);let E=i(T),D;e[3]===E?D=e[4]:(D=e=>e?E[e]:void 0,e[3]=E,e[4]=D);let O=D,k;e[5]!==g||e[6]!==t?(k=async e=>{await g.mutateAsync(e),t({to:`/ec2/describe-key-pairs`})},e[5]=g,e[6]=t,e[7]=k):k=e[7];let A=k,j,M;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,h.jsx)(a,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),M=(0,h.jsx)(s,{title:`Import Key Pair`}),e[8]=j,e[9]=M):(j=e[8],M=e[9]);let N;e[10]===g.error?N=e[11]:(N=g.error&&(0,h.jsx)(re,{error:g.error,msg:`Failed to import key pair`}),e[10]=g.error,e[11]=N);let P;e[12]!==y||e[13]!==A?(P=y(A),e[12]=y,e[13]=A,e[14]=P):P=e[14];let F;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,h.jsx)(l,{children:(0,h.jsx)(`label`,{htmlFor:`keyName`,children:`Key Pair Name`})}),e[15]=F):F=e[15];let I=!!C.keyName,L;e[16]===b?L=e[17]:(L=b(`keyName`),e[16]=b,e[17]=L);let R;e[18]!==I||e[19]!==L?(R=(0,h.jsx)(ee,{"aria-invalid":I,id:`keyName`,placeholder:`my-key-pair…`,...L}),e[18]=I,e[19]=L,e[20]=R):R=e[20];let z;e[21]===C.keyName?z=e[22]:(z=(0,h.jsx)(o,{errors:[C.keyName]}),e[21]=C.keyName,e[22]=z);let B;e[23]!==R||e[24]!==z?(B=(0,h.jsxs)(c,{children:[F,R,z]}),e[23]=R,e[24]=z,e[25]=B):B=e[25];let V,H;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,h.jsx)(l,{children:(0,h.jsx)(`label`,{htmlFor:`publicKeyMaterial`,children:`Public Key`})}),H=(0,h.jsx)(`p`,{className:`text-xs text-muted-foreground`,id:`publicKey-description`,children:`Paste your OpenSSH public key (e.g. the contents of id_rsa.pub)`}),e[26]=V,e[27]=H):(V=e[26],H=e[27]);let U=!!C.publicKeyMaterial,W;e[28]===b?W=e[29]:(W=b(`publicKeyMaterial`),e[28]=b,e[29]=W);let G;e[30]!==U||e[31]!==W?(G=(0,h.jsx)(p,{"aria-invalid":U,id:`publicKeyMaterial`,placeholder:`ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC…`,rows:8,...W}),e[30]=U,e[31]=W,e[32]=G):G=e[32];let K;e[33]===C.publicKeyMaterial?K=e[34]:(K=(0,h.jsx)(o,{errors:[C.publicKeyMaterial]}),e[33]=C.publicKeyMaterial,e[34]=K);let q;e[35]!==G||e[36]!==K?(q=(0,h.jsxs)(c,{children:[V,H,G,K]}),e[35]=G,e[36]=K,e[37]=q):q=e[37];let J;e[38]===O?J=e[39]:(J=_(O),e[38]=O,e[39]=J);let Y;e[40]===J?Y=e[41]:(Y=(0,h.jsx)(ne,{commands:J}),e[40]=J,e[41]=Y);let X;e[42]===t?X=e[43]:(X=async()=>await t({to:`/ec2/describe-key-pairs`}),e[42]=t,e[43]=X);let Z;e[44]!==g.isPending||e[45]!==w||e[46]!==X?(Z=(0,h.jsx)(f,{isPending:g.isPending,isSubmitting:w,onCancel:X,pendingLabel:`Importing…`,submitLabel:`Import Key Pair`}),e[44]=g.isPending,e[45]=w,e[46]=X,e[47]=Z):Z=e[47];let Q;e[48]!==B||e[49]!==q||e[50]!==Y||e[51]!==Z||e[52]!==P?(Q=(0,h.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:P,children:[B,q,Y,Z]}),e[48]=B,e[49]=q,e[50]=Y,e[51]=Z,e[52]=P,e[53]=Q):Q=e[53];let $;return e[54]!==Q||e[55]!==N?($=(0,h.jsxs)(h.Fragment,{children:[j,M,N,Q]}),e[54]=Q,e[55]=N,e[56]=$):$=e[56],$}function _(e){let t=e(`keyName`);return[{label:`Import Key Pair`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 import-key-pair`},{type:`flag`,value:` \\ +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{$t as r,An as ee,Cn as i,En as te,Rn as a,Sn as o,Tn as s,W as ne,dn as c,hn as l,kn as u,ot as d,pn as f,yn as p}from"./index.js";import{t as m}from"./textarea.js";var h=t(),g=e();function _(){let e=(0,h.c)(57),t=n(),_=r(),y;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(y={resolver:te(d)},e[0]=y):y=e[0];let{handleSubmit:b,register:x,control:S,formState:re}=u(y),{errors:C,isSubmitting:w}=re,T;e[1]===S?T=e[2]:(T={control:S},e[1]=S,e[2]=T);let E=ee(T),D;e[3]===E?D=e[4]:(D=e=>e?E[e]:void 0,e[3]=E,e[4]=D);let O=D,k;e[5]!==_||e[6]!==t?(k=async e=>{await _.mutateAsync(e),t({to:`/ec2/describe-key-pairs`})},e[5]=_,e[6]=t,e[7]=k):k=e[7];let A=k,j,M;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,g.jsx)(s,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),M=(0,g.jsx)(p,{title:`Import Key Pair`}),e[8]=j,e[9]=M):(j=e[8],M=e[9]);let N;e[10]===_.error?N=e[11]:(N=_.error&&(0,g.jsx)(o,{error:_.error,msg:`Failed to import key pair`}),e[10]=_.error,e[11]=N);let P;e[12]!==b||e[13]!==A?(P=b(A),e[12]=b,e[13]=A,e[14]=P):P=e[14];let F;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,g.jsx)(l,{children:(0,g.jsx)(`label`,{htmlFor:`keyName`,children:`Key Pair Name`})}),e[15]=F):F=e[15];let I=!!C.keyName,L;e[16]===x?L=e[17]:(L=x(`keyName`),e[16]=x,e[17]=L);let R;e[18]!==I||e[19]!==L?(R=(0,g.jsx)(a,{"aria-invalid":I,id:`keyName`,placeholder:`my-key-pair…`,...L}),e[18]=I,e[19]=L,e[20]=R):R=e[20];let z;e[21]===C.keyName?z=e[22]:(z=(0,g.jsx)(f,{errors:[C.keyName]}),e[21]=C.keyName,e[22]=z);let B;e[23]!==R||e[24]!==z?(B=(0,g.jsxs)(c,{children:[F,R,z]}),e[23]=R,e[24]=z,e[25]=B):B=e[25];let V,H;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,g.jsx)(l,{children:(0,g.jsx)(`label`,{htmlFor:`publicKeyMaterial`,children:`Public Key`})}),H=(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,id:`publicKey-description`,children:`Paste your OpenSSH public key (e.g. the contents of id_rsa.pub)`}),e[26]=V,e[27]=H):(V=e[26],H=e[27]);let U=!!C.publicKeyMaterial,W;e[28]===x?W=e[29]:(W=x(`publicKeyMaterial`),e[28]=x,e[29]=W);let G;e[30]!==U||e[31]!==W?(G=(0,g.jsx)(m,{"aria-invalid":U,id:`publicKeyMaterial`,placeholder:`ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC…`,rows:8,...W}),e[30]=U,e[31]=W,e[32]=G):G=e[32];let K;e[33]===C.publicKeyMaterial?K=e[34]:(K=(0,g.jsx)(f,{errors:[C.publicKeyMaterial]}),e[33]=C.publicKeyMaterial,e[34]=K);let q;e[35]!==G||e[36]!==K?(q=(0,g.jsxs)(c,{children:[V,H,G,K]}),e[35]=G,e[36]=K,e[37]=q):q=e[37];let J;e[38]===O?J=e[39]:(J=v(O),e[38]=O,e[39]=J);let Y;e[40]===J?Y=e[41]:(Y=(0,g.jsx)(i,{commands:J}),e[40]=J,e[41]=Y);let X;e[42]===t?X=e[43]:(X=async()=>await t({to:`/ec2/describe-key-pairs`}),e[42]=t,e[43]=X);let Z;e[44]!==_.isPending||e[45]!==w||e[46]!==X?(Z=(0,g.jsx)(ne,{isPending:_.isPending,isSubmitting:w,onCancel:X,pendingLabel:`Importing…`,submitLabel:`Import Key Pair`}),e[44]=_.isPending,e[45]=w,e[46]=X,e[47]=Z):Z=e[47];let Q;e[48]!==B||e[49]!==q||e[50]!==Y||e[51]!==Z||e[52]!==P?(Q=(0,g.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:P,children:[B,q,Y,Z]}),e[48]=B,e[49]=q,e[50]=Y,e[51]=Z,e[52]=P,e[53]=Q):Q=e[53];let $;return e[54]!==Q||e[55]!==N?($=(0,g.jsxs)(g.Fragment,{children:[j,M,N,Q]}),e[54]=Q,e[55]=N,e[56]=$):$=e[56],$}function v(e){let t=e(`keyName`);return[{label:`Import Key Pair`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 import-key-pair`},{type:`flag`,value:` \\ --key-name`},{type:`value`,value:` ${(typeof t==`string`?t:``)||``}`},{type:`flag`,value:` \\ - --public-key-material`},{type:`value`,value:` fileb://path/to/key.pub`}]}]}export{g as component}; \ No newline at end of file + --public-key-material`},{type:`value`,value:` fileb://path/to/key.pub`}]}]}export{_ as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/index.js b/spinifex/services/spinifexui/frontend/dist/assets/index.js index f9d122db2..8665fc301 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/index.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/index.js @@ -1,15 +1,15 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/route.js","assets/compiler-runtime.js","assets/Match.js","assets/useStore.js","assets/matchContext.js","assets/redirect.js","assets/login.js","assets/auth.js","assets/hex-encoding.js","assets/button.js","assets/dist.js","assets/awsClient.js","assets/index.browser.js","assets/sts.js","assets/card.js","assets/_auth.js","assets/link.js","assets/createLucideIcon.js","assets/chevron-down.js","assets/chevron-right.js","assets/ec2.js","assets/queryOptions.js","assets/s32.js","assets/state-badge.js","assets/admin.js","assets/badge.js","assets/nodes.js","assets/service-metrics.js","assets/allocate-address.js","assets/useNavigate.js","assets/form-actions.js","assets/create-internet-gateway.js","assets/create-key-pair.js","assets/check.js","assets/download.js","assets/triangle-alert.js","assets/alert-dialog.js","assets/import-key-pair.js","assets/textarea.js","assets/create-launch-template.js","assets/launch-template-data-fields.js","assets/select.js","assets/Separator.js","assets/createBaseUIEventDetails.js","assets/useScrollLock.js","assets/useValueAsRef.js","assets/useControlled.js","assets/useCompositeListItem.js","assets/create-load-balancer.js","assets/plus.js","assets/trash-2.js","assets/certificate-import-dialog.js","assets/QueryClientProvider.js","assets/useMutation.js","assets/elbv2.js","assets/commandBuilder2.js","assets/elbv22.js","assets/target-group-form.js","assets/elbv23.js","assets/create-nat-gateway.js","assets/create-placement-group.js","assets/create-route-table.js","assets/create-security-group.js","assets/create-snapshot.js","assets/create-subnet.js","assets/create-target-group.js","assets/create-volume.js","assets/create-vpc.js","assets/subnet-calculator.js","assets/create-service.js","assets/ecs.js","assets/ecs2.js","assets/ecs3.js","assets/register-task-definition.js","assets/run-task.js","assets/task-definitions.js","assets/delete-confirmation-dialog.js","assets/ecs-section-nav.js","assets/create-cluster.js","assets/eks.js","assets/commandBuilder.js","assets/json.js","assets/iam.js","assets/commandBuilder3.js","assets/iam2.js","assets/system-managed.js","assets/system-image-required.js","assets/copy.js","assets/rotate-cw.js","assets/policy-document-viewer.js","assets/create-group.js","assets/iam3.js","assets/create-instance-profile.js","assets/create-policy.js","assets/json-editor.js","assets/create-role.js","assets/create-user.js","assets/create-bucket.js","assets/s3.js","assets/ls.js","assets/list-card.js","assets/route2.js","assets/describe-addresses.js","assets/_id.js","assets/detail-row.js","assets/describe-images.js","assets/_id2.js","assets/circle-arrow-up.js","assets/ami-details.js","assets/describe-instances.js","assets/_id3.js","assets/describe-internet-gateways.js","assets/_id4.js","assets/describe-key-pairs.js","assets/_id5.js","assets/describe-launch-templates.js","assets/_id6.js","assets/describe-load-balancers.js","assets/_id7.js","assets/tags-editor.js","assets/tabs.js","assets/describe-nat-gateways.js","assets/_id8.js","assets/describe-placement-groups.js","assets/_id9.js","assets/describe-route-tables.js","assets/_id10.js","assets/describe-security-groups.js","assets/_id11.js","assets/describe-snapshots.js","assets/_id12.js","assets/describe-subnets.js","assets/_id13.js","assets/describe-target-groups.js","assets/_id14.js","assets/describe-volumes.js","assets/_id15.js","assets/_id16.js","assets/describe-vpcs.js","assets/_id17.js","assets/list-repositories.js","assets/ecr.js","assets/ecr2.js","assets/_id18.js","assets/list-clusters.js","assets/_clusterName.js","assets/list-clusters2.js","assets/eks2.js","assets/_clusterName2.js","assets/list-groups.js","assets/_groupName.js","assets/inline-policies-panel.js","assets/list-instance-profiles.js","assets/_instanceProfileName.js","assets/list-policies.js","assets/_policyArn.js","assets/list-roles.js","assets/_roleName.js","assets/list-users.js","assets/_userName.js","assets/_bucket.js","assets/upload-button.js","assets/_.js","assets/_serviceName.js","assets/_taskId.js"])))=>i.map(i=>d[i]); -import{i as e,n as t,o as n,r,t as i}from"./compiler-runtime.js";import{M as a,O as o,S as s,T as c,_ as l,b as u,c as d,g as f,h as p,j as m,n as h,s as g,t as _,x as v,y}from"./QueryClientProvider.js";import{i as b,n as x,r as S,t as C}from"./useBaseQuery.js";import{n as w,t as T}from"./useMutation.js";import{t as E}from"./queryOptions.js";import{A as D,G as O,M as ee,P as k,W as te,_ as ne,a as re,i as A,s as j,t as M}from"./useStore.js";import{a as ie,i as ae,n as oe,o as se,r as N,s as ce,t as le}from"./Match.js";import{n as ue}from"./matchContext.js";import{n as de}from"./redirect.js";import{n as fe,t as pe}from"./link.js";import{a as me,i as he,n as P,r as ge,t as F}from"./lazyRouteComponent.js";import{t as _e}from"./useNavigate.js";import{a as ve,c as ye,f as be,l as xe,n as Se,r as Ce,t as we,u as Te}from"./dist.js";import{C as Ee,Jt as De,Kt as Oe,Ot as ke,Qt as Ae,Wt as je,a as Me,c as Ne,f as I,l as Pe,lt as Fe,n as Ie,o as Le,qt as L,r as Re,s as ze,tt as R,u as z}from"./auth.js";import{t as B}from"./createLucideIcon.js";import{t as Be}from"./check.js";import{t as Ve}from"./chevron-down.js";import{a as He,c as Ue,d as We,f as Ge,i as Ke,l as qe,n as Je,o as Ye,r as Xe,s as Ze,t as Qe,u as $e}from"./select.js";import{t as et}from"./copy.js";import{_ as tt,b as nt,n as rt,o as V,r as it,s as at,t as ot,y as st}from"./button.js";import{a as ct,i as lt,n as ut,o as dt,r as ft,s as pt,t as mt}from"./Separator.js";import{S as ht,b as gt,f as _t,g as vt,h as yt,i as bt,m as xt,r as St,s as Ct,t as wt,v as Tt,x as Et,y as Dt}from"./createBaseUIEventDetails.js";import{$ as Ot,A as kt,B as At,C as jt,D as Mt,Dt as Nt,E as Pt,F as Ft,H as It,I as H,J as Lt,K as Rt,L as zt,O as Bt,P as Vt,Q as Ht,R as Ut,S as Wt,T as Gt,U as Kt,V as qt,Z as Jt,_t as Yt,b as Xt,bt as Zt,dt as Qt,et as $t,ht as en,it as tn,j as nn,k as rn,kt as an,l as on,n as sn,nt as cn,r as ln,rt as un,t as dn,v as fn,vt as pn,w as mn,x as hn,xt as gn,y as _n,z as vn}from"./useScrollLock.js";import{a as yn,d as bn,i as xn,l as Sn,n as Cn,o as wn,r as Tn,s as En,t as Dn}from"./useValueAsRef.js";import{t as On}from"./useControlled.js";import{Ai as kn,Ar as An,Br as jn,Ci as Mn,Cr as Nn,Di as Pn,Dr as Fn,Ei as In,Er as Ln,Fi as Rn,Fr as zn,Gr as Bn,Hr as Vn,Ir as Hn,Jr as Un,Kr as Wn,Lr as Gn,Mi as Kn,Mr as qn,Ni as Jn,Nr as Yn,Oi as Xn,Or as Zn,Pi as Qn,Pr as $n,Ri as er,Rr as tr,Si as nr,Sr as rr,Ti as ir,Tr as ar,Ur as or,Vr as sr,Wr as cr,Xr as lr,Yr as ur,_i as dr,_r as fr,bi as pr,br as mr,gi as hr,gr,hr as _r,ji as vr,jr as yr,ki as br,kr as xr,mr as Sr,n as Cr,qr as wr,r as U,t as Tr,vi as Er,vr as Dr,wi as Or,wr as kr,xi as Ar,xr as jr,yi as Mr,yr as Nr,zi as Pr,zr as Fr}from"./awsClient.js";import{a as Ir,i as Lr,n as Rr,o as zr,r as Br}from"./sts.js";import{A as Vr,C as Hr,D as Ur,E as Wr,F as Gr,I as W,M as Kr,N as G,O as qr,P as K,S as Jr,T as Yr,_ as Xr,a as Zr,b as Qr,c as $r,d as ei,f as ti,g as ni,h as ri,j as ii,k as ai,l as oi,m as si,n as ci,o as li,p as ui,r as di,s as fi,t as pi,u as mi,v as hi,w as gi,x as _i,y as vi}from"./ec2.js";import{i as yi,n as bi,r as xi}from"./ecr.js";import{i as Si,n as Ci,o as wi,s as Ti,t as Ei}from"./ecs.js";import{c as Di,s as Oi,t as ki,u as Ai}from"./eks2.js";import{a as ji,c as Mi,i as Ni,l as Pi,n as Fi,o as Ii,r as Li,s as Ri,u as zi}from"./elbv22.js";import{C as Bi,S as Vi,a as Hi,b as Ui,c as Wi,d as Gi,f as Ki,g as qi,h as Ji,i as Yi,l as Xi,m as Zi,n as Qi,p as $i,r as ea,s as ta,t as na,u as ra,v as ia,y as aa}from"./iam2.js";import{n as oa,t as sa}from"./s32.js";import{i as ca,n as la,r as ua,t as da}from"./subnet-calculator.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var fa=class extends a{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new w({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=pa(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=pa(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=pa(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=pa(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){d.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>y(t,e))}findAll(e={}){return this.getAll().filter(t=>y(e,t))}notify(e){d.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return d.batch(()=>Promise.all(e.map(e=>e.continue().catch(v))))}};function pa(e){return e.options.scope?.id}var ma=class extends a{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??l(r,t),a=this.get(i);return a||(a=new b({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){d.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>u(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>u(e,t)):t}notify(e){d.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){d.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){d.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},ha=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new ma,this.#t=e.mutationCache||new fa,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=m.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=g.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(c(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=p(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return d.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;d.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return d.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=d.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(v).catch(v)}invalidateQueries(e,t={}){return d.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=d.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(v)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(v)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(c(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(v).catch(v)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(v).catch(v)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return g.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(f(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{s(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(f(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{s(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=l(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===o&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};function ga(e,t){return C(e,S,t)}function _a(e,t){return C({...e,enabled:!0,suspense:!0,throwOnError:x,placeholderData:void 0},S,t)}function va(e,t){if(e)return typeof e==`string`?e:e[t]}function ya(e){return e?.scriptFormat??`module`}function ba(e,t,n){let r=xa(t),i=va(n,`script`)??r.crossOrigin;return{...ya(e)===`iife`?{rel:`preload`,as:`script`}:{rel:`modulepreload`},href:r.href,...i?{crossOrigin:i}:{}}}function xa(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}function Sa(e,t){if(t.length===0)return;if(t.length===1){e.push(t[0]);return}let n=new Set;for(let r of t){let t=JSON.stringify(r);n.has(t)||(n.add(t),e.push(r))}}function Ca(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}var wa=(e=>(e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e))(wa||{});function Ta({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function Ea(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var Da=[],Oa=0,{link:ka,unlink:Aa,propagate:ja,checkDirty:Ma,shallowPropagate:Na}=Ta({update(e){return e._update()},notify(e){Da[Fa++]=e,e.flags&=~wa.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=wa.Mutable|wa.Dirty,za(e))}}),Pa=0,Fa=0,Ia,La=0;function Ra(e){try{++La,e()}finally{--La||Ba()}}function za(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=Aa(n,e)}function Ba(){if(!(La>0)){for(;Pa{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Ia,o=t?.compare??Object.is;if(n)Ia=i,++Oa,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=wa.Mutable|wa.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Ia=a,n&&(i.flags&=~wa.RecursedCheck),za(i)}}};return n?(i.flags=wa.Mutable|wa.Dirty,i.get=function(){let e=i.flags;if(e&wa.Dirty||e&wa.Pending&&Ma(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Na(e)}}else e&wa.Pending&&(i.flags=e&~wa.Pending);return Ia!==void 0&&ka(i,Ia,Oa),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(ja(e),Na(e),Ba())}},i}function Ha(e){let t=()=>{let t=Ia;Ia=n,++Oa,n.depsTail=void 0,n.flags=wa.Watching|wa.RecursedCheck;try{return e()}finally{Ia=t,n.flags&=~wa.RecursedCheck,za(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:wa.Watching|wa.RecursedCheck,notify(){let e=this.flags;e&wa.Dirty||e&wa.Pending&&Ma(this.deps,this)?t():this.flags=wa.Watching},stop(){this.flags=wa.None,this.depsTail=void 0,za(this)}};return t(),n}var q=n(r(),1);function Ua(){let e=A(),t=q.useRef({router:e,mounted:!1}),[n,r]=q.useState(!1),i=M(e.stores.isLoading,e=>e),a=M(e.stores.hasPending,e=>e),o=O(i),s=i||n||a,c=O(s),l=i||a,u=O(l);return e.startTransition=e=>{r(!0),q.startTransition(()=>{e(),r(!1)})},q.useEffect(()=>{let t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return ne(e.latestLocation.publicHref)!==ne(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),te(()=>{typeof window<`u`&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(e){console.error(e)}})())},[e]),te(()=>{o&&!i&&e.emit({type:`onLoad`,...ce(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),te(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...ce(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),te(()=>{if(c&&!s){let t=ce(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),Ra(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())})}},[s,c,e]),null}var J=t();function Wa(){let e=A(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,J.jsx)(t,{}):null,r=(0,J.jsxs)(typeof document<`u`&&e.ssr?N:q.Suspense,{fallback:n,children:[(0,J.jsx)(Ua,{}),(0,J.jsx)(Ga,{})]});return e.options.InnerWrap?(0,J.jsx)(e.options.InnerWrap,{children:r}):r}function Ga(){let e=A(),t=M(e.stores.firstId,e=>e),n=M(e.stores.loadedAt,e=>e),r=t?(0,J.jsx)(le,{matchId:t}):null;return(0,J.jsx)(ue.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,J.jsx)(ae,{getResetKey:()=>n,errorComponent:ie,onCatch:void 0,children:r})})}var Ka=e=>({createMutableStore:Va,createReadonlyStore:Va,batch:Ra}),qa=e=>new Ja(e),Ja=class extends se{constructor(e){super(e,Ka)}};function Ya({router:e,children:t,...n}){k(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,J.jsx)(re.Provider,{value:e,children:t});return e.options.Wrap?(0,J.jsx)(e.options.Wrap,{children:r}):r}function Xa({router:e,...t}){return(0,J.jsx)(Ya,{router:e,...t,children:(0,J.jsx)(Wa,{})})}function Za(e){let t=A();return M(t.stores.location,me(e,t))}function Qa(e,t){if(t)for(let[n,r]of Object.entries(t))n!==`suppressHydrationWarning`&&r!==void 0&&r!==!1&&e.setAttribute(n,typeof r==`boolean`?``:String(r))}function $a(e){let{attrs:t,children:n,nonce:r,preventScriptHoist:i}=e;switch(e.tag){case`title`:return(0,J.jsx)(`title`,{...t,suppressHydrationWarning:!0,children:n});case`meta`:return(0,J.jsx)(`meta`,{...t,suppressHydrationWarning:!0});case`link`:return(0,J.jsx)(`link`,{...t,precedence:t?.precedence??(t?.rel===`stylesheet`?`default`:void 0),nonce:r,suppressHydrationWarning:!0});case`style`:return e.inlineCss,(0,J.jsx)(`style`,{...t,dangerouslySetInnerHTML:{__html:n},nonce:r});case`script`:return(0,J.jsx)(eo,{attrs:t,preventScriptHoist:i,children:n});default:return null}}function eo({attrs:e,children:t,preventScriptHoist:n}){A();let r=j(),i=typeof e?.type==`string`&&e.type!==``&&e.type!==`text/javascript`&&e.type!==`module`;if(q.useEffect(()=>{if(!i){if(e?.src){let t=(()=>{try{let t=document.baseURI||window.location.href;return new URL(e.src,t).href}catch{return e.src}})();for(let e of document.querySelectorAll(`script[src]`))if(e.src===t)return;let n=document.createElement(`script`);return Qa(n,e),document.head.appendChild(n),()=>n.remove()}if(typeof t==`string`){let n=typeof e?.type==`string`?e.type:`text/javascript`,r=typeof e?.nonce==`string`?e.nonce:void 0;for(let e of document.querySelectorAll(`script:not([src])`)){if(!(e instanceof HTMLScriptElement))continue;let i=e.getAttribute(`type`)??`text/javascript`,a=e.getAttribute(`nonce`)??void 0;if(e.textContent===t&&i===n&&a===r)return}let i=document.createElement(`script`);return i.textContent=t,Qa(i,e),document.head.appendChild(i),()=>i.remove()}}},[e,t,i]),i&&typeof t==`string`)return(0,J.jsx)(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}});if(!r){if(e?.src)return(0,J.jsx)(`script`,{...e,suppressHydrationWarning:!0});if(typeof t==`string`)return(0,J.jsx)(`script`,{...e,dangerouslySetInnerHTML:{__html:t},suppressHydrationWarning:!0})}return null}var to=e=>{let t=A(),n=t.options.ssr?.nonce,r=M(t.stores.matches,e=>e.map(e=>e.meta).filter(e=>e!==void 0),D),i=q.useMemo(()=>{let e=[],t={},i;for(let a=r.length-1;a>=0;a--){let o=r[a];for(let r=o.length-1;r>=0;r--){let a=o[r];if(a)if(a.title)i||={tag:`title`,children:a.title};else if(`script:ld+json`in a)try{let t=JSON.stringify(a[`script:ld+json`]);e.push({tag:`script`,attrs:{type:`application/ld+json`},children:ee(t)})}catch{}else{let r=a.name??a.property;if(r){if(t[r])continue;t[r]=!0}e.push({tag:`meta`,attrs:{...a,nonce:n}})}}}return i&&e.push(i),n&&e.push({tag:`meta`,attrs:{property:`csp-nonce`,content:n}}),e.reverse(),e},[r,n]),a=M(t.stores.matches,e=>e.flatMap(e=>e.links??[]).filter(e=>e!==void 0).map(e=>({tag:`link`,attrs:{...e,nonce:n}})),D),o=M(t.stores.matches,r=>{let i=t.ssr?.manifest,a=[];return i?(r.forEach(t=>{i.routes[t.routeId]?.css?.forEach(t=>{let r=Ca(t);a.push({tag:`link`,attrs:{rel:`stylesheet`,...r,crossOrigin:va(e,`stylesheet`)??r.crossOrigin,suppressHydrationWarning:!0,nonce:n}})})}),i.inlineStyle&&a.push({tag:`style`,attrs:{...i.inlineStyle.attrs,nonce:n},children:i.inlineStyle.children,inlineCss:!0}),a):a},D),s=M(t.stores.matches,r=>{let i=[],a=t.ssr?.manifest;return a&&r.forEach(t=>{a.routes[t.routeId]?.preloads?.forEach(t=>{i.push({tag:`link`,attrs:{...ba(a,t,e),nonce:n}})})}),i},D),c=M(t.stores.matches,e=>e.flatMap(e=>e.styles??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`style`,attrs:{...t,nonce:n},children:e})),D),l=M(t.stores.matches,e=>e.flatMap(e=>e.headScripts??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`script`,attrs:{...t,nonce:n},children:e})),D),u=[];return Sa(u,i),u.push(...s),Sa(u,a),u.push(...o),Sa(u,c),Sa(u,l),u};function no(e){let t=to(e.assetCrossOrigin),n=A().options.ssr?.nonce;return(0,J.jsx)(J.Fragment,{children:t.map(e=>(0,q.createElement)($a,{...e,key:`tsr-meta-${JSON.stringify(e)}`,nonce:n}))})}var Y=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&te(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&te(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var ee=new MessageChannel,k=ee.port2;ee.port1.onmessage=D,O=function(){k.postMessage(null)}}else O=function(){_(D,0)};function te(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,te(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),ro=e(((e,t)=>{t.exports=Y()})),io=e((e=>{var t=ro(),n=r(),i=fe();function a(e){var t=`https://react.dev/errors/`+e;if(1ae||(e.current=ie[ae],ie[ae]=null,ae--)}function N(e,t){ae++,ie[ae]=e.current,e.current=t}var ce=oe(null),le=oe(null),ue=oe(null),de=oe(null);function pe(e,t){switch(N(ue,t),N(le,e),N(ce,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Hd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Hd(t),e=Ud(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}se(ce),N(ce,e)}function me(){se(ce),se(le),se(ue)}function he(e){e.memoizedState!==null&&N(de,e);var t=ce.current,n=Ud(t,e.type);t!==n&&(N(le,e),N(ce,n))}function P(e){le.current===e&&(se(ce),se(le)),de.current===e&&(se(de),$f._currentValue=M)}var ge,F;function _e(e){if(ge===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);ge=t&&t[1]||``,F=-1i.map(i=>d[i]); +import{i as e,n as t,o as n,r,t as i}from"./compiler-runtime.js";import{M as a,O as o,S as s,T as c,_ as l,b as u,c as d,g as f,h as p,j as m,n as h,s as g,t as _,x as v,y}from"./QueryClientProvider.js";import{i as b,n as x,r as S,t as C}from"./useBaseQuery.js";import{n as w,t as T}from"./useMutation.js";import{t as E}from"./queryOptions.js";import{A as D,G as O,M as k,P as A,W as ee,_ as te,a as ne,i as j,s as M,t as N}from"./useStore.js";import{a as re,i as ie,n as ae,o as oe,r as P,s as se,t as ce}from"./Match.js";import{n as le}from"./matchContext.js";import{n as ue}from"./redirect.js";import{n as de,t as F}from"./link.js";import{a as fe,i as pe,n as I,r as me,t as L}from"./lazyRouteComponent.js";import{t as he}from"./useNavigate.js";import{a as ge,c as _e,f as ve,l as ye,n as be,r as xe,t as Se,u as Ce}from"./dist.js";import{C as we,Jt as Te,Kt as Ee,Ot as De,Qt as Oe,Wt as ke,a as Ae,c as je,f as R,l as Me,lt as Ne,n as Pe,o as Fe,qt as z,r as Ie,s as Le,tt as B,u as Re}from"./auth.js";import{t as V}from"./createLucideIcon.js";import{t as ze}from"./check.js";import{t as Be}from"./chevron-down.js";import{a as Ve,c as He,d as Ue,f as We,i as Ge,l as Ke,n as qe,o as Je,r as Ye,s as Xe,t as Ze,u as Qe}from"./select.js";import{t as $e}from"./copy.js";import{_ as et,b as tt,n as nt,o as H,r as rt,s as it,t as at,y as ot}from"./button.js";import{a as st,i as ct,n as lt,o as ut,r as dt,s as ft,t as pt}from"./Separator.js";import{S as mt,b as ht,f as gt,g as _t,h as vt,i as yt,m as bt,r as xt,s as St,t as Ct,v as wt,x as Tt,y as Et}from"./createBaseUIEventDetails.js";import{$ as Dt,A as Ot,B as kt,C as At,D as jt,Dt as Mt,E as Nt,F as Pt,H as Ft,I as U,J as It,K as Lt,L as Rt,O as zt,P as Bt,Q as Vt,R as Ht,S as Ut,T as Wt,U as Gt,V as Kt,Z as qt,_t as Jt,b as Yt,bt as Xt,dt as Zt,et as Qt,ht as $t,it as en,j as tn,k as nn,kt as rn,l as an,n as on,nt as sn,r as cn,rt as ln,t as un,v as dn,vt as fn,w as pn,x as mn,xt as hn,y as gn,z as _n}from"./useScrollLock.js";import{a as vn,d as yn,i as bn,l as xn,n as Sn,o as Cn,r as wn,s as Tn,t as En}from"./useValueAsRef.js";import{t as Dn}from"./useControlled.js";import{Ai as On,Ar as kn,Br as An,Ci as jn,Cr as Mn,Di as Nn,Dr as Pn,Ei as Fn,Er as In,Fi as Ln,Fr as Rn,Gr as zn,Hr as Bn,Ir as Vn,Jr as Hn,Kr as Un,Lr as Wn,Mi as Gn,Mr as Kn,Ni as qn,Nr as Jn,Oi as Yn,Or as Xn,Pi as Zn,Pr as Qn,Ri as $n,Rr as er,Si as tr,Sr as nr,Ti as rr,Tr as ir,Ur as ar,Vr as or,Wr as sr,Xr as cr,Yr as lr,_i as ur,_r as dr,bi as fr,br as pr,gi as mr,gr as hr,hr as gr,ji as _r,jr as vr,ki as yr,kr as br,mr as xr,n as Sr,qr as Cr,r as W,t as wr,vi as Tr,vr as Er,wi as Dr,wr as Or,xi as kr,xr as Ar,yi as jr,yr as Mr,zi as Nr,zr as Pr}from"./awsClient.js";import{a as Fr,i as Ir,n as Lr,o as Rr,r as zr}from"./sts.js";import{A as Br,C as Vr,D as Hr,E as Ur,F as Wr,I as G,M as Gr,N as K,O as Kr,P as q,S as qr,T as Jr,_ as Yr,a as Xr,b as Zr,c as Qr,d as $r,f as ei,g as ti,h as ni,j as ri,k as ii,l as ai,m as oi,n as si,o as ci,p as li,r as ui,s as di,t as fi,u as pi,v as mi,w as hi,x as gi,y as _i}from"./ec2.js";import{i as vi,n as yi,r as bi}from"./ecr.js";import{i as xi,n as Si,o as Ci,s as wi,t as Ti}from"./ecs.js";import{c as Ei,s as Di,t as Oi,u as ki}from"./eks2.js";import{a as Ai,c as ji,i as Mi,l as Ni,n as Pi,o as Fi,r as Ii,s as Li,u as Ri}from"./elbv22.js";import{C as zi,S as Bi,a as Vi,b as Hi,c as Ui,d as Wi,f as Gi,g as Ki,h as qi,i as Ji,l as Yi,m as Xi,n as Zi,p as Qi,r as $i,s as ea,t as ta,u as na,v as ra,y as ia}from"./iam2.js";import{n as aa,t as oa}from"./s32.js";import{i as sa,n as ca,r as la,t as ua}from"./subnet-calculator.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var da=class extends a{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){let r=new w({client:e,mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(r),r}add(e){this.#e.add(e);let t=fa(e);if(typeof t==`string`){let n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:`added`,mutation:e})}remove(e){if(this.#e.delete(e)){let t=fa(e);if(typeof t==`string`){let n=this.#t.get(t);if(n)if(n.length>1){let t=n.indexOf(e);t!==-1&&n.splice(t,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:`removed`,mutation:e})}canRun(e){let t=fa(e);if(typeof t==`string`){let n=this.#t.get(t)?.find(e=>e.state.status===`pending`);return!n||n===e}return!0}runNext(e){let t=fa(e);return typeof t==`string`?(this.#t.get(t)?.find(t=>t!==e&&t.state.isPaused))?.continue()??Promise.resolve():Promise.resolve()}clear(){d.batch(()=>{this.#e.forEach(e=>{this.notify({type:`removed`,mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){let t={exact:!0,...e};return this.getAll().find(e=>y(t,e))}findAll(e={}){return this.getAll().filter(t=>y(e,t))}notify(e){d.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){let e=this.getAll().filter(e=>e.state.isPaused);return d.batch(()=>Promise.all(e.map(e=>e.continue().catch(v))))}};function fa(e){return e.options.scope?.id}var pa=class extends a{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){let r=t.queryKey,i=t.queryHash??l(r,t),a=this.get(i);return a||(a=new b({client:e,queryKey:r,queryHash:i,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(r)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:`added`,query:e}))}remove(e){let t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:`removed`,query:e}))}clear(){d.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){let t={exact:!0,...e};return this.getAll().find(e=>u(t,e))}findAll(e={}){let t=this.getAll();return Object.keys(e).length>0?t.filter(t=>u(e,t)):t}notify(e){d.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){d.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){d.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},ma=class{#e;#t;#n;#r;#i;#a;#o;#s;constructor(e={}){this.#e=e.queryCache||new pa,this.#t=e.mutationCache||new da,this.#n=e.defaultOptions||{},this.#r=new Map,this.#i=new Map,this.#a=0}mount(){this.#a++,this.#a===1&&(this.#o=m.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#s=g.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#a--,this.#a===0&&(this.#o?.(),this.#o=void 0,this.#s?.(),this.#s=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:`fetching`}).length}isMutating(e){return this.#t.findAll({...e,status:`pending`}).length}getQueryData(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){let t=this.defaultQueryOptions(e),n=this.#e.build(this,t),r=n.state.data;return r===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(c(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(r))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:e,state:t})=>[e,t.data])}setQueryData(e,t,n){let r=this.defaultQueryOptions({queryKey:e}),i=this.#e.get(r.queryHash)?.state.data,a=p(t,i);if(a!==void 0)return this.#e.build(this,r).setData(a,{...n,manual:!0})}setQueriesData(e,t,n){return d.batch(()=>this.#e.findAll(e).map(({queryKey:e})=>[e,this.setQueryData(e,t,n)]))}getQueryState(e){let t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){let t=this.#e;d.batch(()=>{t.findAll(e).forEach(e=>{t.remove(e)})})}resetQueries(e,t){let n=this.#e;return d.batch(()=>(n.findAll(e).forEach(e=>{e.reset()}),this.refetchQueries({type:`active`,...e},t)))}cancelQueries(e,t={}){let n={revert:!0,...t},r=d.batch(()=>this.#e.findAll(e).map(e=>e.cancel(n)));return Promise.all(r).then(v).catch(v)}invalidateQueries(e,t={}){return d.batch(()=>(this.#e.findAll(e).forEach(e=>{e.invalidate()}),e?.refetchType===`none`?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??`active`},t)))}refetchQueries(e,t={}){let n={...t,cancelRefetch:t.cancelRefetch??!0},r=d.batch(()=>this.#e.findAll(e).filter(e=>!e.isDisabled()&&!e.isStatic()).map(e=>{let t=e.fetch(void 0,n);return n.throwOnError||(t=t.catch(v)),e.state.fetchStatus===`paused`?Promise.resolve():t}));return Promise.all(r).then(v)}fetchQuery(e){let t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);let n=this.#e.build(this,t);return n.isStaleByTime(c(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(v).catch(v)}fetchInfiniteQuery(e){return e._type=`infinite`,this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(v).catch(v)}ensureInfiniteQueryData(e){return e._type=`infinite`,this.ensureQueryData(e)}resumePausedMutations(){return g.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#r.set(f(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){let t=[...this.#r.values()],n={};return t.forEach(t=>{s(e,t.queryKey)&&Object.assign(n,t.defaultOptions)}),n}setMutationDefaults(e,t){this.#i.set(f(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){let t=[...this.#i.values()],n={};return t.forEach(t=>{s(e,t.mutationKey)&&Object.assign(n,t.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;let t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||=l(t.queryKey,t),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!==`always`),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode=`offlineFirst`),t.queryFn===o&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}};function ha(e,t){return C(e,S,t)}function ga(e,t){return C({...e,enabled:!0,suspense:!0,throwOnError:x,placeholderData:void 0},S,t)}function _a(e,t){if(e)return typeof e==`string`?e:e[t]}function va(e){return e?.scriptFormat??`module`}function ya(e,t,n){let r=ba(t),i=_a(n,`script`)??r.crossOrigin;return{...va(e)===`iife`?{rel:`preload`,as:`script`}:{rel:`modulepreload`},href:r.href,...i?{crossOrigin:i}:{}}}function ba(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}function xa(e,t){if(t.length===0)return;if(t.length===1){e.push(t[0]);return}let n=new Set;for(let r of t){let t=JSON.stringify(r);n.has(t)||(n.add(t),e.push(r))}}function Sa(e){return typeof e==`string`?{href:e,crossOrigin:void 0}:e}var Ca=(e=>(e[e.None=0]=`None`,e[e.Mutable=1]=`Mutable`,e[e.Watching=2]=`Watching`,e[e.RecursedCheck=4]=`RecursedCheck`,e[e.Recursed=8]=`Recursed`,e[e.Dirty=16]=`Dirty`,e[e.Pending=32]=`Pending`,e))(Ca||{});function wa({update:e,notify:t,unwatched:n}){return{link:r,unlink:i,propagate:a,checkDirty:o,shallowPropagate:s};function r(e,t,n){let r=t.depsTail;if(r!==void 0&&r.dep===e)return;let i=r===void 0?t.deps:r.nextDep;if(i!==void 0&&i.dep===e){i.version=n,t.depsTail=i;return}let a=e.subsTail;if(a!==void 0&&a.version===n&&a.sub===t)return;let o=t.depsTail=e.subsTail={version:n,dep:e,sub:t,prevDep:r,nextDep:i,prevSub:a,nextSub:void 0};i!==void 0&&(i.prevDep=o),r===void 0?t.deps=o:r.nextDep=o,a===void 0?e.subs=o:a.nextSub=o}function i(e,t=e.sub){let r=e.dep,i=e.prevDep,a=e.nextDep,o=e.nextSub,s=e.prevSub;return a===void 0?t.depsTail=i:a.prevDep=i,i===void 0?t.deps=a:i.nextDep=a,o===void 0?r.subsTail=s:o.prevSub=s,s===void 0?(r.subs=o)===void 0&&n(r):s.nextSub=o,a}function a(e){let n=e.nextSub,r;top:do{let i=e.sub,a=i.flags;if(a&60?a&12?a&4?!(a&48)&&c(e,i)?(i.flags=a|40,a&=1):a=0:i.flags=a&-9|32:a=0:i.flags=a|32,a&2&&t(i),a&1){let t=i.subs;if(t!==void 0){let i=(e=t).nextSub;i!==void 0&&(r={value:n,prev:r},n=i);continue}}if((e=n)!==void 0){n=e.nextSub;continue}for(;r!==void 0;)if(e=r.value,r=r.prev,e!==void 0){n=e.nextSub;continue top}break}while(!0)}function o(t,n){let r,i=0,a=!1;top:do{let o=t.dep,c=o.flags;if(n.flags&16)a=!0;else if((c&17)==17){if(e(o)){let e=o.subs;e.nextSub!==void 0&&s(e),a=!0}}else if((c&33)==33){(t.nextSub!==void 0||t.prevSub!==void 0)&&(r={value:t,prev:r}),t=o.deps,n=o,++i;continue}if(!a){let e=t.nextDep;if(e!==void 0){t=e;continue}}for(;i--;){let i=n.subs,o=i.nextSub!==void 0;if(o?(t=r.value,r=r.prev):t=i,a){if(e(n)){o&&s(i),n=t.sub;continue}a=!1}else n.flags&=-33;n=t.sub;let c=t.nextDep;if(c!==void 0){t=c;continue top}}return a}while(!0)}function s(e){do{let n=e.sub,r=n.flags;(r&48)==32&&(n.flags=r|16,(r&6)==2&&t(n))}while((e=e.nextSub)!==void 0)}function c(e,t){let n=t.depsTail;for(;n!==void 0;){if(n===e)return!0;n=n.prevDep}return!1}}function Ta(e,t,n){let r=typeof e==`object`,i=r?e:void 0;return{next:(r?e.next:e)?.bind(i),error:(r?e.error:t)?.bind(i),complete:(r?e.complete:n)?.bind(i)}}var Ea=[],Da=0,{link:Oa,unlink:ka,propagate:Aa,checkDirty:ja,shallowPropagate:Ma}=wa({update(e){return e._update()},notify(e){Ea[Pa++]=e,e.flags&=~Ca.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=Ca.Mutable|Ca.Dirty,Ra(e))}}),Na=0,Pa=0,Fa,Ia=0;function La(e){try{++Ia,e()}finally{--Ia||za()}}function Ra(e){let t=e.depsTail,n=t===void 0?e.deps:t.nextDep;for(;n!==void 0;)n=ka(n,e)}function za(){if(!(Ia>0)){for(;Na{i.get(),n.current?t.next?.(i._snapshot):n.current=!0});return{unsubscribe:()=>{r.stop()}}},_update(e){let a=Fa,o=t?.compare??Object.is;if(n)Fa=i,++Da,i.depsTail=void 0;else if(e===void 0)return!1;n&&(i.flags=Ca.Mutable|Ca.RecursedCheck);try{let t=i._snapshot,a=typeof e==`function`?e(t):e===void 0&&n?r(t):e;return t===void 0||!o(t,a)?(i._snapshot=a,!0):!1}finally{Fa=a,n&&(i.flags&=~Ca.RecursedCheck),Ra(i)}}};return n?(i.flags=Ca.Mutable|Ca.Dirty,i.get=function(){let e=i.flags;if(e&Ca.Dirty||e&Ca.Pending&&ja(i.deps,i)){if(i._update()){let e=i.subs;e!==void 0&&Ma(e)}}else e&Ca.Pending&&(i.flags=e&~Ca.Pending);return Fa!==void 0&&Oa(i,Fa,Da),i._snapshot}):i.set=function(e){if(i._update(e)){let e=i.subs;e!==void 0&&(Aa(e),Ma(e),za())}},i}function Va(e){let t=()=>{let t=Fa;Fa=n,++Da,n.depsTail=void 0,n.flags=Ca.Watching|Ca.RecursedCheck;try{return e()}finally{Fa=t,n.flags&=~Ca.RecursedCheck,Ra(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:Ca.Watching|Ca.RecursedCheck,notify(){let e=this.flags;e&Ca.Dirty||e&Ca.Pending&&ja(this.deps,this)?t():this.flags=Ca.Watching},stop(){this.flags=Ca.None,this.depsTail=void 0,Ra(this)}};return t(),n}var J=n(r(),1);function Ha(){let e=j(),t=J.useRef({router:e,mounted:!1}),[n,r]=J.useState(!1),i=N(e.stores.isLoading,e=>e),a=N(e.stores.hasPending,e=>e),o=O(i),s=i||n||a,c=O(s),l=i||a,u=O(l);return e.startTransition=e=>{r(!0),J.startTransition(()=>{e(),r(!1)})},J.useEffect(()=>{let t=e.history.subscribe(e.load),n=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return te(e.latestLocation.publicHref)!==te(n.publicHref)&&e.commitLocation({...n,replace:!0}),()=>{t()}},[e,e.history]),ee(()=>{typeof window<`u`&&e.ssr||t.current.router===e&&t.current.mounted||(t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(e){console.error(e)}})())},[e]),ee(()=>{o&&!i&&e.emit({type:`onLoad`,...se(e.stores.location.get(),e.stores.resolvedLocation.get())})},[o,e,i]),ee(()=>{u&&!l&&e.emit({type:`onBeforeRouteMount`,...se(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,u,e]),ee(()=>{if(c&&!s){let t=se(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:`onResolved`,...t}),La(()=>{e.stores.status.set(`idle`),e.stores.resolvedLocation.set(e.stores.location.get())})}},[s,c,e]),null}var Y=t();function Ua(){let e=j(),t=e.routesById.__root__.options.pendingComponent??e.options.defaultPendingComponent,n=t?(0,Y.jsx)(t,{}):null,r=(0,Y.jsxs)(typeof document<`u`&&e.ssr?P:J.Suspense,{fallback:n,children:[(0,Y.jsx)(Ha,{}),(0,Y.jsx)(Wa,{})]});return e.options.InnerWrap?(0,Y.jsx)(e.options.InnerWrap,{children:r}):r}function Wa(){let e=j(),t=N(e.stores.firstId,e=>e),n=N(e.stores.loadedAt,e=>e),r=t?(0,Y.jsx)(ce,{matchId:t}):null;return(0,Y.jsx)(le.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?r:(0,Y.jsx)(ie,{getResetKey:()=>n,errorComponent:re,onCatch:void 0,children:r})})}var Ga=e=>({createMutableStore:Ba,createReadonlyStore:Ba,batch:La}),Ka=e=>new qa(e),qa=class extends oe{constructor(e){super(e,Ga)}};function Ja({router:e,children:t,...n}){A(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});let r=(0,Y.jsx)(ne.Provider,{value:e,children:t});return e.options.Wrap?(0,Y.jsx)(e.options.Wrap,{children:r}):r}function Ya({router:e,...t}){return(0,Y.jsx)(Ja,{router:e,...t,children:(0,Y.jsx)(Ua,{})})}function Xa(e){let t=j();return N(t.stores.location,fe(e,t))}function Za(e,t){if(t)for(let[n,r]of Object.entries(t))n!==`suppressHydrationWarning`&&r!==void 0&&r!==!1&&e.setAttribute(n,typeof r==`boolean`?``:String(r))}function Qa(e){let{attrs:t,children:n,nonce:r,preventScriptHoist:i}=e;switch(e.tag){case`title`:return(0,Y.jsx)(`title`,{...t,suppressHydrationWarning:!0,children:n});case`meta`:return(0,Y.jsx)(`meta`,{...t,suppressHydrationWarning:!0});case`link`:return(0,Y.jsx)(`link`,{...t,precedence:t?.precedence??(t?.rel===`stylesheet`?`default`:void 0),nonce:r,suppressHydrationWarning:!0});case`style`:return e.inlineCss,(0,Y.jsx)(`style`,{...t,dangerouslySetInnerHTML:{__html:n},nonce:r});case`script`:return(0,Y.jsx)($a,{attrs:t,preventScriptHoist:i,children:n});default:return null}}function $a({attrs:e,children:t,preventScriptHoist:n}){j();let r=M(),i=typeof e?.type==`string`&&e.type!==``&&e.type!==`text/javascript`&&e.type!==`module`;if(J.useEffect(()=>{if(!i){if(e?.src){let t=(()=>{try{let t=document.baseURI||window.location.href;return new URL(e.src,t).href}catch{return e.src}})();for(let e of document.querySelectorAll(`script[src]`))if(e.src===t)return;let n=document.createElement(`script`);return Za(n,e),document.head.appendChild(n),()=>n.remove()}if(typeof t==`string`){let n=typeof e?.type==`string`?e.type:`text/javascript`,r=typeof e?.nonce==`string`?e.nonce:void 0;for(let e of document.querySelectorAll(`script:not([src])`)){if(!(e instanceof HTMLScriptElement))continue;let i=e.getAttribute(`type`)??`text/javascript`,a=e.getAttribute(`nonce`)??void 0;if(e.textContent===t&&i===n&&a===r)return}let i=document.createElement(`script`);return i.textContent=t,Za(i,e),document.head.appendChild(i),()=>i.remove()}}},[e,t,i]),i&&typeof t==`string`)return(0,Y.jsx)(`script`,{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}});if(!r){if(e?.src)return(0,Y.jsx)(`script`,{...e,suppressHydrationWarning:!0});if(typeof t==`string`)return(0,Y.jsx)(`script`,{...e,dangerouslySetInnerHTML:{__html:t},suppressHydrationWarning:!0})}return null}var eo=e=>{let t=j(),n=t.options.ssr?.nonce,r=N(t.stores.matches,e=>e.map(e=>e.meta).filter(e=>e!==void 0),D),i=J.useMemo(()=>{let e=[],t={},i;for(let a=r.length-1;a>=0;a--){let o=r[a];for(let r=o.length-1;r>=0;r--){let a=o[r];if(a)if(a.title)i||={tag:`title`,children:a.title};else if(`script:ld+json`in a)try{let t=JSON.stringify(a[`script:ld+json`]);e.push({tag:`script`,attrs:{type:`application/ld+json`},children:k(t)})}catch{}else{let r=a.name??a.property;if(r){if(t[r])continue;t[r]=!0}e.push({tag:`meta`,attrs:{...a,nonce:n}})}}}return i&&e.push(i),n&&e.push({tag:`meta`,attrs:{property:`csp-nonce`,content:n}}),e.reverse(),e},[r,n]),a=N(t.stores.matches,e=>e.flatMap(e=>e.links??[]).filter(e=>e!==void 0).map(e=>({tag:`link`,attrs:{...e,nonce:n}})),D),o=N(t.stores.matches,r=>{let i=t.ssr?.manifest,a=[];return i?(r.forEach(t=>{i.routes[t.routeId]?.css?.forEach(t=>{let r=Sa(t);a.push({tag:`link`,attrs:{rel:`stylesheet`,...r,crossOrigin:_a(e,`stylesheet`)??r.crossOrigin,suppressHydrationWarning:!0,nonce:n}})})}),i.inlineStyle&&a.push({tag:`style`,attrs:{...i.inlineStyle.attrs,nonce:n},children:i.inlineStyle.children,inlineCss:!0}),a):a},D),s=N(t.stores.matches,r=>{let i=[],a=t.ssr?.manifest;return a&&r.forEach(t=>{a.routes[t.routeId]?.preloads?.forEach(t=>{i.push({tag:`link`,attrs:{...ya(a,t,e),nonce:n}})})}),i},D),c=N(t.stores.matches,e=>e.flatMap(e=>e.styles??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`style`,attrs:{...t,nonce:n},children:e})),D),l=N(t.stores.matches,e=>e.flatMap(e=>e.headScripts??[]).filter(e=>e!==void 0).map(({children:e,...t})=>({tag:`script`,attrs:{...t,nonce:n},children:e})),D),u=[];return xa(u,i),u.push(...s),xa(u,a),u.push(...o),xa(u,c),xa(u,l),u};function to(e){let t=eo(e.assetCrossOrigin),n=j().options.ssr?.nonce;return(0,Y.jsx)(Y.Fragment,{children:t.map(e=>(0,J.createElement)(Qa,{...e,key:`tsr-meta-${JSON.stringify(e)}`,nonce:n}))})}var X=e((e=>{function t(e,t){var n=e.length;e.push(t);a:for(;0>>1,a=e[r];if(0>>1;ri(c,n))li(u,c)?(e[r]=u,e[l]=n,r=l):(e[r]=c,e[s]=n,r=s);else if(li(u,n))e[r]=u,e[l]=n,r=l;else break a}}return t}function i(e,t){var n=e.sortIndex-t.sortIndex;return n===0?e.id-t.id:n}if(e.unstable_now=void 0,typeof performance==`object`&&typeof performance.now==`function`){var a=performance;e.unstable_now=function(){return a.now()}}else{var o=Date,s=o.now();e.unstable_now=function(){return o.now()-s}}var c=[],l=[],u=1,d=null,f=3,p=!1,m=!1,h=!1,g=!1,_=typeof setTimeout==`function`?setTimeout:null,v=typeof clearTimeout==`function`?clearTimeout:null,y=typeof setImmediate<`u`?setImmediate:null;function b(e){for(var i=n(l);i!==null;){if(i.callback===null)r(l);else if(i.startTime<=e)r(l),i.sortIndex=i.expirationTime,t(c,i);else break;i=n(l)}}function x(e){if(h=!1,b(e),!m)if(n(c)!==null)m=!0,S||(S=!0,O());else{var t=n(l);t!==null&&ee(x,t.startTime-e)}}var S=!1,C=-1,w=5,T=-1;function E(){return g?!0:!(e.unstable_now()-Tt&&E());){var o=d.callback;if(typeof o==`function`){d.callback=null,f=d.priorityLevel;var s=o(d.expirationTime<=t);if(t=e.unstable_now(),typeof s==`function`){d.callback=s,b(t),i=!0;break b}d===n(c)&&r(c),b(t)}else r(c);d=n(c)}if(d!==null)i=!0;else{var u=n(l);u!==null&&ee(x,u.startTime-t),i=!1}}break a}finally{d=null,f=a,p=!1}}}finally{i?O():S=!1}}}var O;if(typeof y==`function`)O=function(){y(D)};else if(typeof MessageChannel<`u`){var k=new MessageChannel,A=k.port2;k.port1.onmessage=D,O=function(){A.postMessage(null)}}else O=function(){_(D,0)};function ee(t,n){C=_(function(){t(e.unstable_now())},n)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(e){e.callback=null},e.unstable_forceFrameRate=function(e){0>e||125o?(r.sortIndex=a,t(l,r),n(c)===null&&r===n(l)&&(h?(v(C),C=-1):h=!0,ee(x,a-o))):(r.sortIndex=s,t(c,r),m||p||(m=!0,S||(S=!0,O()))),r},e.unstable_shouldYield=E,e.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}})),no=e(((e,t)=>{t.exports=X()})),ro=e((e=>{var t=no(),n=r(),i=de();function a(e){var t=`https://react.dev/errors/`+e;if(1ie||(e.current=re[ie],re[ie]=null,ie--)}function P(e,t){ie++,re[ie]=e.current,e.current=t}var se=ae(null),ce=ae(null),le=ae(null),ue=ae(null);function F(e,t){switch(P(le,t),P(ce,e),P(se,null),t.nodeType){case 9:case 11:e=(e=t.documentElement)&&(e=e.namespaceURI)?Hd(e):0;break;default:if(e=t.tagName,t=t.namespaceURI)t=Hd(t),e=Ud(t,e);else switch(e){case`svg`:e=1;break;case`math`:e=2;break;default:e=0}}oe(se),P(se,e)}function fe(){oe(se),oe(ce),oe(le)}function pe(e){e.memoizedState!==null&&P(ue,e);var t=se.current,n=Ud(t,e.type);t!==n&&(P(ce,e),P(se,n))}function I(e){ce.current===e&&(oe(se),oe(ce)),ue.current===e&&(oe(ue),$f._currentValue=N)}var me,L;function he(e){if(me===void 0)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);me=t&&t[1]||``,L=-1)`:-1i||c[r]!==l[i]){var u=` -`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ve=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?_e(n):``}function be(e,t){switch(e.tag){case 26:case 27:case 5:return _e(e.type);case 16:return _e(`Lazy`);case 13:return e.child!==t&&t!==null?_e(`Suspense Fallback`):_e(`Suspense`);case 19:return _e(`SuspenseList`);case 0:case 15:return ye(e.type,!1);case 11:return ye(e.type.render,!1);case 1:return ye(e.type,!0);case 31:return _e(`Activity`);default:return``}}function xe(e){try{var t=``,n=null;do t+=be(e,n),n=e,e=e.return;while(e);return t}catch(e){return` +`+c[r].replace(` at new `,` at `);return e.displayName&&u.includes(``)&&(u=u.replace(``,e.displayName)),u}while(1<=r&&0<=i);break}}}finally{ge=!1,Error.prepareStackTrace=n}return(n=e?e.displayName||e.name:``)?he(n):``}function ve(e,t){switch(e.tag){case 26:case 27:case 5:return he(e.type);case 16:return he(`Lazy`);case 13:return e.child!==t&&t!==null?he(`Suspense Fallback`):he(`Suspense`);case 19:return he(`SuspenseList`);case 0:case 15:return _e(e.type,!1);case 11:return _e(e.type.render,!1);case 1:return _e(e.type,!0);case 31:return he(`Activity`);default:return``}}function ye(e){try{var t=``,n=null;do t+=ve(e,n),n=e,e=e.return;while(e);return t}catch(e){return` Error generating stack: `+e.message+` -`+e.stack}}var Se=Object.prototype.hasOwnProperty,Ce=t.unstable_scheduleCallback,we=t.unstable_cancelCallback,Te=t.unstable_shouldYield,Ee=t.unstable_requestPaint,De=t.unstable_now,Oe=t.unstable_getCurrentPriorityLevel,ke=t.unstable_ImmediatePriority,Ae=t.unstable_UserBlockingPriority,je=t.unstable_NormalPriority,Me=t.unstable_LowPriority,Ne=t.unstable_IdlePriority,I=t.log,Pe=t.unstable_setDisableYieldValue,Fe=null,Ie=null;function Le(e){if(typeof I==`function`&&Pe(e),Ie&&typeof Ie.setStrictMode==`function`)try{Ie.setStrictMode(Fe,e)}catch{}}var L=Math.clz32?Math.clz32:R,Re=Math.log,ze=Math.LN2;function R(e){return e>>>=0,e===0?32:31-(Re(e)/ze|0)|0}var z=256,B=262144,Be=4194304;function Ve(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function He(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Ve(n))):i=Ve(o):i=Ve(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Ve(n))):i=Ve(o)):i=Ve(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function Ue(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function We(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function Ge(){var e=Be;return Be<<=1,!(Be&62914560)&&(Be=4194304),e}function Ke(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function qe(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Je(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),an=!1;if(rn)try{var on={};Object.defineProperty(on,"passive",{get:function(){an=!0}}),window.addEventListener(`test`,on,on),window.removeEventListener(`test`,on,on)}catch{an=!1}var sn=null,cn=null,ln=null;function un(){if(ln)return ln;var e,t=cn,n=t.length,r,i=`value`in sn?sn.value:sn.textContent,a=i.length;for(e=0;e=Hn),Gn=` `,Kn=!1;function qn(e,t){switch(e){case`keyup`:return Bn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function Jn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Yn=!1;function Xn(e,t){switch(e){case`compositionend`:return Jn(t);case`keypress`:return t.which===32?(Kn=!0,Gn):null;case`textInput`:return e=t.data,e===Gn&&Kn?null:e;default:return null}}function Zn(e,t){if(Yn)return e===`compositionend`||!Vn&&qn(e,t)?(e=un(),ln=cn=sn=null,Yn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=yr(n)}}function xr(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?xr(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function Sr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=Mt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=Mt(e.document)}return t}function Cr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var wr=rn&&`documentMode`in document&&11>=document.documentMode,U=null,Tr=null,Er=null,Dr=!1;function Or(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Dr||U==null||U!==Mt(r)||(r=U,`selectionStart`in r&&Cr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Er&&vr(Er,r)||(Er=r,r=Dd(Tr,`onSelect`),0>=o,i-=o,_i=1<<32-L(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Ei&&yi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),Ei&&yi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Ei&&yi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),Ei&&yi(i,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===_&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case h:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===_){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===E&&ba(l)===r.type){n(e,r.sibling),c=i(r,o.props),Da(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===_?(c=ii(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ri(o.type,o.key,o.props,null,e.mode,c),Da(c,o),c.return=e,e=c)}return s(e);case g:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}t(e,r),r=r.sibling}c=si(o,e.mode,c),c.return=e,e=c}return s(e);case E:return o=ba(o),b(e,r,o,c)}if(re(o))return v(e,r,o,c);if(k(o)){if(l=k(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Ea(o),c);if(o.$$typeof===x)return b(e,r,Ji(e,o),c);Oa(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=ai(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{Ta=0;var i=b(e,t,n,r);return wa=null,i}catch(t){if(t===ma||t===ga)throw t;var a=$r(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var Aa=ka(!0),ja=ka(!1),Ma=!1;function Na(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Pa(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Fa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Ia(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Pl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Xr(e),Yr(e,null,n),t}return qr(e,r,t,n),Xr(e)}function La(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Xe(e,n)}}function Ra(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var za=!1;function Ba(){if(za){var e=aa;if(e!==null)throw e}}function Va(e,t,n,r){za=!1;var i=e.updateQueue;Ma=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,m=f!==s.lane;if(m?(Ll&f)===f:(r&f)===f){f!==0&&f===ia&&(za=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=p({},d,f);break a;case 2:Ma=!0}}f=s.callback,f!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[f]:m.push(f))}else m={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Gl|=o,e.lanes=o,e.memoizedState=d}}function Ha(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function q(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=A.T,s={};A.T=s,Ds(e,!1,t,n);try{var c=i(),l=A.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Es(e,t,ca(c,r),pu(e)):Es(e,t,r,pu(e))}catch(n){Es(e,t,{then:function(){},status:`rejected`,reason:n},pu())}finally{j.p=a,o!==null&&s.types!==null&&(o.types=s.types),A.T=o}}function gs(){}function _s(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=vs(e).queue;hs(e,i,t,M,n===null?gs:function(){return ys(e),n(r)})}function vs(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:M,baseState:M,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Oo,lastRenderedState:M},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Oo,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function ys(e){var t=vs(e);t.next===null&&(t=e.alternate.memoizedState),Es(e,t.next.queue,{},pu())}function bs(){return qi($f)}function xs(){return Co().memoizedState}function Ss(){return Co().memoizedState}function Cs(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=pu();e=Fa(n);var r=Ia(t,e,n);r!==null&&(hu(r,t,n),La(r,t,n)),t={cache:ea()},e.payload=t;return}t=t.return}}function ws(e,t,n){var r=pu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Os(e)?ks(t,n):(n=K(e,t,n,r),n!==null&&(hu(n,e,r),As(n,t,r)))}function Ts(e,t,n){Es(e,t,n,pu())}function Es(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Os(e))ks(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,_r(s,o))return qr(e,t,i,0),Fl===null&&G(),!1}catch{}if(n=K(e,t,i,r),n!==null)return hu(n,e,r),As(n,t,r),!0}return!1}function Ds(e,t,n,r){if(r={lane:2,revertLane:fd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Os(e)){if(t)throw Error(a(479))}else t=K(e,n,r,2),t!==null&&hu(t,e,2)}function Os(e){var t=e.alternate;return e===Y||t!==null&&t===Y}function ks(e,t){oo=X=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function As(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Xe(e,n)}}var js={readContext:qi,use:Eo,useCallback:po,useContext:po,useEffect:po,useImperativeHandle:po,useLayoutEffect:po,useInsertionEffect:po,useMemo:po,useReducer:po,useRef:po,useState:po,useDebugValue:po,useDeferredValue:po,useTransition:po,useSyncExternalStore:po,useId:po,useHostTransitionStatus:po,useFormState:po,useActionState:po,useOptimistic:po,useMemoCache:po,useCacheRefresh:po};js.useEffectEvent=po;var Ms={readContext:qi,use:Eo,useCallback:function(e,t){return So().memoizedState=[e,t===void 0?null:t],e},useContext:qi,useEffect:ns,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),es(4194308,4,cs.bind(null,t,e),n)},useLayoutEffect:function(e,t){return es(4194308,4,e,t)},useInsertionEffect:function(e,t){es(4,2,e,t)},useMemo:function(e,t){var n=So();t=t===void 0?null:t;var r=e();if(so){Le(!0);try{e()}finally{Le(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=So();if(n!==void 0){var i=n(t);if(so){Le(!0);try{n(t)}finally{Le(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=ws.bind(null,Y,e),[r.memoizedState,e]},useRef:function(e){var t=So();return e={current:e},t.memoizedState=e},useState:function(e){e=Ro(e);var t=e.queue,n=Ts.bind(null,Y,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:us,useDeferredValue:function(e,t){return ps(So(),e,t)},useTransition:function(){var e=Ro(!1);return e=hs.bind(null,Y,e.queue,!0,!1),So().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=Y,i=So();if(Ei){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),Fl===null)throw Error(a(349));Ll&127||No(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,ns(Fo.bind(null,r,o,e),[e]),r.flags|=2048,Qo(9,{destroy:void 0},Po.bind(null,r,o,n,t),null),n},useId:function(){var e=So(),t=Fl.identifierPrefix;if(Ei){var n=vi,r=_i;n=(r&~(1<<32-L(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=co++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[rt]=t,o[V]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Id(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Ec(t)}}return jc(t),Dc(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Ec(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=ue.current,Ni(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=wi,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[rt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Nd(e.nodeValue,n)),e||Ai(t,!0)}else e=Vd(e).createTextNode(r),e[rt]=t,t.stateNode=e}return jc(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Ni(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[rt]=t}else Pi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;jc(t),e=!1}else n=Fi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?($a(t),t):($a(t),null);if(t.flags&128)throw Error(a(558))}return jc(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Ni(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[rt]=t}else Pi(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;jc(t),i=!1}else i=Fi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?($a(t),t):($a(t),null)}return $a(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),kc(t,t.updateQueue),jc(t),null);case 4:return me(),e===null&&Cd(t.stateNode.containerInfo),jc(t),null;case 10:return Vi(t.type),jc(t),null;case 19:if(se(eo),r=t.memoizedState,r===null)return jc(t),null;if(i=!!(t.flags&128),o=r.rendering,o===null)if(i)Ac(r,!1);else{if(Wl!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=to(e),o!==null){for(t.flags|=128,Ac(r,!1),e=o.updateQueue,t.updateQueue=e,kc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ni(n,e),n=n.sibling;return N(eo,eo.current&1|2),Ei&&yi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&De()>tu&&(t.flags|=128,i=!0,Ac(r,!1),t.lanes=4194304)}else{if(!i)if(e=to(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,kc(t,e),Ac(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Ei)return jc(t),null}else 2*De()-r.renderingStartTime>tu&&n!==536870912&&(t.flags|=128,i=!0,Ac(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(jc(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=De(),e.sibling=null,n=eo.current,N(eo,i?n&1|2:n&1),Ei&&yi(t,r.treeForkCount),e);case 22:case 23:return $a(t),Ka(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(jc(t),t.subtreeFlags&6&&(t.flags|=8192)):jc(t),n=t.updateQueue,n!==null&&kc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&se(ua),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Vi($i),jc(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function Nc(e,t){switch(Si(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Vi($i),me(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return P(t),null;case 31:if(t.memoizedState!==null){if($a(t),t.alternate===null)throw Error(a(340));Pi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if($a(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Pi()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return se(eo),null;case 4:return me(),null;case 10:return Vi(t.type),null;case 22:case 23:return $a(t),Ka(),e!==null&&se(ua),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Vi($i),null;case 25:return null;default:return null}}function Pc(e,t){switch(Si(t),t.tag){case 3:Vi($i),me();break;case 26:case 27:case 5:P(t);break;case 4:me();break;case 31:t.memoizedState!==null&&$a(t);break;case 13:$a(t);break;case 19:se(eo);break;case 10:Vi(t.type);break;case 22:case 23:$a(t),Ka(),e!==null&&se(ua);break;case 24:Vi($i)}}function Fc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Gu(t,t.return,e)}}function Ic(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Gu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Gu(t,t.return,e)}}function Lc(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{q(t,n)}catch(t){Gu(e,e.return,t)}}}function Rc(e,t,n){n.props=zs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Gu(e,t,n)}}function zc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Gu(e,t,n)}}function Bc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Gu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Gu(e,t,n)}else n.current=null}function Vc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Gu(e,e.return,t)}}function Hc(e,t,n){try{var r=e.stateNode;Ld(r,e.type,n,t),r[V]=t}catch(t){Gu(e,e.return,t)}}function Uc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Qd(e.type)||e.tag===4}function Wc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Uc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Qd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Gc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=Jt));else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Gc(e,t,n),e=e.sibling;e!==null;)Gc(e,t,n),e=e.sibling}function Kc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Kc(e,t,n),e=e.sibling;e!==null;)Kc(e,t,n),e=e.sibling}function qc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Id(t,r,n),t[rt]=e,t[V]=n}catch(t){Gu(e,e.return,t)}}var Jc=!1,Yc=!1,Xc=!1,Zc=typeof WeakSet==`function`?WeakSet:Set,Qc=null;function $c(e,t){if(e=e.containerInfo,Q=cp,e=Sr(e),Cr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Bd={focusedElem:e,selectionRange:n},cp=!1,Qc=t;Qc!==null;)if(t=Qc,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,Qc=e;else for(;Qc!==null;){switch(t=Qc,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Id(o,r,n),o[rt]=e,ht(o),r=o;break a;case`link`:var s=Hf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=br(s,h),v=br(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,A.T=null,n=lu,lu=null;var o=au,s=su;if(iu=0,ou=au=null,su=0,Pl&6)throw Error(a(331));var c=Pl;if(Pl|=4,kl(o.current),xl(o,o.current,s,n),Pl=c,ad(0,!1),Ie&&typeof Ie.onPostCommitFiberRoot==`function`)try{Ie.onPostCommitFiberRoot(Fe,o)}catch{}return!0}finally{j.p=i,A.T=r,Vu(e,t)}}function Wu(e,t,n){t=li(n,t),t=Gs(e.stateNode,t,2),e=Ia(e,t,2),e!==null&&(qe(e,2),id(e))}function Gu(e,t,n){if(e.tag===3)Wu(e,e,n);else for(;t!==null;){if(t.tag===3){Wu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(ru===null||!ru.has(r))){e=li(n,e),n=Ks(2),r=Ia(t,n,2),r!==null&&(qs(n,r,t,e),qe(r,2),id(r));break}}t=t.return}}function Ku(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Nl;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Hl=!0,i.add(n),e=qu.bind(null,e,t,n),t.then(e,e))}function qu(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Fl===e&&(Ll&n)===n&&(Wl===4||Wl===3&&(Ll&62914560)===Ll&&300>De()-$l?!(Pl&2)&&Su(e,0):ql|=n,Yl===Ll&&(Yl=0)),id(e)}function Ju(e,t){t===0&&(t=Ge()),e=Jr(e,t),e!==null&&(qe(e,t),id(e))}function Yu(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),Ju(e,n)}function Xu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),Ju(e,n)}function Zu(e,t){return Ce(e,t)}var Qu=null,$u=null,ed=!1,td=!1,nd=!1,rd=0;function id(e){e!==$u&&e.next===null&&($u===null?Qu=$u=e:$u=$u.next=e),td=!0,ed||(ed=!0,dd())}function ad(e,t){if(!nd&&td){nd=!0;do for(var n=!1,r=Qu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-L(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ud(r,a))}else a=Ll,a=He(r,r===Fl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||Ue(r,a)||(n=!0,ud(r,a));r=r.next}while(n);nd=!1}}function od(){sd()}function sd(){td=ed=!1;var e=0;rd!==0&&Kd()&&(e=rd);for(var t=De(),n=null,r=Qu;r!==null;){var i=r.next,a=cd(r,t);a===0?(r.next=null,n===null?Qu=i:n.next=i,i===null&&($u=n)):(n=r,(e!==0||a&3)&&(td=!0)),r=i}iu!==0&&iu!==5||ad(e,!1),rd!==0&&(rd=0)}function cd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Rd(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function Sf(e,t,n){var r=xf;if(r&&typeof t==`string`&&t){var i=Pt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),gf.has(i)||(gf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Id(t,`link`,e),ht(t),r.head.appendChild(t)))}}function Cf(e){vf.D(e),Sf(`dns-prefetch`,e,null)}function wf(e,t){vf.C(e,t),Sf(`preconnect`,e,t)}function Tf(e,t,n){vf.L(e,t,n);var r=xf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Pt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Pt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Pt(n.imageSizes)+`"]`)):i+=`[href="`+Pt(e)+`"]`;var a=i;switch(t){case`style`:a=jf(e);break;case`script`:a=Ff(e)}hf.has(a)||(e=p({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),hf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Mf(a))||t===`script`&&r.querySelector(If(a))||(t=r.createElement(`link`),Id(t,`link`,e),ht(t),r.head.appendChild(t)))}}function Ef(e,t){vf.m(e,t);var n=xf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Pt(r)+`"][href="`+Pt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Ff(e)}if(!hf.has(a)&&(e=p({rel:`modulepreload`,href:e},t),hf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(If(a)))return}r=n.createElement(`link`),Id(r,`link`,e),ht(r),n.head.appendChild(r)}}}function Df(e,t,n){vf.S(e,t,n);var r=xf;if(r&&e){var i=mt(r).hoistableStyles,a=jf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Mf(a)))s.loading=5;else{e=p({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=hf.get(a))&&zf(e,n);var c=o=r.createElement(`link`);ht(c),Id(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Rf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Of(e,t){vf.X(e,t);var n=xf;if(n&&e){var r=mt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=p({src:e,async:!0},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),ht(a),Id(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t){vf.M(e,t);var n=xf;if(n&&e){var r=mt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=p({src:e,async:!0,type:`module`},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),ht(a),Id(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Af(e,t,n,r){var i=(i=ue.current)?_f(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=jf(n.href),n=mt(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=jf(n.href);var o=mt(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(Mf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),hf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},hf.set(e,n),o||Pf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Ff(n),n=mt(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function jf(e){return`href="`+Pt(e)+`"`}function Mf(e){return`link[rel="stylesheet"][`+e+`]`}function Nf(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function Pf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Id(t,`link`,n),ht(t),e.head.appendChild(t))}function Ff(e){return`[src="`+Pt(e)+`"]`}function If(e){return`script[async]`+e}function Lf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Pt(n.href)+`"]`);if(r)return t.instance=r,ht(r),r;var i=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),ht(r),Id(r,`style`,i),Rf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=jf(n.href);var o=e.querySelector(Mf(i));if(o)return t.state.loading|=4,t.instance=o,ht(o),o;r=Nf(n),(i=hf.get(i))&&zf(r,i),o=(e.ownerDocument||e).createElement(`link`),ht(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Id(o,`link`,r),t.state.loading|=4,Rf(o,n.precedence,e),t.instance=o;case`script`:return o=Ff(n.src),(i=e.querySelector(If(o)))?(t.instance=i,ht(i),i):(r=n,(i=hf.get(o))&&(r=p({},n),Bf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),ht(i),Id(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Rf(r,n.precedence,e));return t.instance}function Rf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Wf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Gf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Kf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=jf(r.href),a=t.querySelector(Mf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Yf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,ht(a);return}a=t.ownerDocument||t,r=Nf(r),(i=hf.get(i))&&zf(r,i),a=a.createElement(`link`),ht(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Id(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Yf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var qf=0;function Jf(e,t){return e.stylesheets&&e.count===0&&Zf(e,e.stylesheets),0qf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Yf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Zf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Xf=null;function Zf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Xf=new Map,t.forEach(Qf,e),Xf=null,Yf.call(e))}function Qf(e,t){if(!(t.state.loading&4)){var n=Xf.get(e);if(n)var r=n.get(null);else{n=new Map,Xf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=io()}))(),1),X=i(),oo=(0,q.createContext)(void 0);function so(e,t){try{let t=localStorage.getItem(e);if(t===`light`||t===`dark`||t===`system`)return t}catch{}return t}function co(e){let t=(0,X.c)(14),{children:n,defaultTheme:r,storageKey:i}=e,a=r===void 0?`dark`:r,o=i===void 0?`ui-theme`:i,s;t[0]!==a||t[1]!==o?(s=()=>so(o,a),t[0]=a,t[1]=o,t[2]=s):s=t[2];let[c,l]=(0,q.useState)(s),u,d;t[3]===c?(u=t[4],d=t[5]):(u=()=>{let e=window.document.documentElement;if(e.classList.remove(`light`,`dark`),c===`system`){let t=window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`;e.classList.add(t);return}e.classList.add(c)},d=[c],t[3]=c,t[4]=u,t[5]=d),(0,q.useEffect)(u,d);let f;t[6]===o?f=t[7]:(f=e=>{try{localStorage.setItem(o,e)}catch{}l(e)},t[6]=o,t[7]=f);let p;t[8]!==f||t[9]!==c?(p={theme:c,setTheme:f},t[8]=f,t[9]=c,t[10]=p):p=t[10];let m=p,h;return t[11]!==n||t[12]!==m?(h=(0,J.jsx)(oo.Provider,{value:m,children:n}),t[11]=n,t[12]=m,t[13]=h):h=t[13],h}function lo(){let e=(0,q.useContext)(oo);if(e===void 0)throw Error(`useTheme must be used within a ThemeProvider`);return e}function uo(e){return Se(e.defaultTagName??`div`,e,e)}var fo=B(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),po=B(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),mo=B(`book-open`,[[`path`,{d:`M12 5v16`,key:`1f6ucr`}],[`path`,{d:`M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z`,key:`1fyvmf`}]]),ho=B(`boxes`,[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`,key:`lc1i9w`}],[`path`,{d:`m7 16.5-4.74-2.85`,key:`1o9zyk`}],[`path`,{d:`m7 16.5 5-3`,key:`va8pkn`}],[`path`,{d:`M7 16.5v5.17`,key:`jnp8gn`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`,key:`8zsnat`}],[`path`,{d:`m17 16.5-5-3`,key:`8arw3v`}],[`path`,{d:`m17 16.5 4.74-2.85`,key:`8rfmw`}],[`path`,{d:`M17 16.5v5.17`,key:`k6z78m`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`,key:`1xygjf`}],[`path`,{d:`M12 8 7.26 5.15`,key:`1vbdud`}],[`path`,{d:`m12 8 4.74-2.85`,key:`3rx089`}],[`path`,{d:`M12 13.5V8`,key:`1io7kd`}]]),go=B(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),_o=B(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),vo=B(`container`,[[`path`,{d:`M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z`,key:`1t2lqe`}],[`path`,{d:`M10 21.9V14L2.1 9.1`,key:`o7czzq`}],[`path`,{d:`m10 14 11.9-6.9`,key:`zm5e20`}],[`path`,{d:`M14 19.8v-8.1`,key:`159ecu`}],[`path`,{d:`M18 17.5V9.4`,key:`11uown`}]]),yo=B(`crosshair`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]]),bo=B(`file-stack`,[[`path`,{d:`M11 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1`,key:`likhh7`}],[`path`,{d:`M16 16a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1`,key:`17ky3x`}],[`path`,{d:`M21 6a2 2 0 0 0-.586-1.414l-2-2A2 2 0 0 0 17 2h-3a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1z`,key:`1hyeo0`}]]),xo=B(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),So=B(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),Co=B(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),wo=B(`id-card`,[[`path`,{d:`M16 10h2`,key:`8sgtl7`}],[`path`,{d:`M16 14h2`,key:`epxaof`}],[`path`,{d:`M6.17 15a3 3 0 0 1 5.66 0`,key:`n6f512`}],[`circle`,{cx:`9`,cy:`11`,r:`2`,key:`yxgjnd`}],[`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`2`,key:`qneu4z`}]]),To=B(`image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]),Eo=B(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),Do=B(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),Oo=B(`layout-grid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),ko=B(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),Ao=B(`map-pin`,[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]),jo=B(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),Mo=B(`network`,[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`4q2zg0`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`8cvhb9`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`,key:`1egb70`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`,key:`1jsf9p`}],[`path`,{d:`M12 12V8`,key:`2874zd`}]]),No=B(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),Po=B(`panel-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}]]),Fo=B(`route`,[[`circle`,{cx:`6`,cy:`19`,r:`3`,key:`1kj8tv`}],[`path`,{d:`M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15`,key:`1d8sl`}],[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}]]),Io=B(`router`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6.01 18H6`,key:`19vcac`}],[`path`,{d:`M10.01 18H10`,key:`uamcmx`}],[`path`,{d:`M15 10v4`,key:`qjz1xs`}],[`path`,{d:`M17.84 7.17a4 4 0 0 0-5.66 0`,key:`1rif40`}],[`path`,{d:`M20.66 4.34a8 8 0 0 0-11.31 0`,key:`6a5xfq`}]]),Lo=B(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Ro=B(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),zo=B(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),Bo=B(`square-terminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]),Vo=B(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),Ho=B(`user-cog`,[[`path`,{d:`M10 15H6a4 4 0 0 0-4 4v2`,key:`1nfge6`}],[`path`,{d:`m14.305 16.53.923-.382`,key:`1itpsq`}],[`path`,{d:`m15.228 13.852-.923-.383`,key:`eplpkm`}],[`path`,{d:`m16.852 12.228-.383-.923`,key:`13v3q0`}],[`path`,{d:`m16.852 17.772-.383.924`,key:`1i8mnm`}],[`path`,{d:`m19.148 12.228.383-.923`,key:`1q8j1v`}],[`path`,{d:`m19.53 18.696-.382-.924`,key:`vk1qj3`}],[`path`,{d:`m20.772 13.852.924-.383`,key:`n880s0`}],[`path`,{d:`m20.772 16.148.924.383`,key:`1g6xey`}],[`circle`,{cx:`18`,cy:`15`,r:`3`,key:`gjjjvw`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),Uo=B(`users-round`,[[`path`,{d:`M18 21a8 8 0 0 0-16 0`,key:`3ypg7q`}],[`circle`,{cx:`10`,cy:`8`,r:`5`,key:`o932ke`}],[`path`,{d:`M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3`,key:`10s06x`}]]),Wo=B(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),Go=B(`waypoints`,[[`path`,{d:`m10.586 5.414-5.172 5.172`,key:`4mc350`}],[`path`,{d:`m18.586 13.414-5.172 5.172`,key:`8c96vv`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`circle`,{cx:`12`,cy:`20`,r:`2`,key:`144qzu`}],[`circle`,{cx:`12`,cy:`4`,r:`2`,key:`muu5ef`}],[`circle`,{cx:`20`,cy:`12`,r:`2`,key:`1xzzfp`}],[`circle`,{cx:`4`,cy:`12`,r:`2`,key:`1hvhnz`}]]),Ko=B(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),qo=q.forwardRef(function(e,t){let{render:n,className:r,id:i,name:a,value:o,disabled:s=!1,onValueChange:c,defaultValue:l,autoFocus:u=!1,style:d,...f}=e,{state:p,name:m,disabled:h,setTouched:g,setDirty:_,validityData:v,setFocused:y,setFilled:b,validationMode:x,validation:S}=dt(),{clearErrors:C}=ct(),w=h||s,T=m??a,E={...p,disabled:w},{labelId:D}=lt(),O=ft({id:i});V(()=>{let e=o!=null;S.inputRef.current?.value||e&&o!==``?b(!0):e&&o===``&&b(!1)},[S.inputRef,b,o]);let ee=q.useRef(null);V(()=>{u&&ee.current===Tt(Et(ee.current))&&y(!0)},[u,y]);let[k]=On({controlled:o,default:l,name:`FieldControl`,state:`value`}),te=o!==void 0,ne=te?k:void 0,re=at(()=>S.inputRef.current?.value);return ut(S.inputRef,O,ne,re,!w,a),Se(`input`,e,{ref:[t,ee],state:E,props:[{id:O,disabled:w,name:T,ref:S.inputRef,"aria-labelledby":D,autoFocus:u,...te?{value:ne}:{defaultValue:l},onChange(e){let t=e.currentTarget.value;c?.(t,wt(_t,e.nativeEvent)),_(t!==v.initialValue),b(t!==``),e.nativeEvent.defaultPrevented||(C(T),S.change(t))},onFocus(){y(!0)},onBlur(e){g(!0),y(!1),x===`onBlur`&&S.commit(e.currentTarget.value)},onKeyDown(e){e.currentTarget.tagName===`INPUT`&&e.key===`Enter`&&(g(!0),S.commit(e.currentTarget.value))}},f,e=>S.getValidationProps(w,e)],stateAttributesMapping:pt})}),Jo=q.forwardRef(function(e,t){return(0,J.jsx)(qo,{ref:t,...e})});function Yo(e){let t=(0,X.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,type:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]===n?a=t[5]:(a=L(`h-7 w-full min-w-0 rounded-md border border-input bg-input/20 px-2 py-0.5 text-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-xs/relaxed file:font-medium file:text-foreground placeholder:text-muted-foreground autofill:[-webkit-text-fill-color:var(--color-foreground)] autofill:[transition:background-color_9999s_ease-in-out_0s] focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 md:text-xs/relaxed dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,n),t[4]=n,t[5]=a);let o;return t[6]!==r||t[7]!==a||t[8]!==i?(o=(0,J.jsx)(Jo,{className:a,"data-slot":`input`,type:i,...r}),t[6]=r,t[7]=a,t[8]=i,t[9]=o):o=t[9],o}function Xo(e){let t=(0,X.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,orientation:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i===void 0?`horizontal`:i,o;t[4]===n?o=t[5]:(o=L(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch`,n),t[4]=n,t[5]=o);let s;return t[6]!==a||t[7]!==r||t[8]!==o?(s=(0,J.jsx)(mt,{className:o,"data-slot":`separator`,orientation:a,...r}),t[6]=a,t[7]=r,t[8]=o,t[9]=s):s=t[9],s}var Zo=q.createContext(!1),Qo=q.createContext(void 0);function $o(e){let t=q.useContext(Qo);if(e===!1&&t===void 0)throw Error(Te(27));return t}var es={...$t,...En},ts=q.forwardRef(function(e,t){let{render:n,className:r,style:i,forceRender:a=!1,...o}=e,{store:s}=$o(),c=s.useState(`open`),l=s.useState(`nested`),u=s.useState(`mounted`),d={open:c,transitionStatus:s.useState(`transitionStatus`)};return Se(`div`,e,{state:d,ref:[s.context.backdropRef,t],stateAttributesMapping:es,props:[{role:`presentation`,hidden:!u,style:{userSelect:`none`,WebkitUserSelect:`none`}},o],enabled:a||!l})}),ns=q.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,...s}=e,{store:c}=$o(),l=c.useState(`open`),{getButtonProps:u,buttonRef:d}=it({disabled:a,native:o}),f={disabled:a};function p(e){l&&c.setOpen(!1,wt(St,e.nativeEvent))}return Se(`button`,e,{state:f,ref:[t,d],props:[{onClick:p},s,u]})}),rs=q.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,{store:s}=$o(),c=ht(a);return s.useSyncedValueWithCleanup(`descriptionElementId`,c),Se(`p`,e,{ref:t,props:[{id:c},o]})});function is(e,t){return t!=null&&!Qt(t)?0:typeof e==`function`?e():e}function as(e,t,n){let r=is(e,n);return typeof r==`number`?r:r?.[t]}function os(e){return typeof e==`function`?e():e}function ss(e,t){return t||e===`click`||e===`mousedown`}function cs(e){return e?.includes(`mouse`)&&e!==`mousedown`}var ls=q.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new un,currentIdRef:{current:null},currentContextRef:{current:null}});function us(e,t){e.current=t.current}function ds(e){let{children:t,delay:n,timeoutMs:r=0}=e,i=q.useRef(n),a=q.useRef(n),o=q.useRef(null),s=q.useRef(null),c=tn();return V(()=>{if(a.current=n,!o.current){i.current=n;return}i.current={open:as(i.current,`open`),close:as(n,`close`)}},[n,o,i,a]),(0,J.jsx)(ls.Provider,{value:q.useMemo(()=>({hasProvider:!0,delayRef:i,initialDelayRef:a,currentIdRef:o,timeoutMs:r,currentContextRef:s,timeout:c}),[r,c]),children:t})}function fs(e,t={open:!1}){let{open:n}=t,r=`rootStore`in e?e.rootStore:e,i=r.useState(`floatingId`),{currentIdRef:a,delayRef:o,timeoutMs:s,initialDelayRef:c,currentContextRef:l,hasProvider:u,timeout:d}=q.useContext(ls),[f,p]=q.useState(!1),m=q.useRef(n),h=q.useRef(!1);return V(()=>{m.current=n},[n]),V(()=>()=>{h.current=!0},[]),V(()=>{function e(){h.current||p(!1),l.current?.setIsInstantPhase(!1),a.current=null,l.current=null,o.current=c.current,d.clear()}if(a.current&&!n&&a.current===i){if(p(!1),s){let t=i;return d.start(s,()=>{r.select(`open`)||a.current&&a.current!==t||e()}),()=>{(m.current||a.current!==t)&&d.clear()}}e()}},[n,i,a,o,s,c,l,d,r]),V(()=>{if(!n)return;let e=l.current,t=a.current;d.clear(),l.current={onOpenChange:r.setOpen,setIsInstantPhase:p},a.current=i,o.current={open:0,close:as(c.current,`close`)},t!==null&&t!==i?(p(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1,wt(_t))):(p(!1),e?.setIsInstantPhase(!1))},[n,i,r,a,o,c,l,d]),V(()=>()=>{if(a.current===i){if(l.current=null,!m.current)return;a.current=null,us(o,c),d.clear()}},[l,a,o,i,c,d]),q.useMemo(()=>({hasProvider:u,delayRef:o,isInstantPhase:f}),[u,o,f])}function ps(e,t){let n=null,r=null,i=!1;return{contextElement:e||void 0,getBoundingClientRect(){let a=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},o=t.axis===`x`||t.axis===`both`,s=t.axis===`y`||t.axis===`both`,c=[`mouseenter`,`mousemove`].includes(t.dataRef.current.openEvent?.type||``)&&t.pointerType!==`touch`,l=a.width,u=a.height,d=a.x,f=a.y;return n==null&&t.x&&o&&(n=a.x-t.x),r==null&&t.y&&s&&(r=a.y-t.y),d-=n||0,f-=r||0,l=0,u=0,!i||c?(l=t.axis===`y`?a.width:0,u=t.axis===`x`?a.height:0,d=o&&t.x!=null?t.x:d,f=s&&t.y!=null?t.y:f):i&&!c&&(u=t.axis===`x`?a.height:u,l=t.axis===`y`?a.width:l),i=!0,{width:l,height:u,x:d,y:f,top:f,right:d+l,bottom:f+u,left:d}}}}function ms(e){return e!=null&&e.clientX!=null}function hs(e,t={}){let{enabled:n=!0,axis:r=`both`}=t,i=`rootStore`in e?e.rootStore:e,a=i.useState(`open`),o=i.useState(`floatingElement`),s=i.useState(`domReferenceElement`),c=i.context.dataRef,l=q.useRef(!1),u=q.useRef(null),[d,f]=q.useState(),[p,m]=q.useState([]),h=at(e=>{i.set(`positionReference`,e)}),g=at((e,t,n)=>{l.current||c.current.openEvent&&!ms(c.current.openEvent)||i.set(`positionReference`,ps(n??s,{x:e,y:t,axis:r,dataRef:c,pointerType:d}))}),_=at(e=>{a?u.current||(g(e.clientX,e.clientY,e.currentTarget),m([])):g(e.clientX,e.clientY,e.currentTarget)}),v=Qt(d)?o:a;q.useEffect(()=>{if(!n){h(s);return}if(!v)return;function e(){u.current?.(),u.current=null}let t=tt(o);function r(t){let n=gt(t);Dt(o,n)?e():g(t.clientX,t.clientY)}return!c.current.openEvent||ms(c.current.openEvent)?u.current=Cn(t,`mousemove`,r):h(s),e},[v,n,o,c,s,i,g,h,p]),q.useEffect(()=>()=>{i.set(`positionReference`,null)},[i]),q.useEffect(()=>{n&&!o&&(l.current=!1)},[n,o]),q.useEffect(()=>{!n&&a&&(l.current=!0)},[n,a]);let y=q.useMemo(()=>{function e(e){f(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:_,onMouseEnter:_}},[_]);return q.useMemo(()=>n?{reference:y,trigger:y}:{},[n,y])}function gs(){return new kt({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new fn,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function _s(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:gs(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:ve,inactiveTriggerProps:ve,popupProps:ve}}function vs(e,t,n=!1){return new kt({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:e,floatingId:t,syncOnly:!0,nested:n,onOpenChange:void 0})}var ys=H(e=>e.triggerIdProp??e.activeTriggerId),bs=H(e=>e.openProp??e.open),xs=H(e=>(e.popupElement?.id??e.floatingId)||void 0);function Ss(e,t){return t!==void 0&&bs(e)&&ys(e)===t}function Cs(e,t){return Ss(e,t)?!0:t!==void 0&&bs(e)&&ys(e)==null&&e.triggerCount===1}var ws={open:bs,mounted:H(e=>e.mounted),transitionStatus:H(e=>e.transitionStatus),floatingRootContext:H(e=>e.floatingRootContext),triggerCount:H(e=>e.triggerCount),preventUnmountingOnClose:H(e=>e.preventUnmountingOnClose),payload:H(e=>e.payload),activeTriggerId:ys,activeTriggerElement:H(e=>e.mounted?e.activeTriggerElement:null),popupId:xs,isTriggerActive:H((e,t)=>t!==void 0&&ys(e)===t),isOpenedByTrigger:H((e,t)=>Ss(e,t)),isMountedByTrigger:H((e,t)=>t!==void 0&&ys(e)===t&&e.mounted),triggerProps:H((e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps),triggerPopupId:H((e,t)=>Cs(e,t)?xs(e):void 0),popupProps:H(e=>e.popupProps),popupElement:H(e=>e.popupElement),positionerElement:H(e=>e.positionerElement)},Ts=an&&Nt;function Es(e,t={}){let{enabled:n=!0,delay:r}=t,i=`rootStore`in e?e.rootStore:e,{events:a,dataRef:o}=i.context,s=q.useRef(!1),c=q.useRef(null),l=q.useRef(!0),u=tn();q.useEffect(()=>{let e=i.select(`domReferenceElement`);if(!n)return;let t=tt(e);function r(){let e=i.select(`domReferenceElement`);!i.select(`open`)&&nt(e)&&e===Tt(Et(e))&&(s.current=!0)}function a(){l.current=!0}function o(){l.current=!1}return Jt(Cn(t,`blur`,r),Ts&&Cn(t,`keydown`,a,!0),Ts&&Cn(t,`pointerdown`,o,!0))},[i,n]),q.useEffect(()=>{if(!n)return;function e(e){if(e.reason===`trigger-press`||e.reason===`escape-key`){let e=i.select(`domReferenceElement`);st(e)&&(c.current=e,s.current=!0)}}return a.on(`openchange`,e),()=>{a.off(`openchange`,e)}},[a,n,i]);let d=q.useMemo(()=>{function e(){s.current=!1,c.current=null}return{onMouseLeave(){e()},onFocus(t){let n=t.currentTarget;if(s.current){if(c.current===n)return;e()}let a=gt(t.nativeEvent);if(st(a)){if(Ts&&!t.relatedTarget){if(!l.current&&!Zt(a))return}else if(!gn(a))return}let o=pn(t.relatedTarget,i.context.triggerElements),{nativeEvent:d,currentTarget:f}=t,p=typeof r==`function`?r():r;if(i.select(`open`)&&o||p===0||p===void 0){i.setOpen(!0,wt(xt,d,f));return}u.start(p,()=>{s.current||i.setOpen(!0,wt(xt,d,f))})},onBlur(t){e();let n=t.relatedTarget,r=t.nativeEvent,a=st(n)&&n.hasAttribute(Lt(`focus-guard`))&&n.getAttribute(`data-type`)===`outside`;u.start(0,()=>{let e=i.select(`domReferenceElement`),t=Tt(Et(e));!n&&t===e||Dt(o.current.floatingContext?.refs.floating.current,t)||Dt(e,t)||a||pn(n??t,i.context.triggerElements)||i.setOpen(!1,wt(xt,r))})}}},[o,r,i,u]);return q.useMemo(()=>n?{reference:d,trigger:d}:{},[n,d])}var Ds=class e{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new un,this.restTimeout=new un,this.handleCloseOptions=void 0}static create(){return new e}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose},Os=new WeakMap;function ks(e){if(!e.performedPointerEventsMutation)return;let t=e.pointerEventsScopeElement;t&&Os.get(t)===e&&(e.pointerEventsScopeElement?.style.removeProperty(`pointer-events`),e.pointerEventsReferenceElement?.style.removeProperty(`pointer-events`),e.pointerEventsFloatingElement?.style.removeProperty(`pointer-events`),Os.delete(t)),e.performedPointerEventsMutation=!1,e.pointerEventsScopeElement=null,e.pointerEventsReferenceElement=null,e.pointerEventsFloatingElement=null}function As(e,t){let{scopeElement:n,referenceElement:r,floatingElement:i}=t,a=Os.get(n);a&&a!==e&&ks(a),ks(e),e.performedPointerEventsMutation=!0,e.pointerEventsScopeElement=n,e.pointerEventsReferenceElement=r,e.pointerEventsFloatingElement=i,Os.set(n,e),n.style.pointerEvents=`none`,r.style.pointerEvents=`auto`,i.style.pointerEvents=`auto`}function js(e){let t=e.context.dataRef.current,n=xe(()=>t.hoverInteractionState??Ds.create()).current;return t.hoverInteractionState||=n,bn(t.hoverInteractionState.disposeEffect),t.hoverInteractionState}function Ms(e,t={}){let{enabled:n=!0,closeDelay:r=0,nodeId:i}=t,a=`rootStore`in e?e.rootStore:e,o=a.useState(`open`),s=a.useState(`floatingElement`),c=a.useState(`domReferenceElement`),{dataRef:l}=a.context,u=qt(),d=At(),f=js(a),p=tn(),m=at(()=>ss(l.current.openEvent?.type,f.interactedInside)),h=at(()=>cs(l.current.openEvent?.type)),g=at(()=>{ks(f)});V(()=>{o||(f.pointerType=void 0,f.restTimeoutPending=!1,f.interactedInside=!1,g())},[o,f,g]),q.useEffect(()=>g,[g]),V(()=>{if(n&&o&&f.handleCloseOptions?.blockPointerEvents&&h()&&st(c)&&s){let e=c,t=s,n=Et(s),r=u?.nodesRef.current.find(e=>e.id===d)?.context?.elements.floating;r&&(r.style.pointerEvents=``);let i=f.pointerEventsScopeElement===t?null:f.pointerEventsScopeElement,a=r===t?null:r,o=f.handleCloseOptions?.getScope?.()??i??a??e.closest(`[data-rootownerid]`)??n.body;return As(f,{scopeElement:o,referenceElement:e,floatingElement:t}),()=>{g()}}},[n,o,c,s,f,h,u,d,g]),q.useEffect(()=>{if(!n)return;function e(){return!!(u&&d&&en(u.nodesRef.current,d).length>0)}function t(e){let t=as(r,`close`,f.pointerType),n=()=>{a.setOpen(!1,wt(yt,e)),u?.events.emit(`floating.closed`,e)};t?f.openChangeTimeout.start(t,n):(f.openChangeTimeout.clear(),n())}function o(e){let t=gt(e);if(!Yt(t)){f.interactedInside=!1;return}f.interactedInside=t?.closest(`[aria-haspopup]`)!=null}function c(){f.openChangeTimeout.clear(),p.clear(),u?.events.off(`floating.closed`,v),g()}function _(n){if(e()&&u){u.events.on(`floating.closed`,v);return}if(pn(n.relatedTarget,a.context.triggerElements))return;let r=l.current.floatingContext?.nodeId??i,o=n.relatedTarget;if(!(u&&r&&st(o)&&en(u.nodesRef.current,r,!1).some(e=>Dt(e.context?.elements.floating,o)))){if(f.handler){f.handler(n);return}g(),h()&&!m()&&t(n)}}function v(t){!u||!d||e()||p.start(0,()=>{u.events.off(`floating.closed`,v),a.setOpen(!1,wt(yt,t)),u.events.emit(`floating.closed`,t)})}let y=s;return Jt(y&&Cn(y,`mouseenter`,c),y&&Cn(y,`mouseleave`,_),y&&Cn(y,`pointerdown`,o,!0),()=>{u?.events.off(`floating.closed`,v)})},[n,s,a,l,r,i,h,m,g,f,u,d,p])}var Ns=n(fe(),1),Ps={current:null};function Fs(e,t={}){let{enabled:n=!0,delay:r=0,handleClose:i=null,mouseOnly:a=!1,restMs:o=0,move:s=!0,triggerElementRef:c=Ps,externalTree:l,isActiveTrigger:u=!0,getHandleCloseContext:d,isClosing:f,shouldOpen:p}=t,m=`rootStore`in e?e.rootStore:e,{dataRef:h,events:g}=m.context,_=qt(l),v=js(m),y=q.useRef(!1),b=Dn(i),x=Dn(r),S=Dn(o),C=Dn(n),w=Dn(p),T=Dn(f),E=at(()=>ss(h.current.openEvent?.type,v.interactedInside)),D=at(()=>w.current?.()!==!1),O=at((e,t,n)=>{let r=m.context.triggerElements;if(r.hasElement(t))return!e||!Dt(e,t);if(!st(n))return!1;let i=n;return r.hasMatchingElement(e=>Dt(e,i))&&(!e||!Dt(e,i))}),ee=at(()=>{v.handler&&=(Et(m.select(`domReferenceElement`)).removeEventListener(`mousemove`,v.handler),void 0)}),k=at(()=>{ks(v)});return u&&(v.handleCloseOptions=b.current?.__options),q.useEffect(()=>ee,[ee]),q.useEffect(()=>{if(!n)return;function e(e){e.open?y.current=!1:(y.current=e.reason===yt,ee(),v.openChangeTimeout.clear(),v.restTimeout.clear(),v.blockMouseMove=!0,v.restTimeoutPending=!1)}return g.on(`openchange`,e),()=>{g.off(`openchange`,e)}},[n,g,v,ee]),q.useEffect(()=>{if(!n)return;function e(e,t=!0){let n=as(x.current,`close`,v.pointerType);n?v.openChangeTimeout.start(n,()=>{m.setOpen(!1,wt(yt,e)),_?.events.emit(`floating.closed`,e)}):t&&(v.openChangeTimeout.clear(),m.setOpen(!1,wt(yt,e)),_?.events.emit(`floating.closed`,e))}let t=c.current??(u?m.select(`domReferenceElement`):null);if(!st(t))return;function r(e){if(v.openChangeTimeout.clear(),v.blockMouseMove=!1,a&&!Qt(v.pointerType))return;let t=os(S.current),n=as(x.current,`open`,v.pointerType),r=gt(e),i=e.currentTarget??null,o=m.select(`domReferenceElement`),s=i;if(st(r)&&!m.context.triggerElements.hasElement(r)){for(let e of m.context.triggerElements.elements())if(Dt(e,r)){s=e;break}}st(i)&&st(o)&&!m.context.triggerElements.hasElement(i)&&Dt(i,o)&&(s=o);let c=s!=null&&O(o,s,r),l=m.select(`open`),u=T.current?.()??m.select(`transitionStatus`)===`ending`,d=!l&&u&&y.current,f=!c&&st(s)&&st(o)&&Dt(o,s)&&d,p=t>0&&!n,h=c&&(l||d)||f,g=!l||c;if(h){D()&&m.setOpen(!0,wt(yt,e,s));return}p||(n?v.openChangeTimeout.start(n,()=>{g&&D()&&m.setOpen(!0,wt(yt,e,s))}):g&&D()&&m.setOpen(!0,wt(yt,e,s)))}function i(t){if(E()){k();return}ee();let n=m.select(`domReferenceElement`),r=Et(n);v.restTimeout.clear(),v.restTimeoutPending=!1;let i=h.current.floatingContext??d?.();if(!pn(t.relatedTarget,m.context.triggerElements)){if(b.current&&i){m.select(`open`)||v.openChangeTimeout.clear();let n=c.current;v.handler=b.current({...i,tree:_,x:t.clientX,y:t.clientY,onClose(){k(),ee(),C.current&&!E()&&n===m.select(`domReferenceElement`)&&e(t,!0)}}),r.addEventListener(`mousemove`,v.handler),v.handler(t);return}(v.pointerType!==`touch`||!Dt(m.select(`floatingElement`),t.relatedTarget))&&e(t)}}return s?Jt(Cn(t,`mousemove`,r,{once:!0}),Cn(t,`mouseenter`,r),Cn(t,`mouseleave`,i)):Jt(Cn(t,`mouseenter`,r),Cn(t,`mouseleave`,i))},[ee,k,h,x,m,n,b,v,u,O,E,a,s,S,c,_,C,d,T,D]),q.useMemo(()=>{if(!n)return;function e(e){v.pointerType=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e,n=e.currentTarget,r=m.select(`domReferenceElement`),i=m.select(`open`),o=O(r,n,e.target);if(a&&!Qt(v.pointerType))return;if(i&&o&&v.handleCloseOptions?.blockPointerEvents){let e=m.select(`floatingElement`);if(e){let t=v.handleCloseOptions?.getScope?.()??n.ownerDocument.body;As(v,{scopeElement:t,referenceElement:n,floatingElement:e})}}let s=os(S.current);if(i&&!o||s===0||!o&&v.restTimeoutPending&&e.movementX**2+e.movementY**2<2)return;v.restTimeout.clear();function c(){if(v.restTimeoutPending=!1,E())return;let e=m.select(`open`);!v.blockMouseMove&&(!e||o)&&D()&&m.setOpen(!0,wt(yt,t,n))}v.pointerType===`touch`?Ns.flushSync(()=>{c()}):o&&i?c():(v.restTimeoutPending=!0,v.restTimeout.start(s,c))}}},[n,v,E,O,a,m,S,D])}var Is=.1,Ls=Is*Is,Rs=.5;function zs(e,t,n,r,i,a){return r>=t!=a>=t&&e<=(i-n)*(t-r)/(a-r)+n}function Bs(e,t,n,r,i,a,o,s,c,l){let u=!1;return zs(e,t,n,r,i,a)&&(u=!u),zs(e,t,i,a,o,s)&&(u=!u),zs(e,t,o,s,c,l)&&(u=!u),zs(e,t,c,l,n,r)&&(u=!u),u}function Vs(e,t,n){return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height}function Hs(e,t,n,r,i,a){return e>=Math.min(n,i)&&e<=Math.max(n,i)&&t>=Math.min(r,a)&&t<=Math.max(r,a)}function Us(e={}){let{blockPointerEvents:t=!1}=e,n=new un,r=({x:e,y:t,placement:r,elements:i,onClose:a,nodeId:o,tree:s})=>{let c=r?.split(`-`)[0],l=!1,u=null,d=null,f=typeof performance<`u`?performance.now():0;function p(e,t){let n=performance.now(),r=n-f;if(u===null||d===null||r===0)return u=e,d=t,f=n,!1;let i=e-u,a=t-d,o=i*i+a*a,s=r*r*Ls;return u=e,d=t,f=n,o0)}function b(){y()||m()}if(y())return;let x=a.getBoundingClientRect(),S=u.getBoundingClientRect(),C=e>S.right-S.width/2,w=t>S.bottom-S.height/2,T=S.width>x.width,E=S.height>x.height,D=(T?x:S).left,O=(T?x:S).right,ee=(E?x:S).top,k=(E?x:S).bottom;if(c===`top`&&t>=x.bottom-1||c===`bottom`&&t<=x.top+1||c===`left`&&e>=x.right-1||c===`right`&&e<=x.left+1){b();return}let te=!1;switch(c){case`top`:te=Hs(d,f,D,x.top+1,O,S.bottom-1);break;case`bottom`:te=Hs(d,f,D,S.top+1,O,x.bottom-1);break;case`left`:te=Hs(d,f,S.right-1,k,x.left+1,ee);break;case`right`:te=Hs(d,f,x.right-1,k,S.left+1,ee)}if(te)return;if(l&&!Vs(d,f,x)){b();return}if(!g&&p(d,f)){b();return}let ne=!1;switch(c){case`top`:{let n=T?Rs/2:Rs*4,r=T||C?e+n:e-n,i=T?e-n:C?e+n:e-n,a=t+Rs+1,o=C||T?S.bottom-Rs:S.top,s=C?T?S.bottom-Rs:S.top:S.bottom-Rs;ne=Bs(d,f,r,a,i,a,S.left,o,S.right,s);break}case`bottom`:{let n=T?Rs/2:Rs*4,r=T||C?e+n:e-n,i=T?e-n:C?e+n:e-n,a=t-Rs,o=C||T?S.top+Rs:S.bottom,s=C?T?S.top+Rs:S.bottom:S.top+Rs;ne=Bs(d,f,r,a,i,a,S.left,o,S.right,s);break}case`left`:{let n=E?Rs/2:Rs*4,r=E||w?t+n:t-n,i=E?t-n:w?t+n:t-n,a=e+Rs+1,o=w||E?S.right-Rs:S.left,s=w?E?S.right-Rs:S.left:S.right-Rs;ne=Bs(d,f,o,S.top,s,S.bottom,a,r,a,i);break}case`right`:{let n=E?Rs/2:Rs*4,r=E||w?t+n:t-n,i=E?t-n:w?t+n:t-n,a=e-Rs,o=w||E?S.left+Rs:S.right,s=w?E?S.left+Rs:S.right:S.left+Rs;ne=Bs(d,f,a,r,a,i,o,S.top,s,S.bottom);break}}ne?l||n.start(40,b):b()}};return r.__options={...e,blockPointerEvents:t},r}var Ws=function(e){return e.nestedDialogs=`--nested-dialogs`,e}({}),Gs=function(e){return e[e.open=Ht.open]=`open`,e[e.closed=Ht.closed]=`closed`,e[e.startingStyle=Ht.startingStyle]=`startingStyle`,e[e.endingStyle=Ht.endingStyle]=`endingStyle`,e.nested=`data-nested`,e.nestedDialogOpen=`data-nested-dialog-open`,e}({}),Ks=q.createContext(void 0);function qs(){let e=q.useContext(Ks);if(e===void 0)throw Error(Te(26));return e}var Js={...$t,...En,nestedDialogOpen(e){return e?{[Gs.nestedDialogOpen]:``}:null}},Ys=q.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,initialFocus:o,...s}=e,{store:c}=$o(),l=c.useState(`descriptionElementId`),u=c.useState(`disablePointerDismissal`),d=c.useState(`floatingRootContext`),f=c.useState(`popupProps`),p=c.useState(`modal`),m=c.useState(`mounted`),h=c.useState(`nested`),g=c.useState(`nestedOpenDialogCount`),_=c.useState(`open`),v=c.useState(`openMethod`),y=c.useState(`titleElementId`),b=c.useState(`transitionStatus`),x=c.useState(`role`),S=d.useState(`floatingId`),C=s.id??S;qs(),xn({open:_,ref:c.context.popupRef,onComplete(){_&&c.context.onOpenChangeComplete?.(!0)}});let w=o===void 0?hn(c.context.popupRef):o,T=g>0,E=c.useStateSetter(`popupElement`),D=Se(`div`,e,{state:{open:_,nested:h,transitionStatus:b,nestedDialogOpen:T},props:[f,{id:C,"aria-labelledby":y??void 0,"aria-describedby":l??void 0,role:x,..._n,hidden:!m,onKeyDown(e){on.has(e.key)&&e.stopPropagation()},style:{[Ws.nestedDialogs]:g}},s],ref:[t,c.context.popupRef,E],stateAttributesMapping:Js});return(0,J.jsx)(vn,{context:d,openInteractionType:v,disabled:!m,closeOnFocusOut:!u,initialFocus:w,returnFocus:a,modal:p!==!1,restoreFocus:`popup`,children:D})}),Xs=q.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:i}=$o(),a=i.useState(`mounted`),o=i.useState(`modal`),s=i.useState(`open`);return a||n?(0,J.jsx)(Ks.Provider,{value:n,children:(0,J.jsxs)(It,{ref:t,...r,children:[a&&o===!0&&(0,J.jsx)(sn,{ref:i.context.internalBackdropRef,inert:ln(!s)}),e.children]})}):null});function Zs(e){let{store:t,actionsRef:n}=e,r=t.useState(`open`);Mt(t,r),jt(t);let{forceUnmount:i}=Gt(r,t),a=q.useCallback(()=>{t.setOpen(!1,wt(Ct))},[t]);q.useImperativeHandle(n,()=>({unmount:i,close:a}),[i,a])}function Qs({store:e,parentContext:t,isDrawer:n}){let r=e.useState(`open`),i=e.useState(`disablePointerDismissal`),a=e.useState(`modal`),o=e.useState(`popupElement`),s=e.useState(`floatingRootContext`),[c,l]=q.useState(0),[u,d]=q.useState(0),f=c===0,p=Ut(s,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?`intentional`:{mouse:a===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}},outsidePress(t){if(!e.context.outsidePressEnabledRef.current||`button`in t&&t.button!==0||`touches`in t&&t.touches.length!==1)return!1;let n=gt(t);return f&&!i?a&&(e.context.internalBackdropRef.current||e.context.backdropRef.current)?e.context.internalBackdropRef.current===n||e.context.backdropRef.current===n||Dt(n,o)&&!n?.hasAttribute(`data-base-ui-portal`):!0:!1},escapeKey:f});dn(r&&a===!0,o),e.useContextCallback(`onNestedDialogOpen`,(e,t)=>{l(e),d(t)}),e.useContextCallback(`onNestedDialogClose`,()=>{l(0),d(0)}),q.useEffect(()=>(t?.onNestedDialogOpen&&r&&t.onNestedDialogOpen(c+1,u+ +!!n),t?.onNestedDialogClose&&!r&&t.onNestedDialogClose(),()=>{t?.onNestedDialogClose&&r&&t.onNestedDialogClose()}),[n,r,c,u,t]);let m=p.reference??ve,h=p.trigger??ve,g=p.floating??ve;return Pt(e,{activeTriggerProps:m,inactiveTriggerProps:h,popupProps:g,nestedOpenDialogCount:c,nestedOpenDrawerCount:u}),null}var $s={...ws,modal:H(e=>e.modal),nested:H(e=>e.nested),nestedOpenDialogCount:H(e=>e.nestedOpenDialogCount),nestedOpenDrawerCount:H(e=>e.nestedOpenDrawerCount),disablePointerDismissal:H(e=>e.disablePointerDismissal),openMethod:H(e=>e.openMethod),descriptionElementId:H(e=>e.descriptionElementId),titleElementId:H(e=>e.titleElementId),viewportElement:H(e=>e.viewportElement),role:H(e=>e.role)},ec=class e extends nn{constructor(e,t,n=!1){let r=new fn,i=tc(e);i.floatingRootContext=vs(r,t,n),super(i,{popupRef:q.createRef(),backdropRef:q.createRef(),internalBackdropRef:q.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:r,onOpenChange:void 0,onOpenChangeComplete:void 0},$s)}setOpen=(e,t)=>{if(t.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},!e&&t.trigger==null&&this.state.activeTriggerId!=null&&(t.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(e,t),t.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(e,t);let n={open:e};Wt(n,e,t.trigger),this.update(n)};static useStore(t,n){return Bt(t,(t,r)=>new e(n,t,r),!0).store}};function tc(e={}){return{..._s(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:`dialog`,...e}}function nc(e,t=`dialog`){let{children:n,open:r,defaultOpen:i=!1,onOpenChange:a,onOpenChangeComplete:o,disablePointerDismissal:s=!1,modal:c=!0,actionsRef:l,handle:u,triggerId:d,defaultTriggerId:f=null}=e,p=t===`drawer`,m=t===`alert-dialog`,h=m?!0:c,g=m||s,_=m?`alertdialog`:`dialog`,v=$o(!0),y={modal:h,disablePointerDismissal:g,nested:!!v,role:_},b=ec.useStore(u?.store,{open:i,openProp:r,activeTriggerId:f,triggerIdProp:d,...y});zt(()=>{let e=r===void 0&&b.state.open===!1&&i===!0?{open:!0,activeTriggerId:f}:null;m?b.update(e?{...y,...e}:y):e&&b.update(e)}),b.useControlledProp(`openProp`,r),b.useControlledProp(`triggerIdProp`,d),b.useSyncedValues(y),b.useContextCallback(`onOpenChange`,a),b.useContextCallback(`onOpenChangeComplete`,o);let x=b.useState(`open`),S=b.useState(`mounted`),C=b.useState(`payload`);Zs({store:b,actionsRef:l});let w=x||S,T=q.useMemo(()=>({store:b}),[b]);return(0,J.jsx)(Zo.Provider,{value:!1,children:(0,J.jsxs)(Qo.Provider,{value:T,children:[w&&(0,J.jsx)(Qs,{store:b,parentContext:v?.store.context,isDrawer:p}),typeof n==`function`?n({payload:C}):n]})})}function rc(e){return nc(e,q.useContext(Zo)?`drawer`:`dialog`)}var ic=q.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,{store:s}=$o(),c=ht(a);return s.useSyncedValueWithCleanup(`titleElementId`,c),Se(`h2`,e,{ref:t,props:[{id:c},o]})});function ac(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,J.jsx)(rc,{"data-slot":`sheet`,...n}),t[2]=n,t[3]=r),r}function oc(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,J.jsx)(Xs,{"data-slot":`sheet-portal`,...n}),t[2]=n,t[3]=r),r}function sc(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`data-closed:fade-out-0 data-open:fade-in-0 data-closed:animate-out data-open:animate-in fixed inset-0 z-50 bg-black/80 duration-100 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(ts,{className:i,"data-slot":`sheet-overlay`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function cc(e){let t=(0,X.c)(17),n,r,i,a,o;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5]):({className:r,children:n,side:a,showCloseButton:o,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o);let s=a===void 0?`right`:a,c=o===void 0||o,l;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(sc,{}),t[6]=l):l=t[6];let u;t[7]===r?u=t[8]:(u=L(`data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-closed:animate-out data-open:animate-in fixed z-50 flex flex-col bg-background bg-clip-padding text-xs/relaxed shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm`,r),t[7]=r,t[8]=u);let d;t[9]===c?d=t[10]:(d=c&&(0,J.jsxs)(ns,{"data-slot":`sheet-close`,render:(0,J.jsx)(ot,{className:`absolute top-4 right-4`,size:`icon-sm`,variant:`ghost`}),children:[(0,J.jsx)(Ko,{}),(0,J.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),t[9]=c,t[10]=d);let f;return t[11]!==n||t[12]!==i||t[13]!==s||t[14]!==u||t[15]!==d?(f=(0,J.jsxs)(oc,{children:[l,(0,J.jsxs)(Ys,{className:u,"data-side":s,"data-slot":`sheet-content`,...i,children:[n,d]})]}),t[11]=n,t[12]=i,t[13]=s,t[14]=u,t[15]=d,t[16]=f):f=t[16],f}function lc(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`flex flex-col gap-1.5 p-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`div`,{className:i,"data-slot":`sheet-header`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function uc(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`text-sm font-medium text-foreground`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(ic,{className:i,"data-slot":`sheet-title`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function dc(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`text-xs/relaxed text-muted-foreground`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(rs,{className:i,"data-slot":`sheet-description`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var fc=q.createContext(void 0);function pc(e){let t=q.useContext(fc);if(t===void 0&&!e)throw Error(Te(72));return t}var mc={...ws,disabled:H(e=>e.disabled),instantType:H(e=>e.instantType),isInstantPhase:H(e=>e.isInstantPhase),trackCursorAxis:H(e=>e.trackCursorAxis),disableHoverablePopup:H(e=>e.disableHoverablePopup),lastOpenChangeReason:H(e=>e.openChangeReason),closeOnClick:H(e=>e.closeOnClick),closeDelay:H(e=>e.closeDelay),hasViewport:H(e=>e.hasViewport)},hc=class e extends nn{constructor(e,t,n=!1){let r=new fn,i={...gc(),...e};i.floatingRootContext=vs(r,t,n),super(i,{popupRef:q.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:r},mc)}setOpen=(e,t)=>{Xt(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,wt(vt,e))}static useStore(t,n){return Bt(t,(t,r)=>new e(n,t,r)).store}};function gc(){return{..._s(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:`none`,disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,hasViewport:!1}}var _c=Vt(function(e){let{disabled:t=!1,defaultOpen:n=!1,open:r,disableHoverablePopup:i=!1,trackCursorAxis:a=`none`,actionsRef:o,onOpenChange:s,onOpenChangeComplete:c,handle:l,triggerId:u,defaultTriggerId:d=null,children:f}=e,p=hc.useStore(l?.store,{open:n,openProp:r,activeTriggerId:d,triggerIdProp:u});mn(p,r,n,d),p.useControlledProp(`openProp`,r),p.useControlledProp(`triggerIdProp`,u),p.useContextCallback(`onOpenChange`,s),p.useContextCallback(`onOpenChangeComplete`,c);let m=p.useState(`open`),h=!t&&m,g=p.useState(`activeTriggerId`),_=p.useState(`mounted`),v=p.useState(`payload`);p.useSyncedValues({trackCursorAxis:a,disableHoverablePopup:i}),p.useSyncedValue(`disabled`,t),jt(p,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:y,transitionStatus:b}=Gt(h,p),x=p.useState(`isInstantPhase`),S=p.useState(`instantType`),C=p.useState(`lastOpenChangeReason`),w=q.useRef(null);V(()=>{m&&t&&p.setOpen(!1,wt(bt))},[m,t,p]),V(()=>{b===`ending`&&C===`none`||b!==`ending`&&x?(S!==`delay`&&(w.current=S),p.set(`instantType`,`delay`)):w.current!==null&&(p.set(`instantType`,w.current),w.current=null)},[b,x,C,S,p]),V(()=>{h&&(g??p.set(`payload`,void 0))},[p,g,h]);let T=q.useCallback(()=>{p.setOpen(!1,wt(Ct))},[p]);q.useImperativeHandle(o,()=>({unmount:y,close:T}),[y,T]);let E=h||_||!t&&a!==`none`;return(0,J.jsxs)(fc.Provider,{value:p,children:[E&&(0,J.jsx)(vc,{store:p,disabled:t,trackCursorAxis:a}),typeof f==`function`?f({payload:v}):f]})});function vc({store:e,disabled:t,trackCursorAxis:n}){let r=e.useState(`floatingRootContext`),i=Ut(r,{enabled:!t,referencePress:()=>e.select(`closeOnClick`)}),a=hs(r,{enabled:!t&&n!==`none`,axis:n===`none`?void 0:n}),o=q.useMemo(()=>be(a.reference,i.reference),[a.reference,i.reference]),s=q.useMemo(()=>be(a.trigger,i.trigger),[a.trigger,i.trigger]),c=q.useMemo(()=>be(_n,a.floating,i.floating),[a.floating,i.floating]);return Pt(e,{activeTriggerProps:o,inactiveTriggerProps:s,popupProps:c}),null}var yc=q.createContext(void 0);function bc(){return q.useContext(yc)}var xc=function(e){return e[e.popupOpen=Ot.popupOpen]=`popupOpen`,e.triggerDisabled=`data-trigger-disabled`,e}({}),Sc=`data-base-ui-tooltip-trigger`;function Cc(e){if(`composedPath`in e){let t=e.composedPath();for(let e=0;em.select(`transitionStatus`)===`ending`,shouldOpen(){return!A.current}}),N=Es(v,{enabled:!k}).reference,ce=e=>{let t=A.current,n=Cc(e),r=oe(n),i=y.current,a=i&&n&&Dt(i,n);if(r&&m.select(`open`)&&m.select(`lastOpenChangeReason`)===`trigger-hover`){m.setOpen(!1,wt(yt,e));return}if(t&&!r&&a&&!te.current&&!m.select(`open`)&&i&&Qt(M.current)){let t=()=>{!A.current&&!te.current&&!m.select(`open`)&&m.setOpen(!0,wt(yt,e,i))},n=ie();n===0?(j.clear(),t()):j.start(n,t)}},le=m.useState(`triggerProps`,C);return Se(`button`,e,{state:{open:_},ref:[t,S,y],props:[se,N,C||ne!==`none`?le:void 0,{onMouseOver(e){ce(e.nativeEvent)},onFocus(e){ae(Cc(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){A.current=!1,j.clear(),M.current=void 0},onPointerEnter(e){M.current=e.pointerType},onPointerDown(e){M.current=e.pointerType,m.set(`closeOnClick`,l),l&&!m.select(`open`)&&m.cancelPendingOpen(e.nativeEvent)},onClick(e){l&&!m.select(`open`)&&m.cancelPendingOpen(e.nativeEvent)},id:h,[xc.triggerDisabled]:k?``:void 0,[Sc]:k?void 0:``},f],stateAttributesMapping:cn})}),Ec=q.createContext(void 0);function Dc(){let e=q.useContext(Ec);if(e===void 0)throw Error(Te(70));return e}var Oc=q.forwardRef(function(e,t){let{children:n,container:r,className:i,render:a,style:o,...s}=e,{portalNode:c,portalSubtree:l}=Kt({container:r,ref:t,componentProps:e,elementProps:s});return!l&&!c?null:(0,J.jsxs)(q.Fragment,{children:[l,c&&Ns.createPortal(n,c)]})}),kc=q.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e;return pc().useState(`mounted`)||n?(0,J.jsx)(Ec.Provider,{value:n,children:(0,J.jsx)(Oc,{ref:t,...r})}):null}),Ac=q.createContext(void 0);function jc(){let e=q.useContext(Ac);if(e===void 0)throw Error(Te(71));return e}var Mc=q.forwardRef(function(e,t){let{render:n,className:r,anchor:i,positionMethod:a=`absolute`,side:o=`top`,align:s=`center`,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:m=!1,collisionAvoidance:h=Rt,style:g,..._}=e,v=pc(),y=Dc(),b=v.useState(`open`),x=v.useState(`mounted`),S=v.useState(`trackCursorAxis`),C=v.useState(`disableHoverablePopup`),w=v.useState(`floatingRootContext`),T=v.useState(`instantType`),E=v.useState(`transitionStatus`),D=v.useState(`hasViewport`),O=We({anchor:i,positionMethod:a,floatingRootContext:w,mounted:x,side:o,sideOffset:c,align:s,alignOffset:l,collisionBoundary:u,collisionPadding:d,sticky:p,arrowPadding:f,disableAnchorTracking:m,keepMounted:y,collisionAvoidance:h,adaptiveOrigin:D?Ge:void 0}),ee=q.useMemo(()=>({open:b,side:O.side,align:O.align,anchorHidden:O.anchorHidden,instant:S===`none`?T:`tracking-cursor`}),[b,O.side,O.align,O.anchorHidden,S,T]),k=qe(e,ee,{styles:O.positionerStyles,transitionStatus:E,props:_,refs:[t,v.useStateSetter(`positionerElement`)],hidden:!x,inert:!b||S===`both`||C});return(0,J.jsx)(Ac.Provider,{value:O,children:k})}),Nc={...$t,...En},Pc=q.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=pc(),{side:s,align:c}=jc(),l=o.useState(`open`),u=o.useState(`instantType`),d=o.useState(`transitionStatus`),f=o.useState(`popupProps`),p=o.useState(`floatingRootContext`),m=o.useState(`disabled`),h=o.useState(`closeDelay`);xn({open:l,ref:o.context.popupRef,onComplete(){l&&o.context.onOpenChangeComplete?.(!0)}}),Ms(p,{enabled:!m,closeDelay:h});let g=o.useStateSetter(`popupElement`);return Se(`div`,e,{state:{open:l,side:s,align:c,instant:u,transitionStatus:d},ref:[t,o.context.popupRef,g],props:[f,$e(d),a],stateAttributesMapping:Nc})}),Fc=q.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=pc(),{arrowRef:s,side:c,align:l,arrowUncentered:u,arrowStyles:d}=jc(),f={open:o.useState(`open`),side:c,align:l,uncentered:u,instant:o.useState(`instantType`)};return Se(`div`,e,{state:f,ref:[t,s],props:[{style:d,"aria-hidden":!0},a],stateAttributesMapping:$t})}),Ic=function(e){let{delay:t,closeDelay:n,timeout:r=400}=e,i=q.useMemo(()=>({delay:t,closeDelay:n}),[t,n]),a=q.useMemo(()=>({open:t,close:n}),[t,n]);return(0,J.jsx)(yc.Provider,{value:i,children:(0,J.jsx)(ds,{delay:a,timeoutMs:r,children:e.children})})};function Lc(e){let t=(0,X.c)(6),n,r;t[0]===e?(n=t[1],r=t[2]):({delay:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i=r===void 0?0:r,a;return t[3]!==i||t[4]!==n?(a=(0,J.jsx)(Ic,{"data-slot":`tooltip-provider`,delay:i,...n}),t[3]=i,t[4]=n,t[5]=a):a=t[5],a}function Rc(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,J.jsx)(Lc,{children:(0,J.jsx)(_c,{"data-slot":`tooltip`,...n})}),t[2]=n,t[3]=r),r}function zc(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,J.jsx)(Tc,{"data-slot":`tooltip-trigger`,...n}),t[2]=n,t[3]=r),r}function Bc(e){let t=(0,X.c)(21),n,r,i,a,o,s,c;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6],c=t[7]):({className:r,side:a,sideOffset:o,align:s,alignOffset:c,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s,t[7]=c);let l=a===void 0?`top`:a,u=o===void 0?4:o,d=s===void 0?`center`:s,f=c===void 0?0:c,p;t[8]===r?p=t[9]:(p=L(`data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:fade-out-0 data-closed:zoom-out-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 data-[state=delayed-open]:animate-in data-closed:animate-out data-open:animate-in z-50 w-fit max-w-xs origin-(--transform-origin) rounded-md bg-foreground px-3 py-1.5 text-xs text-background **:data-[slot=kbd]:rounded-md`,r),t[8]=r,t[9]=p);let m;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,J.jsx)(Fc,{className:`z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5`}),t[10]=m):m=t[10];let h;t[11]!==n||t[12]!==i||t[13]!==p?(h=(0,J.jsxs)(Pc,{className:p,"data-slot":`tooltip-content`,...i,children:[n,m]}),t[11]=n,t[12]=i,t[13]=p,t[14]=h):h=t[14];let g;return t[15]!==d||t[16]!==f||t[17]!==l||t[18]!==u||t[19]!==h?(g=(0,J.jsx)(kc,{children:(0,J.jsx)(Mc,{align:d,alignOffset:f,className:`isolate z-50`,side:l,sideOffset:u,children:h})}),t[15]=d,t[16]=f,t[17]=l,t[18]=u,t[19]=h,t[20]=g):g=t[20],g}var Vc=window.matchMedia(`(max-width: 767px)`);function Hc(e){return Vc.addEventListener(`change`,e),()=>Vc.removeEventListener(`change`,e)}function Uc(){return Vc.matches}function Wc(){return(0,q.useSyncExternalStore)(Hc,Uc)}var Gc=`sidebar_state`,Kc=604800,qc=`12rem`,Jc=`16rem`,Yc=`3rem`,Xc=`b`,Zc=q.createContext(null);function Qc(){let e=q.useContext(Zc);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function $c(e){let t=(0,X.c)(36),n,r,i,a,o,s,c;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6],c=t[7]):({defaultOpen:c,open:i,onOpenChange:o,className:r,style:s,children:n,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s,t[7]=c);let l=c===void 0||c,u=Wc(),[d,f]=q.useState(!1),[p,m]=q.useState(l),h=i??p,g;t[8]!==h||t[9]!==o?(g=e=>{let t=typeof e==`function`?e(h):e;o?o(t):m(t),document.cookie=`${Gc}=${t}; path=/; max-age=${Kc}`},t[8]=h,t[9]=o,t[10]=g):g=t[10];let _=g,v;t[11]!==u||t[12]!==_?(v=()=>u?f(tl):_(el),t[11]=u,t[12]=_,t[13]=v):v=t[13];let y=v,b,x;t[14]===y?(b=t[15],x=t[16]):(b=()=>{let e=e=>{e.key===Xc&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},x=[y],t[14]=y,t[15]=b,t[16]=x),q.useEffect(b,x);let S=h?`expanded`:`collapsed`,C;t[17]!==u||t[18]!==h||t[19]!==d||t[20]!==_||t[21]!==S||t[22]!==y?(C={state:S,open:h,setOpen:_,isMobile:u,openMobile:d,setOpenMobile:f,toggleSidebar:y},t[17]=u,t[18]=h,t[19]=d,t[20]=_,t[21]=S,t[22]=y,t[23]=C):C=t[23];let w=C,T;t[24]===r?T=t[25]:(T=L(`group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar`,r),t[24]=r,t[25]=T);let E;t[26]===s?E=t[27]:(E={"--sidebar-width":qc,"--sidebar-width-icon":Yc,...s},t[26]=s,t[27]=E);let D=E,O;t[28]!==n||t[29]!==a||t[30]!==T||t[31]!==D?(O=(0,J.jsx)(`div`,{className:T,"data-slot":`sidebar-wrapper`,style:D,...a,children:n}),t[28]=n,t[29]=a,t[30]=T,t[31]=D,t[32]=O):O=t[32];let ee;return t[33]!==w||t[34]!==O?(ee=(0,J.jsx)(Zc.Provider,{value:w,children:O}),t[33]=w,t[34]=O,t[35]=ee):ee=t[35],ee}function el(e){return!e}function tl(e){return!e}function nl(e){let t=(0,X.c)(46),n,r,i,a,o,s;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6]):({side:a,variant:o,collapsible:s,className:r,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s);let c=a===void 0?`left`:a,l=o===void 0?`sidebar`:o,u=s===void 0?`offExamples`:s,{isMobile:d,state:f,openMobile:p,setOpenMobile:m}=Qc();if(u===`none`){let e;t[7]===r?e=t[8]:(e=L(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,r),t[7]=r,t[8]=e);let a;return t[9]!==n||t[10]!==i||t[11]!==e?(a=(0,J.jsx)(`div`,{className:e,"data-slot":`sidebar`,...i,children:n}),t[9]=n,t[10]=i,t[11]=e,t[12]=a):a=t[12],a}if(d){let e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e={"--sidebar-width":Jc},t[13]=e):e=t[13];let r=e,a;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,J.jsxs)(lc,{className:`sr-only`,children:[(0,J.jsx)(uc,{children:`Sidebar`}),(0,J.jsx)(dc,{children:`Displays the mobile sidebar.`})]}),t[14]=a):a=t[14];let o;t[15]===n?o=t[16]:(o=(0,J.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:n}),t[15]=n,t[16]=o);let s;t[17]!==c||t[18]!==o?(s=(0,J.jsxs)(cc,{className:`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,"data-mobile":`true`,"data-sidebar":`sidebar`,"data-slot":`sidebar`,side:c,style:r,children:[a,o]}),t[17]=c,t[18]=o,t[19]=s):s=t[19];let l;return t[20]!==p||t[21]!==i||t[22]!==m||t[23]!==s?(l=(0,J.jsx)(ac,{onOpenChange:m,open:p,...i,children:s}),t[20]=p,t[21]=i,t[22]=m,t[23]=s,t[24]=l):l=t[24],l}let h=f===`collapsed`?u:``,g=l===`floating`||l===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,_;t[25]===g?_=t[26]:(_=L(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offExamples]:w-0`,`group-data-[side=right]:rotate-180`,g),t[25]=g,t[26]=_);let v;t[27]===_?v=t[28]:(v=(0,J.jsx)(`div`,{className:_,"data-slot":`sidebar-gap`}),t[27]=_,t[28]=v);let y=c===`left`?`left-0 group-data-[collapsible=offExamples]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offExamples]:right-[calc(var(--sidebar-width)*-1)]`,b=l===`floating`||l===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,x;t[29]!==r||t[30]!==y||t[31]!==b?(x=L(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,y,b,r),t[29]=r,t[30]=y,t[31]=b,t[32]=x):x=t[32];let S;t[33]===n?S=t[34]:(S=(0,J.jsx)(`div`,{className:`flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border`,"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,children:n}),t[33]=n,t[34]=S);let C;t[35]!==i||t[36]!==x||t[37]!==S?(C=(0,J.jsx)(`div`,{className:x,"data-slot":`sidebar-container`,...i,children:S}),t[35]=i,t[36]=x,t[37]=S,t[38]=C):C=t[38];let w;return t[39]!==c||t[40]!==f||t[41]!==C||t[42]!==h||t[43]!==v||t[44]!==l?(w=(0,J.jsxs)(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-collapsible":h,"data-side":c,"data-slot":`sidebar`,"data-state":f,"data-variant":l,children:[v,C]}),t[39]=c,t[40]=f,t[41]=C,t[42]=h,t[43]=v,t[44]=l,t[45]=w):w=t[45],w}function rl(e){let t=(0,X.c)(15),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,onClick:r,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let{toggleSidebar:a}=Qc(),o;t[4]===n?o=t[5]:(o=L(n),t[4]=n,t[5]=o);let s;t[6]!==r||t[7]!==a?(s=e=>{r?.(e),a()},t[6]=r,t[7]=a,t[8]=s):s=t[8];let c,l;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(Po,{}),l=(0,J.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`}),t[9]=c,t[10]=l):(c=t[9],l=t[10]);let u;return t[11]!==i||t[12]!==o||t[13]!==s?(u=(0,J.jsxs)(ot,{className:o,"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,onClick:s,size:`icon-lg`,variant:`ghost`,...i,children:[c,l]}),t[11]=i,t[12]=o,t[13]=s,t[14]=u):u=t[14],u}function il(e){let t=(0,X.c)(9),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let{toggleSidebar:i}=Qc(),a;t[3]===n?a=t[4]:(a=L(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex`,`in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`group-data-[collapsible=offExamples]:translate-x-0 group-data-[collapsible=offExamples]:after:left-full hover:group-data-[collapsible=offExamples]:bg-sidebar`,`[[data-side=left][data-collapsible=offExamples]_&]:-right-2`,`[[data-side=right][data-collapsible=offExamples]_&]:-left-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a||t[7]!==i?(o=(0,J.jsx)(`button`,{"aria-label":`Toggle Sidebar`,className:a,"data-sidebar":`rail`,"data-slot":`sidebar-rail`,onClick:i,tabIndex:-1,title:`Toggle Sidebar`,...r}),t[5]=r,t[6]=a,t[7]=i,t[8]=o):o=t[8],o}function al(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`flex flex-col gap-2 p-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`div`,{className:i,"data-sidebar":`header`,"data-slot":`sidebar-header`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function ol(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`flex flex-col gap-2 p-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`div`,{className:i,"data-sidebar":`footer`,"data-slot":`sidebar-footer`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function sl(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`mx-2 w-auto bg-sidebar-border`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(Xo,{className:i,"data-sidebar":`separator`,"data-slot":`sidebar-separator`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function cl(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`div`,{className:i,"data-sidebar":`content`,"data-slot":`sidebar-content`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function ll(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`relative flex w-full min-w-0 flex-col px-2 py-1`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`div`,{className:i,"data-sidebar":`group`,"data-slot":`sidebar-group`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function ul(e){let t=(0,X.c)(10),n,r,i,a;if(t[0]!==e){let{className:o,render:s,...c}=e;n=s,a=uo,r=`div`,i=be({className:L(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,o)},c),t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a}else n=t[1],r=t[2],i=t[3],a=t[4];let o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(o={slot:`sidebar-group-label`,sidebar:`group-label`},t[5]=o):o=t[5];let s;return t[6]!==n||t[7]!==r||t[8]!==i?(s={defaultTagName:r,props:i,render:n,state:o},t[6]=n,t[7]=r,t[8]=i,t[9]=s):s=t[9],a(s)}function dl(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`flex w-full min-w-0 flex-col gap-px`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`ul`,{className:i,"data-sidebar":`menu`,"data-slot":`sidebar-menu`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function fl(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`group/menu-item relative`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`li`,{className:i,"data-sidebar":`menu-item`,"data-slot":`sidebar-menu-item`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var pl=we(`peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-[calc(var(--radius-sm)+2px)] p-2 text-left text-xs ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-xs`,sm:`h-7 text-xs`,lg:`h-12 text-xs group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function ml(e){let t=(0,X.c)(15),{render:n,isActive:r,variant:i,size:a,tooltip:o,className:s,...c}=e,l=r!==void 0&&r,u=i===void 0?`default`:i,d=a===void 0?`default`:a,{isMobile:f,state:p}=Qc(),m=be({className:L(pl({variant:u,size:d}),s)},c),h=o?zc:n,g;t[0]!==l||t[1]!==d?(g={slot:`sidebar-menu-button`,sidebar:`menu-button`,size:d,active:l},t[0]=l,t[1]=d,t[2]=g):g=t[2];let _;t[3]!==m||t[4]!==h||t[5]!==g?(_={defaultTagName:`button`,props:m,render:h,state:g},t[3]=m,t[4]=h,t[5]=g,t[6]=_):_=t[6];let v=uo(_);if(!o)return v;let y;t[7]===o?y=t[8]:(y=typeof o==`string`?{children:o}:o,t[7]=o,t[8]=y);let b=y,x=p!==`collapsed`||f,S;t[9]!==x||t[10]!==b?(S=(0,J.jsx)(Bc,{align:`center`,hidden:x,side:`right`,...b}),t[9]=x,t[10]=b,t[11]=S):S=t[11];let C;return t[12]!==v||t[13]!==S?(C=(0,J.jsxs)(Rc,{children:[v,S]}),t[12]=v,t[13]=S,t[14]=C):C=t[14],C}var hl=class extends Ir(Br,Lr,`GetCallerIdentity`,zr){},gl=typeof Buffer<`u`&&Buffer.from?function(e){return Buffer.from(e,`utf8`)}:e=>new TextEncoder().encode(e);function _l(e){return e instanceof Uint8Array?e:typeof e==`string`?gl(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}function vl(e){return typeof e==`string`?e.length===0:e.byteLength===0}var yl={name:`SHA-256`},bl={name:`HMAC`,hash:yl},xl=new Uint8Array([227,176,196,66,152,252,28,20,154,251,244,200,153,111,185,36,39,174,65,228,100,155,147,76,164,149,153,27,120,82,184,85]),Sl={};function Cl(){return typeof window<`u`?window:typeof self<`u`?self:Sl}var wl=function(){function e(e){this.toHash=new Uint8Array,this.secret=e,this.reset()}return e.prototype.update=function(e){if(!vl(e)){var t=_l(e),n=new Uint8Array(this.toHash.byteLength+t.byteLength);n.set(this.toHash,0),n.set(t,this.toHash.byteLength),this.toHash=n}},e.prototype.digest=function(){var e=this;return this.key?this.key.then(function(t){return Cl().crypto.subtle.sign(bl,t,e.toHash).then(function(e){return new Uint8Array(e)})}):vl(this.toHash)?Promise.resolve(xl):Promise.resolve().then(function(){return Cl().crypto.subtle.digest(yl,e.toHash)}).then(function(e){return Promise.resolve(new Uint8Array(e))})},e.prototype.reset=function(){var e=this;this.toHash=new Uint8Array,this.secret&&this.secret!==void 0&&(this.key=new Promise(function(t,n){Cl().crypto.subtle.importKey(`raw`,_l(e.secret),bl,!1,[`sign`]).then(t,n)}),this.key.catch(function(){}))},e}();function Tl(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function El(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),typeof Symbol==`function`&&(o[Symbol.iterator]=function(){return this}),o;function s(e){return function(t){return c([e,t])}}function c(s){if(r)throw TypeError(`Generator is already executing.`);for(;o&&(o=0,s[0]&&(n=0)),n;)try{if(r=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return n.label++,{value:s[1],done:!1};case 5:n.label++,i=s[1],s=[0];continue;case 7:s=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]kl)throw Error(`Cannot hash more than 2^53 - 1 bits`);for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,this.bufferLength===64&&(this.hashBuffer(),this.bufferLength=0)},e.prototype.digest=function(){if(!this.finished){var e=this.bytesHashed*8,t=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(t.setUint8(this.bufferLength++,128),n%64>=56){for(var r=this.bufferLength;r<64;r++)t.setUint8(r,0);this.hashBuffer(),this.bufferLength=0}for(var r=this.bufferLength;r<56;r++)t.setUint8(r,0);t.setUint32(56,Math.floor(e/4294967296),!0),t.setUint32(60,e),this.hashBuffer(),this.finished=!0}for(var i=new Uint8Array(32),r=0;r<8;r++)i[r*4]=this.state[r]>>>24&255,i[r*4+1]=this.state[r]>>>16&255,i[r*4+2]=this.state[r]>>>8&255,i[r*4+3]=this.state[r]>>>0&255;return i},e.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,n=e.state,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],l=n[6],u=n[7],d=0;d<64;d++){if(d<16)this.temp[d]=(t[d*4]&255)<<24|(t[d*4+1]&255)<<16|(t[d*4+2]&255)<<8|t[d*4+3]&255;else{var f=this.temp[d-2],p=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10;f=this.temp[d-15];var m=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3;this.temp[d]=(p+this.temp[d-7]|0)+(m+this.temp[d-16]|0)}var h=(((s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7))+(s&c^~s&l)|0)+(u+(Dl[d]+this.temp[d]|0)|0)|0,g=((r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10))+(r&i^r&a^i&a)|0;u=l,l=c,c=s,s=o+h|0,o=a,a=i,i=r,r=h+g|0}n[0]+=r,n[1]+=i,n[2]+=a,n[3]+=o,n[4]+=s,n[5]+=c,n[6]+=l,n[7]+=u},e}(),jl=function(){function e(e){this.secret=e,this.hash=new Al,this.reset()}return e.prototype.update=function(e){if(!(vl(e)||this.error))try{this.hash.update(_l(e))}catch(e){this.error=e}},e.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},e.prototype.digest=function(){return Tl(this,void 0,void 0,function(){return El(this,function(e){return[2,this.digestSync()]})})},e.prototype.reset=function(){if(this.hash=new Al,this.secret){this.outer=new Al;var e=Ml(this.secret),t=new Uint8Array(64);t.set(e);for(var n=0;n<64;n++)e[n]^=54,t[n]^=92;this.hash.update(e),this.outer.update(t);for(var n=0;n64){var n=new Al;n.update(t),t=n.digest()}var r=new Uint8Array(64);return r.set(t),r}var Nl=[`decrypt`,`digest`,`encrypt`,`exportKey`,`generateKey`,`importKey`,`sign`,`verify`];function Pl(e){if(Fl(e)&&typeof e.crypto.subtle==`object`){var t=e.crypto.subtle;return Il(t)}return!1}function Fl(e){return typeof e==`object`&&typeof e.crypto==`object`&&typeof e.crypto.getRandomValues==`function`}function Il(e){return e&&Nl.every(function(t){return typeof e[t]==`function`})}var Ll=function(){function e(e){this.hash=Pl(Cl())?new wl(e):new jl(e)}return e.prototype.update=function(e,t){this.hash.update(_l(e))},e.prototype.digest=function(){return this.hash.digest()},e.prototype.reset=function(){this.hash.reset()},e}(),Rl=`ap-southeast-2`,zl=9999,Bl=class extends Error{status;constructor(e,t,n){super(e),this.name=t,this.status=n}};function Vl(e,t){let n=`<${t}>`,r=``,i=e.indexOf(n);if(i===-1)return null;let a=e.indexOf(r,i+n.length);return a===-1?null:e.slice(i+n.length,a)}async function Hl({action:e,credentials:t,service:n=`spinifex`,params:r}){let i=window.location.protocol.replace(`:`,``),a=`Action=${e}${r?`&${new URLSearchParams(r).toString()}`:``}`,o=new je({method:`POST`,protocol:i,hostname:`localhost`,port:zl,path:`/`,headers:{host:`localhost:${zl}`,"content-type":`application/x-www-form-urlencoded`},body:a}),s=await new Ee({credentials:{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,sessionToken:t.sessionToken},region:Rl,service:n,sha256:Ll}).sign(o),c={};for(let[e,t]of Object.entries(s.headers))typeof t==`string`&&(c[e]=t);let l=`${window.location.protocol}//${window.location.host}/proxy/awsgw/`,u=await fetch(l,{method:`POST`,headers:c,body:a});if(!u.ok){let t=await u.text().catch(()=>``),n=Vl(t,`Code`),r=Vl(t,`Message`)??t;throw new Bl(`${e} failed: ${u.status}${r?` - ${r}`:``}`,n??`SignedFetchError`,u.status)}return await u.json()}var Ul=`000000000001`;function Wl(e){let t=e?.indexOf(`:user/`)??-1;return t===-1||e===void 0?null:e.slice(t+6)||null}var Gl=(0,q.createContext)(void 0);function Kl({children:e}){let[t,n]=(0,q.useState)({isAdmin:!1,accountId:null,userName:null,version:null,license:null,loading:!0});return(0,q.useEffect)(()=>{async function e(){let e=Re();if(!e){n(e=>({...e,loading:!1}));return}try{let t=await Rr().send(new hl({})),r=t.Account??null,i=r===Ul,a=null;if(i)try{a=await Hl({action:`GetVersion`,credentials:e})}catch{}n({isAdmin:i,accountId:r,userName:Wl(t.Arn),version:a,license:a?.license??null,loading:!1})}catch{n(e=>({...e,loading:!1}))}}e()},[]),(0,J.jsx)(Gl,{value:t,children:e})}function ql(){let e=(0,q.useContext)(Gl);if(e===void 0)throw Error(`useAdmin must be used within an AdminProvider`);return e}var Jl=new Set([`InvalidClientTokenId`,`SignatureDoesNotMatch`,`AuthFailure`,`MissingAuthenticationToken`,`IncompleteSignature`,`UnrecognizedClientException`,`ExpiredToken`,`ExpiredTokenException`,`InvalidAccessKeyId`]);function Yl(e){if(typeof e!=`object`||!e||!(`name`in e))return!1;let{name:t}=e;return typeof t==`string`&&Jl.has(t)}var Xl=ke(Pr,`CertificateManager`,`ACMClient`,Fe),Zl={ServiceType:{type:`staticContextParams`,value:`ACM`}},Ql=(e,t,n,r)=>[],$l=class extends Xl(Zl,Ql,`ListCertificates`,er){},eu=class extends W(G,K,`AllocateAddress`,Sr){},tu=class extends W(G,K,`AssociateAddress`,_r){},nu=class extends W(G,K,`AssociateIamInstanceProfile`,gr){},ru=class extends W(G,K,`AssociateRouteTable`,fr){},iu=class extends W(G,K,`AttachInternetGateway`,Dr){},au=class extends W(G,K,`AttachVolume`,Nr){},ou=class extends W(G,K,`AuthorizeSecurityGroupEgress`,mr){},su=class extends W(G,K,`AuthorizeSecurityGroupIngress`,jr){},cu=class extends W(G,Gr,`CopySnapshot`,rr){},lu=class extends W(G,K,`CreateImage`,Nn){},uu=class extends W(G,K,`CreateInternetGateway`,kr){},du=class extends W(G,K,`CreateKeyPair`,ar){},fu=class extends W(G,K,`CreateLaunchTemplate`,Ln){},pu=class extends W(G,K,`CreateLaunchTemplateVersion`,Fn){},mu=class extends W(G,K,`CreateNatGateway`,Zn){},hu=class extends W(G,K,`CreatePlacementGroup`,xr){},gu=class extends W(G,K,`CreateRoute`,An){},_u=class extends W(G,K,`CreateRouteTable`,yr){},vu=class extends W(G,K,`CreateSecurityGroup`,qn){},yu=class extends W(G,K,`CreateSnapshot`,Yn){},bu=class extends W(G,K,`CreateSubnet`,$n){},xu=class extends W(G,K,`CreateVolume`,zn){},Su=class extends W(G,K,`CreateVpc`,Hn){},Cu=class extends W(G,K,`DeleteInternetGateway`,Gn){},wu=class extends W(G,K,`DeleteKeyPair`,tr){},Tu=class extends W(G,K,`DeleteLaunchTemplate`,Fr){},Eu=class extends W(G,K,`DeleteLaunchTemplateVersions`,jn){},Du=class extends W(G,K,`DeleteNatGateway`,sr){},Ou=class extends W(G,K,`DeletePlacementGroup`,Vn){},ku=class extends W(G,K,`DeleteRoute`,or){},Au=class extends W(G,K,`DeleteRouteTable`,cr){},ju=class extends W(G,K,`DeleteSecurityGroup`,Bn){},Mu=class extends W(G,K,`DeleteSnapshot`,Wn){},Nu=class extends W(G,K,`DeleteSubnet`,wr){},Pu=class extends W(G,K,`DeleteVolume`,Un){},Fu=class extends W(G,K,`DeleteVpc`,ur){},Iu=class extends W(G,K,`DeregisterImage`,lr){},Lu=class extends W(G,K,`DetachInternetGateway`,hr){},Ru=class extends W(G,K,`DetachVolume`,dr){},zu=class extends W(G,K,`DisassociateAddress`,Er){},Bu=class extends W(G,K,`DisassociateIamInstanceProfile`,Mr){},Vu=class extends W(G,K,`DisassociateRouteTable`,pr){},Hu=class extends W(G,K,`GetConsoleOutput`,Ar){},Uu=class extends W(G,K,`ImportKeyPair`,nr){},Wu=class extends W(G,K,`ModifyInstanceAttribute`,Mn){},Gu=class extends W(G,K,`ModifyLaunchTemplate`,Or){},Ku=class extends W(G,K,`ModifySubnetAttribute`,ir){},qu=class extends W(G,K,`ModifyVolume`,In){},Ju=class extends W(G,K,`RebootInstances`,Pn){},Yu=class extends W(G,K,`RegisterImage`,Xn){},Xu=class extends W(G,K,`ReleaseAddress`,br){},Zu=class extends W(G,K,`RevokeSecurityGroupEgress`,kn){},Qu=class extends W(G,K,`RevokeSecurityGroupIngress`,vr){},$u=class extends W(G,K,`RunInstances`,Kn){},ed=class extends W(G,K,`StartInstances`,Jn){},td=class extends W(G,K,`StopInstances`,Qn){},nd=class extends W(G,K,`TerminateInstances`,Rn){},rd={capacity_block:`capacity-block`,capacity_manager_data_export:`capacity-manager-data-export`,capacity_reservation:`capacity-reservation`,capacity_reservation_cancellation_quote:`capacity-reservation-cancellation-quote`,capacity_reservation_fleet:`capacity-reservation-fleet`,carrier_gateway:`carrier-gateway`,client_vpn_endpoint:`client-vpn-endpoint`,coip_pool:`coip-pool`,customer_gateway:`customer-gateway`,declarative_policies_report:`declarative-policies-report`,dedicated_host:`dedicated-host`,dhcp_options:`dhcp-options`,egress_only_internet_gateway:`egress-only-internet-gateway`,elastic_gpu:`elastic-gpu`,elastic_ip:`elastic-ip`,export_image_task:`export-image-task`,export_instance_task:`export-instance-task`,fleet:`fleet`,fpga_image:`fpga-image`,host_reservation:`host-reservation`,image:`image`,image_usage_report:`image-usage-report`,import_image_task:`import-image-task`,import_snapshot_task:`import-snapshot-task`,instance:`instance`,instance_connect_endpoint:`instance-connect-endpoint`,instance_event_window:`instance-event-window`,internet_gateway:`internet-gateway`,ipam:`ipam`,ipam_external_resource_verification_token:`ipam-external-resource-verification-token`,ipam_policy:`ipam-policy`,ipam_pool:`ipam-pool`,ipam_pool_allocation:`ipam-pool-allocation`,ipam_prefix_list_resolver:`ipam-prefix-list-resolver`,ipam_prefix_list_resolver_target:`ipam-prefix-list-resolver-target`,ipam_resource_discovery:`ipam-resource-discovery`,ipam_resource_discovery_association:`ipam-resource-discovery-association`,ipam_scope:`ipam-scope`,ipv4pool_ec2:`ipv4pool-ec2`,ipv6pool_ec2:`ipv6pool-ec2`,key_pair:`key-pair`,launch_template:`launch-template`,local_gateway:`local-gateway`,local_gateway_route_table:`local-gateway-route-table`,local_gateway_route_table_virtual_interface_group_association:`local-gateway-route-table-virtual-interface-group-association`,local_gateway_route_table_vpc_association:`local-gateway-route-table-vpc-association`,local_gateway_virtual_interface:`local-gateway-virtual-interface`,local_gateway_virtual_interface_group:`local-gateway-virtual-interface-group`,mac_modification_task:`mac-modification-task`,natgateway:`natgateway`,network_acl:`network-acl`,network_insights_access_scope:`network-insights-access-scope`,network_insights_access_scope_analysis:`network-insights-access-scope-analysis`,network_insights_analysis:`network-insights-analysis`,network_insights_path:`network-insights-path`,network_interface:`network-interface`,outpost_lag:`outpost-lag`,placement_group:`placement-group`,prefix_list:`prefix-list`,replace_root_volume_task:`replace-root-volume-task`,reserved_instances:`reserved-instances`,route_server:`route-server`,route_server_endpoint:`route-server-endpoint`,route_server_peer:`route-server-peer`,route_table:`route-table`,secondary_interface:`secondary-interface`,secondary_network:`secondary-network`,secondary_subnet:`secondary-subnet`,security_group:`security-group`,security_group_rule:`security-group-rule`,service_link_virtual_interface:`service-link-virtual-interface`,snapshot:`snapshot`,spot_fleet_request:`spot-fleet-request`,spot_instances_request:`spot-instances-request`,subnet:`subnet`,subnet_cidr_reservation:`subnet-cidr-reservation`,traffic_mirror_filter:`traffic-mirror-filter`,traffic_mirror_filter_rule:`traffic-mirror-filter-rule`,traffic_mirror_session:`traffic-mirror-session`,traffic_mirror_target:`traffic-mirror-target`,transit_gateway:`transit-gateway`,transit_gateway_attachment:`transit-gateway-attachment`,transit_gateway_connect_peer:`transit-gateway-connect-peer`,transit_gateway_metering_policy:`transit-gateway-metering-policy`,transit_gateway_multicast_domain:`transit-gateway-multicast-domain`,transit_gateway_policy_table:`transit-gateway-policy-table`,transit_gateway_route_table:`transit-gateway-route-table`,transit_gateway_route_table_announcement:`transit-gateway-route-table-announcement`,verified_access_endpoint:`verified-access-endpoint`,verified_access_endpoint_target:`verified-access-endpoint-target`,verified_access_group:`verified-access-group`,verified_access_instance:`verified-access-instance`,verified_access_policy:`verified-access-policy`,verified_access_trust_provider:`verified-access-trust-provider`,volume:`volume`,vpc:`vpc`,vpc_block_public_access_exclusion:`vpc-block-public-access-exclusion`,vpc_encryption_control:`vpc-encryption-control`,vpc_endpoint:`vpc-endpoint`,vpc_endpoint_connection:`vpc-endpoint-connection`,vpc_endpoint_connection_device_type:`vpc-endpoint-connection-device-type`,vpc_endpoint_service:`vpc-endpoint-service`,vpc_endpoint_service_permission:`vpc-endpoint-service-permission`,vpc_flow_log:`vpc-flow-log`,vpc_peering_connection:`vpc-peering-connection`,vpn_concentrator:`vpn-concentrator`,vpn_connection:`vpn-connection`,vpn_connection_device_type:`vpn-connection-device-type`,vpn_gateway:`vpn-gateway`},id=!1;function ad(e,t){id||!Yl(e)||(id=!0,Ie(),Tr(),t.clear(),window.location.pathname!==`/login`&&(window.location.href=`/login?reason=expired`))}function od(){let e=new ha({queryCache:new ma({onError:t=>ad(t,e)}),mutationCache:new fa({onError:t=>ad(t,e)}),defaultOptions:{queries:{staleTime:5e3,refetchIntervalInBackground:!1}}});return e}function sd(){let e=(0,X.c)(8),{theme:t,setTheme:n}=lo(),r;e[0]!==n||e[1]!==t?(r=()=>{n(t===`light`?`dark`:t===`dark`?`light`:`dark`)},e[0]=n,e[1]=t,e[2]=r):r=e[2];let i=r,a,o,s;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,J.jsx)(Vo,{className:`size-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90`}),o=(0,J.jsx)(jo,{className:`absolute size-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0`}),s=(0,J.jsx)(`span`,{className:`sr-only`,children:`Toggle theme`}),e[3]=a,e[4]=o,e[5]=s):(a=e[3],o=e[4],s=e[5]);let c;return e[6]===i?c=e[7]:(c=(0,J.jsxs)(ot,{className:`rounded-full`,onClick:i,size:`icon-sm`,variant:`ghost`,children:[a,o,s]}),e[6]=i,e[7]=c),c}function cd(){let e=(0,X.c)(7),{isAdmin:t,license:n}=ql(),r=t&&n===`open-source`,i,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=L(`z-50 flex h-10 shrink-0 items-center gap-2 border-b border-sidebar-border bg-sidebar px-4 text-sidebar-foreground`,`sticky top-0`),a=(0,J.jsx)(rl,{className:`-ml-1`}),e[0]=i,e[1]=a):(i=e[0],a=e[1]);let o;e[2]===r?o=e[3]:(o=r&&(0,J.jsx)(`a`,{href:`https://mulgadc.com/purchase`,target:`_blank`,rel:`noopener noreferrer`,className:L(rt({variant:`outline`,size:`sm`})),children:`Upgrade`}),e[2]=r,e[3]=o);let s;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,J.jsx)(sd,{}),e[4]=s):s=e[4];let c;return e[5]===o?c=e[6]:(c=(0,J.jsxs)(`header`,{className:i,children:[a,(0,J.jsxs)(`div`,{className:`flex w-full items-center justify-end gap-2`,children:[o,s]})]}),e[5]=o,e[6]=c),c}function ld(){let e=(0,X.c)(3),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,J.jsx)(`h1`,{className:`text-4xl font-bold`,children:`404`}),n=(0,J.jsx)(`p`,{className:`text-muted-foreground`,children:`Page not found`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,J.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4`,children:[t,n,(0,J.jsx)(pe,{to:`/`,children:(0,J.jsx)(ot,{variant:`outline`,children:`Go back home`})})]}),e[2]=r):r=e[2],r}function ud(){let e=(0,X.c)(224),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={select:dd},e[0]=t):t=e[0];let n=Za(t),r=_e(),i=h(),{isAdmin:a}=ql(),o;e[1]!==r||e[2]!==i?(o=function(){Ie(),Tr(),i.clear(),r({to:`/login`})},e[1]=r,e[2]=i,e[3]=o):o=e[3];let s=o,c;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsxs)(al,{className:`flex flex-row items-center gap-2 px-4 py-3`,children:[(0,J.jsx)(`img`,{src:`/mulga-logo.svg`,alt:`Mulga`,className:`size-6 shrink-0 dark:invert`}),(0,J.jsx)(`span`,{className:`truncate text-sm font-semibold group-data-[collapsible=icon]:hidden`,children:`Spinifex`})]}),e[4]=c):c=e[4];let l;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(ul,{children:`General`}),e[5]=l):l=e[5];let u=n===`/`,d,f;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,J.jsx)(Co,{className:`size-4`}),f=(0,J.jsx)(`span`,{children:`Dashboard`}),e[6]=d,e[7]=f):(d=e[6],f=e[7]);let p;e[8]===u?p=e[9]:(p=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/`,children:(0,J.jsxs)(ml,{isActive:u,tooltip:`Dashboard`,children:[d,f]})})}),e[8]=u,e[9]=p);let m;e[10]!==a||e[11]!==n?(m=a&&(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/nodes`,children:(0,J.jsxs)(ml,{isActive:n.startsWith(`/nodes`),tooltip:`Nodes`,children:[(0,J.jsx)(Lo,{className:`size-4`}),(0,J.jsx)(`span`,{children:`Nodes`})]})})}),e[10]=a,e[11]=n,e[12]=m):m=e[12];let g;e[13]!==p||e[14]!==m?(g=(0,J.jsxs)(ll,{children:[l,(0,J.jsxs)(dl,{children:[p,m]})]}),e[13]=p,e[14]=m,e[15]=g):g=e[15];let _;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,J.jsx)(ul,{children:`EC2`}),e[16]=_):_=e[16];let v;e[17]===n?v=e[18]:(v=n.startsWith(`/ec2/describe-instances`)||n.startsWith(`/ec2/run-instances`),e[17]=n,e[18]=v);let y,b;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,J.jsx)(Lo,{className:`size-4`}),b=(0,J.jsx)(`span`,{children:`Instances`}),e[19]=y,e[20]=b):(y=e[19],b=e[20]);let x;e[21]===v?x=e[22]:(x=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-instances`,children:(0,J.jsxs)(ml,{isActive:v,tooltip:`Instances`,children:[y,b]})})}),e[21]=v,e[22]=x);let S;e[23]===n?S=e[24]:(S=n.startsWith(`/ec2/describe-launch-templates`)||n.startsWith(`/ec2/create-launch-template`),e[23]=n,e[24]=S);let C,w;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,J.jsx)(bo,{className:`size-4`}),w=(0,J.jsx)(`span`,{children:`Launch Templates`}),e[25]=C,e[26]=w):(C=e[25],w=e[26]);let T;e[27]===S?T=e[28]:(T=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-launch-templates`,children:(0,J.jsxs)(ml,{isActive:S,tooltip:`Launch Templates`,children:[C,w]})})}),e[27]=S,e[28]=T);let E;e[29]===n?E=e[30]:(E=n.startsWith(`/ec2/describe-images`),e[29]=n,e[30]=E);let D,O;e[31]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,J.jsx)(To,{className:`size-4`}),O=(0,J.jsx)(`span`,{children:`Images`}),e[31]=D,e[32]=O):(D=e[31],O=e[32]);let ee;e[33]===E?ee=e[34]:(ee=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-images`,children:(0,J.jsxs)(ml,{isActive:E,tooltip:`Images`,children:[D,O]})})}),e[33]=E,e[34]=ee);let k;e[35]===n?k=e[36]:(k=n.startsWith(`/ec2/describe-key-pairs`),e[35]=n,e[36]=k);let te,ne;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,J.jsx)(Eo,{className:`size-4`}),ne=(0,J.jsx)(`span`,{children:`Key Pairs`}),e[37]=te,e[38]=ne):(te=e[37],ne=e[38]);let re;e[39]===k?re=e[40]:(re=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-key-pairs`,children:(0,J.jsxs)(ml,{isActive:k,tooltip:`Key Pairs`,children:[te,ne]})})}),e[39]=k,e[40]=re);let A;e[41]===n?A=e[42]:(A=n.startsWith(`/ec2/describe-addresses`)||n.startsWith(`/ec2/allocate-address`),e[41]=n,e[42]=A);let j,M;e[43]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,J.jsx)(Ao,{className:`size-4`}),M=(0,J.jsx)(`span`,{children:`Elastic IPs`}),e[43]=j,e[44]=M):(j=e[43],M=e[44]);let ie;e[45]===A?ie=e[46]:(ie=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-addresses`,children:(0,J.jsxs)(ml,{isActive:A,tooltip:`Elastic IPs`,children:[j,M]})})}),e[45]=A,e[46]=ie);let ae;e[47]===n?ae=e[48]:(ae=n.startsWith(`/ec2/describe-volumes`)||n.startsWith(`/ec2/create-volume`)||n.startsWith(`/ec2/modify-volume`),e[47]=n,e[48]=ae);let oe,se;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(oe=(0,J.jsx)(So,{className:`size-4`}),se=(0,J.jsx)(`span`,{children:`Volumes`}),e[49]=oe,e[50]=se):(oe=e[49],se=e[50]);let N;e[51]===ae?N=e[52]:(N=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-volumes`,children:(0,J.jsxs)(ml,{isActive:ae,tooltip:`Volumes`,children:[oe,se]})})}),e[51]=ae,e[52]=N);let ce;e[53]===n?ce=e[54]:(ce=n.startsWith(`/ec2/describe-snapshots`)||n.startsWith(`/ec2/create-snapshot`),e[53]=n,e[54]=ce);let le,ue;e[55]===Symbol.for(`react.memo_cache_sentinel`)?(le=(0,J.jsx)(go,{className:`size-4`}),ue=(0,J.jsx)(`span`,{children:`Snapshots`}),e[55]=le,e[56]=ue):(le=e[55],ue=e[56]);let de;e[57]===ce?de=e[58]:(de=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-snapshots`,children:(0,J.jsxs)(ml,{isActive:ce,tooltip:`Snapshots`,children:[le,ue]})})}),e[57]=ce,e[58]=de);let fe;e[59]===n?fe=e[60]:(fe=n.startsWith(`/ec2/describe-placement-groups`)||n.startsWith(`/ec2/create-placement-group`),e[59]=n,e[60]=fe);let me,he;e[61]===Symbol.for(`react.memo_cache_sentinel`)?(me=(0,J.jsx)(Do,{className:`size-4`}),he=(0,J.jsx)(`span`,{children:`Placement Groups`}),e[61]=me,e[62]=he):(me=e[61],he=e[62]);let P;e[63]===fe?P=e[64]:(P=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-placement-groups`,children:(0,J.jsxs)(ml,{isActive:fe,tooltip:`Placement Groups`,children:[me,he]})})}),e[63]=fe,e[64]=P);let ge;e[65]===n?ge=e[66]:(ge=n.startsWith(`/ec2/describe-load-balancers`)||n.startsWith(`/ec2/create-load-balancer`),e[65]=n,e[66]=ge);let F,ve;e[67]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,J.jsx)(Go,{className:`size-4`}),ve=(0,J.jsx)(`span`,{children:`Load Balancers`}),e[67]=F,e[68]=ve):(F=e[67],ve=e[68]);let ye;e[69]===ge?ye=e[70]:(ye=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-load-balancers`,children:(0,J.jsxs)(ml,{isActive:ge,tooltip:`Load Balancers`,children:[F,ve]})})}),e[69]=ge,e[70]=ye);let be;e[71]===n?be=e[72]:(be=n.startsWith(`/ec2/describe-target-groups`)||n.startsWith(`/ec2/create-target-group`),e[71]=n,e[72]=be);let xe,Se;e[73]===Symbol.for(`react.memo_cache_sentinel`)?(xe=(0,J.jsx)(yo,{className:`size-4`}),Se=(0,J.jsx)(`span`,{children:`Target Groups`}),e[73]=xe,e[74]=Se):(xe=e[73],Se=e[74]);let Ce;e[75]===be?Ce=e[76]:(Ce=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-target-groups`,children:(0,J.jsxs)(ml,{isActive:be,tooltip:`Target Groups`,children:[xe,Se]})})}),e[75]=be,e[76]=Ce);let we;e[77]!==x||e[78]!==T||e[79]!==ee||e[80]!==re||e[81]!==ie||e[82]!==N||e[83]!==de||e[84]!==P||e[85]!==ye||e[86]!==Ce?(we=(0,J.jsxs)(ll,{children:[_,(0,J.jsxs)(dl,{children:[x,T,ee,re,ie,N,de,P,ye,Ce]})]}),e[77]=x,e[78]=T,e[79]=ee,e[80]=re,e[81]=ie,e[82]=N,e[83]=de,e[84]=P,e[85]=ye,e[86]=Ce,e[87]=we):we=e[87];let Te;e[88]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,J.jsx)(ul,{children:`Networking`}),e[88]=Te):Te=e[88];let Ee;e[89]===n?Ee=e[90]:(Ee=n.startsWith(`/ec2/describe-vpcs`)||n.startsWith(`/ec2/create-vpc`),e[89]=n,e[90]=Ee);let De,Oe;e[91]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,J.jsx)(Mo,{className:`size-4`}),Oe=(0,J.jsx)(`span`,{children:`VPCs`}),e[91]=De,e[92]=Oe):(De=e[91],Oe=e[92]);let ke;e[93]===Ee?ke=e[94]:(ke=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-vpcs`,children:(0,J.jsxs)(ml,{isActive:Ee,tooltip:`VPCs`,children:[De,Oe]})})}),e[93]=Ee,e[94]=ke);let Ae;e[95]===n?Ae=e[96]:(Ae=n.startsWith(`/ec2/describe-subnets`)||n.startsWith(`/ec2/create-subnet`),e[95]=n,e[96]=Ae);let je,Me;e[97]===Symbol.for(`react.memo_cache_sentinel`)?(je=(0,J.jsx)(Oo,{className:`size-4`}),Me=(0,J.jsx)(`span`,{children:`Subnets`}),e[97]=je,e[98]=Me):(je=e[97],Me=e[98]);let Ne;e[99]===Ae?Ne=e[100]:(Ne=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-subnets`,children:(0,J.jsxs)(ml,{isActive:Ae,tooltip:`Subnets`,children:[je,Me]})})}),e[99]=Ae,e[100]=Ne);let I;e[101]===n?I=e[102]:(I=n.startsWith(`/ec2/describe-security-groups`)||n.startsWith(`/ec2/create-security-group`),e[101]=n,e[102]=I);let Pe,Fe;e[103]===Symbol.for(`react.memo_cache_sentinel`)?(Pe=(0,J.jsx)(Ro,{className:`size-4`}),Fe=(0,J.jsx)(`span`,{children:`Security Groups`}),e[103]=Pe,e[104]=Fe):(Pe=e[103],Fe=e[104]);let Le;e[105]===I?Le=e[106]:(Le=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-security-groups`,children:(0,J.jsxs)(ml,{isActive:I,tooltip:`Security Groups`,children:[Pe,Fe]})})}),e[105]=I,e[106]=Le);let L;e[107]===n?L=e[108]:(L=n.startsWith(`/ec2/describe-route-tables`)||n.startsWith(`/ec2/create-route-table`),e[107]=n,e[108]=L);let Re,ze;e[109]===Symbol.for(`react.memo_cache_sentinel`)?(Re=(0,J.jsx)(Fo,{className:`size-4`}),ze=(0,J.jsx)(`span`,{children:`Route Tables`}),e[109]=Re,e[110]=ze):(Re=e[109],ze=e[110]);let R;e[111]===L?R=e[112]:(R=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-route-tables`,children:(0,J.jsxs)(ml,{isActive:L,tooltip:`Route Tables`,children:[Re,ze]})})}),e[111]=L,e[112]=R);let z;e[113]===n?z=e[114]:(z=n.startsWith(`/ec2/describe-internet-gateways`),e[113]=n,e[114]=z);let B,Be;e[115]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,J.jsx)(xo,{className:`size-4`}),Be=(0,J.jsx)(`span`,{children:`Internet Gateways`}),e[115]=B,e[116]=Be):(B=e[115],Be=e[116]);let Ve;e[117]===z?Ve=e[118]:(Ve=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-internet-gateways`,children:(0,J.jsxs)(ml,{isActive:z,tooltip:`Internet Gateways`,children:[B,Be]})})}),e[117]=z,e[118]=Ve);let He;e[119]===n?He=e[120]:(He=n.startsWith(`/ec2/describe-nat-gateways`)||n.startsWith(`/ec2/create-nat-gateway`),e[119]=n,e[120]=He);let Ue,We;e[121]===Symbol.for(`react.memo_cache_sentinel`)?(Ue=(0,J.jsx)(Io,{className:`size-4`}),We=(0,J.jsx)(`span`,{children:`NAT Gateways`}),e[121]=Ue,e[122]=We):(Ue=e[121],We=e[122]);let Ge;e[123]===He?Ge=e[124]:(Ge=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ec2/describe-nat-gateways`,children:(0,J.jsxs)(ml,{isActive:He,tooltip:`NAT Gateways`,children:[Ue,We]})})}),e[123]=He,e[124]=Ge);let Ke;e[125]!==ke||e[126]!==Ne||e[127]!==Le||e[128]!==R||e[129]!==Ve||e[130]!==Ge?(Ke=(0,J.jsxs)(ll,{children:[Te,(0,J.jsxs)(dl,{children:[ke,Ne,Le,R,Ve,Ge]})]}),e[125]=ke,e[126]=Ne,e[127]=Le,e[128]=R,e[129]=Ve,e[130]=Ge,e[131]=Ke):Ke=e[131];let qe;e[132]===Symbol.for(`react.memo_cache_sentinel`)?(qe=(0,J.jsx)(ul,{children:`Containers`}),e[132]=qe):qe=e[132];let Je;e[133]===n?Je=e[134]:(Je=n.startsWith(`/eks/list-clusters`)||n.startsWith(`/eks/create-cluster`),e[133]=n,e[134]=Je);let Ye,Xe;e[135]===Symbol.for(`react.memo_cache_sentinel`)?(Ye=(0,J.jsx)(ho,{className:`size-4`}),Xe=(0,J.jsx)(`span`,{children:`EKS`}),e[135]=Ye,e[136]=Xe):(Ye=e[135],Xe=e[136]);let Ze;e[137]===Je?Ze=e[138]:(Ze=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/eks/list-clusters`,children:(0,J.jsxs)(ml,{isActive:Je,tooltip:`EKS clusters`,children:[Ye,Xe]})})}),e[137]=Je,e[138]=Ze);let Qe;e[139]===n?Qe=e[140]:(Qe=n.startsWith(`/ecr/list-repositories`),e[139]=n,e[140]=Qe);let $e,et;e[141]===Symbol.for(`react.memo_cache_sentinel`)?($e=(0,J.jsx)(No,{className:`size-4`}),et=(0,J.jsx)(`span`,{children:`ECR`}),e[141]=$e,e[142]=et):($e=e[141],et=e[142]);let tt;e[143]===Qe?tt=e[144]:(tt=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ecr/list-repositories`,children:(0,J.jsxs)(ml,{isActive:Qe,tooltip:`ECR repositories`,children:[$e,et]})})}),e[143]=Qe,e[144]=tt);let nt;e[145]===n?nt=e[146]:(nt=n.startsWith(`/ecs/`),e[145]=n,e[146]=nt);let rt,V;e[147]===Symbol.for(`react.memo_cache_sentinel`)?(rt=(0,J.jsx)(vo,{className:`size-4`}),V=(0,J.jsx)(`span`,{children:`ECS`}),e[147]=rt,e[148]=V):(rt=e[147],V=e[148]);let it;e[149]===nt?it=e[150]:(it=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/ecs/list-clusters`,children:(0,J.jsxs)(ml,{isActive:nt,tooltip:`ECS clusters`,children:[rt,V]})})}),e[149]=nt,e[150]=it);let at;e[151]!==Ze||e[152]!==tt||e[153]!==it?(at=(0,J.jsxs)(ll,{children:[qe,(0,J.jsxs)(dl,{children:[Ze,tt,it]})]}),e[151]=Ze,e[152]=tt,e[153]=it,e[154]=at):at=e[154];let ot;e[155]===Symbol.for(`react.memo_cache_sentinel`)?(ot=(0,J.jsx)(ul,{children:`IAM`}),e[155]=ot):ot=e[155];let st;e[156]===n?st=e[157]:(st=n.startsWith(`/iam/list-users`)||n.startsWith(`/iam/create-user`),e[156]=n,e[157]=st);let ct,lt;e[158]===Symbol.for(`react.memo_cache_sentinel`)?(ct=(0,J.jsx)(Wo,{className:`size-4`}),lt=(0,J.jsx)(`span`,{children:`Users`}),e[158]=ct,e[159]=lt):(ct=e[158],lt=e[159]);let ut;e[160]===st?ut=e[161]:(ut=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/iam/list-users`,children:(0,J.jsxs)(ml,{isActive:st,tooltip:`Users`,children:[ct,lt]})})}),e[160]=st,e[161]=ut);let dt;e[162]===n?dt=e[163]:(dt=n.startsWith(`/iam/list-groups`)||n.startsWith(`/iam/create-group`),e[162]=n,e[163]=dt);let ft,pt;e[164]===Symbol.for(`react.memo_cache_sentinel`)?(ft=(0,J.jsx)(Uo,{className:`size-4`}),pt=(0,J.jsx)(`span`,{children:`Groups`}),e[164]=ft,e[165]=pt):(ft=e[164],pt=e[165]);let mt;e[166]===dt?mt=e[167]:(mt=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/iam/list-groups`,children:(0,J.jsxs)(ml,{isActive:dt,tooltip:`Groups`,children:[ft,pt]})})}),e[166]=dt,e[167]=mt);let ht;e[168]===n?ht=e[169]:(ht=n.startsWith(`/iam/list-policies`)||n.startsWith(`/iam/create-policy`),e[168]=n,e[169]=ht);let gt,_t;e[170]===Symbol.for(`react.memo_cache_sentinel`)?(gt=(0,J.jsx)(zo,{className:`size-4`}),_t=(0,J.jsx)(`span`,{children:`Policies`}),e[170]=gt,e[171]=_t):(gt=e[170],_t=e[171]);let vt;e[172]===ht?vt=e[173]:(vt=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/iam/list-policies`,children:(0,J.jsxs)(ml,{isActive:ht,tooltip:`Policies`,children:[gt,_t]})})}),e[172]=ht,e[173]=vt);let yt;e[174]===n?yt=e[175]:(yt=n.startsWith(`/iam/list-roles`)||n.startsWith(`/iam/create-role`),e[174]=n,e[175]=yt);let bt,xt;e[176]===Symbol.for(`react.memo_cache_sentinel`)?(bt=(0,J.jsx)(Ho,{className:`size-4`}),xt=(0,J.jsx)(`span`,{children:`Roles`}),e[176]=bt,e[177]=xt):(bt=e[176],xt=e[177]);let St;e[178]===yt?St=e[179]:(St=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/iam/list-roles`,children:(0,J.jsxs)(ml,{isActive:yt,tooltip:`Roles`,children:[bt,xt]})})}),e[178]=yt,e[179]=St);let Ct;e[180]===n?Ct=e[181]:(Ct=n.startsWith(`/iam/list-instance-profiles`)||n.startsWith(`/iam/create-instance-profile`),e[180]=n,e[181]=Ct);let wt,Tt;e[182]===Symbol.for(`react.memo_cache_sentinel`)?(wt=(0,J.jsx)(wo,{className:`size-4`}),Tt=(0,J.jsx)(`span`,{children:`Instance Profiles`}),e[182]=wt,e[183]=Tt):(wt=e[182],Tt=e[183]);let Et;e[184]===Ct?Et=e[185]:(Et=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/iam/list-instance-profiles`,children:(0,J.jsxs)(ml,{isActive:Ct,tooltip:`Instance Profiles`,children:[wt,Tt]})})}),e[184]=Ct,e[185]=Et);let Dt;e[186]!==mt||e[187]!==vt||e[188]!==St||e[189]!==Et||e[190]!==ut?(Dt=(0,J.jsxs)(ll,{children:[ot,(0,J.jsxs)(dl,{children:[ut,mt,vt,St,Et]})]}),e[186]=mt,e[187]=vt,e[188]=St,e[189]=Et,e[190]=ut,e[191]=Dt):Dt=e[191];let Ot;e[192]===Symbol.for(`react.memo_cache_sentinel`)?(Ot=(0,J.jsx)(ul,{children:`S3`}),e[192]=Ot):Ot=e[192];let kt;e[193]===n?kt=e[194]:(kt=n.startsWith(`/s3/ls`),e[193]=n,e[194]=kt);let At,jt;e[195]===Symbol.for(`react.memo_cache_sentinel`)?(At=(0,J.jsx)(Lo,{className:`size-4`}),jt=(0,J.jsx)(`span`,{children:`Buckets`}),e[195]=At,e[196]=jt):(At=e[195],jt=e[196]);let Mt;e[197]===kt?Mt=e[198]:(Mt=(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/s3/ls`,children:(0,J.jsxs)(ml,{isActive:kt,tooltip:`Buckets`,children:[At,jt]})})}),e[197]=kt,e[198]=Mt);let Nt;e[199]!==a||e[200]!==n?(Nt=a&&(0,J.jsx)(fl,{children:(0,J.jsx)(pe,{to:`/s3/service-metrics`,children:(0,J.jsxs)(ml,{isActive:n.startsWith(`/s3/service-metrics`),tooltip:`Service Metrics`,children:[(0,J.jsx)(fo,{className:`size-4`}),(0,J.jsx)(`span`,{children:`Service Metrics`})]})})}),e[199]=a,e[200]=n,e[201]=Nt):Nt=e[201];let Pt;e[202]!==Mt||e[203]!==Nt?(Pt=(0,J.jsxs)(ll,{children:[Ot,(0,J.jsxs)(dl,{children:[Mt,Nt]})]}),e[202]=Mt,e[203]=Nt,e[204]=Pt):Pt=e[204];let Ft;e[205]===a?Ft=e[206]:(Ft=a&&(0,J.jsxs)(ll,{children:[(0,J.jsx)(ul,{children:`Documentation`}),(0,J.jsx)(dl,{children:(0,J.jsx)(fl,{children:(0,J.jsx)(`a`,{href:`https://docs.mulgadc.com`,target:`_blank`,rel:`noopener noreferrer`,children:(0,J.jsxs)(ml,{tooltip:`Documentation`,children:[(0,J.jsx)(mo,{className:`size-4`}),(0,J.jsx)(`span`,{children:`Docs`})]})})})})]}),e[205]=a,e[206]=Ft);let It;e[207]!==Dt||e[208]!==Pt||e[209]!==Ft||e[210]!==we||e[211]!==Ke||e[212]!==g||e[213]!==at?(It=(0,J.jsxs)(cl,{children:[g,we,Ke,at,Dt,Pt,Ft]}),e[207]=Dt,e[208]=Pt,e[209]=Ft,e[210]=we,e[211]=Ke,e[212]=g,e[213]=at,e[214]=It):It=e[214];let H;e[215]===Symbol.for(`react.memo_cache_sentinel`)?(H=(0,J.jsx)(sl,{className:`mx-0 w-full`}),e[215]=H):H=e[215];let Lt,Rt;e[216]===Symbol.for(`react.memo_cache_sentinel`)?(Lt=(0,J.jsx)(ko,{className:`size-4`}),Rt=(0,J.jsx)(`span`,{children:`Sign out`}),e[216]=Lt,e[217]=Rt):(Lt=e[216],Rt=e[217]);let zt;e[218]===s?zt=e[219]:(zt=(0,J.jsxs)(ol,{children:[H,(0,J.jsx)(dl,{children:(0,J.jsx)(fl,{children:(0,J.jsxs)(ml,{onClick:s,tooltip:`Sign out`,children:[Lt,Rt]})})})]}),e[218]=s,e[219]=zt);let Bt;e[220]===Symbol.for(`react.memo_cache_sentinel`)?(Bt=(0,J.jsx)(il,{}),e[220]=Bt):Bt=e[220];let Vt;return e[221]!==It||e[222]!==zt?(Vt=(0,J.jsxs)(nl,{collapsible:`icon`,children:[c,It,zt,Bt]}),e[221]=It,e[222]=zt,e[223]=Vt):Vt=e[223],Vt}function dd(e){return e.pathname}function fd(e){let t=(0,X.c)(18),{error:n,reset:r}=e,i=A(),a=h(),o;t[0]!==a||t[1]!==r||t[2]!==i?(o=function(){a.invalidateQueries(),r(),i.invalidate()},t[0]=a,t[1]=r,t[2]=i,t[3]=o):o=t[3];let s=o,c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(ud,{}),t[4]=c):c=t[4];let l;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,J.jsx)(cd,{}),t[5]=l):l=t[5];let u,d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,J.jsx)(`div`,{className:`flex justify-center`,children:(0,J.jsx)(_o,{className:`size-12 text-destructive`})}),d=(0,J.jsx)(`h1`,{className:`text-2xl font-semibold`,children:`Something went wrong`}),t[6]=u,t[7]=d):(u=t[6],d=t[7]);let f=n.message||`An unexpected error occurred`,p;t[8]===f?p=t[9]:(p=(0,J.jsx)(`p`,{className:`text-muted-foreground`,children:f}),t[8]=f,t[9]=p);let m;t[10]===s?m=t[11]:(m=(0,J.jsx)(ot,{onClick:s,variant:`default`,children:`Try Again`}),t[10]=s,t[11]=m);let g;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,J.jsx)(pe,{to:`/`,children:(0,J.jsx)(ot,{variant:`outline`,children:`Go Home`})}),t[12]=g):g=t[12];let _;t[13]===m?_=t[14]:(_=(0,J.jsxs)(`div`,{className:`flex justify-center gap-2`,children:[m,g]}),t[13]=m,t[14]=_);let v;return t[15]!==_||t[16]!==p?(v=(0,J.jsxs)(J.Fragment,{children:[c,(0,J.jsxs)(`main`,{className:`flex flex-1 flex-col`,children:[l,(0,J.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-6 pt-0`,children:(0,J.jsxs)(`div`,{className:`max-w-md space-y-4 text-center`,children:[u,d,p,_]})})]})]}),t[15]=_,t[16]=p,t[17]=v):v=t[17],v}var pd=ge()({head:()=>({meta:[{title:`Mulga`}]}),component:()=>(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(no,{}),(0,J.jsx)(ud,{}),(0,J.jsxs)(`main`,{className:`flex flex-1 flex-col`,children:[(0,J.jsx)(cd,{}),(0,J.jsx)(`div`,{className:`flex flex-1 flex-col p-8`,children:(0,J.jsx)(oe,{})})]})]}),errorComponent:fd,notFoundComponent:ld}),md=P(`/_auth`)({beforeLoad:()=>{if(!Re())throw de({to:`/login`})},component:F(()=>R(()=>import(`./route.js`),__vite__mapDeps([0,1,2,3,4,5])),`component`)}),hd=P(`/login`)({validateSearch:e=>({reason:e.reason===`expired`?`expired`:void 0}),beforeLoad:()=>{if(Re())throw de({to:`/`})},component:F(()=>R(()=>import(`./login.js`),__vite__mapDeps([6,1,7,8,9,10,11,12,13,14])),`component`)}),gd=P(`/_auth/`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(oi),e.queryClient.ensureQueryData(Vr),e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(ui),e.queryClient.ensureQueryData(oa),e.queryClient.ensureQueryData(gi),e.queryClient.ensureQueryData(Xr),e.queryClient.ensureQueryData(ci),e.queryClient.ensureQueryData(ei)])},head:()=>({meta:[{title:`Dashboard | Mulga`}]}),component:F(()=>R(()=>import(`./_auth.js`),__vite__mapDeps([15,1,16,3,7,8,17,18,19,20,21,11,12,22,23,24,25,10,14])),`component`)}),_d=P(`/_auth/nodes`)({head:()=>({meta:[{title:`Nodes | Mulga`}]}),component:F(()=>R(()=>import(`./nodes.js`),__vite__mapDeps([26,1,5,16,3,7,8,18,17,19,24,21,25,10,14])),`component`)}),vd=P(`/_auth/s3/service-metrics`)({head:()=>({meta:[{title:`Service Metrics | S3 | Mulga`}]}),component:F(()=>R(()=>import(`./service-metrics.js`),__vite__mapDeps([27,1,5,24,21,7,8,25,10,14])),`component`)}),yd=P(`/_auth/ec2/(elastic-ips)/allocate-address`)({head:()=>({meta:[{title:`Allocate Elastic IP | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./allocate-address.js`),__vite__mapDeps([28,1,29,3,30,9,10,7,8])),`component`)}),bd=e=>e.type===`checkbox`,Z=e=>e.type===`file`,xd=e=>e instanceof Date,Sd=e=>e==null,Cd=e=>typeof e==`object`,wd=e=>!Sd(e)&&!Array.isArray(e)&&Cd(e)&&!xd(e),Td=e=>wd(e)&&e.target?bd(e.target)?e.target.checked:Z(e.target)?e.target.files:e.target.value:e,Ed=(e,t)=>t.split(`.`).some((t,n,r)=>!isNaN(Number(t))&&e.has(r.slice(0,n).join(`.`))),Dd=e=>{let t=e.constructor&&e.constructor.prototype;return wd(t)&&t.hasOwnProperty(`isPrototypeOf`)},Od=typeof window<`u`&&window.HTMLElement!==void 0&&typeof document<`u`;function kd(e){if(e instanceof Date)return new Date(e);let t=typeof FileList<`u`&&e instanceof FileList;if(Od&&(e instanceof Blob||t))return e;let n=Array.isArray(e);if(!n&&!(wd(e)&&Dd(e)))return e;let r=n?[]:Object.create(Object.getPrototypeOf(e));for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=kd(e[t]));return r}var Ad={BLUR:`blur`,FOCUS_OUT:`focusout`,CHANGE:`change`,SUBMIT:`submit`,TRIGGER:`trigger`,VALID:`valid`},jd={onBlur:`onBlur`,onChange:`onChange`,onSubmit:`onSubmit`,onTouched:`onTouched`,all:`all`},Md={max:`max`,min:`min`,maxLength:`maxLength`,minLength:`minLength`,pattern:`pattern`,required:`required`,validate:`validate`},Nd=`root`,Pd=[`__proto__`,`constructor`,`prototype`],Fd=/^\w*$/,Id=e=>Fd.test(e),Ld=e=>e===void 0,Rd=/[.[\]'"]/,zd=e=>e.split(Rd).filter(Boolean),Q=(e,t,n)=>{if(!t||!wd(e))return n;let r=Id(t)?[t]:zd(t);if(r.some(e=>Pd.includes(e)))return n;let i=r.reduce((e,t)=>Sd(e)?void 0:e[t],e);return Ld(i)||i===e?Ld(e[t])?n:e[t]:i},Bd=e=>typeof e==`boolean`,Vd=e=>typeof e==`function`,Hd=(e,t,n)=>{let r=-1,i=Id(t)?[t]:zd(t),a=i.length,o=a-1;for(;++rq.useContext(Ud),Gd=(e,t,n,r=!0)=>{let i={};for(let a in e)Object.defineProperty(i,a,{get:()=>{let i=a;return t._proxyFormState[i]!==jd.all&&(t._proxyFormState[i]=!r||jd.all),n&&(n[i]=!0),e[i]}});return i},Kd=Od?q.useLayoutEffect:q.useEffect;function qd(e){let t=Wd(),{control:n=t,disabled:r,name:i,exact:a}=e||{},[o,s]=q.useState(()=>({...n._formState,defaultValues:n._defaultValues})),c=q.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Kd(()=>n._subscribe({name:i,formState:c.current,exact:a,callback:e=>{!r&&s({...n._formState,...e,defaultValues:n._defaultValues})}}),[i,r,a]),q.useEffect(()=>{c.current.isValid&&n._setValid(!0)},[n]),q.useMemo(()=>Gd(o,n,c.current,!1),[o,n])}var Jd=e=>typeof e==`string`,Yd=(e,t,n,r,i)=>Jd(e)?(r&&t.watch.add(e),Q(n,e,i)):Array.isArray(e)?e.map(e=>(r&&t.watch.add(e),Q(n,e))):(r&&(t.watchAll=!0),n),Xd=e=>Sd(e)||!Cd(e),Zd=(e,t)=>t.length===0&&!Array.isArray(e)&&!Dd(e);function Qd(e,t,n=new WeakMap){if(e===t)return!0;if(Xd(e)||Xd(t))return Object.is(e,t);if(xd(e)&&xd(t))return Object.is(e.getTime(),t.getTime());let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;if(Zd(e,r)||Zd(t,i))return Object.is(e,t);if(!r.length&&Array.isArray(e)!==Array.isArray(t))return!1;let a=n.get(e);if(a&&a.has(t))return!0;if(a)a.add(t);else{let r=new WeakSet;r.add(t),n.set(e,r)}for(let i of r){let r=e[i];if(!(i in t))return!1;if(i!==`ref`){let e=t[i];if(xd(r)&&xd(e)||(wd(r)||Array.isArray(r))&&(wd(e)||Array.isArray(e))?!Qd(r,e,n):!Object.is(r,e))return!1}}return!0}function $d(e){let t=Wd(),{control:n=t,name:r,defaultValue:i,disabled:a,exact:o,compute:s}=e||{},c=q.useRef(i),l=q.useRef(s),u=q.useRef(void 0),d=q.useRef(n),f=q.useRef(r);l.current=s;let[p,m]=q.useState(()=>{let e=n._getWatch(r,c.current);return l.current?l.current(e):e}),h=q.useCallback(e=>{let t=Yd(r,n._names,e||n._formValues,!1,c.current);return l.current?l.current(t):t},[n._formValues,n._names,r]),g=q.useCallback(e=>{if(!a){let t=Yd(r,n._names,e||n._formValues,!1,c.current);if(l.current){let e=l.current(t);Qd(e,u.current)||(m(e),u.current=e)}else m(t)}},[n._formValues,n._names,a,r]);Kd(()=>((d.current!==n||!Qd(f.current,r))&&(d.current=n,f.current=r,g()),n._subscribe({name:r,formState:{values:!0},exact:o,callback:e=>{g(e.values)}})),[n,o,r,g]),q.useEffect(()=>n._removeUnmounted());let _=d.current!==n,v=f.current,y=q.useMemo(()=>{if(a)return null;let e=!_&&!Qd(v,r);return _||e?h():null},[a,_,r,v,h]);return y===null?p:y}function ef(e){let t=Wd(),{name:n,disabled:r,control:i=t,shouldUnregister:a,defaultValue:o,exact:s=!0}=e,c=Ed(i._names.array,n),l=$d({control:i,name:n,defaultValue:q.useMemo(()=>Q(i._formValues,n,Q(i._defaultValues,n,o)),[i,n,o]),exact:s}),u=qd({control:i,name:n,exact:s}),d=q.useRef(e),f=q.useRef(null),p=q.useRef(i.register(n,{...e.rules,value:l,...Bd(e.disabled)?{disabled:e.disabled}:{}}));d.current=e;let m=q.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!Q(u.errors,n)},isDirty:{enumerable:!0,get:()=>!!Q(u.dirtyFields,n)},isTouched:{enumerable:!0,get:()=>!!Q(u.touchedFields,n)},isValidating:{enumerable:!0,get:()=>!!Q(u.validatingFields,n)},error:{enumerable:!0,get:()=>Q(u.errors,n)}}),[u,n]),h=q.useCallback(e=>{let t=Td(e);return Q(i._fields,n)||(p.current=i.register(n,{...d.current.rules,value:t})),p.current.onChange({target:{value:Td(e),name:n},type:Ad.CHANGE})},[n,i]),g=q.useCallback(()=>p.current.onBlur({target:{value:Q(i._formValues,n),name:n},type:Ad.BLUR}),[n,i._formValues]),_=q.useCallback(e=>{e&&(f.current={focus:()=>Vd(e.focus)&&e.focus(),select:()=>Vd(e.select)&&e.select(),setCustomValidity:t=>Vd(e.setCustomValidity)&&e.setCustomValidity(t),reportValidity:()=>Vd(e.reportValidity)&&e.reportValidity()});let t=Q(i._fields,n);t&&t._f&&e&&(t._f.ref=f.current)},[i._fields,n]),v=q.useMemo(()=>({name:n,value:l,...Bd(r)||u.disabled?{disabled:u.disabled||r}:{},onChange:h,onBlur:g,ref:_}),[n,r,u.disabled,h,g,_,l]);return q.useEffect(()=>{let e=i._options.shouldUnregister||a;p.current=i.register(n,{...d.current.rules,...Bd(d.current.disabled)?{disabled:d.current.disabled}:{}});let t=(e,t)=>{let n=Q(i._fields,e);n&&n._f&&(n._f.mount=t)};if(t(n,!0),e){let e=kd(Q(a?i._defaultValues:i._options.values||i._defaultValues,n,Q(i._options.defaultValues,n,d.current.defaultValue)));Hd(i._defaultValues,n,e),Ld(Q(i._formValues,n))&&Hd(i._formValues,n,e)}if(!c&&i.register(n),f.current){let e=Q(i._fields,n);e&&e._f&&(e._f.ref=f.current)}return()=>{(c?e&&!i._state.action:e)?i.unregister(n):t(n,!1)}},[n,i,c,a]),q.useEffect(()=>{i._setDisabledField({disabled:r,name:n})},[r,n,i]),q.useMemo(()=>({field:v,formState:u,fieldState:m}),[v,u,m])}var tf=e=>e.render(ef(e)),nf=()=>{if(typeof crypto<`u`&&crypto.randomUUID)return crypto.randomUUID();let e=typeof performance>`u`?Date.now():performance.now()*1e3;return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,t=>{let n=(Math.random()*16+e)%16|0;return(t==`x`?n:n&3|8).toString(16)})},rf=(e,t,n={})=>n.shouldFocus||Ld(n.shouldFocus)?n.focusName||`${e}.${Ld(n.focusIndex)?t:n.focusIndex}.`:``,af=e=>({isOnSubmit:!e||e===jd.onSubmit,isOnBlur:e===jd.onBlur,isOnChange:e===jd.onChange,isOnAll:e===jd.all,isOnTouch:e===jd.onTouched}),of=(e,t,n)=>{if(n)return!1;if(t.watchAll||t.watch.has(e))return!0;for(let n of t.watch)if(e.startsWith(n)&&e.charAt(n.length)===`.`)return!0;return!1},sf=(e,t,n,r)=>{for(let i of n||Object.keys(e)){let n=Q(e,i);if(n){let{_f:e,...a}=n;if(e){if(e.refs&&e.refs[0]&&t(e.refs[0],i)&&!r||e.ref&&t(e.ref,e.name)&&!r)return!0;if(sf(a,t))break}else if(wd(a)&&sf(a,t))break}}},cf=(e,t,n)=>{let r=Q(e,n),i=Array.isArray(r)?r:[];return Hd(i,Nd,t[n]),Hd(e,n,i),e},lf=e=>wd(e)&&!Object.keys(e).length,uf=e=>{if(!Od)return!1;let t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},df=e=>e.type===`radio`,ff=e=>e instanceof RegExp,pf=(e,t,n,r,i)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:i||!0}}:{},mf={value:!1,isValid:!1},hf={value:!0,isValid:!0},gf=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!Ld(e[0].attributes.value)?Ld(e[0].value)||e[0].value===``?hf:{value:e[0].value,isValid:!0}:hf:mf}return mf},_f={isValid:!1,value:null},vf=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,_f):_f;function yf(e,t,n=`validate`){if(Jd(e)||Array.isArray(e)&&e.every(Jd)||Bd(e)&&!e)return{type:n,message:Jd(e)?e:``,ref:t}}var bf=e=>wd(e)&&!ff(e)?e:{value:e,message:``},xf=async(e,t,n,r,i,a)=>{let{ref:o,refs:s,required:c,maxLength:l,minLength:u,min:d,max:f,pattern:p,validate:m,name:h,valueAsNumber:g,mount:_}=e._f,v=Q(n,h);if(!_||t.has(h))return{};let y=s?s[0]:o,b=e=>{if(i&&y.reportValidity){let t=Bd(e)?``:e||``;s?s.forEach(e=>e.setCustomValidity(t)):y.setCustomValidity(t),y.reportValidity()}},x={},S=df(o),C=bd(o),w=S||C,T=(g||Z(o))&&Ld(o.value)&&Ld(v)||uf(o)&&o.value===``||v===``||Array.isArray(v)&&!v.length,E=pf.bind(null,h,r,x),D=(e,t,n,r=Md.maxLength,i=Md.minLength)=>{let a=e?t:n;x[h]={type:e?r:i,message:a,ref:o,...E(e?r:i,a)}};if(a?!Array.isArray(v)||!v.length:c&&(!w&&(T||Sd(v))||Bd(v)&&!v||C&&!gf(s).isValid||S&&!vf(s).isValid)){let{value:e,message:t}=Jd(c)?{value:!!c,message:c}:bf(c);if(e&&(x[h]={type:Md.required,message:t,ref:y,...E(Md.required,t)},!r))return b(t),x}if(!T&&(!Sd(d)||!Sd(f))){let e,t,n=bf(f),i=bf(d);if(!Sd(v)&&!isNaN(v)){let r=o.valueAsNumber||v&&+v;Sd(n.value)||(e=r>n.value),Sd(i.value)||(t=rnew Date(new Date().toDateString()+` `+e),s=o.type==`time`,c=o.type==`week`;Jd(n.value)&&v&&(e=s?a(v)>a(n.value):c?v>n.value:r>new Date(n.value)),Jd(i.value)&&v&&(t=s?a(v)+e.value,i=!Sd(t.value)&&v.length<+t.value;if((n||i)&&(D(n,e.message,t.message),!r))return b(x[h].message),x}if(p&&!T&&Jd(v)){let{value:e,message:t}=bf(p);if(ff(e)&&!v.match(e)&&(x[h]={type:Md.pattern,message:t,ref:o,...E(Md.pattern,t)},!r))return b(t),x}if(m){if(Vd(m)){let e=yf(await m(v,n),y);if(e&&(x[h]={...e,...E(Md.validate,e.message)},!r))return b(e.message),x}else if(wd(m)){let e={};for(let t in m){if(!lf(e)&&!r)break;let i=yf(await m[t](v,n),y,t);i&&(e={...i,...E(t,i.message)},b(i.message),r&&(x[h]=e))}if(!lf(e)&&(x[h]={ref:y,...e},!r))return x}}return b(!0),x},Sf=e=>Array.isArray(e)?e:[e],Cf=(e,t)=>[...e,...Sf(t)],wf=e=>Array.isArray(e)?e.map(()=>void 0):void 0;function Tf(e,t,n){return[...e.slice(0,t),...Sf(n),...e.slice(t)]}var Ef=(e,t,n)=>Array.isArray(e)?(Ld(e[n])&&(e[n]=void 0),e.splice(n,0,e.splice(t,1)[0]),e):[],Df=(e,t)=>[...Sf(t),...Sf(e)],Of=e=>Array.isArray(e)?e.filter(Boolean):[];function kf(e,t){let n=0,r=[...e];for(let e of t)r.splice(e-n,1),n++;return Of(r).length?r:[]}var Af=(e,t)=>Ld(t)?[]:kf(e,Sf(t).sort((e,t)=>e-t)),jf=(e,t,n)=>{[e[t],e[n]]=[e[n],e[t]]};function Mf(e,t){let n=t.slice(0,-1).length,r=0;for(;rPd.includes(String(e))))return e;let r=n.length===1?e:Mf(e,n),i=n.length-1,a=n[i];return r&&delete r[a],i!==0&&(wd(r)&&lf(r)||Array.isArray(r)&&Nf(r))&&Pf(e,n.slice(0,-1)),e}var Ff=(e,t,n)=>(e[t]=n,e);function If(e){let t=Wd(),{control:n=t,name:r,keyName:i=`id`,disabled:a,shouldUnregister:o,rules:s}=e,[c,l]=q.useState(n._getFieldArray(r)),u=q.useRef(n._getFieldArray(r).map(nf)),d=q.useRef(!1);a||n._names.array.add(r),q.useMemo(()=>!a&&s&&c.length>=0&&n.register(r,s),[n,r,c.length,s,a]),Kd(()=>{if(!a)return n._subjects.array.subscribe({next:({values:e,name:t})=>{if(t===r||!t){let n=Q(e,r);Array.isArray(n)?(l(n),u.current=n.map(nf)):t||(l([]),u.current=[])}}}).unsubscribe},[n,r,a]);let f=q.useCallback(e=>{d.current=!0,n._setFieldArray(r,e)},[n,r]);return q.useEffect(()=>{if(a)return;n._state.action=!1,of(r,n._names)&&n._subjects.state.next({...n._formState});let e=af(n._options.mode);if(d.current&&(!e.isOnSubmit||n._formState.isSubmitted)&&!af(n._options.reValidateMode).isOnSubmit&&!e.isOnBlur)if(n._options.resolver)n._runSchema([r]).then(e=>{n._updateIsValidating([r]);let t=Q(e.errors,r),i=Q(n._formState.errors,r),a=i&&(i.type||i.root?.type),o=i&&(i.message||i.root?.message);(i?!t&&a||t&&(a!==t.type||o!==t.message):t&&t.type)&&(t?wd(t)&&!Object.keys(t).some(e=>!Number.isNaN(+e))?cf(n._formState.errors,{[r]:t},r):Hd(n._formState.errors,r,t):Pf(n._formState.errors,r),n._subjects.state.next({errors:n._formState.errors}))});else{let e=Q(n._fields,r);e&&e._f&&!(af(n._options.reValidateMode).isOnSubmit&&af(n._options.mode).isOnSubmit)&&xf(e,n._names.disabled,n._formValues,n._options.criteriaMode===jd.all,n._options.shouldUseNativeValidation,!0).then(e=>!lf(e)&&n._subjects.state.next({errors:cf(n._formState.errors,e,r)}))}d.current&&n._subjects.state.next({name:r,values:kd(n._formValues)}),n._names.focus&&sf(n._fields,(e,t)=>{if(n._names.focus&&t.startsWith(n._names.focus)&&e.focus)return e.focus(),1}),n._names.focus=``,n._setValid(),d.current=!1},[c,r,n,a]),q.useEffect(()=>(a||!Q(n._formValues,r)&&n._setFieldArray(r),()=>{if(a)return;let e=!(n._options.shouldUnregister||o);d.current&&e&&n._subjects.state.next({name:r,values:kd(n._formValues)}),e?((e,t)=>{let r=Q(n._fields,e);r&&r._f&&(r._f.mount=t)})(r,!1):n.unregister(r)}),[r,n,i,o,a]),{swap:q.useCallback((e,t)=>{if(a)return;let i=n._getFieldArray(r);jf(i,e,t),jf(u.current,e,t),f(i),l(i),n._setFieldArray(r,i,jf,{argA:e,argB:t},!1)},[f,r,n,a]),move:q.useCallback((e,t)=>{if(a)return;let i=n._getFieldArray(r);Ef(i,e,t),Ef(u.current,e,t),f(i),l(i),n._setFieldArray(r,i,Ef,{argA:e,argB:t},!1)},[f,r,n,a]),prepend:q.useCallback((e,t)=>{if(a)return;let i=Sf(kd(e)),o=Df(n._getFieldArray(r),i);n._names.focus=rf(r,0,t),u.current=Df(u.current,i.map(nf)),f(o),l(o),n._setFieldArray(r,o,Df,{argA:wf(e)})},[f,r,n,a]),append:q.useCallback((e,t)=>{if(a)return;let i=Sf(kd(e)),o=Cf(n._getFieldArray(r),i);n._names.focus=rf(r,o.length-1,t),u.current=Cf(u.current,i.map(nf)),f(o),l(o),n._setFieldArray(r,o,Cf,{argA:wf(e)})},[f,r,n,a]),remove:q.useCallback(e=>{if(a)return;let t=Af(n._getFieldArray(r),e);u.current=Af(u.current,e),f(t),l(t),!Array.isArray(Q(n._fields,r))&&Hd(n._fields,r,void 0),n._setFieldArray(r,t,Af,{argA:e})},[f,r,n,a]),insert:q.useCallback((e,t,i)=>{if(a)return;let o=Sf(kd(t)),s=Tf(n._getFieldArray(r),e,o);n._names.focus=rf(r,e,i),u.current=Tf(u.current,e,o.map(nf)),f(s),l(s),n._setFieldArray(r,s,Tf,{argA:e,argB:wf(t)})},[f,r,n,a]),update:q.useCallback((e,t)=>{if(a)return;let i=kd(t),o=Ff(n._getFieldArray(r),e,i);u.current=[...o].map((t,n)=>!t||n===e?nf():u.current[n]),f(o),l([...o]),n._setFieldArray(r,o,Ff,{argA:e,argB:i},!0,!1)},[f,r,n,a]),replace:q.useCallback(e=>{if(a)return;let t=Sf(kd(e));u.current=t.map(nf),f([...t]),l([...t]),n._setFieldArray(r,[...t],e=>e,{},!0,!1)},[f,r,n,a]),fields:q.useMemo(()=>c.map((e,t)=>({...e,...Bd(a)?{disabled:a}:{},[i]:u.current[t]||nf()})),[c,i,a])}}var Lf=e=>{let t={};for(let n of Object.keys(e))if(Cd(e[n])&&e[n]!==null&&!xd(e[n])){let r=Lf(e[n]);for(let e of Object.keys(r))t[`${n}.${e}`]=r[e]}else t[n]=e[n];return t},Rf=q.createContext(null);Rf.displayName=`HookFormContext`;var zf=()=>{let e=[];return{get observers(){return e},next:t=>{for(let n of e)n.next&&n.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}};function Bf(e,t){let n={};for(let r in e)if(e.hasOwnProperty(r)){let i=e[r],a=t[r];if(i&&wd(i)&&a){let e=Bf(i,a);wd(e)&&(n[r]=e)}else e[r]&&(n[r]=a)}return n}var Vf=e=>e.type===`select-multiple`,Hf=e=>df(e)||bd(e),Uf=e=>uf(e)&&e.isConnected,Wf=e=>{for(let t in e)if(Vd(e[t]))return!0;return!1};function Gf(e){return Array.isArray(e)||wd(e)&&!Wf(e)}function Kf(e){return!!(e&&`_f`in e)}function qf(e){return Array.isArray(e)?!e.some(e=>!Ld(e)):!Object.keys(e).length}function Jf(e,t){Array.isArray(e)?e[t]=void 0:delete e[t]}function Yf(e,t={},n){for(let r in e){let i=e[r],a=n&&n[r];Gf(i)&&(!Array.isArray(i)||!Kf(a))?(t[r]=Array.isArray(i)?[]:{},Yf(i,t[r],a),qf(t[r])&&Jf(t,r)):Ld(i)||(t[r]=!0)}return t}function Xf(e,t,n,r){n||=Yf(t,{},r);for(let i in e){let a=e[i],o=r&&r[i];Gf(a)&&(!Array.isArray(a)||!Kf(o))?(Ld(t)||Xd(n[i])?n[i]=Yf(a,Array.isArray(a)?[]:{},o):Xf(a,Sd(t)?{}:t[i],n[i],o),qf(n[i])&&Jf(n,i)):Qd(a,t[i])?Jf(n,i):n[i]=!0}return n}var Zf=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>Ld(e)?e:t?e===``?NaN:e&&+e:n&&Jd(e)?new Date(e):r?r(e):e;function Qf(e){let t=e.ref;return Z(t)?t.files:df(t)?vf(e.refs).value:Vf(t)?[...t.selectedOptions].map(({value:e})=>e):bd(t)?gf(e.refs).value:Zf(Ld(t.value)?e.ref.value:t.value,e)}var $f=(e,t,n,r)=>{let i={};for(let n of e){let e=Q(t,n);e&&Hd(i,n,e._f)}return{criteriaMode:n,names:[...e],fields:i,shouldUseNativeValidation:r}},ep=e=>Ld(e)?e:ff(e)?e.source:wd(e)?ff(e.value)?e.value.source:e.value:e,tp=`AsyncFunction`,np=e=>{if(!e||!e.validate)return!1;if(Vd(e.validate))return e.validate.constructor.name===tp;if(wd(e.validate)){for(let t in e.validate)if(e.validate[t].constructor.name===tp)return!0}return!1},rp=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate);function ip(e,t,n){let r=Q(e,n);if(r||Id(n))return{error:r,name:n};let i=n.split(`.`);for(;i.length;){let r=i.join(`.`),a=Q(t,r),o=Q(e,r);if(a&&!Array.isArray(a)&&n!==r)return{name:n};if(o&&o.type)return{name:r,error:o};if(o&&o.root&&o.root.type)return{name:`${r}.root`,error:o.root};i.pop()}return{name:n}}var ap=(e,t,n,r)=>{n(e);let{name:i,...a}=e,o=Object.keys(a);return!o.length||r&&o.length>=Object.keys(t).length||o.find(e=>t[e]===(!r||jd.all))},op=(e,t,n)=>!e||!t||e===t||Sf(e).some(e=>e&&(n?e===t||e.startsWith(t+`.`):e.startsWith(t)||t.startsWith(e))),sp=(e,t,n,r,i)=>i.isOnAll?!1:!n&&i.isOnTouch?!(t||e):(n?r.isOnBlur:i.isOnBlur)?!e:!(n?r.isOnChange:i.isOnChange)||e,cp=(e,t)=>!Of(Q(e,t)).length&&Pf(e,t),lp={mode:jd.onSubmit,reValidateMode:jd.onChange,shouldFocusError:!0},up=`form`,dp=(e,t)=>{for(let n in e)n in t||delete e[n];Object.assign(e,t)},fp={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function pp(e={}){let t={...lp,...e},n={...kd(fp),isLoading:Vd(t.defaultValues),errors:t.errors||{},disabled:t.disabled||!1},r={},i=(wd(t.defaultValues)||wd(t.values))&&kd(t.defaultValues||t.values)||{},a=t.shouldUnregister?{}:kd(i),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},s={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},c={},l={},u=0,d=af(t.mode),f=af(t.reValidateMode),p={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},m={...p},h={...m},g={array:zf(),state:zf()},_=0,v=t.criteriaMode===jd.all,y=(e,t)=>n=>{clearTimeout(l[e]),l[e]=setTimeout(t,n)},b=async e=>{if(!o.keepIsValid&&!t.disabled&&(m.isValid||h.isValid||e)){let e=++_,i;t.resolver?(i=lf((await k()).errors),e===_&&x()):i=await re({fields:r,onlyCheckValid:!0,eventType:Ad.VALID}),e===_&&i!==n.isValid&&g.state.next({isValid:i})}},x=(e,r)=>{!t.disabled&&(m.isValidating||m.validatingFields||h.isValidating||h.validatingFields)&&((e||Array.from(s.mount)).forEach(e=>{e&&(r?Hd(n.validatingFields,e,r):Pf(n.validatingFields,e))}),g.state.next({validatingFields:n.validatingFields,isValidating:!lf(n.validatingFields)}))},S=()=>{n.dirtyFields=Xf(i,a,void 0,r)},C=(e,i=[],s,c,l=!0,u=!0)=>{if(c&&s&&!t.disabled){if(o.action=!0,u&&Array.isArray(Q(r,e))){let t=s(Q(r,e),c.argA,c.argB);l&&Hd(r,e,t)}if(u&&Array.isArray(Q(n.errors,e))){let t=s(Q(n.errors,e),c.argA,c.argB);l&&Hd(n.errors,e,t),cp(n.errors,e)}if((m.touchedFields||h.touchedFields)&&u&&Array.isArray(Q(n.touchedFields,e))){let t=s(Q(n.touchedFields,e),c.argA,c.argB);l&&Hd(n.touchedFields,e,t)}(m.dirtyFields||h.dirtyFields)&&S(),g.state.next({name:e,isDirty:j(e,i),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else Hd(a,e,i)},w=(e,t)=>{Hd(n.errors,e,t),n.errors={...n.errors},g.state.next({errors:n.errors})},T=e=>{n.errors=e,g.state.next({errors:n.errors,isValid:!1})},E=e=>{let t=Id(e)?[e]:zd(e),n=a,r=i;for(let e=0;e{let d=Q(r,t);if(d){if(E(t))return;let r=Ld(Q(a,t)),f=Q(a,t,Ld(l)?Q(i,t):l);Ld(f)||u&&u.defaultChecked||c?Hd(a,t,c?f:Qf(d._f)):ae(t,f),o.mount&&!o.action&&(b(),r&&n.isDirty&&(m.isDirty||h.isDirty)&&(j()||(n.isDirty=!1,g.state.next({...n}))),e.shouldUnregister&&r&&!Ld(Q(a,t))&&of(t,s)&&(o.watch=!0))}},O=(e,o,s,c,l)=>{let u=!1,d=!1,f={name:e};if(!t.disabled||c===!0){if(!s||c){let t=Qd(Q(i,e),o);(m.isDirty||h.isDirty)&&(d=n.isDirty,n.isDirty=f.isDirty=!t||j(),u=d!==f.isDirty),d=!!Q(n.dirtyFields,e),t===n.isDirty?t?Pf(n.dirtyFields,e):Hd(n.dirtyFields,e,!0):dp(n.dirtyFields,Xf(i,a,void 0,r)),f.dirtyFields=n.dirtyFields,u||=(m.dirtyFields||h.dirtyFields)&&d!==!t}if(s){let t=Q(n.touchedFields,e);t||(Hd(n.touchedFields,e,s),f.touchedFields=n.touchedFields,u||=(m.touchedFields||h.touchedFields)&&t!==s)}u&&l&&g.state.next(f)}return u?f:{}},ee=(e,r,i,a)=>{let o=Q(n.errors,e),s=(m.isValid||h.isValid)&&Bd(r)&&n.isValid!==r;if(t.delayError&&i?(c[e]=y(e,()=>w(e,i)),c[e](t.delayError)):(clearTimeout(l[e]),delete c[e],i?Hd(n.errors,e,i):Pf(n.errors,e),n.errors={...n.errors}),(i?!Qd(o,i):o)||!lf(a)||s){let t={...a,...s&&Bd(r)?{isValid:r}:{},errors:n.errors,name:e};n={...n,...t},g.state.next(t)}},k=async e=>(x(e,!0),await t.resolver(a,t.context,$f(e||s.mount,r,t.criteriaMode,t.shouldUseNativeValidation))),te=async e=>{let{errors:t}=await k(e);if(x(e),e){for(let r of e){let e=Q(t,r);e?s.array.has(r)&&wd(e)&&!Object.keys(e).some(e=>!Number.isNaN(Number(e)))?cf(n.errors,{[r]:e},r):Hd(n.errors,r,e):Pf(n.errors,r)}n.errors={...n.errors}}else n.errors=t;return t},ne=async({name:t,eventType:r})=>{if(e.validate){let i=await e.validate({formValues:a,formState:n,name:t,eventType:r});if(wd(i))for(let e in i){let t=i[e];t&&he(`${up}.${e}`,{message:Jd(t.message)?t.message:``,type:t.type||Md.validate})}else Jd(i)||!i?he(up,{message:i||``,type:Md.validate}):me(up);return i}return!0},re=async({fields:r,onlyCheckValid:i,name:o,eventType:c,context:l={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(l.runRootValidation=!0,!await ne({name:o,eventType:c})&&(l.valid=!1,i)))return l.valid;for(let o in r){let u=r[o];if(u){let{_f:r,...d}=u;if(r){let o=s.array.has(r.name),c=u._f&&np(u._f),d=m.validatingFields||m.isValidating||h.validatingFields||h.isValidating;c&&d&&x([r.name],!0);let f=await xf(u,s.disabled,a,v,t.shouldUseNativeValidation&&!i,o);if(c&&d&&x([r.name]),f[r.name]&&(l.valid=!1,i)||(!i&&(Q(f,r.name)?o?cf(n.errors,f,r.name):Hd(n.errors,r.name,f[r.name]):Pf(n.errors,r.name)),e.shouldUseNativeValidation&&f[r.name]))break}!lf(d)&&await re({context:l,onlyCheckValid:i,fields:d,name:o,eventType:c})}}return l.valid},A=()=>{for(let e of s.unMount){let t=Q(r,e);t&&(t._f.refs?t._f.refs.every(e=>!Uf(e)):!Uf(t._f.ref))&&_e(e)}s.unMount=new Set},j=(e,t)=>(e&&t&&Hd(a,e,t),!Qd(o.mount?a:i,i)),M=(e,t,n)=>Yd(e,s,{...o.mount?a:Ld(t)?i:Jd(e)?{[e]:t}:t},n,t),ie=e=>Of(Q(o.mount?a:i,e,t.shouldUnregister?Q(i,e,[]):[])),ae=(e,t,n={},i=!1,o=!1)=>{let s=Q(r,e),c=t;if(s){let n=s._f;n&&(!n.disabled&&Hd(a,e,Zf(t,n)),c=uf(n.ref)&&Sd(t)?``:t,Vf(n.ref)?[...n.ref.options].forEach(e=>e.selected=c.includes(e.value)):n.refs?bd(n.ref)?n.refs.forEach(e=>{(!e.defaultChecked||!e.disabled)&&(e.checked=Array.isArray(c)?!!c.find(t=>t===e.value):c===e.value||!!c)}):n.refs.forEach(e=>e.checked=e.value===c):Z(n.ref)?n.ref.value=``:(n.ref.value=c,!n.ref.type&&!o&&g.state.next({name:e,values:i?a:kd(a)})))}(n.shouldDirty||n.shouldTouch)&&O(e,c,n.shouldTouch,n.shouldDirty,!o),n.shouldValidate&&de(e,{delayError:n.delayError})},oe=(e,t,n,i=!1,a=!1)=>{for(let o in t){if(!t.hasOwnProperty(o))return;let c=t[o],l=e+`.`+o,u=Q(r,l);(s.array.has(e)||wd(c)||u&&!u._f)&&!xd(c)?oe(l,c,n,i,a):ae(l,c,n,i,a)}},se=(e,t,i,c,l=!1)=>{let u=Q(r,e),d=s.array.has(e),f=c?t:kd(t),p=Qd(Q(a,e),f);if(p||Hd(a,e,f),d)g.array.next({name:e,values:c?a:kd(a)}),(m.isDirty||m.dirtyFields||h.isDirty||h.dirtyFields)&&i.shouldDirty&&(S(),l||g.state.next({name:e,dirtyFields:n.dirtyFields,isDirty:j(e,f)}));else{let t=Array.isArray(f)&&!f.length||lf(f);!u||u._f||Sd(f)||t?ae(e,f,i,c,l):oe(e,f,i,c,l)}if(!p&&!l){let t=of(e,s),r=c?a:kd(a);g.state.next({...t&&n,name:o.mount||t?e:void 0,values:r})}},N=(e,t,n={})=>se(e,t,n,!1),ce=(e,t={})=>{let r=Vd(e)?e(a):e;if(!Qd(a,r)){a={...a,...r};let e=Lf(r);for(let n of s.mount)n in e&&se(n,e[n],t,!0,!0);g.state.next({...n,name:void 0,type:void 0,...u?{values:a}:{}}),t.shouldValidate&&b()}},le=async i=>{o.mount=!0;let l=i.target,p=l.name,_=!0,y=Q(r,p),S=e=>{_=Number.isNaN(e)||xd(e)&&isNaN(e.getTime())||Qd(e,Q(a,p,e))};if(y){let o,C,w=l.type?Qf(y._f):Td(i),T=i.type===Ad.BLUR||i.type===Ad.FOCUS_OUT,E=!rp(y._f)&&!e.validate&&!t.resolver&&!Q(n.errors,p)&&!y._f.deps,D=E||sp(T,Q(n.touchedFields,p),n.isSubmitted,f,d),te=of(p,s,T);if(Hd(a,p,w),T){if(!l||!l.readOnly){y._f.onBlur&&y._f.onBlur(i);let e=c[p];e&&e(0)}}else y._f.onChange&&y._f.onChange(i);let A=O(p,w,T),j=!lf(A)||te;if(!T&&g.state.next({name:p,type:i.type,...u?{values:kd(a)}:{}}),D)return(!E||!n.isValid)&&(m.isValid||h.isValid)&&(t.mode===`onBlur`?T&&b():T||b()),j&&g.state.next({name:p,...te?{}:A});if(!t.resolver&&e.validate&&await ne({name:p,eventType:i.type}),!T&&te&&g.state.next({...n}),t.resolver){let{errors:e}=await k([p]);if(x([p]),S(w),!_){!lf(A)&&g.state.next(A);return}let t=ip(n.errors,r,p),i=ip(e,r,t.name||p);o=i.error,p=i.name,C=lf(e)}else x([p],!0),o=(await xf(y,s.disabled,a,v,t.shouldUseNativeValidation))[p],x([p]),S(w),_&&(o?C=!1:(m.isValid||h.isValid)&&(C=await re({fields:r,onlyCheckValid:!0,name:p,eventType:i.type})));_&&(y._f.deps&&(!Array.isArray(y._f.deps)||y._f.deps.length>0)&&de(y._f.deps),ee(p,C,o,A))}},ue=(e,t)=>{if(Q(n.errors,t)&&e.focus)return e.focus(),1},de=async(e,i={})=>{let a,o,u=Sf(e);if(t.resolver){let t=await te(Ld(e)?e:u);a=lf(t),o=e?!u.some(e=>Q(t,e)):a}else e?(o=(await Promise.all(u.map(async e=>{let t=Q(r,e);return await re({fields:t&&t._f?{[e]:t}:t,eventType:Ad.TRIGGER})}))).every(Boolean),!(!o&&!n.isValid)&&b()):o=a=await re({fields:r,name:e,eventType:Ad.TRIGGER});if(i.delayError&&t.delayError&&Jd(e)){let r=Q(n.errors,e);r?(Pf(n.errors,e),c[e]=y(e,()=>w(e,r)),c[e](t.delayError)):(clearTimeout(l[e]),delete c[e])}return g.state.next({...!Jd(e)||(m.isValid||h.isValid)&&a!==n.isValid?{}:{name:e},...t.resolver||!e?{isValid:a}:{},errors:n.errors}),i.shouldFocus&&!o&&sf(r,ue,e?u:s.mount),o},fe=(e,t)=>{let r={...o.mount?a:i};return t&&(r=Bf(t.dirtyFields?n.dirtyFields:n.touchedFields,r)),Ld(e)?r:Jd(e)?Q(r,e):e.map(e=>Q(r,e))},pe=(e,t)=>({invalid:!!Q((t||n).errors,e),isDirty:!!Q((t||n).dirtyFields,e),error:Q((t||n).errors,e),isValidating:!!Q(n.validatingFields,e),isTouched:!!Q((t||n).touchedFields,e)}),me=e=>{let t=e?Sf(e):void 0;t?.forEach(e=>Pf(n.errors,e)),t?t.forEach(e=>{g.state.next({name:e,errors:n.errors})}):(n.errors={},g.state.next({errors:n.errors}))},he=(e,t,i)=>{let a=(Q(r,e,{_f:{}})._f||{}).ref,{ref:o,message:s,type:c,...l}=Q(n.errors,e)||{};Hd(n.errors,e,{...l,...t,ref:a}),g.state.next({name:e,errors:n.errors,isValid:!1}),i&&i.shouldFocus&&a&&a.focus&&a.focus()},P=(e,t)=>{if(Vd(e)){u++;let{unsubscribe:n}=g.state.subscribe({next:n=>`values`in n&&e(n.values||M(void 0,t),n)}),r=!1;return{unsubscribe:()=>{r||(r=!0,u--,n())}}}return M(e,t,!0)},ge=e=>{let t=!!e.formState?.values;t&&u++;let{unsubscribe:r}=g.state.subscribe({next:t=>{if(op(e.name,t.name,e.exact)&&ap(t,e.formState||m,De,e.reRenderRoot)){let r={...a};e.callback({values:r,...n,...t,defaultValues:i})}}});if(!t)return r;let o=!1;return()=>{o||(o=!0,u--,r())}},F=e=>(o.mount=!0,h={...h,...e.formState},ge({...e,formState:{...p,...e.formState}})),_e=(e,o={})=>{for(let c of e?Sf(e):s.mount)s.mount.delete(c),s.array.delete(c),o.keepValue||(Pf(r,c),Pf(a,c)),!o.keepError&&Pf(n.errors,c),!o.keepDirty&&Pf(n.dirtyFields,c),!o.keepTouched&&Pf(n.touchedFields,c),!o.keepIsValidating&&Pf(n.validatingFields,c),!t.shouldUnregister&&!o.keepDefaultValue&&Pf(i,c);g.state.next({values:kd(a)}),g.state.next({...n,...o.keepDirty?{isDirty:j()}:{}}),!o.keepIsValid&&b()},ve=({disabled:e,name:t})=>{if(Bd(e)&&o.mount||e||s.disabled.has(t)){let n=s.disabled.has(t)!==!!e;e?s.disabled.add(t):s.disabled.delete(t),n&&o.mount&&!o.action&&b()}},ye=(e,n={})=>{let a=Q(r,e),c=Bd(n.disabled)||Bd(t.disabled),l=!s.registerName.has(e)&&a&&a._f&&!a._f.mount;return Hd(r,e,{...a||{},_f:{...a&&a._f?a._f:{ref:{name:e}},name:e,mount:!0,...n}}),s.mount.add(e),a&&!l?ve({disabled:Bd(n.disabled)?n.disabled:t.disabled,name:e}):D(e,!0,n.value),{...c?{disabled:n.disabled||t.disabled}:{},...t.progressive?{required:!!n.required,min:ep(n.min),max:ep(n.max),minLength:ep(n.minLength),maxLength:ep(n.maxLength),pattern:ep(n.pattern)}:{},name:e,onChange:le,onBlur:le,ref:c=>{if(c){s.registerName.add(e),ye(e,n),s.registerName.delete(e),a=Q(r,e);let t=Ld(c.value)&&c.querySelectorAll&&c.querySelectorAll(`input,select,textarea`)[0]||c,o=Hf(t),l=a._f.refs||[];if(o?l.find(e=>e===t):t===a._f.ref)return;let u={...a._f};o?(u.refs=[...l.filter(Uf),t,...Array.isArray(Q(i,e))?[{}]:[]],u.ref={type:t.type,name:e}):(u.ref=t,delete u.refs),Hd(r,e,{_f:u}),D(e,!1,void 0,t)}else a=Q(r,e,{}),a._f&&(a._f.mount=!1),(t.shouldUnregister||n.shouldUnregister)&&!(Ed(s.array,e)&&o.action)&&s.unMount.add(e)}}},be=()=>t.shouldFocusError&&!t.shouldUseNativeValidation&&sf(r,ue,s.mount),xe=e=>{Bd(e)&&(g.state.next({disabled:e}),sf(r,(t,n)=>{let i=Q(r,n);i&&(t.disabled=i._f.disabled||e,Array.isArray(i._f.refs)&&i._f.refs.forEach(t=>{t.disabled=i._f.disabled||e}))},0,!1))},Se=(e,i)=>async o=>{let c;o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let l=kd(a);if(g.state.next({isSubmitting:!0}),t.resolver){let{errors:e,values:t}=await k();x(),n.errors=e,l=kd(t)}else await re({fields:r,eventType:Ad.SUBMIT});if(s.disabled.size)for(let e of s.disabled)Pf(l,e);if(Pf(n.errors,Nd),lf(n.errors)){g.state.next({errors:{}});try{await e(l,o)}catch(e){c=e}}else i&&await i({...n.errors},o),be(),setTimeout(be);if(g.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:lf(n.errors)&&!c,submitCount:n.submitCount+1,errors:n.errors}),c)throw c},Ce=(e,t={})=>{Q(r,e)&&(Ld(t.defaultValue)?N(e,kd(Q(i,e))):(N(e,t.defaultValue),Hd(i,e,kd(t.defaultValue))),t.keepTouched||Pf(n.touchedFields,e),t.keepDirty||(Pf(n.dirtyFields,e),n.isDirty=t.defaultValue?j(e,kd(Q(i,e))):j()),t.keepError||(Pf(n.errors,e),m.isValid&&b()),g.state.next({...n}))},we=(e,c={})=>{let l=e?kd(e):i,u=kd(l),d=lf(e),f=u,p=r;if(c.keepDefaultValues||(i=l),!c.keepValues){if(c.keepDirtyValues){let e=new Set([...s.mount,...Object.keys(Xf(i,a,void 0,p))]);for(let t of Array.from(e)){let e=Q(n.dirtyFields,t),r=Q(a,t),i=Q(f,t);e&&!Ld(r)?Hd(f,t,r):!e&&!Ld(i)&&N(t,i)}}else{if(Od&&Ld(e))for(let e of s.mount){let t=Q(r,e);if(t&&t._f){let e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;if(uf(e)){let t=e.closest(`form`);if(t){t.reset();break}}}}if(c.keepFieldsRef)for(let e of s.mount)N(e,Q(f,e));else r={}}if(t.shouldUnregister){if(a=c.keepDefaultValues?kd(i):{},c.keepFieldsRef)for(let e of s.mount)Hd(a,e,Q(f,e))}else a=kd(f);g.array.next({values:{...f}}),g.state.next({name:void 0,type:void 0,values:{...f}})}s={mount:c.keepDirtyValues?s.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:``},o.mount=!m.isValid||!!c.keepIsValid||!!c.keepDirtyValues||!t.shouldUnregister&&!lf(f),o.watch=!!t.shouldUnregister,o.keepIsValid=!!c.keepIsValid,o.action=!1,c.keepErrors||(n.errors={}),g.state.next({submitCount:c.keepSubmitCount?n.submitCount:0,isDirty:d?!1:c.keepDirty?n.isDirty:c.keepValues?j():!!(c.keepDefaultValues&&!Qd(e,i)),isSubmitted:c.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:d?{}:c.keepDirtyValues?c.keepDefaultValues&&a?Xf(i,a,void 0,p):n.dirtyFields:c.keepDefaultValues&&e?Xf(i,e,void 0,p):c.keepDirty?n.dirtyFields:{},touchedFields:c.keepTouched?n.touchedFields:{},errors:c.keepErrors?n.errors:{},isSubmitSuccessful:c.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:i})},Te=(e,n)=>we(Vd(e)?e(a):e,{...t.resetOptions,...n}),Ee=(e,t={})=>{let n=Q(r,e),i=n&&n._f;if(i){let e=i.refs?i.refs[0]:i.ref;e.focus&&setTimeout(()=>{e.focus(),t.shouldSelect&&Vd(e.select)&&e.select()})}},De=e=>{let{name:t,type:r,values:i,...a}=e;n={...n,...a}},Oe={control:{register:ye,unregister:_e,getFieldState:pe,handleSubmit:Se,setError:he,_subscribe:ge,_runSchema:k,_updateIsValidating:x,_focusError:be,_getWatch:M,_getDirty:j,_setValid:b,_setFieldArray:C,_setDisabledField:ve,_setErrors:T,_getFieldArray:ie,_reset:we,_resetDefaultValues:()=>Vd(t.defaultValues)&&t.defaultValues().then(e=>{Te(e,t.resetOptions),g.state.next({isLoading:!1})}),_removeUnmounted:A,_disableForm:xe,_subjects:g,_proxyFormState:m,get _fields(){return r},get _formValues(){return a},get _state(){return o},set _state(e){o=e},get _defaultValues(){return i},get _names(){return s},set _names(e){s=e},get _formState(){return n},get _options(){return t},set _options(e){t={...t,...e},d=af(t.mode),f=af(t.reValidateMode)}},subscribe:F,trigger:de,register:ye,handleSubmit:Se,watch:P,setValue:N,setValues:ce,getValues:fe,reset:Te,resetField:Ce,resetDefaultValues:(e,t={})=>{if(i=kd(e),!t.keepDirty){let e=Xf(i,a,void 0,r);n.dirtyFields=e,n.isDirty=!lf(e)}t.keepIsValid||b(),g.state.next({...n,defaultValues:i})},clearErrors:me,unregister:_e,setError:he,setFocus:Ee,getFieldState:pe};return{...Oe,formControl:Oe}}function mp(e={}){let t=q.useRef(void 0),n=q.useRef(void 0),r=q.useRef(e.formControl),[i,a]=q.useState(()=>({...kd(fp),isLoading:Vd(e.defaultValues),errors:e.errors||{},disabled:e.disabled||!1,defaultValues:Vd(e.defaultValues)?void 0:e.defaultValues}));if(!t.current||e.formControl&&r.current!==e.formControl)if(r.current=e.formControl,e.formControl)t.current={...e.formControl,formState:i},e.defaultValues&&!Vd(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{let{formControl:n,...r}=pp(e);t.current={...r,formState:i}}let o=t.current.control;return o._options=e,Kd(()=>{let e=o._subscribe({formState:o._proxyFormState,callback:()=>a({...o._formState,defaultValues:o._defaultValues}),reRenderRoot:!0});return a(e=>({...e,isReady:!0})),o._formState.isReady=!0,e},[o]),q.useEffect(()=>o._disableForm(e.disabled),[o,e.disabled]),q.useEffect(()=>{e.mode&&(o._options.mode=e.mode),e.reValidateMode&&(o._options.reValidateMode=e.reValidateMode)},[o,e.mode,e.reValidateMode]),q.useEffect(()=>{e.errors&&(o._setErrors(e.errors),o._focusError())},[o,e.errors]),q.useEffect(()=>{e.shouldUnregister&&o._subjects.state.next({values:o._getWatch()})},[o,e.shouldUnregister]),q.useEffect(()=>{if(o._proxyFormState.isDirty){let e=o._getDirty();e!==i.isDirty&&o._subjects.state.next({isDirty:e})}},[o,i.isDirty]),q.useEffect(()=>{e.values&&!Qd(e.values,n.current)?(o._reset(e.values,{keepFieldsRef:!0,...o._options.resetOptions}),o._options.resetOptions?.keepIsValid||o._setValid(),n.current=e.values,a(e=>({...e}))):o._resetDefaultValues()},[o,e.values]),q.useEffect(()=>{o._state.mount||(o._setValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()}),t.current.formState=q.useMemo(()=>Gd(i,o),[o,i]),t.current}var hp=(e,t,n)=>{if(e&&`reportValidity`in e){let r=Q(n,t);e.setCustomValidity(r&&r.message||``),e.reportValidity()}},gp=(e,t)=>{for(let n in t.fields){let r=t.fields[n];r&&r.ref&&`reportValidity`in r.ref?hp(r.ref,n,e):r&&r.refs&&r.refs.forEach(t=>hp(t,n,e))}},_p=(e,t)=>{t.shouldUseNativeValidation&&gp(e,t);let n={};for(let r in e){let i=Q(t.fields,r),a=Object.assign(e[r]||{},{ref:i&&i.refs?i.refs[0]:i&&i.ref});if(vp(t.names||Object.keys(e),r)){let e=Object.assign({},Q(n,r));Hd(e,`root`,a),Hd(n,r,e)}else Hd(n,r,a)}return n},vp=(e,t)=>{let n=yp(t).replace(/[.*+?^${}()|\\]/g,`\\$&`);return e.some(e=>yp(e).match(`^${n}\\.\\d+`))};function yp(e){return e.replace(/[\[\]]/g,``)}function bp(){return bp=Object.assign?Object.assign.bind():function(e){for(var t=1;t0){var s=r.errors.reduce(function(e,t){return t.length()=>{r.current&&clearTimeout(r.current)},a=[],e[0]=i,e[1]=a):(i=e[0],a=e[1]),(0,q.useEffect)(i,a);let o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=async e=>{await navigator.clipboard.writeText(e),n(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),Ep)},e[2]=o):o=e[2];let s=o,c;return e[3]===t?c=e[4]:(c={copied:t,copy:s},e[3]=t,e[4]=c),c}var Op={bin:`text-tactical-cyan font-semibold`,flag:`text-tactical-amber`,value:`text-foreground`,comment:`text-muted-foreground italic`,variable:`text-tactical-green font-semibold`};function kp(e){return e.map(e=>e.parts.map(e=>e.value).join(``)).join(` +`+e.stack}}var be=Object.prototype.hasOwnProperty,xe=t.unstable_scheduleCallback,Se=t.unstable_cancelCallback,Ce=t.unstable_shouldYield,we=t.unstable_requestPaint,Te=t.unstable_now,Ee=t.unstable_getCurrentPriorityLevel,De=t.unstable_ImmediatePriority,Oe=t.unstable_UserBlockingPriority,ke=t.unstable_NormalPriority,Ae=t.unstable_LowPriority,je=t.unstable_IdlePriority,R=t.log,Me=t.unstable_setDisableYieldValue,Ne=null,Pe=null;function Fe(e){if(typeof R==`function`&&Me(e),Pe&&typeof Pe.setStrictMode==`function`)try{Pe.setStrictMode(Ne,e)}catch{}}var z=Math.clz32?Math.clz32:B,Ie=Math.log,Le=Math.LN2;function B(e){return e>>>=0,e===0?32:31-(Ie(e)/Le|0)|0}var Re=256,V=262144,ze=4194304;function Be(e){var t=e&42;if(t!==0)return t;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function Ve(e,t,n){var r=e.pendingLanes;if(r===0)return 0;var i=0,a=e.suspendedLanes,o=e.pingedLanes;e=e.warmLanes;var s=r&134217727;return s===0?(s=r&~a,s===0?o===0?n||(n=r&~e,n!==0&&(i=Be(n))):i=Be(o):i=Be(s)):(r=s&~a,r===0?(o&=s,o===0?n||(n=s&~e,n!==0&&(i=Be(n))):i=Be(o)):i=Be(r)),i===0?0:t!==0&&t!==i&&(t&a)===0&&(a=i&-i,n=t&-t,a>=n||a===32&&n&4194048)?t:i}function He(e,t){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&t)===0}function Ue(e,t){switch(e){case 1:case 2:case 4:case 8:case 64:return t+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function We(){var e=ze;return ze<<=1,!(ze&62914560)&&(ze=4194304),e}function Ge(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function Ke(e,t){e.pendingLanes|=t,t!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function qe(e,t,n,r,i,a){var o=e.pendingLanes;e.pendingLanes=n,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=n,e.entangledLanes&=n,e.errorRecoveryDisabledLanes&=n,e.shellSuspendCounter=0;var s=e.entanglements,c=e.expirationTimes,l=e.hiddenUpdates;for(n=o&~n;0`u`||window.document===void 0||window.document.createElement===void 0),rn=!1;if(nn)try{var an={};Object.defineProperty(an,"passive",{get:function(){rn=!0}}),window.addEventListener(`test`,an,an),window.removeEventListener(`test`,an,an)}catch{rn=!1}var on=null,sn=null,cn=null;function ln(){if(cn)return cn;var e,t=sn,n=t.length,r,i=`value`in on?on.value:on.textContent,a=i.length;for(e=0;e=Vn),Wn=` `,Gn=!1;function Kn(e,t){switch(e){case`keyup`:return zn.indexOf(t.keyCode)!==-1;case`keydown`:return t.keyCode!==229;case`keypress`:case`mousedown`:case`focusout`:return!0;default:return!1}}function qn(e){return e=e.detail,typeof e==`object`&&`data`in e?e.data:null}var Jn=!1;function Yn(e,t){switch(e){case`compositionend`:return qn(t);case`keypress`:return t.which===32?(Gn=!0,Wn):null;case`textInput`:return e=t.data,e===Wn&&Gn?null:e;default:return null}}function Xn(e,t){if(Jn)return e===`compositionend`||!Bn&&Kn(e,t)?(e=ln(),cn=sn=on=null,Jn=!1,e):null;switch(e){case`paste`:return null;case`keypress`:if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1=t)return{node:n,offset:t-e};e=r}a:{for(;n;){if(n.nextSibling){n=n.nextSibling;break a}n=n.parentNode}n=void 0}n=vr(n)}}function br(e,t){return e&&t?e===t?!0:e&&e.nodeType===3?!1:t&&t.nodeType===3?br(e,t.parentNode):`contains`in e?e.contains(t):e.compareDocumentPosition?!!(e.compareDocumentPosition(t)&16):!1:!1}function xr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var t=jt(e.document);t instanceof e.HTMLIFrameElement;){try{var n=typeof t.contentWindow.location.href==`string`}catch{n=!1}if(n)e=t.contentWindow;else break;t=jt(e.document)}return t}function Sr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&(t===`input`&&(e.type===`text`||e.type===`search`||e.type===`tel`||e.type===`url`||e.type===`password`)||t===`textarea`||e.contentEditable===`true`)}var Cr=nn&&`documentMode`in document&&11>=document.documentMode,W=null,wr=null,Tr=null,Er=!1;function Dr(e,t,n){var r=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;Er||W==null||W!==jt(r)||(r=W,`selectionStart`in r&&Sr(r)?r={start:r.selectionStart,end:r.selectionEnd}:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection(),r={anchorNode:r.anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset}),Tr&&_r(Tr,r)||(Tr=r,r=Dd(wr,`onSelect`),0>=o,i-=o,gi=1<<32-z(t)+i|n<h?(g=d,d=null):g=d.sibling;var _=p(i,d,s[h],c);if(_===null){d===null&&(d=g);break}e&&d&&_.alternate===null&&t(i,d),a=o(_,a,h),u===null?l=_:u.sibling=_,u=_,d=g}if(h===s.length)return n(i,d),Ti&&vi(i,h),l;if(d===null){for(;hg?(_=h,h=null):_=h.sibling;var y=p(i,h,v.value,l);if(y===null){h===null&&(h=_);break}e&&h&&y.alternate===null&&t(i,h),s=o(y,s,g),d===null?u=y:d.sibling=y,d=y,h=_}if(v.done)return n(i,h),Ti&&vi(i,g),u;if(h===null){for(;!v.done;g++,v=c.next())v=f(i,v.value,l),v!==null&&(s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return Ti&&vi(i,g),u}for(h=r(h);!v.done;g++,v=c.next())v=m(h,i,g,v.value,l),v!==null&&(e&&v.alternate!==null&&h.delete(v.key===null?g:v.key),s=o(v,s,g),d===null?u=v:d.sibling=v,d=v);return e&&h.forEach(function(e){return t(i,e)}),Ti&&vi(i,g),u}function b(e,r,o,c){if(typeof o==`object`&&o&&o.type===_&&o.key===null&&(o=o.props.children),typeof o==`object`&&o){switch(o.$$typeof){case h:a:{for(var l=o.key;r!==null;){if(r.key===l){if(l=o.type,l===_){if(r.tag===7){n(e,r.sibling),c=i(r,o.props.children),c.return=e,e=c;break a}}else if(r.elementType===l||typeof l==`object`&&l&&l.$$typeof===E&&ya(l)===r.type){n(e,r.sibling),c=i(r,o.props),Ea(c,o),c.return=e,e=c;break a}n(e,r);break}t(e,r),r=r.sibling}o.type===_?(c=ri(o.props.children,e.mode,c,o.key),c.return=e,e=c):(c=ni(o.type,o.key,o.props,null,e.mode,c),Ea(c,o),c.return=e,e=c)}return s(e);case g:a:{for(l=o.key;r!==null;){if(r.key===l)if(r.tag===4&&r.stateNode.containerInfo===o.containerInfo&&r.stateNode.implementation===o.implementation){n(e,r.sibling),c=i(r,o.children||[]),c.return=e,e=c;break a}else{n(e,r);break}t(e,r),r=r.sibling}c=oi(o,e.mode,c),c.return=e,e=c}return s(e);case E:return o=ya(o),b(e,r,o,c)}if(ne(o))return v(e,r,o,c);if(A(o)){if(l=A(o),typeof l!=`function`)throw Error(a(150));return o=l.call(o),y(e,r,o,c)}if(typeof o.then==`function`)return b(e,r,Ta(o),c);if(o.$$typeof===x)return b(e,r,qi(e,o),c);Da(e,o)}return typeof o==`string`&&o!==``||typeof o==`number`||typeof o==`bigint`?(o=``+o,r!==null&&r.tag===6?(n(e,r.sibling),c=i(r,o),c.return=e,e=c):(n(e,r),c=ii(o,e.mode,c),c.return=e,e=c),s(e)):n(e,r)}return function(e,t,n,r){try{wa=0;var i=b(e,t,n,r);return Ca=null,i}catch(t){if(t===pa||t===ha)throw t;var a=Qr(29,t,null,e.mode);return a.lanes=r,a.return=e,a}}}var ka=Oa(!0),Aa=Oa(!1),ja=!1;function Ma(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function Na(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function Pa(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function Fa(e,t,n){var r=e.updateQueue;if(r===null)return null;if(r=r.shared,Nl&2){var i=r.pending;return i===null?t.next=t:(t.next=i.next,i.next=t),r.pending=t,t=Yr(e),Jr(e,null,n),t}return Kr(e,r,t,n),Yr(e)}function Ia(e,t,n){if(t=t.updateQueue,t!==null&&(t=t.shared,n&4194048)){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ye(e,n)}}function La(e,t){var n=e.updateQueue,r=e.alternate;if(r!==null&&(r=r.updateQueue,n===r)){var i=null,a=null;if(n=n.firstBaseUpdate,n!==null){do{var o={lane:n.lane,tag:n.tag,payload:n.payload,callback:null,next:null};a===null?i=a=o:a=a.next=o,n=n.next}while(n!==null);a===null?i=a=t:a=a.next=t}else i=a=t;n={baseState:r.baseState,firstBaseUpdate:i,lastBaseUpdate:a,shared:r.shared,callbacks:r.callbacks},e.updateQueue=n;return}e=n.lastBaseUpdate,e===null?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}var Ra=!1;function za(){if(Ra){var e=ia;if(e!==null)throw e}}function Ba(e,t,n,r){Ra=!1;var i=e.updateQueue;ja=!1;var a=i.firstBaseUpdate,o=i.lastBaseUpdate,s=i.shared.pending;if(s!==null){i.shared.pending=null;var c=s,l=c.next;c.next=null,o===null?a=l:o.next=l,o=c;var u=e.alternate;u!==null&&(u=u.updateQueue,s=u.lastBaseUpdate,s!==o&&(s===null?u.firstBaseUpdate=l:s.next=l,u.lastBaseUpdate=c))}if(a!==null){var d=i.baseState;o=0,u=l=c=null,s=a;do{var f=s.lane&-536870913,m=f!==s.lane;if(m?(Il&f)===f:(r&f)===f){f!==0&&f===ra&&(Ra=!0),u!==null&&(u=u.next={lane:0,tag:s.tag,payload:s.payload,callback:null,next:null});a:{var h=e,g=s;f=t;var _=n;switch(g.tag){case 1:if(h=g.payload,typeof h==`function`){d=h.call(_,d,f);break a}d=h;break a;case 3:h.flags=h.flags&-65537|128;case 0:if(h=g.payload,f=typeof h==`function`?h.call(_,d,f):h,f==null)break a;d=p({},d,f);break a;case 2:ja=!0}}f=s.callback,f!==null&&(e.flags|=64,m&&(e.flags|=8192),m=i.callbacks,m===null?i.callbacks=[f]:m.push(f))}else m={lane:f,tag:s.tag,payload:s.payload,callback:s.callback,next:null},u===null?(l=u=m,c=d):u=u.next=m,o|=f;if(s=s.next,s===null){if(s=i.shared.pending,s===null)break;m=s,s=m.next,m.next=null,i.lastBaseUpdate=m,i.shared.pending=null}}while(1);u===null&&(c=d),i.baseState=c,i.firstBaseUpdate=l,i.lastBaseUpdate=u,a===null&&(i.shared.lanes=0),Wl|=o,e.lanes=o,e.memoizedState=d}}function Va(e,t){if(typeof e!=`function`)throw Error(a(191,e));e.call(t)}function J(e,t){var n=e.callbacks;if(n!==null)for(e.callbacks=null,e=0;ea?a:8;var o=j.T,s={};j.T=s,Es(e,!1,t,n);try{var c=i(),l=j.S;l!==null&&l(s,c),typeof c==`object`&&c&&typeof c.then==`function`?Ts(e,t,sa(c,r),fu(e)):Ts(e,t,r,fu(e))}catch(n){Ts(e,t,{then:function(){},status:`rejected`,reason:n},fu())}finally{M.p=a,o!==null&&s.types!==null&&(o.types=s.types),j.T=o}}function hs(){}function gs(e,t,n,r){if(e.tag!==5)throw Error(a(476));var i=_s(e).queue;ms(e,i,t,N,n===null?hs:function(){return vs(e),n(r)})}function _s(e){var t=e.memoizedState;if(t!==null)return t;t={memoizedState:N,baseState:N,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Do,lastRenderedState:N},next:null};var n={};return t.next={memoizedState:n,baseState:n,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:Do,lastRenderedState:n},next:null},e.memoizedState=t,e=e.alternate,e!==null&&(e.memoizedState=t),t}function vs(e){var t=_s(e);t.next===null&&(t=e.alternate.memoizedState),Ts(e,t.next.queue,{},fu())}function ys(){return Ki($f)}function bs(){return So().memoizedState}function xs(){return So().memoizedState}function Ss(e){for(var t=e.return;t!==null;){switch(t.tag){case 24:case 3:var n=fu();e=Pa(n);var r=Fa(t,e,n);r!==null&&(mu(r,t,n),Ia(r,t,n)),t={cache:$i()},e.payload=t;return}t=t.return}}function Cs(e,t,n){var r=fu();n={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null},Ds(e)?Os(t,n):(n=q(e,t,n,r),n!==null&&(mu(n,e,r),ks(n,t,r)))}function ws(e,t,n){Ts(e,t,n,fu())}function Ts(e,t,n,r){var i={lane:r,revertLane:0,gesture:null,action:n,hasEagerState:!1,eagerState:null,next:null};if(Ds(e))Os(t,i);else{var a=e.alternate;if(e.lanes===0&&(a===null||a.lanes===0)&&(a=t.lastRenderedReducer,a!==null))try{var o=t.lastRenderedState,s=a(o,n);if(i.hasEagerState=!0,i.eagerState=s,gr(s,o))return Kr(e,t,i,0),Pl===null&&K(),!1}catch{}if(n=q(e,t,i,r),n!==null)return mu(n,e,r),ks(n,t,r),!0}return!1}function Es(e,t,n,r){if(r={lane:2,revertLane:dd(),gesture:null,action:r,hasEagerState:!1,eagerState:null,next:null},Ds(e)){if(t)throw Error(a(479))}else t=q(e,n,r,2),t!==null&&mu(t,e,2)}function Ds(e){var t=e.alternate;return e===X||t!==null&&t===X}function Os(e,t){ao=Z=!0;var n=e.pending;n===null?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function ks(e,t,n){if(n&4194048){var r=t.lanes;r&=e.pendingLanes,n|=r,t.lanes=n,Ye(e,n)}}var As={readContext:Ki,use:To,useCallback:fo,useContext:fo,useEffect:fo,useImperativeHandle:fo,useLayoutEffect:fo,useInsertionEffect:fo,useMemo:fo,useReducer:fo,useRef:fo,useState:fo,useDebugValue:fo,useDeferredValue:fo,useTransition:fo,useSyncExternalStore:fo,useId:fo,useHostTransitionStatus:fo,useFormState:fo,useActionState:fo,useOptimistic:fo,useMemoCache:fo,useCacheRefresh:fo};As.useEffectEvent=fo;var js={readContext:Ki,use:To,useCallback:function(e,t){return xo().memoizedState=[e,t===void 0?null:t],e},useContext:Ki,useEffect:ts,useImperativeHandle:function(e,t,n){n=n==null?null:n.concat([e]),$o(4194308,4,ss.bind(null,t,e),n)},useLayoutEffect:function(e,t){return $o(4194308,4,e,t)},useInsertionEffect:function(e,t){$o(4,2,e,t)},useMemo:function(e,t){var n=xo();t=t===void 0?null:t;var r=e();if(oo){Fe(!0);try{e()}finally{Fe(!1)}}return n.memoizedState=[r,t],r},useReducer:function(e,t,n){var r=xo();if(n!==void 0){var i=n(t);if(oo){Fe(!0);try{n(t)}finally{Fe(!1)}}}else i=t;return r.memoizedState=r.baseState=i,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:i},r.queue=e,e=e.dispatch=Cs.bind(null,X,e),[r.memoizedState,e]},useRef:function(e){var t=xo();return e={current:e},t.memoizedState=e},useState:function(e){e=Lo(e);var t=e.queue,n=ws.bind(null,X,t);return t.dispatch=n,[e.memoizedState,n]},useDebugValue:ls,useDeferredValue:function(e,t){return fs(xo(),e,t)},useTransition:function(){var e=Lo(!1);return e=ms.bind(null,X,e.queue,!0,!1),xo().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,t,n){var r=X,i=xo();if(Ti){if(n===void 0)throw Error(a(407));n=n()}else{if(n=t(),Pl===null)throw Error(a(349));Il&127||Mo(r,t,n)}i.memoizedState=n;var o={value:n,getSnapshot:t};return i.queue=o,ts(Po.bind(null,r,o,e),[e]),r.flags|=2048,Zo(9,{destroy:void 0},No.bind(null,r,o,n,t),null),n},useId:function(){var e=xo(),t=Pl.identifierPrefix;if(Ti){var n=_i,r=gi;n=(r&~(1<<32-z(r)-1)).toString(32)+n,t=`_`+t+`R_`+n,n=so++,0<\/script>`,o=o.removeChild(o.firstChild);break;case`select`:o=typeof r.is==`string`?s.createElement(`select`,{is:r.is}):s.createElement(`select`),r.multiple?o.multiple=!0:r.size&&(o.size=r.size);break;default:o=typeof r.is==`string`?s.createElement(i,{is:r.is}):s.createElement(i)}}o[nt]=t,o[H]=r;a:for(s=t.child;s!==null;){if(s.tag===5||s.tag===6)o.appendChild(s.stateNode);else if(s.tag!==4&&s.tag!==27&&s.child!==null){s.child.return=s,s=s.child;continue}if(s===t)break a;for(;s.sibling===null;){if(s.return===null||s.return===t)break a;s=s.return}s.sibling.return=s.return,s=s.sibling}t.stateNode=o;a:switch(Id(o,i,r),i){case`button`:case`input`:case`select`:case`textarea`:r=!!r.autoFocus;break a;case`img`:r=!0;break a;default:r=!1}r&&Tc(t)}}return Ac(t),Ec(t,t.type,e===null?null:e.memoizedProps,t.pendingProps,n),null;case 6:if(e&&t.stateNode!=null)e.memoizedProps!==r&&Tc(t);else{if(typeof r!=`string`&&t.stateNode===null)throw Error(a(166));if(e=le.current,Mi(t)){if(e=t.stateNode,n=t.memoizedProps,r=null,i=Ci,i!==null)switch(i.tag){case 27:case 5:r=i.memoizedProps}e[nt]=t,e=!!(e.nodeValue===n||r!==null&&!0===r.suppressHydrationWarning||Nd(e.nodeValue,n)),e||ki(t,!0)}else e=Q(e).createTextNode(r),e[nt]=t,t.stateNode=e}return Ac(t),null;case 31:if(n=t.memoizedState,e===null||e.memoizedState!==null){if(r=Mi(t),n!==null){if(e===null){if(!r)throw Error(a(318));if(e=t.memoizedState,e=e===null?null:e.dehydrated,!e)throw Error(a(557));e[nt]=t}else Ni(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ac(t),e=!1}else n=Pi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=n),e=!0;if(!e)return t.flags&256?(Qa(t),t):(Qa(t),null);if(t.flags&128)throw Error(a(558))}return Ac(t),null;case 13:if(r=t.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(i=Mi(t),r!==null&&r.dehydrated!==null){if(e===null){if(!i)throw Error(a(318));if(i=t.memoizedState,i=i===null?null:i.dehydrated,!i)throw Error(a(317));i[nt]=t}else Ni(),!(t.flags&128)&&(t.memoizedState=null),t.flags|=4;Ac(t),i=!1}else i=Pi(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=i),i=!0;if(!i)return t.flags&256?(Qa(t),t):(Qa(t),null)}return Qa(t),t.flags&128?(t.lanes=n,t):(n=r!==null,e=e!==null&&e.memoizedState!==null,n&&(r=t.child,i=null,r.alternate!==null&&r.alternate.memoizedState!==null&&r.alternate.memoizedState.cachePool!==null&&(i=r.alternate.memoizedState.cachePool.pool),o=null,r.memoizedState!==null&&r.memoizedState.cachePool!==null&&(o=r.memoizedState.cachePool.pool),o!==i&&(r.flags|=2048)),n!==e&&n&&(t.child.flags|=8192),Oc(t,t.updateQueue),Ac(t),null);case 4:return fe(),e===null&&Cd(t.stateNode.containerInfo),Ac(t),null;case 10:return Bi(t.type),Ac(t),null;case 19:if(oe($a),r=t.memoizedState,r===null)return Ac(t),null;if(i=!!(t.flags&128),o=r.rendering,o===null)if(i)kc(r,!1);else{if(Ul!==0||e!==null&&e.flags&128)for(e=t.child;e!==null;){if(o=eo(e),o!==null){for(t.flags|=128,kc(r,!1),e=o.updateQueue,t.updateQueue=e,Oc(t,e),t.subtreeFlags=0,e=n,n=t.child;n!==null;)ti(n,e),n=n.sibling;return P($a,$a.current&1|2),Ti&&vi(t,r.treeForkCount),t.child}e=e.sibling}r.tail!==null&&Te()>eu&&(t.flags|=128,i=!0,kc(r,!1),t.lanes=4194304)}else{if(!i)if(e=eo(o),e!==null){if(t.flags|=128,i=!0,e=e.updateQueue,t.updateQueue=e,Oc(t,e),kc(r,!0),r.tail===null&&r.tailMode===`hidden`&&!o.alternate&&!Ti)return Ac(t),null}else 2*Te()-r.renderingStartTime>eu&&n!==536870912&&(t.flags|=128,i=!0,kc(r,!1),t.lanes=4194304);r.isBackwards?(o.sibling=t.child,t.child=o):(e=r.last,e===null?t.child=o:e.sibling=o,r.last=o)}return r.tail===null?(Ac(t),null):(e=r.tail,r.rendering=e,r.tail=e.sibling,r.renderingStartTime=Te(),e.sibling=null,n=$a.current,P($a,i?n&1|2:n&1),Ti&&vi(t,r.treeForkCount),e);case 22:case 23:return Qa(t),Ga(),r=t.memoizedState!==null,e===null?r&&(t.flags|=8192):e.memoizedState!==null!==r&&(t.flags|=8192),r?n&536870912&&!(t.flags&128)&&(Ac(t),t.subtreeFlags&6&&(t.flags|=8192)):Ac(t),n=t.updateQueue,n!==null&&Oc(t,n.retryQueue),n=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(n=e.memoizedState.cachePool.pool),r=null,t.memoizedState!==null&&t.memoizedState.cachePool!==null&&(r=t.memoizedState.cachePool.pool),r!==n&&(t.flags|=2048),e!==null&&oe(la),null;case 24:return n=null,e!==null&&(n=e.memoizedState.cache),t.memoizedState.cache!==n&&(t.flags|=2048),Bi(Qi),Ac(t),null;case 25:return null;case 30:return null}throw Error(a(156,t.tag))}function Mc(e,t){switch(xi(t),t.tag){case 1:return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 3:return Bi(Qi),fe(),e=t.flags,e&65536&&!(e&128)?(t.flags=e&-65537|128,t):null;case 26:case 27:case 5:return I(t),null;case 31:if(t.memoizedState!==null){if(Qa(t),t.alternate===null)throw Error(a(340));Ni()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 13:if(Qa(t),e=t.memoizedState,e!==null&&e.dehydrated!==null){if(t.alternate===null)throw Error(a(340));Ni()}return e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 19:return oe($a),null;case 4:return fe(),null;case 10:return Bi(t.type),null;case 22:case 23:return Qa(t),Ga(),e!==null&&oe(la),e=t.flags,e&65536?(t.flags=e&-65537|128,t):null;case 24:return Bi(Qi),null;case 25:return null;default:return null}}function Nc(e,t){switch(xi(t),t.tag){case 3:Bi(Qi),fe();break;case 26:case 27:case 5:I(t);break;case 4:fe();break;case 31:t.memoizedState!==null&&Qa(t);break;case 13:Qa(t);break;case 19:oe($a);break;case 10:Bi(t.type);break;case 22:case 23:Qa(t),Ga(),e!==null&&oe(la);break;case 24:Bi(Qi)}}function Pc(e,t){try{var n=t.updateQueue,r=n===null?null:n.lastEffect;if(r!==null){var i=r.next;n=i;do{if((n.tag&e)===e){r=void 0;var a=n.create,o=n.inst;r=a(),o.destroy=r}n=n.next}while(n!==i)}}catch(e){Wu(t,t.return,e)}}function Fc(e,t,n){try{var r=t.updateQueue,i=r===null?null:r.lastEffect;if(i!==null){var a=i.next;r=a;do{if((r.tag&e)===e){var o=r.inst,s=o.destroy;if(s!==void 0){o.destroy=void 0,i=t;var c=n,l=s;try{l()}catch(e){Wu(i,c,e)}}}r=r.next}while(r!==a)}}catch(e){Wu(t,t.return,e)}}function Ic(e){var t=e.updateQueue;if(t!==null){var n=e.stateNode;try{J(t,n)}catch(t){Wu(e,e.return,t)}}}function Lc(e,t,n){n.props=Rs(e.type,e.memoizedProps),n.state=e.memoizedState;try{n.componentWillUnmount()}catch(n){Wu(e,t,n)}}function Rc(e,t){try{var n=e.ref;if(n!==null){switch(e.tag){case 26:case 27:case 5:var r=e.stateNode;break;case 30:r=e.stateNode;break;default:r=e.stateNode}typeof n==`function`?e.refCleanup=n(r):n.current=r}}catch(n){Wu(e,t,n)}}function zc(e,t){var n=e.ref,r=e.refCleanup;if(n!==null)if(typeof r==`function`)try{r()}catch(n){Wu(e,t,n)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof n==`function`)try{n(null)}catch(n){Wu(e,t,n)}else n.current=null}function Bc(e){var t=e.type,n=e.memoizedProps,r=e.stateNode;try{a:switch(t){case`button`:case`input`:case`select`:case`textarea`:n.autoFocus&&r.focus();break a;case`img`:n.src?r.src=n.src:n.srcSet&&(r.srcset=n.srcSet)}}catch(t){Wu(e,e.return,t)}}function Vc(e,t,n){try{var r=e.stateNode;Ld(r,e.type,n,t),r[H]=t}catch(t){Wu(e,e.return,t)}}function Hc(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&Qd(e.type)||e.tag===4}function Uc(e){a:for(;;){for(;e.sibling===null;){if(e.return===null||Hc(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&Qd(e.type)||e.flags&2||e.child===null||e.tag===4)continue a;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function Wc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?(n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n).insertBefore(e,t):(t=n.nodeType===9?n.body:n.nodeName===`HTML`?n.ownerDocument.body:n,t.appendChild(e),n=n._reactRootContainer,n!=null||t.onclick!==null||(t.onclick=qt));else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode,t=null),e=e.child,e!==null))for(Wc(e,t,n),e=e.sibling;e!==null;)Wc(e,t,n),e=e.sibling}function Gc(e,t,n){var r=e.tag;if(r===5||r===6)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(r!==4&&(r===27&&Qd(e.type)&&(n=e.stateNode),e=e.child,e!==null))for(Gc(e,t,n),e=e.sibling;e!==null;)Gc(e,t,n),e=e.sibling}function Kc(e){var t=e.stateNode,n=e.memoizedProps;try{for(var r=e.type,i=t.attributes;i.length;)t.removeAttributeNode(i[0]);Id(t,r,n),t[nt]=e,t[H]=n}catch(t){Wu(e,e.return,t)}}var qc=!1,Jc=!1,Yc=!1,Xc=typeof WeakSet==`function`?WeakSet:Set,Zc=null;function Qc(e,t){if(e=e.containerInfo,Bd=cp,e=xr(e),Sr(e)){if(`selectionStart`in e)var n={start:e.selectionStart,end:e.selectionEnd};else a:{n=(n=e.ownerDocument)&&n.defaultView||window;var r=n.getSelection&&n.getSelection();if(r&&r.rangeCount!==0){n=r.anchorNode;var i=r.anchorOffset,o=r.focusNode;r=r.focusOffset;try{n.nodeType,o.nodeType}catch{n=null;break a}var s=0,c=-1,l=-1,u=0,d=0,f=e,p=null;b:for(;;){for(var m;f!==n||i!==0&&f.nodeType!==3||(c=s+i),f!==o||r!==0&&f.nodeType!==3||(l=s+r),f.nodeType===3&&(s+=f.nodeValue.length),(m=f.firstChild)!==null;)p=f,f=m;for(;;){if(f===e)break b;if(p===n&&++u===i&&(c=s),p===o&&++d===r&&(l=s),(m=f.nextSibling)!==null)break;f=p,p=f.parentNode}f=m}n=c===-1||l===-1?null:{start:c,end:l}}else n=null}n||={start:0,end:0}}else n=null;for(Vd={focusedElem:e,selectionRange:n},cp=!1,Zc=t;Zc!==null;)if(t=Zc,e=t.child,t.subtreeFlags&1028&&e!==null)e.return=t,Zc=e;else for(;Zc!==null;){switch(t=Zc,o=t.alternate,e=t.flags,t.tag){case 0:if(e&4&&(e=t.updateQueue,e=e===null?null:e.events,e!==null))for(n=0;n title`))),Id(o,r,n),o[nt]=e,mt(o),r=o;break a;case`link`:var s=Hf(`link`,`href`,i).get(r+(n.href||``));if(s){for(var c=0;cg&&(o=g,g=h,h=o);var _=yr(s,h),v=yr(s,g);if(_&&v&&(p.rangeCount!==1||p.anchorNode!==_.node||p.anchorOffset!==_.offset||p.focusNode!==v.node||p.focusOffset!==v.offset)){var y=d.createRange();y.setStart(_.node,_.offset),p.removeAllRanges(),h>g?(p.addRange(y),p.extend(v.node,v.offset)):(y.setEnd(v.node,v.offset),p.addRange(y))}}}}for(d=[],p=s;p=p.parentNode;)p.nodeType===1&&d.push({element:p,left:p.scrollLeft,top:p.scrollTop});for(typeof s.focus==`function`&&s.focus(),s=0;sn?32:n,j.T=null,n=cu,cu=null;var o=iu,s=ou;if(ru=0,au=iu=null,ou=0,Nl&6)throw Error(a(331));var c=Nl;if(Nl|=4,Ol(o.current),bl(o,o.current,s,n),Nl=c,id(0,!1),Pe&&typeof Pe.onPostCommitFiberRoot==`function`)try{Pe.onPostCommitFiberRoot(Ne,o)}catch{}return!0}finally{M.p=i,j.T=r,Bu(e,t)}}function Uu(e,t,n){t=ci(n,t),t=Ws(e.stateNode,t,2),e=Fa(e,t,2),e!==null&&(Ke(e,2),rd(e))}function Wu(e,t,n){if(e.tag===3)Uu(e,e,n);else for(;t!==null;){if(t.tag===3){Uu(t,e,n);break}if(t.tag===1){var r=t.stateNode;if(typeof t.type.getDerivedStateFromError==`function`||typeof r.componentDidCatch==`function`&&(nu===null||!nu.has(r))){e=ci(n,e),n=Gs(2),r=Fa(t,n,2),r!==null&&(Ks(n,r,t,e),Ke(r,2),rd(r));break}}t=t.return}}function Gu(e,t,n){var r=e.pingCache;if(r===null){r=e.pingCache=new Ml;var i=new Set;r.set(t,i)}else i=r.get(t),i===void 0&&(i=new Set,r.set(t,i));i.has(n)||(Vl=!0,i.add(n),e=Ku.bind(null,e,t,n),t.then(e,e))}function Ku(e,t,n){var r=e.pingCache;r!==null&&r.delete(t),e.pingedLanes|=e.suspendedLanes&n,e.warmLanes&=~n,Pl===e&&(Il&n)===n&&(Ul===4||Ul===3&&(Il&62914560)===Il&&300>Te()-Ql?!(Nl&2)&&xu(e,0):Kl|=n,Jl===Il&&(Jl=0)),rd(e)}function qu(e,t){t===0&&(t=We()),e=qr(e,t),e!==null&&(Ke(e,t),rd(e))}function Ju(e){var t=e.memoizedState,n=0;t!==null&&(n=t.retryLane),qu(e,n)}function Yu(e,t){var n=0;switch(e.tag){case 31:case 13:var r=e.stateNode,i=e.memoizedState;i!==null&&(n=i.retryLane);break;case 19:r=e.stateNode;break;case 22:r=e.stateNode._retryCache;break;default:throw Error(a(314))}r!==null&&r.delete(t),qu(e,n)}function Xu(e,t){return xe(e,t)}var Zu=null,Qu=null,$u=!1,ed=!1,td=!1,nd=0;function rd(e){e!==Qu&&e.next===null&&(Qu===null?Zu=Qu=e:Qu=Qu.next=e),ed=!0,$u||($u=!0,ud())}function id(e,t){if(!td&&ed){td=!0;do for(var n=!1,r=Zu;r!==null;){if(!t)if(e!==0){var i=r.pendingLanes;if(i===0)var a=0;else{var o=r.suspendedLanes,s=r.pingedLanes;a=(1<<31-z(42|e)+1)-1,a&=i&~(o&~s),a=a&201326741?a&201326741|1:a?a|2:0}a!==0&&(n=!0,ld(r,a))}else a=Il,a=Ve(r,r===Pl?a:0,r.cancelPendingCommit!==null||r.timeoutHandle!==-1),!(a&3)||He(r,a)||(n=!0,ld(r,a));r=r.next}while(n);td=!1}}function ad(){od()}function od(){ed=$u=!1;var e=0;nd!==0&&Kd()&&(e=nd);for(var t=Te(),n=null,r=Zu;r!==null;){var i=r.next,a=sd(r,t);a===0?(r.next=null,n===null?Zu=i:n.next=i,i===null&&(Qu=n)):(n=r,(e!==0||a&3)&&(ed=!0)),r=i}ru!==0&&ru!==5||id(e,!1),nd!==0&&(nd=0)}function sd(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,i=e.expirationTimes,a=e.pendingLanes&-62914561;0s)break;var u=c.transferSize,d=c.initiatorType;u&&Rd(d)&&(c=c.responseEnd,o+=u*(c`u`?null:document;function Sf(e,t,n){var r=xf;if(r&&typeof t==`string`&&t){var i=Nt(t);i=`link[rel="`+e+`"][href="`+i+`"]`,typeof n==`string`&&(i+=`[crossorigin="`+n+`"]`),gf.has(i)||(gf.add(i),e={rel:e,crossOrigin:n,href:t},r.querySelector(i)===null&&(t=r.createElement(`link`),Id(t,`link`,e),mt(t),r.head.appendChild(t)))}}function Cf(e){vf.D(e),Sf(`dns-prefetch`,e,null)}function wf(e,t){vf.C(e,t),Sf(`preconnect`,e,t)}function Tf(e,t,n){vf.L(e,t,n);var r=xf;if(r&&e&&t){var i=`link[rel="preload"][as="`+Nt(t)+`"]`;t===`image`&&n&&n.imageSrcSet?(i+=`[imagesrcset="`+Nt(n.imageSrcSet)+`"]`,typeof n.imageSizes==`string`&&(i+=`[imagesizes="`+Nt(n.imageSizes)+`"]`)):i+=`[href="`+Nt(e)+`"]`;var a=i;switch(t){case`style`:a=jf(e);break;case`script`:a=Ff(e)}hf.has(a)||(e=p({rel:`preload`,href:t===`image`&&n&&n.imageSrcSet?void 0:e,as:t},n),hf.set(a,e),r.querySelector(i)!==null||t===`style`&&r.querySelector(Mf(a))||t===`script`&&r.querySelector(If(a))||(t=r.createElement(`link`),Id(t,`link`,e),mt(t),r.head.appendChild(t)))}}function Ef(e,t){vf.m(e,t);var n=xf;if(n&&e){var r=t&&typeof t.as==`string`?t.as:`script`,i=`link[rel="modulepreload"][as="`+Nt(r)+`"][href="`+Nt(e)+`"]`,a=i;switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:a=Ff(e)}if(!hf.has(a)&&(e=p({rel:`modulepreload`,href:e},t),hf.set(a,e),n.querySelector(i)===null)){switch(r){case`audioworklet`:case`paintworklet`:case`serviceworker`:case`sharedworker`:case`worker`:case`script`:if(n.querySelector(If(a)))return}r=n.createElement(`link`),Id(r,`link`,e),mt(r),n.head.appendChild(r)}}}function Df(e,t,n){vf.S(e,t,n);var r=xf;if(r&&e){var i=pt(r).hoistableStyles,a=jf(e);t||=`default`;var o=i.get(a);if(!o){var s={loading:0,preload:null};if(o=r.querySelector(Mf(a)))s.loading=5;else{e=p({rel:`stylesheet`,href:e,"data-precedence":t},n),(n=hf.get(a))&&zf(e,n);var c=o=r.createElement(`link`);mt(c),Id(c,`link`,e),c._p=new Promise(function(e,t){c.onload=e,c.onerror=t}),c.addEventListener(`load`,function(){s.loading|=1}),c.addEventListener(`error`,function(){s.loading|=2}),s.loading|=4,Rf(o,t,r)}o={type:`stylesheet`,instance:o,count:1,state:s},i.set(a,o)}}}function Of(e,t){vf.X(e,t);var n=xf;if(n&&e){var r=pt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=p({src:e,async:!0},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),mt(a),Id(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function kf(e,t){vf.M(e,t);var n=xf;if(n&&e){var r=pt(n).hoistableScripts,i=Ff(e),a=r.get(i);a||(a=n.querySelector(If(i)),a||(e=p({src:e,async:!0,type:`module`},t),(t=hf.get(i))&&Bf(e,t),a=n.createElement(`script`),mt(a),Id(a,`link`,e),n.head.appendChild(a)),a={type:`script`,instance:a,count:1,state:null},r.set(i,a))}}function Af(e,t,n,r){var i=(i=le.current)?_f(i):null;if(!i)throw Error(a(446));switch(e){case`meta`:case`title`:return null;case`style`:return typeof n.precedence==`string`&&typeof n.href==`string`?(t=jf(n.href),n=pt(i).hoistableStyles,r=n.get(t),r||(r={type:`style`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};case`link`:if(n.rel===`stylesheet`&&typeof n.href==`string`&&typeof n.precedence==`string`){e=jf(n.href);var o=pt(i).hoistableStyles,s=o.get(e);if(s||(i=i.ownerDocument||i,s={type:`stylesheet`,instance:null,count:0,state:{loading:0,preload:null}},o.set(e,s),(o=i.querySelector(Mf(e)))&&!o._p&&(s.instance=o,s.state.loading=5),hf.has(e)||(n={rel:`preload`,as:`style`,href:n.href,crossOrigin:n.crossOrigin,integrity:n.integrity,media:n.media,hrefLang:n.hrefLang,referrerPolicy:n.referrerPolicy},hf.set(e,n),o||Pf(i,e,n,s.state))),t&&r===null)throw Error(a(528,``));return s}if(t&&r!==null)throw Error(a(529,``));return null;case`script`:return t=n.async,n=n.src,typeof n==`string`&&t&&typeof t!=`function`&&typeof t!=`symbol`?(t=Ff(n),n=pt(i).hoistableScripts,r=n.get(t),r||(r={type:`script`,instance:null,count:0,state:null},n.set(t,r)),r):{type:`void`,instance:null,count:0,state:null};default:throw Error(a(444,e))}}function jf(e){return`href="`+Nt(e)+`"`}function Mf(e){return`link[rel="stylesheet"][`+e+`]`}function Nf(e){return p({},e,{"data-precedence":e.precedence,precedence:null})}function Pf(e,t,n,r){e.querySelector(`link[rel="preload"][as="style"][`+t+`]`)?r.loading=1:(t=e.createElement(`link`),r.preload=t,t.addEventListener(`load`,function(){return r.loading|=1}),t.addEventListener(`error`,function(){return r.loading|=2}),Id(t,`link`,n),mt(t),e.head.appendChild(t))}function Ff(e){return`[src="`+Nt(e)+`"]`}function If(e){return`script[async]`+e}function Lf(e,t,n){if(t.count++,t.instance===null)switch(t.type){case`style`:var r=e.querySelector(`style[data-href~="`+Nt(n.href)+`"]`);if(r)return t.instance=r,mt(r),r;var i=p({},n,{"data-href":n.href,"data-precedence":n.precedence,href:null,precedence:null});return r=(e.ownerDocument||e).createElement(`style`),mt(r),Id(r,`style`,i),Rf(r,n.precedence,e),t.instance=r;case`stylesheet`:i=jf(n.href);var o=e.querySelector(Mf(i));if(o)return t.state.loading|=4,t.instance=o,mt(o),o;r=Nf(n),(i=hf.get(i))&&zf(r,i),o=(e.ownerDocument||e).createElement(`link`),mt(o);var s=o;return s._p=new Promise(function(e,t){s.onload=e,s.onerror=t}),Id(o,`link`,r),t.state.loading|=4,Rf(o,n.precedence,e),t.instance=o;case`script`:return o=Ff(n.src),(i=e.querySelector(If(o)))?(t.instance=i,mt(i),i):(r=n,(i=hf.get(o))&&(r=p({},n),Bf(r,i)),e=e.ownerDocument||e,i=e.createElement(`script`),mt(i),Id(i,`link`,r),e.head.appendChild(i),t.instance=i);case`void`:return null;default:throw Error(a(443,t.type))}else t.type===`stylesheet`&&!(t.state.loading&4)&&(r=t.instance,t.state.loading|=4,Rf(r,n.precedence,e));return t.instance}function Rf(e,t,n){for(var r=n.querySelectorAll(`link[rel="stylesheet"][data-precedence],style[data-precedence]`),i=r.length?r[r.length-1]:null,a=i,o=0;o title`):null)}function Wf(e,t,n){if(n===1||t.itemProp!=null)return!1;switch(e){case`meta`:case`title`:return!0;case`style`:if(typeof t.precedence!=`string`||typeof t.href!=`string`||t.href===``)break;return!0;case`link`:if(typeof t.rel!=`string`||typeof t.href!=`string`||t.href===``||t.onLoad||t.onError)break;switch(t.rel){case`stylesheet`:return e=t.disabled,typeof t.precedence==`string`&&e==null;default:return!0}case`script`:if(t.async&&typeof t.async!=`function`&&typeof t.async!=`symbol`&&!t.onLoad&&!t.onError&&t.src&&typeof t.src==`string`)return!0}return!1}function Gf(e){return!(e.type===`stylesheet`&&!(e.state.loading&3))}function Kf(e,t,n,r){if(n.type===`stylesheet`&&(typeof r.media!=`string`||!1!==matchMedia(r.media).matches)&&!(n.state.loading&4)){if(n.instance===null){var i=jf(r.href),a=t.querySelector(Mf(i));if(a){t=a._p,typeof t==`object`&&t&&typeof t.then==`function`&&(e.count++,e=Yf.bind(e),t.then(e,e)),n.state.loading|=4,n.instance=a,mt(a);return}a=t.ownerDocument||t,r=Nf(r),(i=hf.get(i))&&zf(r,i),a=a.createElement(`link`),mt(a);var o=a;o._p=new Promise(function(e,t){o.onload=e,o.onerror=t}),Id(a,`link`,r),n.instance=a}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(n,t),(t=n.state.preload)&&!(n.state.loading&3)&&(e.count++,n=Yf.bind(e),t.addEventListener(`load`,n),t.addEventListener(`error`,n))}}var qf=0;function Jf(e,t){return e.stylesheets&&e.count===0&&Zf(e,e.stylesheets),0qf?50:800)+t);return e.unsuspend=n,function(){e.unsuspend=null,clearTimeout(r),clearTimeout(i)}}:null}function Yf(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Zf(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Xf=null;function Zf(e,t){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Xf=new Map,t.forEach(Qf,e),Xf=null,Yf.call(e))}function Qf(e,t){if(!(t.state.loading&4)){var n=Xf.get(e);if(n)var r=n.get(null);else{n=new Map,Xf.set(e,n);for(var i=e.querySelectorAll(`link[data-precedence],style[data-precedence]`),a=0;a{function n(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>`u`||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!=`function`))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(n)}catch(e){console.error(e)}}n(),t.exports=ro()}))(),1),Z=i(),ao=(0,J.createContext)(void 0);function oo(e,t){try{let t=localStorage.getItem(e);if(t===`light`||t===`dark`||t===`system`)return t}catch{}return t}function so(e){let t=(0,Z.c)(14),{children:n,defaultTheme:r,storageKey:i}=e,a=r===void 0?`dark`:r,o=i===void 0?`ui-theme`:i,s;t[0]!==a||t[1]!==o?(s=()=>oo(o,a),t[0]=a,t[1]=o,t[2]=s):s=t[2];let[c,l]=(0,J.useState)(s),u,d;t[3]===c?(u=t[4],d=t[5]):(u=()=>{let e=window.document.documentElement;if(e.classList.remove(`light`,`dark`),c===`system`){let t=window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`;e.classList.add(t);return}e.classList.add(c)},d=[c],t[3]=c,t[4]=u,t[5]=d),(0,J.useEffect)(u,d);let f;t[6]===o?f=t[7]:(f=e=>{try{localStorage.setItem(o,e)}catch{}l(e)},t[6]=o,t[7]=f);let p;t[8]!==f||t[9]!==c?(p={theme:c,setTheme:f},t[8]=f,t[9]=c,t[10]=p):p=t[10];let m=p,h;return t[11]!==n||t[12]!==m?(h=(0,Y.jsx)(ao.Provider,{value:m,children:n}),t[11]=n,t[12]=m,t[13]=h):h=t[13],h}function co(){let e=(0,J.useContext)(ao);if(e===void 0)throw Error(`useTheme must be used within a ThemeProvider`);return e}function lo(e){return be(e.defaultTagName??`div`,e,e)}var uo=V(`activity`,[[`path`,{d:`M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2`,key:`169zse`}]]),fo=V(`arrow-left`,[[`path`,{d:`m12 19-7-7 7-7`,key:`1l729n`}],[`path`,{d:`M19 12H5`,key:`x3x0zl`}]]),po=V(`book-open`,[[`path`,{d:`M12 5v16`,key:`1f6ucr`}],[`path`,{d:`M20.001 19A2 2 0 0022 17V5a2 2 0 00-1.999-2L16 3.002A5 5 0 0012 5a5 5 0 00-4-2H4a2 2 0 00-2 2v12a2 2 0 001.999 2H8a5 5 0 014 2 5 5 0 014-2z`,key:`1fyvmf`}]]),mo=V(`boxes`,[[`path`,{d:`M2.97 12.92A2 2 0 0 0 2 14.63v3.24a2 2 0 0 0 .97 1.71l3 1.8a2 2 0 0 0 2.06 0L12 19v-5.5l-5-3-4.03 2.42Z`,key:`lc1i9w`}],[`path`,{d:`m7 16.5-4.74-2.85`,key:`1o9zyk`}],[`path`,{d:`m7 16.5 5-3`,key:`va8pkn`}],[`path`,{d:`M7 16.5v5.17`,key:`jnp8gn`}],[`path`,{d:`M12 13.5V19l3.97 2.38a2 2 0 0 0 2.06 0l3-1.8a2 2 0 0 0 .97-1.71v-3.24a2 2 0 0 0-.97-1.71L17 10.5l-5 3Z`,key:`8zsnat`}],[`path`,{d:`m17 16.5-5-3`,key:`8arw3v`}],[`path`,{d:`m17 16.5 4.74-2.85`,key:`8rfmw`}],[`path`,{d:`M17 16.5v5.17`,key:`k6z78m`}],[`path`,{d:`M7.97 4.42A2 2 0 0 0 7 6.13v4.37l5 3 5-3V6.13a2 2 0 0 0-.97-1.71l-3-1.8a2 2 0 0 0-2.06 0l-3 1.8Z`,key:`1xygjf`}],[`path`,{d:`M12 8 7.26 5.15`,key:`1vbdud`}],[`path`,{d:`m12 8 4.74-2.85`,key:`3rx089`}],[`path`,{d:`M12 13.5V8`,key:`1io7kd`}]]),ho=V(`camera`,[[`path`,{d:`M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z`,key:`18u6gg`}],[`circle`,{cx:`12`,cy:`13`,r:`3`,key:`1vg3eu`}]]),go=V(`circle-alert`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`12`,x2:`12`,y1:`8`,y2:`12`,key:`1pkeuh`}],[`line`,{x1:`12`,x2:`12.01`,y1:`16`,y2:`16`,key:`4dfq90`}]]),_o=V(`container`,[[`path`,{d:`M22 7.7c0-.6-.4-1.2-.8-1.5l-6.3-3.9a1.72 1.72 0 0 0-1.7 0l-10.3 6c-.5.2-.9.8-.9 1.4v6.6c0 .5.4 1.2.8 1.5l6.3 3.9a1.72 1.72 0 0 0 1.7 0l10.3-6c.5-.3.9-1 .9-1.5Z`,key:`1t2lqe`}],[`path`,{d:`M10 21.9V14L2.1 9.1`,key:`o7czzq`}],[`path`,{d:`m10 14 11.9-6.9`,key:`zm5e20`}],[`path`,{d:`M14 19.8v-8.1`,key:`159ecu`}],[`path`,{d:`M18 17.5V9.4`,key:`11uown`}]]),vo=V(`crosshair`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`line`,{x1:`22`,x2:`18`,y1:`12`,y2:`12`,key:`l9bcsi`}],[`line`,{x1:`6`,x2:`2`,y1:`12`,y2:`12`,key:`13hhkx`}],[`line`,{x1:`12`,x2:`12`,y1:`6`,y2:`2`,key:`10w3f3`}],[`line`,{x1:`12`,x2:`12`,y1:`22`,y2:`18`,key:`15g9kq`}]]),yo=V(`download`,[[`path`,{d:`M12 15V3`,key:`m9g1x1`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}],[`path`,{d:`m7 10 5 5 5-5`,key:`brsn70`}]]),bo=V(`file-stack`,[[`path`,{d:`M11 21a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1v-8a1 1 0 0 1 1-1`,key:`likhh7`}],[`path`,{d:`M16 16a1 1 0 0 1-1 1H9a1 1 0 0 1-1-1V8a1 1 0 0 1 1-1`,key:`17ky3x`}],[`path`,{d:`M21 6a2 2 0 0 0-.586-1.414l-2-2A2 2 0 0 0 17 2h-3a1 1 0 0 0-1 1v8a1 1 0 0 0 1 1h6a1 1 0 0 0 1-1z`,key:`1hyeo0`}]]),xo=V(`globe`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20`,key:`13o1zl`}],[`path`,{d:`M2 12h20`,key:`9i4pu4`}]]),So=V(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),Co=V(`house`,[[`path`,{d:`M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8`,key:`5wwlr5`}],[`path`,{d:`M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`r6nss1`}]]),wo=V(`id-card`,[[`path`,{d:`M16 10h2`,key:`8sgtl7`}],[`path`,{d:`M16 14h2`,key:`epxaof`}],[`path`,{d:`M6.17 15a3 3 0 0 1 5.66 0`,key:`n6f512`}],[`circle`,{cx:`9`,cy:`11`,r:`2`,key:`yxgjnd`}],[`rect`,{x:`2`,y:`5`,width:`20`,height:`14`,rx:`2`,key:`qneu4z`}]]),To=V(`image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]),Eo=V(`key`,[[`path`,{d:`m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4`,key:`g0fldk`}],[`path`,{d:`m21 2-9.6 9.6`,key:`1j0ho8`}],[`circle`,{cx:`7.5`,cy:`15.5`,r:`5.5`,key:`yqb3hr`}]]),Do=V(`layers`,[[`path`,{d:`M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z`,key:`zw3jo`}],[`path`,{d:`M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12`,key:`1wduqc`}],[`path`,{d:`M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17`,key:`kqbvx6`}]]),Oo=V(`layout-grid`,[[`rect`,{width:`7`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`1g98yp`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`3`,rx:`1`,key:`6d4xhi`}],[`rect`,{width:`7`,height:`7`,x:`14`,y:`14`,rx:`1`,key:`nxv5o0`}],[`rect`,{width:`7`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`1bb6yr`}]]),ko=V(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),Ao=V(`map-pin`,[[`path`,{d:`M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0`,key:`1r0f0z`}],[`circle`,{cx:`12`,cy:`10`,r:`3`,key:`ilqhr7`}]]),jo=V(`moon`,[[`path`,{d:`M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401`,key:`kfwtm`}]]),Mo=V(`network`,[[`rect`,{x:`16`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`4q2zg0`}],[`rect`,{x:`2`,y:`16`,width:`6`,height:`6`,rx:`1`,key:`8cvhb9`}],[`rect`,{x:`9`,y:`2`,width:`6`,height:`6`,rx:`1`,key:`1egb70`}],[`path`,{d:`M5 16v-3a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3`,key:`1jsf9p`}],[`path`,{d:`M12 12V8`,key:`2874zd`}]]),No=V(`package`,[[`path`,{d:`M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z`,key:`1a0edw`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}],[`polyline`,{points:`3.29 7 12 12 20.71 7`,key:`ousv84`}],[`path`,{d:`m7.5 4.27 9 5.15`,key:`1c824w`}]]),Po=V(`panel-left`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M9 3v18`,key:`fh3hqa`}]]),Fo=V(`route`,[[`circle`,{cx:`6`,cy:`19`,r:`3`,key:`1kj8tv`}],[`path`,{d:`M9 19h8.5a3.5 3.5 0 0 0 0-7h-11a3.5 3.5 0 0 1 0-7H15`,key:`1d8sl`}],[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}]]),Io=V(`router`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,key:`w68u3i`}],[`path`,{d:`M6.01 18H6`,key:`19vcac`}],[`path`,{d:`M10.01 18H10`,key:`uamcmx`}],[`path`,{d:`M15 10v4`,key:`qjz1xs`}],[`path`,{d:`M17.84 7.17a4 4 0 0 0-5.66 0`,key:`1rif40`}],[`path`,{d:`M20.66 4.34a8 8 0 0 0-11.31 0`,key:`6a5xfq`}]]),Lo=V(`server`,[[`rect`,{width:`20`,height:`8`,x:`2`,y:`2`,rx:`2`,ry:`2`,key:`ngkwjq`}],[`rect`,{width:`20`,height:`8`,x:`2`,y:`14`,rx:`2`,ry:`2`,key:`iecqi9`}],[`line`,{x1:`6`,x2:`6.01`,y1:`6`,y2:`6`,key:`16zg32`}],[`line`,{x1:`6`,x2:`6.01`,y1:`18`,y2:`18`,key:`nzw8ys`}]]),Ro=V(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),zo=V(`shield`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}]]),Bo=V(`square-terminal`,[[`path`,{d:`m7 11 2-2-2-2`,key:`1lz0vl`}],[`path`,{d:`M11 13h4`,key:`1p7l4v`}],[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}]]),Vo=V(`sun`,[[`circle`,{cx:`12`,cy:`12`,r:`4`,key:`4exip2`}],[`path`,{d:`M12 2v2`,key:`tus03m`}],[`path`,{d:`M12 20v2`,key:`1lh1kg`}],[`path`,{d:`m4.93 4.93 1.41 1.41`,key:`149t6j`}],[`path`,{d:`m17.66 17.66 1.41 1.41`,key:`ptbguv`}],[`path`,{d:`M2 12h2`,key:`1t8f8n`}],[`path`,{d:`M20 12h2`,key:`1q8mjw`}],[`path`,{d:`m6.34 17.66-1.41 1.41`,key:`1m8zz5`}],[`path`,{d:`m19.07 4.93-1.41 1.41`,key:`1shlcs`}]]),Ho=V(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]),Uo=V(`user-cog`,[[`path`,{d:`M10 15H6a4 4 0 0 0-4 4v2`,key:`1nfge6`}],[`path`,{d:`m14.305 16.53.923-.382`,key:`1itpsq`}],[`path`,{d:`m15.228 13.852-.923-.383`,key:`eplpkm`}],[`path`,{d:`m16.852 12.228-.383-.923`,key:`13v3q0`}],[`path`,{d:`m16.852 17.772-.383.924`,key:`1i8mnm`}],[`path`,{d:`m19.148 12.228.383-.923`,key:`1q8j1v`}],[`path`,{d:`m19.53 18.696-.382-.924`,key:`vk1qj3`}],[`path`,{d:`m20.772 13.852.924-.383`,key:`n880s0`}],[`path`,{d:`m20.772 16.148.924.383`,key:`1g6xey`}],[`circle`,{cx:`18`,cy:`15`,r:`3`,key:`gjjjvw`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),Wo=V(`users-round`,[[`path`,{d:`M18 21a8 8 0 0 0-16 0`,key:`3ypg7q`}],[`circle`,{cx:`10`,cy:`8`,r:`5`,key:`o932ke`}],[`path`,{d:`M22 20c0-3.37-2-6.5-4-8a5 5 0 0 0-.45-8.3`,key:`10s06x`}]]),Go=V(`users`,[[`path`,{d:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2`,key:`1yyitq`}],[`path`,{d:`M16 3.128a4 4 0 0 1 0 7.744`,key:`16gr8j`}],[`path`,{d:`M22 21v-2a4 4 0 0 0-3-3.87`,key:`kshegd`}],[`circle`,{cx:`9`,cy:`7`,r:`4`,key:`nufk8`}]]),Ko=V(`waypoints`,[[`path`,{d:`m10.586 5.414-5.172 5.172`,key:`4mc350`}],[`path`,{d:`m18.586 13.414-5.172 5.172`,key:`8c96vv`}],[`path`,{d:`M6 12h12`,key:`8npq4p`}],[`circle`,{cx:`12`,cy:`20`,r:`2`,key:`144qzu`}],[`circle`,{cx:`12`,cy:`4`,r:`2`,key:`muu5ef`}],[`circle`,{cx:`20`,cy:`12`,r:`2`,key:`1xzzfp`}],[`circle`,{cx:`4`,cy:`12`,r:`2`,key:`1hvhnz`}]]),qo=V(`x`,[[`path`,{d:`M18 6 6 18`,key:`1bl5f8`}],[`path`,{d:`m6 6 12 12`,key:`d8bk6v`}]]),Jo=J.forwardRef(function(e,t){let{render:n,className:r,id:i,name:a,value:o,disabled:s=!1,onValueChange:c,defaultValue:l,autoFocus:u=!1,style:d,...f}=e,{state:p,name:m,disabled:h,setTouched:g,setDirty:_,validityData:v,setFocused:y,setFilled:b,validationMode:x,validation:S}=ut(),{clearErrors:C}=st(),w=h||s,T=m??a,E={...p,disabled:w},{labelId:D}=ct(),O=dt({id:i});H(()=>{let e=o!=null;S.inputRef.current?.value||e&&o!==``?b(!0):e&&o===``&&b(!1)},[S.inputRef,b,o]);let k=J.useRef(null);H(()=>{u&&k.current===wt(Tt(k.current))&&y(!0)},[u,y]);let[A]=Dn({controlled:o,default:l,name:`FieldControl`,state:`value`}),ee=o!==void 0,te=ee?A:void 0,ne=it(()=>S.inputRef.current?.value);return lt(S.inputRef,O,te,ne,!w,a),be(`input`,e,{ref:[t,k],state:E,props:[{id:O,disabled:w,name:T,ref:S.inputRef,"aria-labelledby":D,autoFocus:u,...ee?{value:te}:{defaultValue:l},onChange(e){let t=e.currentTarget.value;c?.(t,Ct(gt,e.nativeEvent)),_(t!==v.initialValue),b(t!==``),e.nativeEvent.defaultPrevented||(C(T),S.change(t))},onFocus(){y(!0)},onBlur(e){g(!0),y(!1),x===`onBlur`&&S.commit(e.currentTarget.value)},onKeyDown(e){e.currentTarget.tagName===`INPUT`&&e.key===`Enter`&&(g(!0),S.commit(e.currentTarget.value))}},f,e=>S.getValidationProps(w,e)],stateAttributesMapping:ft})}),Yo=J.forwardRef(function(e,t){return(0,Y.jsx)(Jo,{ref:t,...e})});function Xo(e){let t=(0,Z.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,type:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a;t[4]===n?a=t[5]:(a=z(`h-7 w-full min-w-0 rounded-md border border-input bg-input/20 px-2 py-0.5 text-sm transition-colors outline-none file:inline-flex file:h-6 file:border-0 file:bg-transparent file:text-xs/relaxed file:font-medium file:text-foreground placeholder:text-muted-foreground autofill:[-webkit-text-fill-color:var(--color-foreground)] autofill:[transition:background-color_9999s_ease-in-out_0s] focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-2 aria-invalid:ring-destructive/20 md:text-xs/relaxed dark:bg-input/30 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40`,n),t[4]=n,t[5]=a);let o;return t[6]!==r||t[7]!==a||t[8]!==i?(o=(0,Y.jsx)(Yo,{className:a,"data-slot":`input`,type:i,...r}),t[6]=r,t[7]=a,t[8]=i,t[9]=o):o=t[9],o}function Zo(e){let t=(0,Z.c)(10),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,orientation:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i===void 0?`horizontal`:i,o;t[4]===n?o=t[5]:(o=z(`shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px data-[orientation=vertical]:self-stretch`,n),t[4]=n,t[5]=o);let s;return t[6]!==a||t[7]!==r||t[8]!==o?(s=(0,Y.jsx)(pt,{className:o,"data-slot":`separator`,orientation:a,...r}),t[6]=a,t[7]=r,t[8]=o,t[9]=s):s=t[9],s}var Qo=J.createContext(!1),$o=J.createContext(void 0);function es(e){let t=J.useContext($o);if(e===!1&&t===void 0)throw Error(Ce(27));return t}var ts={...Qt,...Tn},ns=J.forwardRef(function(e,t){let{render:n,className:r,style:i,forceRender:a=!1,...o}=e,{store:s}=es(),c=s.useState(`open`),l=s.useState(`nested`),u=s.useState(`mounted`),d={open:c,transitionStatus:s.useState(`transitionStatus`)};return be(`div`,e,{state:d,ref:[s.context.backdropRef,t],stateAttributesMapping:ts,props:[{role:`presentation`,hidden:!u,style:{userSelect:`none`,WebkitUserSelect:`none`}},o],enabled:a||!l})}),rs=J.forwardRef(function(e,t){let{render:n,className:r,style:i,disabled:a=!1,nativeButton:o=!0,...s}=e,{store:c}=es(),l=c.useState(`open`),{getButtonProps:u,buttonRef:d}=rt({disabled:a,native:o}),f={disabled:a};function p(e){l&&c.setOpen(!1,Ct(xt,e.nativeEvent))}return be(`button`,e,{state:f,ref:[t,d],props:[{onClick:p},s,u]})}),is=J.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,{store:s}=es(),c=mt(a);return s.useSyncedValueWithCleanup(`descriptionElementId`,c),be(`p`,e,{ref:t,props:[{id:c},o]})});function as(e,t){return t!=null&&!Zt(t)?0:typeof e==`function`?e():e}function os(e,t,n){let r=as(e,n);return typeof r==`number`?r:r?.[t]}function ss(e){return typeof e==`function`?e():e}function cs(e,t){return t||e===`click`||e===`mousedown`}function ls(e){return e?.includes(`mouse`)&&e!==`mousedown`}var us=J.createContext({hasProvider:!1,timeoutMs:0,delayRef:{current:0},initialDelayRef:{current:0},timeout:new ln,currentIdRef:{current:null},currentContextRef:{current:null}});function ds(e,t){e.current=t.current}function fs(e){let{children:t,delay:n,timeoutMs:r=0}=e,i=J.useRef(n),a=J.useRef(n),o=J.useRef(null),s=J.useRef(null),c=en();return H(()=>{if(a.current=n,!o.current){i.current=n;return}i.current={open:os(i.current,`open`),close:os(n,`close`)}},[n,o,i,a]),(0,Y.jsx)(us.Provider,{value:J.useMemo(()=>({hasProvider:!0,delayRef:i,initialDelayRef:a,currentIdRef:o,timeoutMs:r,currentContextRef:s,timeout:c}),[r,c]),children:t})}function ps(e,t={open:!1}){let{open:n}=t,r=`rootStore`in e?e.rootStore:e,i=r.useState(`floatingId`),{currentIdRef:a,delayRef:o,timeoutMs:s,initialDelayRef:c,currentContextRef:l,hasProvider:u,timeout:d}=J.useContext(us),[f,p]=J.useState(!1),m=J.useRef(n),h=J.useRef(!1);return H(()=>{m.current=n},[n]),H(()=>()=>{h.current=!0},[]),H(()=>{function e(){h.current||p(!1),l.current?.setIsInstantPhase(!1),a.current=null,l.current=null,o.current=c.current,d.clear()}if(a.current&&!n&&a.current===i){if(p(!1),s){let t=i;return d.start(s,()=>{r.select(`open`)||a.current&&a.current!==t||e()}),()=>{(m.current||a.current!==t)&&d.clear()}}e()}},[n,i,a,o,s,c,l,d,r]),H(()=>{if(!n)return;let e=l.current,t=a.current;d.clear(),l.current={onOpenChange:r.setOpen,setIsInstantPhase:p},a.current=i,o.current={open:0,close:os(c.current,`close`)},t!==null&&t!==i?(p(!0),e?.setIsInstantPhase(!0),e?.onOpenChange(!1,Ct(gt))):(p(!1),e?.setIsInstantPhase(!1))},[n,i,r,a,o,c,l,d]),H(()=>()=>{if(a.current===i){if(l.current=null,!m.current)return;a.current=null,ds(o,c),d.clear()}},[l,a,o,i,c,d]),J.useMemo(()=>({hasProvider:u,delayRef:o,isInstantPhase:f}),[u,o,f])}function ms(e,t){let n=null,r=null,i=!1;return{contextElement:e||void 0,getBoundingClientRect(){let a=e?.getBoundingClientRect()||{width:0,height:0,x:0,y:0},o=t.axis===`x`||t.axis===`both`,s=t.axis===`y`||t.axis===`both`,c=[`mouseenter`,`mousemove`].includes(t.dataRef.current.openEvent?.type||``)&&t.pointerType!==`touch`,l=a.width,u=a.height,d=a.x,f=a.y;return n==null&&t.x&&o&&(n=a.x-t.x),r==null&&t.y&&s&&(r=a.y-t.y),d-=n||0,f-=r||0,l=0,u=0,!i||c?(l=t.axis===`y`?a.width:0,u=t.axis===`x`?a.height:0,d=o&&t.x!=null?t.x:d,f=s&&t.y!=null?t.y:f):i&&!c&&(u=t.axis===`x`?a.height:u,l=t.axis===`y`?a.width:l),i=!0,{width:l,height:u,x:d,y:f,top:f,right:d+l,bottom:f+u,left:d}}}}function hs(e){return e!=null&&e.clientX!=null}function gs(e,t={}){let{enabled:n=!0,axis:r=`both`}=t,i=`rootStore`in e?e.rootStore:e,a=i.useState(`open`),o=i.useState(`floatingElement`),s=i.useState(`domReferenceElement`),c=i.context.dataRef,l=J.useRef(!1),u=J.useRef(null),[d,f]=J.useState(),[p,m]=J.useState([]),h=it(e=>{i.set(`positionReference`,e)}),g=it((e,t,n)=>{l.current||c.current.openEvent&&!hs(c.current.openEvent)||i.set(`positionReference`,ms(n??s,{x:e,y:t,axis:r,dataRef:c,pointerType:d}))}),_=it(e=>{a?u.current||(g(e.clientX,e.clientY,e.currentTarget),m([])):g(e.clientX,e.clientY,e.currentTarget)}),v=Zt(d)?o:a;J.useEffect(()=>{if(!n){h(s);return}if(!v)return;function e(){u.current?.(),u.current=null}let t=et(o);function r(t){let n=ht(t);Et(o,n)?e():g(t.clientX,t.clientY)}return!c.current.openEvent||hs(c.current.openEvent)?u.current=Sn(t,`mousemove`,r):h(s),e},[v,n,o,c,s,i,g,h,p]),J.useEffect(()=>()=>{i.set(`positionReference`,null)},[i]),J.useEffect(()=>{n&&!o&&(l.current=!1)},[n,o]),J.useEffect(()=>{!n&&a&&(l.current=!0)},[n,a]);let y=J.useMemo(()=>{function e(e){f(e.pointerType)}return{onPointerDown:e,onPointerEnter:e,onMouseMove:_,onMouseEnter:_}},[_]);return J.useMemo(()=>n?{reference:y,trigger:y}:{},[n,y])}function _s(){return new Ot({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:new dn,floatingId:void 0,syncOnly:!1,nested:!1,onOpenChange:void 0})}function vs(){return{open:!1,openProp:void 0,mounted:!1,transitionStatus:void 0,floatingRootContext:_s(),floatingId:void 0,triggerCount:0,preventUnmountingOnClose:!1,payload:void 0,activeTriggerId:null,activeTriggerElement:null,triggerIdProp:void 0,popupElement:null,positionerElement:null,activeTriggerProps:ge,inactiveTriggerProps:ge,popupProps:ge}}function ys(e,t,n=!1){return new Ot({open:!1,transitionStatus:void 0,floatingElement:null,referenceElement:null,triggerElements:e,floatingId:t,syncOnly:!0,nested:n,onOpenChange:void 0})}var bs=U(e=>e.triggerIdProp??e.activeTriggerId),xs=U(e=>e.openProp??e.open),Ss=U(e=>(e.popupElement?.id??e.floatingId)||void 0);function Cs(e,t){return t!==void 0&&xs(e)&&bs(e)===t}function ws(e,t){return Cs(e,t)?!0:t!==void 0&&xs(e)&&bs(e)==null&&e.triggerCount===1}var Ts={open:xs,mounted:U(e=>e.mounted),transitionStatus:U(e=>e.transitionStatus),floatingRootContext:U(e=>e.floatingRootContext),triggerCount:U(e=>e.triggerCount),preventUnmountingOnClose:U(e=>e.preventUnmountingOnClose),payload:U(e=>e.payload),activeTriggerId:bs,activeTriggerElement:U(e=>e.mounted?e.activeTriggerElement:null),popupId:Ss,isTriggerActive:U((e,t)=>t!==void 0&&bs(e)===t),isOpenedByTrigger:U((e,t)=>Cs(e,t)),isMountedByTrigger:U((e,t)=>t!==void 0&&bs(e)===t&&e.mounted),triggerProps:U((e,t)=>t?e.activeTriggerProps:e.inactiveTriggerProps),triggerPopupId:U((e,t)=>ws(e,t)?Ss(e):void 0),popupProps:U(e=>e.popupProps),popupElement:U(e=>e.popupElement),positionerElement:U(e=>e.positionerElement)},Es=rn&&Mt;function Ds(e,t={}){let{enabled:n=!0,delay:r}=t,i=`rootStore`in e?e.rootStore:e,{events:a,dataRef:o}=i.context,s=J.useRef(!1),c=J.useRef(null),l=J.useRef(!0),u=en();J.useEffect(()=>{let e=i.select(`domReferenceElement`);if(!n)return;let t=et(e);function r(){let e=i.select(`domReferenceElement`);!i.select(`open`)&&tt(e)&&e===wt(Tt(e))&&(s.current=!0)}function a(){l.current=!0}function o(){l.current=!1}return qt(Sn(t,`blur`,r),Es&&Sn(t,`keydown`,a,!0),Es&&Sn(t,`pointerdown`,o,!0))},[i,n]),J.useEffect(()=>{if(!n)return;function e(e){if(e.reason===`trigger-press`||e.reason===`escape-key`){let e=i.select(`domReferenceElement`);ot(e)&&(c.current=e,s.current=!0)}}return a.on(`openchange`,e),()=>{a.off(`openchange`,e)}},[a,n,i]);let d=J.useMemo(()=>{function e(){s.current=!1,c.current=null}return{onMouseLeave(){e()},onFocus(t){let n=t.currentTarget;if(s.current){if(c.current===n)return;e()}let a=ht(t.nativeEvent);if(ot(a)){if(Es&&!t.relatedTarget){if(!l.current&&!Xt(a))return}else if(!hn(a))return}let o=fn(t.relatedTarget,i.context.triggerElements),{nativeEvent:d,currentTarget:f}=t,p=typeof r==`function`?r():r;if(i.select(`open`)&&o||p===0||p===void 0){i.setOpen(!0,Ct(bt,d,f));return}u.start(p,()=>{s.current||i.setOpen(!0,Ct(bt,d,f))})},onBlur(t){e();let n=t.relatedTarget,r=t.nativeEvent,a=ot(n)&&n.hasAttribute(It(`focus-guard`))&&n.getAttribute(`data-type`)===`outside`;u.start(0,()=>{let e=i.select(`domReferenceElement`),t=wt(Tt(e));!n&&t===e||Et(o.current.floatingContext?.refs.floating.current,t)||Et(e,t)||a||fn(n??t,i.context.triggerElements)||i.setOpen(!1,Ct(bt,r))})}}},[o,r,i,u]);return J.useMemo(()=>n?{reference:d,trigger:d}:{},[n,d])}var Os=class e{constructor(){this.pointerType=void 0,this.interactedInside=!1,this.handler=void 0,this.blockMouseMove=!0,this.performedPointerEventsMutation=!1,this.pointerEventsScopeElement=null,this.pointerEventsReferenceElement=null,this.pointerEventsFloatingElement=null,this.restTimeoutPending=!1,this.openChangeTimeout=new ln,this.restTimeout=new ln,this.handleCloseOptions=void 0}static create(){return new e}dispose=()=>{this.openChangeTimeout.clear(),this.restTimeout.clear()};disposeEffect=()=>this.dispose},ks=new WeakMap;function As(e){if(!e.performedPointerEventsMutation)return;let t=e.pointerEventsScopeElement;t&&ks.get(t)===e&&(e.pointerEventsScopeElement?.style.removeProperty(`pointer-events`),e.pointerEventsReferenceElement?.style.removeProperty(`pointer-events`),e.pointerEventsFloatingElement?.style.removeProperty(`pointer-events`),ks.delete(t)),e.performedPointerEventsMutation=!1,e.pointerEventsScopeElement=null,e.pointerEventsReferenceElement=null,e.pointerEventsFloatingElement=null}function js(e,t){let{scopeElement:n,referenceElement:r,floatingElement:i}=t,a=ks.get(n);a&&a!==e&&As(a),As(e),e.performedPointerEventsMutation=!0,e.pointerEventsScopeElement=n,e.pointerEventsReferenceElement=r,e.pointerEventsFloatingElement=i,ks.set(n,e),n.style.pointerEvents=`none`,r.style.pointerEvents=`auto`,i.style.pointerEvents=`auto`}function Ms(e){let t=e.context.dataRef.current,n=ye(()=>t.hoverInteractionState??Os.create()).current;return t.hoverInteractionState||=n,yn(t.hoverInteractionState.disposeEffect),t.hoverInteractionState}function Ns(e,t={}){let{enabled:n=!0,closeDelay:r=0,nodeId:i}=t,a=`rootStore`in e?e.rootStore:e,o=a.useState(`open`),s=a.useState(`floatingElement`),c=a.useState(`domReferenceElement`),{dataRef:l}=a.context,u=Kt(),d=kt(),f=Ms(a),p=en(),m=it(()=>cs(l.current.openEvent?.type,f.interactedInside)),h=it(()=>ls(l.current.openEvent?.type)),g=it(()=>{As(f)});H(()=>{o||(f.pointerType=void 0,f.restTimeoutPending=!1,f.interactedInside=!1,g())},[o,f,g]),J.useEffect(()=>g,[g]),H(()=>{if(n&&o&&f.handleCloseOptions?.blockPointerEvents&&h()&&ot(c)&&s){let e=c,t=s,n=Tt(s),r=u?.nodesRef.current.find(e=>e.id===d)?.context?.elements.floating;r&&(r.style.pointerEvents=``);let i=f.pointerEventsScopeElement===t?null:f.pointerEventsScopeElement,a=r===t?null:r,o=f.handleCloseOptions?.getScope?.()??i??a??e.closest(`[data-rootownerid]`)??n.body;return js(f,{scopeElement:o,referenceElement:e,floatingElement:t}),()=>{g()}}},[n,o,c,s,f,h,u,d,g]),J.useEffect(()=>{if(!n)return;function e(){return!!(u&&d&&$t(u.nodesRef.current,d).length>0)}function t(e){let t=os(r,`close`,f.pointerType),n=()=>{a.setOpen(!1,Ct(vt,e)),u?.events.emit(`floating.closed`,e)};t?f.openChangeTimeout.start(t,n):(f.openChangeTimeout.clear(),n())}function o(e){let t=ht(e);if(!Jt(t)){f.interactedInside=!1;return}f.interactedInside=t?.closest(`[aria-haspopup]`)!=null}function c(){f.openChangeTimeout.clear(),p.clear(),u?.events.off(`floating.closed`,v),g()}function _(n){if(e()&&u){u.events.on(`floating.closed`,v);return}if(fn(n.relatedTarget,a.context.triggerElements))return;let r=l.current.floatingContext?.nodeId??i,o=n.relatedTarget;if(!(u&&r&&ot(o)&&$t(u.nodesRef.current,r,!1).some(e=>Et(e.context?.elements.floating,o)))){if(f.handler){f.handler(n);return}g(),h()&&!m()&&t(n)}}function v(t){!u||!d||e()||p.start(0,()=>{u.events.off(`floating.closed`,v),a.setOpen(!1,Ct(vt,t)),u.events.emit(`floating.closed`,t)})}let y=s;return qt(y&&Sn(y,`mouseenter`,c),y&&Sn(y,`mouseleave`,_),y&&Sn(y,`pointerdown`,o,!0),()=>{u?.events.off(`floating.closed`,v)})},[n,s,a,l,r,i,h,m,g,f,u,d,p])}var Ps=n(de(),1),Fs={current:null};function Is(e,t={}){let{enabled:n=!0,delay:r=0,handleClose:i=null,mouseOnly:a=!1,restMs:o=0,move:s=!0,triggerElementRef:c=Fs,externalTree:l,isActiveTrigger:u=!0,getHandleCloseContext:d,isClosing:f,shouldOpen:p}=t,m=`rootStore`in e?e.rootStore:e,{dataRef:h,events:g}=m.context,_=Kt(l),v=Ms(m),y=J.useRef(!1),b=En(i),x=En(r),S=En(o),C=En(n),w=En(p),T=En(f),E=it(()=>cs(h.current.openEvent?.type,v.interactedInside)),D=it(()=>w.current?.()!==!1),O=it((e,t,n)=>{let r=m.context.triggerElements;if(r.hasElement(t))return!e||!Et(e,t);if(!ot(n))return!1;let i=n;return r.hasMatchingElement(e=>Et(e,i))&&(!e||!Et(e,i))}),k=it(()=>{v.handler&&=(Tt(m.select(`domReferenceElement`)).removeEventListener(`mousemove`,v.handler),void 0)}),A=it(()=>{As(v)});return u&&(v.handleCloseOptions=b.current?.__options),J.useEffect(()=>k,[k]),J.useEffect(()=>{if(!n)return;function e(e){e.open?y.current=!1:(y.current=e.reason===vt,k(),v.openChangeTimeout.clear(),v.restTimeout.clear(),v.blockMouseMove=!0,v.restTimeoutPending=!1)}return g.on(`openchange`,e),()=>{g.off(`openchange`,e)}},[n,g,v,k]),J.useEffect(()=>{if(!n)return;function e(e,t=!0){let n=os(x.current,`close`,v.pointerType);n?v.openChangeTimeout.start(n,()=>{m.setOpen(!1,Ct(vt,e)),_?.events.emit(`floating.closed`,e)}):t&&(v.openChangeTimeout.clear(),m.setOpen(!1,Ct(vt,e)),_?.events.emit(`floating.closed`,e))}let t=c.current??(u?m.select(`domReferenceElement`):null);if(!ot(t))return;function r(e){if(v.openChangeTimeout.clear(),v.blockMouseMove=!1,a&&!Zt(v.pointerType))return;let t=ss(S.current),n=os(x.current,`open`,v.pointerType),r=ht(e),i=e.currentTarget??null,o=m.select(`domReferenceElement`),s=i;if(ot(r)&&!m.context.triggerElements.hasElement(r)){for(let e of m.context.triggerElements.elements())if(Et(e,r)){s=e;break}}ot(i)&&ot(o)&&!m.context.triggerElements.hasElement(i)&&Et(i,o)&&(s=o);let c=s!=null&&O(o,s,r),l=m.select(`open`),u=T.current?.()??m.select(`transitionStatus`)===`ending`,d=!l&&u&&y.current,f=!c&&ot(s)&&ot(o)&&Et(o,s)&&d,p=t>0&&!n,h=c&&(l||d)||f,g=!l||c;if(h){D()&&m.setOpen(!0,Ct(vt,e,s));return}p||(n?v.openChangeTimeout.start(n,()=>{g&&D()&&m.setOpen(!0,Ct(vt,e,s))}):g&&D()&&m.setOpen(!0,Ct(vt,e,s)))}function i(t){if(E()){A();return}k();let n=m.select(`domReferenceElement`),r=Tt(n);v.restTimeout.clear(),v.restTimeoutPending=!1;let i=h.current.floatingContext??d?.();if(!fn(t.relatedTarget,m.context.triggerElements)){if(b.current&&i){m.select(`open`)||v.openChangeTimeout.clear();let n=c.current;v.handler=b.current({...i,tree:_,x:t.clientX,y:t.clientY,onClose(){A(),k(),C.current&&!E()&&n===m.select(`domReferenceElement`)&&e(t,!0)}}),r.addEventListener(`mousemove`,v.handler),v.handler(t);return}(v.pointerType!==`touch`||!Et(m.select(`floatingElement`),t.relatedTarget))&&e(t)}}return s?qt(Sn(t,`mousemove`,r,{once:!0}),Sn(t,`mouseenter`,r),Sn(t,`mouseleave`,i)):qt(Sn(t,`mouseenter`,r),Sn(t,`mouseleave`,i))},[k,A,h,x,m,n,b,v,u,O,E,a,s,S,c,_,C,d,T,D]),J.useMemo(()=>{if(!n)return;function e(e){v.pointerType=e.pointerType}return{onPointerDown:e,onPointerEnter:e,onMouseMove(e){let{nativeEvent:t}=e,n=e.currentTarget,r=m.select(`domReferenceElement`),i=m.select(`open`),o=O(r,n,e.target);if(a&&!Zt(v.pointerType))return;if(i&&o&&v.handleCloseOptions?.blockPointerEvents){let e=m.select(`floatingElement`);if(e){let t=v.handleCloseOptions?.getScope?.()??n.ownerDocument.body;js(v,{scopeElement:t,referenceElement:n,floatingElement:e})}}let s=ss(S.current);if(i&&!o||s===0||!o&&v.restTimeoutPending&&e.movementX**2+e.movementY**2<2)return;v.restTimeout.clear();function c(){if(v.restTimeoutPending=!1,E())return;let e=m.select(`open`);!v.blockMouseMove&&(!e||o)&&D()&&m.setOpen(!0,Ct(vt,t,n))}v.pointerType===`touch`?Ps.flushSync(()=>{c()}):o&&i?c():(v.restTimeoutPending=!0,v.restTimeout.start(s,c))}}},[n,v,E,O,a,m,S,D])}var Ls=.1,Rs=Ls*Ls,zs=.5;function Bs(e,t,n,r,i,a){return r>=t!=a>=t&&e<=(i-n)*(t-r)/(a-r)+n}function Vs(e,t,n,r,i,a,o,s,c,l){let u=!1;return Bs(e,t,n,r,i,a)&&(u=!u),Bs(e,t,i,a,o,s)&&(u=!u),Bs(e,t,o,s,c,l)&&(u=!u),Bs(e,t,c,l,n,r)&&(u=!u),u}function Hs(e,t,n){return e>=n.x&&e<=n.x+n.width&&t>=n.y&&t<=n.y+n.height}function Us(e,t,n,r,i,a){return e>=Math.min(n,i)&&e<=Math.max(n,i)&&t>=Math.min(r,a)&&t<=Math.max(r,a)}function Ws(e={}){let{blockPointerEvents:t=!1}=e,n=new ln,r=({x:e,y:t,placement:r,elements:i,onClose:a,nodeId:o,tree:s})=>{let c=r?.split(`-`)[0],l=!1,u=null,d=null,f=typeof performance<`u`?performance.now():0;function p(e,t){let n=performance.now(),r=n-f;if(u===null||d===null||r===0)return u=e,d=t,f=n,!1;let i=e-u,a=t-d,o=i*i+a*a,s=r*r*Rs;return u=e,d=t,f=n,o0)}function b(){y()||m()}if(y())return;let x=a.getBoundingClientRect(),S=u.getBoundingClientRect(),C=e>S.right-S.width/2,w=t>S.bottom-S.height/2,T=S.width>x.width,E=S.height>x.height,D=(T?x:S).left,O=(T?x:S).right,k=(E?x:S).top,A=(E?x:S).bottom;if(c===`top`&&t>=x.bottom-1||c===`bottom`&&t<=x.top+1||c===`left`&&e>=x.right-1||c===`right`&&e<=x.left+1){b();return}let ee=!1;switch(c){case`top`:ee=Us(d,f,D,x.top+1,O,S.bottom-1);break;case`bottom`:ee=Us(d,f,D,S.top+1,O,x.bottom-1);break;case`left`:ee=Us(d,f,S.right-1,A,x.left+1,k);break;case`right`:ee=Us(d,f,x.right-1,A,S.left+1,k)}if(ee)return;if(l&&!Hs(d,f,x)){b();return}if(!g&&p(d,f)){b();return}let te=!1;switch(c){case`top`:{let n=T?zs/2:zs*4,r=T||C?e+n:e-n,i=T?e-n:C?e+n:e-n,a=t+zs+1,o=C||T?S.bottom-zs:S.top,s=C?T?S.bottom-zs:S.top:S.bottom-zs;te=Vs(d,f,r,a,i,a,S.left,o,S.right,s);break}case`bottom`:{let n=T?zs/2:zs*4,r=T||C?e+n:e-n,i=T?e-n:C?e+n:e-n,a=t-zs,o=C||T?S.top+zs:S.bottom,s=C?T?S.top+zs:S.bottom:S.top+zs;te=Vs(d,f,r,a,i,a,S.left,o,S.right,s);break}case`left`:{let n=E?zs/2:zs*4,r=E||w?t+n:t-n,i=E?t-n:w?t+n:t-n,a=e+zs+1,o=w||E?S.right-zs:S.left,s=w?E?S.right-zs:S.left:S.right-zs;te=Vs(d,f,o,S.top,s,S.bottom,a,r,a,i);break}case`right`:{let n=E?zs/2:zs*4,r=E||w?t+n:t-n,i=E?t-n:w?t+n:t-n,a=e-zs,o=w||E?S.left+zs:S.right,s=w?E?S.left+zs:S.right:S.left+zs;te=Vs(d,f,a,r,a,i,o,S.top,s,S.bottom);break}}te?l||n.start(40,b):b()}};return r.__options={...e,blockPointerEvents:t},r}var Gs=function(e){return e.nestedDialogs=`--nested-dialogs`,e}({}),Ks=function(e){return e[e.open=Vt.open]=`open`,e[e.closed=Vt.closed]=`closed`,e[e.startingStyle=Vt.startingStyle]=`startingStyle`,e[e.endingStyle=Vt.endingStyle]=`endingStyle`,e.nested=`data-nested`,e.nestedDialogOpen=`data-nested-dialog-open`,e}({}),qs=J.createContext(void 0);function Js(){let e=J.useContext(qs);if(e===void 0)throw Error(Ce(26));return e}var Ys={...Qt,...Tn,nestedDialogOpen(e){return e?{[Ks.nestedDialogOpen]:``}:null}},Xs=J.forwardRef(function(e,t){let{render:n,className:r,style:i,finalFocus:a,initialFocus:o,...s}=e,{store:c}=es(),l=c.useState(`descriptionElementId`),u=c.useState(`disablePointerDismissal`),d=c.useState(`floatingRootContext`),f=c.useState(`popupProps`),p=c.useState(`modal`),m=c.useState(`mounted`),h=c.useState(`nested`),g=c.useState(`nestedOpenDialogCount`),_=c.useState(`open`),v=c.useState(`openMethod`),y=c.useState(`titleElementId`),b=c.useState(`transitionStatus`),x=c.useState(`role`),S=d.useState(`floatingId`),C=s.id??S;Js(),bn({open:_,ref:c.context.popupRef,onComplete(){_&&c.context.onOpenChangeComplete?.(!0)}});let w=o===void 0?mn(c.context.popupRef):o,T=g>0,E=c.useStateSetter(`popupElement`),D=be(`div`,e,{state:{open:_,nested:h,transitionStatus:b,nestedDialogOpen:T},props:[f,{id:C,"aria-labelledby":y??void 0,"aria-describedby":l??void 0,role:x,...gn,hidden:!m,onKeyDown(e){an.has(e.key)&&e.stopPropagation()},style:{[Gs.nestedDialogs]:g}},s],ref:[t,c.context.popupRef,E],stateAttributesMapping:Ys});return(0,Y.jsx)(_n,{context:d,openInteractionType:v,disabled:!m,closeOnFocusOut:!u,initialFocus:w,returnFocus:a,modal:p!==!1,restoreFocus:`popup`,children:D})}),Zs=J.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e,{store:i}=es(),a=i.useState(`mounted`),o=i.useState(`modal`),s=i.useState(`open`);return a||n?(0,Y.jsx)(qs.Provider,{value:n,children:(0,Y.jsxs)(Ft,{ref:t,...r,children:[a&&o===!0&&(0,Y.jsx)(on,{ref:i.context.internalBackdropRef,inert:cn(!s)}),e.children]})}):null});function Qs(e){let{store:t,actionsRef:n}=e,r=t.useState(`open`);jt(t,r),At(t);let{forceUnmount:i}=Wt(r,t),a=J.useCallback(()=>{t.setOpen(!1,Ct(St))},[t]);J.useImperativeHandle(n,()=>({unmount:i,close:a}),[i,a])}function $s({store:e,parentContext:t,isDrawer:n}){let r=e.useState(`open`),i=e.useState(`disablePointerDismissal`),a=e.useState(`modal`),o=e.useState(`popupElement`),s=e.useState(`floatingRootContext`),[c,l]=J.useState(0),[u,d]=J.useState(0),f=c===0,p=Ht(s,{outsidePressEvent(){return e.context.internalBackdropRef.current||e.context.backdropRef.current?`intentional`:{mouse:a===`trap-focus`?`sloppy`:`intentional`,touch:`sloppy`}},outsidePress(t){if(!e.context.outsidePressEnabledRef.current||`button`in t&&t.button!==0||`touches`in t&&t.touches.length!==1)return!1;let n=ht(t);return f&&!i?a&&(e.context.internalBackdropRef.current||e.context.backdropRef.current)?e.context.internalBackdropRef.current===n||e.context.backdropRef.current===n||Et(n,o)&&!n?.hasAttribute(`data-base-ui-portal`):!0:!1},escapeKey:f});un(r&&a===!0,o),e.useContextCallback(`onNestedDialogOpen`,(e,t)=>{l(e),d(t)}),e.useContextCallback(`onNestedDialogClose`,()=>{l(0),d(0)}),J.useEffect(()=>(t?.onNestedDialogOpen&&r&&t.onNestedDialogOpen(c+1,u+ +!!n),t?.onNestedDialogClose&&!r&&t.onNestedDialogClose(),()=>{t?.onNestedDialogClose&&r&&t.onNestedDialogClose()}),[n,r,c,u,t]);let m=p.reference??ge,h=p.trigger??ge,g=p.floating??ge;return Nt(e,{activeTriggerProps:m,inactiveTriggerProps:h,popupProps:g,nestedOpenDialogCount:c,nestedOpenDrawerCount:u}),null}var ec={...Ts,modal:U(e=>e.modal),nested:U(e=>e.nested),nestedOpenDialogCount:U(e=>e.nestedOpenDialogCount),nestedOpenDrawerCount:U(e=>e.nestedOpenDrawerCount),disablePointerDismissal:U(e=>e.disablePointerDismissal),openMethod:U(e=>e.openMethod),descriptionElementId:U(e=>e.descriptionElementId),titleElementId:U(e=>e.titleElementId),viewportElement:U(e=>e.viewportElement),role:U(e=>e.role)},tc=class e extends tn{constructor(e,t,n=!1){let r=new dn,i=nc(e);i.floatingRootContext=ys(r,t,n),super(i,{popupRef:J.createRef(),backdropRef:J.createRef(),internalBackdropRef:J.createRef(),outsidePressEnabledRef:{current:!0},triggerElements:r,onOpenChange:void 0,onOpenChangeComplete:void 0},ec)}setOpen=(e,t)=>{if(t.preventUnmountOnClose=()=>{this.set(`preventUnmountingOnClose`,!0)},!e&&t.trigger==null&&this.state.activeTriggerId!=null&&(t.trigger=this.state.activeTriggerElement??void 0),this.context.onOpenChange?.(e,t),t.isCanceled)return;this.state.floatingRootContext.dispatchOpenChange(e,t);let n={open:e};Ut(n,e,t.trigger),this.update(n)};static useStore(t,n){return zt(t,(t,r)=>new e(n,t,r),!0).store}};function nc(e={}){return{...vs(),modal:!0,disablePointerDismissal:!1,popupElement:null,viewportElement:null,descriptionElementId:void 0,titleElementId:void 0,openMethod:null,nested:!1,nestedOpenDialogCount:0,nestedOpenDrawerCount:0,role:`dialog`,...e}}function rc(e,t=`dialog`){let{children:n,open:r,defaultOpen:i=!1,onOpenChange:a,onOpenChangeComplete:o,disablePointerDismissal:s=!1,modal:c=!0,actionsRef:l,handle:u,triggerId:d,defaultTriggerId:f=null}=e,p=t===`drawer`,m=t===`alert-dialog`,h=m?!0:c,g=m||s,_=m?`alertdialog`:`dialog`,v=es(!0),y={modal:h,disablePointerDismissal:g,nested:!!v,role:_},b=tc.useStore(u?.store,{open:i,openProp:r,activeTriggerId:f,triggerIdProp:d,...y});Rt(()=>{let e=r===void 0&&b.state.open===!1&&i===!0?{open:!0,activeTriggerId:f}:null;m?b.update(e?{...y,...e}:y):e&&b.update(e)}),b.useControlledProp(`openProp`,r),b.useControlledProp(`triggerIdProp`,d),b.useSyncedValues(y),b.useContextCallback(`onOpenChange`,a),b.useContextCallback(`onOpenChangeComplete`,o);let x=b.useState(`open`),S=b.useState(`mounted`),C=b.useState(`payload`);Qs({store:b,actionsRef:l});let w=x||S,T=J.useMemo(()=>({store:b}),[b]);return(0,Y.jsx)(Qo.Provider,{value:!1,children:(0,Y.jsxs)($o.Provider,{value:T,children:[w&&(0,Y.jsx)($s,{store:b,parentContext:v?.store.context,isDrawer:p}),typeof n==`function`?n({payload:C}):n]})})}function ic(e){return rc(e,J.useContext(Qo)?`drawer`:`dialog`)}var ac=J.forwardRef(function(e,t){let{render:n,className:r,style:i,id:a,...o}=e,{store:s}=es(),c=mt(a);return s.useSyncedValueWithCleanup(`titleElementId`,c),be(`h2`,e,{ref:t,props:[{id:c},o]})});function oc(e){let t=(0,Z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Y.jsx)(ic,{"data-slot":`sheet`,...n}),t[2]=n,t[3]=r),r}function sc(e){let t=(0,Z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Y.jsx)(Zs,{"data-slot":`sheet-portal`,...n}),t[2]=n,t[3]=r),r}function cc(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`data-closed:fade-out-0 data-open:fade-in-0 data-closed:animate-out data-open:animate-in fixed inset-0 z-50 bg-black/80 duration-100 data-ending-style:opacity-0 data-starting-style:opacity-0 supports-backdrop-filter:backdrop-blur-xs`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(ns,{className:i,"data-slot":`sheet-overlay`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function lc(e){let t=(0,Z.c)(17),n,r,i,a,o;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5]):({className:r,children:n,side:a,showCloseButton:o,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o);let s=a===void 0?`right`:a,c=o===void 0||o,l;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Y.jsx)(cc,{}),t[6]=l):l=t[6];let u;t[7]===r?u=t[8]:(u=z(`data-[side=right]:data-closed:slide-out-to-right-10 data-[side=right]:data-open:slide-in-from-right-10 data-[side=left]:data-closed:slide-out-to-left-10 data-[side=left]:data-open:slide-in-from-left-10 data-[side=top]:data-closed:slide-out-to-top-10 data-[side=top]:data-open:slide-in-from-top-10 data-closed:fade-out-0 data-open:fade-in-0 data-[side=bottom]:data-closed:slide-out-to-bottom-10 data-[side=bottom]:data-open:slide-in-from-bottom-10 data-closed:animate-out data-open:animate-in fixed z-50 flex flex-col bg-background bg-clip-padding text-xs/relaxed shadow-lg transition duration-200 ease-in-out data-[side=bottom]:inset-x-0 data-[side=bottom]:bottom-0 data-[side=bottom]:h-auto data-[side=bottom]:border-t data-[side=left]:inset-y-0 data-[side=left]:left-0 data-[side=left]:h-full data-[side=left]:w-3/4 data-[side=left]:border-r data-[side=right]:inset-y-0 data-[side=right]:right-0 data-[side=right]:h-full data-[side=right]:w-3/4 data-[side=right]:border-l data-[side=top]:inset-x-0 data-[side=top]:top-0 data-[side=top]:h-auto data-[side=top]:border-b data-[side=left]:sm:max-w-sm data-[side=right]:sm:max-w-sm`,r),t[7]=r,t[8]=u);let d;t[9]===c?d=t[10]:(d=c&&(0,Y.jsxs)(rs,{"data-slot":`sheet-close`,render:(0,Y.jsx)(at,{className:`absolute top-4 right-4`,size:`icon-sm`,variant:`ghost`}),children:[(0,Y.jsx)(qo,{}),(0,Y.jsx)(`span`,{className:`sr-only`,children:`Close`})]}),t[9]=c,t[10]=d);let f;return t[11]!==n||t[12]!==i||t[13]!==s||t[14]!==u||t[15]!==d?(f=(0,Y.jsxs)(sc,{children:[l,(0,Y.jsxs)(Xs,{className:u,"data-side":s,"data-slot":`sheet-content`,...i,children:[n,d]})]}),t[11]=n,t[12]=i,t[13]=s,t[14]=u,t[15]=d,t[16]=f):f=t[16],f}function uc(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`flex flex-col gap-1.5 p-6`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-slot":`sheet-header`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function dc(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`text-sm font-medium text-foreground`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(ac,{className:i,"data-slot":`sheet-title`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function fc(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`text-xs/relaxed text-muted-foreground`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(is,{className:i,"data-slot":`sheet-description`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var pc=J.createContext(void 0);function mc(e){let t=J.useContext(pc);if(t===void 0&&!e)throw Error(Ce(72));return t}var hc={...Ts,disabled:U(e=>e.disabled),instantType:U(e=>e.instantType),isInstantPhase:U(e=>e.isInstantPhase),trackCursorAxis:U(e=>e.trackCursorAxis),disableHoverablePopup:U(e=>e.disableHoverablePopup),lastOpenChangeReason:U(e=>e.openChangeReason),closeOnClick:U(e=>e.closeOnClick),closeDelay:U(e=>e.closeDelay),hasViewport:U(e=>e.hasViewport)},gc=class e extends tn{constructor(e,t,n=!1){let r=new dn,i={..._c(),...e};i.floatingRootContext=ys(r,t,n),super(i,{popupRef:J.createRef(),onOpenChange:void 0,onOpenChangeComplete:void 0,triggerElements:r},hc)}setOpen=(e,t)=>{Yt(this,e,t,{extraState:{openChangeReason:t.reason}})};cancelPendingOpen(e){this.state.floatingRootContext.dispatchOpenChange(!1,Ct(_t,e))}static useStore(t,n){return zt(t,(t,r)=>new e(n,t,r)).store}};function _c(){return{...vs(),disabled:!1,instantType:void 0,isInstantPhase:!1,trackCursorAxis:`none`,disableHoverablePopup:!1,openChangeReason:null,closeOnClick:!0,closeDelay:0,hasViewport:!1}}var vc=Bt(function(e){let{disabled:t=!1,defaultOpen:n=!1,open:r,disableHoverablePopup:i=!1,trackCursorAxis:a=`none`,actionsRef:o,onOpenChange:s,onOpenChangeComplete:c,handle:l,triggerId:u,defaultTriggerId:d=null,children:f}=e,p=gc.useStore(l?.store,{open:n,openProp:r,activeTriggerId:d,triggerIdProp:u});pn(p,r,n,d),p.useControlledProp(`openProp`,r),p.useControlledProp(`triggerIdProp`,u),p.useContextCallback(`onOpenChange`,s),p.useContextCallback(`onOpenChangeComplete`,c);let m=p.useState(`open`),h=!t&&m,g=p.useState(`activeTriggerId`),_=p.useState(`mounted`),v=p.useState(`payload`);p.useSyncedValues({trackCursorAxis:a,disableHoverablePopup:i}),p.useSyncedValue(`disabled`,t),At(p,{closeOnActiveTriggerUnmount:!0});let{forceUnmount:y,transitionStatus:b}=Wt(h,p),x=p.useState(`isInstantPhase`),S=p.useState(`instantType`),C=p.useState(`lastOpenChangeReason`),w=J.useRef(null);H(()=>{m&&t&&p.setOpen(!1,Ct(yt))},[m,t,p]),H(()=>{b===`ending`&&C===`none`||b!==`ending`&&x?(S!==`delay`&&(w.current=S),p.set(`instantType`,`delay`)):w.current!==null&&(p.set(`instantType`,w.current),w.current=null)},[b,x,C,S,p]),H(()=>{h&&(g??p.set(`payload`,void 0))},[p,g,h]);let T=J.useCallback(()=>{p.setOpen(!1,Ct(St))},[p]);J.useImperativeHandle(o,()=>({unmount:y,close:T}),[y,T]);let E=h||_||!t&&a!==`none`;return(0,Y.jsxs)(pc.Provider,{value:p,children:[E&&(0,Y.jsx)(yc,{store:p,disabled:t,trackCursorAxis:a}),typeof f==`function`?f({payload:v}):f]})});function yc({store:e,disabled:t,trackCursorAxis:n}){let r=e.useState(`floatingRootContext`),i=Ht(r,{enabled:!t,referencePress:()=>e.select(`closeOnClick`)}),a=gs(r,{enabled:!t&&n!==`none`,axis:n===`none`?void 0:n}),o=J.useMemo(()=>ve(a.reference,i.reference),[a.reference,i.reference]),s=J.useMemo(()=>ve(a.trigger,i.trigger),[a.trigger,i.trigger]),c=J.useMemo(()=>ve(gn,a.floating,i.floating),[a.floating,i.floating]);return Nt(e,{activeTriggerProps:o,inactiveTriggerProps:s,popupProps:c}),null}var bc=J.createContext(void 0);function xc(){return J.useContext(bc)}var Sc=function(e){return e[e.popupOpen=Dt.popupOpen]=`popupOpen`,e.triggerDisabled=`data-trigger-disabled`,e}({}),Cc=`data-base-ui-tooltip-trigger`;function wc(e){if(`composedPath`in e){let t=e.composedPath();for(let e=0;em.select(`transitionStatus`)===`ending`,shouldOpen(){return!j.current}}),P=Ds(v,{enabled:!A}).reference,se=e=>{let t=j.current,n=wc(e),r=ae(n),i=y.current,a=i&&n&&Et(i,n);if(r&&m.select(`open`)&&m.select(`lastOpenChangeReason`)===`trigger-hover`){m.setOpen(!1,Ct(vt,e));return}if(t&&!r&&a&&!ee.current&&!m.select(`open`)&&i&&Zt(N.current)){let t=()=>{!j.current&&!ee.current&&!m.select(`open`)&&m.setOpen(!0,Ct(vt,e,i))},n=re();n===0?(M.clear(),t()):M.start(n,t)}},ce=m.useState(`triggerProps`,C);return be(`button`,e,{state:{open:_},ref:[t,S,y],props:[oe,P,C||te!==`none`?ce:void 0,{onMouseOver(e){se(e.nativeEvent)},onFocus(e){ie(wc(e.nativeEvent))&&e.preventBaseUIHandler()},onMouseLeave(){j.current=!1,M.clear(),N.current=void 0},onPointerEnter(e){N.current=e.pointerType},onPointerDown(e){N.current=e.pointerType,m.set(`closeOnClick`,l),l&&!m.select(`open`)&&m.cancelPendingOpen(e.nativeEvent)},onClick(e){l&&!m.select(`open`)&&m.cancelPendingOpen(e.nativeEvent)},id:h,[Sc.triggerDisabled]:A?``:void 0,[Cc]:A?void 0:``},f],stateAttributesMapping:sn})}),Dc=J.createContext(void 0);function Oc(){let e=J.useContext(Dc);if(e===void 0)throw Error(Ce(70));return e}var kc=J.forwardRef(function(e,t){let{children:n,container:r,className:i,render:a,style:o,...s}=e,{portalNode:c,portalSubtree:l}=Gt({container:r,ref:t,componentProps:e,elementProps:s});return!l&&!c?null:(0,Y.jsxs)(J.Fragment,{children:[l,c&&Ps.createPortal(n,c)]})}),Ac=J.forwardRef(function(e,t){let{keepMounted:n=!1,...r}=e;return mc().useState(`mounted`)||n?(0,Y.jsx)(Dc.Provider,{value:n,children:(0,Y.jsx)(kc,{ref:t,...r})}):null}),jc=J.createContext(void 0);function Mc(){let e=J.useContext(jc);if(e===void 0)throw Error(Ce(71));return e}var Nc=J.forwardRef(function(e,t){let{render:n,className:r,anchor:i,positionMethod:a=`absolute`,side:o=`top`,align:s=`center`,sideOffset:c=0,alignOffset:l=0,collisionBoundary:u=`clipping-ancestors`,collisionPadding:d=5,arrowPadding:f=5,sticky:p=!1,disableAnchorTracking:m=!1,collisionAvoidance:h=Lt,style:g,..._}=e,v=mc(),y=Oc(),b=v.useState(`open`),x=v.useState(`mounted`),S=v.useState(`trackCursorAxis`),C=v.useState(`disableHoverablePopup`),w=v.useState(`floatingRootContext`),T=v.useState(`instantType`),E=v.useState(`transitionStatus`),D=v.useState(`hasViewport`),O=Ue({anchor:i,positionMethod:a,floatingRootContext:w,mounted:x,side:o,sideOffset:c,align:s,alignOffset:l,collisionBoundary:u,collisionPadding:d,sticky:p,arrowPadding:f,disableAnchorTracking:m,keepMounted:y,collisionAvoidance:h,adaptiveOrigin:D?We:void 0}),k=J.useMemo(()=>({open:b,side:O.side,align:O.align,anchorHidden:O.anchorHidden,instant:S===`none`?T:`tracking-cursor`}),[b,O.side,O.align,O.anchorHidden,S,T]),A=Ke(e,k,{styles:O.positionerStyles,transitionStatus:E,props:_,refs:[t,v.useStateSetter(`positionerElement`)],hidden:!x,inert:!b||S===`both`||C});return(0,Y.jsx)(jc.Provider,{value:O,children:A})}),Pc={...Qt,...Tn},Fc=J.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=mc(),{side:s,align:c}=Mc(),l=o.useState(`open`),u=o.useState(`instantType`),d=o.useState(`transitionStatus`),f=o.useState(`popupProps`),p=o.useState(`floatingRootContext`),m=o.useState(`disabled`),h=o.useState(`closeDelay`);bn({open:l,ref:o.context.popupRef,onComplete(){l&&o.context.onOpenChangeComplete?.(!0)}}),Ns(p,{enabled:!m,closeDelay:h});let g=o.useStateSetter(`popupElement`);return be(`div`,e,{state:{open:l,side:s,align:c,instant:u,transitionStatus:d},ref:[t,o.context.popupRef,g],props:[f,Qe(d),a],stateAttributesMapping:Pc})}),Ic=J.forwardRef(function(e,t){let{render:n,className:r,style:i,...a}=e,o=mc(),{arrowRef:s,side:c,align:l,arrowUncentered:u,arrowStyles:d}=Mc(),f={open:o.useState(`open`),side:c,align:l,uncentered:u,instant:o.useState(`instantType`)};return be(`div`,e,{state:f,ref:[t,s],props:[{style:d,"aria-hidden":!0},a],stateAttributesMapping:Qt})}),Lc=function(e){let{delay:t,closeDelay:n,timeout:r=400}=e,i=J.useMemo(()=>({delay:t,closeDelay:n}),[t,n]),a=J.useMemo(()=>({open:t,close:n}),[t,n]);return(0,Y.jsx)(bc.Provider,{value:i,children:(0,Y.jsx)(fs,{delay:a,timeoutMs:r,children:e.children})})};function Rc(e){let t=(0,Z.c)(6),n,r;t[0]===e?(n=t[1],r=t[2]):({delay:r,...n}=e,t[0]=e,t[1]=n,t[2]=r);let i=r===void 0?0:r,a;return t[3]!==i||t[4]!==n?(a=(0,Y.jsx)(Lc,{"data-slot":`tooltip-provider`,delay:i,...n}),t[3]=i,t[4]=n,t[5]=a):a=t[5],a}function zc(e){let t=(0,Z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Y.jsx)(Rc,{children:(0,Y.jsx)(vc,{"data-slot":`tooltip`,...n})}),t[2]=n,t[3]=r),r}function Bc(e){let t=(0,Z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Y.jsx)(Ec,{"data-slot":`tooltip-trigger`,...n}),t[2]=n,t[3]=r),r}function Vc(e){let t=(0,Z.c)(21),n,r,i,a,o,s,c;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6],c=t[7]):({className:r,side:a,sideOffset:o,align:s,alignOffset:c,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s,t[7]=c);let l=a===void 0?`top`:a,u=o===void 0?4:o,d=s===void 0?`center`:s,f=c===void 0?0:c,p;t[8]===r?p=t[9]:(p=z(`data-open:fade-in-0 data-open:zoom-in-95 data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-closed:fade-out-0 data-closed:zoom-out-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 data-[state=delayed-open]:animate-in data-closed:animate-out data-open:animate-in z-50 w-fit max-w-xs origin-(--transform-origin) rounded-md bg-foreground px-3 py-1.5 text-xs text-background **:data-[slot=kbd]:rounded-md`,r),t[8]=r,t[9]=p);let m;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,Y.jsx)(Ic,{className:`z-50 size-2.5 translate-y-[calc(-50%-2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground data-[side=bottom]:top-1 data-[side=left]:top-1/2! data-[side=left]:-right-1 data-[side=left]:-translate-y-1/2 data-[side=right]:top-1/2! data-[side=right]:-left-1 data-[side=right]:-translate-y-1/2 data-[side=top]:-bottom-2.5`}),t[10]=m):m=t[10];let h;t[11]!==n||t[12]!==i||t[13]!==p?(h=(0,Y.jsxs)(Fc,{className:p,"data-slot":`tooltip-content`,...i,children:[n,m]}),t[11]=n,t[12]=i,t[13]=p,t[14]=h):h=t[14];let g;return t[15]!==d||t[16]!==f||t[17]!==l||t[18]!==u||t[19]!==h?(g=(0,Y.jsx)(Ac,{children:(0,Y.jsx)(Nc,{align:d,alignOffset:f,className:`isolate z-50`,side:l,sideOffset:u,children:h})}),t[15]=d,t[16]=f,t[17]=l,t[18]=u,t[19]=h,t[20]=g):g=t[20],g}var Hc=window.matchMedia(`(max-width: 767px)`);function Uc(e){return Hc.addEventListener(`change`,e),()=>Hc.removeEventListener(`change`,e)}function Wc(){return Hc.matches}function Gc(){return(0,J.useSyncExternalStore)(Uc,Wc)}var Kc=`sidebar_state`,qc=604800,Jc=`12rem`,Yc=`16rem`,Xc=`3rem`,Zc=`b`,Qc=J.createContext(null);function $c(){let e=J.useContext(Qc);if(!e)throw Error(`useSidebar must be used within a SidebarProvider.`);return e}function el(e){let t=(0,Z.c)(36),n,r,i,a,o,s,c;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6],c=t[7]):({defaultOpen:c,open:i,onOpenChange:o,className:r,style:s,children:n,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s,t[7]=c);let l=c===void 0||c,u=Gc(),[d,f]=J.useState(!1),[p,m]=J.useState(l),h=i??p,g;t[8]!==h||t[9]!==o?(g=e=>{let t=typeof e==`function`?e(h):e;o?o(t):m(t),document.cookie=`${Kc}=${t}; path=/; max-age=${qc}`},t[8]=h,t[9]=o,t[10]=g):g=t[10];let _=g,v;t[11]!==u||t[12]!==_?(v=()=>u?f(nl):_(tl),t[11]=u,t[12]=_,t[13]=v):v=t[13];let y=v,b,x;t[14]===y?(b=t[15],x=t[16]):(b=()=>{let e=e=>{e.key===Zc&&(e.metaKey||e.ctrlKey)&&(e.preventDefault(),y())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},x=[y],t[14]=y,t[15]=b,t[16]=x),J.useEffect(b,x);let S=h?`expanded`:`collapsed`,C;t[17]!==u||t[18]!==h||t[19]!==d||t[20]!==_||t[21]!==S||t[22]!==y?(C={state:S,open:h,setOpen:_,isMobile:u,openMobile:d,setOpenMobile:f,toggleSidebar:y},t[17]=u,t[18]=h,t[19]=d,t[20]=_,t[21]=S,t[22]=y,t[23]=C):C=t[23];let w=C,T;t[24]===r?T=t[25]:(T=z(`group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar`,r),t[24]=r,t[25]=T);let E;t[26]===s?E=t[27]:(E={"--sidebar-width":Jc,"--sidebar-width-icon":Xc,...s},t[26]=s,t[27]=E);let D=E,O;t[28]!==n||t[29]!==a||t[30]!==T||t[31]!==D?(O=(0,Y.jsx)(`div`,{className:T,"data-slot":`sidebar-wrapper`,style:D,...a,children:n}),t[28]=n,t[29]=a,t[30]=T,t[31]=D,t[32]=O):O=t[32];let k;return t[33]!==w||t[34]!==O?(k=(0,Y.jsx)(Qc.Provider,{value:w,children:O}),t[33]=w,t[34]=O,t[35]=k):k=t[35],k}function tl(e){return!e}function nl(e){return!e}function rl(e){let t=(0,Z.c)(46),n,r,i,a,o,s;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4],o=t[5],s=t[6]):({side:a,variant:o,collapsible:s,className:r,children:n,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a,t[5]=o,t[6]=s);let c=a===void 0?`left`:a,l=o===void 0?`sidebar`:o,u=s===void 0?`offExamples`:s,{isMobile:d,state:f,openMobile:p,setOpenMobile:m}=$c();if(u===`none`){let e;t[7]===r?e=t[8]:(e=z(`flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground`,r),t[7]=r,t[8]=e);let a;return t[9]!==n||t[10]!==i||t[11]!==e?(a=(0,Y.jsx)(`div`,{className:e,"data-slot":`sidebar`,...i,children:n}),t[9]=n,t[10]=i,t[11]=e,t[12]=a):a=t[12],a}if(d){let e;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(e={"--sidebar-width":Yc},t[13]=e):e=t[13];let r=e,a;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Y.jsxs)(uc,{className:`sr-only`,children:[(0,Y.jsx)(dc,{children:`Sidebar`}),(0,Y.jsx)(fc,{children:`Displays the mobile sidebar.`})]}),t[14]=a):a=t[14];let o;t[15]===n?o=t[16]:(o=(0,Y.jsx)(`div`,{className:`flex h-full w-full flex-col`,children:n}),t[15]=n,t[16]=o);let s;t[17]!==c||t[18]!==o?(s=(0,Y.jsxs)(lc,{className:`w-(--sidebar-width) bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden`,"data-mobile":`true`,"data-sidebar":`sidebar`,"data-slot":`sidebar`,side:c,style:r,children:[a,o]}),t[17]=c,t[18]=o,t[19]=s):s=t[19];let l;return t[20]!==p||t[21]!==i||t[22]!==m||t[23]!==s?(l=(0,Y.jsx)(oc,{onOpenChange:m,open:p,...i,children:s}),t[20]=p,t[21]=i,t[22]=m,t[23]=s,t[24]=l):l=t[24],l}let h=f===`collapsed`?u:``,g=l===`floating`||l===`inset`?`group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon)`,_;t[25]===g?_=t[26]:(_=z(`relative w-(--sidebar-width) bg-transparent transition-[width] duration-200 ease-linear`,`group-data-[collapsible=offExamples]:w-0`,`group-data-[side=right]:rotate-180`,g),t[25]=g,t[26]=_);let v;t[27]===_?v=t[28]:(v=(0,Y.jsx)(`div`,{className:_,"data-slot":`sidebar-gap`}),t[27]=_,t[28]=v);let y=c===`left`?`left-0 group-data-[collapsible=offExamples]:left-[calc(var(--sidebar-width)*-1)]`:`right-0 group-data-[collapsible=offExamples]:right-[calc(var(--sidebar-width)*-1)]`,b=l===`floating`||l===`inset`?`p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]`:`group-data-[collapsible=icon]:w-(--sidebar-width-icon) group-data-[side=left]:border-r group-data-[side=right]:border-l`,x;t[29]!==r||t[30]!==y||t[31]!==b?(x=z(`fixed inset-y-0 z-10 hidden h-svh w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex`,y,b,r),t[29]=r,t[30]=y,t[31]=b,t[32]=x):x=t[32];let S;t[33]===n?S=t[34]:(S=(0,Y.jsx)(`div`,{className:`flex size-full flex-col bg-sidebar group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:shadow-sm group-data-[variant=floating]:ring-1 group-data-[variant=floating]:ring-sidebar-border`,"data-sidebar":`sidebar`,"data-slot":`sidebar-inner`,children:n}),t[33]=n,t[34]=S);let C;t[35]!==i||t[36]!==x||t[37]!==S?(C=(0,Y.jsx)(`div`,{className:x,"data-slot":`sidebar-container`,...i,children:S}),t[35]=i,t[36]=x,t[37]=S,t[38]=C):C=t[38];let w;return t[39]!==c||t[40]!==f||t[41]!==C||t[42]!==h||t[43]!==v||t[44]!==l?(w=(0,Y.jsxs)(`div`,{className:`group peer hidden text-sidebar-foreground md:block`,"data-collapsible":h,"data-side":c,"data-slot":`sidebar`,"data-state":f,"data-variant":l,children:[v,C]}),t[39]=c,t[40]=f,t[41]=C,t[42]=h,t[43]=v,t[44]=l,t[45]=w):w=t[45],w}function il(e){let t=(0,Z.c)(15),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,onClick:r,...i}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let{toggleSidebar:a}=$c(),o;t[4]===n?o=t[5]:(o=z(n),t[4]=n,t[5]=o);let s;t[6]!==r||t[7]!==a?(s=e=>{r?.(e),a()},t[6]=r,t[7]=a,t[8]=s):s=t[8];let c,l;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Y.jsx)(Po,{}),l=(0,Y.jsx)(`span`,{className:`sr-only`,children:`Toggle Sidebar`}),t[9]=c,t[10]=l):(c=t[9],l=t[10]);let u;return t[11]!==i||t[12]!==o||t[13]!==s?(u=(0,Y.jsxs)(at,{className:o,"data-sidebar":`trigger`,"data-slot":`sidebar-trigger`,onClick:s,size:`icon-lg`,variant:`ghost`,...i,children:[c,l]}),t[11]=i,t[12]=o,t[13]=s,t[14]=u):u=t[14],u}function al(e){let t=(0,Z.c)(9),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let{toggleSidebar:i}=$c(),a;t[3]===n?a=t[4]:(a=z(`absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear group-data-[side=left]:-right-4 group-data-[side=right]:left-0 after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-sidebar-border sm:flex`,`in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize`,`[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize`,`group-data-[collapsible=offExamples]:translate-x-0 group-data-[collapsible=offExamples]:after:left-full hover:group-data-[collapsible=offExamples]:bg-sidebar`,`[[data-side=left][data-collapsible=offExamples]_&]:-right-2`,`[[data-side=right][data-collapsible=offExamples]_&]:-left-2`,n),t[3]=n,t[4]=a);let o;return t[5]!==r||t[6]!==a||t[7]!==i?(o=(0,Y.jsx)(`button`,{"aria-label":`Toggle Sidebar`,className:a,"data-sidebar":`rail`,"data-slot":`sidebar-rail`,onClick:i,tabIndex:-1,title:`Toggle Sidebar`,...r}),t[5]=r,t[6]=a,t[7]=i,t[8]=o):o=t[8],o}function ol(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`flex flex-col gap-2 p-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-sidebar":`header`,"data-slot":`sidebar-header`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function sl(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`flex flex-col gap-2 p-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-sidebar":`footer`,"data-slot":`sidebar-footer`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function cl(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`mx-2 w-auto bg-sidebar-border`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(Zo,{className:i,"data-sidebar":`separator`,"data-slot":`sidebar-separator`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function ll(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`no-scrollbar flex min-h-0 flex-1 flex-col gap-0 overflow-auto group-data-[collapsible=icon]:overflow-hidden`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-sidebar":`content`,"data-slot":`sidebar-content`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function ul(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`relative flex w-full min-w-0 flex-col px-2 py-1`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-sidebar":`group`,"data-slot":`sidebar-group`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function dl(e){let t=(0,Z.c)(10),n,r,i,a;if(t[0]!==e){let{className:o,render:s,...c}=e;n=s,a=lo,r=`div`,i=ve({className:z(`flex h-8 shrink-0 items-center rounded-md px-2 text-xs text-sidebar-foreground/70 ring-sidebar-ring outline-hidden transition-[margin,opacity] duration-200 ease-linear group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0 focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0`,o)},c),t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a}else n=t[1],r=t[2],i=t[3],a=t[4];let o;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(o={slot:`sidebar-group-label`,sidebar:`group-label`},t[5]=o):o=t[5];let s;return t[6]!==n||t[7]!==r||t[8]!==i?(s={defaultTagName:r,props:i,render:n,state:o},t[6]=n,t[7]=r,t[8]=i,t[9]=s):s=t[9],a(s)}function fl(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`flex w-full min-w-0 flex-col gap-px`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`ul`,{className:i,"data-sidebar":`menu`,"data-slot":`sidebar-menu`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function pl(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`group/menu-item relative`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`li`,{className:i,"data-sidebar":`menu-item`,"data-slot":`sidebar-menu-item`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var ml=Se(`peer/menu-button group/menu-button flex w-full items-center gap-2 overflow-hidden rounded-[calc(var(--radius-sm)+2px)] p-2 text-left text-xs ring-sidebar-ring outline-hidden transition-[width,height,padding] group-has-data-[sidebar=menu-action]/menu-item:pr-8 group-data-[collapsible=icon]:size-8! group-data-[collapsible=icon]:p-2! hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:bg-sidebar-accent data-active:font-medium data-active:text-sidebar-accent-foreground data-open:hover:bg-sidebar-accent data-open:hover:text-sidebar-accent-foreground [&_svg]:size-4 [&_svg]:shrink-0 [&>span:last-child]:truncate`,{variants:{variant:{default:`hover:bg-sidebar-accent hover:text-sidebar-accent-foreground`,outline:`bg-background shadow-[0_0_0_1px_hsl(var(--sidebar-border))] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_hsl(var(--sidebar-accent))]`},size:{default:`h-8 text-xs`,sm:`h-7 text-xs`,lg:`h-12 text-xs group-data-[collapsible=icon]:p-0!`}},defaultVariants:{variant:`default`,size:`default`}});function hl(e){let t=(0,Z.c)(15),{render:n,isActive:r,variant:i,size:a,tooltip:o,className:s,...c}=e,l=r!==void 0&&r,u=i===void 0?`default`:i,d=a===void 0?`default`:a,{isMobile:f,state:p}=$c(),m=ve({className:z(ml({variant:u,size:d}),s)},c),h=o?Bc:n,g;t[0]!==l||t[1]!==d?(g={slot:`sidebar-menu-button`,sidebar:`menu-button`,size:d,active:l},t[0]=l,t[1]=d,t[2]=g):g=t[2];let _;t[3]!==m||t[4]!==h||t[5]!==g?(_={defaultTagName:`button`,props:m,render:h,state:g},t[3]=m,t[4]=h,t[5]=g,t[6]=_):_=t[6];let v=lo(_);if(!o)return v;let y;t[7]===o?y=t[8]:(y=typeof o==`string`?{children:o}:o,t[7]=o,t[8]=y);let b=y,x=p!==`collapsed`||f,S;t[9]!==x||t[10]!==b?(S=(0,Y.jsx)(Vc,{align:`center`,hidden:x,side:`right`,...b}),t[9]=x,t[10]=b,t[11]=S):S=t[11];let C;return t[12]!==v||t[13]!==S?(C=(0,Y.jsxs)(zc,{children:[v,S]}),t[12]=v,t[13]=S,t[14]=C):C=t[14],C}var gl=class extends Fr(zr,Ir,`GetCallerIdentity`,Rr){},_l=typeof Buffer<`u`&&Buffer.from?function(e){return Buffer.from(e,`utf8`)}:e=>new TextEncoder().encode(e);function vl(e){return e instanceof Uint8Array?e:typeof e==`string`?_l(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength/Uint8Array.BYTES_PER_ELEMENT):new Uint8Array(e)}function yl(e){return typeof e==`string`?e.length===0:e.byteLength===0}var bl={name:`SHA-256`},xl={name:`HMAC`,hash:bl},Sl=new Uint8Array([227,176,196,66,152,252,28,20,154,251,244,200,153,111,185,36,39,174,65,228,100,155,147,76,164,149,153,27,120,82,184,85]),Cl={};function wl(){return typeof window<`u`?window:typeof self<`u`?self:Cl}var Tl=function(){function e(e){this.toHash=new Uint8Array,this.secret=e,this.reset()}return e.prototype.update=function(e){if(!yl(e)){var t=vl(e),n=new Uint8Array(this.toHash.byteLength+t.byteLength);n.set(this.toHash,0),n.set(t,this.toHash.byteLength),this.toHash=n}},e.prototype.digest=function(){var e=this;return this.key?this.key.then(function(t){return wl().crypto.subtle.sign(xl,t,e.toHash).then(function(e){return new Uint8Array(e)})}):yl(this.toHash)?Promise.resolve(Sl):Promise.resolve().then(function(){return wl().crypto.subtle.digest(bl,e.toHash)}).then(function(e){return Promise.resolve(new Uint8Array(e))})},e.prototype.reset=function(){var e=this;this.toHash=new Uint8Array,this.secret&&this.secret!==void 0&&(this.key=new Promise(function(t,n){wl().crypto.subtle.importKey(`raw`,vl(e.secret),xl,!1,[`sign`]).then(t,n)}),this.key.catch(function(){}))},e}();function El(e,t,n,r){function i(e){return e instanceof n?e:new n(function(t){t(e)})}return new(n||=Promise)(function(n,a){function o(e){try{c(r.next(e))}catch(e){a(e)}}function s(e){try{c(r.throw(e))}catch(e){a(e)}}function c(e){e.done?n(e.value):i(e.value).then(o,s)}c((r=r.apply(e,t||[])).next())})}function Dl(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,o=Object.create((typeof Iterator==`function`?Iterator:Object).prototype);return o.next=s(0),o.throw=s(1),o.return=s(2),typeof Symbol==`function`&&(o[Symbol.iterator]=function(){return this}),o;function s(e){return function(t){return c([e,t])}}function c(s){if(r)throw TypeError(`Generator is already executing.`);for(;o&&(o=0,s[0]&&(n=0)),n;)try{if(r=1,i&&(a=s[0]&2?i.return:s[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,s[1])).done)return a;switch(i=0,a&&(s=[s[0]&2,a.value]),s[0]){case 0:case 1:a=s;break;case 4:return n.label++,{value:s[1],done:!1};case 5:n.label++,i=s[1],s=[0];continue;case 7:s=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!a||s[1]>a[0]&&s[1]Al)throw Error(`Cannot hash more than 2^53 - 1 bits`);for(;n>0;)this.buffer[this.bufferLength++]=e[t++],n--,this.bufferLength===64&&(this.hashBuffer(),this.bufferLength=0)},e.prototype.digest=function(){if(!this.finished){var e=this.bytesHashed*8,t=new DataView(this.buffer.buffer,this.buffer.byteOffset,this.buffer.byteLength),n=this.bufferLength;if(t.setUint8(this.bufferLength++,128),n%64>=56){for(var r=this.bufferLength;r<64;r++)t.setUint8(r,0);this.hashBuffer(),this.bufferLength=0}for(var r=this.bufferLength;r<56;r++)t.setUint8(r,0);t.setUint32(56,Math.floor(e/4294967296),!0),t.setUint32(60,e),this.hashBuffer(),this.finished=!0}for(var i=new Uint8Array(32),r=0;r<8;r++)i[r*4]=this.state[r]>>>24&255,i[r*4+1]=this.state[r]>>>16&255,i[r*4+2]=this.state[r]>>>8&255,i[r*4+3]=this.state[r]>>>0&255;return i},e.prototype.hashBuffer=function(){for(var e=this,t=e.buffer,n=e.state,r=n[0],i=n[1],a=n[2],o=n[3],s=n[4],c=n[5],l=n[6],u=n[7],d=0;d<64;d++){if(d<16)this.temp[d]=(t[d*4]&255)<<24|(t[d*4+1]&255)<<16|(t[d*4+2]&255)<<8|t[d*4+3]&255;else{var f=this.temp[d-2],p=(f>>>17|f<<15)^(f>>>19|f<<13)^f>>>10;f=this.temp[d-15];var m=(f>>>7|f<<25)^(f>>>18|f<<14)^f>>>3;this.temp[d]=(p+this.temp[d-7]|0)+(m+this.temp[d-16]|0)}var h=(((s>>>6|s<<26)^(s>>>11|s<<21)^(s>>>25|s<<7))+(s&c^~s&l)|0)+(u+(Ol[d]+this.temp[d]|0)|0)|0,g=((r>>>2|r<<30)^(r>>>13|r<<19)^(r>>>22|r<<10))+(r&i^r&a^i&a)|0;u=l,l=c,c=s,s=o+h|0,o=a,a=i,i=r,r=h+g|0}n[0]+=r,n[1]+=i,n[2]+=a,n[3]+=o,n[4]+=s,n[5]+=c,n[6]+=l,n[7]+=u},e}(),Ml=function(){function e(e){this.secret=e,this.hash=new jl,this.reset()}return e.prototype.update=function(e){if(!(yl(e)||this.error))try{this.hash.update(vl(e))}catch(e){this.error=e}},e.prototype.digestSync=function(){if(this.error)throw this.error;return this.outer?(this.outer.finished||this.outer.update(this.hash.digest()),this.outer.digest()):this.hash.digest()},e.prototype.digest=function(){return El(this,void 0,void 0,function(){return Dl(this,function(e){return[2,this.digestSync()]})})},e.prototype.reset=function(){if(this.hash=new jl,this.secret){this.outer=new jl;var e=Nl(this.secret),t=new Uint8Array(64);t.set(e);for(var n=0;n<64;n++)e[n]^=54,t[n]^=92;this.hash.update(e),this.outer.update(t);for(var n=0;n64){var n=new jl;n.update(t),t=n.digest()}var r=new Uint8Array(64);return r.set(t),r}var Pl=[`decrypt`,`digest`,`encrypt`,`exportKey`,`generateKey`,`importKey`,`sign`,`verify`];function Fl(e){if(Il(e)&&typeof e.crypto.subtle==`object`){var t=e.crypto.subtle;return Ll(t)}return!1}function Il(e){return typeof e==`object`&&typeof e.crypto==`object`&&typeof e.crypto.getRandomValues==`function`}function Ll(e){return e&&Pl.every(function(t){return typeof e[t]==`function`})}var Rl=function(){function e(e){this.hash=Fl(wl())?new Tl(e):new Ml(e)}return e.prototype.update=function(e,t){this.hash.update(vl(e))},e.prototype.digest=function(){return this.hash.digest()},e.prototype.reset=function(){this.hash.reset()},e}(),zl=`ap-southeast-2`,Bl=9999,Vl=class extends Error{status;constructor(e,t,n){super(e),this.name=t,this.status=n}};function Hl(e,t){let n=`<${t}>`,r=``,i=e.indexOf(n);if(i===-1)return null;let a=e.indexOf(r,i+n.length);return a===-1?null:e.slice(i+n.length,a)}async function Ul({action:e,credentials:t,service:n=`spinifex`,params:r}){let i=window.location.protocol.replace(`:`,``),a=`Action=${e}${r?`&${new URLSearchParams(r).toString()}`:``}`,o=new ke({method:`POST`,protocol:i,hostname:`localhost`,port:Bl,path:`/`,headers:{host:`localhost:${Bl}`,"content-type":`application/x-www-form-urlencoded`},body:a}),s=await new we({credentials:{accessKeyId:t.accessKeyId,secretAccessKey:t.secretAccessKey,sessionToken:t.sessionToken},region:zl,service:n,sha256:Rl}).sign(o),c={};for(let[e,t]of Object.entries(s.headers))typeof t==`string`&&(c[e]=t);let l=`${window.location.protocol}//${window.location.host}/proxy/awsgw/`,u=await fetch(l,{method:`POST`,headers:c,body:a});if(!u.ok){let t=await u.text().catch(()=>``),n=Hl(t,`Code`),r=Hl(t,`Message`)??t;throw new Vl(`${e} failed: ${u.status}${r?` - ${r}`:``}`,n??`SignedFetchError`,u.status)}return await u.json()}var Wl=`000000000001`;function Gl(e){let t=e?.indexOf(`:user/`)??-1;return t===-1||e===void 0?null:e.slice(t+6)||null}var Kl=(0,J.createContext)(void 0);function ql({children:e}){let[t,n]=(0,J.useState)({isAdmin:!1,accountId:null,userName:null,version:null,license:null,loading:!0});return(0,J.useEffect)(()=>{async function e(){let e=Ie();if(!e){n(e=>({...e,loading:!1}));return}try{let t=await Lr().send(new gl({})),r=t.Account??null,i=r===Wl,a=null;if(i)try{a=await Ul({action:`GetVersion`,credentials:e})}catch{}n({isAdmin:i,accountId:r,userName:Gl(t.Arn),version:a,license:a?.license??null,loading:!1})}catch{n(e=>({...e,loading:!1}))}}e()},[]),(0,Y.jsx)(Kl,{value:t,children:e})}function Jl(){let e=(0,J.useContext)(Kl);if(e===void 0)throw Error(`useAdmin must be used within an AdminProvider`);return e}var Yl=new Set([`InvalidClientTokenId`,`SignatureDoesNotMatch`,`AuthFailure`,`MissingAuthenticationToken`,`IncompleteSignature`,`UnrecognizedClientException`,`ExpiredToken`,`ExpiredTokenException`,`InvalidAccessKeyId`]);function Xl(e){if(typeof e!=`object`||!e||!(`name`in e))return!1;let{name:t}=e;return typeof t==`string`&&Yl.has(t)}var Zl=De(Nr,`CertificateManager`,`ACMClient`,Ne),Ql={ServiceType:{type:`staticContextParams`,value:`ACM`}},$l=(e,t,n,r)=>[],eu=class extends Zl(Ql,$l,`ListCertificates`,$n){},tu=class extends G(K,q,`AllocateAddress`,xr){},nu=class extends G(K,q,`AssociateAddress`,gr){},ru=class extends G(K,q,`AssociateIamInstanceProfile`,hr){},iu=class extends G(K,q,`AssociateRouteTable`,dr){},au=class extends G(K,q,`AttachInternetGateway`,Er){},ou=class extends G(K,q,`AttachVolume`,Mr){},su=class extends G(K,q,`AuthorizeSecurityGroupEgress`,pr){},cu=class extends G(K,q,`AuthorizeSecurityGroupIngress`,Ar){},lu=class extends G(K,Wr,`CopySnapshot`,nr){},uu=class extends G(K,q,`CreateImage`,Mn){},du=class extends G(K,q,`CreateInternetGateway`,Or){},fu=class extends G(K,q,`CreateKeyPair`,ir){},pu=class extends G(K,q,`CreateLaunchTemplate`,In){},mu=class extends G(K,q,`CreateLaunchTemplateVersion`,Pn){},hu=class extends G(K,q,`CreateNatGateway`,Xn){},gu=class extends G(K,q,`CreatePlacementGroup`,br){},_u=class extends G(K,q,`CreateRoute`,kn){},vu=class extends G(K,q,`CreateRouteTable`,vr){},yu=class extends G(K,q,`CreateSecurityGroup`,Kn){},bu=class extends G(K,q,`CreateSnapshot`,Jn){},xu=class extends G(K,q,`CreateSubnet`,Qn){},Su=class extends G(K,q,`CreateVolume`,Rn){},Cu=class extends G(K,q,`CreateVpc`,Vn){},wu=class extends G(K,q,`DeleteInternetGateway`,Wn){},Tu=class extends G(K,q,`DeleteKeyPair`,er){},Eu=class extends G(K,q,`DeleteLaunchTemplate`,Pr){},Du=class extends G(K,q,`DeleteLaunchTemplateVersions`,An){},Ou=class extends G(K,q,`DeleteNatGateway`,or){},ku=class extends G(K,q,`DeletePlacementGroup`,Bn){},Au=class extends G(K,q,`DeleteRoute`,ar){},ju=class extends G(K,q,`DeleteRouteTable`,sr){},Mu=class extends G(K,q,`DeleteSecurityGroup`,zn){},Nu=class extends G(K,q,`DeleteSnapshot`,Un){},Pu=class extends G(K,q,`DeleteSubnet`,Cr){},Fu=class extends G(K,q,`DeleteVolume`,Hn){},Iu=class extends G(K,q,`DeleteVpc`,lr){},Lu=class extends G(K,q,`DeregisterImage`,cr){},Ru=class extends G(K,q,`DetachInternetGateway`,mr){},zu=class extends G(K,q,`DetachVolume`,ur){},Bu=class extends G(K,q,`DisassociateAddress`,Tr){},Vu=class extends G(K,q,`DisassociateIamInstanceProfile`,jr){},Hu=class extends G(K,q,`DisassociateRouteTable`,fr){},Uu=class extends G(K,q,`GetConsoleOutput`,kr){},Wu=class extends G(K,q,`ImportKeyPair`,tr){},Gu=class extends G(K,q,`ModifyInstanceAttribute`,jn){},Ku=class extends G(K,q,`ModifyLaunchTemplate`,Dr){},qu=class extends G(K,q,`ModifySubnetAttribute`,rr){},Ju=class extends G(K,q,`ModifyVolume`,Fn){},Yu=class extends G(K,q,`RebootInstances`,Nn){},Xu=class extends G(K,q,`RegisterImage`,Yn){},Zu=class extends G(K,q,`ReleaseAddress`,yr){},Qu=class extends G(K,q,`RevokeSecurityGroupEgress`,On){},$u=class extends G(K,q,`RevokeSecurityGroupIngress`,_r){},ed=class extends G(K,q,`RunInstances`,Gn){},td=class extends G(K,q,`StartInstances`,qn){},nd=class extends G(K,q,`StopInstances`,Zn){},rd=class extends G(K,q,`TerminateInstances`,Ln){},id={capacity_block:`capacity-block`,capacity_manager_data_export:`capacity-manager-data-export`,capacity_reservation:`capacity-reservation`,capacity_reservation_cancellation_quote:`capacity-reservation-cancellation-quote`,capacity_reservation_fleet:`capacity-reservation-fleet`,carrier_gateway:`carrier-gateway`,client_vpn_endpoint:`client-vpn-endpoint`,coip_pool:`coip-pool`,customer_gateway:`customer-gateway`,declarative_policies_report:`declarative-policies-report`,dedicated_host:`dedicated-host`,dhcp_options:`dhcp-options`,egress_only_internet_gateway:`egress-only-internet-gateway`,elastic_gpu:`elastic-gpu`,elastic_ip:`elastic-ip`,export_image_task:`export-image-task`,export_instance_task:`export-instance-task`,fleet:`fleet`,fpga_image:`fpga-image`,host_reservation:`host-reservation`,image:`image`,image_usage_report:`image-usage-report`,import_image_task:`import-image-task`,import_snapshot_task:`import-snapshot-task`,instance:`instance`,instance_connect_endpoint:`instance-connect-endpoint`,instance_event_window:`instance-event-window`,internet_gateway:`internet-gateway`,ipam:`ipam`,ipam_external_resource_verification_token:`ipam-external-resource-verification-token`,ipam_policy:`ipam-policy`,ipam_pool:`ipam-pool`,ipam_pool_allocation:`ipam-pool-allocation`,ipam_prefix_list_resolver:`ipam-prefix-list-resolver`,ipam_prefix_list_resolver_target:`ipam-prefix-list-resolver-target`,ipam_resource_discovery:`ipam-resource-discovery`,ipam_resource_discovery_association:`ipam-resource-discovery-association`,ipam_scope:`ipam-scope`,ipv4pool_ec2:`ipv4pool-ec2`,ipv6pool_ec2:`ipv6pool-ec2`,key_pair:`key-pair`,launch_template:`launch-template`,local_gateway:`local-gateway`,local_gateway_route_table:`local-gateway-route-table`,local_gateway_route_table_virtual_interface_group_association:`local-gateway-route-table-virtual-interface-group-association`,local_gateway_route_table_vpc_association:`local-gateway-route-table-vpc-association`,local_gateway_virtual_interface:`local-gateway-virtual-interface`,local_gateway_virtual_interface_group:`local-gateway-virtual-interface-group`,mac_modification_task:`mac-modification-task`,natgateway:`natgateway`,network_acl:`network-acl`,network_insights_access_scope:`network-insights-access-scope`,network_insights_access_scope_analysis:`network-insights-access-scope-analysis`,network_insights_analysis:`network-insights-analysis`,network_insights_path:`network-insights-path`,network_interface:`network-interface`,outpost_lag:`outpost-lag`,placement_group:`placement-group`,prefix_list:`prefix-list`,replace_root_volume_task:`replace-root-volume-task`,reserved_instances:`reserved-instances`,route_server:`route-server`,route_server_endpoint:`route-server-endpoint`,route_server_peer:`route-server-peer`,route_table:`route-table`,secondary_interface:`secondary-interface`,secondary_network:`secondary-network`,secondary_subnet:`secondary-subnet`,security_group:`security-group`,security_group_rule:`security-group-rule`,service_link_virtual_interface:`service-link-virtual-interface`,snapshot:`snapshot`,spot_fleet_request:`spot-fleet-request`,spot_instances_request:`spot-instances-request`,subnet:`subnet`,subnet_cidr_reservation:`subnet-cidr-reservation`,traffic_mirror_filter:`traffic-mirror-filter`,traffic_mirror_filter_rule:`traffic-mirror-filter-rule`,traffic_mirror_session:`traffic-mirror-session`,traffic_mirror_target:`traffic-mirror-target`,transit_gateway:`transit-gateway`,transit_gateway_attachment:`transit-gateway-attachment`,transit_gateway_connect_peer:`transit-gateway-connect-peer`,transit_gateway_metering_policy:`transit-gateway-metering-policy`,transit_gateway_multicast_domain:`transit-gateway-multicast-domain`,transit_gateway_policy_table:`transit-gateway-policy-table`,transit_gateway_route_table:`transit-gateway-route-table`,transit_gateway_route_table_announcement:`transit-gateway-route-table-announcement`,verified_access_endpoint:`verified-access-endpoint`,verified_access_endpoint_target:`verified-access-endpoint-target`,verified_access_group:`verified-access-group`,verified_access_instance:`verified-access-instance`,verified_access_policy:`verified-access-policy`,verified_access_trust_provider:`verified-access-trust-provider`,volume:`volume`,vpc:`vpc`,vpc_block_public_access_exclusion:`vpc-block-public-access-exclusion`,vpc_encryption_control:`vpc-encryption-control`,vpc_endpoint:`vpc-endpoint`,vpc_endpoint_connection:`vpc-endpoint-connection`,vpc_endpoint_connection_device_type:`vpc-endpoint-connection-device-type`,vpc_endpoint_service:`vpc-endpoint-service`,vpc_endpoint_service_permission:`vpc-endpoint-service-permission`,vpc_flow_log:`vpc-flow-log`,vpc_peering_connection:`vpc-peering-connection`,vpn_concentrator:`vpn-concentrator`,vpn_connection:`vpn-connection`,vpn_connection_device_type:`vpn-connection-device-type`,vpn_gateway:`vpn-gateway`},ad=!1;function od(e,t){ad||!Xl(e)||(ad=!0,Pe(),wr(),t.clear(),window.location.pathname!==`/login`&&(window.location.href=`/login?reason=expired`))}function sd(){let e=new ma({queryCache:new pa({onError:t=>od(t,e)}),mutationCache:new da({onError:t=>od(t,e)}),defaultOptions:{queries:{staleTime:5e3,refetchIntervalInBackground:!1}}});return e}function cd(){let e=(0,Z.c)(8),{theme:t,setTheme:n}=co(),r;e[0]!==n||e[1]!==t?(r=()=>{n(t===`light`?`dark`:t===`dark`?`light`:`dark`)},e[0]=n,e[1]=t,e[2]=r):r=e[2];let i=r,a,o,s;e[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,Y.jsx)(Vo,{className:`size-[1.2rem] scale-100 rotate-0 transition-all dark:scale-0 dark:-rotate-90`}),o=(0,Y.jsx)(jo,{className:`absolute size-[1.2rem] scale-0 rotate-90 transition-all dark:scale-100 dark:rotate-0`}),s=(0,Y.jsx)(`span`,{className:`sr-only`,children:`Toggle theme`}),e[3]=a,e[4]=o,e[5]=s):(a=e[3],o=e[4],s=e[5]);let c;return e[6]===i?c=e[7]:(c=(0,Y.jsxs)(at,{className:`rounded-full`,onClick:i,size:`icon-sm`,variant:`ghost`,children:[a,o,s]}),e[6]=i,e[7]=c),c}function ld(){let e=(0,Z.c)(7),{isAdmin:t,license:n}=Jl(),r=t&&n===`open-source`,i,a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(i=z(`z-50 flex h-10 shrink-0 items-center gap-2 border-b border-sidebar-border bg-sidebar px-4 text-sidebar-foreground`,`sticky top-0`),a=(0,Y.jsx)(il,{className:`-ml-1`}),e[0]=i,e[1]=a):(i=e[0],a=e[1]);let o;e[2]===r?o=e[3]:(o=r&&(0,Y.jsx)(`a`,{href:`https://mulgadc.com/purchase`,target:`_blank`,rel:`noopener noreferrer`,className:z(nt({variant:`outline`,size:`sm`})),children:`Upgrade`}),e[2]=r,e[3]=o);let s;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,Y.jsx)(cd,{}),e[4]=s):s=e[4];let c;return e[5]===o?c=e[6]:(c=(0,Y.jsxs)(`header`,{className:i,children:[a,(0,Y.jsxs)(`div`,{className:`flex w-full items-center justify-end gap-2`,children:[o,s]})]}),e[5]=o,e[6]=c),c}function ud(){let e=(0,Z.c)(3),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,Y.jsx)(`h1`,{className:`text-4xl font-bold`,children:`404`}),n=(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:`Page not found`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;return e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,Y.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-4`,children:[t,n,(0,Y.jsx)(F,{to:`/`,children:(0,Y.jsx)(at,{variant:`outline`,children:`Go back home`})})]}),e[2]=r):r=e[2],r}function dd(){let e=(0,Z.c)(224),t;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={select:fd},e[0]=t):t=e[0];let n=Xa(t),r=he(),i=h(),{isAdmin:a}=Jl(),o;e[1]!==r||e[2]!==i?(o=function(){Pe(),wr(),i.clear(),r({to:`/login`})},e[1]=r,e[2]=i,e[3]=o):o=e[3];let s=o,c;e[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Y.jsxs)(ol,{className:`flex flex-row items-center gap-2 px-4 py-3`,children:[(0,Y.jsx)(`img`,{src:`/mulga-logo.svg`,alt:`Mulga`,className:`size-6 shrink-0 dark:invert`}),(0,Y.jsx)(`span`,{className:`truncate text-sm font-semibold group-data-[collapsible=icon]:hidden`,children:`Spinifex`})]}),e[4]=c):c=e[4];let l;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Y.jsx)(dl,{children:`General`}),e[5]=l):l=e[5];let u=n===`/`,d,f;e[6]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,Y.jsx)(Co,{className:`size-4`}),f=(0,Y.jsx)(`span`,{children:`Dashboard`}),e[6]=d,e[7]=f):(d=e[6],f=e[7]);let p;e[8]===u?p=e[9]:(p=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/`,children:(0,Y.jsxs)(hl,{isActive:u,tooltip:`Dashboard`,children:[d,f]})})}),e[8]=u,e[9]=p);let m;e[10]!==a||e[11]!==n?(m=a&&(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/nodes`,children:(0,Y.jsxs)(hl,{isActive:n.startsWith(`/nodes`),tooltip:`Nodes`,children:[(0,Y.jsx)(Lo,{className:`size-4`}),(0,Y.jsx)(`span`,{children:`Nodes`})]})})}),e[10]=a,e[11]=n,e[12]=m):m=e[12];let g;e[13]!==p||e[14]!==m?(g=(0,Y.jsxs)(ul,{children:[l,(0,Y.jsxs)(fl,{children:[p,m]})]}),e[13]=p,e[14]=m,e[15]=g):g=e[15];let _;e[16]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Y.jsx)(dl,{children:`EC2`}),e[16]=_):_=e[16];let v;e[17]===n?v=e[18]:(v=n.startsWith(`/ec2/describe-instances`)||n.startsWith(`/ec2/run-instances`),e[17]=n,e[18]=v);let y,b;e[19]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Y.jsx)(Lo,{className:`size-4`}),b=(0,Y.jsx)(`span`,{children:`Instances`}),e[19]=y,e[20]=b):(y=e[19],b=e[20]);let x;e[21]===v?x=e[22]:(x=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-instances`,children:(0,Y.jsxs)(hl,{isActive:v,tooltip:`Instances`,children:[y,b]})})}),e[21]=v,e[22]=x);let S;e[23]===n?S=e[24]:(S=n.startsWith(`/ec2/describe-launch-templates`)||n.startsWith(`/ec2/create-launch-template`),e[23]=n,e[24]=S);let C,w;e[25]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,Y.jsx)(bo,{className:`size-4`}),w=(0,Y.jsx)(`span`,{children:`Launch Templates`}),e[25]=C,e[26]=w):(C=e[25],w=e[26]);let T;e[27]===S?T=e[28]:(T=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-launch-templates`,children:(0,Y.jsxs)(hl,{isActive:S,tooltip:`Launch Templates`,children:[C,w]})})}),e[27]=S,e[28]=T);let E;e[29]===n?E=e[30]:(E=n.startsWith(`/ec2/describe-images`),e[29]=n,e[30]=E);let D,O;e[31]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,Y.jsx)(To,{className:`size-4`}),O=(0,Y.jsx)(`span`,{children:`Images`}),e[31]=D,e[32]=O):(D=e[31],O=e[32]);let k;e[33]===E?k=e[34]:(k=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-images`,children:(0,Y.jsxs)(hl,{isActive:E,tooltip:`Images`,children:[D,O]})})}),e[33]=E,e[34]=k);let A;e[35]===n?A=e[36]:(A=n.startsWith(`/ec2/describe-key-pairs`),e[35]=n,e[36]=A);let ee,te;e[37]===Symbol.for(`react.memo_cache_sentinel`)?(ee=(0,Y.jsx)(Eo,{className:`size-4`}),te=(0,Y.jsx)(`span`,{children:`Key Pairs`}),e[37]=ee,e[38]=te):(ee=e[37],te=e[38]);let ne;e[39]===A?ne=e[40]:(ne=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-key-pairs`,children:(0,Y.jsxs)(hl,{isActive:A,tooltip:`Key Pairs`,children:[ee,te]})})}),e[39]=A,e[40]=ne);let j;e[41]===n?j=e[42]:(j=n.startsWith(`/ec2/describe-addresses`)||n.startsWith(`/ec2/allocate-address`),e[41]=n,e[42]=j);let M,N;e[43]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,Y.jsx)(Ao,{className:`size-4`}),N=(0,Y.jsx)(`span`,{children:`Elastic IPs`}),e[43]=M,e[44]=N):(M=e[43],N=e[44]);let re;e[45]===j?re=e[46]:(re=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-addresses`,children:(0,Y.jsxs)(hl,{isActive:j,tooltip:`Elastic IPs`,children:[M,N]})})}),e[45]=j,e[46]=re);let ie;e[47]===n?ie=e[48]:(ie=n.startsWith(`/ec2/describe-volumes`)||n.startsWith(`/ec2/create-volume`)||n.startsWith(`/ec2/modify-volume`),e[47]=n,e[48]=ie);let ae,oe;e[49]===Symbol.for(`react.memo_cache_sentinel`)?(ae=(0,Y.jsx)(So,{className:`size-4`}),oe=(0,Y.jsx)(`span`,{children:`Volumes`}),e[49]=ae,e[50]=oe):(ae=e[49],oe=e[50]);let P;e[51]===ie?P=e[52]:(P=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-volumes`,children:(0,Y.jsxs)(hl,{isActive:ie,tooltip:`Volumes`,children:[ae,oe]})})}),e[51]=ie,e[52]=P);let se;e[53]===n?se=e[54]:(se=n.startsWith(`/ec2/describe-snapshots`)||n.startsWith(`/ec2/create-snapshot`),e[53]=n,e[54]=se);let ce,le;e[55]===Symbol.for(`react.memo_cache_sentinel`)?(ce=(0,Y.jsx)(ho,{className:`size-4`}),le=(0,Y.jsx)(`span`,{children:`Snapshots`}),e[55]=ce,e[56]=le):(ce=e[55],le=e[56]);let ue;e[57]===se?ue=e[58]:(ue=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-snapshots`,children:(0,Y.jsxs)(hl,{isActive:se,tooltip:`Snapshots`,children:[ce,le]})})}),e[57]=se,e[58]=ue);let de;e[59]===n?de=e[60]:(de=n.startsWith(`/ec2/describe-placement-groups`)||n.startsWith(`/ec2/create-placement-group`),e[59]=n,e[60]=de);let fe,pe;e[61]===Symbol.for(`react.memo_cache_sentinel`)?(fe=(0,Y.jsx)(Do,{className:`size-4`}),pe=(0,Y.jsx)(`span`,{children:`Placement Groups`}),e[61]=fe,e[62]=pe):(fe=e[61],pe=e[62]);let I;e[63]===de?I=e[64]:(I=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-placement-groups`,children:(0,Y.jsxs)(hl,{isActive:de,tooltip:`Placement Groups`,children:[fe,pe]})})}),e[63]=de,e[64]=I);let me;e[65]===n?me=e[66]:(me=n.startsWith(`/ec2/describe-load-balancers`)||n.startsWith(`/ec2/create-load-balancer`),e[65]=n,e[66]=me);let L,ge;e[67]===Symbol.for(`react.memo_cache_sentinel`)?(L=(0,Y.jsx)(Ko,{className:`size-4`}),ge=(0,Y.jsx)(`span`,{children:`Load Balancers`}),e[67]=L,e[68]=ge):(L=e[67],ge=e[68]);let _e;e[69]===me?_e=e[70]:(_e=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-load-balancers`,children:(0,Y.jsxs)(hl,{isActive:me,tooltip:`Load Balancers`,children:[L,ge]})})}),e[69]=me,e[70]=_e);let ve;e[71]===n?ve=e[72]:(ve=n.startsWith(`/ec2/describe-target-groups`)||n.startsWith(`/ec2/create-target-group`),e[71]=n,e[72]=ve);let ye,be;e[73]===Symbol.for(`react.memo_cache_sentinel`)?(ye=(0,Y.jsx)(vo,{className:`size-4`}),be=(0,Y.jsx)(`span`,{children:`Target Groups`}),e[73]=ye,e[74]=be):(ye=e[73],be=e[74]);let xe;e[75]===ve?xe=e[76]:(xe=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-target-groups`,children:(0,Y.jsxs)(hl,{isActive:ve,tooltip:`Target Groups`,children:[ye,be]})})}),e[75]=ve,e[76]=xe);let Se;e[77]!==x||e[78]!==T||e[79]!==k||e[80]!==ne||e[81]!==re||e[82]!==P||e[83]!==ue||e[84]!==I||e[85]!==_e||e[86]!==xe?(Se=(0,Y.jsxs)(ul,{children:[_,(0,Y.jsxs)(fl,{children:[x,T,k,ne,re,P,ue,I,_e,xe]})]}),e[77]=x,e[78]=T,e[79]=k,e[80]=ne,e[81]=re,e[82]=P,e[83]=ue,e[84]=I,e[85]=_e,e[86]=xe,e[87]=Se):Se=e[87];let Ce;e[88]===Symbol.for(`react.memo_cache_sentinel`)?(Ce=(0,Y.jsx)(dl,{children:`Networking`}),e[88]=Ce):Ce=e[88];let we;e[89]===n?we=e[90]:(we=n.startsWith(`/ec2/describe-vpcs`)||n.startsWith(`/ec2/create-vpc`),e[89]=n,e[90]=we);let Te,Ee;e[91]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,Y.jsx)(Mo,{className:`size-4`}),Ee=(0,Y.jsx)(`span`,{children:`VPCs`}),e[91]=Te,e[92]=Ee):(Te=e[91],Ee=e[92]);let De;e[93]===we?De=e[94]:(De=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-vpcs`,children:(0,Y.jsxs)(hl,{isActive:we,tooltip:`VPCs`,children:[Te,Ee]})})}),e[93]=we,e[94]=De);let Oe;e[95]===n?Oe=e[96]:(Oe=n.startsWith(`/ec2/describe-subnets`)||n.startsWith(`/ec2/create-subnet`),e[95]=n,e[96]=Oe);let ke,Ae;e[97]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,Y.jsx)(Oo,{className:`size-4`}),Ae=(0,Y.jsx)(`span`,{children:`Subnets`}),e[97]=ke,e[98]=Ae):(ke=e[97],Ae=e[98]);let je;e[99]===Oe?je=e[100]:(je=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-subnets`,children:(0,Y.jsxs)(hl,{isActive:Oe,tooltip:`Subnets`,children:[ke,Ae]})})}),e[99]=Oe,e[100]=je);let R;e[101]===n?R=e[102]:(R=n.startsWith(`/ec2/describe-security-groups`)||n.startsWith(`/ec2/create-security-group`),e[101]=n,e[102]=R);let Me,Ne;e[103]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,Y.jsx)(Ro,{className:`size-4`}),Ne=(0,Y.jsx)(`span`,{children:`Security Groups`}),e[103]=Me,e[104]=Ne):(Me=e[103],Ne=e[104]);let Fe;e[105]===R?Fe=e[106]:(Fe=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-security-groups`,children:(0,Y.jsxs)(hl,{isActive:R,tooltip:`Security Groups`,children:[Me,Ne]})})}),e[105]=R,e[106]=Fe);let z;e[107]===n?z=e[108]:(z=n.startsWith(`/ec2/describe-route-tables`)||n.startsWith(`/ec2/create-route-table`),e[107]=n,e[108]=z);let Ie,Le;e[109]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,Y.jsx)(Fo,{className:`size-4`}),Le=(0,Y.jsx)(`span`,{children:`Route Tables`}),e[109]=Ie,e[110]=Le):(Ie=e[109],Le=e[110]);let B;e[111]===z?B=e[112]:(B=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-route-tables`,children:(0,Y.jsxs)(hl,{isActive:z,tooltip:`Route Tables`,children:[Ie,Le]})})}),e[111]=z,e[112]=B);let Re;e[113]===n?Re=e[114]:(Re=n.startsWith(`/ec2/describe-internet-gateways`),e[113]=n,e[114]=Re);let V,ze;e[115]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,Y.jsx)(xo,{className:`size-4`}),ze=(0,Y.jsx)(`span`,{children:`Internet Gateways`}),e[115]=V,e[116]=ze):(V=e[115],ze=e[116]);let Be;e[117]===Re?Be=e[118]:(Be=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-internet-gateways`,children:(0,Y.jsxs)(hl,{isActive:Re,tooltip:`Internet Gateways`,children:[V,ze]})})}),e[117]=Re,e[118]=Be);let Ve;e[119]===n?Ve=e[120]:(Ve=n.startsWith(`/ec2/describe-nat-gateways`)||n.startsWith(`/ec2/create-nat-gateway`),e[119]=n,e[120]=Ve);let He,Ue;e[121]===Symbol.for(`react.memo_cache_sentinel`)?(He=(0,Y.jsx)(Io,{className:`size-4`}),Ue=(0,Y.jsx)(`span`,{children:`NAT Gateways`}),e[121]=He,e[122]=Ue):(He=e[121],Ue=e[122]);let We;e[123]===Ve?We=e[124]:(We=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ec2/describe-nat-gateways`,children:(0,Y.jsxs)(hl,{isActive:Ve,tooltip:`NAT Gateways`,children:[He,Ue]})})}),e[123]=Ve,e[124]=We);let Ge;e[125]!==De||e[126]!==je||e[127]!==Fe||e[128]!==B||e[129]!==Be||e[130]!==We?(Ge=(0,Y.jsxs)(ul,{children:[Ce,(0,Y.jsxs)(fl,{children:[De,je,Fe,B,Be,We]})]}),e[125]=De,e[126]=je,e[127]=Fe,e[128]=B,e[129]=Be,e[130]=We,e[131]=Ge):Ge=e[131];let Ke;e[132]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=(0,Y.jsx)(dl,{children:`Containers`}),e[132]=Ke):Ke=e[132];let qe;e[133]===n?qe=e[134]:(qe=n.startsWith(`/eks/list-clusters`)||n.startsWith(`/eks/create-cluster`),e[133]=n,e[134]=qe);let Je,Ye;e[135]===Symbol.for(`react.memo_cache_sentinel`)?(Je=(0,Y.jsx)(mo,{className:`size-4`}),Ye=(0,Y.jsx)(`span`,{children:`EKS`}),e[135]=Je,e[136]=Ye):(Je=e[135],Ye=e[136]);let Xe;e[137]===qe?Xe=e[138]:(Xe=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/eks/list-clusters`,children:(0,Y.jsxs)(hl,{isActive:qe,tooltip:`EKS clusters`,children:[Je,Ye]})})}),e[137]=qe,e[138]=Xe);let Ze;e[139]===n?Ze=e[140]:(Ze=n.startsWith(`/ecr/list-repositories`),e[139]=n,e[140]=Ze);let Qe,$e;e[141]===Symbol.for(`react.memo_cache_sentinel`)?(Qe=(0,Y.jsx)(No,{className:`size-4`}),$e=(0,Y.jsx)(`span`,{children:`ECR`}),e[141]=Qe,e[142]=$e):(Qe=e[141],$e=e[142]);let et;e[143]===Ze?et=e[144]:(et=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ecr/list-repositories`,children:(0,Y.jsxs)(hl,{isActive:Ze,tooltip:`ECR repositories`,children:[Qe,$e]})})}),e[143]=Ze,e[144]=et);let tt;e[145]===n?tt=e[146]:(tt=n.startsWith(`/ecs/`),e[145]=n,e[146]=tt);let nt,H;e[147]===Symbol.for(`react.memo_cache_sentinel`)?(nt=(0,Y.jsx)(_o,{className:`size-4`}),H=(0,Y.jsx)(`span`,{children:`ECS`}),e[147]=nt,e[148]=H):(nt=e[147],H=e[148]);let rt;e[149]===tt?rt=e[150]:(rt=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/ecs/list-clusters`,children:(0,Y.jsxs)(hl,{isActive:tt,tooltip:`ECS clusters`,children:[nt,H]})})}),e[149]=tt,e[150]=rt);let it;e[151]!==Xe||e[152]!==et||e[153]!==rt?(it=(0,Y.jsxs)(ul,{children:[Ke,(0,Y.jsxs)(fl,{children:[Xe,et,rt]})]}),e[151]=Xe,e[152]=et,e[153]=rt,e[154]=it):it=e[154];let at;e[155]===Symbol.for(`react.memo_cache_sentinel`)?(at=(0,Y.jsx)(dl,{children:`IAM`}),e[155]=at):at=e[155];let ot;e[156]===n?ot=e[157]:(ot=n.startsWith(`/iam/list-users`)||n.startsWith(`/iam/create-user`),e[156]=n,e[157]=ot);let st,ct;e[158]===Symbol.for(`react.memo_cache_sentinel`)?(st=(0,Y.jsx)(Go,{className:`size-4`}),ct=(0,Y.jsx)(`span`,{children:`Users`}),e[158]=st,e[159]=ct):(st=e[158],ct=e[159]);let lt;e[160]===ot?lt=e[161]:(lt=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/iam/list-users`,children:(0,Y.jsxs)(hl,{isActive:ot,tooltip:`Users`,children:[st,ct]})})}),e[160]=ot,e[161]=lt);let ut;e[162]===n?ut=e[163]:(ut=n.startsWith(`/iam/list-groups`)||n.startsWith(`/iam/create-group`),e[162]=n,e[163]=ut);let dt,ft;e[164]===Symbol.for(`react.memo_cache_sentinel`)?(dt=(0,Y.jsx)(Wo,{className:`size-4`}),ft=(0,Y.jsx)(`span`,{children:`Groups`}),e[164]=dt,e[165]=ft):(dt=e[164],ft=e[165]);let pt;e[166]===ut?pt=e[167]:(pt=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/iam/list-groups`,children:(0,Y.jsxs)(hl,{isActive:ut,tooltip:`Groups`,children:[dt,ft]})})}),e[166]=ut,e[167]=pt);let mt;e[168]===n?mt=e[169]:(mt=n.startsWith(`/iam/list-policies`)||n.startsWith(`/iam/create-policy`),e[168]=n,e[169]=mt);let ht,gt;e[170]===Symbol.for(`react.memo_cache_sentinel`)?(ht=(0,Y.jsx)(zo,{className:`size-4`}),gt=(0,Y.jsx)(`span`,{children:`Policies`}),e[170]=ht,e[171]=gt):(ht=e[170],gt=e[171]);let _t;e[172]===mt?_t=e[173]:(_t=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/iam/list-policies`,children:(0,Y.jsxs)(hl,{isActive:mt,tooltip:`Policies`,children:[ht,gt]})})}),e[172]=mt,e[173]=_t);let vt;e[174]===n?vt=e[175]:(vt=n.startsWith(`/iam/list-roles`)||n.startsWith(`/iam/create-role`),e[174]=n,e[175]=vt);let yt,bt;e[176]===Symbol.for(`react.memo_cache_sentinel`)?(yt=(0,Y.jsx)(Uo,{className:`size-4`}),bt=(0,Y.jsx)(`span`,{children:`Roles`}),e[176]=yt,e[177]=bt):(yt=e[176],bt=e[177]);let xt;e[178]===vt?xt=e[179]:(xt=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/iam/list-roles`,children:(0,Y.jsxs)(hl,{isActive:vt,tooltip:`Roles`,children:[yt,bt]})})}),e[178]=vt,e[179]=xt);let St;e[180]===n?St=e[181]:(St=n.startsWith(`/iam/list-instance-profiles`)||n.startsWith(`/iam/create-instance-profile`),e[180]=n,e[181]=St);let Ct,wt;e[182]===Symbol.for(`react.memo_cache_sentinel`)?(Ct=(0,Y.jsx)(wo,{className:`size-4`}),wt=(0,Y.jsx)(`span`,{children:`Instance Profiles`}),e[182]=Ct,e[183]=wt):(Ct=e[182],wt=e[183]);let Tt;e[184]===St?Tt=e[185]:(Tt=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/iam/list-instance-profiles`,children:(0,Y.jsxs)(hl,{isActive:St,tooltip:`Instance Profiles`,children:[Ct,wt]})})}),e[184]=St,e[185]=Tt);let Et;e[186]!==pt||e[187]!==_t||e[188]!==xt||e[189]!==Tt||e[190]!==lt?(Et=(0,Y.jsxs)(ul,{children:[at,(0,Y.jsxs)(fl,{children:[lt,pt,_t,xt,Tt]})]}),e[186]=pt,e[187]=_t,e[188]=xt,e[189]=Tt,e[190]=lt,e[191]=Et):Et=e[191];let Dt;e[192]===Symbol.for(`react.memo_cache_sentinel`)?(Dt=(0,Y.jsx)(dl,{children:`S3`}),e[192]=Dt):Dt=e[192];let Ot;e[193]===n?Ot=e[194]:(Ot=n.startsWith(`/s3/ls`),e[193]=n,e[194]=Ot);let kt,At;e[195]===Symbol.for(`react.memo_cache_sentinel`)?(kt=(0,Y.jsx)(Lo,{className:`size-4`}),At=(0,Y.jsx)(`span`,{children:`Buckets`}),e[195]=kt,e[196]=At):(kt=e[195],At=e[196]);let jt;e[197]===Ot?jt=e[198]:(jt=(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/s3/ls`,children:(0,Y.jsxs)(hl,{isActive:Ot,tooltip:`Buckets`,children:[kt,At]})})}),e[197]=Ot,e[198]=jt);let Mt;e[199]!==a||e[200]!==n?(Mt=a&&(0,Y.jsx)(pl,{children:(0,Y.jsx)(F,{to:`/s3/service-metrics`,children:(0,Y.jsxs)(hl,{isActive:n.startsWith(`/s3/service-metrics`),tooltip:`Service Metrics`,children:[(0,Y.jsx)(uo,{className:`size-4`}),(0,Y.jsx)(`span`,{children:`Service Metrics`})]})})}),e[199]=a,e[200]=n,e[201]=Mt):Mt=e[201];let Nt;e[202]!==jt||e[203]!==Mt?(Nt=(0,Y.jsxs)(ul,{children:[Dt,(0,Y.jsxs)(fl,{children:[jt,Mt]})]}),e[202]=jt,e[203]=Mt,e[204]=Nt):Nt=e[204];let Pt;e[205]===a?Pt=e[206]:(Pt=a&&(0,Y.jsxs)(ul,{children:[(0,Y.jsx)(dl,{children:`Documentation`}),(0,Y.jsx)(fl,{children:(0,Y.jsx)(pl,{children:(0,Y.jsx)(`a`,{href:`https://docs.mulgadc.com`,target:`_blank`,rel:`noopener noreferrer`,children:(0,Y.jsxs)(hl,{tooltip:`Documentation`,children:[(0,Y.jsx)(po,{className:`size-4`}),(0,Y.jsx)(`span`,{children:`Docs`})]})})})})]}),e[205]=a,e[206]=Pt);let Ft;e[207]!==Et||e[208]!==Nt||e[209]!==Pt||e[210]!==Se||e[211]!==Ge||e[212]!==g||e[213]!==it?(Ft=(0,Y.jsxs)(ll,{children:[g,Se,Ge,it,Et,Nt,Pt]}),e[207]=Et,e[208]=Nt,e[209]=Pt,e[210]=Se,e[211]=Ge,e[212]=g,e[213]=it,e[214]=Ft):Ft=e[214];let U;e[215]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,Y.jsx)(cl,{className:`mx-0 w-full`}),e[215]=U):U=e[215];let It,Lt;e[216]===Symbol.for(`react.memo_cache_sentinel`)?(It=(0,Y.jsx)(ko,{className:`size-4`}),Lt=(0,Y.jsx)(`span`,{children:`Sign out`}),e[216]=It,e[217]=Lt):(It=e[216],Lt=e[217]);let Rt;e[218]===s?Rt=e[219]:(Rt=(0,Y.jsxs)(sl,{children:[U,(0,Y.jsx)(fl,{children:(0,Y.jsx)(pl,{children:(0,Y.jsxs)(hl,{onClick:s,tooltip:`Sign out`,children:[It,Lt]})})})]}),e[218]=s,e[219]=Rt);let zt;e[220]===Symbol.for(`react.memo_cache_sentinel`)?(zt=(0,Y.jsx)(al,{}),e[220]=zt):zt=e[220];let Bt;return e[221]!==Ft||e[222]!==Rt?(Bt=(0,Y.jsxs)(rl,{collapsible:`icon`,children:[c,Ft,Rt,zt]}),e[221]=Ft,e[222]=Rt,e[223]=Bt):Bt=e[223],Bt}function fd(e){return e.pathname}function pd(e){let t=(0,Z.c)(18),{error:n,reset:r}=e,i=j(),a=h(),o;t[0]!==a||t[1]!==r||t[2]!==i?(o=function(){a.invalidateQueries(),r(),i.invalidate()},t[0]=a,t[1]=r,t[2]=i,t[3]=o):o=t[3];let s=o,c;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Y.jsx)(dd,{}),t[4]=c):c=t[4];let l;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(l=(0,Y.jsx)(ld,{}),t[5]=l):l=t[5];let u,d;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(u=(0,Y.jsx)(`div`,{className:`flex justify-center`,children:(0,Y.jsx)(go,{className:`size-12 text-destructive`})}),d=(0,Y.jsx)(`h1`,{className:`text-2xl font-semibold`,children:`Something went wrong`}),t[6]=u,t[7]=d):(u=t[6],d=t[7]);let f=n.message||`An unexpected error occurred`,p;t[8]===f?p=t[9]:(p=(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:f}),t[8]=f,t[9]=p);let m;t[10]===s?m=t[11]:(m=(0,Y.jsx)(at,{onClick:s,variant:`default`,children:`Try Again`}),t[10]=s,t[11]=m);let g;t[12]===Symbol.for(`react.memo_cache_sentinel`)?(g=(0,Y.jsx)(F,{to:`/`,children:(0,Y.jsx)(at,{variant:`outline`,children:`Go Home`})}),t[12]=g):g=t[12];let _;t[13]===m?_=t[14]:(_=(0,Y.jsxs)(`div`,{className:`flex justify-center gap-2`,children:[m,g]}),t[13]=m,t[14]=_);let v;return t[15]!==_||t[16]!==p?(v=(0,Y.jsxs)(Y.Fragment,{children:[c,(0,Y.jsxs)(`main`,{className:`flex flex-1 flex-col`,children:[l,(0,Y.jsx)(`div`,{className:`flex flex-1 items-center justify-center p-6 pt-0`,children:(0,Y.jsxs)(`div`,{className:`max-w-md space-y-4 text-center`,children:[u,d,p,_]})})]})]}),t[15]=_,t[16]=p,t[17]=v):v=t[17],v}var md=me()({head:()=>({meta:[{title:`Mulga`}]}),component:()=>(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(to,{}),(0,Y.jsx)(dd,{}),(0,Y.jsxs)(`main`,{className:`flex flex-1 flex-col`,children:[(0,Y.jsx)(ld,{}),(0,Y.jsx)(`div`,{className:`flex flex-1 flex-col p-8`,children:(0,Y.jsx)(ae,{})})]})]}),errorComponent:pd,notFoundComponent:ud}),hd=I(`/_auth`)({beforeLoad:()=>{if(!Ie())throw ue({to:`/login`})},component:L(()=>B(()=>import(`./route.js`),__vite__mapDeps([0,1,2,3,4,5])),`component`)}),gd=I(`/login`)({validateSearch:e=>({reason:e.reason===`expired`?`expired`:void 0}),beforeLoad:()=>{if(Ie())throw ue({to:`/`})},component:L(()=>B(()=>import(`./login.js`),__vite__mapDeps([6,1,7,8,9,10,11,12,13,14])),`component`)}),_d=I(`/_auth/`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(ai),e.queryClient.ensureQueryData(Br),e.queryClient.ensureQueryData(Gr),e.queryClient.ensureQueryData(li),e.queryClient.ensureQueryData(aa),e.queryClient.ensureQueryData(hi),e.queryClient.ensureQueryData(Yr),e.queryClient.ensureQueryData(si),e.queryClient.ensureQueryData($r)])},head:()=>({meta:[{title:`Dashboard | Mulga`}]}),component:L(()=>B(()=>import(`./_auth.js`),__vite__mapDeps([15,1,16,3,7,8,17,18,19,20,21,11,12,22,23,24,25,10,14])),`component`)}),vd=I(`/_auth/nodes`)({head:()=>({meta:[{title:`Nodes | Mulga`}]}),component:L(()=>B(()=>import(`./nodes.js`),__vite__mapDeps([26,1,5,16,3,7,8,18,17,19,24,21,25,10,14])),`component`)}),yd=I(`/_auth/s3/service-metrics`)({head:()=>({meta:[{title:`Service Metrics | S3 | Mulga`}]}),component:L(()=>B(()=>import(`./service-metrics.js`),__vite__mapDeps([27,1,5,24,21,7,8,25,10,14])),`component`)}),bd=I(`/_auth/ec2/(elastic-ips)/allocate-address`)({head:()=>({meta:[{title:`Allocate Elastic IP | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./allocate-address.js`),__vite__mapDeps([28,1,29,3])),`component`)}),xd=e=>e.type===`checkbox`,Sd=e=>e.type===`file`,Cd=e=>e instanceof Date,wd=e=>e==null,Td=e=>typeof e==`object`,Ed=e=>!wd(e)&&!Array.isArray(e)&&Td(e)&&!Cd(e),Dd=e=>Ed(e)&&e.target?xd(e.target)?e.target.checked:Sd(e.target)?e.target.files:e.target.value:e,Od=(e,t)=>t.split(`.`).some((t,n,r)=>!isNaN(Number(t))&&e.has(r.slice(0,n).join(`.`))),kd=e=>{let t=e.constructor&&e.constructor.prototype;return Ed(t)&&t.hasOwnProperty(`isPrototypeOf`)},Ad=typeof window<`u`&&window.HTMLElement!==void 0&&typeof document<`u`;function jd(e){if(e instanceof Date)return new Date(e);let t=typeof FileList<`u`&&e instanceof FileList;if(Ad&&(e instanceof Blob||t))return e;let n=Array.isArray(e);if(!n&&!(Ed(e)&&kd(e)))return e;let r=n?[]:Object.create(Object.getPrototypeOf(e));for(let t in e)Object.prototype.hasOwnProperty.call(e,t)&&(r[t]=jd(e[t]));return r}var Md={BLUR:`blur`,FOCUS_OUT:`focusout`,CHANGE:`change`,SUBMIT:`submit`,TRIGGER:`trigger`,VALID:`valid`},Nd={onBlur:`onBlur`,onChange:`onChange`,onSubmit:`onSubmit`,onTouched:`onTouched`,all:`all`},Pd={max:`max`,min:`min`,maxLength:`maxLength`,minLength:`minLength`,pattern:`pattern`,required:`required`,validate:`validate`},Fd=`root`,Id=[`__proto__`,`constructor`,`prototype`],Ld=/^\w*$/,Rd=e=>Ld.test(e),zd=e=>e===void 0,Bd=/[.[\]'"]/,Vd=e=>e.split(Bd).filter(Boolean),Q=(e,t,n)=>{if(!t||!Ed(e))return n;let r=Rd(t)?[t]:Vd(t);if(r.some(e=>Id.includes(e)))return n;let i=r.reduce((e,t)=>wd(e)?void 0:e[t],e);return zd(i)||i===e?zd(e[t])?n:e[t]:i},Hd=e=>typeof e==`boolean`,Ud=e=>typeof e==`function`,Wd=(e,t,n)=>{let r=-1,i=Rd(t)?[t]:Vd(t),a=i.length,o=a-1;for(;++rJ.useContext(Gd),qd=(e,t,n,r=!0)=>{let i={};for(let a in e)Object.defineProperty(i,a,{get:()=>{let i=a;return t._proxyFormState[i]!==Nd.all&&(t._proxyFormState[i]=!r||Nd.all),n&&(n[i]=!0),e[i]}});return i},Jd=Ad?J.useLayoutEffect:J.useEffect;function Yd(e){let t=Kd(),{control:n=t,disabled:r,name:i,exact:a}=e||{},[o,s]=J.useState(()=>({...n._formState,defaultValues:n._defaultValues})),c=J.useRef({isDirty:!1,isLoading:!1,dirtyFields:!1,touchedFields:!1,validatingFields:!1,isValidating:!1,isValid:!1,errors:!1});return Jd(()=>n._subscribe({name:i,formState:c.current,exact:a,callback:e=>{!r&&s({...n._formState,...e,defaultValues:n._defaultValues})}}),[i,r,a]),J.useEffect(()=>{c.current.isValid&&n._setValid(!0)},[n]),J.useMemo(()=>qd(o,n,c.current,!1),[o,n])}var Xd=e=>typeof e==`string`,Zd=(e,t,n,r,i)=>Xd(e)?(r&&t.watch.add(e),Q(n,e,i)):Array.isArray(e)?e.map(e=>(r&&t.watch.add(e),Q(n,e))):(r&&(t.watchAll=!0),n),Qd=e=>wd(e)||!Td(e),$d=(e,t)=>t.length===0&&!Array.isArray(e)&&!kd(e);function ef(e,t,n=new WeakMap){if(e===t)return!0;if(Qd(e)||Qd(t))return Object.is(e,t);if(Cd(e)&&Cd(t))return Object.is(e.getTime(),t.getTime());let r=Object.keys(e),i=Object.keys(t);if(r.length!==i.length)return!1;if($d(e,r)||$d(t,i))return Object.is(e,t);if(!r.length&&Array.isArray(e)!==Array.isArray(t))return!1;let a=n.get(e);if(a&&a.has(t))return!0;if(a)a.add(t);else{let r=new WeakSet;r.add(t),n.set(e,r)}for(let i of r){let r=e[i];if(!(i in t))return!1;if(i!==`ref`){let e=t[i];if(Cd(r)&&Cd(e)||(Ed(r)||Array.isArray(r))&&(Ed(e)||Array.isArray(e))?!ef(r,e,n):!Object.is(r,e))return!1}}return!0}function tf(e){let t=Kd(),{control:n=t,name:r,defaultValue:i,disabled:a,exact:o,compute:s}=e||{},c=J.useRef(i),l=J.useRef(s),u=J.useRef(void 0),d=J.useRef(n),f=J.useRef(r);l.current=s;let[p,m]=J.useState(()=>{let e=n._getWatch(r,c.current);return l.current?l.current(e):e}),h=J.useCallback(e=>{let t=Zd(r,n._names,e||n._formValues,!1,c.current);return l.current?l.current(t):t},[n._formValues,n._names,r]),g=J.useCallback(e=>{if(!a){let t=Zd(r,n._names,e||n._formValues,!1,c.current);if(l.current){let e=l.current(t);ef(e,u.current)||(m(e),u.current=e)}else m(t)}},[n._formValues,n._names,a,r]);Jd(()=>((d.current!==n||!ef(f.current,r))&&(d.current=n,f.current=r,g()),n._subscribe({name:r,formState:{values:!0},exact:o,callback:e=>{g(e.values)}})),[n,o,r,g]),J.useEffect(()=>n._removeUnmounted());let _=d.current!==n,v=f.current,y=J.useMemo(()=>{if(a)return null;let e=!_&&!ef(v,r);return _||e?h():null},[a,_,r,v,h]);return y===null?p:y}function nf(e){let t=Kd(),{name:n,disabled:r,control:i=t,shouldUnregister:a,defaultValue:o,exact:s=!0}=e,c=Od(i._names.array,n),l=tf({control:i,name:n,defaultValue:J.useMemo(()=>Q(i._formValues,n,Q(i._defaultValues,n,o)),[i,n,o]),exact:s}),u=Yd({control:i,name:n,exact:s}),d=J.useRef(e),f=J.useRef(null),p=J.useRef(i.register(n,{...e.rules,value:l,...Hd(e.disabled)?{disabled:e.disabled}:{}}));d.current=e;let m=J.useMemo(()=>Object.defineProperties({},{invalid:{enumerable:!0,get:()=>!!Q(u.errors,n)},isDirty:{enumerable:!0,get:()=>!!Q(u.dirtyFields,n)},isTouched:{enumerable:!0,get:()=>!!Q(u.touchedFields,n)},isValidating:{enumerable:!0,get:()=>!!Q(u.validatingFields,n)},error:{enumerable:!0,get:()=>Q(u.errors,n)}}),[u,n]),h=J.useCallback(e=>{let t=Dd(e);return Q(i._fields,n)||(p.current=i.register(n,{...d.current.rules,value:t})),p.current.onChange({target:{value:Dd(e),name:n},type:Md.CHANGE})},[n,i]),g=J.useCallback(()=>p.current.onBlur({target:{value:Q(i._formValues,n),name:n},type:Md.BLUR}),[n,i._formValues]),_=J.useCallback(e=>{e&&(f.current={focus:()=>Ud(e.focus)&&e.focus(),select:()=>Ud(e.select)&&e.select(),setCustomValidity:t=>Ud(e.setCustomValidity)&&e.setCustomValidity(t),reportValidity:()=>Ud(e.reportValidity)&&e.reportValidity()});let t=Q(i._fields,n);t&&t._f&&e&&(t._f.ref=f.current)},[i._fields,n]),v=J.useMemo(()=>({name:n,value:l,...Hd(r)||u.disabled?{disabled:u.disabled||r}:{},onChange:h,onBlur:g,ref:_}),[n,r,u.disabled,h,g,_,l]);return J.useEffect(()=>{let e=i._options.shouldUnregister||a;p.current=i.register(n,{...d.current.rules,...Hd(d.current.disabled)?{disabled:d.current.disabled}:{}});let t=(e,t)=>{let n=Q(i._fields,e);n&&n._f&&(n._f.mount=t)};if(t(n,!0),e){let e=jd(Q(a?i._defaultValues:i._options.values||i._defaultValues,n,Q(i._options.defaultValues,n,d.current.defaultValue)));Wd(i._defaultValues,n,e),zd(Q(i._formValues,n))&&Wd(i._formValues,n,e)}if(!c&&i.register(n),f.current){let e=Q(i._fields,n);e&&e._f&&(e._f.ref=f.current)}return()=>{(c?e&&!i._state.action:e)?i.unregister(n):t(n,!1)}},[n,i,c,a]),J.useEffect(()=>{i._setDisabledField({disabled:r,name:n})},[r,n,i]),J.useMemo(()=>({field:v,formState:u,fieldState:m}),[v,u,m])}var rf=e=>e.render(nf(e)),af=()=>{if(typeof crypto<`u`&&crypto.randomUUID)return crypto.randomUUID();let e=typeof performance>`u`?Date.now():performance.now()*1e3;return`xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx`.replace(/[xy]/g,t=>{let n=(Math.random()*16+e)%16|0;return(t==`x`?n:n&3|8).toString(16)})},of=(e,t,n={})=>n.shouldFocus||zd(n.shouldFocus)?n.focusName||`${e}.${zd(n.focusIndex)?t:n.focusIndex}.`:``,sf=e=>({isOnSubmit:!e||e===Nd.onSubmit,isOnBlur:e===Nd.onBlur,isOnChange:e===Nd.onChange,isOnAll:e===Nd.all,isOnTouch:e===Nd.onTouched}),cf=(e,t,n)=>{if(n)return!1;if(t.watchAll||t.watch.has(e))return!0;for(let n of t.watch)if(e.startsWith(n)&&e.charAt(n.length)===`.`)return!0;return!1},lf=(e,t,n,r)=>{for(let i of n||Object.keys(e)){let n=Q(e,i);if(n){let{_f:e,...a}=n;if(e){if(e.refs&&e.refs[0]&&t(e.refs[0],i)&&!r||e.ref&&t(e.ref,e.name)&&!r)return!0;if(lf(a,t))break}else if(Ed(a)&&lf(a,t))break}}},uf=(e,t,n)=>{let r=Q(e,n),i=Array.isArray(r)?r:[];return Wd(i,Fd,t[n]),Wd(e,n,i),e},df=e=>Ed(e)&&!Object.keys(e).length,ff=e=>{if(!Ad)return!1;let t=e?e.ownerDocument:0;return e instanceof(t&&t.defaultView?t.defaultView.HTMLElement:HTMLElement)},pf=e=>e.type===`radio`,mf=e=>e instanceof RegExp,hf=(e,t,n,r,i)=>t?{...n[e],types:{...n[e]&&n[e].types?n[e].types:{},[r]:i||!0}}:{},gf={value:!1,isValid:!1},_f={value:!0,isValid:!0},vf=e=>{if(Array.isArray(e)){if(e.length>1){let t=e.filter(e=>e&&e.checked&&!e.disabled).map(e=>e.value);return{value:t,isValid:!!t.length}}return e[0].checked&&!e[0].disabled?e[0].attributes&&!zd(e[0].attributes.value)?zd(e[0].value)||e[0].value===``?_f:{value:e[0].value,isValid:!0}:_f:gf}return gf},yf={isValid:!1,value:null},bf=e=>Array.isArray(e)?e.reduce((e,t)=>t&&t.checked&&!t.disabled?{isValid:!0,value:t.value}:e,yf):yf;function xf(e,t,n=`validate`){if(Xd(e)||Array.isArray(e)&&e.every(Xd)||Hd(e)&&!e)return{type:n,message:Xd(e)?e:``,ref:t}}var Sf=e=>Ed(e)&&!mf(e)?e:{value:e,message:``},Cf=async(e,t,n,r,i,a)=>{let{ref:o,refs:s,required:c,maxLength:l,minLength:u,min:d,max:f,pattern:p,validate:m,name:h,valueAsNumber:g,mount:_}=e._f,v=Q(n,h);if(!_||t.has(h))return{};let y=s?s[0]:o,b=e=>{if(i&&y.reportValidity){let t=Hd(e)?``:e||``;s?s.forEach(e=>e.setCustomValidity(t)):y.setCustomValidity(t),y.reportValidity()}},x={},S=pf(o),C=xd(o),w=S||C,T=(g||Sd(o))&&zd(o.value)&&zd(v)||ff(o)&&o.value===``||v===``||Array.isArray(v)&&!v.length,E=hf.bind(null,h,r,x),D=(e,t,n,r=Pd.maxLength,i=Pd.minLength)=>{let a=e?t:n;x[h]={type:e?r:i,message:a,ref:o,...E(e?r:i,a)}};if(a?!Array.isArray(v)||!v.length:c&&(!w&&(T||wd(v))||Hd(v)&&!v||C&&!vf(s).isValid||S&&!bf(s).isValid)){let{value:e,message:t}=Xd(c)?{value:!!c,message:c}:Sf(c);if(e&&(x[h]={type:Pd.required,message:t,ref:y,...E(Pd.required,t)},!r))return b(t),x}if(!T&&(!wd(d)||!wd(f))){let e,t,n=Sf(f),i=Sf(d);if(!wd(v)&&!isNaN(v)){let r=o.valueAsNumber||v&&+v;wd(n.value)||(e=r>n.value),wd(i.value)||(t=rnew Date(new Date().toDateString()+` `+e),s=o.type==`time`,c=o.type==`week`;Xd(n.value)&&v&&(e=s?a(v)>a(n.value):c?v>n.value:r>new Date(n.value)),Xd(i.value)&&v&&(t=s?a(v)+e.value,i=!wd(t.value)&&v.length<+t.value;if((n||i)&&(D(n,e.message,t.message),!r))return b(x[h].message),x}if(p&&!T&&Xd(v)){let{value:e,message:t}=Sf(p);if(mf(e)&&!v.match(e)&&(x[h]={type:Pd.pattern,message:t,ref:o,...E(Pd.pattern,t)},!r))return b(t),x}if(m){if(Ud(m)){let e=xf(await m(v,n),y);if(e&&(x[h]={...e,...E(Pd.validate,e.message)},!r))return b(e.message),x}else if(Ed(m)){let e={};for(let t in m){if(!df(e)&&!r)break;let i=xf(await m[t](v,n),y,t);i&&(e={...i,...E(t,i.message)},b(i.message),r&&(x[h]=e))}if(!df(e)&&(x[h]={ref:y,...e},!r))return x}}return b(!0),x},wf=e=>Array.isArray(e)?e:[e],Tf=(e,t)=>[...e,...wf(t)],Ef=e=>Array.isArray(e)?e.map(()=>void 0):void 0;function Df(e,t,n){return[...e.slice(0,t),...wf(n),...e.slice(t)]}var Of=(e,t,n)=>Array.isArray(e)?(zd(e[n])&&(e[n]=void 0),e.splice(n,0,e.splice(t,1)[0]),e):[],kf=(e,t)=>[...wf(t),...wf(e)],Af=e=>Array.isArray(e)?e.filter(Boolean):[];function jf(e,t){let n=0,r=[...e];for(let e of t)r.splice(e-n,1),n++;return Af(r).length?r:[]}var Mf=(e,t)=>zd(t)?[]:jf(e,wf(t).sort((e,t)=>e-t)),Nf=(e,t,n)=>{[e[t],e[n]]=[e[n],e[t]]};function Pf(e,t){let n=t.slice(0,-1).length,r=0;for(;rId.includes(String(e))))return e;let r=n.length===1?e:Pf(e,n),i=n.length-1,a=n[i];return r&&delete r[a],i!==0&&(Ed(r)&&df(r)||Array.isArray(r)&&Ff(r))&&If(e,n.slice(0,-1)),e}var Lf=(e,t,n)=>(e[t]=n,e);function Rf(e){let t=Kd(),{control:n=t,name:r,keyName:i=`id`,disabled:a,shouldUnregister:o,rules:s}=e,[c,l]=J.useState(n._getFieldArray(r)),u=J.useRef(n._getFieldArray(r).map(af)),d=J.useRef(!1);a||n._names.array.add(r),J.useMemo(()=>!a&&s&&c.length>=0&&n.register(r,s),[n,r,c.length,s,a]),Jd(()=>{if(!a)return n._subjects.array.subscribe({next:({values:e,name:t})=>{if(t===r||!t){let n=Q(e,r);Array.isArray(n)?(l(n),u.current=n.map(af)):t||(l([]),u.current=[])}}}).unsubscribe},[n,r,a]);let f=J.useCallback(e=>{d.current=!0,n._setFieldArray(r,e)},[n,r]);return J.useEffect(()=>{if(a)return;n._state.action=!1,cf(r,n._names)&&n._subjects.state.next({...n._formState});let e=sf(n._options.mode);if(d.current&&(!e.isOnSubmit||n._formState.isSubmitted)&&!sf(n._options.reValidateMode).isOnSubmit&&!e.isOnBlur)if(n._options.resolver)n._runSchema([r]).then(e=>{n._updateIsValidating([r]);let t=Q(e.errors,r),i=Q(n._formState.errors,r),a=i&&(i.type||i.root?.type),o=i&&(i.message||i.root?.message);(i?!t&&a||t&&(a!==t.type||o!==t.message):t&&t.type)&&(t?Ed(t)&&!Object.keys(t).some(e=>!Number.isNaN(+e))?uf(n._formState.errors,{[r]:t},r):Wd(n._formState.errors,r,t):If(n._formState.errors,r),n._subjects.state.next({errors:n._formState.errors}))});else{let e=Q(n._fields,r);e&&e._f&&!(sf(n._options.reValidateMode).isOnSubmit&&sf(n._options.mode).isOnSubmit)&&Cf(e,n._names.disabled,n._formValues,n._options.criteriaMode===Nd.all,n._options.shouldUseNativeValidation,!0).then(e=>!df(e)&&n._subjects.state.next({errors:uf(n._formState.errors,e,r)}))}d.current&&n._subjects.state.next({name:r,values:jd(n._formValues)}),n._names.focus&&lf(n._fields,(e,t)=>{if(n._names.focus&&t.startsWith(n._names.focus)&&e.focus)return e.focus(),1}),n._names.focus=``,n._setValid(),d.current=!1},[c,r,n,a]),J.useEffect(()=>(a||!Q(n._formValues,r)&&n._setFieldArray(r),()=>{if(a)return;let e=!(n._options.shouldUnregister||o);d.current&&e&&n._subjects.state.next({name:r,values:jd(n._formValues)}),e?((e,t)=>{let r=Q(n._fields,e);r&&r._f&&(r._f.mount=t)})(r,!1):n.unregister(r)}),[r,n,i,o,a]),{swap:J.useCallback((e,t)=>{if(a)return;let i=n._getFieldArray(r);Nf(i,e,t),Nf(u.current,e,t),f(i),l(i),n._setFieldArray(r,i,Nf,{argA:e,argB:t},!1)},[f,r,n,a]),move:J.useCallback((e,t)=>{if(a)return;let i=n._getFieldArray(r);Of(i,e,t),Of(u.current,e,t),f(i),l(i),n._setFieldArray(r,i,Of,{argA:e,argB:t},!1)},[f,r,n,a]),prepend:J.useCallback((e,t)=>{if(a)return;let i=wf(jd(e)),o=kf(n._getFieldArray(r),i);n._names.focus=of(r,0,t),u.current=kf(u.current,i.map(af)),f(o),l(o),n._setFieldArray(r,o,kf,{argA:Ef(e)})},[f,r,n,a]),append:J.useCallback((e,t)=>{if(a)return;let i=wf(jd(e)),o=Tf(n._getFieldArray(r),i);n._names.focus=of(r,o.length-1,t),u.current=Tf(u.current,i.map(af)),f(o),l(o),n._setFieldArray(r,o,Tf,{argA:Ef(e)})},[f,r,n,a]),remove:J.useCallback(e=>{if(a)return;let t=Mf(n._getFieldArray(r),e);u.current=Mf(u.current,e),f(t),l(t),!Array.isArray(Q(n._fields,r))&&Wd(n._fields,r,void 0),n._setFieldArray(r,t,Mf,{argA:e})},[f,r,n,a]),insert:J.useCallback((e,t,i)=>{if(a)return;let o=wf(jd(t)),s=Df(n._getFieldArray(r),e,o);n._names.focus=of(r,e,i),u.current=Df(u.current,e,o.map(af)),f(s),l(s),n._setFieldArray(r,s,Df,{argA:e,argB:Ef(t)})},[f,r,n,a]),update:J.useCallback((e,t)=>{if(a)return;let i=jd(t),o=Lf(n._getFieldArray(r),e,i);u.current=[...o].map((t,n)=>!t||n===e?af():u.current[n]),f(o),l([...o]),n._setFieldArray(r,o,Lf,{argA:e,argB:i},!0,!1)},[f,r,n,a]),replace:J.useCallback(e=>{if(a)return;let t=wf(jd(e));u.current=t.map(af),f([...t]),l([...t]),n._setFieldArray(r,[...t],e=>e,{},!0,!1)},[f,r,n,a]),fields:J.useMemo(()=>c.map((e,t)=>({...e,...Hd(a)?{disabled:a}:{},[i]:u.current[t]||af()})),[c,i,a])}}var zf=e=>{let t={};for(let n of Object.keys(e))if(Td(e[n])&&e[n]!==null&&!Cd(e[n])){let r=zf(e[n]);for(let e of Object.keys(r))t[`${n}.${e}`]=r[e]}else t[n]=e[n];return t},Bf=J.createContext(null);Bf.displayName=`HookFormContext`;var Vf=()=>{let e=[];return{get observers(){return e},next:t=>{for(let n of e)n.next&&n.next(t)},subscribe:t=>(e.push(t),{unsubscribe:()=>{e=e.filter(e=>e!==t)}}),unsubscribe:()=>{e=[]}}};function Hf(e,t){let n={};for(let r in e)if(e.hasOwnProperty(r)){let i=e[r],a=t[r];if(i&&Ed(i)&&a){let e=Hf(i,a);Ed(e)&&(n[r]=e)}else e[r]&&(n[r]=a)}return n}var Uf=e=>e.type===`select-multiple`,Wf=e=>pf(e)||xd(e),Gf=e=>ff(e)&&e.isConnected,Kf=e=>{for(let t in e)if(Ud(e[t]))return!0;return!1};function qf(e){return Array.isArray(e)||Ed(e)&&!Kf(e)}function Jf(e){return!!(e&&`_f`in e)}function Yf(e){return Array.isArray(e)?!e.some(e=>!zd(e)):!Object.keys(e).length}function Xf(e,t){Array.isArray(e)?e[t]=void 0:delete e[t]}function Zf(e,t={},n){for(let r in e){let i=e[r],a=n&&n[r];qf(i)&&(!Array.isArray(i)||!Jf(a))?(t[r]=Array.isArray(i)?[]:{},Zf(i,t[r],a),Yf(t[r])&&Xf(t,r)):zd(i)||(t[r]=!0)}return t}function Qf(e,t,n,r){n||=Zf(t,{},r);for(let i in e){let a=e[i],o=r&&r[i];qf(a)&&(!Array.isArray(a)||!Jf(o))?(zd(t)||Qd(n[i])?n[i]=Zf(a,Array.isArray(a)?[]:{},o):Qf(a,wd(t)?{}:t[i],n[i],o),Yf(n[i])&&Xf(n,i)):ef(a,t[i])?Xf(n,i):n[i]=!0}return n}var $f=(e,{valueAsNumber:t,valueAsDate:n,setValueAs:r})=>zd(e)?e:t?e===``?NaN:e&&+e:n&&Xd(e)?new Date(e):r?r(e):e;function ep(e){let t=e.ref;return Sd(t)?t.files:pf(t)?bf(e.refs).value:Uf(t)?[...t.selectedOptions].map(({value:e})=>e):xd(t)?vf(e.refs).value:$f(zd(t.value)?e.ref.value:t.value,e)}var tp=(e,t,n,r)=>{let i={};for(let n of e){let e=Q(t,n);e&&Wd(i,n,e._f)}return{criteriaMode:n,names:[...e],fields:i,shouldUseNativeValidation:r}},np=e=>zd(e)?e:mf(e)?e.source:Ed(e)?mf(e.value)?e.value.source:e.value:e,rp=`AsyncFunction`,ip=e=>{if(!e||!e.validate)return!1;if(Ud(e.validate))return e.validate.constructor.name===rp;if(Ed(e.validate)){for(let t in e.validate)if(e.validate[t].constructor.name===rp)return!0}return!1},ap=e=>e.mount&&(e.required||e.min||e.max||e.maxLength||e.minLength||e.pattern||e.validate);function op(e,t,n){let r=Q(e,n);if(r||Rd(n))return{error:r,name:n};let i=n.split(`.`);for(;i.length;){let r=i.join(`.`),a=Q(t,r),o=Q(e,r);if(a&&!Array.isArray(a)&&n!==r)return{name:n};if(o&&o.type)return{name:r,error:o};if(o&&o.root&&o.root.type)return{name:`${r}.root`,error:o.root};i.pop()}return{name:n}}var sp=(e,t,n,r)=>{n(e);let{name:i,...a}=e,o=Object.keys(a);return!o.length||r&&o.length>=Object.keys(t).length||o.find(e=>t[e]===(!r||Nd.all))},cp=(e,t,n)=>!e||!t||e===t||wf(e).some(e=>e&&(n?e===t||e.startsWith(t+`.`):e.startsWith(t)||t.startsWith(e))),lp=(e,t,n,r,i)=>i.isOnAll?!1:!n&&i.isOnTouch?!(t||e):(n?r.isOnBlur:i.isOnBlur)?!e:!(n?r.isOnChange:i.isOnChange)||e,up=(e,t)=>!Af(Q(e,t)).length&&If(e,t),dp={mode:Nd.onSubmit,reValidateMode:Nd.onChange,shouldFocusError:!0},fp=`form`,pp=(e,t)=>{for(let n in e)n in t||delete e[n];Object.assign(e,t)},mp={submitCount:0,isDirty:!1,isReady:!1,isValidating:!1,isSubmitted:!1,isSubmitting:!1,isSubmitSuccessful:!1,isValid:!1,touchedFields:{},dirtyFields:{},validatingFields:{}};function hp(e={}){let t={...dp,...e},n={...jd(mp),isLoading:Ud(t.defaultValues),errors:t.errors||{},disabled:t.disabled||!1},r={},i=(Ed(t.defaultValues)||Ed(t.values))&&jd(t.defaultValues||t.values)||{},a=t.shouldUnregister?{}:jd(i),o={action:!1,mount:!1,watch:!1,keepIsValid:!1},s={mount:new Set,disabled:new Set,unMount:new Set,array:new Set,watch:new Set,registerName:new Set},c={},l={},u=0,d=sf(t.mode),f=sf(t.reValidateMode),p={isDirty:!1,dirtyFields:!1,validatingFields:!1,touchedFields:!1,isValidating:!1,isValid:!1,errors:!1},m={...p},h={...m},g={array:Vf(),state:Vf()},_=0,v=t.criteriaMode===Nd.all,y=(e,t)=>n=>{clearTimeout(l[e]),l[e]=setTimeout(t,n)},b=async e=>{if(!o.keepIsValid&&!t.disabled&&(m.isValid||h.isValid||e)){let e=++_,i;t.resolver?(i=df((await A()).errors),e===_&&x()):i=await ne({fields:r,onlyCheckValid:!0,eventType:Md.VALID}),e===_&&i!==n.isValid&&g.state.next({isValid:i})}},x=(e,r)=>{!t.disabled&&(m.isValidating||m.validatingFields||h.isValidating||h.validatingFields)&&((e||Array.from(s.mount)).forEach(e=>{e&&(r?Wd(n.validatingFields,e,r):If(n.validatingFields,e))}),g.state.next({validatingFields:n.validatingFields,isValidating:!df(n.validatingFields)}))},S=()=>{n.dirtyFields=Qf(i,a,void 0,r)},C=(e,i=[],s,c,l=!0,u=!0)=>{if(c&&s&&!t.disabled){if(o.action=!0,u&&Array.isArray(Q(r,e))){let t=s(Q(r,e),c.argA,c.argB);l&&Wd(r,e,t)}if(u&&Array.isArray(Q(n.errors,e))){let t=s(Q(n.errors,e),c.argA,c.argB);l&&Wd(n.errors,e,t),up(n.errors,e)}if((m.touchedFields||h.touchedFields)&&u&&Array.isArray(Q(n.touchedFields,e))){let t=s(Q(n.touchedFields,e),c.argA,c.argB);l&&Wd(n.touchedFields,e,t)}(m.dirtyFields||h.dirtyFields)&&S(),g.state.next({name:e,isDirty:M(e,i),dirtyFields:n.dirtyFields,errors:n.errors,isValid:n.isValid})}else Wd(a,e,i)},w=(e,t)=>{Wd(n.errors,e,t),n.errors={...n.errors},g.state.next({errors:n.errors})},T=e=>{n.errors=e,g.state.next({errors:n.errors,isValid:!1})},E=e=>{let t=Rd(e)?[e]:Vd(e),n=a,r=i;for(let e=0;e{let d=Q(r,t);if(d){if(E(t))return;let r=zd(Q(a,t)),f=Q(a,t,zd(l)?Q(i,t):l);zd(f)||u&&u.defaultChecked||c?Wd(a,t,c?f:ep(d._f)):ie(t,f),o.mount&&!o.action&&(b(),r&&n.isDirty&&(m.isDirty||h.isDirty)&&(M()||(n.isDirty=!1,g.state.next({...n}))),e.shouldUnregister&&r&&!zd(Q(a,t))&&cf(t,s)&&(o.watch=!0))}},O=(e,o,s,c,l)=>{let u=!1,d=!1,f={name:e};if(!t.disabled||c===!0){if(!s||c){let t=ef(Q(i,e),o);(m.isDirty||h.isDirty)&&(d=n.isDirty,n.isDirty=f.isDirty=!t||M(),u=d!==f.isDirty),d=!!Q(n.dirtyFields,e),t===n.isDirty?t?If(n.dirtyFields,e):Wd(n.dirtyFields,e,!0):pp(n.dirtyFields,Qf(i,a,void 0,r)),f.dirtyFields=n.dirtyFields,u||=(m.dirtyFields||h.dirtyFields)&&d!==!t}if(s){let t=Q(n.touchedFields,e);t||(Wd(n.touchedFields,e,s),f.touchedFields=n.touchedFields,u||=(m.touchedFields||h.touchedFields)&&t!==s)}u&&l&&g.state.next(f)}return u?f:{}},k=(e,r,i,a)=>{let o=Q(n.errors,e),s=(m.isValid||h.isValid)&&Hd(r)&&n.isValid!==r;if(t.delayError&&i?(c[e]=y(e,()=>w(e,i)),c[e](t.delayError)):(clearTimeout(l[e]),delete c[e],i?Wd(n.errors,e,i):If(n.errors,e),n.errors={...n.errors}),(i?!ef(o,i):o)||!df(a)||s){let t={...a,...s&&Hd(r)?{isValid:r}:{},errors:n.errors,name:e};n={...n,...t},g.state.next(t)}},A=async e=>(x(e,!0),await t.resolver(a,t.context,tp(e||s.mount,r,t.criteriaMode,t.shouldUseNativeValidation))),ee=async e=>{let{errors:t}=await A(e);if(x(e),e){for(let r of e){let e=Q(t,r);e?s.array.has(r)&&Ed(e)&&!Object.keys(e).some(e=>!Number.isNaN(Number(e)))?uf(n.errors,{[r]:e},r):Wd(n.errors,r,e):If(n.errors,r)}n.errors={...n.errors}}else n.errors=t;return t},te=async({name:t,eventType:r})=>{if(e.validate){let i=await e.validate({formValues:a,formState:n,name:t,eventType:r});if(Ed(i))for(let e in i){let t=i[e];t&&pe(`${fp}.${e}`,{message:Xd(t.message)?t.message:``,type:t.type||Pd.validate})}else Xd(i)||!i?pe(fp,{message:i||``,type:Pd.validate}):fe(fp);return i}return!0},ne=async({fields:r,onlyCheckValid:i,name:o,eventType:c,context:l={valid:!0,runRootValidation:!1}})=>{if(e.validate&&(l.runRootValidation=!0,!await te({name:o,eventType:c})&&(l.valid=!1,i)))return l.valid;for(let o in r){let u=r[o];if(u){let{_f:r,...d}=u;if(r){let o=s.array.has(r.name),c=u._f&&ip(u._f),d=m.validatingFields||m.isValidating||h.validatingFields||h.isValidating;c&&d&&x([r.name],!0);let f=await Cf(u,s.disabled,a,v,t.shouldUseNativeValidation&&!i,o);if(c&&d&&x([r.name]),f[r.name]&&(l.valid=!1,i)||(!i&&(Q(f,r.name)?o?uf(n.errors,f,r.name):Wd(n.errors,r.name,f[r.name]):If(n.errors,r.name)),e.shouldUseNativeValidation&&f[r.name]))break}!df(d)&&await ne({context:l,onlyCheckValid:i,fields:d,name:o,eventType:c})}}return l.valid},j=()=>{for(let e of s.unMount){let t=Q(r,e);t&&(t._f.refs?t._f.refs.every(e=>!Gf(e)):!Gf(t._f.ref))&&he(e)}s.unMount=new Set},M=(e,t)=>(e&&t&&Wd(a,e,t),!ef(o.mount?a:i,i)),N=(e,t,n)=>Zd(e,s,{...o.mount?a:zd(t)?i:Xd(e)?{[e]:t}:t},n,t),re=e=>Af(Q(o.mount?a:i,e,t.shouldUnregister?Q(i,e,[]):[])),ie=(e,t,n={},i=!1,o=!1)=>{let s=Q(r,e),c=t;if(s){let n=s._f;n&&(!n.disabled&&Wd(a,e,$f(t,n)),c=ff(n.ref)&&wd(t)?``:t,Uf(n.ref)?[...n.ref.options].forEach(e=>e.selected=c.includes(e.value)):n.refs?xd(n.ref)?n.refs.forEach(e=>{(!e.defaultChecked||!e.disabled)&&(e.checked=Array.isArray(c)?!!c.find(t=>t===e.value):c===e.value||!!c)}):n.refs.forEach(e=>e.checked=e.value===c):Sd(n.ref)?n.ref.value=``:(n.ref.value=c,!n.ref.type&&!o&&g.state.next({name:e,values:i?a:jd(a)})))}(n.shouldDirty||n.shouldTouch)&&O(e,c,n.shouldTouch,n.shouldDirty,!o),n.shouldValidate&&ue(e,{delayError:n.delayError})},ae=(e,t,n,i=!1,a=!1)=>{for(let o in t){if(!t.hasOwnProperty(o))return;let c=t[o],l=e+`.`+o,u=Q(r,l);(s.array.has(e)||Ed(c)||u&&!u._f)&&!Cd(c)?ae(l,c,n,i,a):ie(l,c,n,i,a)}},oe=(e,t,i,c,l=!1)=>{let u=Q(r,e),d=s.array.has(e),f=c?t:jd(t),p=ef(Q(a,e),f);if(p||Wd(a,e,f),d)g.array.next({name:e,values:c?a:jd(a)}),(m.isDirty||m.dirtyFields||h.isDirty||h.dirtyFields)&&i.shouldDirty&&(S(),l||g.state.next({name:e,dirtyFields:n.dirtyFields,isDirty:M(e,f)}));else{let t=Array.isArray(f)&&!f.length||df(f);!u||u._f||wd(f)||t?ie(e,f,i,c,l):ae(e,f,i,c,l)}if(!p&&!l){let t=cf(e,s),r=c?a:jd(a);g.state.next({...t&&n,name:o.mount||t?e:void 0,values:r})}},P=(e,t,n={})=>oe(e,t,n,!1),se=(e,t={})=>{let r=Ud(e)?e(a):e;if(!ef(a,r)){a={...a,...r};let e=zf(r);for(let n of s.mount)n in e&&oe(n,e[n],t,!0,!0);g.state.next({...n,name:void 0,type:void 0,...u?{values:a}:{}}),t.shouldValidate&&b()}},ce=async i=>{o.mount=!0;let l=i.target,p=l.name,_=!0,y=Q(r,p),S=e=>{_=Number.isNaN(e)||Cd(e)&&isNaN(e.getTime())||ef(e,Q(a,p,e))};if(y){let o,C,w=l.type?ep(y._f):Dd(i),T=i.type===Md.BLUR||i.type===Md.FOCUS_OUT,E=!ap(y._f)&&!e.validate&&!t.resolver&&!Q(n.errors,p)&&!y._f.deps,D=E||lp(T,Q(n.touchedFields,p),n.isSubmitted,f,d),ee=cf(p,s,T);if(Wd(a,p,w),T){if(!l||!l.readOnly){y._f.onBlur&&y._f.onBlur(i);let e=c[p];e&&e(0)}}else y._f.onChange&&y._f.onChange(i);let j=O(p,w,T),M=!df(j)||ee;if(!T&&g.state.next({name:p,type:i.type,...u?{values:jd(a)}:{}}),D)return(!E||!n.isValid)&&(m.isValid||h.isValid)&&(t.mode===`onBlur`?T&&b():T||b()),M&&g.state.next({name:p,...ee?{}:j});if(!t.resolver&&e.validate&&await te({name:p,eventType:i.type}),!T&&ee&&g.state.next({...n}),t.resolver){let{errors:e}=await A([p]);if(x([p]),S(w),!_){!df(j)&&g.state.next(j);return}let t=op(n.errors,r,p),i=op(e,r,t.name||p);o=i.error,p=i.name,C=df(e)}else x([p],!0),o=(await Cf(y,s.disabled,a,v,t.shouldUseNativeValidation))[p],x([p]),S(w),_&&(o?C=!1:(m.isValid||h.isValid)&&(C=await ne({fields:r,onlyCheckValid:!0,name:p,eventType:i.type})));_&&(y._f.deps&&(!Array.isArray(y._f.deps)||y._f.deps.length>0)&&ue(y._f.deps),k(p,C,o,j))}},le=(e,t)=>{if(Q(n.errors,t)&&e.focus)return e.focus(),1},ue=async(e,i={})=>{let a,o,u=wf(e);if(t.resolver){let t=await ee(zd(e)?e:u);a=df(t),o=e?!u.some(e=>Q(t,e)):a}else e?(o=(await Promise.all(u.map(async e=>{let t=Q(r,e);return await ne({fields:t&&t._f?{[e]:t}:t,eventType:Md.TRIGGER})}))).every(Boolean),!(!o&&!n.isValid)&&b()):o=a=await ne({fields:r,name:e,eventType:Md.TRIGGER});if(i.delayError&&t.delayError&&Xd(e)){let r=Q(n.errors,e);r?(If(n.errors,e),c[e]=y(e,()=>w(e,r)),c[e](t.delayError)):(clearTimeout(l[e]),delete c[e])}return g.state.next({...!Xd(e)||(m.isValid||h.isValid)&&a!==n.isValid?{}:{name:e},...t.resolver||!e?{isValid:a}:{},errors:n.errors}),i.shouldFocus&&!o&&lf(r,le,e?u:s.mount),o},de=(e,t)=>{let r={...o.mount?a:i};return t&&(r=Hf(t.dirtyFields?n.dirtyFields:n.touchedFields,r)),zd(e)?r:Xd(e)?Q(r,e):e.map(e=>Q(r,e))},F=(e,t)=>({invalid:!!Q((t||n).errors,e),isDirty:!!Q((t||n).dirtyFields,e),error:Q((t||n).errors,e),isValidating:!!Q(n.validatingFields,e),isTouched:!!Q((t||n).touchedFields,e)}),fe=e=>{let t=e?wf(e):void 0;t?.forEach(e=>If(n.errors,e)),t?t.forEach(e=>{g.state.next({name:e,errors:n.errors})}):(n.errors={},g.state.next({errors:n.errors}))},pe=(e,t,i)=>{let a=(Q(r,e,{_f:{}})._f||{}).ref,{ref:o,message:s,type:c,...l}=Q(n.errors,e)||{};Wd(n.errors,e,{...l,...t,ref:a}),g.state.next({name:e,errors:n.errors,isValid:!1}),i&&i.shouldFocus&&a&&a.focus&&a.focus()},I=(e,t)=>{if(Ud(e)){u++;let{unsubscribe:n}=g.state.subscribe({next:n=>`values`in n&&e(n.values||N(void 0,t),n)}),r=!1;return{unsubscribe:()=>{r||(r=!0,u--,n())}}}return N(e,t,!0)},me=e=>{let t=!!e.formState?.values;t&&u++;let{unsubscribe:r}=g.state.subscribe({next:t=>{if(cp(e.name,t.name,e.exact)&&sp(t,e.formState||m,Te,e.reRenderRoot)){let r={...a};e.callback({values:r,...n,...t,defaultValues:i})}}});if(!t)return r;let o=!1;return()=>{o||(o=!0,u--,r())}},L=e=>(o.mount=!0,h={...h,...e.formState},me({...e,formState:{...p,...e.formState}})),he=(e,o={})=>{for(let c of e?wf(e):s.mount)s.mount.delete(c),s.array.delete(c),o.keepValue||(If(r,c),If(a,c)),!o.keepError&&If(n.errors,c),!o.keepDirty&&If(n.dirtyFields,c),!o.keepTouched&&If(n.touchedFields,c),!o.keepIsValidating&&If(n.validatingFields,c),!t.shouldUnregister&&!o.keepDefaultValue&&If(i,c);g.state.next({values:jd(a)}),g.state.next({...n,...o.keepDirty?{isDirty:M()}:{}}),!o.keepIsValid&&b()},ge=({disabled:e,name:t})=>{if(Hd(e)&&o.mount||e||s.disabled.has(t)){let n=s.disabled.has(t)!==!!e;e?s.disabled.add(t):s.disabled.delete(t),n&&o.mount&&!o.action&&b()}},_e=(e,n={})=>{let a=Q(r,e),c=Hd(n.disabled)||Hd(t.disabled),l=!s.registerName.has(e)&&a&&a._f&&!a._f.mount;return Wd(r,e,{...a||{},_f:{...a&&a._f?a._f:{ref:{name:e}},name:e,mount:!0,...n}}),s.mount.add(e),a&&!l?ge({disabled:Hd(n.disabled)?n.disabled:t.disabled,name:e}):D(e,!0,n.value),{...c?{disabled:n.disabled||t.disabled}:{},...t.progressive?{required:!!n.required,min:np(n.min),max:np(n.max),minLength:np(n.minLength),maxLength:np(n.maxLength),pattern:np(n.pattern)}:{},name:e,onChange:ce,onBlur:ce,ref:c=>{if(c){s.registerName.add(e),_e(e,n),s.registerName.delete(e),a=Q(r,e);let t=zd(c.value)&&c.querySelectorAll&&c.querySelectorAll(`input,select,textarea`)[0]||c,o=Wf(t),l=a._f.refs||[];if(o?l.find(e=>e===t):t===a._f.ref)return;let u={...a._f};o?(u.refs=[...l.filter(Gf),t,...Array.isArray(Q(i,e))?[{}]:[]],u.ref={type:t.type,name:e}):(u.ref=t,delete u.refs),Wd(r,e,{_f:u}),D(e,!1,void 0,t)}else a=Q(r,e,{}),a._f&&(a._f.mount=!1),(t.shouldUnregister||n.shouldUnregister)&&!(Od(s.array,e)&&o.action)&&s.unMount.add(e)}}},ve=()=>t.shouldFocusError&&!t.shouldUseNativeValidation&&lf(r,le,s.mount),ye=e=>{Hd(e)&&(g.state.next({disabled:e}),lf(r,(t,n)=>{let i=Q(r,n);i&&(t.disabled=i._f.disabled||e,Array.isArray(i._f.refs)&&i._f.refs.forEach(t=>{t.disabled=i._f.disabled||e}))},0,!1))},be=(e,i)=>async o=>{let c;o&&(o.preventDefault&&o.preventDefault(),o.persist&&o.persist());let l=jd(a);if(g.state.next({isSubmitting:!0}),t.resolver){let{errors:e,values:t}=await A();x(),n.errors=e,l=jd(t)}else await ne({fields:r,eventType:Md.SUBMIT});if(s.disabled.size)for(let e of s.disabled)If(l,e);if(If(n.errors,Fd),df(n.errors)){g.state.next({errors:{}});try{await e(l,o)}catch(e){c=e}}else i&&await i({...n.errors},o),ve(),setTimeout(ve);if(g.state.next({isSubmitted:!0,isSubmitting:!1,isSubmitSuccessful:df(n.errors)&&!c,submitCount:n.submitCount+1,errors:n.errors}),c)throw c},xe=(e,t={})=>{Q(r,e)&&(zd(t.defaultValue)?P(e,jd(Q(i,e))):(P(e,t.defaultValue),Wd(i,e,jd(t.defaultValue))),t.keepTouched||If(n.touchedFields,e),t.keepDirty||(If(n.dirtyFields,e),n.isDirty=t.defaultValue?M(e,jd(Q(i,e))):M()),t.keepError||(If(n.errors,e),m.isValid&&b()),g.state.next({...n}))},Se=(e,c={})=>{let l=e?jd(e):i,u=jd(l),d=df(e),f=u,p=r;if(c.keepDefaultValues||(i=l),!c.keepValues){if(c.keepDirtyValues){let e=new Set([...s.mount,...Object.keys(Qf(i,a,void 0,p))]);for(let t of Array.from(e)){let e=Q(n.dirtyFields,t),r=Q(a,t),i=Q(f,t);e&&!zd(r)?Wd(f,t,r):!e&&!zd(i)&&P(t,i)}}else{if(Ad&&zd(e))for(let e of s.mount){let t=Q(r,e);if(t&&t._f){let e=Array.isArray(t._f.refs)?t._f.refs[0]:t._f.ref;if(ff(e)){let t=e.closest(`form`);if(t){t.reset();break}}}}if(c.keepFieldsRef)for(let e of s.mount)P(e,Q(f,e));else r={}}if(t.shouldUnregister){if(a=c.keepDefaultValues?jd(i):{},c.keepFieldsRef)for(let e of s.mount)Wd(a,e,Q(f,e))}else a=jd(f);g.array.next({values:{...f}}),g.state.next({name:void 0,type:void 0,values:{...f}})}s={mount:c.keepDirtyValues?s.mount:new Set,unMount:new Set,array:new Set,registerName:new Set,disabled:new Set,watch:new Set,watchAll:!1,focus:``},o.mount=!m.isValid||!!c.keepIsValid||!!c.keepDirtyValues||!t.shouldUnregister&&!df(f),o.watch=!!t.shouldUnregister,o.keepIsValid=!!c.keepIsValid,o.action=!1,c.keepErrors||(n.errors={}),g.state.next({submitCount:c.keepSubmitCount?n.submitCount:0,isDirty:d?!1:c.keepDirty?n.isDirty:c.keepValues?M():!!(c.keepDefaultValues&&!ef(e,i)),isSubmitted:c.keepIsSubmitted?n.isSubmitted:!1,dirtyFields:d?{}:c.keepDirtyValues?c.keepDefaultValues&&a?Qf(i,a,void 0,p):n.dirtyFields:c.keepDefaultValues&&e?Qf(i,e,void 0,p):c.keepDirty?n.dirtyFields:{},touchedFields:c.keepTouched?n.touchedFields:{},errors:c.keepErrors?n.errors:{},isSubmitSuccessful:c.keepIsSubmitSuccessful?n.isSubmitSuccessful:!1,isSubmitting:!1,defaultValues:i})},Ce=(e,n)=>Se(Ud(e)?e(a):e,{...t.resetOptions,...n}),we=(e,t={})=>{let n=Q(r,e),i=n&&n._f;if(i){let e=i.refs?i.refs[0]:i.ref;e.focus&&setTimeout(()=>{e.focus(),t.shouldSelect&&Ud(e.select)&&e.select()})}},Te=e=>{let{name:t,type:r,values:i,...a}=e;n={...n,...a}},Ee={control:{register:_e,unregister:he,getFieldState:F,handleSubmit:be,setError:pe,_subscribe:me,_runSchema:A,_updateIsValidating:x,_focusError:ve,_getWatch:N,_getDirty:M,_setValid:b,_setFieldArray:C,_setDisabledField:ge,_setErrors:T,_getFieldArray:re,_reset:Se,_resetDefaultValues:()=>Ud(t.defaultValues)&&t.defaultValues().then(e=>{Ce(e,t.resetOptions),g.state.next({isLoading:!1})}),_removeUnmounted:j,_disableForm:ye,_subjects:g,_proxyFormState:m,get _fields(){return r},get _formValues(){return a},get _state(){return o},set _state(e){o=e},get _defaultValues(){return i},get _names(){return s},set _names(e){s=e},get _formState(){return n},get _options(){return t},set _options(e){t={...t,...e},d=sf(t.mode),f=sf(t.reValidateMode)}},subscribe:L,trigger:ue,register:_e,handleSubmit:be,watch:I,setValue:P,setValues:se,getValues:de,reset:Ce,resetField:xe,resetDefaultValues:(e,t={})=>{if(i=jd(e),!t.keepDirty){let e=Qf(i,a,void 0,r);n.dirtyFields=e,n.isDirty=!df(e)}t.keepIsValid||b(),g.state.next({...n,defaultValues:i})},clearErrors:fe,unregister:he,setError:pe,setFocus:we,getFieldState:F};return{...Ee,formControl:Ee}}function gp(e={}){let t=J.useRef(void 0),n=J.useRef(void 0),r=J.useRef(e.formControl),[i,a]=J.useState(()=>({...jd(mp),isLoading:Ud(e.defaultValues),errors:e.errors||{},disabled:e.disabled||!1,defaultValues:Ud(e.defaultValues)?void 0:e.defaultValues}));if(!t.current||e.formControl&&r.current!==e.formControl)if(r.current=e.formControl,e.formControl)t.current={...e.formControl,formState:i},e.defaultValues&&!Ud(e.defaultValues)&&e.formControl.reset(e.defaultValues,e.resetOptions);else{let{formControl:n,...r}=hp(e);t.current={...r,formState:i}}let o=t.current.control;return o._options=e,Jd(()=>{let e=o._subscribe({formState:o._proxyFormState,callback:()=>a({...o._formState,defaultValues:o._defaultValues}),reRenderRoot:!0});return a(e=>({...e,isReady:!0})),o._formState.isReady=!0,e},[o]),J.useEffect(()=>o._disableForm(e.disabled),[o,e.disabled]),J.useEffect(()=>{e.mode&&(o._options.mode=e.mode),e.reValidateMode&&(o._options.reValidateMode=e.reValidateMode)},[o,e.mode,e.reValidateMode]),J.useEffect(()=>{e.errors&&(o._setErrors(e.errors),o._focusError())},[o,e.errors]),J.useEffect(()=>{e.shouldUnregister&&o._subjects.state.next({values:o._getWatch()})},[o,e.shouldUnregister]),J.useEffect(()=>{if(o._proxyFormState.isDirty){let e=o._getDirty();e!==i.isDirty&&o._subjects.state.next({isDirty:e})}},[o,i.isDirty]),J.useEffect(()=>{e.values&&!ef(e.values,n.current)?(o._reset(e.values,{keepFieldsRef:!0,...o._options.resetOptions}),o._options.resetOptions?.keepIsValid||o._setValid(),n.current=e.values,a(e=>({...e}))):o._resetDefaultValues()},[o,e.values]),J.useEffect(()=>{o._state.mount||(o._setValid(),o._state.mount=!0),o._state.watch&&(o._state.watch=!1,o._subjects.state.next({...o._formState})),o._removeUnmounted()}),t.current.formState=J.useMemo(()=>qd(i,o),[o,i]),t.current}var _p=(e,t,n)=>{if(e&&`reportValidity`in e){let r=Q(n,t);e.setCustomValidity(r&&r.message||``),e.reportValidity()}},vp=(e,t)=>{for(let n in t.fields){let r=t.fields[n];r&&r.ref&&`reportValidity`in r.ref?_p(r.ref,n,e):r&&r.refs&&r.refs.forEach(t=>_p(t,n,e))}},yp=(e,t)=>{t.shouldUseNativeValidation&&vp(e,t);let n={};for(let r in e){let i=Q(t.fields,r),a=Object.assign(e[r]||{},{ref:i&&i.refs?i.refs[0]:i&&i.ref});if(bp(t.names||Object.keys(e),r)){let e=Object.assign({},Q(n,r));Wd(e,`root`,a),Wd(n,r,e)}else Wd(n,r,a)}return n},bp=(e,t)=>{let n=xp(t).replace(/[.*+?^${}()|\\]/g,`\\$&`);return e.some(e=>xp(e).match(`^${n}\\.\\d+`))};function xp(e){return e.replace(/[\[\]]/g,``)}function Sp(){return Sp=Object.assign?Object.assign.bind():function(e){for(var t=1;t0){var s=r.errors.reduce(function(e,t){return t.length()=>{r.current&&clearTimeout(r.current)},a=[],e[0]=i,e[1]=a):(i=e[0],a=e[1]),(0,J.useEffect)(i,a);let o;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(o=async e=>{await navigator.clipboard.writeText(e),n(!0),r.current&&clearTimeout(r.current),r.current=setTimeout(()=>n(!1),Op)},e[2]=o):o=e[2];let s=o,c;return e[3]===t?c=e[4]:(c={copied:t,copy:s},e[3]=t,e[4]=c),c}var Ap={bin:`text-tactical-cyan font-semibold`,flag:`text-tactical-amber`,value:`text-foreground`,comment:`text-muted-foreground italic`,variable:`text-tactical-green font-semibold`};function jp(e){return e.map(e=>e.parts.map(e=>e.value).join(``)).join(` -`)}function Ap(e){let t=(0,X.c)(18),{commands:n}=e,[r,i]=(0,q.useState)(!1),{copied:a,copy:o}=Dp();if(n.length===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>i(Mp),t[0]=s):s=t[0];let c,l;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,J.jsx)(Bo,{className:`size-3.5`}),l=(0,J.jsx)(`span`,{children:`AWS CLI`}),t[1]=c,t[2]=l):(c=t[1],l=t[2]);let u=r&&`rotate-180`,d;t[3]===u?d=t[4]:(d=L(`ml-auto size-3.5 transition-transform`,u),t[3]=u,t[4]=d);let f;t[5]===d?f=t[6]:(f=(0,J.jsx)(Ve,{className:d}),t[5]=d,t[6]=f);let p;t[7]!==r||t[8]!==f?(p=(0,J.jsxs)(`button`,{type:`button`,onClick:s,className:`flex w-full items-center gap-2 px-3 py-2 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground`,"aria-expanded":r,children:[c,l,f]}),t[7]=r,t[8]=f,t[9]=p):p=t[9];let m;t[10]!==n||t[11]!==a||t[12]!==o||t[13]!==r?(m=r&&(0,J.jsxs)(`div`,{className:`border-t border-border`,children:[(0,J.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-3 py-1.5`,children:[(0,J.jsx)(`span`,{className:`text-[0.625rem] text-muted-foreground`,children:n.length>1?`${n.length} commands`:`command`}),(0,J.jsxs)(ot,{type:`button`,variant:`ghost`,size:`xs`,onClick:async()=>await o(kp(n)),children:[a?(0,J.jsx)(Be,{className:`size-2.5`}):(0,J.jsx)(et,{className:`size-2.5`}),a?`Copied`:`Copy`]})]}),(0,J.jsx)(`div`,{className:`overflow-x-auto p-3`,children:n.map((e,t)=>(0,J.jsxs)(`div`,{children:[n.length>1&&(0,J.jsx)(`div`,{className:`mb-1 text-[0.625rem] font-medium text-muted-foreground`,children:e.label}),(0,J.jsx)(`pre`,{className:`font-mono text-xs/relaxed`,children:(0,J.jsx)(`code`,{children:e.parts.map(jp)})}),t0}function Fp(e){let t=new Map;for(let n of e){let e=n.InstanceType;!e||t.has(e)||t.set(e,{name:e,gpu:n.GpuInfo?.Gpus?.[0]})}return[...t.values()].toSorted((e,t)=>e.name.localeCompare(t.name))}function Ip(e){let t=(0,X.c)(6),{entry:n,availability:r}=e,i=n.gpu?.MemoryInfo?.SizeInMiB,a;t[0]===i?a=t[1]:(a=i!==void 0&&` — ${Ae(i)} GPU`,t[0]=i,t[1]=a);let o=r!==void 0&&` (${r} available)`,s;return t[2]!==n.name||t[3]!==a||t[4]!==o?(s=(0,J.jsxs)(J.Fragment,{children:[n.name,a,o]}),t[2]=n.name,t[3]=a,t[4]=o,t[5]=s):s=t[5],s}function Lp(e){let t=(0,X.c)(33),{instanceTypes:n,value:r,onValueChange:i,availabilityByType:a,disabled:o,id:s,className:c,"aria-invalid":l}=e,u,d;if(t[0]!==n){let e=Fp(n);u=e.filter(zp),d=e.filter(Rp),t[0]=n,t[1]=u,t[2]=d}else u=t[1],d=t[2];let f;t[3]!==u||t[4]!==d?(f={standardEntries:u,gpuEntries:d},t[3]=u,t[4]=d,t[5]=f):f=t[5];let{standardEntries:p,gpuEntries:m}=f,h=p.length>0&&m.length>0,g;t[6]===i?g=t[7]:(g=e=>i(e??``),t[6]=i,t[7]=g);let _;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,J.jsx)(Ue,{}),t[8]=_):_=t[8];let v;t[9]!==l||t[10]!==c||t[11]!==s?(v=(0,J.jsx)(Ze,{"aria-invalid":l,className:c,id:s,children:_}),t[9]=l,t[10]=c,t[11]=s,t[12]=v):v=t[12];let y;t[13]!==a||t[14]!==h||t[15]!==p?(y=p.length>0&&(0,J.jsxs)(Xe,{children:[h&&(0,J.jsx)(He,{children:`Standard`}),p.map(e=>(0,J.jsx)(Ke,{value:e.name,children:(0,J.jsx)(Ip,{availability:a?.[e.name],entry:e})},e.name))]}),t[13]=a,t[14]=h,t[15]=p,t[16]=y):y=t[16];let b;t[17]===h?b=t[18]:(b=h&&(0,J.jsx)(Ye,{}),t[17]=h,t[18]=b);let x;t[19]!==a||t[20]!==m||t[21]!==h?(x=m.length>0&&(0,J.jsxs)(Xe,{children:[h&&(0,J.jsx)(He,{children:`GPU-Accelerated`}),m.map(e=>(0,J.jsx)(Ke,{value:e.name,children:(0,J.jsx)(Ip,{availability:a?.[e.name],entry:e})},e.name))]}),t[19]=a,t[20]=m,t[21]=h,t[22]=x):x=t[22];let S;t[23]!==y||t[24]!==b||t[25]!==x?(S=(0,J.jsxs)(Je,{children:[y,b,x]}),t[23]=y,t[24]=b,t[25]=x,t[26]=S):S=t[26];let C;return t[27]!==o||t[28]!==S||t[29]!==g||t[30]!==v||t[31]!==r?(C=(0,J.jsxs)(Qe,{disabled:o,onValueChange:g,value:r,children:[v,S]}),t[27]=o,t[28]=S,t[29]=g,t[30]=v,t[31]=r,t[32]=C):C=t[32],C}function Rp(e){return e.gpu}function zp(e){return!e.gpu}function Bp(e){let t=(0,X.c)(12),{title:n,subtitle:r,actions:i}=e,a;t[0]===n?a=t[1]:(a=(0,J.jsx)(`h1`,{className:`text-3xl`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=r&&(0,J.jsx)(`p`,{className:`mt-1 text-muted-foreground`,children:r}),t[2]=r,t[3]=o);let s;t[4]!==a||t[5]!==o?(s=(0,J.jsxs)(`div`,{children:[a,o]}),t[4]=a,t[5]=o,t[6]=s):s=t[6];let c;t[7]===i?c=t[8]:(c=i&&(0,J.jsx)(`div`,{children:i}),t[7]=i,t[8]=c);let l;return t[9]!==s||t[10]!==c?(l=(0,J.jsxs)(`div`,{className:`mb-6 flex items-start justify-between`,children:[s,c]}),t[9]=s,t[10]=c,t[11]=l):l=t[11],l}function Vp(e){let{open:t,defaultOpen:n,onOpenChange:r,disabled:i}=e,[a,o]=On({controlled:t,default:n,name:`Collapsible`,state:`open`}),{mounted:s,setMounted:c,transitionStatus:l}=Tn(a,!0,!0),u=ht(),[d,f]=q.useState(),p=d??u,m=at(e=>{let t=!a,n=wt(vt,e.nativeEvent);r(t,n),!n.isCanceled&&o(t)});return q.useMemo(()=>({disabled:i,handleTrigger:m,mounted:s,open:a,panelId:p,setMounted:c,setOpen:o,setPanelIdState:f,transitionStatus:l}),[i,m,s,a,p,c,o,f,l])}var Hp=q.createContext(void 0);function Up(){let e=q.useContext(Hp);if(e===void 0)throw Error(Te(15));return e}var Wp=function(e){return e.open=`data-open`,e.closed=`data-closed`,e[e.startingStyle=wn.startingStyle]=`startingStyle`,e[e.endingStyle=wn.endingStyle]=`endingStyle`,e}({}),Gp=function(e){return e.panelOpen=`data-panel-open`,e}({}),Kp={[Wp.open]:``},qp={[Wp.closed]:``},Jp={open(e){return e?{[Gp.panelOpen]:``}:null}},Yp={open(e){return e?Kp:qp},...En},Xp=q.forwardRef(function(e,t){let{render:n,className:r,defaultOpen:i=!1,disabled:a=!1,onOpenChange:o,open:s,style:c,...l}=e,u=at(o),d=Vp({open:s,defaultOpen:i,onOpenChange:u,disabled:a}),f=q.useMemo(()=>({open:d.open,disabled:d.disabled,transitionStatus:d.transitionStatus}),[d.open,d.disabled,d.transitionStatus]),p=q.useMemo(()=>({...d,onOpenChange:u,state:f}),[d,u,f]),m=Se(`div`,e,{state:f,ref:t,props:l,stateAttributesMapping:Yp});return(0,J.jsx)(Hp.Provider,{value:p,children:m})}),Zp={...Jp,...En},Qp=q.forwardRef(function(e,t){let{panelId:n,open:r,handleTrigger:i,state:a,disabled:o}=Up(),{className:s,disabled:c=o,render:l,nativeButton:u=!0,style:d,...f}=e,{getButtonProps:p,buttonRef:m}=it({disabled:c,focusableWhenDisabled:!0,native:u});return Se(`button`,e,{state:a,ref:[t,m],props:[{"aria-controls":r?n:void 0,"aria-expanded":r,onClick:i},f,p],stateAttributesMapping:Zp})}),$p={height:void 0,width:void 0};function em(e){let{externalRef:t,hiddenUntilFound:n,id:r,keepMounted:i,mounted:a,onOpenChange:o,open:s,setMounted:c,setOpen:l,transitionStatus:u}=e,d=q.useRef(null),f=q.useRef(null),[p,m]=q.useState($p),h=q.useRef($p),g=q.useRef(!1),_=q.useRef(s),v=q.useRef(!1),[y,b]=q.useState(!1),x=q.useRef(null),S=ye(t,d),C=Dn({mounted:a,open:s}),w=yn(d,!1,!1),T=!s&&!a,E=y?`idle`:u,D=s&&(_.current||v.current),O=!s&&a&&f.current===`css-animation`&&p.height===void 0&&p.width===void 0?h.current:p,ee=n&&T&&f.current!==`css-animation`,k=at((e,t=!0)=>{t&&(h.current=e),m(e)}),te=at(()=>{x.current?.(),x.current=null}),ne=at(e=>{te(),x.current=()=>{x.current=null,e()}}),re=at(()=>{s&&a&&f.current===`css-animation`&&(v.current=!0)});V(()=>{!y||u===`starting`||b(!1)},[y,u]),q.useEffect(()=>()=>{re(),te()},[re,te]),V(()=>{let e=d.current;if(!e)return;!s&&x.current&&te();let t=nm(e,D);if(f.current=t,s&&u===`idle`&&_.current&&t===`css-animation`){h.current=tm(e);return}if(s&&u===`starting`){let n=g.current;if(g.current=!1,t===`none`){k(tm(e)),b(!0);return}if(t===`css-transition`){let t=am(e);if(k(tm(e)),!n)return t;let r=im(e,`transition-duration`,`0s`);return ne(r),b(!0),t}if(t===`css-animation`){if(k(tm(e)),!n){im(e,`animation-name`,`none`)();return}let t=im(e,`animation-name`,`none`),r=im(e,`animation-duration`,`0s`);t(),ne(r),b(!0);return}}if(!s&&a&&(u===`idle`||u===`starting`)){if(_.current=!1,v.current=!1,t===`none`){k($p,!1),c(!1);return}k(tm(e));return}if(u!==`ending`)return;if(t===`none`){c(!1);return}let n=tm(e);if(!((n.height??0)>0||(n.width??0)>0)){c(!1);return}k(n),t===`css-animation`&&im(e,`animation-name`,`none`)()},[a,s,te,k,c,ne,D,u]),xn({enabled:s&&a&&E===`idle`,open:!0,ref:d,onComplete(){s&&k($p,!1)}}),q.useEffect(()=>{if(s||!a||E!==`ending`||!d.current)return;let e=new AbortController,t=-1;function n(){C.current.open||(c(!1),k($p,!1))}return t=Sn.request(()=>{e.signal.aborted||w(n,e.signal)}),()=>{Sn.cancel(t),e.abort()}},[C,a,s,E,w,k,c]),V(()=>{let e=d.current;!e||!n||!T||e.setAttribute(`hidden`,`until-found`)},[T,n]),q.useEffect(function(){let e=d.current;if(!e)return;function t(e){let t=wt(_t,e);o(!0,t),!t.isCanceled&&(g.current=!0,l(!0))}return Cn(e,`beforematch`,t)},[o,l]);let A=i||n||a||s;return{height:O.height,props:{...ee?{[Wp.startingStyle]:``}:void 0,hidden:T,id:r},ref:S,shouldPreventOpenAnimation:D,shouldRender:A,transitionStatus:E,width:O.width}}function tm(e){return{height:e.scrollHeight,width:e.scrollWidth}}function nm(e,t=!1){let n=tt(e).getComputedStyle(e),r=(n.animationName.split(`,`).map(e=>e.trim()).some(e=>e!==``&&e!==`none`)||t)&&rm(n.animationDuration),i=rm(n.transitionDuration);return r&&i||i?`css-transition`:r?`css-animation`:`none`}function rm(e){return e.split(`,`).map(e=>e.trim()).some(e=>e!==``&&Number.parseFloat(e)>0)}function im(e,t,n){let r=e.style.getPropertyValue(t),i=e.style.getPropertyPriority(t);return e.style.setProperty(t,n),()=>{if(r===``){e.style.removeProperty(t);return}e.style.setProperty(t,r,i)}}function am(e){let t={"justify-content":e.style.justifyContent,"align-items":e.style.alignItems,"align-content":e.style.alignContent,"justify-items":e.style.justifyItems};Object.keys(t).forEach(t=>{e.style.setProperty(t,`initial`,`important`)});function n(){Object.entries(t).forEach(([t,n])=>{if(n===``){e.style.removeProperty(t);return}e.style.setProperty(t,n)})}let r=Sn.request(n);return()=>{Sn.cancel(r),n()}}var om=function(e){return e.collapsiblePanelHeight=`--collapsible-panel-height`,e.collapsiblePanelWidth=`--collapsible-panel-width`,e}({}),sm=q.forwardRef(function(e,t){let{className:n,hiddenUntilFound:r,keepMounted:i,render:a,id:o,style:s,...c}=e,{mounted:l,onOpenChange:u,open:d,panelId:f,setMounted:p,setPanelIdState:m,setOpen:h,state:g,transitionStatus:_}=Up(),v=r??!1,y=i??!1;V(()=>{if(o)return m(o),()=>{m(void 0)}},[o,m]);let{height:b,props:x,ref:S,shouldPreventOpenAnimation:C,shouldRender:w,transitionStatus:T,width:E}=em({externalRef:t,hiddenUntilFound:v,id:f,keepMounted:y,mounted:l,onOpenChange:u,open:d,setMounted:p,setOpen:h,transitionStatus:_}),D={...g,transitionStatus:T},O=Ce(s,D),ee=Se(`div`,{...e,style:void 0},{state:D,ref:S,props:[x,{style:{[om.collapsiblePanelHeight]:b===void 0?`auto`:`${b}px`,[om.collapsiblePanelWidth]:E===void 0?`auto`:`${E}px`}},c,O?{style:O}:void 0,C?{style:{animationName:`none`}}:void 0],stateAttributesMapping:Yp});return w?ee:null});function cm(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,J.jsx)(Xp,{"data-slot":`collapsible`,...n}),t[2]=n,t[3]=r),r}function lm(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,J.jsx)(Qp,{"data-slot":`collapsible-trigger`,...n}),t[2]=n,t[3]=r),r}function um(e){let t=(0,X.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,J.jsx)(sm,{"data-slot":`collapsible-content`,...n}),t[2]=n,t[3]=r),r}function dm(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`group/field-group @container/field-group flex w-full flex-col gap-4 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`div`,{className:i,"data-slot":`field-group`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var fm=we(`group/field flex w-full gap-2 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:`flex-col [&>*]:w-full [&>.sr-only]:w-auto`,horizontal:`flex-row items-center has-[>[data-slot=field-content]]:items-start [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`,responsive:`flex-col @md/field-group:flex-row @md/field-group:items-center @md/field-group:has-[>[data-slot=field-content]]:items-start [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`}},defaultVariants:{orientation:`vertical`}});function pm(e){let t=(0,X.c)(11),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,orientation:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i===void 0?`vertical`:i,o;t[4]!==n||t[5]!==a?(o=L(fm({orientation:a}),n),t[4]=n,t[5]=a,t[6]=o):o=t[6];let s;return t[7]!==a||t[8]!==r||t[9]!==o?(s=(0,J.jsx)(`div`,{className:o,"data-orientation":a,"data-slot":`field`,role:`group`,...r}),t[7]=a,t[8]=r,t[9]=o,t[10]=s):s=t[10],s}function mm(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`flex w-fit items-center gap-2 text-xs/relaxed leading-snug font-medium group-data-[disabled=true]/field:opacity-50`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`div`,{className:i,"data-slot":`field-label`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function hm(e){let t=(0,X.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=L(`text-left text-xs/relaxed leading-normal font-normal text-muted-foreground group-has-data-[orientation=horizontal]/field:text-balance [[data-variant=legend]+&]:-mt-1.5`,`last:mt-0 nth-last-2:-mt-1`,`[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,J.jsx)(`p`,{className:i,"data-slot":`field-description`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function gm(e){let t=(0,X.c)(15),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:r,children:n,errors:i,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o;bb0:{if(n){o=n;break bb0}if(!i?.length){o=null;break bb0}let e;t[5]===i?e=t[6]:(e=[...new Map(i.map(vm)).values()],t[5]=i,t[6]=e);let r=e;if(r?.length===1){o=r[0]?.message;break bb0}let a;t[7]===r?a=t[8]:(a=(0,J.jsx)(`ul`,{className:`ml-4 flex list-disc flex-col gap-1`,children:r.map(_m)}),t[7]=r,t[8]=a),o=a}let s=o;if(!s)return null;let c;t[9]===r?c=t[10]:(c=L(`text-xs/relaxed font-normal text-destructive`,r),t[9]=r,t[10]=c);let l;return t[11]!==s||t[12]!==a||t[13]!==c?(l=(0,J.jsx)(`div`,{className:c,"data-slot":`field-error`,role:`alert`,...a,children:s}),t[11]=s,t[12]=a,t[13]=c,t[14]=l):l=t[14],l}function _m(e){return e?.message&&(0,J.jsx)(`li`,{children:e.message},e.message)}function vm(e){return[e?.message,e]}var ym=/\s+/;function bm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:xm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function xm(e){let t=new ed({InstanceIds:[e]});return await U().send(t)}function Sm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Cm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function Cm(e){let t=new td({InstanceIds:[e]});return await U().send(t)}function wm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Tm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function Tm(e){let t=new nd({InstanceIds:[e]});return await U().send(t)}function Em(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Dm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function Dm(e){let t=new Ju({InstanceIds:[e]});return await U().send(t)}function Om(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:km,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]})}},e[0]=t,e[1]=n),T(n)}async function km(e){let t=U(),n=await Am(t,e),r=new $u({ImageId:e.imageId||void 0,InstanceType:e.instanceType?e.instanceType:void 0,KeyName:e.keyName||void 0,MinCount:e.count,MaxCount:e.count,SubnetId:e.subnetId||void 0,SecurityGroupIds:n.length>0?n:void 0,Placement:e.placementGroupName?{GroupName:e.placementGroupName}:void 0,BlockDeviceMappings:jm(e),LaunchTemplate:e.launchTemplateId?{LaunchTemplateId:e.launchTemplateId,Version:e.launchTemplateVersion||`$Default`}:void 0});return await t.send(r)}async function Am(e,t){if(t.securityGroupMode!==`create`)return t.securityGroupIds??[];let n=(await e.send(new vu({GroupName:t.newSgName,Description:t.newSgDescription||`Created by launch wizard`,VpcId:t.resolvedVpcId}))).GroupId;if(!n)throw Error(`Security group was created but no ID was returned`);let r=[...t.allowSsh?[22]:[],...t.allowHttp?[80]:[],...t.allowHttps?[443]:[]];if(r.length>0){let i=t.ruleSource===`custom`&&t.customCidr?t.customCidr:`0.0.0.0/0`;await e.send(new su({GroupId:n,IpPermissions:r.map(e=>({IpProtocol:`tcp`,FromPort:e,ToPort:e,IpRanges:[{CidrIp:i}]}))}))}return[n]}function jm(e){let{rootDeviceName:t,rootVolumeSize:n,rootVolumeType:r,rootDeleteOnTermination:i}=e;return n!==void 0||r!==void 0||i!==void 0?[{DeviceName:t,Ebs:{...n!==void 0&&{VolumeSize:n},...r!==void 0&&{VolumeType:r},...i!==void 0&&{DeleteOnTermination:i}}}]:void 0}var Mm=`/dev/sda1`;function Nm(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCodePoint(e);return btoa(n)}function Pm(e){let t={};e.imageId&&(t.ImageId=e.imageId),e.instanceType&&(t.InstanceType=e.instanceType),e.keyName&&(t.KeyName=e.keyName);let n=e.securityGroupIds??[];return e.subnetId?t.NetworkInterfaces=[{DeviceIndex:0,SubnetId:e.subnetId,Groups:n.length>0?n:void 0}]:n.length>0&&(t.SecurityGroupIds=n),(e.rootVolumeSize!==void 0||e.rootVolumeType!==void 0)&&(t.BlockDeviceMappings=[{DeviceName:Mm,Ebs:{...e.rootVolumeSize!==void 0&&{VolumeSize:e.rootVolumeSize},...e.rootVolumeType!==void 0&&{VolumeType:e.rootVolumeType}}}]),e.userData&&(t.UserData=Nm(e.userData)),t}function Fm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Im,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]})}},e[0]=t,e[1]=n),T(n)}async function Im(e){let t=new fu({LaunchTemplateName:e.launchTemplateName,VersionDescription:e.versionDescription||void 0,LaunchTemplateData:Pm(e)});return await U().send(t)}function Lm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Rm,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]}),t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`,n.launchTemplateId,`versions`]})}},e[0]=t,e[1]=n),T(n)}async function Rm(e){let t=new pu({LaunchTemplateId:e.launchTemplateId,SourceVersion:e.sourceVersion||void 0,VersionDescription:e.versionDescription||void 0,LaunchTemplateData:Pm(e)});return await U().send(t)}function zm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Bm,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]}),t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`,n.launchTemplateId,`versions`]})}},e[0]=t,e[1]=n),T(n)}async function Bm(e){let t=new Gu({LaunchTemplateId:e.launchTemplateId,DefaultVersion:e.defaultVersion});return await U().send(t)}function Vm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Hm,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]}),t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`,n.launchTemplateId,`versions`]})}},e[0]=t,e[1]=n),T(n)}async function Hm(e){let t=new Eu({LaunchTemplateId:e.launchTemplateId,Versions:e.versions});return await U().send(t)}function Um(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Wm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]})}},e[0]=t,e[1]=n),T(n)}async function Wm(e){let t=new Tu({LaunchTemplateId:e});return await U().send(t)}function Gm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Km,onSuccess:()=>{t.invalidateQueries(ui)}},e[0]=t,e[1]=n),T(n)}async function Km(e){let t=new du({KeyName:e.keyName,KeyType:`rsa`}),n=await U().send(t);if(!n.KeyMaterial)throw Error(`Key pair was created but the API returned no private key. The key cannot be recovered — delete it and try again.`);return n}function qm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Jm,onSuccess:()=>{t.invalidateQueries(ui)}},e[0]=t,e[1]=n),T(n)}async function Jm(e){let t=e.publicKeyMaterial.trim().split(ym).slice(0,2).join(` `),n=new Uu({KeyName:e.keyName,PublicKeyMaterial:new TextEncoder().encode(t)});return await U().send(n)}function Ym(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Xm,onSuccess:()=>{t.invalidateQueries(ui)}},e[0]=t,e[1]=n),T(n)}async function Xm(e){let t=new wu({KeyPairId:e});return await U().send(t)}function Zm(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Qm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]})}},e[0]=t,e[1]=n),T(n)}async function Qm(e){let t=new xu({Size:e.size,AvailabilityZone:e.availabilityZone,VolumeType:`gp3`});return await U().send(t)}function $m(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:eh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]})}},e[0]=t,e[1]=n),T(n)}async function eh(e){let t=new qu({VolumeId:e.volumeId,Size:e.size});return await U().send(t)}function th(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:nh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]})}},e[0]=t,e[1]=n),T(n)}async function nh(e){let t=new Pu({VolumeId:e});return await U().send(t)}function rh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:ih,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`snapshots`]})}},e[0]=t,e[1]=n),T(n)}async function ih(e){let t=new yu({VolumeId:e.volumeId,Description:e.description||void 0});return await U().send(t)}function ah(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:oh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`snapshots`]})}},e[0]=t,e[1]=n),T(n)}async function oh(e){let t=new Mu({SnapshotId:e});return await U().send(t)}function sh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:ch,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`snapshots`]})}},e[0]=t,e[1]=n),T(n)}async function ch(e){let t=new cu({SourceSnapshotId:e.sourceSnapshotId,SourceRegion:e.sourceRegion,Description:e.description||void 0});return await U().send(t)}function lh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:uh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function uh(e){let t=new au({VolumeId:e.volumeId,InstanceId:e.instanceId,Device:e.device||void 0});return await U().send(t)}function dh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:fh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function fh(e){let t=new Ru({VolumeId:e.volumeId,InstanceId:e.instanceId||void 0,Force:e.force});return await U().send(t)}function ph(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:mh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function mh(e){let{instanceId:t,...n}=e,r=new Wu({InstanceId:t,InstanceType:{Value:n.instanceType}});return await U().send(r)}function hh(){let e=(0,X.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={mutationFn:gh},e[0]=t):t=e[0],T(t)}async function gh(e){let t=new Hu({InstanceId:e});return await U().send(t)}function _h(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:vh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`images`]})}},e[0]=t,e[1]=n),T(n)}async function vh(e){let t=new lu({InstanceId:e.instanceId,Name:e.name,Description:e.description||void 0});return await U().send(t)}function yh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:bh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`images`]})}},e[0]=t,e[1]=n),T(n)}async function bh(e){let t=new Yu({Name:e.name,Description:e.description||void 0,BlockDeviceMappings:[{DeviceName:`/dev/sda1`,Ebs:{SnapshotId:e.snapshotId}}]});return await U().send(t)}function xh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Sh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`images`]})}},e[0]=t,e[1]=n),T(n)}async function Sh(e){let t=new Iu({ImageId:e});return await U().send(t)}function Ch(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:wh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`vpcs`]})}},e[0]=t,e[1]=n),T(n)}async function wh(e){let t=new Su({CidrBlock:e.cidrBlock,TagSpecifications:e.name?[{ResourceType:`vpc`,Tags:[{Key:`Name`,Value:e.name}]}]:void 0});return await U().send(t)}function Th(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Eh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`vpcs`]})}},e[0]=t,e[1]=n),T(n)}async function Eh(e){let t=new Fu({VpcId:e});return await U().send(t)}function Dh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Oh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`subnets`]})}},e[0]=t,e[1]=n),T(n)}async function Oh(e){let t=U(),n=await t.send(new bu({VpcId:e.vpcId,CidrBlock:e.cidrBlock,AvailabilityZone:e.availabilityZone||void 0})),r=n.Subnet?.SubnetId;return e.mapPublicIpOnLaunch&&r&&await t.send(new Ku({SubnetId:r,MapPublicIpOnLaunch:{Value:!0}})),n}function kh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Ah,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`subnets`]})}},e[0]=t,e[1]=n),T(n)}async function Ah(e){let t=new Nu({SubnetId:e});return await U().send(t)}function jh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Mh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`placementGroups`]})}},e[0]=t,e[1]=n),T(n)}async function Mh(e){let t=new hu({GroupName:e.groupName,Strategy:e.strategy});return await U().send(t)}function Nh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Ph,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`placementGroups`]})}},e[0]=t,e[1]=n),T(n)}async function Ph(e){let t=new Ou({GroupName:e});return await U().send(t)}function Fh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Ih,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]})}},e[0]=t,e[1]=n),T(n)}async function Ih(e){let t=new vu({GroupName:e.groupName,Description:e.description,VpcId:e.vpcId});return await U().send(t)}function Lh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Rh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]})}},e[0]=t,e[1]=n),T(n)}async function Rh(e){let t=new ju({GroupId:e});return await U().send(t)}function zh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Bh,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`,n.groupId]})}},e[0]=t,e[1]=n),T(n)}async function Bh(e){let t=new su({GroupId:e.groupId,IpPermissions:[{IpProtocol:e.ipProtocol,FromPort:e.fromPort,ToPort:e.toPort,IpRanges:[{CidrIp:e.cidrIp}]}]});return await U().send(t)}function Vh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Hh,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`,n.groupId]})}},e[0]=t,e[1]=n),T(n)}async function Hh(e){let t=new ou({GroupId:e.groupId,IpPermissions:[{IpProtocol:e.ipProtocol,FromPort:e.fromPort,ToPort:e.toPort,IpRanges:[{CidrIp:e.cidrIp}]}]});return await U().send(t)}function Uh(e){return{IpProtocol:e.ipProtocol,FromPort:e.fromPort,ToPort:e.toPort,...e.sourceGroupId?{UserIdGroupPairs:[{GroupId:e.sourceGroupId}]}:{IpRanges:[{CidrIp:e.cidrIp??``}]}}}function Wh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Gh,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`,n.groupId]})}},e[0]=t,e[1]=n),T(n)}async function Gh(e){let t=new Qu({GroupId:e.groupId,IpPermissions:[Uh(e)]});return await U().send(t)}function Kh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:qh,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`,n.groupId]})}},e[0]=t,e[1]=n),T(n)}async function qh(e){let t=new Zu({GroupId:e.groupId,IpPermissions:[Uh(e)]});return await U().send(t)}function Jh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Yh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`internetGateways`]})}},e[0]=t,e[1]=n),T(n)}async function Yh(e){let t=new uu({TagSpecifications:jg(rd.internet_gateway,e?.name,[])});return await U().send(t)}function Xh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Zh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`internetGateways`]})}},e[0]=t,e[1]=n),T(n)}async function Zh(e){let t=new Cu({InternetGatewayId:e});return await U().send(t)}function Qh(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:$h,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`internetGateways`]})}},e[0]=t,e[1]=n),T(n)}async function $h(e){let t=new iu({InternetGatewayId:e.internetGatewayId,VpcId:e.vpcId});return await U().send(t)}function eg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:tg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`internetGateways`]})}},e[0]=t,e[1]=n),T(n)}async function tg(e){let t=new Lu({InternetGatewayId:e.internetGatewayId,VpcId:e.vpcId});return await U().send(t)}function ng(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:rg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`addresses`]})}},e[0]=t,e[1]=n),T(n)}async function rg(e){let t=new eu({Domain:`vpc`,TagSpecifications:jg(rd.elastic_ip,e?.name,[])});return await U().send(t)}function ig(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:ag,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`addresses`]})}},e[0]=t,e[1]=n),T(n)}async function ag(e){let t=new Xu({AllocationId:e});return await U().send(t)}function og(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:sg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`addresses`]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function sg(e){let t=new tu({AllocationId:e.allocationId,InstanceId:e.instanceId,NetworkInterfaceId:e.networkInterfaceId});return await U().send(t)}function cg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:lg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`addresses`]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function lg(e){let t=new zu({AssociationId:e});return await U().send(t)}function ug(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:dg,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`iam-instance-profile-associations`,n.instanceId]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function dg(e){let t=new nu({InstanceId:e.instanceId,IamInstanceProfile:{Name:e.instanceProfileName}});return await U().send(t)}function fg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:pg,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`iam-instance-profile-associations`,n.instanceId]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function pg(e){let t=new Bu({AssociationId:e.associationId});return await U().send(t)}function mg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:hg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`natGateways`]}),t.invalidateQueries({queryKey:[`ec2`,`addresses`]})}},e[0]=t,e[1]=n),T(n)}async function hg(e){let t=new mu({SubnetId:e.subnetId,AllocationId:e.allocationId,TagSpecifications:jg(rd.natgateway,e.name,[])});return await U().send(t)}function gg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:_g,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`natGateways`]})}},e[0]=t,e[1]=n),T(n)}async function _g(e){let t=new Du({NatGatewayId:e});return await U().send(t)}function vg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:yg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function yg(e){let t=new _u({VpcId:e.vpcId,TagSpecifications:jg(rd.route_table,e.name,[])});return await U().send(t)}function bg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:xg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function xg(e){let t=new Au({RouteTableId:e});return await U().send(t)}function Sg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Cg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function Cg(e){let t=new gu({RouteTableId:e.routeTableId,DestinationCidrBlock:e.destinationCidrBlock,GatewayId:e.gatewayId,NatGatewayId:e.natGatewayId});return await U().send(t)}function wg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Tg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function Tg(e){let t=new ku({RouteTableId:e.routeTableId,DestinationCidrBlock:e.destinationCidrBlock});return await U().send(t)}function Eg(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Dg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function Dg(e){let t=new ru({RouteTableId:e.routeTableId,SubnetId:e.subnetId});return await U().send(t)}function Og(){let e=(0,X.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:kg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function kg(e){let t=new Vu({AssociationId:e});return await U().send(t)}function Ag(e,t){let n=[];return e&&n.push({Key:`Name`,Value:e}),n.push(...t),n}function jg(e,t,n){let r=Ag(t,n);if(r.length!==0)return[{ResourceType:e,Tags:r}]}function Mg(){let e=h();return T({mutationFn:async e=>{let t=U(),n=[],r=e.autoGenerateNames?e.namePrefix:void 0,i=e.tags.map(e=>({Key:e.key,Value:e.value})),a=`creating VPC`;try{let o=r?`${r}-vpc`:e.namePrefix,s=e.tenancy,c=(await t.send(new Su({CidrBlock:e.cidrBlock,InstanceTenancy:s,TagSpecifications:jg(rd.vpc,o,i)}))).Vpc?.VpcId;if(!c)throw Error(`VPC was created but no VPC ID was returned by the API`);if(n.push({type:`VPC`,id:c}),e.mode===`vpc-only`)return{vpcId:c,created:n};let l=da(e.cidrBlock,e.publicSubnetCount,e.privateSubnetCount),u=e.publicSubnetCidrs.length>0?e.publicSubnetCidrs:l.publicSubnets.map(e=>e.cidr),d=e.privateSubnetCidrs.length>0?e.privateSubnetCidrs:l.privateSubnets.map(e=>e.cidr);a=`creating public subnets`;let f=await Promise.all(Array.from({length:e.publicSubnetCount},async(e,a)=>{let o=r?`${r}-subnet-public-${a+1}`:void 0,s=(await t.send(new bu({VpcId:c,CidrBlock:u[a],TagSpecifications:jg(rd.subnet,o,i)}))).Subnet?.SubnetId;if(!s)throw Error(`Public subnet ${a+1} was created but no subnet ID was returned`);return n.push({type:`Public Subnet`,id:s}),await t.send(new Ku({SubnetId:s,MapPublicIpOnLaunch:{Value:!0}})),s}));a=`creating private subnets`;let p=await Promise.all(Array.from({length:e.privateSubnetCount},async(e,a)=>{let o=r?`${r}-subnet-private-${a+1}`:void 0,s=(await t.send(new bu({VpcId:c,CidrBlock:d[a],TagSpecifications:jg(rd.subnet,o,i)}))).Subnet?.SubnetId;if(!s)throw Error(`Private subnet ${a+1} was created but no subnet ID was returned`);return n.push({type:`Private Subnet`,id:s}),s}));if(e.publicSubnetCount>0){a=`creating internet gateway`;let e=r?`${r}-igw`:void 0,o=(await t.send(new uu({TagSpecifications:jg(rd.internet_gateway,e,i)}))).InternetGateway?.InternetGatewayId;if(!o)throw Error(`Internet gateway was created but no ID was returned`);n.push({type:`Internet Gateway`,id:o}),a=`attaching internet gateway to VPC`,await t.send(new iu({InternetGatewayId:o,VpcId:c})),a=`creating public route table`;let s=r?`${r}-rtb-public`:void 0,l=(await t.send(new _u({VpcId:c,TagSpecifications:jg(rd.route_table,s,i)}))).RouteTable?.RouteTableId;if(!l)throw Error(`Public route table was created but no ID was returned`);n.push({type:`Public Route Table`,id:l}),a=`creating default route to internet gateway`,await t.send(new gu({RouteTableId:l,DestinationCidrBlock:`0.0.0.0/0`,GatewayId:o})),a=`associating public subnets with route table`,await Promise.all(f.map(async e=>await t.send(new ru({RouteTableId:l,SubnetId:e}))))}if(e.privateSubnetCount>0){a=`creating private route table`;let o=r?`${r}-rtb-private`:void 0,s=(await t.send(new _u({VpcId:c,TagSpecifications:jg(rd.route_table,o,i)}))).RouteTable?.RouteTableId;if(!s)throw Error(`Private route table was created but no ID was returned`);if(n.push({type:`Private Route Table`,id:s}),a=`associating private subnets with route table`,await Promise.all(p.map(async e=>await t.send(new ru({RouteTableId:s,SubnetId:e})))),e.natGateway===`single`&&f[0]){a=`allocating Elastic IP for NAT gateway`;let e=(await t.send(new eu({Domain:`vpc`,TagSpecifications:jg(rd.elastic_ip,r?`${r}-eip-nat`:void 0,i)}))).AllocationId;if(!e)throw Error(`Elastic IP was allocated but no allocation ID was returned`);n.push({type:`Elastic IP`,id:e}),a=`creating NAT gateway`;let o=(await t.send(new mu({SubnetId:f[0],AllocationId:e,TagSpecifications:jg(rd.natgateway,r?`${r}-nat`:void 0,i)}))).NatGateway?.NatGatewayId;if(!o)throw Error(`NAT gateway was created but no ID was returned`);n.push({type:`NAT Gateway`,id:o}),a=`creating default route to NAT gateway`,await t.send(new gu({RouteTableId:s,DestinationCidrBlock:`0.0.0.0/0`,NatGatewayId:o}))}}return{vpcId:c,created:n}}catch(e){return{vpcId:n.find(e=>e.type===`VPC`)?.id,created:n,error:e instanceof Error?e:Error(String(e)),failedStep:`Failed while ${a}`}}},onSuccess:()=>{e.invalidateQueries({queryKey:[`ec2`,`vpcs`]}),e.invalidateQueries({queryKey:[`ec2`,`subnets`]}),e.invalidateQueries({queryKey:[`ec2`,`internetGateways`]}),e.invalidateQueries({queryKey:[`ec2`,`routeTables`]}),e.invalidateQueries({queryKey:[`ec2`,`natGateways`]}),e.invalidateQueries({queryKey:[`ec2`,`addresses`]})}})}var Ng=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$/,Pg=I().min(1,`Key name is required`).max(255,`Key name must be 255 characters or less`).regex(/^[\w\s._\-:/()#,@[\]+=&;{}!$*]+$/,`Key name contains invalid characters`),Fg=[`gp3`],Ig=`launch-wizard-`,Lg=z({imageId:I().optional(),instanceType:I().optional(),keyName:I().optional(),launchTemplateId:I().optional(),launchTemplateVersion:I().optional(),subnetId:I().optional(),placementGroupName:I().optional(),count:Ne(`Instance count must be a whole number`).min(1,`Instance count must be at least 1`),rootDeviceName:I().optional(),rootVolumeSize:Pe().int(`Volume size must be a whole number`).min(1,`Volume size must be at least 1 GiB`).max(16384,`Volume size must be at most 16384 GiB`).optional(),rootVolumeType:Me(Fg).optional(),rootDeleteOnTermination:ze().optional(),securityGroupMode:Me([`create`,`existing`]).optional(),securityGroupIds:Le(I()).optional(),newSgName:I().optional(),newSgDescription:I().optional(),allowSsh:ze().optional(),allowHttp:ze().optional(),allowHttps:ze().optional(),ruleSource:Me([`anywhere`,`custom`]).optional(),customCidr:I().optional()}).superRefine((e,t)=>{if(e.launchTemplateId||(e.imageId||t.addIssue({code:`custom`,message:`Please select an image`,path:[`imageId`]}),e.instanceType||t.addIssue({code:`custom`,message:`Please select an instance type`,path:[`instanceType`]}),e.keyName||t.addIssue({code:`custom`,message:`Please select a key pair`,path:[`keyName`]})),e.securityGroupMode){if(e.securityGroupMode===`existing`){(e.securityGroupIds??[]).length===0&&t.addIssue({code:`custom`,message:`Select at least one security group`,path:[`securityGroupIds`]});return}(!e.newSgName||e.newSgName.trim().length===0)&&t.addIssue({code:`custom`,message:`Security group name is required`,path:[`newSgName`]}),e.ruleSource===`custom`&&(!e.customCidr||!ca(e.customCidr))&&t.addIssue({code:`custom`,message:`Enter a valid CIDR (e.g. 203.0.113.0/24)`,path:[`customCidr`]})}});function Rg(e){let t=0,n=RegExp(`^${Ig}(\\d+)$`);for(let r of e){let e=n.exec(r);if(e){let n=Number(e[1]);n>t&&(t=n)}}return`${Ig}${t+1}`}var zg=z({keyName:Pg}),Bg=z({keyName:Pg,publicKeyMaterial:I().min(1,`Public key is required`).refine(e=>e.trim().length>0,`Public key cannot be empty`)}),Vg=z({size:Pe().int(`Size must be a whole number`).min(1,`Size must be at least 1 GiB`).max(16384,`Size must be at most 16384 GiB`),availabilityZone:I().min(1,`Availability zone is required`)}),Hg=z({size:Pe().int(`Size must be a whole number`).min(1,`Size must be at least 1 GiB`)}),Ug=z({volumeId:I().min(1,`Volume is required`),description:I().optional()});z({sourceSnapshotId:I().min(1,`Source snapshot is required`),sourceRegion:I().min(1,`Source region is required`),description:I().optional()}),z({volumeId:I().min(1,`Volume is required`),instanceId:I().min(1,`Instance is required`),device:I().optional()}),z({volumeId:I().min(1,`Volume is required`),instanceId:I().optional(),force:ze().optional()}),z({instanceType:I().min(1,`Instance type is required`)}),z({name:I().min(1,`Name is required`),description:I().optional()});var Wg=z({vpcId:I().min(1,`VPC is required`),cidrBlock:I().min(1,`CIDR block is required`).regex(Ng,`Must be a valid CIDR block (e.g. 10.0.1.0/24)`),availabilityZone:I().optional(),mapPublicIpOnLaunch:ze().optional()}),Gg=z({name:I().optional()}),Kg=z({subnetId:I().min(1,`Subnet is required`),allocationId:I().min(1,`Elastic IP is required`),name:I().optional()}),qg=z({name:I().optional()}),Jg=z({vpcId:I().min(1,`VPC is required`),name:I().optional()}),Yg=z({destinationCidrBlock:I().min(1,`Destination is required`).regex(Ng,`Must be a valid CIDR block (e.g. 0.0.0.0/0)`),targetType:Me([`igw`,`nat`]),targetId:I().min(1,`Target is required`)}),Xg=z({subnetId:I().min(1,`Subnet is required`)});z({cidrBlock:I().min(1,`CIDR block is required`).regex(Ng,`Must be a valid CIDR block (e.g. 10.0.0.0/16)`),name:I().optional()});var Zg=z({key:I().min(1,`Key is required`),value:I()}),Qg=z({mode:Me([`vpc-only`,`vpc-and-more`]),namePrefix:I().optional(),autoGenerateNames:ze(),cidrBlock:I().min(1,`CIDR block is required`).regex(Ng,`Must be a valid CIDR block (e.g. 10.0.0.0/16)`).refine(e=>ca(e),`CIDR has invalid octets or prefix length (must be /16 to /28)`),tenancy:Me([`default`,`dedicated`]),natGateway:Me([`none`,`single`]).optional(),publicSubnetCount:Pe().int().min(0).max(1),privateSubnetCount:Pe().int().min(0).max(2),publicSubnetCidrs:Le(I()),privateSubnetCidrs:Le(I()),tags:Le(Zg)}).superRefine((e,t)=>{if(e.mode!==`vpc-and-more`)return;let n=[];for(let[r,i]of e.publicSubnetCidrs.entries())ca(i,16,28)?(la(e.cidrBlock,i)||t.addIssue({code:`custom`,message:`Subnet CIDR must be within the VPC CIDR range`,path:[`publicSubnetCidrs`,r]}),n.push({cidr:i,field:`publicSubnetCidrs`,index:r})):t.addIssue({code:`custom`,message:`Invalid subnet CIDR format or prefix length`,path:[`publicSubnetCidrs`,r]});for(let[r,i]of e.privateSubnetCidrs.entries())ca(i,16,28)?(la(e.cidrBlock,i)||t.addIssue({code:`custom`,message:`Subnet CIDR must be within the VPC CIDR range`,path:[`privateSubnetCidrs`,r]}),n.push({cidr:i,field:`privateSubnetCidrs`,index:r})):t.addIssue({code:`custom`,message:`Invalid subnet CIDR format or prefix length`,path:[`privateSubnetCidrs`,r]});for(let e=0;e{let n=e.launchTemplateName??``;if(n.lengthi_){t.addIssue({code:`custom`,message:`Name must be ${r_}–${i_} characters`,path:[`launchTemplateName`]});return}n_.test(n)||t.addIssue({code:`custom`,message:`Name may contain only letters, digits and ()./_-`,path:[`launchTemplateName`]})}),s_=a_,c_=`/dev/sda1`,l_=`gp3`,u_=1,d_=16384,f_=P(`/_auth/ec2/(instances)/run-instances`)({validateSearch:e=>({launchTemplateId:typeof e.launchTemplateId==`string`?e.launchTemplateId:void 0,launchTemplateVersion:typeof e.launchTemplateVersion==`string`?e.launchTemplateVersion:void 0}),loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(li),e.queryClient.ensureQueryData(ui),e.queryClient.ensureQueryData($r),e.queryClient.ensureQueryData(qr),e.queryClient.ensureQueryData(vi),e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(gi),e.queryClient.ensureQueryData(ri)])},head:()=>({meta:[{title:`Run Instances | EC2 | Mulga`}]}),component:p_});function p_(){let e=(0,X.c)(136),t=_e(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n={from:f_.id},e[0]=n):n=e[0];let r=he(n),{data:i}=_a(li),{data:a}=_a(ui),{data:o}=_a($r),{data:s}=_a(qr),{data:c}=_a(vi),{data:l}=_a(Kr),{data:u}=_a(gi),{data:d}=_a(ri),f=Om(),p=i.Images??[],m=a.KeyPairs??[],h;e[1]===s.Subnets?h=e[2]:(h=s.Subnets??[],e[1]=s.Subnets,e[2]=h);let g=h,_;e[3]===c.PlacementGroups?_=e[4]:(_=c.PlacementGroups??[],e[3]=c.PlacementGroups,e[4]=_);let v=_,y;e[5]===l.Vpcs?y=e[6]:(y=l.Vpcs??[],e[5]=l.Vpcs,e[6]=y);let b=y,x=u.SecurityGroups??[],S;e[7]===d.LaunchTemplates?S=e[8]:(S=d.LaunchTemplates??[],e[7]=d.LaunchTemplates,e[8]=S);let C=S,w;e[9]===b?w=e[10]:(w=(b.find(A_)??b[0])?.VpcId,e[9]=b,e[10]=w);let T=w,E=Rg(x.map(k_)),D;if(e[11]!==o.InstanceTypes){D={};for(let e of o.InstanceTypes??[]){let t=e.InstanceType;t&&(D[t]=(D[t]??0)+1)}e[11]=o.InstanceTypes,e[12]=D}else D=e[12];let O=Object.keys(D).toSorted(),ee=p[0]?.ImageId,k=m[0]?.KeyName,te=O.find(O_)??O[0],ne=j_(p.find(e=>e.ImageId===ee)),re;e[13]===D?re=e[14]:(re=e=>!e.instanceType||e.count<=(D[e.instanceType]??1),e[13]=D,e[14]=re);let{control:A,handleSubmit:j,register:M,setValue:ie,getValues:ae,watch:oe,formState:se}=mp({resolver:wp(Lg.refine(re,{message:`Cannot exceed available capacity`,path:[`count`]}).superRefine((e,t)=>{let n=j_(p.find(t=>t.ImageId===e.imageId)).snapshotSize;e.rootVolumeSize!==void 0&&n!==void 0&&e.rootVolumeSizee.InstanceType===ue))?.GpuInfo?.Gpus?.[0],pe=fe?.Name?.startsWith(`MIG `)?fe.Name.slice(4):void 0,me;e[17]===A?me=e[18]:(me={control:A,name:`imageId`},e[17]=A,e[18]=me);let P=$d(me),ge;e[19]===P?ge=e[20]:(ge=e=>e.ImageId===P,e[19]=P,e[20]=ge);let F=j_(p.find(ge)),ve;e[21]===A?ve=e[22]:(ve={control:A,name:`subnetId`},e[21]=A,e[22]=ve);let ye=$d(ve),be;e[23]===A?be=e[24]:(be={control:A,name:`securityGroupMode`},e[23]=A,e[24]=be);let xe=$d(be),Se;e[25]===A?Se=e[26]:(Se={control:A,name:`ruleSource`},e[25]=A,e[26]=Se);let Ce=$d(Se),we=$d({control:A,name:`securityGroupIds`})??[],Te;e[27]===A?Te=e[28]:(Te={control:A,name:`launchTemplateId`},e[27]=A,e[28]=Te);let Ee=$d(Te),De;e[29]===A?De=e[30]:(De={control:A,name:`launchTemplateVersion`},e[29]=A,e[30]=De);let Oe=$d(De),ke=Ee??``,je;e[31]===ke?je=e[32]:(je=si(ke),e[31]=ke,e[32]=je);let Me=!!Ee,Ne;e[33]!==je||e[34]!==Me?(Ne={...je,enabled:Me},e[33]=je,e[34]=Me,e[35]=Ne):Ne=e[35];let I=ga(Ne),Pe;e[36]===I.data?.LaunchTemplateVersions?Pe=e[37]:(Pe=I.data?.LaunchTemplateVersions??[],e[36]=I.data?.LaunchTemplateVersions,e[37]=Pe);let Fe=Pe,Ie;e[38]!==Oe||e[39]!==Fe?(Ie=M_(Fe,Oe)?.LaunchTemplateData,e[38]=Oe,e[39]=Fe,e[40]=Ie):Ie=e[40];let Le=Ie,L;e[41]!==T||e[42]!==ye||e[43]!==g?(L=g.find(e=>e.SubnetId===ye)?.VpcId??T,e[41]=T,e[42]=ye,e[43]=g,e[44]=L):L=e[44];let Re=L,ze;e[45]!==Re||e[46]!==x?(ze=Re?x.filter(e=>e.VpcId===Re):x,e[45]=Re,e[46]=x,e[47]=ze):ze=e[47];let R=ze,z;e[48]!==ae||e[49]!==ie?(z=e=>{let t=ae(`securityGroupIds`)??[],n=t.includes(e)?t.filter(t=>t!==e):[...t,e];ie(`securityGroupIds`,n,{shouldValidate:!0})},e[48]=ae,e[49]=ie,e[50]=z):z=e[50];let B=z,Be;e[51]!==F.deviceName||e[52]!==ie?(Be=()=>{ie(`rootDeviceName`,F.deviceName)},e[51]=F.deviceName,e[52]=ie,e[53]=Be):Be=e[53];let He;e[54]!==P||e[55]!==F.deviceName||e[56]!==ie?(He=[P,F.deviceName,ie],e[54]=P,e[55]=F.deviceName,e[56]=ie,e[57]=He):He=e[57],(0,q.useEffect)(Be,He);let We;e[58]!==f||e[59]!==Re||e[60]!==t?(We=async e=>{let n=e.launchTemplateId?{count:e.count,launchTemplateId:e.launchTemplateId,launchTemplateVersion:e.launchTemplateVersion,resolvedVpcId:Re}:{...e,resolvedVpcId:Re};await f.mutateAsync(n),t({to:`/ec2/describe-instances`})},e[58]=f,e[59]=Re,e[60]=t,e[61]=We):We=e[61];let Ge=We,qe,Ye;e[62]===Symbol.for(`react.memo_cache_sentinel`)?(qe=(0,J.jsx)(Tp,{to:`/ec2/describe-instances`,children:`Back to instances`}),Ye=(0,J.jsx)(Bp,{title:`Run Instances`}),e[62]=qe,e[63]=Ye):(qe=e[62],Ye=e[63]);let Xe;e[64]!==Ee||e[65]!==O?(Xe=O.length===0&&!Ee&&(0,J.jsx)(Np,{msg:`No compute available. No new instances can be created until compute is available.`}),e[64]=Ee,e[65]=O,e[66]=Xe):Xe=e[66];let $e;e[67]===f.error?$e=e[68]:($e=f.error&&(0,J.jsx)(Np,{error:f.error,msg:`Failed to create instance`}),e[67]=f.error,e[68]=$e);let et;e[69]!==j||e[70]!==Ge?(et=j(Ge),e[69]=j,e[70]=Ge,e[71]=et):et=e[71];let tt;e[72]===Symbol.for(`react.memo_cache_sentinel`)?(tt=(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`launchTemplateId`,children:`Launch Template`})}),e[72]=tt):tt=e[72];let nt;e[73]===C?nt=e[74]:(nt=e=>{let{field:t}=e;return(0,J.jsxs)(Qe,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,J.jsx)(Ze,{className:`w-full`,id:`launchTemplateId`,children:(0,J.jsx)(Ue,{})}),(0,J.jsxs)(Je,{children:[(0,J.jsx)(Ke,{value:`none`,children:`none`}),C.map(D_)]})]})},e[73]=C,e[74]=nt);let rt;e[75]!==A||e[76]!==nt?(rt=(0,J.jsxs)(pm,{children:[tt,(0,J.jsx)(tf,{control:A,name:`launchTemplateId`,render:nt})]}),e[75]=A,e[76]=nt,e[77]=rt):rt=e[77];let V;e[78]!==A||e[79]!==Le||e[80]!==Ee||e[81]!==Fe?(V=Ee&&(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`launchTemplateVersion`,children:`Version`})}),(0,J.jsx)(tf,{control:A,name:`launchTemplateVersion`,render:e=>{let{field:t}=e;return(0,J.jsxs)(Qe,{onValueChange:e=>t.onChange(e),value:t.value??`$Default`,children:[(0,J.jsx)(Ze,{className:`w-full`,id:`launchTemplateVersion`,children:(0,J.jsx)(Ue,{})}),(0,J.jsxs)(Je,{children:[(0,J.jsx)(Ke,{value:`$Default`,children:`$Default`}),(0,J.jsx)(Ke,{value:`$Latest`,children:`$Latest`}),Fe.map(E_)]})]})}}),Le&&(0,J.jsxs)(`div`,{className:`mt-3 space-y-1 rounded-md border border-border p-3 text-xs`,children:[(0,J.jsx)(`p`,{className:`text-muted-foreground`,children:`Configuration from this version:`}),(0,J.jsxs)(`p`,{children:[`Image:`,` `,(0,J.jsx)(`span`,{className:`font-mono`,children:Le.ImageId??`—`})]}),(0,J.jsxs)(`p`,{children:[`Instance type:`,` `,(0,J.jsx)(`span`,{className:`font-mono`,children:Le.InstanceType??`—`})]}),(0,J.jsxs)(`p`,{children:[`Key pair:`,` `,(0,J.jsx)(`span`,{className:`font-mono`,children:Le.KeyName??`—`})]})]})]}),e[78]=A,e[79]=Le,e[80]=Ee,e[81]=Fe,e[82]=V):V=e[82];let it=!Ee&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`imageId`,children:`Image`})}),(0,J.jsx)(tf,{control:A,name:`imageId`,render:e=>{let{field:t}=e,n=p.find(e=>e.ImageId===t.value);return(0,J.jsxs)(Qe,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,J.jsx)(Ze,{"aria-invalid":!!N.imageId,className:`w-full`,id:`imageId`,children:(0,J.jsx)(Ue,{children:n?`${n.Name??`Unnamed`} (${n.Architecture})`:``})}),(0,J.jsx)(Je,{children:p.map(T_)})]})}}),(0,J.jsx)(gm,{errors:[N.imageId]})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`instanceType`,children:`Instance Type`})}),(0,J.jsx)(tf,{control:A,name:`instanceType`,render:e=>{let{field:t}=e;return(0,J.jsx)(Lp,{"aria-invalid":!!N.instanceType,availabilityByType:D,className:`w-full`,id:`instanceType`,instanceTypes:o.InstanceTypes??[],onValueChange:t.onChange,value:t.value??``})}}),fe&&(0,J.jsxs)(hm,{children:[`GPU: `,fe.Name,fe.MemoryInfo?.SizeInMiB!==void 0&&` · ${Ae(fe.MemoryInfo.SizeInMiB)} VRAM`,pe&&` · MIG ${pe} slice`]}),(0,J.jsx)(gm,{errors:[N.instanceType]})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`keyName`,children:`Key Pair`})}),(0,J.jsx)(tf,{control:A,name:`keyName`,render:e=>{let{field:t}=e;return(0,J.jsxs)(Qe,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,J.jsx)(Ze,{"aria-invalid":!!N.keyName,className:`w-full`,id:`keyName`,children:(0,J.jsx)(Ue,{})}),(0,J.jsx)(Je,{children:m.map(w_)})]})}}),(0,J.jsx)(gm,{errors:[N.keyName]})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`subnetId`,children:`Subnet`})}),(0,J.jsx)(tf,{control:A,name:`subnetId`,render:e=>{let{field:t}=e;return(0,J.jsxs)(Qe,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,J.jsx)(Ze,{className:`w-full`,id:`subnetId`,children:(0,J.jsx)(Ue,{})}),(0,J.jsxs)(Je,{children:[(0,J.jsx)(Ke,{value:`none`,children:`none`}),g.map(C_)]})]})}})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:`Security Group`}),(0,J.jsx)(hm,{children:Re?`Applies to VPC ${Re}`:`No VPC resolved — select a subnet`}),(0,J.jsx)(tf,{control:A,name:`securityGroupMode`,render:S_}),xe===`create`?(0,J.jsxs)(`div`,{className:`mt-3 space-y-4 rounded-md border border-border p-4`,children:[(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`newSgName`,children:`Name`})}),(0,J.jsx)(Yo,{"aria-invalid":!!N.newSgName,id:`newSgName`,type:`text`,...M(`newSgName`)}),(0,J.jsx)(gm,{errors:[N.newSgName]})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`newSgDescription`,children:`Description`})}),(0,J.jsx)(Yo,{id:`newSgDescription`,type:`text`,...M(`newSgDescription`)})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:`Inbound rules`}),(0,J.jsxs)(`div`,{className:`space-y-1`,children:[(0,J.jsx)(tf,{control:A,name:`allowSsh`,render:x_}),(0,J.jsx)(tf,{control:A,name:`allowHttp`,render:b_}),(0,J.jsx)(tf,{control:A,name:`allowHttps`,render:y_})]})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:`Source`}),(0,J.jsx)(tf,{control:A,name:`ruleSource`,render:v_}),Ce===`custom`&&(0,J.jsxs)(`div`,{className:`mt-2`,children:[(0,J.jsx)(Yo,{"aria-invalid":!!N.customCidr,placeholder:`203.0.113.0/24`,type:`text`,...M(`customCidr`)}),(0,J.jsx)(gm,{errors:[N.customCidr]})]})]})]}):(0,J.jsxs)(`div`,{className:`mt-3`,children:[R.length===0?(0,J.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No security groups in the resolved VPC.`}):(0,J.jsx)(`div`,{className:`space-y-1`,children:R.map(e=>(0,J.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,J.jsx)(`input`,{"aria-label":`Security group ${e.GroupId} (${e.GroupName})`,checked:we.includes(e.GroupId??``),onChange:()=>B(e.GroupId??``),type:`checkbox`}),(0,J.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))}),(0,J.jsx)(gm,{errors:[N.securityGroupIds]})]})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`placementGroupName`,children:`Placement Group`})}),(0,J.jsx)(tf,{control:A,name:`placementGroupName`,render:e=>{let{field:t}=e;return(0,J.jsxs)(Qe,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,J.jsx)(Ze,{className:`w-full`,id:`placementGroupName`,children:(0,J.jsx)(Ue,{})}),(0,J.jsxs)(Je,{children:[(0,J.jsx)(Ke,{value:`none`,children:`none`}),v.map(__)]})]})}})]})]}),at;e[83]===Symbol.for(`react.memo_cache_sentinel`)?(at=(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`count`,children:`Number of Instances`})}),e[83]=at):at=e[83];let st=!!N.count,ct;e[84]===M?ct=e[85]:(ct=M(`count`,{valueAsNumber:!0}),e[84]=M,e[85]=ct);let lt;e[86]!==st||e[87]!==ct?(lt=(0,J.jsx)(Yo,{"aria-describedby":`count-description`,"aria-invalid":st,id:`count`,type:`number`,...ct}),e[86]=st,e[87]=ct,e[88]=lt):lt=e[88];let ut=ue&&`Available capacity for ${ue}: ${de}`,dt;e[89]===ut?dt=e[90]:(dt=(0,J.jsx)(`p`,{className:`text-xs text-muted-foreground`,id:`count-description`,children:ut}),e[89]=ut,e[90]=dt);let ft;e[91]===N.count?ft=e[92]:(ft=(0,J.jsx)(gm,{errors:[N.count]}),e[91]=N.count,e[92]=ft);let pt;e[93]!==lt||e[94]!==dt||e[95]!==ft?(pt=(0,J.jsxs)(pm,{children:[at,lt,dt,ft]}),e[93]=lt,e[94]=dt,e[95]=ft,e[96]=pt):pt=e[96];let mt;e[97]!==A||e[98]!==N.rootDeviceName||e[99]!==N.rootVolumeSize||e[100]!==N.rootVolumeType||e[101]!==M||e[102]!==F.snapshotSize||e[103]!==Ee?(mt=!Ee&&(0,J.jsx)(J.Fragment,{children:(0,J.jsxs)(cm,{children:[(0,J.jsxs)(lm,{className:`group flex h-7 w-full items-center justify-between rounded-md border border-input bg-input/20 px-2 py-0.5 text-sm transition-colors outline-none hover:bg-input/40 focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 md:text-xs/relaxed dark:bg-input/30 dark:hover:bg-input/50`,render:(0,J.jsx)(`button`,{"aria-label":`Block Device Mappings (root volume)`,type:`button`}),children:[(0,J.jsx)(`span`,{children:`Block Device Mappings (root volume)`}),(0,J.jsx)(Ve,{className:`size-3.5 text-muted-foreground transition-transform group-data-[panel-open]:rotate-180`})]}),(0,J.jsxs)(um,{className:`mt-3 space-y-4 rounded-md border border-border p-4`,children:[(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`rootDeviceName`,children:`Device Name`})}),(0,J.jsx)(Yo,{"aria-invalid":!!N.rootDeviceName,id:`rootDeviceName`,type:`text`,...M(`rootDeviceName`)}),(0,J.jsx)(gm,{errors:[N.rootDeviceName]})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`rootVolumeSize`,children:`Volume Size (GiB)`})}),(0,J.jsx)(Yo,{"aria-invalid":!!N.rootVolumeSize,id:`rootVolumeSize`,max:d_,min:F.snapshotSize??u_,placeholder:F.snapshotSize?`${F.snapshotSize} (AMI default)`:`use AMI / backend default`,type:`number`,...M(`rootVolumeSize`,{setValueAs:g_})}),F.snapshotSize!==void 0&&(0,J.jsxs)(hm,{children:[`AMI snapshot size: `,F.snapshotSize,` GiB`]}),(0,J.jsx)(gm,{errors:[N.rootVolumeSize]})]}),(0,J.jsxs)(pm,{children:[(0,J.jsx)(mm,{children:(0,J.jsx)(`label`,{htmlFor:`rootVolumeType`,children:`Volume Type`})}),(0,J.jsx)(tf,{control:A,name:`rootVolumeType`,render:e=>{let{field:t}=e;return(0,J.jsxs)(Qe,{onValueChange:e=>t.onChange(e),value:t.value??l_,children:[(0,J.jsx)(Ze,{"aria-invalid":!!N.rootVolumeType,className:`w-full`,id:`rootVolumeType`,children:(0,J.jsx)(Ue,{})}),(0,J.jsx)(Je,{children:Fg.map(h_)})]})}}),(0,J.jsx)(gm,{errors:[N.rootVolumeType]})]}),(0,J.jsx)(pm,{children:(0,J.jsx)(tf,{control:A,name:`rootDeleteOnTermination`,render:m_})})]})]})}),e[97]=A,e[98]=N.rootDeviceName,e[99]=N.rootVolumeSize,e[100]=N.rootVolumeType,e[101]=M,e[102]=F.snapshotSize,e[103]=Ee,e[104]=mt):mt=e[104];let ht;e[105]!==Re||e[106]!==oe?(ht=N_(oe,Re),e[105]=Re,e[106]=oe,e[107]=ht):ht=e[107];let gt;e[108]===ht?gt=e[109]:(gt=(0,J.jsx)(Ap,{commands:ht}),e[108]=ht,e[109]=gt);let _t=ce||f.isPending,vt;e[110]===t?vt=e[111]:(vt=async()=>await t({to:`/ec2/describe-instances`}),e[110]=t,e[111]=vt);let yt;e[112]!==_t||e[113]!==vt?(yt=(0,J.jsx)(ot,{disabled:_t,onClick:vt,type:`button`,variant:`outline`,children:`Cancel`}),e[112]=_t,e[113]=vt,e[114]=yt):yt=e[114];let bt=ce||f.isPending||!Ee&&O.length===0,xt=ce||f.isPending?`Creating…`:`Create Instance`,St;e[115]!==bt||e[116]!==xt?(St=(0,J.jsx)(ot,{disabled:bt,type:`submit`,children:xt}),e[115]=bt,e[116]=xt,e[117]=St):St=e[117];let Ct;e[118]!==yt||e[119]!==St?(Ct=(0,J.jsxs)(`div`,{className:`flex gap-2`,children:[yt,St]}),e[118]=yt,e[119]=St,e[120]=Ct):Ct=e[120];let wt;e[121]!==et||e[122]!==rt||e[123]!==V||e[124]!==it||e[125]!==pt||e[126]!==mt||e[127]!==gt||e[128]!==Ct?(wt=(0,J.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:et,children:[rt,V,it,pt,mt,gt,Ct]}),e[121]=et,e[122]=rt,e[123]=V,e[124]=it,e[125]=pt,e[126]=mt,e[127]=gt,e[128]=Ct,e[129]=wt):wt=e[129];let Tt;return e[130]!==qe||e[131]!==Ye||e[132]!==Xe||e[133]!==$e||e[134]!==wt?(Tt=(0,J.jsxs)(J.Fragment,{children:[qe,Ye,Xe,$e,wt]}),e[130]=qe,e[131]=Ye,e[132]=Xe,e[133]=$e,e[134]=wt,e[135]=Tt):Tt=e[135],Tt}function m_(e){let{field:t}=e;return(0,J.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,J.jsx)(`input`,{"aria-label":`Delete on termination`,checked:t.value??!0,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Delete on termination`]})}function h_(e){return(0,J.jsx)(Ke,{value:e,children:e},e)}function g_(e){return e===``||e==null?void 0:Number(e)}function __(e){return(0,J.jsxs)(Ke,{value:e.GroupName??``,children:[e.GroupName,` (`,e.Strategy,`)`]},e.GroupId)}function v_(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex gap-4 text-sm`,children:[(0,J.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`input`,{"aria-label":`Source anywhere`,checked:t.value===`anywhere`,onChange:()=>t.onChange(`anywhere`),type:`radio`}),`Anywhere (0.0.0.0/0)`]}),(0,J.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`input`,{"aria-label":`Source custom CIDR`,checked:t.value===`custom`,onChange:()=>t.onChange(`custom`),type:`radio`}),`Custom CIDR`]})]})}function y_(e){let{field:t}=e;return(0,J.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,J.jsx)(`input`,{"aria-label":`Allow HTTPS`,checked:t.value,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Allow HTTPS (tcp/443)`]})}function b_(e){let{field:t}=e;return(0,J.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,J.jsx)(`input`,{"aria-label":`Allow HTTP`,checked:t.value,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Allow HTTP (tcp/80)`]})}function x_(e){let{field:t}=e;return(0,J.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,J.jsx)(`input`,{"aria-label":`Allow SSH`,checked:t.value,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Allow SSH (tcp/22)`]})}function S_(e){let{field:t}=e;return(0,J.jsxs)(`div`,{className:`flex gap-4 text-sm`,children:[(0,J.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`input`,{"aria-label":`Create new security group`,checked:t.value===`create`,onChange:()=>t.onChange(`create`),type:`radio`}),`Create new`]}),(0,J.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,J.jsx)(`input`,{"aria-label":`Select existing security group`,checked:t.value===`existing`,onChange:()=>t.onChange(`existing`),type:`radio`}),`Select existing`]})]})}function C_(e){return(0,J.jsx)(Ke,{value:e.SubnetId??``,children:e.SubnetId},e.SubnetId)}function w_(e){return(0,J.jsx)(Ke,{value:e.KeyName??``,children:e.KeyName},e.KeyPairId)}function T_(e){return(0,J.jsxs)(Ke,{value:e.ImageId??``,children:[e.Name??`Unnamed`,` (`,e.Architecture,`)`]},e.ImageId)}function E_(e){return(0,J.jsxs)(Ke,{value:String(e.VersionNumber),children:[`v`,e.VersionNumber]},e.VersionNumber)}function D_(e){return(0,J.jsx)(Ke,{value:e.LaunchTemplateId??``,children:e.LaunchTemplateName??e.LaunchTemplateId},e.LaunchTemplateId)}function O_(e){return e.endsWith(`.nano`)}function k_(e){return e.GroupName??``}function A_(e){return e.IsDefault}function j_(e){let t=e?.RootDeviceName??c_,n=e?.BlockDeviceMappings??[];return{deviceName:t,snapshotSize:(n.find(e=>e.DeviceName===t)??n[0])?.Ebs?.VolumeSize}}function M_(e,t){if(e.length===0)return;if(!t||t===`$Default`)return e.find(e=>e.DefaultVersion)??e[0];if(t===`$Latest`)return e.toSorted((e,t)=>(t.VersionNumber??0)-(e.VersionNumber??0))[0];let n=Number(t);return e.find(e=>e.VersionNumber===n)}function N_(e,t){let n=e(`launchTemplateId`),r=typeof n==`string`?n:``;if(r){let t=e(`launchTemplateVersion`),n=typeof t==`string`&&t?t:`$Default`,i=e(`count`),a=typeof i==`number`?i:0;return[{label:`Run Instances`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 run-instances`},{type:`flag`,value:` \\ +`)}function Mp(e){let t=(0,Z.c)(18),{commands:n}=e,[r,i]=(0,J.useState)(!1),{copied:a,copy:o}=kp();if(n.length===0)return null;let s;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(s=()=>i(Pp),t[0]=s):s=t[0];let c,l;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(c=(0,Y.jsx)(Bo,{className:`size-3.5`}),l=(0,Y.jsx)(`span`,{children:`AWS CLI`}),t[1]=c,t[2]=l):(c=t[1],l=t[2]);let u=r&&`rotate-180`,d;t[3]===u?d=t[4]:(d=z(`ml-auto size-3.5 transition-transform`,u),t[3]=u,t[4]=d);let f;t[5]===d?f=t[6]:(f=(0,Y.jsx)(Be,{className:d}),t[5]=d,t[6]=f);let p;t[7]!==r||t[8]!==f?(p=(0,Y.jsxs)(`button`,{type:`button`,onClick:s,className:`flex w-full items-center gap-2 px-3 py-2 text-xs font-medium text-muted-foreground transition-colors hover:text-foreground`,"aria-expanded":r,children:[c,l,f]}),t[7]=r,t[8]=f,t[9]=p):p=t[9];let m;t[10]!==n||t[11]!==a||t[12]!==o||t[13]!==r?(m=r&&(0,Y.jsxs)(`div`,{className:`border-t border-border`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between border-b border-border px-3 py-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-[0.625rem] text-muted-foreground`,children:n.length>1?`${n.length} commands`:`command`}),(0,Y.jsxs)(at,{type:`button`,variant:`ghost`,size:`xs`,onClick:async()=>await o(jp(n)),children:[a?(0,Y.jsx)(ze,{className:`size-2.5`}):(0,Y.jsx)($e,{className:`size-2.5`}),a?`Copied`:`Copy`]})]}),(0,Y.jsx)(`div`,{className:`overflow-x-auto p-3`,children:n.map((e,t)=>(0,Y.jsxs)(`div`,{children:[n.length>1&&(0,Y.jsx)(`div`,{className:`mb-1 text-[0.625rem] font-medium text-muted-foreground`,children:e.label}),(0,Y.jsx)(`pre`,{className:`font-mono text-xs/relaxed`,children:(0,Y.jsx)(`code`,{children:e.parts.map(Np)})}),t0}function Lp(e){let t=new Map;for(let n of e){let e=n.InstanceType;!e||t.has(e)||t.set(e,{name:e,gpu:n.GpuInfo?.Gpus?.[0]})}return[...t.values()].toSorted((e,t)=>e.name.localeCompare(t.name))}function Rp(e){let t=(0,Z.c)(6),{entry:n,availability:r}=e,i=n.gpu?.MemoryInfo?.SizeInMiB,a;t[0]===i?a=t[1]:(a=i!==void 0&&` — ${Oe(i)} GPU`,t[0]=i,t[1]=a);let o=r!==void 0&&` (${r} available)`,s;return t[2]!==n.name||t[3]!==a||t[4]!==o?(s=(0,Y.jsxs)(Y.Fragment,{children:[n.name,a,o]}),t[2]=n.name,t[3]=a,t[4]=o,t[5]=s):s=t[5],s}function zp(e){let t=(0,Z.c)(33),{instanceTypes:n,value:r,onValueChange:i,availabilityByType:a,disabled:o,id:s,className:c,"aria-invalid":l}=e,u,d;if(t[0]!==n){let e=Lp(n);u=e.filter(Vp),d=e.filter(Bp),t[0]=n,t[1]=u,t[2]=d}else u=t[1],d=t[2];let f;t[3]!==u||t[4]!==d?(f={standardEntries:u,gpuEntries:d},t[3]=u,t[4]=d,t[5]=f):f=t[5];let{standardEntries:p,gpuEntries:m}=f,h=p.length>0&&m.length>0,g;t[6]===i?g=t[7]:(g=e=>i(e??``),t[6]=i,t[7]=g);let _;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(_=(0,Y.jsx)(He,{}),t[8]=_):_=t[8];let v;t[9]!==l||t[10]!==c||t[11]!==s?(v=(0,Y.jsx)(Xe,{"aria-invalid":l,className:c,id:s,children:_}),t[9]=l,t[10]=c,t[11]=s,t[12]=v):v=t[12];let y;t[13]!==a||t[14]!==h||t[15]!==p?(y=p.length>0&&(0,Y.jsxs)(Ye,{children:[h&&(0,Y.jsx)(Ve,{children:`Standard`}),p.map(e=>(0,Y.jsx)(Ge,{value:e.name,children:(0,Y.jsx)(Rp,{availability:a?.[e.name],entry:e})},e.name))]}),t[13]=a,t[14]=h,t[15]=p,t[16]=y):y=t[16];let b;t[17]===h?b=t[18]:(b=h&&(0,Y.jsx)(Je,{}),t[17]=h,t[18]=b);let x;t[19]!==a||t[20]!==m||t[21]!==h?(x=m.length>0&&(0,Y.jsxs)(Ye,{children:[h&&(0,Y.jsx)(Ve,{children:`GPU-Accelerated`}),m.map(e=>(0,Y.jsx)(Ge,{value:e.name,children:(0,Y.jsx)(Rp,{availability:a?.[e.name],entry:e})},e.name))]}),t[19]=a,t[20]=m,t[21]=h,t[22]=x):x=t[22];let S;t[23]!==y||t[24]!==b||t[25]!==x?(S=(0,Y.jsxs)(qe,{children:[y,b,x]}),t[23]=y,t[24]=b,t[25]=x,t[26]=S):S=t[26];let C;return t[27]!==o||t[28]!==S||t[29]!==g||t[30]!==v||t[31]!==r?(C=(0,Y.jsxs)(Ze,{disabled:o,onValueChange:g,value:r,children:[v,S]}),t[27]=o,t[28]=S,t[29]=g,t[30]=v,t[31]=r,t[32]=C):C=t[32],C}function Bp(e){return e.gpu}function Vp(e){return!e.gpu}function Hp(e){let t=(0,Z.c)(12),{title:n,subtitle:r,actions:i}=e,a;t[0]===n?a=t[1]:(a=(0,Y.jsx)(`h1`,{className:`text-3xl`,children:n}),t[0]=n,t[1]=a);let o;t[2]===r?o=t[3]:(o=r&&(0,Y.jsx)(`p`,{className:`mt-1 text-muted-foreground`,children:r}),t[2]=r,t[3]=o);let s;t[4]!==a||t[5]!==o?(s=(0,Y.jsxs)(`div`,{children:[a,o]}),t[4]=a,t[5]=o,t[6]=s):s=t[6];let c;t[7]===i?c=t[8]:(c=i&&(0,Y.jsx)(`div`,{children:i}),t[7]=i,t[8]=c);let l;return t[9]!==s||t[10]!==c?(l=(0,Y.jsxs)(`div`,{className:`mb-6 flex items-start justify-between`,children:[s,c]}),t[9]=s,t[10]=c,t[11]=l):l=t[11],l}function Up(e){let{open:t,defaultOpen:n,onOpenChange:r,disabled:i}=e,[a,o]=Dn({controlled:t,default:n,name:`Collapsible`,state:`open`}),{mounted:s,setMounted:c,transitionStatus:l}=wn(a,!0,!0),u=mt(),[d,f]=J.useState(),p=d??u,m=it(e=>{let t=!a,n=Ct(_t,e.nativeEvent);r(t,n),!n.isCanceled&&o(t)});return J.useMemo(()=>({disabled:i,handleTrigger:m,mounted:s,open:a,panelId:p,setMounted:c,setOpen:o,setPanelIdState:f,transitionStatus:l}),[i,m,s,a,p,c,o,f,l])}var Wp=J.createContext(void 0);function Gp(){let e=J.useContext(Wp);if(e===void 0)throw Error(Ce(15));return e}var Kp=function(e){return e.open=`data-open`,e.closed=`data-closed`,e[e.startingStyle=Cn.startingStyle]=`startingStyle`,e[e.endingStyle=Cn.endingStyle]=`endingStyle`,e}({}),qp=function(e){return e.panelOpen=`data-panel-open`,e}({}),Jp={[Kp.open]:``},Yp={[Kp.closed]:``},Xp={open(e){return e?{[qp.panelOpen]:``}:null}},Zp={open(e){return e?Jp:Yp},...Tn},Qp=J.forwardRef(function(e,t){let{render:n,className:r,defaultOpen:i=!1,disabled:a=!1,onOpenChange:o,open:s,style:c,...l}=e,u=it(o),d=Up({open:s,defaultOpen:i,onOpenChange:u,disabled:a}),f=J.useMemo(()=>({open:d.open,disabled:d.disabled,transitionStatus:d.transitionStatus}),[d.open,d.disabled,d.transitionStatus]),p=J.useMemo(()=>({...d,onOpenChange:u,state:f}),[d,u,f]),m=be(`div`,e,{state:f,ref:t,props:l,stateAttributesMapping:Zp});return(0,Y.jsx)(Wp.Provider,{value:p,children:m})}),$p={...Xp,...Tn},em=J.forwardRef(function(e,t){let{panelId:n,open:r,handleTrigger:i,state:a,disabled:o}=Gp(),{className:s,disabled:c=o,render:l,nativeButton:u=!0,style:d,...f}=e,{getButtonProps:p,buttonRef:m}=rt({disabled:c,focusableWhenDisabled:!0,native:u});return be(`button`,e,{state:a,ref:[t,m],props:[{"aria-controls":r?n:void 0,"aria-expanded":r,onClick:i},f,p],stateAttributesMapping:$p})}),tm={height:void 0,width:void 0};function nm(e){let{externalRef:t,hiddenUntilFound:n,id:r,keepMounted:i,mounted:a,onOpenChange:o,open:s,setMounted:c,setOpen:l,transitionStatus:u}=e,d=J.useRef(null),f=J.useRef(null),[p,m]=J.useState(tm),h=J.useRef(tm),g=J.useRef(!1),_=J.useRef(s),v=J.useRef(!1),[y,b]=J.useState(!1),x=J.useRef(null),S=_e(t,d),C=En({mounted:a,open:s}),w=vn(d,!1,!1),T=!s&&!a,E=y?`idle`:u,D=s&&(_.current||v.current),O=!s&&a&&f.current===`css-animation`&&p.height===void 0&&p.width===void 0?h.current:p,k=n&&T&&f.current!==`css-animation`,A=it((e,t=!0)=>{t&&(h.current=e),m(e)}),ee=it(()=>{x.current?.(),x.current=null}),te=it(e=>{ee(),x.current=()=>{x.current=null,e()}}),ne=it(()=>{s&&a&&f.current===`css-animation`&&(v.current=!0)});H(()=>{!y||u===`starting`||b(!1)},[y,u]),J.useEffect(()=>()=>{ne(),ee()},[ne,ee]),H(()=>{let e=d.current;if(!e)return;!s&&x.current&&ee();let t=im(e,D);if(f.current=t,s&&u===`idle`&&_.current&&t===`css-animation`){h.current=rm(e);return}if(s&&u===`starting`){let n=g.current;if(g.current=!1,t===`none`){A(rm(e)),b(!0);return}if(t===`css-transition`){let t=sm(e);if(A(rm(e)),!n)return t;let r=om(e,`transition-duration`,`0s`);return te(r),b(!0),t}if(t===`css-animation`){if(A(rm(e)),!n){om(e,`animation-name`,`none`)();return}let t=om(e,`animation-name`,`none`),r=om(e,`animation-duration`,`0s`);t(),te(r),b(!0);return}}if(!s&&a&&(u===`idle`||u===`starting`)){if(_.current=!1,v.current=!1,t===`none`){A(tm,!1),c(!1);return}A(rm(e));return}if(u!==`ending`)return;if(t===`none`){c(!1);return}let n=rm(e);if(!((n.height??0)>0||(n.width??0)>0)){c(!1);return}A(n),t===`css-animation`&&om(e,`animation-name`,`none`)()},[a,s,ee,A,c,te,D,u]),bn({enabled:s&&a&&E===`idle`,open:!0,ref:d,onComplete(){s&&A(tm,!1)}}),J.useEffect(()=>{if(s||!a||E!==`ending`||!d.current)return;let e=new AbortController,t=-1;function n(){C.current.open||(c(!1),A(tm,!1))}return t=xn.request(()=>{e.signal.aborted||w(n,e.signal)}),()=>{xn.cancel(t),e.abort()}},[C,a,s,E,w,A,c]),H(()=>{let e=d.current;!e||!n||!T||e.setAttribute(`hidden`,`until-found`)},[T,n]),J.useEffect(function(){let e=d.current;if(!e)return;function t(e){let t=Ct(gt,e);o(!0,t),!t.isCanceled&&(g.current=!0,l(!0))}return Sn(e,`beforematch`,t)},[o,l]);let j=i||n||a||s;return{height:O.height,props:{...k?{[Kp.startingStyle]:``}:void 0,hidden:T,id:r},ref:S,shouldPreventOpenAnimation:D,shouldRender:j,transitionStatus:E,width:O.width}}function rm(e){return{height:e.scrollHeight,width:e.scrollWidth}}function im(e,t=!1){let n=et(e).getComputedStyle(e),r=(n.animationName.split(`,`).map(e=>e.trim()).some(e=>e!==``&&e!==`none`)||t)&&am(n.animationDuration),i=am(n.transitionDuration);return r&&i||i?`css-transition`:r?`css-animation`:`none`}function am(e){return e.split(`,`).map(e=>e.trim()).some(e=>e!==``&&Number.parseFloat(e)>0)}function om(e,t,n){let r=e.style.getPropertyValue(t),i=e.style.getPropertyPriority(t);return e.style.setProperty(t,n),()=>{if(r===``){e.style.removeProperty(t);return}e.style.setProperty(t,r,i)}}function sm(e){let t={"justify-content":e.style.justifyContent,"align-items":e.style.alignItems,"align-content":e.style.alignContent,"justify-items":e.style.justifyItems};Object.keys(t).forEach(t=>{e.style.setProperty(t,`initial`,`important`)});function n(){Object.entries(t).forEach(([t,n])=>{if(n===``){e.style.removeProperty(t);return}e.style.setProperty(t,n)})}let r=xn.request(n);return()=>{xn.cancel(r),n()}}var cm=function(e){return e.collapsiblePanelHeight=`--collapsible-panel-height`,e.collapsiblePanelWidth=`--collapsible-panel-width`,e}({}),lm=J.forwardRef(function(e,t){let{className:n,hiddenUntilFound:r,keepMounted:i,render:a,id:o,style:s,...c}=e,{mounted:l,onOpenChange:u,open:d,panelId:f,setMounted:p,setPanelIdState:m,setOpen:h,state:g,transitionStatus:_}=Gp(),v=r??!1,y=i??!1;H(()=>{if(o)return m(o),()=>{m(void 0)}},[o,m]);let{height:b,props:x,ref:S,shouldPreventOpenAnimation:C,shouldRender:w,transitionStatus:T,width:E}=nm({externalRef:t,hiddenUntilFound:v,id:f,keepMounted:y,mounted:l,onOpenChange:u,open:d,setMounted:p,setOpen:h,transitionStatus:_}),D={...g,transitionStatus:T},O=xe(s,D),k=be(`div`,{...e,style:void 0},{state:D,ref:S,props:[x,{style:{[cm.collapsiblePanelHeight]:b===void 0?`auto`:`${b}px`,[cm.collapsiblePanelWidth]:E===void 0?`auto`:`${E}px`}},c,O?{style:O}:void 0,C?{style:{animationName:`none`}}:void 0],stateAttributesMapping:Zp});return w?k:null});function um(e){let t=(0,Z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Y.jsx)(Qp,{"data-slot":`collapsible`,...n}),t[2]=n,t[3]=r),r}function dm(e){let t=(0,Z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Y.jsx)(em,{"data-slot":`collapsible-trigger`,...n}),t[2]=n,t[3]=r),r}function fm(e){let t=(0,Z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Y.jsx)(lm,{"data-slot":`collapsible-content`,...n}),t[2]=n,t[3]=r),r}function pm(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`group/field-group @container/field-group flex w-full flex-col gap-4 data-[slot=checkbox-group]:gap-3 *:data-[slot=field-group]:gap-4`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-slot":`field-group`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}var mm=Se(`group/field flex w-full gap-2 data-[invalid=true]:text-destructive`,{variants:{orientation:{vertical:`flex-col [&>*]:w-full [&>.sr-only]:w-auto`,horizontal:`flex-row items-center has-[>[data-slot=field-content]]:items-start [&>[data-slot=field-label]]:flex-auto has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`,responsive:`flex-col @md/field-group:flex-row @md/field-group:items-center @md/field-group:has-[>[data-slot=field-content]]:items-start [&>*]:w-full @md/field-group:[&>*]:w-auto [&>.sr-only]:w-auto @md/field-group:[&>[data-slot=field-label]]:flex-auto @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px`}},defaultVariants:{orientation:`vertical`}});function hm(e){let t=(0,Z.c)(11),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,orientation:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i===void 0?`vertical`:i,o;t[4]!==n||t[5]!==a?(o=z(mm({orientation:a}),n),t[4]=n,t[5]=a,t[6]=o):o=t[6];let s;return t[7]!==a||t[8]!==r||t[9]!==o?(s=(0,Y.jsx)(`div`,{className:o,"data-orientation":a,"data-slot":`field`,role:`group`,...r}),t[7]=a,t[8]=r,t[9]=o,t[10]=s):s=t[10],s}function gm(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`flex w-fit items-center gap-2 text-xs/relaxed leading-snug font-medium group-data-[disabled=true]/field:opacity-50`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-slot":`field-label`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function _m(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`text-left text-xs/relaxed leading-normal font-normal text-muted-foreground group-has-data-[orientation=horizontal]/field:text-balance [[data-variant=legend]+&]:-mt-1.5`,`last:mt-0 nth-last-2:-mt-1`,`[&>a]:underline [&>a]:underline-offset-4 [&>a:hover]:text-primary`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`p`,{className:i,"data-slot":`field-description`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function vm(e){let t=(0,Z.c)(15),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:r,children:n,errors:i,...a}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o;bb0:{if(n){o=n;break bb0}if(!i?.length){o=null;break bb0}let e;t[5]===i?e=t[6]:(e=[...new Map(i.map(bm)).values()],t[5]=i,t[6]=e);let r=e;if(r?.length===1){o=r[0]?.message;break bb0}let a;t[7]===r?a=t[8]:(a=(0,Y.jsx)(`ul`,{className:`ml-4 flex list-disc flex-col gap-1`,children:r.map(ym)}),t[7]=r,t[8]=a),o=a}let s=o;if(!s)return null;let c;t[9]===r?c=t[10]:(c=z(`text-xs/relaxed font-normal text-destructive`,r),t[9]=r,t[10]=c);let l;return t[11]!==s||t[12]!==a||t[13]!==c?(l=(0,Y.jsx)(`div`,{className:c,"data-slot":`field-error`,role:`alert`,...a,children:s}),t[11]=s,t[12]=a,t[13]=c,t[14]=l):l=t[14],l}function ym(e){return e?.message&&(0,Y.jsx)(`li`,{children:e.message},e.message)}function bm(e){return[e?.message,e]}var xm=/\s+/;function Sm(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Cm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function Cm(e){let t=new td({InstanceIds:[e]});return await W().send(t)}function wm(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Tm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function Tm(e){let t=new nd({InstanceIds:[e]});return await W().send(t)}function Em(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Dm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function Dm(e){let t=new rd({InstanceIds:[e]});return await W().send(t)}function Om(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:km,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function km(e){let t=new Yu({InstanceIds:[e]});return await W().send(t)}function Am(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:jm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]})}},e[0]=t,e[1]=n),T(n)}async function jm(e){let t=W(),n=await Mm(t,e),r=new ed({ImageId:e.imageId||void 0,InstanceType:e.instanceType?e.instanceType:void 0,KeyName:e.keyName||void 0,MinCount:e.count,MaxCount:e.count,SubnetId:e.subnetId||void 0,SecurityGroupIds:n.length>0?n:void 0,Placement:e.placementGroupName?{GroupName:e.placementGroupName}:void 0,BlockDeviceMappings:Nm(e),LaunchTemplate:e.launchTemplateId?{LaunchTemplateId:e.launchTemplateId,Version:e.launchTemplateVersion||`$Default`}:void 0});return await t.send(r)}async function Mm(e,t){if(t.securityGroupMode!==`create`)return t.securityGroupIds??[];let n=(await e.send(new yu({GroupName:t.newSgName,Description:t.newSgDescription||`Created by launch wizard`,VpcId:t.resolvedVpcId}))).GroupId;if(!n)throw Error(`Security group was created but no ID was returned`);let r=[...t.allowSsh?[22]:[],...t.allowHttp?[80]:[],...t.allowHttps?[443]:[]];if(r.length>0){let i=t.ruleSource===`custom`&&t.customCidr?t.customCidr:`0.0.0.0/0`;await e.send(new cu({GroupId:n,IpPermissions:r.map(e=>({IpProtocol:`tcp`,FromPort:e,ToPort:e,IpRanges:[{CidrIp:i}]}))}))}return[n]}function Nm(e){let{rootDeviceName:t,rootVolumeSize:n,rootVolumeType:r,rootDeleteOnTermination:i}=e;return n!==void 0||r!==void 0||i!==void 0?[{DeviceName:t,Ebs:{...n!==void 0&&{VolumeSize:n},...r!==void 0&&{VolumeType:r},...i!==void 0&&{DeleteOnTermination:i}}}]:void 0}var Pm=`/dev/sda1`;function Fm(e){let t=new TextEncoder().encode(e),n=``;for(let e of t)n+=String.fromCodePoint(e);return btoa(n)}function Im(e){let t={};e.imageId&&(t.ImageId=e.imageId),e.instanceType&&(t.InstanceType=e.instanceType),e.keyName&&(t.KeyName=e.keyName);let n=e.securityGroupIds??[];return e.subnetId?t.NetworkInterfaces=[{DeviceIndex:0,SubnetId:e.subnetId,Groups:n.length>0?n:void 0}]:n.length>0&&(t.SecurityGroupIds=n),(e.rootVolumeSize!==void 0||e.rootVolumeType!==void 0)&&(t.BlockDeviceMappings=[{DeviceName:Pm,Ebs:{...e.rootVolumeSize!==void 0&&{VolumeSize:e.rootVolumeSize},...e.rootVolumeType!==void 0&&{VolumeType:e.rootVolumeType}}}]),e.userData&&(t.UserData=Fm(e.userData)),t}function Lm(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Rm,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]})}},e[0]=t,e[1]=n),T(n)}async function Rm(e){let t=new pu({LaunchTemplateName:e.launchTemplateName,VersionDescription:e.versionDescription||void 0,LaunchTemplateData:Im(e)});return await W().send(t)}function zm(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Bm,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]}),t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`,n.launchTemplateId,`versions`]})}},e[0]=t,e[1]=n),T(n)}async function Bm(e){let t=new mu({LaunchTemplateId:e.launchTemplateId,SourceVersion:e.sourceVersion||void 0,VersionDescription:e.versionDescription||void 0,LaunchTemplateData:Im(e)});return await W().send(t)}function Vm(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Hm,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]}),t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`,n.launchTemplateId,`versions`]})}},e[0]=t,e[1]=n),T(n)}async function Hm(e){let t=new Ku({LaunchTemplateId:e.launchTemplateId,DefaultVersion:e.defaultVersion});return await W().send(t)}function Um(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Wm,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]}),t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`,n.launchTemplateId,`versions`]})}},e[0]=t,e[1]=n),T(n)}async function Wm(e){let t=new Du({LaunchTemplateId:e.launchTemplateId,Versions:e.versions});return await W().send(t)}function Gm(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Km,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`launchTemplates`]})}},e[0]=t,e[1]=n),T(n)}async function Km(e){let t=new Eu({LaunchTemplateId:e});return await W().send(t)}function qm(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Jm,onSuccess:()=>{t.invalidateQueries(li)}},e[0]=t,e[1]=n),T(n)}async function Jm(e){let t=new fu({KeyName:e.keyName,KeyType:e.keyType}),n=await W().send(t);if(!n.KeyMaterial)throw Error(`Key pair was created but the API returned no private key. The key cannot be recovered — delete it and try again.`);return n}function Ym(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Xm,onSuccess:()=>{t.invalidateQueries(li)}},e[0]=t,e[1]=n),T(n)}async function Xm(e){let t=e.publicKeyMaterial.trim().split(xm).slice(0,2).join(` `),n=new Wu({KeyName:e.keyName,PublicKeyMaterial:new TextEncoder().encode(t)});return await W().send(n)}function Zm(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Qm,onSuccess:()=>{t.invalidateQueries(li)}},e[0]=t,e[1]=n),T(n)}async function Qm(e){let t=new Tu({KeyPairId:e});return await W().send(t)}function $m(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:eh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]})}},e[0]=t,e[1]=n),T(n)}async function eh(e){let t=new Su({Size:e.size,AvailabilityZone:e.availabilityZone,VolumeType:`gp3`});return await W().send(t)}function th(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:nh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]})}},e[0]=t,e[1]=n),T(n)}async function nh(e){let t=new Ju({VolumeId:e.volumeId,Size:e.size});return await W().send(t)}function rh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:ih,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]})}},e[0]=t,e[1]=n),T(n)}async function ih(e){let t=new Fu({VolumeId:e});return await W().send(t)}function ah(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:oh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`snapshots`]})}},e[0]=t,e[1]=n),T(n)}async function oh(e){let t=new bu({VolumeId:e.volumeId,Description:e.description||void 0});return await W().send(t)}function sh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:ch,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`snapshots`]})}},e[0]=t,e[1]=n),T(n)}async function ch(e){let t=new Nu({SnapshotId:e});return await W().send(t)}function lh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:uh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`snapshots`]})}},e[0]=t,e[1]=n),T(n)}async function uh(e){let t=new lu({SourceSnapshotId:e.sourceSnapshotId,SourceRegion:e.sourceRegion,Description:e.description||void 0});return await W().send(t)}function dh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:fh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function fh(e){let t=new ou({VolumeId:e.volumeId,InstanceId:e.instanceId,Device:e.device||void 0});return await W().send(t)}function ph(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:mh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`volumes`]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function mh(e){let t=new zu({VolumeId:e.volumeId,InstanceId:e.instanceId||void 0,Force:e.force});return await W().send(t)}function hh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:gh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function gh(e){let{instanceId:t,...n}=e,r=new Gu({InstanceId:t,InstanceType:{Value:n.instanceType}});return await W().send(r)}function _h(){let e=(0,Z.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t={mutationFn:vh},e[0]=t):t=e[0],T(t)}async function vh(e){let t=new Uu({InstanceId:e});return await W().send(t)}function yh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:bh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`images`]})}},e[0]=t,e[1]=n),T(n)}async function bh(e){let t=new uu({InstanceId:e.instanceId,Name:e.name,Description:e.description||void 0});return await W().send(t)}function xh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Sh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`images`]})}},e[0]=t,e[1]=n),T(n)}async function Sh(e){let t=new Xu({Name:e.name,Description:e.description||void 0,BlockDeviceMappings:[{DeviceName:`/dev/sda1`,Ebs:{SnapshotId:e.snapshotId}}]});return await W().send(t)}function Ch(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:wh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`images`]})}},e[0]=t,e[1]=n),T(n)}async function wh(e){let t=new Lu({ImageId:e});return await W().send(t)}function Th(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Eh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`vpcs`]})}},e[0]=t,e[1]=n),T(n)}async function Eh(e){let t=new Cu({CidrBlock:e.cidrBlock,TagSpecifications:e.name?[{ResourceType:`vpc`,Tags:[{Key:`Name`,Value:e.name}]}]:void 0});return await W().send(t)}function Dh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Oh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`vpcs`]})}},e[0]=t,e[1]=n),T(n)}async function Oh(e){let t=new Iu({VpcId:e});return await W().send(t)}function kh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Ah,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`subnets`]})}},e[0]=t,e[1]=n),T(n)}async function Ah(e){let t=W(),n=await t.send(new xu({VpcId:e.vpcId,CidrBlock:e.cidrBlock,AvailabilityZone:e.availabilityZone||void 0})),r=n.Subnet?.SubnetId;return e.mapPublicIpOnLaunch&&r&&await t.send(new qu({SubnetId:r,MapPublicIpOnLaunch:{Value:!0}})),n}function jh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Mh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`subnets`]})}},e[0]=t,e[1]=n),T(n)}async function Mh(e){let t=new Pu({SubnetId:e});return await W().send(t)}function Nh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Ph,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`placementGroups`]})}},e[0]=t,e[1]=n),T(n)}async function Ph(e){let t=new gu({GroupName:e.groupName,Strategy:e.strategy});return await W().send(t)}function Fh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Ih,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`placementGroups`]})}},e[0]=t,e[1]=n),T(n)}async function Ih(e){let t=new ku({GroupName:e});return await W().send(t)}function Lh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Rh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]})}},e[0]=t,e[1]=n),T(n)}async function Rh(e){let t=new yu({GroupName:e.groupName,Description:e.description,VpcId:e.vpcId});return await W().send(t)}function zh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Bh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]})}},e[0]=t,e[1]=n),T(n)}async function Bh(e){let t=new Mu({GroupId:e});return await W().send(t)}function Vh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Hh,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`,n.groupId]})}},e[0]=t,e[1]=n),T(n)}async function Hh(e){let t=new cu({GroupId:e.groupId,IpPermissions:[{IpProtocol:e.ipProtocol,FromPort:e.fromPort,ToPort:e.toPort,IpRanges:[{CidrIp:e.cidrIp}]}]});return await W().send(t)}function Uh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Wh,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`,n.groupId]})}},e[0]=t,e[1]=n),T(n)}async function Wh(e){let t=new su({GroupId:e.groupId,IpPermissions:[{IpProtocol:e.ipProtocol,FromPort:e.fromPort,ToPort:e.toPort,IpRanges:[{CidrIp:e.cidrIp}]}]});return await W().send(t)}function Gh(e){return{IpProtocol:e.ipProtocol,FromPort:e.fromPort,ToPort:e.toPort,...e.sourceGroupId?{UserIdGroupPairs:[{GroupId:e.sourceGroupId}]}:{IpRanges:[{CidrIp:e.cidrIp??``}]}}}function Kh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:qh,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`,n.groupId]})}},e[0]=t,e[1]=n),T(n)}async function qh(e){let t=new $u({GroupId:e.groupId,IpPermissions:[Gh(e)]});return await W().send(t)}function Jh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Yh,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`securityGroups`]}),t.invalidateQueries({queryKey:[`ec2`,`securityGroups`,n.groupId]})}},e[0]=t,e[1]=n),T(n)}async function Yh(e){let t=new Qu({GroupId:e.groupId,IpPermissions:[Gh(e)]});return await W().send(t)}function Xh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Zh,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`internetGateways`]})}},e[0]=t,e[1]=n),T(n)}async function Zh(e){let t=new du({TagSpecifications:Ng(id.internet_gateway,e?.name,[])});return await W().send(t)}function Qh(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:$h,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`internetGateways`]})}},e[0]=t,e[1]=n),T(n)}async function $h(e){let t=new wu({InternetGatewayId:e});return await W().send(t)}function eg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:tg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`internetGateways`]})}},e[0]=t,e[1]=n),T(n)}async function tg(e){let t=new au({InternetGatewayId:e.internetGatewayId,VpcId:e.vpcId});return await W().send(t)}function ng(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:rg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`internetGateways`]})}},e[0]=t,e[1]=n),T(n)}async function rg(e){let t=new Ru({InternetGatewayId:e.internetGatewayId,VpcId:e.vpcId});return await W().send(t)}function ig(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:ag,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`addresses`]})}},e[0]=t,e[1]=n),T(n)}async function ag(e){let t=new tu({Domain:`vpc`,TagSpecifications:Ng(id.elastic_ip,e?.name,[])});return await W().send(t)}function og(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:sg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`addresses`]})}},e[0]=t,e[1]=n),T(n)}async function sg(e){let t=new Zu({AllocationId:e});return await W().send(t)}function cg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:lg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`addresses`]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function lg(e){let t=new nu({AllocationId:e.allocationId,InstanceId:e.instanceId,NetworkInterfaceId:e.networkInterfaceId});return await W().send(t)}function ug(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:dg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`addresses`]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function dg(e){let t=new Bu({AssociationId:e});return await W().send(t)}function fg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:pg,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`iam-instance-profile-associations`,n.instanceId]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function pg(e){let t=new ru({InstanceId:e.instanceId,IamInstanceProfile:{Name:e.instanceProfileName}});return await W().send(t)}function mg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:hg,onSuccess:(e,n)=>{t.invalidateQueries({queryKey:[`ec2`,`iam-instance-profile-associations`,n.instanceId]}),t.invalidateQueries({queryKey:[`ec2`,`instances`]})}},e[0]=t,e[1]=n),T(n)}async function hg(e){let t=new Vu({AssociationId:e.associationId});return await W().send(t)}function gg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:_g,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`natGateways`]}),t.invalidateQueries({queryKey:[`ec2`,`addresses`]})}},e[0]=t,e[1]=n),T(n)}async function _g(e){let t=new hu({SubnetId:e.subnetId,AllocationId:e.allocationId,TagSpecifications:Ng(id.natgateway,e.name,[])});return await W().send(t)}function vg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:yg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`natGateways`]})}},e[0]=t,e[1]=n),T(n)}async function yg(e){let t=new Ou({NatGatewayId:e});return await W().send(t)}function bg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:xg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function xg(e){let t=new vu({VpcId:e.vpcId,TagSpecifications:Ng(id.route_table,e.name,[])});return await W().send(t)}function Sg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Cg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function Cg(e){let t=new ju({RouteTableId:e});return await W().send(t)}function wg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Tg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function Tg(e){let t=new _u({RouteTableId:e.routeTableId,DestinationCidrBlock:e.destinationCidrBlock,GatewayId:e.gatewayId,NatGatewayId:e.natGatewayId});return await W().send(t)}function Eg(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:Dg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function Dg(e){let t=new Au({RouteTableId:e.routeTableId,DestinationCidrBlock:e.destinationCidrBlock});return await W().send(t)}function Og(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:kg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function kg(e){let t=new iu({RouteTableId:e.routeTableId,SubnetId:e.subnetId});return await W().send(t)}function Ag(){let e=(0,Z.c)(2),t=h(),n;return e[0]===t?n=e[1]:(n={mutationFn:jg,onSuccess:()=>{t.invalidateQueries({queryKey:[`ec2`,`routeTables`]})}},e[0]=t,e[1]=n),T(n)}async function jg(e){let t=new Hu({AssociationId:e});return await W().send(t)}function Mg(e,t){let n=[];return e&&n.push({Key:`Name`,Value:e}),n.push(...t),n}function Ng(e,t,n){let r=Mg(t,n);if(r.length!==0)return[{ResourceType:e,Tags:r}]}function Pg(){let e=h();return T({mutationFn:async e=>{let t=W(),n=[],r=e.autoGenerateNames?e.namePrefix:void 0,i=e.tags.map(e=>({Key:e.key,Value:e.value})),a=`creating VPC`;try{let o=r?`${r}-vpc`:e.namePrefix,s=e.tenancy,c=(await t.send(new Cu({CidrBlock:e.cidrBlock,InstanceTenancy:s,TagSpecifications:Ng(id.vpc,o,i)}))).Vpc?.VpcId;if(!c)throw Error(`VPC was created but no VPC ID was returned by the API`);if(n.push({type:`VPC`,id:c}),e.mode===`vpc-only`)return{vpcId:c,created:n};let l=ua(e.cidrBlock,e.publicSubnetCount,e.privateSubnetCount),u=e.publicSubnetCidrs.length>0?e.publicSubnetCidrs:l.publicSubnets.map(e=>e.cidr),d=e.privateSubnetCidrs.length>0?e.privateSubnetCidrs:l.privateSubnets.map(e=>e.cidr);a=`creating public subnets`;let f=await Promise.all(Array.from({length:e.publicSubnetCount},async(e,a)=>{let o=r?`${r}-subnet-public-${a+1}`:void 0,s=(await t.send(new xu({VpcId:c,CidrBlock:u[a],TagSpecifications:Ng(id.subnet,o,i)}))).Subnet?.SubnetId;if(!s)throw Error(`Public subnet ${a+1} was created but no subnet ID was returned`);return n.push({type:`Public Subnet`,id:s}),await t.send(new qu({SubnetId:s,MapPublicIpOnLaunch:{Value:!0}})),s}));a=`creating private subnets`;let p=await Promise.all(Array.from({length:e.privateSubnetCount},async(e,a)=>{let o=r?`${r}-subnet-private-${a+1}`:void 0,s=(await t.send(new xu({VpcId:c,CidrBlock:d[a],TagSpecifications:Ng(id.subnet,o,i)}))).Subnet?.SubnetId;if(!s)throw Error(`Private subnet ${a+1} was created but no subnet ID was returned`);return n.push({type:`Private Subnet`,id:s}),s}));if(e.publicSubnetCount>0){a=`creating internet gateway`;let e=r?`${r}-igw`:void 0,o=(await t.send(new du({TagSpecifications:Ng(id.internet_gateway,e,i)}))).InternetGateway?.InternetGatewayId;if(!o)throw Error(`Internet gateway was created but no ID was returned`);n.push({type:`Internet Gateway`,id:o}),a=`attaching internet gateway to VPC`,await t.send(new au({InternetGatewayId:o,VpcId:c})),a=`creating public route table`;let s=r?`${r}-rtb-public`:void 0,l=(await t.send(new vu({VpcId:c,TagSpecifications:Ng(id.route_table,s,i)}))).RouteTable?.RouteTableId;if(!l)throw Error(`Public route table was created but no ID was returned`);n.push({type:`Public Route Table`,id:l}),a=`creating default route to internet gateway`,await t.send(new _u({RouteTableId:l,DestinationCidrBlock:`0.0.0.0/0`,GatewayId:o})),a=`associating public subnets with route table`,await Promise.all(f.map(async e=>await t.send(new iu({RouteTableId:l,SubnetId:e}))))}if(e.privateSubnetCount>0){a=`creating private route table`;let o=r?`${r}-rtb-private`:void 0,s=(await t.send(new vu({VpcId:c,TagSpecifications:Ng(id.route_table,o,i)}))).RouteTable?.RouteTableId;if(!s)throw Error(`Private route table was created but no ID was returned`);if(n.push({type:`Private Route Table`,id:s}),a=`associating private subnets with route table`,await Promise.all(p.map(async e=>await t.send(new iu({RouteTableId:s,SubnetId:e})))),e.natGateway===`single`&&f[0]){a=`allocating Elastic IP for NAT gateway`;let e=(await t.send(new tu({Domain:`vpc`,TagSpecifications:Ng(id.elastic_ip,r?`${r}-eip-nat`:void 0,i)}))).AllocationId;if(!e)throw Error(`Elastic IP was allocated but no allocation ID was returned`);n.push({type:`Elastic IP`,id:e}),a=`creating NAT gateway`;let o=(await t.send(new hu({SubnetId:f[0],AllocationId:e,TagSpecifications:Ng(id.natgateway,r?`${r}-nat`:void 0,i)}))).NatGateway?.NatGatewayId;if(!o)throw Error(`NAT gateway was created but no ID was returned`);n.push({type:`NAT Gateway`,id:o}),a=`creating default route to NAT gateway`,await t.send(new _u({RouteTableId:s,DestinationCidrBlock:`0.0.0.0/0`,NatGatewayId:o}))}}return{vpcId:c,created:n}}catch(e){return{vpcId:n.find(e=>e.type===`VPC`)?.id,created:n,error:e instanceof Error?e:Error(String(e)),failedStep:`Failed while ${a}`}}},onSuccess:()=>{e.invalidateQueries({queryKey:[`ec2`,`vpcs`]}),e.invalidateQueries({queryKey:[`ec2`,`subnets`]}),e.invalidateQueries({queryKey:[`ec2`,`internetGateways`]}),e.invalidateQueries({queryKey:[`ec2`,`routeTables`]}),e.invalidateQueries({queryKey:[`ec2`,`natGateways`]}),e.invalidateQueries({queryKey:[`ec2`,`addresses`]})}})}var Fg=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/\d{1,2}$/,Ig=R().min(1,`Key name is required`).max(255,`Key name must be 255 characters or less`).regex(/^[\w\s._\-:/()#,@[\]+=&;{}!$*]+$/,`Key name contains invalid characters`),Lg=[`gp3`],Rg=`launch-wizard-`,zg=Re({imageId:R().optional(),instanceType:R().optional(),keyName:R().optional(),launchTemplateId:R().optional(),launchTemplateVersion:R().optional(),subnetId:R().optional(),placementGroupName:R().optional(),count:je(`Instance count must be a whole number`).min(1,`Instance count must be at least 1`),rootDeviceName:R().optional(),rootVolumeSize:Me().int(`Volume size must be a whole number`).min(1,`Volume size must be at least 1 GiB`).max(16384,`Volume size must be at most 16384 GiB`).optional(),rootVolumeType:Ae(Lg).optional(),rootDeleteOnTermination:Le().optional(),securityGroupMode:Ae([`create`,`existing`]).optional(),securityGroupIds:Fe(R()).optional(),newSgName:R().optional(),newSgDescription:R().optional(),allowSsh:Le().optional(),allowHttp:Le().optional(),allowHttps:Le().optional(),ruleSource:Ae([`anywhere`,`custom`]).optional(),customCidr:R().optional()}).superRefine((e,t)=>{if(e.launchTemplateId||(e.imageId||t.addIssue({code:`custom`,message:`Please select an image`,path:[`imageId`]}),e.instanceType||t.addIssue({code:`custom`,message:`Please select an instance type`,path:[`instanceType`]}),e.keyName||t.addIssue({code:`custom`,message:`Please select a key pair`,path:[`keyName`]})),e.securityGroupMode){if(e.securityGroupMode===`existing`){(e.securityGroupIds??[]).length===0&&t.addIssue({code:`custom`,message:`Select at least one security group`,path:[`securityGroupIds`]});return}(!e.newSgName||e.newSgName.trim().length===0)&&t.addIssue({code:`custom`,message:`Security group name is required`,path:[`newSgName`]}),e.ruleSource===`custom`&&(!e.customCidr||!sa(e.customCidr))&&t.addIssue({code:`custom`,message:`Enter a valid CIDR (e.g. 203.0.113.0/24)`,path:[`customCidr`]})}});function Bg(e){let t=0,n=RegExp(`^${Rg}(\\d+)$`);for(let r of e){let e=n.exec(r);if(e){let n=Number(e[1]);n>t&&(t=n)}}return`${Rg}${t+1}`}var Vg=Re({keyName:Ig,keyType:Ae([`rsa`,`ed25519`])}),Hg=Re({keyName:Ig,publicKeyMaterial:R().min(1,`Public key is required`).refine(e=>e.trim().length>0,`Public key cannot be empty`)}),Ug=Re({size:Me().int(`Size must be a whole number`).min(1,`Size must be at least 1 GiB`).max(16384,`Size must be at most 16384 GiB`),availabilityZone:R().min(1,`Availability zone is required`)}),Wg=Re({size:Me().int(`Size must be a whole number`).min(1,`Size must be at least 1 GiB`)}),Gg=Re({volumeId:R().min(1,`Volume is required`),description:R().optional()});Re({sourceSnapshotId:R().min(1,`Source snapshot is required`),sourceRegion:R().min(1,`Source region is required`),description:R().optional()}),Re({volumeId:R().min(1,`Volume is required`),instanceId:R().min(1,`Instance is required`),device:R().optional()}),Re({volumeId:R().min(1,`Volume is required`),instanceId:R().optional(),force:Le().optional()}),Re({instanceType:R().min(1,`Instance type is required`)}),Re({name:R().min(1,`Name is required`),description:R().optional()});var Kg=Re({vpcId:R().min(1,`VPC is required`),cidrBlock:R().min(1,`CIDR block is required`).regex(Fg,`Must be a valid CIDR block (e.g. 10.0.1.0/24)`),availabilityZone:R().optional(),mapPublicIpOnLaunch:Le().optional()}),qg=Re({name:R().optional()}),Jg=Re({subnetId:R().min(1,`Subnet is required`),allocationId:R().min(1,`Elastic IP is required`),name:R().optional()}),Yg=Re({name:R().optional()}),Xg=Re({vpcId:R().min(1,`VPC is required`),name:R().optional()}),Zg=Re({destinationCidrBlock:R().min(1,`Destination is required`).regex(Fg,`Must be a valid CIDR block (e.g. 0.0.0.0/0)`),targetType:Ae([`igw`,`nat`]),targetId:R().min(1,`Target is required`)}),Qg=Re({subnetId:R().min(1,`Subnet is required`)});Re({cidrBlock:R().min(1,`CIDR block is required`).regex(Fg,`Must be a valid CIDR block (e.g. 10.0.0.0/16)`),name:R().optional()});var $g=Re({key:R().min(1,`Key is required`),value:R()}),e_=Re({mode:Ae([`vpc-only`,`vpc-and-more`]),namePrefix:R().optional(),autoGenerateNames:Le(),cidrBlock:R().min(1,`CIDR block is required`).regex(Fg,`Must be a valid CIDR block (e.g. 10.0.0.0/16)`).refine(e=>sa(e),`CIDR has invalid octets or prefix length (must be /16 to /28)`),tenancy:Ae([`default`,`dedicated`]),natGateway:Ae([`none`,`single`]).optional(),publicSubnetCount:Me().int().min(0).max(1),privateSubnetCount:Me().int().min(0).max(2),publicSubnetCidrs:Fe(R()),privateSubnetCidrs:Fe(R()),tags:Fe($g)}).superRefine((e,t)=>{if(e.mode!==`vpc-and-more`)return;let n=[];for(let[r,i]of e.publicSubnetCidrs.entries())sa(i,16,28)?(ca(e.cidrBlock,i)||t.addIssue({code:`custom`,message:`Subnet CIDR must be within the VPC CIDR range`,path:[`publicSubnetCidrs`,r]}),n.push({cidr:i,field:`publicSubnetCidrs`,index:r})):t.addIssue({code:`custom`,message:`Invalid subnet CIDR format or prefix length`,path:[`publicSubnetCidrs`,r]});for(let[r,i]of e.privateSubnetCidrs.entries())sa(i,16,28)?(ca(e.cidrBlock,i)||t.addIssue({code:`custom`,message:`Subnet CIDR must be within the VPC CIDR range`,path:[`privateSubnetCidrs`,r]}),n.push({cidr:i,field:`privateSubnetCidrs`,index:r})):t.addIssue({code:`custom`,message:`Invalid subnet CIDR format or prefix length`,path:[`privateSubnetCidrs`,r]});for(let e=0;e{let n=e.launchTemplateName??``;if(n.lengtho_){t.addIssue({code:`custom`,message:`Name must be ${a_}–${o_} characters`,path:[`launchTemplateName`]});return}i_.test(n)||t.addIssue({code:`custom`,message:`Name may contain only letters, digits and ()./_-`,path:[`launchTemplateName`]})}),l_=s_,u_=`/dev/sda1`,d_=`gp3`,f_=1,p_=16384,m_=I(`/_auth/ec2/(instances)/run-instances`)({validateSearch:e=>({launchTemplateId:typeof e.launchTemplateId==`string`?e.launchTemplateId:void 0,launchTemplateVersion:typeof e.launchTemplateVersion==`string`?e.launchTemplateVersion:void 0}),loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(ci),e.queryClient.ensureQueryData(li),e.queryClient.ensureQueryData(Qr),e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(_i),e.queryClient.ensureQueryData(Gr),e.queryClient.ensureQueryData(hi),e.queryClient.ensureQueryData(ni)])},head:()=>({meta:[{title:`Run Instances | EC2 | Mulga`}]}),component:h_});function h_(){let e=(0,Z.c)(136),t=he(),n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(n={from:m_.id},e[0]=n):n=e[0];let r=pe(n),{data:i}=ga(ci),{data:a}=ga(li),{data:o}=ga(Qr),{data:s}=ga(Kr),{data:c}=ga(_i),{data:l}=ga(Gr),{data:u}=ga(hi),{data:d}=ga(ni),f=Am(),p=i.Images??[],m=a.KeyPairs??[],h;e[1]===s.Subnets?h=e[2]:(h=s.Subnets??[],e[1]=s.Subnets,e[2]=h);let g=h,_;e[3]===c.PlacementGroups?_=e[4]:(_=c.PlacementGroups??[],e[3]=c.PlacementGroups,e[4]=_);let v=_,y;e[5]===l.Vpcs?y=e[6]:(y=l.Vpcs??[],e[5]=l.Vpcs,e[6]=y);let b=y,x=u.SecurityGroups??[],S;e[7]===d.LaunchTemplates?S=e[8]:(S=d.LaunchTemplates??[],e[7]=d.LaunchTemplates,e[8]=S);let C=S,w;e[9]===b?w=e[10]:(w=(b.find(M_)??b[0])?.VpcId,e[9]=b,e[10]=w);let T=w,E=Bg(x.map(j_)),D;if(e[11]!==o.InstanceTypes){D={};for(let e of o.InstanceTypes??[]){let t=e.InstanceType;t&&(D[t]=(D[t]??0)+1)}e[11]=o.InstanceTypes,e[12]=D}else D=e[12];let O=Object.keys(D).toSorted(),k=p[0]?.ImageId,A=m[0]?.KeyName,ee=O.find(A_)??O[0],te=N_(p.find(e=>e.ImageId===k)),ne;e[13]===D?ne=e[14]:(ne=e=>!e.instanceType||e.count<=(D[e.instanceType]??1),e[13]=D,e[14]=ne);let{control:j,handleSubmit:M,register:N,setValue:re,getValues:ie,watch:ae,formState:oe}=gp({resolver:Ep(zg.refine(ne,{message:`Cannot exceed available capacity`,path:[`count`]}).superRefine((e,t)=>{let n=N_(p.find(t=>t.ImageId===e.imageId)).snapshotSize;e.rootVolumeSize!==void 0&&n!==void 0&&e.rootVolumeSizee.InstanceType===le))?.GpuInfo?.Gpus?.[0],F=de?.Name?.startsWith(`MIG `)?de.Name.slice(4):void 0,fe;e[17]===j?fe=e[18]:(fe={control:j,name:`imageId`},e[17]=j,e[18]=fe);let I=tf(fe),me;e[19]===I?me=e[20]:(me=e=>e.ImageId===I,e[19]=I,e[20]=me);let L=N_(p.find(me)),ge;e[21]===j?ge=e[22]:(ge={control:j,name:`subnetId`},e[21]=j,e[22]=ge);let _e=tf(ge),ve;e[23]===j?ve=e[24]:(ve={control:j,name:`securityGroupMode`},e[23]=j,e[24]=ve);let ye=tf(ve),be;e[25]===j?be=e[26]:(be={control:j,name:`ruleSource`},e[25]=j,e[26]=be);let xe=tf(be),Se=tf({control:j,name:`securityGroupIds`})??[],Ce;e[27]===j?Ce=e[28]:(Ce={control:j,name:`launchTemplateId`},e[27]=j,e[28]=Ce);let we=tf(Ce),Te;e[29]===j?Te=e[30]:(Te={control:j,name:`launchTemplateVersion`},e[29]=j,e[30]=Te);let Ee=tf(Te),De=we??``,ke;e[31]===De?ke=e[32]:(ke=oi(De),e[31]=De,e[32]=ke);let Ae=!!we,je;e[33]!==ke||e[34]!==Ae?(je={...ke,enabled:Ae},e[33]=ke,e[34]=Ae,e[35]=je):je=e[35];let R=ha(je),Me;e[36]===R.data?.LaunchTemplateVersions?Me=e[37]:(Me=R.data?.LaunchTemplateVersions??[],e[36]=R.data?.LaunchTemplateVersions,e[37]=Me);let Ne=Me,Pe;e[38]!==Ee||e[39]!==Ne?(Pe=P_(Ne,Ee)?.LaunchTemplateData,e[38]=Ee,e[39]=Ne,e[40]=Pe):Pe=e[40];let Fe=Pe,z;e[41]!==T||e[42]!==_e||e[43]!==g?(z=g.find(e=>e.SubnetId===_e)?.VpcId??T,e[41]=T,e[42]=_e,e[43]=g,e[44]=z):z=e[44];let Ie=z,Le;e[45]!==Ie||e[46]!==x?(Le=Ie?x.filter(e=>e.VpcId===Ie):x,e[45]=Ie,e[46]=x,e[47]=Le):Le=e[47];let B=Le,Re;e[48]!==ie||e[49]!==re?(Re=e=>{let t=ie(`securityGroupIds`)??[],n=t.includes(e)?t.filter(t=>t!==e):[...t,e];re(`securityGroupIds`,n,{shouldValidate:!0})},e[48]=ie,e[49]=re,e[50]=Re):Re=e[50];let V=Re,ze;e[51]!==L.deviceName||e[52]!==re?(ze=()=>{re(`rootDeviceName`,L.deviceName)},e[51]=L.deviceName,e[52]=re,e[53]=ze):ze=e[53];let Ve;e[54]!==I||e[55]!==L.deviceName||e[56]!==re?(Ve=[I,L.deviceName,re],e[54]=I,e[55]=L.deviceName,e[56]=re,e[57]=Ve):Ve=e[57],(0,J.useEffect)(ze,Ve);let Ue;e[58]!==f||e[59]!==Ie||e[60]!==t?(Ue=async e=>{let n=e.launchTemplateId?{count:e.count,launchTemplateId:e.launchTemplateId,launchTemplateVersion:e.launchTemplateVersion,resolvedVpcId:Ie}:{...e,resolvedVpcId:Ie};await f.mutateAsync(n),t({to:`/ec2/describe-instances`})},e[58]=f,e[59]=Ie,e[60]=t,e[61]=Ue):Ue=e[61];let We=Ue,Ke,Je;e[62]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=(0,Y.jsx)(Dp,{to:`/ec2/describe-instances`,children:`Back to instances`}),Je=(0,Y.jsx)(Hp,{title:`Run Instances`}),e[62]=Ke,e[63]=Je):(Ke=e[62],Je=e[63]);let Ye;e[64]!==we||e[65]!==O?(Ye=O.length===0&&!we&&(0,Y.jsx)(Fp,{msg:`No compute available. No new instances can be created until compute is available.`}),e[64]=we,e[65]=O,e[66]=Ye):Ye=e[66];let Qe;e[67]===f.error?Qe=e[68]:(Qe=f.error&&(0,Y.jsx)(Fp,{error:f.error,msg:`Failed to create instance`}),e[67]=f.error,e[68]=Qe);let $e;e[69]!==M||e[70]!==We?($e=M(We),e[69]=M,e[70]=We,e[71]=$e):$e=e[71];let et;e[72]===Symbol.for(`react.memo_cache_sentinel`)?(et=(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`launchTemplateId`,children:`Launch Template`})}),e[72]=et):et=e[72];let tt;e[73]===C?tt=e[74]:(tt=e=>{let{field:t}=e;return(0,Y.jsxs)(Ze,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,Y.jsx)(Xe,{className:`w-full`,id:`launchTemplateId`,children:(0,Y.jsx)(He,{})}),(0,Y.jsxs)(qe,{children:[(0,Y.jsx)(Ge,{value:`none`,children:`none`}),C.map(k_)]})]})},e[73]=C,e[74]=tt);let nt;e[75]!==j||e[76]!==tt?(nt=(0,Y.jsxs)(hm,{children:[et,(0,Y.jsx)(rf,{control:j,name:`launchTemplateId`,render:tt})]}),e[75]=j,e[76]=tt,e[77]=nt):nt=e[77];let H;e[78]!==j||e[79]!==Fe||e[80]!==we||e[81]!==Ne?(H=we&&(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`launchTemplateVersion`,children:`Version`})}),(0,Y.jsx)(rf,{control:j,name:`launchTemplateVersion`,render:e=>{let{field:t}=e;return(0,Y.jsxs)(Ze,{onValueChange:e=>t.onChange(e),value:t.value??`$Default`,children:[(0,Y.jsx)(Xe,{className:`w-full`,id:`launchTemplateVersion`,children:(0,Y.jsx)(He,{})}),(0,Y.jsxs)(qe,{children:[(0,Y.jsx)(Ge,{value:`$Default`,children:`$Default`}),(0,Y.jsx)(Ge,{value:`$Latest`,children:`$Latest`}),Ne.map(O_)]})]})}}),Fe&&(0,Y.jsxs)(`div`,{className:`mt-3 space-y-1 rounded-md border border-border p-3 text-xs`,children:[(0,Y.jsx)(`p`,{className:`text-muted-foreground`,children:`Configuration from this version:`}),(0,Y.jsxs)(`p`,{children:[`Image:`,` `,(0,Y.jsx)(`span`,{className:`font-mono`,children:Fe.ImageId??`—`})]}),(0,Y.jsxs)(`p`,{children:[`Instance type:`,` `,(0,Y.jsx)(`span`,{className:`font-mono`,children:Fe.InstanceType??`—`})]}),(0,Y.jsxs)(`p`,{children:[`Key pair:`,` `,(0,Y.jsx)(`span`,{className:`font-mono`,children:Fe.KeyName??`—`})]})]})]}),e[78]=j,e[79]=Fe,e[80]=we,e[81]=Ne,e[82]=H):H=e[82];let rt=!we&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`imageId`,children:`Image`})}),(0,Y.jsx)(rf,{control:j,name:`imageId`,render:e=>{let{field:t}=e,n=p.find(e=>e.ImageId===t.value);return(0,Y.jsxs)(Ze,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,Y.jsx)(Xe,{"aria-invalid":!!P.imageId,className:`w-full`,id:`imageId`,children:(0,Y.jsx)(He,{children:n?`${n.Name??`Unnamed`} (${n.Architecture})`:``})}),(0,Y.jsx)(qe,{children:p.map(D_)})]})}}),(0,Y.jsx)(vm,{errors:[P.imageId]})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`instanceType`,children:`Instance Type`})}),(0,Y.jsx)(rf,{control:j,name:`instanceType`,render:e=>{let{field:t}=e;return(0,Y.jsx)(zp,{"aria-invalid":!!P.instanceType,availabilityByType:D,className:`w-full`,id:`instanceType`,instanceTypes:o.InstanceTypes??[],onValueChange:t.onChange,value:t.value??``})}}),de&&(0,Y.jsxs)(_m,{children:[`GPU: `,de.Name,de.MemoryInfo?.SizeInMiB!==void 0&&` · ${Oe(de.MemoryInfo.SizeInMiB)} VRAM`,F&&` · MIG ${F} slice`]}),(0,Y.jsx)(vm,{errors:[P.instanceType]})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`keyName`,children:`Key Pair`})}),(0,Y.jsx)(rf,{control:j,name:`keyName`,render:e=>{let{field:t}=e;return(0,Y.jsxs)(Ze,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,Y.jsx)(Xe,{"aria-invalid":!!P.keyName,className:`w-full`,id:`keyName`,children:(0,Y.jsx)(He,{})}),(0,Y.jsx)(qe,{children:m.map(E_)})]})}}),(0,Y.jsx)(vm,{errors:[P.keyName]})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`subnetId`,children:`Subnet`})}),(0,Y.jsx)(rf,{control:j,name:`subnetId`,render:e=>{let{field:t}=e;return(0,Y.jsxs)(Ze,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,Y.jsx)(Xe,{className:`w-full`,id:`subnetId`,children:(0,Y.jsx)(He,{})}),(0,Y.jsxs)(qe,{children:[(0,Y.jsx)(Ge,{value:`none`,children:`none`}),g.map(T_)]})]})}})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:`Security Group`}),(0,Y.jsx)(_m,{children:Ie?`Applies to VPC ${Ie}`:`No VPC resolved — select a subnet`}),(0,Y.jsx)(rf,{control:j,name:`securityGroupMode`,render:w_}),ye===`create`?(0,Y.jsxs)(`div`,{className:`mt-3 space-y-4 rounded-md border border-border p-4`,children:[(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`newSgName`,children:`Name`})}),(0,Y.jsx)(Xo,{"aria-invalid":!!P.newSgName,id:`newSgName`,type:`text`,...N(`newSgName`)}),(0,Y.jsx)(vm,{errors:[P.newSgName]})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`newSgDescription`,children:`Description`})}),(0,Y.jsx)(Xo,{id:`newSgDescription`,type:`text`,...N(`newSgDescription`)})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:`Inbound rules`}),(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(rf,{control:j,name:`allowSsh`,render:C_}),(0,Y.jsx)(rf,{control:j,name:`allowHttp`,render:S_}),(0,Y.jsx)(rf,{control:j,name:`allowHttps`,render:x_})]})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:`Source`}),(0,Y.jsx)(rf,{control:j,name:`ruleSource`,render:b_}),xe===`custom`&&(0,Y.jsxs)(`div`,{className:`mt-2`,children:[(0,Y.jsx)(Xo,{"aria-invalid":!!P.customCidr,placeholder:`203.0.113.0/24`,type:`text`,...N(`customCidr`)}),(0,Y.jsx)(vm,{errors:[P.customCidr]})]})]})]}):(0,Y.jsxs)(`div`,{className:`mt-3`,children:[B.length===0?(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No security groups in the resolved VPC.`}):(0,Y.jsx)(`div`,{className:`space-y-1`,children:B.map(e=>(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,Y.jsx)(`input`,{"aria-label":`Security group ${e.GroupId} (${e.GroupName})`,checked:Se.includes(e.GroupId??``),onChange:()=>V(e.GroupId??``),type:`checkbox`}),(0,Y.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))}),(0,Y.jsx)(vm,{errors:[P.securityGroupIds]})]})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`placementGroupName`,children:`Placement Group`})}),(0,Y.jsx)(rf,{control:j,name:`placementGroupName`,render:e=>{let{field:t}=e;return(0,Y.jsxs)(Ze,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,Y.jsx)(Xe,{className:`w-full`,id:`placementGroupName`,children:(0,Y.jsx)(He,{})}),(0,Y.jsxs)(qe,{children:[(0,Y.jsx)(Ge,{value:`none`,children:`none`}),v.map(y_)]})]})}})]})]}),it;e[83]===Symbol.for(`react.memo_cache_sentinel`)?(it=(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`count`,children:`Number of Instances`})}),e[83]=it):it=e[83];let ot=!!P.count,st;e[84]===N?st=e[85]:(st=N(`count`,{valueAsNumber:!0}),e[84]=N,e[85]=st);let ct;e[86]!==ot||e[87]!==st?(ct=(0,Y.jsx)(Xo,{"aria-describedby":`count-description`,"aria-invalid":ot,id:`count`,type:`number`,...st}),e[86]=ot,e[87]=st,e[88]=ct):ct=e[88];let lt=le&&`Available capacity for ${le}: ${ue}`,ut;e[89]===lt?ut=e[90]:(ut=(0,Y.jsx)(`p`,{className:`text-xs text-muted-foreground`,id:`count-description`,children:lt}),e[89]=lt,e[90]=ut);let dt;e[91]===P.count?dt=e[92]:(dt=(0,Y.jsx)(vm,{errors:[P.count]}),e[91]=P.count,e[92]=dt);let ft;e[93]!==ct||e[94]!==ut||e[95]!==dt?(ft=(0,Y.jsxs)(hm,{children:[it,ct,ut,dt]}),e[93]=ct,e[94]=ut,e[95]=dt,e[96]=ft):ft=e[96];let pt;e[97]!==j||e[98]!==P.rootDeviceName||e[99]!==P.rootVolumeSize||e[100]!==P.rootVolumeType||e[101]!==N||e[102]!==L.snapshotSize||e[103]!==we?(pt=!we&&(0,Y.jsx)(Y.Fragment,{children:(0,Y.jsxs)(um,{children:[(0,Y.jsxs)(dm,{className:`group flex h-7 w-full items-center justify-between rounded-md border border-input bg-input/20 px-2 py-0.5 text-sm transition-colors outline-none hover:bg-input/40 focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 md:text-xs/relaxed dark:bg-input/30 dark:hover:bg-input/50`,render:(0,Y.jsx)(`button`,{"aria-label":`Block Device Mappings (root volume)`,type:`button`}),children:[(0,Y.jsx)(`span`,{children:`Block Device Mappings (root volume)`}),(0,Y.jsx)(Be,{className:`size-3.5 text-muted-foreground transition-transform group-data-[panel-open]:rotate-180`})]}),(0,Y.jsxs)(fm,{className:`mt-3 space-y-4 rounded-md border border-border p-4`,children:[(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`rootDeviceName`,children:`Device Name`})}),(0,Y.jsx)(Xo,{"aria-invalid":!!P.rootDeviceName,id:`rootDeviceName`,type:`text`,...N(`rootDeviceName`)}),(0,Y.jsx)(vm,{errors:[P.rootDeviceName]})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`rootVolumeSize`,children:`Volume Size (GiB)`})}),(0,Y.jsx)(Xo,{"aria-invalid":!!P.rootVolumeSize,id:`rootVolumeSize`,max:p_,min:L.snapshotSize??f_,placeholder:L.snapshotSize?`${L.snapshotSize} (AMI default)`:`use AMI / backend default`,type:`number`,...N(`rootVolumeSize`,{setValueAs:v_})}),L.snapshotSize!==void 0&&(0,Y.jsxs)(_m,{children:[`AMI snapshot size: `,L.snapshotSize,` GiB`]}),(0,Y.jsx)(vm,{errors:[P.rootVolumeSize]})]}),(0,Y.jsxs)(hm,{children:[(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`rootVolumeType`,children:`Volume Type`})}),(0,Y.jsx)(rf,{control:j,name:`rootVolumeType`,render:e=>{let{field:t}=e;return(0,Y.jsxs)(Ze,{onValueChange:e=>t.onChange(e),value:t.value??d_,children:[(0,Y.jsx)(Xe,{"aria-invalid":!!P.rootVolumeType,className:`w-full`,id:`rootVolumeType`,children:(0,Y.jsx)(He,{})}),(0,Y.jsx)(qe,{children:Lg.map(__)})]})}}),(0,Y.jsx)(vm,{errors:[P.rootVolumeType]})]}),(0,Y.jsx)(hm,{children:(0,Y.jsx)(rf,{control:j,name:`rootDeleteOnTermination`,render:g_})})]})]})}),e[97]=j,e[98]=P.rootDeviceName,e[99]=P.rootVolumeSize,e[100]=P.rootVolumeType,e[101]=N,e[102]=L.snapshotSize,e[103]=we,e[104]=pt):pt=e[104];let mt;e[105]!==Ie||e[106]!==ae?(mt=F_(ae,Ie),e[105]=Ie,e[106]=ae,e[107]=mt):mt=e[107];let ht;e[108]===mt?ht=e[109]:(ht=(0,Y.jsx)(Mp,{commands:mt}),e[108]=mt,e[109]=ht);let gt=se||f.isPending,_t;e[110]===t?_t=e[111]:(_t=async()=>await t({to:`/ec2/describe-instances`}),e[110]=t,e[111]=_t);let vt;e[112]!==gt||e[113]!==_t?(vt=(0,Y.jsx)(at,{disabled:gt,onClick:_t,type:`button`,variant:`outline`,children:`Cancel`}),e[112]=gt,e[113]=_t,e[114]=vt):vt=e[114];let yt=se||f.isPending||!we&&O.length===0,bt=se||f.isPending?`Creating…`:`Create Instance`,xt;e[115]!==yt||e[116]!==bt?(xt=(0,Y.jsx)(at,{disabled:yt,type:`submit`,children:bt}),e[115]=yt,e[116]=bt,e[117]=xt):xt=e[117];let St;e[118]!==vt||e[119]!==xt?(St=(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[vt,xt]}),e[118]=vt,e[119]=xt,e[120]=St):St=e[120];let Ct;e[121]!==$e||e[122]!==nt||e[123]!==H||e[124]!==rt||e[125]!==ft||e[126]!==pt||e[127]!==ht||e[128]!==St?(Ct=(0,Y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:$e,children:[nt,H,rt,ft,pt,ht,St]}),e[121]=$e,e[122]=nt,e[123]=H,e[124]=rt,e[125]=ft,e[126]=pt,e[127]=ht,e[128]=St,e[129]=Ct):Ct=e[129];let wt;return e[130]!==Ke||e[131]!==Je||e[132]!==Ye||e[133]!==Qe||e[134]!==Ct?(wt=(0,Y.jsxs)(Y.Fragment,{children:[Ke,Je,Ye,Qe,Ct]}),e[130]=Ke,e[131]=Je,e[132]=Ye,e[133]=Qe,e[134]=Ct,e[135]=wt):wt=e[135],wt}function g_(e){let{field:t}=e;return(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,Y.jsx)(`input`,{"aria-label":`Delete on termination`,checked:t.value??!0,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Delete on termination`]})}function __(e){return(0,Y.jsx)(Ge,{value:e,children:e},e)}function v_(e){return e===``||e==null?void 0:Number(e)}function y_(e){return(0,Y.jsxs)(Ge,{value:e.GroupName??``,children:[e.GroupName,` (`,e.Strategy,`)`]},e.GroupId)}function b_(e){let{field:t}=e;return(0,Y.jsxs)(`div`,{className:`flex gap-4 text-sm`,children:[(0,Y.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`input`,{"aria-label":`Source anywhere`,checked:t.value===`anywhere`,onChange:()=>t.onChange(`anywhere`),type:`radio`}),`Anywhere (0.0.0.0/0)`]}),(0,Y.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`input`,{"aria-label":`Source custom CIDR`,checked:t.value===`custom`,onChange:()=>t.onChange(`custom`),type:`radio`}),`Custom CIDR`]})]})}function x_(e){let{field:t}=e;return(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,Y.jsx)(`input`,{"aria-label":`Allow HTTPS`,checked:t.value,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Allow HTTPS (tcp/443)`]})}function S_(e){let{field:t}=e;return(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,Y.jsx)(`input`,{"aria-label":`Allow HTTP`,checked:t.value,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Allow HTTP (tcp/80)`]})}function C_(e){let{field:t}=e;return(0,Y.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,Y.jsx)(`input`,{"aria-label":`Allow SSH`,checked:t.value,onChange:e=>t.onChange(e.target.checked),type:`checkbox`}),`Allow SSH (tcp/22)`]})}function w_(e){let{field:t}=e;return(0,Y.jsxs)(`div`,{className:`flex gap-4 text-sm`,children:[(0,Y.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`input`,{"aria-label":`Create new security group`,checked:t.value===`create`,onChange:()=>t.onChange(`create`),type:`radio`}),`Create new`]}),(0,Y.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`input`,{"aria-label":`Select existing security group`,checked:t.value===`existing`,onChange:()=>t.onChange(`existing`),type:`radio`}),`Select existing`]})]})}function T_(e){return(0,Y.jsx)(Ge,{value:e.SubnetId??``,children:e.SubnetId},e.SubnetId)}function E_(e){return(0,Y.jsx)(Ge,{value:e.KeyName??``,children:e.KeyName},e.KeyPairId)}function D_(e){return(0,Y.jsxs)(Ge,{value:e.ImageId??``,children:[e.Name??`Unnamed`,` (`,e.Architecture,`)`]},e.ImageId)}function O_(e){return(0,Y.jsxs)(Ge,{value:String(e.VersionNumber),children:[`v`,e.VersionNumber]},e.VersionNumber)}function k_(e){return(0,Y.jsx)(Ge,{value:e.LaunchTemplateId??``,children:e.LaunchTemplateName??e.LaunchTemplateId},e.LaunchTemplateId)}function A_(e){return e.endsWith(`.nano`)}function j_(e){return e.GroupName??``}function M_(e){return e.IsDefault}function N_(e){let t=e?.RootDeviceName??u_,n=e?.BlockDeviceMappings??[];return{deviceName:t,snapshotSize:(n.find(e=>e.DeviceName===t)??n[0])?.Ebs?.VolumeSize}}function P_(e,t){if(e.length===0)return;if(!t||t===`$Default`)return e.find(e=>e.DefaultVersion)??e[0];if(t===`$Latest`)return e.toSorted((e,t)=>(t.VersionNumber??0)-(e.VersionNumber??0))[0];let n=Number(t);return e.find(e=>e.VersionNumber===n)}function F_(e,t){let n=e(`launchTemplateId`),r=typeof n==`string`?n:``;if(r){let t=e(`launchTemplateVersion`),n=typeof t==`string`&&t?t:`$Default`,i=e(`count`),a=typeof i==`number`?i:0;return[{label:`Run Instances`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 run-instances`},{type:`flag`,value:` \\ --launch-template`},{type:`value`,value:` LaunchTemplateId=${r},Version=${n}`},{type:`flag`,value:` \\ --count`},{type:`value`,value:` ${a||1}`}]}]}let i=e(`imageId`),a=typeof i==`string`?i:``,o=e(`instanceType`),s=typeof o==`string`?o:``,c=e(`keyName`),l=typeof c==`string`?c:``,u=e(`subnetId`),d=typeof u==`string`?u:``,f=e(`placementGroupName`),p=typeof f==`string`?f:``,m=e(`count`),h=typeof m==`number`?m:0,g=e(`rootDeviceName`),_=typeof g==`string`?g:``,v=e(`rootVolumeSize`),y=typeof v==`number`?v:void 0,b=e(`rootVolumeType`),x=typeof b==`string`?b:``,S=e(`rootDeleteOnTermination`),C=typeof S!=`boolean`||S,w=[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 run-instances`},{type:`flag`,value:` \\ --image-id`},{type:`value`,value:` ${a||``}`},{type:`flag`,value:` \\ @@ -17,13 +17,13 @@ Error generating stack: `+e.message+` --key-name`},{type:`value`,value:` ${l||``}`}];d&&w.push({type:`flag`,value:` \\ --subnet-id`},{type:`value`,value:` ${d}`}),p&&w.push({type:`flag`,value:` \\ --placement`},{type:`value`,value:` GroupName=${p}`}),w.push({type:`flag`,value:` \\ - --count`},{type:`value`,value:` ${h||1}`});let T=e(`securityGroupMode`),E=typeof T==`string`?T:`create`,D=e(`newSgName`),O=typeof D==`string`?D:``,ee=e(`newSgDescription`),k=typeof ee==`string`?ee:``,te=e(`ruleSource`),ne=typeof te==`string`?te:`anywhere`,re=e(`customCidr`),A=typeof re==`string`?re:``,j=[];if(E===`create`){j.push({label:`Create security group`,parts:[{type:`bin`,value:`SG_ID=$(AWS_PROFILE=spinifex aws ec2 create-security-group`},{type:`flag`,value:` \\ + --count`},{type:`value`,value:` ${h||1}`});let T=e(`securityGroupMode`),E=typeof T==`string`?T:`create`,D=e(`newSgName`),O=typeof D==`string`?D:``,k=e(`newSgDescription`),A=typeof k==`string`?k:``,ee=e(`ruleSource`),te=typeof ee==`string`?ee:`anywhere`,ne=e(`customCidr`),j=typeof ne==`string`?ne:``,M=[];if(E===`create`){M.push({label:`Create security group`,parts:[{type:`bin`,value:`SG_ID=$(AWS_PROFILE=spinifex aws ec2 create-security-group`},{type:`flag`,value:` \\ --group-name`},{type:`value`,value:` ${O||``}`},{type:`flag`,value:` \\ - --description`},{type:`value`,value:` '${k||`Created by launch wizard`}'`},{type:`flag`,value:` \\ + --description`},{type:`value`,value:` '${A||`Created by launch wizard`}'`},{type:`flag`,value:` \\ --vpc-id`},{type:`value`,value:` ${t??``}`},{type:`flag`,value:` \\ - --query`},{type:`value`,value:` 'GroupId' --output text)`}]});let n=ne===`custom`&&A?A:`0.0.0.0/0`,r=[...e(`allowSsh`)===!0?[22]:[],...e(`allowHttp`)===!0?[80]:[],...e(`allowHttps`)===!0?[443]:[]];if(r.length>0){let e=JSON.stringify(r.map(e=>({IpProtocol:`tcp`,FromPort:e,ToPort:e,IpRanges:[{CidrIp:n}]})));j.push({label:`Authorize inbound rules`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 authorize-security-group-ingress`},{type:`flag`,value:` \\ + --query`},{type:`value`,value:` 'GroupId' --output text)`}]});let n=te===`custom`&&j?j:`0.0.0.0/0`,r=[...e(`allowSsh`)===!0?[22]:[],...e(`allowHttp`)===!0?[80]:[],...e(`allowHttps`)===!0?[443]:[]];if(r.length>0){let e=JSON.stringify(r.map(e=>({IpProtocol:`tcp`,FromPort:e,ToPort:e,IpRanges:[{CidrIp:n}]})));M.push({label:`Authorize inbound rules`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 authorize-security-group-ingress`},{type:`flag`,value:` \\ --group-id`},{type:`value`,value:` $SG_ID`},{type:`flag`,value:` \\ --ip-permissions`},{type:`value`,value:` '${e}'`}]})}w.push({type:`flag`,value:` \\ --security-group-ids`},{type:`value`,value:` $SG_ID`})}else{let t=e(`securityGroupIds`),n=Array.isArray(t)?t.filter(e=>typeof e==`string`):[];n.length>0&&w.push({type:`flag`,value:` \\ - --security-group-ids`},{type:`value`,value:` ${n.join(` `)}`})}if(y!==void 0||b!==void 0||S!==void 0){let e={};y!==void 0&&(e.VolumeSize=y),x&&(e.VolumeType=x),S!==void 0&&(e.DeleteOnTermination=C);let t=JSON.stringify([{DeviceName:_||c_,Ebs:e}]);w.push({type:`flag`,value:` \\ - --block-device-mappings`},{type:`value`,value:` '${t}'`})}return[...j,{label:`Run Instances`,parts:w}]}var P_=P(`/_auth/ec2/(internet-gateways)/create-internet-gateway`)({head:()=>({meta:[{title:`Create Internet Gateway | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-internet-gateway.js`),__vite__mapDeps([31,1,29,3,30,9,10,7,8])),`component`)}),F_=P(`/_auth/ec2/(key)/create-key-pair`)({head:()=>({meta:[{title:`Create Key Pair | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-key-pair.js`),__vite__mapDeps([32,1,29,3,33,17,34,35,9,10,7,8,30,36])),`component`)}),I_=P(`/_auth/ec2/(key)/import-key-pair`)({head:()=>({meta:[{title:`Import Key Pair | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./import-key-pair.js`),__vite__mapDeps([37,1,29,3,30,9,10,7,8,38])),`component`)}),L_=P(`/_auth/ec2/(launch-templates)/create-launch-template`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(li),e.queryClient.ensureQueryData($r),e.queryClient.ensureQueryData(ui),e.queryClient.ensureQueryData(qr),e.queryClient.ensureQueryData(gi)])},head:()=>({meta:[{title:`Create Launch Template | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-launch-template.js`),__vite__mapDeps([39,1,29,3,30,9,10,7,8,40,18,17,41,16,33,42,43,44,45,46,47,20,21,11,12,38])),`component`)}),R_=E({queryKey:[`acm`,`certificates`],queryFn:async()=>{let e=new $l({});return await Cr().send(e)}}),z_=P(`/_auth/ec2/(load-balancers)/create-load-balancer`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(qr),e.queryClient.ensureQueryData(gi),e.queryClient.ensureQueryData(zi),e.queryClient.ensureQueryData(R_),e.queryClient.ensureQueryData(Ii)])},head:()=>({meta:[{title:`Create Load Balancer | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-load-balancer.js`),__vite__mapDeps([48,1,29,3,7,8,41,16,10,17,33,18,9,42,43,44,45,46,47,49,50,51,52,53,11,12,36,38,20,21,54,55,56,30,57,58])),`component`)}),B_=P(`/_auth/ec2/(nat-gateways)/create-nat-gateway`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(qr),e.queryClient.ensureQueryData(ci)])},head:()=>({meta:[{title:`Create NAT Gateway | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-nat-gateway.js`),__vite__mapDeps([59,1,16,3,29,7,8,41,10,17,33,18,9,42,43,44,45,46,47,20,21,11,12,30])),`component`)}),V_=P(`/_auth/ec2/(placement-groups)/create-placement-group`)({head:()=>({meta:[{title:`Create Placement Group | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-placement-group.js`),__vite__mapDeps([60,1,29,3,41,16,10,7,8,17,33,18,9,42,43,44,45,46,47,30])),`component`)}),H_=P(`/_auth/ec2/(route-tables)/create-route-table`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Kr)},head:()=>({meta:[{title:`Create Route Table | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-route-table.js`),__vite__mapDeps([61,1,29,3,7,8,41,16,10,17,33,18,9,42,43,44,45,46,47,20,21,11,12,30])),`component`)}),U_=P(`/_auth/ec2/(security-groups)/create-security-group`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Kr)},head:()=>({meta:[{title:`Create Security Group | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-security-group.js`),__vite__mapDeps([62,1,29,3,7,8,41,16,10,17,33,18,9,42,43,44,45,46,47,20,21,11,12,30])),`component`)}),W_=P(`/_auth/ec2/(snapshots)/create-snapshot`)({validateSearch:e=>({volumeId:typeof e.volumeId==`string`?e.volumeId:void 0}),loader:async({context:e})=>{await e.queryClient.ensureQueryData(Vr)},head:()=>({meta:[{title:`Create Snapshot | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-snapshot.js`),__vite__mapDeps([63,1,29,3,41,16,10,7,8,17,33,18,9,42,43,44,45,46,47,20,21,11,12,30,38])),`component`)}),G_=P(`/_auth/ec2/(subnet)/create-subnet`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(di)])},head:()=>({meta:[{title:`Create Subnet | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-subnet.js`),__vite__mapDeps([64,1,29,3,7,8,41,16,10,17,33,18,9,42,43,44,45,46,47,20,21,11,12,30])),`component`)}),K_=P(`/_auth/ec2/(target-groups)/create-target-group`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Kr)},head:()=>({meta:[{title:`Create Target Group | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-target-group.js`),__vite__mapDeps([65,1,29,3,20,21,7,8,11,12,54,52,53,55,30,9,10,57,41,16,17,33,18,42,43,44,45,46,47,49,50,58])),`component`)}),q_=P(`/_auth/ec2/(volumes)/create-volume`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(di)},head:()=>({meta:[{title:`Create Volume | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-volume.js`),__vite__mapDeps([66,1,29,3,41,16,10,7,8,17,33,18,9,42,43,44,45,46,47,20,21,11,12,30])),`component`)}),J_=P(`/_auth/ec2/(vpc)/create-vpc`)({head:()=>({meta:[{title:`Create VPC | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./create-vpc.js`),__vite__mapDeps([67,1,29,3,18,17,19,41,16,10,7,8,33,9,42,43,44,45,46,47,68,30])),`component`)}),Y_=P(`/_auth/ecs/(clusters)/create-service`)({validateSearch:e=>({cluster:typeof e.cluster==`string`?e.cluster:``}),loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(wi),e.queryClient.ensureQueryData(qr),e.queryClient.ensureQueryData(gi),e.queryClient.ensureQueryData(zi)])},head:()=>({meta:[{title:`Create Service | ECS | Mulga`}]}),component:F(()=>R(()=>import(`./create-service.js`),__vite__mapDeps([69,1,29,3,41,16,10,7,8,17,33,18,9,42,43,44,45,46,47,20,21,11,12,70,71,52,53,56,55,30,72])),`component`)}),X_=P(`/_auth/ecs/(clusters)/register-task-definition`)({validateSearch:e=>({cluster:typeof e.cluster==`string`?e.cluster:``}),head:()=>({meta:[{title:`Register Task Definition | ECS | Mulga`}]}),component:F(()=>R(()=>import(`./register-task-definition.js`),__vite__mapDeps([73,1,29,3,41,16,10,7,8,17,33,18,9,42,43,44,45,46,47,49,50,71,52,53,11,12,70,21,30,72])),`component`)}),Z_=P(`/_auth/ecs/(clusters)/run-task`)({validateSearch:e=>({cluster:typeof e.cluster==`string`?e.cluster:``}),loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(wi),e.queryClient.ensureQueryData(qr),e.queryClient.ensureQueryData(gi)])},head:()=>({meta:[{title:`Run Task | ECS | Mulga`}]}),component:F(()=>R(()=>import(`./run-task.js`),__vite__mapDeps([74,1,29,3,41,16,10,7,8,17,33,18,9,42,43,44,45,46,47,20,21,11,12,70,71,52,53,30,72])),`component`)}),Q_=P(`/_auth/ecs/(clusters)/task-definitions`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(wi)},head:()=>({meta:[{title:`Task Definitions | ECS | Mulga`}]}),component:F(()=>R(()=>import(`./task-definitions.js`),__vite__mapDeps([75,1,16,3,9,10,7,8,70,21,11,12,71,52,53,76,36,77])),`component`)}),$_=P(`/_auth/eks/(clusters)/create-cluster`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(qr),e.queryClient.ensureQueryData(aa),e.queryClient.ensureQueryData(li)])},head:()=>({meta:[{title:`Create Cluster | EKS | Mulga`}]}),component:F(()=>R(()=>import(`./create-cluster.js`),__vite__mapDeps([78,1,52,29,3,7,8,41,16,10,17,33,18,9,42,43,44,45,46,47,20,21,11,12,79,53,80,68,81,82,83,84,30,36,85,86,87,88,35,89])),`component`)}),ev=P(`/_auth/iam/(groups)/create-group`)({head:()=>({meta:[{title:`Create Group | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./create-group.js`),__vite__mapDeps([90,1,29,3,82,52,53,11,7,8,12,83,30,9,10,91,81])),`component`)}),tv=P(`/_auth/iam/(instance-profiles)/create-instance-profile`)({head:()=>({meta:[{title:`Create Instance Profile | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./create-instance-profile.js`),__vite__mapDeps([92,1,29,3,82,52,53,11,7,8,12,83,30,9,10,91,81])),`component`)}),nv=P(`/_auth/iam/(policies)/create-policy`)({head:()=>({meta:[{title:`Create Policy | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./create-policy.js`),__vite__mapDeps([93,1,29,3,82,52,53,11,7,8,12,83,30,9,10,94,81,38,91])),`component`)}),rv=P(`/_auth/iam/(roles)/create-role`)({head:()=>({meta:[{title:`Create Role | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./create-role.js`),__vite__mapDeps([95,1,29,3,82,52,53,11,7,8,12,83,30,9,10,94,81,38,91])),`component`)}),iv=P(`/_auth/iam/(users)/create-user`)({head:()=>({meta:[{title:`Create User | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./create-user.js`),__vite__mapDeps([96,1,29,3,82,52,53,11,7,8,12,83,30,9,10,91,81])),`component`)}),av=P(`/_auth/s3/(buckets)/create-bucket`)({head:()=>({meta:[{title:`Create Bucket | S3 | Mulga`}]}),component:F(()=>R(()=>import(`./create-bucket.js`),__vite__mapDeps([97,1,29,3,7,8,98,52,53,11,12,30,9,10])),`component`)}),ov=P(`/_auth/s3/ls/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(oa)},head:()=>({meta:[{title:`Buckets | S3 | Mulga`}]}),component:F(()=>R(()=>import(`./ls.js`),__vite__mapDeps([99,1,16,3,7,8,9,10,22,21,11,12,100])),`component`)}),sv=P(`/_auth/s3/ls/$bucket`)({component:F(()=>R(()=>import(`./route2.js`),__vite__mapDeps([101,1,2,3,4,5])),`component`)}),cv=P(`/_auth/ec2/(elastic-ips)/describe-addresses/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ci)},head:()=>({meta:[{title:`Elastic IPs | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-addresses.js`),__vite__mapDeps([102,1,16,3,7,8,9,10,20,21,11,12,100])),`component`)}),lv=P(`/_auth/ec2/(elastic-ips)/describe-addresses/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(pi(t.id)),e.queryClient.ensureQueryData(oi)])},head:({params:e})=>({meta:[{title:`${e.id} | Elastic IP | Mulga`}]}),component:F(()=>R(()=>import(`./_id.js`),__vite__mapDeps([103,1,29,3,7,8,41,16,10,17,33,18,9,42,43,44,45,46,47,50,20,21,11,12,76,36,104])),`component`)}),uv=P(`/_auth/ec2/(images)/describe-images/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(li)},head:()=>({meta:[{title:`Images | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-images.js`),__vite__mapDeps([105,1,20,21,7,8,11,12,100,16,3,23,85])),`component`)}),dv=P(`/_auth/ec2/(images)/describe-images/$id`)({loader:async({context:e,params:t})=>await e.queryClient.ensureQueryData(Zr(t.id)),head:({loaderData:e})=>({meta:[{title:`${e?.Images?.[0]?.Name??`Image`} | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./_id2.js`),__vite__mapDeps([106,1,52,53,29,3,7,8,107,17,50,9,10,20,21,11,12,36,76,23,85,108,16,104])),`component`)}),fv=P(`/_auth/ec2/(instances)/describe-instances/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(oi)},head:()=>({meta:[{title:`Instances | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-instances.js`),__vite__mapDeps([109,1,16,3,9,10,7,8,20,21,11,12,100,23])),`component`)}),pv=P(`/_auth/ec2/(instances)/describe-instances/$id`)({loader:async({context:e,params:t})=>{let[n]=await Promise.all([e.queryClient.ensureQueryData(fi(t.id)),e.queryClient.ensureQueryData($r)]),r=n.Reservations?.[0]?.Instances?.[0]?.ImageId;return await e.queryClient.ensureQueryData(Zr(r)),n},head:({loaderData:e})=>({meta:[{title:`${e?.Reservations?.[0]?.Instances?.[0]?.InstanceId??`Instance`} | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./_id3.js`),__vite__mapDeps([110,1,16,3,7,8,17,41,10,33,18,9,42,43,44,45,46,47,88,50,20,21,11,12,84,83,81,36,76,104,23,108,24,38])),`component`)}),mv=P(`/_auth/ec2/(internet-gateways)/describe-internet-gateways/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ei)},head:()=>({meta:[{title:`Internet Gateways | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-internet-gateways.js`),__vite__mapDeps([111,1,16,3,7,8,9,10,20,21,11,12,100])),`component`)}),hv=P(`/_auth/ec2/(internet-gateways)/describe-internet-gateways/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(mi(t.id)),e.queryClient.ensureQueryData(Kr)])},head:({params:e})=>({meta:[{title:`${e.id} | Internet Gateway | Mulga`}]}),component:F(()=>R(()=>import(`./_id4.js`),__vite__mapDeps([112,1,16,3,29,7,8,41,10,17,33,18,9,42,43,44,45,46,47,50,20,21,11,12,76,36,104])),`component`)}),gv=P(`/_auth/ec2/(key)/describe-key-pairs/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ui)},head:()=>({meta:[{title:`Key Pairs | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-key-pairs.js`),__vite__mapDeps([113,1,16,3,9,10,7,8,20,21,11,12,100])),`component`)}),_v=P(`/_auth/ec2/(key)/describe-key-pairs/$id`)({loader:async({context:e,params:t})=>await e.queryClient.ensureQueryData(ti(t.id)),head:({loaderData:e})=>({meta:[{title:`${e?.KeyPairs?.[0]?.KeyName??`Key Pair`} | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./_id5.js`),__vite__mapDeps([114,1,29,3,7,8,50,17,9,10,20,21,11,12,76,36,104])),`component`)}),vv=P(`/_auth/ec2/(launch-templates)/describe-launch-templates/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ri)},head:()=>({meta:[{title:`Launch Templates | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-launch-templates.js`),__vite__mapDeps([115,1,16,3,9,10,7,8,20,21,11,12,100,25])),`component`)}),yv=P(`/_auth/ec2/(launch-templates)/describe-launch-templates/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ri),e.queryClient.ensureQueryData(si(t.id)),e.queryClient.ensureQueryData(li),e.queryClient.ensureQueryData($r),e.queryClient.ensureQueryData(ui),e.queryClient.ensureQueryData(qr),e.queryClient.ensureQueryData(gi)])},head:({params:e})=>({meta:[{title:`${e.id} | Launch Template | Mulga`}]}),component:F(()=>R(()=>import(`./_id6.js`),__vite__mapDeps([116,1,16,3,29,7,8,17,41,10,33,18,9,42,43,44,45,46,47,50,20,21,11,12,76,36,104,40,38,25])),`component`)}),bv=P(`/_auth/ec2/(load-balancers)/describe-load-balancers/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ji)},head:()=>({meta:[{title:`Load Balancers | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-load-balancers.js`),__vite__mapDeps([117,1,16,3,29,7,8,9,10,56,21,11,12,55,23])),`component`)}),xv=P(`/_auth/ec2/(load-balancers)/describe-load-balancers/$id`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.id);await Promise.all([e.queryClient.ensureQueryData(Ni(n)),e.queryClient.ensureQueryData(Fi(n)),e.queryClient.ensureQueryData(Li(n)),e.queryClient.ensureQueryData(Ri([n])),e.queryClient.ensureQueryData(zi),e.queryClient.ensureQueryData(qr)])},head:({params:e})=>({meta:[{title:`${decodeURIComponent(e.id)} | Load Balancer | Mulga`}]}),component:F(()=>R(()=>import(`./_id7.js`),__vite__mapDeps([118,1,29,3,7,8,17,41,16,10,33,18,9,42,43,44,45,46,47,50,51,52,53,11,12,36,38,20,21,54,55,56,76,104,23,58,119,49,120])),`component`)}),Sv=P(`/_auth/ec2/(nat-gateways)/describe-nat-gateways/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Xr)},head:()=>({meta:[{title:`NAT Gateways | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-nat-gateways.js`),__vite__mapDeps([121,1,16,3,7,8,9,10,20,21,11,12,100,23])),`component`)}),Cv=P(`/_auth/ec2/(nat-gateways)/describe-nat-gateways/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(ni(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | NAT Gateway | Mulga`}]}),component:F(()=>R(()=>import(`./_id8.js`),__vite__mapDeps([122,1,16,3,29,7,8,50,17,9,10,20,21,11,12,76,36,104,23])),`component`)}),wv=P(`/_auth/ec2/(placement-groups)/describe-placement-groups/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(vi)},head:()=>({meta:[{title:`Placement Groups | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-placement-groups.js`),__vite__mapDeps([123,1,16,3,9,10,7,8,20,21,11,12,100,23])),`component`)}),Tv=P(`/_auth/ec2/(placement-groups)/describe-placement-groups/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(hi(t.id)),e.queryClient.ensureQueryData(oi)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./_id9.js`),__vite__mapDeps([124,1,16,3,29,50,17,9,10,7,8,20,21,11,12,76,36,104,23])),`component`)}),Ev=P(`/_auth/ec2/(route-tables)/describe-route-tables/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Jr)},head:()=>({meta:[{title:`Route Tables | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-route-tables.js`),__vite__mapDeps([125,1,16,3,7,8,9,10,20,21,11,12,100,25])),`component`)}),Dv=P(`/_auth/ec2/(route-tables)/describe-route-tables/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(_i(t.id)),e.queryClient.ensureQueryData(ei),e.queryClient.ensureQueryData(Xr),e.queryClient.ensureQueryData(qr)])},head:({params:e})=>({meta:[{title:`${e.id} | Route Table | Mulga`}]}),component:F(()=>R(()=>import(`./_id10.js`),__vite__mapDeps([126,1,16,3,29,7,8,41,10,17,33,18,9,42,43,44,45,46,47,50,20,21,11,12,76,36,104,25])),`component`)}),Ov=P(`/_auth/ec2/(security-groups)/describe-security-groups/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(gi)},head:()=>({meta:[{title:`Security Groups | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-security-groups.js`),__vite__mapDeps([127,1,16,3,9,10,7,8,20,21,11,12,100])),`component`)}),kv=P(`/_auth/ec2/(security-groups)/describe-security-groups/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(Hr(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | Security Group | Mulga`}]}),component:F(()=>R(()=>import(`./_id11.js`),__vite__mapDeps([128,1,16,3,29,41,10,7,8,17,33,18,9,42,43,44,45,46,47,49,50,20,21,11,12,36,76,104])),`component`)}),Av=P(`/_auth/ec2/(snapshots)/describe-snapshots/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Wr)},head:()=>({meta:[{title:`Snapshots | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-snapshots.js`),__vite__mapDeps([129,1,16,3,9,10,7,8,20,21,11,12,100,23])),`component`)}),jv=P(`/_auth/ec2/(snapshots)/describe-snapshots/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(Yr(t.id)),e.queryClient.ensureQueryData(Qr)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./_id12.js`),__vite__mapDeps([130,1,16,3,29,7,8,87,17,50,9,10,20,21,11,12,36,76,104,23,38])),`component`)}),Mv=P(`/_auth/ec2/(subnet)/describe-subnets/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(qr)},head:()=>({meta:[{title:`Subnets | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-subnets.js`),__vite__mapDeps([131,1,16,3,7,8,9,10,20,21,11,12,100,23])),`component`)}),Nv=P(`/_auth/ec2/(subnet)/describe-subnets/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(Ur(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | Subnet | Mulga`}]}),component:F(()=>R(()=>import(`./_id13.js`),__vite__mapDeps([132,1,16,3,29,7,8,50,17,9,10,20,21,11,12,76,36,104,23])),`component`)}),Pv=P(`/_auth/ec2/(target-groups)/describe-target-groups/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(zi)},head:()=>({meta:[{title:`Target Groups | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-target-groups.js`),__vite__mapDeps([133,1,16,3,29,9,10,7,8,56,21,11,12,55])),`component`)}),Fv=P(`/_auth/ec2/(target-groups)/describe-target-groups/$id`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.id);await Promise.all([e.queryClient.ensureQueryData(Pi(n)),e.queryClient.ensureQueryData(Mi(n)),e.queryClient.ensureQueryData(Ri([n])),e.queryClient.ensureQueryData(oi)])},head:({params:e})=>({meta:[{title:`${decodeURIComponent(e.id)} | Target Group | Mulga`}]}),component:F(()=>R(()=>import(`./_id14.js`),__vite__mapDeps([134,1,29,3,7,8,50,17,9,10,20,21,11,12,54,52,53,55,56,36,76,104,119,41,16,33,18,42,43,44,45,46,47,49,120])),`component`)}),Iv=P(`/_auth/ec2/(volumes)/describe-volumes/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Vr)},head:()=>({meta:[{title:`Volumes | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-volumes.js`),__vite__mapDeps([135,1,16,3,9,10,7,8,20,21,11,12,100,23])),`component`)}),Lv=P(`/_auth/ec2/(volumes)/describe-volumes/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ai(t.id)),e.queryClient.ensureQueryData(oi)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./_id15.js`),__vite__mapDeps([136,1,16,3,29,7,8,17,41,10,33,18,9,42,43,44,45,46,47,50,20,21,11,12,36,76,104,23])),`component`)}),Rv=P(`/_auth/ec2/(volumes)/modify-volume/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(ai(t.id))},head:({params:e})=>({meta:[{title:`Resize ${e.id} | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./_id16.js`),__vite__mapDeps([137,1,29,3,20,21,7,8,11,12,30,9,10])),`component`)}),zv=P(`/_auth/ec2/(vpc)/describe-vpcs/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Kr)},head:()=>({meta:[{title:`VPCs | EC2 | Mulga`}]}),component:F(()=>R(()=>import(`./describe-vpcs.js`),__vite__mapDeps([138,1,16,3,7,8,9,10,20,21,11,12,100,23])),`component`)}),Bv=P(`/_auth/ec2/(vpc)/describe-vpcs/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ii(t.id)),e.queryClient.ensureQueryData(qr)])},head:({params:e})=>({meta:[{title:`${e.id} | VPC | Mulga`}]}),component:F(()=>R(()=>import(`./_id17.js`),__vite__mapDeps([139,1,16,3,29,7,8,50,17,9,10,20,21,11,12,76,36,104,23])),`component`)}),Vv=P(`/_auth/ecr/(repositories)/list-repositories/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(bi)},head:()=>({meta:[{title:`Repositories | ECR | Mulga`}]}),component:F(()=>R(()=>import(`./list-repositories.js`),__vite__mapDeps([140,1,16,3,29,7,8,9,10,141,21,11,12,142,52,53,36])),`component`)}),Hv=P(`/_auth/ecr/(repositories)/list-repositories/$id`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.id);await Promise.all([e.queryClient.ensureQueryData(bi),e.queryClient.ensureQueryData(xi(n)),e.queryClient.ensureQueryData(yi(n))])},head:({params:e})=>({meta:[{title:`${decodeURIComponent(e.id)} | Repository | Mulga`}]}),component:F(()=>R(()=>import(`./_id18.js`),__vite__mapDeps([143,1,16,3,7,8,9,10,141,21,11,12,142,52,53,81,36,25,120,43,44,45,46,47,94,38])),`component`)}),Uv=P(`/_auth/ecs/(clusters)/list-clusters/`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Ci),e.queryClient.ensureQueryData(li)])},head:()=>({meta:[{title:`Clusters | ECS | Mulga`}]}),component:F(()=>R(()=>import(`./list-clusters.js`),__vite__mapDeps([144,1,52,16,3,29,9,10,7,8,20,21,11,12,70,71,53,36,76,23,85,86,33,17,87,88,35,77])),`component`)}),Wv=P(`/_auth/ecs/(clusters)/list-clusters/$clusterName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(Ei(t.clusterName)),e.queryClient.ensureQueryData(Si(t.clusterName)),e.queryClient.ensureQueryData(Ti(t.clusterName))])},head:({params:e})=>({meta:[{title:`${e.clusterName} | ECS | Mulga`}]}),component:F(()=>R(()=>import(`./_clusterName.js`),__vite__mapDeps([145,1,16,3,29,50,17,9,10,7,8,20,21,11,12,70,71,52,53,36,76,104,23,120,43,44,45,46,47])),`component`)}),Gv=P(`/_auth/eks/(clusters)/list-clusters/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Di)},head:()=>({meta:[{title:`Clusters | EKS | Mulga`}]}),component:F(()=>R(()=>import(`./list-clusters2.js`),__vite__mapDeps([146,1,16,3,9,10,7,8,147,21,11,12,80,100])),`component`)}),Kv=P(`/_auth/eks/(clusters)/list-clusters/$clusterName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(Oi(t.clusterName)),e.queryClient.ensureQueryData(Ai(t.clusterName)),e.queryClient.ensureQueryData(ki(t.clusterName))])},head:({params:e})=>({meta:[{title:`${e.clusterName} | EKS | Mulga`}]}),component:F(()=>R(()=>import(`./_clusterName2.js`),__vite__mapDeps([148,1,16,3,29,7,8,17,107,50,35,9,10,20,21,11,12,79,52,53,80,68,81,147,84,83,36,76,104,25,120,43,44,45,46,47,94,38])),`component`)}),qv=P(`/_auth/iam/(groups)/list-groups/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Xi)},head:()=>({meta:[{title:`Groups | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./list-groups.js`),__vite__mapDeps([149,1,16,3,9,10,7,8,84,21,11,12,83,81,100])),`component`)}),Jv=P(`/_auth/iam/(groups)/list-groups/$groupName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ta(t.groupName)),e.queryClient.ensureQueryData(Qi(t.groupName)),e.queryClient.ensureQueryData($i),e.queryClient.ensureQueryData(Bi),e.queryClient.ensureQueryData(Hi(t.groupName))])},head:({params:e})=>({meta:[{title:`${e.groupName} | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./_groupName.js`),__vite__mapDeps([150,1,16,3,29,7,8,50,17,9,10,82,52,53,11,12,83,84,21,81,76,36,104,151,94,38,91])),`component`)}),Yv=P(`/_auth/iam/(instance-profiles)/list-instance-profiles/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Ki)},head:()=>({meta:[{title:`Instance Profiles | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./list-instance-profiles.js`),__vite__mapDeps([152,1,16,3,9,10,7,8,84,21,11,12,83,81,100])),`component`)}),Xv=P(`/_auth/iam/(instance-profiles)/list-instance-profiles/$instanceProfileName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ra(t.instanceProfileName)),e.queryClient.ensureQueryData(aa)])},head:({params:e})=>({meta:[{title:`${e.instanceProfileName} | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./_instanceProfileName.js`),__vite__mapDeps([153,1,16,3,29,7,8,50,17,9,10,82,52,53,11,12,83,84,21,81,76,36,104])),`component`)}),Zv=P(`/_auth/iam/(policies)/list-policies/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData($i)},head:()=>({meta:[{title:`Policies | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./list-policies.js`),__vite__mapDeps([154,1,16,3,9,10,7,8,84,21,11,12,83,81,100])),`component`)}),Qv=P(`/_auth/iam/(policies)/list-policies/$policyArn`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.policyArn),r=await e.queryClient.ensureQueryData(Zi(n)),i=r.Policy?.DefaultVersionId;return i&&await e.queryClient.ensureQueryData(Ji(n,i)),r},head:({loaderData:e})=>({meta:[{title:`${e?.Policy?.PolicyName??`Policy`} | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./_policyArn.js`),__vite__mapDeps([155,1,29,3,7,8,50,17,9,10,82,52,53,11,12,83,84,21,81,76,36,104,89])),`component`)}),$v=P(`/_auth/iam/(roles)/list-roles/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(aa)},head:()=>({meta:[{title:`Roles | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./list-roles.js`),__vite__mapDeps([156,1,16,3,9,10,7,8,84,21,11,12,83,81,100])),`component`)}),ey=P(`/_auth/iam/(roles)/list-roles/$roleName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ia(t.roleName)),e.queryClient.ensureQueryData(ea(t.roleName)),e.queryClient.ensureQueryData(Gi(t.roleName)),e.queryClient.ensureQueryData($i),e.queryClient.ensureQueryData(qi(t.roleName))])},head:({params:e})=>({meta:[{title:`${e.roleName} | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./_roleName.js`),__vite__mapDeps([157,1,16,3,29,7,8,50,17,9,10,82,52,53,11,12,83,84,21,81,76,36,104,89,151,94,38,91])),`component`)}),ty=P(`/_auth/iam/(users)/list-users/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Bi)},head:()=>({meta:[{title:`Users | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./list-users.js`),__vite__mapDeps([158,1,16,3,9,10,7,8,84,21,11,12,83,81,100])),`component`)}),ny=P(`/_auth/iam/(users)/list-users/$userName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(Vi(t.userName)),e.queryClient.ensureQueryData(na(t.userName)),e.queryClient.ensureQueryData(Yi(t.userName)),e.queryClient.ensureQueryData($i),e.queryClient.ensureQueryData(Wi(t.userName)),e.queryClient.ensureQueryData(Ui(t.userName))])},head:({params:e})=>({meta:[{title:`${e.userName} | IAM | Mulga`}]}),component:F(()=>R(()=>import(`./_userName.js`),__vite__mapDeps([159,1,16,3,29,7,8,33,17,50,35,9,10,82,52,53,11,12,83,84,21,81,36,76,104,23,151,94,38,91])),`component`)}),ry=P(`/_auth/s3/ls/$bucket/`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(sa(t.bucket))},head:({params:e})=>({meta:[{title:`${e.bucket} | S3 | Mulga`}]}),component:F(()=>R(()=>import(`./_bucket.js`),__vite__mapDeps([160,1,7,8,161,16,3,17,34,50,9,10,11,12,98,52,53,76,36,22,21])),`component`)}),iy=P(`/_auth/s3/ls/$bucket/$`)({loader:async({context:e,params:t})=>{let n=De(t._splat??``);await e.queryClient.ensureQueryData(sa(t.bucket,n))},head:({params:e})=>({meta:[{title:`${Oe(e._splat??``,`${e.bucket}/`)} | S3 | Mulga`}]}),component:F(()=>R(()=>import(`./_.js`),__vite__mapDeps([162,1,16,3,7,8,161,17,34,50,9,10,11,12,98,52,53,76,36,22,21])),`component`)}),ay=P(`/_auth/ecs/(clusters)/list-clusters/$clusterName_/services/$serviceName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(Si(t.clusterName)),e.queryClient.ensureQueryData(Ti(t.clusterName))])},head:({params:e})=>({meta:[{title:`${e.serviceName} | ECS | Mulga`}]}),component:F(()=>R(()=>import(`./_serviceName.js`),__vite__mapDeps([163,1,16,3,70,21,7,8,11,12,104,23])),`component`)}),oy=P(`/_auth/ecs/(clusters)/list-clusters/$clusterName_/tasks/$taskId`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(Ti(t.clusterName))},head:({params:e})=>({meta:[{title:`${e.taskId} | ECS | Mulga`}]}),component:F(()=>R(()=>import(`./_taskId.js`),__vite__mapDeps([164,1,70,21,7,8,11,12,104,23])),`component`)}),$=md.update({id:`/_auth`,getParentRoute:()=>pd}),sy=hd.update({id:`/login`,path:`/login`,getParentRoute:()=>pd}),cy=gd.update({id:`/`,path:`/`,getParentRoute:()=>$}),ly=_d.update({id:`/nodes`,path:`/nodes`,getParentRoute:()=>$}),uy=vd.update({id:`/s3/service-metrics`,path:`/s3/service-metrics`,getParentRoute:()=>$}),dy=yd.update({id:`/ec2/(elastic-ips)/allocate-address`,path:`/ec2/allocate-address`,getParentRoute:()=>$}),fy=f_.update({id:`/ec2/(instances)/run-instances`,path:`/ec2/run-instances`,getParentRoute:()=>$}),py=P_.update({id:`/ec2/(internet-gateways)/create-internet-gateway`,path:`/ec2/create-internet-gateway`,getParentRoute:()=>$}),my=F_.update({id:`/ec2/(key)/create-key-pair`,path:`/ec2/create-key-pair`,getParentRoute:()=>$}),hy=I_.update({id:`/ec2/(key)/import-key-pair`,path:`/ec2/import-key-pair`,getParentRoute:()=>$}),gy=L_.update({id:`/ec2/(launch-templates)/create-launch-template`,path:`/ec2/create-launch-template`,getParentRoute:()=>$}),_y=z_.update({id:`/ec2/(load-balancers)/create-load-balancer`,path:`/ec2/create-load-balancer`,getParentRoute:()=>$}),vy=B_.update({id:`/ec2/(nat-gateways)/create-nat-gateway`,path:`/ec2/create-nat-gateway`,getParentRoute:()=>$}),yy=V_.update({id:`/ec2/(placement-groups)/create-placement-group`,path:`/ec2/create-placement-group`,getParentRoute:()=>$}),by=H_.update({id:`/ec2/(route-tables)/create-route-table`,path:`/ec2/create-route-table`,getParentRoute:()=>$}),xy=U_.update({id:`/ec2/(security-groups)/create-security-group`,path:`/ec2/create-security-group`,getParentRoute:()=>$}),Sy=W_.update({id:`/ec2/(snapshots)/create-snapshot`,path:`/ec2/create-snapshot`,getParentRoute:()=>$}),Cy=G_.update({id:`/ec2/(subnet)/create-subnet`,path:`/ec2/create-subnet`,getParentRoute:()=>$}),wy=K_.update({id:`/ec2/(target-groups)/create-target-group`,path:`/ec2/create-target-group`,getParentRoute:()=>$}),Ty=q_.update({id:`/ec2/(volumes)/create-volume`,path:`/ec2/create-volume`,getParentRoute:()=>$}),Ey=J_.update({id:`/ec2/(vpc)/create-vpc`,path:`/ec2/create-vpc`,getParentRoute:()=>$}),Dy=Y_.update({id:`/ecs/(clusters)/create-service`,path:`/ecs/create-service`,getParentRoute:()=>$}),Oy=X_.update({id:`/ecs/(clusters)/register-task-definition`,path:`/ecs/register-task-definition`,getParentRoute:()=>$}),ky=Z_.update({id:`/ecs/(clusters)/run-task`,path:`/ecs/run-task`,getParentRoute:()=>$}),Ay=Q_.update({id:`/ecs/(clusters)/task-definitions`,path:`/ecs/task-definitions`,getParentRoute:()=>$}),jy=$_.update({id:`/eks/(clusters)/create-cluster`,path:`/eks/create-cluster`,getParentRoute:()=>$}),My=ev.update({id:`/iam/(groups)/create-group`,path:`/iam/create-group`,getParentRoute:()=>$}),Ny=tv.update({id:`/iam/(instance-profiles)/create-instance-profile`,path:`/iam/create-instance-profile`,getParentRoute:()=>$}),Py=nv.update({id:`/iam/(policies)/create-policy`,path:`/iam/create-policy`,getParentRoute:()=>$}),Fy=rv.update({id:`/iam/(roles)/create-role`,path:`/iam/create-role`,getParentRoute:()=>$}),Iy=iv.update({id:`/iam/(users)/create-user`,path:`/iam/create-user`,getParentRoute:()=>$}),Ly=av.update({id:`/s3/(buckets)/create-bucket`,path:`/s3/create-bucket`,getParentRoute:()=>$}),Ry=ov.update({id:`/s3/ls/`,path:`/s3/ls/`,getParentRoute:()=>$}),zy=sv.update({id:`/s3/ls/$bucket`,path:`/s3/ls/$bucket`,getParentRoute:()=>$}),By=cv.update({id:`/ec2/(elastic-ips)/describe-addresses/`,path:`/ec2/describe-addresses/`,getParentRoute:()=>$}),Vy=lv.update({id:`/ec2/(elastic-ips)/describe-addresses/$id`,path:`/ec2/describe-addresses/$id`,getParentRoute:()=>$}),Hy=uv.update({id:`/ec2/(images)/describe-images/`,path:`/ec2/describe-images/`,getParentRoute:()=>$}),Uy=dv.update({id:`/ec2/(images)/describe-images/$id`,path:`/ec2/describe-images/$id`,getParentRoute:()=>$}),Wy=fv.update({id:`/ec2/(instances)/describe-instances/`,path:`/ec2/describe-instances/`,getParentRoute:()=>$}),Gy=pv.update({id:`/ec2/(instances)/describe-instances/$id`,path:`/ec2/describe-instances/$id`,getParentRoute:()=>$}),Ky=mv.update({id:`/ec2/(internet-gateways)/describe-internet-gateways/`,path:`/ec2/describe-internet-gateways/`,getParentRoute:()=>$}),qy=hv.update({id:`/ec2/(internet-gateways)/describe-internet-gateways/$id`,path:`/ec2/describe-internet-gateways/$id`,getParentRoute:()=>$}),Jy=gv.update({id:`/ec2/(key)/describe-key-pairs/`,path:`/ec2/describe-key-pairs/`,getParentRoute:()=>$}),Yy=_v.update({id:`/ec2/(key)/describe-key-pairs/$id`,path:`/ec2/describe-key-pairs/$id`,getParentRoute:()=>$}),Xy=vv.update({id:`/ec2/(launch-templates)/describe-launch-templates/`,path:`/ec2/describe-launch-templates/`,getParentRoute:()=>$}),Zy=yv.update({id:`/ec2/(launch-templates)/describe-launch-templates/$id`,path:`/ec2/describe-launch-templates/$id`,getParentRoute:()=>$}),Qy=bv.update({id:`/ec2/(load-balancers)/describe-load-balancers/`,path:`/ec2/describe-load-balancers/`,getParentRoute:()=>$}),$y=xv.update({id:`/ec2/(load-balancers)/describe-load-balancers/$id`,path:`/ec2/describe-load-balancers/$id`,getParentRoute:()=>$}),eb=Sv.update({id:`/ec2/(nat-gateways)/describe-nat-gateways/`,path:`/ec2/describe-nat-gateways/`,getParentRoute:()=>$}),tb=Cv.update({id:`/ec2/(nat-gateways)/describe-nat-gateways/$id`,path:`/ec2/describe-nat-gateways/$id`,getParentRoute:()=>$}),nb=wv.update({id:`/ec2/(placement-groups)/describe-placement-groups/`,path:`/ec2/describe-placement-groups/`,getParentRoute:()=>$}),rb=Tv.update({id:`/ec2/(placement-groups)/describe-placement-groups/$id`,path:`/ec2/describe-placement-groups/$id`,getParentRoute:()=>$}),ib=Ev.update({id:`/ec2/(route-tables)/describe-route-tables/`,path:`/ec2/describe-route-tables/`,getParentRoute:()=>$}),ab=Dv.update({id:`/ec2/(route-tables)/describe-route-tables/$id`,path:`/ec2/describe-route-tables/$id`,getParentRoute:()=>$}),ob=Ov.update({id:`/ec2/(security-groups)/describe-security-groups/`,path:`/ec2/describe-security-groups/`,getParentRoute:()=>$}),sb=kv.update({id:`/ec2/(security-groups)/describe-security-groups/$id`,path:`/ec2/describe-security-groups/$id`,getParentRoute:()=>$}),cb=Av.update({id:`/ec2/(snapshots)/describe-snapshots/`,path:`/ec2/describe-snapshots/`,getParentRoute:()=>$}),lb=jv.update({id:`/ec2/(snapshots)/describe-snapshots/$id`,path:`/ec2/describe-snapshots/$id`,getParentRoute:()=>$}),ub=Mv.update({id:`/ec2/(subnet)/describe-subnets/`,path:`/ec2/describe-subnets/`,getParentRoute:()=>$}),db=Nv.update({id:`/ec2/(subnet)/describe-subnets/$id`,path:`/ec2/describe-subnets/$id`,getParentRoute:()=>$}),fb=Pv.update({id:`/ec2/(target-groups)/describe-target-groups/`,path:`/ec2/describe-target-groups/`,getParentRoute:()=>$}),pb=Fv.update({id:`/ec2/(target-groups)/describe-target-groups/$id`,path:`/ec2/describe-target-groups/$id`,getParentRoute:()=>$}),mb=Iv.update({id:`/ec2/(volumes)/describe-volumes/`,path:`/ec2/describe-volumes/`,getParentRoute:()=>$}),hb=Lv.update({id:`/ec2/(volumes)/describe-volumes/$id`,path:`/ec2/describe-volumes/$id`,getParentRoute:()=>$}),gb=Rv.update({id:`/ec2/(volumes)/modify-volume/$id`,path:`/ec2/modify-volume/$id`,getParentRoute:()=>$}),_b=zv.update({id:`/ec2/(vpc)/describe-vpcs/`,path:`/ec2/describe-vpcs/`,getParentRoute:()=>$}),vb=Bv.update({id:`/ec2/(vpc)/describe-vpcs/$id`,path:`/ec2/describe-vpcs/$id`,getParentRoute:()=>$}),yb=Vv.update({id:`/ecr/(repositories)/list-repositories/`,path:`/ecr/list-repositories/`,getParentRoute:()=>$}),bb=Hv.update({id:`/ecr/(repositories)/list-repositories/$id`,path:`/ecr/list-repositories/$id`,getParentRoute:()=>$}),xb=Uv.update({id:`/ecs/(clusters)/list-clusters/`,path:`/ecs/list-clusters/`,getParentRoute:()=>$}),Sb=Wv.update({id:`/ecs/(clusters)/list-clusters/$clusterName`,path:`/ecs/list-clusters/$clusterName`,getParentRoute:()=>$}),Cb=Gv.update({id:`/eks/(clusters)/list-clusters/`,path:`/eks/list-clusters/`,getParentRoute:()=>$}),wb=Kv.update({id:`/eks/(clusters)/list-clusters/$clusterName`,path:`/eks/list-clusters/$clusterName`,getParentRoute:()=>$}),Tb=qv.update({id:`/iam/(groups)/list-groups/`,path:`/iam/list-groups/`,getParentRoute:()=>$}),Eb=Jv.update({id:`/iam/(groups)/list-groups/$groupName`,path:`/iam/list-groups/$groupName`,getParentRoute:()=>$}),Db=Yv.update({id:`/iam/(instance-profiles)/list-instance-profiles/`,path:`/iam/list-instance-profiles/`,getParentRoute:()=>$}),Ob=Xv.update({id:`/iam/(instance-profiles)/list-instance-profiles/$instanceProfileName`,path:`/iam/list-instance-profiles/$instanceProfileName`,getParentRoute:()=>$}),kb=Zv.update({id:`/iam/(policies)/list-policies/`,path:`/iam/list-policies/`,getParentRoute:()=>$}),Ab=Qv.update({id:`/iam/(policies)/list-policies/$policyArn`,path:`/iam/list-policies/$policyArn`,getParentRoute:()=>$}),jb=$v.update({id:`/iam/(roles)/list-roles/`,path:`/iam/list-roles/`,getParentRoute:()=>$}),Mb=ey.update({id:`/iam/(roles)/list-roles/$roleName`,path:`/iam/list-roles/$roleName`,getParentRoute:()=>$}),Nb=ty.update({id:`/iam/(users)/list-users/`,path:`/iam/list-users/`,getParentRoute:()=>$}),Pb=ny.update({id:`/iam/(users)/list-users/$userName`,path:`/iam/list-users/$userName`,getParentRoute:()=>$}),Fb=ry.update({id:`/`,path:`/`,getParentRoute:()=>zy}),Ib=iy.update({id:`/$`,path:`/$`,getParentRoute:()=>zy}),Lb=ay.update({id:`/ecs/(clusters)/list-clusters/$clusterName_/services/$serviceName`,path:`/ecs/list-clusters/$clusterName/services/$serviceName`,getParentRoute:()=>$}),Rb=oy.update({id:`/ecs/(clusters)/list-clusters/$clusterName_/tasks/$taskId`,path:`/ecs/list-clusters/$clusterName/tasks/$taskId`,getParentRoute:()=>$}),zb={AuthS3LsBucketSplatRoute:Ib,AuthS3LsBucketIndexRoute:Fb},Bb={AuthNodesRoute:ly,AuthIndexRoute:cy,AuthS3ServiceMetricsRoute:uy,AuthS3LsBucketRouteRoute:zy._addFileChildren(zb),AuthEc2elasticIpsAllocateAddressRoute:dy,AuthEc2instancesRunInstancesRoute:fy,AuthEc2internetGatewaysCreateInternetGatewayRoute:py,AuthEc2keyCreateKeyPairRoute:my,AuthEc2keyImportKeyPairRoute:hy,AuthEc2launchTemplatesCreateLaunchTemplateRoute:gy,AuthEc2loadBalancersCreateLoadBalancerRoute:_y,AuthEc2natGatewaysCreateNatGatewayRoute:vy,AuthEc2placementGroupsCreatePlacementGroupRoute:yy,AuthEc2routeTablesCreateRouteTableRoute:by,AuthEc2securityGroupsCreateSecurityGroupRoute:xy,AuthEc2snapshotsCreateSnapshotRoute:Sy,AuthEc2subnetCreateSubnetRoute:Cy,AuthEc2targetGroupsCreateTargetGroupRoute:wy,AuthEc2volumesCreateVolumeRoute:Ty,AuthEc2vpcCreateVpcRoute:Ey,AuthEcsclustersCreateServiceRoute:Dy,AuthEcsclustersRegisterTaskDefinitionRoute:Oy,AuthEcsclustersRunTaskRoute:ky,AuthEcsclustersTaskDefinitionsRoute:Ay,AuthEksclustersCreateClusterRoute:jy,AuthIamgroupsCreateGroupRoute:My,AuthIaminstanceProfilesCreateInstanceProfileRoute:Ny,AuthIampoliciesCreatePolicyRoute:Py,AuthIamrolesCreateRoleRoute:Fy,AuthIamusersCreateUserRoute:Iy,AuthS3bucketsCreateBucketRoute:Ly,AuthS3LsIndexRoute:Ry,AuthEc2elasticIpsDescribeAddressesIdRoute:Vy,AuthEc2imagesDescribeImagesIdRoute:Uy,AuthEc2instancesDescribeInstancesIdRoute:Gy,AuthEc2internetGatewaysDescribeInternetGatewaysIdRoute:qy,AuthEc2keyDescribeKeyPairsIdRoute:Yy,AuthEc2launchTemplatesDescribeLaunchTemplatesIdRoute:Zy,AuthEc2loadBalancersDescribeLoadBalancersIdRoute:$y,AuthEc2natGatewaysDescribeNatGatewaysIdRoute:tb,AuthEc2placementGroupsDescribePlacementGroupsIdRoute:rb,AuthEc2routeTablesDescribeRouteTablesIdRoute:ab,AuthEc2securityGroupsDescribeSecurityGroupsIdRoute:sb,AuthEc2snapshotsDescribeSnapshotsIdRoute:lb,AuthEc2subnetDescribeSubnetsIdRoute:db,AuthEc2targetGroupsDescribeTargetGroupsIdRoute:pb,AuthEc2volumesDescribeVolumesIdRoute:hb,AuthEc2volumesModifyVolumeIdRoute:gb,AuthEc2vpcDescribeVpcsIdRoute:vb,AuthEcrrepositoriesListRepositoriesIdRoute:bb,AuthEcsclustersListClustersClusterNameRoute:Sb,AuthEksclustersListClustersClusterNameRoute:wb,AuthIamgroupsListGroupsGroupNameRoute:Eb,AuthIaminstanceProfilesListInstanceProfilesInstanceProfileNameRoute:Ob,AuthIampoliciesListPoliciesPolicyArnRoute:Ab,AuthIamrolesListRolesRoleNameRoute:Mb,AuthIamusersListUsersUserNameRoute:Pb,AuthEc2elasticIpsDescribeAddressesIndexRoute:By,AuthEc2imagesDescribeImagesIndexRoute:Hy,AuthEc2instancesDescribeInstancesIndexRoute:Wy,AuthEc2internetGatewaysDescribeInternetGatewaysIndexRoute:Ky,AuthEc2keyDescribeKeyPairsIndexRoute:Jy,AuthEc2launchTemplatesDescribeLaunchTemplatesIndexRoute:Xy,AuthEc2loadBalancersDescribeLoadBalancersIndexRoute:Qy,AuthEc2natGatewaysDescribeNatGatewaysIndexRoute:eb,AuthEc2placementGroupsDescribePlacementGroupsIndexRoute:nb,AuthEc2routeTablesDescribeRouteTablesIndexRoute:ib,AuthEc2securityGroupsDescribeSecurityGroupsIndexRoute:ob,AuthEc2snapshotsDescribeSnapshotsIndexRoute:cb,AuthEc2subnetDescribeSubnetsIndexRoute:ub,AuthEc2targetGroupsDescribeTargetGroupsIndexRoute:fb,AuthEc2volumesDescribeVolumesIndexRoute:mb,AuthEc2vpcDescribeVpcsIndexRoute:_b,AuthEcrrepositoriesListRepositoriesIndexRoute:yb,AuthEcsclustersListClustersIndexRoute:xb,AuthEksclustersListClustersIndexRoute:Cb,AuthIamgroupsListGroupsIndexRoute:Tb,AuthIaminstanceProfilesListInstanceProfilesIndexRoute:Db,AuthIampoliciesListPoliciesIndexRoute:kb,AuthIamrolesListRolesIndexRoute:jb,AuthIamusersListUsersIndexRoute:Nb,AuthEcsclustersListClustersClusterNameServicesServiceNameRoute:Lb,AuthEcsclustersListClustersClusterNameTasksTaskIdRoute:Rb},Vb={AuthRouteRoute:$._addFileChildren(Bb),LoginRoute:sy},Hb=pd._addFileChildren(Vb)._addFileTypes(),Ub=od(),Wb=qa({routeTree:Hb,context:{queryClient:Ub},defaultPreload:`intent`,scrollRestoration:!0,defaultStructuralSharing:!0,defaultPreloadStaleTime:0}),Gb=document.querySelector(`#app`);Gb&&!Gb.innerHTML&&ao.createRoot(Gb).render((0,J.jsx)(q.StrictMode,{children:(0,J.jsx)(co,{defaultTheme:`dark`,storageKey:`spinifex-ui-theme`,children:(0,J.jsx)(_,{client:Ub,children:(0,J.jsx)(Kl,{children:(0,J.jsx)($c,{children:(0,J.jsx)(Xa,{router:Wb})})})})})}));export{t_ as $,Wh as $t,Z_ as A,ic as An,Nh as At,o_ as B,zo as Bn,dh as Bt,xv as C,hd as Cn,Ch as Ct,pv as D,ql as Dn,Um as Dt,hv as E,Xl as En,Ym as Et,Fg as F,ns as Fn,kh as Ft,Jg as G,To as Gn,qm as Gt,Kg as H,Io as Hn,fg as Ht,Gg as I,ts as In,th as It,Wg as J,go as Jn,$m as Jt,e_ as K,So as Kn,ph as Kt,Xg as L,Yo as Ln,Th as Lt,Y_ as M,Xs as Mn,bg as Mt,W_ as N,Ys as Nn,Lh as Nt,dv as O,Hl as On,Vm as Ot,R_ as P,rs as Pn,ah as Pt,Hg as Q,Kh as Qt,qg as R,Ko as Rn,xh as Rt,Cv as S,$d as Sn,Zm as St,_v as T,Ql as Tn,Xh as Tt,$g as U,Mo as Un,Og as Ut,s_ as V,Lo as Vn,cg as Vt,Yg as W,Eo as Wn,hh as Wt,Qg as X,_a as Xn,yh as Xt,Vg as Y,uo as Yn,Em as Yt,Bg as Z,ga as Zn,ig as Zt,Nv as _,Tp as _n,Sg as _t,ny as a,gm as an,Qh as at,Dv as b,If as bn,rh as bt,Xv as c,cm as cn,zh as ct,Wv as d,Bp as dn,Jh as dt,bm as en,Pm as et,Hv as f,Lp as fn,Gm as ft,Fv as g,Dp as gn,jh as gt,Lv as h,Ap as hn,mg as ht,ry as i,hm as in,Eg as it,X_ as j,nc as jn,wg as jt,lv as k,Ll as kn,gg as kt,Jv as l,um as ln,sh as lt,Rv as m,Np as mn,Lm as mt,ay as n,wm as nn,og as nt,ey as o,dm as on,lh as ot,Bv as p,Pp as pn,Fm as pt,Ug as q,xo as qn,zm as qt,iy as r,pm as rn,ug as rt,Qv as s,mm as sn,Vh as st,oy as t,Sm as tn,ng as tt,Kv as u,lm as un,_h as ut,jv as v,wp as vn,vg as vt,yv as w,Zl as wn,Mg as wt,Tv as x,mp as xn,Dh as xt,kv as y,tf as yn,Fh as yt,zg as z,Go as zn,eg as zt}; \ No newline at end of file + --security-group-ids`},{type:`value`,value:` ${n.join(` `)}`})}if(y!==void 0||b!==void 0||S!==void 0){let e={};y!==void 0&&(e.VolumeSize=y),x&&(e.VolumeType=x),S!==void 0&&(e.DeleteOnTermination=C);let t=JSON.stringify([{DeviceName:_||u_,Ebs:e}]);w.push({type:`flag`,value:` \\ + --block-device-mappings`},{type:`value`,value:` '${t}'`})}return[...M,{label:`Run Instances`,parts:w}]}var I_=I(`/_auth/ec2/(internet-gateways)/create-internet-gateway`)({head:()=>({meta:[{title:`Create Internet Gateway | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-internet-gateway.js`),__vite__mapDeps([30,1,29,3])),`component`)});function L_(e){let t=(0,Z.c)(9),{isSubmitting:n,isPending:r,onCancel:i,submitLabel:a,pendingLabel:o}=e,s=n||r,c;t[0]!==s||t[1]!==i?(c=(0,Y.jsx)(at,{disabled:s,onClick:i,type:`button`,variant:`outline`,children:`Cancel`}),t[0]=s,t[1]=i,t[2]=c):c=t[2];let l=s?o:a,u;t[3]!==s||t[4]!==l?(u=(0,Y.jsx)(at,{disabled:s,type:`submit`,children:l}),t[3]=s,t[4]=l,t[5]=u):u=t[5];let d;return t[6]!==c||t[7]!==u?(d=(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[c,u]}),t[6]=c,t[7]=u,t[8]=d):d=t[8],d}function R_(e){return rc(e,`alert-dialog`)}function z_(e){let t=(0,Z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Y.jsx)(R_,{"data-slot":`alert-dialog`,...n}),t[2]=n,t[3]=r),r}function B_(e){let t=(0,Z.c)(4),n;t[0]===e?n=t[1]:({...n}=e,t[0]=e,t[1]=n);let r;return t[2]===n?r=t[3]:(r=(0,Y.jsx)(Zs,{"data-slot":`alert-dialog-portal`,...n}),t[2]=n,t[3]=r),r}function V_(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`data-closed:fade-out-0 data-open:fade-in-0 data-closed:animate-out data-open:animate-in fixed inset-0 isolate z-50 bg-black/80 duration-100 supports-backdrop-filter:backdrop-blur-xs`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(ns,{className:i,"data-slot":`alert-dialog-overlay`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function H_(e){let t=(0,Z.c)(11),n,r,i;t[0]===e?(n=t[1],r=t[2],i=t[3]):({className:n,size:i,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i);let a=i===void 0?`default`:i,o;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(o=(0,Y.jsx)(V_,{}),t[4]=o):o=t[4];let s;t[5]===n?s=t[6]:(s=z(`data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 group/alert-dialog-content data-closed:animate-out data-open:animate-in fixed top-1/2 left-1/2 z-50 grid w-full -translate-x-1/2 -translate-y-1/2 gap-3 rounded-xl bg-background p-4 ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-64 data-[size=default]:sm:max-w-sm`,n),t[5]=n,t[6]=s);let c;return t[7]!==r||t[8]!==a||t[9]!==s?(c=(0,Y.jsxs)(B_,{children:[o,(0,Y.jsx)(Xs,{className:s,"data-size":a,"data-slot":`alert-dialog-content`,...r})]}),t[7]=r,t[8]=a,t[9]=s,t[10]=c):c=t[10],c}function U_(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`grid grid-rows-[auto_1fr] place-items-center gap-1 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-slot":`alert-dialog-header`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function W_(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-slot":`alert-dialog-footer`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function G_(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`mb-2 inline-flex size-8 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-4`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(`div`,{className:i,"data-slot":`alert-dialog-media`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function K_(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`text-sm font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(ac,{className:i,"data-slot":`alert-dialog-title`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function q_(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(`text-xs/relaxed text-balance text-muted-foreground md:text-pretty *:[a]:underline *:[a]:underline-offset-3 *:[a]:hover:text-foreground`,n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(is,{className:i,"data-slot":`alert-dialog-description`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function J_(e){let t=(0,Z.c)(8),n,r;t[0]===e?(n=t[1],r=t[2]):({className:n,...r}=e,t[0]=e,t[1]=n,t[2]=r);let i;t[3]===n?i=t[4]:(i=z(n),t[3]=n,t[4]=i);let a;return t[5]!==r||t[6]!==i?(a=(0,Y.jsx)(at,{className:i,"data-slot":`alert-dialog-action`,...r}),t[5]=r,t[6]=i,t[7]=a):a=t[7],a}function Y_(e){let t=(0,Z.c)(14),n,r,i,a;t[0]===e?(n=t[1],r=t[2],i=t[3],a=t[4]):({className:n,variant:i,size:a,...r}=e,t[0]=e,t[1]=n,t[2]=r,t[3]=i,t[4]=a);let o=i===void 0?`outline`:i,s=a===void 0?`default`:a,c;t[5]===n?c=t[6]:(c=z(n),t[5]=n,t[6]=c);let l;t[7]!==s||t[8]!==o?(l=(0,Y.jsx)(at,{size:s,variant:o}),t[7]=s,t[8]=o,t[9]=l):l=t[9];let u;return t[10]!==r||t[11]!==c||t[12]!==l?(u=(0,Y.jsx)(rs,{className:c,"data-slot":`alert-dialog-cancel`,render:l,...r}),t[10]=r,t[11]=c,t[12]=l,t[13]=u):u=t[13],u}function X_(e){let t=(0,Z.c)(38),{open:n,keyName:r,keyMaterial:i}=e,a=he(),{copied:o,copy:s}=kp(),c;t[0]!==i||t[1]!==r?(c=()=>{let e=new Blob([i],{type:`text/plain`}),t=URL.createObjectURL(e),n=document.createElement(`a`);n.href=t,n.download=`${r}.pem`,n.click(),URL.revokeObjectURL(t)},t[0]=i,t[1]=r,t[2]=c):c=t[2];let l=c,u;t[3]===a?u=t[4]:(u=()=>{a({to:`/ec2/describe-key-pairs`})},t[3]=a,t[4]=u);let d=u,f,p;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,Y.jsx)(G_,{children:(0,Y.jsx)(Ho,{className:`text-destructive`})}),p=(0,Y.jsx)(K_,{children:`Save Your Private Key`}),t[5]=f,t[6]=p):(f=t[5],p=t[6]);let m;t[7]===r?m=t[8]:(m=(0,Y.jsxs)(U_,{children:[f,p,(0,Y.jsxs)(q_,{children:[`This is your only chance to save the private key file for`,` `,(0,Y.jsx)(`strong`,{children:r}),`. Please download or copy it now. You won't be able to retrieve it again.`]})]}),t[7]=r,t[8]=m);let h=`Private key material for ${r}`,g;t[9]!==i||t[10]!==h?(g=(0,Y.jsx)(`textarea`,{"aria-label":h,className:`w-full resize-none overflow-y-auto rounded-md border border-input bg-input/20 px-2 py-2 font-mono text-xs`,readOnly:!0,rows:4,value:i}),t[9]=i,t[10]=h,t[11]=g):g=t[11];let _;t[12]!==s||t[13]!==i?(_=async()=>await s(i),t[12]=s,t[13]=i,t[14]=_):_=t[14];let v;t[15]===o?v=t[16]:(v=o?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(ze,{className:`mr-2 size-4`}),`Copied!`]}):`Copy to Clipboard`,t[15]=o,t[16]=v);let y;t[17]!==_||t[18]!==v?(y=(0,Y.jsx)(at,{className:`flex-1`,onClick:_,type:`button`,variant:`outline`,children:v}),t[17]=_,t[18]=v,t[19]=y):y=t[19];let b;t[20]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,Y.jsx)(yo,{className:`mr-2 size-4`}),t[20]=b):b=t[20];let x;t[21]===l?x=t[22]:(x=(0,Y.jsxs)(at,{className:`flex-1`,onClick:l,type:`button`,variant:`outline`,children:[b,`Download .pem File`]}),t[21]=l,t[22]=x);let S;t[23]!==y||t[24]!==x?(S=(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[y,x]}),t[23]=y,t[24]=x,t[25]=S):S=t[25];let C;t[26]!==S||t[27]!==g?(C=(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[g,S]}),t[26]=S,t[27]=g,t[28]=C):C=t[28];let w;t[29]===d?w=t[30]:(w=(0,Y.jsx)(W_,{children:(0,Y.jsx)(Y_,{onClick:d,children:`Close and Continue`})}),t[29]=d,t[30]=w);let T;t[31]!==C||t[32]!==w||t[33]!==m?(T=(0,Y.jsxs)(H_,{className:`max-w-2xl`,children:[m,C,w]}),t[31]=C,t[32]=w,t[33]=m,t[34]=T):T=t[34];let E;return t[35]!==n||t[36]!==T?(E=(0,Y.jsx)(z_,{open:n,children:T}),t[35]=n,t[36]=T,t[37]=E):E=t[37],E}var Z_=I(`/_auth/ec2/(key)/create-key-pair`)({head:()=>({meta:[{title:`Create Key Pair | EC2 | Mulga`}]}),component:Q_});function Q_(){let e=(0,Z.c)(60),t=he(),n=qm(),[r,i]=(0,J.useState)(null),a;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=Ep(Vg),e[0]=a):a=e[0];let o;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(o={resolver:a,defaultValues:{keyType:`rsa`}},e[1]=o):o=e[1];let{handleSubmit:s,register:c,control:l,formState:u}=gp(o),{errors:d,isSubmitting:f}=u,p;e[2]===l?p=e[3]:(p={control:l},e[2]=l,e[3]=p);let m=tf(p),h;e[4]===m?h=e[5]:(h=e=>e?m[e]:void 0,e[4]=m,e[5]=h);let g=h,_;e[6]===n?_=e[7]:(_=async e=>{let t=await n.mutateAsync(e);t.KeyMaterial&&i({keyName:e.keyName,material:t.KeyMaterial})},e[6]=n,e[7]=_);let v=_,y,b;e[8]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,Y.jsx)(Dp,{to:`/ec2/describe-key-pairs`,children:`Back to key pairs`}),b=(0,Y.jsx)(Hp,{title:`Create Key Pair`}),e[8]=y,e[9]=b):(y=e[8],b=e[9]);let x;e[10]===n.error?x=e[11]:(x=n.error&&(0,Y.jsx)(Fp,{error:n.error,msg:`Failed to create key pair`}),e[10]=n.error,e[11]=x);let S;e[12]!==s||e[13]!==v?(S=s(v),e[12]=s,e[13]=v,e[14]=S):S=e[14];let C;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(C=(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`keyName`,children:`Key Pair Name`})}),e[15]=C):C=e[15];let w=!!d.keyName,T;e[16]===c?T=e[17]:(T=c(`keyName`),e[16]=c,e[17]=T);let E;e[18]!==w||e[19]!==T?(E=(0,Y.jsx)(Xo,{"aria-invalid":w,id:`keyName`,placeholder:`my-key-pair…`,...T}),e[18]=w,e[19]=T,e[20]=E):E=e[20];let D;e[21]===d.keyName?D=e[22]:(D=(0,Y.jsx)(vm,{errors:[d.keyName]}),e[21]=d.keyName,e[22]=D);let O;e[23]!==E||e[24]!==D?(O=(0,Y.jsxs)(hm,{children:[C,E,D]}),e[23]=E,e[24]=D,e[25]=O):O=e[25];let k;e[26]===Symbol.for(`react.memo_cache_sentinel`)?(k=(0,Y.jsx)(gm,{children:(0,Y.jsx)(`label`,{htmlFor:`keyType`,children:`Key Type`})}),e[26]=k):k=e[26];let A;e[27]===d.keyType?A=e[28]:(A=e=>{let{field:t}=e;return(0,Y.jsxs)(Ze,{onValueChange:e=>t.onChange(e),value:t.value,children:[(0,Y.jsx)(Xe,{"aria-invalid":!!d.keyType,className:`w-full`,id:`keyType`,children:(0,Y.jsx)(He,{placeholder:`Select a key type`})}),(0,Y.jsxs)(qe,{children:[(0,Y.jsx)(Ge,{value:`rsa`,children:`RSA (2048-bit)`}),(0,Y.jsx)(Ge,{value:`ed25519`,children:`ED25519`})]})]})},e[27]=d.keyType,e[28]=A);let ee;e[29]!==l||e[30]!==A?(ee=(0,Y.jsx)(rf,{control:l,name:`keyType`,render:A}),e[29]=l,e[30]=A,e[31]=ee):ee=e[31];let te;e[32]===Symbol.for(`react.memo_cache_sentinel`)?(te=(0,Y.jsx)(_m,{children:`RSA is required to retrieve a Windows administrator password. ED25519 works for SSH only.`}),e[32]=te):te=e[32];let ne;e[33]===d.keyType?ne=e[34]:(ne=(0,Y.jsx)(vm,{errors:[d.keyType]}),e[33]=d.keyType,e[34]=ne);let j;e[35]!==ee||e[36]!==ne?(j=(0,Y.jsxs)(hm,{children:[k,ee,te,ne]}),e[35]=ee,e[36]=ne,e[37]=j):j=e[37];let M;e[38]===g?M=e[39]:(M=$_(g),e[38]=g,e[39]=M);let N;e[40]===M?N=e[41]:(N=(0,Y.jsx)(Mp,{commands:M}),e[40]=M,e[41]=N);let re;e[42]===t?re=e[43]:(re=async()=>await t({to:`/ec2/describe-key-pairs`}),e[42]=t,e[43]=re);let ie;e[44]!==n.isPending||e[45]!==f||e[46]!==re?(ie=(0,Y.jsx)(L_,{isPending:n.isPending,isSubmitting:f,onCancel:re,pendingLabel:`Creating…`,submitLabel:`Create Key Pair`}),e[44]=n.isPending,e[45]=f,e[46]=re,e[47]=ie):ie=e[47];let ae;e[48]!==O||e[49]!==j||e[50]!==N||e[51]!==ie||e[52]!==S?(ae=(0,Y.jsxs)(`form`,{className:`max-w-4xl space-y-6`,onSubmit:S,children:[O,j,N,ie]}),e[48]=O,e[49]=j,e[50]=N,e[51]=ie,e[52]=S,e[53]=ae):ae=e[53];let oe;e[54]===r?oe=e[55]:(oe=r&&(0,Y.jsx)(X_,{keyMaterial:r.material,keyName:r.keyName,open:!!r}),e[54]=r,e[55]=oe);let P;return e[56]!==ae||e[57]!==oe||e[58]!==x?(P=(0,Y.jsxs)(Y.Fragment,{children:[y,b,x,ae,oe]}),e[56]=ae,e[57]=oe,e[58]=x,e[59]=P):P=e[59],P}function $_(e){let t=e(`keyName`),n=typeof t==`string`?t:``,r=e(`keyType`),i=typeof r==`string`?r:`rsa`;return[{label:`Create Key Pair`,parts:[{type:`bin`,value:`AWS_PROFILE=spinifex aws ec2 create-key-pair`},{type:`flag`,value:` --key-name`},{type:`value`,value:` ${n||``}`},{type:`flag`,value:` --key-type`},{type:`value`,value:` ${i}`}]}]}var ev=I(`/_auth/ec2/(key)/import-key-pair`)({head:()=>({meta:[{title:`Import Key Pair | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./import-key-pair.js`),__vite__mapDeps([31,1,29,3,32,7,8])),`component`)}),tv=I(`/_auth/ec2/(launch-templates)/create-launch-template`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(ci),e.queryClient.ensureQueryData(Qr),e.queryClient.ensureQueryData(li),e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(hi)])},head:()=>({meta:[{title:`Create Launch Template | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-launch-template.js`),__vite__mapDeps([33,1,29,3,34,18,17,35,16,10,7,8,36,9,37,38,39,40,41,42,20,21,11,12,32])),`component`)}),nv=E({queryKey:[`acm`,`certificates`],queryFn:async()=>{let e=new eu({});return await Sr().send(e)}}),rv=I(`/_auth/ec2/(load-balancers)/create-load-balancer`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Gr),e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(hi),e.queryClient.ensureQueryData(Ri),e.queryClient.ensureQueryData(nv),e.queryClient.ensureQueryData(Fi)])},head:()=>({meta:[{title:`Create Load Balancer | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-load-balancer.js`),__vite__mapDeps([43,1,29,3,7,8,35,16,10,17,36,18,9,37,38,39,40,41,42,44,45,46,47,48,11,12,32,20,21,49,50,51,52,53])),`component`)}),iv=I(`/_auth/ec2/(nat-gateways)/create-nat-gateway`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(si)])},head:()=>({meta:[{title:`Create NAT Gateway | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-nat-gateway.js`),__vite__mapDeps([54,1,16,3,29,7,8,35,10,17,36,18,9,37,38,39,40,41,42,20,21,11,12])),`component`)}),av=I(`/_auth/ec2/(placement-groups)/create-placement-group`)({head:()=>({meta:[{title:`Create Placement Group | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-placement-group.js`),__vite__mapDeps([55,1,29,3,35,16,10,7,8,17,36,18,9,37,38,39,40,41,42])),`component`)}),ov=I(`/_auth/ec2/(route-tables)/create-route-table`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Gr)},head:()=>({meta:[{title:`Create Route Table | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-route-table.js`),__vite__mapDeps([56,1,29,3,7,8,35,16,10,17,36,18,9,37,38,39,40,41,42,20,21,11,12])),`component`)}),sv=I(`/_auth/ec2/(security-groups)/create-security-group`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Gr)},head:()=>({meta:[{title:`Create Security Group | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-security-group.js`),__vite__mapDeps([57,1,29,3,7,8,35,16,10,17,36,18,9,37,38,39,40,41,42,20,21,11,12])),`component`)}),cv=I(`/_auth/ec2/(snapshots)/create-snapshot`)({validateSearch:e=>({volumeId:typeof e.volumeId==`string`?e.volumeId:void 0}),loader:async({context:e})=>{await e.queryClient.ensureQueryData(Br)},head:()=>({meta:[{title:`Create Snapshot | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-snapshot.js`),__vite__mapDeps([58,1,29,3,35,16,10,7,8,17,36,18,9,37,38,39,40,41,42,20,21,11,12,32])),`component`)}),lv=I(`/_auth/ec2/(subnet)/create-subnet`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Gr),e.queryClient.ensureQueryData(ui)])},head:()=>({meta:[{title:`Create Subnet | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-subnet.js`),__vite__mapDeps([59,1,29,3,7,8,35,16,10,17,36,18,9,37,38,39,40,41,42,20,21,11,12])),`component`)}),uv=I(`/_auth/ec2/(target-groups)/create-target-group`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Gr)},head:()=>({meta:[{title:`Create Target Group | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-target-group.js`),__vite__mapDeps([60,1,29,3,20,21,7,8,11,12,49,47,48,50,52,35,16,10,17,36,18,9,37,38,39,40,41,42,44,45,53])),`component`)}),dv=I(`/_auth/ec2/(volumes)/create-volume`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ui)},head:()=>({meta:[{title:`Create Volume | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-volume.js`),__vite__mapDeps([61,1,29,3,35,16,10,7,8,17,36,18,9,37,38,39,40,41,42,20,21,11,12])),`component`)}),fv=I(`/_auth/ec2/(vpc)/create-vpc`)({head:()=>({meta:[{title:`Create VPC | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./create-vpc.js`),__vite__mapDeps([62,1,29,3,18,17,19,35,16,10,7,8,36,9,37,38,39,40,41,42,63])),`component`)}),pv=I(`/_auth/ecs/(clusters)/create-service`)({validateSearch:e=>({cluster:typeof e.cluster==`string`?e.cluster:``}),loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Ci),e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(hi),e.queryClient.ensureQueryData(Ri)])},head:()=>({meta:[{title:`Create Service | ECS | Mulga`}]}),component:L(()=>B(()=>import(`./create-service.js`),__vite__mapDeps([64,1,29,3,35,16,10,7,8,17,36,18,9,37,38,39,40,41,42,20,21,11,12,65,66,47,48,51,50,67])),`component`)}),mv=I(`/_auth/ecs/(clusters)/register-task-definition`)({validateSearch:e=>({cluster:typeof e.cluster==`string`?e.cluster:``}),head:()=>({meta:[{title:`Register Task Definition | ECS | Mulga`}]}),component:L(()=>B(()=>import(`./register-task-definition.js`),__vite__mapDeps([68,1,29,3,35,16,10,7,8,17,36,18,9,37,38,39,40,41,42,44,45,66,47,48,11,12,65,21,67])),`component`)}),hv=I(`/_auth/ecs/(clusters)/run-task`)({validateSearch:e=>({cluster:typeof e.cluster==`string`?e.cluster:``}),loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Ci),e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(hi)])},head:()=>({meta:[{title:`Run Task | ECS | Mulga`}]}),component:L(()=>B(()=>import(`./run-task.js`),__vite__mapDeps([69,1,29,3,35,16,10,7,8,17,36,18,9,37,38,39,40,41,42,20,21,11,12,65,66,47,48,67])),`component`)}),gv=I(`/_auth/ecs/(clusters)/task-definitions`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Ci)},head:()=>({meta:[{title:`Task Definitions | ECS | Mulga`}]}),component:L(()=>B(()=>import(`./task-definitions.js`),__vite__mapDeps([70,1,16,3,9,10,7,8,65,21,11,12,66,47,48,71,72])),`component`)}),_v=I(`/_auth/eks/(clusters)/create-cluster`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Gr),e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(ia),e.queryClient.ensureQueryData(ci)])},head:()=>({meta:[{title:`Create Cluster | EKS | Mulga`}]}),component:L(()=>B(()=>import(`./create-cluster.js`),__vite__mapDeps([73,1,47,29,3,7,8,35,16,10,17,36,18,9,37,38,39,40,41,42,20,21,11,12,74,48,75,63,76,77,78,79,80,81,82,83,84])),`component`)}),vv=I(`/_auth/iam/(groups)/create-group`)({head:()=>({meta:[{title:`Create Group | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./create-group.js`),__vite__mapDeps([85,1,29,3,77,47,48,11,7,8,12,78,86,76])),`component`)}),yv=I(`/_auth/iam/(instance-profiles)/create-instance-profile`)({head:()=>({meta:[{title:`Create Instance Profile | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./create-instance-profile.js`),__vite__mapDeps([87,1,29,3,77,47,48,11,7,8,12,78,86,76])),`component`)}),bv=I(`/_auth/iam/(policies)/create-policy`)({head:()=>({meta:[{title:`Create Policy | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./create-policy.js`),__vite__mapDeps([88,1,29,3,77,47,48,11,7,8,12,78,89,76,32,86])),`component`)}),xv=I(`/_auth/iam/(roles)/create-role`)({head:()=>({meta:[{title:`Create Role | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./create-role.js`),__vite__mapDeps([90,1,29,3,77,47,48,11,7,8,12,78,89,76,32,86])),`component`)}),Sv=I(`/_auth/iam/(users)/create-user`)({head:()=>({meta:[{title:`Create User | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./create-user.js`),__vite__mapDeps([91,1,29,3,77,47,48,11,7,8,12,78,86,76])),`component`)}),Cv=I(`/_auth/s3/(buckets)/create-bucket`)({head:()=>({meta:[{title:`Create Bucket | S3 | Mulga`}]}),component:L(()=>B(()=>import(`./create-bucket.js`),__vite__mapDeps([92,1,29,3,7,8,93,47,48,11,12])),`component`)}),wv=I(`/_auth/s3/ls/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(aa)},head:()=>({meta:[{title:`Buckets | S3 | Mulga`}]}),component:L(()=>B(()=>import(`./ls.js`),__vite__mapDeps([94,1,16,3,7,8,9,10,22,21,11,12,95])),`component`)}),Tv=I(`/_auth/s3/ls/$bucket`)({component:L(()=>B(()=>import(`./route2.js`),__vite__mapDeps([96,1,2,3,4,5])),`component`)}),Ev=I(`/_auth/ec2/(elastic-ips)/describe-addresses/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(si)},head:()=>({meta:[{title:`Elastic IPs | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-addresses.js`),__vite__mapDeps([97,1,16,3,7,8,9,10,20,21,11,12,95])),`component`)}),Dv=I(`/_auth/ec2/(elastic-ips)/describe-addresses/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(fi(t.id)),e.queryClient.ensureQueryData(ai)])},head:({params:e})=>({meta:[{title:`${e.id} | Elastic IP | Mulga`}]}),component:L(()=>B(()=>import(`./_id.js`),__vite__mapDeps([98,1,29,3,7,8,35,16,10,17,36,18,9,37,38,39,40,41,42,45,20,21,11,12,71,99])),`component`)}),Ov=I(`/_auth/ec2/(images)/describe-images/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ci)},head:()=>({meta:[{title:`Images | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-images.js`),__vite__mapDeps([100,1,20,21,7,8,11,12,95,16,3,23,80])),`component`)}),kv=I(`/_auth/ec2/(images)/describe-images/$id`)({loader:async({context:e,params:t})=>await e.queryClient.ensureQueryData(Xr(t.id)),head:({loaderData:e})=>({meta:[{title:`${e?.Images?.[0]?.Name??`Image`} | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./_id2.js`),__vite__mapDeps([101,1,47,48,29,3,7,8,102,17,45,9,10,20,21,11,12,71,23,80,103,16,99])),`component`)}),Av=I(`/_auth/ec2/(instances)/describe-instances/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ai)},head:()=>({meta:[{title:`Instances | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-instances.js`),__vite__mapDeps([104,1,16,3,9,10,7,8,20,21,11,12,95,23])),`component`)}),jv=I(`/_auth/ec2/(instances)/describe-instances/$id`)({loader:async({context:e,params:t})=>{let[n]=await Promise.all([e.queryClient.ensureQueryData(di(t.id)),e.queryClient.ensureQueryData(Qr)]),r=n.Reservations?.[0]?.Instances?.[0]?.ImageId;return await e.queryClient.ensureQueryData(Xr(r)),n},head:({loaderData:e})=>({meta:[{title:`${e?.Reservations?.[0]?.Instances?.[0]?.InstanceId??`Instance`} | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./_id3.js`),__vite__mapDeps([105,1,16,3,7,8,17,35,10,36,18,9,37,38,39,40,41,42,83,45,20,21,11,12,79,78,76,71,99,23,103,24,32])),`component`)}),Mv=I(`/_auth/ec2/(internet-gateways)/describe-internet-gateways/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData($r)},head:()=>({meta:[{title:`Internet Gateways | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-internet-gateways.js`),__vite__mapDeps([106,1,16,3,7,8,9,10,20,21,11,12,95])),`component`)}),Nv=I(`/_auth/ec2/(internet-gateways)/describe-internet-gateways/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(pi(t.id)),e.queryClient.ensureQueryData(Gr)])},head:({params:e})=>({meta:[{title:`${e.id} | Internet Gateway | Mulga`}]}),component:L(()=>B(()=>import(`./_id4.js`),__vite__mapDeps([107,1,16,3,29,7,8,35,10,17,36,18,9,37,38,39,40,41,42,45,20,21,11,12,71,99])),`component`)}),Pv=I(`/_auth/ec2/(key)/describe-key-pairs/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(li)},head:()=>({meta:[{title:`Key Pairs | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-key-pairs.js`),__vite__mapDeps([108,1,16,3,9,10,7,8,20,21,11,12,95])),`component`)}),Fv=I(`/_auth/ec2/(key)/describe-key-pairs/$id`)({loader:async({context:e,params:t})=>await e.queryClient.ensureQueryData(ei(t.id)),head:({loaderData:e})=>({meta:[{title:`${e?.KeyPairs?.[0]?.KeyName??`Key Pair`} | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./_id5.js`),__vite__mapDeps([109,1,29,3,7,8,45,17,9,10,20,21,11,12,71,99])),`component`)}),Iv=I(`/_auth/ec2/(launch-templates)/describe-launch-templates/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ni)},head:()=>({meta:[{title:`Launch Templates | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-launch-templates.js`),__vite__mapDeps([110,1,16,3,9,10,7,8,20,21,11,12,95,25])),`component`)}),Lv=I(`/_auth/ec2/(launch-templates)/describe-launch-templates/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ni),e.queryClient.ensureQueryData(oi(t.id)),e.queryClient.ensureQueryData(ci),e.queryClient.ensureQueryData(Qr),e.queryClient.ensureQueryData(li),e.queryClient.ensureQueryData(Kr),e.queryClient.ensureQueryData(hi)])},head:({params:e})=>({meta:[{title:`${e.id} | Launch Template | Mulga`}]}),component:L(()=>B(()=>import(`./_id6.js`),__vite__mapDeps([111,1,16,3,29,7,8,17,35,10,36,18,9,37,38,39,40,41,42,45,20,21,11,12,71,99,34,32,25])),`component`)}),Rv=I(`/_auth/ec2/(load-balancers)/describe-load-balancers/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Ai)},head:()=>({meta:[{title:`Load Balancers | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-load-balancers.js`),__vite__mapDeps([112,1,16,3,29,7,8,9,10,51,21,11,12,50,23])),`component`)}),zv=I(`/_auth/ec2/(load-balancers)/describe-load-balancers/$id`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.id);await Promise.all([e.queryClient.ensureQueryData(Mi(n)),e.queryClient.ensureQueryData(Pi(n)),e.queryClient.ensureQueryData(Ii(n)),e.queryClient.ensureQueryData(Li([n])),e.queryClient.ensureQueryData(Ri),e.queryClient.ensureQueryData(Kr)])},head:({params:e})=>({meta:[{title:`${decodeURIComponent(e.id)} | Load Balancer | Mulga`}]}),component:L(()=>B(()=>import(`./_id7.js`),__vite__mapDeps([113,1,29,3,7,8,17,35,16,10,36,18,9,37,38,39,40,41,42,45,46,47,48,11,12,32,20,21,49,50,51,71,99,23,53,114,44,115])),`component`)}),Bv=I(`/_auth/ec2/(nat-gateways)/describe-nat-gateways/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Yr)},head:()=>({meta:[{title:`NAT Gateways | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-nat-gateways.js`),__vite__mapDeps([116,1,16,3,7,8,9,10,20,21,11,12,95,23])),`component`)}),Vv=I(`/_auth/ec2/(nat-gateways)/describe-nat-gateways/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(ti(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | NAT Gateway | Mulga`}]}),component:L(()=>B(()=>import(`./_id8.js`),__vite__mapDeps([117,1,16,3,29,7,8,45,17,9,10,20,21,11,12,71,99,23])),`component`)}),Hv=I(`/_auth/ec2/(placement-groups)/describe-placement-groups/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(_i)},head:()=>({meta:[{title:`Placement Groups | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-placement-groups.js`),__vite__mapDeps([118,1,16,3,9,10,7,8,20,21,11,12,95,23])),`component`)}),Uv=I(`/_auth/ec2/(placement-groups)/describe-placement-groups/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(mi(t.id)),e.queryClient.ensureQueryData(ai)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./_id9.js`),__vite__mapDeps([119,1,16,3,29,45,17,9,10,7,8,20,21,11,12,71,99,23])),`component`)}),Wv=I(`/_auth/ec2/(route-tables)/describe-route-tables/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(qr)},head:()=>({meta:[{title:`Route Tables | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-route-tables.js`),__vite__mapDeps([120,1,16,3,7,8,9,10,20,21,11,12,95,25])),`component`)}),Gv=I(`/_auth/ec2/(route-tables)/describe-route-tables/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(gi(t.id)),e.queryClient.ensureQueryData($r),e.queryClient.ensureQueryData(Yr),e.queryClient.ensureQueryData(Kr)])},head:({params:e})=>({meta:[{title:`${e.id} | Route Table | Mulga`}]}),component:L(()=>B(()=>import(`./_id10.js`),__vite__mapDeps([121,1,16,3,29,7,8,35,10,17,36,18,9,37,38,39,40,41,42,45,20,21,11,12,71,99,25])),`component`)}),Kv=I(`/_auth/ec2/(security-groups)/describe-security-groups/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(hi)},head:()=>({meta:[{title:`Security Groups | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-security-groups.js`),__vite__mapDeps([122,1,16,3,9,10,7,8,20,21,11,12,95])),`component`)}),qv=I(`/_auth/ec2/(security-groups)/describe-security-groups/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(Vr(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | Security Group | Mulga`}]}),component:L(()=>B(()=>import(`./_id11.js`),__vite__mapDeps([123,1,16,3,29,35,10,7,8,17,36,18,9,37,38,39,40,41,42,44,45,20,21,11,12,71,99])),`component`)}),Jv=I(`/_auth/ec2/(snapshots)/describe-snapshots/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Ur)},head:()=>({meta:[{title:`Snapshots | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-snapshots.js`),__vite__mapDeps([124,1,16,3,9,10,7,8,20,21,11,12,95,23])),`component`)}),Yv=I(`/_auth/ec2/(snapshots)/describe-snapshots/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(Jr(t.id)),e.queryClient.ensureQueryData(Zr)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./_id12.js`),__vite__mapDeps([125,1,16,3,29,7,8,82,17,45,9,10,20,21,11,12,71,99,23,32])),`component`)}),Xv=I(`/_auth/ec2/(subnet)/describe-subnets/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Kr)},head:()=>({meta:[{title:`Subnets | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-subnets.js`),__vite__mapDeps([126,1,16,3,7,8,9,10,20,21,11,12,95,23])),`component`)}),Zv=I(`/_auth/ec2/(subnet)/describe-subnets/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(Hr(t.id))},head:({params:e})=>({meta:[{title:`${e.id} | Subnet | Mulga`}]}),component:L(()=>B(()=>import(`./_id13.js`),__vite__mapDeps([127,1,16,3,29,7,8,45,17,9,10,20,21,11,12,71,99,23])),`component`)}),Qv=I(`/_auth/ec2/(target-groups)/describe-target-groups/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Ri)},head:()=>({meta:[{title:`Target Groups | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-target-groups.js`),__vite__mapDeps([128,1,16,3,29,9,10,7,8,51,21,11,12,50])),`component`)}),$v=I(`/_auth/ec2/(target-groups)/describe-target-groups/$id`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.id);await Promise.all([e.queryClient.ensureQueryData(Ni(n)),e.queryClient.ensureQueryData(ji(n)),e.queryClient.ensureQueryData(Li([n])),e.queryClient.ensureQueryData(ai)])},head:({params:e})=>({meta:[{title:`${decodeURIComponent(e.id)} | Target Group | Mulga`}]}),component:L(()=>B(()=>import(`./_id14.js`),__vite__mapDeps([129,1,29,3,7,8,45,17,9,10,20,21,11,12,49,47,48,50,51,71,99,114,35,16,36,18,37,38,39,40,41,42,44,115])),`component`)}),ey=I(`/_auth/ec2/(volumes)/describe-volumes/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Br)},head:()=>({meta:[{title:`Volumes | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-volumes.js`),__vite__mapDeps([130,1,16,3,9,10,7,8,20,21,11,12,95,23])),`component`)}),ty=I(`/_auth/ec2/(volumes)/describe-volumes/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ii(t.id)),e.queryClient.ensureQueryData(ai)])},head:({params:e})=>({meta:[{title:`${e.id} | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./_id15.js`),__vite__mapDeps([131,1,16,3,29,7,8,17,35,10,36,18,9,37,38,39,40,41,42,45,20,21,11,12,71,99,23])),`component`)}),ny=I(`/_auth/ec2/(volumes)/modify-volume/$id`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(ii(t.id))},head:({params:e})=>({meta:[{title:`Resize ${e.id} | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./_id16.js`),__vite__mapDeps([132,1,29,3,20,21,7,8,11,12])),`component`)}),ry=I(`/_auth/ec2/(vpc)/describe-vpcs/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Gr)},head:()=>({meta:[{title:`VPCs | EC2 | Mulga`}]}),component:L(()=>B(()=>import(`./describe-vpcs.js`),__vite__mapDeps([133,1,16,3,7,8,9,10,20,21,11,12,95,23])),`component`)}),iy=I(`/_auth/ec2/(vpc)/describe-vpcs/$id`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ri(t.id)),e.queryClient.ensureQueryData(Kr)])},head:({params:e})=>({meta:[{title:`${e.id} | VPC | Mulga`}]}),component:L(()=>B(()=>import(`./_id17.js`),__vite__mapDeps([134,1,16,3,29,7,8,45,17,9,10,20,21,11,12,71,99,23])),`component`)}),ay=I(`/_auth/ecr/(repositories)/list-repositories/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(yi)},head:()=>({meta:[{title:`Repositories | ECR | Mulga`}]}),component:L(()=>B(()=>import(`./list-repositories.js`),__vite__mapDeps([135,1,16,3,29,7,8,9,10,136,21,11,12,137,47,48])),`component`)}),oy=I(`/_auth/ecr/(repositories)/list-repositories/$id`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.id);await Promise.all([e.queryClient.ensureQueryData(yi),e.queryClient.ensureQueryData(bi(n)),e.queryClient.ensureQueryData(vi(n))])},head:({params:e})=>({meta:[{title:`${decodeURIComponent(e.id)} | Repository | Mulga`}]}),component:L(()=>B(()=>import(`./_id18.js`),__vite__mapDeps([138,1,16,3,7,8,9,10,136,21,11,12,137,47,48,76,25,115,38,39,40,41,42,89,32])),`component`)}),sy=I(`/_auth/ecs/(clusters)/list-clusters/`)({loader:async({context:e})=>{await Promise.all([e.queryClient.ensureQueryData(Si),e.queryClient.ensureQueryData(ci)])},head:()=>({meta:[{title:`Clusters | ECS | Mulga`}]}),component:L(()=>B(()=>import(`./list-clusters.js`),__vite__mapDeps([139,1,47,16,3,29,9,10,7,8,20,21,11,12,65,66,48,71,23,80,81,36,17,82,83,72])),`component`)}),cy=I(`/_auth/ecs/(clusters)/list-clusters/$clusterName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(Ti(t.clusterName)),e.queryClient.ensureQueryData(xi(t.clusterName)),e.queryClient.ensureQueryData(wi(t.clusterName))])},head:({params:e})=>({meta:[{title:`${e.clusterName} | ECS | Mulga`}]}),component:L(()=>B(()=>import(`./_clusterName.js`),__vite__mapDeps([140,1,16,3,29,45,17,9,10,7,8,20,21,11,12,65,66,47,48,71,99,23,115,38,39,40,41,42])),`component`)}),ly=I(`/_auth/eks/(clusters)/list-clusters/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Ei)},head:()=>({meta:[{title:`Clusters | EKS | Mulga`}]}),component:L(()=>B(()=>import(`./list-clusters2.js`),__vite__mapDeps([141,1,16,3,9,10,7,8,142,21,11,12,75,95])),`component`)}),uy=I(`/_auth/eks/(clusters)/list-clusters/$clusterName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(Di(t.clusterName)),e.queryClient.ensureQueryData(ki(t.clusterName)),e.queryClient.ensureQueryData(Oi(t.clusterName))])},head:({params:e})=>({meta:[{title:`${e.clusterName} | EKS | Mulga`}]}),component:L(()=>B(()=>import(`./_clusterName2.js`),__vite__mapDeps([143,1,16,3,29,7,8,17,102,45,9,10,20,21,11,12,74,47,48,75,63,76,142,79,78,71,99,25,115,38,39,40,41,42,89,32])),`component`)}),dy=I(`/_auth/iam/(groups)/list-groups/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Yi)},head:()=>({meta:[{title:`Groups | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./list-groups.js`),__vite__mapDeps([144,1,16,3,9,10,7,8,79,21,11,12,78,76,95])),`component`)}),fy=I(`/_auth/iam/(groups)/list-groups/$groupName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ea(t.groupName)),e.queryClient.ensureQueryData(Zi(t.groupName)),e.queryClient.ensureQueryData(Qi),e.queryClient.ensureQueryData(zi),e.queryClient.ensureQueryData(Vi(t.groupName))])},head:({params:e})=>({meta:[{title:`${e.groupName} | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./_groupName.js`),__vite__mapDeps([145,1,16,3,29,7,8,45,17,9,10,77,47,48,11,12,78,79,21,76,71,99,146,89,32,86])),`component`)}),py=I(`/_auth/iam/(instance-profiles)/list-instance-profiles/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Gi)},head:()=>({meta:[{title:`Instance Profiles | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./list-instance-profiles.js`),__vite__mapDeps([147,1,16,3,9,10,7,8,79,21,11,12,78,76,95])),`component`)}),my=I(`/_auth/iam/(instance-profiles)/list-instance-profiles/$instanceProfileName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(na(t.instanceProfileName)),e.queryClient.ensureQueryData(ia)])},head:({params:e})=>({meta:[{title:`${e.instanceProfileName} | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./_instanceProfileName.js`),__vite__mapDeps([148,1,16,3,29,7,8,45,17,9,10,77,47,48,11,12,78,79,21,76,71,99])),`component`)}),hy=I(`/_auth/iam/(policies)/list-policies/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(Qi)},head:()=>({meta:[{title:`Policies | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./list-policies.js`),__vite__mapDeps([149,1,16,3,9,10,7,8,79,21,11,12,78,76,95])),`component`)}),gy=I(`/_auth/iam/(policies)/list-policies/$policyArn`)({loader:async({context:e,params:t})=>{let n=decodeURIComponent(t.policyArn),r=await e.queryClient.ensureQueryData(Xi(n)),i=r.Policy?.DefaultVersionId;return i&&await e.queryClient.ensureQueryData(qi(n,i)),r},head:({loaderData:e})=>({meta:[{title:`${e?.Policy?.PolicyName??`Policy`} | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./_policyArn.js`),__vite__mapDeps([150,1,29,3,7,8,45,17,9,10,77,47,48,11,12,78,79,21,76,71,99,84])),`component`)}),_y=I(`/_auth/iam/(roles)/list-roles/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(ia)},head:()=>({meta:[{title:`Roles | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./list-roles.js`),__vite__mapDeps([151,1,16,3,9,10,7,8,79,21,11,12,78,76,95])),`component`)}),vy=I(`/_auth/iam/(roles)/list-roles/$roleName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(ra(t.roleName)),e.queryClient.ensureQueryData($i(t.roleName)),e.queryClient.ensureQueryData(Wi(t.roleName)),e.queryClient.ensureQueryData(Qi),e.queryClient.ensureQueryData(Ki(t.roleName))])},head:({params:e})=>({meta:[{title:`${e.roleName} | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./_roleName.js`),__vite__mapDeps([152,1,16,3,29,7,8,45,17,9,10,77,47,48,11,12,78,79,21,76,71,99,84,146,89,32,86])),`component`)}),yy=I(`/_auth/iam/(users)/list-users/`)({loader:async({context:e})=>{await e.queryClient.ensureQueryData(zi)},head:()=>({meta:[{title:`Users | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./list-users.js`),__vite__mapDeps([153,1,16,3,9,10,7,8,79,21,11,12,78,76,95])),`component`)}),by=I(`/_auth/iam/(users)/list-users/$userName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(Bi(t.userName)),e.queryClient.ensureQueryData(ta(t.userName)),e.queryClient.ensureQueryData(Ji(t.userName)),e.queryClient.ensureQueryData(Qi),e.queryClient.ensureQueryData(Ui(t.userName)),e.queryClient.ensureQueryData(Hi(t.userName))])},head:({params:e})=>({meta:[{title:`${e.userName} | IAM | Mulga`}]}),component:L(()=>B(()=>import(`./_userName.js`),__vite__mapDeps([154,1,16,3,29,7,8,36,17,45,9,10,77,47,48,11,12,78,79,21,76,71,99,23,146,89,32,86])),`component`)}),xy=I(`/_auth/s3/ls/$bucket/`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(oa(t.bucket))},head:({params:e})=>({meta:[{title:`${e.bucket} | S3 | Mulga`}]}),component:L(()=>B(()=>import(`./_bucket.js`),__vite__mapDeps([155,1,7,8,156,16,3,17,45,9,10,11,12,93,47,48,71,22,21])),`component`)}),Sy=I(`/_auth/s3/ls/$bucket/$`)({loader:async({context:e,params:t})=>{let n=Te(t._splat??``);await e.queryClient.ensureQueryData(oa(t.bucket,n))},head:({params:e})=>({meta:[{title:`${Ee(e._splat??``,`${e.bucket}/`)} | S3 | Mulga`}]}),component:L(()=>B(()=>import(`./_.js`),__vite__mapDeps([157,1,16,3,7,8,156,17,45,9,10,11,12,93,47,48,71,22,21])),`component`)}),Cy=I(`/_auth/ecs/(clusters)/list-clusters/$clusterName_/services/$serviceName`)({loader:async({context:e,params:t})=>{await Promise.all([e.queryClient.ensureQueryData(xi(t.clusterName)),e.queryClient.ensureQueryData(wi(t.clusterName))])},head:({params:e})=>({meta:[{title:`${e.serviceName} | ECS | Mulga`}]}),component:L(()=>B(()=>import(`./_serviceName.js`),__vite__mapDeps([158,1,16,3,65,21,7,8,11,12,99,23])),`component`)}),wy=I(`/_auth/ecs/(clusters)/list-clusters/$clusterName_/tasks/$taskId`)({loader:async({context:e,params:t})=>{await e.queryClient.ensureQueryData(wi(t.clusterName))},head:({params:e})=>({meta:[{title:`${e.taskId} | ECS | Mulga`}]}),component:L(()=>B(()=>import(`./_taskId.js`),__vite__mapDeps([159,1,65,21,7,8,11,12,99,23])),`component`)}),$=hd.update({id:`/_auth`,getParentRoute:()=>md}),Ty=gd.update({id:`/login`,path:`/login`,getParentRoute:()=>md}),Ey=_d.update({id:`/`,path:`/`,getParentRoute:()=>$}),Dy=vd.update({id:`/nodes`,path:`/nodes`,getParentRoute:()=>$}),Oy=yd.update({id:`/s3/service-metrics`,path:`/s3/service-metrics`,getParentRoute:()=>$}),ky=bd.update({id:`/ec2/(elastic-ips)/allocate-address`,path:`/ec2/allocate-address`,getParentRoute:()=>$}),Ay=m_.update({id:`/ec2/(instances)/run-instances`,path:`/ec2/run-instances`,getParentRoute:()=>$}),jy=I_.update({id:`/ec2/(internet-gateways)/create-internet-gateway`,path:`/ec2/create-internet-gateway`,getParentRoute:()=>$}),My=Z_.update({id:`/ec2/(key)/create-key-pair`,path:`/ec2/create-key-pair`,getParentRoute:()=>$}),Ny=ev.update({id:`/ec2/(key)/import-key-pair`,path:`/ec2/import-key-pair`,getParentRoute:()=>$}),Py=tv.update({id:`/ec2/(launch-templates)/create-launch-template`,path:`/ec2/create-launch-template`,getParentRoute:()=>$}),Fy=rv.update({id:`/ec2/(load-balancers)/create-load-balancer`,path:`/ec2/create-load-balancer`,getParentRoute:()=>$}),Iy=iv.update({id:`/ec2/(nat-gateways)/create-nat-gateway`,path:`/ec2/create-nat-gateway`,getParentRoute:()=>$}),Ly=av.update({id:`/ec2/(placement-groups)/create-placement-group`,path:`/ec2/create-placement-group`,getParentRoute:()=>$}),Ry=ov.update({id:`/ec2/(route-tables)/create-route-table`,path:`/ec2/create-route-table`,getParentRoute:()=>$}),zy=sv.update({id:`/ec2/(security-groups)/create-security-group`,path:`/ec2/create-security-group`,getParentRoute:()=>$}),By=cv.update({id:`/ec2/(snapshots)/create-snapshot`,path:`/ec2/create-snapshot`,getParentRoute:()=>$}),Vy=lv.update({id:`/ec2/(subnet)/create-subnet`,path:`/ec2/create-subnet`,getParentRoute:()=>$}),Hy=uv.update({id:`/ec2/(target-groups)/create-target-group`,path:`/ec2/create-target-group`,getParentRoute:()=>$}),Uy=dv.update({id:`/ec2/(volumes)/create-volume`,path:`/ec2/create-volume`,getParentRoute:()=>$}),Wy=fv.update({id:`/ec2/(vpc)/create-vpc`,path:`/ec2/create-vpc`,getParentRoute:()=>$}),Gy=pv.update({id:`/ecs/(clusters)/create-service`,path:`/ecs/create-service`,getParentRoute:()=>$}),Ky=mv.update({id:`/ecs/(clusters)/register-task-definition`,path:`/ecs/register-task-definition`,getParentRoute:()=>$}),qy=hv.update({id:`/ecs/(clusters)/run-task`,path:`/ecs/run-task`,getParentRoute:()=>$}),Jy=gv.update({id:`/ecs/(clusters)/task-definitions`,path:`/ecs/task-definitions`,getParentRoute:()=>$}),Yy=_v.update({id:`/eks/(clusters)/create-cluster`,path:`/eks/create-cluster`,getParentRoute:()=>$}),Xy=vv.update({id:`/iam/(groups)/create-group`,path:`/iam/create-group`,getParentRoute:()=>$}),Zy=yv.update({id:`/iam/(instance-profiles)/create-instance-profile`,path:`/iam/create-instance-profile`,getParentRoute:()=>$}),Qy=bv.update({id:`/iam/(policies)/create-policy`,path:`/iam/create-policy`,getParentRoute:()=>$}),$y=xv.update({id:`/iam/(roles)/create-role`,path:`/iam/create-role`,getParentRoute:()=>$}),eb=Sv.update({id:`/iam/(users)/create-user`,path:`/iam/create-user`,getParentRoute:()=>$}),tb=Cv.update({id:`/s3/(buckets)/create-bucket`,path:`/s3/create-bucket`,getParentRoute:()=>$}),nb=wv.update({id:`/s3/ls/`,path:`/s3/ls/`,getParentRoute:()=>$}),rb=Tv.update({id:`/s3/ls/$bucket`,path:`/s3/ls/$bucket`,getParentRoute:()=>$}),ib=Ev.update({id:`/ec2/(elastic-ips)/describe-addresses/`,path:`/ec2/describe-addresses/`,getParentRoute:()=>$}),ab=Dv.update({id:`/ec2/(elastic-ips)/describe-addresses/$id`,path:`/ec2/describe-addresses/$id`,getParentRoute:()=>$}),ob=Ov.update({id:`/ec2/(images)/describe-images/`,path:`/ec2/describe-images/`,getParentRoute:()=>$}),sb=kv.update({id:`/ec2/(images)/describe-images/$id`,path:`/ec2/describe-images/$id`,getParentRoute:()=>$}),cb=Av.update({id:`/ec2/(instances)/describe-instances/`,path:`/ec2/describe-instances/`,getParentRoute:()=>$}),lb=jv.update({id:`/ec2/(instances)/describe-instances/$id`,path:`/ec2/describe-instances/$id`,getParentRoute:()=>$}),ub=Mv.update({id:`/ec2/(internet-gateways)/describe-internet-gateways/`,path:`/ec2/describe-internet-gateways/`,getParentRoute:()=>$}),db=Nv.update({id:`/ec2/(internet-gateways)/describe-internet-gateways/$id`,path:`/ec2/describe-internet-gateways/$id`,getParentRoute:()=>$}),fb=Pv.update({id:`/ec2/(key)/describe-key-pairs/`,path:`/ec2/describe-key-pairs/`,getParentRoute:()=>$}),pb=Fv.update({id:`/ec2/(key)/describe-key-pairs/$id`,path:`/ec2/describe-key-pairs/$id`,getParentRoute:()=>$}),mb=Iv.update({id:`/ec2/(launch-templates)/describe-launch-templates/`,path:`/ec2/describe-launch-templates/`,getParentRoute:()=>$}),hb=Lv.update({id:`/ec2/(launch-templates)/describe-launch-templates/$id`,path:`/ec2/describe-launch-templates/$id`,getParentRoute:()=>$}),gb=Rv.update({id:`/ec2/(load-balancers)/describe-load-balancers/`,path:`/ec2/describe-load-balancers/`,getParentRoute:()=>$}),_b=zv.update({id:`/ec2/(load-balancers)/describe-load-balancers/$id`,path:`/ec2/describe-load-balancers/$id`,getParentRoute:()=>$}),vb=Bv.update({id:`/ec2/(nat-gateways)/describe-nat-gateways/`,path:`/ec2/describe-nat-gateways/`,getParentRoute:()=>$}),yb=Vv.update({id:`/ec2/(nat-gateways)/describe-nat-gateways/$id`,path:`/ec2/describe-nat-gateways/$id`,getParentRoute:()=>$}),bb=Hv.update({id:`/ec2/(placement-groups)/describe-placement-groups/`,path:`/ec2/describe-placement-groups/`,getParentRoute:()=>$}),xb=Uv.update({id:`/ec2/(placement-groups)/describe-placement-groups/$id`,path:`/ec2/describe-placement-groups/$id`,getParentRoute:()=>$}),Sb=Wv.update({id:`/ec2/(route-tables)/describe-route-tables/`,path:`/ec2/describe-route-tables/`,getParentRoute:()=>$}),Cb=Gv.update({id:`/ec2/(route-tables)/describe-route-tables/$id`,path:`/ec2/describe-route-tables/$id`,getParentRoute:()=>$}),wb=Kv.update({id:`/ec2/(security-groups)/describe-security-groups/`,path:`/ec2/describe-security-groups/`,getParentRoute:()=>$}),Tb=qv.update({id:`/ec2/(security-groups)/describe-security-groups/$id`,path:`/ec2/describe-security-groups/$id`,getParentRoute:()=>$}),Eb=Jv.update({id:`/ec2/(snapshots)/describe-snapshots/`,path:`/ec2/describe-snapshots/`,getParentRoute:()=>$}),Db=Yv.update({id:`/ec2/(snapshots)/describe-snapshots/$id`,path:`/ec2/describe-snapshots/$id`,getParentRoute:()=>$}),Ob=Xv.update({id:`/ec2/(subnet)/describe-subnets/`,path:`/ec2/describe-subnets/`,getParentRoute:()=>$}),kb=Zv.update({id:`/ec2/(subnet)/describe-subnets/$id`,path:`/ec2/describe-subnets/$id`,getParentRoute:()=>$}),Ab=Qv.update({id:`/ec2/(target-groups)/describe-target-groups/`,path:`/ec2/describe-target-groups/`,getParentRoute:()=>$}),jb=$v.update({id:`/ec2/(target-groups)/describe-target-groups/$id`,path:`/ec2/describe-target-groups/$id`,getParentRoute:()=>$}),Mb=ey.update({id:`/ec2/(volumes)/describe-volumes/`,path:`/ec2/describe-volumes/`,getParentRoute:()=>$}),Nb=ty.update({id:`/ec2/(volumes)/describe-volumes/$id`,path:`/ec2/describe-volumes/$id`,getParentRoute:()=>$}),Pb=ny.update({id:`/ec2/(volumes)/modify-volume/$id`,path:`/ec2/modify-volume/$id`,getParentRoute:()=>$}),Fb=ry.update({id:`/ec2/(vpc)/describe-vpcs/`,path:`/ec2/describe-vpcs/`,getParentRoute:()=>$}),Ib=iy.update({id:`/ec2/(vpc)/describe-vpcs/$id`,path:`/ec2/describe-vpcs/$id`,getParentRoute:()=>$}),Lb=ay.update({id:`/ecr/(repositories)/list-repositories/`,path:`/ecr/list-repositories/`,getParentRoute:()=>$}),Rb=oy.update({id:`/ecr/(repositories)/list-repositories/$id`,path:`/ecr/list-repositories/$id`,getParentRoute:()=>$}),zb=sy.update({id:`/ecs/(clusters)/list-clusters/`,path:`/ecs/list-clusters/`,getParentRoute:()=>$}),Bb=cy.update({id:`/ecs/(clusters)/list-clusters/$clusterName`,path:`/ecs/list-clusters/$clusterName`,getParentRoute:()=>$}),Vb=ly.update({id:`/eks/(clusters)/list-clusters/`,path:`/eks/list-clusters/`,getParentRoute:()=>$}),Hb=uy.update({id:`/eks/(clusters)/list-clusters/$clusterName`,path:`/eks/list-clusters/$clusterName`,getParentRoute:()=>$}),Ub=dy.update({id:`/iam/(groups)/list-groups/`,path:`/iam/list-groups/`,getParentRoute:()=>$}),Wb=fy.update({id:`/iam/(groups)/list-groups/$groupName`,path:`/iam/list-groups/$groupName`,getParentRoute:()=>$}),Gb=py.update({id:`/iam/(instance-profiles)/list-instance-profiles/`,path:`/iam/list-instance-profiles/`,getParentRoute:()=>$}),Kb=my.update({id:`/iam/(instance-profiles)/list-instance-profiles/$instanceProfileName`,path:`/iam/list-instance-profiles/$instanceProfileName`,getParentRoute:()=>$}),qb=hy.update({id:`/iam/(policies)/list-policies/`,path:`/iam/list-policies/`,getParentRoute:()=>$}),Jb=gy.update({id:`/iam/(policies)/list-policies/$policyArn`,path:`/iam/list-policies/$policyArn`,getParentRoute:()=>$}),Yb=_y.update({id:`/iam/(roles)/list-roles/`,path:`/iam/list-roles/`,getParentRoute:()=>$}),Xb=vy.update({id:`/iam/(roles)/list-roles/$roleName`,path:`/iam/list-roles/$roleName`,getParentRoute:()=>$}),Zb=yy.update({id:`/iam/(users)/list-users/`,path:`/iam/list-users/`,getParentRoute:()=>$}),Qb=by.update({id:`/iam/(users)/list-users/$userName`,path:`/iam/list-users/$userName`,getParentRoute:()=>$}),$b=xy.update({id:`/`,path:`/`,getParentRoute:()=>rb}),ex=Sy.update({id:`/$`,path:`/$`,getParentRoute:()=>rb}),tx=Cy.update({id:`/ecs/(clusters)/list-clusters/$clusterName_/services/$serviceName`,path:`/ecs/list-clusters/$clusterName/services/$serviceName`,getParentRoute:()=>$}),nx=wy.update({id:`/ecs/(clusters)/list-clusters/$clusterName_/tasks/$taskId`,path:`/ecs/list-clusters/$clusterName/tasks/$taskId`,getParentRoute:()=>$}),rx={AuthS3LsBucketSplatRoute:ex,AuthS3LsBucketIndexRoute:$b},ix={AuthNodesRoute:Dy,AuthIndexRoute:Ey,AuthS3ServiceMetricsRoute:Oy,AuthS3LsBucketRouteRoute:rb._addFileChildren(rx),AuthEc2elasticIpsAllocateAddressRoute:ky,AuthEc2instancesRunInstancesRoute:Ay,AuthEc2internetGatewaysCreateInternetGatewayRoute:jy,AuthEc2keyCreateKeyPairRoute:My,AuthEc2keyImportKeyPairRoute:Ny,AuthEc2launchTemplatesCreateLaunchTemplateRoute:Py,AuthEc2loadBalancersCreateLoadBalancerRoute:Fy,AuthEc2natGatewaysCreateNatGatewayRoute:Iy,AuthEc2placementGroupsCreatePlacementGroupRoute:Ly,AuthEc2routeTablesCreateRouteTableRoute:Ry,AuthEc2securityGroupsCreateSecurityGroupRoute:zy,AuthEc2snapshotsCreateSnapshotRoute:By,AuthEc2subnetCreateSubnetRoute:Vy,AuthEc2targetGroupsCreateTargetGroupRoute:Hy,AuthEc2volumesCreateVolumeRoute:Uy,AuthEc2vpcCreateVpcRoute:Wy,AuthEcsclustersCreateServiceRoute:Gy,AuthEcsclustersRegisterTaskDefinitionRoute:Ky,AuthEcsclustersRunTaskRoute:qy,AuthEcsclustersTaskDefinitionsRoute:Jy,AuthEksclustersCreateClusterRoute:Yy,AuthIamgroupsCreateGroupRoute:Xy,AuthIaminstanceProfilesCreateInstanceProfileRoute:Zy,AuthIampoliciesCreatePolicyRoute:Qy,AuthIamrolesCreateRoleRoute:$y,AuthIamusersCreateUserRoute:eb,AuthS3bucketsCreateBucketRoute:tb,AuthS3LsIndexRoute:nb,AuthEc2elasticIpsDescribeAddressesIdRoute:ab,AuthEc2imagesDescribeImagesIdRoute:sb,AuthEc2instancesDescribeInstancesIdRoute:lb,AuthEc2internetGatewaysDescribeInternetGatewaysIdRoute:db,AuthEc2keyDescribeKeyPairsIdRoute:pb,AuthEc2launchTemplatesDescribeLaunchTemplatesIdRoute:hb,AuthEc2loadBalancersDescribeLoadBalancersIdRoute:_b,AuthEc2natGatewaysDescribeNatGatewaysIdRoute:yb,AuthEc2placementGroupsDescribePlacementGroupsIdRoute:xb,AuthEc2routeTablesDescribeRouteTablesIdRoute:Cb,AuthEc2securityGroupsDescribeSecurityGroupsIdRoute:Tb,AuthEc2snapshotsDescribeSnapshotsIdRoute:Db,AuthEc2subnetDescribeSubnetsIdRoute:kb,AuthEc2targetGroupsDescribeTargetGroupsIdRoute:jb,AuthEc2volumesDescribeVolumesIdRoute:Nb,AuthEc2volumesModifyVolumeIdRoute:Pb,AuthEc2vpcDescribeVpcsIdRoute:Ib,AuthEcrrepositoriesListRepositoriesIdRoute:Rb,AuthEcsclustersListClustersClusterNameRoute:Bb,AuthEksclustersListClustersClusterNameRoute:Hb,AuthIamgroupsListGroupsGroupNameRoute:Wb,AuthIaminstanceProfilesListInstanceProfilesInstanceProfileNameRoute:Kb,AuthIampoliciesListPoliciesPolicyArnRoute:Jb,AuthIamrolesListRolesRoleNameRoute:Xb,AuthIamusersListUsersUserNameRoute:Qb,AuthEc2elasticIpsDescribeAddressesIndexRoute:ib,AuthEc2imagesDescribeImagesIndexRoute:ob,AuthEc2instancesDescribeInstancesIndexRoute:cb,AuthEc2internetGatewaysDescribeInternetGatewaysIndexRoute:ub,AuthEc2keyDescribeKeyPairsIndexRoute:fb,AuthEc2launchTemplatesDescribeLaunchTemplatesIndexRoute:mb,AuthEc2loadBalancersDescribeLoadBalancersIndexRoute:gb,AuthEc2natGatewaysDescribeNatGatewaysIndexRoute:vb,AuthEc2placementGroupsDescribePlacementGroupsIndexRoute:bb,AuthEc2routeTablesDescribeRouteTablesIndexRoute:Sb,AuthEc2securityGroupsDescribeSecurityGroupsIndexRoute:wb,AuthEc2snapshotsDescribeSnapshotsIndexRoute:Eb,AuthEc2subnetDescribeSubnetsIndexRoute:Ob,AuthEc2targetGroupsDescribeTargetGroupsIndexRoute:Ab,AuthEc2volumesDescribeVolumesIndexRoute:Mb,AuthEc2vpcDescribeVpcsIndexRoute:Fb,AuthEcrrepositoriesListRepositoriesIndexRoute:Lb,AuthEcsclustersListClustersIndexRoute:zb,AuthEksclustersListClustersIndexRoute:Vb,AuthIamgroupsListGroupsIndexRoute:Ub,AuthIaminstanceProfilesListInstanceProfilesIndexRoute:Gb,AuthIampoliciesListPoliciesIndexRoute:qb,AuthIamrolesListRolesIndexRoute:Yb,AuthIamusersListUsersIndexRoute:Zb,AuthEcsclustersListClustersClusterNameServicesServiceNameRoute:tx,AuthEcsclustersListClustersClusterNameTasksTaskIdRoute:nx},ax={AuthRouteRoute:$._addFileChildren(ix),LoginRoute:Ty},ox=md._addFileChildren(ax)._addFileTypes(),sx=sd(),cx=Ka({routeTree:ox,context:{queryClient:sx},defaultPreload:`intent`,scrollRestoration:!0,defaultStructuralSharing:!0,defaultPreloadStaleTime:0}),lx=document.querySelector(`#app`);lx&&!lx.innerHTML&&io.createRoot(lx).render((0,Y.jsx)(J.StrictMode,{children:(0,Y.jsx)(so,{defaultTheme:`dark`,storageKey:`spinifex-ui-theme`,children:(0,Y.jsx)(_,{client:sx,children:(0,Y.jsx)(ql,{children:(0,Y.jsx)(el,{children:(0,Y.jsx)(Ya,{router:cx})})})})})}));export{Zg as $,ga as $n,Ym as $t,hv as A,tf as An,$m as At,W_ as B,Ko as Bn,Sg as Bt,zv as C,Mp as Cn,gg as Ct,jv as D,rf as Dn,Lh as Dt,Nv as E,Ep as En,bg as Et,z_ as F,Jl as Fn,Gm as Ft,Lg as G,Mo as Gn,Dh as Gt,G_ as H,zo as Hn,sh as Ht,J_ as I,Ul as In,Um as It,Yg as J,So as Jn,ph as Jt,qg as K,Eo as Kn,Ch as Kt,Y_ as L,Rl as Ln,vg as Lt,pv as M,Ql as Mn,Pg as Mt,cv as N,$l as Nn,Qh as Nt,kv as O,Rf as On,ah as Ot,nv as P,Zl as Pn,Zm as Pt,t_ as Q,lo as Qn,_h as Qt,H_ as R,Xo as Rn,Fh as Rt,Vv as S,Fp as Sn,zm as St,Fv as T,Dp as Tn,wg as Tt,K_ as U,Lo as Un,jh as Ut,U_ as V,Ho as Vn,zh as Vt,L_ as W,Io as Wn,rh as Wt,l_ as X,yo as Xn,mg as Xt,c_ as Y,xo as Yn,ug as Yt,Jg as Z,ho as Zn,Ag as Zt,Zv as _,fm as _n,Vh as _t,by as a,og as an,e_ as at,Gv as b,zp as bn,Xh as bt,my as c,Sm as cn,r_ as ct,cy as d,hm as dn,cg as dt,hh as en,ha as er,Xg as et,oy as f,_m as fn,fg as ft,$v as g,um as gn,Uh as gt,ty as h,gm as hn,dh as ht,xy as i,xh as in,Ug as it,mv as j,gd as jn,Th as jt,Dv as k,gp as kn,kh as kt,fy as l,wm as ln,Im as lt,ny as m,pm as mn,eg as mt,Cy as n,th as nn,Gg as nt,vy as o,Jh as on,Hg as ot,iy as p,vm as pn,Og as pt,Qg as q,To as qn,ng as qt,Sy as r,Om as rn,Kg as rt,gy as s,Kh as sn,Wg as st,wy as t,Vm as tn,n_ as tt,uy as u,Em as un,ig as ut,Yv as v,dm as vn,lh as vt,Lv as w,kp as wn,Nh as wt,Uv as x,Ip as xn,Lm as xt,qv as y,Hp as yn,yh as yt,q_ as z,qo as zn,Eg as zt}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/inline-policies-panel.js b/spinifex/services/spinifexui/frontend/dist/assets/inline-policies-panel.js index 99d844c59..faf24358c 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/inline-policies-panel.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/inline-policies-panel.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./button.js";import{C as a,E as o,S as s,T as c,a as l,b as u,i as d,m as f,r as p,v as m,w as h,x as g}from"./iam.js";import{_,a as v,b as y,g as b,i as x,n as S,o as C,p as w,r as T,x as E}from"./iam2.js";import{r as D}from"./json.js";import{Ln as O,Xn as k,Zn as A,an as j,mn as M,rn as N,sn as P}from"./index.js";import{t as F}from"./delete-confirmation-dialog.js";import{n as I}from"./detail-row.js";import{t as L}from"./json-editor.js";import{s as R}from"./iam3.js";var z=t(n(),1),B=e();function V(e,t){return{run:async n=>await e.mutateAsync(t(n)),error:e.error}}function H({kind:e,name:t}){let n=l(),r=d(),o=p(),c=a(),u=s(),f=g(),{listQuery:m,attach:h,detach:_}={user:{listQuery:x,attach:V(n,e=>({userName:t,policyArn:e})),detach:V(c,e=>({userName:t,policyArn:e}))},role:{listQuery:T,attach:V(r,e=>({roleName:t,policyArn:e})),detach:V(u,e=>({roleName:t,policyArn:e}))},group:{listQuery:S,attach:V(o,e=>({groupName:t,policyArn:e})),detach:V(f,e=>({groupName:t,policyArn:e}))}}[e],{data:v}=k(m(t)),{data:y}=k(w),[b,C]=(0,z.useState)(!1),[E,D]=(0,z.useState)(null),O=v.AttachedPolicies??[],A=y.Policies??[],j=new Set(O.map(e=>e.PolicyArn)),N=A.filter(e=>e.Arn&&!j.has(e.Arn)),P=async e=>{D(e);try{await h.run(e),C(!1)}catch{}finally{D(null)}},F=async e=>{D(e);try{await _.run(e)}catch{}finally{D(null)}};return(0,B.jsxs)(I,{children:[(0,B.jsx)(I.Header,{children:(0,B.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,B.jsx)(`span`,{children:`Attached Policies`}),(0,B.jsx)(i,{onClick:()=>C(!b),size:`sm`,children:`Attach Policy`})]})}),(0,B.jsxs)(I.Content,{children:[h.error&&(0,B.jsx)(`div`,{className:`col-span-2`,children:(0,B.jsx)(M,{error:h.error,msg:`Failed to attach policy`})}),_.error&&(0,B.jsx)(`div`,{className:`col-span-2`,children:(0,B.jsx)(M,{error:_.error,msg:`Failed to detach policy`})}),b&&N.length>0&&(0,B.jsxs)(`div`,{className:`col-span-2 space-y-2 rounded-md border p-3`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium`,children:`Select a policy to attach:`}),(0,B.jsx)(`div`,{className:`space-y-1`,children:N.map(e=>(0,B.jsxs)(`button`,{className:`flex w-full items-center justify-between rounded-md p-2 text-left text-sm hover:bg-accent`,disabled:E===e.Arn,onClick:()=>{e.Arn&&P(e.Arn)},type:`button`,children:[(0,B.jsx)(`span`,{children:e.PolicyName}),(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.Arn})]},e.Arn))})]}),b&&N.length===0&&(0,B.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No policies available to attach.`}),O.length>0?(0,B.jsx)(`div`,{className:`col-span-2 space-y-3`,children:O.map(e=>(0,B.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,B.jsxs)(`div`,{className:`space-y-1`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium`,children:e.PolicyName}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.PolicyArn})]}),(0,B.jsx)(i,{disabled:E===e.PolicyArn,onClick:()=>{e.PolicyArn&&F(e.PolicyArn)},size:`sm`,variant:`outline`,children:`Detach`})]},e.PolicyArn))}):(0,B.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No attached policies.`})]})]})}var U=r(),W=JSON.stringify({Version:`2012-10-17`,Statement:[{Effect:`Allow`,Action:`*`,Resource:`*`}]},null,2);function G({kind:e,name:t}){let n=o(),r=c(),a=h(),s=u(),l=m(),d=f(),{listQuery:p,policyQuery:g,put:x,remove:S}={user:{listQuery:y,policyQuery:E,put:n,remove:s},role:{listQuery:b,policyQuery:_,put:r,remove:l},group:{listQuery:v,policyQuery:C,put:a,remove:d}}[e],{data:w}=k(p(t)),T=w.PolicyNames??[],[D,O]=(0,z.useState)(!1),[A,j]=(0,z.useState)(null),[N,P]=(0,z.useState)(null),L=async()=>{if(!N)return;let e=N;try{await S.mutateAsync({name:t,policyName:e}),A===e&&j(null)}finally{P(null)}};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(I,{children:[(0,B.jsx)(I.Header,{children:(0,B.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,B.jsx)(`span`,{children:`Inline Policies`}),(0,B.jsx)(i,{onClick:()=>{O(e=>!e),j(null)},size:`sm`,children:`Add Inline Policy`})]})}),(0,B.jsxs)(I.Content,{children:[S.error&&(0,B.jsx)(`div`,{className:`col-span-2`,children:(0,B.jsx)(M,{error:S.error,msg:`Failed to delete inline policy`})}),D&&(0,B.jsx)(`div`,{className:`col-span-2`,children:(0,B.jsx)(K,{name:t,onClose:()=>O(!1),put:x})}),T.length>0?(0,B.jsx)(`div`,{className:`col-span-2 space-y-3`,children:T.map(e=>(0,B.jsxs)(`div`,{className:`rounded-md border`,children:[(0,B.jsxs)(`div`,{className:`flex items-center justify-between p-3`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium`,children:e}),(0,B.jsxs)(`div`,{className:`flex gap-2`,children:[(0,B.jsx)(i,{onClick:()=>j(t=>t===e?null:e),size:`sm`,variant:`outline`,children:A===e?`Close`:`Edit`}),(0,B.jsx)(i,{onClick:()=>P(e),size:`sm`,variant:`destructive`,children:`Delete`})]})]}),A===e&&(0,B.jsx)(`div`,{className:`border-t p-3`,children:(0,B.jsx)(J,{name:t,onClose:()=>j(null),policyName:e,put:x,queryOptions:g(t,e)})})]},e))}):!D&&(0,B.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No inline policies.`})]})]}),(0,B.jsx)(F,{description:`Are you sure you want to delete the inline policy "${N??``}"? This action cannot be undone.`,isPending:S.isPending,onConfirm:()=>void L(),onOpenChange:e=>{e||P(null)},open:N!==null,title:`Delete Inline Policy`})]})}function K(e){let t=(0,U.c)(50),{name:n,put:r,onClose:a}=e,[o,s]=(0,z.useState)(``),[c,l]=(0,z.useState)(W),u,d;t[0]!==c||t[1]!==o?(u=R.safeParse({policyName:o,policyDocument:c}),d=u.success?void 0:u.error.issues.find(q),t[0]=c,t[1]=o,t[2]=u,t[3]=d):(u=t[2],d=t[3]);let f=d,p;t[4]!==f||t[5]!==o?(p=o.trim().length>0&&!!f,t[4]=f,t[5]=o,t[6]=p):p=t[6];let m=p,h;t[7]===c?h=t[8]:(h=c.trim().length>0&&!D(c),t[7]=c,t[8]=h);let g=h,_;t[9]!==c||t[10]!==n||t[11]!==a||t[12]!==o||t[13]!==r?(_=async()=>{try{await r.mutateAsync({name:n,policyName:o,policyDocument:c}),a()}catch{}},t[9]=c,t[10]=n,t[11]=a,t[12]=o,t[13]=r,t[14]=_):_=t[14];let v=_,y;t[15]===r.error?y=t[16]:(y=r.error&&(0,B.jsx)(M,{error:r.error,msg:`Failed to add inline policy`}),t[15]=r.error,t[16]=y);let b;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,B.jsx)(P,{children:(0,B.jsx)(`label`,{htmlFor:`inline-policy-name`,children:`Policy name`})}),t[17]=b):b=t[17];let x;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>s(e.target.value),t[18]=x):x=t[18];let S;t[19]!==o||t[20]!==m?(S=(0,B.jsx)(O,{"aria-invalid":m,id:`inline-policy-name`,onChange:x,placeholder:`my-inline-policy`,value:o}),t[19]=o,t[20]=m,t[21]=S):S=t[21];let C;t[22]!==f?.message||t[23]!==m?(C=m&&(0,B.jsx)(j,{errors:[{message:f?.message}]}),t[22]=f?.message,t[23]=m,t[24]=C):C=t[24];let w;t[25]!==S||t[26]!==C?(w=(0,B.jsxs)(N,{children:[b,S,C]}),t[25]=S,t[26]=C,t[27]=w):w=t[27];let T;t[28]!==c||t[29]!==g?(T=(0,B.jsx)(L,{className:`text-xs`,error:g,onChange:l,rows:12,value:c}),t[28]=c,t[29]=g,t[30]=T):T=t[30];let E;t[31]===g?E=t[32]:(E=g&&(0,B.jsx)(`p`,{className:`text-sm text-destructive`,children:`Policy must be valid JSON.`}),t[31]=g,t[32]=E);let k;t[33]===a?k=t[34]:(k=(0,B.jsx)(i,{onClick:a,size:`sm`,variant:`outline`,children:`Cancel`}),t[33]=a,t[34]=k);let A=!u.success||r.isPending,F;t[35]===v?F=t[36]:(F=()=>void v(),t[35]=v,t[36]=F);let I=r.isPending?`Saving…`:`Save`,V;t[37]!==A||t[38]!==F||t[39]!==I?(V=(0,B.jsx)(i,{disabled:A,onClick:F,size:`sm`,children:I}),t[37]=A,t[38]=F,t[39]=I,t[40]=V):V=t[40];let H;t[41]!==k||t[42]!==V?(H=(0,B.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[k,V]}),t[41]=k,t[42]=V,t[43]=H):H=t[43];let G;return t[44]!==w||t[45]!==T||t[46]!==E||t[47]!==H||t[48]!==y?(G=(0,B.jsxs)(`div`,{className:`space-y-3 rounded-md border p-3`,children:[y,w,T,E,H]}),t[44]=w,t[45]=T,t[46]=E,t[47]=H,t[48]=y,t[49]=G):G=t[49],G}function q(e){return e.path[0]===`policyName`}function J(e){let t=(0,U.c)(37),{name:n,policyName:r,queryOptions:a,put:o,onClose:s}=e,{data:c,isLoading:l,error:u}=A(a),[d,f]=(0,z.useState)(c??``),[p,m]=(0,z.useState)(c);c!==p&&(m(c),f(c??``));let h;t[0]===d?h=t[1]:(h=d.trim(),t[0]=d,t[1]=h);let g=h,_;t[2]!==d||t[3]!==g.length?(_=g.length>0&&!D(d),t[2]=d,t[3]=g.length,t[4]=_):_=t[4];let v=_,y;t[5]!==d||t[6]!==n||t[7]!==s||t[8]!==r||t[9]!==o?(y=async()=>{try{await o.mutateAsync({name:n,policyName:r,policyDocument:d}),s()}catch{}},t[5]=d,t[6]=n,t[7]=s,t[8]=r,t[9]=o,t[10]=y):y=t[10];let b=y;if(l){let e;return t[11]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading…`}),t[11]=e):e=t[11],e}if(u){let e;return t[12]===u?e=t[13]:(e=(0,B.jsx)(M,{error:u,msg:`Failed to load inline policy`}),t[12]=u,t[13]=e),e}let x;t[14]===o.error?x=t[15]:(x=o.error&&(0,B.jsx)(M,{error:o.error,msg:`Failed to update inline policy`}),t[14]=o.error,t[15]=x);let S;t[16]!==d||t[17]!==v?(S=(0,B.jsx)(L,{className:`text-xs`,error:v,onChange:f,rows:12,value:d}),t[16]=d,t[17]=v,t[18]=S):S=t[18];let C;t[19]===v?C=t[20]:(C=v&&(0,B.jsx)(`p`,{className:`text-sm text-destructive`,children:`Policy must be valid JSON.`}),t[19]=v,t[20]=C);let w;t[21]===s?w=t[22]:(w=(0,B.jsx)(i,{onClick:s,size:`sm`,variant:`outline`,children:`Cancel`}),t[21]=s,t[22]=w);let T=o.isPending||g.length===0||v,E;t[23]===b?E=t[24]:(E=()=>void b(),t[23]=b,t[24]=E);let O=o.isPending?`Saving…`:`Save`,k;t[25]!==O||t[26]!==T||t[27]!==E?(k=(0,B.jsx)(i,{disabled:T,onClick:E,size:`sm`,children:O}),t[25]=O,t[26]=T,t[27]=E,t[28]=k):k=t[28];let j;t[29]!==k||t[30]!==w?(j=(0,B.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[w,k]}),t[29]=k,t[30]=w,t[31]=j):j=t[31];let N;return t[32]!==j||t[33]!==x||t[34]!==S||t[35]!==C?(N=(0,B.jsxs)(`div`,{className:`space-y-3`,children:[x,S,C,j]}),t[32]=j,t[33]=x,t[34]=S,t[35]=C,t[36]=N):N=t[36],N}export{H as n,G as t}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./button.js";import{C as a,E as o,S as s,T as c,a as l,b as u,i as d,m as f,r as p,v as m,w as h,x as g}from"./iam.js";import{_,a as v,b as y,g as b,i as x,n as S,o as C,p as w,r as T,x as E}from"./iam2.js";import{r as D}from"./json.js";import{$n as O,Rn as k,Sn as A,dn as j,er as M,hn as N,pn as P}from"./index.js";import{t as F}from"./delete-confirmation-dialog.js";import{n as I}from"./detail-row.js";import{t as L}from"./json-editor.js";import{s as R}from"./iam3.js";var z=t(n(),1),B=e();function V(e,t){return{run:async n=>await e.mutateAsync(t(n)),error:e.error}}function H({kind:e,name:t}){let n=l(),r=d(),o=p(),c=a(),u=s(),f=g(),{listQuery:m,attach:h,detach:_}={user:{listQuery:x,attach:V(n,e=>({userName:t,policyArn:e})),detach:V(c,e=>({userName:t,policyArn:e}))},role:{listQuery:T,attach:V(r,e=>({roleName:t,policyArn:e})),detach:V(u,e=>({roleName:t,policyArn:e}))},group:{listQuery:S,attach:V(o,e=>({groupName:t,policyArn:e})),detach:V(f,e=>({groupName:t,policyArn:e}))}}[e],{data:v}=O(m(t)),{data:y}=O(w),[b,C]=(0,z.useState)(!1),[E,D]=(0,z.useState)(null),k=v.AttachedPolicies??[],j=y.Policies??[],M=new Set(k.map(e=>e.PolicyArn)),N=j.filter(e=>e.Arn&&!M.has(e.Arn)),P=async e=>{D(e);try{await h.run(e),C(!1)}catch{}finally{D(null)}},F=async e=>{D(e);try{await _.run(e)}catch{}finally{D(null)}};return(0,B.jsxs)(I,{children:[(0,B.jsx)(I.Header,{children:(0,B.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,B.jsx)(`span`,{children:`Attached Policies`}),(0,B.jsx)(i,{onClick:()=>C(!b),size:`sm`,children:`Attach Policy`})]})}),(0,B.jsxs)(I.Content,{children:[h.error&&(0,B.jsx)(`div`,{className:`col-span-2`,children:(0,B.jsx)(A,{error:h.error,msg:`Failed to attach policy`})}),_.error&&(0,B.jsx)(`div`,{className:`col-span-2`,children:(0,B.jsx)(A,{error:_.error,msg:`Failed to detach policy`})}),b&&N.length>0&&(0,B.jsxs)(`div`,{className:`col-span-2 space-y-2 rounded-md border p-3`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium`,children:`Select a policy to attach:`}),(0,B.jsx)(`div`,{className:`space-y-1`,children:N.map(e=>(0,B.jsxs)(`button`,{className:`flex w-full items-center justify-between rounded-md p-2 text-left text-sm hover:bg-accent`,disabled:E===e.Arn,onClick:()=>{e.Arn&&P(e.Arn)},type:`button`,children:[(0,B.jsx)(`span`,{children:e.PolicyName}),(0,B.jsx)(`span`,{className:`text-xs text-muted-foreground`,children:e.Arn})]},e.Arn))})]}),b&&N.length===0&&(0,B.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No policies available to attach.`}),k.length>0?(0,B.jsx)(`div`,{className:`col-span-2 space-y-3`,children:k.map(e=>(0,B.jsxs)(`div`,{className:`flex items-center justify-between rounded-md border p-3`,children:[(0,B.jsxs)(`div`,{className:`space-y-1`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium`,children:e.PolicyName}),(0,B.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.PolicyArn})]}),(0,B.jsx)(i,{disabled:E===e.PolicyArn,onClick:()=>{e.PolicyArn&&F(e.PolicyArn)},size:`sm`,variant:`outline`,children:`Detach`})]},e.PolicyArn))}):(0,B.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No attached policies.`})]})]})}var U=r(),W=JSON.stringify({Version:`2012-10-17`,Statement:[{Effect:`Allow`,Action:`*`,Resource:`*`}]},null,2);function G({kind:e,name:t}){let n=o(),r=c(),a=h(),s=u(),l=m(),d=f(),{listQuery:p,policyQuery:g,put:x,remove:S}={user:{listQuery:y,policyQuery:E,put:n,remove:s},role:{listQuery:b,policyQuery:_,put:r,remove:l},group:{listQuery:v,policyQuery:C,put:a,remove:d}}[e],{data:w}=O(p(t)),T=w.PolicyNames??[],[D,k]=(0,z.useState)(!1),[j,M]=(0,z.useState)(null),[N,P]=(0,z.useState)(null),L=async()=>{if(!N)return;let e=N;try{await S.mutateAsync({name:t,policyName:e}),j===e&&M(null)}finally{P(null)}};return(0,B.jsxs)(B.Fragment,{children:[(0,B.jsxs)(I,{children:[(0,B.jsx)(I.Header,{children:(0,B.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,B.jsx)(`span`,{children:`Inline Policies`}),(0,B.jsx)(i,{onClick:()=>{k(e=>!e),M(null)},size:`sm`,children:`Add Inline Policy`})]})}),(0,B.jsxs)(I.Content,{children:[S.error&&(0,B.jsx)(`div`,{className:`col-span-2`,children:(0,B.jsx)(A,{error:S.error,msg:`Failed to delete inline policy`})}),D&&(0,B.jsx)(`div`,{className:`col-span-2`,children:(0,B.jsx)(K,{name:t,onClose:()=>k(!1),put:x})}),T.length>0?(0,B.jsx)(`div`,{className:`col-span-2 space-y-3`,children:T.map(e=>(0,B.jsxs)(`div`,{className:`rounded-md border`,children:[(0,B.jsxs)(`div`,{className:`flex items-center justify-between p-3`,children:[(0,B.jsx)(`p`,{className:`text-sm font-medium`,children:e}),(0,B.jsxs)(`div`,{className:`flex gap-2`,children:[(0,B.jsx)(i,{onClick:()=>M(t=>t===e?null:e),size:`sm`,variant:`outline`,children:j===e?`Close`:`Edit`}),(0,B.jsx)(i,{onClick:()=>P(e),size:`sm`,variant:`destructive`,children:`Delete`})]})]}),j===e&&(0,B.jsx)(`div`,{className:`border-t p-3`,children:(0,B.jsx)(J,{name:t,onClose:()=>M(null),policyName:e,put:x,queryOptions:g(t,e)})})]},e))}):!D&&(0,B.jsx)(`p`,{className:`col-span-2 text-sm text-muted-foreground`,children:`No inline policies.`})]})]}),(0,B.jsx)(F,{description:`Are you sure you want to delete the inline policy "${N??``}"? This action cannot be undone.`,isPending:S.isPending,onConfirm:()=>void L(),onOpenChange:e=>{e||P(null)},open:N!==null,title:`Delete Inline Policy`})]})}function K(e){let t=(0,U.c)(50),{name:n,put:r,onClose:a}=e,[o,s]=(0,z.useState)(``),[c,l]=(0,z.useState)(W),u,d;t[0]!==c||t[1]!==o?(u=R.safeParse({policyName:o,policyDocument:c}),d=u.success?void 0:u.error.issues.find(q),t[0]=c,t[1]=o,t[2]=u,t[3]=d):(u=t[2],d=t[3]);let f=d,p;t[4]!==f||t[5]!==o?(p=o.trim().length>0&&!!f,t[4]=f,t[5]=o,t[6]=p):p=t[6];let m=p,h;t[7]===c?h=t[8]:(h=c.trim().length>0&&!D(c),t[7]=c,t[8]=h);let g=h,_;t[9]!==c||t[10]!==n||t[11]!==a||t[12]!==o||t[13]!==r?(_=async()=>{try{await r.mutateAsync({name:n,policyName:o,policyDocument:c}),a()}catch{}},t[9]=c,t[10]=n,t[11]=a,t[12]=o,t[13]=r,t[14]=_):_=t[14];let v=_,y;t[15]===r.error?y=t[16]:(y=r.error&&(0,B.jsx)(A,{error:r.error,msg:`Failed to add inline policy`}),t[15]=r.error,t[16]=y);let b;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,B.jsx)(N,{children:(0,B.jsx)(`label`,{htmlFor:`inline-policy-name`,children:`Policy name`})}),t[17]=b):b=t[17];let x;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>s(e.target.value),t[18]=x):x=t[18];let S;t[19]!==o||t[20]!==m?(S=(0,B.jsx)(k,{"aria-invalid":m,id:`inline-policy-name`,onChange:x,placeholder:`my-inline-policy`,value:o}),t[19]=o,t[20]=m,t[21]=S):S=t[21];let C;t[22]!==f?.message||t[23]!==m?(C=m&&(0,B.jsx)(P,{errors:[{message:f?.message}]}),t[22]=f?.message,t[23]=m,t[24]=C):C=t[24];let w;t[25]!==S||t[26]!==C?(w=(0,B.jsxs)(j,{children:[b,S,C]}),t[25]=S,t[26]=C,t[27]=w):w=t[27];let T;t[28]!==c||t[29]!==g?(T=(0,B.jsx)(L,{className:`text-xs`,error:g,onChange:l,rows:12,value:c}),t[28]=c,t[29]=g,t[30]=T):T=t[30];let E;t[31]===g?E=t[32]:(E=g&&(0,B.jsx)(`p`,{className:`text-sm text-destructive`,children:`Policy must be valid JSON.`}),t[31]=g,t[32]=E);let O;t[33]===a?O=t[34]:(O=(0,B.jsx)(i,{onClick:a,size:`sm`,variant:`outline`,children:`Cancel`}),t[33]=a,t[34]=O);let M=!u.success||r.isPending,F;t[35]===v?F=t[36]:(F=()=>void v(),t[35]=v,t[36]=F);let I=r.isPending?`Saving…`:`Save`,V;t[37]!==M||t[38]!==F||t[39]!==I?(V=(0,B.jsx)(i,{disabled:M,onClick:F,size:`sm`,children:I}),t[37]=M,t[38]=F,t[39]=I,t[40]=V):V=t[40];let H;t[41]!==O||t[42]!==V?(H=(0,B.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[O,V]}),t[41]=O,t[42]=V,t[43]=H):H=t[43];let G;return t[44]!==w||t[45]!==T||t[46]!==E||t[47]!==H||t[48]!==y?(G=(0,B.jsxs)(`div`,{className:`space-y-3 rounded-md border p-3`,children:[y,w,T,E,H]}),t[44]=w,t[45]=T,t[46]=E,t[47]=H,t[48]=y,t[49]=G):G=t[49],G}function q(e){return e.path[0]===`policyName`}function J(e){let t=(0,U.c)(37),{name:n,policyName:r,queryOptions:a,put:o,onClose:s}=e,{data:c,isLoading:l,error:u}=M(a),[d,f]=(0,z.useState)(c??``),[p,m]=(0,z.useState)(c);c!==p&&(m(c),f(c??``));let h;t[0]===d?h=t[1]:(h=d.trim(),t[0]=d,t[1]=h);let g=h,_;t[2]!==d||t[3]!==g.length?(_=g.length>0&&!D(d),t[2]=d,t[3]=g.length,t[4]=_):_=t[4];let v=_,y;t[5]!==d||t[6]!==n||t[7]!==s||t[8]!==r||t[9]!==o?(y=async()=>{try{await o.mutateAsync({name:n,policyName:r,policyDocument:d}),s()}catch{}},t[5]=d,t[6]=n,t[7]=s,t[8]=r,t[9]=o,t[10]=y):y=t[10];let b=y;if(l){let e;return t[11]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,B.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`Loading…`}),t[11]=e):e=t[11],e}if(u){let e;return t[12]===u?e=t[13]:(e=(0,B.jsx)(A,{error:u,msg:`Failed to load inline policy`}),t[12]=u,t[13]=e),e}let x;t[14]===o.error?x=t[15]:(x=o.error&&(0,B.jsx)(A,{error:o.error,msg:`Failed to update inline policy`}),t[14]=o.error,t[15]=x);let S;t[16]!==d||t[17]!==v?(S=(0,B.jsx)(L,{className:`text-xs`,error:v,onChange:f,rows:12,value:d}),t[16]=d,t[17]=v,t[18]=S):S=t[18];let C;t[19]===v?C=t[20]:(C=v&&(0,B.jsx)(`p`,{className:`text-sm text-destructive`,children:`Policy must be valid JSON.`}),t[19]=v,t[20]=C);let w;t[21]===s?w=t[22]:(w=(0,B.jsx)(i,{onClick:s,size:`sm`,variant:`outline`,children:`Cancel`}),t[21]=s,t[22]=w);let T=o.isPending||g.length===0||v,E;t[23]===b?E=t[24]:(E=()=>void b(),t[23]=b,t[24]=E);let O=o.isPending?`Saving…`:`Save`,k;t[25]!==O||t[26]!==T||t[27]!==E?(k=(0,B.jsx)(i,{disabled:T,onClick:E,size:`sm`,children:O}),t[25]=O,t[26]=T,t[27]=E,t[28]=k):k=t[28];let j;t[29]!==k||t[30]!==w?(j=(0,B.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[w,k]}),t[29]=k,t[30]=w,t[31]=j):j=t[31];let N;return t[32]!==j||t[33]!==x||t[34]!==S||t[35]!==C?(N=(0,B.jsxs)(`div`,{className:`space-y-3`,children:[x,S,C,j]}),t[32]=j,t[33]=x,t[34]=S,t[35]=C,t[36]=N):N=t[36],N}export{H as n,G as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/launch-template-data-fields.js b/spinifex/services/spinifexui/frontend/dist/assets/launch-template-data-fields.js index 117caf87d..72bc8e43f 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/launch-template-data-fields.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/launch-template-data-fields.js @@ -1,2 +1,2 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./chevron-down.js";import{c as r,i,n as a,s as o,t as s}from"./select.js";import{O as ee,c as te,o as ne,p as re,w as ie}from"./ec2.js";import{F as ae,Ln as oe,Sn as se,Xn as c,an as ce,cn as le,in as ue,ln as de,rn as l,sn as u,un as fe,yn as d}from"./index.js";import{t as pe}from"./textarea.js";var me=t(),f=e(),he=`gp3`,ge=1,_e=16384;function p(e){let t=(0,me.c)(105),{control:p,register:m,errors:h}=e,{data:Ee}=c(ne),{data:De}=c(te),{data:Oe}=c(re),{data:ke}=c(ee),{data:Ae}=c(ie),je;t[0]===Ee.Images?je=t[1]:(je=Ee.Images??[],t[0]=Ee.Images,t[1]=je);let g=je,_;t[2]===Oe.KeyPairs?_=t[3]:(_=Oe.KeyPairs??[],t[2]=Oe.KeyPairs,t[3]=_);let Me=_,v;t[4]===ke.Subnets?v=t[5]:(v=ke.Subnets??[],t[4]=ke.Subnets,t[5]=v);let y=v,b;t[6]===Ae.SecurityGroups?b=t[7]:(b=Ae.SecurityGroups??[],t[6]=Ae.SecurityGroups,t[7]=b);let x=b,S;t[8]===De.InstanceTypes?S=t[9]:(S=[...new Set((De.InstanceTypes??[]).map(Te).filter(we))].toSorted(),t[8]=De.InstanceTypes,t[9]=S);let Ne=S,C;t[10]===p?C=t[11]:(C={control:p,name:`subnetId`},t[10]=p,t[11]=C);let Pe=se(C),w;t[12]!==Pe||t[13]!==y?(w=y.find(e=>e.SubnetId===Pe)?.VpcId,t[12]=Pe,t[13]=y,t[14]=w):w=t[14];let T=w,E;t[15]!==T||t[16]!==x?(E=T?x.filter(e=>e.VpcId===T):x,t[15]=T,t[16]=x,t[17]=E):E=t[17];let Fe=E,Ie;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`imageId`,children:`Image`})}),t[18]=Ie):Ie=t[18];let D;t[19]!==h.imageId||t[20]!==g?(D=e=>{let{field:t}=e,n=g.find(e=>e.ImageId===t.value);return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,f.jsx)(o,{"aria-invalid":!!h.imageId,className:`w-full`,id:`imageId`,children:(0,f.jsx)(r,{children:n?`${n.Name??`Unnamed`} (${n.Architecture})`:``})}),(0,f.jsx)(a,{children:g.map(Ce)})]})},t[19]=h.imageId,t[20]=g,t[21]=D):D=t[21];let O;t[22]!==p||t[23]!==D?(O=(0,f.jsx)(d,{control:p,name:`imageId`,render:D}),t[22]=p,t[23]=D,t[24]=O):O=t[24];let k;t[25]===h.imageId?k=t[26]:(k=(0,f.jsx)(ce,{errors:[h.imageId]}),t[25]=h.imageId,t[26]=k);let A;t[27]!==O||t[28]!==k?(A=(0,f.jsxs)(l,{children:[Ie,O,k]}),t[27]=O,t[28]=k,t[29]=A):A=t[29];let Le;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`instanceType`,children:`Instance Type`})}),t[30]=Le):Le=t[30];let j;t[31]!==h.instanceType||t[32]!==Ne?(j=e=>{let{field:t}=e;return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e),value:t.value||``,children:[(0,f.jsx)(o,{"aria-invalid":!!h.instanceType,className:`w-full`,id:`instanceType`,children:(0,f.jsx)(r,{})}),(0,f.jsx)(a,{children:Ne.map(Se)})]})},t[31]=h.instanceType,t[32]=Ne,t[33]=j):j=t[33];let M;t[34]!==p||t[35]!==j?(M=(0,f.jsx)(d,{control:p,name:`instanceType`,render:j}),t[34]=p,t[35]=j,t[36]=M):M=t[36];let N;t[37]===h.instanceType?N=t[38]:(N=(0,f.jsx)(ce,{errors:[h.instanceType]}),t[37]=h.instanceType,t[38]=N);let P;t[39]!==M||t[40]!==N?(P=(0,f.jsxs)(l,{children:[Le,M,N]}),t[39]=M,t[40]=N,t[41]=P):P=t[41];let Re;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(Re=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`keyName`,children:`Key Pair`})}),t[42]=Re):Re=t[42];let F;t[43]===Me?F=t[44]:(F=e=>{let{field:t}=e;return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,f.jsx)(o,{className:`w-full`,id:`keyName`,children:(0,f.jsx)(r,{})}),(0,f.jsxs)(a,{children:[(0,f.jsx)(i,{value:`none`,children:`none`}),Me.map(xe)]})]})},t[43]=Me,t[44]=F);let I;t[45]!==p||t[46]!==F?(I=(0,f.jsxs)(l,{children:[Re,(0,f.jsx)(d,{control:p,name:`keyName`,render:F})]}),t[45]=p,t[46]=F,t[47]=I):I=t[47];let ze;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(ze=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`subnetId`,children:`Subnet`})}),t[48]=ze):ze=t[48];let L;t[49]===y?L=t[50]:(L=e=>{let{field:t}=e;return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,f.jsx)(o,{className:`w-full`,id:`subnetId`,children:(0,f.jsx)(r,{})}),(0,f.jsxs)(a,{children:[(0,f.jsx)(i,{value:`none`,children:`none`}),y.map(be)]})]})},t[49]=y,t[50]=L);let R;t[51]!==p||t[52]!==L?(R=(0,f.jsxs)(l,{children:[ze,(0,f.jsx)(d,{control:p,name:`subnetId`,render:L})]}),t[51]=p,t[52]=L,t[53]=R):R=t[53];let Be;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,f.jsx)(u,{children:`Security Groups`}),t[54]=Be):Be=t[54];let Ve=T?`Applies to VPC ${T}`:`Showing all security groups — select a subnet to filter by VPC`,z;t[55]===Ve?z=t[56]:(z=(0,f.jsx)(ue,{children:Ve}),t[55]=Ve,t[56]=z);let B;t[57]===Fe?B=t[58]:(B=e=>{let{field:t}=e,n=t.value??[],r=e=>{t.onChange(n.includes(e)?n.filter(t=>t!==e):[...n,e])};return Fe.length===0?(0,f.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No security groups available.`}):(0,f.jsx)(`div`,{className:`space-y-1`,children:Fe.map(e=>(0,f.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,f.jsx)(`input`,{"aria-label":`Security group ${e.GroupId} (${e.GroupName})`,checked:n.includes(e.GroupId??``),onChange:()=>r(e.GroupId??``),type:`checkbox`}),(0,f.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))})},t[57]=Fe,t[58]=B);let V;t[59]!==p||t[60]!==B?(V=(0,f.jsx)(d,{control:p,name:`securityGroupIds`,render:B}),t[59]=p,t[60]=B,t[61]=V):V=t[61];let H;t[62]!==z||t[63]!==V?(H=(0,f.jsxs)(l,{children:[Be,z,V]}),t[62]=z,t[63]=V,t[64]=H):H=t[64];let He,Ue;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(He=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`userData`,children:`User Data`})}),Ue=(0,f.jsx)(ue,{children:`Cloud-init or shell script run at first boot.`}),t[65]=He,t[66]=Ue):(He=t[65],Ue=t[66]);let U;t[67]===m?U=t[68]:(U=m(`userData`),t[67]=m,t[68]=U);let W;t[69]===U?W=t[70]:(W=(0,f.jsxs)(l,{children:[He,Ue,(0,f.jsx)(pe,{className:`min-h-32 font-mono`,id:`userData`,placeholder:`#!/bin/bash -echo hello`,...U})]}),t[69]=U,t[70]=W);let We;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(We=(0,f.jsxs)(fe,{className:`group flex h-7 w-full items-center justify-between rounded-md border border-input bg-input/20 px-2 py-0.5 text-sm transition-colors outline-none hover:bg-input/40 focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 md:text-xs/relaxed dark:bg-input/30 dark:hover:bg-input/50`,render:(0,f.jsx)(`button`,{"aria-label":`Block Device Mappings (root volume)`,type:`button`}),children:[(0,f.jsx)(`span`,{children:`Block Device Mappings (root volume)`}),(0,f.jsx)(n,{className:`size-3.5 text-muted-foreground transition-transform group-data-[panel-open]:rotate-180`})]}),t[71]=We):We=t[71];let Ge;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`rootVolumeSize`,children:`Volume Size (GiB)`})}),t[72]=Ge):Ge=t[72];let Ke=!!h.rootVolumeSize,G;t[73]===m?G=t[74]:(G=m(`rootVolumeSize`,{setValueAs:ye}),t[73]=m,t[74]=G);let K;t[75]!==Ke||t[76]!==G?(K=(0,f.jsx)(oe,{"aria-invalid":Ke,id:`rootVolumeSize`,max:_e,min:ge,placeholder:`use AMI default`,type:`number`,...G}),t[75]=Ke,t[76]=G,t[77]=K):K=t[77];let q;t[78]===h.rootVolumeSize?q=t[79]:(q=(0,f.jsx)(ce,{errors:[h.rootVolumeSize]}),t[78]=h.rootVolumeSize,t[79]=q);let J;t[80]!==K||t[81]!==q?(J=(0,f.jsxs)(l,{children:[Ge,K,q]}),t[80]=K,t[81]=q,t[82]=J):J=t[82];let qe;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(qe=(0,f.jsx)(u,{children:(0,f.jsx)(`label`,{htmlFor:`rootVolumeType`,children:`Volume Type`})}),t[83]=qe):qe=t[83];let Y;t[84]===h.rootVolumeType?Y=t[85]:(Y=e=>{let{field:t}=e;return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e),value:t.value??he,children:[(0,f.jsx)(o,{"aria-invalid":!!h.rootVolumeType,className:`w-full`,id:`rootVolumeType`,children:(0,f.jsx)(r,{})}),(0,f.jsx)(a,{children:ae.map(ve)})]})},t[84]=h.rootVolumeType,t[85]=Y);let X;t[86]!==p||t[87]!==Y?(X=(0,f.jsx)(d,{control:p,name:`rootVolumeType`,render:Y}),t[86]=p,t[87]=Y,t[88]=X):X=t[88];let Z;t[89]===h.rootVolumeType?Z=t[90]:(Z=(0,f.jsx)(ce,{errors:[h.rootVolumeType]}),t[89]=h.rootVolumeType,t[90]=Z);let Q;t[91]!==X||t[92]!==Z?(Q=(0,f.jsxs)(l,{children:[qe,X,Z]}),t[91]=X,t[92]=Z,t[93]=Q):Q=t[93];let $;t[94]!==J||t[95]!==Q?($=(0,f.jsxs)(le,{children:[We,(0,f.jsxs)(de,{className:`mt-3 space-y-4 rounded-md border border-border p-4`,children:[J,Q]})]}),t[94]=J,t[95]=Q,t[96]=$):$=t[96];let Je;return t[97]!==A||t[98]!==P||t[99]!==I||t[100]!==R||t[101]!==H||t[102]!==W||t[103]!==$?(Je=(0,f.jsxs)(f.Fragment,{children:[A,P,I,R,H,W,$]}),t[97]=A,t[98]=P,t[99]=I,t[100]=R,t[101]=H,t[102]=W,t[103]=$,t[104]=Je):Je=t[104],Je}function ve(e){return(0,f.jsx)(i,{value:e,children:e},e)}function ye(e){return e===``||e==null?void 0:Number(e)}function be(e){return(0,f.jsx)(i,{value:e.SubnetId??``,children:e.SubnetId},e.SubnetId)}function xe(e){return(0,f.jsx)(i,{value:e.KeyName??``,children:e.KeyName},e.KeyPairId)}function Se(e){return(0,f.jsx)(i,{value:e,children:e},e)}function Ce(e){return(0,f.jsxs)(i,{value:e.ImageId??``,children:[e.Name??`Unnamed`,` (`,e.Architecture,`)`]},e.ImageId)}function we(e){return!!e}function Te(e){return e.InstanceType}export{p as t}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./chevron-down.js";import{c as r,i,n as a,s as o,t as s}from"./select.js";import{O as ee,c as te,o as ne,p as re,w as ie}from"./ec2.js";import{$n as c,An as ae,Dn as l,G as oe,Rn as se,_n as ce,dn as u,fn as le,gn as ue,hn as d,pn as de,vn as fe}from"./index.js";import{t as pe}from"./textarea.js";var me=t(),f=e(),he=`gp3`,ge=1,_e=16384;function p(e){let t=(0,me.c)(105),{control:p,register:m,errors:h}=e,{data:Ee}=c(ne),{data:De}=c(te),{data:Oe}=c(re),{data:ke}=c(ee),{data:Ae}=c(ie),je;t[0]===Ee.Images?je=t[1]:(je=Ee.Images??[],t[0]=Ee.Images,t[1]=je);let g=je,_;t[2]===Oe.KeyPairs?_=t[3]:(_=Oe.KeyPairs??[],t[2]=Oe.KeyPairs,t[3]=_);let Me=_,v;t[4]===ke.Subnets?v=t[5]:(v=ke.Subnets??[],t[4]=ke.Subnets,t[5]=v);let y=v,b;t[6]===Ae.SecurityGroups?b=t[7]:(b=Ae.SecurityGroups??[],t[6]=Ae.SecurityGroups,t[7]=b);let x=b,S;t[8]===De.InstanceTypes?S=t[9]:(S=[...new Set((De.InstanceTypes??[]).map(Te).filter(we))].toSorted(),t[8]=De.InstanceTypes,t[9]=S);let Ne=S,C;t[10]===p?C=t[11]:(C={control:p,name:`subnetId`},t[10]=p,t[11]=C);let Pe=ae(C),w;t[12]!==Pe||t[13]!==y?(w=y.find(e=>e.SubnetId===Pe)?.VpcId,t[12]=Pe,t[13]=y,t[14]=w):w=t[14];let T=w,E;t[15]!==T||t[16]!==x?(E=T?x.filter(e=>e.VpcId===T):x,t[15]=T,t[16]=x,t[17]=E):E=t[17];let Fe=E,Ie;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`imageId`,children:`Image`})}),t[18]=Ie):Ie=t[18];let D;t[19]!==h.imageId||t[20]!==g?(D=e=>{let{field:t}=e,n=g.find(e=>e.ImageId===t.value);return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,f.jsx)(o,{"aria-invalid":!!h.imageId,className:`w-full`,id:`imageId`,children:(0,f.jsx)(r,{children:n?`${n.Name??`Unnamed`} (${n.Architecture})`:``})}),(0,f.jsx)(a,{children:g.map(Ce)})]})},t[19]=h.imageId,t[20]=g,t[21]=D):D=t[21];let O;t[22]!==p||t[23]!==D?(O=(0,f.jsx)(l,{control:p,name:`imageId`,render:D}),t[22]=p,t[23]=D,t[24]=O):O=t[24];let k;t[25]===h.imageId?k=t[26]:(k=(0,f.jsx)(de,{errors:[h.imageId]}),t[25]=h.imageId,t[26]=k);let A;t[27]!==O||t[28]!==k?(A=(0,f.jsxs)(u,{children:[Ie,O,k]}),t[27]=O,t[28]=k,t[29]=A):A=t[29];let Le;t[30]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`instanceType`,children:`Instance Type`})}),t[30]=Le):Le=t[30];let j;t[31]!==h.instanceType||t[32]!==Ne?(j=e=>{let{field:t}=e;return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e),value:t.value||``,children:[(0,f.jsx)(o,{"aria-invalid":!!h.instanceType,className:`w-full`,id:`instanceType`,children:(0,f.jsx)(r,{})}),(0,f.jsx)(a,{children:Ne.map(Se)})]})},t[31]=h.instanceType,t[32]=Ne,t[33]=j):j=t[33];let M;t[34]!==p||t[35]!==j?(M=(0,f.jsx)(l,{control:p,name:`instanceType`,render:j}),t[34]=p,t[35]=j,t[36]=M):M=t[36];let N;t[37]===h.instanceType?N=t[38]:(N=(0,f.jsx)(de,{errors:[h.instanceType]}),t[37]=h.instanceType,t[38]=N);let P;t[39]!==M||t[40]!==N?(P=(0,f.jsxs)(u,{children:[Le,M,N]}),t[39]=M,t[40]=N,t[41]=P):P=t[41];let Re;t[42]===Symbol.for(`react.memo_cache_sentinel`)?(Re=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`keyName`,children:`Key Pair`})}),t[42]=Re):Re=t[42];let F;t[43]===Me?F=t[44]:(F=e=>{let{field:t}=e;return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,f.jsx)(o,{className:`w-full`,id:`keyName`,children:(0,f.jsx)(r,{})}),(0,f.jsxs)(a,{children:[(0,f.jsx)(i,{value:`none`,children:`none`}),Me.map(xe)]})]})},t[43]=Me,t[44]=F);let I;t[45]!==p||t[46]!==F?(I=(0,f.jsxs)(u,{children:[Re,(0,f.jsx)(l,{control:p,name:`keyName`,render:F})]}),t[45]=p,t[46]=F,t[47]=I):I=t[47];let ze;t[48]===Symbol.for(`react.memo_cache_sentinel`)?(ze=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`subnetId`,children:`Subnet`})}),t[48]=ze):ze=t[48];let L;t[49]===y?L=t[50]:(L=e=>{let{field:t}=e;return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e===`none`?void 0:e),value:t.value??`none`,children:[(0,f.jsx)(o,{className:`w-full`,id:`subnetId`,children:(0,f.jsx)(r,{})}),(0,f.jsxs)(a,{children:[(0,f.jsx)(i,{value:`none`,children:`none`}),y.map(be)]})]})},t[49]=y,t[50]=L);let R;t[51]!==p||t[52]!==L?(R=(0,f.jsxs)(u,{children:[ze,(0,f.jsx)(l,{control:p,name:`subnetId`,render:L})]}),t[51]=p,t[52]=L,t[53]=R):R=t[53];let Be;t[54]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,f.jsx)(d,{children:`Security Groups`}),t[54]=Be):Be=t[54];let Ve=T?`Applies to VPC ${T}`:`Showing all security groups — select a subnet to filter by VPC`,z;t[55]===Ve?z=t[56]:(z=(0,f.jsx)(le,{children:Ve}),t[55]=Ve,t[56]=z);let B;t[57]===Fe?B=t[58]:(B=e=>{let{field:t}=e,n=t.value??[],r=e=>{t.onChange(n.includes(e)?n.filter(t=>t!==e):[...n,e])};return Fe.length===0?(0,f.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No security groups available.`}):(0,f.jsx)(`div`,{className:`space-y-1`,children:Fe.map(e=>(0,f.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,f.jsx)(`input`,{"aria-label":`Security group ${e.GroupId} (${e.GroupName})`,checked:n.includes(e.GroupId??``),onChange:()=>r(e.GroupId??``),type:`checkbox`}),(0,f.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))})},t[57]=Fe,t[58]=B);let V;t[59]!==p||t[60]!==B?(V=(0,f.jsx)(l,{control:p,name:`securityGroupIds`,render:B}),t[59]=p,t[60]=B,t[61]=V):V=t[61];let H;t[62]!==z||t[63]!==V?(H=(0,f.jsxs)(u,{children:[Be,z,V]}),t[62]=z,t[63]=V,t[64]=H):H=t[64];let He,Ue;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(He=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`userData`,children:`User Data`})}),Ue=(0,f.jsx)(le,{children:`Cloud-init or shell script run at first boot.`}),t[65]=He,t[66]=Ue):(He=t[65],Ue=t[66]);let U;t[67]===m?U=t[68]:(U=m(`userData`),t[67]=m,t[68]=U);let W;t[69]===U?W=t[70]:(W=(0,f.jsxs)(u,{children:[He,Ue,(0,f.jsx)(pe,{className:`min-h-32 font-mono`,id:`userData`,placeholder:`#!/bin/bash +echo hello`,...U})]}),t[69]=U,t[70]=W);let We;t[71]===Symbol.for(`react.memo_cache_sentinel`)?(We=(0,f.jsxs)(fe,{className:`group flex h-7 w-full items-center justify-between rounded-md border border-input bg-input/20 px-2 py-0.5 text-sm transition-colors outline-none hover:bg-input/40 focus-visible:border-ring focus-visible:ring-2 focus-visible:ring-ring/30 md:text-xs/relaxed dark:bg-input/30 dark:hover:bg-input/50`,render:(0,f.jsx)(`button`,{"aria-label":`Block Device Mappings (root volume)`,type:`button`}),children:[(0,f.jsx)(`span`,{children:`Block Device Mappings (root volume)`}),(0,f.jsx)(n,{className:`size-3.5 text-muted-foreground transition-transform group-data-[panel-open]:rotate-180`})]}),t[71]=We):We=t[71];let Ge;t[72]===Symbol.for(`react.memo_cache_sentinel`)?(Ge=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`rootVolumeSize`,children:`Volume Size (GiB)`})}),t[72]=Ge):Ge=t[72];let Ke=!!h.rootVolumeSize,G;t[73]===m?G=t[74]:(G=m(`rootVolumeSize`,{setValueAs:ye}),t[73]=m,t[74]=G);let K;t[75]!==Ke||t[76]!==G?(K=(0,f.jsx)(se,{"aria-invalid":Ke,id:`rootVolumeSize`,max:_e,min:ge,placeholder:`use AMI default`,type:`number`,...G}),t[75]=Ke,t[76]=G,t[77]=K):K=t[77];let q;t[78]===h.rootVolumeSize?q=t[79]:(q=(0,f.jsx)(de,{errors:[h.rootVolumeSize]}),t[78]=h.rootVolumeSize,t[79]=q);let J;t[80]!==K||t[81]!==q?(J=(0,f.jsxs)(u,{children:[Ge,K,q]}),t[80]=K,t[81]=q,t[82]=J):J=t[82];let qe;t[83]===Symbol.for(`react.memo_cache_sentinel`)?(qe=(0,f.jsx)(d,{children:(0,f.jsx)(`label`,{htmlFor:`rootVolumeType`,children:`Volume Type`})}),t[83]=qe):qe=t[83];let Y;t[84]===h.rootVolumeType?Y=t[85]:(Y=e=>{let{field:t}=e;return(0,f.jsxs)(s,{onValueChange:e=>t.onChange(e),value:t.value??he,children:[(0,f.jsx)(o,{"aria-invalid":!!h.rootVolumeType,className:`w-full`,id:`rootVolumeType`,children:(0,f.jsx)(r,{})}),(0,f.jsx)(a,{children:oe.map(ve)})]})},t[84]=h.rootVolumeType,t[85]=Y);let X;t[86]!==p||t[87]!==Y?(X=(0,f.jsx)(l,{control:p,name:`rootVolumeType`,render:Y}),t[86]=p,t[87]=Y,t[88]=X):X=t[88];let Z;t[89]===h.rootVolumeType?Z=t[90]:(Z=(0,f.jsx)(de,{errors:[h.rootVolumeType]}),t[89]=h.rootVolumeType,t[90]=Z);let Q;t[91]!==X||t[92]!==Z?(Q=(0,f.jsxs)(u,{children:[qe,X,Z]}),t[91]=X,t[92]=Z,t[93]=Q):Q=t[93];let $;t[94]!==J||t[95]!==Q?($=(0,f.jsxs)(ue,{children:[We,(0,f.jsxs)(ce,{className:`mt-3 space-y-4 rounded-md border border-border p-4`,children:[J,Q]})]}),t[94]=J,t[95]=Q,t[96]=$):$=t[96];let Je;return t[97]!==A||t[98]!==P||t[99]!==I||t[100]!==R||t[101]!==H||t[102]!==W||t[103]!==$?(Je=(0,f.jsxs)(f.Fragment,{children:[A,P,I,R,H,W,$]}),t[97]=A,t[98]=P,t[99]=I,t[100]=R,t[101]=H,t[102]=W,t[103]=$,t[104]=Je):Je=t[104],Je}function ve(e){return(0,f.jsx)(i,{value:e,children:e},e)}function ye(e){return e===``||e==null?void 0:Number(e)}function be(e){return(0,f.jsx)(i,{value:e.SubnetId??``,children:e.SubnetId},e.SubnetId)}function xe(e){return(0,f.jsx)(i,{value:e.KeyName??``,children:e.KeyName},e.KeyPairId)}function Se(e){return(0,f.jsx)(i,{value:e,children:e},e)}function Ce(e){return(0,f.jsxs)(i,{value:e.ImageId??``,children:[e.Name??`Unnamed`,` (`,e.Architecture,`)`]},e.ImageId)}function we(e){return!!e}function Te(e){return e.InstanceType}export{p as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/list-clusters.js b/spinifex/services/spinifexui/frontend/dist/assets/list-clusters.js index 89fbbc15e..038ae8a04 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/list-clusters.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/list-clusters.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./QueryClientProvider.js";import{t as a}from"./link.js";import{t as o}from"./useNavigate.js";import{t as s}from"./button.js";import{o as c}from"./ec2.js";import{n as l}from"./ecs.js";import{r as u,t as d}from"./ecs2.js";import{Ln as f,Xn as p,dn as m,mn as h,rn as g,sn as _}from"./index.js";import{a as v,i as y,l as b,n as x,o as S,r as C,s as w,t as T}from"./alert-dialog.js";import{t as E}from"./delete-confirmation-dialog.js";import{t as D}from"./state-badge.js";import{t as O}from"./system-managed.js";import{t as k}from"./system-image-required.js";import{t as A}from"./ecs-section-nav.js";var j=r(),M=t(n(),1),N=e();function P(e){let t=(0,j.c)(32),{open:n,onOpenChange:r}=e,i=d(),[a,o]=(0,M.useState)(``),s;t[0]!==i||t[1]!==r?(s=function(e){e||(o(``),i.reset()),r(e)},t[0]=i,t[1]=r,t[2]=s):s=t[2];let c=s,l;t[3]!==i||t[4]!==c||t[5]!==a?(l=async function(){try{await i.mutateAsync(a.trim()),c(!1)}catch{}},t[3]=i,t[4]=c,t[5]=a,t[6]=l):l=t[6];let u=l,p;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,N.jsxs)(w,{children:[(0,N.jsx)(b,{children:`Create Cluster`}),(0,N.jsx)(v,{children:`A cluster groups the services, tasks, and container instances that run on it.`})]}),t[7]=p):p=t[7];let m;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(m=(0,N.jsx)(_,{children:(0,N.jsx)(`label`,{htmlFor:`clusterName`,children:`Name`})}),t[8]=m):m=t[8];let h;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(h=e=>o(e.target.value),t[9]=h):h=t[9];let E;t[10]===a?E=t[11]:(E=(0,N.jsxs)(g,{children:[m,(0,N.jsx)(f,{id:`clusterName`,onChange:h,placeholder:`my-cluster`,value:a})]}),t[10]=a,t[11]=E);let D;t[12]===i.error?D=t[13]:(D=i.error&&(0,N.jsx)(`p`,{className:`text-sm text-destructive`,children:i.error.message}),t[12]=i.error,t[13]=D);let O;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,N.jsx)(C,{children:`Cancel`}),t[14]=O):O=t[14];let k;t[15]!==i.isPending||t[16]!==a?(k=i.isPending||!a.trim(),t[15]=i.isPending,t[16]=a,t[17]=k):k=t[17];let A;t[18]===u?A=t[19]:(A=e=>{e.preventDefault(),u()},t[18]=u,t[19]=A);let P=i.isPending?`Creating…`:`Create Cluster`,F;t[20]!==A||t[21]!==P||t[22]!==k?(F=(0,N.jsxs)(S,{children:[O,(0,N.jsx)(x,{disabled:k,onClick:A,children:P})]}),t[20]=A,t[21]=P,t[22]=k,t[23]=F):F=t[23];let I;t[24]!==F||t[25]!==E||t[26]!==D?(I=(0,N.jsxs)(y,{children:[p,E,D,F]}),t[24]=F,t[25]=E,t[26]=D,t[27]=I):I=t[27];let L;return t[28]!==c||t[29]!==n||t[30]!==I?(L=(0,N.jsx)(T,{onOpenChange:c,open:n,children:I}),t[28]=c,t[29]=n,t[30]=I,t[31]=L):L=t[31],L}function F(){let e=o(),t=i(),{data:n}=p(l),{data:r}=p(c),d=u(),[f,g]=(0,M.useState)(!1),[_,v]=(0,M.useState)(null),[y,b]=(0,M.useState)(!1),x=(r.Images??[]).some(O);async function S(){b(!0);try{await t.invalidateQueries({queryKey:c.queryKey})}finally{b(!1)}}function C(){_&&d.mutate(_,{onSuccess:()=>v(null)})}return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(m,{actions:(0,N.jsx)(s,{disabled:!x,onClick:()=>g(!0),children:`Create Cluster`}),title:`Clusters`}),(0,N.jsx)(A,{}),!x&&(0,N.jsx)(k,{className:`mb-6`,description:`ECS clusters need a Spinifex-managed node image (containerd + ecs-agent) to launch container instances. Import it before creating a cluster.`,importCommand:`spx admin images import --name spinifex-ecs-node`,isRechecking:y,onRecheck:S,title:`ECS system image not found`}),d.isError&&(0,N.jsx)(h,{error:d.error instanceof Error?d.error:void 0,msg:`Failed to delete cluster.`}),n.length>0?(0,N.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,N.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,N.jsx)(`thead`,{children:(0,N.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Services`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Running Tasks`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Instances`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,N.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,N.jsx)(`tbody`,{children:n.map(t=>{if(!t.clusterName)return null;let n=t.clusterName;return(0,N.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:async()=>await e({to:`/ecs/list-clusters/$clusterName`,params:{clusterName:n}}),children:[(0,N.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,N.jsx)(a,{className:`text-primary hover:underline`,onClick:e=>e.stopPropagation(),params:{clusterName:n},to:`/ecs/list-clusters/$clusterName`,children:n})}),(0,N.jsx)(`td`,{className:`px-4 py-2`,children:(0,N.jsx)(D,{state:t.status})}),(0,N.jsx)(`td`,{className:`px-4 py-2`,children:t.activeServicesCount??0}),(0,N.jsx)(`td`,{className:`px-4 py-2`,children:t.runningTasksCount??0}),(0,N.jsx)(`td`,{className:`px-4 py-2`,children:t.registeredContainerInstancesCount??0}),(0,N.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,N.jsx)(s,{onClick:e=>{e.stopPropagation(),v(n)},size:`sm`,variant:`destructive`,children:`Delete`})})]},n)})})]})}):(0,N.jsx)(`p`,{className:`text-muted-foreground`,children:`No ECS clusters found.`}),(0,N.jsx)(P,{onOpenChange:g,open:f}),(0,N.jsx)(E,{description:`This permanently deletes cluster "${_}" and force-stops every task it holds. This cannot be undone.`,isPending:d.isPending,onConfirm:C,onOpenChange:e=>!e&&v(null),open:_!==null,title:`Delete cluster`})]})}var I=F;export{I as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./QueryClientProvider.js";import{t as a}from"./link.js";import{t as o}from"./useNavigate.js";import{t as s}from"./button.js";import{o as c}from"./ec2.js";import{n as l}from"./ecs.js";import{r as u,t as d}from"./ecs2.js";import{$n as f,B as p,F as m,I as h,L as g,R as _,Rn as v,Sn as y,U as b,V as x,dn as S,hn as C,yn as w,z as T}from"./index.js";import{t as E}from"./delete-confirmation-dialog.js";import{t as D}from"./state-badge.js";import{t as O}from"./system-managed.js";import{t as k}from"./system-image-required.js";import{t as A}from"./ecs-section-nav.js";var j=r(),M=t(n(),1),N=e();function P(e){let t=(0,j.c)(32),{open:n,onOpenChange:r}=e,i=d(),[a,o]=(0,M.useState)(``),s;t[0]!==i||t[1]!==r?(s=function(e){e||(o(``),i.reset()),r(e)},t[0]=i,t[1]=r,t[2]=s):s=t[2];let c=s,l;t[3]!==i||t[4]!==c||t[5]!==a?(l=async function(){try{await i.mutateAsync(a.trim()),c(!1)}catch{}},t[3]=i,t[4]=c,t[5]=a,t[6]=l):l=t[6];let u=l,f;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(f=(0,N.jsxs)(x,{children:[(0,N.jsx)(b,{children:`Create Cluster`}),(0,N.jsx)(T,{children:`A cluster groups the services, tasks, and container instances that run on it.`})]}),t[7]=f):f=t[7];let y;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(y=(0,N.jsx)(C,{children:(0,N.jsx)(`label`,{htmlFor:`clusterName`,children:`Name`})}),t[8]=y):y=t[8];let w;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(w=e=>o(e.target.value),t[9]=w):w=t[9];let E;t[10]===a?E=t[11]:(E=(0,N.jsxs)(S,{children:[y,(0,N.jsx)(v,{id:`clusterName`,onChange:w,placeholder:`my-cluster`,value:a})]}),t[10]=a,t[11]=E);let D;t[12]===i.error?D=t[13]:(D=i.error&&(0,N.jsx)(`p`,{className:`text-sm text-destructive`,children:i.error.message}),t[12]=i.error,t[13]=D);let O;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,N.jsx)(g,{children:`Cancel`}),t[14]=O):O=t[14];let k;t[15]!==i.isPending||t[16]!==a?(k=i.isPending||!a.trim(),t[15]=i.isPending,t[16]=a,t[17]=k):k=t[17];let A;t[18]===u?A=t[19]:(A=e=>{e.preventDefault(),u()},t[18]=u,t[19]=A);let P=i.isPending?`Creating…`:`Create Cluster`,F;t[20]!==A||t[21]!==P||t[22]!==k?(F=(0,N.jsxs)(p,{children:[O,(0,N.jsx)(h,{disabled:k,onClick:A,children:P})]}),t[20]=A,t[21]=P,t[22]=k,t[23]=F):F=t[23];let I;t[24]!==F||t[25]!==E||t[26]!==D?(I=(0,N.jsxs)(_,{children:[f,E,D,F]}),t[24]=F,t[25]=E,t[26]=D,t[27]=I):I=t[27];let L;return t[28]!==c||t[29]!==n||t[30]!==I?(L=(0,N.jsx)(m,{onOpenChange:c,open:n,children:I}),t[28]=c,t[29]=n,t[30]=I,t[31]=L):L=t[31],L}function F(){let e=o(),t=i(),{data:n}=f(l),{data:r}=f(c),d=u(),[p,m]=(0,M.useState)(!1),[h,g]=(0,M.useState)(null),[_,v]=(0,M.useState)(!1),b=(r.Images??[]).some(O);async function x(){v(!0);try{await t.invalidateQueries({queryKey:c.queryKey})}finally{v(!1)}}function S(){h&&d.mutate(h,{onSuccess:()=>g(null)})}return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(w,{actions:(0,N.jsx)(s,{disabled:!b,onClick:()=>m(!0),children:`Create Cluster`}),title:`Clusters`}),(0,N.jsx)(A,{}),!b&&(0,N.jsx)(k,{className:`mb-6`,description:`ECS clusters need a Spinifex-managed node image (containerd + ecs-agent) to launch container instances. Import it before creating a cluster.`,importCommand:`spx admin images import --name spinifex-ecs-node`,isRechecking:_,onRecheck:x,title:`ECS system image not found`}),d.isError&&(0,N.jsx)(y,{error:d.error instanceof Error?d.error:void 0,msg:`Failed to delete cluster.`}),n.length>0?(0,N.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,N.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,N.jsx)(`thead`,{children:(0,N.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Status`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Services`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Running Tasks`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Instances`}),(0,N.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,N.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,N.jsx)(`tbody`,{children:n.map(t=>{if(!t.clusterName)return null;let n=t.clusterName;return(0,N.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:async()=>await e({to:`/ecs/list-clusters/$clusterName`,params:{clusterName:n}}),children:[(0,N.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,N.jsx)(a,{className:`text-primary hover:underline`,onClick:e=>e.stopPropagation(),params:{clusterName:n},to:`/ecs/list-clusters/$clusterName`,children:n})}),(0,N.jsx)(`td`,{className:`px-4 py-2`,children:(0,N.jsx)(D,{state:t.status})}),(0,N.jsx)(`td`,{className:`px-4 py-2`,children:t.activeServicesCount??0}),(0,N.jsx)(`td`,{className:`px-4 py-2`,children:t.runningTasksCount??0}),(0,N.jsx)(`td`,{className:`px-4 py-2`,children:t.registeredContainerInstancesCount??0}),(0,N.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,N.jsx)(s,{onClick:e=>{e.stopPropagation(),g(n)},size:`sm`,variant:`destructive`,children:`Delete`})})]},n)})})]})}):(0,N.jsx)(`p`,{className:`text-muted-foreground`,children:`No ECS clusters found.`}),(0,N.jsx)(P,{onOpenChange:m,open:p}),(0,N.jsx)(E,{description:`This permanently deletes cluster "${h}" and force-stops every task it holds. This cannot be undone.`,isPending:d.isPending,onConfirm:S,onOpenChange:e=>!e&&g(null),open:h!==null,title:`Delete cluster`})]})}var I=F;export{I as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/list-clusters2.js b/spinifex/services/spinifexui/frontend/dist/assets/list-clusters2.js index f96297a8e..336f5bd5a 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/list-clusters2.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/list-clusters2.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{c as i}from"./eks2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.clusters){let i=(t.clusters??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/eks/create-cluster`,children:(0,l.jsx)(r,{children:`Create Cluster`})}),title:`Clusters`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No EKS clusters found.`})]}),e[0]=t.clusters,e[1]=s}else s=e[1];return s}function d(e){return(0,l.jsx)(s,{params:{clusterName:e},title:e,to:`/eks/list-clusters/$clusterName`},e)}function f(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())}var p=u;export{p as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{c as i}from"./eks2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.clusters){let i=(t.clusters??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/eks/create-cluster`,children:(0,l.jsx)(r,{children:`Create Cluster`})}),title:`Clusters`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No EKS clusters found.`})]}),e[0]=t.clusters,e[1]=s}else s=e[1];return s}function d(e){return(0,l.jsx)(s,{params:{clusterName:e},title:e,to:`/eks/list-clusters/$clusterName`},e)}function f(e,t){return e.toLowerCase().localeCompare(t.toLowerCase())}var p=u;export{p as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/list-groups.js b/spinifex/services/spinifexui/frontend/dist/assets/list-groups.js index d99df38a6..79d5735fe 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/list-groups.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/list-groups.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{l as i}from"./iam2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.Groups){let i=(t.Groups??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-group`,children:(0,l.jsx)(r,{children:`Create Group`})}),title:`Groups`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No IAM groups found.`})]}),e[0]=t.Groups,e[1]=s}else s=e[1];return s}function d(e){return e.GroupName?(0,l.jsx)(s,{params:{groupName:e.GroupName},subtitle:e.Arn??``,title:e.GroupName,to:`/iam/list-groups/$groupName`},e.GroupName):null}function f(e,t){let n=e.GroupName?.toLowerCase()??``,r=t.GroupName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{l as i}from"./iam2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.Groups){let i=(t.Groups??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-group`,children:(0,l.jsx)(r,{children:`Create Group`})}),title:`Groups`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No IAM groups found.`})]}),e[0]=t.Groups,e[1]=s}else s=e[1];return s}function d(e){return e.GroupName?(0,l.jsx)(s,{params:{groupName:e.GroupName},subtitle:e.Arn??``,title:e.GroupName,to:`/iam/list-groups/$groupName`},e.GroupName):null}function f(e,t){let n=e.GroupName?.toLowerCase()??``,r=t.GroupName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/list-instance-profiles.js b/spinifex/services/spinifexui/frontend/dist/assets/list-instance-profiles.js index 7e355753e..bdcd57f4c 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/list-instance-profiles.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/list-instance-profiles.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{f as i}from"./iam2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.InstanceProfiles){let i=(t.InstanceProfiles??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-instance-profile`,children:(0,l.jsx)(r,{children:`Create Instance Profile`})}),title:`Instance Profiles`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No instance profiles found.`})]}),e[0]=t.InstanceProfiles,e[1]=s}else s=e[1];return s}function d(e){return e.InstanceProfileName?(0,l.jsx)(s,{params:{instanceProfileName:e.InstanceProfileName},subtitle:e.Arn??``,title:e.InstanceProfileName,to:`/iam/list-instance-profiles/$instanceProfileName`},e.InstanceProfileName):null}function f(e,t){let n=e.InstanceProfileName?.toLowerCase()??``,r=t.InstanceProfileName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{f as i}from"./iam2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.InstanceProfiles){let i=(t.InstanceProfiles??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-instance-profile`,children:(0,l.jsx)(r,{children:`Create Instance Profile`})}),title:`Instance Profiles`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No instance profiles found.`})]}),e[0]=t.InstanceProfiles,e[1]=s}else s=e[1];return s}function d(e){return e.InstanceProfileName?(0,l.jsx)(s,{params:{instanceProfileName:e.InstanceProfileName},subtitle:e.Arn??``,title:e.InstanceProfileName,to:`/iam/list-instance-profiles/$instanceProfileName`},e.InstanceProfileName):null}function f(e,t){let n=e.InstanceProfileName?.toLowerCase()??``,r=t.InstanceProfileName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/list-policies.js b/spinifex/services/spinifexui/frontend/dist/assets/list-policies.js index fd72a9bd5..d0a140fcf 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/list-policies.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/list-policies.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{p as i}from"./iam2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.Policies){let i=(t.Policies??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-policy`,children:(0,l.jsx)(r,{children:`Create Policy`})}),title:`Policies`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No IAM policies found.`})]}),e[0]=t.Policies,e[1]=s}else s=e[1];return s}function d(e){return e.Arn?(0,l.jsx)(s,{params:{policyArn:encodeURIComponent(e.Arn)},subtitle:e.Arn??``,title:e.PolicyName??``,to:`/iam/list-policies/$policyArn`},e.Arn):null}function f(e,t){let n=e.PolicyName?.toLowerCase()??``,r=t.PolicyName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{p as i}from"./iam2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.Policies){let i=(t.Policies??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-policy`,children:(0,l.jsx)(r,{children:`Create Policy`})}),title:`Policies`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No IAM policies found.`})]}),e[0]=t.Policies,e[1]=s}else s=e[1];return s}function d(e){return e.Arn?(0,l.jsx)(s,{params:{policyArn:encodeURIComponent(e.Arn)},subtitle:e.Arn??``,title:e.PolicyName??``,to:`/iam/list-policies/$policyArn`},e.Arn):null}function f(e,t){let n=e.PolicyName?.toLowerCase()??``,r=t.PolicyName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/list-repositories.js b/spinifex/services/spinifexui/frontend/dist/assets/list-repositories.js index 7fa480f72..40e169c5d 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/list-repositories.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/list-repositories.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{Xt as o}from"./auth.js";import{t as s}from"./button.js";import{n as c}from"./ecr.js";import{i as l,n as u}from"./ecr2.js";import{Ln as d,Xn as f,dn as p,rn as m,sn as h}from"./index.js";import{a as g,i as _,l as v,n as y,o as b,r as x,s as S,t as C}from"./alert-dialog.js";var w=r(),T=t(n(),1),E=e();function D(e){let t=(0,w.c)(32),{open:n,onOpenChange:r}=e,i=u(),[a,o]=(0,T.useState)(``),s;t[0]!==i||t[1]!==r?(s=function(e){e||(o(``),i.reset()),r(e)},t[0]=i,t[1]=r,t[2]=s):s=t[2];let c=s,l;t[3]!==i||t[4]!==c||t[5]!==a?(l=async function(){try{await i.mutateAsync(a.trim()),c(!1)}catch{}},t[3]=i,t[4]=c,t[5]=a,t[6]=l):l=t[6];let f=l,p;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,E.jsxs)(S,{children:[(0,E.jsx)(v,{children:`Create Repository`}),(0,E.jsx)(g,{children:`Repository names may include namespaces, e.g. team/app.`})]}),t[7]=p):p=t[7];let D;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,E.jsx)(h,{children:(0,E.jsx)(`label`,{htmlFor:`repositoryName`,children:`Name`})}),t[8]=D):D=t[8];let O;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(O=e=>o(e.target.value),t[9]=O):O=t[9];let k;t[10]===a?k=t[11]:(k=(0,E.jsxs)(m,{children:[D,(0,E.jsx)(d,{id:`repositoryName`,onChange:O,placeholder:`team/app`,value:a})]}),t[10]=a,t[11]=k);let A;t[12]===i.error?A=t[13]:(A=i.error&&(0,E.jsx)(`p`,{className:`text-sm text-destructive`,children:i.error.message}),t[12]=i.error,t[13]=A);let j;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,E.jsx)(x,{children:`Cancel`}),t[14]=j):j=t[14];let M;t[15]!==i.isPending||t[16]!==a?(M=i.isPending||!a.trim(),t[15]=i.isPending,t[16]=a,t[17]=M):M=t[17];let N;t[18]===f?N=t[19]:(N=e=>{e.preventDefault(),f()},t[18]=f,t[19]=N);let P=i.isPending?`Creating…`:`Create Repository`,F;t[20]!==N||t[21]!==P||t[22]!==M?(F=(0,E.jsxs)(b,{children:[j,(0,E.jsx)(y,{disabled:M,onClick:N,children:P})]}),t[20]=N,t[21]=P,t[22]=M,t[23]=F):F=t[23];let I;t[24]!==F||t[25]!==k||t[26]!==A?(I=(0,E.jsxs)(_,{children:[p,k,A,F]}),t[24]=F,t[25]=k,t[26]=A,t[27]=I):I=t[27];let L;return t[28]!==c||t[29]!==n||t[30]!==I?(L=(0,E.jsx)(C,{onOpenChange:c,open:n,children:I}),t[28]=c,t[29]=n,t[30]=I,t[31]=L):L=t[31],L}function O(){let e=(0,w.c)(35),t=a(),{data:n}=f(c),r=l(),[u,d]=(0,T.useState)(!1),[m,h]=(0,T.useState)(null),O;e[0]===n.repositories?O=e[1]:(O=n.repositories??[],e[0]=n.repositories,e[1]=O);let A=O,j;e[2]!==r||e[3]!==m?(j=async function(){if(m)try{await r.mutateAsync(m),h(null)}catch{}},e[2]=r,e[3]=m,e[4]=j):j=e[4];let M=j,N;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,E.jsx)(p,{actions:(0,E.jsx)(s,{onClick:()=>d(!0),children:`Create Repository`}),title:`Repositories`}),e[5]=N):N=e[5];let P;e[6]!==t||e[7]!==A?(P=A.length>0?(0,E.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,E.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,E.jsx)(`thead`,{children:(0,E.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`URI`}),(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Tag Mutability`}),(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Created`}),(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,E.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,E.jsx)(`tbody`,{children:A.map(e=>{if(!e.repositoryName)return null;let n=e.repositoryName;return(0,E.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:async()=>await t({to:`/ecr/list-repositories/$id`,params:{id:encodeURIComponent(n)}}),children:[(0,E.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,E.jsx)(i,{className:`text-primary hover:underline`,onClick:k,params:{id:encodeURIComponent(n)},to:`/ecr/list-repositories/$id`,children:n})}),(0,E.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.repositoryUri??``}),(0,E.jsx)(`td`,{className:`px-4 py-2`,children:e.imageTagMutability??``}),(0,E.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:o(e.createdAt)}),(0,E.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,E.jsx)(s,{onClick:e=>{e.stopPropagation(),h(n)},size:`sm`,variant:`destructive`,children:`Delete`})})]},n)})})]})}):(0,E.jsx)(`p`,{className:`text-muted-foreground`,children:`No repositories found.`}),e[6]=t,e[7]=A,e[8]=P):P=e[8];let F;e[9]===u?F=e[10]:(F=(0,E.jsx)(D,{onOpenChange:d,open:u}),e[9]=u,e[10]=F);let I;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(I=e=>!e&&h(null),e[11]=I):I=e[11];let L=m!==null,R;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,E.jsx)(v,{children:`Delete repository?`}),e[12]=R):R=e[12];let z;e[13]===m?z=e[14]:(z=(0,E.jsxs)(S,{children:[R,(0,E.jsxs)(g,{children:[`This permanently deletes `,m,` and every image it holds. This cannot be undone.`]})]}),e[13]=m,e[14]=z);let B;e[15]===r.error?B=e[16]:(B=r.error&&(0,E.jsx)(`p`,{className:`text-sm text-destructive`,children:r.error.message}),e[15]=r.error,e[16]=B);let V;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,E.jsx)(x,{children:`Cancel`}),e[17]=V):V=e[17];let H;e[18]===M?H=e[19]:(H=e=>{e.preventDefault(),M()},e[18]=M,e[19]=H);let U=r.isPending?`Deleting…`:`Delete`,W;e[20]!==r.isPending||e[21]!==H||e[22]!==U?(W=(0,E.jsxs)(b,{children:[V,(0,E.jsx)(y,{disabled:r.isPending,onClick:H,children:U})]}),e[20]=r.isPending,e[21]=H,e[22]=U,e[23]=W):W=e[23];let G;e[24]!==W||e[25]!==z||e[26]!==B?(G=(0,E.jsxs)(_,{children:[z,B,W]}),e[24]=W,e[25]=z,e[26]=B,e[27]=G):G=e[27];let K;e[28]!==G||e[29]!==L?(K=(0,E.jsx)(C,{onOpenChange:I,open:L,children:G}),e[28]=G,e[29]=L,e[30]=K):K=e[30];let q;return e[31]!==K||e[32]!==P||e[33]!==F?(q=(0,E.jsxs)(E.Fragment,{children:[N,P,F,K]}),e[31]=K,e[32]=P,e[33]=F,e[34]=q):q=e[34],q}function k(e){return e.stopPropagation()}var A=O;export{A as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./useNavigate.js";import{Xt as o}from"./auth.js";import{t as s}from"./button.js";import{n as c}from"./ecr.js";import{i as l,n as u}from"./ecr2.js";import{$n as d,B as f,F as p,I as m,L as h,R as g,Rn as _,U as v,V as y,dn as b,hn as x,yn as S,z as C}from"./index.js";var w=r(),T=t(n(),1),E=e();function D(e){let t=(0,w.c)(32),{open:n,onOpenChange:r}=e,i=u(),[a,o]=(0,T.useState)(``),s;t[0]!==i||t[1]!==r?(s=function(e){e||(o(``),i.reset()),r(e)},t[0]=i,t[1]=r,t[2]=s):s=t[2];let c=s,l;t[3]!==i||t[4]!==c||t[5]!==a?(l=async function(){try{await i.mutateAsync(a.trim()),c(!1)}catch{}},t[3]=i,t[4]=c,t[5]=a,t[6]=l):l=t[6];let d=l,S;t[7]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,E.jsxs)(y,{children:[(0,E.jsx)(v,{children:`Create Repository`}),(0,E.jsx)(C,{children:`Repository names may include namespaces, e.g. team/app.`})]}),t[7]=S):S=t[7];let D;t[8]===Symbol.for(`react.memo_cache_sentinel`)?(D=(0,E.jsx)(x,{children:(0,E.jsx)(`label`,{htmlFor:`repositoryName`,children:`Name`})}),t[8]=D):D=t[8];let O;t[9]===Symbol.for(`react.memo_cache_sentinel`)?(O=e=>o(e.target.value),t[9]=O):O=t[9];let k;t[10]===a?k=t[11]:(k=(0,E.jsxs)(b,{children:[D,(0,E.jsx)(_,{id:`repositoryName`,onChange:O,placeholder:`team/app`,value:a})]}),t[10]=a,t[11]=k);let A;t[12]===i.error?A=t[13]:(A=i.error&&(0,E.jsx)(`p`,{className:`text-sm text-destructive`,children:i.error.message}),t[12]=i.error,t[13]=A);let j;t[14]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,E.jsx)(h,{children:`Cancel`}),t[14]=j):j=t[14];let M;t[15]!==i.isPending||t[16]!==a?(M=i.isPending||!a.trim(),t[15]=i.isPending,t[16]=a,t[17]=M):M=t[17];let N;t[18]===d?N=t[19]:(N=e=>{e.preventDefault(),d()},t[18]=d,t[19]=N);let P=i.isPending?`Creating…`:`Create Repository`,F;t[20]!==N||t[21]!==P||t[22]!==M?(F=(0,E.jsxs)(f,{children:[j,(0,E.jsx)(m,{disabled:M,onClick:N,children:P})]}),t[20]=N,t[21]=P,t[22]=M,t[23]=F):F=t[23];let I;t[24]!==F||t[25]!==k||t[26]!==A?(I=(0,E.jsxs)(g,{children:[S,k,A,F]}),t[24]=F,t[25]=k,t[26]=A,t[27]=I):I=t[27];let L;return t[28]!==c||t[29]!==n||t[30]!==I?(L=(0,E.jsx)(p,{onOpenChange:c,open:n,children:I}),t[28]=c,t[29]=n,t[30]=I,t[31]=L):L=t[31],L}function O(){let e=(0,w.c)(35),t=a(),{data:n}=d(c),r=l(),[u,_]=(0,T.useState)(!1),[b,x]=(0,T.useState)(null),O;e[0]===n.repositories?O=e[1]:(O=n.repositories??[],e[0]=n.repositories,e[1]=O);let A=O,j;e[2]!==r||e[3]!==b?(j=async function(){if(b)try{await r.mutateAsync(b),x(null)}catch{}},e[2]=r,e[3]=b,e[4]=j):j=e[4];let M=j,N;e[5]===Symbol.for(`react.memo_cache_sentinel`)?(N=(0,E.jsx)(S,{actions:(0,E.jsx)(s,{onClick:()=>_(!0),children:`Create Repository`}),title:`Repositories`}),e[5]=N):N=e[5];let P;e[6]!==t||e[7]!==A?(P=A.length>0?(0,E.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,E.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,E.jsx)(`thead`,{children:(0,E.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Name`}),(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`URI`}),(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Tag Mutability`}),(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Created`}),(0,E.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,E.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,E.jsx)(`tbody`,{children:A.map(e=>{if(!e.repositoryName)return null;let n=e.repositoryName;return(0,E.jsxs)(`tr`,{className:`cursor-pointer border-b transition-colors last:border-0 hover:bg-accent`,onClick:async()=>await t({to:`/ecr/list-repositories/$id`,params:{id:encodeURIComponent(n)}}),children:[(0,E.jsx)(`td`,{className:`px-4 py-2 font-medium`,children:(0,E.jsx)(i,{className:`text-primary hover:underline`,onClick:k,params:{id:encodeURIComponent(n)},to:`/ecr/list-repositories/$id`,children:n})}),(0,E.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:e.repositoryUri??``}),(0,E.jsx)(`td`,{className:`px-4 py-2`,children:e.imageTagMutability??``}),(0,E.jsx)(`td`,{className:`px-4 py-2 text-xs`,children:o(e.createdAt)}),(0,E.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,E.jsx)(s,{onClick:e=>{e.stopPropagation(),x(n)},size:`sm`,variant:`destructive`,children:`Delete`})})]},n)})})]})}):(0,E.jsx)(`p`,{className:`text-muted-foreground`,children:`No repositories found.`}),e[6]=t,e[7]=A,e[8]=P):P=e[8];let F;e[9]===u?F=e[10]:(F=(0,E.jsx)(D,{onOpenChange:_,open:u}),e[9]=u,e[10]=F);let I;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(I=e=>!e&&x(null),e[11]=I):I=e[11];let L=b!==null,R;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,E.jsx)(v,{children:`Delete repository?`}),e[12]=R):R=e[12];let z;e[13]===b?z=e[14]:(z=(0,E.jsxs)(y,{children:[R,(0,E.jsxs)(C,{children:[`This permanently deletes `,b,` and every image it holds. This cannot be undone.`]})]}),e[13]=b,e[14]=z);let B;e[15]===r.error?B=e[16]:(B=r.error&&(0,E.jsx)(`p`,{className:`text-sm text-destructive`,children:r.error.message}),e[15]=r.error,e[16]=B);let V;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,E.jsx)(h,{children:`Cancel`}),e[17]=V):V=e[17];let H;e[18]===M?H=e[19]:(H=e=>{e.preventDefault(),M()},e[18]=M,e[19]=H);let U=r.isPending?`Deleting…`:`Delete`,W;e[20]!==r.isPending||e[21]!==H||e[22]!==U?(W=(0,E.jsxs)(f,{children:[V,(0,E.jsx)(m,{disabled:r.isPending,onClick:H,children:U})]}),e[20]=r.isPending,e[21]=H,e[22]=U,e[23]=W):W=e[23];let G;e[24]!==W||e[25]!==z||e[26]!==B?(G=(0,E.jsxs)(g,{children:[z,B,W]}),e[24]=W,e[25]=z,e[26]=B,e[27]=G):G=e[27];let K;e[28]!==G||e[29]!==L?(K=(0,E.jsx)(p,{onOpenChange:I,open:L,children:G}),e[28]=G,e[29]=L,e[30]=K):K=e[30];let q;return e[31]!==K||e[32]!==P||e[33]!==F?(q=(0,E.jsxs)(E.Fragment,{children:[N,P,F,K]}),e[31]=K,e[32]=P,e[33]=F,e[34]=q):q=e[34],q}function k(e){return e.stopPropagation()}var A=O;export{A as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/list-roles.js b/spinifex/services/spinifexui/frontend/dist/assets/list-roles.js index c92c0f1a6..d908aa6db 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/list-roles.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/list-roles.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{y as i}from"./iam2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.Roles){let i=(t.Roles??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-role`,children:(0,l.jsx)(r,{children:`Create Role`})}),title:`Roles`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No IAM roles found.`})]}),e[0]=t.Roles,e[1]=s}else s=e[1];return s}function d(e){return e.RoleName?(0,l.jsx)(s,{params:{roleName:e.RoleName},subtitle:e.Arn??``,title:e.RoleName,to:`/iam/list-roles/$roleName`},e.RoleName):null}function f(e,t){let n=e.RoleName?.toLowerCase()??``,r=t.RoleName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{y as i}from"./iam2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.Roles){let i=(t.Roles??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-role`,children:(0,l.jsx)(r,{children:`Create Role`})}),title:`Roles`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No IAM roles found.`})]}),e[0]=t.Roles,e[1]=s}else s=e[1];return s}function d(e){return e.RoleName?(0,l.jsx)(s,{params:{roleName:e.RoleName},subtitle:e.Arn??``,title:e.RoleName,to:`/iam/list-roles/$roleName`},e.RoleName):null}function f(e,t){let n=e.RoleName?.toLowerCase()??``,r=t.RoleName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/list-users.js b/spinifex/services/spinifexui/frontend/dist/assets/list-users.js index 8f54e134d..720a4a6c3 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/list-users.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/list-users.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{C as i}from"./iam2.js";import{Xn as a,dn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.Users){let i=(t.Users??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-user`,children:(0,l.jsx)(r,{children:`Create User`})}),title:`Users`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No IAM users found.`})]}),e[0]=t.Users,e[1]=s}else s=e[1];return s}function d(e){return e.UserName?(0,l.jsx)(s,{params:{userName:e.UserName},subtitle:e.UserId??``,title:e.UserName,to:`/iam/list-users/$userName`},e.UserName):null}function f(e,t){let n=e.UserName?.toLowerCase()??``,r=t.UserName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{t as r}from"./button.js";import{C as i}from"./iam2.js";import{$n as a,yn as o}from"./index.js";import{t as s}from"./list-card.js";var c=t(),l=e();function u(){let e=(0,c.c)(3),{data:t}=a(i),s;if(e[0]!==t.Users){let i=(t.Users??[]).toSorted(f),a;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,l.jsx)(o,{actions:(0,l.jsx)(n,{to:`/iam/create-user`,children:(0,l.jsx)(r,{children:`Create User`})}),title:`Users`}),e[2]=a):a=e[2],s=(0,l.jsxs)(l.Fragment,{children:[a,i.length>0?(0,l.jsx)(`div`,{className:`space-y-4`,children:i.map(d)}):(0,l.jsx)(`p`,{className:`text-muted-foreground`,children:`No IAM users found.`})]}),e[0]=t.Users,e[1]=s}else s=e[1];return s}function d(e){return e.UserName?(0,l.jsx)(s,{params:{userName:e.UserName},subtitle:e.UserId??``,title:e.UserName,to:`/iam/list-users/$userName`},e.UserName):null}function f(e,t){let n=e.UserName?.toLowerCase()??``,r=t.UserName?.toLowerCase()??``;return n.localeCompare(r)}export{u as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/login.js b/spinifex/services/spinifexui/frontend/dist/assets/login.js index 6b974e7ce..9859d6619 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/login.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/login.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{i,t as a}from"./auth.js";import{t as o}from"./button.js";import{t as s}from"./awsClient.js";import{t as c}from"./sts.js";import{Cn as ee,Ln as l,an as u,cn as d,ln as f,on as p,rn as m,sn as h,un as g,vn as _,xn as v}from"./index.js";import{a as y,o as b,r as x,t as S}from"./card.js";var C=r(),w=t(n()),T=e();function E(){let e=(0,C.c)(49),{reason:t}=ee.useSearch(),[n,r]=(0,w.useState)(null),d;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(d={resolver:_(a)},e[0]=d):d=e[0];let{register:f,handleSubmit:g,formState:E}=v(d),{errors:O,isSubmitting:k}=E,A;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(A=async function(e){r(null);try{let t=await c(e);i(t),s(),window.location.assign(`/`)}catch{r(`Invalid credentials. Please check your Access Key ID and Secret Access Key.`)}},e[1]=A):A=e[1];let te=A,j;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,T.jsx)(y,{children:(0,T.jsx)(b,{children:`AWS Credentials`})}),e[2]=j):j=e[2];let M;e[3]!==n||e[4]!==t?(M=t===`expired`&&!n&&(0,T.jsx)(`p`,{className:`mb-4 rounded-md bg-muted p-3 text-sm text-muted-foreground`,children:`Your session is no longer valid — please sign in again.`}),e[3]=n,e[4]=t,e[5]=M):M=e[5];let N;e[6]===n?N=e[7]:(N=n&&(0,T.jsx)(`p`,{className:`mb-4 rounded-md bg-destructive/10 p-3 text-sm text-destructive`,children:n}),e[6]=n,e[7]=N);let P;e[8]===g?P=e[9]:(P=g(te),e[8]=g,e[9]=P);let F;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,T.jsx)(h,{children:(0,T.jsx)(`label`,{htmlFor:`accessKeyId`,children:`Access Key ID`})}),e[10]=F):F=e[10];let I=!!O.accessKeyId,L;e[11]===f?L=e[12]:(L=f(`accessKeyId`),e[11]=f,e[12]=L);let R;e[13]!==I||e[14]!==L?(R=(0,T.jsx)(l,{"aria-invalid":I,autoComplete:`username`,id:`accessKeyId`,placeholder:`AKIAIOSFODNN7EXAMPLE`,...L}),e[13]=I,e[14]=L,e[15]=R):R=e[15];let z;e[16]===O.accessKeyId?z=e[17]:(z=(0,T.jsx)(u,{errors:[O.accessKeyId]}),e[16]=O.accessKeyId,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,T.jsxs)(m,{children:[F,R,z]}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,T.jsx)(h,{children:(0,T.jsx)(`label`,{htmlFor:`secretAccessKey`,children:`Secret Access Key`})}),e[21]=V):V=e[21];let H=!!O.secretAccessKey,U;e[22]===f?U=e[23]:(U=f(`secretAccessKey`),e[22]=f,e[23]=U);let W;e[24]!==H||e[25]!==U?(W=(0,T.jsx)(l,{"aria-invalid":H,autoComplete:`current-password`,id:`secretAccessKey`,placeholder:`wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`,type:`password`,...U}),e[24]=H,e[25]=U,e[26]=W):W=e[26];let G;e[27]===O.secretAccessKey?G=e[28]:(G=(0,T.jsx)(u,{errors:[O.secretAccessKey]}),e[27]=O.secretAccessKey,e[28]=G);let K;e[29]!==W||e[30]!==G?(K=(0,T.jsxs)(m,{children:[V,W,G]}),e[29]=W,e[30]=G,e[31]=K):K=e[31];let q=k?`Signing in...`:`Sign In`,J;e[32]!==k||e[33]!==q?(J=(0,T.jsx)(o,{className:`w-full`,disabled:k,type:`submit`,children:q}),e[32]=k,e[33]=q,e[34]=J):J=e[34];let Y;e[35]!==B||e[36]!==K||e[37]!==J?(Y=(0,T.jsxs)(p,{children:[B,K,J]}),e[35]=B,e[36]=K,e[37]=J,e[38]=Y):Y=e[38];let X;e[39]!==Y||e[40]!==P?(X=(0,T.jsx)(`form`,{onSubmit:P,children:Y}),e[39]=Y,e[40]=P,e[41]=X):X=e[41];let Z;e[42]!==X||e[43]!==M||e[44]!==N?(Z=(0,T.jsxs)(S,{children:[j,(0,T.jsxs)(x,{children:[M,N,X]})]}),e[42]=X,e[43]=M,e[44]=N,e[45]=Z):Z=e[45];let Q;e[46]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,T.jsx)(D,{}),e[46]=Q):Q=e[46];let $;return e[47]===Z?$=e[48]:($=(0,T.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,T.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col gap-4`,children:[Z,Q]})}),e[47]=Z,e[48]=$),$}function D(){let e=(0,C.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`text-sm font-medium`,children:`Install Local Certificate Authority`}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`To avoid browser certificate warnings, download and install the Spinifex CA as a trusted root on your OS.`})]}),n=(0,T.jsx)(`a`,{className:`inline-flex h-8 w-full items-center justify-center rounded-md border border-input bg-background px-3 text-sm font-medium hover:bg-accent hover:text-accent-foreground`,download:`spinifex-ca.pem`,href:`/api/ca.pem`,children:`Download CA Certificate`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,T.jsx)(g,{className:`cursor-pointer text-xs text-muted-foreground underline-offset-4 hover:underline`,children:`Installation instructions`}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,T.jsx)(S,{className:`border-muted bg-muted/30`,children:(0,T.jsx)(x,{className:`pt-4 pb-4`,children:(0,T.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[t,n,(0,T.jsxs)(d,{children:[r,(0,T.jsx)(f,{children:(0,T.jsxs)(`div`,{className:`mt-2 flex flex-col gap-2 text-xs text-muted-foreground`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`font-medium text-foreground`,children:`macOS`}),(0,T.jsx)(`code`,{className:`mt-1 block rounded bg-muted p-2 text-[11px] break-all`,children:`sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain spinifex-ca.pem`})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`font-medium text-foreground`,children:`Windows`}),(0,T.jsx)(`p`,{children:`Double-click the file → Install Certificate → Local Machine → Trusted Root Certification Authorities`})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`font-medium text-foreground`,children:`Linux`}),(0,T.jsx)(`code`,{className:`mt-1 block rounded bg-muted p-2 text-[11px] break-all`,children:`sudo cp spinifex-ca.pem /usr/local/share/ca-certificates/spinifex-ca.crt && sudo update-ca-certificates`})]})]})})]})]})})}),e[3]=i):i=e[3],i}export{E as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{i,t as ee}from"./auth.js";import{t as a}from"./button.js";import{t as o}from"./awsClient.js";import{t as s}from"./sts.js";import{En as c,Rn as l,_n as u,dn as d,gn as f,hn as p,jn as m,kn as h,mn as g,pn as _,vn as v}from"./index.js";import{a as y,o as b,r as x,t as S}from"./card.js";var C=r(),w=t(n()),T=e();function E(){let e=(0,C.c)(49),{reason:t}=m.useSearch(),[n,r]=(0,w.useState)(null),u;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(u={resolver:c(ee)},e[0]=u):u=e[0];let{register:f,handleSubmit:v,formState:E}=h(u),{errors:O,isSubmitting:k}=E,A;e[1]===Symbol.for(`react.memo_cache_sentinel`)?(A=async function(e){r(null);try{let t=await s(e);i(t),o(),window.location.assign(`/`)}catch{r(`Invalid credentials. Please check your Access Key ID and Secret Access Key.`)}},e[1]=A):A=e[1];let te=A,j;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,T.jsx)(y,{children:(0,T.jsx)(b,{children:`AWS Credentials`})}),e[2]=j):j=e[2];let M;e[3]!==n||e[4]!==t?(M=t===`expired`&&!n&&(0,T.jsx)(`p`,{className:`mb-4 rounded-md bg-muted p-3 text-sm text-muted-foreground`,children:`Your session is no longer valid — please sign in again.`}),e[3]=n,e[4]=t,e[5]=M):M=e[5];let N;e[6]===n?N=e[7]:(N=n&&(0,T.jsx)(`p`,{className:`mb-4 rounded-md bg-destructive/10 p-3 text-sm text-destructive`,children:n}),e[6]=n,e[7]=N);let P;e[8]===v?P=e[9]:(P=v(te),e[8]=v,e[9]=P);let F;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(F=(0,T.jsx)(p,{children:(0,T.jsx)(`label`,{htmlFor:`accessKeyId`,children:`Access Key ID`})}),e[10]=F):F=e[10];let I=!!O.accessKeyId,L;e[11]===f?L=e[12]:(L=f(`accessKeyId`),e[11]=f,e[12]=L);let R;e[13]!==I||e[14]!==L?(R=(0,T.jsx)(l,{"aria-invalid":I,autoComplete:`username`,id:`accessKeyId`,placeholder:`AKIAIOSFODNN7EXAMPLE`,...L}),e[13]=I,e[14]=L,e[15]=R):R=e[15];let z;e[16]===O.accessKeyId?z=e[17]:(z=(0,T.jsx)(_,{errors:[O.accessKeyId]}),e[16]=O.accessKeyId,e[17]=z);let B;e[18]!==R||e[19]!==z?(B=(0,T.jsxs)(d,{children:[F,R,z]}),e[18]=R,e[19]=z,e[20]=B):B=e[20];let V;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(V=(0,T.jsx)(p,{children:(0,T.jsx)(`label`,{htmlFor:`secretAccessKey`,children:`Secret Access Key`})}),e[21]=V):V=e[21];let H=!!O.secretAccessKey,U;e[22]===f?U=e[23]:(U=f(`secretAccessKey`),e[22]=f,e[23]=U);let W;e[24]!==H||e[25]!==U?(W=(0,T.jsx)(l,{"aria-invalid":H,autoComplete:`current-password`,id:`secretAccessKey`,placeholder:`wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY`,type:`password`,...U}),e[24]=H,e[25]=U,e[26]=W):W=e[26];let G;e[27]===O.secretAccessKey?G=e[28]:(G=(0,T.jsx)(_,{errors:[O.secretAccessKey]}),e[27]=O.secretAccessKey,e[28]=G);let K;e[29]!==W||e[30]!==G?(K=(0,T.jsxs)(d,{children:[V,W,G]}),e[29]=W,e[30]=G,e[31]=K):K=e[31];let q=k?`Signing in...`:`Sign In`,J;e[32]!==k||e[33]!==q?(J=(0,T.jsx)(a,{className:`w-full`,disabled:k,type:`submit`,children:q}),e[32]=k,e[33]=q,e[34]=J):J=e[34];let Y;e[35]!==B||e[36]!==K||e[37]!==J?(Y=(0,T.jsxs)(g,{children:[B,K,J]}),e[35]=B,e[36]=K,e[37]=J,e[38]=Y):Y=e[38];let X;e[39]!==Y||e[40]!==P?(X=(0,T.jsx)(`form`,{onSubmit:P,children:Y}),e[39]=Y,e[40]=P,e[41]=X):X=e[41];let Z;e[42]!==X||e[43]!==M||e[44]!==N?(Z=(0,T.jsxs)(S,{children:[j,(0,T.jsxs)(x,{children:[M,N,X]})]}),e[42]=X,e[43]=M,e[44]=N,e[45]=Z):Z=e[45];let Q;e[46]===Symbol.for(`react.memo_cache_sentinel`)?(Q=(0,T.jsx)(D,{}),e[46]=Q):Q=e[46];let $;return e[47]===Z?$=e[48]:($=(0,T.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,T.jsxs)(`div`,{className:`flex w-full max-w-sm flex-col gap-4`,children:[Z,Q]})}),e[47]=Z,e[48]=$),$}function D(){let e=(0,C.c)(4),t,n;e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`text-sm font-medium`,children:`Install Local Certificate Authority`}),(0,T.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`To avoid browser certificate warnings, download and install the Spinifex CA as a trusted root on your OS.`})]}),n=(0,T.jsx)(`a`,{className:`inline-flex h-8 w-full items-center justify-center rounded-md border border-input bg-background px-3 text-sm font-medium hover:bg-accent hover:text-accent-foreground`,download:`spinifex-ca.pem`,href:`/api/ca.pem`,children:`Download CA Certificate`}),e[0]=t,e[1]=n):(t=e[0],n=e[1]);let r;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,T.jsx)(v,{className:`cursor-pointer text-xs text-muted-foreground underline-offset-4 hover:underline`,children:`Installation instructions`}),e[2]=r):r=e[2];let i;return e[3]===Symbol.for(`react.memo_cache_sentinel`)?(i=(0,T.jsx)(S,{className:`border-muted bg-muted/30`,children:(0,T.jsx)(x,{className:`pt-4 pb-4`,children:(0,T.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[t,n,(0,T.jsxs)(f,{children:[r,(0,T.jsx)(u,{children:(0,T.jsxs)(`div`,{className:`mt-2 flex flex-col gap-2 text-xs text-muted-foreground`,children:[(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`font-medium text-foreground`,children:`macOS`}),(0,T.jsx)(`code`,{className:`mt-1 block rounded bg-muted p-2 text-[11px] break-all`,children:`sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain spinifex-ca.pem`})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`font-medium text-foreground`,children:`Windows`}),(0,T.jsx)(`p`,{children:`Double-click the file → Install Certificate → Local Machine → Trusted Root Certification Authorities`})]}),(0,T.jsxs)(`div`,{children:[(0,T.jsx)(`p`,{className:`font-medium text-foreground`,children:`Linux`}),(0,T.jsx)(`code`,{className:`mt-1 block rounded bg-muted p-2 text-[11px] break-all`,children:`sudo cp spinifex-ca.pem /usr/local/share/ca-certificates/spinifex-ca.crt && sudo update-ca-certificates`})]})]})})]})]})})}),e[3]=i):i=e[3],i}export{E as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/ls.js b/spinifex/services/spinifexui/frontend/dist/assets/ls.js index 3d8c2f3d6..d3ac8adaa 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/ls.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/ls.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{Xt as r}from"./auth.js";import{t as i}from"./button.js";import{n as a}from"./s32.js";import{Xn as o,dn as s}from"./index.js";import{t as c}from"./list-card.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=o(a),r;e[0]===t.Buckets?r=e[1]:(r=t.Buckets??[],e[0]=t.Buckets,e[1]=r);let c=r,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(s,{actions:(0,u.jsx)(n,{to:`/s3/create-bucket`,children:(0,u.jsx)(i,{children:`Create Bucket`})}),title:`Buckets`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No buckets found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.Name?(0,u.jsx)(c,{params:{bucket:e.Name},subtitle:e.CreationDate?`Created: ${r(e.CreationDate)}`:void 0,title:e.Name,to:`/s3/ls/$bucket`},e.Name):null}export{d as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./link.js";import{Xt as r}from"./auth.js";import{t as i}from"./button.js";import{n as a}from"./s32.js";import{$n as o,yn as s}from"./index.js";import{t as c}from"./list-card.js";var l=t(),u=e();function d(){let e=(0,l.c)(5),{data:t}=o(a),r;e[0]===t.Buckets?r=e[1]:(r=t.Buckets??[],e[0]=t.Buckets,e[1]=r);let c=r,d;e[2]===Symbol.for(`react.memo_cache_sentinel`)?(d=(0,u.jsx)(s,{actions:(0,u.jsx)(n,{to:`/s3/create-bucket`,children:(0,u.jsx)(i,{children:`Create Bucket`})}),title:`Buckets`}),e[2]=d):d=e[2];let p;return e[3]===c?p=e[4]:(p=(0,u.jsxs)(u.Fragment,{children:[d,c.length>0?(0,u.jsx)(`div`,{className:`space-y-4`,children:c.map(f)}):(0,u.jsx)(`p`,{className:`text-muted-foreground`,children:`No buckets found.`})]}),e[3]=c,e[4]=p),p}function f(e){return e.Name?(0,u.jsx)(c,{params:{bucket:e.Name},subtitle:e.CreationDate?`Created: ${r(e.CreationDate)}`:void 0,title:e.Name,to:`/s3/ls/$bucket`},e.Name):null}export{d as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/nodes.js b/spinifex/services/spinifexui/frontend/dist/assets/nodes.js index d250cea31..ba4099425 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/nodes.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/nodes.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./redirect.js";import{t as a}from"./link.js";import{Qt as o}from"./auth.js";import{t as s}from"./chevron-down.js";import{t as c}from"./chevron-right.js";import{Dn as l,Zn as u,dn as d}from"./index.js";import{r as f,t as p}from"./admin.js";import{t as m}from"./badge.js";import{a as h,o as g,r as _,t as v}from"./card.js";var y=r(),b=t(n(),1),x=e();function S(e){if(e.mig_enabled){let t=e.slices??[];return`${t.filter(e=>e.instance_id).length} / ${t.length}`}return`${+!!e.instance_id} / 1`}function C(e){let t=(0,y.c)(20),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=new Set,t[0]=r):r=t[0];let[i,a]=(0,b.useState)(r),l;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},t[1]=l):l=t[1];let u=l,d,f,p,h;if(t[2]!==i||t[3]!==n){let e=n.flatMap(T);h=`overflow-x-auto`,f=`w-full text-xs`,t[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`w-6 pb-1`,children:(0,x.jsx)(`span`,{className:`sr-only`,children:`Expand`})}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Node`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Model`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`VRAM`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Mode`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Profile`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`Used / Total`})]})}),t[8]=p):p=t[8];let r;t[9]===i?r=t[10]:(r=e=>{let{node:t,gpu:n}=e,r=`${t}:${n.pci_address}`,a=n.slices??[],l=n.mig_enabled&&a.length>0,d=l&&i.has(r);return(0,x.jsxs)(b.Fragment,{children:[(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5`,children:l&&(0,x.jsx)(`button`,{"aria-expanded":d,"aria-label":d?`Collapse slices`:`Expand slices`,onClick:()=>u(r),type:`button`,children:d?(0,x.jsx)(s,{className:`size-3.5`}):(0,x.jsx)(c,{className:`size-3.5`})})}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:t}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:n.model}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:o(n.vram_mib)}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,x.jsx)(m,{className:`text-[0.625rem]`,variant:`secondary`,children:n.mig_enabled?`MIG`:`Passthrough`})}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:n.mig_profile??`—`}),(0,x.jsx)(`td`,{className:`py-1.5 font-mono`,children:S(n)})]}),d&&a.map(w)]},r)},t[9]=i,t[10]=r),d=e.map(r),t[2]=i,t[3]=n,t[4]=d,t[5]=f,t[6]=p,t[7]=h}else d=t[4],f=t[5],p=t[6],h=t[7];let g;t[11]===d?g=t[12]:(g=(0,x.jsx)(`tbody`,{children:d}),t[11]=d,t[12]=g);let _;t[13]!==f||t[14]!==p||t[15]!==g?(_=(0,x.jsxs)(`table`,{className:f,children:[p,g]}),t[13]=f,t[14]=p,t[15]=g,t[16]=_):_=t[16];let v;return t[17]!==h||t[18]!==_?(v=(0,x.jsx)(`div`,{className:h,children:_}),t[17]=h,t[18]=_,t[19]=v):v=t[19],v}function w(e){return(0,x.jsxs)(`tr`,{className:`border-b text-muted-foreground last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1`,children:(0,x.jsx)(`span`,{className:`sr-only`,children:`Slice`})}),(0,x.jsxs)(`td`,{className:`py-1 pr-4 font-mono`,colSpan:2,children:[`↳ slice `,e.gi_id]}),(0,x.jsx)(`td`,{className:`py-1 pr-4`,children:o(e.vram_mib)}),(0,x.jsx)(`td`,{className:`py-1 pr-4`,children:(0,x.jsx)(`span`,{className:`sr-only`,children:`Mode`})}),(0,x.jsx)(`td`,{className:`py-1 pr-4 font-mono`,children:e.profile}),(0,x.jsx)(`td`,{className:`py-1 font-mono`,children:e.instance_id?(0,x.jsx)(a,{className:`text-primary hover:underline`,params:{id:e.instance_id},to:`/ec2/describe-instances/$id`,children:e.instance_id}):(0,x.jsx)(`span`,{className:`text-green-600`,children:`free`})})]},e.gi_id)}function T(e){return(e.gpus??[]).map(t=>({node:e.node,gpu:t}))}function E(e){let t=Math.floor(e/86400),n=Math.floor(e%86400/3600);if(t>0)return`${t}d ${n}h`;let r=Math.floor(e%3600/60);return n>0?`${n}h ${r}m`:`${r}m`}function D(e){return e>=1?`${e.toFixed(1)}Gi`:`${Math.round(e*1024)}Mi`}function O(e){let t=Math.floor(Date.now()/1e3-e);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d ${r%24}h`}function k(){let e=(0,y.c)(31),{isAdmin:t}=l(),n;e[0]===t?n=e[1]:(n={...p,enabled:t,refetchInterval:5e3},e[0]=t,e[1]=n);let{data:r}=u(n),a;e[2]===t?a=e[3]:(a={...f,enabled:t,refetchInterval:5e3},e[2]=t,e[3]=a);let{data:o}=u(a);if(!t)throw i({to:`/`});let s,c,m;if(e[4]!==r?.nodes||e[5]!==o?.vms){s=r?.nodes??[];let t;e[9]===o?.vms?t=e[10]:(t=o?.vms??[],e[9]=o?.vms,e[10]=t);let n;e[11]===t?n=e[12]:(n=t.filter(N),e[11]=t,e[12]=n),m=n;let i=new Map;for(let e of s)for(let t of e.instance_types??[]){let e=i.get(t.name);e?e.available+=t.available:i.set(t.name,{vcpu:t.vcpu,memory_gb:t.memory_gb,available:t.available})}c=[...i.entries()].map(M).toSorted(j),e[4]=r?.nodes,e[5]=o?.vms,e[6]=s,e[7]=c,e[8]=m}else s=e[6],c=e[7],m=e[8];let b=c,S;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,x.jsx)(d,{title:`Nodes`}),e[13]=S):S=e[13];let w;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,x.jsx)(h,{children:(0,x.jsx)(g,{className:`text-sm`,children:`Cluster Nodes`})}),e[14]=w):w=e[14];let T;e[15]===s?T=e[16]:(T=(0,x.jsxs)(v,{children:[w,(0,x.jsx)(_,{children:s.length===0?(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No nodes responding`}):(0,x.jsx)(P,{nodes:s})})]}),e[15]=s,e[16]=T);let E;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,x.jsx)(h,{children:(0,x.jsx)(g,{className:`text-sm`,children:`Elastic Compute Cloud (EC2)`})}),e[17]=E):E=e[17];let D;e[18]===m?D=e[19]:(D=(0,x.jsxs)(v,{children:[E,(0,x.jsx)(_,{children:m.length===0?(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No instances running`}):(0,x.jsx)(L,{vms:m})})]}),e[18]=m,e[19]=D);let O;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,x.jsx)(h,{children:(0,x.jsx)(g,{className:`text-sm`,children:`Resource Usage`})}),e[20]=O):O=e[20];let k;e[21]!==b||e[22]!==s?(k=(0,x.jsxs)(v,{children:[O,(0,x.jsx)(_,{className:`space-y-4`,children:s.length===0?(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No data`}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(z,{nodes:s}),b.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h4`,{className:`mt-4 text-xs font-medium text-muted-foreground`,children:`Instance Type Capacity`}),(0,x.jsx)(V,{instanceTypes:b})]})]})})]}),e[21]=b,e[22]=s,e[23]=k):k=e[23];let F;e[24]===s?F=e[25]:(F=s.some(A)&&(0,x.jsxs)(v,{children:[(0,x.jsx)(h,{children:(0,x.jsx)(g,{className:`text-sm`,children:`GPU Inventory`})}),(0,x.jsx)(_,{children:(0,x.jsx)(C,{nodes:s})})]}),e[24]=s,e[25]=F);let I;return e[26]!==F||e[27]!==T||e[28]!==D||e[29]!==k?(I=(0,x.jsxs)(x.Fragment,{children:[S,(0,x.jsxs)(`div`,{className:`space-y-6`,children:[T,D,k,F]})]}),e[26]=F,e[27]=T,e[28]=D,e[29]=k,e[30]=I):I=e[30],I}function A(e){return(e.gpus?.length??0)>0}function j(e,t){return e.name.localeCompare(t.name)}function M(e){let[t,n]=e;return{name:t,...n}}function N(e){return!e.managed_by}function P(e){let t=(0,y.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Name`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Status`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Roles`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`IP`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Region`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`AZ`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Uptime`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`EC2`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`Services`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(F),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,x.jsx)(`div`,{className:`overflow-x-auto`,children:(0,x.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,x.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function F(e){let t=[e.nats_role?`nats:${e.nats_role}`:null,e.predastore_role?`predastore:${e.predastore_role}`:null].filter(Boolean).join(`,`);return(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.node}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,x.jsx)(m,{variant:e.status===`Ready`?`default`:`secondary`,className:`text-[0.625rem]`,children:e.status})}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono text-muted-foreground`,children:t||`-`}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.host}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.region}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.az}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:E(e.uptime)}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.vm_count}),(0,x.jsx)(`td`,{className:`py-1.5`,children:(0,x.jsx)(`span`,{className:`text-muted-foreground`,children:e.services?.join(`,`)??`-`})})]},e.node)}function I(e){return e?e.profile?`${e.profile} ${o(e.vram_mib)}`:`${e.model} ${o(e.vram_mib)}`:`-`}function L(e){let t=(0,y.c)(5),{vms:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Instance`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Status`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Type`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`vCPU`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Memory`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`GPU`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Node`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`Age`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(R),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,x.jsx)(`div`,{className:`overflow-x-auto`,children:(0,x.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,x.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function R(e){return(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.instance_id}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,x.jsx)(m,{variant:e.status===`running`?`default`:`secondary`,className:`text-[0.625rem]`,children:e.status})}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.instance_type}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.vcpu}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:D(e.memory_gb)}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:I(e.gpu)}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.node}),(0,x.jsx)(`td`,{className:`py-1.5`,children:e.launch_time>0?O(e.launch_time):`-`})]},e.instance_id)}function z(e){let t=(0,y.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Name`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`CPU (used/sched)`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`MEM (used/sched)`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`GPU (used/total)`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`EC2`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(B),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,x.jsx)(`div`,{className:`overflow-x-auto`,children:(0,x.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,x.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function B(e){let t=e.total_vcpu-(e.reserved_vcpu??0),n=e.total_mem_gb-(e.reserved_mem_gb??0);return(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.node}),(0,x.jsxs)(`td`,{className:`py-1.5 pr-4 font-mono`,children:[e.alloc_vcpu,`/`,t]}),(0,x.jsxs)(`td`,{className:`py-1.5 pr-4 font-mono`,children:[D(e.alloc_mem_gb),`/`,D(n)]}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.total_gpus>0?`${e.alloc_gpus}/${e.total_gpus}`:`-`}),(0,x.jsx)(`td`,{className:`py-1.5`,children:e.vm_count})]},e.node)}function V(e){let t=(0,y.c)(5),{instanceTypes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Instance Type`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Available`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`vCPU`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`Memory`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(H),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,x.jsx)(`div`,{className:`overflow-x-auto`,children:(0,x.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,x.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function H(e){return(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.name}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.available}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.vcpu}),(0,x.jsx)(`td`,{className:`py-1.5`,children:D(e.memory_gb)})]},e.name)}export{k as component,I as formatVMGPU}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{n as i}from"./redirect.js";import{t as a}from"./link.js";import{Qt as o}from"./auth.js";import{t as s}from"./chevron-down.js";import{t as c}from"./chevron-right.js";import{Fn as l,er as u,yn as d}from"./index.js";import{r as f,t as p}from"./admin.js";import{t as m}from"./badge.js";import{a as h,o as g,r as _,t as v}from"./card.js";var y=r(),b=t(n(),1),x=e();function S(e){if(e.mig_enabled){let t=e.slices??[];return`${t.filter(e=>e.instance_id).length} / ${t.length}`}return`${+!!e.instance_id} / 1`}function C(e){let t=(0,y.c)(20),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=new Set,t[0]=r):r=t[0];let[i,a]=(0,b.useState)(r),l;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(l=e=>{a(t=>{let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),n})},t[1]=l):l=t[1];let u=l,d,f,p,h;if(t[2]!==i||t[3]!==n){let e=n.flatMap(T);h=`overflow-x-auto`,f=`w-full text-xs`,t[8]===Symbol.for(`react.memo_cache_sentinel`)?(p=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`w-6 pb-1`,children:(0,x.jsx)(`span`,{className:`sr-only`,children:`Expand`})}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Node`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Model`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`VRAM`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Mode`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Profile`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`Used / Total`})]})}),t[8]=p):p=t[8];let r;t[9]===i?r=t[10]:(r=e=>{let{node:t,gpu:n}=e,r=`${t}:${n.pci_address}`,a=n.slices??[],l=n.mig_enabled&&a.length>0,d=l&&i.has(r);return(0,x.jsxs)(b.Fragment,{children:[(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5`,children:l&&(0,x.jsx)(`button`,{"aria-expanded":d,"aria-label":d?`Collapse slices`:`Expand slices`,onClick:()=>u(r),type:`button`,children:d?(0,x.jsx)(s,{className:`size-3.5`}):(0,x.jsx)(c,{className:`size-3.5`})})}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:t}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:n.model}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:o(n.vram_mib)}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,x.jsx)(m,{className:`text-[0.625rem]`,variant:`secondary`,children:n.mig_enabled?`MIG`:`Passthrough`})}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:n.mig_profile??`—`}),(0,x.jsx)(`td`,{className:`py-1.5 font-mono`,children:S(n)})]}),d&&a.map(w)]},r)},t[9]=i,t[10]=r),d=e.map(r),t[2]=i,t[3]=n,t[4]=d,t[5]=f,t[6]=p,t[7]=h}else d=t[4],f=t[5],p=t[6],h=t[7];let g;t[11]===d?g=t[12]:(g=(0,x.jsx)(`tbody`,{children:d}),t[11]=d,t[12]=g);let _;t[13]!==f||t[14]!==p||t[15]!==g?(_=(0,x.jsxs)(`table`,{className:f,children:[p,g]}),t[13]=f,t[14]=p,t[15]=g,t[16]=_):_=t[16];let v;return t[17]!==h||t[18]!==_?(v=(0,x.jsx)(`div`,{className:h,children:_}),t[17]=h,t[18]=_,t[19]=v):v=t[19],v}function w(e){return(0,x.jsxs)(`tr`,{className:`border-b text-muted-foreground last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1`,children:(0,x.jsx)(`span`,{className:`sr-only`,children:`Slice`})}),(0,x.jsxs)(`td`,{className:`py-1 pr-4 font-mono`,colSpan:2,children:[`↳ slice `,e.gi_id]}),(0,x.jsx)(`td`,{className:`py-1 pr-4`,children:o(e.vram_mib)}),(0,x.jsx)(`td`,{className:`py-1 pr-4`,children:(0,x.jsx)(`span`,{className:`sr-only`,children:`Mode`})}),(0,x.jsx)(`td`,{className:`py-1 pr-4 font-mono`,children:e.profile}),(0,x.jsx)(`td`,{className:`py-1 font-mono`,children:e.instance_id?(0,x.jsx)(a,{className:`text-primary hover:underline`,params:{id:e.instance_id},to:`/ec2/describe-instances/$id`,children:e.instance_id}):(0,x.jsx)(`span`,{className:`text-green-600`,children:`free`})})]},e.gi_id)}function T(e){return(e.gpus??[]).map(t=>({node:e.node,gpu:t}))}function E(e){let t=Math.floor(e/86400),n=Math.floor(e%86400/3600);if(t>0)return`${t}d ${n}h`;let r=Math.floor(e%3600/60);return n>0?`${n}h ${r}m`:`${r}m`}function D(e){return e>=1?`${e.toFixed(1)}Gi`:`${Math.round(e*1024)}Mi`}function O(e){let t=Math.floor(Date.now()/1e3-e);if(t<60)return`${t}s`;let n=Math.floor(t/60);if(n<60)return`${n}m`;let r=Math.floor(n/60);return r<24?`${r}h ${n%60}m`:`${Math.floor(r/24)}d ${r%24}h`}function k(){let e=(0,y.c)(31),{isAdmin:t}=l(),n;e[0]===t?n=e[1]:(n={...p,enabled:t,refetchInterval:5e3},e[0]=t,e[1]=n);let{data:r}=u(n),a;e[2]===t?a=e[3]:(a={...f,enabled:t,refetchInterval:5e3},e[2]=t,e[3]=a);let{data:o}=u(a);if(!t)throw i({to:`/`});let s,c,m;if(e[4]!==r?.nodes||e[5]!==o?.vms){s=r?.nodes??[];let t;e[9]===o?.vms?t=e[10]:(t=o?.vms??[],e[9]=o?.vms,e[10]=t);let n;e[11]===t?n=e[12]:(n=t.filter(N),e[11]=t,e[12]=n),m=n;let i=new Map;for(let e of s)for(let t of e.instance_types??[]){let e=i.get(t.name);e?e.available+=t.available:i.set(t.name,{vcpu:t.vcpu,memory_gb:t.memory_gb,available:t.available})}c=[...i.entries()].map(M).toSorted(j),e[4]=r?.nodes,e[5]=o?.vms,e[6]=s,e[7]=c,e[8]=m}else s=e[6],c=e[7],m=e[8];let b=c,S;e[13]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,x.jsx)(d,{title:`Nodes`}),e[13]=S):S=e[13];let w;e[14]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,x.jsx)(h,{children:(0,x.jsx)(g,{className:`text-sm`,children:`Cluster Nodes`})}),e[14]=w):w=e[14];let T;e[15]===s?T=e[16]:(T=(0,x.jsxs)(v,{children:[w,(0,x.jsx)(_,{children:s.length===0?(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No nodes responding`}):(0,x.jsx)(P,{nodes:s})})]}),e[15]=s,e[16]=T);let E;e[17]===Symbol.for(`react.memo_cache_sentinel`)?(E=(0,x.jsx)(h,{children:(0,x.jsx)(g,{className:`text-sm`,children:`Elastic Compute Cloud (EC2)`})}),e[17]=E):E=e[17];let D;e[18]===m?D=e[19]:(D=(0,x.jsxs)(v,{children:[E,(0,x.jsx)(_,{children:m.length===0?(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No instances running`}):(0,x.jsx)(L,{vms:m})})]}),e[18]=m,e[19]=D);let O;e[20]===Symbol.for(`react.memo_cache_sentinel`)?(O=(0,x.jsx)(h,{children:(0,x.jsx)(g,{className:`text-sm`,children:`Resource Usage`})}),e[20]=O):O=e[20];let k;e[21]!==b||e[22]!==s?(k=(0,x.jsxs)(v,{children:[O,(0,x.jsx)(_,{className:`space-y-4`,children:s.length===0?(0,x.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No data`}):(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(z,{nodes:s}),b.length>0&&(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(`h4`,{className:`mt-4 text-xs font-medium text-muted-foreground`,children:`Instance Type Capacity`}),(0,x.jsx)(V,{instanceTypes:b})]})]})})]}),e[21]=b,e[22]=s,e[23]=k):k=e[23];let F;e[24]===s?F=e[25]:(F=s.some(A)&&(0,x.jsxs)(v,{children:[(0,x.jsx)(h,{children:(0,x.jsx)(g,{className:`text-sm`,children:`GPU Inventory`})}),(0,x.jsx)(_,{children:(0,x.jsx)(C,{nodes:s})})]}),e[24]=s,e[25]=F);let I;return e[26]!==F||e[27]!==T||e[28]!==D||e[29]!==k?(I=(0,x.jsxs)(x.Fragment,{children:[S,(0,x.jsxs)(`div`,{className:`space-y-6`,children:[T,D,k,F]})]}),e[26]=F,e[27]=T,e[28]=D,e[29]=k,e[30]=I):I=e[30],I}function A(e){return(e.gpus?.length??0)>0}function j(e,t){return e.name.localeCompare(t.name)}function M(e){let[t,n]=e;return{name:t,...n}}function N(e){return!e.managed_by}function P(e){let t=(0,y.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Name`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Status`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Roles`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`IP`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Region`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`AZ`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Uptime`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`EC2`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`Services`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(F),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,x.jsx)(`div`,{className:`overflow-x-auto`,children:(0,x.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,x.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function F(e){let t=[e.nats_role?`nats:${e.nats_role}`:null,e.predastore_role?`predastore:${e.predastore_role}`:null].filter(Boolean).join(`,`);return(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.node}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,x.jsx)(m,{variant:e.status===`Ready`?`default`:`secondary`,className:`text-[0.625rem]`,children:e.status})}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono text-muted-foreground`,children:t||`-`}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.host}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.region}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.az}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:E(e.uptime)}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.vm_count}),(0,x.jsx)(`td`,{className:`py-1.5`,children:(0,x.jsx)(`span`,{className:`text-muted-foreground`,children:e.services?.join(`,`)??`-`})})]},e.node)}function I(e){return e?e.profile?`${e.profile} ${o(e.vram_mib)}`:`${e.model} ${o(e.vram_mib)}`:`-`}function L(e){let t=(0,y.c)(5),{vms:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Instance`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Status`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Type`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`vCPU`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Memory`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`GPU`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Node`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`Age`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(R),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,x.jsx)(`div`,{className:`overflow-x-auto`,children:(0,x.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,x.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function R(e){return(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.instance_id}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,x.jsx)(m,{variant:e.status===`running`?`default`:`secondary`,className:`text-[0.625rem]`,children:e.status})}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.instance_type}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.vcpu}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:D(e.memory_gb)}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:I(e.gpu)}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.node}),(0,x.jsx)(`td`,{className:`py-1.5`,children:e.launch_time>0?O(e.launch_time):`-`})]},e.instance_id)}function z(e){let t=(0,y.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Name`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`CPU (used/sched)`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`MEM (used/sched)`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`GPU (used/total)`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`EC2`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(B),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,x.jsx)(`div`,{className:`overflow-x-auto`,children:(0,x.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,x.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function B(e){let t=e.total_vcpu-(e.reserved_vcpu??0),n=e.total_mem_gb-(e.reserved_mem_gb??0);return(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.node}),(0,x.jsxs)(`td`,{className:`py-1.5 pr-4 font-mono`,children:[e.alloc_vcpu,`/`,t]}),(0,x.jsxs)(`td`,{className:`py-1.5 pr-4 font-mono`,children:[D(e.alloc_mem_gb),`/`,D(n)]}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.total_gpus>0?`${e.alloc_gpus}/${e.total_gpus}`:`-`}),(0,x.jsx)(`td`,{className:`py-1.5`,children:e.vm_count})]},e.node)}function V(e){let t=(0,y.c)(5),{instanceTypes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,x.jsx)(`thead`,{children:(0,x.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Instance Type`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Available`}),(0,x.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`vCPU`}),(0,x.jsx)(`th`,{className:`pb-1 font-medium`,children:`Memory`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(H),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,x.jsx)(`div`,{className:`overflow-x-auto`,children:(0,x.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,x.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function H(e){return(0,x.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,x.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.name}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.available}),(0,x.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.vcpu}),(0,x.jsx)(`td`,{className:`py-1.5`,children:D(e.memory_gb)})]},e.name)}export{k as component,I as formatVMGPU}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/register-task-definition.js b/spinifex/services/spinifexui/frontend/dist/assets/register-task-definition.js index 94c23267d..f395ec5b8 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/register-task-definition.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/register-task-definition.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as ee}from"./useNavigate.js";import{c as n,i as r,n as i,s as a,t as o}from"./select.js";import{t as te}from"./plus.js";import{t as ne}from"./trash-2.js";import{t as re}from"./button.js";import{s as ie}from"./ecs2.js";import{Ln as s,_n as ae,an as oe,bn as se,dn as ce,j as c,mn as le,rn as l,sn as u,vn as ue,xn as de,yn as fe}from"./index.js";import{t as pe}from"./form-actions.js";import{r as me,t as he}from"./ecs3.js";var ge=t(),d=e();function f(e){let t=(0,ge.c)(129),{cluster:n}=e,r=ee(),i=ie(),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=ue(me),t[0]=a):a=t[0];let o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o={resolver:a,defaultValues:{family:``,networkMode:`bridge`,cpu:``,memory:``,containerName:``,image:``,containerCpu:``,containerMemory:``,containerGpuCount:0,essential:!0,portMappings:[]}},t[1]=o):o=t[1];let{control:c,handleSubmit:he,register:f,formState:ye}=de(o),{errors:p,isSubmitting:be}=ye,xe;t[2]===c?xe=t[3]:(xe={control:c,name:`portMappings`},t[2]=c,t[3]=xe);let m=se(xe),Se;t[4]!==n||t[5]!==r?(Se=function(){r(n?{to:`/ecs/list-clusters/$clusterName`,params:{clusterName:n}}:{to:`/ecs/list-clusters`})},t[4]=n,t[5]=r,t[6]=Se):Se=t[6];let h=Se,Ce;t[7]!==h||t[8]!==i?(Ce=async function(e){await i.mutateAsync(e),h()},t[7]=h,t[8]=i,t[9]=Ce):Ce=t[9];let we=Ce,Te,Ee;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,d.jsx)(ae,{to:`/ecs/list-clusters`,children:`Clusters`}),Ee=(0,d.jsx)(ce,{subtitle:`Register a single-container task definition`,title:`Register Task Definition`}),t[10]=Te,t[11]=Ee):(Te=t[10],Ee=t[11]);let g;t[12]!==i.error||t[13]!==i.isError?(g=i.isError&&(0,d.jsx)(le,{error:i.error instanceof Error?i.error:void 0,msg:`Failed to register task definition.`}),t[12]=i.error,t[13]=i.isError,t[14]=g):g=t[14];let _;t[15]!==he||t[16]!==we?(_=he(we),t[15]=he,t[16]=we,t[17]=_):_=t[17];let De;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`family`,children:`Family`})}),t[18]=De):De=t[18];let v;t[19]===f?v=t[20]:(v=f(`family`),t[19]=f,t[20]=v);let y;t[21]===v?y=t[22]:(y=(0,d.jsx)(s,{id:`family`,placeholder:`my-app`,...v}),t[21]=v,t[22]=y);let b;t[23]===p.family?b=t[24]:(b=(0,d.jsx)(oe,{errors:[p.family]}),t[23]=p.family,t[24]=b);let x;t[25]!==y||t[26]!==b?(x=(0,d.jsxs)(l,{children:[De,y,b]}),t[25]=y,t[26]=b,t[27]=x):x=t[27];let Oe;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`networkMode`,children:`Network mode`})}),t[28]=Oe):Oe=t[28];let S;t[29]===c?S=t[30]:(S=(0,d.jsxs)(l,{children:[Oe,(0,d.jsx)(fe,{control:c,name:`networkMode`,render:ve})]}),t[29]=c,t[30]=S);let ke;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`cpu`,children:`Task CPU (units)`})}),t[31]=ke):ke=t[31];let C;t[32]===f?C=t[33]:(C=f(`cpu`),t[32]=f,t[33]=C);let w;t[34]===C?w=t[35]:(w=(0,d.jsxs)(l,{children:[ke,(0,d.jsx)(s,{id:`cpu`,placeholder:`optional`,...C})]}),t[34]=C,t[35]=w);let Ae;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`memory`,children:`Task memory (MiB)`})}),t[36]=Ae):Ae=t[36];let T;t[37]===f?T=t[38]:(T=f(`memory`),t[37]=f,t[38]=T);let E;t[39]===T?E=t[40]:(E=(0,d.jsxs)(l,{children:[Ae,(0,d.jsx)(s,{id:`memory`,placeholder:`optional`,...T})]}),t[39]=T,t[40]=E);let D;t[41]!==w||t[42]!==E?(D=(0,d.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[w,E]}),t[41]=w,t[42]=E,t[43]=D):D=t[43];let je;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(je=(0,d.jsx)(`h2`,{className:`mb-4 font-semibold`,children:`Container`}),t[44]=je):je=t[44];let Me;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`containerName`,children:`Name`})}),t[45]=Me):Me=t[45];let O;t[46]===f?O=t[47]:(O=f(`containerName`),t[46]=f,t[47]=O);let k;t[48]===O?k=t[49]:(k=(0,d.jsx)(s,{id:`containerName`,placeholder:`app`,...O}),t[48]=O,t[49]=k);let A;t[50]===p.containerName?A=t[51]:(A=(0,d.jsx)(oe,{errors:[p.containerName]}),t[50]=p.containerName,t[51]=A);let j;t[52]!==k||t[53]!==A?(j=(0,d.jsxs)(l,{children:[Me,k,A]}),t[52]=k,t[53]=A,t[54]=j):j=t[54];let Ne;t[55]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`image`,children:`Image`})}),t[55]=Ne):Ne=t[55];let Pe;t[56]===f?Pe=t[57]:(Pe=f(`image`),t[56]=f,t[57]=Pe);let M;t[58]===Pe?M=t[59]:(M=(0,d.jsx)(s,{id:`image`,placeholder:`public.ecr.aws/nginx/nginx:latest`,...Pe}),t[58]=Pe,t[59]=M);let N;t[60]===p.image?N=t[61]:(N=(0,d.jsx)(oe,{errors:[p.image]}),t[60]=p.image,t[61]=N);let P;t[62]!==M||t[63]!==N?(P=(0,d.jsxs)(l,{children:[Ne,M,N]}),t[62]=M,t[63]=N,t[64]=P):P=t[64];let Fe;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`containerCpu`,children:`CPU (units)`})}),t[65]=Fe):Fe=t[65];let F;t[66]===f?F=t[67]:(F=f(`containerCpu`),t[66]=f,t[67]=F);let I;t[68]===F?I=t[69]:(I=(0,d.jsxs)(l,{children:[Fe,(0,d.jsx)(s,{id:`containerCpu`,placeholder:`optional`,...F})]}),t[68]=F,t[69]=I);let Ie;t[70]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`containerMemory`,children:`Memory (MiB)`})}),t[70]=Ie):Ie=t[70];let L;t[71]===f?L=t[72]:(L=f(`containerMemory`),t[71]=f,t[72]=L);let R;t[73]===L?R=t[74]:(R=(0,d.jsxs)(l,{children:[Ie,(0,d.jsx)(s,{id:`containerMemory`,placeholder:`optional`,...L})]}),t[73]=L,t[74]=R);let Le;t[75]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`containerGpuCount`,children:`GPU count`})}),t[75]=Le):Le=t[75];let z;t[76]===f?z=t[77]:(z=f(`containerGpuCount`,{valueAsNumber:!0}),t[76]=f,t[77]=z);let B;t[78]===z?B=t[79]:(B=(0,d.jsx)(s,{id:`containerGpuCount`,min:0,placeholder:`0`,type:`number`,...z}),t[78]=z,t[79]=B);let V;t[80]===p.containerGpuCount?V=t[81]:(V=(0,d.jsx)(oe,{errors:[p.containerGpuCount]}),t[80]=p.containerGpuCount,t[81]=V);let H;t[82]!==B||t[83]!==V?(H=(0,d.jsxs)(l,{children:[Le,B,V]}),t[82]=B,t[83]=V,t[84]=H):H=t[84];let U;t[85]!==I||t[86]!==R||t[87]!==H?(U=(0,d.jsxs)(`div`,{className:`grid grid-cols-3 gap-4`,children:[I,R,H]}),t[85]=I,t[86]=R,t[87]=H,t[88]=U):U=t[88];let W;t[89]===f?W=t[90]:(W=f(`essential`),t[89]=f,t[90]=W);let G;t[91]===W?G=t[92]:(G=(0,d.jsx)(`input`,{type:`checkbox`,...W}),t[91]=W,t[92]=G);let Re;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(Re=(0,d.jsx)(`span`,{children:`Essential`}),t[93]=Re):Re=t[93];let K;t[94]===G?K=t[95]:(K=(0,d.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[G,Re]}),t[94]=G,t[95]=K);let ze;t[96]===Symbol.for(`react.memo_cache_sentinel`)?(ze=(0,d.jsx)(`span`,{className:`text-sm font-medium`,children:`Port mappings`}),t[96]=ze):ze=t[96];let q;t[97]===m?q=t[98]:(q=()=>m.append({containerPort:80,protocol:`tcp`}),t[97]=m,t[98]=q);let Be;t[99]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,d.jsx)(te,{className:`size-4`}),t[99]=Be):Be=t[99];let J;t[100]===q?J=t[101]:(J=(0,d.jsxs)(`div`,{className:`flex items-center justify-between`,children:[ze,(0,d.jsxs)(re,{onClick:q,size:`sm`,type:`button`,variant:`outline`,children:[Be,`Add port`]})]}),t[100]=q,t[101]=J);let Y;t[102]!==c||t[103]!==f||t[104]!==m?(Y=m.fields.map((e,t)=>(0,d.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,d.jsxs)(l,{className:`flex-1`,children:[(0,d.jsx)(u,{children:(0,d.jsx)(`label`,{htmlFor:`port-${t}`,children:`Container port`})}),(0,d.jsx)(s,{id:`port-${t}`,type:`number`,...f(`portMappings.${t}.containerPort`,{valueAsNumber:!0})})]}),(0,d.jsx)(fe,{control:c,name:`portMappings.${t}.protocol`,render:_e}),(0,d.jsx)(re,{"aria-label":`Remove port mapping`,onClick:()=>m.remove(t),size:`icon`,type:`button`,variant:`ghost`,children:(0,d.jsx)(ne,{className:`size-4`})})]},e.id)),t[102]=c,t[103]=f,t[104]=m,t[105]=Y):Y=t[105];let X;t[106]!==J||t[107]!==Y?(X=(0,d.jsxs)(`div`,{className:`space-y-2`,children:[J,Y]}),t[106]=J,t[107]=Y,t[108]=X):X=t[108];let Z;t[109]!==j||t[110]!==P||t[111]!==U||t[112]!==K||t[113]!==X?(Z=(0,d.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[je,(0,d.jsxs)(`div`,{className:`space-y-4`,children:[j,P,U,K,X]})]}),t[109]=j,t[110]=P,t[111]=U,t[112]=K,t[113]=X,t[114]=Z):Z=t[114];let Q;t[115]!==h||t[116]!==be||t[117]!==i.isPending?(Q=(0,d.jsx)(pe,{isPending:i.isPending,isSubmitting:be,onCancel:h,pendingLabel:`Registering…`,submitLabel:`Register Task Definition`}),t[115]=h,t[116]=be,t[117]=i.isPending,t[118]=Q):Q=t[118];let $;t[119]!==_||t[120]!==x||t[121]!==S||t[122]!==D||t[123]!==Z||t[124]!==Q?($=(0,d.jsxs)(`form`,{className:`max-w-2xl space-y-6`,onSubmit:_,children:[x,S,D,Z,Q]}),t[119]=_,t[120]=x,t[121]=S,t[122]=D,t[123]=Z,t[124]=Q,t[125]=$):$=t[125];let Ve;return t[126]!==$||t[127]!==g?(Ve=(0,d.jsxs)(d.Fragment,{children:[Te,Ee,g,$]}),t[126]=$,t[127]=g,t[128]=Ve):Ve=t[128],Ve}function _e(e){let{field:t}=e;return(0,d.jsxs)(o,{onValueChange:t.onChange,value:t.value,children:[(0,d.jsx)(a,{className:`w-28`,children:(0,d.jsx)(n,{})}),(0,d.jsxs)(i,{children:[(0,d.jsx)(r,{value:`tcp`,children:`tcp`}),(0,d.jsx)(r,{value:`udp`,children:`udp`})]})]})}function ve(e){let{field:t}=e;return(0,d.jsxs)(o,{onValueChange:t.onChange,value:t.value,children:[(0,d.jsx)(a,{className:`w-full`,id:`networkMode`,children:(0,d.jsx)(n,{})}),(0,d.jsx)(i,{children:he.map(ye)})]})}function ye(e){return(0,d.jsx)(r,{value:e,children:e},e)}function p(){let e=(0,ge.c)(2),{cluster:t}=c.useSearch(),ee;return e[0]===t?ee=e[1]:(ee=(0,d.jsx)(f,{cluster:t}),e[0]=t,e[1]=ee),ee}export{p as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as ee}from"./useNavigate.js";import{c as n,i as r,n as i,s as a,t as o}from"./select.js";import{t as te}from"./plus.js";import{t as ne}from"./trash-2.js";import{t as re}from"./button.js";import{s as ie}from"./ecs2.js";import{Dn as ae,En as oe,On as se,Rn as s,Sn as ce,Tn as le,W as ue,dn as c,hn as l,j as u,kn as de,pn as fe,yn as pe}from"./index.js";import{r as me,t as he}from"./ecs3.js";var ge=t(),d=e();function f(e){let t=(0,ge.c)(129),{cluster:n}=e,r=ee(),i=ie(),a;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(a=oe(me),t[0]=a):a=t[0];let o;t[1]===Symbol.for(`react.memo_cache_sentinel`)?(o={resolver:a,defaultValues:{family:``,networkMode:`bridge`,cpu:``,memory:``,containerName:``,image:``,containerCpu:``,containerMemory:``,containerGpuCount:0,essential:!0,portMappings:[]}},t[1]=o):o=t[1];let{control:u,handleSubmit:he,register:f,formState:ye}=de(o),{errors:p,isSubmitting:be}=ye,xe;t[2]===u?xe=t[3]:(xe={control:u,name:`portMappings`},t[2]=u,t[3]=xe);let m=se(xe),Se;t[4]!==n||t[5]!==r?(Se=function(){r(n?{to:`/ecs/list-clusters/$clusterName`,params:{clusterName:n}}:{to:`/ecs/list-clusters`})},t[4]=n,t[5]=r,t[6]=Se):Se=t[6];let h=Se,Ce;t[7]!==h||t[8]!==i?(Ce=async function(e){await i.mutateAsync(e),h()},t[7]=h,t[8]=i,t[9]=Ce):Ce=t[9];let we=Ce,Te,Ee;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(Te=(0,d.jsx)(le,{to:`/ecs/list-clusters`,children:`Clusters`}),Ee=(0,d.jsx)(pe,{subtitle:`Register a single-container task definition`,title:`Register Task Definition`}),t[10]=Te,t[11]=Ee):(Te=t[10],Ee=t[11]);let g;t[12]!==i.error||t[13]!==i.isError?(g=i.isError&&(0,d.jsx)(ce,{error:i.error instanceof Error?i.error:void 0,msg:`Failed to register task definition.`}),t[12]=i.error,t[13]=i.isError,t[14]=g):g=t[14];let _;t[15]!==he||t[16]!==we?(_=he(we),t[15]=he,t[16]=we,t[17]=_):_=t[17];let De;t[18]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`family`,children:`Family`})}),t[18]=De):De=t[18];let v;t[19]===f?v=t[20]:(v=f(`family`),t[19]=f,t[20]=v);let y;t[21]===v?y=t[22]:(y=(0,d.jsx)(s,{id:`family`,placeholder:`my-app`,...v}),t[21]=v,t[22]=y);let b;t[23]===p.family?b=t[24]:(b=(0,d.jsx)(fe,{errors:[p.family]}),t[23]=p.family,t[24]=b);let x;t[25]!==y||t[26]!==b?(x=(0,d.jsxs)(c,{children:[De,y,b]}),t[25]=y,t[26]=b,t[27]=x):x=t[27];let Oe;t[28]===Symbol.for(`react.memo_cache_sentinel`)?(Oe=(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`networkMode`,children:`Network mode`})}),t[28]=Oe):Oe=t[28];let S;t[29]===u?S=t[30]:(S=(0,d.jsxs)(c,{children:[Oe,(0,d.jsx)(ae,{control:u,name:`networkMode`,render:ve})]}),t[29]=u,t[30]=S);let ke;t[31]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`cpu`,children:`Task CPU (units)`})}),t[31]=ke):ke=t[31];let C;t[32]===f?C=t[33]:(C=f(`cpu`),t[32]=f,t[33]=C);let w;t[34]===C?w=t[35]:(w=(0,d.jsxs)(c,{children:[ke,(0,d.jsx)(s,{id:`cpu`,placeholder:`optional`,...C})]}),t[34]=C,t[35]=w);let Ae;t[36]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`memory`,children:`Task memory (MiB)`})}),t[36]=Ae):Ae=t[36];let T;t[37]===f?T=t[38]:(T=f(`memory`),t[37]=f,t[38]=T);let E;t[39]===T?E=t[40]:(E=(0,d.jsxs)(c,{children:[Ae,(0,d.jsx)(s,{id:`memory`,placeholder:`optional`,...T})]}),t[39]=T,t[40]=E);let D;t[41]!==w||t[42]!==E?(D=(0,d.jsxs)(`div`,{className:`grid grid-cols-2 gap-4`,children:[w,E]}),t[41]=w,t[42]=E,t[43]=D):D=t[43];let je;t[44]===Symbol.for(`react.memo_cache_sentinel`)?(je=(0,d.jsx)(`h2`,{className:`mb-4 font-semibold`,children:`Container`}),t[44]=je):je=t[44];let Me;t[45]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`containerName`,children:`Name`})}),t[45]=Me):Me=t[45];let O;t[46]===f?O=t[47]:(O=f(`containerName`),t[46]=f,t[47]=O);let k;t[48]===O?k=t[49]:(k=(0,d.jsx)(s,{id:`containerName`,placeholder:`app`,...O}),t[48]=O,t[49]=k);let A;t[50]===p.containerName?A=t[51]:(A=(0,d.jsx)(fe,{errors:[p.containerName]}),t[50]=p.containerName,t[51]=A);let j;t[52]!==k||t[53]!==A?(j=(0,d.jsxs)(c,{children:[Me,k,A]}),t[52]=k,t[53]=A,t[54]=j):j=t[54];let Ne;t[55]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`image`,children:`Image`})}),t[55]=Ne):Ne=t[55];let Pe;t[56]===f?Pe=t[57]:(Pe=f(`image`),t[56]=f,t[57]=Pe);let M;t[58]===Pe?M=t[59]:(M=(0,d.jsx)(s,{id:`image`,placeholder:`public.ecr.aws/nginx/nginx:latest`,...Pe}),t[58]=Pe,t[59]=M);let N;t[60]===p.image?N=t[61]:(N=(0,d.jsx)(fe,{errors:[p.image]}),t[60]=p.image,t[61]=N);let P;t[62]!==M||t[63]!==N?(P=(0,d.jsxs)(c,{children:[Ne,M,N]}),t[62]=M,t[63]=N,t[64]=P):P=t[64];let Fe;t[65]===Symbol.for(`react.memo_cache_sentinel`)?(Fe=(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`containerCpu`,children:`CPU (units)`})}),t[65]=Fe):Fe=t[65];let F;t[66]===f?F=t[67]:(F=f(`containerCpu`),t[66]=f,t[67]=F);let I;t[68]===F?I=t[69]:(I=(0,d.jsxs)(c,{children:[Fe,(0,d.jsx)(s,{id:`containerCpu`,placeholder:`optional`,...F})]}),t[68]=F,t[69]=I);let Ie;t[70]===Symbol.for(`react.memo_cache_sentinel`)?(Ie=(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`containerMemory`,children:`Memory (MiB)`})}),t[70]=Ie):Ie=t[70];let L;t[71]===f?L=t[72]:(L=f(`containerMemory`),t[71]=f,t[72]=L);let R;t[73]===L?R=t[74]:(R=(0,d.jsxs)(c,{children:[Ie,(0,d.jsx)(s,{id:`containerMemory`,placeholder:`optional`,...L})]}),t[73]=L,t[74]=R);let Le;t[75]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`containerGpuCount`,children:`GPU count`})}),t[75]=Le):Le=t[75];let z;t[76]===f?z=t[77]:(z=f(`containerGpuCount`,{valueAsNumber:!0}),t[76]=f,t[77]=z);let B;t[78]===z?B=t[79]:(B=(0,d.jsx)(s,{id:`containerGpuCount`,min:0,placeholder:`0`,type:`number`,...z}),t[78]=z,t[79]=B);let V;t[80]===p.containerGpuCount?V=t[81]:(V=(0,d.jsx)(fe,{errors:[p.containerGpuCount]}),t[80]=p.containerGpuCount,t[81]=V);let H;t[82]!==B||t[83]!==V?(H=(0,d.jsxs)(c,{children:[Le,B,V]}),t[82]=B,t[83]=V,t[84]=H):H=t[84];let U;t[85]!==I||t[86]!==R||t[87]!==H?(U=(0,d.jsxs)(`div`,{className:`grid grid-cols-3 gap-4`,children:[I,R,H]}),t[85]=I,t[86]=R,t[87]=H,t[88]=U):U=t[88];let W;t[89]===f?W=t[90]:(W=f(`essential`),t[89]=f,t[90]=W);let G;t[91]===W?G=t[92]:(G=(0,d.jsx)(`input`,{type:`checkbox`,...W}),t[91]=W,t[92]=G);let Re;t[93]===Symbol.for(`react.memo_cache_sentinel`)?(Re=(0,d.jsx)(`span`,{children:`Essential`}),t[93]=Re):Re=t[93];let K;t[94]===G?K=t[95]:(K=(0,d.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[G,Re]}),t[94]=G,t[95]=K);let ze;t[96]===Symbol.for(`react.memo_cache_sentinel`)?(ze=(0,d.jsx)(`span`,{className:`text-sm font-medium`,children:`Port mappings`}),t[96]=ze):ze=t[96];let q;t[97]===m?q=t[98]:(q=()=>m.append({containerPort:80,protocol:`tcp`}),t[97]=m,t[98]=q);let Be;t[99]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,d.jsx)(te,{className:`size-4`}),t[99]=Be):Be=t[99];let J;t[100]===q?J=t[101]:(J=(0,d.jsxs)(`div`,{className:`flex items-center justify-between`,children:[ze,(0,d.jsxs)(re,{onClick:q,size:`sm`,type:`button`,variant:`outline`,children:[Be,`Add port`]})]}),t[100]=q,t[101]=J);let Y;t[102]!==u||t[103]!==f||t[104]!==m?(Y=m.fields.map((e,t)=>(0,d.jsxs)(`div`,{className:`flex items-end gap-2`,children:[(0,d.jsxs)(c,{className:`flex-1`,children:[(0,d.jsx)(l,{children:(0,d.jsx)(`label`,{htmlFor:`port-${t}`,children:`Container port`})}),(0,d.jsx)(s,{id:`port-${t}`,type:`number`,...f(`portMappings.${t}.containerPort`,{valueAsNumber:!0})})]}),(0,d.jsx)(ae,{control:u,name:`portMappings.${t}.protocol`,render:_e}),(0,d.jsx)(re,{"aria-label":`Remove port mapping`,onClick:()=>m.remove(t),size:`icon`,type:`button`,variant:`ghost`,children:(0,d.jsx)(ne,{className:`size-4`})})]},e.id)),t[102]=u,t[103]=f,t[104]=m,t[105]=Y):Y=t[105];let X;t[106]!==J||t[107]!==Y?(X=(0,d.jsxs)(`div`,{className:`space-y-2`,children:[J,Y]}),t[106]=J,t[107]=Y,t[108]=X):X=t[108];let Z;t[109]!==j||t[110]!==P||t[111]!==U||t[112]!==K||t[113]!==X?(Z=(0,d.jsxs)(`div`,{className:`rounded-lg border bg-card p-4`,children:[je,(0,d.jsxs)(`div`,{className:`space-y-4`,children:[j,P,U,K,X]})]}),t[109]=j,t[110]=P,t[111]=U,t[112]=K,t[113]=X,t[114]=Z):Z=t[114];let Q;t[115]!==h||t[116]!==be||t[117]!==i.isPending?(Q=(0,d.jsx)(ue,{isPending:i.isPending,isSubmitting:be,onCancel:h,pendingLabel:`Registering…`,submitLabel:`Register Task Definition`}),t[115]=h,t[116]=be,t[117]=i.isPending,t[118]=Q):Q=t[118];let $;t[119]!==_||t[120]!==x||t[121]!==S||t[122]!==D||t[123]!==Z||t[124]!==Q?($=(0,d.jsxs)(`form`,{className:`max-w-2xl space-y-6`,onSubmit:_,children:[x,S,D,Z,Q]}),t[119]=_,t[120]=x,t[121]=S,t[122]=D,t[123]=Z,t[124]=Q,t[125]=$):$=t[125];let Ve;return t[126]!==$||t[127]!==g?(Ve=(0,d.jsxs)(d.Fragment,{children:[Te,Ee,g,$]}),t[126]=$,t[127]=g,t[128]=Ve):Ve=t[128],Ve}function _e(e){let{field:t}=e;return(0,d.jsxs)(o,{onValueChange:t.onChange,value:t.value,children:[(0,d.jsx)(a,{className:`w-28`,children:(0,d.jsx)(n,{})}),(0,d.jsxs)(i,{children:[(0,d.jsx)(r,{value:`tcp`,children:`tcp`}),(0,d.jsx)(r,{value:`udp`,children:`udp`})]})]})}function ve(e){let{field:t}=e;return(0,d.jsxs)(o,{onValueChange:t.onChange,value:t.value,children:[(0,d.jsx)(a,{className:`w-full`,id:`networkMode`,children:(0,d.jsx)(n,{})}),(0,d.jsx)(i,{children:he.map(ye)})]})}function ye(e){return(0,d.jsx)(r,{value:e,children:e},e)}function p(){let e=(0,ge.c)(2),{cluster:t}=u.useSearch(),ee;return e[0]===t?ee=e[1]:(ee=(0,d.jsx)(f,{cluster:t}),e[0]=t,e[1]=ee),ee}export{p as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/run-task.js b/spinifex/services/spinifexui/frontend/dist/assets/run-task.js index 155d7cfd8..ae12edba6 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/run-task.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/run-task.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as ee,i as r,n as te,s as ne,t as re}from"./select.js";import{O as ie,w as ae}from"./ec2.js";import{a as oe,o as se}from"./ecs.js";import{c as ce}from"./ecs2.js";import{A as i,Ln as le,Sn as ue,Xn as a,Zn as de,_n as fe,an as pe,dn as me,mn as he,rn as ge,sn as _e,vn as ve,xn as ye,yn as be}from"./index.js";import{t as xe}from"./form-actions.js";import{i as Se}from"./ecs3.js";var Ce=t(),o=e();function s(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function c(e){let t=(0,Ce.c)(84),{cluster:r}=e,i=n(),s=ce(),{data:c}=a(se),{data:l}=a(ie),{data:Te}=a(ae),u;t[0]===l.Subnets?u=t[1]:(u=l.Subnets??[],t[0]=l.Subnets,t[1]=u);let Ee=u,d;t[2]===Te.SecurityGroups?d=t[3]:(d=Te.SecurityGroups??[],t[2]=Te.SecurityGroups,t[3]=d);let De=d,f;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(f=ve(Se),t[4]=f):f=t[4];let p,m;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(p=[],m=[],t[5]=p,t[6]=m):(p=t[5],m=t[6]);let h;t[7]===r?h=t[8]:(h={resolver:f,defaultValues:{cluster:r,taskDefinition:``,count:1,subnets:p,securityGroups:m,assignPublicIp:!1}},t[7]=r,t[8]=h);let{control:g,handleSubmit:Oe,register:_,setValue:ke,getValues:v,formState:Ae}=ye(h),{errors:y,isSubmitting:b}=Ae,x;t[9]===g?x=t[10]:(x={control:g,name:`taskDefinition`},t[9]=g,t[10]=x);let S=ue(x),C;t[11]===S?C=t[12]:(C=oe(S),t[11]=S,t[12]=C);let{data:je}=de(C),w=je?.networkMode===`awsvpc`,T;t[13]===g?T=t[14]:(T={control:g,name:`subnets`},t[13]=g,t[14]=T);let E=ue(T),D;t[15]===g?D=t[16]:(D={control:g,name:`securityGroups`},t[15]=g,t[16]=D);let O=ue(D),k;t[17]!==v||t[18]!==ke?(k=(e,t)=>{let n=v(e);ke(e,n.includes(t)?n.filter(e=>e!==t):[...n,t],{shouldValidate:!0})},t[17]=v,t[18]=ke,t[19]=k):k=t[19];let A=k,j;t[20]!==r||t[21]!==i?(j=function(){i({to:`/ecs/list-clusters/$clusterName`,params:{clusterName:r}})},t[20]=r,t[21]=i,t[22]=j):j=t[22];let M=j,N;t[23]!==w||t[24]!==M||t[25]!==s?(N=function(e){s.mutate({cluster:e.cluster,taskDefinition:e.taskDefinition,count:e.count,awsvpc:w,subnets:e.subnets,securityGroups:e.securityGroups,assignPublicIp:e.assignPublicIp},{onSuccess:M})},t[23]=w,t[24]=M,t[25]=s,t[26]=N):N=t[26];let P=N,Me=w&&E.length===0,F;t[27]===r?F=t[28]:(F={clusterName:r},t[27]=r,t[28]=F);let I;t[29]!==r||t[30]!==F?(I=(0,o.jsx)(fe,{params:F,to:`/ecs/list-clusters/$clusterName`,children:r}),t[29]=r,t[30]=F,t[31]=I):I=t[31];let Ne=`Cluster: ${r}`,L;t[32]===Ne?L=t[33]:(L=(0,o.jsx)(me,{subtitle:Ne,title:`Run Task`}),t[32]=Ne,t[33]=L);let R;t[34]!==s.error||t[35]!==s.isError?(R=s.isError&&(0,o.jsx)(he,{error:s.error instanceof Error?s.error:void 0,msg:`Failed to run task.`}),t[34]=s.error,t[35]=s.isError,t[36]=R):R=t[36];let z;t[37]!==Oe||t[38]!==P?(z=Oe(P),t[37]=Oe,t[38]=P,t[39]=z):z=t[39];let B;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,o.jsx)(_e,{children:(0,o.jsx)(`label`,{htmlFor:`taskDefinition`,children:`Task definition`})}),t[40]=B):B=t[40];let V;t[41]===c?V=t[42]:(V=e=>{let{field:t}=e;return(0,o.jsxs)(re,{onValueChange:t.onChange,value:t.value,children:[(0,o.jsx)(ne,{className:`w-full`,id:`taskDefinition`,children:(0,o.jsx)(ee,{placeholder:`Select a task definition`})}),(0,o.jsx)(te,{children:c.map(we)})]})},t[41]=c,t[42]=V);let H;t[43]!==g||t[44]!==V?(H=(0,o.jsx)(be,{control:g,name:`taskDefinition`,render:V}),t[43]=g,t[44]=V,t[45]=H):H=t[45];let U;t[46]===y.taskDefinition?U=t[47]:(U=(0,o.jsx)(pe,{errors:[y.taskDefinition]}),t[46]=y.taskDefinition,t[47]=U);let W;t[48]!==H||t[49]!==U?(W=(0,o.jsxs)(ge,{children:[B,H,U]}),t[48]=H,t[49]=U,t[50]=W):W=t[50];let G;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,o.jsx)(_e,{children:(0,o.jsx)(`label`,{htmlFor:`count`,children:`Count`})}),t[51]=G):G=t[51];let K;t[52]===_?K=t[53]:(K=_(`count`,{valueAsNumber:!0}),t[52]=_,t[53]=K);let q;t[54]===K?q=t[55]:(q=(0,o.jsx)(le,{id:`count`,type:`number`,...K}),t[54]=K,t[55]=q);let J;t[56]===y.count?J=t[57]:(J=(0,o.jsx)(pe,{errors:[y.count]}),t[56]=y.count,t[57]=J);let Y;t[58]!==q||t[59]!==J?(Y=(0,o.jsxs)(ge,{children:[G,q,J]}),t[58]=q,t[59]=J,t[60]=Y):Y=t[60];let X;t[61]!==w||t[62]!==_||t[63]!==De||t[64]!==O||t[65]!==E||t[66]!==Ee||t[67]!==A?(X=w&&(0,o.jsxs)(`div`,{className:`space-y-4 rounded-lg border bg-card p-4`,children:[(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This task definition uses awsvpc networking. Select at least one subnet.`}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`span`,{className:`text-sm font-medium`,children:`Subnets`}),(0,o.jsx)(`div`,{className:`mt-2 space-y-1`,children:Ee.map(e=>(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,o.jsx)(`input`,{checked:E.includes(e.SubnetId??``),onChange:()=>A(`subnets`,e.SubnetId??``),type:`checkbox`}),(0,o.jsxs)(`span`,{className:`font-mono`,children:[e.SubnetId,` (`,e.CidrBlock,`)`]})]},e.SubnetId))})]}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`span`,{className:`text-sm font-medium`,children:`Security groups`}),(0,o.jsx)(`div`,{className:`mt-2 space-y-1`,children:De.map(e=>(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,o.jsx)(`input`,{checked:O.includes(e.GroupId??``),onChange:()=>A(`securityGroups`,e.GroupId??``),type:`checkbox`}),(0,o.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))})]}),(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,o.jsx)(`input`,{type:`checkbox`,..._(`assignPublicIp`)}),(0,o.jsx)(`span`,{children:`Assign public IP`})]})]}),t[61]=w,t[62]=_,t[63]=De,t[64]=O,t[65]=E,t[66]=Ee,t[67]=A,t[68]=X):X=t[68];let Pe=s.isPending||Me,Z;t[69]!==M||t[70]!==b||t[71]!==Pe?(Z=(0,o.jsx)(xe,{isPending:Pe,isSubmitting:b,onCancel:M,pendingLabel:`Running…`,submitLabel:`Run Task`}),t[69]=M,t[70]=b,t[71]=Pe,t[72]=Z):Z=t[72];let Q;t[73]!==z||t[74]!==W||t[75]!==Y||t[76]!==X||t[77]!==Z?(Q=(0,o.jsxs)(`form`,{className:`max-w-2xl space-y-6`,onSubmit:z,children:[W,Y,X,Z]}),t[73]=z,t[74]=W,t[75]=Y,t[76]=X,t[77]=Z,t[78]=Q):Q=t[78];let $;return t[79]!==I||t[80]!==L||t[81]!==R||t[82]!==Q?($=(0,o.jsxs)(o.Fragment,{children:[I,L,R,Q]}),t[79]=I,t[80]=L,t[81]=R,t[82]=Q,t[83]=$):$=t[83],$}function we(e){let t=s(e);return(0,o.jsx)(r,{value:t,children:t},e)}function l(){let e=(0,Ce.c)(2),{cluster:t}=i.useSearch(),n;return e[0]===t?n=e[1]:(n=(0,o.jsx)(c,{cluster:t}),e[0]=t,e[1]=n),n}export{l as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{t as n}from"./useNavigate.js";import{c as ee,i as r,n as te,s as ne,t as re}from"./select.js";import{O as ie,w as ae}from"./ec2.js";import{a as oe,o as se}from"./ecs.js";import{c as ce}from"./ecs2.js";import{$n as i,A as a,An as le,Dn as ue,En as de,Rn as fe,Sn as pe,Tn as me,W as he,dn as ge,er as _e,hn as ve,kn as ye,pn as be,yn as xe}from"./index.js";import{i as Se}from"./ecs3.js";var Ce=t(),o=e();function s(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function c(e){let t=(0,Ce.c)(84),{cluster:r}=e,a=n(),s=ce(),{data:c}=i(se),{data:l}=i(ie),{data:u}=i(ae),d;t[0]===l.Subnets?d=t[1]:(d=l.Subnets??[],t[0]=l.Subnets,t[1]=d);let Te=d,f;t[2]===u.SecurityGroups?f=t[3]:(f=u.SecurityGroups??[],t[2]=u.SecurityGroups,t[3]=f);let Ee=f,p;t[4]===Symbol.for(`react.memo_cache_sentinel`)?(p=de(Se),t[4]=p):p=t[4];let m,h;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(m=[],h=[],t[5]=m,t[6]=h):(m=t[5],h=t[6]);let g;t[7]===r?g=t[8]:(g={resolver:p,defaultValues:{cluster:r,taskDefinition:``,count:1,subnets:m,securityGroups:h,assignPublicIp:!1}},t[7]=r,t[8]=g);let{control:_,handleSubmit:De,register:v,setValue:y,getValues:Oe,formState:ke}=ye(g),{errors:b,isSubmitting:Ae}=ke,x;t[9]===_?x=t[10]:(x={control:_,name:`taskDefinition`},t[9]=_,t[10]=x);let S=le(x),C;t[11]===S?C=t[12]:(C=oe(S),t[11]=S,t[12]=C);let{data:je}=_e(C),w=je?.networkMode===`awsvpc`,T;t[13]===_?T=t[14]:(T={control:_,name:`subnets`},t[13]=_,t[14]=T);let E=le(T),D;t[15]===_?D=t[16]:(D={control:_,name:`securityGroups`},t[15]=_,t[16]=D);let O=le(D),k;t[17]!==Oe||t[18]!==y?(k=(e,t)=>{let n=Oe(e);y(e,n.includes(t)?n.filter(e=>e!==t):[...n,t],{shouldValidate:!0})},t[17]=Oe,t[18]=y,t[19]=k):k=t[19];let A=k,j;t[20]!==r||t[21]!==a?(j=function(){a({to:`/ecs/list-clusters/$clusterName`,params:{clusterName:r}})},t[20]=r,t[21]=a,t[22]=j):j=t[22];let M=j,N;t[23]!==w||t[24]!==M||t[25]!==s?(N=function(e){s.mutate({cluster:e.cluster,taskDefinition:e.taskDefinition,count:e.count,awsvpc:w,subnets:e.subnets,securityGroups:e.securityGroups,assignPublicIp:e.assignPublicIp},{onSuccess:M})},t[23]=w,t[24]=M,t[25]=s,t[26]=N):N=t[26];let Me=N,Ne=w&&E.length===0,P;t[27]===r?P=t[28]:(P={clusterName:r},t[27]=r,t[28]=P);let F;t[29]!==r||t[30]!==P?(F=(0,o.jsx)(me,{params:P,to:`/ecs/list-clusters/$clusterName`,children:r}),t[29]=r,t[30]=P,t[31]=F):F=t[31];let I=`Cluster: ${r}`,L;t[32]===I?L=t[33]:(L=(0,o.jsx)(xe,{subtitle:I,title:`Run Task`}),t[32]=I,t[33]=L);let R;t[34]!==s.error||t[35]!==s.isError?(R=s.isError&&(0,o.jsx)(pe,{error:s.error instanceof Error?s.error:void 0,msg:`Failed to run task.`}),t[34]=s.error,t[35]=s.isError,t[36]=R):R=t[36];let z;t[37]!==De||t[38]!==Me?(z=De(Me),t[37]=De,t[38]=Me,t[39]=z):z=t[39];let B;t[40]===Symbol.for(`react.memo_cache_sentinel`)?(B=(0,o.jsx)(ve,{children:(0,o.jsx)(`label`,{htmlFor:`taskDefinition`,children:`Task definition`})}),t[40]=B):B=t[40];let V;t[41]===c?V=t[42]:(V=e=>{let{field:t}=e;return(0,o.jsxs)(re,{onValueChange:t.onChange,value:t.value,children:[(0,o.jsx)(ne,{className:`w-full`,id:`taskDefinition`,children:(0,o.jsx)(ee,{placeholder:`Select a task definition`})}),(0,o.jsx)(te,{children:c.map(we)})]})},t[41]=c,t[42]=V);let H;t[43]!==_||t[44]!==V?(H=(0,o.jsx)(ue,{control:_,name:`taskDefinition`,render:V}),t[43]=_,t[44]=V,t[45]=H):H=t[45];let U;t[46]===b.taskDefinition?U=t[47]:(U=(0,o.jsx)(be,{errors:[b.taskDefinition]}),t[46]=b.taskDefinition,t[47]=U);let W;t[48]!==H||t[49]!==U?(W=(0,o.jsxs)(ge,{children:[B,H,U]}),t[48]=H,t[49]=U,t[50]=W):W=t[50];let G;t[51]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,o.jsx)(ve,{children:(0,o.jsx)(`label`,{htmlFor:`count`,children:`Count`})}),t[51]=G):G=t[51];let K;t[52]===v?K=t[53]:(K=v(`count`,{valueAsNumber:!0}),t[52]=v,t[53]=K);let q;t[54]===K?q=t[55]:(q=(0,o.jsx)(fe,{id:`count`,type:`number`,...K}),t[54]=K,t[55]=q);let J;t[56]===b.count?J=t[57]:(J=(0,o.jsx)(be,{errors:[b.count]}),t[56]=b.count,t[57]=J);let Y;t[58]!==q||t[59]!==J?(Y=(0,o.jsxs)(ge,{children:[G,q,J]}),t[58]=q,t[59]=J,t[60]=Y):Y=t[60];let X;t[61]!==w||t[62]!==v||t[63]!==Ee||t[64]!==O||t[65]!==E||t[66]!==Te||t[67]!==A?(X=w&&(0,o.jsxs)(`div`,{className:`space-y-4 rounded-lg border bg-card p-4`,children:[(0,o.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`This task definition uses awsvpc networking. Select at least one subnet.`}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`span`,{className:`text-sm font-medium`,children:`Subnets`}),(0,o.jsx)(`div`,{className:`mt-2 space-y-1`,children:Te.map(e=>(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,o.jsx)(`input`,{checked:E.includes(e.SubnetId??``),onChange:()=>A(`subnets`,e.SubnetId??``),type:`checkbox`}),(0,o.jsxs)(`span`,{className:`font-mono`,children:[e.SubnetId,` (`,e.CidrBlock,`)`]})]},e.SubnetId))})]}),(0,o.jsxs)(`div`,{children:[(0,o.jsx)(`span`,{className:`text-sm font-medium`,children:`Security groups`}),(0,o.jsx)(`div`,{className:`mt-2 space-y-1`,children:Ee.map(e=>(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-xs`,children:[(0,o.jsx)(`input`,{checked:O.includes(e.GroupId??``),onChange:()=>A(`securityGroups`,e.GroupId??``),type:`checkbox`}),(0,o.jsxs)(`span`,{className:`font-mono`,children:[e.GroupId,` (`,e.GroupName,`)`]})]},e.GroupId))})]}),(0,o.jsxs)(`label`,{className:`flex items-center gap-2 text-sm`,children:[(0,o.jsx)(`input`,{type:`checkbox`,...v(`assignPublicIp`)}),(0,o.jsx)(`span`,{children:`Assign public IP`})]})]}),t[61]=w,t[62]=v,t[63]=Ee,t[64]=O,t[65]=E,t[66]=Te,t[67]=A,t[68]=X):X=t[68];let Pe=s.isPending||Ne,Z;t[69]!==M||t[70]!==Ae||t[71]!==Pe?(Z=(0,o.jsx)(he,{isPending:Pe,isSubmitting:Ae,onCancel:M,pendingLabel:`Running…`,submitLabel:`Run Task`}),t[69]=M,t[70]=Ae,t[71]=Pe,t[72]=Z):Z=t[72];let Q;t[73]!==z||t[74]!==W||t[75]!==Y||t[76]!==X||t[77]!==Z?(Q=(0,o.jsxs)(`form`,{className:`max-w-2xl space-y-6`,onSubmit:z,children:[W,Y,X,Z]}),t[73]=z,t[74]=W,t[75]=Y,t[76]=X,t[77]=Z,t[78]=Q):Q=t[78];let $;return t[79]!==F||t[80]!==L||t[81]!==R||t[82]!==Q?($=(0,o.jsxs)(o.Fragment,{children:[F,L,R,Q]}),t[79]=F,t[80]=L,t[81]=R,t[82]=Q,t[83]=$):$=t[83],$}function we(e){let t=s(e);return(0,o.jsx)(r,{value:t,children:t},e)}function l(){let e=(0,Ce.c)(2),{cluster:t}=a.useSearch(),n;return e[0]===t?n=e[1]:(n=(0,o.jsx)(c,{cluster:t}),e[0]=t,e[1]=n),n}export{l as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/service-metrics.js b/spinifex/services/spinifexui/frontend/dist/assets/service-metrics.js index 6d2c53584..25a7e44db 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/service-metrics.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/service-metrics.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{n}from"./redirect.js";import{Dn as r,Zn as i,dn as a}from"./index.js";import{n as o}from"./admin.js";import{t as s}from"./badge.js";import{a as c,o as l,r as u,t as d}from"./card.js";var f=t(),p=e();function m(){let e=(0,f.c)(46),{isAdmin:t}=r(),m;e[0]===t?m=e[1]:(m={...o,enabled:t,refetchInterval:5e3},e[0]=t,e[1]=m);let{data:y}=i(m);if(!t)throw n({to:`/`});let x=y?.encoding,S;e[2]===y?.db_nodes?S=e[3]:(S=y?.db_nodes??[],e[2]=y?.db_nodes,e[3]=S);let C=S,w;e[4]===y?.shard_nodes?w=e[5]:(w=y?.shard_nodes??[],e[4]=y?.shard_nodes,e[5]=w);let T=w,E;e[6]===C?E=e[7]:(E=C.length>0&&C.every(g),e[6]=C,e[7]=E);let D=E,O;e[8]===C?O=e[9]:(O=C.some(h),e[8]=C,e[9]=O);let k=O,A;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,p.jsx)(a,{title:`Service Metrics`}),e[10]=A):A=e[10];let j;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,p.jsx)(c,{children:(0,p.jsx)(l,{className:`text-sm`,children:`Predastore (S3) Overview`})}),e[11]=j):j=e[11];let M;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`Encoding`}),e[12]=M):M=e[12];let N;e[13]===x?N=e[14]:(N=(0,p.jsxs)(`div`,{children:[M,(0,p.jsx)(`div`,{className:`mt-1`,children:x?(0,p.jsxs)(s,{variant:`outline`,children:[x.type,` RS(`,x.data_shards,`,`,x.parity_shards,`)`]}):(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`-`})})]}),e[13]=x,e[14]=N);let P;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`DB Nodes`}),e[15]=P):P=e[15];let F;e[16]===C.length?F=e[17]:(F=(0,p.jsxs)(`div`,{children:[P,(0,p.jsx)(`div`,{className:`mt-1 font-mono font-medium`,children:C.length})]}),e[16]=C.length,e[17]=F);let I;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`Shard Nodes`}),e[18]=I):I=e[18];let L;e[19]===T.length?L=e[20]:(L=(0,p.jsxs)(`div`,{children:[I,(0,p.jsx)(`div`,{className:`mt-1 font-mono font-medium`,children:T.length})]}),e[19]=T.length,e[20]=L);let R;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`Cluster Health`}),e[21]=R):R=e[21];let z;e[22]!==D||e[23]!==k||e[24]!==C.length?(z=(0,p.jsxs)(`div`,{children:[R,(0,p.jsx)(`div`,{className:`mt-1`,children:(0,p.jsx)(_,{nodeCount:C.length,allHealthy:D,anyUnhealthy:k})})]}),e[22]=D,e[23]=k,e[24]=C.length,e[25]=z):z=e[25];let B;e[26]!==F||e[27]!==L||e[28]!==z||e[29]!==N?(B=(0,p.jsxs)(`div`,{className:`grid grid-cols-2 gap-4 text-xs md:grid-cols-4`,children:[N,F,L,z]}),e[26]=F,e[27]=L,e[28]=z,e[29]=N,e[30]=B):B=e[30];let V;e[31]===x?V=e[32]:(V=x&&(0,p.jsxs)(`p`,{className:`mt-3 text-[0.625rem] text-muted-foreground`,children:[`Reed-Solomon erasure coding: `,x.data_shards,` data shards + `,x.parity_shards,` parity`,` `,x.parity_shards===1?`shard`:`shards`,`. Can tolerate `,x.parity_shards,` shard`,` `,x.parity_shards===1?`failure`:`failures`,` without data loss.`]}),e[31]=x,e[32]=V);let H;e[33]!==B||e[34]!==V?(H=(0,p.jsxs)(d,{children:[j,(0,p.jsxs)(u,{children:[B,V]})]}),e[33]=B,e[34]=V,e[35]=H):H=e[35];let U;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(c,{children:(0,p.jsx)(l,{className:`text-sm`,children:`DB Consensus Nodes (Raft)`})}),e[36]=U):U=e[36];let W;e[37]===C?W=e[38]:(W=(0,p.jsxs)(d,{children:[U,(0,p.jsx)(u,{children:C.length===0?(0,p.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No data`}):(0,p.jsx)(v,{nodes:C})})]}),e[37]=C,e[38]=W);let G;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,p.jsx)(c,{children:(0,p.jsx)(l,{className:`text-sm`,children:`Object Storage Shard Nodes`})}),e[39]=G):G=e[39];let K;e[40]===T?K=e[41]:(K=(0,p.jsxs)(d,{children:[G,(0,p.jsx)(u,{children:T.length===0?(0,p.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No data`}):(0,p.jsx)(b,{nodes:T})})]}),e[40]=T,e[41]=K);let q;return e[42]!==H||e[43]!==W||e[44]!==K?(q=(0,p.jsxs)(p.Fragment,{children:[A,(0,p.jsxs)(`div`,{className:`space-y-6`,children:[H,W,K]})]}),e[42]=H,e[43]=W,e[44]=K,e[45]=q):q=e[45],q}function h(e){return!e.healthy}function g(e){return e.healthy}function _(e){let t=(0,f.c)(4),{nodeCount:n,allHealthy:r,anyUnhealthy:i}=e;if(n===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(s,{variant:`secondary`,children:`Unknown`}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(s,{variant:`default`,children:`Healthy`}),t[1]=e):e=t[1],e}if(i){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(s,{variant:`destructive`,children:`Degraded`}),t[2]=e):e=t[2],e}let a;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,p.jsx)(s,{variant:`secondary`,children:`Unknown`}),t[3]=a):a=t[3],a}function v(e){let t=(0,f.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Node`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Host`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Port`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Health`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`State`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Leader`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Term`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Commit Index`}),(0,p.jsx)(`th`,{className:`pb-1 font-medium`,children:`Applied Index`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(y),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,p.jsx)(`div`,{className:`overflow-x-auto`,children:(0,p.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,p.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function y(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.id}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.host}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.port}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,p.jsx)(s,{variant:e.healthy?`default`:`destructive`,className:`text-[0.625rem]`,children:e.healthy?`Healthy`:`Unreachable`})}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.state?(0,p.jsx)(s,{variant:e.state===`Leader`?`default`:`secondary`,className:`text-[0.625rem]`,children:e.state}):(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`-`})}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.leader??`-`}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.term??`-`}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.commit_index??`-`}),(0,p.jsx)(`td`,{className:`py-1.5 font-mono`,children:e.applied_index??`-`})]},e.id)}function b(e){let t=(0,f.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Node`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Host`}),(0,p.jsx)(`th`,{className:`pb-1 font-medium`,children:`Port`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(x),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,p.jsx)(`div`,{className:`overflow-x-auto`,children:(0,p.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,p.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function x(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.id}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.host}),(0,p.jsx)(`td`,{className:`py-1.5 font-mono`,children:e.port})]},e.id)}export{m as component}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{n}from"./redirect.js";import{Fn as r,er as i,yn as a}from"./index.js";import{n as o}from"./admin.js";import{t as s}from"./badge.js";import{a as c,o as l,r as u,t as d}from"./card.js";var f=t(),p=e();function m(){let e=(0,f.c)(46),{isAdmin:t}=r(),m;e[0]===t?m=e[1]:(m={...o,enabled:t,refetchInterval:5e3},e[0]=t,e[1]=m);let{data:y}=i(m);if(!t)throw n({to:`/`});let x=y?.encoding,S;e[2]===y?.db_nodes?S=e[3]:(S=y?.db_nodes??[],e[2]=y?.db_nodes,e[3]=S);let C=S,w;e[4]===y?.shard_nodes?w=e[5]:(w=y?.shard_nodes??[],e[4]=y?.shard_nodes,e[5]=w);let T=w,E;e[6]===C?E=e[7]:(E=C.length>0&&C.every(g),e[6]=C,e[7]=E);let D=E,O;e[8]===C?O=e[9]:(O=C.some(h),e[8]=C,e[9]=O);let k=O,A;e[10]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,p.jsx)(a,{title:`Service Metrics`}),e[10]=A):A=e[10];let j;e[11]===Symbol.for(`react.memo_cache_sentinel`)?(j=(0,p.jsx)(c,{children:(0,p.jsx)(l,{className:`text-sm`,children:`Predastore (S3) Overview`})}),e[11]=j):j=e[11];let M;e[12]===Symbol.for(`react.memo_cache_sentinel`)?(M=(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`Encoding`}),e[12]=M):M=e[12];let N;e[13]===x?N=e[14]:(N=(0,p.jsxs)(`div`,{children:[M,(0,p.jsx)(`div`,{className:`mt-1`,children:x?(0,p.jsxs)(s,{variant:`outline`,children:[x.type,` RS(`,x.data_shards,`,`,x.parity_shards,`)`]}):(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`-`})})]}),e[13]=x,e[14]=N);let P;e[15]===Symbol.for(`react.memo_cache_sentinel`)?(P=(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`DB Nodes`}),e[15]=P):P=e[15];let F;e[16]===C.length?F=e[17]:(F=(0,p.jsxs)(`div`,{children:[P,(0,p.jsx)(`div`,{className:`mt-1 font-mono font-medium`,children:C.length})]}),e[16]=C.length,e[17]=F);let I;e[18]===Symbol.for(`react.memo_cache_sentinel`)?(I=(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`Shard Nodes`}),e[18]=I):I=e[18];let L;e[19]===T.length?L=e[20]:(L=(0,p.jsxs)(`div`,{children:[I,(0,p.jsx)(`div`,{className:`mt-1 font-mono font-medium`,children:T.length})]}),e[19]=T.length,e[20]=L);let R;e[21]===Symbol.for(`react.memo_cache_sentinel`)?(R=(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`Cluster Health`}),e[21]=R):R=e[21];let z;e[22]!==D||e[23]!==k||e[24]!==C.length?(z=(0,p.jsxs)(`div`,{children:[R,(0,p.jsx)(`div`,{className:`mt-1`,children:(0,p.jsx)(_,{nodeCount:C.length,allHealthy:D,anyUnhealthy:k})})]}),e[22]=D,e[23]=k,e[24]=C.length,e[25]=z):z=e[25];let B;e[26]!==F||e[27]!==L||e[28]!==z||e[29]!==N?(B=(0,p.jsxs)(`div`,{className:`grid grid-cols-2 gap-4 text-xs md:grid-cols-4`,children:[N,F,L,z]}),e[26]=F,e[27]=L,e[28]=z,e[29]=N,e[30]=B):B=e[30];let V;e[31]===x?V=e[32]:(V=x&&(0,p.jsxs)(`p`,{className:`mt-3 text-[0.625rem] text-muted-foreground`,children:[`Reed-Solomon erasure coding: `,x.data_shards,` data shards + `,x.parity_shards,` parity`,` `,x.parity_shards===1?`shard`:`shards`,`. Can tolerate `,x.parity_shards,` shard`,` `,x.parity_shards===1?`failure`:`failures`,` without data loss.`]}),e[31]=x,e[32]=V);let H;e[33]!==B||e[34]!==V?(H=(0,p.jsxs)(d,{children:[j,(0,p.jsxs)(u,{children:[B,V]})]}),e[33]=B,e[34]=V,e[35]=H):H=e[35];let U;e[36]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,p.jsx)(c,{children:(0,p.jsx)(l,{className:`text-sm`,children:`DB Consensus Nodes (Raft)`})}),e[36]=U):U=e[36];let W;e[37]===C?W=e[38]:(W=(0,p.jsxs)(d,{children:[U,(0,p.jsx)(u,{children:C.length===0?(0,p.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No data`}):(0,p.jsx)(v,{nodes:C})})]}),e[37]=C,e[38]=W);let G;e[39]===Symbol.for(`react.memo_cache_sentinel`)?(G=(0,p.jsx)(c,{children:(0,p.jsx)(l,{className:`text-sm`,children:`Object Storage Shard Nodes`})}),e[39]=G):G=e[39];let K;e[40]===T?K=e[41]:(K=(0,p.jsxs)(d,{children:[G,(0,p.jsx)(u,{children:T.length===0?(0,p.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`No data`}):(0,p.jsx)(b,{nodes:T})})]}),e[40]=T,e[41]=K);let q;return e[42]!==H||e[43]!==W||e[44]!==K?(q=(0,p.jsxs)(p.Fragment,{children:[A,(0,p.jsxs)(`div`,{className:`space-y-6`,children:[H,W,K]})]}),e[42]=H,e[43]=W,e[44]=K,e[45]=q):q=e[45],q}function h(e){return!e.healthy}function g(e){return e.healthy}function _(e){let t=(0,f.c)(4),{nodeCount:n,allHealthy:r,anyUnhealthy:i}=e;if(n===0){let e;return t[0]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(s,{variant:`secondary`,children:`Unknown`}),t[0]=e):e=t[0],e}if(r){let e;return t[1]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(s,{variant:`default`,children:`Healthy`}),t[1]=e):e=t[1],e}if(i){let e;return t[2]===Symbol.for(`react.memo_cache_sentinel`)?(e=(0,p.jsx)(s,{variant:`destructive`,children:`Degraded`}),t[2]=e):e=t[2],e}let a;return t[3]===Symbol.for(`react.memo_cache_sentinel`)?(a=(0,p.jsx)(s,{variant:`secondary`,children:`Unknown`}),t[3]=a):a=t[3],a}function v(e){let t=(0,f.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Node`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Host`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Port`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Health`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`State`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Leader`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Term`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Commit Index`}),(0,p.jsx)(`th`,{className:`pb-1 font-medium`,children:`Applied Index`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(y),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,p.jsx)(`div`,{className:`overflow-x-auto`,children:(0,p.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,p.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function y(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.id}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.host}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.port}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4`,children:(0,p.jsx)(s,{variant:e.healthy?`default`:`destructive`,className:`text-[0.625rem]`,children:e.healthy?`Healthy`:`Unreachable`})}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4`,children:e.state?(0,p.jsx)(s,{variant:e.state===`Leader`?`default`:`secondary`,className:`text-[0.625rem]`,children:e.state}):(0,p.jsx)(`span`,{className:`text-muted-foreground`,children:`-`})}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.leader??`-`}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.term??`-`}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.commit_index??`-`}),(0,p.jsx)(`td`,{className:`py-1.5 font-mono`,children:e.applied_index??`-`})]},e.id)}function b(e){let t=(0,f.c)(5),{nodes:n}=e,r;t[0]===Symbol.for(`react.memo_cache_sentinel`)?(r=(0,p.jsx)(`thead`,{children:(0,p.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Node`}),(0,p.jsx)(`th`,{className:`pr-4 pb-1 font-medium`,children:`Host`}),(0,p.jsx)(`th`,{className:`pb-1 font-medium`,children:`Port`})]})}),t[0]=r):r=t[0];let i;t[1]===n?i=t[2]:(i=n.map(x),t[1]=n,t[2]=i);let a;return t[3]===i?a=t[4]:(a=(0,p.jsx)(`div`,{className:`overflow-x-auto`,children:(0,p.jsxs)(`table`,{className:`w-full text-xs`,children:[r,(0,p.jsx)(`tbody`,{children:i})]})}),t[3]=i,t[4]=a),a}function x(e){return(0,p.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono font-medium`,children:e.id}),(0,p.jsx)(`td`,{className:`py-1.5 pr-4 font-mono`,children:e.host}),(0,p.jsx)(`td`,{className:`py-1.5 font-mono`,children:e.port})]},e.id)}export{m as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/system-image-required.js b/spinifex/services/spinifexui/frontend/dist/assets/system-image-required.js index 2e3d183c6..03ac3bfea 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/system-image-required.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/system-image-required.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{qt as n}from"./auth.js";import{t as r}from"./check.js";import{t as i}from"./copy.js";import{t as a}from"./rotate-cw.js";import{t as o}from"./triangle-alert.js";import{t as s}from"./button.js";import{gn as c}from"./index.js";var l=t(),u=e();function d(e){let t=(0,l.c)(38),{title:d,description:f,importCommand:p,isRechecking:m,onRecheck:h,className:g}=e,{copied:_,copy:v}=c(),y;t[0]===g?y=t[1]:(y=n(`max-w-2xl rounded-md border border-tactical-amber/40 bg-tactical-amber/5 p-6`,g),t[0]=g,t[1]=y);let b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,u.jsx)(o,{className:`mt-0.5 size-5 shrink-0 text-tactical-amber`}),t[2]=b):b=t[2];let x;t[3]===d?x=t[4]:(x=(0,u.jsx)(`h2`,{className:`text-sm font-semibold text-foreground`,children:d}),t[3]=d,t[4]=x);let S;t[5]===f?S=t[6]:(S=(0,u.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:f}),t[5]=f,t[6]=S);let C;t[7]!==x||t[8]!==S?(C=(0,u.jsxs)(`div`,{className:`space-y-1`,children:[x,S]}),t[7]=x,t[8]=S,t[9]=C):C=t[9];let w;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,u.jsx)(`span`,{className:`text-muted-foreground select-none`,children:`$`}),t[10]=w):w=t[10];let T;t[11]===p?T=t[12]:(T=(0,u.jsx)(`span`,{className:`flex-1 text-foreground`,children:p}),t[11]=p,t[12]=T);let E;t[13]!==v||t[14]!==p?(E=()=>void v(p),t[13]=v,t[14]=p,t[15]=E):E=t[15];let D;t[16]===_?D=t[17]:(D=_?(0,u.jsx)(r,{className:`size-3.5 text-tactical-green`}):(0,u.jsx)(i,{className:`size-3.5`}),t[16]=_,t[17]=D);let O;t[18]!==E||t[19]!==D?(O=(0,u.jsx)(`button`,{"aria-label":`Copy command`,className:`text-muted-foreground transition-colors hover:text-foreground`,onClick:E,type:`button`,children:D}),t[18]=E,t[19]=D,t[20]=O):O=t[20];let k;t[21]!==O||t[22]!==T?(k=(0,u.jsxs)(`div`,{className:`flex items-center gap-2 rounded border border-border bg-background px-3 py-2 font-mono text-xs`,children:[w,T,O]}),t[21]=O,t[22]=T,t[23]=k):k=t[23];let A;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,u.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Run from any authenticated spx CLI host. The command downloads and registers the published node image, then click Recheck.`}),t[24]=A):A=t[24];let j=m?`size-4 animate-spin`:`size-4`,M;t[25]===j?M=t[26]:(M=(0,u.jsx)(a,{className:j}),t[25]=j,t[26]=M);let N;t[27]!==m||t[28]!==h||t[29]!==M?(N=(0,u.jsxs)(s,{disabled:m,onClick:h,size:`sm`,variant:`outline`,children:[M,`Recheck`]}),t[27]=m,t[28]=h,t[29]=M,t[30]=N):N=t[30];let P;t[31]!==k||t[32]!==N||t[33]!==C?(P=(0,u.jsxs)(`div`,{className:`flex items-start gap-3`,children:[b,(0,u.jsxs)(`div`,{className:`space-y-4`,children:[C,k,A,N]})]}),t[31]=k,t[32]=N,t[33]=C,t[34]=P):P=t[34];let F;return t[35]!==y||t[36]!==P?(F=(0,u.jsx)(`div`,{className:y,children:P}),t[35]=y,t[36]=P,t[37]=F):F=t[37],F}export{d as t}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{qt as n}from"./auth.js";import{t as r}from"./check.js";import{t as i}from"./copy.js";import{t as a}from"./rotate-cw.js";import{t as o}from"./button.js";import{Vn as s,wn as c}from"./index.js";var l=t(),u=e();function d(e){let t=(0,l.c)(38),{title:d,description:f,importCommand:p,isRechecking:m,onRecheck:h,className:g}=e,{copied:_,copy:v}=c(),y;t[0]===g?y=t[1]:(y=n(`max-w-2xl rounded-md border border-tactical-amber/40 bg-tactical-amber/5 p-6`,g),t[0]=g,t[1]=y);let b;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(b=(0,u.jsx)(s,{className:`mt-0.5 size-5 shrink-0 text-tactical-amber`}),t[2]=b):b=t[2];let x;t[3]===d?x=t[4]:(x=(0,u.jsx)(`h2`,{className:`text-sm font-semibold text-foreground`,children:d}),t[3]=d,t[4]=x);let S;t[5]===f?S=t[6]:(S=(0,u.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:f}),t[5]=f,t[6]=S);let C;t[7]!==x||t[8]!==S?(C=(0,u.jsxs)(`div`,{className:`space-y-1`,children:[x,S]}),t[7]=x,t[8]=S,t[9]=C):C=t[9];let w;t[10]===Symbol.for(`react.memo_cache_sentinel`)?(w=(0,u.jsx)(`span`,{className:`text-muted-foreground select-none`,children:`$`}),t[10]=w):w=t[10];let T;t[11]===p?T=t[12]:(T=(0,u.jsx)(`span`,{className:`flex-1 text-foreground`,children:p}),t[11]=p,t[12]=T);let E;t[13]!==v||t[14]!==p?(E=()=>void v(p),t[13]=v,t[14]=p,t[15]=E):E=t[15];let D;t[16]===_?D=t[17]:(D=_?(0,u.jsx)(r,{className:`size-3.5 text-tactical-green`}):(0,u.jsx)(i,{className:`size-3.5`}),t[16]=_,t[17]=D);let O;t[18]!==E||t[19]!==D?(O=(0,u.jsx)(`button`,{"aria-label":`Copy command`,className:`text-muted-foreground transition-colors hover:text-foreground`,onClick:E,type:`button`,children:D}),t[18]=E,t[19]=D,t[20]=O):O=t[20];let k;t[21]!==O||t[22]!==T?(k=(0,u.jsxs)(`div`,{className:`flex items-center gap-2 rounded border border-border bg-background px-3 py-2 font-mono text-xs`,children:[w,T,O]}),t[21]=O,t[22]=T,t[23]=k):k=t[23];let A;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(A=(0,u.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:`Run from any authenticated spx CLI host. The command downloads and registers the published node image, then click Recheck.`}),t[24]=A):A=t[24];let j=m?`size-4 animate-spin`:`size-4`,M;t[25]===j?M=t[26]:(M=(0,u.jsx)(a,{className:j}),t[25]=j,t[26]=M);let N;t[27]!==m||t[28]!==h||t[29]!==M?(N=(0,u.jsxs)(o,{disabled:m,onClick:h,size:`sm`,variant:`outline`,children:[M,`Recheck`]}),t[27]=m,t[28]=h,t[29]=M,t[30]=N):N=t[30];let P;t[31]!==k||t[32]!==N||t[33]!==C?(P=(0,u.jsxs)(`div`,{className:`flex items-start gap-3`,children:[b,(0,u.jsxs)(`div`,{className:`space-y-4`,children:[C,k,A,N]})]}),t[31]=k,t[32]=N,t[33]=C,t[34]=P):P=t[34];let F;return t[35]!==y||t[36]!==P?(F=(0,u.jsx)(`div`,{className:y,children:P}),t[35]=y,t[36]=P,t[37]=F):F=t[37],F}export{d as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/tags-editor.js b/spinifex/services/spinifexui/frontend/dist/assets/tags-editor.js index 12a1e3655..7ce9a84ff 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/tags-editor.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/tags-editor.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{c as i,i as a,n as o,s,t as c}from"./select.js";import{t as l}from"./plus.js";import{t as u}from"./trash-2.js";import{t as d}from"./button.js";import{Ln as f,an as p,rn as m,sn as h}from"./index.js";var ee=r(),te=t(n(),1),g=e();function ne(e,t){let n=new Map;for(let e of t)e.Key!==void 0&&n.set(e.Key,e.Value??``);let r={};for(let t of e)r[t.key]=n.get(t.key)??``;return r}function _(e,t){if(e.type===`int`){if(t.trim()===``)return`Value is required`;if(!/^-?\d+$/.test(t))return`Must be a whole number`;let n=Number(t);if(e.min!==void 0&&ne.max)return`Must be at most ${e.max}`}}function v(e){let t=(0,ee.c)(56),{specs:n,attributes:r,onSubmit:a,isPending:l,error:u,isSuccess:v}=e,b;t[0]!==r||t[1]!==n?(b=ne(n,r),t[0]=r,t[1]=n,t[2]=b):b=t[2];let x=b,[S,C]=(0,te.useState)(x),w;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(w=(e,t)=>{C(n=>({...n,[e]:t}))},t[3]=w):w=t[3];let T=w,E;if(t[4]!==n||t[5]!==S){E={};for(let e of n)E[e.key]=_(e,S[e.key]??``);t[4]=n,t[5]=S,t[6]=E}else E=t[6];let D=Object.values(E).some(Boolean),O;if(t[7]!==x||t[8]!==n||t[9]!==S){let e;t[11]!==x||t[12]!==S?(e=e=>(S[e.key]??``)!==(x[e.key]??``),t[11]=x,t[12]=S,t[13]=e):e=t[13];let r;t[14]===S?r=t[15]:(r=e=>({key:e.key,value:S[e.key]??``}),t[14]=S,t[15]=r),O=n.filter(e).map(r),t[7]=x,t[8]=n,t[9]=S,t[10]=O}else O=t[10];let k=O,A;t[16]===x?A=t[17]:(A=()=>{C(x)},t[16]=x,t[17]=A);let j=A,M;t[18]!==k||t[19]!==D||t[20]!==a?(M=e=>{e.preventDefault(),!(D||k.length===0)&&a(k)},t[18]=k,t[19]=D,t[20]=a,t[21]=M):M=t[21];let N;t[22]===u?N=t[23]:(N=u&&(0,g.jsx)(`div`,{className:`mb-4 rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive`,role:`alert`,children:u.message||`Failed to save attributes`}),t[22]=u,t[23]=N);let P;t[24]!==k.length||t[25]!==v?(P=v&&k.length===0&&(0,g.jsx)(`div`,{className:`mb-4 rounded-md border border-emerald-500 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400`,role:`status`,children:`Attributes saved.`}),t[24]=k.length,t[25]=v,t[26]=P):P=t[26];let F;if(t[27]!==E||t[28]!==n||t[29]!==S){let e;t[31]!==E||t[32]!==S?(e=e=>{let t=`attr-${e.key}`,n=S[e.key]??``,r=E[e.key];return(0,g.jsxs)(m,{children:[(0,g.jsx)(h,{children:(0,g.jsx)(`label`,{htmlFor:t,children:e.label})}),e.type===`bool`&&(0,g.jsx)(`input`,{"aria-label":e.label,checked:n===`true`,id:t,onChange:t=>T(e.key,t.target.checked?`true`:`false`),type:`checkbox`}),e.type===`int`&&(0,g.jsx)(f,{"aria-invalid":!!r,id:t,inputMode:`numeric`,onChange:t=>T(e.key,t.target.value),value:n}),e.type===`text`&&(0,g.jsx)(f,{id:t,onChange:t=>T(e.key,t.target.value),placeholder:e.placeholder,value:n}),e.type===`select`&&(0,g.jsxs)(c,{onValueChange:t=>T(e.key,t??``),value:n,children:[(0,g.jsx)(s,{className:`w-full`,id:t,children:(0,g.jsx)(i,{})}),(0,g.jsx)(o,{children:e.options.map(y)})]}),e.description&&(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.description}),(0,g.jsx)(p,{errors:[r?{message:r}:void 0]})]},e.key)},t[31]=E,t[32]=S,t[33]=e):e=t[33],F=n.map(e),t[27]=E,t[28]=n,t[29]=S,t[30]=F}else F=t[30];let I;t[34]===F?I=t[35]:(I=(0,g.jsx)(`div`,{className:`grid gap-4 p-4 sm:grid-cols-2`,children:F}),t[34]=F,t[35]=I);let L=k.length===0?`No changes`:`${k.length} change${k.length===1?``:`s`} pending`,R;t[36]===L?R=t[37]:(R=(0,g.jsx)(`span`,{className:`mr-auto text-xs text-muted-foreground`,children:L}),t[36]=L,t[37]=R);let z=l||k.length===0,B;t[38]!==j||t[39]!==z?(B=(0,g.jsx)(d,{disabled:z,onClick:j,size:`sm`,type:`button`,variant:`secondary`,children:`Reset`}),t[38]=j,t[39]=z,t[40]=B):B=t[40];let V=l||D||k.length===0,H=l?`Saving…`:`Save changes`,U;t[41]!==V||t[42]!==H?(U=(0,g.jsx)(d,{disabled:V,size:`sm`,type:`submit`,children:H}),t[41]=V,t[42]=H,t[43]=U):U=t[43];let W;t[44]!==R||t[45]!==B||t[46]!==U?(W=(0,g.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t p-4`,children:[R,B,U]}),t[44]=R,t[45]=B,t[46]=U,t[47]=W):W=t[47];let G;t[48]!==W||t[49]!==I?(G=(0,g.jsxs)(`div`,{className:`rounded-lg border bg-card`,children:[I,W]}),t[48]=W,t[49]=I,t[50]=G):G=t[50];let K;return t[51]!==G||t[52]!==M||t[53]!==N||t[54]!==P?(K=(0,g.jsxs)(`form`,{onSubmit:M,children:[N,P,G]}),t[51]=G,t[52]=M,t[53]=N,t[54]=P,t[55]=K):K=t[55],K}function y(e){return(0,g.jsx)(a,{value:e,children:e},e)}var b=[{key:`deletion_protection.enabled`,label:`Deletion protection`,type:`bool`},{key:`load_balancing.cross_zone.enabled`,label:`Cross-zone load balancing`,type:`bool`},{key:`idle_timeout.timeout_seconds`,label:`Idle timeout (s)`,type:`int`,min:1,max:4e3},{key:`client_keep_alive.seconds`,label:`Client keep-alive (s)`,type:`int`,min:60,max:604800},{key:`routing.http2.enabled`,label:`HTTP/2`,type:`bool`},{key:`routing.http.drop_invalid_header_fields.enabled`,label:`Drop invalid header fields`,type:`bool`},{key:`routing.http.preserve_host_header.enabled`,label:`Preserve host header`,type:`bool`},{key:`routing.http.xff_client_port.enabled`,label:`XFF client port`,type:`bool`},{key:`routing.http.xff_header_processing.mode`,label:`XFF header processing`,type:`select`,options:[`append`,`preserve`,`remove`]},{key:`routing.http.desync_mitigation_mode`,label:`Desync mitigation mode`,type:`select`,options:[`defensive`,`strictest`,`monitor`]},{key:`routing.http.x_amzn_tls_version_and_cipher_suite.enabled`,label:`Add TLS version & cipher headers`,type:`bool`},{key:`waf.fail_open.enabled`,label:`WAF fail open`,type:`bool`},{key:`zonal_shift.config.enabled`,label:`Zonal shift`,type:`bool`},{key:`access_logs.s3.enabled`,label:`Access logs: enabled`,type:`bool`},{key:`access_logs.s3.bucket`,label:`Access logs: S3 bucket`,type:`text`},{key:`access_logs.s3.prefix`,label:`Access logs: S3 prefix`,type:`text`},{key:`connection_logs.s3.enabled`,label:`Connection logs: enabled`,type:`bool`},{key:`connection_logs.s3.bucket`,label:`Connection logs: S3 bucket`,type:`text`},{key:`connection_logs.s3.prefix`,label:`Connection logs: S3 prefix`,type:`text`}],x=[{key:`deregistration_delay.timeout_seconds`,label:`Deregistration delay (s)`,type:`int`,min:0,max:3600},{key:`stickiness.enabled`,label:`Stickiness`,type:`bool`},{key:`stickiness.type`,label:`Stickiness type`,type:`select`,options:[`lb_cookie`,`source_ip`]},{key:`stickiness.lb_cookie.duration_seconds`,label:`Stickiness lb_cookie duration (s)`,type:`int`,min:1,max:604800},{key:`load_balancing.cross_zone.enabled`,label:`Cross-zone load balancing`,type:`select`,options:[`true`,`false`,`use_load_balancer_configuration`]},{key:`load_balancing.algorithm.type`,label:`Load balancing algorithm`,type:`select`,options:[`round_robin`,`least_outstanding_requests`]},{key:`slow_start.duration_seconds`,label:`Slow start duration (s)`,type:`int`,min:0,max:900}];function S(e){return e.map((e,t)=>({id:t,key:e.Key??``,value:e.Value??``}))}function C(e){return e.map(e=>({key:e.key.trim(),value:e.value})).filter(e=>e.key.length>0)}function w(e){let t=(0,ee.c)(66),{tags:n,onSubmit:r,isPending:i,error:a,isSuccess:o}=e,s;t[0]===n?s=t[1]:(s=S(n),t[0]=n,t[1]=s);let c=s,[p,m]=(0,te.useState)(c),[h,ne]=(0,te.useState)(c.length),_;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(_=(e,t)=>{m(n=>n.map(n=>n.id===e?{...n,...t}:n))},t[2]=_):_=t[2];let v=_,y;t[3]===h?y=t[4]:(y=()=>{m(e=>[...e,{id:h,key:``,value:``}]),ne(D)},t[3]=h,t[4]=y);let b=y,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{m(t=>t.filter(t=>t.id!==e))},t[5]=x):x=t[5];let w=x,O;t[6]===c?O=t[7]:(O=()=>{m(c)},t[6]=c,t[7]=O);let k=O,A;t[8]===p?A=t[9]:(A=p.some(E),t[8]=p,t[9]=A);let j=A,M,N,P,F;if(t[10]!==j||t[11]!==p){P=C(p);let e=P.map(T);M=new Set(e).size!==e.length,N=j||M,F=JSON.stringify(P),t[10]=j,t[11]=p,t[12]=M,t[13]=N,t[14]=P,t[15]=F}else M=t[12],N=t[13],P=t[14],F=t[15];let I;t[16]===c?I=t[17]:(I=JSON.stringify(C(c)),t[16]=c,t[17]=I);let L=F!==I,R;t[18]!==L||t[19]!==N||t[20]!==P||t[21]!==r?(R=e=>{e.preventDefault(),!(N||!L)&&r(P)},t[18]=L,t[19]=N,t[20]=P,t[21]=r,t[22]=R):R=t[22];let z;t[23]===a?z=t[24]:(z=a&&(0,g.jsx)(`div`,{className:`mb-4 rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive`,role:`alert`,children:a.message||`Failed to save tags`}),t[23]=a,t[24]=z);let B;t[25]!==L||t[26]!==o?(B=o&&!L&&(0,g.jsx)(`div`,{className:`mb-4 rounded-md border border-emerald-500 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400`,role:`status`,children:`Tags saved.`}),t[25]=L,t[26]=o,t[27]=B):B=t[27];let V;t[28]===p.length?V=t[29]:(V=p.length===0&&(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No tags.`}),t[28]=p.length,t[29]=V);let H;if(t[30]!==p){let e;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(e=e=>(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(f,{"aria-label":`Tag key`,onChange:t=>v(e.id,{key:t.target.value}),placeholder:`Key`,value:e.key}),(0,g.jsx)(f,{"aria-label":`Tag value`,onChange:t=>v(e.id,{value:t.target.value}),placeholder:`Value`,value:e.value}),(0,g.jsx)(d,{"aria-label":`Remove tag`,onClick:()=>w(e.id),size:`icon`,type:`button`,variant:`ghost`,children:(0,g.jsx)(u,{className:`size-4`})})]},e.id),t[32]=e):e=t[32],H=p.map(e),t[30]=p,t[31]=H}else H=t[31];let U;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,g.jsx)(l,{className:`size-4`}),t[33]=U):U=t[33];let W;t[34]===b?W=t[35]:(W=(0,g.jsx)(`div`,{children:(0,g.jsxs)(d,{onClick:b,size:`sm`,type:`button`,variant:`secondary`,children:[U,` Add tag`]})}),t[34]=b,t[35]=W);let G;t[36]===j?G=t[37]:(G=j&&(0,g.jsx)(`p`,{className:`text-xs text-destructive`,children:`Every tag with a value needs a key.`}),t[36]=j,t[37]=G);let K;t[38]===M?K=t[39]:(K=M&&(0,g.jsx)(`p`,{className:`text-xs text-destructive`,children:`Tag keys must be unique.`}),t[38]=M,t[39]=K);let q;t[40]!==V||t[41]!==H||t[42]!==W||t[43]!==G||t[44]!==K?(q=(0,g.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[V,H,W,G,K]}),t[40]=V,t[41]=H,t[42]=W,t[43]=G,t[44]=K,t[45]=q):q=t[45];let re=L?`Unsaved changes`:`No changes`,J;t[46]===re?J=t[47]:(J=(0,g.jsx)(`span`,{className:`mr-auto text-xs text-muted-foreground`,children:re}),t[46]=re,t[47]=J);let ie=i||!L,Y;t[48]!==k||t[49]!==ie?(Y=(0,g.jsx)(d,{disabled:ie,onClick:k,size:`sm`,type:`button`,variant:`secondary`,children:`Reset`}),t[48]=k,t[49]=ie,t[50]=Y):Y=t[50];let ae=i||N||!L,oe=i?`Saving…`:`Save changes`,X;t[51]!==ae||t[52]!==oe?(X=(0,g.jsx)(d,{disabled:ae,size:`sm`,type:`submit`,children:oe}),t[51]=ae,t[52]=oe,t[53]=X):X=t[53];let Z;t[54]!==J||t[55]!==Y||t[56]!==X?(Z=(0,g.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t p-4`,children:[J,Y,X]}),t[54]=J,t[55]=Y,t[56]=X,t[57]=Z):Z=t[57];let Q;t[58]!==q||t[59]!==Z?(Q=(0,g.jsxs)(`div`,{className:`rounded-lg border bg-card`,children:[q,Z]}),t[58]=q,t[59]=Z,t[60]=Q):Q=t[60];let $;return t[61]!==z||t[62]!==B||t[63]!==Q||t[64]!==R?($=(0,g.jsxs)(`form`,{onSubmit:R,children:[z,B,Q]}),t[61]=z,t[62]=B,t[63]=Q,t[64]=R,t[65]=$):$=t[65],$}function T(e){return e.key}function E(e){return e.key.trim().length===0&&e.value.length>0}function D(e){return e+1}export{x as i,v as n,b as r,w as t}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{c as i,i as a,n as o,s,t as c}from"./select.js";import{t as l}from"./plus.js";import{t as u}from"./trash-2.js";import{t as d}from"./button.js";import{Rn as f,dn as p,hn as m,pn as h}from"./index.js";var ee=r(),te=t(n(),1),g=e();function ne(e,t){let n=new Map;for(let e of t)e.Key!==void 0&&n.set(e.Key,e.Value??``);let r={};for(let t of e)r[t.key]=n.get(t.key)??``;return r}function _(e,t){if(e.type===`int`){if(t.trim()===``)return`Value is required`;if(!/^-?\d+$/.test(t))return`Must be a whole number`;let n=Number(t);if(e.min!==void 0&&ne.max)return`Must be at most ${e.max}`}}function v(e){let t=(0,ee.c)(56),{specs:n,attributes:r,onSubmit:a,isPending:l,error:u,isSuccess:v}=e,b;t[0]!==r||t[1]!==n?(b=ne(n,r),t[0]=r,t[1]=n,t[2]=b):b=t[2];let x=b,[S,C]=(0,te.useState)(x),w;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(w=(e,t)=>{C(n=>({...n,[e]:t}))},t[3]=w):w=t[3];let T=w,E;if(t[4]!==n||t[5]!==S){E={};for(let e of n)E[e.key]=_(e,S[e.key]??``);t[4]=n,t[5]=S,t[6]=E}else E=t[6];let D=Object.values(E).some(Boolean),O;if(t[7]!==x||t[8]!==n||t[9]!==S){let e;t[11]!==x||t[12]!==S?(e=e=>(S[e.key]??``)!==(x[e.key]??``),t[11]=x,t[12]=S,t[13]=e):e=t[13];let r;t[14]===S?r=t[15]:(r=e=>({key:e.key,value:S[e.key]??``}),t[14]=S,t[15]=r),O=n.filter(e).map(r),t[7]=x,t[8]=n,t[9]=S,t[10]=O}else O=t[10];let k=O,A;t[16]===x?A=t[17]:(A=()=>{C(x)},t[16]=x,t[17]=A);let j=A,M;t[18]!==k||t[19]!==D||t[20]!==a?(M=e=>{e.preventDefault(),!(D||k.length===0)&&a(k)},t[18]=k,t[19]=D,t[20]=a,t[21]=M):M=t[21];let N;t[22]===u?N=t[23]:(N=u&&(0,g.jsx)(`div`,{className:`mb-4 rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive`,role:`alert`,children:u.message||`Failed to save attributes`}),t[22]=u,t[23]=N);let P;t[24]!==k.length||t[25]!==v?(P=v&&k.length===0&&(0,g.jsx)(`div`,{className:`mb-4 rounded-md border border-emerald-500 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400`,role:`status`,children:`Attributes saved.`}),t[24]=k.length,t[25]=v,t[26]=P):P=t[26];let F;if(t[27]!==E||t[28]!==n||t[29]!==S){let e;t[31]!==E||t[32]!==S?(e=e=>{let t=`attr-${e.key}`,n=S[e.key]??``,r=E[e.key];return(0,g.jsxs)(p,{children:[(0,g.jsx)(m,{children:(0,g.jsx)(`label`,{htmlFor:t,children:e.label})}),e.type===`bool`&&(0,g.jsx)(`input`,{"aria-label":e.label,checked:n===`true`,id:t,onChange:t=>T(e.key,t.target.checked?`true`:`false`),type:`checkbox`}),e.type===`int`&&(0,g.jsx)(f,{"aria-invalid":!!r,id:t,inputMode:`numeric`,onChange:t=>T(e.key,t.target.value),value:n}),e.type===`text`&&(0,g.jsx)(f,{id:t,onChange:t=>T(e.key,t.target.value),placeholder:e.placeholder,value:n}),e.type===`select`&&(0,g.jsxs)(c,{onValueChange:t=>T(e.key,t??``),value:n,children:[(0,g.jsx)(s,{className:`w-full`,id:t,children:(0,g.jsx)(i,{})}),(0,g.jsx)(o,{children:e.options.map(y)})]}),e.description&&(0,g.jsx)(`p`,{className:`text-xs text-muted-foreground`,children:e.description}),(0,g.jsx)(h,{errors:[r?{message:r}:void 0]})]},e.key)},t[31]=E,t[32]=S,t[33]=e):e=t[33],F=n.map(e),t[27]=E,t[28]=n,t[29]=S,t[30]=F}else F=t[30];let I;t[34]===F?I=t[35]:(I=(0,g.jsx)(`div`,{className:`grid gap-4 p-4 sm:grid-cols-2`,children:F}),t[34]=F,t[35]=I);let L=k.length===0?`No changes`:`${k.length} change${k.length===1?``:`s`} pending`,R;t[36]===L?R=t[37]:(R=(0,g.jsx)(`span`,{className:`mr-auto text-xs text-muted-foreground`,children:L}),t[36]=L,t[37]=R);let z=l||k.length===0,B;t[38]!==j||t[39]!==z?(B=(0,g.jsx)(d,{disabled:z,onClick:j,size:`sm`,type:`button`,variant:`secondary`,children:`Reset`}),t[38]=j,t[39]=z,t[40]=B):B=t[40];let V=l||D||k.length===0,H=l?`Saving…`:`Save changes`,U;t[41]!==V||t[42]!==H?(U=(0,g.jsx)(d,{disabled:V,size:`sm`,type:`submit`,children:H}),t[41]=V,t[42]=H,t[43]=U):U=t[43];let W;t[44]!==R||t[45]!==B||t[46]!==U?(W=(0,g.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t p-4`,children:[R,B,U]}),t[44]=R,t[45]=B,t[46]=U,t[47]=W):W=t[47];let G;t[48]!==W||t[49]!==I?(G=(0,g.jsxs)(`div`,{className:`rounded-lg border bg-card`,children:[I,W]}),t[48]=W,t[49]=I,t[50]=G):G=t[50];let K;return t[51]!==G||t[52]!==M||t[53]!==N||t[54]!==P?(K=(0,g.jsxs)(`form`,{onSubmit:M,children:[N,P,G]}),t[51]=G,t[52]=M,t[53]=N,t[54]=P,t[55]=K):K=t[55],K}function y(e){return(0,g.jsx)(a,{value:e,children:e},e)}var b=[{key:`deletion_protection.enabled`,label:`Deletion protection`,type:`bool`},{key:`load_balancing.cross_zone.enabled`,label:`Cross-zone load balancing`,type:`bool`},{key:`idle_timeout.timeout_seconds`,label:`Idle timeout (s)`,type:`int`,min:1,max:4e3},{key:`client_keep_alive.seconds`,label:`Client keep-alive (s)`,type:`int`,min:60,max:604800},{key:`routing.http2.enabled`,label:`HTTP/2`,type:`bool`},{key:`routing.http.drop_invalid_header_fields.enabled`,label:`Drop invalid header fields`,type:`bool`},{key:`routing.http.preserve_host_header.enabled`,label:`Preserve host header`,type:`bool`},{key:`routing.http.xff_client_port.enabled`,label:`XFF client port`,type:`bool`},{key:`routing.http.xff_header_processing.mode`,label:`XFF header processing`,type:`select`,options:[`append`,`preserve`,`remove`]},{key:`routing.http.desync_mitigation_mode`,label:`Desync mitigation mode`,type:`select`,options:[`defensive`,`strictest`,`monitor`]},{key:`routing.http.x_amzn_tls_version_and_cipher_suite.enabled`,label:`Add TLS version & cipher headers`,type:`bool`},{key:`waf.fail_open.enabled`,label:`WAF fail open`,type:`bool`},{key:`zonal_shift.config.enabled`,label:`Zonal shift`,type:`bool`},{key:`access_logs.s3.enabled`,label:`Access logs: enabled`,type:`bool`},{key:`access_logs.s3.bucket`,label:`Access logs: S3 bucket`,type:`text`},{key:`access_logs.s3.prefix`,label:`Access logs: S3 prefix`,type:`text`},{key:`connection_logs.s3.enabled`,label:`Connection logs: enabled`,type:`bool`},{key:`connection_logs.s3.bucket`,label:`Connection logs: S3 bucket`,type:`text`},{key:`connection_logs.s3.prefix`,label:`Connection logs: S3 prefix`,type:`text`}],x=[{key:`deregistration_delay.timeout_seconds`,label:`Deregistration delay (s)`,type:`int`,min:0,max:3600},{key:`stickiness.enabled`,label:`Stickiness`,type:`bool`},{key:`stickiness.type`,label:`Stickiness type`,type:`select`,options:[`lb_cookie`,`source_ip`]},{key:`stickiness.lb_cookie.duration_seconds`,label:`Stickiness lb_cookie duration (s)`,type:`int`,min:1,max:604800},{key:`load_balancing.cross_zone.enabled`,label:`Cross-zone load balancing`,type:`select`,options:[`true`,`false`,`use_load_balancer_configuration`]},{key:`load_balancing.algorithm.type`,label:`Load balancing algorithm`,type:`select`,options:[`round_robin`,`least_outstanding_requests`]},{key:`slow_start.duration_seconds`,label:`Slow start duration (s)`,type:`int`,min:0,max:900}];function S(e){return e.map((e,t)=>({id:t,key:e.Key??``,value:e.Value??``}))}function C(e){return e.map(e=>({key:e.key.trim(),value:e.value})).filter(e=>e.key.length>0)}function w(e){let t=(0,ee.c)(66),{tags:n,onSubmit:r,isPending:i,error:a,isSuccess:o}=e,s;t[0]===n?s=t[1]:(s=S(n),t[0]=n,t[1]=s);let c=s,[p,m]=(0,te.useState)(c),[h,ne]=(0,te.useState)(c.length),_;t[2]===Symbol.for(`react.memo_cache_sentinel`)?(_=(e,t)=>{m(n=>n.map(n=>n.id===e?{...n,...t}:n))},t[2]=_):_=t[2];let v=_,y;t[3]===h?y=t[4]:(y=()=>{m(e=>[...e,{id:h,key:``,value:``}]),ne(D)},t[3]=h,t[4]=y);let b=y,x;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(x=e=>{m(t=>t.filter(t=>t.id!==e))},t[5]=x):x=t[5];let w=x,O;t[6]===c?O=t[7]:(O=()=>{m(c)},t[6]=c,t[7]=O);let k=O,A;t[8]===p?A=t[9]:(A=p.some(E),t[8]=p,t[9]=A);let j=A,M,N,P,F;if(t[10]!==j||t[11]!==p){P=C(p);let e=P.map(T);M=new Set(e).size!==e.length,N=j||M,F=JSON.stringify(P),t[10]=j,t[11]=p,t[12]=M,t[13]=N,t[14]=P,t[15]=F}else M=t[12],N=t[13],P=t[14],F=t[15];let I;t[16]===c?I=t[17]:(I=JSON.stringify(C(c)),t[16]=c,t[17]=I);let L=F!==I,R;t[18]!==L||t[19]!==N||t[20]!==P||t[21]!==r?(R=e=>{e.preventDefault(),!(N||!L)&&r(P)},t[18]=L,t[19]=N,t[20]=P,t[21]=r,t[22]=R):R=t[22];let z;t[23]===a?z=t[24]:(z=a&&(0,g.jsx)(`div`,{className:`mb-4 rounded-md border border-destructive bg-destructive/10 p-3 text-sm text-destructive`,role:`alert`,children:a.message||`Failed to save tags`}),t[23]=a,t[24]=z);let B;t[25]!==L||t[26]!==o?(B=o&&!L&&(0,g.jsx)(`div`,{className:`mb-4 rounded-md border border-emerald-500 bg-emerald-500/10 p-3 text-sm text-emerald-700 dark:text-emerald-400`,role:`status`,children:`Tags saved.`}),t[25]=L,t[26]=o,t[27]=B):B=t[27];let V;t[28]===p.length?V=t[29]:(V=p.length===0&&(0,g.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`No tags.`}),t[28]=p.length,t[29]=V);let H;if(t[30]!==p){let e;t[32]===Symbol.for(`react.memo_cache_sentinel`)?(e=e=>(0,g.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,g.jsx)(f,{"aria-label":`Tag key`,onChange:t=>v(e.id,{key:t.target.value}),placeholder:`Key`,value:e.key}),(0,g.jsx)(f,{"aria-label":`Tag value`,onChange:t=>v(e.id,{value:t.target.value}),placeholder:`Value`,value:e.value}),(0,g.jsx)(d,{"aria-label":`Remove tag`,onClick:()=>w(e.id),size:`icon`,type:`button`,variant:`ghost`,children:(0,g.jsx)(u,{className:`size-4`})})]},e.id),t[32]=e):e=t[32],H=p.map(e),t[30]=p,t[31]=H}else H=t[31];let U;t[33]===Symbol.for(`react.memo_cache_sentinel`)?(U=(0,g.jsx)(l,{className:`size-4`}),t[33]=U):U=t[33];let W;t[34]===b?W=t[35]:(W=(0,g.jsx)(`div`,{children:(0,g.jsxs)(d,{onClick:b,size:`sm`,type:`button`,variant:`secondary`,children:[U,` Add tag`]})}),t[34]=b,t[35]=W);let G;t[36]===j?G=t[37]:(G=j&&(0,g.jsx)(`p`,{className:`text-xs text-destructive`,children:`Every tag with a value needs a key.`}),t[36]=j,t[37]=G);let K;t[38]===M?K=t[39]:(K=M&&(0,g.jsx)(`p`,{className:`text-xs text-destructive`,children:`Tag keys must be unique.`}),t[38]=M,t[39]=K);let q;t[40]!==V||t[41]!==H||t[42]!==W||t[43]!==G||t[44]!==K?(q=(0,g.jsxs)(`div`,{className:`flex flex-col gap-2 p-4`,children:[V,H,W,G,K]}),t[40]=V,t[41]=H,t[42]=W,t[43]=G,t[44]=K,t[45]=q):q=t[45];let re=L?`Unsaved changes`:`No changes`,J;t[46]===re?J=t[47]:(J=(0,g.jsx)(`span`,{className:`mr-auto text-xs text-muted-foreground`,children:re}),t[46]=re,t[47]=J);let ie=i||!L,Y;t[48]!==k||t[49]!==ie?(Y=(0,g.jsx)(d,{disabled:ie,onClick:k,size:`sm`,type:`button`,variant:`secondary`,children:`Reset`}),t[48]=k,t[49]=ie,t[50]=Y):Y=t[50];let ae=i||N||!L,oe=i?`Saving…`:`Save changes`,X;t[51]!==ae||t[52]!==oe?(X=(0,g.jsx)(d,{disabled:ae,size:`sm`,type:`submit`,children:oe}),t[51]=ae,t[52]=oe,t[53]=X):X=t[53];let Z;t[54]!==J||t[55]!==Y||t[56]!==X?(Z=(0,g.jsxs)(`div`,{className:`flex items-center justify-end gap-2 border-t p-4`,children:[J,Y,X]}),t[54]=J,t[55]=Y,t[56]=X,t[57]=Z):Z=t[57];let Q;t[58]!==q||t[59]!==Z?(Q=(0,g.jsxs)(`div`,{className:`rounded-lg border bg-card`,children:[q,Z]}),t[58]=q,t[59]=Z,t[60]=Q):Q=t[60];let $;return t[61]!==z||t[62]!==B||t[63]!==Q||t[64]!==R?($=(0,g.jsxs)(`form`,{onSubmit:R,children:[z,B,Q]}),t[61]=z,t[62]=B,t[63]=Q,t[64]=R,t[65]=$):$=t[65],$}function T(e){return e.key}function E(e){return e.key.trim().length===0&&e.value.length>0}function D(e){return e+1}export{x as i,v as n,b as r,w as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/target-group-form.js b/spinifex/services/spinifexui/frontend/dist/assets/target-group-form.js index 4f604721a..f14ee339e 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/target-group-form.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/target-group-form.js @@ -1 +1 @@ -import{n as e,t}from"./compiler-runtime.js";import{$t as ee}from"./auth.js";import{c as te,i as ne,n as re,s as ie,t as ae}from"./select.js";import{t as oe}from"./plus.js";import{t as se}from"./trash-2.js";import{t as ce}from"./button.js";import{Ln as n,Sn as le,an as r,cn as ue,ln as de,rn as i,sn as a,un as fe,yn as pe}from"./index.js";var me=t(),o=e(),he=[`HTTP`,`HTTPS`,`TCP`,`UDP`,`TLS`,`TCP_UDP`];function ge(e){let t=(0,me.c)(145),{form:ee,vpcs:ne,allowedProtocols:ge}=e,ye=ge===void 0?he:ge,{control:s,register:c,setValue:l,getValues:u,formState:be}=ee,{errors:d}=be,xe;t[0]===s?xe=t[1]:(xe={control:s,name:`tags`},t[0]=s,t[1]=xe);let Se=le(xe),Ce;t[2]===s?Ce=t[3]:(Ce={control:s,name:`protocol`},t[2]=s,t[3]=Ce);let we=le(Ce),f=we===`HTTP`||we===`HTTPS`,Te;t[4]===l?Te=t[5]:(Te=e=>{e&&(l(`protocol`,e),l(`healthCheck.protocol`,e===`HTTP`||e===`HTTPS`?`HTTP`:`TCP`))},t[4]=l,t[5]=Te);let Ee=Te,De;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`tg-name`,children:`Name`})}),t[6]=De):De=t[6];let Oe=!!d.name,p;t[7]===c?p=t[8]:(p=c(`name`),t[7]=c,t[8]=p);let m;t[9]!==Oe||t[10]!==p?(m=(0,o.jsx)(n,{"aria-invalid":Oe,id:`tg-name`,placeholder:`my-target-group`,...p}),t[9]=Oe,t[10]=p,t[11]=m):m=t[11];let h;t[12]===d.name?h=t[13]:(h=(0,o.jsx)(r,{errors:[d.name]}),t[12]=d.name,t[13]=h);let g;t[14]!==h||t[15]!==m?(g=(0,o.jsxs)(i,{children:[De,m,h]}),t[14]=h,t[15]=m,t[16]=g):g=t[16];let ke;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`tg-protocol`,children:`Protocol`})}),t[17]=ke):ke=t[17];let _;t[18]!==ye||t[19]!==Ee?(_=e=>{let{field:t}=e;return(0,o.jsxs)(ae,{onValueChange:Ee,value:t.value,children:[(0,o.jsx)(ie,{className:`w-full`,id:`tg-protocol`,children:(0,o.jsx)(te,{})}),(0,o.jsx)(re,{children:ye.map(ve)})]})},t[18]=ye,t[19]=Ee,t[20]=_):_=t[20];let v;t[21]!==s||t[22]!==_?(v=(0,o.jsxs)(i,{children:[ke,(0,o.jsx)(pe,{control:s,name:`protocol`,render:_})]}),t[21]=s,t[22]=_,t[23]=v):v=t[23];let Ae;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`tg-port`,children:`Port`})}),t[24]=Ae):Ae=t[24];let je=!!d.port,y;t[25]===c?y=t[26]:(y=c(`port`,{valueAsNumber:!0}),t[25]=c,t[26]=y);let b;t[27]!==je||t[28]!==y?(b=(0,o.jsx)(n,{"aria-invalid":je,id:`tg-port`,inputMode:`numeric`,placeholder:`80`,type:`number`,...y}),t[27]=je,t[28]=y,t[29]=b):b=t[29];let x;t[30]===d.port?x=t[31]:(x=(0,o.jsx)(r,{errors:[d.port]}),t[30]=d.port,t[31]=x);let S;t[32]!==b||t[33]!==x?(S=(0,o.jsxs)(i,{children:[Ae,b,x]}),t[32]=b,t[33]=x,t[34]=S):S=t[34];let Me;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`tg-vpc`,children:`VPC`})}),t[35]=Me):Me=t[35];let C;t[36]!==d.vpcId||t[37]!==ne?(C=e=>{let{field:t}=e;return(0,o.jsxs)(ae,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,o.jsx)(ie,{"aria-invalid":!!d.vpcId,className:`w-full`,id:`tg-vpc`,children:(0,o.jsx)(te,{placeholder:`Select VPC`})}),(0,o.jsx)(re,{children:ne.map(_e)})]})},t[36]=d.vpcId,t[37]=ne,t[38]=C):C=t[38];let w;t[39]!==s||t[40]!==C?(w=(0,o.jsx)(pe,{control:s,name:`vpcId`,render:C}),t[39]=s,t[40]=C,t[41]=w):w=t[41];let T;t[42]===d.vpcId?T=t[43]:(T=(0,o.jsx)(r,{errors:[d.vpcId]}),t[42]=d.vpcId,t[43]=T);let E;t[44]!==w||t[45]!==T?(E=(0,o.jsxs)(i,{children:[Me,w,T]}),t[44]=w,t[45]=T,t[46]=E):E=t[46];let Ne;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=(0,o.jsx)(fe,{className:`text-left text-sm font-medium text-muted-foreground hover:text-foreground`,render:(0,o.jsx)(`button`,{"aria-label":`Health check settings`,type:`button`}),children:`Health check settings`}),t[47]=Ne):Ne=t[47];let D;t[48]!==d.healthCheck?.path||t[49]!==f||t[50]!==c?(D=f&&(0,o.jsxs)(i,{children:[(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`hc-path`,children:`Path`})}),(0,o.jsx)(n,{"aria-invalid":!!d.healthCheck?.path,id:`hc-path`,placeholder:`/`,...c(`healthCheck.path`)}),(0,o.jsx)(r,{errors:[d.healthCheck?.path]})]}),t[48]=d.healthCheck?.path,t[49]=f,t[50]=c,t[51]=D):D=t[51];let Pe;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Pe=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`hc-port`,children:`Port`})}),t[52]=Pe):Pe=t[52];let Fe=!!d.healthCheck?.port,O;t[53]===c?O=t[54]:(O=c(`healthCheck.port`),t[53]=c,t[54]=O);let k;t[55]!==Fe||t[56]!==O?(k=(0,o.jsx)(n,{"aria-invalid":Fe,id:`hc-port`,placeholder:`traffic-port or numeric`,...O}),t[55]=Fe,t[56]=O,t[57]=k):k=t[57];let Ie=d.healthCheck?.port,A;t[58]===Ie?A=t[59]:(A=(0,o.jsx)(r,{errors:[Ie]}),t[58]=Ie,t[59]=A);let j;t[60]!==k||t[61]!==A?(j=(0,o.jsxs)(i,{children:[Pe,k,A]}),t[60]=k,t[61]=A,t[62]=j):j=t[62];let Le;t[63]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`hc-interval`,children:`Interval (seconds)`})}),t[63]=Le):Le=t[63];let Re=!!d.healthCheck?.intervalSeconds,M;t[64]===c?M=t[65]:(M=c(`healthCheck.intervalSeconds`,{valueAsNumber:!0}),t[64]=c,t[65]=M);let N;t[66]!==Re||t[67]!==M?(N=(0,o.jsx)(n,{"aria-invalid":Re,id:`hc-interval`,inputMode:`numeric`,type:`number`,...M}),t[66]=Re,t[67]=M,t[68]=N):N=t[68];let ze=d.healthCheck?.intervalSeconds,P;t[69]===ze?P=t[70]:(P=(0,o.jsx)(r,{errors:[ze]}),t[69]=ze,t[70]=P);let F;t[71]!==N||t[72]!==P?(F=(0,o.jsxs)(i,{children:[Le,N,P]}),t[71]=N,t[72]=P,t[73]=F):F=t[73];let Be;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`hc-timeout`,children:`Timeout (seconds)`})}),t[74]=Be):Be=t[74];let Ve=!!d.healthCheck?.timeoutSeconds,I;t[75]===c?I=t[76]:(I=c(`healthCheck.timeoutSeconds`,{valueAsNumber:!0}),t[75]=c,t[76]=I);let L;t[77]!==Ve||t[78]!==I?(L=(0,o.jsx)(n,{"aria-invalid":Ve,id:`hc-timeout`,inputMode:`numeric`,type:`number`,...I}),t[77]=Ve,t[78]=I,t[79]=L):L=t[79];let He=d.healthCheck?.timeoutSeconds,R;t[80]===He?R=t[81]:(R=(0,o.jsx)(r,{errors:[He]}),t[80]=He,t[81]=R);let z;t[82]!==L||t[83]!==R?(z=(0,o.jsxs)(i,{children:[Be,L,R]}),t[82]=L,t[83]=R,t[84]=z):z=t[84];let Ue;t[85]===Symbol.for(`react.memo_cache_sentinel`)?(Ue=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`hc-healthy`,children:`Healthy threshold`})}),t[85]=Ue):Ue=t[85];let We=!!d.healthCheck?.healthyThresholdCount,B;t[86]===c?B=t[87]:(B=c(`healthCheck.healthyThresholdCount`,{valueAsNumber:!0}),t[86]=c,t[87]=B);let V;t[88]!==We||t[89]!==B?(V=(0,o.jsx)(n,{"aria-invalid":We,id:`hc-healthy`,inputMode:`numeric`,type:`number`,...B}),t[88]=We,t[89]=B,t[90]=V):V=t[90];let Ge=d.healthCheck?.healthyThresholdCount,H;t[91]===Ge?H=t[92]:(H=(0,o.jsx)(r,{errors:[Ge]}),t[91]=Ge,t[92]=H);let U;t[93]!==V||t[94]!==H?(U=(0,o.jsxs)(i,{children:[Ue,V,H]}),t[93]=V,t[94]=H,t[95]=U):U=t[95];let Ke;t[96]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`hc-unhealthy`,children:`Unhealthy threshold`})}),t[96]=Ke):Ke=t[96];let qe=!!d.healthCheck?.unhealthyThresholdCount,W;t[97]===c?W=t[98]:(W=c(`healthCheck.unhealthyThresholdCount`,{valueAsNumber:!0}),t[97]=c,t[98]=W);let G;t[99]!==qe||t[100]!==W?(G=(0,o.jsx)(n,{"aria-invalid":qe,id:`hc-unhealthy`,inputMode:`numeric`,type:`number`,...W}),t[99]=qe,t[100]=W,t[101]=G):G=t[101];let Je=d.healthCheck?.unhealthyThresholdCount,K;t[102]===Je?K=t[103]:(K=(0,o.jsx)(r,{errors:[Je]}),t[102]=Je,t[103]=K);let q;t[104]!==G||t[105]!==K?(q=(0,o.jsxs)(i,{children:[Ke,G,K]}),t[104]=G,t[105]=K,t[106]=q):q=t[106];let J;t[107]!==d.healthCheck?.matcher||t[108]!==f||t[109]!==c?(J=f&&(0,o.jsxs)(i,{children:[(0,o.jsx)(a,{children:(0,o.jsx)(`label`,{htmlFor:`hc-matcher`,children:`Matcher (HTTP codes)`})}),(0,o.jsx)(n,{"aria-invalid":!!d.healthCheck?.matcher,id:`hc-matcher`,placeholder:`200 or 200-299 or 200,201`,...c(`healthCheck.matcher`)}),(0,o.jsx)(r,{errors:[d.healthCheck?.matcher]})]}),t[107]=d.healthCheck?.matcher,t[108]=f,t[109]=c,t[110]=J):J=t[110];let Y;t[111]!==D||t[112]!==j||t[113]!==F||t[114]!==z||t[115]!==U||t[116]!==q||t[117]!==J?(Y=(0,o.jsxs)(ue,{children:[Ne,(0,o.jsxs)(de,{className:`mt-3 space-y-4 border-l-2 border-muted pl-4`,children:[D,j,F,z,U,q,J]})]}),t[111]=D,t[112]=j,t[113]=F,t[114]=z,t[115]=U,t[116]=q,t[117]=J,t[118]=Y):Y=t[118];let Ye;t[119]===Symbol.for(`react.memo_cache_sentinel`)?(Ye=(0,o.jsx)(a,{children:`Tags`}),t[119]=Ye):Ye=t[119];let X;if(t[120]!==u||t[121]!==c||t[122]!==l||t[123]!==Se){let e;t[125]!==u||t[126]!==c||t[127]!==l?(e=(e,t)=>(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(n,{placeholder:`Key`,...c(`tags.${t}.key`)}),(0,o.jsx)(n,{placeholder:`Value`,...c(`tags.${t}.value`)}),(0,o.jsx)(ce,{onClick:()=>l(`tags`,u(`tags`).filter((e,ee)=>ee!==t)),size:`icon`,type:`button`,variant:`ghost`,children:(0,o.jsx)(se,{className:`size-3.5`})})]},t),t[125]=u,t[126]=c,t[127]=l,t[128]=e):e=t[128],X=Se.map(e),t[120]=u,t[121]=c,t[122]=l,t[123]=Se,t[124]=X}else X=t[124];let Z;t[129]!==u||t[130]!==l?(Z=()=>l(`tags`,[...u(`tags`),{key:``,value:``}]),t[129]=u,t[130]=l,t[131]=Z):Z=t[131];let Xe;t[132]===Symbol.for(`react.memo_cache_sentinel`)?(Xe=(0,o.jsx)(oe,{className:`size-3.5`}),t[132]=Xe):Xe=t[132];let Q;t[133]===Z?Q=t[134]:(Q=(0,o.jsxs)(ce,{onClick:Z,size:`sm`,type:`button`,variant:`outline`,children:[Xe,`Add tag`]}),t[133]=Z,t[134]=Q);let $;t[135]!==X||t[136]!==Q?($=(0,o.jsxs)(i,{children:[Ye,(0,o.jsxs)(`div`,{className:`space-y-2`,children:[X,Q]})]}),t[135]=X,t[136]=Q,t[137]=$):$=t[137];let Ze;return t[138]!==g||t[139]!==v||t[140]!==S||t[141]!==E||t[142]!==Y||t[143]!==$?(Ze=(0,o.jsxs)(o.Fragment,{children:[g,v,S,E,Y,$]}),t[138]=g,t[139]=v,t[140]=S,t[141]=E,t[142]=Y,t[143]=$,t[144]=Ze):Ze=t[144],Ze}function _e(e){let t=ee(e.Tags);return(0,o.jsx)(ne,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}function ve(e){return(0,o.jsx)(ne,{value:e,children:e},e)}export{ge as t}; \ No newline at end of file +import{n as e,t}from"./compiler-runtime.js";import{$t as ee}from"./auth.js";import{c as te,i as ne,n as re,s as ie,t as ae}from"./select.js";import{t as oe}from"./plus.js";import{t as se}from"./trash-2.js";import{t as ce}from"./button.js";import{An as le,Dn as ue,Rn as n,_n as de,dn as r,gn as fe,hn as i,pn as a,vn as pe}from"./index.js";var me=t(),o=e(),he=[`HTTP`,`HTTPS`,`TCP`,`UDP`,`TLS`,`TCP_UDP`];function ge(e){let t=(0,me.c)(145),{form:ee,vpcs:ne,allowedProtocols:ge}=e,ye=ge===void 0?he:ge,{control:s,register:c,setValue:l,getValues:u,formState:be}=ee,{errors:d}=be,xe;t[0]===s?xe=t[1]:(xe={control:s,name:`tags`},t[0]=s,t[1]=xe);let Se=le(xe),Ce;t[2]===s?Ce=t[3]:(Ce={control:s,name:`protocol`},t[2]=s,t[3]=Ce);let we=le(Ce),f=we===`HTTP`||we===`HTTPS`,Te;t[4]===l?Te=t[5]:(Te=e=>{e&&(l(`protocol`,e),l(`healthCheck.protocol`,e===`HTTP`||e===`HTTPS`?`HTTP`:`TCP`))},t[4]=l,t[5]=Te);let Ee=Te,De;t[6]===Symbol.for(`react.memo_cache_sentinel`)?(De=(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`tg-name`,children:`Name`})}),t[6]=De):De=t[6];let Oe=!!d.name,p;t[7]===c?p=t[8]:(p=c(`name`),t[7]=c,t[8]=p);let m;t[9]!==Oe||t[10]!==p?(m=(0,o.jsx)(n,{"aria-invalid":Oe,id:`tg-name`,placeholder:`my-target-group`,...p}),t[9]=Oe,t[10]=p,t[11]=m):m=t[11];let h;t[12]===d.name?h=t[13]:(h=(0,o.jsx)(a,{errors:[d.name]}),t[12]=d.name,t[13]=h);let g;t[14]!==h||t[15]!==m?(g=(0,o.jsxs)(r,{children:[De,m,h]}),t[14]=h,t[15]=m,t[16]=g):g=t[16];let ke;t[17]===Symbol.for(`react.memo_cache_sentinel`)?(ke=(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`tg-protocol`,children:`Protocol`})}),t[17]=ke):ke=t[17];let _;t[18]!==ye||t[19]!==Ee?(_=e=>{let{field:t}=e;return(0,o.jsxs)(ae,{onValueChange:Ee,value:t.value,children:[(0,o.jsx)(ie,{className:`w-full`,id:`tg-protocol`,children:(0,o.jsx)(te,{})}),(0,o.jsx)(re,{children:ye.map(ve)})]})},t[18]=ye,t[19]=Ee,t[20]=_):_=t[20];let v;t[21]!==s||t[22]!==_?(v=(0,o.jsxs)(r,{children:[ke,(0,o.jsx)(ue,{control:s,name:`protocol`,render:_})]}),t[21]=s,t[22]=_,t[23]=v):v=t[23];let Ae;t[24]===Symbol.for(`react.memo_cache_sentinel`)?(Ae=(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`tg-port`,children:`Port`})}),t[24]=Ae):Ae=t[24];let je=!!d.port,y;t[25]===c?y=t[26]:(y=c(`port`,{valueAsNumber:!0}),t[25]=c,t[26]=y);let b;t[27]!==je||t[28]!==y?(b=(0,o.jsx)(n,{"aria-invalid":je,id:`tg-port`,inputMode:`numeric`,placeholder:`80`,type:`number`,...y}),t[27]=je,t[28]=y,t[29]=b):b=t[29];let x;t[30]===d.port?x=t[31]:(x=(0,o.jsx)(a,{errors:[d.port]}),t[30]=d.port,t[31]=x);let S;t[32]!==b||t[33]!==x?(S=(0,o.jsxs)(r,{children:[Ae,b,x]}),t[32]=b,t[33]=x,t[34]=S):S=t[34];let Me;t[35]===Symbol.for(`react.memo_cache_sentinel`)?(Me=(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`tg-vpc`,children:`VPC`})}),t[35]=Me):Me=t[35];let C;t[36]!==d.vpcId||t[37]!==ne?(C=e=>{let{field:t}=e;return(0,o.jsxs)(ae,{onValueChange:e=>t.onChange(e),value:t.value??``,children:[(0,o.jsx)(ie,{"aria-invalid":!!d.vpcId,className:`w-full`,id:`tg-vpc`,children:(0,o.jsx)(te,{placeholder:`Select VPC`})}),(0,o.jsx)(re,{children:ne.map(_e)})]})},t[36]=d.vpcId,t[37]=ne,t[38]=C):C=t[38];let w;t[39]!==s||t[40]!==C?(w=(0,o.jsx)(ue,{control:s,name:`vpcId`,render:C}),t[39]=s,t[40]=C,t[41]=w):w=t[41];let T;t[42]===d.vpcId?T=t[43]:(T=(0,o.jsx)(a,{errors:[d.vpcId]}),t[42]=d.vpcId,t[43]=T);let E;t[44]!==w||t[45]!==T?(E=(0,o.jsxs)(r,{children:[Me,w,T]}),t[44]=w,t[45]=T,t[46]=E):E=t[46];let Ne;t[47]===Symbol.for(`react.memo_cache_sentinel`)?(Ne=(0,o.jsx)(pe,{className:`text-left text-sm font-medium text-muted-foreground hover:text-foreground`,render:(0,o.jsx)(`button`,{"aria-label":`Health check settings`,type:`button`}),children:`Health check settings`}),t[47]=Ne):Ne=t[47];let D;t[48]!==d.healthCheck?.path||t[49]!==f||t[50]!==c?(D=f&&(0,o.jsxs)(r,{children:[(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`hc-path`,children:`Path`})}),(0,o.jsx)(n,{"aria-invalid":!!d.healthCheck?.path,id:`hc-path`,placeholder:`/`,...c(`healthCheck.path`)}),(0,o.jsx)(a,{errors:[d.healthCheck?.path]})]}),t[48]=d.healthCheck?.path,t[49]=f,t[50]=c,t[51]=D):D=t[51];let Pe;t[52]===Symbol.for(`react.memo_cache_sentinel`)?(Pe=(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`hc-port`,children:`Port`})}),t[52]=Pe):Pe=t[52];let Fe=!!d.healthCheck?.port,O;t[53]===c?O=t[54]:(O=c(`healthCheck.port`),t[53]=c,t[54]=O);let k;t[55]!==Fe||t[56]!==O?(k=(0,o.jsx)(n,{"aria-invalid":Fe,id:`hc-port`,placeholder:`traffic-port or numeric`,...O}),t[55]=Fe,t[56]=O,t[57]=k):k=t[57];let Ie=d.healthCheck?.port,A;t[58]===Ie?A=t[59]:(A=(0,o.jsx)(a,{errors:[Ie]}),t[58]=Ie,t[59]=A);let j;t[60]!==k||t[61]!==A?(j=(0,o.jsxs)(r,{children:[Pe,k,A]}),t[60]=k,t[61]=A,t[62]=j):j=t[62];let Le;t[63]===Symbol.for(`react.memo_cache_sentinel`)?(Le=(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`hc-interval`,children:`Interval (seconds)`})}),t[63]=Le):Le=t[63];let Re=!!d.healthCheck?.intervalSeconds,M;t[64]===c?M=t[65]:(M=c(`healthCheck.intervalSeconds`,{valueAsNumber:!0}),t[64]=c,t[65]=M);let N;t[66]!==Re||t[67]!==M?(N=(0,o.jsx)(n,{"aria-invalid":Re,id:`hc-interval`,inputMode:`numeric`,type:`number`,...M}),t[66]=Re,t[67]=M,t[68]=N):N=t[68];let ze=d.healthCheck?.intervalSeconds,P;t[69]===ze?P=t[70]:(P=(0,o.jsx)(a,{errors:[ze]}),t[69]=ze,t[70]=P);let F;t[71]!==N||t[72]!==P?(F=(0,o.jsxs)(r,{children:[Le,N,P]}),t[71]=N,t[72]=P,t[73]=F):F=t[73];let Be;t[74]===Symbol.for(`react.memo_cache_sentinel`)?(Be=(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`hc-timeout`,children:`Timeout (seconds)`})}),t[74]=Be):Be=t[74];let Ve=!!d.healthCheck?.timeoutSeconds,I;t[75]===c?I=t[76]:(I=c(`healthCheck.timeoutSeconds`,{valueAsNumber:!0}),t[75]=c,t[76]=I);let L;t[77]!==Ve||t[78]!==I?(L=(0,o.jsx)(n,{"aria-invalid":Ve,id:`hc-timeout`,inputMode:`numeric`,type:`number`,...I}),t[77]=Ve,t[78]=I,t[79]=L):L=t[79];let He=d.healthCheck?.timeoutSeconds,R;t[80]===He?R=t[81]:(R=(0,o.jsx)(a,{errors:[He]}),t[80]=He,t[81]=R);let z;t[82]!==L||t[83]!==R?(z=(0,o.jsxs)(r,{children:[Be,L,R]}),t[82]=L,t[83]=R,t[84]=z):z=t[84];let Ue;t[85]===Symbol.for(`react.memo_cache_sentinel`)?(Ue=(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`hc-healthy`,children:`Healthy threshold`})}),t[85]=Ue):Ue=t[85];let We=!!d.healthCheck?.healthyThresholdCount,B;t[86]===c?B=t[87]:(B=c(`healthCheck.healthyThresholdCount`,{valueAsNumber:!0}),t[86]=c,t[87]=B);let V;t[88]!==We||t[89]!==B?(V=(0,o.jsx)(n,{"aria-invalid":We,id:`hc-healthy`,inputMode:`numeric`,type:`number`,...B}),t[88]=We,t[89]=B,t[90]=V):V=t[90];let Ge=d.healthCheck?.healthyThresholdCount,H;t[91]===Ge?H=t[92]:(H=(0,o.jsx)(a,{errors:[Ge]}),t[91]=Ge,t[92]=H);let U;t[93]!==V||t[94]!==H?(U=(0,o.jsxs)(r,{children:[Ue,V,H]}),t[93]=V,t[94]=H,t[95]=U):U=t[95];let Ke;t[96]===Symbol.for(`react.memo_cache_sentinel`)?(Ke=(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`hc-unhealthy`,children:`Unhealthy threshold`})}),t[96]=Ke):Ke=t[96];let qe=!!d.healthCheck?.unhealthyThresholdCount,W;t[97]===c?W=t[98]:(W=c(`healthCheck.unhealthyThresholdCount`,{valueAsNumber:!0}),t[97]=c,t[98]=W);let G;t[99]!==qe||t[100]!==W?(G=(0,o.jsx)(n,{"aria-invalid":qe,id:`hc-unhealthy`,inputMode:`numeric`,type:`number`,...W}),t[99]=qe,t[100]=W,t[101]=G):G=t[101];let Je=d.healthCheck?.unhealthyThresholdCount,K;t[102]===Je?K=t[103]:(K=(0,o.jsx)(a,{errors:[Je]}),t[102]=Je,t[103]=K);let q;t[104]!==G||t[105]!==K?(q=(0,o.jsxs)(r,{children:[Ke,G,K]}),t[104]=G,t[105]=K,t[106]=q):q=t[106];let J;t[107]!==d.healthCheck?.matcher||t[108]!==f||t[109]!==c?(J=f&&(0,o.jsxs)(r,{children:[(0,o.jsx)(i,{children:(0,o.jsx)(`label`,{htmlFor:`hc-matcher`,children:`Matcher (HTTP codes)`})}),(0,o.jsx)(n,{"aria-invalid":!!d.healthCheck?.matcher,id:`hc-matcher`,placeholder:`200 or 200-299 or 200,201`,...c(`healthCheck.matcher`)}),(0,o.jsx)(a,{errors:[d.healthCheck?.matcher]})]}),t[107]=d.healthCheck?.matcher,t[108]=f,t[109]=c,t[110]=J):J=t[110];let Y;t[111]!==D||t[112]!==j||t[113]!==F||t[114]!==z||t[115]!==U||t[116]!==q||t[117]!==J?(Y=(0,o.jsxs)(fe,{children:[Ne,(0,o.jsxs)(de,{className:`mt-3 space-y-4 border-l-2 border-muted pl-4`,children:[D,j,F,z,U,q,J]})]}),t[111]=D,t[112]=j,t[113]=F,t[114]=z,t[115]=U,t[116]=q,t[117]=J,t[118]=Y):Y=t[118];let Ye;t[119]===Symbol.for(`react.memo_cache_sentinel`)?(Ye=(0,o.jsx)(i,{children:`Tags`}),t[119]=Ye):Ye=t[119];let X;if(t[120]!==u||t[121]!==c||t[122]!==l||t[123]!==Se){let e;t[125]!==u||t[126]!==c||t[127]!==l?(e=(e,t)=>(0,o.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,o.jsx)(n,{placeholder:`Key`,...c(`tags.${t}.key`)}),(0,o.jsx)(n,{placeholder:`Value`,...c(`tags.${t}.value`)}),(0,o.jsx)(ce,{onClick:()=>l(`tags`,u(`tags`).filter((e,ee)=>ee!==t)),size:`icon`,type:`button`,variant:`ghost`,children:(0,o.jsx)(se,{className:`size-3.5`})})]},t),t[125]=u,t[126]=c,t[127]=l,t[128]=e):e=t[128],X=Se.map(e),t[120]=u,t[121]=c,t[122]=l,t[123]=Se,t[124]=X}else X=t[124];let Z;t[129]!==u||t[130]!==l?(Z=()=>l(`tags`,[...u(`tags`),{key:``,value:``}]),t[129]=u,t[130]=l,t[131]=Z):Z=t[131];let Xe;t[132]===Symbol.for(`react.memo_cache_sentinel`)?(Xe=(0,o.jsx)(oe,{className:`size-3.5`}),t[132]=Xe):Xe=t[132];let Q;t[133]===Z?Q=t[134]:(Q=(0,o.jsxs)(ce,{onClick:Z,size:`sm`,type:`button`,variant:`outline`,children:[Xe,`Add tag`]}),t[133]=Z,t[134]=Q);let $;t[135]!==X||t[136]!==Q?($=(0,o.jsxs)(r,{children:[Ye,(0,o.jsxs)(`div`,{className:`space-y-2`,children:[X,Q]})]}),t[135]=X,t[136]=Q,t[137]=$):$=t[137];let Ze;return t[138]!==g||t[139]!==v||t[140]!==S||t[141]!==E||t[142]!==Y||t[143]!==$?(Ze=(0,o.jsxs)(o.Fragment,{children:[g,v,S,E,Y,$]}),t[138]=g,t[139]=v,t[140]=S,t[141]=E,t[142]=Y,t[143]=$,t[144]=Ze):Ze=t[144],Ze}function _e(e){let t=ee(e.Tags);return(0,o.jsx)(ne,{value:e.VpcId??``,children:t?`${e.VpcId} (${t})`:`${e.VpcId} (${e.CidrBlock})`},e.VpcId)}function ve(e){return(0,o.jsx)(ne,{value:e,children:e},e)}export{ge as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/task-definitions.js b/spinifex/services/spinifexui/frontend/dist/assets/task-definitions.js index d82c68cab..2e498472e 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/task-definitions.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/task-definitions.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./button.js";import{o}from"./ecs.js";import{a as s}from"./ecs2.js";import{Xn as c,dn as l,mn as u}from"./index.js";import{t as d}from"./delete-confirmation-dialog.js";import{t as f}from"./ecs-section-nav.js";var p=r(),m=t(n(),1),h=e();function g(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function _(e){let t=(0,p.c)(24),{clusterName:n}=e,{data:r}=c(o),l=s(),[f,_]=(0,m.useState)(null),v;t[0]!==l||t[1]!==f?(v=function(){f&&l.mutate(f,{onSuccess:()=>_(null)})},t[0]=l,t[1]=f,t[2]=v):v=t[2];let y=v,b=n??``,x;t[3]===b?x=t[4]:(x={cluster:b},t[3]=b,t[4]=x);let S;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,h.jsx)(a,{size:`sm`,children:`Register task definition`}),t[5]=S):S=t[5];let C;t[6]===x?C=t[7]:(C=(0,h.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,h.jsx)(i,{search:x,to:`/ecs/register-task-definition`,children:S})}),t[6]=x,t[7]=C);let w;t[8]!==l.error||t[9]!==l.isError?(w=l.isError&&(0,h.jsx)(u,{error:l.error instanceof Error?l.error:void 0,msg:`Failed to deregister task definition.`}),t[8]=l.error,t[9]=l.isError,t[10]=w):w=t[10];let T;t[11]===r?T=t[12]:(T=r.length===0?(0,h.jsx)(`p`,{className:`text-muted-foreground`,children:`No task definitions found.`}):(0,h.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,h.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,h.jsx)(`thead`,{children:(0,h.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,h.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Family : Revision`}),(0,h.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,h.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,h.jsx)(`tbody`,{children:r.map(e=>{let t=g(e);return(0,h.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,h.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:t}),(0,h.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,h.jsx)(a,{onClick:()=>_(t),size:`sm`,variant:`destructive`,children:`Deregister`})})]},e)})})]})}),t[11]=r,t[12]=T);let E=`This marks task definition "${f}" INACTIVE. Existing tasks keep running; no new tasks can use it.`,D;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(D=e=>!e&&_(null),t[13]=D):D=t[13];let O=f!==null,k;t[14]!==l.isPending||t[15]!==y||t[16]!==O||t[17]!==E?(k=(0,h.jsx)(d,{confirmLabel:`Deregister`,description:E,isPending:l.isPending,onConfirm:y,onOpenChange:D,open:O,pendingLabel:`Deregistering…`,title:`Deregister task definition`}),t[14]=l.isPending,t[15]=y,t[16]=O,t[17]=E,t[18]=k):k=t[18];let A;return t[19]!==k||t[20]!==C||t[21]!==w||t[22]!==T?(A=(0,h.jsxs)(h.Fragment,{children:[C,w,T,k]}),t[19]=k,t[20]=C,t[21]=w,t[22]=T,t[23]=A):A=t[23],A}function v(){let e=(0,p.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(l,{title:`Task definitions`}),(0,h.jsx)(f,{}),(0,h.jsx)(_,{})]}),e[0]=t):t=e[0],t}var y=v;export{y as component}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{t as a}from"./button.js";import{o}from"./ecs.js";import{a as s}from"./ecs2.js";import{$n as c,Sn as l,yn as u}from"./index.js";import{t as d}from"./delete-confirmation-dialog.js";import{t as f}from"./ecs-section-nav.js";var p=r(),m=t(n(),1),h=e();function g(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function _(e){let t=(0,p.c)(24),{clusterName:n}=e,{data:r}=c(o),u=s(),[f,_]=(0,m.useState)(null),v;t[0]!==u||t[1]!==f?(v=function(){f&&u.mutate(f,{onSuccess:()=>_(null)})},t[0]=u,t[1]=f,t[2]=v):v=t[2];let y=v,b=n??``,x;t[3]===b?x=t[4]:(x={cluster:b},t[3]=b,t[4]=x);let S;t[5]===Symbol.for(`react.memo_cache_sentinel`)?(S=(0,h.jsx)(a,{size:`sm`,children:`Register task definition`}),t[5]=S):S=t[5];let C;t[6]===x?C=t[7]:(C=(0,h.jsx)(`div`,{className:`mb-4 flex justify-end`,children:(0,h.jsx)(i,{search:x,to:`/ecs/register-task-definition`,children:S})}),t[6]=x,t[7]=C);let w;t[8]!==u.error||t[9]!==u.isError?(w=u.isError&&(0,h.jsx)(l,{error:u.error instanceof Error?u.error:void 0,msg:`Failed to deregister task definition.`}),t[8]=u.error,t[9]=u.isError,t[10]=w):w=t[10];let T;t[11]===r?T=t[12]:(T=r.length===0?(0,h.jsx)(`p`,{className:`text-muted-foreground`,children:`No task definitions found.`}):(0,h.jsx)(`div`,{className:`overflow-x-auto rounded-lg border bg-card`,children:(0,h.jsxs)(`table`,{className:`w-full text-sm`,children:[(0,h.jsx)(`thead`,{children:(0,h.jsxs)(`tr`,{className:`border-b text-left text-muted-foreground`,children:[(0,h.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:`Family : Revision`}),(0,h.jsx)(`th`,{className:`px-4 py-2 font-medium`,children:(0,h.jsx)(`span`,{className:`sr-only`,children:`Actions`})})]})}),(0,h.jsx)(`tbody`,{children:r.map(e=>{let t=g(e);return(0,h.jsxs)(`tr`,{className:`border-b last:border-0`,children:[(0,h.jsx)(`td`,{className:`px-4 py-2 font-mono text-xs`,children:t}),(0,h.jsx)(`td`,{className:`px-4 py-2 text-right`,children:(0,h.jsx)(a,{onClick:()=>_(t),size:`sm`,variant:`destructive`,children:`Deregister`})})]},e)})})]})}),t[11]=r,t[12]=T);let E=`This marks task definition "${f}" INACTIVE. Existing tasks keep running; no new tasks can use it.`,D;t[13]===Symbol.for(`react.memo_cache_sentinel`)?(D=e=>!e&&_(null),t[13]=D):D=t[13];let O=f!==null,k;t[14]!==u.isPending||t[15]!==y||t[16]!==O||t[17]!==E?(k=(0,h.jsx)(d,{confirmLabel:`Deregister`,description:E,isPending:u.isPending,onConfirm:y,onOpenChange:D,open:O,pendingLabel:`Deregistering…`,title:`Deregister task definition`}),t[14]=u.isPending,t[15]=y,t[16]=O,t[17]=E,t[18]=k):k=t[18];let A;return t[19]!==k||t[20]!==C||t[21]!==w||t[22]!==T?(A=(0,h.jsxs)(h.Fragment,{children:[C,w,T,k]}),t[19]=k,t[20]=C,t[21]=w,t[22]=T,t[23]=A):A=t[23],A}function v(){let e=(0,p.c)(1),t;return e[0]===Symbol.for(`react.memo_cache_sentinel`)?(t=(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(u,{title:`Task definitions`}),(0,h.jsx)(f,{}),(0,h.jsx)(_,{})]}),e[0]=t):t=e[0],t}var y=v;export{y as component}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/triangle-alert.js b/spinifex/services/spinifexui/frontend/dist/assets/triangle-alert.js deleted file mode 100644 index 3b8116900..000000000 --- a/spinifex/services/spinifexui/frontend/dist/assets/triangle-alert.js +++ /dev/null @@ -1 +0,0 @@ -import{t as e}from"./createLucideIcon.js";var t=e(`triangle-alert`,[[`path`,{d:`m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3`,key:`wmoenq`}],[`path`,{d:`M12 9v4`,key:`juzpu7`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);export{t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/dist/assets/upload-button.js b/spinifex/services/spinifexui/frontend/dist/assets/upload-button.js index 99bb14bb6..14b85edd9 100644 --- a/spinifex/services/spinifexui/frontend/dist/assets/upload-button.js +++ b/spinifex/services/spinifexui/frontend/dist/assets/upload-button.js @@ -1 +1 @@ -import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{Xt as a,Zt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{t as c}from"./download.js";import{t as l}from"./trash-2.js";import{t as u}from"./button.js";import{M as d,N as f,h as p,l as m,x as h}from"./awsClient.js";import{n as g}from"./s3.js";import{mn as _}from"./index.js";import{t as v}from"./delete-confirmation-dialog.js";var y=s(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),b=s(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),x=s(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),S=class extends f(h,d,`GetObject`,p){},C=r(),w=e();function T(e){let t=(0,C.c)(9),{folderName:n,fullPrefix:r,bucketName:a}=e,o;t[0]!==a||t[1]!==r?(o={bucket:a,_splat:r},t[0]=a,t[1]=r,t[2]=o):o=t[2];let s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,w.jsx)(b,{className:`size-5 text-muted-foreground`}),t[3]=s):s=t[3];let c;t[4]===n?c=t[5]:(c=(0,w.jsx)(`span`,{className:`font-medium`,children:n}),t[4]=n,t[5]=c);let l;return t[6]!==o||t[7]!==c?(l=(0,w.jsxs)(i,{className:`flex items-center gap-3 rounded-lg border bg-card p-4 transition-colors hover:bg-accent`,params:o,to:`/s3/ls/$bucket/$`,children:[s,c]}),t[6]=o,t[7]=c,t[8]=l):l=t[8],l}var E=t(n(),1);function D({object:e,bucketName:t,displayName:n,fullKey:r}){let[i,s]=(0,E.useState)(!1),[u,d]=(0,E.useState)(null),f=g();async function p(){d(null);try{let e=new S({Bucket:t,Key:r}),i=await m().send(e);if(i.Body){let e=await i.Body.transformToByteArray(),t=URL.createObjectURL(new Blob([e])),r=document.createElement(`a`);r.href=t,r.download=n,document.body.append(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}catch(e){d(Error(`Failed to download object`,{cause:e}))}}async function h(){try{await f.mutateAsync({bucket:t,key:r})}finally{s(!1)}}return(0,w.jsxs)(`div`,{children:[f.error&&(0,w.jsx)(_,{error:f.error,msg:`Failed to delete object`}),u&&(0,w.jsx)(_,{error:u,msg:`Failed to download object`}),(0,w.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border bg-card p-4`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,w.jsx)(y,{className:`size-5 text-muted-foreground`}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`h3`,{className:`font-medium`,children:n}),e.LastModified&&(0,w.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Last Modified: `,a(e.LastModified)]})]})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,w.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:o(e.Size??0)}),(0,w.jsx)(`button`,{"aria-label":`Download ${n}`,className:`rounded-md p-2 transition-colors hover:bg-accent`,onClick:p,type:`button`,children:(0,w.jsx)(c,{className:`size-4`})}),(0,w.jsx)(`button`,{"aria-label":`Delete ${n}`,className:`rounded-md p-2 text-destructive transition-colors hover:bg-accent`,onClick:()=>s(!0),type:`button`,children:(0,w.jsx)(l,{className:`size-4`})})]}),(0,w.jsx)(v,{description:(0,w.jsxs)(w.Fragment,{children:[`Are you sure you want to delete `,(0,w.jsx)(`strong`,{children:n}),`? This action cannot be undone.`]}),isPending:f.isPending,onConfirm:h,onOpenChange:s,open:i,title:`Delete Object`})]})]},e.Key)}function O({bucket:e,prefix:t=``,isPending:n,onUpload:r}){let i=(0,E.useRef)(null);async function a(n){let a=n.target.files;if(!(!a||a.length===0))try{await Promise.all([...a].map(async n=>await r({bucket:e,key:`${t}${n.name}`,file:n})))}finally{i.current&&(i.current.value=``)}}return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`input`,{accept:`*/*`,"aria-label":`Choose files to upload`,className:`hidden`,multiple:!0,onChange:a,ref:i,type:`file`}),(0,w.jsxs)(u,{disabled:n,onClick:()=>i.current?.click(),size:`sm`,children:[(0,w.jsx)(x,{className:`mr-2 size-4`}),n?`Uploading…`:`Upload Files`]})]})}export{D as n,T as r,O as t}; \ No newline at end of file +import{n as e,o as t,r as n,t as r}from"./compiler-runtime.js";import{t as i}from"./link.js";import{Xt as a,Zt as o}from"./auth.js";import{t as s}from"./createLucideIcon.js";import{t as c}from"./trash-2.js";import{t as l}from"./button.js";import{M as u,N as d,h as f,l as p,x as m}from"./awsClient.js";import{n as h}from"./s3.js";import{Sn as g,Xn as _}from"./index.js";import{t as v}from"./delete-confirmation-dialog.js";var y=s(`file`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}]]),b=s(`folder`,[[`path`,{d:`M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z`,key:`1kt360`}]]),x=s(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),S=class extends d(m,u,`GetObject`,f){},C=r(),w=e();function T(e){let t=(0,C.c)(9),{folderName:n,fullPrefix:r,bucketName:a}=e,o;t[0]!==a||t[1]!==r?(o={bucket:a,_splat:r},t[0]=a,t[1]=r,t[2]=o):o=t[2];let s;t[3]===Symbol.for(`react.memo_cache_sentinel`)?(s=(0,w.jsx)(b,{className:`size-5 text-muted-foreground`}),t[3]=s):s=t[3];let c;t[4]===n?c=t[5]:(c=(0,w.jsx)(`span`,{className:`font-medium`,children:n}),t[4]=n,t[5]=c);let l;return t[6]!==o||t[7]!==c?(l=(0,w.jsxs)(i,{className:`flex items-center gap-3 rounded-lg border bg-card p-4 transition-colors hover:bg-accent`,params:o,to:`/s3/ls/$bucket/$`,children:[s,c]}),t[6]=o,t[7]=c,t[8]=l):l=t[8],l}var E=t(n(),1);function D({object:e,bucketName:t,displayName:n,fullKey:r}){let[i,s]=(0,E.useState)(!1),[l,u]=(0,E.useState)(null),d=h();async function f(){u(null);try{let e=new S({Bucket:t,Key:r}),i=await p().send(e);if(i.Body){let e=await i.Body.transformToByteArray(),t=URL.createObjectURL(new Blob([e])),r=document.createElement(`a`);r.href=t,r.download=n,document.body.append(r),r.click(),r.remove(),URL.revokeObjectURL(t)}}catch(e){u(Error(`Failed to download object`,{cause:e}))}}async function m(){try{await d.mutateAsync({bucket:t,key:r})}finally{s(!1)}}return(0,w.jsxs)(`div`,{children:[d.error&&(0,w.jsx)(g,{error:d.error,msg:`Failed to delete object`}),l&&(0,w.jsx)(g,{error:l,msg:`Failed to download object`}),(0,w.jsxs)(`div`,{className:`flex items-center justify-between rounded-lg border bg-card p-4`,children:[(0,w.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,w.jsx)(y,{className:`size-5 text-muted-foreground`}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(`h3`,{className:`font-medium`,children:n}),e.LastModified&&(0,w.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Last Modified: `,a(e.LastModified)]})]})]}),(0,w.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,w.jsx)(`div`,{className:`text-sm text-muted-foreground`,children:o(e.Size??0)}),(0,w.jsx)(`button`,{"aria-label":`Download ${n}`,className:`rounded-md p-2 transition-colors hover:bg-accent`,onClick:f,type:`button`,children:(0,w.jsx)(_,{className:`size-4`})}),(0,w.jsx)(`button`,{"aria-label":`Delete ${n}`,className:`rounded-md p-2 text-destructive transition-colors hover:bg-accent`,onClick:()=>s(!0),type:`button`,children:(0,w.jsx)(c,{className:`size-4`})})]}),(0,w.jsx)(v,{description:(0,w.jsxs)(w.Fragment,{children:[`Are you sure you want to delete `,(0,w.jsx)(`strong`,{children:n}),`? This action cannot be undone.`]}),isPending:d.isPending,onConfirm:m,onOpenChange:s,open:i,title:`Delete Object`})]})]},e.Key)}function O({bucket:e,prefix:t=``,isPending:n,onUpload:r}){let i=(0,E.useRef)(null);async function a(n){let a=n.target.files;if(!(!a||a.length===0))try{await Promise.all([...a].map(async n=>await r({bucket:e,key:`${t}${n.name}`,file:n})))}finally{i.current&&(i.current.value=``)}}return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(`input`,{accept:`*/*`,"aria-label":`Choose files to upload`,className:`hidden`,multiple:!0,onChange:a,ref:i,type:`file`}),(0,w.jsxs)(l,{disabled:n,onClick:()=>i.current?.click(),size:`sm`,children:[(0,w.jsx)(x,{className:`mr-2 size-4`}),n?`Uploading…`:`Upload Files`]})]})}export{D as n,T as r,O as t}; \ No newline at end of file diff --git a/spinifex/services/spinifexui/frontend/src/mutations/ec2.test.tsx b/spinifex/services/spinifexui/frontend/src/mutations/ec2.test.tsx index 39ca0de77..b6d8505f9 100644 --- a/spinifex/services/spinifexui/frontend/src/mutations/ec2.test.tsx +++ b/spinifex/services/spinifexui/frontend/src/mutations/ec2.test.tsx @@ -583,12 +583,12 @@ describe("useRebootInstance", () => { }) describe("useCreateKeyPair", () => { - it("sends CreateKeyPairCommand with key name and rsa type", async () => { + it("sends CreateKeyPairCommand with the selected key type", async () => { createQueryClient() mockSend.mockResolvedValueOnce({ KeyMaterial: "-----BEGIN RSA-----" }) const { result } = renderHook(() => useCreateKeyPair(), { wrapper }) - result.current.mutate({ keyName: "my-key" }) + result.current.mutate({ keyName: "my-key", keyType: "rsa" }) await waitFor(() => expect(result.current.isSuccess).toBeTruthy()) expect(mockSend.mock.calls[0]?.[0].input).toStrictEqual({ @@ -597,12 +597,26 @@ describe("useCreateKeyPair", () => { }) }) + it("passes ed25519 through rather than forcing rsa", async () => { + createQueryClient() + mockSend.mockResolvedValueOnce({ KeyMaterial: "-----BEGIN OPENSSH-----" }) + const { result } = renderHook(() => useCreateKeyPair(), { wrapper }) + + result.current.mutate({ keyName: "my-key", keyType: "ed25519" }) + + await waitFor(() => expect(result.current.isSuccess).toBeTruthy()) + expect(mockSend.mock.calls[0]?.[0].input).toStrictEqual({ + KeyName: "my-key", + KeyType: "ed25519", + }) + }) + it("fails when the API omits the private key material", async () => { createQueryClient() mockSend.mockResolvedValueOnce({}) const { result } = renderHook(() => useCreateKeyPair(), { wrapper }) - result.current.mutate({ keyName: "my-key" }) + result.current.mutate({ keyName: "my-key", keyType: "rsa" }) await waitFor(() => expect(result.current.isError).toBeTruthy()) expect(result.current.error?.message).toContain("no private key") diff --git a/spinifex/services/spinifexui/frontend/src/mutations/ec2.ts b/spinifex/services/spinifexui/frontend/src/mutations/ec2.ts index 9fa5fe32f..b4a7033a2 100644 --- a/spinifex/services/spinifexui/frontend/src/mutations/ec2.ts +++ b/spinifex/services/spinifexui/frontend/src/mutations/ec2.ts @@ -473,7 +473,7 @@ export function useCreateKeyPair() { mutationFn: async (params: CreateKeyPairData) => { const command = new CreateKeyPairCommand({ KeyName: params.keyName, - KeyType: "rsa", + KeyType: params.keyType, }) const response = await getEc2Client().send(command) if (!response.KeyMaterial) { diff --git a/spinifex/services/spinifexui/frontend/src/routes/_auth/ec2/(key)/create-key-pair.test.tsx b/spinifex/services/spinifexui/frontend/src/routes/_auth/ec2/(key)/create-key-pair.test.tsx new file mode 100644 index 000000000..93ca0f15b --- /dev/null +++ b/spinifex/services/spinifexui/frontend/src/routes/_auth/ec2/(key)/create-key-pair.test.tsx @@ -0,0 +1,77 @@ +import { screen, waitFor } from "@testing-library/react" +import userEvent from "@testing-library/user-event" +import type { ReactNode } from "react" +import { describe, expect, it, vi } from "vitest" + +import { + createTestQueryClient, + renderWithClient, +} from "@/test/elbv2-integration" + +const { send } = vi.hoisted(() => { + interface Command { + readonly input: { KeyName?: string; KeyType?: string } + } + return { + send: vi.fn(async (_command: Command) => ({ + KeyMaterial: "-----BEGIN RSA PRIVATE KEY-----", + })), + } +}) + +vi.mock("@/lib/awsClient", () => ({ + getEc2Client: () => ({ send }), +})) + +vi.mock("@tanstack/react-router", async (importOriginal) => { + const actual = await importOriginal() + return { + ...actual, + createFileRoute: () => (options: Record) => options, + useNavigate: () => vi.fn(), + Link: ({ children, to }: { children: ReactNode; to?: string }) => ( + {children} + ), + } +}) + +import { CreateKeyPair } from "./create-key-pair" + +function renderPage() { + send.mockClear() + return renderWithClient(, createTestQueryClient()) +} + +describe("create-key-pair route", () => { + // Only RSA can wrap a Windows administrator password, so the untouched form + // has to submit RSA rather than leaving the user to know that. + it("submits rsa without the user choosing a key type", async () => { + renderPage() + const user = userEvent.setup() + + await user.type(screen.getByLabelText("Key Pair Name"), "my-key") + await user.click(screen.getByRole("button", { name: "Create Key Pair" })) + + await waitFor(() => expect(send).toHaveBeenCalledTimes(1)) + expect(send.mock.calls[0]?.[0].input).toStrictEqual({ + KeyName: "my-key", + KeyType: "rsa", + }) + }) + + it("submits the selected key type when the user picks ED25519", async () => { + renderPage() + const user = userEvent.setup() + + await user.type(screen.getByLabelText("Key Pair Name"), "my-key") + await user.click(screen.getByRole("combobox", { name: "Key Type" })) + await user.click(screen.getByRole("option", { name: "ED25519" })) + await user.click(screen.getByRole("button", { name: "Create Key Pair" })) + + await waitFor(() => expect(send).toHaveBeenCalledTimes(1)) + expect(send.mock.calls[0]?.[0].input).toStrictEqual({ + KeyName: "my-key", + KeyType: "ed25519", + }) + }) +}) diff --git a/spinifex/services/spinifexui/frontend/src/routes/_auth/ec2/(key)/create-key-pair.tsx b/spinifex/services/spinifexui/frontend/src/routes/_auth/ec2/(key)/create-key-pair.tsx index 9e66cda1d..dcc7a5882 100644 --- a/spinifex/services/spinifexui/frontend/src/routes/_auth/ec2/(key)/create-key-pair.tsx +++ b/spinifex/services/spinifexui/frontend/src/routes/_auth/ec2/(key)/create-key-pair.tsx @@ -1,7 +1,7 @@ import { zodResolver } from "@hookform/resolvers/zod" import { createFileRoute, useNavigate } from "@tanstack/react-router" import { useState } from "react" -import { useForm, useWatch } from "react-hook-form" +import { Controller, useForm, useWatch } from "react-hook-form" import { BackLink } from "@/components/back-link" import { @@ -11,8 +11,20 @@ import { import { ErrorBanner } from "@/components/error-banner" import { FormActions } from "@/components/form-actions" import { PageHeading } from "@/components/page-heading" -import { Field, FieldError, FieldTitle } from "@/components/ui/field" +import { + Field, + FieldDescription, + FieldError, + FieldTitle, +} from "@/components/ui/field" import { Input } from "@/components/ui/input" +import { + Select, + SelectContent, + SelectItem, + SelectTrigger, + SelectValue, +} from "@/components/ui/select" import { useCreateKeyPair } from "@/mutations/ec2" import { type CreateKeyPairData, createKeyPairSchema } from "@/types/ec2" @@ -29,7 +41,7 @@ export const Route = createFileRoute("/_auth/ec2/(key)/create-key-pair")({ component: CreateKeyPair, }) -function CreateKeyPair() { +export function CreateKeyPair() { const navigate = useNavigate() const createMutation = useCreateKeyPair() const [keyMaterial, setKeyMaterial] = useState<{ @@ -44,6 +56,9 @@ function CreateKeyPair() { formState: { errors, isSubmitting }, } = useForm({ resolver: zodResolver(createKeyPairSchema), + // Matches what this page already sent before the selector existed, rather + // than the API's ed25519 default. + defaultValues: { keyType: "rsa" as const }, }) const values = useWatch({ control }) @@ -89,6 +104,40 @@ function CreateKeyPair() { + {/* Key Type */} + + + + + ( + + )} + /> + + RSA is required to retrieve a Windows administrator password. + ED25519 works for SSH only. + + + + {/* Actions */} @@ -120,6 +169,8 @@ function buildCreateKeyPairCommands( ): CliCommand[] { const rawKeyName = watch("keyName") const keyName = typeof rawKeyName === "string" ? rawKeyName : "" + const rawKeyType = watch("keyType") + const keyType = typeof rawKeyType === "string" ? rawKeyType : "rsa" return [ { @@ -128,6 +179,8 @@ function buildCreateKeyPairCommands( { type: "bin", value: "AWS_PROFILE=spinifex aws ec2 create-key-pair" }, { type: "flag", value: " --key-name" }, { type: "value", value: ` ${keyName || ""}` }, + { type: "flag", value: " --key-type" }, + { type: "value", value: ` ${keyType}` }, ], }, ] diff --git a/spinifex/services/spinifexui/frontend/src/types/ec2.test.ts b/spinifex/services/spinifexui/frontend/src/types/ec2.test.ts index f877d9703..3480179a9 100644 --- a/spinifex/services/spinifexui/frontend/src/types/ec2.test.ts +++ b/spinifex/services/spinifexui/frontend/src/types/ec2.test.ts @@ -250,17 +250,42 @@ describe("createLaunchTemplateSchema", () => { describe("createKeyPairSchema", () => { it("accepts a valid key name", () => { - const result = createKeyPairSchema.safeParse({ keyName: "my-key" }) + const result = createKeyPairSchema.safeParse({ + keyName: "my-key", + keyType: "rsa", + }) expect(result.success).toBeTruthy() }) + it("accepts ed25519 as a key type", () => { + const result = createKeyPairSchema.safeParse({ + keyName: "my-key", + keyType: "ed25519", + }) + expect(result.success).toBeTruthy() + }) + + it("rejects a key type EC2 cannot generate", () => { + const result = createKeyPairSchema.safeParse({ + keyName: "my-key", + keyType: "dsa", + }) + expect(result.success).toBeFalsy() + }) + it("rejects empty key name", () => { - const result = createKeyPairSchema.safeParse({ keyName: "" }) + const result = createKeyPairSchema.safeParse({ + keyName: "", + keyType: "rsa", + }) expect(result.success).toBeFalsy() }) it("rejects key name over 255 chars", () => { - const result = createKeyPairSchema.safeParse({ keyName: "a".repeat(256) }) + const result = createKeyPairSchema.safeParse({ + keyName: "a".repeat(256), + keyType: "rsa", + }) expect(result.success).toBeFalsy() }) }) diff --git a/spinifex/services/spinifexui/frontend/src/types/ec2.ts b/spinifex/services/spinifexui/frontend/src/types/ec2.ts index b59ec2608..122e406d1 100644 --- a/spinifex/services/spinifexui/frontend/src/types/ec2.ts +++ b/spinifex/services/spinifexui/frontend/src/types/ec2.ts @@ -147,6 +147,9 @@ export function nextLaunchWizardName(existingNames: string[]): string { export const createKeyPairSchema = z.object({ keyName: keyNameField, + // The console has always sent rsa, so that stays its default; the API's own + // default is ed25519. Only rsa can wrap a Windows administrator password. + keyType: z.enum(["rsa", "ed25519"]), }) export type CreateKeyPairData = z.infer