@magicborn/dialogue-forge 0.1.0 → 0.1.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.
Files changed (51) hide show
  1. package/demo/app/page.tsx +26 -12
  2. package/demo/public/logo.svg +14 -1
  3. package/dist/components/CharacterSelector.d.ts +15 -0
  4. package/dist/components/CharacterSelector.js +125 -0
  5. package/dist/components/ConditionalNodeV2.d.ts +2 -0
  6. package/dist/components/ConditionalNodeV2.js +50 -29
  7. package/dist/components/DialogueEditorV2.d.ts +2 -0
  8. package/dist/components/DialogueEditorV2.js +43 -6
  9. package/dist/components/GuidePanel.js +99 -16
  10. package/dist/components/NPCNodeV2.d.ts +2 -0
  11. package/dist/components/NPCNodeV2.js +31 -20
  12. package/dist/components/NodeEditor.d.ts +3 -1
  13. package/dist/components/NodeEditor.js +42 -13
  14. package/dist/components/PlayerNodeV2.d.ts +2 -0
  15. package/dist/components/PlayerNodeV2.js +58 -39
  16. package/dist/components/ReactFlowPOC.js +3 -3
  17. package/dist/esm/components/CharacterSelector.d.ts +15 -0
  18. package/dist/esm/components/CharacterSelector.js +89 -0
  19. package/dist/esm/components/ConditionalNodeV2.d.ts +2 -0
  20. package/dist/esm/components/ConditionalNodeV2.js +51 -30
  21. package/dist/esm/components/DialogueEditorV2.d.ts +2 -0
  22. package/dist/esm/components/DialogueEditorV2.js +43 -6
  23. package/dist/esm/components/GuidePanel.js +99 -16
  24. package/dist/esm/components/NPCNodeV2.d.ts +2 -0
  25. package/dist/esm/components/NPCNodeV2.js +32 -21
  26. package/dist/esm/components/NodeEditor.d.ts +3 -1
  27. package/dist/esm/components/NodeEditor.js +42 -13
  28. package/dist/esm/components/PlayerNodeV2.d.ts +2 -0
  29. package/dist/esm/components/PlayerNodeV2.js +59 -40
  30. package/dist/esm/components/ReactFlowPOC.js +3 -3
  31. package/dist/esm/examples/example-characters.d.ts +19 -0
  32. package/dist/esm/examples/example-characters.js +67 -0
  33. package/dist/esm/examples/index.d.ts +1 -0
  34. package/dist/esm/examples/index.js +2 -0
  35. package/dist/esm/index.d.ts +3 -0
  36. package/dist/esm/index.js +3 -0
  37. package/dist/esm/types/characters.d.ts +15 -0
  38. package/dist/esm/types/characters.js +6 -0
  39. package/dist/esm/types/game-state.d.ts +2 -0
  40. package/dist/esm/types/index.d.ts +2 -0
  41. package/dist/examples/example-characters.d.ts +19 -0
  42. package/dist/examples/example-characters.js +73 -0
  43. package/dist/examples/index.d.ts +1 -0
  44. package/dist/examples/index.js +7 -1
  45. package/dist/index.d.ts +3 -0
  46. package/dist/index.js +9 -1
  47. package/dist/types/characters.d.ts +15 -0
  48. package/dist/types/characters.js +7 -0
  49. package/dist/types/game-state.d.ts +2 -0
  50. package/dist/types/index.d.ts +2 -0
  51. package/package.json +1 -1
@@ -0,0 +1,73 @@
1
+ "use strict";
2
+ /**
3
+ * Example Characters
4
+ *
5
+ * Sample character data for use in examples and demos
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.exampleCharacters = void 0;
9
+ exports.getExampleCharacters = getExampleCharacters;
10
+ exports.getExampleCharacter = getExampleCharacter;
11
+ exports.listExampleCharacterIds = listExampleCharacterIds;
12
+ exports.exampleCharacters = {
13
+ 'stranger': {
14
+ id: 'stranger',
15
+ name: 'Mysterious Stranger',
16
+ avatar: '👤',
17
+ description: 'A cloaked figure who appears at crossroads',
18
+ },
19
+ 'bartender': {
20
+ id: 'bartender',
21
+ name: 'Bartender',
22
+ avatar: '🍺',
23
+ description: 'The friendly tavern keeper',
24
+ },
25
+ 'merchant': {
26
+ id: 'merchant',
27
+ name: 'Merchant',
28
+ avatar: '💰',
29
+ description: 'A traveling trader',
30
+ },
31
+ 'guard': {
32
+ id: 'guard',
33
+ name: 'City Guard',
34
+ avatar: '🛡️',
35
+ description: 'A vigilant city guard',
36
+ },
37
+ 'wizard': {
38
+ id: 'wizard',
39
+ name: 'Wizard',
40
+ avatar: '🧙',
41
+ description: 'An ancient mage',
42
+ },
43
+ 'player': {
44
+ id: 'player',
45
+ name: 'Player',
46
+ avatar: '🎮',
47
+ description: 'The player character',
48
+ },
49
+ 'narrator': {
50
+ id: 'narrator',
51
+ name: 'Narrator',
52
+ avatar: '📖',
53
+ description: 'The story narrator',
54
+ },
55
+ };
56
+ /**
57
+ * Get all example characters
58
+ */
59
+ function getExampleCharacters() {
60
+ return exports.exampleCharacters;
61
+ }
62
+ /**
63
+ * Get a character by ID
64
+ */
65
+ function getExampleCharacter(id) {
66
+ return exports.exampleCharacters[id];
67
+ }
68
+ /**
69
+ * List all character IDs
70
+ */
71
+ function listExampleCharacterIds() {
72
+ return Object.keys(exports.exampleCharacters);
73
+ }
@@ -11,6 +11,7 @@
11
11
  * - index.ts: Public API for loading examples (this file)
12
12
  */
13
13
  export { examplesRegistry, exampleFlagSchemas, getExampleMetadata, listExampleIds, getExampleFlagSchema, listFlagSchemaIds, type ExampleMetadata } from './examples-registry';
14
+ export { exampleCharacters, getExampleCharacters, getExampleCharacter, listExampleCharacterIds, } from './example-characters';
14
15
  /**
15
16
  * Legacy exports for backward compatibility
16
17
  * These maintain the old API while we migrate examples to Yarn format
@@ -12,7 +12,7 @@
12
12
  * - index.ts: Public API for loading examples (this file)
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.demoFlagSchemas = exports.exampleDialogues = exports.listFlagSchemaIds = exports.getExampleFlagSchema = exports.listExampleIds = exports.getExampleMetadata = exports.exampleFlagSchemas = exports.examplesRegistry = void 0;
15
+ exports.demoFlagSchemas = exports.exampleDialogues = exports.listExampleCharacterIds = exports.getExampleCharacter = exports.getExampleCharacters = exports.exampleCharacters = exports.listFlagSchemaIds = exports.getExampleFlagSchema = exports.listExampleIds = exports.getExampleMetadata = exports.exampleFlagSchemas = exports.examplesRegistry = void 0;
16
16
  exports.listExamples = listExamples;
17
17
  exports.listDemoFlagSchemas = listDemoFlagSchemas;
18
18
  exports.getExampleDialogue = getExampleDialogue;
@@ -27,6 +27,12 @@ Object.defineProperty(exports, "getExampleFlagSchema", { enumerable: true, get:
27
27
  Object.defineProperty(exports, "listFlagSchemaIds", { enumerable: true, get: function () { return examples_registry_1.listFlagSchemaIds; } });
28
28
  const yarn_examples_1 = require("./yarn-examples");
29
29
  const examples_registry_2 = require("./examples-registry");
30
+ // Export character examples
31
+ var example_characters_1 = require("./example-characters");
32
+ Object.defineProperty(exports, "exampleCharacters", { enumerable: true, get: function () { return example_characters_1.exampleCharacters; } });
33
+ Object.defineProperty(exports, "getExampleCharacters", { enumerable: true, get: function () { return example_characters_1.getExampleCharacters; } });
34
+ Object.defineProperty(exports, "getExampleCharacter", { enumerable: true, get: function () { return example_characters_1.getExampleCharacter; } });
35
+ Object.defineProperty(exports, "listExampleCharacterIds", { enumerable: true, get: function () { return example_characters_1.listExampleCharacterIds; } });
30
36
  const legacy_examples_1 = require("./legacy-examples");
31
37
  // Export legacy examples - these work alongside the new Yarn examples
32
38
  exports.exampleDialogues = legacy_examples_1.exampleDialogues;
package/dist/index.d.ts CHANGED
@@ -5,14 +5,17 @@ export { ScenePlayer as DialogueSimulator } from './components/ScenePlayer';
5
5
  export { GuidePanel } from './components/GuidePanel';
6
6
  export { FlagSelector } from './components/FlagSelector';
7
7
  export { FlagManager } from './components/FlagManager';
8
+ export { CharacterSelector } from './components/CharacterSelector';
8
9
  export { ZoomControls } from './components/ZoomControls';
9
10
  export { ExampleLoader } from './components/ExampleLoader';
10
11
  import './styles/scrollbar.css';
11
12
  import './styles/theme.css';
12
13
  export { exampleDialogues, demoFlagSchemas, getExampleDialogue, getDemoFlagSchema, listExamples, listDemoFlagSchemas } from './examples';
14
+ export { exampleCharacters, getExampleCharacters, getExampleCharacter, listExampleCharacterIds } from './examples';
13
15
  export * from './types';
14
16
  export * from './types/flags';
15
17
  export * from './types/game-state';
18
+ export * from './types/characters';
16
19
  export * from './types/constants';
17
20
  export { flattenGameState, validateGameState, extractFlagsFromGameState, type FlattenConfig, type FlattenedState } from './utils/game-state-flattener';
18
21
  export { exportToYarn, importFromYarn } from './lib/yarn-converter';
package/dist/index.js CHANGED
@@ -14,7 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.getFlagValue = exports.validateFlags = exports.mergeFlagUpdates = exports.initializeFlags = exports.importFromYarn = exports.exportToYarn = exports.extractFlagsFromGameState = exports.validateGameState = exports.flattenGameState = exports.listDemoFlagSchemas = exports.listExamples = exports.getDemoFlagSchema = exports.getExampleDialogue = exports.demoFlagSchemas = exports.exampleDialogues = exports.ExampleLoader = exports.ZoomControls = exports.FlagManager = exports.FlagSelector = exports.GuidePanel = exports.DialogueSimulator = exports.ScenePlayer = exports.DialogueEditorV2 = void 0;
17
+ exports.getFlagValue = exports.validateFlags = exports.mergeFlagUpdates = exports.initializeFlags = exports.importFromYarn = exports.exportToYarn = exports.extractFlagsFromGameState = exports.validateGameState = exports.flattenGameState = exports.listExampleCharacterIds = exports.getExampleCharacter = exports.getExampleCharacters = exports.exampleCharacters = exports.listDemoFlagSchemas = exports.listExamples = exports.getDemoFlagSchema = exports.getExampleDialogue = exports.demoFlagSchemas = exports.exampleDialogues = exports.ExampleLoader = exports.ZoomControls = exports.CharacterSelector = exports.FlagManager = exports.FlagSelector = exports.GuidePanel = exports.DialogueSimulator = exports.ScenePlayer = exports.DialogueEditorV2 = void 0;
18
18
  var DialogueEditorV2_1 = require("./components/DialogueEditorV2");
19
19
  Object.defineProperty(exports, "DialogueEditorV2", { enumerable: true, get: function () { return DialogueEditorV2_1.DialogueEditorV2; } });
20
20
  var ScenePlayer_1 = require("./components/ScenePlayer");
@@ -28,6 +28,8 @@ var FlagSelector_1 = require("./components/FlagSelector");
28
28
  Object.defineProperty(exports, "FlagSelector", { enumerable: true, get: function () { return FlagSelector_1.FlagSelector; } });
29
29
  var FlagManager_1 = require("./components/FlagManager");
30
30
  Object.defineProperty(exports, "FlagManager", { enumerable: true, get: function () { return FlagManager_1.FlagManager; } });
31
+ var CharacterSelector_1 = require("./components/CharacterSelector");
32
+ Object.defineProperty(exports, "CharacterSelector", { enumerable: true, get: function () { return CharacterSelector_1.CharacterSelector; } });
31
33
  var ZoomControls_1 = require("./components/ZoomControls");
32
34
  Object.defineProperty(exports, "ZoomControls", { enumerable: true, get: function () { return ZoomControls_1.ZoomControls; } });
33
35
  var ExampleLoader_1 = require("./components/ExampleLoader");
@@ -43,10 +45,16 @@ Object.defineProperty(exports, "getExampleDialogue", { enumerable: true, get: fu
43
45
  Object.defineProperty(exports, "getDemoFlagSchema", { enumerable: true, get: function () { return examples_1.getDemoFlagSchema; } });
44
46
  Object.defineProperty(exports, "listExamples", { enumerable: true, get: function () { return examples_1.listExamples; } });
45
47
  Object.defineProperty(exports, "listDemoFlagSchemas", { enumerable: true, get: function () { return examples_1.listDemoFlagSchemas; } });
48
+ var examples_2 = require("./examples");
49
+ Object.defineProperty(exports, "exampleCharacters", { enumerable: true, get: function () { return examples_2.exampleCharacters; } });
50
+ Object.defineProperty(exports, "getExampleCharacters", { enumerable: true, get: function () { return examples_2.getExampleCharacters; } });
51
+ Object.defineProperty(exports, "getExampleCharacter", { enumerable: true, get: function () { return examples_2.getExampleCharacter; } });
52
+ Object.defineProperty(exports, "listExampleCharacterIds", { enumerable: true, get: function () { return examples_2.listExampleCharacterIds; } });
46
53
  // Export all types
47
54
  __exportStar(require("./types"), exports);
48
55
  __exportStar(require("./types/flags"), exports);
49
56
  __exportStar(require("./types/game-state"), exports);
57
+ __exportStar(require("./types/characters"), exports);
50
58
  __exportStar(require("./types/constants"), exports);
51
59
  // Export game state utilities
52
60
  var game_state_flattener_1 = require("./utils/game-state-flattener");
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Character Types
3
+ *
4
+ * Defines character data structure for dialogue nodes
5
+ */
6
+ export interface Character {
7
+ id: string;
8
+ name: string;
9
+ avatar?: string;
10
+ description?: string;
11
+ [key: string]: any;
12
+ }
13
+ export interface CharactersState {
14
+ [characterId: string]: Character;
15
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * Character Types
4
+ *
5
+ * Defines character data structure for dialogue nodes
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -19,12 +19,14 @@ export interface FlagState {
19
19
  * Legacy alias for backward compatibility
20
20
  */
21
21
  export type GameFlagState = FlagState;
22
+ import type { Character } from './characters';
22
23
  /**
23
24
  * Base game state structure that users can extend
24
25
  * Must have a 'flags' property, but can have any other structure
25
26
  */
26
27
  export interface BaseGameState {
27
28
  flags?: FlagState;
29
+ characters?: Record<string, Character>;
28
30
  }
29
31
  /**
30
32
  * Convenience type for extending game state
@@ -20,12 +20,14 @@ export interface ConditionalBlock {
20
20
  condition?: Condition[];
21
21
  content: string;
22
22
  speaker?: string;
23
+ characterId?: string;
23
24
  nextNodeId?: string;
24
25
  }
25
26
  export interface DialogueNode {
26
27
  id: string;
27
28
  type: NodeType;
28
29
  speaker?: string;
30
+ characterId?: string;
29
31
  content: string;
30
32
  choices?: Choice[];
31
33
  nextNodeId?: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicborn/dialogue-forge",
3
- "version": "0.1.0",
3
+ "version": "0.1.2",
4
4
  "description": "Visual node-based dialogue editor with Yarn Spinner support",
5
5
  "author": "Ben Garrard <b2gdevs@gmail.com>",
6
6
  "license": "MIT",