{"version":3,"file":"GameDataSystem.BN62H89J.mjs","names":["useContext","useMemo","useState","useRef","useCallback","Heading","_Fragment","React.useRef","React.useState"],"sources":["https:/framerusercontent.com/modules/3nhLfnqCWyw6sj2jGVIF/KvBgqJ3TCFtSfaCzCL9Y/GameDataSystem.js"],"sourcesContent":["/**\n * Azul Games API System\n *\n * A centralized game data system that:\n * - Fetches all game stats in ONE batched API request\n * - Provides shared data via React Context\n * - Supports sorting by player count\n * - Filters games by minimum player threshold\n * - Aggregates \"Other\" games below threshold\n * - Persists last successful stats in localStorage as offline/rate-limit fallback\n * - Features scroll-triggered viewport animations and rolling digit transitions\n * - Supports per-game Peak CCU with custom trophy icon\n * - Includes mobile ghost-click protection during client-side navigation\n *\n * Components exported:\n * - GameDataProvider: Master data fetcher (place once, wrap content)\n * - GameMetric: Display single game stat\n * - AggregateMetric: Display totals\n * - GamesGrid: Sortable, filterable game grid\n * - SectionHeader: Responsive title + subtitle block\n */function _define_property(obj,key,value){if(key in obj){Object.defineProperty(obj,key,{value:value,enumerable:true,configurable:true,writable:true});}else{obj[key]=value;}return obj;}import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{createContext,useContext,useEffect,useRef,useState,useCallback,useMemo}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";/* ============================================\n   UTILITIES & PARSING\n   ============================================ */function safeNumber(value){if(typeof value===\"number\"&&!isNaN(value)&&isFinite(value)){return Math.max(0,value);}if(typeof value===\"string\"){const parsed=parseFloat(value);if(!isNaN(parsed)&&isFinite(parsed)){return Math.max(0,parsed);}}return 0;}function formatNumberParts(num,format=\"compact\"){const safe=safeNumber(num);if(format===\"full\"){return{value:new Intl.NumberFormat(\"en-US\").format(safe),suffix:\"\"};}const trim=n=>n.toFixed(1).replace(/\\.0$/,\"\");if(safe>=1e9){return{value:trim(safe/1e9),suffix:\"B\"};}if(safe>=1e6){return{value:trim(safe/1e6),suffix:\"M\"};}if(safe>=1e3){return{value:trim(safe/1e3),suffix:\"K\"};}return{value:Math.round(safe).toString(),suffix:\"\"};}function formatNumber(num,format=\"compact\"){const parts=formatNumberParts(num,format);return parts.value+parts.suffix;}/**\n * Parses input into universe IDs and Peak CCU values.\n * Supports:\n * - (universeid), (peakccu)\n * - (universeid)\n * - universeid, peakccu\n * - universeid\n */function parseUniverseIdEntries(input){if(!input||typeof input!==\"string\"){return{ids:[],peakCcuById:{}};}const ids=[];const peakCcuById={};const seen=new Set;const parenPairRegex=/\\(\\s*(\\d+)\\s*\\)(?:\\s*,\\s*\\(\\s*([^()]+?)\\s*\\))?/g;let parenMatch;let foundParen=false;while((parenMatch=parenPairRegex.exec(input))!==null){foundParen=true;const id=parenMatch[1].trim();const peak=parenMatch[2]?parenMatch[2].trim():\"\";if(id&&!seen.has(id)){seen.add(id);ids.push(id);if(peak)peakCcuById[id]=peak;}}if(foundParen&&ids.length>0){return{ids,peakCcuById};}const lines=input.split(/[\\r\\n]+/);for(const rawLine of lines){let line=rawLine.trim();if(!line)continue;line=line.replace(/,\\s*$/,\"\");const commaIdx=line.indexOf(\",\");let id=\"\";let peak=\"\";if(commaIdx!==-1){const firstPart=line.slice(0,commaIdx).replace(/[()]/g,\"\").trim();const secondPart=line.slice(commaIdx+1).replace(/[()]/g,\"\").trim();if(/^\\d+$/.test(firstPart)){id=firstPart;peak=secondPart;}}else{const clean=line.replace(/[()]/g,\"\").trim();if(/^\\d+$/.test(clean)){id=clean;}}if(id&&!seen.has(id)){seen.add(id);ids.push(id);if(peak)peakCcuById[id]=peak;}}if(ids.length===0){const parts=input.split(/[,\\s]+/);for(const part of parts){const clean=part.replace(/[()]/g,\"\").trim();if(/^\\d+$/.test(clean)&&!seen.has(clean)){seen.add(clean);ids.push(clean);}}}return{ids,peakCcuById};}function parseUniverseIds(input){return parseUniverseIdEntries(input).ids;}function formatPeakCcu(val,numberFormat=\"compact\"){if(val===undefined||val===null)return\"\";const str=String(val).trim();if(!str)return\"\";// If pre-formatted with suffix like \"70K\" or \"1.5M\", preserve it\nif(/[a-zA-Z+]/.test(str)){return str;}// Auto-format raw integer strings (\"70000\" -> \"70K\")\nconst cleanNumber=parseFloat(str.replace(/,/g,\"\"));if(!isNaN(cleanNumber)&&isFinite(cleanNumber)){return formatNumber(cleanNumber,numberFormat);}return str;}function buildApiUrl(baseUrl,universeIds){if(universeIds.length===0)return\"\";const cleanBase=baseUrl.replace(/\\/$/,\"\");const idsParam=universeIds.map(id=>encodeURIComponent(id)).join(\",\");return`${cleanBase}?universeIds=${idsParam}`;}function generateStatsKey(universeIds){return[...universeIds].sort().join(\",\");}function formatTimestamp(timestamp){if(!timestamp)return\"Never\";const date=new Date(timestamp);return date.toLocaleTimeString(\"en-US\",{hour:\"2-digit\",minute:\"2-digit\",second:\"2-digit\",hour12:false});}function fluidFontSize(px,enabled){const size=safeNumber(px);if(!enabled||size<=20)return size;const min=Math.round(size*.65);return`clamp(${min}px, ${(size/10).toFixed(2)}vw, ${size}px)`;}function buildGameUrl(rootPlaceId,gameName){const slug=gameName?gameName.replace(/[^a-zA-Z0-9]+/g,\"-\").replace(/^-|-$/g,\"\"):\"game\";return`https://www.roblox.com/games/${rootPlaceId}/${slug}`;}const EMOJI_REGEX=/[\\u{1F000}-\\u{1FAFF}\\u{2190}-\\u{2BFF}\\u{FE00}-\\u{FE0F}\\u{200D}\\u{3030}\\u{303D}\\u{2049}\\u{203C}]/gu;function cleanDisplayName(name){const cleaned=name.replace(/\\[[^\\]]*\\]/g,\" \").replace(EMOJI_REGEX,\"\").replace(/\\s+/g,\" \").trim();return cleaned||name;}function cleanDescriptionText(text){const cleaned=text.replace(EMOJI_REGEX,\"\").replace(/\\s+/g,\" \").trim();return cleaned||text;}/* ============================================\n   ICONS\n   ============================================ */const PersonIcon=({size=15})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",style:{flexShrink:0},children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"8\",r:\"4\",fill:\"#fff\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M4 20c0-3.9 3.6-6.5 8-6.5s8 2.6 8 6.5v1H4v-1Z\",fill:\"#fff\"})]});const VisitsIcon=({size=15})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",style:{flexShrink:0},children:[/*#__PURE__*/_jsx(\"circle\",{cx:\"12\",cy:\"12\",r:\"9\",stroke:\"#fff\",strokeWidth:\"2\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M3 12h18M12 3c3 3.6 3 14.4 0 18M12 3c-3 3.6-3 14.4 0 18\",stroke:\"#fff\",strokeWidth:\"2\"})]});const PeakCcuIcon=({size=15})=>/*#__PURE__*/_jsx(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",\"aria-hidden\":\"true\",style:{flexShrink:0},children:/*#__PURE__*/_jsx(\"path\",{d:\"M21.0828 4.58466C20.8269 4.34863 20.5267 4.16602 20.1997 4.04748C19.8728 3.92894 19.5257 3.87684 19.1785 3.89418H17.7527C17.6015 3.44695 17.3369 3.0469 16.985 2.73337C16.4595 2.25736 15.7679 2.00916 15.0608 2.04289H8.97908C8.61761 2.01846 8.25494 2.06698 7.91246 2.18557C7.56998 2.30416 7.25463 2.49043 6.98506 2.73337C6.63684 3.0462 6.37861 3.44707 6.2373 3.89418H4.83148C4.47954 3.87448 4.12726 3.92538 3.79516 4.04394C3.46305 4.16249 3.15772 4.34633 2.89721 4.58466C2.6287 4.82749 2.4111 5.12157 2.25704 5.44972C2.10298 5.77788 2.01564 6.13355 2 6.49598C2.01424 7.78871 2.35744 9.05633 2.99701 10.1785C3.64308 11.3264 4.54782 12.3065 5.639 13.0405L6.48655 13.6109L7.12466 14.0012C7.65171 14.8243 8.36582 15.5103 9.20838 16.0025V17.7637H8.81953C8.10558 17.7637 7.42089 18.0484 6.91605 18.5551C6.41122 19.0618 6.12764 19.749 6.12764 20.4656V20.7958C6.12626 20.9592 6.15718 21.1212 6.2188 21.2723C6.28042 21.4235 6.3715 21.5609 6.48655 21.6764C6.72032 21.9078 7.03561 22.0373 7.36393 22.0367H16.6361C16.7988 22.038 16.9601 22.0069 17.1107 21.945C17.2613 21.8831 17.3981 21.7917 17.5132 21.6762C17.6283 21.5607 17.7193 21.4234 17.781 21.2723C17.8426 21.1211 17.8737 20.9591 17.8724 20.7958V20.4656C17.8724 20.1108 17.8028 19.7595 17.6675 19.4317C17.5322 19.1039 17.3339 18.806 17.0839 18.5551C16.834 18.3042 16.5372 18.1052 16.2106 17.9694C15.884 17.8336 15.534 17.7637 15.1805 17.7637H14.7916V15.9925C15.6371 15.5006 16.3546 14.8148 16.8853 13.9911L17.5434 13.5909L18.3509 13.0405C19.4452 12.3029 20.3532 11.3196 21.003 10.1685C21.6454 9.03297 21.9886 7.7517 22 6.44593C21.9482 5.72908 21.619 5.06105 21.0828 4.58466ZM4.30303 9.45801C3.80841 8.57073 3.54437 7.57271 3.53532 6.55602C3.54545 6.39557 3.58706 6.23872 3.65775 6.09446C3.72844 5.9502 3.82686 5.82138 3.94729 5.71538C4.06772 5.60938 4.20778 5.52829 4.35951 5.47678C4.51124 5.42527 4.67167 5.40435 4.83148 5.41522H6.1375V10.7589C6.14549 11.0435 6.16886 11.3274 6.20736 11.6095C5.42662 11.0373 4.77721 10.3036 4.30303 9.45801ZM19.7168 9.45801C19.2338 10.2972 18.586 11.0292 17.8126 11.6095C17.8511 11.3207 17.8743 11.0301 17.8823 10.7389V5.41522H19.2183C19.3763 5.40455 19.535 5.4266 19.6842 5.47996C19.8334 5.53332 19.9701 5.61686 20.0858 5.72543C20.3129 5.9252 20.4554 6.20433 20.4845 6.50596C20.477 7.53872 20.2131 8.55332 19.7168 9.45801Z\",fill:\"#FFFFFF\"})});/* ============================================\n   PERSISTENCE & RATE LIMIT COMBAT\n   ============================================ */const STATS_STORAGE_PREFIX=\"ixgd-stats:\";const STATS_STORAGE_MAX_AGE=30*24*60*60*1e3;function normalizeGameRecords(rawGames){return rawGames.map(game=>({...game,id:safeNumber(game.id),playing:safeNumber(game.playing),visits:safeNumber(game.visits),favoritedCount:safeNumber(game.favoritedCount),maxPlayers:safeNumber(game.maxPlayers),rootPlaceId:safeNumber(game.rootPlaceId),name:typeof game.name===\"string\"?game.name:\"Unknown\",description:typeof game.description===\"string\"?game.description:\"\"}));}function readStoredGameStats(statsKey){if(!statsKey)return null;try{const raw=localStorage.getItem(STATS_STORAGE_PREFIX+statsKey);if(!raw)return null;const parsed=JSON.parse(raw);if(!parsed||typeof parsed!==\"object\")return null;if(typeof parsed.savedAt!==\"number\")return null;if(Date.now()-parsed.savedAt>STATS_STORAGE_MAX_AGE)return null;if(!Array.isArray(parsed.games)||parsed.games.length===0)return null;return{savedAt:parsed.savedAt,games:normalizeGameRecords(parsed.games)};}catch{return null;}}function writeStoredGameStats(statsKey,games){if(!statsKey||games.length===0)return;try{localStorage.setItem(STATS_STORAGE_PREFIX+statsKey,JSON.stringify({savedAt:Date.now(),games}));}catch{// Storage unavailable\n}}function computeGameDataState(games,threshold,configuredIds){const gamesByUniverseId={};for(const game of games){gamesByUniverseId[String(game.id)]=game;}const returnedIds=new Set(games.map(g=>String(g.id)));const missingIds=configuredIds.filter(id=>!returnedIds.has(id));const sortedGames=[...games].sort((a,b)=>{const diff=safeNumber(b.playing)-safeNumber(a.playing);if(diff!==0)return diff;return String(a.id).localeCompare(String(b.id));});const gamesAboveThreshold=sortedGames.filter(g=>safeNumber(g.playing)>=threshold);const gamesBelowThreshold=sortedGames.filter(g=>safeNumber(g.playing)<threshold);const totalPlaying=games.reduce((sum,g)=>sum+safeNumber(g.playing),0);const totalVisits=games.reduce((sum,g)=>sum+safeNumber(g.visits),0);const totalFavorites=games.reduce((sum,g)=>sum+safeNumber(g.favoritedCount),0);const aboveThresholdPlaying=gamesAboveThreshold.reduce((sum,g)=>sum+safeNumber(g.playing),0);const aboveThresholdVisits=gamesAboveThreshold.reduce((sum,g)=>sum+safeNumber(g.visits),0);const aboveThresholdFavorites=gamesAboveThreshold.reduce((sum,g)=>sum+safeNumber(g.favoritedCount),0);const belowThresholdPlaying=gamesBelowThreshold.reduce((sum,g)=>sum+safeNumber(g.playing),0);const belowThresholdVisits=gamesBelowThreshold.reduce((sum,g)=>sum+safeNumber(g.visits),0);const belowThresholdFavorites=gamesBelowThreshold.reduce((sum,g)=>sum+safeNumber(g.favoritedCount),0);return{gamesByUniverseId,allGames:sortedGames,gamesAboveThreshold,gamesBelowThreshold,totalPlaying,totalVisits,totalFavorites,totalGames:games.length,aboveThresholdPlaying,aboveThresholdVisits,aboveThresholdFavorites,aboveThresholdCount:gamesAboveThreshold.length,belowThresholdPlaying,belowThresholdVisits,belowThresholdFavorites,belowThresholdCount:gamesBelowThreshold.length,missingIds,configuredIds,threshold};}const requestCache=new Map;const MIN_REFETCH_INTERVAL=6e4;let lastFetchSource=null;class ApiError extends Error{constructor(message,status){super(message);_define_property(this,\"status\",void 0);this.status=status;}}async function fetchFromUrl(apiUrl,abortSignal){const response=await fetch(apiUrl,{headers:{Accept:\"application/json\",\"Accept-Language\":\"en-US,en;q=0.9\"},signal:abortSignal});if(!response.ok){throw new ApiError(`API request failed with status ${response.status}`,response.status);}const body=await response.json();if(!body||!Array.isArray(body.data)){throw new ApiError(\"Invalid API response: missing data array\");}return body.data;}function shouldFallback(error){if(error instanceof DOMException&&error.name===\"AbortError\")return false;if(error instanceof ApiError){return error.status===429||error.status===undefined||error.status>=500;}return true;}function resolveFallbackGames(statsKey,memory){if(memory?.data&&memory.data.length>0){return{games:memory.data,fetchedAt:memory.fetchedAt,fromStorage:memory.fromStorage};}const stored=readStoredGameStats(statsKey);if(stored?.games.length){return{games:stored.games,fetchedAt:stored.savedAt,fromStorage:true};}return null;}async function fetchGameData(apiUrl,fallbackApiUrl,statsKey,abortSignal){let cached=requestCache.get(statsKey);if(!cached?.data){const stored=readStoredGameStats(statsKey);if(stored?.games.length){cached={key:statsKey,promise:null,data:stored.games,fetchedAt:stored.savedAt,error:null,fromStorage:true};requestCache.set(statsKey,cached);}}if(cached?.promise)return cached.promise;if(cached?.data&&cached.fetchedAt){const age=Date.now()-cached.fetchedAt;if(age<MIN_REFETCH_INTERVAL)return cached.data;}const fetchPromise=(async()=>{try{let rawGames;try{rawGames=await fetchFromUrl(apiUrl,abortSignal);lastFetchSource=\"primary\";}catch(primaryError){if(!fallbackApiUrl||!shouldFallback(primaryError))throw primaryError;rawGames=await fetchFromUrl(fallbackApiUrl,abortSignal);lastFetchSource=\"fallback\";}const games=normalizeGameRecords(rawGames);writeStoredGameStats(statsKey,games);requestCache.set(statsKey,{key:statsKey,promise:null,data:games,fetchedAt:Date.now(),error:null,fromStorage:false});return games;}catch(error){const existing=requestCache.get(statsKey);const fallback=resolveFallbackGames(statsKey,existing);const errorMessage=error instanceof Error?error.message:\"Unknown error\";if(fallback){requestCache.set(statsKey,{key:statsKey,promise:null,data:fallback.games,fetchedAt:fallback.fetchedAt,error:errorMessage,fromStorage:fallback.fromStorage});return fallback.games;}requestCache.set(statsKey,{key:statsKey,promise:null,data:null,fetchedAt:null,error:errorMessage,fromStorage:false});throw error;}})();requestCache.set(statsKey,{key:statsKey,promise:fetchPromise,data:cached?.data??null,fetchedAt:cached?.fetchedAt??null,error:cached?.error??null,fromStorage:cached?.fromStorage??false});return fetchPromise;}/* ============================================\n   THUMBNAIL CACHE (Singleton)\n   ============================================ */const thumbnailCache=new Map;const thumbnailPromises=new Map;const THUMB_STORAGE_PREFIX=\"ixgd-thumbs:\";const THUMB_STORAGE_TTL=24*60*60*1e3;function readStoredThumbnails(key){try{const raw=localStorage.getItem(THUMB_STORAGE_PREFIX+key);if(!raw)return null;const parsed=JSON.parse(raw);if(!parsed||typeof parsed!==\"object\")return null;if(typeof parsed.savedAt!==\"number\"||Date.now()-parsed.savedAt>THUMB_STORAGE_TTL)return null;if(!parsed.map||typeof parsed.map!==\"object\")return null;return parsed.map;}catch{return null;}}function writeStoredThumbnails(key,map){try{localStorage.setItem(THUMB_STORAGE_PREFIX+key,JSON.stringify({savedAt:Date.now(),map}));}catch{// Storage unavailable\n}}async function fetchThumbnails(universeIds,apiBase){const key=[...universeIds].sort().join(\",\");const cached=thumbnailCache.get(key);if(cached)return cached;const stored=readStoredThumbnails(key);if(stored){thumbnailCache.set(key,stored);return stored;}const pending=thumbnailPromises.get(key);if(pending)return pending;const promise=(async()=>{try{const cleanBase=apiBase.replace(/\\/$/,\"\");const url=`${cleanBase}?universeIds=${universeIds.join(\",\")}&size=768x432&format=Png&countPerUniverse=1`;const response=await fetch(url,{headers:{Accept:\"application/json\",\"Accept-Language\":\"en-US,en;q=0.9\"}});if(!response.ok)throw new Error(`Thumbnail request failed with status ${response.status}`);const body=await response.json();const map={};for(const entry of body?.data??[]){const uid=String(entry?.universeId??\"\");const img=entry?.thumbnails?.[0]?.imageUrl;if(uid&&typeof img===\"string\"&&entry?.thumbnails?.[0]?.state===\"Completed\"){map[uid]=img;}}thumbnailCache.set(key,map);writeStoredThumbnails(key,map);return map;}finally{thumbnailPromises.delete(key);}})();thumbnailPromises.set(key,promise);return promise;}/* ============================================\n   CONTEXT\n   ============================================ */const defaultState={gamesByUniverseId:{},peakCcuById:{},allGames:[],gamesAboveThreshold:[],gamesBelowThreshold:[],isLoading:false,isInitialLoad:true,error:null,lastUpdatedAt:null,totalPlaying:0,totalVisits:0,totalFavorites:0,totalGames:0,aboveThresholdPlaying:0,aboveThresholdVisits:0,aboveThresholdFavorites:0,aboveThresholdCount:0,belowThresholdPlaying:0,belowThresholdVisits:0,belowThresholdFavorites:0,belowThresholdCount:0,threshold:200,configuredIds:[],missingIds:[],hasProvider:false};const GameDataContext=/*#__PURE__*/createContext(defaultState);export function useGameData(){return useContext(GameDataContext);}/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export function GameDataProvider(props){const{universeIds=\"\",apiBaseUrl=\"https://games.rotunnel.com/v1/games\",fallbackApiBaseUrl=\"https://games.roproxy.com/v1/games\",refreshIntervalSeconds=60,enableAutoRefresh=true,minPlayerThreshold=200,showProviderStatus=false,showTotal=false,totalMetric=\"totalPlaying\",totalFormat=\"compact\",totalLabel=\"\",totalLabelPosition=\"above\",totalSize=48,totalWeight=500,totalColor=\"#FDFCEE\",totalAlign=\"center\",totalFluid=true,children,style}=props;const{ids:parsedIds,peakCcuById:parsedPeakCcu}=useMemo(()=>parseUniverseIdEntries(universeIds),[universeIds]);const[state,setState]=useState(()=>{const base={...defaultState,threshold:minPlayerThreshold,configuredIds:parsedIds,peakCcuById:parsedPeakCcu,hasProvider:true};if(parsedIds.length===0)return base;const stored=readStoredGameStats(generateStatsKey(parsedIds));if(!stored?.games.length)return base;return{...base,...computeGameDataState(stored.games,minPlayerThreshold,parsedIds),isLoading:false,isInitialLoad:false,lastUpdatedAt:stored.savedAt};});const abortControllerRef=useRef(null);const refreshIntervalRef=useRef(null);const isMountedRef=useRef(true);const isFetchingRef=useRef(false);const calculateState=useCallback((games,threshold,configuredIds)=>computeGameDataState(games,threshold,configuredIds),[]);const fetchData=useCallback(async(isInitial=false)=>{if(parsedIds.length===0||isFetchingRef.current)return;isFetchingRef.current=true;if(abortControllerRef.current){abortControllerRef.current.abort();}abortControllerRef.current=new AbortController;const apiUrl=buildApiUrl(apiBaseUrl,parsedIds);const fallbackUrl=buildApiUrl(fallbackApiBaseUrl,parsedIds);const statsKey=generateStatsKey(parsedIds);if(isMountedRef.current){setState(prev=>{const hasDisplayData=prev.allGames.length>0;return{...prev,isLoading:!hasDisplayData,isInitialLoad:isInitial&&!hasDisplayData&&prev.isInitialLoad,peakCcuById:parsedPeakCcu};});}try{const games=await fetchGameData(apiUrl,fallbackUrl,statsKey,abortControllerRef.current.signal);if(!isMountedRef.current)return;const calculated=calculateState(games,minPlayerThreshold,parsedIds);const cacheEntry=requestCache.get(statsKey);const servedFromBackup=cacheEntry?.fromStorage||Boolean(cacheEntry?.error);setState(prev=>({...prev,...calculated,peakCcuById:parsedPeakCcu,isLoading:false,isInitialLoad:false,error:servedFromBackup?cacheEntry?.error??\"Showing last saved stats (API unavailable)\":null,lastUpdatedAt:cacheEntry?.fetchedAt??prev.lastUpdatedAt??Date.now()}));}catch(error){if(!isMountedRef.current)return;if(error instanceof DOMException&&error.name===\"AbortError\")return;const errorMessage=error instanceof Error?error.message:\"Unknown error\";const stored=readStoredGameStats(statsKey);if(stored?.games.length){const calculated=calculateState(stored.games,minPlayerThreshold,parsedIds);setState(prev=>({...prev,...calculated,peakCcuById:parsedPeakCcu,isLoading:false,isInitialLoad:false,error:errorMessage,lastUpdatedAt:stored.savedAt}));}else{setState(prev=>({...prev,peakCcuById:parsedPeakCcu,isLoading:false,isInitialLoad:false,error:errorMessage}));}}finally{isFetchingRef.current=false;}},[parsedIds,parsedPeakCcu,apiBaseUrl,fallbackApiBaseUrl,minPlayerThreshold,calculateState]);useEffect(()=>{isMountedRef.current=true;if(parsedIds.length>0)fetchData(true);return()=>{isMountedRef.current=false;if(abortControllerRef.current)abortControllerRef.current.abort();};},[]);useEffect(()=>{if(parsedIds.length>0)fetchData(false);},[parsedIds.join(\",\"),apiBaseUrl,fallbackApiBaseUrl]);useEffect(()=>{if(refreshIntervalRef.current){clearInterval(refreshIntervalRef.current);refreshIntervalRef.current=null;}if(enableAutoRefresh&&refreshIntervalSeconds>=30&&parsedIds.length>0){refreshIntervalRef.current=setInterval(()=>{fetchData(false);},refreshIntervalSeconds*1e3);}return()=>{if(refreshIntervalRef.current)clearInterval(refreshIntervalRef.current);};},[enableAutoRefresh,refreshIntervalSeconds,fetchData,parsedIds.length]);useEffect(()=>{setState(prev=>{if(prev.allGames.length===0){return{...prev,threshold:minPlayerThreshold,peakCcuById:parsedPeakCcu};}const calculated=calculateState(prev.allGames,minPlayerThreshold,parsedIds);return{...prev,...calculated,peakCcuById:parsedPeakCcu};});},[minPlayerThreshold,calculateState,parsedIds,parsedPeakCcu]);const statusDisplay=showProviderStatus&&/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"12px 16px\",backgroundColor:state.error?\"rgba(255,100,100,0.1)\":\"rgba(100,255,100,0.1)\",borderRadius:\"8px\",fontFamily:\"Inter, system-ui, sans-serif\",fontSize:\"12px\",color:\"#FDFCEE\",marginBottom:\"16px\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:600,marginBottom:\"4px\"},children:\"🎮 GameDataProvider Status\"}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Games: \",state.totalGames,\" / \",parsedIds.length]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Above threshold (\",minPlayerThreshold,\"):\",\" \",state.aboveThresholdCount]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Below threshold: \",state.belowThresholdCount]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Total playing: \",state.totalPlaying.toLocaleString()]}),/*#__PURE__*/_jsxs(\"div\",{children:[\"Last updated: \",formatTimestamp(state.lastUpdatedAt)]}),lastFetchSource&&/*#__PURE__*/_jsxs(\"div\",{children:[\"Source:\",\" \",lastFetchSource===\"primary\"?\"Primary API\":\"⚠️ Fallback API\"]}),state.error&&/*#__PURE__*/_jsxs(\"div\",{style:{color:\"#ffb347\"},children:[\"Backup: \",state.error,state.lastUpdatedAt?` (saved ${formatTimestamp(state.lastUpdatedAt)})`:\"\"]})]});const totalDisplay=showTotal&&/*#__PURE__*/_jsx(AggregateMetric,{metric:totalMetric,group:\"all\",numberFormat:totalFormat,prefix:\"\",suffix:\"\",loadingText:\"...\",font:\"Inter\",fontSize:totalSize,fontWeight:totalWeight,color:totalColor,suffixFont:\"\",suffixSize:0,suffixColor:\"\",label:totalLabel,labelPosition:totalLabelPosition,labelFont:\"\",labelSize:14,labelColor:\"\",align:totalAlign,animate:true,fluidSize:totalFluid});return /*#__PURE__*/_jsx(GameDataContext.Provider,{value:state,children:/*#__PURE__*/_jsxs(\"div\",{style:{...style,width:\"100%\",maxWidth:\"100%\",minWidth:0,height:\"auto\",boxSizing:\"border-box\"},children:[statusDisplay,totalDisplay,children]})});}GameDataProvider.defaultProps={universeIds:\"\",apiBaseUrl:\"https://games.rotunnel.com/v1/games\",fallbackApiBaseUrl:\"https://games.roproxy.com/v1/games\",refreshIntervalSeconds:60,enableAutoRefresh:true,minPlayerThreshold:200,showProviderStatus:false,showTotal:false,totalMetric:\"totalPlaying\",totalFormat:\"compact\",totalLabel:\"\",totalLabelPosition:\"above\",totalSize:48,totalWeight:500,totalColor:\"#FDFCEE\",totalAlign:\"center\",totalFluid:true};addPropertyControls(GameDataProvider,{universeIds:{type:ControlType.String,title:\"Universe IDs\",placeholder:\"(123456), (70K)\\n(789012), (1.5M)\\n345678\",displayTextArea:true,description:\"Roblox Universe IDs, one per line. Optional: (universeid), (peakccu) or universeid, peakccu\"},apiBaseUrl:{type:ControlType.String,title:\"API URL\",defaultValue:\"https://games.rotunnel.com/v1/games\"},fallbackApiBaseUrl:{type:ControlType.String,title:\"Fallback URL\",defaultValue:\"https://games.roproxy.com/v1/games\",description:\"Used automatically if the primary API is rate-limited or down\"},refreshIntervalSeconds:{type:ControlType.Number,title:\"Refresh (sec)\",defaultValue:60,min:30,max:3600,step:10},enableAutoRefresh:{type:ControlType.Boolean,title:\"Auto Refresh\",defaultValue:true},minPlayerThreshold:{type:ControlType.Number,title:\"Min Players\",defaultValue:200,min:0,max:1e4,step:50},showProviderStatus:{type:ControlType.Boolean,title:\"Show Status\",defaultValue:false},showTotal:{type:ControlType.Boolean,title:\"Show Total\",defaultValue:false,description:\"Display one aggregate number directly (no child components needed)\"},totalMetric:{type:ControlType.Enum,title:\"Total Metric\",options:[\"totalPlaying\",\"totalVisits\",\"totalFavorites\",\"totalGames\"],optionTitles:[\"Total Playing\",\"Total Visits\",\"Total Favorites\",\"Total Games\"],defaultValue:\"totalPlaying\",hidden:p=>!p.showTotal},totalFormat:{type:ControlType.Enum,title:\"Total Format\",options:[\"compact\",\"full\"],optionTitles:[\"Compact (1.5K)\",\"Full (1,500)\"],defaultValue:\"compact\",hidden:p=>!p.showTotal},totalLabel:{type:ControlType.String,title:\"Total Label\",placeholder:\"Current Playercount\",hidden:p=>!p.showTotal},totalLabelPosition:{type:ControlType.SegmentedEnum,title:\"Label Pos\",options:[\"above\",\"below\"],optionTitles:[\"Above\",\"Below\"],defaultValue:\"above\",hidden:p=>!p.showTotal||!p.totalLabel},totalSize:{type:ControlType.Number,title:\"Total Size\",defaultValue:48,min:8,max:200,hidden:p=>!p.showTotal},totalWeight:{type:ControlType.Number,title:\"Total Weight\",defaultValue:500,min:100,max:900,step:100,hidden:p=>!p.showTotal},totalColor:{type:ControlType.Color,title:\"Total Color\",defaultValue:\"#FDFCEE\",hidden:p=>!p.showTotal},totalAlign:{type:ControlType.SegmentedEnum,title:\"Total Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\",hidden:p=>!p.showTotal},totalFluid:{type:ControlType.Boolean,title:\"Fluid Size\",defaultValue:true,description:\"Scale the number down on phones\",hidden:p=>!p.showTotal},children:{type:ControlType.ComponentInstance,title:\"Content\"}});/* ============================================\n   ANIMATED DIGIT\n   ============================================ */const ROLLING_DIGIT_TRANSITION={type:\"spring\",stiffness:70,damping:15,mass:1};function isAsciiDigit(char){return char>=\"0\"&&char<=\"9\";}const DIGIT_GLYPHS=[\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"];const RollingDigit=({digit,textStyle})=>{const target=isAsciiDigit(digit)?Number(digit):0;const measureRef=React.useRef(null);const[digitStep,setDigitStep]=React.useState(()=>{const rawSize=textStyle.fontSize;if(typeof rawSize===\"number\"&&isFinite(rawSize)&&rawSize>0){return rawSize;}if(typeof rawSize===\"string\"){const parsed=parseFloat(rawSize);if(isFinite(parsed)&&parsed>0)return parsed;}return 16;});useEffect(()=>{const node=measureRef.current;if(!node)return;const updateStep=()=>{const next=node.getBoundingClientRect().height;if(!isFinite(next)||next<=0)return;React.startTransition(()=>{setDigitStep(prev=>Math.abs(prev-next)<.25?prev:next);});};updateStep();if(typeof window!==\"undefined\"&&\"ResizeObserver\"in window){const observer=new ResizeObserver(()=>updateStep());observer.observe(node);return()=>observer.disconnect();}},[textStyle.fontFamily,textStyle.fontSize,textStyle.fontWeight,textStyle.fontStyle,textStyle.letterSpacing,textStyle.lineHeight]);return /*#__PURE__*/_jsxs(\"span\",{style:{position:\"relative\",display:\"inline-block\"},children:[/*#__PURE__*/_jsx(\"span\",{ref:measureRef,\"aria-hidden\":\"true\",style:{...textStyle,position:\"absolute\",visibility:\"hidden\",pointerEvents:\"none\",whiteSpace:\"nowrap\",lineHeight:1},children:\"8\"}),/*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{display:\"inline-flex\",overflow:\"hidden\",height:`${digitStep}px`,lineHeight:1,verticalAlign:\"baseline\",width:\"0.62em\",justifyContent:\"center\",alignItems:\"flex-start\"},children:/*#__PURE__*/_jsx(motion.span,{animate:{y:-(target*digitStep)},transition:ROLLING_DIGIT_TRANSITION,style:{display:\"flex\",flexDirection:\"column\",lineHeight:1,willChange:\"transform\",...textStyle},children:DIGIT_GLYPHS.map(glyph=>/*#__PURE__*/_jsx(\"span\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"center\",height:`${digitStep}px`,lineHeight:1,textAlign:\"center\"},children:glyph},glyph))})})]});};function renderRollingDigits(value,textStyle){return value.split(\"\").map((char,index)=>{if(isAsciiDigit(char)){return /*#__PURE__*/_jsx(RollingDigit,{digit:char,textStyle:textStyle},`digit-${index}`);}return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",lineHeight:\"inherit\"},children:char},`char-${index}-${char}`);});}function MetricValueDisplay(props){const{display,isLoading,loadingText,prefix,suffix,animate,textStyle,metricSuffixStyle,label=\"\",labelPosition=\"below\",labelStyle,align=\"center\",rootStyle}=props;const containerStyle={...rootStyle,display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:align===\"left\"?\"flex-start\":align===\"right\"?\"flex-end\":\"center\",gap:\"6px\",width:\"100%\",minWidth:0,boxSizing:\"border-box\"};const labelEl=label?/*#__PURE__*/_jsx(\"span\",{style:labelStyle,children:label}):null;let valueEl;if(isLoading){valueEl=/*#__PURE__*/_jsx(\"span\",{style:textStyle,children:loadingText});}else if(!animate){valueEl=/*#__PURE__*/_jsxs(\"span\",{style:textStyle,children:[prefix,display.value,display.metricSuffix&&/*#__PURE__*/_jsx(\"span\",{style:metricSuffixStyle,children:display.metricSuffix}),suffix]});}else{valueEl=/*#__PURE__*/_jsxs(\"span\",{style:{...textStyle,display:\"inline-flex\",alignItems:\"baseline\",lineHeight:1},children:[prefix,renderRollingDigits(display.value,textStyle),display.metricSuffix&&/*#__PURE__*/_jsx(\"span\",{style:metricSuffixStyle,children:display.metricSuffix}),suffix]});}return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[labelPosition===\"above\"&&labelEl,valueEl,labelPosition===\"below\"&&labelEl]});}export function AggregateMetric(props){const{metric=\"totalPlaying\",group=\"all\",numberFormat=\"compact\",prefix=\"\",suffix=\"\",loadingText=\"...\",font=\"Inter\",fontSize=24,fontWeight=500,color=\"#FDFCEE\",suffixFont=\"\",suffixSize=0,suffixColor=\"\",label=\"\",labelPosition=\"below\",labelFont=\"\",labelSize=14,labelColor=\"\",align=\"center\",animate=true,fluidSize=true,style}=props;const gameData=useGameData();const[display,setDisplay]=useState({value:\"\",prevValue:\"\",metricSuffix:\"\"});const isLoading=gameData.isLoading&&gameData.isInitialLoad;useEffect(()=>{if(isLoading)return;let rawValue=0;if(metric===\"totalPlaying\"){rawValue=group===\"all\"?gameData.totalPlaying:group===\"aboveThreshold\"?gameData.aboveThresholdPlaying:gameData.belowThresholdPlaying;}else if(metric===\"totalVisits\"){rawValue=group===\"all\"?gameData.totalVisits:group===\"aboveThreshold\"?gameData.aboveThresholdVisits:gameData.belowThresholdVisits;}else if(metric===\"totalFavorites\"){rawValue=group===\"all\"?gameData.totalFavorites:group===\"aboveThreshold\"?gameData.aboveThresholdFavorites:gameData.belowThresholdFavorites;}else if(metric===\"totalGames\"){rawValue=group===\"all\"?gameData.totalGames:group===\"aboveThreshold\"?gameData.aboveThresholdCount:gameData.belowThresholdCount;}const parts=formatNumberParts(safeNumber(rawValue),numberFormat);setDisplay(prev=>{if(prev.value===parts.value&&prev.metricSuffix===parts.suffix)return prev;return{value:parts.value,prevValue:prev.value,metricSuffix:parts.suffix};});},[gameData,metric,group,numberFormat,isLoading]);const textStyle={fontFamily:font,fontSize:fluidFontSize(fontSize,fluidSize),fontWeight:fontWeight,color:color,whiteSpace:\"nowrap\"};const metricSuffixStyle={fontFamily:suffixFont||font,fontSize:fluidFontSize(suffixSize||fontSize,fluidSize),fontWeight:fontWeight,color:suffixColor||color};const labelStyle={fontFamily:labelFont||font,fontSize:labelSize||14,color:labelColor||color,opacity:labelColor?1:.7,textAlign:align,lineHeight:1.4,maxWidth:\"100%\"};return /*#__PURE__*/_jsx(MetricValueDisplay,{display:display,isLoading:isLoading,loadingText:loadingText,prefix:prefix,suffix:suffix,animate:animate,textStyle:textStyle,metricSuffixStyle:metricSuffixStyle,label:label,labelPosition:labelPosition,labelStyle:labelStyle,align:align,rootStyle:style});}AggregateMetric.defaultProps={metric:\"totalPlaying\",group:\"all\",numberFormat:\"compact\",prefix:\"\",suffix:\"\",loadingText:\"...\",font:\"Inter\",fontSize:24,fontWeight:500,color:\"#FDFCEE\",suffixFont:\"\",suffixSize:0,suffixColor:\"\",label:\"\",labelPosition:\"below\",labelFont:\"\",labelSize:14,labelColor:\"\",align:\"center\",animate:true,fluidSize:true};addPropertyControls(AggregateMetric,{metric:{type:ControlType.Enum,title:\"Metric\",options:[\"totalPlaying\",\"totalVisits\",\"totalFavorites\",\"totalGames\"],optionTitles:[\"Total Playing\",\"Total Visits\",\"Total Favorites\",\"Total Games\"],defaultValue:\"totalPlaying\"},group:{type:ControlType.Enum,title:\"Group\",options:[\"all\",\"aboveThreshold\",\"belowThreshold\"],optionTitles:[\"All Games\",\"Above Threshold\",\"Below Threshold\"],defaultValue:\"all\"},numberFormat:{type:ControlType.Enum,title:\"Format\",options:[\"compact\",\"full\"],optionTitles:[\"Compact (1.5K)\",\"Full (1,500)\"],defaultValue:\"compact\"},prefix:{type:ControlType.String,title:\"Prefix\",placeholder:\"\"},suffix:{type:ControlType.String,title:\"Suffix\",placeholder:\"\"},loadingText:{type:ControlType.String,title:\"Loading\",defaultValue:\"...\"},font:{type:ControlType.String,title:\"Font\",defaultValue:\"Inter\"},fontSize:{type:ControlType.Number,title:\"Size\",defaultValue:24,min:8,max:200},fontWeight:{type:ControlType.Number,title:\"Weight\",defaultValue:500,min:100,max:900,step:100},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FDFCEE\"},suffixFont:{type:ControlType.String,title:\"Suffix Font\",placeholder:\"Inherit\"},suffixSize:{type:ControlType.Number,title:\"Suffix Size\",defaultValue:0,min:0,max:200,description:\"0 = inherit main size\"},suffixColor:{type:ControlType.Color,title:\"Suffix Color\",defaultValue:\"\"},label:{type:ControlType.String,title:\"Label\",placeholder:\"Players in our games\",description:\"Caption text next to the number\"},labelPosition:{type:ControlType.SegmentedEnum,title:\"Label Pos\",options:[\"above\",\"below\"],optionTitles:[\"Above\",\"Below\"],defaultValue:\"below\",hidden:p=>!p.label},labelFont:{type:ControlType.String,title:\"Label Font\",placeholder:\"Inherit\",hidden:p=>!p.label},labelSize:{type:ControlType.Number,title:\"Label Size\",defaultValue:14,min:8,max:100,hidden:p=>!p.label},labelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"\",hidden:p=>!p.label},align:{type:ControlType.SegmentedEnum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\"},animate:{type:ControlType.Boolean,title:\"Animate\",defaultValue:true},fluidSize:{type:ControlType.Boolean,title:\"Fluid Size\",defaultValue:true,description:\"Scale the number down on phones (never below 65% of Size)\"}});export function GameMetric(props){const{universeId=\"\",metric=\"playing\",numberFormat=\"compact\",prefix=\"\",suffix=\"\",loadingText=\"...\",missingText=\"—\",font=\"Inter\",fontSize=24,fontWeight=500,color=\"#FDFCEE\",suffixFont=\"\",suffixSize=0,suffixColor=\"\",label=\"\",labelPosition=\"below\",labelFont=\"\",labelSize=14,labelColor=\"\",align=\"center\",animate=true,fluidSize=true,style}=props;const gameData=useGameData();const[display,setDisplay]=useState({value:\"\",prevValue:\"\",metricSuffix:\"\"});const cleanId=(universeId||\"\").trim();const game=gameData.gamesByUniverseId[cleanId];const isLoading=gameData.isLoading&&gameData.isInitialLoad;useEffect(()=>{if(isLoading)return;if(metric===\"peakCcu\"){const rawPeak=gameData.peakCcuById[cleanId];if(rawPeak){const formatted=formatPeakCcu(rawPeak,numberFormat);setDisplay({value:formatted,prevValue:\"\",metricSuffix:\"\"});}return;}if(!game)return;const parts=formatNumberParts(safeNumber(game[metric]),numberFormat);setDisplay(prev=>{if(prev.value===parts.value&&prev.metricSuffix===parts.suffix)return prev;return{value:parts.value,prevValue:prev.value,metricSuffix:parts.suffix};});},[game,cleanId,metric,numberFormat,isLoading,gameData.peakCcuById]);const textStyle={fontFamily:font,fontSize:fluidFontSize(fontSize,fluidSize),fontWeight:fontWeight,color:color,whiteSpace:\"nowrap\"};const metricSuffixStyle={fontFamily:suffixFont||font,fontSize:fluidFontSize(suffixSize||fontSize,fluidSize),fontWeight:fontWeight,color:suffixColor||color};const labelStyle={fontFamily:labelFont||font,fontSize:labelSize||14,color:labelColor||color,opacity:labelColor?1:.7,textAlign:align,lineHeight:1.4,maxWidth:\"100%\"};if(!isLoading&&!game&&metric!==\"peakCcu\"){return /*#__PURE__*/_jsx(\"div\",{style:{...style,display:\"flex\",justifyContent:align===\"left\"?\"flex-start\":align===\"right\"?\"flex-end\":\"center\",alignItems:\"center\",width:\"100%\",minWidth:0,boxSizing:\"border-box\"},children:/*#__PURE__*/_jsx(\"span\",{style:{...textStyle,opacity:.5},children:missingText})});}return /*#__PURE__*/_jsx(MetricValueDisplay,{display:display,isLoading:isLoading,loadingText:loadingText,prefix:prefix,suffix:suffix,animate:animate,textStyle:textStyle,metricSuffixStyle:metricSuffixStyle,label:label,labelPosition:labelPosition,labelStyle:labelStyle,align:align,rootStyle:style});}GameMetric.defaultProps={universeId:\"\",metric:\"playing\",numberFormat:\"compact\",prefix:\"\",suffix:\"\",loadingText:\"...\",missingText:\"—\",font:\"Inter\",fontSize:24,fontWeight:500,color:\"#FDFCEE\",suffixFont:\"\",suffixSize:0,suffixColor:\"\",label:\"\",labelPosition:\"below\",labelFont:\"\",labelSize:14,labelColor:\"\",align:\"center\",animate:true,fluidSize:true};addPropertyControls(GameMetric,{universeId:{type:ControlType.String,title:\"Universe ID\",placeholder:\"e.g. 123456\",description:\"Must be one of the IDs configured in GameDataProvider\"},metric:{type:ControlType.Enum,title:\"Metric\",options:[\"playing\",\"visits\",\"favoritedCount\",\"maxPlayers\",\"peakCcu\"],optionTitles:[\"Playing\",\"Visits\",\"Favorites\",\"Max Players\",\"Peak CCU\"],defaultValue:\"playing\"},numberFormat:{type:ControlType.Enum,title:\"Format\",options:[\"compact\",\"full\"],optionTitles:[\"Compact (1.5K)\",\"Full (1,500)\"],defaultValue:\"compact\"},prefix:{type:ControlType.String,title:\"Prefix\",placeholder:\"\"},suffix:{type:ControlType.String,title:\"Suffix\",placeholder:\"\"},loadingText:{type:ControlType.String,title:\"Loading\",defaultValue:\"...\"},missingText:{type:ControlType.String,title:\"Missing\",defaultValue:\"—\"},font:{type:ControlType.String,title:\"Font\",defaultValue:\"Inter\"},fontSize:{type:ControlType.Number,title:\"Size\",defaultValue:24,min:8,max:200},fontWeight:{type:ControlType.Number,title:\"Weight\",defaultValue:500,min:100,max:900,step:100},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FDFCEE\"},suffixFont:{type:ControlType.String,title:\"Suffix Font\",placeholder:\"Inherit\"},suffixSize:{type:ControlType.Number,title:\"Suffix Size\",defaultValue:0,min:0,max:200,description:\"0 = inherit main size\"},suffixColor:{type:ControlType.Color,title:\"Suffix Color\",defaultValue:\"\"},label:{type:ControlType.String,title:\"Label\",placeholder:\"Players in our games\",description:\"Caption text next to the number\"},labelPosition:{type:ControlType.SegmentedEnum,title:\"Label Pos\",options:[\"above\",\"below\"],optionTitles:[\"Above\",\"Below\"],defaultValue:\"below\",hidden:p=>!p.label},labelFont:{type:ControlType.String,title:\"Label Font\",placeholder:\"Inherit\",hidden:p=>!p.label},labelSize:{type:ControlType.Number,title:\"Label Size\",defaultValue:14,min:8,max:100,hidden:p=>!p.label},labelColor:{type:ControlType.Color,title:\"Label Color\",defaultValue:\"\",hidden:p=>!p.label},align:{type:ControlType.SegmentedEnum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\"},animate:{type:ControlType.Boolean,title:\"Animate\",defaultValue:true},fluidSize:{type:ControlType.Boolean,title:\"Fluid Size\",defaultValue:true,description:\"Scale the number down on phones (never below 65% of Size)\"}});/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export function SectionHeader(props){const{title=\"Our Games\",subtitle=\"\",align=\"center\",headingTag=\"h2\",titleFont=\"Inter\",titleSize=56,titleWeight=600,titleColor=\"#111111\",titleTracking=-.02,subtitleFont=\"\",subtitleSize=18,subtitleWeight=400,subtitleColor=\"#444444\",subtitleMaxWidth=640,gap=12,fluid=true,style}=props;const alignItems=align===\"left\"?\"flex-start\":align===\"right\"?\"flex-end\":\"center\";const containerStyle={...style,display:\"flex\",flexDirection:\"column\",alignItems,textAlign:align,gap:`${gap}px`,width:\"100%\",minWidth:0,height:\"auto\",boxSizing:\"border-box\"};const titleStyle={fontFamily:titleFont,fontWeight:titleWeight,fontSize:fluidFontSize(titleSize,fluid),lineHeight:1.1,letterSpacing:`${titleTracking}em`,color:titleColor,margin:0,maxWidth:\"100%\",overflowWrap:\"anywhere\"};const subtitleResolved=fluid&&subtitleSize>15?`clamp(15px, ${(subtitleSize/10).toFixed(2)}vw, ${subtitleSize}px)`:subtitleSize;const subtitleStyle={fontFamily:subtitleFont||titleFont,fontWeight:subtitleWeight,fontSize:subtitleResolved,lineHeight:1.5,color:subtitleColor,margin:0,maxWidth:subtitleMaxWidth>0?`min(100%, ${subtitleMaxWidth}px)`:\"100%\",overflowWrap:\"anywhere\"};const Heading=headingTag;return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[title&&/*#__PURE__*/_jsx(Heading,{style:titleStyle,children:title}),subtitle&&/*#__PURE__*/_jsx(\"p\",{style:subtitleStyle,children:subtitle})]});}addPropertyControls(SectionHeader,{title:{type:ControlType.String,title:\"Title\",defaultValue:\"Our Games\"},subtitle:{type:ControlType.String,title:\"Subtitle\",displayTextArea:true,placeholder:\"Live-operated Roblox experiences played by millions of players worldwide.\"},align:{type:ControlType.SegmentedEnum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\"},headingTag:{type:ControlType.Enum,title:\"Heading Tag\",options:[\"h1\",\"h2\",\"h3\"],optionTitles:[\"H1\",\"H2\",\"H3\"],defaultValue:\"h2\"},titleFont:{type:ControlType.String,title:\"Title Font\",defaultValue:\"Inter\"},titleSize:{type:ControlType.Number,title:\"Title Size\",defaultValue:56,min:16,max:160},titleWeight:{type:ControlType.Number,title:\"Title Weight\",defaultValue:600,min:100,max:900,step:100},titleColor:{type:ControlType.Color,title:\"Title Color\",defaultValue:\"#111111\"},titleTracking:{type:ControlType.Number,title:\"Tracking\",defaultValue:-.02,min:-.1,max:.2,step:.01},subtitleFont:{type:ControlType.String,title:\"Sub Font\",placeholder:\"Inherit title font\"},subtitleSize:{type:ControlType.Number,title:\"Sub Size\",defaultValue:18,min:10,max:48},subtitleWeight:{type:ControlType.Number,title:\"Sub Weight\",defaultValue:400,min:100,max:900,step:100},subtitleColor:{type:ControlType.Color,title:\"Sub Color\",defaultValue:\"#444444\"},subtitleMaxWidth:{type:ControlType.Number,title:\"Sub Max W\",defaultValue:640,min:0,max:1200,step:10},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:12,min:0,max:80},fluid:{type:ControlType.Boolean,title:\"Fluid Size\",defaultValue:true}});const IMAGE_RATIO_PADDING={\"16:9\":\"56.25%\",\"4:3\":\"75%\",\"1:1\":\"100%\"};/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export function GamesGrid(props){const{hasProvider}=useContext(GameDataContext);const ownIds=parseUniverseIds(props.universeIds);if(!hasProvider&&ownIds.length>0){const{universeIds,minPlayerThreshold,style,...gridProps}=props;return /*#__PURE__*/_jsx(GameDataProvider,{universeIds:universeIds,minPlayerThreshold:minPlayerThreshold??1e3,style:style,children:/*#__PURE__*/_jsx(GamesGridInner,{...gridProps})});}return /*#__PURE__*/_jsx(GamesGridInner,{...props});}function GamesGridInner(props){const{gameConfigs=\"{}\",autoThumbnails=true,thumbnailApiUrl=\"https://thumbnails.roproxy.com/v1/games/multiget/thumbnails\",sectionTitle=\"\",sectionNote=\"\",sectionTitleSize=32,fluidText=true,cardLayout=\"stacked\",statStyle=\"rows\",cleanText=true,descriptionLines=3,imageRatio=\"16:9\",padding=20,paddingTop=0,paddingBottom=48,maxWidth=1100,centerGrid=false,maxCardWidth=400,gap=30,minCardWidth=260,numberFormat=\"compact\",borderRadius=12,imageHeight=294,showPeakCcu=true,showPlaying=true,showVisits=true,cardBorderColor=\"rgba(255,255,255,0.45)\",cardShadow=true,cardGlow=true,glowColor=\"rgba(255,255,255,0.35)\",glowSize=24,hoverGlow=true,hoverLift=6,appearAnimation=true,showOtherCard=true,otherCardTitle=\"Other Games\",otherCardColorA=\"#1B2A5E\",otherCardColorB=\"#2E4DCC\",loadingText=\"Loading games...\",emptyText=\"Pulling from API ↻\",style}=props;const gameData=useGameData();// Mobile tap-through (ghost click) prevention during fast page transitions\nconst[canClickLinks,setCanClickLinks]=useState(false);const mountTimeRef=useRef(Date.now());useEffect(()=>{mountTimeRef.current=Date.now();const timer=setTimeout(()=>{setCanClickLinks(true);},450);return()=>clearTimeout(timer);},[]);const handleCardClick=useCallback(e=>{if(!canClickLinks||Date.now()-mountTimeRef.current<450){e.preventDefault();e.stopPropagation();}},[canClickLinks]);const configMap=useMemo(()=>{try{const parsed=JSON.parse(gameConfigs);return typeof parsed===\"object\"&&parsed!==null?parsed:{};}catch{return{};}},[gameConfigs]);const ownParsed=useMemo(()=>parseUniverseIdEntries(props.universeIds),[props.universeIds]);const[thumbnails,setThumbnails]=useState({});const idsKey=(gameData.configuredIds.length>0?gameData.configuredIds:gameData.allGames.map(g=>String(g.id))).join(\",\");useEffect(()=>{if(!autoThumbnails||!idsKey)return;let cancelled=false;fetchThumbnails(idsKey.split(\",\"),thumbnailApiUrl).then(map=>{if(!cancelled)setThumbnails(map);}).catch(()=>{// Non-fatal thumbnail failure\n});return()=>{cancelled=true;};},[idsKey,autoThumbnails,thumbnailApiUrl]);const[gridWidth,setGridWidth]=useState(0);const resizeObserverRef=useRef(null);const gridRef=useCallback(node=>{resizeObserverRef.current?.disconnect();resizeObserverRef.current=null;if(!node)return;const measure=()=>setGridWidth(prev=>{const next=Math.floor(node.clientWidth);return next===prev?prev:next;});measure();if(typeof ResizeObserver!==\"undefined\"){resizeObserverRef.current=new ResizeObserver(measure);resizeObserverRef.current.observe(node);}},[]);useEffect(()=>()=>resizeObserverRef.current?.disconnect(),[]);let cardWidth=null;let blockWidth=null;if(gridWidth>0){const cols=Math.max(1,Math.floor((gridWidth+gap)/(minCardWidth+gap)));const fitted=Math.floor((gridWidth-gap*(cols-1))/cols);cardWidth=maxCardWidth>0?Math.min(fitted,maxCardWidth):fitted;blockWidth=cols*cardWidth+(cols-1)*gap;}const wrapperStyle={...style,width:\"100%\",maxWidth:maxWidth>0?`${maxWidth}px`:\"100%\",minWidth:0,height:\"auto\",padding:`${paddingTop}px ${padding}px ${paddingBottom}px`,boxSizing:\"border-box\",marginLeft:maxWidth>0?\"auto\":undefined,marginRight:maxWidth>0?\"auto\":undefined};const messageStyle={width:\"100%\",padding:\"40px 16px\",boxSizing:\"border-box\",textAlign:\"center\",color:\"#FDFCEE\",fontFamily:\"'Public Sans', sans-serif\"};const trackStyle={width:\"100%\",minWidth:0,boxSizing:\"border-box\"};const gridStyle={display:\"flex\",flexWrap:\"wrap\",justifyContent:centerGrid?\"center\":\"flex-start\",alignItems:\"stretch\",gap:`${gap}px`,width:blockWidth!==null?`${blockWidth}px`:\"100%\",maxWidth:\"100%\",marginLeft:\"auto\",marginRight:\"auto\",boxSizing:\"border-box\"};const cardShellStyle=cardWidth!==null?{flex:`0 0 ${cardWidth}px`,width:`${cardWidth}px`,maxWidth:\"100%\",minHeight:0,boxSizing:\"border-box\"}:{flex:`1 1 ${minCardWidth}px`,minWidth:`min(100%, ${minCardWidth}px)`,maxWidth:maxCardWidth>0?`min(100%, ${maxCardWidth}px)`:\"100%\",width:\"100%\",minHeight:0,boxSizing:\"border-box\"};const sectionHeader=(sectionTitle||sectionNote)&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"baseline\",gap:\"10px\",marginBottom:\"28px\",flexWrap:\"wrap\",minWidth:0},children:[sectionTitle&&/*#__PURE__*/_jsx(\"h2\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:600,fontSize:fluidFontSize(sectionTitleSize,fluidText),lineHeight:1.15,color:\"#FDFCEE\",margin:0,overflowWrap:\"anywhere\"},children:sectionTitle}),sectionNote&&/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontSize:\"12px\",color:\"#FDFCEE\",opacity:.6},children:sectionNote})]});if(gameData.isLoading&&gameData.isInitialLoad){return /*#__PURE__*/_jsxs(\"div\",{style:wrapperStyle,children:[sectionHeader,/*#__PURE__*/_jsx(\"div\",{style:messageStyle,children:loadingText})]});}if(gameData.totalGames===0&&!gameData.isLoading){return /*#__PURE__*/_jsxs(\"div\",{style:wrapperStyle,children:[sectionHeader,/*#__PURE__*/_jsx(\"div\",{style:{...messageStyle,opacity:.7},children:gameData.error?loadingText:emptyText})]});}const cardStyle={display:\"flex\",flexDirection:\"column\",gap:\"13px\",borderRadius:`${borderRadius}px`};const glow=glowColor||\"rgba(255,255,255,0.35)\";const restShadow=[cardShadow?\"0 6px 18px rgba(0,0,0,0.18)\":\"0 0 0 rgba(0,0,0,0)\",cardGlow?`0 0 ${glowSize}px ${glow}`:`0 0 0 ${glow}`,`0 0 0 ${glow}`].join(\", \");const hoverShadow=[cardShadow?\"0 14px 30px rgba(0,0,0,0.24)\":\"0 0 0 rgba(0,0,0,0)\",`0 0 ${Math.round(Math.max(glowSize,12)*1.8)}px ${glow}`,`0 0 ${Math.round(Math.max(glowSize,12)/2)}px ${glow}`].join(\", \");const glowStyleTag=/*#__PURE__*/_jsx(\"style\",{children:`\n            .game-card-glow {\n                box-shadow: ${restShadow};\n                transition: box-shadow 0.3s cubic-bezier(0.16, 1, 0.3, 1);\n                will-change: box-shadow;\n            }\n            .game-card-glow:hover {\n                box-shadow: ${hoverGlow?hoverShadow:restShadow} !important;\n            }\n        `});const target=RenderTarget.current();const onCanvas=target===RenderTarget.canvas||target===RenderTarget.thumbnail;const animateAppear=appearAnimation&&!onCanvas;const shellMotion=index=>({...animateAppear?{initial:\"hidden\",whileInView:\"visible\",viewport:{once:true,margin:\"-10% 0px\"},variants:{hidden:{opacity:0,y:24},visible:{opacity:1,y:0,transition:{duration:.55,ease:\"easeOut\",delay:Math.min(index,8)*.06}}}}:{},...hoverGlow&&hoverLift>0?{whileHover:{y:-hoverLift,transition:{duration:.25}}}:{}});const imageBoxStyle={position:\"relative\",width:\"100%\",borderRadius:`${borderRadius}px`,overflow:\"hidden\",backgroundColor:\"#1d1d1d\",boxSizing:\"border-box\",border:cardBorderColor?`1px solid ${cardBorderColor}`:undefined,...imageRatio===\"fixed\"?{height:`${imageHeight}px`}:{paddingTop:IMAGE_RATIO_PADDING[imageRatio]??\"56.25%\"}};const fillBox={position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",boxSizing:\"border-box\"};const descLineHeight=1.5;const descFontSize=14;const overlayGradient={position:\"absolute\",inset:0,background:\"linear-gradient(180deg, rgba(0,0,0,0) 40%, rgba(0,0,0,0.88) 100%)\",pointerEvents:\"none\"};const overlayTitleStyle={fontFamily:\"'Public Sans', sans-serif\",fontWeight:700,fontSize:\"17px\",color:\"#FFFFFF\",margin:0,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"};const overlayStatTextStyle={fontFamily:\"Inter, sans-serif\",fontWeight:600,fontSize:\"14px\",color:\"#FFFFFF\"};const overlayDescStyle={fontFamily:\"'Public Sans', sans-serif\",fontWeight:400,fontSize:\"13px\",lineHeight:1.45,color:\"rgba(255,255,255,0.75)\",margin:0,display:\"-webkit-box\",WebkitLineClamp:descriptionLines,WebkitBoxOrient:\"vertical\",overflow:\"hidden\"};const overlayStatsRow=(playing,visits,peakCcu)=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:\"10px\",flexWrap:\"wrap\"},children:[peakCcu?/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",alignItems:\"center\",gap:\"5px\"},children:[/*#__PURE__*/_jsx(PeakCcuIcon,{}),/*#__PURE__*/_jsx(\"span\",{style:overlayStatTextStyle,children:peakCcu})]}):null,peakCcu&&(showPlaying||showVisits)?/*#__PURE__*/_jsx(\"span\",{style:{color:\"rgba(255,255,255,0.35)\",fontSize:\"14px\"},children:\"|\"}):null,showPlaying&&/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",alignItems:\"center\",gap:\"5px\"},children:[/*#__PURE__*/_jsx(PersonIcon,{}),/*#__PURE__*/_jsxs(\"span\",{style:overlayStatTextStyle,children:[formatNumber(playing,numberFormat),\"+\"]})]}),showPlaying&&showVisits&&/*#__PURE__*/_jsx(\"span\",{style:{color:\"rgba(255,255,255,0.35)\",fontSize:\"14px\"},children:\"|\"}),showVisits&&/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",alignItems:\"center\",gap:\"5px\"},children:[/*#__PURE__*/_jsx(VisitsIcon,{}),/*#__PURE__*/_jsxs(\"span\",{style:overlayStatTextStyle,children:[formatNumber(visits,numberFormat),\"+\"]})]})]});const aboveThresholdCards=gameData.gamesAboveThreshold.map((game,index)=>{const config=configMap[String(game.id)]||{};const name=config.displayName||(cleanText?cleanDisplayName(game.name||\"Unknown\"):game.name||\"Unknown\");const rawDescription=config.description||(cleanText?cleanDescriptionText(game.description||\"\"):game.description||\"\");const description=descriptionLines>0?rawDescription:\"\";const image=config.image||thumbnails[String(game.id)]||\"\";const gameUrl=config.gameUrl||buildGameUrl(game.rootPlaceId,game.name);const rawPeak=config.peakCcu??ownParsed.peakCcuById[String(game.id)]??gameData.peakCcuById[String(game.id)];const peakCcu=showPeakCcu?formatPeakCcu(rawPeak,numberFormat):\"\";if(cardLayout===\"overlay\"){return /*#__PURE__*/_jsx(motion.div,{style:cardShellStyle,...shellMotion(index),children:/*#__PURE__*/_jsx(\"a\",{href:gameUrl,target:\"_blank\",rel:\"noopener noreferrer\",onClick:handleCardClick,style:{textDecoration:\"none\",display:\"block\",pointerEvents:canClickLinks?\"auto\":\"none\",touchAction:\"manipulation\"},children:/*#__PURE__*/_jsxs(\"div\",{className:\"game-card-glow\",style:imageBoxStyle,children:[image?/*#__PURE__*/_jsx(motion.img,{src:image,alt:name,style:{...fillBox,objectFit:\"cover\",display:\"block\"},loading:\"lazy\",whileHover:{scale:1.05},transition:{duration:.35,ease:\"easeOut\"}}):/*#__PURE__*/_jsx(\"div\",{style:{...fillBox,display:\"flex\",justifyContent:\"center\",alignItems:\"center\",color:\"#666\",background:\"linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%)\",padding:\"0 16px\",textAlign:\"center\"},children:name}),/*#__PURE__*/_jsx(\"div\",{style:overlayGradient}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",left:0,right:0,bottom:0,padding:\"14px 16px\",display:\"flex\",flexDirection:\"column\",gap:\"8px\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:overlayTitleStyle,children:name}),descriptionLines>0&&description&&/*#__PURE__*/_jsx(\"p\",{style:overlayDescStyle,children:description}),overlayStatsRow(game.playing,game.visits,peakCcu)]})]})})},`game-${game.id}`);}return /*#__PURE__*/_jsx(motion.div,{style:cardShellStyle,...shellMotion(index),children:/*#__PURE__*/_jsxs(\"div\",{style:cardStyle,children:[/*#__PURE__*/_jsx(\"a\",{href:gameUrl,target:\"_blank\",rel:\"noopener noreferrer\",onClick:handleCardClick,style:{textDecoration:\"none\",pointerEvents:canClickLinks?\"auto\":\"none\",touchAction:\"manipulation\"},children:/*#__PURE__*/_jsx(\"div\",{className:\"game-card-glow\",style:imageBoxStyle,children:image?/*#__PURE__*/_jsx(motion.img,{src:image,alt:name,style:{...fillBox,objectFit:\"cover\",display:\"block\"},loading:\"lazy\",whileHover:{scale:1.05},transition:{duration:.35,ease:\"easeOut\"}}):/*#__PURE__*/_jsx(\"div\",{style:{...fillBox,display:\"flex\",justifyContent:\"center\",alignItems:\"center\",color:\"#666\",background:\"linear-gradient(135deg, #2a2a2a 0%, #1a1a1a 100%)\",padding:\"0 16px\",textAlign:\"center\"},children:name})})}),/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"0 10px\",display:\"flex\",flexDirection:\"column\",gap:\"6px\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:500,fontSize:\"16px\",color:\"#FDFCEE\",margin:0,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:name}),descriptionLines>0&&/*#__PURE__*/_jsx(\"p\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:400,fontSize:`${descFontSize}px`,lineHeight:descLineHeight,color:\"#FDFCEE\",opacity:.8,margin:0,display:\"-webkit-box\",WebkitLineClamp:descriptionLines,WebkitBoxOrient:\"vertical\",overflow:\"hidden\",minHeight:`${Math.round(descriptionLines*descFontSize*descLineHeight)}px`},children:description}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"1px\",backgroundColor:\"#212625\"}}),statStyle===\"icons\"?overlayStatsRow(game.playing,game.visits,peakCcu):/*#__PURE__*/_jsxs(_Fragment,{children:[peakCcu&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},children:[/*#__PURE__*/_jsxs(\"span\",{style:{display:\"flex\",alignItems:\"center\",gap:\"6px\",fontFamily:\"'Public Sans', sans-serif\",fontWeight:500,fontSize:\"14px\",color:\"#FDFCEE\"},children:[/*#__PURE__*/_jsx(PeakCcuIcon,{size:14}),\"Peak CCU\"]}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"Inter, sans-serif\",fontSize:\"14px\",color:\"#FDFCEE\"},children:peakCcu})]}),showPlaying&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:500,fontSize:\"14px\",color:\"#FDFCEE\"},children:\"Playing\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"Inter, sans-serif\",fontSize:\"14px\",color:\"#FDFCEE\"},children:formatNumber(game.playing,numberFormat)})]}),showVisits&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:500,fontSize:\"14px\",color:\"#FDFCEE\"},children:\"Total Visits\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"Inter, sans-serif\",fontSize:\"14px\",color:\"#FDFCEE\"},children:formatNumber(game.visits,numberFormat)})]})]})]})]})},`game-${game.id}`);});const otherCardOverlay=showOtherCard&&gameData.belowThresholdCount>0&&cardLayout===\"overlay\"&&/*#__PURE__*/_jsx(motion.div,{style:cardShellStyle,...shellMotion(gameData.aboveThresholdCount),children:/*#__PURE__*/_jsxs(\"div\",{className:\"game-card-glow\",style:{...imageBoxStyle,background:`linear-gradient(135deg, ${otherCardColorA} 0%, ${otherCardColorB} 100%)`},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\",gap:\"2px\",paddingBottom:\"34px\"},children:[/*#__PURE__*/_jsxs(\"span\",{style:{fontFamily:\"Inter, sans-serif\",fontWeight:600,fontSize:\"44px\",color:\"#FDFCEE\",lineHeight:1.1,display:\"inline-flex\",alignItems:\"baseline\"},children:[\"+\",renderRollingDigits(String(gameData.belowThresholdCount),{fontFamily:\"Inter, sans-serif\",fontWeight:600,fontSize:\"44px\",color:\"#FDFCEE\",lineHeight:1.1})]}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontSize:\"14px\",color:\"#FDFCEE\",opacity:.55},children:\"more games\"})]}),/*#__PURE__*/_jsx(\"div\",{style:overlayGradient}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",left:0,right:0,bottom:0,padding:\"14px 16px\",display:\"flex\",flexDirection:\"column\",gap:\"8px\",pointerEvents:\"none\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:overlayTitleStyle,children:otherCardTitle}),descriptionLines>0&&/*#__PURE__*/_jsxs(\"p\",{style:overlayDescStyle,children:[\"Combined stats for\",\" \",gameData.belowThresholdCount,\" more experiences in our portfolio.\"]}),overlayStatsRow(gameData.belowThresholdPlaying,gameData.belowThresholdVisits)]})]})},\"other-games\");const otherCard=showOtherCard&&gameData.belowThresholdCount>0&&cardLayout===\"stacked\"&&/*#__PURE__*/_jsx(motion.div,{style:cardShellStyle,...shellMotion(gameData.aboveThresholdCount),children:/*#__PURE__*/_jsxs(\"div\",{style:cardStyle,children:[/*#__PURE__*/_jsx(\"div\",{className:\"game-card-glow\",style:{...imageBoxStyle,background:`linear-gradient(135deg, ${otherCardColorA} 0%, ${otherCardColorB} 100%)`},children:/*#__PURE__*/_jsxs(\"div\",{style:{...fillBox,display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\",gap:\"2px\"},children:[/*#__PURE__*/_jsxs(\"span\",{style:{fontFamily:\"Inter, sans-serif\",fontWeight:600,fontSize:\"44px\",color:\"#FDFCEE\",lineHeight:1.1,display:\"inline-flex\",alignItems:\"baseline\"},children:[\"+\",renderRollingDigits(String(gameData.belowThresholdCount),{fontFamily:\"Inter, sans-serif\",fontWeight:600,fontSize:\"44px\",color:\"#FDFCEE\",lineHeight:1.1})]}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontSize:\"14px\",color:\"#FDFCEE\",opacity:.55},children:\"more games\"})]})}),/*#__PURE__*/_jsxs(\"div\",{style:{padding:\"0 10px\",display:\"flex\",flexDirection:\"column\",gap:\"6px\"},children:[/*#__PURE__*/_jsx(\"h3\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:500,fontSize:\"16px\",color:\"#FDFCEE\",margin:0,overflow:\"hidden\",textOverflow:\"ellipsis\",whiteSpace:\"nowrap\"},children:otherCardTitle}),descriptionLines>0&&/*#__PURE__*/_jsxs(\"p\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:400,fontSize:`${descFontSize}px`,lineHeight:descLineHeight,color:\"#FDFCEE\",opacity:.8,margin:0,display:\"-webkit-box\",WebkitLineClamp:descriptionLines,WebkitBoxOrient:\"vertical\",overflow:\"hidden\",minHeight:`${Math.round(descriptionLines*descFontSize*descLineHeight)}px`},children:[\"Combined stats for\",\" \",gameData.belowThresholdCount,\" more experiences in our portfolio.\"]}),/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"1px\",backgroundColor:\"#212625\"}}),statStyle===\"icons\"?overlayStatsRow(gameData.belowThresholdPlaying,gameData.belowThresholdVisits):/*#__PURE__*/_jsxs(_Fragment,{children:[showPlaying&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:500,fontSize:\"14px\",color:\"#FDFCEE\"},children:\"Playing\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"Inter, sans-serif\",fontSize:\"14px\",color:\"#FDFCEE\"},children:formatNumber(gameData.belowThresholdPlaying,numberFormat)})]}),showVisits&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:500,fontSize:\"14px\",color:\"#FDFCEE\"},children:\"Total Visits\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontFamily:\"Inter, sans-serif\",fontSize:\"14px\",color:\"#FDFCEE\"},children:formatNumber(gameData.belowThresholdVisits,numberFormat)})]})]})]})]})},\"other-games\");return /*#__PURE__*/_jsxs(\"div\",{style:wrapperStyle,children:[glowStyleTag,sectionHeader,/*#__PURE__*/_jsx(\"div\",{ref:gridRef,style:trackStyle,children:/*#__PURE__*/_jsxs(\"div\",{style:gridStyle,children:[aboveThresholdCards,otherCard,otherCardOverlay]})})]});}GamesGrid.defaultProps={universeIds:\"\",minPlayerThreshold:1e3,gameConfigs:\"{}\",autoThumbnails:true,thumbnailApiUrl:\"https://thumbnails.roproxy.com/v1/games/multiget/thumbnails\",sectionTitle:\"\",sectionNote:\"\",sectionTitleSize:32,fluidText:true,cardLayout:\"stacked\",statStyle:\"rows\",cleanText:true,descriptionLines:3,imageRatio:\"16:9\",padding:20,paddingTop:0,paddingBottom:48,maxWidth:1100,centerGrid:false,maxCardWidth:400,gap:30,minCardWidth:260,numberFormat:\"compact\",borderRadius:12,imageHeight:294,showPeakCcu:true,showPlaying:true,showVisits:true,cardBorderColor:\"rgba(255,255,255,0.45)\",cardShadow:true,cardGlow:true,glowColor:\"rgba(255,255,255,0.35)\",glowSize:24,hoverGlow:true,hoverLift:6,appearAnimation:true,showOtherCard:true,otherCardTitle:\"Other Games\",otherCardColorA:\"#1B2A5E\",otherCardColorB:\"#2E4DCC\",loadingText:\"Loading games...\",emptyText:\"Pulling from API ↻\"};addPropertyControls(GamesGrid,{universeIds:{type:ControlType.String,title:\"Universe IDs\",placeholder:\"(123456), (70K)\\n(789012), (1.5M)\\n345678\",displayTextArea:true,description:\"Standalone mode: enter one per line as (id), (peakccu) or id, peakccu\"},minPlayerThreshold:{type:ControlType.Number,title:\"Min Players\",defaultValue:1e3,min:0,max:1e4,step:50,description:\"Games below this player count are combined into the Other card\",hidden:p=>!p.universeIds},gameConfigs:{type:ControlType.String,title:\"Configs\",displayTextArea:true,placeholder:'{\"123\": {\"displayName\": \"My Game\", \"peakCcu\": \"70K\"}}'},autoThumbnails:{type:ControlType.Boolean,title:\"Auto Images\",defaultValue:true,description:\"Fetch game thumbnails from Roblox automatically (one batched request)\"},thumbnailApiUrl:{type:ControlType.String,title:\"Thumb API\",defaultValue:\"https://thumbnails.roproxy.com/v1/games/multiget/thumbnails\",hidden:p=>!p.autoThumbnails},sectionTitle:{type:ControlType.String,title:\"Title\",placeholder:\"Our Work\",description:\"Optional heading above the grid\"},sectionNote:{type:ControlType.String,title:\"Title Note\",placeholder:\"*Some games not included\",hidden:p=>!p.sectionTitle&&!p.sectionNote},sectionTitleSize:{type:ControlType.Number,title:\"Title Size\",defaultValue:32,min:14,max:96,hidden:p=>!p.sectionTitle},fluidText:{type:ControlType.Boolean,title:\"Fluid Title\",defaultValue:true,description:\"Scale the title down on phones\",hidden:p=>!p.sectionTitle},cardLayout:{type:ControlType.SegmentedEnum,title:\"Card Style\",options:[\"stacked\",\"overlay\"],optionTitles:[\"Text Below\",\"Over Image\"],defaultValue:\"stacked\"},statStyle:{type:ControlType.SegmentedEnum,title:\"Stats\",options:[\"rows\",\"icons\"],optionTitles:[\"Rows\",\"Icons\"],defaultValue:\"rows\",description:\"Label/value rows or icon row (👤 4.9K+ | 🌐 26M+)\",hidden:p=>p.cardLayout===\"overlay\"},cleanText:{type:ControlType.Boolean,title:\"Clean Text\",defaultValue:true,description:\"Strip [tags] and emojis from raw Roblox names/descriptions\"},descriptionLines:{type:ControlType.Number,title:\"Desc Lines\",defaultValue:3,min:0,max:6,step:1,description:\"Max description lines (0 = hide descriptions)\"},imageRatio:{type:ControlType.Enum,title:\"Img Ratio\",options:[\"16:9\",\"4:3\",\"1:1\",\"fixed\"],optionTitles:[\"16:9 Wide\",\"4:3\",\"Square\",\"Fixed Height\"],defaultValue:\"16:9\"},padding:{type:ControlType.Number,title:\"Side Pad\",defaultValue:20,min:0,max:120,description:\"Side gutters so cards never touch the screen edge on phones\"},paddingTop:{type:ControlType.Number,title:\"Top Pad\",defaultValue:0,min:0,max:200,step:4},paddingBottom:{type:ControlType.Number,title:\"Bottom Pad\",defaultValue:48,min:0,max:200,step:4,description:\"Space under the last row so the section never ends flush\"},maxWidth:{type:ControlType.Number,title:\"Max Width\",defaultValue:1100,min:0,max:2e3,step:10,description:\"Center content at this width (0 = full width)\"},centerGrid:{type:ControlType.Boolean,title:\"Center Rows\",defaultValue:false,description:\"The grid block is always centered. On: a partial last row is centered too. Off: rows align left inside the block\"},maxCardWidth:{type:ControlType.Number,title:\"Max Card W\",defaultValue:400,min:0,max:800,step:10,description:\"Max card width in px (0 = no cap)\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:30,min:0,max:100},minCardWidth:{type:ControlType.Number,title:\"Min Width\",defaultValue:260,min:150,max:500},numberFormat:{type:ControlType.Enum,title:\"Format\",options:[\"compact\",\"full\"],optionTitles:[\"Compact\",\"Full\"],defaultValue:\"compact\"},borderRadius:{type:ControlType.Number,title:\"Radius\",defaultValue:12,min:0,max:50},cardBorderColor:{type:ControlType.Color,title:\"Card Border\",defaultValue:\"rgba(255,255,255,0.45)\",description:\"Thin outline around each card (clear the color to remove)\"},cardShadow:{type:ControlType.Boolean,title:\"Card Shadow\",defaultValue:true},cardGlow:{type:ControlType.Boolean,title:\"Glow\",defaultValue:true,description:\"Soft glow around every card\"},glowColor:{type:ControlType.Color,title:\"Glow Color\",defaultValue:\"rgba(255,255,255,0.35)\",hidden:p=>!p.cardGlow&&!p.hoverGlow},glowSize:{type:ControlType.Number,title:\"Glow Size\",defaultValue:24,min:0,max:80,step:2,hidden:p=>!p.cardGlow&&!p.hoverGlow},hoverGlow:{type:ControlType.Boolean,title:\"Hover Effect\",defaultValue:true,description:\"Stronger glow and a slight lift when hovering a card\"},hoverLift:{type:ControlType.Number,title:\"Hover Lift\",defaultValue:6,min:0,max:24,hidden:p=>!p.hoverGlow},appearAnimation:{type:ControlType.Boolean,title:\"Appear Anim\",defaultValue:true,description:\"Fade and slide cards in as they scroll into view (preview/live only)\"},imageHeight:{type:ControlType.Number,title:\"Img Height\",defaultValue:294,min:100,max:500,hidden:p=>p.imageRatio!==\"fixed\"},showPeakCcu:{type:ControlType.Boolean,title:\"Show Peak CCU\",defaultValue:true,description:\"Display Peak CCU when configured for a game\"},showPlaying:{type:ControlType.Boolean,title:\"Show Playing\",defaultValue:true},showVisits:{type:ControlType.Boolean,title:\"Show Visits\",defaultValue:true},showOtherCard:{type:ControlType.Boolean,title:\"Show Other\",defaultValue:true},otherCardTitle:{type:ControlType.String,title:\"Other Title\",defaultValue:\"Other Games\",hidden:p=>!p.showOtherCard},otherCardColorA:{type:ControlType.Color,title:\"Other Color 1\",defaultValue:\"#1B2A5E\",hidden:p=>!p.showOtherCard},otherCardColorB:{type:ControlType.Color,title:\"Other Color 2\",defaultValue:\"#2E4DCC\",hidden:p=>!p.showOtherCard},loadingText:{type:ControlType.String,title:\"Loading\",defaultValue:\"Loading games...\"},emptyText:{type:ControlType.String,title:\"Empty\",defaultValue:\"Pulling from API ↻\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"GamesGrid\":{\"type\":\"reactComponent\",\"name\":\"GamesGrid\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"auto\"}},\"GameDataProvider\":{\"type\":\"reactComponent\",\"name\":\"GameDataProvider\",\"slots\":[\"children\"],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"useGameData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"SectionHeader\":{\"type\":\"reactComponent\",\"name\":\"SectionHeader\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"AggregateMetric\":{\"type\":\"reactComponent\",\"name\":\"AggregateMetric\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"GameMetric\":{\"type\":\"reactComponent\",\"name\":\"GameMetric\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GameDataSystem.map"],"mappings":"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"}