webs-sdk 0.18.28 → 0.18.29

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 (218) hide show
  1. package/README.md +1 -1
  2. package/dist/components/ARFilters/ARFilters.d.ts +1 -2
  3. package/dist/components/ARFilters/ARFilters.d.ts.map +1 -1
  4. package/dist/components/ARFilters/ARFilters.js +7 -67
  5. package/dist/components/ARFilters/ARFilters.js.map +1 -1
  6. package/dist/components/ARFilters/FilterCarousel.d.ts +1 -2
  7. package/dist/components/ARFilters/FilterCarousel.d.ts.map +1 -1
  8. package/dist/components/ARFilters/FilterCarousel.js +10 -58
  9. package/dist/components/ARFilters/FilterCarousel.js.map +1 -1
  10. package/dist/components/ARFilters/Popups.d.ts +3 -4
  11. package/dist/components/ARFilters/Popups.d.ts.map +1 -1
  12. package/dist/components/ARFilters/Popups.js +5 -23
  13. package/dist/components/ARFilters/Popups.js.map +1 -1
  14. package/dist/components/AvatarAI.d.ts +3 -4
  15. package/dist/components/AvatarAI.d.ts.map +1 -1
  16. package/dist/components/AvatarAI.js +117 -232
  17. package/dist/components/AvatarAI.js.map +1 -1
  18. package/dist/components/CookieConsent/CookieConsent.d.ts +1 -2
  19. package/dist/components/CookieConsent/CookieConsent.d.ts.map +1 -1
  20. package/dist/components/CookieConsent/CookieConsent.js +4 -66
  21. package/dist/components/CookieConsent/CookieConsent.js.map +1 -1
  22. package/dist/components/CreativeFaceSwap.d.ts +3 -4
  23. package/dist/components/CreativeFaceSwap.d.ts.map +1 -1
  24. package/dist/components/CreativeFaceSwap.js +56 -203
  25. package/dist/components/CreativeFaceSwap.js.map +1 -1
  26. package/dist/components/MemeGenerator.d.ts +2 -3
  27. package/dist/components/MemeGenerator.d.ts.map +1 -1
  28. package/dist/components/MemeGenerator.js +62 -162
  29. package/dist/components/MemeGenerator.js.map +1 -1
  30. package/dist/components/Quiz.d.ts +2 -3
  31. package/dist/components/Quiz.d.ts.map +1 -1
  32. package/dist/components/Quiz.js +260 -345
  33. package/dist/components/Quiz.js.map +1 -1
  34. package/dist/components/Ringtone.d.ts +2 -3
  35. package/dist/components/Ringtone.d.ts.map +1 -1
  36. package/dist/components/Ringtone.js +17 -78
  37. package/dist/components/Ringtone.js.map +1 -1
  38. package/dist/components/SpinningWheel/SpinningWheel.d.ts +1 -2
  39. package/dist/components/SpinningWheel/SpinningWheel.d.ts.map +1 -1
  40. package/dist/components/SpinningWheel/SpinningWheel.js +307 -427
  41. package/dist/components/SpinningWheel/SpinningWheel.js.map +1 -1
  42. package/dist/components/Stickers.d.ts +2 -3
  43. package/dist/components/Stickers.d.ts.map +1 -1
  44. package/dist/components/Stickers.js +108 -164
  45. package/dist/components/Stickers.js.map +1 -1
  46. package/dist/components/Wallpapers.d.ts +3 -4
  47. package/dist/components/Wallpapers.d.ts.map +1 -1
  48. package/dist/components/Wallpapers.js +162 -225
  49. package/dist/components/Wallpapers.js.map +1 -1
  50. package/dist/components/WallpapersName.d.ts +4 -5
  51. package/dist/components/WallpapersName.d.ts.map +1 -1
  52. package/dist/components/WallpapersName.js +98 -180
  53. package/dist/components/WallpapersName.js.map +1 -1
  54. package/dist/components/esports/live/EsportsLive.d.ts +1 -2
  55. package/dist/components/esports/live/EsportsLive.d.ts.map +1 -1
  56. package/dist/components/esports/live/EsportsLive.js +16 -93
  57. package/dist/components/esports/live/EsportsLive.js.map +1 -1
  58. package/dist/components/esports/news/EsportsNews.d.ts +1 -2
  59. package/dist/components/esports/news/EsportsNews.d.ts.map +1 -1
  60. package/dist/components/esports/news/EsportsNews.js +9 -55
  61. package/dist/components/esports/news/EsportsNews.js.map +1 -1
  62. package/dist/components/esports/news/EsportsNewsDetail.d.ts +1 -2
  63. package/dist/components/esports/news/EsportsNewsDetail.d.ts.map +1 -1
  64. package/dist/components/esports/news/EsportsNewsDetail.js +5 -36
  65. package/dist/components/esports/news/EsportsNewsDetail.js.map +1 -1
  66. package/dist/components/esports/videos/EsportsVideos.d.ts +1 -2
  67. package/dist/components/esports/videos/EsportsVideos.d.ts.map +1 -1
  68. package/dist/components/esports/videos/EsportsVideos.js +9 -67
  69. package/dist/components/esports/videos/EsportsVideos.js.map +1 -1
  70. package/dist/components/ui/VideoPlayer.d.ts +1 -2
  71. package/dist/components/ui/VideoPlayer.d.ts.map +1 -1
  72. package/dist/components/ui/VideoPlayer.js +5 -61
  73. package/dist/components/ui/VideoPlayer.js.map +1 -1
  74. package/dist/components/ui/accordion.d.ts +8 -0
  75. package/dist/components/ui/accordion.d.ts.map +1 -0
  76. package/dist/components/ui/accordion.js +70 -0
  77. package/dist/components/ui/accordion.js.map +1 -0
  78. package/dist/components/ui/alert-dialog.d.ts +16 -0
  79. package/dist/components/ui/alert-dialog.d.ts.map +1 -0
  80. package/dist/components/ui/alert-dialog.js +87 -0
  81. package/dist/components/ui/alert-dialog.js.map +1 -0
  82. package/dist/components/ui/alert.d.ts +9 -0
  83. package/dist/components/ui/alert.d.ts.map +1 -0
  84. package/dist/components/ui/alert.js +21 -0
  85. package/dist/components/ui/alert.js.map +1 -0
  86. package/dist/components/ui/aspect-ratio.d.ts +5 -0
  87. package/dist/components/ui/aspect-ratio.d.ts.map +1 -0
  88. package/dist/components/ui/aspect-ratio.js +43 -0
  89. package/dist/components/ui/aspect-ratio.js.map +1 -0
  90. package/dist/components/ui/avatar.d.ts +12 -0
  91. package/dist/components/ui/avatar.d.ts.map +1 -0
  92. package/dist/components/ui/avatar.js +75 -0
  93. package/dist/components/ui/avatar.js.map +1 -0
  94. package/dist/components/ui/badge.d.ts +6 -0
  95. package/dist/components/ui/badge.d.ts.map +1 -0
  96. package/dist/components/ui/badge.js +23 -0
  97. package/dist/components/ui/badge.js.map +1 -0
  98. package/dist/components/ui/breadcrumb.d.ts +14 -0
  99. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  100. package/dist/components/ui/breadcrumb.js +48 -0
  101. package/dist/components/ui/breadcrumb.js.map +1 -0
  102. package/dist/components/ui/button-group.d.ts +12 -0
  103. package/dist/components/ui/button-group.d.ts.map +1 -0
  104. package/dist/components/ui/button-group.js +32 -0
  105. package/dist/components/ui/button-group.js.map +1 -0
  106. package/dist/components/ui/button.d.ts +7 -0
  107. package/dist/components/ui/button.d.ts.map +1 -0
  108. package/dist/components/ui/button.js +58 -0
  109. package/dist/components/ui/button.js.map +1 -0
  110. package/dist/components/ui/cards.d.ts +12 -0
  111. package/dist/components/ui/cards.d.ts.map +1 -0
  112. package/dist/components/ui/cards.js +44 -0
  113. package/dist/components/ui/cards.js.map +1 -0
  114. package/dist/components/ui/carousel.d.ts +28 -0
  115. package/dist/components/ui/carousel.d.ts.map +1 -0
  116. package/dist/components/ui/carousel.js +136 -0
  117. package/dist/components/ui/carousel.js.map +1 -0
  118. package/dist/components/ui/checkbox.d.ts +5 -0
  119. package/dist/components/ui/checkbox.d.ts.map +1 -0
  120. package/dist/components/ui/checkbox.js +44 -0
  121. package/dist/components/ui/checkbox.js.map +1 -0
  122. package/dist/components/ui/collapsible.d.ts +7 -0
  123. package/dist/components/ui/collapsible.d.ts.map +1 -0
  124. package/dist/components/ui/collapsible.js +64 -0
  125. package/dist/components/ui/collapsible.js.map +1 -0
  126. package/dist/components/ui/context-menu.d.ts +30 -0
  127. package/dist/components/ui/context-menu.d.ts.map +1 -0
  128. package/dist/components/ui/context-menu.js +115 -0
  129. package/dist/components/ui/context-menu.js.map +1 -0
  130. package/dist/components/ui/dialog.d.ts +14 -0
  131. package/dist/components/ui/dialog.d.ts.map +1 -0
  132. package/dist/components/ui/dialog.js +79 -0
  133. package/dist/components/ui/dialog.js.map +1 -0
  134. package/dist/components/ui/dropdown-menu.d.ts +19 -0
  135. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  136. package/dist/components/ui/dropdown-menu.js +125 -0
  137. package/dist/components/ui/dropdown-menu.js.map +1 -0
  138. package/dist/components/ui/dropdown.d.ts +19 -0
  139. package/dist/components/ui/dropdown.d.ts.map +1 -0
  140. package/dist/components/ui/dropdown.js +99 -0
  141. package/dist/components/ui/dropdown.js.map +1 -0
  142. package/dist/components/ui/field.d.ts +24 -0
  143. package/dist/components/ui/field.d.ts.map +1 -0
  144. package/dist/components/ui/field.js +62 -0
  145. package/dist/components/ui/field.js.map +1 -0
  146. package/dist/components/ui/hover-card.d.ts +7 -0
  147. package/dist/components/ui/hover-card.d.ts.map +1 -0
  148. package/dist/components/ui/hover-card.js +51 -0
  149. package/dist/components/ui/hover-card.js.map +1 -0
  150. package/dist/components/ui/index.d.ts +32 -0
  151. package/dist/components/ui/index.d.ts.map +1 -0
  152. package/dist/components/ui/index.js +48 -0
  153. package/dist/components/ui/index.js.map +1 -0
  154. package/dist/components/ui/input-group.d.ts +13 -0
  155. package/dist/components/ui/input-group.d.ts.map +1 -0
  156. package/dist/components/ui/input-group.js +50 -0
  157. package/dist/components/ui/input-group.js.map +1 -0
  158. package/dist/components/ui/input.d.ts +4 -0
  159. package/dist/components/ui/input.d.ts.map +1 -0
  160. package/dist/components/ui/input.js +8 -0
  161. package/dist/components/ui/input.js.map +1 -0
  162. package/dist/components/ui/item.d.ts +24 -0
  163. package/dist/components/ui/item.d.ts.map +1 -0
  164. package/dist/components/ui/item.js +91 -0
  165. package/dist/components/ui/item.js.map +1 -0
  166. package/dist/components/ui/label.d.ts +5 -0
  167. package/dist/components/ui/label.d.ts.map +1 -0
  168. package/dist/components/ui/label.js +43 -0
  169. package/dist/components/ui/label.js.map +1 -0
  170. package/dist/components/ui/navigation-menu.d.ts +15 -0
  171. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  172. package/dist/components/ui/navigation-menu.js +88 -0
  173. package/dist/components/ui/navigation-menu.js.map +1 -0
  174. package/dist/components/ui/select.d.ts +14 -0
  175. package/dist/components/ui/select.d.ts.map +1 -0
  176. package/dist/components/ui/select.js +80 -0
  177. package/dist/components/ui/select.js.map +1 -0
  178. package/dist/components/ui/separator.d.ts +5 -0
  179. package/dist/components/ui/separator.d.ts.map +1 -0
  180. package/dist/components/ui/separator.js +43 -0
  181. package/dist/components/ui/separator.js.map +1 -0
  182. package/dist/components/ui/skeleton.d.ts +4 -0
  183. package/dist/components/ui/skeleton.d.ts.map +1 -0
  184. package/dist/components/ui/skeleton.js +21 -0
  185. package/dist/components/ui/skeleton.js.map +1 -0
  186. package/dist/components/ui/tabs.d.ts +8 -0
  187. package/dist/components/ui/tabs.d.ts.map +1 -0
  188. package/dist/components/ui/tabs.js +55 -0
  189. package/dist/components/ui/tabs.js.map +1 -0
  190. package/dist/components/ui/textarea.d.ts +4 -0
  191. package/dist/components/ui/textarea.d.ts.map +1 -0
  192. package/dist/components/ui/textarea.js +8 -0
  193. package/dist/components/ui/textarea.js.map +1 -0
  194. package/dist/components/ui/toast.d.ts +5 -0
  195. package/dist/components/ui/toast.d.ts.map +1 -0
  196. package/dist/components/ui/toast.js +13 -0
  197. package/dist/components/ui/toast.js.map +1 -0
  198. package/dist/components/ui/tooltip.d.ts +8 -0
  199. package/dist/components/ui/tooltip.d.ts.map +1 -0
  200. package/dist/components/ui/tooltip.js +55 -0
  201. package/dist/components/ui/tooltip.js.map +1 -0
  202. package/dist/index.d.ts +1 -4
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +3 -53
  205. package/dist/index.js.map +1 -1
  206. package/dist/libraries/networking.d.ts +1 -1
  207. package/dist/libraries/networking.d.ts.map +1 -1
  208. package/dist/libraries/networking.js +16 -8
  209. package/dist/libraries/networking.js.map +1 -1
  210. package/dist/libraries/session.d.ts +1 -10
  211. package/dist/libraries/session.d.ts.map +1 -1
  212. package/dist/libraries/session.js +1 -57
  213. package/dist/libraries/session.js.map +1 -1
  214. package/dist/libraries/utils.d.ts +2 -0
  215. package/dist/libraries/utils.d.ts.map +1 -1
  216. package/dist/libraries/utils.js +6 -0
  217. package/dist/libraries/utils.js.map +1 -1
  218. package/package.json +41 -6
@@ -1,42 +1,10 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
36
3
  exports.AvatarAI = AvatarAI;
37
4
  exports.AvatarAIForYouCard = AvatarAIForYouCard;
38
5
  exports.AvatarAIPage = AvatarAIPage;
39
- const react_1 = __importStar(require("react"));
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
40
8
  const AVATAR_AI_CSS = `
41
9
  .avatarai-styles-grid::-webkit-scrollbar { width: 6px; }
42
10
  .avatarai-styles-grid::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 3px; }
@@ -343,214 +311,131 @@ function AvatarAI({ styles: stylesProp = [], stylesTag, apiBaseUrl, locale, mood
343
311
  };
344
312
  const isProcessing = isGenerating || (!!generatedResult && !generatedImageUrl);
345
313
  const canGenerate = !!uploadedImage && !!selectedStyle && !isProcessing && !!config;
346
- return (react_1.default.createElement("div", { style: { width: '100%', backgroundColor: mergedTheme.backgroundColor } },
347
- react_1.default.createElement("div", { style: { maxWidth: '1280px', margin: '0 auto', padding: '0 16px' } },
348
- react_1.default.createElement("div", { style: {
314
+ return ((0, jsx_runtime_1.jsx)("div", { style: { width: '100%', backgroundColor: mergedTheme.backgroundColor }, children: (0, jsx_runtime_1.jsx)("div", { style: { maxWidth: '1280px', margin: '0 auto', padding: '0 16px' }, children: (0, jsx_runtime_1.jsxs)("div", { style: {
349
315
  backgroundColor: mergedTheme.cardBackground,
350
316
  borderRadius: '8px',
351
317
  boxShadow: '0 1px 3px rgba(0,0,0,0.1)',
352
318
  padding: '32px',
353
- } },
354
- react_1.default.createElement("h2", { style: { fontSize: 'clamp(24px, 4vw, 36px)', fontWeight: 700, color: mergedTheme.textColor, marginBottom: '32px' } }, mergedTexts.styleTitle),
355
- react_1.default.createElement("div", { style: { display: 'flex', gap: '32px', flexWrap: 'wrap' } },
356
- react_1.default.createElement("div", { style: {
357
- flex: '1 1 300px',
358
- minHeight: '500px',
359
- border: `2px dashed ${generatedImageUrl ? mergedTheme.primaryColor : '#d1d5db'}`,
360
- borderRadius: '8px',
361
- display: 'flex',
362
- flexDirection: 'column',
363
- alignItems: 'center',
364
- justifyContent: 'center',
365
- position: 'relative',
366
- padding: '32px',
367
- backgroundColor: '#fff',
368
- transition: 'border-color 0.3s',
369
- } },
370
- react_1.default.createElement("input", { ref: fileInputRef, type: "file", accept: "image/*", onChange: handleFileChange, style: { display: 'none' } }),
371
- uploadedImage ? (react_1.default.createElement(react_1.default.Fragment, null,
372
- react_1.default.createElement("img", { src: generatedImageUrl && !isComparing ? generatedImageUrl : uploadedImage, alt: generatedImageUrl && !isComparing ? 'Generated avatar' : 'Uploaded photo', style: { width: '100%', objectFit: 'contain', maxHeight: '450px', borderRadius: '8px' } }),
373
- generatedImageUrl && (react_1.default.createElement("div", { style: {
374
- position: 'absolute', top: '16px', left: '16px',
375
- backgroundColor: isComparing ? 'rgba(0,0,0,0.6)' : mergedTheme.primaryColor,
376
- color: 'white', fontSize: '11px', fontWeight: 700,
377
- padding: '4px 10px', borderRadius: '9999px',
378
- transition: 'background-color 0.2s',
379
- } }, isComparing ? 'ORIGINAL' : 'RESULT')),
380
- !generatedImageUrl && (react_1.default.createElement("button", { onClick: handleRemoveImage, style: {
381
- position: 'absolute', top: '16px', right: '16px',
382
- width: '48px', height: '48px', backgroundColor: '#FF6B6B',
383
- borderRadius: '50%', border: 'none', cursor: 'pointer',
384
- display: 'flex', alignItems: 'center', justifyContent: 'center',
385
- boxShadow: '0 2px 8px rgba(0,0,0,0.2)',
386
- } },
387
- react_1.default.createElement("svg", { fill: "none", stroke: "white", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' } },
388
- react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" })))),
389
- generatedImageUrl && (react_1.default.createElement("button", { onMouseDown: () => setIsComparing(true), onMouseUp: () => setIsComparing(false), onMouseLeave: () => setIsComparing(false), onTouchStart: () => setIsComparing(true), onTouchEnd: () => setIsComparing(false), style: {
390
- position: 'absolute', bottom: '16px', left: '50%', transform: 'translateX(-50%)',
391
- backgroundColor: 'rgba(0,0,0,0.65)', color: 'white',
392
- fontWeight: 700, fontSize: '13px', padding: '10px 20px',
393
- borderRadius: '9999px', border: 'none', cursor: 'pointer',
394
- display: 'flex', alignItems: 'center', gap: '8px',
395
- backdropFilter: 'blur(4px)',
396
- userSelect: 'none',
397
- whiteSpace: 'nowrap',
398
- } },
399
- react_1.default.createElement("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '16px', height: '16px' } },
400
- react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" }),
401
- react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z" })),
402
- "Hold to compare")))) : (react_1.default.createElement("button", { onClick: handleUploadClick, style: {
403
- backgroundColor: mergedTheme.primaryColor, color: 'white',
404
- fontWeight: 700, fontSize: '18px', padding: '16px 32px',
405
- borderRadius: '9999px', border: 'none', cursor: 'pointer',
406
- display: 'flex', alignItems: 'center', gap: '12px',
407
- }, onMouseEnter: e => { e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || '#ff1600'; }, onMouseLeave: e => { e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500'; } },
408
- react_1.default.createElement("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' } },
409
- react_1.default.createElement("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" })),
410
- mergedTexts.uploadButton))),
411
- react_1.default.createElement("div", { style: { flex: '1 1 300px', display: 'flex', flexDirection: 'column', gap: '24px' } },
412
- react_1.default.createElement("div", null,
413
- react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: '8px', marginBottom: '16px' } },
414
- react_1.default.createElement("svg", { fill: "none", stroke: mergedTheme.primaryColor, viewBox: "0 0 24 24", style: { width: '24px', height: '24px' } },
415
- react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01" })),
416
- react_1.default.createElement("h3", { style: { fontSize: '20px', fontWeight: 700, color: mergedTheme.textColor, margin: 0 } }, mergedTexts.styleSectionTitle)),
417
- react_1.default.createElement("div", { className: "avatarai-styles-grid", style: { maxHeight: '480px', overflowY: 'auto', padding: '4px' } },
418
- react_1.default.createElement("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '12px' } }, styles.map((style) => (react_1.default.createElement("button", { key: style.id, onClick: () => setSelectedStyle(style.id), title: style.name, style: {
419
- position: 'relative', aspectRatio: '1 / 1', borderRadius: '12px',
420
- overflow: 'hidden', border: 'none', padding: 0, cursor: 'pointer',
421
- outline: selectedStyle === style.id ? `3px solid ${mergedTheme.primaryColor}` : '3px solid transparent',
422
- outlineOffset: '2px',
423
- transform: selectedStyle === style.id ? 'scale(1.03)' : 'scale(1)',
424
- transition: 'transform 0.2s, outline-color 0.2s',
425
- }, onMouseEnter: e => { if (selectedStyle !== style.id)
426
- e.currentTarget.style.transform = 'scale(1.03)'; }, onMouseLeave: e => { if (selectedStyle !== style.id)
427
- e.currentTarget.style.transform = 'scale(1)'; } },
428
- react_1.default.createElement("img", { src: style.image, alt: style.name, style: { width: '100%', height: '100%', objectFit: 'cover', display: 'block' } }))))))),
429
- react_1.default.createElement("div", { style: { display: 'flex', gap: '24px', flexWrap: 'wrap' } },
430
- react_1.default.createElement("div", { style: { flex: '1 1 140px' } },
431
- react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: '8px', marginBottom: '16px' } },
432
- react_1.default.createElement("svg", { fill: "none", stroke: mergedTheme.primaryColor, viewBox: "0 0 24 24", style: { width: '24px', height: '24px' } },
433
- react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" })),
434
- react_1.default.createElement("h3", { style: { fontSize: '18px', fontWeight: 700, color: mergedTheme.textColor, margin: 0 } }, mergedTexts.moodsTitle)),
435
- react_1.default.createElement("div", { style: { display: 'flex', gap: '8px' } }, moods.map((mood) => (react_1.default.createElement("button", { key: mood.id, onClick: () => setSelectedMood(mood.id), title: mood.name, style: {
436
- width: '40px', height: '40px', borderRadius: '50%',
437
- border: selectedMood === mood.id ? 'none' : `2px solid ${mergedTheme.primaryColor}`,
438
- backgroundColor: selectedMood === mood.id ? mergedTheme.primaryColor : 'white',
439
- padding: '8px', cursor: 'pointer',
440
- display: 'flex', alignItems: 'center', justifyContent: 'center',
441
- transform: selectedMood === mood.id ? 'scale(1.1)' : 'scale(1)',
442
- outline: selectedMood === mood.id ? `4px solid ${mergedTheme.primaryColor}44` : 'none',
443
- transition: 'all 0.2s',
444
- }, onMouseEnter: e => { e.currentTarget.style.transform = 'scale(1.1)'; }, onMouseLeave: e => { e.currentTarget.style.transform = selectedMood === mood.id ? 'scale(1.1)' : 'scale(1)'; } },
445
- react_1.default.createElement("img", { src: mood.icon, alt: mood.name, style: {
446
- width: '100%', height: '100%', objectFit: 'contain',
447
- filter: selectedMood === mood.id ? 'brightness(0) invert(1)' : 'none',
448
- } })))))),
449
- react_1.default.createElement("div", { style: { flex: '1 1 140px' } },
450
- react_1.default.createElement("div", { style: { display: 'flex', alignItems: 'center', gap: '8px', marginBottom: '16px' } },
451
- react_1.default.createElement("svg", { fill: "none", stroke: mergedTheme.primaryColor, viewBox: "0 0 24 24", style: { width: '24px', height: '24px' } },
452
- react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01" })),
453
- react_1.default.createElement("h3", { style: { fontSize: '18px', fontWeight: 700, color: mergedTheme.textColor, margin: 0 } }, mergedTexts.backgroundTitle)),
454
- react_1.default.createElement("input", { ref: colorPickerRef, type: "color", onChange: handleColorChange, style: { display: 'none' } }),
455
- react_1.default.createElement("div", { style: { display: 'flex', gap: '8px', alignItems: 'center', flexWrap: 'wrap' } },
456
- react_1.default.createElement("button", { onClick: handleColorPickerClick, title: "Select color", style: {
457
- width: '48px', height: '48px', borderRadius: '50%',
458
- border: '2px solid #d1d5db', backgroundColor: 'white', cursor: 'pointer',
459
- display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '8px',
460
- outline: selectedBgColor && selectedBgColor !== 'transparent' ? `4px solid ${mergedTheme.primaryColor}44` : 'none',
461
- transform: selectedBgColor && selectedBgColor !== 'transparent' ? 'scale(1.1)' : 'scale(1)',
462
- transition: 'all 0.2s',
463
- }, onMouseEnter: e => { e.currentTarget.style.transform = 'scale(1.1)'; }, onMouseLeave: e => { e.currentTarget.style.transform = selectedBgColor && selectedBgColor !== 'transparent' ? 'scale(1.1)' : 'scale(1)'; } },
464
- react_1.default.createElement("img", { src: "https://d2obs2d3lmpnq9.cloudfront.net/ADS/cmp%20color%20picker/ColorPicker_CONsombra%201%20%281%29.svg", alt: "Color Picker", style: { width: '32px', height: '32px', objectFit: 'contain' } })),
465
- recentColors.map((color, index) => (react_1.default.createElement("button", { key: index, onClick: () => handleRecentColorClick(color), title: `Recent color ${index + 1}`, style: {
466
- width: '48px', height: '48px', borderRadius: '50%',
467
- border: selectedBgColor === color ? `2px solid ${mergedTheme.primaryColor}` : '2px solid #d1d5db',
468
- backgroundColor: color, cursor: 'pointer',
469
- outline: selectedBgColor === color ? `4px solid ${mergedTheme.primaryColor}44` : 'none',
470
- transform: selectedBgColor === color ? 'scale(1.1)' : 'scale(1)',
471
- transition: 'all 0.2s',
472
- }, onMouseEnter: e => { e.currentTarget.style.transform = 'scale(1.1)'; }, onMouseLeave: e => { e.currentTarget.style.transform = selectedBgColor === color ? 'scale(1.1)' : 'scale(1)'; } }))),
473
- react_1.default.createElement("button", { onClick: handleTransparentClick, title: "Transparent", style: {
474
- width: '48px', height: '48px', borderRadius: '50%',
475
- border: selectedBgColor === 'transparent' ? `2px solid ${mergedTheme.primaryColor}` : '2px solid #d1d5db',
476
- backgroundImage: 'repeating-linear-gradient(45deg, #ddd 0, #ddd 1px, transparent 0, transparent 50%), repeating-linear-gradient(-45deg, #ddd 0, #ddd 1px, transparent 0, transparent 50%)',
477
- backgroundSize: '10px 10px', backgroundColor: '#fff', cursor: 'pointer',
478
- outline: selectedBgColor === 'transparent' ? `4px solid ${mergedTheme.primaryColor}44` : 'none',
479
- transform: selectedBgColor === 'transparent' ? 'scale(1.1)' : 'scale(1)',
480
- transition: 'all 0.2s',
481
- }, onMouseEnter: e => { e.currentTarget.style.transform = 'scale(1.1)'; }, onMouseLeave: e => { e.currentTarget.style.transform = selectedBgColor === 'transparent' ? 'scale(1.1)' : 'scale(1)'; } })))))),
482
- error && (react_1.default.createElement("div", { style: { padding: '12px', backgroundColor: '#fef2f2', border: '1px solid #fecaca', borderRadius: '8px', marginTop: '16px' } },
483
- react_1.default.createElement("p", { style: { color: '#dc2626', fontSize: '14px', margin: 0 } }, error))),
484
- react_1.default.createElement("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))', gap: '16px', marginTop: '32px' } },
485
- react_1.default.createElement("button", { onClick: handleStartAgain, disabled: !generatedResult, style: {
486
- backgroundColor: generatedResult ? mergedTheme.primaryColor : '#d1d5db',
487
- color: generatedResult ? 'white' : '#9ca3af',
488
- fontWeight: 700, fontSize: '18px', padding: '16px 32px',
489
- borderRadius: '9999px', border: 'none',
490
- cursor: generatedResult ? 'pointer' : 'not-allowed',
491
- display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '12px',
492
- }, onMouseEnter: e => { if (generatedResult)
493
- e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || '#ff1600'; }, onMouseLeave: e => { if (generatedResult)
494
- e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500'; } },
495
- react_1.default.createElement("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' } },
496
- react_1.default.createElement("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" })),
497
- mergedTexts.startAgainButton),
498
- react_1.default.createElement("button", { onClick: handleGenerate, disabled: !canGenerate, style: {
499
- backgroundColor: canGenerate ? '#FF6B6B' : '#d1d5db',
500
- color: canGenerate ? 'white' : '#9ca3af',
501
- fontWeight: 700, fontSize: '18px', padding: '16px 32px',
502
- borderRadius: '9999px', border: 'none',
503
- cursor: canGenerate ? 'pointer' : 'not-allowed',
504
- display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '12px',
505
- }, onMouseEnter: e => { if (canGenerate)
506
- e.currentTarget.style.backgroundColor = '#ff5252'; }, onMouseLeave: e => { if (canGenerate)
507
- e.currentTarget.style.backgroundColor = '#FF6B6B'; } }, isGenerating ? (react_1.default.createElement(react_1.default.Fragment, null,
508
- react_1.default.createElement("svg", { style: { width: '24px', height: '24px' }, className: "animate-spin", fill: "none", viewBox: "0 0 24 24" },
509
- react_1.default.createElement("circle", { style: { opacity: 0.25 }, cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }),
510
- react_1.default.createElement("path", { style: { opacity: 0.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" })),
511
- mergedTexts.generatingButton)) : (react_1.default.createElement(react_1.default.Fragment, null,
512
- react_1.default.createElement("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' } },
513
- react_1.default.createElement("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 10V3L4 14h7v7l9-11h-7z" })),
514
- mergedTexts.generateButton))),
515
- react_1.default.createElement("button", { onClick: handleDownload, disabled: !generatedImageUrl, style: {
516
- backgroundColor: generatedImageUrl ? mergedTheme.primaryColor : '#d1d5db',
517
- color: generatedImageUrl ? 'white' : '#9ca3af',
518
- fontWeight: 700, fontSize: '18px', padding: '16px 32px',
519
- borderRadius: '9999px', border: 'none',
520
- cursor: generatedImageUrl ? 'pointer' : 'not-allowed',
521
- display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '12px',
522
- }, onMouseEnter: e => { if (generatedImageUrl)
523
- e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || '#ff1600'; }, onMouseLeave: e => { if (generatedImageUrl)
524
- e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500'; } },
525
- react_1.default.createElement("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' } },
526
- react_1.default.createElement("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" })),
527
- mergedTexts.downloadButton))))));
319
+ }, children: [(0, jsx_runtime_1.jsx)("h2", { style: { fontSize: 'clamp(24px, 4vw, 36px)', fontWeight: 700, color: mergedTheme.textColor, marginBottom: '32px' }, children: mergedTexts.styleTitle }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: '32px', flexWrap: 'wrap' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: {
320
+ flex: '1 1 300px',
321
+ minHeight: '500px',
322
+ border: `2px dashed ${generatedImageUrl ? mergedTheme.primaryColor : '#d1d5db'}`,
323
+ borderRadius: '8px',
324
+ display: 'flex',
325
+ flexDirection: 'column',
326
+ alignItems: 'center',
327
+ justifyContent: 'center',
328
+ position: 'relative',
329
+ padding: '32px',
330
+ backgroundColor: '#fff',
331
+ transition: 'border-color 0.3s',
332
+ }, children: [(0, jsx_runtime_1.jsx)("input", { ref: fileInputRef, type: "file", accept: "image/*", onChange: handleFileChange, style: { display: 'none' } }), uploadedImage ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("img", { src: generatedImageUrl && !isComparing ? generatedImageUrl : uploadedImage, alt: generatedImageUrl && !isComparing ? 'Generated avatar' : 'Uploaded photo', style: { width: '100%', objectFit: 'contain', maxHeight: '450px', borderRadius: '8px' } }), generatedImageUrl && ((0, jsx_runtime_1.jsx)("div", { style: {
333
+ position: 'absolute', top: '16px', left: '16px',
334
+ backgroundColor: isComparing ? 'rgba(0,0,0,0.6)' : mergedTheme.primaryColor,
335
+ color: 'white', fontSize: '11px', fontWeight: 700,
336
+ padding: '4px 10px', borderRadius: '9999px',
337
+ transition: 'background-color 0.2s',
338
+ }, children: isComparing ? 'ORIGINAL' : 'RESULT' })), !generatedImageUrl && ((0, jsx_runtime_1.jsx)("button", { onClick: handleRemoveImage, style: {
339
+ position: 'absolute', top: '16px', right: '16px',
340
+ width: '48px', height: '48px', backgroundColor: '#FF6B6B',
341
+ borderRadius: '50%', border: 'none', cursor: 'pointer',
342
+ display: 'flex', alignItems: 'center', justifyContent: 'center',
343
+ boxShadow: '0 2px 8px rgba(0,0,0,0.2)',
344
+ }, children: (0, jsx_runtime_1.jsx)("svg", { fill: "none", stroke: "white", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' }, children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M6 18L18 6M6 6l12 12" }) }) })), generatedImageUrl && ((0, jsx_runtime_1.jsxs)("button", { onMouseDown: () => setIsComparing(true), onMouseUp: () => setIsComparing(false), onMouseLeave: () => setIsComparing(false), onTouchStart: () => setIsComparing(true), onTouchEnd: () => setIsComparing(false), style: {
345
+ position: 'absolute', bottom: '16px', left: '50%', transform: 'translateX(-50%)',
346
+ backgroundColor: 'rgba(0,0,0,0.65)', color: 'white',
347
+ fontWeight: 700, fontSize: '13px', padding: '10px 20px',
348
+ borderRadius: '9999px', border: 'none', cursor: 'pointer',
349
+ display: 'flex', alignItems: 'center', gap: '8px',
350
+ backdropFilter: 'blur(4px)',
351
+ userSelect: 'none',
352
+ whiteSpace: 'nowrap',
353
+ }, children: [(0, jsx_runtime_1.jsxs)("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '16px', height: '16px' }, children: [(0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M15 12a3 3 0 11-6 0 3 3 0 016 0z" }), (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M2.458 12C3.732 7.943 7.523 5 12 5c4.478 0 8.268 2.943 9.542 7-1.274 4.057-5.064 7-9.542 7-4.477 0-8.268-2.943-9.542-7z" })] }), "Hold to compare"] }))] })) : ((0, jsx_runtime_1.jsxs)("button", { onClick: handleUploadClick, style: {
354
+ backgroundColor: mergedTheme.primaryColor, color: 'white',
355
+ fontWeight: 700, fontSize: '18px', padding: '16px 32px',
356
+ borderRadius: '9999px', border: 'none', cursor: 'pointer',
357
+ display: 'flex', alignItems: 'center', gap: '12px',
358
+ }, onMouseEnter: e => { e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || '#ff1600'; }, onMouseLeave: e => { e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500'; }, children: [(0, jsx_runtime_1.jsx)("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' }, children: (0, jsx_runtime_1.jsx)("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" }) }), mergedTexts.uploadButton] }))] }), (0, jsx_runtime_1.jsxs)("div", { style: { flex: '1 1 300px', display: 'flex', flexDirection: 'column', gap: '24px' }, children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: '8px', marginBottom: '16px' }, children: [(0, jsx_runtime_1.jsx)("svg", { fill: "none", stroke: mergedTheme.primaryColor, viewBox: "0 0 24 24", style: { width: '24px', height: '24px' }, children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01" }) }), (0, jsx_runtime_1.jsx)("h3", { style: { fontSize: '20px', fontWeight: 700, color: mergedTheme.textColor, margin: 0 }, children: mergedTexts.styleSectionTitle })] }), (0, jsx_runtime_1.jsx)("div", { className: "avatarai-styles-grid", style: { maxHeight: '480px', overflowY: 'auto', padding: '4px' }, children: (0, jsx_runtime_1.jsx)("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(3, 1fr)', gap: '12px' }, children: styles.map((style) => ((0, jsx_runtime_1.jsx)("button", { onClick: () => setSelectedStyle(style.id), title: style.name, style: {
359
+ position: 'relative', aspectRatio: '1 / 1', borderRadius: '12px',
360
+ overflow: 'hidden', border: 'none', padding: 0, cursor: 'pointer',
361
+ outline: selectedStyle === style.id ? `3px solid ${mergedTheme.primaryColor}` : '3px solid transparent',
362
+ outlineOffset: '2px',
363
+ transform: selectedStyle === style.id ? 'scale(1.03)' : 'scale(1)',
364
+ transition: 'transform 0.2s, outline-color 0.2s',
365
+ }, onMouseEnter: e => { if (selectedStyle !== style.id)
366
+ e.currentTarget.style.transform = 'scale(1.03)'; }, onMouseLeave: e => { if (selectedStyle !== style.id)
367
+ e.currentTarget.style.transform = 'scale(1)'; }, children: (0, jsx_runtime_1.jsx)("img", { src: style.image, alt: style.name, style: { width: '100%', height: '100%', objectFit: 'cover', display: 'block' } }) }, style.id))) }) })] }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: '24px', flexWrap: 'wrap' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { flex: '1 1 140px' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: '8px', marginBottom: '16px' }, children: [(0, jsx_runtime_1.jsx)("svg", { fill: "none", stroke: mergedTheme.primaryColor, viewBox: "0 0 24 24", style: { width: '24px', height: '24px' }, children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M14.828 14.828a4 4 0 01-5.656 0M9 10h.01M15 10h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z" }) }), (0, jsx_runtime_1.jsx)("h3", { style: { fontSize: '18px', fontWeight: 700, color: mergedTheme.textColor, margin: 0 }, children: mergedTexts.moodsTitle })] }), (0, jsx_runtime_1.jsx)("div", { style: { display: 'flex', gap: '8px' }, children: moods.map((mood) => ((0, jsx_runtime_1.jsx)("button", { onClick: () => setSelectedMood(mood.id), title: mood.name, style: {
368
+ width: '40px', height: '40px', borderRadius: '50%',
369
+ border: selectedMood === mood.id ? 'none' : `2px solid ${mergedTheme.primaryColor}`,
370
+ backgroundColor: selectedMood === mood.id ? mergedTheme.primaryColor : 'white',
371
+ padding: '8px', cursor: 'pointer',
372
+ display: 'flex', alignItems: 'center', justifyContent: 'center',
373
+ transform: selectedMood === mood.id ? 'scale(1.1)' : 'scale(1)',
374
+ outline: selectedMood === mood.id ? `4px solid ${mergedTheme.primaryColor}44` : 'none',
375
+ transition: 'all 0.2s',
376
+ }, onMouseEnter: e => { e.currentTarget.style.transform = 'scale(1.1)'; }, onMouseLeave: e => { e.currentTarget.style.transform = selectedMood === mood.id ? 'scale(1.1)' : 'scale(1)'; }, children: (0, jsx_runtime_1.jsx)("img", { src: mood.icon, alt: mood.name, style: {
377
+ width: '100%', height: '100%', objectFit: 'contain',
378
+ filter: selectedMood === mood.id ? 'brightness(0) invert(1)' : 'none',
379
+ } }) }, mood.id))) })] }), (0, jsx_runtime_1.jsxs)("div", { style: { flex: '1 1 140px' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', alignItems: 'center', gap: '8px', marginBottom: '16px' }, children: [(0, jsx_runtime_1.jsx)("svg", { fill: "none", stroke: mergedTheme.primaryColor, viewBox: "0 0 24 24", style: { width: '24px', height: '24px' }, children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M7 21a4 4 0 01-4-4V5a2 2 0 012-2h4a2 2 0 012 2v12a4 4 0 01-4 4zm0 0h12a2 2 0 002-2v-4a2 2 0 00-2-2h-2.343M11 7.343l1.657-1.657a2 2 0 012.828 0l2.829 2.829a2 2 0 010 2.828l-8.486 8.485M7 17h.01" }) }), (0, jsx_runtime_1.jsx)("h3", { style: { fontSize: '18px', fontWeight: 700, color: mergedTheme.textColor, margin: 0 }, children: mergedTexts.backgroundTitle })] }), (0, jsx_runtime_1.jsx)("input", { ref: colorPickerRef, type: "color", onChange: handleColorChange, style: { display: 'none' } }), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'flex', gap: '8px', alignItems: 'center', flexWrap: 'wrap' }, children: [(0, jsx_runtime_1.jsx)("button", { onClick: handleColorPickerClick, title: "Select color", style: {
380
+ width: '48px', height: '48px', borderRadius: '50%',
381
+ border: '2px solid #d1d5db', backgroundColor: 'white', cursor: 'pointer',
382
+ display: 'flex', alignItems: 'center', justifyContent: 'center', padding: '8px',
383
+ outline: selectedBgColor && selectedBgColor !== 'transparent' ? `4px solid ${mergedTheme.primaryColor}44` : 'none',
384
+ transform: selectedBgColor && selectedBgColor !== 'transparent' ? 'scale(1.1)' : 'scale(1)',
385
+ transition: 'all 0.2s',
386
+ }, onMouseEnter: e => { e.currentTarget.style.transform = 'scale(1.1)'; }, onMouseLeave: e => { e.currentTarget.style.transform = selectedBgColor && selectedBgColor !== 'transparent' ? 'scale(1.1)' : 'scale(1)'; }, children: (0, jsx_runtime_1.jsx)("img", { src: "https://d2obs2d3lmpnq9.cloudfront.net/ADS/cmp%20color%20picker/ColorPicker_CONsombra%201%20%281%29.svg", alt: "Color Picker", style: { width: '32px', height: '32px', objectFit: 'contain' } }) }), recentColors.map((color, index) => ((0, jsx_runtime_1.jsx)("button", { onClick: () => handleRecentColorClick(color), title: `Recent color ${index + 1}`, style: {
387
+ width: '48px', height: '48px', borderRadius: '50%',
388
+ border: selectedBgColor === color ? `2px solid ${mergedTheme.primaryColor}` : '2px solid #d1d5db',
389
+ backgroundColor: color, cursor: 'pointer',
390
+ outline: selectedBgColor === color ? `4px solid ${mergedTheme.primaryColor}44` : 'none',
391
+ transform: selectedBgColor === color ? 'scale(1.1)' : 'scale(1)',
392
+ transition: 'all 0.2s',
393
+ }, onMouseEnter: e => { e.currentTarget.style.transform = 'scale(1.1)'; }, onMouseLeave: e => { e.currentTarget.style.transform = selectedBgColor === color ? 'scale(1.1)' : 'scale(1)'; } }, index))), (0, jsx_runtime_1.jsx)("button", { onClick: handleTransparentClick, title: "Transparent", style: {
394
+ width: '48px', height: '48px', borderRadius: '50%',
395
+ border: selectedBgColor === 'transparent' ? `2px solid ${mergedTheme.primaryColor}` : '2px solid #d1d5db',
396
+ backgroundImage: 'repeating-linear-gradient(45deg, #ddd 0, #ddd 1px, transparent 0, transparent 50%), repeating-linear-gradient(-45deg, #ddd 0, #ddd 1px, transparent 0, transparent 50%)',
397
+ backgroundSize: '10px 10px', backgroundColor: '#fff', cursor: 'pointer',
398
+ outline: selectedBgColor === 'transparent' ? `4px solid ${mergedTheme.primaryColor}44` : 'none',
399
+ transform: selectedBgColor === 'transparent' ? 'scale(1.1)' : 'scale(1)',
400
+ transition: 'all 0.2s',
401
+ }, onMouseEnter: e => { e.currentTarget.style.transform = 'scale(1.1)'; }, onMouseLeave: e => { e.currentTarget.style.transform = selectedBgColor === 'transparent' ? 'scale(1.1)' : 'scale(1)'; } })] })] })] })] })] }), error && ((0, jsx_runtime_1.jsx)("div", { style: { padding: '12px', backgroundColor: '#fef2f2', border: '1px solid #fecaca', borderRadius: '8px', marginTop: '16px' }, children: (0, jsx_runtime_1.jsx)("p", { style: { color: '#dc2626', fontSize: '14px', margin: 0 }, children: error }) })), (0, jsx_runtime_1.jsxs)("div", { style: { display: 'grid', gridTemplateColumns: 'repeat(auto-fit, minmax(200px, 1fr))', gap: '16px', marginTop: '32px' }, children: [(0, jsx_runtime_1.jsxs)("button", { onClick: handleStartAgain, disabled: !generatedResult, style: {
402
+ backgroundColor: generatedResult ? mergedTheme.primaryColor : '#d1d5db',
403
+ color: generatedResult ? 'white' : '#9ca3af',
404
+ fontWeight: 700, fontSize: '18px', padding: '16px 32px',
405
+ borderRadius: '9999px', border: 'none',
406
+ cursor: generatedResult ? 'pointer' : 'not-allowed',
407
+ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '12px',
408
+ }, onMouseEnter: e => { if (generatedResult)
409
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || '#ff1600'; }, onMouseLeave: e => { if (generatedResult)
410
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500'; }, children: [(0, jsx_runtime_1.jsx)("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' }, children: (0, jsx_runtime_1.jsx)("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" }) }), mergedTexts.startAgainButton] }), (0, jsx_runtime_1.jsx)("button", { onClick: handleGenerate, disabled: !canGenerate, style: {
411
+ backgroundColor: canGenerate ? '#FF6B6B' : '#d1d5db',
412
+ color: canGenerate ? 'white' : '#9ca3af',
413
+ fontWeight: 700, fontSize: '18px', padding: '16px 32px',
414
+ borderRadius: '9999px', border: 'none',
415
+ cursor: canGenerate ? 'pointer' : 'not-allowed',
416
+ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '12px',
417
+ }, onMouseEnter: e => { if (canGenerate)
418
+ e.currentTarget.style.backgroundColor = '#ff5252'; }, onMouseLeave: e => { if (canGenerate)
419
+ e.currentTarget.style.backgroundColor = '#FF6B6B'; }, children: isGenerating ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("svg", { style: { width: '24px', height: '24px' }, className: "animate-spin", fill: "none", viewBox: "0 0 24 24", children: [(0, jsx_runtime_1.jsx)("circle", { style: { opacity: 0.25 }, cx: "12", cy: "12", r: "10", stroke: "currentColor", strokeWidth: "4" }), (0, jsx_runtime_1.jsx)("path", { style: { opacity: 0.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" })] }), mergedTexts.generatingButton] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' }, children: (0, jsx_runtime_1.jsx)("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: 2, d: "M13 10V3L4 14h7v7l9-11h-7z" }) }), mergedTexts.generateButton] })) }), (0, jsx_runtime_1.jsxs)("button", { onClick: handleDownload, disabled: !generatedImageUrl, style: {
420
+ backgroundColor: generatedImageUrl ? mergedTheme.primaryColor : '#d1d5db',
421
+ color: generatedImageUrl ? 'white' : '#9ca3af',
422
+ fontWeight: 700, fontSize: '18px', padding: '16px 32px',
423
+ borderRadius: '9999px', border: 'none',
424
+ cursor: generatedImageUrl ? 'pointer' : 'not-allowed',
425
+ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: '12px',
426
+ }, onMouseEnter: e => { if (generatedImageUrl)
427
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryHoverColor || '#ff1600'; }, onMouseLeave: e => { if (generatedImageUrl)
428
+ e.currentTarget.style.backgroundColor = mergedTheme.primaryColor || '#FF5500'; }, children: [(0, jsx_runtime_1.jsx)("svg", { fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", style: { width: '24px', height: '24px' }, children: (0, jsx_runtime_1.jsx)("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" }) }), mergedTexts.downloadButton] })] })] }) }) }));
528
429
  }
529
430
  function AvatarAIForYouCard({ title, description, ctaText, ctaHref, desktopImage, mobileImage, imageAlt = '', imageOnRight = true, titleColor = '#001B5E', descriptionColor = '#001B5E', ctaColor = '#FF5500', ctaHoverColor = '#ff1600', backgroundColor = '#F9F9F9', paddingClass = 'py-12 md:py-16 lg:py-20', }) {
530
431
  const effectiveMobileImage = mobileImage || desktopImage;
531
- const imageColumn = (react_1.default.createElement("div", { className: `${imageOnRight ? '' : 'order-2 md:order-1'} overflow-hidden` },
532
- react_1.default.createElement("img", { src: desktopImage, alt: imageAlt, className: "hidden md:block w-full h-auto object-contain" }),
533
- react_1.default.createElement("img", { src: effectiveMobileImage, alt: imageAlt, className: "block md:hidden w-full h-auto object-contain" })));
534
- const contentColumn = (react_1.default.createElement("div", { className: `${imageOnRight ? '' : 'order-1 md:order-2'} text-center md:text-left` },
535
- react_1.default.createElement("h3", { className: "text-2xl md:text-3xl font-bold mb-4 md:mb-6", style: { color: titleColor } }, title),
536
- react_1.default.createElement("p", { className: "text-base md:text-lg mb-6 md:mb-8 leading-relaxed", style: { color: descriptionColor } }, description),
537
- react_1.default.createElement("a", { href: ctaHref, className: "inline-block text-white font-bold text-lg px-8 py-4 rounded-full transition-colors duration-300 cursor-pointer", style: { backgroundColor: ctaColor }, onMouseEnter: (e) => { e.currentTarget.style.backgroundColor = ctaHoverColor; }, onMouseLeave: (e) => { e.currentTarget.style.backgroundColor = ctaColor; } }, ctaText)));
538
- return (react_1.default.createElement("section", { className: "w-full", style: { backgroundColor } },
539
- react_1.default.createElement("div", { className: `container mx-auto px-4 ${paddingClass}` },
540
- react_1.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-12 lg:gap-16 items-start" }, imageOnRight ? (react_1.default.createElement(react_1.default.Fragment, null,
541
- contentColumn,
542
- imageColumn)) : (react_1.default.createElement(react_1.default.Fragment, null,
543
- imageColumn,
544
- contentColumn))))));
432
+ const imageColumn = ((0, jsx_runtime_1.jsxs)("div", { className: `${imageOnRight ? '' : 'order-2 md:order-1'} overflow-hidden`, children: [(0, jsx_runtime_1.jsx)("img", { src: desktopImage, alt: imageAlt, className: "hidden md:block w-full h-auto object-contain" }), (0, jsx_runtime_1.jsx)("img", { src: effectiveMobileImage, alt: imageAlt, className: "block md:hidden w-full h-auto object-contain" })] }));
433
+ const contentColumn = ((0, jsx_runtime_1.jsxs)("div", { className: `${imageOnRight ? '' : 'order-1 md:order-2'} text-center md:text-left`, children: [(0, jsx_runtime_1.jsx)("h3", { className: "text-2xl md:text-3xl font-bold mb-4 md:mb-6", style: { color: titleColor }, children: title }), (0, jsx_runtime_1.jsx)("p", { className: "text-base md:text-lg mb-6 md:mb-8 leading-relaxed", style: { color: descriptionColor }, children: description }), (0, jsx_runtime_1.jsx)("a", { href: ctaHref, className: "inline-block text-white font-bold text-lg px-8 py-4 rounded-full transition-colors duration-300 cursor-pointer", style: { backgroundColor: ctaColor }, onMouseEnter: (e) => { e.currentTarget.style.backgroundColor = ctaHoverColor; }, onMouseLeave: (e) => { e.currentTarget.style.backgroundColor = ctaColor; }, children: ctaText })] }));
434
+ return ((0, jsx_runtime_1.jsx)("section", { className: "w-full", style: { backgroundColor }, children: (0, jsx_runtime_1.jsx)("div", { className: `container mx-auto px-4 ${paddingClass}`, children: (0, jsx_runtime_1.jsx)("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-8 md:gap-12 lg:gap-16 items-start", children: imageOnRight ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [contentColumn, imageColumn] })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [imageColumn, contentColumn] })) }) }) }));
545
435
  }
546
436
  function AvatarAIPage({ componentProps, heroDesktopImage, heroMobileImage, heroAlt = '', backgroundColor = '#F9F9F9', componentPaddingClass = 'py-8 md:py-12', }) {
547
437
  const effectiveHeroMobile = heroMobileImage || heroDesktopImage;
548
- return (react_1.default.createElement("div", { style: { backgroundColor } },
549
- heroDesktopImage && (react_1.default.createElement("section", { style: { width: '100%' } },
550
- react_1.default.createElement("img", { src: heroDesktopImage, alt: heroAlt, style: { width: '100%', height: 'auto' }, className: "hidden md:block" }),
551
- react_1.default.createElement("img", { src: effectiveHeroMobile, alt: heroAlt, style: { width: '100%', height: 'auto' }, className: "block md:hidden" }))),
552
- react_1.default.createElement("section", { className: `w-full ${componentPaddingClass}`, style: { backgroundColor } },
553
- react_1.default.createElement(AvatarAI, Object.assign({}, componentProps)))));
438
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { backgroundColor }, children: [heroDesktopImage && ((0, jsx_runtime_1.jsxs)("section", { style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)("img", { src: heroDesktopImage, alt: heroAlt, style: { width: '100%', height: 'auto' }, className: "hidden md:block" }), (0, jsx_runtime_1.jsx)("img", { src: effectiveHeroMobile, alt: heroAlt, style: { width: '100%', height: 'auto' }, className: "block md:hidden" })] })), (0, jsx_runtime_1.jsx)("section", { className: `w-full ${componentPaddingClass}`, style: { backgroundColor }, children: (0, jsx_runtime_1.jsx)(AvatarAI, Object.assign({}, componentProps)) })] }));
554
439
  }
555
440
  exports.default = AvatarAI;
556
441
  //# sourceMappingURL=AvatarAI.js.map