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

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 (93) hide show
  1. package/dist/es/compile/compile.d.ts +1 -1
  2. package/dist/es/compile/compile.d.ts.map +1 -1
  3. package/dist/es/compile/compile.js +35 -3
  4. package/dist/es/compile/node.d.ts +3 -1
  5. package/dist/es/compile/node.d.ts.map +1 -1
  6. package/dist/es/compile/node.js +3 -0
  7. package/dist/es/compile/path/index.d.ts.map +1 -1
  8. package/dist/es/compile/path/index.js +2 -0
  9. package/dist/es/index.d.ts +4 -1
  10. package/dist/es/index.d.ts.map +1 -1
  11. package/dist/es/index.js +3 -1
  12. package/dist/es/ir/animation.d.ts +218 -0
  13. package/dist/es/ir/animation.d.ts.map +1 -0
  14. package/dist/es/ir/animation.js +118 -0
  15. package/dist/es/ir/index.d.ts +1 -0
  16. package/dist/es/ir/index.d.ts.map +1 -1
  17. package/dist/es/ir/node.d.ts +176 -20
  18. package/dist/es/ir/node.d.ts.map +1 -1
  19. package/dist/es/ir/node.js +2 -0
  20. package/dist/es/ir/path/arrow.d.ts +24 -24
  21. package/dist/es/ir/path/path.d.ts +212 -56
  22. package/dist/es/ir/path/path.d.ts.map +1 -1
  23. package/dist/es/ir/path/path.js +2 -0
  24. package/dist/es/ir/scene.d.ts +156 -0
  25. package/dist/es/ir/scene.d.ts.map +1 -1
  26. package/dist/es/ir/scene.js +3 -1
  27. package/dist/es/ir/scope.d.ts +834 -196
  28. package/dist/es/ir/scope.d.ts.map +1 -1
  29. package/dist/es/ir/scope.js +6 -2
  30. package/dist/es/presets/animation.d.ts +123 -0
  31. package/dist/es/presets/animation.d.ts.map +1 -0
  32. package/dist/es/presets/animation.js +272 -0
  33. package/dist/es/presets/index.d.ts +3 -0
  34. package/dist/es/presets/index.d.ts.map +1 -0
  35. package/dist/es/primitive/ellipse.d.ts +3 -0
  36. package/dist/es/primitive/ellipse.d.ts.map +1 -1
  37. package/dist/es/primitive/group.d.ts +3 -0
  38. package/dist/es/primitive/group.d.ts.map +1 -1
  39. package/dist/es/primitive/path.d.ts +3 -0
  40. package/dist/es/primitive/path.d.ts.map +1 -1
  41. package/dist/es/primitive/rect.d.ts +3 -0
  42. package/dist/es/primitive/rect.d.ts.map +1 -1
  43. package/dist/es/primitive/scene.d.ts +3 -0
  44. package/dist/es/primitive/scene.d.ts.map +1 -1
  45. package/dist/es/primitive/text.d.ts +3 -0
  46. package/dist/es/primitive/text.d.ts.map +1 -1
  47. package/dist/lib/compile/compile.cjs +35 -3
  48. package/dist/lib/compile/compile.d.ts +1 -1
  49. package/dist/lib/compile/compile.d.ts.map +1 -1
  50. package/dist/lib/compile/node.cjs +3 -0
  51. package/dist/lib/compile/node.d.ts +3 -1
  52. package/dist/lib/compile/node.d.ts.map +1 -1
  53. package/dist/lib/compile/path/index.cjs +2 -0
  54. package/dist/lib/compile/path/index.d.ts.map +1 -1
  55. package/dist/lib/index.cjs +27 -0
  56. package/dist/lib/index.d.ts +4 -1
  57. package/dist/lib/index.d.ts.map +1 -1
  58. package/dist/lib/ir/animation.cjs +127 -0
  59. package/dist/lib/ir/animation.d.ts +218 -0
  60. package/dist/lib/ir/animation.d.ts.map +1 -0
  61. package/dist/lib/ir/index.d.ts +1 -0
  62. package/dist/lib/ir/index.d.ts.map +1 -1
  63. package/dist/lib/ir/node.cjs +2 -0
  64. package/dist/lib/ir/node.d.ts +176 -20
  65. package/dist/lib/ir/node.d.ts.map +1 -1
  66. package/dist/lib/ir/path/arrow.d.ts +24 -24
  67. package/dist/lib/ir/path/path.cjs +2 -0
  68. package/dist/lib/ir/path/path.d.ts +212 -56
  69. package/dist/lib/ir/path/path.d.ts.map +1 -1
  70. package/dist/lib/ir/scene.cjs +3 -1
  71. package/dist/lib/ir/scene.d.ts +156 -0
  72. package/dist/lib/ir/scene.d.ts.map +1 -1
  73. package/dist/lib/ir/scope.cjs +6 -2
  74. package/dist/lib/ir/scope.d.ts +834 -196
  75. package/dist/lib/ir/scope.d.ts.map +1 -1
  76. package/dist/lib/presets/animation.cjs +286 -0
  77. package/dist/lib/presets/animation.d.ts +123 -0
  78. package/dist/lib/presets/animation.d.ts.map +1 -0
  79. package/dist/lib/presets/index.d.ts +3 -0
  80. package/dist/lib/presets/index.d.ts.map +1 -0
  81. package/dist/lib/primitive/ellipse.d.ts +3 -0
  82. package/dist/lib/primitive/ellipse.d.ts.map +1 -1
  83. package/dist/lib/primitive/group.d.ts +3 -0
  84. package/dist/lib/primitive/group.d.ts.map +1 -1
  85. package/dist/lib/primitive/path.d.ts +3 -0
  86. package/dist/lib/primitive/path.d.ts.map +1 -1
  87. package/dist/lib/primitive/rect.d.ts +3 -0
  88. package/dist/lib/primitive/rect.d.ts.map +1 -1
  89. package/dist/lib/primitive/scene.d.ts +3 -0
  90. package/dist/lib/primitive/scene.d.ts.map +1 -1
  91. package/dist/lib/primitive/text.d.ts +3 -0
  92. package/dist/lib/primitive/text.d.ts.map +1 -1
  93. package/package.json +1 -1
@@ -95,6 +95,26 @@ var defaultWarnDispatcher = (warning) => {
95
95
  if (typeof process !== "undefined" && process.env.NODE_ENV === "production") return;
96
96
  console.warn(`[retikz] ${warning.code} at ${warning.path}: ${warning.message}`);
97
97
  };
98
+ /**
99
+ * 校验 animation tracks 的 viewBox⇔根 约束(schema 上下文无关、分不清元素 vs 根,故在此 compile 层做)
100
+ * @description `viewBox`(镜头)只在 scene 根合法、元素级非法;scene 根只接受 `viewBox`。违例 track → `warn(ANIMATION_INVALID_PROPERTY)` + drop(不丢图、不影响其余 track)。全空返回 undefined(不 stamp 空数组)。
101
+ */
102
+ var filterAnimations = (tracks, context, onWarn, irPath) => {
103
+ if (tracks === void 0) return void 0;
104
+ const kept = tracks.filter((track, index) => {
105
+ const isViewBox = track.property === "viewBox";
106
+ if (!(context === "root" ? isViewBox : !isViewBox)) {
107
+ onWarn({
108
+ code: "ANIMATION_INVALID_PROPERTY",
109
+ message: context === "root" ? `Scene-root animation must use the "viewBox" property (camera); got "${track.property}". Track dropped.` : `Animation property "viewBox" is camera-only (scene root), not valid on an element. Track dropped.`,
110
+ path: `${irPath}.animations[${index}]`
111
+ });
112
+ return false;
113
+ }
114
+ return true;
115
+ });
116
+ return kept.length > 0 ? kept : void 0;
117
+ };
98
118
  var makePathPlaceholder = () => ({ type: "path-placeholder" });
99
119
  /** 把内部 sink 收窄回公开 ScenePrimitive[]:占位已全部回填(compileToScene 末端 placeholderBalance 无条件校验兜底) */
100
120
  var sealSink = (sink) => sink;
@@ -253,7 +273,11 @@ var compileToScene = (ir, options = {}) => {
253
273
  const child = children[i];
254
274
  if ("namespace" in child) throw new Error(`Unexpected composite node '${child.namespace}.${child.type}' reached compile; composites must be lowered via lowerComposites first.`);
255
275
  if (child.type === "node") {
256
- const layout = require_node.layoutNode(require_style.resolveNodeStyle(child, styleStack), measureText, nameStack, nodeDistance, chain, require_style.resolveLabelDefault(styleStack), effectiveShapes, require_anchor.refPointOfTarget);
276
+ const effectiveNode = require_style.resolveNodeStyle(child, styleStack);
277
+ const layout = require_node.layoutNode({
278
+ ...effectiveNode,
279
+ animations: filterAnimations(effectiveNode.animations, "element", onWarn, `${locatorPrefix}children[${i}].node`)
280
+ }, measureText, nameStack, nodeDistance, chain, require_style.resolveLabelDefault(styleStack), effectiveShapes, require_anchor.refPointOfTarget);
257
281
  const globalLayout = chain.length === 0 ? layout : require_scope.projectLayoutToGlobal(layout, chain);
258
282
  if (child.id) nameStack.register(child.id, globalLayout, `${locatorPrefix}children[${i}].node.id`);
259
283
  for (const prim of require_node.emitNodePrimitives(layout, round, paint.resolve)) {
@@ -317,13 +341,19 @@ var compileToScene = (ir, options = {}) => {
317
341
  };
318
342
  if (child.id !== void 0) group.id = child.id;
319
343
  if (child.meta !== void 0) group.meta = child.meta;
344
+ const scopeAnimations = filterAnimations(child.animations, "element", onWarn, `${locatorPrefix}children[${i}].scope`);
345
+ if (scopeAnimations !== void 0) group.animations = scopeAnimations;
320
346
  if (hasOwnTransforms) group.transforms = [...ownTransforms];
321
347
  if (child.clip !== void 0) group.clipRef = clip.resolve(child.clip);
322
348
  sink.push(group);
323
349
  if (child.zIndex !== void 0) zIndexOf.set(group, child.zIndex);
324
350
  } else {
351
+ const effectivePath = require_style.resolveEffectivePath(child, styleStack);
325
352
  const pending = {
326
- path: require_style.resolveEffectivePath(child, styleStack),
353
+ path: {
354
+ ...effectivePath,
355
+ animations: filterAnimations(effectivePath.animations, "element", onWarn, `${locatorPrefix}children[${i}].path`)
356
+ },
327
357
  irPath: `${locatorPrefix}children[${i}].path`,
328
358
  scopeChain: chain,
329
359
  zIndex: child.zIndex
@@ -349,10 +379,12 @@ var compileToScene = (ir, options = {}) => {
349
379
  throw new Error(`internal: ${placeholderBalance} unresolved path placeholder(s) leaked into Scene output${detail}`);
350
380
  }
351
381
  const resources = [...paint.resources(), ...clip.resources()];
382
+ const rootAnimations = filterAnimations(loweredIr.animations, "root", onWarn, "scene");
352
383
  return {
353
384
  primitives: stableSortByZIndex(sealSink(primitives)),
354
385
  layout: loweredIr.viewBox !== void 0 ? viewBoxToLayout(loweredIr.viewBox, round) : assertFiniteLayout(require_layout.computeLayout(allPoints, layoutPadding, round)),
355
- ...resources.length > 0 ? { resources } : {}
386
+ ...resources.length > 0 ? { resources } : {},
387
+ ...rootAnimations !== void 0 ? { animations: rootAnimations } : {}
356
388
  };
357
389
  };
358
390
  //#endregion
@@ -12,7 +12,7 @@ export type CompileWarning = {
12
12
  * 警告类型代码(机器可读)
13
13
  * @description 用户可按 code 分支处理;未来 alpha 加新 code 不破坏调用方
14
14
  */
15
- code: 'UNRESOLVED_NODE_REFERENCE' | 'PATH_TOO_SHORT' | 'ANCHOR_RESOLUTION_FAILED' | 'OFFSET_BASE_UNRESOLVED' | 'POLAR_ORIGIN_UNRESOLVED' | 'AT_TARGET_UNRESOLVED' | 'RELATIVE_INITIAL_NO_PREV_END' | 'BBOX_EXTREME_INPUT' | 'DUPLICATE_NODE_ID' | 'SHAPE_OVERRIDES_BUILTIN' | 'ARROW_OVERRIDES_BUILTIN' | 'PATTERN_OVERRIDES_BUILTIN' | 'COMPOSITE_NOT_REGISTERED' | (string & {});
15
+ code: 'UNRESOLVED_NODE_REFERENCE' | 'PATH_TOO_SHORT' | 'ANCHOR_RESOLUTION_FAILED' | 'OFFSET_BASE_UNRESOLVED' | 'POLAR_ORIGIN_UNRESOLVED' | 'AT_TARGET_UNRESOLVED' | 'RELATIVE_INITIAL_NO_PREV_END' | 'BBOX_EXTREME_INPUT' | 'DUPLICATE_NODE_ID' | 'SHAPE_OVERRIDES_BUILTIN' | 'ARROW_OVERRIDES_BUILTIN' | 'PATTERN_OVERRIDES_BUILTIN' | 'COMPOSITE_NOT_REGISTERED' | 'ANIMATION_INVALID_PROPERTY' | (string & {});
16
16
  /** 人类可读消息(英文) */
17
17
  message: string;
18
18
  /** IR locator 路径(jq-like,如 `'children[3].path.children[1].to'`) */
@@ -1 +1 @@
1
- {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/compile/compile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAwC,MAAM,OAAO,CAAC;AACtE,OAAO,KAAK,EAAa,KAAK,EAA6B,MAAM,cAAc,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAwBzD,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AA6CrE,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,IAAI,EACA,2BAA2B,GAC3B,gBAAgB,GAChB,0BAA0B,GAC1B,wBAAwB,GACxB,yBAAyB,GACzB,sBAAsB,GACtB,8BAA8B,GAC9B,oBAAoB,GACpB,mBAAmB,GACnB,yBAAyB,GACzB,yBAAyB,GACzB,2BAA2B,GAC3B,0BAA0B,GAC1B,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAClB,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,cAAc,GAAG;IAC3B,oCAAoC;IACpC,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC7C;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACzD;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACxC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAwJF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,IAAI,EAAE,EAAE,UAAS,cAAmB,KAAG,KAqWrE,CAAC"}
1
+ {"version":3,"file":"compile.d.ts","sourceRoot":"","sources":["../../../src/compile/compile.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAA0D,MAAM,OAAO,CAAC;AACxF,OAAO,KAAK,EAAa,KAAK,EAA6B,MAAM,cAAc,CAAC;AAEhF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAwBzD,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,gBAAgB,CAAC;AA6CrE,uEAAuE;AACvE,MAAM,MAAM,cAAc,GAAG;IAC3B;;;OAGG;IACH,IAAI,EACA,2BAA2B,GAC3B,gBAAgB,GAChB,0BAA0B,GAC1B,wBAAwB,GACxB,yBAAyB,GACzB,sBAAsB,GACtB,8BAA8B,GAC9B,oBAAoB,GACpB,mBAAmB,GACnB,yBAAyB,GACzB,yBAAyB,GACzB,2BAA2B,GAC3B,0BAA0B,GAC1B,4BAA4B,GAC5B,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IAClB,iBAAiB;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,2BAA2B;AAC3B,MAAM,MAAM,cAAc,GAAG;IAC3B,oCAAoC;IACpC,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,IAAI,CAAC;IAC3C;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC7C;;;;;;;OAOG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;IACzD;;;;OAIG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACxC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,CAAC;AAsLF;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,IAAI,EAAE,EAAE,UAAS,cAAmB,KAAG,KA6WrE,CAAC"}
@@ -406,6 +406,7 @@ var layoutNode = (node, measureText, nameStack, nodeDistance, scopeChain = [], l
406
406
  labels,
407
407
  boundary: node.boundary,
408
408
  meta: node.meta,
409
+ animations: node.animations,
409
410
  shapes
410
411
  };
411
412
  };
@@ -546,6 +547,7 @@ var emitNodePrimitives = (layout, round, resolveFill) => {
546
547
  if (!(layout.rotateDeg !== 0 || layout.lines !== void 0)) {
547
548
  if (layout.id !== void 0) for (const prim of shapePrims) prim.id = layout.id;
548
549
  if (layout.meta !== void 0) for (const prim of shapePrims) prim.meta = layout.meta;
550
+ if (layout.animations !== void 0) for (const prim of shapePrims) prim.animations = layout.animations;
549
551
  return inner;
550
552
  }
551
553
  const group = {
@@ -554,6 +556,7 @@ var emitNodePrimitives = (layout, round, resolveFill) => {
554
556
  };
555
557
  if (layout.id !== void 0) group.id = layout.id;
556
558
  if (layout.meta !== void 0) group.meta = layout.meta;
559
+ if (layout.animations !== void 0) group.animations = layout.animations;
557
560
  if (layout.rotateDeg !== 0) group.transforms = [{
558
561
  kind: "rotate",
559
562
  degrees: round(layout.rotateDeg),
@@ -1,6 +1,6 @@
1
1
  import { Position } from '../geometry/point';
2
2
  import { Rect } from '../geometry/rect';
3
- import { AtDirection, IRBoundary, IRJsonObject, IRLabelDefault, IRNode, IRPaintSpec } from '../ir';
3
+ import { AtDirection, IRAnimationTrack, IRBoundary, IRJsonObject, IRLabelDefault, IRNode, IRPaintSpec } from '../ir';
4
4
  import { PaintResolver } from './paint';
5
5
  import { ScenePrimitive, TextLine, Transform } from '../primitive';
6
6
  import { ShapeDefinition } from '../shapes';
@@ -77,6 +77,8 @@ export type NodeLayout = {
77
77
  boundary?: IRBoundary;
78
78
  /** provenance 元数据(来自 IR `node.meta`);emit 时原样 stamp 到 node 的 top-level 图元,renderer 忽略 */
79
79
  meta?: IRJsonObject;
80
+ /** 时间轴动画 tracks(来自 IR `node.animations`);emit 时原样 stamp 到 node 的 top-level 图元,renderer 播放 / 降级 */
81
+ animations?: Array<IRAnimationTrack>;
80
82
  /** 构建本 layout 的 shape 注册表引用——借用连接面(borrowed boundary)查表用 */
81
83
  shapes: Record<string, ShapeDefinition>;
82
84
  };
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/compile/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/compile/node.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAc,MAAM,EAAe,WAAW,EAAyB,MAAM,OAAO,CAAC;AAE1K,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAa,cAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEnF,OAAO,KAAK,EAAE,eAAe,EAAc,MAAM,WAAW,CAAC;AAE7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,oBAAoB,EAAmB,MAAM,YAAY,CAAC;AAExE,OAAO,KAAK,EAAY,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAmI7D,MAAM,MAAM,UAAU,GAAG;IACvB,qBAAqB;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,iFAAiF;IACjF,QAAQ,EAAE,eAAe,CAAC;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;IAC3B;;;OAGG;IACH,IAAI,EAAE,IAAI,CAAC;IACX,4DAA4D;IAC5D,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACxB,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;IAClC,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,2BAA2B;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS;IACT,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,SAAS;IACT,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5C,wFAAwF;IACxF,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC;IAC5B,gBAAgB;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC5B,sCAAsC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,yFAAyF;IACzF,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,kGAAkG;IAClG,UAAU,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,CAAC;IACrC,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;CACzC,CAAC;AAEF,4CAA4C;AAC5C,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,QAAQ,EAAE,WAAW,GAAG,MAAM,CAAC;IAC/B,aAAa;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC5C,4DAA4D;IAC5D,MAAM,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;IAChD,+BAA+B;IAC/B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,aAAa,EAAE,MAAM,CAAC;IACtB,sFAAsF;IACtF,GAAG,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;CACxF,CAAC;AAQF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,UAAU,EAClB,QAAQ,QAAQ,EAChB,WAAU,UAAU,GAAG,SAAmB,KACzC,QASF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,QAAQ,GACnB,QAAQ,UAAU,EAClB,MAAM,MAAM,EACZ,WAAU,UAAU,GAAG,SAAmB,KACzC,QAqBF,CAAC;AA8FF;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAC1B,QAAQ,UAAU,EAClB,UAAU,MAAM,EAChB,WAAU,UAAU,GAAG,SAAmB,KACzC,QAoBF,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,UAAU,GACrB,MAAM,MAAM,EACZ,aAAa,YAAY,EACzB,WAAW,SAAS,EACpB,eAAe,MAAM,EACrB,aAAY,aAAa,CAAC,SAAS,CAAM,EACzC,eAAe,cAAc,EAC7B,SAAQ,MAAM,CAAC,MAAM,EAAE,eAAe,CAAkB,EACxD,uBAAuB,oBAAoB,KAC1C,UAiNF,CAAC;AAcF;;;;GAIG;AACH;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,QAAQ,UAAU,KAAG,KAAK,CAAC,QAAQ,CA6BpE,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,UAAU,EAClB,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC5B,aAAa,aAAa,KACzB,KAAK,CAAC,cAAc,CAqItB,CAAC"}
@@ -648,6 +648,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
648
648
  };
649
649
  if (path.id !== void 0) group.id = path.id;
650
650
  if (path.meta !== void 0) group.meta = path.meta;
651
+ if (path.animations !== void 0) group.animations = path.animations;
651
652
  const transformedPoints = points.map((p) => require_scope.applyTransformChain(p, transforms));
652
653
  if (!transformedPoints.every(isFinitePoint)) throw new Error("Path rotate / scale produced a non-finite coordinate (scale too large); use a smaller scale.");
653
654
  return {
@@ -658,6 +659,7 @@ var emitPathPrimitive = (path, nameStack, round, measureText = require_text_metr
658
659
  }
659
660
  if (path.id !== void 0) primitive.id = path.id;
660
661
  if (path.meta !== void 0) primitive.meta = path.meta;
662
+ if (path.animations !== void 0) primitive.animations = path.animations;
661
663
  return {
662
664
  primitives: bodyPrims,
663
665
  points
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/compile/path/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAY9C,OAAO,KAAK,EACV,MAAM,EAEN,UAAU,EAGX,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAIV,cAAc,EACd,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,iBAAiB,CAAC;AAKtE,OAAO,EAAE,KAAK,eAAe,EAA2D,MAAM,UAAU,CAAC;AA8FzG,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iCAAiC;IACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,wEAAwE;IACxE,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACnE,CAAC;AA0EF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,WAAW,SAAS,EACpB,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC5B,cAAa,YAA+B,EAC5C,WAAU,gBAAqB,KAC9B;IAAE,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CAAE,GAAG,IAkvBrE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/compile/path/index.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAY9C,OAAO,KAAK,EACV,MAAM,EAEN,UAAU,EAGX,MAAM,UAAU,CAAC;AAElB,OAAO,KAAK,EAIV,cAAc,EACd,SAAS,EACV,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,KAAK,YAAY,EAAoB,MAAM,iBAAiB,CAAC;AAKtE,OAAO,EAAE,KAAK,eAAe,EAA2D,MAAM,UAAU,CAAC;AA8FzG,mCAAmC;AACnC,MAAM,MAAM,gBAAgB,GAAG;IAC7B,iCAAiC;IACjC,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;KACd,KAAK,IAAI,CAAC;IACX,yDAAyD;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,UAAU,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACtC,wEAAwE;IACxE,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACnE,CAAC;AA0EF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,WAAW,SAAS,EACpB,OAAO,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAC5B,cAAa,YAA+B,EAC5C,WAAU,gBAAqB,KAC9B;IAAE,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;IAAC,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CAAE,GAAG,IAsvBrE,CAAC"}
@@ -9,6 +9,7 @@ const require_boundary = require("./ir/boundary.cjs");
9
9
  const require_target = require("./ir/path/target.cjs");
10
10
  const require_between_position = require("./ir/position/between-position.cjs");
11
11
  const require_font = require("./ir/font.cjs");
12
+ const require_animation = require("./ir/animation.cjs");
12
13
  const require_paint = require("./ir/paint.cjs");
13
14
  const require_clip = require("./ir/clip.cjs");
14
15
  const require_text = require("./ir/text.cjs");
@@ -34,6 +35,7 @@ const require_compile = require("./compile/compile.cjs");
34
35
  const require_parseNodeTarget = require("./parsers/parseNodeTarget.cjs");
35
36
  const require_parseTargetSugar = require("./parsers/parseTargetSugar.cjs");
36
37
  const require_parseWay = require("./parsers/parseWay.cjs");
38
+ const require_animation$1 = require("./presets/animation.cjs");
37
39
  const require_polar = require("./geometry/polar.cjs");
38
40
  const require_point = require("./geometry/point.cjs");
39
41
  const require_circle = require("./geometry/circle.cjs");
@@ -46,6 +48,12 @@ exports.ARROW_SHAPES = require_arrow.ARROW_SHAPES;
46
48
  exports.AT_DIRECTIONS = require_at_position.AT_DIRECTIONS;
47
49
  exports.AbsoluteTargetSchema = require_between_position.AbsoluteTargetSchema;
48
50
  exports.AnchorRefSchema = require_target.AnchorRefSchema;
51
+ exports.AnimationDirection = require_animation.AnimationDirection;
52
+ exports.AnimationEasing = require_animation.AnimationEasing;
53
+ exports.AnimationFill = require_animation.AnimationFill;
54
+ exports.AnimationProperty = require_animation.AnimationProperty;
55
+ exports.AnimationTrackSchema = require_animation.AnimationTrackSchema;
56
+ exports.AnimationTrigger = require_animation.AnimationTrigger;
49
57
  exports.ArcStepSchema = require_step.ArcStepSchema;
50
58
  exports.ArrowDefaultSchema = require_scope.ArrowDefaultSchema;
51
59
  exports.ArrowDetailSchema = require_arrow.ArrowDetailSchema;
@@ -70,6 +78,7 @@ exports.CurveStepSchema = require_step.CurveStepSchema;
70
78
  exports.CycleStepSchema = require_step.CycleStepSchema;
71
79
  exports.DEFAULT_ARROW_SHAPE = require_arrow.DEFAULT_ARROW_SHAPE;
72
80
  exports.DrawWay = require_parseWay.DrawWay;
81
+ exports.EasingSchema = require_animation.EasingSchema;
73
82
  exports.EllipsePathStepSchema = require_step.EllipsePathStepSchema;
74
83
  exports.FoldStepSchema = require_step.FoldStepSchema;
75
84
  exports.FontSchema = require_font.FontSchema;
@@ -78,6 +87,7 @@ exports.GradientStopSchema = require_paint.GradientStopSchema;
78
87
  exports.HOLLOW_ARROW_SHAPES = require_arrow.HOLLOW_ARROW_SHAPES;
79
88
  exports.JsonObjectSchema = require_json.JsonObjectSchema;
80
89
  exports.JsonValueSchema = require_json.JsonValueSchema;
90
+ exports.KeyframeSchema = require_animation.KeyframeSchema;
81
91
  exports.LabelDefaultSchema = require_scope.LabelDefaultSchema;
82
92
  exports.LineSpecSchema = require_text.LineSpecSchema;
83
93
  exports.LineStepSchema = require_step.LineStepSchema;
@@ -89,6 +99,7 @@ exports.NodeLabelSchema = require_node.NodeLabelSchema;
89
99
  exports.NodeSchema = require_node.NodeSchema;
90
100
  exports.NodeTargetSchema = require_target.NodeTargetSchema;
91
101
  exports.OffsetPositionSchema = require_offset_position.OffsetPositionSchema;
102
+ exports.OriginSchema = require_animation.OriginSchema;
92
103
  exports.PATTERN_SHAPES = require_paint.PATTERN_SHAPES;
93
104
  exports.PaintSpecSchema = require_paint.PaintSpecSchema;
94
105
  exports.PathDefaultSchema = require_scope.PathDefaultSchema;
@@ -107,21 +118,37 @@ exports.StepSchema = require_step.StepSchema;
107
118
  exports.TargetSchema = require_target.TargetSchema;
108
119
  exports.TextBlockSchema = require_text.TextBlockSchema;
109
120
  exports.TransformSchema = require_transform.TransformSchema;
121
+ exports.TriggerSchema = require_animation.TriggerSchema;
110
122
  exports.ViewBoxSchema = require_scene.ViewBoxSchema;
123
+ exports.blink = require_animation$1.blink;
124
+ exports.cameraTo = require_animation$1.cameraTo;
111
125
  exports.circle = require_circle.circle;
126
+ exports.colorShift = require_animation$1.colorShift;
112
127
  exports.compileToScene = require_compile.compileToScene;
113
128
  exports.computeLayout = require_layout.computeLayout;
114
129
  exports.defineComposite = require_types.defineComposite;
115
130
  exports.definePathGenerator = require_define$1.definePathGenerator;
116
131
  exports.defineShape = require_define.defineShape;
117
132
  exports.diamond = require_diamond.diamond;
133
+ exports.drawOn = require_animation$1.drawOn;
118
134
  exports.ellipse = require_ellipse.ellipse;
135
+ exports.fadeIn = require_animation$1.fadeIn;
119
136
  exports.fallbackMeasurer = require_text_metrics.fallbackMeasurer;
137
+ exports.flash = require_animation$1.flash;
138
+ exports.grow = require_animation$1.grow;
139
+ exports.growUp = require_animation$1.growUp;
120
140
  exports.localToWorld = require__transform.localToWorld;
141
+ exports.loop = require_animation$1.loop;
121
142
  exports.parseNodeTarget = require_parseNodeTarget.parseNodeTarget;
122
143
  exports.parseTargetSugar = require_parseTargetSugar.parseTargetSugar;
123
144
  exports.parseWay = require_parseWay.parseWay;
124
145
  exports.point = require_point.point;
125
146
  exports.polar = require_polar.polar;
147
+ exports.pulse = require_animation$1.pulse;
126
148
  exports.rect = require_rect.rect;
149
+ exports.scaleIn = require_animation$1.scaleIn;
150
+ exports.slideIn = require_animation$1.slideIn;
151
+ exports.spin = require_animation$1.spin;
152
+ exports.stagger = require_animation$1.stagger;
153
+ exports.wiggle = require_animation$1.wiggle;
127
154
  exports.worldToLocal = require__transform.worldToLocal;
@@ -4,8 +4,9 @@
4
4
  */
5
5
  export { PositionSchema, PolarPositionSchema, AtPositionSchema, OffsetPositionSchema, AT_DIRECTIONS, TargetSchema, AnchorRefSchema, NodeTargetSchema, RelativeTargetSchema, RelativeAccumulateTargetSchema, AbsoluteTargetSchema, BetweenPositionSchema, MoveStepSchema, LineStepSchema, FoldStepSchema, CycleStepSchema, CurveStepSchema, CubicStepSchema, BendStepSchema, ArcStepSchema, CirclePathStepSchema, EllipsePathStepSchema, RectangleStepSchema, GeneratorStepSchema, ControlPointSchema, StepLabelSchema, StepSchema, NodeSchema, NodeLabelSchema, ShapeRefSchema, CoordinateSchema, FontSchema, TextBlockSchema, LineSpecSchema, PathSchema, ArrowDetailSchema, ArrowEndDetailSchema, ScopeSchema, CompositeBaseSchema, NodeDefaultSchema, PathDefaultSchema, LabelDefaultSchema, ArrowDefaultSchema, TransformSchema, ChildSchema, SceneSchema, CURRENT_IR_VERSION, PaintSpecSchema, GradientStopSchema, JsonValueSchema, JsonObjectSchema, ClipSpecSchema, ViewBoxSchema, } from './ir';
6
6
  export type { IRPosition, IRAtPosition, IROffsetPosition, AtDirection, IRTarget, IRAnchorRef, IRNodeTarget, IRRelativeTarget, IRRelativeAccumulateTarget, IRAbsoluteTarget, IRBetweenPosition, IRMoveStep, IRLineStep, IRFoldStep, IRCycleStep, IRCurveStep, IRCubicStep, IRBendStep, IRArcStep, IRCirclePathStep, IREllipsePathStep, IRRectangleStep, IRGeneratorStep, IRControlPoint, IRStepLabel, IRStep, IRNode, IRNodeLabel, IRShapeRef, IRCoordinate, IRFont, IRLineSpec, IRTextBlock, IRPath, IRScope, IRComposite, IRNodeDefault, IRPathDefault, IRLabelDefault, IRArrowDefault, StyleChannel, IRTransform, IRTranslateTransform, IRPolarTranslateTransform, IRAtTranslateTransform, IROffsetTranslateTransform, IRRotateTransform, IRScaleTransform, IRChild, IR, ArrowShape, BuiltinArrowName, ArrowShapeName, IRArrowDetail, IRArrowEndDetail, NodeShape, BuiltinShapeName, NodeTextAlign, PatternShapeName, BuiltinPatternName, IRPaintSpec, IRGradientStop, JsonValue, IRJsonObject, IRClipSpec, IRViewBox, } from './ir';
7
- export { ARROW_SHAPES, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES, ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, NODE_SHAPES, NODE_TEXT_ALIGNS, PATTERN_SHAPES, Boundary, BoundarySchema, } from './ir';
7
+ export { ARROW_SHAPES, DEFAULT_ARROW_SHAPE, HOLLOW_ARROW_SHAPES, ARROW_MARKER_DEFAULT_SIZE, ARROW_MARKER_HOLLOW_DEFAULT_LINE_WIDTH, NODE_SHAPES, NODE_TEXT_ALIGNS, PATTERN_SHAPES, Boundary, BoundarySchema, AnimationProperty, AnimationEasing, AnimationDirection, AnimationFill, AnimationTrigger, AnimationTrackSchema, KeyframeSchema, TriggerSchema, EasingSchema, OriginSchema, } from './ir';
8
8
  export type { BoundaryKeyword, IRBoundary } from './ir';
9
+ export type { BuiltinAnimationProperty, AnimationPropertyRef, AnimationEasingName, AnimationDirectionName, AnimationFillName, AnimationTriggerName, IRAnimationTrack, IRKeyframe, IRAnimationTrigger, IRAnimationOrigin, } from './ir';
9
10
  export type { ScenePrimitive, RectPrim, EllipsePrim, TextPrim, TextLine, PathPrim, PathCommand,
10
11
  /** 7 个 named PathCommand 分支(便于 wrapper / Pick<>) */
11
12
  MovePathCommand, LinePathCommand, QuadPathCommand, CubicPathCommand, ArcPathCommand, EllipseArcPathCommand, ClosePathCommand, ArrowEndSpec, GroupPrim, Transform,
@@ -21,6 +22,8 @@ export type { FontSpec, TextMetrics, TextMeasurer, CompileOptions, CompileWarnin
21
22
  export { computeLayout, fallbackMeasurer, compileToScene } from './compile';
22
23
  export type { WayItem, WayDSL, WayCycle, WayVia, WayRelativeItem, WayLabel, WayLabelOp, } from './parsers';
23
24
  export { parseWay, DrawWay, parseTargetSugar, parseNodeTarget } from './parsers';
25
+ export { fadeIn, drawOn, scaleIn, grow, growUp, slideIn, colorShift, cameraTo, pulse, spin, loop, flash, blink, wiggle, stagger, } from './presets';
26
+ export type { AnimationPresetOptions, ScaleInOptions, GrowUpOptions, SlideInOptions, ColorShiftOptions, CameraToOptions, PulseOptions, SpinOptions, LoopOptions, FlashOptions, BlinkOptions, WiggleOptions, } from './presets';
24
27
  export type { Position, Rect, RectAnchor, Circle, Ellipse, Diamond, PolarPosition, } from './geometry';
25
28
  export { point, rect, circle, ellipse, diamond, RECT_ANCHORS, polar } from './geometry';
26
29
  export type { ShapeDefinition, ShapeDefinitionInput, ShapeStyle } from './shapes';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,127 @@
1
+ const require_json = require("./json.cjs");
2
+ let zod = require("zod");
3
+ //#region src/ir/animation.ts
4
+ /**
5
+ * 可动画属性通道(renderer 无关;DrawWay 风格 const + 派生类型,裸字面量 'opacity' 仍第一形态)
6
+ * @description `viewBox` 仅在 scene 根合法(镜头),元素级 viewBox track 由 compile / render 拒;
7
+ * `pathDraw` 是 0..1 路径画出进度;`scaleX` / `scaleY` 是非均匀缩放(柱状图从基线长出等),`scale` 是均匀缩放;
8
+ * transform 通道(scale / scaleX / scaleY / rotate)的支点见 track 级 `origin`,缺省几何中心。
9
+ * 各后端按通道翻译:SVG WAAPI/CSS、Canvas rAF 几何 lerp。
10
+ */
11
+ var AnimationProperty = {
12
+ Opacity: "opacity",
13
+ Fill: "fill",
14
+ Stroke: "stroke",
15
+ StrokeWidth: "strokeWidth",
16
+ TranslateX: "translateX",
17
+ TranslateY: "translateY",
18
+ Rotate: "rotate",
19
+ Scale: "scale",
20
+ ScaleX: "scaleX",
21
+ ScaleY: "scaleY",
22
+ PathDraw: "pathDraw",
23
+ ViewBox: "viewBox"
24
+ };
25
+ /** 缓动具名预设(与 CSS 同名);track / keyframe 亦可改用 cubic-bezier 四元组 */
26
+ var AnimationEasing = {
27
+ Linear: "linear",
28
+ Ease: "ease",
29
+ EaseIn: "ease-in",
30
+ EaseOut: "ease-out",
31
+ EaseInOut: "ease-in-out"
32
+ };
33
+ /** 每次迭代的播放方向(抄 WAAPI / CSS animation-direction) */
34
+ var AnimationDirection = {
35
+ Normal: "normal",
36
+ Reverse: "reverse",
37
+ Alternate: "alternate",
38
+ AlternateReverse: "alternate-reverse"
39
+ };
40
+ /** 活动区间外取值(抄 WAAPI / CSS animation-fill-mode) */
41
+ var AnimationFill = {
42
+ None: "none",
43
+ Forwards: "forwards",
44
+ Backwards: "backwards",
45
+ Both: "both"
46
+ };
47
+ var EasingSchema = zod.z.union([zod.z.string().min(1), zod.z.tuple([
48
+ zod.z.number().finite(),
49
+ zod.z.number().finite(),
50
+ zod.z.number().finite(),
51
+ zod.z.number().finite()
52
+ ])]).describe("Easing: a named preset (built-in linear / ease / ease-in / ease-out / ease-in-out, or a custom name resolved by a renderer-registered easing) or a cubic-bezier control-point tuple [x1, y1, x2, y2]. Defaults to linear when omitted.");
53
+ var KeyframeSchema = zod.z.object({
54
+ at: zod.z.number().min(0).max(1).describe("Normalized keyframe time in [0, 1] (WAAPI offset, decoupled from duration). Keyframes within a track must be sorted ascending by `at`."),
55
+ value: require_json.JsonValueSchema.describe("Keyframe value (any JSON value). For built-in properties it is narrowed by the track-level refinement: a finite number (opacity / scale / rotate / translateX|Y / strokeWidth / pathDraw 0..1), a color string (fill / stroke, interpolated in oklch), or a 4-number array [x, y, w, h] (viewBox). Custom (non-built-in) properties accept any JSON value, interpreted by a renderer-registered interpolator."),
56
+ easing: EasingSchema.optional().describe("Per-segment easing from this keyframe to the next; overrides the track-level easing.")
57
+ }).describe("A single animation keyframe: a value at a normalized time, with optional per-segment easing.");
58
+ /** 播放触发器关键字(runtime 落地;DrawWay 风格 const + 派生类型,与其它 Animation 枚举单一真源一致) */
59
+ var AnimationTrigger = {
60
+ Load: "load",
61
+ Visible: "visible",
62
+ Manual: "manual"
63
+ };
64
+ var TriggerSchema = zod.z.union([zod.z.nativeEnum(AnimationTrigger), zod.z.object({ onEvent: zod.z.string().min(1).describe("Event name (e.g. \"click\") the runtime binds to start playback; the handler function never enters the IR.") })]).describe("When playback starts: \"load\" (on render, SSR-friendly) / \"visible\" (runtime IntersectionObserver) / \"manual\" (runtime API) / { onEvent } (bridge to hydration; only the event name is stored, never a callback). Defaults to \"load\".");
65
+ var OriginSchema = zod.z.union([zod.z.string().min(1).describe("Named transform pivot reusing the node anchor vocabulary (center / north / south / east / west / north-east / ... / south-west), resolved against the element boundary by the renderer."), zod.z.tuple([zod.z.number().finite(), zod.z.number().finite()]).describe("Explicit pivot in the element local coordinate space [x, y].")]).describe("Transform pivot for scale / scaleX / scaleY / rotate channels: a named anchor or an explicit local-space point. Ignored by non-transform channels. Defaults to the element geometric center.");
66
+ var AnimationTrackSchema = zod.z.object({
67
+ property: zod.z.string().min(1).describe("Renderer-agnostic animated channel. Built-in: opacity / fill / stroke / strokeWidth / translateX / translateY / rotate / scale (uniform) / scaleX / scaleY (non-uniform) / pathDraw (0..1 reveal) / viewBox (scene-root camera only). Any other string is a custom channel that passes through to a renderer-registered interpolator. `viewBox` is valid only at the scene root (enforced at compile)."),
68
+ keyframes: zod.z.array(KeyframeSchema).min(1).refine((frames) => frames.every((frame, index) => index === 0 || frame.at >= frames[index - 1].at), { message: "keyframes must be sorted ascending by `at`" }).describe("Ordered keyframes (at least one), sorted ascending by `at` within [0, 1]. Each keyframe gives the absolute display value at that time (NOT a delta on top of the base). By convention the final keyframe equals the element base (settled) state, so ignoring the animation renders the complete base figure."),
69
+ duration: zod.z.number().finite().positive().describe("One-iteration duration in milliseconds (> 0)."),
70
+ delay: zod.z.number().finite().nonnegative().optional().describe("Delay before the first iteration, in milliseconds (>= 0). Group-level stagger is compiled by sugar into per-track delays."),
71
+ easing: EasingSchema.optional().describe("Track-level easing applied to each segment that lacks its own keyframe easing. Defaults to linear."),
72
+ iterations: zod.z.union([zod.z.number().finite().positive(), zod.z.literal("infinite")]).optional().describe("Total play count (WAAPI iterations): a positive number (may be fractional) or \"infinite\". Omitted = 1 = play once."),
73
+ direction: zod.z.nativeEnum(AnimationDirection).optional().describe("Per-iteration playback direction (WAAPI / CSS animation-direction). Defaults to \"normal\"."),
74
+ fill: zod.z.nativeEnum(AnimationFill).optional().describe("Value held outside the active interval (WAAPI / CSS fill-mode). Defaults to \"forwards\" so the element settles at its base (end) state, matching the static-settled invariant."),
75
+ trigger: TriggerSchema.optional().describe("Playback trigger; defaults to \"load\"."),
76
+ origin: OriginSchema.optional().describe("Transform pivot for scale / scaleX / scaleY / rotate channels; ignored by other channels. Defaults to the element geometric center.")
77
+ }).superRefine((track, ctx) => {
78
+ const numeric = new Set([
79
+ AnimationProperty.Opacity,
80
+ AnimationProperty.StrokeWidth,
81
+ AnimationProperty.TranslateX,
82
+ AnimationProperty.TranslateY,
83
+ AnimationProperty.Rotate,
84
+ AnimationProperty.Scale,
85
+ AnimationProperty.ScaleX,
86
+ AnimationProperty.ScaleY,
87
+ AnimationProperty.PathDraw
88
+ ]);
89
+ track.keyframes.forEach((frame, index) => {
90
+ const value = frame.value;
91
+ const path = [
92
+ "keyframes",
93
+ index,
94
+ "value"
95
+ ];
96
+ if (track.property === AnimationProperty.ViewBox) {
97
+ if (!Array.isArray(value) || value.length !== 4) ctx.addIssue({
98
+ code: zod.z.ZodIssueCode.custom,
99
+ path,
100
+ message: "viewBox keyframe value must be a 4-number array [x, y, w, h]"
101
+ });
102
+ } else if (track.property === AnimationProperty.Fill || track.property === AnimationProperty.Stroke) {
103
+ if (typeof value !== "string") ctx.addIssue({
104
+ code: zod.z.ZodIssueCode.custom,
105
+ path,
106
+ message: `${track.property} keyframe value must be a color string`
107
+ });
108
+ } else if (numeric.has(track.property)) {
109
+ if (typeof value !== "number") ctx.addIssue({
110
+ code: zod.z.ZodIssueCode.custom,
111
+ path,
112
+ message: `${track.property} keyframe value must be a number`
113
+ });
114
+ }
115
+ });
116
+ }).describe("A declarative timeline animation track on a single renderer-agnostic property: keyframes over normalized time plus WAAPI-style timing options. The `property` is open (built-in channels or a custom name resolved by a renderer-registered interpolator). Fully JSON-serializable (no functions); playback control and callbacks live in the runtime, not the IR. Renderers that cannot animate render the static settled state and emit a diagnosable warning.");
117
+ //#endregion
118
+ exports.AnimationDirection = AnimationDirection;
119
+ exports.AnimationEasing = AnimationEasing;
120
+ exports.AnimationFill = AnimationFill;
121
+ exports.AnimationProperty = AnimationProperty;
122
+ exports.AnimationTrackSchema = AnimationTrackSchema;
123
+ exports.AnimationTrigger = AnimationTrigger;
124
+ exports.EasingSchema = EasingSchema;
125
+ exports.KeyframeSchema = KeyframeSchema;
126
+ exports.OriginSchema = OriginSchema;
127
+ exports.TriggerSchema = TriggerSchema;