narrat 3.3.8 → 3.4.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/README.md CHANGED
@@ -18,4 +18,4 @@ Or try editing the default narrat game easily:
18
18
 
19
19
  With Codeflow you can test Narrat quickly without setting up an IDE
20
20
 
21
- More info on the [narrat website](https://narrat.dev). There is an [online demo](https://narrat.dev/demo/) available to try in the browser.
21
+ More info on the [narrat website](https://narrat.dev). There is an [online demo](https://demo.narrat.dev/) available to try in the browser.
@@ -14,11 +14,12 @@ declare const _default: import("vue").DefineComponent<{}, {
14
14
  chosenAchievementConf(): null | AchievementConfig;
15
15
  achievementConf(): {
16
16
  [key: string]: {
17
+ icon?: string | undefined;
17
18
  category?: string | undefined;
19
+ lockedIcon?: string | undefined;
18
20
  secret?: boolean | undefined;
19
21
  name: string;
20
22
  description: string;
21
- icon: string;
22
23
  };
23
24
  };
24
25
  sections(): AchievementsSectionProps[];
@@ -12,12 +12,20 @@ declare const _default: import("vue").DefineComponent<{
12
12
  loop?: boolean | undefined;
13
13
  width?: number | undefined;
14
14
  height?: number | undefined;
15
- muted?: boolean | undefined;
16
15
  autoplay?: boolean | undefined;
16
+ muted?: boolean | undefined;
17
17
  video: string;
18
18
  } | undefined>;
19
19
  required: true;
20
20
  };
21
+ character: {
22
+ type: import("vue").PropType<string | undefined>;
23
+ required: true;
24
+ };
25
+ pose: {
26
+ type: import("vue").PropType<string | undefined>;
27
+ required: true;
28
+ };
21
29
  }, {}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
22
30
  picture: {
23
31
  type: import("vue").PropType<{
@@ -32,11 +40,19 @@ declare const _default: import("vue").DefineComponent<{
32
40
  loop?: boolean | undefined;
33
41
  width?: number | undefined;
34
42
  height?: number | undefined;
35
- muted?: boolean | undefined;
36
43
  autoplay?: boolean | undefined;
44
+ muted?: boolean | undefined;
37
45
  video: string;
38
46
  } | undefined>;
39
47
  required: true;
40
48
  };
49
+ character: {
50
+ type: import("vue").PropType<string | undefined>;
51
+ required: true;
52
+ };
53
+ pose: {
54
+ type: import("vue").PropType<string | undefined>;
55
+ required: true;
56
+ };
41
57
  }>>, {}, {}>;
42
58
  export default _default;
@@ -4,6 +4,8 @@ export interface FloatingTooltipProps {
4
4
  width: number;
5
5
  x: number;
6
6
  y: number;
7
+ screenWidth?: number;
8
+ screenHeight?: number;
7
9
  screenMargin?: number;
8
10
  cssClass?: string;
9
11
  textCssClass?: string;
@@ -29,6 +31,12 @@ declare const _default: import("vue").DefineComponent<{
29
31
  type: import("vue").PropType<number>;
30
32
  required: true;
31
33
  };
34
+ screenWidth: {
35
+ type: import("vue").PropType<number>;
36
+ };
37
+ screenHeight: {
38
+ type: import("vue").PropType<number>;
39
+ };
32
40
  screenMargin: {
33
41
  type: import("vue").PropType<number>;
34
42
  };
@@ -61,6 +69,12 @@ declare const _default: import("vue").DefineComponent<{
61
69
  type: import("vue").PropType<number>;
62
70
  required: true;
63
71
  };
72
+ screenWidth: {
73
+ type: import("vue").PropType<number>;
74
+ };
75
+ screenHeight: {
76
+ type: import("vue").PropType<number>;
77
+ };
64
78
  screenMargin: {
65
79
  type: import("vue").PropType<number>;
66
80
  };
@@ -2,7 +2,8 @@ import { Static } from '@sinclair/typebox';
2
2
  export declare const AchievementConfigSchema: import("@sinclair/typebox").TObject<{
3
3
  name: import("@sinclair/typebox").TString;
4
4
  description: import("@sinclair/typebox").TString;
5
- icon: import("@sinclair/typebox").TString;
5
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
+ lockedIcon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
6
7
  secret: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
7
8
  category: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
8
9
  }>;
@@ -15,7 +16,8 @@ export type AchievementCategory = Static<typeof AchievementCategorySchema>;
15
16
  export declare const AchievementsListSchema: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
16
17
  name: import("@sinclair/typebox").TString;
17
18
  description: import("@sinclair/typebox").TString;
18
- icon: import("@sinclair/typebox").TString;
19
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
20
+ lockedIcon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
19
21
  secret: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
20
22
  category: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
21
23
  }>>;
@@ -29,7 +31,8 @@ export declare const AchievementsConfigSchema: import("@sinclair/typebox").TObje
29
31
  achievements: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
30
32
  name: import("@sinclair/typebox").TString;
31
33
  description: import("@sinclair/typebox").TString;
32
- icon: import("@sinclair/typebox").TString;
34
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
35
+ lockedIcon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
33
36
  secret: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
34
37
  category: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
35
38
  }>>;
@@ -49,7 +52,8 @@ export declare const AchievementsInputConfigSchema: import("@sinclair/typebox").
49
52
  achievements: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
50
53
  name: import("@sinclair/typebox").TString;
51
54
  description: import("@sinclair/typebox").TString;
52
- icon: import("@sinclair/typebox").TString;
55
+ icon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
56
+ lockedIcon: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
53
57
  secret: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
54
58
  category: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
55
59
  }>>>;
@@ -0,0 +1,64 @@
1
+ import { Static } from '@sinclair/typebox';
2
+ export declare const CSSAnimationOptionsSchema: import("@sinclair/typebox").TObject<{
3
+ delay: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
4
+ direction: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
5
+ duration: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
6
+ easing: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
7
+ endDelay: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
8
+ fill: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
9
+ iterationStart: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
10
+ iterations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
11
+ keyframes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
12
+ }>;
13
+ export type CSSAnimationOptions = Static<typeof CSSAnimationOptionsSchema>;
14
+ export declare const CSSAnimationKeyframesSchema: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
15
+ export type CSSAnimationKeyframes = Static<typeof CSSAnimationKeyframesSchema>;
16
+ export declare const NarratAnimationInputSchema: import("@sinclair/typebox").TObject<{
17
+ keyframes: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>]>;
18
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
19
+ delay: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
20
+ direction: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
21
+ duration: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
22
+ easing: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
23
+ endDelay: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
24
+ fill: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
25
+ iterationStart: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
26
+ iterations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
27
+ keyframes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
28
+ }>>;
29
+ }>;
30
+ export type NarratAnimationInput = Static<typeof NarratAnimationInputSchema>;
31
+ export declare const NarratAnimationSchema: import("@sinclair/typebox").TObject<{
32
+ keyframes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>;
33
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
34
+ delay: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
35
+ direction: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
36
+ duration: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
37
+ easing: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
38
+ endDelay: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
39
+ fill: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
40
+ iterationStart: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
41
+ iterations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
42
+ keyframes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
43
+ }>>;
44
+ }>;
45
+ export type NarratAnimation = Static<typeof NarratAnimationSchema>;
46
+ export declare const AnimationsConfigSchema: import("@sinclair/typebox").TObject<{
47
+ animations: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TObject<{
48
+ keyframes: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>]>;
49
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
50
+ delay: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
51
+ direction: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
52
+ duration: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
53
+ easing: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
54
+ endDelay: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
55
+ fill: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
56
+ iterationStart: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
57
+ iterations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
58
+ keyframes: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TAny>;
59
+ }>>;
60
+ }>>;
61
+ keyframes: import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TAny>>;
62
+ }>;
63
+ export type AnimationsConfig = Static<typeof AnimationsConfigSchema>;
64
+ export declare const defaultAnimationsConfig: AnimationsConfig;
@@ -1,5 +1,6 @@
1
1
  import { Static } from '@sinclair/typebox';
2
2
  export declare const DialogStyleConfigSchema: import("@sinclair/typebox").TObject<{
3
+ portraitCssClass: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
3
4
  color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
4
5
  boxCss: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
5
6
  nameCss: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
@@ -49,6 +50,7 @@ export declare const CharacterConfigSchema: import("@sinclair/typebox").TObject<
49
50
  }>]>>>;
50
51
  name: import("@sinclair/typebox").TString;
51
52
  style: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
53
+ portraitCssClass: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
52
54
  color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
53
55
  boxCss: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
54
56
  nameCss: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
@@ -77,6 +79,7 @@ export declare const CharactersFilesConfigSchema: import("@sinclair/typebox").TO
77
79
  }>]>>>;
78
80
  name: import("@sinclair/typebox").TString;
79
81
  style: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
82
+ portraitCssClass: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
80
83
  color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
81
84
  boxCss: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
82
85
  nameCss: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
@@ -8,6 +8,8 @@ export declare const DialogPanelConfigSchema: import("@sinclair/typebox").TOptio
8
8
  bottomOffset: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
9
9
  width: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
10
10
  height: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
11
+ hideDuringTransition: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
12
+ showAfterScriptEnd: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
11
13
  }>>;
12
14
  export type DialogPanelConfig = Static<typeof DialogPanelConfigSchema>;
13
15
  export declare const SplashScreenConfigSchema: import("@sinclair/typebox").TObject<{
@@ -74,6 +74,8 @@ export declare const ConfigInputSchema: import("@sinclair/typebox").TObject<{
74
74
  bottomOffset: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
75
75
  width: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
76
76
  height: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TNumber>;
77
+ hideDuringTransition: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
78
+ showAfterScriptEnd: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
77
79
  }>>>;
78
80
  splashScreens: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
79
81
  engineSplashScreen: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
@@ -315,6 +317,7 @@ export declare const ConfigInputSchema: import("@sinclair/typebox").TObject<{
315
317
  }>]>>>;
316
318
  name: import("@sinclair/typebox").TString;
317
319
  style: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
320
+ portraitCssClass: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
318
321
  color: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
319
322
  boxCss: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
320
323
  nameCss: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TRecord<import("@sinclair/typebox").TString, import("@sinclair/typebox").TAny>>;
@@ -323,5 +326,6 @@ export declare const ConfigInputSchema: import("@sinclair/typebox").TObject<{
323
326
  }>>;
324
327
  }>]>;
325
328
  choices: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
329
+ animations: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
326
330
  }>;
327
331
  export type ConfigInput = Static<typeof ConfigInputSchema>;
@@ -12,6 +12,7 @@ import { AchievementsConfig } from './achievements-config';
12
12
  import { SkillChecksConfig } from './skillchecks-config';
13
13
  import { SettingsConfig } from './settings-config';
14
14
  import { ChoicesConfig } from './choices-config';
15
+ import { AnimationsConfig } from './animations-config';
15
16
  export interface Config {
16
17
  baseAssetsPath: string;
17
18
  baseDataPath: string;
@@ -46,6 +47,7 @@ export interface Config {
46
47
  saves: SavesConfig;
47
48
  characters: CharactersFilesConfig;
48
49
  choices: ChoicesConfig;
50
+ animations: AnimationsConfig;
49
51
  }
50
52
  export declare const defaultConfig: {
51
53
  baseAssetsPath: string;
@@ -88,6 +90,8 @@ export declare const defaultConfig: {
88
90
  textSpeed: number;
89
91
  animateText: boolean;
90
92
  timeBetweenLines: number;
93
+ showDuringTransition: boolean;
94
+ showAfterScriptEnd: boolean;
91
95
  };
92
96
  splashScreens: {};
93
97
  screens: {
@@ -98,16 +102,16 @@ export declare const defaultConfig: {
98
102
  } | undefined;
99
103
  buttons?: (string | ({
100
104
  text?: string | undefined;
101
- cssClass?: string | undefined;
102
- action?: string | undefined;
103
- tag?: string | undefined;
104
105
  background?: string | undefined;
106
+ cssClass?: string | undefined;
105
107
  anchor?: {
106
108
  x: number;
107
109
  y: number;
108
110
  } | undefined;
111
+ action?: string | undefined;
109
112
  actionType?: string | undefined;
110
113
  scriptClickable?: boolean | undefined;
114
+ tag?: string | undefined;
111
115
  enabled: boolean;
112
116
  position: {
113
117
  width?: number | undefined;
@@ -125,16 +129,16 @@ export declare const defaultConfig: {
125
129
  clickableDuringScriptsByDefault?: boolean | undefined;
126
130
  buttons: Record<string, {
127
131
  text?: string | undefined;
128
- cssClass?: string | undefined;
129
- action?: string | undefined;
130
- tag?: string | undefined;
131
132
  background?: string | undefined;
133
+ cssClass?: string | undefined;
132
134
  anchor?: {
133
135
  x: number;
134
136
  y: number;
135
137
  } | undefined;
138
+ action?: string | undefined;
136
139
  actionType?: string | undefined;
137
140
  scriptClickable?: boolean | undefined;
141
+ tag?: string | undefined;
138
142
  enabled: boolean;
139
143
  position: {
140
144
  width?: number | undefined;
@@ -220,33 +224,34 @@ export declare const defaultConfig: {
220
224
  title: string;
221
225
  id: string;
222
226
  }[];
223
- defaultAchievementIcon: string;
224
227
  achievements: Record<string, {
228
+ icon?: string | undefined;
225
229
  category?: string | undefined;
230
+ lockedIcon?: string | undefined;
226
231
  secret?: boolean | undefined;
227
232
  name: string;
228
233
  description: string;
229
- icon: string;
230
234
  }>;
235
+ defaultAchievementIcon: string;
231
236
  notifyNewAchievements: boolean;
232
237
  };
233
238
  items: {
239
+ categories: {
240
+ title: string;
241
+ id: string;
242
+ }[];
234
243
  items: Record<string, {
235
- category?: string | undefined;
244
+ tag?: string | undefined;
236
245
  onUse?: {
237
246
  label: string;
238
247
  action: string;
239
248
  } | undefined;
240
- tag?: string | undefined;
249
+ category?: string | undefined;
241
250
  showIfEmpty?: boolean | undefined;
242
251
  name: string;
243
252
  description: string;
244
253
  icon: string;
245
254
  }>;
246
- categories: {
247
- title: string;
248
- id: string;
249
- }[];
250
255
  };
251
256
  interactionTags: {
252
257
  default: {
@@ -254,14 +259,18 @@ export declare const defaultConfig: {
254
259
  };
255
260
  };
256
261
  quests: {
262
+ categories: {
263
+ title: string;
264
+ id: string;
265
+ }[];
257
266
  quests: Record<string, {
267
+ category?: string | undefined;
258
268
  succeededDescription?: string | undefined;
259
269
  failedDescription?: string | undefined;
260
270
  endings?: Record<string, {
261
271
  description: string;
262
272
  success: boolean;
263
273
  }> | undefined;
264
- category?: string | undefined;
265
274
  title: string;
266
275
  description: string;
267
276
  objectives: Record<string, {
@@ -271,10 +280,6 @@ export declare const defaultConfig: {
271
280
  description: string;
272
281
  }>;
273
282
  }>;
274
- categories: {
275
- title: string;
276
- id: string;
277
- }[];
278
283
  };
279
284
  transitions: {};
280
285
  menuButtons: {};
@@ -293,6 +298,7 @@ export declare const defaultConfig: {
293
298
  };
294
299
  characters: Record<string, {
295
300
  style?: {
301
+ portraitCssClass?: string | undefined;
296
302
  color?: string | undefined;
297
303
  boxCss?: Record<string, any> | undefined;
298
304
  nameCss?: Record<string, any> | undefined;
@@ -302,8 +308,8 @@ export declare const defaultConfig: {
302
308
  loop?: boolean | undefined;
303
309
  width?: number | undefined;
304
310
  height?: number | undefined;
305
- muted?: boolean | undefined;
306
311
  autoplay?: boolean | undefined;
312
+ muted?: boolean | undefined;
307
313
  video: string;
308
314
  } | {
309
315
  width?: number | undefined;
@@ -320,5 +326,22 @@ export declare const defaultConfig: {
320
326
  textTemplate?: string | undefined;
321
327
  }>;
322
328
  };
329
+ animations: {
330
+ animations: Record<string, {
331
+ options?: {
332
+ fill?: string | undefined;
333
+ delay?: number | undefined;
334
+ duration?: number | undefined;
335
+ direction?: string | undefined;
336
+ easing?: string | undefined;
337
+ endDelay?: number | undefined;
338
+ iterationStart?: number | undefined;
339
+ iterations?: number | undefined;
340
+ keyframes?: any;
341
+ } | undefined;
342
+ keyframes: string | any[];
343
+ }>;
344
+ keyframes: Record<string, any[]>;
345
+ };
323
346
  };
324
347
  export declare const defaultConfigTyped: Config;
package/dist/config.d.ts CHANGED
@@ -60,32 +60,36 @@ export declare function skillChecksConfig(): {
60
60
  }>;
61
61
  };
62
62
  export declare function itemsConfig(): {
63
+ categories: {
64
+ title: string;
65
+ id: string;
66
+ }[];
63
67
  items: Record<string, {
64
- category?: string | undefined;
68
+ tag?: string | undefined;
65
69
  onUse?: {
66
70
  label: string;
67
71
  action: string;
68
72
  } | undefined;
69
- tag?: string | undefined;
73
+ category?: string | undefined;
70
74
  showIfEmpty?: boolean | undefined;
71
75
  name: string;
72
76
  description: string;
73
77
  icon: string;
74
78
  }>;
79
+ };
80
+ export declare function questsConfig(): {
75
81
  categories: {
76
82
  title: string;
77
83
  id: string;
78
84
  }[];
79
- };
80
- export declare function questsConfig(): {
81
85
  quests: Record<string, {
86
+ category?: string | undefined;
82
87
  succeededDescription?: string | undefined;
83
88
  failedDescription?: string | undefined;
84
89
  endings?: Record<string, {
85
90
  description: string;
86
91
  success: boolean;
87
92
  }> | undefined;
88
- category?: string | undefined;
89
93
  title: string;
90
94
  description: string;
91
95
  objectives: Record<string, {
@@ -95,10 +99,6 @@ export declare function questsConfig(): {
95
99
  description: string;
96
100
  }>;
97
101
  }>;
98
- categories: {
99
- title: string;
100
- id: string;
101
- }[];
102
102
  };
103
103
  export declare function screensConfig(): {
104
104
  screens: Record<string, {
@@ -108,16 +108,16 @@ export declare function screensConfig(): {
108
108
  } | undefined;
109
109
  buttons?: (string | ({
110
110
  text?: string | undefined;
111
- cssClass?: string | undefined;
112
- action?: string | undefined;
113
- tag?: string | undefined;
114
111
  background?: string | undefined;
112
+ cssClass?: string | undefined;
115
113
  anchor?: {
116
114
  x: number;
117
115
  y: number;
118
116
  } | undefined;
117
+ action?: string | undefined;
119
118
  actionType?: string | undefined;
120
119
  scriptClickable?: boolean | undefined;
120
+ tag?: string | undefined;
121
121
  enabled: boolean;
122
122
  position: {
123
123
  width?: number | undefined;
@@ -135,16 +135,16 @@ export declare function buttonsConfig(): {
135
135
  clickableDuringScriptsByDefault?: boolean | undefined;
136
136
  buttons: Record<string, {
137
137
  text?: string | undefined;
138
- cssClass?: string | undefined;
139
- action?: string | undefined;
140
- tag?: string | undefined;
141
138
  background?: string | undefined;
139
+ cssClass?: string | undefined;
142
140
  anchor?: {
143
141
  x: number;
144
142
  y: number;
145
143
  } | undefined;
144
+ action?: string | undefined;
146
145
  actionType?: string | undefined;
147
146
  scriptClickable?: boolean | undefined;
147
+ tag?: string | undefined;
148
148
  enabled: boolean;
149
149
  position: {
150
150
  width?: number | undefined;
@@ -185,6 +185,7 @@ export declare function charactersConfig(): {
185
185
  };
186
186
  characters: Record<string, {
187
187
  style?: {
188
+ portraitCssClass?: string | undefined;
188
189
  color?: string | undefined;
189
190
  boxCss?: Record<string, any> | undefined;
190
191
  nameCss?: Record<string, any> | undefined;
@@ -194,8 +195,8 @@ export declare function charactersConfig(): {
194
195
  loop?: boolean | undefined;
195
196
  width?: number | undefined;
196
197
  height?: number | undefined;
197
- muted?: boolean | undefined;
198
198
  autoplay?: boolean | undefined;
199
+ muted?: boolean | undefined;
199
200
  video: string;
200
201
  } | {
201
202
  width?: number | undefined;
@@ -212,6 +213,23 @@ export declare function choicesConfig(): {
212
213
  textTemplate?: string | undefined;
213
214
  }>;
214
215
  };
216
+ export declare function animationsConfig(): {
217
+ animations: Record<string, {
218
+ options?: {
219
+ fill?: string | undefined;
220
+ delay?: number | undefined;
221
+ duration?: number | undefined;
222
+ direction?: string | undefined;
223
+ easing?: string | undefined;
224
+ endDelay?: number | undefined;
225
+ iterationStart?: number | undefined;
226
+ iterations?: number | undefined;
227
+ keyframes?: any;
228
+ } | undefined;
229
+ keyframes: string | any[];
230
+ }>;
231
+ keyframes: Record<string, any[]>;
232
+ };
215
233
  export declare function getChoicePromptConfig(flag: string): {
216
234
  cssClass?: string | undefined;
217
235
  textTemplate?: string | undefined;
@@ -248,12 +266,12 @@ export declare function getSplitConfigUrl(basePath: string, url: string): string
248
266
  export declare function getDataUrl(dataPath: string): string;
249
267
  export declare function getButtonConfig(button: string): ButtonConfig;
250
268
  export declare function getItemConfig(id: string): {
251
- category?: string | undefined;
269
+ tag?: string | undefined;
252
270
  onUse?: {
253
271
  label: string;
254
272
  action: string;
255
273
  } | undefined;
256
- tag?: string | undefined;
274
+ category?: string | undefined;
257
275
  showIfEmpty?: boolean | undefined;
258
276
  name: string;
259
277
  description: string;
@@ -269,31 +287,33 @@ export declare function getAchievementsConfig(): {
269
287
  title: string;
270
288
  id: string;
271
289
  }[];
272
- defaultAchievementIcon: string;
273
290
  achievements: Record<string, {
291
+ icon?: string | undefined;
274
292
  category?: string | undefined;
293
+ lockedIcon?: string | undefined;
275
294
  secret?: boolean | undefined;
276
295
  name: string;
277
296
  description: string;
278
- icon: string;
279
297
  }>;
298
+ defaultAchievementIcon: string;
280
299
  notifyNewAchievements: boolean;
281
300
  };
282
301
  export declare function getAchievementConfig(id: string): {
302
+ icon?: string | undefined;
283
303
  category?: string | undefined;
304
+ lockedIcon?: string | undefined;
284
305
  secret?: boolean | undefined;
285
306
  name: string;
286
307
  description: string;
287
- icon: string;
288
308
  };
289
309
  export declare function getQuestConfig(questId: string): {
310
+ category?: string | undefined;
290
311
  succeededDescription?: string | undefined;
291
312
  failedDescription?: string | undefined;
292
313
  endings?: Record<string, {
293
314
  description: string;
294
315
  success: boolean;
295
316
  }> | undefined;
296
- category?: string | undefined;
297
317
  title: string;
298
318
  description: string;
299
319
  objectives: Record<string, {
@@ -1 +1,2 @@
1
1
  export { registerMenuButton } from '../menu-buttons/menu-buttons';
2
+ export * from '../hmr/hmr';
@@ -10,4 +10,5 @@ export { randomId } from '../utils/randomId';
10
10
  export { Vec2 } from '../utils/Vector2';
11
11
  export type { Vector2 } from '../utils/Vector2';
12
12
  export { gameloop } from '../utils/gameloop';
13
+ export { debounce } from '../utils/debounce';
13
14
  export * from '../utils/construct-narrat';
@@ -62,6 +62,7 @@ export type AnalogActionStatus = {
62
62
  };
63
63
  export type ActionStatus = ButtonActionStatus | AnalogActionStatus;
64
64
  export declare class Inputs extends EventTarget {
65
+ gamepadAvailable: boolean;
65
66
  gameActions: {
66
67
  [key: string]: Action;
67
68
  };
@@ -77,6 +78,7 @@ export declare class Inputs extends EventTarget {
77
78
  lastInputMethodUsed: InputMode;
78
79
  gamepad: NarratGamepad | null;
79
80
  kbEvent(): void;
81
+ getGamepads(): (Gamepad | null)[];
80
82
  gamepadEvent(): void;
81
83
  mouseEvent(): void;
82
84
  changeLastInput(inputMode: InputMode): void;
package/dist/main.d.ts CHANGED
@@ -6,4 +6,6 @@ import { AppOptionsInput } from './types/app-types';
6
6
  import { ModuleNamespace } from 'vite/types/hot';
7
7
  export type HMRCallback = (mod: ModuleNamespace | undefined) => void;
8
8
  export declare function startApp(optionsInput: AppOptionsInput): Promise<any>;
9
+ export declare function stopApp(): Promise<void>;
10
+ export declare function restartApp(): Promise<any>;
9
11
  export declare function registerComponent(name: string, component: any): void;