mirror of
https://github.com/pyMC-dev/pyMC_Repeater.git
synced 2026-06-28 14:01:59 +02:00
2 lines
37 KiB
JavaScript
2 lines
37 KiB
JavaScript
import{D as e,N as t,T as n,U as r,X as i,_t as a,c as o,gt as s,h as c,ht as l,i as u,j as d,l as f,m as p,p as m,r as h,s as g,u as _}from"./runtime-core.esm-bundler-CINEgm0a.js";import{l as ee,t as te}from"./runtime-dom.esm-bundler-B3VeUO8l.js";import{d as v}from"./index-Cijj_ZXo.js";import{n as ne,t as re}from"./SignalBars-CRFh_h3f.js";var ie={class:`bg-white dark:bg-surface-elevated backdrop-blur-xl rounded-[16px] sm:rounded-[20px] shadow-2xl border border-stroke-subtle dark:border-white/20 flex flex-col h-full overflow-hidden`},ae={class:`flex flex-col sm:flex-row sm:items-start sm:justify-between p-4 sm:p-6 lg:p-8 pb-3 sm:pb-4 shrink-0 gap-3 sm:gap-4`},oe={class:`min-w-0 flex-1`},se={class:`flex flex-wrap gap-2 mt-2`},ce={class:`inline-flex items-center rounded-full bg-cyan-500/15 text-cyan-700 dark:text-cyan-300 px-2 py-0.5 text-[11px] sm:text-xs font-medium max-w-full truncate`},le={class:`inline-flex items-center rounded-full bg-orange-500/15 text-orange-700 dark:text-orange-300 px-2 py-0.5 text-[11px] sm:text-xs font-medium max-w-full truncate`},ue={class:`w-full sm:w-auto flex items-center justify-between sm:justify-end gap-2 pt-1 sm:pt-0`},de=[`title`],fe={class:`flex-1 overflow-y-auto custom-scrollbar px-4 sm:px-6 lg:px-8`},pe={class:`mb-6`},me={class:`glass-card bg-background-mute/60 dark:bg-white/5 rounded-[15px] p-4`},y={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},b={class:`space-y-3`},x={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},S={class:`text-content-primary dark:text-content-primary font-mono text-sm`},C={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},w={class:`text-content-primary dark:text-content-primary font-mono text-xs break-all`},T={key:0,class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},E={class:`text-content-primary dark:text-content-primary font-mono text-xs`},D={class:`space-y-3`},O={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},k={class:`text-content-primary dark:text-content-primary font-semibold`},A={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},j={class:`text-content-primary dark:text-content-primary font-semibold`},M={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},N={class:`mb-6`},P={class:`bg-background-mute/60 dark:bg-white/5 rounded-[15px] p-4 border border-stroke-subtle dark:border-stroke/10`},F={class:`space-y-3`},I={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},L={class:`text-content-primary dark:text-content-primary`},R={key:0,class:`pt-2`},z={class:`glass-card bg-background-mute dark:bg-white/10 rounded-[10px] p-4 mb-4`},he={class:`w-full overflow-x-auto`},ge={class:`text-content-primary dark:text-content-primary/90 text-xs font-mono whitespace-pre leading-relaxed min-w-full`},_e={class:`flex items-center justify-between mb-3`},ve={class:`text-content-secondary dark:text-content-primary/80 text-sm font-semibold`},ye={class:`text-content-muted dark:text-content-muted text-xs`},be={class:`bg-background-mute dark:bg-white/10 rounded-[8px] p-3 mb-3`},xe={class:`font-mono text-xs text-content-primary dark:text-content-primary break-all whitespace-pre-wrap leading-relaxed`},Se={class:`bg-background-mute/50 dark:bg-white/5 rounded-[10px] overflow-hidden`},Ce={key:0,class:`min-w-0`},we={class:`text-cyan-500 text-sm font-mono break-words min-w-0`},Te={class:`text-content-primary dark:text-content-primary text-sm break-words min-w-0`},Ee={class:`text-content-primary dark:text-content-primary text-sm font-semibold break-all min-w-0 overflow-hidden`},De=[`title`],Oe={key:0,class:`text-orange-500 text-xs font-mono break-all min-w-0 overflow-hidden`},ke=[`title`],Ae={class:`grid grid-cols-2 gap-2`},je={class:`text-cyan-500 text-sm font-mono break-words`},Me={class:`text-content-primary dark:text-content-primary text-sm break-words`},Ne=[`title`],Pe={key:0},Fe=[`title`],Ie={key:0,class:`text-content-muted dark:text-content-muted text-xs italic mt-2 px-1`},Le={key:1,class:`py-2`},Re={class:`mb-6`},ze={class:`bg-background-mute/60 dark:bg-white/5 rounded-[15px] p-4 border border-stroke-subtle dark:border-stroke/10`},Be={class:`space-y-4`},Ve={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},He={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},Ue={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},We={key:0,class:`py-2`},Ge={class:`flex flex-wrap items-center gap-2 mb-3`},Ke={class:`text-xs px-2 py-0.5 rounded-full bg-cyan-400/15 text-cyan-600 dark:text-cyan-300`},qe={key:0,class:`text-xs px-2 py-0.5 rounded-full bg-orange-500/15 text-orange-600 dark:text-orange-300`},Je={key:1,class:`text-xs px-2 py-0.5 rounded-full bg-yellow-500/20 text-yellow-700 dark:text-yellow-300`},Ye={class:`bg-background-mute dark:bg-white/5 rounded-[10px] border border-stroke-subtle dark:border-stroke/10 overflow-hidden`},Xe={class:`font-mono text-xs text-content-muted dark:text-content-muted`},Ze={class:`min-w-0`},Qe=[`title`],$e={class:`min-w-0`},et=[`title`],tt={class:`md:hidden divide-y divide-stroke-subtle dark:divide-stroke/10`},nt={class:`flex items-center justify-between`},rt={class:`font-mono text-xs text-content-muted dark:text-content-muted`},it={class:`grid grid-cols-2 gap-2`},at={class:`space-y-1 min-w-0`},ot=[`title`],st={class:`space-y-1 min-w-0`},B=[`title`],ct={class:`mb-6`},lt={class:`glass-card bg-background-mute/60 dark:bg-white/5 rounded-[15px] p-4`},ut={class:`grid grid-cols-2 md:grid-cols-3 gap-3 sm:gap-4 mb-4`},dt={class:`text-center p-3 glass-card bg-background-mute dark:bg-white/5 rounded-[10px]`},ft={class:`text-lg font-bold text-content-primary dark:text-content-primary`},pt={class:`text-center p-3 glass-card bg-background-mute dark:bg-white/5 rounded-[10px]`},mt={class:`text-center p-3 glass-card bg-background-mute dark:bg-white/5 rounded-[10px] col-span-2 md:col-span-1`},ht={class:`text-lg font-bold text-content-primary dark:text-content-primary`},gt={key:0,class:`mb-4`},_t={class:`flex items-center gap-2`},vt={key:1,class:`mb-4`},yt={key:2,class:`mb-4`},bt={class:`text-content-secondary dark:text-content-muted text-sm mb-3`},xt={class:`space-y-2`},St={class:`flex items-center gap-3`},Ct={class:`text-content-muted dark:text-content-muted text-sm`},wt={key:3,class:`mt-6 pt-4 border-t border-stroke-subtle dark:border-stroke/10`},Tt={class:`grid grid-cols-2 md:grid-cols-3 gap-3 mb-4`},Et={class:`text-center p-3 glass-card bg-background-mute dark:bg-white/5 rounded-[10px] col-span-2 md:col-span-1`},Dt={class:`text-2xl font-bold text-content-primary dark:text-content-primary`},Ot={class:`text-center p-3 glass-card bg-background-mute dark:bg-white/5 rounded-[10px]`},kt={class:`text-2xl font-bold text-content-primary dark:text-content-primary`},At={class:`text-content-muted dark:text-content-muted text-xs mt-1`},jt={class:`text-center p-3 glass-card bg-background-mute dark:bg-white/5 rounded-[10px]`},Mt={class:`text-content-muted dark:text-content-muted text-xs mt-1`},Nt={key:0,class:`glass-card bg-background-mute dark:bg-white/5 rounded-[10px] p-4`},Pt={class:`space-y-3`},Ft={class:`flex-shrink-0 w-16 text-right`},It={class:`text-content-secondary dark:text-content-muted text-xs`},Lt={class:`flex-1 relative`},Rt={class:`h-8 rounded-lg overflow-hidden bg-background-mute dark:bg-stroke/5 relative`},zt={class:`absolute inset-0 flex items-center px-3`},Bt={class:`text-content-primary dark:text-content-primary text-xs font-mono font-semibold`},Vt={class:`flex-shrink-0 w-12 text-left`},Ht={class:`text-content-muted dark:text-content-muted text-xs`},Ut={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Wt={class:`space-y-2`},Gt={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},Kt={class:`text-content-primary dark:text-content-primary`},qt={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},Jt={class:`space-y-2`},Yt={class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},Xt={key:0,class:`flex justify-between py-2 border-b border-stroke-subtle dark:border-stroke/10`},Zt={class:`text-red-600 dark:text-red-400 text-sm`},Qt={class:`p-4 sm:p-6 lg:p-8 pt-3 sm:pt-4 border-t border-stroke-subtle dark:border-stroke/10 flex justify-end flex-shrink-0`},V=v(c({name:`PacketDetailsModal`,__name:`PacketDetailsModal`,props:{packet:{},isOpen:{type:Boolean},localHash:{}},emits:[`close`],setup(c,{emit:v}){let{getSignalQuality:V}=ne(),H=c,U=v,W=r(!1),$t=e=>new Date(e*1e3).toLocaleString(),en=e=>e.transmitted?e.is_duplicate?`text-amber-600 dark:text-amber-400`:e.drop_reason?`text-red-600 dark:text-red-400`:`text-green-600 dark:text-green-400`:`text-red-600 dark:text-red-400`,tn=e=>e.transmitted?e.is_duplicate?`Duplicate`:e.drop_reason?`Dropped`:`Forwarded`:`Dropped`,G=e=>({0:`Request`,1:`Response`,2:`Plain Text Message`,3:`Acknowledgment`,4:`Node Advertisement`,5:`Group Text Message`,6:`Group Datagram`,7:`Anonymous Request`,8:`Returned Path`,9:`Trace`,10:`Multi-part Packet`,15:`Custom Packet`})[e]||`Unknown Type (${e})`,K=e=>({0:`Transport Flood`,1:`Flood`,2:`Direct`,3:`Transport Direct`})[e]||`Unknown Route (${e})`,nn=e=>{if(!e)return`None`;let t=e.replace(/\s+/g,``).toUpperCase().match(/.{2}/g)||[],n=[];for(let e=0;e<t.length;e+=32){let r=t.slice(e,e+32).join(` `);n.push(r)}return n.join(`
|
||
`)||e},q=(e,t,n)=>{try{let r=0,i=t.length/2;if(i>=100){if(t.length>=r+64){let i=t.slice(r,r+64);e.push({name:`Public Key`,byteRange:`${(n+r)/2}-${(n+r+63)/2}`,hexData:i.match(/.{8}/g)?.join(` `)||i,description:`Ed25519 public key of the node (32 bytes)`,fields:[{bits:`0-255`,name:`Ed25519 Public Key`,value:`${i.slice(0,16)}...${i.slice(-16)}`,binary:`32 bytes (256 bits)`}]}),r+=64}if(t.length>=r+8){let i=t.slice(r,r+8),a=parseInt(i,16),o=new Date(a*1e3);e.push({name:`Timestamp`,byteRange:`${(n+r)/2}-${(n+r+7)/2}`,hexData:i.match(/.{2}/g)?.join(` `)||i,description:`Unix timestamp of advertisement`,fields:[{bits:`0-31`,name:`Unix Timestamp`,value:`${a} (${o.toLocaleString()})`,binary:a.toString(2).padStart(32,`0`)}]}),r+=8}if(t.length>=r+128){let i=t.slice(r,r+128);e.push({name:`Signature`,byteRange:`${(n+r)/2}-${(n+r+127)/2}`,hexData:i.match(/.{8}/g)?.join(` `)||i,description:`Ed25519 signature of public key, timestamp, and appdata`,fields:[{bits:`0-511`,name:`Ed25519 Signature`,value:`${i.slice(0,16)}...${i.slice(-16)}`,binary:`64 bytes (512 bits)`}]}),r+=128}t.length>r&&J(e,t.slice(r),n+r)}else e.push({name:`ADVERT AppData (Partial)`,byteRange:`${n/2}-${n/2+i-1}`,hexData:t.match(/.{2}/g)?.join(` `)||t,description:`Partial ADVERT data - appears to be just AppData portion (${i} bytes)`,fields:[{bits:`0-${i*8-1}`,name:`Partial Data`,value:`${i} bytes - attempting to decode as AppData`,binary:`${i} bytes (${i*8} bits)`}]}),J(e,t,n)}catch(n){e.push({name:`ADVERT Parse Error`,byteRange:`N/A`,hexData:t.slice(0,32)+`...`,description:`Failed to parse ADVERT payload structure`,fields:[{bits:`N/A`,name:`Error`,value:`Parse error: ${n instanceof Error?n.message:`Unknown error`}`,binary:`Invalid`}]})}},J=(e,t,n)=>{try{let r=t.length/2;e.push({name:`AppData`,byteRange:`${n/2}-${n/2+r-1}`,hexData:t.match(/.{2}/g)?.join(` `)||t,description:`Node advertisement application data (${r} bytes)`,fields:[{bits:`0-${r*8-1}`,name:`Application Data`,value:`${r} bytes (contains flags, location, name, etc.)`,binary:`${r} bytes (${r*8} bits)`}]});let i=0;if(t.length>=2){let r=parseInt(t.slice(i,i+2),16),a=[],o=!!(r&16),s=!!(r&32),c=!!(r&64),l=!!(r&128);if(r&1&&a.push(`is chat node`),r&2&&a.push(`is repeater`),r&4&&a.push(`is room server`),r&8&&a.push(`is sensor`),o&&a.push(`has location`),s&&a.push(`has feature 1`),c&&a.push(`has feature 2`),l&&a.push(`has name`),e.push({name:`AppData Flags`,byteRange:`${(n+i)/2}`,hexData:`0x${t.slice(i,i+2)}`,description:`Flags indicating which optional fields are present`,fields:[{bits:`0-7`,name:`Flags`,value:a.join(`, `)||`none`,binary:r.toString(2).padStart(8,`0`)}]}),i+=2,o&&t.length>=i+16){let r=t.slice(i,i+8),a=[];for(let e=6;e>=0;e-=2)a.push(r.slice(e,e+2));let o=parseInt(a.join(``),16),s=o>2147483647?o-4294967296:o,c=s/1e6,l=t.slice(i+8,i+16),u=[];for(let e=6;e>=0;e-=2)u.push(l.slice(e,e+2));let d=parseInt(u.join(``),16),f=d>2147483647?d-4294967296:d,p=f/1e6;e.push({name:`Location Data`,byteRange:`${(n+i)/2}-${(n+i+15)/2}`,hexData:`${r.match(/.{2}/g)?.join(` `)||r} ${l.match(/.{2}/g)?.join(` `)||l}`,description:`GPS coordinates (latitude and longitude)`,fields:[{bits:`0-31`,name:`Latitude`,value:`${c.toFixed(6)}° (raw: ${s})`,binary:s.toString(2).padStart(32,`0`)},{bits:`32-63`,name:`Longitude`,value:`${p.toFixed(6)}° (raw: ${f})`,binary:f.toString(2).padStart(32,`0`)}]}),i+=16}if(s&&t.length>=i+4){let r=t.slice(i,i+4),a=parseInt(r,16);e.push({name:`Feature 1`,byteRange:`${(n+i)/2}-${(n+i+3)/2}`,hexData:r.match(/.{2}/g)?.join(` `)||r,description:`Reserved feature 1 (2 bytes)`,fields:[{bits:`0-15`,name:`Feature 1 Value`,value:`${a}`,binary:a.toString(2).padStart(16,`0`)}]}),i+=4}if(c&&t.length>=i+4){let r=t.slice(i,i+4),a=parseInt(r,16);e.push({name:`Feature 2`,byteRange:`${(n+i)/2}-${(n+i+3)/2}`,hexData:r.match(/.{2}/g)?.join(` `)||r,description:`Reserved feature 2 (2 bytes)`,fields:[{bits:`0-15`,name:`Feature 2 Value`,value:`${a}`,binary:a.toString(2).padStart(16,`0`)}]}),i+=4}if(l&&t.length>i){let r=t.slice(i),a=r.match(/.{2}/g)||[],o=a.map(e=>{let t=parseInt(e,16);return t>=32&&t<=126?String.fromCharCode(t):`.`}).join(``).replace(/\.+$/,``);e.push({name:`Node Name`,byteRange:`${(n+i)/2}-${(n+t.length-1)/2}`,hexData:r.match(/.{2}/g)?.join(` `)||r,description:`Node name string (${a.length} bytes)`,fields:[{bits:`0-${a.length*8-1}`,name:`Node Name`,value:`"${o}"`,binary:`ASCII text (${a.length} bytes)`}]})}}}catch(n){e.push({name:`AppData Parse Error`,byteRange:`N/A`,hexData:t.slice(0,Math.min(32,t.length)),description:`Failed to parse AppData structure`,fields:[{bits:`N/A`,name:`Error`,value:`Parse error: ${n instanceof Error?n.message:`Unknown error`}`,binary:`Invalid`}]})}},Y=e=>{if(!e)return[];if(Array.isArray(e))return e;if(typeof e==`string`)try{return JSON.parse(e)}catch{return[]}return[]},X=e=>{let t=Y(e.original_path),n=Y(e.forwarded_path),r=Math.max(t.length,n.length);return Array.from({length:r},(e,r)=>{let i=t[r]||``,a=n[r]||``,o=i.toUpperCase(),s=a.toUpperCase();return{hop:r+1,original:o,forwarded:s,changed:o!==s,status:o&&s?o===s?`same`:`changed`:o?`original-only`:`forwarded-only`,localOriginal:!!H.localHash&&o===H.localHash.toUpperCase(),localForwarded:!!H.localHash&&s===H.localHash.toUpperCase()}})},rn=e=>{let t=Y(e.original_path),n=Y(e.forwarded_path);return JSON.stringify(t)!==JSON.stringify(n)},an=e=>{let t=[];if(!e)return t;try{let n=e.raw_packet;if(n){let e=n.replace(/\s+/g,``).toUpperCase(),r=0;if(e.length>=2){let n=e.slice(r,r+2),i=parseInt(n,16),a=i&3,o=(i&60)>>2,s=(i&192)>>6;if(t.push({name:`Header`,byteRange:`0`,hexData:`0x${n}`,description:`Contains routing type, payload type, and payload version`,fields:[{bits:`0-1`,name:`Route Type`,value:{0:`Transport Flood`,1:`Flood`,2:`Direct`,3:`Transport Direct`}[a]||`Unknown`,binary:a.toString(2).padStart(2,`0`)},{bits:`2-5`,name:`Payload Type`,value:{0:`REQ`,1:`RESPONSE`,2:`TXT_MSG`,3:`ACK`,4:`ADVERT`,5:`GRP_TXT`,6:`GRP_DATA`,7:`ANON_REQ`,8:`PATH`,9:`TRACE`,10:`MULTIPART`,15:`RAW_CUSTOM`}[o]||`Unknown`,binary:o.toString(2).padStart(4,`0`)},{bits:`6-7`,name:`Version`,value:s.toString(),binary:s.toString(2).padStart(2,`0`)}]}),r+=2,(a===0||a===3)&&e.length>=r+8){let n=e.slice(r,r+8),i=parseInt(n.slice(0,4),16),a=parseInt(n.slice(4,8),16);t.push({name:`Transport Codes`,byteRange:`1-4`,hexData:`${n.slice(0,4)} ${n.slice(4,8)}`,description:`2x 16-bit transport codes for routing optimization`,fields:[{bits:`0-15`,name:`Code 1`,value:i.toString(),binary:i.toString(2).padStart(16,`0`)},{bits:`16-31`,name:`Code 2`,value:a.toString(),binary:a.toString(2).padStart(16,`0`)}]}),r+=8}if(e.length>=r+2){let n=e.slice(r,r+2),i=parseInt(n,16),a=(i>>6)+1,o=i&63,s=o*a;if(t.push({name:`Path Length`,byteRange:`${r/2}`,hexData:`0x${n}`,description:`${o} hop${o===1?``:`s`}, ${a}-byte hash${a>1?`es`:``} (${s} bytes)`,fields:[{bits:`6-7`,name:`Hash Size`,value:`${a}-byte`,binary:(i>>6&3).toString(2).padStart(2,`0`)},{bits:`0-5`,name:`Hop Count`,value:`${o}`,binary:(i&63).toString(2).padStart(6,`0`)}]}),r+=2,s>0&&e.length>=r+s*2){let n=e.slice(r,r+s*2),i=RegExp(`.{${a*2}}`,`g`),c=n.match(i)||[];t.push({name:`Path Data`,byteRange:`${r/2}-${(r+s*2-2)/2}`,hexData:c.join(` `)||n,description:`${o} × ${a}-byte routing hash${o===1?``:`es`}`,fields:c.map((e,t)=>({bits:`${t*a*8}-${(t+1)*a*8-1}`,name:`Hop ${t+1}`,value:e.toUpperCase(),binary:`${a} byte${a>1?`s`:``}`}))}),r+=s*2}}if(e.length>r){let n=e.slice(r),i=n.length/2;o===4?q(t,n,r):t.push({name:`Payload Data`,byteRange:`${r/2}-${r/2+i-1}`,hexData:n.match(/.{2}/g)?.join(` `)||n,description:`Application data content`,fields:[{bits:`0-${i*8-1}`,name:`Application Data`,value:`${i} bytes`,binary:`${i} bytes (${i*8} bits)`}]})}}}else{if(e.header){let n=e.header.replace(/0x/gi,``).replace(/\s+/g,``).toUpperCase(),r=parseInt(n,16),i=r&3,a=(r&60)>>2,o=(r&192)>>6;t.push({name:`Header`,byteRange:`0`,hexData:`0x${n}`,description:`Contains routing type, payload type, and payload version`,fields:[{bits:`0-1`,name:`Route Type`,value:{0:`Transport Flood`,1:`Flood`,2:`Direct`,3:`Transport Direct`}[i]||`Unknown`,binary:i.toString(2).padStart(2,`0`)},{bits:`2-5`,name:`Payload Type`,value:{0:`REQ`,1:`RESPONSE`,2:`TXT_MSG`,3:`ACK`,4:`ADVERT`,5:`GRP_TXT`,6:`GRP_DATA`,7:`ANON_REQ`,8:`PATH`,9:`TRACE`,10:`MULTIPART`,15:`RAW_CUSTOM`}[a]||`Unknown`,binary:a.toString(2).padStart(4,`0`)},{bits:`6-7`,name:`Version`,value:o.toString(),binary:o.toString(2).padStart(2,`0`)}]}),e.transport_codes&&t.push({name:`Transport Codes`,byteRange:`1-4`,hexData:e.transport_codes,description:`2x 16-bit transport codes for routing optimization`,fields:[{bits:`0-31`,name:`Transport Codes`,value:e.transport_codes,binary:`Available in separate field`}]}),e.original_path&&e.original_path.length>0&&t.push({name:`Original Path`,byteRange:`?`,hexData:e.original_path.join(` `),description:`Original routing path (${e.original_path.length} nodes)`,fields:[{bits:`0-?`,name:`Path Nodes`,value:`${e.original_path.length} nodes`,binary:`Available as node list`}]}),e.forwarded_path&&e.forwarded_path.length>0&&t.push({name:`Forwarded Path`,byteRange:`?`,hexData:e.forwarded_path.join(` `),description:`Forwarded routing path (${e.forwarded_path.length} nodes)`,fields:[{bits:`0-?`,name:`Path Nodes`,value:`${e.forwarded_path.length} nodes`,binary:`Available as node list`}]})}if(e.payload){let n=e.payload.replace(/\s+/g,``).toUpperCase(),r=n.length/2;e.type===4?q(t,n,0):t.push({name:`Payload Data`,byteRange:`0-${r-1}`,hexData:n.match(/.{2}/g)?.join(` `)||n,description:`Application data content (${r} bytes)`,fields:[{bits:`0-${r*8-1}`,name:`Application Data`,value:`${r} bytes`,binary:`${r} bytes (${r*8} bits)`}]})}}}catch{t.push({name:`Parse Error`,byteRange:`N/A`,hexData:`Error`,description:`Unable to parse packet structure`,fields:[{bits:`N/A`,name:`Error`,value:`Parse failed`,binary:`Invalid`}]})}return t},Z=(e,t)=>e==null||t==null?`text-content-muted dark:text-content-muted`:V(t).color,Q=e=>{if(!e)return[];try{let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}},$=e=>e>=1e3?`${(e/1e3).toFixed(2)}s`:`${Math.round(e)}ms`,on=e=>{e.key===`Escape`&&U(`close`)},sn=e=>{e.target===e.currentTarget&&U(`close`)};return d(()=>H.isOpen,e=>{e?document.body.style.overflow=`hidden`:document.body.style.overflow=``},{immediate:!0}),(r,d)=>(n(),o(u,{to:`body`},[p(te,{name:`modal`,appear:``},{default:t(()=>[c.isOpen&&c.packet?(n(),_(`div`,{key:0,class:`fixed inset-0 z-50 flex items-center justify-center p-2 sm:p-4 overflow-hidden`,onClick:sn,onKeydown:on,tabindex:`0`},[d[50]||=g(`div`,{class:`absolute inset-0 bg-black/60 backdrop-blur-md pointer-events-none`},null,-1),g(`div`,{class:`relative w-full max-w-4xl max-h-[95vh] sm:max-h-[90vh] flex flex-col`,onClick:d[3]||=ee(()=>{},[`stop`])},[g(`div`,ie,[g(`div`,ae,[g(`div`,oe,[d[4]||=g(`h2`,{class:`text-lg sm:text-2xl font-bold text-content-primary dark:text-content-primary mb-1`},` Packet Details `,-1),g(`div`,se,[g(`span`,ce,a(G(c.packet.type)),1),g(`span`,le,a(K(c.packet.route)),1)])]),g(`div`,ue,[g(`button`,{onClick:d[0]||=e=>W.value=!W.value,class:l([`flex-1 sm:flex-none flex items-center justify-center gap-2 px-3 py-2 rounded-lg transition-all duration-200`,W.value?`bg-cyan-500/20 border border-cyan-400/30 text-cyan-600 dark:text-cyan-400`:`bg-background-mute dark:bg-white/10 border border-stroke-subtle dark:border-stroke/20 text-content-secondary dark:text-content-muted`]),title:W.value?`Hide binary values`:`Show binary values`},[...d[5]||=[g(`svg`,{class:`w-4 h-4`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[g(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4`})],-1),g(`span`,{class:`text-xs font-medium`},`Binary`,-1)]],10,de),g(`button`,{type:`button`,onClick:d[1]||=e=>U(`close`),"aria-label":`Close packet details`,title:`Close`,class:`w-9 h-9 flex items-center justify-center rounded-lg bg-background-mute dark:bg-white/10 hover:bg-stroke-subtle dark:hover:bg-white/20 transition-colors duration-200 text-content-secondary dark:text-content-primary hover:text-content-primary dark:hover:text-content-primary`},[...d[6]||=[g(`svg`,{class:`w-5 h-5`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[g(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M6 18L18 6M6 6l12 12`})],-1)]])])]),g(`div`,fe,[g(`div`,pe,[d[13]||=g(`h3`,{class:`text-base sm:text-lg font-semibold text-content-primary dark:text-content-primary mb-4 flex items-center`},[g(`div`,{class:`w-2 h-2 rounded-full bg-cyan-400 mr-3`}),m(` Basic Information `)],-1),g(`div`,me,[g(`div`,y,[g(`div`,b,[g(`div`,x,[d[7]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Timestamp`,-1),g(`span`,S,a($t(c.packet.timestamp)),1)]),g(`div`,C,[d[8]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Packet Hash`,-1),g(`span`,w,a(c.packet.packet_hash),1)]),c.packet.header?(n(),_(`div`,T,[d[9]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Header`,-1),g(`span`,E,a(c.packet.header),1)])):f(``,!0)]),g(`div`,D,[g(`div`,O,[d[10]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Type`,-1),g(`span`,k,a(c.packet.type)+` (`+a(G(c.packet.type))+`)`,1)]),g(`div`,A,[d[11]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Route`,-1),g(`span`,j,a(c.packet.route)+` (`+a(K(c.packet.route))+`)`,1)]),g(`div`,M,[d[12]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Status`,-1),g(`span`,{class:l([`font-semibold`,en(c.packet)])},a(tn(c.packet)),3)])])])])]),g(`div`,N,[d[25]||=g(`h3`,{class:`text-base sm:text-lg font-semibold text-content-primary dark:text-content-primary mb-4 flex items-center`},[g(`div`,{class:`w-2 h-2 rounded-full bg-orange-400 mr-3`}),m(` Payload Data `)],-1),g(`div`,P,[g(`div`,F,[g(`div`,I,[d[14]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Payload Length`,-1),g(`span`,L,a(c.packet.payload_length||c.packet.length)+` bytes`,1)]),c.packet.payload?(n(),_(`div`,R,[d[23]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-sm mb-3`},` Payload Analysis `,-1),g(`div`,z,[d[15]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-xs mb-2 font-semibold`},` Raw Hex Data `,-1),g(`div`,he,[g(`pre`,ge,a(nn(c.packet.payload)),1)])]),(n(!0),_(h,null,e(an(c.packet).filter(e=>!e.name.includes(`Parse Error`)&&![`Path Length`,`Path Data`,`Original Path`,`Forwarded Path`].includes(e.name)),(t,r)=>(n(),_(`div`,{key:r,class:`mb-4`},[g(`div`,_e,[g(`h4`,ve,a(t.name),1),g(`span`,ye,`Bytes `+a(t.byteRange),1)]),g(`div`,be,[g(`div`,xe,a(t.hexData),1)]),g(`div`,Se,[g(`div`,{class:l([`hidden md:grid gap-3 p-3 bg-background-mute dark:bg-white/10 text-content-secondary dark:text-content-muted text-xs font-semibold uppercase tracking-wide`,W.value?`grid-cols-4`:`grid-cols-3`])},[d[16]||=g(`div`,{class:`min-w-0`},`Bits`,-1),d[17]||=g(`div`,{class:`min-w-0`},`Field`,-1),d[18]||=g(`div`,{class:`min-w-0`},`Value`,-1),W.value?(n(),_(`div`,Ce,`Binary`)):f(``,!0)],2),(n(!0),_(h,null,e(t.fields,(e,t)=>(n(),_(`div`,{key:t,class:l([`hidden md:grid gap-3 p-3 border-b border-stroke-subtle dark:border-stroke/5 last:border-b-0 hover:bg-background-mute dark:hover:bg-stroke/5 transition-colors`,W.value?`grid-cols-4`:`grid-cols-3`])},[g(`div`,we,a(e.bits),1),g(`div`,Te,a(e.name),1),g(`div`,Ee,[g(`span`,{class:`block`,title:e.value},a(e.value),9,De)]),W.value?(n(),_(`div`,Oe,[g(`span`,{class:`block`,title:e.binary},a(e.binary),9,ke)])):f(``,!0)],2))),128)),(n(!0),_(h,null,e(t.fields,(e,t)=>(n(),_(`div`,{key:`mobile-${t}`,class:`md:hidden p-3 border-b border-stroke-subtle dark:border-stroke/5 last:border-b-0 space-y-2`},[g(`div`,Ae,[g(`div`,null,[d[19]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-xs uppercase tracking-wide`},`Bits:`,-1),g(`div`,je,a(e.bits),1)]),g(`div`,null,[d[20]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-xs uppercase tracking-wide`},`Field:`,-1),g(`div`,Me,a(e.name),1)])]),g(`div`,null,[d[21]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-xs uppercase tracking-wide`},`Value:`,-1),g(`div`,{class:`text-content-primary dark:text-content-primary text-sm font-semibold break-all`,title:e.value},a(e.value),9,Ne)]),W.value?(n(),_(`div`,Pe,[d[22]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-xs uppercase tracking-wide`},`Binary:`,-1),g(`div`,{class:`text-orange-500 text-xs font-mono break-all`,title:e.binary},a(e.binary),9,Fe)])):f(``,!0)]))),128))]),t.description?(n(),_(`div`,Ie,a(t.description),1)):f(``,!0)]))),128))])):(n(),_(`div`,Le,[...d[24]||=[g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Payload:`,-1),g(`span`,{class:`text-content-muted dark:text-content-muted ml-2`},`None`,-1)]]))])])]),g(`div`,Re,[d[32]||=g(`h3`,{class:`text-base sm:text-lg font-semibold text-content-primary dark:text-content-primary mb-4 flex items-center`},[g(`div`,{class:`w-2 h-2 rounded-full bg-purple-400 mr-3`}),m(` Path Information `)],-1),g(`div`,ze,[g(`div`,Be,[g(`div`,Ve,[g(`div`,He,[d[26]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Source Hash`,-1),g(`span`,{class:l([`text-content-primary dark:text-content-primary font-mono text-xs`,H.localHash&&c.packet.src_hash===H.localHash?`bg-cyan-400/20 text-cyan-600 dark:text-cyan-300 px-1 rounded`:``])},a(c.packet.src_hash||`Unknown`),3)]),g(`div`,Ue,[d[27]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Destination Hash`,-1),g(`span`,{class:l([`text-content-primary dark:text-content-primary font-mono text-xs`,H.localHash&&c.packet.dst_hash===H.localHash?`bg-cyan-400/20 text-cyan-600 dark:text-cyan-300 px-1 rounded`:``])},a(c.packet.dst_hash||`Broadcast`),3)])]),X(c.packet).length>0?(n(),_(`div`,We,[g(`div`,Ge,[d[28]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm font-medium`},` Path Table `,-1),g(`span`,Ke,a(Y(c.packet.original_path).length)+` original hops `,1),c.packet.transmitted&&Y(c.packet.forwarded_path).length>0?(n(),_(`span`,qe,a(Y(c.packet.forwarded_path).length)+` forwarded hops `,1)):f(``,!0),c.packet.transmitted&&rn(c.packet)?(n(),_(`span`,Je,` Modified `)):f(``,!0)]),g(`div`,Ye,[d[31]||=g(`div`,{class:`hidden md:grid grid-cols-[56px_1fr_1fr_96px] gap-3 p-3 bg-background-mute/80 dark:bg-white/10 text-content-secondary dark:text-content-muted text-xs font-semibold uppercase tracking-wide`},[g(`div`,null,`Hop`),g(`div`,null,`Original`),g(`div`,null,`Forwarded`),g(`div`,null,`Status`)],-1),(n(!0),_(h,null,e(X(c.packet),e=>(n(),_(`div`,{key:`desktop-${e.hop}`,class:`hidden md:grid grid-cols-[56px_1fr_1fr_96px] gap-3 p-3 border-t border-stroke-subtle dark:border-stroke/10 items-center`},[g(`div`,Xe,` #`+a(e.hop),1),g(`div`,Ze,[g(`div`,{class:l([`font-mono text-xs sm:text-sm rounded-md px-2 py-1 border truncate`,e.original?e.localOriginal?`bg-cyan-400/20 border-cyan-400/40 text-cyan-700 dark:text-cyan-300`:`bg-cyan-500/10 border-cyan-400/25 text-content-primary dark:text-content-primary`:`bg-background-mute/60 border-stroke-subtle text-content-muted dark:text-content-muted`]),title:e.original||`No hop`},a(e.original||`-`),11,Qe)]),g(`div`,$e,[g(`div`,{class:l([`font-mono text-xs sm:text-sm rounded-md px-2 py-1 border truncate`,e.forwarded?e.localForwarded?`bg-yellow-500/20 border-yellow-400/40 text-yellow-700 dark:text-yellow-300`:`bg-orange-500/10 border-orange-400/25 text-content-primary dark:text-content-primary`:`bg-background-mute/60 border-stroke-subtle text-content-muted dark:text-content-muted`]),title:e.forwarded||`No hop`},a(e.forwarded||`-`),11,et)]),g(`div`,null,[g(`span`,{class:l([`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium`,e.status===`same`?`bg-green-500/20 text-green-700 dark:text-green-300`:e.status===`changed`?`bg-yellow-500/20 text-yellow-700 dark:text-yellow-300`:e.status===`original-only`?`bg-cyan-500/20 text-cyan-700 dark:text-cyan-300`:`bg-orange-500/20 text-orange-700 dark:text-orange-300`])},a(e.status===`same`?`Same`:e.status===`changed`?`Changed`:e.status===`original-only`?`Original only`:`Forwarded only`),3)])]))),128)),g(`div`,tt,[(n(!0),_(h,null,e(X(c.packet),e=>(n(),_(`div`,{key:`mobile-${e.hop}`,class:`p-3 space-y-2`},[g(`div`,nt,[g(`span`,rt,` Hop #`+a(e.hop),1),g(`span`,{class:l([`inline-flex items-center rounded-full px-2 py-0.5 text-[11px] font-medium`,e.status===`same`?`bg-green-500/20 text-green-700 dark:text-green-300`:e.status===`changed`?`bg-yellow-500/20 text-yellow-700 dark:text-yellow-300`:e.status===`original-only`?`bg-cyan-500/20 text-cyan-700 dark:text-cyan-300`:`bg-orange-500/20 text-orange-700 dark:text-orange-300`])},a(e.status===`same`?`Same`:e.status===`changed`?`Changed`:e.status===`original-only`?`Original only`:`Forwarded only`),3)]),g(`div`,it,[g(`div`,at,[d[29]||=g(`div`,{class:`text-[11px] uppercase tracking-wide text-content-muted dark:text-content-muted`},` Original `,-1),g(`div`,{class:l([`font-mono text-xs rounded-md px-2 py-1 border truncate`,e.original?e.localOriginal?`bg-cyan-400/20 border-cyan-400/40 text-cyan-700 dark:text-cyan-300`:`bg-cyan-500/10 border-cyan-400/25 text-content-primary dark:text-content-primary`:`bg-background-mute/60 border-stroke-subtle text-content-muted dark:text-content-muted`]),title:e.original||`No hop`},a(e.original||`-`),11,ot)]),g(`div`,st,[d[30]||=g(`div`,{class:`text-[11px] uppercase tracking-wide text-content-muted dark:text-content-muted`},` Forwarded `,-1),g(`div`,{class:l([`font-mono text-xs rounded-md px-2 py-1 border truncate`,e.forwarded?e.localForwarded?`bg-yellow-500/20 border-yellow-400/40 text-yellow-700 dark:text-yellow-300`:`bg-orange-500/10 border-orange-400/25 text-content-primary dark:text-content-primary`:`bg-background-mute/60 border-stroke-subtle text-content-muted dark:text-content-muted`]),title:e.forwarded||`No hop`},a(e.forwarded||`-`),11,B)])])]))),128))])])])):f(``,!0)])])]),g(`div`,ct,[d[49]||=g(`h3`,{class:`text-base sm:text-lg font-semibold text-content-primary dark:text-content-primary mb-4 flex items-center`},[g(`div`,{class:`w-2 h-2 rounded-full bg-green-400 mr-3`}),m(` Signal & Processing `)],-1),g(`div`,lt,[g(`div`,ut,[g(`div`,dt,[d[33]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-xs mb-1`},` RSSI `,-1),g(`div`,ft,a(typeof c.packet.rssi==`number`?c.packet.rssi:`N/A`),1),d[34]||=g(`div`,{class:`text-content-muted dark:text-content-muted text-xs`},`dBm`,-1)]),g(`div`,pt,[d[35]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-xs mb-1`},` SNR `,-1),g(`div`,{class:l([`text-lg font-bold`,Z(c.packet.snr,c.packet.rssi)])},a(typeof c.packet.snr==`number`?c.packet.snr.toFixed(1):`N/A`),3),d[36]||=g(`div`,{class:`text-content-muted dark:text-content-muted text-xs`},`dB`,-1)]),g(`div`,mt,[d[37]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-xs mb-1`},` Score `,-1),g(`div`,ht,a(typeof c.packet.score==`number`?c.packet.score.toFixed(3):`N/A`),1)])]),c.packet.rssi==null?(n(),_(`div`,vt,[...d[39]||=[g(`div`,{class:`text-content-secondary dark:text-content-muted text-sm mb-2`},` Signal Quality `,-1),g(`div`,{class:`text-content-muted dark:text-content-muted text-sm italic`},` N/A (TX Packet) `,-1)]])):(n(),_(`div`,gt,[d[38]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-sm mb-2`},` Signal Quality `,-1),g(`div`,_t,[p(re,{bars:i(V)(c.packet.rssi).bars,color:i(V)(c.packet.rssi).color},null,8,[`bars`,`color`]),g(`span`,{class:l([`text-sm font-medium`,i(V)(c.packet.rssi).color])},a(i(V)(c.packet.rssi).quality),3)])])),c.packet.is_trace&&c.packet.path_snr_details&&c.packet.path_snr_details.length>0?(n(),_(`div`,yt,[g(`div`,bt,` Path SNR Details (`+a(c.packet.path_snr_details.length)+` hops) `,1),g(`div`,xt,[(n(!0),_(h,null,e(c.packet.path_snr_details,(e,t)=>(n(),_(`div`,{key:t,class:`flex items-center justify-between p-2 glass-card bg-background-mute dark:bg-white/5 rounded-[8px]`},[g(`div`,St,[g(`span`,Ct,a(t+1)+`.`,1),g(`span`,{class:l([`font-mono text-xs text-content-primary dark:text-content-primary`,H.localHash&&e.hash===H.localHash?`bg-cyan-400/20 text-cyan-600 dark:text-cyan-300 px-1 rounded`:``])},a(e.hash.toUpperCase()),3)]),g(`span`,{class:l([`text-sm font-bold`,Z(e.snr_db,null)])},a(e.snr_db.toFixed(1))+`dB `,3)]))),128))])])):f(``,!0),c.packet.transmitted&&c.packet.lbt_attempts!==void 0?(n(),_(`div`,wt,[d[44]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-sm mb-3 flex items-center`},[g(`svg`,{class:`w-4 h-4 mr-2`,fill:`none`,stroke:`currentColor`,viewBox:`0 0 24 24`},[g(`path`,{"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z`})]),m(` Listen Before Talk (LBT) Metrics `)],-1),g(`div`,Tt,[g(`div`,Et,[d[40]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-xs mb-1`},` CAD Attempts `,-1),g(`div`,Dt,a(c.packet.lbt_attempts),1)]),g(`div`,Ot,[d[41]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-xs mb-1`},` Total LBT Delay `,-1),g(`div`,kt,a($(Q(c.packet.lbt_backoff_delays_ms).reduce((e,t)=>e+t,0))),1),g(`div`,At,a(Q(c.packet.lbt_backoff_delays_ms).length)+` backoffs `,1)]),g(`div`,jt,[d[42]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-xs mb-1`},` Channel Status `,-1),g(`div`,{class:l([`text-lg font-bold`,c.packet.lbt_channel_busy?`text-yellow-600 dark:text-yellow-400`:`text-green-600 dark:text-green-400`])},a(c.packet.lbt_channel_busy?`BUSY`:`CLEAR`),3),g(`div`,Mt,a(c.packet.lbt_channel_busy?`Waited for clear`:`Immediate TX`),1)])]),Q(c.packet.lbt_backoff_delays_ms).length>0?(n(),_(`div`,Nt,[d[43]||=g(`div`,{class:`text-content-secondary dark:text-content-muted text-xs mb-3 font-semibold`},` Backoff Pattern (Exponential with Jitter) `,-1),g(`div`,Pt,[(n(!0),_(h,null,e(Q(c.packet.lbt_backoff_delays_ms),(e,t)=>(n(),_(`div`,{key:t,class:`flex items-center gap-3`},[g(`div`,Ft,[g(`span`,It,`Attempt `+a(t+1),1)]),g(`div`,Lt,[g(`div`,Rt,[g(`div`,{class:l([`h-full rounded-lg transition-all duration-300`,[t===0?`bg-gradient-to-r from-cyan-500/50 to-cyan-600/50`:t===1?`bg-gradient-to-r from-yellow-500/50 to-yellow-600/50`:t===2?`bg-gradient-to-r from-orange-500/50 to-orange-600/50`:`bg-gradient-to-r from-red-500/50 to-red-600/50`]]),style:s({width:`${Math.min(100,e/Math.max(...Q(c.packet.lbt_backoff_delays_ms))*100)}%`})},[g(`div`,zt,[g(`span`,Bt,a($(e)),1)])],6)])]),g(`div`,Vt,[g(`span`,Ht,a(Math.round(e/Q(c.packet.lbt_backoff_delays_ms).reduce((e,t)=>e+t,0)*100))+`% `,1)])]))),128))])])):f(``,!0)])):f(``,!0),g(`div`,Ut,[g(`div`,Wt,[g(`div`,Gt,[d[45]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`TX Delay`,-1),g(`span`,Kt,a(Number(c.packet.tx_delay_ms)>0?Number(c.packet.tx_delay_ms).toFixed(1)+`ms`:`-`),1)]),g(`div`,qt,[d[46]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Transmitted`,-1),g(`span`,{class:l(c.packet.transmitted?`text-green-600 dark:text-green-400`:`text-red-600 dark:text-red-400`)},a(c.packet.transmitted?`Yes`:`No`),3)])]),g(`div`,Jt,[g(`div`,Yt,[d[47]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Is Duplicate`,-1),g(`span`,{class:l(c.packet.is_duplicate?`text-amber-600 dark:text-amber-400`:`text-content-muted dark:text-content-muted`)},a(c.packet.is_duplicate?`Yes`:`No`),3)]),c.packet.drop_reason?(n(),_(`div`,Xt,[d[48]||=g(`span`,{class:`text-content-secondary dark:text-content-muted text-sm`},`Drop Reason`,-1),g(`span`,Zt,a(c.packet.drop_reason),1)])):f(``,!0)])])])])]),g(`div`,Qt,[g(`button`,{type:`button`,onClick:d[2]||=e=>U(`close`),"aria-label":`Close packet details`,class:`w-full sm:w-auto px-6 py-2 bg-gradient-to-r from-cyan-500/20 to-cyan-400/20 hover:from-cyan-500/30 hover:to-cyan-400/30 border border-cyan-400/30 rounded-[10px] text-content-primary dark:text-content-primary transition-all duration-200 backdrop-blur-sm`},` Close `)])])])],32)):f(``,!0)]),_:1})]))}}),[[`__scopeId`,`data-v-1921baee`]]);export{V as t}; |