{"version":3,"file":"GameDataSystem.BxnceMD5.mjs","names":["useContext","useMemo","useState","useRef","useCallback","_Fragment","React.useRef","React.useState"],"sources":["https:/framerusercontent.com/modules/3nhLfnqCWyw6sj2jGVIF/xY9YsENSQLg4YVgO41V7/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 *\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 */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}from\"framer\";import{motion}from\"framer-motion\";/* ============================================\n   UTILITIES\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:\"\"};}if(safe>=1e9){return{value:(safe/1e9).toFixed(1),suffix:\"B\"};}if(safe>=1e6){return{value:(safe/1e6).toFixed(1),suffix:\"M\"};}if(safe>=1e3){return{value:(safe/1e3).toFixed(1),suffix:\"K\"};}return{value:safe.toString(),suffix:\"\"};}function formatNumber(num,format=\"compact\"){const parts=formatNumberParts(num,format);return parts.value+parts.suffix;}function parseUniverseIds(input){if(!input||typeof input!==\"string\")return[];const parts=input.split(/[,\\n\\r]+|\\s{2,}/);const seen=new Set;const result=[];for(const part of parts){const trimmed=part.trim();if(!trimmed||!/^\\d+$/.test(trimmed)||seen.has(trimmed))continue;seen.add(trimmed);result.push(trimmed);}return result;}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 generateCacheKey(baseUrl,universeIds){const sortedIds=[...universeIds].sort();return`${baseUrl}:${sortedIds.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 buildGameUrl(rootPlaceId,gameName){const slug=gameName?gameName.replace(/[^a-zA-Z0-9]+/g,\"-\").replace(/^-|-$/g,\"\"):\"game\";return`https://www.roblox.com/games/${rootPlaceId}/${slug}`;}// Emojis + symbols commonly used in Roblox game titles/descriptions\nconst 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;/** \"[🏖️QOL] Blue Lock: Rivals\" -> \"Blue Lock: Rivals\" */function cleanDisplayName(name){const cleaned=name.replace(/\\[[^\\]]*\\]/g,\" \").replace(EMOJI_REGEX,\"\").replace(/\\s+/g,\" \").trim();return cleaned||name;}/** Strip emojis and collapse whitespace/newlines in raw API descriptions */function cleanDescriptionText(text){const cleaned=text.replace(EMOJI_REGEX,\"\").replace(/\\s+/g,\" \").trim();return cleaned||text;}const requestCache=new Map;const MIN_REFETCH_INTERVAL=5e3;// Tracks which endpoint served the most recent successful fetch (for the status panel)\nlet 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){// Never fall back on an intentional abort\nif(error instanceof DOMException&&error.name===\"AbortError\")return false;// Fall back on rate limits (429), server errors (5xx), or network failures (no status)\nif(error instanceof ApiError){return error.status===429||error.status===undefined||error.status>=500;}return true;}async function fetchGameData(apiUrl,fallbackApiUrl,cacheKey,abortSignal){const cached=requestCache.get(cacheKey);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=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)}));requestCache.set(cacheKey,{key:cacheKey,promise:null,data:games,fetchedAt:Date.now(),error:null});return games;}catch(error){const existing=requestCache.get(cacheKey);requestCache.set(cacheKey,{key:cacheKey,promise:null,data:existing?.data??null,fetchedAt:existing?.fetchedAt??null,error:error instanceof Error?error.message:\"Unknown error\"});throw error;}})();requestCache.set(cacheKey,{key:cacheKey,promise:fetchPromise,data:cached?.data??null,fetchedAt:cached?.fetchedAt??null,error:null});return fetchPromise;}/* ============================================\n   THUMBNAIL CACHE (Singleton)\n   ============================================ */// universeIds key -> { universeId -> imageUrl }; thumbnails rarely change, cache for the session\nconst thumbnailCache=new Map;const thumbnailPromises=new Map;// Persist the URL map across visits so repeat page loads skip the thumbnail\n// API entirely and images start downloading immediately.\nconst THUMB_STORAGE_PREFIX=\"ixgd-thumbs:\";const THUMB_STORAGE_TTL=24*60*60*1e3// 24h — thumbnails rarely change\n;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// SSR, private mode, or corrupted entry — just refetch\n;}}function writeStoredThumbnails(key,map){try{localStorage.setItem(THUMB_STORAGE_PREFIX+key,JSON.stringify({savedAt:Date.now(),map}));}catch{// storage full/unavailable — non-fatal\n}}async function fetchThumbnails(universeIds,apiBase){const key=[...universeIds].sort().join(\",\");const cached=thumbnailCache.get(key);if(cached)return cached;// Repeat visit: serve the stored map instantly, refresh in the background\nconst 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:{},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:[]};const GameDataContext=/*#__PURE__*/createContext(defaultState);export function useGameData(){return useContext(GameDataContext);}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\",children}=props;const parsedIds=useMemo(()=>parseUniverseIds(universeIds),[universeIds]);const[state,setState]=useState(()=>({...defaultState,threshold:minPlayerThreshold,configuredIds:parsedIds}));const abortControllerRef=useRef(null);const refreshIntervalRef=useRef(null);const isMountedRef=useRef(true);const isFetchingRef=useRef(false);const calculateState=useCallback((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 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 cacheKey=generateCacheKey(apiBaseUrl,parsedIds);if(isMountedRef.current){setState(prev=>({...prev,isLoading:true,isInitialLoad:isInitial&&prev.isInitialLoad}));}try{const games=await fetchGameData(apiUrl,fallbackUrl,cacheKey,abortControllerRef.current.signal);if(!isMountedRef.current)return;const calculated=calculateState(games,minPlayerThreshold,parsedIds);setState(prev=>({...prev,...calculated,isLoading:false,isInitialLoad:false,error:null,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\";setState(prev=>({...prev,isLoading:false,error:errorMessage}));}finally{isFetchingRef.current=false;}},[parsedIds,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]);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};}const calculated=calculateState(prev.allGames,minPlayerThreshold,parsedIds);return{...prev,...calculated};});},[minPlayerThreshold,calculateState,parsedIds]);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:\"#ff6b6b\"},children:[\"Error: \",state.error]})]});// \"Total only\" mode: render one aggregate number directly from the provider\n// (uses AggregateMetric internally, so animation/label behavior is identical)\nconst 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});return /*#__PURE__*/_jsx(GameDataContext.Provider,{value:state,children:/*#__PURE__*/_jsxs(\"div\",{style:{width:\"100%\",height:\"fit-content\"},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\"};addPropertyControls(GameDataProvider,{universeIds:{type:ControlType.String,title:\"Universe IDs\",placeholder:\"123\\n456\\n789\",displayTextArea:true,description:\"Enter Roblox Universe IDs, one per line\"},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},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\"}=props;const containerStyle={display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:align===\"left\"?\"flex-start\":align===\"right\"?\"flex-end\":\"center\",gap:\"6px\",width:\"100%\",height:\"100%\"};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}=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:fontSize,fontWeight:fontWeight,color:color,whiteSpace:\"nowrap\"};const metricSuffixStyle={fontFamily:suffixFont||font,fontSize:suffixSize||fontSize,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});}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};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}});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}=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||!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,metric,numberFormat,isLoading]);const textStyle={fontFamily:font,fontSize:fontSize,fontWeight:fontWeight,color:color,whiteSpace:\"nowrap\"};const metricSuffixStyle={fontFamily:suffixFont||font,fontSize:suffixSize||fontSize,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%\"};// Game not in the fetched data (bad ID, or not returned by API)\nif(!isLoading&&!game){return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\",width:\"100%\",height:\"100%\"},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});}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};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\"],optionTitles:[\"Playing\",\"Visits\",\"Favorites\",\"Max Players\"],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}});const IMAGE_RATIO_CSS={\"16:9\":\"16 / 9\",\"4:3\":\"4 / 3\",\"1:1\":\"1 / 1\"};/* Small stat icons for the overlay card style (Roblox-like) */const PersonIcon=({size=15})=>/*#__PURE__*/_jsxs(\"svg\",{width:size,height:size,viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",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\",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\"})]});/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export function GamesGrid(props){const{gameConfigs=\"{}\",autoThumbnails=true,thumbnailApiUrl=\"https://thumbnails.roproxy.com/v1/games/multiget/thumbnails\",sectionTitle=\"\",sectionNote=\"\",sectionTitleSize=32,cardLayout=\"stacked\",statStyle=\"rows\",cleanText=true,descriptionLines=3,imageRatio=\"16:9\",padding=0,maxWidth=0,gap=30,minCardWidth=260,numberFormat=\"compact\",borderRadius=10,imageHeight=294,showPlaying=true,showVisits=true,showOtherCard=true,otherCardTitle=\"Other Games\",otherCardBackgroundGradient=\"linear-gradient(135deg, #2b332f 0%, #191f1c 100%)\",otherCardBorderColor=\"rgba(253,252,238,0.15)\",otherCardBorderWidth=1,glowColor=\"rgba(230, 55, 58, 0.35)\",glowBlur=14,loadingText=\"Loading games...\",emptyText=\"No games configured\",style}=props;const gameData=useGameData();const configMap=useMemo(()=>{try{const parsed=JSON.parse(gameConfigs);return typeof parsed===\"object\"&&parsed!==null?parsed:{};}catch{return{};}},[gameConfigs]);// Auto-fetch game thumbnails in ONE batched request (config images take priority).\n// Uses configuredIds (known before the stats API responds) so the thumbnail\n// request runs IN PARALLEL with the stats request, not after it.\nconst[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(()=>{/* thumbnails are cosmetic; cards fall back to placeholder */});return()=>{cancelled=true;};},[idsKey,autoThumbnails,thumbnailApiUrl]);// Outer wrapper carries page gutters + the centered content column\nconst wrapperStyle={...style,width:\"100%\",padding:padding>0?`0 ${padding}px`:undefined,boxSizing:\"border-box\",maxWidth:maxWidth>0?`${maxWidth}px`:undefined,marginLeft:maxWidth>0?\"auto\":undefined,marginRight:maxWidth>0?\"auto\":undefined};const gridStyle={display:\"grid\",gridTemplateColumns:`repeat(auto-fill, minmax(${minCardWidth}px, 1fr))`,gap:`${gap}px`,width:\"100%\"};// Optional section header (\"Our Work  *Some games not included\")\nconst sectionHeader=(sectionTitle||sectionNote)&&/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"baseline\",gap:\"10px\",marginBottom:\"28px\",flexWrap:\"wrap\"},children:[sectionTitle&&/*#__PURE__*/_jsx(\"h2\",{style:{fontFamily:\"'Public Sans', sans-serif\",fontWeight:600,fontSize:`${sectionTitleSize}px`,color:\"#FDFCEE\",margin:0},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__*/_jsx(\"div\",{style:{width:\"100%\",padding:\"40px\",textAlign:\"center\",color:\"#FDFCEE\",fontFamily:\"'Public Sans', sans-serif\"},children:loadingText});}if(gameData.totalGames===0){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",padding:\"40px\",textAlign:\"center\",color:\"#FDFCEE\",fontFamily:\"'Public Sans', sans-serif\",opacity:.7},children:emptyText});}const cardStyle={display:\"flex\",flexDirection:\"column\",gap:\"13px\",borderRadius:`${borderRadius}px`,boxShadow:`0 0 ${Math.max(0,glowBlur)}px ${glowColor}`};// Image sizing: responsive aspect-ratio by default, fixed pixel height as fallback\nconst imageBoxStyle={width:\"100%\",borderRadius:`${borderRadius}px`,overflow:\"hidden\",backgroundColor:\"#1d1d1d\",...imageRatio===\"fixed\"?{height:`${imageHeight}px`}:{aspectRatio:IMAGE_RATIO_CSS[imageRatio]??\"16 / 9\"}};const descLineHeight=1.5;const descFontSize=14;// Shared pieces for the \"overlay\" (text-over-image) card style\nconst 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\"};// Optional clamped description inside the overlay (Desc Lines > 0)\nconst 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)=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",alignItems:\"center\",gap:\"10px\"},children:[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=>{const config=configMap[String(game.id)]||{};// Config overrides are used as-is; raw API text gets cleaned up\nconst 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);if(cardLayout===\"overlay\"){return /*#__PURE__*/_jsx(\"a\",{href:gameUrl,target:\"_blank\",rel:\"noopener noreferrer\",style:{textDecoration:\"none\",display:\"block\",borderRadius:`${borderRadius}px`,boxShadow:`0 0 ${Math.max(0,glowBlur)}px ${glowColor}`},children:/*#__PURE__*/_jsxs(\"div\",{style:{...imageBoxStyle,position:\"relative\"},children:[image?/*#__PURE__*/_jsx(motion.img,{src:image,alt:name,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"},loading:\"lazy\",whileHover:{scale:1.05},transition:{duration:.35,ease:\"easeOut\"}}):/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",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)]})]})},`game-${game.id}`);}return /*#__PURE__*/_jsxs(\"div\",{style:cardStyle,children:[/*#__PURE__*/_jsx(\"a\",{href:gameUrl,target:\"_blank\",rel:\"noopener noreferrer\",style:{textDecoration:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{style:imageBoxStyle,children:image?/*#__PURE__*/_jsx(motion.img,{src:image,alt:name,style:{width:\"100%\",height:\"100%\",objectFit:\"cover\",display:\"block\"},loading:\"lazy\",whileHover:{scale:1.05},transition:{duration:.35,ease:\"easeOut\"}}):/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",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\",// Reserve equal space so all cards' stat rows line up\nminHeight:`${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):/*#__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(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}`);});// \"Other\" card mirrors the exact structure of a game card so the grid stays aligned.\nconst otherCardOverlay=showOtherCard&&gameData.belowThresholdCount>0&&cardLayout===\"overlay\"&&/*#__PURE__*/_jsxs(\"div\",{style:{...imageBoxStyle,position:\"relative\",boxShadow:`0 0 ${Math.max(0,glowBlur)}px ${glowColor}`,background:otherCardBackgroundGradient,border:`${Math.max(0,otherCardBorderWidth)}px dashed ${otherCardBorderColor}`,borderRadius:`${borderRadius}px`,overflow:\"hidden\",boxSizing:\"border-box\",backgroundClip:\"padding-box\"},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\");// image-sized area on top (big count), then title + description + divider + stat rows.\nconst otherCard=showOtherCard&&gameData.belowThresholdCount>0&&cardLayout===\"stacked\"&&/*#__PURE__*/_jsxs(\"div\",{style:cardStyle,children:[/*#__PURE__*/_jsxs(\"div\",{style:{...imageBoxStyle,display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",alignItems:\"center\",gap:\"2px\",background:otherCardBackgroundGradient,border:`${Math.max(0,otherCardBorderWidth)}px dashed ${otherCardBorderColor}`,borderRadius:`${borderRadius}px`,overflow:\"hidden\",boxSizing:\"border-box\",backgroundClip:\"padding-box\"},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:[sectionHeader,/*#__PURE__*/_jsxs(\"div\",{style:gridStyle,children:[aboveThresholdCards,otherCard,otherCardOverlay]})]});}GamesGrid.defaultProps={gameConfigs:\"{}\",autoThumbnails:true,thumbnailApiUrl:\"https://thumbnails.roproxy.com/v1/games/multiget/thumbnails\",sectionTitle:\"\",sectionNote:\"\",sectionTitleSize:32,cardLayout:\"stacked\",statStyle:\"rows\",cleanText:true,descriptionLines:3,imageRatio:\"16:9\",padding:0,maxWidth:0,gap:30,minCardWidth:260,numberFormat:\"compact\",borderRadius:10,imageHeight:294,showPlaying:true,showVisits:true,showOtherCard:true,otherCardTitle:\"Other Games\",otherCardBackgroundGradient:\"linear-gradient(135deg, #2b332f 0%, #191f1c 100%)\",otherCardBorderColor:\"rgba(253,252,238,0.15)\",otherCardBorderWidth:1,glowColor:\"rgba(230, 55, 58, 0.35)\",glowBlur:14,loadingText:\"Loading games...\",emptyText:\"No games configured\"};addPropertyControls(GamesGrid,{gameConfigs:{type:ControlType.String,title:\"Configs\",displayTextArea:true,placeholder:'{\"123\": {\"displayName\": \"My Game\", \"image\": \"...\"}}'},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},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:\"Padding\",defaultValue:0,min:0,max:120,description:\"Side gutters inside the grid (0 = control from Framer frame)\"},maxWidth:{type:ControlType.Number,title:\"Max Width\",defaultValue:0,min:0,max:2e3,step:10,description:\"Center content at this width (0 = full width)\"},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:10,min:0,max:50},imageHeight:{type:ControlType.Number,title:\"Img Height\",defaultValue:294,min:100,max:500,hidden:p=>p.imageRatio!==\"fixed\"},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\"},otherCardBackgroundGradient:{type:ControlType.String,title:\"Other BG\",defaultValue:\"linear-gradient(135deg, #2b332f 0%, #191f1c 100%)\"},otherCardBorderColor:{type:ControlType.Color,title:\"Other Border\",defaultValue:\"rgba(253,252,238,0.15)\"},otherCardBorderWidth:{type:ControlType.Number,title:\"Other Bdr W\",defaultValue:1,min:0,max:12,step:1},glowColor:{type:ControlType.Color,title:\"Glow Color\",defaultValue:\"rgba(230, 55, 58, 0.35)\"},glowBlur:{type:ControlType.Number,title:\"Glow Blur\",defaultValue:14,min:0,max:60},loadingText:{type:ControlType.String,title:\"Loading\",defaultValue:\"Loading games...\"},emptyText:{type:ControlType.String,title:\"Empty\",defaultValue:\"No games configured\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"GamesGrid\":{\"type\":\"reactComponent\",\"name\":\"GamesGrid\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"AggregateMetric\":{\"type\":\"reactComponent\",\"name\":\"AggregateMetric\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"GameDataProvider\":{\"type\":\"reactComponent\",\"name\":\"GameDataProvider\",\"slots\":[\"children\"],\"annotations\":{\"framerContractVersion\":\"1\"}},\"useGameData\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"GameMetric\":{\"type\":\"reactComponent\",\"name\":\"GameMetric\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GameDataSystem.map"],"mappings":"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"}