@pixerate/editor 0.74.0 → 0.76.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.
Files changed (62) hide show
  1. package/THIRD_PARTY_NOTICES.md +2 -0
  2. package/dist/agent/index.cjs +28 -28
  3. package/dist/agent/index.js +3 -3
  4. package/dist/animation-editor/index.cjs +322 -273
  5. package/dist/animation-editor/index.cjs.map +1 -1
  6. package/dist/animation-editor/index.d.cts +96 -3
  7. package/dist/animation-editor/index.d.ts +96 -3
  8. package/dist/animation-editor/index.js +138 -89
  9. package/dist/animation-editor/index.js.map +1 -1
  10. package/dist/canvas/index.cjs +26 -26
  11. package/dist/canvas/index.js +2 -2
  12. package/dist/{chunk-3TLL5OID.js → chunk-4JLB2USO.js} +2 -2
  13. package/dist/{chunk-YJLCBA7V.cjs → chunk-7MD7C6XQ.cjs} +87 -87
  14. package/dist/{chunk-YJLCBA7V.cjs.map → chunk-7MD7C6XQ.cjs.map} +1 -1
  15. package/dist/{chunk-OK7T2LHK.js → chunk-GNO5PEMH.js} +2 -2
  16. package/dist/{chunk-EIXXBKUB.js → chunk-IMSX4IVG.js} +7 -7
  17. package/dist/chunk-INZJALPY.js +87 -0
  18. package/dist/chunk-INZJALPY.js.map +1 -0
  19. package/dist/{chunk-MLREO6J3.cjs → chunk-JEYDXRWQ.cjs} +46 -46
  20. package/dist/{chunk-MLREO6J3.cjs.map → chunk-JEYDXRWQ.cjs.map} +1 -1
  21. package/dist/{chunk-PL3MPFPA.cjs → chunk-MXF4DP2C.cjs} +77 -77
  22. package/dist/{chunk-PL3MPFPA.cjs.map → chunk-MXF4DP2C.cjs.map} +1 -1
  23. package/dist/{chunk-T4XWVPJK.cjs → chunk-RKJDBXTY.cjs} +3 -3
  24. package/dist/{chunk-T4XWVPJK.cjs.map → chunk-RKJDBXTY.cjs.map} +1 -1
  25. package/dist/{chunk-HNDSPZ5T.cjs → chunk-ROXFP2LQ.cjs} +4 -4
  26. package/dist/{chunk-HNDSPZ5T.cjs.map → chunk-ROXFP2LQ.cjs.map} +1 -1
  27. package/dist/{chunk-WON34HKM.js → chunk-SVW2UNUC.js} +2 -2
  28. package/dist/{chunk-66IMF6OD.cjs → chunk-TYOAJDFD.cjs} +3 -3
  29. package/dist/{chunk-66IMF6OD.cjs.map → chunk-TYOAJDFD.cjs.map} +1 -1
  30. package/dist/chunk-WAJQKWQU.cjs +87 -0
  31. package/dist/chunk-WAJQKWQU.cjs.map +1 -0
  32. package/dist/{chunk-O2UH7LZE.cjs → chunk-XGD3FSNC.cjs} +239 -239
  33. package/dist/chunk-XGD3FSNC.cjs.map +1 -0
  34. package/dist/{chunk-VWZB6BCY.js → chunk-Y3NW4VJE.js} +2 -2
  35. package/dist/{chunk-GTMJ4Y3S.js → chunk-YCSFS3GK.js} +244 -244
  36. package/dist/{chunk-GTMJ4Y3S.js.map → chunk-YCSFS3GK.js.map} +1 -1
  37. package/dist/{chunk-UKI64KUD.js → chunk-ZQNDSUZO.js} +6 -6
  38. package/dist/extensions/index.cjs +7 -7
  39. package/dist/extensions/index.cjs.map +1 -1
  40. package/dist/extensions/index.js +6 -6
  41. package/dist/index.cjs +35 -35
  42. package/dist/index.cjs.map +1 -1
  43. package/dist/index.js +17 -17
  44. package/dist/serializers/index.cjs +4 -4
  45. package/dist/serializers/index.cjs.map +1 -1
  46. package/dist/serializers/index.js +3 -3
  47. package/dist/vector/index.cjs +532 -532
  48. package/dist/vector/index.js +3 -3
  49. package/dist/video-editor/index.cjs +2219 -0
  50. package/dist/video-editor/index.cjs.map +1 -0
  51. package/dist/video-editor/index.d.cts +985 -0
  52. package/dist/video-editor/index.d.ts +985 -0
  53. package/dist/video-editor/index.js +2219 -0
  54. package/dist/video-editor/index.js.map +1 -0
  55. package/package.json +6 -1
  56. package/dist/chunk-O2UH7LZE.cjs.map +0 -1
  57. /package/dist/{chunk-3TLL5OID.js.map → chunk-4JLB2USO.js.map} +0 -0
  58. /package/dist/{chunk-OK7T2LHK.js.map → chunk-GNO5PEMH.js.map} +0 -0
  59. /package/dist/{chunk-EIXXBKUB.js.map → chunk-IMSX4IVG.js.map} +0 -0
  60. /package/dist/{chunk-WON34HKM.js.map → chunk-SVW2UNUC.js.map} +0 -0
  61. /package/dist/{chunk-VWZB6BCY.js.map → chunk-Y3NW4VJE.js.map} +0 -0
  62. /package/dist/{chunk-UKI64KUD.js.map → chunk-ZQNDSUZO.js.map} +0 -0
@@ -16,7 +16,7 @@ import {
16
16
  solveMonotone,
17
17
  subSegment,
18
18
  windingNumber
19
- } from "./chunk-GTMJ4Y3S.js";
19
+ } from "./chunk-YCSFS3GK.js";
20
20
 
21
21
  // src/canvas/pathops/planar.ts
22
22
  var twin = (h) => h ^ 1;
@@ -734,4 +734,4 @@ export {
734
734
  PATHFINDER_OPERATIONS,
735
735
  pathfinder
736
736
  };
737
- //# sourceMappingURL=chunk-VWZB6BCY.js.map
737
+ //# sourceMappingURL=chunk-Y3NW4VJE.js.map
@@ -1,3 +1,239 @@
1
+ // src/canvas/gradient.ts
2
+ var PIXERATE_BRAND_GRADIENT = {
3
+ type: "linear",
4
+ angle: 135,
5
+ stops: [
6
+ { offset: 0, color: "#8E51FF" },
7
+ { offset: 1, color: "#e12afb" }
8
+ ]
9
+ };
10
+ var CANVAS_GRADIENT_PRESETS = {
11
+ pixerate: PIXERATE_BRAND_GRADIENT,
12
+ sunset: {
13
+ type: "linear",
14
+ angle: 90,
15
+ stops: [
16
+ { offset: 0, color: "#f97316" },
17
+ { offset: 1, color: "#ec4899" }
18
+ ]
19
+ },
20
+ ocean: {
21
+ type: "linear",
22
+ angle: 90,
23
+ stops: [
24
+ { offset: 0, color: "#06b6d4" },
25
+ { offset: 1, color: "#3b82f6" }
26
+ ]
27
+ },
28
+ aurora: {
29
+ type: "linear",
30
+ angle: 90,
31
+ stops: [
32
+ { offset: 0, color: "#10b981" },
33
+ { offset: 1, color: "#6366f1" }
34
+ ]
35
+ },
36
+ neon: {
37
+ type: "linear",
38
+ angle: 90,
39
+ stops: [
40
+ { offset: 0, color: "#a855f7" },
41
+ { offset: 1, color: "#ec4899" }
42
+ ]
43
+ },
44
+ amber: {
45
+ type: "linear",
46
+ angle: 90,
47
+ stops: [
48
+ { offset: 0, color: "#f59e0b" },
49
+ { offset: 1, color: "#ef4444" }
50
+ ]
51
+ },
52
+ cosmic: {
53
+ type: "linear",
54
+ angle: 90,
55
+ stops: [
56
+ { offset: 0, color: "#3b82f6" },
57
+ { offset: 0.5, color: "#8b5cf6" },
58
+ { offset: 1, color: "#ec4899" }
59
+ ]
60
+ }
61
+ };
62
+ function isCanvasGradient(value) {
63
+ if (!value || typeof value !== "object") return false;
64
+ const val = value;
65
+ if (val.type !== "linear" && val.type !== "radial") return false;
66
+ if (!Array.isArray(val.stops)) return false;
67
+ return true;
68
+ }
69
+ function splitCssArgs(str) {
70
+ const parts = [];
71
+ let depth = 0;
72
+ let current = "";
73
+ for (let i = 0; i < str.length; i++) {
74
+ const char = str[i];
75
+ if (char === "(") depth++;
76
+ else if (char === ")") depth = Math.max(0, depth - 1);
77
+ if (char === "," && depth === 0) {
78
+ if (current.trim()) parts.push(current.trim());
79
+ current = "";
80
+ } else {
81
+ current += char;
82
+ }
83
+ }
84
+ if (current.trim()) parts.push(current.trim());
85
+ return parts;
86
+ }
87
+ function parseCssAngle(val) {
88
+ const trimmed = val.trim().toLowerCase();
89
+ if (trimmed.endsWith("deg")) {
90
+ return parseFloat(trimmed);
91
+ }
92
+ if (trimmed.endsWith("turn")) {
93
+ return parseFloat(trimmed) * 360;
94
+ }
95
+ if (trimmed.endsWith("rad")) {
96
+ return parseFloat(trimmed) * 180 / Math.PI;
97
+ }
98
+ if (trimmed.startsWith("to ")) {
99
+ const dir = trimmed.slice(3).trim();
100
+ if (dir === "bottom") return 180;
101
+ if (dir === "top") return 0;
102
+ if (dir === "right") return 90;
103
+ if (dir === "left") return 270;
104
+ if (dir === "bottom right" || dir === "right bottom") return 135;
105
+ if (dir === "bottom left" || dir === "left bottom") return 225;
106
+ if (dir === "top right" || dir === "right top") return 45;
107
+ if (dir === "top left" || dir === "left top") return 315;
108
+ }
109
+ const n = parseFloat(trimmed);
110
+ return Number.isFinite(n) ? n : 180;
111
+ }
112
+ function parseCssGradient(css) {
113
+ const trimmed = css.trim();
114
+ const linearMatch = trimmed.match(/^linear-gradient\s*\((.*)\)$/is);
115
+ if (linearMatch) {
116
+ const rawArgs = splitCssArgs(linearMatch[1]);
117
+ if (rawArgs.length === 0) return null;
118
+ let angle = 180;
119
+ let stopStartIndex = 0;
120
+ const first = rawArgs[0].trim().toLowerCase();
121
+ if (first.endsWith("deg") || first.endsWith("turn") || first.endsWith("rad") || first.startsWith("to ")) {
122
+ angle = parseCssAngle(first);
123
+ stopStartIndex = 1;
124
+ }
125
+ const stopStrings = rawArgs.slice(stopStartIndex);
126
+ if (stopStrings.length === 0) return null;
127
+ const stops = parseStopStrings(stopStrings);
128
+ if (stops.length === 0) return null;
129
+ return {
130
+ type: "linear",
131
+ angle,
132
+ stops
133
+ };
134
+ }
135
+ const radialMatch = trimmed.match(/^radial-gradient\s*\((.*)\)$/is);
136
+ if (radialMatch) {
137
+ const rawArgs = splitCssArgs(radialMatch[1]);
138
+ if (rawArgs.length === 0) return null;
139
+ let stopStartIndex = 0;
140
+ const first = rawArgs[0].trim().toLowerCase();
141
+ if (first.startsWith("circle") || first.startsWith("ellipse") || first.includes("at ")) {
142
+ stopStartIndex = 1;
143
+ }
144
+ const stopStrings = rawArgs.slice(stopStartIndex);
145
+ if (stopStrings.length === 0) return null;
146
+ const stops = parseStopStrings(stopStrings);
147
+ if (stops.length === 0) return null;
148
+ return {
149
+ type: "radial",
150
+ cx: 0.5,
151
+ cy: 0.5,
152
+ r: 0.5,
153
+ stops
154
+ };
155
+ }
156
+ return null;
157
+ }
158
+ function parseStopStrings(stopStrings) {
159
+ const count = stopStrings.length;
160
+ return stopStrings.map((str, idx) => {
161
+ const parts = str.trim().split(/\s+(?=[0-9%])/);
162
+ const color = parts[0];
163
+ let offset = count === 1 ? 0 : idx / (count - 1);
164
+ if (parts.length > 1) {
165
+ const posStr = parts[1].trim();
166
+ if (posStr.endsWith("%")) {
167
+ offset = parseFloat(posStr) / 100;
168
+ } else {
169
+ const val = parseFloat(posStr);
170
+ if (Number.isFinite(val)) offset = val;
171
+ }
172
+ }
173
+ return {
174
+ offset: Math.min(1, Math.max(0, offset)),
175
+ color
176
+ };
177
+ });
178
+ }
179
+ function resolveCanvasGradient(value) {
180
+ if (!value) return null;
181
+ if (isCanvasGradient(value)) return value;
182
+ if (typeof value === "string") {
183
+ const lower = value.trim().toLowerCase();
184
+ if (CANVAS_GRADIENT_PRESETS[lower]) {
185
+ return CANVAS_GRADIENT_PRESETS[lower];
186
+ }
187
+ if (lower.startsWith("linear-gradient") || lower.startsWith("radial-gradient")) {
188
+ return parseCssGradient(value);
189
+ }
190
+ }
191
+ return null;
192
+ }
193
+ function angleToSvgLinearCoords(angleDeg = 180) {
194
+ const rad = (90 - angleDeg) * Math.PI / 180;
195
+ const dx = Math.cos(rad);
196
+ const dy = -Math.sin(rad);
197
+ const half = 0.5;
198
+ return {
199
+ x1: Math.round((half - dx * half) * 1e3) / 1e3,
200
+ y1: Math.round((half - dy * half) * 1e3) / 1e3,
201
+ x2: Math.round((half + dx * half) * 1e3) / 1e3,
202
+ y2: Math.round((half + dy * half) * 1e3) / 1e3
203
+ };
204
+ }
205
+ function gradientToSvgDef(gradient, id) {
206
+ const stops = (gradient.stops ?? []).map((s) => ({
207
+ offset: `${Math.round(s.offset * 1e3) / 10}%`,
208
+ stopColor: s.color,
209
+ stopOpacity: s.opacity
210
+ }));
211
+ if (gradient.type === "radial") {
212
+ return {
213
+ id,
214
+ type: "radial",
215
+ attrs: {
216
+ cx: gradient.cx !== void 0 ? `${gradient.cx * 100}%` : "50%",
217
+ cy: gradient.cy !== void 0 ? `${gradient.cy * 100}%` : "50%",
218
+ r: gradient.r !== void 0 ? `${gradient.r * 100}%` : "50%"
219
+ },
220
+ stops
221
+ };
222
+ }
223
+ const coords = angleToSvgLinearCoords(gradient.angle ?? 180);
224
+ return {
225
+ id,
226
+ type: "linear",
227
+ attrs: {
228
+ x1: `${coords.x1 * 100}%`,
229
+ y1: `${coords.y1 * 100}%`,
230
+ x2: `${coords.x2 * 100}%`,
231
+ y2: `${coords.y2 * 100}%`
232
+ },
233
+ stops
234
+ };
235
+ }
236
+
1
237
  // src/canvas/curveFit.ts
2
238
  function formatNumber(value, precision) {
3
239
  const factor = 10 ** precision;
@@ -343,242 +579,6 @@ function fitFreehandPath(points, options = {}) {
343
579
  return fitPathData(points, { tolerance: 1, ...options, closed: false });
344
580
  }
345
581
 
346
- // src/canvas/gradient.ts
347
- var PIXERATE_BRAND_GRADIENT = {
348
- type: "linear",
349
- angle: 135,
350
- stops: [
351
- { offset: 0, color: "#8E51FF" },
352
- { offset: 1, color: "#e12afb" }
353
- ]
354
- };
355
- var CANVAS_GRADIENT_PRESETS = {
356
- pixerate: PIXERATE_BRAND_GRADIENT,
357
- sunset: {
358
- type: "linear",
359
- angle: 90,
360
- stops: [
361
- { offset: 0, color: "#f97316" },
362
- { offset: 1, color: "#ec4899" }
363
- ]
364
- },
365
- ocean: {
366
- type: "linear",
367
- angle: 90,
368
- stops: [
369
- { offset: 0, color: "#06b6d4" },
370
- { offset: 1, color: "#3b82f6" }
371
- ]
372
- },
373
- aurora: {
374
- type: "linear",
375
- angle: 90,
376
- stops: [
377
- { offset: 0, color: "#10b981" },
378
- { offset: 1, color: "#6366f1" }
379
- ]
380
- },
381
- neon: {
382
- type: "linear",
383
- angle: 90,
384
- stops: [
385
- { offset: 0, color: "#a855f7" },
386
- { offset: 1, color: "#ec4899" }
387
- ]
388
- },
389
- amber: {
390
- type: "linear",
391
- angle: 90,
392
- stops: [
393
- { offset: 0, color: "#f59e0b" },
394
- { offset: 1, color: "#ef4444" }
395
- ]
396
- },
397
- cosmic: {
398
- type: "linear",
399
- angle: 90,
400
- stops: [
401
- { offset: 0, color: "#3b82f6" },
402
- { offset: 0.5, color: "#8b5cf6" },
403
- { offset: 1, color: "#ec4899" }
404
- ]
405
- }
406
- };
407
- function isCanvasGradient(value) {
408
- if (!value || typeof value !== "object") return false;
409
- const val = value;
410
- if (val.type !== "linear" && val.type !== "radial") return false;
411
- if (!Array.isArray(val.stops)) return false;
412
- return true;
413
- }
414
- function splitCssArgs(str) {
415
- const parts = [];
416
- let depth = 0;
417
- let current = "";
418
- for (let i = 0; i < str.length; i++) {
419
- const char = str[i];
420
- if (char === "(") depth++;
421
- else if (char === ")") depth = Math.max(0, depth - 1);
422
- if (char === "," && depth === 0) {
423
- if (current.trim()) parts.push(current.trim());
424
- current = "";
425
- } else {
426
- current += char;
427
- }
428
- }
429
- if (current.trim()) parts.push(current.trim());
430
- return parts;
431
- }
432
- function parseCssAngle(val) {
433
- const trimmed = val.trim().toLowerCase();
434
- if (trimmed.endsWith("deg")) {
435
- return parseFloat(trimmed);
436
- }
437
- if (trimmed.endsWith("turn")) {
438
- return parseFloat(trimmed) * 360;
439
- }
440
- if (trimmed.endsWith("rad")) {
441
- return parseFloat(trimmed) * 180 / Math.PI;
442
- }
443
- if (trimmed.startsWith("to ")) {
444
- const dir = trimmed.slice(3).trim();
445
- if (dir === "bottom") return 180;
446
- if (dir === "top") return 0;
447
- if (dir === "right") return 90;
448
- if (dir === "left") return 270;
449
- if (dir === "bottom right" || dir === "right bottom") return 135;
450
- if (dir === "bottom left" || dir === "left bottom") return 225;
451
- if (dir === "top right" || dir === "right top") return 45;
452
- if (dir === "top left" || dir === "left top") return 315;
453
- }
454
- const n = parseFloat(trimmed);
455
- return Number.isFinite(n) ? n : 180;
456
- }
457
- function parseCssGradient(css) {
458
- const trimmed = css.trim();
459
- const linearMatch = trimmed.match(/^linear-gradient\s*\((.*)\)$/is);
460
- if (linearMatch) {
461
- const rawArgs = splitCssArgs(linearMatch[1]);
462
- if (rawArgs.length === 0) return null;
463
- let angle = 180;
464
- let stopStartIndex = 0;
465
- const first = rawArgs[0].trim().toLowerCase();
466
- if (first.endsWith("deg") || first.endsWith("turn") || first.endsWith("rad") || first.startsWith("to ")) {
467
- angle = parseCssAngle(first);
468
- stopStartIndex = 1;
469
- }
470
- const stopStrings = rawArgs.slice(stopStartIndex);
471
- if (stopStrings.length === 0) return null;
472
- const stops = parseStopStrings(stopStrings);
473
- if (stops.length === 0) return null;
474
- return {
475
- type: "linear",
476
- angle,
477
- stops
478
- };
479
- }
480
- const radialMatch = trimmed.match(/^radial-gradient\s*\((.*)\)$/is);
481
- if (radialMatch) {
482
- const rawArgs = splitCssArgs(radialMatch[1]);
483
- if (rawArgs.length === 0) return null;
484
- let stopStartIndex = 0;
485
- const first = rawArgs[0].trim().toLowerCase();
486
- if (first.startsWith("circle") || first.startsWith("ellipse") || first.includes("at ")) {
487
- stopStartIndex = 1;
488
- }
489
- const stopStrings = rawArgs.slice(stopStartIndex);
490
- if (stopStrings.length === 0) return null;
491
- const stops = parseStopStrings(stopStrings);
492
- if (stops.length === 0) return null;
493
- return {
494
- type: "radial",
495
- cx: 0.5,
496
- cy: 0.5,
497
- r: 0.5,
498
- stops
499
- };
500
- }
501
- return null;
502
- }
503
- function parseStopStrings(stopStrings) {
504
- const count = stopStrings.length;
505
- return stopStrings.map((str, idx) => {
506
- const parts = str.trim().split(/\s+(?=[0-9%])/);
507
- const color = parts[0];
508
- let offset = count === 1 ? 0 : idx / (count - 1);
509
- if (parts.length > 1) {
510
- const posStr = parts[1].trim();
511
- if (posStr.endsWith("%")) {
512
- offset = parseFloat(posStr) / 100;
513
- } else {
514
- const val = parseFloat(posStr);
515
- if (Number.isFinite(val)) offset = val;
516
- }
517
- }
518
- return {
519
- offset: Math.min(1, Math.max(0, offset)),
520
- color
521
- };
522
- });
523
- }
524
- function resolveCanvasGradient(value) {
525
- if (!value) return null;
526
- if (isCanvasGradient(value)) return value;
527
- if (typeof value === "string") {
528
- const lower = value.trim().toLowerCase();
529
- if (CANVAS_GRADIENT_PRESETS[lower]) {
530
- return CANVAS_GRADIENT_PRESETS[lower];
531
- }
532
- if (lower.startsWith("linear-gradient") || lower.startsWith("radial-gradient")) {
533
- return parseCssGradient(value);
534
- }
535
- }
536
- return null;
537
- }
538
- function angleToSvgLinearCoords(angleDeg = 180) {
539
- const rad = (90 - angleDeg) * Math.PI / 180;
540
- const dx = Math.cos(rad);
541
- const dy = -Math.sin(rad);
542
- const half = 0.5;
543
- return {
544
- x1: Math.round((half - dx * half) * 1e3) / 1e3,
545
- y1: Math.round((half - dy * half) * 1e3) / 1e3,
546
- x2: Math.round((half + dx * half) * 1e3) / 1e3,
547
- y2: Math.round((half + dy * half) * 1e3) / 1e3
548
- };
549
- }
550
- function gradientToSvgDef(gradient, id) {
551
- const stops = (gradient.stops ?? []).map((s) => ({
552
- offset: `${Math.round(s.offset * 1e3) / 10}%`,
553
- stopColor: s.color,
554
- stopOpacity: s.opacity
555
- }));
556
- if (gradient.type === "radial") {
557
- return {
558
- id,
559
- type: "radial",
560
- attrs: {
561
- cx: gradient.cx !== void 0 ? `${gradient.cx * 100}%` : "50%",
562
- cy: gradient.cy !== void 0 ? `${gradient.cy * 100}%` : "50%",
563
- r: gradient.r !== void 0 ? `${gradient.r * 100}%` : "50%"
564
- },
565
- stops
566
- };
567
- }
568
- const coords = angleToSvgLinearCoords(gradient.angle ?? 180);
569
- return {
570
- id,
571
- type: "linear",
572
- attrs: {
573
- x1: `${coords.x1 * 100}%`,
574
- y1: `${coords.y1 * 100}%`,
575
- x2: `${coords.x2 * 100}%`,
576
- y2: `${coords.y2 * 100}%`
577
- },
578
- stops
579
- };
580
- }
581
-
582
582
  // src/canvas/shapeGeometry.ts
583
583
  var SHAPE_KINDS = ["rect", "ellipse", "polygon", "star", "path"];
584
584
  function isShapeDescription(value) {
@@ -3805,6 +3805,13 @@ function offsetPath(input, distance, options = {}) {
3805
3805
  }
3806
3806
 
3807
3807
  export {
3808
+ PIXERATE_BRAND_GRADIENT,
3809
+ CANVAS_GRADIENT_PRESETS,
3810
+ isCanvasGradient,
3811
+ parseCssGradient,
3812
+ resolveCanvasGradient,
3813
+ angleToSvgLinearCoords,
3814
+ gradientToSvgDef,
3808
3815
  cubicPointAt,
3809
3816
  fitCubicWithTangents,
3810
3817
  fitCubicRun,
@@ -3813,13 +3820,6 @@ export {
3813
3820
  cubicsToPathData,
3814
3821
  fitPathData,
3815
3822
  fitFreehandPath,
3816
- PIXERATE_BRAND_GRADIENT,
3817
- CANVAS_GRADIENT_PRESETS,
3818
- isCanvasGradient,
3819
- parseCssGradient,
3820
- resolveCanvasGradient,
3821
- angleToSvgLinearCoords,
3822
- gradientToSvgDef,
3823
3823
  SHAPE_KINDS,
3824
3824
  isShapeDescription,
3825
3825
  parseSvgPath,
@@ -3890,4 +3890,4 @@ export {
3890
3890
  outlineStroke,
3891
3891
  offsetPath
3892
3892
  };
3893
- //# sourceMappingURL=chunk-GTMJ4Y3S.js.map
3893
+ //# sourceMappingURL=chunk-YCSFS3GK.js.map