@canva/design 2.6.0-beta.1 → 2.6.1-beta.1

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/beta.d.ts CHANGED
@@ -1820,6 +1820,15 @@ export declare namespace DesignEditing {
1820
1820
  | EmbedElement
1821
1821
  | TextElement
1822
1822
  | UnsupportedElement;
1823
+ /**
1824
+ * @public
1825
+ * An element state that can be inserted into a page.
1826
+ */
1827
+ export type InsertableElementState =
1828
+ | RectElementState
1829
+ | ShapeElementState
1830
+ | EmbedElementState
1831
+ | TextElementState;
1823
1832
  /**
1824
1833
  * @public
1825
1834
  * A list of elements.
@@ -1844,6 +1853,10 @@ export declare namespace DesignEditing {
1844
1853
  ref: AbsoluteElement | undefined,
1845
1854
  state: RectElementState,
1846
1855
  ): RectElement;
1856
+ insertBefore(
1857
+ ref: AbsoluteElement | undefined,
1858
+ state: InsertableElementState,
1859
+ ): AbsoluteElement;
1847
1860
  insertAfter(
1848
1861
  ref: AbsoluteElement | undefined,
1849
1862
  state: EmbedElementState,
@@ -1860,6 +1873,10 @@ export declare namespace DesignEditing {
1860
1873
  ref: AbsoluteElement | undefined,
1861
1874
  state: RectElementState,
1862
1875
  ): RectElement;
1876
+ insertAfter(
1877
+ ref: AbsoluteElement | undefined,
1878
+ state: InsertableElementState,
1879
+ ): AbsoluteElement;
1863
1880
  }
1864
1881
 
1865
1882
  /**
@@ -25,4 +25,4 @@ function _export_star(from, to) {
25
25
  var _window___canva___sdkRegistration, _window___canva__;
26
26
  const { canva_sdk } = window;
27
27
  const getDesignMetadata = canva_sdk.design.v2.designInteraction.getDesignMetadata;
28
- (_window___canva__ = window.__canva__) === null || _window___canva__ === void 0 ? void 0 : (_window___canva___sdkRegistration = _window___canva__.sdkRegistration) === null || _window___canva___sdkRegistration === void 0 ? void 0 : _window___canva___sdkRegistration.registerPackageVersion('design', '2.6.0', 'beta');
28
+ (_window___canva__ = window.__canva__) === null || _window___canva__ === void 0 ? void 0 : (_window___canva___sdkRegistration = _window___canva__.sdkRegistration) === null || _window___canva___sdkRegistration === void 0 ? void 0 : _window___canva___sdkRegistration.registerPackageVersion('design', '2.6.1', 'beta');
@@ -112,7 +112,21 @@ class FakeDesignInteractionClient {
112
112
  });
113
113
  }
114
114
  async openDesign(options, callback) {
115
- throw new Error('Not yet implemented');
115
+ await this.delay();
116
+ await callback({
117
+ page: fakePage,
118
+ sync: async ()=>{
119
+ await this.delay();
120
+ },
121
+ helpers: {
122
+ elementStateBuilder: fakeElementStateBuilder,
123
+ group: fakeAsyncOperations.group,
124
+ ungroup: fakeAsyncOperations.ungroup,
125
+ snapshot: ()=>{
126
+ return {};
127
+ }
128
+ }
129
+ });
116
130
  }
117
131
  constructor(delay){
118
132
  this.delay = delay;
@@ -160,3 +174,193 @@ const fakePageDimensions = {
160
174
  width: 800,
161
175
  height: 600
162
176
  };
177
+ const fakeFill = {
178
+ mediaContainer: {
179
+ ref: undefined,
180
+ set (state) {}
181
+ },
182
+ colorContainer: {
183
+ ref: {
184
+ type: 'solid',
185
+ color: '#000000'
186
+ },
187
+ set (state) {}
188
+ }
189
+ };
190
+ const fakeColorContainer = {
191
+ ref: {
192
+ type: 'solid',
193
+ color: '#000000'
194
+ },
195
+ set (state) {}
196
+ };
197
+ const fakeElementList = {
198
+ forEach (callback) {},
199
+ delete (item) {},
200
+ moveAfter (ref, item) {},
201
+ moveBefore (ref, item) {},
202
+ toArray () {
203
+ return [
204
+ fakeRectElement,
205
+ fakeShapeElement
206
+ ];
207
+ },
208
+ count () {
209
+ return 0;
210
+ },
211
+ filter (filter) {},
212
+ insertAfter (ref, state) {
213
+ return fakeRectElement;
214
+ },
215
+ insertBefore (ref, state) {
216
+ return fakeRectElement;
217
+ }
218
+ };
219
+ const fakePage = {
220
+ type: 'absolute',
221
+ locked: false,
222
+ dimensions: fakePageDimensions,
223
+ background: fakeFill,
224
+ elements: fakeElementList
225
+ };
226
+ const fakeElement = {
227
+ top: 0,
228
+ left: 0,
229
+ rotation: 0,
230
+ transparency: 0,
231
+ locked: true,
232
+ width: 100,
233
+ height: 100
234
+ };
235
+ const fakeRectElement = {
236
+ ...fakeElement,
237
+ type: 'rect',
238
+ fill: fakeFill,
239
+ stroke: {
240
+ weight: 10,
241
+ colorContainer: fakeColorContainer
242
+ }
243
+ };
244
+ const fakeShapeElement = {
245
+ ...fakeElement,
246
+ type: 'shape',
247
+ viewBox: {
248
+ top: 0,
249
+ left: 0,
250
+ width: 100,
251
+ height: 100
252
+ },
253
+ paths: {
254
+ count: ()=>0,
255
+ toArray: ()=>[],
256
+ forEach: (callback)=>{},
257
+ filter: (filter)=>[]
258
+ }
259
+ };
260
+ const fakeEmbedElement = {
261
+ ...fakeElement,
262
+ type: 'embed',
263
+ url: 'https://canva.dev/docs/apps/testing/'
264
+ };
265
+ const fakeTextElement = {
266
+ ...fakeElement,
267
+ type: 'text',
268
+ text: fakeRichtextRange
269
+ };
270
+ const fakeElementStateBuilder = {
271
+ createEmbedElement (opts) {
272
+ return fakeEmbedElement;
273
+ },
274
+ createRectElement (opts) {
275
+ return {
276
+ ...fakeRectElement,
277
+ fill: {
278
+ colorContainer: {
279
+ type: 'solid',
280
+ color: '#000000'
281
+ },
282
+ mediaContainer: undefined
283
+ },
284
+ stroke: {
285
+ weight: 10,
286
+ colorContainer: {
287
+ type: 'solid',
288
+ color: '#000000'
289
+ }
290
+ }
291
+ };
292
+ },
293
+ createRichtextRange () {
294
+ return fakeRichtextRange;
295
+ },
296
+ createShapeElement (opts) {
297
+ return {
298
+ ...fakeShapeElement,
299
+ paths: []
300
+ };
301
+ },
302
+ createTextElement (opts) {
303
+ return {
304
+ ...fakeTextElement,
305
+ text: {
306
+ regions: []
307
+ }
308
+ };
309
+ }
310
+ };
311
+ const fakeAsyncOperations = {
312
+ async group () {
313
+ const fakeGroupElement = {
314
+ top: 0,
315
+ left: 0,
316
+ width: 100,
317
+ height: 100,
318
+ locked: false,
319
+ rotation: 0,
320
+ transparency: 0,
321
+ type: 'group',
322
+ contents: {
323
+ count: ()=>0,
324
+ toArray: ()=>[],
325
+ forEach: (callback)=>{},
326
+ filter: (filter)=>[]
327
+ }
328
+ };
329
+ return fakeGroupElement;
330
+ },
331
+ async ungroup () {
332
+ const fakeRectElement = {
333
+ top: 0,
334
+ left: 0,
335
+ width: 100,
336
+ height: 100,
337
+ locked: false,
338
+ rotation: 0,
339
+ transparency: 0,
340
+ type: 'rect',
341
+ fill: {
342
+ mediaContainer: {
343
+ set () {},
344
+ ref: undefined
345
+ },
346
+ colorContainer: {
347
+ set () {},
348
+ ref: undefined
349
+ }
350
+ },
351
+ stroke: {
352
+ weight: 10,
353
+ colorContainer: {
354
+ set () {},
355
+ ref: {
356
+ type: 'solid',
357
+ color: '#000000'
358
+ }
359
+ }
360
+ }
361
+ };
362
+ return [
363
+ fakeRectElement
364
+ ];
365
+ }
366
+ };
@@ -2,4 +2,4 @@ var _window___canva___sdkRegistration, _window___canva__;
2
2
  const { canva_sdk } = window;
3
3
  export const getDesignMetadata = canva_sdk.design.v2.designInteraction.getDesignMetadata;
4
4
  export * from './public';
5
- (_window___canva__ = window.__canva__) === null || _window___canva__ === void 0 ? void 0 : (_window___canva___sdkRegistration = _window___canva__.sdkRegistration) === null || _window___canva___sdkRegistration === void 0 ? void 0 : _window___canva___sdkRegistration.registerPackageVersion('design', '2.6.0', 'beta');
5
+ (_window___canva__ = window.__canva__) === null || _window___canva__ === void 0 ? void 0 : (_window___canva___sdkRegistration = _window___canva__.sdkRegistration) === null || _window___canva___sdkRegistration === void 0 ? void 0 : _window___canva___sdkRegistration.registerPackageVersion('design', '2.6.1', 'beta');
@@ -102,7 +102,21 @@ export class FakeDesignInteractionClient {
102
102
  });
103
103
  }
104
104
  async openDesign(options, callback) {
105
- throw new Error('Not yet implemented');
105
+ await this.delay();
106
+ await callback({
107
+ page: fakePage,
108
+ sync: async ()=>{
109
+ await this.delay();
110
+ },
111
+ helpers: {
112
+ elementStateBuilder: fakeElementStateBuilder,
113
+ group: fakeAsyncOperations.group,
114
+ ungroup: fakeAsyncOperations.ungroup,
115
+ snapshot: ()=>{
116
+ return {};
117
+ }
118
+ }
119
+ });
106
120
  }
107
121
  constructor(delay){
108
122
  this.delay = delay;
@@ -150,3 +164,193 @@ const fakePageDimensions = {
150
164
  width: 800,
151
165
  height: 600
152
166
  };
167
+ const fakeFill = {
168
+ mediaContainer: {
169
+ ref: undefined,
170
+ set (state) {}
171
+ },
172
+ colorContainer: {
173
+ ref: {
174
+ type: 'solid',
175
+ color: '#000000'
176
+ },
177
+ set (state) {}
178
+ }
179
+ };
180
+ const fakeColorContainer = {
181
+ ref: {
182
+ type: 'solid',
183
+ color: '#000000'
184
+ },
185
+ set (state) {}
186
+ };
187
+ const fakeElementList = {
188
+ forEach (callback) {},
189
+ delete (item) {},
190
+ moveAfter (ref, item) {},
191
+ moveBefore (ref, item) {},
192
+ toArray () {
193
+ return [
194
+ fakeRectElement,
195
+ fakeShapeElement
196
+ ];
197
+ },
198
+ count () {
199
+ return 0;
200
+ },
201
+ filter (filter) {},
202
+ insertAfter (ref, state) {
203
+ return fakeRectElement;
204
+ },
205
+ insertBefore (ref, state) {
206
+ return fakeRectElement;
207
+ }
208
+ };
209
+ const fakePage = {
210
+ type: 'absolute',
211
+ locked: false,
212
+ dimensions: fakePageDimensions,
213
+ background: fakeFill,
214
+ elements: fakeElementList
215
+ };
216
+ const fakeElement = {
217
+ top: 0,
218
+ left: 0,
219
+ rotation: 0,
220
+ transparency: 0,
221
+ locked: true,
222
+ width: 100,
223
+ height: 100
224
+ };
225
+ const fakeRectElement = {
226
+ ...fakeElement,
227
+ type: 'rect',
228
+ fill: fakeFill,
229
+ stroke: {
230
+ weight: 10,
231
+ colorContainer: fakeColorContainer
232
+ }
233
+ };
234
+ const fakeShapeElement = {
235
+ ...fakeElement,
236
+ type: 'shape',
237
+ viewBox: {
238
+ top: 0,
239
+ left: 0,
240
+ width: 100,
241
+ height: 100
242
+ },
243
+ paths: {
244
+ count: ()=>0,
245
+ toArray: ()=>[],
246
+ forEach: (callback)=>{},
247
+ filter: (filter)=>[]
248
+ }
249
+ };
250
+ const fakeEmbedElement = {
251
+ ...fakeElement,
252
+ type: 'embed',
253
+ url: 'https://canva.dev/docs/apps/testing/'
254
+ };
255
+ const fakeTextElement = {
256
+ ...fakeElement,
257
+ type: 'text',
258
+ text: fakeRichtextRange
259
+ };
260
+ const fakeElementStateBuilder = {
261
+ createEmbedElement (opts) {
262
+ return fakeEmbedElement;
263
+ },
264
+ createRectElement (opts) {
265
+ return {
266
+ ...fakeRectElement,
267
+ fill: {
268
+ colorContainer: {
269
+ type: 'solid',
270
+ color: '#000000'
271
+ },
272
+ mediaContainer: undefined
273
+ },
274
+ stroke: {
275
+ weight: 10,
276
+ colorContainer: {
277
+ type: 'solid',
278
+ color: '#000000'
279
+ }
280
+ }
281
+ };
282
+ },
283
+ createRichtextRange () {
284
+ return fakeRichtextRange;
285
+ },
286
+ createShapeElement (opts) {
287
+ return {
288
+ ...fakeShapeElement,
289
+ paths: []
290
+ };
291
+ },
292
+ createTextElement (opts) {
293
+ return {
294
+ ...fakeTextElement,
295
+ text: {
296
+ regions: []
297
+ }
298
+ };
299
+ }
300
+ };
301
+ const fakeAsyncOperations = {
302
+ async group () {
303
+ const fakeGroupElement = {
304
+ top: 0,
305
+ left: 0,
306
+ width: 100,
307
+ height: 100,
308
+ locked: false,
309
+ rotation: 0,
310
+ transparency: 0,
311
+ type: 'group',
312
+ contents: {
313
+ count: ()=>0,
314
+ toArray: ()=>[],
315
+ forEach: (callback)=>{},
316
+ filter: (filter)=>[]
317
+ }
318
+ };
319
+ return fakeGroupElement;
320
+ },
321
+ async ungroup () {
322
+ const fakeRectElement = {
323
+ top: 0,
324
+ left: 0,
325
+ width: 100,
326
+ height: 100,
327
+ locked: false,
328
+ rotation: 0,
329
+ transparency: 0,
330
+ type: 'rect',
331
+ fill: {
332
+ mediaContainer: {
333
+ set () {},
334
+ ref: undefined
335
+ },
336
+ colorContainer: {
337
+ set () {},
338
+ ref: undefined
339
+ }
340
+ },
341
+ stroke: {
342
+ weight: 10,
343
+ colorContainer: {
344
+ set () {},
345
+ ref: {
346
+ type: 'solid',
347
+ color: '#000000'
348
+ }
349
+ }
350
+ }
351
+ };
352
+ return [
353
+ fakeRectElement
354
+ ];
355
+ }
356
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canva/design",
3
- "version": "2.6.0-beta.1",
3
+ "version": "2.6.1-beta.1",
4
4
  "description": "The Canva Apps SDK design library",
5
5
  "author": "Canva Pty Ltd.",
6
6
  "license": "SEE LICENSE IN LICENSE.md FILE",