apexify.js 4.9.26 → 4.9.27

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 (108) hide show
  1. package/README.md +358 -47
  2. package/dist/cjs/Canvas/ApexPainter.d.ts +122 -78
  3. package/dist/cjs/Canvas/ApexPainter.d.ts.map +1 -1
  4. package/dist/cjs/Canvas/ApexPainter.js +461 -352
  5. package/dist/cjs/Canvas/ApexPainter.js.map +1 -1
  6. package/dist/cjs/Canvas/utils/Background/bg.d.ts +23 -11
  7. package/dist/cjs/Canvas/utils/Background/bg.d.ts.map +1 -1
  8. package/dist/cjs/Canvas/utils/Background/bg.js +174 -107
  9. package/dist/cjs/Canvas/utils/Background/bg.js.map +1 -1
  10. package/dist/cjs/Canvas/utils/Custom/customLines.js +2 -2
  11. package/dist/cjs/Canvas/utils/Custom/customLines.js.map +1 -1
  12. package/dist/cjs/Canvas/utils/Image/imageFilters.d.ts +11 -0
  13. package/dist/cjs/Canvas/utils/Image/imageFilters.d.ts.map +1 -0
  14. package/dist/cjs/Canvas/utils/Image/imageFilters.js +307 -0
  15. package/dist/cjs/Canvas/utils/Image/imageFilters.js.map +1 -0
  16. package/dist/cjs/Canvas/utils/Image/imageProperties.d.ts +47 -112
  17. package/dist/cjs/Canvas/utils/Image/imageProperties.d.ts.map +1 -1
  18. package/dist/cjs/Canvas/utils/Image/imageProperties.js +229 -560
  19. package/dist/cjs/Canvas/utils/Image/imageProperties.js.map +1 -1
  20. package/dist/cjs/Canvas/utils/Image/professionalImageFilters.d.ts +11 -0
  21. package/dist/cjs/Canvas/utils/Image/professionalImageFilters.d.ts.map +1 -0
  22. package/dist/cjs/Canvas/utils/Image/professionalImageFilters.js +351 -0
  23. package/dist/cjs/Canvas/utils/Image/professionalImageFilters.js.map +1 -0
  24. package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.d.ts +11 -0
  25. package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.d.ts.map +1 -0
  26. package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.js +215 -0
  27. package/dist/cjs/Canvas/utils/Image/simpleProfessionalFilters.js.map +1 -0
  28. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts +71 -0
  29. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -0
  30. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js +392 -0
  31. package/dist/cjs/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -0
  32. package/dist/cjs/Canvas/utils/Shapes/shapes.d.ts +29 -0
  33. package/dist/cjs/Canvas/utils/Shapes/shapes.d.ts.map +1 -0
  34. package/dist/cjs/Canvas/utils/Shapes/shapes.js +334 -0
  35. package/dist/cjs/Canvas/utils/Shapes/shapes.js.map +1 -0
  36. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.d.ts +127 -0
  37. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -0
  38. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js +365 -0
  39. package/dist/cjs/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -0
  40. package/dist/cjs/Canvas/utils/types.d.ts +227 -131
  41. package/dist/cjs/Canvas/utils/types.d.ts.map +1 -1
  42. package/dist/cjs/Canvas/utils/types.js +0 -1
  43. package/dist/cjs/Canvas/utils/types.js.map +1 -1
  44. package/dist/cjs/Canvas/utils/utils.d.ts +7 -4
  45. package/dist/cjs/Canvas/utils/utils.d.ts.map +1 -1
  46. package/dist/cjs/Canvas/utils/utils.js +17 -7
  47. package/dist/cjs/Canvas/utils/utils.js.map +1 -1
  48. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  49. package/dist/esm/Canvas/ApexPainter.d.ts +122 -78
  50. package/dist/esm/Canvas/ApexPainter.d.ts.map +1 -1
  51. package/dist/esm/Canvas/ApexPainter.js +461 -352
  52. package/dist/esm/Canvas/ApexPainter.js.map +1 -1
  53. package/dist/esm/Canvas/utils/Background/bg.d.ts +23 -11
  54. package/dist/esm/Canvas/utils/Background/bg.d.ts.map +1 -1
  55. package/dist/esm/Canvas/utils/Background/bg.js +174 -107
  56. package/dist/esm/Canvas/utils/Background/bg.js.map +1 -1
  57. package/dist/esm/Canvas/utils/Custom/customLines.js +2 -2
  58. package/dist/esm/Canvas/utils/Custom/customLines.js.map +1 -1
  59. package/dist/esm/Canvas/utils/Image/imageFilters.d.ts +11 -0
  60. package/dist/esm/Canvas/utils/Image/imageFilters.d.ts.map +1 -0
  61. package/dist/esm/Canvas/utils/Image/imageFilters.js +307 -0
  62. package/dist/esm/Canvas/utils/Image/imageFilters.js.map +1 -0
  63. package/dist/esm/Canvas/utils/Image/imageProperties.d.ts +47 -112
  64. package/dist/esm/Canvas/utils/Image/imageProperties.d.ts.map +1 -1
  65. package/dist/esm/Canvas/utils/Image/imageProperties.js +229 -560
  66. package/dist/esm/Canvas/utils/Image/imageProperties.js.map +1 -1
  67. package/dist/esm/Canvas/utils/Image/professionalImageFilters.d.ts +11 -0
  68. package/dist/esm/Canvas/utils/Image/professionalImageFilters.d.ts.map +1 -0
  69. package/dist/esm/Canvas/utils/Image/professionalImageFilters.js +351 -0
  70. package/dist/esm/Canvas/utils/Image/professionalImageFilters.js.map +1 -0
  71. package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.d.ts +11 -0
  72. package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.d.ts.map +1 -0
  73. package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.js +215 -0
  74. package/dist/esm/Canvas/utils/Image/simpleProfessionalFilters.js.map +1 -0
  75. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts +71 -0
  76. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.d.ts.map +1 -0
  77. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js +392 -0
  78. package/dist/esm/Canvas/utils/Patterns/enhancedPatternRenderer.js.map +1 -0
  79. package/dist/esm/Canvas/utils/Shapes/shapes.d.ts +29 -0
  80. package/dist/esm/Canvas/utils/Shapes/shapes.d.ts.map +1 -0
  81. package/dist/esm/Canvas/utils/Shapes/shapes.js +334 -0
  82. package/dist/esm/Canvas/utils/Shapes/shapes.js.map +1 -0
  83. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.d.ts +127 -0
  84. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.d.ts.map +1 -0
  85. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js +365 -0
  86. package/dist/esm/Canvas/utils/Texts/enhancedTextRenderer.js.map +1 -0
  87. package/dist/esm/Canvas/utils/types.d.ts +227 -131
  88. package/dist/esm/Canvas/utils/types.d.ts.map +1 -1
  89. package/dist/esm/Canvas/utils/types.js +0 -1
  90. package/dist/esm/Canvas/utils/types.js.map +1 -1
  91. package/dist/esm/Canvas/utils/utils.d.ts +7 -4
  92. package/dist/esm/Canvas/utils/utils.d.ts.map +1 -1
  93. package/dist/esm/Canvas/utils/utils.js +17 -7
  94. package/dist/esm/Canvas/utils/utils.js.map +1 -1
  95. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  96. package/lib/Canvas/ApexPainter.ts +1325 -1218
  97. package/lib/Canvas/utils/Background/bg.ts +247 -173
  98. package/lib/Canvas/utils/Custom/customLines.ts +3 -3
  99. package/lib/Canvas/utils/Image/imageFilters.ts +356 -0
  100. package/lib/Canvas/utils/Image/imageProperties.ts +322 -775
  101. package/lib/Canvas/utils/Image/professionalImageFilters.ts +391 -0
  102. package/lib/Canvas/utils/Image/simpleProfessionalFilters.ts +229 -0
  103. package/lib/Canvas/utils/Patterns/enhancedPatternRenderer.ts +444 -0
  104. package/lib/Canvas/utils/Shapes/shapes.ts +528 -0
  105. package/lib/Canvas/utils/Texts/enhancedTextRenderer.ts +478 -0
  106. package/lib/Canvas/utils/types.ts +301 -117
  107. package/lib/Canvas/utils/utils.ts +85 -72
  108. package/package.json +106 -188
@@ -9,20 +9,61 @@ export interface OutputFormat {
9
9
  type?: 'buffer' | 'url' | 'blob' | 'base64' | 'dataURL' | 'arraybuffer';
10
10
  }
11
11
 
12
+ export type AlignMode =
13
+ | 'center' | 'top' | 'bottom' | 'left' | 'right'
14
+ | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
12
15
 
13
- type gradient = {
14
- type: 'linear' | 'radial';
15
- rotate?: number;
16
- startX?: number;
17
- startY?: number;
18
- endX?: number;
19
- endY?: number;
20
- startRadius?: number;
21
- endRadius?: number;
22
- colors: { stop: number; color: string }[];
23
- };
16
+ export type FitMode = 'fill' | 'contain' | 'cover';
17
+
18
+ export interface StrokeOptions {
19
+ color?: string;
20
+ gradient?: gradient;
21
+ width?: number; // px
22
+ position?: number; // px (+out/-in)
23
+ blur?: number; // px
24
+ opacity?: number; // 0..1
25
+ borderRadius?: number | 'circular';
26
+ borderPosition?: string;
27
+ }
28
+
29
+ export interface ShadowOptions {
30
+ color?: string; // e.g. 'rgba(0,0,0,1)'
31
+ gradient?: gradient; // <— gradient-capable shadow
32
+ offsetX?: number; // px
33
+ offsetY?: number; // px
34
+ blur?: number; // px
35
+ opacity?: number; // 0..1
36
+ borderRadius?: number | "circular";
37
+ borderPosition?: borderPosition;
38
+ }
39
+
40
+ export interface BoxBackground {
41
+ color?: string;
42
+ gradient?: gradient;
43
+ }
44
+ export type GradientStop = { stop: number; color: string };
45
+
46
+ export type gradient =
47
+ | {
48
+ type: 'linear';
49
+ // line from (startX,startY) to (endX,endY)
50
+ startX?: number; startY?: number;
51
+ endX?: number; endY?: number;
52
+ rotate?: number; // degrees, rotation around pivot (default: canvas center)
53
+ pivotX?: number; pivotY?: number; // optional pivot for rotation
54
+ colors: GradientStop[];
55
+ }
56
+ | {
57
+ type: 'radial';
58
+ // two circles (default to center-based radial if not supplied)
59
+ startX?: number; startY?: number; startRadius?: number; // inner circle
60
+ endX?: number; endY?: number; endRadius?: number; // outer circle
61
+ // rotation is NOP for perfectly concentric radial, but supported if centers aren't equal
62
+ rotate?: number; pivotX?: number; pivotY?: number;
63
+ colors: GradientStop[];
64
+ };
24
65
 
25
- type borderPosition = 'all' | 'top' | 'left' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | string;
66
+ export type borderPosition = 'all' | 'top' | 'left' | 'right' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right' | string;
26
67
 
27
68
  /**
28
69
  * Configuration options for the canvas.
@@ -38,16 +79,42 @@ export interface CanvasConfig {
38
79
  height?: number;
39
80
  x?: number;
40
81
  y?: number;
41
- customBg?: string;
82
+
83
+ customBg?: {
84
+ source: string
85
+ inherit?: boolean;
86
+ fit?: 'fill' | 'contain' | 'cover';
87
+ align?: 'center' | 'top' | 'bottom' | 'left' | 'right'
88
+ | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
89
+ };
90
+
42
91
  colorBg?: string;
43
92
  gradientBg?: gradient;
93
+ patternBg?: PatternOptions;
94
+ noiseBg?: { intensity?: number };
95
+ bgLayers?: Array<
96
+ { type: "color"; value: string } |
97
+ { type: "gradient"; value: gradient } |
98
+ { type: "image"; source: string; opacity?: number } |
99
+ { type: "pattern"; source: string; repeat?: string; opacity?: number } |
100
+ { type: "noise"; intensity?: number }
101
+ >;
102
+ blendMode?: GlobalCompositeOperation;
103
+
44
104
  opacity?: number;
45
105
  blur?: number;
106
+
107
+ rotation?: number;
108
+ borderRadius?: number | "circular";
109
+ borderPosition?: borderPosition;
110
+
46
111
  zoom?: {
47
- scale?: number;
48
- x?: number;
49
- y?: number;
50
- };
112
+ scale?: number; // optional, defaults to 1
113
+ centerX?: number;
114
+ centerY?: number;
115
+ };
116
+
117
+
51
118
  stroke?: {
52
119
  color?: string;
53
120
  blur?: number;
@@ -66,9 +133,6 @@ export interface CanvasConfig {
66
133
  borderRadius?: number | "circular";
67
134
  gradient?: gradient;
68
135
  };
69
- rotation?: number;
70
- borderRadius?: number | "circular";
71
- borderPosition?: borderPosition;
72
136
  };
73
137
 
74
138
  /**
@@ -96,95 +160,185 @@ export interface CanvasConfig {
96
160
  * @param {number} shadow.opacity - The opacity of the shadow.
97
161
  * @param {number | string} shadow.borderRadius - The border radius of the shadow.
98
162
  */
163
+ export type ShapeType = 'rectangle' | 'square' | 'circle' | 'triangle' | 'trapezium' | 'star' | 'heart' | 'polygon';
164
+
165
+ export interface ShapeProperties {
166
+ fill?: boolean;
167
+ color?: string;
168
+ gradient?: gradient;
169
+ points?: { x: number; y: number }[]; // for polygon
170
+ radius?: number; // for circle
171
+ sides?: number; // for polygon
172
+ innerRadius?: number; // for star
173
+ outerRadius?: number; // for star
174
+ }
175
+
99
176
  export interface ImageProperties {
100
- source: string;
101
- width?: number;
102
- height?: number;
103
- x?: number;
104
- y?: number;
105
- isFilled?: boolean;
106
- filling?: { percentage?: number, rotation?: number }
107
- color?: string;
177
+ // required
178
+ source: string | Buffer | ShapeType;
179
+ x: number;
180
+ y: number;
181
+
182
+ // size (if omitted and inherit=true -> use intrinsic)
183
+ width?: number;
184
+ height?: number;
185
+ inherit?: boolean;
186
+
187
+ // fitting
188
+ fit?: FitMode; // default 'fill'
189
+ align?: AlignMode; // default 'center'
190
+
191
+ // visuals
192
+ rotation?: number; // deg around box center
193
+ opacity?: number; // bitmap alpha
194
+ blur?: number; // bitmap blur px
195
+ borderRadius?: number | 'circular';
196
+ borderPosition?: string;
197
+
198
+ // image filters
199
+ filters?: ImageFilter[];
200
+
201
+ // shape properties (when source is a shape)
202
+ shape?: ShapeProperties;
203
+
204
+ // independent passes
205
+ shadow?: ShadowOptions;
206
+ stroke?: StrokeOptions;
207
+ boxBackground?: BoxBackground; // under bitmap, inside clip
208
+ }
209
+
210
+ export interface ImageFilter {
211
+ type: 'gaussianBlur' | 'motionBlur' | 'radialBlur' | 'sharpen' | 'noise' | 'grain' |
212
+ 'edgeDetection' | 'emboss' | 'invert' | 'grayscale' | 'sepia' | 'pixelate' |
213
+ 'brightness' | 'contrast' | 'saturation' | 'hueShift' | 'posterize';
214
+ intensity?: number;
215
+ radius?: number;
216
+ angle?: number; // for motion blur
217
+ centerX?: number; // for radial blur
218
+ centerY?: number; // for radial blur
219
+ value?: number; // for brightness, contrast, saturation, hue shift
220
+ levels?: number; // for posterize
221
+ size?: number; // for pixelate
222
+ }
223
+
224
+
225
+
226
+ /**
227
+ * Enhanced text properties interface with comprehensive styling options
228
+ */
229
+ export interface TextProperties {
230
+ // === CORE TEXT PROPERTIES ===
231
+ /** Text content to render */
232
+ text: string;
233
+ /** X position on canvas */
234
+ x: number;
235
+ /** Y position on canvas */
236
+ y: number;
237
+
238
+ // === FONT MANAGEMENT ===
239
+ /** Path to custom font file (.ttf, .otf, .woff, etc.) */
240
+ fontPath?: string;
241
+ /** Custom font name (used with fontPath) */
242
+ fontName?: string;
243
+ /** Font size in pixels (default: 16) */
244
+ fontSize?: number;
245
+ /** Font family name (e.g., 'Arial', 'Helvetica', 'Times New Roman') */
246
+ fontFamily?: string;
247
+
248
+ // === TEXT DECORATION ===
249
+ /** Make text bold */
250
+ bold?: boolean;
251
+ /** Make text italic */
252
+ italic?: boolean;
253
+ /** Add underline decoration */
254
+ underline?: boolean;
255
+ /** Add overline decoration */
256
+ overline?: boolean;
257
+ /** Add strikethrough decoration */
258
+ strikethrough?: boolean;
259
+ /** Highlight text with background color */
260
+ highlight?: {
261
+ /** Highlight color (hex, rgb, rgba, hsl, etc.) */
262
+ color?: string;
263
+ /** Highlight opacity (0-1, default: 0.3) */
108
264
  opacity?: number;
109
- blur?: number;
110
- zoom?: {
111
- scale?: number;
112
- x?: number;
113
- y?: number;
114
- };
115
- gradient?: gradient;
116
- rotation?: number;
117
- borderRadius?: number | "circular";
118
- borderPosition?: borderPosition;
119
- perspective?: {
120
- topLeft: { x: number, y: number };
121
- topRight: { x: number, y: number };
122
- bottomRight: { x: number, y: number };
123
- bottomLeft: { x: number, y: number };
124
- }
125
- stroke?: {
126
- color?: string;
127
- width?: number;
128
- opacity?: number;
129
- blur?: number;
130
- position?: number;
131
- borderRadius?: number | "circular";
132
- borderPosition?: borderPosition;
133
- gradient?: gradient;
134
- };
135
- shadow?: {
136
- color?: string;
137
- offsetX?: number;
138
- offsetY?: number;
139
- blur?: number;
140
- opacity?: number;
141
- borderRadius?: number | "circular",
142
- gradient?: gradient;
143
-
144
- flip?: { horizontal?: boolean; vertical?: boolean };
145
- clip?: { type: 'rect' | 'circle' | 'polygon' | 'custom'; points?: { x: number, y: number }[] };
146
- tint?: { color: string; opacity?: number };
147
- noise?: { intensity: number };
148
- vignette?: { strength: number; radius?: number };
149
- duotone?: { shadows: string; highlights: string };
150
- pixelate?: { size: number };
151
- bloom?: { intensity: number; threshold?: number; radius?: number };
152
- warp?: { type: 'arc' | 'bulge' | 'pinch' | 'wave' | 'twist'; intensity: number };
153
- halftone?: { dotSize: number; contrast?: number };
154
- };
155
- };
265
+ };
156
266
 
157
- export interface TextObject {
158
- text?: string;
159
- x?: number;
160
- y?: number;
161
- fontPath?: string;
162
- fontName?: string;
163
- fontSize?: number;
164
- isBold?: boolean;
267
+ // === SPACING & POSITIONING ===
268
+ /** Line height multiplier (default: 1.4) */
269
+ lineHeight?: number;
270
+ /** Space between letters in pixels */
271
+ letterSpacing?: number;
272
+ /** Space between words in pixels */
273
+ wordSpacing?: number;
274
+ /** Maximum width for text wrapping */
275
+ maxWidth?: number;
276
+ /** Maximum height for text (truncates with ellipsis) */
277
+ maxHeight?: number;
278
+
279
+ // === TEXT ALIGNMENT ===
280
+ /** Horizontal text alignment */
281
+ textAlign?: 'left' | 'center' | 'right' | 'start' | 'end';
282
+ /** Vertical text baseline */
283
+ textBaseline?: 'alphabetic' | 'bottom' | 'hanging' | 'ideographic' | 'middle' | 'top';
284
+
285
+ // === TEXT COLORING ===
286
+ /** Text color (hex, rgb, rgba, hsl, etc.) */
287
+ color?: string;
288
+ /** Gradient fill for text */
289
+ gradient?: gradient;
290
+ /** Text opacity (0-1, default: 1) */
291
+ opacity?: number;
292
+
293
+ // === TEXT EFFECTS ===
294
+ /** Text glow effect */
295
+ glow?: {
296
+ /** Glow color */
165
297
  color?: string;
166
- maxWidth?: number;
167
- lineHeight?: number;
168
- maxHeight?: number;
169
- textAlign?: "end" | "center" | "left" | "right" | "start" ;
170
- textBaseline?: "alphabetic" | "bottom" | "hanging" | "ideographic" | "middle" | "top";
171
- outlined?: boolean;
298
+ /** Glow intensity/blur radius */
299
+ intensity?: number;
300
+ /** Glow opacity (0-1) */
301
+ opacity?: number;
302
+ };
303
+ /** Text shadow effect */
304
+ shadow?: {
305
+ /** Shadow color */
306
+ color?: string;
307
+ /** Horizontal shadow offset */
308
+ offsetX?: number;
309
+ /** Vertical shadow offset */
310
+ offsetY?: number;
311
+ /** Shadow blur radius */
312
+ blur?: number;
313
+ /** Shadow opacity (0-1) */
314
+ opacity?: number;
315
+ };
316
+ /** Text stroke/outline */
317
+ stroke?: {
318
+ /** Stroke color */
319
+ color?: string;
320
+ /** Stroke width in pixels */
321
+ width?: number;
322
+ /** Gradient stroke */
172
323
  gradient?: gradient;
173
- shadow?: {
174
- color?: string;
175
- offsetX?: number;
176
- offsetY?: number;
177
- blur?: number;
178
- opacity?: number;
179
- };
180
- stroke?: {
181
- color?: string;
182
- blur?: number;
183
- width?: number;
184
- gradient?: gradient;
185
- };
186
- rotation?: number;
324
+ /** Stroke opacity (0-1) */
187
325
  opacity?: number;
326
+ };
327
+
328
+ // === TRANSFORMATIONS ===
329
+ /** Text rotation in degrees */
330
+ rotation?: number;
331
+ }
332
+
333
+ /**
334
+ * Legacy TextObject interface for backward compatibility
335
+ * @deprecated Use TextProperties instead
336
+ */
337
+ export interface TextObject extends TextProperties {
338
+ /** @deprecated Use bold instead */
339
+ isBold?: boolean;
340
+ /** @deprecated Use outlined instead of stroke */
341
+ outlined?: boolean;
188
342
  }
189
343
 
190
344
  /**
@@ -522,21 +676,51 @@ export interface GradientConfig{
522
676
  };
523
677
 
524
678
 
679
+ /**
680
+ * Enhanced pattern options supporting all pattern types
681
+ */
525
682
  export interface PatternOptions {
526
- type: 'dots' | 'stripes' | 'grid' | 'checkerboard' | 'noise' | 'waves' | 'diagonal-checkerboard' | 'custom';
527
- color?: string;
528
- secondaryColor?: string;
529
- x?: number;
530
- y?: number;
531
- width?: number;
532
- height?: number;
533
- size?: number;
534
- spacing?: number;
535
- angle?: number;
536
- customPatternImage?: string;
537
- backgroundColor?: string;
538
- gradient?: GradientConfig;
539
- }
683
+ // === PATTERN TYPE ===
684
+ /** Pattern type: built-in patterns or custom image */
685
+ type: 'grid' | 'dots' | 'diagonal' | 'stripes' | 'waves' | 'crosses' |
686
+ 'hexagons' | 'checkerboard' | 'diamonds' | 'triangles' | 'stars' | 'polka' | 'custom';
687
+
688
+ // === PATTERN COLORS ===
689
+ /** Primary pattern color (default: '#ffffff') */
690
+ color?: string;
691
+ /** Secondary pattern color for two-color patterns (default: 'transparent') */
692
+ secondaryColor?: string;
693
+ /** Pattern opacity (0-1, default: 0.3) */
694
+ opacity?: number;
695
+
696
+ // === PATTERN SIZING ===
697
+ /** Pattern element size in pixels (default: 20) */
698
+ size?: number;
699
+ /** Spacing between pattern elements in pixels (default: 10) */
700
+ spacing?: number;
701
+ /** Pattern rotation angle in degrees (default: 0) */
702
+ rotation?: number;
703
+
704
+ // === CUSTOM PATTERN ===
705
+ /** Custom pattern image path/URL (for type: 'custom') */
706
+ customPatternImage?: string;
707
+ /** Custom pattern repeat mode (default: 'repeat') */
708
+ repeat?: 'repeat' | 'repeat-x' | 'repeat-y' | 'no-repeat';
709
+ /** Custom pattern scale multiplier (default: 1) */
710
+ scale?: number;
711
+
712
+ // === PATTERN POSITIONING ===
713
+ /** Pattern offset X position (default: 0) */
714
+ offsetX?: number;
715
+ /** Pattern offset Y position (default: 0) */
716
+ offsetY?: number;
717
+
718
+ // === ADVANCED OPTIONS ===
719
+ /** Pattern blend mode (default: 'overlay') */
720
+ blendMode?: GlobalCompositeOperation;
721
+ /** Pattern gradient (overrides color) */
722
+ gradient?: GradientConfig;
723
+ }
540
724
 
541
725
 
542
726
  export interface ExtractFramesOptions {
@@ -1,72 +1,85 @@
1
- /**
2
- * Exported utilities for handling canvas configurations and drawing operations.
3
- * @param CanvasConfig The configuration options for the canvas.
4
- * @param radiusBorder The function for applying a radius border to the canvas.
5
- * @param circularBorder The function for applying a circular border to the canvas.
6
- * @param drawBackgroundColor The function for drawing a solid background color on the canvas.
7
- * @param drawBackgroundGradient The function for drawing a gradient background on the canvas.
8
- * @param customBackground The function for drawing a custom background image on the canvas.
9
- */
10
-
11
-
12
-
13
- import { OutputFormat, CanvasConfig, ImageProperties, TextObject, GIFOptions, GIFResults, CustomOptions, cropOptions, GradientConfig, Frame, PatternOptions, ExtractFramesOptions, ResizeOptions, CropOptions, MaskOptions, BlendOptions } from "./types";
14
- import { drawBackgroundColor, drawBackgroundGradient, customBackground, backgroundRadius } from "./Background/bg";
15
- import { applyRotation, imageRadius, applyStroke, applyZoom, applyShadow, objectRadius, drawShape, applyPerspective } from './Image/imageProperties'
16
- import { drawText, WrappedText } from "./Texts/textProperties";
17
- import { loadImages, resizingImg, converter, applyColorFilters, imgEffects, cropOuter, cropInner, detectColors, removeColor, bgRemoval } from './General/general functions';
18
- import { customLines } from "./Custom/customLines";
19
- import { verticalBarChart, pieChart, lineChart } from './Charts/charts'
20
- import { url, arrayBuffer, base64, dataURL, blob } from "./General/conversion";
21
-
22
- export {
23
- url,
24
- OutputFormat,
25
- arrayBuffer,
26
- base64,
27
- dataURL,
28
- blob,
29
- CanvasConfig,
30
- ImageProperties,
31
- TextObject,
32
- GIFOptions,
33
- GIFResults,
34
- CustomOptions,
35
- cropOptions,
36
- customLines,
37
- drawBackgroundColor,
38
- drawBackgroundGradient,
39
- customBackground,
40
- applyRotation,
41
- imageRadius,
42
- applyStroke,
43
- applyZoom,
44
- applyShadow,
45
- objectRadius,
46
- backgroundRadius,
47
- drawShape,
48
- drawText,
49
- WrappedText,
50
- loadImages,
51
- resizingImg,
52
- converter,
53
- applyColorFilters,
54
- imgEffects,
55
- verticalBarChart,
56
- pieChart,
57
- lineChart,
58
- cropInner,
59
- cropOuter,
60
- detectColors,
61
- removeColor,
62
- bgRemoval,
63
- GradientConfig,
64
- Frame,
65
- PatternOptions,
66
- ExtractFramesOptions,
67
- ResizeOptions,
68
- CropOptions,
69
- applyPerspective,
70
- MaskOptions,
71
- BlendOptions
72
- };
1
+ /**
2
+ * Exported utilities for handling canvas configurations and drawing operations.
3
+ * @param CanvasConfig The configuration options for the canvas.
4
+ * @param radiusBorder The function for applying a radius border to the canvas.
5
+ * @param circularBorder The function for applying a circular border to the canvas.
6
+ * @param drawBackgroundColor The function for drawing a solid background color on the canvas.
7
+ * @param drawBackgroundGradient The function for drawing a gradient background on the canvas.
8
+ * @param customBackground The function for drawing a custom background image on the canvas.
9
+ */
10
+
11
+
12
+
13
+ import { OutputFormat, CanvasConfig, ImageProperties, TextObject, TextProperties, GIFOptions, GIFResults, CustomOptions, cropOptions, GradientConfig, Frame, PatternOptions, ExtractFramesOptions, ResizeOptions, CropOptions, MaskOptions, BlendOptions, ShapeType, ShapeProperties, ImageFilter } from "./types";
14
+ import { drawBackgroundColor, drawBackgroundGradient, customBackground, applyCanvasZoom, drawPattern, applyNoise } from "./Background/bg";
15
+ import { buildPath, applyRotation, createGradientFill, fitInto, loadImageCached, applyStroke, drawBoxBackground, applyShadow } from './Image/imageProperties'
16
+ import { applyImageFilters } from './Image/imageFilters'
17
+ import { applySimpleProfessionalFilters } from './Image/simpleProfessionalFilters'
18
+ import { drawText, WrappedText } from "./Texts/textProperties";
19
+ import { loadImages, resizingImg, converter, applyColorFilters, imgEffects, cropOuter, cropInner, detectColors, removeColor, bgRemoval } from './General/general functions';
20
+ import { customLines } from "./Custom/customLines";
21
+ import { verticalBarChart, pieChart, lineChart } from './Charts/charts'
22
+ import { url, arrayBuffer, base64, dataURL, blob } from "./General/conversion";
23
+ import { drawShape, isShapeSource, createShapePath } from "./Shapes/shapes";
24
+
25
+ export {
26
+ url,
27
+ OutputFormat,
28
+ arrayBuffer,
29
+ base64,
30
+ dataURL,
31
+ blob,
32
+ CanvasConfig,
33
+ ImageProperties,
34
+ TextObject,
35
+ TextProperties,
36
+ GIFOptions,
37
+ GIFResults,
38
+ CustomOptions,
39
+ cropOptions,
40
+ customLines,
41
+ drawBackgroundColor,
42
+ drawBackgroundGradient,
43
+ customBackground,
44
+ drawText,
45
+ WrappedText,
46
+ loadImages,
47
+ resizingImg,
48
+ converter,
49
+ applyColorFilters,
50
+ imgEffects,
51
+ verticalBarChart,
52
+ pieChart,
53
+ lineChart,
54
+ cropInner,
55
+ cropOuter,
56
+ detectColors,
57
+ removeColor,
58
+ bgRemoval,
59
+ GradientConfig,
60
+ Frame,
61
+ PatternOptions,
62
+ ExtractFramesOptions,
63
+ ResizeOptions,
64
+ CropOptions,
65
+ buildPath,
66
+ applyRotation,
67
+ createGradientFill,
68
+ fitInto, loadImageCached,
69
+ applyStroke,
70
+ applyShadow,
71
+ drawBoxBackground,
72
+ MaskOptions,
73
+ BlendOptions,
74
+ applyCanvasZoom,
75
+ drawPattern,
76
+ applyNoise,
77
+ ShapeType,
78
+ ShapeProperties,
79
+ ImageFilter,
80
+ drawShape,
81
+ isShapeSource,
82
+ createShapePath,
83
+ applyImageFilters,
84
+ applySimpleProfessionalFilters
85
+ };