PageSourceSearch

https://tesana.com/assets/ExplorePage-DeSie4cE.js

js tesana.com collected 2026-10-09 22:39:54 UTC 7,154 bytes, 2 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-BxtVm1Yj.js","assets/vendor-motion-hRg_q8lq.js","assets/vendor-react-E98sgxjj.js","assets/useLocaleNavigate-BNriJdRU.js","assets/index-BKzE8EQ8.js","assets/vendor-fa-Bn2dnpnC.js","assets/vendor-query-bOUN_gKe.js","assets/index-36zER57x.css","assets/exploreHandoff-RQymaHkp.js","assets/AuthShell-DPeun0C_.js","assets/AuthPanel-B4zt6SJ5.js","assets/pendingReferral-B4JPXhl_.js","assets/LaunchPromoClips-eRoWsyBt.js","assets/index-i1nPji9k.js","assets/paywall-CG7xVZtx.js","assets/plans-CbMJY2XS.js","assets/pricingExperiments-zMZby8z7.js","assets/organization-BuGhuc22.js"])))=>i.map(i=>d[i]);
2import{d as S,ao as Z,u as ee,b as te,l as P,v as I,H as oe,_ as T}from"./index-BKzE8EQ8.js";import{j as t,u as ne}from"./vendor-motion-hRg_q8lq.js";import{r as o}from"./vendor-react-E98sgxjj.js";import{u as re}from"./vendor-query-bOUN_gKe.js";import"./vendor-fa-Bn2dnpnC.js";import{E as se,a as ie,b as le}from"./ExploreConceptView-vqE-9DmN.js";import"./GameFrame-COJWxWBt.js";import{u as ae}from"./useLocaleNavigate-BNriJdRU.js";import{b as ce,u as de,c as R,d as ue}from"./exploreHandoff-RQymaHkp.js";import"./useHasCredits-D0Kot1Ju.js";import"./MediaImage-DKgx-nW4.js";import"./index-BxtVm1Yj.js";import"./AuthShell-DPeun0C_.js";import"./AuthPanel-B4zt6SJ5.js";import"./pendingReferral-B4JPXhl_.js";import"./LaunchPromoClips-eRoWsyBt.js";import"./CoinTopUpModal-CAwRJTIr.js";const L=[{minWidth:1728,columns:5},{minWidth:1440,columns:4},{minWidth:1024,columns:3}],U=2,pe="grid-cols-2 min-[1024px]:grid-cols-3 min-[1440px]:grid-cols-4 min-[1728px]:grid-cols-5";function F(r){for(const s of L)if(r>=s.minWidth)return s.columns;return U}function me(r,s,l){if(s<1||l<1)return"rounded-xs";const a=s*Math.floor((l-1)/s),i={tl:r===0,tr:r===Math.min(s,l)-1,bl:r===a,br:r===l-1};return[i.tl?"rounded-tl-md":"rounded-tl-xs",i.tr?"rounded-tr-md":"rounded-tr-xs",i.br?"rounded-br-md":"rounded-br-xs",i.bl?"rounded-bl-md":"rounded-bl-xs"].join(" ")}function he(){const[r,s]=o.useState(()=>typeof window>"u"?U:F(window.innerWidth));return o.useEffect(()=>{if(typeof window>"u"||typeof window.matchMedia!="function")return;const l=L.map(i=>window.matchMedia(`(min-width: ${i.minWidth}px)`)),a=()=>s(F(window.innerWidth));return a(),l.forEach(i=>i.addEventListener("change",a)),()=>l.forEach(i=>i.removeEventListener("change",a))},[]),r}const fe=8;function xe({concepts:r,onSelect:s,activeId:l=null}){const a=he(),i=r.length;return t.jsx("div",{className:S("grid gap-0.5",pe),children:r.map((h,f)=>t.jsx(se,{concept:h,cornerClass:me(f,a,i),active:l===h.id,eager:f<fe,onSelect:s},h.id))})}const ge=o.lazy(()=>T(()=>import("./index-BxtVm1Yj.js").then(r=>r.i),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]))),we=o.lazy(()=>T(()=>import("./index-i1nPji9k.js").then(r=>r.i),__vite__mapDeps([13,1,2,6,5,4,7,14,15,16,3,17]))),Se=380;function Ne(){const r=Z(),{t:s}=ee("explore"),{isAuthenticated:l}=te(),a=ae(),[i,h]=o.useState("signup"),[f,y]=o.useState(!1),[k,A]=o.useState(""),[N,B]=o.useState(),{data:O,isFetching:W,isError:v}=re({queryKey:["explore-concepts"],retry:!1,queryFn:async()=>(await P.exploreConcepts()).filter(e=>e.src)}),x=W?null:v?[]:O??null,[d,g]=o.useState(null),[V,D]=o.useState(null),[q,H]=o.useState(null),[G,X]=o.useState(!1),[z,E]=o.useState(!1),[b,_]=o.useState(!1),[$,K]=o.useState("loop-locked"),j=ne(),c=o.useRef(null),w=o.useCallback(()=>{h("signup"),y(!0)},[]);o.useEffect(()=>()=>{c.current&&window.clearTimeout(c.current)},[]),o.useEffect(()=>{if(!d)return;const n=document.documentElement,e=document.body,u=n.style.overflow,p=e.style.overflow;return n.style.overflow="hidden",e.style.overflow="hidden",()=>{n.style.overflow=u,e.style.overflow=p}},[d]);const Q=o.useCallback(n=>{g(n),X(!0),window.scrollTo({top:0,behavior:"smooth"})},[]),J=o.useCallback(n=>{H(n.id),D({text:n.prompt,imageSrc:n.still_url||n.src,key:Date.now(),conceptId:n.id}),window.scrollTo({top:0,behavior:"smooth"}),I("explore_prompt_reused",{length:n.prompt.length}),c.current&&window.clearTimeout(c.current);const e=j?0:Se;c.current=window.setTimeout(()=>{g(null),c.current=null},e)},[j]),Y=o.useCallback(async(n,e)=>{if(!l){ce(n,e.publicStyleSrcs[0],{runMode:e.runMode,loopBudgetCredits:e.loopBudgetCredits}),A(n),B(e.publicStyleSrcs[0]),w();return}E(!0);try{if(e.conceptId&&e.promptUnchanged){const m=await P.exploreStart(e.conceptId,n);if(m.route==="clone"){I("explore_template_cloned",{concept_id:e.conceptId}),a(`/studio/${m.game.id}`,{state:{templateActivityLog:m.game.template_activity_log}});return}}const u=[...e.styleRefs];for(const m of e.publicStyleSrcs)u.push(await de(m));for(const m of e.pendingStyleFiles)u.push(await R(m,"style"));let p=e.omniRef;!p&&e.omniFile&&(p=await R(e.omniFile,"omni")),!p&&e.omniPublicSrc&&(p=await ue(e.omniPublicSrc,"omni")),a("/studio",{state:{prompt:n,styleReferenceUrls:u.length>0?u:void 0,omniReferenceUrl:p,planFirst:e.planFirst,runMode:e.runMode,loopBudgetCredits:e.loopBudgetCredits,runSource:"explore",conceptId:e.conceptId}})}catch(u){console.error("Failed to start from explore composer",u),a("/studio",{state:{prompt:n,planFirst:e.planFirst,runMode:e.runMode,loopBudgetCredits:e.loopBudgetCredits,runSource:"explore",conceptId:e.conceptId}})}finally{E(!1)}},[l,a,w]),M=s("discover.metaTitle",{defaultValue:"Explore game ideas | Tesana"}),C=s("discover.metaDescription",{defaultValue:"Browse game concepts, explore different looks, and use a prompt to start creating a game with Tesana."});return t.jsxs(t.Fragment,{children:[t.jsxs(oe,{children:[t.jsx("title",{children:M}),t.jsx("meta",{name:"description",content:C}),t.jsx("link",{rel:"canonical",href:r}),!1,t.jsx("meta",{property:"og:title",content:M}),t.jsx("meta",{property:"og:description",content:C}),t.jsx("meta",{property:"og:type",content:"website"}),t.jsx("meta",{name:"twitter:card",content:"summary_large_image"})]}),t.jsxs("div",{className:S("flex flex-col gap-6 px-4 md:px-8",d?"h-[calc(100dvh-var(--site-banner-height,0px))] min-h-0 min-w-0 overflow-hidden overscroll-none pt-22 pb-8 md:h-[calc(100dvh-24px-var(--site-banner-height,0px))] md:pt-8 md:pb-8":"pb-12 pt-22 md:pt-8"),children:[t.jsx("div",{className:"shrink-0",children:t.jsx(ie,{onSubmit:Y,seed:V,submitting:z,autoLoop:!0,onAuthRequired:w,onLoopBlocked:()=>{K("loop-locked"),_(!0)}})}),d&&t.jsx("div",{className:"flex min-h-0 min-w-0 flex-1 flex-col",children:t.jsx(le,{concepts:x??[],initialId:d.id,onClose:()=>{c.current&&(window.clearTimeout(c.current),c.current=null),g(null)},onInspire:J})}),t.jsx("div",{"data-prerender-error":v?"1":void 0,hidden:!!d,className:S(d&&"hidden",!d&&G&&"animate-in fade-in duration-300"),children:x===null?null:x.length===0?t.jsx("p",{className:"py-24 text-center text-base text-muted-foreground",children:s("discover.feedEmpty",{defaultValue:"No games match this window yet."})}):t.jsx(xe,{concepts:x,onSelect:Q,activeId:q})})]}),f&&t.jsx(o.Suspense,{fallback:null,children:t.jsx(ge,{isOpen:f,onClose:()=>y(!1),pendingPrompt:k,pendingImageSrc:N,initialMode:i})}),b&&t.jsx(o.Suspense,{fallback:null,children:t.jsx(we,{isOpen:b,onClose:()=>_(!1),context:$})})]})}export{Ne as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.