Release v0.9.178

Automated sync from private repository.
Built with obfuscation enabled.
This commit is contained in:
GitHub Actions Bot
2026-01-23 16:57:20 +00:00
parent 0dc2fdbaa0
commit 059a626aee
39 changed files with 39 additions and 39 deletions
+1 -1
View File
@@ -1 +1 @@
0.9.177
0.9.178
@@ -1 +1 @@
import{c as t,bp as e,r}from"./vendor-react-BhIHFXIk.js";const a="pymc-basemap-mode",o="light";function s(){if("undefined"==typeof window)return o;try{const t=localStorage.getItem(a);if("light"===t||"dark"===t)return t}catch{}return o}function n(t){if("undefined"!=typeof window)try{localStorage.setItem(a,t)}catch{}}const c=t(t=>({mode:s(),toggle:()=>t(t=>{const e="light"===t.mode?"dark":"light";return n(e),{mode:e}}),setMode:e=>{n(e),t({mode:e})}})),l=()=>c(t=>t.mode),i=()=>c(t=>t.toggle),u={light:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",dark:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json"},d={light:"basemap-light-",dark:"basemap-dark-"},f={};function y({mode:t}){const{current:a}=e(),[o,s]=r.useState(null),n=r.useRef({light:!1,dark:!1}),c=r.useRef({light:[],dark:[]});r.useEffect(()=>{const t=()=>{var t;const e=null==(t=null==a?void 0:a.getMap)?void 0:t.call(a);e&&!o&&s(e)};t();const e=setInterval(t,50),r=setTimeout(()=>clearInterval(e),5e3);return()=>{clearInterval(e),clearTimeout(r)}},[a,o]);const l=r.useCallback(async(t,e,r)=>{var a,o;if(n.current[e])return;const s=d[e],l=await async function(t){if(f[t])return f[t];const e=await fetch(u[t]),r=await e.json();return f[t]=r,r}(e),i=[];for(const[n,c]of Object.entries(l.sources||{})){const e=s+n;t.getSource(e)||t.addSource(e,c)}const y=null==(o=((null==(a=t.getStyle())?void 0:a.layers)||[]).find(t=>!t.id.startsWith("basemap-light-")&&!t.id.startsWith("basemap-dark-")))?void 0:o.id;for(const n of l.layers||[]){const e=s+n.id;if(i.push(e),t.getLayer(e))continue;const a={...n,id:e};"source"in a&&"string"==typeof a.source&&(a.source=s+a.source),a.layout||(a.layout={}),a.layout.visibility=r?"visible":"none";try{t.addLayer(a,y)}catch(g){}}c.current[e]=i,n.current[e]=!0},[]),i=r.useCallback((t,e,r)=>{const a=c.current[e],o=r?"visible":"none";for(const s of a)if(t.getLayer(s))try{t.setLayoutProperty(s,"visibility",o)}catch{}},[]),y=r.useCallback(t=>{var e;const r=((null==(e=t.getStyle())?void 0:e.layers)||[]).filter(t=>!t.id.startsWith("basemap-light-")&&!t.id.startsWith("basemap-dark-"));for(const a of r)try{t.moveLayer(a.id)}catch{}},[]);return r.useEffect(()=>{if(!o)return;let e=!1;const r=async()=>{if(!e)try{await Promise.all([l(o,"light","light"===t),l(o,"dark","dark"===t)]),e||y(o)}catch(r){}};o.isStyleLoaded()?r():(o.once("style.load",r),o.once("load",()=>{e||n.current.light||r()}));const a=()=>{e||setTimeout(()=>{!e&&n.current.light&&n.current.dark&&y(o)},100)};return o.on("styledata",a),()=>{e=!0,o.off("styledata",a)}},[o,l,y,t]),r.useEffect(()=>{o&&n.current.light&&n.current.dark&&(i(o,"light","light"===t),i(o,"dark","dark"===t))},[o,t,i]),null}export{y as B,i as a,l as u};
import{c as t,bq as e,r}from"./vendor-react-DuLqNXZc.js";const a="pymc-basemap-mode",o="light";function s(){if("undefined"==typeof window)return o;try{const t=localStorage.getItem(a);if("light"===t||"dark"===t)return t}catch{}return o}function n(t){if("undefined"!=typeof window)try{localStorage.setItem(a,t)}catch{}}const c=t(t=>({mode:s(),toggle:()=>t(t=>{const e="light"===t.mode?"dark":"light";return n(e),{mode:e}}),setMode:e=>{n(e),t({mode:e})}})),l=()=>c(t=>t.mode),i=()=>c(t=>t.toggle),u={light:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",dark:"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json"},d={light:"basemap-light-",dark:"basemap-dark-"},f={};function y({mode:t}){const{current:a}=e(),[o,s]=r.useState(null),n=r.useRef({light:!1,dark:!1}),c=r.useRef({light:[],dark:[]});r.useEffect(()=>{const t=()=>{var t;const e=null==(t=null==a?void 0:a.getMap)?void 0:t.call(a);e&&!o&&s(e)};t();const e=setInterval(t,50),r=setTimeout(()=>clearInterval(e),5e3);return()=>{clearInterval(e),clearTimeout(r)}},[a,o]);const l=r.useCallback(async(t,e,r)=>{var a,o;if(n.current[e])return;const s=d[e],l=await async function(t){if(f[t])return f[t];const e=await fetch(u[t]),r=await e.json();return f[t]=r,r}(e),i=[];for(const[n,c]of Object.entries(l.sources||{})){const e=s+n;t.getSource(e)||t.addSource(e,c)}const y=null==(o=((null==(a=t.getStyle())?void 0:a.layers)||[]).find(t=>!t.id.startsWith("basemap-light-")&&!t.id.startsWith("basemap-dark-")))?void 0:o.id;for(const n of l.layers||[]){const e=s+n.id;if(i.push(e),t.getLayer(e))continue;const a={...n,id:e};"source"in a&&"string"==typeof a.source&&(a.source=s+a.source),a.layout||(a.layout={}),a.layout.visibility=r?"visible":"none";try{t.addLayer(a,y)}catch(g){}}c.current[e]=i,n.current[e]=!0},[]),i=r.useCallback((t,e,r)=>{const a=c.current[e],o=r?"visible":"none";for(const s of a)if(t.getLayer(s))try{t.setLayoutProperty(s,"visibility",o)}catch{}},[]),y=r.useCallback(t=>{var e;const r=((null==(e=t.getStyle())?void 0:e.layers)||[]).filter(t=>!t.id.startsWith("basemap-light-")&&!t.id.startsWith("basemap-dark-"));for(const a of r)try{t.moveLayer(a.id)}catch{}},[]);return r.useEffect(()=>{if(!o)return;let e=!1;const r=async()=>{if(!e)try{await Promise.all([l(o,"light","light"===t),l(o,"dark","dark"===t)]),e||y(o)}catch(r){}};o.isStyleLoaded()?r():(o.once("style.load",r),o.once("load",()=>{e||n.current.light||r()}));const a=()=>{e||setTimeout(()=>{!e&&n.current.light&&n.current.dark&&y(o)},100)};return o.on("styledata",a),()=>{e=!0,o.off("styledata",a)}},[o,l,y,t]),r.useEffect(()=>{o&&n.current.light&&n.current.dark&&(i(o,"light","light"===t),i(o,"dark","dark"===t))},[o,t,i]),null}export{y as B,i as a,l as u};
@@ -1 +1 @@
import{j as e}from"./vendor-react-BhIHFXIk.js";import{c as s}from"./recharts-BHeZA2Kf.js";function l({title:l,icon:t,badge:a,subtitle:r,actions:i,iconColor:c="text-icon-card-title",largeTitle:n=!1,listHeader:x=!1,stackActionsOnMobile:m=!1}){return m&&i?e.jsxs("div",{className:s("flex flex-col gap-1 flex-shrink-0",x?"px-4 py-3 border-b border-border-subtle bg-bg-elevated/20":"mb-3"),children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[t&&e.jsx("span",{className:s("icon-md flex items-center justify-center",c),children:t}),e.jsx("span",{className:s(n?"type-subheading text-text-primary":"type-micro"),children:l}),a&&e.jsx("span",{className:"pill-tag",children:a})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i})]}),r&&e.jsx("p",{className:"type-label text-text-muted ml-8",children:r})]}):e.jsxs("div",{className:s("flex flex-col gap-1 flex-shrink-0",x?"px-4 py-3 border-b border-border-subtle bg-bg-elevated/20":"mb-3"),children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[t&&e.jsx("span",{className:s("icon-md flex items-center justify-center",c),children:t}),e.jsx("span",{className:s(n?"type-subheading text-text-primary":"type-micro"),children:l}),a&&e.jsx("span",{className:"pill-tag",children:a})]}),i&&e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i})]}),r&&e.jsx("p",{className:"type-label text-text-muted ml-8",children:r})]})}function t({children:l,centered:t,className:a}){return e.jsx("div",{className:s("flex-1 min-h-0",t&&"flex items-center justify-center",a),children:l})}export{l as C,t as a};
import{j as e}from"./vendor-react-DuLqNXZc.js";import{c as s}from"./recharts-BcVXFyqP.js";function l({title:l,icon:t,badge:a,subtitle:r,actions:i,iconColor:c="text-icon-card-title",largeTitle:n=!1,listHeader:x=!1,stackActionsOnMobile:m=!1}){return m&&i?e.jsxs("div",{className:s("flex flex-col gap-1 flex-shrink-0",x?"px-4 py-3 border-b border-border-subtle bg-bg-elevated/20":"mb-3"),children:[e.jsxs("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[t&&e.jsx("span",{className:s("icon-md flex items-center justify-center",c),children:t}),e.jsx("span",{className:s(n?"type-subheading text-text-primary":"type-micro"),children:l}),a&&e.jsx("span",{className:"pill-tag",children:a})]}),e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i})]}),r&&e.jsx("p",{className:"type-label text-text-muted ml-8",children:r})]}):e.jsxs("div",{className:s("flex flex-col gap-1 flex-shrink-0",x?"px-4 py-3 border-b border-border-subtle bg-bg-elevated/20":"mb-3"),children:[e.jsxs("div",{className:"flex items-center justify-between gap-2",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[t&&e.jsx("span",{className:s("icon-md flex items-center justify-center",c),children:t}),e.jsx("span",{className:s(n?"type-subheading text-text-primary":"type-micro"),children:l}),a&&e.jsx("span",{className:"pill-tag",children:a})]}),i&&e.jsx("div",{className:"flex items-center gap-2 flex-wrap",children:i})]}),r&&e.jsx("p",{className:"type-label text-text-muted ml-8",children:r})]})}function t({children:l,centered:t,className:a}){return e.jsx("div",{className:s("flex-1 min-h-0",t&&"flex items-center justify-center",a),children:l})}export{l as C,t as a};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{r as e,b as t,j as o,a8 as s,X as n}from"./vendor-react-BhIHFXIk.js";import{c as r}from"./recharts-BHeZA2Kf.js";const d={danger:{icon:"text-accent-danger",button:"bg-accent-danger hover:brightness-110 active:brightness-90"},warning:{icon:"text-accent-secondary",button:"bg-accent-secondary hover:brightness-110 active:brightness-90 text-bg-body"},default:{icon:"text-accent-primary",button:"bg-accent-primary hover:brightness-110 active:brightness-90 text-bg-body"}},l=e.memo(function({isOpen:l,title:a="Confirm",message:i,confirmLabel:c="Confirm",cancelLabel:m="Cancel",variant:b="default",onConfirm:x,onCancel:u}){if(e.useEffect(()=>{if(!l)return;const e=e=>{"Escape"===e.key&&u()};window.addEventListener("keydown",e);const t=document.body.style.overflow,o=document.body.style.position,s=document.body.style.width,n=document.body.style.top,r=window.scrollY;return document.body.style.overflow="hidden",document.body.style.position="fixed",document.body.style.width="100%",document.body.style.top=`-${r}px`,()=>{window.removeEventListener("keydown",e),document.body.style.overflow=t,document.body.style.position=o,document.body.style.width=s,document.body.style.top=n,window.scrollTo(0,r)}},[l,u]),!l)return null;const y=d[b];return t.createPortal(o.jsx("div",{className:"fixed inset-0 bg-black/40 backdrop-blur-md z-[10010] flex items-end sm:items-center justify-center",onClick:u,role:"dialog","aria-modal":"true","aria-labelledby":"confirm-modal-title",children:o.jsxs("div",{className:r("glass-card-elevated w-full max-w-sm","sm:mx-4 sm:rounded-xl","rounded-t-2xl rounded-b-none sm:rounded-b-xl","pb-safe"),onClick:e=>e.stopPropagation(),children:[o.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-border-subtle",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:r("p-2 rounded-lg bg-bg-subtle",y.icon),children:o.jsx(s,{className:"w-5 h-5"})}),o.jsx("h3",{id:"confirm-modal-title",className:"text-base font-semibold text-text-primary",children:a})]}),o.jsx("button",{onClick:u,className:"p-2 rounded-lg text-text-muted hover:text-text-primary hover:bg-bg-subtle transition-colors",children:o.jsx(n,{className:"w-5 h-5"})})]}),o.jsx("div",{className:"p-4",children:o.jsx("p",{className:"text-sm text-text-secondary",children:i})}),o.jsxs("div",{className:"flex gap-3 p-4 pt-0",children:[o.jsx("button",{onClick:u,className:"flex-1 px-4 py-2.5 rounded-lg text-sm font-medium text-text-secondary bg-bg-subtle hover:bg-bg-elevated border border-border-subtle transition-colors",children:m}),o.jsx("button",{onClick:x,className:r("flex-1 px-4 py-2.5 rounded-lg text-sm font-medium text-text-primary transition-colors",y.button),children:c})]})]})}),document.body)});export{l as C};
import{r as e,b as t,j as o,a8 as s,X as n}from"./vendor-react-DuLqNXZc.js";import{c as r}from"./recharts-BcVXFyqP.js";const d={danger:{icon:"text-accent-danger",button:"bg-accent-danger hover:brightness-110 active:brightness-90"},warning:{icon:"text-accent-secondary",button:"bg-accent-secondary hover:brightness-110 active:brightness-90 text-bg-body"},default:{icon:"text-accent-primary",button:"bg-accent-primary hover:brightness-110 active:brightness-90 text-bg-body"}},l=e.memo(function({isOpen:l,title:a="Confirm",message:i,confirmLabel:c="Confirm",cancelLabel:m="Cancel",variant:b="default",onConfirm:x,onCancel:u}){if(e.useEffect(()=>{if(!l)return;const e=e=>{"Escape"===e.key&&u()};window.addEventListener("keydown",e);const t=document.body.style.overflow,o=document.body.style.position,s=document.body.style.width,n=document.body.style.top,r=window.scrollY;return document.body.style.overflow="hidden",document.body.style.position="fixed",document.body.style.width="100%",document.body.style.top=`-${r}px`,()=>{window.removeEventListener("keydown",e),document.body.style.overflow=t,document.body.style.position=o,document.body.style.width=s,document.body.style.top=n,window.scrollTo(0,r)}},[l,u]),!l)return null;const y=d[b];return t.createPortal(o.jsx("div",{className:"fixed inset-0 bg-black/40 backdrop-blur-md z-[10010] flex items-end sm:items-center justify-center",onClick:u,role:"dialog","aria-modal":"true","aria-labelledby":"confirm-modal-title",children:o.jsxs("div",{className:r("glass-card-elevated w-full max-w-sm","sm:mx-4 sm:rounded-xl","rounded-t-2xl rounded-b-none sm:rounded-b-xl","pb-safe"),onClick:e=>e.stopPropagation(),children:[o.jsxs("div",{className:"flex items-center justify-between p-4 border-b border-border-subtle",children:[o.jsxs("div",{className:"flex items-center gap-3",children:[o.jsx("div",{className:r("p-2 rounded-lg bg-bg-subtle",y.icon),children:o.jsx(s,{className:"w-5 h-5"})}),o.jsx("h3",{id:"confirm-modal-title",className:"text-base font-semibold text-text-primary",children:a})]}),o.jsx("button",{onClick:u,className:"p-2 rounded-lg text-text-muted hover:text-text-primary hover:bg-bg-subtle transition-colors",children:o.jsx(n,{className:"w-5 h-5"})})]}),o.jsx("div",{className:"p-4",children:o.jsx("p",{className:"text-sm text-text-secondary",children:i})}),o.jsxs("div",{className:"flex gap-3 p-4 pt-0",children:[o.jsx("button",{onClick:u,className:"flex-1 px-4 py-2.5 rounded-lg text-sm font-medium text-text-secondary bg-bg-subtle hover:bg-bg-elevated border border-border-subtle transition-colors",children:m}),o.jsx("button",{onClick:x,className:r("flex-1 px-4 py-2.5 rounded-lg text-sm font-medium text-text-primary transition-colors",y.button),children:c})]})]})}),document.body)});export{l as C};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{r as e,j as t,ab as o,$ as a}from"./vendor-react-BhIHFXIk.js";import{c as n}from"./recharts-BHeZA2Kf.js";const s={standard:"w-3 h-3",compact:"w-2.5 h-2.5",responsive:"w-2.5 h-2.5 sm:w-3 sm:h-3"};function c({children:c,copyValue:r,copy:i=!1,size:l="standard",className:p,title:d,color:u}){const[m,h]=e.useState(!1),[x,w]=e.useState(!1),y=e.useRef(null),b=r??("string"==typeof c?c:""),v=s[l],f=e.useCallback(e=>{i&&(e.preventDefault(),e.stopPropagation(),y.current&&clearTimeout(y.current),function(e){var t;if("undefined"!=typeof window&&(window.isSecureContext||"https:"===window.location.protocol||"localhost"===window.location.hostname)&&(null==(t=navigator.clipboard)?void 0:t.writeText))return navigator.clipboard.writeText(e).catch(()=>{}),!0;try{const{scrollX:t,scrollY:o}=window,a=document.createElement("textarea");a.value=e,a.style.cssText="position:fixed;left:-9999px;top:-9999px;opacity:0;pointer-events:none",a.setAttribute("readonly",""),document.body.appendChild(a),a.focus({preventScroll:!0}),a.select(),a.setSelectionRange(0,e.length);const n=document.execCommand("copy");return document.body.removeChild(a),window.scrollTo(t,o),n}catch(o){return!1}}(b),h(!0),y.current=setTimeout(()=>h(!1),2e3))},[i,b]),j="compact"===l?"data-box-compact":"responsive"===l?"data-box-responsive":"",g=i?d||`Click to copy: ${b}`:d;return i?t.jsxs("button",{type:"button",onClick:f,onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),className:n("data-box",j,"cursor-pointer select-none gap-1","hover:bg-white/[0.08] hover:border-white/[0.12]","transition-all duration-200",u,p),title:g,"aria-label":`Copy ${b}`,children:[t.jsx("span",{className:n("transition-colors duration-200",m?"text-accent-success":""),children:c}),t.jsx("span",{className:n("flex items-center justify-center","compact"===l?"w-3 h-3":"w-3.5 h-3.5"),children:m?t.jsx(o,{className:n("text-accent-success",v)}):t.jsx(a,{className:n("transition-opacity duration-200",x?"opacity-70":"opacity-40",v)})})]}):t.jsx("span",{className:n("data-box",j,u,p),title:g,children:c})}export{c as D};
import{r as e,j as t,ab as o,$ as a}from"./vendor-react-DuLqNXZc.js";import{c as n}from"./recharts-BcVXFyqP.js";const s={standard:"w-3 h-3",compact:"w-2.5 h-2.5",responsive:"w-2.5 h-2.5 sm:w-3 sm:h-3"};function c({children:c,copyValue:r,copy:i=!1,size:l="standard",className:p,title:d,color:u}){const[m,h]=e.useState(!1),[x,w]=e.useState(!1),y=e.useRef(null),b=r??("string"==typeof c?c:""),v=s[l],f=e.useCallback(e=>{i&&(e.preventDefault(),e.stopPropagation(),y.current&&clearTimeout(y.current),function(e){var t;if("undefined"!=typeof window&&(window.isSecureContext||"https:"===window.location.protocol||"localhost"===window.location.hostname)&&(null==(t=navigator.clipboard)?void 0:t.writeText))return navigator.clipboard.writeText(e).catch(()=>{}),!0;try{const{scrollX:t,scrollY:o}=window,a=document.createElement("textarea");a.value=e,a.style.cssText="position:fixed;left:-9999px;top:-9999px;opacity:0;pointer-events:none",a.setAttribute("readonly",""),document.body.appendChild(a),a.focus({preventScroll:!0}),a.select(),a.setSelectionRange(0,e.length);const n=document.execCommand("copy");return document.body.removeChild(a),window.scrollTo(t,o),n}catch(o){return!1}}(b),h(!0),y.current=setTimeout(()=>h(!1),2e3))},[i,b]),j="compact"===l?"data-box-compact":"responsive"===l?"data-box-responsive":"",g=i?d||`Click to copy: ${b}`:d;return i?t.jsxs("button",{type:"button",onClick:f,onMouseEnter:()=>w(!0),onMouseLeave:()=>w(!1),className:n("data-box",j,"cursor-pointer select-none gap-1","hover:bg-white/[0.08] hover:border-white/[0.12]","transition-all duration-200",u,p),title:g,"aria-label":`Copy ${b}`,children:[t.jsx("span",{className:n("transition-colors duration-200",m?"text-accent-success":""),children:c}),t.jsx("span",{className:n("flex items-center justify-center","compact"===l?"w-3 h-3":"w-3.5 h-3.5"),children:m?t.jsx(o,{className:n("text-accent-success",v)}):t.jsx(a,{className:n("transition-opacity duration-200",x?"opacity-70":"opacity-40",v)})})]}):t.jsx("span",{className:n("data-box",j,u,p),title:g,children:c})}export{c as D};
@@ -1 +1 @@
import{r as o,j as e}from"./vendor-react-BhIHFXIk.js";import{c as t}from"./recharts-BHeZA2Kf.js";const l={hero:{mobile:12},"hero-tall":{mobile:12},"hero-auto":{mobile:12},panel:{mobile:12,md:6},feature:{mobile:12,md:6,lg:4},standard:{mobile:12,sm:6,lg:4,xl:3},compact:{mobile:6,lg:3},widget:{mobile:6,sm:4,md:3,lg:2},auto:{mobile:12}},a={hero:"bento-row-hero","hero-tall":"bento-row-hero-tall","hero-auto":"bento-row-hero-auto",panel:"bento-row-panel",feature:"bento-row-feature",standard:"bento-row-standard",compact:"bento-row-compact",widget:"bento-row-widget",auto:"bento-row-auto"};function n({template:n,children:r,className:s,gap:c}){const i=l[n],b=a[n],d="none"===c?"gap-0":"sm"===c?"bento-gap-sm":"lg"===c?"bento-gap-lg":"bento-gap",p=o.Children.map(r,t=>o.isValidElement(t)?t.type===m?t:e.jsx(m,{span:i.mobile,sm:i.sm,md:i.md,lg:i.lg,xl:i.xl,children:t}):t);return e.jsx("div",{className:t("bento-row",b,d,s),children:p})}function r(o,e=""){const t=e?`${e}:`:"";return"full"===o?`${t}col-span-full`:"auto"===o?`${t}col-auto`:1.5===o?`${t}bento-col-1-5`:`${t}bento-col-${o}`}function m({children:o,span:l,sm:a,md:n,lg:m,xl:s,className:c}){const i=t("bento-cell",r(l),a&&r(a,"sm"),n&&r(n,"md"),m&&r(m,"lg"),s&&r(s,"xl"),c);return e.jsx("div",{className:i,children:o})}export{m as C,n as R};
import{r as o,j as e}from"./vendor-react-DuLqNXZc.js";import{c as t}from"./recharts-BcVXFyqP.js";const l={hero:{mobile:12},"hero-tall":{mobile:12},"hero-auto":{mobile:12},panel:{mobile:12,md:6},feature:{mobile:12,md:6,lg:4},standard:{mobile:12,sm:6,lg:4,xl:3},compact:{mobile:6,lg:3},widget:{mobile:6,sm:4,md:3,lg:2},auto:{mobile:12}},a={hero:"bento-row-hero","hero-tall":"bento-row-hero-tall","hero-auto":"bento-row-hero-auto",panel:"bento-row-panel",feature:"bento-row-feature",standard:"bento-row-standard",compact:"bento-row-compact",widget:"bento-row-widget",auto:"bento-row-auto"};function n({template:n,children:r,className:s,gap:c}){const i=l[n],b=a[n],d="none"===c?"gap-0":"sm"===c?"bento-gap-sm":"lg"===c?"bento-gap-lg":"bento-gap",p=o.Children.map(r,t=>o.isValidElement(t)?t.type===m?t:e.jsx(m,{span:i.mobile,sm:i.sm,md:i.md,lg:i.lg,xl:i.xl,children:t}):t);return e.jsx("div",{className:t("bento-row",b,d,s),children:p})}function r(o,e=""){const t=e?`${e}:`:"";return"full"===o?`${t}col-span-full`:"auto"===o?`${t}col-auto`:1.5===o?`${t}bento-col-1-5`:`${t}bento-col-${o}`}function m({children:o,span:l,sm:a,md:n,lg:m,xl:s,className:c}){const i=t("bento-cell",r(l),a&&r(a,"sm"),n&&r(n,"md"),m&&r(m,"lg"),s&&r(s,"xl"),c);return e.jsx("div",{className:i,children:o})}export{m as C,n as R};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{r as e,j as s,F as a,a_ as t,a$ as r}from"./vendor-react-BhIHFXIk.js";import{c as l}from"./recharts-BHeZA2Kf.js";import{ab as i,ac as c,b as o,ad as n,r as m,aa as x,ae as d}from"./index-Da4kX2iS.js";import{u as p}from"./usePolling-B415X9_r.js";import{P as h,b as j,a as g,L as u}from"./PageLayout-CXQ5iQRo.js";import{C as f}from"./Card-CbzfzjMx.js";import"./vendor-core-WoOfkQwm.js";import"./deckgl-DTsmDcfs.js";const v=e.memo(function({log:e}){return s.jsx("div",{className:"p-3 rounded-2xl bg-white/[0.02] hover:bg-white/[0.04] transition-colors",children:s.jsxs("div",{className:"flex items-baseline gap-3",children:[s.jsx("span",{className:l("type-data-sm w-14 shrink-0",d(e.level)),children:e.level}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsx("p",{className:"type-data-sm text-text-primary break-words whitespace-pre-wrap",children:e.message}),s.jsx("p",{className:"type-data-xs text-text-muted mt-1",children:new Date(e.timestamp).toLocaleString()})]})]})})});function w({showDebug:e,onToggle:a}){return s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:l("type-data-sm",e?"text-accent-tertiary":"text-accent-primary"),children:e?"DEBUG":"INFO"}),s.jsx("button",{onClick:a,className:l("relative w-10 h-5 rounded-full transition-colors duration-200",e?"bg-accent-tertiary":"bg-accent-primary"),role:"switch","aria-checked":e,children:s.jsx("span",{className:l("absolute top-[2px] left-[2px] w-4 h-4 bg-white rounded-full shadow-sm transition-transform duration-200",e?"translate-x-5":"translate-x-0")})})]})}function N(){const d=i(),N=c(),b=o(),y=n(),k=m(),[C,D]=e.useState(!1),L=e.useCallback(()=>{D(e=>!e)},[]),P=C?d:d.filter(e=>"DEBUG"!==e.level);return p(y,x.logs,b),s.jsxs(h,{children:[s.jsx(j,{title:"System Logs",icon:s.jsx(a,{}),controls:s.jsx(w,{showDebug:C,onToggle:L})}),s.jsxs(g,{noPadding:!0,children:[s.jsx(f,{listHeader:!0,icon:s.jsx(a,{className:"icon-sm"}),title:"Log Entries",actions:s.jsx("button",{onClick:()=>k(!b),className:l("transition-colors",b?"text-signal-critical hover:text-signal-critical/80":"text-accent-primary hover:text-accent-primary/80 animate-pulse-slow"),title:b?"Pause":"Resume",children:b?s.jsx(t,{className:"w-5 h-5"}):s.jsx(r,{className:"w-5 h-5"})})}),s.jsx("div",{className:"space-y-2 max-h-[calc(100vh-300px)] sm:max-h-[calc(100vh-250px)] overflow-y-auto p-4",children:N&&0===d.length?s.jsx(u,{count:10}):0===P.length?s.jsx("div",{className:"text-center py-12 text-text-muted",children:0===d.length?"No logs available":"No logs match selected filters"}):P.map((e,a)=>s.jsx(v,{log:e},`${e.timestamp}-${a}`))})]})]})}export{N as default};
import{r as e,j as s,F as a,a_ as t,a$ as r}from"./vendor-react-DuLqNXZc.js";import{c as l}from"./recharts-BcVXFyqP.js";import{ac as i,ad as c,b as o,ae as n,r as m,ab as x,af as d}from"./index-BxGkT9Rr.js";import{u as p}from"./usePolling-B2aIg0-t.js";import{P as h,b as j,a as g,L as u}from"./PageLayout-DcevNKfF.js";import{C as f}from"./Card-QsoFS2aH.js";import"./vendor-core-WoOfkQwm.js";import"./deckgl-DTsmDcfs.js";const v=e.memo(function({log:e}){return s.jsx("div",{className:"p-3 rounded-2xl bg-white/[0.02] hover:bg-white/[0.04] transition-colors",children:s.jsxs("div",{className:"flex items-baseline gap-3",children:[s.jsx("span",{className:l("type-data-sm w-14 shrink-0",d(e.level)),children:e.level}),s.jsxs("div",{className:"flex-1 min-w-0",children:[s.jsx("p",{className:"type-data-sm text-text-primary break-words whitespace-pre-wrap",children:e.message}),s.jsx("p",{className:"type-data-xs text-text-muted mt-1",children:new Date(e.timestamp).toLocaleString()})]})]})})});function w({showDebug:e,onToggle:a}){return s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx("span",{className:l("type-data-sm",e?"text-accent-tertiary":"text-accent-primary"),children:e?"DEBUG":"INFO"}),s.jsx("button",{onClick:a,className:l("relative w-10 h-5 rounded-full transition-colors duration-200",e?"bg-accent-tertiary":"bg-accent-primary"),role:"switch","aria-checked":e,children:s.jsx("span",{className:l("absolute top-[2px] left-[2px] w-4 h-4 bg-white rounded-full shadow-sm transition-transform duration-200",e?"translate-x-5":"translate-x-0")})})]})}function N(){const d=i(),N=c(),b=o(),y=n(),k=m(),[C,D]=e.useState(!1),L=e.useCallback(()=>{D(e=>!e)},[]),P=C?d:d.filter(e=>"DEBUG"!==e.level);return p(y,x.logs,b),s.jsxs(h,{children:[s.jsx(j,{title:"System Logs",icon:s.jsx(a,{}),controls:s.jsx(w,{showDebug:C,onToggle:L})}),s.jsxs(g,{noPadding:!0,children:[s.jsx(f,{listHeader:!0,icon:s.jsx(a,{className:"icon-sm"}),title:"Log Entries",actions:s.jsx("button",{onClick:()=>k(!b),className:l("transition-colors",b?"text-signal-critical hover:text-signal-critical/80":"text-accent-primary hover:text-accent-primary/80 animate-pulse-slow"),title:b?"Pause":"Resume",children:b?s.jsx(t,{className:"w-5 h-5"}):s.jsx(r,{className:"w-5 h-5"})})}),s.jsx("div",{className:"space-y-2 max-h-[calc(100vh-300px)] sm:max-h-[calc(100vh-250px)] overflow-y-auto p-4",children:N&&0===d.length?s.jsx(u,{count:10}):0===P.length?s.jsx("div",{className:"text-center py-12 text-text-muted",children:0===d.length?"No logs available":"No logs match selected filters"}):P.map((e,a)=>s.jsx(v,{log:e},`${e.timestamp}-${a}`))})]})]})}export{N as default};
@@ -1 +1 @@
import{j as e,p as s}from"./vendor-react-BhIHFXIk.js";import{a as t}from"./PageLayout-CXQ5iQRo.js";import{D as a}from"./DataBox-CJd3QrAG.js";import{aq as r}from"./index-Da4kX2iS.js";import{C as l}from"./Card-CbzfzjMx.js";function c({nodeName:c,repeaterVersion:m,coreVersion:i,localHash:n,publicKey:d}){return e.jsxs(t,{children:[e.jsx(l,{icon:e.jsx(s,{}),title:"Node Information",largeTitle:!0}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"min-w-0 col-span-2 sm:col-span-1",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Node Name"}),e.jsx("p",{className:"type-body text-text-primary mt-0.5 sm:mt-1 truncate",title:c,children:c})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Repeater"}),e.jsxs("p",{className:"type-data text-text-primary mt-0.5 sm:mt-1 truncate",title:`v${m}`,children:["v",m]})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Core"}),e.jsxs("p",{className:"type-data text-text-primary mt-0.5 sm:mt-1 truncate",title:`v${i}`,children:["v",i]})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Console"}),e.jsxs("p",{className:"type-data text-text-primary mt-0.5 sm:mt-1 truncate",title:`v${r}`,children:["v",r]})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Local Hash"}),e.jsx("div",{className:"mt-0.5 sm:mt-1",children:n?e.jsx(a,{copy:!0,size:"compact",children:n}):e.jsx("span",{className:"type-data-sm text-text-secondary",children:"N/A"})})]})]}),d&&e.jsxs("div",{className:"mt-3 sm:mt-4 pt-3 sm:pt-4 border-t border-border-subtle",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Public Key"}),e.jsx("div",{className:"mt-0.5 sm:mt-1",children:e.jsx(a,{copy:!0,size:"responsive",children:d})})]})]})}export{c as N};
import{j as e,p as s}from"./vendor-react-DuLqNXZc.js";import{a as t}from"./PageLayout-DcevNKfF.js";import{D as a}from"./DataBox-Bp3zpxWt.js";import{as as r}from"./index-BxGkT9Rr.js";import{C as l}from"./Card-QsoFS2aH.js";function c({nodeName:c,repeaterVersion:m,coreVersion:i,localHash:n,publicKey:d}){return e.jsxs(t,{children:[e.jsx(l,{icon:e.jsx(s,{}),title:"Node Information",largeTitle:!0}),e.jsxs("div",{className:"grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-5 gap-3 sm:gap-4",children:[e.jsxs("div",{className:"min-w-0 col-span-2 sm:col-span-1",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Node Name"}),e.jsx("p",{className:"type-body text-text-primary mt-0.5 sm:mt-1 truncate",title:c,children:c})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Repeater"}),e.jsxs("p",{className:"type-data text-text-primary mt-0.5 sm:mt-1 truncate",title:`v${m}`,children:["v",m]})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Core"}),e.jsxs("p",{className:"type-data text-text-primary mt-0.5 sm:mt-1 truncate",title:`v${i}`,children:["v",i]})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Console"}),e.jsxs("p",{className:"type-data text-text-primary mt-0.5 sm:mt-1 truncate",title:`v${r}`,children:["v",r]})]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Local Hash"}),e.jsx("div",{className:"mt-0.5 sm:mt-1",children:n?e.jsx(a,{copy:!0,size:"compact",children:n}):e.jsx("span",{className:"type-data-sm text-text-secondary",children:"N/A"})})]})]}),d&&e.jsxs("div",{className:"mt-3 sm:mt-4 pt-3 sm:pt-4 border-t border-border-subtle",children:[e.jsx("span",{className:"type-label text-text-secondary",children:"Public Key"}),e.jsx("div",{className:"mt-0.5 sm:mt-1",children:e.jsx(a,{copy:!0,size:"responsive",children:d})})]})]})}export{c as N};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{j as s}from"./vendor-react-BhIHFXIk.js";import{c as e}from"./recharts-BHeZA2Kf.js";const a=[45,72,33,58,80,42,65,28,55,75,38,62];function l({className:a,style:l}){return s.jsx("div",{className:e("animate-pulse bg-white/[0.06] rounded",a),style:l})}function c(){return s.jsx("div",{className:"p-3 rounded-lg border border-border-subtle bg-bg-subtle",children:s.jsxs("div",{className:"flex items-start gap-3",children:[s.jsx(l,{className:"w-14 h-6 rounded shrink-0"}),s.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[s.jsx(l,{className:"h-4 w-full"}),s.jsx(l,{className:"h-4 w-3/4"}),s.jsx(l,{className:"h-3 w-32 mt-1"})]})]})})}function r({count:e=8}){return s.jsx("div",{className:"space-y-2",children:Array.from({length:e}).map((e,a)=>s.jsx(c,{},a))})}function i(){return s.jsxs("div",{className:"flex flex-col gap-3 h-full","aria-hidden":"true",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(l,{className:"w-5 h-5"}),s.jsx(l,{className:"h-4 w-24"})]}),s.jsx(l,{className:"h-8 w-20"}),s.jsxs("div",{className:"flex-1 flex flex-col justify-end gap-2",children:[s.jsx(l,{className:"h-3 w-full"}),s.jsx(l,{className:"h-3 w-3/4"})]})]})}function n(){return s.jsxs("div",{className:"flex flex-col gap-3 h-full","aria-hidden":"true",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(l,{className:"w-5 h-5"}),s.jsx(l,{className:"h-4 w-24"})]}),s.jsx("div",{className:"flex-1 flex items-end gap-1",children:a.slice(0,8).map((e,a)=>s.jsx(l,{className:"flex-1",style:{height:`${e}%`}},a))})]})}function t({rows:e=5}){return s.jsxs("div",{className:"flex flex-col h-full","aria-hidden":"true",children:[s.jsx("div",{className:"pb-3 border-b border-border-subtle",children:s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(l,{className:"w-5 h-5"}),s.jsx(l,{className:"h-4 w-24"})]})}),s.jsx("div",{className:"flex-1 pt-3 flex flex-col gap-3",children:Array.from({length:e}).map((e,a)=>s.jsx(l,{className:"h-6 w-full"},a))})]})}function d({children:a,className:l}){return s.jsx("div",{className:e("section-gap",l),children:a})}function x({title:e,icon:a,controls:l,subtitle:c}){return s.jsxs("div",{className:"flex flex-col gap-2",children:[s.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between sm:gap-3",children:[s.jsxs("h1",{className:"type-title text-text-primary flex items-center gap-2 sm:gap-3 h-9 min-w-0",children:[a&&s.jsx("span",{className:"w-5 h-5 sm:w-6 sm:h-6 text-icon-page-title flex-shrink-0",children:a}),s.jsx("span",{className:"truncate",children:e})]}),l&&s.jsx("div",{className:"flex items-center gap-2 sm:gap-3 h-9 flex-shrink-0",children:l})]}),c&&s.jsx("div",{children:c})]})}const m={sm:"card-sm",md:"card-md",lg:"card-lg",hero:"card-hero",auto:"card-auto"};function h({children:a,size:l,compact:c,noPadding:r,className:d,style:x,onClick:h,isLoaded:f=!0,skeletonType:o="card"}){return s.jsxs("div",{className:e("glass-card h-full flex flex-col relative",!r&&(c?"card-padding-sm":"card-padding"),l&&m[l],d),style:x,onClick:h,children:[a,!f&&(()=>{switch(o){case"chart":return s.jsx(n,{});case"list":return s.jsx(t,{});default:return s.jsx(i,{})}})()]})}export{i as C,r as L,d as P,l as S,h as a,x as b};
import{j as s}from"./vendor-react-DuLqNXZc.js";import{c as e}from"./recharts-BcVXFyqP.js";const a=[45,72,33,58,80,42,65,28,55,75,38,62];function l({className:a,style:l}){return s.jsx("div",{className:e("animate-pulse bg-white/[0.06] rounded",a),style:l})}function c(){return s.jsx("div",{className:"p-3 rounded-lg border border-border-subtle bg-bg-subtle",children:s.jsxs("div",{className:"flex items-start gap-3",children:[s.jsx(l,{className:"w-14 h-6 rounded shrink-0"}),s.jsxs("div",{className:"flex-1 min-w-0 space-y-2",children:[s.jsx(l,{className:"h-4 w-full"}),s.jsx(l,{className:"h-4 w-3/4"}),s.jsx(l,{className:"h-3 w-32 mt-1"})]})]})})}function r({count:e=8}){return s.jsx("div",{className:"space-y-2",children:Array.from({length:e}).map((e,a)=>s.jsx(c,{},a))})}function i(){return s.jsxs("div",{className:"flex flex-col gap-3 h-full","aria-hidden":"true",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(l,{className:"w-5 h-5"}),s.jsx(l,{className:"h-4 w-24"})]}),s.jsx(l,{className:"h-8 w-20"}),s.jsxs("div",{className:"flex-1 flex flex-col justify-end gap-2",children:[s.jsx(l,{className:"h-3 w-full"}),s.jsx(l,{className:"h-3 w-3/4"})]})]})}function n(){return s.jsxs("div",{className:"flex flex-col gap-3 h-full","aria-hidden":"true",children:[s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(l,{className:"w-5 h-5"}),s.jsx(l,{className:"h-4 w-24"})]}),s.jsx("div",{className:"flex-1 flex items-end gap-1",children:a.slice(0,8).map((e,a)=>s.jsx(l,{className:"flex-1",style:{height:`${e}%`}},a))})]})}function t({rows:e=5}){return s.jsxs("div",{className:"flex flex-col h-full","aria-hidden":"true",children:[s.jsx("div",{className:"pb-3 border-b border-border-subtle",children:s.jsxs("div",{className:"flex items-center gap-2",children:[s.jsx(l,{className:"w-5 h-5"}),s.jsx(l,{className:"h-4 w-24"})]})}),s.jsx("div",{className:"flex-1 pt-3 flex flex-col gap-3",children:Array.from({length:e}).map((e,a)=>s.jsx(l,{className:"h-6 w-full"},a))})]})}function d({children:a,className:l}){return s.jsx("div",{className:e("section-gap",l),children:a})}function x({title:e,icon:a,controls:l,subtitle:c}){return s.jsxs("div",{className:"flex flex-col gap-2",children:[s.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between sm:gap-3",children:[s.jsxs("h1",{className:"type-title text-text-primary flex items-center gap-2 sm:gap-3 h-9 min-w-0",children:[a&&s.jsx("span",{className:"w-5 h-5 sm:w-6 sm:h-6 text-icon-page-title flex-shrink-0",children:a}),s.jsx("span",{className:"truncate",children:e})]}),l&&s.jsx("div",{className:"flex items-center gap-2 sm:gap-3 h-9 flex-shrink-0",children:l})]}),c&&s.jsx("div",{children:c})]})}const m={sm:"card-sm",md:"card-md",lg:"card-lg",hero:"card-hero",auto:"card-auto"};function h({children:a,size:l,compact:c,noPadding:r,className:d,style:x,onClick:h,isLoaded:f=!0,skeletonType:o="card"}){return s.jsxs("div",{className:e("glass-card h-full flex flex-col relative",!r&&(c?"card-padding-sm":"card-padding"),l&&m[l],d),style:x,onClick:h,children:[a,!f&&(()=>{switch(o){case"chart":return s.jsx(n,{});case"list":return s.jsx(t,{});default:return s.jsx(i,{})}})()]})}export{i as C,r as L,d as P,l as S,h as a,x as b};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{j as n,aw as e,ax as r,ay as t,az as a,aA as s,r as o}from"./vendor-react-BhIHFXIk.js";import{c as i}from"./recharts-BHeZA2Kf.js";const l={5:-2.5,6:-5,7:-7.5,8:-10,9:-12.5,10:-15,11:-17.5,12:-20},c={62500:{5:-123,6:-125,7:-127,8:-130,9:-133,10:-136,11:-138,12:-140},125e3:{5:-120,6:-122,7:-124,8:-127,9:-130,10:-133,11:-135,12:-137},25e4:{5:-117,6:-119,7:-121,8:-124,9:-127,10:-130,11:-132,12:-134},5e5:{5:-114,6:-116,7:-118,8:-121,9:-124,10:-127,11:-129,12:-131}};function u(n,e,r){if(null==n||!Number.isFinite(n))return null;if(null==e||!Number.isFinite(e))return null;const{sf:t,bwHz:a}=r,s=function(n){const e=Math.max(5,Math.min(12,Math.round(n)));return l[e]??l[7]}(t),o=function(n,e){let r=62500;r=n>=375e3?5e5:n>=187500?25e4:n>=93750?125e3:62500;const t=c[r];return t[Math.max(5,Math.min(12,Math.round(e)))]??t[7]}(a,t),i=n-s,u=e-o;return{snrMargin:i,rssiMargin:u,worstMargin:Math.min(i,u)}}const d={EXCELLENT:6,GOOD:3,FAIR:0},x={EXCELLENT:10,GOOD:6,FAIR:2},f=["excellent","good","fair","poor","critical"];function g(n,e){return n>=e.EXCELLENT?"excellent":n>=e.GOOD?"good":n>=e.FAIR?"fair":n>=e.FAIR-3?"poor":"critical"}function m(n,e){if(0===e)return n;const r=f.indexOf(n),t=Math.min(r+e,f.length-1);return f[t]}function p(n,e,r,t){const a=(s=g(n.snrMargin,d),o=g(n.rssiMargin,x),f.indexOf(s)>=f.indexOf(o)?s:o);var s,o;const i=m(a,e);return{baseGrade:a,finalGrade:i,snrMargin:n.snrMargin,rssiMargin:n.rssiMargin,worstMargin:n.worstMargin,nfPenalty:e,wasDowngraded:e>0&&i!==a,confidence:r,isMarginBased:t}}function h(n,e,r,t=0){return r&&null!=n?function(n,e,r,t=0){const a=u(n,e,r);return a?p(a,t,"high",!0):null}(n,e,r,t):null!=n&&null!=e?function(n,e,r=0){const t=function(n,e){return u(n,e,{sf:7,bwHz:62500})}(n,e);return t?p(t,r,"low",!0):null}(n,e,t):function(n,e=0){if(null==n||!Number.isFinite(n))return null;const r=function(n){return n>=-90?"excellent":n>=-100?"good":n>=-110?"fair":n>=-120?"poor":"critical"}(n),t=m(r,e);return{baseGrade:r,finalGrade:t,snrMargin:null,rssiMargin:null,worstMargin:null,nfPenalty:e,wasDowngraded:e>0&&t!==r,confidence:"low",isMarginBased:!1}}(e,t)}const w={excellent:"color(display-p3 0.00 1.00 0.00)",good:"color(display-p3 0.55 0.90 0.15)",fair:"color(display-p3 1.00 0.85 0.00)",weak:"color(display-p3 1.00 0.55 0.15)",poor:"color(display-p3 1.00 0.20 0.20)"},M={excellent:"#4ADE80",good:"#A3E635",fair:"#FACC15",weak:"#FB923C",poor:"#EF4444"};function N(n){return n>=-90?"excellent":n>=-100?"good":n>=-110?"fair":n>=-120?"weak":"poor"}function j(n,e){return e?{backgroundColor:M[n],"--p3-color":w[n]}:{backgroundColor:"rgba(255, 255, 255, 0.1)"}}function y(n){return n?"signal-bar-active":""}function b({rssi:o,className:l="w-4 h-4"}){const c=N(o),u=function(n){switch(n){case"excellent":return"text-signal-excellent";case"good":return"text-signal-good";case"fair":return"text-signal-fair";case"weak":return"text-signal-poor";case"poor":return"text-signal-critical";default:return"text-text-muted"}}(c),d=i(u,l);switch(c){case"excellent":return n.jsx(s,{className:d});case"good":return n.jsx(a,{className:d});case"fair":return n.jsx(t,{className:d});case"weak":return n.jsx(r,{className:d});default:return n.jsx(e,{className:d})}}const v=o.memo(function({rssi:e,snr:r,compact:t=!1,showValues:a=!0,radioConfig:s,nfPenalty:o=0}){const l=void 0!==r?function(n,e,r,t=0){const a=h(e,n,r,t);return a?function(n){switch(n){case"excellent":return"excellent";case"good":return"good";case"fair":return"fair";case"poor":return"weak";case"critical":return"poor"}}(a.finalGrade):N(n)}(e,r,s,o):N(e),c={excellent:4,good:3,fair:2,weak:1,poor:0}[l];return t?n.jsxs("div",{className:"flex items-center gap-1.5",children:[a&&n.jsx("span",{className:"text-[10px] font-mono text-text-secondary tabular-nums w-[32px] text-left",children:e}),n.jsx("div",{className:"flex items-end gap-[2px] h-3 w-[14px]",children:Array.from({length:4}).map((e,r)=>n.jsx("div",{className:i("w-[3px] rounded-[1px] transition-colors",y(r<c)),style:{height:(r+1)/4*100+"%",...j(l,r<c)}},r))})]}):n.jsxs("div",{className:"flex items-center gap-2",children:[a&&n.jsxs("div",{className:"flex flex-col items-start w-[52px]",children:[n.jsxs("span",{className:"text-xs font-mono text-text-secondary leading-tight tabular-nums",children:[e," dBm"]}),void 0!==r&&n.jsxs("span",{className:"text-[10px] font-mono text-text-muted leading-tight tabular-nums",children:[r.toFixed(1)," dB"]})]}),n.jsx("div",{className:"flex items-end gap-[2px] h-3.5 w-[14px]",children:Array.from({length:4}).map((e,r)=>n.jsx("div",{className:i("w-[3px] rounded-[1px] transition-colors",y(r<c)),style:{height:(r+1)/4*100+"%",...j(l,r<c)}},r))})]})});function E(n){const e=N(n);return e.charAt(0).toUpperCase()+e.slice(1)}export{v as S,b as a,E as g,h as s};
import{j as n,aw as e,ax as r,ay as t,az as a,aA as s,r as o}from"./vendor-react-DuLqNXZc.js";import{c as i}from"./recharts-BcVXFyqP.js";const l={5:-2.5,6:-5,7:-7.5,8:-10,9:-12.5,10:-15,11:-17.5,12:-20},c={62500:{5:-123,6:-125,7:-127,8:-130,9:-133,10:-136,11:-138,12:-140},125e3:{5:-120,6:-122,7:-124,8:-127,9:-130,10:-133,11:-135,12:-137},25e4:{5:-117,6:-119,7:-121,8:-124,9:-127,10:-130,11:-132,12:-134},5e5:{5:-114,6:-116,7:-118,8:-121,9:-124,10:-127,11:-129,12:-131}};function u(n,e,r){if(null==n||!Number.isFinite(n))return null;if(null==e||!Number.isFinite(e))return null;const{sf:t,bwHz:a}=r,s=function(n){const e=Math.max(5,Math.min(12,Math.round(n)));return l[e]??l[7]}(t),o=function(n,e){let r=62500;r=n>=375e3?5e5:n>=187500?25e4:n>=93750?125e3:62500;const t=c[r];return t[Math.max(5,Math.min(12,Math.round(e)))]??t[7]}(a,t),i=n-s,u=e-o;return{snrMargin:i,rssiMargin:u,worstMargin:Math.min(i,u)}}const d={EXCELLENT:6,GOOD:3,FAIR:0},x={EXCELLENT:10,GOOD:6,FAIR:2},f=["excellent","good","fair","poor","critical"];function g(n,e){return n>=e.EXCELLENT?"excellent":n>=e.GOOD?"good":n>=e.FAIR?"fair":n>=e.FAIR-3?"poor":"critical"}function m(n,e){if(0===e)return n;const r=f.indexOf(n),t=Math.min(r+e,f.length-1);return f[t]}function p(n,e,r,t){const a=(s=g(n.snrMargin,d),o=g(n.rssiMargin,x),f.indexOf(s)>=f.indexOf(o)?s:o);var s,o;const i=m(a,e);return{baseGrade:a,finalGrade:i,snrMargin:n.snrMargin,rssiMargin:n.rssiMargin,worstMargin:n.worstMargin,nfPenalty:e,wasDowngraded:e>0&&i!==a,confidence:r,isMarginBased:t}}function h(n,e,r,t=0){return r&&null!=n?function(n,e,r,t=0){const a=u(n,e,r);return a?p(a,t,"high",!0):null}(n,e,r,t):null!=n&&null!=e?function(n,e,r=0){const t=function(n,e){return u(n,e,{sf:7,bwHz:62500})}(n,e);return t?p(t,r,"low",!0):null}(n,e,t):function(n,e=0){if(null==n||!Number.isFinite(n))return null;const r=function(n){return n>=-90?"excellent":n>=-100?"good":n>=-110?"fair":n>=-120?"poor":"critical"}(n),t=m(r,e);return{baseGrade:r,finalGrade:t,snrMargin:null,rssiMargin:null,worstMargin:null,nfPenalty:e,wasDowngraded:e>0&&t!==r,confidence:"low",isMarginBased:!1}}(e,t)}const w={excellent:"color(display-p3 0.00 1.00 0.00)",good:"color(display-p3 0.55 0.90 0.15)",fair:"color(display-p3 1.00 0.85 0.00)",weak:"color(display-p3 1.00 0.55 0.15)",poor:"color(display-p3 1.00 0.20 0.20)"},M={excellent:"#4ADE80",good:"#A3E635",fair:"#FACC15",weak:"#FB923C",poor:"#EF4444"};function N(n){return n>=-90?"excellent":n>=-100?"good":n>=-110?"fair":n>=-120?"weak":"poor"}function j(n,e){return e?{backgroundColor:M[n],"--p3-color":w[n]}:{backgroundColor:"rgba(255, 255, 255, 0.1)"}}function y(n){return n?"signal-bar-active":""}function b({rssi:o,className:l="w-4 h-4"}){const c=N(o),u=function(n){switch(n){case"excellent":return"text-signal-excellent";case"good":return"text-signal-good";case"fair":return"text-signal-fair";case"weak":return"text-signal-poor";case"poor":return"text-signal-critical";default:return"text-text-muted"}}(c),d=i(u,l);switch(c){case"excellent":return n.jsx(s,{className:d});case"good":return n.jsx(a,{className:d});case"fair":return n.jsx(t,{className:d});case"weak":return n.jsx(r,{className:d});default:return n.jsx(e,{className:d})}}const v=o.memo(function({rssi:e,snr:r,compact:t=!1,showValues:a=!0,radioConfig:s,nfPenalty:o=0}){const l=void 0!==r?function(n,e,r,t=0){const a=h(e,n,r,t);return a?function(n){switch(n){case"excellent":return"excellent";case"good":return"good";case"fair":return"fair";case"poor":return"weak";case"critical":return"poor"}}(a.finalGrade):N(n)}(e,r,s,o):N(e),c={excellent:4,good:3,fair:2,weak:1,poor:0}[l];return t?n.jsxs("div",{className:"flex items-center gap-1.5",children:[a&&n.jsx("span",{className:"text-[10px] font-mono text-text-secondary tabular-nums w-[32px] text-left",children:e}),n.jsx("div",{className:"flex items-end gap-[2px] h-3 w-[14px]",children:Array.from({length:4}).map((e,r)=>n.jsx("div",{className:i("w-[3px] rounded-[1px] transition-colors",y(r<c)),style:{height:(r+1)/4*100+"%",...j(l,r<c)}},r))})]}):n.jsxs("div",{className:"flex items-center gap-2",children:[a&&n.jsxs("div",{className:"flex flex-col items-start w-[52px]",children:[n.jsxs("span",{className:"text-xs font-mono text-text-secondary leading-tight tabular-nums",children:[e," dBm"]}),void 0!==r&&n.jsxs("span",{className:"text-[10px] font-mono text-text-muted leading-tight tabular-nums",children:[r.toFixed(1)," dB"]})]}),n.jsx("div",{className:"flex items-end gap-[2px] h-3.5 w-[14px]",children:Array.from({length:4}).map((e,r)=>n.jsx("div",{className:i("w-[3px] rounded-[1px] transition-colors",y(r<c)),style:{height:(r+1)/4*100+"%",...j(l,r<c)}},r))})]})});function E(n){const e=N(n);return e.charAt(0).toUpperCase()+e.slice(1)}export{v as S,b as a,E as g,h as s};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{r as e,j as o}from"./vendor-react-BhIHFXIk.js";const t=e.memo(function({ranges:e,selectedIndex:t,onSelect:a,isPending:l}){return o.jsx("div",{className:"toggle-group flex-shrink-0 overflow-x-auto "+(l?"opacity-70":""),children:e.map((e,l)=>o.jsx("button",{onClick:()=>a(l),className:"toggle-group-item "+(t===l?"active":""),children:e.label},e.label))})});export{t as T};
import{r as e,j as o}from"./vendor-react-DuLqNXZc.js";const t=e.memo(function({ranges:e,selectedIndex:t,onSelect:a,isPending:l}){return o.jsx("div",{className:"toggle-group flex-shrink-0 overflow-x-auto "+(l?"opacity-70":""),children:e.map((e,l)=>o.jsx("button",{onClick:()=>a(l),className:"toggle-group-item "+(t===l?"active":""),children:e.label},e.label))})});export{t as T};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{d as t,at as e}from"./index-Da4kX2iS.js";function o(t){if(Array.isArray(t))return t;if("string"==typeof t&&t.startsWith("["))try{const e=JSON.parse(t);return Array.isArray(e)?e:[]}catch{return[]}return[]}function n(n,r,s){const a=new Map;for(const e of r){const o=t(e);a.has(o)||a.set(o,e)}const c=new Map,i=new Map;for(const t of n){const n=t.route??t.route_type;if(!e(n))continue;const r=o(t.original_path);if(0===r.length)continue;const f=r.map(t=>t.toUpperCase());if(!t.transmitted&&f.length>=2){const t=f[f.length-2];if(t){const e=a.get(t);e&&i.set(e,(i.get(e)??0)+1)}}if(f.includes(s))for(const t of f){if(t===s)continue;const e=a.get(t);e&&c.set(e,(c.get(e)??0)+1)}}let f=0,u=0;for(const t of r)f=Math.max(f,c.get(t)??0),u=Math.max(u,i.get(t)??0);const h=new Map;let d=0,g=0,l=0;for(const t of r){const e=c.get(t)??0,o=i.get(t)??0,n=f>0?Math.round(e/f*100):0,r=u>0?Math.round(o/u*100):0,s=n+r;h.set(t,{hash:t,listenerCount:e,loudCount:o,listenerScore:n,loudScore:r,blendedScore:s}),d=Math.max(d,n),g=Math.max(g,r),l=Math.max(l,s)}return{scores:h,maxListenerScore:d,maxLoudScore:g,maxBlendedScore:l}}const r={YELLOW:"#FFB224",GREEN:"#46A758",RED:"#E5484D",GRAY:"#505050"};export{r as L,n as c};
import{d as t,av as e}from"./index-BxGkT9Rr.js";function o(t){if(Array.isArray(t))return t;if("string"==typeof t&&t.startsWith("["))try{const e=JSON.parse(t);return Array.isArray(e)?e:[]}catch{return[]}return[]}function n(n,r,s){const a=new Map;for(const e of r){const o=t(e);a.has(o)||a.set(o,e)}const c=new Map,i=new Map;for(const t of n){const n=t.route??t.route_type;if(!e(n))continue;const r=o(t.original_path);if(0===r.length)continue;const f=r.map(t=>t.toUpperCase());if(!t.transmitted&&f.length>=2){const t=f[f.length-2];if(t){const e=a.get(t);e&&i.set(e,(i.get(e)??0)+1)}}if(f.includes(s))for(const t of f){if(t===s)continue;const e=a.get(t);e&&c.set(e,(c.get(e)??0)+1)}}let f=0,u=0;for(const t of r)f=Math.max(f,c.get(t)??0),u=Math.max(u,i.get(t)??0);const h=new Map;let d=0,g=0,l=0;for(const t of r){const e=c.get(t)??0,o=i.get(t)??0,n=f>0?Math.round(e/f*100):0,r=u>0?Math.round(o/u*100):0,s=n+r;h.set(t,{hash:t,listenerCount:e,loudCount:o,listenerScore:n,loudScore:r,blendedScore:s}),d=Math.max(d,n),g=Math.max(g,r),l=Math.max(l,s)}return{scores:h,maxListenerScore:d,maxLoudScore:g,maxBlendedScore:l}}const r={YELLOW:"#FFB224",GREEN:"#46A758",RED:"#E5484D",GRAY:"#505050"};export{r as L,n as c};
@@ -1 +1 @@
import{al as t}from"./index-Da4kX2iS.js";async function e(e,r=10){return t("/api/ping_neighbor",{method:"POST",body:JSON.stringify({target_id:e,timeout:r})})}const r=["Chat Node","Repeater","Room Server","Hybrid Node","Unknown"];async function s(s,o=10){if(o<1||o>60)return{success:!1,error:"Timeout must be 1-60 seconds"};let n;const a=s.match(/^(0x)?([0-9a-fA-F]{1,2})$/);if(a)n=`0x${a[2].padStart(2,"0")}`;else{const e=await async function(e){const s=e.toLowerCase();for(const o of r)try{const e=await t(`/api/adverts_by_contact_type?contact_type=${encodeURIComponent(o)}&hours=168`),r=e.success&&e.data?e.data:e,n=(Array.isArray(r)?r:[]).find(t=>t.node_name&&t.node_name.toLowerCase()===s);if(n&&n.pubkey)return`0x${n.pubkey.substring(0,2)}`}catch{continue}return null}(s);if(!e)return{success:!1,error:`Node '${s}' not found`};n=e}const c=await e(n,o);if(!c.success||!c.data)return{success:!1,error:c.error||"Ping failed"};const i=(u=c.data).rtt_ms>500||u.rssi<-120?"Poor":u.rtt_ms>250||u.rssi<-100?"Fair":u.rtt_ms>100||u.rssi<-80?"Good":"Excellent";var u;return{success:!0,data:{...c.data,quality:i}}}export{s as a,e as p};
import{am as t}from"./index-BxGkT9Rr.js";async function e(e,r=10){return t("/api/ping_neighbor",{method:"POST",body:JSON.stringify({target_id:e,timeout:r})})}const r=["Chat Node","Repeater","Room Server","Hybrid Node","Unknown"];async function s(s,o=10){if(o<1||o>60)return{success:!1,error:"Timeout must be 1-60 seconds"};let n;const a=s.match(/^(0x)?([0-9a-fA-F]{1,2})$/);if(a)n=`0x${a[2].padStart(2,"0")}`;else{const e=await async function(e){const s=e.toLowerCase();for(const o of r)try{const e=await t(`/api/adverts_by_contact_type?contact_type=${encodeURIComponent(o)}&hours=168`),r=e.success&&e.data?e.data:e,n=(Array.isArray(r)?r:[]).find(t=>t.node_name&&t.node_name.toLowerCase()===s);if(n&&n.pubkey)return`0x${n.pubkey.substring(0,2)}`}catch{continue}return null}(s);if(!e)return{success:!1,error:`Node '${s}' not found`};n=e}const c=await e(n,o);if(!c.success||!c.data)return{success:!1,error:c.error||"Ping failed"};const i=(u=c.data).rtt_ms>500||u.rssi<-120?"Poor":u.rtt_ms>250||u.rssi<-100?"Fair":u.rtt_ms>100||u.rssi<-80?"Good":"Excellent";var u;return{success:!0,data:{...c.data,quality:i}}}export{s as a,e as p};
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
import{r}from"./vendor-react-BhIHFXIk.js";function e(e,t,n=!0,c=!1){const u=r.useRef(e);r.useEffect(()=>{u.current=e},[e]),r.useEffect(()=>{if(!n)return;c||u.current();const r=setInterval(()=>{u.current()},t);return()=>clearInterval(r)},[t,n,c])}export{e as u};
import{r}from"./vendor-react-DuLqNXZc.js";function e(e,t,n=!0,c=!1){const u=r.useRef(e);r.useEffect(()=>{u.current=e},[e]),r.useEffect(()=>{if(!n)return;c||u.current();const r=setInterval(()=>{u.current()},t);return()=>clearInterval(r)},[t,n,c])}export{e as u};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+3 -3
View File
@@ -39,10 +39,10 @@
--font-data: 'JetBrains Mono', 'SF Mono', Monaco, monospace;
}
</style>
<script type="module" crossorigin src="/assets/index-Da4kX2iS.js"></script>
<script type="module" crossorigin src="/assets/index-BxGkT9Rr.js"></script>
<link rel="modulepreload" crossorigin href="/assets/vendor-core-WoOfkQwm.js">
<link rel="modulepreload" crossorigin href="/assets/vendor-react-BhIHFXIk.js">
<link rel="stylesheet" crossorigin href="/assets/index-KCLyRmfP.css">
<link rel="modulepreload" crossorigin href="/assets/vendor-react-DuLqNXZc.js">
<link rel="stylesheet" crossorigin href="/assets/index-4ay-Ogw2.css">
</head>
<body>
<div id="root"></div>
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "pymc_console",
"version": "0.9.177",
"version": "0.9.178",
"description": "Vite + React Dashboard for pyMC_Repeater",
"private": true,
"type": "module",