@miadi/ncp-story-studio 0.3.0 → 0.5.0
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/PHASES.md
CHANGED
|
@@ -20,6 +20,28 @@
|
|
|
20
20
|
inside Miadi, with the seed projects (Catalyst of Changes and the other four narratives)
|
|
21
21
|
observable there. It is a target, not a stale reference.
|
|
22
22
|
|
|
23
|
+
## Status — 2026-09-15 (interface round)
|
|
24
|
+
|
|
25
|
+
The surface was refined against the prototype it is modelled on, which had a visual language the
|
|
26
|
+
rebuild had not carried across:
|
|
27
|
+
|
|
28
|
+
- **The graph draws cards again.** A node is a numbered mark with three tone rings that turn slowly;
|
|
29
|
+
above the line its card carries the appreciation, the perspective, the summary and the
|
|
30
|
+
illustration; below it a panel names each tone axis with its colour. The headless layout is
|
|
31
|
+
unchanged — this is presentation over the same geometry — so a server still draws the same SVG.
|
|
32
|
+
- **Beats are a timeline, not a list.** A gradient spine with the sequence circles sitting on it and
|
|
33
|
+
the cards alternating left and right, each card carrying its tone triad as A/S/T chips. Editing
|
|
34
|
+
opens in place and closes back into the same shape.
|
|
35
|
+
- **Every element view is a card** in the prototype's shapes: perspectives with a point-of-view
|
|
36
|
+
badge, players with an avatar and their visual and audio lines, storypoints with an appreciation
|
|
37
|
+
eyebrow and a function chip, dynamics with their vector.
|
|
38
|
+
- **One room, one light.** `app/ncp` uses the prototype's slate ground with indigo, purple and pink
|
|
39
|
+
accents rather than the portal's neutral tokens — the studio is its own room, and the rest of the
|
|
40
|
+
portal keeps its own.
|
|
41
|
+
- **The view is in the URL.** `?view=graph&beat=<id>` — a link can point at a story's graph, or at
|
|
42
|
+
one beat inside it, and a reload lands where it left.
|
|
43
|
+
- **The tab bar counts.** Each view says how much it holds.
|
|
44
|
+
|
|
23
45
|
## Status — 2026-09-12 (second round)
|
|
24
46
|
|
|
25
47
|
A third review — a parity audit against the prototype — returned 14 gaps. What closed:
|
|
@@ -39,8 +61,12 @@ A third review — a parity audit against the prototype — returned 14 gaps. Wh
|
|
|
39
61
|
- **A story can bring its own reading positions** — the persona registry is open, so the prototype's
|
|
40
62
|
guest voices (a wise owl, a data dolphin) can be registered without changing this package.
|
|
41
63
|
|
|
42
|
-
|
|
43
|
-
|
|
64
|
+
Both of those are now closed. A story's guest voices reach the prompt: asking *Tushell and the
|
|
65
|
+
Orchestra of Agents* about its first beat answers as 🧠 Mia · 🌸 Miette · 🎨 Ava8 · 🌊 Tushell ·
|
|
66
|
+
🦉 Wise Owl, and the Keeper Chronicles answer with 🌀 Miawapaskone and 🪶 Grandmother Yazhi. And the
|
|
67
|
+
studio answers for real by default — `NCP_AGENT_DISABLED=1` is the off switch, not an on switch.
|
|
68
|
+
A live call still needs the writer credential, because the port is publicly reachable and a model
|
|
69
|
+
call costs money; a browser without it gets the prompt instead of an error.
|
|
44
70
|
|
|
45
71
|
## Status — 2026-09-12
|
|
46
72
|
|
package/README.md
CHANGED
|
@@ -90,6 +90,11 @@ import { StoryGraph } from '@miadi/ncp-story-studio/graph/react'
|
|
|
90
90
|
<StoryGraph narrative={narrative} focusedBeatId={id} onBeatClick={setId} />
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
+
The line is navigable: drag the empty space to pan, arrow keys scroll it (shift for a longer
|
|
94
|
+
step, Home and End for the ends), and a press that starts on a beat still opens that beat.
|
|
95
|
+
`cards={false}` gives a compact strip — still a caption per beat, with its narrative function, its
|
|
96
|
+
summary and its three tone letters, so a long story stays readable at a glance.
|
|
97
|
+
|
|
93
98
|
## Store
|
|
94
99
|
|
|
95
100
|
```ts
|
|
@@ -7,11 +7,11 @@ export interface StoryGraphProps {
|
|
|
7
7
|
focusedBeatId?: string | null;
|
|
8
8
|
onBeatClick?: (beatId: string) => void;
|
|
9
9
|
options?: GraphLayoutOptions;
|
|
10
|
-
/** Show the
|
|
11
|
-
|
|
10
|
+
/** Show the card above each node (default true). Off gives a compact strip. */
|
|
11
|
+
cards?: boolean;
|
|
12
12
|
className?: string;
|
|
13
13
|
/** Rendered when the narrative has no beats. */
|
|
14
14
|
emptyMessage?: React.ReactNode;
|
|
15
15
|
}
|
|
16
|
-
export declare function StoryGraph({ narrative, focusedBeatId, onBeatClick, options,
|
|
16
|
+
export declare function StoryGraph({ narrative, focusedBeatId, onBeatClick, options, cards, className, emptyMessage, }: StoryGraphProps): React.ReactElement;
|
|
17
17
|
//# sourceMappingURL=story-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"story-graph.d.ts","sourceRoot":"","sources":["../../../src/graph/react/story-graph.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"story-graph.d.ts","sourceRoot":"","sources":["../../../src/graph/react/story-graph.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAqC,KAAK,kBAAkB,EAAkB,MAAM,aAAa,CAAA;AAExG,OAAO,KAAK,EAAE,SAAS,EAAa,MAAM,uBAAuB,CAAA;AAEjE,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,SAAS,CAAA;IACpB,wBAAwB;IACxB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC7B,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IACtC,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,+EAA+E;IAC/E,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gDAAgD;IAChD,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAC/B;AAkBD,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,aAAa,EACb,WAAW,EACX,OAAO,EACP,KAAY,EACZ,SAAS,EACT,YAAsD,GACvD,EAAE,eAAe,GAAG,KAAK,CAAC,YAAY,CAgNtC"}
|
|
@@ -1,26 +1,253 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
// The story lattice as
|
|
4
|
-
//
|
|
3
|
+
// The story lattice as the studio draws it: one horizontal line, a node per
|
|
4
|
+
// beat carrying its tone rings, the telling above the line and the tone triad
|
|
5
|
+
// below it. The geometry comes from the headless layout so a server can draw
|
|
6
|
+
// the same picture; everything here is presentation.
|
|
7
|
+
//
|
|
8
|
+
// It owns no data source and no URL: a narrative comes in, a beat id goes out.
|
|
5
9
|
import * as React from 'react';
|
|
6
10
|
import { layoutNarrative } from '../index.js';
|
|
7
|
-
|
|
8
|
-
|
|
11
|
+
import { TONE_FALLBACK } from '../tones.js';
|
|
12
|
+
const AXES = [
|
|
13
|
+
{ axis: 'abstraction', letter: 'A', label: 'Abstraction' },
|
|
14
|
+
{ axis: 'spatial', letter: 'S', label: 'Spatial' },
|
|
15
|
+
{ axis: 'temporal', letter: 'T', label: 'Temporal' },
|
|
16
|
+
];
|
|
17
|
+
/** Defaults that leave room for a card above and a tone panel below. */
|
|
18
|
+
const CARD_DEFAULTS = {
|
|
19
|
+
beatSpacing: 360,
|
|
20
|
+
centerY: 360,
|
|
21
|
+
height: 720,
|
|
22
|
+
nodeRadius: 26,
|
|
23
|
+
ringGap: 10,
|
|
24
|
+
paddingX: 200,
|
|
25
|
+
};
|
|
26
|
+
export function StoryGraph({ narrative, focusedBeatId, onBeatClick, options, cards = true, className, emptyMessage = 'This narrative has no storybeats yet.', }) {
|
|
27
|
+
const resolved = React.useMemo(() => ({ ...(cards ? CARD_DEFAULTS : {}), ...options }), [cards, options]);
|
|
28
|
+
const layout = React.useMemo(() => layoutNarrative(narrative, resolved), [narrative, resolved]);
|
|
29
|
+
const beatsById = React.useMemo(() => {
|
|
30
|
+
const map = new Map();
|
|
31
|
+
for (const beat of narrative.subtext.storybeats)
|
|
32
|
+
map.set(beat.id, beat);
|
|
33
|
+
return map;
|
|
34
|
+
}, [narrative]);
|
|
35
|
+
const perspectiveName = React.useCallback((beatId) => {
|
|
36
|
+
const ref = beatsById.get(beatId)?.perspectives?.[0];
|
|
37
|
+
if (!ref)
|
|
38
|
+
return undefined;
|
|
39
|
+
const perspective = narrative.subtext.perspectives.find((candidate) => candidate.id === ref.perspective_id);
|
|
40
|
+
return perspective?.summary ?? perspective?.throughline ?? perspective?.author_structural_pov;
|
|
41
|
+
}, [beatsById, narrative]);
|
|
42
|
+
const scroller = React.useRef(null);
|
|
43
|
+
const drag = React.useRef(null);
|
|
44
|
+
const [dragging, setDragging] = React.useState(false);
|
|
45
|
+
// Dragging the empty space moves the line. A beat is a button, so a press
|
|
46
|
+
// that starts on one is left alone; anywhere else is a grab.
|
|
47
|
+
const onPointerDown = (event) => {
|
|
48
|
+
if (!scroller.current)
|
|
49
|
+
return;
|
|
50
|
+
if (event.target.closest('button, a, input, select, textarea'))
|
|
51
|
+
return;
|
|
52
|
+
drag.current = {
|
|
53
|
+
pointerId: event.pointerId,
|
|
54
|
+
startX: event.clientX,
|
|
55
|
+
startY: event.clientY,
|
|
56
|
+
scrollLeft: scroller.current.scrollLeft,
|
|
57
|
+
};
|
|
58
|
+
setDragging(true);
|
|
59
|
+
scroller.current.setPointerCapture(event.pointerId);
|
|
60
|
+
};
|
|
61
|
+
const onPointerMove = (event) => {
|
|
62
|
+
const state = drag.current;
|
|
63
|
+
if (!state || !scroller.current || state.pointerId !== event.pointerId)
|
|
64
|
+
return;
|
|
65
|
+
scroller.current.scrollLeft = state.scrollLeft - (event.clientX - state.startX);
|
|
66
|
+
};
|
|
67
|
+
const endDrag = (event) => {
|
|
68
|
+
const state = drag.current;
|
|
69
|
+
if (!state || state.pointerId !== event.pointerId)
|
|
70
|
+
return;
|
|
71
|
+
scroller.current?.releasePointerCapture(event.pointerId);
|
|
72
|
+
drag.current = null;
|
|
73
|
+
setDragging(false);
|
|
74
|
+
};
|
|
75
|
+
const onKeyDown = (event) => {
|
|
76
|
+
if (!scroller.current)
|
|
77
|
+
return;
|
|
78
|
+
const step = event.shiftKey ? 600 : 200;
|
|
79
|
+
if (event.key === 'ArrowRight') {
|
|
80
|
+
scroller.current.scrollLeft += step;
|
|
81
|
+
event.preventDefault();
|
|
82
|
+
}
|
|
83
|
+
else if (event.key === 'ArrowLeft') {
|
|
84
|
+
scroller.current.scrollLeft -= step;
|
|
85
|
+
event.preventDefault();
|
|
86
|
+
}
|
|
87
|
+
else if (event.key === 'Home') {
|
|
88
|
+
scroller.current.scrollLeft = 0;
|
|
89
|
+
event.preventDefault();
|
|
90
|
+
}
|
|
91
|
+
else if (event.key === 'End') {
|
|
92
|
+
scroller.current.scrollLeft = scroller.current.scrollWidth;
|
|
93
|
+
event.preventDefault();
|
|
94
|
+
}
|
|
95
|
+
};
|
|
9
96
|
if (layout.nodes.length === 0) {
|
|
10
97
|
return (_jsx("div", { className: className, "data-ncp-graph": "empty", style: { padding: '2rem', color: '#94a3b8' }, children: emptyMessage }));
|
|
11
98
|
}
|
|
12
|
-
|
|
99
|
+
const { centerY, width, height } = layout;
|
|
100
|
+
return (_jsxs("div", { className: className, "data-ncp-graph": "canvas", style: { position: 'relative' }, children: [_jsx("div", { ref: scroller, className: "ncp-graph-scroll", role: "region", "aria-label": `Story lattice: ${layout.nodes.length} beats. Drag to pan, arrow keys to scroll.`, tabIndex: 0, onPointerDown: onPointerDown, onPointerMove: onPointerMove, onPointerUp: endDrag, onPointerCancel: endDrag, onKeyDown: onKeyDown, style: {
|
|
101
|
+
overflowX: 'auto',
|
|
102
|
+
overflowY: 'hidden',
|
|
103
|
+
cursor: dragging ? 'grabbing' : 'grab',
|
|
104
|
+
touchAction: 'pan-x',
|
|
105
|
+
outline: 'none',
|
|
106
|
+
}, children: _jsxs("div", { style: { position: 'relative', width, height }, children: [_jsxs("svg", { width: width, height: height, style: { position: 'absolute', inset: 0, pointerEvents: 'none' }, "aria-hidden": "true", children: [_jsxs("defs", { children: [_jsxs("linearGradient", { id: "ncp-timeline", x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: [_jsx("stop", { offset: "0%", stopColor: "#4f46e5", stopOpacity: "0" }), _jsx("stop", { offset: "10%", stopColor: "#8b5cf6", stopOpacity: "0.5" }), _jsx("stop", { offset: "90%", stopColor: "#ec4899", stopOpacity: "0.5" }), _jsx("stop", { offset: "100%", stopColor: "#ec4899", stopOpacity: "0" })] }), _jsxs("filter", { id: "ncp-glow", children: [_jsx("feGaussianBlur", { stdDeviation: "2.5", result: "blur" }), _jsxs("feMerge", { children: [_jsx("feMergeNode", { in: "blur" }), _jsx("feMergeNode", { in: "SourceGraphic" })] })] })] }), _jsx("path", { d: `M 0,${centerY} L ${width},${centerY}`, stroke: "url(#ncp-timeline)", strokeWidth: 2, fill: "none", filter: "url(#ncp-glow)" }), cards
|
|
107
|
+
? layout.nodes.map((node) => (_jsxs("g", { stroke: "#475569", strokeWidth: 1, strokeDasharray: "4 4", opacity: 0.3, children: [_jsx("path", { d: `M ${node.x},${node.y} L ${node.x},${node.y - 110}`, fill: "none" }), _jsx("path", { d: `M ${node.x},${node.y} L ${node.x},${node.y + 110}`, fill: "none" })] }, `stem-${node.id}`)))
|
|
108
|
+
: layout.links.map((link) => (_jsx("path", { d: link.path, fill: "none", stroke: "currentColor", strokeOpacity: 0.35, strokeWidth: 2 }, link.id)))] }), layout.nodes.map((node) => (_jsx(BeatMark, { node: node, focused: focusedBeatId === node.id, cards: cards, perspective: perspectiveName(node.id), onClick: onBeatClick }, node.id))), _jsx("div", { "aria-hidden": "true", style: {
|
|
109
|
+
position: 'absolute',
|
|
110
|
+
left: width - 40,
|
|
111
|
+
top: centerY,
|
|
112
|
+
transform: 'translate(-50%, -50%)',
|
|
113
|
+
width: 40,
|
|
114
|
+
height: 40,
|
|
115
|
+
borderRadius: '9999px',
|
|
116
|
+
border: '2px dashed #475569',
|
|
117
|
+
opacity: 0.4,
|
|
118
|
+
display: 'flex',
|
|
119
|
+
alignItems: 'center',
|
|
120
|
+
justifyContent: 'center',
|
|
121
|
+
color: '#94a3b8',
|
|
122
|
+
fontSize: 14,
|
|
123
|
+
}, children: "\u25B8" })] }) }), _jsx("style", { children: `
|
|
124
|
+
@keyframes ncp-ring-spin { to { transform: rotate(360deg); } }
|
|
125
|
+
[data-ncp-ring="outer"] { animation: ncp-ring-spin 24s linear infinite; transform-origin: 50% 50%; }
|
|
126
|
+
[data-ncp-ring="middle"] { animation: ncp-ring-spin 18s linear infinite reverse; transform-origin: 50% 50%; }
|
|
127
|
+
@media (prefers-reduced-motion: reduce) {
|
|
128
|
+
[data-ncp-ring] { animation: none; }
|
|
129
|
+
}
|
|
130
|
+
.ncp-graph-scroll::-webkit-scrollbar { height: 8px; }
|
|
131
|
+
.ncp-graph-scroll::-webkit-scrollbar-track { background: #0f172a; }
|
|
132
|
+
.ncp-graph-scroll::-webkit-scrollbar-thumb { background: #334155; border-radius: 4px; }
|
|
133
|
+
` })] }));
|
|
13
134
|
}
|
|
14
|
-
function
|
|
135
|
+
function BeatMark({ node, focused, cards, perspective, onClick }) {
|
|
15
136
|
const interactive = typeof onClick === 'function';
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
137
|
+
const ringColors = node.ringColors;
|
|
138
|
+
const diameter = node.ringRadii[2] * 2 + 16;
|
|
139
|
+
return (_jsxs("div", { "data-ncp-beat": node.id, "data-ncp-beat-focused": focused ? 'true' : undefined, style: { position: 'absolute', left: node.x, top: node.y, width: 0, height: 0 }, children: [cards ? (_jsxs("article", { style: {
|
|
140
|
+
position: 'absolute',
|
|
141
|
+
left: '50%',
|
|
142
|
+
bottom: 52,
|
|
143
|
+
transform: 'translateX(-50%)',
|
|
144
|
+
width: 300,
|
|
145
|
+
borderRadius: 12,
|
|
146
|
+
border: `1px solid ${focused ? '#6366f1' : '#1e293b'}`,
|
|
147
|
+
background: 'rgba(15, 23, 42, 0.92)',
|
|
148
|
+
padding: '16px',
|
|
149
|
+
boxShadow: focused ? '0 0 24px rgba(99,102,241,0.18)' : '0 10px 30px rgba(0,0,0,0.35)',
|
|
150
|
+
overflow: 'hidden',
|
|
151
|
+
}, children: [_jsx("span", { "aria-hidden": "true", style: {
|
|
152
|
+
position: 'absolute',
|
|
153
|
+
top: 0,
|
|
154
|
+
left: 0,
|
|
155
|
+
width: '100%',
|
|
156
|
+
height: 3,
|
|
157
|
+
background: 'linear-gradient(90deg,#6366f1,#a855f7,#ec4899)',
|
|
158
|
+
opacity: 0.5,
|
|
159
|
+
} }), _jsxs("div", { style: { display: 'flex', justifyContent: 'space-between', gap: 8, marginBottom: 8 }, children: [_jsx("span", { style: {
|
|
160
|
+
fontSize: 10,
|
|
161
|
+
textTransform: 'uppercase',
|
|
162
|
+
letterSpacing: '0.12em',
|
|
163
|
+
color: '#64748b',
|
|
164
|
+
border: '1px solid #1e293b',
|
|
165
|
+
borderRadius: 4,
|
|
166
|
+
padding: '2px 6px',
|
|
167
|
+
}, children: node.appreciation }), perspective ? (_jsx("span", { style: { fontSize: 10, textTransform: 'uppercase', color: '#818cf8' }, children: perspective })) : null] }), _jsx("h3", { style: { fontSize: 16, fontWeight: 700, color: '#e2e8f0', margin: '0 0 6px', lineHeight: 1.35 }, children: node.summary ?? node.title }), node.illustration ? (_jsxs("p", { style: { fontSize: 12, fontStyle: 'italic', color: '#94a3b8', margin: 0, lineHeight: 1.5 }, children: ["\u201C", node.illustration, "\u201D"] })) : null] })) : null, _jsx("button", { type: interactive ? 'button' : undefined, onClick: interactive ? () => onClick?.(node.id) : undefined, disabled: !interactive, "aria-label": node.description, title: node.description, style: {
|
|
168
|
+
position: 'absolute',
|
|
169
|
+
left: '50%',
|
|
170
|
+
top: '50%',
|
|
171
|
+
transform: 'translate(-50%, -50%)',
|
|
172
|
+
width: diameter,
|
|
173
|
+
height: diameter,
|
|
174
|
+
border: 0,
|
|
175
|
+
background: 'transparent',
|
|
176
|
+
padding: 0,
|
|
177
|
+
cursor: interactive ? 'pointer' : 'default',
|
|
178
|
+
color: 'inherit',
|
|
179
|
+
}, children: _jsxs("svg", { width: diameter, height: diameter, viewBox: "0 0 100 100", "aria-hidden": "true", children: [focused ? (_jsx("circle", { cx: "50", cy: "50", r: "48", fill: "none", stroke: "#ffd700", strokeWidth: "2", strokeDasharray: "4 4" })) : null, _jsx("circle", { "data-ncp-ring": "outer", cx: "50", cy: "50", r: "44", fill: "none", stroke: ringColors.temporal, strokeWidth: "2", strokeDasharray: "20 40", opacity: node.hasTones ? 0.5 : 0.2 }), _jsx("circle", { "data-ncp-ring": "middle", cx: "50", cy: "50", r: "36", fill: "none", stroke: ringColors.spatial, strokeWidth: "2", strokeDasharray: "40 20", opacity: node.hasTones ? 0.6 : 0.2 }), _jsx("circle", { cx: "50", cy: "50", r: "26", fill: node.hasTones ? ringColors.abstraction : TONE_FALLBACK, fillOpacity: node.hasTones ? 0.16 : 0.06, stroke: ringColors.abstraction, strokeWidth: "3", opacity: node.hasTones ? 0.9 : 0.4 }), _jsx("text", { x: "50", y: "56", textAnchor: "middle", fontFamily: "ui-monospace, monospace", fontSize: "20", fontWeight: "700", fill: "currentColor", children: node.sequence })] }) }), !cards ? (_jsxs("div", { style: {
|
|
180
|
+
position: 'absolute',
|
|
181
|
+
left: '50%',
|
|
182
|
+
top: 46,
|
|
183
|
+
transform: 'translateX(-50%)',
|
|
184
|
+
width: 180,
|
|
185
|
+
textAlign: 'center',
|
|
186
|
+
pointerEvents: 'none',
|
|
187
|
+
}, children: [_jsx("p", { style: {
|
|
188
|
+
margin: 0,
|
|
189
|
+
fontSize: 11,
|
|
190
|
+
fontWeight: 600,
|
|
191
|
+
color: '#cbd5e1',
|
|
192
|
+
textTransform: 'capitalize',
|
|
193
|
+
overflow: 'hidden',
|
|
194
|
+
textOverflow: 'ellipsis',
|
|
195
|
+
whiteSpace: 'nowrap',
|
|
196
|
+
}, children: node.title }), node.summary ? (_jsx("p", { style: {
|
|
197
|
+
margin: '2px 0 0',
|
|
198
|
+
fontSize: 10,
|
|
199
|
+
lineHeight: 1.35,
|
|
200
|
+
color: '#64748b',
|
|
201
|
+
display: '-webkit-box',
|
|
202
|
+
WebkitLineClamp: 2,
|
|
203
|
+
WebkitBoxOrient: 'vertical',
|
|
204
|
+
overflow: 'hidden',
|
|
205
|
+
}, children: node.summary })) : null, _jsx("p", { style: { margin: '6px 0 0', display: 'flex', gap: 4, justifyContent: 'center' }, children: AXES.map(({ axis, letter }) => (_jsx("span", { title: `${axis}: ${node.tones?.[axis] ?? 'unset'}`, style: {
|
|
206
|
+
fontSize: 9,
|
|
207
|
+
fontWeight: 700,
|
|
208
|
+
lineHeight: '14px',
|
|
209
|
+
width: 14,
|
|
210
|
+
height: 14,
|
|
211
|
+
borderRadius: 4,
|
|
212
|
+
color: node.tones?.[axis] ? '#020617' : '#475569',
|
|
213
|
+
background: node.tones?.[axis] ? ringColors[axis] : 'transparent',
|
|
214
|
+
border: `1px solid ${node.tones?.[axis] ? ringColors[axis] : '#1e293b'}`,
|
|
215
|
+
}, children: letter }, axis))) })] })) : null, cards ? (_jsx("aside", { style: {
|
|
216
|
+
position: 'absolute',
|
|
217
|
+
left: '50%',
|
|
218
|
+
top: 52,
|
|
219
|
+
transform: 'translateX(-50%)',
|
|
220
|
+
width: 260,
|
|
221
|
+
borderRadius: 12,
|
|
222
|
+
border: '1px solid #1e293b',
|
|
223
|
+
background: 'rgba(2, 6, 23, 0.92)',
|
|
224
|
+
padding: '12px 14px',
|
|
225
|
+
display: 'grid',
|
|
226
|
+
gap: 10,
|
|
227
|
+
}, children: AXES.map(({ axis, letter, label }) => {
|
|
228
|
+
const value = node.tones?.[axis];
|
|
229
|
+
const color = ringColors[axis];
|
|
230
|
+
return (_jsxs("div", { style: { display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 8 }, children: [_jsxs("span", { style: { display: 'flex', alignItems: 'center', gap: 8 }, children: [_jsx("span", { style: {
|
|
231
|
+
width: 22,
|
|
232
|
+
height: 22,
|
|
233
|
+
borderRadius: 6,
|
|
234
|
+
border: '1px solid #1e293b',
|
|
235
|
+
background: '#0f172a',
|
|
236
|
+
color,
|
|
237
|
+
fontSize: 11,
|
|
238
|
+
fontWeight: 700,
|
|
239
|
+
display: 'flex',
|
|
240
|
+
alignItems: 'center',
|
|
241
|
+
justifyContent: 'center',
|
|
242
|
+
}, children: letter }), _jsxs("span", { children: [_jsx("span", { style: {
|
|
243
|
+
display: 'block',
|
|
244
|
+
fontSize: 9,
|
|
245
|
+
textTransform: 'uppercase',
|
|
246
|
+
letterSpacing: '0.1em',
|
|
247
|
+
color: '#64748b',
|
|
248
|
+
lineHeight: 1,
|
|
249
|
+
marginBottom: 2,
|
|
250
|
+
}, children: label }), _jsx("span", { style: { fontSize: 12, color: '#cbd5e1', textTransform: 'capitalize' }, children: value ?? '—' })] })] }), _jsx("span", { style: { height: 4, width: 32, borderRadius: 9999, background: '#1e293b', overflow: 'hidden' }, children: _jsx("span", { style: { display: 'block', height: '100%', width: value ? '100%' : '20%', background: color } }) })] }, axis));
|
|
251
|
+
}) })) : null] }));
|
|
25
252
|
}
|
|
26
253
|
//# sourceMappingURL=story-graph.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"story-graph.js","sourceRoot":"","sources":["../../../src/graph/react/story-graph.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,6EAA6E;AAC7E,4CAA4C;AAC5C,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,eAAe,EAA6D,MAAM,aAAa,CAAA;AAgBxG,MAAM,UAAU,UAAU,CAAC,EACzB,SAAS,EACT,aAAa,EACb,WAAW,EACX,OAAO,EACP,MAAM,GAAG,IAAI,EACb,SAAS,EACT,YAAY,GAAG,uCAAuC,GACtC;IAChB,MAAM,MAAM,GAAgB,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;IAE1G,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,oBAAiB,OAAO,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,YAC3F,YAAY,GACT,CACP,CAAA;IACH,CAAC;IAED,OAAO,CACL,cAAK,SAAS,EAAE,SAAS,oBAAiB,QAAQ,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,YAClG,eACE,OAAO,EAAE,OAAO,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAC/C,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,IAAI,EAAC,KAAK,gBACE,qBAAqB,SAAS,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,MAAM,QAAQ,aAEhF,oCAAwB,OAAO,YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC1B,eAEE,CAAC,EAAE,IAAI,CAAC,IAAI,EACZ,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,aAAa,EAAE,IAAI,EACnB,WAAW,EAAE,CAAC,IALT,IAAI,CAAC,EAAE,CAMZ,CACH,CAAC,GACA,EACJ,oCAAwB,OAAO,YAC5B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC1B,KAAC,QAAQ,IAEP,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,aAAa,KAAK,IAAI,CAAC,EAAE,EAClC,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,WAAW,IAJf,IAAI,CAAC,EAAE,CAKZ,CACH,CAAC,GACA,IACA,GACF,CACP,CAAA;AACH,CAAC;AASD,SAAS,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAiB;IACjE,MAAM,WAAW,GAAG,OAAO,OAAO,KAAK,UAAU,CAAA;IACjD,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,SAAS,CAAA;IACnC,OAAO,CACL,8BACiB,IAAI,CAAC,EAAE,2BACC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACnD,SAAS,EAAE,aAAa,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,EAC3C,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,EACtD,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EACxC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBACzB,IAAI,CAAC,WAAW,EAC5B,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAC3D,SAAS,EACP,WAAW;YACT,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACR,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;oBAC/C,KAAK,CAAC,cAAc,EAAE,CAAA;oBACtB,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBACpB,CAAC;YACH,CAAC;YACH,CAAC,CAAC,SAAS,aAGf,0BAAQ,IAAI,CAAC,WAAW,GAAS,EAChC,OAAO,CAAC,CAAC,CAAC,iBAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,EAAE,eAAe,EAAC,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,EAC3G,iBAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,GAAI,EACnG,iBAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,GAAI,EACnG,iBACE,CAAC,EAAE,EAAE,EACL,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EACjC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EACvC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,WAAW,EACnC,WAAW,EAAE,CAAC,GACd,EACF,eAAM,UAAU,EAAC,QAAQ,EAAC,CAAC,EAAE,CAAC,EAAE,UAAU,EAAC,yBAAyB,EAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAC,cAAc,YACnG,IAAI,CAAC,QAAQ,GACT,EACN,MAAM,CAAC,CAAC,CAAC,CACR,eAAM,UAAU,EAAC,QAAQ,EAAC,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAC,cAAc,EAAC,WAAW,EAAE,IAAI,YACtF,IAAI,CAAC,KAAK,GACN,CACR,CAAC,CAAC,CAAC,IAAI,IACN,CACL,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"story-graph.js","sourceRoot":"","sources":["../../../src/graph/react/story-graph.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@miadi/ncp-story-studio",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Narrative Context Protocol story studio as consumable modules: canonical NCP types and a zero-dependency validator, a headless story-lattice layout with a React renderer, story-project storage providers (JSON files and Neon Postgres), the agent link protocol, and the terminology and example data behind the teaching surface.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "Miadi",
|