@dxos/plugin-illustrator 0.10.0 → 0.11.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/lib/IllustratorPlugin.mjs +7 -3
- package/dist/lib/IllustratorPlugin.mjs.map +1 -1
- package/dist/lib/IllustratorPlugin.node.mjs +3 -3
- package/dist/lib/IllustratorPlugin.node.mjs.map +1 -1
- package/dist/lib/IllustratorPlugin.workerd.mjs +2 -2
- package/dist/lib/IllustratorPlugin.workerd.mjs.map +1 -1
- package/dist/lib/capabilities.mjs +2 -1
- package/dist/lib/capabilities.mjs.map +1 -1
- package/dist/lib/chunk-Drawing.mjs +64 -0
- package/dist/lib/chunk-Drawing.mjs.map +1 -0
- package/dist/lib/chunk-IllustratorCapabilities.mjs +2 -2
- package/dist/lib/chunk-IllustratorCapabilities.mjs.map +1 -1
- package/dist/lib/chunk-comment-config.mjs +3 -3
- package/dist/lib/chunk-comment-config.mjs.map +1 -1
- package/dist/lib/chunk-create-object.mjs +13 -12
- package/dist/lib/chunk-create-object.mjs.map +1 -1
- package/dist/lib/chunk-create.mjs +5 -4
- package/dist/lib/chunk-create.mjs.map +1 -1
- package/dist/lib/chunk-edit.mjs +4 -4
- package/dist/lib/chunk-edit.mjs.map +1 -1
- package/dist/lib/chunk-generate.mjs +20 -0
- package/dist/lib/chunk-generate.mjs.map +1 -0
- package/dist/lib/chunk-load-drawing.mjs +35 -0
- package/dist/lib/chunk-load-drawing.mjs.map +1 -0
- package/dist/lib/chunk-meta.mjs +2 -1
- package/dist/lib/chunk-meta.mjs.map +1 -1
- package/dist/lib/chunk-migrations.mjs +23 -0
- package/dist/lib/chunk-migrations.mjs.map +1 -0
- package/dist/lib/chunk-model.mjs +387 -4
- package/dist/lib/chunk-model.mjs.map +1 -1
- package/dist/lib/chunk-react-surface.mjs +14 -13
- package/dist/lib/chunk-react-surface.mjs.map +1 -1
- package/dist/lib/chunk-read.mjs +4 -4
- package/dist/lib/chunk-read.mjs.map +1 -1
- package/dist/lib/chunk-skill-definition.mjs +2 -2
- package/dist/lib/chunk-skill-definition.mjs.map +1 -1
- package/dist/lib/chunk-skills.mjs +10 -10
- package/dist/lib/chunk-skills.mjs.map +1 -1
- package/dist/lib/chunk-types.mjs +41 -49
- package/dist/lib/chunk-types.mjs.map +1 -1
- package/dist/lib/components.mjs +6 -6
- package/dist/lib/components.mjs.map +1 -1
- package/dist/lib/containers.mjs +17 -19
- package/dist/lib/containers.mjs.map +1 -1
- package/dist/lib/index.mjs +4 -3
- package/dist/lib/model.mjs +2 -2
- package/dist/lib/operations.mjs +1 -1
- package/dist/lib/operations.mjs.map +1 -1
- package/dist/lib/skills.mjs +1 -1
- package/dist/lib/translations.mjs +13 -13
- package/dist/lib/translations.mjs.map +1 -1
- package/dist/lib/types.mjs +3 -2
- package/dist/lib/util.mjs +2 -2
- package/dist/types/src/IllustratorPlugin.d.ts.map +1 -1
- package/dist/types/src/IllustratorPlugin.node.d.ts +1 -1
- package/dist/types/src/IllustratorPlugin.test.d.ts +2 -0
- package/dist/types/src/IllustratorPlugin.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +1 -0
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/migrations.d.ts +7 -0
- package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
- package/dist/types/src/capabilities/migrations.test.d.ts +2 -0
- package/dist/types/src/capabilities/migrations.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/skill-definition.d.ts.map +1 -1
- package/dist/types/src/components/CreateDrawingPanel.d.ts +15 -0
- package/dist/types/src/components/CreateDrawingPanel.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/containers/DrawingArticle/DrawingArticle.d.ts +11 -0
- package/dist/types/src/containers/DrawingArticle/DrawingArticle.d.ts.map +1 -0
- package/dist/types/src/containers/DrawingArticle/index.d.ts +2 -0
- package/dist/types/src/containers/DrawingArticle/index.d.ts.map +1 -0
- package/dist/types/src/containers/DrawingCard/DrawingCard.d.ts +10 -0
- package/dist/types/src/containers/DrawingCard/DrawingCard.d.ts.map +1 -0
- package/dist/types/src/containers/DrawingCard/index.d.ts +2 -0
- package/dist/types/src/containers/DrawingCard/index.d.ts.map +1 -0
- package/dist/types/src/containers/index.d.ts +2 -2
- package/dist/types/src/containers/index.d.ts.map +1 -1
- package/dist/types/src/model/builder.d.ts +18 -26
- package/dist/types/src/model/builder.d.ts.map +1 -1
- package/dist/types/src/model/content.d.ts +60 -0
- package/dist/types/src/model/content.d.ts.map +1 -0
- package/dist/types/src/model/index.d.ts +2 -0
- package/dist/types/src/model/index.d.ts.map +1 -1
- package/dist/types/src/model/mermaid.d.ts +38 -0
- package/dist/types/src/model/mermaid.d.ts.map +1 -0
- package/dist/types/src/model/mermaid.test.d.ts +3 -0
- package/dist/types/src/model/mermaid.test.d.ts.map +1 -0
- package/dist/types/src/operations/create.d.ts +2 -2
- package/dist/types/src/operations/create.d.ts.map +1 -1
- package/dist/types/src/operations/edit.d.ts +2 -2
- package/dist/types/src/operations/edit.d.ts.map +1 -1
- package/dist/types/src/operations/generate.d.ts +5 -0
- package/dist/types/src/operations/generate.d.ts.map +1 -0
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/operations/read.d.ts +2 -2
- package/dist/types/src/operations/read.d.ts.map +1 -1
- package/dist/types/src/skills/{sketch-skill.d.ts → drawing-skill.d.ts} +1 -1
- package/dist/types/src/skills/drawing-skill.d.ts.map +1 -0
- package/dist/types/src/skills/index.d.ts +1 -1
- package/dist/types/src/skills/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +10 -10
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/Drawing.d.ts +50 -0
- package/dist/types/src/types/Drawing.d.ts.map +1 -0
- package/dist/types/src/types/{SketchOperation.d.ts → DrawingOperation.d.ts} +111 -5
- package/dist/types/src/types/DrawingOperation.d.ts.map +1 -0
- package/dist/types/src/types/IllustratorCapabilities.d.ts +4 -4
- package/dist/types/src/types/IllustratorCapabilities.d.ts.map +1 -1
- package/dist/types/src/types/LegacySketch.d.ts +17 -0
- package/dist/types/src/types/LegacySketch.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +18 -18
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +1 -1
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/load-drawing.d.ts +22 -0
- package/dist/types/src/util/load-drawing.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dx.config.ts +1 -0
- package/package.json +21 -19
- package/src/IllustratorPlugin.node.tsx +3 -3
- package/src/IllustratorPlugin.test.ts +32 -0
- package/src/IllustratorPlugin.tsx +15 -3
- package/src/IllustratorPlugin.workerd.tsx +2 -2
- package/src/capabilities/comment-config.ts +2 -2
- package/src/capabilities/create-object.ts +16 -14
- package/src/capabilities/index.ts +1 -0
- package/src/capabilities/migrations.test.ts +142 -0
- package/src/capabilities/migrations.ts +28 -0
- package/src/capabilities/react-surface.ts +36 -0
- package/src/capabilities/skill-definition.ts +2 -2
- package/src/components/{CreateSketchPanel.tsx → CreateDrawingPanel.tsx} +7 -7
- package/src/components/index.ts +1 -1
- package/src/containers/{SketchArticle/SketchArticle.tsx → DrawingArticle/DrawingArticle.tsx} +10 -11
- package/src/containers/{SketchArticle → DrawingArticle}/index.ts +1 -1
- package/src/containers/DrawingCard/DrawingCard.tsx +38 -0
- package/src/containers/{SketchCard → DrawingCard}/index.ts +1 -1
- package/src/containers/index.ts +2 -2
- package/src/model/builder.ts +34 -26
- package/src/model/content.ts +180 -0
- package/src/model/index.ts +2 -0
- package/src/model/mermaid.test.ts +116 -0
- package/src/model/mermaid.ts +299 -0
- package/src/operations/create.ts +6 -6
- package/src/operations/edit.ts +5 -5
- package/src/operations/generate.ts +25 -0
- package/src/operations/index.ts +1 -0
- package/src/operations/read.ts +5 -5
- package/src/skills/{sketch-skill.ts → drawing-skill.ts} +7 -7
- package/src/skills/index.ts +1 -1
- package/src/translations.ts +12 -12
- package/src/types/Drawing.ts +69 -0
- package/src/types/{SketchOperation.ts → DrawingOperation.ts} +28 -9
- package/src/types/IllustratorCapabilities.ts +4 -4
- package/src/types/LegacySketch.ts +25 -0
- package/src/types/index.ts +3 -2
- package/src/types/types.ts +18 -18
- package/src/util/index.ts +1 -1
- package/src/util/load-drawing.ts +48 -0
- package/dist/lib/chunk-load-sketch.mjs +0 -64
- package/dist/lib/chunk-load-sketch.mjs.map +0 -1
- package/dist/types/src/components/CreateSketchPanel.d.ts +0 -15
- package/dist/types/src/components/CreateSketchPanel.d.ts.map +0 -1
- package/dist/types/src/containers/SketchArticle/SketchArticle.d.ts +0 -11
- package/dist/types/src/containers/SketchArticle/SketchArticle.d.ts.map +0 -1
- package/dist/types/src/containers/SketchArticle/index.d.ts +0 -2
- package/dist/types/src/containers/SketchArticle/index.d.ts.map +0 -1
- package/dist/types/src/containers/SketchCard/SketchCard.d.ts +0 -10
- package/dist/types/src/containers/SketchCard/SketchCard.d.ts.map +0 -1
- package/dist/types/src/containers/SketchCard/index.d.ts +0 -2
- package/dist/types/src/containers/SketchCard/index.d.ts.map +0 -1
- package/dist/types/src/skills/sketch-skill.d.ts.map +0 -1
- package/dist/types/src/types/Sketch.d.ts +0 -50
- package/dist/types/src/types/Sketch.d.ts.map +0 -1
- package/dist/types/src/types/SketchOperation.d.ts.map +0 -1
- package/dist/types/src/util/load-sketch.d.ts +0 -37
- package/dist/types/src/util/load-sketch.d.ts.map +0 -1
- package/src/capabilities/react-surface.tsx +0 -37
- package/src/containers/SketchCard/SketchCard.tsx +0 -41
- package/src/types/Sketch.ts +0 -69
- package/src/util/load-sketch.ts +0 -74
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SketchCard.d.ts","sourceRoot":"","sources":["../../../../../src/containers/SketchCard/SketchCard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIvD,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,QAAQ,CAAC;AAE9D,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;mCAG7C,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,eAAe;;;;eAwBhE,UAAU"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/containers/SketchCard/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sketch-skill.d.ts","sourceRoot":"","sources":["../../../../src/skills/sketch-skill.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAY,MAAM,eAAe,CAAC;AA4DhD,QAAA,MAAM,KAAK,EAAE,KAAK,CAAC,UAGlB,CAAC;eAEa,KAAK"}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import * as Schema from 'effect/Schema';
|
|
2
|
-
import { Obj, Ref, Type } from '@dxos/echo';
|
|
3
|
-
declare const Sketch_base: Type.ObjClass<Sketch, {
|
|
4
|
-
readonly name?: string | undefined;
|
|
5
|
-
readonly canvas: import("@dxos/echo/internal").Ref<Obj.Unknown>;
|
|
6
|
-
}, {}>;
|
|
7
|
-
/**
|
|
8
|
-
* Base Sketch object. Renderer-specific canvas data lives in a separate referenced object.
|
|
9
|
-
* Unifies all canvas renderers (tldraw, excalidraw, ...) under one typename so they share
|
|
10
|
-
* graph node, create flow, and shared surface scaffolding.
|
|
11
|
-
*/
|
|
12
|
-
export declare class Sketch extends Sketch_base {
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Variant-narrowed reference to a Sketch.
|
|
16
|
-
*
|
|
17
|
-
* Encodes — at the type level — that the canvas ref points to a specific canvas type.
|
|
18
|
-
* Runtime narrowing is performed by `loadSketch(ref, canvasType)` which validates and
|
|
19
|
-
* returns the resolved Sketch together with its typed canvas.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```ts
|
|
23
|
-
* input: Schema.Struct({
|
|
24
|
-
* sketch: SketchRef(Tldraw.Canvas),
|
|
25
|
-
* }),
|
|
26
|
-
* // handler:
|
|
27
|
-
* const { sketch, canvas } = yield* loadSketch(input.sketch, Tldraw.Canvas);
|
|
28
|
-
* // `canvas` is typed as Tldraw.Canvas.
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
export type SketchRef<_V> = Ref.Ref<Sketch>;
|
|
32
|
-
export declare const SketchRef: <S extends Type.AnyObj>(_canvasType: S) => Schema.Schema<SketchRef<Type.InstanceType<S>>, any, never>;
|
|
33
|
-
/**
|
|
34
|
-
* Build a base `Sketch` object referencing the given canvas ECHO object.
|
|
35
|
-
*
|
|
36
|
-
* The canvas is stored as a `Ref` so the renderer-specific data (e.g. `Tldraw.Canvas`,
|
|
37
|
-
* `Excalidraw.Canvas`) lives as its own ECHO object alongside the Sketch.
|
|
38
|
-
*
|
|
39
|
-
* @param name Optional display name shown in the graph node and Properties form.
|
|
40
|
-
* @param canvas Renderer-specific canvas object.
|
|
41
|
-
* @returns A new `Sketch` object with `canvas` stored as a Ref.
|
|
42
|
-
*/
|
|
43
|
-
export declare const make: ({ name, canvas }: {
|
|
44
|
-
name?: string;
|
|
45
|
-
canvas: Obj.Unknown;
|
|
46
|
-
}) => Sketch;
|
|
47
|
-
/** Type guard for {@link Sketch} objects. */
|
|
48
|
-
export declare const isSketch: (object: unknown) => object is Sketch;
|
|
49
|
-
export {};
|
|
50
|
-
//# sourceMappingURL=Sketch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Sketch.d.ts","sourceRoot":"","sources":["../../../../src/types/Sketch.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAmB,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;;;;;AAI7D;;;;GAIG;AACH,qBAAa,MAAO,SAAQ,WAY3B;CAAG;AAEJ;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,SAAS,CAAC,EAAE,IAAI,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAE5C,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,IAAI,CAAC,MAAM,eAAe,CAAC,KAC1C,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;AAEhF;;;;;;;;;GASG;AACH,eAAO,MAAM,IAAI,qBAAsB;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAA;CAAE,KAAG,MAE/E,CAAC;AAEF,6CAA6C;AAC7C,eAAO,MAAM,QAAQ,WAAY,OAAO,KAAG,MAAM,IAAI,MAAwC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SketchOperation.d.ts","sourceRoot":"","sources":["../../../../src/types/SketchOperation.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAa,MAAM,YAAY,CAAC;AAMjD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAInC,eAAO,MAAM,MAAM;;;;;yCAYjB,CAAC;AAUH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAaf,CAAC;AAEH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yCAkBf,CAAC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import * as Effect from 'effect/Effect';
|
|
2
|
-
import { Capability } from '@dxos/app-framework';
|
|
3
|
-
import { Database, Obj, type Ref, Type } from '@dxos/echo';
|
|
4
|
-
import * as Sketch from '../types/Sketch';
|
|
5
|
-
import { type SketchVariant } from '../types/types';
|
|
6
|
-
export declare class SketchVariantMismatchError extends Error {
|
|
7
|
-
readonly sketchId: string;
|
|
8
|
-
readonly expectedTypename: string;
|
|
9
|
-
readonly actualTypename: string;
|
|
10
|
-
readonly _tag = "SketchVariantMismatchError";
|
|
11
|
-
constructor(sketchId: string, expectedTypename: string, actualTypename: string);
|
|
12
|
-
}
|
|
13
|
-
export declare class UnknownSketchVariantError extends Error {
|
|
14
|
-
readonly typename: string;
|
|
15
|
-
readonly _tag = "UnknownSketchVariantError";
|
|
16
|
-
constructor(typename: string);
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Loads a Sketch from a Ref and resolves its canvas, asserting the canvas matches
|
|
20
|
-
* the expected type. Returns the typed pair.
|
|
21
|
-
*
|
|
22
|
-
* Use in operation handlers that declare `input.sketch: SketchRef<MyCanvas>`.
|
|
23
|
-
*/
|
|
24
|
-
export declare const loadSketch: <S extends Type.AnyObj>(ref: Ref.Ref<Sketch.Sketch>, canvasType: S) => Effect.Effect<{
|
|
25
|
-
sketch: Sketch.Sketch;
|
|
26
|
-
canvas: Type.InstanceType<S>;
|
|
27
|
-
}, Error, Database.Service>;
|
|
28
|
-
/**
|
|
29
|
-
* Loads a Sketch and resolves the variant provider matching its canvas typename.
|
|
30
|
-
* Used by the renderer-agnostic read/edit operations.
|
|
31
|
-
*/
|
|
32
|
-
export declare const resolveVariant: (ref: Ref.Ref<Sketch.Sketch>) => Effect.Effect<{
|
|
33
|
-
sketch: Sketch.Sketch;
|
|
34
|
-
canvas: Obj.Any;
|
|
35
|
-
variant: SketchVariant;
|
|
36
|
-
}, Error, Database.Service | Capability.Service>;
|
|
37
|
-
//# sourceMappingURL=load-sketch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"load-sketch.d.ts","sourceRoot":"","sources":["../../../../src/util/load-sketch.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAG3D,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAEpD,qBAAa,0BAA2B,SAAQ,KAAK;IAGjD,QAAQ,CAAC,QAAQ,EAAE,MAAM;IACzB,QAAQ,CAAC,gBAAgB,EAAE,MAAM;IACjC,QAAQ,CAAC,cAAc,EAAE,MAAM;IAJjC,QAAQ,CAAC,IAAI,gCAAgC;IAC7C,YACW,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,EAGhC;CACF;AAED,qBAAa,yBAA0B,SAAQ,KAAK;IAEtC,QAAQ,CAAC,QAAQ,EAAE,MAAM;IADrC,QAAQ,CAAC,IAAI,+BAA+B;IAC5C,YAAqB,QAAQ,EAAE,MAAM,EAEpC;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,IAAI,CAAC,MAAM,OACzC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,cACf,CAAC,KACZ,MAAM,CAAC,MAAM,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAA;CAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,OAAO,CAU7F,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,cAAc,QACpB,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,KAC1B,MAAM,CAAC,MAAM,CACd;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;IAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC;IAAC,OAAO,EAAE,aAAa,CAAA;CAAE,EAClE,KAAK,EACL,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,CAYnC,CAAC"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2026 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Effect from 'effect/Effect';
|
|
6
|
-
import React from 'react';
|
|
7
|
-
|
|
8
|
-
import { Capabilities, Capability } from '@dxos/app-framework';
|
|
9
|
-
import { Surface } from '@dxos/app-framework/ui';
|
|
10
|
-
import { AppSurface } from '@dxos/app-toolkit/ui';
|
|
11
|
-
|
|
12
|
-
import { SketchArticle, SketchCard } from '#containers';
|
|
13
|
-
|
|
14
|
-
import { Sketch } from '../types';
|
|
15
|
-
|
|
16
|
-
export default Capability.makeModule(() =>
|
|
17
|
-
Effect.succeed(
|
|
18
|
-
Capability.contributes(Capabilities.ReactSurface, [
|
|
19
|
-
Surface.create({
|
|
20
|
-
id: 'sketch',
|
|
21
|
-
filter: AppSurface.oneOf(
|
|
22
|
-
AppSurface.object(AppSurface.Article, Sketch.Sketch),
|
|
23
|
-
AppSurface.object(AppSurface.Section, Sketch.Sketch),
|
|
24
|
-
AppSurface.object(AppSurface.Slide, Sketch.Sketch),
|
|
25
|
-
),
|
|
26
|
-
component: ({ data: { subject, attendableId, extrinsic }, role }) => (
|
|
27
|
-
<SketchArticle role={role} subject={subject} attendableId={attendableId} extrinsic={extrinsic} />
|
|
28
|
-
),
|
|
29
|
-
}),
|
|
30
|
-
Surface.create({
|
|
31
|
-
id: 'sketchCard',
|
|
32
|
-
filter: AppSurface.object(AppSurface.CardContent, Sketch.Sketch),
|
|
33
|
-
component: ({ data, role }) => <SketchCard role={role} subject={data.subject} editable={data.editable} />,
|
|
34
|
-
}),
|
|
35
|
-
]),
|
|
36
|
-
),
|
|
37
|
-
);
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2026 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React from 'react';
|
|
6
|
-
|
|
7
|
-
import { useCapabilities } from '@dxos/app-framework/ui';
|
|
8
|
-
import { type AppSurface } from '@dxos/app-toolkit/ui';
|
|
9
|
-
import { Obj, type Ref } from '@dxos/echo';
|
|
10
|
-
import { useObject } from '@dxos/echo-react';
|
|
11
|
-
|
|
12
|
-
import { IllustratorCapabilities, type Sketch } from '#types';
|
|
13
|
-
|
|
14
|
-
export type SketchCardProps = AppSurface.ObjectCardProps<Sketch.Sketch>;
|
|
15
|
-
|
|
16
|
-
/** Resolves the sketch's canvas and delegates rendering to the matching variant's card. */
|
|
17
|
-
export const SketchCard = ({ role, subject: sketch, editable }: SketchCardProps) => {
|
|
18
|
-
const variants = useCapabilities(IllustratorCapabilities.VariantProvider);
|
|
19
|
-
const ref = sketch.canvas as Ref.Ref<Obj.Unknown>;
|
|
20
|
-
// Subscribe via the snapshot for load/re-render, but hand variants the LIVE object —
|
|
21
|
-
// their store adapters need `Doc.createAccessor`, which rejects snapshots.
|
|
22
|
-
const [snapshot] = useObject(ref);
|
|
23
|
-
const canvas = snapshot ? ref.target : undefined;
|
|
24
|
-
|
|
25
|
-
if (!canvas) {
|
|
26
|
-
return null;
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
const typename = Obj.getTypename(canvas);
|
|
30
|
-
const match = variants.find((variant) => variant.id === typename);
|
|
31
|
-
if (!match?.card) {
|
|
32
|
-
return null;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
const Component = match.card;
|
|
36
|
-
return <Component sketch={sketch} canvas={canvas} role={role} editable={editable} />;
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
SketchCard.displayName = 'SketchCard';
|
|
40
|
-
|
|
41
|
-
export default SketchCard;
|
package/src/types/Sketch.ts
DELETED
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2026 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
// @import-as-namespace
|
|
6
|
-
|
|
7
|
-
import * as Schema from 'effect/Schema';
|
|
8
|
-
|
|
9
|
-
import { Annotation, DXN, Obj, Ref, Type } from '@dxos/echo';
|
|
10
|
-
import { FormInputAnnotation, LabelAnnotation } from '@dxos/echo/Annotation';
|
|
11
|
-
import { CardAnnotation, CollectionItemAnnotation } from '@dxos/schema';
|
|
12
|
-
|
|
13
|
-
/**
|
|
14
|
-
* Base Sketch object. Renderer-specific canvas data lives in a separate referenced object.
|
|
15
|
-
* Unifies all canvas renderers (tldraw, excalidraw, ...) under one typename so they share
|
|
16
|
-
* graph node, create flow, and shared surface scaffolding.
|
|
17
|
-
*/
|
|
18
|
-
export class Sketch extends Type.makeObject<Sketch>(DXN.make('org.dxos.type.sketch', '0.1.0'))(
|
|
19
|
-
Schema.Struct({
|
|
20
|
-
name: Schema.optional(Schema.String),
|
|
21
|
-
canvas: Ref.Ref(Obj.Unknown)
|
|
22
|
-
.annotations({ description: 'Reference to the renderer-specific canvas object.' })
|
|
23
|
-
.pipe(FormInputAnnotation.set(false)),
|
|
24
|
-
}).pipe(
|
|
25
|
-
LabelAnnotation.set(['name']),
|
|
26
|
-
Annotation.IconAnnotation.set({ icon: 'ph--compass-tool--regular', hue: 'indigo' }),
|
|
27
|
-
CardAnnotation.set(true),
|
|
28
|
-
CollectionItemAnnotation.set(true),
|
|
29
|
-
),
|
|
30
|
-
) {}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Variant-narrowed reference to a Sketch.
|
|
34
|
-
*
|
|
35
|
-
* Encodes — at the type level — that the canvas ref points to a specific canvas type.
|
|
36
|
-
* Runtime narrowing is performed by `loadSketch(ref, canvasType)` which validates and
|
|
37
|
-
* returns the resolved Sketch together with its typed canvas.
|
|
38
|
-
*
|
|
39
|
-
* @example
|
|
40
|
-
* ```ts
|
|
41
|
-
* input: Schema.Struct({
|
|
42
|
-
* sketch: SketchRef(Tldraw.Canvas),
|
|
43
|
-
* }),
|
|
44
|
-
* // handler:
|
|
45
|
-
* const { sketch, canvas } = yield* loadSketch(input.sketch, Tldraw.Canvas);
|
|
46
|
-
* // `canvas` is typed as Tldraw.Canvas.
|
|
47
|
-
* ```
|
|
48
|
-
*/
|
|
49
|
-
export type SketchRef<_V> = Ref.Ref<Sketch>;
|
|
50
|
-
|
|
51
|
-
export const SketchRef = <S extends Type.AnyObj>(_canvasType: S) =>
|
|
52
|
-
Ref.Ref(Sketch) as Schema.Schema<SketchRef<Type.InstanceType<S>>, any, never>;
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Build a base `Sketch` object referencing the given canvas ECHO object.
|
|
56
|
-
*
|
|
57
|
-
* The canvas is stored as a `Ref` so the renderer-specific data (e.g. `Tldraw.Canvas`,
|
|
58
|
-
* `Excalidraw.Canvas`) lives as its own ECHO object alongside the Sketch.
|
|
59
|
-
*
|
|
60
|
-
* @param name Optional display name shown in the graph node and Properties form.
|
|
61
|
-
* @param canvas Renderer-specific canvas object.
|
|
62
|
-
* @returns A new `Sketch` object with `canvas` stored as a Ref.
|
|
63
|
-
*/
|
|
64
|
-
export const make = ({ name, canvas }: { name?: string; canvas: Obj.Unknown }): Sketch => {
|
|
65
|
-
return Obj.make(Sketch, { name, canvas: Ref.make(canvas) });
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
/** Type guard for {@link Sketch} objects. */
|
|
69
|
-
export const isSketch = (object: unknown): object is Sketch => Obj.instanceOf(Sketch, object);
|
package/src/util/load-sketch.ts
DELETED
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2026 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Effect from 'effect/Effect';
|
|
6
|
-
|
|
7
|
-
import { Capability } from '@dxos/app-framework';
|
|
8
|
-
import { Database, Obj, type Ref, Type } from '@dxos/echo';
|
|
9
|
-
|
|
10
|
-
import * as IllustratorCapabilities from '../types/IllustratorCapabilities';
|
|
11
|
-
import * as Sketch from '../types/Sketch';
|
|
12
|
-
import { type SketchVariant } from '../types/types';
|
|
13
|
-
|
|
14
|
-
export class SketchVariantMismatchError extends Error {
|
|
15
|
-
readonly _tag = 'SketchVariantMismatchError';
|
|
16
|
-
constructor(
|
|
17
|
-
readonly sketchId: string,
|
|
18
|
-
readonly expectedTypename: string,
|
|
19
|
-
readonly actualTypename: string,
|
|
20
|
-
) {
|
|
21
|
-
super(`Sketch ${sketchId} canvas typename mismatch: expected ${expectedTypename}, got ${actualTypename}.`);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export class UnknownSketchVariantError extends Error {
|
|
26
|
-
readonly _tag = 'UnknownSketchVariantError';
|
|
27
|
-
constructor(readonly typename: string) {
|
|
28
|
-
super(`No sketch variant registered for canvas type: ${typename}.`);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
/**
|
|
33
|
-
* Loads a Sketch from a Ref and resolves its canvas, asserting the canvas matches
|
|
34
|
-
* the expected type. Returns the typed pair.
|
|
35
|
-
*
|
|
36
|
-
* Use in operation handlers that declare `input.sketch: SketchRef<MyCanvas>`.
|
|
37
|
-
*/
|
|
38
|
-
export const loadSketch = <S extends Type.AnyObj>(
|
|
39
|
-
ref: Ref.Ref<Sketch.Sketch>,
|
|
40
|
-
canvasType: S,
|
|
41
|
-
): Effect.Effect<{ sketch: Sketch.Sketch; canvas: Type.InstanceType<S> }, Error, Database.Service> =>
|
|
42
|
-
Effect.gen(function* () {
|
|
43
|
-
const sketch = yield* Database.load(ref);
|
|
44
|
-
const canvas = yield* Database.load(sketch.canvas);
|
|
45
|
-
if (!Obj.instanceOf(canvasType, canvas)) {
|
|
46
|
-
const expected = Type.getTypename(canvasType) ?? 'unknown';
|
|
47
|
-
const actual = Obj.getTypename(canvas as Obj.Any) ?? 'unknown';
|
|
48
|
-
return yield* Effect.fail(new SketchVariantMismatchError(sketch.id, expected, actual));
|
|
49
|
-
}
|
|
50
|
-
return { sketch, canvas: canvas as Type.InstanceType<S> };
|
|
51
|
-
});
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
* Loads a Sketch and resolves the variant provider matching its canvas typename.
|
|
55
|
-
* Used by the renderer-agnostic read/edit operations.
|
|
56
|
-
*/
|
|
57
|
-
export const resolveVariant = (
|
|
58
|
-
ref: Ref.Ref<Sketch.Sketch>,
|
|
59
|
-
): Effect.Effect<
|
|
60
|
-
{ sketch: Sketch.Sketch; canvas: Obj.Any; variant: SketchVariant },
|
|
61
|
-
Error,
|
|
62
|
-
Database.Service | Capability.Service
|
|
63
|
-
> =>
|
|
64
|
-
Effect.gen(function* () {
|
|
65
|
-
const sketch = yield* Database.load(ref);
|
|
66
|
-
const canvas = (yield* Database.load(sketch.canvas)) as Obj.Any;
|
|
67
|
-
const typename = Obj.getTypename(canvas) ?? 'unknown';
|
|
68
|
-
const variants = yield* Capability.getAll(IllustratorCapabilities.VariantProvider);
|
|
69
|
-
const variant = variants.find((entry) => entry.id === typename);
|
|
70
|
-
if (!variant) {
|
|
71
|
-
return yield* Effect.fail(new UnknownSketchVariantError(typename));
|
|
72
|
-
}
|
|
73
|
-
return { sketch, canvas, variant };
|
|
74
|
-
});
|