@cshah18/sdk 4.9.0 → 4.10.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.
- package/dist/cobuy-sdk.esm.js +20 -1558
- package/dist/cobuy-sdk.esm.js.map +1 -1
- package/dist/cobuy-sdk.umd.js +20 -1558
- package/dist/cobuy-sdk.umd.js.map +1 -1
- package/dist/types/core/types.d.ts +1 -1
- package/dist/types/ui/lobby/lobby-modal.d.ts +2 -12
- package/package.json +1 -1
package/dist/cobuy-sdk.esm.js
CHANGED
|
@@ -1323,7 +1323,7 @@ class GroupListModal {
|
|
|
1323
1323
|
el.style.opacity = disabled ? "0.5" : "1";
|
|
1324
1324
|
el.style.cursor = disabled ? "not-allowed" : "pointer";
|
|
1325
1325
|
el.setAttribute("aria-disabled", disabled ? "true" : "false");
|
|
1326
|
-
if (
|
|
1326
|
+
if (el.disabled !== undefined) {
|
|
1327
1327
|
el.disabled = disabled;
|
|
1328
1328
|
}
|
|
1329
1329
|
});
|
|
@@ -1353,7 +1353,7 @@ class GroupListModal {
|
|
|
1353
1353
|
createGroupCard(group) {
|
|
1354
1354
|
const card = document.createElement("div");
|
|
1355
1355
|
card.className = "cobuy-group-card";
|
|
1356
|
-
card.
|
|
1356
|
+
card.dataset.groupId = group.name || group.groupId;
|
|
1357
1357
|
const header = document.createElement("div");
|
|
1358
1358
|
header.className = "cobuy-group-card-header";
|
|
1359
1359
|
const groupId = document.createElement("div");
|
|
@@ -2084,7 +2084,7 @@ function isRedemptionValid(expiryDate) {
|
|
|
2084
2084
|
* LobbyModal - Renders and manages the group buying lobby modal
|
|
2085
2085
|
*/
|
|
2086
2086
|
class LobbyModal {
|
|
2087
|
-
constructor(data, callbacks, apiClient,
|
|
2087
|
+
constructor(data, callbacks, apiClient, socketManager = null, debug = false) {
|
|
2088
2088
|
this.modalElement = null;
|
|
2089
2089
|
this.timerInterval = null;
|
|
2090
2090
|
this.activityInterval = null;
|
|
@@ -2093,21 +2093,6 @@ class LobbyModal {
|
|
|
2093
2093
|
this.currentGroupId = null;
|
|
2094
2094
|
this.shareOverlay = null;
|
|
2095
2095
|
this.keyboardHandler = null;
|
|
2096
|
-
/**
|
|
2097
|
-
* Unsubscribe from socket events - testing out flow will remove once we have conviction
|
|
2098
|
-
*/
|
|
2099
|
-
// private unsubscribeFromSocketEvents(): void {
|
|
2100
|
-
// if (typeof window === "undefined" || !this.socketListenerRegistered) {
|
|
2101
|
-
// return;
|
|
2102
|
-
// }
|
|
2103
|
-
// window.removeEventListener("group:fulfilled", this.handleSocketGroupUpdate as EventListener);
|
|
2104
|
-
// window.removeEventListener(
|
|
2105
|
-
// "group:member:joined",
|
|
2106
|
-
// this.handleSocketGroupUpdate as EventListener,
|
|
2107
|
-
// );
|
|
2108
|
-
// window.removeEventListener("group:created", this.handleSocketGroupUpdate as EventListener);
|
|
2109
|
-
// this.socketListenerRegistered = false;
|
|
2110
|
-
// }
|
|
2111
2096
|
/**
|
|
2112
2097
|
* Handle socket group update events
|
|
2113
2098
|
*/
|
|
@@ -2198,7 +2183,6 @@ class LobbyModal {
|
|
|
2198
2183
|
};
|
|
2199
2184
|
this.logger = new Logger(debug);
|
|
2200
2185
|
this.apiClient = apiClient;
|
|
2201
|
-
this.analyticsClient = analyticsClient;
|
|
2202
2186
|
this.socketManager = socketManager;
|
|
2203
2187
|
// Log the group data being passed into the modal
|
|
2204
2188
|
this.logger.info("LobbyModal initialized with group data", {
|
|
@@ -2245,7 +2229,7 @@ class LobbyModal {
|
|
|
2245
2229
|
getTitleText(data) {
|
|
2246
2230
|
var _a, _b;
|
|
2247
2231
|
const remainingRaw = ((_a = data.totalMembers) !== null && _a !== void 0 ? _a : 0) - ((_b = data.currentMembers) !== null && _b !== void 0 ? _b : 0);
|
|
2248
|
-
const remaining =
|
|
2232
|
+
const remaining = Math.max(0, remainingRaw);
|
|
2249
2233
|
const unlocked = !this.computeIsLocked(data);
|
|
2250
2234
|
if (unlocked) {
|
|
2251
2235
|
return {
|
|
@@ -2373,7 +2357,7 @@ class LobbyModal {
|
|
|
2373
2357
|
createModalStructure() {
|
|
2374
2358
|
const modal = document.createElement("div");
|
|
2375
2359
|
modal.className = "cb-lobby-modal-container";
|
|
2376
|
-
modal.
|
|
2360
|
+
modal.dataset.productId = this.data.productId;
|
|
2377
2361
|
// Background
|
|
2378
2362
|
const background = document.createElement("div");
|
|
2379
2363
|
background.className = "cb-lobby-bg";
|
|
@@ -2907,1491 +2891,6 @@ class LobbyModal {
|
|
|
2907
2891
|
`;
|
|
2908
2892
|
document.head.appendChild(style);
|
|
2909
2893
|
}
|
|
2910
|
-
injectLobbyStyles() {
|
|
2911
|
-
// Only inject once per page load
|
|
2912
|
-
if (LobbyModal.stylesInjected) {
|
|
2913
|
-
return;
|
|
2914
|
-
}
|
|
2915
|
-
LobbyModal.stylesInjected = true;
|
|
2916
|
-
const style = document.createElement("style");
|
|
2917
|
-
style.id = "cobuy-lobby-styles";
|
|
2918
|
-
style.textContent = `
|
|
2919
|
-
/* Screen reader only - hide visually but keep available to AT */
|
|
2920
|
-
.sr-only {
|
|
2921
|
-
position: absolute;
|
|
2922
|
-
width: 1px;
|
|
2923
|
-
height: 1px;
|
|
2924
|
-
padding: 0;
|
|
2925
|
-
margin: -1px;
|
|
2926
|
-
overflow: hidden;
|
|
2927
|
-
clip: rect(0, 0, 0, 0);
|
|
2928
|
-
white-space: nowrap;
|
|
2929
|
-
border-width: 0;
|
|
2930
|
-
}
|
|
2931
|
-
|
|
2932
|
-
.cb-lobby-modal-container {
|
|
2933
|
-
position: fixed;
|
|
2934
|
-
top: 0;
|
|
2935
|
-
left: 0;
|
|
2936
|
-
width: 100%;
|
|
2937
|
-
height: 100%;
|
|
2938
|
-
z-index: 10000;
|
|
2939
|
-
}
|
|
2940
|
-
|
|
2941
|
-
.cb-lobby-modal-container * {
|
|
2942
|
-
margin: 0;
|
|
2943
|
-
padding: 0;
|
|
2944
|
-
box-sizing: border-box;
|
|
2945
|
-
}
|
|
2946
|
-
|
|
2947
|
-
.cb-lobby-modal-container html,
|
|
2948
|
-
.cb-lobby-modal-container body {
|
|
2949
|
-
font-family: "Inter", sans-serif;
|
|
2950
|
-
width: 100%;
|
|
2951
|
-
height: 100%;
|
|
2952
|
-
overflow-x: hidden;
|
|
2953
|
-
}
|
|
2954
|
-
|
|
2955
|
-
.cb-lobby-main {
|
|
2956
|
-
padding: 80px;
|
|
2957
|
-
background-color: color-mix(in oklab, #fff 5%, transparent);
|
|
2958
|
-
box-shadow: 0 25px 50px -12px #00000040;
|
|
2959
|
-
backdrop-filter: blur(4px);
|
|
2960
|
-
border-radius: 50px;
|
|
2961
|
-
width: 100%;
|
|
2962
|
-
position: relative;
|
|
2963
|
-
z-index: 1;
|
|
2964
|
-
}
|
|
2965
|
-
|
|
2966
|
-
.cb-lobby-bg {
|
|
2967
|
-
position: fixed;
|
|
2968
|
-
top: 0;
|
|
2969
|
-
left: 0;
|
|
2970
|
-
width: 100vw;
|
|
2971
|
-
height: 100vh;
|
|
2972
|
-
background-image: url("https://cobuy-dev.s3.af-south-1.amazonaws.com/public/sdk/cb-back-image.png");
|
|
2973
|
-
background-size: cover;
|
|
2974
|
-
background-position: center;
|
|
2975
|
-
background-repeat: no-repeat;
|
|
2976
|
-
z-index: -1;
|
|
2977
|
-
}
|
|
2978
|
-
|
|
2979
|
-
.cb-lobby-main-wp {
|
|
2980
|
-
display: flex;
|
|
2981
|
-
align-items: center;
|
|
2982
|
-
justify-content: center;
|
|
2983
|
-
padding: 40px 80px;
|
|
2984
|
-
}
|
|
2985
|
-
|
|
2986
|
-
.lobby-indicator {
|
|
2987
|
-
display: flex;
|
|
2988
|
-
align-items: center;
|
|
2989
|
-
gap: 12px;
|
|
2990
|
-
padding: 6px 12px;
|
|
2991
|
-
border-radius: 24px;
|
|
2992
|
-
background: rgba(16, 185, 129, 0.1);
|
|
2993
|
-
border: 1px solid rgba(16, 185, 129, 0.3);
|
|
2994
|
-
backdrop-filter: blur(8px);
|
|
2995
|
-
margin-bottom: 16px;
|
|
2996
|
-
width: fit-content;
|
|
2997
|
-
}
|
|
2998
|
-
|
|
2999
|
-
.lobby-indicator-logo {
|
|
3000
|
-
height: 34px;
|
|
3001
|
-
width: auto;
|
|
3002
|
-
display: block;
|
|
3003
|
-
flex-shrink: 0;
|
|
3004
|
-
}
|
|
3005
|
-
|
|
3006
|
-
.pulsing-dot {
|
|
3007
|
-
display: flex;
|
|
3008
|
-
align-items: center;
|
|
3009
|
-
justify-content: center;
|
|
3010
|
-
position: relative;
|
|
3011
|
-
width: 8px;
|
|
3012
|
-
height: 8px;
|
|
3013
|
-
}
|
|
3014
|
-
|
|
3015
|
-
.pulsing-dot::after {
|
|
3016
|
-
content: "";
|
|
3017
|
-
position: absolute;
|
|
3018
|
-
width: 100%;
|
|
3019
|
-
height: 100%;
|
|
3020
|
-
border-radius: 50%;
|
|
3021
|
-
background: #10b981;
|
|
3022
|
-
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
|
3023
|
-
}
|
|
3024
|
-
|
|
3025
|
-
.pulsing-dot::before {
|
|
3026
|
-
content: "";
|
|
3027
|
-
position: absolute;
|
|
3028
|
-
width: 100%;
|
|
3029
|
-
height: 100%;
|
|
3030
|
-
border-radius: 50%;
|
|
3031
|
-
background: #10b981;
|
|
3032
|
-
}
|
|
3033
|
-
|
|
3034
|
-
@keyframes pulse {
|
|
3035
|
-
0%, 100% {
|
|
3036
|
-
opacity: 1;
|
|
3037
|
-
}
|
|
3038
|
-
50% {
|
|
3039
|
-
opacity: 0.5;
|
|
3040
|
-
}
|
|
3041
|
-
}
|
|
3042
|
-
|
|
3043
|
-
.indicator-text {
|
|
3044
|
-
font-size: 11px;
|
|
3045
|
-
font-weight: 800;
|
|
3046
|
-
text-transform: uppercase;
|
|
3047
|
-
letter-spacing: 0.5px;
|
|
3048
|
-
color: #047857;
|
|
3049
|
-
line-height: 1;
|
|
3050
|
-
}
|
|
3051
|
-
|
|
3052
|
-
.lobby-status-section {
|
|
3053
|
-
display: flex;
|
|
3054
|
-
flex-direction: column;
|
|
3055
|
-
margin-bottom: 24px;
|
|
3056
|
-
}
|
|
3057
|
-
|
|
3058
|
-
.lobby-status {
|
|
3059
|
-
font-size: 10px;
|
|
3060
|
-
line-height: 1.2;
|
|
3061
|
-
font-weight: 600;
|
|
3062
|
-
padding: 6px 10px;
|
|
3063
|
-
background: #fff;
|
|
3064
|
-
border-radius: 4px;
|
|
3065
|
-
text-transform: uppercase;
|
|
3066
|
-
color: #000;
|
|
3067
|
-
}
|
|
3068
|
-
|
|
3069
|
-
.lobby-status.active {
|
|
3070
|
-
background: #155dfc;
|
|
3071
|
-
color: #fff;
|
|
3072
|
-
}
|
|
3073
|
-
|
|
3074
|
-
.lobby-status.complete {
|
|
3075
|
-
background: #10b981;
|
|
3076
|
-
color: #fff;
|
|
3077
|
-
}
|
|
3078
|
-
|
|
3079
|
-
.lobby-status-wp {
|
|
3080
|
-
display: flex;
|
|
3081
|
-
flex-wrap: wrap;
|
|
3082
|
-
align-items: center;
|
|
3083
|
-
gap: 10px;
|
|
3084
|
-
}
|
|
3085
|
-
|
|
3086
|
-
.lobby-number {
|
|
3087
|
-
background: rgb(255 255 255 / 20%);
|
|
3088
|
-
padding: 5px 8px;
|
|
3089
|
-
box-shadow: 0 25px 50px -12px #00000040;
|
|
3090
|
-
backdrop-filter: blur(3px);
|
|
3091
|
-
border-radius: 4px;
|
|
3092
|
-
text-transform: uppercase;
|
|
3093
|
-
letter-spacing: 1px;
|
|
3094
|
-
font-size: 12px;
|
|
3095
|
-
line-height: 1.2;
|
|
3096
|
-
font-weight: 700;
|
|
3097
|
-
}
|
|
3098
|
-
|
|
3099
|
-
.title-wp {
|
|
3100
|
-
margin-top: 25px;
|
|
3101
|
-
}
|
|
3102
|
-
|
|
3103
|
-
.title-wp h2 {
|
|
3104
|
-
font-size: 60px;
|
|
3105
|
-
line-height: 1;
|
|
3106
|
-
margin-bottom: 15px;
|
|
3107
|
-
font-weight: 900;
|
|
3108
|
-
}
|
|
3109
|
-
|
|
3110
|
-
.sub-title {
|
|
3111
|
-
font-size: 16px;
|
|
3112
|
-
line-height: 1.5;
|
|
3113
|
-
margin-bottom: 0;
|
|
3114
|
-
color: #1e293b;
|
|
3115
|
-
font-weight: 700;
|
|
3116
|
-
background-image: linear-gradient(90deg, #1e293b 0%, #2563eb 25%, #1e293b 50%);
|
|
3117
|
-
background-size: 200% auto;
|
|
3118
|
-
background-clip: text;
|
|
3119
|
-
-webkit-background-clip: text;
|
|
3120
|
-
-webkit-text-fill-color: transparent;
|
|
3121
|
-
animation: gradient-flow 4s linear infinite;
|
|
3122
|
-
}
|
|
3123
|
-
|
|
3124
|
-
@keyframes gradient-flow {
|
|
3125
|
-
0% {
|
|
3126
|
-
background-position: 200% 0;
|
|
3127
|
-
}
|
|
3128
|
-
100% {
|
|
3129
|
-
background-position: -200% 0;
|
|
3130
|
-
}
|
|
3131
|
-
}
|
|
3132
|
-
|
|
3133
|
-
.sub-title.completed {
|
|
3134
|
-
background-image: none;
|
|
3135
|
-
-webkit-text-fill-color: unset;
|
|
3136
|
-
background-clip: unset;
|
|
3137
|
-
-webkit-background-clip: unset;
|
|
3138
|
-
color: #1e293b;
|
|
3139
|
-
}
|
|
3140
|
-
|
|
3141
|
-
.connected-section {
|
|
3142
|
-
display: flex;
|
|
3143
|
-
flex-direction: column;
|
|
3144
|
-
gap: 20px;
|
|
3145
|
-
padding: 24px;
|
|
3146
|
-
margin-top: 24px;
|
|
3147
|
-
border-radius: 24px;
|
|
3148
|
-
background: rgba(255, 255, 255, 0.05);
|
|
3149
|
-
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
3150
|
-
backdrop-filter: blur(4px);
|
|
3151
|
-
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
3152
|
-
transition: all 0.3s ease;
|
|
3153
|
-
}
|
|
3154
|
-
|
|
3155
|
-
.connected-section:hover {
|
|
3156
|
-
background: rgba(255, 255, 255, 0.1);
|
|
3157
|
-
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);
|
|
3158
|
-
}
|
|
3159
|
-
|
|
3160
|
-
.link-share-container {
|
|
3161
|
-
display: flex;
|
|
3162
|
-
flex-direction: column;
|
|
3163
|
-
}
|
|
3164
|
-
|
|
3165
|
-
.link-share-wrapper {
|
|
3166
|
-
display: flex;
|
|
3167
|
-
align-items: center;
|
|
3168
|
-
gap: 12px;
|
|
3169
|
-
width: 100%;
|
|
3170
|
-
}
|
|
3171
|
-
|
|
3172
|
-
.lobby-link-box {
|
|
3173
|
-
display: flex;
|
|
3174
|
-
align-items: center;
|
|
3175
|
-
justify-content: space-between;
|
|
3176
|
-
gap: 16px;
|
|
3177
|
-
padding: 16px 20px;
|
|
3178
|
-
border-radius: 14px;
|
|
3179
|
-
backdrop-filter: blur(8px);
|
|
3180
|
-
background-color: rgb(255 255 255 / 40%);
|
|
3181
|
-
border: 1px solid rgb(255 255 255 / 30%);
|
|
3182
|
-
box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
|
|
3183
|
-
flex: 1;
|
|
3184
|
-
transition: all 0.2s ease;
|
|
3185
|
-
min-height: 50px;
|
|
3186
|
-
}
|
|
3187
|
-
|
|
3188
|
-
.lobby-link-box:hover {
|
|
3189
|
-
background-color: rgb(255 255 255 / 50%);
|
|
3190
|
-
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.08);
|
|
3191
|
-
}
|
|
3192
|
-
|
|
3193
|
-
.lobby-link-text {
|
|
3194
|
-
font-size: 10px;
|
|
3195
|
-
line-height: 1.2;
|
|
3196
|
-
font-weight: 700;
|
|
3197
|
-
text-transform: uppercase;
|
|
3198
|
-
letter-spacing: 0.6px;
|
|
3199
|
-
margin-bottom: 6px;
|
|
3200
|
-
color: #71717a;
|
|
3201
|
-
}
|
|
3202
|
-
|
|
3203
|
-
.copy-link-btn {
|
|
3204
|
-
padding: 0;
|
|
3205
|
-
display: flex;
|
|
3206
|
-
align-items: center;
|
|
3207
|
-
justify-content: center;
|
|
3208
|
-
gap: 6px;
|
|
3209
|
-
cursor: pointer;
|
|
3210
|
-
color: #64748b;
|
|
3211
|
-
background: transparent;
|
|
3212
|
-
border: none;
|
|
3213
|
-
font-size: 13px;
|
|
3214
|
-
font-weight: 600;
|
|
3215
|
-
border-radius: 6px;
|
|
3216
|
-
transition: all 0.2s ease;
|
|
3217
|
-
white-space: nowrap;
|
|
3218
|
-
flex-shrink: 0;
|
|
3219
|
-
}
|
|
3220
|
-
|
|
3221
|
-
.copy-link-btn:hover {
|
|
3222
|
-
color: #1e293b;
|
|
3223
|
-
}
|
|
3224
|
-
|
|
3225
|
-
.copy-link-btn .copy-text {
|
|
3226
|
-
display: none;
|
|
3227
|
-
}
|
|
3228
|
-
|
|
3229
|
-
.copy-link-btn svg {
|
|
3230
|
-
width: 18px;
|
|
3231
|
-
height: 18px;
|
|
3232
|
-
flex-shrink: 0;
|
|
3233
|
-
}
|
|
3234
|
-
|
|
3235
|
-
@media (min-width: 640px) {
|
|
3236
|
-
.copy-link-btn .copy-text {
|
|
3237
|
-
display: inline;
|
|
3238
|
-
}
|
|
3239
|
-
}
|
|
3240
|
-
|
|
3241
|
-
.lobby-link-url {
|
|
3242
|
-
font-size: 15px;
|
|
3243
|
-
line-height: 1.4;
|
|
3244
|
-
font-weight: 700;
|
|
3245
|
-
color: #1e293b;
|
|
3246
|
-
word-break: break-all;
|
|
3247
|
-
}
|
|
3248
|
-
|
|
3249
|
-
.link-box-container {
|
|
3250
|
-
flex: 1;
|
|
3251
|
-
min-width: 0;
|
|
3252
|
-
}
|
|
3253
|
-
|
|
3254
|
-
.share-btn {
|
|
3255
|
-
background: #1e293b;
|
|
3256
|
-
color: #fff;
|
|
3257
|
-
padding: 35px 24px;
|
|
3258
|
-
border-radius: 14px;
|
|
3259
|
-
height: 50px;
|
|
3260
|
-
min-width: auto;
|
|
3261
|
-
display: flex;
|
|
3262
|
-
align-items: center;
|
|
3263
|
-
justify-content: center;
|
|
3264
|
-
gap: 8px;
|
|
3265
|
-
cursor: pointer;
|
|
3266
|
-
border: none;
|
|
3267
|
-
font-weight: 600;
|
|
3268
|
-
font-size: 15px;
|
|
3269
|
-
transition: all 0.2s ease;
|
|
3270
|
-
box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
|
|
3271
|
-
flex-shrink: 0;
|
|
3272
|
-
}
|
|
3273
|
-
|
|
3274
|
-
.share-btn .share-text {
|
|
3275
|
-
display: inline;
|
|
3276
|
-
color: #fff;
|
|
3277
|
-
font-size: 15px;
|
|
3278
|
-
}
|
|
3279
|
-
|
|
3280
|
-
.share-btn svg {
|
|
3281
|
-
color: #fff;
|
|
3282
|
-
}
|
|
3283
|
-
|
|
3284
|
-
@media (max-width: 640px) {
|
|
3285
|
-
.share-btn {
|
|
3286
|
-
padding: 0 18px;
|
|
3287
|
-
font-size: 14px;
|
|
3288
|
-
height: 50px;
|
|
3289
|
-
}
|
|
3290
|
-
.share-btn .share-text {
|
|
3291
|
-
display: inline;
|
|
3292
|
-
color: #fff;
|
|
3293
|
-
}
|
|
3294
|
-
}
|
|
3295
|
-
|
|
3296
|
-
.share-btn:hover {
|
|
3297
|
-
background: #0f172a;
|
|
3298
|
-
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.15);
|
|
3299
|
-
transform: translateY(-1px);
|
|
3300
|
-
}
|
|
3301
|
-
|
|
3302
|
-
.share-btn:active {
|
|
3303
|
-
transform: scale(0.95);
|
|
3304
|
-
}
|
|
3305
|
-
|
|
3306
|
-
.share-btn svg {
|
|
3307
|
-
width: 18px;
|
|
3308
|
-
height: 18px;
|
|
3309
|
-
flex-shrink: 0;
|
|
3310
|
-
}
|
|
3311
|
-
|
|
3312
|
-
.lobby-offer-box {
|
|
3313
|
-
display: flex;
|
|
3314
|
-
align-items: center;
|
|
3315
|
-
gap: 30px;
|
|
3316
|
-
padding: 15px 20px;
|
|
3317
|
-
border-radius: 1rem;
|
|
3318
|
-
backdrop-filter: blur(8px);
|
|
3319
|
-
border: 1px solid rgba(59, 130, 246, 0.125);
|
|
3320
|
-
background-color: rgba(59, 130, 246, 0.063);
|
|
3321
|
-
margin-top: 30px;
|
|
3322
|
-
}
|
|
3323
|
-
|
|
3324
|
-
.offer-box-icon {
|
|
3325
|
-
background: linear-gradient(135deg, rgb(59, 130, 246), rgba(59, 130, 246, 0.867));
|
|
3326
|
-
box-shadow: rgba(59, 130, 246, 0.314) 0px 10px 15px -3px;
|
|
3327
|
-
color: #fff;
|
|
3328
|
-
padding: 5px;
|
|
3329
|
-
border-radius: 10px;
|
|
3330
|
-
width: 56px;
|
|
3331
|
-
height: 56px;
|
|
3332
|
-
display: flex;
|
|
3333
|
-
align-items: center;
|
|
3334
|
-
justify-content: center;
|
|
3335
|
-
cursor: pointer;
|
|
3336
|
-
}
|
|
3337
|
-
|
|
3338
|
-
.offer-lock-status {
|
|
3339
|
-
display: flex;
|
|
3340
|
-
align-items: center;
|
|
3341
|
-
gap: 6px;
|
|
3342
|
-
margin-bottom: 2px;
|
|
3343
|
-
}
|
|
3344
|
-
|
|
3345
|
-
.offer-lock-status span {
|
|
3346
|
-
font-size: 14px;
|
|
3347
|
-
line-height: 1;
|
|
3348
|
-
font-weight: 700;
|
|
3349
|
-
}
|
|
3350
|
-
|
|
3351
|
-
.offer-box-content h3 {
|
|
3352
|
-
font-size: 30px;
|
|
3353
|
-
line-height: 1.2;
|
|
3354
|
-
font-weight: 900;
|
|
3355
|
-
}
|
|
3356
|
-
|
|
3357
|
-
.cb-lobby-top {
|
|
3358
|
-
display: grid;
|
|
3359
|
-
grid-template-columns: 7fr 5fr;
|
|
3360
|
-
gap: 100px;
|
|
3361
|
-
}
|
|
3362
|
-
|
|
3363
|
-
.group-info {
|
|
3364
|
-
background-color: color-mix(in oklab, #fff 5%, transparent);
|
|
3365
|
-
backdrop-filter: blur(8px);
|
|
3366
|
-
border-radius: 20px;
|
|
3367
|
-
padding: 30px;
|
|
3368
|
-
box-shadow: 0 10px 15px -3px #0000001a;
|
|
3369
|
-
}
|
|
3370
|
-
|
|
3371
|
-
.progress-header {
|
|
3372
|
-
display: flex;
|
|
3373
|
-
justify-content: space-between;
|
|
3374
|
-
align-items: center;
|
|
3375
|
-
margin-bottom: 14px;
|
|
3376
|
-
}
|
|
3377
|
-
|
|
3378
|
-
.progress-header .title {
|
|
3379
|
-
position: relative;
|
|
3380
|
-
display: flex;
|
|
3381
|
-
justify-content: center;
|
|
3382
|
-
align-items: center;
|
|
3383
|
-
font-size: 14px;
|
|
3384
|
-
font-weight: 900;
|
|
3385
|
-
letter-spacing: 0.7px;
|
|
3386
|
-
color: #000;
|
|
3387
|
-
}
|
|
3388
|
-
|
|
3389
|
-
.progress-badge {
|
|
3390
|
-
background: #3b82f6;
|
|
3391
|
-
color: #fff;
|
|
3392
|
-
font-size: 13px;
|
|
3393
|
-
font-weight: 700;
|
|
3394
|
-
padding: 6px 12px;
|
|
3395
|
-
border-radius: 999px;
|
|
3396
|
-
box-shadow: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;
|
|
3397
|
-
}
|
|
3398
|
-
|
|
3399
|
-
.cb-lobby-modal-container .progress-bar {
|
|
3400
|
-
width: 100%;
|
|
3401
|
-
height: 14px;
|
|
3402
|
-
background: #ffffff;
|
|
3403
|
-
border-radius: 999px;
|
|
3404
|
-
overflow: hidden;
|
|
3405
|
-
}
|
|
3406
|
-
|
|
3407
|
-
.cb-lobby-modal-container .progress-fill {
|
|
3408
|
-
height: 100%;
|
|
3409
|
-
width: 0;
|
|
3410
|
-
border-radius: 999px;
|
|
3411
|
-
position: relative;
|
|
3412
|
-
background: #3b82f6;
|
|
3413
|
-
background-image: linear-gradient(120deg, rgba(255, 255, 255, 0.15) 25%, rgba(255, 255, 255, 0.45) 37%, rgba(255, 255, 255, 0.15) 63%);
|
|
3414
|
-
background-size: 200% 100%;
|
|
3415
|
-
animation: shimmer 2.7s infinite linear;
|
|
3416
|
-
transition: width 0.6s ease;
|
|
3417
|
-
}
|
|
3418
|
-
|
|
3419
|
-
@keyframes shimmer {
|
|
3420
|
-
0% {
|
|
3421
|
-
background-position: -200% 0;
|
|
3422
|
-
}
|
|
3423
|
-
100% {
|
|
3424
|
-
background-position: 200% 0;
|
|
3425
|
-
}
|
|
3426
|
-
}
|
|
3427
|
-
|
|
3428
|
-
.progress-labels {
|
|
3429
|
-
display: flex;
|
|
3430
|
-
justify-content: space-between;
|
|
3431
|
-
margin-top: 8px;
|
|
3432
|
-
font-size: 12px;
|
|
3433
|
-
color: #474d56;
|
|
3434
|
-
}
|
|
3435
|
-
|
|
3436
|
-
.team-card {
|
|
3437
|
-
margin-top: 40px;
|
|
3438
|
-
}
|
|
3439
|
-
|
|
3440
|
-
.team-card .icon-box svg {
|
|
3441
|
-
width: 16px;
|
|
3442
|
-
}
|
|
3443
|
-
|
|
3444
|
-
.team-card .team-header {
|
|
3445
|
-
display: flex;
|
|
3446
|
-
justify-content: space-between;
|
|
3447
|
-
align-items: center;
|
|
3448
|
-
}
|
|
3449
|
-
|
|
3450
|
-
.team-card .team-title {
|
|
3451
|
-
display: flex;
|
|
3452
|
-
align-items: center;
|
|
3453
|
-
gap: 12px;
|
|
3454
|
-
font-size: 14px;
|
|
3455
|
-
font-weight: 600;
|
|
3456
|
-
letter-spacing: 1px;
|
|
3457
|
-
}
|
|
3458
|
-
|
|
3459
|
-
.team-card .icon-box {
|
|
3460
|
-
width: 2rem;
|
|
3461
|
-
height: 2rem;
|
|
3462
|
-
border-radius: 0.5rem;
|
|
3463
|
-
display: flex;
|
|
3464
|
-
align-items: center;
|
|
3465
|
-
justify-content: center;
|
|
3466
|
-
font-size: 18px;
|
|
3467
|
-
background-color: #3b82f6;
|
|
3468
|
-
color: #fff;
|
|
3469
|
-
box-shadow: 0 10px 15px -3px #3b82f64d;
|
|
3470
|
-
}
|
|
3471
|
-
|
|
3472
|
-
.team-card .team-title span {
|
|
3473
|
-
font-size: 14px;
|
|
3474
|
-
font-weight: 900;
|
|
3475
|
-
letter-spacing: 0.7px;
|
|
3476
|
-
color: #000;
|
|
3477
|
-
}
|
|
3478
|
-
|
|
3479
|
-
.team-card .team-count {
|
|
3480
|
-
padding: 6px 12px;
|
|
3481
|
-
border-radius: 9999px;
|
|
3482
|
-
color: #fff;
|
|
3483
|
-
font-weight: 700;
|
|
3484
|
-
font-size: 13px;
|
|
3485
|
-
letter-spacing: 0.7px;
|
|
3486
|
-
background-color: #3b82f6;
|
|
3487
|
-
box-shadow: 0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;
|
|
3488
|
-
}
|
|
3489
|
-
|
|
3490
|
-
.team-card .team-members {
|
|
3491
|
-
display: flex;
|
|
3492
|
-
align-items: center;
|
|
3493
|
-
justify-content: center;
|
|
3494
|
-
gap: 14px;
|
|
3495
|
-
margin-top: 20px;
|
|
3496
|
-
}
|
|
3497
|
-
|
|
3498
|
-
.team-card .member {
|
|
3499
|
-
position: relative;
|
|
3500
|
-
width: 56px;
|
|
3501
|
-
height: 56px;
|
|
3502
|
-
border-radius: 50%;
|
|
3503
|
-
display: flex;
|
|
3504
|
-
align-items: center;
|
|
3505
|
-
justify-content: center;
|
|
3506
|
-
font-size: 22px;
|
|
3507
|
-
color: #fff;
|
|
3508
|
-
border: 3px solid #fff;
|
|
3509
|
-
box-shadow: 0 4px 12px #0000001a;
|
|
3510
|
-
}
|
|
3511
|
-
|
|
3512
|
-
.team-card .member::after {
|
|
3513
|
-
content: "";
|
|
3514
|
-
position: absolute;
|
|
3515
|
-
bottom: -4px;
|
|
3516
|
-
right: -4px;
|
|
3517
|
-
width: 12px;
|
|
3518
|
-
height: 12px;
|
|
3519
|
-
background: #3b82f6;
|
|
3520
|
-
background-image: url("https://cobuy-dev.s3.af-south-1.amazonaws.com/public/sdk/tick-mark-icon.svg");
|
|
3521
|
-
background-size: 75%;
|
|
3522
|
-
background-repeat: no-repeat;
|
|
3523
|
-
background-position: center;
|
|
3524
|
-
color: #fff;
|
|
3525
|
-
border-radius: 50%;
|
|
3526
|
-
display: flex;
|
|
3527
|
-
align-items: center;
|
|
3528
|
-
justify-content: center;
|
|
3529
|
-
border: 2px solid #fff;
|
|
3530
|
-
padding: 2px;
|
|
3531
|
-
}
|
|
3532
|
-
|
|
3533
|
-
.team-card .member.blue {
|
|
3534
|
-
background: #2563eb;
|
|
3535
|
-
}
|
|
3536
|
-
|
|
3537
|
-
.team-card .member.purple {
|
|
3538
|
-
background: #9333ea;
|
|
3539
|
-
}
|
|
3540
|
-
|
|
3541
|
-
.team-card .member.pink {
|
|
3542
|
-
background: #ec4899;
|
|
3543
|
-
}
|
|
3544
|
-
|
|
3545
|
-
.team-card .member.orange {
|
|
3546
|
-
background: #f97316;
|
|
3547
|
-
}
|
|
3548
|
-
|
|
3549
|
-
.team-card .member.empty {
|
|
3550
|
-
background: #f8fafc;
|
|
3551
|
-
color: #9ca3af;
|
|
3552
|
-
}
|
|
3553
|
-
|
|
3554
|
-
.team-card .member.empty::after {
|
|
3555
|
-
display: none;
|
|
3556
|
-
}
|
|
3557
|
-
|
|
3558
|
-
.time-card {
|
|
3559
|
-
border-radius: 20px;
|
|
3560
|
-
padding: 15px;
|
|
3561
|
-
display: flex;
|
|
3562
|
-
align-items: center;
|
|
3563
|
-
gap: 14px;
|
|
3564
|
-
margin-top: 30px;
|
|
3565
|
-
background: rgba(255, 255, 255, 0.2);
|
|
3566
|
-
border: 1px solid rgba(255, 255, 255, 0.2);
|
|
3567
|
-
backdrop-filter: blur(8px);
|
|
3568
|
-
}
|
|
3569
|
-
|
|
3570
|
-
.time-card .time-icon {
|
|
3571
|
-
width: 48px;
|
|
3572
|
-
height: 48px;
|
|
3573
|
-
background: #3b82f6;
|
|
3574
|
-
color: #fff;
|
|
3575
|
-
border-radius: 14px;
|
|
3576
|
-
display: flex;
|
|
3577
|
-
align-items: center;
|
|
3578
|
-
justify-content: center;
|
|
3579
|
-
font-size: 22px;
|
|
3580
|
-
flex-shrink: 0;
|
|
3581
|
-
}
|
|
3582
|
-
|
|
3583
|
-
.time-card .time-content {
|
|
3584
|
-
display: flex;
|
|
3585
|
-
flex-direction: column;
|
|
3586
|
-
}
|
|
3587
|
-
|
|
3588
|
-
.time-card .time-label {
|
|
3589
|
-
font-size: 12px;
|
|
3590
|
-
font-weight: 600;
|
|
3591
|
-
letter-spacing: 0.6px;
|
|
3592
|
-
color: #4b5563;
|
|
3593
|
-
}
|
|
3594
|
-
|
|
3595
|
-
.time-card .time-value {
|
|
3596
|
-
font-size: 22px;
|
|
3597
|
-
font-weight: 900;
|
|
3598
|
-
color: #111827;
|
|
3599
|
-
}
|
|
3600
|
-
|
|
3601
|
-
.group-info-box {
|
|
3602
|
-
background: color-mix(in oklab, #fff 5%, transparent);
|
|
3603
|
-
border: 1px solid color-mix(in oklab, #fff 20%, transparent);
|
|
3604
|
-
backdrop-filter: blur(8px);
|
|
3605
|
-
padding: 30px;
|
|
3606
|
-
box-shadow: 0 10px 15px -3px #0000001a;
|
|
3607
|
-
border-radius: 1.5rem;
|
|
3608
|
-
}
|
|
3609
|
-
|
|
3610
|
-
.offer-lock-status svg {
|
|
3611
|
-
width: 16px;
|
|
3612
|
-
height: 16px;
|
|
3613
|
-
}
|
|
3614
|
-
|
|
3615
|
-
.cb-lobby-modal-container .offer-box-content .reward-text {
|
|
3616
|
-
font-size: 14px;
|
|
3617
|
-
line-height: 1;
|
|
3618
|
-
margin-top: 4px;
|
|
3619
|
-
color: #000;
|
|
3620
|
-
background: unset;
|
|
3621
|
-
border: none;
|
|
3622
|
-
}
|
|
3623
|
-
|
|
3624
|
-
.progress-header .title:before {
|
|
3625
|
-
content: "";
|
|
3626
|
-
position: relative;
|
|
3627
|
-
display: inline-block;
|
|
3628
|
-
width: 8px;
|
|
3629
|
-
height: 8px;
|
|
3630
|
-
background: rgb(59, 130, 246);
|
|
3631
|
-
border-radius: 50%;
|
|
3632
|
-
margin-right: 8px;
|
|
3633
|
-
}
|
|
3634
|
-
|
|
3635
|
-
.live-activity-wrapper {
|
|
3636
|
-
padding: 16px;
|
|
3637
|
-
background-color: color-mix(in oklab, #fff 80%, transparent);
|
|
3638
|
-
border-radius: 18px;
|
|
3639
|
-
box-shadow: 0 30px 80px rgba(0, 0, 0, 0.15);
|
|
3640
|
-
backdrop-filter: blur(8px);
|
|
3641
|
-
}
|
|
3642
|
-
|
|
3643
|
-
.live-activity-header {
|
|
3644
|
-
display: flex;
|
|
3645
|
-
justify-content: space-between;
|
|
3646
|
-
margin-bottom: 12px;
|
|
3647
|
-
gap: 10px;
|
|
3648
|
-
}
|
|
3649
|
-
|
|
3650
|
-
.live-activity-header .title {
|
|
3651
|
-
font-weight: 600;
|
|
3652
|
-
display: flex;
|
|
3653
|
-
align-items: center;
|
|
3654
|
-
gap: 8px;
|
|
3655
|
-
font-size: 14px;
|
|
3656
|
-
font-weight: 900;
|
|
3657
|
-
letter-spacing: 0.7px;
|
|
3658
|
-
color: #000;
|
|
3659
|
-
}
|
|
3660
|
-
|
|
3661
|
-
.live-activity-header .dot {
|
|
3662
|
-
position: relative;
|
|
3663
|
-
width: 8px;
|
|
3664
|
-
height: 8px;
|
|
3665
|
-
background: #3b82f6;
|
|
3666
|
-
border-radius: 50%;
|
|
3667
|
-
}
|
|
3668
|
-
|
|
3669
|
-
.live-activity-header .dot::after {
|
|
3670
|
-
content: "";
|
|
3671
|
-
position: absolute;
|
|
3672
|
-
inset: 0;
|
|
3673
|
-
border-radius: 50%;
|
|
3674
|
-
background: rgba(59, 130, 246, 0.6);
|
|
3675
|
-
animation: livePulse 1.6s ease-out infinite;
|
|
3676
|
-
}
|
|
3677
|
-
|
|
3678
|
-
@keyframes livePulse {
|
|
3679
|
-
0% {
|
|
3680
|
-
transform: scale(1);
|
|
3681
|
-
opacity: 0.8;
|
|
3682
|
-
}
|
|
3683
|
-
70% {
|
|
3684
|
-
transform: scale(2.4);
|
|
3685
|
-
opacity: 0;
|
|
3686
|
-
}
|
|
3687
|
-
100% {
|
|
3688
|
-
opacity: 0;
|
|
3689
|
-
}
|
|
3690
|
-
}
|
|
3691
|
-
|
|
3692
|
-
.activity-stats {
|
|
3693
|
-
display: flex;
|
|
3694
|
-
align-items: center;
|
|
3695
|
-
gap: 8px;
|
|
3696
|
-
}
|
|
3697
|
-
|
|
3698
|
-
.activity-stats-badge {
|
|
3699
|
-
padding: 4px 10px;
|
|
3700
|
-
border-radius: 999px;
|
|
3701
|
-
font-size: 12px;
|
|
3702
|
-
line-height: 1;
|
|
3703
|
-
font-weight: 500;
|
|
3704
|
-
background-color: rgba(59, 130, 246, 0.082);
|
|
3705
|
-
color: rgb(59, 130, 246);
|
|
3706
|
-
}
|
|
3707
|
-
|
|
3708
|
-
.activity-stats-badge.light {
|
|
3709
|
-
background-color: #f9f3f4;
|
|
3710
|
-
color: #45556c;
|
|
3711
|
-
}
|
|
3712
|
-
|
|
3713
|
-
.activity-list {
|
|
3714
|
-
position: relative;
|
|
3715
|
-
height: 104px;
|
|
3716
|
-
overflow: hidden;
|
|
3717
|
-
}
|
|
3718
|
-
|
|
3719
|
-
.activity-card {
|
|
3720
|
-
position: absolute;
|
|
3721
|
-
inset: 0;
|
|
3722
|
-
height: 58px;
|
|
3723
|
-
display: flex;
|
|
3724
|
-
align-items: center;
|
|
3725
|
-
gap: 10px;
|
|
3726
|
-
padding: 12px 10px;
|
|
3727
|
-
background: linear-gradient(90deg, #fff, #f2f6ff);
|
|
3728
|
-
border-radius: 14px;
|
|
3729
|
-
border: 1px solid #dbeafe;
|
|
3730
|
-
transition: transform 600ms cubic-bezier(0.22, 0.61, 0.36, 1), opacity 600ms;
|
|
3731
|
-
}
|
|
3732
|
-
|
|
3733
|
-
.activity-card .text {
|
|
3734
|
-
font-size: 14px;
|
|
3735
|
-
}
|
|
3736
|
-
|
|
3737
|
-
.activity-card .avatar {
|
|
3738
|
-
width: 30px;
|
|
3739
|
-
height: 30px;
|
|
3740
|
-
border-radius: 50%;
|
|
3741
|
-
display: flex;
|
|
3742
|
-
align-items: center;
|
|
3743
|
-
justify-content: center;
|
|
3744
|
-
color: #fff;
|
|
3745
|
-
flex: 0 0 30px;
|
|
3746
|
-
}
|
|
3747
|
-
|
|
3748
|
-
.activity-card .pink {
|
|
3749
|
-
background: linear-gradient(135deg, #ec4899, #f472b6);
|
|
3750
|
-
}
|
|
3751
|
-
|
|
3752
|
-
.activity-card .purple {
|
|
3753
|
-
background: linear-gradient(135deg, #8b5cf6, #a78bfa);
|
|
3754
|
-
}
|
|
3755
|
-
|
|
3756
|
-
.activity-card .blue {
|
|
3757
|
-
background: linear-gradient(135deg, #3b82f6, #60a5fa);
|
|
3758
|
-
}
|
|
3759
|
-
|
|
3760
|
-
.activity-card .green {
|
|
3761
|
-
background: linear-gradient(135deg, #10b981, #34d399);
|
|
3762
|
-
}
|
|
3763
|
-
|
|
3764
|
-
.activity-card .orange {
|
|
3765
|
-
background: linear-gradient(135deg, #f97316, #fb923c);
|
|
3766
|
-
}
|
|
3767
|
-
|
|
3768
|
-
.activity-card .text p {
|
|
3769
|
-
margin: 2px 0 0;
|
|
3770
|
-
font-size: 12px;
|
|
3771
|
-
color: #6b7280;
|
|
3772
|
-
}
|
|
3773
|
-
|
|
3774
|
-
.activity-card .time {
|
|
3775
|
-
margin-left: auto;
|
|
3776
|
-
font-size: 10px;
|
|
3777
|
-
color: #94a3b8;
|
|
3778
|
-
}
|
|
3779
|
-
|
|
3780
|
-
.lobby-activity-wp {
|
|
3781
|
-
margin-top: 50px;
|
|
3782
|
-
padding: 8px;
|
|
3783
|
-
border-radius: 25px;
|
|
3784
|
-
backdrop-filter: blur(12px);
|
|
3785
|
-
background-color: rgb(255 255 255 / 40%);
|
|
3786
|
-
border: 1px solid rgb(255 255 255 / 20%);
|
|
3787
|
-
box-shadow: 0 1px 3px 0 #0000001a;
|
|
3788
|
-
}
|
|
3789
|
-
|
|
3790
|
-
.lobby-close-icon {
|
|
3791
|
-
position: fixed;
|
|
3792
|
-
top: 30px;
|
|
3793
|
-
right: 30px;
|
|
3794
|
-
display: flex;
|
|
3795
|
-
align-items: center;
|
|
3796
|
-
justify-content: center;
|
|
3797
|
-
background-color: color-mix(in oklab, #000 80%, transparent);
|
|
3798
|
-
color: #fff;
|
|
3799
|
-
width: 34px;
|
|
3800
|
-
height: 34px;
|
|
3801
|
-
border-radius: 50%;
|
|
3802
|
-
cursor: pointer;
|
|
3803
|
-
z-index: 99;
|
|
3804
|
-
}
|
|
3805
|
-
|
|
3806
|
-
.lobby-close-icon svg {
|
|
3807
|
-
width: 20px;
|
|
3808
|
-
height: 20px;
|
|
3809
|
-
}
|
|
3810
|
-
|
|
3811
|
-
@media screen and (max-width: 1600px) {
|
|
3812
|
-
.cb-lobby-main {
|
|
3813
|
-
padding: 50px;
|
|
3814
|
-
border-radius: 30px;
|
|
3815
|
-
}
|
|
3816
|
-
.title-wp h2 {
|
|
3817
|
-
font-size: 48px;
|
|
3818
|
-
margin-bottom: 12px;
|
|
3819
|
-
}
|
|
3820
|
-
.sub-title {
|
|
3821
|
-
font-size: 16px;
|
|
3822
|
-
}
|
|
3823
|
-
.title-wp {
|
|
3824
|
-
margin-top: 20px;
|
|
3825
|
-
}
|
|
3826
|
-
.lobby-link-section {
|
|
3827
|
-
margin-top: 30px;
|
|
3828
|
-
}
|
|
3829
|
-
.offer-box-content h3 {
|
|
3830
|
-
font-size: 26px;
|
|
3831
|
-
}
|
|
3832
|
-
.lobby-offer-box {
|
|
3833
|
-
gap: 24px;
|
|
3834
|
-
padding: 15px;
|
|
3835
|
-
}
|
|
3836
|
-
.cb-lobby-top {
|
|
3837
|
-
gap: 80px;
|
|
3838
|
-
}
|
|
3839
|
-
.group-info-box {
|
|
3840
|
-
padding: 22px;
|
|
3841
|
-
border-radius: 20px;
|
|
3842
|
-
}
|
|
3843
|
-
.team-card {
|
|
3844
|
-
margin-top: 30px;
|
|
3845
|
-
}
|
|
3846
|
-
.team-card .team-members {
|
|
3847
|
-
margin-top: 12px;
|
|
3848
|
-
}
|
|
3849
|
-
.lobby-activity-wp {
|
|
3850
|
-
margin-top: 40px;
|
|
3851
|
-
}
|
|
3852
|
-
.lobby-close-icon {
|
|
3853
|
-
top: 20px;
|
|
3854
|
-
width: 30px;
|
|
3855
|
-
height: 30px;
|
|
3856
|
-
}
|
|
3857
|
-
}
|
|
3858
|
-
|
|
3859
|
-
@media screen and (max-width: 1280px) {
|
|
3860
|
-
.cb-lobby-main-wp {
|
|
3861
|
-
padding: 40px;
|
|
3862
|
-
}
|
|
3863
|
-
.cb-lobby-main {
|
|
3864
|
-
padding: 40px;
|
|
3865
|
-
}
|
|
3866
|
-
.title-wp h2 {
|
|
3867
|
-
font-size: 42px;
|
|
3868
|
-
}
|
|
3869
|
-
.cb-lobby-top {
|
|
3870
|
-
gap: 60px;
|
|
3871
|
-
}
|
|
3872
|
-
}
|
|
3873
|
-
|
|
3874
|
-
@media screen and (max-width: 1120px) {
|
|
3875
|
-
.title-wp h2 {
|
|
3876
|
-
font-size: 38px;
|
|
3877
|
-
}
|
|
3878
|
-
}
|
|
3879
|
-
|
|
3880
|
-
@media screen and (max-width: 991px) {
|
|
3881
|
-
.cb-lobby-top {
|
|
3882
|
-
grid-template-columns: 1fr;
|
|
3883
|
-
gap: 30px;
|
|
3884
|
-
}
|
|
3885
|
-
.cb-lobby-main {
|
|
3886
|
-
padding: 30px;
|
|
3887
|
-
border-radius: 15px;
|
|
3888
|
-
}
|
|
3889
|
-
.cb-lobby-main-wp {
|
|
3890
|
-
padding: 30px;
|
|
3891
|
-
}
|
|
3892
|
-
.lobby-close-icon {
|
|
3893
|
-
right: 20px;
|
|
3894
|
-
}
|
|
3895
|
-
.lobby-link-box {
|
|
3896
|
-
border-radius: 10px;
|
|
3897
|
-
}
|
|
3898
|
-
.share-btn {
|
|
3899
|
-
border-radius: 8px;
|
|
3900
|
-
}
|
|
3901
|
-
.offer-box-content h3 {
|
|
3902
|
-
font-size: 24px;
|
|
3903
|
-
}
|
|
3904
|
-
.lobby-offer-box {
|
|
3905
|
-
margin-top: 20px;
|
|
3906
|
-
border-radius: 15px;
|
|
3907
|
-
}
|
|
3908
|
-
.time-card {
|
|
3909
|
-
margin-top: 20px;
|
|
3910
|
-
border-radius: 15px;
|
|
3911
|
-
}
|
|
3912
|
-
.lobby-activity-wp {
|
|
3913
|
-
margin-top: 20px;
|
|
3914
|
-
border-radius: 15px;
|
|
3915
|
-
}
|
|
3916
|
-
.live-activity-wrapper {
|
|
3917
|
-
border-radius: 10px;
|
|
3918
|
-
}
|
|
3919
|
-
.group-info-box {
|
|
3920
|
-
border-radius: 15px;
|
|
3921
|
-
}
|
|
3922
|
-
}
|
|
3923
|
-
|
|
3924
|
-
@media screen and (max-width: 575px) {
|
|
3925
|
-
.cb-lobby-main-wp {
|
|
3926
|
-
padding: 20px;
|
|
3927
|
-
}
|
|
3928
|
-
.cb-lobby-main {
|
|
3929
|
-
padding: 20px;
|
|
3930
|
-
}
|
|
3931
|
-
.title-wp h2 {
|
|
3932
|
-
font-size: 30px;
|
|
3933
|
-
}
|
|
3934
|
-
.lobby-link-text {
|
|
3935
|
-
font-size: 11px;
|
|
3936
|
-
margin-bottom: 4px;
|
|
3937
|
-
}
|
|
3938
|
-
.lobby-link-url {
|
|
3939
|
-
font-size: 14px;
|
|
3940
|
-
}
|
|
3941
|
-
.lobby-link-box {
|
|
3942
|
-
padding: 12px 16px;
|
|
3943
|
-
min-height: 48px;
|
|
3944
|
-
}
|
|
3945
|
-
.link-share-wrapper {
|
|
3946
|
-
gap: 10px;
|
|
3947
|
-
}
|
|
3948
|
-
.share-btn {
|
|
3949
|
-
height: 48px;
|
|
3950
|
-
min-width: auto;
|
|
3951
|
-
border-radius: 8px;
|
|
3952
|
-
padding: 0 14px;
|
|
3953
|
-
font-size: 13px;
|
|
3954
|
-
}
|
|
3955
|
-
.lobby-offer-box {
|
|
3956
|
-
padding: 10px;
|
|
3957
|
-
}
|
|
3958
|
-
.offer-box-content h3 {
|
|
3959
|
-
font-size: 20px;
|
|
3960
|
-
}
|
|
3961
|
-
.offer-box-content .reward-text {
|
|
3962
|
-
font-size: 13px;
|
|
3963
|
-
}
|
|
3964
|
-
.group-info-box {
|
|
3965
|
-
padding: 13px;
|
|
3966
|
-
}
|
|
3967
|
-
.progress-header .title {
|
|
3968
|
-
font-size: 13px;
|
|
3969
|
-
}
|
|
3970
|
-
.team-card .team-title span {
|
|
3971
|
-
font-size: 13px;
|
|
3972
|
-
}
|
|
3973
|
-
.team-card .member {
|
|
3974
|
-
width: 40px;
|
|
3975
|
-
height: 40px;
|
|
3976
|
-
}
|
|
3977
|
-
.team-card .member::after {
|
|
3978
|
-
width: 8px;
|
|
3979
|
-
height: 8px;
|
|
3980
|
-
}
|
|
3981
|
-
.team-card .team-members {
|
|
3982
|
-
margin-top: 12px;
|
|
3983
|
-
gap: 10px;
|
|
3984
|
-
}
|
|
3985
|
-
.time-card {
|
|
3986
|
-
padding: 13px;
|
|
3987
|
-
}
|
|
3988
|
-
.team-card {
|
|
3989
|
-
margin-top: 22px;
|
|
3990
|
-
}
|
|
3991
|
-
.activity-card .text {
|
|
3992
|
-
font-size: 12px;
|
|
3993
|
-
}
|
|
3994
|
-
.activity-card .text p {
|
|
3995
|
-
font-size: 11px;
|
|
3996
|
-
}
|
|
3997
|
-
.live-activity-header .title {
|
|
3998
|
-
font-size: 12px;
|
|
3999
|
-
}
|
|
4000
|
-
.time-card .time-value {
|
|
4001
|
-
font-size: 20px;
|
|
4002
|
-
}
|
|
4003
|
-
}
|
|
4004
|
-
|
|
4005
|
-
@media screen and (max-width: 480px) {
|
|
4006
|
-
.cb-lobby-main-wp {
|
|
4007
|
-
padding: 20px 12px;
|
|
4008
|
-
}
|
|
4009
|
-
.cb-lobby-main {
|
|
4010
|
-
padding: 15px 12px;
|
|
4011
|
-
}
|
|
4012
|
-
.lobby-status {
|
|
4013
|
-
font-size: 9px;
|
|
4014
|
-
}
|
|
4015
|
-
.lobby-number {
|
|
4016
|
-
font-size: 10px;
|
|
4017
|
-
}
|
|
4018
|
-
.title-wp h2 {
|
|
4019
|
-
font-size: 28px;
|
|
4020
|
-
margin-bottom: 7px;
|
|
4021
|
-
}
|
|
4022
|
-
.sub-title {
|
|
4023
|
-
font-size: 14px;
|
|
4024
|
-
}
|
|
4025
|
-
.lobby-link-section {
|
|
4026
|
-
gap: 10px;
|
|
4027
|
-
margin-top: 20px;
|
|
4028
|
-
}
|
|
4029
|
-
.lobby-offer-box {
|
|
4030
|
-
gap: 12px;
|
|
4031
|
-
}
|
|
4032
|
-
.offer-box-icon {
|
|
4033
|
-
width: 45px;
|
|
4034
|
-
height: 45px;
|
|
4035
|
-
}
|
|
4036
|
-
.offer-lock-status span {
|
|
4037
|
-
font-size: 12px;
|
|
4038
|
-
}
|
|
4039
|
-
.offer-box-content .reward-text {
|
|
4040
|
-
font-size: 12px;
|
|
4041
|
-
}
|
|
4042
|
-
.cb-lobby-top {
|
|
4043
|
-
gap: 20px;
|
|
4044
|
-
}
|
|
4045
|
-
.lobby-close-icon {
|
|
4046
|
-
right: 10px;
|
|
4047
|
-
top: 10px;
|
|
4048
|
-
}
|
|
4049
|
-
.live-activity-header {
|
|
4050
|
-
flex-direction: column;
|
|
4051
|
-
gap: 5px;
|
|
4052
|
-
}
|
|
4053
|
-
.activity-card {
|
|
4054
|
-
padding: 6px;
|
|
4055
|
-
border-radius: 9px;
|
|
4056
|
-
}
|
|
4057
|
-
}
|
|
4058
|
-
|
|
4059
|
-
.share-overlay {
|
|
4060
|
-
position: fixed;
|
|
4061
|
-
inset: 0;
|
|
4062
|
-
background: rgba(0, 0, 0, 0.45);
|
|
4063
|
-
display: flex;
|
|
4064
|
-
align-items: center;
|
|
4065
|
-
justify-content: center;
|
|
4066
|
-
opacity: 0;
|
|
4067
|
-
visibility: hidden;
|
|
4068
|
-
transition: 0.3s ease;
|
|
4069
|
-
z-index: 999;
|
|
4070
|
-
}
|
|
4071
|
-
|
|
4072
|
-
.share-overlay.active {
|
|
4073
|
-
opacity: 1;
|
|
4074
|
-
visibility: visible;
|
|
4075
|
-
}
|
|
4076
|
-
|
|
4077
|
-
.share-popup {
|
|
4078
|
-
background: #fff;
|
|
4079
|
-
width: 420px;
|
|
4080
|
-
border-radius: 18px;
|
|
4081
|
-
padding: 24px;
|
|
4082
|
-
transform: translateY(30px);
|
|
4083
|
-
transition: 0.35s ease;
|
|
4084
|
-
position: relative;
|
|
4085
|
-
max-height: 90%;
|
|
4086
|
-
overflow: auto;
|
|
4087
|
-
}
|
|
4088
|
-
|
|
4089
|
-
.share-overlay.active .share-popup {
|
|
4090
|
-
transform: translateY(0);
|
|
4091
|
-
}
|
|
4092
|
-
|
|
4093
|
-
.share-popup .close-btn {
|
|
4094
|
-
position: absolute;
|
|
4095
|
-
right: 14px;
|
|
4096
|
-
top: 14px;
|
|
4097
|
-
border: none;
|
|
4098
|
-
background: rgb(243, 244, 246);
|
|
4099
|
-
border-radius: 50%;
|
|
4100
|
-
width: 32px;
|
|
4101
|
-
height: 32px;
|
|
4102
|
-
display: flex;
|
|
4103
|
-
align-items: center;
|
|
4104
|
-
justify-content: center;
|
|
4105
|
-
cursor: pointer;
|
|
4106
|
-
transition: 0.3s;
|
|
4107
|
-
}
|
|
4108
|
-
|
|
4109
|
-
.share-popup .close-btn:hover {
|
|
4110
|
-
background: rgb(238 236 236);
|
|
4111
|
-
}
|
|
4112
|
-
|
|
4113
|
-
.share-popup h2 {
|
|
4114
|
-
margin-bottom: 10px;
|
|
4115
|
-
font-size: 22px;
|
|
4116
|
-
line-height: 1;
|
|
4117
|
-
font-weight: 600;
|
|
4118
|
-
}
|
|
4119
|
-
|
|
4120
|
-
.share-popup .subtitle {
|
|
4121
|
-
color: #4a5565;
|
|
4122
|
-
font-size: 14px;
|
|
4123
|
-
margin: 6px 0 30px;
|
|
4124
|
-
}
|
|
4125
|
-
|
|
4126
|
-
.share-popup .share-grid {
|
|
4127
|
-
display: grid;
|
|
4128
|
-
grid-template-columns: repeat(2, 1fr);
|
|
4129
|
-
gap: 14px;
|
|
4130
|
-
}
|
|
4131
|
-
|
|
4132
|
-
.share-popup .share-card {
|
|
4133
|
-
background: #f2f6f9;
|
|
4134
|
-
border-radius: 14px;
|
|
4135
|
-
padding: 16px;
|
|
4136
|
-
text-align: center;
|
|
4137
|
-
cursor: pointer;
|
|
4138
|
-
position: relative;
|
|
4139
|
-
transition: 0.25s ease;
|
|
4140
|
-
display: flex;
|
|
4141
|
-
flex-direction: column;
|
|
4142
|
-
align-items: center;
|
|
4143
|
-
}
|
|
4144
|
-
|
|
4145
|
-
.share-popup .share-card:hover {
|
|
4146
|
-
transform: translateY(-3px);
|
|
4147
|
-
}
|
|
4148
|
-
|
|
4149
|
-
.share-popup .share-card .icon {
|
|
4150
|
-
font-size: 30px;
|
|
4151
|
-
margin-bottom: 8px;
|
|
4152
|
-
width: 50px;
|
|
4153
|
-
height: 50px;
|
|
4154
|
-
text-align: center;
|
|
4155
|
-
display: flex;
|
|
4156
|
-
align-items: center;
|
|
4157
|
-
justify-content: center;
|
|
4158
|
-
background: rgb(24, 119, 242);
|
|
4159
|
-
border-radius: 50%;
|
|
4160
|
-
color: #fff;
|
|
4161
|
-
}
|
|
4162
|
-
|
|
4163
|
-
.share-popup .share-card span {
|
|
4164
|
-
font-size: 13px;
|
|
4165
|
-
font-weight: 500;
|
|
4166
|
-
}
|
|
4167
|
-
|
|
4168
|
-
.share-popup .share-card.whatsapp {
|
|
4169
|
-
background: #ecfdf5;
|
|
4170
|
-
border: 2px solid #22c55e;
|
|
4171
|
-
color: #22c55e;
|
|
4172
|
-
}
|
|
4173
|
-
|
|
4174
|
-
.share-popup .share-card.whatsapp .icon {
|
|
4175
|
-
background: #22c55e;
|
|
4176
|
-
}
|
|
4177
|
-
|
|
4178
|
-
.share-popup .share-card .badge {
|
|
4179
|
-
position: absolute;
|
|
4180
|
-
top: -8px;
|
|
4181
|
-
right: 10px;
|
|
4182
|
-
background: #2563eb;
|
|
4183
|
-
color: #fff;
|
|
4184
|
-
font-size: 11px;
|
|
4185
|
-
padding: 4px 10px;
|
|
4186
|
-
border-radius: 12px;
|
|
4187
|
-
}
|
|
4188
|
-
|
|
4189
|
-
.share-popup .link-box {
|
|
4190
|
-
background: #fbf9fa;
|
|
4191
|
-
border-radius: 14px;
|
|
4192
|
-
padding: 14px;
|
|
4193
|
-
margin-top: 18px;
|
|
4194
|
-
border: 1px solid #ebe6e7;
|
|
4195
|
-
}
|
|
4196
|
-
|
|
4197
|
-
.share-popup .link-box label {
|
|
4198
|
-
font-size: 13px;
|
|
4199
|
-
color: #64748b;
|
|
4200
|
-
}
|
|
4201
|
-
|
|
4202
|
-
.share-popup .link-row {
|
|
4203
|
-
display: flex;
|
|
4204
|
-
gap: 8px;
|
|
4205
|
-
margin-top: 6px;
|
|
4206
|
-
}
|
|
4207
|
-
|
|
4208
|
-
.share-popup .link-row input {
|
|
4209
|
-
flex: 1;
|
|
4210
|
-
border: none;
|
|
4211
|
-
background: transparent;
|
|
4212
|
-
font-size: 13px;
|
|
4213
|
-
letter-spacing: 0.8px;
|
|
4214
|
-
line-height: 1.2;
|
|
4215
|
-
color: #334155;
|
|
4216
|
-
outline: none;
|
|
4217
|
-
}
|
|
4218
|
-
|
|
4219
|
-
.share-popup .link-row button {
|
|
4220
|
-
background: #fff;
|
|
4221
|
-
border-radius: 10px;
|
|
4222
|
-
cursor: pointer;
|
|
4223
|
-
padding: 6px 8px;
|
|
4224
|
-
border: 1px solid #ebe6e7;
|
|
4225
|
-
display: flex;
|
|
4226
|
-
align-items: center;
|
|
4227
|
-
justify-content: center;
|
|
4228
|
-
width: 35px;
|
|
4229
|
-
height: 35px;
|
|
4230
|
-
}
|
|
4231
|
-
|
|
4232
|
-
.share-popup .success {
|
|
4233
|
-
display: block;
|
|
4234
|
-
margin-top: 6px;
|
|
4235
|
-
color: #2563eb;
|
|
4236
|
-
font-size: 12px;
|
|
4237
|
-
opacity: 0;
|
|
4238
|
-
transition: opacity 0.3s;
|
|
4239
|
-
}
|
|
4240
|
-
|
|
4241
|
-
.share-popup .success.show {
|
|
4242
|
-
opacity: 1;
|
|
4243
|
-
}
|
|
4244
|
-
|
|
4245
|
-
.share-popup .footer-text {
|
|
4246
|
-
margin-top: 14px;
|
|
4247
|
-
text-align: center;
|
|
4248
|
-
font-size: 12px;
|
|
4249
|
-
color: #64748b;
|
|
4250
|
-
}
|
|
4251
|
-
|
|
4252
|
-
.share-popup .share-card.twitter .icon {
|
|
4253
|
-
background: #000;
|
|
4254
|
-
}
|
|
4255
|
-
|
|
4256
|
-
.share-popup .share-card.facebook .icon {
|
|
4257
|
-
background: rgb(24, 119, 242);
|
|
4258
|
-
}
|
|
4259
|
-
|
|
4260
|
-
.share-popup .share-card.sms .icon {
|
|
4261
|
-
background: #059669;
|
|
4262
|
-
}
|
|
4263
|
-
|
|
4264
|
-
.share-popup .share-card.copied .icon {
|
|
4265
|
-
background: #2563eb;
|
|
4266
|
-
}
|
|
4267
|
-
|
|
4268
|
-
@keyframes entrance-fade-in {
|
|
4269
|
-
from {
|
|
4270
|
-
opacity: 0;
|
|
4271
|
-
}
|
|
4272
|
-
to {
|
|
4273
|
-
opacity: 1;
|
|
4274
|
-
}
|
|
4275
|
-
}
|
|
4276
|
-
|
|
4277
|
-
@keyframes entrance-scale-in {
|
|
4278
|
-
from {
|
|
4279
|
-
opacity: 0;
|
|
4280
|
-
transform: scale(0.9) translateY(20px);
|
|
4281
|
-
}
|
|
4282
|
-
to {
|
|
4283
|
-
opacity: 1;
|
|
4284
|
-
transform: scale(1) translateY(0);
|
|
4285
|
-
}
|
|
4286
|
-
}
|
|
4287
|
-
|
|
4288
|
-
@keyframes entrance-text-fade-in {
|
|
4289
|
-
from {
|
|
4290
|
-
opacity: 0;
|
|
4291
|
-
}
|
|
4292
|
-
to {
|
|
4293
|
-
opacity: 1;
|
|
4294
|
-
}
|
|
4295
|
-
}
|
|
4296
|
-
|
|
4297
|
-
@keyframes exit-blur-scale {
|
|
4298
|
-
from {
|
|
4299
|
-
opacity: 1;
|
|
4300
|
-
transform: scale(1);
|
|
4301
|
-
filter: blur(0px);
|
|
4302
|
-
}
|
|
4303
|
-
to {
|
|
4304
|
-
opacity: 0;
|
|
4305
|
-
transform: scale(1.1);
|
|
4306
|
-
filter: blur(10px);
|
|
4307
|
-
}
|
|
4308
|
-
}
|
|
4309
|
-
|
|
4310
|
-
@keyframes pulse-dot {
|
|
4311
|
-
0%, 100% {
|
|
4312
|
-
opacity: 1;
|
|
4313
|
-
}
|
|
4314
|
-
50% {
|
|
4315
|
-
opacity: 0.5;
|
|
4316
|
-
}
|
|
4317
|
-
}
|
|
4318
|
-
|
|
4319
|
-
.entrance-animation-overlay {
|
|
4320
|
-
position: fixed;
|
|
4321
|
-
inset: 0;
|
|
4322
|
-
z-index: 9999;
|
|
4323
|
-
display: flex;
|
|
4324
|
-
flex-direction: column;
|
|
4325
|
-
align-items: center;
|
|
4326
|
-
justify-content: center;
|
|
4327
|
-
background-color: #0f172a;
|
|
4328
|
-
color: white;
|
|
4329
|
-
animation: entrance-fade-in 0.8s ease-in-out forwards;
|
|
4330
|
-
}
|
|
4331
|
-
|
|
4332
|
-
.entrance-animation-overlay.exit {
|
|
4333
|
-
animation: exit-blur-scale 0.8s ease-in-out forwards;
|
|
4334
|
-
}
|
|
4335
|
-
|
|
4336
|
-
.entrance-content {
|
|
4337
|
-
display: flex;
|
|
4338
|
-
flex-direction: column;
|
|
4339
|
-
align-items: center;
|
|
4340
|
-
animation: entrance-scale-in 0.5s ease-out 0.2s both;
|
|
4341
|
-
}
|
|
4342
|
-
|
|
4343
|
-
.entrance-icon-box {
|
|
4344
|
-
width: 64px;
|
|
4345
|
-
height: 64px;
|
|
4346
|
-
margin-bottom: 24px;
|
|
4347
|
-
border-radius: 16px;
|
|
4348
|
-
background: #2563eb;
|
|
4349
|
-
display: flex;
|
|
4350
|
-
align-items: center;
|
|
4351
|
-
justify-content: center;
|
|
4352
|
-
box-shadow: 0 10px 25px rgba(37, 99, 235, 0.2);
|
|
4353
|
-
}
|
|
4354
|
-
|
|
4355
|
-
.entrance-icon-box svg {
|
|
4356
|
-
width: 32px;
|
|
4357
|
-
height: 32px;
|
|
4358
|
-
color: white;
|
|
4359
|
-
}
|
|
4360
|
-
|
|
4361
|
-
.entrance-title {
|
|
4362
|
-
font-size: 32px;
|
|
4363
|
-
font-weight: 700;
|
|
4364
|
-
letter-spacing: -0.5px;
|
|
4365
|
-
margin-bottom: 12px;
|
|
4366
|
-
}
|
|
4367
|
-
|
|
4368
|
-
@media (min-width: 768px) {
|
|
4369
|
-
.entrance-title {
|
|
4370
|
-
font-size: 48px;
|
|
4371
|
-
}
|
|
4372
|
-
}
|
|
4373
|
-
|
|
4374
|
-
.entrance-message {
|
|
4375
|
-
color: #60a5fa;
|
|
4376
|
-
font-weight: 500;
|
|
4377
|
-
font-size: 18px;
|
|
4378
|
-
display: flex;
|
|
4379
|
-
align-items: center;
|
|
4380
|
-
gap: 8px;
|
|
4381
|
-
animation: entrance-text-fade-in 0.5s ease-out 0.5s both;
|
|
4382
|
-
}
|
|
4383
|
-
|
|
4384
|
-
.entrance-pulse-dot {
|
|
4385
|
-
width: 8px;
|
|
4386
|
-
height: 8px;
|
|
4387
|
-
border-radius: 50%;
|
|
4388
|
-
background-color: #60a5fa;
|
|
4389
|
-
animation: pulse-dot 1.5s ease-in-out infinite;
|
|
4390
|
-
}
|
|
4391
|
-
`;
|
|
4392
|
-
document.head.appendChild(style);
|
|
4393
|
-
this.logger.info("Lobby styles injected successfully");
|
|
4394
|
-
}
|
|
4395
2894
|
/**
|
|
4396
2895
|
* Trigger the same checkout flow as clicking "Continue to Checkout" on the widget
|
|
4397
2896
|
*/
|
|
@@ -5043,8 +3542,6 @@ class LobbyModal {
|
|
|
5043
3542
|
groupNumber: this.data.groupNumber,
|
|
5044
3543
|
status: this.data.status,
|
|
5045
3544
|
});
|
|
5046
|
-
// Inject lobby styles (only happens once per page load)
|
|
5047
|
-
this.injectLobbyStyles();
|
|
5048
3545
|
// Show entrance animation, then open modal after animation completes
|
|
5049
3546
|
this.showEntranceAnimation(() => {
|
|
5050
3547
|
this.modalElement = this.createModalStructure();
|
|
@@ -5095,12 +3592,10 @@ class LobbyModal {
|
|
|
5095
3592
|
lastElement.focus();
|
|
5096
3593
|
}
|
|
5097
3594
|
}
|
|
5098
|
-
else {
|
|
3595
|
+
else if (activeElement === lastElement) {
|
|
5099
3596
|
// TAB pressed - move forwards
|
|
5100
|
-
|
|
5101
|
-
|
|
5102
|
-
firstElement.focus();
|
|
5103
|
-
}
|
|
3597
|
+
event.preventDefault();
|
|
3598
|
+
firstElement.focus();
|
|
5104
3599
|
}
|
|
5105
3600
|
}
|
|
5106
3601
|
};
|
|
@@ -5145,11 +3640,6 @@ class LobbyModal {
|
|
|
5145
3640
|
this.stopActivityAnimation();
|
|
5146
3641
|
// Remove keyboard event listeners
|
|
5147
3642
|
this.removeKeyboardAccessibility();
|
|
5148
|
-
// // Unsubscribe from socket events and group - testing out flow will remove once we have conviction
|
|
5149
|
-
// this.unsubscribeFromSocketEvents();
|
|
5150
|
-
// if (this.socketManager && this.currentGroupId) {
|
|
5151
|
-
// this.socketManager.unsubscribeFromGroup(this.currentGroupId);
|
|
5152
|
-
// }
|
|
5153
3643
|
// Remove modal from DOM
|
|
5154
3644
|
document.body.removeChild(this.modalElement);
|
|
5155
3645
|
this.modalElement = null;
|
|
@@ -5336,8 +3826,8 @@ class LobbyModal {
|
|
|
5336
3826
|
"orange",
|
|
5337
3827
|
];
|
|
5338
3828
|
const randomColor = colors[Math.floor(Math.random() * colors.length)];
|
|
5339
|
-
let emoji
|
|
5340
|
-
let action
|
|
3829
|
+
let emoji;
|
|
3830
|
+
let action;
|
|
5341
3831
|
switch (eventType) {
|
|
5342
3832
|
case "group:member:joined":
|
|
5343
3833
|
emoji = "👤";
|
|
@@ -5412,11 +3902,6 @@ class LobbyModal {
|
|
|
5412
3902
|
}
|
|
5413
3903
|
}
|
|
5414
3904
|
}
|
|
5415
|
-
/**
|
|
5416
|
-
* Inject lobby styles into the document head
|
|
5417
|
-
* This is called once when the first lobby modal is created
|
|
5418
|
-
*/
|
|
5419
|
-
LobbyModal.stylesInjected = false;
|
|
5420
3905
|
|
|
5421
3906
|
/**
|
|
5422
3907
|
* Offline Redemption Modal
|
|
@@ -5975,7 +4460,7 @@ class WidgetRoot {
|
|
|
5975
4460
|
}
|
|
5976
4461
|
else if (this.currentGroupData) {
|
|
5977
4462
|
// Check if data actually changed using participant count
|
|
5978
|
-
const currentParticipants = groupContainer.
|
|
4463
|
+
const currentParticipants = groupContainer.dataset.participants;
|
|
5979
4464
|
const newParticipants = String(this.currentGroupData.participants_count || 0);
|
|
5980
4465
|
if (currentParticipants !== newParticipants) {
|
|
5981
4466
|
// Data changed, re-render
|
|
@@ -5983,7 +4468,7 @@ class WidgetRoot {
|
|
|
5983
4468
|
const groupEl = this.renderGroupInfo();
|
|
5984
4469
|
if (groupEl) {
|
|
5985
4470
|
// Store current participants for next diff
|
|
5986
|
-
groupContainer.
|
|
4471
|
+
groupContainer.dataset.participants = newParticipants;
|
|
5987
4472
|
groupContainer.style.display = "";
|
|
5988
4473
|
groupContainer.appendChild(groupEl);
|
|
5989
4474
|
}
|
|
@@ -6099,8 +4584,8 @@ class WidgetRoot {
|
|
|
6099
4584
|
// Match static HTML structure: cobuy-progress container
|
|
6100
4585
|
const root = document.createElement("div");
|
|
6101
4586
|
root.className = "cobuy-progress";
|
|
6102
|
-
root.
|
|
6103
|
-
root.
|
|
4587
|
+
root.dataset.current = String(participants);
|
|
4588
|
+
root.dataset.target = String(max);
|
|
6104
4589
|
// Progress header with two spans
|
|
6105
4590
|
const header = document.createElement("div");
|
|
6106
4591
|
header.className = "progress-header";
|
|
@@ -6124,7 +4609,7 @@ class WidgetRoot {
|
|
|
6124
4609
|
const expiry = Date.parse(data.expiry_at);
|
|
6125
4610
|
this.updateTimer(progressText, expiry, remaining);
|
|
6126
4611
|
const interval = window.setInterval(() => this.updateTimer(progressText, expiry, remaining), 1000);
|
|
6127
|
-
progressText.
|
|
4612
|
+
progressText.dataset.timerId = String(interval);
|
|
6128
4613
|
root.appendChild(header);
|
|
6129
4614
|
root.appendChild(progressBar);
|
|
6130
4615
|
// Create footer with timer on left and View all Groups link on right
|
|
@@ -6298,7 +4783,7 @@ class WidgetRoot {
|
|
|
6298
4783
|
totalMembers: joinData.group.max_participants,
|
|
6299
4784
|
timeLeft: joinData.group.timeLeftSeconds,
|
|
6300
4785
|
};
|
|
6301
|
-
const lobbyModal = new LobbyModal(lobbyData, {}, null, null,
|
|
4786
|
+
const lobbyModal = new LobbyModal(lobbyData, {}, null, null, this.config.debug);
|
|
6302
4787
|
lobbyModal.open(joinData.group.id);
|
|
6303
4788
|
});
|
|
6304
4789
|
// Set callback for viewing progress on already joined group
|
|
@@ -6315,7 +4800,7 @@ class WidgetRoot {
|
|
|
6315
4800
|
currentMembers: groupData.joined,
|
|
6316
4801
|
totalMembers: groupData.total,
|
|
6317
4802
|
};
|
|
6318
|
-
const lobbyModal = new LobbyModal(lobbyData, {}, null, null,
|
|
4803
|
+
const lobbyModal = new LobbyModal(lobbyData, {}, null, null, this.config.debug);
|
|
6319
4804
|
lobbyModal.open(groupId);
|
|
6320
4805
|
});
|
|
6321
4806
|
}
|
|
@@ -6431,7 +4916,7 @@ class WidgetRoot {
|
|
|
6431
4916
|
// Listen for realtime fulfillment updates once per page
|
|
6432
4917
|
this.subscribeToSocketEvents();
|
|
6433
4918
|
// Host safety + idempotency markers
|
|
6434
|
-
container.
|
|
4919
|
+
container.dataset.cobuyMounted = "true";
|
|
6435
4920
|
container.style.maxWidth = "100%";
|
|
6436
4921
|
container.style.width = "100%";
|
|
6437
4922
|
container.style.boxSizing = "border-box";
|
|
@@ -6967,29 +5452,6 @@ class WidgetRoot {
|
|
|
6967
5452
|
rewardLine.style.opacity = "0";
|
|
6968
5453
|
rewardLine.style.animation =
|
|
6969
5454
|
"cobuy-fadeIn var(--cobuy-animation-duration, 300ms) var(--cobuy-animation-easing, ease-out) forwards";
|
|
6970
|
-
// if (isFulfilled) {
|
|
6971
|
-
// const rewardText = this.formatRewardText(activeReward);
|
|
6972
|
-
// rewardLine.textContent = rewardText
|
|
6973
|
-
// ? `Reward available: ${rewardText}`
|
|
6974
|
-
// : "Reward available for this group";
|
|
6975
|
-
// rewardLine.setAttribute(
|
|
6976
|
-
// "aria-label",
|
|
6977
|
-
// rewardText ? `Reward locked in: ${rewardText}` : "Reward available for this group",
|
|
6978
|
-
// );
|
|
6979
|
-
// rewardLine.title = rewardLine.textContent;
|
|
6980
|
-
// } else if (activeReward) {
|
|
6981
|
-
// const rewardText = this.formatRewardText(activeReward);
|
|
6982
|
-
// rewardLine.textContent = rewardText
|
|
6983
|
-
// ? `Save up to ${rewardText} with CoBuy`
|
|
6984
|
-
// : "CoBuy reward available";
|
|
6985
|
-
// rewardLine.setAttribute("aria-label", `Eligible for CoBuy reward: ${rewardLine.textContent}`);
|
|
6986
|
-
// rewardLine.title = rewardLine.textContent;
|
|
6987
|
-
// } else {
|
|
6988
|
-
// rewardLine.textContent = "CoBuy offer loading or unavailable";
|
|
6989
|
-
// rewardLine.setAttribute("aria-label", "CoBuy offer loading or unavailable");
|
|
6990
|
-
// rewardLine.title = "CoBuy offer loading or unavailable";
|
|
6991
|
-
// rewardLine.style.color = "#6b7280";
|
|
6992
|
-
// }
|
|
6993
5455
|
sections.reward = rewardLine;
|
|
6994
5456
|
// Button - semantic button element with accessibility
|
|
6995
5457
|
const button = document.createElement("button");
|
|
@@ -13910,7 +12372,7 @@ class CoBuy {
|
|
|
13910
12372
|
}
|
|
13911
12373
|
try {
|
|
13912
12374
|
const botd = await load();
|
|
13913
|
-
const result =
|
|
12375
|
+
const result = botd.detect();
|
|
13914
12376
|
const score = typeof result.score === "number" ? result.score : result.bot ? 1 : 0;
|
|
13915
12377
|
this.botdScore = score;
|
|
13916
12378
|
if (this.apiClient) {
|
|
@@ -14310,7 +12772,7 @@ class CoBuy {
|
|
|
14310
12772
|
},
|
|
14311
12773
|
onCopyLink: options.onCopyLink,
|
|
14312
12774
|
onShare: options.onShare,
|
|
14313
|
-
}, this.apiClient, this.
|
|
12775
|
+
}, this.apiClient, this.socketManager, config.debug);
|
|
14314
12776
|
// Store in map for persistence
|
|
14315
12777
|
this.modals.set(modalKey, modal);
|
|
14316
12778
|
// Maintain backward compatibility
|