@mulmoclaude/mulmoscript-plugin 1.0.0 → 1.1.1
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/core/paths.d.ts +2 -5
- package/dist/core/paths.d.ts.map +1 -1
- package/dist/core/plugin.d.ts.map +1 -1
- package/dist/core/validate.d.ts.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/{plugin-Bi986Wga.cjs → plugin-BLp8tSYt.cjs} +86 -46
- package/dist/plugin-BLp8tSYt.cjs.map +1 -0
- package/dist/{plugin-BQyzxkui.js → plugin-CXhOP_xU.js} +81 -47
- package/dist/plugin-CXhOP_xU.js.map +1 -0
- package/dist/server/mulmoErrorCapture.d.ts.map +1 -1
- package/dist/server/ops.d.ts.map +1 -1
- package/dist/server/support.d.ts +0 -5
- package/dist/server/support.d.ts.map +1 -1
- package/dist/server/types.d.ts +3 -7
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server.cjs +34 -58
- package/dist/server.cjs.map +1 -1
- package/dist/server.js +33 -57
- package/dist/server.js.map +1 -1
- package/dist/style.css +36 -18
- package/dist/vue/View.vue.d.ts.map +1 -1
- package/dist/vue/components/BeatLightbox.vue.d.ts +25 -0
- package/dist/vue/components/BeatLightbox.vue.d.ts.map +1 -0
- package/dist/vue/components/CharacterStrip.vue.d.ts +29 -0
- package/dist/vue/components/CharacterStrip.vue.d.ts.map +1 -0
- package/dist/vue/components/MulmoScriptToolbar.vue.d.ts +26 -0
- package/dist/vue/components/MulmoScriptToolbar.vue.d.ts.map +1 -0
- package/dist/vue/composables/useBeatMovie.d.ts +20 -0
- package/dist/vue/composables/useBeatMovie.d.ts.map +1 -0
- package/dist/vue/composables/useCharacterImages.d.ts +31 -0
- package/dist/vue/composables/useCharacterImages.d.ts.map +1 -0
- package/dist/vue/composables/useDeckEditor.d.ts +18 -0
- package/dist/vue/composables/useDeckEditor.d.ts.map +1 -0
- package/dist/vue/composables/useMediaExport.d.ts +26 -0
- package/dist/vue/composables/useMediaExport.d.ts.map +1 -0
- package/dist/vue/helpers.d.ts +78 -0
- package/dist/vue/helpers.d.ts.map +1 -1
- package/dist/vue/support.d.ts +6 -4
- package/dist/vue/support.d.ts.map +1 -1
- package/dist/vue/transport.d.ts.map +1 -1
- package/dist/vue/viewTypes.d.ts +49 -0
- package/dist/vue/viewTypes.d.ts.map +1 -0
- package/dist/vue.cjs +1016 -715
- package/dist/vue.cjs.map +1 -1
- package/dist/vue.js +1013 -712
- package/dist/vue.js.map +1 -1
- package/package.json +11 -7
- package/dist/plugin-BQyzxkui.js.map +0 -1
- package/dist/plugin-Bi986Wga.cjs.map +0 -1
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ComputedRef } from "vue";
|
|
2
|
+
import type { MulmoScriptTransport } from "../transport";
|
|
3
|
+
import type { MulmoScriptHostAdapter } from "../hostAdapter";
|
|
4
|
+
export interface UseBeatMovieOptions {
|
|
5
|
+
api: MulmoScriptTransport;
|
|
6
|
+
adapter: MulmoScriptHostAdapter;
|
|
7
|
+
filePath: ComputedRef<string>;
|
|
8
|
+
}
|
|
9
|
+
export declare function useBeatMovie({ api, adapter, filePath }: UseBeatMovieOptions): {
|
|
10
|
+
beatMovies: Record<number, string>;
|
|
11
|
+
beatMovieUrls: Record<number, string>;
|
|
12
|
+
beatMovieOpen: Record<number, boolean>;
|
|
13
|
+
beatMovieLoading: Record<number, boolean>;
|
|
14
|
+
loadExistingBeatMovie: (index: number) => Promise<void>;
|
|
15
|
+
playBeatMovie: (index: number) => Promise<void>;
|
|
16
|
+
closeBeatMovie: (index: number) => void;
|
|
17
|
+
invalidateBeatMovie: (index: number) => void;
|
|
18
|
+
resetBeatMovies: () => void;
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=useBeatMovie.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useBeatMovie.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useBeatMovie.ts"],"names":[],"mappings":"AAKA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAGjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,mBAAmB;IAClC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC/B;AAED,wBAAgB,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,mBAAmB;;;;;mCAQ9B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;2BAU9B,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;4BAqB3B,MAAM,KAAG,IAAI;iCAMR,MAAM,KAAG,IAAI;2BAKrB,IAAI;EAgBjC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type ComputedRef } from "vue";
|
|
2
|
+
import type { MulmoScriptTransport } from "../transport";
|
|
3
|
+
type CharRenderState = "idle" | "rendering" | "done" | "error";
|
|
4
|
+
type ScriptImages = Record<string, {
|
|
5
|
+
type?: string;
|
|
6
|
+
prompt?: string;
|
|
7
|
+
}> | undefined;
|
|
8
|
+
export interface UseCharacterImagesOptions {
|
|
9
|
+
api: MulmoScriptTransport;
|
|
10
|
+
filePath: ComputedRef<string>;
|
|
11
|
+
chatSessionId: ComputedRef<string | undefined>;
|
|
12
|
+
getImages: () => ScriptImages;
|
|
13
|
+
}
|
|
14
|
+
export declare function useCharacterImages({ api, filePath, chatSessionId, getImages }: UseCharacterImagesOptions): {
|
|
15
|
+
charRenderState: Record<string, CharRenderState>;
|
|
16
|
+
charImages: Record<string, string>;
|
|
17
|
+
charErrors: Record<string, string>;
|
|
18
|
+
charDragOver: Record<string, boolean>;
|
|
19
|
+
characterKeys: ComputedRef<string[]>;
|
|
20
|
+
characterPrompt: (key: string) => string;
|
|
21
|
+
onCharDragOver: (event: DragEvent, key: string) => void;
|
|
22
|
+
onCharDragLeave: (key: string) => void;
|
|
23
|
+
onCharDrop: (event: DragEvent, key: string) => Promise<void>;
|
|
24
|
+
loadExistingCharacterImage: (key: string) => Promise<void>;
|
|
25
|
+
refreshMissingCharacterImages: () => void;
|
|
26
|
+
renderCharacter: (key: string, force: boolean) => Promise<void>;
|
|
27
|
+
generateAllCharacters: () => Promise<void>;
|
|
28
|
+
resetCharacters: () => void;
|
|
29
|
+
};
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=useCharacterImages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCharacterImages.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useCharacterImages.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAI3D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,KAAK,eAAe,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,OAAO,CAAC;AAE/D,KAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CAAC;AAEnF,MAAM,WAAW,yBAAyB;IACxC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C,SAAS,EAAE,MAAM,YAAY,CAAC;CAC/B;AAED,wBAAgB,kBAAkB,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,yBAAyB;;;;;;2BAazE,MAAM,KAAG,MAAM;4BAId,SAAS,OAAO,MAAM,KAAG,IAAI;2BAM9B,MAAM,KAAG,IAAI;wBAIV,SAAS,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;sCA4BxB,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC;yCAW3B,IAAI;2BAIV,MAAM,SAAS,OAAO,KAAG,OAAO,CAAC,IAAI,CAAC;iCAelC,OAAO,CAAC,IAAI,CAAC;2BAIzB,IAAI;EAoBjC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type ComputedRef } from "vue";
|
|
2
|
+
import type { MulmoScriptTransport } from "../transport";
|
|
3
|
+
import type { DeckScriptShape, MulmoScript } from "../viewTypes";
|
|
4
|
+
export interface UseDeckEditorOptions {
|
|
5
|
+
api: MulmoScriptTransport;
|
|
6
|
+
filePath: ComputedRef<string>;
|
|
7
|
+
effectiveScript: ComputedRef<MulmoScript>;
|
|
8
|
+
/** Persist the saved script back into the parent's toolResult so the
|
|
9
|
+
* in-memory script and reactive beats[] stay in sync without a remount. */
|
|
10
|
+
commitScript: (next: MulmoScript) => void;
|
|
11
|
+
}
|
|
12
|
+
export declare function useDeckEditor({ api, filePath, effectiveScript, commitScript }: UseDeckEditorOptions): {
|
|
13
|
+
isDeck: ComputedRef<boolean>;
|
|
14
|
+
deckScriptInput: ComputedRef<DeckScriptShape>;
|
|
15
|
+
onDeckUpdate: (next: DeckScriptShape) => void;
|
|
16
|
+
flushPendingDeckSave: () => void;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=useDeckEditor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDeckEditor.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useDeckEditor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAY,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIjE,MAAM,WAAW,oBAAoB;IACnC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,eAAe,EAAE,WAAW,CAAC,WAAW,CAAC,CAAC;IAC1C;gFAC4E;IAC5E,YAAY,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,aAAa,CAAC,EAAE,GAAG,EAAE,QAAQ,EAAE,eAAe,EAAE,YAAY,EAAE,EAAE,oBAAoB;;;yBA+BtE,eAAe,KAAG,IAAI;gCAOjB,IAAI;EAQtC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ComputedRef, type Ref } from "vue";
|
|
2
|
+
import type { MulmoScriptTransport } from "../transport";
|
|
3
|
+
import type { MulmoScriptHostAdapter } from "../hostAdapter";
|
|
4
|
+
export interface UseMediaExportOptions {
|
|
5
|
+
api: MulmoScriptTransport;
|
|
6
|
+
adapter: MulmoScriptHostAdapter;
|
|
7
|
+
filePath: ComputedRef<string>;
|
|
8
|
+
chatSessionId: ComputedRef<string | undefined>;
|
|
9
|
+
}
|
|
10
|
+
export declare function useMediaExport({ api, adapter, filePath, chatSessionId }: UseMediaExportOptions): {
|
|
11
|
+
moviePath: Ref<string | null, string | null>;
|
|
12
|
+
movieGenerating: Ref<boolean, boolean>;
|
|
13
|
+
movieDownloading: Ref<boolean, boolean>;
|
|
14
|
+
movieError: Ref<string | null, string | null>;
|
|
15
|
+
pdfPath: Ref<string | null, string | null>;
|
|
16
|
+
pdfGenerating: Ref<boolean, boolean>;
|
|
17
|
+
pdfDownloading: Ref<boolean, boolean>;
|
|
18
|
+
generateMovie: () => Promise<void>;
|
|
19
|
+
downloadMovie: () => Promise<void>;
|
|
20
|
+
refreshMoviePath: () => Promise<void>;
|
|
21
|
+
generatePdf: () => Promise<void>;
|
|
22
|
+
downloadPdf: () => Promise<void>;
|
|
23
|
+
refreshPdfPath: () => Promise<void>;
|
|
24
|
+
resetMedia: () => void;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=useMediaExport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useMediaExport.d.ts","sourceRoot":"","sources":["../../../src/vue/composables/useMediaExport.ts"],"names":[],"mappings":"AAOA,OAAO,EAAO,KAAK,WAAW,EAAE,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAGtD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,oBAAoB,CAAC;IAC1B,OAAO,EAAE,sBAAsB,CAAC;IAChC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC9B,aAAa,EAAE,WAAW,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAChD;AAID,wBAAgB,cAAc,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,qBAAqB;;;;;;;;yBAgB7D,OAAO,CAAC,IAAI,CAAC;yBAgEnB,OAAO,CAAC,IAAI,CAAC;4BAnCJ,OAAO,CAAC,IAAI,CAAC;uBAblB,OAAO,CAAC,IAAI,CAAC;uBAoDnB,OAAO,CAAC,IAAI,CAAC;0BA/BJ,OAAO,CAAC,IAAI,CAAC;sBAqCvB,IAAI;EAwB5B"}
|
package/dist/vue/helpers.d.ts
CHANGED
|
@@ -56,6 +56,19 @@ export declare function beatMayHaveMovie(beat: {
|
|
|
56
56
|
animation?: unknown;
|
|
57
57
|
};
|
|
58
58
|
}): boolean;
|
|
59
|
+
/**
|
|
60
|
+
* True for a beat whose image merely REFERENCES another beat's image
|
|
61
|
+
* (`image: { type: "beat", id }` — mulmoBeatReferenceMediaSchema). Such a
|
|
62
|
+
* beat owns no asset of its own, so there is nothing to generate for it:
|
|
63
|
+
* the View hides the Generate button (offering it produced a render that
|
|
64
|
+
* could never succeed on its own terms).
|
|
65
|
+
*/
|
|
66
|
+
export declare function isBeatImageReference(beat: {
|
|
67
|
+
image?: {
|
|
68
|
+
type?: string;
|
|
69
|
+
[key: string]: unknown;
|
|
70
|
+
};
|
|
71
|
+
}): boolean;
|
|
59
72
|
/** Pure check: is every beat in the script a `slide`-typed beat?
|
|
60
73
|
* When true, the View mounts `@mulmocast/deck-web`'s
|
|
61
74
|
* `MulmoScriptDeckEditor` instead of the per-beat list UI (#1575).
|
|
@@ -64,4 +77,69 @@ export declare function beatMayHaveMovie(beat: {
|
|
|
64
77
|
* state. Mixed scripts (any non-`slide` beat) also return false; that
|
|
65
78
|
* case is deferred to a future phase. */
|
|
66
79
|
export declare function isAllSlideDeck(script: unknown): boolean;
|
|
80
|
+
/** A single MulmoScript beat as the View consumes it — every field
|
|
81
|
+
* optional so the empty-beat fallback (`effectiveBeat` on an
|
|
82
|
+
* out-of-range index) is a valid instance without a cast. */
|
|
83
|
+
export interface Beat {
|
|
84
|
+
speaker?: string;
|
|
85
|
+
text?: string;
|
|
86
|
+
id?: string;
|
|
87
|
+
imagePrompt?: string;
|
|
88
|
+
moviePrompt?: string;
|
|
89
|
+
image?: {
|
|
90
|
+
type: string;
|
|
91
|
+
[key: string]: unknown;
|
|
92
|
+
};
|
|
93
|
+
/** Beat duration in seconds. The mulmocast schema notes this is
|
|
94
|
+
* "Used only when the text is empty" — the silent-beat Play loop
|
|
95
|
+
* uses it as the auto-advance timer (#1073). */
|
|
96
|
+
duration?: number;
|
|
97
|
+
}
|
|
98
|
+
/** Resolve the beat the View should render at `index`: the user's
|
|
99
|
+
* in-place edit (`overrides`) wins over the on-disk beat, and an
|
|
100
|
+
* out-of-range index yields an empty beat so callers can read
|
|
101
|
+
* `.text` / `.image` without a guard. */
|
|
102
|
+
export declare function effectiveBeat(overrides: Record<number, Beat>, beats: readonly Beat[], index: number): Beat;
|
|
103
|
+
/** Beat-strip hover tooltip: the beat text, truncated with an ellipsis
|
|
104
|
+
* past the cap. Missing text yields an empty string. Text of exactly
|
|
105
|
+
* the cap length is returned whole (only a longer string is cut). */
|
|
106
|
+
export declare function beatTooltip(text: string | undefined): string;
|
|
107
|
+
/** The prompt for a character image, or "" when the key or its prompt
|
|
108
|
+
* is absent — the character strip renders the empty string as no
|
|
109
|
+
* caption rather than `undefined`. */
|
|
110
|
+
export declare function characterPrompt(images: Record<string, {
|
|
111
|
+
prompt?: string;
|
|
112
|
+
}> | undefined, key: string): string;
|
|
113
|
+
/** Is the in-editor JSON for a beat currently valid? A missing entry
|
|
114
|
+
* (source editor never opened) validates the empty string, which is
|
|
115
|
+
* not parseable JSON, so it reports invalid rather than throwing. */
|
|
116
|
+
export declare function isValidBeat(source: string | undefined, schema: SafeParseSchema): boolean;
|
|
117
|
+
/** Stale-response guard: a per-beat / per-character response is stale
|
|
118
|
+
* once the View has navigated to a different result, i.e. the current
|
|
119
|
+
* file path no longer matches the one captured when the call was made.
|
|
120
|
+
* Keeping the direction pinned matters — an inverted check would let
|
|
121
|
+
* script A's late responses write into script B's state. */
|
|
122
|
+
export declare function staleSince(currentFilePath: string, requestedFilePath: string): boolean;
|
|
123
|
+
/** Pretty-print a script (or any value) as the source-editor / clipboard
|
|
124
|
+
* text — two-space indent, matching what the beat and disk views emit. */
|
|
125
|
+
export declare function scriptSourceText(value: unknown): string;
|
|
126
|
+
/** Basename for a download `<a download>` attribute, falling back when
|
|
127
|
+
* the path has no basename. Mirrors the exact existing behaviour, and
|
|
128
|
+
* it has a sharp edge: `.pop()` returns "" (not undefined) for a
|
|
129
|
+
* trailing slash or empty path, and `??` does NOT replace "", so those
|
|
130
|
+
* yield an empty filename rather than the fallback. Server paths always
|
|
131
|
+
* carry a basename, so this never bites in practice — pinned so a later
|
|
132
|
+
* reader doesn't "simplify" `??` to `||` and change behaviour. */
|
|
133
|
+
export declare function downloadFilename(path: string, fallback: string): string;
|
|
134
|
+
/** Narrow a script-supplied silent-beat duration to a safe positive number.
|
|
135
|
+
* Zero / negative / NaN / Infinity / non-number collapse the auto-advance
|
|
136
|
+
* timer to an immediate fire, which races the Play loop through every silent
|
|
137
|
+
* beat in a single tick (#1365) — fall back to the default so a run of silent
|
|
138
|
+
* beats stays watchable. The script's own valid `duration` always wins. */
|
|
139
|
+
export declare function resolveSilentAdvanceSeconds(raw: unknown, defaultSec: number): number;
|
|
140
|
+
/** Delete every own enumerable key of each record, in place. Used to reset the
|
|
141
|
+
* View's per-beat / per-character reactive maps between scripts — passing the
|
|
142
|
+
* reactive proxies mutates them so the template re-renders empty. Replaces a
|
|
143
|
+
* wall of hand-rolled `Object.keys(map).forEach(delete)` loops. */
|
|
144
|
+
export declare function clearReactiveRecords(...records: object[]): void;
|
|
67
145
|
//# sourceMappingURL=helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/vue/helpers.ts"],"names":[],"mappings":"AAQA;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAK7I;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG,MAAM,EAAE,CAE3J;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK;QAAE,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;CACrD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAQ/E;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAEnE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE;IAAE,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAAG,OAAO,CAGxH;AAED;;;;;;0CAM0C;AAC1C,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CASvD"}
|
|
1
|
+
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/vue/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/vue/support.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { type Ref } from "vue";
|
|
2
2
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
3
|
-
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
|
|
3
|
+
/** Read a dropped image File as a base64 data URL, the form the upload
|
|
4
|
+
* dispatches expect. Shared by the beat and character drop handlers.
|
|
5
|
+
* `readAsDataURL` always yields a string on load; the non-string reject
|
|
6
|
+
* is an unreachable guard kept so the resolve type stays `string` without
|
|
7
|
+
* a cast. */
|
|
8
|
+
export declare function readFileAsDataUrl(file: File): Promise<string>;
|
|
7
9
|
export interface UseClipboardCopyHandle {
|
|
8
10
|
copied: Ref<boolean>;
|
|
9
11
|
copy: (text: string) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/vue/support.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEpC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED
|
|
1
|
+
{"version":3,"file":"support.d.ts","sourceRoot":"","sources":["../../src/vue/support.ts"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,GAAG,EAAE,MAAM,KAAK,CAAC;AAEpC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEzE;AAED;;;;cAIc;AACd,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAW7D;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvC;AAED;;sCAEsC;AACtC,wBAAgB,gBAAgB,CAAC,OAAO,SAAO,GAAG,sBAAsB,CAgBvE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/vue/transport.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/vue/transport.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAKvH,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,CAAC,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtF,KAAK,OAAO,CAAC,CAAC,SAAS,uBAAuB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,EAAE;IAAE,IAAI,EAAE,CAAC,CAAA;CAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AAkBtH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,CAAC,SAAS,uBAAuB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACnI;gEAC4D;IAC5D,iBAAiB,CAAC,QAAQ,EAAE,MAAM,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,0BAA0B,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC7G;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,CA4B9D"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { SlideLayout, SlideTheme } from "@mulmocast/deck-web";
|
|
2
|
+
import type { Beat } from "./helpers";
|
|
3
|
+
export interface ImageEntry {
|
|
4
|
+
type: string;
|
|
5
|
+
prompt?: string;
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
}
|
|
8
|
+
/** Open-lightbox state. `index` is the beat index for a beat image and `-1`
|
|
9
|
+
* for a character image, which `isCharacter` marks so the beat-strip and
|
|
10
|
+
* prev/next arrows stay hidden for characters. */
|
|
11
|
+
export interface LightboxState {
|
|
12
|
+
src: string;
|
|
13
|
+
text?: string;
|
|
14
|
+
index: number;
|
|
15
|
+
isCharacter?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface MulmoScript {
|
|
18
|
+
title?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
lang?: string;
|
|
21
|
+
beats?: Beat[];
|
|
22
|
+
imageParams?: {
|
|
23
|
+
images?: Record<string, ImageEntry>;
|
|
24
|
+
[key: string]: unknown;
|
|
25
|
+
};
|
|
26
|
+
[key: string]: unknown;
|
|
27
|
+
}
|
|
28
|
+
export interface DeckBeatShape {
|
|
29
|
+
image?: {
|
|
30
|
+
type?: string;
|
|
31
|
+
slide?: SlideLayout;
|
|
32
|
+
theme?: SlideTheme;
|
|
33
|
+
[k: string]: unknown;
|
|
34
|
+
};
|
|
35
|
+
[k: string]: unknown;
|
|
36
|
+
}
|
|
37
|
+
export interface DeckScriptShape {
|
|
38
|
+
beats?: DeckBeatShape[];
|
|
39
|
+
presentationStyle?: {
|
|
40
|
+
slideParams?: {
|
|
41
|
+
theme?: SlideTheme;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
slideParams?: {
|
|
45
|
+
theme?: SlideTheme;
|
|
46
|
+
};
|
|
47
|
+
[k: string]: unknown;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=viewTypes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewTypes.d.ts","sourceRoot":"","sources":["../../src/vue/viewTypes.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED;;mDAEmD;AACnD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;QACpC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;KACxB,CAAC;IACF,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAMD,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,WAAW,CAAC;QACpB,KAAK,CAAC,EAAE,UAAU,CAAC;QACnB,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;KACtB,CAAC;IACF,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,aAAa,EAAE,CAAC;IACxB,iBAAiB,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,UAAU,CAAA;SAAE,CAAA;KAAE,CAAC;IAC7D,WAAW,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,UAAU,CAAA;KAAE,CAAC;IACrC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB"}
|