mirror of
https://github.com/gradio-app/gradio.git
synced 2024-12-27 02:30:17 +08:00
5d51fbce78
* fix * add changeset * tests * Update package.json * Hotfix: version on changelog (#6559) * clog version * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix version in other changelog (#6561) * Fix version in other changelog why do we have 2? * remove changeset * Ensure Chatbot messages are properly aligned when `rtl` is true (#6574) * fix text alignment when rtl is true * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Improve like/dislike functionality (#6572) * amend like/dislike logic * add like/dislike to chatbot demo and add e2e test * add changeset * e2e test changes * revert chatbot_component changes * tweak * generate notebooks * tweak --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix typo envrion -> environ (#6585) * Feat: make UploadButton accept icon (#6584) * feat: make UploadButton accept icon * add changeset * add proxy url prop * add stories --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Make FileExplorer work on python 3.8 and 3.9. Also make it update on changes to root, glob, or glob_dir (#6550) * Add code * add changeset * add changeset * Add test * fix --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix uploaded file wasn't moved to custom temp dir at different disks (#6565) * Fix uploaded file wasn't moved to custom temp dir at different disks * add changeset * Update routes.py --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Freddy Boulton <alfonsoboulton@gmail.com> * Fix the docstring decoration (#5885) * Fix the docstring of the `Slider` class * add changeset * Update the JSON file generator to output a new field .styled_description to render the inline code syntax in the description field * add changeset * Update style_types() to deal with backticks and single asterisks * Update the inline style converter to use regex for the curly bracket syntax as well * Revert `style_types()` not to touch the `description` field and update the frontend code to apply styling to such formatted texts on Svelte's side * Apply the inline styler to other `.description` field appearances * Apply the inline styler to `.preprocessing`, `.postprocessing`, `.examples-format`, `.events`, and `*.parameters.doc` * Stop applying HTML styles to the JSON data, instaed apply HTML escaping * Escape HTML tokens in .parameters[]["doc"] too * fixes --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com> * chore(deps): update all non-major dependencies (#6593) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update dependency jsdom to v23 (#6582) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Update zh-CN.json (#6512) * Update zh-CN.json * add changeset * format --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Fix: Gradio Client work with private Spaces (#6602) * client with private space * add changeset * lint * add test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Update file_explorer.py - Fixing error if nothing selected in file_count=single mode (return None rather) (#6607) * Update file_explorer.py Fixing error if nothing selected in file_count=single mode (return None rather) * add changeset * added unit tests --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Remove 2 slider demos from docs (#6624) * remove 2 slider demos * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix encoding issue #6364 of reload mode (#6622) * fix: configure default encoding as utf-8 * apply doc change for the fix * apply cn doc change for the fix * add changeset * Lint --------- Co-authored-by: Freddy Boulton <alfonsoboulton@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Quick Image + Text Component Fixes (#6635) * fixes * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Improve video trimming and error handling (#6566) * amend trimming logic and return original file when error occurs * add interactive story test * add changeset * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Add `show_recording_waveform` to Audio (#6551) * add show_recording_waveform * add changeset * add animation * Refactor audio component and waveform options * formatting * add margin before audio controls * amend default values * expose gr.WaveformOptions * Tweak waveform options types and handle none * add waveform_options to reverse_audio * tweak bool typing * notebook --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * chore(deps): update dependency chromatic to v10 (#6619) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * chore(deps): update chromaui/action action to v10 (#6618) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> * Add concurrency_limit to ChatInterface, add IDE support for concurrency_limit (#6653) * concurrency limit chat interface * add changeset * Update gradio/chat_interface.py Co-authored-by: Abubakar Abid <abubakar@huggingface.co> --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * format (#6658) * Removes smooth scrolling from website (#6650) * smooth scrolling with css * add changeset * formatting * remove smooth scrolling * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chore: update versions (#6575) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Fix reload mode warning about not being able to find the app (#6660) * Fix warning * add changeset * Use * --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Update HF token used in CI tests (#6671) * fix tests * format * fixes * add changeset * fixes * fix * fix * update * update * test client * format * hf token 2 * add changeset * add env * add envs * tests * env * fixes * test external * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * use gr.Error for audio length errors (#6672) * use gr.Error for audio length errors * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Issue 5245: consolidate usage of requests and httpx (#6598) * issue 5245 commit 1 * formatted * add changeset * fixes * fixes * make changes in client too * remove requests from client * add changeset * add changeset * Fixes to test_utils.py in client * fixes in client utils.py and test_utils.py --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Remove Discourse Forum Link from Website (#6679) * remove forum link * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Tweak to our bug issue template (#6677) * template * add timeouts * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Set gradio api server from env (#6666) * Use GRADIO_API_SERVER env * Format the code * add changeset * Use env GRADIO_SHARE_SERVER_ADDRESS as default share_server_address --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Render each app in the PR's spaces preview in a separate page (#6657) * Use template response * minor fix * Return type hint * add changeset * Remove return types * response_class=None * Use relative path * SPA * remove pydantic pin * Revert * delete changeset * Overflow hidden on body * text gray * Collapsible sidebar * max-height * Use search params * document.location.search --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * perf guide (#6673) * switch from black to ruff formatter (#6543) * migrate from black to ruff * fix script and dependencies * applying ruff * add changeset * add changeset * address ruff feedback * replace linter * fixed typing * fix typing --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Cause `gr.ClearButton` to reset the value of `gr.State` (#6680) * state * note * add changeset * buttons * clear button * lint * if * clear' * reset state * fix test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix dropdown blur bug when values are provided as tuples (#6694) * fix dropdown blur bug * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * type fix * test * Remove the styles from the Image/Video primitive components and Fix the container styles (#6726) * Remove the styles from the Image/Video primitive components and Fix the container styles * add changeset * Fix image example size styles * Remove border from image/Example with type=gallery --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * test fix * add changeset * test fix * add changeset * test * test fix * test fix audio video * format * fix obj file issue --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: Hannah <hannahblair@users.noreply.github.com> Co-authored-by: Simon Duerr <dev@simonduerr.eu> Co-authored-by: Xiang Liao <liao1120x@gmail.com> Co-authored-by: Freddy Boulton <alfonsoboulton@gmail.com> Co-authored-by: Dody Suria Wijaya <dody@cryptolab.net> Co-authored-by: Yuichiro Tachibana (Tsuchiya) <t.yic.yt@gmail.com> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: yanlin <59528590+cibimo@users.noreply.github.com> Co-authored-by: v-chabaux <149407738+v-chabaux@users.noreply.github.com> Co-authored-by: Lihao Lei <leilei199708@gmail.com> Co-authored-by: pngwn <hello@pngwn.io> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: cswamy <101974014+cswamy@users.noreply.github.com> Co-authored-by: aisensiy <aisensiy@163.com> Co-authored-by: D V <77478658+DarhkVoyd@users.noreply.github.com>
147 lines
2.9 KiB
Svelte
147 lines
2.9 KiB
Svelte
<script lang="ts">
|
|
import { createEventDispatcher, tick, onMount } from "svelte";
|
|
import { Upload, ModifyUpload } from "@gradio/upload";
|
|
import type { FileData } from "@gradio/client";
|
|
import { BlockLabel } from "@gradio/atoms";
|
|
import { File } from "@gradio/icons";
|
|
import { add_new_model, reset_camera_position } from "./utils";
|
|
|
|
export let value: null | FileData;
|
|
export let clear_color: [number, number, number, number] = [0, 0, 0, 0];
|
|
export let label = "";
|
|
export let show_label: boolean;
|
|
export let root: string;
|
|
export let i18n: I18nFormatter;
|
|
export let zoom_speed = 1;
|
|
export let pan_speed = 1;
|
|
|
|
// alpha, beta, radius
|
|
export let camera_position: [number | null, number | null, number | null] = [
|
|
null,
|
|
null,
|
|
null
|
|
];
|
|
|
|
let mounted = false;
|
|
let canvas: HTMLCanvasElement;
|
|
let scene: BABYLON.Scene;
|
|
let engine: BABYLON.Engine;
|
|
|
|
function reset_scene(): void {
|
|
scene = add_new_model(
|
|
canvas,
|
|
scene,
|
|
engine,
|
|
value,
|
|
clear_color,
|
|
camera_position,
|
|
zoom_speed,
|
|
pan_speed
|
|
);
|
|
}
|
|
|
|
onMount(() => {
|
|
if (value != null) {
|
|
reset_scene();
|
|
}
|
|
mounted = true;
|
|
});
|
|
|
|
$: ({ path } = value || {
|
|
path: undefined
|
|
});
|
|
|
|
$: canvas && mounted && path != null && reset_scene();
|
|
|
|
async function handle_upload({
|
|
detail
|
|
}: CustomEvent<FileData>): Promise<void> {
|
|
value = detail;
|
|
await tick();
|
|
reset_scene();
|
|
dispatch("change", value);
|
|
dispatch("load", value);
|
|
}
|
|
|
|
async function handle_clear(): Promise<void> {
|
|
if (scene && engine) {
|
|
scene.dispose();
|
|
engine.dispose();
|
|
}
|
|
value = null;
|
|
await tick();
|
|
dispatch("clear");
|
|
dispatch("change");
|
|
}
|
|
|
|
async function handle_undo(): Promise<void> {
|
|
reset_camera_position(scene, camera_position, zoom_speed, pan_speed);
|
|
}
|
|
|
|
const dispatch = createEventDispatcher<{
|
|
change: FileData | null;
|
|
clear: undefined;
|
|
drag: boolean;
|
|
load: FileData;
|
|
}>();
|
|
|
|
let dragging = false;
|
|
|
|
import * as BABYLON from "babylonjs";
|
|
import * as BABYLON_LOADERS from "babylonjs-loaders";
|
|
import type { I18nFormatter } from "@gradio/utils";
|
|
|
|
$: {
|
|
if (
|
|
BABYLON_LOADERS.OBJFileLoader != undefined &&
|
|
!BABYLON_LOADERS.OBJFileLoader.IMPORT_VERTEX_COLORS
|
|
) {
|
|
BABYLON_LOADERS.OBJFileLoader.IMPORT_VERTEX_COLORS = true;
|
|
}
|
|
}
|
|
|
|
$: dispatch("drag", dragging);
|
|
</script>
|
|
|
|
<BlockLabel {show_label} Icon={File} label={label || "3D Model"} />
|
|
|
|
{#if value === null}
|
|
<Upload
|
|
on:load={handle_upload}
|
|
{root}
|
|
filetype={[".obj", ".gltf", ".glb", "model/obj"]}
|
|
bind:dragging
|
|
>
|
|
<slot />
|
|
</Upload>
|
|
{:else}
|
|
<div class="input-model">
|
|
<ModifyUpload
|
|
undoable
|
|
on:clear={handle_clear}
|
|
{i18n}
|
|
on:undo={handle_undo}
|
|
absolute
|
|
/>
|
|
<canvas bind:this={canvas} />
|
|
</div>
|
|
{/if}
|
|
|
|
<style>
|
|
.input-model {
|
|
display: flex;
|
|
position: relative;
|
|
justify-content: center;
|
|
align-items: center;
|
|
width: var(--size-full);
|
|
height: var(--size-full);
|
|
}
|
|
|
|
canvas {
|
|
width: var(--size-full);
|
|
height: var(--size-full);
|
|
object-fit: contain;
|
|
overflow: hidden;
|
|
}
|
|
</style>
|