@retikz/react 0.1.0-alpha.2 → 0.1.0-alpha.3

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 (47) hide show
  1. package/dist/es/index.d.ts +3 -3
  2. package/dist/es/index.d.ts.map +1 -1
  3. package/dist/es/index.js +2 -1
  4. package/dist/es/kernel/Path.d.ts +12 -0
  5. package/dist/es/kernel/Path.d.ts.map +1 -1
  6. package/dist/es/kernel/Step.d.ts +86 -3
  7. package/dist/es/kernel/Step.d.ts.map +1 -1
  8. package/dist/es/kernel/_builder.d.ts.map +1 -1
  9. package/dist/es/kernel/_builder.js +123 -13
  10. package/dist/es/kernel/_displayNames.d.ts +2 -0
  11. package/dist/es/kernel/_displayNames.d.ts.map +1 -1
  12. package/dist/es/kernel/_displayNames.js +3 -1
  13. package/dist/es/kernel/_unbuilder.d.ts.map +1 -1
  14. package/dist/es/kernel/_unbuilder.js +58 -1
  15. package/dist/es/sugar/Draw.d.ts +20 -2
  16. package/dist/es/sugar/Draw.d.ts.map +1 -1
  17. package/dist/es/sugar/Draw.js +57 -3
  18. package/dist/es/sugar/EdgeLabel.d.ts +20 -0
  19. package/dist/es/sugar/EdgeLabel.d.ts.map +1 -0
  20. package/dist/es/sugar/EdgeLabel.js +13 -0
  21. package/dist/es/sugar/index.d.ts +1 -0
  22. package/dist/es/sugar/index.d.ts.map +1 -1
  23. package/dist/es/sugar/index.js +1 -0
  24. package/dist/lib/index.cjs +2 -0
  25. package/dist/lib/index.d.ts +3 -3
  26. package/dist/lib/index.d.ts.map +1 -1
  27. package/dist/lib/kernel/Path.d.ts +12 -0
  28. package/dist/lib/kernel/Path.d.ts.map +1 -1
  29. package/dist/lib/kernel/Step.d.ts +86 -3
  30. package/dist/lib/kernel/Step.d.ts.map +1 -1
  31. package/dist/lib/kernel/_builder.cjs +122 -12
  32. package/dist/lib/kernel/_builder.d.ts.map +1 -1
  33. package/dist/lib/kernel/_displayNames.cjs +3 -0
  34. package/dist/lib/kernel/_displayNames.d.ts +2 -0
  35. package/dist/lib/kernel/_displayNames.d.ts.map +1 -1
  36. package/dist/lib/kernel/_unbuilder.cjs +58 -1
  37. package/dist/lib/kernel/_unbuilder.d.ts.map +1 -1
  38. package/dist/lib/sugar/Draw.cjs +57 -3
  39. package/dist/lib/sugar/Draw.d.ts +20 -2
  40. package/dist/lib/sugar/Draw.d.ts.map +1 -1
  41. package/dist/lib/sugar/EdgeLabel.cjs +13 -0
  42. package/dist/lib/sugar/EdgeLabel.d.ts +20 -0
  43. package/dist/lib/sugar/EdgeLabel.d.ts.map +1 -0
  44. package/dist/lib/sugar/index.cjs +1 -0
  45. package/dist/lib/sugar/index.d.ts +1 -0
  46. package/dist/lib/sugar/index.d.ts.map +1 -1
  47. package/package.json +2 -2
@@ -1,2 +1,3 @@
1
1
  export * from './Draw';
2
+ export * from './EdgeLabel';
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sugar/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/sugar/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}
@@ -1 +1,2 @@
1
1
  import "./Draw.js";
2
+ import "./EdgeLabel.js";
@@ -7,6 +7,7 @@ const require_Step = require("./kernel/Step.cjs");
7
7
  const require_Text = require("./kernel/Text.cjs");
8
8
  require("./kernel/index.cjs");
9
9
  const require_Draw = require("./sugar/Draw.cjs");
10
+ const require_EdgeLabel = require("./sugar/EdgeLabel.cjs");
10
11
  require("./sugar/index.cjs");
11
12
  const require__unbuilder = require("./kernel/_unbuilder.cjs");
12
13
  let _retikz_core = require("@retikz/core");
@@ -17,6 +18,7 @@ Object.defineProperty(exports, "DrawWay", {
17
18
  return _retikz_core.DrawWay;
18
19
  }
19
20
  });
21
+ exports.EdgeLabel = require_EdgeLabel.EdgeLabel;
20
22
  exports.Node = require_Node.Node;
21
23
  exports.Path = require_Path.Path;
22
24
  exports.Step = require_Step.Step;
@@ -8,10 +8,10 @@
8
8
  */
9
9
  export { Tikz, Node, Path, Step, Text } from './kernel';
10
10
  export type { TikzProps, NodeProps, PathProps, StepProps, TextProps } from './kernel';
11
- export { Draw } from './sugar';
12
- export type { DrawProps } from './sugar';
11
+ export { Draw, EdgeLabel } from './sugar';
12
+ export type { DrawProps, EdgeLabelProps } from './sugar';
13
13
  export { DrawWay } from '@retikz/core';
14
- export type { WayItem, WayDSL, WayCycle, WayVia } from '@retikz/core';
14
+ export type { WayItem, WayDSL, WayCycle, WayVia, WayRelItem, WayLabel, WayLabelOp, } from '@retikz/core';
15
15
  export { buildIR as convertReactNodeToIR } from './kernel/_builder';
16
16
  export { convertIRToReactNode } from './kernel/_unbuilder';
17
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEtF,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,YAAY,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGzC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAGtE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AACxD,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAEtF,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAC1C,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAGzD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,UAAU,EACV,QAAQ,EACR,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -8,6 +8,12 @@ export type PathProps = {
8
8
  strokeWidth?: IRPath['strokeWidth'];
9
9
  /** SVG stroke-dasharray 模式(如 "4 2") */
10
10
  strokeDasharray?: IRPath['strokeDasharray'];
11
+ /** 端点形状(SVG `stroke-linecap`):`'butt'`(默认 / 直角)/ `'round'`(半圆)/ `'square'`(方头外扩半 stroke) */
12
+ lineCap?: IRPath['lineCap'];
13
+ /** 拐点形状(SVG `stroke-linejoin`):`'miter'`(默认 / 尖角)/ `'round'`(圆角)/ `'bevel'`(切角) */
14
+ lineJoin?: IRPath['lineJoin'];
15
+ /** 语义 stroke 档位(TikZ `ultra thin` … `ultra thick`);显式 `strokeWidth` 始终优先 */
16
+ thickness?: IRPath['thickness'];
11
17
  /**
12
18
  * 路径级箭头方向。`'->'` = 终点;`'<-'` = 起点;`'<->'` = 两端;
13
19
  * 省略或 `'none'` = 无箭头。
@@ -22,6 +28,12 @@ export type PathProps = {
22
28
  fill?: IRPath['fill'];
23
29
  /** SVG fill-rule:`'nonzero'`(默认)/ `'evenodd'`(环形 / 孔洞) */
24
30
  fillRule?: IRPath['fillRule'];
31
+ /** 整 path 透明度 0~1;同时作用于 stroke 与 fill */
32
+ opacity?: IRPath['opacity'];
33
+ /** 仅 fill 透明度 0~1 */
34
+ fillOpacity?: IRPath['fillOpacity'];
35
+ /** 仅 stroke 透明度 0~1(TikZ `draw opacity`) */
36
+ drawOpacity?: IRPath['drawOpacity'];
25
37
  /** 应当全部是 <Step /> */
26
38
  children: ReactNode;
27
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Path.d.ts","sourceRoot":"","sources":["../../../src/kernel/Path.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG;IACtB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAClC,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,qBAAqB;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CAAc,CAAC"}
1
+ {"version":3,"file":"Path.d.ts","sourceRoot":"","sources":["../../../src/kernel/Path.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG;IACtB,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5C,4FAA4F;IAC5F,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5B,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAClC,0DAA0D;IAC1D,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5B,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,qBAAqB;IACrB,QAAQ,EAAE,SAAS,CAAC;CACrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CAAc,CAAC"}
@@ -1,9 +1,14 @@
1
- import { FC } from 'react';
2
- import { IRTarget } from '@retikz/core';
1
+ import { FC, ReactNode } from 'react';
2
+ import { IRControlPoint, IRStepLabel, IRTarget } from '@retikz/core';
3
3
  /**
4
4
  * <Step> 组件的 props。
5
- * v0.1.0-alpha.1 支持四种 kind:'move' / 'line' / 'step'(折角)/ 'cycle'(闭合)。
5
+ * alpha.3 起支持十种 kind:'move' / 'line' / 'step'(折角)/ 'cycle'(闭合)/
6
+ * 'curve'(二次贝塞尔)/ 'cubic'(三次贝塞尔)/ 'bend'(弧形简记)/
7
+ * 'arc'(圆弧段)/ 'circlePath'(整圆)/ 'ellipsePath'(整椭圆)。
6
8
  * kind 默认 'line'。
9
+ *
10
+ * ADR-0004:除 'move' / 'cycle' 外的八种 kind 都可挂 `label?: IRStepLabel` 边标注;
11
+ * 等价的写法是用 sugar `<EdgeLabel>` 当 children。两者并存时 prop 优先。
7
12
  */
8
13
  export type StepProps = {
9
14
  /** 移动游标但不绘制(类似 SVG path "M") */
@@ -15,6 +20,10 @@ export type StepProps = {
15
20
  kind?: 'line';
16
21
  /** 直线终点 */
17
22
  to: IRTarget;
23
+ /** 边标注(ADR-0004),等价于 <EdgeLabel> child */
24
+ label?: IRStepLabel;
25
+ /** sugar 形态:`<Step><EdgeLabel>...</EdgeLabel></Step>`;其它 children 静默忽略 */
26
+ children?: ReactNode;
18
27
  } | {
19
28
  /** 折角段:从游标经一个直角拐点到目标点(TikZ `-|` / `|-`) */
20
29
  kind: 'step';
@@ -22,9 +31,83 @@ export type StepProps = {
22
31
  via: '-|' | '|-';
23
32
  /** 折角终点 */
24
33
  to: IRTarget;
34
+ /** 边标注(ADR-0004) */
35
+ label?: IRStepLabel;
36
+ /** sugar 形态 */
37
+ children?: ReactNode;
25
38
  } | {
26
39
  /** 闭合:把当前子路径回到最近一个 move 起点(TikZ `cycle` / SVG `Z`) */
27
40
  kind: 'cycle';
41
+ } | {
42
+ /** 二次贝塞尔:一个控制点(TikZ `.. controls (B) ..`) */
43
+ kind: 'curve';
44
+ /** 控制点(alpha.3 仅支持 [x, y],未来可能扩展) */
45
+ control: IRControlPoint;
46
+ /** 曲线终点 */
47
+ to: IRTarget;
48
+ /** 边标注(ADR-0004) */
49
+ label?: IRStepLabel;
50
+ /** sugar 形态 */
51
+ children?: ReactNode;
52
+ } | {
53
+ /** 三次贝塞尔:两个控制点(TikZ `.. controls (B) and (C) ..`) */
54
+ kind: 'cubic';
55
+ /** 第一控制点(影响起点切线) */
56
+ control1: IRControlPoint;
57
+ /** 第二控制点(影响终点切线) */
58
+ control2: IRControlPoint;
59
+ /** 曲线终点 */
60
+ to: IRTarget;
61
+ /** 边标注(ADR-0004) */
62
+ label?: IRStepLabel;
63
+ /** sugar 形态 */
64
+ children?: ReactNode;
65
+ } | {
66
+ /** 弧形简记:按方向 + 角度生成 cubic(TikZ `to[bend left=N]` / `to[bend right=N]`) */
67
+ kind: 'bend';
68
+ /** 弯向:'left' / 'right'(视觉左右,相对 from→to) */
69
+ bendDirection: 'left' | 'right';
70
+ /** 弯角度(度),缺省 30 */
71
+ bendAngle?: number;
72
+ /** 终点 */
73
+ to: IRTarget;
74
+ /** 边标注(ADR-0004) */
75
+ label?: IRStepLabel;
76
+ /** sugar 形态 */
77
+ children?: ReactNode;
78
+ } | {
79
+ /** 弧段:以游标为圆心,按起末角度 + 半径绘制(TikZ `arc[start angle=…, end angle=…, radius=…]`) */
80
+ kind: 'arc';
81
+ /** 弧的起始角度(度),CCW from +x(注意 retikz polar y 轴向下,角度 90 视觉朝下) */
82
+ startAngle: number;
83
+ /** 弧的终止角度(度) */
84
+ endAngle: number;
85
+ /** 弧的半径 */
86
+ radius: number;
87
+ /** 边标注(ADR-0004) */
88
+ label?: IRStepLabel;
89
+ /** sugar 形态 */
90
+ children?: ReactNode;
91
+ } | {
92
+ /** 整圆:以游标为圆心,按半径绘制;画完画笔留在圆心 */
93
+ kind: 'circlePath';
94
+ /** 圆的半径 */
95
+ radius: number;
96
+ /** 边标注(ADR-0004) */
97
+ label?: IRStepLabel;
98
+ /** sugar 形态 */
99
+ children?: ReactNode;
100
+ } | {
101
+ /** 整椭圆:以游标为圆心,按 x/y 轴半径绘制;画完画笔留在圆心 */
102
+ kind: 'ellipsePath';
103
+ /** 椭圆 x 轴半径 */
104
+ radiusX: number;
105
+ /** 椭圆 y 轴半径 */
106
+ radiusY: number;
107
+ /** 边标注(ADR-0004) */
108
+ label?: IRStepLabel;
109
+ /** sugar 形态 */
110
+ children?: ReactNode;
28
111
  };
29
112
  /**
30
113
  * Step 是 DSL 标记组件——本身不渲染。
@@ -1 +1 @@
1
- {"version":3,"file":"Step.d.ts","sourceRoot":"","sources":["../../../src/kernel/Step.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C;;;;GAIG;AACH,MAAM,MAAM,SAAS,GACjB;IACE,gCAAgC;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY;IACZ,EAAE,EAAE,QAAQ,CAAC;CACd,GACD;IACE,wBAAwB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW;IACX,EAAE,EAAE,QAAQ,CAAC;CACd,GACD;IACE,2CAA2C;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,mCAAmC;IACnC,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,WAAW;IACX,EAAE,EAAE,QAAQ,CAAC;CACd,GACD;IACE,sDAAsD;IACtD,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEN;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CAAc,CAAC"}
1
+ {"version":3,"file":"Step.d.ts","sourceRoot":"","sources":["../../../src/kernel/Step.tsx"],"names":[],"mappings":"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"}
@@ -105,6 +105,33 @@ var buildNode = (props) => ({
105
105
  font: props.font
106
106
  });
107
107
  /**
108
+ * 扫描 Step children,把首个 <EdgeLabel> 翻译为 IRStepLabel;
109
+ * 非字符串 children 静默跳过;多个 <EdgeLabel> 取首个。
110
+ */
111
+ var readEdgeLabel = (children) => {
112
+ let result;
113
+ react.Children.forEach(children, (child) => {
114
+ if (result !== void 0) return;
115
+ if (!(0, react.isValidElement)(child)) return;
116
+ if (getDisplayName(child) !== "@retikz/EdgeLabel") return;
117
+ const props = child.props;
118
+ if (typeof props.children !== "string") return;
119
+ const out = { text: props.children };
120
+ if (props.position !== void 0) out.position = props.position;
121
+ if (props.side !== void 0) out.side = props.side;
122
+ result = out;
123
+ });
124
+ return result;
125
+ };
126
+ /**
127
+ * 解析 Step 的 label 来源:prop `label` 优先于 sugar `<EdgeLabel>` child;
128
+ * 都缺省时返回 undefined。
129
+ */
130
+ var resolveStepLabel = (props) => {
131
+ if (props.label !== void 0) return props.label;
132
+ return readEdgeLabel(props.children);
133
+ };
134
+ /**
108
135
  * 扫描 <Path> children 收集 <Step> 序列。
109
136
  * 至少 2 段;首段不是 move 时强制改为 move(与 SVG path 的 "M …" 语义对齐);
110
137
  * cycle 没有 to 字段,若用户把 cycle 放在首段,coerce 时降级到 move (0,0)。
@@ -123,32 +150,109 @@ var readPathChildren = (children) => {
123
150
  });
124
151
  return;
125
152
  }
153
+ const label = kind === "move" ? void 0 : resolveStepLabel(props);
126
154
  if (kind === "step") {
127
- out.push({
155
+ const step = {
128
156
  type: "step",
129
157
  kind: "step",
130
158
  via: props.via,
131
- to: props.to
159
+ to: (0, _retikz_core.parseTargetSugar)(props.to)
160
+ };
161
+ if (label) step.label = label;
162
+ out.push(step);
163
+ return;
164
+ }
165
+ if (kind === "curve") {
166
+ const step = {
167
+ type: "step",
168
+ kind: "curve",
169
+ to: (0, _retikz_core.parseTargetSugar)(props.to),
170
+ control: props.control
171
+ };
172
+ if (label) step.label = label;
173
+ out.push(step);
174
+ return;
175
+ }
176
+ if (kind === "cubic") {
177
+ const step = {
178
+ type: "step",
179
+ kind: "cubic",
180
+ to: (0, _retikz_core.parseTargetSugar)(props.to),
181
+ control1: props.control1,
182
+ control2: props.control2
183
+ };
184
+ if (label) step.label = label;
185
+ out.push(step);
186
+ return;
187
+ }
188
+ if (kind === "bend") {
189
+ const step = {
190
+ type: "step",
191
+ kind: "bend",
192
+ to: (0, _retikz_core.parseTargetSugar)(props.to),
193
+ bendDirection: props.bendDirection
194
+ };
195
+ if (props.bendAngle !== void 0) step.bendAngle = props.bendAngle;
196
+ if (label) step.label = label;
197
+ out.push(step);
198
+ return;
199
+ }
200
+ if (kind === "arc") {
201
+ const step = {
202
+ type: "step",
203
+ kind: "arc",
204
+ startAngle: props.startAngle,
205
+ endAngle: props.endAngle,
206
+ radius: props.radius
207
+ };
208
+ if (label) step.label = label;
209
+ out.push(step);
210
+ return;
211
+ }
212
+ if (kind === "circlePath") {
213
+ const step = {
214
+ type: "step",
215
+ kind: "circlePath",
216
+ radius: props.radius
217
+ };
218
+ if (label) step.label = label;
219
+ out.push(step);
220
+ return;
221
+ }
222
+ if (kind === "ellipsePath") {
223
+ const step = {
224
+ type: "step",
225
+ kind: "ellipsePath",
226
+ radiusX: props.radiusX,
227
+ radiusY: props.radiusY
228
+ };
229
+ if (label) step.label = label;
230
+ out.push(step);
231
+ return;
232
+ }
233
+ if (kind === "move") {
234
+ out.push({
235
+ type: "step",
236
+ kind: "move",
237
+ to: (0, _retikz_core.parseTargetSugar)(props.to)
132
238
  });
133
239
  return;
134
240
  }
135
- out.push({
241
+ const step = {
136
242
  type: "step",
137
- kind,
138
- to: props.to
139
- });
243
+ kind: "line",
244
+ to: (0, _retikz_core.parseTargetSugar)(props.to)
245
+ };
246
+ if (label) step.label = label;
247
+ out.push(step);
140
248
  });
141
249
  if (out.length < 2) throw new Error("<Path> requires at least 2 <Step> children");
142
250
  if (out[0].kind !== "move") {
143
251
  const first = out[0];
144
- out[0] = first.kind === "cycle" ? {
252
+ out[0] = {
145
253
  type: "step",
146
254
  kind: "move",
147
- to: [0, 0]
148
- } : {
149
- type: "step",
150
- kind: "move",
151
- to: first.to
255
+ to: first.kind === "cycle" || first.kind === "arc" || first.kind === "circlePath" || first.kind === "ellipsePath" ? [0, 0] : first.to
152
256
  };
153
257
  }
154
258
  return out;
@@ -159,10 +263,16 @@ var buildPath = (props) => ({
159
263
  stroke: props.stroke,
160
264
  strokeWidth: props.strokeWidth,
161
265
  strokeDasharray: props.strokeDasharray,
266
+ lineCap: props.lineCap,
267
+ lineJoin: props.lineJoin,
268
+ thickness: props.thickness,
162
269
  arrow: props.arrow,
163
270
  arrowShape: props.arrowShape,
164
271
  fill: props.fill,
165
272
  fillRule: props.fillRule,
273
+ opacity: props.opacity,
274
+ fillOpacity: props.fillOpacity,
275
+ drawOpacity: props.drawOpacity,
166
276
  children: readPathChildren(props.children)
167
277
  });
168
278
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"_builder.d.ts","sourceRoot":"","sources":["../../../src/kernel/_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAkB,MAAM,OAAO,CAAC;AACpF,OAAO,KAAK,EAAE,EAAE,EAA+C,MAAM,cAAc,CAAC;AA6NpF;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,SAAS,KAAG,EAI5C,CAAC"}
1
+ {"version":3,"file":"_builder.d.ts","sourceRoot":"","sources":["../../../src/kernel/_builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAkB,MAAM,OAAO,CAAC;AACpF,OAAO,KAAK,EACV,EAAE,EAQH,MAAM,cAAc,CAAC;AAkXtB;;;GAGG;AACH,eAAO,MAAM,OAAO,GAAI,UAAU,SAAS,KAAG,EAI5C,CAAC"}
@@ -7,7 +7,10 @@ var TIKZ_PATH = "@retikz/Path";
7
7
  var TIKZ_STEP = "@retikz/Step";
8
8
  /** <Text> 组件的 displayName(Node 内多行文本带样式) */
9
9
  var TIKZ_TEXT = "@retikz/Text";
10
+ /** <EdgeLabel> 组件的 displayName(Step 内边标注,ADR-0004) */
11
+ var TIKZ_EDGE_LABEL = "@retikz/EdgeLabel";
10
12
  //#endregion
13
+ exports.TIKZ_EDGE_LABEL = TIKZ_EDGE_LABEL;
11
14
  exports.TIKZ_NODE = TIKZ_NODE;
12
15
  exports.TIKZ_PATH = TIKZ_PATH;
13
16
  exports.TIKZ_STEP = TIKZ_STEP;
@@ -6,4 +6,6 @@ export declare const TIKZ_PATH = "@retikz/Path";
6
6
  export declare const TIKZ_STEP = "@retikz/Step";
7
7
  /** <Text> 组件的 displayName(Node 内多行文本带样式) */
8
8
  export declare const TIKZ_TEXT = "@retikz/Text";
9
+ /** <EdgeLabel> 组件的 displayName(Step 内边标注,ADR-0004) */
10
+ export declare const TIKZ_EDGE_LABEL = "@retikz/EdgeLabel";
9
11
  //# sourceMappingURL=_displayNames.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"_displayNames.d.ts","sourceRoot":"","sources":["../../../src/kernel/_displayNames.ts"],"names":[],"mappings":"AAKA,6BAA6B;AAC7B,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAExC,6BAA6B;AAC7B,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAExC,6BAA6B;AAC7B,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAExC,4CAA4C;AAC5C,eAAO,MAAM,SAAS,iBAAiB,CAAC"}
1
+ {"version":3,"file":"_displayNames.d.ts","sourceRoot":"","sources":["../../../src/kernel/_displayNames.ts"],"names":[],"mappings":"AAKA,6BAA6B;AAC7B,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAExC,6BAA6B;AAC7B,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAExC,6BAA6B;AAC7B,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAExC,4CAA4C;AAC5C,eAAO,MAAM,SAAS,iBAAiB,CAAC;AAExC,sDAAsD;AACtD,eAAO,MAAM,eAAe,sBAAsB,CAAC"}
@@ -47,12 +47,63 @@ var stepToElement = (step, key) => {
47
47
  key,
48
48
  kind: "step",
49
49
  via: step.via,
50
+ to: step.to,
51
+ ...step.label !== void 0 && { label: step.label }
52
+ });
53
+ if (step.kind === "curve") return (0, react.createElement)(require_Step.Step, {
54
+ key,
55
+ kind: "curve",
56
+ to: step.to,
57
+ control: step.control,
58
+ ...step.label !== void 0 && { label: step.label }
59
+ });
60
+ if (step.kind === "cubic") return (0, react.createElement)(require_Step.Step, {
61
+ key,
62
+ kind: "cubic",
63
+ to: step.to,
64
+ control1: step.control1,
65
+ control2: step.control2,
66
+ ...step.label !== void 0 && { label: step.label }
67
+ });
68
+ if (step.kind === "bend") return (0, react.createElement)(require_Step.Step, {
69
+ key,
70
+ kind: "bend",
71
+ to: step.to,
72
+ bendDirection: step.bendDirection,
73
+ ...step.bendAngle !== void 0 && { bendAngle: step.bendAngle },
74
+ ...step.label !== void 0 && { label: step.label }
75
+ });
76
+ if (step.kind === "arc") return (0, react.createElement)(require_Step.Step, {
77
+ key,
78
+ kind: "arc",
79
+ startAngle: step.startAngle,
80
+ endAngle: step.endAngle,
81
+ radius: step.radius,
82
+ ...step.label !== void 0 && { label: step.label }
83
+ });
84
+ if (step.kind === "circlePath") return (0, react.createElement)(require_Step.Step, {
85
+ key,
86
+ kind: "circlePath",
87
+ radius: step.radius,
88
+ ...step.label !== void 0 && { label: step.label }
89
+ });
90
+ if (step.kind === "ellipsePath") return (0, react.createElement)(require_Step.Step, {
91
+ key,
92
+ kind: "ellipsePath",
93
+ radiusX: step.radiusX,
94
+ radiusY: step.radiusY,
95
+ ...step.label !== void 0 && { label: step.label }
96
+ });
97
+ if (step.kind === "move") return (0, react.createElement)(require_Step.Step, {
98
+ key,
99
+ kind: "move",
50
100
  to: step.to
51
101
  });
52
102
  return (0, react.createElement)(require_Step.Step, {
53
103
  key,
54
104
  kind: step.kind,
55
- to: step.to
105
+ to: step.to,
106
+ ...step.label !== void 0 && { label: step.label }
56
107
  });
57
108
  };
58
109
  /** discriminated union 兜底:编译期保证不漏 case,运行时给出明确错误 */
@@ -71,10 +122,16 @@ var childToElement = (child, key) => {
71
122
  stroke: child.stroke,
72
123
  strokeWidth: child.strokeWidth,
73
124
  strokeDasharray: child.strokeDasharray,
125
+ lineCap: child.lineCap,
126
+ lineJoin: child.lineJoin,
127
+ thickness: child.thickness,
74
128
  arrow: child.arrow,
75
129
  arrowShape: child.arrowShape,
76
130
  fill: child.fill,
77
131
  fillRule: child.fillRule,
132
+ opacity: child.opacity,
133
+ fillOpacity: child.fillOpacity,
134
+ drawOpacity: child.drawOpacity,
78
135
  children: child.children.map((s, j) => stepToElement(s, j))
79
136
  });
80
137
  default: return assertNever(child);
@@ -1 +1 @@
1
- {"version":3,"file":"_unbuilder.d.ts","sourceRoot":"","sources":["../../../src/kernel/_unbuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAA2B,MAAM,cAAc,CAAC;AA8EhE;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,IAAI,EAAE,KAAG,SACW,CAAC"}
1
+ {"version":3,"file":"_unbuilder.d.ts","sourceRoot":"","sources":["../../../src/kernel/_unbuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAiB,MAAM,OAAO,CAAC;AACtD,OAAO,KAAK,EAAE,EAAE,EAA2B,MAAM,cAAc,CAAC;AA2JhE;;;;;;GAMG;AACH,eAAO,MAAM,oBAAoB,GAAI,IAAI,EAAE,KAAG,SACW,CAAC"}
@@ -12,15 +12,21 @@ let react_jsx_runtime = require("react/jsx-runtime");
12
12
  * (useState / useMemo / useEffect 等会抛 "Invalid hook call")。
13
13
  */
14
14
  var Draw = (props) => {
15
- const { way, stroke, strokeWidth, strokeDasharray, arrow, arrowShape, fill, fillRule } = props;
15
+ const { way, stroke, strokeWidth, strokeDasharray, lineCap, lineJoin, thickness, arrow, arrowShape, fill, fillRule, opacity, fillOpacity, drawOpacity } = props;
16
16
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Path.Path, {
17
17
  stroke,
18
18
  strokeWidth,
19
19
  strokeDasharray,
20
+ lineCap,
21
+ lineJoin,
22
+ thickness,
20
23
  arrow,
21
24
  arrowShape,
22
25
  fill,
23
26
  fillRule,
27
+ opacity,
28
+ fillOpacity,
29
+ drawOpacity,
24
30
  children: (0, _retikz_core.parseWay)(way).map((s, i) => {
25
31
  if (s.kind === "cycle") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, { kind: "cycle" }, i);
26
32
  if (s.kind === "move") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
@@ -30,11 +36,59 @@ var Draw = (props) => {
30
36
  if (s.kind === "step") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
31
37
  kind: "step",
32
38
  via: s.via,
33
- to: s.to
39
+ to: s.to,
40
+ label: s.label
41
+ }, i);
42
+ if (s.kind === "curve") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
43
+ kind: "curve",
44
+ to: s.to,
45
+ control: s.control,
46
+ label: s.label
47
+ }, i);
48
+ if (s.kind === "cubic") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
49
+ kind: "cubic",
50
+ to: s.to,
51
+ control1: s.control1,
52
+ control2: s.control2,
53
+ label: s.label
54
+ }, i);
55
+ if (s.kind === "bend") {
56
+ if (s.bendAngle !== void 0) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
57
+ kind: "bend",
58
+ to: s.to,
59
+ bendDirection: s.bendDirection,
60
+ bendAngle: s.bendAngle,
61
+ label: s.label
62
+ }, i);
63
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
64
+ kind: "bend",
65
+ to: s.to,
66
+ bendDirection: s.bendDirection,
67
+ label: s.label
68
+ }, i);
69
+ }
70
+ if (s.kind === "arc") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
71
+ kind: "arc",
72
+ startAngle: s.startAngle,
73
+ endAngle: s.endAngle,
74
+ radius: s.radius,
75
+ label: s.label
76
+ }, i);
77
+ if (s.kind === "circlePath") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
78
+ kind: "circlePath",
79
+ radius: s.radius,
80
+ label: s.label
81
+ }, i);
82
+ if (s.kind === "ellipsePath") return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
83
+ kind: "ellipsePath",
84
+ radiusX: s.radiusX,
85
+ radiusY: s.radiusY,
86
+ label: s.label
34
87
  }, i);
35
88
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_Step.Step, {
36
89
  kind: "line",
37
- to: s.to
90
+ to: s.to,
91
+ label: s.label
38
92
  }, i);
39
93
  })
40
94
  });
@@ -2,7 +2,13 @@ import { FC } from 'react';
2
2
  import { IRPath, WayDSL } from '@retikz/core';
3
3
  /** <Draw> 组件的 props */
4
4
  export type DrawProps = {
5
- /** way 数组 DSL:节点 id / 坐标 / 极坐标 / 折角算子 `'-|'` `'|-'` / 闭合 `DrawWay.cycle` */
5
+ /**
6
+ * way 数组 DSL:节点 id / 笛卡尔 / 极坐标 / 相对偏移 `{ position, type: DrawWay.Relative | DrawWay.Accumulate }` /
7
+ * 折角算子 `'-|'` `'|-'`(或 `DrawWay.Hv` / `DrawWay.Vh`)/ 闭合 `DrawWay.Cycle` /
8
+ * 曲线算子 `{ curve | cubic | bend }`(infix)/
9
+ * 形状算子 `{ arc | circle | ellipse }`(infix,以"上一项"为圆心,不消耗下一项)/
10
+ * 边标注算子 `{ label }`(infix,修饰下一段)
11
+ */
6
12
  way: WayDSL;
7
13
  /** 描边色,省略时用 currentColor */
8
14
  stroke?: IRPath['stroke'];
@@ -10,6 +16,12 @@ export type DrawProps = {
10
16
  strokeWidth?: IRPath['strokeWidth'];
11
17
  /** SVG stroke-dasharray 模式(如 "4 2") */
12
18
  strokeDasharray?: IRPath['strokeDasharray'];
19
+ /** 端点形状(SVG `stroke-linecap`) */
20
+ lineCap?: IRPath['lineCap'];
21
+ /** 拐点形状(SVG `stroke-linejoin`) */
22
+ lineJoin?: IRPath['lineJoin'];
23
+ /** 语义 stroke 档位(TikZ `ultra thin` … `ultra thick`);显式 `strokeWidth` 始终优先 */
24
+ thickness?: IRPath['thickness'];
13
25
  /**
14
26
  * 路径级箭头方向。`'->'` = 终点;`'<-'` = 起点;`'<->'` = 两端;
15
27
  * 省略或 `'none'` = 无箭头。
@@ -19,10 +31,16 @@ export type DrawProps = {
19
31
  * 箭头形状。默认 `'normal'`。其他:`'open'` / `'stealth'` / `'diamond'` / `'circle'`。
20
32
  */
21
33
  arrowShape?: IRPath['arrowShape'];
22
- /** 闭合区域填充色,省略 = 不填充。配合 way 末尾的 `DrawWay.cycle` 画填充形状 */
34
+ /** 闭合区域填充色,省略 = 不填充。配合 way 末尾的 `DrawWay.Cycle` 画填充形状 */
23
35
  fill?: IRPath['fill'];
24
36
  /** SVG fill-rule:`'nonzero'`(默认)/ `'evenodd'` */
25
37
  fillRule?: IRPath['fillRule'];
38
+ /** 整 path 透明度 0~1 */
39
+ opacity?: IRPath['opacity'];
40
+ /** 仅 fill 透明度 0~1 */
41
+ fillOpacity?: IRPath['fillOpacity'];
42
+ /** 仅 stroke 透明度 0~1(TikZ `draw opacity`) */
43
+ drawOpacity?: IRPath['drawOpacity'];
26
44
  };
27
45
  /**
28
46
  * Sugar 组件——展开为等价的 <Path><Step.../></Path> Kernel 子树。
@@ -1 +1 @@
1
- {"version":3,"file":"Draw.d.ts","sourceRoot":"","sources":["../../../src/sugar/Draw.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKnD,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG;IACtB,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5C;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAClC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;CAC/B,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CAsB9B,CAAC"}
1
+ {"version":3,"file":"Draw.d.ts","sourceRoot":"","sources":["../../../src/sugar/Draw.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAKnD,uBAAuB;AACvB,MAAM,MAAM,SAAS,GAAG;IACtB;;;;;;OAMG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC1B,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,uCAAuC;IACvC,eAAe,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC5C,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5B,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAChC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IACxB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC;IAClC,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;IACtB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,qBAAqB;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5B,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;IACpC,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;CACrC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,IAAI,EAAE,EAAE,CAAC,SAAS,CA0G9B,CAAC"}
@@ -0,0 +1,13 @@
1
+ const require__displayNames = require("../kernel/_displayNames.cjs");
2
+ //#region src/sugar/EdgeLabel.tsx
3
+ /**
4
+ * Sugar 组件——挂在 <Step> 内作为子节点声明边标注。等价于在 Step 上写
5
+ * `label={{ text, position, side }}` prop;二者并存时 prop 优先。
6
+ *
7
+ * <EdgeLabel> 自身不渲染,由 buildIR 在收集 Step 时识别 displayName 后
8
+ * 提取到 IR `step.label`。
9
+ */
10
+ var EdgeLabel = () => null;
11
+ EdgeLabel.displayName = require__displayNames.TIKZ_EDGE_LABEL;
12
+ //#endregion
13
+ exports.EdgeLabel = EdgeLabel;