pub.leaflet.pages.canvas
Schema Diff
+43 -0
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 15 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "pub.leaflet.pages.canvas#background", src: "pub.leaflet.pages.canvas#background", tgt: "pub.leaflet.pages.canvas#background.image", kind: "prop", name: Some("image") }
Non-Breaking Changes (15)
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.pages.canvas#background" }
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.pages.canvas#background.image" }
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.pages.canvas#background.opacity" }
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.pages.canvas#background.width" }
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.pages.canvas.background" }
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.pages.canvas.pattern" }
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.pages.canvas.theme" }
- AddedVertex AddedVertex { vertex_id: "pub.leaflet.theme.page" }
- AddedEdge AddedEdge { src: "pub.leaflet.pages.canvas", tgt: "pub.leaflet.pages.canvas.background", kind: "prop", name: Some("background") }
- AddedEdge AddedEdge { src: "pub.leaflet.pages.canvas", tgt: "pub.leaflet.pages.canvas.pattern", kind: "prop", name: Some("pattern") }
- AddedEdge AddedEdge { src: "pub.leaflet.pages.canvas", tgt: "pub.leaflet.pages.canvas.theme", kind: "prop", name: Some("theme") }
- AddedEdge AddedEdge { src: "pub.leaflet.pages.canvas#background", tgt: "pub.leaflet.pages.canvas#background.opacity", kind: "prop", name: Some("opacity") }
- AddedEdge AddedEdge { src: "pub.leaflet.pages.canvas#background", tgt: "pub.leaflet.pages.canvas#background.width", kind: "prop", name: Some("width") }
- AddedEdge AddedEdge { src: "pub.leaflet.pages.canvas.background", tgt: "pub.leaflet.pages.canvas#background", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "pub.leaflet.pages.canvas.theme", tgt: "pub.leaflet.theme.page", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "pub.leaflet.pages.canvas#background" }AddedVertex { vertex_id: "pub.leaflet.pages.canvas#background.image" }AddedVertex { vertex_id: "pub.leaflet.pages.canvas#background.opacity" }AddedVertex { vertex_id: "pub.leaflet.pages.canvas#background.width" }AddedVertex { vertex_id: "pub.leaflet.pages.canvas.background" }AddedVertex { vertex_id: "pub.leaflet.pages.canvas.pattern" }AddedVertex { vertex_id: "pub.leaflet.pages.canvas.theme" }AddedVertex { vertex_id: "pub.leaflet.theme.page" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "pub.leaflet.pages.canvas#background", src: "pub.leaflet.pages.canvas#background", tgt: "pub.leaflet.pages.canvas#background.image", kind: "prop", name: Some("image") }
- Non-breaking: AddedEdge { src: "pub.leaflet.pages.canvas", tgt: "pub.leaflet.pages.canvas.background", kind: "prop", name: Some("background") }
- Non-breaking: AddedEdge { src: "pub.leaflet.pages.canvas", tgt: "pub.leaflet.pages.canvas.pattern", kind: "prop", name: Some("pattern") }
- Non-breaking: AddedEdge { src: "pub.leaflet.pages.canvas", tgt: "pub.leaflet.pages.canvas.theme", kind: "prop", name: Some("theme") }
- Non-breaking: AddedEdge { src: "pub.leaflet.pages.canvas#background", tgt: "pub.leaflet.pages.canvas#background.opacity", kind: "prop", name: Some("opacity") }
- Non-breaking: AddedEdge { src: "pub.leaflet.pages.canvas#background", tgt: "pub.leaflet.pages.canvas#background.width", kind: "prop", name: Some("width") }
- Non-breaking: AddedEdge { src: "pub.leaflet.pages.canvas.background", tgt: "pub.leaflet.pages.canvas#background", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "pub.leaflet.pages.canvas.theme", tgt: "pub.leaflet.theme.page", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"background": {
5
+
"description": "An image tiled across the canvas, under its guide pattern and blocks.",
6
+
"properties": {
7
+
"image": {
8
+
"accept": [
9
+
"image/*"
10
+
],
11
+
"maxSize": 1000000,
12
+
"type": "blob"
13
+
},
14
+
"opacity": {
15
+
"description": "Opacity of the image as a percentage. Defaults to 100.",
16
+
"maximum": 100,
17
+
"minimum": 0,
18
+
"type": "integer"
19
+
},
20
+
"width": {
21
+
"description": "Width of each tile in canvas px. Defaults to 500.",
22
+
"type": "integer"
23
+
}
24
+
},
25
+
"required": [
26
+
"image"
27
+
],
28
+
"type": "object"
29
+
},
4
30
"block": {
5
31
"properties": {
6
32
"alignment": {
7
33
"description": "Alignment of a single block's content. A linear document's blocks carry their own.",
8
34
"knownValues": [
9
35
"lex:pub.leaflet.pages.linearDocument#textAlignLeft",
10
36
"lex:pub.leaflet.pages.linearDocument#textAlignCenter",
11
37
"lex:pub.leaflet.pages.linearDocument#textAlignRight",
12
38
"lex:pub.leaflet.pages.linearDocument#textAlignJustify"
13
39
],
14
40
"type": "string"
15
41
},
16
42
"block": {
17
43
"description": "A single block, or a linear document: blocks grouped in reading order that are positioned, sized and rotated on the canvas as one.",
18
44
"refs": [
19
45
"pub.leaflet.blocks.iframe",
20
46
"pub.leaflet.blocks.html",
21
47
"pub.leaflet.blocks.text",
22
48
"pub.leaflet.blocks.blockquote",
23
49
"pub.leaflet.blocks.header",
24
50
"pub.leaflet.blocks.image",
25
51
"pub.leaflet.blocks.imageGallery",
26
52
"pub.leaflet.blocks.unorderedList",
27
53
"pub.leaflet.blocks.orderedList",
28
54
"pub.leaflet.blocks.website",
29
55
"pub.leaflet.blocks.math",
30
56
"pub.leaflet.blocks.code",
31
57
"pub.leaflet.blocks.horizontalRule",
32
58
"pub.leaflet.blocks.bskyPost",
33
59
"pub.leaflet.blocks.standardSitePost",
34
60
"pub.leaflet.blocks.standardSitePublication",
35
61
"pub.leaflet.blocks.page",
36
62
"pub.leaflet.blocks.embeddedCanvas",
37
63
"pub.leaflet.blocks.poll",
38
64
"pub.leaflet.blocks.button",
39
65
"pub.leaflet.blocks.postsList",
40
66
"pub.leaflet.blocks.signup",
41
67
"pub.leaflet.blocks.recommendedPubs",
42
68
"pub.leaflet.blocks.membersOnlyDelimiter",
43
69
"pub.leaflet.blocks.postHeader",
44
70
"pub.leaflet.blocks.drawing",
45
71
"pub.leaflet.pages.linearDocument"
46
72
],
47
73
"type": "union"
48
74
},
49
75
"height": {
50
76
"type": "integer"
51
77
},
52
78
"rotation": {
53
79
"description": "The rotation of the block in degrees",
54
80
"type": "integer"
55
81
},
56
82
"stackOrder": {
57
83
"description": "Fractional index ordering this block against its siblings on the z axis. Blocks without one stack below every block with one, ordered by position.",
58
84
"type": "string"
59
85
},
60
86
"width": {
61
87
"type": "integer"
62
88
},
63
89
"x": {
64
90
"type": "integer"
65
91
},
66
92
"y": {
67
93
"type": "integer"
68
94
}
69
95
},
70
96
"required": [
71
97
"block",
72
98
"x",
73
99
"y",
74
100
"width"
75
101
],
76
102
"type": "object"
77
103
},
78
104
"main": {
79
105
"properties": {
106
+
"background": {
107
+
"ref": "#background",
108
+
"type": "ref"
109
+
},
80
110
"blocks": {
81
111
"items": {
82
112
"ref": "#block",
83
113
"type": "ref"
84
114
},
85
115
"type": "array"
86
116
},
87
117
"height": {
88
118
"description": "Fixed canvas height in canvas px; see width.",
89
119
"type": "integer"
90
120
},
91
121
"id": {
92
122
"type": "string"
93
123
},
94
124
"lockViewerZoom": {
95
125
"description": "Viewers cannot zoom the canvas or scroll it sideways: no wheel, pinch, double-tap or zoom controls, and the initial framing (see mobileView) stays. Vertical scrolling is unaffected.",
96
126
"type": "boolean"
97
127
},
98
128
"mobileView": {
99
129
"description": "How a narrow viewport frames the canvas: the whole canvas scaled to fit the width (unconstrained, the default), or a phone-width area anchored to the canvas's left edge or centered on it, shown at up to 1:1.",
100
130
"knownValues": [
101
131
"unconstrained",
102
132
"left",
103
133
"center"
104
134
],
105
135
"type": "string"
106
136
},
137
+
"pattern": {
138
+
"description": "The guide pattern drawn over the canvas's background, under its blocks. Absent, a canvas that grows with its content shows the grid and a fixed-size canvas is plain.",
139
+
"knownValues": [
140
+
"grid",
141
+
"dot",
142
+
"plain"
143
+
],
144
+
"type": "string"
145
+
},
146
+
"theme": {
147
+
"ref": "pub.leaflet.theme.page",
148
+
"type": "ref"
149
+
},
107
150
"width": {
108
151
"description": "Fixed canvas width in canvas px. With height, bounds the canvas: blocks are clipped to the area. Absent, the canvas grows with its content and is 1272px wide, or as wide as the inside of the publication's page (its theme's pageWidth) when it is one of a publication's pages.",
109
152
"type": "integer"
110
153
}
111
154
},
112
155
"required": [
113
156
"blocks"
114
157
],
115
158
"type": "object"
116
159
},
117
160
"position": {
118
161
"properties": {
119
162
"block": {
120
163
"items": {
121
164
"type": "integer"
122
165
},
123
166
"type": "array"
124
167
},
125
168
"offset": {
126
169
"type": "integer"
127
170
}
128
171
},
129
172
"required": [
130
173
"block",
131
174
"offset"
132
175
],
133
176
"type": "object"
134
177
},
135
178
"quote": {
136
179
"properties": {
137
180
"end": {
138
181
"ref": "#position",
139
182
"type": "ref"
140
183
},
141
184
"start": {
142
185
"ref": "#position",
143
186
"type": "ref"
144
187
}
145
188
},
146
189
"required": [
147
190
"start",
148
191
"end"
149
192
],
150
193
"type": "object"
151
194
},
152
195
"textAlignCenter": {
153
196
"type": "token"
154
197
},
155
198
"textAlignLeft": {
156
199
"type": "token"
157
200
},
158
201
"textAlignRight": {
159
202
"type": "token"
160
203
}
161
204
},
162
205
"id": "pub.leaflet.pages.canvas",
163
206
"lexicon": 1
164
207
}