webs-sdk 0.19.50 → 0.19.51

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 (41) hide show
  1. package/README.md +451 -451
  2. package/dist/components/ARFilters/ARFilters.js +54 -54
  3. package/dist/components/ArtGenerator.js +141 -141
  4. package/dist/components/AvatarAI.js +14 -14
  5. package/dist/components/CookieConsent/constants.js +31 -31
  6. package/dist/components/CreativeFaceSwap.js +23 -23
  7. package/dist/components/GifsIa.js +76 -76
  8. package/dist/components/MemeGenerator.js +12 -12
  9. package/dist/components/PasswordReset/constants.js +33 -33
  10. package/dist/components/RecoveryPassword/constants.js +27 -27
  11. package/dist/components/SpinningWheel/SpinningWheel.js +7 -7
  12. package/dist/components/Wallpapers.d.ts +8 -1
  13. package/dist/components/Wallpapers.d.ts.map +1 -1
  14. package/dist/components/Wallpapers.js +8 -8
  15. package/dist/components/Wallpapers.js.map +1 -1
  16. package/dist/index.d.ts +1 -1
  17. package/dist/index.d.ts.map +1 -1
  18. package/dist/index.js.map +1 -1
  19. package/dist/network.d.ts +12 -0
  20. package/dist/network.d.ts.map +1 -0
  21. package/dist/network.js +15 -0
  22. package/dist/network.js.map +1 -0
  23. package/dist/server.d.ts +54 -0
  24. package/dist/server.d.ts.map +1 -0
  25. package/dist/server.js +74 -0
  26. package/dist/server.js.map +1 -0
  27. package/dist/utils/QRCode.d.ts +1 -0
  28. package/dist/utils/QRCode.d.ts.map +1 -0
  29. package/dist/utils/QRCode.js +2 -0
  30. package/dist/utils/QRCode.js.map +1 -0
  31. package/package.json +83 -83
  32. package/public/spin2win/assets/border-afristream.svg +26 -26
  33. package/public/spin2win/assets/border-efc.svg +23 -23
  34. package/public/spin2win/assets/border-streetreel.svg +23 -23
  35. package/public/spin2win/assets/border-totalgym.svg +27 -27
  36. package/public/spin2win/assets/border-womantoday.svg +26 -26
  37. package/public/spin2win/assets/indicator-afristream.svg +28 -28
  38. package/public/spin2win/assets/indicator-efc.svg +29 -29
  39. package/public/spin2win/assets/indicator-streetreel.svg +29 -29
  40. package/public/spin2win/assets/indicator-totalgym.svg +29 -29
  41. package/public/spin2win/fonts/switzer/README.md +22 -22
@@ -7,60 +7,60 @@ const useDeepAR_1 = require("./useDeepAR");
7
7
  const FilterCarousel_1 = require("./FilterCarousel");
8
8
  const Popups_1 = require("./Popups");
9
9
  const constants_1 = require("./constants");
10
- const DEEPAR_CSS = `
11
- .deepar-container{position:relative;width:100%;max-width:800px;margin:0 auto;aspect-ratio:4/3;background-color:#000;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5),0 8px 16px rgba(0,0,0,.3)}
12
- @media(max-width:768px){.deepar-container{max-width:100%;aspect-ratio:auto;height:70vh;max-height:600px;border-radius:8px}}
13
- .deepar-canvas{width:100%;height:100%;object-fit:contain}
14
- .deepar-loading-veil{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:10}
15
- .deepar-loading-items{display:flex;flex-direction:column;align-items:center;gap:16px}
16
- .deepar-loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-top-color:#fff;border-radius:50%;animation:deepar-spin 1s linear infinite}
17
- @keyframes deepar-spin{to{transform:rotate(360deg)}}
18
- .deepar-loading-text{color:#fff;font-size:16px;font-weight:500}
19
- .deepar-top-buttons{position:absolute;top:0;right:0;display:flex;gap:12px;padding:16px;z-index:20}
20
- .deepar-fullscreen-button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:rgba(0,0,0,.6);border:2px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
21
- .deepar-fullscreen-button:hover{background:rgba(0,0,0,.8);border-color:rgba(255,255,255,.5)}
22
- .deepar-fullscreen-button:active{transform:scale(.95);background:rgba(0,0,0,.9)}
23
- @media(max-width:768px){.deepar-fullscreen-button{width:56px;height:56px;background:rgba(0,0,0,.7)}}
24
- .deepar-recording-progress-bar{position:absolute;top:24px;left:50%;transform:translateX(-50%);width:calc(100% - 48px);max-width:400px;height:8px;background:rgba(255,255,255,.2);border-radius:17px;overflow:hidden;z-index:5}
25
- .deepar-time-progress{height:100%;background:#dc2626;border-radius:17px;transition:width 100ms linear}
26
- .deepar-pause-recording-container{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;z-index:5}
27
- .deepar-pause-recording-button{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:rgba(0,0,0,.5);border:3px solid #fff;border-radius:50%;cursor:pointer;transition:all .2s}
28
- .deepar-pause-recording-inner{width:24px;height:24px;background:#dc2626;border-radius:4px}
29
- .deepar-carousel-container{position:absolute;bottom:0;left:0;width:100%;visibility:hidden;opacity:0;transition:opacity .3s;z-index:4}
30
- .deepar-carousel-container.visible{visibility:visible;opacity:1}
31
- .deepar-carousel-wrapper{position:relative;display:flex;align-items:center;justify-content:center;padding:24px 0;background:linear-gradient(to top,rgba(0,0,0,1) 0%,rgba(0,0,0,.95) 50%,rgba(0,0,0,0) 100%)}
32
- .deepar-carousel-content{position:relative;display:flex;align-items:center;justify-content:center;flex:1}
33
- .deepar-carousel{max-width:368px;overflow:hidden;padding:0 20px}
34
- @media(max-width:768px){.deepar-carousel{max-width:280px;padding:0 10px}}
35
- .deepar-carousel-slides{display:flex;gap:16px}
36
- .deepar-carousel-slide{flex:0 0 auto;cursor:pointer;transition:all .3s ease;opacity:.6}
37
- .deepar-carousel-slide:hover{opacity:.8}
38
- .deepar-carousel-slide.active{opacity:1}
39
- .deepar-filter-thumb{width:64px;height:64px;border-radius:50%;overflow:hidden;transition:all .3s ease;border:3px solid rgba(255,255,255,.2)}
40
- .deepar-carousel-slide.active .deepar-filter-thumb{width:76px;height:76px;border:3px solid rgba(255,255,255,1);box-shadow:0 0 0 8px rgba(0,0,0,.4)}
41
- .deepar-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;transition:all .3s;z-index:5;color:#fff}
42
- .deepar-carousel-arrow.prev{left:16px}
43
- .deepar-carousel-arrow.next{right:16px}
44
- .deepar-carousel-arrow:hover:not(:disabled){transform:translateY(-50%) scale(1.1);background:rgba(0,0,0,.6)}
45
- .deepar-carousel-arrow:disabled{opacity:.3;cursor:not-allowed}
46
- .deepar-selection-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:110px;height:110px;background:rgba(0,0,0,.4);border:4px solid rgba(255,255,255,.9);border-radius:50%;cursor:pointer;z-index:6;transition:all .3s;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 8px rgba(0,0,0,.3)}
47
- .deepar-selection-ring:hover{transform:translate(-50%,-50%) scale(1.05);border-color:#fff}
48
- .deepar-selection-ring-camera{color:#fff}
49
- .deepar-creation-container{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;z-index:8}
50
- .deepar-created-video,.deepar-created-image{width:100%;height:100%;object-fit:cover}
51
- .deepar-creation-buttons{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
52
- .deepar-creation-buttons>*{pointer-events:all}
53
- .deepar-discard-button{position:absolute;top:24px;left:24px;display:flex;align-items:center;gap:8px;padding:12px 20px;background:rgba(0,0,0,.5);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}
54
- .deepar-bottom-buttons-creation{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);display:flex;gap:16px}
55
- .deepar-creation-button{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:rgba(0,0,0,.5);border:3px solid #fff;border-radius:50%;cursor:pointer;transition:all .2s}
56
- .deepar-creation-button:hover{background:rgba(0,0,0,.7);transform:scale(1.1)}
57
- .deepar-popup{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:50}
58
- .deepar-popup-box{background:#fff;border-radius:12px;padding:48px 32px;max-width:400px;width:90%;text-align:center}
59
- .deepar-popup-image{margin:0 auto 20px;display:flex;align-items:center;justify-content:center}
60
- .deepar-popup-title{font-size:18px;font-weight:600;color:#111;margin-bottom:24px}
61
- .deepar-popup-button{display:inline-block;padding:14px 32px;border-radius:8px;font-size:16px;font-weight:600;border:none;cursor:pointer;transition:all .2s}
62
- .deepar-popup-button:hover{transform:scale(1.05)}
63
- .deepar-download-success{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:16px 32px;background:rgba(34,197,94,.95);color:#fff;border-radius:8px;font-size:16px;font-weight:600;z-index:100}
10
+ const DEEPAR_CSS = `
11
+ .deepar-container{position:relative;width:100%;max-width:800px;margin:0 auto;aspect-ratio:4/3;background-color:#000;border-radius:16px;overflow:hidden;box-shadow:0 20px 60px rgba(0,0,0,.5),0 8px 16px rgba(0,0,0,.3)}
12
+ @media(max-width:768px){.deepar-container{max-width:100%;aspect-ratio:auto;height:70vh;max-height:600px;border-radius:8px}}
13
+ .deepar-canvas{width:100%;height:100%;object-fit:contain}
14
+ .deepar-loading-veil{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:10}
15
+ .deepar-loading-items{display:flex;flex-direction:column;align-items:center;gap:16px}
16
+ .deepar-loading-spinner{width:48px;height:48px;border:4px solid rgba(255,255,255,.1);border-top-color:#fff;border-radius:50%;animation:deepar-spin 1s linear infinite}
17
+ @keyframes deepar-spin{to{transform:rotate(360deg)}}
18
+ .deepar-loading-text{color:#fff;font-size:16px;font-weight:500}
19
+ .deepar-top-buttons{position:absolute;top:0;right:0;display:flex;gap:12px;padding:16px;z-index:20}
20
+ .deepar-fullscreen-button{display:flex;align-items:center;justify-content:center;width:48px;height:48px;background:rgba(0,0,0,.6);border:2px solid rgba(255,255,255,.3);border-radius:8px;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
21
+ .deepar-fullscreen-button:hover{background:rgba(0,0,0,.8);border-color:rgba(255,255,255,.5)}
22
+ .deepar-fullscreen-button:active{transform:scale(.95);background:rgba(0,0,0,.9)}
23
+ @media(max-width:768px){.deepar-fullscreen-button{width:56px;height:56px;background:rgba(0,0,0,.7)}}
24
+ .deepar-recording-progress-bar{position:absolute;top:24px;left:50%;transform:translateX(-50%);width:calc(100% - 48px);max-width:400px;height:8px;background:rgba(255,255,255,.2);border-radius:17px;overflow:hidden;z-index:5}
25
+ .deepar-time-progress{height:100%;background:#dc2626;border-radius:17px;transition:width 100ms linear}
26
+ .deepar-pause-recording-container{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;z-index:5}
27
+ .deepar-pause-recording-button{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:rgba(0,0,0,.5);border:3px solid #fff;border-radius:50%;cursor:pointer;transition:all .2s}
28
+ .deepar-pause-recording-inner{width:24px;height:24px;background:#dc2626;border-radius:4px}
29
+ .deepar-carousel-container{position:absolute;bottom:0;left:0;width:100%;visibility:hidden;opacity:0;transition:opacity .3s;z-index:4}
30
+ .deepar-carousel-container.visible{visibility:visible;opacity:1}
31
+ .deepar-carousel-wrapper{position:relative;display:flex;align-items:center;justify-content:center;padding:24px 0;background:linear-gradient(to top,rgba(0,0,0,1) 0%,rgba(0,0,0,.95) 50%,rgba(0,0,0,0) 100%)}
32
+ .deepar-carousel-content{position:relative;display:flex;align-items:center;justify-content:center;flex:1}
33
+ .deepar-carousel{max-width:368px;overflow:hidden;padding:0 20px}
34
+ @media(max-width:768px){.deepar-carousel{max-width:280px;padding:0 10px}}
35
+ .deepar-carousel-slides{display:flex;gap:16px}
36
+ .deepar-carousel-slide{flex:0 0 auto;cursor:pointer;transition:all .3s ease;opacity:.6}
37
+ .deepar-carousel-slide:hover{opacity:.8}
38
+ .deepar-carousel-slide.active{opacity:1}
39
+ .deepar-filter-thumb{width:64px;height:64px;border-radius:50%;overflow:hidden;transition:all .3s ease;border:3px solid rgba(255,255,255,.2)}
40
+ .deepar-carousel-slide.active .deepar-filter-thumb{width:76px;height:76px;border:3px solid rgba(255,255,255,1);box-shadow:0 0 0 8px rgba(0,0,0,.4)}
41
+ .deepar-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;transition:all .3s;z-index:5;color:#fff}
42
+ .deepar-carousel-arrow.prev{left:16px}
43
+ .deepar-carousel-arrow.next{right:16px}
44
+ .deepar-carousel-arrow:hover:not(:disabled){transform:translateY(-50%) scale(1.1);background:rgba(0,0,0,.6)}
45
+ .deepar-carousel-arrow:disabled{opacity:.3;cursor:not-allowed}
46
+ .deepar-selection-ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:110px;height:110px;background:rgba(0,0,0,.4);border:4px solid rgba(255,255,255,.9);border-radius:50%;cursor:pointer;z-index:6;transition:all .3s;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 8px rgba(0,0,0,.3)}
47
+ .deepar-selection-ring:hover{transform:translate(-50%,-50%) scale(1.05);border-color:#fff}
48
+ .deepar-selection-ring-camera{color:#fff}
49
+ .deepar-creation-container{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;z-index:8}
50
+ .deepar-created-video,.deepar-created-image{width:100%;height:100%;object-fit:cover}
51
+ .deepar-creation-buttons{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
52
+ .deepar-creation-buttons>*{pointer-events:all}
53
+ .deepar-discard-button{position:absolute;top:24px;left:24px;display:flex;align-items:center;gap:8px;padding:12px 20px;background:rgba(0,0,0,.5);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s}
54
+ .deepar-bottom-buttons-creation{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);display:flex;gap:16px}
55
+ .deepar-creation-button{display:flex;align-items:center;justify-content:center;width:80px;height:80px;background:rgba(0,0,0,.5);border:3px solid #fff;border-radius:50%;cursor:pointer;transition:all .2s}
56
+ .deepar-creation-button:hover{background:rgba(0,0,0,.7);transform:scale(1.1)}
57
+ .deepar-popup{position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);display:flex;align-items:center;justify-content:center;z-index:50}
58
+ .deepar-popup-box{background:#fff;border-radius:12px;padding:48px 32px;max-width:400px;width:90%;text-align:center}
59
+ .deepar-popup-image{margin:0 auto 20px;display:flex;align-items:center;justify-content:center}
60
+ .deepar-popup-title{font-size:18px;font-weight:600;color:#111;margin-bottom:24px}
61
+ .deepar-popup-button{display:inline-block;padding:14px 32px;border-radius:8px;font-size:16px;font-weight:600;border:none;cursor:pointer;transition:all .2s}
62
+ .deepar-popup-button:hover{transform:scale(1.05)}
63
+ .deepar-download-success{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:16px 32px;background:rgba(34,197,94,.95);color:#fff;border-radius:8px;font-size:16px;font-weight:600;z-index:100}
64
64
  `;
65
65
  function ARFilters(props) {
66
66
  (0, react_1.useEffect)(() => {
@@ -6,147 +6,147 @@ exports.ArtGeneratorForYouCard = ArtGeneratorForYouCard;
6
6
  const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const react_1 = require("react");
8
8
  const forYouFetch_1 = require("./for-you/api/forYouFetch");
9
- const ART_GENERATOR_CSS = `
10
- .artgen-grid {
11
- display: grid;
12
- grid-template-columns: 1fr;
13
- gap: 0;
14
- box-sizing: border-box;
15
- }
16
- @media (min-width: 1024px) {
17
- .artgen-grid {
18
- grid-template-columns: 380px 1fr;
19
- }
20
- }
21
- .artgen-grid > * {
22
- box-sizing: border-box;
23
- min-width: 0;
24
- max-width: 100%;
25
- }
26
- .artgen-left-col-border {
27
- border-right: none;
28
- border-bottom: 1px solid;
29
- }
30
- @media (min-width: 1024px) {
31
- .artgen-left-col-border {
32
- border-right: 1px solid;
33
- border-bottom: none;
34
- }
35
- }
36
-
37
- /* ── Estilos artísticos ───────────────────────────────────────────────── */
38
- .artgen-styles-grid {
39
- display: flex;
40
- flex-wrap: nowrap;
41
- gap: 8px;
42
- overflow-x: auto;
43
- scroll-snap-type: x mandatory;
44
- -webkit-overflow-scrolling: touch;
45
- scrollbar-width: none;
46
- -ms-overflow-style: none;
47
- padding-bottom: 4px;
48
- }
49
- .artgen-styles-grid::-webkit-scrollbar {
50
- display: none;
51
- }
52
- .artgen-styles-grid > * {
53
- flex: 0 0 140px;
54
- width: 110px;
55
- scroll-snap-align: start;
56
- }
57
- @media (min-width: 1024px) {
58
- .artgen-styles-grid {
59
- display: grid;
60
- grid-template-columns: repeat(3, 1fr);
61
- gap: 8px;
62
- overflow-x: hidden;
63
- scroll-snap-type: none;
64
- padding-bottom: 0;
65
- }
66
- .artgen-styles-grid > * {
67
- flex: unset;
68
- width: unset;
69
- }
70
- }
71
-
72
- /* ── Colecciones ─────────────────────────────────────────────────────── */
73
- .artgen-collections-grid {
74
- display: grid;
75
- grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
76
- gap: 16px;
77
- }
78
-
79
- /* ── Carousel de ejemplos ────────────────────────────────────────────── */
80
- .artgen-carousel-scroll {
81
- display: flex;
82
- gap: 12px;
83
- overflow-x: auto;
84
- scroll-snap-type: x mandatory;
85
- -webkit-overflow-scrolling: touch;
86
- scrollbar-width: none;
87
- -ms-overflow-style: none;
88
- }
89
- .artgen-carousel-scroll::-webkit-scrollbar {
90
- display: none;
91
- }
92
- .artgen-carousel-scroll > * {
93
- flex: 0 0 240px !important;
94
- width: 240px !important;
95
- scroll-snap-align: start;
96
- min-width: 0;
97
- }
98
- /* Las imágenes del carousel tienen altura fija */
99
- .artgen-carousel-img {
100
- width: 100%;
101
- height: 180px;
102
- object-fit: cover;
103
- display: block;
104
- }
105
-
106
- /* ── Input + Resultado (columna derecha en móvil) ────────────────────── */
107
- @media (max-width: 1023px) {
108
- .artgen-right-col {
109
- box-sizing: border-box;
110
- width: 100%;
111
- max-width: 100%;
112
- overflow-x: hidden;
113
- }
114
- .artgen-textarea {
115
- box-sizing: border-box !important;
116
- width: 100% !important;
117
- max-width: 100% !important;
118
- padding-right: 12px !important;
119
- min-height: 100px;
120
- }
121
- .artgen-create-btn-inline {
122
- display: none !important;
123
- }
124
- .artgen-create-btn-below {
125
- display: flex !important;
126
- }
127
- .artgen-result-area {
128
- box-sizing: border-box;
129
- width: 100%;
130
- aspect-ratio: 4 / 3;
131
- min-height: unset !important;
132
- overflow: hidden;
133
- }
134
- .artgen-result-area img {
135
- width: 100% !important;
136
- height: 100% !important;
137
- aspect-ratio: 4 / 3;
138
- object-fit: cover;
139
- display: block;
140
- }
141
- }
142
- @media (min-width: 1024px) {
143
- .artgen-create-btn-below {
144
- display: none !important;
145
- }
146
- .artgen-create-btn-inline {
147
- display: flex !important;
148
- }
149
- }
9
+ const ART_GENERATOR_CSS = `
10
+ .artgen-grid {
11
+ display: grid;
12
+ grid-template-columns: 1fr;
13
+ gap: 0;
14
+ box-sizing: border-box;
15
+ }
16
+ @media (min-width: 1024px) {
17
+ .artgen-grid {
18
+ grid-template-columns: 380px 1fr;
19
+ }
20
+ }
21
+ .artgen-grid > * {
22
+ box-sizing: border-box;
23
+ min-width: 0;
24
+ max-width: 100%;
25
+ }
26
+ .artgen-left-col-border {
27
+ border-right: none;
28
+ border-bottom: 1px solid;
29
+ }
30
+ @media (min-width: 1024px) {
31
+ .artgen-left-col-border {
32
+ border-right: 1px solid;
33
+ border-bottom: none;
34
+ }
35
+ }
36
+
37
+ /* ── Estilos artísticos ───────────────────────────────────────────────── */
38
+ .artgen-styles-grid {
39
+ display: flex;
40
+ flex-wrap: nowrap;
41
+ gap: 8px;
42
+ overflow-x: auto;
43
+ scroll-snap-type: x mandatory;
44
+ -webkit-overflow-scrolling: touch;
45
+ scrollbar-width: none;
46
+ -ms-overflow-style: none;
47
+ padding-bottom: 4px;
48
+ }
49
+ .artgen-styles-grid::-webkit-scrollbar {
50
+ display: none;
51
+ }
52
+ .artgen-styles-grid > * {
53
+ flex: 0 0 140px;
54
+ width: 110px;
55
+ scroll-snap-align: start;
56
+ }
57
+ @media (min-width: 1024px) {
58
+ .artgen-styles-grid {
59
+ display: grid;
60
+ grid-template-columns: repeat(3, 1fr);
61
+ gap: 8px;
62
+ overflow-x: hidden;
63
+ scroll-snap-type: none;
64
+ padding-bottom: 0;
65
+ }
66
+ .artgen-styles-grid > * {
67
+ flex: unset;
68
+ width: unset;
69
+ }
70
+ }
71
+
72
+ /* ── Colecciones ─────────────────────────────────────────────────────── */
73
+ .artgen-collections-grid {
74
+ display: grid;
75
+ grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
76
+ gap: 16px;
77
+ }
78
+
79
+ /* ── Carousel de ejemplos ────────────────────────────────────────────── */
80
+ .artgen-carousel-scroll {
81
+ display: flex;
82
+ gap: 12px;
83
+ overflow-x: auto;
84
+ scroll-snap-type: x mandatory;
85
+ -webkit-overflow-scrolling: touch;
86
+ scrollbar-width: none;
87
+ -ms-overflow-style: none;
88
+ }
89
+ .artgen-carousel-scroll::-webkit-scrollbar {
90
+ display: none;
91
+ }
92
+ .artgen-carousel-scroll > * {
93
+ flex: 0 0 240px !important;
94
+ width: 240px !important;
95
+ scroll-snap-align: start;
96
+ min-width: 0;
97
+ }
98
+ /* Las imágenes del carousel tienen altura fija */
99
+ .artgen-carousel-img {
100
+ width: 100%;
101
+ height: 180px;
102
+ object-fit: cover;
103
+ display: block;
104
+ }
105
+
106
+ /* ── Input + Resultado (columna derecha en móvil) ────────────────────── */
107
+ @media (max-width: 1023px) {
108
+ .artgen-right-col {
109
+ box-sizing: border-box;
110
+ width: 100%;
111
+ max-width: 100%;
112
+ overflow-x: hidden;
113
+ }
114
+ .artgen-textarea {
115
+ box-sizing: border-box !important;
116
+ width: 100% !important;
117
+ max-width: 100% !important;
118
+ padding-right: 12px !important;
119
+ min-height: 100px;
120
+ }
121
+ .artgen-create-btn-inline {
122
+ display: none !important;
123
+ }
124
+ .artgen-create-btn-below {
125
+ display: flex !important;
126
+ }
127
+ .artgen-result-area {
128
+ box-sizing: border-box;
129
+ width: 100%;
130
+ aspect-ratio: 4 / 3;
131
+ min-height: unset !important;
132
+ overflow: hidden;
133
+ }
134
+ .artgen-result-area img {
135
+ width: 100% !important;
136
+ height: 100% !important;
137
+ aspect-ratio: 4 / 3;
138
+ object-fit: cover;
139
+ display: block;
140
+ }
141
+ }
142
+ @media (min-width: 1024px) {
143
+ .artgen-create-btn-below {
144
+ display: none !important;
145
+ }
146
+ .artgen-create-btn-inline {
147
+ display: flex !important;
148
+ }
149
+ }
150
150
  `;
151
151
  exports.DEFAULT_ART_STYLES = [
152
152
  {
@@ -5,20 +5,20 @@ exports.AvatarAIForYouCard = AvatarAIForYouCard;
5
5
  exports.AvatarAIPage = AvatarAIPage;
6
6
  const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const react_1 = require("react");
8
- const AVATAR_AI_CSS = `
9
- .avatarai-styles-grid::-webkit-scrollbar { width: 6px; }
10
- .avatarai-styles-grid::-webkit-scrollbar-track { background: transparent; border-radius: 3px; }
11
- .avatarai-styles-grid::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 3px; }
12
- .avatarai-styles-grid::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.3); }
13
- @keyframes avatarai-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
14
- @keyframes avatarai-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } }
15
- @keyframes avatarai-scan { 0% { top: 0%; } 100% { top: 100%; } }
16
- .avatarai-scan-line { position: absolute; left: 0; width: 100%; height: 3px; animation: avatarai-scan 1.8s linear infinite; z-index: 11; }
17
- .avatarai-action-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-top: 32px; }
18
- @media (max-width: 640px) {
19
- .avatarai-action-buttons { grid-template-columns: 1fr; }
20
- .avatarai-action-buttons button { width: 100% !important; }
21
- }
8
+ const AVATAR_AI_CSS = `
9
+ .avatarai-styles-grid::-webkit-scrollbar { width: 6px; }
10
+ .avatarai-styles-grid::-webkit-scrollbar-track { background: transparent; border-radius: 3px; }
11
+ .avatarai-styles-grid::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.15); border-radius: 3px; }
12
+ .avatarai-styles-grid::-webkit-scrollbar-thumb:hover { background: rgba(255,255,255,0.3); }
13
+ @keyframes avatarai-spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
14
+ @keyframes avatarai-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.6; } }
15
+ @keyframes avatarai-scan { 0% { top: 0%; } 100% { top: 100%; } }
16
+ .avatarai-scan-line { position: absolute; left: 0; width: 100%; height: 3px; animation: avatarai-scan 1.8s linear infinite; z-index: 11; }
17
+ .avatarai-action-buttons { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; margin-top: 32px; }
18
+ @media (max-width: 640px) {
19
+ .avatarai-action-buttons { grid-template-columns: 1fr; }
20
+ .avatarai-action-buttons button { width: 100% !important; }
21
+ }
22
22
  `;
23
23
  const defaultStyles = [
24
24
  {
@@ -5,36 +5,36 @@ exports.COOKIE_CONSENT_COOKIE_NAME = 'cookieConsent';
5
5
  exports.COOKIE_CONSENT_COOKIE_MAX_AGE = 60 * 60 * 24 * 365;
6
6
  exports.TRACKING_PERMISSION_KEY = 'TRACKING_PERMISSION';
7
7
  exports.FUNCTIONAL_PERMISSION_KEY = 'FUNCTIONAL_PERMISSION';
8
- exports.COOKIE_CONSENT_CSS = `
9
- .cc-overlay{position:fixed;bottom:0;left:0;right:0;z-index:9999;padding:16px;box-sizing:border-box}
10
- .cc-banner{max-width:960px;margin:0 auto;padding:24px 28px;border-radius:12px;box-shadow:0 -4px 32px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.12);display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}
11
- @media(min-width:640px){.cc-banner{flex-wrap:nowrap;align-items:center}}
12
- .cc-content{flex:1;min-width:0}
13
- .cc-title{font-size:16px;font-weight:700;margin:0 0 6px 0;line-height:1.3}
14
- .cc-description{font-size:13px;line-height:1.55;margin:0;opacity:.85}
15
- .cc-link{text-decoration:underline;cursor:pointer;margin-left:4px}
16
- .cc-actions{display:flex;gap:8px;flex-shrink:0;flex-direction:column;align-items:stretch}
17
- @media(min-width:480px){.cc-actions{flex-direction:row;align-items:center}}
18
- .cc-btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:opacity .2s;white-space:nowrap;line-height:1}
19
- .cc-btn:hover{opacity:.88}
20
- .cc-btn-essential{background:transparent}
21
- .cc-config-link{background:none;border:none;cursor:pointer;font-size:12px;text-decoration:underline;padding:4px 0;font-family:inherit;line-height:1;opacity:.7;white-space:nowrap;display:block;text-align:center}
22
- .cc-config-link:hover{opacity:1}
23
- .cc-banner.cc-settings-mode{display:block}
24
- .cc-settings-title{font-size:15px;font-weight:700;margin:0 0 14px 0}
25
- .cc-settings-sep{border:none;border-top:1px solid rgba(255,255,255,.12);margin:0 0 16px}
26
- .cc-category{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
27
- .cc-category:last-of-type{margin-bottom:0}
28
- .cc-category-row{display:flex;align-items:center;gap:10px}
29
- .cc-category-label{font-size:13px;font-weight:600;cursor:pointer;user-select:none;line-height:1.3}
30
- .cc-category-label.cc-mandatory{cursor:default;opacity:.55}
31
- .cc-category-desc{font-size:12px;line-height:1.55;opacity:.7;padding-left:26px;margin:0}
32
- .cc-checkbox{width:15px;height:15px;flex-shrink:0;cursor:pointer;margin:0}
33
- .cc-checkbox:disabled{cursor:default}
34
- .cc-settings-footer{display:flex;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}
35
- .cc-enter{animation:cc-slideup .28s ease-out}
36
- .cc-exit{animation:cc-slidedown .22s ease-in forwards}
37
- @keyframes cc-slideup{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
38
- @keyframes cc-slidedown{from{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}
8
+ exports.COOKIE_CONSENT_CSS = `
9
+ .cc-overlay{position:fixed;bottom:0;left:0;right:0;z-index:9999;padding:16px;box-sizing:border-box}
10
+ .cc-banner{max-width:960px;margin:0 auto;padding:24px 28px;border-radius:12px;box-shadow:0 -4px 32px rgba(0,0,0,.18),0 2px 8px rgba(0,0,0,.12);display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap}
11
+ @media(min-width:640px){.cc-banner{flex-wrap:nowrap;align-items:center}}
12
+ .cc-content{flex:1;min-width:0}
13
+ .cc-title{font-size:16px;font-weight:700;margin:0 0 6px 0;line-height:1.3}
14
+ .cc-description{font-size:13px;line-height:1.55;margin:0;opacity:.85}
15
+ .cc-link{text-decoration:underline;cursor:pointer;margin-left:4px}
16
+ .cc-actions{display:flex;gap:8px;flex-shrink:0;flex-direction:column;align-items:stretch}
17
+ @media(min-width:480px){.cc-actions{flex-direction:row;align-items:center}}
18
+ .cc-btn{padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;border:none;transition:opacity .2s;white-space:nowrap;line-height:1}
19
+ .cc-btn:hover{opacity:.88}
20
+ .cc-btn-essential{background:transparent}
21
+ .cc-config-link{background:none;border:none;cursor:pointer;font-size:12px;text-decoration:underline;padding:4px 0;font-family:inherit;line-height:1;opacity:.7;white-space:nowrap;display:block;text-align:center}
22
+ .cc-config-link:hover{opacity:1}
23
+ .cc-banner.cc-settings-mode{display:block}
24
+ .cc-settings-title{font-size:15px;font-weight:700;margin:0 0 14px 0}
25
+ .cc-settings-sep{border:none;border-top:1px solid rgba(255,255,255,.12);margin:0 0 16px}
26
+ .cc-category{display:flex;flex-direction:column;gap:5px;margin-bottom:14px}
27
+ .cc-category:last-of-type{margin-bottom:0}
28
+ .cc-category-row{display:flex;align-items:center;gap:10px}
29
+ .cc-category-label{font-size:13px;font-weight:600;cursor:pointer;user-select:none;line-height:1.3}
30
+ .cc-category-label.cc-mandatory{cursor:default;opacity:.55}
31
+ .cc-category-desc{font-size:12px;line-height:1.55;opacity:.7;padding-left:26px;margin:0}
32
+ .cc-checkbox{width:15px;height:15px;flex-shrink:0;cursor:pointer;margin:0}
33
+ .cc-checkbox:disabled{cursor:default}
34
+ .cc-settings-footer{display:flex;justify-content:flex-end;margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.12)}
35
+ .cc-enter{animation:cc-slideup .28s ease-out}
36
+ .cc-exit{animation:cc-slidedown .22s ease-in forwards}
37
+ @keyframes cc-slideup{from{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}
38
+ @keyframes cc-slidedown{from{transform:translateY(0);opacity:1}to{transform:translateY(100%);opacity:0}}
39
39
  `;
40
40
  //# sourceMappingURL=constants.js.map
@@ -11,29 +11,29 @@ const react_1 = require("react");
11
11
  const link_1 = __importDefault(require("next/link"));
12
12
  const ui_1 = require("./ui");
13
13
  const utils_1 = require("../libraries/utils");
14
- const FACESWAP_CSS = `
15
- .faceswap-layout { display: flex; flex-direction: row; align-items: stretch; }
16
- .faceswap-col-left { width: 30%; min-width: 280px; background: var(--color-surface-base); border: 1px solid var(--fs-border-color, transparent); display: flex; flex-direction: column; }
17
- .faceswap-col-right { flex: 1; background: var(--color-surface-base); border: 1px solid var(--fs-border-color, transparent); border-left: none; display: flex; flex-direction: column; }
18
- .faceswap-col-right > div:first-child { flex: 0 0 auto; }
19
- .faceswap-col-right > div:last-child { flex: 1; display: flex; flex-direction: column; }
20
- .faceswap-col-right > div:last-child > .faceswap-result-area { flex: 1; min-height: 0; }
21
- .faceswap-result-area { min-height: 300px; }
22
- .faceswap-textarea { height: 160px; overflow-y: auto; resize: none; }
23
- .faceswap-action-buttons { display: flex; flex-direction: row; gap: 12px; justify-content: flex-end; }
24
- .faceswap-action-buttons button { flex: 1; justify-content: center; }
25
- .faceswap-examples-outer { overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
26
- .faceswap-examples-outer::-webkit-scrollbar { display: none; }
27
- .faceswap-examples-grid { display: grid; grid-auto-flow: column; grid-auto-columns: calc(50% - 8px); gap: 16px; }
28
- @media (max-width: 768px) {
29
- .faceswap-layout { flex-direction: column; }
30
- .faceswap-col-left { width: 100%; min-width: unset; }
31
- .faceswap-col-right { border-left: 1px solid var(--fs-border-color, transparent); border-top: none; width: 100%; }
32
- .faceswap-result-area { min-height: 260px; }
33
- .faceswap-textarea { height: 220px; }
34
- .faceswap-action-buttons { flex-direction: column; gap: 10px; }
35
- .faceswap-action-buttons button { width: 100% !important; box-sizing: border-box; justify-content: center; }
36
- }
14
+ const FACESWAP_CSS = `
15
+ .faceswap-layout { display: flex; flex-direction: row; align-items: stretch; }
16
+ .faceswap-col-left { width: 30%; min-width: 280px; background: var(--color-surface-base); border: 1px solid var(--fs-border-color, transparent); display: flex; flex-direction: column; }
17
+ .faceswap-col-right { flex: 1; background: var(--color-surface-base); border: 1px solid var(--fs-border-color, transparent); border-left: none; display: flex; flex-direction: column; }
18
+ .faceswap-col-right > div:first-child { flex: 0 0 auto; }
19
+ .faceswap-col-right > div:last-child { flex: 1; display: flex; flex-direction: column; }
20
+ .faceswap-col-right > div:last-child > .faceswap-result-area { flex: 1; min-height: 0; }
21
+ .faceswap-result-area { min-height: 300px; }
22
+ .faceswap-textarea { height: 160px; overflow-y: auto; resize: none; }
23
+ .faceswap-action-buttons { display: flex; flex-direction: row; gap: 12px; justify-content: flex-end; }
24
+ .faceswap-action-buttons button { flex: 1; justify-content: center; }
25
+ .faceswap-examples-outer { overflow-x: auto; scrollbar-width: none; -ms-overflow-style: none; }
26
+ .faceswap-examples-outer::-webkit-scrollbar { display: none; }
27
+ .faceswap-examples-grid { display: grid; grid-auto-flow: column; grid-auto-columns: calc(50% - 8px); gap: 16px; }
28
+ @media (max-width: 768px) {
29
+ .faceswap-layout { flex-direction: column; }
30
+ .faceswap-col-left { width: 100%; min-width: unset; }
31
+ .faceswap-col-right { border-left: 1px solid var(--fs-border-color, transparent); border-top: none; width: 100%; }
32
+ .faceswap-result-area { min-height: 260px; }
33
+ .faceswap-textarea { height: 220px; }
34
+ .faceswap-action-buttons { flex-direction: column; gap: 10px; }
35
+ .faceswap-action-buttons button { width: 100% !important; box-sizing: border-box; justify-content: center; }
36
+ }
37
37
  `;
38
38
  function CreativeFaceSwapForYouCard({ 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", }) {
39
39
  const effectiveMobileImage = mobileImage || desktopImage;