@ltm-blueverse/alpha-semantic-hub 0.7.0 → 0.7.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +307 -1567
- package/explorer/src/App.tsx +83 -83
- package/explorer/src/index.css +3 -3
- package/explorer/src/ui/primitives.css +25 -25
- package/explorer/src/workspaces/DecisionWorkspace/DecisionWorkspace.tsx +7 -7
- package/explorer/src/workspaces/DiffMergeWorkspace/DiffMergeWorkspace.tsx +4 -4
- package/explorer/src/workspaces/EnrichWorkspace/EntityResolutionTab.tsx +24 -24
- package/explorer/src/workspaces/EnrichWorkspace/RegistryTab.tsx +22 -22
- package/explorer/src/workspaces/GraphWorkspace/GraphCanvas.tsx +1 -1
- package/explorer/src/workspaces/GraphWorkspace/GraphInspectorPanel.tsx +18 -18
- package/explorer/src/workspaces/GraphWorkspace/GraphLoadingOverlay.tsx +25 -25
- package/explorer/src/workspaces/GraphWorkspace/GraphWorkspace.tsx +28 -28
- package/explorer/src/workspaces/GraphWorkspace/MarkdownContentViewer.tsx +15 -15
- package/explorer/src/workspaces/GraphWorkspace/graphAnalytics.ts +1 -1
- package/explorer/src/workspaces/GraphWorkspace/graphConfig.ts +15 -15
- package/explorer/src/workspaces/GraphWorkspace/graphSceneLayers.ts +8 -8
- package/explorer/src/workspaces/GraphWorkspace/graphSceneState.ts +11 -11
- package/explorer/src/workspaces/GraphWorkspace/graphTheme.ts +66 -66
- package/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPlugin.tsx +17 -17
- package/explorer/src/workspaces/GraphWorkspace/plugins/explorationEffectsPluginPhaseC.tsx +22 -22
- package/explorer/src/workspaces/GraphWorkspace/plugins/legendPlugin.tsx +7 -7
- package/explorer/src/workspaces/GraphWorkspace/plugins/neighborhoodPanelPlugin.tsx +10 -10
- package/explorer/src/workspaces/GraphWorkspace/plugins/temporalOverlayPlugin.tsx +9 -9
- package/explorer/src/workspaces/ImportExportWorkspace/ImportExportWorkspace.tsx +4 -4
- package/explorer/src/workspaces/LineageWorkspace/LineageDiagram.tsx +8 -8
- package/explorer/src/workspaces/ManageWorkspace/KGOverviewTab.tsx +5 -5
- package/explorer/src/workspaces/ManageWorkspace/OntologySummaryTab.tsx +19 -19
- package/explorer/src/workspaces/MemoryWorkspace.tsx +2 -2
- package/explorer/src/workspaces/OntologyWorkspace/AlignmentsTab.tsx +30 -30
- package/explorer/src/workspaces/OntologyWorkspace/HealthTab.tsx +26 -26
- package/explorer/src/workspaces/OntologyWorkspace/OntologyEditor.tsx +32 -32
- package/explorer/src/workspaces/OntologyWorkspace/OntologyLoader.tsx +22 -22
- package/explorer/src/workspaces/OntologyWorkspace/OntologyManager.tsx +40 -40
- package/explorer/src/workspaces/OntologyWorkspace/OntologySearch.tsx +22 -22
- package/explorer/src/workspaces/OntologyWorkspace/ProposalReview.tsx +31 -31
- package/explorer/src/workspaces/OntologyWorkspace/SKOSVocabularyManager.tsx +26 -26
- package/explorer/src/workspaces/OntologyWorkspace/ShaclStudio.tsx +21 -21
- package/explorer/src/workspaces/OntologyWorkspace/VersionsTab.tsx +38 -38
- package/explorer/src/workspaces/OntologyWorkspace/ontologyEditorModel.ts +3 -3
- package/explorer/src/workspaces/ReasoningWorkspace.tsx +4 -4
- package/explorer/src/workspaces/SparqlWorkspace/SparqlWorkspace.tsx +3 -3
- package/explorer/src/workspaces/VocabularyWorkspace/ConceptTree.tsx +3 -3
- package/explorer/src/workspaces/VocabularyWorkspace/ImportDropzone.tsx +4 -4
- package/explorer/src/workspaces/VocabularyWorkspace/PropertyPanel.tsx +8 -8
- package/explorer/src/workspaces/VocabularyWorkspace/Sidebar.tsx +4 -4
- package/explorer/src/workspaces/VocabularyWorkspace/VocabularyWorkspace.tsx +3 -3
- package/package.json +1 -1
|
@@ -61,10 +61,10 @@ function sourceAttribution(properties: Record<string, unknown>) {
|
|
|
61
61
|
/* ─── Path Distance Intelligence Panel ──────────────────────────── */
|
|
62
62
|
|
|
63
63
|
const BAND_COLORS: Record<string, string> = {
|
|
64
|
-
direct: "#
|
|
65
|
-
near: "#
|
|
66
|
-
"mid-range": "#
|
|
67
|
-
distant: "#
|
|
64
|
+
direct: "#22863a",
|
|
65
|
+
near: "#d9455e",
|
|
66
|
+
"mid-range": "#9a6700",
|
|
67
|
+
distant: "#ec2315",
|
|
68
68
|
};
|
|
69
69
|
|
|
70
70
|
function PathDistanceIntelPanel({ result }: { result: PathResponse }) {
|
|
@@ -105,7 +105,7 @@ function PathDistanceIntelPanel({ result }: { result: PathResponse }) {
|
|
|
105
105
|
<div
|
|
106
106
|
style={{
|
|
107
107
|
...metricValueStyle,
|
|
108
|
-
color: result.confidence_decay > 0.6 ? "#
|
|
108
|
+
color: result.confidence_decay > 0.6 ? "#22863a" : result.confidence_decay > 0.3 ? "#9a6700" : "#ec2315",
|
|
109
109
|
}}
|
|
110
110
|
>
|
|
111
111
|
{(result.confidence_decay * 100).toFixed(1)}%
|
|
@@ -116,7 +116,7 @@ function PathDistanceIntelPanel({ result }: { result: PathResponse }) {
|
|
|
116
116
|
...metricBarFillStyle,
|
|
117
117
|
width: `${result.confidence_decay * 100}%`,
|
|
118
118
|
background:
|
|
119
|
-
result.confidence_decay > 0.6 ? "#
|
|
119
|
+
result.confidence_decay > 0.6 ? "#22863a" : result.confidence_decay > 0.3 ? "#9a6700" : "#ec2315",
|
|
120
120
|
}}
|
|
121
121
|
/>
|
|
122
122
|
</div>
|
|
@@ -125,11 +125,11 @@ function PathDistanceIntelPanel({ result }: { result: PathResponse }) {
|
|
|
125
125
|
{result.semantic_similarity != null && (
|
|
126
126
|
<div style={metricCardStyle}>
|
|
127
127
|
<div style={metricLabelStyle}>Semantic Sim.</div>
|
|
128
|
-
<div style={{ ...metricValueStyle, color: "#
|
|
128
|
+
<div style={{ ...metricValueStyle, color: "#d9455e" }}>
|
|
129
129
|
{(result.semantic_similarity * 100).toFixed(1)}%
|
|
130
130
|
</div>
|
|
131
131
|
<div style={metricBarTrackStyle}>
|
|
132
|
-
<div style={{ ...metricBarFillStyle, width: `${result.semantic_similarity * 100}%`, background: "#
|
|
132
|
+
<div style={{ ...metricBarFillStyle, width: `${result.semantic_similarity * 100}%`, background: "#d9455e" }} />
|
|
133
133
|
</div>
|
|
134
134
|
</div>
|
|
135
135
|
)}
|
|
@@ -147,7 +147,7 @@ function PathDistanceIntelPanel({ result }: { result: PathResponse }) {
|
|
|
147
147
|
<div
|
|
148
148
|
style={{
|
|
149
149
|
...metricValueStyle,
|
|
150
|
-
color: "#
|
|
150
|
+
color: "#9a6700",
|
|
151
151
|
fontSize: 11,
|
|
152
152
|
overflow: "hidden",
|
|
153
153
|
textOverflow: "ellipsis",
|
|
@@ -281,7 +281,7 @@ function PathFlowViz({
|
|
|
281
281
|
{/* Weight badge */}
|
|
282
282
|
<div style={{ marginTop: 8, display: "flex", alignItems: "center", gap: 8 }}>
|
|
283
283
|
<span style={{ color: "#9c7a82", fontSize: 11 }}>Total weight:</span>
|
|
284
|
-
<span style={{ color: "#
|
|
284
|
+
<span style={{ color: "#d9455e", fontSize: 12, fontWeight: 700 }}>{totalWeight.toFixed(3)}</span>
|
|
285
285
|
<span style={{ color: "#9c7a82", fontSize: 11 }}>·</span>
|
|
286
286
|
<span style={{ color: "#9c7a82", fontSize: 11 }}>{path.length} hops</span>
|
|
287
287
|
</div>
|
|
@@ -593,7 +593,7 @@ const inputStyle: CSSProperties = {
|
|
|
593
593
|
borderRadius: 12,
|
|
594
594
|
padding: "11px 13px",
|
|
595
595
|
fontSize: 13,
|
|
596
|
-
boxShadow: "inset 0 1px 0 rgba(
|
|
596
|
+
boxShadow: "inset 0 1px 0 rgba(28, 20, 24,0.035)",
|
|
597
597
|
};
|
|
598
598
|
|
|
599
599
|
const groupedSelectionNoticeStyle: CSSProperties = {
|
|
@@ -616,7 +616,7 @@ const actionButtonStyle: CSSProperties = {
|
|
|
616
616
|
display: "inline-flex",
|
|
617
617
|
alignItems: "center",
|
|
618
618
|
justifyContent: "center",
|
|
619
|
-
boxShadow: "inset 0 1px 0 rgba(
|
|
619
|
+
boxShadow: "inset 0 1px 0 rgba(28, 20, 24,0.07), 0 10px 24px rgba(0,0,0,0.18)",
|
|
620
620
|
};
|
|
621
621
|
|
|
622
622
|
const secondaryActionButtonStyle: CSSProperties = {
|
|
@@ -630,7 +630,7 @@ const secondaryActionButtonStyle: CSSProperties = {
|
|
|
630
630
|
const predictionCardStyle: CSSProperties = {
|
|
631
631
|
textAlign: "left",
|
|
632
632
|
padding: "10px 12px",
|
|
633
|
-
background: "rgba(
|
|
633
|
+
background: "rgba(28, 20, 24, 0.035)",
|
|
634
634
|
border: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}`,
|
|
635
635
|
borderRadius: 10,
|
|
636
636
|
cursor: "pointer",
|
|
@@ -638,7 +638,7 @@ const predictionCardStyle: CSSProperties = {
|
|
|
638
638
|
};
|
|
639
639
|
|
|
640
640
|
const propertyCardStyle: CSSProperties = {
|
|
641
|
-
background: "rgba(
|
|
641
|
+
background: "rgba(28, 20, 24, 0.028)",
|
|
642
642
|
padding: "10px 12px",
|
|
643
643
|
borderRadius: 10,
|
|
644
644
|
border: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}`,
|
|
@@ -651,7 +651,7 @@ const emptyTextStyle: CSSProperties = {
|
|
|
651
651
|
};
|
|
652
652
|
|
|
653
653
|
const subtleChipStyle: CSSProperties = {
|
|
654
|
-
background: "rgba(
|
|
654
|
+
background: "rgba(28, 20, 24, 0.04)",
|
|
655
655
|
color: GRAPH_THEME.ui.text.body,
|
|
656
656
|
padding: "4px 8px",
|
|
657
657
|
borderRadius: 999,
|
|
@@ -736,7 +736,7 @@ const metricCardStyle: CSSProperties = {
|
|
|
736
736
|
background: "rgba(0,0,0,0.18)",
|
|
737
737
|
borderRadius: 8,
|
|
738
738
|
padding: "8px 10px",
|
|
739
|
-
border: "1px solid rgba(
|
|
739
|
+
border: "1px solid rgba(28, 20, 24,0.05)",
|
|
740
740
|
display: "flex",
|
|
741
741
|
flexDirection: "column",
|
|
742
742
|
gap: 3,
|
|
@@ -753,13 +753,13 @@ const metricLabelStyle: CSSProperties = {
|
|
|
753
753
|
const metricValueStyle: CSSProperties = {
|
|
754
754
|
fontSize: 14,
|
|
755
755
|
fontWeight: 700,
|
|
756
|
-
color: "#
|
|
756
|
+
color: "#2d1619",
|
|
757
757
|
};
|
|
758
758
|
|
|
759
759
|
const metricBarTrackStyle: CSSProperties = {
|
|
760
760
|
height: 3,
|
|
761
761
|
borderRadius: 999,
|
|
762
|
-
background: "rgba(
|
|
762
|
+
background: "rgba(28, 20, 24,0.07)",
|
|
763
763
|
overflow: "hidden",
|
|
764
764
|
marginTop: 4,
|
|
765
765
|
};
|
|
@@ -29,8 +29,8 @@ const LOADING_OVERLAY_CSS = `
|
|
|
29
29
|
background:
|
|
30
30
|
radial-gradient(circle at top right, rgba(242, 182, 109, 0.12), transparent 28%),
|
|
31
31
|
radial-gradient(circle at top left, rgba(255, 107, 129, 0.14), transparent 30%),
|
|
32
|
-
linear-gradient(145deg, rgba(
|
|
33
|
-
box-shadow: 0 26px 90px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(
|
|
32
|
+
linear-gradient(145deg, rgba(255, 255, 255, 0.94), rgba(255, 255, 255, 0.82));
|
|
33
|
+
box-shadow: 0 26px 90px rgba(0, 0, 0, 0.34), inset 0 1px 0 rgba(28, 20, 24,0.05);
|
|
34
34
|
backdrop-filter: blur(18px) saturate(1.08);
|
|
35
35
|
-webkit-backdrop-filter: blur(18px) saturate(1.08);
|
|
36
36
|
}
|
|
@@ -39,8 +39,8 @@ const LOADING_OVERLAY_CSS = `
|
|
|
39
39
|
background:
|
|
40
40
|
radial-gradient(circle at top right, rgba(242, 182, 109, 0.08), transparent 26%),
|
|
41
41
|
radial-gradient(circle at top left, rgba(255, 107, 129, 0.12), transparent 28%),
|
|
42
|
-
linear-gradient(145deg, rgba(
|
|
43
|
-
box-shadow: 0 18px 54px rgba(0, 0, 0, 0.26), inset 0 1px 0 rgba(
|
|
42
|
+
linear-gradient(145deg, rgba(255, 255, 255, 0.84), rgba(255, 255, 255, 0.72));
|
|
43
|
+
box-shadow: 0 18px 54px rgba(0, 0, 0, 0.26), inset 0 1px 0 rgba(28, 20, 24,0.04);
|
|
44
44
|
}
|
|
45
45
|
.graph-stage-loader-beacon {
|
|
46
46
|
position: relative;
|
|
@@ -73,7 +73,7 @@ const LOADING_OVERLAY_CSS = `
|
|
|
73
73
|
text-transform: uppercase;
|
|
74
74
|
border: 1px solid rgba(255, 107, 129, 0.08);
|
|
75
75
|
color: rgba(143, 168, 198, 0.72);
|
|
76
|
-
background: rgba(
|
|
76
|
+
background: rgba(28, 20, 24, 0.02);
|
|
77
77
|
}
|
|
78
78
|
.graph-stage-loader-step[data-state="done"] {
|
|
79
79
|
color: rgba(214, 232, 250, 0.92);
|
|
@@ -81,10 +81,10 @@ const LOADING_OVERLAY_CSS = `
|
|
|
81
81
|
background: rgba(89, 155, 220, 0.14);
|
|
82
82
|
}
|
|
83
83
|
.graph-stage-loader-step[data-state="active"] {
|
|
84
|
-
color: #
|
|
84
|
+
color: #16222d;
|
|
85
85
|
border-color: rgba(242, 182, 109, 0.24);
|
|
86
86
|
background: linear-gradient(135deg, rgba(49, 108, 172, 0.28), rgba(242, 182, 109, 0.16));
|
|
87
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
87
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24, 0.06);
|
|
88
88
|
}
|
|
89
89
|
.graph-stage-loader-bar {
|
|
90
90
|
position: relative;
|
|
@@ -93,7 +93,7 @@ const LOADING_OVERLAY_CSS = `
|
|
|
93
93
|
overflow: hidden;
|
|
94
94
|
border-radius: 999px;
|
|
95
95
|
border: 1px solid rgba(255, 107, 129, 0.1);
|
|
96
|
-
background: rgba(
|
|
96
|
+
background: rgba(28, 20, 24, 0.05);
|
|
97
97
|
}
|
|
98
98
|
.graph-stage-loader-bar-fill {
|
|
99
99
|
display: block;
|
|
@@ -127,7 +127,7 @@ const LOADING_OVERLAY_CSS = `
|
|
|
127
127
|
border-color: rgba(255, 123, 114, 0.32);
|
|
128
128
|
background:
|
|
129
129
|
radial-gradient(circle at top left, rgba(255, 123, 114, 0.12), transparent 32%),
|
|
130
|
-
linear-gradient(145deg, rgba(
|
|
130
|
+
linear-gradient(145deg, rgba(255, 255, 255, 0.96), rgba(255, 255, 255, 0.86));
|
|
131
131
|
}
|
|
132
132
|
.graph-stage-loader-error-mark {
|
|
133
133
|
width: 38px;
|
|
@@ -136,7 +136,7 @@ const LOADING_OVERLAY_CSS = `
|
|
|
136
136
|
border-radius: 12px;
|
|
137
137
|
display: grid;
|
|
138
138
|
place-items: center;
|
|
139
|
-
color: #
|
|
139
|
+
color: #46211e;
|
|
140
140
|
background: rgba(255, 123, 114, 0.12);
|
|
141
141
|
border: 1px solid rgba(255, 123, 114, 0.28);
|
|
142
142
|
}
|
|
@@ -145,7 +145,7 @@ const LOADING_OVERLAY_CSS = `
|
|
|
145
145
|
border-radius: 10px;
|
|
146
146
|
background: rgba(0, 0, 0, 0.32);
|
|
147
147
|
border: 1px solid rgba(255, 123, 114, 0.18);
|
|
148
|
-
color: #
|
|
148
|
+
color: #562925;
|
|
149
149
|
font-family: "JetBrains Mono", "Fira Code", Consolas, monospace;
|
|
150
150
|
font-size: 12px;
|
|
151
151
|
line-height: 1.55;
|
|
@@ -162,7 +162,7 @@ const LOADING_OVERLAY_CSS = `
|
|
|
162
162
|
cursor: pointer;
|
|
163
163
|
border: 1px solid rgba(255, 107, 129, 0.4);
|
|
164
164
|
background: linear-gradient(135deg, rgba(255, 45, 75, 0.28), rgba(56, 210, 160, 0.16));
|
|
165
|
-
color: #
|
|
165
|
+
color: #2d161a;
|
|
166
166
|
transition: 160ms ease;
|
|
167
167
|
}
|
|
168
168
|
.graph-stage-loader-retry:hover {
|
|
@@ -171,7 +171,7 @@ const LOADING_OVERLAY_CSS = `
|
|
|
171
171
|
transform: translateY(-1px);
|
|
172
172
|
}
|
|
173
173
|
.graph-stage-loader-retry:focus-visible {
|
|
174
|
-
outline: 2px solid #
|
|
174
|
+
outline: 2px solid #d41736;
|
|
175
175
|
outline-offset: 2px;
|
|
176
176
|
}
|
|
177
177
|
`;
|
|
@@ -213,8 +213,8 @@ const loadingMetricStyle = {
|
|
|
213
213
|
padding: "7px 10px",
|
|
214
214
|
borderRadius: 999,
|
|
215
215
|
border: "1px solid rgba(255, 107, 129, 0.12)",
|
|
216
|
-
background: "rgba(
|
|
217
|
-
color: "#
|
|
216
|
+
background: "rgba(28, 20, 24, 0.03)",
|
|
217
|
+
color: "#25313f",
|
|
218
218
|
fontSize: 11,
|
|
219
219
|
fontWeight: 600,
|
|
220
220
|
} satisfies CSSProperties;
|
|
@@ -288,7 +288,7 @@ export function GraphLoadingOverlay({
|
|
|
288
288
|
<div
|
|
289
289
|
className="graph-stage-loader"
|
|
290
290
|
data-exiting={exiting}
|
|
291
|
-
style={{ background: "linear-gradient(180deg, rgba(
|
|
291
|
+
style={{ background: "linear-gradient(180deg, rgba(255, 255, 255,0.22), rgba(255, 255, 255,0.5))" }}
|
|
292
292
|
>
|
|
293
293
|
<style>{LOADING_OVERLAY_CSS}</style>
|
|
294
294
|
<div className="graph-stage-loader-card" data-error="true" role="alert">
|
|
@@ -297,10 +297,10 @@ export function GraphLoadingOverlay({
|
|
|
297
297
|
<AlertTriangle size={18} strokeWidth={2.2} />
|
|
298
298
|
</div>
|
|
299
299
|
<div style={{ minWidth: 0 }}>
|
|
300
|
-
<div style={{ color: "#
|
|
300
|
+
<div style={{ color: "#16181d", fontSize: 20, fontWeight: 700, letterSpacing: "-0.03em", marginBottom: 6 }}>
|
|
301
301
|
Could not load the graph
|
|
302
302
|
</div>
|
|
303
|
-
<div style={{ color: "#
|
|
303
|
+
<div style={{ color: "#aa485b", fontSize: 13, lineHeight: 1.5 }}>
|
|
304
304
|
The Explorer API did not return graph data. Check that the backend is running and reachable, then try again.
|
|
305
305
|
</div>
|
|
306
306
|
</div>
|
|
@@ -324,8 +324,8 @@ export function GraphLoadingOverlay({
|
|
|
324
324
|
const activeProgress = progress ?? displayProgress;
|
|
325
325
|
const isLiveStage = activeProgress.phase === "stabilizing_layout" || activeProgress.showGraphBehind || showGraphBehind;
|
|
326
326
|
const overlayBackground = isLiveStage
|
|
327
|
-
? "linear-gradient(180deg, rgba(
|
|
328
|
-
: "linear-gradient(180deg, rgba(
|
|
327
|
+
? "linear-gradient(180deg, rgba(255, 255, 255,0.04), rgba(255, 255, 255,0.18))"
|
|
328
|
+
: "linear-gradient(180deg, rgba(255, 255, 255,0.22), rgba(255, 255, 255,0.5))";
|
|
329
329
|
const determinateRatio = activeProgress.progressKind === "determinate" && activeProgress.total
|
|
330
330
|
? Math.max(0.05, Math.min(activeProgress.loaded ?? 0, activeProgress.total) / Math.max(activeProgress.total, 1))
|
|
331
331
|
: null;
|
|
@@ -342,16 +342,16 @@ export function GraphLoadingOverlay({
|
|
|
342
342
|
<div className="graph-stage-loader-card" data-live={isLiveStage}>
|
|
343
343
|
<div style={{ display: "flex", alignItems: "flex-start", justifyContent: "space-between", gap: 14, marginBottom: 14 }}>
|
|
344
344
|
<div style={{ minWidth: 0 }}>
|
|
345
|
-
<div style={{ color: "#
|
|
345
|
+
<div style={{ color: "#16181d", fontSize: 20, fontWeight: 700, letterSpacing: "-0.03em", marginBottom: 6 }}>
|
|
346
346
|
{activeProgress.title}
|
|
347
347
|
</div>
|
|
348
|
-
<div style={{ color: "#
|
|
348
|
+
<div style={{ color: "#aa485b", fontSize: 13, lineHeight: 1.5 }}>
|
|
349
349
|
{activeProgress.message}
|
|
350
350
|
</div>
|
|
351
351
|
</div>
|
|
352
352
|
<div style={{ display: "inline-flex", alignItems: "center", gap: 10, flexShrink: 0 }}>
|
|
353
353
|
<div className="graph-stage-loader-beacon" aria-hidden="true" />
|
|
354
|
-
<div style={{ color: "#
|
|
354
|
+
<div style={{ color: "#16222e", fontSize: 11, fontWeight: 700, letterSpacing: "0.08em", textTransform: "uppercase" }}>
|
|
355
355
|
Stage {activeProgress.stageIndex ?? 1}/{activeProgress.stageCount ?? GRAPH_LOAD_STAGE_SEQUENCE.length}
|
|
356
356
|
</div>
|
|
357
357
|
</div>
|
|
@@ -370,7 +370,7 @@ export function GraphLoadingOverlay({
|
|
|
370
370
|
</div>
|
|
371
371
|
|
|
372
372
|
<div style={{ display: "flex", justifyContent: "space-between", gap: 12, alignItems: "baseline", marginBottom: 8 }}>
|
|
373
|
-
<div style={{ color: "#
|
|
373
|
+
<div style={{ color: "#17222d", fontSize: 12, fontWeight: 600 }}>
|
|
374
374
|
{activeProgress.progressKind === "determinate" && activeProgress.total
|
|
375
375
|
? `${(activeProgress.loaded ?? 0).toLocaleString()} / ${activeProgress.total.toLocaleString()} in current stage`
|
|
376
376
|
: "Working through this stage"}
|
|
@@ -398,7 +398,7 @@ export function GraphLoadingOverlay({
|
|
|
398
398
|
{activeProgress.edgesTotal ? ` / ${activeProgress.edgesTotal.toLocaleString()}` : ""} relationships
|
|
399
399
|
</span>
|
|
400
400
|
{layoutSource ? (
|
|
401
|
-
<span style={{ ...loadingMetricStyle, color: "#
|
|
401
|
+
<span style={{ ...loadingMetricStyle, color: "#234053", borderColor: withAlpha(GRAPH_THEME.palette.accent.hovered, 0.22) }}>
|
|
402
402
|
{layoutSource}
|
|
403
403
|
{layoutState ? ` · ${layoutState}` : ""}
|
|
404
404
|
</span>
|
|
@@ -522,7 +522,7 @@ const HUD_CSS = `
|
|
|
522
522
|
.node-panel-collapse {
|
|
523
523
|
border: 1px solid ${GRAPH_THEME.ui.surface.panelBorder};
|
|
524
524
|
border-radius: 12px;
|
|
525
|
-
background: rgba(
|
|
525
|
+
background: rgba(28, 20, 24, 0.026);
|
|
526
526
|
overflow: hidden;
|
|
527
527
|
}
|
|
528
528
|
.node-panel-collapse + .node-panel-collapse {
|
|
@@ -610,7 +610,7 @@ const HUD_CSS = `
|
|
|
610
610
|
height: 10px;
|
|
611
611
|
border-radius: 999px;
|
|
612
612
|
overflow: hidden;
|
|
613
|
-
background: rgba(
|
|
613
|
+
background: rgba(28, 20, 24, 0.052);
|
|
614
614
|
border: 1px solid ${GRAPH_THEME.ui.surface.panelBorder};
|
|
615
615
|
}
|
|
616
616
|
.graph-loading-bar > span {
|
|
@@ -736,10 +736,10 @@ const HUD_CSS = `
|
|
|
736
736
|
border-radius: 16px;
|
|
737
737
|
border: 1px solid ${GRAPH_THEME.ui.control.inputBorder};
|
|
738
738
|
background:
|
|
739
|
-
linear-gradient(135deg, rgba(
|
|
739
|
+
linear-gradient(135deg, rgba(28, 20, 24,0.06), rgba(28, 20, 24,0.018)),
|
|
740
740
|
${GRAPH_THEME.ui.control.inputBg};
|
|
741
741
|
color: ${GRAPH_THEME.ui.text.muted};
|
|
742
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
742
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.045), 0 14px 30px rgba(0,0,0,0.16);
|
|
743
743
|
}
|
|
744
744
|
.explore-search-suggestions {
|
|
745
745
|
position: absolute;
|
|
@@ -755,7 +755,7 @@ const HUD_CSS = `
|
|
|
755
755
|
border-radius: 14px;
|
|
756
756
|
border: 1px solid ${GRAPH_THEME.ui.control.inputBorder};
|
|
757
757
|
background: ${GRAPH_THEME.ui.surface.cardStrong};
|
|
758
|
-
box-shadow: 0 18px 40px rgba(0,0,0,0.32), inset 0 1px 0 rgba(
|
|
758
|
+
box-shadow: 0 18px 40px rgba(0,0,0,0.32), inset 0 1px 0 rgba(28, 20, 24,0.04);
|
|
759
759
|
}
|
|
760
760
|
.explore-search-suggestions li {
|
|
761
761
|
display: flex;
|
|
@@ -787,7 +787,7 @@ const HUD_CSS = `
|
|
|
787
787
|
}
|
|
788
788
|
.explore-search-command:focus-within {
|
|
789
789
|
border-color: ${GRAPH_THEME.ui.control.activeBorder};
|
|
790
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
790
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.06), 0 0 0 1px ${GRAPH_THEME.ui.control.focusRing}, 0 16px 32px rgba(0,0,0,0.18);
|
|
791
791
|
}
|
|
792
792
|
.explore-search-command input {
|
|
793
793
|
width: 100%;
|
|
@@ -811,7 +811,7 @@ const HUD_CSS = `
|
|
|
811
811
|
font-size: 12px;
|
|
812
812
|
font-weight: 800;
|
|
813
813
|
cursor: pointer;
|
|
814
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
814
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.08);
|
|
815
815
|
}
|
|
816
816
|
.explore-search-command button:disabled {
|
|
817
817
|
cursor: not-allowed;
|
|
@@ -824,8 +824,8 @@ const HUD_CSS = `
|
|
|
824
824
|
padding: 4px;
|
|
825
825
|
border-radius: 16px;
|
|
826
826
|
border: 1px solid ${GRAPH_THEME.ui.control.defaultBorder};
|
|
827
|
-
background: rgba(
|
|
828
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
827
|
+
background: rgba(28, 20, 24, 0.026);
|
|
828
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.035);
|
|
829
829
|
}
|
|
830
830
|
.explore-mode-segment {
|
|
831
831
|
min-width: 0;
|
|
@@ -846,8 +846,8 @@ const HUD_CSS = `
|
|
|
846
846
|
min-height: 43px;
|
|
847
847
|
padding: 4px;
|
|
848
848
|
border-radius: 16px;
|
|
849
|
-
border: 1px solid rgba(
|
|
850
|
-
background: rgba(
|
|
849
|
+
border: 1px solid rgba(70, 60, 48, 0.075);
|
|
850
|
+
background: rgba(28, 20, 24, 0.022);
|
|
851
851
|
}
|
|
852
852
|
.explore-tool-cluster-label {
|
|
853
853
|
padding: 0 4px 0 7px;
|
|
@@ -880,12 +880,12 @@ const HUD_CSS = `
|
|
|
880
880
|
line-height: 1;
|
|
881
881
|
cursor: pointer;
|
|
882
882
|
white-space: nowrap;
|
|
883
|
-
box-shadow: inset 0 1px 0 rgba(
|
|
883
|
+
box-shadow: inset 0 1px 0 rgba(28, 20, 24,0.035);
|
|
884
884
|
transition: background 140ms ease, border-color 140ms ease, color 140ms ease, transform 140ms ease;
|
|
885
885
|
}
|
|
886
886
|
.explore-tool-button:hover:not(:disabled) {
|
|
887
887
|
background: ${GRAPH_THEME.ui.control.hoverBg};
|
|
888
|
-
border-color: rgba(
|
|
888
|
+
border-color: rgba(70, 60, 48, 0.18);
|
|
889
889
|
transform: translateY(-1px);
|
|
890
890
|
}
|
|
891
891
|
.explore-tool-button:disabled {
|
|
@@ -898,7 +898,7 @@ const HUD_CSS = `
|
|
|
898
898
|
color: ${GRAPH_THEME.ui.control.activeText};
|
|
899
899
|
background: ${GRAPH_THEME.ui.control.activeBg};
|
|
900
900
|
border-color: ${GRAPH_THEME.ui.control.activeBorder};
|
|
901
|
-
box-shadow: 0 0 0 1px ${GRAPH_THEME.ui.control.focusRing}, inset 0 1px 0 rgba(
|
|
901
|
+
box-shadow: 0 0 0 1px ${GRAPH_THEME.ui.control.focusRing}, inset 0 1px 0 rgba(28, 20, 24,0.06);
|
|
902
902
|
}
|
|
903
903
|
.explore-tool-button-primary {
|
|
904
904
|
color: ${GRAPH_THEME.ui.control.primaryText};
|
|
@@ -951,7 +951,7 @@ const HUD_CSS = `
|
|
|
951
951
|
height: 10px;
|
|
952
952
|
flex-shrink: 0;
|
|
953
953
|
border-radius: 50%;
|
|
954
|
-
box-shadow: inset 0 0 0 1px rgba(
|
|
954
|
+
box-shadow: inset 0 0 0 1px rgba(28, 20, 24,0.16);
|
|
955
955
|
}
|
|
956
956
|
.explore-search-results {
|
|
957
957
|
display: flex;
|
|
@@ -3152,17 +3152,17 @@ export function GraphWorkspace({ externalFocusNodeId, externalFocusToken, onDirt
|
|
|
3152
3152
|
|
|
3153
3153
|
{egoModeEnabled && (
|
|
3154
3154
|
<div style={{ display: "flex", alignItems: "center", gap: 10, fontSize: 12, color: "#a0b4cc" }}>
|
|
3155
|
-
<span style={{ fontWeight: 600, color: "#
|
|
3155
|
+
<span style={{ fontWeight: 600, color: "#d9455e" }}>Ego depth:</span>
|
|
3156
3156
|
<input
|
|
3157
3157
|
type="range"
|
|
3158
3158
|
min={1}
|
|
3159
3159
|
max={8}
|
|
3160
3160
|
value={egoMaxHops}
|
|
3161
3161
|
onChange={(e) => setEgoMaxHops(Number(e.target.value))}
|
|
3162
|
-
style={{ width: 90, accentColor: "#
|
|
3162
|
+
style={{ width: 90, accentColor: "#d9455e" }}
|
|
3163
3163
|
title={`Ego depth: ${egoMaxHops} hops`}
|
|
3164
3164
|
/>
|
|
3165
|
-
<span style={{ fontFamily: "monospace", color: "#
|
|
3165
|
+
<span style={{ fontFamily: "monospace", color: "#16212e" }}>{egoMaxHops} hop{egoMaxHops !== 1 ? "s" : ""}</span>
|
|
3166
3166
|
</div>
|
|
3167
3167
|
)}
|
|
3168
3168
|
|
|
@@ -3206,7 +3206,7 @@ export function GraphWorkspace({ externalFocusNodeId, externalFocusToken, onDirt
|
|
|
3206
3206
|
</div>
|
|
3207
3207
|
) : null}
|
|
3208
3208
|
|
|
3209
|
-
{searchError ? <div style={{ color: "#
|
|
3209
|
+
{searchError ? <div style={{ color: "#ec2315", fontSize: 12 }}>{searchError}</div> : null}
|
|
3210
3210
|
|
|
3211
3211
|
{searchResults.length ? (
|
|
3212
3212
|
<div style={{ display: "flex", flexDirection: "column", gap: 8 }}>
|
|
@@ -3229,7 +3229,7 @@ export function GraphWorkspace({ externalFocusNodeId, externalFocusToken, onDirt
|
|
|
3229
3229
|
<button key={result.node.id} style={predictionCardStyle} onClick={() => focusNode(result.node.id)}>
|
|
3230
3230
|
<div style={{ display: "flex", justifyContent: "space-between", gap: 12 }}>
|
|
3231
3231
|
<div style={{ minWidth: 0 }}>
|
|
3232
|
-
<div style={{ color: "#
|
|
3232
|
+
<div style={{ color: "#16181d", fontWeight: 600 }}>{result.node.content || result.node.id}</div>
|
|
3233
3233
|
<div style={{ color: "#b08b93", fontSize: 12 }}>{result.node.type}</div>
|
|
3234
3234
|
</div>
|
|
3235
3235
|
<div style={{ color: "#ff2d4b", fontSize: 12, whiteSpace: "nowrap" }}>
|
|
@@ -3249,7 +3249,7 @@ export function GraphWorkspace({ externalFocusNodeId, externalFocusToken, onDirt
|
|
|
3249
3249
|
<div style={{ color: "rgba(255, 107, 129, 0.76)", fontSize: 11, fontWeight: 700, letterSpacing: "0.08em", textTransform: "uppercase" }}>
|
|
3250
3250
|
Relationship
|
|
3251
3251
|
</div>
|
|
3252
|
-
<div style={{ color: "#
|
|
3252
|
+
<div style={{ color: "#161e2d", fontSize: 15, fontWeight: 700, marginTop: 6 }}>
|
|
3253
3253
|
{selectedEdgeState.edgeType}
|
|
3254
3254
|
</div>
|
|
3255
3255
|
</div>
|
|
@@ -3299,7 +3299,7 @@ export function GraphWorkspace({ externalFocusNodeId, externalFocusToken, onDirt
|
|
|
3299
3299
|
<div style={{ color: "rgba(255, 107, 129, 0.68)", fontSize: 10, letterSpacing: "0.06em", textTransform: "uppercase" }}>
|
|
3300
3300
|
{key}
|
|
3301
3301
|
</div>
|
|
3302
|
-
<div style={{ color: "#
|
|
3302
|
+
<div style={{ color: "#18212c", fontSize: 12, marginTop: 4, wordBreak: "break-word" }}>
|
|
3303
3303
|
{typeof value === "object" ? JSON.stringify(value) : String(value)}
|
|
3304
3304
|
</div>
|
|
3305
3305
|
</div>
|
|
@@ -3432,7 +3432,7 @@ const actionButtonStyle: React.CSSProperties = {
|
|
|
3432
3432
|
display: "inline-flex",
|
|
3433
3433
|
alignItems: "center",
|
|
3434
3434
|
justifyContent: "center",
|
|
3435
|
-
boxShadow: "inset 0 1px 0 rgba(
|
|
3435
|
+
boxShadow: "inset 0 1px 0 rgba(28, 20, 24,0.07), 0 10px 24px rgba(0,0,0,0.18)",
|
|
3436
3436
|
};
|
|
3437
3437
|
|
|
3438
3438
|
const secondaryActionButtonStyle: React.CSSProperties = {
|
|
@@ -3446,7 +3446,7 @@ const secondaryActionButtonStyle: React.CSSProperties = {
|
|
|
3446
3446
|
const predictionCardStyle: React.CSSProperties = {
|
|
3447
3447
|
textAlign: "left",
|
|
3448
3448
|
padding: 12,
|
|
3449
|
-
background: "rgba(
|
|
3449
|
+
background: "rgba(28, 20, 24, 0.035)",
|
|
3450
3450
|
border: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}`,
|
|
3451
3451
|
borderRadius: 10,
|
|
3452
3452
|
cursor: "pointer",
|
|
@@ -3460,7 +3460,7 @@ const selectedEdgeCardStyle: React.CSSProperties = {
|
|
|
3460
3460
|
background: "linear-gradient(135deg, rgba(98, 226, 205, 0.1), rgba(233, 196, 122, 0.045))",
|
|
3461
3461
|
border: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}`,
|
|
3462
3462
|
borderRadius: 14,
|
|
3463
|
-
boxShadow: "inset 0 1px 0 rgba(
|
|
3463
|
+
boxShadow: "inset 0 1px 0 rgba(28, 20, 24,0.03)",
|
|
3464
3464
|
};
|
|
3465
3465
|
|
|
3466
3466
|
const selectedEdgeNodeChipStyle: React.CSSProperties = {
|
|
@@ -3479,7 +3479,7 @@ const distanceStatusStripStyle: React.CSSProperties = {
|
|
|
3479
3479
|
background: "linear-gradient(135deg, rgba(98, 226, 205, 0.09), rgba(227, 179, 65, 0.045))",
|
|
3480
3480
|
borderRadius: 16,
|
|
3481
3481
|
padding: "9px 12px",
|
|
3482
|
-
boxShadow: "inset 0 1px 0 rgba(
|
|
3482
|
+
boxShadow: "inset 0 1px 0 rgba(28, 20, 24,0.045)",
|
|
3483
3483
|
};
|
|
3484
3484
|
|
|
3485
3485
|
const distanceStatusTitleStyle: React.CSSProperties = {
|
|
@@ -3541,14 +3541,14 @@ const selectedEdgePropertyGridStyle: React.CSSProperties = {
|
|
|
3541
3541
|
const selectedEdgePropertyCardStyle: React.CSSProperties = {
|
|
3542
3542
|
borderRadius: 10,
|
|
3543
3543
|
padding: 10,
|
|
3544
|
-
background: "rgba(
|
|
3544
|
+
background: "rgba(28, 20, 24, 0.03)",
|
|
3545
3545
|
border: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}`,
|
|
3546
3546
|
};
|
|
3547
3547
|
|
|
3548
3548
|
const pluginDockContentStyle: React.CSSProperties = {
|
|
3549
3549
|
borderRadius: 16,
|
|
3550
3550
|
border: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}`,
|
|
3551
|
-
background: "rgba(
|
|
3551
|
+
background: "rgba(28, 20, 24, 0.02)",
|
|
3552
3552
|
padding: 14,
|
|
3553
3553
|
};
|
|
3554
3554
|
|
|
@@ -287,8 +287,8 @@ export function MarkdownContentViewer({
|
|
|
287
287
|
<button type="button" onClick={() => void handleCopy()} style={copyBtnStyle} title="Copy raw content">
|
|
288
288
|
{copied ? (
|
|
289
289
|
<>
|
|
290
|
-
<Check size={12} color="#
|
|
291
|
-
<span style={{ color: "#
|
|
290
|
+
<Check size={12} color="#22863a" style={{ marginRight: 4 }} aria-hidden="true" />
|
|
291
|
+
<span style={{ color: "#22863a", fontSize: 11 }}>Copied</span>
|
|
292
292
|
</>
|
|
293
293
|
) : (
|
|
294
294
|
<>
|
|
@@ -460,7 +460,7 @@ const MARKDOWN_COMPONENTS: Components = {
|
|
|
460
460
|
<table style={{ width: "100%", borderCollapse: "collapse", fontSize: 12 }}>{children}</table>
|
|
461
461
|
</div>
|
|
462
462
|
),
|
|
463
|
-
thead: ({ children }) => <thead style={{ background: "rgba(
|
|
463
|
+
thead: ({ children }) => <thead style={{ background: "rgba(28, 20, 24, 0.04)" }}>{children}</thead>,
|
|
464
464
|
tbody: ({ children }) => <tbody>{children}</tbody>,
|
|
465
465
|
tr: ({ children }) => <tr style={{ borderBottom: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}` }}>{children}</tr>,
|
|
466
466
|
th: ({ children }) => <th style={{ padding: "6px 8px", textAlign: "left", fontWeight: 700, color: GRAPH_THEME.ui.text.strong, borderRight: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}` }}>{children}</th>,
|
|
@@ -483,7 +483,7 @@ const MARKDOWN_COMPONENTS: Components = {
|
|
|
483
483
|
const viewerContainerStyle: CSSProperties = {
|
|
484
484
|
display: "flex",
|
|
485
485
|
flexDirection: "column",
|
|
486
|
-
background: "rgba(
|
|
486
|
+
background: "rgba(28, 20, 24, 0.025)",
|
|
487
487
|
border: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}`,
|
|
488
488
|
borderRadius: 12,
|
|
489
489
|
overflow: "hidden",
|
|
@@ -526,7 +526,7 @@ const copyBtnStyle: CSSProperties = {
|
|
|
526
526
|
padding: "3px 8px",
|
|
527
527
|
borderRadius: 6,
|
|
528
528
|
border: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}`,
|
|
529
|
-
background: "rgba(
|
|
529
|
+
background: "rgba(28, 20, 24, 0.04)",
|
|
530
530
|
color: GRAPH_THEME.ui.text.subtle,
|
|
531
531
|
fontSize: 11,
|
|
532
532
|
cursor: "pointer",
|
|
@@ -546,7 +546,7 @@ const errorStyle: CSSProperties = {
|
|
|
546
546
|
justifyContent: "space-between",
|
|
547
547
|
gap: 8,
|
|
548
548
|
padding: "8px 12px",
|
|
549
|
-
color: "#
|
|
549
|
+
color: "#552925",
|
|
550
550
|
background: "rgba(248, 81, 73, 0.1)",
|
|
551
551
|
borderBottom: "1px solid rgba(248, 81, 73, 0.25)",
|
|
552
552
|
fontSize: 12,
|
|
@@ -556,7 +556,7 @@ const errorStyle: CSSProperties = {
|
|
|
556
556
|
const errorActionStyle: CSSProperties = {
|
|
557
557
|
...copyBtnStyle,
|
|
558
558
|
flexShrink: 0,
|
|
559
|
-
color: "#
|
|
559
|
+
color: "#552925",
|
|
560
560
|
border: "1px solid rgba(248, 81, 73, 0.32)",
|
|
561
561
|
};
|
|
562
562
|
|
|
@@ -594,7 +594,7 @@ const sourcePreStyle: CSSProperties = {
|
|
|
594
594
|
padding: 10,
|
|
595
595
|
borderRadius: 8,
|
|
596
596
|
background: "rgba(0, 0, 0, 0.3)",
|
|
597
|
-
border: "1px solid rgba(
|
|
597
|
+
border: "1px solid rgba(28, 20, 24, 0.05)",
|
|
598
598
|
overflowX: "auto",
|
|
599
599
|
};
|
|
600
600
|
|
|
@@ -660,7 +660,7 @@ const blockquoteStyle: CSSProperties = {
|
|
|
660
660
|
};
|
|
661
661
|
|
|
662
662
|
const linkStyle: CSSProperties = {
|
|
663
|
-
color: "#
|
|
663
|
+
color: "#d9455e",
|
|
664
664
|
textDecoration: "underline",
|
|
665
665
|
textUnderlineOffset: "3px",
|
|
666
666
|
wordBreak: "break-all",
|
|
@@ -670,7 +670,7 @@ const imageBadgeStyle: CSSProperties = {
|
|
|
670
670
|
display: "inline-flex",
|
|
671
671
|
alignItems: "center",
|
|
672
672
|
padding: "3px 7px",
|
|
673
|
-
background: "rgba(
|
|
673
|
+
background: "rgba(28, 20, 24, 0.04)",
|
|
674
674
|
border: `1px solid ${GRAPH_THEME.ui.surface.panelBorder}`,
|
|
675
675
|
borderRadius: 6,
|
|
676
676
|
color: GRAPH_THEME.ui.text.muted,
|
|
@@ -683,9 +683,9 @@ const inlineCodeStyle: CSSProperties = {
|
|
|
683
683
|
fontSize: 12,
|
|
684
684
|
padding: "2px 5px",
|
|
685
685
|
borderRadius: 4,
|
|
686
|
-
background: "rgba(
|
|
687
|
-
color: "#
|
|
688
|
-
border: "1px solid rgba(
|
|
686
|
+
background: "rgba(28, 20, 24, 0.07)",
|
|
687
|
+
color: "#2d1619",
|
|
688
|
+
border: "1px solid rgba(28, 20, 24, 0.08)",
|
|
689
689
|
};
|
|
690
690
|
|
|
691
691
|
const preBlockStyle: CSSProperties = {
|
|
@@ -693,7 +693,7 @@ const preBlockStyle: CSSProperties = {
|
|
|
693
693
|
padding: 10,
|
|
694
694
|
borderRadius: 8,
|
|
695
695
|
background: "rgba(0, 0, 0, 0.35)",
|
|
696
|
-
border: "1px solid rgba(
|
|
696
|
+
border: "1px solid rgba(28, 20, 24, 0.08)",
|
|
697
697
|
overflowX: "auto",
|
|
698
698
|
};
|
|
699
699
|
|
|
@@ -701,5 +701,5 @@ const blockCodeStyle: CSSProperties = {
|
|
|
701
701
|
fontFamily: "'JetBrains Mono', monospace",
|
|
702
702
|
fontSize: 12,
|
|
703
703
|
lineHeight: 1.5,
|
|
704
|
-
color: "#
|
|
704
|
+
color: "#2d1619",
|
|
705
705
|
};
|
|
@@ -64,7 +64,7 @@ function getNodeLabel(graphRef: GraphRef, nodeId: string): string {
|
|
|
64
64
|
|
|
65
65
|
function getNodeColor(graphRef: GraphRef, nodeId: string): string {
|
|
66
66
|
const attrs = graphRef.getNodeAttributes(nodeId) as NodeAttributes;
|
|
67
|
-
return String(attrs.baseColor || attrs.color || "#
|
|
67
|
+
return String(attrs.baseColor || attrs.color || "#0e8fb5");
|
|
68
68
|
}
|
|
69
69
|
|
|
70
70
|
function getNodeSemanticGroup(graphRef: GraphRef, nodeId: string): string {
|