@mateuszjs/magic-render 0.1.0-next.3 → 0.1.0-next.31

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 (119) hide show
  1. package/lib/40dc20eab8f7c9f3.ttf +0 -0
  2. package/lib/index.mjs +1 -1
  3. package/lib/index.mjs.map +1 -1
  4. package/lib/types/WebGPU/canvasSizeObserver.d.ts.map +1 -1
  5. package/lib/types/WebGPU/generatePreview.d.ts +3 -0
  6. package/lib/types/WebGPU/generatePreview.d.ts.map +1 -0
  7. package/lib/types/WebGPU/getDevice.d.ts +5 -1
  8. package/lib/types/WebGPU/getDevice.d.ts.map +1 -1
  9. package/lib/types/WebGPU/getTexture/createCheckedImageData.d.ts.map +1 -1
  10. package/lib/types/WebGPU/getTexture/index.d.ts +3 -3
  11. package/lib/types/WebGPU/getTexture/index.d.ts.map +1 -1
  12. package/lib/types/WebGPU/pick.d.ts +1 -2
  13. package/lib/types/WebGPU/pick.d.ts.map +1 -1
  14. package/lib/types/WebGPU/programs/blur/getProgram.d.ts +1 -1
  15. package/lib/types/WebGPU/programs/blur/getProgram.d.ts.map +1 -1
  16. package/lib/types/WebGPU/programs/clearComputeDepth/getProgram.d.ts +2 -0
  17. package/lib/types/WebGPU/programs/clearComputeDepth/getProgram.d.ts.map +1 -0
  18. package/lib/types/WebGPU/programs/clearSdf/getProgram.d.ts +2 -0
  19. package/lib/types/WebGPU/programs/clearSdf/getProgram.d.ts.map +1 -0
  20. package/lib/types/WebGPU/programs/combineSdf/getProgram.d.ts +2 -0
  21. package/lib/types/WebGPU/programs/combineSdf/getProgram.d.ts.map +1 -0
  22. package/lib/types/WebGPU/programs/computeShape/getProgram.d.ts +2 -0
  23. package/lib/types/WebGPU/programs/computeShape/getProgram.d.ts.map +1 -0
  24. package/lib/types/WebGPU/programs/drawShape/getProgram.d.ts +2 -0
  25. package/lib/types/WebGPU/programs/drawShape/getProgram.d.ts.map +1 -0
  26. package/lib/types/WebGPU/programs/drawTexture/getProgram.d.ts +1 -1
  27. package/lib/types/WebGPU/programs/drawTexture/getProgram.d.ts.map +1 -1
  28. package/lib/types/WebGPU/programs/drawTriangle/getProgram.d.ts +1 -1
  29. package/lib/types/WebGPU/programs/drawTriangle/getProgram.d.ts.map +1 -1
  30. package/lib/types/WebGPU/programs/initPrograms.d.ts +20 -8
  31. package/lib/types/WebGPU/programs/initPrograms.d.ts.map +1 -1
  32. package/lib/types/WebGPU/programs/pickShape/getProgram.d.ts +2 -0
  33. package/lib/types/WebGPU/programs/pickShape/getProgram.d.ts.map +1 -0
  34. package/lib/types/WebGPU/programs/pickTexture/getProgram.d.ts +1 -1
  35. package/lib/types/WebGPU/programs/pickTexture/getProgram.d.ts.map +1 -1
  36. package/lib/types/WebGPU/programs/pickTriangle/getProgram.d.ts +1 -1
  37. package/lib/types/WebGPU/programs/pickTriangle/getProgram.d.ts.map +1 -1
  38. package/lib/types/WebGPU/textureCache.d.ts +4 -0
  39. package/lib/types/WebGPU/textureCache.d.ts.map +1 -0
  40. package/lib/types/fonts.d.ts +5 -0
  41. package/lib/types/fonts.d.ts.map +1 -0
  42. package/lib/types/getCanvasMatrix.d.ts.map +1 -1
  43. package/lib/types/getCanvasRenderDescriptor.d.ts +1 -0
  44. package/lib/types/getCanvasRenderDescriptor.d.ts.map +1 -1
  45. package/lib/types/getDepthTexture.d.ts +1 -0
  46. package/lib/types/getDepthTexture.d.ts.map +1 -1
  47. package/lib/types/getMultisampleTexture.d.ts +2 -0
  48. package/lib/types/getMultisampleTexture.d.ts.map +1 -0
  49. package/lib/types/getRenderDescriptor.d.ts.map +1 -1
  50. package/lib/types/index.d.ts +10 -9
  51. package/lib/types/index.d.ts.map +1 -1
  52. package/lib/types/loadingTexture.d.ts +2 -0
  53. package/lib/types/loadingTexture.d.ts.map +1 -0
  54. package/lib/types/pointer.d.ts +15 -0
  55. package/lib/types/pointer.d.ts.map +1 -0
  56. package/lib/types/run.d.ts +5 -4
  57. package/lib/types/run.d.ts.map +1 -1
  58. package/lib/types/sanitizeFill.d.ts +3 -0
  59. package/lib/types/sanitizeFill.d.ts.map +1 -0
  60. package/lib/types/svgToShapes/arcToBezier.d.ts +11 -0
  61. package/lib/types/svgToShapes/arcToBezier.d.ts.map +1 -0
  62. package/lib/types/svgToShapes/boundingBox.d.ts +18 -0
  63. package/lib/types/svgToShapes/boundingBox.d.ts.map +1 -0
  64. package/lib/types/svgToShapes/collectShapesData.d.ts +11 -0
  65. package/lib/types/svgToShapes/collectShapesData.d.ts.map +1 -0
  66. package/lib/types/svgToShapes/const.d.ts +5 -0
  67. package/lib/types/svgToShapes/const.d.ts.map +1 -0
  68. package/lib/types/svgToShapes/createShapes.d.ts +3 -0
  69. package/lib/types/svgToShapes/createShapes.d.ts.map +1 -0
  70. package/lib/types/svgToShapes/definitions.d.ts +44 -0
  71. package/lib/types/svgToShapes/definitions.d.ts.map +1 -0
  72. package/lib/types/svgToShapes/getProps.d.ts +4 -0
  73. package/lib/types/svgToShapes/getProps.d.ts.map +1 -0
  74. package/lib/types/svgToShapes/parseEllipse.d.ts +3 -0
  75. package/lib/types/svgToShapes/parseEllipse.d.ts.map +1 -0
  76. package/lib/types/svgToShapes/parsePathData.d.ts +3 -0
  77. package/lib/types/svgToShapes/parsePathData.d.ts.map +1 -0
  78. package/lib/types/svgToShapes/parseRect.d.ts +3 -0
  79. package/lib/types/svgToShapes/parseRect.d.ts.map +1 -0
  80. package/lib/types/svgToShapes/radialGradient.d.ts +16 -0
  81. package/lib/types/svgToShapes/radialGradient.d.ts.map +1 -0
  82. package/lib/types/svgToShapes/utils.d.ts +10 -0
  83. package/lib/types/svgToShapes/utils.d.ts.map +1 -0
  84. package/lib/types/textures.d.ts +21 -0
  85. package/lib/types/textures.d.ts.map +1 -0
  86. package/lib/types/types.d.ts +127 -3
  87. package/lib/types/types.d.ts.map +1 -1
  88. package/lib/types/typing.d.ts +6 -0
  89. package/lib/types/typing.d.ts.map +1 -0
  90. package/lib/types/utils/debounce.d.ts +2 -0
  91. package/lib/types/utils/debounce.d.ts.map +1 -0
  92. package/lib/types/utils/distancePointToLine.d.ts +1 -1
  93. package/lib/types/utils/getAngle.d.ts +1 -1
  94. package/lib/types/utils/getBezierPos.d.ts +1 -1
  95. package/lib/types/utils/getBezierPos.d.ts.map +1 -1
  96. package/lib/types/utils/getBezierTan.d.ts +1 -1
  97. package/lib/types/utils/getBezierTan.d.ts.map +1 -1
  98. package/lib/types/utils/getCurveLength.d.ts +1 -1
  99. package/lib/types/utils/getDefaultPoints.d.ts +2 -1
  100. package/lib/types/utils/getDefaultPoints.d.ts.map +1 -1
  101. package/lib/types/utils/getDistance.d.ts +1 -1
  102. package/lib/types/utils/normalizeVec2.d.ts +1 -1
  103. package/lib/types/utils/throttle.d.ts +2 -0
  104. package/lib/types/utils/throttle.d.ts.map +1 -0
  105. package/package.json +12 -5
  106. package/lib/types/WebGPU/pointer.d.ts +0 -6
  107. package/lib/types/WebGPU/pointer.d.ts.map +0 -1
  108. package/lib/types/WebGPU/programs/draw3dModel/getProgram.d.ts +0 -2
  109. package/lib/types/WebGPU/programs/draw3dModel/getProgram.d.ts.map +0 -1
  110. package/lib/types/WebGPU/programs/draw3dModelLight/getProgram.d.ts +0 -9
  111. package/lib/types/WebGPU/programs/draw3dModelLight/getProgram.d.ts.map +0 -1
  112. package/lib/types/WebGPU/programs/draw3dModelTexture/getProgram.d.ts +0 -2
  113. package/lib/types/WebGPU/programs/draw3dModelTexture/getProgram.d.ts.map +0 -1
  114. package/lib/types/WebGPU/programs/drawBezier/getProgram.d.ts +0 -2
  115. package/lib/types/WebGPU/programs/drawBezier/getProgram.d.ts.map +0 -1
  116. package/lib/types/__test__/index.test.d.ts +0 -1
  117. package/lib/types/__test__/index.test.d.ts.map +0 -1
  118. package/lib/types/models/Video/MiniatureVideo.d.ts +0 -30
  119. package/lib/types/models/Video/MiniatureVideo.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radialGradient.d.ts","sourceRoot":"","sources":["../../../src/svgToShapes/radialGradient.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B;;;;;;;;;GASG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,KAAK,EACb,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,GACR;IACD,WAAW,EAAE,KAAK,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;CACd,CA2DA"}
@@ -0,0 +1,10 @@
1
+ import { ElementNode, Node } from 'svg-parser';
2
+ import { AttrValue } from './definitions';
3
+ import { Color, Point } from 'types';
4
+ export declare function isStraightHandle(p: Point): boolean;
5
+ export declare function parseColor(cssColor: string, overrideAlpha?: number): Color;
6
+ export declare function getNum(x: AttrValue, fallback?: number): number;
7
+ export declare function isElementNode(node: string | Node): node is ElementNode;
8
+ export declare const IDENTITY_MATRIX: number[];
9
+ export declare function parseTransform(str: string | undefined, initialMatrix?: number[]): number[];
10
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/svgToShapes/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAIpC,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,KAAK,WAExC;AAGD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,SAAI,GAAG,KAAK,CAoBrE;AAED,wBAAgB,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,GAAE,MAAU,GAAG,MAAM,CAKjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,IAAI,WAAW,CAEtE;AAED,eAAO,MAAM,eAAe,UAAqB,CAAA;AAgBjD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,aAAa,GAAE,MAAM,EAAoB,GACxC,MAAM,EAAE,CAkDV"}
@@ -0,0 +1,21 @@
1
+ export declare function init(_device: GPUDevice, _presentationFormat: GPUTextureFormat, _storageFormat: GPUTextureFormat, _updateProcessing: (loadingTextures: number) => void): void;
2
+ export interface TextureSource {
3
+ url: string;
4
+ texture?: GPUTexture;
5
+ hash?: string;
6
+ data?: Uint8ClampedArray;
7
+ }
8
+ export declare function add(url: string, onLoad?: (width: number, height: number, isNew: boolean) => void): number;
9
+ export declare function getTexture(textureId: number): GPUTexture;
10
+ export declare function getTextureSafe(textureId: number): GPUTexture;
11
+ export declare function getOptionTexture(textureId: number): GPUTexture | undefined;
12
+ export declare function createCacheTexture(): number;
13
+ export declare function createComputeDepthTexture(width: number, height: number): number;
14
+ export declare function createSDF(): number;
15
+ export declare function emptySDF(textureId: number, width: number, height: number): void;
16
+ export declare function update(textureId: number, width: number, height: number): void;
17
+ export declare function setCacheTexture(id: number, texture: GPUTexture): void;
18
+ export declare function getTextureCache(id: number, expectWidth: number, expectHeight: number): GPUTexture;
19
+ export declare function getUrl(textureId: number): string;
20
+ export declare function updateTextureUrl(textureId: number, url: string): void;
21
+ //# sourceMappingURL=textures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textures.d.ts","sourceRoot":"","sources":["../../src/textures.ts"],"names":[],"mappings":"AAsCA,wBAAgB,IAAI,CAClB,OAAO,EAAE,SAAS,EAClB,mBAAmB,EAAE,gBAAgB,EACrC,cAAc,EAAE,gBAAgB,EAChC,iBAAiB,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,GACnD,IAAI,CAUN;AAcD,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,iBAAiB,CAAA;CACzB;AAED,wBAAgB,GAAG,CACjB,GAAG,EAAE,MAAM,EACX,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,GAC/D,MAAM,CAgBR;AAoDD,wBAAgB,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAIxD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,CAE5D;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAE1E;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAI3C;AAED,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAY/E;AAED,wBAAgB,SAAS,IAAI,MAAM,CAYlC;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAW/E;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAkB7E;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,QAM9D;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,UAAU,CAwBjG;AAED,wBAAgB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAEhD;AA4CD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAE9D"}
@@ -1,9 +1,133 @@
1
+ export interface HTMLInputEvent extends Event {
2
+ target: HTMLInputElement & EventTarget;
3
+ }
1
4
  export interface Point {
2
5
  x: number;
3
6
  y: number;
4
7
  }
5
- export type Line = [Point, Point];
6
- export interface HTMLInputEvent extends Event {
7
- target: HTMLInputElement & EventTarget;
8
+ export interface PointUV {
9
+ x: number;
10
+ y: number;
11
+ u: number;
12
+ v: number;
13
+ }
14
+ export interface BoundingBox {
15
+ min_x: number;
16
+ min_y: number;
17
+ max_x: number;
18
+ max_y: number;
19
+ }
20
+ export type Color = [number, number, number, number];
21
+ export type Id = [number, number, number, number];
22
+ export type GradientStop = {
23
+ color: Color;
24
+ offset: number;
25
+ };
26
+ export type LinearGradient = {
27
+ start: Point;
28
+ end: Point;
29
+ stops: GradientStop[];
30
+ };
31
+ export type RadialGradient = {
32
+ radius_ratio: number;
33
+ stops: GradientStop[];
34
+ center: Point;
35
+ destination: Point;
36
+ };
37
+ export type SdfEffect = {
38
+ dist_start: number;
39
+ dist_end: number;
40
+ fill: {
41
+ linear: LinearGradient;
42
+ } | {
43
+ radial: RadialGradient;
44
+ } | {
45
+ solid: Color;
46
+ };
47
+ };
48
+ export type ShapeProps = {
49
+ sdf_effects: SdfEffect[];
50
+ filter: {
51
+ gaussianBlur: Point;
52
+ } | null;
53
+ opacity: number;
54
+ };
55
+ export type SerializedInputImage = {
56
+ id?: number;
57
+ bounds?: PointUV[];
58
+ url: string;
59
+ texture_id?: number;
60
+ };
61
+ export type SerializedInputShape = {
62
+ id?: number;
63
+ paths: Point[][];
64
+ props: ShapeProps;
65
+ sdf_texture_id?: number;
66
+ cache_texture_id?: number | null;
67
+ bounds: PointUV[];
68
+ };
69
+ export type SerializedInputText = {
70
+ id?: number;
71
+ content: string;
72
+ bounds: PointUV[];
73
+ font_size: number;
74
+ props: ShapeProps;
75
+ };
76
+ export type SerializedInputAsset = SerializedInputImage | SerializedInputShape | SerializedInputText;
77
+ export type SerializedOutputImage = {
78
+ id: number;
79
+ bounds: PointUV[];
80
+ url: string;
81
+ texture_id: number;
82
+ };
83
+ export type SerializedOutputShape = {
84
+ id: number;
85
+ paths: Point[][];
86
+ props: ShapeProps;
87
+ bounds: PointUV[];
88
+ sdf_texture_id: number;
89
+ cache_texture_id: number | null;
90
+ };
91
+ export type SerializedOutputText = {
92
+ id: number;
93
+ content: string;
94
+ bounds: PointUV[];
95
+ font_size: number;
96
+ props: ShapeProps;
97
+ };
98
+ export type SerializedOutputAsset = SerializedOutputImage | SerializedOutputShape | SerializedOutputText;
99
+ export declare enum CreatorTool {
100
+ SelectAsset = 0,
101
+ DrawBezierCurve = 1,
102
+ SelectNode = 2,
103
+ Text = 3
8
104
  }
105
+ type ImageAsset = {
106
+ id: number;
107
+ bounds: PointUV[];
108
+ texture_id: number;
109
+ };
110
+ type ShapeAsset = {
111
+ id: number;
112
+ paths: Point[][];
113
+ props: ShapeProps;
114
+ bounds: PointUV[] | null;
115
+ sdf_texture_id: number;
116
+ cache_texture_id: number | null;
117
+ };
118
+ type TextAsset = {
119
+ id: number;
120
+ content: string | null;
121
+ bounds: PointUV[];
122
+ font_size: number;
123
+ props: ShapeProps;
124
+ };
125
+ export type ZigAsset = {
126
+ img: ImageAsset;
127
+ } | {
128
+ shape: ShapeAsset;
129
+ } | {
130
+ text: TextAsset;
131
+ };
132
+ export {};
9
133
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK;IACpB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,MAAM,MAAM,IAAI,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;AAEjC,MAAM,WAAW,cAAe,SAAQ,KAAK;IAC3C,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAAA;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ export declare function isEnabled(): boolean;
2
+ export declare function updateContent(text: string): void;
3
+ export declare function updateSelection(start: number, end: number): void;
4
+ export declare function enable(text: string): void;
5
+ export declare function disable(): void;
6
+ //# sourceMappingURL=typing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"typing.d.ts","sourceRoot":"","sources":["../../src/typing.ts"],"names":[],"mappings":"AAOA,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAmCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAkBhD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAKhE;AAqBD,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAoBzC;AAED,wBAAgB,OAAO,IAAI,IAAI,CAK9B"}
@@ -0,0 +1,2 @@
1
+ export default function debounce(callback: Function, ms: number): (...args: unknown[]) => void;
2
+ //# sourceMappingURL=debounce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debounce.d.ts","sourceRoot":"","sources":["../../../src/utils/debounce.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,IAErD,GAAG,MAAM,OAAO,EAAE,UAM3B"}
@@ -1,3 +1,3 @@
1
- import { Point } from "types";
1
+ import { Point } from 'types';
2
2
  export default function distancePointToLine(p: Point, l1: Point, l2: Point): number;
3
3
  //# sourceMappingURL=distancePointToLine.d.ts.map
@@ -1,3 +1,3 @@
1
- import { Point } from "types";
1
+ import { Point } from 'types';
2
2
  export default function getAngle(from: Point, to: Point): number;
3
3
  //# sourceMappingURL=getAngle.d.ts.map
@@ -1,3 +1,3 @@
1
- import { Point } from "types";
1
+ import { Point } from 'types';
2
2
  export default function getBezierPos(p1: Point, p2: Point, p3: Point, p4: Point, t: number): Point;
3
3
  //# sourceMappingURL=getBezierPos.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBezierPos.d.ts","sourceRoot":"","sources":["../../../src/utils/getBezierPos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,CAAC,EAAE,MAAM,GACR,KAAK,CAkBP"}
1
+ {"version":3,"file":"getBezierPos.d.ts","sourceRoot":"","sources":["../../../src/utils/getBezierPos.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7B,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CAkBjG"}
@@ -1,3 +1,3 @@
1
- import { Point } from "types";
1
+ import { Point } from 'types';
2
2
  export default function getBezierTan(p1: Point, p2: Point, p3: Point, p4: Point, t: number): Point;
3
3
  //# sourceMappingURL=getBezierTan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getBezierTan.d.ts","sourceRoot":"","sources":["../../../src/utils/getBezierTan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAG7B,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,EAAE,EAAE,KAAK,EACT,CAAC,EAAE,MAAM,GACR,KAAK,CAeP"}
1
+ {"version":3,"file":"getBezierTan.d.ts","sourceRoot":"","sources":["../../../src/utils/getBezierTan.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAG7B,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,GAAG,KAAK,CASjG"}
@@ -1,3 +1,3 @@
1
- import { Point } from "types";
1
+ import { Point } from 'types';
2
2
  export default function getCurveLength(p1: Point, p2: Point, p3: Point, p4: Point, precision: number): number[];
3
3
  //# sourceMappingURL=getCurveLength.d.ts.map
@@ -1,2 +1,3 @@
1
- export default function getDefaultPoints(img: HTMLImageElement, canvas: HTMLCanvasElement): PointUV[];
1
+ import { PointUV } from 'types';
2
+ export default function getDefaultPoints(texWidth: number, texHeight: number, projectWidth: number, projectHeight: number): PointUV[];
2
3
  //# sourceMappingURL=getDefaultPoints.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultPoints.d.ts","sourceRoot":"","sources":["../../../src/utils/getDefaultPoints.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,GAAG,EAAE,gBAAgB,EACrB,MAAM,EAAE,iBAAiB,GACxB,OAAO,EAAE,CAaX"}
1
+ {"version":3,"file":"getDefaultPoints.d.ts","sourceRoot":"","sources":["../../../src/utils/getDefaultPoints.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAA;AAG/B,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,aAAa,EAAE,MAAM,GACpB,OAAO,EAAE,CAaX"}
@@ -1,3 +1,3 @@
1
- import { Point } from "types";
1
+ import { Point } from 'types';
2
2
  export default function getDistance(p1: Point, p2: Point): number;
3
3
  //# sourceMappingURL=getDistance.d.ts.map
@@ -1,3 +1,3 @@
1
- import { Point } from "types";
1
+ import { Point } from 'types';
2
2
  export default function normalizeVec2(vec: Point): Point;
3
3
  //# sourceMappingURL=normalizeVec2.d.ts.map
@@ -0,0 +1,2 @@
1
+ export default function throttle<T extends (...args: never[]) => void>(func: T, limit: number): (...args: Parameters<T>) => void;
2
+ //# sourceMappingURL=throttle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/utils/throttle.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,KAAK,EAAE,KAAK,IAAI,EACnE,IAAI,EAAE,CAAC,EACP,KAAK,EAAE,MAAM,GACZ,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAmBlC"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@mateuszjs/magic-render",
3
3
  "description": "Initial version of visual editor",
4
- "version": "0.1.0-next.3",
4
+ "version": "0.1.0-next.31",
5
5
  "author": "Mateusz Walendzik",
6
6
  "engines": {
7
7
  "node": ">=20.8.1"
@@ -21,7 +21,7 @@
21
21
  },
22
22
  "scripts": {
23
23
  "start": "export NODE_ENV=development && webpack serve --mode development",
24
- "build": "rm -rf lib lib-test && export NODE_ENV=production && webpack && tsc --project tsconfig.build.json --emitDeclarationOnly ",
24
+ "build": "rm -rf lib lib-test && export NODE_ENV=production && tsc --project tsconfig.build.json --emitDeclarationOnly && webpack",
25
25
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
26
26
  "test-e2e": "npx playwright test",
27
27
  "format": "eslint --fix \"src/**/*.{ts,js}\" \"integration-tests/**/*.{ts,js}\""
@@ -34,9 +34,12 @@
34
34
  "@tsconfig/recommended": "^1.0.8",
35
35
  "@types/jest": "^29.5.14",
36
36
  "@types/node": "^22.13.9",
37
- "@webgpu/types": "^0.1.54",
37
+ "@types/opentype.js": "^1.3.8",
38
+ "@types/svg-parser": "^2.0.6",
39
+ "@webgpu/types": "^0.1.65",
38
40
  "eslint": "^9.28.0",
39
41
  "html-webpack-plugin": "^5.6.3",
42
+ "http-server": "^14.1.1",
40
43
  "jest": "^29.7.0",
41
44
  "jest-environment-jsdom": "^29.7.0",
42
45
  "semantic-release": "^24.2.3",
@@ -49,7 +52,7 @@
49
52
  "webpack-bundle-analyzer": "^4.10.2",
50
53
  "webpack-cli": "^6.0.1",
51
54
  "webpack-dev-server": "^5.2.0",
52
- "zigar-loader": "^0.14.0"
55
+ "zigar-loader": "^0.14.1"
53
56
  },
54
57
  "types": "./lib/types/index.d.ts",
55
58
  "main": "./lib/index.mjs",
@@ -65,5 +68,9 @@
65
68
  "homepage": "https://github.com/mateuszJS/magic-render#readme",
66
69
  "files": [
67
70
  "lib/**/*"
68
- ]
71
+ ],
72
+ "dependencies": {
73
+ "opentype.js": "^1.3.4",
74
+ "svg-parser": "^2.0.4"
75
+ }
69
76
  }
@@ -1,6 +0,0 @@
1
- export declare const pointer: {
2
- x: number;
3
- y: number;
4
- };
5
- export default function initMouseController(canvas: HTMLCanvasElement): void;
6
- //# sourceMappingURL=pointer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pointer.d.ts","sourceRoot":"","sources":["../../../src/WebGPU/pointer.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO;;;CAAiB,CAAA;AAErC,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,QA4BpE"}
@@ -1,2 +0,0 @@
1
- export default function getProgram(device: GPUDevice, presentationFormat: GPUTextureFormat): (pass: GPURenderPassEncoder, matrix: Float32Array, vertexData: Float32Array, indexData: Uint32Array) => void;
2
- //# sourceMappingURL=getProgram.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../../src/WebGPU/programs/draw3dModel/getProgram.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,IAwCtF,MAAM,oBAAoB,EAC1B,QAAQ,YAAY,EACpB,YAAY,YAAY,EACxB,WAAW,WAAW,UAmDzB"}
@@ -1,9 +0,0 @@
1
- interface Uniforms {
2
- worldViewProjection: Float32Array;
3
- normalMatrix: Float32Array;
4
- lightColor: Float32Array;
5
- lightDirection: Float32Array;
6
- }
7
- export default function getProgram(device: GPUDevice, presentationFormat: GPUTextureFormat): (pass: GPURenderPassEncoder, uniform: Uniforms, vertexData: Float32Array, indexData: Uint32Array) => void;
8
- export {};
9
- //# sourceMappingURL=getProgram.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../../src/WebGPU/programs/draw3dModelLight/getProgram.ts"],"names":[],"mappings":"AAEA,UAAU,QAAQ;IAChB,mBAAmB,EAAE,YAAY,CAAC;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,UAAU,EAAE,YAAY,CAAC;IACzB,cAAc,EAAE,YAAY,CAAA;CAC7B;AAED,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,IAyCtF,MAAM,oBAAoB,EAC1B,SAAS,QAAQ,EACjB,YAAY,YAAY,EACxB,WAAW,WAAW,UAqEzB"}
@@ -1,2 +0,0 @@
1
- export default function getProgram(device: GPUDevice, presentationFormat: GPUTextureFormat): (pass: GPURenderPassEncoder, matrix: Float32Array, texture: GPUTexture, vertexData: Float32Array, indexData: Uint32Array) => void;
2
- //# sourceMappingURL=getProgram.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../../src/WebGPU/programs/draw3dModelTexture/getProgram.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,IAoCtF,MAAM,oBAAoB,EAC1B,QAAQ,YAAY,EACpB,SAAS,UAAU,EACnB,YAAY,YAAY,EACxB,WAAW,WAAW,UAwDzB"}
@@ -1,2 +0,0 @@
1
- export default function getProgram(device: GPUDevice, presentationFormat: GPUTextureFormat): (pass: GPURenderPassEncoder, matrix: Float32Array, pointsData: Float32Array, tData: Float32Array, dirData: Float32Array, segmentIndexData: Uint32Array, zoom: number) => void;
2
- //# sourceMappingURL=getProgram.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getProgram.d.ts","sourceRoot":"","sources":["../../../../../src/WebGPU/programs/drawBezier/getProgram.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,MAAM,EAAE,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,IAiDtF,MAAM,oBAAoB,EAC1B,QAAQ,YAAY,EACpB,YAAY,YAAY,EACxB,OAAO,YAAY,EACnB,SAAS,YAAY,EACrB,kBAAkB,WAAW,EAC7B,MAAM,MAAM,UAoFf"}
@@ -1 +0,0 @@
1
- //# sourceMappingURL=index.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/__test__/index.test.ts"],"names":[],"mappings":""}
@@ -1,30 +0,0 @@
1
- export default class MiniatureVideo {
2
- private getCurrTime;
3
- private device;
4
- private _width?;
5
- private _height?;
6
- private _duration?;
7
- html: HTMLVideoElement;
8
- isReady: boolean;
9
- private requestedFrames;
10
- textureArray: GPUTexture;
11
- private fetchedFramesMs;
12
- isPlaying: boolean;
13
- private texWidth;
14
- private texHeight;
15
- constructor(url: string, cbOnReady: (video: MiniatureVideo) => void, getCurrTime: () => number, onVideoEnd: VoidFunction, device: GPUDevice);
16
- set currTime(time: number);
17
- get currTime(): number;
18
- get duration(): number;
19
- get width(): number;
20
- get height(): number;
21
- private requestVideoFrame;
22
- private getVideoData;
23
- private fetchNextFrame;
24
- private addFrameToQueue;
25
- triggerRequest(): void;
26
- requestFrame(msOffset: number, callback: VoidFunction, cache: boolean): boolean;
27
- play(time: number): void;
28
- pause: () => void;
29
- }
30
- //# sourceMappingURL=MiniatureVideo.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MiniatureVideo.d.ts","sourceRoot":"","sources":["../../../../src/models/Video/MiniatureVideo.ts"],"names":[],"mappings":"AAgBA,MAAM,CAAC,OAAO,OAAO,cAAc;IAgB/B,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,MAAM;IAjBhB,OAAO,CAAC,MAAM,CAAC,CAAQ;IACvB,OAAO,CAAC,OAAO,CAAC,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAC,CAAQ;IACnB,IAAI,EAAE,gBAAgB,CAAA;IACtB,OAAO,EAAE,OAAO,CAAA;IACvB,OAAO,CAAC,eAAe,CAAgB;IAChC,YAAY,EAAE,UAAU,CAAA;IAC/B,OAAO,CAAC,eAAe,CAAU;IAC1B,SAAS,EAAE,OAAO,CAAA;IACzB,OAAO,CAAC,QAAQ,CAAQ;IACxB,OAAO,CAAC,SAAS,CAAQ;gBAGvB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,EAClC,WAAW,EAAE,MAAM,MAAM,EACjC,UAAU,EAAE,YAAY,EAChB,MAAM,EAAE,SAAS;IAoD3B,IAAI,QAAQ,CAAC,IAAI,EAAE,MAAM,EAExB;IAED,IAAI,QAAQ,IAJO,MAAM,CAMxB;IAGD,IAAI,QAAQ,WAQX;IAED,IAAI,KAAK,WAQR;IAED,IAAI,MAAM,WAQT;IAED,OAAO,CAAC,iBAAiB;IAiEzB,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,eAAe;IAoBhB,cAAc;IAUd,YAAY,CACjB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,OAAO,GACb,OAAO;IAaH,IAAI,CAAC,IAAI,EAAE,MAAM;IAMjB,KAAK,aAGX;CACF"}