@elucim/core 0.1.3 → 0.2.1

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 (48) hide show
  1. package/README.md +30 -9
  2. package/dist/__tests__/group.test.d.ts +2 -0
  3. package/dist/__tests__/group.test.d.ts.map +1 -0
  4. package/dist/__tests__/image.test.d.ts +2 -0
  5. package/dist/__tests__/image.test.d.ts.map +1 -0
  6. package/dist/__tests__/transform.test.d.ts +2 -0
  7. package/dist/__tests__/transform.test.d.ts.map +1 -0
  8. package/dist/components/Scene.d.ts.map +1 -1
  9. package/dist/index.d.ts +3 -0
  10. package/dist/index.d.ts.map +1 -1
  11. package/dist/index.js +2913 -2790
  12. package/dist/primitives/Arrow.d.ts +4 -2
  13. package/dist/primitives/Arrow.d.ts.map +1 -1
  14. package/dist/primitives/Axes.d.ts +4 -2
  15. package/dist/primitives/Axes.d.ts.map +1 -1
  16. package/dist/primitives/BarChart.d.ts +4 -2
  17. package/dist/primitives/BarChart.d.ts.map +1 -1
  18. package/dist/primitives/Circle.d.ts +4 -2
  19. package/dist/primitives/Circle.d.ts.map +1 -1
  20. package/dist/primitives/FunctionPlot.d.ts +4 -2
  21. package/dist/primitives/FunctionPlot.d.ts.map +1 -1
  22. package/dist/primitives/Graph.d.ts +4 -2
  23. package/dist/primitives/Graph.d.ts.map +1 -1
  24. package/dist/primitives/Group.d.ts +15 -0
  25. package/dist/primitives/Group.d.ts.map +1 -0
  26. package/dist/primitives/Image.d.ts +29 -0
  27. package/dist/primitives/Image.d.ts.map +1 -0
  28. package/dist/primitives/LaTeX.d.ts +4 -2
  29. package/dist/primitives/LaTeX.d.ts.map +1 -1
  30. package/dist/primitives/Line.d.ts +4 -2
  31. package/dist/primitives/Line.d.ts.map +1 -1
  32. package/dist/primitives/Matrix.d.ts +4 -2
  33. package/dist/primitives/Matrix.d.ts.map +1 -1
  34. package/dist/primitives/Polygon.d.ts +4 -2
  35. package/dist/primitives/Polygon.d.ts.map +1 -1
  36. package/dist/primitives/Rect.d.ts +4 -2
  37. package/dist/primitives/Rect.d.ts.map +1 -1
  38. package/dist/primitives/Text.d.ts +4 -2
  39. package/dist/primitives/Text.d.ts.map +1 -1
  40. package/dist/primitives/Vector.d.ts +4 -2
  41. package/dist/primitives/Vector.d.ts.map +1 -1
  42. package/dist/primitives/VectorField.d.ts +4 -2
  43. package/dist/primitives/VectorField.d.ts.map +1 -1
  44. package/dist/primitives/index.d.ts +3 -0
  45. package/dist/primitives/index.d.ts.map +1 -1
  46. package/dist/primitives/transform.d.ts +41 -0
  47. package/dist/primitives/transform.d.ts.map +1 -0
  48. package/package.json +4 -1
package/README.md CHANGED
@@ -20,19 +20,24 @@ pnpm add @elucim/core
20
20
  ## Quick Start
21
21
 
22
22
  ```tsx
23
- import { Player, FadeIn, Circle, Text } from '@elucim/core';
23
+ import { Player, FadeIn, Circle, Text, Group, Transform } from '@elucim/core';
24
24
 
25
25
  function MyAnimation() {
26
26
  return (
27
27
  <Player width={800} height={600} fps={30} durationInFrames={90} autoPlay loop>
28
- <FadeIn duration={20}>
29
- <Circle cx={400} cy={280} r={80} stroke="#6c5ce7" strokeWidth={3} fill="none" />
30
- </FadeIn>
31
- <FadeIn duration={20}>
32
- <Text x={400} y={290} fill="#e0e0e0" fontSize={24} textAnchor="middle">
33
- Hello Elucim
34
- </Text>
35
- </FadeIn>
28
+ <Group translate={[400, 280]}>
29
+ <Transform rotate={{ from: 0, to: 360 }} duration={90}>
30
+ <FadeIn duration={20}>
31
+ <Circle cx={0} cy={0} r={80} stroke="#6c5ce7" strokeWidth={3} fill="none" />
32
+ <Circle cx={60} cy={0} r={12} fill="#6c5ce7" />
33
+ </FadeIn>
34
+ </Transform>
35
+ <FadeIn duration={20}>
36
+ <Text x={0} y={10} fill="#e0e0e0" fontSize={24} textAnchor="middle">
37
+ Hello Elucim
38
+ </Text>
39
+ </FadeIn>
40
+ </Group>
36
41
  </Player>
37
42
  );
38
43
  }
@@ -58,6 +63,22 @@ function MyAnimation() {
58
63
  | `Arrow` | Line with arrowhead |
59
64
  | `Polygon` | Arbitrary polygon from point arrays |
60
65
  | `Text` | SVG text element |
66
+ | `Image` | Embed images (PNG, JPEG, SVG, WebP, GIF) with `borderRadius`, `clipShape`, and transform support |
67
+ | `Group` | Composable container that applies shared transforms, animations, and z-index sorting to children |
68
+
69
+ ### 🔄 Transforms & Composition
70
+
71
+ All primitives support universal spatial transform props:
72
+
73
+ | Prop | Description |
74
+ |------|-------------|
75
+ | `rotation` | Rotate element (degrees) |
76
+ | `rotationOrigin` | `[cx, cy]` center of rotation |
77
+ | `scale` | Uniform scale factor |
78
+ | `translate` | `[dx, dy]` offset |
79
+ | `zIndex` | Stacking order (higher renders on top) |
80
+
81
+ These compose with animations — use static `rotation={45}` for a fixed rotation, or wrap in `<Transform rotate={{from:0, to:360}}>` for animated rotation.
61
82
 
62
83
  ### 📊 Math Visualizations
63
84
 
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=group.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/group.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=image.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/image.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=transform.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transform.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/transform.test.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../src/components/Scene.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAIxE,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EACpB,KAAY,EACZ,MAAa,EACb,GAAQ,EACR,gBAAgB,EAChB,UAA2C,EAC3C,QAAQ,EACR,QAAgB,EAChB,KAAK,EAAE,eAAe,EACtB,SAAS,EACT,KAAK,GACN,EAAE,UAAU,2CAgFZ"}
1
+ {"version":3,"file":"Scene.d.ts","sourceRoot":"","sources":["../../src/components/Scene.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAKxE,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,gBAAgB,EAAE,MAAM,CAAC;IACzB,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,mDAAmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB;IAChB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED;;;GAGG;AACH,wBAAgB,KAAK,CAAC,EACpB,KAAY,EACZ,MAAa,EACb,GAAQ,EACR,gBAAgB,EAChB,UAA2C,EAC3C,QAAQ,EACR,QAAgB,EAChB,KAAK,EAAE,eAAe,EACtB,SAAS,EACT,KAAK,GACN,EAAE,UAAU,2CAgFZ"}
package/dist/index.d.ts CHANGED
@@ -19,7 +19,10 @@ export { Matrix, type MatrixProps } from './primitives/Matrix';
19
19
  export { Graph, type GraphProps, type GraphNode, type GraphEdge } from './primitives/Graph';
20
20
  export { LaTeX, type LaTeXProps } from './primitives/LaTeX';
21
21
  export { BarChart, type BarChartProps, type BarDef } from './primitives/BarChart';
22
+ export { Image, type ImageProps } from './primitives/Image';
23
+ export { Group, type GroupProps } from './primitives/Group';
22
24
  export { useAnimation, type AnimationProps } from './primitives/animation';
25
+ export { buildTransform, withTransform, sortByZIndex, type SpatialProps, type BaseElementProps } from './primitives/transform';
23
26
  export { type EasingFunction, linear, easeInQuad, easeOutQuad, easeInOutQuad, easeInCubic, easeOutCubic, easeInOutCubic, easeInQuart, easeOutQuart, easeInOutQuart, easeInSine, easeOutSine, easeInOutSine, easeInExpo, easeOutExpo, easeInOutExpo, easeInBack, easeOutBack, easeOutElastic, easeOutBounce, spring, cubicBezier, } from './easing';
24
27
  export { FadeIn, type FadeInProps, FadeOut, type FadeOutProps } from './animations/Fade';
25
28
  export { Draw, type DrawProps, Write, type WriteProps } from './animations/DrawWrite';
@@ -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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"}