@umituz/web-canvas 1.0.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 (55) hide show
  1. package/dist/CanvasConfig-pzoE0RHD.d.mts +310 -0
  2. package/dist/CanvasConfig-pzoE0RHD.d.ts +310 -0
  3. package/dist/application/index.d.mts +78 -0
  4. package/dist/application/index.d.ts +78 -0
  5. package/dist/application/index.js +1083 -0
  6. package/dist/application/index.mjs +11 -0
  7. package/dist/chunk-BN7JTXL7.mjs +346 -0
  8. package/dist/chunk-MC6PNV2F.mjs +34 -0
  9. package/dist/chunk-SF6WND7M.mjs +547 -0
  10. package/dist/chunk-TZGTTYTZ.mjs +0 -0
  11. package/dist/chunk-WMKPCJFI.mjs +661 -0
  12. package/dist/chunk-Z6IB4BQV.mjs +31 -0
  13. package/dist/domain/config/index.d.mts +87 -0
  14. package/dist/domain/config/index.d.ts +87 -0
  15. package/dist/domain/config/index.js +92 -0
  16. package/dist/domain/config/index.mjs +15 -0
  17. package/dist/domain/index.d.mts +79 -0
  18. package/dist/domain/index.d.ts +79 -0
  19. package/dist/domain/index.js +137 -0
  20. package/dist/domain/index.mjs +55 -0
  21. package/dist/index.d.mts +6 -0
  22. package/dist/index.d.ts +6 -0
  23. package/dist/index.js +1633 -0
  24. package/dist/index.mjs +38 -0
  25. package/dist/infrastructure/index.d.mts +174 -0
  26. package/dist/infrastructure/index.d.ts +174 -0
  27. package/dist/infrastructure/index.js +714 -0
  28. package/dist/infrastructure/index.mjs +13 -0
  29. package/dist/presentation/index.d.mts +108 -0
  30. package/dist/presentation/index.d.ts +108 -0
  31. package/dist/presentation/index.js +1617 -0
  32. package/dist/presentation/index.mjs +14 -0
  33. package/package.json +86 -0
  34. package/src/application/index.ts +7 -0
  35. package/src/application/services/ReportService.ts +200 -0
  36. package/src/application/services/ScreenshotStudioService.ts +243 -0
  37. package/src/domain/config/CanvasConfig.ts +36 -0
  38. package/src/domain/config/DeviceConfig.ts +47 -0
  39. package/src/domain/config/ScreenshotStudioConfig.ts +82 -0
  40. package/src/domain/config/index.ts +8 -0
  41. package/src/domain/index.ts +7 -0
  42. package/src/domain/types/canvas.types.ts +85 -0
  43. package/src/domain/types/index.ts +8 -0
  44. package/src/domain/types/report.types.ts +83 -0
  45. package/src/domain/types/screenshot.types.ts +238 -0
  46. package/src/index.ts +102 -0
  47. package/src/infrastructure/index.ts +9 -0
  48. package/src/infrastructure/renderers/CanvasRenderer.ts +287 -0
  49. package/src/infrastructure/renderers/PatternRenderer.ts +160 -0
  50. package/src/infrastructure/renderers/ScreenshotRenderer.ts +331 -0
  51. package/src/infrastructure/services/DeviceConfigService.ts +144 -0
  52. package/src/presentation/hooks/useCanvasExport.ts +162 -0
  53. package/src/presentation/hooks/useReportExport.ts +161 -0
  54. package/src/presentation/hooks/useScreenshotStudio.ts +480 -0
  55. package/src/presentation/index.ts +8 -0
package/dist/index.mjs ADDED
@@ -0,0 +1,38 @@
1
+ import {
2
+ useCanvasExport,
3
+ useReportExport,
4
+ useScreenshotStudio
5
+ } from "./chunk-SF6WND7M.mjs";
6
+ import {
7
+ ReportService,
8
+ ScreenshotStudioService
9
+ } from "./chunk-BN7JTXL7.mjs";
10
+ import {
11
+ CanvasRenderer,
12
+ DeviceConfigService,
13
+ PatternRenderer,
14
+ ScreenshotRenderer
15
+ } from "./chunk-WMKPCJFI.mjs";
16
+ import {
17
+ DEFAULT_SCREENSHOT_STUDIO_CONFIG
18
+ } from "./chunk-Z6IB4BQV.mjs";
19
+ import {
20
+ DEFAULT_CANVAS_CONFIG,
21
+ DEFAULT_DEVICE_CONFIG,
22
+ DEVICE_DIMENSIONS
23
+ } from "./chunk-MC6PNV2F.mjs";
24
+ export {
25
+ CanvasRenderer,
26
+ DEFAULT_CANVAS_CONFIG,
27
+ DEFAULT_DEVICE_CONFIG,
28
+ DEFAULT_SCREENSHOT_STUDIO_CONFIG,
29
+ DEVICE_DIMENSIONS,
30
+ DeviceConfigService,
31
+ PatternRenderer,
32
+ ReportService,
33
+ ScreenshotRenderer,
34
+ ScreenshotStudioService,
35
+ useCanvasExport,
36
+ useReportExport,
37
+ useScreenshotStudio
38
+ };
@@ -0,0 +1,174 @@
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-pzoE0RHD.mjs';
2
+
3
+ declare class CanvasRenderer {
4
+ private config;
5
+ constructor(config?: CanvasConfig);
6
+ /**
7
+ * Create a new canvas element
8
+ */
9
+ createCanvas(dimensions: CanvasDimensions): HTMLCanvasElement;
10
+ /**
11
+ * Get canvas 2D context
12
+ */
13
+ getContext(canvas: HTMLCanvasElement): CanvasRenderingContext2D | null;
14
+ /**
15
+ * Apply context configuration
16
+ */
17
+ configureContext(ctx: CanvasRenderingContext2D, config: CanvasContextConfig): void;
18
+ /**
19
+ * Clear canvas
20
+ */
21
+ clearCanvas(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions): void;
22
+ /**
23
+ * Fill rectangle
24
+ */
25
+ fillRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, color?: string): void;
26
+ /**
27
+ * Stroke rectangle
28
+ */
29
+ strokeRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, color?: string, lineWidth?: number): void;
30
+ /**
31
+ * Draw text
32
+ */
33
+ drawText(ctx: CanvasRenderingContext2D, text: string, x: number, y: number, config?: CanvasContextConfig): void;
34
+ /**
35
+ * Draw image
36
+ */
37
+ drawImage(ctx: CanvasRenderingContext2D, imageSource: string | HTMLImageElement, x: number, y: number, width?: number, height?: number): Promise<void>;
38
+ /**
39
+ * Load image from URL
40
+ */
41
+ private loadImage;
42
+ /**
43
+ * Create gradient
44
+ */
45
+ createLinearGradient(ctx: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, colorStops: Array<{
46
+ offset: number;
47
+ color: string;
48
+ }>): CanvasGradient;
49
+ /**
50
+ * Export canvas to blob
51
+ */
52
+ exportToBlob(canvas: HTMLCanvasElement, options?: CanvasExportOptions): Promise<CanvasResult>;
53
+ /**
54
+ * Export canvas to data URL
55
+ */
56
+ exportToDataURL(canvas: HTMLCanvasElement, format?: string, quality?: number): string;
57
+ /**
58
+ * Scale canvas
59
+ */
60
+ private scaleCanvas;
61
+ /**
62
+ * Clone canvas
63
+ */
64
+ cloneCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement;
65
+ }
66
+
67
+ /**
68
+ * Pattern Renderer
69
+ * Background pattern rendering operations
70
+ */
71
+
72
+ declare class PatternRenderer {
73
+ /**
74
+ * Render pattern on canvas
75
+ */
76
+ renderPattern(ctx: CanvasRenderingContext2D, pattern: BackgroundPattern, dimensions: CanvasDimensions, color?: string): void;
77
+ /**
78
+ * Render dot pattern
79
+ */
80
+ private renderDotPattern;
81
+ /**
82
+ * Render grid pattern
83
+ */
84
+ private renderGridPattern;
85
+ /**
86
+ * Render line pattern
87
+ */
88
+ private renderLinePattern;
89
+ /**
90
+ * Render wave pattern
91
+ */
92
+ private renderWavePattern;
93
+ /**
94
+ * Render checker pattern
95
+ */
96
+ private renderCheckerPattern;
97
+ }
98
+
99
+ /**
100
+ * Screenshot Renderer
101
+ * Device frame and screenshot rendering operations
102
+ */
103
+
104
+ declare class ScreenshotRenderer {
105
+ private canvasRenderer;
106
+ private patternRenderer;
107
+ private deviceConfigService;
108
+ constructor();
109
+ /**
110
+ * Render device frame
111
+ */
112
+ renderDeviceFrame(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions, deviceType: DeviceType, frameStyle: FrameStyle, frameColor: string): void;
113
+ /**
114
+ * Render realistic device frame
115
+ */
116
+ private renderRealisticFrame;
117
+ /**
118
+ * Render minimal device frame
119
+ */
120
+ private renderMinimalFrame;
121
+ /**
122
+ * Render device notch
123
+ */
124
+ private renderNotch;
125
+ /**
126
+ * Render background
127
+ */
128
+ renderBackground(ctx: CanvasRenderingContext2D, design: ScreenshotDesign, dimensions: CanvasDimensions): void;
129
+ /**
130
+ * Render text content
131
+ */
132
+ renderTextContent(ctx: CanvasRenderingContext2D, content: ScreenshotContent, design: ScreenshotDesign, dimensions: CanvasDimensions): void;
133
+ /**
134
+ * Format text case
135
+ */
136
+ private formatText;
137
+ /**
138
+ * Render screenshot image
139
+ */
140
+ renderScreenshotImage(ctx: CanvasRenderingContext2D, imageUrl: string, design: ScreenshotDesign, dimensions: CanvasDimensions): Promise<void>;
141
+ /**
142
+ * Render complete screenshot
143
+ */
144
+ renderDesignedScreenshot(content: ScreenshotContent, design: ScreenshotDesign): Promise<HTMLCanvasElement>;
145
+ /**
146
+ * Render placeholder content
147
+ */
148
+ renderPlaceholderContent(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions, deviceType: DeviceType): void;
149
+ }
150
+
151
+ /**
152
+ * Device Configuration Service
153
+ * Manages device configurations and dimensions
154
+ */
155
+
156
+ /**
157
+ * Device configuration service
158
+ */
159
+ declare class DeviceConfigService {
160
+ private static instance;
161
+ private devices;
162
+ private constructor();
163
+ static getInstance(): DeviceConfigService;
164
+ private initializeDevices;
165
+ getDeviceConfig(deviceType: DeviceType): DeviceConfig | undefined;
166
+ getAllDevices(): DeviceConfig[];
167
+ getPhones(): DeviceConfig[];
168
+ getTablets(): DeviceConfig[];
169
+ isPhone(deviceType: DeviceType): boolean;
170
+ isTablet(deviceType: DeviceType): boolean;
171
+ hasNotch(deviceType: DeviceType): boolean;
172
+ }
173
+
174
+ export { CanvasRenderer, DeviceConfigService, PatternRenderer, ScreenshotRenderer };
@@ -0,0 +1,174 @@
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-pzoE0RHD.js';
2
+
3
+ declare class CanvasRenderer {
4
+ private config;
5
+ constructor(config?: CanvasConfig);
6
+ /**
7
+ * Create a new canvas element
8
+ */
9
+ createCanvas(dimensions: CanvasDimensions): HTMLCanvasElement;
10
+ /**
11
+ * Get canvas 2D context
12
+ */
13
+ getContext(canvas: HTMLCanvasElement): CanvasRenderingContext2D | null;
14
+ /**
15
+ * Apply context configuration
16
+ */
17
+ configureContext(ctx: CanvasRenderingContext2D, config: CanvasContextConfig): void;
18
+ /**
19
+ * Clear canvas
20
+ */
21
+ clearCanvas(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions): void;
22
+ /**
23
+ * Fill rectangle
24
+ */
25
+ fillRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, color?: string): void;
26
+ /**
27
+ * Stroke rectangle
28
+ */
29
+ strokeRect(ctx: CanvasRenderingContext2D, x: number, y: number, width: number, height: number, color?: string, lineWidth?: number): void;
30
+ /**
31
+ * Draw text
32
+ */
33
+ drawText(ctx: CanvasRenderingContext2D, text: string, x: number, y: number, config?: CanvasContextConfig): void;
34
+ /**
35
+ * Draw image
36
+ */
37
+ drawImage(ctx: CanvasRenderingContext2D, imageSource: string | HTMLImageElement, x: number, y: number, width?: number, height?: number): Promise<void>;
38
+ /**
39
+ * Load image from URL
40
+ */
41
+ private loadImage;
42
+ /**
43
+ * Create gradient
44
+ */
45
+ createLinearGradient(ctx: CanvasRenderingContext2D, x1: number, y1: number, x2: number, y2: number, colorStops: Array<{
46
+ offset: number;
47
+ color: string;
48
+ }>): CanvasGradient;
49
+ /**
50
+ * Export canvas to blob
51
+ */
52
+ exportToBlob(canvas: HTMLCanvasElement, options?: CanvasExportOptions): Promise<CanvasResult>;
53
+ /**
54
+ * Export canvas to data URL
55
+ */
56
+ exportToDataURL(canvas: HTMLCanvasElement, format?: string, quality?: number): string;
57
+ /**
58
+ * Scale canvas
59
+ */
60
+ private scaleCanvas;
61
+ /**
62
+ * Clone canvas
63
+ */
64
+ cloneCanvas(canvas: HTMLCanvasElement): HTMLCanvasElement;
65
+ }
66
+
67
+ /**
68
+ * Pattern Renderer
69
+ * Background pattern rendering operations
70
+ */
71
+
72
+ declare class PatternRenderer {
73
+ /**
74
+ * Render pattern on canvas
75
+ */
76
+ renderPattern(ctx: CanvasRenderingContext2D, pattern: BackgroundPattern, dimensions: CanvasDimensions, color?: string): void;
77
+ /**
78
+ * Render dot pattern
79
+ */
80
+ private renderDotPattern;
81
+ /**
82
+ * Render grid pattern
83
+ */
84
+ private renderGridPattern;
85
+ /**
86
+ * Render line pattern
87
+ */
88
+ private renderLinePattern;
89
+ /**
90
+ * Render wave pattern
91
+ */
92
+ private renderWavePattern;
93
+ /**
94
+ * Render checker pattern
95
+ */
96
+ private renderCheckerPattern;
97
+ }
98
+
99
+ /**
100
+ * Screenshot Renderer
101
+ * Device frame and screenshot rendering operations
102
+ */
103
+
104
+ declare class ScreenshotRenderer {
105
+ private canvasRenderer;
106
+ private patternRenderer;
107
+ private deviceConfigService;
108
+ constructor();
109
+ /**
110
+ * Render device frame
111
+ */
112
+ renderDeviceFrame(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions, deviceType: DeviceType, frameStyle: FrameStyle, frameColor: string): void;
113
+ /**
114
+ * Render realistic device frame
115
+ */
116
+ private renderRealisticFrame;
117
+ /**
118
+ * Render minimal device frame
119
+ */
120
+ private renderMinimalFrame;
121
+ /**
122
+ * Render device notch
123
+ */
124
+ private renderNotch;
125
+ /**
126
+ * Render background
127
+ */
128
+ renderBackground(ctx: CanvasRenderingContext2D, design: ScreenshotDesign, dimensions: CanvasDimensions): void;
129
+ /**
130
+ * Render text content
131
+ */
132
+ renderTextContent(ctx: CanvasRenderingContext2D, content: ScreenshotContent, design: ScreenshotDesign, dimensions: CanvasDimensions): void;
133
+ /**
134
+ * Format text case
135
+ */
136
+ private formatText;
137
+ /**
138
+ * Render screenshot image
139
+ */
140
+ renderScreenshotImage(ctx: CanvasRenderingContext2D, imageUrl: string, design: ScreenshotDesign, dimensions: CanvasDimensions): Promise<void>;
141
+ /**
142
+ * Render complete screenshot
143
+ */
144
+ renderDesignedScreenshot(content: ScreenshotContent, design: ScreenshotDesign): Promise<HTMLCanvasElement>;
145
+ /**
146
+ * Render placeholder content
147
+ */
148
+ renderPlaceholderContent(ctx: CanvasRenderingContext2D, dimensions: CanvasDimensions, deviceType: DeviceType): void;
149
+ }
150
+
151
+ /**
152
+ * Device Configuration Service
153
+ * Manages device configurations and dimensions
154
+ */
155
+
156
+ /**
157
+ * Device configuration service
158
+ */
159
+ declare class DeviceConfigService {
160
+ private static instance;
161
+ private devices;
162
+ private constructor();
163
+ static getInstance(): DeviceConfigService;
164
+ private initializeDevices;
165
+ getDeviceConfig(deviceType: DeviceType): DeviceConfig | undefined;
166
+ getAllDevices(): DeviceConfig[];
167
+ getPhones(): DeviceConfig[];
168
+ getTablets(): DeviceConfig[];
169
+ isPhone(deviceType: DeviceType): boolean;
170
+ isTablet(deviceType: DeviceType): boolean;
171
+ hasNotch(deviceType: DeviceType): boolean;
172
+ }
173
+
174
+ export { CanvasRenderer, DeviceConfigService, PatternRenderer, ScreenshotRenderer };