@lumencast/runtime 0.4.0 → 0.5.0

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 (130) hide show
  1. package/README.md +57 -0
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/animate/frame-coalescer.d.ts +13 -0
  4. package/dist/animate/frame-coalescer.d.ts.map +1 -0
  5. package/dist/animate/frame-coalescer.js +46 -0
  6. package/dist/animate/frame-coalescer.js.map +1 -0
  7. package/dist/animate/keyframes.d.ts +1 -1
  8. package/dist/animate/keyframes.d.ts.map +1 -1
  9. package/dist/animate/keyframes.js +20 -6
  10. package/dist/animate/keyframes.js.map +1 -1
  11. package/dist/animate/transitions.d.ts +4 -1
  12. package/dist/animate/transitions.d.ts.map +1 -1
  13. package/dist/animate/transitions.js +30 -3
  14. package/dist/animate/transitions.js.map +1 -1
  15. package/dist/{broadcast-DzZ8TVGZ.js → broadcast-3vYij4k-.js} +3 -3
  16. package/dist/{broadcast-DzZ8TVGZ.js.map → broadcast-3vYij4k-.js.map} +1 -1
  17. package/dist/{control-gbDGvdR0.js → control-BFNkY7-6.js} +4 -4
  18. package/dist/{control-gbDGvdR0.js.map → control-BFNkY7-6.js.map} +1 -1
  19. package/dist/{index-oteiocFe.js → index-CyOlpZAL.js} +305 -150
  20. package/dist/index-CyOlpZAL.js.map +1 -0
  21. package/dist/index.d.ts +5 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.html +1 -1
  24. package/dist/index.js +10 -0
  25. package/dist/index.js.map +1 -1
  26. package/dist/lumencast.js +9 -2
  27. package/dist/mount.d.ts.map +1 -1
  28. package/dist/mount.js +11 -1
  29. package/dist/mount.js.map +1 -1
  30. package/dist/render/bind-animate.d.ts +40 -0
  31. package/dist/render/bind-animate.d.ts.map +1 -0
  32. package/dist/render/bind-animate.js +329 -0
  33. package/dist/render/bind-animate.js.map +1 -0
  34. package/dist/render/bundle.d.ts +48 -6
  35. package/dist/render/bundle.d.ts.map +1 -1
  36. package/dist/render/bundle.js +71 -4
  37. package/dist/render/bundle.js.map +1 -1
  38. package/dist/render/color-interp.d.ts +18 -0
  39. package/dist/render/color-interp.d.ts.map +1 -0
  40. package/dist/render/color-interp.js +303 -0
  41. package/dist/render/color-interp.js.map +1 -0
  42. package/dist/render/css-color.d.ts +16 -0
  43. package/dist/render/css-color.d.ts.map +1 -0
  44. package/dist/render/css-color.js +130 -0
  45. package/dist/render/css-color.js.map +1 -0
  46. package/dist/render/diagnostics.d.ts +26 -0
  47. package/dist/render/diagnostics.d.ts.map +1 -0
  48. package/dist/render/diagnostics.js +58 -0
  49. package/dist/render/diagnostics.js.map +1 -0
  50. package/dist/render/fill.d.ts +15 -3
  51. package/dist/render/fill.d.ts.map +1 -1
  52. package/dist/render/fill.js +81 -14
  53. package/dist/render/fill.js.map +1 -1
  54. package/dist/render/filter-clamp.d.ts +35 -0
  55. package/dist/render/filter-clamp.d.ts.map +1 -0
  56. package/dist/render/filter-clamp.js +90 -0
  57. package/dist/render/filter-clamp.js.map +1 -0
  58. package/dist/render/keyframe-player.d.ts +4 -1
  59. package/dist/render/keyframe-player.d.ts.map +1 -1
  60. package/dist/render/keyframe-player.js +2 -2
  61. package/dist/render/keyframe-player.js.map +1 -1
  62. package/dist/render/primitives/frame.d.ts +16 -1
  63. package/dist/render/primitives/frame.d.ts.map +1 -1
  64. package/dist/render/primitives/frame.js +42 -7
  65. package/dist/render/primitives/frame.js.map +1 -1
  66. package/dist/render/primitives/image.d.ts +1 -1
  67. package/dist/render/primitives/image.d.ts.map +1 -1
  68. package/dist/render/primitives/image.js +6 -3
  69. package/dist/render/primitives/image.js.map +1 -1
  70. package/dist/render/primitives/index.d.ts +3 -0
  71. package/dist/render/primitives/index.d.ts.map +1 -1
  72. package/dist/render/primitives/index.js.map +1 -1
  73. package/dist/render/primitives/instance.d.ts +1 -1
  74. package/dist/render/primitives/instance.d.ts.map +1 -1
  75. package/dist/render/primitives/instance.js +10 -13
  76. package/dist/render/primitives/instance.js.map +1 -1
  77. package/dist/render/primitives/shape.d.ts +9 -3
  78. package/dist/render/primitives/shape.d.ts.map +1 -1
  79. package/dist/render/primitives/shape.js +56 -12
  80. package/dist/render/primitives/shape.js.map +1 -1
  81. package/dist/render/primitives/text.d.ts +35 -4
  82. package/dist/render/primitives/text.d.ts.map +1 -1
  83. package/dist/render/primitives/text.js +179 -7
  84. package/dist/render/primitives/text.js.map +1 -1
  85. package/dist/render/prop-allowlist.d.ts +10 -0
  86. package/dist/render/prop-allowlist.d.ts.map +1 -0
  87. package/dist/render/prop-allowlist.js +112 -0
  88. package/dist/render/prop-allowlist.js.map +1 -0
  89. package/dist/render/svg-path.d.ts +35 -0
  90. package/dist/render/svg-path.d.ts.map +1 -0
  91. package/dist/render/svg-path.js +211 -0
  92. package/dist/render/svg-path.js.map +1 -0
  93. package/dist/render/tree.d.ts.map +1 -1
  94. package/dist/render/tree.js +30 -5
  95. package/dist/render/tree.js.map +1 -1
  96. package/dist/{status-pill-Cgdl9FtP.js → status-pill-DIpXc5du.js} +2 -2
  97. package/dist/{status-pill-Cgdl9FtP.js.map → status-pill-DIpXc5du.js.map} +1 -1
  98. package/dist/{test-CAnkHA0n.js → test-ByRec1kd.js} +4 -4
  99. package/dist/{test-CAnkHA0n.js.map → test-ByRec1kd.js.map} +1 -1
  100. package/dist/tree-D5wYHpPu.js +1230 -0
  101. package/dist/tree-D5wYHpPu.js.map +1 -0
  102. package/dist/types.d.ts +26 -0
  103. package/dist/types.d.ts.map +1 -1
  104. package/package.json +5 -4
  105. package/src/animate/frame-coalescer.ts +63 -0
  106. package/src/animate/keyframes.ts +24 -5
  107. package/src/animate/transitions.ts +33 -3
  108. package/src/index.ts +24 -0
  109. package/src/mount.ts +12 -1
  110. package/src/render/bind-animate.tsx +370 -0
  111. package/src/render/bundle.ts +102 -10
  112. package/src/render/color-interp.ts +303 -0
  113. package/src/render/css-color.ts +145 -0
  114. package/src/render/diagnostics.ts +75 -0
  115. package/src/render/fill.tsx +85 -14
  116. package/src/render/filter-clamp.ts +99 -0
  117. package/src/render/keyframe-player.tsx +10 -2
  118. package/src/render/primitives/frame.tsx +47 -7
  119. package/src/render/primitives/image.tsx +6 -2
  120. package/src/render/primitives/index.ts +3 -0
  121. package/src/render/primitives/instance.tsx +14 -15
  122. package/src/render/primitives/shape.tsx +76 -12
  123. package/src/render/primitives/text.tsx +224 -7
  124. package/src/render/prop-allowlist.ts +119 -0
  125. package/src/render/svg-path.ts +215 -0
  126. package/src/render/tree.tsx +41 -6
  127. package/src/types.ts +27 -0
  128. package/dist/index-oteiocFe.js.map +0 -1
  129. package/dist/tree-DVYXwItH.js +0 -512
  130. package/dist/tree-DVYXwItH.js.map +0 -1
@@ -10,6 +10,7 @@
10
10
  // We deliberately animate only GPU-friendly properties (transform, opacity,
11
11
  // filter). Primitives enforce this at the DOM level by exposing those props as
12
12
  // motion-bindable values rather than raw CSS.
13
+ import { sanitizeCssFilterString, warnRejectedFilter } from "../render/filter-clamp";
13
14
  const NO_ANIMATION = { duration: 0 };
14
15
  const EASE_MAP = {
15
16
  linear: "linear",
@@ -32,6 +33,7 @@ export function toFramer(t) {
32
33
  type: "spring",
33
34
  ...(t.stiffness !== undefined ? { stiffness: t.stiffness } : {}),
34
35
  ...(t.damping !== undefined ? { damping: t.damping } : {}),
36
+ ...(t.mass !== undefined ? { mass: t.mass } : {}),
35
37
  };
36
38
  }
37
39
  // crossfade at the per-prop level degenerates into a tween on opacity.
@@ -49,9 +51,15 @@ export function toFramer(t) {
49
51
  const INITIAL_IDENTITY = {
50
52
  opacity: 1,
51
53
  scale: 1,
54
+ scaleX: 1,
55
+ scaleY: 1,
52
56
  rotate: 0,
53
57
  x: 0,
54
58
  y: 0,
59
+ // LSML §6.1 filter identity — both functions are always present so
60
+ // framer interpolates between structurally-identical filter lists
61
+ // (the compiler emits the same two-function form, clamped per R8).
62
+ filter: "blur(0px) brightness(1)",
55
63
  };
56
64
  /**
57
65
  * Default mount-play timing — applies when a node carries an
@@ -117,20 +125,36 @@ export function resolveTransition(transitionFor, keys, animateInitial) {
117
125
  * doesn't already drive — so the mount-play plays out and settles
118
126
  * correctly even on opacity-only primitives.
119
127
  */
120
- export function mountPlay(base, initial) {
128
+ export function mountPlay(base, initial, nodeId) {
121
129
  if (!initial || Object.keys(initial).length === 0) {
122
130
  // No `from` → mount directly at target. Pinning `initial` to the
123
131
  // target (rather than letting framer infer from current style)
124
132
  // preserves the existing "no jump, no mount-play" behaviour.
125
133
  return { initial: base, animate: base };
126
134
  }
135
+ // R8 runtime half (ADR 001 §5.1, issue #42) — `animate_initial` may
136
+ // come from a hand-crafted bundle that never went through the
137
+ // compiler clamps. Re-gate the filter string ; rejected → drop the
138
+ // key (the element mounts at the identity filter instead).
139
+ let from = initial;
140
+ if (initial["filter"] !== undefined) {
141
+ const safe = sanitizeCssFilterString(initial["filter"]);
142
+ from = { ...initial };
143
+ if (safe === null) {
144
+ warnRejectedFilter("animate_initial.filter", nodeId);
145
+ delete from["filter"];
146
+ }
147
+ else {
148
+ from["filter"] = safe;
149
+ }
150
+ }
127
151
  const animate = { ...base };
128
- for (const key of Object.keys(initial)) {
152
+ for (const key of Object.keys(from)) {
129
153
  if (!(key in animate)) {
130
154
  animate[key] = INITIAL_IDENTITY[key] ?? 0;
131
155
  }
132
156
  }
133
- return { initial, animate };
157
+ return { initial: from, animate };
134
158
  }
135
159
  /**
136
160
  * Parse a wire-format `TransitionSpec` (LSDP/1.1 §3.2.2) into the
@@ -159,6 +183,9 @@ export function parseWireTransition(value) {
159
183
  out.stiffness = v.stiffness;
160
184
  if (typeof v.damping === "number")
161
185
  out.damping = v.damping;
186
+ // LSML §6.2 — mass rides the same wire spring shape.
187
+ if (typeof v.mass === "number")
188
+ out.mass = v.mass;
162
189
  return out;
163
190
  }
164
191
  return undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/animate/transitions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../src/animate/transitions.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { jsx as t } from "react/jsx-runtime";
2
- import { T as e } from "./tree-DVYXwItH.js";
3
- import { u as m } from "./index-oteiocFe.js";
2
+ import { T as e } from "./tree-D5wYHpPu.js";
3
+ import { u as m } from "./index-CyOlpZAL.js";
4
4
  function a() {
5
5
  const { store: o, bundle: r } = m();
6
6
  return /* @__PURE__ */ t(e, { node: r.root, store: o });
@@ -8,4 +8,4 @@ function a() {
8
8
  export {
9
9
  a as BroadcastMode
10
10
  };
11
- //# sourceMappingURL=broadcast-DzZ8TVGZ.js.map
11
+ //# sourceMappingURL=broadcast-3vYij4k-.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"broadcast-DzZ8TVGZ.js","sources":["../src/modes/broadcast.tsx"],"sourcesContent":["import { Tree } from \"../render/tree\";\nimport { useLumencastRuntime } from \"../overlay/runtime-context\";\n\n/** Broadcast mode : pure scene render, no UI chrome. */\nexport function BroadcastMode() {\n const { store, bundle } = useLumencastRuntime();\n return <Tree node={bundle.root} store={store} />;\n}\n"],"names":["BroadcastMode","store","bundle","useLumencastRuntime","jsx","Tree"],"mappings":";;;AAIO,SAASA,IAAgB;AAC9B,QAAM,EAAE,OAAAC,GAAO,QAAAC,EAAA,IAAWC,EAAA;AAC1B,SAAO,gBAAAC,EAACC,GAAA,EAAK,MAAMH,EAAO,MAAM,OAAAD,GAAc;AAChD;"}
1
+ {"version":3,"file":"broadcast-3vYij4k-.js","sources":["../src/modes/broadcast.tsx"],"sourcesContent":["import { Tree } from \"../render/tree\";\nimport { useLumencastRuntime } from \"../overlay/runtime-context\";\n\n/** Broadcast mode : pure scene render, no UI chrome. */\nexport function BroadcastMode() {\n const { store, bundle } = useLumencastRuntime();\n return <Tree node={bundle.root} store={store} />;\n}\n"],"names":["BroadcastMode","store","bundle","useLumencastRuntime","jsx","Tree"],"mappings":";;;AAIO,SAASA,IAAgB;AAC9B,QAAM,EAAE,OAAAC,GAAO,QAAAC,EAAA,IAAWC,EAAA;AAC1B,SAAO,gBAAAC,EAACC,GAAA,EAAK,MAAMH,EAAO,MAAM,OAAAD,GAAc;AAChD;"}
@@ -1,7 +1,7 @@
1
1
  import { jsxs as e, Fragment as n, jsx as o } from "react/jsx-runtime";
2
- import { T as s } from "./tree-DVYXwItH.js";
3
- import { S as m, C as a } from "./status-pill-Cgdl9FtP.js";
4
- import { u as i } from "./index-oteiocFe.js";
2
+ import { T as s } from "./tree-D5wYHpPu.js";
3
+ import { S as m, C as a } from "./status-pill-DIpXc5du.js";
4
+ import { u as i } from "./index-CyOlpZAL.js";
5
5
  function c() {
6
6
  const { store: r, bundle: t } = i();
7
7
  return /* @__PURE__ */ e(n, { children: [
@@ -13,4 +13,4 @@ function c() {
13
13
  export {
14
14
  c as ControlMode
15
15
  };
16
- //# sourceMappingURL=control-gbDGvdR0.js.map
16
+ //# sourceMappingURL=control-BFNkY7-6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"control-gbDGvdR0.js","sources":["../src/modes/control.tsx"],"sourcesContent":["import { Tree } from \"../render/tree\";\nimport { ControlPanel } from \"../overlay/control\";\nimport { StatusPill } from \"../overlay/status-pill\";\nimport { useLumencastRuntime } from \"../overlay/runtime-context\";\n\n/** Control mode : scene + operator overlay (status pill + fields\n * panel from operator_inputs). */\nexport function ControlMode() {\n const { store, bundle } = useLumencastRuntime();\n return (\n <>\n <Tree node={bundle.root} store={store} />\n <StatusPill />\n <ControlPanel />\n </>\n );\n}\n"],"names":["ControlMode","store","bundle","useLumencastRuntime","jsxs","Fragment","jsx","Tree","StatusPill","ControlPanel"],"mappings":";;;;AAOO,SAASA,IAAc;AAC5B,QAAM,EAAE,OAAAC,GAAO,QAAAC,EAAA,IAAWC,EAAA;AAC1B,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAK,MAAML,EAAO,MAAM,OAAAD,GAAc;AAAA,sBACtCO,GAAA,EAAW;AAAA,sBACXC,GAAA,CAAA,CAAa;AAAA,EAAA,GAChB;AAEJ;"}
1
+ {"version":3,"file":"control-BFNkY7-6.js","sources":["../src/modes/control.tsx"],"sourcesContent":["import { Tree } from \"../render/tree\";\nimport { ControlPanel } from \"../overlay/control\";\nimport { StatusPill } from \"../overlay/status-pill\";\nimport { useLumencastRuntime } from \"../overlay/runtime-context\";\n\n/** Control mode : scene + operator overlay (status pill + fields\n * panel from operator_inputs). */\nexport function ControlMode() {\n const { store, bundle } = useLumencastRuntime();\n return (\n <>\n <Tree node={bundle.root} store={store} />\n <StatusPill />\n <ControlPanel />\n </>\n );\n}\n"],"names":["ControlMode","store","bundle","useLumencastRuntime","jsxs","Fragment","jsx","Tree","StatusPill","ControlPanel"],"mappings":";;;;AAOO,SAASA,IAAc;AAC5B,QAAM,EAAE,OAAAC,GAAO,QAAAC,EAAA,IAAWC,EAAA;AAC1B,SACE,gBAAAC,EAAAC,GAAA,EACE,UAAA;AAAA,IAAA,gBAAAC,EAACC,GAAA,EAAK,MAAML,EAAO,MAAM,OAAAD,GAAc;AAAA,sBACtCO,GAAA,EAAW;AAAA,sBACXC,GAAA,CAAA,CAAa;AAAA,EAAA,GAChB;AAEJ;"}