@pixerate/editor 0.119.0 → 0.121.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 (74) hide show
  1. package/dist/animation-editor/index.cjs +54 -54
  2. package/dist/animation-editor/index.d.cts +3 -3
  3. package/dist/animation-editor/index.d.ts +3 -3
  4. package/dist/animation-editor/index.js +2 -2
  5. package/dist/{chunk-UMVW2Q66.js → chunk-4I54JSJ6.js} +2 -2
  6. package/dist/{chunk-N3467VD6.js → chunk-7QN76ESJ.js} +1 -179
  7. package/dist/chunk-7QN76ESJ.js.map +1 -0
  8. package/dist/{chunk-EJVDBITD.cjs → chunk-DCLJNVZS.cjs} +2 -180
  9. package/dist/chunk-DCLJNVZS.cjs.map +1 -0
  10. package/dist/{chunk-KGNUFO4T.cjs → chunk-DFLJHLKA.cjs} +36 -36
  11. package/dist/{chunk-KGNUFO4T.cjs.map → chunk-DFLJHLKA.cjs.map} +1 -1
  12. package/dist/{chunk-KZLQY4CD.js → chunk-E6N5KLMA.js} +12 -10
  13. package/dist/{chunk-KZLQY4CD.js.map → chunk-E6N5KLMA.js.map} +1 -1
  14. package/dist/{chunk-4S2AXNQF.cjs → chunk-GLOOH65Y.cjs} +236 -234
  15. package/dist/chunk-GLOOH65Y.cjs.map +1 -0
  16. package/dist/chunk-GX332W2C.js +181 -0
  17. package/dist/chunk-GX332W2C.js.map +1 -0
  18. package/dist/{chunk-TS5IEUW6.cjs → chunk-K7V27T72.cjs} +178 -3
  19. package/dist/chunk-K7V27T72.cjs.map +1 -0
  20. package/dist/{chunk-WMRIG4XQ.cjs → chunk-LL3RAN55.cjs} +17 -17
  21. package/dist/{chunk-WMRIG4XQ.cjs.map → chunk-LL3RAN55.cjs.map} +1 -1
  22. package/dist/chunk-MUUXNRU4.cjs +181 -0
  23. package/dist/chunk-MUUXNRU4.cjs.map +1 -0
  24. package/dist/{chunk-LI3KTY7K.cjs → chunk-VYW7JBTM.cjs} +72 -5
  25. package/dist/chunk-VYW7JBTM.cjs.map +1 -0
  26. package/dist/{chunk-TDQDMBUR.js → chunk-WAI6ATHC.js} +2 -2
  27. package/dist/{chunk-CSHEI3YT.js → chunk-WORWH5K5.js} +71 -4
  28. package/dist/chunk-WORWH5K5.js.map +1 -0
  29. package/dist/{chunk-YHW26LS2.js → chunk-ZZPGTNXJ.js} +177 -2
  30. package/dist/chunk-ZZPGTNXJ.js.map +1 -0
  31. package/dist/{export-Ds8Ccw0K.d.ts → export-D2D8hb_u.d.ts} +1 -1
  32. package/dist/{export-B_jO2PrH.d.cts → export-fP2hZYjm.d.cts} +1 -1
  33. package/dist/image-editor/index.cjs +789 -769
  34. package/dist/image-editor/index.cjs.map +1 -1
  35. package/dist/image-editor/index.d.cts +4 -4
  36. package/dist/image-editor/index.d.ts +4 -4
  37. package/dist/image-editor/index.js +32 -12
  38. package/dist/image-editor/index.js.map +1 -1
  39. package/dist/paint/index.cjs +22 -2
  40. package/dist/paint/index.cjs.map +1 -1
  41. package/dist/paint/index.d.cts +159 -1
  42. package/dist/paint/index.d.ts +159 -1
  43. package/dist/paint/index.js +21 -1
  44. package/dist/paint-editor/index.cjs +96 -95
  45. package/dist/paint-editor/index.cjs.map +1 -1
  46. package/dist/paint-editor/index.d.cts +2 -2
  47. package/dist/paint-editor/index.d.ts +2 -2
  48. package/dist/paint-editor/index.js +13 -12
  49. package/dist/paint-editor/index.js.map +1 -1
  50. package/dist/raster/index.cjs +5 -4
  51. package/dist/raster/index.cjs.map +1 -1
  52. package/dist/raster/index.js +11 -10
  53. package/dist/{svg-hK0WQc7-.d.cts → svg-S9zzvqaZ.d.cts} +1 -1
  54. package/dist/{svg-CTxrB5xO.d.ts → svg-leZpRsJB.d.ts} +1 -1
  55. package/dist/{types-TrSSh_RB.d.ts → types-BgwxFWvn.d.ts} +23 -9
  56. package/dist/{types-Dq-8qgoo.d.cts → types-DdRTDnza.d.cts} +23 -9
  57. package/dist/vector/index.cjs +887 -883
  58. package/dist/vector/index.cjs.map +1 -1
  59. package/dist/vector/index.d.cts +12 -5
  60. package/dist/vector/index.d.ts +12 -5
  61. package/dist/vector/index.js +14 -10
  62. package/dist/vector/index.js.map +1 -1
  63. package/package.json +1 -1
  64. package/skills/pixerate-vector/SKILL.md +1 -1
  65. package/skills/pixerate-vector/references/commands.md +1 -0
  66. package/dist/chunk-4S2AXNQF.cjs.map +0 -1
  67. package/dist/chunk-CSHEI3YT.js.map +0 -1
  68. package/dist/chunk-EJVDBITD.cjs.map +0 -1
  69. package/dist/chunk-LI3KTY7K.cjs.map +0 -1
  70. package/dist/chunk-N3467VD6.js.map +0 -1
  71. package/dist/chunk-TS5IEUW6.cjs.map +0 -1
  72. package/dist/chunk-YHW26LS2.js.map +0 -1
  73. /package/dist/{chunk-UMVW2Q66.js.map → chunk-4I54JSJ6.js.map} +0 -0
  74. /package/dist/{chunk-TDQDMBUR.js.map → chunk-WAI6ATHC.js.map} +0 -0
@@ -0,0 +1,181 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/geom/homography.ts
2
+ var IDENTITY_HOMOGRAPHY = [1, 0, 0, 0, 1, 0, 0, 0, 1];
3
+ function solve8(rows) {
4
+ const m = rows.map((r) => r.slice());
5
+ for (let col = 0; col < 8; col++) {
6
+ let pivot = col;
7
+ for (let r = col + 1; r < 8; r++) if (Math.abs(m[r][col]) > Math.abs(m[pivot][col])) pivot = r;
8
+ if (!(Math.abs(m[pivot][col]) >= 1e-12)) return null;
9
+ [m[col], m[pivot]] = [m[pivot], m[col]];
10
+ const p = m[col];
11
+ for (let r = 0; r < 8; r++) {
12
+ if (r === col) continue;
13
+ const f = m[r][col] / p[col];
14
+ if (f !== 0) for (let k = 0; k < 9; k++) m[r][k] -= f * p[k];
15
+ }
16
+ }
17
+ const out = [];
18
+ for (let i = 0; i < 8; i++) {
19
+ const v = m[i][8] / m[i][i];
20
+ if (!Number.isFinite(v)) return null;
21
+ out.push(v);
22
+ }
23
+ return out;
24
+ }
25
+ function applyHomography(h, p) {
26
+ const w = h[6] * p.x + h[7] * p.y + h[8];
27
+ if (!Number.isFinite(w) || Math.abs(w) < 1e-12) return null;
28
+ const x = (h[0] * p.x + h[1] * p.y + h[2]) / w;
29
+ const y = (h[3] * p.x + h[4] * p.y + h[5]) / w;
30
+ return Number.isFinite(x) && Number.isFinite(y) ? { x, y } : null;
31
+ }
32
+ function homographyW(h, p) {
33
+ return h[6] * p.x + h[7] * p.y + h[8];
34
+ }
35
+ var finite = (p) => Number.isFinite(p.x) && Number.isFinite(p.y);
36
+ function homographyFromPoints(from, to) {
37
+ if (from.length !== 4 || to.length !== 4 || ![...from, ...to].every(finite)) return null;
38
+ const rows = [];
39
+ for (let i = 0; i < 4; i++) {
40
+ const { x, y } = from[i];
41
+ const { x: u, y: v } = to[i];
42
+ rows.push([x, y, 1, 0, 0, 0, -u * x, -u * y, u]);
43
+ rows.push([0, 0, 0, x, y, 1, -v * x, -v * y, v]);
44
+ }
45
+ const h = solve8(rows);
46
+ if (!h) return null;
47
+ const out = [h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7], 1];
48
+ for (let i = 0; i < 4; i++) {
49
+ const r = applyHomography(out, from[i]);
50
+ const q = to[i];
51
+ const scale = 1 + Math.max(Math.abs(q.x), Math.abs(q.y));
52
+ if (!r || Math.abs(r.x - q.x) > 1e-6 * scale || Math.abs(r.y - q.y) > 1e-6 * scale) return null;
53
+ }
54
+ return out;
55
+ }
56
+ function homographyKeepsQuad(h, quad) {
57
+ const ws = quad.map((p) => h[6] * p.x + h[7] * p.y + h[8]);
58
+ return ws.every((w) => w > 1e-9) || ws.every((w) => w < -1e-9);
59
+ }
60
+ function orderQuad(points) {
61
+ if (points.length !== 4 || !points.every(finite)) return null;
62
+ const cx = points.reduce((s, p) => s + p.x, 0) / 4;
63
+ const cy = points.reduce((s, p) => s + p.y, 0) / 4;
64
+ const q = points.slice().sort((a, b) => Math.atan2(a.y - cy, a.x - cx) - Math.atan2(b.y - cy, b.x - cx));
65
+ let first = 0;
66
+ for (let i = 1; i < 4; i++) if (q[i].x + q[i].y < q[first].x + q[first].y) first = i;
67
+ const ordered = [...q.slice(first), ...q.slice(0, first)];
68
+ const cross = (o, a, b) => (a.x - o.x) * (b.y - o.y) - (a.y - o.y) * (b.x - o.x);
69
+ const turns = ordered.map((_, i) => cross(ordered[i], ordered[(i + 1) % 4], ordered[(i + 2) % 4]));
70
+ const area = turns.reduce((s, t) => s + t, 0) / 2;
71
+ const xs = ordered.map((p) => p.x);
72
+ const ys = ordered.map((p) => p.y);
73
+ const size = Math.max(Math.max(...xs) - Math.min(...xs), Math.max(...ys) - Math.min(...ys));
74
+ const convex = turns.every((t) => t > 1e-9 * size * size);
75
+ return convex && area > 1e-6 * size * size ? ordered : null;
76
+ }
77
+ function multiplyHomographies(a, b) {
78
+ const r = new Array(9);
79
+ for (let i = 0; i < 3; i++) for (let j = 0; j < 3; j++) r[i * 3 + j] = b[i * 3] * a[j] + b[i * 3 + 1] * a[3 + j] + b[i * 3 + 2] * a[6 + j];
80
+ return r;
81
+ }
82
+ function invertHomography(m) {
83
+ const c = [
84
+ m[4] * m[8] - m[5] * m[7],
85
+ m[2] * m[7] - m[1] * m[8],
86
+ m[1] * m[5] - m[2] * m[4],
87
+ m[5] * m[6] - m[3] * m[8],
88
+ m[0] * m[8] - m[2] * m[6],
89
+ m[2] * m[3] - m[0] * m[5],
90
+ m[3] * m[7] - m[4] * m[6],
91
+ m[1] * m[6] - m[0] * m[7],
92
+ m[0] * m[4] - m[1] * m[3]
93
+ ];
94
+ const det = m[0] * c[0] + m[1] * c[3] + m[2] * c[6];
95
+ if (!(Math.abs(det) >= 1e-12) || !Number.isFinite(det)) return null;
96
+ return c.map((v) => v / det);
97
+ }
98
+ function homographyFromAffine(m) {
99
+ return [m[0], m[2], m[4], m[1], m[3], m[5], 0, 0, 1];
100
+ }
101
+ function affineFromHomography(h, eps = 1e-12) {
102
+ if (Math.abs(h[6]) > eps * Math.abs(h[8]) || Math.abs(h[7]) > eps * Math.abs(h[8]) || !h[8]) return null;
103
+ const w = h[8];
104
+ return [h[0] / w, h[3] / w, h[1] / w, h[4] / w, h[2] / w, h[5] / w];
105
+ }
106
+ function isIdentityHomography(h, eps = 1e-9) {
107
+ const w = h[8];
108
+ if (Math.abs(w) < 1e-12) return false;
109
+ const id = IDENTITY_HOMOGRAPHY;
110
+ for (let i = 0; i < 8; i++) if (Math.abs(h[i] / w - id[i]) > eps) return false;
111
+ return true;
112
+ }
113
+ function squareToQuad(q) {
114
+ const [p0, p1, p2, p3] = q;
115
+ const sx = p0.x - p1.x + p2.x - p3.x;
116
+ const sy = p0.y - p1.y + p2.y - p3.y;
117
+ if (Math.abs(sx) < 1e-12 && Math.abs(sy) < 1e-12) {
118
+ return [p1.x - p0.x, p3.x - p0.x, p0.x, p1.y - p0.y, p3.y - p0.y, p0.y, 0, 0, 1];
119
+ }
120
+ const dx1 = p1.x - p2.x;
121
+ const dx2 = p3.x - p2.x;
122
+ const dy1 = p1.y - p2.y;
123
+ const dy2 = p3.y - p2.y;
124
+ const den = dx1 * dy2 - dx2 * dy1;
125
+ if (Math.abs(den) < 1e-12) return null;
126
+ const g = (sx * dy2 - dx2 * sy) / den;
127
+ const h = (dx1 * sy - sx * dy1) / den;
128
+ return [p1.x - p0.x + g * p1.x, p3.x - p0.x + h * p3.x, p0.x, p1.y - p0.y + g * p1.y, p3.y - p0.y + h * p3.y, p0.y, g, h, 1];
129
+ }
130
+ function rectToQuad(r, quad) {
131
+ if (!(r.width > 0 && r.height > 0) || quad.length !== 4 || !quad.every(finite)) return null;
132
+ const toUnit = [1 / r.width, 0, -r.x / r.width, 0, 1 / r.height, -r.y / r.height, 0, 0, 1];
133
+ const sq = squareToQuad(quad);
134
+ if (!sq) return null;
135
+ const h = multiplyHomographies(toUnit, sq);
136
+ return invertHomography(h) ? h : null;
137
+ }
138
+ function boxQuad(r) {
139
+ return [
140
+ { x: r.x, y: r.y },
141
+ { x: r.x + r.width, y: r.y },
142
+ { x: r.x + r.width, y: r.y + r.height },
143
+ { x: r.x, y: r.y + r.height }
144
+ ];
145
+ }
146
+ function homographyFrontSide(h, r) {
147
+ const ahead = boxQuad(r).filter((p) => homographyW(h, p) > 0).length;
148
+ if (ahead >= 3) return 1;
149
+ if (ahead <= 1) return -1;
150
+ return homographyW(h, { x: r.x + r.width / 2, y: r.y + r.height / 2 }) >= 0 ? 1 : -1;
151
+ }
152
+ var OUTPUT_LIMIT = 1 << 20;
153
+ function cornerBounds(corners) {
154
+ const lim = OUTPUT_LIMIT;
155
+ const xs = corners.map((c) => c.x);
156
+ const ys = corners.map((c) => c.y);
157
+ const x0 = Math.floor(Math.max(-lim, Math.min(...xs))) - 1;
158
+ const y0 = Math.floor(Math.max(-lim, Math.min(...ys))) - 1;
159
+ const x1 = Math.ceil(Math.min(lim, Math.max(...xs))) + 1;
160
+ const y1 = Math.ceil(Math.min(lim, Math.max(...ys))) + 1;
161
+ return { x: x0, y: y0, width: x1 - x0, height: y1 - y0 };
162
+ }
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+ exports.solve8 = solve8; exports.applyHomography = applyHomography; exports.homographyW = homographyW; exports.homographyFromPoints = homographyFromPoints; exports.homographyKeepsQuad = homographyKeepsQuad; exports.orderQuad = orderQuad; exports.multiplyHomographies = multiplyHomographies; exports.invertHomography = invertHomography; exports.homographyFromAffine = homographyFromAffine; exports.affineFromHomography = affineFromHomography; exports.isIdentityHomography = isIdentityHomography; exports.rectToQuad = rectToQuad; exports.boxQuad = boxQuad; exports.homographyFrontSide = homographyFrontSide; exports.cornerBounds = cornerBounds;
181
+ //# sourceMappingURL=chunk-MUUXNRU4.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["/home/runner/work/editor/editor/packages/core/dist/chunk-MUUXNRU4.cjs","../src/geom/homography.ts"],"names":[],"mappings":"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","file":"/home/runner/work/editor/editor/packages/core/dist/chunk-MUUXNRU4.cjs","sourcesContent":[null,"/**\n * Perspective (projective) maps between quadrilaterals: Free Distort and Perspective in both the\n * vector and the image editor. Pure maths; degenerate or non-finite input gives `null` instead of\n * NaNs.\n *\n * Ported from ArtCraft (MIT OR Apache-2.0, © ArtCraft Team and contributors; see\n * THIRD_PARTY_NOTICES.md): pdfcraft `crates/geom/src/perspective.rs` (`Homography::from_points`,\n * `Homography::apply`, `solve8`, `order_quad`) and photocraft `crates/algo/src/transform.rs`\n * (`Homography::square_to_quad`, `rect_to_quad`, `inverse`, `mul`, `local_scale`, `front_side`,\n * `warp_output_bounds`, `convex_quad`).\n */\nimport type { AffineMatrix, Box, Homography, Quad, Vec2 } from './types';\n\nexport type { Homography };\n\nexport const IDENTITY_HOMOGRAPHY: Homography = [1, 0, 0, 0, 1, 0, 0, 0, 1];\n\n/**\n * Gaussian elimination with partial pivoting on an 8×8 system (the 9th column of each row is the\n * right-hand side). Null when the system is singular.\n */\nexport function solve8(rows: readonly (readonly number[])[]): number[] | null {\n const m = rows.map((r) => r.slice());\n for (let col = 0; col < 8; col++) {\n let pivot = col;\n for (let r = col + 1; r < 8; r++) if (Math.abs(m[r][col]) > Math.abs(m[pivot][col])) pivot = r;\n if (!(Math.abs(m[pivot][col]) >= 1e-12)) return null;\n [m[col], m[pivot]] = [m[pivot], m[col]];\n const p = m[col];\n for (let r = 0; r < 8; r++) {\n if (r === col) continue;\n const f = m[r][col] / p[col];\n if (f !== 0) for (let k = 0; k < 9; k++) m[r][k] -= f * p[k];\n }\n }\n const out: number[] = [];\n for (let i = 0; i < 8; i++) {\n const v = m[i][8] / m[i][i];\n if (!Number.isFinite(v)) return null;\n out.push(v);\n }\n return out;\n}\n\n/** The image of `p`, or null where the map sends it to infinity. */\nexport function applyHomography(h: Homography, p: Vec2): Vec2 | null {\n const w = h[6] * p.x + h[7] * p.y + h[8];\n if (!Number.isFinite(w) || Math.abs(w) < 1e-12) return null;\n const x = (h[0] * p.x + h[1] * p.y + h[2]) / w;\n const y = (h[3] * p.x + h[4] * p.y + h[5]) / w;\n return Number.isFinite(x) && Number.isFinite(y) ? { x, y } : null;\n}\n\n/** The homogeneous `w` of `p`: its sign is the side of the horizon `p` maps to (0 on it). */\nexport function homographyW(h: Homography, p: Vec2): number {\n return h[6] * p.x + h[7] * p.y + h[8];\n}\n\nconst finite = (p: Vec2) => Number.isFinite(p.x) && Number.isFinite(p.y);\n\n/**\n * The projective map that takes each of `from` to the point at the same index of `to`. Null when\n * three of either set are collinear or a coordinate is not finite.\n */\nexport function homographyFromPoints(from: readonly Vec2[], to: readonly Vec2[]): Homography | null {\n if (from.length !== 4 || to.length !== 4 || ![...from, ...to].every(finite)) return null;\n // x' = (h0 x + h1 y + h2) / (h6 x + h7 y + 1), y' likewise with h3..h5: eight unknowns, two\n // equations per point pair.\n const rows: number[][] = [];\n for (let i = 0; i < 4; i++) {\n const { x, y } = from[i];\n const { x: u, y: v } = to[i];\n rows.push([x, y, 1, 0, 0, 0, -u * x, -u * y, u]);\n rows.push([0, 0, 0, x, y, 1, -v * x, -v * y, v]);\n }\n const h = solve8(rows);\n if (!h) return null;\n const out: Homography = [h[0], h[1], h[2], h[3], h[4], h[5], h[6], h[7], 1];\n // Collinear points can leave a solvable but singular system: check the map really takes the\n // four points where they should go.\n for (let i = 0; i < 4; i++) {\n const r = applyHomography(out, from[i]);\n const q = to[i];\n const scale = 1 + Math.max(Math.abs(q.x), Math.abs(q.y));\n if (!r || Math.abs(r.x - q.x) > 1e-6 * scale || Math.abs(r.y - q.y) > 1e-6 * scale) return null;\n }\n return out;\n}\n\n/**\n * Whether `h` maps the whole convex quad `quad` without sending any of it through infinity (the\n * denominator keeps one sign over it): what a usable distortion needs.\n */\nexport function homographyKeepsQuad(h: Homography, quad: readonly Vec2[]): boolean {\n const ws = quad.map((p) => h[6] * p.x + h[7] * p.y + h[8]);\n return ws.every((w) => w > 1e-9) || ws.every((w) => w < -1e-9);\n}\n\n/**\n * The four corners in reading order for a y-down space: top-left, top-right, bottom-right,\n * bottom-left, whatever order they come in. Null unless they form a convex quadrilateral with a\n * non-negligible area.\n */\nexport function orderQuad(points: readonly Vec2[]): Vec2[] | null {\n if (points.length !== 4 || !points.every(finite)) return null;\n const cx = points.reduce((s, p) => s + p.x, 0) / 4;\n const cy = points.reduce((s, p) => s + p.y, 0) / 4;\n // Ascending angle about the centre is clockwise on screen (y down).\n const q = points.slice().sort((a, b) => Math.atan2(a.y - cy, a.x - cx) - Math.atan2(b.y - cy, b.x - cx));\n let first = 0;\n for (let i = 1; i < 4; i++) if (q[i].x + q[i].y < q[first].x + q[first].y) first = i;\n const ordered = [...q.slice(first), ...q.slice(0, first)];\n const cross = (o: Vec2, a: Vec2, b: Vec2) => (a.x - o.x) * (b.y - o.y) - (a.y - o.y) * (b.x - o.x);\n const turns = ordered.map((_, i) => cross(ordered[i], ordered[(i + 1) % 4], ordered[(i + 2) % 4]));\n const area = turns.reduce((s, t) => s + t, 0) / 2;\n const xs = ordered.map((p) => p.x);\n const ys = ordered.map((p) => p.y);\n const size = Math.max(Math.max(...xs) - Math.min(...xs), Math.max(...ys) - Math.min(...ys));\n const convex = turns.every((t) => t > 1e-9 * size * size);\n return convex && area > 1e-6 * size * size ? ordered : null;\n}\n\n/** `a` then `b` (apply `a` first). */\nexport function multiplyHomographies(a: Homography, b: Homography): Homography {\n // Row-major column-vector maps: (b ∘ a) = B · A.\n const r = new Array<number>(9);\n for (let i = 0; i < 3; i++) for (let j = 0; j < 3; j++) r[i * 3 + j] = b[i * 3] * a[j] + b[i * 3 + 1] * a[3 + j] + b[i * 3 + 2] * a[6 + j];\n return r as unknown as Homography;\n}\n\n/** The inverse map, or null for a singular one. */\nexport function invertHomography(m: Homography): Homography | null {\n const c = [\n m[4] * m[8] - m[5] * m[7],\n m[2] * m[7] - m[1] * m[8],\n m[1] * m[5] - m[2] * m[4],\n m[5] * m[6] - m[3] * m[8],\n m[0] * m[8] - m[2] * m[6],\n m[2] * m[3] - m[0] * m[5],\n m[3] * m[7] - m[4] * m[6],\n m[1] * m[6] - m[0] * m[7],\n m[0] * m[4] - m[1] * m[3],\n ];\n const det = m[0] * c[0] + m[1] * c[3] + m[2] * c[6];\n if (!(Math.abs(det) >= 1e-12) || !Number.isFinite(det)) return null;\n return c.map((v) => v / det) as unknown as Homography;\n}\n\n/** An affine matrix (SVG order) as a homography. */\nexport function homographyFromAffine(m: AffineMatrix): Homography {\n return [m[0], m[2], m[4], m[1], m[3], m[5], 0, 0, 1];\n}\n\n/** The affine matrix of `h` when it is affine (no perspective part), else null. */\nexport function affineFromHomography(h: Homography, eps = 1e-12): AffineMatrix | null {\n if (Math.abs(h[6]) > eps * Math.abs(h[8]) || Math.abs(h[7]) > eps * Math.abs(h[8]) || !h[8]) return null;\n const w = h[8];\n return [h[0] / w, h[3] / w, h[1] / w, h[4] / w, h[2] / w, h[5] / w];\n}\n\nexport function isIdentityHomography(h: Homography, eps = 1e-9): boolean {\n const w = h[8];\n if (Math.abs(w) < 1e-12) return false;\n const id = IDENTITY_HOMOGRAPHY;\n for (let i = 0; i < 8; i++) if (Math.abs(h[i] / w - id[i]) > eps) return false;\n return true;\n}\n\n/** Unit square → quad (corners (0,0), (1,0), (1,1), (0,1) to TL, TR, BR, BL); null when degenerate. */\nfunction squareToQuad(q: readonly Vec2[]): Homography | null {\n const [p0, p1, p2, p3] = q;\n const sx = p0.x - p1.x + p2.x - p3.x;\n const sy = p0.y - p1.y + p2.y - p3.y;\n if (Math.abs(sx) < 1e-12 && Math.abs(sy) < 1e-12) {\n return [p1.x - p0.x, p3.x - p0.x, p0.x, p1.y - p0.y, p3.y - p0.y, p0.y, 0, 0, 1];\n }\n const dx1 = p1.x - p2.x;\n const dx2 = p3.x - p2.x;\n const dy1 = p1.y - p2.y;\n const dy2 = p3.y - p2.y;\n const den = dx1 * dy2 - dx2 * dy1;\n if (Math.abs(den) < 1e-12) return null;\n const g = (sx * dy2 - dx2 * sy) / den;\n const h = (dx1 * sy - sx * dy1) / den;\n return [p1.x - p0.x + g * p1.x, p3.x - p0.x + h * p3.x, p0.x, p1.y - p0.y + g * p1.y, p3.y - p0.y + h * p3.y, p0.y, g, h, 1];\n}\n\n/**\n * The map taking box `r`'s corners onto `quad` (TL, TR, BR, BL), exact for parallelograms (then\n * affine). Null for an empty box, a non-finite or degenerate quad, or a singular result.\n */\nexport function rectToQuad(r: Box, quad: readonly Vec2[]): Homography | null {\n if (!(r.width > 0 && r.height > 0) || quad.length !== 4 || !quad.every(finite)) return null;\n const toUnit: Homography = [1 / r.width, 0, -r.x / r.width, 0, 1 / r.height, -r.y / r.height, 0, 0, 1];\n const sq = squareToQuad(quad);\n if (!sq) return null;\n const h = multiplyHomographies(toUnit, sq);\n return invertHomography(h) ? h : null;\n}\n\n/** Box `r`'s corners as a quad (TL, TR, BR, BL). */\nexport function boxQuad(r: Box): Quad {\n return [\n { x: r.x, y: r.y },\n { x: r.x + r.width, y: r.y },\n { x: r.x + r.width, y: r.y + r.height },\n { x: r.x, y: r.y + r.height },\n ];\n}\n\n/** Approximate linear scale of the map near `p` (square root of the Jacobian determinant). */\nexport function homographyLocalScale(h: Homography, p: Vec2): number {\n const e = 0.5;\n const a = applyHomography(h, { x: p.x - e, y: p.y });\n const b = applyHomography(h, { x: p.x + e, y: p.y });\n const c = applyHomography(h, { x: p.x, y: p.y - e });\n const d = applyHomography(h, { x: p.x, y: p.y + e });\n if (!a || !b || !c || !d) return 0;\n const jx = { x: b.x - a.x, y: b.y - a.y };\n const jy = { x: d.x - c.x, y: d.y - c.y };\n return Math.sqrt(Math.abs(jx.x * jy.y - jx.y * jy.x));\n}\n\n/**\n * The side of the horizon (+1 or −1) most of box `r`'s corners map to (the centre's on a tie). A\n * Distort dragged past the horizon maps the rest of the source to the far side, where it would\n * show as a mirrored copy wrapped round infinity; resampling keeps to this side, as Photoshop does.\n */\nexport function homographyFrontSide(h: Homography, r: Box): 1 | -1 {\n const ahead = boxQuad(r).filter((p) => homographyW(h, p) > 0).length;\n if (ahead >= 3) return 1;\n if (ahead <= 1) return -1;\n return homographyW(h, { x: r.x + r.width / 2, y: r.y + r.height / 2 }) >= 0 ? 1 : -1;\n}\n\n/** Most pixels a side of a warped result may span (±2²⁰), as photocraft clamps. */\nconst OUTPUT_LIMIT = 1 << 20;\n\n/**\n * The integer box a warp of box `r` through `h` fills: the warped corners plus a pixel for filter\n * support, each side clamped to ±2²⁰. Null when a corner maps to infinity or `h` is singular.\n */\nexport function warpOutputBounds(r: Box, h: Homography): Box | null {\n if (!(r.width > 0 && r.height > 0) || !invertHomography(h)) return null;\n const corners = boxQuad(r).map((p) => applyHomography(h, p));\n if (corners.some((c) => !c)) return null;\n return cornerBounds(corners as Vec2[]);\n}\n\n/** The integer box around `corners`, grown by a pixel and clamped to ±2²⁰. */\nexport function cornerBounds(corners: readonly Vec2[]): Box {\n const lim = OUTPUT_LIMIT;\n const xs = corners.map((c) => c.x);\n const ys = corners.map((c) => c.y);\n const x0 = Math.floor(Math.max(-lim, Math.min(...xs))) - 1;\n const y0 = Math.floor(Math.max(-lim, Math.min(...ys))) - 1;\n const x1 = Math.ceil(Math.min(lim, Math.max(...xs))) + 1;\n const y1 = Math.ceil(Math.min(lim, Math.max(...ys))) + 1;\n return { x: x0, y: y0, width: x1 - x0, height: y1 - y0 };\n}\n\n/**\n * Whether `q` (TL, TR, BR, BL) is strictly convex with every corner turn above ~0.06°, wound\n * clockwise on screen (y down), finite and at least 1 px² in area.\n */\nexport function isConvexQuad(q: readonly Vec2[]): boolean {\n if (q.length !== 4 || !q.every(finite)) return false;\n let area2 = 0;\n for (let i = 0; i < 4; i++) {\n const a = q[i];\n const b = q[(i + 1) % 4];\n const c = q[(i + 2) % 4];\n const e1 = { x: b.x - a.x, y: b.y - a.y };\n const e2 = { x: c.x - b.x, y: c.y - b.y };\n const cross = e1.x * e2.y - e1.y * e2.x;\n if (!(cross > 1e-3 * Math.hypot(e1.x, e1.y) * Math.hypot(e2.x, e2.y))) return false;\n area2 += a.x * b.y - b.x * a.y;\n }\n return Number.isFinite(area2) && area2 >= 2;\n}\n"]}
@@ -122,7 +122,7 @@ var VECTOR_TOOLS = [
122
122
  ];
123
123
  var VECTOR_TRANSFORM_HANDLES = ["nw", "n", "ne", "e", "se", "s", "sw", "w", "rotate"];
124
124
  var VECTOR_PATHFINDER_OPERATIONS = ["divide", "trim", "merge", "crop", "outline", "minusBack"];
125
- var VECTOR_EFFECT_TYPES = ["trim", "roundCorners", "puckerBloat", "twist", "zigzag", "wiggle", "offset", "merge", "repeater", "envelope", "contour"];
125
+ var VECTOR_EFFECT_TYPES = ["trim", "roundCorners", "puckerBloat", "twist", "zigzag", "wiggle", "offset", "merge", "repeater", "envelope", "contour", "blockShadow"];
126
126
  var VECTOR_MERGE_MODES = ["merge", "add", "subtract", "intersect", "exclude"];
127
127
  var VECTOR_FILTER_TYPES = ["dropShadow", "innerShadow", "outerGlow", "innerGlow", "layerBlur", "feather"];
128
128
 
@@ -2829,6 +2829,24 @@ function offsetPaths(paths, amount, join = "miter", miterLimit = 4, copies = 1,
2829
2829
  return out;
2830
2830
  });
2831
2831
  }
2832
+ function sweepPath(path, dx, dy, fillRule = "nonzero", tolerance = 0.25) {
2833
+ if (!path.length) return [];
2834
+ if (!Number.isFinite(dx) || !Number.isFinite(dy) || Math.hypot(dx, dy) < 1e-9) return path.slice();
2835
+ const bands = [];
2836
+ for (const contour of _chunkXGD3FSNCcjs.pathToContours.call(void 0, path)) {
2837
+ const ring = _chunkXGD3FSNCcjs.flattenChain.call(void 0, _chunkXGD3FSNCcjs.closeContour.call(void 0, contour, true), Math.max(1e-3, tolerance));
2838
+ for (let i = 0; i < ring.length; i++) {
2839
+ let p = ring[i];
2840
+ let q = ring[(i + 1) % ring.length];
2841
+ const turn2 = (q[0] - p[0]) * dy - (q[1] - p[1]) * dx;
2842
+ if (Math.abs(turn2) < 1e-9) continue;
2843
+ if (turn2 < 0) [p, q] = [q, p];
2844
+ bands.push({ type: "M", x: p[0], y: p[1] }, { type: "L", x: q[0], y: q[1] }, { type: "L", x: q[0] + dx, y: q[1] + dy }, { type: "L", x: p[0] + dx, y: p[1] + dy }, { type: "Z" });
2845
+ }
2846
+ }
2847
+ const moved = _chunkXGD3FSNCcjs.transformBezierPath.call(void 0, path, [1, 0, 0, 1, dx, dy]);
2848
+ return _chunkXGD3FSNCcjs.pathBoolean.call(void 0, "union", [{ path, fillRule }, { path: moved, fillRule }, ...bands.length ? [{ path: bands, fillRule: "nonzero" }] : []]).path;
2849
+ }
2832
2850
  function twistPaths(paths, angle, center) {
2833
2851
  let rmax = 0;
2834
2852
  for (const p of paths) for (const c of p) if (c.type !== "Z") rmax = Math.max(rmax, Math.hypot(c.x - center.x, c.y - center.y));
@@ -6248,7 +6266,8 @@ var VECTOR_EFFECT_DEFAULTS = {
6248
6266
  composite: "below"
6249
6267
  },
6250
6268
  envelope: { style: "arc", bend: 50, horizontal: 0, vertical: 0, orientation: "horizontal", rows: 2, columns: 2, mesh: null },
6251
- contour: { direction: "inside", steps: 4, offset: 6, join: "round", miterLimit: 4, fillColor: "#ffffff", strokeColor: null, acceleration: 0 }
6269
+ contour: { direction: "inside", steps: 4, offset: 6, join: "round", miterLimit: 4, fillColor: "#ffffff", strokeColor: null, acceleration: 0 },
6270
+ blockShadow: { angle: 45, distance: 20, color: "#1e293b", opacity: 100, endOpacity: 100 }
6252
6271
  };
6253
6272
  var VECTOR_EFFECT_LABELS = {
6254
6273
  trim: "Trim Paths",
@@ -6261,7 +6280,8 @@ var VECTOR_EFFECT_LABELS = {
6261
6280
  merge: "Merge Paths",
6262
6281
  repeater: "Repeater",
6263
6282
  envelope: "Envelope",
6264
- contour: "Contour"
6283
+ contour: "Contour",
6284
+ blockShadow: "Block Shadow"
6265
6285
  };
6266
6286
  var VECTOR_EFFECT_PARAM_SPECS = {
6267
6287
  trim: [
@@ -6356,6 +6376,13 @@ var VECTOR_EFFECT_PARAM_SPECS = {
6356
6376
  ]
6357
6377
  }
6358
6378
  ],
6379
+ blockShadow: [
6380
+ { key: "angle", label: "Angle \xB0", kind: "number", min: -360, max: 360, step: 1, slider: true },
6381
+ { key: "distance", label: "Distance", kind: "number", min: 0, max: 2e3, step: 1, slider: true },
6382
+ { key: "color", label: "Colour", kind: "color" },
6383
+ { key: "opacity", label: "Opacity %", kind: "number", min: 0, max: 100, step: 1, slider: true },
6384
+ { key: "endOpacity", label: "End opacity %", kind: "number", min: 0, max: 100, step: 1, slider: true }
6385
+ ],
6359
6386
  repeater: [
6360
6387
  { key: "copies", label: "Copies", kind: "number", min: 0, max: 50, step: 0.1, slider: true },
6361
6388
  { key: "offset", label: "Offset", kind: "number", min: -10, max: 10, step: 0.1, slider: true },
@@ -6636,6 +6663,42 @@ function contourShapes(shapes, c) {
6636
6663
  }
6637
6664
  return out;
6638
6665
  }
6666
+ function blockShadowShapes(shapes, b) {
6667
+ const rad2 = b.angle * Math.PI / 180;
6668
+ const u = { x: Math.cos(rad2), y: Math.sin(rad2) };
6669
+ const distance = Math.max(0, b.distance);
6670
+ const shadows = [];
6671
+ for (const s of shapes) {
6672
+ const color2 = _nullishCoalesce(b.color, () => ( (typeof s.source.fill === "string" && s.source.fill !== "none" ? s.source.fill : "#000000")));
6673
+ const path = sweepPath(s.path, u.x * distance, u.y * distance, s.source.fillRule === "evenodd" ? "evenodd" : "nonzero");
6674
+ const box = _chunkXGD3FSNCcjs.bezierPathBounds.call(void 0, s.path);
6675
+ if (!path.length || !box) continue;
6676
+ let fill = color2;
6677
+ const near3 = Math.min(100, Math.max(0, b.opacity));
6678
+ const far = Math.min(100, Math.max(0, b.endOpacity));
6679
+ const top = Math.max(near3, far);
6680
+ if (near3 !== far && distance > 0) {
6681
+ const along2 = [box.minX * u.x + box.minY * u.y, box.maxX * u.x + box.minY * u.y, box.minX * u.x + box.maxY * u.y, box.maxX * u.x + box.maxY * u.y];
6682
+ const t0 = Math.min(...along2);
6683
+ const t1 = Math.max(...along2) + distance;
6684
+ const c = { x: (box.minX + box.maxX) / 2, y: (box.minY + box.maxY) / 2 };
6685
+ const k = c.x * u.x + c.y * u.y;
6686
+ fill = {
6687
+ type: "linear",
6688
+ units: "userSpaceOnUse",
6689
+ start: { x: c.x + u.x * (t0 - k), y: c.y + u.y * (t0 - k) },
6690
+ end: { x: c.x + u.x * (t1 - k), y: c.y + u.y * (t1 - k) },
6691
+ stops: [
6692
+ { offset: 0, color: color2, opacity: near3 / top },
6693
+ { offset: 1, color: color2, opacity: far / top }
6694
+ ]
6695
+ };
6696
+ }
6697
+ const source = { ...s.source, fill, stroke: null, fills: void 0, strokes: void 0, fillRule: "nonzero" };
6698
+ shadows.push({ source, path, opacity: s.opacity * top / 100, order: [0, ...s.order] });
6699
+ }
6700
+ return [...shadows, ...shapes.map((s) => ({ ...s, order: [1, ...s.order] }))];
6701
+ }
6639
6702
  function applyVectorEffects(shapes, effects) {
6640
6703
  let list = shapes.slice();
6641
6704
  for (const e of _nullishCoalesce(effects, () => ( []))) {
@@ -6679,6 +6742,9 @@ function applyVectorEffects(shapes, effects) {
6679
6742
  case "contour":
6680
6743
  list = contourShapes(list, e.params);
6681
6744
  break;
6745
+ case "blockShadow":
6746
+ list = blockShadowShapes(list, e.params);
6747
+ break;
6682
6748
  case "repeater": {
6683
6749
  const r = e.params;
6684
6750
  const copies = repeatPaths(
@@ -9967,5 +10033,6 @@ function transformVectorSymmetry(s, m) {
9967
10033
 
9968
10034
 
9969
10035
 
9970
- exports.isVectorMeshGradient = isVectorMeshGradient; exports.isVectorFreeformGradient = isVectorFreeformGradient; exports.isVectorShadedPaint = isVectorShadedPaint; exports.vectorRgbaToCss = vectorRgbaToCss; exports.VECTOR_MESH_MAX = VECTOR_MESH_MAX; exports.createVectorMeshGradient = createVectorMeshGradient; exports.vectorMeshPointAt = vectorMeshPointAt; exports.vectorMeshColorAt = vectorMeshColorAt; exports.vectorMeshLines = vectorMeshLines; exports.vectorFreeformSpreadScale = vectorFreeformSpreadScale; exports.vectorFreeformLineSegments = vectorFreeformLineSegments; exports.vectorFreeformField = vectorFreeformField; exports.sampleVectorFreeform = sampleVectorFreeform; exports.autoVectorFreeformGradient = autoVectorFreeformGradient; exports.vectorShadedSvgDefs = vectorShadedSvgDefs; exports.mapVectorShadedPaint = mapVectorShadedPaint; exports.transformVectorShadedPaint = transformVectorShadedPaint; exports.sanitizeVectorShadedPaint = sanitizeVectorShadedPaint; exports.removeVectorFreeformPoint = removeVectorFreeformPoint; exports.nearestVectorShadingPoint = nearestVectorShadingPoint; exports.VECTOR_CORNER_KINDS = VECTOR_CORNER_KINDS; exports.VECTOR_GRADIENT_TYPES = VECTOR_GRADIENT_TYPES; exports.VECTOR_GRADIENT_SPREADS = VECTOR_GRADIENT_SPREADS; exports.VECTOR_GRADIENT_INTERPOLATIONS = VECTOR_GRADIENT_INTERPOLATIONS; exports.VECTOR_STROKE_GRADIENT_MODES = VECTOR_STROKE_GRADIENT_MODES; exports.VECTOR_ARROWHEADS = VECTOR_ARROWHEADS; exports.VECTOR_BLEND_MODES = VECTOR_BLEND_MODES; exports.VECTOR_HORIZONTAL_RESIZING = VECTOR_HORIZONTAL_RESIZING; exports.VECTOR_VERTICAL_RESIZING = VECTOR_VERTICAL_RESIZING; exports.VECTOR_CONNECTOR_SIDES = VECTOR_CONNECTOR_SIDES; exports.VECTOR_CONNECTOR_ROUTES = VECTOR_CONNECTOR_ROUTES; exports.VECTOR_BLEND_SPACINGS = VECTOR_BLEND_SPACINGS; exports.VECTOR_MASK_TYPES = VECTOR_MASK_TYPES; exports.VECTOR_SYMMETRY_MODES = VECTOR_SYMMETRY_MODES; exports.VECTOR_TEXT_ALIGNS = VECTOR_TEXT_ALIGNS; exports.VECTOR_PATH_TEXT_BASELINES = VECTOR_PATH_TEXT_BASELINES; exports.VECTOR_CONSTRAINT_KINDS = VECTOR_CONSTRAINT_KINDS; exports.VECTOR_TOOLS = VECTOR_TOOLS; exports.VECTOR_TRANSFORM_HANDLES = VECTOR_TRANSFORM_HANDLES; exports.VECTOR_PATHFINDER_OPERATIONS = VECTOR_PATHFINDER_OPERATIONS; exports.VECTOR_EFFECT_TYPES = VECTOR_EFFECT_TYPES; exports.VECTOR_MERGE_MODES = VECTOR_MERGE_MODES; exports.VECTOR_FILTER_TYPES = VECTOR_FILTER_TYPES; exports.isVectorGradient = isVectorGradient; exports.parseVectorColor = parseVectorColor; exports.VECTOR_GRADIENT_MIN_STOPS = VECTOR_GRADIENT_MIN_STOPS; exports.gradientMidpointRemap = gradientMidpointRemap; exports.sortedVectorGradientStops = sortedVectorGradientStops; exports.vectorGradientNeedsExpansion = vectorGradientNeedsExpansion; exports.vectorGradientRamp = vectorGradientRamp; exports.sampleVectorGradient = sampleVectorGradient; exports.expandVectorGradientStops = expandVectorGradientStops; exports.samplePlainStops = samplePlainStops; exports.reverseVectorGradient = reverseVectorGradient; exports.insertVectorGradientStop = insertVectorGradientStop; exports.moveVectorGradientStop = moveVectorGradientStop; exports.removeVectorGradientStop = removeVectorGradientStop; exports.vectorGradientMidpointPosition = vectorGradientMidpointPosition; exports.vectorGradientMidpointFromPosition = vectorGradientMidpointFromPosition; exports.spanVectorGradientStops = spanVectorGradientStops; exports.hasExplicitGradientGeometry = hasExplicitGradientGeometry; exports.vectorGradientPoints = vectorGradientPoints; exports.vectorBoxMatrix = vectorBoxMatrix; exports.vectorGradientUnitsMatrix = vectorGradientUnitsMatrix; exports.vectorGradientMatrix = vectorGradientMatrix; exports.vectorGradientFocalParam = vectorGradientFocalParam; exports.vectorGradientParam = vectorGradientParam; exports.applyVectorGradientSpread = applyVectorGradientSpread; exports.vectorGradientTAt = vectorGradientTAt; exports.sampleVectorGradientAt = sampleVectorGradientAt; exports.vectorGradientAspect = vectorGradientAspect; exports.explicitVectorGradient = explicitVectorGradient; exports.pinVectorGradient = pinVectorGradient; exports.transformVectorGradient = transformVectorGradient; exports.mapVectorGradient = mapVectorGradient; exports.mapVectorPaint = mapVectorPaint; exports.transformVectorPaint = transformVectorPaint; exports.isCentredVectorGradient = isCentredVectorGradient; exports.vectorGradientHandles = vectorGradientHandles; exports.moveVectorGradientHandle = moveVectorGradientHandle; exports.setVectorGradientVector = setVectorGradientVector; exports.VECTOR_GRADIENT_MAX_PERIODS = VECTOR_GRADIENT_MAX_PERIODS; exports.periodicVectorGradientStops = periodicVectorGradientStops; exports.expandVectorGradientSpread = expandVectorGradientSpread; exports.vectorGradientArea = vectorGradientArea; exports.patternAttrs = patternAttrs; exports.vectorGradientSvgDefs = vectorGradientSvgDefs; exports.sampleVectorPaintDefAt = sampleVectorPaintDefAt; exports.sanitizeVectorGradient = sanitizeVectorGradient; exports.convertVectorGradient = convertVectorGradient; exports.defaultVectorGradient = defaultVectorGradient; exports.applyVectorGradientPatch = applyVectorGradientPatch; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; exports.multiplyMatrices = multiplyMatrices; exports.translateMatrix = translateMatrix; exports.scaleMatrix = scaleMatrix; exports.rotateMatrix = rotateMatrix; exports.matrixAbout = matrixAbout; exports.skewMatrix = skewMatrix; exports.applyMatrix = applyMatrix; exports.isIdentityMatrix = isIdentityMatrix; exports.invertMatrix = invertMatrix; exports.applyMatrixLinear = applyMatrixLinear; exports.matrixRotation = matrixRotation; exports.decomposeRigid = decomposeRigid; exports.isVectorSymmetryGroup = isVectorSymmetryGroup; exports.vectorSymmetryMatrices = vectorSymmetryMatrices; exports.vectorSymmetryDrawn = vectorSymmetryDrawn; exports.vectorSymmetryAxes = vectorSymmetryAxes; exports.sanitizeVectorSymmetry = sanitizeVectorSymmetry; exports.VECTOR_SYMMETRY_MODE_LABELS = VECTOR_SYMMETRY_MODE_LABELS; exports.transformVectorSymmetry = transformVectorSymmetry; exports.vectorCornerAt = vectorCornerAt; exports.vectorCorners = vectorCorners; exports.cornerSetback = cornerSetback; exports.fitCornerRadius = fitCornerRadius; exports.cornerBisectorPoint = cornerBisectorPoint; exports.cornerRadiusChange = cornerRadiusChange; exports.hasVectorCorners = hasVectorCorners; exports.expandVectorCornersOf = expandVectorCornersOf; exports.expandVectorCorners = expandVectorCorners; exports.setAnchorCorner = setAnchorCorner; exports.nextVectorCornerKind = nextVectorCornerKind; exports.setSubpathCorners = setSubpathCorners; exports.VECTOR_WIDTH_PROFILE_MAX_POINTS = VECTOR_WIDTH_PROFILE_MAX_POINTS; exports.VECTOR_WIDTH_PROFILE_MAX_SCALE = VECTOR_WIDTH_PROFILE_MAX_SCALE; exports.VECTOR_WIDTH_SAME_T = VECTOR_WIDTH_SAME_T; exports.VECTOR_WIDTH_PRESETS = VECTOR_WIDTH_PRESETS; exports.VECTOR_WIDTH_PRESET_IDS = VECTOR_WIDTH_PRESET_IDS; exports.sanitizeWidthProfile = sanitizeWidthProfile; exports.isUniformWidthProfile = isUniformWidthProfile; exports.widthProfileAt = widthProfileAt; exports.widthProfileMaxScale = widthProfileMaxScale; exports.widthProfilePreset = widthProfilePreset; exports.widthProfilePresetId = widthProfilePresetId; exports.reverseWidthProfile = reverseWidthProfile; exports.mirrorWidthProfile = mirrorWidthProfile; exports.insertWidthPoint = insertWidthPoint; exports.setWidthPoint = setWidthPoint; exports.removeWidthPoints = removeWidthPoints; exports.taperWaveFactor = taperWaveFactor; exports.generateWidthProfile = generateWidthProfile; exports.VECTOR_PRESSURE_NOMINAL = VECTOR_PRESSURE_NOMINAL; exports.pressureWidthProfile = pressureWidthProfile; exports.dashIntervals = dashIntervals; exports.variableStrokeRings = variableStrokeRings; exports.variableStrokeOutline = variableStrokeOutline; exports.nearestStrokePosition = nearestStrokePosition; exports.strokePositionPoint = strokePositionPoint; exports.isClosedBezierShape = isClosedBezierShape; exports.effectiveStrokeAlign = effectiveStrokeAlign; exports.strokeWidthProfileOf = strokeWidthProfileOf; exports.hasStrokeExtras = hasStrokeExtras; exports.vectorStrokeLineArea = vectorStrokeLineArea; exports.arrowheadWeight = arrowheadWeight; exports.arrowheadInset = arrowheadInset; exports.arrowheadPath = arrowheadPath; exports.vectorStrokeParts = vectorStrokeParts; exports.vectorStrokeOutlinePath = vectorStrokeOutlinePath; exports.hitTestVectorStroke = hitTestVectorStroke; exports.vectorStrokeReach = vectorStrokeReach; exports.VECTOR_STROKE_SETTING_KEYS = VECTOR_STROKE_SETTING_KEYS; exports.VECTOR_BLEND_MODE_LABELS = VECTOR_BLEND_MODE_LABELS; exports.isVectorBlendMode = isVectorBlendMode; exports.vectorBlendModeCss = vectorBlendModeCss; exports.vectorBlendModeFromCss = vectorBlendModeFromCss; exports.isPlainVectorPaintLayer = isPlainVectorPaintLayer; exports.isDrawnVectorPaintLayer = isDrawnVectorPaintLayer; exports.vectorFills = vectorFills; exports.vectorStrokeSettings = vectorStrokeSettings; exports.vectorStrokes = vectorStrokes; exports.hasVectorPaintStacks = hasVectorPaintStacks; exports.withVectorFills = withVectorFills; exports.withVectorStrokes = withVectorStrokes; exports.normalizeVectorPaintStacks = normalizeVectorPaintStacks; exports.sanitizeVectorFills = sanitizeVectorFills; exports.sanitizeVectorStrokeSettings = sanitizeVectorStrokeSettings; exports.sanitizeVectorStrokes = sanitizeVectorStrokes; exports.vectorPaintLayerNodes = vectorPaintLayerNodes; exports.needsVectorPaintLayers = needsVectorPaintLayers; exports.vectorStrokeStackReach = vectorStrokeStackReach; exports.hitTestVectorPaintLayer = hitTestVectorPaintLayer; exports.hitTestVectorPaintStack = hitTestVectorPaintStack; exports.vectorStacksHaveGradient = vectorStacksHaveGradient; exports.newVectorStrokeLayer = newVectorStrokeLayer; exports.vectorTargetPaint = vectorTargetPaint; exports.withVectorTargetPaint = withVectorTargetPaint; exports.effectPathLength = effectPathLength; exports.effectPathVertexCount = effectPathVertexCount; exports.trimIntervals = trimIntervals; exports.trimPaths = trimPaths; exports.trimPathsIndividually = trimPathsIndividually; exports.puckerBloatPaths = puckerBloatPaths; exports.roundCornerPaths = roundCornerPaths; exports.offsetPaths = offsetPaths; exports.twistPaths = twistPaths; exports.zigzagPaths = zigzagPaths; exports.wigglePaths = wigglePaths; exports.mergePaths = mergePaths; exports.vectorRepeaterCopies = vectorRepeaterCopies; exports.repeatPaths = repeatPaths; exports.pathsCenter = pathsCenter; exports.mapVectorPoints = mapVectorPoints; exports.mapVectorSubpaths = mapVectorSubpaths; exports.mapBezierPath = mapBezierPath; exports.isVectorFrame = isVectorFrame; exports.vectorFrameRectPath = vectorFrameRectPath; exports.vectorFrameDrawn = vectorFrameDrawn; exports.vectorFrameContains = vectorFrameContains; exports.vectorFrameChildMatrix = vectorFrameChildMatrix; exports.sanitizeVectorFrame = sanitizeVectorFrame; exports.sanitizeVectorResizing = sanitizeVectorResizing; exports.VECTOR_HORIZONTAL_RESIZING_LABELS = VECTOR_HORIZONTAL_RESIZING_LABELS; exports.VECTOR_VERTICAL_RESIZING_LABELS = VECTOR_VERTICAL_RESIZING_LABELS; exports.vectorBoundsInside = vectorBoundsInside; exports.vectorArtboards = vectorArtboards; exports.vectorFrameDocument = vectorFrameDocument; exports.getVectorFramePanel = getVectorFramePanel; exports.splitIntoFaces = splitIntoFaces; exports.knifePath = knifePath; exports.eraserRegion = eraserRegion; exports.eraseFromFill = eraseFromFill; exports.eraseFromOutline = eraseFromOutline; exports.polylineBounds = polylineBounds; exports.simplifyPolyline = simplifyPolyline; exports.VECTOR_FILTER_DEFAULTS = VECTOR_FILTER_DEFAULTS; exports.VECTOR_FILTER_LABELS = VECTOR_FILTER_LABELS; exports.VECTOR_FILTER_PARAM_SPECS = VECTOR_FILTER_PARAM_SPECS; exports.isVectorFilterType = isVectorFilterType; exports.normalizeVectorFilterParams = normalizeVectorFilterParams; exports.vectorFilterParamKeys = vectorFilterParamKeys; exports.createVectorFilter = createVectorFilter; exports.sanitizeVectorFilters = sanitizeVectorFilters; exports.activeVectorFilters = activeVectorFilters; exports.vectorFilterReach = vectorFilterReach; exports.vectorFilterSvg = vectorFilterSvg; exports.vectorFilterMarkup = vectorFilterMarkup; exports.VECTOR_FILTER_MENU = VECTOR_FILTER_MENU; exports.isVectorMaskType = isVectorMaskType; exports.sanitizeVectorMask = sanitizeVectorMask; exports.isVectorMaskGroup = isVectorMaskGroup; exports.isVectorMaskActive = isVectorMaskActive; exports.vectorMaskSource = vectorMaskSource; exports.vectorMaskContents = vectorMaskContents; exports.vectorMaskOwner = vectorMaskOwner; exports.vectorMaskSummary = vectorMaskSummary; exports.vectorMaskRegionShapes = vectorMaskRegionShapes; exports.vectorMaskRegion = vectorMaskRegion; exports.vectorMaskRegionPath = vectorMaskRegionPath; exports.vectorMaskContains = vectorMaskContains; exports.vectorMaskedShapes = vectorMaskedShapes; exports.vectorMaskedGeometry = vectorMaskedGeometry; exports.vectorMaskedLocalBounds = vectorMaskedLocalBounds; exports.vectorMaskContentBounds = vectorMaskContentBounds; exports.vectorMaskRenderData = vectorMaskRenderData; exports.DEFAULT_TEXT_STYLE = DEFAULT_TEXT_STYLE; exports.DEFAULT_AUTO_LEADING = DEFAULT_AUTO_LEADING; exports.fitRuns = fitRuns; exports.styleAt = styleAt; exports.restyleRange = restyleRange; exports.spliceRuns = spliceRuns; exports.paragraphRanges = paragraphRanges; exports.fitParagraphRuns = fitParagraphRuns; exports.fontOf = fontOf; exports.isTextSpace = isTextSpace; exports.layoutText = layoutText; exports.textIndexAt = textIndexAt; exports.caretAt = caretAt; exports.textDecorations = textDecorations; exports.textRectPath = textRectPath; exports.textFragmentOutline = textFragmentOutline; exports.cssFontFamily = cssFontFamily; exports.cssFont = cssFont; exports.createCanvasTextShaper = createCanvasTextShaper; exports.createOutlineTextShaper = createOutlineTextShaper; exports.createMetricTextShaper = createMetricTextShaper; exports.setVectorTextShaper = setVectorTextShaper; exports.getVectorTextShaper = getVectorTextShaper; exports.vectorTextShaperGeneration = vectorTextShaperGeneration; exports.vectorTextHasOutlines = vectorTextHasOutlines; exports.vectorTextFamilies = vectorTextFamilies; exports.DEFAULT_VECTOR_FONT = DEFAULT_VECTOR_FONT; exports.VECTOR_CHARACTER_STYLE_KEYS = VECTOR_CHARACTER_STYLE_KEYS; exports.VECTOR_PARAGRAPH_STYLE_KEYS = VECTOR_PARAGRAPH_STYLE_KEYS; exports.VectorTextError = VectorTextError; exports.fitVectorTextRuns = fitVectorTextRuns; exports.vectorTextRuns = vectorTextRuns; exports.vectorTextStyleAt = vectorTextStyleAt; exports.measureVectorPath = measureVectorPath; exports.vectorPathAt = vectorPathAt; exports.vectorPathTextPositions = vectorPathTextPositions; exports.layoutVectorText = layoutVectorText; exports.glyphBox = glyphBox; exports.vectorTextPaths = vectorTextPaths; exports.vectorTextPaintSource = vectorTextPaintSource; exports.vectorTextCaret = vectorTextCaret; exports.vectorTextIndexAt = vectorTextIndexAt; exports.vectorTextSelectionQuads = vectorTextSelectionQuads; exports.patchVectorCharacterStyle = patchVectorCharacterStyle; exports.patchVectorParagraphStyle = patchVectorParagraphStyle; exports.sanitizeVectorTextFrame = sanitizeVectorTextFrame; exports.normalizeVectorTextRuns = normalizeVectorTextRuns; exports.sanitizeVectorTextFields = sanitizeVectorTextFields; exports.vectorTextRange = vectorTextRange; exports.replaceVectorText = replaceVectorText; exports.styleVectorText = styleVectorText; exports.bakeVectorTextGeometry = bakeVectorTextGeometry; exports.vectorTextName = vectorTextName; exports.pathTextFrameFromBezier = pathTextFrameFromBezier; exports.vectorTextBoxOutline = vectorTextBoxOutline; exports.vectorTextSpans = vectorTextSpans; exports.vectorTextGeometryNode = vectorTextGeometryNode; exports.vectorTextSpanSvg = vectorTextSpanSvg; exports.VECTOR_SYMBOL_MAX_DEPTH = VECTOR_SYMBOL_MAX_DEPTH; exports.vectorSymbolsUsedIn = vectorSymbolsUsedIn; exports.vectorSymbolUses = vectorSymbolUses; exports.resolveVectorSymbols = resolveVectorSymbols; exports.stripVectorSymbolArt = stripVectorSymbolArt; exports.scaleVectorStrokeWidths = scaleVectorStrokeWidths; exports.tintVectorNode = tintVectorNode; exports.prefixVectorIds = prefixVectorIds; exports.vectorInstanceGroup = vectorInstanceGroup; exports.composeVectorMatrices = composeVectorMatrices; exports.WARP_STYLES = WARP_STYLES; exports.WARP_STYLE_LABELS = WARP_STYLE_LABELS; exports.warpPresetGrid = warpPresetGrid; exports.warpPresetMesh = warpPresetMesh; exports.warpMeshColumns = warpMeshColumns; exports.warpMeshRows = warpMeshRows; exports.isValidWarpMesh = isValidWarpMesh; exports.fitWarpMesh = fitWarpMesh; exports.identityWarpMesh = identityWarpMesh; exports.evalWarpMesh = evalWarpMesh; exports.splitWarpMeshU = splitWarpMeshU; exports.splitWarpMeshV = splitWarpMeshV; exports.removeWarpMeshSplitU = removeWarpMeshSplitU; exports.removeWarpMeshSplitV = removeWarpMeshSplitV; exports.mapWarpMeshPoints = mapWarpMeshPoints; exports.resizeWarpMesh = resizeWarpMesh; exports.warpMeshControlBounds = warpMeshControlBounds; exports.warpMeshParamAt = warpMeshParamAt; exports.dragWarpMeshPoint = dragWarpMeshPoint; exports.pullWarpMesh = pullWarpMesh; exports.warpMeshEditPoints = warpMeshEditPoints; exports.warpMeshGridCurves = warpMeshGridCurves; exports.vectorMeshFromOutline = vectorMeshFromOutline; exports.vectorMeshOutline = vectorMeshOutline; exports.VECTOR_EFFECT_DEFAULTS = VECTOR_EFFECT_DEFAULTS; exports.VECTOR_EFFECT_LABELS = VECTOR_EFFECT_LABELS; exports.VECTOR_EFFECT_PARAM_SPECS = VECTOR_EFFECT_PARAM_SPECS; exports.vectorEnvelopeMesh = vectorEnvelopeMesh; exports.vectorEnvelopeMap = vectorEnvelopeMap; exports.normalizeVectorEffectParams = normalizeVectorEffectParams; exports.createVectorEffect = createVectorEffect; exports.activeVectorEffects = activeVectorEffects; exports.hasOwnVectorAppearance = hasOwnVectorAppearance; exports.hasVectorAppearance = hasVectorAppearance; exports.isVectorLiveBoolean = isVectorLiveBoolean; exports.vectorOperandOperation = vectorOperandOperation; exports.vectorLiveBooleanSteps = vectorLiveBooleanSteps; exports.clearVectorLiveBooleanCache = clearVectorLiveBooleanCache; exports.foldVectorBooleanOperands = foldVectorBooleanOperands; exports.applyVectorEffects = applyVectorEffects; exports.vectorInstanceDrawn = vectorInstanceDrawn; exports.vectorChildAppearanceShapes = vectorChildAppearanceShapes; exports.vectorEffectInputPaths = vectorEffectInputPaths; exports.vectorEffectInputBounds = vectorEffectInputBounds; exports.vectorNodeEnvelope = vectorNodeEnvelope; exports.vectorEnvelopeFrame = vectorEnvelopeFrame; exports.vectorAppearanceShapes = vectorAppearanceShapes; exports.vectorAppearanceOutline = vectorAppearanceOutline; exports.vectorAppearanceNodes = vectorAppearanceNodes; exports.expandVectorAppearance = expandVectorAppearance; exports.expandVectorAppearances = expandVectorAppearances; exports.sanitizeVectorEffects = sanitizeVectorEffects; exports.transformVectorEffects = transformVectorEffects; exports.vectorEnteredGroups = vectorEnteredGroups; exports.isVectorConnector = isVectorConnector; exports.vectorConnectionSites = vectorConnectionSites; exports.nearestVectorConnectionSite = nearestVectorConnectionSite; exports.vectorConnectorWorldAnchors = vectorConnectorWorldAnchors; exports.routeVectorConnector = routeVectorConnector; exports.rerouteVectorConnectors = rerouteVectorConnectors; exports.sanitizeVectorConnector = sanitizeVectorConnector; exports.VECTOR_CONNECTOR_ROUTE_LABELS = VECTOR_CONNECTOR_ROUTE_LABELS; exports.VECTOR_CONNECTOR_SIDE_LABELS = VECTOR_CONNECTOR_SIDE_LABELS; exports.getVectorConnectorPanel = getVectorConnectorPanel; exports.vectorConnectorTargetAt = vectorConnectorTargetAt; exports.vectorStrokeGradientDefs = vectorStrokeGradientDefs; exports.vectorCornersAttribute = vectorCornersAttribute; exports.applyVectorCornersAttribute = applyVectorCornersAttribute; exports.vectorPathLocalBounds = vectorPathLocalBounds; exports.vectorPaintToSvg = vectorPaintToSvg; exports.vectorStrokeSvgParts = vectorStrokeSvgParts; exports.vectorNodeLocalPaintBounds = vectorNodeLocalPaintBounds; exports.vectorNodeFilterSvg = vectorNodeFilterSvg; exports.widthProfileToAttribute = widthProfileToAttribute; exports.widthProfileFromAttribute = widthProfileFromAttribute; exports.vectorDocumentToSvg = vectorDocumentToSvg; exports.parseSvgTransform = parseSvgTransform; exports.parseVectorSvg = parseVectorSvg; exports.VECTOR_SPATIAL_MIN = VECTOR_SPATIAL_MIN; exports.VectorRTree = VectorRTree; exports.vectorNodePaintBox = vectorNodePaintBox; exports.vectorSpatialIndex = vectorSpatialIndex; exports.vectorNodesNear = vectorNodesNear; exports.cloneAnchor = cloneAnchor; exports.cloneSubpath = cloneSubpath; exports.cloneVectorNode = cloneVectorNode; exports.cloneVectorDocument = cloneVectorDocument; exports.hasPaint = hasPaint; exports.subpathSegmentCount = subpathSegmentCount; exports.subpathSegment = subpathSegment; exports.subpathsToBezier = subpathsToBezier; exports.vectorNodeToBezier = vectorNodeToBezier; exports.vectorPathData = vectorPathData; exports.inferAnchorType = inferAnchorType; exports.bezierToSubpaths = bezierToSubpaths; exports.walkVectorNodes = walkVectorNodes; exports.findVectorNode = findVectorNode; exports.locateVectorNode = locateVectorNode; exports.collectPaintedNodes = collectPaintedNodes; exports.collectPathNodes = collectPathNodes; exports.nodeMatrix = nodeMatrix; exports.vectorPathWorldBezier = vectorPathWorldBezier; exports.vectorNodeBounds = vectorNodeBounds; exports.unionBounds = unionBounds; exports.boundsIntersect = boundsIntersect; exports.boundsFromPoints = boundsFromPoints; exports.hitTestVectorNode = hitTestVectorNode; exports.vectorStrokeOutline = vectorStrokeOutline; exports.hitTestVectorNodes = hitTestVectorNodes; exports.nearestSegment = nearestSegment; exports.transformVectorNode = transformVectorNode; exports.vectorNodeRotation = vectorNodeRotation; exports.vectorWorldMatrix = vectorWorldMatrix; exports.vectorParentMatrix = vectorParentMatrix; exports.translateAnchor = translateAnchor; exports.moveAnchorHandle = moveAnchorHandle; exports.convertAnchor = convertAnchor; exports.insertAnchor = insertAnchor; exports.removeAnchors = removeAnchors; exports.reverseSubpath = reverseSubpath; exports.KAPPA = KAPPA2; exports.rectSubpath = rectSubpath; exports.ellipseSubpath = ellipseSubpath; exports.polygonSubpath = polygonSubpath; exports.starSubpath = starSubpath; exports.lineSubpath = lineSubpath; exports.roundSubpaths = roundSubpaths;
9971
- //# sourceMappingURL=chunk-LI3KTY7K.cjs.map
10036
+
10037
+ exports.isVectorMeshGradient = isVectorMeshGradient; exports.isVectorFreeformGradient = isVectorFreeformGradient; exports.isVectorShadedPaint = isVectorShadedPaint; exports.vectorRgbaToCss = vectorRgbaToCss; exports.VECTOR_MESH_MAX = VECTOR_MESH_MAX; exports.createVectorMeshGradient = createVectorMeshGradient; exports.vectorMeshPointAt = vectorMeshPointAt; exports.vectorMeshColorAt = vectorMeshColorAt; exports.vectorMeshLines = vectorMeshLines; exports.vectorFreeformSpreadScale = vectorFreeformSpreadScale; exports.vectorFreeformLineSegments = vectorFreeformLineSegments; exports.vectorFreeformField = vectorFreeformField; exports.sampleVectorFreeform = sampleVectorFreeform; exports.autoVectorFreeformGradient = autoVectorFreeformGradient; exports.vectorShadedSvgDefs = vectorShadedSvgDefs; exports.mapVectorShadedPaint = mapVectorShadedPaint; exports.transformVectorShadedPaint = transformVectorShadedPaint; exports.sanitizeVectorShadedPaint = sanitizeVectorShadedPaint; exports.removeVectorFreeformPoint = removeVectorFreeformPoint; exports.nearestVectorShadingPoint = nearestVectorShadingPoint; exports.VECTOR_CORNER_KINDS = VECTOR_CORNER_KINDS; exports.VECTOR_GRADIENT_TYPES = VECTOR_GRADIENT_TYPES; exports.VECTOR_GRADIENT_SPREADS = VECTOR_GRADIENT_SPREADS; exports.VECTOR_GRADIENT_INTERPOLATIONS = VECTOR_GRADIENT_INTERPOLATIONS; exports.VECTOR_STROKE_GRADIENT_MODES = VECTOR_STROKE_GRADIENT_MODES; exports.VECTOR_ARROWHEADS = VECTOR_ARROWHEADS; exports.VECTOR_BLEND_MODES = VECTOR_BLEND_MODES; exports.VECTOR_HORIZONTAL_RESIZING = VECTOR_HORIZONTAL_RESIZING; exports.VECTOR_VERTICAL_RESIZING = VECTOR_VERTICAL_RESIZING; exports.VECTOR_CONNECTOR_SIDES = VECTOR_CONNECTOR_SIDES; exports.VECTOR_CONNECTOR_ROUTES = VECTOR_CONNECTOR_ROUTES; exports.VECTOR_BLEND_SPACINGS = VECTOR_BLEND_SPACINGS; exports.VECTOR_MASK_TYPES = VECTOR_MASK_TYPES; exports.VECTOR_SYMMETRY_MODES = VECTOR_SYMMETRY_MODES; exports.VECTOR_TEXT_ALIGNS = VECTOR_TEXT_ALIGNS; exports.VECTOR_PATH_TEXT_BASELINES = VECTOR_PATH_TEXT_BASELINES; exports.VECTOR_CONSTRAINT_KINDS = VECTOR_CONSTRAINT_KINDS; exports.VECTOR_TOOLS = VECTOR_TOOLS; exports.VECTOR_TRANSFORM_HANDLES = VECTOR_TRANSFORM_HANDLES; exports.VECTOR_PATHFINDER_OPERATIONS = VECTOR_PATHFINDER_OPERATIONS; exports.VECTOR_EFFECT_TYPES = VECTOR_EFFECT_TYPES; exports.VECTOR_MERGE_MODES = VECTOR_MERGE_MODES; exports.VECTOR_FILTER_TYPES = VECTOR_FILTER_TYPES; exports.isVectorGradient = isVectorGradient; exports.parseVectorColor = parseVectorColor; exports.VECTOR_GRADIENT_MIN_STOPS = VECTOR_GRADIENT_MIN_STOPS; exports.gradientMidpointRemap = gradientMidpointRemap; exports.sortedVectorGradientStops = sortedVectorGradientStops; exports.vectorGradientNeedsExpansion = vectorGradientNeedsExpansion; exports.vectorGradientRamp = vectorGradientRamp; exports.sampleVectorGradient = sampleVectorGradient; exports.expandVectorGradientStops = expandVectorGradientStops; exports.samplePlainStops = samplePlainStops; exports.reverseVectorGradient = reverseVectorGradient; exports.insertVectorGradientStop = insertVectorGradientStop; exports.moveVectorGradientStop = moveVectorGradientStop; exports.removeVectorGradientStop = removeVectorGradientStop; exports.vectorGradientMidpointPosition = vectorGradientMidpointPosition; exports.vectorGradientMidpointFromPosition = vectorGradientMidpointFromPosition; exports.spanVectorGradientStops = spanVectorGradientStops; exports.hasExplicitGradientGeometry = hasExplicitGradientGeometry; exports.vectorGradientPoints = vectorGradientPoints; exports.vectorBoxMatrix = vectorBoxMatrix; exports.vectorGradientUnitsMatrix = vectorGradientUnitsMatrix; exports.vectorGradientMatrix = vectorGradientMatrix; exports.vectorGradientFocalParam = vectorGradientFocalParam; exports.vectorGradientParam = vectorGradientParam; exports.applyVectorGradientSpread = applyVectorGradientSpread; exports.vectorGradientTAt = vectorGradientTAt; exports.sampleVectorGradientAt = sampleVectorGradientAt; exports.vectorGradientAspect = vectorGradientAspect; exports.explicitVectorGradient = explicitVectorGradient; exports.pinVectorGradient = pinVectorGradient; exports.transformVectorGradient = transformVectorGradient; exports.mapVectorGradient = mapVectorGradient; exports.mapVectorPaint = mapVectorPaint; exports.transformVectorPaint = transformVectorPaint; exports.isCentredVectorGradient = isCentredVectorGradient; exports.vectorGradientHandles = vectorGradientHandles; exports.moveVectorGradientHandle = moveVectorGradientHandle; exports.setVectorGradientVector = setVectorGradientVector; exports.VECTOR_GRADIENT_MAX_PERIODS = VECTOR_GRADIENT_MAX_PERIODS; exports.periodicVectorGradientStops = periodicVectorGradientStops; exports.expandVectorGradientSpread = expandVectorGradientSpread; exports.vectorGradientArea = vectorGradientArea; exports.patternAttrs = patternAttrs; exports.vectorGradientSvgDefs = vectorGradientSvgDefs; exports.sampleVectorPaintDefAt = sampleVectorPaintDefAt; exports.sanitizeVectorGradient = sanitizeVectorGradient; exports.convertVectorGradient = convertVectorGradient; exports.defaultVectorGradient = defaultVectorGradient; exports.applyVectorGradientPatch = applyVectorGradientPatch; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; exports.multiplyMatrices = multiplyMatrices; exports.translateMatrix = translateMatrix; exports.scaleMatrix = scaleMatrix; exports.rotateMatrix = rotateMatrix; exports.matrixAbout = matrixAbout; exports.skewMatrix = skewMatrix; exports.applyMatrix = applyMatrix; exports.isIdentityMatrix = isIdentityMatrix; exports.invertMatrix = invertMatrix; exports.applyMatrixLinear = applyMatrixLinear; exports.matrixRotation = matrixRotation; exports.decomposeRigid = decomposeRigid; exports.isVectorSymmetryGroup = isVectorSymmetryGroup; exports.vectorSymmetryMatrices = vectorSymmetryMatrices; exports.vectorSymmetryDrawn = vectorSymmetryDrawn; exports.vectorSymmetryAxes = vectorSymmetryAxes; exports.sanitizeVectorSymmetry = sanitizeVectorSymmetry; exports.VECTOR_SYMMETRY_MODE_LABELS = VECTOR_SYMMETRY_MODE_LABELS; exports.transformVectorSymmetry = transformVectorSymmetry; exports.vectorCornerAt = vectorCornerAt; exports.vectorCorners = vectorCorners; exports.cornerSetback = cornerSetback; exports.fitCornerRadius = fitCornerRadius; exports.cornerBisectorPoint = cornerBisectorPoint; exports.cornerRadiusChange = cornerRadiusChange; exports.hasVectorCorners = hasVectorCorners; exports.expandVectorCornersOf = expandVectorCornersOf; exports.expandVectorCorners = expandVectorCorners; exports.setAnchorCorner = setAnchorCorner; exports.nextVectorCornerKind = nextVectorCornerKind; exports.setSubpathCorners = setSubpathCorners; exports.VECTOR_WIDTH_PROFILE_MAX_POINTS = VECTOR_WIDTH_PROFILE_MAX_POINTS; exports.VECTOR_WIDTH_PROFILE_MAX_SCALE = VECTOR_WIDTH_PROFILE_MAX_SCALE; exports.VECTOR_WIDTH_SAME_T = VECTOR_WIDTH_SAME_T; exports.VECTOR_WIDTH_PRESETS = VECTOR_WIDTH_PRESETS; exports.VECTOR_WIDTH_PRESET_IDS = VECTOR_WIDTH_PRESET_IDS; exports.sanitizeWidthProfile = sanitizeWidthProfile; exports.isUniformWidthProfile = isUniformWidthProfile; exports.widthProfileAt = widthProfileAt; exports.widthProfileMaxScale = widthProfileMaxScale; exports.widthProfilePreset = widthProfilePreset; exports.widthProfilePresetId = widthProfilePresetId; exports.reverseWidthProfile = reverseWidthProfile; exports.mirrorWidthProfile = mirrorWidthProfile; exports.insertWidthPoint = insertWidthPoint; exports.setWidthPoint = setWidthPoint; exports.removeWidthPoints = removeWidthPoints; exports.taperWaveFactor = taperWaveFactor; exports.generateWidthProfile = generateWidthProfile; exports.VECTOR_PRESSURE_NOMINAL = VECTOR_PRESSURE_NOMINAL; exports.pressureWidthProfile = pressureWidthProfile; exports.dashIntervals = dashIntervals; exports.variableStrokeRings = variableStrokeRings; exports.variableStrokeOutline = variableStrokeOutline; exports.nearestStrokePosition = nearestStrokePosition; exports.strokePositionPoint = strokePositionPoint; exports.isClosedBezierShape = isClosedBezierShape; exports.effectiveStrokeAlign = effectiveStrokeAlign; exports.strokeWidthProfileOf = strokeWidthProfileOf; exports.hasStrokeExtras = hasStrokeExtras; exports.vectorStrokeLineArea = vectorStrokeLineArea; exports.arrowheadWeight = arrowheadWeight; exports.arrowheadInset = arrowheadInset; exports.arrowheadPath = arrowheadPath; exports.vectorStrokeParts = vectorStrokeParts; exports.vectorStrokeOutlinePath = vectorStrokeOutlinePath; exports.hitTestVectorStroke = hitTestVectorStroke; exports.vectorStrokeReach = vectorStrokeReach; exports.VECTOR_STROKE_SETTING_KEYS = VECTOR_STROKE_SETTING_KEYS; exports.VECTOR_BLEND_MODE_LABELS = VECTOR_BLEND_MODE_LABELS; exports.isVectorBlendMode = isVectorBlendMode; exports.vectorBlendModeCss = vectorBlendModeCss; exports.vectorBlendModeFromCss = vectorBlendModeFromCss; exports.isPlainVectorPaintLayer = isPlainVectorPaintLayer; exports.isDrawnVectorPaintLayer = isDrawnVectorPaintLayer; exports.vectorFills = vectorFills; exports.vectorStrokeSettings = vectorStrokeSettings; exports.vectorStrokes = vectorStrokes; exports.hasVectorPaintStacks = hasVectorPaintStacks; exports.withVectorFills = withVectorFills; exports.withVectorStrokes = withVectorStrokes; exports.normalizeVectorPaintStacks = normalizeVectorPaintStacks; exports.sanitizeVectorFills = sanitizeVectorFills; exports.sanitizeVectorStrokeSettings = sanitizeVectorStrokeSettings; exports.sanitizeVectorStrokes = sanitizeVectorStrokes; exports.vectorPaintLayerNodes = vectorPaintLayerNodes; exports.needsVectorPaintLayers = needsVectorPaintLayers; exports.vectorStrokeStackReach = vectorStrokeStackReach; exports.hitTestVectorPaintLayer = hitTestVectorPaintLayer; exports.hitTestVectorPaintStack = hitTestVectorPaintStack; exports.vectorStacksHaveGradient = vectorStacksHaveGradient; exports.newVectorStrokeLayer = newVectorStrokeLayer; exports.vectorTargetPaint = vectorTargetPaint; exports.withVectorTargetPaint = withVectorTargetPaint; exports.effectPathLength = effectPathLength; exports.effectPathVertexCount = effectPathVertexCount; exports.trimIntervals = trimIntervals; exports.trimPaths = trimPaths; exports.trimPathsIndividually = trimPathsIndividually; exports.puckerBloatPaths = puckerBloatPaths; exports.roundCornerPaths = roundCornerPaths; exports.offsetPaths = offsetPaths; exports.sweepPath = sweepPath; exports.twistPaths = twistPaths; exports.zigzagPaths = zigzagPaths; exports.wigglePaths = wigglePaths; exports.mergePaths = mergePaths; exports.vectorRepeaterCopies = vectorRepeaterCopies; exports.repeatPaths = repeatPaths; exports.pathsCenter = pathsCenter; exports.mapVectorPoints = mapVectorPoints; exports.mapVectorSubpaths = mapVectorSubpaths; exports.mapBezierPath = mapBezierPath; exports.isVectorFrame = isVectorFrame; exports.vectorFrameRectPath = vectorFrameRectPath; exports.vectorFrameDrawn = vectorFrameDrawn; exports.vectorFrameContains = vectorFrameContains; exports.vectorFrameChildMatrix = vectorFrameChildMatrix; exports.sanitizeVectorFrame = sanitizeVectorFrame; exports.sanitizeVectorResizing = sanitizeVectorResizing; exports.VECTOR_HORIZONTAL_RESIZING_LABELS = VECTOR_HORIZONTAL_RESIZING_LABELS; exports.VECTOR_VERTICAL_RESIZING_LABELS = VECTOR_VERTICAL_RESIZING_LABELS; exports.vectorBoundsInside = vectorBoundsInside; exports.vectorArtboards = vectorArtboards; exports.vectorFrameDocument = vectorFrameDocument; exports.getVectorFramePanel = getVectorFramePanel; exports.splitIntoFaces = splitIntoFaces; exports.knifePath = knifePath; exports.eraserRegion = eraserRegion; exports.eraseFromFill = eraseFromFill; exports.eraseFromOutline = eraseFromOutline; exports.polylineBounds = polylineBounds; exports.simplifyPolyline = simplifyPolyline; exports.VECTOR_FILTER_DEFAULTS = VECTOR_FILTER_DEFAULTS; exports.VECTOR_FILTER_LABELS = VECTOR_FILTER_LABELS; exports.VECTOR_FILTER_PARAM_SPECS = VECTOR_FILTER_PARAM_SPECS; exports.isVectorFilterType = isVectorFilterType; exports.normalizeVectorFilterParams = normalizeVectorFilterParams; exports.vectorFilterParamKeys = vectorFilterParamKeys; exports.createVectorFilter = createVectorFilter; exports.sanitizeVectorFilters = sanitizeVectorFilters; exports.activeVectorFilters = activeVectorFilters; exports.vectorFilterReach = vectorFilterReach; exports.vectorFilterSvg = vectorFilterSvg; exports.vectorFilterMarkup = vectorFilterMarkup; exports.VECTOR_FILTER_MENU = VECTOR_FILTER_MENU; exports.isVectorMaskType = isVectorMaskType; exports.sanitizeVectorMask = sanitizeVectorMask; exports.isVectorMaskGroup = isVectorMaskGroup; exports.isVectorMaskActive = isVectorMaskActive; exports.vectorMaskSource = vectorMaskSource; exports.vectorMaskContents = vectorMaskContents; exports.vectorMaskOwner = vectorMaskOwner; exports.vectorMaskSummary = vectorMaskSummary; exports.vectorMaskRegionShapes = vectorMaskRegionShapes; exports.vectorMaskRegion = vectorMaskRegion; exports.vectorMaskRegionPath = vectorMaskRegionPath; exports.vectorMaskContains = vectorMaskContains; exports.vectorMaskedShapes = vectorMaskedShapes; exports.vectorMaskedGeometry = vectorMaskedGeometry; exports.vectorMaskedLocalBounds = vectorMaskedLocalBounds; exports.vectorMaskContentBounds = vectorMaskContentBounds; exports.vectorMaskRenderData = vectorMaskRenderData; exports.DEFAULT_TEXT_STYLE = DEFAULT_TEXT_STYLE; exports.DEFAULT_AUTO_LEADING = DEFAULT_AUTO_LEADING; exports.fitRuns = fitRuns; exports.styleAt = styleAt; exports.restyleRange = restyleRange; exports.spliceRuns = spliceRuns; exports.paragraphRanges = paragraphRanges; exports.fitParagraphRuns = fitParagraphRuns; exports.fontOf = fontOf; exports.isTextSpace = isTextSpace; exports.layoutText = layoutText; exports.textIndexAt = textIndexAt; exports.caretAt = caretAt; exports.textDecorations = textDecorations; exports.textRectPath = textRectPath; exports.textFragmentOutline = textFragmentOutline; exports.cssFontFamily = cssFontFamily; exports.cssFont = cssFont; exports.createCanvasTextShaper = createCanvasTextShaper; exports.createOutlineTextShaper = createOutlineTextShaper; exports.createMetricTextShaper = createMetricTextShaper; exports.setVectorTextShaper = setVectorTextShaper; exports.getVectorTextShaper = getVectorTextShaper; exports.vectorTextShaperGeneration = vectorTextShaperGeneration; exports.vectorTextHasOutlines = vectorTextHasOutlines; exports.vectorTextFamilies = vectorTextFamilies; exports.DEFAULT_VECTOR_FONT = DEFAULT_VECTOR_FONT; exports.VECTOR_CHARACTER_STYLE_KEYS = VECTOR_CHARACTER_STYLE_KEYS; exports.VECTOR_PARAGRAPH_STYLE_KEYS = VECTOR_PARAGRAPH_STYLE_KEYS; exports.VectorTextError = VectorTextError; exports.fitVectorTextRuns = fitVectorTextRuns; exports.vectorTextRuns = vectorTextRuns; exports.vectorTextStyleAt = vectorTextStyleAt; exports.measureVectorPath = measureVectorPath; exports.vectorPathAt = vectorPathAt; exports.vectorPathTextPositions = vectorPathTextPositions; exports.layoutVectorText = layoutVectorText; exports.glyphBox = glyphBox; exports.vectorTextPaths = vectorTextPaths; exports.vectorTextPaintSource = vectorTextPaintSource; exports.vectorTextCaret = vectorTextCaret; exports.vectorTextIndexAt = vectorTextIndexAt; exports.vectorTextSelectionQuads = vectorTextSelectionQuads; exports.patchVectorCharacterStyle = patchVectorCharacterStyle; exports.patchVectorParagraphStyle = patchVectorParagraphStyle; exports.sanitizeVectorTextFrame = sanitizeVectorTextFrame; exports.normalizeVectorTextRuns = normalizeVectorTextRuns; exports.sanitizeVectorTextFields = sanitizeVectorTextFields; exports.vectorTextRange = vectorTextRange; exports.replaceVectorText = replaceVectorText; exports.styleVectorText = styleVectorText; exports.bakeVectorTextGeometry = bakeVectorTextGeometry; exports.vectorTextName = vectorTextName; exports.pathTextFrameFromBezier = pathTextFrameFromBezier; exports.vectorTextBoxOutline = vectorTextBoxOutline; exports.vectorTextSpans = vectorTextSpans; exports.vectorTextGeometryNode = vectorTextGeometryNode; exports.vectorTextSpanSvg = vectorTextSpanSvg; exports.VECTOR_SYMBOL_MAX_DEPTH = VECTOR_SYMBOL_MAX_DEPTH; exports.vectorSymbolsUsedIn = vectorSymbolsUsedIn; exports.vectorSymbolUses = vectorSymbolUses; exports.resolveVectorSymbols = resolveVectorSymbols; exports.stripVectorSymbolArt = stripVectorSymbolArt; exports.scaleVectorStrokeWidths = scaleVectorStrokeWidths; exports.tintVectorNode = tintVectorNode; exports.prefixVectorIds = prefixVectorIds; exports.vectorInstanceGroup = vectorInstanceGroup; exports.composeVectorMatrices = composeVectorMatrices; exports.WARP_STYLES = WARP_STYLES; exports.WARP_STYLE_LABELS = WARP_STYLE_LABELS; exports.warpPresetGrid = warpPresetGrid; exports.warpPresetMesh = warpPresetMesh; exports.warpMeshColumns = warpMeshColumns; exports.warpMeshRows = warpMeshRows; exports.isValidWarpMesh = isValidWarpMesh; exports.fitWarpMesh = fitWarpMesh; exports.identityWarpMesh = identityWarpMesh; exports.evalWarpMesh = evalWarpMesh; exports.splitWarpMeshU = splitWarpMeshU; exports.splitWarpMeshV = splitWarpMeshV; exports.removeWarpMeshSplitU = removeWarpMeshSplitU; exports.removeWarpMeshSplitV = removeWarpMeshSplitV; exports.mapWarpMeshPoints = mapWarpMeshPoints; exports.resizeWarpMesh = resizeWarpMesh; exports.warpMeshControlBounds = warpMeshControlBounds; exports.warpMeshParamAt = warpMeshParamAt; exports.dragWarpMeshPoint = dragWarpMeshPoint; exports.pullWarpMesh = pullWarpMesh; exports.warpMeshEditPoints = warpMeshEditPoints; exports.warpMeshGridCurves = warpMeshGridCurves; exports.vectorMeshFromOutline = vectorMeshFromOutline; exports.vectorMeshOutline = vectorMeshOutline; exports.VECTOR_EFFECT_DEFAULTS = VECTOR_EFFECT_DEFAULTS; exports.VECTOR_EFFECT_LABELS = VECTOR_EFFECT_LABELS; exports.VECTOR_EFFECT_PARAM_SPECS = VECTOR_EFFECT_PARAM_SPECS; exports.vectorEnvelopeMesh = vectorEnvelopeMesh; exports.vectorEnvelopeMap = vectorEnvelopeMap; exports.normalizeVectorEffectParams = normalizeVectorEffectParams; exports.createVectorEffect = createVectorEffect; exports.activeVectorEffects = activeVectorEffects; exports.hasOwnVectorAppearance = hasOwnVectorAppearance; exports.hasVectorAppearance = hasVectorAppearance; exports.isVectorLiveBoolean = isVectorLiveBoolean; exports.vectorOperandOperation = vectorOperandOperation; exports.vectorLiveBooleanSteps = vectorLiveBooleanSteps; exports.clearVectorLiveBooleanCache = clearVectorLiveBooleanCache; exports.foldVectorBooleanOperands = foldVectorBooleanOperands; exports.applyVectorEffects = applyVectorEffects; exports.vectorInstanceDrawn = vectorInstanceDrawn; exports.vectorChildAppearanceShapes = vectorChildAppearanceShapes; exports.vectorEffectInputPaths = vectorEffectInputPaths; exports.vectorEffectInputBounds = vectorEffectInputBounds; exports.vectorNodeEnvelope = vectorNodeEnvelope; exports.vectorEnvelopeFrame = vectorEnvelopeFrame; exports.vectorAppearanceShapes = vectorAppearanceShapes; exports.vectorAppearanceOutline = vectorAppearanceOutline; exports.vectorAppearanceNodes = vectorAppearanceNodes; exports.expandVectorAppearance = expandVectorAppearance; exports.expandVectorAppearances = expandVectorAppearances; exports.sanitizeVectorEffects = sanitizeVectorEffects; exports.transformVectorEffects = transformVectorEffects; exports.vectorEnteredGroups = vectorEnteredGroups; exports.isVectorConnector = isVectorConnector; exports.vectorConnectionSites = vectorConnectionSites; exports.nearestVectorConnectionSite = nearestVectorConnectionSite; exports.vectorConnectorWorldAnchors = vectorConnectorWorldAnchors; exports.routeVectorConnector = routeVectorConnector; exports.rerouteVectorConnectors = rerouteVectorConnectors; exports.sanitizeVectorConnector = sanitizeVectorConnector; exports.VECTOR_CONNECTOR_ROUTE_LABELS = VECTOR_CONNECTOR_ROUTE_LABELS; exports.VECTOR_CONNECTOR_SIDE_LABELS = VECTOR_CONNECTOR_SIDE_LABELS; exports.getVectorConnectorPanel = getVectorConnectorPanel; exports.vectorConnectorTargetAt = vectorConnectorTargetAt; exports.vectorStrokeGradientDefs = vectorStrokeGradientDefs; exports.vectorCornersAttribute = vectorCornersAttribute; exports.applyVectorCornersAttribute = applyVectorCornersAttribute; exports.vectorPathLocalBounds = vectorPathLocalBounds; exports.vectorPaintToSvg = vectorPaintToSvg; exports.vectorStrokeSvgParts = vectorStrokeSvgParts; exports.vectorNodeLocalPaintBounds = vectorNodeLocalPaintBounds; exports.vectorNodeFilterSvg = vectorNodeFilterSvg; exports.widthProfileToAttribute = widthProfileToAttribute; exports.widthProfileFromAttribute = widthProfileFromAttribute; exports.vectorDocumentToSvg = vectorDocumentToSvg; exports.parseSvgTransform = parseSvgTransform; exports.parseVectorSvg = parseVectorSvg; exports.VECTOR_SPATIAL_MIN = VECTOR_SPATIAL_MIN; exports.VectorRTree = VectorRTree; exports.vectorNodePaintBox = vectorNodePaintBox; exports.vectorSpatialIndex = vectorSpatialIndex; exports.vectorNodesNear = vectorNodesNear; exports.cloneAnchor = cloneAnchor; exports.cloneSubpath = cloneSubpath; exports.cloneVectorNode = cloneVectorNode; exports.cloneVectorDocument = cloneVectorDocument; exports.hasPaint = hasPaint; exports.subpathSegmentCount = subpathSegmentCount; exports.subpathSegment = subpathSegment; exports.subpathsToBezier = subpathsToBezier; exports.vectorNodeToBezier = vectorNodeToBezier; exports.vectorPathData = vectorPathData; exports.inferAnchorType = inferAnchorType; exports.bezierToSubpaths = bezierToSubpaths; exports.walkVectorNodes = walkVectorNodes; exports.findVectorNode = findVectorNode; exports.locateVectorNode = locateVectorNode; exports.collectPaintedNodes = collectPaintedNodes; exports.collectPathNodes = collectPathNodes; exports.nodeMatrix = nodeMatrix; exports.vectorPathWorldBezier = vectorPathWorldBezier; exports.vectorNodeBounds = vectorNodeBounds; exports.unionBounds = unionBounds; exports.boundsIntersect = boundsIntersect; exports.boundsFromPoints = boundsFromPoints; exports.hitTestVectorNode = hitTestVectorNode; exports.vectorStrokeOutline = vectorStrokeOutline; exports.hitTestVectorNodes = hitTestVectorNodes; exports.nearestSegment = nearestSegment; exports.transformVectorNode = transformVectorNode; exports.vectorNodeRotation = vectorNodeRotation; exports.vectorWorldMatrix = vectorWorldMatrix; exports.vectorParentMatrix = vectorParentMatrix; exports.translateAnchor = translateAnchor; exports.moveAnchorHandle = moveAnchorHandle; exports.convertAnchor = convertAnchor; exports.insertAnchor = insertAnchor; exports.removeAnchors = removeAnchors; exports.reverseSubpath = reverseSubpath; exports.KAPPA = KAPPA2; exports.rectSubpath = rectSubpath; exports.ellipseSubpath = ellipseSubpath; exports.polygonSubpath = polygonSubpath; exports.starSubpath = starSubpath; exports.lineSubpath = lineSubpath; exports.roundSubpaths = roundSubpaths;
10038
+ //# sourceMappingURL=chunk-VYW7JBTM.cjs.map