@neta-art/cohub 11.1.0 → 11.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/board/editor/context.d.ts +1 -0
- package/dist/board/editor/context.js +1 -0
- package/dist/board/editor/editor.d.ts +1 -0
- package/dist/board/editor/editor.js +7 -0
- package/dist/board/editor/interaction.d.ts +4 -0
- package/dist/board/editor/interaction.js +16 -7
- package/dist/board/editor/selection-transform.d.ts +1 -1
- package/dist/board/editor/selection-transform.js +13 -2
- package/dist/board/export/index.d.ts +2 -0
- package/dist/board/export/index.js +1 -0
- package/dist/board/export/scene.d.ts +2 -0
- package/dist/board/export/scene.js +4 -0
- package/dist/board/model/file-preview.d.ts +0 -1
- package/dist/board/model/file-preview.js +10 -1
- package/dist/board/model/index.d.ts +2 -1
- package/dist/board/model/index.js +2 -1
- package/dist/board/model/script-api.d.ts +69 -0
- package/dist/board/model/script-api.js +77 -0
- package/dist/board/render/audio-waveform.d.ts +1 -1
- package/dist/board/render/audio-waveform.js +8 -5
- package/dist/board/render/card-tag.d.ts +24 -0
- package/dist/board/render/card-tag.js +205 -0
- package/dist/board/render/index.d.ts +7 -4
- package/dist/board/render/index.js +7 -4
- package/dist/board/render/media-interaction.d.ts +2 -1
- package/dist/board/render/media-interaction.js +14 -6
- package/dist/board/render/palette.js +2 -2
- package/dist/board/render/renderers/arrow-card-renderer.js +20 -16
- package/dist/board/render/renderers/audio-card-renderer.d.ts +8 -1
- package/dist/board/render/renderers/audio-card-renderer.js +64 -60
- package/dist/board/render/renderers/base-card-renderer.d.ts +1 -26
- package/dist/board/render/renderers/base-card-renderer.js +6 -92
- package/dist/board/render/renderers/board-renderer-registry.d.ts +8 -0
- package/dist/board/render/renderers/board-renderer-registry.js +3 -3
- package/dist/board/render/renderers/custom-card-renderer.js +4 -7
- package/dist/board/render/renderers/effect-card-renderer.js +0 -5
- package/dist/board/render/renderers/file-card-renderer.d.ts +1 -11
- package/dist/board/render/renderers/file-card-renderer.js +43 -105
- package/dist/board/render/renderers/frame-card-renderer.js +14 -15
- package/dist/board/render/renderers/image-card-renderer.js +62 -67
- package/dist/board/render/renderers/media-key.d.ts +6 -0
- package/dist/board/render/renderers/media-key.js +39 -0
- package/dist/board/render/renderers/shape-card-renderer.js +6 -12
- package/dist/board/render/renderers/task-card-renderer.d.ts +1 -9
- package/dist/board/render/renderers/task-card-renderer.js +82 -56
- package/dist/board/render/renderers/unknown-card-renderer.js +17 -16
- package/dist/board/render/renderers/video-card-renderer.js +73 -80
- package/dist/board/render/stroke.d.ts +1 -1
- package/dist/board/render/stroke.js +5 -4
- package/dist/board/render/style.d.ts +29 -0
- package/dist/board/render/style.js +54 -0
- package/dist/board/render/surface.d.ts +34 -0
- package/dist/board/render/surface.js +132 -0
- package/dist/board/render/text-fit.d.ts +8 -0
- package/dist/board/render/text-fit.js +60 -0
- package/dist/board/render/text-resolution.d.ts +2 -1
- package/dist/board/render/text-resolution.js +4 -1
- package/dist/board/stage/index.d.ts +3 -2
- package/dist/board/stage/index.js +2 -1
- package/dist/board/stage/overlay.d.ts +41 -0
- package/dist/board/stage/overlay.js +182 -0
- package/dist/board/stage/scene.d.ts +2 -43
- package/dist/board/stage/scene.js +23 -131
- package/dist/board/stage/stage.d.ts +2 -0
- package/dist/board/stage/stage.js +99 -32
- package/dist/chunks/app-realtime.js +1697 -0
- package/dist/chunks/environment.d.ts +997 -3
- package/dist/chunks/http.d.ts +393 -3
- package/dist/chunks/http.js +40 -1
- package/dist/chunks/websocket.d.ts +4 -0
- package/dist/chunks/websocket.js +11 -2
- package/dist/http.d.ts +2 -2
- package/dist/index.d.ts +4 -323
- package/dist/index.js +58 -1660
- package/dist/protocol/dist/board-model.js +51 -51
- package/dist/protocol/dist/board-schema.d.ts +1 -2
- package/dist/protocol/dist/board-schema.js +7 -22
- package/package.json +2 -1
|
@@ -53,6 +53,7 @@ function createBoardEditor(options) {
|
|
|
53
53
|
width: 0,
|
|
54
54
|
height: 0
|
|
55
55
|
},
|
|
56
|
+
controlOutset: 0,
|
|
56
57
|
cameraPolicy: preferences?.cameraPolicy ?? "follow",
|
|
57
58
|
tool: options.initialTool ?? "select",
|
|
58
59
|
toolStyles: preferences?.toolStyles ?? createBoardToolStyles(),
|
|
@@ -339,6 +340,12 @@ function createBoardEditor(options) {
|
|
|
339
340
|
set surfaceSize(value) {
|
|
340
341
|
state.surfaceSize = value;
|
|
341
342
|
},
|
|
343
|
+
get controlOutset() {
|
|
344
|
+
return read("selection", () => state.controlOutset);
|
|
345
|
+
},
|
|
346
|
+
set controlOutset(value) {
|
|
347
|
+
if (value !== state.controlOutset) state.controlOutset = value;
|
|
348
|
+
},
|
|
342
349
|
loadDocument: remote.loadDocument,
|
|
343
350
|
undo: document.undo,
|
|
344
351
|
redo: document.redo,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { clampZoom, normalizeRotation, panBy, rectCenter, rectsIntersect, resizeFrame, rotateFrames, scaleFrames, screenPoint, selectionBounds, worldPoint, zoomAround } from "../model/geometry.js";
|
|
1
|
+
import { clampZoom, frameHandlePosition, normalizeRotation, panBy, rectCenter, rectsIntersect, resizeFrame, rotateFrames, scaleFrames, screenPoint, selectionBounds, worldPoint, zoomAround } from "../model/geometry.js";
|
|
2
2
|
import { resolveSceneArrow } from "../model/arrow-geometry.js";
|
|
3
3
|
import { appendBoardDrawSamples } from "../model/draw-input.js";
|
|
4
4
|
import { createBoardItemId } from "../model/items/id.js";
|
|
@@ -51,8 +51,9 @@ function createInteractionModule(ctx) {
|
|
|
51
51
|
state.hoverPoint,
|
|
52
52
|
state.hoverPointerType,
|
|
53
53
|
state.camera.zoom,
|
|
54
|
-
ctx.selection.transform()
|
|
55
|
-
|
|
54
|
+
ctx.selection.transform(),
|
|
55
|
+
state.controlOutset
|
|
56
|
+
], (interaction, tool, hoverPoint, pointerType, zoom, transform, outset) => interaction.type === "idle" && !pinch && tool === "select" && hoverPoint ? selectionTransformControlAt(transform, hoverPoint, zoom, pointerType, outset) : null);
|
|
56
57
|
function gridSnapSize() {
|
|
57
58
|
const grid = state.base.board.grid;
|
|
58
59
|
return grid?.visible === true ? grid.size ?? 0 : 0;
|
|
@@ -244,7 +245,8 @@ function createInteractionModule(ctx) {
|
|
|
244
245
|
return;
|
|
245
246
|
}
|
|
246
247
|
const bounds = ctx.selection.bounds();
|
|
247
|
-
const
|
|
248
|
+
const transform = ctx.selection.transform();
|
|
249
|
+
const control = selectionTransformControlAt(transform, event.world, camera.zoom, event.pointerType, state.controlOutset);
|
|
248
250
|
if (control?.kind === "rotate" && bounds) {
|
|
249
251
|
const pivot = rectCenter(bounds);
|
|
250
252
|
state.interaction = {
|
|
@@ -257,15 +259,21 @@ function createInteractionModule(ctx) {
|
|
|
257
259
|
};
|
|
258
260
|
return;
|
|
259
261
|
}
|
|
260
|
-
if (control?.kind === "resize" && bounds) {
|
|
262
|
+
if (control?.kind === "resize" && bounds && transform) {
|
|
261
263
|
const origin = ctx.selection.framesFor(ctx.selection.movable());
|
|
262
264
|
const single = origin.size === 1 ? { ...[...origin.values()][0] } : null;
|
|
265
|
+
const edge = frameHandlePosition(transform.frame, control.handle);
|
|
266
|
+
const grab = {
|
|
267
|
+
x: edge.x - event.world.x,
|
|
268
|
+
y: edge.y - event.world.y
|
|
269
|
+
};
|
|
263
270
|
state.interaction = {
|
|
264
271
|
type: "resizing",
|
|
265
272
|
handle: control.handle,
|
|
266
273
|
single,
|
|
267
274
|
bounds,
|
|
268
275
|
origin,
|
|
276
|
+
grab,
|
|
269
277
|
moved: false
|
|
270
278
|
};
|
|
271
279
|
return;
|
|
@@ -349,13 +357,14 @@ function createInteractionModule(ctx) {
|
|
|
349
357
|
moved: true
|
|
350
358
|
};
|
|
351
359
|
const frames = /* @__PURE__ */ new Map();
|
|
360
|
+
const point = worldPoint(event.world.x + gesture.grab.x, event.world.y + gesture.grab.y);
|
|
352
361
|
if (gesture.single) {
|
|
353
362
|
const id = [...gesture.origin.keys()][0];
|
|
354
363
|
const item = state.scene.get(id);
|
|
355
364
|
const keepAspect = item ? registry.capabilities(item).aspectLocked || event.shiftKey : event.shiftKey;
|
|
356
|
-
frames.set(id, resizeFrame(gesture.single, gesture.handle,
|
|
365
|
+
frames.set(id, resizeFrame(gesture.single, gesture.handle, point, void 0, keepAspect));
|
|
357
366
|
} else {
|
|
358
|
-
const scaled = scaleFrames([...gesture.origin.values()], gesture.bounds, gesture.handle,
|
|
367
|
+
const scaled = scaleFrames([...gesture.origin.values()], gesture.bounds, gesture.handle, point);
|
|
359
368
|
[...gesture.origin.keys()].forEach((id, index) => {
|
|
360
369
|
const frame = scaled[index];
|
|
361
370
|
if (frame) frames.set(id, frame);
|
|
@@ -19,6 +19,6 @@ type BoardSelectionTransform = {
|
|
|
19
19
|
canRotate: boolean;
|
|
20
20
|
};
|
|
21
21
|
declare function resolveSelectionTransform(registry: BoardRegistry, items: BoardSceneItem[], bounds: Rect | null): BoardSelectionTransform | null;
|
|
22
|
-
declare function selectionTransformControlAt(
|
|
22
|
+
declare function selectionTransformControlAt(selection: BoardSelectionTransform | null, point: WorldPoint, zoom: number, pointerType: string, outset?: number): BoardTransformControl | null;
|
|
23
23
|
//#endregion
|
|
24
24
|
export { BoardSelectionTransform, BoardTransformControl, resizeCursorForHandle, resolveSelectionTransform, selectionTransformControlAt };
|
|
@@ -51,10 +51,21 @@ function controlHitRadius(pointerType) {
|
|
|
51
51
|
if (pointerType === "pen") return 12;
|
|
52
52
|
return 8;
|
|
53
53
|
}
|
|
54
|
-
function selectionTransformControlAt(
|
|
55
|
-
if (!
|
|
54
|
+
function selectionTransformControlAt(selection, point, zoom, pointerType, outset = 0) {
|
|
55
|
+
if (!selection) return null;
|
|
56
56
|
const screenRadius = controlHitRadius(pointerType);
|
|
57
57
|
const radius = screenRadius / Math.max(zoom, 1e-4);
|
|
58
|
+
const grow = outset / Math.max(zoom, 1e-4);
|
|
59
|
+
const transform = grow > 0 ? {
|
|
60
|
+
...selection,
|
|
61
|
+
frame: {
|
|
62
|
+
...selection.frame,
|
|
63
|
+
x: selection.frame.x - grow,
|
|
64
|
+
y: selection.frame.y - grow,
|
|
65
|
+
width: selection.frame.width + grow * 2,
|
|
66
|
+
height: selection.frame.height + grow * 2
|
|
67
|
+
}
|
|
68
|
+
} : selection;
|
|
58
69
|
if (transform.resizeMode !== "none") for (const handle of CORNER_RESIZE_HANDLES) {
|
|
59
70
|
const position = frameHandlePosition(transform.frame, handle);
|
|
60
71
|
if (Math.hypot(position.x - point.x, position.y - point.y) <= radius) return {
|
|
@@ -6,6 +6,7 @@ import { BoardEvaluation } from "../model/animation.js";
|
|
|
6
6
|
import { BoardAnimationSampler } from "../model/sampling.js";
|
|
7
7
|
import { BoardExportPlan, BoardExportPlanInput, BoardExportRegion } from "../model/export-plan.js";
|
|
8
8
|
import { BoardShapeColors } from "../model/palette.js";
|
|
9
|
+
import { BoardRenderStyle } from "../render/style.js";
|
|
9
10
|
import { BoardCardRendererResolver, BoardRenderPalette, BoardScriptHost } from "../render/renderers/board-renderer-registry.js";
|
|
10
11
|
import "../render/index.js";
|
|
11
12
|
import { BoardExportScene, BoardExportSceneInput, createBoardExportScene } from "./scene.js";
|
|
@@ -29,6 +30,7 @@ type BoardExportOptions = {
|
|
|
29
30
|
background?: BoardExportBackground;
|
|
30
31
|
palette?: Partial<BoardRenderPalette>;
|
|
31
32
|
colors?: BoardShapeColors;
|
|
33
|
+
style?: Partial<BoardRenderStyle>;
|
|
32
34
|
textures?: Map<string, Texture>;
|
|
33
35
|
scripts?: BoardScriptHost;
|
|
34
36
|
assetKey?: (item: BoardSceneItem) => string | null;
|
|
@@ -3,6 +3,7 @@ import "../../protocol/dist/index.js";
|
|
|
3
3
|
import { Rect } from "../model/geometry.js";
|
|
4
4
|
import { BoardScene, BoardSceneItem } from "../model/scene.js";
|
|
5
5
|
import { BoardShapeColors } from "../model/palette.js";
|
|
6
|
+
import { BoardRenderStyle } from "../render/style.js";
|
|
6
7
|
import { BoardCardRendererResolver, BoardRenderContext, BoardRenderPalette } from "../render/renderers/board-renderer-registry.js";
|
|
7
8
|
import "../render/index.js";
|
|
8
9
|
import { Container, Texture } from "pixi.js";
|
|
@@ -18,6 +19,7 @@ type BoardExportSceneInput = {
|
|
|
18
19
|
colorScheme: "dark" | "light";
|
|
19
20
|
palette?: Partial<BoardRenderPalette>;
|
|
20
21
|
colors?: BoardShapeColors;
|
|
22
|
+
style?: Partial<BoardRenderStyle>;
|
|
21
23
|
textures?: Map<string, Texture>;
|
|
22
24
|
scripts?: BoardRenderContext["scripts"];
|
|
23
25
|
assetKey?: (item: BoardSceneItem) => string | null;
|
|
@@ -3,6 +3,7 @@ import { imageAssetKey } from "../model/image-key.js";
|
|
|
3
3
|
import { defaultBoardPalette } from "../render/palette.js";
|
|
4
4
|
import { clippingAncestor, isClippingFrame, syncClipGroup } from "../render/clip.js";
|
|
5
5
|
import { DEFAULT_BOARD_RENDER_LABELS, getBoardCardRenderer } from "../render/renderers/board-renderer-registry.js";
|
|
6
|
+
import { resolveBoardRenderStyle } from "../render/style.js";
|
|
6
7
|
import { Container, Graphics, Sprite, TilingSprite } from "pixi.js";
|
|
7
8
|
//#region src/board/export/scene.ts
|
|
8
9
|
function buildContext(input) {
|
|
@@ -17,12 +18,15 @@ function buildContext(input) {
|
|
|
17
18
|
selectedIds: /* @__PURE__ */ new Set(),
|
|
18
19
|
hoveredId: null,
|
|
19
20
|
resizingIds: /* @__PURE__ */ new Set(),
|
|
21
|
+
liftedIds: /* @__PURE__ */ new Set(),
|
|
20
22
|
palette: {
|
|
21
23
|
...defaultBoardPalette(input.colorScheme),
|
|
22
24
|
...input.palette
|
|
23
25
|
},
|
|
24
26
|
colors: input.colors ?? buildFallbackShapeColors(input.colorScheme),
|
|
25
27
|
colorScheme: input.colorScheme,
|
|
28
|
+
style: resolveBoardRenderStyle(input.colorScheme, input.style),
|
|
29
|
+
themeKey: "export",
|
|
26
30
|
rendererType: "canvas",
|
|
27
31
|
zoom: input.scale,
|
|
28
32
|
reducedMotion: true,
|
|
@@ -7,7 +7,6 @@ type FilePreviewKind = "cover" | "text" | "blank";
|
|
|
7
7
|
* sync with them.
|
|
8
8
|
*/
|
|
9
9
|
declare function filePreviewKind(snapshot: BoardFileSnapshotFacts | undefined): FilePreviewKind;
|
|
10
|
-
/** Short uppercase type label for a file card (`MD`, `JSON`, `FILE`). */
|
|
11
10
|
declare function fileTypeLabel(path: string): string;
|
|
12
11
|
/** Human-readable byte size. Kept as a public helper for custom card renderers. */
|
|
13
12
|
declare function formatFileSize(bytes: number | undefined): string;
|
|
@@ -11,13 +11,22 @@ function filePreviewKind(snapshot) {
|
|
|
11
11
|
if (snapshot.excerpt) return "text";
|
|
12
12
|
return "blank";
|
|
13
13
|
}
|
|
14
|
-
/** Short uppercase type label for a file card (`MD`, `JSON`, `FILE`). */
|
|
15
14
|
function fileTypeLabel(path) {
|
|
15
|
+
if (isWebPageUrl(path)) return "LINK";
|
|
16
16
|
const name = fileBaseName(path);
|
|
17
17
|
const dot = name.lastIndexOf(".");
|
|
18
18
|
if (dot <= 0) return (name.replace(/^\./, "") || "file").toUpperCase();
|
|
19
19
|
return name.slice(dot + 1).toUpperCase();
|
|
20
20
|
}
|
|
21
|
+
function isWebPageUrl(path) {
|
|
22
|
+
if (!/^https?:\/\//i.test(path)) return false;
|
|
23
|
+
try {
|
|
24
|
+
const last = new URL(path).pathname.split("/").filter(Boolean).pop() ?? "";
|
|
25
|
+
return !/\.[a-z\d]{1,8}$/i.test(last);
|
|
26
|
+
} catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
21
30
|
/** Human-readable byte size. Kept as a public helper for custom card renderers. */
|
|
22
31
|
function formatFileSize(bytes) {
|
|
23
32
|
if (bytes === void 0 || !Number.isFinite(bytes) || bytes < 0) return "";
|
|
@@ -13,6 +13,7 @@ import { BoardScriptAnchor, BoardScriptContext, BoardScriptEvent, BoardScriptEve
|
|
|
13
13
|
import { boardScriptItems, hasBoardScripts } from "./script-index.js";
|
|
14
14
|
import { BoardScene, BoardSceneItem, SceneItem, buildBoardScene, orderBoardItems, placeItem, refreshBoardScene, sceneItemToItem, sceneItemsToRecord, toSceneItem } from "./scene.js";
|
|
15
15
|
import { boardScriptHitVisible, boardScriptTarget, resolveBoardScriptHit } from "./script-hit.js";
|
|
16
|
+
import { BOARD_SCRIPT_API } from "./script-api.js";
|
|
16
17
|
import { BOARD_SCRIPT_DRAWING_EXAMPLE } from "./script-example.js";
|
|
17
18
|
import { boardScriptScope, composeBoardScriptItems, prepareBoardScriptOutput, scriptTemporaryPrefix, validateBoardScriptCommit, validateBoardScriptOutput } from "./script-scene.js";
|
|
18
19
|
import { BoardCameraOverride, BoardColorResolver, BoardEaseFunction, BoardEvaluateOptions, BoardEvaluation, CompiledAnimation, CompiledBoardAnimations, CompiledTrack, applyBoardEvaluation, boardAnimationTime, boardDocumentAt, boardEase, compileBoardAnimations, evaluateBoardAnimations, parseHexColor, sampleBoardTrack } from "./animation.js";
|
|
@@ -40,4 +41,4 @@ import "./items/index.js";
|
|
|
40
41
|
import { BoardMediaKind, getMediaExtension, getMediaResourceTitle, inferBoardMediaKind } from "./media.js";
|
|
41
42
|
import { BoardAssetSource, BoardPlayableMedia, playableBoardMedia, playableBoardMediaList, resetBoardPlaybackUrlCache, resolveBoardMediaUrl } from "./media-playback.js";
|
|
42
43
|
import { BoardReplayActorKind, BoardReplayEntry, BoardReplayPlayer, boardReplayActorKind, createBoardReplayPlayer } from "./replay.js";
|
|
43
|
-
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_MAX_TEXTURES, 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_PRESET_NAMES, BOARD_SCHEMA_TARGETS, 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, BoardAnchorSide, BoardAnimation, BoardAnimationHeader, BoardAnimationHeaderSchema, BoardAnimationSampler, BoardAnimationSchema, BoardAppMetadata, BoardApplyOptions, BoardArrowAnchor, BoardArrowAnchorSchema, BoardArrowBinding, BoardArrowBindingSchema, BoardArrowEnd, BoardArrowEndSchema, BoardArrowItem, BoardArrowItemSchema, BoardArrowRoute, BoardAssetSource, 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, BoardItemCapabilities, BoardItemDefinition, BoardItemEntry, BoardItemInput, BoardItemLookup, BoardItemOf, BoardItemResizeMode, BoardItemType, BoardKeySchema, BoardKeyframe, BoardKeyframeSchema, BoardLayout, BoardMarker, BoardMarkerSchema, BoardMatrix, BoardMediaItemKind, BoardMediaKind, BoardMediaOrigin, BoardMediaOriginSchema, BoardMediaSnapshot, BoardMediaSnapshotSchema, BoardMediaSource, BoardMediaSourceSchema, 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, BoardTextItem, BoardTextItemSchema, BoardTextLayout, BoardTextMeasurer, BoardToolStyleMap, BoardToolStylePatch, BoardTrack, BoardTrackSchema, BoardValueKind, BoardVec2, BoardVec2Schema, BoardVideoItem, BoardVideoItemSchema, BoardViewport, BoardWorldOffset, BoardWorldPoint, BoardWorldRect, type BuildSnapshotInput, CORNER_RESIZE_HANDLES, CORNER_ROTATION_ZONE_WIDTH, 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, 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, anchorPoint, angleFromCenter, appendBoardDrawSamples, applyBoardDelta, applyBoardEvaluation, applyBoardPatch, applyBoardPatchToDocument, applyMatrix, arrowBindings, arrowHitRadius, arrowPathBounds, autoAnchorSide, availabilityFromError, bendControl, boardAnimationTime, boardColorCssVar, boardDocumentAt, boardEase, boardFontFamily, boardImageKeySource, boardItemOrigin, boardItemSchema, boardJsonSchema, boardNestedAnimation, boardNestedAnimationTrack, boardOriginKey, boardPatchTouches, boardPathTrack, boardPresetTracks, boardReplayActorKind, boardSchemaOverview, boardScriptHitVisible, boardScriptItems, boardScriptScope, boardScriptTarget, boardSequence, boardSequencePatch, boardTaskSource, buildBoardScene, buildCodeExcerpt, buildFallbackShapeColors, buildFileExcerpt, buildFileSnapshot, buildStrokeOutline, buildStrokeRibbonGeometry, builtinBoardItems, cameraForFocus, cameraForRect, cameraForState, clamp, clampBoardFontSize, clampBoardStrokeSize, clampBoardFontSize as clampBoardTextFontSize, clampZoom, 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, emptyBoardDocument, estimateTextWidth, evaluateBoardAnimations, expandRect, exportItemBounds, featuredTaskArtifact, fileBaseName, fileCategory, fileCategoryAccent, fileMetaLine, filePreviewKind, filePreviewMemoKey, filePreviewScope, fileStem, fileTypeLabel, fitToContent, formatFileSize, frameContainsPoint, frameCornerRotationHandleAt, frameCorners, frameEdgeHandleAt, frameHandlePosition, framePoint, frameRayIntersection, frameRect, getMediaExtension, getMediaResourceTitle, handlePosition, hasAuthoredSize, hasBoardScripts, imageAssetKey, inferBoardMediaKind, invertMatrix, isArrowBinding, isBoardColorId, isBoardColorString, isBoardEase, isBoardPath, isBoardPresetName, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isEmptyBoardPatch, isFileBackedItem, isFileSnapshotFresh, isMediaItem, isPublicBoardRemoteAddress, isSafeBoardSourcePath, isShapeKind, isStrokeCorner, itemBounds, layoutBoardText, 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, 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, setBoardTextMeasurer, shouldFetchFileExcerpt, sideAnchor, simplifyDrawIndices, splitFrontmatter, stableCullRect, taskArtifactPreviewUrl, taskArtifacts, taskRunArtifacts, taskRunToBoardTaskSnapshot, titleForBoardItem, toSceneItem, trackReferences, trimDrawPoints, unionRects, validateBoardScriptCommit, validateBoardScriptOutput, visibleWorldRect, withObservedArtifactFacts, worldOffset, worldPoint, worldRect, worldToScreen, zoomAround };
|
|
44
|
+
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_MAX_TEXTURES, 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_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, BoardAnchorSide, BoardAnimation, BoardAnimationHeader, BoardAnimationHeaderSchema, BoardAnimationSampler, BoardAnimationSchema, BoardAppMetadata, BoardApplyOptions, BoardArrowAnchor, BoardArrowAnchorSchema, BoardArrowBinding, BoardArrowBindingSchema, BoardArrowEnd, BoardArrowEndSchema, BoardArrowItem, BoardArrowItemSchema, BoardArrowRoute, BoardAssetSource, 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, BoardItemCapabilities, BoardItemDefinition, BoardItemEntry, BoardItemInput, BoardItemLookup, BoardItemOf, BoardItemResizeMode, BoardItemType, BoardKeySchema, BoardKeyframe, BoardKeyframeSchema, BoardLayout, BoardMarker, BoardMarkerSchema, BoardMatrix, BoardMediaItemKind, BoardMediaKind, BoardMediaOrigin, BoardMediaOriginSchema, BoardMediaSnapshot, BoardMediaSnapshotSchema, BoardMediaSource, BoardMediaSourceSchema, 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, BoardTextItem, BoardTextItemSchema, BoardTextLayout, BoardTextMeasurer, BoardToolStyleMap, BoardToolStylePatch, BoardTrack, BoardTrackSchema, BoardValueKind, BoardVec2, BoardVec2Schema, BoardVideoItem, BoardVideoItemSchema, BoardViewport, BoardWorldOffset, BoardWorldPoint, BoardWorldRect, type BuildSnapshotInput, CORNER_RESIZE_HANDLES, CORNER_ROTATION_ZONE_WIDTH, 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, 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, anchorPoint, angleFromCenter, appendBoardDrawSamples, applyBoardDelta, applyBoardEvaluation, applyBoardPatch, applyBoardPatchToDocument, applyMatrix, arrowBindings, arrowHitRadius, arrowPathBounds, autoAnchorSide, availabilityFromError, bendControl, boardAnimationTime, boardColorCssVar, boardDocumentAt, boardEase, boardFontFamily, boardImageKeySource, boardItemOrigin, boardItemSchema, boardJsonSchema, boardNestedAnimation, boardNestedAnimationTrack, boardOriginKey, boardPatchTouches, boardPathTrack, boardPresetTracks, boardReplayActorKind, boardSchemaOverview, boardScriptHitVisible, boardScriptItems, boardScriptScope, boardScriptTarget, boardSequence, boardSequencePatch, boardTaskSource, buildBoardScene, buildCodeExcerpt, buildFallbackShapeColors, buildFileExcerpt, buildFileSnapshot, buildStrokeOutline, buildStrokeRibbonGeometry, builtinBoardItems, cameraForFocus, cameraForRect, cameraForState, clamp, clampBoardFontSize, clampBoardStrokeSize, clampBoardFontSize as clampBoardTextFontSize, clampZoom, 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, emptyBoardDocument, estimateTextWidth, evaluateBoardAnimations, expandRect, exportItemBounds, featuredTaskArtifact, fileBaseName, fileCategory, fileCategoryAccent, fileMetaLine, filePreviewKind, filePreviewMemoKey, filePreviewScope, fileStem, fileTypeLabel, fitToContent, formatFileSize, frameContainsPoint, frameCornerRotationHandleAt, frameCorners, frameEdgeHandleAt, frameHandlePosition, framePoint, frameRayIntersection, frameRect, getMediaExtension, getMediaResourceTitle, handlePosition, hasAuthoredSize, hasBoardScripts, imageAssetKey, inferBoardMediaKind, invertMatrix, isArrowBinding, isBoardColorId, isBoardColorString, isBoardEase, isBoardPath, isBoardPresetName, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isEmptyBoardPatch, isFileBackedItem, isFileSnapshotFresh, isMediaItem, isPublicBoardRemoteAddress, isSafeBoardSourcePath, isShapeKind, isStrokeCorner, itemBounds, layoutBoardText, 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, 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, setBoardTextMeasurer, shouldFetchFileExcerpt, sideAnchor, simplifyDrawIndices, splitFrontmatter, stableCullRect, taskArtifactPreviewUrl, taskArtifacts, taskRunArtifacts, taskRunToBoardTaskSnapshot, titleForBoardItem, toSceneItem, trackReferences, trimDrawPoints, unionRects, validateBoardScriptCommit, validateBoardScriptOutput, visibleWorldRect, withObservedArtifactFacts, worldOffset, worldPoint, worldRect, worldToScreen, zoomAround };
|
|
@@ -11,6 +11,7 @@ import { boardScriptItems, hasBoardScripts } from "./script-index.js";
|
|
|
11
11
|
import { CORNER_RESIZE_HANDLES, CORNER_ROTATION_ZONE_WIDTH, EDGE_RESIZE_HANDLES, FIT_PADDING, HANDLE_DIRECTION, HANDLE_HIT_RADIUS, MAX_BOARD_ZOOM, MIN_BOARD_ZOOM, MIN_ITEM_SIZE, RESIZE_HANDLES, ROTATION_HANDLE_OFFSET, VIEWPORT_MARGIN_RATIO, angleFromCenter, cameraForFocus, cameraForRect, cameraForState, clamp, clampZoom, degToRad, expandRect, fitToContent, frameContainsPoint, frameCornerRotationHandleAt, frameCorners, frameEdgeHandleAt, frameHandlePosition, frameRayIntersection, frameRect, handlePosition, itemBounds, normalizeRotation, normalizeViewport, normalizedPoint, panBy, pointToWorld, pointsBounds, radToDeg, rectCenter, rectContainsPoint, rectForCameraFocus, rectsIntersect, resizeFrame, resizeFrameToSize, rotateFrames, rotatePointAround, rotationHandleAnchor, rotationHandlePosition, scaleFrames, screenOffset, screenPoint, screenToWorld, selectionBounds, stableCullRect, unionRects, visibleWorldRect, worldOffset, worldPoint, worldRect, worldToScreen, zoomAround } from "./geometry.js";
|
|
12
12
|
import { boardScriptScope, composeBoardScriptItems, prepareBoardScriptOutput, scriptTemporaryPrefix, validateBoardScriptCommit, validateBoardScriptOutput } from "./script-scene.js";
|
|
13
13
|
import { boardScriptHitVisible, boardScriptTarget, resolveBoardScriptHit } from "./script-hit.js";
|
|
14
|
+
import { BOARD_SCRIPT_API } from "./script-api.js";
|
|
14
15
|
import { BOARD_SCRIPT_DRAWING_EXAMPLE } from "./script-example.js";
|
|
15
16
|
import { applyBoardEvaluation, boardAnimationTime, boardDocumentAt, boardEase, compileBoardAnimations, evaluateBoardAnimations, parseHexColor, sampleBoardTrack } from "./animation.js";
|
|
16
17
|
import { buildBoardScene, orderBoardItems, placeItem, refreshBoardScene, sceneItemToItem, sceneItemsToRecord, toSceneItem } from "./scene.js";
|
|
@@ -37,4 +38,4 @@ import { boardItemOrigin, boardOriginKey, createAppBoardItem, createArrowBoardIt
|
|
|
37
38
|
import { createBoardRegistry, defaultBoardRegistry } from "./items/registry.js";
|
|
38
39
|
import { playableBoardMedia, playableBoardMediaList, resetBoardPlaybackUrlCache, resolveBoardMediaUrl } from "./media-playback.js";
|
|
39
40
|
import { boardReplayActorKind, createBoardReplayPlayer } from "./replay.js";
|
|
40
|
-
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_MAX_TEXTURES, 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_PRESET_NAMES, BOARD_SCHEMA_TARGETS, 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, BoardAnimationHeaderSchema, BoardAnimationSchema, BoardArrowAnchorSchema, BoardArrowBindingSchema, BoardArrowEndSchema, BoardArrowItemSchema, BoardAudioItemSchema, BoardBackgroundSchema, BoardColorSchema, BoardCropSchema, BoardCustomItemSchema, BoardDrawItemSchema, BoardDrawPointSchema, BoardEaseSchema, BoardEffectItemSchema, BoardExtensionItemSchema, BoardFileItemSchema, BoardFrameItemSchema, BoardIdSchema, BoardImageItemSchema, 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, TEXT_FONT_FAMILY, TEXT_FONT_SIZE, TEXT_LINE_HEIGHT, TEXT_MAX_FONT_SIZE, TEXT_MIN_FONT_SIZE, VIEWPORT_MARGIN_RATIO, anchorPoint, angleFromCenter, appendBoardDrawSamples, applyBoardDelta, applyBoardEvaluation, applyBoardPatch, applyBoardPatchToDocument, applyMatrix, arrowBindings, arrowHitRadius, arrowPathBounds, autoAnchorSide, availabilityFromError, bendControl, boardAnimationTime, boardColorCssVar, boardDocumentAt, boardEase, boardFontFamily, boardImageKeySource, boardItemOrigin, boardItemSchema, boardJsonSchema, boardNestedAnimation, boardNestedAnimationTrack, boardOriginKey, boardPatchTouches, boardPathTrack, boardPresetTracks, boardReplayActorKind, boardSchemaOverview, boardScriptHitVisible, boardScriptItems, boardScriptScope, boardScriptTarget, boardSequence, boardSequencePatch, boardTaskSource, buildBoardScene, buildCodeExcerpt, buildFallbackShapeColors, buildFileExcerpt, buildFileSnapshot, buildStrokeOutline, buildStrokeRibbonGeometry, builtinBoardItems, cameraForFocus, cameraForRect, cameraForState, clamp, clampBoardFontSize, clampBoardStrokeSize, clampBoardFontSize as clampBoardTextFontSize, clampZoom, 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, emptyBoardDocument, estimateTextWidth, evaluateBoardAnimations, expandRect, exportItemBounds, featuredTaskArtifact, fileBaseName, fileCategory, fileCategoryAccent, fileMetaLine, filePreviewKind, filePreviewMemoKey, filePreviewScope, fileStem, fileTypeLabel, fitToContent, formatFileSize, frameContainsPoint, frameCornerRotationHandleAt, frameCorners, frameEdgeHandleAt, frameHandlePosition, framePoint, frameRayIntersection, frameRect, getMediaExtension, getMediaResourceTitle, handlePosition, hasAuthoredSize, hasBoardScripts, imageAssetKey, inferBoardMediaKind, invertMatrix, isArrowBinding, isBoardColorId, isBoardColorString, isBoardEase, isBoardPath, isBoardPresetName, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isEmptyBoardPatch, isFileBackedItem, isFileSnapshotFresh, isMediaItem, isPublicBoardRemoteAddress, isSafeBoardSourcePath, isShapeKind, isStrokeCorner, itemBounds, layoutBoardText, 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, 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, setBoardTextMeasurer, shouldFetchFileExcerpt, sideAnchor, simplifyDrawIndices, splitFrontmatter, stableCullRect, taskArtifactPreviewUrl, taskArtifacts, taskRunArtifacts, taskRunToBoardTaskSnapshot, titleForBoardItem, toSceneItem, trackReferences, trimDrawPoints, unionRects, validateBoardScriptCommit, validateBoardScriptOutput, visibleWorldRect, withObservedArtifactFacts, worldOffset, worldPoint, worldRect, worldToScreen, zoomAround };
|
|
41
|
+
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_MAX_TEXTURES, 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_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, BoardAnimationHeaderSchema, BoardAnimationSchema, BoardArrowAnchorSchema, BoardArrowBindingSchema, BoardArrowEndSchema, BoardArrowItemSchema, BoardAudioItemSchema, BoardBackgroundSchema, BoardColorSchema, BoardCropSchema, BoardCustomItemSchema, BoardDrawItemSchema, BoardDrawPointSchema, BoardEaseSchema, BoardEffectItemSchema, BoardExtensionItemSchema, BoardFileItemSchema, BoardFrameItemSchema, BoardIdSchema, BoardImageItemSchema, 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, TEXT_FONT_FAMILY, TEXT_FONT_SIZE, TEXT_LINE_HEIGHT, TEXT_MAX_FONT_SIZE, TEXT_MIN_FONT_SIZE, VIEWPORT_MARGIN_RATIO, anchorPoint, angleFromCenter, appendBoardDrawSamples, applyBoardDelta, applyBoardEvaluation, applyBoardPatch, applyBoardPatchToDocument, applyMatrix, arrowBindings, arrowHitRadius, arrowPathBounds, autoAnchorSide, availabilityFromError, bendControl, boardAnimationTime, boardColorCssVar, boardDocumentAt, boardEase, boardFontFamily, boardImageKeySource, boardItemOrigin, boardItemSchema, boardJsonSchema, boardNestedAnimation, boardNestedAnimationTrack, boardOriginKey, boardPatchTouches, boardPathTrack, boardPresetTracks, boardReplayActorKind, boardSchemaOverview, boardScriptHitVisible, boardScriptItems, boardScriptScope, boardScriptTarget, boardSequence, boardSequencePatch, boardTaskSource, buildBoardScene, buildCodeExcerpt, buildFallbackShapeColors, buildFileExcerpt, buildFileSnapshot, buildStrokeOutline, buildStrokeRibbonGeometry, builtinBoardItems, cameraForFocus, cameraForRect, cameraForState, clamp, clampBoardFontSize, clampBoardStrokeSize, clampBoardFontSize as clampBoardTextFontSize, clampZoom, 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, emptyBoardDocument, estimateTextWidth, evaluateBoardAnimations, expandRect, exportItemBounds, featuredTaskArtifact, fileBaseName, fileCategory, fileCategoryAccent, fileMetaLine, filePreviewKind, filePreviewMemoKey, filePreviewScope, fileStem, fileTypeLabel, fitToContent, formatFileSize, frameContainsPoint, frameCornerRotationHandleAt, frameCorners, frameEdgeHandleAt, frameHandlePosition, framePoint, frameRayIntersection, frameRect, getMediaExtension, getMediaResourceTitle, handlePosition, hasAuthoredSize, hasBoardScripts, imageAssetKey, inferBoardMediaKind, invertMatrix, isArrowBinding, isBoardColorId, isBoardColorString, isBoardEase, isBoardPath, isBoardPresetName, isBuiltinItem, isBuiltinItemType, isEmptyBoardDelta, isEmptyBoardPatch, isFileBackedItem, isFileSnapshotFresh, isMediaItem, isPublicBoardRemoteAddress, isSafeBoardSourcePath, isShapeKind, isStrokeCorner, itemBounds, layoutBoardText, 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, 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, setBoardTextMeasurer, shouldFetchFileExcerpt, sideAnchor, simplifyDrawIndices, splitFrontmatter, stableCullRect, taskArtifactPreviewUrl, taskArtifacts, taskRunArtifacts, taskRunToBoardTaskSnapshot, titleForBoardItem, toSceneItem, trackReferences, trimDrawPoints, unionRects, validateBoardScriptCommit, validateBoardScriptOutput, visibleWorldRect, withObservedArtifactFacts, worldOffset, worldPoint, worldRect, worldToScreen, zoomAround };
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
//#region src/board/model/script-api.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* A compact reference for Board script authors, printed by `cohub boards schema script`.
|
|
4
|
+
* Each group is checked against its type, so a new member fails to compile until it is described.
|
|
5
|
+
*/
|
|
6
|
+
declare const BOARD_SCRIPT_API: {
|
|
7
|
+
readonly runtime: readonly ["Modules are .js or .mjs Space files that import only literal relative paths (at most 64 modules, 2 MB).", "They run in a worker with no DOM or network. Use Apps for HTML content.", "Exports replay deterministically from ctx.onFrame, the frame clock, ctx.random() and ctx.state; timers, Date.now() and Math.random() do not."];
|
|
8
|
+
readonly module: {
|
|
9
|
+
draw: string;
|
|
10
|
+
animated: string;
|
|
11
|
+
parameters: string;
|
|
12
|
+
default: string;
|
|
13
|
+
};
|
|
14
|
+
readonly frame: {
|
|
15
|
+
t: string;
|
|
16
|
+
dt: string;
|
|
17
|
+
width: string;
|
|
18
|
+
height: string;
|
|
19
|
+
seed: string;
|
|
20
|
+
params: string;
|
|
21
|
+
state: string;
|
|
22
|
+
};
|
|
23
|
+
readonly context: {
|
|
24
|
+
self: string;
|
|
25
|
+
params: string;
|
|
26
|
+
targets: string;
|
|
27
|
+
state: string;
|
|
28
|
+
frame: string;
|
|
29
|
+
view: string;
|
|
30
|
+
random: string;
|
|
31
|
+
on: string;
|
|
32
|
+
onFrame: string;
|
|
33
|
+
onDispose: string;
|
|
34
|
+
invalidate: string;
|
|
35
|
+
get: string;
|
|
36
|
+
present: string;
|
|
37
|
+
scene: string;
|
|
38
|
+
hitRegions: string;
|
|
39
|
+
emit: string;
|
|
40
|
+
commit: string;
|
|
41
|
+
capabilities: string;
|
|
42
|
+
};
|
|
43
|
+
readonly scope: "The owner, a Frame owner's descendants, and script.targets.";
|
|
44
|
+
readonly hitRegions: {
|
|
45
|
+
readonly forms: readonly ["{ target: \"self\" }: the owner.", "{ item: id }: a scene item.", "{ x, y, width, height }: a rectangle in owner coordinates."];
|
|
46
|
+
readonly options: "label (also a keyboard focus target) and cursor.";
|
|
47
|
+
readonly rule: "Only declared regions receive input; everything else passes through to the Board. Event target is the region's key.";
|
|
48
|
+
};
|
|
49
|
+
readonly sceneOptions: {
|
|
50
|
+
space: string;
|
|
51
|
+
anchor: string;
|
|
52
|
+
};
|
|
53
|
+
readonly events: {
|
|
54
|
+
readonly input: "pointerenter, pointerleave, pointerdown, pointermove, pointerup, pointercancel, click, focus, blur, keydown, keyup. Pointer events carry point in owner coordinates; key events carry key.";
|
|
55
|
+
readonly host: {
|
|
56
|
+
selectionchange: string;
|
|
57
|
+
transformend: string;
|
|
58
|
+
viewchange: string;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
readonly view: {
|
|
62
|
+
camera: string;
|
|
63
|
+
width: string;
|
|
64
|
+
height: string;
|
|
65
|
+
safeRect: string;
|
|
66
|
+
};
|
|
67
|
+
};
|
|
68
|
+
//#endregion
|
|
69
|
+
export { BOARD_SCRIPT_API };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
//#region src/board/model/script-api.ts
|
|
2
|
+
/**
|
|
3
|
+
* A compact reference for Board script authors, printed by `cohub boards schema script`.
|
|
4
|
+
* Each group is checked against its type, so a new member fails to compile until it is described.
|
|
5
|
+
*/
|
|
6
|
+
const BOARD_SCRIPT_API = {
|
|
7
|
+
runtime: [
|
|
8
|
+
"Modules are .js or .mjs Space files that import only literal relative paths (at most 64 modules, 2 MB).",
|
|
9
|
+
"They run in a worker with no DOM or network. Use Apps for HTML content.",
|
|
10
|
+
"Exports replay deterministically from ctx.onFrame, the frame clock, ctx.random() and ctx.state; timers, Date.now() and Math.random() do not."
|
|
11
|
+
],
|
|
12
|
+
module: {
|
|
13
|
+
draw: "draw(ctx, frame): synchronous Canvas 2D drawing in item-local units.",
|
|
14
|
+
animated: "true redraws every frame; otherwise draw runs when its inputs change or after invalidate().",
|
|
15
|
+
parameters: "Declares params as { name: { type: number | boolean | string | color, label?, default?, min?, max?, step? } }.",
|
|
16
|
+
default: "Setup function (ctx) for behavior; may return a cleanup function."
|
|
17
|
+
},
|
|
18
|
+
frame: {
|
|
19
|
+
t: "Clock time in milliseconds.",
|
|
20
|
+
dt: "Milliseconds since the previous frame.",
|
|
21
|
+
width: "Item width in board units.",
|
|
22
|
+
height: "Item height in board units.",
|
|
23
|
+
seed: "script.seed, or the item id.",
|
|
24
|
+
params: "script.params merged over parameter defaults.",
|
|
25
|
+
state: "ctx.state."
|
|
26
|
+
},
|
|
27
|
+
context: {
|
|
28
|
+
self: "The owner: id, base (its authored item) and present(patch | null).",
|
|
29
|
+
params: "script.params merged over parameter defaults.",
|
|
30
|
+
targets: "script.targets: names mapped to item ids.",
|
|
31
|
+
state: "Mutable state kept across frames and restored in exports.",
|
|
32
|
+
frame: "The latest frame.",
|
|
33
|
+
view: "Camera, width, height and safeRect in screen pixels; null until a viewchange.",
|
|
34
|
+
random: "random(): a seeded number in [0, 1).",
|
|
35
|
+
on: "on(type, handler): input and host events; returns an unsubscribe function.",
|
|
36
|
+
onFrame: "onFrame(handler): a 60 Hz fixed step; returns an unsubscribe function.",
|
|
37
|
+
onDispose: "onDispose(handler): cleanup when the instance stops.",
|
|
38
|
+
invalidate: "invalidate(): redraw a non-animated draw().",
|
|
39
|
+
get: "get(id): an item in scope, as authored.",
|
|
40
|
+
present: "present(id, patch | null): temporarily override an item in scope; never saved.",
|
|
41
|
+
scene: "scene(items, options?): replace this instance's temporary Board items; never saved.",
|
|
42
|
+
hitRegions: "hitRegions(regions): replace the input declarations.",
|
|
43
|
+
emit: "emit(id, type, data?): send a custom event to another scripted item in scope.",
|
|
44
|
+
commit: "commit(patch): save a Board patch through history and permissions; it may edit items in scope or add children to a scoped frame.",
|
|
45
|
+
capabilities: "has(name) and call(name, input?) for adapters the host provides."
|
|
46
|
+
},
|
|
47
|
+
scope: "The owner, a Frame owner's descendants, and script.targets.",
|
|
48
|
+
hitRegions: {
|
|
49
|
+
forms: [
|
|
50
|
+
"{ target: \"self\" }: the owner.",
|
|
51
|
+
"{ item: id }: a scene item.",
|
|
52
|
+
"{ x, y, width, height }: a rectangle in owner coordinates."
|
|
53
|
+
],
|
|
54
|
+
options: "label (also a keyboard focus target) and cursor.",
|
|
55
|
+
rule: "Only declared regions receive input; everything else passes through to the Board. Event target is the region's key."
|
|
56
|
+
},
|
|
57
|
+
sceneOptions: {
|
|
58
|
+
space: "world (default) follows the owner's transform; screen keeps screen-pixel size and is left out of exports.",
|
|
59
|
+
anchor: "{ item, point }: pin a screen scene to an item, point in 0–1 box coordinates."
|
|
60
|
+
},
|
|
61
|
+
events: {
|
|
62
|
+
input: "pointerenter, pointerleave, pointerdown, pointermove, pointerup, pointercancel, click, focus, blur, keydown, keyup. Pointer events carry point in owner coordinates; key events carry key.",
|
|
63
|
+
host: {
|
|
64
|
+
selectionchange: "data.ids: selected items in scope.",
|
|
65
|
+
transformend: "data.ids, data.operation (move | resize | rotate | arrow), data.cancelled.",
|
|
66
|
+
viewchange: "data: the view; also stored in ctx.view."
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
view: {
|
|
70
|
+
camera: "x, y and zoom.",
|
|
71
|
+
width: "Viewport width in screen pixels.",
|
|
72
|
+
height: "Viewport height in screen pixels.",
|
|
73
|
+
safeRect: "The viewport area not covered by editor chrome."
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
//#endregion
|
|
77
|
+
export { BOARD_SCRIPT_API };
|
|
@@ -7,6 +7,6 @@ declare function drawAudioWaveform(graphics: Graphics, seed: string, rect: {
|
|
|
7
7
|
y: number;
|
|
8
8
|
width: number;
|
|
9
9
|
height: number;
|
|
10
|
-
}, color: number, alpha?: number): void;
|
|
10
|
+
}, color: number, alpha?: number, square?: boolean): void;
|
|
11
11
|
//#endregion
|
|
12
12
|
export { audioWaveformBars, drawAudioWaveform };
|
|
@@ -17,7 +17,7 @@ function audioWaveformBars(seed, count) {
|
|
|
17
17
|
}
|
|
18
18
|
return bars;
|
|
19
19
|
}
|
|
20
|
-
function drawAudioWaveform(graphics, seed, rect, color, alpha = .72) {
|
|
20
|
+
function drawAudioWaveform(graphics, seed, rect, color, alpha = .72, square = false) {
|
|
21
21
|
const count = Math.max(8, Math.min(DEFAULT_BARS, Math.floor(rect.width / 4)));
|
|
22
22
|
const step = rect.width / count;
|
|
23
23
|
const barWidth = Math.max(1.5, step - BAR_GAP);
|
|
@@ -26,11 +26,14 @@ function drawAudioWaveform(graphics, seed, rect, color, alpha = .72) {
|
|
|
26
26
|
const bars = audioWaveformBars(seed, count);
|
|
27
27
|
for (let index = 0; index < count; index += 1) {
|
|
28
28
|
const height = Math.max(2, (bars[index] ?? .4) * maxHeight);
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
});
|
|
29
|
+
const x = rect.x + index * step;
|
|
30
|
+
if (square) graphics.rect(x, centerY - height / 2, barWidth, height);
|
|
31
|
+
else graphics.roundRect(x, centerY - height / 2, barWidth, height, barWidth / 2);
|
|
33
32
|
}
|
|
33
|
+
graphics.fill({
|
|
34
|
+
color,
|
|
35
|
+
alpha
|
|
36
|
+
});
|
|
34
37
|
}
|
|
35
38
|
//#endregion
|
|
36
39
|
export { audioWaveformBars, drawAudioWaveform };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BoardRenderContext } from "./renderers/board-renderer-registry.js";
|
|
2
|
+
import { Container, Graphics, Text } from "pixi.js";
|
|
3
|
+
//#region src/board/render/card-tag.d.ts
|
|
4
|
+
type CardGlyph = "image" | "video" | "audio" | "file" | "task";
|
|
5
|
+
declare const CARD_TAG_SIZE = 11;
|
|
6
|
+
declare function formatBoardDuration(ms: number): string;
|
|
7
|
+
declare function drawCardGlyph(graphics: Graphics, glyph: CardGlyph, color: number, pixel: boolean): void;
|
|
8
|
+
type CardTag = {
|
|
9
|
+
root: Container;
|
|
10
|
+
icon: Graphics;
|
|
11
|
+
text: Text | null;
|
|
12
|
+
sig: string;
|
|
13
|
+
resolution: number;
|
|
14
|
+
width: number;
|
|
15
|
+
};
|
|
16
|
+
declare function createCardTag(): CardTag;
|
|
17
|
+
declare function zoomCardTag(tag: CardTag, zoom: number): void;
|
|
18
|
+
declare function syncCardTag(tag: CardTag, input: {
|
|
19
|
+
glyph: CardGlyph;
|
|
20
|
+
text: string;
|
|
21
|
+
width: number;
|
|
22
|
+
}, context: BoardRenderContext): void;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { CARD_TAG_SIZE, CardGlyph, CardTag, createCardTag, drawCardGlyph, formatBoardDuration, syncCardTag, zoomCardTag };
|