diff --git a/src/components/admin/narrative-flow/BooleanNode.tsx b/src/components/admin/narrative-flow/BooleanNode.tsx
index a8cd6b3..c30948c 100644
--- a/src/components/admin/narrative-flow/BooleanNode.tsx
+++ b/src/components/admin/narrative-flow/BooleanNode.tsx
@@ -8,7 +8,7 @@ export function BooleanNode({ data }: NodeProps) {
return (
-
+
@@ -18,7 +18,7 @@ export function BooleanNode({ data }: NodeProps) {
{d.description || "Boolean flag"}
-
+
);
}
diff --git a/src/components/admin/narrative-flow/ChoiceNode.tsx b/src/components/admin/narrative-flow/ChoiceNode.tsx
index 8db2c66..8e618e9 100644
--- a/src/components/admin/narrative-flow/ChoiceNode.tsx
+++ b/src/components/admin/narrative-flow/ChoiceNode.tsx
@@ -10,13 +10,13 @@ export function ChoiceNode({ data }: NodeProps) {
return (
-
+
{d.question || "Untitled Choice"}
-
+
{options.length === 0 ? (
diff --git a/src/components/admin/narrative-flow/DateNode.tsx b/src/components/admin/narrative-flow/DateNode.tsx
index 5745da1..2a3801a 100644
--- a/src/components/admin/narrative-flow/DateNode.tsx
+++ b/src/components/admin/narrative-flow/DateNode.tsx
@@ -8,7 +8,7 @@ export function DateNode({ data }: NodeProps) {
return (
-
+
@@ -18,7 +18,7 @@ export function DateNode({ data }: NodeProps) {
{d.description || "Date value"}
-
+
);
}
diff --git a/src/components/admin/narrative-flow/NarrativeBeatNode.tsx b/src/components/admin/narrative-flow/NarrativeBeatNode.tsx
index 8b690af..91ce415 100644
--- a/src/components/admin/narrative-flow/NarrativeBeatNode.tsx
+++ b/src/components/admin/narrative-flow/NarrativeBeatNode.tsx
@@ -8,7 +8,7 @@ export function NarrativeBeatNode({ data }: NodeProps) {
return (
-
+
@@ -19,7 +19,7 @@ export function NarrativeBeatNode({ data }: NodeProps) {
{d.text || "No description."}
-
+
);
}
diff --git a/src/components/admin/narrative-flow/NarrativeFlowEditor.tsx b/src/components/admin/narrative-flow/NarrativeFlowEditor.tsx
index 93064d6..c61c6f7 100644
--- a/src/components/admin/narrative-flow/NarrativeFlowEditor.tsx
+++ b/src/components/admin/narrative-flow/NarrativeFlowEditor.tsx
@@ -267,13 +267,30 @@ export function NarrativeFlowEditor() {
- n.type === "choice"
- ? "#d97706"
- : n.type === "outcome"
- ? "#10b981"
- : "#3b82f6"
- }
+ nodeColor={(n) => {
+ switch (n.type) {
+ case "choice":
+ return "#d97706"; // amber
+ case "outcome":
+ return "#10b981"; // emerald
+ case "narrativeBeat":
+ return "#3b82f6"; // blue
+ case "wait":
+ return "#facc15"; // yellow
+ case "number":
+ return "#a855f7"; // purple
+ case "string":
+ return "#14b8a6"; // teal
+ case "random":
+ return "#ec4899"; // pink
+ case "boolean":
+ return "#34d399"; // light green
+ case "date":
+ return "#06b6d4"; // cyan
+ default:
+ return "#6366f1"; // indigo
+ }
+ }}
/>
diff --git a/src/components/admin/narrative-flow/NumberNode.tsx b/src/components/admin/narrative-flow/NumberNode.tsx
index fadf85d..6247638 100644
--- a/src/components/admin/narrative-flow/NumberNode.tsx
+++ b/src/components/admin/narrative-flow/NumberNode.tsx
@@ -8,7 +8,7 @@ export function NumberNode({ data }: NodeProps) {
return (
-
+
@@ -18,7 +18,7 @@ export function NumberNode({ data }: NodeProps) {
{d.description || "Numeric value"}
-
+
);
}
diff --git a/src/components/admin/narrative-flow/OutcomeNode.tsx b/src/components/admin/narrative-flow/OutcomeNode.tsx
index 1ef4043..a5b8cd1 100644
--- a/src/components/admin/narrative-flow/OutcomeNode.tsx
+++ b/src/components/admin/narrative-flow/OutcomeNode.tsx
@@ -14,13 +14,13 @@ export function OutcomeNode({ data }: NodeProps) {
return (
-
+
{d.title || "Untitled Outcome"}
-
+
{d.text || "No description."}
diff --git a/src/components/admin/narrative-flow/RandomNode.tsx b/src/components/admin/narrative-flow/RandomNode.tsx
index 27f8421..b560456 100644
--- a/src/components/admin/narrative-flow/RandomNode.tsx
+++ b/src/components/admin/narrative-flow/RandomNode.tsx
@@ -8,7 +8,7 @@ export function RandomNode({ data }: NodeProps) {
return (
-
+
@@ -18,7 +18,7 @@ export function RandomNode({ data }: NodeProps) {
{d.description || "Random number generator"}
-
+
);
}
diff --git a/src/components/admin/narrative-flow/StringNode.tsx b/src/components/admin/narrative-flow/StringNode.tsx
index 43eaed5..c906479 100644
--- a/src/components/admin/narrative-flow/StringNode.tsx
+++ b/src/components/admin/narrative-flow/StringNode.tsx
@@ -8,7 +8,7 @@ export function StringNode({ data }: NodeProps) {
return (
-
+
@@ -18,7 +18,7 @@ export function StringNode({ data }: NodeProps) {
{d.description || "String value"}
-
+
);
}
diff --git a/src/components/admin/narrative-flow/WaitNode.tsx b/src/components/admin/narrative-flow/WaitNode.tsx
index dffdf5b..0fa546c 100644
--- a/src/components/admin/narrative-flow/WaitNode.tsx
+++ b/src/components/admin/narrative-flow/WaitNode.tsx
@@ -8,7 +8,7 @@ export function WaitNode({ data }: NodeProps) {
return (
-
+
@@ -18,7 +18,7 @@ export function WaitNode({ data }: NodeProps) {
{d.input !== undefined ? `Input: ${String(d.input).substring(0, 50)}${String(d.input).length > 50 ? "..." : ""}` : "No input"}
-
+
);
}