narraleaf-studio 1.6.2 → 1.6.3

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 (2) hide show
  1. package/dist/_api.d.ts +161 -33
  2. package/package.json +1 -1
package/dist/_api.d.ts CHANGED
@@ -2888,7 +2888,7 @@ declare const en: {
2888
2888
  readonly languagesTitle: "Languages";
2889
2889
  readonly languagesHint: "Languages of the game itself. The source language is the one the story is written in; the rest are translated against it.";
2890
2890
  readonly addLanguage: "Add language";
2891
- readonly codePlaceholder: "Code (en, ja, zh-CN\u2026)";
2891
+ readonly codePlaceholder: "Code, e.g. ja";
2892
2892
  readonly namePlaceholder: "Display name";
2893
2893
  readonly invalidCode: "Language codes may only contain letters, digits, and hyphens.";
2894
2894
  readonly sourceBadge: "Source";
@@ -3044,7 +3044,7 @@ declare const en: {
3044
3044
  readonly languagesTitle: "Voice languages";
3045
3045
  readonly languagesHint: "Languages with voice-over. Independent of the text languages.";
3046
3046
  readonly addLanguage: "Add voice language";
3047
- readonly codePlaceholder: "Code (ja, en, zh-CN\u2026)";
3047
+ readonly codePlaceholder: "Code, e.g. ja";
3048
3048
  readonly namePlaceholder: "Display name";
3049
3049
  readonly invalidCode: "Language codes may only contain letters, digits, and hyphens.";
3050
3050
  readonly more: "More";
@@ -3066,6 +3066,14 @@ declare const en: {
3066
3066
  readonly other: "{count} takes";
3067
3067
  };
3068
3068
  readonly importFailed: "Could not import the audio files";
3069
+ readonly replaceTakesTitle: "Replace existing takes";
3070
+ readonly replaceTakesMessage: {
3071
+ readonly one: "{count} file is named for a line that already has a take.";
3072
+ readonly other: "{count} files are named for lines that already have a take.";
3073
+ };
3074
+ readonly replaceTakesDetail: "Replacing writes each new file into the take it matches. Importing as new audio leaves the old takes in the asset library, linked to no line.";
3075
+ readonly replaceTakesImport: "Import as new audio";
3076
+ readonly replaceTakesReplace: "Replace takes";
3069
3077
  readonly importScript: "Import recording script\u2026";
3070
3078
  readonly importScriptCounts: "Applied {applied} ({unchanged} unchanged, {unknown} not voiced)";
3071
3079
  readonly scriptRowCount: {
@@ -3106,8 +3114,9 @@ declare const en: {
3106
3114
  readonly assign: "Assign audio";
3107
3115
  readonly replace: "Replace audio";
3108
3116
  readonly remove: "Remove voice";
3109
- readonly play: "Play";
3110
- readonly stop: "Stop";
3117
+ readonly play: "Play take";
3118
+ readonly showInStory: "Show in story";
3119
+ readonly stop: "Stop take";
3111
3120
  readonly approve: "Approve";
3112
3121
  readonly reject: "Return";
3113
3122
  readonly clipMissing: "Clip missing";
@@ -3140,6 +3149,17 @@ declare const en: {
3140
3149
  readonly unknown: "A story cannot be read, so orphan voice is not listed.";
3141
3150
  };
3142
3151
  };
3152
+ readonly script: {
3153
+ readonly column: {
3154
+ readonly filename: "File name";
3155
+ readonly character: "Speaker";
3156
+ readonly scene: "Scene";
3157
+ readonly line: "Line";
3158
+ readonly status: "Status";
3159
+ readonly note: "Note";
3160
+ readonly unitId: "Line ID";
3161
+ };
3162
+ };
3143
3163
  };
3144
3164
  readonly textSourceMigration: {
3145
3165
  readonly message: {
@@ -3269,6 +3289,8 @@ declare const en: {
3269
3289
  readonly replaceText: "text replacement";
3270
3290
  readonly agentEdit: "agent edit";
3271
3291
  readonly agentPluginEdit: "agent: {tool}";
3292
+ readonly importPsd: "PSD import";
3293
+ readonly importAudio: "audio import";
3272
3294
  };
3273
3295
  };
3274
3296
  readonly agent: {
@@ -4146,6 +4168,7 @@ declare const en: {
4146
4168
  readonly localization: "Translation Table";
4147
4169
  readonly voice: "Voice Table";
4148
4170
  readonly lint: "Problems";
4171
+ readonly search: "Search";
4149
4172
  readonly other: "Other";
4150
4173
  };
4151
4174
  readonly catalog: {
@@ -4203,6 +4226,10 @@ declare const en: {
4203
4226
  readonly cut: "Cut Nodes";
4204
4227
  readonly paste: "Paste Nodes";
4205
4228
  };
4229
+ readonly search: {
4230
+ readonly undo: "Undo Replace";
4231
+ readonly redo: "Redo Replace";
4232
+ };
4206
4233
  readonly storyMotion: {
4207
4234
  readonly undo: "Undo";
4208
4235
  readonly redo: "Redo";
@@ -4366,6 +4393,23 @@ declare const en: {
4366
4393
  readonly replaceAll: "Replace all";
4367
4394
  readonly replaceRow: "Replace this line";
4368
4395
  readonly replaceStale: "The project changed. Search again.";
4396
+ readonly replacedInScene: {
4397
+ readonly one: "Replaced {count} occurrence in {scene}";
4398
+ readonly other: "Replaced {count} occurrences in {scene}";
4399
+ };
4400
+ readonly replacedInScenes: {
4401
+ readonly one: "Replaced {count} occurrence in {scenes} scenes";
4402
+ readonly other: "Replaced {count} occurrences in {scenes} scenes";
4403
+ };
4404
+ readonly replacedUndoHint: "{key} in the Search panel undoes it in every scene.";
4405
+ readonly undoSkipped: {
4406
+ readonly one: "Replace not undone in {count} scene edited after it";
4407
+ readonly other: "Replace not undone in {count} scenes edited after it";
4408
+ };
4409
+ readonly redoSkipped: {
4410
+ readonly one: "Replace not redone in {count} scene edited after the undo";
4411
+ readonly other: "Replace not redone in {count} scenes edited after the undo";
4412
+ };
4369
4413
  readonly groups: {
4370
4414
  readonly scene: "Scenes";
4371
4415
  readonly story: "Stories";
@@ -4833,6 +4877,20 @@ declare const en: {
4833
4877
  readonly stage: {
4834
4878
  readonly notOnStage: "Not on stage";
4835
4879
  readonly builtin: "Built-in";
4880
+ readonly reserved: {
4881
+ readonly camera: "Camera";
4882
+ readonly background: "Scene background";
4883
+ readonly backgroundLayer: "Background layer";
4884
+ readonly displayableLayer: "Base layer";
4885
+ };
4886
+ readonly defaultName: {
4887
+ readonly text: "text";
4888
+ };
4889
+ readonly reservedHint: {
4890
+ readonly background: "The scene's background image";
4891
+ readonly backgroundLayer: "Built-in layer, behind everything";
4892
+ readonly displayableLayer: "Built-in default layer";
4893
+ };
4836
4894
  };
4837
4895
  readonly targetField: {
4838
4896
  readonly label: "Target";
@@ -4972,10 +5030,6 @@ declare const en: {
4972
5030
  readonly removeStarred: "Remove from starred";
4973
5031
  readonly starredEmpty: "Starred commands are listed first in the \u201C/\u201D menu.";
4974
5032
  };
4975
- readonly music: {
4976
- readonly missingAudio: "Missing audio";
4977
- readonly none: "No music";
4978
- };
4979
5033
  readonly background: {
4980
5034
  readonly missingImage: "Missing image";
4981
5035
  readonly none: "No background";
@@ -4993,7 +5047,7 @@ declare const en: {
4993
5047
  readonly times: "Times";
4994
5048
  readonly character: "Character";
4995
5049
  readonly speaker: "Speaker";
4996
- readonly form: "Expression";
5050
+ readonly form: "Appearance";
4997
5051
  readonly motion: "Motion";
4998
5052
  readonly skin: "Skin";
4999
5053
  readonly puppetParam: "Parameter";
@@ -5266,9 +5320,9 @@ declare const en: {
5266
5320
  readonly video: "Video asset";
5267
5321
  readonly character: "Character";
5268
5322
  readonly characterOrName: "Character, or any name";
5269
- readonly characterForm: "One of that character's expressions";
5323
+ readonly characterForm: "One of that character's appearances";
5270
5324
  readonly puppet: {
5271
- readonly motion: "A motion provided by the runtime (blank returns it to rest)";
5325
+ readonly motion: "A motion provided by the runtime, played in a loop (blank returns it to rest)";
5272
5326
  readonly expression: "An expression provided by the runtime (blank clears it)";
5273
5327
  readonly skin: "A skin provided by the runtime (blank restores the default)";
5274
5328
  readonly param: "A numeric parameter of the model, by id";
@@ -5343,8 +5397,8 @@ declare const en: {
5343
5397
  readonly createCharacterUnavailable: "Unavailable in a live session. Choose an existing character.";
5344
5398
  readonly voiceOutdated: "Voice outdated, open voice table";
5345
5399
  readonly voiceManage: "Open voice table";
5346
- readonly voicePlay: "Play voice take";
5347
- readonly voiceStop: "Stop voice take";
5400
+ readonly voicePlay: "Play take";
5401
+ readonly voiceStop: "Stop take";
5348
5402
  };
5349
5403
  readonly sceneEditor: {
5350
5404
  readonly defaultSceneName: "Untitled Scene";
@@ -5357,16 +5411,6 @@ declare const en: {
5357
5411
  readonly noDescription: "No description";
5358
5412
  readonly defaultBackground: "Default background";
5359
5413
  readonly clearBackground: "Clear background";
5360
- readonly sceneMusic: "Scene music";
5361
- readonly clearSceneMusic: "Clear scene music";
5362
- readonly selectSceneMusic: "Select Scene Music";
5363
- readonly sceneMusicVolume: "Volume";
5364
- readonly sceneMusicLoop: "Loop";
5365
- readonly sceneMusicFade: "Fade in (s)";
5366
- readonly sceneMusicLoopRegion: "Loops {from}s to {to}s";
5367
- readonly sceneMusicIntroLoop: "Plays {from}s, loops {loop}s to {to}s";
5368
- readonly sceneMusicFromIn: "Starts at {from}s";
5369
- readonly sceneMusicWholeClip: "Whole clip";
5370
5414
  readonly selectDefaultBackground: "Select Default Background";
5371
5415
  readonly tabInvalid: "Story scene editor tab is invalid.";
5372
5416
  readonly loadingScene: "Loading story scene\u2026";
@@ -5656,7 +5700,7 @@ declare const en: {
5656
5700
  };
5657
5701
  readonly motion: {
5658
5702
  readonly label: "Motion";
5659
- readonly detail: "Set the motion a runtime-drawn character plays";
5703
+ readonly detail: "Set the motion a runtime-drawn character loops until another row changes it";
5660
5704
  };
5661
5705
  readonly param: {
5662
5706
  readonly label: "Parameter";
@@ -5684,7 +5728,7 @@ declare const en: {
5684
5728
  };
5685
5729
  readonly vfx: {
5686
5730
  readonly label: "Ambience";
5687
- readonly detail: "Declare a looping full-screen overlay: petals, rain, dust, light";
5731
+ readonly detail: "Declare a looping full-screen overlay (petals, rain, dust, light); /show reveals it";
5688
5732
  };
5689
5733
  readonly layer: {
5690
5734
  readonly label: "Layer";
@@ -6020,6 +6064,7 @@ declare const en: {
6020
6064
  readonly changeSpeaker: "Change speaker";
6021
6065
  readonly speakerNameOnly: "{name} (name only)";
6022
6066
  readonly openInspector: "Open inspector";
6067
+ readonly editAsText: "Edit as text";
6023
6068
  readonly delete: "Delete";
6024
6069
  };
6025
6070
  readonly history: {
@@ -6082,6 +6127,7 @@ declare const en: {
6082
6127
  readonly undo: "Undo story scene edit";
6083
6128
  readonly redo: "Redo story scene edit";
6084
6129
  readonly editRow: "Edit the active row (or open its inspector)";
6130
+ readonly editRowAsText: "Edit the active row as text";
6085
6131
  readonly closeInspector: "Close the property editor";
6086
6132
  readonly insertRow: "Insert a new story row below the active row";
6087
6133
  readonly indent: "Indent selected story rows";
@@ -6150,6 +6196,7 @@ declare const en: {
6150
6196
  unknownVariable: string;
6151
6197
  unknownForm: string;
6152
6198
  notPuppetCharacter: string;
6199
+ puppetNoExpressions: string;
6153
6200
  ambiguousName: string;
6154
6201
  conflictingParams: string;
6155
6202
  positionOutOfRange: string;
@@ -6753,6 +6800,9 @@ declare const en: {
6753
6800
  readonly history: {
6754
6801
  readonly deleteAsset: "delete {name}";
6755
6802
  readonly deleteGroup: "delete folder {name}";
6803
+ readonly replaceContent: "replace {name}";
6804
+ readonly convert: "convert {name}";
6805
+ readonly restoreFailed: "Could not restore \u201C{name}\u201D.";
6756
6806
  };
6757
6807
  readonly delete: {
6758
6808
  readonly inUseTitle: "These assets are still in use";
@@ -6785,6 +6835,10 @@ declare const en: {
6785
6835
  readonly confirmAction: "Replace";
6786
6836
  readonly failedTitle: "Failed to replace asset contents";
6787
6837
  readonly remoteUnsupported: "Remote assets have no local file to replace.";
6838
+ readonly notKept: "Could not replace \u201C{name}\u201D.";
6839
+ readonly reason: {
6840
+ readonly notKept: "A copy of the current file could not be saved.";
6841
+ };
6788
6842
  };
6789
6843
  readonly types: {
6790
6844
  readonly image: "Images";
@@ -6971,7 +7025,7 @@ declare const en: {
6971
7025
  readonly familyNoRuntime: "No runtime is installed here. The drawing runtime is set on the character.";
6972
7026
  readonly family: {
6973
7027
  readonly live2d: "Live2D Cubism";
6974
- readonly live2dHint: "A folder holding a .model3.json, or Cubism 2's model.json.";
7028
+ readonly live2dHint: "A folder holding a .model3.json (Cubism 3 or later).";
6975
7029
  readonly spine: "Spine";
6976
7030
  readonly spineHint: "A folder holding a .skel or .json skeleton beside its .atlas.";
6977
7031
  };
@@ -6999,7 +7053,7 @@ declare const en: {
6999
7053
  readonly one: "Import {count} model";
7000
7054
  readonly other: "Import {count} models";
7001
7055
  };
7002
- readonly blockedHint: "Models with missing files start unticked. Tick one to import it as-is.";
7056
+ readonly blockedHint: "Models marked in red start unticked. Tick one to import it as-is.";
7003
7057
  readonly problemCount: {
7004
7058
  readonly one: "{count} problem";
7005
7059
  readonly other: "{count} problems";
@@ -7011,6 +7065,7 @@ declare const en: {
7011
7065
  readonly atlasMissing: "No atlas beside the skeleton; {path} was expected.";
7012
7066
  readonly atlasEmpty: "{path} names no image.";
7013
7067
  readonly nestedModel: "Holds another model, {path}, which would be copied with it.";
7068
+ readonly cubism2: "{path} is a Cubism 2 model. The Live2D Cubism runtime draws Cubism 3 and later models only.";
7014
7069
  };
7015
7070
  readonly role: {
7016
7071
  readonly moc: "model file";
@@ -7643,6 +7698,7 @@ declare const en: {
7643
7698
  readonly unknownVariant: "\u201C{element}\u201D has no such variant.";
7644
7699
  readonly pageNotFound: "The page was not found in this project.";
7645
7700
  readonly notALayer: "\u201C{node}\u201D: this page is not a layer, so nothing was closed.";
7701
+ readonly pageMusicInGame: "\u201C{node}\u201D: a game is running, and the story decides the music while it does. The page's music was not changed.";
7646
7702
  readonly persistentVariableMissing: "The persistent variable this node uses no longer exists.";
7647
7703
  readonly persistentVariableNoKey: "The persistent variable \u201C{name}\u201D has no storage key.";
7648
7704
  readonly slotIsRunningGame: "This node needs a save in storage. The slot it received is the running game, which only \u201C{node}\u201D can inherit from.";
@@ -8497,6 +8553,7 @@ declare const en: {
8497
8553
  readonly getVoiceVolume: "Get Voice Volume";
8498
8554
  readonly hasReadText: "Has Read Text";
8499
8555
  readonly playSound: "Play Sound";
8556
+ readonly playPageMusic: "Play Page Music";
8500
8557
  readonly setAutoForward: "Set Auto Forward";
8501
8558
  readonly setAutoForwardDelay: "Set Auto Forward Delay";
8502
8559
  readonly setTextRevealDuration: "Set Text Fade In";
@@ -8543,6 +8600,7 @@ declare const en: {
8543
8600
  readonly setVoiceFadeDuration: "Set Voice Fade Duration";
8544
8601
  readonly setVoiceVolume: "Set Voice Volume";
8545
8602
  readonly stopSound: "Stop Sound";
8603
+ readonly stopPageMusic: "Stop Page Music";
8546
8604
  readonly pauseSound: "Pause Sound";
8547
8605
  readonly resumeSound: "Resume Sound";
8548
8606
  readonly setSoundVolume: "Set Sound Volume";
@@ -8972,6 +9030,8 @@ declare const en: {
8972
9030
  readonly getTotalPlaytime: "Get Total Playtime";
8973
9031
  };
8974
9032
  readonly nodeDescription: {
9033
+ readonly playPageMusic: "Makes this the music of the page this graph runs on, for as long as the page is open, in place of the music set in its properties. The music playing hands over to it, and the same music already playing carries on. Going back to a page underneath brings that page's music back. Does nothing while a game is running: the story decides the music then.";
9034
+ readonly stopPageMusic: "Silences the page this graph runs on, for as long as it is open. The music playing fades out over Fade (s), or over its own fade when Fade (s) is not connected. Does nothing while a game is running: the story decides the music then.";
8975
9035
  readonly getComponentParam: "The value this placement sets for the chosen parameter, or the parameter's default when it sets none. A Text parameter that reads from a translation key gives the key's name; Translation Key Text gives its words.";
8976
9036
  readonly getPageParam: "The value the page was opened with for the chosen param, or the param's default when it was given none. Params are declared in the page's properties.";
8977
9037
  readonly compareEqual: "True when A and B are the same value of the same type. Lists and objects are compared by their contents, an element by which element it is. The number 1 and the text \"1\" are not equal; an input left unconnected counts as Null.";
@@ -9123,6 +9183,7 @@ declare const en: {
9123
9183
  readonly redescribe: "Read the model again";
9124
9184
  readonly previewFailed: "This model could not be drawn";
9125
9185
  readonly setupTitle: "Two things to set up";
9186
+ readonly setupTitleOne: "Left to set up: {item}";
9126
9187
  readonly stepRuntime: "Drawing runtime";
9127
9188
  readonly stepModel: "Model";
9128
9189
  readonly runtimeInstalled: "Installed";
@@ -9275,6 +9336,7 @@ declare const en: {
9275
9336
  readonly thumbnail: "Thumbnail";
9276
9337
  readonly preview: "Preview";
9277
9338
  readonly defaultAvatar: "Default dialog avatar";
9339
+ readonly defaultAvatarRuntimeHint: "A character drawn by a runtime has no generated avatar. Dialogue shows this one.";
9278
9340
  readonly voiceTrack: "Voice track";
9279
9341
  readonly voiceTrackMissing: "Missing track";
9280
9342
  readonly voiceTrackEmpty: "Add a track under Voice in Project \u25B8 Game to give this character its own volume control.";
@@ -9311,7 +9373,8 @@ declare const en: {
9311
9373
  readonly variant: "Variant: {name}";
9312
9374
  readonly loading: "Loading preview\u2026";
9313
9375
  readonly failed: "Preview failed";
9314
- readonly placeholder: "Select a variant with an image to preview";
9376
+ readonly emptyLayered: "Add a layer with an image, or import a PSD, to preview";
9377
+ readonly emptyPreset: "Set an image for this pose to preview";
9315
9378
  readonly noSize: "No size";
9316
9379
  readonly noMetadata: "No metadata";
9317
9380
  readonly zoomOut: "Zoom Out";
@@ -9436,6 +9499,26 @@ declare const en: {
9436
9499
  readonly chooseClick: "Choose click sound";
9437
9500
  readonly missing: "Missing sound";
9438
9501
  };
9502
+ readonly music: {
9503
+ readonly title: "Music";
9504
+ readonly none: "No music";
9505
+ readonly keep: "Keep current music";
9506
+ readonly silent: "No music";
9507
+ readonly choosePage: "Choose page music";
9508
+ readonly chooseScene: "Choose scene music";
9509
+ readonly missing: "Missing music";
9510
+ readonly loop: "Loop";
9511
+ readonly fade: "Fade";
9512
+ readonly loops: "Loops";
9513
+ readonly loopRegion: "Loops {from}s to {to}s";
9514
+ readonly loopToEnd: "Loops {from}s to the end";
9515
+ readonly introLoopRegion: "Plays from {start}s, loops {from}s to {to}s";
9516
+ readonly introLoopToEnd: "Plays from {start}s, loops {from}s to the end";
9517
+ readonly once: "Plays once";
9518
+ readonly onceFrom: "Plays once from {from}s";
9519
+ readonly onceRegion: "Plays once {from}s to {to}s";
9520
+ readonly fadeSummary: "Fade {seconds}s";
9521
+ };
9439
9522
  readonly linkedComponent: {
9440
9523
  readonly missing: "Missing component";
9441
9524
  readonly info: "Linked instance. Only its params and its position, size and rotation can be changed before unlinking.";
@@ -12122,8 +12205,9 @@ declare const en: {
12122
12205
  readonly name: "Project Name";
12123
12206
  readonly namePlaceholder: "Project name";
12124
12207
  readonly appIdPlaceholder: "App identifier";
12125
- readonly appIdHelper: "Lowercase letters, digits and hyphens, or a reverse-domain id such as com.studio.game. Cannot be changed after creation.";
12208
+ readonly appIdHelper: "Identifies the released game on the player's device. Lowercase letters, digits and hyphens, or a reverse-domain ID such as com.studio.game. Cannot be changed after the project is created.";
12126
12209
  readonly appIdRequired: "App ID is required";
12210
+ readonly appIdInUse: "Already used by the project \u201C{name}\u201D on this machine";
12127
12211
  readonly appIdInvalid: "App ID can only contain lowercase letters, numbers and hyphens, with dots only between the parts of a reverse-domain id such as com.studio.game";
12128
12212
  readonly locationPlaceholder: "Project location";
12129
12213
  readonly browseLocation: "Choose folder";
@@ -13626,6 +13710,12 @@ declare const en: {
13626
13710
  readonly message: "This background is already on screen, so the transition changes nothing";
13627
13711
  readonly help: string;
13628
13712
  };
13713
+ readonly storyTagNameShared: {
13714
+ readonly title: "Tag name on two axes";
13715
+ readonly description: "A character with layered sprites using one tag name on two axes";
13716
+ readonly message: "The tag \"{tag}\" is on both \"{first}\" and \"{second}\"";
13717
+ readonly help: string;
13718
+ };
13629
13719
  readonly blueprintReferenceMissing: {
13630
13720
  readonly title: "Missing target";
13631
13721
  readonly description: "A node naming something the project no longer has";
@@ -13907,13 +13997,13 @@ declare const en: {
13907
13997
  readonly voiceMissing: {
13908
13998
  readonly title: "Missing voice";
13909
13999
  readonly description: "A line with no recording in a voiced language";
13910
- readonly message: "No {locale} recording";
14000
+ readonly message: "No {language} recording";
13911
14001
  readonly help: string;
13912
14002
  };
13913
14003
  readonly voiceStale: {
13914
14004
  readonly title: "Stale voice";
13915
14005
  readonly description: "The line changed after it was recorded";
13916
- readonly message: "{locale} recording is older than the line";
14006
+ readonly message: "{language} recording predates a change to the line";
13917
14007
  readonly help: string;
13918
14008
  };
13919
14009
  readonly voiceOrphan: {
@@ -13921,8 +14011,8 @@ declare const en: {
13921
14011
  readonly description: "A recording whose line no longer exists";
13922
14012
  readonly message: "{recordings} with no line";
13923
14013
  readonly recordingCount: {
13924
- readonly one: "{count} {locale} recording";
13925
- readonly other: "{count} {locale} recordings";
14014
+ readonly one: "{count} {language} recording";
14015
+ readonly other: "{count} {language} recordings";
13926
14016
  };
13927
14017
  readonly help: string;
13928
14018
  };
@@ -15069,6 +15159,10 @@ declare const en: {
15069
15159
  readonly title: "Focus navigation";
15070
15160
  readonly body: string;
15071
15161
  };
15162
+ readonly pageMusic: {
15163
+ readonly title: "Page music";
15164
+ readonly body: string;
15165
+ };
15072
15166
  readonly focusNavigationSettings: {
15073
15167
  readonly title: "Navigation settings";
15074
15168
  readonly body: string;
@@ -16588,6 +16682,22 @@ type UIPageAnimationSettings = {
16588
16682
  /** Surfaces only: hold the incoming Page until this exit has finished. */
16589
16683
  exitBlocking: boolean;
16590
16684
  };
16685
+ type UIPageMusic = {
16686
+ /** Audio library asset id, or an audio asset set's id. */
16687
+ assetId: string;
16688
+ /** The project audio track it plays on (`ProjectAudioTrack.id`). Absent = the Music track. */
16689
+ audioTrackId?: string;
16690
+ /** 0-1 as authored. Absent = 1. */
16691
+ volume?: number;
16692
+ /** Absent = the track's own loop default (Music loops). */
16693
+ loop?: boolean;
16694
+ /** Fade-in as the page brings it in, and fade-out as it hands over, in milliseconds. Absent = 0. */
16695
+ fadeMs?: number;
16696
+ };
16697
+ type UIPageSilence = {
16698
+ silent: true;
16699
+ };
16700
+ type UIPageMusicSetting = UIPageMusic | UIPageSilence;
16591
16701
  type UISurfaceBackgroundFillMode = "cover" | "contain" | "stretch" | "tile";
16592
16702
  type UISurfaceBackgroundImage = {
16593
16703
  /** Image library asset id. Absent background = absent field, so this is never empty. */
@@ -16717,6 +16827,12 @@ type UISurfaceSettings = {
16717
16827
  * a scaled Surface keep showing the colour, so the two settings are not alternatives.
16718
16828
  */
16719
16829
  backgroundImage?: UISurfaceBackgroundImage;
16830
+ /**
16831
+ * What a page does to the music while it is the page on screen: play this, or silence. Absent
16832
+ * keeps whatever is playing (see `pageMusic.ts`). Read for pages only: a Game UI is drawn over
16833
+ * the running scene, whose own music is what plays there.
16834
+ */
16835
+ music?: UIPageMusicSetting;
16720
16836
  pageAnimation?: UIPageAnimationSettings;
16721
16837
  /** Where the focus starts when this Surface opens, and whether it is put there. See `navigation.ts`. */
16722
16838
  navigation?: UISurfaceNavigation;
@@ -17010,6 +17126,11 @@ type PsdFingerprintSlot = {
17010
17126
  layerId: string;
17011
17127
  /** The tag it feeds, when that layer is bound to an axis. Absent for a constant layer. */
17012
17128
  tagId?: string;
17129
+ /**
17130
+ * The image this import put in that slot. A re-import writes the layer's new bytes into it, as
17131
+ * long as the slot still shows it. Absent in a fingerprint written before it was recorded.
17132
+ */
17133
+ assetId?: string;
17013
17134
  };
17014
17135
  type PsdFingerprint = {
17015
17136
  fileName: string;
@@ -19822,6 +19943,7 @@ declare const HELP_TOPIC_IDS: readonly [
19822
19943
  "inputActionsInBlueprints",
19823
19944
  "focusNavigation",
19824
19945
  "focusNavigationSettings",
19946
+ "pageMusic",
19825
19947
  "uiComponents",
19826
19948
  "blueprints",
19827
19949
  "scripts",
@@ -22445,6 +22567,7 @@ export type PluginWidgetModule = {
22445
22567
  createFloatingToolbarItems?(context: PluginWidgetFloatingToolbarContext): FloatingToolbarItem[];
22446
22568
  createLayoutSizeField?(context: PluginWidgetLayoutSizeFieldContext): FieldDefinition<PluginWidgetInspectorData> | null | undefined;
22447
22569
  };
22570
+ type ModelFamily = "live2d" | "spine";
22448
22571
  /**
22449
22572
  * Caller-defined section (e.g. built-in presets) shown as a collapsible group in the asset list.
22450
22573
  * Workspace filter chips do not apply; only the search box filters `assets` (same rules as project assets).
@@ -22472,6 +22595,11 @@ export interface AssetSelectorProps {
22472
22595
  * Return null/undefined to fall back to the default fetch path.
22473
22596
  */
22474
22597
  resolveAssetPreviewUrl?: (asset: Asset) => Promise<string | null | undefined>;
22598
+ /**
22599
+ * For a model picker: the kind of model the caller draws, which the import wizard opens on. Left
22600
+ * out, the wizard asks.
22601
+ */
22602
+ modelFamily?: ModelFamily;
22475
22603
  onClose: () => void;
22476
22604
  onConfirm: (assets: Asset[]) => void;
22477
22605
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "narraleaf-studio",
3
- "version": "1.6.2",
3
+ "version": "1.6.3",
4
4
  "description": "TypeScript declarations for the NarraLeaf Studio plugin API (narraleaf-studio/plugin and narraleaf-studio/runtime).",
5
5
  "license": "MPL-2.0",
6
6
  "type": "module",