@retikz/core 0.2.0-alpha.5 → 0.2.0-alpha.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/compile/anchor-cache.d.ts +10 -0
- package/dist/es/compile/anchor-cache.d.ts.map +1 -1
- package/dist/es/compile/anchor-cache.js +25 -1
- package/dist/es/compile/compile.d.ts.map +1 -1
- package/dist/es/compile/compile.js +10 -4
- package/dist/es/compile/index.d.ts +0 -1
- package/dist/es/compile/index.d.ts.map +1 -1
- package/dist/es/compile/node.d.ts +19 -4
- package/dist/es/compile/node.d.ts.map +1 -1
- package/dist/es/compile/node.js +159 -29
- package/dist/es/compile/paint.d.ts +16 -0
- package/dist/es/compile/paint.d.ts.map +1 -0
- package/dist/es/compile/paint.js +37 -0
- package/dist/es/compile/path/anchor.d.ts.map +1 -1
- package/dist/es/compile/path/anchor.js +17 -18
- package/dist/es/compile/path/index.d.ts +3 -0
- package/dist/es/compile/path/index.d.ts.map +1 -1
- package/dist/es/compile/path/index.js +12 -5
- package/dist/es/geometry/_edge.d.ts +29 -0
- package/dist/es/geometry/_edge.d.ts.map +1 -0
- package/dist/es/geometry/_edge.js +35 -0
- package/dist/es/geometry/circle.d.ts +3 -0
- package/dist/es/geometry/circle.d.ts.map +1 -1
- package/dist/es/geometry/circle.js +7 -0
- package/dist/es/geometry/diamond.d.ts +3 -0
- package/dist/es/geometry/diamond.d.ts.map +1 -1
- package/dist/es/geometry/diamond.js +29 -0
- package/dist/es/geometry/ellipse.d.ts +3 -0
- package/dist/es/geometry/ellipse.d.ts.map +1 -1
- package/dist/es/geometry/ellipse.js +7 -0
- package/dist/es/geometry/rect.d.ts +3 -0
- package/dist/es/geometry/rect.d.ts.map +1 -1
- package/dist/es/geometry/rect.js +6 -0
- package/dist/es/index.d.ts +4 -4
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/index.js +6 -4
- package/dist/es/ir/coordinate.d.ts +2 -2
- package/dist/es/ir/index.d.ts +1 -0
- package/dist/es/ir/index.d.ts.map +1 -1
- package/dist/es/ir/node.d.ts +264 -11
- package/dist/es/ir/node.d.ts.map +1 -1
- package/dist/es/ir/node.js +9 -2
- package/dist/es/ir/paint.d.ts +132 -0
- package/dist/es/ir/paint.d.ts.map +1 -0
- package/dist/es/ir/paint.js +53 -0
- package/dist/es/ir/path/arrow.d.ts +24 -24
- package/dist/es/ir/path/path.d.ts +860 -204
- package/dist/es/ir/path/path.d.ts.map +1 -1
- package/dist/es/ir/path/path.js +2 -1
- package/dist/es/ir/path/step.d.ts +930 -192
- package/dist/es/ir/path/step.d.ts.map +1 -1
- package/dist/es/ir/path/target.d.ts +71 -1
- package/dist/es/ir/path/target.d.ts.map +1 -1
- package/dist/es/ir/path/target.js +24 -3
- package/dist/es/ir/scope.d.ts +2095 -335
- package/dist/es/ir/scope.d.ts.map +1 -1
- package/dist/es/ir/scope.js +2 -1
- package/dist/es/parsers/index.d.ts +1 -0
- package/dist/es/parsers/index.d.ts.map +1 -1
- package/dist/es/parsers/parseNodeTarget.d.ts +4 -0
- package/dist/es/parsers/parseNodeTarget.d.ts.map +1 -0
- package/dist/es/parsers/parseNodeTarget.js +33 -0
- package/dist/es/parsers/parseTargetSugar.d.ts +4 -2
- package/dist/es/parsers/parseTargetSugar.d.ts.map +1 -1
- package/dist/es/parsers/parseTargetSugar.js +6 -3
- package/dist/es/parsers/parseWay.d.ts +1 -1
- package/dist/es/parsers/parseWay.d.ts.map +1 -1
- package/dist/es/primitive/ellipse.d.ts +3 -5
- package/dist/es/primitive/ellipse.d.ts.map +1 -1
- package/dist/es/primitive/paint.d.ts +24 -0
- package/dist/es/primitive/paint.d.ts.map +1 -0
- package/dist/es/primitive/path.d.ts +3 -2
- package/dist/es/primitive/path.d.ts.map +1 -1
- package/dist/es/primitive/rect.d.ts +3 -2
- package/dist/es/primitive/rect.d.ts.map +1 -1
- package/dist/es/primitive/scene.d.ts +4 -0
- package/dist/es/primitive/scene.d.ts.map +1 -1
- package/dist/es/shapes/circle.d.ts.map +1 -1
- package/dist/es/shapes/circle.js +1 -0
- package/dist/es/shapes/diamond.d.ts.map +1 -1
- package/dist/es/shapes/diamond.js +1 -0
- package/dist/es/shapes/ellipse.d.ts.map +1 -1
- package/dist/es/shapes/ellipse.js +1 -0
- package/dist/es/shapes/rectangle.d.ts.map +1 -1
- package/dist/es/shapes/rectangle.js +1 -0
- package/dist/es/shapes/types.d.ts +8 -2
- package/dist/es/shapes/types.d.ts.map +1 -1
- package/dist/lib/compile/anchor-cache.cjs +25 -0
- package/dist/lib/compile/anchor-cache.d.ts +10 -0
- package/dist/lib/compile/anchor-cache.d.ts.map +1 -1
- package/dist/lib/compile/compile.cjs +9 -3
- package/dist/lib/compile/compile.d.ts.map +1 -1
- package/dist/lib/compile/index.d.ts +0 -1
- package/dist/lib/compile/index.d.ts.map +1 -1
- package/dist/lib/compile/node.cjs +159 -28
- package/dist/lib/compile/node.d.ts +19 -4
- package/dist/lib/compile/node.d.ts.map +1 -1
- package/dist/lib/compile/paint.cjs +37 -0
- package/dist/lib/compile/paint.d.ts +16 -0
- package/dist/lib/compile/paint.d.ts.map +1 -0
- package/dist/lib/compile/path/anchor.cjs +16 -17
- package/dist/lib/compile/path/anchor.d.ts.map +1 -1
- package/dist/lib/compile/path/index.cjs +12 -5
- package/dist/lib/compile/path/index.d.ts +3 -0
- package/dist/lib/compile/path/index.d.ts.map +1 -1
- package/dist/lib/geometry/_edge.cjs +38 -0
- package/dist/lib/geometry/_edge.d.ts +29 -0
- package/dist/lib/geometry/_edge.d.ts.map +1 -0
- package/dist/lib/geometry/circle.cjs +7 -0
- package/dist/lib/geometry/circle.d.ts +3 -0
- package/dist/lib/geometry/circle.d.ts.map +1 -1
- package/dist/lib/geometry/diamond.cjs +29 -0
- package/dist/lib/geometry/diamond.d.ts +3 -0
- package/dist/lib/geometry/diamond.d.ts.map +1 -1
- package/dist/lib/geometry/ellipse.cjs +7 -0
- package/dist/lib/geometry/ellipse.d.ts +3 -0
- package/dist/lib/geometry/ellipse.d.ts.map +1 -1
- package/dist/lib/geometry/rect.cjs +6 -0
- package/dist/lib/geometry/rect.d.ts +3 -0
- package/dist/lib/geometry/rect.d.ts.map +1 -1
- package/dist/lib/index.cjs +9 -2
- package/dist/lib/index.d.ts +4 -4
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/ir/coordinate.d.ts +2 -2
- package/dist/lib/ir/index.d.ts +1 -0
- package/dist/lib/ir/index.d.ts.map +1 -1
- package/dist/lib/ir/node.cjs +9 -2
- package/dist/lib/ir/node.d.ts +264 -11
- package/dist/lib/ir/node.d.ts.map +1 -1
- package/dist/lib/ir/paint.cjs +54 -0
- package/dist/lib/ir/paint.d.ts +132 -0
- package/dist/lib/ir/paint.d.ts.map +1 -0
- package/dist/lib/ir/path/arrow.d.ts +24 -24
- package/dist/lib/ir/path/path.cjs +2 -1
- package/dist/lib/ir/path/path.d.ts +860 -204
- package/dist/lib/ir/path/path.d.ts.map +1 -1
- package/dist/lib/ir/path/step.d.ts +930 -192
- package/dist/lib/ir/path/step.d.ts.map +1 -1
- package/dist/lib/ir/path/target.cjs +25 -2
- package/dist/lib/ir/path/target.d.ts +71 -1
- package/dist/lib/ir/path/target.d.ts.map +1 -1
- package/dist/lib/ir/scope.cjs +2 -1
- package/dist/lib/ir/scope.d.ts +2095 -335
- package/dist/lib/ir/scope.d.ts.map +1 -1
- package/dist/lib/parsers/index.d.ts +1 -0
- package/dist/lib/parsers/index.d.ts.map +1 -1
- package/dist/lib/parsers/parseNodeTarget.cjs +33 -0
- package/dist/lib/parsers/parseNodeTarget.d.ts +4 -0
- package/dist/lib/parsers/parseNodeTarget.d.ts.map +1 -0
- package/dist/lib/parsers/parseTargetSugar.cjs +6 -3
- package/dist/lib/parsers/parseTargetSugar.d.ts +4 -2
- package/dist/lib/parsers/parseTargetSugar.d.ts.map +1 -1
- package/dist/lib/parsers/parseWay.d.ts +1 -1
- package/dist/lib/parsers/parseWay.d.ts.map +1 -1
- package/dist/lib/primitive/ellipse.d.ts +3 -5
- package/dist/lib/primitive/ellipse.d.ts.map +1 -1
- package/dist/lib/primitive/paint.d.ts +24 -0
- package/dist/lib/primitive/paint.d.ts.map +1 -0
- package/dist/lib/primitive/path.d.ts +3 -2
- package/dist/lib/primitive/path.d.ts.map +1 -1
- package/dist/lib/primitive/rect.d.ts +3 -2
- package/dist/lib/primitive/rect.d.ts.map +1 -1
- package/dist/lib/primitive/scene.d.ts +4 -0
- package/dist/lib/primitive/scene.d.ts.map +1 -1
- package/dist/lib/shapes/circle.cjs +1 -0
- package/dist/lib/shapes/circle.d.ts.map +1 -1
- package/dist/lib/shapes/diamond.cjs +1 -0
- package/dist/lib/shapes/diamond.d.ts.map +1 -1
- package/dist/lib/shapes/ellipse.cjs +1 -0
- package/dist/lib/shapes/ellipse.d.ts.map +1 -1
- package/dist/lib/shapes/rectangle.cjs +1 -0
- package/dist/lib/shapes/rectangle.d.ts.map +1 -1
- package/dist/lib/shapes/types.d.ts +8 -2
- package/dist/lib/shapes/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/es/compile/parseTarget.d.ts +0 -20
- package/dist/es/compile/parseTarget.d.ts.map +0 -1
- package/dist/es/compile/parseTarget.js +0 -36
- package/dist/lib/compile/parseTarget.cjs +0 -36
- package/dist/lib/compile/parseTarget.d.ts +0 -20
- package/dist/lib/compile/parseTarget.d.ts.map +0 -1
package/dist/es/ir/node.d.ts
CHANGED
|
@@ -65,6 +65,19 @@ export declare const NodeLabelSchema: z.ZodObject<{
|
|
|
65
65
|
}>>;
|
|
66
66
|
rotate: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["none", "radial", "tangent"]>, z.ZodNumber]>>;
|
|
67
67
|
keepUpright: z.ZodOptional<z.ZodBoolean>;
|
|
68
|
+
pin: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
69
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
70
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
71
|
+
dashPattern: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
72
|
+
}, "strip", z.ZodTypeAny, {
|
|
73
|
+
stroke?: string | undefined;
|
|
74
|
+
strokeWidth?: number | undefined;
|
|
75
|
+
dashPattern?: number[] | undefined;
|
|
76
|
+
}, {
|
|
77
|
+
stroke?: string | undefined;
|
|
78
|
+
strokeWidth?: number | undefined;
|
|
79
|
+
dashPattern?: number[] | undefined;
|
|
80
|
+
}>]>>;
|
|
68
81
|
}, "strip", z.ZodTypeAny, {
|
|
69
82
|
text: string;
|
|
70
83
|
distance?: number | undefined;
|
|
@@ -79,6 +92,11 @@ export declare const NodeLabelSchema: z.ZodObject<{
|
|
|
79
92
|
textColor?: string | undefined;
|
|
80
93
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
81
94
|
keepUpright?: boolean | undefined;
|
|
95
|
+
pin?: boolean | {
|
|
96
|
+
stroke?: string | undefined;
|
|
97
|
+
strokeWidth?: number | undefined;
|
|
98
|
+
dashPattern?: number[] | undefined;
|
|
99
|
+
} | undefined;
|
|
82
100
|
}, {
|
|
83
101
|
text: string;
|
|
84
102
|
distance?: number | undefined;
|
|
@@ -93,6 +111,11 @@ export declare const NodeLabelSchema: z.ZodObject<{
|
|
|
93
111
|
textColor?: string | undefined;
|
|
94
112
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
95
113
|
keepUpright?: boolean | undefined;
|
|
114
|
+
pin?: boolean | {
|
|
115
|
+
stroke?: string | undefined;
|
|
116
|
+
strokeWidth?: number | undefined;
|
|
117
|
+
dashPattern?: number[] | undefined;
|
|
118
|
+
} | undefined;
|
|
96
119
|
}>;
|
|
97
120
|
/** Node label IR 类型 */
|
|
98
121
|
export type IRNodeLabel = z.infer<typeof NodeLabelSchema>;
|
|
@@ -179,8 +202,112 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
179
202
|
readonly right: "right";
|
|
180
203
|
}>>;
|
|
181
204
|
lineHeight: z.ZodOptional<z.ZodNumber>;
|
|
205
|
+
maxTextWidth: z.ZodOptional<z.ZodNumber>;
|
|
182
206
|
color: z.ZodOptional<z.ZodString>;
|
|
183
|
-
fill: z.ZodOptional<z.ZodString
|
|
207
|
+
fill: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
208
|
+
type: z.ZodLiteral<"linearGradient">;
|
|
209
|
+
stops: z.ZodArray<z.ZodObject<{
|
|
210
|
+
offset: z.ZodNumber;
|
|
211
|
+
color: z.ZodString;
|
|
212
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
213
|
+
}, "strip", z.ZodTypeAny, {
|
|
214
|
+
offset: number;
|
|
215
|
+
color: string;
|
|
216
|
+
opacity?: number | undefined;
|
|
217
|
+
}, {
|
|
218
|
+
offset: number;
|
|
219
|
+
color: string;
|
|
220
|
+
opacity?: number | undefined;
|
|
221
|
+
}>, "many">;
|
|
222
|
+
angle: z.ZodOptional<z.ZodNumber>;
|
|
223
|
+
}, "strip", z.ZodTypeAny, {
|
|
224
|
+
type: "linearGradient";
|
|
225
|
+
stops: {
|
|
226
|
+
offset: number;
|
|
227
|
+
color: string;
|
|
228
|
+
opacity?: number | undefined;
|
|
229
|
+
}[];
|
|
230
|
+
angle?: number | undefined;
|
|
231
|
+
}, {
|
|
232
|
+
type: "linearGradient";
|
|
233
|
+
stops: {
|
|
234
|
+
offset: number;
|
|
235
|
+
color: string;
|
|
236
|
+
opacity?: number | undefined;
|
|
237
|
+
}[];
|
|
238
|
+
angle?: number | undefined;
|
|
239
|
+
}>, z.ZodObject<{
|
|
240
|
+
type: z.ZodLiteral<"radialGradient">;
|
|
241
|
+
stops: z.ZodArray<z.ZodObject<{
|
|
242
|
+
offset: z.ZodNumber;
|
|
243
|
+
color: z.ZodString;
|
|
244
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
245
|
+
}, "strip", z.ZodTypeAny, {
|
|
246
|
+
offset: number;
|
|
247
|
+
color: string;
|
|
248
|
+
opacity?: number | undefined;
|
|
249
|
+
}, {
|
|
250
|
+
offset: number;
|
|
251
|
+
color: string;
|
|
252
|
+
opacity?: number | undefined;
|
|
253
|
+
}>, "many">;
|
|
254
|
+
center: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
255
|
+
radius: z.ZodOptional<z.ZodNumber>;
|
|
256
|
+
}, "strip", z.ZodTypeAny, {
|
|
257
|
+
type: "radialGradient";
|
|
258
|
+
stops: {
|
|
259
|
+
offset: number;
|
|
260
|
+
color: string;
|
|
261
|
+
opacity?: number | undefined;
|
|
262
|
+
}[];
|
|
263
|
+
radius?: number | undefined;
|
|
264
|
+
center?: [number, number] | undefined;
|
|
265
|
+
}, {
|
|
266
|
+
type: "radialGradient";
|
|
267
|
+
stops: {
|
|
268
|
+
offset: number;
|
|
269
|
+
color: string;
|
|
270
|
+
opacity?: number | undefined;
|
|
271
|
+
}[];
|
|
272
|
+
radius?: number | undefined;
|
|
273
|
+
center?: [number, number] | undefined;
|
|
274
|
+
}>, z.ZodObject<{
|
|
275
|
+
type: z.ZodLiteral<"pattern">;
|
|
276
|
+
shape: z.ZodEnum<["lines", "dots", "grid"]>;
|
|
277
|
+
color: z.ZodOptional<z.ZodString>;
|
|
278
|
+
background: z.ZodOptional<z.ZodString>;
|
|
279
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
280
|
+
lineWidth: z.ZodOptional<z.ZodNumber>;
|
|
281
|
+
rotation: z.ZodOptional<z.ZodNumber>;
|
|
282
|
+
}, "strip", z.ZodTypeAny, {
|
|
283
|
+
type: "pattern";
|
|
284
|
+
shape: "lines" | "dots" | "grid";
|
|
285
|
+
size?: number | undefined;
|
|
286
|
+
color?: string | undefined;
|
|
287
|
+
background?: string | undefined;
|
|
288
|
+
lineWidth?: number | undefined;
|
|
289
|
+
rotation?: number | undefined;
|
|
290
|
+
}, {
|
|
291
|
+
type: "pattern";
|
|
292
|
+
shape: "lines" | "dots" | "grid";
|
|
293
|
+
size?: number | undefined;
|
|
294
|
+
color?: string | undefined;
|
|
295
|
+
background?: string | undefined;
|
|
296
|
+
lineWidth?: number | undefined;
|
|
297
|
+
rotation?: number | undefined;
|
|
298
|
+
}>, z.ZodObject<{
|
|
299
|
+
type: z.ZodLiteral<"image">;
|
|
300
|
+
href: z.ZodString;
|
|
301
|
+
fit: z.ZodOptional<z.ZodEnum<["fill", "contain", "cover"]>>;
|
|
302
|
+
}, "strip", z.ZodTypeAny, {
|
|
303
|
+
type: "image";
|
|
304
|
+
href: string;
|
|
305
|
+
fit?: "fill" | "contain" | "cover" | undefined;
|
|
306
|
+
}, {
|
|
307
|
+
type: "image";
|
|
308
|
+
href: string;
|
|
309
|
+
fit?: "fill" | "contain" | "cover" | undefined;
|
|
310
|
+
}>]>]>>;
|
|
184
311
|
fillOpacity: z.ZodOptional<z.ZodNumber>;
|
|
185
312
|
stroke: z.ZodOptional<z.ZodString>;
|
|
186
313
|
drawOpacity: z.ZodOptional<z.ZodNumber>;
|
|
@@ -251,6 +378,19 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
251
378
|
}>>;
|
|
252
379
|
rotate: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["none", "radial", "tangent"]>, z.ZodNumber]>>;
|
|
253
380
|
keepUpright: z.ZodOptional<z.ZodBoolean>;
|
|
381
|
+
pin: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
382
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
383
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
384
|
+
dashPattern: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
385
|
+
}, "strip", z.ZodTypeAny, {
|
|
386
|
+
stroke?: string | undefined;
|
|
387
|
+
strokeWidth?: number | undefined;
|
|
388
|
+
dashPattern?: number[] | undefined;
|
|
389
|
+
}, {
|
|
390
|
+
stroke?: string | undefined;
|
|
391
|
+
strokeWidth?: number | undefined;
|
|
392
|
+
dashPattern?: number[] | undefined;
|
|
393
|
+
}>]>>;
|
|
254
394
|
}, "strip", z.ZodTypeAny, {
|
|
255
395
|
text: string;
|
|
256
396
|
distance?: number | undefined;
|
|
@@ -265,6 +405,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
265
405
|
textColor?: string | undefined;
|
|
266
406
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
267
407
|
keepUpright?: boolean | undefined;
|
|
408
|
+
pin?: boolean | {
|
|
409
|
+
stroke?: string | undefined;
|
|
410
|
+
strokeWidth?: number | undefined;
|
|
411
|
+
dashPattern?: number[] | undefined;
|
|
412
|
+
} | undefined;
|
|
268
413
|
}, {
|
|
269
414
|
text: string;
|
|
270
415
|
distance?: number | undefined;
|
|
@@ -279,6 +424,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
279
424
|
textColor?: string | undefined;
|
|
280
425
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
281
426
|
keepUpright?: boolean | undefined;
|
|
427
|
+
pin?: boolean | {
|
|
428
|
+
stroke?: string | undefined;
|
|
429
|
+
strokeWidth?: number | undefined;
|
|
430
|
+
dashPattern?: number[] | undefined;
|
|
431
|
+
} | undefined;
|
|
282
432
|
}>, z.ZodArray<z.ZodObject<{
|
|
283
433
|
text: z.ZodString;
|
|
284
434
|
position: z.ZodOptional<z.ZodUnion<[z.ZodNativeEnum<{
|
|
@@ -312,6 +462,19 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
312
462
|
}>>;
|
|
313
463
|
rotate: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["none", "radial", "tangent"]>, z.ZodNumber]>>;
|
|
314
464
|
keepUpright: z.ZodOptional<z.ZodBoolean>;
|
|
465
|
+
pin: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
|
|
466
|
+
stroke: z.ZodOptional<z.ZodString>;
|
|
467
|
+
strokeWidth: z.ZodOptional<z.ZodNumber>;
|
|
468
|
+
dashPattern: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
|
|
469
|
+
}, "strip", z.ZodTypeAny, {
|
|
470
|
+
stroke?: string | undefined;
|
|
471
|
+
strokeWidth?: number | undefined;
|
|
472
|
+
dashPattern?: number[] | undefined;
|
|
473
|
+
}, {
|
|
474
|
+
stroke?: string | undefined;
|
|
475
|
+
strokeWidth?: number | undefined;
|
|
476
|
+
dashPattern?: number[] | undefined;
|
|
477
|
+
}>]>>;
|
|
315
478
|
}, "strip", z.ZodTypeAny, {
|
|
316
479
|
text: string;
|
|
317
480
|
distance?: number | undefined;
|
|
@@ -326,6 +489,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
326
489
|
textColor?: string | undefined;
|
|
327
490
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
328
491
|
keepUpright?: boolean | undefined;
|
|
492
|
+
pin?: boolean | {
|
|
493
|
+
stroke?: string | undefined;
|
|
494
|
+
strokeWidth?: number | undefined;
|
|
495
|
+
dashPattern?: number[] | undefined;
|
|
496
|
+
} | undefined;
|
|
329
497
|
}, {
|
|
330
498
|
text: string;
|
|
331
499
|
distance?: number | undefined;
|
|
@@ -340,6 +508,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
340
508
|
textColor?: string | undefined;
|
|
341
509
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
342
510
|
keepUpright?: boolean | undefined;
|
|
511
|
+
pin?: boolean | {
|
|
512
|
+
stroke?: string | undefined;
|
|
513
|
+
strokeWidth?: number | undefined;
|
|
514
|
+
dashPattern?: number[] | undefined;
|
|
515
|
+
} | undefined;
|
|
343
516
|
}>, "many">]>>;
|
|
344
517
|
zIndex: z.ZodOptional<z.ZodNumber>;
|
|
345
518
|
}, "strip", z.ZodTypeAny, {
|
|
@@ -352,7 +525,39 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
352
525
|
of: string | [number, number] | import('./position').PolarPosition;
|
|
353
526
|
offset: [number, number];
|
|
354
527
|
};
|
|
355
|
-
fill?: string |
|
|
528
|
+
fill?: string | {
|
|
529
|
+
type: "linearGradient";
|
|
530
|
+
stops: {
|
|
531
|
+
offset: number;
|
|
532
|
+
color: string;
|
|
533
|
+
opacity?: number | undefined;
|
|
534
|
+
}[];
|
|
535
|
+
angle?: number | undefined;
|
|
536
|
+
} | {
|
|
537
|
+
type: "radialGradient";
|
|
538
|
+
stops: {
|
|
539
|
+
offset: number;
|
|
540
|
+
color: string;
|
|
541
|
+
opacity?: number | undefined;
|
|
542
|
+
}[];
|
|
543
|
+
radius?: number | undefined;
|
|
544
|
+
center?: [number, number] | undefined;
|
|
545
|
+
} | {
|
|
546
|
+
type: "pattern";
|
|
547
|
+
shape: "lines" | "dots" | "grid";
|
|
548
|
+
size?: number | undefined;
|
|
549
|
+
color?: string | undefined;
|
|
550
|
+
background?: string | undefined;
|
|
551
|
+
lineWidth?: number | undefined;
|
|
552
|
+
rotation?: number | undefined;
|
|
553
|
+
} | {
|
|
554
|
+
type: "image";
|
|
555
|
+
href: string;
|
|
556
|
+
fit?: "fill" | "contain" | "cover" | undefined;
|
|
557
|
+
} | undefined;
|
|
558
|
+
color?: string | undefined;
|
|
559
|
+
opacity?: number | undefined;
|
|
560
|
+
shape?: string | undefined;
|
|
356
561
|
text?: string | (string | {
|
|
357
562
|
text: string;
|
|
358
563
|
fill?: string | undefined;
|
|
@@ -364,16 +569,14 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
364
569
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
365
570
|
} | undefined;
|
|
366
571
|
})[] | undefined;
|
|
367
|
-
opacity?: number | undefined;
|
|
368
572
|
font?: {
|
|
369
573
|
family?: string | undefined;
|
|
370
574
|
size?: number | undefined;
|
|
371
575
|
weight?: number | "normal" | "bold" | undefined;
|
|
372
576
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
373
577
|
} | undefined;
|
|
374
|
-
shape?: string | undefined;
|
|
375
578
|
scale?: number | undefined;
|
|
376
|
-
|
|
579
|
+
id?: string | undefined;
|
|
377
580
|
textColor?: string | undefined;
|
|
378
581
|
label?: {
|
|
379
582
|
text: string;
|
|
@@ -389,6 +592,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
389
592
|
textColor?: string | undefined;
|
|
390
593
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
391
594
|
keepUpright?: boolean | undefined;
|
|
595
|
+
pin?: boolean | {
|
|
596
|
+
stroke?: string | undefined;
|
|
597
|
+
strokeWidth?: number | undefined;
|
|
598
|
+
dashPattern?: number[] | undefined;
|
|
599
|
+
} | undefined;
|
|
392
600
|
} | {
|
|
393
601
|
text: string;
|
|
394
602
|
distance?: number | undefined;
|
|
@@ -403,6 +611,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
403
611
|
textColor?: string | undefined;
|
|
404
612
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
405
613
|
keepUpright?: boolean | undefined;
|
|
614
|
+
pin?: boolean | {
|
|
615
|
+
stroke?: string | undefined;
|
|
616
|
+
strokeWidth?: number | undefined;
|
|
617
|
+
dashPattern?: number[] | undefined;
|
|
618
|
+
} | undefined;
|
|
406
619
|
}[] | undefined;
|
|
407
620
|
roundedCorners?: number | undefined;
|
|
408
621
|
stroke?: string | undefined;
|
|
@@ -411,9 +624,9 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
411
624
|
drawOpacity?: number | undefined;
|
|
412
625
|
zIndex?: number | undefined;
|
|
413
626
|
rotate?: number | undefined;
|
|
414
|
-
id?: string | undefined;
|
|
415
627
|
align?: "left" | "right" | "center" | undefined;
|
|
416
628
|
lineHeight?: number | undefined;
|
|
629
|
+
maxTextWidth?: number | undefined;
|
|
417
630
|
dashed?: boolean | undefined;
|
|
418
631
|
dotted?: boolean | undefined;
|
|
419
632
|
dashArray?: number[] | undefined;
|
|
@@ -437,7 +650,39 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
437
650
|
of: string | [number, number] | import('./position').PolarPosition;
|
|
438
651
|
offset: [number, number];
|
|
439
652
|
};
|
|
440
|
-
fill?: string |
|
|
653
|
+
fill?: string | {
|
|
654
|
+
type: "linearGradient";
|
|
655
|
+
stops: {
|
|
656
|
+
offset: number;
|
|
657
|
+
color: string;
|
|
658
|
+
opacity?: number | undefined;
|
|
659
|
+
}[];
|
|
660
|
+
angle?: number | undefined;
|
|
661
|
+
} | {
|
|
662
|
+
type: "radialGradient";
|
|
663
|
+
stops: {
|
|
664
|
+
offset: number;
|
|
665
|
+
color: string;
|
|
666
|
+
opacity?: number | undefined;
|
|
667
|
+
}[];
|
|
668
|
+
radius?: number | undefined;
|
|
669
|
+
center?: [number, number] | undefined;
|
|
670
|
+
} | {
|
|
671
|
+
type: "pattern";
|
|
672
|
+
shape: "lines" | "dots" | "grid";
|
|
673
|
+
size?: number | undefined;
|
|
674
|
+
color?: string | undefined;
|
|
675
|
+
background?: string | undefined;
|
|
676
|
+
lineWidth?: number | undefined;
|
|
677
|
+
rotation?: number | undefined;
|
|
678
|
+
} | {
|
|
679
|
+
type: "image";
|
|
680
|
+
href: string;
|
|
681
|
+
fit?: "fill" | "contain" | "cover" | undefined;
|
|
682
|
+
} | undefined;
|
|
683
|
+
color?: string | undefined;
|
|
684
|
+
opacity?: number | undefined;
|
|
685
|
+
shape?: string | undefined;
|
|
441
686
|
text?: string | (string | {
|
|
442
687
|
text: string;
|
|
443
688
|
fill?: string | undefined;
|
|
@@ -449,16 +694,14 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
449
694
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
450
695
|
} | undefined;
|
|
451
696
|
})[] | undefined;
|
|
452
|
-
opacity?: number | undefined;
|
|
453
697
|
font?: {
|
|
454
698
|
family?: string | undefined;
|
|
455
699
|
size?: number | undefined;
|
|
456
700
|
weight?: number | "normal" | "bold" | undefined;
|
|
457
701
|
style?: "normal" | "italic" | "oblique" | undefined;
|
|
458
702
|
} | undefined;
|
|
459
|
-
shape?: string | undefined;
|
|
460
703
|
scale?: number | undefined;
|
|
461
|
-
|
|
704
|
+
id?: string | undefined;
|
|
462
705
|
textColor?: string | undefined;
|
|
463
706
|
label?: {
|
|
464
707
|
text: string;
|
|
@@ -474,6 +717,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
474
717
|
textColor?: string | undefined;
|
|
475
718
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
476
719
|
keepUpright?: boolean | undefined;
|
|
720
|
+
pin?: boolean | {
|
|
721
|
+
stroke?: string | undefined;
|
|
722
|
+
strokeWidth?: number | undefined;
|
|
723
|
+
dashPattern?: number[] | undefined;
|
|
724
|
+
} | undefined;
|
|
477
725
|
} | {
|
|
478
726
|
text: string;
|
|
479
727
|
distance?: number | undefined;
|
|
@@ -488,6 +736,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
488
736
|
textColor?: string | undefined;
|
|
489
737
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
490
738
|
keepUpright?: boolean | undefined;
|
|
739
|
+
pin?: boolean | {
|
|
740
|
+
stroke?: string | undefined;
|
|
741
|
+
strokeWidth?: number | undefined;
|
|
742
|
+
dashPattern?: number[] | undefined;
|
|
743
|
+
} | undefined;
|
|
491
744
|
}[] | undefined;
|
|
492
745
|
roundedCorners?: number | undefined;
|
|
493
746
|
stroke?: string | undefined;
|
|
@@ -496,9 +749,9 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
496
749
|
drawOpacity?: number | undefined;
|
|
497
750
|
zIndex?: number | undefined;
|
|
498
751
|
rotate?: number | undefined;
|
|
499
|
-
id?: string | undefined;
|
|
500
752
|
align?: "left" | "right" | "center" | undefined;
|
|
501
753
|
lineHeight?: number | undefined;
|
|
754
|
+
maxTextWidth?: number | undefined;
|
|
502
755
|
dashed?: boolean | undefined;
|
|
503
756
|
dotted?: boolean | undefined;
|
|
504
757
|
dashArray?: number[] | undefined;
|
package/dist/es/ir/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/ir/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/ir/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAMxC;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEzD,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DzB,CAAC;AAEJ,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuMpB,CAAC;AAEJ,sCAAsC;AACtC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
|
package/dist/es/ir/node.js
CHANGED
|
@@ -3,6 +3,7 @@ import { PolarPositionSchema } from "./position/polar-position.js";
|
|
|
3
3
|
import { AT_DIRECTIONS, AtPositionSchema } from "./position/at-position.js";
|
|
4
4
|
import { OffsetPositionSchema } from "./position/offset-position.js";
|
|
5
5
|
import { FontSchema } from "./font.js";
|
|
6
|
+
import { PaintSpecSchema } from "./paint.js";
|
|
6
7
|
import { TextBlockSchema } from "./text.js";
|
|
7
8
|
import { z } from "zod";
|
|
8
9
|
//#region src/ir/node.ts
|
|
@@ -38,7 +39,12 @@ var NodeLabelSchema = z.object({
|
|
|
38
39
|
"radial",
|
|
39
40
|
"tangent"
|
|
40
41
|
]), z.number()]).optional().describe("Rotate the label text around its own center. `none` (default) = horizontal; `radial` = along the node-center -> label-center direction; `tangent` = radial + 90 deg; a number = explicit degrees (screen y-down: 0 = +x, 90 = +y). Only changes text orientation, not placement."),
|
|
41
|
-
keepUpright: z.boolean().optional().describe("When true, flips the rotated label 180 deg if it would otherwise read upside-down (more than 90 deg from upright). Default false (strict geometric angle).")
|
|
42
|
+
keepUpright: z.boolean().optional().describe("When true, flips the rotated label 180 deg if it would otherwise read upside-down (more than 90 deg from upright). Default false (strict geometric angle)."),
|
|
43
|
+
pin: z.union([z.boolean(), z.object({
|
|
44
|
+
stroke: z.string().optional().describe("Leader line color; defaults to the label color / currentColor"),
|
|
45
|
+
strokeWidth: z.number().finite().positive().optional().describe("Leader line width (user units); default 1"),
|
|
46
|
+
dashPattern: z.array(z.number().finite()).optional().describe("Leader dash pattern (e.g. [2, 2])")
|
|
47
|
+
})]).optional().describe("Draw a leader line from the node border to the label (TikZ `pin`). `true` = default thin solid line; an object = leader with style overrides (`stroke` / `strokeWidth` / `dashPattern`); omitted / `false` = no leader. Label placement is unchanged either way.")
|
|
42
48
|
}).describe("Extra text attached around a node border. Multiple labels supported via array form on `Node.label`.");
|
|
43
49
|
var NodeSchema = z.object({
|
|
44
50
|
type: z.literal("node").describe("Discriminator marking this child as a node"),
|
|
@@ -54,8 +60,9 @@ var NodeSchema = z.object({
|
|
|
54
60
|
text: TextBlockSchema.optional(),
|
|
55
61
|
align: z.nativeEnum(NODE_TEXT_ALIGNS).optional().describe("Multi-line text alignment within the text block; `left` / `center` / `right`. Defaults to `center` (matches TikZ)."),
|
|
56
62
|
lineHeight: z.number().positive().optional().describe("Line height in user units; falls back to `font.size × 1.2` when omitted."),
|
|
63
|
+
maxTextWidth: z.number().finite().positive().optional().describe("Max line width before wrapping (user units). The text box shrinks to the actual longest line for short text — this is a wrap threshold, NOT a fixed paragraph width. Western text wraps on word boundaries, CJK per character. Omitted = no auto-wrap (only manual line breaks)."),
|
|
57
64
|
color: z.string().optional().describe("Master color (TikZ `color=`). When set, stroke / fill / text default to it unless individually overridden, and it cascades to the inner text and edge labels. Individual fields (stroke / fill / textColor) always win over this within the same node."),
|
|
58
|
-
fill: z.string().optional().describe("
|
|
65
|
+
fill: z.union([z.string(), PaintSpecSchema]).optional().describe("Node background paint: any CSS color string (e.g. \"lightblue\", \"#fafafa\", \"rgba(...)\") or a PaintSpec (linear / radial gradient, pattern, or image)."),
|
|
59
66
|
fillOpacity: z.number().min(0).max(1).optional().describe("Fill opacity 0..1; affects only the shape fill, leaves stroke / text alone."),
|
|
60
67
|
stroke: z.string().optional().describe("Border color of the node shape; any CSS color. Defaults to currentColor when omitted"),
|
|
61
68
|
drawOpacity: z.number().min(0).max(1).optional().describe("Stroke opacity 0..1 (TikZ `draw opacity`); affects only the border."),
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* 渐变 stop:位置 + 颜色 + 可选透明度
|
|
4
|
+
* @description offset 0..1(沿渐变轴的位置);color 任意 CSS 颜色(含 `currentColor` 主题反应);opacity 0..1。
|
|
5
|
+
*/
|
|
6
|
+
export declare const GradientStopSchema: z.ZodObject<{
|
|
7
|
+
offset: z.ZodNumber;
|
|
8
|
+
color: z.ZodString;
|
|
9
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
offset: number;
|
|
12
|
+
color: string;
|
|
13
|
+
opacity?: number | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
offset: number;
|
|
16
|
+
color: string;
|
|
17
|
+
opacity?: number | undefined;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Paint server 规格(渐变 / 图案 / 图片);纯色仍是 `fill` / `stroke` 上的 string,不进此 schema
|
|
21
|
+
* @description 四种 paint server:linear / radial gradient、pattern(图案)、image(图片)。纯 JSON 形态,保 IR 可序列化。
|
|
22
|
+
* linear 方向用 `angle`(度,polar 约定:0°=+x,90°=+y 屏幕下);radial 的 `center` / `radius` 用 objectBoundingBox(0..1,随形状缩放)。
|
|
23
|
+
*/
|
|
24
|
+
export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
|
|
25
|
+
type: z.ZodLiteral<"linearGradient">;
|
|
26
|
+
stops: z.ZodArray<z.ZodObject<{
|
|
27
|
+
offset: z.ZodNumber;
|
|
28
|
+
color: z.ZodString;
|
|
29
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
}, "strip", z.ZodTypeAny, {
|
|
31
|
+
offset: number;
|
|
32
|
+
color: string;
|
|
33
|
+
opacity?: number | undefined;
|
|
34
|
+
}, {
|
|
35
|
+
offset: number;
|
|
36
|
+
color: string;
|
|
37
|
+
opacity?: number | undefined;
|
|
38
|
+
}>, "many">;
|
|
39
|
+
angle: z.ZodOptional<z.ZodNumber>;
|
|
40
|
+
}, "strip", z.ZodTypeAny, {
|
|
41
|
+
type: "linearGradient";
|
|
42
|
+
stops: {
|
|
43
|
+
offset: number;
|
|
44
|
+
color: string;
|
|
45
|
+
opacity?: number | undefined;
|
|
46
|
+
}[];
|
|
47
|
+
angle?: number | undefined;
|
|
48
|
+
}, {
|
|
49
|
+
type: "linearGradient";
|
|
50
|
+
stops: {
|
|
51
|
+
offset: number;
|
|
52
|
+
color: string;
|
|
53
|
+
opacity?: number | undefined;
|
|
54
|
+
}[];
|
|
55
|
+
angle?: number | undefined;
|
|
56
|
+
}>, z.ZodObject<{
|
|
57
|
+
type: z.ZodLiteral<"radialGradient">;
|
|
58
|
+
stops: z.ZodArray<z.ZodObject<{
|
|
59
|
+
offset: z.ZodNumber;
|
|
60
|
+
color: z.ZodString;
|
|
61
|
+
opacity: z.ZodOptional<z.ZodNumber>;
|
|
62
|
+
}, "strip", z.ZodTypeAny, {
|
|
63
|
+
offset: number;
|
|
64
|
+
color: string;
|
|
65
|
+
opacity?: number | undefined;
|
|
66
|
+
}, {
|
|
67
|
+
offset: number;
|
|
68
|
+
color: string;
|
|
69
|
+
opacity?: number | undefined;
|
|
70
|
+
}>, "many">;
|
|
71
|
+
center: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
72
|
+
radius: z.ZodOptional<z.ZodNumber>;
|
|
73
|
+
}, "strip", z.ZodTypeAny, {
|
|
74
|
+
type: "radialGradient";
|
|
75
|
+
stops: {
|
|
76
|
+
offset: number;
|
|
77
|
+
color: string;
|
|
78
|
+
opacity?: number | undefined;
|
|
79
|
+
}[];
|
|
80
|
+
radius?: number | undefined;
|
|
81
|
+
center?: [number, number] | undefined;
|
|
82
|
+
}, {
|
|
83
|
+
type: "radialGradient";
|
|
84
|
+
stops: {
|
|
85
|
+
offset: number;
|
|
86
|
+
color: string;
|
|
87
|
+
opacity?: number | undefined;
|
|
88
|
+
}[];
|
|
89
|
+
radius?: number | undefined;
|
|
90
|
+
center?: [number, number] | undefined;
|
|
91
|
+
}>, z.ZodObject<{
|
|
92
|
+
type: z.ZodLiteral<"pattern">;
|
|
93
|
+
shape: z.ZodEnum<["lines", "dots", "grid"]>;
|
|
94
|
+
color: z.ZodOptional<z.ZodString>;
|
|
95
|
+
background: z.ZodOptional<z.ZodString>;
|
|
96
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
97
|
+
lineWidth: z.ZodOptional<z.ZodNumber>;
|
|
98
|
+
rotation: z.ZodOptional<z.ZodNumber>;
|
|
99
|
+
}, "strip", z.ZodTypeAny, {
|
|
100
|
+
type: "pattern";
|
|
101
|
+
shape: "lines" | "dots" | "grid";
|
|
102
|
+
size?: number | undefined;
|
|
103
|
+
color?: string | undefined;
|
|
104
|
+
background?: string | undefined;
|
|
105
|
+
lineWidth?: number | undefined;
|
|
106
|
+
rotation?: number | undefined;
|
|
107
|
+
}, {
|
|
108
|
+
type: "pattern";
|
|
109
|
+
shape: "lines" | "dots" | "grid";
|
|
110
|
+
size?: number | undefined;
|
|
111
|
+
color?: string | undefined;
|
|
112
|
+
background?: string | undefined;
|
|
113
|
+
lineWidth?: number | undefined;
|
|
114
|
+
rotation?: number | undefined;
|
|
115
|
+
}>, z.ZodObject<{
|
|
116
|
+
type: z.ZodLiteral<"image">;
|
|
117
|
+
href: z.ZodString;
|
|
118
|
+
fit: z.ZodOptional<z.ZodEnum<["fill", "contain", "cover"]>>;
|
|
119
|
+
}, "strip", z.ZodTypeAny, {
|
|
120
|
+
type: "image";
|
|
121
|
+
href: string;
|
|
122
|
+
fit?: "fill" | "contain" | "cover" | undefined;
|
|
123
|
+
}, {
|
|
124
|
+
type: "image";
|
|
125
|
+
href: string;
|
|
126
|
+
fit?: "fill" | "contain" | "cover" | undefined;
|
|
127
|
+
}>]>;
|
|
128
|
+
/** 渐变 stop 类型 */
|
|
129
|
+
export type IRGradientStop = z.infer<typeof GradientStopSchema>;
|
|
130
|
+
/** Paint server 规格类型(渐变 / 图案 / 图片) */
|
|
131
|
+
export type IRPaintSpec = z.infer<typeof PaintSpecSchema>;
|
|
132
|
+
//# sourceMappingURL=paint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../../src/ir/paint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAMY,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmEwF,CAAC;AAErH,iBAAiB;AACjB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAChE,sCAAsC;AACtC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
//#region src/ir/paint.ts
|
|
3
|
+
/**
|
|
4
|
+
* 渐变 stop:位置 + 颜色 + 可选透明度
|
|
5
|
+
* @description offset 0..1(沿渐变轴的位置);color 任意 CSS 颜色(含 `currentColor` 主题反应);opacity 0..1。
|
|
6
|
+
*/
|
|
7
|
+
var GradientStopSchema = z.object({
|
|
8
|
+
offset: z.number().min(0).max(1).describe("Stop position along the gradient axis, 0..1"),
|
|
9
|
+
color: z.string().describe("Any CSS color (e.g. \"#08f\", \"navy\", \"currentColor\")"),
|
|
10
|
+
opacity: z.number().min(0).max(1).optional().describe("Stop opacity 0..1; omitted = fully opaque")
|
|
11
|
+
}).describe("A single gradient color stop");
|
|
12
|
+
/**
|
|
13
|
+
* Paint server 规格(渐变 / 图案 / 图片);纯色仍是 `fill` / `stroke` 上的 string,不进此 schema
|
|
14
|
+
* @description 四种 paint server:linear / radial gradient、pattern(图案)、image(图片)。纯 JSON 形态,保 IR 可序列化。
|
|
15
|
+
* linear 方向用 `angle`(度,polar 约定:0°=+x,90°=+y 屏幕下);radial 的 `center` / `radius` 用 objectBoundingBox(0..1,随形状缩放)。
|
|
16
|
+
*/
|
|
17
|
+
var PaintSpecSchema = z.discriminatedUnion("type", [
|
|
18
|
+
z.object({
|
|
19
|
+
type: z.literal("linearGradient"),
|
|
20
|
+
stops: z.array(GradientStopSchema).min(2).describe("Gradient stops, at least 2"),
|
|
21
|
+
angle: z.number().finite().optional().describe("Gradient direction in degrees (polar convention; 0°=+x, 90°=+y screen-down); omitted = renderer default (left→right)")
|
|
22
|
+
}).describe("Linear gradient paint server"),
|
|
23
|
+
z.object({
|
|
24
|
+
type: z.literal("radialGradient"),
|
|
25
|
+
stops: z.array(GradientStopSchema).min(2).describe("Gradient stops, at least 2"),
|
|
26
|
+
center: z.tuple([z.number().finite(), z.number().finite()]).optional().describe("Center in objectBoundingBox units (0..1 relative to the filled shape); omitted = (0.5, 0.5)"),
|
|
27
|
+
radius: z.number().finite().positive().optional().describe("Radius in objectBoundingBox units (0..1); omitted = 0.5")
|
|
28
|
+
}).describe("Radial gradient paint server"),
|
|
29
|
+
z.object({
|
|
30
|
+
type: z.literal("pattern"),
|
|
31
|
+
shape: z.enum([
|
|
32
|
+
"lines",
|
|
33
|
+
"dots",
|
|
34
|
+
"grid"
|
|
35
|
+
]).describe("Pattern motif: `lines` (hatching) / `dots` / `grid` (crosshatch)"),
|
|
36
|
+
color: z.string().optional().describe("Motif color; any CSS color, defaults to `currentColor`"),
|
|
37
|
+
background: z.string().optional().describe("Tile background fill; omitted = transparent"),
|
|
38
|
+
size: z.number().finite().positive().optional().describe("Tile period in user units (line gap / dot spacing); default 8"),
|
|
39
|
+
lineWidth: z.number().finite().positive().optional().describe("Line / grid stroke width; for dots, drives the dot radius. Default 1 (dots default to size/5)"),
|
|
40
|
+
rotation: z.number().finite().optional().describe("Rotate the whole pattern, in degrees")
|
|
41
|
+
}).describe("Pattern paint server (hatching / dots / grid)"),
|
|
42
|
+
z.object({
|
|
43
|
+
type: z.literal("image"),
|
|
44
|
+
href: z.string().min(1).describe("Image URL (http(s) or data URI)"),
|
|
45
|
+
fit: z.enum([
|
|
46
|
+
"fill",
|
|
47
|
+
"contain",
|
|
48
|
+
"cover"
|
|
49
|
+
]).optional().describe("How the image maps to the shape: `fill` (stretch) / `contain` / `cover`. Default `cover`")
|
|
50
|
+
}).describe("Image paint server (fills the shape with an image)")
|
|
51
|
+
]).describe("Paint server spec: gradient / pattern / image. Solid color stays a plain string on `fill` / `stroke`.");
|
|
52
|
+
//#endregion
|
|
53
|
+
export { GradientStopSchema, PaintSpecSchema };
|