@retikz/core 0.2.0-alpha.7 → 0.2.0-alpha.9

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 (217) hide show
  1. package/dist/es/arrows/index.d.ts +13 -0
  2. package/dist/es/arrows/index.d.ts.map +1 -0
  3. package/dist/es/arrows/index.js +118 -0
  4. package/dist/es/arrows/types.d.ts +43 -0
  5. package/dist/es/arrows/types.d.ts.map +1 -0
  6. package/dist/es/compile/clip.d.ts +17 -0
  7. package/dist/es/compile/clip.d.ts.map +1 -0
  8. package/dist/es/compile/clip.js +84 -0
  9. package/dist/es/compile/compile.d.ts +26 -1
  10. package/dist/es/compile/compile.d.ts.map +1 -1
  11. package/dist/es/compile/compile.js +60 -7
  12. package/dist/es/compile/marker-prim.d.ts +22 -0
  13. package/dist/es/compile/marker-prim.d.ts.map +1 -0
  14. package/dist/es/compile/marker-prim.js +63 -0
  15. package/dist/es/compile/node.d.ts +2 -1
  16. package/dist/es/compile/node.d.ts.map +1 -1
  17. package/dist/es/compile/node.js +3 -3
  18. package/dist/es/compile/paint.d.ts +6 -1
  19. package/dist/es/compile/paint.d.ts.map +1 -1
  20. package/dist/es/compile/paint.js +60 -3
  21. package/dist/es/compile/path/anchor.d.ts.map +1 -1
  22. package/dist/es/compile/path/anchor.js +12 -0
  23. package/dist/es/compile/path/index.d.ts +15 -0
  24. package/dist/es/compile/path/index.d.ts.map +1 -1
  25. package/dist/es/compile/path/index.js +268 -12
  26. package/dist/es/compile/path/relative.d.ts.map +1 -1
  27. package/dist/es/compile/path/relative.js +8 -0
  28. package/dist/es/compile/path/shrink.d.ts +19 -6
  29. package/dist/es/compile/path/shrink.d.ts.map +1 -1
  30. package/dist/es/compile/path/shrink.js +147 -25
  31. package/dist/es/compile/position.d.ts +8 -2
  32. package/dist/es/compile/position.d.ts.map +1 -1
  33. package/dist/es/compile/position.js +7 -1
  34. package/dist/es/geometry/bend.d.ts +7 -0
  35. package/dist/es/geometry/bend.d.ts.map +1 -1
  36. package/dist/es/geometry/bend.js +26 -1
  37. package/dist/es/index.d.ts +16 -4
  38. package/dist/es/index.d.ts.map +1 -1
  39. package/dist/es/index.js +13 -7
  40. package/dist/es/ir/clip.d.ts +72 -0
  41. package/dist/es/ir/clip.d.ts.map +1 -0
  42. package/dist/es/ir/clip.js +37 -0
  43. package/dist/es/ir/coordinate.d.ts +3 -3
  44. package/dist/es/ir/coordinate.d.ts.map +1 -1
  45. package/dist/es/ir/coordinate.js +4 -2
  46. package/dist/es/ir/index.d.ts +2 -0
  47. package/dist/es/ir/index.d.ts.map +1 -1
  48. package/dist/es/ir/json.d.ts +22 -0
  49. package/dist/es/ir/json.d.ts.map +1 -0
  50. package/dist/es/ir/json.js +25 -0
  51. package/dist/es/ir/node.d.ts +10 -10
  52. package/dist/es/ir/node.d.ts.map +1 -1
  53. package/dist/es/ir/node.js +4 -2
  54. package/dist/es/ir/paint.d.ts +25 -3
  55. package/dist/es/ir/paint.d.ts.map +1 -1
  56. package/dist/es/ir/paint.js +12 -6
  57. package/dist/es/ir/path/arrow.d.ts +40 -60
  58. package/dist/es/ir/path/arrow.d.ts.map +1 -1
  59. package/dist/es/ir/path/arrow.js +5 -5
  60. package/dist/es/ir/path/path.d.ts +553 -164
  61. package/dist/es/ir/path/path.d.ts.map +1 -1
  62. package/dist/es/ir/path/path.js +21 -1
  63. package/dist/es/ir/path/step.d.ts +483 -128
  64. package/dist/es/ir/path/step.d.ts.map +1 -1
  65. package/dist/es/ir/path/step.js +18 -5
  66. package/dist/es/ir/path/target.d.ts +1 -1
  67. package/dist/es/ir/path/target.d.ts.map +1 -1
  68. package/dist/es/ir/path/target.js +4 -2
  69. package/dist/es/ir/position/between-position.d.ts +26 -0
  70. package/dist/es/ir/position/between-position.d.ts.map +1 -0
  71. package/dist/es/ir/position/between-position.js +21 -0
  72. package/dist/es/ir/position/index.d.ts +1 -0
  73. package/dist/es/ir/position/index.d.ts.map +1 -1
  74. package/dist/es/ir/scene.d.ts +51 -0
  75. package/dist/es/ir/scene.d.ts.map +1 -1
  76. package/dist/es/ir/scene.js +14 -2
  77. package/dist/es/ir/scope.d.ts +999 -380
  78. package/dist/es/ir/scope.d.ts.map +1 -1
  79. package/dist/es/ir/scope.js +2 -0
  80. package/dist/es/pathGenerators/define.d.ts +16 -0
  81. package/dist/es/pathGenerators/define.d.ts.map +1 -0
  82. package/dist/es/pathGenerators/define.js +23 -0
  83. package/dist/es/pathGenerators/index.d.ts +9 -0
  84. package/dist/es/pathGenerators/index.d.ts.map +1 -0
  85. package/dist/es/pathGenerators/types.d.ts +45 -0
  86. package/dist/es/pathGenerators/types.d.ts.map +1 -0
  87. package/dist/es/patterns/index.d.ts +10 -0
  88. package/dist/es/patterns/index.d.ts.map +1 -0
  89. package/dist/es/patterns/index.js +83 -0
  90. package/dist/es/patterns/types.d.ts +38 -0
  91. package/dist/es/patterns/types.d.ts.map +1 -0
  92. package/dist/es/primitive/clip.d.ts +18 -0
  93. package/dist/es/primitive/clip.d.ts.map +1 -0
  94. package/dist/es/primitive/group.d.ts +6 -0
  95. package/dist/es/primitive/group.d.ts.map +1 -1
  96. package/dist/es/primitive/index.d.ts +2 -0
  97. package/dist/es/primitive/index.d.ts.map +1 -1
  98. package/dist/es/primitive/marker.d.ts +160 -0
  99. package/dist/es/primitive/marker.d.ts.map +1 -0
  100. package/dist/es/primitive/paint.d.ts +32 -4
  101. package/dist/es/primitive/paint.d.ts.map +1 -1
  102. package/dist/es/primitive/path.d.ts +22 -18
  103. package/dist/es/primitive/path.d.ts.map +1 -1
  104. package/dist/es/primitive/scene.d.ts +2 -1
  105. package/dist/es/primitive/scene.d.ts.map +1 -1
  106. package/dist/lib/arrows/index.cjs +118 -0
  107. package/dist/lib/arrows/index.d.ts +13 -0
  108. package/dist/lib/arrows/index.d.ts.map +1 -0
  109. package/dist/lib/arrows/types.d.ts +43 -0
  110. package/dist/lib/arrows/types.d.ts.map +1 -0
  111. package/dist/lib/compile/clip.cjs +84 -0
  112. package/dist/lib/compile/clip.d.ts +17 -0
  113. package/dist/lib/compile/clip.d.ts.map +1 -0
  114. package/dist/lib/compile/compile.cjs +62 -9
  115. package/dist/lib/compile/compile.d.ts +26 -1
  116. package/dist/lib/compile/compile.d.ts.map +1 -1
  117. package/dist/lib/compile/marker-prim.cjs +63 -0
  118. package/dist/lib/compile/marker-prim.d.ts +22 -0
  119. package/dist/lib/compile/marker-prim.d.ts.map +1 -0
  120. package/dist/lib/compile/node.cjs +3 -3
  121. package/dist/lib/compile/node.d.ts +2 -1
  122. package/dist/lib/compile/node.d.ts.map +1 -1
  123. package/dist/lib/compile/paint.cjs +60 -3
  124. package/dist/lib/compile/paint.d.ts +6 -1
  125. package/dist/lib/compile/paint.d.ts.map +1 -1
  126. package/dist/lib/compile/path/anchor.cjs +12 -0
  127. package/dist/lib/compile/path/anchor.d.ts.map +1 -1
  128. package/dist/lib/compile/path/index.cjs +266 -10
  129. package/dist/lib/compile/path/index.d.ts +15 -0
  130. package/dist/lib/compile/path/index.d.ts.map +1 -1
  131. package/dist/lib/compile/path/relative.cjs +8 -0
  132. package/dist/lib/compile/path/relative.d.ts.map +1 -1
  133. package/dist/lib/compile/path/shrink.cjs +147 -25
  134. package/dist/lib/compile/path/shrink.d.ts +19 -6
  135. package/dist/lib/compile/path/shrink.d.ts.map +1 -1
  136. package/dist/lib/compile/position.cjs +7 -1
  137. package/dist/lib/compile/position.d.ts +8 -2
  138. package/dist/lib/compile/position.d.ts.map +1 -1
  139. package/dist/lib/geometry/bend.cjs +26 -0
  140. package/dist/lib/geometry/bend.d.ts +7 -0
  141. package/dist/lib/geometry/bend.d.ts.map +1 -1
  142. package/dist/lib/index.cjs +20 -3
  143. package/dist/lib/index.d.ts +16 -4
  144. package/dist/lib/index.d.ts.map +1 -1
  145. package/dist/lib/ir/clip.cjs +37 -0
  146. package/dist/lib/ir/clip.d.ts +72 -0
  147. package/dist/lib/ir/clip.d.ts.map +1 -0
  148. package/dist/lib/ir/coordinate.cjs +4 -2
  149. package/dist/lib/ir/coordinate.d.ts +3 -3
  150. package/dist/lib/ir/coordinate.d.ts.map +1 -1
  151. package/dist/lib/ir/index.d.ts +2 -0
  152. package/dist/lib/ir/index.d.ts.map +1 -1
  153. package/dist/lib/ir/json.cjs +26 -0
  154. package/dist/lib/ir/json.d.ts +22 -0
  155. package/dist/lib/ir/json.d.ts.map +1 -0
  156. package/dist/lib/ir/node.cjs +4 -2
  157. package/dist/lib/ir/node.d.ts +10 -10
  158. package/dist/lib/ir/node.d.ts.map +1 -1
  159. package/dist/lib/ir/paint.cjs +12 -5
  160. package/dist/lib/ir/paint.d.ts +25 -3
  161. package/dist/lib/ir/paint.d.ts.map +1 -1
  162. package/dist/lib/ir/path/arrow.cjs +5 -5
  163. package/dist/lib/ir/path/arrow.d.ts +40 -60
  164. package/dist/lib/ir/path/arrow.d.ts.map +1 -1
  165. package/dist/lib/ir/path/path.cjs +20 -0
  166. package/dist/lib/ir/path/path.d.ts +553 -164
  167. package/dist/lib/ir/path/path.d.ts.map +1 -1
  168. package/dist/lib/ir/path/step.cjs +18 -4
  169. package/dist/lib/ir/path/step.d.ts +483 -128
  170. package/dist/lib/ir/path/step.d.ts.map +1 -1
  171. package/dist/lib/ir/path/target.cjs +4 -2
  172. package/dist/lib/ir/path/target.d.ts +1 -1
  173. package/dist/lib/ir/path/target.d.ts.map +1 -1
  174. package/dist/lib/ir/position/between-position.cjs +22 -0
  175. package/dist/lib/ir/position/between-position.d.ts +26 -0
  176. package/dist/lib/ir/position/between-position.d.ts.map +1 -0
  177. package/dist/lib/ir/position/index.d.ts +1 -0
  178. package/dist/lib/ir/position/index.d.ts.map +1 -1
  179. package/dist/lib/ir/scene.cjs +14 -1
  180. package/dist/lib/ir/scene.d.ts +51 -0
  181. package/dist/lib/ir/scene.d.ts.map +1 -1
  182. package/dist/lib/ir/scope.cjs +2 -0
  183. package/dist/lib/ir/scope.d.ts +999 -380
  184. package/dist/lib/ir/scope.d.ts.map +1 -1
  185. package/dist/lib/pathGenerators/define.cjs +23 -0
  186. package/dist/lib/pathGenerators/define.d.ts +16 -0
  187. package/dist/lib/pathGenerators/define.d.ts.map +1 -0
  188. package/dist/lib/pathGenerators/index.d.ts +9 -0
  189. package/dist/lib/pathGenerators/index.d.ts.map +1 -0
  190. package/dist/lib/pathGenerators/types.d.ts +45 -0
  191. package/dist/lib/pathGenerators/types.d.ts.map +1 -0
  192. package/dist/lib/patterns/index.cjs +83 -0
  193. package/dist/lib/patterns/index.d.ts +10 -0
  194. package/dist/lib/patterns/index.d.ts.map +1 -0
  195. package/dist/lib/patterns/types.d.ts +38 -0
  196. package/dist/lib/patterns/types.d.ts.map +1 -0
  197. package/dist/lib/primitive/clip.d.ts +18 -0
  198. package/dist/lib/primitive/clip.d.ts.map +1 -0
  199. package/dist/lib/primitive/group.d.ts +6 -0
  200. package/dist/lib/primitive/group.d.ts.map +1 -1
  201. package/dist/lib/primitive/index.d.ts +2 -0
  202. package/dist/lib/primitive/index.d.ts.map +1 -1
  203. package/dist/lib/primitive/marker.d.ts +160 -0
  204. package/dist/lib/primitive/marker.d.ts.map +1 -0
  205. package/dist/lib/primitive/paint.d.ts +32 -4
  206. package/dist/lib/primitive/paint.d.ts.map +1 -1
  207. package/dist/lib/primitive/path.d.ts +22 -18
  208. package/dist/lib/primitive/path.d.ts.map +1 -1
  209. package/dist/lib/primitive/scene.d.ts +2 -1
  210. package/dist/lib/primitive/scene.d.ts.map +1 -1
  211. package/package.json +1 -1
  212. package/dist/es/compile/path/arrow-geometry.d.ts +0 -22
  213. package/dist/es/compile/path/arrow-geometry.d.ts.map +0 -1
  214. package/dist/es/compile/path/arrow-geometry.js +0 -40
  215. package/dist/lib/compile/path/arrow-geometry.cjs +0 -41
  216. package/dist/lib/compile/path/arrow-geometry.d.ts +0 -22
  217. package/dist/lib/compile/path/arrow-geometry.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../../src/ir/path/step.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgDzB,CAAC;AAEJ,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQyC,CAAC;AAErE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS4C,CAAC;AAExE,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoBxB,CAAC;AAEJ,eAAO,MAAM,eAAe;;;;;;;;;EAWzB,CAAC;AAEJ;;;GAGG;AACH,eAAO,MAAM,kBAAkB,8CAE9B,CAAC;AAEF,uBAAuB;AACvB,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEhE,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYoD,CAAC;AAEjF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAezB,CAAC;AAEJ,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkByE,CAAC;AAErG,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgCyI,CAAC;AAEpK,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwBoG,CAAC;AAEtI,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA4BgH,CAAC;AAEnJ,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcuF,CAAC;AAExH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAc+C,CAAC;AAEvE,yBAAyB;AACzB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,0BAA0B;AAC1B,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,6BAA6B;AAC7B,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,8BAA8B;AAC9B,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,gCAAgC;AAChC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,kCAAkC;AAClC,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACtE,sCAAsC;AACtC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAElE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../../../src/ir/path/step.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAe+C,CAAC;AAEvE,yBAAyB;AACzB,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,0BAA0B;AAC1B,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,6CAA6C;AAC7C,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,qCAAqC;AACrC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,6BAA6B;AAC7B,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,4BAA4B;AAC5B,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,8BAA8B;AAC9B,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAExD,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACtD,gCAAgC;AAChC,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACpE,kCAAkC;AAClC,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACtE,sCAAsC;AACtC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAClE,6EAA6E;AAC7E,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAElE;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import { PositionSchema } from "../position/position.js";
2
- import { FontSchema } from "../font.js";
3
2
  import { TargetSchema } from "./target.js";
3
+ import { FontSchema } from "../font.js";
4
+ import { JsonObjectSchema } from "../json.js";
4
5
  import { z } from "zod";
5
6
  //#region src/ir/path/step.ts
6
7
  /**
@@ -75,8 +76,11 @@ var BendStepSchema = z.object({
75
76
  type: z.literal("step").describe("Discriminator marking this as a path step node"),
76
77
  kind: z.literal("bend").describe("Arc-like bend from cursor to target by direction + angle (TikZ `to[bend left=N]` / `to[bend right=N]`); compiles to a cubic Bezier approximation"),
77
78
  to: TargetSchema.describe("Destination point of the bend"),
78
- bendDirection: z.enum(["left", "right"]).describe("Bend side relative to from→to direction (visual left vs right of the chord)"),
79
- bendAngle: z.number().optional().describe("Bend angle in degrees; default 30 (matches TikZ `bend left` without explicit angle)"),
79
+ bendDirection: z.enum(["left", "right"]).optional().describe("Bend side relative to from→to direction (visual left vs right of the chord). Optional: provide bendDirection/bendAngle for a symmetric bend, or outAngle/inAngle for an asymmetric curve / self-loop (out/in takes precedence when both are given)."),
80
+ bendAngle: z.number().finite().optional().describe("Bend angle in degrees; default 30 (matches TikZ `bend left` without explicit angle)"),
81
+ outAngle: z.number().finite().optional().describe("Out angle in degrees at the start point (TikZ `out=`). Together with inAngle, compiles to a cubic Bezier whose start control point lies along this direction. When out/in angles are given they take precedence over bendDirection / bendAngle."),
82
+ inAngle: z.number().finite().optional().describe("In angle in degrees at the end point (TikZ `in=`). Together with outAngle, compiles to a cubic Bezier whose end control point lies along this direction."),
83
+ looseness: z.number().finite().positive().optional().describe("Curve looseness factor controlling control-point distance from the endpoints (TikZ `looseness=`); default ~1. Larger values push the control points further out for a slacker curve. Also scales the default self-loop size when from equals to."),
80
84
  label: StepLabelSchema.optional().describe("Edge label attached to this bend segment")
81
85
  }).describe("Bend action: shorthand for an arc-like cubic; control points computed at compile time");
82
86
  var ArcStepSchema = z.object({
@@ -124,6 +128,14 @@ var RectangleStepSchema = z.object({
124
128
  to: TargetSchema.describe("The opposite corner; order is irrelevant (compile normalizes to min/max)"),
125
129
  roundedCorners: z.number().nonnegative().optional().describe("Single corner radius applied to all four corners; omitted = sharp corners. Clamped to half the smaller side at compile time.")
126
130
  }).describe("Rectangle action: closed axis-aligned rectangle (optionally rounded) drawn between two opposite corners.");
131
+ var GeneratorStepSchema = z.object({
132
+ type: z.literal("step").describe("Discriminator marking this as a path step node"),
133
+ kind: z.literal("generator").describe("Delegate this segment to a registered path generator looked up by `name` in CompileOptions.pathGenerators; the generator turns `from` / `to` / `params` into low-level path commands at compile time"),
134
+ name: z.string().min(1).describe("Registered generator name; resolved against CompileOptions.pathGenerators at compile time. An unregistered name throws at compile time (the error lists the available names). The IR only stores the string; the generator function itself is injected at runtime and never enters the IR."),
135
+ to: TargetSchema.optional().describe("Optional destination point passed to the generator as the segment end; omit for pure parametric curves that need no end target (e.g. a closed loop or a fixed-extent wave)."),
136
+ params: JsonObjectSchema.describe("JSON-only parameter object handed to the generator. Must be a plain JSON object (validated by JsonObjectSchema); the generator validates its own shape via paramsSchema. Top-level keys listed in the generator targetParams are resolved from node targets to world coordinates before the generator runs."),
137
+ label: StepLabelSchema.optional().describe("Edge label attached to the generated segment; positioned along the produced commands.")
138
+ }).describe("Generator action: produce a sub-path by invoking a registered path generator (parabola / sin / etc.); core ships no built-in curve generators.");
127
139
  var StepSchema = z.discriminatedUnion("kind", [
128
140
  MoveStepSchema,
129
141
  LineStepSchema,
@@ -135,7 +147,8 @@ var StepSchema = z.discriminatedUnion("kind", [
135
147
  ArcStepSchema,
136
148
  CirclePathStepSchema,
137
149
  EllipsePathStepSchema,
138
- RectangleStepSchema
150
+ RectangleStepSchema,
151
+ GeneratorStepSchema
139
152
  ]).describe("A single path action; the discriminator field is `kind`");
140
153
  //#endregion
141
- export { ArcStepSchema, BendStepSchema, CirclePathStepSchema, ControlPointSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, EllipsePathStepSchema, FoldStepSchema, LineStepSchema, MoveStepSchema, RectangleStepSchema, StepLabelSchema, StepSchema };
154
+ export { ArcStepSchema, BendStepSchema, CirclePathStepSchema, ControlPointSchema, CubicStepSchema, CurveStepSchema, CycleStepSchema, EllipsePathStepSchema, FoldStepSchema, GeneratorStepSchema, LineStepSchema, MoveStepSchema, RectangleStepSchema, StepLabelSchema, StepSchema };
@@ -104,7 +104,7 @@ export declare const TargetSchema: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNum
104
104
  }, {
105
105
  of: string | [number, number] | import('..').PolarPosition;
106
106
  offset: [number, number];
107
- }>]>;
107
+ }>, z.ZodLazy<z.ZodType<import('..').IRBetweenPosition, z.ZodTypeDef, import('..').IRBetweenPosition>>]>;
108
108
  /** 路径端点:直接坐标 [x, y]、极坐标、节点 id 字符串、相对偏移对象 */
109
109
  export type IRTarget = z.infer<typeof TargetSchema>;
110
110
  /** 相对前一 step 终点的偏移;不更新 prevEnd(TikZ `(+x, +y)`) */
@@ -1 +1 @@
1
- {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../../../src/ir/path/target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMpE,eAAO,MAAM,eAAe;;;;;;;;;IAiBsF,CAAC;AAEnH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASmE,CAAC;AAEjG,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE5D,eAAO,MAAM,oBAAoB;;;;;;EAQ9B,CAAC;AAEJ,eAAO,MAAM,8BAA8B;;;;;;EAQxC,CAAC;AAEJ,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAWtB,CAAC;AAEJ,4CAA4C;AAC5C,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEpD,mDAAmD;AACnD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEpE,2CAA2C;AAC3C,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
1
+ {"version":3,"file":"target.d.ts","sourceRoot":"","sources":["../../../../src/ir/path/target.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMpE,eAAO,MAAM,eAAe;;;;;;;;;IAiBsF,CAAC;AAEnH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;EASmE,CAAC;AAEjG,uCAAuC;AACvC,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,oDAAoD;AACpD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE5D,eAAO,MAAM,oBAAoB;;;;;;EAQ9B,CAAC;AAEJ,eAAO,MAAM,8BAA8B;;;;;;EAQxC,CAAC;AAEJ,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wGAatB,CAAC;AAEJ,4CAA4C;AAC5C,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAEpD,mDAAmD;AACnD,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEpE,2CAA2C;AAC3C,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,8BAA8B,CAAC,CAAC"}
@@ -2,6 +2,7 @@ import { PositionSchema } from "../position/position.js";
2
2
  import { PolarPositionSchema } from "../position/polar-position.js";
3
3
  import { OffsetPositionSchema } from "../position/offset-position.js";
4
4
  import { RECT_ANCHORS } from "../../geometry/rect.js";
5
+ import { BetweenPositionSchema } from "../position/between-position.js";
5
6
  import { z } from "zod";
6
7
  //#region src/ir/path/target.ts
7
8
  /** 9 个命名 anchor(复用 geometry/rect.ts,避免两套常量) */
@@ -32,7 +33,8 @@ var TargetSchema = z.union([
32
33
  NodeTargetSchema,
33
34
  RelativeTargetSchema,
34
35
  RelativeAccumulateTargetSchema,
35
- OffsetPositionSchema
36
- ]).describe("Path endpoint: Cartesian [x, y], polar position, node target object ({ id, anchor?, offset? }), relative offset object ({ relative } / { relativeAccumulate }), or offset position ({ of, offset } mirroring TikZ `calc`) resolved at compile time. Node id string shorthand is React DSL only (parsed to a node target object before reaching the IR).");
36
+ OffsetPositionSchema,
37
+ z.lazy(() => BetweenPositionSchema)
38
+ ]).describe("Path endpoint: Cartesian [x, y], polar position, node target object ({ id, anchor?, offset? }), relative offset object ({ relative } / { relativeAccumulate }), offset position ({ of, offset } mirroring TikZ `calc`), or between position ({ between: [A, B], t } proportional point) — all resolved at compile time. Node id string shorthand is React DSL only (parsed to a node target object before reaching the IR).");
37
39
  //#endregion
38
40
  export { AnchorRefSchema, NodeTargetSchema, RelativeAccumulateTargetSchema, RelativeTargetSchema, TargetSchema };
@@ -0,0 +1,26 @@
1
+ import { z } from 'zod';
2
+ import { PolarPosition } from '../../geometry/polar';
3
+ import { IRNodeTarget } from '../path/target';
4
+ import { IROffsetPosition } from './offset-position';
5
+ import { IRPosition } from './position';
6
+ /**
7
+ * 自包含端点类型(partway between 的端点)
8
+ * @description 笛卡尔 / 极坐标 / 节点引用 / offset 定位 / 嵌套 between;**明确排除** path-relative
9
+ * (`{ relative }` / `{ relativeAccumulate }`——它们需要"上一段终点"游标,在两点之间取点的语境无意义)。
10
+ * 自包含让 between 端点不引 `TargetSchema`,避免 `Position` ↔ `Target` schema 成环。
11
+ */
12
+ export type IRAbsoluteTarget = IRPosition | PolarPosition | IRNodeTarget | IROffsetPosition | IRBetweenPosition;
13
+ /**
14
+ * 两端点之间按比例 t 取点(lerp)
15
+ * @description `between` 两端点为 `AbsoluteTarget`(可嵌套 between);`t ∈ [0,1]`(外插推迟)。
16
+ * compile 把两端点各 resolve 成世界坐标后 `lerpPoint(A, B, t)`。对应 TikZ `($(A)!t!(B)$)`。
17
+ */
18
+ export type IRBetweenPosition = {
19
+ between: [IRAbsoluteTarget, IRAbsoluteTarget];
20
+ t: number;
21
+ };
22
+ /** AbsoluteTarget schema(z.lazy 自引用:between 可嵌套 between;NodeTarget 在 lazy thunk 内引用化解跨文件环) */
23
+ export declare const AbsoluteTargetSchema: z.ZodType<IRAbsoluteTarget>;
24
+ /** BetweenPosition schema:`{ between: [AbsoluteTarget, AbsoluteTarget], t: 0..1 }` */
25
+ export declare const BetweenPositionSchema: z.ZodType<IRBetweenPosition>;
26
+ //# sourceMappingURL=between-position.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"between-position.d.ts","sourceRoot":"","sources":["../../../../src/ir/position/between-position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEnD,OAAO,EAAE,KAAK,gBAAgB,EAAwB,MAAM,mBAAmB,CAAC;AAEhF,OAAO,EAAE,KAAK,UAAU,EAAkB,MAAM,YAAY,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB,UAAU,GACV,aAAa,GACb,YAAY,GACZ,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB;;;;GAIG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC9C,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,EAAE,CAAC,CAAC,OAAO,CAAC,gBAAgB,CAQ5D,CAAC;AAEF,sFAAsF;AACtF,eAAO,MAAM,qBAAqB,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAe9D,CAAC"}
@@ -0,0 +1,21 @@
1
+ import { PositionSchema } from "./position.js";
2
+ import { PolarPositionSchema } from "./polar-position.js";
3
+ import { OffsetPositionSchema } from "./offset-position.js";
4
+ import { NodeTargetSchema } from "../path/target.js";
5
+ import { z } from "zod";
6
+ //#region src/ir/position/between-position.ts
7
+ /** AbsoluteTarget schema(z.lazy 自引用:between 可嵌套 between;NodeTarget 在 lazy thunk 内引用化解跨文件环) */
8
+ var AbsoluteTargetSchema = z.lazy(() => z.union([
9
+ PositionSchema,
10
+ PolarPositionSchema,
11
+ NodeTargetSchema,
12
+ OffsetPositionSchema,
13
+ BetweenPositionSchema
14
+ ]));
15
+ /** BetweenPosition schema:`{ between: [AbsoluteTarget, AbsoluteTarget], t: 0..1 }` */
16
+ var BetweenPositionSchema = z.lazy(() => z.object({
17
+ between: z.tuple([AbsoluteTargetSchema, AbsoluteTargetSchema]).describe("Two endpoints (AbsoluteTarget each; path-relative excluded)"),
18
+ t: z.number().min(0).max(1).describe("Proportion along A→B, 0..1 (0 = A, 1 = B); extrapolation not supported")
19
+ }).describe("Proportional point between two endpoints (TikZ `($(A)!t!(B)$)`); resolved to `lerp(A, B, t)` at compile time. Admitted into Node/Coordinate position and path Step.to."));
20
+ //#endregion
21
+ export { AbsoluteTargetSchema, BetweenPositionSchema };
@@ -2,4 +2,5 @@ export * from './position';
2
2
  export * from './polar-position';
3
3
  export * from './at-position';
4
4
  export * from './offset-position';
5
+ export * from './between-position';
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ir/position/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ir/position/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC"}
@@ -14,18 +14,69 @@ export type IRChild = IRNode | IRPath | IRCoordinate | IRScope;
14
14
  * scope 内嵌 scope 无深度限制(与 polar/offset 嵌套规则一致)
15
15
  */
16
16
  export declare const ChildSchema: z.ZodType<IRChild>;
17
+ /**
18
+ * 显式视框 schema(覆盖自动算的 layout 范围)
19
+ * @description 具名四字段(与 Scene.layout / SVG viewBox 同构);width / height `.positive().finite()`、
20
+ * x / y `.finite()` 守 Scene JSON 可序列化。设值时 compile 直接用它作 Scene.layout、忽略 padding。
21
+ */
22
+ export declare const ViewBoxSchema: z.ZodObject<{
23
+ x: z.ZodNumber;
24
+ y: z.ZodNumber;
25
+ width: z.ZodNumber;
26
+ height: z.ZodNumber;
27
+ }, "strip", z.ZodTypeAny, {
28
+ x: number;
29
+ y: number;
30
+ width: number;
31
+ height: number;
32
+ }, {
33
+ x: number;
34
+ y: number;
35
+ width: number;
36
+ height: number;
37
+ }>;
38
+ /** 显式视框 IR 类型 `{ x, y, width, height }` */
39
+ export type IRViewBox = z.infer<typeof ViewBoxSchema>;
17
40
  export declare const SceneSchema: z.ZodObject<{
18
41
  version: z.ZodLiteral<1>;
19
42
  type: z.ZodLiteral<"scene">;
20
43
  children: z.ZodArray<z.ZodType<IRChild, z.ZodTypeDef, IRChild>, "many">;
44
+ viewBox: z.ZodOptional<z.ZodObject<{
45
+ x: z.ZodNumber;
46
+ y: z.ZodNumber;
47
+ width: z.ZodNumber;
48
+ height: z.ZodNumber;
49
+ }, "strip", z.ZodTypeAny, {
50
+ x: number;
51
+ y: number;
52
+ width: number;
53
+ height: number;
54
+ }, {
55
+ x: number;
56
+ y: number;
57
+ width: number;
58
+ height: number;
59
+ }>>;
21
60
  }, "strip", z.ZodTypeAny, {
22
61
  type: "scene";
23
62
  children: IRChild[];
24
63
  version: 1;
64
+ viewBox?: {
65
+ x: number;
66
+ y: number;
67
+ width: number;
68
+ height: number;
69
+ } | undefined;
25
70
  }, {
26
71
  type: "scene";
27
72
  children: IRChild[];
28
73
  version: 1;
74
+ viewBox?: {
75
+ x: number;
76
+ y: number;
77
+ width: number;
78
+ height: number;
79
+ } | undefined;
29
80
  }>;
30
81
  /** retikz IR 顶层 Scene——可序列化 JSON 形式的绘制描述 */
31
82
  export type IR = z.infer<typeof SceneSchema>;
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/ir/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,KAAK,OAAO,EAAsC,MAAM,SAAS,CAAC;AAE3E;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAM1C,CAAC;AAKF,eAAO,MAAM,WAAW;;;;;;;;;;;;EAkBrB,CAAC;AAEJ,4CAA4C;AAC5C,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAE7C,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,EAAG,CAAU,CAAC"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/ir/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AACnE,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,KAAK,MAAM,EAAc,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,KAAK,OAAO,EAAsC,MAAM,SAAS,CAAC;AAE3E;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,OAAO,CAAC;AAE/D;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,CAM1C,CAAC;AAKF;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;EASvB,CAAC;AAEJ,2CAA2C;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AAEtD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAqBrB,CAAC;AAEJ,4CAA4C;AAC5C,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAE7C,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,EAAG,CAAU,CAAC"}
@@ -16,12 +16,24 @@ var ChildSchema = z.lazy(() => z.discriminatedUnion("type", [
16
16
  ScopeSchema
17
17
  ]).describe("Top-level scene child: a node, a path, a coordinate placeholder, or a scope container; discriminator field is `type`"));
18
18
  __registerChildSchema(ChildSchema);
19
+ /**
20
+ * 显式视框 schema(覆盖自动算的 layout 范围)
21
+ * @description 具名四字段(与 Scene.layout / SVG viewBox 同构);width / height `.positive().finite()`、
22
+ * x / y `.finite()` 守 Scene JSON 可序列化。设值时 compile 直接用它作 Scene.layout、忽略 padding。
23
+ */
24
+ var ViewBoxSchema = z.object({
25
+ x: z.number().finite().describe("ViewBox left-top x"),
26
+ y: z.number().finite().describe("ViewBox left-top y"),
27
+ width: z.number().finite().positive().describe("ViewBox width (> 0)"),
28
+ height: z.number().finite().positive().describe("ViewBox height (> 0)")
29
+ }).describe("Explicit viewBox overriding the auto-computed layout range (fixed size / clipping / multi-figure alignment). When set, Scene.layout uses it directly and padding is ignored.");
19
30
  var SceneSchema = z.object({
20
31
  version: z.literal(1).describe("IR major version number; bump only on breaking schema changes"),
21
32
  type: z.literal("scene").describe("Discriminator marking this object as the root scene"),
22
- children: z.array(ChildSchema).describe("Top-level children of the scene; nodes register ids that paths can reference")
33
+ children: z.array(ChildSchema).describe("Top-level children of the scene; nodes register ids that paths can reference"),
34
+ viewBox: ViewBoxSchema.optional().describe("Optional explicit viewBox; when set, Scene.layout uses it (ignoring padding) instead of the auto-computed bounding box. Omitted = automatic AABB + padding.")
23
35
  }).describe("Top-level retikz IR scene — the canonical, JSON-serializable representation of a drawing");
24
36
  /** IR 当前主版本号;只在 schema 出现破坏性变更时递增 */
25
37
  var CURRENT_IR_VERSION = 1;
26
38
  //#endregion
27
- export { CURRENT_IR_VERSION, ChildSchema, SceneSchema };
39
+ export { CURRENT_IR_VERSION, ChildSchema, SceneSchema, ViewBoxSchema };