@retikz/core 0.3.0-alpha.4 → 0.3.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/arrows/define.d.ts +9 -0
- package/dist/es/arrows/define.d.ts.map +1 -0
- package/dist/es/arrows/define.js +10 -0
- package/dist/es/arrows/index.d.ts +3 -1
- package/dist/es/arrows/index.d.ts.map +1 -1
- package/dist/es/arrows/index.js +14 -1
- package/dist/es/arrows/types.d.ts +4 -2
- package/dist/es/arrows/types.d.ts.map +1 -1
- package/dist/es/compile/anchor-cache.d.ts +3 -3
- package/dist/es/compile/anchor-cache.d.ts.map +1 -1
- package/dist/es/compile/anchor-cache.js +18 -5
- package/dist/es/compile/compile.d.ts +5 -14
- package/dist/es/compile/compile.d.ts.map +1 -1
- package/dist/es/compile/compile.js +73 -41
- package/dist/es/compile/{lowerComposites.d.ts → composite.d.ts} +9 -2
- package/dist/es/compile/composite.d.ts.map +1 -0
- package/dist/es/compile/{lowerComposites.js → composite.js} +9 -1
- package/dist/es/compile/constant.d.ts +32 -0
- package/dist/es/compile/constant.d.ts.map +1 -0
- package/dist/es/compile/constant.js +23 -0
- package/dist/es/compile/direction.d.ts +27 -0
- package/dist/es/compile/direction.d.ts.map +1 -0
- package/dist/es/compile/direction.js +30 -0
- package/dist/es/compile/index.d.ts +3 -1
- package/dist/es/compile/index.d.ts.map +1 -1
- package/dist/es/compile/name-stack.d.ts +3 -1
- package/dist/es/compile/name-stack.d.ts.map +1 -1
- package/dist/es/compile/name-stack.js +5 -1
- package/dist/es/compile/node.d.ts +20 -7
- package/dist/es/compile/node.d.ts.map +1 -1
- package/dist/es/compile/node.js +42 -63
- package/dist/es/compile/paint.js +1 -1
- package/dist/es/compile/path/anchor.d.ts +4 -3
- package/dist/es/compile/path/anchor.d.ts.map +1 -1
- package/dist/es/compile/path/anchor.js +9 -12
- package/dist/es/compile/path/index.d.ts +6 -8
- package/dist/es/compile/path/index.d.ts.map +1 -1
- package/dist/es/compile/path/index.js +59 -34
- package/dist/es/compile/path/relative.d.ts +1 -1
- package/dist/es/compile/path/relative.js +1 -1
- package/dist/es/compile/path/shrink.d.ts +3 -1
- package/dist/es/compile/path/shrink.d.ts.map +1 -1
- package/dist/es/compile/path/shrink.js +16 -11
- package/dist/es/compile/position.d.ts +2 -2
- package/dist/es/compile/position.d.ts.map +1 -1
- package/dist/es/compile/position.js +6 -19
- package/dist/es/compile/precision.d.ts +1 -1
- package/dist/es/compile/precision.d.ts.map +1 -1
- package/dist/es/compile/precision.js +2 -2
- package/dist/es/compile/scope.d.ts +7 -5
- package/dist/es/compile/scope.d.ts.map +1 -1
- package/dist/es/compile/scope.js +29 -13
- package/dist/es/compile/style.d.ts +2 -2
- package/dist/es/compile/style.d.ts.map +1 -1
- package/dist/es/compile/style.js +2 -2
- package/dist/es/composites/define.d.ts +8 -0
- package/dist/es/composites/define.d.ts.map +1 -0
- package/dist/es/composites/{types.js → define.js} +2 -2
- package/dist/es/composites/index.d.ts +1 -1
- package/dist/es/composites/index.d.ts.map +1 -1
- package/dist/es/composites/types.d.ts +0 -6
- package/dist/es/composites/types.d.ts.map +1 -1
- package/dist/es/geometry/anchor.d.ts +33 -0
- package/dist/es/geometry/anchor.d.ts.map +1 -0
- package/dist/es/geometry/anchor.js +45 -0
- package/dist/es/geometry/bend.d.ts +1 -1
- package/dist/es/geometry/bend.js +2 -2
- package/dist/es/geometry/circle.d.ts +4 -4
- package/dist/es/geometry/circle.d.ts.map +1 -1
- package/dist/es/geometry/circle.js +3 -3
- package/dist/es/geometry/{roundedContour.d.ts → contour.d.ts} +4 -5
- package/dist/es/geometry/contour.d.ts.map +1 -0
- package/dist/es/geometry/{roundedContour.js → contour.js} +22 -34
- package/dist/es/geometry/diamond.d.ts +3 -3
- package/dist/es/geometry/diamond.d.ts.map +1 -1
- package/dist/es/geometry/diamond.js +2 -2
- package/dist/{lib/geometry/_edge.d.ts → es/geometry/edge.d.ts} +1 -1
- package/dist/es/geometry/edge.d.ts.map +1 -0
- package/dist/es/geometry/{_edge.js → edge.js} +1 -1
- package/dist/es/geometry/ellipse.d.ts +3 -3
- package/dist/es/geometry/ellipse.d.ts.map +1 -1
- package/dist/es/geometry/ellipse.js +2 -2
- package/dist/es/geometry/index.d.ts +2 -1
- package/dist/es/geometry/index.d.ts.map +1 -1
- package/dist/es/geometry/point.d.ts +6 -0
- package/dist/es/geometry/point.d.ts.map +1 -1
- package/dist/es/geometry/point.js +17 -0
- package/dist/es/geometry/rect.d.ts +4 -17
- package/dist/es/geometry/rect.d.ts.map +1 -1
- package/dist/es/geometry/rect.js +4 -16
- package/dist/es/geometry/segment.d.ts.map +1 -1
- package/dist/es/geometry/segment.js +25 -47
- package/dist/{lib/geometry/_transform.d.ts → es/geometry/transform.d.ts} +1 -1
- package/dist/es/geometry/transform.d.ts.map +1 -0
- package/dist/es/geometry/{_transform.js → transform.js} +1 -1
- package/dist/es/index.d.ts +13 -10
- package/dist/es/index.d.ts.map +1 -1
- package/dist/es/index.js +19 -14
- package/dist/es/ir/animation.d.ts +219 -0
- package/dist/es/ir/animation.d.ts.map +1 -0
- package/dist/es/ir/animation.js +118 -0
- package/dist/es/ir/boundary.d.ts +1 -1
- package/dist/es/ir/boundary.d.ts.map +1 -1
- package/dist/es/ir/coordinate.d.ts +8 -8
- 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 +249 -92
- package/dist/es/ir/node.d.ts.map +1 -1
- package/dist/es/ir/node.js +25 -23
- package/dist/es/ir/paint.d.ts +19 -18
- package/dist/es/ir/paint.d.ts.map +1 -1
- package/dist/es/ir/paint.js +10 -10
- package/dist/es/ir/path/arrow.d.ts +39 -38
- package/dist/es/ir/path/arrow.d.ts.map +1 -1
- package/dist/es/ir/path/arrow.js +18 -16
- package/dist/es/ir/path/path.d.ts +1106 -209
- package/dist/es/ir/path/path.d.ts.map +1 -1
- package/dist/es/ir/path/path.js +3 -1
- package/dist/es/ir/path/step.d.ts +932 -20
- package/dist/es/ir/path/step.d.ts.map +1 -1
- package/dist/es/ir/path/step.js +73 -22
- package/dist/es/ir/path/target.js +3 -3
- package/dist/es/ir/position/at-position.d.ts +18 -18
- package/dist/es/ir/position/at-position.d.ts.map +1 -1
- package/dist/es/ir/position/at-position.js +11 -11
- package/dist/es/ir/scene.d.ts +156 -0
- package/dist/es/ir/scene.d.ts.map +1 -1
- package/dist/es/ir/scene.js +3 -1
- package/dist/es/ir/scope.d.ts +3446 -1306
- package/dist/es/ir/scope.d.ts.map +1 -1
- package/dist/es/ir/scope.js +10 -6
- package/dist/es/ir/transform.d.ts +44 -17
- package/dist/es/ir/transform.d.ts.map +1 -1
- package/dist/es/ir/transform.js +10 -3
- package/dist/es/parsers/index.d.ts +3 -3
- package/dist/es/parsers/index.d.ts.map +1 -1
- package/dist/es/parsers/{parseNodeTarget.d.ts → node-target.d.ts} +1 -1
- package/dist/es/parsers/node-target.d.ts.map +1 -0
- package/dist/es/parsers/{parseNodeTarget.js → node-target.js} +10 -8
- package/dist/{lib/parsers/parseTargetSugar.d.ts → es/parsers/target-sugar.d.ts} +1 -1
- package/dist/es/parsers/target-sugar.d.ts.map +1 -0
- package/dist/es/parsers/{parseTargetSugar.js → target-sugar.js} +9 -4
- package/dist/{lib/parsers/parseWay.d.ts → es/parsers/way.d.ts} +1 -1
- package/dist/es/parsers/way.d.ts.map +1 -0
- package/dist/es/parsers/{parseWay.js → way.js} +9 -5
- package/dist/es/path-generators/define.d.ts.map +1 -0
- package/dist/es/{pathGenerators → path-generators}/define.js +1 -1
- package/dist/es/path-generators/index.d.ts.map +1 -0
- package/dist/es/path-generators/types.d.ts.map +1 -0
- package/dist/es/patterns/define.d.ts +9 -0
- package/dist/es/patterns/define.d.ts.map +1 -0
- package/dist/es/patterns/define.js +10 -0
- package/dist/es/patterns/index.d.ts +1 -0
- package/dist/es/patterns/index.d.ts.map +1 -1
- package/dist/es/patterns/index.js +42 -35
- package/dist/es/presets/animation.d.ts +123 -0
- package/dist/es/presets/animation.d.ts.map +1 -0
- package/dist/es/presets/animation.js +272 -0
- package/dist/es/presets/index.d.ts +3 -0
- package/dist/es/presets/index.d.ts.map +1 -0
- package/dist/es/primitive/ellipse.d.ts +3 -0
- package/dist/es/primitive/ellipse.d.ts.map +1 -1
- package/dist/es/primitive/group.d.ts +3 -0
- package/dist/es/primitive/group.d.ts.map +1 -1
- package/dist/es/primitive/marker.d.ts +1 -1
- package/dist/es/primitive/paint.d.ts +1 -1
- package/dist/es/primitive/path.d.ts +4 -1
- package/dist/es/primitive/path.d.ts.map +1 -1
- package/dist/es/primitive/rect.d.ts +3 -0
- package/dist/es/primitive/rect.d.ts.map +1 -1
- package/dist/es/primitive/scene.d.ts +3 -0
- package/dist/es/primitive/scene.d.ts.map +1 -1
- package/dist/es/primitive/text.d.ts +3 -0
- package/dist/es/primitive/text.d.ts.map +1 -1
- package/dist/es/shapes/arc.js +2 -2
- package/dist/{lib/shapes/_contour.d.ts → es/shapes/contour.d.ts} +6 -3
- package/dist/es/shapes/contour.d.ts.map +1 -0
- package/dist/es/shapes/{_contour.js → contour.js} +14 -2
- package/dist/es/shapes/ellipse.js +2 -2
- package/dist/es/shapes/index.d.ts +1 -1
- package/dist/es/shapes/index.d.ts.map +1 -1
- package/dist/es/shapes/index.js +1 -1
- package/dist/es/shapes/polygon.d.ts +1 -1
- package/dist/es/shapes/polygon.d.ts.map +1 -1
- package/dist/es/shapes/polygon.js +26 -21
- package/dist/es/shapes/rectangle.js +5 -5
- package/dist/es/shapes/sector.d.ts.map +1 -1
- package/dist/es/shapes/sector.js +30 -22
- package/dist/es/shapes/{_shared.d.ts → shared.d.ts} +4 -8
- package/dist/es/shapes/shared.d.ts.map +1 -0
- package/dist/es/shapes/{_shared.js → shared.js} +8 -12
- package/dist/es/shapes/star.d.ts.map +1 -1
- package/dist/es/shapes/star.js +4 -14
- package/dist/lib/arrows/define.cjs +10 -0
- package/dist/lib/arrows/define.d.ts +9 -0
- package/dist/lib/arrows/define.d.ts.map +1 -0
- package/dist/lib/arrows/index.cjs +14 -1
- package/dist/lib/arrows/index.d.ts +3 -1
- package/dist/lib/arrows/index.d.ts.map +1 -1
- package/dist/lib/arrows/types.d.ts +4 -2
- package/dist/lib/arrows/types.d.ts.map +1 -1
- package/dist/lib/compile/anchor-cache.cjs +17 -4
- package/dist/lib/compile/anchor-cache.d.ts +3 -3
- package/dist/lib/compile/anchor-cache.d.ts.map +1 -1
- package/dist/lib/compile/compile.cjs +71 -39
- package/dist/lib/compile/compile.d.ts +5 -14
- package/dist/lib/compile/compile.d.ts.map +1 -1
- package/dist/lib/compile/{lowerComposites.cjs → composite.cjs} +9 -1
- package/dist/lib/compile/{lowerComposites.d.ts → composite.d.ts} +9 -2
- package/dist/lib/compile/composite.d.ts.map +1 -0
- package/dist/lib/compile/constant.cjs +24 -0
- package/dist/lib/compile/constant.d.ts +32 -0
- package/dist/lib/compile/constant.d.ts.map +1 -0
- package/dist/lib/compile/direction.cjs +31 -0
- package/dist/lib/compile/direction.d.ts +27 -0
- package/dist/lib/compile/direction.d.ts.map +1 -0
- package/dist/lib/compile/index.d.ts +3 -1
- package/dist/lib/compile/index.d.ts.map +1 -1
- package/dist/lib/compile/name-stack.cjs +5 -1
- package/dist/lib/compile/name-stack.d.ts +3 -1
- package/dist/lib/compile/name-stack.d.ts.map +1 -1
- package/dist/lib/compile/node.cjs +42 -62
- package/dist/lib/compile/node.d.ts +20 -7
- package/dist/lib/compile/node.d.ts.map +1 -1
- package/dist/lib/compile/paint.cjs +1 -1
- package/dist/lib/compile/path/anchor.cjs +10 -12
- package/dist/lib/compile/path/anchor.d.ts +4 -3
- package/dist/lib/compile/path/anchor.d.ts.map +1 -1
- package/dist/lib/compile/path/index.cjs +58 -33
- package/dist/lib/compile/path/index.d.ts +6 -8
- package/dist/lib/compile/path/index.d.ts.map +1 -1
- package/dist/lib/compile/path/relative.cjs +1 -1
- package/dist/lib/compile/path/relative.d.ts +1 -1
- package/dist/lib/compile/path/shrink.cjs +16 -11
- package/dist/lib/compile/path/shrink.d.ts +3 -1
- package/dist/lib/compile/path/shrink.d.ts.map +1 -1
- package/dist/lib/compile/position.cjs +6 -19
- package/dist/lib/compile/position.d.ts +2 -2
- package/dist/lib/compile/position.d.ts.map +1 -1
- package/dist/lib/compile/precision.cjs +2 -2
- package/dist/lib/compile/precision.d.ts +1 -1
- package/dist/lib/compile/precision.d.ts.map +1 -1
- package/dist/lib/compile/scope.cjs +29 -13
- package/dist/lib/compile/scope.d.ts +7 -5
- package/dist/lib/compile/scope.d.ts.map +1 -1
- package/dist/lib/compile/style.cjs +2 -2
- package/dist/lib/compile/style.d.ts +2 -2
- package/dist/lib/compile/style.d.ts.map +1 -1
- package/dist/lib/composites/{types.cjs → define.cjs} +2 -2
- package/dist/lib/composites/define.d.ts +8 -0
- package/dist/lib/composites/define.d.ts.map +1 -0
- package/dist/lib/composites/index.d.ts +1 -1
- package/dist/lib/composites/index.d.ts.map +1 -1
- package/dist/lib/composites/types.d.ts +0 -6
- package/dist/lib/composites/types.d.ts.map +1 -1
- package/dist/lib/geometry/anchor.cjs +47 -0
- package/dist/lib/geometry/anchor.d.ts +33 -0
- package/dist/lib/geometry/anchor.d.ts.map +1 -0
- package/dist/lib/geometry/bend.cjs +2 -2
- package/dist/lib/geometry/bend.d.ts +1 -1
- package/dist/lib/geometry/circle.cjs +9 -9
- package/dist/lib/geometry/circle.d.ts +4 -4
- package/dist/lib/geometry/circle.d.ts.map +1 -1
- package/dist/lib/geometry/{roundedContour.cjs → contour.cjs} +21 -32
- package/dist/lib/geometry/{roundedContour.d.ts → contour.d.ts} +4 -5
- package/dist/lib/geometry/contour.d.ts.map +1 -0
- package/dist/lib/geometry/diamond.cjs +7 -7
- package/dist/lib/geometry/diamond.d.ts +3 -3
- package/dist/lib/geometry/diamond.d.ts.map +1 -1
- package/dist/lib/geometry/{_edge.cjs → edge.cjs} +1 -1
- package/dist/{es/geometry/_edge.d.ts → lib/geometry/edge.d.ts} +1 -1
- package/dist/lib/geometry/edge.d.ts.map +1 -0
- package/dist/lib/geometry/ellipse.cjs +8 -8
- package/dist/lib/geometry/ellipse.d.ts +3 -3
- package/dist/lib/geometry/ellipse.d.ts.map +1 -1
- package/dist/lib/geometry/index.d.ts +2 -1
- package/dist/lib/geometry/index.d.ts.map +1 -1
- package/dist/lib/geometry/point.cjs +17 -0
- package/dist/lib/geometry/point.d.ts +6 -0
- package/dist/lib/geometry/point.d.ts.map +1 -1
- package/dist/lib/geometry/rect.cjs +9 -22
- package/dist/lib/geometry/rect.d.ts +4 -17
- package/dist/lib/geometry/rect.d.ts.map +1 -1
- package/dist/lib/geometry/segment.cjs +25 -47
- package/dist/lib/geometry/segment.d.ts.map +1 -1
- package/dist/lib/geometry/{_transform.cjs → transform.cjs} +1 -1
- package/dist/{es/geometry/_transform.d.ts → lib/geometry/transform.d.ts} +1 -1
- package/dist/lib/geometry/transform.d.ts.map +1 -0
- package/dist/lib/index.cjs +56 -22
- package/dist/lib/index.d.ts +13 -10
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/ir/animation.cjs +127 -0
- package/dist/lib/ir/animation.d.ts +219 -0
- package/dist/lib/ir/animation.d.ts.map +1 -0
- package/dist/lib/ir/boundary.d.ts +1 -1
- package/dist/lib/ir/boundary.d.ts.map +1 -1
- package/dist/lib/ir/coordinate.d.ts +8 -8
- 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 +25 -23
- package/dist/lib/ir/node.d.ts +249 -92
- package/dist/lib/ir/node.d.ts.map +1 -1
- package/dist/lib/ir/paint.cjs +10 -10
- package/dist/lib/ir/paint.d.ts +19 -18
- package/dist/lib/ir/paint.d.ts.map +1 -1
- package/dist/lib/ir/path/arrow.cjs +18 -16
- package/dist/lib/ir/path/arrow.d.ts +39 -38
- package/dist/lib/ir/path/arrow.d.ts.map +1 -1
- package/dist/lib/ir/path/path.cjs +3 -1
- package/dist/lib/ir/path/path.d.ts +1106 -209
- package/dist/lib/ir/path/path.d.ts.map +1 -1
- package/dist/lib/ir/path/step.cjs +73 -21
- package/dist/lib/ir/path/step.d.ts +932 -20
- package/dist/lib/ir/path/step.d.ts.map +1 -1
- package/dist/lib/ir/path/target.cjs +3 -3
- package/dist/lib/ir/position/at-position.cjs +11 -11
- package/dist/lib/ir/position/at-position.d.ts +18 -18
- package/dist/lib/ir/position/at-position.d.ts.map +1 -1
- package/dist/lib/ir/scene.cjs +3 -1
- package/dist/lib/ir/scene.d.ts +156 -0
- package/dist/lib/ir/scene.d.ts.map +1 -1
- package/dist/lib/ir/scope.cjs +10 -6
- package/dist/lib/ir/scope.d.ts +3446 -1306
- package/dist/lib/ir/scope.d.ts.map +1 -1
- package/dist/lib/ir/transform.cjs +9 -2
- package/dist/lib/ir/transform.d.ts +44 -17
- package/dist/lib/ir/transform.d.ts.map +1 -1
- package/dist/lib/parsers/index.d.ts +3 -3
- package/dist/lib/parsers/index.d.ts.map +1 -1
- package/dist/lib/parsers/{parseNodeTarget.cjs → node-target.cjs} +10 -8
- package/dist/lib/parsers/{parseNodeTarget.d.ts → node-target.d.ts} +1 -1
- package/dist/lib/parsers/node-target.d.ts.map +1 -0
- package/dist/lib/parsers/{parseTargetSugar.cjs → target-sugar.cjs} +9 -4
- package/dist/{es/parsers/parseTargetSugar.d.ts → lib/parsers/target-sugar.d.ts} +1 -1
- package/dist/lib/parsers/target-sugar.d.ts.map +1 -0
- package/dist/lib/parsers/{parseWay.cjs → way.cjs} +12 -8
- package/dist/{es/parsers/parseWay.d.ts → lib/parsers/way.d.ts} +1 -1
- package/dist/lib/parsers/way.d.ts.map +1 -0
- package/dist/lib/{pathGenerators → path-generators}/define.cjs +1 -1
- package/dist/lib/path-generators/define.d.ts.map +1 -0
- package/dist/lib/path-generators/index.d.ts.map +1 -0
- package/dist/lib/path-generators/types.d.ts.map +1 -0
- package/dist/lib/patterns/define.cjs +10 -0
- package/dist/lib/patterns/define.d.ts +9 -0
- package/dist/lib/patterns/define.d.ts.map +1 -0
- package/dist/lib/patterns/index.cjs +42 -35
- package/dist/lib/patterns/index.d.ts +1 -0
- package/dist/lib/patterns/index.d.ts.map +1 -1
- package/dist/lib/presets/animation.cjs +286 -0
- package/dist/lib/presets/animation.d.ts +123 -0
- package/dist/lib/presets/animation.d.ts.map +1 -0
- package/dist/lib/presets/index.d.ts +3 -0
- package/dist/lib/presets/index.d.ts.map +1 -0
- package/dist/lib/primitive/ellipse.d.ts +3 -0
- package/dist/lib/primitive/ellipse.d.ts.map +1 -1
- package/dist/lib/primitive/group.d.ts +3 -0
- package/dist/lib/primitive/group.d.ts.map +1 -1
- package/dist/lib/primitive/marker.d.ts +1 -1
- package/dist/lib/primitive/paint.d.ts +1 -1
- package/dist/lib/primitive/path.d.ts +4 -1
- package/dist/lib/primitive/path.d.ts.map +1 -1
- package/dist/lib/primitive/rect.d.ts +3 -0
- package/dist/lib/primitive/rect.d.ts.map +1 -1
- package/dist/lib/primitive/scene.d.ts +3 -0
- package/dist/lib/primitive/scene.d.ts.map +1 -1
- package/dist/lib/primitive/text.d.ts +3 -0
- package/dist/lib/primitive/text.d.ts.map +1 -1
- package/dist/lib/shapes/arc.cjs +4 -4
- package/dist/lib/shapes/{_contour.cjs → contour.cjs} +14 -1
- package/dist/{es/shapes/_contour.d.ts → lib/shapes/contour.d.ts} +6 -3
- package/dist/lib/shapes/contour.d.ts.map +1 -0
- package/dist/lib/shapes/ellipse.cjs +2 -2
- package/dist/lib/shapes/index.cjs +1 -1
- package/dist/lib/shapes/index.d.ts +1 -1
- package/dist/lib/shapes/index.d.ts.map +1 -1
- package/dist/lib/shapes/polygon.cjs +29 -24
- package/dist/lib/shapes/polygon.d.ts +1 -1
- package/dist/lib/shapes/polygon.d.ts.map +1 -1
- package/dist/lib/shapes/rectangle.cjs +11 -11
- package/dist/lib/shapes/sector.cjs +41 -33
- package/dist/lib/shapes/sector.d.ts.map +1 -1
- package/dist/lib/shapes/{_shared.cjs → shared.cjs} +7 -12
- package/dist/lib/shapes/{_shared.d.ts → shared.d.ts} +4 -8
- package/dist/lib/shapes/shared.d.ts.map +1 -0
- package/dist/lib/shapes/star.cjs +7 -17
- package/dist/lib/shapes/star.d.ts.map +1 -1
- package/package.json +2 -3
- package/dist/es/compile/lowerComposites.d.ts.map +0 -1
- package/dist/es/geometry/_edge.d.ts.map +0 -1
- package/dist/es/geometry/_transform.d.ts.map +0 -1
- package/dist/es/geometry/roundedContour.d.ts.map +0 -1
- package/dist/es/parsers/parseNodeTarget.d.ts.map +0 -1
- package/dist/es/parsers/parseTargetSugar.d.ts.map +0 -1
- package/dist/es/parsers/parseWay.d.ts.map +0 -1
- package/dist/es/pathGenerators/define.d.ts.map +0 -1
- package/dist/es/pathGenerators/index.d.ts.map +0 -1
- package/dist/es/pathGenerators/types.d.ts.map +0 -1
- package/dist/es/shapes/_contour.d.ts.map +0 -1
- package/dist/es/shapes/_shared.d.ts.map +0 -1
- package/dist/lib/compile/lowerComposites.d.ts.map +0 -1
- package/dist/lib/geometry/_edge.d.ts.map +0 -1
- package/dist/lib/geometry/_transform.d.ts.map +0 -1
- package/dist/lib/geometry/roundedContour.d.ts.map +0 -1
- package/dist/lib/parsers/parseNodeTarget.d.ts.map +0 -1
- package/dist/lib/parsers/parseTargetSugar.d.ts.map +0 -1
- package/dist/lib/parsers/parseWay.d.ts.map +0 -1
- package/dist/lib/pathGenerators/define.d.ts.map +0 -1
- package/dist/lib/pathGenerators/index.d.ts.map +0 -1
- package/dist/lib/pathGenerators/types.d.ts.map +0 -1
- package/dist/lib/shapes/_contour.d.ts.map +0 -1
- package/dist/lib/shapes/_shared.d.ts.map +0 -1
- /package/dist/es/{pathGenerators → path-generators}/define.d.ts +0 -0
- /package/dist/es/{pathGenerators → path-generators}/index.d.ts +0 -0
- /package/dist/es/{pathGenerators → path-generators}/types.d.ts +0 -0
- /package/dist/lib/{pathGenerators → path-generators}/define.d.ts +0 -0
- /package/dist/lib/{pathGenerators → path-generators}/index.d.ts +0 -0
- /package/dist/lib/{pathGenerators → path-generators}/types.d.ts +0 -0
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;AAUxC;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAEjD;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEzD,+BAA+B;AAC/B,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,aAAa,CAAC,CAAC;AAE/D;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgOpB,CAAC;AAEJ,sCAAsC;AACtC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
|
package/dist/es/ir/node.js
CHANGED
|
@@ -1,31 +1,32 @@
|
|
|
1
1
|
import { PositionSchema } from "./position/position.js";
|
|
2
2
|
import { PolarPositionSchema } from "./position/polar-position.js";
|
|
3
|
-
import {
|
|
3
|
+
import { AtDirection, AtPositionSchema } from "./position/at-position.js";
|
|
4
4
|
import { OffsetPositionSchema } from "./position/offset-position.js";
|
|
5
5
|
import { JsonObjectSchema } from "./json.js";
|
|
6
6
|
import { ShapeRefSchema } from "./shape.js";
|
|
7
7
|
import { BoundarySchema } from "./boundary.js";
|
|
8
8
|
import { BetweenPositionSchema } from "./position/between-position.js";
|
|
9
9
|
import { FontSchema } from "./font.js";
|
|
10
|
+
import { AnimationTrackSchema } from "./animation.js";
|
|
10
11
|
import { PaintSpecSchema } from "./paint.js";
|
|
11
12
|
import { TextBlockSchema } from "./text.js";
|
|
12
13
|
import { z } from "zod";
|
|
13
14
|
//#region src/ir/node.ts
|
|
14
15
|
/**
|
|
15
16
|
* 节点形状常量(用 const + ValueOf 派生,不用 TS enum)
|
|
16
|
-
* @description rectangle 默认;几何语义:node 视觉边界包"text 矩形 + padding";rectangle: 视觉=text;ellipse: rx=innerHalfW×√2,ry=innerHalfH×√2。circle 是 ellipse 等轴 preset 别名(`{ type:'ellipse', params:{ circumscribe:'equal' } }`,两轴 = 内框对角线半长 √(innerHalfW²+innerHalfH²));diamond 是 polygon 4 边形
|
|
17
|
+
* @description rectangle 默认;几何语义:node 视觉边界包"text 矩形 + padding";rectangle: 视觉=text;ellipse: rx=innerHalfW×√2,ry=innerHalfH×√2。circle 是 ellipse 等轴 preset 别名(`{ type:'ellipse', params:{ circumscribe:'equal' } }`,两轴 = 内框对角线半长 √(innerHalfW²+innerHalfH²));diamond 是 polygon 4 边形 preset 别名(`{ type:'polygon', params:{ sides:4, rotate:0 } }`)——circle / diamond 均保留为合法 shape 名向后兼容,编译期分别消解为 ellipse / polygon,不进 shape 注册表
|
|
17
18
|
*/
|
|
18
|
-
var
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
var BuiltinShape = {
|
|
20
|
+
Rectangle: "rectangle",
|
|
21
|
+
Circle: "circle",
|
|
22
|
+
Ellipse: "ellipse",
|
|
23
|
+
Diamond: "diamond"
|
|
23
24
|
};
|
|
24
25
|
/** 节点文本对齐(TikZ `align=` 同义) */
|
|
25
|
-
var
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
26
|
+
var NodeTextAlign = {
|
|
27
|
+
Left: "left",
|
|
28
|
+
Center: "center",
|
|
29
|
+
Right: "right"
|
|
29
30
|
};
|
|
30
31
|
/**
|
|
31
32
|
* 节点附属标签 label(TikZ `[label=above:foo]` 同义)
|
|
@@ -33,7 +34,7 @@ var NODE_TEXT_ALIGNS = {
|
|
|
33
34
|
*/
|
|
34
35
|
var NodeLabelSchema = z.object({
|
|
35
36
|
text: z.string().describe("Label text content; rendered as a single line."),
|
|
36
|
-
position: z.union([z.nativeEnum(
|
|
37
|
+
position: z.union([z.nativeEnum(AtDirection), z.number()]).optional().describe("Placement around the node border: 8-direction enum (above / right / above-left / ...) or numeric angle in degrees (`label=30:foo` for radial placement). Default `above`. Numeric uses the polar convention (0° = +x, 90° = +y, screen-down)."),
|
|
37
38
|
distance: z.number().nonnegative().optional().describe("Gap between the node border and the label center, in user units. Default 12."),
|
|
38
39
|
textColor: z.string().optional().describe("Label text color; falls back to currentColor."),
|
|
39
40
|
opacity: z.number().min(0).max(1).optional().describe("Label-only opacity 0..1; multiplied with the node opacity if both are set."),
|
|
@@ -56,6 +57,7 @@ var NodeSchema = z.object({
|
|
|
56
57
|
shape: z.union([z.string().min(1), ShapeRefSchema]).optional().describe("Node visual shape: a bare name string (parameterless, e.g. \"rectangle\") or `{ type, params }` carrying a JSON params object (e.g. `{ type:\"sector\", params:{ innerRadius, outerRadius, startAngle, endAngle } }`). Built-in or registered via CompileOptions.shapes; unregistered type rejected at compile time. Defaults to \"rectangle\"."),
|
|
57
58
|
boundary: BoundarySchema.optional().describe("Default connection surface for edges meeting this node (see BoundarySchema). Defaults to \"shape\" (use the visual shape). Per-edge overridable via the edge endpoint `boundary` field."),
|
|
58
59
|
meta: JsonObjectSchema.optional().describe("Opaque provenance metadata carried by this element (e.g. a Tier 2 lowering tagging which datum / series / layer it came from). Provenance passthrough: preserved verbatim into the Scene primitive(s) this element emits, ignored by renderers, and never interpreted by the compiler — it does not affect layout, connection, style, or bounding box. Must be a JSON object (fully serializable). Not inherited across scopes; not part of the every-X style defaults."),
|
|
60
|
+
animations: z.array(AnimationTrackSchema).optional().describe("Declarative timeline animation tracks for this element (fadeIn / drawOn / pulse / …). Each track animates one renderer-agnostic property over normalized time; the element base value is the settled (animation-end) state. Carried verbatim into the Scene primitive(s) this element emits; renderers play them or, when unable, render the static settled state with a diagnosable warning. Does not affect layout / bounding box (animations may transiently overflow). Not inherited across scopes; not part of the every-X style defaults."),
|
|
59
61
|
position: z.union([
|
|
60
62
|
PositionSchema,
|
|
61
63
|
PolarPositionSchema,
|
|
@@ -63,9 +65,9 @@ var NodeSchema = z.object({
|
|
|
63
65
|
OffsetPositionSchema,
|
|
64
66
|
BetweenPositionSchema
|
|
65
67
|
]).describe("Center point of the node content box; Cartesian [x, y], polar, relative-to-another-node (`at`-style with `direction` / `of` / `distance?`), offset from a base point (`{ of, offset }` form mirroring TikZ `calc`), or between two endpoints (`{ between: [A, B], t }` proportional point). All non-Cartesian forms resolve at compile time."),
|
|
66
|
-
rotate: z.number().optional().describe("Rotation in degrees around the node center; positive = clockwise (matches TikZ rotate=...)"),
|
|
67
|
-
text: TextBlockSchema.optional(),
|
|
68
|
-
align: z.nativeEnum(
|
|
68
|
+
rotate: z.number().finite().optional().describe("Rotation in degrees around the node center; positive = clockwise (matches TikZ rotate=...)"),
|
|
69
|
+
text: TextBlockSchema.optional().describe("Optional node text content; accepts a string, an array of lines, or styled text line objects. A literal newline (\"\\n\") inside any string is a hard line break, so one string with newlines renders as multiple lines. When omitted the node emits only its shape primitive; when present it participates in text measurement, node box sizing, and TextPrim emission."),
|
|
70
|
+
align: z.nativeEnum(NodeTextAlign).optional().describe("Multi-line text alignment within the text block; `left` / `center` / `right`. Defaults to `center` (matches TikZ)."),
|
|
69
71
|
lineHeight: z.number().positive().optional().describe("Line height in user units; falls back to `font.size × 1.2` when omitted."),
|
|
70
72
|
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)."),
|
|
71
73
|
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."),
|
|
@@ -73,10 +75,10 @@ var NodeSchema = z.object({
|
|
|
73
75
|
fillOpacity: z.number().min(0).max(1).optional().describe("Fill opacity 0..1; affects only the shape fill, leaves stroke / text alone."),
|
|
74
76
|
stroke: z.string().optional().describe("Border color of the node shape; any CSS color. Defaults to currentColor when omitted"),
|
|
75
77
|
drawOpacity: z.number().min(0).max(1).optional().describe("Stroke opacity 0..1 (TikZ `draw opacity`); affects only the border."),
|
|
76
|
-
strokeWidth: z.number().optional().describe("Border width in user units; defaults to 1 when omitted"),
|
|
77
|
-
dashed: z.boolean().optional().describe("Border style preset: dashed line (TikZ `dashed`); compiled to a default dash pattern. `
|
|
78
|
-
dotted: z.boolean().optional().describe("Border style preset: dotted line (TikZ `dotted`); compiled to a default dot pattern. `
|
|
79
|
-
|
|
78
|
+
strokeWidth: z.number().finite().nonnegative().optional().describe("Border width in user units; defaults to 1 when omitted"),
|
|
79
|
+
dashed: z.boolean().optional().describe("Border style preset: dashed line (TikZ `dashed`); compiled to a default dash pattern. `dashPattern` takes precedence."),
|
|
80
|
+
dotted: z.boolean().optional().describe("Border style preset: dotted line (TikZ `dotted`); compiled to a default dot pattern. `dashPattern` and `dashed` take precedence."),
|
|
81
|
+
dashPattern: z.array(z.number().finite().nonnegative()).min(1).optional().describe("Explicit stroke dash pattern lengths in user units (e.g. [4, 2]); overrides `dashed` / `dotted`."),
|
|
80
82
|
cornerRadius: z.number().nonnegative().optional().describe("Migration-period top-level corner radius in user units; only effective on `rectangle` shape. Prefer the shape params form `{ type: \"rectangle\", params: { cornerRadius } }`."),
|
|
81
83
|
minimumWidth: z.number().nonnegative().optional().describe("Minimum visual border width in user units; floors the bounding box width."),
|
|
82
84
|
minimumHeight: z.number().nonnegative().optional().describe("Minimum visual border height in user units; floors the bounding box height."),
|
|
@@ -88,12 +90,12 @@ var NodeSchema = z.object({
|
|
|
88
90
|
opacity: z.number().min(0).max(1).optional().describe("Whole-node opacity 0..1; applies uniformly to shape and text."),
|
|
89
91
|
innerXSep: z.number().nonnegative().optional().describe("Inner horizontal padding from text to border in user units. Falls back to `padding` then default."),
|
|
90
92
|
innerYSep: z.number().nonnegative().optional().describe("Inner vertical padding from text to border in user units. Falls back to `padding` then default."),
|
|
91
|
-
outerSep: z.number().nonnegative().optional().describe("
|
|
93
|
+
outerSep: z.number().nonnegative().optional().describe("Uniform outer offset (TikZ `outer sep`) around the node connection boundary, in user units. Applies to ALL border references — automatic edge endpoints AND explicit compass/angle anchors (e.g. `A.north`, `A.30`) — and is included in the node layout footprint / viewBox. Does NOT change the visible shape; center, shape-specific anchors, edge points, and label attachment stay on the visual shape. Default 0. Falls back to `margin`."),
|
|
92
94
|
padding: z.number().nonnegative().optional().describe("Symmetric inner padding (alias for `innerXSep` + `innerYSep`); axis-specific fields take precedence."),
|
|
93
|
-
margin: z.number().nonnegative().optional().describe("Symmetric outer
|
|
95
|
+
margin: z.number().nonnegative().optional().describe("Symmetric outer offset, alias for `outerSep` (TikZ `outer sep`); the axis-specific `outerSep` field takes precedence."),
|
|
94
96
|
font: FontSchema.optional().describe("Font spec for the inner text label (family / size / weight / style); all fields optional, all fall back to renderer defaults."),
|
|
95
97
|
label: z.union([NodeLabelSchema, z.array(NodeLabelSchema)]).optional().describe("Extra label(s) attached around the node border (TikZ `[label=above:foo]`); single object or array form. Compiled into one TextPrim per label, positioned by `position` direction / angle and `distance`."),
|
|
96
98
|
zIndex: z.number().int().finite().optional().describe("Explicit stacking order among sibling IR children. Higher draws on top. Omitted = 0 = source order. Sorting is stable: same zIndex keeps source order. Scoped per group (a node inside a scope only restacks within that scope).")
|
|
97
|
-
}).describe("Node primitive: a positioned, optionally textual shape (rectangle / circle / ellipse / diamond)");
|
|
99
|
+
}).strict().describe("Node primitive: a positioned, optionally textual shape (rectangle / circle / ellipse / diamond)");
|
|
98
100
|
//#endregion
|
|
99
|
-
export {
|
|
101
|
+
export { BuiltinShape, NodeLabelSchema, NodeSchema, NodeTextAlign };
|
package/dist/es/ir/paint.d.ts
CHANGED
|
@@ -5,16 +5,17 @@ import { ValueOf } from '../types';
|
|
|
5
5
|
* @description 内置 3 motif:`lines`(横向阴影线)/ `dots`(波点)/ `grid`(横竖网格)。
|
|
6
6
|
* 各 motif 的 tile 几何由 `BUILTIN_PATTERNS` 的 `PatternDefinition.emit` 在 compile 期产出。
|
|
7
7
|
*/
|
|
8
|
-
export declare const
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
8
|
+
export declare const PatternShape: {
|
|
9
|
+
readonly Lines: "lines";
|
|
10
|
+
readonly Dots: "dots";
|
|
11
|
+
readonly Grid: "grid";
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
14
|
* 内置 3 pattern motif 名联合
|
|
15
15
|
* @description `BUILTIN_PATTERNS` 的 Record key(保穷尽性约束,不随 `PatternShapeName` 开放而退化为 `string`)
|
|
16
16
|
*/
|
|
17
|
-
export type
|
|
17
|
+
export type PatternShapeValue = ValueOf<typeof PatternShape>;
|
|
18
|
+
export type BuiltinPatternName = PatternShapeValue;
|
|
18
19
|
/**
|
|
19
20
|
* pattern motif 名:开放字符串
|
|
20
21
|
* @description 内置 `BuiltinPatternName`,或经 `CompileOptions.patterns` 注册的扩展 motif 名;
|
|
@@ -43,8 +44,8 @@ export declare const GradientStopSchema: z.ZodObject<{
|
|
|
43
44
|
* @description 四种 paint server:linear / radial gradient、pattern(图案)、image(图片)。纯 JSON 形态,保 IR 可序列化。
|
|
44
45
|
* linear 方向用 `angle`(度,polar 约定:0°=+x,90°=+y 屏幕下);radial 的 `center` / `radius` 用 objectBoundingBox(0..1,随形状缩放)。
|
|
45
46
|
*/
|
|
46
|
-
export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"
|
|
47
|
-
|
|
47
|
+
export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"kind", [z.ZodObject<{
|
|
48
|
+
kind: z.ZodLiteral<"linearGradient">;
|
|
48
49
|
stops: z.ZodArray<z.ZodObject<{
|
|
49
50
|
offset: z.ZodNumber;
|
|
50
51
|
color: z.ZodString;
|
|
@@ -60,7 +61,7 @@ export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
60
61
|
}>, "many">;
|
|
61
62
|
angle: z.ZodOptional<z.ZodNumber>;
|
|
62
63
|
}, "strip", z.ZodTypeAny, {
|
|
63
|
-
|
|
64
|
+
kind: "linearGradient";
|
|
64
65
|
stops: {
|
|
65
66
|
offset: number;
|
|
66
67
|
color: string;
|
|
@@ -68,7 +69,7 @@ export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
68
69
|
}[];
|
|
69
70
|
angle?: number | undefined;
|
|
70
71
|
}, {
|
|
71
|
-
|
|
72
|
+
kind: "linearGradient";
|
|
72
73
|
stops: {
|
|
73
74
|
offset: number;
|
|
74
75
|
color: string;
|
|
@@ -76,7 +77,7 @@ export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
76
77
|
}[];
|
|
77
78
|
angle?: number | undefined;
|
|
78
79
|
}>, z.ZodObject<{
|
|
79
|
-
|
|
80
|
+
kind: z.ZodLiteral<"radialGradient">;
|
|
80
81
|
stops: z.ZodArray<z.ZodObject<{
|
|
81
82
|
offset: z.ZodNumber;
|
|
82
83
|
color: z.ZodString;
|
|
@@ -93,7 +94,7 @@ export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
93
94
|
center: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
|
|
94
95
|
radius: z.ZodOptional<z.ZodNumber>;
|
|
95
96
|
}, "strip", z.ZodTypeAny, {
|
|
96
|
-
|
|
97
|
+
kind: "radialGradient";
|
|
97
98
|
stops: {
|
|
98
99
|
offset: number;
|
|
99
100
|
color: string;
|
|
@@ -102,7 +103,7 @@ export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
102
103
|
radius?: number | undefined;
|
|
103
104
|
center?: [number, number] | undefined;
|
|
104
105
|
}, {
|
|
105
|
-
|
|
106
|
+
kind: "radialGradient";
|
|
106
107
|
stops: {
|
|
107
108
|
offset: number;
|
|
108
109
|
color: string;
|
|
@@ -111,7 +112,7 @@ export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
111
112
|
radius?: number | undefined;
|
|
112
113
|
center?: [number, number] | undefined;
|
|
113
114
|
}>, z.ZodObject<{
|
|
114
|
-
|
|
115
|
+
kind: z.ZodLiteral<"pattern">;
|
|
115
116
|
shape: z.ZodString;
|
|
116
117
|
color: z.ZodOptional<z.ZodString>;
|
|
117
118
|
background: z.ZodOptional<z.ZodString>;
|
|
@@ -119,31 +120,31 @@ export declare const PaintSpecSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObje
|
|
|
119
120
|
lineWidth: z.ZodOptional<z.ZodNumber>;
|
|
120
121
|
rotation: z.ZodOptional<z.ZodNumber>;
|
|
121
122
|
}, "strip", z.ZodTypeAny, {
|
|
122
|
-
type: "pattern";
|
|
123
123
|
shape: string;
|
|
124
|
+
kind: "pattern";
|
|
124
125
|
size?: number | undefined;
|
|
125
126
|
color?: string | undefined;
|
|
126
127
|
background?: string | undefined;
|
|
127
128
|
lineWidth?: number | undefined;
|
|
128
129
|
rotation?: number | undefined;
|
|
129
130
|
}, {
|
|
130
|
-
type: "pattern";
|
|
131
131
|
shape: string;
|
|
132
|
+
kind: "pattern";
|
|
132
133
|
size?: number | undefined;
|
|
133
134
|
color?: string | undefined;
|
|
134
135
|
background?: string | undefined;
|
|
135
136
|
lineWidth?: number | undefined;
|
|
136
137
|
rotation?: number | undefined;
|
|
137
138
|
}>, z.ZodObject<{
|
|
138
|
-
|
|
139
|
+
kind: z.ZodLiteral<"image">;
|
|
139
140
|
href: z.ZodString;
|
|
140
141
|
fit: z.ZodOptional<z.ZodEnum<["fill", "contain", "cover"]>>;
|
|
141
142
|
}, "strip", z.ZodTypeAny, {
|
|
142
|
-
|
|
143
|
+
kind: "image";
|
|
143
144
|
href: string;
|
|
144
145
|
fit?: "fill" | "contain" | "cover" | undefined;
|
|
145
146
|
}, {
|
|
146
|
-
|
|
147
|
+
kind: "image";
|
|
147
148
|
href: string;
|
|
148
149
|
fit?: "fill" | "contain" | "cover" | undefined;
|
|
149
150
|
}>]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../../src/ir/paint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../../src/ir/paint.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC,OAAO,YAAY,CAAC,CAAC;AAC7D,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AAEnD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAElE;;;GAGG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;EAMY,CAAC;AAE5C;;;;GAIG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsEwF,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"}
|
package/dist/es/ir/paint.js
CHANGED
|
@@ -5,10 +5,10 @@ import { z } from "zod";
|
|
|
5
5
|
* @description 内置 3 motif:`lines`(横向阴影线)/ `dots`(波点)/ `grid`(横竖网格)。
|
|
6
6
|
* 各 motif 的 tile 几何由 `BUILTIN_PATTERNS` 的 `PatternDefinition.emit` 在 compile 期产出。
|
|
7
7
|
*/
|
|
8
|
-
var
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
8
|
+
var PatternShape = {
|
|
9
|
+
Lines: "lines",
|
|
10
|
+
Dots: "dots",
|
|
11
|
+
Grid: "grid"
|
|
12
12
|
};
|
|
13
13
|
/**
|
|
14
14
|
* 渐变 stop:位置 + 颜色 + 可选透明度
|
|
@@ -24,20 +24,20 @@ var GradientStopSchema = z.object({
|
|
|
24
24
|
* @description 四种 paint server:linear / radial gradient、pattern(图案)、image(图片)。纯 JSON 形态,保 IR 可序列化。
|
|
25
25
|
* linear 方向用 `angle`(度,polar 约定:0°=+x,90°=+y 屏幕下);radial 的 `center` / `radius` 用 objectBoundingBox(0..1,随形状缩放)。
|
|
26
26
|
*/
|
|
27
|
-
var PaintSpecSchema = z.discriminatedUnion("
|
|
27
|
+
var PaintSpecSchema = z.discriminatedUnion("kind", [
|
|
28
28
|
z.object({
|
|
29
|
-
|
|
29
|
+
kind: z.literal("linearGradient"),
|
|
30
30
|
stops: z.array(GradientStopSchema).min(2).describe("Gradient stops, at least 2"),
|
|
31
31
|
angle: z.number().finite().optional().describe("Gradient direction in degrees (polar convention; 0°=+x, 90°=+y screen-down); omitted = renderer default (left→right)")
|
|
32
32
|
}).describe("Linear gradient paint server"),
|
|
33
33
|
z.object({
|
|
34
|
-
|
|
34
|
+
kind: z.literal("radialGradient"),
|
|
35
35
|
stops: z.array(GradientStopSchema).min(2).describe("Gradient stops, at least 2"),
|
|
36
36
|
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)"),
|
|
37
37
|
radius: z.number().finite().positive().optional().describe("Radius in objectBoundingBox units (0..1); omitted = 0.5")
|
|
38
38
|
}).describe("Radial gradient paint server"),
|
|
39
39
|
z.object({
|
|
40
|
-
|
|
40
|
+
kind: z.literal("pattern"),
|
|
41
41
|
shape: z.string().min(1).describe("Registered pattern motif name; built-in `lines` (hatching) / `dots` / `grid` (crosshatch), or an extension motif registered via `CompileOptions.patterns`. Any non-empty string passes schema validation; unregistered names are rejected at compile time."),
|
|
42
42
|
color: z.string().optional().describe("Motif color; any CSS color, defaults to `currentColor`"),
|
|
43
43
|
background: z.string().optional().describe("Tile background fill; omitted = transparent"),
|
|
@@ -46,7 +46,7 @@ var PaintSpecSchema = z.discriminatedUnion("type", [
|
|
|
46
46
|
rotation: z.number().finite().optional().describe("Rotate the whole pattern, in degrees")
|
|
47
47
|
}).describe("Pattern paint server (hatching / dots / grid)"),
|
|
48
48
|
z.object({
|
|
49
|
-
|
|
49
|
+
kind: z.literal("image"),
|
|
50
50
|
href: z.string().min(1).describe("Image URL (http(s) or data URI)"),
|
|
51
51
|
fit: z.enum([
|
|
52
52
|
"fill",
|
|
@@ -56,4 +56,4 @@ var PaintSpecSchema = z.discriminatedUnion("type", [
|
|
|
56
56
|
}).describe("Image paint server (fills the shape with an image)")
|
|
57
57
|
]).describe("Paint server spec: gradient / pattern / image. Solid color stays a plain string on `fill` / `stroke`.");
|
|
58
58
|
//#endregion
|
|
59
|
-
export { GradientStopSchema,
|
|
59
|
+
export { GradientStopSchema, PaintSpecSchema, PatternShape };
|
|
@@ -2,29 +2,30 @@ import { z } from 'zod';
|
|
|
2
2
|
import { ValueOf } from '../../types';
|
|
3
3
|
/**
|
|
4
4
|
* 箭头形状常量(用 const 而非 TS enum 避免 reverse-mapping 和字面量不互通)
|
|
5
|
-
* @description normal 实心三角;open 空心三角(UML 泛化/继承);stealth 尖锐倒钩(默认);diamond 实心菱形(UML 组合);openDiamond 空心菱形(聚合);circle 实心圆点;openCircle 空心圆点
|
|
5
|
+
* @description normal 实心三角;open 空心三角(UML 泛化/继承);stealth 尖锐倒钩(默认);openStealth 空心倒钩;diamond 实心菱形(UML 组合);openDiamond 空心菱形(聚合);circle 实心圆点;openCircle 空心圆点
|
|
6
6
|
*/
|
|
7
|
-
export declare const
|
|
8
|
-
readonly
|
|
9
|
-
readonly
|
|
10
|
-
readonly
|
|
11
|
-
readonly
|
|
12
|
-
readonly
|
|
13
|
-
readonly
|
|
14
|
-
readonly
|
|
7
|
+
export declare const ArrowShape: {
|
|
8
|
+
readonly Normal: "normal";
|
|
9
|
+
readonly Open: "open";
|
|
10
|
+
readonly Stealth: "stealth";
|
|
11
|
+
readonly OpenStealth: "openStealth";
|
|
12
|
+
readonly Diamond: "diamond";
|
|
13
|
+
readonly OpenDiamond: "openDiamond";
|
|
14
|
+
readonly Circle: "circle";
|
|
15
|
+
readonly OpenCircle: "openCircle";
|
|
15
16
|
};
|
|
16
17
|
/** 箭头形状字面量类型 */
|
|
17
|
-
export type
|
|
18
|
+
export type ArrowShapeValue = ValueOf<typeof ArrowShape>;
|
|
18
19
|
/**
|
|
19
|
-
* 内置
|
|
20
|
+
* 内置 8 箭头名联合
|
|
20
21
|
* @description `BUILTIN_ARROWS` 的 Record key(保穷尽性约束,不随 `ArrowShapeName` 开放而退化为 `string`);
|
|
21
22
|
* 等价于历史 `ArrowShape`,独立命名对齐 `node.ts` 的 `BuiltinShapeName` 范式
|
|
22
23
|
*/
|
|
23
|
-
export type BuiltinArrowName =
|
|
24
|
+
export type BuiltinArrowName = ArrowShapeValue;
|
|
24
25
|
/**
|
|
25
26
|
* 箭头形状名:开放字符串
|
|
26
27
|
* @description 内置 `BuiltinArrowName`,或经 `CompileOptions.arrows` 注册的扩展箭头名;
|
|
27
|
-
* `& {}` 让 IDE 仍对内置
|
|
28
|
+
* `& {}` 让 IDE 仍对内置 8 名自动补全,同时接受任意非空字符串(对齐 `node.ts` 的 `NodeShape`)
|
|
28
29
|
*/
|
|
29
30
|
export type ArrowShapeName = BuiltinArrowName | (string & {});
|
|
30
31
|
/** 箭头默认形状 */
|
|
@@ -33,7 +34,7 @@ export declare const DEFAULT_ARROW_SHAPE: "stealth";
|
|
|
33
34
|
* 空心 shape 集合(fill 字段在这些 shape 上 silent no-op)
|
|
34
35
|
* @description compile 与 render 都引用此表判定 fill 是否丢弃;空心 shape 用 color 主导描边、lineWidth 控描边粗
|
|
35
36
|
*/
|
|
36
|
-
export declare const HOLLOW_ARROW_SHAPES: Set<
|
|
37
|
+
export declare const HOLLOW_ARROW_SHAPES: Set<ArrowShapeValue>;
|
|
37
38
|
/** 箭头默认尺寸(length / width 的 fallback) */
|
|
38
39
|
export declare const ARROW_MARKER_DEFAULT_SIZE = 6;
|
|
39
40
|
/** 空心 shape 描边默认粗细(lineWidth fallback) */
|
|
@@ -55,20 +56,20 @@ export declare const ArrowEndDetailSchema: z.ZodObject<{
|
|
|
55
56
|
length?: number | undefined;
|
|
56
57
|
fill?: string | undefined;
|
|
57
58
|
shape?: string | undefined;
|
|
58
|
-
color?: string | undefined;
|
|
59
59
|
opacity?: number | undefined;
|
|
60
|
+
scale?: number | undefined;
|
|
61
|
+
color?: string | undefined;
|
|
60
62
|
lineWidth?: number | undefined;
|
|
61
63
|
width?: number | undefined;
|
|
62
|
-
scale?: number | undefined;
|
|
63
64
|
}, {
|
|
64
65
|
length?: number | undefined;
|
|
65
66
|
fill?: string | undefined;
|
|
66
67
|
shape?: string | undefined;
|
|
67
|
-
color?: string | undefined;
|
|
68
68
|
opacity?: number | undefined;
|
|
69
|
+
scale?: number | undefined;
|
|
70
|
+
color?: string | undefined;
|
|
69
71
|
lineWidth?: number | undefined;
|
|
70
72
|
width?: number | undefined;
|
|
71
|
-
scale?: number | undefined;
|
|
72
73
|
}>;
|
|
73
74
|
/**
|
|
74
75
|
* Path 级箭头详细配置 schema
|
|
@@ -97,20 +98,20 @@ export declare const ArrowDetailSchema: z.ZodObject<{
|
|
|
97
98
|
length?: number | undefined;
|
|
98
99
|
fill?: string | undefined;
|
|
99
100
|
shape?: string | undefined;
|
|
100
|
-
color?: string | undefined;
|
|
101
101
|
opacity?: number | undefined;
|
|
102
|
+
scale?: number | undefined;
|
|
103
|
+
color?: string | undefined;
|
|
102
104
|
lineWidth?: number | undefined;
|
|
103
105
|
width?: number | undefined;
|
|
104
|
-
scale?: number | undefined;
|
|
105
106
|
}, {
|
|
106
107
|
length?: number | undefined;
|
|
107
108
|
fill?: string | undefined;
|
|
108
109
|
shape?: string | undefined;
|
|
109
|
-
color?: string | undefined;
|
|
110
110
|
opacity?: number | undefined;
|
|
111
|
+
scale?: number | undefined;
|
|
112
|
+
color?: string | undefined;
|
|
111
113
|
lineWidth?: number | undefined;
|
|
112
114
|
width?: number | undefined;
|
|
113
|
-
scale?: number | undefined;
|
|
114
115
|
}>>;
|
|
115
116
|
end: z.ZodOptional<z.ZodObject<{
|
|
116
117
|
shape: z.ZodOptional<z.ZodString>;
|
|
@@ -125,78 +126,78 @@ export declare const ArrowDetailSchema: z.ZodObject<{
|
|
|
125
126
|
length?: number | undefined;
|
|
126
127
|
fill?: string | undefined;
|
|
127
128
|
shape?: string | undefined;
|
|
128
|
-
color?: string | undefined;
|
|
129
129
|
opacity?: number | undefined;
|
|
130
|
+
scale?: number | undefined;
|
|
131
|
+
color?: string | undefined;
|
|
130
132
|
lineWidth?: number | undefined;
|
|
131
133
|
width?: number | undefined;
|
|
132
|
-
scale?: number | undefined;
|
|
133
134
|
}, {
|
|
134
135
|
length?: number | undefined;
|
|
135
136
|
fill?: string | undefined;
|
|
136
137
|
shape?: string | undefined;
|
|
137
|
-
color?: string | undefined;
|
|
138
138
|
opacity?: number | undefined;
|
|
139
|
+
scale?: number | undefined;
|
|
140
|
+
color?: string | undefined;
|
|
139
141
|
lineWidth?: number | undefined;
|
|
140
142
|
width?: number | undefined;
|
|
141
|
-
scale?: number | undefined;
|
|
142
143
|
}>>;
|
|
143
144
|
}, "strip", z.ZodTypeAny, {
|
|
144
145
|
length?: number | undefined;
|
|
145
146
|
fill?: string | undefined;
|
|
146
147
|
shape?: string | undefined;
|
|
147
|
-
color?: string | undefined;
|
|
148
148
|
opacity?: number | undefined;
|
|
149
|
+
scale?: number | undefined;
|
|
150
|
+
color?: string | undefined;
|
|
149
151
|
lineWidth?: number | undefined;
|
|
150
152
|
width?: number | undefined;
|
|
151
|
-
scale?: number | undefined;
|
|
152
153
|
start?: {
|
|
153
154
|
length?: number | undefined;
|
|
154
155
|
fill?: string | undefined;
|
|
155
156
|
shape?: string | undefined;
|
|
156
|
-
color?: string | undefined;
|
|
157
157
|
opacity?: number | undefined;
|
|
158
|
+
scale?: number | undefined;
|
|
159
|
+
color?: string | undefined;
|
|
158
160
|
lineWidth?: number | undefined;
|
|
159
161
|
width?: number | undefined;
|
|
160
|
-
scale?: number | undefined;
|
|
161
162
|
} | undefined;
|
|
162
163
|
end?: {
|
|
163
164
|
length?: number | undefined;
|
|
164
165
|
fill?: string | undefined;
|
|
165
166
|
shape?: string | undefined;
|
|
166
|
-
color?: string | undefined;
|
|
167
167
|
opacity?: number | undefined;
|
|
168
|
+
scale?: number | undefined;
|
|
169
|
+
color?: string | undefined;
|
|
168
170
|
lineWidth?: number | undefined;
|
|
169
171
|
width?: number | undefined;
|
|
170
|
-
scale?: number | undefined;
|
|
171
172
|
} | undefined;
|
|
172
173
|
}, {
|
|
173
174
|
length?: number | undefined;
|
|
174
175
|
fill?: string | undefined;
|
|
175
176
|
shape?: string | undefined;
|
|
176
|
-
color?: string | undefined;
|
|
177
177
|
opacity?: number | undefined;
|
|
178
|
+
scale?: number | undefined;
|
|
179
|
+
color?: string | undefined;
|
|
178
180
|
lineWidth?: number | undefined;
|
|
179
181
|
width?: number | undefined;
|
|
180
|
-
scale?: number | undefined;
|
|
181
182
|
start?: {
|
|
182
183
|
length?: number | undefined;
|
|
183
184
|
fill?: string | undefined;
|
|
184
185
|
shape?: string | undefined;
|
|
185
|
-
color?: string | undefined;
|
|
186
186
|
opacity?: number | undefined;
|
|
187
|
+
scale?: number | undefined;
|
|
188
|
+
color?: string | undefined;
|
|
187
189
|
lineWidth?: number | undefined;
|
|
188
190
|
width?: number | undefined;
|
|
189
|
-
scale?: number | undefined;
|
|
190
191
|
} | undefined;
|
|
191
192
|
end?: {
|
|
192
193
|
length?: number | undefined;
|
|
193
194
|
fill?: string | undefined;
|
|
194
195
|
shape?: string | undefined;
|
|
195
|
-
color?: string | undefined;
|
|
196
196
|
opacity?: number | undefined;
|
|
197
|
+
scale?: number | undefined;
|
|
198
|
+
color?: string | undefined;
|
|
197
199
|
lineWidth?: number | undefined;
|
|
198
200
|
width?: number | undefined;
|
|
199
|
-
scale?: number | undefined;
|
|
200
201
|
} | undefined;
|
|
201
202
|
}>;
|
|
202
203
|
/** 端点级箭头视觉规格 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrow.d.ts","sourceRoot":"","sources":["../../../../src/ir/path/arrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"arrow.d.ts","sourceRoot":"","sources":["../../../../src/ir/path/arrow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;CASb,CAAC;AAEX,gBAAgB;AAChB,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,UAAU,CAAC,CAAC;AAEzD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,eAAe,CAAC;AAE/C;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE9D,aAAa;AACb,eAAO,MAAM,mBAAmB,WAAqB,CAAC;AAEtD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,sBAAqH,CAAC;AAEtJ,wCAAwC;AACxC,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAE3C,0CAA0C;AAC1C,eAAO,MAAM,sCAAsC,MAAM,CAAC;AAE1D;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgE9B,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEF,gBAAgB;AAChB,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,mBAAmB;AACnB,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
package/dist/es/ir/path/arrow.js
CHANGED
|
@@ -2,27 +2,29 @@ import { z } from "zod";
|
|
|
2
2
|
//#region src/ir/path/arrow.ts
|
|
3
3
|
/**
|
|
4
4
|
* 箭头形状常量(用 const 而非 TS enum 避免 reverse-mapping 和字面量不互通)
|
|
5
|
-
* @description normal 实心三角;open 空心三角(UML 泛化/继承);stealth 尖锐倒钩(默认);diamond 实心菱形(UML 组合);openDiamond 空心菱形(聚合);circle 实心圆点;openCircle 空心圆点
|
|
5
|
+
* @description normal 实心三角;open 空心三角(UML 泛化/继承);stealth 尖锐倒钩(默认);openStealth 空心倒钩;diamond 实心菱形(UML 组合);openDiamond 空心菱形(聚合);circle 实心圆点;openCircle 空心圆点
|
|
6
6
|
*/
|
|
7
|
-
var
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
var ArrowShape = {
|
|
8
|
+
Normal: "normal",
|
|
9
|
+
Open: "open",
|
|
10
|
+
Stealth: "stealth",
|
|
11
|
+
OpenStealth: "openStealth",
|
|
12
|
+
Diamond: "diamond",
|
|
13
|
+
OpenDiamond: "openDiamond",
|
|
14
|
+
Circle: "circle",
|
|
15
|
+
OpenCircle: "openCircle"
|
|
15
16
|
};
|
|
16
17
|
/** 箭头默认形状 */
|
|
17
|
-
var DEFAULT_ARROW_SHAPE =
|
|
18
|
+
var DEFAULT_ARROW_SHAPE = ArrowShape.Stealth;
|
|
18
19
|
/**
|
|
19
20
|
* 空心 shape 集合(fill 字段在这些 shape 上 silent no-op)
|
|
20
21
|
* @description compile 与 render 都引用此表判定 fill 是否丢弃;空心 shape 用 color 主导描边、lineWidth 控描边粗
|
|
21
22
|
*/
|
|
22
23
|
var HOLLOW_ARROW_SHAPES = new Set([
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
24
|
+
ArrowShape.Open,
|
|
25
|
+
ArrowShape.OpenStealth,
|
|
26
|
+
ArrowShape.OpenDiamond,
|
|
27
|
+
ArrowShape.OpenCircle
|
|
26
28
|
]);
|
|
27
29
|
/** 箭头默认尺寸(length / width 的 fallback) */
|
|
28
30
|
var ARROW_MARKER_DEFAULT_SIZE = 6;
|
|
@@ -33,12 +35,12 @@ var ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH = 1.5;
|
|
|
33
35
|
* @description 顶层 8 字段全 optional;fill 在空心 shape 上 silent no-op(schema 不拒绝、compile/render 丢字段);start/end 子对象用相同字段集(无 start/end 递归)
|
|
34
36
|
*/
|
|
35
37
|
var ArrowEndDetailSchema = z.object({
|
|
36
|
-
shape: z.string().min(1).optional().describe("Registered arrow name: built-in
|
|
38
|
+
shape: z.string().min(1).optional().describe("Registered arrow name: built-in 8 (`normal` / `open` / `stealth` / `openStealth` / `diamond` / `openDiamond` / `circle` / `openCircle`) or an extension arrow registered via `CompileOptions.arrows`. Any non-empty string passes schema validation; unregistered names are rejected at compile time (throw). Defaults to `stealth`."),
|
|
37
39
|
scale: z.number().finite().positive().optional().describe("Uniform tip scale factor; multiplies `length` and `width` (e.g. `length=10, scale=1.5` → effective 15). Defaults to 1."),
|
|
38
40
|
length: z.number().finite().nonnegative().optional().describe("Tip length in user units (the dimension along the path direction). Defaults to ~6."),
|
|
39
41
|
width: z.number().finite().nonnegative().optional().describe("Tip width in user units (perpendicular to the path). Defaults to ~6."),
|
|
40
42
|
color: z.string().optional().describe("Stroke color override. When omitted, the renderer should inherit the path stroke."),
|
|
41
|
-
fill: z.string().optional().describe("Fill color override (effective only on solid shapes). Hollow shapes (`open` / `openDiamond` / `openCircle`) silently ignore this field — `color` drives the stroke."),
|
|
43
|
+
fill: z.string().optional().describe("Fill color override (effective only on solid shapes). Hollow shapes (`open` / `openStealth` / `openDiamond` / `openCircle`) silently ignore this field — `color` drives the stroke."),
|
|
42
44
|
opacity: z.number().min(0).max(1).optional().describe("Arrow opacity 0..1, independent from the path opacity. When omitted, inherits the path opacity."),
|
|
43
45
|
lineWidth: z.number().finite().nonnegative().optional().describe("Stroke width for hollow shapes (user units). Defaults to 1.5. Solid shapes ignore this field.")
|
|
44
46
|
}).describe("Per-end arrow visual spec: shape + visual fields (scale / length / width / color / fill / opacity / lineWidth). All optional; omitted fields fall through to top-level `arrowDetail` defaults and then built-in defaults.");
|
|
@@ -51,4 +53,4 @@ var ArrowDetailSchema = ArrowEndDetailSchema.extend({
|
|
|
51
53
|
end: ArrowEndDetailSchema.optional().describe("End-end override (effective only when `arrow` includes an end arrow: `->` / `<->`). Fields merge into the top-level defaults; omitted fields inherit, present fields override.")
|
|
52
54
|
}).describe("Path-level arrow detail. Top-level visual fields (shape / scale / length / width / color / fill / opacity / lineWidth) act as shared defaults for both ends; `start` / `end` sub-objects per-field override the defaults.");
|
|
53
55
|
//#endregion
|
|
54
|
-
export { ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH,
|
|
56
|
+
export { ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, ArrowDetailSchema, ArrowEndDetailSchema, ArrowShape, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES };
|