Files
pyMC_Repeater/repeater/web/html/assets/PacketDetailsModal-BlVcpmGq.js
T
2026-06-23 16:35:02 +01:00

2 lines
37 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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};