@umituz/web-canvas 1.0.6 → 1.1.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 (41) hide show
  1. package/README.md +33 -0
  2. package/dist/CanvasConfig-HFgH7irb.d.mts +310 -0
  3. package/dist/CanvasConfig-HFgH7irb.d.ts +310 -0
  4. package/dist/application/index.d.mts +78 -0
  5. package/dist/application/index.d.ts +78 -0
  6. package/dist/application/index.js +1146 -0
  7. package/dist/application/index.mjs +11 -0
  8. package/dist/chunk-DNKRSL6D.mjs +358 -0
  9. package/dist/chunk-HJ24NSQA.mjs +777 -0
  10. package/dist/chunk-MC6PNV2F.mjs +34 -0
  11. package/dist/chunk-TZGTTYTZ.mjs +0 -0
  12. package/dist/chunk-UOGTEMIJ.mjs +712 -0
  13. package/dist/chunk-Z6IB4BQV.mjs +31 -0
  14. package/dist/domain/config/index.d.mts +87 -0
  15. package/dist/domain/config/index.d.ts +87 -0
  16. package/dist/domain/config/index.js +92 -0
  17. package/dist/domain/config/index.mjs +15 -0
  18. package/dist/domain/index.d.mts +45 -0
  19. package/dist/domain/index.d.ts +45 -0
  20. package/dist/domain/index.js +137 -0
  21. package/dist/domain/index.mjs +55 -0
  22. package/dist/index.d.mts +7 -0
  23. package/dist/index.d.ts +7 -0
  24. package/dist/index.js +1927 -0
  25. package/dist/index.mjs +40 -0
  26. package/dist/infrastructure/index.d.mts +198 -0
  27. package/dist/infrastructure/index.d.ts +198 -0
  28. package/dist/infrastructure/index.js +765 -0
  29. package/dist/infrastructure/index.mjs +13 -0
  30. package/dist/presentation/index.d.mts +145 -0
  31. package/dist/presentation/index.d.ts +145 -0
  32. package/dist/presentation/index.js +1911 -0
  33. package/dist/presentation/index.mjs +16 -0
  34. package/dist/report.types-DWDnprBx.d.mts +76 -0
  35. package/dist/report.types-DWDnprBx.d.ts +76 -0
  36. package/package.json +8 -2
  37. package/src/domain/types/freehand.types.ts +42 -0
  38. package/src/domain/types/index.ts +1 -0
  39. package/src/index.ts +10 -0
  40. package/src/presentation/hooks/useFreehandCanvas.ts +244 -0
  41. package/src/presentation/index.ts +1 -0
package/dist/index.mjs ADDED
@@ -0,0 +1,40 @@
1
+ import {
2
+ useCanvasExport,
3
+ useFreehandCanvas,
4
+ useReportExport,
5
+ useScreenshotStudio
6
+ } from "./chunk-HJ24NSQA.mjs";
7
+ import {
8
+ ReportService,
9
+ ScreenshotStudioService
10
+ } from "./chunk-DNKRSL6D.mjs";
11
+ import {
12
+ CanvasRenderer,
13
+ DeviceConfigService,
14
+ PatternRenderer,
15
+ ScreenshotRenderer
16
+ } from "./chunk-UOGTEMIJ.mjs";
17
+ import {
18
+ DEFAULT_SCREENSHOT_STUDIO_CONFIG
19
+ } from "./chunk-Z6IB4BQV.mjs";
20
+ import {
21
+ DEFAULT_CANVAS_CONFIG,
22
+ DEFAULT_DEVICE_CONFIG,
23
+ DEVICE_DIMENSIONS
24
+ } from "./chunk-MC6PNV2F.mjs";
25
+ export {
26
+ CanvasRenderer,
27
+ DEFAULT_CANVAS_CONFIG,
28
+ DEFAULT_DEVICE_CONFIG,
29
+ DEFAULT_SCREENSHOT_STUDIO_CONFIG,
30
+ DEVICE_DIMENSIONS,
31
+ DeviceConfigService,
32
+ PatternRenderer,
33
+ ReportService,
34
+ ScreenshotRenderer,
35
+ ScreenshotStudioService,
36
+ useCanvasExport,
37
+ useFreehandCanvas,
38
+ useReportExport,
39
+ useScreenshotStudio
40
+ };
@@ -0,0 +1,198 @@
1
+ import { a as CanvasConfig, c as CanvasDimensions, b as CanvasContextConfig, d as CanvasExportOptions, j as CanvasResult, B as BackgroundPattern, m as DeviceType, F as FrameStyle, o as ScreenshotDesign, S as ScreenshotContent, k as DeviceConfig } from '../CanvasConfig-HFgH7irb.mjs';
2
+
3
+ declare class CanvasRenderer {
4
+ private config;
5
+ private imageCache;
6
+ constructor(config?: CanvasConfig);
7
+ /**
8
+ * Create a new canvas element
9
+ */
10
+ createCanvas(dimensions: CanvasDimensions): HTMLCanvasElement;
11
+ /**
12
+ * Get canvas 2D context
13
+ */
14
+ getContext(canvas: HTMLCanvasElement): CanvasRenderingContext2D | null;
15
+ /**
16
+ * Apply context configuration
17
+ */
18
+ configureContext(ctx: CanvasRenderingContext2D, config: CanvasContextConfig): void;
19
+ /**
20
+ * Clear canvas
21
+ */
22
+ clearCanvas(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions): void;
23
+ /**
24
+ * Fill rectangle
25
+ */
26
+ fillRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, color?: string): void;
27
+ /**
28
+ * Stroke rectangle
29
+ */
30
+ strokeRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, color?: string, lineWidth?: number): void;
31
+ /**
32
+ * Draw text
33
+ */
34
+ drawText(ctx: CanvasRenderingContext2D, text: string, x: number, y: number, config?: CanvasContextConfig): void;
35
+ /**
36
+ * Draw image
37
+ */
38
+ drawImage(ctx: CanvasRenderingContext2D, imageSource: string | HTMLImageElement, x: number, y: number, width?: number, height?: number): Promise<void>;
39
+ /**
40
+ * Load image from URL with caching
41
+ */
42
+ private loadImage;
43
+ /**
44
+ * Clear image cache to free memory
45
+ */
46
+ clearImageCache(): void;
47
+ /**
48
+ * Get cache size for monitoring
49
+ */
50
+ getCacheSize(): number;
51
+ /**
52
+ * Create gradient
53
+ */
54
+ createLinearGradient(ctx: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, colorStops: Array<{
55
+ offset: number;
56
+ color: string;
57
+ }>): CanvasGradient;
58
+ /**
59
+ * Export canvas to blob
60
+ */
61
+ exportToBlob(canvas: HTMLCanvasElement, options?: CanvasExportOptions): Promise<CanvasResult>;
62
+ /**
63
+ * Export canvas to data URL
64
+ */
65
+ exportToDataURL(canvas: HTMLCanvasElement, format?: string, quality?: number): string;
66
+ /**
67
+ * Scale canvas
68
+ */
69
+ private scaleCanvas;
70
+ /**
71
+ * Clone canvas
72
+ */
73
+ cloneCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement;
74
+ }
75
+
76
+ /**
77
+ * Pattern Renderer
78
+ * Background pattern rendering operations
79
+ */
80
+
81
+ declare class PatternRenderer {
82
+ private patternCanvasCache;
83
+ private readonly MAX_CACHE_SIZE;
84
+ /**
85
+ * Render pattern on canvas
86
+ */
87
+ renderPattern(ctx: CanvasRenderingContext2D, pattern: BackgroundPattern, dimensions: CanvasDimensions, color?: string): void;
88
+ /**
89
+ * Clear pattern cache to free memory
90
+ */
91
+ clearCache(): void;
92
+ /**
93
+ * Render dot pattern - optimized with batch rendering
94
+ */
95
+ private renderDotPattern;
96
+ /**
97
+ * Render grid pattern - optimized with single path
98
+ */
99
+ private renderGridPattern;
100
+ /**
101
+ * Render line pattern - optimized with single path
102
+ */
103
+ private renderLinePattern;
104
+ /**
105
+ * Render wave pattern - optimized with pre-calculated values
106
+ */
107
+ private renderWavePattern;
108
+ /**
109
+ * Render checker pattern
110
+ */
111
+ private renderCheckerPattern;
112
+ }
113
+
114
+ /**
115
+ * Screenshot Renderer
116
+ * Device frame and screenshot rendering operations
117
+ */
118
+
119
+ declare class ScreenshotRenderer {
120
+ private canvasRenderer;
121
+ private patternRenderer;
122
+ private deviceConfigService;
123
+ private renderCache;
124
+ private readonly MAX_CACHE_SIZE;
125
+ constructor();
126
+ /**
127
+ * Clear render cache to free memory
128
+ */
129
+ clearCache(): void;
130
+ /**
131
+ * Render device frame
132
+ */
133
+ renderDeviceFrame(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions, deviceType: DeviceType, frameStyle: FrameStyle, frameColor: string): void;
134
+ /**
135
+ * Render realistic device frame
136
+ */
137
+ private renderRealisticFrame;
138
+ /**
139
+ * Render minimal device frame
140
+ */
141
+ private renderMinimalFrame;
142
+ /**
143
+ * Render device notch
144
+ */
145
+ private renderNotch;
146
+ /**
147
+ * Render background - optimized
148
+ */
149
+ renderBackground(ctx: CanvasRenderingContext2D, design: ScreenshotDesign, dimensions: CanvasDimensions): void;
150
+ /**
151
+ * Render text content
152
+ */
153
+ renderTextContent(ctx: CanvasRenderingContext2D, content: ScreenshotContent, design: ScreenshotDesign, dimensions: CanvasDimensions): void;
154
+ /**
155
+ * Format text case
156
+ */
157
+ private formatText;
158
+ /**
159
+ * Render screenshot image
160
+ */
161
+ renderScreenshotImage(ctx: CanvasRenderingContext2D, imageUrl: string, design: ScreenshotDesign, dimensions: CanvasDimensions): Promise<void>;
162
+ /**
163
+ * Render complete screenshot
164
+ */
165
+ renderDesignedScreenshot(content: ScreenshotContent, design: ScreenshotDesign): Promise<HTMLCanvasElement>;
166
+ /**
167
+ * Render placeholder content
168
+ */
169
+ renderPlaceholderContent(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions, deviceType: DeviceType): void;
170
+ }
171
+
172
+ /**
173
+ * Device Configuration Service
174
+ * Manages device configurations and dimensions
175
+ */
176
+
177
+ /**
178
+ * Device configuration service
179
+ */
180
+ declare class DeviceConfigService {
181
+ private static instance;
182
+ private devices;
183
+ private phonesCache;
184
+ private tabletsCache;
185
+ private allDevicesCache;
186
+ private constructor();
187
+ static getInstance(): DeviceConfigService;
188
+ private initializeDevices;
189
+ getDeviceConfig(deviceType: DeviceType): DeviceConfig | undefined;
190
+ getAllDevices(): DeviceConfig[];
191
+ getPhones(): DeviceConfig[];
192
+ getTablets(): DeviceConfig[];
193
+ isPhone(deviceType: DeviceType): boolean;
194
+ isTablet(deviceType: DeviceType): boolean;
195
+ hasNotch(deviceType: DeviceType): boolean;
196
+ }
197
+
198
+ export { CanvasRenderer, DeviceConfigService, PatternRenderer, ScreenshotRenderer };
@@ -0,0 +1,198 @@
1
+ import { a as CanvasConfig, c as CanvasDimensions, b as CanvasContextConfig, d as CanvasExportOptions, j as CanvasResult, B as BackgroundPattern, m as DeviceType, F as FrameStyle, o as ScreenshotDesign, S as ScreenshotContent, k as DeviceConfig } from '../CanvasConfig-HFgH7irb.js';
2
+
3
+ declare class CanvasRenderer {
4
+ private config;
5
+ private imageCache;
6
+ constructor(config?: CanvasConfig);
7
+ /**
8
+ * Create a new canvas element
9
+ */
10
+ createCanvas(dimensions: CanvasDimensions): HTMLCanvasElement;
11
+ /**
12
+ * Get canvas 2D context
13
+ */
14
+ getContext(canvas: HTMLCanvasElement): CanvasRenderingContext2D | null;
15
+ /**
16
+ * Apply context configuration
17
+ */
18
+ configureContext(ctx: CanvasRenderingContext2D, config: CanvasContextConfig): void;
19
+ /**
20
+ * Clear canvas
21
+ */
22
+ clearCanvas(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions): void;
23
+ /**
24
+ * Fill rectangle
25
+ */
26
+ fillRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, color?: string): void;
27
+ /**
28
+ * Stroke rectangle
29
+ */
30
+ strokeRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, color?: string, lineWidth?: number): void;
31
+ /**
32
+ * Draw text
33
+ */
34
+ drawText(ctx: CanvasRenderingContext2D, text: string, x: number, y: number, config?: CanvasContextConfig): void;
35
+ /**
36
+ * Draw image
37
+ */
38
+ drawImage(ctx: CanvasRenderingContext2D, imageSource: string | HTMLImageElement, x: number, y: number, width?: number, height?: number): Promise<void>;
39
+ /**
40
+ * Load image from URL with caching
41
+ */
42
+ private loadImage;
43
+ /**
44
+ * Clear image cache to free memory
45
+ */
46
+ clearImageCache(): void;
47
+ /**
48
+ * Get cache size for monitoring
49
+ */
50
+ getCacheSize(): number;
51
+ /**
52
+ * Create gradient
53
+ */
54
+ createLinearGradient(ctx: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, colorStops: Array<{
55
+ offset: number;
56
+ color: string;
57
+ }>): CanvasGradient;
58
+ /**
59
+ * Export canvas to blob
60
+ */
61
+ exportToBlob(canvas: HTMLCanvasElement, options?: CanvasExportOptions): Promise<CanvasResult>;
62
+ /**
63
+ * Export canvas to data URL
64
+ */
65
+ exportToDataURL(canvas: HTMLCanvasElement, format?: string, quality?: number): string;
66
+ /**
67
+ * Scale canvas
68
+ */
69
+ private scaleCanvas;
70
+ /**
71
+ * Clone canvas
72
+ */
73
+ cloneCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement;
74
+ }
75
+
76
+ /**
77
+ * Pattern Renderer
78
+ * Background pattern rendering operations
79
+ */
80
+
81
+ declare class PatternRenderer {
82
+ private patternCanvasCache;
83
+ private readonly MAX_CACHE_SIZE;
84
+ /**
85
+ * Render pattern on canvas
86
+ */
87
+ renderPattern(ctx: CanvasRenderingContext2D, pattern: BackgroundPattern, dimensions: CanvasDimensions, color?: string): void;
88
+ /**
89
+ * Clear pattern cache to free memory
90
+ */
91
+ clearCache(): void;
92
+ /**
93
+ * Render dot pattern - optimized with batch rendering
94
+ */
95
+ private renderDotPattern;
96
+ /**
97
+ * Render grid pattern - optimized with single path
98
+ */
99
+ private renderGridPattern;
100
+ /**
101
+ * Render line pattern - optimized with single path
102
+ */
103
+ private renderLinePattern;
104
+ /**
105
+ * Render wave pattern - optimized with pre-calculated values
106
+ */
107
+ private renderWavePattern;
108
+ /**
109
+ * Render checker pattern
110
+ */
111
+ private renderCheckerPattern;
112
+ }
113
+
114
+ /**
115
+ * Screenshot Renderer
116
+ * Device frame and screenshot rendering operations
117
+ */
118
+
119
+ declare class ScreenshotRenderer {
120
+ private canvasRenderer;
121
+ private patternRenderer;
122
+ private deviceConfigService;
123
+ private renderCache;
124
+ private readonly MAX_CACHE_SIZE;
125
+ constructor();
126
+ /**
127
+ * Clear render cache to free memory
128
+ */
129
+ clearCache(): void;
130
+ /**
131
+ * Render device frame
132
+ */
133
+ renderDeviceFrame(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions, deviceType: DeviceType, frameStyle: FrameStyle, frameColor: string): void;
134
+ /**
135
+ * Render realistic device frame
136
+ */
137
+ private renderRealisticFrame;
138
+ /**
139
+ * Render minimal device frame
140
+ */
141
+ private renderMinimalFrame;
142
+ /**
143
+ * Render device notch
144
+ */
145
+ private renderNotch;
146
+ /**
147
+ * Render background - optimized
148
+ */
149
+ renderBackground(ctx: CanvasRenderingContext2D, design: ScreenshotDesign, dimensions: CanvasDimensions): void;
150
+ /**
151
+ * Render text content
152
+ */
153
+ renderTextContent(ctx: CanvasRenderingContext2D, content: ScreenshotContent, design: ScreenshotDesign, dimensions: CanvasDimensions): void;
154
+ /**
155
+ * Format text case
156
+ */
157
+ private formatText;
158
+ /**
159
+ * Render screenshot image
160
+ */
161
+ renderScreenshotImage(ctx: CanvasRenderingContext2D, imageUrl: string, design: ScreenshotDesign, dimensions: CanvasDimensions): Promise<void>;
162
+ /**
163
+ * Render complete screenshot
164
+ */
165
+ renderDesignedScreenshot(content: ScreenshotContent, design: ScreenshotDesign): Promise<HTMLCanvasElement>;
166
+ /**
167
+ * Render placeholder content
168
+ */
169
+ renderPlaceholderContent(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions, deviceType: DeviceType): void;
170
+ }
171
+
172
+ /**
173
+ * Device Configuration Service
174
+ * Manages device configurations and dimensions
175
+ */
176
+
177
+ /**
178
+ * Device configuration service
179
+ */
180
+ declare class DeviceConfigService {
181
+ private static instance;
182
+ private devices;
183
+ private phonesCache;
184
+ private tabletsCache;
185
+ private allDevicesCache;
186
+ private constructor();
187
+ static getInstance(): DeviceConfigService;
188
+ private initializeDevices;
189
+ getDeviceConfig(deviceType: DeviceType): DeviceConfig | undefined;
190
+ getAllDevices(): DeviceConfig[];
191
+ getPhones(): DeviceConfig[];
192
+ getTablets(): DeviceConfig[];
193
+ isPhone(deviceType: DeviceType): boolean;
194
+ isTablet(deviceType: DeviceType): boolean;
195
+ hasNotch(deviceType: DeviceType): boolean;
196
+ }
197
+
198
+ export { CanvasRenderer, DeviceConfigService, PatternRenderer, ScreenshotRenderer };