| <script lang="ts"> |
| import type { FileData } from "@gradio/client"; |
|
|
| export let value: null | FileData; |
| export let type: "gallery" | "table"; |
| export let selected = false; |
| </script> |
|
|
| <div |
| class="container" |
| class:table={type === "table"} |
| class:gallery={type === "gallery"} |
| class:selected |
| class:border={value} |
| > |
| {#if value} |
| <img src={value.url} alt="" /> |
| {/if} |
| </div> |
|
|
| <style> |
| .container :global(img) { |
| width: 100%; |
| height: 100%; |
| } |
|
|
| .container.selected { |
| border-color: var(--border-color-accent); |
| } |
| .border.table { |
| border: 2px solid var(--border-color-primary); |
| } |
|
|
| .container.table { |
| margin: 0 auto; |
| border-radius: var(--radius-lg); |
| overflow: hidden; |
| width: var(--size-20); |
| height: var(--size-20); |
| object-fit: cover; |
| } |
|
|
| .container.gallery { |
| width: var(--size-20); |
| max-width: var(--size-20); |
| object-fit: cover; |
| } |
| </style> |
|
|