@neta-art/cohub 9.0.0 → 10.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 +100 -103
- package/dist/board/editor/align.d.ts +11 -0
- package/dist/board/editor/align.js +72 -0
- package/dist/board/editor/animation.d.ts +14 -0
- package/dist/board/editor/animation.js +172 -0
- package/dist/board/editor/camera.d.ts +32 -0
- package/dist/board/editor/camera.js +137 -0
- package/dist/board/editor/clipboard.d.ts +41 -0
- package/dist/board/editor/clipboard.js +122 -0
- package/dist/board/editor/connection-ports.d.ts +19 -0
- package/dist/board/editor/connection-ports.js +85 -0
- package/dist/board/editor/context.d.ts +111 -0
- package/dist/board/editor/context.js +30 -0
- package/dist/board/editor/copy.d.ts +17 -0
- package/dist/board/editor/copy.js +116 -0
- package/dist/board/editor/creation.d.ts +47 -0
- package/dist/board/editor/creation.js +224 -0
- package/dist/board/editor/deletion.d.ts +9 -0
- package/dist/board/editor/deletion.js +90 -0
- package/dist/board/editor/document-edits.d.ts +22 -0
- package/dist/board/editor/document-edits.js +193 -0
- package/dist/board/editor/document.d.ts +35 -0
- package/dist/board/editor/document.js +255 -0
- package/dist/board/editor/editor.d.ts +210 -0
- package/dist/board/editor/editor.js +429 -0
- package/dist/board/editor/index.d.ts +18 -0
- package/dist/board/editor/index.js +12 -0
- package/dist/board/editor/interaction.d.ts +115 -0
- package/dist/board/editor/interaction.js +584 -0
- package/dist/board/editor/query.d.ts +27 -0
- package/dist/board/editor/query.js +201 -0
- package/dist/board/editor/remote.d.ts +11 -0
- package/dist/board/editor/remote.js +55 -0
- package/dist/board/editor/selection-transform.d.ts +24 -0
- package/dist/board/editor/selection-transform.js +81 -0
- package/dist/board/editor/selection.d.ts +33 -0
- package/dist/board/editor/selection.js +196 -0
- package/dist/board/editor/snapping.d.ts +33 -0
- package/dist/board/editor/snapping.js +75 -0
- package/dist/board/editor/snapshots.d.ts +27 -0
- package/dist/board/editor/snapshots.js +132 -0
- package/dist/board/editor/spatial.d.ts +41 -0
- package/dist/board/editor/spatial.js +191 -0
- package/dist/board/editor/state.d.ts +12 -0
- package/dist/board/editor/state.js +49 -0
- package/dist/board/editor/tool.d.ts +10 -0
- package/dist/board/editor/tool.js +19 -0
- package/dist/board/editor/wheel.d.ts +5 -0
- package/dist/board/editor/wheel.js +17 -0
- package/dist/board/export/index.d.ts +5 -4
- package/dist/board/export/index.js +4 -3
- package/dist/board/export/node/index.d.ts +55 -0
- package/dist/board/{headless → export/node}/index.js +12 -12
- package/dist/board/export/node/sketch.d.ts +19 -0
- package/dist/board/{headless → export/node}/sketch.js +6 -6
- package/dist/board/export/scene.d.ts +6 -4
- package/dist/board/export/scene.js +4 -3
- package/dist/board/{animation.d.ts → model/animation.d.ts} +4 -4
- package/dist/board/{animation.js → model/animation.js} +3 -3
- package/dist/board/{core → model}/arrow-geometry.d.ts +2 -2
- package/dist/board/{core → model}/arrow-geometry.js +2 -2
- package/dist/board/{core → model}/draw-geometry.d.ts +2 -2
- package/dist/board/{core → model}/draw-geometry.js +1 -1
- package/dist/board/model/draw-input.d.ts +14 -0
- package/dist/board/model/draw-input.js +28 -0
- package/dist/board/{core → model}/export-assets.d.ts +1 -1
- package/dist/board/{core → model}/export-assets.js +1 -1
- package/dist/board/{core → model}/export-plan.d.ts +2 -2
- package/dist/board/{core → model}/export-plan.js +2 -2
- package/dist/board/{core → model}/file-preview.d.ts +1 -1
- package/dist/board/{core → model}/file-preview.js +1 -1
- package/dist/board/{core → model}/file-snapshot.d.ts +1 -1
- package/dist/board/{core → model}/file-snapshot.js +1 -1
- package/dist/board/{geometry.d.ts → model/geometry.d.ts} +3 -3
- package/dist/board/{geometry.js → model/geometry.js} +1 -1
- package/dist/board/{image-key.d.ts → model/image-key.d.ts} +2 -2
- package/dist/board/{image-key.js → model/image-key.js} +1 -1
- package/dist/board/model/index.d.ts +35 -0
- package/dist/board/{index.js → model/index.js} +26 -22
- package/dist/board/model/items/builtin.d.ts +5 -0
- package/dist/board/model/items/builtin.js +119 -0
- package/dist/board/model/items/create.d.ts +59 -0
- package/dist/board/model/items/create.js +271 -0
- package/dist/board/model/items/definition.d.ts +35 -0
- package/dist/board/model/items/definition.js +18 -0
- package/dist/board/model/items/id.d.ts +5 -0
- package/dist/board/model/items/id.js +11 -0
- package/dist/board/model/items/index.d.ts +6 -0
- package/dist/board/model/items/index.js +6 -0
- package/dist/board/model/items/registry.d.ts +35 -0
- package/dist/board/model/items/registry.js +84 -0
- package/dist/board/{media-playback.d.ts → model/media-playback.d.ts} +2 -2
- package/dist/board/{media-playback.js → model/media-playback.js} +1 -1
- package/dist/board/{media.d.ts → model/media.d.ts} +1 -1
- package/dist/board/{media.js → model/media.js} +1 -1
- package/dist/board/{core → model}/palette.d.ts +1 -1
- package/dist/board/{core → model}/palette.js +1 -1
- package/dist/board/{presets.d.ts → model/presets.d.ts} +3 -3
- package/dist/board/{presets.js → model/presets.js} +1 -1
- package/dist/board/{replay.d.ts → model/replay.d.ts} +5 -5
- package/dist/board/{replay.js → model/replay.js} +2 -2
- package/dist/board/{core → model}/scene.d.ts +1 -1
- package/dist/board/{core → model}/scene.js +1 -1
- package/dist/board/model/shape-types.d.ts +8 -0
- package/dist/board/model/shape-types.js +8 -0
- package/dist/board/{task.d.ts → model/task.d.ts} +4 -4
- package/dist/board/{task.js → model/task.js} +3 -3
- package/dist/board/{core → model}/text-metrics.d.ts +1 -1
- package/dist/board/{core → model}/text-metrics.js +1 -1
- package/dist/board/{core → model}/tool-styles.d.ts +1 -1
- package/dist/board/{core → model}/tool-styles.js +1 -1
- package/dist/board/{runtime/board-player.d.ts → player/index.d.ts} +2 -2
- package/dist/board/{runtime/board-player.js → player/index.js} +5 -4
- package/dist/board/render/board-background.d.ts +1 -1
- package/dist/board/render/clip.d.ts +1 -1
- package/dist/board/render/index.d.ts +2 -2
- package/dist/board/render/index.js +2 -2
- package/dist/board/render/media-interaction.d.ts +2 -2
- package/dist/board/render/media-interaction.js +1 -1
- package/dist/board/render/palette.d.ts +1 -1
- package/dist/board/render/palette.js +1 -1
- package/dist/board/render/renderers/arrow-card-renderer.js +1 -1
- package/dist/board/render/renderers/board-renderer-registry.d.ts +11 -6
- package/dist/board/render/renderers/board-renderer-registry.js +15 -15
- package/dist/board/render/renderers/draw-card-renderer.js +1 -1
- package/dist/board/render/renderers/far-plate.js +1 -1
- package/dist/board/render/renderers/file-card-renderer.d.ts +1 -1
- package/dist/board/render/renderers/file-card-renderer.js +2 -2
- package/dist/board/render/renderers/image-card-renderer.d.ts +1 -1
- package/dist/board/render/renderers/shape-card-renderer.js +1 -1
- package/dist/board/render/renderers/task-card-renderer.js +1 -1
- package/dist/board/render/renderers/text-card-renderer.js +1 -1
- package/dist/board/render/renderers/video-card-renderer.d.ts +1 -1
- package/dist/board/render/stroke.d.ts +1 -1
- package/dist/board/render/stroke.js +1 -1
- package/dist/board/render/text-measurement.js +1 -1
- package/dist/board/replica/index.d.ts +70 -0
- package/dist/board/replica/index.js +276 -0
- package/dist/board/stage/assets.d.ts +41 -0
- package/dist/board/stage/assets.js +350 -0
- package/dist/board/stage/index.d.ts +8 -0
- package/dist/board/stage/index.js +8 -0
- package/dist/board/stage/lru.d.ts +32 -0
- package/dist/board/stage/lru.js +29 -0
- package/dist/board/stage/pointer.d.ts +8 -0
- package/dist/board/stage/pointer.js +33 -0
- package/dist/board/stage/scene.d.ts +85 -0
- package/dist/board/stage/scene.js +512 -0
- package/dist/board/stage/stage.d.ts +66 -0
- package/dist/board/stage/stage.js +568 -0
- package/dist/board/stage/texture-pool.d.ts +24 -0
- package/dist/board/stage/texture-pool.js +154 -0
- package/dist/board/stage/views.d.ts +38 -0
- package/dist/board/stage/views.js +93 -0
- package/dist/chunks/environment.d.ts +25 -1
- package/dist/chunks/http.d.ts +99 -66
- package/dist/chunks/http.js +214 -207
- package/dist/chunks/websocket.d.ts +1 -1
- package/dist/http.d.ts +2 -2
- package/dist/index.d.ts +3 -3
- package/dist/index.js +20 -4
- package/dist/media.d.ts +1 -10
- package/dist/media.js +16 -27
- package/dist/protocol/dist/board-patch.js +1 -1
- package/dist/protocol/dist/board.d.ts +28 -2
- package/dist/protocol/dist/board.js +3 -1
- package/dist/protocol/dist/core/media.d.ts +5 -0
- package/dist/protocol/dist/core/media.js +39 -0
- package/dist/protocol/dist/index.d.ts +5 -5
- package/dist/types.d.ts +1 -1
- package/package.json +26 -14
- package/dist/board/core/shape-definition.d.ts +0 -23
- package/dist/board/core/shape-definition.js +0 -45
- package/dist/board/core/shape-types.d.ts +0 -38
- package/dist/board/core/shape-types.js +0 -22
- package/dist/board/headless/index.d.ts +0 -55
- package/dist/board/headless/sketch.d.ts +0 -19
- package/dist/board/index.d.ts +0 -30
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BoardColor, BoardColorToken } from "../../protocol/dist/board-model.js";
|
|
2
2
|
import "../../protocol/dist/index.js";
|
|
3
|
-
//#region src/board/
|
|
3
|
+
//#region src/board/model/palette.d.ts
|
|
4
4
|
type BoardColorId = BoardColorToken;
|
|
5
5
|
type BoardColorValue = {
|
|
6
6
|
stroke: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { BoardTrack } from "
|
|
2
|
-
import "
|
|
3
|
-
//#region src/board/presets.d.ts
|
|
1
|
+
import { BoardTrack } from "../../protocol/dist/board-model.js";
|
|
2
|
+
import "../../protocol/dist/index.js";
|
|
3
|
+
//#region src/board/model/presets.d.ts
|
|
4
4
|
declare const PRESETS: {
|
|
5
5
|
"fade-in": {
|
|
6
6
|
description: string;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { BoardDocument } from "
|
|
2
|
-
import { RequestSource } from "
|
|
3
|
-
import { BoardHistoryPage } from "
|
|
4
|
-
import "
|
|
5
|
-
//#region src/board/replay.d.ts
|
|
1
|
+
import { BoardDocument } from "../../protocol/dist/board-model.js";
|
|
2
|
+
import { RequestSource } from "../../protocol/dist/provenance.js";
|
|
3
|
+
import { BoardHistoryPage } from "../../protocol/dist/board.js";
|
|
4
|
+
import "../../protocol/dist/index.js";
|
|
5
|
+
//#region src/board/model/replay.d.ts
|
|
6
6
|
type BoardReplayActorKind = "human" | "cli" | "agent";
|
|
7
7
|
type BoardReplayEntry = {
|
|
8
8
|
version: number;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { applyBoardDelta } from "
|
|
2
|
-
//#region src/board/replay.ts
|
|
1
|
+
import { applyBoardDelta } from "../../protocol/dist/board-patch.js";
|
|
2
|
+
//#region src/board/model/replay.ts
|
|
3
3
|
function boardReplayActorKind(source) {
|
|
4
4
|
if (!source) return "human";
|
|
5
5
|
if (source.toolCallId) return "agent";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BoardDocument, BoardItem } from "../../protocol/dist/board-model.js";
|
|
2
2
|
import { BoardFrame, BoardItemLookup, BoardLayout, BoardMatrix, BoardRect } from "../../protocol/dist/board-layout.js";
|
|
3
3
|
import "../../protocol/dist/index.js";
|
|
4
|
-
//#region src/board/
|
|
4
|
+
//#region src/board/model/scene.d.ts
|
|
5
5
|
type SceneItem<T extends BoardItem = BoardItem> = T & {
|
|
6
6
|
readonly id: string;
|
|
7
7
|
readonly frame: BoardFrame;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { IDENTITY_MATRIX, applyMatrix, arrowBindings, clampBoardFontSize, createBoardLayout, drawPointsBounds, invertMatrix, layoutBoardText, scaleVector } from "../../protocol/dist/board-layout.js";
|
|
2
|
-
//#region src/board/
|
|
2
|
+
//#region src/board/model/scene.ts
|
|
3
3
|
const EPSILON = 1e-6;
|
|
4
4
|
function stripScene(item) {
|
|
5
5
|
if (!("frame" in item) && !("id" in item)) return item;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BoardShapeGeometry } from "../../protocol/dist/board-model.js";
|
|
2
|
+
import "../../protocol/dist/index.js";
|
|
3
|
+
//#region src/board/model/shape-types.d.ts
|
|
4
|
+
type ShapeKind = Exclude<BoardShapeGeometry, "path">;
|
|
5
|
+
declare const SHAPE_KINDS: ShapeKind[];
|
|
6
|
+
declare function isShapeKind(value: unknown): value is ShapeKind;
|
|
7
|
+
//#endregion
|
|
8
|
+
export { SHAPE_KINDS, ShapeKind, isShapeKind };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BOARD_SHAPE_GEOMETRIES } from "../../protocol/dist/board-model.js";
|
|
2
|
+
//#region src/board/model/shape-types.ts
|
|
3
|
+
const SHAPE_KINDS = BOARD_SHAPE_GEOMETRIES.filter((kind) => kind !== "path");
|
|
4
|
+
function isShapeKind(value) {
|
|
5
|
+
return typeof value === "string" && SHAPE_KINDS.includes(value);
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { SHAPE_KINDS, isShapeKind };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { BoardTaskArtifact, BoardTaskSnapshot } from "
|
|
2
|
-
import "
|
|
3
|
-
import { TaskRunRecord } from "
|
|
4
|
-
//#region src/board/task.d.ts
|
|
1
|
+
import { BoardTaskArtifact, BoardTaskSnapshot } from "../../protocol/dist/board-model.js";
|
|
2
|
+
import "../../protocol/dist/index.js";
|
|
3
|
+
import { TaskRunRecord } from "../../types.js";
|
|
4
|
+
//#region src/board/model/task.d.ts
|
|
5
5
|
declare function taskArtifacts(blocks: Record<string, unknown>[]): BoardTaskArtifact[];
|
|
6
6
|
declare function rankedTaskArtifacts(artifacts: readonly BoardTaskArtifact[]): BoardTaskArtifact[];
|
|
7
7
|
declare function featuredTaskArtifact(artifacts: readonly BoardTaskArtifact[]): BoardTaskArtifact | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import "
|
|
2
|
-
import { blockDurationMs, blockIdentity, blockMimeType, blockNaturalSize, blockPreviewUrl, blockText, blockTitle, blockUrl, cleanExcerpt, generationCovers, generationOutput, generationPrompt, taskData } from "
|
|
3
|
-
//#region src/board/task.ts
|
|
1
|
+
import "../../protocol/dist/board-model.js";
|
|
2
|
+
import { blockDurationMs, blockIdentity, blockMimeType, blockNaturalSize, blockPreviewUrl, blockText, blockTitle, blockUrl, cleanExcerpt, generationCovers, generationOutput, generationPrompt, taskData } from "../../generation-blocks.js";
|
|
3
|
+
//#region src/board/model/task.ts
|
|
4
4
|
function artifactId(base, used, suffix) {
|
|
5
5
|
const stem = cleanExcerpt(base, 220) ?? "output";
|
|
6
6
|
let candidate = suffix ? `${stem}-${suffix}` : stem;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { clampBoardFontSize } from "../../protocol/dist/board-layout.js";
|
|
2
2
|
import "../../protocol/dist/index.js";
|
|
3
|
-
//#region src/board/
|
|
3
|
+
//#region src/board/model/text-metrics.d.ts
|
|
4
4
|
declare const TEXT_FONT_FAMILY = "Geist";
|
|
5
5
|
declare const TEXT_FONT_SIZE = 24;
|
|
6
6
|
declare const TEXT_LINE_HEIGHT = 32;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BOARD_TEXT_FONT_FAMILY } from "../../protocol/dist/board-constants.js";
|
|
2
2
|
import { clampBoardFontSize } from "../../protocol/dist/board-layout.js";
|
|
3
|
-
//#region src/board/
|
|
3
|
+
//#region src/board/model/text-metrics.ts
|
|
4
4
|
const TEXT_FONT_FAMILY = BOARD_TEXT_FONT_FAMILY;
|
|
5
5
|
const TEXT_FONT_SIZE = 24;
|
|
6
6
|
const TEXT_LINE_HEIGHT = 32;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BOARD_STROKE_MAX_SIZE, BOARD_STROKE_MIN_SIZE, clampBoardStrokeSize } from "../../protocol/dist/board-constants.js";
|
|
2
2
|
import { BoardColorId } from "./palette.js";
|
|
3
3
|
import { ShapeKind } from "./shape-types.js";
|
|
4
|
-
//#region src/board/
|
|
4
|
+
//#region src/board/model/tool-styles.d.ts
|
|
5
5
|
type BoardToolStyleMap = {
|
|
6
6
|
text: {
|
|
7
7
|
color: BoardColorId;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BOARD_ARROW_STROKE_SIZE, BOARD_STROKE_MAX_SIZE, BOARD_STROKE_MIN_SIZE, clampBoardStrokeSize } from "../../protocol/dist/board-constants.js";
|
|
2
2
|
import { isBoardColorId } from "./palette.js";
|
|
3
3
|
import { isShapeKind } from "./shape-types.js";
|
|
4
|
-
//#region src/board/
|
|
4
|
+
//#region src/board/model/tool-styles.ts
|
|
5
5
|
const DEFAULT_BOARD_TOOL_STYLES = {
|
|
6
6
|
text: { color: "neutral" },
|
|
7
7
|
shape: {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BoardDocument, BoardItem } from "../../protocol/dist/board-model.js";
|
|
2
2
|
import { BoardPlaybackCommand, BoardPlaybackSnapshot } from "../../protocol/dist/board.js";
|
|
3
3
|
import "../../protocol/dist/index.js";
|
|
4
|
-
import { BoardCameraOverride, BoardColorResolver } from "../animation.js";
|
|
5
|
-
//#region src/board/
|
|
4
|
+
import { BoardCameraOverride, BoardColorResolver } from "../model/animation.js";
|
|
5
|
+
//#region src/board/player/index.d.ts
|
|
6
6
|
type BoardPlayerFrame = {
|
|
7
7
|
items: ReadonlyMap<string, BoardItem>;
|
|
8
8
|
camera: BoardCameraOverride;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { boardAnimationTime, compileBoardAnimations, evaluateBoardAnimations } from "../animation.js";
|
|
2
|
-
import { boardPresetTracks, isBoardPresetName } from "../presets.js";
|
|
3
|
-
|
|
1
|
+
import { boardAnimationTime, compileBoardAnimations, evaluateBoardAnimations } from "../model/animation.js";
|
|
2
|
+
import { boardPresetTracks, isBoardPresetName } from "../model/presets.js";
|
|
3
|
+
import { createBoardEntityId } from "../model/items/id.js";
|
|
4
|
+
//#region src/board/player/index.ts
|
|
4
5
|
const ENTER_ANIMATION = "\0enter";
|
|
5
6
|
const ENTER_STAGGER_MS = 45;
|
|
6
7
|
const ENTER_MAX_ITEMS = 80;
|
|
@@ -118,7 +119,7 @@ function nextLocalPlayback(current, command, document, now = Date.now()) {
|
|
|
118
119
|
};
|
|
119
120
|
switch (command.type) {
|
|
120
121
|
case "play": return {
|
|
121
|
-
playbackId:
|
|
122
|
+
playbackId: createBoardEntityId(),
|
|
122
123
|
animationId: command.animationId,
|
|
123
124
|
animationRevision: 0,
|
|
124
125
|
status: "playing",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BoardSettings } from "../../protocol/dist/board-model.js";
|
|
2
2
|
import "../../protocol/dist/index.js";
|
|
3
|
-
import { BoardViewport } from "../geometry.js";
|
|
3
|
+
import { BoardViewport } from "../model/geometry.js";
|
|
4
4
|
import { BoardRenderPalette } from "./renderers/board-renderer-registry.js";
|
|
5
5
|
import { Application, Container } from "pixi.js";
|
|
6
6
|
//#region src/board/render/board-background.d.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BoardScene, BoardSceneItem } from "../
|
|
1
|
+
import { BoardScene, BoardSceneItem } from "../model/scene.js";
|
|
2
2
|
import { Container, Graphics } from "pixi.js";
|
|
3
3
|
//#region src/board/render/clip.d.ts
|
|
4
4
|
declare function isClippingFrame(item: BoardSceneItem): boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BoardCardRenderer, BoardRenderContext, BoardRenderPalette, BoardSketchHost,
|
|
1
|
+
import { BoardCardRenderer, BoardCardRendererResolver, BoardRenderContext, BoardRenderPalette, BoardSketchHost, createBoardCardRendererResolver, getBoardCardRenderer } from "./renderers/board-renderer-registry.js";
|
|
2
2
|
import { BoardBackgroundContext, createBoardBackground, updateBoardBackground } from "./board-background.js";
|
|
3
3
|
import { ClipGroup, clippingAncestor, isClippingFrame, syncClipGroup, traceFrameOutline } from "./clip.js";
|
|
4
4
|
import { parseBoardCssColor } from "./css-color.js";
|
|
@@ -11,4 +11,4 @@ import { TASK_CARD_FULL_DETAIL_ZOOM } from "./renderers/task-card-renderer.js";
|
|
|
11
11
|
import { BOARD_FONT_STACKS, ensureBoardTextMeasurement, installBoardTextMeasurement } from "./text-measurement.js";
|
|
12
12
|
import { getBoardResolution, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket } from "./text-resolution.js";
|
|
13
13
|
import { VIDEO_THUMBNAIL_MAX_EDGE, VideoNaturalSize, loadVideoThumbnailTexture, videoTextureNaturalSize, videoThumbnailSize } from "./video-thumbnail.js";
|
|
14
|
-
export { BOARD_EFFECT_MAX_PARTICLES, BOARD_FONT_STACKS, BoardBackgroundContext, BoardCardRenderer, BoardMediaAction, BoardRenderContext, BoardRenderPalette, BoardSketchHost, BoardSketchHostOptions, BrowserBoardSketchHost, ClipGroup, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, VideoNaturalSize,
|
|
14
|
+
export { BOARD_EFFECT_MAX_PARTICLES, BOARD_FONT_STACKS, BoardBackgroundContext, BoardCardRenderer, BoardCardRendererResolver, BoardMediaAction, BoardRenderContext, BoardRenderPalette, BoardSketchHost, BoardSketchHostOptions, BrowserBoardSketchHost, ClipGroup, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, VideoNaturalSize, boardMediaActionAt, clippingAncestor, createBoardBackground, createBoardCardRendererResolver, createBoardSketchHost, dashPattern, defaultBoardPalette, endAngle, ensureBoardTextMeasurement, getBoardCardRenderer, getBoardResolution, installBoardTextMeasurement, isClippingFrame, itemColor, loadVideoThumbnailTexture, mediaPlayBadgeHit, mediaPlayBadgeVisible, parseBoardCssColor, syncClipGroup, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, traceArrowhead, traceFrameOutline, tracePolyline, trimPolyline, updateBoardBackground, videoTextureNaturalSize, videoThumbnailSize };
|
|
@@ -8,7 +8,7 @@ import { defaultBoardPalette, itemColor } from "./palette.js";
|
|
|
8
8
|
import { BOARD_FONT_STACKS, ensureBoardTextMeasurement, installBoardTextMeasurement } from "./text-measurement.js";
|
|
9
9
|
import { dashPattern, endAngle, traceArrowhead, tracePolyline, trimPolyline } from "./stroke.js";
|
|
10
10
|
import { BOARD_EFFECT_MAX_PARTICLES } from "./renderers/effect-card-renderer.js";
|
|
11
|
-
import {
|
|
11
|
+
import { createBoardCardRendererResolver, getBoardCardRenderer } from "./renderers/board-renderer-registry.js";
|
|
12
12
|
import { createBoardSketchHost } from "./sketch-host.js";
|
|
13
13
|
import { VIDEO_THUMBNAIL_MAX_EDGE, loadVideoThumbnailTexture, videoTextureNaturalSize, videoThumbnailSize } from "./video-thumbnail.js";
|
|
14
|
-
export { BOARD_EFFECT_MAX_PARTICLES, BOARD_FONT_STACKS, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE,
|
|
14
|
+
export { BOARD_EFFECT_MAX_PARTICLES, BOARD_FONT_STACKS, TASK_CARD_FULL_DETAIL_ZOOM, VIDEO_THUMBNAIL_MAX_EDGE, boardMediaActionAt, clippingAncestor, createBoardBackground, createBoardCardRendererResolver, createBoardSketchHost, dashPattern, defaultBoardPalette, endAngle, ensureBoardTextMeasurement, getBoardCardRenderer, getBoardResolution, installBoardTextMeasurement, isClippingFrame, itemColor, loadVideoThumbnailTexture, mediaPlayBadgeHit, mediaPlayBadgeVisible, parseBoardCssColor, syncClipGroup, syncTextResolution, syncTextWrapWidth, textResolutionForZoom, textZoomBucket, traceArrowhead, traceFrameOutline, tracePolyline, trimPolyline, updateBoardBackground, videoTextureNaturalSize, videoThumbnailSize };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { WorldPoint } from "../geometry.js";
|
|
2
|
-
import { BoardSceneItem } from "../
|
|
1
|
+
import { WorldPoint } from "../model/geometry.js";
|
|
2
|
+
import { BoardSceneItem } from "../model/scene.js";
|
|
3
3
|
//#region src/board/render/media-interaction.d.ts
|
|
4
4
|
type BoardMediaAction = {
|
|
5
5
|
action: "play-media";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BoardColor } from "../../protocol/dist/board-model.js";
|
|
2
2
|
import "../../protocol/dist/index.js";
|
|
3
|
-
import { BoardColorId } from "../
|
|
3
|
+
import { BoardColorId } from "../model/palette.js";
|
|
4
4
|
import { BoardRenderContext, BoardRenderPalette } from "./renderers/board-renderer-registry.js";
|
|
5
5
|
//#region src/board/render/palette.d.ts
|
|
6
6
|
declare function defaultBoardPalette(mode: "dark" | "light"): BoardRenderPalette;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BOARD_FONT_STACK } from "../../../protocol/dist/board-constants.js";
|
|
2
|
-
import { pathPointAt, resolveSceneArrow } from "../../
|
|
2
|
+
import { pathPointAt, resolveSceneArrow } from "../../model/arrow-geometry.js";
|
|
3
3
|
import { syncTextResolution, textResolutionForZoom } from "../text-resolution.js";
|
|
4
4
|
import { drawFarStroke } from "./far-plate.js";
|
|
5
5
|
import { itemColor } from "../palette.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BoardSettings, BoardSketchItem } from "../../../protocol/dist/board-model.js";
|
|
2
2
|
import "../../../protocol/dist/index.js";
|
|
3
|
-
import { BoardScene, BoardSceneItem, SceneItem } from "../../
|
|
4
|
-
import { BoardShapeColors } from "../../
|
|
3
|
+
import { BoardScene, BoardSceneItem, SceneItem } from "../../model/scene.js";
|
|
4
|
+
import { BoardShapeColors } from "../../model/palette.js";
|
|
5
5
|
import { Container, Graphics, Texture } from "pixi.js";
|
|
6
6
|
//#region src/board/render/renderers/board-renderer-registry.d.ts
|
|
7
7
|
type BoardRenderPalette = {
|
|
@@ -50,8 +50,13 @@ type BoardCardRenderer = {
|
|
|
50
50
|
renderFar?: (graphics: Graphics, item: BoardSceneItem, context: BoardRenderContext) => void;
|
|
51
51
|
destroy?: (container: Container, context: BoardRenderContext) => void;
|
|
52
52
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
53
|
+
type BoardCardRendererResolver = (item: BoardSceneItem, context: BoardRenderContext) => BoardCardRenderer;
|
|
54
|
+
/**
|
|
55
|
+
* Pick a renderer per item: `renderers` first, then the built-ins. Items no
|
|
56
|
+
* renderer claims draw as a labelled placeholder box.
|
|
57
|
+
*/
|
|
58
|
+
declare function createBoardCardRendererResolver(renderers?: Iterable<BoardCardRenderer>): BoardCardRendererResolver;
|
|
59
|
+
/** The built-in renderers alone. */
|
|
60
|
+
declare const getBoardCardRenderer: BoardCardRendererResolver;
|
|
56
61
|
//#endregion
|
|
57
|
-
export { BoardCardRenderer, BoardRenderContext, BoardRenderPalette, BoardSketchHost,
|
|
62
|
+
export { BoardCardRenderer, BoardCardRendererResolver, BoardRenderContext, BoardRenderPalette, BoardSketchHost, createBoardCardRendererResolver, getBoardCardRenderer };
|
|
@@ -13,7 +13,7 @@ import { textCardRenderer } from "./text-card-renderer.js";
|
|
|
13
13
|
import { unknownCardRenderer } from "./unknown-card-renderer.js";
|
|
14
14
|
import { videoCardRenderer } from "./video-card-renderer.js";
|
|
15
15
|
//#region src/board/render/renderers/board-renderer-registry.ts
|
|
16
|
-
const
|
|
16
|
+
const builtinCardRenderers = [
|
|
17
17
|
textCardRenderer,
|
|
18
18
|
imageCardRenderer,
|
|
19
19
|
videoCardRenderer,
|
|
@@ -25,20 +25,20 @@ const boardCardRenderers = [
|
|
|
25
25
|
arrowCardRenderer,
|
|
26
26
|
frameCardRenderer,
|
|
27
27
|
effectCardRenderer,
|
|
28
|
-
sketchCardRenderer
|
|
29
|
-
unknownCardRenderer
|
|
28
|
+
sketchCardRenderer
|
|
30
29
|
];
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
else boardCardRenderers.unshift(renderer);
|
|
30
|
+
/**
|
|
31
|
+
* Pick a renderer per item: `renderers` first, then the built-ins. Items no
|
|
32
|
+
* renderer claims draw as a labelled placeholder box.
|
|
33
|
+
*/
|
|
34
|
+
function createBoardCardRendererResolver(renderers = []) {
|
|
35
|
+
const candidates = [...renderers, ...builtinCardRenderers];
|
|
36
|
+
return (item, context) => {
|
|
37
|
+
ensureBoardTextMeasurement();
|
|
38
|
+
return candidates.find((renderer) => renderer.canRender(item, context)) ?? unknownCardRenderer;
|
|
39
|
+
};
|
|
42
40
|
}
|
|
41
|
+
/** The built-in renderers alone. */
|
|
42
|
+
const getBoardCardRenderer = createBoardCardRendererResolver();
|
|
43
43
|
//#endregion
|
|
44
|
-
export {
|
|
44
|
+
export { createBoardCardRendererResolver, getBoardCardRenderer };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { applyMatrix } from "../../../protocol/dist/board-layout.js";
|
|
2
|
-
import { computeDrawBounds, createStrokeRibbonBuilder, trimDrawPoints } from "../../
|
|
2
|
+
import { computeDrawBounds, createStrokeRibbonBuilder, trimDrawPoints } from "../../model/draw-geometry.js";
|
|
3
3
|
import { positionShell } from "./base-card-renderer.js";
|
|
4
4
|
import { drawFarStroke, farStrokeSamples } from "./far-plate.js";
|
|
5
5
|
import { itemColor } from "../palette.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BoardFileItem } from "../../../protocol/dist/board-model.js";
|
|
2
2
|
import "../../../protocol/dist/index.js";
|
|
3
|
-
import { BoardSceneItem, SceneItem } from "../../
|
|
3
|
+
import { BoardSceneItem, SceneItem } from "../../model/scene.js";
|
|
4
4
|
import { BoardCardRenderer } from "./board-renderer-registry.js";
|
|
5
5
|
import { Text } from "pixi.js";
|
|
6
6
|
//#region src/board/render/renderers/file-card-renderer.d.ts
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BOARD_FONT_STACK, BOARD_MONO_FONT_STACK } from "../../../protocol/dist/board-constants.js";
|
|
2
|
-
import { fileCategory, fileStem } from "../../
|
|
3
|
-
import { fileCategoryAccent, filePreviewKind, fileTypeLabel } from "../../
|
|
2
|
+
import { fileCategory, fileStem } from "../../model/file-snapshot.js";
|
|
3
|
+
import { fileCategoryAccent, filePreviewKind, fileTypeLabel } from "../../model/file-preview.js";
|
|
4
4
|
import { syncTextResolution } from "../text-resolution.js";
|
|
5
5
|
import { positionShell } from "./base-card-renderer.js";
|
|
6
6
|
import { drawFarPlate } from "./far-plate.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BoardImageItem } from "../../../protocol/dist/board-model.js";
|
|
2
2
|
import "../../../protocol/dist/index.js";
|
|
3
|
-
import { BoardSceneItem, SceneItem } from "../../
|
|
3
|
+
import { BoardSceneItem, SceneItem } from "../../model/scene.js";
|
|
4
4
|
import { BoardCardRenderer } from "./board-renderer-registry.js";
|
|
5
5
|
//#region src/board/render/renderers/image-card-renderer.d.ts
|
|
6
6
|
declare const imageCardRenderer: BoardCardRenderer;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BOARD_FONT_STACK } from "../../../protocol/dist/board-constants.js";
|
|
2
|
-
import { worldPoint } from "../../geometry.js";
|
|
2
|
+
import { worldPoint } from "../../model/geometry.js";
|
|
3
3
|
import { syncTextResolution, syncTextWrapWidth, textResolutionForZoom } from "../text-resolution.js";
|
|
4
4
|
import { positionShell } from "./base-card-renderer.js";
|
|
5
5
|
import { drawFarPlate } from "./far-plate.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { BOARD_FONT_STACK, BOARD_MONO_FONT_STACK } from "../../../protocol/dist/board-constants.js";
|
|
2
|
-
import { featuredTaskArtifact } from "../../task.js";
|
|
2
|
+
import { featuredTaskArtifact } from "../../model/task.js";
|
|
3
3
|
import { drawAudioWaveform } from "../audio-waveform.js";
|
|
4
4
|
import { syncTextResolution, textResolutionForZoom } from "../text-resolution.js";
|
|
5
5
|
import { positionShell } from "./base-card-renderer.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { layoutBoardText } from "../../../protocol/dist/board-layout.js";
|
|
2
|
-
import { boardFontFamily } from "../../
|
|
2
|
+
import { boardFontFamily } from "../../model/text-metrics.js";
|
|
3
3
|
import { syncTextResolution, textResolutionForZoom } from "../text-resolution.js";
|
|
4
4
|
import { positionShell } from "./base-card-renderer.js";
|
|
5
5
|
import { drawFarPlate } from "./far-plate.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BoardVideoItem } from "../../../protocol/dist/board-model.js";
|
|
2
2
|
import "../../../protocol/dist/index.js";
|
|
3
|
-
import { BoardSceneItem, SceneItem } from "../../
|
|
3
|
+
import { BoardSceneItem, SceneItem } from "../../model/scene.js";
|
|
4
4
|
import { BoardCardRenderer } from "./board-renderer-registry.js";
|
|
5
5
|
//#region src/board/render/renderers/video-card-renderer.d.ts
|
|
6
6
|
declare const videoCardRenderer: BoardCardRenderer;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BoardDash } from "../../protocol/dist/board-model.js";
|
|
2
2
|
import "../../protocol/dist/index.js";
|
|
3
|
-
import { WorldPoint } from "../geometry.js";
|
|
3
|
+
import { WorldPoint } from "../model/geometry.js";
|
|
4
4
|
import { Graphics } from "pixi.js";
|
|
5
5
|
//#region src/board/render/stroke.d.ts
|
|
6
6
|
declare function dashPattern(dash: BoardDash | undefined, width: number): [number, number] | null;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BOARD_FONT_STACK, BOARD_MONO_FONT_STACK } from "../../protocol/dist/board-constants.js";
|
|
2
2
|
import { setBoardTextMeasurer } from "../../protocol/dist/board-layout.js";
|
|
3
|
-
import { boardFontFamily } from "../
|
|
3
|
+
import { boardFontFamily } from "../model/text-metrics.js";
|
|
4
4
|
import { DOMAdapter } from "pixi.js";
|
|
5
5
|
//#region src/board/render/text-measurement.ts
|
|
6
6
|
const BOARD_FONT_STACKS = {
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { BoardDelta, BoardDocument, BoardPatch } from "../../protocol/dist/board-model.js";
|
|
2
|
+
import { BoardApplyResult, BoardPlaybackSnapshot, BoardReadResult } from "../../protocol/dist/board.js";
|
|
3
|
+
import "../../protocol/dist/index.js";
|
|
4
|
+
//#region src/board/replica/index.d.ts
|
|
5
|
+
type BoardPendingPatch = {
|
|
6
|
+
mutationId: string;
|
|
7
|
+
patch: BoardPatch;
|
|
8
|
+
};
|
|
9
|
+
type BoardChangedPayload = {
|
|
10
|
+
mutationId: string;
|
|
11
|
+
baseVersion: number;
|
|
12
|
+
version: number;
|
|
13
|
+
after?: BoardDelta;
|
|
14
|
+
};
|
|
15
|
+
type BoardRemote = {
|
|
16
|
+
get(): Promise<BoardReadResult>;
|
|
17
|
+
apply(patch: BoardPatch, options: {
|
|
18
|
+
mutationId: string;
|
|
19
|
+
clientId?: string;
|
|
20
|
+
}): Promise<BoardApplyResult>;
|
|
21
|
+
subscribe?(handlers: {
|
|
22
|
+
changed?: (event: {
|
|
23
|
+
payload: BoardChangedPayload;
|
|
24
|
+
}) => void;
|
|
25
|
+
playback?: (event: {
|
|
26
|
+
payload: {
|
|
27
|
+
playback: BoardPlaybackSnapshot | null;
|
|
28
|
+
};
|
|
29
|
+
}) => void;
|
|
30
|
+
}): () => void;
|
|
31
|
+
};
|
|
32
|
+
type BoardReplicaStorage = {
|
|
33
|
+
listPending(): Promise<BoardPendingPatch[]>;
|
|
34
|
+
putPending(entry: BoardPendingPatch): Promise<void>;
|
|
35
|
+
deletePending(mutationId: string): Promise<void>;
|
|
36
|
+
readDocument(): Promise<{
|
|
37
|
+
version: number;
|
|
38
|
+
document: Record<string, unknown>;
|
|
39
|
+
} | null>;
|
|
40
|
+
writeDocument(version: number, document: BoardDocument): Promise<void>;
|
|
41
|
+
};
|
|
42
|
+
type BoardReplicaState = {
|
|
43
|
+
document: BoardDocument | null;
|
|
44
|
+
version: number;
|
|
45
|
+
title: string | null;
|
|
46
|
+
playback: BoardPlaybackSnapshot | null;
|
|
47
|
+
loaded: boolean;
|
|
48
|
+
pending: number;
|
|
49
|
+
error: string | null;
|
|
50
|
+
};
|
|
51
|
+
type BoardReplicaOptions = {
|
|
52
|
+
remote: BoardRemote;
|
|
53
|
+
storage?: BoardReplicaStorage;
|
|
54
|
+
clientId?: string;
|
|
55
|
+
persistIntervalMs?: number;
|
|
56
|
+
};
|
|
57
|
+
declare function createBoardReplica(options: BoardReplicaOptions): {
|
|
58
|
+
readonly state: BoardReplicaState;
|
|
59
|
+
subscribe(listener: (state: BoardReplicaState) => void): () => void;
|
|
60
|
+
start(): Promise<void>;
|
|
61
|
+
apply(patch: BoardPatch): Promise<void>;
|
|
62
|
+
receive: (payload: BoardChangedPayload) => void;
|
|
63
|
+
receivePlayback: (next: BoardPlaybackSnapshot | null) => void;
|
|
64
|
+
refresh: () => Promise<void>;
|
|
65
|
+
retry(): Promise<void>;
|
|
66
|
+
dispose(): void;
|
|
67
|
+
};
|
|
68
|
+
type BoardReplica = ReturnType<typeof createBoardReplica>;
|
|
69
|
+
//#endregion
|
|
70
|
+
export { BoardChangedPayload, BoardPendingPatch, BoardRemote, BoardReplica, BoardReplicaOptions, BoardReplicaState, BoardReplicaStorage, createBoardReplica };
|