@neta-art/cohub 12.5.0 → 13.0.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 +35 -13
- package/dist/board/editor/editor.d.ts +7 -5
- package/dist/board/editor/index.js +1 -1
- package/dist/board/editor/interaction.js +1 -1
- package/dist/board/export/index.d.ts +1 -6
- package/dist/board/export/index.js +16 -10
- package/dist/board/export/node/index.d.ts +2 -7
- package/dist/board/export/node/index.js +2 -5
- package/dist/board/export/scene.d.ts +3 -7
- package/dist/board/export/scene.js +22 -26
- package/dist/board/model/asset-key.d.ts +5 -2
- package/dist/board/model/asset-key.js +13 -5
- package/dist/board/model/index.d.ts +5 -4
- package/dist/board/model/index.js +4 -3
- package/dist/board/model/media-playback.d.ts +4 -6
- package/dist/board/model/media-playback.js +4 -4
- package/dist/board/model/read.d.ts +7 -0
- package/dist/board/model/read.js +18 -0
- package/dist/board/model/themes.d.ts +50 -0
- package/dist/board/model/themes.js +44 -6
- package/dist/board/render/backdrop-layer.d.ts +21 -0
- package/dist/board/render/backdrop-layer.js +227 -0
- package/dist/board/render/backdrop.d.ts +45 -0
- package/dist/board/render/backdrop.js +62 -0
- package/dist/board/render/index.d.ts +3 -2
- package/dist/board/render/index.js +7 -6
- package/dist/board/render/renderers/arrow-card-renderer.js +1 -1
- package/dist/board/render/renderers/audio-card-renderer.js +2 -2
- package/dist/board/render/renderers/file-card-renderer.js +1 -1
- package/dist/board/render/renderers/frame-card-renderer.js +1 -1
- package/dist/board/render/renderers/model-card-renderer.js +1 -1
- package/dist/board/render/renderers/shape-card-renderer.js +1 -1
- package/dist/board/render/renderers/task-card-renderer.js +2 -2
- package/dist/board/render/renderers/text-card-renderer.js +2 -2
- package/dist/board/render/renderers/video-card-renderer.js +1 -1
- package/dist/board/render/theme.d.ts +2 -0
- package/dist/board/render/theme.js +4 -2
- package/dist/board/replica/index.d.ts +3 -2
- package/dist/board/replica/index.js +34 -24
- package/dist/board/replica/indexeddb.js +14 -85
- package/dist/board/stage/assets.d.ts +4 -3
- package/dist/board/stage/assets.js +186 -83
- package/dist/board/stage/backdrop.d.ts +25 -0
- package/dist/board/stage/backdrop.js +104 -0
- package/dist/board/stage/index.d.ts +2 -1
- package/dist/board/stage/scene.js +12 -5
- package/dist/board/stage/stage.d.ts +7 -2
- package/dist/board/stage/stage.js +44 -24
- package/dist/board/stage/texture-pool.d.ts +1 -1
- package/dist/board/stage/texture-pool.js +4 -5
- package/dist/chunks/app-realtime.js +1 -1
- package/dist/chunks/environment.d.ts +34 -21
- package/dist/chunks/environment.js +4 -3
- package/dist/chunks/http-error.js +28 -5
- package/dist/chunks/http.d.ts +87 -18
- package/dist/chunks/http.js +1855 -59
- package/dist/chunks/websocket.d.ts +9 -1
- package/dist/http.d.ts +2 -2
- package/dist/http.js +1 -1
- package/dist/index.d.ts +9 -3
- package/dist/index.js +6 -1080
- package/dist/indexeddb.js +79 -0
- package/dist/media.d.ts +18 -32
- package/dist/media.js +81 -67
- package/dist/protocol/dist/board-model.d.ts +33 -26
- package/dist/protocol/dist/board-model.js +21 -18
- package/dist/protocol/dist/board.d.ts +21 -1
- package/dist/protocol/dist/board.js +5 -1
- package/dist/protocol/dist/core/media.d.ts +32 -9
- package/dist/protocol/dist/core/media.js +203 -48
- package/dist/protocol/dist/index.d.ts +3 -3
- package/dist/voice-input.js +1 -1
- package/dist/websocket.js +37 -5
- package/package.json +1 -1
- package/dist/board/render/board-background.d.ts +0 -18
- package/dist/board/render/board-background.js +0 -104
package/README.md
CHANGED
|
@@ -95,6 +95,14 @@ await session.messages.send({
|
|
|
95
95
|
});
|
|
96
96
|
```
|
|
97
97
|
|
|
98
|
+
## Space files
|
|
99
|
+
|
|
100
|
+
`space.files.read(path)` and `space.files.resolve(path)` share requests: reads
|
|
101
|
+
made in the same task become one batched read, and concurrent reads of a file
|
|
102
|
+
share one request. In browsers with realtime, resolved URLs are remembered per
|
|
103
|
+
user across reloads, confirmed in the background and dropped when the file
|
|
104
|
+
changes; call `clearFileUrlCache()` on sign-out.
|
|
105
|
+
|
|
98
106
|
## Boards
|
|
99
107
|
|
|
100
108
|
A Board is one document of `board` settings, `items` and `animations`. Bind
|
|
@@ -122,6 +130,14 @@ const stop = board.subscribe({
|
|
|
122
130
|
});
|
|
123
131
|
```
|
|
124
132
|
|
|
133
|
+
Keep a cached copy current with `sync`: one request that carries only the
|
|
134
|
+
changes since the cached version, or the whole Board when they are unavailable.
|
|
135
|
+
With `changed: false` the cached `document` is returned as is.
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
const { version, document, changed } = await board.sync(cached); // cached: { version, document } | null
|
|
139
|
+
```
|
|
140
|
+
|
|
125
141
|
Task Items show a run by its `taskRunId`. Write only the id; the server fills
|
|
126
142
|
the display snapshot from the run and rewrites it when the run finishes, on
|
|
127
143
|
every Board in the Space that shows it. Lay a run's results out as media with
|
|
@@ -197,16 +213,14 @@ editor.addMedia("https://cdn.example.com/media?id=42", worldPoint(400, 0), {
|
|
|
197
213
|
snapshot: { title: "Launch", naturalWidth: 1920, naturalHeight: 1080 },
|
|
198
214
|
});
|
|
199
215
|
|
|
200
|
-
// Media URLs load directly;
|
|
201
|
-
// A published copy can resolve
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
resolvePlaybackUrl: (path: string) => space.files.resolveUrl(path, { purpose: "playback" }),
|
|
205
|
-
};
|
|
216
|
+
// Media URLs load directly; Space paths resolve through the Space's file URLs,
|
|
217
|
+
// which reload pictures when their file changes. A published copy can resolve
|
|
218
|
+
// paths against captured artifacts instead.
|
|
219
|
+
const source = space.boards.assetSource();
|
|
206
220
|
const stage = mountBoardStage(element, {
|
|
207
221
|
editor,
|
|
208
222
|
source,
|
|
209
|
-
assets: createBoardAssetManager(
|
|
223
|
+
assets: createBoardAssetManager(source),
|
|
210
224
|
views: [{
|
|
211
225
|
type: "acme.order",
|
|
212
226
|
// Mount anything: a React root, a Vue app, plain DOM.
|
|
@@ -245,13 +259,14 @@ Pictures your own items show go through `itemAsset`. They share the built-in
|
|
|
245
259
|
loader: CDN variants sized to the screen, loads ordered by where the view is
|
|
246
260
|
heading, prefetch, compact copies when panned away, device budgets, one cache
|
|
247
261
|
and exports. `src` is a Space path, resolved like an image item's, or a URL;
|
|
248
|
-
`fit: "cover"` sizes pictures cropped to fill their box by the short edge.
|
|
249
|
-
|
|
250
|
-
when
|
|
262
|
+
`fit: "cover"` sizes pictures cropped to fill their box by the short edge. When
|
|
263
|
+
the data it reads changes for some items, call `invalidateItemAssets(ids)` and
|
|
264
|
+
`stage.invalidate({ items: ids })` (omit `ids` when everything changed); call
|
|
265
|
+
`invalidatePath` when a file changes:
|
|
251
266
|
|
|
252
267
|
```ts
|
|
253
268
|
const assets = createBoardAssetManager({
|
|
254
|
-
|
|
269
|
+
resolveFile: source.resolveFile,
|
|
255
270
|
// undefined keeps the built-in rule; null shows no picture.
|
|
256
271
|
itemAsset: (item) => {
|
|
257
272
|
if (item.type !== "acme.order") return undefined;
|
|
@@ -285,8 +300,9 @@ const assets = createBoardAssetManager({
|
|
|
285
300
|
`touchRotation: false` to `createBoardEditor` to move and resize by touch and pen
|
|
286
301
|
without a rotation handle.
|
|
287
302
|
- **DOM views.** `viewLayer: "below"` puts them under the canvas, so selection and
|
|
288
|
-
strokes draw over them; views there get no input.
|
|
289
|
-
|
|
303
|
+
strokes draw over them; views there get no input. It needs `transparent: true`:
|
|
304
|
+
the canvas then draws no backdrop, and the host paints `resolveBoardBackdrop(...)`
|
|
305
|
+
behind it.
|
|
290
306
|
- **Previews.** Write `preview: { title, excerpt, cover, src }` on your items so
|
|
291
307
|
clients without your renderer, exports and agents show them as cards. Keep it out
|
|
292
308
|
of undo with `editor.commitPatch(patch, { record: false })`.
|
|
@@ -302,6 +318,12 @@ const assets = createBoardAssetManager({
|
|
|
302
318
|
- **Themes.** Start from a built-in theme and override what differs:
|
|
303
319
|
`{ key: "neta-pixel", ...boardRenderTheme("neta-pixel") }`. `style.frameLabelSize`
|
|
304
320
|
sets frame titles; the editor's title hit box and text editor follow it.
|
|
321
|
+
- **Backdrop.** A theme's `backdrop` is the Board's look until the document sets a
|
|
322
|
+
color or image: a `pattern` (`{ kind: "dots", pitch: 24, color }`) and an `image`
|
|
323
|
+
(`{ src, fit: "repeat", tile }`). The stage draws it on the GPU, patterns at a
|
|
324
|
+
constant screen size that merge as the view zooms out, and reports the image's load
|
|
325
|
+
through `onBackdropChange`. `resolveBoardBackdrop(settings, theme)` gives the result
|
|
326
|
+
for previews and exports; the canvas is opaque unless `transparent` is set.
|
|
305
327
|
- **Fonts.** Board text measures in `"Geist Variable"`; load
|
|
306
328
|
`@fontsource-variable/geist` so lines match the CLI export.
|
|
307
329
|
- **Agent context.** `onViewStateChange` on the editor reports `visibleRect` and
|
|
@@ -29,18 +29,20 @@ declare function createBoardEditor(options: BoardEditorOptions): {
|
|
|
29
29
|
readonly settings: {
|
|
30
30
|
title?: string | undefined;
|
|
31
31
|
background: {
|
|
32
|
-
kind: "dots" | "grid" | "image" | "solid";
|
|
33
32
|
color?: string | {
|
|
34
33
|
light: string;
|
|
35
34
|
dark: string;
|
|
36
35
|
} | undefined;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
pattern?: "dots" | "grid" | "none" | undefined;
|
|
37
|
+
image?: {
|
|
38
|
+
src: string;
|
|
39
|
+
fit: "contain" | "cover" | "repeat";
|
|
40
|
+
opacity?: number | undefined;
|
|
41
|
+
} | undefined;
|
|
40
42
|
};
|
|
41
43
|
grid?: {
|
|
42
|
-
visible: boolean;
|
|
43
44
|
size: number;
|
|
45
|
+
snap: boolean;
|
|
44
46
|
} | undefined;
|
|
45
47
|
enter?: {
|
|
46
48
|
preset: "deal" | "drop" | "fade-in" | "pop" | "rise";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BOARD_CLIPBOARD_MIME } from "../../protocol/dist/board.js";
|
|
2
|
-
import { alignFrames, distributeFrames, framesBounds } from "./align.js";
|
|
3
2
|
import { sameJson } from "../model/json.js";
|
|
3
|
+
import { alignFrames, distributeFrames, framesBounds } from "./align.js";
|
|
4
4
|
import { diffBoardEdits, isEmptyBoardPatch, readPath, routeBoardEdits, writePath } from "./document-edits.js";
|
|
5
5
|
import { normalizeWheelDelta, wheelZoomFactor } from "./wheel.js";
|
|
6
6
|
import { BOARD_CLIPBOARD_VERSION, DUPLICATE_OFFSET, MAX_CLIPBOARD_CHARS, MAX_CLIPBOARD_ITEMS, defaultPasteOffset, encodeClipboard, materializeClipboard, parseClipboard, remapItems } from "./clipboard.js";
|
|
@@ -65,7 +65,7 @@ function createInteractionModule(ctx) {
|
|
|
65
65
|
], (interaction, tool, hoverPoint, pointerType, zoom, transform, outset) => interaction.type === "idle" && !pinch && tool === "select" && hoverPoint ? selectionTransformControlAt(transform, hoverPoint, zoom, pointerType, outset) : null);
|
|
66
66
|
function gridSnapSize() {
|
|
67
67
|
const grid = state.base.board.grid;
|
|
68
|
-
return grid?.
|
|
68
|
+
return grid?.snap ? grid.size : 0;
|
|
69
69
|
}
|
|
70
70
|
function snapThreshold() {
|
|
71
71
|
return SNAP_THRESHOLD / Math.max(state.camera.zoom, 1e-4);
|
|
@@ -35,12 +35,7 @@ type BoardExportOptions = {
|
|
|
35
35
|
scripts?: BoardScriptHost;
|
|
36
36
|
assetKey?: (item: BoardSceneItem) => string | null;
|
|
37
37
|
renderers?: BoardCardRendererResolver;
|
|
38
|
-
|
|
39
|
-
texture: Texture;
|
|
40
|
-
fit: "cover" | "contain" | "repeat";
|
|
41
|
-
position: "center" | "top" | "bottom" | "left" | "right";
|
|
42
|
-
opacity: number;
|
|
43
|
-
};
|
|
38
|
+
backgroundTexture?: Texture;
|
|
44
39
|
maxEdge?: number;
|
|
45
40
|
maxPixels?: number;
|
|
46
41
|
};
|
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
import { buildBoardScene } from "../model/scene.js";
|
|
2
2
|
import { resolveBoardAnimationCamera } from "../model/sampling.js";
|
|
3
3
|
import { normalizeBoardDocument, planBoardExport } from "../model/export-plan.js";
|
|
4
|
-
import {
|
|
4
|
+
import { buildFallbackShapeColors } from "../model/palette.js";
|
|
5
|
+
import { resolveBoardBackdrop } from "../render/backdrop.js";
|
|
6
|
+
import { ensureBoardTextMeasurement } from "../render/text-measurement.js";
|
|
5
7
|
import { defaultBoardPalette } from "../render/palette.js";
|
|
6
8
|
import { createBoardRenderSampler } from "../render/sampling.js";
|
|
7
|
-
import { ensureBoardTextMeasurement } from "../render/text-measurement.js";
|
|
8
9
|
import { createBoardExportScene } from "./scene.js";
|
|
9
10
|
import { Rectangle, RendererType } from "pixi.js";
|
|
10
11
|
//#region src/board/export/index.ts
|
|
11
|
-
function
|
|
12
|
-
if (background === "transparent") return null;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
function resolveBackdrop(options, document, theme) {
|
|
13
|
+
if (options.background === "transparent") return null;
|
|
14
|
+
const backdrop = resolveBoardBackdrop(document.board, theme, "export");
|
|
15
|
+
return typeof options.background === "number" ? {
|
|
16
|
+
...backdrop,
|
|
17
|
+
color: options.background
|
|
18
|
+
} : backdrop;
|
|
17
19
|
}
|
|
18
20
|
function prepareBoardExport(input, options = {}) {
|
|
19
21
|
ensureBoardTextMeasurement();
|
|
@@ -81,8 +83,12 @@ function renderBoardExport(renderer, input, options = {}) {
|
|
|
81
83
|
scripts: options.scripts,
|
|
82
84
|
assetKey: options.assetKey,
|
|
83
85
|
renderers: options.renderers,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
backdrop: resolveBackdrop(options, document, {
|
|
87
|
+
palette,
|
|
88
|
+
colors: options.colors ?? buildFallbackShapeColors(colorScheme),
|
|
89
|
+
colorScheme
|
|
90
|
+
}),
|
|
91
|
+
backdropTexture: options.backgroundTexture
|
|
86
92
|
});
|
|
87
93
|
try {
|
|
88
94
|
const texture = renderer.textureGenerator.generateTexture({
|
|
@@ -31,14 +31,9 @@ type BoardNodeRenderer = {
|
|
|
31
31
|
};
|
|
32
32
|
declare function createNodeBoardRenderer(options?: BoardNodeRendererOptions): Promise<BoardNodeRenderer>;
|
|
33
33
|
type BoardNodeExportFormat = "png" | "jpeg" | "webp";
|
|
34
|
-
type BoardNodeExportOptions = Omit<BoardExportOptions, "textures" | "
|
|
34
|
+
type BoardNodeExportOptions = Omit<BoardExportOptions, "textures" | "backgroundTexture"> & {
|
|
35
35
|
textures?: Map<string, BoardNodeTexture>;
|
|
36
|
-
|
|
37
|
-
texture: BoardNodeTexture;
|
|
38
|
-
fit: "cover" | "contain" | "repeat";
|
|
39
|
-
position: "center" | "top" | "bottom" | "left" | "right";
|
|
40
|
-
opacity: number;
|
|
41
|
-
};
|
|
36
|
+
backgroundTexture?: BoardNodeTexture;
|
|
42
37
|
scripts?: BoardScriptHost;
|
|
43
38
|
format?: BoardNodeExportFormat;
|
|
44
39
|
quality?: number;
|
|
@@ -135,15 +135,12 @@ function boardImageMimeType(format) {
|
|
|
135
135
|
return MIME[format];
|
|
136
136
|
}
|
|
137
137
|
function exportBoardImageBytes(renderer, document, options = {}) {
|
|
138
|
-
const { format = "png", quality = .92, textures, scripts,
|
|
138
|
+
const { format = "png", quality = .92, textures, scripts, backgroundTexture, ...rest } = options;
|
|
139
139
|
const result = renderBoardExport(renderer.renderer, document, {
|
|
140
140
|
...rest,
|
|
141
141
|
...scripts ? { scripts } : {},
|
|
142
142
|
...textures ? { textures } : {},
|
|
143
|
-
...
|
|
144
|
-
...backgroundImage,
|
|
145
|
-
texture: backgroundImage.texture
|
|
146
|
-
} } : {}
|
|
143
|
+
...backgroundTexture ? { backgroundTexture } : {}
|
|
147
144
|
});
|
|
148
145
|
if (!result) return null;
|
|
149
146
|
const canvas = result.canvas;
|
|
@@ -5,6 +5,7 @@ import { BoardScene, BoardSceneItem } from "../model/scene.js";
|
|
|
5
5
|
import { BoardShapeColors } from "../model/palette.js";
|
|
6
6
|
import { BoardRenderStyleInput } from "../render/style.js";
|
|
7
7
|
import { BoardCardRendererResolver, BoardRenderContext, BoardRenderPalette } from "../render/renderers/board-renderer-registry.js";
|
|
8
|
+
import { BoardBackdrop } from "../render/backdrop.js";
|
|
8
9
|
import "../render/index.js";
|
|
9
10
|
import { Container, Texture } from "pixi.js";
|
|
10
11
|
//#region src/board/export/scene.d.ts
|
|
@@ -25,13 +26,8 @@ type BoardExportSceneInput = {
|
|
|
25
26
|
assetKey?: (item: BoardSceneItem) => string | null;
|
|
26
27
|
/** Renderers for item types beyond the built-ins. */
|
|
27
28
|
renderers?: BoardCardRendererResolver;
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
texture: Texture;
|
|
31
|
-
fit: "cover" | "contain" | "repeat";
|
|
32
|
-
position: "center" | "top" | "bottom" | "left" | "right";
|
|
33
|
-
opacity: number;
|
|
34
|
-
};
|
|
29
|
+
backdrop?: BoardBackdrop | null;
|
|
30
|
+
backdropTexture?: Texture;
|
|
35
31
|
};
|
|
36
32
|
type BoardExportScene = {
|
|
37
33
|
root: Container;
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { boardAssetKey } from "../model/asset-key.js";
|
|
2
2
|
import { buildFallbackShapeColors } from "../model/palette.js";
|
|
3
|
-
import {
|
|
3
|
+
import { createBoardBackdropLayer } from "../render/backdrop-layer.js";
|
|
4
4
|
import { clippingAncestor, isClippingFrame, syncClipGroup } from "../render/clip.js";
|
|
5
|
+
import { defaultBoardPalette } from "../render/palette.js";
|
|
5
6
|
import { DEFAULT_BOARD_RENDER_LABELS, getBoardCardRenderer } from "../render/renderers/board-renderer-registry.js";
|
|
6
7
|
import { resolveBoardRenderStyle } from "../render/style.js";
|
|
7
|
-
import { Container, Graphics
|
|
8
|
+
import { Container, Graphics } from "pixi.js";
|
|
8
9
|
//#region src/board/export/scene.ts
|
|
9
10
|
function buildContext(input) {
|
|
10
11
|
const missing = /* @__PURE__ */ new Set();
|
|
@@ -52,31 +53,23 @@ function createBoardExportScene(input) {
|
|
|
52
53
|
const root = new Container({ label: "board-export-root" });
|
|
53
54
|
const outputWidth = input.world.width * input.scale;
|
|
54
55
|
const outputHeight = input.world.height * input.scale;
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
56
|
+
let backdrop = null;
|
|
57
|
+
if (input.backdrop) {
|
|
58
|
+
root.addChild(new Graphics().rect(0, 0, outputWidth, outputHeight).fill({
|
|
59
|
+
color: input.backdrop.color,
|
|
60
|
+
alpha: 1
|
|
61
|
+
}));
|
|
62
|
+
backdrop = createBoardBackdropLayer({ patterns: false });
|
|
63
|
+
const view = {
|
|
64
|
+
x: -input.world.x * input.scale,
|
|
65
|
+
y: -input.world.y * input.scale,
|
|
66
|
+
zoom: input.scale,
|
|
63
67
|
width: outputWidth,
|
|
64
68
|
height: outputHeight,
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
texture,
|
|
70
|
-
alpha: opacity
|
|
71
|
-
});
|
|
72
|
-
const scale = fit === "cover" ? Math.max(outputWidth / texture.width, outputHeight / texture.height) : Math.min(outputWidth / texture.width, outputHeight / texture.height);
|
|
73
|
-
sprite.width = texture.width * scale;
|
|
74
|
-
sprite.height = texture.height * scale;
|
|
75
|
-
const x = position === "left" ? 0 : position === "right" ? outputWidth - sprite.width : (outputWidth - sprite.width) / 2;
|
|
76
|
-
const y = position === "top" ? 0 : position === "bottom" ? outputHeight - sprite.height : (outputHeight - sprite.height) / 2;
|
|
77
|
-
sprite.position.set(x, y);
|
|
78
|
-
root.addChild(sprite);
|
|
79
|
-
}
|
|
69
|
+
density: 1
|
|
70
|
+
};
|
|
71
|
+
backdrop.sync(input.backdrop, view, input.backdropTexture ?? null);
|
|
72
|
+
root.addChild(backdrop.container);
|
|
80
73
|
}
|
|
81
74
|
const world = new Container({
|
|
82
75
|
isRenderGroup: true,
|
|
@@ -115,7 +108,10 @@ function createBoardExportScene(input) {
|
|
|
115
108
|
return {
|
|
116
109
|
root,
|
|
117
110
|
missingImageKeys: [...missing],
|
|
118
|
-
destroy: () =>
|
|
111
|
+
destroy: () => {
|
|
112
|
+
backdrop?.destroy();
|
|
113
|
+
root.destroy({ children: true });
|
|
114
|
+
}
|
|
119
115
|
};
|
|
120
116
|
}
|
|
121
117
|
//#endregion
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { MediaSize } from "../../protocol/dist/core/media.js";
|
|
1
2
|
import { BoardSceneItem } from "./scene.js";
|
|
2
3
|
//#region src/board/model/asset-key.d.ts
|
|
3
4
|
type BoardAssetMedia = "image" | "video" | "model";
|
|
@@ -7,18 +8,20 @@ type BoardAssetKeySource = {
|
|
|
7
8
|
value: string;
|
|
8
9
|
fit?: "cover";
|
|
9
10
|
};
|
|
10
|
-
/** `
|
|
11
|
+
/** `natural` is the media's own pixel size, never a scaled copy's; it replaces the item's recorded size. */
|
|
11
12
|
type BoardAssetRef = {
|
|
12
13
|
src: string;
|
|
13
14
|
media?: "image" | "video";
|
|
14
15
|
fit?: "contain" | "cover";
|
|
16
|
+
natural?: MediaSize;
|
|
15
17
|
};
|
|
16
18
|
declare function boardAssetRefKey({ src, media, fit }: BoardAssetRef): string | null;
|
|
17
19
|
declare function imageAssetKey(item: BoardSceneItem): string | null;
|
|
20
|
+
declare function boardMediaNaturalSize(item: BoardSceneItem): MediaSize | null;
|
|
18
21
|
declare function boardAssetKey(item: BoardSceneItem): string | null;
|
|
19
22
|
declare function boardAssetKeySource(key: string): BoardAssetKeySource | null;
|
|
20
23
|
declare function boardTexturePixels(item: BoardSceneItem, scale: number): number;
|
|
21
24
|
declare const BOARD_THUMBNAIL_EDGE = 64;
|
|
22
25
|
declare function boardTextureEdge(item: BoardSceneItem, scale: number): number;
|
|
23
26
|
//#endregion
|
|
24
|
-
export { BOARD_THUMBNAIL_EDGE, BoardAssetKeySource, BoardAssetMedia, BoardAssetRef, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardTextureEdge, boardTexturePixels, imageAssetKey };
|
|
27
|
+
export { BOARD_THUMBNAIL_EDGE, BoardAssetKeySource, BoardAssetMedia, BoardAssetRef, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardMediaNaturalSize, boardTextureEdge, boardTexturePixels, imageAssetKey };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { mediaVariantSize
|
|
1
|
+
import { mediaVariantSize } from "../../protocol/dist/core/media.js";
|
|
2
2
|
import { boardItemPreview, isSafeBoardSourcePath, parseBoardMediaSource } from "../../protocol/dist/board-model.js";
|
|
3
3
|
import { featuredTaskArtifact, taskArtifactPreviewUrl } from "../../protocol/dist/board-task.js";
|
|
4
4
|
import { isBoardModelItem } from "./media.js";
|
|
@@ -42,9 +42,17 @@ function taskPreviewKey(item) {
|
|
|
42
42
|
const artifact = featuredTaskArtifact(item.props.snapshot.artifacts);
|
|
43
43
|
const cover = taskArtifactPreviewUrl(artifact);
|
|
44
44
|
if (cover) return `url:${cover}`;
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
return artifact?.type === "video" ? stillKey("video", {
|
|
46
|
+
kind: "url",
|
|
47
|
+
value: artifact.url
|
|
48
|
+
}, void 0) : null;
|
|
49
|
+
}
|
|
50
|
+
function boardMediaNaturalSize(item) {
|
|
51
|
+
const recorded = item.type === "task" ? featuredTaskArtifact(item.props.snapshot.artifacts) : item.type === "image" || item.type === "video" ? item.props.snapshot : null;
|
|
52
|
+
return recorded && "naturalWidth" in recorded && recorded.naturalWidth && recorded.naturalHeight ? {
|
|
53
|
+
width: recorded.naturalWidth,
|
|
54
|
+
height: recorded.naturalHeight
|
|
55
|
+
} : null;
|
|
48
56
|
}
|
|
49
57
|
function boardAssetKey(item) {
|
|
50
58
|
if (item.type === "task") return taskPreviewKey(item);
|
|
@@ -109,4 +117,4 @@ function boardTextureEdge(item, scale) {
|
|
|
109
117
|
return pixels > 1536 ? Number.POSITIVE_INFINITY : mediaVariantSize(pixels);
|
|
110
118
|
}
|
|
111
119
|
//#endregion
|
|
112
|
-
export { BOARD_THUMBNAIL_EDGE, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardTextureEdge, boardTexturePixels, imageAssetKey };
|
|
120
|
+
export { BOARD_THUMBNAIL_EDGE, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardMediaNaturalSize, boardTextureEdge, boardTexturePixels, imageAssetKey };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BOARD_ANCHOR_SIDES, BOARD_ARROW_ROUTES, BOARD_CAMERA_TARGET, BOARD_COLOR_TOKENS, BOARD_DASHES, BOARD_DERIVED_SIZE_TYPES, BOARD_EFFECT_KINDS, BOARD_EFFECT_KIND_INFO, BOARD_ENTER_PRESETS, BOARD_EXTENSION_TYPE_PATTERN, BOARD_GRID_DEFAULT_SIZE, BOARD_GRID_MAX_SIZE, BOARD_GRID_MIN_SIZE, BOARD_ID_MAX_LENGTH, BOARD_ITEM_SCHEMAS, BOARD_ITEM_TYPES, BOARD_PLAY_MODES, BOARD_SHAPE_GEOMETRIES, BOARD_TASK_ARTIFACT_LIMIT, BOARD_TEXT_ALIGNS, BoardAnchorSide, BoardAnimation, BoardAnimationHeader, BoardAnimationHeaderSchema, BoardAnimationSchema, BoardArrowAnchor, BoardArrowAnchorSchema, BoardArrowBinding, BoardArrowBindingSchema, BoardArrowEnd, BoardArrowEndSchema, BoardArrowItem, BoardArrowItemSchema, BoardArrowRoute, BoardAudioItem, BoardAudioItemSchema, BoardBackgroundSchema, BoardBuiltinItem, BoardBuiltinItemType, BoardColor, BoardColorSchema, BoardColorToken, BoardCropSchema, BoardCustomItem, BoardCustomItemSchema, BoardDash, BoardDelta, BoardDiagnostic, BoardDocument, BoardDrawItem, BoardDrawItemSchema, BoardDrawPoint, BoardDrawPointSchema, BoardEaseSchema, BoardEffectItem, BoardEffectItemSchema, BoardEffectKind, BoardEnterPreset, BoardExtensionItem, BoardExtensionItemSchema, BoardFileBackedItem, BoardFileItem, BoardFileItemSchema, BoardFrameItem, BoardFrameItemSchema, BoardIdSchema, BoardImageItem, BoardImageItemSchema, BoardItem, BoardItemPreview, BoardItemPreviewSchema, BoardItemType, BoardKeySchema, BoardKeyframe, BoardKeyframeSchema, BoardMarker, BoardMarkerSchema, BoardMediaOrigin, BoardMediaOriginSchema, BoardMediaSnapshot, BoardMediaSnapshotSchema, BoardMediaSource, BoardMediaSourceSchema, BoardPatch, BoardPatchSchema, BoardPlayMode, BoardScript, BoardScriptSchema, BoardSettings, BoardSettingsSchema, BoardShapeGeometry, BoardShapeItem, BoardShapeItemSchema, BoardSize, BoardSizeSchema, BoardStyle, BoardStyleSchema, BoardTaskArtifact, BoardTaskArtifactSchema, BoardTaskItem, BoardTaskItemSchema, BoardTaskSnapshot, BoardTaskSnapshotSchema, BoardTextItem, BoardTextItemSchema, BoardTrack, BoardTrackSchema, BoardVec2, BoardVec2Schema, BoardVideoItem, BoardVideoItemSchema, boardItemPreview, boardItemSchema, emptyBoardDocument, hasAuthoredSize, isBoardColorString, isBoardEase, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isFileBackedItem, isMediaItem, isSafeBoardSourcePath, parseBoardItem, parseBoardMediaSource } from "../../protocol/dist/board-model.js";
|
|
1
|
+
import { BOARD_ANCHOR_SIDES, BOARD_ARROW_ROUTES, BOARD_BACKGROUND_FITS, BOARD_BACKGROUND_PATTERNS, BOARD_CAMERA_TARGET, BOARD_COLOR_TOKENS, BOARD_DASHES, BOARD_DERIVED_SIZE_TYPES, BOARD_EFFECT_KINDS, BOARD_EFFECT_KIND_INFO, BOARD_ENTER_PRESETS, BOARD_EXTENSION_TYPE_PATTERN, BOARD_GRID_DEFAULT_SIZE, BOARD_GRID_MAX_SIZE, BOARD_GRID_MIN_SIZE, BOARD_ID_MAX_LENGTH, BOARD_ITEM_SCHEMAS, BOARD_ITEM_TYPES, BOARD_PLAY_MODES, BOARD_SHAPE_GEOMETRIES, BOARD_TASK_ARTIFACT_LIMIT, BOARD_TEXT_ALIGNS, BoardAnchorSide, BoardAnimation, BoardAnimationHeader, BoardAnimationHeaderSchema, BoardAnimationSchema, BoardArrowAnchor, BoardArrowAnchorSchema, BoardArrowBinding, BoardArrowBindingSchema, BoardArrowEnd, BoardArrowEndSchema, BoardArrowItem, BoardArrowItemSchema, BoardArrowRoute, BoardAudioItem, BoardAudioItemSchema, BoardBackground, BoardBackgroundFit, BoardBackgroundPattern, BoardBackgroundSchema, BoardBuiltinItem, BoardBuiltinItemType, BoardColor, BoardColorSchema, BoardColorToken, BoardCropSchema, BoardCustomItem, BoardCustomItemSchema, BoardDash, BoardDelta, BoardDiagnostic, BoardDocument, BoardDrawItem, BoardDrawItemSchema, BoardDrawPoint, BoardDrawPointSchema, BoardEaseSchema, BoardEffectItem, BoardEffectItemSchema, BoardEffectKind, BoardEnterPreset, BoardExtensionItem, BoardExtensionItemSchema, BoardFileBackedItem, BoardFileItem, BoardFileItemSchema, BoardFrameItem, BoardFrameItemSchema, BoardIdSchema, BoardImageItem, BoardImageItemSchema, BoardItem, BoardItemPreview, BoardItemPreviewSchema, BoardItemType, BoardKeySchema, BoardKeyframe, BoardKeyframeSchema, BoardMarker, BoardMarkerSchema, BoardMediaOrigin, BoardMediaOriginSchema, BoardMediaSnapshot, BoardMediaSnapshotSchema, BoardMediaSource, BoardMediaSourceSchema, BoardPatch, BoardPatchSchema, BoardPlayMode, BoardScript, BoardScriptSchema, BoardSettings, BoardSettingsSchema, BoardShapeGeometry, BoardShapeItem, BoardShapeItemSchema, BoardSize, BoardSizeSchema, BoardStyle, BoardStyleSchema, BoardTaskArtifact, BoardTaskArtifactSchema, BoardTaskItem, BoardTaskItemSchema, BoardTaskSnapshot, BoardTaskSnapshotSchema, BoardTextItem, BoardTextItemSchema, BoardTrack, BoardTrackSchema, BoardVec2, BoardVec2Schema, BoardVideoItem, BoardVideoItemSchema, boardItemPreview, boardItemSchema, emptyBoardDocument, hasAuthoredSize, isBoardColorString, isBoardEase, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isFileBackedItem, isMediaItem, isSafeBoardSourcePath, parseBoardItem, parseBoardMediaSource } from "../../protocol/dist/board-model.js";
|
|
2
2
|
import { BoardFrame, BoardItemLookup, BoardLayout, BoardMatrix, BoardRect, BoardTextFont, BoardTextLayout, BoardTextLayouter, BoardTextLines, IDENTITY_MATRIX, adoptBoardNaturalSize, anchorPoint, applyMatrix, arrowBindings, autoAnchorSide, bendControl, clampBoardFontSize, createBoardLayout, createDocumentLayout, drawPointsBounds, drawSampleRadius, estimateTextWidth, fitBoardMediaSize, framePoint, invertMatrix, isArrowBinding, layoutBoardText, multiplyMatrix, pointsRect, rotateAround, scaleVector, setBoardTextLayouter, sideAnchor } from "../../protocol/dist/board-layout.js";
|
|
3
3
|
import { BoardApplyOptions, BoardPatchResult, BoardPropertySpec, BoardState, BoardValueKind, applyBoardDelta, applyBoardPatch, applyBoardPatchToDocument, boardPatchTouches, createDocumentState, diffBoardDocuments, diffMergePatch, isEmptyBoardPatch, listBoardProperties, mergePatch, parseBoardDocument, pruneBoardTrack, resolveBoardProperty, trackReferences } from "../../protocol/dist/board-patch.js";
|
|
4
4
|
import { isBoardPath, parseBoardManifest, serializeBoardManifest } from "../../protocol/dist/board.js";
|
|
@@ -33,7 +33,7 @@ import { SHAPE_KINDS, ShapeKind, isShapeKind } from "./shape-types.js";
|
|
|
33
33
|
import { BOARD_FRAME_LABEL_LINE_HEIGHT, BOARD_FRAME_LABEL_SIZE, SHAPE_LABEL_PADDING, TEXT_FONT_FAMILY, TEXT_FONT_SIZE, TEXT_LINE_HEIGHT, TEXT_MAX_FONT_SIZE, TEXT_MIN_FONT_SIZE, boardEditableText, boardFontFamily, frameLabelHitRect, frameLabelOffset, layoutShapeLabel } from "./text-metrics.js";
|
|
34
34
|
import { BoardStyledToolId, BoardToolStyleMap, BoardToolStylePatch, DEFAULT_BOARD_TOOL_STYLES, createBoardToolStyles } from "./tool-styles.js";
|
|
35
35
|
import { ClientToLocalInput, clientToLocal, elementClientToLocal } from "./client-geometry.js";
|
|
36
|
-
import { BOARD_THUMBNAIL_EDGE, BoardAssetKeySource, BoardAssetMedia, BoardAssetRef, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardTextureEdge, boardTexturePixels, imageAssetKey } from "./asset-key.js";
|
|
36
|
+
import { BOARD_THUMBNAIL_EDGE, BoardAssetKeySource, BoardAssetMedia, BoardAssetRef, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardMediaNaturalSize, boardTextureEdge, boardTexturePixels, imageAssetKey } from "./asset-key.js";
|
|
37
37
|
import { BoardMediaFileResolver, BoardMediaSize, BoardMediaSizeOptions, BoardMediaTarget, boardMediaTarget, probeBoardMediaSize, settleBoardMediaSizes } from "./media-sizes.js";
|
|
38
38
|
import { BoardItemActivation, BoardItemCapabilities, BoardItemDefinition, BoardItemOf, BoardItemResizeMode, FULL_CAPABILITIES, defineBoardItem } from "./items/definition.js";
|
|
39
39
|
import { builtinBoardItems } from "./items/builtin.js";
|
|
@@ -42,6 +42,7 @@ import { createBoardEntityId, createBoardItemId } from "./items/id.js";
|
|
|
42
42
|
import { BoardItemInput, BoardRegistry, createBoardRegistry, defaultBoardRegistry } from "./items/registry.js";
|
|
43
43
|
import "./items/index.js";
|
|
44
44
|
import { BoardMediaKind, boardModelFormat, getMediaExtension, getMediaResourceTitle, inferBoardMediaKind, isBoardModelItem } from "./media.js";
|
|
45
|
-
import { BoardAssetSource,
|
|
45
|
+
import { BoardAssetSource, BoardPlayableMedia, playableBoardMedia, playableBoardMediaList, resetBoardPlaybackUrlCache, resolveBoardMediaUrl } from "./media-playback.js";
|
|
46
|
+
import { readBoardDocument } from "./read.js";
|
|
46
47
|
import { BoardReplayActorKind, BoardReplayEntry, BoardReplayPlayer, boardReplayActorKind, createBoardReplayPlayer } from "./replay.js";
|
|
47
|
-
export { ARROW_BINDING_GAP, ArrowFrameLookup, BOARD_ANCHOR_SIDES, BOARD_ARROW_ROUTES, BOARD_CAMERA_TARGET, BOARD_COLORS, BOARD_COLOR_TOKENS, BOARD_DASHES, BOARD_DERIVED_SIZE_TYPES, BOARD_EFFECT_KINDS, BOARD_EFFECT_KIND_INFO, BOARD_ENTER_PRESETS, BOARD_EXPORT_DEFAULT_PADDING, BOARD_EXPORT_DEFAULT_SCALE, BOARD_EXPORT_ITEM_WARN_THRESHOLD, BOARD_EXPORT_MAX_EDGE, BOARD_EXPORT_MAX_PIXELS, BOARD_EXPORT_TEXTURE_BYTES, BOARD_EXTENSION_TYPE_PATTERN, BOARD_FRAME_LABEL_LINE_HEIGHT, BOARD_FRAME_LABEL_SIZE, BOARD_GRID_DEFAULT_SIZE, BOARD_GRID_MAX_SIZE, BOARD_GRID_MIN_SIZE, BOARD_ID_MAX_LENGTH, BOARD_ITEM_SCHEMAS, BOARD_ITEM_TYPES, BOARD_PLAY_MODES, BOARD_PRESET_NAMES, BOARD_SCHEMA_TARGETS, BOARD_SCRIPT_API, BOARD_SCRIPT_DRAWING_EXAMPLE, BOARD_SHAPE_GEOMETRIES, BOARD_STROKE_MAX_SIZE, BOARD_STROKE_MIN_SIZE, BOARD_TASK_ARTIFACT_LIMIT, BOARD_TASK_SOURCE_PREFIX, BOARD_TEXT_ALIGNS, BOARD_THEME_IDS, BOARD_THUMBNAIL_EDGE, BoardAnchorSide, BoardAnimation, BoardAnimationHeader, BoardAnimationHeaderSchema, BoardAnimationSampler, BoardAnimationSchema, BoardAppMetadata, BoardApplyOptions, BoardArrowAnchor, BoardArrowAnchorSchema, BoardArrowBinding, BoardArrowBindingSchema, BoardArrowEnd, BoardArrowEndSchema, BoardArrowItem, BoardArrowItemSchema, BoardArrowRoute, BoardAssetKeySource, BoardAssetMedia, BoardAssetRef, BoardAssetSource, BoardAssetUrlOptions, BoardAudioItem, BoardAudioItemSchema, BoardBackgroundSchema, BoardBuiltinItem, BoardBuiltinItemType, BoardCameraFit, BoardCameraFocus, BoardCameraOverride, BoardCameraState, BoardChapter, BoardColor, BoardColorEntry, BoardColorId, BoardColorResolver, BoardColorSchema, BoardColorToken, BoardColorValue, BoardCropSchema, BoardCustomItem, BoardCustomItemSchema, BoardDash, BoardDelta, BoardDiagnostic, BoardDocument, BoardDrawInputSample, BoardDrawItem, BoardDrawItemSchema, BoardDrawPoint, BoardDrawPointSchema, BoardEaseFunction, BoardEaseSchema, BoardEffectItem, BoardEffectItemSchema, BoardEffectKind, BoardEnterPreset, BoardEvaluateOptions, BoardEvaluation, BoardExportAssetSelection, BoardExportPlan, BoardExportPlanInput, BoardExportRegion, BoardExtensionItem, BoardExtensionItemSchema, BoardFileBackedItem, BoardFileItem, BoardFileItemSchema, type BoardFileSnapshotFacts, BoardFrame, BoardFrameItem, BoardFrameItemSchema, BoardIdSchema, BoardImageItem, BoardImageItemSchema, BoardItem, BoardItemActivation, BoardItemCapabilities, BoardItemDefinition, BoardItemEntry, BoardItemInput, BoardItemLookup, BoardItemOf, BoardItemPreview, BoardItemPreviewSchema, BoardItemResizeMode, BoardItemType, BoardKeySchema, BoardKeyframe, BoardKeyframeSchema, BoardLayout, BoardMarker, BoardMarkerSchema, BoardMatrix, BoardMediaFileResolver, BoardMediaItemKind, BoardMediaKind, BoardMediaOrigin, BoardMediaOriginSchema, BoardMediaSize, BoardMediaSizeOptions, BoardMediaSnapshot, BoardMediaSnapshotSchema, BoardMediaSource, BoardMediaSourceSchema, BoardMediaTarget, BoardNestedAnimationOptions, BoardNormalizedPoint, BoardPatch, BoardPatchResult, BoardPatchSchema, BoardPlacement, BoardPlayMode, BoardPlayableMedia, BoardPresetName, BoardPresetOptions, BoardPropertySpec, BoardRect, BoardRegistry, BoardReplayActorKind, BoardReplayEntry, BoardReplayPlayer, BoardScene, BoardSceneItem, BoardScreenOffset, BoardScreenPoint, BoardScript, BoardScriptAnchor, BoardScriptContext, BoardScriptEvent, BoardScriptEventOf, BoardScriptFrame, BoardScriptHit, BoardScriptHostEvents, BoardScriptItemPatch, BoardScriptModule, BoardScriptOutput, BoardScriptParameter, BoardScriptSceneOptions, BoardScriptSchema, BoardScriptSnapshot, BoardScriptView, BoardSettings, BoardSettingsSchema, BoardShapeColors, BoardShapeGeometry, BoardShapeItem, BoardShapeItemSchema, BoardSize, BoardSizeSchema, BoardState, BoardStyle, BoardStyleSchema, BoardStyledToolId, BoardTaskArtifact, BoardTaskArtifactSchema, BoardTaskItem, BoardTaskItemSchema, type BoardTaskRunSource, BoardTaskSnapshot, BoardTaskSnapshotSchema, BoardTextFont, BoardTextItem, BoardTextItemSchema, BoardTextLayout, BoardTextLayouter, BoardTextLines, type BoardThemeId, BoardToolStyleMap, BoardToolStylePatch, BoardTrack, BoardTrackSchema, BoardValueKind, BoardVec2, BoardVec2Schema, BoardVideoItem, BoardVideoItemSchema, BoardViewport, BoardWorldOffset, BoardWorldPoint, BoardWorldRect, type BuildSnapshotInput, CORNER_RESIZE_HANDLES, CORNER_ROTATION_ZONE_WIDTH, ClientToLocalInput, CompiledAnimation, CompiledBoardAnimations, CompiledTrack, CornerResizeHandle, DEFAULT_BOARD_COLOR, DEFAULT_BOARD_TOOL_STYLES, EDGE_RESIZE_HANDLES, FILE_EXCERPT_MAX_BYTES, FILE_EXCERPT_MAX_CHARS, FIT_PADDING, FULL_CAPABILITIES, FileAvailability, type FileCategory, FilePreviewKind, HANDLE_DIRECTION, HANDLE_HIT_RADIUS, IDENTITY_MATRIX, MAX_BOARD_ZOOM, MIN_BOARD_ZOOM, MIN_ITEM_SIZE, Point, RESIZE_HANDLES, ROTATION_HANDLE_OFFSET, Rect, ResizeHandle, ResolvedArrow, ResolvedArrowEnd, type ResolvedCover, SHAPE_KINDS, SHAPE_LABEL_PADDING, SceneItem, ScreenPoint, ShapeKind, Size, StrokeRibbonBuilder, StrokeRibbonGeometry, StrokeRibbonMesh, TEXT_FONT_FAMILY, TEXT_FONT_SIZE, TEXT_LINE_HEIGHT, TEXT_MAX_FONT_SIZE, TEXT_MIN_FONT_SIZE, VIEWPORT_MARGIN_RATIO, WorldPoint, adoptBoardNaturalSize, anchorPoint, angleFromCenter, appendBoardDrawSamples, applyBoardDelta, applyBoardEvaluation, applyBoardPatch, applyBoardPatchToDocument, applyMatrix, arrowBindings, arrowHitRadius, arrowPathBounds, autoAnchorSide, availabilityFromError, bendControl, boardAnimationTime, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardColorCssVar, boardDocumentAt, boardEase, boardEditableText, boardFontFamily, boardItemOrigin, boardItemPreview, boardItemSchema, boardJsonSchema, boardMediaTarget, boardModelFormat, boardNestedAnimation, boardNestedAnimationTrack, boardOriginKey, boardPatchTouches, boardPathTrack, boardPresetTracks, boardReplayActorKind, boardSchemaOverview, boardScriptHitVisible, boardScriptItems, boardScriptScope, boardScriptTarget, boardSequence, boardSequencePatch, boardTaskCardSize, boardTaskSource, boardTextureBytes, boardTextureEdge, boardTexturePixels, buildBoardScene, buildCodeExcerpt, buildFallbackShapeColors, buildFileExcerpt, buildFileSnapshot, buildStrokeOutline, buildStrokeRibbonGeometry, builtinBoardItems, cameraForFocus, cameraForRect, cameraForState, clamp, clampBoardFontSize, clampBoardStrokeSize, clampBoardFontSize as clampBoardTextFontSize, clampZoom, clientToLocal, compileBoardAnimations, composeBoardScriptItems, computeDrawBounds, createAppBoardItem, createArrowBoardItem, createBoardAnimationSampler, createBoardEntityId, createBoardItemId, createBoardLayout, createBoardRegistry, createBoardReplayPlayer, createBoardToolStyles, createDocumentLayout, createDocumentState, createDrawBoardItem, createFileNodeForPath, createFrameBoardItem, createMediaBoardItem, createShapeBoardItem, createStrokeRibbonBuilder, createTaskBoardItem, createTaskResultItems, createTextBoardItem, defaultBoardRegistry, defineBoardItem, degToRad, diffBoardDocuments, diffMergePatch, distanceToArrow, distanceToStroke, drawPointsBounds, drawSampleRadius, elementClientToLocal, emptyBoardDocument, estimateTextWidth, evaluateBoardAnimations, expandRect, exportItemBounds, featuredTaskArtifact, fileBaseName, fileCategory, fileCategoryAccent, fileMetaLine, filePreviewKind, filePreviewMemoKey, filePreviewScope, fileStem, fileTypeLabel, fitBoardMediaSize, fitToContent, formatFileSize, frameContainsPoint, frameCornerRotationHandleAt, frameCorners, frameEdgeHandleAt, frameHandlePosition, frameLabelHitRect, frameLabelOffset, framePoint, frameRayIntersection, frameRect, getMediaExtension, getMediaResourceTitle, handlePosition, hasAuthoredSize, hasBoardScripts, imageAssetKey, inferBoardMediaKind, invertMatrix, isArrowBinding, isBoardColorId, isBoardColorString, isBoardEase, isBoardModelItem, isBoardPath, isBoardPresetName, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isEmptyBoardPatch, isFileBackedItem, isFileSnapshotFresh, isMediaItem, isPublicBoardRemoteAddress, isSafeBoardSourcePath, isShapeKind, isStrokeCorner, itemBounds, layoutBoardText, layoutShapeLabel, listBoardPresets, listBoardProperties, mediaFrameSize, mergeFileSnapshot, mergePatch, multiplyMatrix, normalizeBoardDocument, normalizeBoardRemoteUrl, normalizeRotation, normalizeViewport, normalizedPoint, orderBoardItems, panBy, parseBoardDocument, parseBoardItem, parseBoardManifest, parseBoardMediaSource, parseHexColor, pathMidpoint, pathPointAt, pickBoardColor, placeBoardOverlay, placeItem, planBoardExport, playableBoardMedia, playableBoardMediaList, pointToWorld, pointsBounds, pointsRect, prepareBoardScriptOutput, probeBoardMediaSize, pruneBoardTrack, quantizeDrawCoordinate, radToDeg, rankedTaskArtifacts, readCoverFromFrontmatter, readFrontmatterScalars, readTitleFromFrontmatter, rectCenter, rectContainsPoint, rectForCameraFocus, rectsIntersect, refreshBoardScene, resetBoardPlaybackUrlCache, resizeFrame, resizeFrameToSize, resolveAnchor, resolveArrow, resolveBoardAnimationCamera, resolveBoardColor, resolveBoardMediaUrl, resolveBoardProperty, resolveBoardScriptHit, resolveCoverRef, resolveFileTitle, resolveItemColor, resolveSceneArrow, resolveSpacePath, rotateAround, rotateFrames, rotatePointAround, rotationHandleAnchor, rotationHandlePosition, sampleBoardTrack, sampleRadius, scaleFrames, scaleVector, sceneItemToItem, sceneItemsToRecord, screenOffset, screenPoint, screenToWorld, scriptTemporaryPrefix, selectBoardExportAssets, selectionBounds, serializeBoardManifest, setBoardTextLayouter, settleBoardMediaSizes, shouldFetchFileExcerpt, sideAnchor, simplifyDrawIndices, splitFrontmatter, stableCullRect, taskArtifactPreviewUrl, taskArtifacts, taskRunArtifacts, taskRunToBoardTaskSnapshot, titleForBoardItem, toSceneItem, trackReferences, trimDrawPoints, unionRects, validateBoardScriptCommit, validateBoardScriptOutput, visibleWorldRect, withObservedArtifactFacts, worldOffset, worldPoint, worldRect, worldToScreen, zoomAround };
|
|
48
|
+
export { ARROW_BINDING_GAP, ArrowFrameLookup, BOARD_ANCHOR_SIDES, BOARD_ARROW_ROUTES, BOARD_BACKGROUND_FITS, BOARD_BACKGROUND_PATTERNS, BOARD_CAMERA_TARGET, BOARD_COLORS, BOARD_COLOR_TOKENS, BOARD_DASHES, BOARD_DERIVED_SIZE_TYPES, BOARD_EFFECT_KINDS, BOARD_EFFECT_KIND_INFO, BOARD_ENTER_PRESETS, BOARD_EXPORT_DEFAULT_PADDING, BOARD_EXPORT_DEFAULT_SCALE, BOARD_EXPORT_ITEM_WARN_THRESHOLD, BOARD_EXPORT_MAX_EDGE, BOARD_EXPORT_MAX_PIXELS, BOARD_EXPORT_TEXTURE_BYTES, BOARD_EXTENSION_TYPE_PATTERN, BOARD_FRAME_LABEL_LINE_HEIGHT, BOARD_FRAME_LABEL_SIZE, BOARD_GRID_DEFAULT_SIZE, BOARD_GRID_MAX_SIZE, BOARD_GRID_MIN_SIZE, BOARD_ID_MAX_LENGTH, BOARD_ITEM_SCHEMAS, BOARD_ITEM_TYPES, BOARD_PLAY_MODES, BOARD_PRESET_NAMES, BOARD_SCHEMA_TARGETS, BOARD_SCRIPT_API, BOARD_SCRIPT_DRAWING_EXAMPLE, BOARD_SHAPE_GEOMETRIES, BOARD_STROKE_MAX_SIZE, BOARD_STROKE_MIN_SIZE, BOARD_TASK_ARTIFACT_LIMIT, BOARD_TASK_SOURCE_PREFIX, BOARD_TEXT_ALIGNS, BOARD_THEME_IDS, BOARD_THUMBNAIL_EDGE, BoardAnchorSide, BoardAnimation, BoardAnimationHeader, BoardAnimationHeaderSchema, BoardAnimationSampler, BoardAnimationSchema, BoardAppMetadata, BoardApplyOptions, BoardArrowAnchor, BoardArrowAnchorSchema, BoardArrowBinding, BoardArrowBindingSchema, BoardArrowEnd, BoardArrowEndSchema, BoardArrowItem, BoardArrowItemSchema, BoardArrowRoute, BoardAssetKeySource, BoardAssetMedia, BoardAssetRef, BoardAssetSource, BoardAudioItem, BoardAudioItemSchema, BoardBackground, BoardBackgroundFit, BoardBackgroundPattern, BoardBackgroundSchema, BoardBuiltinItem, BoardBuiltinItemType, BoardCameraFit, BoardCameraFocus, BoardCameraOverride, BoardCameraState, BoardChapter, BoardColor, BoardColorEntry, BoardColorId, BoardColorResolver, BoardColorSchema, BoardColorToken, BoardColorValue, BoardCropSchema, BoardCustomItem, BoardCustomItemSchema, BoardDash, BoardDelta, BoardDiagnostic, BoardDocument, BoardDrawInputSample, BoardDrawItem, BoardDrawItemSchema, BoardDrawPoint, BoardDrawPointSchema, BoardEaseFunction, BoardEaseSchema, BoardEffectItem, BoardEffectItemSchema, BoardEffectKind, BoardEnterPreset, BoardEvaluateOptions, BoardEvaluation, BoardExportAssetSelection, BoardExportPlan, BoardExportPlanInput, BoardExportRegion, BoardExtensionItem, BoardExtensionItemSchema, BoardFileBackedItem, BoardFileItem, BoardFileItemSchema, type BoardFileSnapshotFacts, BoardFrame, BoardFrameItem, BoardFrameItemSchema, BoardIdSchema, BoardImageItem, BoardImageItemSchema, BoardItem, BoardItemActivation, BoardItemCapabilities, BoardItemDefinition, BoardItemEntry, BoardItemInput, BoardItemLookup, BoardItemOf, BoardItemPreview, BoardItemPreviewSchema, BoardItemResizeMode, BoardItemType, BoardKeySchema, BoardKeyframe, BoardKeyframeSchema, BoardLayout, BoardMarker, BoardMarkerSchema, BoardMatrix, BoardMediaFileResolver, BoardMediaItemKind, BoardMediaKind, BoardMediaOrigin, BoardMediaOriginSchema, BoardMediaSize, BoardMediaSizeOptions, BoardMediaSnapshot, BoardMediaSnapshotSchema, BoardMediaSource, BoardMediaSourceSchema, BoardMediaTarget, BoardNestedAnimationOptions, BoardNormalizedPoint, BoardPatch, BoardPatchResult, BoardPatchSchema, BoardPlacement, BoardPlayMode, BoardPlayableMedia, BoardPresetName, BoardPresetOptions, BoardPropertySpec, BoardRect, BoardRegistry, BoardReplayActorKind, BoardReplayEntry, BoardReplayPlayer, BoardScene, BoardSceneItem, BoardScreenOffset, BoardScreenPoint, BoardScript, BoardScriptAnchor, BoardScriptContext, BoardScriptEvent, BoardScriptEventOf, BoardScriptFrame, BoardScriptHit, BoardScriptHostEvents, BoardScriptItemPatch, BoardScriptModule, BoardScriptOutput, BoardScriptParameter, BoardScriptSceneOptions, BoardScriptSchema, BoardScriptSnapshot, BoardScriptView, BoardSettings, BoardSettingsSchema, BoardShapeColors, BoardShapeGeometry, BoardShapeItem, BoardShapeItemSchema, BoardSize, BoardSizeSchema, BoardState, BoardStyle, BoardStyleSchema, BoardStyledToolId, BoardTaskArtifact, BoardTaskArtifactSchema, BoardTaskItem, BoardTaskItemSchema, type BoardTaskRunSource, BoardTaskSnapshot, BoardTaskSnapshotSchema, BoardTextFont, BoardTextItem, BoardTextItemSchema, BoardTextLayout, BoardTextLayouter, BoardTextLines, type BoardThemeId, BoardToolStyleMap, BoardToolStylePatch, BoardTrack, BoardTrackSchema, BoardValueKind, BoardVec2, BoardVec2Schema, BoardVideoItem, BoardVideoItemSchema, BoardViewport, BoardWorldOffset, BoardWorldPoint, BoardWorldRect, type BuildSnapshotInput, CORNER_RESIZE_HANDLES, CORNER_ROTATION_ZONE_WIDTH, ClientToLocalInput, CompiledAnimation, CompiledBoardAnimations, CompiledTrack, CornerResizeHandle, DEFAULT_BOARD_COLOR, DEFAULT_BOARD_TOOL_STYLES, EDGE_RESIZE_HANDLES, FILE_EXCERPT_MAX_BYTES, FILE_EXCERPT_MAX_CHARS, FIT_PADDING, FULL_CAPABILITIES, FileAvailability, type FileCategory, FilePreviewKind, HANDLE_DIRECTION, HANDLE_HIT_RADIUS, IDENTITY_MATRIX, MAX_BOARD_ZOOM, MIN_BOARD_ZOOM, MIN_ITEM_SIZE, Point, RESIZE_HANDLES, ROTATION_HANDLE_OFFSET, Rect, ResizeHandle, ResolvedArrow, ResolvedArrowEnd, type ResolvedCover, SHAPE_KINDS, SHAPE_LABEL_PADDING, SceneItem, ScreenPoint, ShapeKind, Size, StrokeRibbonBuilder, StrokeRibbonGeometry, StrokeRibbonMesh, TEXT_FONT_FAMILY, TEXT_FONT_SIZE, TEXT_LINE_HEIGHT, TEXT_MAX_FONT_SIZE, TEXT_MIN_FONT_SIZE, VIEWPORT_MARGIN_RATIO, WorldPoint, adoptBoardNaturalSize, anchorPoint, angleFromCenter, appendBoardDrawSamples, applyBoardDelta, applyBoardEvaluation, applyBoardPatch, applyBoardPatchToDocument, applyMatrix, arrowBindings, arrowHitRadius, arrowPathBounds, autoAnchorSide, availabilityFromError, bendControl, boardAnimationTime, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardColorCssVar, boardDocumentAt, boardEase, boardEditableText, boardFontFamily, boardItemOrigin, boardItemPreview, boardItemSchema, boardJsonSchema, boardMediaNaturalSize, boardMediaTarget, boardModelFormat, boardNestedAnimation, boardNestedAnimationTrack, boardOriginKey, boardPatchTouches, boardPathTrack, boardPresetTracks, boardReplayActorKind, boardSchemaOverview, boardScriptHitVisible, boardScriptItems, boardScriptScope, boardScriptTarget, boardSequence, boardSequencePatch, boardTaskCardSize, boardTaskSource, boardTextureBytes, boardTextureEdge, boardTexturePixels, buildBoardScene, buildCodeExcerpt, buildFallbackShapeColors, buildFileExcerpt, buildFileSnapshot, buildStrokeOutline, buildStrokeRibbonGeometry, builtinBoardItems, cameraForFocus, cameraForRect, cameraForState, clamp, clampBoardFontSize, clampBoardStrokeSize, clampBoardFontSize as clampBoardTextFontSize, clampZoom, clientToLocal, compileBoardAnimations, composeBoardScriptItems, computeDrawBounds, createAppBoardItem, createArrowBoardItem, createBoardAnimationSampler, createBoardEntityId, createBoardItemId, createBoardLayout, createBoardRegistry, createBoardReplayPlayer, createBoardToolStyles, createDocumentLayout, createDocumentState, createDrawBoardItem, createFileNodeForPath, createFrameBoardItem, createMediaBoardItem, createShapeBoardItem, createStrokeRibbonBuilder, createTaskBoardItem, createTaskResultItems, createTextBoardItem, defaultBoardRegistry, defineBoardItem, degToRad, diffBoardDocuments, diffMergePatch, distanceToArrow, distanceToStroke, drawPointsBounds, drawSampleRadius, elementClientToLocal, emptyBoardDocument, estimateTextWidth, evaluateBoardAnimations, expandRect, exportItemBounds, featuredTaskArtifact, fileBaseName, fileCategory, fileCategoryAccent, fileMetaLine, filePreviewKind, filePreviewMemoKey, filePreviewScope, fileStem, fileTypeLabel, fitBoardMediaSize, fitToContent, formatFileSize, frameContainsPoint, frameCornerRotationHandleAt, frameCorners, frameEdgeHandleAt, frameHandlePosition, frameLabelHitRect, frameLabelOffset, framePoint, frameRayIntersection, frameRect, getMediaExtension, getMediaResourceTitle, handlePosition, hasAuthoredSize, hasBoardScripts, imageAssetKey, inferBoardMediaKind, invertMatrix, isArrowBinding, isBoardColorId, isBoardColorString, isBoardEase, isBoardModelItem, isBoardPath, isBoardPresetName, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isEmptyBoardPatch, isFileBackedItem, isFileSnapshotFresh, isMediaItem, isPublicBoardRemoteAddress, isSafeBoardSourcePath, isShapeKind, isStrokeCorner, itemBounds, layoutBoardText, layoutShapeLabel, listBoardPresets, listBoardProperties, mediaFrameSize, mergeFileSnapshot, mergePatch, multiplyMatrix, normalizeBoardDocument, normalizeBoardRemoteUrl, normalizeRotation, normalizeViewport, normalizedPoint, orderBoardItems, panBy, parseBoardDocument, parseBoardItem, parseBoardManifest, parseBoardMediaSource, parseHexColor, pathMidpoint, pathPointAt, pickBoardColor, placeBoardOverlay, placeItem, planBoardExport, playableBoardMedia, playableBoardMediaList, pointToWorld, pointsBounds, pointsRect, prepareBoardScriptOutput, probeBoardMediaSize, pruneBoardTrack, quantizeDrawCoordinate, radToDeg, rankedTaskArtifacts, readBoardDocument, readCoverFromFrontmatter, readFrontmatterScalars, readTitleFromFrontmatter, rectCenter, rectContainsPoint, rectForCameraFocus, rectsIntersect, refreshBoardScene, resetBoardPlaybackUrlCache, resizeFrame, resizeFrameToSize, resolveAnchor, resolveArrow, resolveBoardAnimationCamera, resolveBoardColor, resolveBoardMediaUrl, resolveBoardProperty, resolveBoardScriptHit, resolveCoverRef, resolveFileTitle, resolveItemColor, resolveSceneArrow, resolveSpacePath, rotateAround, rotateFrames, rotatePointAround, rotationHandleAnchor, rotationHandlePosition, sampleBoardTrack, sampleRadius, scaleFrames, scaleVector, sceneItemToItem, sceneItemsToRecord, screenOffset, screenPoint, screenToWorld, scriptTemporaryPrefix, selectBoardExportAssets, selectionBounds, serializeBoardManifest, setBoardTextLayouter, settleBoardMediaSizes, shouldFetchFileExcerpt, sideAnchor, simplifyDrawIndices, splitFrontmatter, stableCullRect, taskArtifactPreviewUrl, taskArtifacts, taskRunArtifacts, taskRunToBoardTaskSnapshot, titleForBoardItem, toSceneItem, trackReferences, trimDrawPoints, unionRects, validateBoardScriptCommit, validateBoardScriptOutput, visibleWorldRect, withObservedArtifactFacts, worldOffset, worldPoint, worldRect, worldToScreen, zoomAround };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BOARD_STROKE_MAX_SIZE, BOARD_STROKE_MIN_SIZE, clampBoardStrokeSize } from "../../protocol/dist/board-constants.js";
|
|
2
2
|
import { isPublicBoardRemoteAddress, normalizeBoardRemoteUrl } from "../../protocol/dist/board-url.js";
|
|
3
|
-
import { BOARD_ANCHOR_SIDES, BOARD_ARROW_ROUTES, BOARD_CAMERA_TARGET, BOARD_COLOR_TOKENS, BOARD_DASHES, BOARD_DERIVED_SIZE_TYPES, BOARD_EFFECT_KINDS, BOARD_EFFECT_KIND_INFO, BOARD_ENTER_PRESETS, BOARD_EXTENSION_TYPE_PATTERN, BOARD_GRID_DEFAULT_SIZE, BOARD_GRID_MAX_SIZE, BOARD_GRID_MIN_SIZE, BOARD_ID_MAX_LENGTH, BOARD_ITEM_SCHEMAS, BOARD_ITEM_TYPES, BOARD_PLAY_MODES, BOARD_SHAPE_GEOMETRIES, BOARD_TASK_ARTIFACT_LIMIT, BOARD_TEXT_ALIGNS, BoardAnimationHeaderSchema, BoardAnimationSchema, BoardArrowAnchorSchema, BoardArrowBindingSchema, BoardArrowEndSchema, BoardArrowItemSchema, BoardAudioItemSchema, BoardBackgroundSchema, BoardColorSchema, BoardCropSchema, BoardCustomItemSchema, BoardDrawItemSchema, BoardDrawPointSchema, BoardEaseSchema, BoardEffectItemSchema, BoardExtensionItemSchema, BoardFileItemSchema, BoardFrameItemSchema, BoardIdSchema, BoardImageItemSchema, BoardItemPreviewSchema, BoardKeySchema, BoardKeyframeSchema, BoardMarkerSchema, BoardMediaOriginSchema, BoardMediaSnapshotSchema, BoardMediaSourceSchema, BoardPatchSchema, BoardScriptSchema, BoardSettingsSchema, BoardShapeItemSchema, BoardSizeSchema, BoardStyleSchema, BoardTaskArtifactSchema, BoardTaskItemSchema, BoardTaskSnapshotSchema, BoardTextItemSchema, BoardTrackSchema, BoardVec2Schema, BoardVideoItemSchema, boardItemPreview, boardItemSchema, emptyBoardDocument, hasAuthoredSize, isBoardColorString, isBoardEase, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isFileBackedItem, isMediaItem, isSafeBoardSourcePath, parseBoardItem, parseBoardMediaSource } from "../../protocol/dist/board-model.js";
|
|
3
|
+
import { BOARD_ANCHOR_SIDES, BOARD_ARROW_ROUTES, BOARD_BACKGROUND_FITS, BOARD_BACKGROUND_PATTERNS, BOARD_CAMERA_TARGET, BOARD_COLOR_TOKENS, BOARD_DASHES, BOARD_DERIVED_SIZE_TYPES, BOARD_EFFECT_KINDS, BOARD_EFFECT_KIND_INFO, BOARD_ENTER_PRESETS, BOARD_EXTENSION_TYPE_PATTERN, BOARD_GRID_DEFAULT_SIZE, BOARD_GRID_MAX_SIZE, BOARD_GRID_MIN_SIZE, BOARD_ID_MAX_LENGTH, BOARD_ITEM_SCHEMAS, BOARD_ITEM_TYPES, BOARD_PLAY_MODES, BOARD_SHAPE_GEOMETRIES, BOARD_TASK_ARTIFACT_LIMIT, BOARD_TEXT_ALIGNS, BoardAnimationHeaderSchema, BoardAnimationSchema, BoardArrowAnchorSchema, BoardArrowBindingSchema, BoardArrowEndSchema, BoardArrowItemSchema, BoardAudioItemSchema, BoardBackgroundSchema, BoardColorSchema, BoardCropSchema, BoardCustomItemSchema, BoardDrawItemSchema, BoardDrawPointSchema, BoardEaseSchema, BoardEffectItemSchema, BoardExtensionItemSchema, BoardFileItemSchema, BoardFrameItemSchema, BoardIdSchema, BoardImageItemSchema, BoardItemPreviewSchema, BoardKeySchema, BoardKeyframeSchema, BoardMarkerSchema, BoardMediaOriginSchema, BoardMediaSnapshotSchema, BoardMediaSourceSchema, BoardPatchSchema, BoardScriptSchema, BoardSettingsSchema, BoardShapeItemSchema, BoardSizeSchema, BoardStyleSchema, BoardTaskArtifactSchema, BoardTaskItemSchema, BoardTaskSnapshotSchema, BoardTextItemSchema, BoardTrackSchema, BoardVec2Schema, BoardVideoItemSchema, boardItemPreview, boardItemSchema, emptyBoardDocument, hasAuthoredSize, isBoardColorString, isBoardEase, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isFileBackedItem, isMediaItem, isSafeBoardSourcePath, parseBoardItem, parseBoardMediaSource } from "../../protocol/dist/board-model.js";
|
|
4
4
|
import { BOARD_TASK_SOURCE_PREFIX, boardTaskSource, featuredTaskArtifact, rankedTaskArtifacts, taskArtifactPreviewUrl, taskArtifacts, taskRunArtifacts, taskRunToBoardTaskSnapshot, withObservedArtifactFacts } from "../../protocol/dist/board-task.js";
|
|
5
5
|
import { IDENTITY_MATRIX, adoptBoardNaturalSize, anchorPoint, applyMatrix, arrowBindings, autoAnchorSide, bendControl, clampBoardFontSize, createBoardLayout, createDocumentLayout, drawPointsBounds, drawSampleRadius, estimateTextWidth, fitBoardMediaSize, framePoint, invertMatrix, isArrowBinding, layoutBoardText, multiplyMatrix, pointsRect, rotateAround, scaleVector, setBoardTextLayouter, sideAnchor } from "../../protocol/dist/board-layout.js";
|
|
6
6
|
import { applyBoardDelta, applyBoardPatch, applyBoardPatchToDocument, boardPatchTouches, createDocumentState, diffBoardDocuments, diffMergePatch, isEmptyBoardPatch, listBoardProperties, mergePatch, parseBoardDocument, pruneBoardTrack, resolveBoardProperty, trackReferences } from "../../protocol/dist/board-patch.js";
|
|
@@ -22,7 +22,7 @@ import { ARROW_BINDING_GAP, arrowHitRadius, arrowPathBounds, distanceToArrow, pa
|
|
|
22
22
|
import { buildStrokeOutline, buildStrokeRibbonGeometry, computeDrawBounds, createStrokeRibbonBuilder, distanceToStroke, isStrokeCorner, sampleRadius, simplifyDrawIndices, trimDrawPoints } from "./draw-geometry.js";
|
|
23
23
|
import { appendBoardDrawSamples, quantizeDrawCoordinate } from "./draw-input.js";
|
|
24
24
|
import { boardModelFormat, getMediaExtension, getMediaResourceTitle, inferBoardMediaKind, isBoardModelItem } from "./media.js";
|
|
25
|
-
import { BOARD_THUMBNAIL_EDGE, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardTextureEdge, boardTexturePixels, imageAssetKey } from "./asset-key.js";
|
|
25
|
+
import { BOARD_THUMBNAIL_EDGE, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardMediaNaturalSize, boardTextureEdge, boardTexturePixels, imageAssetKey } from "./asset-key.js";
|
|
26
26
|
import { BOARD_EXPORT_TEXTURE_BYTES, boardTextureBytes, selectBoardExportAssets } from "./export-assets.js";
|
|
27
27
|
import { BOARD_EXPORT_DEFAULT_PADDING, BOARD_EXPORT_DEFAULT_SCALE, BOARD_EXPORT_ITEM_WARN_THRESHOLD, BOARD_EXPORT_MAX_EDGE, BOARD_EXPORT_MAX_PIXELS, exportItemBounds, normalizeBoardDocument, planBoardExport } from "./export-plan.js";
|
|
28
28
|
import { FILE_EXCERPT_MAX_BYTES, FILE_EXCERPT_MAX_CHARS, buildCodeExcerpt, buildFileExcerpt, buildFileSnapshot, fileBaseName, fileCategory, fileStem, readCoverFromFrontmatter, readFrontmatterScalars, readTitleFromFrontmatter, resolveCoverRef, resolveFileTitle, resolveSpacePath, shouldFetchFileExcerpt, splitFrontmatter } from "./file-snapshot.js";
|
|
@@ -40,5 +40,6 @@ import { createBoardEntityId, createBoardItemId } from "./items/id.js";
|
|
|
40
40
|
import { boardItemOrigin, boardOriginKey, boardTaskCardSize, createAppBoardItem, createArrowBoardItem, createDrawBoardItem, createFileNodeForPath, createFrameBoardItem, createMediaBoardItem, createShapeBoardItem, createTaskBoardItem, createTaskResultItems, createTextBoardItem, mediaFrameSize, titleForBoardItem } from "./items/create.js";
|
|
41
41
|
import { createBoardRegistry, defaultBoardRegistry } from "./items/registry.js";
|
|
42
42
|
import { playableBoardMedia, playableBoardMediaList, resetBoardPlaybackUrlCache, resolveBoardMediaUrl } from "./media-playback.js";
|
|
43
|
+
import { readBoardDocument } from "./read.js";
|
|
43
44
|
import { boardReplayActorKind, createBoardReplayPlayer } from "./replay.js";
|
|
44
|
-
export { ARROW_BINDING_GAP, BOARD_ANCHOR_SIDES, BOARD_ARROW_ROUTES, BOARD_CAMERA_TARGET, BOARD_COLORS, BOARD_COLOR_TOKENS, BOARD_DASHES, BOARD_DERIVED_SIZE_TYPES, BOARD_EFFECT_KINDS, BOARD_EFFECT_KIND_INFO, BOARD_ENTER_PRESETS, BOARD_EXPORT_DEFAULT_PADDING, BOARD_EXPORT_DEFAULT_SCALE, BOARD_EXPORT_ITEM_WARN_THRESHOLD, BOARD_EXPORT_MAX_EDGE, BOARD_EXPORT_MAX_PIXELS, BOARD_EXPORT_TEXTURE_BYTES, BOARD_EXTENSION_TYPE_PATTERN, BOARD_FRAME_LABEL_LINE_HEIGHT, BOARD_FRAME_LABEL_SIZE, BOARD_GRID_DEFAULT_SIZE, BOARD_GRID_MAX_SIZE, BOARD_GRID_MIN_SIZE, BOARD_ID_MAX_LENGTH, BOARD_ITEM_SCHEMAS, BOARD_ITEM_TYPES, BOARD_PLAY_MODES, BOARD_PRESET_NAMES, BOARD_SCHEMA_TARGETS, BOARD_SCRIPT_API, BOARD_SCRIPT_DRAWING_EXAMPLE, BOARD_SHAPE_GEOMETRIES, BOARD_STROKE_MAX_SIZE, BOARD_STROKE_MIN_SIZE, BOARD_TASK_ARTIFACT_LIMIT, BOARD_TASK_SOURCE_PREFIX, BOARD_TEXT_ALIGNS, BOARD_THEME_IDS, BOARD_THUMBNAIL_EDGE, BoardAnimationHeaderSchema, BoardAnimationSchema, BoardArrowAnchorSchema, BoardArrowBindingSchema, BoardArrowEndSchema, BoardArrowItemSchema, BoardAudioItemSchema, BoardBackgroundSchema, BoardColorSchema, BoardCropSchema, BoardCustomItemSchema, BoardDrawItemSchema, BoardDrawPointSchema, BoardEaseSchema, BoardEffectItemSchema, BoardExtensionItemSchema, BoardFileItemSchema, BoardFrameItemSchema, BoardIdSchema, BoardImageItemSchema, BoardItemPreviewSchema, BoardKeySchema, BoardKeyframeSchema, BoardMarkerSchema, BoardMediaOriginSchema, BoardMediaSnapshotSchema, BoardMediaSourceSchema, BoardPatchSchema, BoardScriptSchema, BoardSettingsSchema, BoardShapeItemSchema, BoardSizeSchema, BoardStyleSchema, BoardTaskArtifactSchema, BoardTaskItemSchema, BoardTaskSnapshotSchema, BoardTextItemSchema, BoardTrackSchema, BoardVec2Schema, BoardVideoItemSchema, CORNER_RESIZE_HANDLES, CORNER_ROTATION_ZONE_WIDTH, DEFAULT_BOARD_COLOR, DEFAULT_BOARD_TOOL_STYLES, EDGE_RESIZE_HANDLES, FILE_EXCERPT_MAX_BYTES, FILE_EXCERPT_MAX_CHARS, FIT_PADDING, FULL_CAPABILITIES, HANDLE_DIRECTION, HANDLE_HIT_RADIUS, IDENTITY_MATRIX, MAX_BOARD_ZOOM, MIN_BOARD_ZOOM, MIN_ITEM_SIZE, RESIZE_HANDLES, ROTATION_HANDLE_OFFSET, SHAPE_KINDS, SHAPE_LABEL_PADDING, TEXT_FONT_FAMILY, TEXT_FONT_SIZE, TEXT_LINE_HEIGHT, TEXT_MAX_FONT_SIZE, TEXT_MIN_FONT_SIZE, VIEWPORT_MARGIN_RATIO, adoptBoardNaturalSize, anchorPoint, angleFromCenter, appendBoardDrawSamples, applyBoardDelta, applyBoardEvaluation, applyBoardPatch, applyBoardPatchToDocument, applyMatrix, arrowBindings, arrowHitRadius, arrowPathBounds, autoAnchorSide, availabilityFromError, bendControl, boardAnimationTime, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardColorCssVar, boardDocumentAt, boardEase, boardEditableText, boardFontFamily, boardItemOrigin, boardItemPreview, boardItemSchema, boardJsonSchema, boardMediaTarget, boardModelFormat, boardNestedAnimation, boardNestedAnimationTrack, boardOriginKey, boardPatchTouches, boardPathTrack, boardPresetTracks, boardReplayActorKind, boardSchemaOverview, boardScriptHitVisible, boardScriptItems, boardScriptScope, boardScriptTarget, boardSequence, boardSequencePatch, boardTaskCardSize, boardTaskSource, boardTextureBytes, boardTextureEdge, boardTexturePixels, buildBoardScene, buildCodeExcerpt, buildFallbackShapeColors, buildFileExcerpt, buildFileSnapshot, buildStrokeOutline, buildStrokeRibbonGeometry, builtinBoardItems, cameraForFocus, cameraForRect, cameraForState, clamp, clampBoardFontSize, clampBoardStrokeSize, clampBoardFontSize as clampBoardTextFontSize, clampZoom, clientToLocal, compileBoardAnimations, composeBoardScriptItems, computeDrawBounds, createAppBoardItem, createArrowBoardItem, createBoardAnimationSampler, createBoardEntityId, createBoardItemId, createBoardLayout, createBoardRegistry, createBoardReplayPlayer, createBoardToolStyles, createDocumentLayout, createDocumentState, createDrawBoardItem, createFileNodeForPath, createFrameBoardItem, createMediaBoardItem, createShapeBoardItem, createStrokeRibbonBuilder, createTaskBoardItem, createTaskResultItems, createTextBoardItem, defaultBoardRegistry, defineBoardItem, degToRad, diffBoardDocuments, diffMergePatch, distanceToArrow, distanceToStroke, drawPointsBounds, drawSampleRadius, elementClientToLocal, emptyBoardDocument, estimateTextWidth, evaluateBoardAnimations, expandRect, exportItemBounds, featuredTaskArtifact, fileBaseName, fileCategory, fileCategoryAccent, fileMetaLine, filePreviewKind, filePreviewMemoKey, filePreviewScope, fileStem, fileTypeLabel, fitBoardMediaSize, fitToContent, formatFileSize, frameContainsPoint, frameCornerRotationHandleAt, frameCorners, frameEdgeHandleAt, frameHandlePosition, frameLabelHitRect, frameLabelOffset, framePoint, frameRayIntersection, frameRect, getMediaExtension, getMediaResourceTitle, handlePosition, hasAuthoredSize, hasBoardScripts, imageAssetKey, inferBoardMediaKind, invertMatrix, isArrowBinding, isBoardColorId, isBoardColorString, isBoardEase, isBoardModelItem, isBoardPath, isBoardPresetName, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isEmptyBoardPatch, isFileBackedItem, isFileSnapshotFresh, isMediaItem, isPublicBoardRemoteAddress, isSafeBoardSourcePath, isShapeKind, isStrokeCorner, itemBounds, layoutBoardText, layoutShapeLabel, listBoardPresets, listBoardProperties, mediaFrameSize, mergeFileSnapshot, mergePatch, multiplyMatrix, normalizeBoardDocument, normalizeBoardRemoteUrl, normalizeRotation, normalizeViewport, normalizedPoint, orderBoardItems, panBy, parseBoardDocument, parseBoardItem, parseBoardManifest, parseBoardMediaSource, parseHexColor, pathMidpoint, pathPointAt, pickBoardColor, placeBoardOverlay, placeItem, planBoardExport, playableBoardMedia, playableBoardMediaList, pointToWorld, pointsBounds, pointsRect, prepareBoardScriptOutput, probeBoardMediaSize, pruneBoardTrack, quantizeDrawCoordinate, radToDeg, rankedTaskArtifacts, readCoverFromFrontmatter, readFrontmatterScalars, readTitleFromFrontmatter, rectCenter, rectContainsPoint, rectForCameraFocus, rectsIntersect, refreshBoardScene, resetBoardPlaybackUrlCache, resizeFrame, resizeFrameToSize, resolveAnchor, resolveArrow, resolveBoardAnimationCamera, resolveBoardColor, resolveBoardMediaUrl, resolveBoardProperty, resolveBoardScriptHit, resolveCoverRef, resolveFileTitle, resolveItemColor, resolveSceneArrow, resolveSpacePath, rotateAround, rotateFrames, rotatePointAround, rotationHandleAnchor, rotationHandlePosition, sampleBoardTrack, sampleRadius, scaleFrames, scaleVector, sceneItemToItem, sceneItemsToRecord, screenOffset, screenPoint, screenToWorld, scriptTemporaryPrefix, selectBoardExportAssets, selectionBounds, serializeBoardManifest, setBoardTextLayouter, settleBoardMediaSizes, shouldFetchFileExcerpt, sideAnchor, simplifyDrawIndices, splitFrontmatter, stableCullRect, taskArtifactPreviewUrl, taskArtifacts, taskRunArtifacts, taskRunToBoardTaskSnapshot, titleForBoardItem, toSceneItem, trackReferences, trimDrawPoints, unionRects, validateBoardScriptCommit, validateBoardScriptOutput, visibleWorldRect, withObservedArtifactFacts, worldOffset, worldPoint, worldRect, worldToScreen, zoomAround };
|
|
45
|
+
export { ARROW_BINDING_GAP, BOARD_ANCHOR_SIDES, BOARD_ARROW_ROUTES, BOARD_BACKGROUND_FITS, BOARD_BACKGROUND_PATTERNS, BOARD_CAMERA_TARGET, BOARD_COLORS, BOARD_COLOR_TOKENS, BOARD_DASHES, BOARD_DERIVED_SIZE_TYPES, BOARD_EFFECT_KINDS, BOARD_EFFECT_KIND_INFO, BOARD_ENTER_PRESETS, BOARD_EXPORT_DEFAULT_PADDING, BOARD_EXPORT_DEFAULT_SCALE, BOARD_EXPORT_ITEM_WARN_THRESHOLD, BOARD_EXPORT_MAX_EDGE, BOARD_EXPORT_MAX_PIXELS, BOARD_EXPORT_TEXTURE_BYTES, BOARD_EXTENSION_TYPE_PATTERN, BOARD_FRAME_LABEL_LINE_HEIGHT, BOARD_FRAME_LABEL_SIZE, BOARD_GRID_DEFAULT_SIZE, BOARD_GRID_MAX_SIZE, BOARD_GRID_MIN_SIZE, BOARD_ID_MAX_LENGTH, BOARD_ITEM_SCHEMAS, BOARD_ITEM_TYPES, BOARD_PLAY_MODES, BOARD_PRESET_NAMES, BOARD_SCHEMA_TARGETS, BOARD_SCRIPT_API, BOARD_SCRIPT_DRAWING_EXAMPLE, BOARD_SHAPE_GEOMETRIES, BOARD_STROKE_MAX_SIZE, BOARD_STROKE_MIN_SIZE, BOARD_TASK_ARTIFACT_LIMIT, BOARD_TASK_SOURCE_PREFIX, BOARD_TEXT_ALIGNS, BOARD_THEME_IDS, BOARD_THUMBNAIL_EDGE, BoardAnimationHeaderSchema, BoardAnimationSchema, BoardArrowAnchorSchema, BoardArrowBindingSchema, BoardArrowEndSchema, BoardArrowItemSchema, BoardAudioItemSchema, BoardBackgroundSchema, BoardColorSchema, BoardCropSchema, BoardCustomItemSchema, BoardDrawItemSchema, BoardDrawPointSchema, BoardEaseSchema, BoardEffectItemSchema, BoardExtensionItemSchema, BoardFileItemSchema, BoardFrameItemSchema, BoardIdSchema, BoardImageItemSchema, BoardItemPreviewSchema, BoardKeySchema, BoardKeyframeSchema, BoardMarkerSchema, BoardMediaOriginSchema, BoardMediaSnapshotSchema, BoardMediaSourceSchema, BoardPatchSchema, BoardScriptSchema, BoardSettingsSchema, BoardShapeItemSchema, BoardSizeSchema, BoardStyleSchema, BoardTaskArtifactSchema, BoardTaskItemSchema, BoardTaskSnapshotSchema, BoardTextItemSchema, BoardTrackSchema, BoardVec2Schema, BoardVideoItemSchema, CORNER_RESIZE_HANDLES, CORNER_ROTATION_ZONE_WIDTH, DEFAULT_BOARD_COLOR, DEFAULT_BOARD_TOOL_STYLES, EDGE_RESIZE_HANDLES, FILE_EXCERPT_MAX_BYTES, FILE_EXCERPT_MAX_CHARS, FIT_PADDING, FULL_CAPABILITIES, HANDLE_DIRECTION, HANDLE_HIT_RADIUS, IDENTITY_MATRIX, MAX_BOARD_ZOOM, MIN_BOARD_ZOOM, MIN_ITEM_SIZE, RESIZE_HANDLES, ROTATION_HANDLE_OFFSET, SHAPE_KINDS, SHAPE_LABEL_PADDING, TEXT_FONT_FAMILY, TEXT_FONT_SIZE, TEXT_LINE_HEIGHT, TEXT_MAX_FONT_SIZE, TEXT_MIN_FONT_SIZE, VIEWPORT_MARGIN_RATIO, adoptBoardNaturalSize, anchorPoint, angleFromCenter, appendBoardDrawSamples, applyBoardDelta, applyBoardEvaluation, applyBoardPatch, applyBoardPatchToDocument, applyMatrix, arrowBindings, arrowHitRadius, arrowPathBounds, autoAnchorSide, availabilityFromError, bendControl, boardAnimationTime, boardAssetKey, boardAssetKeySource, boardAssetRefKey, boardColorCssVar, boardDocumentAt, boardEase, boardEditableText, boardFontFamily, boardItemOrigin, boardItemPreview, boardItemSchema, boardJsonSchema, boardMediaNaturalSize, boardMediaTarget, boardModelFormat, boardNestedAnimation, boardNestedAnimationTrack, boardOriginKey, boardPatchTouches, boardPathTrack, boardPresetTracks, boardReplayActorKind, boardSchemaOverview, boardScriptHitVisible, boardScriptItems, boardScriptScope, boardScriptTarget, boardSequence, boardSequencePatch, boardTaskCardSize, boardTaskSource, boardTextureBytes, boardTextureEdge, boardTexturePixels, buildBoardScene, buildCodeExcerpt, buildFallbackShapeColors, buildFileExcerpt, buildFileSnapshot, buildStrokeOutline, buildStrokeRibbonGeometry, builtinBoardItems, cameraForFocus, cameraForRect, cameraForState, clamp, clampBoardFontSize, clampBoardStrokeSize, clampBoardFontSize as clampBoardTextFontSize, clampZoom, clientToLocal, compileBoardAnimations, composeBoardScriptItems, computeDrawBounds, createAppBoardItem, createArrowBoardItem, createBoardAnimationSampler, createBoardEntityId, createBoardItemId, createBoardLayout, createBoardRegistry, createBoardReplayPlayer, createBoardToolStyles, createDocumentLayout, createDocumentState, createDrawBoardItem, createFileNodeForPath, createFrameBoardItem, createMediaBoardItem, createShapeBoardItem, createStrokeRibbonBuilder, createTaskBoardItem, createTaskResultItems, createTextBoardItem, defaultBoardRegistry, defineBoardItem, degToRad, diffBoardDocuments, diffMergePatch, distanceToArrow, distanceToStroke, drawPointsBounds, drawSampleRadius, elementClientToLocal, emptyBoardDocument, estimateTextWidth, evaluateBoardAnimations, expandRect, exportItemBounds, featuredTaskArtifact, fileBaseName, fileCategory, fileCategoryAccent, fileMetaLine, filePreviewKind, filePreviewMemoKey, filePreviewScope, fileStem, fileTypeLabel, fitBoardMediaSize, fitToContent, formatFileSize, frameContainsPoint, frameCornerRotationHandleAt, frameCorners, frameEdgeHandleAt, frameHandlePosition, frameLabelHitRect, frameLabelOffset, framePoint, frameRayIntersection, frameRect, getMediaExtension, getMediaResourceTitle, handlePosition, hasAuthoredSize, hasBoardScripts, imageAssetKey, inferBoardMediaKind, invertMatrix, isArrowBinding, isBoardColorId, isBoardColorString, isBoardEase, isBoardModelItem, isBoardPath, isBoardPresetName, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isEmptyBoardPatch, isFileBackedItem, isFileSnapshotFresh, isMediaItem, isPublicBoardRemoteAddress, isSafeBoardSourcePath, isShapeKind, isStrokeCorner, itemBounds, layoutBoardText, layoutShapeLabel, listBoardPresets, listBoardProperties, mediaFrameSize, mergeFileSnapshot, mergePatch, multiplyMatrix, normalizeBoardDocument, normalizeBoardRemoteUrl, normalizeRotation, normalizeViewport, normalizedPoint, orderBoardItems, panBy, parseBoardDocument, parseBoardItem, parseBoardManifest, parseBoardMediaSource, parseHexColor, pathMidpoint, pathPointAt, pickBoardColor, placeBoardOverlay, placeItem, planBoardExport, playableBoardMedia, playableBoardMediaList, pointToWorld, pointsBounds, pointsRect, prepareBoardScriptOutput, probeBoardMediaSize, pruneBoardTrack, quantizeDrawCoordinate, radToDeg, rankedTaskArtifacts, readBoardDocument, readCoverFromFrontmatter, readFrontmatterScalars, readTitleFromFrontmatter, rectCenter, rectContainsPoint, rectForCameraFocus, rectsIntersect, refreshBoardScene, resetBoardPlaybackUrlCache, resizeFrame, resizeFrameToSize, resolveAnchor, resolveArrow, resolveBoardAnimationCamera, resolveBoardColor, resolveBoardMediaUrl, resolveBoardProperty, resolveBoardScriptHit, resolveCoverRef, resolveFileTitle, resolveItemColor, resolveSceneArrow, resolveSpacePath, rotateAround, rotateFrames, rotatePointAround, rotationHandleAnchor, rotationHandlePosition, sampleBoardTrack, sampleRadius, scaleFrames, scaleVector, sceneItemToItem, sceneItemsToRecord, screenOffset, screenPoint, screenToWorld, scriptTemporaryPrefix, selectBoardExportAssets, selectionBounds, serializeBoardManifest, setBoardTextLayouter, settleBoardMediaSizes, shouldFetchFileExcerpt, sideAnchor, simplifyDrawIndices, splitFrontmatter, stableCullRect, taskArtifactPreviewUrl, taskArtifacts, taskRunArtifacts, taskRunToBoardTaskSnapshot, titleForBoardItem, toSceneItem, trackReferences, trimDrawPoints, unionRects, validateBoardScriptCommit, validateBoardScriptOutput, visibleWorldRect, withObservedArtifactFacts, worldOffset, worldPoint, worldRect, worldToScreen, zoomAround };
|
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { BoardSceneItem } from "./scene.js";
|
|
2
|
+
import { ResolveFileOptions, ResolvedFile } from "../../media.js";
|
|
2
3
|
//#region src/board/model/media-playback.d.ts
|
|
3
|
-
type BoardAssetUrlOptions = {
|
|
4
|
-
fresh?: boolean;
|
|
5
|
-
};
|
|
6
4
|
type BoardAssetSource = {
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
resolveFile: (path: string, options?: ResolveFileOptions) => Promise<ResolvedFile | null>;
|
|
6
|
+
subscribe?: (listener: (path: string) => void) => () => void;
|
|
9
7
|
};
|
|
10
8
|
declare function resolveBoardMediaUrl(src: string, source: BoardAssetSource, purpose?: "preview" | "playback"): Promise<string | null>;
|
|
11
9
|
type BoardPlayableMedia = {
|
|
@@ -20,4 +18,4 @@ declare function playableBoardMediaList(item: BoardSceneItem | null, assetSource
|
|
|
20
18
|
declare function playableBoardMedia(item: BoardSceneItem | null, assetSource: BoardAssetSource, artifactId?: string | null): BoardPlayableMedia | null;
|
|
21
19
|
declare function resetBoardPlaybackUrlCache(): void;
|
|
22
20
|
//#endregion
|
|
23
|
-
export { BoardAssetSource,
|
|
21
|
+
export { BoardAssetSource, BoardPlayableMedia, playableBoardMedia, playableBoardMediaList, resetBoardPlaybackUrlCache, resolveBoardMediaUrl };
|
|
@@ -2,11 +2,11 @@ import { parseBoardMediaSource } from "../../protocol/dist/board-model.js";
|
|
|
2
2
|
import { rankedTaskArtifacts } from "../../protocol/dist/board-task.js";
|
|
3
3
|
import { getMediaResourceTitle } from "./media.js";
|
|
4
4
|
//#region src/board/model/media-playback.ts
|
|
5
|
-
function resolveBoardMediaUrl(src, source, purpose = "preview") {
|
|
5
|
+
async function resolveBoardMediaUrl(src, source, purpose = "preview") {
|
|
6
6
|
const parsed = parseBoardMediaSource(src);
|
|
7
|
-
if (!parsed) return
|
|
8
|
-
if (parsed.kind === "url") return
|
|
9
|
-
return
|
|
7
|
+
if (!parsed) return null;
|
|
8
|
+
if (parsed.kind === "url") return parsed.value;
|
|
9
|
+
return (await source.resolveFile(parsed.value, { purpose }))?.url ?? null;
|
|
10
10
|
}
|
|
11
11
|
const resolvedUrls = /* @__PURE__ */ new Map();
|
|
12
12
|
const sourceIds = /* @__PURE__ */ new WeakMap();
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { BoardDocument } from "../../protocol/dist/board-model.js";
|
|
2
|
+
import { BoardReadResult } from "../../protocol/dist/board.js";
|
|
3
|
+
import "../../protocol/dist/index.js";
|
|
4
|
+
//#region src/board/model/read.d.ts
|
|
5
|
+
declare function readBoardDocument(result: BoardReadResult, base?: BoardDocument | null): BoardDocument;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { readBoardDocument };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { applyBoardDelta, parseBoardDocument } from "../../protocol/dist/board-patch.js";
|
|
2
|
+
import { shareBoardDocument } from "./document-share.js";
|
|
3
|
+
//#region src/board/model/read.ts
|
|
4
|
+
function readBoardDocument(result, base = null) {
|
|
5
|
+
if (result.changes) {
|
|
6
|
+
if (!base) throw new Error(`Board ${result.id} returned changes without a document to apply them to.`);
|
|
7
|
+
return result.changes.reduce(applyBoardDelta, base);
|
|
8
|
+
}
|
|
9
|
+
const parsed = parseBoardDocument({
|
|
10
|
+
board: result.board,
|
|
11
|
+
items: result.items ?? {},
|
|
12
|
+
animations: result.animations ?? {}
|
|
13
|
+
});
|
|
14
|
+
if (!parsed.ok) throw new Error(`Board ${result.id} could not be read.`);
|
|
15
|
+
return shareBoardDocument(base, parsed.document);
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { readBoardDocument };
|