<script lang="ts"> | |
import "../../theme.css"; | |
import { setupi18n } from "../../../../core/src/i18n"; | |
import { Gradio, formatter } from "../../../../core/src/gradio_helper"; | |
import "../../../../theme/src/reset.css"; | |
import "../../../../theme/src/global.css"; | |
import "../../../../theme/src/pollen.css"; | |
// import "../theme/src/tokens.css"; | |
import "../../../../theme/src/typography.css"; | |
import type { PageData } from "./$types"; | |
import { onMount } from "svelte"; | |
import { page } from "$app/stores"; | |
export let data: PageData; | |
$: ({ component, interactive_component, non_interactive_component, name } = | |
data); | |
function identity<T>(x: T): T { | |
return x; | |
} | |
function noop(): void {} | |
const client = { | |
upload: noop, | |
fetch: noop | |
}; | |
let target: HTMLElement | null = null; | |
onMount(() => { | |
target = document.body; | |
}); | |
</script> | |
<svelte:head> | |
<title>About</title> | |
<meta name="description" content="About this app" /> | |
</svelte:head> | |
<div> | |
{#if interactive_component} | |
<svelte:component | |
this={component.default} | |
{...interactive_component.props} | |
gradio={{ | |
dispatch: console.warn, | |
i18n: identity, | |
client, | |
root: $page.url.origin | |
}} | |
{target} | |
/> | |
{/if} | |
{#if non_interactive_component} | |
<svelte:component | |
this={component.default} | |
{...non_interactive_component.props} | |
gradio={{ | |
dispatch: console.warn, | |
i18n: identity, | |
client, | |
root: $page.url.origin | |
}} | |
{target} | |
/> | |
{/if} | |
</div> | |
<style> | |
div { | |
display: flex; | |
justify-content: center; | |
align-items: center; | |
gap: 2rem; | |
padding: 2rem; | |
flex-direction: column; | |
} | |
</style> | |