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

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 (83) hide show
  1. package/dist/es/compile/compile.d.ts.map +1 -1
  2. package/dist/es/compile/compile.js +10 -4
  3. package/dist/es/compile/node.d.ts +19 -4
  4. package/dist/es/compile/node.d.ts.map +1 -1
  5. package/dist/es/compile/node.js +159 -29
  6. package/dist/es/compile/paint.d.ts +16 -0
  7. package/dist/es/compile/paint.d.ts.map +1 -0
  8. package/dist/es/compile/paint.js +37 -0
  9. package/dist/es/compile/path/index.d.ts +3 -0
  10. package/dist/es/compile/path/index.d.ts.map +1 -1
  11. package/dist/es/compile/path/index.js +2 -1
  12. package/dist/es/index.d.ts +3 -3
  13. package/dist/es/index.d.ts.map +1 -1
  14. package/dist/es/index.js +2 -1
  15. package/dist/es/ir/index.d.ts +1 -0
  16. package/dist/es/ir/index.d.ts.map +1 -1
  17. package/dist/es/ir/node.d.ts +262 -9
  18. package/dist/es/ir/node.d.ts.map +1 -1
  19. package/dist/es/ir/node.js +9 -2
  20. package/dist/es/ir/paint.d.ts +132 -0
  21. package/dist/es/ir/paint.d.ts.map +1 -0
  22. package/dist/es/ir/paint.js +53 -0
  23. package/dist/es/ir/path/arrow.d.ts +24 -24
  24. package/dist/es/ir/path/path.d.ts +198 -37
  25. package/dist/es/ir/path/path.d.ts.map +1 -1
  26. package/dist/es/ir/path/path.js +2 -1
  27. package/dist/es/ir/scope.d.ts +1187 -165
  28. package/dist/es/ir/scope.d.ts.map +1 -1
  29. package/dist/es/ir/scope.js +2 -1
  30. package/dist/es/primitive/ellipse.d.ts +3 -5
  31. package/dist/es/primitive/ellipse.d.ts.map +1 -1
  32. package/dist/es/primitive/paint.d.ts +24 -0
  33. package/dist/es/primitive/paint.d.ts.map +1 -0
  34. package/dist/es/primitive/path.d.ts +3 -2
  35. package/dist/es/primitive/path.d.ts.map +1 -1
  36. package/dist/es/primitive/rect.d.ts +3 -2
  37. package/dist/es/primitive/rect.d.ts.map +1 -1
  38. package/dist/es/primitive/scene.d.ts +4 -0
  39. package/dist/es/primitive/scene.d.ts.map +1 -1
  40. package/dist/es/shapes/types.d.ts +2 -2
  41. package/dist/es/shapes/types.d.ts.map +1 -1
  42. package/dist/lib/compile/compile.cjs +9 -3
  43. package/dist/lib/compile/compile.d.ts.map +1 -1
  44. package/dist/lib/compile/node.cjs +159 -28
  45. package/dist/lib/compile/node.d.ts +19 -4
  46. package/dist/lib/compile/node.d.ts.map +1 -1
  47. package/dist/lib/compile/paint.cjs +37 -0
  48. package/dist/lib/compile/paint.d.ts +16 -0
  49. package/dist/lib/compile/paint.d.ts.map +1 -0
  50. package/dist/lib/compile/path/index.cjs +2 -1
  51. package/dist/lib/compile/path/index.d.ts +3 -0
  52. package/dist/lib/compile/path/index.d.ts.map +1 -1
  53. package/dist/lib/index.cjs +3 -0
  54. package/dist/lib/index.d.ts +3 -3
  55. package/dist/lib/index.d.ts.map +1 -1
  56. package/dist/lib/ir/index.d.ts +1 -0
  57. package/dist/lib/ir/index.d.ts.map +1 -1
  58. package/dist/lib/ir/node.cjs +9 -2
  59. package/dist/lib/ir/node.d.ts +262 -9
  60. package/dist/lib/ir/node.d.ts.map +1 -1
  61. package/dist/lib/ir/paint.cjs +54 -0
  62. package/dist/lib/ir/paint.d.ts +132 -0
  63. package/dist/lib/ir/paint.d.ts.map +1 -0
  64. package/dist/lib/ir/path/arrow.d.ts +24 -24
  65. package/dist/lib/ir/path/path.cjs +2 -1
  66. package/dist/lib/ir/path/path.d.ts +198 -37
  67. package/dist/lib/ir/path/path.d.ts.map +1 -1
  68. package/dist/lib/ir/scope.cjs +2 -1
  69. package/dist/lib/ir/scope.d.ts +1187 -165
  70. package/dist/lib/ir/scope.d.ts.map +1 -1
  71. package/dist/lib/primitive/ellipse.d.ts +3 -5
  72. package/dist/lib/primitive/ellipse.d.ts.map +1 -1
  73. package/dist/lib/primitive/paint.d.ts +24 -0
  74. package/dist/lib/primitive/paint.d.ts.map +1 -0
  75. package/dist/lib/primitive/path.d.ts +3 -2
  76. package/dist/lib/primitive/path.d.ts.map +1 -1
  77. package/dist/lib/primitive/rect.d.ts +3 -2
  78. package/dist/lib/primitive/rect.d.ts.map +1 -1
  79. package/dist/lib/primitive/scene.d.ts +4 -0
  80. package/dist/lib/primitive/scene.d.ts.map +1 -1
  81. package/dist/lib/shapes/types.d.ts +2 -2
  82. package/dist/lib/shapes/types.d.ts.map +1 -1
  83. package/package.json +1 -1
@@ -0,0 +1,37 @@
1
+ //#region src/compile/paint.ts
2
+ /**
3
+ * 建一个 paint 登记表
4
+ * @description resolve 对相同 PaintSpec(结构化 JSON 深比较)合并为一个资源、派稳定 id(`paint-1` / `paint-2`…,首见序)。
5
+ * 同一份 IR 编译两次 → 同 id(快照稳定、SSR / CSR 一致)。SVG id 跨实例唯一性由 react adapter 加 useId 前缀解决。
6
+ */
7
+ var createPaintRegistry = () => {
8
+ const idByKey = /* @__PURE__ */ new Map();
9
+ const list = [];
10
+ let counter = 0;
11
+ const resolve = (fill) => {
12
+ if (fill === void 0) return void 0;
13
+ if (typeof fill === "string") return fill;
14
+ const key = JSON.stringify(fill);
15
+ let id = idByKey.get(key);
16
+ if (id === void 0) {
17
+ counter += 1;
18
+ id = `paint-${counter}`;
19
+ idByKey.set(key, id);
20
+ list.push({
21
+ kind: "paint",
22
+ id,
23
+ spec: fill
24
+ });
25
+ }
26
+ return {
27
+ kind: "resourceRef",
28
+ id
29
+ };
30
+ };
31
+ return {
32
+ resolve,
33
+ resources: () => list
34
+ };
35
+ };
36
+ //#endregion
37
+ exports.createPaintRegistry = createPaintRegistry;
@@ -0,0 +1,16 @@
1
+ import { IRPaintSpec } from '../ir';
2
+ import { PaintValue, SceneResource } from '../primitive';
3
+ /** fill 解析器:纯色 string 原样返回;PaintSpec 去重 + 派稳定 id → `{ kind:'resourceRef', id }`;undefined 透传 */
4
+ export type PaintResolver = (fill: string | IRPaintSpec | undefined) => PaintValue | undefined;
5
+ /** paint 资源登记表:编译期收集 PaintSpec、去重派 id,最后产出 Scene.resources */
6
+ export type PaintRegistry = {
7
+ resolve: PaintResolver;
8
+ resources: () => Array<SceneResource>;
9
+ };
10
+ /**
11
+ * 建一个 paint 登记表
12
+ * @description resolve 对相同 PaintSpec(结构化 JSON 深比较)合并为一个资源、派稳定 id(`paint-1` / `paint-2`…,首见序)。
13
+ * 同一份 IR 编译两次 → 同 id(快照稳定、SSR / CSR 一致)。SVG id 跨实例唯一性由 react adapter 加 useId 前缀解决。
14
+ */
15
+ export declare const createPaintRegistry: () => PaintRegistry;
16
+ //# sourceMappingURL=paint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paint.d.ts","sourceRoot":"","sources":["../../../src/compile/paint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAE9D,gGAAgG;AAChG,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC;AAE/F,8DAA8D;AAC9D,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,MAAM,KAAK,CAAC,aAAa,CAAC,CAAC;CACvC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,QAAO,aAkBtC,CAAC"}
@@ -39,6 +39,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
39
39
  });
40
40
  };
41
41
  const scopeChain = warnHook.scopeChain ?? [];
42
+ const resolveFill = warnHook.resolveFill ?? ((f) => typeof f === "string" || f === void 0 ? f : void 0);
42
43
  const steps = require_relative.normalizeRelativeTargets(path.children, nameStack, scopeChain);
43
44
  if (steps.length < 2) {
44
45
  warn("PATH_TOO_SHORT", `Path requires at least 2 steps (got ${steps.length}); the entire path is skipped`, "children");
@@ -373,7 +374,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
373
374
  const baseProps = {
374
375
  stroke: path.stroke ?? "currentColor",
375
376
  strokeWidth,
376
- fill: path.fill ?? "none",
377
+ fill: resolveFill(path.fill) ?? "none",
377
378
  fillRule: path.fillRule,
378
379
  dashPattern: path.dashPattern,
379
380
  strokeLinecap: path.lineCap,
@@ -1,3 +1,4 @@
1
+ import { PaintResolver } from '../paint';
1
2
  import { IRPath, IRPosition } from '../../ir';
2
3
  import { ScenePrimitive, Transform } from '../../primitive';
3
4
  import { NameStack } from '../name-stack';
@@ -18,6 +19,8 @@ export type EmitPathWarnHook = {
18
19
  * 投影回全局;顶层 path / 无 scope chain 时为 `[]`(恒等,等价 v0.1 行为)
19
20
  */
20
21
  scopeChain?: ReadonlyArray<Transform>;
22
+ /** fill 解析器(PaintSpec → resourceRef + 登记资源);缺省时纯色透传、PaintSpec 退化为无填充 */
23
+ resolveFill?: PaintResolver;
21
24
  };
22
25
  /**
23
26
  * IR Path → PathPrim
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/compile/path/index.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EAGX,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAEV,cAAc,EACd,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,iBAAiB,CAAC;AAkCtE,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iCAAiC;IACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,WAAW,SAAS,EACpB,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC5B,cAAa,YAA+B,EAC5C,WAAU,gBAAqB,KAC9B;IAAE,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CAAE,GAAG,IAkhBrE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/compile/path/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAY9C,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EAGX,MAAM,UAAU,CAAC;AAClB,OAAO,KAAK,EAEV,cAAc,EACd,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,iBAAiB,CAAC;AAkCtE,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iCAAiC;IACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,wEAAwE;IACxE,WAAW,CAAC,EAAE,aAAa,CAAC;CAC7B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,WAAW,SAAS,EACpB,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC5B,cAAa,YAA+B,EAC5C,WAAU,gBAAqB,KAC9B;IAAE,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CAAE,GAAG,IAqhBrE,CAAC"}
@@ -4,6 +4,7 @@ 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
6
  const require_font = require("./ir/font.cjs");
7
+ const require_paint = require("./ir/paint.cjs");
7
8
  const require_text = require("./ir/text.cjs");
8
9
  const require_arrow = require("./ir/path/arrow.cjs");
9
10
  const require__transform = require("./geometry/_transform.cjs");
@@ -53,6 +54,7 @@ exports.DrawWay = require_parseWay.DrawWay;
53
54
  exports.EllipsePathStepSchema = require_step.EllipsePathStepSchema;
54
55
  exports.FoldStepSchema = require_step.FoldStepSchema;
55
56
  exports.FontSchema = require_font.FontSchema;
57
+ exports.GradientStopSchema = require_paint.GradientStopSchema;
56
58
  exports.HOLLOW_ARROW_SHAPES = require_arrow.HOLLOW_ARROW_SHAPES;
57
59
  exports.LabelDefaultSchema = require_scope.LabelDefaultSchema;
58
60
  exports.LineSpecSchema = require_text.LineSpecSchema;
@@ -65,6 +67,7 @@ exports.NodeLabelSchema = require_node.NodeLabelSchema;
65
67
  exports.NodeSchema = require_node.NodeSchema;
66
68
  exports.NodeTargetSchema = require_target.NodeTargetSchema;
67
69
  exports.OffsetPositionSchema = require_offset_position.OffsetPositionSchema;
70
+ exports.PaintSpecSchema = require_paint.PaintSpecSchema;
68
71
  exports.PathDefaultSchema = require_scope.PathDefaultSchema;
69
72
  exports.PathSchema = require_path.PathSchema;
70
73
  exports.PolarPositionSchema = require_polar_position.PolarPositionSchema;
@@ -2,14 +2,14 @@
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, AnchorRefSchema, NodeTargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, RectangleStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ScopeSchema, NodeDefaultSchema, PathDefaultSchema, LabelDefaultSchema, ArrowDefaultSchema, TransformSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, } from './ir';
6
- export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirection, IRTarget, IRAnchorRef, IRNodeTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRRectangleStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRScope, IRNodeDefault, IRPathDefault, IRLabelDefault, IRArrowDefault, StyleChannel, IRTransform, IRTranslateTransform, IRPolarTranslateTransform, IRAtTranslateTransform, IROffsetTranslateTransform, IRRotateTransform, IRScaleTransform, IRChild, IR, ArrowShape, IRArrowDetail, IRArrowEndDetail, NodeShape, BuiltinShapeName, NodeTextAlign, } from './ir';
5
+ export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AT_DIRECTIONS, TargetSchema, AnchorRefSchema, NodeTargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, RectangleStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ScopeSchema, NodeDefaultSchema, PathDefaultSchema, LabelDefaultSchema, ArrowDefaultSchema, TransformSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, PaintSpecSchema, GradientStopSchema, } from './ir';
6
+ export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirection, IRTarget, IRAnchorRef, IRNodeTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRRectangleStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRScope, IRNodeDefault, IRPathDefault, IRLabelDefault, IRArrowDefault, StyleChannel, IRTransform, IRTranslateTransform, IRPolarTranslateTransform, IRAtTranslateTransform, IROffsetTranslateTransform, IRRotateTransform, IRScaleTransform, IRChild, IR, ArrowShape, IRArrowDetail, IRArrowEndDetail, NodeShape, BuiltinShapeName, NodeTextAlign, IRPaintSpec, IRGradientStop, } from './ir';
7
7
  export { ARROW_SHAPES, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES, ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, NODE_SHAPES, NODE_TEXT_ALIGNS, } from './ir';
8
8
  export type { ScenePrimitive, RectPrim, EllipsePrim, TextPrim, TextLine, PathPrim, PathCommand,
9
9
  /** 7 个 named PathCommand 分支(便于 wrapper / Pick<>) */
10
10
  MovePathCommand, LinePathCommand, QuadPathCommand, CubicPathCommand, ArcPathCommand, EllipseArcPathCommand, ClosePathCommand, ArrowEndSpec, GroupPrim, Transform,
11
11
  /** 3 个 named Transform 分支 */
12
- TranslateTransform, RotateTransform, ScaleTransform, Layout, Scene, } from './primitive';
12
+ TranslateTransform, RotateTransform, ScaleTransform, Layout, Scene, PaintValue, SceneResource, } from './primitive';
13
13
  export type { FontSpec, TextMetrics, TextMeasurer, CompileOptions, CompileWarning, } from './compile';
14
14
  export { computeLayout, fallbackMeasurer, compileToScene } from './compile';
15
15
  export type { WayItem, WayDSL, WayCycle, WayVia, WayRelativeItem, WayLabel, WayLabelOp, } from './parsers';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export * from './position';
2
2
  export * from './font';
3
+ export * from './paint';
3
4
  export * from './text';
4
5
  export * from './path';
5
6
  export * from './node';
@@ -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,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,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,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,SAAS,CAAC"}
@@ -3,6 +3,7 @@ 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
5
  const require_font = require("./font.cjs");
6
+ const require_paint = require("./paint.cjs");
6
7
  const require_text = require("./text.cjs");
7
8
  let zod = require("zod");
8
9
  //#region src/ir/node.ts
@@ -38,7 +39,12 @@ var NodeLabelSchema = zod.z.object({
38
39
  "radial",
39
40
  "tangent"
40
41
  ]), zod.z.number()]).optional().describe("Rotate the label text around its own center. `none` (default) = horizontal; `radial` = along the node-center -> label-center direction; `tangent` = radial + 90 deg; a number = explicit degrees (screen y-down: 0 = +x, 90 = +y). Only changes text orientation, not placement."),
41
- keepUpright: zod.z.boolean().optional().describe("When true, flips the rotated label 180 deg if it would otherwise read upside-down (more than 90 deg from upright). Default false (strict geometric angle).")
42
+ keepUpright: zod.z.boolean().optional().describe("When true, flips the rotated label 180 deg if it would otherwise read upside-down (more than 90 deg from upright). Default false (strict geometric angle)."),
43
+ pin: zod.z.union([zod.z.boolean(), zod.z.object({
44
+ stroke: zod.z.string().optional().describe("Leader line color; defaults to the label color / currentColor"),
45
+ strokeWidth: zod.z.number().finite().positive().optional().describe("Leader line width (user units); default 1"),
46
+ dashPattern: zod.z.array(zod.z.number().finite()).optional().describe("Leader dash pattern (e.g. [2, 2])")
47
+ })]).optional().describe("Draw a leader line from the node border to the label (TikZ `pin`). `true` = default thin solid line; an object = leader with style overrides (`stroke` / `strokeWidth` / `dashPattern`); omitted / `false` = no leader. Label placement is unchanged either way.")
42
48
  }).describe("Extra text attached around a node border. Multiple labels supported via array form on `Node.label`.");
43
49
  var NodeSchema = zod.z.object({
44
50
  type: zod.z.literal("node").describe("Discriminator marking this child as a node"),
@@ -54,8 +60,9 @@ var NodeSchema = zod.z.object({
54
60
  text: require_text.TextBlockSchema.optional(),
55
61
  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)."),
56
62
  lineHeight: zod.z.number().positive().optional().describe("Line height in user units; falls back to `font.size × 1.2` when omitted."),
63
+ maxTextWidth: zod.z.number().finite().positive().optional().describe("Max line width before wrapping (user units). The text box shrinks to the actual longest line for short text — this is a wrap threshold, NOT a fixed paragraph width. Western text wraps on word boundaries, CJK per character. Omitted = no auto-wrap (only manual line breaks)."),
57
64
  color: zod.z.string().optional().describe("Master color (TikZ `color=`). When set, stroke / fill / text default to it unless individually overridden, and it cascades to the inner text and edge labels. Individual fields (stroke / fill / textColor) always win over this within the same node."),
58
- fill: zod.z.string().optional().describe("Background color of the node shape; any CSS color (e.g. \"lightblue\", \"#fafafa\", \"rgba(...)\")"),
65
+ fill: zod.z.union([zod.z.string(), require_paint.PaintSpecSchema]).optional().describe("Node background paint: any CSS color string (e.g. \"lightblue\", \"#fafafa\", \"rgba(...)\") or a PaintSpec (linear / radial gradient, pattern, or image)."),
59
66
  fillOpacity: zod.z.number().min(0).max(1).optional().describe("Fill opacity 0..1; affects only the shape fill, leaves stroke / text alone."),
60
67
  stroke: zod.z.string().optional().describe("Border color of the node shape; any CSS color. Defaults to currentColor when omitted"),
61
68
  drawOpacity: zod.z.number().min(0).max(1).optional().describe("Stroke opacity 0..1 (TikZ `draw opacity`); affects only the border."),
@@ -65,6 +65,19 @@ export declare const NodeLabelSchema: z.ZodObject<{
65
65
  }>>;
66
66
  rotate: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["none", "radial", "tangent"]>, z.ZodNumber]>>;
67
67
  keepUpright: z.ZodOptional<z.ZodBoolean>;
68
+ pin: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
69
+ stroke: z.ZodOptional<z.ZodString>;
70
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
71
+ dashPattern: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
72
+ }, "strip", z.ZodTypeAny, {
73
+ stroke?: string | undefined;
74
+ strokeWidth?: number | undefined;
75
+ dashPattern?: number[] | undefined;
76
+ }, {
77
+ stroke?: string | undefined;
78
+ strokeWidth?: number | undefined;
79
+ dashPattern?: number[] | undefined;
80
+ }>]>>;
68
81
  }, "strip", z.ZodTypeAny, {
69
82
  text: string;
70
83
  distance?: number | undefined;
@@ -79,6 +92,11 @@ export declare const NodeLabelSchema: z.ZodObject<{
79
92
  textColor?: string | undefined;
80
93
  rotate?: number | "none" | "radial" | "tangent" | undefined;
81
94
  keepUpright?: boolean | undefined;
95
+ pin?: boolean | {
96
+ stroke?: string | undefined;
97
+ strokeWidth?: number | undefined;
98
+ dashPattern?: number[] | undefined;
99
+ } | undefined;
82
100
  }, {
83
101
  text: string;
84
102
  distance?: number | undefined;
@@ -93,6 +111,11 @@ export declare const NodeLabelSchema: z.ZodObject<{
93
111
  textColor?: string | undefined;
94
112
  rotate?: number | "none" | "radial" | "tangent" | undefined;
95
113
  keepUpright?: boolean | undefined;
114
+ pin?: boolean | {
115
+ stroke?: string | undefined;
116
+ strokeWidth?: number | undefined;
117
+ dashPattern?: number[] | undefined;
118
+ } | undefined;
96
119
  }>;
97
120
  /** Node label IR 类型 */
98
121
  export type IRNodeLabel = z.infer<typeof NodeLabelSchema>;
@@ -179,8 +202,112 @@ export declare const NodeSchema: z.ZodObject<{
179
202
  readonly right: "right";
180
203
  }>>;
181
204
  lineHeight: z.ZodOptional<z.ZodNumber>;
205
+ maxTextWidth: z.ZodOptional<z.ZodNumber>;
182
206
  color: z.ZodOptional<z.ZodString>;
183
- fill: z.ZodOptional<z.ZodString>;
207
+ fill: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
208
+ type: z.ZodLiteral<"linearGradient">;
209
+ stops: z.ZodArray<z.ZodObject<{
210
+ offset: z.ZodNumber;
211
+ color: z.ZodString;
212
+ opacity: z.ZodOptional<z.ZodNumber>;
213
+ }, "strip", z.ZodTypeAny, {
214
+ offset: number;
215
+ color: string;
216
+ opacity?: number | undefined;
217
+ }, {
218
+ offset: number;
219
+ color: string;
220
+ opacity?: number | undefined;
221
+ }>, "many">;
222
+ angle: z.ZodOptional<z.ZodNumber>;
223
+ }, "strip", z.ZodTypeAny, {
224
+ type: "linearGradient";
225
+ stops: {
226
+ offset: number;
227
+ color: string;
228
+ opacity?: number | undefined;
229
+ }[];
230
+ angle?: number | undefined;
231
+ }, {
232
+ type: "linearGradient";
233
+ stops: {
234
+ offset: number;
235
+ color: string;
236
+ opacity?: number | undefined;
237
+ }[];
238
+ angle?: number | undefined;
239
+ }>, z.ZodObject<{
240
+ type: z.ZodLiteral<"radialGradient">;
241
+ stops: z.ZodArray<z.ZodObject<{
242
+ offset: z.ZodNumber;
243
+ color: z.ZodString;
244
+ opacity: z.ZodOptional<z.ZodNumber>;
245
+ }, "strip", z.ZodTypeAny, {
246
+ offset: number;
247
+ color: string;
248
+ opacity?: number | undefined;
249
+ }, {
250
+ offset: number;
251
+ color: string;
252
+ opacity?: number | undefined;
253
+ }>, "many">;
254
+ center: z.ZodOptional<z.ZodTuple<[z.ZodNumber, z.ZodNumber], null>>;
255
+ radius: z.ZodOptional<z.ZodNumber>;
256
+ }, "strip", z.ZodTypeAny, {
257
+ type: "radialGradient";
258
+ stops: {
259
+ offset: number;
260
+ color: string;
261
+ opacity?: number | undefined;
262
+ }[];
263
+ radius?: number | undefined;
264
+ center?: [number, number] | undefined;
265
+ }, {
266
+ type: "radialGradient";
267
+ stops: {
268
+ offset: number;
269
+ color: string;
270
+ opacity?: number | undefined;
271
+ }[];
272
+ radius?: number | undefined;
273
+ center?: [number, number] | undefined;
274
+ }>, z.ZodObject<{
275
+ type: z.ZodLiteral<"pattern">;
276
+ shape: z.ZodEnum<["lines", "dots", "grid"]>;
277
+ color: z.ZodOptional<z.ZodString>;
278
+ background: z.ZodOptional<z.ZodString>;
279
+ size: z.ZodOptional<z.ZodNumber>;
280
+ lineWidth: z.ZodOptional<z.ZodNumber>;
281
+ rotation: z.ZodOptional<z.ZodNumber>;
282
+ }, "strip", z.ZodTypeAny, {
283
+ type: "pattern";
284
+ shape: "lines" | "dots" | "grid";
285
+ size?: number | undefined;
286
+ color?: string | undefined;
287
+ background?: string | undefined;
288
+ lineWidth?: number | undefined;
289
+ rotation?: number | undefined;
290
+ }, {
291
+ type: "pattern";
292
+ shape: "lines" | "dots" | "grid";
293
+ size?: number | undefined;
294
+ color?: string | undefined;
295
+ background?: string | undefined;
296
+ lineWidth?: number | undefined;
297
+ rotation?: number | undefined;
298
+ }>, z.ZodObject<{
299
+ type: z.ZodLiteral<"image">;
300
+ href: z.ZodString;
301
+ fit: z.ZodOptional<z.ZodEnum<["fill", "contain", "cover"]>>;
302
+ }, "strip", z.ZodTypeAny, {
303
+ type: "image";
304
+ href: string;
305
+ fit?: "fill" | "contain" | "cover" | undefined;
306
+ }, {
307
+ type: "image";
308
+ href: string;
309
+ fit?: "fill" | "contain" | "cover" | undefined;
310
+ }>]>]>>;
184
311
  fillOpacity: z.ZodOptional<z.ZodNumber>;
185
312
  stroke: z.ZodOptional<z.ZodString>;
186
313
  drawOpacity: z.ZodOptional<z.ZodNumber>;
@@ -251,6 +378,19 @@ export declare const NodeSchema: z.ZodObject<{
251
378
  }>>;
252
379
  rotate: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["none", "radial", "tangent"]>, z.ZodNumber]>>;
253
380
  keepUpright: z.ZodOptional<z.ZodBoolean>;
381
+ pin: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
382
+ stroke: z.ZodOptional<z.ZodString>;
383
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
384
+ dashPattern: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
385
+ }, "strip", z.ZodTypeAny, {
386
+ stroke?: string | undefined;
387
+ strokeWidth?: number | undefined;
388
+ dashPattern?: number[] | undefined;
389
+ }, {
390
+ stroke?: string | undefined;
391
+ strokeWidth?: number | undefined;
392
+ dashPattern?: number[] | undefined;
393
+ }>]>>;
254
394
  }, "strip", z.ZodTypeAny, {
255
395
  text: string;
256
396
  distance?: number | undefined;
@@ -265,6 +405,11 @@ export declare const NodeSchema: z.ZodObject<{
265
405
  textColor?: string | undefined;
266
406
  rotate?: number | "none" | "radial" | "tangent" | undefined;
267
407
  keepUpright?: boolean | undefined;
408
+ pin?: boolean | {
409
+ stroke?: string | undefined;
410
+ strokeWidth?: number | undefined;
411
+ dashPattern?: number[] | undefined;
412
+ } | undefined;
268
413
  }, {
269
414
  text: string;
270
415
  distance?: number | undefined;
@@ -279,6 +424,11 @@ export declare const NodeSchema: z.ZodObject<{
279
424
  textColor?: string | undefined;
280
425
  rotate?: number | "none" | "radial" | "tangent" | undefined;
281
426
  keepUpright?: boolean | undefined;
427
+ pin?: boolean | {
428
+ stroke?: string | undefined;
429
+ strokeWidth?: number | undefined;
430
+ dashPattern?: number[] | undefined;
431
+ } | undefined;
282
432
  }>, z.ZodArray<z.ZodObject<{
283
433
  text: z.ZodString;
284
434
  position: z.ZodOptional<z.ZodUnion<[z.ZodNativeEnum<{
@@ -312,6 +462,19 @@ export declare const NodeSchema: z.ZodObject<{
312
462
  }>>;
313
463
  rotate: z.ZodOptional<z.ZodUnion<[z.ZodEnum<["none", "radial", "tangent"]>, z.ZodNumber]>>;
314
464
  keepUpright: z.ZodOptional<z.ZodBoolean>;
465
+ pin: z.ZodOptional<z.ZodUnion<[z.ZodBoolean, z.ZodObject<{
466
+ stroke: z.ZodOptional<z.ZodString>;
467
+ strokeWidth: z.ZodOptional<z.ZodNumber>;
468
+ dashPattern: z.ZodOptional<z.ZodArray<z.ZodNumber, "many">>;
469
+ }, "strip", z.ZodTypeAny, {
470
+ stroke?: string | undefined;
471
+ strokeWidth?: number | undefined;
472
+ dashPattern?: number[] | undefined;
473
+ }, {
474
+ stroke?: string | undefined;
475
+ strokeWidth?: number | undefined;
476
+ dashPattern?: number[] | undefined;
477
+ }>]>>;
315
478
  }, "strip", z.ZodTypeAny, {
316
479
  text: string;
317
480
  distance?: number | undefined;
@@ -326,6 +489,11 @@ export declare const NodeSchema: z.ZodObject<{
326
489
  textColor?: string | undefined;
327
490
  rotate?: number | "none" | "radial" | "tangent" | undefined;
328
491
  keepUpright?: boolean | undefined;
492
+ pin?: boolean | {
493
+ stroke?: string | undefined;
494
+ strokeWidth?: number | undefined;
495
+ dashPattern?: number[] | undefined;
496
+ } | undefined;
329
497
  }, {
330
498
  text: string;
331
499
  distance?: number | undefined;
@@ -340,6 +508,11 @@ export declare const NodeSchema: z.ZodObject<{
340
508
  textColor?: string | undefined;
341
509
  rotate?: number | "none" | "radial" | "tangent" | undefined;
342
510
  keepUpright?: boolean | undefined;
511
+ pin?: boolean | {
512
+ stroke?: string | undefined;
513
+ strokeWidth?: number | undefined;
514
+ dashPattern?: number[] | undefined;
515
+ } | undefined;
343
516
  }>, "many">]>>;
344
517
  zIndex: z.ZodOptional<z.ZodNumber>;
345
518
  }, "strip", z.ZodTypeAny, {
@@ -352,7 +525,39 @@ export declare const NodeSchema: z.ZodObject<{
352
525
  of: string | [number, number] | import('./position').PolarPosition;
353
526
  offset: [number, number];
354
527
  };
355
- fill?: string | undefined;
528
+ fill?: string | {
529
+ type: "linearGradient";
530
+ stops: {
531
+ offset: number;
532
+ color: string;
533
+ opacity?: number | undefined;
534
+ }[];
535
+ angle?: number | undefined;
536
+ } | {
537
+ type: "radialGradient";
538
+ stops: {
539
+ offset: number;
540
+ color: string;
541
+ opacity?: number | undefined;
542
+ }[];
543
+ radius?: number | undefined;
544
+ center?: [number, number] | undefined;
545
+ } | {
546
+ type: "pattern";
547
+ shape: "lines" | "dots" | "grid";
548
+ size?: number | undefined;
549
+ color?: string | undefined;
550
+ background?: string | undefined;
551
+ lineWidth?: number | undefined;
552
+ rotation?: number | undefined;
553
+ } | {
554
+ type: "image";
555
+ href: string;
556
+ fit?: "fill" | "contain" | "cover" | undefined;
557
+ } | undefined;
558
+ color?: string | undefined;
559
+ opacity?: number | undefined;
560
+ shape?: string | undefined;
356
561
  text?: string | (string | {
357
562
  text: string;
358
563
  fill?: string | undefined;
@@ -364,16 +569,13 @@ export declare const NodeSchema: z.ZodObject<{
364
569
  style?: "normal" | "italic" | "oblique" | undefined;
365
570
  } | undefined;
366
571
  })[] | undefined;
367
- opacity?: number | undefined;
368
572
  font?: {
369
573
  family?: string | undefined;
370
574
  size?: number | undefined;
371
575
  weight?: number | "normal" | "bold" | undefined;
372
576
  style?: "normal" | "italic" | "oblique" | undefined;
373
577
  } | undefined;
374
- shape?: string | undefined;
375
578
  scale?: number | undefined;
376
- color?: string | undefined;
377
579
  id?: string | undefined;
378
580
  textColor?: string | undefined;
379
581
  label?: {
@@ -390,6 +592,11 @@ export declare const NodeSchema: z.ZodObject<{
390
592
  textColor?: string | undefined;
391
593
  rotate?: number | "none" | "radial" | "tangent" | undefined;
392
594
  keepUpright?: boolean | undefined;
595
+ pin?: boolean | {
596
+ stroke?: string | undefined;
597
+ strokeWidth?: number | undefined;
598
+ dashPattern?: number[] | undefined;
599
+ } | undefined;
393
600
  } | {
394
601
  text: string;
395
602
  distance?: number | undefined;
@@ -404,6 +611,11 @@ export declare const NodeSchema: z.ZodObject<{
404
611
  textColor?: string | undefined;
405
612
  rotate?: number | "none" | "radial" | "tangent" | undefined;
406
613
  keepUpright?: boolean | undefined;
614
+ pin?: boolean | {
615
+ stroke?: string | undefined;
616
+ strokeWidth?: number | undefined;
617
+ dashPattern?: number[] | undefined;
618
+ } | undefined;
407
619
  }[] | undefined;
408
620
  roundedCorners?: number | undefined;
409
621
  stroke?: string | undefined;
@@ -414,6 +626,7 @@ export declare const NodeSchema: z.ZodObject<{
414
626
  rotate?: number | undefined;
415
627
  align?: "left" | "right" | "center" | undefined;
416
628
  lineHeight?: number | undefined;
629
+ maxTextWidth?: number | undefined;
417
630
  dashed?: boolean | undefined;
418
631
  dotted?: boolean | undefined;
419
632
  dashArray?: number[] | undefined;
@@ -437,7 +650,39 @@ export declare const NodeSchema: z.ZodObject<{
437
650
  of: string | [number, number] | import('./position').PolarPosition;
438
651
  offset: [number, number];
439
652
  };
440
- fill?: string | undefined;
653
+ fill?: string | {
654
+ type: "linearGradient";
655
+ stops: {
656
+ offset: number;
657
+ color: string;
658
+ opacity?: number | undefined;
659
+ }[];
660
+ angle?: number | undefined;
661
+ } | {
662
+ type: "radialGradient";
663
+ stops: {
664
+ offset: number;
665
+ color: string;
666
+ opacity?: number | undefined;
667
+ }[];
668
+ radius?: number | undefined;
669
+ center?: [number, number] | undefined;
670
+ } | {
671
+ type: "pattern";
672
+ shape: "lines" | "dots" | "grid";
673
+ size?: number | undefined;
674
+ color?: string | undefined;
675
+ background?: string | undefined;
676
+ lineWidth?: number | undefined;
677
+ rotation?: number | undefined;
678
+ } | {
679
+ type: "image";
680
+ href: string;
681
+ fit?: "fill" | "contain" | "cover" | undefined;
682
+ } | undefined;
683
+ color?: string | undefined;
684
+ opacity?: number | undefined;
685
+ shape?: string | undefined;
441
686
  text?: string | (string | {
442
687
  text: string;
443
688
  fill?: string | undefined;
@@ -449,16 +694,13 @@ export declare const NodeSchema: z.ZodObject<{
449
694
  style?: "normal" | "italic" | "oblique" | undefined;
450
695
  } | undefined;
451
696
  })[] | undefined;
452
- opacity?: number | undefined;
453
697
  font?: {
454
698
  family?: string | undefined;
455
699
  size?: number | undefined;
456
700
  weight?: number | "normal" | "bold" | undefined;
457
701
  style?: "normal" | "italic" | "oblique" | undefined;
458
702
  } | undefined;
459
- shape?: string | undefined;
460
703
  scale?: number | undefined;
461
- color?: string | undefined;
462
704
  id?: string | undefined;
463
705
  textColor?: string | undefined;
464
706
  label?: {
@@ -475,6 +717,11 @@ export declare const NodeSchema: z.ZodObject<{
475
717
  textColor?: string | undefined;
476
718
  rotate?: number | "none" | "radial" | "tangent" | undefined;
477
719
  keepUpright?: boolean | undefined;
720
+ pin?: boolean | {
721
+ stroke?: string | undefined;
722
+ strokeWidth?: number | undefined;
723
+ dashPattern?: number[] | undefined;
724
+ } | undefined;
478
725
  } | {
479
726
  text: string;
480
727
  distance?: number | undefined;
@@ -489,6 +736,11 @@ export declare const NodeSchema: z.ZodObject<{
489
736
  textColor?: string | undefined;
490
737
  rotate?: number | "none" | "radial" | "tangent" | undefined;
491
738
  keepUpright?: boolean | undefined;
739
+ pin?: boolean | {
740
+ stroke?: string | undefined;
741
+ strokeWidth?: number | undefined;
742
+ dashPattern?: number[] | undefined;
743
+ } | undefined;
492
744
  }[] | undefined;
493
745
  roundedCorners?: number | undefined;
494
746
  stroke?: string | undefined;
@@ -499,6 +751,7 @@ export declare const NodeSchema: z.ZodObject<{
499
751
  rotate?: number | undefined;
500
752
  align?: "left" | "right" | "center" | undefined;
501
753
  lineHeight?: number | undefined;
754
+ maxTextWidth?: number | undefined;
502
755
  dashed?: boolean | undefined;
503
756
  dotted?: boolean | undefined;
504
757
  dashArray?: 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;AAKxC;;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA8CzB,CAAC;AAEJ,uBAAuB;AACvB,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAE1D,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA+LpB,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;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuMpB,CAAC;AAEJ,sCAAsC;AACtC,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC"}