Files
MIKROTIK-RMM/frontend/public/logo-dark.svg
T
2GT-RichandClaude Opus 4.8 d79eb13119 feat(ui): theme-aware logo, dashboard bar graph, server-side client sorting (v0.14.1-beta)
UI/UX refinements on top of v0.14.0-beta, all validated on the test server:

- Logo: new theme-aware compass iconmark (light/dark SVGs swapped via the
  dark class), sized to 45px; favicon updated to match. Wordmark casing
  corrected to "MikroTik Manager" (font size unchanged).
- Navigation icons enlarged 15 -> 17px.
- Dashboard: "Connected clients" line chart converted to a bar chart with a
  category axis + light downsampling so bars stay readably thick across ranges.
- Clients: sorting is now server-side across the whole dataset (was sorting
  only the current page, so Type/others appeared to do nothing on a uniform
  page); table uses a fixed column layout + keepPreviousData so columns no
  longer jump or blank out when sorting/paging. Backend clients route gains
  whitelisted sort/dir params (safe numeric IP sort, deterministic tiebreaker).
- Connections tab: surfaces the live /ip/firewall/connection/tracking state
  (on/auto/off pill) and clearer empty-state copy explaining auto-mode.

Lint/typecheck/build/jest green in both workspaces; npm audit --audit-level=high
clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-18 13:37:11 -07:00

57 lines
4.2 KiB
XML

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="1024" height="1024" viewBox="0 0 1024 1024" fill="none" role="img" aria-labelledby="title desc" version="1.1" id="svg24" xmlns="http://www.w3.org/2000/svg">
<title id="title">MikroTik Manager Config Compass Icon - Dark Mode</title>
<desc id="desc">A dark-mode SVG app icon showing a network compass with a central manager node and four directional service nodes.</desc>
<defs id="defs13">
<linearGradient id="bgDark" x1="96" y1="80" x2="928" y2="944" gradientUnits="userSpaceOnUse">
<stop stop-color="#111D2E" id="stop1" />
<stop offset="1" stop-color="#06111F" id="stop2" />
</linearGradient>
<linearGradient id="ringDark" x1="236" y1="244" x2="788" y2="780" gradientUnits="userSpaceOnUse">
<stop stop-color="#7C6DFF" id="stop3" />
<stop offset="0.48" stop-color="#2EA8FF" id="stop4" />
<stop offset="1" stop-color="#23E0C1" id="stop5" />
</linearGradient>
<linearGradient id="northDark" x1="512" y1="136" x2="512" y2="318" gradientUnits="userSpaceOnUse">
<stop stop-color="#35F4E4" id="stop6" />
<stop offset="1" stop-color="#1CA7FF" id="stop7" />
</linearGradient>
<linearGradient id="eastDark" x1="702" y1="512" x2="900" y2="512" gradientUnits="userSpaceOnUse">
<stop stop-color="#1CA7FF" id="stop8" />
<stop offset="1" stop-color="#35F4E4" id="stop9" />
</linearGradient>
<linearGradient id="southDark" x1="512" y1="708" x2="512" y2="900" gradientUnits="userSpaceOnUse">
<stop stop-color="#A7F542" id="stop10" />
<stop offset="1" stop-color="#43D868" id="stop11" />
</linearGradient>
<linearGradient id="westDark" x1="320" y1="512" x2="126" y2="512" gradientUnits="userSpaceOnUse">
<stop stop-color="#7C6DFF" id="stop12" />
<stop offset="1" stop-color="#A36BFF" id="stop13" />
</linearGradient>
<filter id="softGlowDark" x="-0.052830189" y="-0.052830189" width="1.1056604" height="1.1056604" color-interpolation-filters="sRGB">
<feGaussianBlur stdDeviation="14" result="blur" id="feGaussianBlur13" />
<feColorMatrix in="blur" type="matrix" values="0 0 0 0 0.10 0 0 0 0 0.60 0 0 0 0 1.00 0 0 0 0.35 0" id="feColorMatrix13" />
<feBlend in="SourceGraphic" id="feBlend13" />
</filter>
</defs>
<rect x="64" y="64" width="896" height="896" rx="208" fill="url(#bgDark)" id="rect13" />
<rect x="76" y="76" width="872" height="872" rx="196" stroke="#223855" stroke-width="20" opacity="0.85" id="rect14" />
<g filter="url(#softGlowDark)" id="g24">
<circle cx="512" cy="512" r="262" stroke="url(#ringDark)" stroke-width="32" stroke-linecap="round" stroke-dasharray="360 70 360 70" id="circle14" />
<circle cx="512" cy="512" r="116" stroke="#F4F7FB" stroke-width="28" id="circle15" />
<path d="M512 194 L552 306 H472 L512 194Z" fill="url(#northDark)" id="path15" />
<path d="M830 512 L718 552 V472 L830 512Z" fill="url(#eastDark)" id="path16" />
<path d="M512 830 L472 718 H552 L512 830Z" fill="url(#southDark)" id="path17" />
<path d="M194 512 L306 472 V552 L194 512Z" fill="url(#westDark)" id="path18" />
<line x1="512" y1="300" x2="512" y2="396" stroke="#F4F7FB" stroke-width="28" stroke-linecap="round" id="line18" />
<line x1="628" y1="512" x2="724" y2="512" stroke="#F4F7FB" stroke-width="28" stroke-linecap="round" id="line19" />
<line x1="512" y1="628" x2="512" y2="724" stroke="#F4F7FB" stroke-width="28" stroke-linecap="round" id="line20" />
<line x1="300" y1="512" x2="396" y2="512" stroke="#F4F7FB" stroke-width="28" stroke-linecap="round" id="line21" />
<circle cx="512" cy="294" r="46" fill="#07111F" stroke="url(#northDark)" stroke-width="28" id="circle21" />
<circle cx="730" cy="512" r="46" fill="#07111F" stroke="url(#eastDark)" stroke-width="28" id="circle22" />
<circle cx="512" cy="730" r="46" fill="#07111F" stroke="url(#southDark)" stroke-width="28" id="circle23" />
<circle cx="294" cy="512" r="46" fill="#07111F" stroke="url(#westDark)" stroke-width="28" id="circle24" />
<path d="m 454.87455,565.67016 v -108.409 l 57.12546,77.09084 57.12545,-77.09084 v 108.409" stroke="#f4f7fb" stroke-width="34.5308" stroke-linecap="round" stroke-linejoin="round" id="path24" />
</g>
</svg>