@retikz/core 0.3.0-beta.1 → 0.3.0-rc.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.
Files changed (205) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +41 -41
  3. package/dist/es/arrows/index.d.ts.map +1 -1
  4. package/dist/es/arrows/index.js +1 -1
  5. package/dist/es/compile/anchor-cache.js +3 -3
  6. package/dist/es/compile/compile.d.ts.map +1 -1
  7. package/dist/es/compile/compile.js +13 -10
  8. package/dist/es/compile/constant.d.ts +1 -3
  9. package/dist/es/compile/constant.d.ts.map +1 -1
  10. package/dist/es/compile/constant.js +2 -4
  11. package/dist/es/compile/node.d.ts +3 -3
  12. package/dist/es/compile/node.d.ts.map +1 -1
  13. package/dist/es/compile/node.js +19 -9
  14. package/dist/es/compile/path/index.d.ts.map +1 -1
  15. package/dist/es/compile/path/index.js +40 -10
  16. package/dist/es/compile/path/label.d.ts.map +1 -1
  17. package/dist/es/compile/path/label.js +8 -4
  18. package/dist/es/compile/scope.d.ts +1 -1
  19. package/dist/es/compile/scope.d.ts.map +1 -1
  20. package/dist/es/compile/scope.js +17 -5
  21. package/dist/es/compile/text-metrics.d.ts +1 -1
  22. package/dist/es/compile/text-metrics.js +2 -2
  23. package/dist/es/geometry/bend.js +1 -1
  24. package/dist/es/geometry/contour.d.ts +5 -0
  25. package/dist/es/geometry/contour.d.ts.map +1 -1
  26. package/dist/es/geometry/contour.js +5 -3
  27. package/dist/es/geometry/diamond.d.ts +7 -1
  28. package/dist/es/geometry/diamond.d.ts.map +1 -1
  29. package/dist/es/geometry/diamond.js +9 -1
  30. package/dist/es/geometry/ellipse.d.ts.map +1 -1
  31. package/dist/es/geometry/ellipse.js +2 -0
  32. package/dist/es/geometry/index.d.ts +4 -0
  33. package/dist/es/geometry/index.d.ts.map +1 -1
  34. package/dist/es/geometry/segment.d.ts +7 -0
  35. package/dist/es/geometry/segment.d.ts.map +1 -1
  36. package/dist/es/geometry/segment.js +24 -1
  37. package/dist/es/index.d.ts +4 -4
  38. package/dist/es/index.d.ts.map +1 -1
  39. package/dist/es/index.js +4 -3
  40. package/dist/es/ir/animation.d.ts +20 -120
  41. package/dist/es/ir/animation.d.ts.map +1 -1
  42. package/dist/es/ir/animation.js +6 -6
  43. package/dist/es/ir/boundary.d.ts +3 -9
  44. package/dist/es/ir/boundary.d.ts.map +1 -1
  45. package/dist/es/ir/clip.d.ts +6 -46
  46. package/dist/es/ir/clip.d.ts.map +1 -1
  47. package/dist/es/ir/composite.d.ts +2 -14
  48. package/dist/es/ir/composite.d.ts.map +1 -1
  49. package/dist/es/ir/coordinate.d.ts +6 -42
  50. package/dist/es/ir/coordinate.d.ts.map +1 -1
  51. package/dist/es/ir/coordinate.js +1 -1
  52. package/dist/es/ir/font.d.ts +10 -13
  53. package/dist/es/ir/font.d.ts.map +1 -1
  54. package/dist/es/ir/json.d.ts +1 -1
  55. package/dist/es/ir/json.d.ts.map +1 -1
  56. package/dist/es/ir/json.js +1 -1
  57. package/dist/es/ir/node.d.ts +123 -770
  58. package/dist/es/ir/node.d.ts.map +1 -1
  59. package/dist/es/ir/node.js +2 -2
  60. package/dist/es/ir/paint.d.ts +13 -91
  61. package/dist/es/ir/paint.d.ts.map +1 -1
  62. package/dist/es/ir/path/arrow.d.ts +4 -117
  63. package/dist/es/ir/path/arrow.d.ts.map +1 -1
  64. package/dist/es/ir/path/path.d.ts +511 -3798
  65. package/dist/es/ir/path/path.d.ts.map +1 -1
  66. package/dist/es/ir/path/path.js +2 -2
  67. package/dist/es/ir/path/step.d.ts +917 -4374
  68. package/dist/es/ir/path/step.d.ts.map +1 -1
  69. package/dist/es/ir/path/step.js +7 -7
  70. package/dist/es/ir/path/target.d.ts +40 -121
  71. package/dist/es/ir/path/target.d.ts.map +1 -1
  72. package/dist/es/ir/position/at-position.d.ts +2 -10
  73. package/dist/es/ir/position/at-position.d.ts.map +1 -1
  74. package/dist/es/ir/position/at-position.js +1 -1
  75. package/dist/es/ir/position/offset-position.d.ts +2 -8
  76. package/dist/es/ir/position/offset-position.d.ts.map +1 -1
  77. package/dist/es/ir/scene.d.ts +17 -181
  78. package/dist/es/ir/scene.d.ts.map +1 -1
  79. package/dist/es/ir/scope.d.ts +283 -8761
  80. package/dist/es/ir/scope.d.ts.map +1 -1
  81. package/dist/es/ir/scope.js +5 -2
  82. package/dist/es/ir/shape.d.ts +2 -8
  83. package/dist/es/ir/shape.d.ts.map +1 -1
  84. package/dist/es/ir/text.d.ts +24 -70
  85. package/dist/es/ir/text.d.ts.map +1 -1
  86. package/dist/es/ir/transform.d.ts +23 -147
  87. package/dist/es/ir/transform.d.ts.map +1 -1
  88. package/dist/es/ir/transform.js +3 -3
  89. package/dist/es/parsers/way.d.ts +1 -1
  90. package/dist/es/parsers/way.js +1 -1
  91. package/dist/es/primitive/marker.d.ts +6 -6
  92. package/dist/es/primitive/marker.d.ts.map +1 -1
  93. package/dist/es/shapes/arc.d.ts.map +1 -1
  94. package/dist/es/shapes/arc.js +23 -4
  95. package/dist/es/shapes/rectangle.js +1 -1
  96. package/dist/es/shapes/shared.d.ts +3 -2
  97. package/dist/es/shapes/shared.d.ts.map +1 -1
  98. package/dist/es/shapes/shared.js +5 -3
  99. package/dist/es/shapes/star.d.ts.map +1 -1
  100. package/dist/es/shapes/star.js +2 -1
  101. package/dist/es/shapes/types.d.ts +10 -3
  102. package/dist/es/shapes/types.d.ts.map +1 -1
  103. package/dist/es/types.d.ts +1 -1
  104. package/dist/lib/arrows/index.cjs +1 -1
  105. package/dist/lib/arrows/index.d.ts.map +1 -1
  106. package/dist/lib/compile/anchor-cache.cjs +3 -3
  107. package/dist/lib/compile/compile.cjs +13 -10
  108. package/dist/lib/compile/compile.d.ts.map +1 -1
  109. package/dist/lib/compile/constant.cjs +2 -4
  110. package/dist/lib/compile/constant.d.ts +1 -3
  111. package/dist/lib/compile/constant.d.ts.map +1 -1
  112. package/dist/lib/compile/node.cjs +19 -9
  113. package/dist/lib/compile/node.d.ts +3 -3
  114. package/dist/lib/compile/node.d.ts.map +1 -1
  115. package/dist/lib/compile/path/index.cjs +39 -9
  116. package/dist/lib/compile/path/index.d.ts.map +1 -1
  117. package/dist/lib/compile/path/label.cjs +8 -4
  118. package/dist/lib/compile/path/label.d.ts.map +1 -1
  119. package/dist/lib/compile/scope.cjs +17 -5
  120. package/dist/lib/compile/scope.d.ts +1 -1
  121. package/dist/lib/compile/scope.d.ts.map +1 -1
  122. package/dist/lib/compile/text-metrics.cjs +2 -2
  123. package/dist/lib/compile/text-metrics.d.ts +1 -1
  124. package/dist/lib/geometry/bend.cjs +1 -1
  125. package/dist/lib/geometry/contour.cjs +5 -3
  126. package/dist/lib/geometry/contour.d.ts +5 -0
  127. package/dist/lib/geometry/contour.d.ts.map +1 -1
  128. package/dist/lib/geometry/diamond.cjs +9 -1
  129. package/dist/lib/geometry/diamond.d.ts +7 -1
  130. package/dist/lib/geometry/diamond.d.ts.map +1 -1
  131. package/dist/lib/geometry/ellipse.cjs +2 -0
  132. package/dist/lib/geometry/ellipse.d.ts.map +1 -1
  133. package/dist/lib/geometry/index.d.ts +4 -0
  134. package/dist/lib/geometry/index.d.ts.map +1 -1
  135. package/dist/lib/geometry/segment.cjs +24 -0
  136. package/dist/lib/geometry/segment.d.ts +7 -0
  137. package/dist/lib/geometry/segment.d.ts.map +1 -1
  138. package/dist/lib/index.cjs +6 -0
  139. package/dist/lib/index.d.ts +4 -4
  140. package/dist/lib/index.d.ts.map +1 -1
  141. package/dist/lib/ir/animation.cjs +6 -6
  142. package/dist/lib/ir/animation.d.ts +20 -120
  143. package/dist/lib/ir/animation.d.ts.map +1 -1
  144. package/dist/lib/ir/boundary.d.ts +3 -9
  145. package/dist/lib/ir/boundary.d.ts.map +1 -1
  146. package/dist/lib/ir/clip.d.ts +6 -46
  147. package/dist/lib/ir/clip.d.ts.map +1 -1
  148. package/dist/lib/ir/composite.d.ts +2 -14
  149. package/dist/lib/ir/composite.d.ts.map +1 -1
  150. package/dist/lib/ir/coordinate.cjs +1 -1
  151. package/dist/lib/ir/coordinate.d.ts +6 -42
  152. package/dist/lib/ir/coordinate.d.ts.map +1 -1
  153. package/dist/lib/ir/font.d.ts +10 -13
  154. package/dist/lib/ir/font.d.ts.map +1 -1
  155. package/dist/lib/ir/json.cjs +1 -1
  156. package/dist/lib/ir/json.d.ts +1 -1
  157. package/dist/lib/ir/json.d.ts.map +1 -1
  158. package/dist/lib/ir/node.cjs +2 -2
  159. package/dist/lib/ir/node.d.ts +123 -770
  160. package/dist/lib/ir/node.d.ts.map +1 -1
  161. package/dist/lib/ir/paint.d.ts +13 -91
  162. package/dist/lib/ir/paint.d.ts.map +1 -1
  163. package/dist/lib/ir/path/arrow.d.ts +4 -117
  164. package/dist/lib/ir/path/arrow.d.ts.map +1 -1
  165. package/dist/lib/ir/path/path.cjs +3 -1
  166. package/dist/lib/ir/path/path.d.ts +511 -3798
  167. package/dist/lib/ir/path/path.d.ts.map +1 -1
  168. package/dist/lib/ir/path/step.cjs +7 -7
  169. package/dist/lib/ir/path/step.d.ts +917 -4374
  170. package/dist/lib/ir/path/step.d.ts.map +1 -1
  171. package/dist/lib/ir/path/target.d.ts +40 -121
  172. package/dist/lib/ir/path/target.d.ts.map +1 -1
  173. package/dist/lib/ir/position/at-position.cjs +1 -1
  174. package/dist/lib/ir/position/at-position.d.ts +2 -10
  175. package/dist/lib/ir/position/at-position.d.ts.map +1 -1
  176. package/dist/lib/ir/position/offset-position.d.ts +2 -8
  177. package/dist/lib/ir/position/offset-position.d.ts.map +1 -1
  178. package/dist/lib/ir/scene.d.ts +17 -181
  179. package/dist/lib/ir/scene.d.ts.map +1 -1
  180. package/dist/lib/ir/scope.cjs +5 -2
  181. package/dist/lib/ir/scope.d.ts +283 -8761
  182. package/dist/lib/ir/scope.d.ts.map +1 -1
  183. package/dist/lib/ir/shape.d.ts +2 -8
  184. package/dist/lib/ir/shape.d.ts.map +1 -1
  185. package/dist/lib/ir/text.d.ts +24 -70
  186. package/dist/lib/ir/text.d.ts.map +1 -1
  187. package/dist/lib/ir/transform.cjs +3 -3
  188. package/dist/lib/ir/transform.d.ts +23 -147
  189. package/dist/lib/ir/transform.d.ts.map +1 -1
  190. package/dist/lib/parsers/way.cjs +1 -1
  191. package/dist/lib/parsers/way.d.ts +1 -1
  192. package/dist/lib/primitive/marker.d.ts +6 -6
  193. package/dist/lib/primitive/marker.d.ts.map +1 -1
  194. package/dist/lib/shapes/arc.cjs +22 -3
  195. package/dist/lib/shapes/arc.d.ts.map +1 -1
  196. package/dist/lib/shapes/rectangle.cjs +1 -1
  197. package/dist/lib/shapes/shared.cjs +5 -3
  198. package/dist/lib/shapes/shared.d.ts +3 -2
  199. package/dist/lib/shapes/shared.d.ts.map +1 -1
  200. package/dist/lib/shapes/star.cjs +2 -1
  201. package/dist/lib/shapes/star.d.ts.map +1 -1
  202. package/dist/lib/shapes/types.d.ts +10 -3
  203. package/dist/lib/shapes/types.d.ts.map +1 -1
  204. package/dist/lib/types.d.ts +1 -1
  205. package/package.json +2 -2
@@ -18,7 +18,7 @@ var bendControlPoints = (from, to, direction, bendAngle) => {
18
18
  var DEFAULT_LOOSENESS = 1;
19
19
  /** self-loop(from==to)默认环大小(user units,受 looseness 缩放) */
20
20
  var DEFAULT_LOOP_SIZE = 1;
21
- /** 直边 cubic 控制点距离系数(chord 的几分之一) */
21
+ /** 直边 cubic 控制点距离系数(chord 的几分之一);retikz 取 1/3,TikZ 默认 looseness 对应 ≈0.3915,本库简化为 1/3 */
22
22
  var OUTIN_DISTANCE_FACTOR = 1 / 3;
23
23
  /** 角度(度)转单位方向向量(0°=+x,90°=+y screen-down,与 IR 角度约定一致) */
24
24
  var dirOf = (angleDeg) => {
@@ -77,6 +77,11 @@ export declare const filletContour: (segments: Array<ContourSegment>, cornerRadi
77
77
  * 夹紧到 0 的角不插弧、按原尖角连接。
78
78
  */
79
79
  export declare const contourCommands: (segments: Array<ContourSegment>, cornerRadius?: number, fillets?: Array<FilletSolution>) => Array<ContourCommand>;
80
+ /** 调整 endAngle 使「start→end」沿给定扫描方向(ccw: 递减 / 否则递增),保持裁剪后弧方向不变 */
81
+ export declare const alignSweep: (start: number, end: number, ccw: boolean) => {
82
+ start: number;
83
+ end: number;
84
+ };
80
85
  /**
81
86
  * 从 rayOrigin 朝 toward 射线 ∩ fillet 后轮廓全部段,返回最近正向交点
82
87
  * @description rayOrigin 显式传(不假设中心);toward 是射线指向的目标点(方向 = toward − rayOrigin)。
@@ -1 +1 @@
1
- {"version":3,"file":"contour.d.ts","sourceRoot":"","sources":["../../../src/geometry/contour.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAS,MAAM,SAAS,CAAC;AAkB/C,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB;IAChB,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY;IACZ,IAAI,EAAE,KAAK,CAAC;IACZ,gBAAgB;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;AAEtD,qFAAqF;AACrF,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GACD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AA6BtB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,kBAAkB;IAClB,cAAc,EAAE,QAAQ,CAAC;IACzB,kBAAkB;IAClB,eAAe,EAAE,QAAQ,CAAC;IAC1B,gBAAgB;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,8BAA8B;IAC9B,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAgTF;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,UAAU,KAAK,CAAC,cAAc,CAAC,EAC/B,eAAe,MAAM,KACpB,KAAK,CAAC,cAAc,CAUtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,KAAK,CAAC,cAAc,CAAC,EAC/B,eAAe,MAAM,EACrB,UAAS,KAAK,CAAC,cAAc,CAAyC,KACrE,KAAK,CAAC,cAAc,CAsCtB,CAAC;AAwCF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,KAAK,CAAC,cAAc,CAAC,EAC/B,cAAc,MAAM,GAAG,SAAS,EAChC,WAAW,QAAQ,EACnB,QAAQ,QAAQ,EAChB,UAAS,KAAK,CAAC,cAAc,CAAyC,KACrE,QAAQ,GAAG,SA0Eb,CAAC"}
1
+ {"version":3,"file":"contour.d.ts","sourceRoot":"","sources":["../../../src/geometry/contour.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,QAAQ,EAAS,MAAM,SAAS,CAAC;AAkB/C,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB;IAChB,IAAI,EAAE,QAAQ,CAAC;IACf,gBAAgB;IAChB,EAAE,EAAE,QAAQ,CAAC;CACd,CAAC;AAEF,oDAAoD;AACpD,MAAM,MAAM,UAAU,GAAG;IACvB,YAAY;IACZ,IAAI,EAAE,KAAK,CAAC;IACZ,gBAAgB;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,cAAc,GAAG,WAAW,GAAG,UAAU,CAAC;AAEtD,qFAAqF;AACrF,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAC9B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,QAAQ,CAAA;CAAE,GAC9B;IACE,IAAI,EAAE,KAAK,CAAC;IACZ,MAAM,EAAE,QAAQ,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GACD;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,CAAC;AA6BtB;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,kBAAkB;IAClB,cAAc,EAAE,QAAQ,CAAC;IACzB,kBAAkB;IAClB,eAAe,EAAE,QAAQ,CAAC;IAC1B,gBAAgB;IAChB,MAAM,EAAE,QAAQ,CAAC;IACjB,gBAAgB;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,8BAA8B;IAC9B,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAoTF;;;GAGG;AACH,eAAO,MAAM,aAAa,GACxB,UAAU,KAAK,CAAC,cAAc,CAAC,EAC/B,eAAe,MAAM,KACpB,KAAK,CAAC,cAAc,CAUtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,eAAe,GAC1B,UAAU,KAAK,CAAC,cAAc,CAAC,EAC/B,eAAe,MAAM,EACrB,UAAS,KAAK,CAAC,cAAc,CAAyC,KACrE,KAAK,CAAC,cAAc,CAsCtB,CAAC;AA2BF,iEAAiE;AACjE,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,KAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAUjG,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,UAAU,KAAK,CAAC,cAAc,CAAC,EAC/B,cAAc,MAAM,GAAG,SAAS,EAChC,WAAW,QAAQ,EACnB,QAAQ,QAAQ,EAChB,UAAS,KAAK,CAAC,cAAc,CAAyC,KACrE,QAAQ,GAAG,SA0Eb,CAAC"}
@@ -32,7 +32,7 @@ var fractionAlong = (seg, p, fromStart) => {
32
32
  const ex = seg.to[0] - seg.from[0];
33
33
  const ey = seg.to[1] - seg.from[1];
34
34
  const len2 = ex * ex + ey * ey;
35
- if (len2 < EPSILON) return 0;
35
+ if (len2 < EPSILON * EPSILON) return 0;
36
36
  const t = ((p[0] - seg.from[0]) * ex + (p[1] - seg.from[1]) * ey) / len2;
37
37
  return fromStart ? t : 1 - t;
38
38
  }
@@ -155,9 +155,10 @@ var solveFillet = (segA, segB, r) => {
155
155
  const tInPt = tangentPointOn(segA, cand, radius);
156
156
  const tOutPt = tangentPointOn(segB, cand, radius);
157
157
  if (!tInPt || !tOutPt) continue;
158
+ const tol = 1e-6 * Math.max(1, radius, Math.abs(corner[0]), Math.abs(corner[1]));
158
159
  const dA = distanceToAny(segA, cand);
159
160
  const dB = distanceToAny(segB, cand);
160
- if (Math.abs(dA - radius) > 1e-6 || Math.abs(dB - radius) > 1e-6) continue;
161
+ if (Math.abs(dA - radius) > tol || Math.abs(dB - radius) > tol) continue;
161
162
  const inFrac = fractionAlong(segA, tInPt, false);
162
163
  const outFrac = fractionAlong(segB, tOutPt, true);
163
164
  if (inFrac < -1e-7 || inFrac > .5000001 || outFrac < -1e-7 || outFrac > .5000001) continue;
@@ -252,7 +253,8 @@ var tangentPointOn = (seg, filletCenter, radius) => {
252
253
  best = cand;
253
254
  }
254
255
  }
255
- return bestErr <= 1e-6 ? best : void 0;
256
+ const tol = 1e-6 * Math.max(1, radius, Math.abs(filletCenter[0]), Math.abs(filletCenter[1]));
257
+ return bestErr <= tol ? best : void 0;
256
258
  };
257
259
  /**
258
260
  * 对闭合轮廓的每个接缝做 fillet,返回 fillet 解算列表(与接缝一一对应,下标 i = 段 i 终点接段 (i+1)%n 起点)
@@ -12,7 +12,13 @@ export type Diamond = {
12
12
  /** 绕中心旋转弧度 */
13
13
  rotate?: number;
14
14
  };
15
- /** 菱形相关基础工具 */
15
+ /**
16
+ * 菱形相关基础工具(独立几何原语)
17
+ * @description 注意:这是一套独立的菱形几何工具,**与 Node 的 diamond shape 不是同一条路径**——
18
+ * 后者已被 compile 规范化为 `polygon` preset(`{ sides: 4 }`),其 compass anchor 走外接 AABB 角。
19
+ * 本工具的 NE/NW/SE/SW anchor 取斜边中点(落在真实菱形边上),语义与 polygon 路径不同;
20
+ * 作为通用几何 API 保留,勿假设它与 Node diamond shape 行为一致。
21
+ */
16
22
  export declare const diamond: {
17
23
  /** 中心 */
18
24
  center: (d: Diamond) => Position;
@@ -1 +1 @@
1
- {"version":3,"file":"diamond.d.ts","sourceRoot":"","sources":["../../../src/geometry/diamond.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAqB,MAAM,QAAQ,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAUxC,iEAAiE;AACjE,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAe;AACf,eAAO,MAAM,OAAO;IAClB,SAAS;gBACG,OAAO,KAAG,QAAQ;IAC9B,oDAAoD;kBACtC,OAAO,KAAK,QAAQ,KAAG,OAAO;IAI5C,sDAAsD;gBAC1C,OAAO,QAAQ,kBAAkB,KAAG,QAAQ;IAqC1D;;;OAGG;uBACkB,OAAO,UAAU,QAAQ,KAAG,QAAQ;IAOvD,yDAAyD;mBAC1C,OAAO,QAAQ,IAAI,KAAK,MAAM,KAAG,QAAQ;CASzD,CAAC"}
1
+ {"version":3,"file":"diamond.d.ts","sourceRoot":"","sources":["../../../src/geometry/diamond.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAqB,MAAM,QAAQ,CAAC;AAEtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAUxC,iEAAiE;AACjE,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,yBAAyB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,OAAO;IAClB,SAAS;gBACG,OAAO,KAAG,QAAQ;IAC9B,oDAAoD;kBACtC,OAAO,KAAK,QAAQ,KAAG,OAAO;IAK5C,sDAAsD;gBAC1C,OAAO,QAAQ,kBAAkB,KAAG,QAAQ;IAqC1D;;;OAGG;uBACkB,OAAO,UAAU,QAAQ,KAAG,QAAQ;IAQvD,yDAAyD;mBAC1C,OAAO,QAAQ,IAAI,KAAK,MAAM,KAAG,QAAQ;CASzD,CAAC"}
@@ -24,12 +24,19 @@ var DIAMOND_EDGE = {
24
24
  "south-west"
25
25
  ]
26
26
  };
27
- /** 菱形相关基础工具 */
27
+ /**
28
+ * 菱形相关基础工具(独立几何原语)
29
+ * @description 注意:这是一套独立的菱形几何工具,**与 Node 的 diamond shape 不是同一条路径**——
30
+ * 后者已被 compile 规范化为 `polygon` preset(`{ sides: 4 }`),其 compass anchor 走外接 AABB 角。
31
+ * 本工具的 NE/NW/SE/SW anchor 取斜边中点(落在真实菱形边上),语义与 polygon 路径不同;
32
+ * 作为通用几何 API 保留,勿假设它与 Node diamond shape 行为一致。
33
+ */
28
34
  var diamond = {
29
35
  /** 中心 */
30
36
  center: (d) => [d.x, d.y],
31
37
  /** 点是否在菱形内(含边界,含旋转);方程 |x|/halfA + |y|/halfB ≤ 1 */
32
38
  contains: (d, p) => {
39
+ if (d.halfA === 0 || d.halfB === 0) return false;
33
40
  const [lx, ly] = worldToLocal(d, p);
34
41
  return Math.abs(lx) / d.halfA + Math.abs(ly) / d.halfB <= 1.000000001;
35
42
  },
@@ -75,6 +82,7 @@ var diamond = {
75
82
  * @description 菱形方程 |x|/halfA + |y|/halfB = 1;沿方向 (lx,ly) 缩放 t 倍命中:t = 1 / (|lx|/halfA + |ly|/halfB)
76
83
  */
77
84
  boundaryPoint: (d, toward) => {
85
+ if (d.halfA === 0 || d.halfB === 0) return [d.x, d.y];
78
86
  const [lx, ly] = worldToLocal(d, toward);
79
87
  const denom = Math.abs(lx) / d.halfA + Math.abs(ly) / d.halfB;
80
88
  if (denom === 0) return [d.x, d.y];
@@ -1 +1 @@
1
- {"version":3,"file":"ellipse.d.ts","sourceRoot":"","sources":["../../../src/geometry/ellipse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,QAAQ,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxC,qCAAqC;AACrC,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,eAAe;AACf,eAAO,MAAM,OAAO;IAClB,SAAS;gBACG,OAAO,KAAG,QAAQ;IAC9B,0BAA0B;kBACZ,OAAO,KAAK,QAAQ,KAAG,OAAO;IAI9C;;;OAGG;gBACW,OAAO,QAAQ,kBAAkB,KAAG,QAAQ;IAqC1D;;;OAGG;uBACkB,OAAO,UAAU,QAAQ,KAAG,QAAQ;IAQvD,qDAAqD;mBACtC,OAAO,QAAQ,IAAI,KAAK,MAAM,KAAG,QAAQ;CAIzD,CAAC"}
1
+ {"version":3,"file":"ellipse.d.ts","sourceRoot":"","sources":["../../../src/geometry/ellipse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,QAAQ,CAAC;AAEjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAIxC,qCAAqC;AACrC,MAAM,MAAM,OAAO,GAAG;IACpB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,aAAa;IACb,EAAE,EAAE,MAAM,CAAC;IACX,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAIF,eAAe;AACf,eAAO,MAAM,OAAO;IAClB,SAAS;gBACG,OAAO,KAAG,QAAQ;IAC9B,0BAA0B;kBACZ,OAAO,KAAK,QAAQ,KAAG,OAAO;IAK9C;;;OAGG;gBACW,OAAO,QAAQ,kBAAkB,KAAG,QAAQ;IAqC1D;;;OAGG;uBACkB,OAAO,UAAU,QAAQ,KAAG,QAAQ;IASvD,qDAAqD;mBACtC,OAAO,QAAQ,IAAI,KAAK,MAAM,KAAG,QAAQ;CAIzD,CAAC"}
@@ -9,6 +9,7 @@ var ellipse = {
9
9
  center: (e) => [e.x, e.y],
10
10
  /** 判断点是否在椭圆内(含边界,考虑旋转) */
11
11
  contains: (e, p) => {
12
+ if (e.rx === 0 || e.ry === 0) return false;
12
13
  const [lx, ly] = worldToLocal(e, p);
13
14
  return lx * lx / (e.rx * e.rx) + ly * ly / (e.ry * e.ry) <= 1;
14
15
  },
@@ -57,6 +58,7 @@ var ellipse = {
57
58
  * @description 椭圆方程 (x/rx)² + (y/ry)² = 1;沿 (lx,ly) 缩放 t 倍命中 t = 1 / √((lx/rx)² + (ly/ry)²)
58
59
  */
59
60
  boundaryPoint: (e, toward) => {
61
+ if (e.rx === 0 || e.ry === 0) return [e.x, e.y];
60
62
  const [lx, ly] = worldToLocal(e, toward);
61
63
  if (lx === 0 && ly === 0) return [e.x, e.y];
62
64
  const a = lx / e.rx;
@@ -9,4 +9,8 @@ export * from './bend';
9
9
  export * from './arc';
10
10
  export * from './segment';
11
11
  export * from './contour';
12
+ export { EDGE_ENDS, lerpPoint, edgeAngleDeg, polylineViaVertex } from './edge';
13
+ export type { Side } from './edge';
14
+ export { localToWorld, worldToLocal } from './transform';
15
+ export type { CenteredShape } from './transform';
12
16
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/geometry/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,OAAO,CAAC;AACtB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAC/E,YAAY,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,YAAY,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC"}
@@ -34,4 +34,11 @@ export declare const ellipseArcSegmentSample: (center: Position, rx: number, ry:
34
34
  export declare const circleSegmentSample: (center: Position, radius: number, t: number) => SegmentSample;
35
35
  /** 整椭圆,参数化 (rx·cos(2πt), ry·sin(2πt)) */
36
36
  export declare const ellipseSegmentSample: (center: Position, rx: number, ry: number, t: number) => SegmentSample;
37
+ /**
38
+ * 矩形周长段:两对角 → 闭合周长上 t∈[0,1] 的点 / 切线
39
+ * @description 4 条边按 rectOutline 的顺时针绕向(y-down:左上→右上→右下→左下→闭合回左上)均分参数,
40
+ * 每条边占 1/4 t;切线 = 该边方向。忽略 cornerRadius(采尖角折线周长),mark 落在直边上精确、
41
+ * 贴近圆角处略偏轮廓——对中段 marking 足够。退化(零宽 / 零高)由 lineSegmentSample 的零切线回退兜底。
42
+ */
43
+ export declare const rectPerimeterSample: (from: Position, to: Position, t: number) => SegmentSample;
37
44
  //# sourceMappingURL=segment.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/geometry/segment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAqB,MAAM,SAAS,CAAC;AAiB3D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wBAAwB;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAqBF,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,aAAwF,CAAC;AAE5F,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,GAClC,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAAgF,CAAC;AAEpF,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,GAAG,MAAM,KACR,aAAoE,CAAC;AAExE,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,GAAG,MAAM,KACR,aAA4D,CAAC"}
1
+ {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/geometry/segment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAqB,MAAM,SAAS,CAAC;AAiB3D;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wBAAwB;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAqBF,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,aAAwF,CAAC;AAE5F,gEAAgE;AAChE,eAAO,MAAM,uBAAuB,GAClC,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAAgF,CAAC;AAEpF,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,GAAG,MAAM,KACR,aAAoE,CAAC;AAExE,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,GAAG,MAAM,KACR,aAA4D,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAkBF,CAAC"}
@@ -60,5 +60,28 @@ var ellipseArcSegmentSample = (center, rx, ry, startAngleDeg, endAngleDeg, t) =>
60
60
  var circleSegmentSample = (center, radius, t) => sampleEllipseArc(center, radius, radius, 0, 360, t);
61
61
  /** 整椭圆,参数化 (rx·cos(2πt), ry·sin(2πt)) */
62
62
  var ellipseSegmentSample = (center, rx, ry, t) => sampleEllipseArc(center, rx, ry, 0, 360, t);
63
+ /**
64
+ * 矩形周长段:两对角 → 闭合周长上 t∈[0,1] 的点 / 切线
65
+ * @description 4 条边按 rectOutline 的顺时针绕向(y-down:左上→右上→右下→左下→闭合回左上)均分参数,
66
+ * 每条边占 1/4 t;切线 = 该边方向。忽略 cornerRadius(采尖角折线周长),mark 落在直边上精确、
67
+ * 贴近圆角处略偏轮廓——对中段 marking 足够。退化(零宽 / 零高)由 lineSegmentSample 的零切线回退兜底。
68
+ */
69
+ var rectPerimeterSample = (from, to, t) => {
70
+ const x0 = Math.min(from[0], to[0]);
71
+ const x1 = Math.max(from[0], to[0]);
72
+ const y0 = Math.min(from[1], to[1]);
73
+ const y1 = Math.max(from[1], to[1]);
74
+ const corners = [
75
+ [x0, y0],
76
+ [x1, y0],
77
+ [x1, y1],
78
+ [x0, y1],
79
+ [x0, y0]
80
+ ];
81
+ const scaled = (t <= 0 ? 0 : t >= 1 ? 1 : t) * 4;
82
+ const edge = Math.min(Math.floor(scaled), 3);
83
+ const localT = scaled - edge;
84
+ return lineSegmentSample(corners[edge], corners[edge + 1], localT);
85
+ };
63
86
  //#endregion
64
- export { arcSegmentSample, circleSegmentSample, cubicSegmentSample, ellipseArcSegmentSample, ellipseSegmentSample, foldSegmentSample, lineSegmentSample, quadSegmentSample };
87
+ export { arcSegmentSample, circleSegmentSample, cubicSegmentSample, ellipseArcSegmentSample, ellipseSegmentSample, foldSegmentSample, lineSegmentSample, quadSegmentSample, rectPerimeterSample };
@@ -2,8 +2,8 @@
2
2
  * @retikz/core 公开 API
3
3
  * @description 任何 framework adapter(@retikz/react、@retikz/vue、@retikz/render/canvas、@retikz/ssr)只能 import 本文件导出内容,不准走子路径。本包零 React/零 DOM 依赖
4
4
  */
5
- export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AtDirection, TargetSchema, AnchorRefSchema, NodeTargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, AbsoluteTargetSchema, BetweenPositionSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, RectangleStepSchema, GeneratorStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, ShapeRefSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ScopeSchema, CompositeBaseSchema, NodeDefaultSchema, PathDefaultSchema, LabelDefaultSchema, ArrowDefaultSchema, TransformSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, PaintSpecSchema, GradientStopSchema, JsonValueSchema, JsonObjectSchema, ClipSpecSchema, ViewBoxSchema, } from './ir';
6
- export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirectionValue, IRTarget, IRAnchorRef, IRNodeTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRAbsoluteTarget, IRBetweenPosition, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRRectangleStep, IRGeneratorStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRShapeRef, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRScope, IRComposite, IRNodeDefault, IRPathDefault, IRLabelDefault, IRArrowDefault, StyleChannel, IRTransform, IRTranslateTransform, IRPolarTranslateTransform, IRAtTranslateTransform, IROffsetTranslateTransform, IRRotateTransform, IRScaleTransform, IRChild, IR, ArrowShapeValue, BuiltinArrowName, ArrowShapeName, IRArrowDetail, IRArrowEndDetail, NodeShape, BuiltinShapeName, BuiltinShapeValue, NodeTextAlignValue, PatternShapeValue, PatternShapeName, BuiltinPatternName, IRPaintSpec, IRGradientStop, JsonValue, IRJsonObject, IRClipSpec, IRViewBox, } from './ir';
5
+ export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AtDirection, TargetSchema, AnchorRefSchema, NodeTargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, AbsoluteTargetSchema, BetweenPositionSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, FoldStepVia, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, RectangleStepSchema, GeneratorStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, ShapeRefSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, PathScaleSchema, ArrowMarkSchema, ArrowDetailSchema, ArrowEndDetailSchema, ScopeSchema, CompositeBaseSchema, NodeDefaultSchema, PathDefaultSchema, LabelDefaultSchema, ArrowDefaultSchema, TransformSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, PaintSpecSchema, GradientStopSchema, JsonValueSchema, JsonObjectSchema, ClipSpecSchema, ViewBoxSchema, } from './ir';
6
+ export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirectionValue, IRTarget, IRAnchorRef, IRNodeTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRAbsoluteTarget, IRBetweenPosition, IRMoveStep, IRLineStep, IRFoldStep, FoldStepViaValue, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRRectangleStep, IRGeneratorStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRShapeRef, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRPathScale, IRArrowMark, IRScope, IRComposite, IRNodeDefault, IRPathDefault, IRLabelDefault, IRArrowDefault, StyleChannel, IRTransform, IRTranslateTransform, IRPolarTranslateTransform, IRAtTranslateTransform, IROffsetTranslateTransform, IRBetweenTranslateTransform, IRRotateTransform, IRScaleTransform, IRChild, IR, ArrowShapeValue, BuiltinArrowName, ArrowShapeName, IRArrowDetail, IRArrowEndDetail, NodeShape, BuiltinShapeName, BuiltinShapeValue, NodeTextAlignValue, PatternShapeValue, PatternShapeName, BuiltinPatternName, IRPaintSpec, IRGradientStop, JsonValue, IRJsonObject, IRClipSpec, IRViewBox, } from './ir';
7
7
  export { ArrowShape, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES, ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, BuiltinShape, NodeTextAlign, PatternShape, Boundary, BoundarySchema, AnimationProperty, AnimationEasing, AnimationDirection, AnimationFill, AnimationTrigger, AnimationTrackSchema, KeyframeSchema, TriggerSchema, EasingSchema, OriginSchema, } from './ir';
8
8
  export type { BoundaryValue, IRBoundary } from './ir';
9
9
  export type { BuiltinAnimationProperty, AnimationPropertyRef, AnimationEasingValue, AnimationDirectionValue, AnimationFillValue, AnimationTriggerValue, IRAnimationTrack, IRKeyframe, IRAnimationTrigger, IRAnimationOrigin, } from './ir';
@@ -18,8 +18,8 @@ ClipResource, ClipShape,
18
18
  ResolvedPatternTile,
19
19
  /** marker 窄子集(ArrowDefinition.emit 产物,renderer-agnostic) */
20
20
  MarkerPrimitive, MarkerPathPrim, MarkerEllipsePrim, MarkerRectPrim, MarkerGroupPrim, MarkerPathCommand, MarkerFill, } from './primitive';
21
- export type { FontSpec, TextMetrics, TextMeasurer, CompileOptions, CompileWarning, } from './compile';
22
- export { computeLayout, fallbackMeasurer, compileToScene } from './compile';
21
+ export type { FontSpec, TextMetrics, TextMeasurer, CompileOptions, CompileWarning, CompileWarningCodeValue, } from './compile';
22
+ export { computeLayout, fallbackMeasurer, compileToScene, CompileWarningCode, formatCompileWarning } from './compile';
23
23
  export type { WayItem, WayDSL, WayCycle, WayVia, WayRelativeItem, WayLabel, WayLabelOp, } from './parsers';
24
24
  export { parseWay, DrawWay, parseTargetSugar, parseNodeTarget } from './parsers';
25
25
  export { fadeIn, drawOn, scaleIn, grow, growUp, slideIn, colorShift, cameraTo, pulse, spin, loop, flash, blink, wiggle, stagger, } from './presets';
@@ -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
@@ -13,8 +13,8 @@ import { GradientStopSchema, PaintSpecSchema, PatternShape } from "./ir/paint.js
13
13
  import { ClipSpecSchema } from "./ir/clip.js";
14
14
  import { LineSpecSchema, TextBlockSchema } from "./ir/text.js";
15
15
  import { ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, ArrowDetailSchema, ArrowEndDetailSchema, ArrowShape, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES } from "./ir/path/arrow.js";
16
- import { ArcStepSchema, BendStepSchema, CirclePathStepSchema, ControlPointSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, EllipsePathStepSchema, FoldStepSchema, GeneratorStepSchema, LineStepSchema, MoveStepSchema, RectangleStepSchema, StepLabelSchema, StepSchema } from "./ir/path/step.js";
17
- import { PathSchema } from "./ir/path/path.js";
16
+ import { ArcStepSchema, BendStepSchema, CirclePathStepSchema, ControlPointSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, EllipsePathStepSchema, FoldStepSchema, FoldStepVia, GeneratorStepSchema, LineStepSchema, MoveStepSchema, RectangleStepSchema, StepLabelSchema, StepSchema } from "./ir/path/step.js";
17
+ import { ArrowMarkSchema, PathScaleSchema, PathSchema } from "./ir/path/path.js";
18
18
  import { BuiltinShape, NodeLabelSchema, NodeSchema, NodeTextAlign } from "./ir/node.js";
19
19
  import { CoordinateSchema } from "./ir/coordinate.js";
20
20
  import { TransformSchema } from "./ir/transform.js";
@@ -33,6 +33,7 @@ import { defineArrow } from "./arrows/define.js";
33
33
  import { BUILTIN_ARROWS } from "./arrows/index.js";
34
34
  import { definePattern } from "./patterns/define.js";
35
35
  import { BUILTIN_PATTERNS } from "./patterns/index.js";
36
+ import { CompileWarningCode, formatCompileWarning } from "./compile/constant.js";
36
37
  import { fallbackMeasurer } from "./compile/text-metrics.js";
37
38
  import { computeLayout } from "./compile/layout.js";
38
39
  import { compileToScene } from "./compile/compile.js";
@@ -44,4 +45,4 @@ import { circle } from "./geometry/circle.js";
44
45
  import { diamond } from "./geometry/diamond.js";
45
46
  import { definePathGenerator } from "./path-generators/define.js";
46
47
  import { defineComposite } from "./composites/define.js";
47
- export { ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, AbsoluteTargetSchema, AnchorRefSchema, AnimationDirection, AnimationEasing, AnimationFill, AnimationProperty, AnimationTrackSchema, AnimationTrigger, ArcStepSchema, ArrowDefaultSchema, ArrowDetailSchema, ArrowEndDetailSchema, ArrowShape, AtDirection, AtPositionSchema, BUILTIN_ARROWS, BUILTIN_PATTERNS, BUILTIN_SHAPES, BendStepSchema, BetweenPositionSchema, Boundary, BoundarySchema, BuiltinShape, CURRENT_IR_VERSION, ChildSchema, CirclePathStepSchema, ClipSpecSchema, CompassAnchor, CompositeBaseSchema, ControlPointSchema, CoordinateSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, DEFAULT_ARROW_SHAPE, DrawWay, EasingSchema, EllipsePathStepSchema, FoldStepSchema, FontSchema, GeneratorStepSchema, GradientStopSchema, HOLLOW_ARROW_SHAPES, JsonObjectSchema, JsonValueSchema, KeyframeSchema, LabelDefaultSchema, LineSpecSchema, LineStepSchema, MoveStepSchema, NodeDefaultSchema, NodeLabelSchema, NodeSchema, NodeTargetSchema, NodeTextAlign, OffsetPositionSchema, OriginSchema, PaintSpecSchema, PathDefaultSchema, PathSchema, PatternShape, PolarPositionSchema, PositionSchema, RectangleStepSchema, RelativeAccumulateTargetSchema, RelativeTargetSchema, SceneSchema, ScopeSchema, ShapeRefSchema, StepLabelSchema, StepSchema, TargetSchema, TextBlockSchema, TransformSchema, TriggerSchema, ViewBoxSchema, WebAnchor, blink, cameraTo, circle, colorShift, compileToScene, computeLayout, defineArrow, defineComposite, definePathGenerator, definePattern, defineShape, diamond, drawOn, ellipse, fadeIn, fallbackMeasurer, flash, grow, growUp, localToWorld, loop, normalizeCompassAnchor, parseNodeTarget, parseTargetSugar, parseWay, point, polar, pulse, rect, scaleIn, slideIn, spin, stagger, wiggle, worldToLocal };
48
+ export { ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, AbsoluteTargetSchema, AnchorRefSchema, AnimationDirection, AnimationEasing, AnimationFill, AnimationProperty, AnimationTrackSchema, AnimationTrigger, ArcStepSchema, ArrowDefaultSchema, ArrowDetailSchema, ArrowEndDetailSchema, ArrowMarkSchema, ArrowShape, AtDirection, AtPositionSchema, BUILTIN_ARROWS, BUILTIN_PATTERNS, BUILTIN_SHAPES, BendStepSchema, BetweenPositionSchema, Boundary, BoundarySchema, BuiltinShape, CURRENT_IR_VERSION, ChildSchema, CirclePathStepSchema, ClipSpecSchema, CompassAnchor, CompileWarningCode, CompositeBaseSchema, ControlPointSchema, CoordinateSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, DEFAULT_ARROW_SHAPE, DrawWay, EasingSchema, EllipsePathStepSchema, FoldStepSchema, FoldStepVia, FontSchema, GeneratorStepSchema, GradientStopSchema, HOLLOW_ARROW_SHAPES, JsonObjectSchema, JsonValueSchema, KeyframeSchema, LabelDefaultSchema, LineSpecSchema, LineStepSchema, MoveStepSchema, NodeDefaultSchema, NodeLabelSchema, NodeSchema, NodeTargetSchema, NodeTextAlign, OffsetPositionSchema, OriginSchema, PaintSpecSchema, PathDefaultSchema, PathScaleSchema, PathSchema, PatternShape, PolarPositionSchema, PositionSchema, RectangleStepSchema, RelativeAccumulateTargetSchema, RelativeTargetSchema, SceneSchema, ScopeSchema, ShapeRefSchema, StepLabelSchema, StepSchema, TargetSchema, TextBlockSchema, TransformSchema, TriggerSchema, ViewBoxSchema, WebAnchor, blink, cameraTo, circle, colorShift, compileToScene, computeLayout, defineArrow, defineComposite, definePathGenerator, definePattern, defineShape, diamond, drawOn, ellipse, fadeIn, fallbackMeasurer, flash, formatCompileWarning, grow, growUp, localToWorld, loop, normalizeCompassAnchor, parseNodeTarget, parseTargetSugar, parseWay, point, polar, pulse, rect, scaleIn, slideIn, spin, stagger, wiggle, worldToLocal };
@@ -54,20 +54,12 @@ export declare const AnimationFill: {
54
54
  };
55
55
  /** 填充模式名联合 */
56
56
  export type AnimationFillValue = ValueOf<typeof AnimationFill>;
57
- export declare const EasingSchema: z.ZodUnion<[z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
57
+ export declare const EasingSchema: z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>;
58
58
  export declare const KeyframeSchema: z.ZodObject<{
59
59
  at: z.ZodNumber;
60
- value: z.ZodType<import('./json').JsonValue, z.ZodTypeDef, import('./json').JsonValue>;
61
- easing: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
62
- }, "strip", z.ZodTypeAny, {
63
- value: import('./json').JsonValue;
64
- at: number;
65
- easing?: string | [number, number, number, number] | undefined;
66
- }, {
67
- value: import('./json').JsonValue;
68
- at: number;
69
- easing?: string | [number, number, number, number] | undefined;
70
- }>;
60
+ value: z.ZodType<import('./json').JsonValue, unknown, z.core.$ZodTypeInternals<import('./json').JsonValue, unknown>>;
61
+ easing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
62
+ }, z.core.$strip>;
71
63
  /** 播放触发器关键字(runtime 落地;DrawWay 风格 const + 派生类型,与其它 Animation 枚举单一真源一致) */
72
64
  export declare const AnimationTrigger: {
73
65
  readonly Load: "load";
@@ -76,138 +68,46 @@ export declare const AnimationTrigger: {
76
68
  };
77
69
  /** 触发器关键字联合(不含 { onEvent } 对象形态) */
78
70
  export type AnimationTriggerValue = ValueOf<typeof AnimationTrigger>;
79
- export declare const TriggerSchema: z.ZodUnion<[z.ZodNativeEnum<{
71
+ export declare const TriggerSchema: z.ZodUnion<readonly [z.ZodEnum<{
80
72
  readonly Load: "load";
81
73
  readonly Visible: "visible";
82
74
  readonly Manual: "manual";
83
75
  }>, z.ZodObject<{
84
76
  onEvent: z.ZodString;
85
- }, "strip", z.ZodTypeAny, {
86
- onEvent: string;
87
- }, {
88
- onEvent: string;
89
- }>]>;
90
- export declare const OriginSchema: z.ZodUnion<[z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
91
- export declare const AnimationTrackSchema: z.ZodEffects<z.ZodObject<{
77
+ }, z.core.$strip>]>;
78
+ export declare const OriginSchema: z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>;
79
+ export declare const AnimationTrackSchema: z.ZodObject<{
92
80
  property: z.ZodString;
93
- keyframes: z.ZodEffects<z.ZodArray<z.ZodObject<{
81
+ keyframes: z.ZodArray<z.ZodObject<{
94
82
  at: z.ZodNumber;
95
- value: z.ZodType<import('./json').JsonValue, z.ZodTypeDef, import('./json').JsonValue>;
96
- easing: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
97
- }, "strip", z.ZodTypeAny, {
98
- value: import('./json').JsonValue;
99
- at: number;
100
- easing?: string | [number, number, number, number] | undefined;
101
- }, {
102
- value: import('./json').JsonValue;
103
- at: number;
104
- easing?: string | [number, number, number, number] | undefined;
105
- }>, "many">, {
106
- value: import('./json').JsonValue;
107
- at: number;
108
- easing?: string | [number, number, number, number] | undefined;
109
- }[], {
110
- value: import('./json').JsonValue;
111
- at: number;
112
- easing?: string | [number, number, number, number] | undefined;
113
- }[]>;
83
+ value: z.ZodType<import('./json').JsonValue, unknown, z.core.$ZodTypeInternals<import('./json').JsonValue, unknown>>;
84
+ easing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
85
+ }, z.core.$strip>>;
114
86
  duration: z.ZodNumber;
115
87
  delay: z.ZodOptional<z.ZodNumber>;
116
- easing: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
117
- iterations: z.ZodOptional<z.ZodUnion<[z.ZodNumber, z.ZodLiteral<"infinite">]>>;
118
- direction: z.ZodOptional<z.ZodNativeEnum<{
88
+ easing: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber, z.ZodNumber], null>]>>;
89
+ iterations: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodLiteral<"infinite">]>>;
90
+ direction: z.ZodOptional<z.ZodEnum<{
119
91
  readonly Normal: "normal";
120
92
  readonly Reverse: "reverse";
121
93
  readonly Alternate: "alternate";
122
94
  readonly AlternateReverse: "alternate-reverse";
123
95
  }>>;
124
- fill: z.ZodOptional<z.ZodNativeEnum<{
96
+ fill: z.ZodOptional<z.ZodEnum<{
125
97
  readonly None: "none";
126
98
  readonly Forwards: "forwards";
127
99
  readonly Backwards: "backwards";
128
100
  readonly Both: "both";
129
101
  }>>;
130
- trigger: z.ZodOptional<z.ZodUnion<[z.ZodNativeEnum<{
102
+ trigger: z.ZodOptional<z.ZodUnion<readonly [z.ZodEnum<{
131
103
  readonly Load: "load";
132
104
  readonly Visible: "visible";
133
105
  readonly Manual: "manual";
134
106
  }>, z.ZodObject<{
135
107
  onEvent: z.ZodString;
136
- }, "strip", z.ZodTypeAny, {
137
- onEvent: string;
138
- }, {
139
- onEvent: string;
140
- }>]>>;
141
- origin: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>>;
142
- }, "strip", z.ZodTypeAny, {
143
- property: string;
144
- keyframes: {
145
- value: import('./json').JsonValue;
146
- at: number;
147
- easing?: string | [number, number, number, number] | undefined;
148
- }[];
149
- duration: number;
150
- fill?: "none" | "forwards" | "backwards" | "both" | undefined;
151
- origin?: string | [number, number] | undefined;
152
- direction?: "reverse" | "normal" | "alternate" | "alternate-reverse" | undefined;
153
- easing?: string | [number, number, number, number] | undefined;
154
- delay?: number | undefined;
155
- iterations?: number | "infinite" | undefined;
156
- trigger?: "load" | "visible" | "manual" | {
157
- onEvent: string;
158
- } | undefined;
159
- }, {
160
- property: string;
161
- keyframes: {
162
- value: import('./json').JsonValue;
163
- at: number;
164
- easing?: string | [number, number, number, number] | undefined;
165
- }[];
166
- duration: number;
167
- fill?: "none" | "forwards" | "backwards" | "both" | undefined;
168
- origin?: string | [number, number] | undefined;
169
- direction?: "reverse" | "normal" | "alternate" | "alternate-reverse" | undefined;
170
- easing?: string | [number, number, number, number] | undefined;
171
- delay?: number | undefined;
172
- iterations?: number | "infinite" | undefined;
173
- trigger?: "load" | "visible" | "manual" | {
174
- onEvent: string;
175
- } | undefined;
176
- }>, {
177
- property: string;
178
- keyframes: {
179
- value: import('./json').JsonValue;
180
- at: number;
181
- easing?: string | [number, number, number, number] | undefined;
182
- }[];
183
- duration: number;
184
- fill?: "none" | "forwards" | "backwards" | "both" | undefined;
185
- origin?: string | [number, number] | undefined;
186
- direction?: "reverse" | "normal" | "alternate" | "alternate-reverse" | undefined;
187
- easing?: string | [number, number, number, number] | undefined;
188
- delay?: number | undefined;
189
- iterations?: number | "infinite" | undefined;
190
- trigger?: "load" | "visible" | "manual" | {
191
- onEvent: string;
192
- } | undefined;
193
- }, {
194
- property: string;
195
- keyframes: {
196
- value: import('./json').JsonValue;
197
- at: number;
198
- easing?: string | [number, number, number, number] | undefined;
199
- }[];
200
- duration: number;
201
- fill?: "none" | "forwards" | "backwards" | "both" | undefined;
202
- origin?: string | [number, number] | undefined;
203
- direction?: "reverse" | "normal" | "alternate" | "alternate-reverse" | undefined;
204
- easing?: string | [number, number, number, number] | undefined;
205
- delay?: number | undefined;
206
- iterations?: number | "infinite" | undefined;
207
- trigger?: "load" | "visible" | "manual" | {
208
- onEvent: string;
209
- } | undefined;
210
- }>;
108
+ }, z.core.$strip>]>>;
109
+ origin: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>]>>;
110
+ }, z.core.$strip>;
211
111
  /** 时间轴动画 track(renderer 无关、JSON 可序列化、无函数;keyframe 给绝对展示值、末帧 = 元素 base 终态) */
212
112
  export type IRAnimationTrack = z.infer<typeof AnimationTrackSchema>;
213
113
  /** 单个动画关键帧 */
@@ -1 +1 @@
1
- {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../src/ir/animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAapB,CAAC;AACX,mBAAmB;AACnB,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACvE,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC9D,kFAAkF;AAClF,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5E,8DAA8D;AAC9D,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AACX,cAAc;AACd,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,eAAe,CAAC,CAAC;AAEnE,mDAAmD;AACnD,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AACX,cAAc;AACd,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzE,iDAAiD;AACjD,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AACX,cAAc;AACd,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,aAAa,CAAC,CAAC;AAE/D,eAAO,MAAM,YAAY,mGAOtB,CAAC;AAEJ,eAAO,MAAM,cAAc;;;;;;;;;;;;EAgBgF,CAAC;AAE5G,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB;;;;CAAkE,CAAC;AAChG,oCAAoC;AACpC,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAErE,eAAO,MAAM,aAAa;;;;;;;;;;IAYvB,CAAC;AAEJ,eAAO,MAAM,YAAY,yEActB,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAmF9B,CAAC;AAEJ,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,cAAc;AACd,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC7D,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
1
+ {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../../src/ir/animation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;CAapB,CAAC;AACX,mBAAmB;AACnB,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC,OAAO,iBAAiB,CAAC,CAAC;AACvE,MAAM,MAAM,wBAAwB,GAAG,sBAAsB,CAAC;AAC9D,kFAAkF;AAClF,MAAM,MAAM,oBAAoB,GAAG,wBAAwB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAE5E,8DAA8D;AAC9D,eAAO,MAAM,eAAe;;;;;;CAMlB,CAAC;AACX,cAAc;AACd,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,OAAO,eAAe,CAAC,CAAC;AAEnE,mDAAmD;AACnD,eAAO,MAAM,kBAAkB;;;;;CAKrB,CAAC;AACX,cAAc;AACd,MAAM,MAAM,uBAAuB,GAAG,OAAO,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEzE,iDAAiD;AACjD,eAAO,MAAM,aAAa;;;;;CAKhB,CAAC;AACX,cAAc;AACd,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,OAAO,aAAa,CAAC,CAAC;AAE/D,eAAO,MAAM,YAAY,4GAOtB,CAAC;AAEJ,eAAO,MAAM,cAAc;;;;iBAgBgF,CAAC;AAE5G,0EAA0E;AAC1E,eAAO,MAAM,gBAAgB;;;;CAAkE,CAAC;AAChG,oCAAoC;AACpC,MAAM,MAAM,qBAAqB,GAAG,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAErE,eAAO,MAAM,aAAa;;;;;;mBAYvB,CAAC;AAEJ,eAAO,MAAM,YAAY,kFActB,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAmF9B,CAAC;AAEJ,6EAA6E;AAC7E,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,cAAc;AACd,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACxD,gFAAgF;AAChF,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAC7D,qDAAqD;AACrD,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC"}
@@ -61,7 +61,7 @@ var AnimationTrigger = {
61
61
  Visible: "visible",
62
62
  Manual: "manual"
63
63
  };
64
- var TriggerSchema = z.union([z.nativeEnum(AnimationTrigger), z.object({ onEvent: z.string().min(1).describe("Event name (e.g. \"click\") the runtime binds to start playback; the handler function never enters the IR.") })]).describe("When playback starts: \"load\" (on render, SSR-friendly) / \"visible\" (runtime IntersectionObserver) / \"manual\" (runtime API) / { onEvent } (bridge to hydration; only the event name is stored, never a callback). Defaults to \"load\".");
64
+ var TriggerSchema = z.union([z.enum(AnimationTrigger), z.object({ onEvent: z.string().min(1).describe("Event name (e.g. \"click\") the runtime binds to start playback; the handler function never enters the IR.") })]).describe("When playback starts: \"load\" (on render, SSR-friendly) / \"visible\" (runtime IntersectionObserver) / \"manual\" (runtime API) / { onEvent } (bridge to hydration; only the event name is stored, never a callback). Defaults to \"load\".");
65
65
  var OriginSchema = z.union([z.string().min(1).describe("Named transform pivot reusing the node anchor vocabulary (center / north / south / east / west / north-east / ... / south-west), resolved against the element boundary by the renderer."), z.tuple([z.number().finite(), z.number().finite()]).describe("Explicit pivot in the element local coordinate space [x, y].")]).describe("Transform pivot for scale / scaleX / scaleY / rotate channels: a named anchor or an explicit local-space point. Ignored by non-transform channels. Defaults to the element geometric center.");
66
66
  var AnimationTrackSchema = z.object({
67
67
  property: z.string().min(1).describe("Renderer-agnostic animated channel. Built-in: opacity / fill / stroke / strokeWidth / translateX / translateY / rotate / scale (uniform) / scaleX / scaleY (non-uniform) / pathDraw (0..1 reveal) / viewBox (scene-root camera only). Any other string is a custom channel that passes through to a renderer-registered interpolator. `viewBox` is valid only at the scene root (enforced at compile)."),
@@ -70,8 +70,8 @@ var AnimationTrackSchema = z.object({
70
70
  delay: z.number().finite().nonnegative().optional().describe("Delay before the first iteration, in milliseconds (>= 0). Group-level stagger is compiled by sugar into per-track delays."),
71
71
  easing: EasingSchema.optional().describe("Track-level easing applied to each segment that lacks its own keyframe easing. Defaults to linear."),
72
72
  iterations: z.union([z.number().finite().positive(), z.literal("infinite")]).optional().describe("Total play count (WAAPI iterations): a positive number (may be fractional) or \"infinite\". Omitted = 1 = play once."),
73
- direction: z.nativeEnum(AnimationDirection).optional().describe("Per-iteration playback direction (WAAPI / CSS animation-direction). Defaults to \"normal\"."),
74
- fill: z.nativeEnum(AnimationFill).optional().describe("Value held outside the active interval (WAAPI / CSS fill-mode). Defaults to \"forwards\" so the element settles at its base (end) state, matching the static-settled invariant."),
73
+ direction: z.enum(AnimationDirection).optional().describe("Per-iteration playback direction (WAAPI / CSS animation-direction). Defaults to \"normal\"."),
74
+ fill: z.enum(AnimationFill).optional().describe("Value held outside the active interval (WAAPI / CSS fill-mode). Defaults to \"forwards\" so the element settles at its base (end) state, matching the static-settled invariant."),
75
75
  trigger: TriggerSchema.optional().describe("Playback trigger; defaults to \"load\"."),
76
76
  origin: OriginSchema.optional().describe("Transform pivot for scale / scaleX / scaleY / rotate channels; ignored by other channels. Defaults to the element geometric center.")
77
77
  }).superRefine((track, ctx) => {
@@ -95,19 +95,19 @@ var AnimationTrackSchema = z.object({
95
95
  ];
96
96
  if (track.property === AnimationProperty.ViewBox) {
97
97
  if (!Array.isArray(value) || value.length !== 4) ctx.addIssue({
98
- code: z.ZodIssueCode.custom,
98
+ code: "custom",
99
99
  path,
100
100
  message: "viewBox keyframe value must be a 4-number array [x, y, w, h]"
101
101
  });
102
102
  } else if (track.property === AnimationProperty.Fill || track.property === AnimationProperty.Stroke) {
103
103
  if (typeof value !== "string") ctx.addIssue({
104
- code: z.ZodIssueCode.custom,
104
+ code: "custom",
105
105
  path,
106
106
  message: `${track.property} keyframe value must be a color string`
107
107
  });
108
108
  } else if (numeric.has(track.property)) {
109
109
  if (typeof value !== "number") ctx.addIssue({
110
- code: z.ZodIssueCode.custom,
110
+ code: "custom",
111
111
  path,
112
112
  message: `${track.property} keyframe value must be a number`
113
113
  });
@@ -1,16 +1,10 @@
1
1
  import { z } from 'zod';
2
2
  import { ValueOf } from '../types';
3
3
  /** 连接面引用:保留字 'shape'/'circle' 或借用已注册 shape(裸名 / {type, params}) */
4
- export declare const BoundarySchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
4
+ export declare const BoundarySchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
5
5
  type: z.ZodString;
6
- params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import('./json').JsonValue, z.ZodTypeDef, import('./json').JsonValue>>>;
7
- }, "strip", z.ZodTypeAny, {
8
- type: string;
9
- params?: Record<string, import('./json').JsonValue> | undefined;
10
- }, {
11
- type: string;
12
- params?: Record<string, import('./json').JsonValue> | undefined;
13
- }>]>;
6
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import('./json').JsonValue, unknown, z.core.$ZodTypeInternals<import('./json').JsonValue, unknown>>>>;
7
+ }, z.core.$strip>]>;
14
8
  /** 连接面引用类型('shape' | 'circle' | 其它 shape 名 | {type, params}) */
15
9
  export type IRBoundary = z.infer<typeof BoundarySchema>;
16
10
  /** 连接面保留关键字:非「借用已注册 shape」的两个内置语义(编译期消解) */
@@ -1 +1 @@
1
- {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../../src/ir/boundary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC,mEAAmE;AACnE,eAAO,MAAM,cAAc;;;;;;;;;IAIxB,CAAC;AAEJ,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,4CAA4C;AAC5C,eAAO,MAAM,QAAQ;IACnB,yBAAyB;;IAEzB,sDAAsD;;CAE9C,CAAC;AAEX,uDAAuD;AACvD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC"}
1
+ {"version":3,"file":"boundary.d.ts","sourceRoot":"","sources":["../../../src/ir/boundary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAGxC,mEAAmE;AACnE,eAAO,MAAM,cAAc;;;mBAIxB,CAAC;AAEJ,gEAAgE;AAChE,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,4CAA4C;AAC5C,eAAO,MAAM,QAAQ;IACnB,yBAAyB;;IAEzB,sDAAsD;;CAE9C,CAAC;AAEX,uDAAuD;AACvD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,QAAQ,CAAC,CAAC"}