yarn-spinner-runner-ts 0.1.4-a → 0.1.4-c
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/dist/markup/parser.js +15 -2
- package/dist/markup/parser.js.map +1 -1
- package/dist/react/DialogueExample.js +4 -4
- package/dist/react/DialogueExample.js.map +1 -1
- package/dist/react/DialogueView.d.ts +2 -1
- package/dist/react/DialogueView.js +29 -17
- package/dist/react/DialogueView.js.map +1 -1
- package/dist/react/MarkupRenderer.js +1 -1
- package/dist/react/MarkupRenderer.js.map +1 -1
- package/dist/react/useYarnRunner.js +60 -16
- package/dist/react/useYarnRunner.js.map +1 -1
- package/dist/tests/dialogue_view.test.d.ts +1 -0
- package/dist/tests/dialogue_view.test.js +18 -0
- package/dist/tests/dialogue_view.test.js.map +1 -0
- package/dist/tests/markup.test.js +7 -0
- package/dist/tests/markup.test.js.map +1 -1
- package/docs/markup.md +33 -33
- package/eslint.config.cjs +39 -39
- package/package.json +1 -1
- package/src/markup/parser.ts +56 -43
- package/src/react/DialogueExample.tsx +10 -9
- package/src/react/DialogueView.tsx +312 -297
- package/src/react/MarkupRenderer.tsx +1 -2
- package/src/react/useYarnRunner.tsx +101 -46
- package/src/tests/dialogue_view.test.tsx +26 -0
- package/src/tests/markup.test.ts +17 -1
package/dist/markup/parser.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
const DEFAULT_HTML_TAGS = new Set(["b", "em", "small", "strong", "sub", "sup", "ins", "del", "mark"]);
|
|
1
|
+
const DEFAULT_HTML_TAGS = new Set(["b", "em", "small", "strong", "sub", "sup", "ins", "del", "mark", "br"]);
|
|
2
|
+
const SELF_CLOSING_TAGS = new Set(["br"]);
|
|
2
3
|
const SELF_CLOSING_SPACE_REGEX = /\s+\/$/;
|
|
3
4
|
const ATTRIBUTE_REGEX = /^([a-zA-Z_][a-zA-Z0-9_-]*)(?:\s*=\s*(?:"([^"]*)"|'([^']*)'|([^\s"']+)))?/;
|
|
4
5
|
export function parseMarkup(input) {
|
|
@@ -102,7 +103,8 @@ export function parseMarkup(input) {
|
|
|
102
103
|
properties[key] = value;
|
|
103
104
|
rest = rest.slice(attrMatch[0].length).trim();
|
|
104
105
|
}
|
|
105
|
-
|
|
106
|
+
const finalKind = kind === "self" || SELF_CLOSING_TAGS.has(name) ? "self" : kind;
|
|
107
|
+
return { kind: finalKind, name, properties };
|
|
106
108
|
};
|
|
107
109
|
const parseAttributeValue = (raw) => {
|
|
108
110
|
const trimmed = raw.trim();
|
|
@@ -118,6 +120,9 @@ export function parseMarkup(input) {
|
|
|
118
120
|
return trimmed;
|
|
119
121
|
};
|
|
120
122
|
const handleSelfClosing = (tag) => {
|
|
123
|
+
if (tag.name === "br") {
|
|
124
|
+
appendChar("\n");
|
|
125
|
+
}
|
|
121
126
|
const wrapper = {
|
|
122
127
|
name: tag.name,
|
|
123
128
|
type: DEFAULT_HTML_TAGS.has(tag.name) ? "default" : "custom",
|
|
@@ -191,6 +196,10 @@ export function parseMarkup(input) {
|
|
|
191
196
|
}
|
|
192
197
|
// closing tag
|
|
193
198
|
if (stack.length === 0) {
|
|
199
|
+
if (SELF_CLOSING_TAGS.has(parsed.name)) {
|
|
200
|
+
i = closeIndex + 1;
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
194
203
|
appendLiteral(originalText);
|
|
195
204
|
i = closeIndex + 1;
|
|
196
205
|
continue;
|
|
@@ -202,6 +211,10 @@ export function parseMarkup(input) {
|
|
|
202
211
|
i = closeIndex + 1;
|
|
203
212
|
continue;
|
|
204
213
|
}
|
|
214
|
+
if (SELF_CLOSING_TAGS.has(parsed.name)) {
|
|
215
|
+
i = closeIndex + 1;
|
|
216
|
+
continue;
|
|
217
|
+
}
|
|
205
218
|
// mismatched closing; treat as literal
|
|
206
219
|
appendLiteral(originalText);
|
|
207
220
|
i = closeIndex + 1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/markup/parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../src/markup/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,8 +7,8 @@ import { parseScenes } from "../scene/parser.js";
|
|
|
7
7
|
const DEFAULT_YARN = `title: Start
|
|
8
8
|
scene: scene1
|
|
9
9
|
---
|
|
10
|
-
Narrator: {
|
|
11
|
-
Narrator:
|
|
10
|
+
Narrator: Welcome to [b]yarn-spinner-ts[/b], {$playerName}!
|
|
11
|
+
Narrator: Current street cred: {$reputation}
|
|
12
12
|
npc: This is a dialogue system powered by Yarn Spinner.
|
|
13
13
|
Narrator: Click anywhere to continue, or choose an option below.
|
|
14
14
|
-> Start the adventure &css{backgroundColor: #4a9eff; color: white;}
|
|
@@ -43,7 +43,7 @@ actors:
|
|
|
43
43
|
export function DialogueExample() {
|
|
44
44
|
const [yarnText] = useState(DEFAULT_YARN);
|
|
45
45
|
const [error, setError] = useState(null);
|
|
46
|
-
const enableTypingAnimation =
|
|
46
|
+
const enableTypingAnimation = false;
|
|
47
47
|
const scenes = useMemo(() => {
|
|
48
48
|
try {
|
|
49
49
|
return parseScenes(DEFAULT_SCENES);
|
|
@@ -81,7 +81,7 @@ export function DialogueExample() {
|
|
|
81
81
|
padding: "16px",
|
|
82
82
|
borderRadius: "8px",
|
|
83
83
|
marginBottom: "20px",
|
|
84
|
-
}, children: [_jsx("strong", { children: "Error:" }), " ", error] })), _jsx(DialogueView, { program: program || { nodes: {}, enums: {} }, startNode: "Start", scenes: scenes, enableTypingAnimation: enableTypingAnimation, showTypingCursor: true, typingSpeed: 20, cursorCharacter: "$", autoAdvanceAfterTyping: true, autoAdvanceDelay: 2000, actorTransitionDuration: 1000, pauseBeforeAdvance: enableTypingAnimation ? 1000 : 0, onStoryEnd: (info) => {
|
|
84
|
+
}, children: [_jsx("strong", { children: "Error:" }), " ", error] })), _jsx(DialogueView, { program: program || { nodes: {}, enums: {} }, startNode: "Start", scenes: scenes, variables: { playerName: "V", reputation: 3 }, enableTypingAnimation: enableTypingAnimation, showTypingCursor: true, typingSpeed: 20, cursorCharacter: "$", autoAdvanceAfterTyping: true, autoAdvanceDelay: 2000, actorTransitionDuration: 1000, pauseBeforeAdvance: enableTypingAnimation ? 1000 : 0, onStoryEnd: (info) => {
|
|
85
85
|
console.log('Story ended with variables:', info.variables);
|
|
86
86
|
}, functions: customFunctions })] }) }));
|
|
87
87
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogueExample.js","sourceRoot":"","sources":["../../src/react/DialogueExample.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAGjD,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;IA0BjB,CAAC;AAEL,MAAM,cAAc,GAAG;;;;;;;;CAQtB,CAAC;AAEF,MAAM,UAAU,eAAe;IAC7B,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC1C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,MAAM,qBAAqB,GAAG,
|
|
1
|
+
{"version":3,"file":"DialogueExample.js","sourceRoot":"","sources":["../../src/react/DialogueExample.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,7 @@ export interface DialogueViewProps {
|
|
|
7
7
|
scenes?: SceneCollection;
|
|
8
8
|
actorTransitionDuration?: number;
|
|
9
9
|
functions?: Record<string, (...args: unknown[]) => unknown>;
|
|
10
|
+
variables?: Record<string, unknown>;
|
|
10
11
|
onStoryEnd?: (info: {
|
|
11
12
|
variables: Readonly<Record<string, unknown>>;
|
|
12
13
|
storyEnd: true;
|
|
@@ -19,5 +20,5 @@ export interface DialogueViewProps {
|
|
|
19
20
|
autoAdvanceDelay?: number;
|
|
20
21
|
pauseBeforeAdvance?: number;
|
|
21
22
|
}
|
|
22
|
-
export declare function DialogueView({ program, startNode, className, scenes, actorTransitionDuration, functions, onStoryEnd, enableTypingAnimation, typingSpeed, // Characters per second (50 cps = ~20ms per character)
|
|
23
|
+
export declare function DialogueView({ program, startNode, className, scenes, actorTransitionDuration, functions, variables, onStoryEnd, enableTypingAnimation, typingSpeed, // Characters per second (50 cps = ~20ms per character)
|
|
23
24
|
showTypingCursor, cursorCharacter, autoAdvanceAfterTyping, autoAdvanceDelay, pauseBeforeAdvance, }: DialogueViewProps): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import
|
|
2
|
+
import { useRef, useEffect, useState } from "react";
|
|
3
3
|
import { DialogueScene } from "./DialogueScene.js";
|
|
4
4
|
import { TypingText } from "./TypingText.js";
|
|
5
5
|
import { useYarnRunner } from "./useYarnRunner.js";
|
|
@@ -65,13 +65,12 @@ function parseCss(cssStr) {
|
|
|
65
65
|
});
|
|
66
66
|
return styles;
|
|
67
67
|
}
|
|
68
|
-
export function DialogueView({ program, startNode = "Start", className, scenes, actorTransitionDuration = 350, functions, onStoryEnd, enableTypingAnimation = false, typingSpeed = 50, // Characters per second (50 cps = ~20ms per character)
|
|
68
|
+
export function DialogueView({ program, startNode = "Start", className, scenes, actorTransitionDuration = 350, functions, variables, onStoryEnd, enableTypingAnimation = false, typingSpeed = 50, // Characters per second (50 cps = ~20ms per character)
|
|
69
69
|
showTypingCursor = true, cursorCharacter = "|", autoAdvanceAfterTyping = false, autoAdvanceDelay = 500, pauseBeforeAdvance = 0, }) {
|
|
70
|
-
const { result, advance } = useYarnRunner(program, {
|
|
70
|
+
const { result, advance, runner } = useYarnRunner(program, {
|
|
71
71
|
startAt: startNode,
|
|
72
72
|
functions,
|
|
73
|
-
variables
|
|
74
|
-
onStoryEnd,
|
|
73
|
+
variables,
|
|
75
74
|
});
|
|
76
75
|
const sceneName = result?.type === "text" || result?.type === "options" ? result.scene : undefined;
|
|
77
76
|
const speaker = result?.type === "text" ? result.speaker : undefined;
|
|
@@ -80,6 +79,31 @@ showTypingCursor = true, cursorCharacter = "|", autoAdvanceAfterTyping = false,
|
|
|
80
79
|
const [currentTextKey, setCurrentTextKey] = useState(0);
|
|
81
80
|
const [skipTyping, setSkipTyping] = useState(false);
|
|
82
81
|
const advanceTimeoutRef = useRef(null);
|
|
82
|
+
const storyEndTriggeredRef = useRef(false);
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
storyEndTriggeredRef.current = false;
|
|
85
|
+
}, [program, startNode]);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
if (!result || result.type !== "command") {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const timer = setTimeout(() => advance(), 50);
|
|
91
|
+
return () => clearTimeout(timer);
|
|
92
|
+
}, [result, advance]);
|
|
93
|
+
useEffect(() => {
|
|
94
|
+
if (!onStoryEnd || !result || storyEndTriggeredRef.current) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (!result.isDialogueEnd) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (result.type === "options") {
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
storyEndTriggeredRef.current = true;
|
|
104
|
+
const variablesSnapshot = Object.freeze({ ...(runner?.getVariables?.() ?? {}) });
|
|
105
|
+
onStoryEnd({ storyEnd: true, variables: variablesSnapshot });
|
|
106
|
+
}, [result, onStoryEnd, runner]);
|
|
83
107
|
// Reset typing completion when text changes
|
|
84
108
|
useEffect(() => {
|
|
85
109
|
if (result?.type === "text") {
|
|
@@ -114,13 +138,6 @@ showTypingCursor = true, cursorCharacter = "|", autoAdvanceAfterTyping = false,
|
|
|
114
138
|
const nodeStyles = parseCss(result.nodeCss);
|
|
115
139
|
const displayText = result.text || "\u00A0";
|
|
116
140
|
const shouldShowContinue = !result.isDialogueEnd && !enableTypingAnimation;
|
|
117
|
-
// Handle story end and call onStoryEnd if provided
|
|
118
|
-
if (result.isDialogueEnd && onStoryEnd && 'variables' in result) {
|
|
119
|
-
onStoryEnd({
|
|
120
|
-
variables: result.variables,
|
|
121
|
-
storyEnd: true
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
141
|
const handleClick = () => {
|
|
125
142
|
if (result.isDialogueEnd)
|
|
126
143
|
return;
|
|
@@ -159,11 +176,6 @@ showTypingCursor = true, cursorCharacter = "|", autoAdvanceAfterTyping = false,
|
|
|
159
176
|
}
|
|
160
177
|
// Command result - auto-advance
|
|
161
178
|
if (result.type === "command") {
|
|
162
|
-
// Auto-advance commands after a brief moment
|
|
163
|
-
React.useEffect(() => {
|
|
164
|
-
const timer = setTimeout(() => advance(), 50);
|
|
165
|
-
return () => clearTimeout(timer);
|
|
166
|
-
}, [result.command, advance]);
|
|
167
179
|
return (_jsx("div", { className: `yd-command ${className || ""}`, children: _jsxs("p", { children: ["Executing: ", result.command] }) }));
|
|
168
180
|
}
|
|
169
181
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DialogueView.js","sourceRoot":"","sources":["../../src/react/DialogueView.tsx"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"DialogueView.js","sourceRoot":"","sources":["../../src/react/DialogueView.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import React from "react";
|
|
3
|
-
const DEFAULT_HTML_TAGS = new Set(["b", "em", "small", "strong", "sub", "sup", "ins", "del", "mark"]);
|
|
3
|
+
const DEFAULT_HTML_TAGS = new Set(["b", "em", "small", "strong", "sub", "sup", "ins", "del", "mark", "br"]);
|
|
4
4
|
export function MarkupRenderer({ text, markup, length }) {
|
|
5
5
|
const maxLength = length ?? text.length;
|
|
6
6
|
if (!markup || markup.segments.length === 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarkupRenderer.js","sourceRoot":"","sources":["../../src/react/MarkupRenderer.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"MarkupRenderer.js","sourceRoot":"","sources":["../../src/react/MarkupRenderer.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,71 @@
|
|
|
1
|
-
import { useState, useCallback, useRef } from "react";
|
|
1
|
+
import { useState, useCallback, useRef, useEffect } from "react";
|
|
2
2
|
import { YarnRunner } from "../runtime/runner.js";
|
|
3
|
+
function haveFunctionsChanged(prev, next) {
|
|
4
|
+
const prevFns = prev ?? {};
|
|
5
|
+
const nextFns = next ?? {};
|
|
6
|
+
const prevKeys = Object.keys(prevFns);
|
|
7
|
+
const nextKeys = Object.keys(nextFns);
|
|
8
|
+
if (prevKeys.length !== nextKeys.length) {
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
for (const key of prevKeys) {
|
|
12
|
+
if (!Object.prototype.hasOwnProperty.call(nextFns, key) || prevFns[key] !== nextFns[key]) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
function haveVariablesChanged(prev, next) {
|
|
19
|
+
const prevVars = prev ?? {};
|
|
20
|
+
const nextVars = next ?? {};
|
|
21
|
+
return JSON.stringify(prevVars) !== JSON.stringify(nextVars);
|
|
22
|
+
}
|
|
3
23
|
export function useYarnRunner(program, options) {
|
|
4
24
|
const runnerRef = useRef(null);
|
|
5
|
-
const [result, setResult] = useState(null);
|
|
6
25
|
const optionsRef = useRef(options);
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
runnerRef.current =
|
|
11
|
-
setResult(runnerRef.current.currentResult);
|
|
26
|
+
const programRef = useRef(program);
|
|
27
|
+
const [result, setResult] = useState(() => {
|
|
28
|
+
const runner = new YarnRunner(program, options);
|
|
29
|
+
runnerRef.current = runner;
|
|
12
30
|
optionsRef.current = options;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
31
|
+
programRef.current = program;
|
|
32
|
+
return runner.currentResult;
|
|
33
|
+
});
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
const prevProgram = programRef.current;
|
|
36
|
+
const prevOptions = optionsRef.current;
|
|
37
|
+
const programChanged = prevProgram !== program;
|
|
38
|
+
const functionsChanged = haveFunctionsChanged(prevOptions?.functions, options.functions);
|
|
39
|
+
const startNodeChanged = prevOptions?.startAt !== options.startAt;
|
|
40
|
+
const variablesChanged = haveVariablesChanged(prevOptions?.variables, options.variables);
|
|
41
|
+
const handlersChanged = prevOptions?.handleCommand !== options.handleCommand ||
|
|
42
|
+
prevOptions?.commandHandler !== options.commandHandler ||
|
|
43
|
+
prevOptions?.onStoryEnd !== options.onStoryEnd;
|
|
44
|
+
if (!runnerRef.current ||
|
|
45
|
+
programChanged ||
|
|
46
|
+
functionsChanged ||
|
|
47
|
+
startNodeChanged ||
|
|
48
|
+
variablesChanged ||
|
|
49
|
+
handlersChanged) {
|
|
50
|
+
const runner = new YarnRunner(program, options);
|
|
51
|
+
runnerRef.current = runner;
|
|
52
|
+
setResult(runner.currentResult);
|
|
53
|
+
}
|
|
54
|
+
programRef.current = program;
|
|
18
55
|
optionsRef.current = options;
|
|
19
|
-
}
|
|
20
|
-
const runner = runnerRef.current;
|
|
56
|
+
}, [program, options]);
|
|
21
57
|
const advance = useCallback((optionIndex) => {
|
|
58
|
+
const runner = runnerRef.current;
|
|
59
|
+
if (!runner) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
22
62
|
runner.advance(optionIndex);
|
|
23
63
|
setResult(runner.currentResult);
|
|
24
|
-
}, [
|
|
25
|
-
return {
|
|
64
|
+
}, []);
|
|
65
|
+
return {
|
|
66
|
+
result,
|
|
67
|
+
advance,
|
|
68
|
+
runner: runnerRef.current,
|
|
69
|
+
};
|
|
26
70
|
}
|
|
27
71
|
//# sourceMappingURL=useYarnRunner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useYarnRunner.js","sourceRoot":"","sources":["../../src/react/useYarnRunner.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"useYarnRunner.js","sourceRoot":"","sources":["../../src/react/useYarnRunner.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { test } from "node:test";
|
|
3
|
+
import { ok } from "node:assert";
|
|
4
|
+
import { renderToStaticMarkup } from "react-dom/server";
|
|
5
|
+
import { parseYarn } from "../parse/parser.js";
|
|
6
|
+
import { compile } from "../compile/compiler.js";
|
|
7
|
+
import { DialogueView } from "../react/DialogueView.js";
|
|
8
|
+
test("DialogueView renders initial variables provided via props", () => {
|
|
9
|
+
const yarn = `
|
|
10
|
+
title: Start
|
|
11
|
+
---
|
|
12
|
+
Narrator: Hello {$playerName}!
|
|
13
|
+
===`;
|
|
14
|
+
const program = compile(parseYarn(yarn));
|
|
15
|
+
const html = renderToStaticMarkup(_jsx(DialogueView, { program: program, startNode: "Start", variables: { playerName: "V" } }));
|
|
16
|
+
ok(html.includes("Hello V"), "Expected rendered dialogue to include the interpolated variable value from props");
|
|
17
|
+
});
|
|
18
|
+
//# sourceMappingURL=dialogue_view.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dialogue_view.test.js","sourceRoot":"","sources":["../../src/tests/dialogue_view.test.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAEjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,IAAI,CAAC,2DAA2D,EAAE,GAAG,EAAE;IACrE,MAAM,IAAI,GAAG;;;;IAIX,CAAC;IAEH,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAEzC,MAAM,IAAI,GAAG,oBAAoB,CAC/B,KAAC,YAAY,IAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,OAAO,EAAC,SAAS,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,GAAI,CACrF,CAAC;IAEF,EAAE,CACA,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EACxB,kFAAkF,CACnF,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -30,6 +30,13 @@ test("parseMarkup handles self-closing tags", () => {
|
|
|
30
30
|
strictEqual(result.text, " Ready.");
|
|
31
31
|
ok(result.segments.some((seg) => seg.selfClosing && seg.wrappers.some((wrapper) => wrapper.name === "pause")), "Expected self closing pause marker");
|
|
32
32
|
});
|
|
33
|
+
test("parseMarkup handles br line breaks", () => {
|
|
34
|
+
const result = parseMarkup("Line one[br]Line two[/br][br/]Line three");
|
|
35
|
+
strictEqual(result.text, "Line one\nLine two\nLine three");
|
|
36
|
+
const brSegments = result.segments.filter((segment) => segment.selfClosing && segment.wrappers.some((wrapper) => wrapper.name === "br"));
|
|
37
|
+
strictEqual(brSegments.length, 2);
|
|
38
|
+
ok(brSegments.every((segment) => segment.wrappers.some((wrapper) => wrapper.name === "br" && wrapper.type === "default")), "Expected br wrappers to use default HTML type");
|
|
39
|
+
});
|
|
33
40
|
test("parseMarkup respects nomarkup blocks and escaping", () => {
|
|
34
41
|
const result = parseMarkup(`[nomarkup][b] raw [/b][/nomarkup] and \\[escaped\\]`);
|
|
35
42
|
strictEqual(result.text, "[b] raw [/b] and [escaped]");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markup.test.js","sourceRoot":"","sources":["../../src/tests/markup.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,8CAA8C,CAAC,CAAC;IAE3E,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,8BAA8B,CAAC,CAAC;IACzD,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,EAAE,CAAC,IAAI,EAAE,uBAAuB,CAAC,CAAC;IAClC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACrC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACxC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IAE9C,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC7C,EAAE,CAAC,EAAE,EAAE,qBAAqB,CAAC,CAAC;IAC9B,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAC3D,MAAM,MAAM,GAAG,WAAW,CAAC,+CAA+C,CAAC,CAAC;IAC5E,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAEvC,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC7C,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IAChE,EAAE,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACpC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACzC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC/C,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,uCAAuC,EAAE,GAAG,EAAE;IACjD,MAAM,MAAM,GAAG,WAAW,CAAC,4BAA4B,CAAC,CAAC;IACzD,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACpC,EAAE,CACA,MAAM,CAAC,QAAQ,CAAC,IAAI,CAClB,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,CACrF,EACD,oCAAoC,CACrC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,mDAAmD,EAAE,GAAG,EAAE;IAC7D,MAAM,MAAM,GAAG,WAAW,CAAC,qDAAqD,CAAC,CAAC;IAClF,WAAW,CAAC,MAAM,CAAC,IAAI,EAAE,4BAA4B,CAAC,CAAC;IACvD,EAAE,CACA,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,EACjE,uDAAuD,CACxD,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,SAAS,WAAW,CAAC,MAAyB,EAAE,MAAc;IAC5D,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;QACtC,IAAI,OAAO,CAAC,WAAW;YAAE,OAAO,KAAK,CAAC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QAC3D,OAAO,IAAI,KAAK,MAAM,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"markup.test.js","sourceRoot":"","sources":["../../src/tests/markup.test.ts"],"names":[],"mappings":"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"}
|
package/docs/markup.md
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
## Markup (Yarn Spinner)
|
|
2
|
-
|
|
3
|
-
Source: [docs.yarnspinner.dev � Markup](https://docs.yarnspinner.dev/write-yarn-scripts/advanced-scripting/markup)
|
|
4
|
-
|
|
5
|
-
### Supported formatting
|
|
6
|
-
|
|
7
|
-
The runtime now parses Yarn Spinner markup and surfaces it through `TextResult.markup` and option metadata. The React components (`DialogueView`, `TypingText`, and the option buttons) render this markup automatically.
|
|
8
|
-
|
|
9
|
-
- The following tags map directly to native HTML elements: `b`, `strong`, `em`, `small`, `sub`, `sup`, `ins`, `del`, and `
|
|
10
|
-
- Any other markup tag is rendered as a `<span>` with the class `yd-markup-<tagName>` so you can style or animate it via CSS.
|
|
11
|
-
- Markup attributes are exposed as `data-markup-*` attributes on the rendered element. For example `[wave speed=2]` renders `<span class="yd-markup-wave" data-markup-speed="2">`.
|
|
12
|
-
|
|
13
|
-
### Example
|
|
14
|
-
|
|
15
|
-
```yarn
|
|
16
|
-
title: Start
|
|
17
|
-
---
|
|
18
|
-
Narrator: Plain [b]bold[/b] [wave speed=2]custom[/wave]
|
|
19
|
-
===
|
|
20
|
-
```
|
|
21
|
-
|
|
22
|
-
The React renderer produces:
|
|
23
|
-
|
|
24
|
-
```html
|
|
25
|
-
Plain <b>bold</b> <span class="yd-markup-wave" data-markup-speed="2">custom</span>
|
|
26
|
-
```
|
|
27
|
-
|
|
28
|
-
### Integration notes
|
|
29
|
-
|
|
30
|
-
- Markup data is available on `TextResult.markup` and on each option entry (`result.options[i].markup`).
|
|
31
|
-
- `TypingText` respects markup while animating, so formatting stays intact during the typewriter effect.
|
|
32
|
-
- When a markup tag is not recognised, it remains in the output (as a span) rather than being stripped, so you can add custom CSS in your host application.
|
|
33
|
-
|
|
1
|
+
## Markup (Yarn Spinner)
|
|
2
|
+
|
|
3
|
+
Source: [docs.yarnspinner.dev � Markup](https://docs.yarnspinner.dev/write-yarn-scripts/advanced-scripting/markup)
|
|
4
|
+
|
|
5
|
+
### Supported formatting
|
|
6
|
+
|
|
7
|
+
The runtime now parses Yarn Spinner markup and surfaces it through `TextResult.markup` and option metadata. The React components (`DialogueView`, `TypingText`, and the option buttons) render this markup automatically.
|
|
8
|
+
|
|
9
|
+
- The following tags map directly to native HTML elements: `b`, `strong`, `em`, `small`, `sub`, `sup`, `ins`, `del`, `mark`, and the self-closing line break `br`.
|
|
10
|
+
- Any other markup tag is rendered as a `<span>` with the class `yd-markup-<tagName>` so you can style or animate it via CSS.
|
|
11
|
+
- Markup attributes are exposed as `data-markup-*` attributes on the rendered element. For example `[wave speed=2]` renders `<span class="yd-markup-wave" data-markup-speed="2">`.
|
|
12
|
+
|
|
13
|
+
### Example
|
|
14
|
+
|
|
15
|
+
```yarn
|
|
16
|
+
title: Start
|
|
17
|
+
---
|
|
18
|
+
Narrator: Plain [b]bold[/b] [wave speed=2]custom[/wave]
|
|
19
|
+
===
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
The React renderer produces:
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
Plain <b>bold</b> <span class="yd-markup-wave" data-markup-speed="2">custom</span>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Integration notes
|
|
29
|
+
|
|
30
|
+
- Markup data is available on `TextResult.markup` and on each option entry (`result.options[i].markup`).
|
|
31
|
+
- `TypingText` respects markup while animating, so formatting stays intact during the typewriter effect.
|
|
32
|
+
- When a markup tag is not recognised, it remains in the output (as a span) rather than being stripped, so you can add custom CSS in your host application.
|
|
33
|
+
|
|
34
34
|
For the full markup vocabulary see the official Yarn Spinner documentation.
|
package/eslint.config.cjs
CHANGED
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
// ESLint v9 flat config
|
|
2
|
-
const js = require("@eslint/js");
|
|
3
|
-
const tsParser = require("@typescript-eslint/parser");
|
|
4
|
-
const tsPlugin = require("@typescript-eslint/eslint-plugin");
|
|
5
|
-
|
|
6
|
-
module.exports = [
|
|
7
|
-
{
|
|
8
|
-
ignores: ["dist/**", "node_modules/**", "examples/**", "src/examples/**", "src/tests/**"],
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
files: ["src/**/*.ts", "src/**/*.tsx"],
|
|
12
|
-
languageOptions: {
|
|
13
|
-
parser: tsParser,
|
|
14
|
-
ecmaVersion: "latest",
|
|
15
|
-
sourceType: "module",
|
|
16
|
-
globals: {
|
|
17
|
-
console: "readonly",
|
|
18
|
-
window: "readonly",
|
|
19
|
-
setTimeout: "readonly",
|
|
20
|
-
clearTimeout: "readonly",
|
|
21
|
-
setInterval: "readonly",
|
|
22
|
-
clearInterval: "readonly",
|
|
23
|
-
requestAnimationFrame: "readonly",
|
|
24
|
-
},
|
|
25
|
-
},
|
|
26
|
-
plugins: {
|
|
27
|
-
"@typescript-eslint": tsPlugin,
|
|
28
|
-
},
|
|
29
|
-
rules: {
|
|
30
|
-
...js.configs.recommended.rules,
|
|
31
|
-
...tsPlugin.configs.recommended.rules,
|
|
32
|
-
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
33
|
-
"@typescript-eslint/no-explicit-any": "off",
|
|
34
|
-
"no-console": ["warn", { allow: ["warn", "error", "assert", "log"] }],
|
|
35
|
-
},
|
|
36
|
-
},
|
|
37
|
-
];
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
// ESLint v9 flat config
|
|
2
|
+
const js = require("@eslint/js");
|
|
3
|
+
const tsParser = require("@typescript-eslint/parser");
|
|
4
|
+
const tsPlugin = require("@typescript-eslint/eslint-plugin");
|
|
5
|
+
|
|
6
|
+
module.exports = [
|
|
7
|
+
{
|
|
8
|
+
ignores: ["dist/**", "node_modules/**", "examples/**", "src/examples/**", "src/tests/**"],
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
files: ["src/**/*.ts", "src/**/*.tsx"],
|
|
12
|
+
languageOptions: {
|
|
13
|
+
parser: tsParser,
|
|
14
|
+
ecmaVersion: "latest",
|
|
15
|
+
sourceType: "module",
|
|
16
|
+
globals: {
|
|
17
|
+
console: "readonly",
|
|
18
|
+
window: "readonly",
|
|
19
|
+
setTimeout: "readonly",
|
|
20
|
+
clearTimeout: "readonly",
|
|
21
|
+
setInterval: "readonly",
|
|
22
|
+
clearInterval: "readonly",
|
|
23
|
+
requestAnimationFrame: "readonly",
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
plugins: {
|
|
27
|
+
"@typescript-eslint": tsPlugin,
|
|
28
|
+
},
|
|
29
|
+
rules: {
|
|
30
|
+
...js.configs.recommended.rules,
|
|
31
|
+
...tsPlugin.configs.recommended.rules,
|
|
32
|
+
"@typescript-eslint/explicit-module-boundary-types": "off",
|
|
33
|
+
"@typescript-eslint/no-explicit-any": "off",
|
|
34
|
+
"no-console": ["warn", { allow: ["warn", "error", "assert", "log"] }],
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
];
|
|
38
|
+
|
|
39
|
+
|