| <script lang="ts"> | |
| import { hello } from "../assets/demo_code"; | |
| let tabs = [ | |
| { | |
| title: "Hello World", | |
| code: hello, | |
| demo: "gradio/hello_world" | |
| }, | |
| { | |
| title: "Airbnb Map", | |
| code: false, | |
| demo: "gradio/map_airbnb" | |
| }, | |
| { | |
| title: "Chatbot Streaming", | |
| code: false, | |
| demo: "gradio/chatinterface_streaming_echo" | |
| }, | |
| { | |
| title: "Diffusion Faces", | |
| code: false, | |
| demo: "gradio/fake_gan" | |
| } | |
| ]; | |
| let current_selection = 0; | |
| </script> | |
| <div class="container mx-auto mb-6 px-4 overflow-hidden"> | |
| <nav | |
| class="flex lg:flex-wrap gap-3 overflow-x-auto py-1 lg:gap-6 whitespace-nowrap text-gray-600 md:text-lg mb-4 md:mb-0 lg:justify-center" | |
| > | |
| {#each tabs as { title }, i} | |
| <div | |
| on:click={() => (current_selection = i)} | |
| class:active-example-tab={current_selection == i} | |
| class="demo-tab hover:text-gray-800 cursor-pointer px-3 py-1" | |
| > | |
| {title} | |
| </div> | |
| {/each} | |
| </nav> | |
| </div> | |
| <div class="container mx-auto mb-6 px-4 grid grid-cols-1"> | |
| {#each tabs as { demo, code }, i (demo)} | |
| <div | |
| class:hidden={i !== current_selection} | |
| class="demo space-y-2 md:col-span-3" | |
| > | |
| <div | |
| class:hidden={!code} | |
| class="codeblock text-sm md:text-base mx-auto max-w-5xl" | |
| > | |
| {@html code} | |
| </div> | |
| <div class="mx-auto max-w-5xl"> | |
| {#key demo} | |
| <gradio-app space={demo} /> | |
| {/key} | |
| </div> | |
| </div> | |
| {/each} | |
| </div> | |