webs-sdk 0.18.25 → 0.18.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (218) hide show
  1. package/README.md +1 -1
  2. package/dist/components/ARFilters/ARFilters.d.ts +2 -1
  3. package/dist/components/ARFilters/ARFilters.d.ts.map +1 -1
  4. package/dist/components/ARFilters/ARFilters.js +67 -7
  5. package/dist/components/ARFilters/ARFilters.js.map +1 -1
  6. package/dist/components/ARFilters/FilterCarousel.d.ts +2 -1
  7. package/dist/components/ARFilters/FilterCarousel.d.ts.map +1 -1
  8. package/dist/components/ARFilters/FilterCarousel.js +58 -10
  9. package/dist/components/ARFilters/FilterCarousel.js.map +1 -1
  10. package/dist/components/ARFilters/Popups.d.ts +4 -3
  11. package/dist/components/ARFilters/Popups.d.ts.map +1 -1
  12. package/dist/components/ARFilters/Popups.js +23 -5
  13. package/dist/components/ARFilters/Popups.js.map +1 -1
  14. package/dist/components/AvatarAI.d.ts +4 -3
  15. package/dist/components/AvatarAI.d.ts.map +1 -1
  16. package/dist/components/AvatarAI.js +232 -117
  17. package/dist/components/AvatarAI.js.map +1 -1
  18. package/dist/components/CookieConsent/CookieConsent.d.ts +2 -1
  19. package/dist/components/CookieConsent/CookieConsent.d.ts.map +1 -1
  20. package/dist/components/CookieConsent/CookieConsent.js +66 -4
  21. package/dist/components/CookieConsent/CookieConsent.js.map +1 -1
  22. package/dist/components/CreativeFaceSwap.d.ts +4 -3
  23. package/dist/components/CreativeFaceSwap.d.ts.map +1 -1
  24. package/dist/components/CreativeFaceSwap.js +203 -56
  25. package/dist/components/CreativeFaceSwap.js.map +1 -1
  26. package/dist/components/MemeGenerator.d.ts +3 -2
  27. package/dist/components/MemeGenerator.d.ts.map +1 -1
  28. package/dist/components/MemeGenerator.js +162 -62
  29. package/dist/components/MemeGenerator.js.map +1 -1
  30. package/dist/components/Quiz.d.ts +3 -2
  31. package/dist/components/Quiz.d.ts.map +1 -1
  32. package/dist/components/Quiz.js +345 -260
  33. package/dist/components/Quiz.js.map +1 -1
  34. package/dist/components/Ringtone.d.ts +3 -2
  35. package/dist/components/Ringtone.d.ts.map +1 -1
  36. package/dist/components/Ringtone.js +78 -17
  37. package/dist/components/Ringtone.js.map +1 -1
  38. package/dist/components/SpinningWheel/SpinningWheel.d.ts +2 -1
  39. package/dist/components/SpinningWheel/SpinningWheel.d.ts.map +1 -1
  40. package/dist/components/SpinningWheel/SpinningWheel.js +427 -307
  41. package/dist/components/SpinningWheel/SpinningWheel.js.map +1 -1
  42. package/dist/components/Stickers.d.ts +3 -2
  43. package/dist/components/Stickers.d.ts.map +1 -1
  44. package/dist/components/Stickers.js +164 -108
  45. package/dist/components/Stickers.js.map +1 -1
  46. package/dist/components/Wallpapers.d.ts +4 -3
  47. package/dist/components/Wallpapers.d.ts.map +1 -1
  48. package/dist/components/Wallpapers.js +225 -162
  49. package/dist/components/Wallpapers.js.map +1 -1
  50. package/dist/components/WallpapersName.d.ts +5 -4
  51. package/dist/components/WallpapersName.d.ts.map +1 -1
  52. package/dist/components/WallpapersName.js +180 -98
  53. package/dist/components/WallpapersName.js.map +1 -1
  54. package/dist/components/esports/live/EsportsLive.d.ts +2 -1
  55. package/dist/components/esports/live/EsportsLive.d.ts.map +1 -1
  56. package/dist/components/esports/live/EsportsLive.js +93 -16
  57. package/dist/components/esports/live/EsportsLive.js.map +1 -1
  58. package/dist/components/esports/news/EsportsNews.d.ts +2 -1
  59. package/dist/components/esports/news/EsportsNews.d.ts.map +1 -1
  60. package/dist/components/esports/news/EsportsNews.js +55 -9
  61. package/dist/components/esports/news/EsportsNews.js.map +1 -1
  62. package/dist/components/esports/news/EsportsNewsDetail.d.ts +2 -1
  63. package/dist/components/esports/news/EsportsNewsDetail.d.ts.map +1 -1
  64. package/dist/components/esports/news/EsportsNewsDetail.js +36 -5
  65. package/dist/components/esports/news/EsportsNewsDetail.js.map +1 -1
  66. package/dist/components/esports/videos/EsportsVideos.d.ts +2 -1
  67. package/dist/components/esports/videos/EsportsVideos.d.ts.map +1 -1
  68. package/dist/components/esports/videos/EsportsVideos.js +67 -9
  69. package/dist/components/esports/videos/EsportsVideos.js.map +1 -1
  70. package/dist/components/ui/VideoPlayer.d.ts +2 -1
  71. package/dist/components/ui/VideoPlayer.d.ts.map +1 -1
  72. package/dist/components/ui/VideoPlayer.js +61 -5
  73. package/dist/components/ui/VideoPlayer.js.map +1 -1
  74. package/dist/index.d.ts +3 -1
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +49 -3
  77. package/dist/index.js.map +1 -1
  78. package/dist/libraries/networking.d.ts +2 -0
  79. package/dist/libraries/networking.d.ts.map +1 -1
  80. package/dist/libraries/networking.js +12 -0
  81. package/dist/libraries/networking.js.map +1 -1
  82. package/dist/libraries/session.d.ts +10 -1
  83. package/dist/libraries/session.d.ts.map +1 -1
  84. package/dist/libraries/session.js +54 -1
  85. package/dist/libraries/session.js.map +1 -1
  86. package/dist/libraries/utils.d.ts +0 -2
  87. package/dist/libraries/utils.d.ts.map +1 -1
  88. package/dist/libraries/utils.js +0 -6
  89. package/dist/libraries/utils.js.map +1 -1
  90. package/package.json +6 -40
  91. package/dist/components/ui/accordion.d.ts +0 -8
  92. package/dist/components/ui/accordion.d.ts.map +0 -1
  93. package/dist/components/ui/accordion.js +0 -70
  94. package/dist/components/ui/accordion.js.map +0 -1
  95. package/dist/components/ui/alert-dialog.d.ts +0 -16
  96. package/dist/components/ui/alert-dialog.d.ts.map +0 -1
  97. package/dist/components/ui/alert-dialog.js +0 -87
  98. package/dist/components/ui/alert-dialog.js.map +0 -1
  99. package/dist/components/ui/alert.d.ts +0 -9
  100. package/dist/components/ui/alert.d.ts.map +0 -1
  101. package/dist/components/ui/alert.js +0 -21
  102. package/dist/components/ui/alert.js.map +0 -1
  103. package/dist/components/ui/aspect-ratio.d.ts +0 -5
  104. package/dist/components/ui/aspect-ratio.d.ts.map +0 -1
  105. package/dist/components/ui/aspect-ratio.js +0 -43
  106. package/dist/components/ui/aspect-ratio.js.map +0 -1
  107. package/dist/components/ui/avatar.d.ts +0 -12
  108. package/dist/components/ui/avatar.d.ts.map +0 -1
  109. package/dist/components/ui/avatar.js +0 -75
  110. package/dist/components/ui/avatar.js.map +0 -1
  111. package/dist/components/ui/badge.d.ts +0 -6
  112. package/dist/components/ui/badge.d.ts.map +0 -1
  113. package/dist/components/ui/badge.js +0 -23
  114. package/dist/components/ui/badge.js.map +0 -1
  115. package/dist/components/ui/breadcrumb.d.ts +0 -14
  116. package/dist/components/ui/breadcrumb.d.ts.map +0 -1
  117. package/dist/components/ui/breadcrumb.js +0 -48
  118. package/dist/components/ui/breadcrumb.js.map +0 -1
  119. package/dist/components/ui/button-group.d.ts +0 -12
  120. package/dist/components/ui/button-group.d.ts.map +0 -1
  121. package/dist/components/ui/button-group.js +0 -32
  122. package/dist/components/ui/button-group.js.map +0 -1
  123. package/dist/components/ui/button.d.ts +0 -7
  124. package/dist/components/ui/button.d.ts.map +0 -1
  125. package/dist/components/ui/button.js +0 -58
  126. package/dist/components/ui/button.js.map +0 -1
  127. package/dist/components/ui/cards.d.ts +0 -12
  128. package/dist/components/ui/cards.d.ts.map +0 -1
  129. package/dist/components/ui/cards.js +0 -44
  130. package/dist/components/ui/cards.js.map +0 -1
  131. package/dist/components/ui/carousel.d.ts +0 -28
  132. package/dist/components/ui/carousel.d.ts.map +0 -1
  133. package/dist/components/ui/carousel.js +0 -136
  134. package/dist/components/ui/carousel.js.map +0 -1
  135. package/dist/components/ui/checkbox.d.ts +0 -5
  136. package/dist/components/ui/checkbox.d.ts.map +0 -1
  137. package/dist/components/ui/checkbox.js +0 -44
  138. package/dist/components/ui/checkbox.js.map +0 -1
  139. package/dist/components/ui/collapsible.d.ts +0 -7
  140. package/dist/components/ui/collapsible.d.ts.map +0 -1
  141. package/dist/components/ui/collapsible.js +0 -64
  142. package/dist/components/ui/collapsible.js.map +0 -1
  143. package/dist/components/ui/context-menu.d.ts +0 -30
  144. package/dist/components/ui/context-menu.d.ts.map +0 -1
  145. package/dist/components/ui/context-menu.js +0 -115
  146. package/dist/components/ui/context-menu.js.map +0 -1
  147. package/dist/components/ui/dialog.d.ts +0 -14
  148. package/dist/components/ui/dialog.d.ts.map +0 -1
  149. package/dist/components/ui/dialog.js +0 -79
  150. package/dist/components/ui/dialog.js.map +0 -1
  151. package/dist/components/ui/dropdown-menu.d.ts +0 -19
  152. package/dist/components/ui/dropdown-menu.d.ts.map +0 -1
  153. package/dist/components/ui/dropdown-menu.js +0 -125
  154. package/dist/components/ui/dropdown-menu.js.map +0 -1
  155. package/dist/components/ui/dropdown.d.ts +0 -19
  156. package/dist/components/ui/dropdown.d.ts.map +0 -1
  157. package/dist/components/ui/dropdown.js +0 -99
  158. package/dist/components/ui/dropdown.js.map +0 -1
  159. package/dist/components/ui/field.d.ts +0 -24
  160. package/dist/components/ui/field.d.ts.map +0 -1
  161. package/dist/components/ui/field.js +0 -62
  162. package/dist/components/ui/field.js.map +0 -1
  163. package/dist/components/ui/hover-card.d.ts +0 -7
  164. package/dist/components/ui/hover-card.d.ts.map +0 -1
  165. package/dist/components/ui/hover-card.js +0 -51
  166. package/dist/components/ui/hover-card.js.map +0 -1
  167. package/dist/components/ui/index.d.ts +0 -32
  168. package/dist/components/ui/index.d.ts.map +0 -1
  169. package/dist/components/ui/index.js +0 -48
  170. package/dist/components/ui/index.js.map +0 -1
  171. package/dist/components/ui/input-group.d.ts +0 -13
  172. package/dist/components/ui/input-group.d.ts.map +0 -1
  173. package/dist/components/ui/input-group.js +0 -50
  174. package/dist/components/ui/input-group.js.map +0 -1
  175. package/dist/components/ui/input.d.ts +0 -4
  176. package/dist/components/ui/input.d.ts.map +0 -1
  177. package/dist/components/ui/input.js +0 -8
  178. package/dist/components/ui/input.js.map +0 -1
  179. package/dist/components/ui/item.d.ts +0 -24
  180. package/dist/components/ui/item.d.ts.map +0 -1
  181. package/dist/components/ui/item.js +0 -91
  182. package/dist/components/ui/item.js.map +0 -1
  183. package/dist/components/ui/label.d.ts +0 -5
  184. package/dist/components/ui/label.d.ts.map +0 -1
  185. package/dist/components/ui/label.js +0 -43
  186. package/dist/components/ui/label.js.map +0 -1
  187. package/dist/components/ui/navigation-menu.d.ts +0 -15
  188. package/dist/components/ui/navigation-menu.d.ts.map +0 -1
  189. package/dist/components/ui/navigation-menu.js +0 -88
  190. package/dist/components/ui/navigation-menu.js.map +0 -1
  191. package/dist/components/ui/select.d.ts +0 -14
  192. package/dist/components/ui/select.d.ts.map +0 -1
  193. package/dist/components/ui/select.js +0 -80
  194. package/dist/components/ui/select.js.map +0 -1
  195. package/dist/components/ui/separator.d.ts +0 -5
  196. package/dist/components/ui/separator.d.ts.map +0 -1
  197. package/dist/components/ui/separator.js +0 -43
  198. package/dist/components/ui/separator.js.map +0 -1
  199. package/dist/components/ui/skeleton.d.ts +0 -4
  200. package/dist/components/ui/skeleton.d.ts.map +0 -1
  201. package/dist/components/ui/skeleton.js +0 -21
  202. package/dist/components/ui/skeleton.js.map +0 -1
  203. package/dist/components/ui/tabs.d.ts +0 -8
  204. package/dist/components/ui/tabs.d.ts.map +0 -1
  205. package/dist/components/ui/tabs.js +0 -55
  206. package/dist/components/ui/tabs.js.map +0 -1
  207. package/dist/components/ui/textarea.d.ts +0 -4
  208. package/dist/components/ui/textarea.d.ts.map +0 -1
  209. package/dist/components/ui/textarea.js +0 -8
  210. package/dist/components/ui/textarea.js.map +0 -1
  211. package/dist/components/ui/toast.d.ts +0 -5
  212. package/dist/components/ui/toast.d.ts.map +0 -1
  213. package/dist/components/ui/toast.js +0 -13
  214. package/dist/components/ui/toast.js.map +0 -1
  215. package/dist/components/ui/tooltip.d.ts +0 -8
  216. package/dist/components/ui/tooltip.d.ts.map +0 -1
  217. package/dist/components/ui/tooltip.js +0 -55
  218. package/dist/components/ui/tooltip.js.map +0 -1
@@ -1,10 +1,42 @@
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
+ })();
2
35
  Object.defineProperty(exports, "__esModule", { value: true });
3
36
  exports.AvatarAI = AvatarAI;
4
37
  exports.AvatarAIForYouCard = AvatarAIForYouCard;
5
38
  exports.AvatarAIPage = AvatarAIPage;
6
- const jsx_runtime_1 = require("react/jsx-runtime");
7
- const react_1 = require("react");
39
+ const react_1 = __importStar(require("react"));
8
40
  const AVATAR_AI_CSS = `
9
41
  .avatarai-styles-grid::-webkit-scrollbar { width: 6px; }
10
42
  .avatarai-styles-grid::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 3px; }
@@ -311,131 +343,214 @@ function AvatarAI({ styles: stylesProp = [], stylesTag, apiBaseUrl, locale, mood
311
343
  };
312
344
  const isProcessing = isGenerating || (!!generatedResult && !generatedImageUrl);
313
345
  const canGenerate = !!uploadedImage && !!selectedStyle && !isProcessing && !!config;
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: {
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: {
315
349
  backgroundColor: mergedTheme.cardBackground,
316
350
  borderRadius: '8px',
317
351
  boxShadow: '0 1px 3px rgba(0,0,0,0.1)',
318
352
  padding: '32px',
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] })] })] }) }) }));
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))))));
429
528
  }
430
529
  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', }) {
431
530
  const effectiveMobileImage = mobileImage || desktopImage;
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] })) }) }) }));
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))))));
435
545
  }
436
546
  function AvatarAIPage({ componentProps, heroDesktopImage, heroMobileImage, heroAlt = '', backgroundColor = '#F9F9F9', componentPaddingClass = 'py-8 md:py-12', }) {
437
547
  const effectiveHeroMobile = heroMobileImage || heroDesktopImage;
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)) })] }));
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)))));
439
554
  }
440
555
  exports.default = AvatarAI;
441
556
  //# sourceMappingURL=AvatarAI.js.map