webs-sdk 0.14.45 → 0.15.0

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 (64) hide show
  1. package/README.md +398 -398
  2. package/dist/components/ARFilters/ARFilters.js +52 -52
  3. package/dist/components/AvatarAI.js +4 -4
  4. package/dist/components/CookieConsent/constants.js +31 -31
  5. package/dist/components/CreativeFaceSwap.js +12 -12
  6. package/dist/components/MemeGenerator.js +12 -12
  7. package/dist/components/Quiz.d.ts +91 -0
  8. package/dist/components/Quiz.d.ts.map +1 -0
  9. package/dist/components/Quiz.js +748 -0
  10. package/dist/components/Quiz.js.map +1 -0
  11. package/dist/components/SpinningWheel/SpinningWheel.js +7 -7
  12. package/dist/components/Stickers.d.ts +68 -0
  13. package/dist/components/Stickers.d.ts.map +1 -0
  14. package/dist/components/Stickers.js +303 -0
  15. package/dist/components/Stickers.js.map +1 -0
  16. package/dist/components/esports/news/EsportsNews.d.ts.map +1 -1
  17. package/dist/components/esports/news/EsportsNews.js +5 -12
  18. package/dist/components/esports/news/EsportsNews.js.map +1 -1
  19. package/dist/components/esports/news/index.d.ts +0 -2
  20. package/dist/components/esports/news/index.d.ts.map +1 -1
  21. package/dist/components/esports/news/index.js +1 -3
  22. package/dist/components/esports/news/index.js.map +1 -1
  23. package/dist/components/esports/news/types.d.ts +1 -4
  24. package/dist/components/esports/news/types.d.ts.map +1 -1
  25. package/dist/components/esports/utils.d.ts +0 -1
  26. package/dist/components/esports/utils.d.ts.map +1 -1
  27. package/dist/components/esports/utils.js +0 -23
  28. package/dist/components/esports/utils.js.map +1 -1
  29. package/dist/components/esports/videos/EsportsVideos.d.ts.map +1 -1
  30. package/dist/components/esports/videos/EsportsVideos.js +5 -12
  31. package/dist/components/esports/videos/EsportsVideos.js.map +1 -1
  32. package/dist/components/esports/videos/types.d.ts +1 -4
  33. package/dist/components/esports/videos/types.d.ts.map +1 -1
  34. package/dist/index.d.ts +4 -0
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +8 -1
  37. package/dist/index.js.map +1 -1
  38. package/package.json +43 -42
  39. package/public/spin2win/assets/border-afristream.svg +26 -26
  40. package/public/spin2win/assets/border-efc.svg +23 -23
  41. package/public/spin2win/assets/border-totalgym.svg +27 -27
  42. package/public/spin2win/assets/border-womantoday.svg +26 -26
  43. package/public/spin2win/assets/indicator-afristream.svg +28 -28
  44. package/public/spin2win/assets/indicator-efc.svg +29 -29
  45. package/public/spin2win/assets/indicator-totalgym.svg +29 -29
  46. package/public/spin2win/fonts/switzer/README.md +22 -22
  47. package/dist/client.d.ts +0 -2
  48. package/dist/client.d.ts.map +0 -1
  49. package/dist/client.js +0 -7
  50. package/dist/client.js.map +0 -1
  51. package/dist/components/esports/news/EsportsNewsDetail.d.ts +0 -12
  52. package/dist/components/esports/news/EsportsNewsDetail.d.ts.map +0 -1
  53. package/dist/components/esports/news/EsportsNewsDetail.js +0 -99
  54. package/dist/components/esports/news/EsportsNewsDetail.js.map +0 -1
  55. package/dist/components/ui/VideoPlayer.d.ts +0 -11
  56. package/dist/components/ui/VideoPlayer.d.ts.map +0 -1
  57. package/dist/components/ui/VideoPlayer.js +0 -171
  58. package/dist/components/ui/VideoPlayer.js.map +0 -1
  59. package/dist/context/TranslationContext.d.ts +0 -12
  60. package/dist/context/TranslationContext.d.ts.map +0 -1
  61. package/dist/context/TranslationContext.js +0 -60
  62. package/dist/context/TranslationContext.js.map +0 -1
  63. package/index.js +0 -83
  64. package/types/index.d.ts +0 -415
@@ -39,58 +39,58 @@ const useDeepAR_1 = require("./useDeepAR");
39
39
  const FilterCarousel_1 = require("./FilterCarousel");
40
40
  const Popups_1 = require("./Popups");
41
41
  const constants_1 = require("./constants");
42
- const DEEPAR_CSS = `
43
- .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)}
44
- @media(max-width:768px){.deepar-container{max-width:100%;aspect-ratio:auto;height:70vh;max-height:600px;border-radius:8px}}
45
- .deepar-canvas{width:100%;height:100%;object-fit:contain}
46
- .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}
47
- .deepar-loading-items{display:flex;flex-direction:column;align-items:center;gap:16px}
48
- .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}
49
- @keyframes deepar-spin{to{transform:rotate(360deg)}}
50
- .deepar-loading-text{color:#fff;font-size:16px;font-weight:500}
51
- .deepar-top-buttons{position:absolute;top:0;right:0;display:flex;gap:12px;padding:24px;z-index:5}
52
- .deepar-fullscreen-button{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:rgba(0,0,0,.5);border:none;border-radius:8px;cursor:pointer;transition:all .2s}
53
- .deepar-fullscreen-button:hover{background:rgba(0,0,0,.7)}
54
- .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}
55
- .deepar-time-progress{height:100%;background:#dc2626;border-radius:17px;transition:width 100ms linear}
56
- .deepar-pause-recording-container{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;z-index:5}
57
- .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}
58
- .deepar-pause-recording-inner{width:24px;height:24px;background:#dc2626;border-radius:4px}
59
- .deepar-carousel-container{position:absolute;bottom:0;left:0;width:100%;visibility:hidden;opacity:0;transition:opacity .3s;z-index:4}
60
- .deepar-carousel-container.visible{visibility:visible;opacity:1}
61
- .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%)}
62
- .deepar-carousel-content{position:relative;display:flex;align-items:center;justify-content:center;flex:1}
63
- .deepar-carousel{max-width:368px;overflow:hidden;padding:0 20px}
64
- @media(max-width:768px){.deepar-carousel{max-width:280px;padding:0 10px}}
65
- .deepar-carousel-slides{display:flex;gap:16px}
66
- .deepar-carousel-slide{flex:0 0 auto;cursor:pointer;transition:all .3s ease;opacity:.6}
67
- .deepar-carousel-slide:hover{opacity:.8}
68
- .deepar-carousel-slide.active{opacity:1}
69
- .deepar-filter-thumb{width:64px;height:64px;border-radius:50%;overflow:hidden;transition:all .3s ease;border:3px solid rgba(255,255,255,.2)}
70
- .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)}
71
- .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}
72
- .deepar-carousel-arrow.prev{left:16px}
73
- .deepar-carousel-arrow.next{right:16px}
74
- .deepar-carousel-arrow:hover:not(:disabled){transform:translateY(-50%) scale(1.1);background:rgba(0,0,0,.6)}
75
- .deepar-carousel-arrow:disabled{opacity:.3;cursor:not-allowed}
76
- .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)}
77
- .deepar-selection-ring:hover{transform:translate(-50%,-50%) scale(1.05);border-color:#fff}
78
- .deepar-selection-ring-camera{color:#fff}
79
- .deepar-creation-container{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;z-index:8}
80
- .deepar-created-video,.deepar-created-image{width:100%;height:100%;object-fit:cover}
81
- .deepar-creation-buttons{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
82
- .deepar-creation-buttons>*{pointer-events:all}
83
- .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}
84
- .deepar-bottom-buttons-creation{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);display:flex;gap:16px}
85
- .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}
86
- .deepar-creation-button:hover{background:rgba(0,0,0,.7);transform:scale(1.1)}
87
- .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}
88
- .deepar-popup-box{background:#fff;border-radius:12px;padding:48px 32px;max-width:400px;width:90%;text-align:center}
89
- .deepar-popup-image{margin:0 auto 20px;display:flex;align-items:center;justify-content:center}
90
- .deepar-popup-title{font-size:18px;font-weight:600;color:#111;margin-bottom:24px}
91
- .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}
92
- .deepar-popup-button:hover{transform:scale(1.05)}
93
- .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}
42
+ const DEEPAR_CSS = `
43
+ .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)}
44
+ @media(max-width:768px){.deepar-container{max-width:100%;aspect-ratio:auto;height:70vh;max-height:600px;border-radius:8px}}
45
+ .deepar-canvas{width:100%;height:100%;object-fit:contain}
46
+ .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}
47
+ .deepar-loading-items{display:flex;flex-direction:column;align-items:center;gap:16px}
48
+ .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}
49
+ @keyframes deepar-spin{to{transform:rotate(360deg)}}
50
+ .deepar-loading-text{color:#fff;font-size:16px;font-weight:500}
51
+ .deepar-top-buttons{position:absolute;top:0;right:0;display:flex;gap:12px;padding:24px;z-index:5}
52
+ .deepar-fullscreen-button{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:rgba(0,0,0,.5);border:none;border-radius:8px;cursor:pointer;transition:all .2s}
53
+ .deepar-fullscreen-button:hover{background:rgba(0,0,0,.7)}
54
+ .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}
55
+ .deepar-time-progress{height:100%;background:#dc2626;border-radius:17px;transition:width 100ms linear}
56
+ .deepar-pause-recording-container{position:absolute;bottom:48px;left:50%;transform:translateX(-50%);display:flex;align-items:center;justify-content:center;z-index:5}
57
+ .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}
58
+ .deepar-pause-recording-inner{width:24px;height:24px;background:#dc2626;border-radius:4px}
59
+ .deepar-carousel-container{position:absolute;bottom:0;left:0;width:100%;visibility:hidden;opacity:0;transition:opacity .3s;z-index:4}
60
+ .deepar-carousel-container.visible{visibility:visible;opacity:1}
61
+ .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%)}
62
+ .deepar-carousel-content{position:relative;display:flex;align-items:center;justify-content:center;flex:1}
63
+ .deepar-carousel{max-width:368px;overflow:hidden;padding:0 20px}
64
+ @media(max-width:768px){.deepar-carousel{max-width:280px;padding:0 10px}}
65
+ .deepar-carousel-slides{display:flex;gap:16px}
66
+ .deepar-carousel-slide{flex:0 0 auto;cursor:pointer;transition:all .3s ease;opacity:.6}
67
+ .deepar-carousel-slide:hover{opacity:.8}
68
+ .deepar-carousel-slide.active{opacity:1}
69
+ .deepar-filter-thumb{width:64px;height:64px;border-radius:50%;overflow:hidden;transition:all .3s ease;border:3px solid rgba(255,255,255,.2)}
70
+ .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)}
71
+ .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}
72
+ .deepar-carousel-arrow.prev{left:16px}
73
+ .deepar-carousel-arrow.next{right:16px}
74
+ .deepar-carousel-arrow:hover:not(:disabled){transform:translateY(-50%) scale(1.1);background:rgba(0,0,0,.6)}
75
+ .deepar-carousel-arrow:disabled{opacity:.3;cursor:not-allowed}
76
+ .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)}
77
+ .deepar-selection-ring:hover{transform:translate(-50%,-50%) scale(1.05);border-color:#fff}
78
+ .deepar-selection-ring-camera{color:#fff}
79
+ .deepar-creation-container{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;z-index:8}
80
+ .deepar-created-video,.deepar-created-image{width:100%;height:100%;object-fit:cover}
81
+ .deepar-creation-buttons{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}
82
+ .deepar-creation-buttons>*{pointer-events:all}
83
+ .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}
84
+ .deepar-bottom-buttons-creation{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);display:flex;gap:16px}
85
+ .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}
86
+ .deepar-creation-button:hover{background:rgba(0,0,0,.7);transform:scale(1.1)}
87
+ .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}
88
+ .deepar-popup-box{background:#fff;border-radius:12px;padding:48px 32px;max-width:400px;width:90%;text-align:center}
89
+ .deepar-popup-image{margin:0 auto 20px;display:flex;align-items:center;justify-content:center}
90
+ .deepar-popup-title{font-size:18px;font-weight:600;color:#111;margin-bottom:24px}
91
+ .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}
92
+ .deepar-popup-button:hover{transform:scale(1.05)}
93
+ .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}
94
94
  `;
95
95
  function ARFilters(props) {
96
96
  (0, react_1.useEffect)(() => {
@@ -37,10 +37,10 @@ exports.AvatarAI = AvatarAI;
37
37
  exports.AvatarAIForYouCard = AvatarAIForYouCard;
38
38
  exports.AvatarAIPage = AvatarAIPage;
39
39
  const react_1 = __importStar(require("react"));
40
- const AVATAR_AI_CSS = `
41
- .avatarai-styles-grid::-webkit-scrollbar { width: 6px; }
42
- .avatarai-styles-grid::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 3px; }
43
- .avatarai-styles-grid::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }
40
+ const AVATAR_AI_CSS = `
41
+ .avatarai-styles-grid::-webkit-scrollbar { width: 6px; }
42
+ .avatarai-styles-grid::-webkit-scrollbar-track { background: #f1f1f1; border-radius: 3px; }
43
+ .avatarai-styles-grid::-webkit-scrollbar-thumb { background: #ccc; border-radius: 3px; }
44
44
  `;
45
45
  const defaultStyles = [
46
46
  { id: 1, name: 'Pirate', image: 'https://cdn.smarthubtech.net/upload/20240426_135427_99796_1_cuadrada.png' },
@@ -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
@@ -41,18 +41,18 @@ exports.CreativeFaceSwapPage = CreativeFaceSwapPage;
41
41
  exports.CreativeFaceSwap = CreativeFaceSwap;
42
42
  const react_1 = __importStar(require("react"));
43
43
  const link_1 = __importDefault(require("next/link"));
44
- const FACESWAP_CSS = `
45
- .faceswap-layout { display: flex; flex-direction: row; align-items: stretch; }
46
- .faceswap-col-left { width: 30%; min-width: 280px; background: white; border: 1px solid #e5e7eb; display: flex; flex-direction: column; }
47
- .faceswap-col-right { flex: 1; background: white; border: 1px solid #e5e7eb; border-left: none; display: flex; flex-direction: column; }
48
- .faceswap-col-right > div:first-child { flex: 0 0 auto; }
49
- .faceswap-col-right > div:last-child { flex: 1; display: flex; flex-direction: column; }
50
- .faceswap-col-right > div:last-child > .faceswap-result-area { flex: 1; min-height: 0; }
51
- @media (max-width: 768px) {
52
- .faceswap-layout { flex-direction: column; }
53
- .faceswap-col-left { width: 100%; min-width: unset; }
54
- .faceswap-col-right { border-left: 1px solid #e5e7eb; border-top: none; width: 100%; }
55
- }
44
+ const FACESWAP_CSS = `
45
+ .faceswap-layout { display: flex; flex-direction: row; align-items: stretch; }
46
+ .faceswap-col-left { width: 30%; min-width: 280px; background: white; border: 1px solid #e5e7eb; display: flex; flex-direction: column; }
47
+ .faceswap-col-right { flex: 1; background: white; border: 1px solid #e5e7eb; border-left: none; display: flex; flex-direction: column; }
48
+ .faceswap-col-right > div:first-child { flex: 0 0 auto; }
49
+ .faceswap-col-right > div:last-child { flex: 1; display: flex; flex-direction: column; }
50
+ .faceswap-col-right > div:last-child > .faceswap-result-area { flex: 1; min-height: 0; }
51
+ @media (max-width: 768px) {
52
+ .faceswap-layout { flex-direction: column; }
53
+ .faceswap-col-left { width: 100%; min-width: unset; }
54
+ .faceswap-col-right { border-left: 1px solid #e5e7eb; border-top: none; width: 100%; }
55
+ }
56
56
  `;
57
57
  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', }) {
58
58
  const effectiveMobileImage = mobileImage || desktopImage;
@@ -63,18 +63,18 @@ const defaultTexts = {
63
63
  noMemes: 'No memes available',
64
64
  };
65
65
  const TEXT_SHADOW = '2px 2px 0 #000, -2px -2px 0 #000, 2px -2px 0 #000, -2px 2px 0 #000';
66
- const MEME_CSS = `
67
- .memegen-grid {
68
- display: grid;
69
- grid-template-columns: 1fr;
70
- gap: 24px;
71
- align-items: stretch;
72
- }
73
- @media (min-width: 1024px) {
74
- .memegen-grid {
75
- grid-template-columns: 1fr 1fr;
76
- }
77
- }
66
+ const MEME_CSS = `
67
+ .memegen-grid {
68
+ display: grid;
69
+ grid-template-columns: 1fr;
70
+ gap: 24px;
71
+ align-items: stretch;
72
+ }
73
+ @media (min-width: 1024px) {
74
+ .memegen-grid {
75
+ grid-template-columns: 1fr 1fr;
76
+ }
77
+ }
78
78
  `;
79
79
  function MemeGenerator({ memes: memesProp, config, fonts = defaultFonts, defaultMemeIndex = 0, theme = {}, texts = {}, onDownload, }) {
80
80
  const mergedTheme = Object.assign(Object.assign({}, defaultTheme), theme);
@@ -0,0 +1,91 @@
1
+ import React from 'react';
2
+ export interface QuizQuestion {
3
+ id: string | number;
4
+ question: string;
5
+ thumbnail?: string;
6
+ options: Array<{
7
+ text: string;
8
+ points: number;
9
+ }>;
10
+ correctIndex?: number;
11
+ explanation?: string;
12
+ }
13
+ export interface QuizResult {
14
+ title: string;
15
+ description: string;
16
+ minPoints: number;
17
+ maxPoints: number;
18
+ }
19
+ export interface QuizItem {
20
+ id: string | number;
21
+ title: string;
22
+ description?: string;
23
+ thumbnail?: string;
24
+ contentsId: string;
25
+ }
26
+ export interface QuizTheme {
27
+ primaryColor?: string;
28
+ primaryHoverColor?: string;
29
+ textColor?: string;
30
+ backgroundColor?: string;
31
+ cardBackground?: string;
32
+ buttonColor?: string;
33
+ buttonTextColor?: string;
34
+ neutralMid?: string;
35
+ cardBorderColor?: string;
36
+ titleDarkColor?: string;
37
+ }
38
+ export interface QuizTexts {
39
+ title?: string;
40
+ subtitle?: string;
41
+ loading?: string;
42
+ noItems?: string;
43
+ loadMore?: string;
44
+ startQuiz?: string;
45
+ questionLabel?: string;
46
+ nextButton?: string;
47
+ previousButton?: string;
48
+ submitButton?: string;
49
+ correctAnswer?: string;
50
+ wrongAnswer?: string;
51
+ retryButton?: string;
52
+ closeButton?: string;
53
+ scoreLabel?: string;
54
+ loadingQuestions?: string;
55
+ }
56
+ export interface QuizConfig {
57
+ apiUrl: string;
58
+ questionsApiUrl?: string;
59
+ tags?: string[];
60
+ includeIds?: number[];
61
+ locale?: string;
62
+ initialCount?: number;
63
+ loadMoreCount?: number;
64
+ }
65
+ export interface QuizProps {
66
+ config: QuizConfig;
67
+ theme?: QuizTheme;
68
+ texts?: QuizTexts;
69
+ onQuizStart?: (quiz: QuizItem) => void;
70
+ onQuizComplete?: (score: number, totalQuestions: number) => void;
71
+ }
72
+ export declare function Quiz({ config, theme: themeP, texts: textsP, onQuizStart, onQuizComplete }: QuizProps): React.JSX.Element;
73
+ export interface QuizForYouCardProps {
74
+ title: string;
75
+ description: string;
76
+ ctaText: string;
77
+ ctaHref: string;
78
+ desktopImage: string;
79
+ mobileImage?: string;
80
+ imageAlt?: string;
81
+ imageOnRight?: boolean;
82
+ titleColor?: string;
83
+ descriptionColor?: string;
84
+ ctaColor?: string;
85
+ ctaHoverColor?: string;
86
+ backgroundColor?: string;
87
+ paddingClass?: string;
88
+ }
89
+ export declare function QuizForYouCard({ title, description, ctaText, ctaHref, desktopImage, mobileImage, imageAlt, imageOnRight, titleColor, descriptionColor, ctaColor, ctaHoverColor, backgroundColor, paddingClass, }: QuizForYouCardProps): React.JSX.Element;
90
+ export default Quiz;
91
+ //# sourceMappingURL=Quiz.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Quiz.d.ts","sourceRoot":"","sources":["../../src/components/Quiz.tsx"],"names":[],"mappings":"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"}