apexify.js 4.7.96 → 4.8.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 (195) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/ai/ApexAI.d.ts.map +1 -1
  3. package/dist/cjs/ai/ApexAI.js +1 -5
  4. package/dist/cjs/ai/ApexAI.js.map +1 -1
  5. package/dist/cjs/ai/ApexModules.d.ts.map +1 -1
  6. package/dist/cjs/ai/ApexModules.js +35 -21
  7. package/dist/cjs/ai/ApexModules.js.map +1 -1
  8. package/dist/cjs/ai/functions/tokenizer.d.ts +10 -0
  9. package/dist/cjs/ai/functions/tokenizer.d.ts.map +1 -0
  10. package/dist/cjs/ai/functions/tokenizer.js +64 -0
  11. package/dist/cjs/ai/functions/tokenizer.js.map +1 -0
  12. package/dist/cjs/ai/modals/electronHub/chatmodels.d.ts.map +1 -0
  13. package/dist/cjs/ai/{modals-chat → modals}/electronHub/chatmodels.js +8 -11
  14. package/dist/cjs/ai/modals/electronHub/chatmodels.js.map +1 -0
  15. package/dist/cjs/ai/modals/electronHub/imageModels.d.ts.map +1 -0
  16. package/dist/cjs/ai/{modals-chat → modals}/electronHub/imageModels.js +9 -5
  17. package/dist/cjs/ai/modals/electronHub/imageModels.js.map +1 -0
  18. package/dist/cjs/ai/modals/electronHub/songModels.d.ts.map +1 -0
  19. package/dist/cjs/ai/modals/electronHub/songModels.js.map +1 -0
  20. package/dist/cjs/ai/modals/electronHub/speechModels.d.ts.map +1 -0
  21. package/dist/cjs/ai/{modals-chat → modals}/electronHub/speechModels.js +4 -1
  22. package/dist/cjs/ai/modals/electronHub/speechModels.js.map +1 -0
  23. package/dist/cjs/ai/modals/electronHub/videoModels.d.ts.map +1 -0
  24. package/dist/cjs/ai/modals/electronHub/videoModels.js.map +1 -0
  25. package/dist/cjs/ai/modals/groq/chatgroq.d.ts.map +1 -0
  26. package/dist/cjs/ai/modals/groq/chatgroq.js.map +1 -0
  27. package/dist/cjs/ai/modals/groq/imageAnalyzer.d.ts.map +1 -0
  28. package/dist/cjs/ai/modals/groq/imageAnalyzer.js.map +1 -0
  29. package/dist/cjs/ai/modals/groq/whisper.d.ts.map +1 -0
  30. package/dist/cjs/ai/modals/groq/whisper.js.map +1 -0
  31. package/dist/cjs/ai/modals/hercai/chatModels.d.ts.map +1 -0
  32. package/dist/cjs/ai/modals/hercai/chatModels.js.map +1 -0
  33. package/dist/cjs/ai/utils.d.ts +1 -1
  34. package/dist/cjs/ai/utils.d.ts.map +1 -1
  35. package/dist/cjs/ai/utils.js +1 -1
  36. package/dist/cjs/ai/utils.js.map +1 -1
  37. package/dist/cjs/canvas/ApexPainter.d.ts +1 -1
  38. package/dist/cjs/canvas/ApexPainter.d.ts.map +1 -1
  39. package/dist/cjs/canvas/ApexPainter.js +11 -8
  40. package/dist/cjs/canvas/ApexPainter.js.map +1 -1
  41. package/dist/cjs/canvas/utils/Image/imageProperties.d.ts.map +1 -1
  42. package/dist/cjs/canvas/utils/Image/imageProperties.js +47 -24
  43. package/dist/cjs/canvas/utils/Image/imageProperties.js.map +1 -1
  44. package/dist/cjs/canvas/utils/types.d.ts +1 -0
  45. package/dist/cjs/canvas/utils/types.d.ts.map +1 -1
  46. package/dist/cjs/canvas/utils/types.js.map +1 -1
  47. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
  48. package/dist/esm/ai/ApexAI.d.ts.map +1 -1
  49. package/dist/esm/ai/ApexAI.js +1 -5
  50. package/dist/esm/ai/ApexAI.js.map +1 -1
  51. package/dist/esm/ai/ApexModules.d.ts.map +1 -1
  52. package/dist/esm/ai/ApexModules.js +35 -21
  53. package/dist/esm/ai/ApexModules.js.map +1 -1
  54. package/dist/esm/ai/functions/tokenizer.d.ts +10 -0
  55. package/dist/esm/ai/functions/tokenizer.d.ts.map +1 -0
  56. package/dist/esm/ai/functions/tokenizer.js +64 -0
  57. package/dist/esm/ai/functions/tokenizer.js.map +1 -0
  58. package/dist/esm/ai/modals/electronHub/chatmodels.d.ts.map +1 -0
  59. package/dist/esm/ai/{modals-chat → modals}/electronHub/chatmodels.js +8 -11
  60. package/dist/esm/ai/modals/electronHub/chatmodels.js.map +1 -0
  61. package/dist/esm/ai/modals/electronHub/imageModels.d.ts.map +1 -0
  62. package/dist/esm/ai/{modals-chat → modals}/electronHub/imageModels.js +9 -5
  63. package/dist/esm/ai/modals/electronHub/imageModels.js.map +1 -0
  64. package/dist/esm/ai/modals/electronHub/songModels.d.ts.map +1 -0
  65. package/dist/esm/ai/modals/electronHub/songModels.js.map +1 -0
  66. package/dist/esm/ai/modals/electronHub/speechModels.d.ts.map +1 -0
  67. package/dist/esm/ai/{modals-chat → modals}/electronHub/speechModels.js +4 -1
  68. package/dist/esm/ai/modals/electronHub/speechModels.js.map +1 -0
  69. package/dist/esm/ai/modals/electronHub/videoModels.d.ts.map +1 -0
  70. package/dist/esm/ai/modals/electronHub/videoModels.js.map +1 -0
  71. package/dist/esm/ai/modals/groq/chatgroq.d.ts.map +1 -0
  72. package/dist/esm/ai/modals/groq/chatgroq.js.map +1 -0
  73. package/dist/esm/ai/modals/groq/imageAnalyzer.d.ts.map +1 -0
  74. package/dist/esm/ai/modals/groq/imageAnalyzer.js.map +1 -0
  75. package/dist/esm/ai/modals/groq/whisper.d.ts.map +1 -0
  76. package/dist/esm/ai/modals/groq/whisper.js.map +1 -0
  77. package/dist/esm/ai/modals/hercai/chatModels.d.ts.map +1 -0
  78. package/dist/esm/ai/modals/hercai/chatModels.js.map +1 -0
  79. package/dist/esm/ai/utils.d.ts +1 -1
  80. package/dist/esm/ai/utils.d.ts.map +1 -1
  81. package/dist/esm/ai/utils.js +1 -1
  82. package/dist/esm/ai/utils.js.map +1 -1
  83. package/dist/esm/canvas/ApexPainter.d.ts +1 -1
  84. package/dist/esm/canvas/ApexPainter.d.ts.map +1 -1
  85. package/dist/esm/canvas/ApexPainter.js +11 -8
  86. package/dist/esm/canvas/ApexPainter.js.map +1 -1
  87. package/dist/esm/canvas/utils/Image/imageProperties.d.ts.map +1 -1
  88. package/dist/esm/canvas/utils/Image/imageProperties.js +47 -24
  89. package/dist/esm/canvas/utils/Image/imageProperties.js.map +1 -1
  90. package/dist/esm/canvas/utils/types.d.ts +1 -0
  91. package/dist/esm/canvas/utils/types.d.ts.map +1 -1
  92. package/dist/esm/canvas/utils/types.js.map +1 -1
  93. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
  94. package/lib/ai/ApexAI.ts +1 -13
  95. package/lib/ai/ApexModules.ts +45 -33
  96. package/lib/ai/functions/tokenizer.ts +69 -0
  97. package/lib/ai/modals/electronHub/chatmodels.ts +57 -0
  98. package/lib/ai/{modals-chat → modals}/electronHub/imageModels.ts +17 -13
  99. package/lib/ai/{modals-chat → modals}/electronHub/speechModels.ts +5 -1
  100. package/lib/ai/utils.ts +1 -1
  101. package/lib/canvas/ApexPainter.ts +34 -21
  102. package/lib/canvas/utils/Image/imageProperties.ts +67 -24
  103. package/lib/canvas/utils/types.ts +2 -1
  104. package/package.json +2 -2
  105. package/dist/cjs/ai/buttons/drawMenu.d.ts +0 -3
  106. package/dist/cjs/ai/buttons/drawMenu.d.ts.map +0 -1
  107. package/dist/cjs/ai/buttons/drawMenu.js +0 -273
  108. package/dist/cjs/ai/buttons/drawMenu.js.map +0 -1
  109. package/dist/cjs/ai/buttons/tools.d.ts +0 -3
  110. package/dist/cjs/ai/buttons/tools.d.ts.map +0 -1
  111. package/dist/cjs/ai/buttons/tools.js +0 -445
  112. package/dist/cjs/ai/buttons/tools.js.map +0 -1
  113. package/dist/cjs/ai/modals-chat/electronHub/chatmodels.d.ts.map +0 -1
  114. package/dist/cjs/ai/modals-chat/electronHub/chatmodels.js.map +0 -1
  115. package/dist/cjs/ai/modals-chat/electronHub/imageModels.d.ts.map +0 -1
  116. package/dist/cjs/ai/modals-chat/electronHub/imageModels.js.map +0 -1
  117. package/dist/cjs/ai/modals-chat/electronHub/songModels.d.ts.map +0 -1
  118. package/dist/cjs/ai/modals-chat/electronHub/songModels.js.map +0 -1
  119. package/dist/cjs/ai/modals-chat/electronHub/speechModels.d.ts.map +0 -1
  120. package/dist/cjs/ai/modals-chat/electronHub/speechModels.js.map +0 -1
  121. package/dist/cjs/ai/modals-chat/electronHub/videoModels.d.ts.map +0 -1
  122. package/dist/cjs/ai/modals-chat/electronHub/videoModels.js.map +0 -1
  123. package/dist/cjs/ai/modals-chat/groq/chatgroq.d.ts.map +0 -1
  124. package/dist/cjs/ai/modals-chat/groq/chatgroq.js.map +0 -1
  125. package/dist/cjs/ai/modals-chat/groq/imageAnalyzer.d.ts.map +0 -1
  126. package/dist/cjs/ai/modals-chat/groq/imageAnalyzer.js.map +0 -1
  127. package/dist/cjs/ai/modals-chat/groq/whisper.d.ts.map +0 -1
  128. package/dist/cjs/ai/modals-chat/groq/whisper.js.map +0 -1
  129. package/dist/cjs/ai/modals-chat/hercai/chatModels.d.ts.map +0 -1
  130. package/dist/cjs/ai/modals-chat/hercai/chatModels.js.map +0 -1
  131. package/dist/esm/ai/buttons/drawMenu.d.ts +0 -3
  132. package/dist/esm/ai/buttons/drawMenu.d.ts.map +0 -1
  133. package/dist/esm/ai/buttons/drawMenu.js +0 -273
  134. package/dist/esm/ai/buttons/drawMenu.js.map +0 -1
  135. package/dist/esm/ai/buttons/tools.d.ts +0 -3
  136. package/dist/esm/ai/buttons/tools.d.ts.map +0 -1
  137. package/dist/esm/ai/buttons/tools.js +0 -445
  138. package/dist/esm/ai/buttons/tools.js.map +0 -1
  139. package/dist/esm/ai/modals-chat/electronHub/chatmodels.d.ts.map +0 -1
  140. package/dist/esm/ai/modals-chat/electronHub/chatmodels.js.map +0 -1
  141. package/dist/esm/ai/modals-chat/electronHub/imageModels.d.ts.map +0 -1
  142. package/dist/esm/ai/modals-chat/electronHub/imageModels.js.map +0 -1
  143. package/dist/esm/ai/modals-chat/electronHub/songModels.d.ts.map +0 -1
  144. package/dist/esm/ai/modals-chat/electronHub/songModels.js.map +0 -1
  145. package/dist/esm/ai/modals-chat/electronHub/speechModels.d.ts.map +0 -1
  146. package/dist/esm/ai/modals-chat/electronHub/speechModels.js.map +0 -1
  147. package/dist/esm/ai/modals-chat/electronHub/videoModels.d.ts.map +0 -1
  148. package/dist/esm/ai/modals-chat/electronHub/videoModels.js.map +0 -1
  149. package/dist/esm/ai/modals-chat/groq/chatgroq.d.ts.map +0 -1
  150. package/dist/esm/ai/modals-chat/groq/chatgroq.js.map +0 -1
  151. package/dist/esm/ai/modals-chat/groq/imageAnalyzer.d.ts.map +0 -1
  152. package/dist/esm/ai/modals-chat/groq/imageAnalyzer.js.map +0 -1
  153. package/dist/esm/ai/modals-chat/groq/whisper.d.ts.map +0 -1
  154. package/dist/esm/ai/modals-chat/groq/whisper.js.map +0 -1
  155. package/dist/esm/ai/modals-chat/hercai/chatModels.d.ts.map +0 -1
  156. package/dist/esm/ai/modals-chat/hercai/chatModels.js.map +0 -1
  157. package/lib/ai/buttons/drawMenu.ts +0 -361
  158. package/lib/ai/buttons/tools.ts +0 -551
  159. package/lib/ai/modals-chat/electronHub/chatmodels.ts +0 -64
  160. /package/dist/cjs/ai/{modals-chat → modals}/electronHub/chatmodels.d.ts +0 -0
  161. /package/dist/cjs/ai/{modals-chat → modals}/electronHub/imageModels.d.ts +0 -0
  162. /package/dist/cjs/ai/{modals-chat → modals}/electronHub/songModels.d.ts +0 -0
  163. /package/dist/cjs/ai/{modals-chat → modals}/electronHub/songModels.js +0 -0
  164. /package/dist/cjs/ai/{modals-chat → modals}/electronHub/speechModels.d.ts +0 -0
  165. /package/dist/cjs/ai/{modals-chat → modals}/electronHub/videoModels.d.ts +0 -0
  166. /package/dist/cjs/ai/{modals-chat → modals}/electronHub/videoModels.js +0 -0
  167. /package/dist/cjs/ai/{modals-chat → modals}/groq/chatgroq.d.ts +0 -0
  168. /package/dist/cjs/ai/{modals-chat → modals}/groq/chatgroq.js +0 -0
  169. /package/dist/cjs/ai/{modals-chat → modals}/groq/imageAnalyzer.d.ts +0 -0
  170. /package/dist/cjs/ai/{modals-chat → modals}/groq/imageAnalyzer.js +0 -0
  171. /package/dist/cjs/ai/{modals-chat → modals}/groq/whisper.d.ts +0 -0
  172. /package/dist/cjs/ai/{modals-chat → modals}/groq/whisper.js +0 -0
  173. /package/dist/cjs/ai/{modals-chat → modals}/hercai/chatModels.d.ts +0 -0
  174. /package/dist/cjs/ai/{modals-chat → modals}/hercai/chatModels.js +0 -0
  175. /package/dist/esm/ai/{modals-chat → modals}/electronHub/chatmodels.d.ts +0 -0
  176. /package/dist/esm/ai/{modals-chat → modals}/electronHub/imageModels.d.ts +0 -0
  177. /package/dist/esm/ai/{modals-chat → modals}/electronHub/songModels.d.ts +0 -0
  178. /package/dist/esm/ai/{modals-chat → modals}/electronHub/songModels.js +0 -0
  179. /package/dist/esm/ai/{modals-chat → modals}/electronHub/speechModels.d.ts +0 -0
  180. /package/dist/esm/ai/{modals-chat → modals}/electronHub/videoModels.d.ts +0 -0
  181. /package/dist/esm/ai/{modals-chat → modals}/electronHub/videoModels.js +0 -0
  182. /package/dist/esm/ai/{modals-chat → modals}/groq/chatgroq.d.ts +0 -0
  183. /package/dist/esm/ai/{modals-chat → modals}/groq/chatgroq.js +0 -0
  184. /package/dist/esm/ai/{modals-chat → modals}/groq/imageAnalyzer.d.ts +0 -0
  185. /package/dist/esm/ai/{modals-chat → modals}/groq/imageAnalyzer.js +0 -0
  186. /package/dist/esm/ai/{modals-chat → modals}/groq/whisper.d.ts +0 -0
  187. /package/dist/esm/ai/{modals-chat → modals}/groq/whisper.js +0 -0
  188. /package/dist/esm/ai/{modals-chat → modals}/hercai/chatModels.d.ts +0 -0
  189. /package/dist/esm/ai/{modals-chat → modals}/hercai/chatModels.js +0 -0
  190. /package/lib/ai/{modals-chat → modals}/electronHub/songModels.ts +0 -0
  191. /package/lib/ai/{modals-chat → modals}/electronHub/videoModels.ts +0 -0
  192. /package/lib/ai/{modals-chat → modals}/groq/chatgroq.ts +0 -0
  193. /package/lib/ai/{modals-chat → modals}/groq/imageAnalyzer.ts +0 -0
  194. /package/lib/ai/{modals-chat → modals}/groq/whisper.ts +0 -0
  195. /package/lib/ai/{modals-chat → modals}/hercai/chatModels.ts +0 -0
@@ -362,43 +362,52 @@ async createGIF(gifFrames: { background: string; duration: number }[], options:
362
362
 
363
363
  async blend(
364
364
  layers: {
365
- image: string | Buffer;
366
- blendMode: 'source-over' | 'source-in' | 'source-out' | 'source-atop' |
367
- 'destination-over' | 'destination-in' | 'destination-out' |
368
- 'destination-atop' | 'lighter' | 'copy' | 'xor' |
369
- 'multiply' | 'screen' | 'overlay' | 'darken' |
370
- 'lighten' | 'color-dodge' | 'color-burn' |
371
- 'hard-light' | 'soft-light' | 'difference' | 'exclusion' |
365
+ image: string | Buffer;
366
+ blendMode: 'source-over' | 'source-in' | 'source-out' | 'source-atop' |
367
+ 'destination-over' | 'destination-in' | 'destination-out' |
368
+ 'destination-atop' | 'lighter' | 'copy' | 'xor' |
369
+ 'multiply' | 'screen' | 'overlay' | 'darken' |
370
+ 'lighten' | 'color-dodge' | 'color-burn' |
371
+ 'hard-light' | 'soft-light' | 'difference' | 'exclusion' |
372
372
  'hue' | 'saturation' | 'color' | 'luminosity';
373
- position?: { x: number; y: number };
374
- opacity?: number;
373
+ position?: { x: number; y: number };
374
+ opacity?: number;
375
375
  }[],
376
- baseImageBuffer: Buffer
376
+ baseImageBuffer: Buffer,
377
+ defaultBlendMode: 'source-over' | 'source-in' | 'source-out' | 'source-atop' |
378
+ 'destination-over' | 'destination-in' | 'destination-out' |
379
+ 'destination-atop' | 'lighter' | 'copy' | 'xor' |
380
+ 'multiply' | 'screen' | 'overlay' | 'darken' |
381
+ 'lighten' | 'color-dodge' | 'color-burn' |
382
+ 'hard-light' | 'soft-light' | 'difference' | 'exclusion' |
383
+ 'hue' | 'saturation' | 'color' | 'luminosity' = 'source-over'
377
384
  ): Promise<Buffer> {
378
385
  try {
379
386
  const baseImage = await loadImage(baseImageBuffer);
380
387
  const canvas = createCanvas(baseImage.width, baseImage.height);
381
388
  const ctx = canvas.getContext('2d');
382
389
 
390
+ ctx.globalCompositeOperation = defaultBlendMode;
383
391
  ctx.drawImage(baseImage, 0, 0);
384
392
 
385
393
  for (const layer of layers) {
386
394
  const layerImage = await loadImage(layer.image);
387
- ctx.globalAlpha = layer.opacity !== undefined ? layer.opacity : 1.0;
395
+ ctx.globalAlpha = layer.opacity !== undefined ? layer.opacity : 1.0;
388
396
 
389
397
  ctx.globalCompositeOperation = layer.blendMode;
390
398
  ctx.drawImage(layerImage, layer.position?.x || 0, layer.position?.y || 0);
391
399
  }
392
400
 
393
401
  ctx.globalAlpha = 1.0;
394
- ctx.globalCompositeOperation = 'source-over';
402
+ ctx.globalCompositeOperation = defaultBlendMode; // Reset to user-defined default
395
403
 
396
404
  return canvas.toBuffer('image/png');
397
405
  } catch (error) {
398
406
  console.error('Error creating layered composition:', error);
399
407
  throw new Error('Failed to create layered composition');
400
408
  }
401
- }
409
+ }
410
+
402
411
 
403
412
  async createChart(data: any, type: { chartType: string, chartNumber: number}) {
404
413
 
@@ -489,13 +498,9 @@ async createGIF(gifFrames: { background: string; duration: number }[], options:
489
498
  const shapeNames = ['circle', 'square', 'triangle', 'pentagon', 'hexagon', 'heptagon', 'octagon', 'star', 'kite', 'arrow', 'star', 'oval', 'heart', 'diamond', 'trapezoid', 'cloud'];
490
499
  const isShape = shapeNames.includes(source.toLowerCase());
491
500
 
492
- if (opacity !== undefined) {
493
- ctx.globalAlpha = opacity;
494
- }
495
-
501
+
496
502
  if (isShape) {
497
- drawShape(ctx, { source, x, y, width, height, rotation, borderRadius, stroke, shadow, isFilled, color, gradient, borderPosition, filling });
498
- ctx.globalAlpha = 1.0;
503
+ drawShape(ctx, { source, x, y, width, height, opacity, rotation, borderRadius, stroke, shadow, isFilled, color, gradient, borderPosition, filling });
499
504
  return;
500
505
  }
501
506
 
@@ -526,6 +531,10 @@ async createGIF(gifFrames: { background: string; duration: number }[], options:
526
531
  ctx.scale(scale, scale);
527
532
  }
528
533
 
534
+ if (opacity !== undefined) {
535
+ ctx.globalAlpha = opacity;
536
+ }
537
+
529
538
  if (blur > 0) {
530
539
  ctx.filter = `blur(${blur}px)`;
531
540
  }
@@ -538,10 +547,14 @@ async createGIF(gifFrames: { background: string; duration: number }[], options:
538
547
  }
539
548
 
540
549
  imageRadius(ctx, loadedImage, x, y, width, height, borderRadius, borderPosition);
550
+ ctx.globalAlpha = 1.0;
551
+
552
+ if (stroke?.opacity) ctx.globalAlpha = stroke.opacity as number;
553
+
541
554
  applyStroke(ctx, stroke, x, y, width, height, undefined);
542
-
543
- ctx.restore();
544
555
  ctx.globalAlpha = 1.0;
556
+
557
+ ctx.restore();
545
558
  }
546
559
 
547
560
 
@@ -107,52 +107,89 @@ export function applyStroke(
107
107
  ctx.lineWidth = stroke.width && stroke.width > 0 ? stroke.width : 2;
108
108
 
109
109
  ctx.beginPath();
110
+ const borderPos = stroke.position || 0;
110
111
 
111
- if (["heart", "arrow", "circle", "star", "pentagon", "hexagon", "heptagon", "octagon", "diamond", "trapezoid", "kite"].includes(shapeName as string)) {
112
+ // Adjust the bounding box by borderPos
113
+ // - Positive borderPos moves stroke outward
114
+ // - Negative borderPos moves stroke inward
115
+ const offsetX = x - borderPos;
116
+ const offsetY = y - borderPos;
117
+ const offsetW = width + 2 * borderPos;
118
+ const offsetH = height + 2 * borderPos;
119
+
120
+ ctx.beginPath();
121
+
122
+ // For known shapes (circle, star, etc.), re-draw with adjusted bounding box
123
+ if (
124
+ [
125
+ "heart", "arrow", "circle", "star",
126
+ "pentagon", "hexagon", "heptagon", "octagon",
127
+ "diamond", "trapezoid", "kite",
128
+ ].includes(shapeName as string)
129
+ ) {
112
130
  switch (shapeName) {
113
131
  case "circle":
114
- ctx.arc(x + width / 2, y + height / 2, width / 2, 0, Math.PI * 2);
132
+ // Circle centered in the new bounding box
133
+ ctx.arc(
134
+ offsetX + offsetW / 2,
135
+ offsetY + offsetH / 2,
136
+ offsetW / 2, // radius
137
+ 0,
138
+ Math.PI * 2
139
+ );
115
140
  break;
141
+
116
142
  case "star":
117
- drawStar(ctx, x, y, width, height);
143
+ drawStar(ctx, offsetX, offsetY, offsetW, offsetH);
118
144
  break;
145
+
119
146
  case "arrow":
120
- drawArrow(ctx, x, y, width, height);
147
+ drawArrow(ctx, offsetX, offsetY, offsetW, offsetH);
121
148
  break;
122
- case "pentagon": case "hexagon": case "heptagon": case "octagon":
149
+
150
+ case "pentagon":
151
+ case "hexagon":
152
+ case "heptagon":
153
+ case "octagon": {
123
154
  const sides = parseInt(shapeName.replace(/\D/g, ""), 10);
124
- drawPolygon(ctx, x, y, width, height, sides);
155
+ drawPolygon(ctx, offsetX, offsetY, offsetW, offsetH, sides);
125
156
  break;
157
+ }
158
+
126
159
  case "diamond":
127
- ctx.moveTo(x + width / 2, y);
128
- ctx.lineTo(x + width, y + height / 2);
129
- ctx.lineTo(x + width / 2, y + height);
130
- ctx.lineTo(x, y + height / 2);
160
+ ctx.moveTo(offsetX + offsetW / 2, offsetY);
161
+ ctx.lineTo(offsetX + offsetW, offsetY + offsetH / 2);
162
+ ctx.lineTo(offsetX + offsetW / 2, offsetY + offsetH);
163
+ ctx.lineTo(offsetX, offsetY + offsetH / 2);
131
164
  ctx.closePath();
132
165
  break;
133
- case "trapezoid":
134
- const topWidth = width * 0.6;
135
- const offset = (width - topWidth) / 2;
136
- ctx.moveTo(x + offset, y);
137
- ctx.lineTo(x + offset + topWidth, y);
138
- ctx.lineTo(x + width, y + height);
139
- ctx.lineTo(x, y + height);
166
+
167
+ case "trapezoid": {
168
+ const topWidth = offsetW * 0.6;
169
+ const offsetVal = (offsetW - topWidth) / 2;
170
+ ctx.moveTo(offsetX + offsetVal, offsetY);
171
+ ctx.lineTo(offsetX + offsetVal + topWidth, offsetY);
172
+ ctx.lineTo(offsetX + offsetW, offsetY + offsetH);
173
+ ctx.lineTo(offsetX, offsetY + offsetH);
140
174
  ctx.closePath();
141
175
  break;
176
+ }
177
+
142
178
  case "heart":
143
- drawHeart(ctx, x , y, width, height);
179
+ drawHeart(ctx, offsetX, offsetY, offsetW, offsetH);
144
180
  break;
181
+
145
182
  case "kite":
146
- ctx.moveTo(x + width / 2, y);
147
- ctx.lineTo(x + width, y + height / 2);
148
- ctx.lineTo(x + width / 2, y + height);
149
- ctx.lineTo(x, y + height / 2);
183
+ ctx.moveTo(offsetX + offsetW / 2, offsetY);
184
+ ctx.lineTo(offsetX + offsetW, offsetY + offsetH / 2);
185
+ ctx.lineTo(offsetX + offsetW / 2, offsetY + offsetH);
186
+ ctx.lineTo(offsetX, offsetY + offsetH / 2);
150
187
  ctx.closePath();
151
188
  break;
152
189
  }
153
190
  } else {
154
191
  ctx.globalCompositeOperation = "source-atop";
155
- objectRadius(ctx, x, y, width, height, stroke.borderRadius || 2, stroke.borderPosition);
192
+ objectRadius(ctx, offsetX, offsetY, offsetW, offsetH, stroke.borderRadius || 2, stroke.borderPosition);
156
193
  }
157
194
 
158
195
  ctx.stroke();
@@ -169,6 +206,7 @@ export function drawShape(ctx: SKRSContext2D, shapeSettings: any): void {
169
206
  y,
170
207
  width,
171
208
  height,
209
+ opacity,
172
210
  rotation = 0,
173
211
  borderRadius = 0,
174
212
  borderPosition = 'all',
@@ -188,6 +226,8 @@ export function drawShape(ctx: SKRSContext2D, shapeSettings: any): void {
188
226
 
189
227
  ctx.beginPath();
190
228
 
229
+ ctx.globalAlpha = opacity as number;
230
+
191
231
  switch (shapeName) {
192
232
  case 'circle': {
193
233
  ctx.arc(x + width / 2, y + height / 2, width / 2, 0, Math.PI * 2);
@@ -318,10 +358,13 @@ export function drawShape(ctx: SKRSContext2D, shapeSettings: any): void {
318
358
  ctx.fill();
319
359
  }
320
360
  }
321
-
361
+
362
+ ctx.globalAlpha = 1.0;
322
363
 
323
364
  if (stroke) {
365
+ if (stroke?.opacity) ctx.globalAlpha = stroke.opacity as number;
324
366
  applyStroke(ctx, stroke, x, y, width, height, shapeName);
367
+ ctx.globalAlpha = 1.0;
325
368
  }
326
369
 
327
370
  ctx.restore();
@@ -124,7 +124,8 @@ export interface ImageProperties {
124
124
  }
125
125
  stroke?: {
126
126
  color?: string;
127
- width?: number;
127
+ width?: number;
128
+ opacity?: number;
128
129
  blur?: number;
129
130
  position?: number;
130
131
  borderRadius?: number | "circular";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apexify.js",
3
- "version": "4.7.96",
3
+ "version": "4.8.1",
4
4
  "description": "Unlimited AI models and Canvas library. Supports ts & js (supports front/back end).",
5
5
  "author": "zenith-79",
6
6
  "license": "MIT",
@@ -229,7 +229,7 @@
229
229
  "@discordjs/voice": "^0.18.0",
230
230
  "@google/generative-ai": "^0.22.0",
231
231
  "@napi-rs/canvas": "^0.1.53",
232
- "apexify.js": "^4.7.95",
232
+ "apexify.js": "^4.8.0",
233
233
  "axios": "^1.7.7",
234
234
  "discord.js": "^14.18.0",
235
235
  "fluent-ffmpeg": "^2.1.3",
@@ -1,3 +0,0 @@
1
- declare function imageTools(Apex: any, ModalBuilder: any, TextInputBuilder: any, TextInputStyle: any, ActionRowBuilder: any): Promise<void>;
2
- export { imageTools };
3
- //# sourceMappingURL=drawMenu.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawMenu.d.ts","sourceRoot":"","sources":["../../../../lib/ai/buttons/drawMenu.ts"],"names":[],"mappings":"AAAA,iBAAe,UAAU,CACrB,IAAI,EAAE,GAAG,EACT,YAAY,EAAE,GAAG,EACjB,gBAAgB,EAAE,GAAG,EACrB,cAAc,EAAE,GAAG,EACnB,gBAAgB,EAAE,GAAG,GACpB,OAAO,CAAC,IAAI,CAAC,CA+Vf;AAED,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -1,273 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.imageTools = imageTools;
4
- async function imageTools(Apex, ModalBuilder, TextInputBuilder, TextInputStyle, ActionRowBuilder) {
5
- Apex.on("interactionCreate", async (a) => {
6
- if (!a.isStringSelectMenu())
7
- return;
8
- const MenuId = a.customId;
9
- const selectedOptionId = a.values[0];
10
- try {
11
- if (MenuId === "image_processing_select") {
12
- if (selectedOptionId === "process_1") {
13
- const modal = new ModalBuilder()
14
- .setCustomId("resizing_image_zenithmodal")
15
- .setTitle("Resizing Image");
16
- const imagePos = new TextInputBuilder()
17
- .setCustomId("Image_Postion")
18
- .setLabel("Image Number")
19
- .setMaxLength(1)
20
- .setMinLength(1)
21
- .setPlaceholder("Modal you want to resize (e.g => 1st image/2nd image/3rd image/4th image)")
22
- .setRequired(true)
23
- .setStyle(TextInputStyle.Short);
24
- const imageWidth = new TextInputBuilder()
25
- .setCustomId("modal_resizingImage_width")
26
- .setLabel("Image Width")
27
- .setStyle(TextInputStyle.Short);
28
- const imageHeight = new TextInputBuilder()
29
- .setCustomId("modal_resizingImage_height")
30
- .setLabel("Image Height")
31
- .setStyle(TextInputStyle.Short);
32
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
33
- const secondActionRow = new ActionRowBuilder().addComponents(imageWidth);
34
- const thirddActionRow = new ActionRowBuilder().addComponents(imageHeight);
35
- modal.addComponents(firstActionRow, secondActionRow, thirddActionRow);
36
- await a.showModal(modal);
37
- }
38
- else if (selectedOptionId === "process_2") {
39
- const modal = new ModalBuilder()
40
- .setCustomId("Color_Filters")
41
- .setTitle("Coloring An Image");
42
- const imagePos = new TextInputBuilder()
43
- .setCustomId("Image_Postion")
44
- .setLabel("Image Number")
45
- .setMaxLength(1)
46
- .setMinLength(1)
47
- .setPlaceholder("Modal you want to apply filter on (e.g => 1st image/2nd image/3rd image/4th image)")
48
- .setRequired(true)
49
- .setStyle(TextInputStyle.Short);
50
- const color = new TextInputBuilder()
51
- .setCustomId("color_filter_image")
52
- .setLabel("Color Filter")
53
- .setMaxLength(7)
54
- .setPlaceholder("Color in hex code (e.g => #00ff00 for green)")
55
- .setMinLength(7)
56
- .setRequired(true)
57
- .setStyle(TextInputStyle.Short);
58
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
59
- const secondActionRow = new ActionRowBuilder().addComponents(color);
60
- modal.addComponents(firstActionRow, secondActionRow);
61
- await a.showModal(modal);
62
- }
63
- else if (selectedOptionId === "process_3") {
64
- const modal = new ModalBuilder()
65
- .setCustomId("Convert_Image_Extension")
66
- .setTitle("Convert An Image");
67
- const imagePos = new TextInputBuilder()
68
- .setCustomId("Image_Postion")
69
- .setLabel("Image Number")
70
- .setMaxLength(1)
71
- .setMinLength(1)
72
- .setPlaceholder("Modal you want to convert (e.g => 1st image/2nd image/3rd image/4th image)")
73
- .setRequired(true)
74
- .setStyle(TextInputStyle.Short);
75
- const imageType = new TextInputBuilder()
76
- .setCustomId("image_type")
77
- .setLabel("Image Extension")
78
- .setMaxLength(5)
79
- .setPlaceholder("Type extensions (e.g => (png), (jpg), (webp), (avif) )")
80
- .setRequired(true)
81
- .setStyle(TextInputStyle.Short);
82
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
83
- const secondActionRow = new ActionRowBuilder().addComponents(imageType);
84
- modal.addComponents(firstActionRow, secondActionRow);
85
- await a.showModal(modal);
86
- }
87
- else if (selectedOptionId === "process_4") {
88
- const modal = new ModalBuilder()
89
- .setCustomId("Image_Brightness")
90
- .setTitle("Brightening An Image");
91
- const imagePos = new TextInputBuilder()
92
- .setCustomId("Image_Postion")
93
- .setLabel("Image Number")
94
- .setMaxLength(1)
95
- .setMinLength(1)
96
- .setPlaceholder("Modal you want to brighten (e.g => 1st image/2nd image/3rd image/4th image)")
97
- .setRequired(true)
98
- .setStyle(TextInputStyle.Short);
99
- const brightnessDegree = new TextInputBuilder()
100
- .setCustomId("brightness_degree")
101
- .setLabel("Brightness Degree")
102
- .setMaxLength(5)
103
- .setPlaceholder("Brightness value (e.g => 0 -> 1 (3 decimal places are accepted))")
104
- .setRequired(true)
105
- .setStyle(TextInputStyle.Short);
106
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
107
- const secondActionRow = new ActionRowBuilder().addComponents(brightnessDegree);
108
- modal.addComponents(firstActionRow, secondActionRow);
109
- await a.showModal(modal);
110
- }
111
- else if (selectedOptionId === "process_5") {
112
- const modal = new ModalBuilder()
113
- .setCustomId("Sepia_Filter")
114
- .setTitle("Apply Sepia On Image");
115
- const imagePos = new TextInputBuilder()
116
- .setCustomId("Image_Postion")
117
- .setLabel("Image Number")
118
- .setMaxLength(1)
119
- .setMinLength(1)
120
- .setPlaceholder("Modal you want to apply Sepia on (e.g => 1st image/2nd image/3rd image/4th image)")
121
- .setRequired(true)
122
- .setStyle(TextInputStyle.Short);
123
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
124
- modal.addComponents(firstActionRow);
125
- await a.showModal(modal);
126
- }
127
- else if (selectedOptionId === "process_6") {
128
- const modal = new ModalBuilder()
129
- .setCustomId("Pixelate_Filter")
130
- .setTitle("Apply Pixelate On Image");
131
- const imagePos = new TextInputBuilder()
132
- .setCustomId("Image_Postion")
133
- .setLabel("Image Number")
134
- .setMaxLength(1)
135
- .setMinLength(1)
136
- .setPlaceholder("Modal you want to apply Pixelate on (e.g => 1st image/2nd image/3rd image/4th image)")
137
- .setRequired(true)
138
- .setStyle(TextInputStyle.Short);
139
- const xyInput = new TextInputBuilder()
140
- .setCustomId("Pixelate_XY")
141
- .setLabel("X, Y Positions")
142
- .setPlaceholder("Enter X, Y positions (e.g => (100, 150) )")
143
- .setRequired(true)
144
- .setStyle(TextInputStyle.Short);
145
- const whInput = new TextInputBuilder()
146
- .setCustomId("Pixelate_WH")
147
- .setLabel("Width, Height")
148
- .setPlaceholder("Enter width, height (e.g => (50, 50) )")
149
- .setRequired(true)
150
- .setStyle(TextInputStyle.Short);
151
- const sizeInput = new TextInputBuilder()
152
- .setCustomId("Pixelate_Size")
153
- .setLabel("Pixelate Size")
154
- .setPlaceholder("Enter pixelate size")
155
- .setRequired(true)
156
- .setStyle(TextInputStyle.Short);
157
- const st = new ActionRowBuilder().addComponents(imagePos);
158
- const nd = new ActionRowBuilder().addComponents(xyInput);
159
- const rd = new ActionRowBuilder().addComponents(whInput);
160
- const th = new ActionRowBuilder().addComponents(sizeInput);
161
- modal.addComponents(st, nd, rd, th);
162
- await a.showModal(modal);
163
- }
164
- else if (selectedOptionId === "process_7") {
165
- const modal = new ModalBuilder()
166
- .setCustomId("Image_Blur")
167
- .setTitle("Blurring An Image");
168
- const imagePos = new TextInputBuilder()
169
- .setCustomId("Image_Postion")
170
- .setLabel("Image Number")
171
- .setMaxLength(1)
172
- .setMinLength(1)
173
- .setPlaceholder("Modal you want to blur (e.g => 1st image/2nd image/3rd image/4th image)")
174
- .setRequired(true)
175
- .setStyle(TextInputStyle.Short);
176
- const blurDegree = new TextInputBuilder()
177
- .setCustomId("blur_radius")
178
- .setLabel("Blurring Radius")
179
- .setMaxLength(5)
180
- .setPlaceholder("Blur value (e.g => (value = 1-100 as max) )")
181
- .setRequired(true)
182
- .setStyle(TextInputStyle.Short);
183
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
184
- const secondActionRow = new ActionRowBuilder().addComponents(blurDegree);
185
- modal.addComponents(firstActionRow, secondActionRow);
186
- await a.showModal(modal);
187
- }
188
- else if (selectedOptionId === "process_8") {
189
- const modal = new ModalBuilder()
190
- .setCustomId("Image_Fade")
191
- .setTitle("Fading An Image");
192
- const imagePos = new TextInputBuilder()
193
- .setCustomId("Image_Postion")
194
- .setLabel("Image Number")
195
- .setMaxLength(1)
196
- .setMinLength(1)
197
- .setPlaceholder("Modal you want to fade (e.g => 1st image/2nd image/3rd image/4th image)")
198
- .setRequired(true)
199
- .setStyle(TextInputStyle.Short);
200
- const fadeDegree = new TextInputBuilder()
201
- .setCustomId("fade_factor")
202
- .setLabel("Fade By Factor")
203
- .setMaxLength(5)
204
- .setPlaceholder("Fade value (e.g => (value = 0-1 as max) )")
205
- .setRequired(true)
206
- .setStyle(TextInputStyle.Short);
207
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
208
- const secondActionRow = new ActionRowBuilder().addComponents(fadeDegree);
209
- modal.addComponents(firstActionRow, secondActionRow);
210
- await a.showModal(modal);
211
- }
212
- else if (selectedOptionId === "process_9") {
213
- const modal = new ModalBuilder()
214
- .setCustomId("Image_Opaque")
215
- .setTitle("Opaque An Image");
216
- const imagePos = new TextInputBuilder()
217
- .setCustomId("Image_Postion")
218
- .setLabel("Image Number")
219
- .setMaxLength(1)
220
- .setMinLength(1)
221
- .setPlaceholder("Modal you want to opaque (e.g => 1st image/2nd image/3rd image/4th image)")
222
- .setRequired(true)
223
- .setStyle(TextInputStyle.Short);
224
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
225
- modal.addComponents(firstActionRow);
226
- await a.showModal(modal);
227
- }
228
- else if (selectedOptionId === "process_10") {
229
- const modal = new ModalBuilder()
230
- .setCustomId("Image_GrayScale")
231
- .setTitle("GrayScale An Image");
232
- const imagePos = new TextInputBuilder()
233
- .setCustomId("Image_Postion")
234
- .setLabel("Image Number")
235
- .setMaxLength(1)
236
- .setMinLength(1)
237
- .setPlaceholder("Modal you want to apply grayscale on (e.g => 1st image/2nd image/3rd image/4th image)")
238
- .setRequired(true)
239
- .setStyle(TextInputStyle.Short);
240
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
241
- modal.addComponents(firstActionRow);
242
- await a.showModal(modal);
243
- }
244
- else if (selectedOptionId === "process_11") {
245
- const modal = new ModalBuilder()
246
- .setCustomId("Image_Contrast")
247
- .setTitle("Contrast An Image");
248
- const imagePos = new TextInputBuilder()
249
- .setCustomId("Image_Postion")
250
- .setLabel("Image Number")
251
- .setMaxLength(1)
252
- .setMinLength(1)
253
- .setPlaceholder("Modal you want to apply contrast on (e.g => 1st image/2nd image/3rd image/4th image)")
254
- .setRequired(true)
255
- .setStyle(TextInputStyle.Short);
256
- const contrastValue = new TextInputBuilder()
257
- .setCustomId("Contrast_Value")
258
- .setLabel("Contrast Value")
259
- .setMaxLength(4)
260
- .setPlaceholder("Contrast value (e.g => (value = 0-2 as max) )")
261
- .setRequired(true)
262
- .setStyle(TextInputStyle.Short);
263
- const firstActionRow = new ActionRowBuilder().addComponents(imagePos);
264
- const secondActionRow = new ActionRowBuilder().addComponents(contrastValue);
265
- modal.addComponents(firstActionRow, secondActionRow);
266
- await a.showModal(modal);
267
- }
268
- }
269
- }
270
- catch (error) { }
271
- });
272
- }
273
- //# sourceMappingURL=drawMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"drawMenu.js","sourceRoot":"","sources":["../../../../lib/ai/buttons/drawMenu.ts"],"names":[],"mappings":";;AAuWW,gCAAU;AAvWrB,KAAK,UAAU,UAAU,CACrB,IAAS,EACT,YAAiB,EACjB,gBAAqB,EACrB,cAAmB,EACnB,gBAAqB;IAErB,IAAI,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,CAAM,EAAE,EAAE;QAC5C,IAAI,CAAC,CAAC,CAAC,kBAAkB,EAAE;YAAE,OAAO;QACpC,MAAM,MAAM,GAAW,CAAC,CAAC,QAAQ,CAAC;QAClC,MAAM,gBAAgB,GAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC;YACL,IAAI,MAAM,KAAK,yBAAyB,EAAE,CAAC;gBACzC,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBACrC,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,4BAA4B,CAAC;yBACzC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;oBAE9B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,2EAA2E,CAC5E;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAE;yBACtC,WAAW,CAAC,2BAA2B,CAAC;yBACxC,QAAQ,CAAC,aAAa,CAAC;yBACvB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,WAAW,GAAG,IAAI,gBAAgB,EAAE;yBACvC,WAAW,CAAC,4BAA4B,CAAC;yBACzC,QAAQ,CAAC,cAAc,CAAC;yBACxB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAC1D,UAAU,CACX,CAAC;oBACF,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAC1D,WAAW,CACZ,CAAC;oBAEF,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;oBAEtE,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,mBAAmB,CAAC,CAAC;oBAEjC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,oFAAoF,CACrF;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE;yBACjC,WAAW,CAAC,oBAAoB,CAAC;yBACjC,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CAAC,8CAA8C,CAAC;yBAC9D,YAAY,CAAC,CAAC,CAAC;yBACf,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;oBAEpE,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;oBAErD,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,yBAAyB,CAAC;yBACtC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;oBAEhC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,4EAA4E,CAC7E;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE;yBACrC,WAAW,CAAC,YAAY,CAAC;yBACzB,QAAQ,CAAC,iBAAiB,CAAC;yBAC3B,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,wDAAwD,CACzD;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAC1D,SAAS,CACV,CAAC;oBAEF,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;oBAErD,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,kBAAkB,CAAC;yBAC/B,QAAQ,CAAC,sBAAsB,CAAC,CAAC;oBAEpC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,6EAA6E,CAC9E;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE;yBAC5C,WAAW,CAAC,mBAAmB,CAAC;yBAChC,QAAQ,CAAC,mBAAmB,CAAC;yBAC7B,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,kEAAkE,CACnE;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAC1D,gBAAgB,CACjB,CAAC;oBAEF,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;oBAErD,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,cAAc,CAAC;yBAC3B,QAAQ,CAAC,sBAAsB,CAAC,CAAC;oBAEpC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,mFAAmF,CACpF;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAEtE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBAEpC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,iBAAiB,CAAC;yBAC9B,QAAQ,CAAC,yBAAyB,CAAC,CAAC;oBAEvC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,sFAAsF,CACvF;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE;yBACnC,WAAW,CAAC,aAAa,CAAC;yBAC1B,QAAQ,CAAC,gBAAgB,CAAC;yBAC1B,cAAc,CAAC,2CAA2C,CAAC;yBAC3D,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,OAAO,GAAG,IAAI,gBAAgB,EAAE;yBACnC,WAAW,CAAC,aAAa,CAAC;yBAC1B,QAAQ,CAAC,eAAe,CAAC;yBACzB,cAAc,CAAC,wCAAwC,CAAC;yBACxD,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,SAAS,GAAG,IAAI,gBAAgB,EAAE;yBACrC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,eAAe,CAAC;yBACzB,cAAc,CAAC,qBAAqB,CAAC;yBACrC,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC1D,MAAM,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBACzD,MAAM,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;oBACzD,MAAM,EAAE,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;oBAE3D,KAAK,CAAC,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;oBAEpC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,YAAY,CAAC;yBACzB,QAAQ,CAAC,mBAAmB,CAAC,CAAC;oBAEjC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,yEAAyE,CAC1E;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAE;yBACtC,WAAW,CAAC,aAAa,CAAC;yBAC1B,QAAQ,CAAC,iBAAiB,CAAC;yBAC3B,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CAAC,6CAA6C,CAAC;yBAC7D,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAC1D,UAAU,CACX,CAAC;oBAEF,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;oBAErD,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,YAAY,CAAC;yBACzB,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oBAE/B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,yEAAyE,CAC1E;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,UAAU,GAAG,IAAI,gBAAgB,EAAE;yBACtC,WAAW,CAAC,aAAa,CAAC;yBAC1B,QAAQ,CAAC,gBAAgB,CAAC;yBAC1B,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CAAC,2CAA2C,CAAC;yBAC3D,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAC1D,UAAU,CACX,CAAC;oBAEF,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;oBAErD,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,WAAW,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,cAAc,CAAC;yBAC3B,QAAQ,CAAC,iBAAiB,CAAC,CAAC;oBAE/B,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,2EAA2E,CAC5E;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAEtE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBAEpC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,YAAY,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,iBAAiB,CAAC;yBAC9B,QAAQ,CAAC,oBAAoB,CAAC,CAAC;oBAElC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,uFAAuF,CACxF;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAEtE,KAAK,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC;oBAEpC,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;qBAAM,IAAI,gBAAgB,KAAK,YAAY,EAAE,CAAC;oBAC7C,MAAM,KAAK,GAAG,IAAI,YAAY,EAAE;yBAC7B,WAAW,CAAC,gBAAgB,CAAC;yBAC7B,QAAQ,CAAC,mBAAmB,CAAC,CAAC;oBAEjC,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAAE;yBACpC,WAAW,CAAC,eAAe,CAAC;yBAC5B,QAAQ,CAAC,cAAc,CAAC;yBACxB,YAAY,CAAC,CAAC,CAAC;yBACf,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CACb,sFAAsF,CACvF;yBACA,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,aAAa,GAAG,IAAI,gBAAgB,EAAE;yBACzC,WAAW,CAAC,gBAAgB,CAAC;yBAC7B,QAAQ,CAAC,gBAAgB,CAAC;yBAC1B,YAAY,CAAC,CAAC,CAAC;yBACf,cAAc,CAAC,+CAA+C,CAAC;yBAC/D,WAAW,CAAC,IAAI,CAAC;yBACjB,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;oBAElC,MAAM,cAAc,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACtE,MAAM,eAAe,GAAG,IAAI,gBAAgB,EAAE,CAAC,aAAa,CAC1D,aAAa,CACd,CAAC;oBAEF,KAAK,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;oBAErD,MAAM,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;gBAC3B,CAAC;YACH,CAAC;QACD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC,CAAA,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,3 +0,0 @@
1
- declare function filters(Apex: any): Promise<void>;
2
- export { filters };
3
- //# sourceMappingURL=tools.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../../../../lib/ai/buttons/tools.ts"],"names":[],"mappings":"AAIA,iBAAe,OAAO,CAAC,IAAI,EAAE,GAAG,iBAgiB/B;AAED,OAAO,EAAE,OAAO,EAAE,CAAC"}