|
<script context="module"> |
|
import { Template, Story } from "@storybook/addon-svelte-csf"; |
|
import StaticImage from "./Index.svelte"; |
|
import { userEvent, within } from "@storybook/test"; |
|
import { allModes } from "../storybook/modes"; |
|
import image_file_100x100 from "../storybook/test_files/image_100x100.webp"; |
|
import image_file_100x1000 from "../storybook/test_files/image_100x100.webp"; |
|
|
|
export const meta = { |
|
title: "Components/Image", |
|
component: StaticImage, |
|
parameters: { |
|
chromatic: { |
|
modes: { |
|
desktop: allModes["desktop"], |
|
mobile: allModes["mobile"] |
|
} |
|
} |
|
} |
|
}; |
|
|
|
let md = `# a heading! /n a new line! `; |
|
</script> |
|
|
|
<Template let:args> |
|
<div |
|
class="image-container" |
|
style="width: 300px; position: relative;border-radius: var(--radius-lg);overflow: hidden;" |
|
> |
|
<StaticImage {...args} /> |
|
</div> |
|
</Template> |
|
|
|
<Story |
|
name="static with label, info and download button" |
|
args={{ |
|
value: { |
|
path: "https://gradio-builds.s3.amazonaws.com/demo-files/ghepardo-primo-piano.jpg", |
|
url: "https://gradio-builds.s3.amazonaws.com/demo-files/ghepardo-primo-piano.jpg", |
|
orig_name: "cheetah.jpg" |
|
}, |
|
show_label: true, |
|
placeholder: "This is a cheetah", |
|
show_download_button: true |
|
}} |
|
play={async ({ canvasElement }) => { |
|
const canvas = within(canvasElement); |
|
|
|
const expand_btn = canvas.getByRole("button", { |
|
name: "View in full screen" |
|
}); |
|
await userEvent.click(expand_btn); |
|
}} |
|
/> |
|
|
|
<Story |
|
name="static with no label or download button" |
|
args={{ |
|
value: { |
|
path: "https://gradio-builds.s3.amazonaws.com/demo-files/ghepardo-primo-piano.jpg", |
|
url: "https://gradio-builds.s3.amazonaws.com/demo-files/ghepardo-primo-piano.jpg", |
|
orig_name: "cheetah.jpg" |
|
}, |
|
show_label: false, |
|
show_download_button: false |
|
}} |
|
/> |
|
|
|
<Story |
|
name="static with a vertically long image" |
|
args={{ |
|
value: { |
|
path: image_file_100x1000, |
|
url: image_file_100x1000, |
|
orig_name: "image.webp" |
|
} |
|
}} |
|
/> |
|
|
|
<Story |
|
name="static with a vertically long image and a fixed height" |
|
args={{ |
|
value: { |
|
path: image_file_100x1000, |
|
url: image_file_100x1000, |
|
orig_name: "image.webp" |
|
}, |
|
height: "500px" |
|
}} |
|
/> |
|
|
|
<Story |
|
name="static with a small image and a fixed height" |
|
args={{ |
|
value: { |
|
path: image_file_100x100, |
|
url: image_file_100x100, |
|
orig_name: "image.webp" |
|
}, |
|
height: "500px" |
|
}} |
|
/> |
|
|
|
<Story |
|
name="interactive with upload, clipboard, and webcam" |
|
args={{ |
|
sources: ["upload", "clipboard", "webcam"], |
|
value: { |
|
path: "https://gradio-builds.s3.amazonaws.com/demo-files/ghepardo-primo-piano.jpg", |
|
url: "https://gradio-builds.s3.amazonaws.com/demo-files/ghepardo-primo-piano.jpg", |
|
orig_name: "cheetah.jpg" |
|
}, |
|
show_label: false, |
|
show_download_button: false, |
|
interactive: true, |
|
placeholder: md |
|
}} |
|
play={async ({ canvasElement }) => { |
|
const canvas = within(canvasElement); |
|
|
|
const webcamButton = await canvas.findByLabelText("Capture from camera"); |
|
userEvent.click(webcamButton); |
|
|
|
userEvent.click(await canvas.findByTitle("grant webcam access")); |
|
userEvent.click(await canvas.findByLabelText("Upload file")); |
|
userEvent.click(await canvas.findByLabelText("Paste from clipboard")); |
|
}} |
|
/> |
|
|
|
<Story |
|
name="interactive with webcam" |
|
args={{ |
|
sources: ["webcam"], |
|
show_download_button: true, |
|
interactive: true |
|
}} |
|
/> |
|
|
|
<Story |
|
name="interactive with clipboard" |
|
args={{ |
|
sources: ["clipboard"], |
|
show_download_button: true, |
|
interactive: true |
|
}} |
|
/> |
|
|
|
<Story |
|
name="interactive webcam with streaming" |
|
args={{ |
|
sources: ["webcam"], |
|
show_download_button: true, |
|
interactive: true, |
|
value: { |
|
path: "https://gradio-builds.s3.amazonaws.com/demo-files/ghepardo-primo-piano.jpg", |
|
url: "https://gradio-builds.s3.amazonaws.com/demo-files/ghepardo-primo-piano.jpg", |
|
orig_name: "cheetah.jpg" |
|
}, |
|
streaming: true |
|
}} |
|
/> |
|
|