report-leptos 0.1.21

Leptos SSR renderer for generating static HTML reports - beautiful, interactive, type-safe
Documentation
<!DOCTYPE html>
<html><head><meta charset="UTF-8"><meta http-equiv="Content-Security-Policy" content="default-src 'self'; img-src 'self' data: blob:; style-src 'self' 'unsafe-inline'; script-src 'self' 'unsafe-inline'; connect-src 'none'; font-src 'self' data:;"><title>loctree import/export report</title><style>
body{font-family:system-ui,-apple-system,Segoe UI,Helvetica,Arial,sans-serif;margin:24px;line-height:1.5;padding-bottom:140px;}
h1,h2,h3{margin-bottom:0.2em;margin-top:0;}
table{border-collapse:collapse;width:100%;margin:0.5em 0;}
th,td{border:1px solid #ddd;padding:6px 8px;font-size:14px;}
th{background:#f5f5f5;text-align:left;}
code{background:#f6f8fa;padding:2px 4px;border-radius:4px;}
.muted{color:#666;}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:12px;flex-wrap:wrap;}
.pill{background:#eef2ff;color:#2b2f3a;padding:4px 8px;border-radius:12px;font-size:12px;}
.tab-bar{display:flex;gap:8px;margin:12px 0 6px 0;flex-wrap:wrap;}
.tab-bar button{border:1px solid #cfd4de;background:#f7f9fc;border-radius:10px;padding:6px 10px;cursor:pointer;font-weight:600;}
.tab-bar button.active{background:#4f81e1;color:#fff;border-color:#4f81e1;box-shadow:0 4px 16px rgba(0,0,0,.12);}
.tab-content{display:none;padding:8px 0;}
.tab-content.active{display:block;}
.graph{height:520px;border:1px solid #ddd;border-radius:8px;margin:12px 0;}
.command-table td{vertical-align:top;}
.command-list{margin:0;padding-left:1.1rem;columns:2;column-gap:1.4rem;list-style:disc;}
.command-list li{break-inside:avoid;word-break:break-word;margin-bottom:4px;}
.graph-toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 4px;}
.graph-toolbar label,.graph-legend{font-size:13px;color:#444;display:flex;align-items:center;gap:8px;}
.graph-legend{gap:12px;}
.legend-dot{width:12px;height:12px;border-radius:50%;display:inline-block;}
.graph-hint{font-size:12px;color:#555;margin:2px 0 6px;}
.graph-empty{font-size:13px;color:#777;text-align:center;padding:24px;}
.component-panel{border:1px solid #d5dce6;border-radius:10px;padding:8px 10px;margin:10px 0;background:#f8fafc;}
.component-panel-header{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
.component-panel table{margin:6px 0 0 0;}
.component-panel .muted{font-size:12px;}
.component-chip{display:inline-block;padding:3px 6px;border-radius:6px;background:#eef2ff;color:#2b2f3a;font-size:12px;}
.component-panel .panel-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.component-toolbar{margin-bottom:6px;}
.component-toolbar select,.component-toolbar input[type="range"],.component-toolbar input[type="number"]{font-size:12px;}
.graph-controls button{font-size:12px;padding:4px 8px;border:1px solid #ccc;background:#f8f8f8;border-radius:6px;cursor:pointer;}
.graph-controls button:hover{background:#eee;}
.command-table th,.command-table td{vertical-align:top;}
.command-table code{background:transparent;color:inherit;font-weight:600;}
.command-pill{display:inline-block;padding:3px 6px;border-radius:6px;background:#eef2ff;color:#2b2f3a;font-size:12px;margin:2px 4px 2px 0;}
.dark .command-pill{background:#1f2635;color:#e9ecf5;}
.command-col{width:50%;}
.module-header{font-weight:700;margin-top:4px;}
.module-group{margin-bottom:10px;}
.graph-anchor{margin-top:14px;font-size:13px;color:#444;}
.graph-anchor .muted{display:block;margin-top:4px;}
.report-section .graph,.report-section .graph-toolbar,.report-section .component-panel,.report-section .graph-hint{display:none;}
.graph-drawer{position:fixed;left:16px;right:16px;bottom:12px;z-index:1100;background:#f5f7fb;border:1px solid #cfd4de;border-radius:12px;box-shadow:0 8px 32px rgba(0,0,0,.25);padding:8px 10px;}
.graph-drawer{max-height:82vh;overflow:auto;}
.graph-drawer.collapsed{opacity:0.9;}
.graph-drawer-header{display:flex;align-items:center;gap:10px;cursor:pointer;font-weight:600;}
.graph-drawer-header button{font-size:12px;padding:4px 8px;border:1px solid #ccc;background:#fff;border-radius:6px;cursor:pointer;}
.graph-drawer-body{margin-top:6px;max-height:72vh;overflow:auto;padding-right:6px;}
.graph-drawer .graph{margin:0;border-color:#cfd4de;}

/* Dark mode */
.dark body{background:#0f1115;color:#d7dde5;}
.dark table th{background:#1c2029;color:#d7dde5;}
.dark table td{background:#0f1115;color:#d7dde5;border-color:#2a2f3a;}
.dark code{background:#1c2029;color:#f0f4ff;}
.dark .graph{border-color:#2a2f3a;}
.dark .graph-drawer{background:#0b0d11;border-color:#2a2f3a;box-shadow:0 8px 32px rgba(0,0,0,.45);}
.dark .graph-drawer-header button{background:#111522;color:#e9ecf5;border-color:#2a2f3a;}
.dark .component-panel{background:#0f131c;border-color:#2a2f3a;}
.dark .component-chip{background:#1f2635;color:#e9ecf5;}
.dark .pill{background:#1f2635;color:#e9ecf5;}
.dark .tab-bar button{background:#0f131c;color:#e9ecf5;border-color:#2a2f3a;}
.dark .tab-bar button.active{background:#4f81e1;color:#fff;border-color:#4f81e1;}
</style></head><body><h1>loctree import/export analysis</h1><section class="report-section"><div class="section-head"><div><h2>my-project/src</h2><p class="muted">Files analyzed: <!>42</p></div><span class="pill">Graph is docked in the drawer below</span></div><div data-tab-scope="my_project_src" class="tab-bar"><button data-tab="my_project_src-overview" class="active">Overview</button><button data-tab="my_project_src-dups">Duplicates</button><button data-tab="my_project_src-dynamic">Dynamic imports</button><button data-tab="my_project_src-commands">Tauri coverage</button><button data-tab="my_project_src-graph">Graph</button></div><div data-tab-panel="my_project_src-overview" class="tab-content active"><!><!--<() />--></div><div data-tab-panel="my_project_src-dups" class="tab-content"><h3>Top duplicate exports</h3><p class="muted">None</p><h3>Re-export cascades</h3><p class="muted">None</p></div><div data-tab-panel="my_project_src-dynamic" class="tab-content"><h3>Dynamic imports</h3><p class="muted">None</p></div><div data-tab-panel="my_project_src-commands" class="tab-content"><h3>Tauri command coverage</h3><p class="muted">No Tauri commands detected in this root.</p></div><div data-tab-panel="my_project_src-graph" class="tab-content"><div class="graph-anchor"><strong>Import graph</strong><span class="muted">Graph lives in the bottom drawer. Use fit/reset/filter controls there.</span></div><!><!></div></section><!><!></body></html>