{#if menuMode === 1}
{ if ($settingsOpen) { reseter(); settingsOpen.set(false); } else { reseter(); settingsOpen.set(true); } }}>
{ reseter(); selectedCharID.set(-1) PlaygroundStore.set(0) OpenRealmStore.set(false) }}>
{ reseter() if($selectedCharID === -1 && $PlaygroundStore !== 0){ PlaygroundStore.set(0) return } selectedCharID.set(-1) PlaygroundStore.set(1) }} >
{ reseter(); openGrid(); }}>
{/if}
{ e.preventDefault() e.dataTransfer.dropEffect = 'move' e.currentTarget.classList.add('bg-green-500') }} on:dragleave={(e) => { e.currentTarget.classList.remove('bg-green-500') }} on:drop={(e) => { e.preventDefault() e.currentTarget.classList.remove('bg-green-500') const da = currentDrag if(da){ inserter(da,{index:0}) } }} on:dragenter={preventAll} /> {#each charImages as char, ind}
{avatarDragStart({index:ind}, e)}} on:dragover={avatarDragOver} on:drop={(e) => {avatarDrop({index:ind}, e)}} on:dragenter={preventAll} >
{ if(char.type === "normal"){ changeChar(char.index, {reseter}); } }} on:keydown={(e) => { if (e.key === "Enter") { if(char.type === "normal"){ changeChar(char.index, {reseter}); } } }} tabindex="0" > {#if char.type === 'normal'} {:else if char.type === "folder"} {#key char.color} {#key char.name} { e.preventDefault() const sel = parseInt(await alertSelect([language.renameFolder,language.changeFolderColor,language.cancel])) if(sel === 0){ const v = await alertInput(language.changeFolderName) const db = get(DataBase) if(v){ const oder = db.characterOrder[ind] if(typeof(oder) === 'string'){ return } oder.name = v db.characterOrder[ind] = oder setDatabase(db) } } else if(sel === 1){ const colors = ["red","green","blue","yellow","indigo","purple","pink","default"] const sel = parseInt(await alertSelect(colors)) const db = get(DataBase) const oder = db.characterOrder[ind] if(typeof(oder) === 'string'){ return } oder.color = colors[sel].toLocaleLowerCase() db.characterOrder[ind] = oder setDatabase(db) } }} onClick={() => { if(char.type !== 'folder'){ return } if(openFolders.includes(char.id)){ openFolders.splice(openFolders.indexOf(char.id), 1) } else{ openFolders.push(char.id) } openFolders = openFolders }}> {#if openFolders.includes(char.id)} {:else} {/if} {/key} {/key} {/if}
{#if char.type === 'folder' && openFolders.includes(char.id)} {#key char.color}
{ e.preventDefault() e.dataTransfer.dropEffect = 'move' e.currentTarget.classList.add('bg-green-500') }} on:dragleave={(e) => { e.currentTarget.classList.remove('bg-green-500') }} on:drop={(e) => { e.preventDefault() e.currentTarget.classList.remove('bg-green-500') const da = currentDrag if(da && char.type === 'folder'){ inserter(da,{index:0,folder:char.id}) } }} on:dragenter={preventAll}/> {#each char.folder as char2, ind}
{if(char.type === 'folder'){avatarDragStart({index: ind, folder:char.id}, e)}}} on:dragover={avatarDragOver} on:drop={(e) => {if(char.type === 'folder'){avatarDrop({index: ind, folder:char.id}, e)}}} on:dragenter={preventAll} >
{ if(char2.type === "normal"){ changeChar(char2.index, {reseter}); } }} on:keydown={(e) => { if (e.key === "Enter") { if(char2.type === "normal"){ changeChar(char2.index, {reseter}); } } }} tabindex="0" >
{ e.preventDefault() e.dataTransfer.dropEffect = 'move' e.currentTarget.classList.add('bg-green-500') }} on:dragleave={(e) => { e.currentTarget.classList.remove('bg-green-500') }} on:drop={(e) => { e.preventDefault() e.currentTarget.classList.remove('bg-green-500') const da = currentDrag if(da && char.type === 'folder'){ inserter(da,{index:ind+1,folder:char.id}) } }} on:dragenter={preventAll}/> {/each}
{/key} {/if}
{ e.dataTransfer.dropEffect = 'move' e.currentTarget.classList.add('bg-green-500') }} on:dragleave={(e) => { e.currentTarget.classList.remove('bg-green-500') }} on:drop={(e) => { e.preventDefault() e.currentTarget.classList.remove('bg-green-500') const da = currentDrag if(da){ inserter(da,{index:ind+1}) } }} on:dragenter={preventAll} /> {/each}
{ addCharacter({reseter}) }} >
{ if($sideBarClosing){ $sideBarClosing = false sideBarStore.set(false) } }} > {#if sideBarMode === 0} {#if $selectedCharID < 0 || $settingsOpen}

Welcome to RisuAI!

Select a bot to start chating
{:else if $CurrentCharacter?.chaId === '§playground'} {:else if $ConnectionOpenStore}

{language.connectionOpen}

{language.connectionOpenInfo}
ID: {$RoomIdStore}
{#if $ConnectionIsHost} {language.connectionHost} {:else} {language.connectionGuest} {/if}
{:else}
{#if $DataBase.enableDevTools} {/if}
{#if devTool} {:else if $botMakerMode} {:else} {/if} {/if} {/if}
{#if $DynamicGUI}
{ if($sideBarClosing){ return } $sideBarClosing = true; }} class:sidebar-dark-animation={!$sideBarClosing} class:sidebar-dark-close-animation={$sideBarClosing}>
{/if}