webs-sdk 0.14.0 → 0.14.2

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 (92) hide show
  1. package/README.md +398 -398
  2. package/dist/components/ARFilters/ARFilters.d.ts +5 -0
  3. package/dist/components/ARFilters/ARFilters.d.ts.map +1 -0
  4. package/dist/components/ARFilters/ARFilters.js +138 -0
  5. package/dist/components/ARFilters/ARFilters.js.map +1 -0
  6. package/dist/components/ARFilters/ARFilters.jsx +97 -0
  7. package/dist/components/ARFilters/ARFilters.jsx.map +1 -0
  8. package/dist/components/ARFilters/FilterCarousel.d.ts +12 -0
  9. package/dist/components/ARFilters/FilterCarousel.d.ts.map +1 -0
  10. package/dist/components/ARFilters/FilterCarousel.js +95 -0
  11. package/dist/components/ARFilters/FilterCarousel.js.map +1 -0
  12. package/dist/components/ARFilters/FilterCarousel.jsx +136 -0
  13. package/dist/components/ARFilters/FilterCarousel.jsx.map +1 -0
  14. package/dist/components/ARFilters/Popups.d.ts +24 -0
  15. package/dist/components/ARFilters/Popups.d.ts.map +1 -0
  16. package/dist/components/ARFilters/Popups.js +38 -0
  17. package/dist/components/ARFilters/Popups.js.map +1 -0
  18. package/dist/components/ARFilters/Popups.jsx +69 -0
  19. package/dist/components/ARFilters/Popups.jsx.map +1 -0
  20. package/dist/components/ARFilters/constants.d.ts +34 -0
  21. package/dist/components/ARFilters/constants.d.ts.map +1 -0
  22. package/dist/components/ARFilters/constants.js +45 -0
  23. package/dist/components/ARFilters/constants.js.map +1 -0
  24. package/dist/components/ARFilters/index.d.ts +28 -0
  25. package/dist/components/ARFilters/index.d.ts.map +1 -0
  26. package/dist/components/ARFilters/index.js +32 -0
  27. package/dist/components/ARFilters/index.js.map +1 -0
  28. package/dist/components/ARFilters/translations.d.ts +3 -0
  29. package/dist/components/ARFilters/translations.d.ts.map +1 -0
  30. package/dist/components/ARFilters/translations.js +84 -0
  31. package/dist/components/ARFilters/translations.js.map +1 -0
  32. package/dist/components/ARFilters/types.d.ts +56 -0
  33. package/dist/components/ARFilters/types.d.ts.map +1 -0
  34. package/dist/components/ARFilters/types.js +3 -0
  35. package/dist/components/ARFilters/types.js.map +1 -0
  36. package/dist/components/ARFilters/useDeepAR.d.ts +18 -0
  37. package/dist/components/ARFilters/useDeepAR.d.ts.map +1 -0
  38. package/dist/components/ARFilters/useDeepAR.js +351 -0
  39. package/dist/components/ARFilters/useDeepAR.js.map +1 -0
  40. package/dist/components/ARFilters/utils.d.ts +5 -0
  41. package/dist/components/ARFilters/utils.d.ts.map +1 -0
  42. package/dist/components/ARFilters/utils.js +59 -0
  43. package/dist/components/ARFilters/utils.js.map +1 -0
  44. package/dist/components/AvatarAI.d.ts +88 -0
  45. package/dist/components/AvatarAI.d.ts.map +1 -0
  46. package/dist/components/AvatarAI.js +556 -0
  47. package/dist/components/AvatarAI.js.map +1 -0
  48. package/dist/components/CreativeFaceSwap.d.ts +83 -0
  49. package/dist/components/CreativeFaceSwap.d.ts.map +1 -0
  50. package/dist/components/CreativeFaceSwap.js +497 -0
  51. package/dist/components/CreativeFaceSwap.js.map +1 -0
  52. package/dist/components/CreativeFaceSwap.jsx +536 -0
  53. package/dist/components/CreativeFaceSwap.jsx.map +1 -0
  54. package/dist/components/MemeGenerator.d.ts +66 -0
  55. package/dist/components/MemeGenerator.d.ts.map +1 -0
  56. package/dist/components/MemeGenerator.js +320 -0
  57. package/dist/components/MemeGenerator.js.map +1 -0
  58. package/dist/components/Ringtone.d.ts +56 -0
  59. package/dist/components/Ringtone.d.ts.map +1 -0
  60. package/dist/components/Ringtone.js +192 -0
  61. package/dist/components/Ringtone.js.map +1 -0
  62. package/dist/components/Ringtone.jsx +80 -0
  63. package/dist/components/Ringtone.jsx.map +1 -0
  64. package/dist/components/SpinningWheel/SpinningWheel.js +7 -7
  65. package/dist/components/SpinningWheel/SpinningWheel.jsx +744 -0
  66. package/dist/components/SpinningWheel/SpinningWheel.jsx.map +1 -0
  67. package/dist/components/Wallpapers.d.ts +86 -0
  68. package/dist/components/Wallpapers.d.ts.map +1 -0
  69. package/dist/components/Wallpapers.js +530 -0
  70. package/dist/components/Wallpapers.js.map +1 -0
  71. package/dist/components/WallpapersName.d.ts +140 -0
  72. package/dist/components/WallpapersName.d.ts.map +1 -0
  73. package/dist/components/WallpapersName.js +455 -0
  74. package/dist/components/WallpapersName.js.map +1 -0
  75. package/dist/index.d.ts +14 -0
  76. package/dist/index.d.ts.map +1 -1
  77. package/dist/index.js +28 -1
  78. package/dist/index.js.map +1 -1
  79. package/dist/libraries/auth.d.ts.map +1 -1
  80. package/dist/libraries/auth.js +9 -12
  81. package/dist/libraries/auth.js.map +1 -1
  82. package/index.js +67 -27
  83. package/package.json +40 -40
  84. package/public/spin2win/assets/border-afristream.svg +26 -26
  85. package/public/spin2win/assets/border-efc.svg +23 -23
  86. package/public/spin2win/assets/border-totalgym.svg +27 -27
  87. package/public/spin2win/assets/border-womantoday.svg +26 -26
  88. package/public/spin2win/assets/indicator-afristream.svg +28 -28
  89. package/public/spin2win/assets/indicator-efc.svg +29 -29
  90. package/public/spin2win/assets/indicator-totalgym.svg +29 -29
  91. package/public/spin2win/fonts/switzer/README.md +22 -22
  92. package/types/index.d.ts +415 -415
@@ -0,0 +1,536 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.CreativeFaceSwap = CreativeFaceSwap;
37
+ const react_1 = __importStar(require("react"));
38
+ const defaultTheme = {
39
+ primaryColor: '#FF5500',
40
+ primaryHoverColor: '#ff1600',
41
+ secondaryColor: '#001B5E',
42
+ textColor: '#001B5E',
43
+ backgroundColor: '#F9F9F9',
44
+ };
45
+ const defaultTexts = {
46
+ uploadTitle: 'Your original photo',
47
+ uploadButton: 'UPLOAD IMAGE',
48
+ changeImageButton: 'CHANGE IMAGE',
49
+ examplesTitle: 'Get inspired by these examples',
50
+ tryButton: 'TRY',
51
+ describeTitle: 'Describe your desired image',
52
+ describeTooltip: '• The more detailed the description, the better.\n• Do not be afraid to write single words separated by commas.',
53
+ descriptionPlaceholder: 'Young curly-haired girl with yellow raincoat on a boat in the sea',
54
+ createButton: 'CREATE',
55
+ generatingButton: 'GENERATING...',
56
+ resultTitle: 'Your result',
57
+ emptyStateText: 'Your generated image will appear here',
58
+ startAgainButton: 'START AGAIN',
59
+ downloadButton: 'DOWNLOAD',
60
+ progressText: 'Progress',
61
+ successMessage: 'Image generated successfully!',
62
+ startingText: 'Starting generation...',
63
+ preparingText: 'Preparing your image...',
64
+ };
65
+ function CreativeFaceSwap({ config, examples = [], theme = {}, texts = {}, onGenerationComplete, onError, }) {
66
+ const mergedTheme = Object.assign(Object.assign({}, defaultTheme), theme);
67
+ const mergedTexts = Object.assign(Object.assign({}, defaultTexts), texts);
68
+ const [uploadedImage, setUploadedImage] = (0, react_1.useState)(null);
69
+ const [imageDimensions, setImageDimensions] = (0, react_1.useState)(null);
70
+ const [description, setDescription] = (0, react_1.useState)('');
71
+ const [showTooltip, setShowTooltip] = (0, react_1.useState)(false);
72
+ const [currentExampleIndex, setCurrentExampleIndex] = (0, react_1.useState)(0);
73
+ const [isGenerating, setIsGenerating] = (0, react_1.useState)(false);
74
+ const [generatedResult, setGeneratedResult] = (0, react_1.useState)(null);
75
+ const [progressPercent, setProgressPercent] = (0, react_1.useState)(null);
76
+ const [generatedImageUrl, setGeneratedImageUrl] = (0, react_1.useState)(null);
77
+ const [error, setError] = (0, react_1.useState)(null);
78
+ const fileInputRef = (0, react_1.useRef)(null);
79
+ const handleUploadClick = () => {
80
+ var _a;
81
+ (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
82
+ };
83
+ const handleFileChange = (event) => {
84
+ var _a;
85
+ const file = (_a = event.target.files) === null || _a === void 0 ? void 0 : _a[0];
86
+ if (file) {
87
+ if (!file.type.startsWith('image/')) {
88
+ alert('Please select a valid image file');
89
+ return;
90
+ }
91
+ if (file.size > 5 * 1024 * 1024) {
92
+ alert('Image size should be less than 5MB');
93
+ return;
94
+ }
95
+ const reader = new FileReader();
96
+ reader.onloadend = () => {
97
+ const base64String = reader.result;
98
+ setUploadedImage(base64String);
99
+ const img = new Image();
100
+ img.onload = () => {
101
+ setImageDimensions({
102
+ width: img.width,
103
+ height: img.height
104
+ });
105
+ console.log('Image dimensions:', img.width, 'x', img.height);
106
+ };
107
+ img.src = base64String;
108
+ };
109
+ reader.readAsDataURL(file);
110
+ }
111
+ };
112
+ const handleRemoveImage = () => {
113
+ setUploadedImage(null);
114
+ setImageDimensions(null);
115
+ if (fileInputRef.current) {
116
+ fileInputRef.current.value = '';
117
+ }
118
+ };
119
+ const handlePrevExample = () => {
120
+ setCurrentExampleIndex((prev) => (prev === 0 ? examples.length - 2 : prev - 2));
121
+ };
122
+ const handleNextExample = () => {
123
+ setCurrentExampleIndex((prev) => (prev >= examples.length - 2 ? 0 : prev + 2));
124
+ };
125
+ const handleTryExample = (exampleDescription) => {
126
+ setDescription(exampleDescription);
127
+ };
128
+ (0, react_1.useEffect)(() => {
129
+ if (!(generatedResult === null || generatedResult === void 0 ? void 0 : generatedResult.md5) || progressPercent === 100) {
130
+ return;
131
+ }
132
+ const checkProgress = async () => {
133
+ try {
134
+ const response = await fetch(config.apiEndpoints.progress, {
135
+ method: 'POST',
136
+ headers: {
137
+ 'Content-Type': 'application/json',
138
+ },
139
+ body: JSON.stringify({
140
+ us_id: config.userId,
141
+ us_login: config.userLogin,
142
+ md5: generatedResult.md5,
143
+ })
144
+ });
145
+ const data = await response.json();
146
+ if (response.ok && data.success) {
147
+ setProgressPercent(data.data.pct);
148
+ console.log('Progress:', data.data.pct + '%');
149
+ if (data.data.pct === 100) {
150
+ console.log('Progress complete! Fetching final image...');
151
+ }
152
+ }
153
+ }
154
+ catch (err) {
155
+ console.error('Error checking progress:', err);
156
+ }
157
+ };
158
+ checkProgress();
159
+ const interval = setInterval(checkProgress, 3000);
160
+ return () => clearInterval(interval);
161
+ }, [generatedResult, progressPercent, config]);
162
+ (0, react_1.useEffect)(() => {
163
+ if (!(generatedResult === null || generatedResult === void 0 ? void 0 : generatedResult.md5) || progressPercent !== 100 || generatedImageUrl) {
164
+ return;
165
+ }
166
+ const fetchFinalImage = async () => {
167
+ try {
168
+ const response = await fetch(config.apiEndpoints.getImage, {
169
+ method: 'POST',
170
+ headers: {
171
+ 'Content-Type': 'application/json',
172
+ },
173
+ body: JSON.stringify({
174
+ us_id: config.userId,
175
+ us_login: config.userLogin,
176
+ md5: generatedResult.md5,
177
+ })
178
+ });
179
+ const data = await response.json();
180
+ if (response.ok && data.success && data.data) {
181
+ const imageUrl = decodeURIComponent(data.data.s3_image);
182
+ setGeneratedImageUrl(imageUrl);
183
+ console.log('Image URL:', imageUrl);
184
+ onGenerationComplete === null || onGenerationComplete === void 0 ? void 0 : onGenerationComplete(imageUrl);
185
+ }
186
+ }
187
+ catch (err) {
188
+ console.error('Error fetching final image:', err);
189
+ const errorMsg = 'Error fetching generated image';
190
+ setError(errorMsg);
191
+ onError === null || onError === void 0 ? void 0 : onError(errorMsg);
192
+ }
193
+ };
194
+ fetchFinalImage();
195
+ }, [generatedResult, progressPercent, generatedImageUrl, config, onGenerationComplete, onError]);
196
+ const handleCreate = async () => {
197
+ if (!uploadedImage || !description.trim() || !imageDimensions) {
198
+ return;
199
+ }
200
+ setIsGenerating(true);
201
+ setError(null);
202
+ setGeneratedResult(null);
203
+ try {
204
+ const response = await fetch(config.apiEndpoints.generate, {
205
+ method: 'POST',
206
+ headers: {
207
+ 'Content-Type': 'application/json',
208
+ },
209
+ body: JSON.stringify({
210
+ us_id: config.userId,
211
+ us_login: config.userLogin,
212
+ prompt: description,
213
+ img_data: uploadedImage,
214
+ width: imageDimensions.width,
215
+ height: imageDimensions.height,
216
+ })
217
+ });
218
+ const data = await response.json();
219
+ if (!response.ok || !data.success) {
220
+ throw new Error(data.error || 'Error generating image');
221
+ }
222
+ setGeneratedResult(data.data);
223
+ console.log('Image generation started:', data.data);
224
+ console.log('Image dimensions used:', imageDimensions);
225
+ }
226
+ catch (err) {
227
+ console.error('Error creating image:', err);
228
+ const errorMsg = err instanceof Error ? err.message : 'An error occurred';
229
+ setError(errorMsg);
230
+ onError === null || onError === void 0 ? void 0 : onError(errorMsg);
231
+ }
232
+ finally {
233
+ setIsGenerating(false);
234
+ }
235
+ };
236
+ const handleStartAgain = () => {
237
+ setGeneratedResult(null);
238
+ setProgressPercent(null);
239
+ setGeneratedImageUrl(null);
240
+ setError(null);
241
+ setDescription('');
242
+ };
243
+ const handleDownload = () => {
244
+ if (!generatedImageUrl)
245
+ return;
246
+ const link = document.createElement('a');
247
+ link.href = generatedImageUrl;
248
+ link.download = `faceswap-${Date.now()}.png`;
249
+ document.body.appendChild(link);
250
+ link.click();
251
+ document.body.removeChild(link);
252
+ };
253
+ const truncateText = (text, maxLength) => {
254
+ if (text.length <= maxLength)
255
+ return text;
256
+ return text.substring(0, maxLength) + '...';
257
+ };
258
+ return (<div className="w-full">
259
+ <div className="container mx-auto px-8 md:px-12 lg:px-16">
260
+ <div className="grid grid-cols-1 lg:grid-cols-[30%_70%] gap-0">
261
+
262
+
263
+ <div className="bg-white border border-gray-200">
264
+
265
+ <div className="p-6 border-b border-gray-200">
266
+ <h3 className="text-xl font-bold mb-4" style={{ color: mergedTheme.textColor }}>
267
+ {mergedTexts.uploadTitle}
268
+ </h3>
269
+
270
+ <input ref={fileInputRef} type="file" accept="image/*" onChange={handleFileChange} className="hidden"/>
271
+
272
+ <div className="relative bg-gray-50 rounded-lg p-8 mb-4 min-h-[300px] flex items-center justify-center border-2 border-dashed border-gray-300 overflow-hidden">
273
+ {uploadedImage ? (<>
274
+ <img src={uploadedImage} alt="Uploaded photo" className="w-full h-full object-contain max-h-[300px]"/>
275
+
276
+ <button onClick={handleRemoveImage} className="absolute top-4 right-4 w-12 h-12 bg-red-500 hover:bg-red-600 rounded-full flex items-center justify-center shadow-lg transition-colors">
277
+ <svg className="w-6 h-6 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24">
278
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M6 18L18 6M6 6l12 12"/>
279
+ </svg>
280
+ </button>
281
+ </>) : null}
282
+ </div>
283
+
284
+ <button onClick={handleUploadClick} className="w-full text-white font-bold text-base px-6 py-3 rounded-full transition-colors duration-300 cursor-pointer flex items-center justify-center gap-2" style={{
285
+ backgroundColor: mergedTheme.primaryColor,
286
+ }} onMouseEnter={(e) => {
287
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || mergedTheme.primaryColor || '#ff1600';
288
+ }} onMouseLeave={(e) => {
289
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500';
290
+ }}>
291
+ <svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
292
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12"/>
293
+ </svg>
294
+ {uploadedImage ? mergedTexts.changeImageButton : mergedTexts.uploadButton}
295
+ </button>
296
+ </div>
297
+
298
+
299
+ {examples.length > 0 && (<div className="p-6">
300
+ <h3 className="text-lg font-bold mb-4" style={{ color: mergedTheme.textColor }}>
301
+ {mergedTexts.examplesTitle}
302
+ </h3>
303
+
304
+ <div className="relative">
305
+ <button onClick={handlePrevExample} className="absolute left-0 top-1/2 -translate-y-1/2 z-10 w-8 h-8 bg-white rounded-full shadow-lg flex items-center justify-center hover:bg-gray-100 transition-colors -ml-4">
306
+ <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
307
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M15 19l-7-7 7-7"/>
308
+ </svg>
309
+ </button>
310
+
311
+ <div className="grid grid-cols-2 gap-4">
312
+ {examples.slice(currentExampleIndex, currentExampleIndex + 2).map((example) => (<div key={example.id} className="flex flex-col">
313
+ <div className="aspect-[3/4] bg-gray-200 rounded-lg overflow-hidden mb-2">
314
+ <img src={example.image} alt={`Example ${example.id}`} className="w-full h-full object-cover"/>
315
+ </div>
316
+ <p className="text-xs leading-tight line-clamp-3 mb-2 min-h-[3rem]" style={{ color: mergedTheme.textColor }}>
317
+ {truncateText(example.description, 120)}
318
+ </p>
319
+ <button onClick={() => handleTryExample(example.description)} className="w-full text-white font-bold text-sm px-4 py-2 rounded-full transition-colors duration-300 cursor-pointer flex items-center justify-center gap-2 mt-auto" style={{ backgroundColor: mergedTheme.primaryColor }} onMouseEnter={(e) => {
320
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || mergedTheme.primaryColor || '#ff1600';
321
+ }} onMouseLeave={(e) => {
322
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500';
323
+ }}>
324
+ <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
325
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M14 5l7 7m0 0l-7 7m7-7H3"/>
326
+ </svg>
327
+ {mergedTexts.tryButton}
328
+ </button>
329
+ </div>))}
330
+ </div>
331
+
332
+ <button onClick={handleNextExample} className="absolute right-0 top-1/2 -translate-y-1/2 z-10 w-8 h-8 bg-white rounded-full shadow-lg flex items-center justify-center hover:bg-gray-100 transition-colors -mr-4">
333
+ <svg className="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
334
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 5l7 7-7 7"/>
335
+ </svg>
336
+ </button>
337
+ </div>
338
+
339
+ <div className="flex justify-center gap-2 mt-4">
340
+ {Array.from({ length: Math.ceil(examples.length / 2) }).map((_, index) => (<button key={index} onClick={() => setCurrentExampleIndex(index * 2)} className={`h-2 rounded-full transition-all duration-300 ${currentExampleIndex === index * 2
341
+ ? 'w-6'
342
+ : 'w-2 bg-gray-300 hover:bg-gray-400'}`} style={{
343
+ backgroundColor: currentExampleIndex === index * 2 ? mergedTheme.primaryColor : undefined
344
+ }}/>))}
345
+ </div>
346
+ </div>)}
347
+ </div>
348
+
349
+
350
+ <div className="bg-white border border-gray-200 border-l-0 lg:border-l">
351
+
352
+ <div className="p-6 border-b border-gray-200">
353
+ <div className="flex items-center gap-2 mb-4 relative">
354
+ <h3 className="text-xl font-bold" style={{ color: mergedTheme.textColor }}>
355
+ {mergedTexts.describeTitle}
356
+ </h3>
357
+
358
+ <div className="relative">
359
+ <button onClick={() => setShowTooltip(!showTooltip)} onMouseEnter={() => setShowTooltip(true)} onMouseLeave={() => setShowTooltip(false)} className="w-5 h-5 rounded-full border-2 flex items-center justify-center text-xs font-bold hover:text-white transition-colors" style={{
360
+ borderColor: mergedTheme.textColor,
361
+ color: mergedTheme.textColor,
362
+ }} onMouseOver={(e) => {
363
+ e.currentTarget.style.backgroundColor = mergedTheme.textColor || '#001B5E';
364
+ e.currentTarget.style.color = 'white';
365
+ }} onMouseOut={(e) => {
366
+ e.currentTarget.style.backgroundColor = 'transparent';
367
+ e.currentTarget.style.color = mergedTheme.textColor || '#001B5E';
368
+ }}>
369
+ i
370
+ </button>
371
+
372
+ {showTooltip && (<div className="absolute left-0 top-full mt-2 w-64 bg-white border border-gray-300 rounded-lg shadow-lg p-4 z-20 text-sm" style={{ color: mergedTheme.textColor }}>
373
+ <p className="leading-relaxed whitespace-pre-line">
374
+ {mergedTexts.describeTooltip}
375
+ </p>
376
+ </div>)}
377
+ </div>
378
+ </div>
379
+
380
+ <div className="relative">
381
+ <textarea value={description} onChange={(e) => setDescription(e.target.value)} placeholder={mergedTexts.descriptionPlaceholder} className="w-full bg-gray-50 rounded-lg p-4 placeholder-gray-400 border border-gray-200 focus:outline-none focus:ring-2 min-h-[120px] resize-none" style={{
382
+ fontStyle: 'italic',
383
+ color: mergedTheme.textColor,
384
+ borderColor: showTooltip ? mergedTheme.primaryColor : undefined,
385
+ }}/>
386
+
387
+ <div className="flex justify-end mt-4">
388
+ <button onClick={handleCreate} disabled={!uploadedImage || !description.trim() || isGenerating} className={`font-bold text-base px-6 py-3 rounded-full transition-colors duration-300 flex items-center gap-2 ${uploadedImage && description.trim() && !isGenerating
389
+ ? 'text-white cursor-pointer'
390
+ : 'bg-gray-300 text-gray-500 cursor-not-allowed'}`} style={{
391
+ backgroundColor: uploadedImage && description.trim() && !isGenerating ? mergedTheme.primaryColor : undefined
392
+ }} onMouseEnter={(e) => {
393
+ if (uploadedImage && description.trim() && !isGenerating) {
394
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || mergedTheme.primaryColor || '#ff1600';
395
+ }
396
+ }} onMouseLeave={(e) => {
397
+ if (uploadedImage && description.trim() && !isGenerating) {
398
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500';
399
+ }
400
+ }}>
401
+ {isGenerating ? (<>
402
+ <svg className="w-5 h-5 animate-spin" fill="none" viewBox="0 0 24 24">
403
+ <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle>
404
+ <path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
405
+ </svg>
406
+ {mergedTexts.generatingButton}
407
+ </>) : (<>
408
+ <svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
409
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M13 10V3L4 14h7v7l9-11h-7z"/>
410
+ </svg>
411
+ {mergedTexts.createButton}
412
+ </>)}
413
+ </button>
414
+ </div>
415
+
416
+ {error && (<div className="mt-4 p-3 bg-red-50 border border-red-200 rounded-lg">
417
+ <p className="text-red-600 text-sm">{error}</p>
418
+ </div>)}
419
+ </div>
420
+ </div>
421
+
422
+
423
+ <div className="p-6">
424
+ <h3 className="text-xl font-bold mb-4" style={{ color: mergedTheme.textColor }}>
425
+ {mergedTexts.resultTitle}
426
+ </h3>
427
+
428
+ <div className="bg-gray-50 rounded-lg min-h-[400px] mb-4 border border-gray-200 flex items-center justify-center">
429
+ {isGenerating ? (<div className="flex flex-col items-center gap-4">
430
+ <svg className="w-16 h-16 animate-spin" fill="none" viewBox="0 0 24 24" style={{ color: mergedTheme.primaryColor }}>
431
+ <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle>
432
+ <path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
433
+ </svg>
434
+ <p className="font-bold" style={{ color: mergedTheme.textColor }}>Generating your image...</p>
435
+ <p className="text-sm text-gray-500">This may take a few moments</p>
436
+ </div>) : generatedResult ? (<div className="flex flex-col items-center gap-4 p-6 w-full">
437
+ {generatedImageUrl ? (<div className="w-full">
438
+ <div className="rounded-lg overflow-hidden mb-4">
439
+ <img src={generatedImageUrl} alt="Generated image" className="w-full h-auto"/>
440
+ </div>
441
+ <div className="flex items-center gap-2 justify-center">
442
+ <svg className="w-6 h-6 text-green-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
443
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z"/>
444
+ </svg>
445
+ <p className="text-green-600 font-bold">{mergedTexts.successMessage}</p>
446
+ </div>
447
+ </div>) : progressPercent !== null ? (<>
448
+ <svg className="w-16 h-16 animate-pulse" fill="none" stroke="currentColor" viewBox="0 0 24 24" style={{ color: mergedTheme.primaryColor }}>
449
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"/>
450
+ </svg>
451
+ <p className="font-bold text-lg" style={{ color: mergedTheme.textColor }}>Generating Image...</p>
452
+
453
+ <div className="w-full max-w-md">
454
+ <div className="bg-white rounded-lg p-6 border border-gray-300">
455
+ <div className="mb-3">
456
+ <div className="flex justify-between items-center mb-2">
457
+ <span className="text-sm text-gray-600 font-bold">{mergedTexts.progressText}</span>
458
+ <span className="text-2xl font-bold" style={{ color: mergedTheme.primaryColor }}>{progressPercent}%</span>
459
+ </div>
460
+ <div className="w-full bg-gray-200 rounded-full h-4 overflow-hidden">
461
+ <div className="h-4 rounded-full transition-all duration-500 ease-out" style={{
462
+ width: `${progressPercent}%`,
463
+ background: `linear-gradient(to right, ${mergedTheme.primaryColor}, #FF8800)`
464
+ }}/>
465
+ </div>
466
+ </div>
467
+ <p className="text-xs text-gray-500 text-center">
468
+ Creating your masterpiece...
469
+ </p>
470
+ </div>
471
+ </div>
472
+ </>) : (<>
473
+ <svg className="w-16 h-16 animate-spin" fill="none" viewBox="0 0 24 24" style={{ color: mergedTheme.primaryColor }}>
474
+ <circle className="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" strokeWidth="4"></circle>
475
+ <path className="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
476
+ </svg>
477
+ <p className="font-bold text-lg" style={{ color: mergedTheme.textColor }}>{mergedTexts.startingText}</p>
478
+ <p className="text-sm text-gray-500 text-center">
479
+ {mergedTexts.preparingText}
480
+ </p>
481
+ </>)}
482
+ </div>) : (<div className="flex flex-col items-center gap-3 text-gray-400">
483
+ <svg className="w-16 h-16" fill="none" stroke="currentColor" viewBox="0 0 24 24">
484
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"/>
485
+ </svg>
486
+ <p className="text-center">{mergedTexts.emptyStateText}</p>
487
+ </div>)}
488
+ </div>
489
+
490
+ <div className="flex gap-3 justify-end">
491
+ <button onClick={handleStartAgain} disabled={!generatedResult} className={`font-bold text-base px-6 py-3 rounded-full transition-colors duration-300 flex items-center gap-2 ${generatedResult
492
+ ? 'text-white cursor-pointer'
493
+ : 'bg-gray-300 text-gray-500 cursor-not-allowed'}`} style={{
494
+ backgroundColor: generatedResult ? mergedTheme.primaryColor : undefined
495
+ }} onMouseEnter={(e) => {
496
+ if (generatedResult) {
497
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || mergedTheme.primaryColor || '#ff1600';
498
+ }
499
+ }} onMouseLeave={(e) => {
500
+ if (generatedResult) {
501
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500';
502
+ }
503
+ }}>
504
+ <svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
505
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/>
506
+ </svg>
507
+ {mergedTexts.startAgainButton}
508
+ </button>
509
+ <button onClick={handleDownload} disabled={!generatedImageUrl} className={`font-bold text-base px-6 py-3 rounded-full transition-colors duration-300 flex items-center gap-2 ${generatedImageUrl
510
+ ? 'text-white cursor-pointer'
511
+ : 'bg-gray-300 text-gray-500 cursor-not-allowed'}`} style={{
512
+ backgroundColor: generatedImageUrl ? mergedTheme.primaryColor : undefined
513
+ }} onMouseEnter={(e) => {
514
+ if (generatedImageUrl) {
515
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || mergedTheme.primaryColor || '#ff1600';
516
+ }
517
+ }} onMouseLeave={(e) => {
518
+ if (generatedImageUrl) {
519
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500';
520
+ }
521
+ }}>
522
+ <svg className="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
523
+ <path strokeLinecap="round" strokeLinejoin="round" strokeWidth={2} d="M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"/>
524
+ </svg>
525
+ {mergedTexts.downloadButton}
526
+ </button>
527
+ </div>
528
+ </div>
529
+ </div>
530
+
531
+ </div>
532
+ </div>
533
+ </div>);
534
+ }
535
+ exports.default = CreativeFaceSwap;
536
+ //# sourceMappingURL=CreativeFaceSwap.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreativeFaceSwap.jsx","sourceRoot":"","sources":["../../src/components/CreativeFaceSwap.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import React from 'react';
2
+ export interface MemeItem {
3
+ id: number | string;
4
+ name: string;
5
+ image: string;
6
+ fullSizeImage?: string;
7
+ }
8
+ export interface MemeFont {
9
+ id: string;
10
+ label: string;
11
+ family: string;
12
+ }
13
+ export interface MemeGeneratorTheme {
14
+ primaryColor?: string;
15
+ primaryHoverColor?: string;
16
+ textColor?: string;
17
+ backgroundColor?: string;
18
+ cardBackground?: string;
19
+ fontButtonActiveColor?: string;
20
+ fontButtonActiveBg?: string;
21
+ inputFocusColor?: string;
22
+ }
23
+ export interface MemeGeneratorTexts {
24
+ galleryTitle?: string;
25
+ editTextTitle?: string;
26
+ topTextPlaceholder?: string;
27
+ bottomTextPlaceholder?: string;
28
+ downloadButton?: string;
29
+ refreshButton?: string;
30
+ loading?: string;
31
+ noMemes?: string;
32
+ }
33
+ export interface MemeGeneratorConfig {
34
+ apiUrl: string;
35
+ memeTag?: string;
36
+ locale?: string;
37
+ }
38
+ export interface MemeGeneratorProps {
39
+ memes?: MemeItem[];
40
+ config?: MemeGeneratorConfig;
41
+ fonts?: MemeFont[];
42
+ defaultMemeIndex?: number;
43
+ theme?: MemeGeneratorTheme;
44
+ texts?: MemeGeneratorTexts;
45
+ onDownload?: (meme: MemeItem, topText: string, bottomText: string) => void;
46
+ }
47
+ export declare function MemeGenerator({ memes: memesProp, config, fonts, defaultMemeIndex, theme, texts, onDownload, }: MemeGeneratorProps): React.JSX.Element;
48
+ export interface MemeGeneratorForYouCardProps {
49
+ title: string;
50
+ description: string;
51
+ ctaText: string;
52
+ ctaHref: string;
53
+ desktopImage: string;
54
+ mobileImage?: string;
55
+ imageAlt?: string;
56
+ imageOnRight?: boolean;
57
+ titleColor?: string;
58
+ descriptionColor?: string;
59
+ ctaColor?: string;
60
+ ctaHoverColor?: string;
61
+ backgroundColor?: string;
62
+ paddingClass?: string;
63
+ }
64
+ export declare function MemeGeneratorForYouCard({ title, description, ctaText, ctaHref, desktopImage, mobileImage, imageAlt, imageOnRight, titleColor, descriptionColor, ctaColor, ctaHoverColor, backgroundColor, paddingClass, }: MemeGeneratorForYouCardProps): React.JSX.Element;
65
+ export default MemeGenerator;
66
+ //# sourceMappingURL=MemeGenerator.d.ts.map