effect-motion 0.2.0 → 0.3.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 (103) hide show
  1. package/dist/Camera.d.ts +50 -28
  2. package/dist/Camera.js +71 -19
  3. package/dist/CameraHelpers.d.ts +70 -0
  4. package/dist/CameraHelpers.js +239 -0
  5. package/dist/CanvasExporter.d.ts +12 -0
  6. package/dist/CanvasExporter.js +40 -0
  7. package/dist/Color.d.ts +428 -0
  8. package/dist/Color.js +535 -0
  9. package/dist/EffectMotionError.d.ts +10 -0
  10. package/dist/EffectMotionError.js +6 -0
  11. package/dist/Entity.d.ts +9 -8
  12. package/dist/Entity.js +1 -4
  13. package/dist/Fonts.d.ts +10 -0
  14. package/dist/Fonts.js +16 -0
  15. package/dist/Images.d.ts +33 -0
  16. package/dist/Images.js +24 -0
  17. package/dist/Instance.d.ts +4 -4
  18. package/dist/Motion.d.ts +24 -7
  19. package/dist/Motion.js +54 -9
  20. package/dist/Phaser.d.ts +1 -1
  21. package/dist/Phaser.js +13 -9
  22. package/dist/Physics.d.ts +3 -3
  23. package/dist/Physics.js +4 -4
  24. package/dist/PngExporter.d.ts +6 -0
  25. package/dist/PngExporter.js +85 -0
  26. package/dist/Projection.d.ts +225 -0
  27. package/dist/Projection.js +473 -0
  28. package/dist/Renderer.d.ts +102 -53
  29. package/dist/Renderer.js +369 -78
  30. package/dist/Runner.d.ts +126 -42
  31. package/dist/Runner.js +42 -17
  32. package/dist/Scene.d.ts +88 -59
  33. package/dist/Scene.js +24 -15
  34. package/dist/Shapes.d.ts +11 -0
  35. package/dist/Shapes.js +11 -0
  36. package/dist/demo.d.ts +3 -186
  37. package/dist/demo.js +24 -35
  38. package/dist/index.d.ts +14 -13
  39. package/dist/index.js +14 -13
  40. package/dist/particles/Particle.d.ts +4 -3
  41. package/dist/particles/ParticleField.d.ts +11 -48
  42. package/dist/particles/ParticleField.js +5 -4
  43. package/dist/particles/constructors.d.ts +8 -7
  44. package/dist/particles/constructors.js +2 -2
  45. package/dist/particles/index.d.ts +5 -6
  46. package/dist/particles/index.js +5 -6
  47. package/dist/particles/overLife.d.ts +1 -1
  48. package/dist/particles/overLife.js +1 -1
  49. package/dist/particles/simulate.d.ts +2 -2
  50. package/dist/particles/simulate.js +6 -6
  51. package/dist/particles/step.d.ts +2 -2
  52. package/dist/particles/step.js +5 -3
  53. package/dist/render/dof.d.ts +27 -0
  54. package/dist/render/dof.js +37 -0
  55. package/dist/render/paint.d.ts +30 -0
  56. package/dist/render/paint.js +36 -0
  57. package/dist/render/shapes.d.ts +42 -0
  58. package/dist/render/shapes.js +310 -0
  59. package/dist/shapes/Circle.d.ts +10 -15
  60. package/dist/shapes/Circle.js +2 -2
  61. package/dist/shapes/Ellipse.d.ts +10 -16
  62. package/dist/shapes/Ellipse.js +2 -2
  63. package/dist/shapes/Group.d.ts +5 -39
  64. package/dist/shapes/Group.js +4 -4
  65. package/dist/shapes/Hud.d.ts +38 -0
  66. package/dist/shapes/Hud.js +35 -0
  67. package/dist/shapes/Image.d.ts +45 -0
  68. package/dist/shapes/Image.js +28 -0
  69. package/dist/shapes/Line.d.ts +12 -12
  70. package/dist/shapes/Line.js +11 -6
  71. package/dist/shapes/Path.d.ts +87 -18
  72. package/dist/shapes/Path.js +25 -6
  73. package/dist/shapes/Rect.d.ts +33 -23
  74. package/dist/shapes/Rect.js +14 -2
  75. package/dist/shapes/Shape2D.d.ts +13 -4
  76. package/dist/shapes/Shape2D.js +16 -5
  77. package/dist/shapes/Shapes.d.ts +11 -0
  78. package/dist/shapes/Shapes.js +11 -0
  79. package/dist/shapes/Square.d.ts +10 -15
  80. package/dist/shapes/Square.js +2 -2
  81. package/dist/shapes/Text.d.ts +10 -19
  82. package/dist/shapes/Text.js +2 -2
  83. package/package.json +13 -3
  84. package/dist/particles/render.d.ts +0 -13
  85. package/dist/particles/render.js +0 -33
  86. package/dist/shapes/Layer.d.ts +0 -9
  87. package/dist/shapes/Layer.js +0 -23
  88. package/dist/shapes/index.d.ts +0 -10
  89. package/dist/shapes/index.js +0 -10
  90. package/dist/svg/SvgDomRenderer.d.ts +0 -28
  91. package/dist/svg/SvgDomRenderer.js +0 -50
  92. package/dist/svg/SvgNode.d.ts +0 -13
  93. package/dist/svg/SvgNode.js +0 -18
  94. package/dist/svg/SvgRenderer.d.ts +0 -22
  95. package/dist/svg/SvgRenderer.js +0 -20
  96. package/dist/svg/camera.d.ts +0 -21
  97. package/dist/svg/camera.js +0 -43
  98. package/dist/svg/index.d.ts +0 -6
  99. package/dist/svg/index.js +0 -6
  100. package/dist/svg/layers.d.ts +0 -18
  101. package/dist/svg/layers.js +0 -13
  102. package/dist/svg/shapes.d.ts +0 -1089
  103. package/dist/svg/shapes.js +0 -119
@@ -0,0 +1,428 @@
1
+ import chroma from "chroma-js";
2
+ import { Schema } from "effect";
3
+ import * as Pipeable from "effect/Pipeable";
4
+ export type InterpolationMode = chroma.InterpolationMode;
5
+ declare const Color_base: Schema.Class<Color, Schema.TaggedStruct<"Color", {
6
+ readonly "~r": Schema.Number;
7
+ readonly "~g": Schema.Number;
8
+ readonly "~b": Schema.Number;
9
+ readonly "~a": Schema.Number;
10
+ }>, {}>;
11
+ export declare class Color extends Color_base implements Pipeable.Pipeable {
12
+ static of(r: number, g: number, b: number, a?: number): Color;
13
+ get r(): number;
14
+ get g(): number;
15
+ get b(): number;
16
+ get a(): number;
17
+ pipe: Pipeable.Pipeable["pipe"];
18
+ }
19
+ export declare const is: (value: unknown) => value is Color;
20
+ export declare const rgba: (r: number, g: number, b: number, alpha?: number) => Color;
21
+ /** Parse a CSS color string (`#rgb`, `#rrggbb`, `#rrggbbaa`, named, `rgb()`, …). */
22
+ export declare const hex: (value: string) => Color;
23
+ export declare const hsl: (h: number, s: number, l: number, alpha?: number) => Color;
24
+ export declare const hsv: (h: number, s: number, v: number, alpha?: number) => Color;
25
+ export declare const lab: (l: number, a: number, b: number, alpha?: number) => Color;
26
+ export declare const lch: (l: number, c: number, h: number, a?: number) => Color;
27
+ export declare const hcl: (h: number, c: number, l: number, a?: number) => Color;
28
+ export declare const oklab: (l: number, a: number, b: number, alpha?: number) => Color;
29
+ export declare const oklch: (l: number, c: number, h: number, alpha?: number) => Color;
30
+ export declare const cmyk: (c: number, m: number, y: number, k: number) => Color;
31
+ export declare const gl: (g: number, l: number, r: number, alpha?: number) => Color;
32
+ export declare const alpha: ((amount: number) => (self: Color) => Color) & ((self: Color, amount: number) => Color);
33
+ export declare const darken: ((amount?: number) => (self: Color) => Color) & ((self: Color, amount?: number) => Color);
34
+ export declare const brighten: ((amount?: number) => (self: Color) => Color) & ((self: Color, amount?: number) => Color);
35
+ export declare const saturate: ((amount?: number) => (self: Color) => Color) & ((self: Color, amount?: number) => Color);
36
+ export declare const desaturate: ((amount?: number) => (self: Color) => Color) & ((self: Color, amount?: number) => Color);
37
+ export type ChannelMap = {
38
+ rgb: "r" | "g" | "b";
39
+ lrgb: "r" | "g" | "b";
40
+ lab: "l" | "a" | "b";
41
+ lch: "l" | "c" | "h";
42
+ hcl: "h" | "c" | "l";
43
+ num: "h" | "s" | "l";
44
+ hcg: "h" | "c" | "g";
45
+ hsi: "h" | "s" | "i";
46
+ hsl: "h" | "s" | "l";
47
+ hsv: "h" | "s" | "v";
48
+ oklab: "l" | "a" | "b";
49
+ oklch: "l" | "c" | "h";
50
+ };
51
+ export declare const mix: ((color: Color, amount: number, mode?: chroma.InterpolationMode) => (self: Color) => Color) & ((self: Color, color: Color, amount: number, mode?: chroma.InterpolationMode) => Color);
52
+ export declare const shade: ((amount?: number, mode?: chroma.InterpolationMode) => (self: Color) => Color) & ((self: Color, amount?: number, mode?: chroma.InterpolationMode) => Color);
53
+ export declare const tint: ((amount?: number, mode?: chroma.InterpolationMode) => (self: Color) => Color) & ((self: Color, amount?: number, mode?: chroma.InterpolationMode) => Color);
54
+ export type Value = number | `*${number}` | `+${number}` | `-${number}` | `/${number}`;
55
+ export declare const set: (<T extends keyof ChannelMap>(format: T, channel: ChannelMap[T], amount: Value) => (self: Color) => Color) & (<T extends keyof ChannelMap>(self: Color, format: T, channel: ChannelMap[T], amount: Value) => Color);
56
+ export declare const get: (<T extends keyof ChannelMap>(format: T, channel: ChannelMap[T]) => (self: Color) => number) & (<T extends keyof ChannelMap>(self: Color, format: T, channel: ChannelMap[T]) => number);
57
+ export declare const luminance: (self: Color) => number;
58
+ export declare const temperature: (self: Color) => number;
59
+ export declare const contrast: ((color: Color) => (self: Color) => number) & ((self: Color, color: Color) => number);
60
+ export declare const contrastAPCA: ((color: Color) => (self: Color) => number) & ((self: Color, color: Color) => number);
61
+ export declare const distance: ((color: Color, format?: chroma.ColorFormat) => (self: Color) => number) & ((self: Color, color: Color, format?: chroma.ColorFormat) => number);
62
+ export declare const deltaE: ((color: Color, kl?: number, kc?: number, kh?: number) => (self: Color) => number) & ((self: Color, color: Color, kl?: number, kc?: number, kh?: number) => number);
63
+ export declare const toHex: (self: Color) => string;
64
+ export declare const toRgb: (self: Color) => [number, number, number];
65
+ export declare const toHsl: (self: Color) => [number, number, number];
66
+ export declare const toHsv: (self: Color) => [number, number, number];
67
+ export declare const toOklab: (self: Color) => [number, number, number];
68
+ export declare const toOklch: (self: Color) => [number, number, number];
69
+ export declare const toNum: (self: Color) => number;
70
+ export type BlendMode = "multiply" | "darken" | "lighten" | "screen" | "overlay" | "burn" | "dodge";
71
+ export declare const blend: ((color: Color, mode: BlendMode) => (self: Color) => Color) & ((self: Color, color: Color, mode: BlendMode) => Color);
72
+ /**
73
+ * RGBA as 0–255 bytes — the form ThorVG's setFillColor/setStrokeColor want.
74
+ * `a` is scaled from the 0–1 alpha, so this is the single conversion point
75
+ * for the raster boundary (the getters keep alpha 0–1 for authoring math).
76
+ */
77
+ export declare const bytes: (self: Color) => {
78
+ r: number;
79
+ g: number;
80
+ b: number;
81
+ a: number;
82
+ };
83
+ export declare const black: Color;
84
+ export declare const white: Color;
85
+ export declare const transparent: Color;
86
+ export declare const twMap: {
87
+ readonly slate: {
88
+ readonly "50": Color;
89
+ readonly "100": Color;
90
+ readonly "200": Color;
91
+ readonly "300": Color;
92
+ readonly "400": Color;
93
+ readonly "500": Color;
94
+ readonly "600": Color;
95
+ readonly "700": Color;
96
+ readonly "800": Color;
97
+ readonly "900": Color;
98
+ readonly "950": Color;
99
+ };
100
+ readonly gray: {
101
+ readonly "50": Color;
102
+ readonly "100": Color;
103
+ readonly "200": Color;
104
+ readonly "300": Color;
105
+ readonly "400": Color;
106
+ readonly "500": Color;
107
+ readonly "600": Color;
108
+ readonly "700": Color;
109
+ readonly "800": Color;
110
+ readonly "900": Color;
111
+ readonly "950": Color;
112
+ };
113
+ readonly zinc: {
114
+ readonly "50": Color;
115
+ readonly "100": Color;
116
+ readonly "200": Color;
117
+ readonly "300": Color;
118
+ readonly "400": Color;
119
+ readonly "500": Color;
120
+ readonly "600": Color;
121
+ readonly "700": Color;
122
+ readonly "800": Color;
123
+ readonly "900": Color;
124
+ readonly "950": Color;
125
+ };
126
+ readonly neutral: {
127
+ readonly "50": Color;
128
+ readonly "100": Color;
129
+ readonly "200": Color;
130
+ readonly "300": Color;
131
+ readonly "400": Color;
132
+ readonly "500": Color;
133
+ readonly "600": Color;
134
+ readonly "700": Color;
135
+ readonly "800": Color;
136
+ readonly "900": Color;
137
+ readonly "950": Color;
138
+ };
139
+ readonly stone: {
140
+ readonly "50": Color;
141
+ readonly "100": Color;
142
+ readonly "200": Color;
143
+ readonly "300": Color;
144
+ readonly "400": Color;
145
+ readonly "500": Color;
146
+ readonly "600": Color;
147
+ readonly "700": Color;
148
+ readonly "800": Color;
149
+ readonly "900": Color;
150
+ readonly "950": Color;
151
+ };
152
+ readonly mauve: {
153
+ readonly "50": Color;
154
+ readonly "100": Color;
155
+ readonly "200": Color;
156
+ readonly "300": Color;
157
+ readonly "400": Color;
158
+ readonly "500": Color;
159
+ readonly "600": Color;
160
+ readonly "700": Color;
161
+ readonly "800": Color;
162
+ readonly "900": Color;
163
+ readonly "950": Color;
164
+ };
165
+ readonly olive: {
166
+ readonly "50": Color;
167
+ readonly "100": Color;
168
+ readonly "200": Color;
169
+ readonly "300": Color;
170
+ readonly "400": Color;
171
+ readonly "500": Color;
172
+ readonly "600": Color;
173
+ readonly "700": Color;
174
+ readonly "800": Color;
175
+ readonly "900": Color;
176
+ readonly "950": Color;
177
+ };
178
+ readonly mist: {
179
+ readonly "50": Color;
180
+ readonly "100": Color;
181
+ readonly "200": Color;
182
+ readonly "300": Color;
183
+ readonly "400": Color;
184
+ readonly "500": Color;
185
+ readonly "600": Color;
186
+ readonly "700": Color;
187
+ readonly "800": Color;
188
+ readonly "900": Color;
189
+ readonly "950": Color;
190
+ };
191
+ readonly taupe: {
192
+ readonly "50": Color;
193
+ readonly "100": Color;
194
+ readonly "200": Color;
195
+ readonly "300": Color;
196
+ readonly "400": Color;
197
+ readonly "500": Color;
198
+ readonly "600": Color;
199
+ readonly "700": Color;
200
+ readonly "800": Color;
201
+ readonly "900": Color;
202
+ readonly "950": Color;
203
+ };
204
+ readonly red: {
205
+ readonly "50": Color;
206
+ readonly "100": Color;
207
+ readonly "200": Color;
208
+ readonly "300": Color;
209
+ readonly "400": Color;
210
+ readonly "500": Color;
211
+ readonly "600": Color;
212
+ readonly "700": Color;
213
+ readonly "800": Color;
214
+ readonly "900": Color;
215
+ readonly "950": Color;
216
+ };
217
+ readonly orange: {
218
+ readonly "50": Color;
219
+ readonly "100": Color;
220
+ readonly "200": Color;
221
+ readonly "300": Color;
222
+ readonly "400": Color;
223
+ readonly "500": Color;
224
+ readonly "600": Color;
225
+ readonly "700": Color;
226
+ readonly "800": Color;
227
+ readonly "900": Color;
228
+ readonly "950": Color;
229
+ };
230
+ readonly amber: {
231
+ readonly "50": Color;
232
+ readonly "100": Color;
233
+ readonly "200": Color;
234
+ readonly "300": Color;
235
+ readonly "400": Color;
236
+ readonly "500": Color;
237
+ readonly "600": Color;
238
+ readonly "700": Color;
239
+ readonly "800": Color;
240
+ readonly "900": Color;
241
+ readonly "950": Color;
242
+ };
243
+ readonly yellow: {
244
+ readonly "50": Color;
245
+ readonly "100": Color;
246
+ readonly "200": Color;
247
+ readonly "300": Color;
248
+ readonly "400": Color;
249
+ readonly "500": Color;
250
+ readonly "600": Color;
251
+ readonly "700": Color;
252
+ readonly "800": Color;
253
+ readonly "900": Color;
254
+ readonly "950": Color;
255
+ };
256
+ readonly lime: {
257
+ readonly "50": Color;
258
+ readonly "100": Color;
259
+ readonly "200": Color;
260
+ readonly "300": Color;
261
+ readonly "400": Color;
262
+ readonly "500": Color;
263
+ readonly "600": Color;
264
+ readonly "700": Color;
265
+ readonly "800": Color;
266
+ readonly "900": Color;
267
+ readonly "950": Color;
268
+ };
269
+ readonly green: {
270
+ readonly "50": Color;
271
+ readonly "100": Color;
272
+ readonly "200": Color;
273
+ readonly "300": Color;
274
+ readonly "400": Color;
275
+ readonly "500": Color;
276
+ readonly "600": Color;
277
+ readonly "700": Color;
278
+ readonly "800": Color;
279
+ readonly "900": Color;
280
+ readonly "950": Color;
281
+ };
282
+ readonly emerald: {
283
+ readonly "50": Color;
284
+ readonly "100": Color;
285
+ readonly "200": Color;
286
+ readonly "300": Color;
287
+ readonly "400": Color;
288
+ readonly "500": Color;
289
+ readonly "600": Color;
290
+ readonly "700": Color;
291
+ readonly "800": Color;
292
+ readonly "900": Color;
293
+ readonly "950": Color;
294
+ };
295
+ readonly teal: {
296
+ readonly "50": Color;
297
+ readonly "100": Color;
298
+ readonly "200": Color;
299
+ readonly "300": Color;
300
+ readonly "400": Color;
301
+ readonly "500": Color;
302
+ readonly "600": Color;
303
+ readonly "700": Color;
304
+ readonly "800": Color;
305
+ readonly "900": Color;
306
+ readonly "950": Color;
307
+ };
308
+ readonly cyan: {
309
+ readonly "50": Color;
310
+ readonly "100": Color;
311
+ readonly "200": Color;
312
+ readonly "300": Color;
313
+ readonly "400": Color;
314
+ readonly "500": Color;
315
+ readonly "600": Color;
316
+ readonly "700": Color;
317
+ readonly "800": Color;
318
+ readonly "900": Color;
319
+ readonly "950": Color;
320
+ };
321
+ readonly sky: {
322
+ readonly "50": Color;
323
+ readonly "100": Color;
324
+ readonly "200": Color;
325
+ readonly "300": Color;
326
+ readonly "400": Color;
327
+ readonly "500": Color;
328
+ readonly "600": Color;
329
+ readonly "700": Color;
330
+ readonly "800": Color;
331
+ readonly "900": Color;
332
+ readonly "950": Color;
333
+ };
334
+ readonly blue: {
335
+ readonly "50": Color;
336
+ readonly "100": Color;
337
+ readonly "200": Color;
338
+ readonly "300": Color;
339
+ readonly "400": Color;
340
+ readonly "500": Color;
341
+ readonly "600": Color;
342
+ readonly "700": Color;
343
+ readonly "800": Color;
344
+ readonly "900": Color;
345
+ readonly "950": Color;
346
+ };
347
+ readonly indigo: {
348
+ readonly "50": Color;
349
+ readonly "100": Color;
350
+ readonly "200": Color;
351
+ readonly "300": Color;
352
+ readonly "400": Color;
353
+ readonly "500": Color;
354
+ readonly "600": Color;
355
+ readonly "700": Color;
356
+ readonly "800": Color;
357
+ readonly "900": Color;
358
+ readonly "950": Color;
359
+ };
360
+ readonly violet: {
361
+ readonly "50": Color;
362
+ readonly "100": Color;
363
+ readonly "200": Color;
364
+ readonly "300": Color;
365
+ readonly "400": Color;
366
+ readonly "500": Color;
367
+ readonly "600": Color;
368
+ readonly "700": Color;
369
+ readonly "800": Color;
370
+ readonly "900": Color;
371
+ readonly "950": Color;
372
+ };
373
+ readonly purple: {
374
+ readonly "50": Color;
375
+ readonly "100": Color;
376
+ readonly "200": Color;
377
+ readonly "300": Color;
378
+ readonly "400": Color;
379
+ readonly "500": Color;
380
+ readonly "600": Color;
381
+ readonly "700": Color;
382
+ readonly "800": Color;
383
+ readonly "900": Color;
384
+ readonly "950": Color;
385
+ };
386
+ readonly fuchsia: {
387
+ readonly "50": Color;
388
+ readonly "100": Color;
389
+ readonly "200": Color;
390
+ readonly "300": Color;
391
+ readonly "400": Color;
392
+ readonly "500": Color;
393
+ readonly "600": Color;
394
+ readonly "700": Color;
395
+ readonly "800": Color;
396
+ readonly "900": Color;
397
+ readonly "950": Color;
398
+ };
399
+ readonly pink: {
400
+ readonly "50": Color;
401
+ readonly "100": Color;
402
+ readonly "200": Color;
403
+ readonly "300": Color;
404
+ readonly "400": Color;
405
+ readonly "500": Color;
406
+ readonly "600": Color;
407
+ readonly "700": Color;
408
+ readonly "800": Color;
409
+ readonly "900": Color;
410
+ readonly "950": Color;
411
+ };
412
+ readonly rose: {
413
+ readonly "50": Color;
414
+ readonly "100": Color;
415
+ readonly "200": Color;
416
+ readonly "300": Color;
417
+ readonly "400": Color;
418
+ readonly "500": Color;
419
+ readonly "600": Color;
420
+ readonly "700": Color;
421
+ readonly "800": Color;
422
+ readonly "900": Color;
423
+ readonly "950": Color;
424
+ };
425
+ };
426
+ type TwColor = keyof typeof twMap;
427
+ export declare const tw: (color: TwColor, shade?: "50" | "100" | "200" | "300" | "400" | "500" | "600" | "700" | "800" | "900" | "950", alpha?: number) => Color;
428
+ export {};