@retikz/core 0.3.0-alpha.2 → 0.3.0-alpha.4

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 (214) hide show
  1. package/README.md +41 -41
  2. package/dist/es/compile/anchor-cache.d.ts +5 -3
  3. package/dist/es/compile/anchor-cache.d.ts.map +1 -1
  4. package/dist/es/compile/anchor-cache.js +14 -10
  5. package/dist/es/compile/boundary.d.ts +19 -0
  6. package/dist/es/compile/boundary.d.ts.map +1 -0
  7. package/dist/es/compile/boundary.js +64 -0
  8. package/dist/es/compile/compile.d.ts.map +1 -1
  9. package/dist/es/compile/compile.js +15 -2
  10. package/dist/es/compile/node.d.ts +24 -8
  11. package/dist/es/compile/node.d.ts.map +1 -1
  12. package/dist/es/compile/node.js +106 -17
  13. package/dist/es/compile/path/anchor.d.ts.map +1 -1
  14. package/dist/es/compile/path/anchor.js +7 -6
  15. package/dist/es/compile/path/index.d.ts.map +1 -1
  16. package/dist/es/compile/path/index.js +7 -3
  17. package/dist/es/compile/path/relative.js +1 -1
  18. package/dist/es/compile/scope.d.ts.map +1 -1
  19. package/dist/es/compile/scope.js +2 -1
  20. package/dist/es/geometry/arc.d.ts +14 -0
  21. package/dist/es/geometry/arc.d.ts.map +1 -1
  22. package/dist/es/geometry/arc.js +65 -9
  23. package/dist/es/geometry/index.d.ts +1 -0
  24. package/dist/es/geometry/index.d.ts.map +1 -1
  25. package/dist/es/geometry/rect.d.ts +2 -2
  26. package/dist/es/geometry/rect.d.ts.map +1 -1
  27. package/dist/es/geometry/rect.js +3 -3
  28. package/dist/es/geometry/roundedContour.d.ts +88 -0
  29. package/dist/es/geometry/roundedContour.d.ts.map +1 -0
  30. package/dist/es/geometry/roundedContour.js +417 -0
  31. package/dist/es/index.d.ts +6 -5
  32. package/dist/es/index.d.ts.map +1 -1
  33. package/dist/es/index.js +9 -6
  34. package/dist/es/ir/boundary.d.ts +25 -0
  35. package/dist/es/ir/boundary.d.ts.map +1 -0
  36. package/dist/es/ir/boundary.js +14 -0
  37. package/dist/es/ir/index.d.ts +2 -0
  38. package/dist/es/ir/index.d.ts.map +1 -1
  39. package/dist/es/ir/node.d.ts +43 -7
  40. package/dist/es/ir/node.d.ts.map +1 -1
  41. package/dist/es/ir/node.js +8 -3
  42. package/dist/es/ir/path/arrow.d.ts +12 -12
  43. package/dist/es/ir/path/path.d.ts +493 -147
  44. package/dist/es/ir/path/path.d.ts.map +1 -1
  45. package/dist/es/ir/path/path.js +3 -0
  46. package/dist/es/ir/path/step.d.ts +674 -154
  47. package/dist/es/ir/path/step.d.ts.map +1 -1
  48. package/dist/es/ir/path/step.js +2 -2
  49. package/dist/es/ir/path/target.d.ts +43 -8
  50. package/dist/es/ir/path/target.d.ts.map +1 -1
  51. package/dist/es/ir/path/target.js +4 -5
  52. package/dist/es/ir/scope.d.ts +851 -234
  53. package/dist/es/ir/scope.d.ts.map +1 -1
  54. package/dist/es/ir/scope.js +6 -2
  55. package/dist/es/ir/shape.d.ts +14 -0
  56. package/dist/es/ir/shape.d.ts.map +1 -0
  57. package/dist/es/ir/shape.js +9 -0
  58. package/dist/es/parsers/parseNodeTarget.d.ts.map +1 -1
  59. package/dist/es/parsers/parseNodeTarget.js +4 -2
  60. package/dist/es/primitive/ellipse.d.ts +5 -0
  61. package/dist/es/primitive/ellipse.d.ts.map +1 -1
  62. package/dist/es/primitive/group.d.ts +5 -0
  63. package/dist/es/primitive/group.d.ts.map +1 -1
  64. package/dist/es/primitive/path.d.ts +5 -0
  65. package/dist/es/primitive/path.d.ts.map +1 -1
  66. package/dist/es/primitive/rect.d.ts +5 -0
  67. package/dist/es/primitive/rect.d.ts.map +1 -1
  68. package/dist/es/primitive/text.d.ts +5 -0
  69. package/dist/es/primitive/text.d.ts.map +1 -1
  70. package/dist/es/shapes/_contour.d.ts +19 -0
  71. package/dist/es/shapes/_contour.d.ts.map +1 -0
  72. package/dist/es/shapes/_contour.js +60 -0
  73. package/dist/es/shapes/_shared.d.ts +54 -0
  74. package/dist/es/shapes/_shared.d.ts.map +1 -1
  75. package/dist/es/shapes/_shared.js +68 -1
  76. package/dist/es/shapes/arc.d.ts +8 -0
  77. package/dist/es/shapes/arc.d.ts.map +1 -0
  78. package/dist/es/shapes/arc.js +104 -0
  79. package/dist/es/shapes/define.d.ts +13 -0
  80. package/dist/es/shapes/define.d.ts.map +1 -0
  81. package/dist/es/shapes/define.js +13 -0
  82. package/dist/es/shapes/ellipse.d.ts +5 -4
  83. package/dist/es/shapes/ellipse.d.ts.map +1 -1
  84. package/dist/es/shapes/ellipse.js +15 -7
  85. package/dist/es/shapes/index.d.ts +9 -6
  86. package/dist/es/shapes/index.d.ts.map +1 -1
  87. package/dist/es/shapes/index.js +10 -5
  88. package/dist/es/shapes/polygon.d.ts +13 -0
  89. package/dist/es/shapes/polygon.d.ts.map +1 -0
  90. package/dist/es/shapes/polygon.js +104 -0
  91. package/dist/es/shapes/rectangle.d.ts +7 -5
  92. package/dist/es/shapes/rectangle.d.ts.map +1 -1
  93. package/dist/es/shapes/rectangle.js +37 -8
  94. package/dist/es/shapes/sector.d.ts +9 -0
  95. package/dist/es/shapes/sector.d.ts.map +1 -0
  96. package/dist/es/shapes/sector.js +143 -0
  97. package/dist/es/shapes/star.d.ts +15 -0
  98. package/dist/es/shapes/star.d.ts.map +1 -0
  99. package/dist/es/shapes/star.js +113 -0
  100. package/dist/es/shapes/types.d.ts +47 -14
  101. package/dist/es/shapes/types.d.ts.map +1 -1
  102. package/dist/lib/compile/anchor-cache.cjs +14 -10
  103. package/dist/lib/compile/anchor-cache.d.ts +5 -3
  104. package/dist/lib/compile/anchor-cache.d.ts.map +1 -1
  105. package/dist/lib/compile/boundary.cjs +65 -0
  106. package/dist/lib/compile/boundary.d.ts +19 -0
  107. package/dist/lib/compile/boundary.d.ts.map +1 -0
  108. package/dist/lib/compile/compile.cjs +15 -2
  109. package/dist/lib/compile/compile.d.ts.map +1 -1
  110. package/dist/lib/compile/node.cjs +106 -17
  111. package/dist/lib/compile/node.d.ts +24 -8
  112. package/dist/lib/compile/node.d.ts.map +1 -1
  113. package/dist/lib/compile/path/anchor.cjs +7 -6
  114. package/dist/lib/compile/path/anchor.d.ts.map +1 -1
  115. package/dist/lib/compile/path/index.cjs +7 -3
  116. package/dist/lib/compile/path/index.d.ts.map +1 -1
  117. package/dist/lib/compile/path/relative.cjs +1 -1
  118. package/dist/lib/compile/scope.cjs +2 -1
  119. package/dist/lib/compile/scope.d.ts.map +1 -1
  120. package/dist/lib/geometry/arc.cjs +66 -8
  121. package/dist/lib/geometry/arc.d.ts +14 -0
  122. package/dist/lib/geometry/arc.d.ts.map +1 -1
  123. package/dist/lib/geometry/index.d.ts +1 -0
  124. package/dist/lib/geometry/index.d.ts.map +1 -1
  125. package/dist/lib/geometry/rect.cjs +3 -3
  126. package/dist/lib/geometry/rect.d.ts +2 -2
  127. package/dist/lib/geometry/rect.d.ts.map +1 -1
  128. package/dist/lib/geometry/roundedContour.cjs +418 -0
  129. package/dist/lib/geometry/roundedContour.d.ts +88 -0
  130. package/dist/lib/geometry/roundedContour.d.ts.map +1 -0
  131. package/dist/lib/index.cjs +14 -7
  132. package/dist/lib/index.d.ts +6 -5
  133. package/dist/lib/index.d.ts.map +1 -1
  134. package/dist/lib/ir/boundary.cjs +15 -0
  135. package/dist/lib/ir/boundary.d.ts +25 -0
  136. package/dist/lib/ir/boundary.d.ts.map +1 -0
  137. package/dist/lib/ir/index.d.ts +2 -0
  138. package/dist/lib/ir/index.d.ts.map +1 -1
  139. package/dist/lib/ir/node.cjs +8 -3
  140. package/dist/lib/ir/node.d.ts +43 -7
  141. package/dist/lib/ir/node.d.ts.map +1 -1
  142. package/dist/lib/ir/path/arrow.d.ts +12 -12
  143. package/dist/lib/ir/path/path.cjs +3 -0
  144. package/dist/lib/ir/path/path.d.ts +493 -147
  145. package/dist/lib/ir/path/path.d.ts.map +1 -1
  146. package/dist/lib/ir/path/step.cjs +2 -2
  147. package/dist/lib/ir/path/step.d.ts +674 -154
  148. package/dist/lib/ir/path/step.d.ts.map +1 -1
  149. package/dist/lib/ir/path/target.cjs +4 -5
  150. package/dist/lib/ir/path/target.d.ts +43 -8
  151. package/dist/lib/ir/path/target.d.ts.map +1 -1
  152. package/dist/lib/ir/scope.cjs +6 -2
  153. package/dist/lib/ir/scope.d.ts +851 -234
  154. package/dist/lib/ir/scope.d.ts.map +1 -1
  155. package/dist/lib/ir/shape.cjs +9 -0
  156. package/dist/lib/ir/shape.d.ts +14 -0
  157. package/dist/lib/ir/shape.d.ts.map +1 -0
  158. package/dist/lib/parsers/parseNodeTarget.cjs +4 -2
  159. package/dist/lib/parsers/parseNodeTarget.d.ts.map +1 -1
  160. package/dist/lib/primitive/ellipse.d.ts +5 -0
  161. package/dist/lib/primitive/ellipse.d.ts.map +1 -1
  162. package/dist/lib/primitive/group.d.ts +5 -0
  163. package/dist/lib/primitive/group.d.ts.map +1 -1
  164. package/dist/lib/primitive/path.d.ts +5 -0
  165. package/dist/lib/primitive/path.d.ts.map +1 -1
  166. package/dist/lib/primitive/rect.d.ts +5 -0
  167. package/dist/lib/primitive/rect.d.ts.map +1 -1
  168. package/dist/lib/primitive/text.d.ts +5 -0
  169. package/dist/lib/primitive/text.d.ts.map +1 -1
  170. package/dist/lib/shapes/_contour.cjs +61 -0
  171. package/dist/lib/shapes/_contour.d.ts +19 -0
  172. package/dist/lib/shapes/_contour.d.ts.map +1 -0
  173. package/dist/lib/shapes/_shared.cjs +70 -0
  174. package/dist/lib/shapes/_shared.d.ts +54 -0
  175. package/dist/lib/shapes/_shared.d.ts.map +1 -1
  176. package/dist/lib/shapes/arc.cjs +104 -0
  177. package/dist/lib/shapes/arc.d.ts +8 -0
  178. package/dist/lib/shapes/arc.d.ts.map +1 -0
  179. package/dist/lib/shapes/define.cjs +13 -0
  180. package/dist/lib/shapes/define.d.ts +13 -0
  181. package/dist/lib/shapes/define.d.ts.map +1 -0
  182. package/dist/lib/shapes/ellipse.cjs +15 -7
  183. package/dist/lib/shapes/ellipse.d.ts +5 -4
  184. package/dist/lib/shapes/ellipse.d.ts.map +1 -1
  185. package/dist/lib/shapes/index.cjs +12 -6
  186. package/dist/lib/shapes/index.d.ts +9 -6
  187. package/dist/lib/shapes/index.d.ts.map +1 -1
  188. package/dist/lib/shapes/polygon.cjs +104 -0
  189. package/dist/lib/shapes/polygon.d.ts +13 -0
  190. package/dist/lib/shapes/polygon.d.ts.map +1 -0
  191. package/dist/lib/shapes/rectangle.cjs +37 -8
  192. package/dist/lib/shapes/rectangle.d.ts +7 -5
  193. package/dist/lib/shapes/rectangle.d.ts.map +1 -1
  194. package/dist/lib/shapes/sector.cjs +143 -0
  195. package/dist/lib/shapes/sector.d.ts +9 -0
  196. package/dist/lib/shapes/sector.d.ts.map +1 -0
  197. package/dist/lib/shapes/star.cjs +113 -0
  198. package/dist/lib/shapes/star.d.ts +15 -0
  199. package/dist/lib/shapes/star.d.ts.map +1 -0
  200. package/dist/lib/shapes/types.d.ts +47 -14
  201. package/dist/lib/shapes/types.d.ts.map +1 -1
  202. package/package.json +2 -2
  203. package/dist/es/shapes/circle.d.ts +0 -8
  204. package/dist/es/shapes/circle.d.ts.map +0 -1
  205. package/dist/es/shapes/circle.js +0 -34
  206. package/dist/es/shapes/diamond.d.ts +0 -8
  207. package/dist/es/shapes/diamond.d.ts.map +0 -1
  208. package/dist/es/shapes/diamond.js +0 -66
  209. package/dist/lib/shapes/circle.cjs +0 -34
  210. package/dist/lib/shapes/circle.d.ts +0 -8
  211. package/dist/lib/shapes/circle.d.ts.map +0 -1
  212. package/dist/lib/shapes/diamond.cjs +0 -66
  213. package/dist/lib/shapes/diamond.d.ts +0 -8
  214. package/dist/lib/shapes/diamond.d.ts.map +0 -1
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
  import { ValueOf } from '../types';
3
3
  /**
4
4
  * 节点形状常量(用 const + ValueOf 派生,不用 TS enum)
5
- * @description rectangle 默认;circle/ellipse/diamond 几何语义:node 视觉边界包"text 矩形 + padding";rectangle: 视觉=text;circle: r=√(innerHalfW²+innerHalfH²);ellipse: rx=innerHalfW×√2,ry=innerHalfH×√2;diamond: halfA=2×innerHalfW,halfB=2×innerHalfH
5
+ * @description rectangle 默认;几何语义:node 视觉边界包"text 矩形 + padding";rectangle: 视觉=text;ellipse: rx=innerHalfW×√2,ry=innerHalfH×√2。circle 是 ellipse 等轴 preset 别名(`{ type:'ellipse', params:{ circumscribe:'equal' } }`,两轴 = 内框对角线半长 √(innerHalfW²+innerHalfH²));diamond 是 polygon 4 边形 45° preset 别名(`{ type:'polygon', params:{ sides:4, rotate:45 } }`)——circle / diamond 均保留为合法 shape 名向后兼容,编译期分别消解为 ellipse / polygon,不进 shape 注册表
6
6
  */
7
7
  export declare const NODE_SHAPES: {
8
8
  readonly rectangle: "rectangle";
@@ -122,7 +122,27 @@ export type IRNodeLabel = z.infer<typeof NodeLabelSchema>;
122
122
  export declare const NodeSchema: z.ZodObject<{
123
123
  type: z.ZodLiteral<"node">;
124
124
  id: z.ZodOptional<z.ZodString>;
125
- shape: z.ZodOptional<z.ZodString>;
125
+ shape: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
126
+ type: z.ZodString;
127
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import('./json').JsonValue, z.ZodTypeDef, import('./json').JsonValue>>>;
128
+ }, "strip", z.ZodTypeAny, {
129
+ type: string;
130
+ params?: Record<string, import('./json').JsonValue> | undefined;
131
+ }, {
132
+ type: string;
133
+ params?: Record<string, import('./json').JsonValue> | undefined;
134
+ }>]>>;
135
+ boundary: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodObject<{
136
+ type: z.ZodString;
137
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import('./json').JsonValue, z.ZodTypeDef, import('./json').JsonValue>>>;
138
+ }, "strip", z.ZodTypeAny, {
139
+ type: string;
140
+ params?: Record<string, import('./json').JsonValue> | undefined;
141
+ }, {
142
+ type: string;
143
+ params?: Record<string, import('./json').JsonValue> | undefined;
144
+ }>]>>;
145
+ meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodType<import('./json').JsonValue, z.ZodTypeDef, import('./json').JsonValue>>>;
126
146
  position: z.ZodUnion<[z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>, z.ZodType<import('./position').PolarPosition, z.ZodTypeDef, import('./position').PolarPosition>, z.ZodObject<{
127
147
  direction: z.ZodNativeEnum<{
128
148
  readonly above: "above";
@@ -315,7 +335,7 @@ export declare const NodeSchema: z.ZodObject<{
315
335
  dashed: z.ZodOptional<z.ZodBoolean>;
316
336
  dotted: z.ZodOptional<z.ZodBoolean>;
317
337
  dashArray: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
318
- roundedCorners: z.ZodOptional<z.ZodNumber>;
338
+ cornerRadius: z.ZodOptional<z.ZodNumber>;
319
339
  minimumWidth: z.ZodOptional<z.ZodNumber>;
320
340
  minimumHeight: z.ZodOptional<z.ZodNumber>;
321
341
  minimumSize: z.ZodOptional<z.ZodNumber>;
@@ -555,10 +575,17 @@ export declare const NodeSchema: z.ZodObject<{
555
575
  href: string;
556
576
  fit?: "fill" | "contain" | "cover" | undefined;
557
577
  } | undefined;
578
+ shape?: string | {
579
+ type: string;
580
+ params?: Record<string, import('./json').JsonValue> | undefined;
581
+ } | undefined;
558
582
  id?: string | undefined;
583
+ boundary?: string | {
584
+ type: string;
585
+ params?: Record<string, import('./json').JsonValue> | undefined;
586
+ } | undefined;
559
587
  color?: string | undefined;
560
588
  opacity?: number | undefined;
561
- shape?: string | undefined;
562
589
  text?: string | (string | {
563
590
  text: string;
564
591
  fill?: string | undefined;
@@ -617,7 +644,8 @@ export declare const NodeSchema: z.ZodObject<{
617
644
  dashPattern?: number[] | undefined;
618
645
  } | undefined;
619
646
  }[] | undefined;
620
- roundedCorners?: number | undefined;
647
+ cornerRadius?: number | undefined;
648
+ meta?: Record<string, import('./json').JsonValue> | undefined;
621
649
  stroke?: string | undefined;
622
650
  strokeWidth?: number | undefined;
623
651
  fillOpacity?: number | undefined;
@@ -680,10 +708,17 @@ export declare const NodeSchema: z.ZodObject<{
680
708
  href: string;
681
709
  fit?: "fill" | "contain" | "cover" | undefined;
682
710
  } | undefined;
711
+ shape?: string | {
712
+ type: string;
713
+ params?: Record<string, import('./json').JsonValue> | undefined;
714
+ } | undefined;
683
715
  id?: string | undefined;
716
+ boundary?: string | {
717
+ type: string;
718
+ params?: Record<string, import('./json').JsonValue> | undefined;
719
+ } | undefined;
684
720
  color?: string | undefined;
685
721
  opacity?: number | undefined;
686
- shape?: string | undefined;
687
722
  text?: string | (string | {
688
723
  text: string;
689
724
  fill?: string | undefined;
@@ -742,7 +777,8 @@ export declare const NodeSchema: z.ZodObject<{
742
777
  dashPattern?: number[] | undefined;
743
778
  } | undefined;
744
779
  }[] | undefined;
745
- roundedCorners?: number | undefined;
780
+ cornerRadius?: number | undefined;
781
+ meta?: Record<string, import('./json').JsonValue> | undefined;
746
782
  stroke?: string | undefined;
747
783
  strokeWidth?: number | undefined;
748
784
  fillOpacity?: number | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/ir/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAMxC;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEzD,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DzB,CAAC;AAEJ,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6MpB,CAAC;AAEJ,sCAAsC;AACtC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/ir/node.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AASxC;;;GAGG;AACH,eAAO,MAAM,WAAW;;;;;CAKd,CAAC;AAEX;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC,OAAO,WAAW,CAAC,CAAC;AAE3D;;;;GAIG;AACH,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;AAEzD,+BAA+B;AAC/B,eAAO,MAAM,gBAAgB;;;;CAInB,CAAC;AAEX,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2DzB,CAAC;AAEJ,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoNpB,CAAC;AAEJ,sCAAsC;AACtC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}
@@ -2,6 +2,9 @@ import { PositionSchema } from "./position/position.js";
2
2
  import { PolarPositionSchema } from "./position/polar-position.js";
3
3
  import { AT_DIRECTIONS, AtPositionSchema } from "./position/at-position.js";
4
4
  import { OffsetPositionSchema } from "./position/offset-position.js";
5
+ import { JsonObjectSchema } from "./json.js";
6
+ import { ShapeRefSchema } from "./shape.js";
7
+ import { BoundarySchema } from "./boundary.js";
5
8
  import { BetweenPositionSchema } from "./position/between-position.js";
6
9
  import { FontSchema } from "./font.js";
7
10
  import { PaintSpecSchema } from "./paint.js";
@@ -10,7 +13,7 @@ import { z } from "zod";
10
13
  //#region src/ir/node.ts
11
14
  /**
12
15
  * 节点形状常量(用 const + ValueOf 派生,不用 TS enum)
13
- * @description rectangle 默认;circle/ellipse/diamond 几何语义:node 视觉边界包"text 矩形 + padding";rectangle: 视觉=text;circle: r=√(innerHalfW²+innerHalfH²);ellipse: rx=innerHalfW×√2,ry=innerHalfH×√2;diamond: halfA=2×innerHalfW,halfB=2×innerHalfH
16
+ * @description rectangle 默认;几何语义:node 视觉边界包"text 矩形 + padding";rectangle: 视觉=text;ellipse: rx=innerHalfW×√2,ry=innerHalfH×√2。circle 是 ellipse 等轴 preset 别名(`{ type:'ellipse', params:{ circumscribe:'equal' } }`,两轴 = 内框对角线半长 √(innerHalfW²+innerHalfH²));diamond 是 polygon 4 边形 45° preset 别名(`{ type:'polygon', params:{ sides:4, rotate:45 } }`)——circle / diamond 均保留为合法 shape 名向后兼容,编译期分别消解为 ellipse / polygon,不进 shape 注册表
14
17
  */
15
18
  var NODE_SHAPES = {
16
19
  rectangle: "rectangle",
@@ -50,7 +53,9 @@ var NodeLabelSchema = z.object({
50
53
  var NodeSchema = z.object({
51
54
  type: z.literal("node").describe("Discriminator marking this child as a node"),
52
55
  id: z.string().min(1).optional().describe("Optional unique id; required if any path needs to reference this node by string"),
53
- shape: z.string().min(1).optional().describe("Node visual shape name; built-in `rectangle` / `circle` / `ellipse` / `diamond`, or an extension shape registered via `CompileOptions.shapes`. Any non-empty string passes schema validation; unregistered names are rejected at compile time. Defaults to `rectangle`. The boundary fully contains text + padding (circumscribed for circle / ellipse / diamond)."),
56
+ shape: z.union([z.string().min(1), ShapeRefSchema]).optional().describe("Node visual shape: a bare name string (parameterless, e.g. \"rectangle\") or `{ type, params }` carrying a JSON params object (e.g. `{ type:\"sector\", params:{ innerRadius, outerRadius, startAngle, endAngle } }`). Built-in or registered via CompileOptions.shapes; unregistered type rejected at compile time. Defaults to \"rectangle\"."),
57
+ boundary: BoundarySchema.optional().describe("Default connection surface for edges meeting this node (see BoundarySchema). Defaults to \"shape\" (use the visual shape). Per-edge overridable via the edge endpoint `boundary` field."),
58
+ meta: JsonObjectSchema.optional().describe("Opaque provenance metadata carried by this element (e.g. a Tier 2 lowering tagging which datum / series / layer it came from). Provenance passthrough: preserved verbatim into the Scene primitive(s) this element emits, ignored by renderers, and never interpreted by the compiler — it does not affect layout, connection, style, or bounding box. Must be a JSON object (fully serializable). Not inherited across scopes; not part of the every-X style defaults."),
54
59
  position: z.union([
55
60
  PositionSchema,
56
61
  PolarPositionSchema,
@@ -72,7 +77,7 @@ var NodeSchema = z.object({
72
77
  dashed: z.boolean().optional().describe("Border style preset: dashed line (TikZ `dashed`); compiled to a default dash pattern. `dashArray` takes precedence."),
73
78
  dotted: z.boolean().optional().describe("Border style preset: dotted line (TikZ `dotted`); compiled to a default dot pattern. `dashArray` and `dashed` take precedence."),
74
79
  dashArray: z.array(z.number().finite().nonnegative()).min(1).optional().describe("Explicit stroke dash pattern lengths in user units (e.g. [4, 2]); overrides `dashed` / `dotted`."),
75
- roundedCorners: z.number().nonnegative().optional().describe("Corner radius in user units; only effective on `rectangle` shape."),
80
+ cornerRadius: z.number().nonnegative().optional().describe("Migration-period top-level corner radius in user units; only effective on `rectangle` shape. Prefer the shape params form `{ type: \"rectangle\", params: { cornerRadius } }`."),
76
81
  minimumWidth: z.number().nonnegative().optional().describe("Minimum visual border width in user units; floors the bounding box width."),
77
82
  minimumHeight: z.number().nonnegative().optional().describe("Minimum visual border height in user units; floors the bounding box height."),
78
83
  minimumSize: z.number().nonnegative().optional().describe("Symmetric alias for `minimumWidth` + `minimumHeight`; axis-specific fields take precedence."),
@@ -54,18 +54,18 @@ export declare const ArrowEndDetailSchema: z.ZodObject<{
54
54
  }, "strip", z.ZodTypeAny, {
55
55
  length?: number | undefined;
56
56
  fill?: string | undefined;
57
+ shape?: string | undefined;
57
58
  color?: string | undefined;
58
59
  opacity?: number | undefined;
59
- shape?: string | undefined;
60
60
  lineWidth?: number | undefined;
61
61
  width?: number | undefined;
62
62
  scale?: number | undefined;
63
63
  }, {
64
64
  length?: number | undefined;
65
65
  fill?: string | undefined;
66
+ shape?: string | undefined;
66
67
  color?: string | undefined;
67
68
  opacity?: number | undefined;
68
- shape?: string | undefined;
69
69
  lineWidth?: number | undefined;
70
70
  width?: number | undefined;
71
71
  scale?: number | undefined;
@@ -96,18 +96,18 @@ export declare const ArrowDetailSchema: z.ZodObject<{
96
96
  }, "strip", z.ZodTypeAny, {
97
97
  length?: number | undefined;
98
98
  fill?: string | undefined;
99
+ shape?: string | undefined;
99
100
  color?: string | undefined;
100
101
  opacity?: number | undefined;
101
- shape?: string | undefined;
102
102
  lineWidth?: number | undefined;
103
103
  width?: number | undefined;
104
104
  scale?: number | undefined;
105
105
  }, {
106
106
  length?: number | undefined;
107
107
  fill?: string | undefined;
108
+ shape?: string | undefined;
108
109
  color?: string | undefined;
109
110
  opacity?: number | undefined;
110
- shape?: string | undefined;
111
111
  lineWidth?: number | undefined;
112
112
  width?: number | undefined;
113
113
  scale?: number | undefined;
@@ -124,18 +124,18 @@ export declare const ArrowDetailSchema: z.ZodObject<{
124
124
  }, "strip", z.ZodTypeAny, {
125
125
  length?: number | undefined;
126
126
  fill?: string | undefined;
127
+ shape?: string | undefined;
127
128
  color?: string | undefined;
128
129
  opacity?: number | undefined;
129
- shape?: string | undefined;
130
130
  lineWidth?: number | undefined;
131
131
  width?: number | undefined;
132
132
  scale?: number | undefined;
133
133
  }, {
134
134
  length?: number | undefined;
135
135
  fill?: string | undefined;
136
+ shape?: string | undefined;
136
137
  color?: string | undefined;
137
138
  opacity?: number | undefined;
138
- shape?: string | undefined;
139
139
  lineWidth?: number | undefined;
140
140
  width?: number | undefined;
141
141
  scale?: number | undefined;
@@ -143,18 +143,18 @@ export declare const ArrowDetailSchema: z.ZodObject<{
143
143
  }, "strip", z.ZodTypeAny, {
144
144
  length?: number | undefined;
145
145
  fill?: string | undefined;
146
+ shape?: string | undefined;
146
147
  color?: string | undefined;
147
148
  opacity?: number | undefined;
148
- shape?: string | undefined;
149
149
  lineWidth?: number | undefined;
150
150
  width?: number | undefined;
151
151
  scale?: number | undefined;
152
152
  start?: {
153
153
  length?: number | undefined;
154
154
  fill?: string | undefined;
155
+ shape?: string | undefined;
155
156
  color?: string | undefined;
156
157
  opacity?: number | undefined;
157
- shape?: string | undefined;
158
158
  lineWidth?: number | undefined;
159
159
  width?: number | undefined;
160
160
  scale?: number | undefined;
@@ -162,9 +162,9 @@ export declare const ArrowDetailSchema: z.ZodObject<{
162
162
  end?: {
163
163
  length?: number | undefined;
164
164
  fill?: string | undefined;
165
+ shape?: string | undefined;
165
166
  color?: string | undefined;
166
167
  opacity?: number | undefined;
167
- shape?: string | undefined;
168
168
  lineWidth?: number | undefined;
169
169
  width?: number | undefined;
170
170
  scale?: number | undefined;
@@ -172,18 +172,18 @@ export declare const ArrowDetailSchema: z.ZodObject<{
172
172
  }, {
173
173
  length?: number | undefined;
174
174
  fill?: string | undefined;
175
+ shape?: string | undefined;
175
176
  color?: string | undefined;
176
177
  opacity?: number | undefined;
177
- shape?: string | undefined;
178
178
  lineWidth?: number | undefined;
179
179
  width?: number | undefined;
180
180
  scale?: number | undefined;
181
181
  start?: {
182
182
  length?: number | undefined;
183
183
  fill?: string | undefined;
184
+ shape?: string | undefined;
184
185
  color?: string | undefined;
185
186
  opacity?: number | undefined;
186
- shape?: string | undefined;
187
187
  lineWidth?: number | undefined;
188
188
  width?: number | undefined;
189
189
  scale?: number | undefined;
@@ -191,9 +191,9 @@ export declare const ArrowDetailSchema: z.ZodObject<{
191
191
  end?: {
192
192
  length?: number | undefined;
193
193
  fill?: string | undefined;
194
+ shape?: string | undefined;
194
195
  color?: string | undefined;
195
196
  opacity?: number | undefined;
196
- shape?: string | undefined;
197
197
  lineWidth?: number | undefined;
198
198
  width?: number | undefined;
199
199
  scale?: number | undefined;