@ai-game-assets/phaser 0.1.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/dist/animations.d.ts +4 -0
- package/dist/animations.d.ts.map +1 -0
- package/dist/animations.js +36 -0
- package/dist/animations.js.map +1 -0
- package/dist/debug-client.d.ts +109 -0
- package/dist/debug-client.d.ts.map +1 -0
- package/dist/debug-client.js +157 -0
- package/dist/debug-client.js.map +1 -0
- package/dist/designer-support.d.ts +271 -0
- package/dist/designer-support.d.ts.map +1 -0
- package/dist/designer-support.js +3341 -0
- package/dist/designer-support.js.map +1 -0
- package/dist/designer.d.ts +49 -0
- package/dist/designer.d.ts.map +1 -0
- package/dist/designer.js +592 -0
- package/dist/designer.js.map +1 -0
- package/dist/first-drafts.d.ts +36 -0
- package/dist/first-drafts.d.ts.map +1 -0
- package/dist/first-drafts.js +178 -0
- package/dist/first-drafts.js.map +1 -0
- package/dist/frame-transforms.d.ts +24 -0
- package/dist/frame-transforms.d.ts.map +1 -0
- package/dist/frame-transforms.js +33 -0
- package/dist/frame-transforms.js.map +1 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -0
- package/dist/keys.d.ts +3 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +9 -0
- package/dist/keys.js.map +1 -0
- package/dist/loader.d.ts +12 -0
- package/dist/loader.d.ts.map +1 -0
- package/dist/loader.js +130 -0
- package/dist/loader.js.map +1 -0
- package/dist/phaser-types.d.ts +41 -0
- package/dist/phaser-types.d.ts.map +1 -0
- package/dist/phaser-types.js +2 -0
- package/dist/phaser-types.js.map +1 -0
- package/dist/placeholder.d.ts +3 -0
- package/dist/placeholder.d.ts.map +1 -0
- package/dist/placeholder.js +56 -0
- package/dist/placeholder.js.map +1 -0
- package/dist/runtime.d.ts +15 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +43 -0
- package/dist/runtime.js.map +1 -0
- package/package.json +30 -0
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type AiAssetManifest, type AiAssetSelection } from "@ai-game-assets/core";
|
|
2
|
+
import type { PhaserSceneLike } from "./phaser-types.js";
|
|
3
|
+
export declare function createAiAnimations(scene: PhaserSceneLike, manifest: AiAssetManifest, selection: AiAssetSelection | string): void;
|
|
4
|
+
//# sourceMappingURL=animations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animations.d.ts","sourceRoot":"","sources":["../src/animations.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,eAAe,EACtB,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,gBAAgB,GAAG,MAAM,GACnC,IAAI,CAmCN"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { resolveAiAsset } from "@ai-game-assets/core";
|
|
2
|
+
import { aiTextureKey } from "./keys.js";
|
|
3
|
+
export function createAiAnimations(scene, manifest, selection) {
|
|
4
|
+
if (!scene.anims) {
|
|
5
|
+
throw new Error("The provided Phaser scene does not expose an animation manager.");
|
|
6
|
+
}
|
|
7
|
+
const assetId = typeof selection === "string" ? selection : selection.assetId;
|
|
8
|
+
const unresolvedAsset = manifest.assets[assetId];
|
|
9
|
+
const resolved = unresolvedAsset && Object.keys(unresolvedAsset.versions).length === 0
|
|
10
|
+
? { asset: unresolvedAsset, versionName: "" }
|
|
11
|
+
: resolveAiAsset(manifest, selection);
|
|
12
|
+
const animations = resolved.asset.animations ?? [];
|
|
13
|
+
const textureKey = aiTextureKey({
|
|
14
|
+
assetId: resolved.asset.id,
|
|
15
|
+
versionName: resolved.versionName === resolved.asset.activeVersion
|
|
16
|
+
? undefined
|
|
17
|
+
: resolved.versionName
|
|
18
|
+
});
|
|
19
|
+
for (const animation of animations) {
|
|
20
|
+
const frames = scene.anims.generateFrameNumbers(textureKey, {
|
|
21
|
+
frames: animation.frames
|
|
22
|
+
});
|
|
23
|
+
scene.anims.create({
|
|
24
|
+
key: animation.key,
|
|
25
|
+
frames: Array.isArray(frames)
|
|
26
|
+
? frames.map((frame, index) => ({
|
|
27
|
+
...frame,
|
|
28
|
+
duration: animation.frameTimings?.[index]?.delayMs
|
|
29
|
+
}))
|
|
30
|
+
: frames,
|
|
31
|
+
frameRate: animation.frameRate,
|
|
32
|
+
repeat: animation.repeat ?? -1
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=animations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animations.js","sourceRoot":"","sources":["../src/animations.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,MAAM,UAAU,kBAAkB,CAChC,KAAsB,EACtB,QAAyB,EACzB,SAAoC;IAEpC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;IACrF,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC;IAC9E,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,eAAe,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC,MAAM,KAAK,CAAC;QACpF,CAAC,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,EAAE,EAAE;QAC7C,CAAC,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,IAAI,EAAE,CAAC;IACnD,MAAM,UAAU,GAAG,YAAY,CAAC;QAC9B,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,EAAE;QAC1B,WAAW,EAAE,QAAQ,CAAC,WAAW,KAAK,QAAQ,CAAC,KAAK,CAAC,aAAa;YAChE,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,QAAQ,CAAC,WAAW;KACzB,CAAC,CAAC;IAEH,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,UAAU,EAAE;YAC1D,MAAM,EAAE,SAAS,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YACjB,GAAG,EAAE,SAAS,CAAC,GAAG;YAClB,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC;gBAC3B,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC5B,GAAG,KAAK;oBACR,QAAQ,EAAE,SAAS,CAAC,YAAY,EAAE,CAAC,KAAK,CAAC,EAAE,OAAO;iBACnD,CAAC,CAAC;gBACL,CAAC,CAAC,MAAM;YACV,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC;SAC/B,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import type { AiAssetGenerationSettings, AiAssetManifest, AiAudioPlaybackSettings, AiAudioGenerationSettings, AiVoiceGenerationSettings } from "@ai-game-assets/core";
|
|
2
|
+
export type GenerateDebugOptionsRequest = {
|
|
3
|
+
assetId: string;
|
|
4
|
+
prompt?: string;
|
|
5
|
+
count?: number;
|
|
6
|
+
dimensions?: {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
frameCount?: number;
|
|
11
|
+
format?: AiAssetGenerationSettings["format"];
|
|
12
|
+
audioSettings?: AiAudioGenerationSettings;
|
|
13
|
+
voiceSettings?: AiVoiceGenerationSettings;
|
|
14
|
+
styleGuide?: DebugStyleGuideDraft;
|
|
15
|
+
};
|
|
16
|
+
export type DebugStyleGuideDraft = {
|
|
17
|
+
prompt?: string;
|
|
18
|
+
images: Array<{
|
|
19
|
+
name: string;
|
|
20
|
+
dataUrl: string;
|
|
21
|
+
}>;
|
|
22
|
+
};
|
|
23
|
+
export type GeneratedDebugOption = {
|
|
24
|
+
index: number;
|
|
25
|
+
dataUrl: string;
|
|
26
|
+
mimeType: string;
|
|
27
|
+
prompt: string;
|
|
28
|
+
model?: string;
|
|
29
|
+
revisedPrompt?: string;
|
|
30
|
+
dimensions?: {
|
|
31
|
+
width: number;
|
|
32
|
+
height: number;
|
|
33
|
+
};
|
|
34
|
+
frameGrid?: {
|
|
35
|
+
frameCount?: number;
|
|
36
|
+
frameWidth: number;
|
|
37
|
+
frameHeight: number;
|
|
38
|
+
columns: number;
|
|
39
|
+
rows: number;
|
|
40
|
+
margin?: number;
|
|
41
|
+
spacing?: number;
|
|
42
|
+
};
|
|
43
|
+
animations?: Array<{
|
|
44
|
+
key: string;
|
|
45
|
+
frames: number[];
|
|
46
|
+
frameRate: number;
|
|
47
|
+
repeat?: number;
|
|
48
|
+
prompt?: string;
|
|
49
|
+
frameTimings?: Array<{
|
|
50
|
+
delayMs?: number;
|
|
51
|
+
offsetX?: number;
|
|
52
|
+
offsetY?: number;
|
|
53
|
+
scaleX?: number;
|
|
54
|
+
scaleY?: number;
|
|
55
|
+
rotation?: number;
|
|
56
|
+
tag?: string;
|
|
57
|
+
}>;
|
|
58
|
+
}>;
|
|
59
|
+
settings?: AiAssetGenerationSettings;
|
|
60
|
+
audioSettings?: AiAudioGenerationSettings;
|
|
61
|
+
audioPlayback?: AiAudioPlaybackSettings;
|
|
62
|
+
voiceSettings?: AiVoiceGenerationSettings;
|
|
63
|
+
durationSeconds?: number;
|
|
64
|
+
};
|
|
65
|
+
export type SaveDebugOptionRequest = {
|
|
66
|
+
assetId: string;
|
|
67
|
+
versionName: string;
|
|
68
|
+
dataUrl: string;
|
|
69
|
+
prompt: string;
|
|
70
|
+
model?: string;
|
|
71
|
+
revisedPrompt?: string;
|
|
72
|
+
dimensions?: {
|
|
73
|
+
width: number;
|
|
74
|
+
height: number;
|
|
75
|
+
};
|
|
76
|
+
frameGrid?: GeneratedDebugOption["frameGrid"];
|
|
77
|
+
animations?: GeneratedDebugOption["animations"];
|
|
78
|
+
settings?: AiAssetGenerationSettings;
|
|
79
|
+
audioSettings?: AiAudioGenerationSettings;
|
|
80
|
+
audioPlayback?: AiAudioPlaybackSettings;
|
|
81
|
+
voiceSettings?: AiVoiceGenerationSettings;
|
|
82
|
+
durationSeconds?: number;
|
|
83
|
+
activate?: boolean;
|
|
84
|
+
notes?: string;
|
|
85
|
+
};
|
|
86
|
+
export type EnsureFirstDraftsRequest = {
|
|
87
|
+
assetIds?: string[];
|
|
88
|
+
};
|
|
89
|
+
export type EnsureFirstDraftsResult = {
|
|
90
|
+
manifest: AiAssetManifest;
|
|
91
|
+
generated: Array<{
|
|
92
|
+
assetId: string;
|
|
93
|
+
versionName: string;
|
|
94
|
+
}>;
|
|
95
|
+
};
|
|
96
|
+
export type AiAssetDebugClientRequestOptions = {
|
|
97
|
+
signal?: AbortSignal;
|
|
98
|
+
};
|
|
99
|
+
export declare class AiAssetDebugClient {
|
|
100
|
+
readonly endpoint: string;
|
|
101
|
+
constructor(endpoint?: string);
|
|
102
|
+
generate(request: GenerateDebugOptionsRequest, options?: AiAssetDebugClientRequestOptions): Promise<GeneratedDebugOption[]>;
|
|
103
|
+
generateStream(request: GenerateDebugOptionsRequest, onOption: (option: GeneratedDebugOption) => void, options?: AiAssetDebugClientRequestOptions): Promise<GeneratedDebugOption[]>;
|
|
104
|
+
getManifest(): Promise<AiAssetManifest>;
|
|
105
|
+
ensureFirstDrafts(request?: EnsureFirstDraftsRequest): Promise<EnsureFirstDraftsResult>;
|
|
106
|
+
save(request: SaveDebugOptionRequest): Promise<void>;
|
|
107
|
+
promoteStyle(styleGuide: DebugStyleGuideDraft): Promise<void>;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=debug-client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-client.d.ts","sourceRoot":"","sources":["../src/debug-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
export class AiAssetDebugClient {
|
|
2
|
+
endpoint;
|
|
3
|
+
constructor(endpoint = "http://127.0.0.1:3977") {
|
|
4
|
+
this.endpoint = endpoint.replace(/\/$/, "");
|
|
5
|
+
}
|
|
6
|
+
async generate(request, options = {}) {
|
|
7
|
+
const url = `${this.endpoint}/__ai-assets/generate`;
|
|
8
|
+
const response = await fetchDebugEndpoint(url, {
|
|
9
|
+
method: "POST",
|
|
10
|
+
headers: {
|
|
11
|
+
"Content-Type": "application/json"
|
|
12
|
+
},
|
|
13
|
+
body: JSON.stringify(request),
|
|
14
|
+
signal: options.signal
|
|
15
|
+
});
|
|
16
|
+
if (!response.ok) {
|
|
17
|
+
throw new Error(await responseErrorMessage(response));
|
|
18
|
+
}
|
|
19
|
+
const body = await response.json();
|
|
20
|
+
return body.options;
|
|
21
|
+
}
|
|
22
|
+
async generateStream(request, onOption, options = {}) {
|
|
23
|
+
const url = `${this.endpoint}/__ai-assets/generate-stream`;
|
|
24
|
+
const response = await fetchDebugEndpoint(url, {
|
|
25
|
+
method: "POST",
|
|
26
|
+
headers: {
|
|
27
|
+
"Content-Type": "application/json"
|
|
28
|
+
},
|
|
29
|
+
body: JSON.stringify(request),
|
|
30
|
+
signal: options.signal
|
|
31
|
+
});
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
const generated = await this.generate(request, options);
|
|
34
|
+
generated.forEach(onOption);
|
|
35
|
+
return generated;
|
|
36
|
+
}
|
|
37
|
+
if (!response.body) {
|
|
38
|
+
const generated = await this.generate(request, options);
|
|
39
|
+
generated.forEach(onOption);
|
|
40
|
+
return generated;
|
|
41
|
+
}
|
|
42
|
+
const generated = [];
|
|
43
|
+
const reader = response.body.getReader();
|
|
44
|
+
const decoder = new TextDecoder();
|
|
45
|
+
let buffer = "";
|
|
46
|
+
const consumeLine = (line) => {
|
|
47
|
+
if (!line.trim())
|
|
48
|
+
return;
|
|
49
|
+
const event = JSON.parse(line);
|
|
50
|
+
if (event.type === "option") {
|
|
51
|
+
generated.push(event.option);
|
|
52
|
+
onOption(event.option);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
if (event.type === "error") {
|
|
56
|
+
throw new Error(event.error);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
while (true) {
|
|
60
|
+
const chunk = await reader.read();
|
|
61
|
+
buffer += decoder.decode(chunk.value, { stream: !chunk.done });
|
|
62
|
+
const lines = buffer.split("\n");
|
|
63
|
+
buffer = lines.pop() ?? "";
|
|
64
|
+
for (const line of lines) {
|
|
65
|
+
consumeLine(line);
|
|
66
|
+
}
|
|
67
|
+
if (chunk.done)
|
|
68
|
+
break;
|
|
69
|
+
}
|
|
70
|
+
consumeLine(buffer);
|
|
71
|
+
return generated.sort((left, right) => left.index - right.index);
|
|
72
|
+
}
|
|
73
|
+
async getManifest() {
|
|
74
|
+
const url = `${this.endpoint}/__ai-assets/manifest`;
|
|
75
|
+
const response = await fetchDebugEndpoint(url, {
|
|
76
|
+
cache: "no-store"
|
|
77
|
+
});
|
|
78
|
+
if (!response.ok) {
|
|
79
|
+
throw new Error(await responseErrorMessage(response));
|
|
80
|
+
}
|
|
81
|
+
return response.json();
|
|
82
|
+
}
|
|
83
|
+
async ensureFirstDrafts(request = {}) {
|
|
84
|
+
const url = `${this.endpoint}/__ai-assets/ensure-first-drafts`;
|
|
85
|
+
const response = await fetchDebugEndpoint(url, {
|
|
86
|
+
method: "POST",
|
|
87
|
+
headers: {
|
|
88
|
+
"Content-Type": "application/json"
|
|
89
|
+
},
|
|
90
|
+
body: JSON.stringify(request)
|
|
91
|
+
});
|
|
92
|
+
if (!response.ok) {
|
|
93
|
+
throw new Error(await responseErrorMessage(response));
|
|
94
|
+
}
|
|
95
|
+
return response.json();
|
|
96
|
+
}
|
|
97
|
+
async save(request) {
|
|
98
|
+
const url = `${this.endpoint}/__ai-assets/save`;
|
|
99
|
+
const response = await fetchDebugEndpoint(url, {
|
|
100
|
+
method: "POST",
|
|
101
|
+
headers: {
|
|
102
|
+
"Content-Type": "application/json"
|
|
103
|
+
},
|
|
104
|
+
body: JSON.stringify(request)
|
|
105
|
+
});
|
|
106
|
+
if (!response.ok) {
|
|
107
|
+
throw new Error(await responseErrorMessage(response));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async promoteStyle(styleGuide) {
|
|
111
|
+
const url = `${this.endpoint}/__ai-assets/style`;
|
|
112
|
+
const response = await fetchDebugEndpoint(url, {
|
|
113
|
+
method: "POST",
|
|
114
|
+
headers: {
|
|
115
|
+
"Content-Type": "application/json"
|
|
116
|
+
},
|
|
117
|
+
body: JSON.stringify(styleGuide)
|
|
118
|
+
});
|
|
119
|
+
if (!response.ok) {
|
|
120
|
+
throw new Error(await responseErrorMessage(response));
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async function fetchDebugEndpoint(url, init) {
|
|
125
|
+
try {
|
|
126
|
+
return await fetch(url, init);
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
if (isAbortError(error)) {
|
|
130
|
+
throw error;
|
|
131
|
+
}
|
|
132
|
+
throw new Error([
|
|
133
|
+
`Could not reach the AI asset dev server at ${url}.`,
|
|
134
|
+
"Make sure the demo dev server is running and that the assetApi URL matches it.",
|
|
135
|
+
`Original error: ${errorMessage(error)}`
|
|
136
|
+
].join(" "));
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async function responseErrorMessage(response) {
|
|
140
|
+
const text = await response.text();
|
|
141
|
+
try {
|
|
142
|
+
const body = JSON.parse(text);
|
|
143
|
+
return body.error ?? text;
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
return text;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
function errorMessage(error) {
|
|
150
|
+
return error instanceof Error ? error.message : String(error);
|
|
151
|
+
}
|
|
152
|
+
function isAbortError(error) {
|
|
153
|
+
return error instanceof DOMException
|
|
154
|
+
? error.name === "AbortError"
|
|
155
|
+
: error instanceof Error && error.name === "AbortError";
|
|
156
|
+
}
|
|
157
|
+
//# sourceMappingURL=debug-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debug-client.js","sourceRoot":"","sources":["../src/debug-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
import type { AiAssetAnimation, AiAssetAnimationFrameTiming, AiAssetDefinition, AiAudioFormat, AiAudioGenerationSettings, AiAudioPlaybackSettings, AiVoiceGenerationSettings, AiAssetFormat, AiAssetGenerationSettings, AiAssetManifest } from "@ai-game-assets/core";
|
|
2
|
+
import type { DebugStyleGuideDraft, GeneratedDebugOption } from "./debug-client.js";
|
|
3
|
+
import type { AiAssetDesignerOptions, AiAssetDesignerSceneLike, AiAssetPreviewDisplaySize } from "./designer.js";
|
|
4
|
+
export type DesignerElements = {
|
|
5
|
+
root: HTMLDivElement;
|
|
6
|
+
toggle: HTMLButtonElement;
|
|
7
|
+
panel: HTMLDivElement;
|
|
8
|
+
styleButton: HTMLButtonElement;
|
|
9
|
+
assetSelect: HTMLSelectElement;
|
|
10
|
+
assetBrowser: HTMLDivElement;
|
|
11
|
+
animationSelect: HTMLSelectElement;
|
|
12
|
+
animationField: HTMLLabelElement;
|
|
13
|
+
widthInput: HTMLInputElement;
|
|
14
|
+
heightInput: HTMLInputElement;
|
|
15
|
+
dimensionGrid: HTMLDivElement;
|
|
16
|
+
frameCountInput: HTMLInputElement;
|
|
17
|
+
frameCountField: HTMLLabelElement;
|
|
18
|
+
formatSelect: HTMLSelectElement;
|
|
19
|
+
formatField: HTMLLabelElement;
|
|
20
|
+
audioFormatSelect: HTMLSelectElement;
|
|
21
|
+
audioFormatField: HTMLLabelElement;
|
|
22
|
+
audioDurationInput: HTMLInputElement;
|
|
23
|
+
audioDurationField: HTMLLabelElement;
|
|
24
|
+
audioLoopInput: HTMLInputElement;
|
|
25
|
+
audioLoopField: HTMLLabelElement;
|
|
26
|
+
voiceTextInput: HTMLTextAreaElement;
|
|
27
|
+
voiceTextField: HTMLLabelElement;
|
|
28
|
+
promptInput: HTMLTextAreaElement;
|
|
29
|
+
currentImage: HTMLImageElement;
|
|
30
|
+
currentAudio: HTMLDivElement;
|
|
31
|
+
currentAnimation: HTMLDivElement;
|
|
32
|
+
currentAnimationButton: HTMLButtonElement;
|
|
33
|
+
currentTouchUpButton: HTMLButtonElement;
|
|
34
|
+
currentPreview: HTMLDivElement;
|
|
35
|
+
uploadButton: HTMLButtonElement;
|
|
36
|
+
regenerateButton: HTMLButtonElement;
|
|
37
|
+
promoteButton: HTMLButtonElement;
|
|
38
|
+
restartButton: HTMLButtonElement;
|
|
39
|
+
versionLabel: HTMLDivElement;
|
|
40
|
+
options: HTMLDivElement;
|
|
41
|
+
status: HTMLDivElement;
|
|
42
|
+
};
|
|
43
|
+
type StyleGuideDraft = {
|
|
44
|
+
prompt: string;
|
|
45
|
+
images: Array<{
|
|
46
|
+
name: string;
|
|
47
|
+
src: string;
|
|
48
|
+
}>;
|
|
49
|
+
};
|
|
50
|
+
export declare function createDesignerElements(options: AiAssetDesignerOptions, manifest: AiAssetManifest, selectedAssetId: string): DesignerElements;
|
|
51
|
+
export declare function renderAssetFolderBrowser(options: {
|
|
52
|
+
container: HTMLDivElement;
|
|
53
|
+
manifest: AiAssetManifest;
|
|
54
|
+
selectedAssetId: string;
|
|
55
|
+
assetIds?: string[];
|
|
56
|
+
onSelect(assetId: string): void;
|
|
57
|
+
}): void;
|
|
58
|
+
export declare function assetCrumbButton(label: string, pathParts: string[], options: {
|
|
59
|
+
container: HTMLDivElement;
|
|
60
|
+
manifest: AiAssetManifest;
|
|
61
|
+
selectedAssetId: string;
|
|
62
|
+
assetIds?: string[];
|
|
63
|
+
onSelect(assetId: string): void;
|
|
64
|
+
}): HTMLButtonElement;
|
|
65
|
+
export declare function folderPathForAsset(manifest: AiAssetManifest, assetId: string): string[];
|
|
66
|
+
export declare function pathHasAnyAsset(pathParts: string[], entries: Array<{
|
|
67
|
+
path: string[];
|
|
68
|
+
}>): boolean;
|
|
69
|
+
export declare function isPathPrefix(prefix: string[], fullPath: string[]): boolean;
|
|
70
|
+
export declare function renderOptions(options: {
|
|
71
|
+
elements: DesignerElements;
|
|
72
|
+
generated: GeneratedDebugOption[];
|
|
73
|
+
scene: AiAssetDesignerSceneLike;
|
|
74
|
+
manifest: AiAssetManifest;
|
|
75
|
+
assetId: string;
|
|
76
|
+
designerOptions: AiAssetDesignerOptions;
|
|
77
|
+
onPreview(assetId: string, textureKey: string, asset: AiAssetDefinition): void;
|
|
78
|
+
onSelected(option: GeneratedDebugOption): void;
|
|
79
|
+
}): void;
|
|
80
|
+
export declare function previewOption(options: {
|
|
81
|
+
scene: AiAssetDesignerSceneLike;
|
|
82
|
+
manifest: AiAssetManifest;
|
|
83
|
+
assetId: string;
|
|
84
|
+
option: GeneratedDebugOption;
|
|
85
|
+
onPreview(assetId: string, textureKey: string, asset: AiAssetDefinition): void;
|
|
86
|
+
}): void;
|
|
87
|
+
export declare function previewCurrentAsset(options: {
|
|
88
|
+
scene: AiAssetDesignerSceneLike;
|
|
89
|
+
manifest: AiAssetManifest;
|
|
90
|
+
assetId: string;
|
|
91
|
+
src: string;
|
|
92
|
+
onPreview(assetId: string, textureKey: string, asset: AiAssetDefinition): void;
|
|
93
|
+
}): void;
|
|
94
|
+
export declare function previewImageSource(options: {
|
|
95
|
+
scene: AiAssetDesignerSceneLike;
|
|
96
|
+
manifest: AiAssetManifest;
|
|
97
|
+
assetId: string;
|
|
98
|
+
src: string;
|
|
99
|
+
textureKey: string;
|
|
100
|
+
assetOverride?: AiAssetDefinition;
|
|
101
|
+
onPreview(assetId: string, textureKey: string, asset: AiAssetDefinition): void;
|
|
102
|
+
}): void;
|
|
103
|
+
export declare function uploadedOptionFromFile(options: {
|
|
104
|
+
file: File;
|
|
105
|
+
asset: AiAssetDefinition;
|
|
106
|
+
elements: DesignerElements;
|
|
107
|
+
prompt: string;
|
|
108
|
+
}): Promise<GeneratedDebugOption>;
|
|
109
|
+
export declare function uploadedImageGeometry(asset: AiAssetDefinition, imageSize: AiAssetPreviewDisplaySize): {
|
|
110
|
+
dimensions: NonNullable<GeneratedDebugOption["dimensions"]>;
|
|
111
|
+
frameGrid?: GeneratedDebugOption["frameGrid"];
|
|
112
|
+
};
|
|
113
|
+
export declare function pickUploadFile(accept: string): Promise<File | undefined>;
|
|
114
|
+
export declare function imageSizeFromSource(src: string): Promise<AiAssetPreviewDisplaySize>;
|
|
115
|
+
export declare function replaceSpriteSheetFrames(options: {
|
|
116
|
+
src: string;
|
|
117
|
+
uploadSrc: string;
|
|
118
|
+
frameGrid: NonNullable<AiAssetDefinition["frameGrid"]>;
|
|
119
|
+
frames: number[];
|
|
120
|
+
}): Promise<string>;
|
|
121
|
+
export declare function spriteSheetFrameToDataUrl(options: {
|
|
122
|
+
src: string;
|
|
123
|
+
frameGrid: NonNullable<AiAssetDefinition["frameGrid"]>;
|
|
124
|
+
frame: number;
|
|
125
|
+
}): Promise<string>;
|
|
126
|
+
export declare function isSvgSource(src: string): boolean;
|
|
127
|
+
export declare function openFrameTouchUpEditor(options: {
|
|
128
|
+
root: HTMLElement;
|
|
129
|
+
asset: AiAssetDefinition;
|
|
130
|
+
title: string;
|
|
131
|
+
frameSrc: string;
|
|
132
|
+
spriteSheetSrc?: string;
|
|
133
|
+
frameSlot?: number;
|
|
134
|
+
frame?: number;
|
|
135
|
+
displaySize: AiAssetPreviewDisplaySize;
|
|
136
|
+
onSave(dataUrl: string): void | Promise<void>;
|
|
137
|
+
}): Promise<void>;
|
|
138
|
+
export declare function touchUpButton(label: string): HTMLButtonElement;
|
|
139
|
+
export declare function hexByte(value: number): string;
|
|
140
|
+
export declare function loadImageElement(src: string): Promise<HTMLImageElement>;
|
|
141
|
+
export declare function audioDurationFromDataUrl(src: string): Promise<number | undefined>;
|
|
142
|
+
export declare function audioFormatFromMimeType(mimeType: string, fileName: string): AiAudioFormat;
|
|
143
|
+
export declare function normalizeAssetFormatFromMimeType(mimeType: string, fileName: string): AiAssetFormat;
|
|
144
|
+
export declare function renderAudioPlayer(options: {
|
|
145
|
+
container: HTMLDivElement;
|
|
146
|
+
src: string;
|
|
147
|
+
label: string;
|
|
148
|
+
playback?: AiAudioPlaybackSettings;
|
|
149
|
+
}): void;
|
|
150
|
+
type AudioWaveformPeaks = Array<{
|
|
151
|
+
min: number;
|
|
152
|
+
max: number;
|
|
153
|
+
}>;
|
|
154
|
+
type AudioTrimState = {
|
|
155
|
+
duration: number;
|
|
156
|
+
trimStart: number;
|
|
157
|
+
trimEnd: number;
|
|
158
|
+
};
|
|
159
|
+
export declare function seekableAudioTime(state: AudioTrimState, progress: number): number;
|
|
160
|
+
export declare function resetAudioPlayerContainer(container: HTMLDivElement): void;
|
|
161
|
+
export declare function pauseSiblingAudioPlayers(container: HTMLElement): void;
|
|
162
|
+
export declare function audioWaveformPeaks(src: string, bucketCount?: number): Promise<AudioWaveformPeaks>;
|
|
163
|
+
export declare function drawAudioWaveform(canvas: HTMLCanvasElement, peaks: AudioWaveformPeaks | undefined, progress: number): void;
|
|
164
|
+
export declare function drawAudioEditorWaveform(canvas: HTMLCanvasElement, options: {
|
|
165
|
+
peaks: AudioWaveformPeaks | undefined;
|
|
166
|
+
duration: number;
|
|
167
|
+
progress: number;
|
|
168
|
+
trimStart: number;
|
|
169
|
+
trimEnd: number;
|
|
170
|
+
}): void;
|
|
171
|
+
export declare function progressForAudio(audio: HTMLAudioElement): number;
|
|
172
|
+
export declare function clamp(value: number, min: number, max: number): number;
|
|
173
|
+
export declare function formatAudioTime(value: number): string;
|
|
174
|
+
export declare function startSpritesheetPreview(options: {
|
|
175
|
+
element: HTMLDivElement;
|
|
176
|
+
src: string;
|
|
177
|
+
asset: AiAssetDefinition;
|
|
178
|
+
displaySize: AiAssetPreviewDisplaySize;
|
|
179
|
+
applyFrameTransforms?: boolean;
|
|
180
|
+
}): () => void;
|
|
181
|
+
export declare function openStyleGuideEditor(options: {
|
|
182
|
+
root: HTMLElement;
|
|
183
|
+
initial: StyleGuideDraft;
|
|
184
|
+
onConfirm(draft: StyleGuideDraft): void;
|
|
185
|
+
onPromote(draft: StyleGuideDraft): void | Promise<void>;
|
|
186
|
+
}): Promise<void>;
|
|
187
|
+
export declare function openAudioEditor(options: {
|
|
188
|
+
root: HTMLElement;
|
|
189
|
+
asset: AiAssetDefinition;
|
|
190
|
+
assetId: string;
|
|
191
|
+
src: string;
|
|
192
|
+
initialPlayback?: AiAudioPlaybackSettings;
|
|
193
|
+
onConfirm(playback: AiAudioPlaybackSettings): void | Promise<void>;
|
|
194
|
+
}): Promise<void>;
|
|
195
|
+
export declare function openAnimationEditor(options: {
|
|
196
|
+
root: HTMLElement;
|
|
197
|
+
asset: AiAssetDefinition;
|
|
198
|
+
assetId: string;
|
|
199
|
+
src: string;
|
|
200
|
+
displaySize: AiAssetPreviewDisplaySize;
|
|
201
|
+
initialAnimations?: AiAssetAnimation[];
|
|
202
|
+
onConfirm(result: {
|
|
203
|
+
animations: AiAssetAnimation[];
|
|
204
|
+
dataUrl?: string;
|
|
205
|
+
}): void | Promise<void>;
|
|
206
|
+
}): Promise<void>;
|
|
207
|
+
export declare function setFrameBackground(element: HTMLElement, options: {
|
|
208
|
+
src: string;
|
|
209
|
+
frame: number;
|
|
210
|
+
frameGrid: NonNullable<AiAssetDefinition["frameGrid"]>;
|
|
211
|
+
displaySize: AiAssetPreviewDisplaySize;
|
|
212
|
+
timing?: AiAssetAnimationFrameTiming;
|
|
213
|
+
}): void;
|
|
214
|
+
export declare function setFrameElementBackground(frameElement: HTMLElement, options: {
|
|
215
|
+
src: string;
|
|
216
|
+
frame: number;
|
|
217
|
+
frameGrid: NonNullable<AiAssetDefinition["frameGrid"]>;
|
|
218
|
+
displaySize: AiAssetPreviewDisplaySize;
|
|
219
|
+
}): void;
|
|
220
|
+
export declare function ensureFramePreviewElement(element: HTMLElement): HTMLElement;
|
|
221
|
+
export declare function generationOverridesFromInputs(elements: DesignerElements, asset: AiAssetDefinition, format: AiAssetFormat): {
|
|
222
|
+
dimensions: {
|
|
223
|
+
width: number;
|
|
224
|
+
height: number;
|
|
225
|
+
};
|
|
226
|
+
frameCount?: number;
|
|
227
|
+
settings: AiAssetGenerationSettings;
|
|
228
|
+
};
|
|
229
|
+
export declare function audioGenerationOverridesFromInputs(elements: DesignerElements, asset: AiAssetDefinition): AiAudioGenerationSettings | undefined;
|
|
230
|
+
export declare function voiceGenerationOverridesFromInputs(elements: DesignerElements, asset: AiAssetDefinition): AiVoiceGenerationSettings | undefined;
|
|
231
|
+
export declare function canEditGenerationFormat(manifest: AiAssetManifest, selectedAssetId: string, targetAssetId: string): boolean;
|
|
232
|
+
export declare function effectiveGenerationFormat(manifest: AiAssetManifest, drafts: Map<string, AiAssetFormat>, selectedAssetId: string, targetAssetId: string): AiAssetFormat;
|
|
233
|
+
export declare function selectedFormatFromDesignerOrAsset(asset: AiAssetDefinition | undefined): AiAssetFormat;
|
|
234
|
+
export declare function normalizeAssetFormat(format: string | undefined): AiAssetFormat;
|
|
235
|
+
export declare function normalizeAudioFormat(format: string | undefined): AiAudioFormat;
|
|
236
|
+
export declare function isAudioAsset(asset: AiAssetDefinition | undefined): boolean;
|
|
237
|
+
export declare function isVoiceAsset(asset: AiAssetDefinition | undefined): boolean;
|
|
238
|
+
export declare function assetWithGeneratedGeometry(asset: AiAssetDefinition, option: GeneratedDebugOption): AiAssetDefinition;
|
|
239
|
+
export declare function positiveIntegerInput(input: HTMLInputElement, fallback: number): number;
|
|
240
|
+
export declare function positiveNumberInput(input: HTMLInputElement, fallback: number): number;
|
|
241
|
+
export declare function integerInput(input: HTMLInputElement, fallback: number): number;
|
|
242
|
+
export declare function numberInput(input: HTMLInputElement, fallback: number): number;
|
|
243
|
+
export declare function rangeInput(min: number, max: number, step: number): HTMLInputElement;
|
|
244
|
+
export declare function inlineCheckboxField(label: string, checkbox: HTMLInputElement): HTMLLabelElement;
|
|
245
|
+
export declare function positiveIntegerValue(value: number | undefined, fallback: number): number;
|
|
246
|
+
export declare function integerValue(value: number | undefined, fallback: number): number;
|
|
247
|
+
export declare function numberValue(value: number | undefined, fallback: number): number;
|
|
248
|
+
export declare function resolvePreviewDisplaySize(options: AiAssetDesignerOptions, assetId: string, asset: AiAssetDefinition): AiAssetPreviewDisplaySize;
|
|
249
|
+
export declare function cssUrl(value: string): string;
|
|
250
|
+
export declare function bindKeyboardCapture(root: HTMLElement, scene: AiAssetDesignerSceneLike): void;
|
|
251
|
+
export declare function isEditableElement(element: HTMLElement): boolean;
|
|
252
|
+
export declare function labelWrap(labelText: string, control: HTMLElement): HTMLLabelElement;
|
|
253
|
+
export declare function numericInput(): HTMLInputElement;
|
|
254
|
+
export declare function signedNumberInput(): HTMLInputElement;
|
|
255
|
+
export declare function decimalInput(): HTMLInputElement;
|
|
256
|
+
export declare function imageSourceToDataUrl(src: string): Promise<string>;
|
|
257
|
+
export declare function styleGuideDraftFromManifest(manifest: AiAssetManifest): StyleGuideDraft;
|
|
258
|
+
export declare function hasStyleGuide(styleGuide: StyleGuideDraft): boolean;
|
|
259
|
+
export declare function styleGuideRequest(styleGuide: StyleGuideDraft): Promise<DebugStyleGuideDraft>;
|
|
260
|
+
export declare function fileToDataUrl(file: Blob): Promise<string>;
|
|
261
|
+
export declare function mimeTypeFromDataUrl(dataUrl: string): string;
|
|
262
|
+
export declare function mimeTypeFromFileName(fileName: string): string;
|
|
263
|
+
export declare function readableAssetName(assetId: string): string;
|
|
264
|
+
export declare function errorMessage(error: unknown): string;
|
|
265
|
+
export declare function isAbortError(error: unknown): boolean;
|
|
266
|
+
export declare function setStatus(elements: Pick<DesignerElements, "status">, message: string, kind: "idle" | "info" | "busy" | "success" | "error"): void;
|
|
267
|
+
export declare function stopStatusAnimation(status: HTMLDivElement): void;
|
|
268
|
+
export declare function startGeneratingStatusAnimation(status: HTMLDivElement, message: string): void;
|
|
269
|
+
export declare function ensureDesignerStyles(): void;
|
|
270
|
+
export {};
|
|
271
|
+
//# sourceMappingURL=designer-support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"designer-support.d.ts","sourceRoot":"","sources":["../src/designer-support.ts"],"names":[],"mappings":"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"}
|