@retikz/core 0.2.0-alpha.4 → 0.2.0-alpha.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/dist/es/compile/anchor-cache.d.ts +10 -0
  2. package/dist/es/compile/anchor-cache.d.ts.map +1 -1
  3. package/dist/es/compile/anchor-cache.js +25 -1
  4. package/dist/es/compile/index.d.ts +0 -1
  5. package/dist/es/compile/index.d.ts.map +1 -1
  6. package/dist/es/compile/path/anchor.d.ts.map +1 -1
  7. package/dist/es/compile/path/anchor.js +17 -18
  8. package/dist/es/compile/path/index.d.ts.map +1 -1
  9. package/dist/es/compile/path/index.js +98 -13
  10. package/dist/es/compile/path/relative.d.ts.map +1 -1
  11. package/dist/es/compile/path/relative.js +5 -1
  12. package/dist/es/geometry/_edge.d.ts +29 -0
  13. package/dist/es/geometry/_edge.d.ts.map +1 -0
  14. package/dist/es/geometry/_edge.js +35 -0
  15. package/dist/es/geometry/arc.d.ts +11 -0
  16. package/dist/es/geometry/arc.d.ts.map +1 -1
  17. package/dist/es/geometry/arc.js +27 -1
  18. package/dist/es/geometry/circle.d.ts +3 -0
  19. package/dist/es/geometry/circle.d.ts.map +1 -1
  20. package/dist/es/geometry/circle.js +7 -0
  21. package/dist/es/geometry/diamond.d.ts +3 -0
  22. package/dist/es/geometry/diamond.d.ts.map +1 -1
  23. package/dist/es/geometry/diamond.js +29 -0
  24. package/dist/es/geometry/ellipse.d.ts +3 -0
  25. package/dist/es/geometry/ellipse.d.ts.map +1 -1
  26. package/dist/es/geometry/ellipse.js +7 -0
  27. package/dist/es/geometry/rect.d.ts +26 -0
  28. package/dist/es/geometry/rect.d.ts.map +1 -1
  29. package/dist/es/geometry/rect.js +90 -1
  30. package/dist/es/geometry/segment.d.ts +2 -0
  31. package/dist/es/geometry/segment.d.ts.map +1 -1
  32. package/dist/es/geometry/segment.js +12 -1
  33. package/dist/es/index.d.ts +3 -3
  34. package/dist/es/index.d.ts.map +1 -1
  35. package/dist/es/index.js +6 -5
  36. package/dist/es/ir/coordinate.d.ts +2 -2
  37. package/dist/es/ir/node.d.ts +4 -4
  38. package/dist/es/ir/path/path.d.ts +828 -111
  39. package/dist/es/ir/path/path.d.ts.map +1 -1
  40. package/dist/es/ir/path/step.d.ts +1209 -168
  41. package/dist/es/ir/path/step.d.ts.map +1 -1
  42. package/dist/es/ir/path/step.js +36 -11
  43. package/dist/es/ir/path/target.d.ts +71 -1
  44. package/dist/es/ir/path/target.d.ts.map +1 -1
  45. package/dist/es/ir/path/target.js +24 -3
  46. package/dist/es/ir/scope.d.ts +1228 -190
  47. package/dist/es/ir/scope.d.ts.map +1 -1
  48. package/dist/es/parsers/index.d.ts +1 -0
  49. package/dist/es/parsers/index.d.ts.map +1 -1
  50. package/dist/es/parsers/parseNodeTarget.d.ts +4 -0
  51. package/dist/es/parsers/parseNodeTarget.d.ts.map +1 -0
  52. package/dist/es/parsers/parseNodeTarget.js +33 -0
  53. package/dist/es/parsers/parseTargetSugar.d.ts +4 -2
  54. package/dist/es/parsers/parseTargetSugar.d.ts.map +1 -1
  55. package/dist/es/parsers/parseTargetSugar.js +6 -3
  56. package/dist/es/parsers/parseWay.d.ts +1 -1
  57. package/dist/es/parsers/parseWay.d.ts.map +1 -1
  58. package/dist/es/shapes/circle.d.ts.map +1 -1
  59. package/dist/es/shapes/circle.js +1 -0
  60. package/dist/es/shapes/diamond.d.ts.map +1 -1
  61. package/dist/es/shapes/diamond.js +1 -0
  62. package/dist/es/shapes/ellipse.d.ts.map +1 -1
  63. package/dist/es/shapes/ellipse.js +1 -0
  64. package/dist/es/shapes/rectangle.d.ts.map +1 -1
  65. package/dist/es/shapes/rectangle.js +1 -0
  66. package/dist/es/shapes/types.d.ts +6 -0
  67. package/dist/es/shapes/types.d.ts.map +1 -1
  68. package/dist/lib/compile/anchor-cache.cjs +25 -0
  69. package/dist/lib/compile/anchor-cache.d.ts +10 -0
  70. package/dist/lib/compile/anchor-cache.d.ts.map +1 -1
  71. package/dist/lib/compile/index.d.ts +0 -1
  72. package/dist/lib/compile/index.d.ts.map +1 -1
  73. package/dist/lib/compile/path/anchor.cjs +16 -17
  74. package/dist/lib/compile/path/anchor.d.ts.map +1 -1
  75. package/dist/lib/compile/path/index.cjs +96 -11
  76. package/dist/lib/compile/path/index.d.ts.map +1 -1
  77. package/dist/lib/compile/path/relative.cjs +5 -1
  78. package/dist/lib/compile/path/relative.d.ts.map +1 -1
  79. package/dist/lib/geometry/_edge.cjs +38 -0
  80. package/dist/lib/geometry/_edge.d.ts +29 -0
  81. package/dist/lib/geometry/_edge.d.ts.map +1 -0
  82. package/dist/lib/geometry/arc.cjs +28 -0
  83. package/dist/lib/geometry/arc.d.ts +11 -0
  84. package/dist/lib/geometry/arc.d.ts.map +1 -1
  85. package/dist/lib/geometry/circle.cjs +7 -0
  86. package/dist/lib/geometry/circle.d.ts +3 -0
  87. package/dist/lib/geometry/circle.d.ts.map +1 -1
  88. package/dist/lib/geometry/diamond.cjs +29 -0
  89. package/dist/lib/geometry/diamond.d.ts +3 -0
  90. package/dist/lib/geometry/diamond.d.ts.map +1 -1
  91. package/dist/lib/geometry/ellipse.cjs +7 -0
  92. package/dist/lib/geometry/ellipse.d.ts +3 -0
  93. package/dist/lib/geometry/ellipse.d.ts.map +1 -1
  94. package/dist/lib/geometry/rect.cjs +90 -0
  95. package/dist/lib/geometry/rect.d.ts +26 -0
  96. package/dist/lib/geometry/rect.d.ts.map +1 -1
  97. package/dist/lib/geometry/segment.cjs +12 -0
  98. package/dist/lib/geometry/segment.d.ts +2 -0
  99. package/dist/lib/geometry/segment.d.ts.map +1 -1
  100. package/dist/lib/index.cjs +7 -2
  101. package/dist/lib/index.d.ts +3 -3
  102. package/dist/lib/index.d.ts.map +1 -1
  103. package/dist/lib/ir/coordinate.d.ts +2 -2
  104. package/dist/lib/ir/node.d.ts +4 -4
  105. package/dist/lib/ir/path/path.d.ts +828 -111
  106. package/dist/lib/ir/path/path.d.ts.map +1 -1
  107. package/dist/lib/ir/path/step.cjs +36 -10
  108. package/dist/lib/ir/path/step.d.ts +1209 -168
  109. package/dist/lib/ir/path/step.d.ts.map +1 -1
  110. package/dist/lib/ir/path/target.cjs +25 -2
  111. package/dist/lib/ir/path/target.d.ts +71 -1
  112. package/dist/lib/ir/path/target.d.ts.map +1 -1
  113. package/dist/lib/ir/scope.d.ts +1228 -190
  114. package/dist/lib/ir/scope.d.ts.map +1 -1
  115. package/dist/lib/parsers/index.d.ts +1 -0
  116. package/dist/lib/parsers/index.d.ts.map +1 -1
  117. package/dist/lib/parsers/parseNodeTarget.cjs +33 -0
  118. package/dist/lib/parsers/parseNodeTarget.d.ts +4 -0
  119. package/dist/lib/parsers/parseNodeTarget.d.ts.map +1 -0
  120. package/dist/lib/parsers/parseTargetSugar.cjs +6 -3
  121. package/dist/lib/parsers/parseTargetSugar.d.ts +4 -2
  122. package/dist/lib/parsers/parseTargetSugar.d.ts.map +1 -1
  123. package/dist/lib/parsers/parseWay.d.ts +1 -1
  124. package/dist/lib/parsers/parseWay.d.ts.map +1 -1
  125. package/dist/lib/shapes/circle.cjs +1 -0
  126. package/dist/lib/shapes/circle.d.ts.map +1 -1
  127. package/dist/lib/shapes/diamond.cjs +1 -0
  128. package/dist/lib/shapes/diamond.d.ts.map +1 -1
  129. package/dist/lib/shapes/ellipse.cjs +1 -0
  130. package/dist/lib/shapes/ellipse.d.ts.map +1 -1
  131. package/dist/lib/shapes/rectangle.cjs +1 -0
  132. package/dist/lib/shapes/rectangle.d.ts.map +1 -1
  133. package/dist/lib/shapes/types.d.ts +6 -0
  134. package/dist/lib/shapes/types.d.ts.map +1 -1
  135. package/package.json +1 -1
  136. package/dist/es/compile/parseTarget.d.ts +0 -20
  137. package/dist/es/compile/parseTarget.d.ts.map +0 -1
  138. package/dist/es/compile/parseTarget.js +0 -36
  139. package/dist/lib/compile/parseTarget.cjs +0 -36
  140. package/dist/lib/compile/parseTarget.d.ts +0 -20
  141. package/dist/lib/compile/parseTarget.d.ts.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { Side } from './_edge';
1
2
  import { Position } from './point';
2
3
  /** 轴对齐矩形:几何中心 + 宽高 + 可选绕中心旋转 */
3
4
  export type Rect = {
@@ -31,5 +32,30 @@ export declare const rect: {
31
32
  anchor: (r: Rect, name: RectAnchor) => Position;
32
33
  /** 从中心向 toward 方向射线与矩形边界交点(含旋转),Path 端点贴 Node 边界用 */
33
34
  boundaryPoint: (r: Rect, toward: Position) => Position;
35
+ /** 边上比例点:side 直边 t∈[0,1] 处(两角 anchor 线性插值,含旋转);方向见 EDGE_ENDS */
36
+ edgePoint: (r: Rect, side: Side, t: number) => Position;
34
37
  };
38
+ /** rectOutline 的命令算子(供 compile 翻译为 PathCommand;几何在 core 下沉,便于未来 rectangle node shape 复用) */
39
+ export type RectOutlineOp = {
40
+ kind: 'move';
41
+ to: Position;
42
+ } | {
43
+ kind: 'line';
44
+ to: Position;
45
+ } | {
46
+ kind: 'arc';
47
+ center: Position;
48
+ radius: number;
49
+ startAngle: number;
50
+ endAngle: number;
51
+ } | {
52
+ kind: 'close';
53
+ };
54
+ /**
55
+ * 矩形 outline:两对角 → 顺时针 path 算子序列
56
+ * @description from/to 任意顺序,归一化 (x0,y0)=min、(x1,y1)=max。直角 = 4 line + close(起点左上 (x0,y0));
57
+ * 圆角 = 4 line + 4 quarter-arc + close(起点 (x0+r, y0))。roundedCorners clamp 到 min(w,h)/2。
58
+ * 角度约定同 geometry/arc(y-down:0=+x, 90=+y/下, 180=-x, 270=-y/上)。
59
+ */
60
+ export declare const rectOutline: (from: Position, to: Position, roundedCorners?: number) => Array<RectOutlineOp>;
35
61
  //# sourceMappingURL=rect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/geometry/rect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,gCAAgC;AAChC,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,YAAY;;;;;;;;;;CAUf,CAAC;AAEX,+BAA+B;AAC/B,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E,eAAO,MAAM,IAAI;IACf,WAAW;gBACC,IAAI,KAAG,QAAQ;IAC3B,uBAAuB;kBACT,IAAI,KAAK,QAAQ,KAAG,OAAO;IAMzC,sCAAsC;gBAC1B,IAAI,QAAQ,UAAU,KAAG,QAAQ;IAuC7C,qDAAqD;uBAClC,IAAI,UAAU,QAAQ,KAAG,QAAQ;CAUrD,CAAC"}
1
+ {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/geometry/rect.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,IAAI,EAAa,MAAM,SAAS,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,gCAAgC;AAChC,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,YAAY;;;;;;;;;;CAUf,CAAC;AAEX,+BAA+B;AAC/B,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E,eAAO,MAAM,IAAI;IACf,WAAW;gBACC,IAAI,KAAG,QAAQ;IAC3B,uBAAuB;kBACT,IAAI,KAAK,QAAQ,KAAG,OAAO;IAMzC,sCAAsC;gBAC1B,IAAI,QAAQ,UAAU,KAAG,QAAQ;IAuC7C,qDAAqD;uBAClC,IAAI,UAAU,QAAQ,KAAG,QAAQ;IAUpD,gEAAgE;mBACjD,IAAI,QAAQ,IAAI,KAAK,MAAM,KAAG,QAAQ;CAItD,CAAC;AAEF,4FAA4F;AAC5F,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACvF;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtB;;;;;GAKG;AACH,eAAO,MAAM,WAAW,GACtB,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,iBAAiB,MAAM,KACtB,KAAK,CAAC,aAAa,CAgCrB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { localToWorld, worldToLocal } from "./_transform.js";
2
+ import { EDGE_ENDS, lerpPoint } from "./_edge.js";
2
3
  //#region src/geometry/rect.ts
3
4
  /** 矩形 9 个标准 anchor 名常量(与 RectAnchor 配对,用 RECT_ANCHORS.NORTH 避免拼错) */
4
5
  var RECT_ANCHORS = {
@@ -71,7 +72,95 @@ var rect = {
71
72
  const ty = localY === 0 ? Infinity : halfH / Math.abs(localY);
72
73
  const t = Math.min(tx, ty);
73
74
  return localToWorld(r, [localX * t, localY * t]);
75
+ },
76
+ /** 边上比例点:side 直边 t∈[0,1] 处(两角 anchor 线性插值,含旋转);方向见 EDGE_ENDS */
77
+ edgePoint: (r, side, t) => {
78
+ const [a, b] = EDGE_ENDS[side];
79
+ return lerpPoint(rect.anchor(r, a), rect.anchor(r, b), t);
74
80
  }
75
81
  };
82
+ /**
83
+ * 矩形 outline:两对角 → 顺时针 path 算子序列
84
+ * @description from/to 任意顺序,归一化 (x0,y0)=min、(x1,y1)=max。直角 = 4 line + close(起点左上 (x0,y0));
85
+ * 圆角 = 4 line + 4 quarter-arc + close(起点 (x0+r, y0))。roundedCorners clamp 到 min(w,h)/2。
86
+ * 角度约定同 geometry/arc(y-down:0=+x, 90=+y/下, 180=-x, 270=-y/上)。
87
+ */
88
+ var rectOutline = (from, to, roundedCorners) => {
89
+ const x0 = Math.min(from[0], to[0]);
90
+ const x1 = Math.max(from[0], to[0]);
91
+ const y0 = Math.min(from[1], to[1]);
92
+ const y1 = Math.max(from[1], to[1]);
93
+ const r = roundedCorners === void 0 ? 0 : Math.min(roundedCorners, (x1 - x0) / 2, (y1 - y0) / 2);
94
+ if (r <= 0) return [
95
+ {
96
+ kind: "move",
97
+ to: [x0, y0]
98
+ },
99
+ {
100
+ kind: "line",
101
+ to: [x1, y0]
102
+ },
103
+ {
104
+ kind: "line",
105
+ to: [x1, y1]
106
+ },
107
+ {
108
+ kind: "line",
109
+ to: [x0, y1]
110
+ },
111
+ { kind: "close" }
112
+ ];
113
+ return [
114
+ {
115
+ kind: "move",
116
+ to: [x0 + r, y0]
117
+ },
118
+ {
119
+ kind: "line",
120
+ to: [x1 - r, y0]
121
+ },
122
+ {
123
+ kind: "arc",
124
+ center: [x1 - r, y0 + r],
125
+ radius: r,
126
+ startAngle: 270,
127
+ endAngle: 360
128
+ },
129
+ {
130
+ kind: "line",
131
+ to: [x1, y1 - r]
132
+ },
133
+ {
134
+ kind: "arc",
135
+ center: [x1 - r, y1 - r],
136
+ radius: r,
137
+ startAngle: 0,
138
+ endAngle: 90
139
+ },
140
+ {
141
+ kind: "line",
142
+ to: [x0 + r, y1]
143
+ },
144
+ {
145
+ kind: "arc",
146
+ center: [x0 + r, y1 - r],
147
+ radius: r,
148
+ startAngle: 90,
149
+ endAngle: 180
150
+ },
151
+ {
152
+ kind: "line",
153
+ to: [x0, y0 + r]
154
+ },
155
+ {
156
+ kind: "arc",
157
+ center: [x0 + r, y0 + r],
158
+ radius: r,
159
+ startAngle: 180,
160
+ endAngle: 270
161
+ },
162
+ { kind: "close" }
163
+ ];
164
+ };
76
165
  //#endregion
77
- export { RECT_ANCHORS, rect };
166
+ export { RECT_ANCHORS, rect, rectOutline };
@@ -28,6 +28,8 @@ export declare const cubicSegmentSample: (from: Position, c1: Position, c2: Posi
28
28
  export declare const foldSegmentSample: (from: Position, corner: Position, to: Position, t: number) => SegmentSample;
29
29
  /** 弧段(角度度数,与 ir/path arc 同约定);切线沿扫描方向:endAngle ≥ start 取 (-sin,cos),否则反向 */
30
30
  export declare const arcSegmentSample: (center: Position, radius: number, startAngleDeg: number, endAngleDeg: number, t: number) => SegmentSample;
31
+ /** 椭圆弧段(参数角度数,与 ir/path arc 同约定);点用 (rx·cos, ry·sin),切线沿扫描方向 */
32
+ export declare const ellipseArcSegmentSample: (center: Position, rx: number, ry: number, startAngleDeg: number, endAngleDeg: number, t: number) => SegmentSample;
31
33
  /** 整圆,从 0°(east) 开始,与 compile/path circlePath 输出方向(右→左→右,sweep=1)一致 */
32
34
  export declare const circleSegmentSample: (center: Position, radius: number, t: number) => SegmentSample;
33
35
  /** 整椭圆,参数化 (rx·cos(2πt), ry·sin(2πt)) */
@@ -1 +1 @@
1
- {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/geometry/segment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiBxC;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wBAAwB;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAQF,oBAAoB;AACpB,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,SAAS,QAAQ,EACjB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aASF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAqBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,QAAQ,QAAQ,EAChB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGF,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAUF,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,GAAG,MAAM,KACR,aASF,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,GAAG,MAAM,KACR,aASF,CAAC"}
1
+ {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/geometry/segment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiBxC;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wBAAwB;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAQF,oBAAoB;AACpB,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,SAAS,QAAQ,EACjB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aASF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAqBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,QAAQ,QAAQ,EAChB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGF,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAUF,CAAC;AAEF,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,GAClC,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAUF,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,GAAG,MAAM,KACR,aASF,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,GAAG,MAAM,KACR,aASF,CAAC"}
@@ -51,6 +51,17 @@ var arcSegmentSample = (center, radius, startAngleDeg, endAngleDeg, t) => {
51
51
  tangent: normalize([-sin * sweepSign, cos * sweepSign])
52
52
  };
53
53
  };
54
+ /** 椭圆弧段(参数角度数,与 ir/path arc 同约定);点用 (rx·cos, ry·sin),切线沿扫描方向 */
55
+ var ellipseArcSegmentSample = (center, rx, ry, startAngleDeg, endAngleDeg, t) => {
56
+ const rad = (startAngleDeg + t * (endAngleDeg - startAngleDeg)) * DEG_TO_RAD;
57
+ const cos = Math.cos(rad);
58
+ const sin = Math.sin(rad);
59
+ const sweepSign = endAngleDeg >= startAngleDeg ? 1 : -1;
60
+ return {
61
+ point: [center[0] + rx * cos, center[1] + ry * sin],
62
+ tangent: normalize([-rx * sin * sweepSign, ry * cos * sweepSign])
63
+ };
64
+ };
54
65
  /** 整圆,从 0°(east) 开始,与 compile/path circlePath 输出方向(右→左→右,sweep=1)一致 */
55
66
  var circleSegmentSample = (center, radius, t) => {
56
67
  const rad = t * 360 * DEG_TO_RAD;
@@ -72,4 +83,4 @@ var ellipseSegmentSample = (center, rx, ry, t) => {
72
83
  };
73
84
  };
74
85
  //#endregion
75
- export { arcSegmentSample, circleSegmentSample, cubicSegmentSample, ellipseSegmentSample, foldSegmentSample, lineSegmentSample, quadSegmentSample };
86
+ export { arcSegmentSample, circleSegmentSample, cubicSegmentSample, ellipseArcSegmentSample, ellipseSegmentSample, foldSegmentSample, lineSegmentSample, quadSegmentSample };
@@ -2,8 +2,8 @@
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, RelativeTargetSchema, RelativeAccumulateTargetSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, 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, IRRelativeTarget, IRRelativeAccumulateTarget, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, 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';
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
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';
8
8
  export type { ScenePrimitive, RectPrim, EllipsePrim, TextPrim, TextLine, PathPrim, PathCommand,
9
9
  /** 7 个 named PathCommand 分支(便于 wrapper / Pick<>) */
@@ -13,7 +13,7 @@ TranslateTransform, RotateTransform, ScaleTransform, Layout, Scene, } from './pr
13
13
  export type { FontSpec, TextMetrics, TextMeasurer, CompileOptions, CompileWarning, } from './compile';
14
14
  export { computeLayout, fallbackMeasurer, compileToScene } from './compile';
15
15
  export type { WayItem, WayDSL, WayCycle, WayVia, WayRelativeItem, WayLabel, WayLabelOp, } from './parsers';
16
- export { parseWay, DrawWay, parseTargetSugar } from './parsers';
16
+ export { parseWay, DrawWay, parseTargetSugar, parseNodeTarget } from './parsers';
17
17
  export type { Position, Rect, RectAnchor, Circle, Ellipse, Diamond, PolarPosition, } from './geometry';
18
18
  export { point, rect, circle, ellipse, diamond, RECT_ANCHORS, polar } from './geometry';
19
19
  export type { ShapeDefinition, ShapeStyle } from './shapes';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
package/dist/es/index.js CHANGED
@@ -5,16 +5,16 @@ import { OffsetPositionSchema } from "./ir/position/offset-position.js";
5
5
  import { FontSchema } from "./ir/font.js";
6
6
  import { LineSpecSchema, TextBlockSchema } from "./ir/text.js";
7
7
  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
- import { RelativeAccumulateTargetSchema, RelativeTargetSchema, TargetSchema } from "./ir/path/target.js";
9
- import { ArcStepSchema, BendStepSchema, CirclePathStepSchema, ControlPointSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, EllipsePathStepSchema, FoldStepSchema, LineStepSchema, MoveStepSchema, StepLabelSchema, StepSchema } from "./ir/path/step.js";
8
+ import { localToWorld, worldToLocal } from "./geometry/_transform.js";
9
+ import { RECT_ANCHORS, rect } from "./geometry/rect.js";
10
+ 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";
10
12
  import { PathSchema } from "./ir/path/path.js";
11
13
  import { NODE_SHAPES, NODE_TEXT_ALIGNS, NodeLabelSchema, NodeSchema } from "./ir/node.js";
12
14
  import { CoordinateSchema } from "./ir/coordinate.js";
13
15
  import { TransformSchema } from "./ir/transform.js";
14
16
  import { ArrowDefaultSchema, LabelDefaultSchema, NodeDefaultSchema, PathDefaultSchema, ScopeSchema } from "./ir/scope.js";
15
17
  import { CURRENT_IR_VERSION, ChildSchema, SceneSchema } from "./ir/scene.js";
16
- import { localToWorld, worldToLocal } from "./geometry/_transform.js";
17
- import { RECT_ANCHORS, rect } from "./geometry/rect.js";
18
18
  import { circle } from "./geometry/circle.js";
19
19
  import { ellipse } from "./geometry/ellipse.js";
20
20
  import { diamond } from "./geometry/diamond.js";
@@ -22,8 +22,9 @@ import { BUILTIN_SHAPES } from "./shapes/index.js";
22
22
  import { fallbackMeasurer } from "./compile/text-metrics.js";
23
23
  import { computeLayout } from "./compile/layout.js";
24
24
  import { compileToScene } from "./compile/compile.js";
25
+ import { parseNodeTarget } from "./parsers/parseNodeTarget.js";
25
26
  import { parseTargetSugar } from "./parsers/parseTargetSugar.js";
26
27
  import { DrawWay, parseWay } from "./parsers/parseWay.js";
27
28
  import { polar } from "./geometry/polar.js";
28
29
  import { point } from "./geometry/point.js";
29
- export { ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, ARROW_SHAPES, AT_DIRECTIONS, ArcStepSchema, ArrowDefaultSchema, ArrowDetailSchema, ArrowEndDetailSchema, AtPositionSchema, BUILTIN_SHAPES, BendStepSchema, CURRENT_IR_VERSION, ChildSchema, CirclePathStepSchema, ControlPointSchema, CoordinateSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, DEFAULT_ARROW_SHAPE, DrawWay, EllipsePathStepSchema, FoldStepSchema, FontSchema, HOLLOW_ARROW_SHAPES, LabelDefaultSchema, LineSpecSchema, LineStepSchema, MoveStepSchema, NODE_SHAPES, NODE_TEXT_ALIGNS, NodeDefaultSchema, NodeLabelSchema, NodeSchema, OffsetPositionSchema, PathDefaultSchema, PathSchema, PolarPositionSchema, PositionSchema, RECT_ANCHORS, RelativeAccumulateTargetSchema, RelativeTargetSchema, SceneSchema, ScopeSchema, StepLabelSchema, StepSchema, TargetSchema, TextBlockSchema, TransformSchema, circle, compileToScene, computeLayout, diamond, ellipse, fallbackMeasurer, localToWorld, parseTargetSugar, parseWay, point, polar, rect, worldToLocal };
30
+ export { ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, ARROW_SHAPES, AT_DIRECTIONS, AnchorRefSchema, ArcStepSchema, ArrowDefaultSchema, ArrowDetailSchema, ArrowEndDetailSchema, AtPositionSchema, BUILTIN_SHAPES, BendStepSchema, CURRENT_IR_VERSION, ChildSchema, CirclePathStepSchema, ControlPointSchema, CoordinateSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, DEFAULT_ARROW_SHAPE, DrawWay, EllipsePathStepSchema, FoldStepSchema, FontSchema, HOLLOW_ARROW_SHAPES, LabelDefaultSchema, LineSpecSchema, LineStepSchema, MoveStepSchema, NODE_SHAPES, NODE_TEXT_ALIGNS, NodeDefaultSchema, NodeLabelSchema, NodeSchema, NodeTargetSchema, OffsetPositionSchema, PathDefaultSchema, PathSchema, PolarPositionSchema, PositionSchema, RECT_ANCHORS, RectangleStepSchema, RelativeAccumulateTargetSchema, RelativeTargetSchema, SceneSchema, ScopeSchema, StepLabelSchema, StepSchema, TargetSchema, TextBlockSchema, TransformSchema, circle, compileToScene, computeLayout, diamond, ellipse, fallbackMeasurer, localToWorld, parseNodeTarget, parseTargetSugar, parseWay, point, polar, rect, worldToLocal };
@@ -39,6 +39,7 @@ export declare const CoordinateSchema: z.ZodObject<{
39
39
  }>]>;
40
40
  }, "strip", z.ZodTypeAny, {
41
41
  type: "coordinate";
42
+ id: string;
42
43
  position: [number, number] | import('./position').PolarPosition | {
43
44
  direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
44
45
  of: string;
@@ -47,9 +48,9 @@ export declare const CoordinateSchema: z.ZodObject<{
47
48
  of: string | [number, number] | import('./position').PolarPosition;
48
49
  offset: [number, number];
49
50
  };
50
- id: string;
51
51
  }, {
52
52
  type: "coordinate";
53
+ id: string;
53
54
  position: [number, number] | import('./position').PolarPosition | {
54
55
  direction: "above" | "below" | "left" | "right" | "above-left" | "above-right" | "below-left" | "below-right";
55
56
  of: string;
@@ -58,7 +59,6 @@ export declare const CoordinateSchema: z.ZodObject<{
58
59
  of: string | [number, number] | import('./position').PolarPosition;
59
60
  offset: [number, number];
60
61
  };
61
- id: string;
62
62
  }>;
63
63
  /** Coordinate IR 类型 `{ type:'coordinate', id, position }` */
64
64
  export type IRCoordinate = z.infer<typeof CoordinateSchema>;
@@ -374,6 +374,7 @@ export declare const NodeSchema: z.ZodObject<{
374
374
  shape?: string | undefined;
375
375
  scale?: number | undefined;
376
376
  color?: string | undefined;
377
+ id?: string | undefined;
377
378
  textColor?: string | undefined;
378
379
  label?: {
379
380
  text: string;
@@ -404,19 +405,18 @@ export declare const NodeSchema: z.ZodObject<{
404
405
  rotate?: number | "none" | "radial" | "tangent" | undefined;
405
406
  keepUpright?: boolean | undefined;
406
407
  }[] | undefined;
408
+ roundedCorners?: number | undefined;
407
409
  stroke?: string | undefined;
408
410
  strokeWidth?: number | undefined;
409
411
  fillOpacity?: number | undefined;
410
412
  drawOpacity?: number | undefined;
411
413
  zIndex?: number | undefined;
412
414
  rotate?: number | undefined;
413
- id?: string | undefined;
414
415
  align?: "left" | "right" | "center" | undefined;
415
416
  lineHeight?: number | undefined;
416
417
  dashed?: boolean | undefined;
417
418
  dotted?: boolean | undefined;
418
419
  dashArray?: number[] | undefined;
419
- roundedCorners?: number | undefined;
420
420
  minimumWidth?: number | undefined;
421
421
  minimumHeight?: number | undefined;
422
422
  minimumSize?: number | undefined;
@@ -459,6 +459,7 @@ export declare const NodeSchema: z.ZodObject<{
459
459
  shape?: string | undefined;
460
460
  scale?: number | undefined;
461
461
  color?: string | undefined;
462
+ id?: string | undefined;
462
463
  textColor?: string | undefined;
463
464
  label?: {
464
465
  text: string;
@@ -489,19 +490,18 @@ export declare const NodeSchema: z.ZodObject<{
489
490
  rotate?: number | "none" | "radial" | "tangent" | undefined;
490
491
  keepUpright?: boolean | undefined;
491
492
  }[] | undefined;
493
+ roundedCorners?: number | undefined;
492
494
  stroke?: string | undefined;
493
495
  strokeWidth?: number | undefined;
494
496
  fillOpacity?: number | undefined;
495
497
  drawOpacity?: number | undefined;
496
498
  zIndex?: number | undefined;
497
499
  rotate?: number | undefined;
498
- id?: string | undefined;
499
500
  align?: "left" | "right" | "center" | undefined;
500
501
  lineHeight?: number | undefined;
501
502
  dashed?: boolean | undefined;
502
503
  dotted?: boolean | undefined;
503
504
  dashArray?: number[] | undefined;
504
- roundedCorners?: number | undefined;
505
505
  minimumWidth?: number | undefined;
506
506
  minimumHeight?: number | undefined;
507
507
  minimumSize?: number | undefined;