@retikz/core 0.1.0-alpha.0 → 0.1.0-alpha.2

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 (121) hide show
  1. package/dist/es/compile/index.d.ts +1 -0
  2. package/dist/es/compile/index.d.ts.map +1 -1
  3. package/dist/es/compile/node.d.ts +73 -22
  4. package/dist/es/compile/node.d.ts.map +1 -1
  5. package/dist/es/compile/node.js +276 -52
  6. package/dist/es/compile/parseTarget.d.ts +25 -0
  7. package/dist/es/compile/parseTarget.d.ts.map +1 -0
  8. package/dist/es/compile/parseTarget.js +48 -0
  9. package/dist/es/compile/path.d.ts +17 -7
  10. package/dist/es/compile/path.d.ts.map +1 -1
  11. package/dist/es/compile/path.js +276 -33
  12. package/dist/es/compile/text-metrics.d.ts +2 -2
  13. package/dist/es/compile/text-metrics.d.ts.map +1 -1
  14. package/dist/es/geometry/circle.d.ts +32 -0
  15. package/dist/es/geometry/circle.d.ts.map +1 -0
  16. package/dist/es/geometry/circle.js +79 -0
  17. package/dist/es/geometry/diamond.d.ts +44 -0
  18. package/dist/es/geometry/diamond.d.ts.map +1 -0
  19. package/dist/es/geometry/diamond.js +87 -0
  20. package/dist/es/geometry/ellipse.d.ts +38 -0
  21. package/dist/es/geometry/ellipse.d.ts.map +1 -0
  22. package/dist/es/geometry/ellipse.js +86 -0
  23. package/dist/es/geometry/index.d.ts +3 -0
  24. package/dist/es/geometry/index.d.ts.map +1 -1
  25. package/dist/es/index.d.ts +9 -7
  26. package/dist/es/index.d.ts.map +1 -1
  27. package/dist/es/index.js +8 -4
  28. package/dist/es/ir/node.d.ts +319 -7
  29. package/dist/es/ir/node.d.ts.map +1 -1
  30. package/dist/es/ir/node.js +96 -8
  31. package/dist/es/ir/path/arrow.d.ts +26 -0
  32. package/dist/es/ir/path/arrow.d.ts.map +1 -0
  33. package/dist/es/ir/path/arrow.js +25 -0
  34. package/dist/es/ir/path/index.d.ts +1 -0
  35. package/dist/es/ir/path/index.d.ts.map +1 -1
  36. package/dist/es/ir/path/path.d.ts +60 -0
  37. package/dist/es/ir/path/path.d.ts.map +1 -1
  38. package/dist/es/ir/path/path.js +10 -0
  39. package/dist/es/ir/path/step.d.ts +56 -2
  40. package/dist/es/ir/path/step.d.ts.map +1 -1
  41. package/dist/es/ir/path/step.js +17 -2
  42. package/dist/es/ir/scene.d.ts +538 -16
  43. package/dist/es/ir/scene.d.ts.map +1 -1
  44. package/dist/es/parsers/parseWay.d.ts +56 -10
  45. package/dist/es/parsers/parseWay.d.ts.map +1 -1
  46. package/dist/es/parsers/parseWay.js +68 -6
  47. package/dist/es/primitive/ellipse.d.ts +34 -0
  48. package/dist/es/primitive/ellipse.d.ts.map +1 -0
  49. package/dist/es/primitive/index.d.ts +1 -0
  50. package/dist/es/primitive/index.d.ts.map +1 -1
  51. package/dist/es/primitive/path.d.ts +11 -0
  52. package/dist/es/primitive/path.d.ts.map +1 -1
  53. package/dist/es/primitive/rect.d.ts +2 -0
  54. package/dist/es/primitive/rect.d.ts.map +1 -1
  55. package/dist/es/primitive/scene.d.ts +2 -1
  56. package/dist/es/primitive/scene.d.ts.map +1 -1
  57. package/dist/es/primitive/text.d.ts +43 -13
  58. package/dist/es/primitive/text.d.ts.map +1 -1
  59. package/dist/es/types.d.ts +3 -0
  60. package/dist/es/types.d.ts.map +1 -0
  61. package/dist/lib/compile/index.d.ts +1 -0
  62. package/dist/lib/compile/index.d.ts.map +1 -1
  63. package/dist/lib/compile/node.cjs +278 -52
  64. package/dist/lib/compile/node.d.ts +73 -22
  65. package/dist/lib/compile/node.d.ts.map +1 -1
  66. package/dist/lib/compile/parseTarget.cjs +48 -0
  67. package/dist/lib/compile/parseTarget.d.ts +25 -0
  68. package/dist/lib/compile/parseTarget.d.ts.map +1 -0
  69. package/dist/lib/compile/path.cjs +275 -32
  70. package/dist/lib/compile/path.d.ts +17 -7
  71. package/dist/lib/compile/path.d.ts.map +1 -1
  72. package/dist/lib/compile/text-metrics.d.ts +2 -2
  73. package/dist/lib/compile/text-metrics.d.ts.map +1 -1
  74. package/dist/lib/geometry/circle.cjs +79 -0
  75. package/dist/lib/geometry/circle.d.ts +32 -0
  76. package/dist/lib/geometry/circle.d.ts.map +1 -0
  77. package/dist/lib/geometry/diamond.cjs +87 -0
  78. package/dist/lib/geometry/diamond.d.ts +44 -0
  79. package/dist/lib/geometry/diamond.d.ts.map +1 -0
  80. package/dist/lib/geometry/ellipse.cjs +86 -0
  81. package/dist/lib/geometry/ellipse.d.ts +38 -0
  82. package/dist/lib/geometry/ellipse.d.ts.map +1 -0
  83. package/dist/lib/geometry/index.d.ts +3 -0
  84. package/dist/lib/geometry/index.d.ts.map +1 -1
  85. package/dist/lib/index.cjs +16 -0
  86. package/dist/lib/index.d.ts +9 -7
  87. package/dist/lib/index.d.ts.map +1 -1
  88. package/dist/lib/ir/node.cjs +100 -7
  89. package/dist/lib/ir/node.d.ts +319 -7
  90. package/dist/lib/ir/node.d.ts.map +1 -1
  91. package/dist/lib/ir/path/arrow.cjs +25 -0
  92. package/dist/lib/ir/path/arrow.d.ts +26 -0
  93. package/dist/lib/ir/path/arrow.d.ts.map +1 -0
  94. package/dist/lib/ir/path/index.d.ts +1 -0
  95. package/dist/lib/ir/path/index.d.ts.map +1 -1
  96. package/dist/lib/ir/path/path.cjs +10 -0
  97. package/dist/lib/ir/path/path.d.ts +60 -0
  98. package/dist/lib/ir/path/path.d.ts.map +1 -1
  99. package/dist/lib/ir/path/step.cjs +18 -1
  100. package/dist/lib/ir/path/step.d.ts +56 -2
  101. package/dist/lib/ir/path/step.d.ts.map +1 -1
  102. package/dist/lib/ir/scene.d.ts +538 -16
  103. package/dist/lib/ir/scene.d.ts.map +1 -1
  104. package/dist/lib/parsers/parseWay.cjs +68 -5
  105. package/dist/lib/parsers/parseWay.d.ts +56 -10
  106. package/dist/lib/parsers/parseWay.d.ts.map +1 -1
  107. package/dist/lib/primitive/ellipse.d.ts +34 -0
  108. package/dist/lib/primitive/ellipse.d.ts.map +1 -0
  109. package/dist/lib/primitive/index.d.ts +1 -0
  110. package/dist/lib/primitive/index.d.ts.map +1 -1
  111. package/dist/lib/primitive/path.d.ts +11 -0
  112. package/dist/lib/primitive/path.d.ts.map +1 -1
  113. package/dist/lib/primitive/rect.d.ts +2 -0
  114. package/dist/lib/primitive/rect.d.ts.map +1 -1
  115. package/dist/lib/primitive/scene.d.ts +2 -1
  116. package/dist/lib/primitive/scene.d.ts.map +1 -1
  117. package/dist/lib/primitive/text.d.ts +43 -13
  118. package/dist/lib/primitive/text.d.ts.map +1 -1
  119. package/dist/lib/types.d.ts +3 -0
  120. package/dist/lib/types.d.ts.map +1 -0
  121. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/ir/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIrB,CAAC;AAEJ,gCAAgC;AAChC,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAElD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBrB,CAAC;AAEJ,4CAA4C;AAC5C,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAE7C,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,EAAG,CAAU,CAAC"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/ir/scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAIxB,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIrB,CAAC;AAEJ,gCAAgC;AAChC,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAElD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkBrB,CAAC;AAEJ,4CAA4C;AAC5C,MAAM,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAE7C,qCAAqC;AACrC,eAAO,MAAM,kBAAkB,EAAG,CAAU,CAAC"}
@@ -1,25 +1,71 @@
1
1
  import { IRStep, IRTarget } from '../ir';
2
+ /**
3
+ * Sugar 层 way 数组的"关键字常量"。
4
+ *
5
+ * - `DrawWay.cycle`:闭合到 way 起点(way 元素位置)。**底层字符串故意取得很丑**
6
+ * (`'retikz-keyword_cycle'`),保证不会与任何合理的节点 id 冲突;用户应当
7
+ * 只通过 `DrawWay.cycle` 引用,不要直接写裸字面量。
8
+ * - `DrawWay.hv`:折角算子,先水平后垂直(裸字面量 `'-|'`)。
9
+ * - `DrawWay.vh`:折角算子,先垂直后水平(裸字面量 `'|-'`)。
10
+ *
11
+ * 折角值(`-|` / `|-`)含特殊字符,与节点 id 不会冲突,因此**保留字面量与
12
+ * 常量两种写法都合法**。way 数组里直接放 `'-|'` 或 `'|-'`(infix 算子)
13
+ * 即把"上一项 → 下一项"那一段改成折角。
14
+ *
15
+ * 这里**故意不用 TS enum**——enum 在数值场景下生成 reverse-mapping 表、
16
+ * 在 string 场景下与字面量类型不互通,而 const + `as const` 的字面量联合
17
+ * 既可枚举也可与字面量字符串无缝混用。
18
+ */
19
+ export declare const DrawWay: {
20
+ /**
21
+ * 闭合 way 到起点,等价于 `<Step kind="cycle" />`(TikZ 同名保留字 / SVG `Z`)。
22
+ * 底层字符串值刻意写丑以避开节点 id 冲突;不要硬编码这个字符串。
23
+ */
24
+ readonly cycle: "retikz-keyword_cycle";
25
+ /** 折角:先水平后垂直(TikZ `-|`) */
26
+ readonly hv: "-|";
27
+ /** 折角:先垂直后水平(TikZ `|-`) */
28
+ readonly vh: "|-";
29
+ };
30
+ /**
31
+ * way 折角算子的字面量类型。`DrawWay.hv` / `DrawWay.vh` 与裸字面量等价。
32
+ */
33
+ export type WayVia = typeof DrawWay.hv | typeof DrawWay.vh;
34
+ /**
35
+ * way 闭合关键字的字面量类型,由 `DrawWay.cycle` 派生。
36
+ */
37
+ export type WayCycle = typeof DrawWay.cycle;
2
38
  /**
3
39
  * Sugar 层的 way 数组 DSL 元素。
4
40
  *
5
- * v0.1.0-alpha 接受三种形态(与 `IRTarget` 等价):
6
- * - 节点 id 字符串:`'A'`
7
- * - 直接笛卡尔坐标:`[x, y]`
8
- * - 极坐标:`{ origin?, angle, radius }`
41
+ * v0.1.0-alpha.1 接受五种形态:
42
+ * - 节点 id 字符串:`'A'` → line(首项时为 move)
43
+ * - 笛卡尔坐标:`[x, y]` → line
44
+ * - 极坐标:`{ origin?, angle, radius }` → line
45
+ * - 折角算子:`'-|'` / `'|-'`(或 `DrawWay.hv` / `DrawWay.vh`)→ 当前项 +
46
+ * **下一项**合并成一个折角 step(与 TikZ 的 `(A) -| (B)` infix 写法对齐)
47
+ * - 闭合关键字:`DrawWay.cycle` → cycle(闭合到起点)
9
48
  *
10
- * 后续会加:折角对象(`{ via: '-|' }`)、相对位移(`{ rel: [x, y] }`)、
11
- * curve / cubic / 'close' 等——届时 WayItem 与 IRTarget 才会出现真正分歧。
49
+ * 后续会加:相对位移(`{ rel: [x, y] }`)、curve / cubic 等。
50
+ *
51
+ * 注意:闭合刻意只走 `DrawWay.cycle`(底层字符串是 `'retikz-keyword_cycle'`),
52
+ * 这样裸字符串 `'cycle'` 仍可作为正常节点 id 使用。
12
53
  */
13
- export type WayItem = IRTarget;
54
+ export type WayItem = IRTarget | WayVia | WayCycle;
14
55
  /** way DSL 数组:sugar `<Draw way={...}>` 接受的输入形态 */
15
56
  export type WayDSL = Array<WayItem>;
16
57
  /**
17
58
  * 把 way 数组翻译为 IRStep 序列。
18
- * 第一个元素永远是 move;之后的默认是 line。
19
59
  *
20
- * 这是纯函数,住在 core,被各框架 adapter Sugar 组件复用。
60
+ * - 第一个元素始终是 move:取 way[0] 的目标点;若 way[0] 是 cycle / via 算子等
61
+ * 非 target 项,则降级到原点 `[0, 0]`(容错)。
62
+ * - 后续元素:
63
+ * - 普通 target → line
64
+ * - `DrawWay.cycle` → cycle 步
65
+ * - `'-|'` / `'|-'` → 与**下一项**合并成 fold 步;操作符在 way 末尾或后
66
+ * 接非 target 项时抛错
21
67
  *
22
- * 类型校验由 TS 编译期完成;本函数不做运行时类型守卫。
68
+ * 这是纯函数,住在 core,被各框架 adapter 的 Sugar 组件复用。
23
69
  */
24
70
  export declare const parseWay: (way: WayDSL) => Array<IRStep>;
25
71
  //# sourceMappingURL=parseWay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parseWay.d.ts","sourceRoot":"","sources":["../../../src/parsers/parseWay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA0B,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAEtE;;;;;;;;;;GAUG;AACH,MAAM,MAAM,OAAO,GAAG,QAAQ,CAAC;AAE/B,kDAAkD;AAClD,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAEpC;;;;;;;GAOG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,KAAK,CAAC,MAAM,CAYlD,CAAA"}
1
+ {"version":3,"file":"parseWay.d.ts","sourceRoot":"","sources":["../../../src/parsers/parseWay.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAKV,MAAM,EACN,QAAQ,EACT,MAAM,OAAO,CAAC;AAEf;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,OAAO;IAClB;;;OAGG;;IAEH,2BAA2B;;IAE3B,2BAA2B;;CAEnB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,OAAO,CAAC,EAAE,GAAG,OAAO,OAAO,CAAC,EAAE,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC;AAE5C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEnD,kDAAkD;AAClD,MAAM,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC;AAapC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,GAAI,KAAK,MAAM,KAAG,KAAK,CAAC,MAAM,CAoClD,CAAC"}
@@ -1,11 +1,51 @@
1
1
  //#region src/parsers/parseWay.ts
2
2
  /**
3
+ * Sugar 层 way 数组的"关键字常量"。
4
+ *
5
+ * - `DrawWay.cycle`:闭合到 way 起点(way 元素位置)。**底层字符串故意取得很丑**
6
+ * (`'retikz-keyword_cycle'`),保证不会与任何合理的节点 id 冲突;用户应当
7
+ * 只通过 `DrawWay.cycle` 引用,不要直接写裸字面量。
8
+ * - `DrawWay.hv`:折角算子,先水平后垂直(裸字面量 `'-|'`)。
9
+ * - `DrawWay.vh`:折角算子,先垂直后水平(裸字面量 `'|-'`)。
10
+ *
11
+ * 折角值(`-|` / `|-`)含特殊字符,与节点 id 不会冲突,因此**保留字面量与
12
+ * 常量两种写法都合法**。way 数组里直接放 `'-|'` 或 `'|-'`(infix 算子)
13
+ * 即把"上一项 → 下一项"那一段改成折角。
14
+ *
15
+ * 这里**故意不用 TS enum**——enum 在数值场景下生成 reverse-mapping 表、
16
+ * 在 string 场景下与字面量类型不互通,而 const + `as const` 的字面量联合
17
+ * 既可枚举也可与字面量字符串无缝混用。
18
+ */
19
+ var DrawWay = {
20
+ /**
21
+ * 闭合 way 到起点,等价于 `<Step kind="cycle" />`(TikZ 同名保留字 / SVG `Z`)。
22
+ * 底层字符串值刻意写丑以避开节点 id 冲突;不要硬编码这个字符串。
23
+ */
24
+ cycle: "retikz-keyword_cycle",
25
+ /** 折角:先水平后垂直(TikZ `-|`) */
26
+ hv: "-|",
27
+ /** 折角:先垂直后水平(TikZ `|-`) */
28
+ vh: "|-"
29
+ };
30
+ var isWayCycle = (item) => item === DrawWay.cycle;
31
+ var isWayVia = (item) => item === DrawWay.hv || item === DrawWay.vh;
32
+ /** 把 WayItem 归约为它的"目标点"——target 直接返回;算子/关键字返回 null */
33
+ var targetOf = (item) => {
34
+ if (isWayCycle(item) || isWayVia(item)) return null;
35
+ return item;
36
+ };
37
+ /**
3
38
  * 把 way 数组翻译为 IRStep 序列。
4
- * 第一个元素永远是 move;之后的默认是 line。
5
39
  *
6
- * 这是纯函数,住在 core,被各框架 adapter Sugar 组件复用。
40
+ * - 第一个元素始终是 move:取 way[0] 的目标点;若 way[0] 是 cycle / via 算子等
41
+ * 非 target 项,则降级到原点 `[0, 0]`(容错)。
42
+ * - 后续元素:
43
+ * - 普通 target → line
44
+ * - `DrawWay.cycle` → cycle 步
45
+ * - `'-|'` / `'|-'` → 与**下一项**合并成 fold 步;操作符在 way 末尾或后
46
+ * 接非 target 项时抛错
7
47
  *
8
- * 类型校验由 TS 编译期完成;本函数不做运行时类型守卫。
48
+ * 这是纯函数,住在 core,被各框架 adapter 的 Sugar 组件复用。
9
49
  */
10
50
  var parseWay = (way) => {
11
51
  if (way.length < 2) throw new Error("parseWay: way must contain at least 2 items");
@@ -13,18 +53,40 @@ var parseWay = (way) => {
13
53
  const moveStep = {
14
54
  type: "step",
15
55
  kind: "move",
16
- to: way[0]
56
+ to: targetOf(way[0]) ?? [0, 0]
17
57
  };
18
58
  out.push(moveStep);
19
59
  for (let i = 1; i < way.length; i++) {
60
+ const item = way[i];
61
+ if (isWayCycle(item)) {
62
+ out.push({
63
+ type: "step",
64
+ kind: "cycle"
65
+ });
66
+ continue;
67
+ }
68
+ if (isWayVia(item)) {
69
+ if (i + 1 >= way.length) throw new Error(`parseWay: via operator '${item}' at end of way must be followed by a target`);
70
+ const next = way[i + 1];
71
+ if (isWayCycle(next) || isWayVia(next)) throw new Error(`parseWay: via operator '${item}' must be followed by a target, got '${String(next)}'`);
72
+ const fold = {
73
+ type: "step",
74
+ kind: "step",
75
+ via: item,
76
+ to: next
77
+ };
78
+ out.push(fold);
79
+ i++;
80
+ continue;
81
+ }
20
82
  const lineStep = {
21
83
  type: "step",
22
84
  kind: "line",
23
- to: way[i]
85
+ to: item
24
86
  };
25
87
  out.push(lineStep);
26
88
  }
27
89
  return out;
28
90
  };
29
91
  //#endregion
30
- export { parseWay };
92
+ export { DrawWay, parseWay };
@@ -0,0 +1,34 @@
1
+ /**
2
+ * 椭圆原语:SVG `<ellipse>` 直对应。
3
+ * 圆形(半长轴 = 半短轴)用同一个 EllipsePrim 表示,让 renderer 单一 case 处理。
4
+ * 旋转走 `rotate` 字段(度数,绕中心);非零时 renderer 用 SVG transform 包裹。
5
+ */
6
+ export type EllipsePrim = {
7
+ /** 类型判别符 */
8
+ type: 'ellipse';
9
+ /** 中心横坐标 */
10
+ cx: number;
11
+ /** 中心纵坐标 */
12
+ cy: number;
13
+ /** 水平半轴 */
14
+ rx: number;
15
+ /** 垂直半轴 */
16
+ ry: number;
17
+ /** 绕中心的旋转角(度数,与 RectPrim 风格一致);省略或 0 不旋转 */
18
+ rotate?: number;
19
+ /** 填充色 */
20
+ fill?: string;
21
+ /** 填充透明度 0~1 */
22
+ fillOpacity?: number;
23
+ /** 描边色 */
24
+ stroke?: string;
25
+ /** 描边透明度 0~1(SVG stroke-opacity) */
26
+ strokeOpacity?: number;
27
+ /** 描边宽度 */
28
+ strokeWidth?: number;
29
+ /** SVG stroke-dasharray 模式 */
30
+ strokeDasharray?: string;
31
+ /** 整体透明度 0~1 */
32
+ opacity?: number;
33
+ };
34
+ //# sourceMappingURL=ellipse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ellipse.d.ts","sourceRoot":"","sources":["../../../src/primitive/ellipse.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,EAAE,EAAE,MAAM,CAAC;IACX,WAAW;IACX,EAAE,EAAE,MAAM,CAAC;IACX,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -1,4 +1,5 @@
1
1
  export * from './rect';
2
+ export * from './ellipse';
2
3
  export * from './text';
3
4
  export * from './path';
4
5
  export * from './group';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitive/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/primitive/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { ArrowShape } from '../ir/path/arrow';
1
2
  /** 路径原语:SVG path d 字符串;Canvas/PDF renderer 自行解析 */
2
3
  export type PathPrim = {
3
4
  /** 类型判别符 */
@@ -6,8 +7,14 @@ export type PathPrim = {
6
7
  d: string;
7
8
  /** 填充色;不填表示不填充 */
8
9
  fill?: string;
10
+ /** 填充透明度 0~1 */
11
+ fillOpacity?: number;
12
+ /** SVG fill-rule:`nonzero`(默认)/ `evenodd`(环形 / 孔洞场景) */
13
+ fillRule?: 'nonzero' | 'evenodd';
9
14
  /** 描边色 */
10
15
  stroke?: string;
16
+ /** 描边透明度 0~1(SVG stroke-opacity) */
17
+ strokeOpacity?: number;
11
18
  /** 描边宽度 */
12
19
  strokeWidth?: number;
13
20
  /** SVG stroke-dasharray 模式 */
@@ -16,6 +23,10 @@ export type PathPrim = {
16
23
  strokeLinecap?: 'butt' | 'round' | 'square';
17
24
  /** 拐点形状 */
18
25
  strokeLinejoin?: 'miter' | 'round' | 'bevel';
26
+ /** 起点箭头形状;undefined = 无 */
27
+ arrowStart?: ArrowShape;
28
+ /** 终点箭头形状;undefined = 无 */
29
+ arrowEnd?: ArrowShape;
19
30
  /** 整体透明度 0~1 */
20
31
  opacity?: number;
21
32
  };
@@ -1 +1 @@
1
- {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/primitive/path.ts"],"names":[],"mappings":"AAAA,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,WAAW;IACX,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC7C,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../../src/primitive/path.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,mDAAmD;AACnD,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,CAAC,EAAE,MAAM,CAAC;IACV,kBAAkB;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,QAAQ,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,UAAU;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW;IACX,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAC5C,WAAW;IACX,cAAc,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;IAC7C,2BAA2B;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,2BAA2B;IAC3B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -16,6 +16,8 @@ export type RectPrim = {
16
16
  fillOpacity?: number;
17
17
  /** 描边色 */
18
18
  stroke?: string;
19
+ /** 描边透明度 0~1(SVG stroke-opacity) */
20
+ strokeOpacity?: number;
19
21
  /** 描边宽度 */
20
22
  strokeWidth?: number;
21
23
  /** SVG stroke-dasharray 模式 */
@@ -1 +1 @@
1
- {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/primitive/rect.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa;IACb,CAAC,EAAE,MAAM,CAAC;IACV,aAAa;IACb,CAAC,EAAE,MAAM,CAAC;IACV,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/primitive/rect.ts"],"names":[],"mappings":"AAAA,WAAW;AACX,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,aAAa;IACb,CAAC,EAAE,MAAM,CAAC;IACV,aAAa;IACb,CAAC,EAAE,MAAM,CAAC;IACV,WAAW;IACX,KAAK,EAAE,MAAM,CAAC;IACd,WAAW;IACX,MAAM,EAAE,MAAM,CAAC;IACf,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU;IACV,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8BAA8B;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,wBAAwB;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { EllipsePrim } from './ellipse';
1
2
  import { GroupPrim } from './group';
2
3
  import { PathPrim } from './path';
3
4
  import { RectPrim } from './rect';
@@ -9,7 +10,7 @@ import { ViewBox } from './view-box';
9
10
  *
10
11
  * 不允许出现 SVG-only 或 Canvas-only 特性(filter、marker、imageData 等)。
11
12
  */
12
- export type ScenePrimitive = RectPrim | TextPrim | PathPrim | GroupPrim;
13
+ export type ScenePrimitive = RectPrim | EllipsePrim | TextPrim | PathPrim | GroupPrim;
13
14
  /** 场景:渲染目标无关的"已布局好的图元集合 + viewBox" */
14
15
  export type Scene = {
15
16
  /** 已布局好的图元数组,按渲染顺序排列 */
@@ -1 +1 @@
1
- {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/primitive/scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExE,sCAAsC;AACtC,MAAM,MAAM,KAAK,GAAG;IAClB,wBAAwB;IACxB,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,gBAAgB;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"scene.d.ts","sourceRoot":"","sources":["../../../src/primitive/scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEtF,sCAAsC;AACtC,MAAM,MAAM,KAAK,GAAG;IAClB,wBAAwB;IACxB,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAClC,gBAAgB;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC"}
@@ -1,32 +1,62 @@
1
- /** 文本原语;measuredWidth/Height 由 Scene 编译阶段算好,下游直接信任 */
1
+ /**
2
+ * 行级字段——`<tspan>` 上可独立指定的属性。
3
+ * 块级(TextPrim 顶层)属性是默认值;行级未填字段走块级默认。
4
+ */
5
+ export type TextLine = {
6
+ /** 行内容(必填) */
7
+ text: string;
8
+ /** 行字号;未填走 TextPrim.fontSize */
9
+ fontSize?: number;
10
+ /** 行字体族;未填走 TextPrim.fontFamily */
11
+ fontFamily?: string;
12
+ /** 行字重;未填走 TextPrim.fontWeight */
13
+ fontWeight?: string | number;
14
+ /** 行字形;未填走 TextPrim.fontStyle */
15
+ fontStyle?: 'normal' | 'italic' | 'oblique';
16
+ /** 行颜色;未填走 TextPrim.fill */
17
+ fill?: string;
18
+ /** 行透明度 0~1;未填走 TextPrim.opacity */
19
+ opacity?: number;
20
+ };
21
+ /**
22
+ * 文本原语;measuredWidth / Height 由 Scene 编译阶段算好,下游直接信任。
23
+ *
24
+ * 多行:`lines` 至少 1 行;renderer 把每行画为 `<tspan>`,按 `lineHeight` 堆叠,
25
+ * 整块根据 `baseline` 在 (x, y) 锚点上下居中 / 顶 / 底对齐。
26
+ *
27
+ * 顶层 `fontSize` / `fontFamily` / `fontWeight` / `fontStyle` / `fill` / `opacity` 是默认值;
28
+ * 单行可在 `TextLine` 上覆盖(仅生效于该行 `<tspan>`)。
29
+ */
2
30
  export type TextPrim = {
3
31
  /** 类型判别符 */
4
32
  type: 'text';
5
- /** 锚点横坐标(具体含义由 align 决定) */
33
+ /** 锚点横坐标(具体含义由 align 决定);多行下作为每行 `<tspan>` 的 x */
6
34
  x: number;
7
35
  /** 锚点纵坐标(具体含义由 baseline 决定) */
8
36
  y: number;
9
- /** 文本内容 */
10
- content: string;
11
- /** 字号 */
37
+ /** 文本行(至少 1 行);单行节点也用 `[{ text: 'Hello' }]` 形式 */
38
+ lines: Array<TextLine>;
39
+ /** 块级默认字号 */
12
40
  fontSize: number;
13
- /** 字体族 */
41
+ /** 块级默认字体族 */
14
42
  fontFamily?: string;
15
- /** 字重 */
43
+ /** 块级默认字重 */
16
44
  fontWeight?: string | number;
17
- /** 字形 */
18
- fontStyle?: 'normal' | 'italic';
45
+ /** 块级默认字形 */
46
+ fontStyle?: 'normal' | 'italic' | 'oblique';
19
47
  /** 水平对齐:start / middle / end 锚点位置 */
20
48
  align: 'start' | 'middle' | 'end';
21
49
  /** 垂直基线对齐方式 */
22
50
  baseline: 'top' | 'middle' | 'bottom' | 'alphabetic';
23
- /** 编译期算好的文字宽度(user units */
51
+ /** 行高(user units);多行下相邻 `<tspan>` 的垂直距离 */
52
+ lineHeight: number;
53
+ /** 编译期算好的整块文字宽度(user units,= max line width) */
24
54
  measuredWidth: number;
25
- /** 编译期算好的文字高度(user units) */
55
+ /** 编译期算好的整块文字高度(user units,≈ lines × lineHeight) */
26
56
  measuredHeight: number;
27
- /** 文字颜色 */
57
+ /** 块级默认文字颜色 */
28
58
  fill?: string;
29
- /** 整体透明度 0~1 */
59
+ /** 块级默认透明度 0~1 */
30
60
  opacity?: number;
31
61
  };
32
62
  //# sourceMappingURL=text.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/primitive/text.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,+BAA+B;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS;IACT,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS;IACT,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,SAAS;IACT,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAChC,qCAAqC;IACrC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,eAAe;IACf,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACrD,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,6BAA6B;IAC7B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
1
+ {"version":3,"file":"text.d.ts","sourceRoot":"","sources":["../../../src/primitive/text.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,cAAc;IACd,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,iCAAiC;IACjC,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5C,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,kDAAkD;IAClD,CAAC,EAAE,MAAM,CAAC;IACV,+BAA+B;IAC/B,CAAC,EAAE,MAAM,CAAC;IACV,kDAAkD;IAClD,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa;IACb,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,aAAa;IACb,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5C,qCAAqC;IACrC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,eAAe;IACf,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;IACrD,2CAA2C;IAC3C,UAAU,EAAE,MAAM,CAAC;IACnB,gDAAgD;IAChD,aAAa,EAAE,MAAM,CAAC;IACtB,oDAAoD;IACpD,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,kBAAkB;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** 获取对象所有值的联合类型,等价于 (typeof T)[keyof typeof T] */
2
+ export type ValueOf<T extends object> = T[keyof T];
3
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './compile';
2
2
  export * from './node';
3
+ export * from './parseTarget';
3
4
  export * from './path';
4
5
  export * from './position';
5
6
  export * from './precision';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/compile/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/compile/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,cAAc,QAAQ,CAAC;AACvB,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC"}