diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 3e56d752..fdab7ac4 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1435,7 +1435,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -1913,7 +1912,6 @@ "integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -2053,7 +2051,6 @@ "integrity": "sha512-ITcnkFeR3+fI8P1wMgItjGrR10170d8auB4EpMLPqmx6uxElH3a/hHGQabSHKdqd4FXWO1nFIp9rRn7JQ34ACQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -2128,7 +2125,6 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.25.tgz", "integrity": "sha512-YLVdgv2K13WJ6n+kD5owehKtEXwdwXuj2TTyJMsO7pSeKw2bfRNZGjhB7YzrpbMYj5b5QsUebHpOqR3R3ziy/g==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.25", "@vue/compiler-sfc": "3.5.25", diff --git a/frontend/src/components/CharacterCard.vue b/frontend/src/components/CharacterCard.vue new file mode 100644 index 00000000..fe40f436 --- /dev/null +++ b/frontend/src/components/CharacterCard.vue @@ -0,0 +1,91 @@ + + + + + diff --git a/frontend/src/components/StoryBeat.vue b/frontend/src/components/StoryBeat.vue new file mode 100644 index 00000000..07d1163f --- /dev/null +++ b/frontend/src/components/StoryBeat.vue @@ -0,0 +1,72 @@ + + + + + diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js index 62d23201..4cefb536 100644 --- a/frontend/src/router/index.js +++ b/frontend/src/router/index.js @@ -5,6 +5,7 @@ import SimulationView from '../views/SimulationView.vue' import SimulationRunView from '../views/SimulationRunView.vue' import ReportView from '../views/ReportView.vue' import InteractionView from '../views/InteractionView.vue' +import StoryTimelineView from '../views/StoryTimelineView.vue' const routes = [ { @@ -41,6 +42,12 @@ const routes = [ name: 'Interaction', component: InteractionView, props: true + }, + { + path: '/story/:simulationId', + name: 'Story', + component: StoryTimelineView, + props: true } ] diff --git a/frontend/src/views/StoryTimelineView.vue b/frontend/src/views/StoryTimelineView.vue new file mode 100644 index 00000000..8f080711 --- /dev/null +++ b/frontend/src/views/StoryTimelineView.vue @@ -0,0 +1,242 @@ + + + + +