gradio/js/nativeplot/Index.svelte
Abubakar Abid 6f95286337
5.0 dev -> main (#8843)
* 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 commit e2a26e6d28.

* 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 commit 9e2ae43330.

* Revert "changes"

This reverts commit 9f4c3eec0f.

* 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 commit a89fcb1134.

* 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 commit 4605302df4.

* 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 commit 855b012a20.

* 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 commit 4605302df4.

* 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 commit 855b012a20.

* 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 commit 2e43584a87.

---------

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 commit 278645b649.

* 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 in 98cbcaef82/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 commit 40c9e396a1.

* Revert "test"

This reverts commit 660a6b06ea.

* 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>
2024-10-08 22:17:17 -07:00

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>