mirror of
https://github.com/gradio-app/gradio.git
synced 2024-11-27 01:40:20 +08:00
6f95286337
* enter pre-release mode * Remove deprecated parameters and classes for the 5.0 release (#8797) * 5.0 * add changeset * deprecate more * add changeset * lint * Update rotten-bears-bathe.md * Update icy-clocks-juggle.md * changes * Delete .changeset/icy-clocks-juggle.md * every * more deprecation * deprecate inits * fix * fix func * fix some tests * format * fix more tests * fixes --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * fix (#8830) * fix * Prevent invalid values from being submitted to dropdown, etc. (#8810) * prevent invalid values * error * add changeset * component * add tests * fix tests * spec ts * format --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * fixes * Remove manual ip address check and launch counter (#8884) * changes * add changeset * hash * changes * remove * changes * rename * internal * changes * remove json path * merge * fix tests --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Remove deprecated documentation (#8940) * remove logoutbutton page * remove huggingfacedatasetsaver * Use HTTP Livestreaming for audio/video streaming out (#8906) * HTTP live streaming * type check * fix code * Fix code * add code * Video demo * Fix tests * Update notebook * Add guide * Fix demo * Allow downloading * revert * Fix download filename * lint * notebooks * fix video demo * Fix config * Fix audio repeated play bug * Improve guide * fix audio? * Use cantina * Code * type check * add code * Use runtimeerror * Add code * Adds `strict_cors` parameter to `launch()` (#8959) * prevent null origin requests by default * changes * add changeset * format --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fi * Streaming out tweaks (#8976) * Tweaks * Better * typo * lint * Improve url downloads for file objects (#8978) * changes * changes * add changeset * add changeset * Ci security tweaks (#9010) * asd * asd * asd * asd * asd * asd * asd * asd * asd * asd * asd * asd * asd * asd * change * changes * changes * changes * changes * changes * changes --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: pngwn <hello@pngwn.io> * merge main (#9050) * lint * Have gr.on set value at start as well (#9065) * changes * changes * changes --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> * No token passed by default in `gr.load()` (#9069) * changes * add changeset * docstring * change * client changess --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * changes * Set default `format` in `gr.Audio` to be `None` to avoid unnecessary preprocessing (#9073) * audio format * add changeset * lint * docstring * format * fix tests * tweaks * refactor * fix --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Streaming inputs for 5.0 (#8941) * Fix code * Add code * Add code * working demo * hacky video * Add code for video * Fixing some code * clean queieing * low streaming mode audio * reworking * remove console * Pretty good spot * Delete unused * consolidate * Add progress bar * Set time limit null * delete * Fix then issue * merge out * Add code * clean up * Remove base64 * Add code * minor bugs * End stream * Fix rerender * remove unwanted * Address streaming comments * Commit file lol * ;int * lint backend * lint * Fix queue status. Stream_every defined in event * Fix types * Add code * Add code * Add code * queue time * docstring wording * Fix typo * add changeset --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * 3.10 (#9133) * Deprecate passing a tuple for gr.Code value (#9132) * Add code * add changeset * lint * type check --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Postprocess hardening (#9122) * hardenning * Fix code * add changeset * Fix tests * add test fuzzer * Clean up * revert * Fix * Add code --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Drop python 3.8 and 3.9 (#9140) * drop support for python 3.8 and 3.9 * add changeset * format * changes * add changeset * changes * add changeset * changes * 3.10 * string * tweak * tweak * changes * changes * format * more tweaks * update actions * website docs build * fix func tests * rev req * test fix * remove ruff rule for zip strict --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Raise WasmUnsupportedError for ffmpeg usage on Lite (#9130) * Raise WasmUnsupportedError for ffmpeg usage on Lite * add changeset * add changeset * Add WasmUnsupportedError in Audio._convert_to_adts * Add WasmUnsupportedError in processing_utils.audio_to_file * Fix * Raise WasmUnsupportedError from processing_utils.audio_from_file * empty commit --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Video gallery (#9052) * video support * tests and backend changes * undo main merge * upload fix * Revert "undo main merge" This reverts commite2a26e6d28
. * type fixes * format * pr fixes * Update gradio/components/gallery.py Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Update gradio/components/gallery.py Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * type fix * thumbnails * thumbnail type * remove thumbnail generation * add changeset * test fixes * test fixes * python test fix * python test fixc * fix * fix * story fix --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Open audio/image input stream only when queue is ready (#9149) * fix * submit logic happens in Blocks * add changeset * trigger ci * trigger ci * Add code * Add code * Fix retrigger refactor * Add code --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * trigger ci * update (#9176) * File access security guide (#9156) * first draft Add code Add code Add code emphasis * suggestions * redirects * add changeset * trigger ci * typos --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * fix guide * Fix notebook (#9181) * DNS resolver on ip check (#9150) * changes * changes * add changeset * chaanges * changes * changes * changes * changes * add caching and whitelist * remove hf.space --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Change dark mode color theme from `gray` to `zinc` (#9175) * use zinc as neutral colour * add changeset * fix test * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Streaming Guides (#9173) * Fix unified case * commit * Add code * add changeset * notebook * Lint * delete * Fix code * fix tests * File access security guide (#9156) * first draft Add code Add code Add code emphasis * suggestions * redirects * add changeset * trigger ci * typos --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * redirect * typos * link * fix * See what the problem is * less time * fix * try again with busted cache * try again * Code * Demo and code --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: pngwn <hello@pngwn.io> * Fix (#9215) * Deprecate type='tuples for chatbot and focus chatbot docs on 'messages' type (#9194) * Remove grey background behind all components (#9213) * remove panel padding and border * add changeset * revert radius change * add changeset * format * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * changes * changes * Revert "changes" This reverts commit9e2ae43330
. * Revert "changes" This reverts commit9f4c3eec0f
. * Redesign `gr.Slider()` (#9197) * redesign slider * add changeset * fix test * update slider design * slider tweaks --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * 🔡 Update default core Gradio font (#9204) * change sans font from Source Sans Pro to Asap * change misc refs to Source Sans Pro * add changeset * revert old changes * add changeset * replace asap with IBM Plex Sans * add changeset * repalce asaps with ibm plex * tweak --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Redesign `gr.Button()` (#9167) * *add new button styling *add origin theme class with old button styling * add changeset * remove new colour * add changeset * color and radius tweaks * remove neutral hue change * *update button demo *style tweaks * format * fix test * use white text on primary btn * adjust primary orange * tweak colour * disabled fixes * refactor * refactor * refactor * refactor * remove non-button changes * test * revert test * make cancel btn darker in light mode * change button stories to interactive * fix slider test * fix test * tweak * tweak secondary colour to work with gr.group() * add changeset * tweak * tweak button hover grey --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: pngwn <hello@pngwn.io> * Minor changes to flagging for 5.0 (#9166) * init * add changeset * rename * flagging * flagging * changes * update * changes * more * more * changes * add changeset * fix test * changes * update demos --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Adds TLS to FRP tunnel (#9218) * tls tunnel * add changeset * add changeset * arm64 * checksums * changes * tweaks * tweak --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Move buttons from chat_interface into Chatbot (#9201) * First draft * type check * test * add changeset * Fix e2e styling and tests * fix lint * Add code * add changeset * Remove shadow of copy button, make a box * lint * add changeset * fix padding + lint * make buttons a bit smaller. use different icon * Add code * add changeset * tunneling * fix * Add code * fix + lint * Add code --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Improve button consistency across light/dark mode (#9236) * ensure btn borders are consistent in light and dark mode * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Redesign `gr.Tabs()` (#9199) * Decrease component radii and remove input shadows (#9216) * fix py chatbot test * Lighten secondary button grey fill (#9245) * lighten secondary button grey * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Stop using `multiprocessing` in `flagging.CSVLogger` on Lite v5 (#9246) * Fix the default demo code for the dev * Use ClassicCSVLogger for Lite * add changeset * add changeset * Revert "Use ClassicCSVLogger for Lite" This reverts commita89fcb1134
. * Avoid using multiprocessing.Lock on Lite * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * prefix api routes (#9200) * Built-in submit and stop buttons in `gr.ChatInterface(multimodal=False)`, adding `submit_btn` and `stop_btn` props to `gr.Textbox()` and `gr.MultimodalText()` (#9235) * Add submit_btn prop to the Textbox component and use it in ChatInterface for a consistent design with multimodal=True * Change the default value of MultimodalTextbox.submit_btn to False for consistency with Textbox.submit_btn * add changeset * Set the default value of Textbox.submit_btn as False for consistency * add changeset * Add stop_btn prop to Textbox and MultimodalTextbox and use it in ChatInterface for a built-in stop button * add changeset * add changeset * Fix Python tests * Fix JS tests * nit fix * Make the submit and stop buttons not exclusive for simplicity * Replace the Pause icon with the Square icon * add changeset * Update the docstring * Preserve the original values of textbox.submit_btn and .stop_btn after running a generator * Show the stop button only when the submit_btn is enabled from the beginning * Respect the user-specified values of submit_btn and stop_btn * Add ChatInterface.submit_btn and .stop_btn params * Fix Textbox.svelte style with string values of submit_btn and stop_btn * Fix Python tests * Fix Python code * fix test * Apply suggestions from code review 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> * Adds a "huggingface" button variant, and makes it the default for `gr.LoginButton` and `gr.DuplicateButton` (#9254) * add clear variant * add changeset * duplicate button * add changeset * tweak * tweak * format * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chore: update versions (beta) (#8829) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix cs * chore: update versions (beta) (#9262) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Improve Icon Button consistency (#9250) * * update icon buttons * add image editor specific icon button * tweak hover * margin tweak * add changeset * improve gr.Video button UI * radius tweak * ensure even spacing * fix typechecks * add changeset * revert irrelevant changes * typefix * fix image editor buttons * fix download link icon * disable undo if no change events dispatched in model3d and video * add changeset * add iconbuttonwrapper around gallery share btn --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * format * Fix reload mode and streaming in 5.0 dev (#9269) * Fix reload mode + streaming * use api_prefix for reload * add changeset * comments --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Raise error instead of warning if checksums for binary do not match (#9268) * tunneling * add changeset * format --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix stop recording button colors (#9270) * Add code * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Match style of textbox stop button to submit button (#9280) * Change styles * styling * add changeset * add changeset * consistent width --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Raise ChecksumMismatchError (#9300) * raise mismatch * add changeset * changes * format backend --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Further tweak to is_in_or_equal (#9282) * Add code * add changeset * add changeset * is_launching tweak * no resolve symlink * Use has_launched --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * changes (#9301) * Fixes race condition in `update_root_in_config` (#9306) * test * lint * tests * add changeset * change * lint * reduce num attempts --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * docstring * Adds ability to block event trigger when file is uploading (#9253) * input_ready * add changeset * update value * block event when input waiting * format * add changeset * dep index --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * 5.0 merge (#9318) * merge * pythong format * fix typecheck * fix json scroll * fix test --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: Hannah <hannahblair@users.noreply.github.com> * Proposal: remove `gr.make_waveform` and remove `matplotlib` as a dependency (#9312) * remove matplotlib * add changeset * remove tests, demo * Fix the Lite worker to set the matplotlib backend engine only when the matplotlib package is installed * add changeset * Fix comment --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Yuichiro Tachibana (Tsuchiya) <t.yic.yt@gmail.com> * Dont move files to cache automatically in chatbot postprocess (#9303) * Fix * add changeset * Add code --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Remove two dependencies: `importlib_resources` and `urllib3` (if not in Wasm) (#9321) * remove-importlib_resources * add changeset * urllib only on wasm * add changeset * format * format --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Make `gr.Image` preprocessing more efficient (#9314) * image preprocess * add changeset * changes * fix tests * docstring * docstring * image * fix * format * changes * fix test * changes * handle svg files --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * 5.0 merge take 2 (#9326) * chore: update versions (#9168) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * chore: update error.svx (#9291) * chore: update error.svx occured -> occurred * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Update docs to use new Image init (#9304) * Fix scrollbars everywhere (#9276) * changes * add changeset * scroll fix * remove .json css, adjust scroll height to account for label --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Hannah <hannahblair@users.noreply.github.com> * Separate starlette.Request from PredictBody. Only set in new PredictBodyInternal object (#9279) * use custom pydantic type annotatio * add changeset * Add code * add changeset * rework * dont use arbitrary_types_allowed * add changeset * fix test * revert path change --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Add root_url to components created by gr.render (#9267) * Fix bug * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fileformat whitelist (#9302) * changes * add changeset * Update routes.py --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix multiple trigger bug when function has js (#9188) * add code * add changeset * lint --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chore: update versions (#9298) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * fix json * harden test * harden test * clean * format * add changeset * notebooks * fix old conflicts --------- Co-authored-by: Gradio PR Bot <121576822+gradio-pr-bot@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Tayfun Sen <tayfun.sen@gmail.com> Co-authored-by: aliabid94 <aabid94@gmail.com> Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: Hannah <hannahblair@users.noreply.github.com> Co-authored-by: Freddy Boulton <alfonsoboulton@gmail.com> * Add `matplotlib` requirements to several demos (#9327) * add matplotlib req to demos * add matplotlib req to demos * more * update reqs * clean * format * Standardize `height` across components and add `max_height` and `min_height` parameters where appropriate (#9313) * height * changelog * height * add changeset * add changeset * add changeset * revert clog * more changes * add changeset * chatbot * restore * filexplorer * add changeset * json * add changeset * markdown * add changeset * row * add changeset * height * format frontend * revert * max height * fix * fix docstrings * fix py tests * add story --------- Co-authored-by: Dawood <dawoodkhan82@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix typo in `tunneling.py` (#9338) * tunneling fix * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Set the color of placeholder in a disabled textbox to gray instead of black, and disable typing while a response is generating in `gr.ChatInterface`, allow `gr.MultimodalTextbox` to accept string values (#9328) * textbox * add changeset * changes' * revert demos * add changeset * add changeset * changes * multimodal * add changeset * changes * format * revert demo * fix test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Improve is_in_or_equal and fuzzer (#9341) * improve fuzzer * test case * add changeset * verify * Update gradio/utils.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> * Add info about Powershell client (#9343) * clients * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Remove lite/theme.css from the Git-managed file tree (#9335) * Delete js/lite/src/theme.css from the Git managed file tree as it's dynamically generated * Remove lite-related npm scripts from spa/package.json * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * 9227 chatinterface retry bug (#9316) * first draft * add code * tip * add changeset * delete dead code * Type check notebook * consolidate like section with guide * Add comments * add value * Lint * lint * guide --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Move icons into `IconButtonWrapper` (#9261) * * update icon buttons * add image editor specific icon button * tweak hover * margin tweak * add changeset * improve gr.Video button UI * radius tweak * ensure even spacing * fix typechecks * add changeset * revert irrelevant changes * typefix * fix image editor buttons * fix download link icon * disable undo if no change events dispatched in model3d and video * use icons with iconbuttonwrapper * add iconbuttonwrapper around gallery share btn * Revert "add iconbuttonwrapper around gallery share btn" This reverts commit4605302df4
. * add changeset * design fixes * add changeset * move status tracker progress to bottom of component * add changeset * use iconbutton for like/dislike * fix lint error * fix type errors * type errors * fix test * revert undo icon change * btn spacing --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Added gradio-in-r (#9340) * Added gradio-in-r * add changeset * section * remove * tweaks * delete changeset * R * Updated using-gradio-in-other-programming-languages.md --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Enhance Lite E2E tests and fix a networking problem on Lite (#9333) * Add Lite E2E test to check a matplotlib problem which was fixed in https://github.com/gradio-app/gradio/pull/9312 * Restore js/app/test/image_remote_url.spec.ts, which was deleted in https://github.com/gradio-app/gradio/pull/8716 * Fix tootils import * Format * Fix processing_utils.resolve_with_google_dns to use the HTTPX client instead of urllib so it works on Lite * add changeset * add changeset * Move js/app/test/image_remote_url.spec.ts -> js/spa/test/image_remote_url.spec.ts * Use pyodide.http in resolve_with_google_dns on Lite --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Do not attach `content_disposition_type = "attachment"` headers for files explicitly allowed by developer (#9348) * changes * add changeset * format * fix type * type * add test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix overflowing markdown in Chatbot (#9260) * fix markdown overflowing table * add changeset * revert undo icon * add changeset * Revert "revert undo icon" This reverts commit855b012a20
. * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Small tweak to how thoughts are shown in `gr.Chatbot` (#9359) * thiknk chat * add changeset * lint --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Use `container` param in `gr.Markdown` (#9356) * * add param * add story * add changeset * Use IconButton for copy btn * fix test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * run format * Fixes website build in 5.0-dev (#9382) * changes * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Small tweaks to improve the DX for the "tuples"/"messages" argument in `gr.Chatbot` (#9358) * change format * format * add changeset * revert * revert --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Update babylon.js to `v7` for `gr.Model3D` (#9377) * update package.json * add changeset * add changeset * update pnpm lock * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix `gr.ImageEditor` toolbar cutoff (#9371) * fix wrap alignment * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Adds LLM to the Playground (#9233) * simple system prompt * faster model and streaming and better system prompt * changes * changes * add changeset * formatting * add placeholder wheel * changes * save to db finally working * clean * fix open in playground button * better fix for open in playground * changes * format * fix * try * remove * remove make waveform * fix * using fallback mode and other changes * add show_error * fix lite refresh issue * fix css * add demo * format * lite using latest wheel * cleanup * formatting * hack fix for b vs betta * formatting --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Refactor lazy caching (#9361) * changes * lazy * redo lazy * add changeset * changes * helpers * docstrings' * lint * Update guides/04_additional-features/09_environment-variables.md Co-authored-by: Charles <charles@huggingface.co> * Update gradio/chat_interface.py Co-authored-by: Dawood Khan <dawoodkhan82@gmail.com> * Update gradio/chat_interface.py Co-authored-by: Dawood Khan <dawoodkhan82@gmail.com> * tolerant --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Charles <charles@huggingface.co> Co-authored-by: Dawood Khan <dawoodkhan82@gmail.com> * Added max lines and overflow scrollbar for `gr.Code` (#9311) * add max lines for gr.Code * add changeset * revert default lines to 5 * fix tests * lint --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix File Types for MultimodalTextbox (#9393) * fix file_types * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Prevent HTML and Markdown height changing when status is hidden (#9363) * fix markdown height changing * * add min_height param to html * prevent height from changing based on status * add changeset * add changeset * param desc change * fix test * format * * add max height to html * share css_units func * add changeset * fix backend test * fe --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Object Detection From Webcam Stream Guide (#9336) * guides * Add demo * guide * Add info about Powershell client (#9343) * clients * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Remove lite/theme.css from the Git-managed file tree (#9335) * Delete js/lite/src/theme.css from the Git managed file tree as it's dynamically generated * Remove lite-related npm scripts from spa/package.json * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * 9227 chatinterface retry bug (#9316) * first draft * add code * tip * add changeset * delete dead code * Type check notebook * consolidate like section with guide * Add comments * add value * Lint * lint * guide --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Move icons into `IconButtonWrapper` (#9261) * * update icon buttons * add image editor specific icon button * tweak hover * margin tweak * add changeset * improve gr.Video button UI * radius tweak * ensure even spacing * fix typechecks * add changeset * revert irrelevant changes * typefix * fix image editor buttons * fix download link icon * disable undo if no change events dispatched in model3d and video * use icons with iconbuttonwrapper * add iconbuttonwrapper around gallery share btn * Revert "add iconbuttonwrapper around gallery share btn" This reverts commit4605302df4
. * add changeset * design fixes * add changeset * move status tracker progress to bottom of component * add changeset * use iconbutton for like/dislike * fix lint error * fix type errors * type errors * fix test * revert undo icon change * btn spacing --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Added gradio-in-r (#9340) * Added gradio-in-r * add changeset * section * remove * tweaks * delete changeset * R * Updated using-gradio-in-other-programming-languages.md --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Enhance Lite E2E tests and fix a networking problem on Lite (#9333) * Add Lite E2E test to check a matplotlib problem which was fixed in https://github.com/gradio-app/gradio/pull/9312 * Restore js/app/test/image_remote_url.spec.ts, which was deleted in https://github.com/gradio-app/gradio/pull/8716 * Fix tootils import * Format * Fix processing_utils.resolve_with_google_dns to use the HTTPX client instead of urllib so it works on Lite * add changeset * add changeset * Move js/app/test/image_remote_url.spec.ts -> js/spa/test/image_remote_url.spec.ts * Use pyodide.http in resolve_with_google_dns on Lite --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Do not attach `content_disposition_type = "attachment"` headers for files explicitly allowed by developer (#9348) * changes * add changeset * format * fix type * type * add test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix overflowing markdown in Chatbot (#9260) * fix markdown overflowing table * add changeset * revert undo icon * add changeset * Revert "revert undo icon" This reverts commit855b012a20
. * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * demo name * Guide on Streaming Video for Object Detection (#9365) * Add code * notebooks * Suggestions * Add gif * Small tweak to how thoughts are shown in `gr.Chatbot` (#9359) * thiknk chat * add changeset * lint --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Use `container` param in `gr.Markdown` (#9356) * * add param * add story * add changeset * Use IconButton for copy btn * fix test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * small fixes (#9347) * Updated Guide: Real Time Speech Recognition (#9349) * Update real-time-speech-recognition.md added necessary dependency * Update run.py updated code to handle cases with stereo microphone * Update real-time-speech-recognition.md improved english * Update run.py updated code for streaming * Update run.py * chunk space uploads (#9360) * chunk space uploads * Update upload_demo_to_space.py Co-authored-by: Lucain <lucainp@gmail.com> * address comments + tweak CI --------- Co-authored-by: Lucain <lucainp@gmail.com> * add find (#9368) * New branch (#9369) * add find * fix syntax * New branch (#9370) * add find * fix syntax * add hidden files * run format * Testing CI (#9379) * remove unnecessary redirects * add changeset * fix * formatting --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fixes website build in 5.0-dev (#9382) * changes * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Small tweaks to improve the DX for the "tuples"/"messages" argument in `gr.Chatbot` (#9358) * change format * format * add changeset * revert * revert --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Update babylon.js to `v7` for `gr.Model3D` (#9377) * update package.json * add changeset * add changeset * update pnpm lock * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix `gr.ImageEditor` toolbar cutoff (#9371) * fix wrap alignment * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * add lite upload (#9385) * fix sha (#9386) * Fix lite ci (#9387) * fix sha * fix name * fix name * Add code * feedback * link * add changeset * code * check * Update guides/04_additional-features/02_streaming-outputs.md * Update guides/07_streaming/02_object-detection-from-webcam.md --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Yuichiro Tachibana (Tsuchiya) <t.yic.yt@gmail.com> Co-authored-by: Hannah <hannahblair@users.noreply.github.com> Co-authored-by: Ifeanyi Idiaye <72707830+Ifeanyi55@users.noreply.github.com> Co-authored-by: Julien Chaumond <julien@huggingface.co> Co-authored-by: Nikita Krasnytskyi <nikita.kras.kyiv@gmail.com> Co-authored-by: pngwn <hello@pngwn.io> Co-authored-by: Lucain <lucainp@gmail.com> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com> * Fix gradio.js aws path (#9397) * fix folder path for beta * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Trigger state change event on iterators (#9299) * Fix render async * add changeset * Fix regression * tests * Add code --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * add local fonts and update themes (#9367) * add local fonts and update themes * add changeset * tweak * - dedent css - fix if logic * store theme fonts locally + update themes with `LocalFont` * lint * fix font loading --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: freddyaboulton <alfonsoboulton@gmail.com> * Disable liking user message in chatbot by default but make it configurable (#9323) * Code * add changeset * revert * test" " * typo * Fix code --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix Cached Examples for Streamed Media (#9373) * fix problem * add changeset * gitignore * lint * Add code * Add code * Fix extension * add changeset * unit test * typecheck * typecheck * lint * test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fixes annoying height bug in playground (#9402) * fix styling issue * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Chatbot Examples (#8966) * examples * examples * first pass * remove comments * remove comments * add changeset * Fix chatinterface e2e test (#9104) * Refactor test * comment * Fix image * add changeset * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * fix version + pkg name (#9110) * fix version + pkg name * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * fix dev (#9115) * fix asset locations * fix changeset * Be able to set optimizeDeps options in gradio.config.js (#9091) * Add code * add changeset * build * Remove unused import --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Better text styling on docs (#9108) * margin and size * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * setup npm-previews of all packages (#9118) * add workflow * fix pkg jsons * workflow name * add changeset * fix * add changeset * fix build command --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix chatinterface multimodal bug (#9119) * Add test * add changeset * comments --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chatbot examples * examples changes * chatinterface * chatinterface * pr fixes * remove html demo change * suggestion width * type fixes * format * comment our examples test * remove cache * comment example caching test * bug fix * bug fix * format * type fix * Proposal: remove `gr.make_waveform` and remove `matplotlib` as a dependency (#9312) * remove matplotlib * add changeset * remove tests, demo * Fix the Lite worker to set the matplotlib backend engine only when the matplotlib package is installed * add changeset * Fix comment --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Yuichiro Tachibana (Tsuchiya) <t.yic.yt@gmail.com> * Dont move files to cache automatically in chatbot postprocess (#9303) * Fix * add changeset * Add code --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * test fix * format * changes * update guide * cache examples * add changeset * format * changes * changes * changes * changes * changes * changes * format * fixes * test chat interface fixes --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Freddy Boulton <alfonsoboulton@gmail.com> Co-authored-by: pngwn <hello@pngwn.io> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: Yuichiro Tachibana (Tsuchiya) <t.yic.yt@gmail.com> Co-authored-by: Ali Abid <aliabid94@gmail.com> * Ssr part 2 (#9339) * chore: update versions (beta) (#9263) * Center icon in button when no text is present (#9405) * center button when only icon is present * add changeset * format * add story --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * fix SSR apps on spaces (#9412) * test * add changeset * test * test * test * fix? * fix? * add changeset * fix * fix * fix * fix * fix finally? * fix * add changeset * lints etc * add changeset * remove spa mode * fix env * typing * change * lint * remove node logs * remove node logs --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Small fixes to `gr.Dataframe` and chatbot docs (#9376) * docs * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chore: update versions (beta) (#9416) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Allow skipping an arbitrary number of output components, and also raise a warning if the number of output components does not match the number of values returned from a function (#9406) * demo * add warnings * add changeset * add changeset * add doc section * format * fix check * fix typing issues * docs * lint --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * fix css (#9427) * fix css * add changeset * format --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Dawood <dawoodkhan82@gmail.com> * Fix Python unit tests on `5.0-dev` branch (#9432) * fix python unit tests * changes * changes * fix * Lite: HTTPX client improvement (#9413) * Use the httpx client in resolve_with_google_dns both for normal and Lite * add changeset * Set decode_content=False * Add type hints * Set decode_content=True and remove the Content-Encoding header so the content is decoded by urllib3 instead of httpx * Fix * Add comment * Restore the original resolve_with_google_dns to make such changes in another PR * add changeset * Update comment * Updated the test requirements * Fix type hint * Revert "Updated the test requirements" This reverts commit2e43584a87
. --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Use or `pathlib.Path` objects to indicate filepaths for `css`, `js`, and `head` parameters (#9448) * format * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Reduce analytics that are collected (#9447) * reduce analytics collected * analytics * add changeset * bring back css --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix SSR mode flag with `mount_gradio_app` and revert changes to pytests (#9446) * Revert "Fix Python unit tests on `5.0-dev` branch (#9432)" This reverts commit278645b649
. * revert changes to pytest * add changeset * fix --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Small changes to caching (#9438) * caching changes * add changeset * typo * typo * changes * fix * fix --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Refactoring playground (#9426) * Use @gradio/code.BaseCode instead of its default export like https://github.com/gradio-app/gradio/pull/8804 * Delete unused code * add changeset * Fix * Rename a variable to be descriptive * Mount single <Code> instance instead of creating one for each demo * Fix the initial value passed to createGradioApp * Use const instead of let * Rename variable * Update * Fix layout * Restore the preset requirements * Delete unused variable * Add type hint * Attach the keydown handler directly to the input element instead of the window object * Add code editor widget --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Chatbot bug fixes (#9453) * image fixes * add changeset * more fixes * fix * fix * css fixes --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Update object detection guide (#9456) * First draft * Add code * update guide * add changeset * revert * edits * Add code * notebooks * fix code --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Start/stop recoding from the backend. Add guide on conversational chatbots (#9419) * Add code * stop displatch * first draft * edit * add changeset * lint * Docstring * Make recording * fix video * fix guide link * redirect * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Improve UI on the Playground (#9462) * ai prompt always there * fix overflow * better ui and suggested prompts * cancel generation and showing erro * formatting * add changeset * fix height issue and button * changes * fix --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix. Triggered dataframe change event for header change (#9469) * Fix. Triggered dataframe change event for header change * add changeset * lint * add changeset --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chore: update versions (beta) (#9420) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * format * Fix package.json `exports` of @gradio/preview (#9468) * Fix package.json exports of @gradio/preview * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Fix plots (#9464) * fix * add changeset * lint * clean * ts * format * add changeset * format * remove test that is wrong * fixxxxxx * add changeset * format --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Pre/post-processing download requests (#9383) * changes * add changeset * changes * change * changes * changes * changes * changes * change * changes * changes * changes * changes * changes * changes * changes * Update gradio/processing_utils.py Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * changes * changes * changes * changes * changes * changes * Fix Lite's ASGI receiver to convert memoryview to bytes as the multipart parser called in98cbcaef82/gradio/route_utils.py (L650)
calls bytes.find() and memoryview objects don't have the method * add changeset * Fix async_get_with_secure_transport to use the unsecure but Pyodide-compatible transport in the case of Wasm --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: Yuichiro Tachibana (Tsuchiya) <t.yic.yt@gmail.com> * Add support for 3rd party providers to `gr.load`, and provide a better UX for conversational models (#9470) * changes * add changeset * changes * changes * docstring * chatbot * changes * fix test * format * add changeset * update req * remove conversational * add changeset * remove args --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chore: update versions (beta) (#9476) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Fix `slider-color` var (#9481) * fix slider-color * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Playground requirements tab (#9460) * Add a tab navigation to the playground so the user can specify the requirement packages * Add Transformers.js.py demo and fix the playground to install the requirements immediately after switching the demo * add changeset * Format * add changeset * Fix preview flex * Add requirements to the share link and deploy to Spaces buttons * Add requirements.txt to each demo * Format * Update notebooks * Fix * Update --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: aliabd <ali.si3luwa@gmail.com> * Fix prettierignore (#9486) * Minor fixes to docs and a demo (#9493) * small things * docstring * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Check for `file_types` parameter in the backend (#9431) * file check fix * format * add changeset * tests * add changeset * Update gradio/components/file.py Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Update client/python/gradio_client/utils.py Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * fixes * fixes * test fix * test fix * test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Ensure media queries work for SSR mode (#9428) * asd * asd * fix * add changeset * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Fix custom component CLI unit tests (#9495) * fix * fix audio test * fix template * add changeset --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fixes: Chatbot examples for custom chatbot + rename `suggestions` -> `examples` (#9488) * fix * add changeset * notebooks * fixes * fix * type fix --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * UI theme fixes (#9496) * changes * add changeset * changes * changes * add changeset * changes --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Centre components within `Block` when height and width are set (#9504) * add centering margin * add changeset * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Improve `gr.Code` (#9450) * fix check icon on download * * apply unused min_width param * improve gutter spacing * hide `BlockLabel` spacing if `show_label` is false * format * tweak spacing, remove `fit-content` * add changeset * revert height change * fix * allow setting max_lines to None * add line wrapping * add wrap lines param * fix type error * fix py test * fix type check --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix node process to run with correct server name (#9506) * fix node process * add changeset * add changeset * format * cleanup --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * yaml lint * Add Bokeh plot demo (#9423) * Add Bokeh plot demo * Update notebook --------- Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Expanding AI Playground Prompt for Qwen (#9452) * expand prompt for qwen * add changeset * clean * add changeset * heavily modify prompt * changes * many changes * fix weird syntax error * fix * ? * changes * fix requirements * formatting --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * docs: update 01_quickstart.md (#9515) arbitary -> arbitrary Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Fix change triggers for dropdown and radio (#9519) * fix change triggers * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chore: update versions (beta) (#9485) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Fix single select dropdown (#9526) * Set the default value of Dropdown as undefined instead of [] when multiselect=false * Refactoring * add changeset * Fix tests --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Hide x axis labels (#9497) * changes * add changeset * fix --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Add Jinja2 language to Code component (#9545) * Add jinja2 codemirror language * add jinja2 * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Disable sagemaker_check() for now (#9546) * Add is_sagemaker param to Blocks, so sagemaker_check() can be explicitly disabled * revert * add changeset * format * add changeset --------- Co-authored-by: Mate Valko <> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chore: update versions (beta) (#9544) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Update gr.ColorPicker UI (#9570) * update color picker dialog * add changeset * add tinycolor types * fix disabled param * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix cut off in gr.ImageEditor (#9525) * remove default height value * remove canvas w x h * revert comment * add changeset * add changeset * fix stage-wrap shift * empty tweak * add changeset * tweak * type fix * test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Change caching to occur not at the creation of a `gr.Examples()` but when the Blocks is actually launched (#9508) * changes * changes * add changeset * await * add changeset * changes * changes * changes * changes --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Add `css_paths` and `head_paths` parameters (#9524) * paths * add changeset * changes * fixes * add new lines * remove js_paths * add changeset * format --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix most flaky Python tests in `5.0-dev` branch (#9550) * fix flaky tests * add changeset * token * changes * fixes * hf token * format * test * format * root url * format * fix * fix tests * add changeset * remove huggingface hub fixed version * add changeset * remove print --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Api info fix (#9522) * api-info-fix * add changeset * Add with fallback * route utils * update --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Send Streaming data over Websocket if possible. Also support base64 output format for images. (#9483) * b64 first draft * ws * onMount + demos and guide * guide * add changeset * Add code * lint * type check * Have a fallback * Add code * delete unneccessary input * API info tweaks * Revert type param type hint * Add code * api-info-fix * add changeset * Add with fallback * route utils * update * final tweaks * type check * fix * add changeset * fix * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Allow `info=` to render markdown (#9521) * allow info to render markdown * add changeset * update docstrings * format * fixes * add changeset * fix * add changeset * root * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Equal height columns (#9577) * changes * add changeset * add changeset --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix chatinterface embedding height issues (#9571) * changes * add changeset * changes * changes * lint --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * chore: update versions (beta) (#9572) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Update gr.Dataframe UI with action popover (#9575) * add dialog for actions * add changeset * add story * add changeset * * remove temp select column * change open dialog UX in mobile * fix border * fix test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Disable the submit button and enter-key submit when the text is empty (#9583) * Disable the submit button and enter-key submit when the text is empty * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Chat Interface Multimodal Fix & Fallback to `gr.Examples()` (#9584) * fic * add changeset * fallback to original examples * add changeset * lint --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Fix `gr.Chatbot` panels layout (#9499) * fix avatar margins * separate component logic out and add message component * fix panel mode and upate chatbot buttons * add changeset * fix type check * fix typecheck * reduce message padding * fix empty message * revert css removal * test * test * Revert "test" This reverts commit40c9e396a1
. * Revert "test" This reverts commit660a6b06ea
. * move message-wrap styes * bubble width + markdown tweak * fix test --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Equal height in row false by default (#9591) * changes * add changeset * changes --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix reload mode (#9576) * Ddebuig * Fixing * fix * notebook * add changeset * SSR MODE * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Chatbot autoscroll (#9582) * Auto scroll on the Chatbot component * Scroll down button's design * Parameterize autoscroll * add changeset * Fix test * Fix * Fix the <Video> component to dispatch the load event after the metadata is loaded * add changeset * Add tick * Fix * Fix * Add loadstart and loadeddata and remove load event forwarder from <Video> because <video> doesn't dispatch the load event * Fix <Player> as well * Fix * Add pending_message as the scroll trigger and remove unnecessary tick * Refactoring <Image> * add changeset * Fix * Fix * icon fix * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: Dawood <dawoodkhan82@gmail.com> * Only move files to the cache that have a meta key (#9589) * Fix code * add changeset * Code * test * tests * add changeset * lint --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Some more chatbot fixes (#9593) * some fixes * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix favicon in ssr mode (#9592) * Fix favicon * fix * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * SSR e2e + fixes (#9590) * fix tests in ssr mode * fix loading race condition * fix some tests * add ci * cleanup * format * add changeset * clean * test name * broke it, fix * fix? * clean * lint --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Deep equal check with hash (#9580) * check_equal_by_hash * add changeset * changes * change * changes * hash --------- Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> * Adding new themes to Gradio 5.0 (#9437) * Adding citrus, colorful and headlines themes * add changeset * Fix from running format_backend * Add new themes to theming guide * Rename headlines theme demo file * changes * add changeset * changes * changes * fix name * revert kitchen sink * ocean and docs * changes * add changeset * changes * changes --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: Ali Abid <aliabid94@gmail.com> * Fix custom component CLI on main/5.0 (#9482) * Add code * add changeset * WIP * add changeset * Working SSR * WIP * Proper ssr build * fix paths * fix * revert .vscode change * format * lint * uncomment * fix --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Fix e2e test bug (#9597) * code * try this out * Fix markdown code copy/check button in gr.Chatbot (#9598) * fix broken copy button * tweak * add changeset --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * Update `README.md` with 5.0 info and GIFs (#9564) * update gif * format * changes * readme * language * Tweak gr.Dataframe menu UX (#9601) * * show menu on click * only show column options in headers * improve spacing * add changeset * fix type check --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> * chore: update versions (beta) (#9586) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> * Ensure undo/try shows for final bot message in gr.Chatbot (#9600) * fix undo and retry reactivity * add changeset * tweak * fix ts check * changes * changes --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Abubakar Abid <abubakar@huggingface.co> Co-authored-by: Ali Abid <aliabid94@gmail.com> * chore: update versions (beta) (#9604) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: pngwn <hello@pngwn.io> Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com> Co-authored-by: Freddy Boulton <alfonsoboulton@gmail.com> Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com> Co-authored-by: aliabid94 <aabid94@gmail.com> Co-authored-by: Ali Abid <aliabid94@gmail.com> Co-authored-by: Yuichiro Tachibana (Tsuchiya) <t.yic.yt@gmail.com> Co-authored-by: Dawood Khan <dawoodkhan82@gmail.com> Co-authored-by: Hannah <hannahblair@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Gradio PR Bot <121576822+gradio-pr-bot@users.noreply.github.com> Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com> Co-authored-by: Tayfun Sen <tayfun.sen@gmail.com> Co-authored-by: Ifeanyi Idiaye <72707830+Ifeanyi55@users.noreply.github.com> Co-authored-by: Charles <charles@huggingface.co> Co-authored-by: Michał Pstrąg <m.pstrag.kontakt@gmail.com> Co-authored-by: Julien Chaumond <julien@huggingface.co> Co-authored-by: Nikita Krasnytskyi <nikita.kras.kyiv@gmail.com> Co-authored-by: Lucain <lucainp@gmail.com> Co-authored-by: Joodith <67360396+Joodith@users.noreply.github.com> Co-authored-by: Col0ring <47329987+Col0ring@users.noreply.github.com> Co-authored-by: Sigbjørn Skjæret <sigbjorn.skjaeret@scala.com> Co-authored-by: Mate Valko <3168272+vmatt@users.noreply.github.com> Co-authored-by: Allison <allison@huggingface.co>
553 lines
14 KiB
Svelte
553 lines
14 KiB
Svelte
<script lang="ts">
|
|
import type { Gradio, SelectData } from "@gradio/utils";
|
|
import { BlockTitle } from "@gradio/atoms";
|
|
import { Block } from "@gradio/atoms";
|
|
import { StatusTracker } from "@gradio/statustracker";
|
|
import type { LoadingStatus } from "@gradio/statustracker";
|
|
import { onMount } from "svelte";
|
|
|
|
import type { TopLevelSpec as Spec } from "vega-lite";
|
|
import type { View } from "vega";
|
|
import { LineChart as LabelIcon } from "@gradio/icons";
|
|
import { Empty } from "@gradio/atoms";
|
|
|
|
interface PlotData {
|
|
columns: string[];
|
|
data: [string | number][];
|
|
datatypes: Record<string, "quantitative" | "temporal" | "nominal">;
|
|
mark: "line" | "point" | "bar";
|
|
}
|
|
export let value: PlotData | null;
|
|
export let x: string;
|
|
export let y: string;
|
|
export let color: string | null = null;
|
|
export let root: string;
|
|
$: unique_colors =
|
|
color && value && value.datatypes[color] === "nominal"
|
|
? Array.from(new Set(_data.map((d) => d[color])))
|
|
: [];
|
|
|
|
export let title: string | null = null;
|
|
export let x_title: string | null = null;
|
|
export let y_title: string | null = null;
|
|
export let color_title: string | null = null;
|
|
export let x_bin: string | number | null = null;
|
|
export let y_aggregate:
|
|
| "sum"
|
|
| "mean"
|
|
| "median"
|
|
| "min"
|
|
| "max"
|
|
| undefined = undefined;
|
|
export let color_map: Record<string, string> | null = null;
|
|
export let x_lim: [number, number] | null = null;
|
|
export let y_lim: [number, number] | null = null;
|
|
export let x_label_angle: number | null = null;
|
|
export let y_label_angle: number | null = null;
|
|
export let x_axis_labels_visible = true;
|
|
export let caption: string | null = null;
|
|
export let sort: "x" | "y" | "-x" | "-y" | string[] | null = null;
|
|
function reformat_sort(
|
|
_sort: typeof sort
|
|
):
|
|
| string
|
|
| "ascending"
|
|
| "descending"
|
|
| { field: string; order: "ascending" | "descending" }
|
|
| string[]
|
|
| undefined {
|
|
if (_sort === "x") {
|
|
return "ascending";
|
|
} else if (_sort === "-x") {
|
|
return "descending";
|
|
} else if (_sort === "y") {
|
|
return { field: y, order: "ascending" };
|
|
} else if (_sort === "-y") {
|
|
return { field: y, order: "descending" };
|
|
} else if (_sort === null) {
|
|
return undefined;
|
|
} else if (Array.isArray(_sort)) {
|
|
return _sort;
|
|
}
|
|
}
|
|
$: _sort = reformat_sort(sort);
|
|
export let _selectable = false;
|
|
let _data: {
|
|
[x: string]: string | number;
|
|
}[];
|
|
export let gradio: Gradio<{
|
|
select: SelectData;
|
|
double_click: undefined;
|
|
clear_status: LoadingStatus;
|
|
}>;
|
|
|
|
$: x_temporal = value && value.datatypes[x] === "temporal";
|
|
$: _x_lim = x_lim && x_temporal ? [x_lim[0] * 1000, x_lim[1] * 1000] : x_lim;
|
|
let _x_bin: number | undefined;
|
|
let mouse_down_on_chart = false;
|
|
const SUFFIX_DURATION: Record<string, number> = {
|
|
s: 1,
|
|
m: 60,
|
|
h: 60 * 60,
|
|
d: 24 * 60 * 60
|
|
};
|
|
$: _x_bin = x_bin
|
|
? typeof x_bin === "string"
|
|
? 1000 *
|
|
parseInt(x_bin.substring(0, x_bin.length - 1)) *
|
|
SUFFIX_DURATION[x_bin[x_bin.length - 1]]
|
|
: x_bin
|
|
: undefined;
|
|
let _y_aggregate: typeof y_aggregate;
|
|
let aggregating: boolean;
|
|
$: {
|
|
if (value) {
|
|
if (value.mark === "point") {
|
|
aggregating = _x_bin !== undefined;
|
|
_y_aggregate = y_aggregate || aggregating ? "sum" : undefined;
|
|
} else {
|
|
aggregating = _x_bin !== undefined || value.datatypes[x] === "nominal";
|
|
_y_aggregate = y_aggregate ? y_aggregate : "sum";
|
|
}
|
|
}
|
|
}
|
|
function reformat_data(data: PlotData): {
|
|
[x: string]: string | number;
|
|
}[] {
|
|
let x_index = data.columns.indexOf(x);
|
|
let y_index = data.columns.indexOf(y);
|
|
let color_index = color ? data.columns.indexOf(color) : null;
|
|
return data.data.map((row) => {
|
|
const obj = {
|
|
[x]: row[x_index],
|
|
[y]: row[y_index]
|
|
};
|
|
if (color && color_index !== null) {
|
|
obj[color] = row[color_index];
|
|
}
|
|
return obj;
|
|
});
|
|
}
|
|
$: _data = value ? reformat_data(value) : [];
|
|
|
|
const is_browser = typeof window !== "undefined";
|
|
let chart_element: HTMLDivElement;
|
|
$: computed_style = chart_element
|
|
? window.getComputedStyle(chart_element)
|
|
: null;
|
|
let view: View;
|
|
let mounted = false;
|
|
let old_width: number;
|
|
let resizeObserver: ResizeObserver;
|
|
|
|
let vegaEmbed: typeof import("vega-embed").default;
|
|
async function load_chart(): Promise<void> {
|
|
if (view) {
|
|
view.finalize();
|
|
}
|
|
if (!value || !chart_element) return;
|
|
old_width = chart_element.offsetWidth;
|
|
const spec = create_vega_lite_spec();
|
|
if (!spec) return;
|
|
resizeObserver = new ResizeObserver((el) => {
|
|
if (!el[0].target || !(el[0].target instanceof HTMLElement)) return;
|
|
if (
|
|
old_width === 0 &&
|
|
chart_element.offsetWidth !== 0 &&
|
|
value.datatypes[x] === "nominal"
|
|
) {
|
|
// a bug where when a nominal chart is first loaded, the width is 0, it doesn't resize
|
|
load_chart();
|
|
} else {
|
|
view.signal("width", el[0].target.offsetWidth).run();
|
|
}
|
|
});
|
|
|
|
if (!vegaEmbed) {
|
|
vegaEmbed = (await import("vega-embed")).default;
|
|
}
|
|
vegaEmbed(chart_element, spec, { actions: false }).then(function (result) {
|
|
view = result.view;
|
|
|
|
resizeObserver.observe(chart_element);
|
|
var debounceTimeout: NodeJS.Timeout;
|
|
view.addEventListener("dblclick", () => {
|
|
gradio.dispatch("double_click");
|
|
});
|
|
// prevent double-clicks from highlighting text
|
|
chart_element.addEventListener(
|
|
"mousedown",
|
|
function (e) {
|
|
if (e.detail > 1) {
|
|
e.preventDefault();
|
|
}
|
|
},
|
|
false
|
|
);
|
|
if (_selectable) {
|
|
view.addSignalListener("brush", function (_, value) {
|
|
if (Object.keys(value).length === 0) return;
|
|
clearTimeout(debounceTimeout);
|
|
let range: [number, number] = value[Object.keys(value)[0]];
|
|
if (x_temporal) {
|
|
range = [range[0] / 1000, range[1] / 1000];
|
|
}
|
|
let callback = (): void => {
|
|
gradio.dispatch("select", {
|
|
value: range,
|
|
index: range,
|
|
selected: true
|
|
});
|
|
};
|
|
if (mouse_down_on_chart) {
|
|
release_callback = callback;
|
|
} else {
|
|
debounceTimeout = setTimeout(function () {
|
|
gradio.dispatch("select", {
|
|
value: range,
|
|
index: range,
|
|
selected: true
|
|
});
|
|
}, 250);
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
|
|
let release_callback: (() => void) | null = null;
|
|
onMount(() => {
|
|
mounted = true;
|
|
chart_element.addEventListener("mousedown", () => {
|
|
mouse_down_on_chart = true;
|
|
});
|
|
chart_element.addEventListener("mouseup", () => {
|
|
mouse_down_on_chart = false;
|
|
if (release_callback) {
|
|
release_callback();
|
|
release_callback = null;
|
|
}
|
|
});
|
|
|
|
return () => {
|
|
mounted = false;
|
|
if (view) {
|
|
view.finalize();
|
|
}
|
|
if (resizeObserver) {
|
|
resizeObserver.disconnect();
|
|
}
|
|
};
|
|
});
|
|
|
|
$: title,
|
|
x_title,
|
|
y_title,
|
|
color_title,
|
|
x,
|
|
y,
|
|
color,
|
|
x_bin,
|
|
_y_aggregate,
|
|
color_map,
|
|
x_lim,
|
|
y_lim,
|
|
caption,
|
|
sort,
|
|
value,
|
|
mounted,
|
|
chart_element,
|
|
computed_style && requestAnimationFrame(load_chart);
|
|
|
|
function create_vega_lite_spec(): Spec | null {
|
|
if (!value || !computed_style) return null;
|
|
let accent_color = computed_style.getPropertyValue("--color-accent");
|
|
let body_text_color = computed_style.getPropertyValue("--body-text-color");
|
|
let borderColorPrimary = computed_style.getPropertyValue(
|
|
"--border-color-primary"
|
|
);
|
|
let font_family = computed_style.fontFamily;
|
|
let title_weight = computed_style.getPropertyValue(
|
|
"--block-title-text-weight"
|
|
) as
|
|
| "bold"
|
|
| "normal"
|
|
| 100
|
|
| 200
|
|
| 300
|
|
| 400
|
|
| 500
|
|
| 600
|
|
| 700
|
|
| 800
|
|
| 900;
|
|
const font_to_px_val = (font: string): number => {
|
|
return font.endsWith("px") ? parseFloat(font.slice(0, -2)) : 12;
|
|
};
|
|
let text_size_md = font_to_px_val(
|
|
computed_style.getPropertyValue("--text-md")
|
|
);
|
|
let text_size_sm = font_to_px_val(
|
|
computed_style.getPropertyValue("--text-sm")
|
|
);
|
|
|
|
/* eslint-disable complexity */
|
|
return {
|
|
$schema: "https://vega.github.io/schema/vega-lite/v5.17.0.json",
|
|
background: "transparent",
|
|
config: {
|
|
autosize: { type: "fit", contains: "padding" },
|
|
axis: {
|
|
labelFont: font_family,
|
|
labelColor: body_text_color,
|
|
titleFont: font_family,
|
|
titleColor: body_text_color,
|
|
titlePadding: 8,
|
|
tickColor: borderColorPrimary,
|
|
labelFontSize: text_size_sm,
|
|
gridColor: borderColorPrimary,
|
|
titleFontWeight: "normal",
|
|
titleFontSize: text_size_sm,
|
|
labelFontWeight: "normal",
|
|
domain: false,
|
|
labelAngle: 0
|
|
},
|
|
legend: {
|
|
labelColor: body_text_color,
|
|
labelFont: font_family,
|
|
titleColor: body_text_color,
|
|
titleFont: font_family,
|
|
titleFontWeight: "normal",
|
|
titleFontSize: text_size_sm,
|
|
labelFontWeight: "normal",
|
|
offset: 2
|
|
},
|
|
title: {
|
|
color: body_text_color,
|
|
font: font_family,
|
|
fontSize: text_size_md,
|
|
fontWeight: title_weight,
|
|
anchor: "middle"
|
|
},
|
|
view: { stroke: borderColorPrimary },
|
|
mark: {
|
|
stroke: value.mark !== "bar" ? accent_color : undefined,
|
|
fill: value.mark === "bar" ? accent_color : undefined,
|
|
cursor: "crosshair"
|
|
}
|
|
},
|
|
data: { name: "data" },
|
|
datasets: {
|
|
data: _data
|
|
},
|
|
layer: ["plot", ...(value.mark === "line" ? ["hover"] : [])].map(
|
|
(mode) => {
|
|
return {
|
|
encoding: {
|
|
size:
|
|
value.mark === "line"
|
|
? mode == "plot"
|
|
? {
|
|
condition: {
|
|
empty: false,
|
|
param: "hoverPlot",
|
|
value: 3
|
|
},
|
|
value: 2
|
|
}
|
|
: {
|
|
condition: { empty: false, param: "hover", value: 100 },
|
|
value: 0
|
|
}
|
|
: undefined,
|
|
opacity:
|
|
mode === "plot"
|
|
? undefined
|
|
: {
|
|
condition: { empty: false, param: "hover", value: 1 },
|
|
value: 0
|
|
},
|
|
x: {
|
|
axis: {
|
|
...(x_label_angle !== null && { labelAngle: x_label_angle }),
|
|
labels: x_axis_labels_visible,
|
|
ticks: x_axis_labels_visible
|
|
},
|
|
field: x,
|
|
title: x_title || x,
|
|
type: value.datatypes[x],
|
|
scale: _x_lim ? { domain: _x_lim } : undefined,
|
|
bin: _x_bin ? { step: _x_bin } : undefined,
|
|
sort: _sort
|
|
},
|
|
y: {
|
|
axis: y_label_angle ? { labelAngle: y_label_angle } : {},
|
|
field: y,
|
|
title: y_title || y,
|
|
type: value.datatypes[y],
|
|
scale: y_lim ? { domain: y_lim } : undefined,
|
|
aggregate: aggregating ? _y_aggregate : undefined
|
|
},
|
|
color: color
|
|
? {
|
|
field: color,
|
|
legend: { orient: "bottom", title: color_title },
|
|
scale:
|
|
value.datatypes[color] === "nominal"
|
|
? {
|
|
domain: unique_colors,
|
|
range: color_map
|
|
? unique_colors.map((c) => color_map[c])
|
|
: undefined
|
|
}
|
|
: {
|
|
range: [
|
|
100, 200, 300, 400, 500, 600, 700, 800, 900
|
|
].map((n) =>
|
|
computed_style.getPropertyValue("--primary-" + n)
|
|
),
|
|
interpolate: "hsl"
|
|
},
|
|
type: value.datatypes[color]
|
|
}
|
|
: undefined,
|
|
tooltip: [
|
|
{
|
|
field: y,
|
|
type: value.datatypes[y],
|
|
aggregate: aggregating ? _y_aggregate : undefined,
|
|
title: y_title || y
|
|
},
|
|
{
|
|
field: x,
|
|
type: value.datatypes[x],
|
|
title: x_title || x,
|
|
format: x_temporal ? "%Y-%m-%d %H:%M:%S" : undefined,
|
|
bin: _x_bin ? { step: _x_bin } : undefined
|
|
},
|
|
...(color
|
|
? [
|
|
{
|
|
field: color,
|
|
type: value.datatypes[color]
|
|
}
|
|
]
|
|
: [])
|
|
]
|
|
},
|
|
strokeDash: {},
|
|
mark: { clip: true, type: mode === "hover" ? "point" : value.mark },
|
|
name: mode
|
|
};
|
|
}
|
|
),
|
|
// @ts-ignore
|
|
params: [
|
|
...(value.mark === "line"
|
|
? [
|
|
{
|
|
name: "hoverPlot",
|
|
select: {
|
|
clear: "mouseout",
|
|
fields: color ? [color] : [],
|
|
nearest: true,
|
|
on: "mouseover",
|
|
type: "point" as "point"
|
|
},
|
|
views: ["hover"]
|
|
},
|
|
{
|
|
name: "hover",
|
|
select: {
|
|
clear: "mouseout",
|
|
nearest: true,
|
|
on: "mouseover",
|
|
type: "point" as "point"
|
|
},
|
|
views: ["hover"]
|
|
}
|
|
]
|
|
: []),
|
|
...(_selectable
|
|
? [
|
|
{
|
|
name: "brush",
|
|
select: {
|
|
encodings: ["x"],
|
|
mark: { fill: "gray", fillOpacity: 0.3, stroke: "none" },
|
|
type: "interval" as "interval"
|
|
},
|
|
views: ["plot"]
|
|
}
|
|
]
|
|
: [])
|
|
],
|
|
width: chart_element.offsetWidth,
|
|
title: title || undefined
|
|
};
|
|
/* eslint-enable complexity */
|
|
}
|
|
|
|
export let label = "Textbox";
|
|
export let elem_id = "";
|
|
export let elem_classes: string[] = [];
|
|
export let visible = true;
|
|
export let show_label: boolean;
|
|
export let scale: number | null = null;
|
|
export let min_width: number | undefined = undefined;
|
|
export let loading_status: LoadingStatus | undefined = undefined;
|
|
export let height: number | undefined = undefined;
|
|
</script>
|
|
|
|
<Block
|
|
{visible}
|
|
{elem_id}
|
|
{elem_classes}
|
|
{scale}
|
|
{min_width}
|
|
allow_overflow={false}
|
|
padding={true}
|
|
{height}
|
|
>
|
|
{#if loading_status}
|
|
<StatusTracker
|
|
autoscroll={gradio.autoscroll}
|
|
i18n={gradio.i18n}
|
|
{...loading_status}
|
|
on:clear_status={() => gradio.dispatch("clear_status", loading_status)}
|
|
/>
|
|
{/if}
|
|
<BlockTitle {root} {show_label} info={undefined}>{label}</BlockTitle>
|
|
{#if value && is_browser}
|
|
<div bind:this={chart_element}></div>
|
|
|
|
{#if caption}
|
|
<p class="caption">{caption}</p>
|
|
{/if}
|
|
{:else}
|
|
<Empty unpadded_box={true}><LabelIcon /></Empty>
|
|
{/if}
|
|
</Block>
|
|
|
|
<style>
|
|
div {
|
|
width: 100%;
|
|
}
|
|
:global(#vg-tooltip-element) {
|
|
font-family: var(--font) !important;
|
|
font-size: var(--text-xs) !important;
|
|
box-shadow: none !important;
|
|
background-color: var(--block-background-fill) !important;
|
|
border: 1px solid var(--border-color-primary) !important;
|
|
color: var(--body-text-color) !important;
|
|
}
|
|
:global(#vg-tooltip-element .key) {
|
|
color: var(--body-text-color-subdued) !important;
|
|
}
|
|
.caption {
|
|
padding: 0 4px;
|
|
margin: 0;
|
|
text-align: center;
|
|
}
|
|
</style>
|