a tool for shared writing and social publishing
1import { LexiconDoc } from "@atproto/lexicon";
2import { BlockUnion } from "../blocks";
3
4export const PubLeafletPagesCanvasDocument: LexiconDoc = {
5 lexicon: 1,
6 id: "pub.leaflet.pages.canvas",
7 defs: {
8 main: {
9 type: "object",
10 required: ["blocks"],
11 properties: {
12 id: { type: "string" },
13 blocks: { type: "array", items: { type: "ref", ref: "#block" } },
14 },
15 },
16 block: {
17 type: "object",
18 required: ["block", "x", "y", "width"],
19 properties: {
20 block: BlockUnion,
21 x: { type: "integer" },
22 y: { type: "integer" },
23 width: { type: "integer" },
24 height: { type: "integer" },
25 rotation: {
26 type: "integer",
27 description: "The rotation of the block in degrees",
28 },
29 },
30 },
31 textAlignLeft: { type: "token" },
32 textAlignCenter: { type: "token" },
33 textAlignRight: { type: "token" },
34 quote: {
35 type: "object",
36 required: ["start", "end"],
37 properties: {
38 start: { type: "ref", ref: "#position" },
39 end: { type: "ref", ref: "#position" },
40 },
41 },
42 position: {
43 type: "object",
44 required: ["block", "offset"],
45 properties: {
46 block: { type: "array", items: { type: "integer" } },
47 offset: { type: "integer" },
48 },
49 },
50 },
51};