@retikz/core 0.1.0-alpha.5 → 0.1.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (189) hide show
  1. package/dist/es/compile/compile.d.ts +17 -0
  2. package/dist/es/compile/compile.d.ts.map +1 -1
  3. package/dist/es/compile/compile.js +40 -15
  4. package/dist/es/compile/index.d.ts +1 -1
  5. package/dist/es/compile/index.d.ts.map +1 -1
  6. package/dist/es/compile/node.d.ts +3 -3
  7. package/dist/es/compile/node.d.ts.map +1 -1
  8. package/dist/es/compile/node.js +1 -1
  9. package/dist/es/compile/path/anchor.d.ts +19 -0
  10. package/dist/es/compile/path/anchor.d.ts.map +1 -0
  11. package/dist/es/compile/path/anchor.js +54 -0
  12. package/dist/es/compile/{path.d.ts → path/index.d.ts} +18 -7
  13. package/dist/es/compile/path/index.d.ts.map +1 -0
  14. package/dist/es/compile/path/index.js +308 -0
  15. package/dist/es/compile/path/label.d.ts +18 -0
  16. package/dist/es/compile/path/label.d.ts.map +1 -0
  17. package/dist/es/compile/path/label.js +102 -0
  18. package/dist/es/compile/path/relative.d.ts +8 -0
  19. package/dist/es/compile/path/relative.d.ts.map +1 -0
  20. package/dist/es/compile/path/relative.js +48 -0
  21. package/dist/es/compile/path/shrink.d.ts +24 -0
  22. package/dist/es/compile/path/shrink.d.ts.map +1 -0
  23. package/dist/es/compile/path/shrink.js +136 -0
  24. package/dist/es/compile/path/split.d.ts +15 -0
  25. package/dist/es/compile/path/split.d.ts.map +1 -0
  26. package/dist/es/compile/path/split.js +46 -0
  27. package/dist/es/compile/text-metrics.d.ts +4 -1
  28. package/dist/es/compile/text-metrics.d.ts.map +1 -1
  29. package/dist/es/compile/text-metrics.js +11 -5
  30. package/dist/es/geometry/_transform.d.ts +21 -0
  31. package/dist/es/geometry/_transform.d.ts.map +1 -0
  32. package/dist/es/geometry/_transform.js +27 -0
  33. package/dist/es/geometry/bend.d.ts +1 -1
  34. package/dist/es/geometry/bend.js +1 -1
  35. package/dist/es/geometry/circle.d.ts +2 -3
  36. package/dist/es/geometry/circle.d.ts.map +1 -1
  37. package/dist/es/geometry/circle.js +1 -16
  38. package/dist/es/geometry/diamond.d.ts +2 -3
  39. package/dist/es/geometry/diamond.d.ts.map +1 -1
  40. package/dist/es/geometry/diamond.js +1 -16
  41. package/dist/es/geometry/ellipse.d.ts +2 -3
  42. package/dist/es/geometry/ellipse.d.ts.map +1 -1
  43. package/dist/es/geometry/ellipse.js +1 -16
  44. package/dist/es/geometry/polar.d.ts +2 -2
  45. package/dist/es/geometry/polar.d.ts.map +1 -1
  46. package/dist/es/geometry/polar.js +2 -6
  47. package/dist/es/geometry/rect.d.ts.map +1 -1
  48. package/dist/es/geometry/rect.js +1 -18
  49. package/dist/es/geometry/segment.d.ts +5 -1
  50. package/dist/es/geometry/segment.d.ts.map +1 -1
  51. package/dist/es/index.d.ts +10 -6
  52. package/dist/es/index.d.ts.map +1 -1
  53. package/dist/es/index.js +4 -2
  54. package/dist/es/ir/font.d.ts +21 -0
  55. package/dist/es/ir/font.d.ts.map +1 -0
  56. package/dist/es/ir/font.js +15 -0
  57. package/dist/es/ir/index.d.ts +2 -0
  58. package/dist/es/ir/index.d.ts.map +1 -1
  59. package/dist/es/ir/node.d.ts +28 -139
  60. package/dist/es/ir/node.d.ts.map +1 -1
  61. package/dist/es/ir/node.js +6 -30
  62. package/dist/es/ir/path/arrow.d.ts +12 -12
  63. package/dist/es/ir/path/path.d.ts +16 -16
  64. package/dist/es/ir/path/path.js +4 -4
  65. package/dist/es/ir/path/step.d.ts +1 -1
  66. package/dist/es/ir/path/step.d.ts.map +1 -1
  67. package/dist/es/ir/path/step.js +8 -8
  68. package/dist/es/ir/position/offset-position.js +1 -1
  69. package/dist/es/ir/position/polar-position.d.ts.map +1 -1
  70. package/dist/es/ir/position/polar-position.js +2 -2
  71. package/dist/es/ir/position/position.d.ts.map +1 -1
  72. package/dist/es/ir/position/position.js +1 -1
  73. package/dist/es/ir/scene.d.ts +112 -112
  74. package/dist/es/ir/text.d.ts +96 -0
  75. package/dist/es/ir/text.d.ts.map +1 -0
  76. package/dist/es/ir/text.js +20 -0
  77. package/dist/es/parsers/parseTargetSugar.d.ts +4 -0
  78. package/dist/es/parsers/parseTargetSugar.d.ts.map +1 -1
  79. package/dist/es/parsers/parseTargetSugar.js +3 -2
  80. package/dist/es/primitive/ellipse.d.ts +2 -2
  81. package/dist/es/primitive/group.d.ts +23 -7
  82. package/dist/es/primitive/group.d.ts.map +1 -1
  83. package/dist/es/primitive/path.d.ts +51 -11
  84. package/dist/es/primitive/path.d.ts.map +1 -1
  85. package/dist/es/primitive/rect.d.ts +2 -2
  86. package/dist/es/primitive/rect.d.ts.map +1 -1
  87. package/dist/es/primitive/text.d.ts +10 -3
  88. package/dist/es/primitive/text.d.ts.map +1 -1
  89. package/dist/es/primitive/view-box.d.ts +1 -1
  90. package/dist/es/primitive/view-box.d.ts.map +1 -1
  91. package/dist/es/types.d.ts +8 -0
  92. package/dist/es/types.d.ts.map +1 -1
  93. package/dist/lib/compile/compile.cjs +40 -15
  94. package/dist/lib/compile/compile.d.ts +17 -0
  95. package/dist/lib/compile/compile.d.ts.map +1 -1
  96. package/dist/lib/compile/index.d.ts +1 -1
  97. package/dist/lib/compile/index.d.ts.map +1 -1
  98. package/dist/lib/compile/node.cjs +1 -1
  99. package/dist/lib/compile/node.d.ts +3 -3
  100. package/dist/lib/compile/node.d.ts.map +1 -1
  101. package/dist/lib/compile/path/anchor.cjs +58 -0
  102. package/dist/lib/compile/path/anchor.d.ts +19 -0
  103. package/dist/lib/compile/path/anchor.d.ts.map +1 -0
  104. package/dist/lib/compile/path/index.cjs +308 -0
  105. package/dist/lib/compile/{path.d.ts → path/index.d.ts} +18 -7
  106. package/dist/lib/compile/path/index.d.ts.map +1 -0
  107. package/dist/lib/compile/path/label.cjs +103 -0
  108. package/dist/lib/compile/path/label.d.ts +18 -0
  109. package/dist/lib/compile/path/label.d.ts.map +1 -0
  110. package/dist/lib/compile/path/relative.cjs +48 -0
  111. package/dist/lib/compile/path/relative.d.ts +8 -0
  112. package/dist/lib/compile/path/relative.d.ts.map +1 -0
  113. package/dist/lib/compile/path/shrink.cjs +138 -0
  114. package/dist/lib/compile/path/shrink.d.ts +24 -0
  115. package/dist/lib/compile/path/shrink.d.ts.map +1 -0
  116. package/dist/lib/compile/path/split.cjs +46 -0
  117. package/dist/lib/compile/path/split.d.ts +15 -0
  118. package/dist/lib/compile/path/split.d.ts.map +1 -0
  119. package/dist/lib/compile/text-metrics.cjs +11 -5
  120. package/dist/lib/compile/text-metrics.d.ts +4 -1
  121. package/dist/lib/compile/text-metrics.d.ts.map +1 -1
  122. package/dist/lib/geometry/_transform.cjs +28 -0
  123. package/dist/lib/geometry/_transform.d.ts +21 -0
  124. package/dist/lib/geometry/_transform.d.ts.map +1 -0
  125. package/dist/lib/geometry/bend.cjs +1 -1
  126. package/dist/lib/geometry/bend.d.ts +1 -1
  127. package/dist/lib/geometry/circle.cjs +5 -20
  128. package/dist/lib/geometry/circle.d.ts +2 -3
  129. package/dist/lib/geometry/circle.d.ts.map +1 -1
  130. package/dist/lib/geometry/diamond.cjs +5 -20
  131. package/dist/lib/geometry/diamond.d.ts +2 -3
  132. package/dist/lib/geometry/diamond.d.ts.map +1 -1
  133. package/dist/lib/geometry/ellipse.cjs +5 -20
  134. package/dist/lib/geometry/ellipse.d.ts +2 -3
  135. package/dist/lib/geometry/ellipse.d.ts.map +1 -1
  136. package/dist/lib/geometry/polar.cjs +2 -6
  137. package/dist/lib/geometry/polar.d.ts +2 -2
  138. package/dist/lib/geometry/polar.d.ts.map +1 -1
  139. package/dist/lib/geometry/rect.cjs +5 -22
  140. package/dist/lib/geometry/rect.d.ts.map +1 -1
  141. package/dist/lib/geometry/segment.d.ts +5 -1
  142. package/dist/lib/geometry/segment.d.ts.map +1 -1
  143. package/dist/lib/index.cjs +5 -3
  144. package/dist/lib/index.d.ts +10 -6
  145. package/dist/lib/index.d.ts.map +1 -1
  146. package/dist/lib/ir/font.cjs +15 -0
  147. package/dist/lib/ir/font.d.ts +21 -0
  148. package/dist/lib/ir/font.d.ts.map +1 -0
  149. package/dist/lib/ir/index.d.ts +2 -0
  150. package/dist/lib/ir/index.d.ts.map +1 -1
  151. package/dist/lib/ir/node.cjs +7 -34
  152. package/dist/lib/ir/node.d.ts +28 -139
  153. package/dist/lib/ir/node.d.ts.map +1 -1
  154. package/dist/lib/ir/path/arrow.d.ts +12 -12
  155. package/dist/lib/ir/path/path.cjs +4 -4
  156. package/dist/lib/ir/path/path.d.ts +16 -16
  157. package/dist/lib/ir/path/step.cjs +8 -8
  158. package/dist/lib/ir/path/step.d.ts +1 -1
  159. package/dist/lib/ir/path/step.d.ts.map +1 -1
  160. package/dist/lib/ir/position/offset-position.cjs +1 -1
  161. package/dist/lib/ir/position/polar-position.cjs +2 -2
  162. package/dist/lib/ir/position/polar-position.d.ts.map +1 -1
  163. package/dist/lib/ir/position/position.cjs +1 -1
  164. package/dist/lib/ir/position/position.d.ts.map +1 -1
  165. package/dist/lib/ir/scene.d.ts +112 -112
  166. package/dist/lib/ir/text.cjs +21 -0
  167. package/dist/lib/ir/text.d.ts +96 -0
  168. package/dist/lib/ir/text.d.ts.map +1 -0
  169. package/dist/lib/parsers/parseTargetSugar.cjs +3 -2
  170. package/dist/lib/parsers/parseTargetSugar.d.ts +4 -0
  171. package/dist/lib/parsers/parseTargetSugar.d.ts.map +1 -1
  172. package/dist/lib/primitive/ellipse.d.ts +2 -2
  173. package/dist/lib/primitive/group.d.ts +23 -7
  174. package/dist/lib/primitive/group.d.ts.map +1 -1
  175. package/dist/lib/primitive/path.d.ts +51 -11
  176. package/dist/lib/primitive/path.d.ts.map +1 -1
  177. package/dist/lib/primitive/rect.d.ts +2 -2
  178. package/dist/lib/primitive/rect.d.ts.map +1 -1
  179. package/dist/lib/primitive/text.d.ts +10 -3
  180. package/dist/lib/primitive/text.d.ts.map +1 -1
  181. package/dist/lib/primitive/view-box.d.ts +1 -1
  182. package/dist/lib/primitive/view-box.d.ts.map +1 -1
  183. package/dist/lib/types.d.ts +8 -0
  184. package/dist/lib/types.d.ts.map +1 -1
  185. package/package.json +13 -4
  186. package/dist/es/compile/path.d.ts.map +0 -1
  187. package/dist/es/compile/path.js +0 -636
  188. package/dist/lib/compile/path.cjs +0 -636
  189. package/dist/lib/compile/path.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"polar.d.ts","sourceRoot":"","sources":["../../../src/geometry/polar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAS,MAAM,SAAS,CAAC;AAS/C;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC3C,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAKF,oDAAoD;AACpD,eAAO,MAAM,KAAK;IAChB;;;OAGG;oBACa,aAAa,KAAG,QAAQ;IAmBxC,oDAAoD;sBAClC,QAAQ,KAAG,aAAa;IAI1C,gCAAgC;yBAEtB,QAAQ,UACR;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KACxC,QAAQ;IAOb;;;;OAIG;eAEI,QAAQ,GAAG,aAAa,KACxB,QAAQ,GAAG,aAAa,yBAE1B,OAAO;CACX,CAAC"}
1
+ {"version":3,"file":"polar.d.ts","sourceRoot":"","sources":["../../../src/geometry/polar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAS,MAAM,SAAS,CAAC;AAS/C;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,2CAA2C;IAC3C,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;IAC3C,mEAAmE;IACnE,KAAK,EAAE,MAAM,CAAC;IACd,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAIF,oDAAoD;AACpD,eAAO,MAAM,KAAK;IAChB;;;OAGG;oBACa,aAAa,KAAG,QAAQ;IAmBxC,qEAAqE;sBACnD,QAAQ,KAAG,aAAa;IAC1C,gCAAgC;yBAEtB,QAAQ,UACR;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KACxC,QAAQ;IAOb;;;;OAIG;eAEI,QAAQ,GAAG,aAAa,KACxB,QAAQ,GAAG,aAAa,yBAE1B,OAAO;CACX,CAAC"}
@@ -1,3 +1,4 @@
1
+ const require__transform = require("./_transform.cjs");
1
2
  //#region src/geometry/rect.ts
2
3
  /** 矩形 9 个标准 anchor 名常量(与 RectAnchor 配对,用 RECT_ANCHORS.NORTH 避免拼错) */
3
4
  var RECT_ANCHORS = {
@@ -11,30 +12,12 @@ var RECT_ANCHORS = {
11
12
  SOUTH_EAST: "south-east",
12
13
  SOUTH_WEST: "south-west"
13
14
  };
14
- /** 本地坐标(以中心为原点)→ 世界坐标,考虑 rect.rotate */
15
- var localToWorld = (r, local) => {
16
- const angle = r.rotate ?? 0;
17
- if (angle === 0) return [r.x + local[0], r.y + local[1]];
18
- const cos = Math.cos(angle);
19
- const sin = Math.sin(angle);
20
- return [r.x + local[0] * cos - local[1] * sin, r.y + local[0] * sin + local[1] * cos];
21
- };
22
- /** 世界坐标 → 本地坐标(localToWorld 逆变换) */
23
- var worldToLocal = (r, world) => {
24
- const tx = world[0] - r.x;
25
- const ty = world[1] - r.y;
26
- const angle = r.rotate ?? 0;
27
- if (angle === 0) return [tx, ty];
28
- const cos = Math.cos(angle);
29
- const sin = Math.sin(angle);
30
- return [tx * cos + ty * sin, -tx * sin + ty * cos];
31
- };
32
15
  var rect = {
33
16
  /** 几何中心 */
34
17
  center: (r) => [r.x, r.y],
35
18
  /** 点是否在矩形内(含边界,含旋转) */
36
19
  contains: (r, p) => {
37
- const [lx, ly] = worldToLocal(r, p);
20
+ const [lx, ly] = require__transform.worldToLocal(r, p);
38
21
  const halfW = r.width / 2;
39
22
  const halfH = r.height / 2;
40
23
  return lx >= -halfW && lx <= halfW && ly >= -halfH && ly <= halfH;
@@ -76,18 +59,18 @@ var rect = {
76
59
  ly = halfH;
77
60
  break;
78
61
  }
79
- return localToWorld(r, [lx, ly]);
62
+ return require__transform.localToWorld(r, [lx, ly]);
80
63
  },
81
64
  /** 从中心向 toward 方向射线与矩形边界交点(含旋转),Path 端点贴 Node 边界用 */
82
65
  boundaryPoint: (r, toward) => {
83
- const [localX, localY] = worldToLocal(r, toward);
66
+ const [localX, localY] = require__transform.worldToLocal(r, toward);
84
67
  if (localX === 0 && localY === 0) return [r.x, r.y];
85
68
  const halfW = r.width / 2;
86
69
  const halfH = r.height / 2;
87
70
  const tx = localX === 0 ? Infinity : halfW / Math.abs(localX);
88
71
  const ty = localY === 0 ? Infinity : halfH / Math.abs(localY);
89
72
  const t = Math.min(tx, ty);
90
- return localToWorld(r, [localX * t, localY * t]);
73
+ return require__transform.localToWorld(r, [localX * t, localY * t]);
91
74
  }
92
75
  };
93
76
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/geometry/rect.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,gCAAgC;AAChC,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,YAAY;;;;;;;;;;CAUf,CAAC;AAEX,+BAA+B;AAC/B,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AA0B1E,eAAO,MAAM,IAAI;IACf,WAAW;gBACC,IAAI,KAAG,QAAQ;IAC3B,uBAAuB;kBACT,IAAI,KAAK,QAAQ,KAAG,OAAO;IAMzC,sCAAsC;gBAC1B,IAAI,QAAQ,UAAU,KAAG,QAAQ;IAuC7C,qDAAqD;uBAClC,IAAI,UAAU,QAAQ,KAAG,QAAQ;CAUrD,CAAC"}
1
+ {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/geometry/rect.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC,gCAAgC;AAChC,MAAM,MAAM,IAAI,GAAG;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,cAAc;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,qEAAqE;AACrE,eAAO,MAAM,YAAY;;;;;;;;;;CAUf,CAAC;AAEX,+BAA+B;AAC/B,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,YAAY,CAAC,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC;AAE1E,eAAO,MAAM,IAAI;IACf,WAAW;gBACC,IAAI,KAAG,QAAQ;IAC3B,uBAAuB;kBACT,IAAI,KAAK,QAAQ,KAAG,OAAO;IAMzC,sCAAsC;gBAC1B,IAAI,QAAQ,UAAU,KAAG,QAAQ;IAuC7C,qDAAqD;uBAClC,IAAI,UAAU,QAAQ,KAAG,QAAQ;CAUrD,CAAC"}
@@ -1,6 +1,10 @@
1
1
  import { Position } from './point';
2
+ /**
3
+ * 段几何采样结果:t 处坐标点 + 归一化切线向量
4
+ * @description 各 `*SegmentSample` 函数(line / quad / cubic / fold / arc / circle / ellipse)的统一返回形态;供 step.label emit 算位置 / 切线 / sloped 旋转角
5
+ */
2
6
  export type SegmentSample = {
3
- /** t 处的点 */
7
+ /** t 处的点(user units) */
4
8
  point: Position;
5
9
  /** t 处的切线(单位向量;零向量时回退 [1, 0]) */
6
10
  tangent: Position;
@@ -1 +1 @@
1
- {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/geometry/segment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiBxC,MAAM,MAAM,aAAa,GAAG;IAC1B,YAAY;IACZ,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAQF,oBAAoB;AACpB,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,SAAS,QAAQ,EACjB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aASF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAqBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,QAAQ,QAAQ,EAChB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGF,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAUF,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,GAAG,MAAM,KACR,aASF,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,GAAG,MAAM,KACR,aASF,CAAC"}
1
+ {"version":3,"file":"segment.d.ts","sourceRoot":"","sources":["../../../src/geometry/segment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAiBxC;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,wBAAwB;IACxB,KAAK,EAAE,QAAQ,CAAC;IAChB,iCAAiC;IACjC,OAAO,EAAE,QAAQ,CAAC;CACnB,CAAC;AAQF,oBAAoB;AACpB,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGD,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,SAAS,QAAQ,EACjB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aASF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,MAAM,QAAQ,EACd,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAqBF,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,QAAQ,EACd,QAAQ,QAAQ,EAChB,IAAI,QAAQ,EACZ,GAAG,MAAM,KACR,aAGF,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,GAC3B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,eAAe,MAAM,EACrB,aAAa,MAAM,EACnB,GAAG,MAAM,KACR,aAUF,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,QAAQ,EAChB,QAAQ,MAAM,EACd,GAAG,MAAM,KACR,aASF,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,QAAQ,EAChB,IAAI,MAAM,EACV,IAAI,MAAM,EACV,GAAG,MAAM,KACR,aASF,CAAC"}
@@ -3,6 +3,8 @@ const require_position = require("./ir/position/position.cjs");
3
3
  const require_polar_position = require("./ir/position/polar-position.cjs");
4
4
  const require_at_position = require("./ir/position/at-position.cjs");
5
5
  const require_offset_position = require("./ir/position/offset-position.cjs");
6
+ const require_font = require("./ir/font.cjs");
7
+ const require_text = require("./ir/text.cjs");
6
8
  const require_arrow = require("./ir/path/arrow.cjs");
7
9
  const require_target = require("./ir/path/target.cjs");
8
10
  const require_step = require("./ir/path/step.cjs");
@@ -40,16 +42,15 @@ exports.CycleStepSchema = require_step.CycleStepSchema;
40
42
  exports.DrawWay = require_parseWay.DrawWay;
41
43
  exports.EllipsePathStepSchema = require_step.EllipsePathStepSchema;
42
44
  exports.FoldStepSchema = require_step.FoldStepSchema;
43
- exports.FontSchema = require_node.FontSchema;
45
+ exports.FontSchema = require_font.FontSchema;
44
46
  exports.HOLLOW_ARROW_SHAPES = require_arrow.HOLLOW_ARROW_SHAPES;
45
- exports.LineSpecSchema = require_node.LineSpecSchema;
47
+ exports.LineSpecSchema = require_text.LineSpecSchema;
46
48
  exports.LineStepSchema = require_step.LineStepSchema;
47
49
  exports.MoveStepSchema = require_step.MoveStepSchema;
48
50
  exports.NODE_SHAPES = require_node.NODE_SHAPES;
49
51
  exports.NODE_TEXT_ALIGNS = require_node.NODE_TEXT_ALIGNS;
50
52
  exports.NodeLabelSchema = require_node.NodeLabelSchema;
51
53
  exports.NodeSchema = require_node.NodeSchema;
52
- exports.NodeTextSchema = require_node.NodeTextSchema;
53
54
  exports.OffsetPositionSchema = require_offset_position.OffsetPositionSchema;
54
55
  exports.PathSchema = require_path.PathSchema;
55
56
  exports.PolarPositionSchema = require_polar_position.PolarPositionSchema;
@@ -61,6 +62,7 @@ exports.SceneSchema = require_scene.SceneSchema;
61
62
  exports.StepLabelSchema = require_step.StepLabelSchema;
62
63
  exports.StepSchema = require_step.StepSchema;
63
64
  exports.TargetSchema = require_target.TargetSchema;
65
+ exports.TextBlockSchema = require_text.TextBlockSchema;
64
66
  exports.circle = require_circle.circle;
65
67
  exports.compileToScene = require_compile.compileToScene;
66
68
  exports.diamond = require_diamond.diamond;
@@ -2,15 +2,19 @@
2
2
  * @retikz/core 公开 API
3
3
  * @description 任何 framework adapter(@retikz/react、@retikz/vue、@retikz/canvas、@retikz/ssr)只能 import 本文件导出内容,不准走子路径。本包零 React/零 DOM 依赖
4
4
  */
5
- export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AT_DIRECTIONS, TargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, CoordinateSchema, FontSchema, NodeTextSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, } from './ir';
6
- export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirection, IRTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRCoordinate, IRFont, IRLineSpec, IRPath, IRChild, IR, ArrowShape, IRArrowDetail, IRArrowEndDetail, NodeShape, NodeTextAlign, } from './ir';
5
+ export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AT_DIRECTIONS, TargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, } from './ir';
6
+ export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirection, IRTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRChild, IR, ArrowShape, IRArrowDetail, IRArrowEndDetail, NodeShape, NodeTextAlign, } from './ir';
7
7
  export { ARROW_SHAPES, HOLLOW_ARROW_SHAPES, ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, NODE_SHAPES, NODE_TEXT_ALIGNS, } from './ir';
8
- export type { ScenePrimitive, RectPrim, EllipsePrim, TextPrim, TextLine, PathPrim, PathCommand, ArrowEndSpec, GroupPrim, Transform, ViewBox, Scene, } from './primitive';
9
- export type { FontSpec, TextMetrics, TextMeasurer, CompileOptions, } from './compile';
8
+ export type { ScenePrimitive, RectPrim, EllipsePrim, TextPrim, TextLine, PathPrim, PathCommand,
9
+ /** 7 named PathCommand 分支(便于 wrapper / Pick<>) */
10
+ MovePathCommand, LinePathCommand, QuadPathCommand, CubicPathCommand, ArcPathCommand, EllipseArcPathCommand, ClosePathCommand, ArrowEndSpec, GroupPrim, Transform,
11
+ /** 3 个 named Transform 分支 */
12
+ TranslateTransform, RotateTransform, ScaleTransform, ViewBox, Scene, } from './primitive';
13
+ export type { FontSpec, TextMetrics, TextMeasurer, CompileOptions, CompileWarning, } from './compile';
10
14
  export { fallbackMeasurer, compileToScene } from './compile';
11
15
  export type { WayItem, WayDSL, WayCycle, WayVia, WayRelativeItem, WayLabel, WayLabelOp, } from './parsers';
12
16
  export { parseWay, DrawWay, parseTargetSugar } from './parsers';
13
- export type { Position, Rect, RectAnchor, Circle, CircleAnchor, Ellipse, EllipseAnchor, Diamond, DiamondAnchor, PolarPosition, } from './geometry';
17
+ export type { Position, Rect, RectAnchor, Circle, Ellipse, Diamond, PolarPosition, } from './geometry';
14
18
  export { point, rect, circle, ellipse, diamond, RECT_ANCHORS, polar } from './geometry';
15
- export type { ValueOf } from './types';
19
+ export type { ValueOf, AssertEqual } from './types';
16
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,8BAA8B,EAC9B,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,MAAM,CAAC;AACd,YAAY,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,MAAM,EACN,UAAU,EACV,MAAM,EACN,OAAO,EACP,EAAE,EACF,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,GACd,MAAM,MAAM,CAAC;AACd,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,sCAAsC,EACtC,WAAW,EACX,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAGd,YAAY,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,GACN,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG7D,YAAY,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIhE,YAAY,EACV,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,MAAM,EACN,YAAY,EACZ,OAAO,EACP,aAAa,EACb,OAAO,EACP,aAAa,EACb,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxF,YAAY,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,8BAA8B,EAC9B,cAAc,EACd,cAAc,EACd,cAAc,EACd,eAAe,EACf,eAAe,EACf,eAAe,EACf,cAAc,EACd,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,eAAe,EACf,cAAc,EACd,UAAU,EACV,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,WAAW,EACX,kBAAkB,GACnB,MAAM,MAAM,CAAC;AACd,YAAY,EACV,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,0BAA0B,EAC1B,UAAU,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,WAAW,EACX,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,MAAM,EACN,MAAM,EACN,WAAW,EACX,YAAY,EACZ,MAAM,EACN,UAAU,EACV,WAAW,EACX,MAAM,EACN,OAAO,EACP,EAAE,EACF,UAAU,EACV,aAAa,EACb,gBAAgB,EAChB,SAAS,EACT,aAAa,GACd,MAAM,MAAM,CAAC;AACd,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,sCAAsC,EACtC,WAAW,EACX,gBAAgB,GACjB,MAAM,MAAM,CAAC;AAGd,YAAY,EACV,cAAc,EACd,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW;AACX,oDAAoD;AACpD,eAAe,EACf,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,qBAAqB,EACrB,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,SAAS;AACT,6BAA6B;AAC7B,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,OAAO,EACP,KAAK,GACN,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,YAAY,EACZ,cAAc,EACd,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAG7D,YAAY,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAIhE,YAAY,EACV,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,MAAM,EACN,OAAO,EACP,OAAO,EACP,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGxF,YAAY,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,15 @@
1
+ let zod = require("zod");
2
+ //#region src/ir/font.ts
3
+ /** 字体规格:family/size/weight/style 全部可选 */
4
+ var FontSchema = zod.z.object({
5
+ family: zod.z.string().optional().describe("CSS font-family string, e.g. \"serif\", \"monospace\", \"Inter, sans-serif\""),
6
+ size: zod.z.number().positive().finite().optional().describe("Font size in user units; falls back to the renderer default when omitted"),
7
+ weight: zod.z.union([zod.z.enum(["normal", "bold"]), zod.z.number().finite()]).optional().describe("CSS font-weight: keyword `normal` / `bold` or numeric 100..900"),
8
+ style: zod.z.enum([
9
+ "normal",
10
+ "italic",
11
+ "oblique"
12
+ ]).optional().describe("CSS font-style")
13
+ }).describe("Font properties (family / size / weight / style). All fields optional; consumed by Node text / Node label / LineSpec / future Tikz / Scope font defaults.");
14
+ //#endregion
15
+ exports.FontSchema = FontSchema;
@@ -0,0 +1,21 @@
1
+ import { z } from 'zod';
2
+ /** 字体规格:family/size/weight/style 全部可选 */
3
+ export declare const FontSchema: z.ZodObject<{
4
+ family: z.ZodOptional<z.ZodString>;
5
+ size: z.ZodOptional<z.ZodNumber>;
6
+ weight: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["normal", "bold"]>, z.ZodNumber]>>;
7
+ style: z.ZodOptional<z.ZodEnum<["normal", "italic", "oblique"]>>;
8
+ }, "strip", z.ZodTypeAny, {
9
+ family?: string | undefined;
10
+ size?: number | undefined;
11
+ weight?: number | "normal" | "bold" | undefined;
12
+ style?: "normal" | "italic" | "oblique" | undefined;
13
+ }, {
14
+ family?: string | undefined;
15
+ size?: number | undefined;
16
+ weight?: number | "normal" | "bold" | undefined;
17
+ style?: "normal" | "italic" | "oblique" | undefined;
18
+ }>;
19
+ /** 字体规格 IR 类型(所有字段可选,编译期解析默认值) */
20
+ export type IRFont = z.infer<typeof FontSchema>;
21
+ //# sourceMappingURL=font.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"font.d.ts","sourceRoot":"","sources":["../../../src/ir/font.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,yCAAyC;AACzC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;EAyBpB,CAAC;AAEJ,kCAAkC;AAClC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export * from './position';
2
+ export * from './font';
3
+ export * from './text';
2
4
  export * from './path';
3
5
  export * from './node';
4
6
  export * from './coordinate';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ir/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
@@ -2,6 +2,8 @@ const require_position = require("./position/position.cjs");
2
2
  const require_polar_position = require("./position/polar-position.cjs");
3
3
  const require_at_position = require("./position/at-position.cjs");
4
4
  const require_offset_position = require("./position/offset-position.cjs");
5
+ const require_font = require("./font.cjs");
6
+ const require_text = require("./text.cjs");
5
7
  let zod = require("zod");
6
8
  //#region src/ir/node.ts
7
9
  /**
@@ -14,32 +16,6 @@ var NODE_SHAPES = {
14
16
  ellipse: "ellipse",
15
17
  diamond: "diamond"
16
18
  };
17
- /** 节点字体规格:family/size/weight/style 全部可选,透传 SVG `<text>` font-* 属性 */
18
- var FontSchema = zod.z.object({
19
- family: zod.z.string().optional().describe("CSS font-family string, e.g. \"serif\", \"monospace\", \"Inter, sans-serif\""),
20
- size: zod.z.number().positive().optional().describe("Font size in user units; falls back to the renderer default when omitted"),
21
- weight: zod.z.union([zod.z.enum(["normal", "bold"]), zod.z.number()]).optional().describe("CSS font-weight: keyword `normal` / `bold` or numeric 100..900"),
22
- style: zod.z.enum([
23
- "normal",
24
- "italic",
25
- "oblique"
26
- ]).optional().describe("CSS font-style")
27
- }).describe("Font properties for the node text label; all fields optional, nested object form.");
28
- /**
29
- * 单行文本规格:纯字符串走块级默认,对象形式可覆盖 fill/opacity/font
30
- * @description 行级覆盖只生效于本行 `<tspan>`;font 子字段未填则继承块级;align/lineHeight 不可被行覆盖
31
- */
32
- var LineSpecSchema = zod.z.union([zod.z.string(), zod.z.object({
33
- text: zod.z.string().describe("Line content"),
34
- fill: zod.z.string().optional().describe("Per-line text color; overrides block default"),
35
- opacity: zod.z.number().min(0).max(1).optional().describe("Per-line opacity 0..1"),
36
- font: FontSchema.optional().describe("Per-line font overrides; missing fields inherit from block-level `font`")
37
- })]).describe("Single line of text: bare string for default styling, or an object with per-line `fill` / `opacity` / `font` overrides.");
38
- /**
39
- * 节点文本:单字符串或非空多行 LineSpec 数组
40
- * @description 选数组而非 `\n` 字符串:JSON 友好无 escape,行级覆盖天然落字段
41
- */
42
- var NodeTextSchema = zod.z.union([zod.z.string(), zod.z.array(LineSpecSchema).min(1)]).describe("Text label rendered inside the node: a single string for one line, or a non-empty array of line specs (string for default, object for per-line overrides).");
43
19
  /** 节点文本对齐(TikZ `align=` 同义) */
44
20
  var NODE_TEXT_ALIGNS = {
45
21
  left: "left",
@@ -56,7 +32,7 @@ var NodeLabelSchema = zod.z.object({
56
32
  distance: zod.z.number().nonnegative().optional().describe("Gap between the node border and the label center, in user units. Default 4."),
57
33
  textColor: zod.z.string().optional().describe("Label text color; falls back to currentColor."),
58
34
  opacity: zod.z.number().min(0).max(1).optional().describe("Label-only opacity 0..1; multiplied with the node opacity if both are set."),
59
- font: FontSchema.optional().describe("Label font overrides; missing fields inherit from the parent node font, then renderer defaults.")
35
+ font: require_font.FontSchema.optional().describe("Label font overrides; missing fields inherit from the parent node font, then renderer defaults.")
60
36
  }).describe("Extra text attached around a node border. Multiple labels supported via array form on `Node.label`.");
61
37
  var NodeSchema = zod.z.object({
62
38
  type: zod.z.literal("node").describe("Discriminator marking this child as a node"),
@@ -69,7 +45,7 @@ var NodeSchema = zod.z.object({
69
45
  require_offset_position.OffsetPositionSchema
70
46
  ]).describe("Center point of the node content box; Cartesian [x, y], polar, relative-to-another-node (`at`-style with `direction` / `of` / `distance?`), or offset from a base point (`{ of, offset }` form mirroring TikZ `calc`). All non-Cartesian forms resolve at compile time."),
71
47
  rotate: zod.z.number().optional().describe("Rotation in degrees around the node center; positive = clockwise (matches TikZ rotate=...)"),
72
- text: NodeTextSchema.optional(),
48
+ text: require_text.TextBlockSchema.optional(),
73
49
  align: zod.z.nativeEnum(NODE_TEXT_ALIGNS).optional().describe("Multi-line text alignment within the text block; `left` / `center` / `right`. Defaults to `center` (matches TikZ)."),
74
50
  lineHeight: zod.z.number().positive().optional().describe("Line height in user units; falls back to `font.size × 1.2` when omitted."),
75
51
  fill: zod.z.string().optional().describe("Background color of the node shape; any CSS color (e.g. \"lightblue\", \"#fafafa\", \"rgba(...)\")"),
@@ -79,8 +55,8 @@ var NodeSchema = zod.z.object({
79
55
  strokeWidth: zod.z.number().optional().describe("Border width in user units; defaults to 1 when omitted"),
80
56
  dashed: zod.z.boolean().optional().describe("Border style preset: dashed line (TikZ `dashed`); compiled to a default dash pattern. `dashArray` takes precedence."),
81
57
  dotted: zod.z.boolean().optional().describe("Border style preset: dotted line (TikZ `dotted`); compiled to a default dot pattern. `dashArray` and `dashed` take precedence."),
82
- dashArray: zod.z.string().optional().describe("Explicit SVG stroke-dasharray value (e.g. \"4 2\"); overrides `dashed` / `dotted`."),
83
- roundedCorners: zod.z.number().nonnegative().optional().describe("Corner radius in user units; only effective on `rectangle` shape (rx / ry on `<rect>`)."),
58
+ dashArray: zod.z.string().optional().describe("Explicit stroke dash pattern (e.g. \"4 2\"; same format as SVG/CSS `stroke-dasharray`); overrides `dashed` / `dotted`."),
59
+ roundedCorners: zod.z.number().nonnegative().optional().describe("Corner radius in user units; only effective on `rectangle` shape."),
84
60
  minimumWidth: zod.z.number().nonnegative().optional().describe("Minimum visual border width in user units; floors the bounding box width."),
85
61
  minimumHeight: zod.z.number().nonnegative().optional().describe("Minimum visual border height in user units; floors the bounding box height."),
86
62
  minimumSize: zod.z.number().nonnegative().optional().describe("Symmetric alias for `minimumWidth` + `minimumHeight`; axis-specific fields take precedence."),
@@ -94,14 +70,11 @@ var NodeSchema = zod.z.object({
94
70
  outerSep: zod.z.number().nonnegative().optional().describe("Outer margin from border to path attachment point in user units; does NOT change the visible border. Falls back to `margin`."),
95
71
  padding: zod.z.number().nonnegative().optional().describe("Symmetric inner padding (alias for `innerXSep` + `innerYSep`); axis-specific fields take precedence."),
96
72
  margin: zod.z.number().nonnegative().optional().describe("Symmetric outer margin (alias for `outerSep`); axis-specific field takes precedence."),
97
- font: FontSchema.optional().describe("Font spec for the inner text label (family / size / weight / style); all fields optional, all fall back to renderer defaults."),
73
+ font: require_font.FontSchema.optional().describe("Font spec for the inner text label (family / size / weight / style); all fields optional, all fall back to renderer defaults."),
98
74
  label: zod.z.union([NodeLabelSchema, zod.z.array(NodeLabelSchema)]).optional().describe("Extra label(s) attached around the node border (TikZ `[label=above:foo]`); single object or array form. Compiled into one TextPrim per label, positioned by `position` direction / angle and `distance`.")
99
75
  }).describe("Node primitive: a positioned, optionally textual shape (rectangle / circle / ellipse / diamond)");
100
76
  //#endregion
101
- exports.FontSchema = FontSchema;
102
- exports.LineSpecSchema = LineSpecSchema;
103
77
  exports.NODE_SHAPES = NODE_SHAPES;
104
78
  exports.NODE_TEXT_ALIGNS = NODE_TEXT_ALIGNS;
105
79
  exports.NodeLabelSchema = NodeLabelSchema;
106
80
  exports.NodeSchema = NodeSchema;
107
- exports.NodeTextSchema = NodeTextSchema;