1
0
Fork 0
Code Issues Pull requests Projects Releases 2 Packages Wiki Activity Actions Pages

Add multi-language logic exploration

This commit is contained in:
Andraxion 2026-07-25 22:29:15 -04:00
parent 9b4258c852
commit 9161889492
18 changed files with 1639 additions and 76 deletions

View file

@ -39,10 +39,18 @@ header h1 { margin: 0; font-size: 17px; }
.view-switch[data-mode="flow"]::before { transform: translateX(58px); }
.view-switch[data-mode="web"]::before { transform: translateX(116px); }
.view-switch[data-mode="logic"]::before { transform: translateX(174px); }
.filter-presets { display: flex; flex-wrap: wrap; gap: 5px; }
.filter-presets button {
border: 1px solid var(--line); border-radius: 999px; padding: 4px 8px;
background: #0b1724; color: var(--muted); font-size: 10px; font-weight: 700;
}
.view-switch button {
min-height: 30px; border: 0; border-radius: 6px; padding: 4px 8px;
background: transparent; color: var(--muted); font-size: 12px; font-weight: 700;
}
.filter-presets button:hover, .filter-presets button:focus-visible {
border-color: var(--accent); color: var(--text); outline: none;
}
.view-switch button[aria-pressed="true"] { color: var(--text); }
.view-switch button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.stats { display: flex; flex: 0 0 auto; gap: 14px; color: var(--muted); }
@ -71,6 +79,9 @@ aside { min-height: 0; overflow: hidden; padding: 16px; background: var(--panel)
.panel-resizer.resizing::after { background: var(--accent); }
.panel-resizer:focus-visible { outline: 1px solid var(--accent); outline-offset: -1px; }
form { display: grid; flex: 0 0 auto; gap: 8px; }
form > label, .filter-grid label {
display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 700;
}
input, select {
width: 100%; border: 1px solid var(--line); border-radius: 8px;
padding: 9px 10px; background: var(--panel-2); color: var(--text);
@ -79,6 +90,9 @@ input:focus-visible, select:focus-visible {
border-color: var(--accent); outline: 2px solid var(--accent); outline-offset: 1px;
}
.search-row { display: grid; grid-template-columns: 1fr auto; gap: 8px; }
.filter-grid {
display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 8px;
}
.button {
border: 1px solid #277fa0; border-radius: 8px; padding: 8px 12px;
background: #12384a; color: var(--text);
@ -162,8 +176,16 @@ input:focus-visible, select:focus-visible {
padding: 9px; background: var(--panel-2); color: var(--text);
}
.result:hover, .result:focus-visible { border-color: var(--accent); outline: none; }
.result strong, .result span { display: block; overflow: hidden; text-overflow: ellipsis; }
.result span { color: var(--muted); font-size: 12px; white-space: nowrap; }
.result strong, .result span { display: block; overflow-wrap: anywhere; }
.result > span { color: var(--muted); font-size: 11px; }
.result-badges {
display: flex !important; flex-wrap: wrap; gap: 4px; margin: 5px 0;
}
.result-badges small {
border: 1px solid #31526d; border-radius: 999px; padding: 1px 6px;
background: #0a1724; color: #b7c9da; font-size: 9px; font-weight: 750;
letter-spacing: .04em; text-transform: uppercase;
}
.canvas { position: relative; min-width: 0; min-height: 0; overflow: hidden; }
svg { width: 100%; height: 100%; background:
radial-gradient(circle at 52% 46%, rgba(26, 65, 89, .58) 0, rgba(10, 28, 45, .46) 34%,
@ -240,13 +262,24 @@ svg { width: 100%; height: 100%; background:
.relationship-key-empty { margin: 2px 0; color: var(--muted); font-size: 11px; }
.relationship-edge {
fill: none; stroke-opacity: .74; stroke-width: 1.7;
vector-effect: non-scaling-stroke;
vector-effect: non-scaling-stroke; transition: opacity .16s, stroke-width .16s, filter .16s;
}
.edge-label {
font-size: 9px; font-weight: 700; letter-spacing: .015em; pointer-events: none;
paint-order: stroke; stroke: #07101a; stroke-width: 4px; stroke-linejoin: round;
transition: opacity .16s;
}
.node { cursor: pointer; }
.relationship-edge.trace-connected {
stroke-opacity: 1; stroke-width: 3;
filter: drop-shadow(0 0 7px currentcolor);
}
.relationship-edge.trace-muted, .edge-label.trace-muted { opacity: .13; }
.edge-label.trace-connected { opacity: 1; font-size: 10px; }
.node { cursor: pointer; transition: opacity .16s, filter .16s; }
.node.trace-connected:not(.selected) {
filter: drop-shadow(0 0 8px rgba(165, 243, 252, .28));
}
.node.trace-muted { opacity: .24; }
.node:focus { outline: none; }
.node .node-surface {
stroke-width: 1.35; vector-effect: non-scaling-stroke;