@elucim/dsl 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.
- package/README.md +12 -1
- package/dist/index.d.ts +98 -1
- package/dist/index.js +672 -530
- package/package.json +5 -2
package/README.md
CHANGED
|
@@ -126,6 +126,8 @@ Every document has this structure:
|
|
|
126
126
|
| `rect` | `x`, `y`, `width`, `height` | Rectangle |
|
|
127
127
|
| `polygon` | `points` (array of [x,y]) | Polygon/polyline |
|
|
128
128
|
| `text` | `x`, `y`, `content` | Text element |
|
|
129
|
+
| `image` | `src`, `x`, `y`, `width`, `height` | Embed external images (PNG, SVG, etc.) |
|
|
130
|
+
| `barChart` | `bars` | Animated bar chart with labels and colors |
|
|
129
131
|
|
|
130
132
|
#### Math Visualizations
|
|
131
133
|
| Type | Required Props | Description |
|
|
@@ -154,7 +156,7 @@ Every document has this structure:
|
|
|
154
156
|
| Type | Key Props | Description |
|
|
155
157
|
|------|----------|-------------|
|
|
156
158
|
| `sequence` | `from`, `durationInFrames` | Time-offset wrapper |
|
|
157
|
-
| `group` | `children` | Logical grouping |
|
|
159
|
+
| `group` | `children` | Logical grouping with shared transforms (rotation, scale, translate) and zIndex sorting of children |
|
|
158
160
|
|
|
159
161
|
### Inline Animation Props
|
|
160
162
|
|
|
@@ -164,6 +166,15 @@ All primitives support these optional animation props directly:
|
|
|
164
166
|
- `draw?: number` — Progressive stroke draw over N frames
|
|
165
167
|
- `easing?: string | { type, ... }` — Easing function
|
|
166
168
|
|
|
169
|
+
### Spatial Transform Props
|
|
170
|
+
|
|
171
|
+
All primitives and groups support these optional spatial transform props:
|
|
172
|
+
- `rotation?: number` — Rotate element in degrees
|
|
173
|
+
- `rotationOrigin?: [number, number]` — Center of rotation [cx, cy]
|
|
174
|
+
- `scale?: number` — Uniform scale factor
|
|
175
|
+
- `translate?: [number, number]` — Offset [dx, dy]
|
|
176
|
+
- `zIndex?: number` — Stacking order (higher renders on top)
|
|
177
|
+
|
|
167
178
|
### Easing
|
|
168
179
|
|
|
169
180
|
**Named easings:** `linear`, `easeInQuad`, `easeOutQuad`, `easeInOutQuad`, `easeInCubic`, `easeOutCubic`, `easeInOutCubic`, `easeInQuart`, `easeOutQuart`, `easeInOutQuart`, `easeInSine`, `easeOutSine`, `easeInOutSine`, `easeInExpo`, `easeOutExpo`, `easeInOutExpo`, `easeInBack`, `easeOutBack`, `easeOutElastic`, `easeOutBounce`
|
package/dist/index.d.ts
CHANGED
|
@@ -17,6 +17,11 @@ export declare interface ArrowNode {
|
|
|
17
17
|
fadeOut?: number;
|
|
18
18
|
draw?: number;
|
|
19
19
|
easing?: EasingSpec;
|
|
20
|
+
rotation?: number;
|
|
21
|
+
rotationOrigin?: [number, number];
|
|
22
|
+
scale?: number | [number, number];
|
|
23
|
+
translate?: [number, number];
|
|
24
|
+
zIndex?: number;
|
|
20
25
|
}
|
|
21
26
|
|
|
22
27
|
export declare interface AxesNode {
|
|
@@ -38,6 +43,10 @@ export declare interface AxesNode {
|
|
|
38
43
|
fadeOut?: number;
|
|
39
44
|
draw?: number;
|
|
40
45
|
easing?: EasingSpec;
|
|
46
|
+
rotation?: number;
|
|
47
|
+
rotationOrigin?: [number, number];
|
|
48
|
+
translate?: [number, number];
|
|
49
|
+
zIndex?: number;
|
|
41
50
|
}
|
|
42
51
|
|
|
43
52
|
export declare interface BarChartBarDef {
|
|
@@ -64,6 +73,11 @@ export declare interface BarChartNode {
|
|
|
64
73
|
fadeIn?: number;
|
|
65
74
|
fadeOut?: number;
|
|
66
75
|
easing?: EasingSpec;
|
|
76
|
+
rotation?: number;
|
|
77
|
+
rotationOrigin?: [number, number];
|
|
78
|
+
scale?: number | [number, number];
|
|
79
|
+
translate?: [number, number];
|
|
80
|
+
zIndex?: number;
|
|
67
81
|
}
|
|
68
82
|
|
|
69
83
|
export declare interface CircleNode {
|
|
@@ -80,6 +94,11 @@ export declare interface CircleNode {
|
|
|
80
94
|
fadeOut?: number;
|
|
81
95
|
draw?: number;
|
|
82
96
|
easing?: EasingSpec;
|
|
97
|
+
rotation?: number;
|
|
98
|
+
rotationOrigin?: [number, number];
|
|
99
|
+
scale?: number | [number, number];
|
|
100
|
+
translate?: [number, number];
|
|
101
|
+
zIndex?: number;
|
|
83
102
|
}
|
|
84
103
|
|
|
85
104
|
/**
|
|
@@ -135,7 +154,7 @@ declare type EasingName = 'linear' | 'easeInQuad' | 'easeOutQuad' | 'easeInOutQu
|
|
|
135
154
|
|
|
136
155
|
export declare type EasingSpec = EasingName | SpringEasing | CubicBezierEasing;
|
|
137
156
|
|
|
138
|
-
export declare type ElementNode = SequenceNode | GroupNode | CircleNode | LineNode | ArrowNode | RectNode | PolygonNode | TextNode | AxesNode | FunctionPlotNode | VectorNode | VectorFieldNode | MatrixNode | GraphNode | LaTeXNode | BarChartNode | FadeInNode | FadeOutNode | DrawNode | WriteNode | TransformNode | MorphNode | StaggerNode | ParallelNode | PlayerNode | SceneNode;
|
|
157
|
+
export declare type ElementNode = SequenceNode | GroupNode | CircleNode | LineNode | ArrowNode | RectNode | PolygonNode | TextNode | ImageNode | AxesNode | FunctionPlotNode | VectorNode | VectorFieldNode | MatrixNode | GraphNode | LaTeXNode | BarChartNode | FadeInNode | FadeOutNode | DrawNode | WriteNode | TransformNode | MorphNode | StaggerNode | ParallelNode | PlayerNode | SceneNode;
|
|
139
158
|
|
|
140
159
|
export declare interface ElucimDocument {
|
|
141
160
|
/** JSON Schema URL for editor autocomplete */
|
|
@@ -175,6 +194,10 @@ export declare interface FunctionPlotNode {
|
|
|
175
194
|
draw?: number;
|
|
176
195
|
easing?: EasingSpec;
|
|
177
196
|
opacity?: number;
|
|
197
|
+
rotation?: number;
|
|
198
|
+
rotationOrigin?: [number, number];
|
|
199
|
+
translate?: [number, number];
|
|
200
|
+
zIndex?: number;
|
|
178
201
|
}
|
|
179
202
|
|
|
180
203
|
export declare interface GraphEdgeDef {
|
|
@@ -199,6 +222,11 @@ export declare interface GraphNode {
|
|
|
199
222
|
fadeIn?: number;
|
|
200
223
|
fadeOut?: number;
|
|
201
224
|
easing?: EasingSpec;
|
|
225
|
+
rotation?: number;
|
|
226
|
+
rotationOrigin?: [number, number];
|
|
227
|
+
scale?: number | [number, number];
|
|
228
|
+
translate?: [number, number];
|
|
229
|
+
zIndex?: number;
|
|
202
230
|
}
|
|
203
231
|
|
|
204
232
|
export declare interface GraphNodeDef {
|
|
@@ -212,7 +240,38 @@ export declare interface GraphNodeDef {
|
|
|
212
240
|
|
|
213
241
|
export declare interface GroupNode {
|
|
214
242
|
type: 'group';
|
|
243
|
+
id?: string;
|
|
215
244
|
children: ElementNode[];
|
|
245
|
+
fadeIn?: number;
|
|
246
|
+
fadeOut?: number;
|
|
247
|
+
easing?: EasingSpec;
|
|
248
|
+
rotation?: number;
|
|
249
|
+
rotationOrigin?: [number, number];
|
|
250
|
+
scale?: number | [number, number];
|
|
251
|
+
translate?: [number, number];
|
|
252
|
+
zIndex?: number;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
export declare interface ImageNode {
|
|
256
|
+
type: 'image';
|
|
257
|
+
id?: string;
|
|
258
|
+
src: string;
|
|
259
|
+
x: number;
|
|
260
|
+
y: number;
|
|
261
|
+
width: number;
|
|
262
|
+
height: number;
|
|
263
|
+
preserveAspectRatio?: string;
|
|
264
|
+
borderRadius?: number;
|
|
265
|
+
clipShape?: 'none' | 'circle' | 'ellipse';
|
|
266
|
+
opacity?: number;
|
|
267
|
+
fadeIn?: number;
|
|
268
|
+
fadeOut?: number;
|
|
269
|
+
easing?: EasingSpec;
|
|
270
|
+
rotation?: number;
|
|
271
|
+
rotationOrigin?: [number, number];
|
|
272
|
+
scale?: number | [number, number];
|
|
273
|
+
translate?: [number, number];
|
|
274
|
+
zIndex?: number;
|
|
216
275
|
}
|
|
217
276
|
|
|
218
277
|
export declare interface LaTeXNode {
|
|
@@ -228,6 +287,11 @@ export declare interface LaTeXNode {
|
|
|
228
287
|
fadeIn?: number;
|
|
229
288
|
fadeOut?: number;
|
|
230
289
|
easing?: EasingSpec;
|
|
290
|
+
rotation?: number;
|
|
291
|
+
rotationOrigin?: [number, number];
|
|
292
|
+
scale?: number | [number, number];
|
|
293
|
+
translate?: [number, number];
|
|
294
|
+
zIndex?: number;
|
|
231
295
|
}
|
|
232
296
|
|
|
233
297
|
export declare const lightTheme: Theme;
|
|
@@ -247,6 +311,11 @@ export declare interface LineNode {
|
|
|
247
311
|
fadeOut?: number;
|
|
248
312
|
draw?: number;
|
|
249
313
|
easing?: EasingSpec;
|
|
314
|
+
rotation?: number;
|
|
315
|
+
rotationOrigin?: [number, number];
|
|
316
|
+
scale?: number | [number, number];
|
|
317
|
+
translate?: [number, number];
|
|
318
|
+
zIndex?: number;
|
|
250
319
|
}
|
|
251
320
|
|
|
252
321
|
export declare interface MatrixNode {
|
|
@@ -262,6 +331,11 @@ export declare interface MatrixNode {
|
|
|
262
331
|
fadeIn?: number;
|
|
263
332
|
fadeOut?: number;
|
|
264
333
|
easing?: EasingSpec;
|
|
334
|
+
rotation?: number;
|
|
335
|
+
rotationOrigin?: [number, number];
|
|
336
|
+
scale?: number | [number, number];
|
|
337
|
+
translate?: [number, number];
|
|
338
|
+
zIndex?: number;
|
|
265
339
|
}
|
|
266
340
|
|
|
267
341
|
export declare interface MorphNode {
|
|
@@ -308,6 +382,11 @@ export declare interface PolygonNode {
|
|
|
308
382
|
fadeOut?: number;
|
|
309
383
|
draw?: number;
|
|
310
384
|
easing?: EasingSpec;
|
|
385
|
+
rotation?: number;
|
|
386
|
+
rotationOrigin?: [number, number];
|
|
387
|
+
scale?: number | [number, number];
|
|
388
|
+
translate?: [number, number];
|
|
389
|
+
zIndex?: number;
|
|
311
390
|
}
|
|
312
391
|
|
|
313
392
|
/**
|
|
@@ -395,6 +474,11 @@ export declare interface RectNode {
|
|
|
395
474
|
fadeOut?: number;
|
|
396
475
|
draw?: number;
|
|
397
476
|
easing?: EasingSpec;
|
|
477
|
+
rotation?: number;
|
|
478
|
+
rotationOrigin?: [number, number];
|
|
479
|
+
scale?: number | [number, number];
|
|
480
|
+
translate?: [number, number];
|
|
481
|
+
zIndex?: number;
|
|
398
482
|
}
|
|
399
483
|
|
|
400
484
|
/**
|
|
@@ -690,6 +774,11 @@ export declare interface TextNode {
|
|
|
690
774
|
fadeIn?: number;
|
|
691
775
|
fadeOut?: number;
|
|
692
776
|
easing?: EasingSpec;
|
|
777
|
+
rotation?: number;
|
|
778
|
+
rotationOrigin?: [number, number];
|
|
779
|
+
scale?: number | [number, number];
|
|
780
|
+
translate?: [number, number];
|
|
781
|
+
zIndex?: number;
|
|
693
782
|
}
|
|
694
783
|
|
|
695
784
|
/**
|
|
@@ -788,6 +877,10 @@ export declare interface VectorFieldNode {
|
|
|
788
877
|
fadeIn?: number;
|
|
789
878
|
fadeOut?: number;
|
|
790
879
|
easing?: EasingSpec;
|
|
880
|
+
rotation?: number;
|
|
881
|
+
rotationOrigin?: [number, number];
|
|
882
|
+
translate?: [number, number];
|
|
883
|
+
zIndex?: number;
|
|
791
884
|
}
|
|
792
885
|
|
|
793
886
|
export declare interface VectorNode {
|
|
@@ -808,6 +901,10 @@ export declare interface VectorNode {
|
|
|
808
901
|
fadeOut?: number;
|
|
809
902
|
draw?: number;
|
|
810
903
|
easing?: EasingSpec;
|
|
904
|
+
rotation?: number;
|
|
905
|
+
rotationOrigin?: [number, number];
|
|
906
|
+
translate?: [number, number];
|
|
907
|
+
zIndex?: number;
|
|
811
908
|
}
|
|
812
909
|
|
|
813
910
|
export declare interface WriteNode {
|