@retikz/core 0.2.0-alpha.6 → 0.2.0-alpha.8
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/arrows/index.d.ts +13 -0
- package/dist/es/arrows/index.d.ts.map +1 -0
- package/dist/es/arrows/index.js +118 -0
- package/dist/es/arrows/types.d.ts +43 -0
- package/dist/es/arrows/types.d.ts.map +1 -0
- package/dist/es/compile/compile.d.ts +26 -1
- package/dist/es/compile/compile.d.ts.map +1 -1
- package/dist/es/compile/compile.js +37 -4
- package/dist/es/compile/marker-prim.d.ts +22 -0
- package/dist/es/compile/marker-prim.d.ts.map +1 -0
- package/dist/es/compile/marker-prim.js +63 -0
- 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 +21 -0
- package/dist/es/compile/paint.d.ts.map +1 -0
- package/dist/es/compile/paint.js +94 -0
- package/dist/es/compile/path/index.d.ts +18 -0
- package/dist/es/compile/path/index.d.ts.map +1 -1
- package/dist/es/compile/path/index.js +260 -11
- package/dist/es/compile/path/relative.d.ts.map +1 -1
- package/dist/es/compile/path/relative.js +8 -0
- package/dist/es/compile/path/shrink.d.ts +19 -6
- package/dist/es/compile/path/shrink.d.ts.map +1 -1
- package/dist/es/compile/path/shrink.js +147 -25
- package/dist/es/geometry/bend.d.ts +7 -0
- package/dist/es/geometry/bend.d.ts.map +1 -1
- package/dist/es/geometry/bend.js +26 -1
- package/dist/es/index.d.ts +14 -4
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/index.js +7 -2
- package/dist/es/ir/index.d.ts +2 -0
- package/dist/es/ir/index.d.ts.map +1 -1
- package/dist/es/ir/json.d.ts +22 -0
- package/dist/es/ir/json.d.ts.map +1 -0
- package/dist/es/ir/json.js +25 -0
- package/dist/es/ir/node.d.ts +262 -9
- 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 +154 -0
- package/dist/es/ir/paint.d.ts.map +1 -0
- package/dist/es/ir/paint.js +59 -0
- package/dist/es/ir/path/arrow.d.ts +52 -72
- package/dist/es/ir/path/arrow.d.ts.map +1 -1
- package/dist/es/ir/path/arrow.js +5 -5
- package/dist/es/ir/path/path.d.ts +637 -87
- package/dist/es/ir/path/path.d.ts.map +1 -1
- package/dist/es/ir/path/path.js +23 -2
- package/dist/es/ir/path/step.d.ts +363 -8
- package/dist/es/ir/path/step.d.ts.map +1 -1
- package/dist/es/ir/path/step.js +17 -4
- package/dist/es/ir/scope.d.ts +1874 -338
- package/dist/es/ir/scope.d.ts.map +1 -1
- package/dist/es/ir/scope.js +2 -1
- package/dist/es/pathGenerators/define.d.ts +16 -0
- package/dist/es/pathGenerators/define.d.ts.map +1 -0
- package/dist/es/pathGenerators/define.js +23 -0
- package/dist/es/pathGenerators/index.d.ts +9 -0
- package/dist/es/pathGenerators/index.d.ts.map +1 -0
- package/dist/es/pathGenerators/types.d.ts +45 -0
- package/dist/es/pathGenerators/types.d.ts.map +1 -0
- package/dist/es/patterns/index.d.ts +10 -0
- package/dist/es/patterns/index.d.ts.map +1 -0
- package/dist/es/patterns/index.js +83 -0
- package/dist/es/patterns/types.d.ts +38 -0
- package/dist/es/patterns/types.d.ts.map +1 -0
- package/dist/es/primitive/ellipse.d.ts +3 -5
- package/dist/es/primitive/ellipse.d.ts.map +1 -1
- package/dist/es/primitive/index.d.ts +1 -0
- package/dist/es/primitive/index.d.ts.map +1 -1
- package/dist/es/primitive/marker.d.ts +160 -0
- package/dist/es/primitive/marker.d.ts.map +1 -0
- package/dist/es/primitive/paint.d.ts +46 -0
- package/dist/es/primitive/paint.d.ts.map +1 -0
- package/dist/es/primitive/path.d.ts +25 -20
- 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/types.d.ts +2 -2
- package/dist/es/shapes/types.d.ts.map +1 -1
- package/dist/lib/arrows/index.cjs +118 -0
- package/dist/lib/arrows/index.d.ts +13 -0
- package/dist/lib/arrows/index.d.ts.map +1 -0
- package/dist/lib/arrows/types.d.ts +43 -0
- package/dist/lib/arrows/types.d.ts.map +1 -0
- package/dist/lib/compile/compile.cjs +38 -5
- package/dist/lib/compile/compile.d.ts +26 -1
- package/dist/lib/compile/compile.d.ts.map +1 -1
- package/dist/lib/compile/marker-prim.cjs +63 -0
- package/dist/lib/compile/marker-prim.d.ts +22 -0
- package/dist/lib/compile/marker-prim.d.ts.map +1 -0
- 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 +94 -0
- package/dist/lib/compile/paint.d.ts +21 -0
- package/dist/lib/compile/paint.d.ts.map +1 -0
- package/dist/lib/compile/path/index.cjs +258 -9
- package/dist/lib/compile/path/index.d.ts +18 -0
- package/dist/lib/compile/path/index.d.ts.map +1 -1
- package/dist/lib/compile/path/relative.cjs +8 -0
- package/dist/lib/compile/path/relative.d.ts.map +1 -1
- package/dist/lib/compile/path/shrink.cjs +147 -25
- package/dist/lib/compile/path/shrink.d.ts +19 -6
- package/dist/lib/compile/path/shrink.d.ts.map +1 -1
- package/dist/lib/geometry/bend.cjs +26 -0
- package/dist/lib/geometry/bend.d.ts +7 -0
- package/dist/lib/geometry/bend.d.ts.map +1 -1
- package/dist/lib/index.cjs +14 -0
- package/dist/lib/index.d.ts +14 -4
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/ir/index.d.ts +2 -0
- package/dist/lib/ir/index.d.ts.map +1 -1
- package/dist/lib/ir/json.cjs +26 -0
- package/dist/lib/ir/json.d.ts +22 -0
- package/dist/lib/ir/json.d.ts.map +1 -0
- package/dist/lib/ir/node.cjs +9 -2
- package/dist/lib/ir/node.d.ts +262 -9
- package/dist/lib/ir/node.d.ts.map +1 -1
- package/dist/lib/ir/paint.cjs +61 -0
- package/dist/lib/ir/paint.d.ts +154 -0
- package/dist/lib/ir/paint.d.ts.map +1 -0
- package/dist/lib/ir/path/arrow.cjs +5 -5
- package/dist/lib/ir/path/arrow.d.ts +52 -72
- package/dist/lib/ir/path/arrow.d.ts.map +1 -1
- package/dist/lib/ir/path/path.cjs +22 -1
- package/dist/lib/ir/path/path.d.ts +637 -87
- package/dist/lib/ir/path/path.d.ts.map +1 -1
- package/dist/lib/ir/path/step.cjs +17 -3
- package/dist/lib/ir/path/step.d.ts +363 -8
- package/dist/lib/ir/path/step.d.ts.map +1 -1
- package/dist/lib/ir/scope.cjs +2 -1
- package/dist/lib/ir/scope.d.ts +1874 -338
- package/dist/lib/ir/scope.d.ts.map +1 -1
- package/dist/lib/pathGenerators/define.cjs +23 -0
- package/dist/lib/pathGenerators/define.d.ts +16 -0
- package/dist/lib/pathGenerators/define.d.ts.map +1 -0
- package/dist/lib/pathGenerators/index.d.ts +9 -0
- package/dist/lib/pathGenerators/index.d.ts.map +1 -0
- package/dist/lib/pathGenerators/types.d.ts +45 -0
- package/dist/lib/pathGenerators/types.d.ts.map +1 -0
- package/dist/lib/patterns/index.cjs +83 -0
- package/dist/lib/patterns/index.d.ts +10 -0
- package/dist/lib/patterns/index.d.ts.map +1 -0
- package/dist/lib/patterns/types.d.ts +38 -0
- package/dist/lib/patterns/types.d.ts.map +1 -0
- package/dist/lib/primitive/ellipse.d.ts +3 -5
- package/dist/lib/primitive/ellipse.d.ts.map +1 -1
- package/dist/lib/primitive/index.d.ts +1 -0
- package/dist/lib/primitive/index.d.ts.map +1 -1
- package/dist/lib/primitive/marker.d.ts +160 -0
- package/dist/lib/primitive/marker.d.ts.map +1 -0
- package/dist/lib/primitive/paint.d.ts +46 -0
- package/dist/lib/primitive/paint.d.ts.map +1 -0
- package/dist/lib/primitive/path.d.ts +25 -20
- 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/types.d.ts +2 -2
- package/dist/lib/shapes/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/es/compile/path/arrow-geometry.d.ts +0 -22
- package/dist/es/compile/path/arrow-geometry.d.ts.map +0 -1
- package/dist/es/compile/path/arrow-geometry.js +0 -40
- package/dist/lib/compile/path/arrow-geometry.cjs +0 -41
- package/dist/lib/compile/path/arrow-geometry.d.ts +0 -22
- package/dist/lib/compile/path/arrow-geometry.d.ts.map +0 -1
package/dist/es/geometry/bend.js
CHANGED
|
@@ -14,5 +14,30 @@ var bendControlPoints = (from, to, direction, bendAngle) => {
|
|
|
14
14
|
const ctlOffset = 4 / 3 * (chord * Math.tan(bendAngle * Math.PI / 180 / 2));
|
|
15
15
|
return [[from[0] + dx / 3 + ctlOffset * nx, from[1] + dy / 3 + ctlOffset * ny], [from[0] + 2 * dx / 3 + ctlOffset * nx, from[1] + 2 * dy / 3 + ctlOffset * ny]];
|
|
16
16
|
};
|
|
17
|
+
/** 默认 looseness(looseness 缺省时) */
|
|
18
|
+
var DEFAULT_LOOSENESS = 1;
|
|
19
|
+
/** self-loop(from==to)默认环大小(user units,受 looseness 缩放) */
|
|
20
|
+
var DEFAULT_LOOP_SIZE = 1;
|
|
21
|
+
/** 直边 cubic 控制点距离系数(chord 的几分之一) */
|
|
22
|
+
var OUTIN_DISTANCE_FACTOR = 1 / 3;
|
|
23
|
+
/** 角度(度)转单位方向向量(0°=+x,90°=+y screen-down,与 IR 角度约定一致) */
|
|
24
|
+
var dirOf = (angleDeg) => {
|
|
25
|
+
const rad = angleDeg * Math.PI / 180;
|
|
26
|
+
return [Math.cos(rad), Math.sin(rad)];
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
* out/in 角 + looseness 拟合 from→to 的非对称 cubic(含 self-loop 退化)
|
|
30
|
+
* @description 标准 TikZ:control1 = from + d·dir(outAngle),control2 = to + d·dir(inAngle);
|
|
31
|
+
* d = looseness × distance,distance = chord × 系数(chord>0)或默认环大小(self-loop,from==to chord=0)。
|
|
32
|
+
* self-loop 时两控制点沿 out/in 两个不同方向各自从端点撑开,画出环(bend 对称弯在 chord=0 时退化为点,故 out/in 是自环唯一手段)。
|
|
33
|
+
*/
|
|
34
|
+
var outInControlPoints = (from, to, outAngle, inAngle, looseness) => {
|
|
35
|
+
const k = looseness ?? DEFAULT_LOOSENESS;
|
|
36
|
+
const chord = Math.hypot(to[0] - from[0], to[1] - from[1]);
|
|
37
|
+
const d = k * (chord === 0 ? DEFAULT_LOOP_SIZE : chord * OUTIN_DISTANCE_FACTOR);
|
|
38
|
+
const outDir = dirOf(outAngle);
|
|
39
|
+
const inDir = dirOf(inAngle);
|
|
40
|
+
return [[from[0] + d * outDir[0], from[1] + d * outDir[1]], [to[0] + d * inDir[0], to[1] + d * inDir[1]]];
|
|
41
|
+
};
|
|
17
42
|
//#endregion
|
|
18
|
-
export { bendControlPoints };
|
|
43
|
+
export { bendControlPoints, outInControlPoints };
|
package/dist/es/index.d.ts
CHANGED
|
@@ -2,14 +2,18 @@
|
|
|
2
2
|
* @retikz/core 公开 API
|
|
3
3
|
* @description 任何 framework adapter(@retikz/react、@retikz/vue、@retikz/canvas、@retikz/ssr)只能 import 本文件导出内容,不准走子路径。本包零 React/零 DOM 依赖
|
|
4
4
|
*/
|
|
5
|
-
export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AT_DIRECTIONS, TargetSchema, AnchorRefSchema, NodeTargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, RectangleStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ScopeSchema, NodeDefaultSchema, PathDefaultSchema, LabelDefaultSchema, ArrowDefaultSchema, TransformSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, } from './ir';
|
|
6
|
-
export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirection, IRTarget, IRAnchorRef, IRNodeTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRRectangleStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRScope, IRNodeDefault, IRPathDefault, IRLabelDefault, IRArrowDefault, StyleChannel, IRTransform, IRTranslateTransform, IRPolarTranslateTransform, IRAtTranslateTransform, IROffsetTranslateTransform, IRRotateTransform, IRScaleTransform, IRChild, IR, ArrowShape, IRArrowDetail, IRArrowEndDetail, NodeShape, BuiltinShapeName, NodeTextAlign, } from './ir';
|
|
7
|
-
export { ARROW_SHAPES, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES, ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, NODE_SHAPES, NODE_TEXT_ALIGNS, } from './ir';
|
|
5
|
+
export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AT_DIRECTIONS, TargetSchema, AnchorRefSchema, NodeTargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, RectangleStepSchema, GeneratorStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ScopeSchema, NodeDefaultSchema, PathDefaultSchema, LabelDefaultSchema, ArrowDefaultSchema, TransformSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, PaintSpecSchema, GradientStopSchema, JsonValueSchema, JsonObjectSchema, } from './ir';
|
|
6
|
+
export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirection, IRTarget, IRAnchorRef, IRNodeTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRRectangleStep, IRGeneratorStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRScope, IRNodeDefault, IRPathDefault, IRLabelDefault, IRArrowDefault, StyleChannel, IRTransform, IRTranslateTransform, IRPolarTranslateTransform, IRAtTranslateTransform, IROffsetTranslateTransform, IRRotateTransform, IRScaleTransform, IRChild, IR, ArrowShape, BuiltinArrowName, ArrowShapeName, IRArrowDetail, IRArrowEndDetail, NodeShape, BuiltinShapeName, NodeTextAlign, PatternShapeName, BuiltinPatternName, IRPaintSpec, IRGradientStop, JsonValue, IRJsonObject, } from './ir';
|
|
7
|
+
export { ARROW_SHAPES, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES, ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, NODE_SHAPES, NODE_TEXT_ALIGNS, PATTERN_SHAPES, } from './ir';
|
|
8
8
|
export type { ScenePrimitive, RectPrim, EllipsePrim, TextPrim, TextLine, PathPrim, PathCommand,
|
|
9
9
|
/** 7 个 named PathCommand 分支(便于 wrapper / Pick<>) */
|
|
10
10
|
MovePathCommand, LinePathCommand, QuadPathCommand, CubicPathCommand, ArcPathCommand, EllipseArcPathCommand, ClosePathCommand, ArrowEndSpec, GroupPrim, Transform,
|
|
11
11
|
/** 3 个 named Transform 分支 */
|
|
12
|
-
TranslateTransform, RotateTransform, ScaleTransform, Layout, Scene,
|
|
12
|
+
TranslateTransform, RotateTransform, ScaleTransform, Layout, Scene, PaintValue, SceneResource,
|
|
13
|
+
/** 已解析 pattern tile(emit-in-compile 产物,进 Scene 资源,纯数据无函数) */
|
|
14
|
+
ResolvedPatternTile,
|
|
15
|
+
/** marker 窄子集(ArrowDefinition.emit 产物,renderer-agnostic) */
|
|
16
|
+
MarkerPrimitive, MarkerPathPrim, MarkerEllipsePrim, MarkerRectPrim, MarkerGroupPrim, MarkerPathCommand, MarkerFill, } from './primitive';
|
|
13
17
|
export type { FontSpec, TextMetrics, TextMeasurer, CompileOptions, CompileWarning, } from './compile';
|
|
14
18
|
export { computeLayout, fallbackMeasurer, compileToScene } from './compile';
|
|
15
19
|
export type { WayItem, WayDSL, WayCycle, WayVia, WayRelativeItem, WayLabel, WayLabelOp, } from './parsers';
|
|
@@ -18,5 +22,11 @@ export type { Position, Rect, RectAnchor, Circle, Ellipse, Diamond, PolarPositio
|
|
|
18
22
|
export { point, rect, circle, ellipse, diamond, RECT_ANCHORS, polar } from './geometry';
|
|
19
23
|
export type { ShapeDefinition, ShapeStyle } from './shapes';
|
|
20
24
|
export { BUILTIN_SHAPES, worldToLocal, localToWorld } from './shapes';
|
|
25
|
+
export type { ArrowDefinition, ArrowEmitContext } from './arrows';
|
|
26
|
+
export { BUILTIN_ARROWS } from './arrows';
|
|
27
|
+
export type { PatternDefinition, PatternEmitContext } from './patterns';
|
|
28
|
+
export { BUILTIN_PATTERNS } from './patterns';
|
|
29
|
+
export type { PathGeneratorDefinition, PathGeneratorContext } from './pathGenerators';
|
|
30
|
+
export { definePathGenerator } from './pathGenerators';
|
|
21
31
|
export type { ValueOf, AssertEqual } from './types';
|
|
22
32
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/es/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,oBAAoB,EACpB,8BAA8B,EAC9B,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,WAAW,EACX,WAAW,EACX,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/es/index.js
CHANGED
|
@@ -3,12 +3,14 @@ import { PolarPositionSchema } from "./ir/position/polar-position.js";
|
|
|
3
3
|
import { AT_DIRECTIONS, AtPositionSchema } from "./ir/position/at-position.js";
|
|
4
4
|
import { OffsetPositionSchema } from "./ir/position/offset-position.js";
|
|
5
5
|
import { FontSchema } from "./ir/font.js";
|
|
6
|
+
import { JsonObjectSchema, JsonValueSchema } from "./ir/json.js";
|
|
7
|
+
import { GradientStopSchema, PATTERN_SHAPES, PaintSpecSchema } from "./ir/paint.js";
|
|
6
8
|
import { LineSpecSchema, TextBlockSchema } from "./ir/text.js";
|
|
7
9
|
import { ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, ARROW_SHAPES, ArrowDetailSchema, ArrowEndDetailSchema, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES } from "./ir/path/arrow.js";
|
|
8
10
|
import { localToWorld, worldToLocal } from "./geometry/_transform.js";
|
|
9
11
|
import { RECT_ANCHORS, rect } from "./geometry/rect.js";
|
|
10
12
|
import { AnchorRefSchema, NodeTargetSchema, RelativeAccumulateTargetSchema, RelativeTargetSchema, TargetSchema } from "./ir/path/target.js";
|
|
11
|
-
import { ArcStepSchema, BendStepSchema, CirclePathStepSchema, ControlPointSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, EllipsePathStepSchema, FoldStepSchema, LineStepSchema, MoveStepSchema, RectangleStepSchema, StepLabelSchema, StepSchema } from "./ir/path/step.js";
|
|
13
|
+
import { ArcStepSchema, BendStepSchema, CirclePathStepSchema, ControlPointSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, EllipsePathStepSchema, FoldStepSchema, GeneratorStepSchema, LineStepSchema, MoveStepSchema, RectangleStepSchema, StepLabelSchema, StepSchema } from "./ir/path/step.js";
|
|
12
14
|
import { PathSchema } from "./ir/path/path.js";
|
|
13
15
|
import { NODE_SHAPES, NODE_TEXT_ALIGNS, NodeLabelSchema, NodeSchema } from "./ir/node.js";
|
|
14
16
|
import { CoordinateSchema } from "./ir/coordinate.js";
|
|
@@ -19,6 +21,8 @@ import { circle } from "./geometry/circle.js";
|
|
|
19
21
|
import { ellipse } from "./geometry/ellipse.js";
|
|
20
22
|
import { diamond } from "./geometry/diamond.js";
|
|
21
23
|
import { BUILTIN_SHAPES } from "./shapes/index.js";
|
|
24
|
+
import { BUILTIN_ARROWS } from "./arrows/index.js";
|
|
25
|
+
import { BUILTIN_PATTERNS } from "./patterns/index.js";
|
|
22
26
|
import { fallbackMeasurer } from "./compile/text-metrics.js";
|
|
23
27
|
import { computeLayout } from "./compile/layout.js";
|
|
24
28
|
import { compileToScene } from "./compile/compile.js";
|
|
@@ -27,4 +31,5 @@ import { parseTargetSugar } from "./parsers/parseTargetSugar.js";
|
|
|
27
31
|
import { DrawWay, parseWay } from "./parsers/parseWay.js";
|
|
28
32
|
import { polar } from "./geometry/polar.js";
|
|
29
33
|
import { point } from "./geometry/point.js";
|
|
30
|
-
|
|
34
|
+
import { definePathGenerator } from "./pathGenerators/define.js";
|
|
35
|
+
export { ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, ARROW_SHAPES, AT_DIRECTIONS, AnchorRefSchema, ArcStepSchema, ArrowDefaultSchema, ArrowDetailSchema, ArrowEndDetailSchema, AtPositionSchema, BUILTIN_ARROWS, BUILTIN_PATTERNS, BUILTIN_SHAPES, BendStepSchema, CURRENT_IR_VERSION, ChildSchema, CirclePathStepSchema, ControlPointSchema, CoordinateSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, DEFAULT_ARROW_SHAPE, DrawWay, EllipsePathStepSchema, FoldStepSchema, FontSchema, GeneratorStepSchema, GradientStopSchema, HOLLOW_ARROW_SHAPES, JsonObjectSchema, JsonValueSchema, LabelDefaultSchema, LineSpecSchema, LineStepSchema, MoveStepSchema, NODE_SHAPES, NODE_TEXT_ALIGNS, NodeDefaultSchema, NodeLabelSchema, NodeSchema, NodeTargetSchema, OffsetPositionSchema, PATTERN_SHAPES, PaintSpecSchema, PathDefaultSchema, PathSchema, PolarPositionSchema, PositionSchema, RECT_ANCHORS, RectangleStepSchema, RelativeAccumulateTargetSchema, RelativeTargetSchema, SceneSchema, ScopeSchema, StepLabelSchema, StepSchema, TargetSchema, TextBlockSchema, TransformSchema, circle, compileToScene, computeLayout, definePathGenerator, diamond, ellipse, fallbackMeasurer, localToWorld, parseNodeTarget, parseTargetSugar, parseWay, point, polar, rect, worldToLocal };
|
package/dist/es/ir/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* 递归 JSON 值 schema
|
|
4
|
+
* @description 守 IR 100% JSON 可序列化:path generator step 的 params 只能由 JSON 值构成;
|
|
5
|
+
* 函数 / undefined / class 实例 / Symbol / Map / Set 等非 JSON 值在 parse 阶段被拒。
|
|
6
|
+
* `z.lazy` 让 array / object 分支可递归引用本 schema,深度不限。
|
|
7
|
+
*/
|
|
8
|
+
export declare const JsonValueSchema: z.ZodType<JsonValue>;
|
|
9
|
+
/**
|
|
10
|
+
* JSON 对象 schema
|
|
11
|
+
* @description path generator step 的 `params` 类型;键为字符串、值为递归 JSON 值。
|
|
12
|
+
* 作为 compile 运行时的第二道护栏:即便外部 `paramsSchema` 是宽松类型,对其 parse 结果再跑本 schema
|
|
13
|
+
* 可拦下非 JSON 输出(function / undefined 等)。core 公开供外部 refine。
|
|
14
|
+
*/
|
|
15
|
+
export declare const JsonObjectSchema: z.ZodRecord<z.ZodString, z.ZodType<JsonValue, z.ZodTypeDef, JsonValue>>;
|
|
16
|
+
/** 单个 JSON 值(字符串 / 数字 / 布尔 / null / 数组 / 对象,递归) */
|
|
17
|
+
export type JsonValue = string | number | boolean | null | Array<JsonValue> | {
|
|
18
|
+
[key: string]: JsonValue;
|
|
19
|
+
};
|
|
20
|
+
/** JSON 对象类型(path generator step 的 params 形态) */
|
|
21
|
+
export type IRJsonObject = z.infer<typeof JsonObjectSchema>;
|
|
22
|
+
//# sourceMappingURL=json.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.d.ts","sourceRoot":"","sources":["../../../src/ir/json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,eAAO,MAAM,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAahD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,yEAI1B,CAAC;AAEJ,mDAAmD;AACnD,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,KAAK,CAAC,SAAS,CAAC,GAChB;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,CAAC;AAEjC,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
//#region src/ir/json.ts
|
|
3
|
+
/**
|
|
4
|
+
* 递归 JSON 值 schema
|
|
5
|
+
* @description 守 IR 100% JSON 可序列化:path generator step 的 params 只能由 JSON 值构成;
|
|
6
|
+
* 函数 / undefined / class 实例 / Symbol / Map / Set 等非 JSON 值在 parse 阶段被拒。
|
|
7
|
+
* `z.lazy` 让 array / object 分支可递归引用本 schema,深度不限。
|
|
8
|
+
*/
|
|
9
|
+
var JsonValueSchema = z.lazy(() => z.union([
|
|
10
|
+
z.string(),
|
|
11
|
+
z.number().finite(),
|
|
12
|
+
z.boolean(),
|
|
13
|
+
z.null(),
|
|
14
|
+
z.array(JsonValueSchema),
|
|
15
|
+
JsonObjectSchema
|
|
16
|
+
]).describe("A JSON value: string, finite number, boolean, null, an array of JSON values, or an object of JSON values. Recursive with no depth limit. Functions, undefined, Symbol, class instances, Map, and Set are rejected to keep the IR fully JSON-serializable."));
|
|
17
|
+
/**
|
|
18
|
+
* JSON 对象 schema
|
|
19
|
+
* @description path generator step 的 `params` 类型;键为字符串、值为递归 JSON 值。
|
|
20
|
+
* 作为 compile 运行时的第二道护栏:即便外部 `paramsSchema` 是宽松类型,对其 parse 结果再跑本 schema
|
|
21
|
+
* 可拦下非 JSON 输出(function / undefined 等)。core 公开供外部 refine。
|
|
22
|
+
*/
|
|
23
|
+
var JsonObjectSchema = z.record(JsonValueSchema).describe("A JSON object: string keys mapping to recursive JSON values. Used as the params payload of a path generator step and as the runtime guard that the value is fully JSON-serializable. No maximum depth or size is enforced.");
|
|
24
|
+
//#endregion
|
|
25
|
+
export { JsonObjectSchema, JsonValueSchema };
|
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.ZodString;
|
|
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: string;
|
|
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: string;
|
|
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: string;
|
|
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,13 @@ 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
|
-
color?: string | undefined;
|
|
377
579
|
id?: string | undefined;
|
|
378
580
|
textColor?: string | undefined;
|
|
379
581
|
label?: {
|
|
@@ -390,6 +592,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
390
592
|
textColor?: string | undefined;
|
|
391
593
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
392
594
|
keepUpright?: boolean | undefined;
|
|
595
|
+
pin?: boolean | {
|
|
596
|
+
stroke?: string | undefined;
|
|
597
|
+
strokeWidth?: number | undefined;
|
|
598
|
+
dashPattern?: number[] | undefined;
|
|
599
|
+
} | undefined;
|
|
393
600
|
} | {
|
|
394
601
|
text: string;
|
|
395
602
|
distance?: number | undefined;
|
|
@@ -404,6 +611,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
404
611
|
textColor?: string | undefined;
|
|
405
612
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
406
613
|
keepUpright?: boolean | undefined;
|
|
614
|
+
pin?: boolean | {
|
|
615
|
+
stroke?: string | undefined;
|
|
616
|
+
strokeWidth?: number | undefined;
|
|
617
|
+
dashPattern?: number[] | undefined;
|
|
618
|
+
} | undefined;
|
|
407
619
|
}[] | undefined;
|
|
408
620
|
roundedCorners?: number | undefined;
|
|
409
621
|
stroke?: string | undefined;
|
|
@@ -414,6 +626,7 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
414
626
|
rotate?: number | 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: string;
|
|
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,13 @@ 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
|
-
color?: string | undefined;
|
|
462
704
|
id?: string | undefined;
|
|
463
705
|
textColor?: string | undefined;
|
|
464
706
|
label?: {
|
|
@@ -475,6 +717,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
475
717
|
textColor?: string | undefined;
|
|
476
718
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
477
719
|
keepUpright?: boolean | undefined;
|
|
720
|
+
pin?: boolean | {
|
|
721
|
+
stroke?: string | undefined;
|
|
722
|
+
strokeWidth?: number | undefined;
|
|
723
|
+
dashPattern?: number[] | undefined;
|
|
724
|
+
} | undefined;
|
|
478
725
|
} | {
|
|
479
726
|
text: string;
|
|
480
727
|
distance?: number | undefined;
|
|
@@ -489,6 +736,11 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
489
736
|
textColor?: string | undefined;
|
|
490
737
|
rotate?: number | "none" | "radial" | "tangent" | undefined;
|
|
491
738
|
keepUpright?: boolean | undefined;
|
|
739
|
+
pin?: boolean | {
|
|
740
|
+
stroke?: string | undefined;
|
|
741
|
+
strokeWidth?: number | undefined;
|
|
742
|
+
dashPattern?: number[] | undefined;
|
|
743
|
+
} | undefined;
|
|
492
744
|
}[] | undefined;
|
|
493
745
|
roundedCorners?: number | undefined;
|
|
494
746
|
stroke?: string | undefined;
|
|
@@ -499,6 +751,7 @@ export declare const NodeSchema: z.ZodObject<{
|
|
|
499
751
|
rotate?: number | 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."),
|