@retikz/vanilla 0.3.0-alpha.5 → 0.3.0-beta.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 (83) hide show
  1. package/dist/es/builder/{isFigure.d.ts → is-figure.d.ts} +1 -1
  2. package/dist/es/builder/is-figure.d.ts.map +1 -0
  3. package/dist/es/builder/{isFigure.js → is-figure.js} +1 -1
  4. package/dist/es/builder/scope.d.ts +1 -1
  5. package/dist/es/builder/scope.d.ts.map +1 -1
  6. package/dist/es/builder/scope.js +2 -2
  7. package/dist/es/builder/types.d.ts +18 -5
  8. package/dist/es/builder/types.d.ts.map +1 -1
  9. package/dist/es/builder/types.js +17 -0
  10. package/dist/es/constants.d.ts +3 -0
  11. package/dist/es/constants.d.ts.map +1 -0
  12. package/dist/es/figure.d.ts +6 -4
  13. package/dist/es/figure.d.ts.map +1 -1
  14. package/dist/es/figure.js +43 -9
  15. package/dist/es/index.d.ts +11 -5
  16. package/dist/es/index.d.ts.map +1 -1
  17. package/dist/es/index.js +5 -5
  18. package/dist/{lib/mountCanvas.d.ts → es/mount-canvas.d.ts} +3 -2
  19. package/dist/es/mount-canvas.d.ts.map +1 -0
  20. package/dist/es/{mountCanvas.js → mount-canvas.js} +103 -26
  21. package/dist/es/{mountSvg.d.ts → mount-svg.d.ts} +1 -1
  22. package/dist/es/mount-svg.d.ts.map +1 -0
  23. package/dist/es/{mountSvg.js → mount-svg.js} +20 -17
  24. package/dist/{lib/renderToSvgString.d.ts → es/render-to-svg-string.d.ts} +3 -2
  25. package/dist/es/render-to-svg-string.d.ts.map +1 -0
  26. package/dist/es/render-to-svg-string.js +23 -0
  27. package/dist/es/{svgNodeToDom.d.ts → svg-node-to-dom.d.ts} +1 -1
  28. package/dist/es/svg-node-to-dom.d.ts.map +1 -0
  29. package/dist/es/{svgNodeToDom.js → svg-node-to-dom.js} +1 -1
  30. package/dist/es/{toScene.d.ts → to-scene.d.ts} +1 -1
  31. package/dist/es/to-scene.d.ts.map +1 -0
  32. package/dist/es/{toScene.js → to-scene.js} +1 -1
  33. package/dist/es/types.d.ts +2 -2
  34. package/dist/es/types.d.ts.map +1 -1
  35. package/dist/lib/builder/{isFigure.cjs → is-figure.cjs} +1 -1
  36. package/dist/lib/builder/{isFigure.d.ts → is-figure.d.ts} +1 -1
  37. package/dist/lib/builder/is-figure.d.ts.map +1 -0
  38. package/dist/lib/builder/scope.cjs +2 -2
  39. package/dist/lib/builder/scope.d.ts +1 -1
  40. package/dist/lib/builder/scope.d.ts.map +1 -1
  41. package/dist/lib/builder/types.cjs +17 -0
  42. package/dist/lib/builder/types.d.ts +18 -5
  43. package/dist/lib/builder/types.d.ts.map +1 -1
  44. package/dist/lib/constants.d.ts +3 -0
  45. package/dist/lib/constants.d.ts.map +1 -0
  46. package/dist/lib/figure.cjs +47 -13
  47. package/dist/lib/figure.d.ts +6 -4
  48. package/dist/lib/figure.d.ts.map +1 -1
  49. package/dist/lib/index.cjs +30 -6
  50. package/dist/lib/index.d.ts +11 -5
  51. package/dist/lib/index.d.ts.map +1 -1
  52. package/dist/lib/{mountCanvas.cjs → mount-canvas.cjs} +104 -27
  53. package/dist/{es/mountCanvas.d.ts → lib/mount-canvas.d.ts} +3 -2
  54. package/dist/lib/mount-canvas.d.ts.map +1 -0
  55. package/dist/lib/{mountSvg.cjs → mount-svg.cjs} +24 -21
  56. package/dist/lib/{mountSvg.d.ts → mount-svg.d.ts} +1 -1
  57. package/dist/lib/mount-svg.d.ts.map +1 -0
  58. package/dist/lib/render-to-svg-string.cjs +23 -0
  59. package/dist/{es/renderToSvgString.d.ts → lib/render-to-svg-string.d.ts} +3 -2
  60. package/dist/lib/render-to-svg-string.d.ts.map +1 -0
  61. package/dist/lib/{svgNodeToDom.cjs → svg-node-to-dom.cjs} +1 -1
  62. package/dist/lib/{svgNodeToDom.d.ts → svg-node-to-dom.d.ts} +1 -1
  63. package/dist/lib/svg-node-to-dom.d.ts.map +1 -0
  64. package/dist/lib/{toScene.cjs → to-scene.cjs} +1 -1
  65. package/dist/lib/{toScene.d.ts → to-scene.d.ts} +1 -1
  66. package/dist/lib/to-scene.d.ts.map +1 -0
  67. package/dist/lib/types.d.ts +2 -2
  68. package/dist/lib/types.d.ts.map +1 -1
  69. package/package.json +5 -6
  70. package/dist/es/builder/isFigure.d.ts.map +0 -1
  71. package/dist/es/mountCanvas.d.ts.map +0 -1
  72. package/dist/es/mountSvg.d.ts.map +0 -1
  73. package/dist/es/renderToSvgString.d.ts.map +0 -1
  74. package/dist/es/renderToSvgString.js +0 -28
  75. package/dist/es/svgNodeToDom.d.ts.map +0 -1
  76. package/dist/es/toScene.d.ts.map +0 -1
  77. package/dist/lib/builder/isFigure.d.ts.map +0 -1
  78. package/dist/lib/mountCanvas.d.ts.map +0 -1
  79. package/dist/lib/mountSvg.d.ts.map +0 -1
  80. package/dist/lib/renderToSvgString.cjs +0 -28
  81. package/dist/lib/renderToSvgString.d.ts.map +0 -1
  82. package/dist/lib/svgNodeToDom.d.ts.map +0 -1
  83. package/dist/lib/toScene.d.ts.map +0 -1
@@ -2,7 +2,8 @@ import { RenderInput, RenderToStringOptions } from './types';
2
2
  /**
3
3
  * 把 IR / Scene / Figure 渲染成 SVG 字符串(SSR / 构建期)
4
4
  * @description 收 `Figure` 时 delegate 给 `figure.toSvgString`。收 IR/Scene 时薄包 `@retikz/render/svg`:`toScene`
5
- * (ir 缺省走 core fallback measurer、确定性)→ 序列化 → 若给 `width`/`height` 注入根 `<svg>`。零 DOM。
5
+ * (ir 缺省走 core fallback measurer、确定性)→ 序列化。`width`/`height` 直接透传给 render,由其结构化写进根
6
+ * `<svg>` attrs(不在本层对字符串做正则后处理)。零 DOM。
6
7
  */
7
8
  export declare const renderToSvgString: (input: RenderInput, options?: RenderToStringOptions) => string;
8
- //# sourceMappingURL=renderToSvgString.d.ts.map
9
+ //# sourceMappingURL=render-to-svg-string.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"render-to-svg-string.d.ts","sourceRoot":"","sources":["../../src/render-to-svg-string.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAElE;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,OAAO,WAAW,EAAE,UAAS,qBAA0B,KAAG,MAU3F,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { isFigure } from "./builder/is-figure.js";
2
+ import { toScene } from "./to-scene.js";
3
+ import { renderToSvgString } from "@retikz/render/svg";
4
+ //#region src/render-to-svg-string.ts
5
+ /**
6
+ * 把 IR / Scene / Figure 渲染成 SVG 字符串(SSR / 构建期)
7
+ * @description 收 `Figure` 时 delegate 给 `figure.toSvgString`。收 IR/Scene 时薄包 `@retikz/render/svg`:`toScene`
8
+ * (ir 缺省走 core fallback measurer、确定性)→ 序列化。`width`/`height` 直接透传给 render,由其结构化写进根
9
+ * `<svg>` attrs(不在本层对字符串做正则后处理)。零 DOM。
10
+ */
11
+ var renderToSvgString$1 = (input, options = {}) => {
12
+ if (isFigure(input)) return input.toSvgString(options);
13
+ return renderToSvgString(toScene(input, options), {
14
+ idPrefix: options.idPrefix ?? "r",
15
+ animate: options.animate,
16
+ snapshotAt: options.snapshotAt,
17
+ easings: options.easings,
18
+ width: options.width,
19
+ height: options.height
20
+ });
21
+ };
22
+ //#endregion
23
+ export { renderToSvgString$1 as renderToSvgString };
@@ -11,4 +11,4 @@ export declare const applyAttrs: (el: SVGElement, node: SvgNode) => void;
11
11
  * (`document.createElementNS`),模块顶层不碰任何 DOM 全局——守 SSR 导入安全。
12
12
  */
13
13
  export declare const svgNodeToDom: (node: SvgNode) => SVGElement;
14
- //# sourceMappingURL=svgNodeToDom.d.ts.map
14
+ //# sourceMappingURL=svg-node-to-dom.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg-node-to-dom.d.ts","sourceRoot":"","sources":["../../src/svg-node-to-dom.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAIlD;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,IAAI,UAAU,EAAE,MAAM,OAAO,KAAG,IAS1D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,MAAM,OAAO,KAAG,UAO5C,CAAC"}
@@ -1,4 +1,4 @@
1
- //#region src/svgNodeToDom.ts
1
+ //#region src/svg-node-to-dom.ts
2
2
  var SVG_NS = "http://www.w3.org/2000/svg";
3
3
  /**
4
4
  * 把 `SvgNode` 的 attrs / style 写到一个(可复用的)SVG 元素上
@@ -7,4 +7,4 @@ import { CommonOptions } from './types';
7
7
  * `fallbackMeasurer`,Node 下确定可跑)。注:调用方须先把 `Figure` 解成 `ir`,此处只认 `IR | Scene`。
8
8
  */
9
9
  export declare const toScene: (input: Scene | IR, options: CommonOptions) => Scene;
10
- //# sourceMappingURL=toScene.d.ts.map
10
+ //# sourceMappingURL=to-scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-scene.d.ts","sourceRoot":"","sources":["../../src/to-scene.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,EAAE,KAAK,KAAK,EAAkB,MAAM,cAAc,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,KAAK,GAAG,EAAE,EAAE,SAAS,aAAa,KAAG,KAOnE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { compileToScene } from "@retikz/core";
2
- //#region src/toScene.ts
2
+ //#region src/to-scene.ts
3
3
  /**
4
4
  * 入参归一成 `Scene`
5
5
  * @description 已是 `Scene`(有 `primitives`)直接用;否则当 `IR` 经 `compileToScene` 编译。剥掉 render-only 键
@@ -18,7 +18,7 @@ export type CommonOptions = {
18
18
  height?: number;
19
19
  /**
20
20
  * 是否播放动画(缺省 true);`false` → 渲染 base 静态图(不 emit CSS/WAAPI、Canvas 不起 rAF)
21
- * @description runtime 据 `{animate:false}` 或 `prefers-reduced-motion` 走静态路径(ADR-01「三事一路」)。
21
+ * @description runtime 据 `{animate:false}` 或 `prefers-reduced-motion` 走静态路径,不起任何动画。
22
22
  */
23
23
  animate?: boolean;
24
24
  /**
@@ -37,7 +37,7 @@ export type VanillaView = {
37
37
  readonly root: SVGSVGElement;
38
38
  /** 整图重渲染(原地复用 `root`,清子节点 + 重设 root attrs + 重物化),不承诺局部 patch */
39
39
  update: (next: RenderInput) => void;
40
- /** 卸载:移除 `root`、置 view 失效(再调 `update` 抛、`dispose` noop) */
40
+ /** 卸载:解绑本 view 上未手动 dispose 的水合、移除 `root`、置 view 失效(再调 `update` 抛、`dispose` noop) */
41
41
  dispose: () => void;
42
42
  /**
43
43
  * 绑定 handler 到本 view 的 `<svg>`(locateSvg 定位);handler 收 `(event, context)` 富上下文
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC7G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,oFAAoF;AACpF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,GAAG,cAAc,CAAC;AAEnB,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,gEAAgE;IAChE,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,eAAe,CAAC;IACtD,yEAAyE;IACzE,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC5B,kCAAkC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,kEAAkE;IAClE,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,qFAAqF;IACrF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gFAAgF;IAChF,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC7B,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG;IACvB,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,iDAAiD;IACjD,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,gEAAgE;IAChE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4FAA4F;IAC5F,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,eAAe,CAAC;IACtD;;;;OAIG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC;IAChE,6DAA6D;IAC7D,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;CACjD,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC7G,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,YAAY,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,oFAAoF;AACpF,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,EAAE,GAAG,MAAM,CAAC;AAE9C;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,GAAG,cAAc,CAAC;AAEnB,MAAM,MAAM,qBAAqB,GAAG,aAAa,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,aAAa,CAAC;AAEzC,6DAA6D;AAC7D,MAAM,MAAM,WAAW,GAAG;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,gEAAgE;IAChE,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,qFAAqF;IACrF,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,eAAe,CAAC;IACtD,yEAAyE;IACzE,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,yCAAyC;AACzC,MAAM,MAAM,eAAe,GAAG;IAC5B,kCAAkC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,kEAAkE;IAClE,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,qFAAqF;IACrF,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,gFAAgF;IAChF,QAAQ,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;CAC7B,CAAC;AAEF,gDAAgD;AAChD,MAAM,MAAM,UAAU,GAAG;IACvB,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;CACX,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,iDAAiD;IACjD,MAAM,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACpC,gEAAgE;IAChE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4FAA4F;IAC5F,OAAO,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,eAAe,CAAC;IACtD;;;;OAIG;IACH,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,UAAU,CAAC;IAChE,6DAA6D;IAC7D,SAAS,CAAC,EAAE,iBAAiB,CAAC;CAC/B,CAAC;AAEF,kEAAkE;AAClE,MAAM,MAAM,kBAAkB,GAAG,aAAa,GAAG;IAC/C,yEAAyE;IACzE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iDAAiD;IACjD,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;CACjD,CAAC"}
@@ -1,4 +1,4 @@
1
- //#region src/builder/isFigure.ts
1
+ //#region src/builder/is-figure.ts
2
2
  /** Figure 品牌标记(Symbol.for 跨包/重复 import 仍同一);标准 mountSvg/renderToSvgString 用它区分 Figure 与 IR/Scene */
3
3
  var FIGURE_BRAND = Symbol.for("retikz.vanilla.figure");
4
4
  /** 运行时判断一个值是不是 Figure(带 brand);纯结构检查、零内部 import → 不与 mountSvg/Figure 形成运行时环 */
@@ -3,4 +3,4 @@ import { Figure } from '../figure';
3
3
  export declare const FIGURE_BRAND: unique symbol;
4
4
  /** 运行时判断一个值是不是 Figure(带 brand);纯结构检查、零内部 import → 不与 mountSvg/Figure 形成运行时环 */
5
5
  export declare const isFigure: (value: unknown) => value is Figure;
6
- //# sourceMappingURL=isFigure.d.ts.map
6
+ //# sourceMappingURL=is-figure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-figure.d.ts","sourceRoot":"","sources":["../../../src/builder/is-figure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAExC,oGAAoG;AACpG,eAAO,MAAM,YAAY,EAAE,OAAO,MAA4C,CAAC;AAE/E,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,GAAI,OAAO,OAAO,KAAG,KAAK,IAAI,MACuD,CAAC"}
@@ -16,8 +16,8 @@ var createScopeBuilder = (sink) => {
16
16
  sink.push(require_coordinate.coordinate(...args));
17
17
  return self;
18
18
  },
19
- scope(config, build) {
20
- sink.push(scope(config, build));
19
+ scope(config, arg) {
20
+ sink.push(scope(config, arg));
21
21
  return self;
22
22
  }
23
23
  };
@@ -11,7 +11,7 @@ export type ScopeBuilder = {
11
11
  node: (...args: Parameters<typeof node>) => ScopeBuilder;
12
12
  draw: (...args: Parameters<typeof draw>) => ScopeBuilder;
13
13
  coordinate: (...args: Parameters<typeof coordinate>) => ScopeBuilder;
14
- scope: (config: ScopeConfig, build: (s: ScopeBuilder) => void) => ScopeBuilder;
14
+ scope: (config: ScopeConfig, arg: Array<Child> | ((s: ScopeBuilder) => void)) => ScopeBuilder;
15
15
  };
16
16
  /**
17
17
  * 构造一个 scope IR 子节点(分组容器 + 样式默认 + transforms)
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../src/builder/scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,YAAY,CAAC;IACzD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,YAAY,CAAC;IACzD,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,YAAY,CAAC;IACrE,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,KAAK,YAAY,CAAC;CAChF,CAAC;AAwBF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,QAAQ,WAAW,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC,KAAG,KAS5F,CAAC"}
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../src/builder/scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,YAAY,CAAC;IACzD,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,YAAY,CAAC;IACzD,UAAU,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,KAAK,YAAY,CAAC;IACrE,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC,KAAK,YAAY,CAAC;CAC/F,CAAC;AAwBF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,QAAQ,WAAW,EAAE,KAAK,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC,KAAG,KAS5F,CAAC"}
@@ -0,0 +1,17 @@
1
+ //#region src/builder/types.ts
2
+ /** {@link FigureRootStyle} 的字段表——`figure.ts` 组 IR 时拣根样式 + 从 render options 剔除(IR-only 字段不下发) */
3
+ var FIGURE_ROOT_STYLE_FIELDS = [
4
+ "color",
5
+ "stroke",
6
+ "fill",
7
+ "strokeWidth",
8
+ "opacity",
9
+ "fillOpacity",
10
+ "drawOpacity",
11
+ "nodeDefault",
12
+ "pathDefault",
13
+ "labelDefault",
14
+ "arrowDefault"
15
+ ];
16
+ //#endregion
17
+ exports.FIGURE_ROOT_STYLE_FIELDS = FIGURE_ROOT_STYLE_FIELDS;
@@ -1,4 +1,4 @@
1
- import { CompileOptions, IRChild, IRCoordinate, IRNode, IRPath, IRScope, IRViewBox, WayDSL } from '@retikz/core';
1
+ import { CompileOptions, IRAnimationTrack, IRChild, IRCoordinate, IRNode, IRPath, IRScope, IRViewBox, WayDSL } from '@retikz/core';
2
2
  /** builder 函数返回的 IR 子节点(node / draw / coordinate / scope 的产物) */
3
3
  export type Child = IRChild;
4
4
  /** node 的 config:从 IRNode 派生,剔除判别符 type 与提为 positional 的 id */
@@ -11,16 +11,29 @@ export type CoordinateConfig = Omit<IRCoordinate, 'type' | 'id'>;
11
11
  export type ScopeConfig = Omit<IRScope, 'type' | 'children'>;
12
12
  /** draw 的 way:直接复用 core 的 way DSL 全集(id 串 / 坐标 / Cycle / 折角 / 相对 / 曲线 / 弧 …) */
13
13
  export type Way = WayDSL;
14
+ /**
15
+ * figure 根级级联样式默认(与 React `<Layout>` 顶层样式 props 对齐)
16
+ * @description 取 `IRScope` 的级联样式通道(graphic state + 四通道 every-X),**不含**容器 / 命名空间 / 变换 /
17
+ * 屏障 / 栈序 / 裁剪字段(那些挂在 figure 根上语义易混)。组 IR 时若任一字段携带样式指令,把根 children 包进
18
+ * 一层合成根 `<Scope>`,等价于用户手写一层根 scope;全缺省时不包,IR 形态逐字保持。
19
+ */
20
+ export type FigureRootStyle = Pick<IRScope, 'color' | 'stroke' | 'fill' | 'strokeWidth' | 'opacity' | 'fillOpacity' | 'drawOpacity' | 'nodeDefault' | 'pathDefault' | 'labelDefault' | 'arrowDefault'>;
21
+ /** {@link FigureRootStyle} 的字段表——`figure.ts` 组 IR 时拣根样式 + 从 render options 剔除(IR-only 字段不下发) */
22
+ export declare const FIGURE_ROOT_STYLE_FIELDS: readonly ["color", "stroke", "fill", "strokeWidth", "opacity", "fillOpacity", "drawOpacity", "nodeDefault", "pathDefault", "labelDefault", "arrowDefault"];
14
23
  /**
15
24
  * figure 的 config
16
- * @description `viewBox` → IR.viewBox(内容坐标系);`width`/`height` → 根 `<svg>` 显示尺寸(adapter 职责);
17
- * `idPrefix` → SVG 资源 id 前缀;其余(measureText / shapes / arrows / patterns / pathGenerators /
18
- * padding / precision / nodeDistance / onWarn)派生自 core `CompileOptions`、原样喂 compileToScene。
25
+ * @description `viewBox` → IR.viewBox(内容坐标系);`animations` → IR `animations`(镜头时间轴,配 cameraTo
26
+ * preset);`width`/`height` → 根 `<svg>` 显示尺寸(adapter 职责);`idPrefix` → SVG 资源 id 前缀;根级级联样式
27
+ * (color / nodeDefault / pathDefault / labelDefault / arrowDefault 等)按需包合成根 `<Scope>`;其余(measureText /
28
+ * shapes / arrows / patterns / pathGenerators / padding / precision / nodeDistance / onWarn)派生自 core
29
+ * `CompileOptions`、原样喂 compileToScene。
19
30
  */
20
31
  export type FigureConfig = {
21
32
  width?: number;
22
33
  height?: number;
23
34
  viewBox?: IRViewBox;
24
35
  idPrefix?: string;
25
- } & CompileOptions;
36
+ /** scene 根(镜头)时间轴动画 tracks(`viewBox` property,配 `cameraTo()` preset);注入 IR 根 `animations` */
37
+ animations?: Array<IRAnimationTrack>;
38
+ } & FigureRootStyle & CompileOptions;
26
39
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/builder/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACP,YAAY,EACZ,MAAM,EACN,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACP,MAAM,cAAc,CAAC;AAEtB,iEAAiE;AACjE,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC;AAE5B,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAErD,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AAE3D,qFAAqF;AACrF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAEjE,8EAA8E;AAC9E,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AAE7D,gFAAgF;AAChF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,cAAc,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/builder/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,MAAM,EACN,MAAM,EACN,OAAO,EACP,SAAS,EACT,MAAM,EACP,MAAM,cAAc,CAAC;AAEtB,iEAAiE;AACjE,MAAM,MAAM,KAAK,GAAG,OAAO,CAAC;AAE5B,+DAA+D;AAC/D,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAErD,mEAAmE;AACnE,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AAE3D,qFAAqF;AACrF,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAEjE,8EAA8E;AAC9E,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAC,CAAC;AAE7D,gFAAgF;AAChF,MAAM,MAAM,GAAG,GAAG,MAAM,CAAC;AAEzB;;;;;GAKG;AACH,MAAM,MAAM,eAAe,GAAG,IAAI,CAChC,OAAO,EACL,OAAO,GACP,QAAQ,GACR,MAAM,GACN,aAAa,GACb,SAAS,GACT,aAAa,GACb,aAAa,GACb,aAAa,GACb,aAAa,GACb,cAAc,GACd,cAAc,CACjB,CAAC;AAEF,gGAAgG;AAChG,eAAO,MAAM,wBAAwB,4JAYoB,CAAC;AAE1D;;;;;;;GAOG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,6FAA6F;IAC7F,UAAU,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;CACtC,GAAG,eAAe,GACjB,cAAc,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** 默认资源 id 前缀(确定性);多实例同页须经 `options.idPrefix` 显式区分。SSR(`renderToSvgString`) 与 mount(`mountSvg`) 共用同一默认,避免两处漂移导致资源 id 失配。 */
2
+ export declare const DEFAULT_ID_PREFIX = "r";
3
+ //# sourceMappingURL=constants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,4HAA4H;AAC5H,eAAO,MAAM,iBAAiB,MAAM,CAAC"}
@@ -1,39 +1,71 @@
1
- const require_isFigure = require("./builder/isFigure.cjs");
2
- const require_toScene = require("./toScene.cjs");
3
- const require_renderToSvgString = require("./renderToSvgString.cjs");
4
- const require_mountSvg = require("./mountSvg.cjs");
1
+ const require_is_figure = require("./builder/is-figure.cjs");
2
+ const require_to_scene = require("./to-scene.cjs");
3
+ const require_render_to_svg_string = require("./render-to-svg-string.cjs");
4
+ const require_mount_svg = require("./mount-svg.cjs");
5
+ const require_mount_canvas = require("./mount-canvas.cjs");
5
6
  const require_coordinate = require("./builder/coordinate.cjs");
6
7
  const require_draw = require("./builder/draw.cjs");
7
8
  const require_node = require("./builder/node.cjs");
8
9
  const require_scope = require("./builder/scope.cjs");
10
+ const require_types = require("./builder/types.cjs");
9
11
  let _retikz_render_canvas = require("@retikz/render/canvas");
10
12
  //#region src/figure.ts
13
+ /**
14
+ * 拣出真正携带样式指令的根样式字段
15
+ * @description 在「取 defined」基础上剔除空对象的四通道 default(`nodeDefault: {}` 等)——空 default 无样式指令,
16
+ * 留着只会让 figure 无谓包一层空合成根 `<Scope>`、改变 IR / Scene 拓扑却无视觉差异。标量通道的 falsy-但-defined
17
+ * 值(`strokeWidth: 0` / `opacity: 0`)是有意义样式、保留(镜像 react `pickScopeStyle`)。
18
+ */
19
+ var pickRootStyle = (config) => {
20
+ const picked = {};
21
+ for (const key of require_types.FIGURE_ROOT_STYLE_FIELDS) {
22
+ const value = config[key];
23
+ if (value === void 0) continue;
24
+ if (typeof value === "object" && Object.keys(value).length === 0) continue;
25
+ Object.assign(picked, { [key]: value });
26
+ }
27
+ return picked;
28
+ };
11
29
  /** figure() 的内部入口:装配 Figure(持 config + children,方法闭包其上) */
12
30
  var createFigure = (config, children) => {
13
- /** call-site options 覆盖 figure 存的 config(call-site wins):viewBox 已并进 ir,其余(width/height/idPrefix + 全套 CompileOptions)全透传 */
31
+ /**
32
+ * call-site options 覆盖 figure 存的 config(call-site wins):viewBox / animations / 根样式已并进 ir,
33
+ * 这些 IR-only 字段从下发的 render options 剔除;其余(width/height/idPrefix + 全套 CompileOptions)全透传。
34
+ */
14
35
  const renderOptions = (callSite) => {
15
36
  const merged = {
16
37
  ...config,
17
38
  ...callSite
18
39
  };
19
40
  delete merged.viewBox;
41
+ delete merged.animations;
42
+ for (const key of require_types.FIGURE_ROOT_STYLE_FIELDS) delete merged[key];
20
43
  return merged;
21
44
  };
22
45
  const fig = {
23
- [require_isFigure.FIGURE_BRAND]: true,
46
+ [require_is_figure.FIGURE_BRAND]: true,
24
47
  get ir() {
48
+ const rootStyle = pickRootStyle(config);
25
49
  return {
26
50
  version: 1,
27
51
  type: "scene",
28
- children,
29
- ...config.viewBox ? { viewBox: config.viewBox } : {}
52
+ children: Object.keys(rootStyle).length > 0 ? [{
53
+ type: "scope",
54
+ ...rootStyle,
55
+ children
56
+ }] : children,
57
+ ...config.viewBox ? { viewBox: config.viewBox } : {},
58
+ ...config.animations ? { animations: config.animations } : {}
30
59
  };
31
60
  },
32
61
  mount(container, options) {
33
- return require_mountSvg.mountSvg(container, fig.ir, renderOptions(options));
62
+ return require_mount_svg.mountSvg(container, fig.ir, renderOptions(options));
63
+ },
64
+ mountCanvas(container, options) {
65
+ return require_mount_canvas.mountCanvas(container, fig.ir, renderOptions(options));
34
66
  },
35
67
  toSvgString(options) {
36
- return require_renderToSvgString.renderToSvgString(fig.ir, renderOptions(options));
68
+ return require_render_to_svg_string.renderToSvgString(fig.ir, renderOptions(options));
37
69
  },
38
70
  toCanvas(canvas, options) {
39
71
  const compile = { ...config };
@@ -41,7 +73,9 @@ var createFigure = (config, children) => {
41
73
  delete compile.idPrefix;
42
74
  delete compile.width;
43
75
  delete compile.height;
44
- (0, _retikz_render_canvas.renderToCanvas)(canvas, require_toScene.toScene(fig.ir, compile), options ?? {});
76
+ delete compile.animations;
77
+ for (const key of require_types.FIGURE_ROOT_STYLE_FIELDS) delete compile[key];
78
+ (0, _retikz_render_canvas.renderToCanvas)(canvas, require_to_scene.toScene(fig.ir, compile), options ?? {});
45
79
  },
46
80
  node(...args) {
47
81
  children.push(require_node.node(...args));
@@ -55,8 +89,8 @@ var createFigure = (config, children) => {
55
89
  children.push(require_coordinate.coordinate(id, coordConfig));
56
90
  return fig;
57
91
  },
58
- scope(scopeConfig, build) {
59
- children.push(require_scope.scope(scopeConfig, build));
92
+ scope(scopeConfig, arg) {
93
+ children.push(require_scope.scope(scopeConfig, arg));
60
94
  return fig;
61
95
  }
62
96
  };
@@ -1,25 +1,27 @@
1
1
  import { IR } from '@retikz/core';
2
2
  import { RenderOptions } from '@retikz/render/canvas';
3
- import { FIGURE_BRAND } from './builder/isFigure';
3
+ import { FIGURE_BRAND } from './builder/is-figure';
4
4
  import { node } from './builder/node';
5
5
  import { ScopeBuilder } from './builder/scope';
6
6
  import { Child, CoordinateConfig, DrawConfig, FigureConfig, ScopeConfig, Way } from './builder/types';
7
- import { MountOptions, RenderToStringOptions, VanillaView } from './types';
7
+ import { CanvasView, MountCanvasOptions, MountOptions, RenderToStringOptions, VanillaView } from './types';
8
8
  /**
9
9
  * 命令式 builder 的装配产物 —— 唯一返回类型
10
10
  * @description hyperscript(`figure(config, children)`)与 fluent(`figure(config).node(...)`)都产它、可混用、`.ir` 一致。
11
- * `.mount`/`.toSvgString`/`.toCanvas` `this.ir`(IR,非 Figure)交底层 renderer;fluent 方法往内部 children 追加、链式返回 this。
11
+ * `.mount`/`.mountCanvas`(交互式挂载)/`.toSvgString`/`.toCanvas`(一次性产出)把 `this.ir`(IR,非 Figure)交底层
12
+ * renderer;fluent 方法往内部 children 追加、链式返回 this。
12
13
  */
13
14
  export type Figure = {
14
15
  readonly [FIGURE_BRAND]: true;
15
16
  readonly ir: IR;
16
17
  mount: (container: Element, options?: MountOptions) => VanillaView;
18
+ mountCanvas: (container: Element, options?: MountCanvasOptions) => CanvasView;
17
19
  toSvgString: (options?: RenderToStringOptions) => string;
18
20
  toCanvas: (canvas: HTMLCanvasElement, options?: RenderOptions) => void;
19
21
  node: (...args: Parameters<typeof node>) => Figure;
20
22
  draw: (way: Way, config?: DrawConfig) => Figure;
21
23
  coordinate: (id: string, config: CoordinateConfig) => Figure;
22
- scope: (config: ScopeConfig, build: (s: ScopeBuilder) => void) => Figure;
24
+ scope: (config: ScopeConfig, arg: Array<Child> | ((s: ScopeBuilder) => void)) => Figure;
23
25
  };
24
26
  /** figure() 的内部入口:装配 Figure(持 config + children,方法闭包其上) */
25
27
  export declare const createFigure: (config: FigureConfig, children: Array<Child>) => Figure;
@@ -1 +1 @@
1
- {"version":3,"file":"figure.d.ts","sourceRoot":"","sources":["../../src/figure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAI3G,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhF;;;;GAIG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,WAAW,CAAC;IACnE,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,qBAAqB,KAAK,MAAM,CAAC;IACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACvE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,MAAM,CAAC;IACnD,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC;IAChD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC7D,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,KAAK,MAAM,CAAC;CAC1E,CAAC;AAEF,2DAA2D;AAC3D,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,EAAE,UAAU,KAAK,CAAC,KAAK,CAAC,KAAG,MAoD3E,CAAC"}
1
+ {"version":3,"file":"figure.d.ts","sourceRoot":"","sources":["../../src/figure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAEvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAEtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAmB,WAAW,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAK5H,OAAO,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,YAAY,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEhH;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,QAAQ,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC;IAC9B,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;IAChB,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,YAAY,KAAK,WAAW,CAAC;IACnE,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,UAAU,CAAC;IAC9E,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,qBAAqB,KAAK,MAAM,CAAC;IACzD,QAAQ,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACvE,IAAI,EAAE,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,MAAM,CAAC;IACnD,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,UAAU,KAAK,MAAM,CAAC;IAChD,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,KAAK,MAAM,CAAC;IAC7D,KAAK,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,YAAY,KAAK,IAAI,CAAC,KAAK,MAAM,CAAC;CACzF,CAAC;AAoBF,2DAA2D;AAC3D,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,EAAE,UAAU,KAAK,CAAC,KAAK,CAAC,KAAG,MAoE3E,CAAC"}
@@ -1,14 +1,20 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_renderToSvgString = require("./renderToSvgString.cjs");
3
- const require_mountSvg = require("./mountSvg.cjs");
2
+ const require_render_to_svg_string = require("./render-to-svg-string.cjs");
3
+ const require_mount_svg = require("./mount-svg.cjs");
4
4
  const require_hydrate = require("./hydrate.cjs");
5
- const require_mountCanvas = require("./mountCanvas.cjs");
5
+ const require_mount_canvas = require("./mount-canvas.cjs");
6
6
  const require_coordinate = require("./builder/coordinate.cjs");
7
7
  const require_draw = require("./builder/draw.cjs");
8
8
  const require_node = require("./builder/node.cjs");
9
9
  const require_scope = require("./builder/scope.cjs");
10
10
  const require_figure = require("./builder/figure.cjs");
11
11
  let _retikz_core = require("@retikz/core");
12
+ Object.defineProperty(exports, "DrawWay", {
13
+ enumerable: true,
14
+ get: function() {
15
+ return _retikz_core.DrawWay;
16
+ }
17
+ });
12
18
  Object.defineProperty(exports, "blink", {
13
19
  enumerable: true,
14
20
  get: function() {
@@ -28,6 +34,24 @@ Object.defineProperty(exports, "colorShift", {
28
34
  }
29
35
  });
30
36
  exports.coordinate = require_coordinate.coordinate;
37
+ Object.defineProperty(exports, "defineArrow", {
38
+ enumerable: true,
39
+ get: function() {
40
+ return _retikz_core.defineArrow;
41
+ }
42
+ });
43
+ Object.defineProperty(exports, "definePathGenerator", {
44
+ enumerable: true,
45
+ get: function() {
46
+ return _retikz_core.definePathGenerator;
47
+ }
48
+ });
49
+ Object.defineProperty(exports, "definePattern", {
50
+ enumerable: true,
51
+ get: function() {
52
+ return _retikz_core.definePattern;
53
+ }
54
+ });
31
55
  exports.draw = require_draw.draw;
32
56
  Object.defineProperty(exports, "drawOn", {
33
57
  enumerable: true,
@@ -67,8 +91,8 @@ Object.defineProperty(exports, "loop", {
67
91
  return _retikz_core.loop;
68
92
  }
69
93
  });
70
- exports.mountCanvas = require_mountCanvas.mountCanvas;
71
- exports.mountSvg = require_mountSvg.mountSvg;
94
+ exports.mountCanvas = require_mount_canvas.mountCanvas;
95
+ exports.mountSvg = require_mount_svg.mountSvg;
72
96
  exports.node = require_node.node;
73
97
  Object.defineProperty(exports, "pulse", {
74
98
  enumerable: true,
@@ -76,7 +100,7 @@ Object.defineProperty(exports, "pulse", {
76
100
  return _retikz_core.pulse;
77
101
  }
78
102
  });
79
- exports.renderToSvgString = require_renderToSvgString.renderToSvgString;
103
+ exports.renderToSvgString = require_render_to_svg_string.renderToSvgString;
80
104
  Object.defineProperty(exports, "scaleIn", {
81
105
  enumerable: true,
82
106
  get: function() {
@@ -6,13 +6,19 @@
6
6
  * `figure`/`node`/`draw`/`coordinate`/`scope` 是命令式 builder:用具名图元 + 自定义 shape 构图、产同一份 IR。
7
7
  * 模块顶层不触碰任何 DOM 全局——`import` 在纯 Node 下安全。
8
8
  */
9
- export { renderToSvgString } from './renderToSvgString';
10
- export { mountSvg } from './mountSvg';
9
+ export { renderToSvgString } from './render-to-svg-string';
10
+ export { mountSvg } from './mount-svg';
11
11
  export { hydrate } from './hydrate';
12
- export { mountCanvas } from './mountCanvas';
13
- export type { RetikzEventName, HydrationHandlers, HydrationHandler, HydrationContext, HydrationAnimationControls, HydrationGeometry, } from '@retikz/render/hydration';
12
+ export { mountCanvas } from './mount-canvas';
13
+ export type { RetikzEventValue, HydrationHandlers, HydrationHandler, HydrationContext, HydrationAnimationControls, HydrationGeometry, } from '@retikz/render/hydration';
14
14
  export { fadeIn, drawOn, scaleIn, grow, growUp, slideIn, colorShift, cameraTo, pulse, spin, loop, flash, blink, wiggle, stagger, } from '@retikz/core';
15
15
  export type { AnimationPresetOptions, ScaleInOptions, GrowUpOptions, SlideInOptions, ColorShiftOptions, CameraToOptions, PulseOptions, SpinOptions, LoopOptions, FlashOptions, BlinkOptions, WiggleOptions, } from '@retikz/core';
16
+ export { DrawWay } from '@retikz/core';
17
+ export type { WayItem, WayDSL, WayCycle, WayVia, WayRelativeItem, WayLabel, WayLabelOp, } from '@retikz/core';
18
+ export type { IRNodeTarget, IRAnchorRef } from '@retikz/core';
19
+ export { defineArrow, definePattern, definePathGenerator } from '@retikz/core';
20
+ export type { ArrowDefinition, ArrowEmitContext, PatternDefinition, PatternEmitContext, MarkerPrimitive, MarkerFill, PathGeneratorDefinition, PathGeneratorContext, IRJsonObject, } from '@retikz/core';
21
+ export type { AnimationPropertyDefinition, AnimationPropertyRegistry, CubicBezier, EasingFn, EasingRegistry, } from '@retikz/render/animation';
16
22
  export { figure } from './builder/figure';
17
23
  export { node } from './builder/node';
18
24
  export { draw } from './builder/draw';
@@ -20,6 +26,6 @@ export { coordinate } from './builder/coordinate';
20
26
  export { scope } from './builder/scope';
21
27
  export type { Figure } from './figure';
22
28
  export type { ScopeBuilder } from './builder/scope';
23
- export type { Child, NodeConfig, DrawConfig, CoordinateConfig, ScopeConfig, FigureConfig, Way, } from './builder/types';
29
+ export type { Child, NodeConfig, DrawConfig, CoordinateConfig, ScopeConfig, FigureConfig, FigureRootStyle, Way, } from './builder/types';
24
30
  export type { RenderInput, CommonOptions, MountOptions, RenderToStringOptions, VanillaView, CanvasView, MountCanvasOptions, HydrateOptions, HydrationHandle, ScenePoint, AnimationControls, } from './types';
25
31
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,GAAG,GACJ,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,YAAY,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,0BAA0B,EAC1B,iBAAiB,GAClB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,MAAM,EACN,MAAM,EACN,OAAO,EACP,IAAI,EACJ,MAAM,EACN,OAAO,EACP,UAAU,EACV,QAAQ,EACR,KAAK,EACL,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,OAAO,GACR,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,cAAc,EACd,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,GACd,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EACV,OAAO,EACP,MAAM,EACN,QAAQ,EACR,MAAM,EACN,eAAe,EACf,QAAQ,EACR,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC/E,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,uBAAuB,EACvB,oBAAoB,EACpB,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,2BAA2B,EAC3B,yBAAyB,EACzB,WAAW,EACX,QAAQ,EACR,cAAc,GACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxC,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,YAAY,EACV,KAAK,EACL,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,eAAe,EACf,GAAG,GACJ,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,qBAAqB,EACrB,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,UAAU,EACV,iBAAiB,GAClB,MAAM,SAAS,CAAC"}