gradio/js
Yuichiro Tachibana (Tsuchiya) 67ddd40b4b
Lite v4 (#6398)
* Fix vite.config.js detecting the development mode

* Fix the imports of @gradio/theme in js/app/src/lite/index.ts

* [WIP] Install Pydantic V1 and mock the RootModel class

* Remove Wasm WebSocket implementations

* Move ASGI-HTTP conversion logic from the worker to the worker-proxy so we have fine controls on the ASGI connection at the worker-proxy level for the HTTP stream connection impl in the future

* Fix asgi-types.ts

* Create `WasmWorkerEventSource` and inject the `EventSource` creation in @gradio/client

* Mock Pydantic V2's BaseModel

* Fix Pydantic V1 installation

* Make <ImageUploader /> and <ImagePreview /> Wasm-compatible

* Create `getHeaderValue()`

* Create `<DownloadLink />` for Wasm-compatible download and fix `<ImagePreview />` to use it

* Make `gr.Video()` Wasm-compatible avoiding unnecessary execution of ffprobe

* Move `<DownloadLink />` to @gradio/wasm and use it in `<VideoPreview />` too

* Fix `<DownloadLink />` making `href` optional and adding `rel="noopener noreferrer"`

* Make the download button of `<StaticAudio>` and `<Code />` Wasm-compatible

* Make the download button of `<FilePreview />` Wasm-compatible

* Improve the RootModel mock class for `.model_dump()` and `.model_json_schame()` to work

* Make `<UploadProgress />` Wasm-compatible

* Fix `WorkerProxy.httpRequest()` to use `decodeURIComponent()` to process `path` and `query_string`

* Fix `<InteractiveAudio />` to make its upload feature Wasm-compatible

* [WIP] Revert "Make `<UploadProgress />` Wasm-compatible"

This reverts commit f96b4b7d5e92bb488cfe1939d25063366f714178.

* Fix Image styles

* Fix `<AudioPlayer />`'s `create_waveform()` to be Wasm-compatible

* add changeset

* formatting

* Fix js/image/shared/Image.svelte to render <img> immediately

* Fix js/image/shared/Image.svelte to avoid race condition

* Fix  js/image/shared/Image.svelte

* Fix  js/image/shared/Image.svelte

* Fix js/image/shared/Image.svelte removing unnecessary styles

* Fix js/video/shared/Video.svelte to use the passed  immediately without waiting for the async resolution

---------

Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: aliabd <ali.si3luwa@gmail.com>
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
2023-12-12 22:10:16 +00:00
..
_cdn-test chore(deps): update all non-major dependencies (#6537) 2023-11-22 18:04:27 -05:00
_spaces-test
_website Custom component gallery (#6477) 2023-12-11 11:59:36 -05:00
accordion chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
annotatedimage chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
app Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
atoms Allow passing height and width as string in Blocks.svelte (#6569) 2023-12-11 15:58:04 +01:00
audio Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
box chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
button chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
chatbot Allow passing height and width as string in Blocks.svelte (#6569) 2023-12-11 15:58:04 +01:00
checkbox chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
checkboxgroup chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
code Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
colorpicker Improve CSS token documentation in Storybook (#6399) 2023-12-08 16:23:14 +01:00
column
dataframe chore(deps): update dependency marked to v11 (#6603) 2023-12-08 11:32:42 +00:00
dataset chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
dropdown Improve CSS token documentation in Storybook (#6399) 2023-12-08 16:23:14 +01:00
fallback chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
file Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
fileexplorer Ensure checked files persist after FileExplorer rerenders (#6691) 2023-12-08 19:27:25 +01:00
form chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
gallery Fix the download button of the gr.Gallery() component to work (#6487) 2023-12-09 17:58:19 +01:00
group
highlightedtext chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
html chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
icons Improve CSS token documentation in Storybook (#6399) 2023-12-08 16:23:14 +01:00
image Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
imageeditor Improve CSS token documentation in Storybook (#6399) 2023-12-08 16:23:14 +01:00
json chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
label chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
lite
markdown chore(deps): update dependency marked to v11 (#6603) 2023-12-08 11:32:42 +00:00
model3D chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
number chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
plot chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
preview reload on css changes + fix css specificity (#6738) 2023-12-12 15:32:38 +00:00
radio chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
row Improve CSS token documentation in Storybook (#6399) 2023-12-08 16:23:14 +01:00
simpledropdown chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
simpletextbox chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
slider chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
state
statustracker chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
storybook chore: update versions (#6420) 2023-11-16 19:54:38 -08:00
tabitem
tabs
textbox chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
theme
tooltip
tootils chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
upload chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
uploadbutton chore: update versions (#6575) 2023-12-04 16:14:12 -08:00
utils
video Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
wasm Lite v4 (#6398) 2023-12-12 22:10:16 +00:00
.npmrc
jsx.d.ts
README.md

gradio-ui

This folder contains all of the Gradio UI and component source code.

setup

This folder is managed as 'monorepo' a multi-package repository which make dependency management very simple. In order to do this we use pnpm as our package manager.

Make sure pnpm is installed by following the installation instructions for your system.

You will also need node which you probably already have

running the application

Install all dependencies:

pnpm i

This will install the dependencies for all packages and link any local packages

local development

To develop locally, open two terminal tabs from the root of the repository.

Run the python test server, from the root directory:

cd demo/kitchen_sink
python run.py

This will start a development server on port 7860 that the web app is expecting.

Run the web app:

pnpm dev

building for production

Run the build:

pnpm build

This will create the necessary files in js/app/public and also in gradio/templates/frontend.

quality checks

The repos currently has two quality checks that can be run locally and are run in CI.

formatting

Formatting is handled by prettier to ensure consistent formatting and prevent style-focused conversations. Formatting failures will fails CI and should be reoslve before merging.

To check formatting:

pnpm format:check

If you have formatting failures then you can run the following command to fix them:

pnpm format:write

type checking

We use TypeScript to provide static types to javascript code. These checks are also run in CI.

to typecheck the code:

pnpm ts:check

ci checks

Currently the following checks are run in CI:

static checks

  • Format check (pnpm format:check)
  • Build css (pnpm css)
  • Build client (pnpm build)
  • Type check (pnpm ts:check)
  • Unit tests (pnpm test:run)

functional test

pip install -r demo/outbreak_forecast/requirements.txt
pnpm exec playwright install chromium
pnpm exec playwright install-deps chromium
pnpm test:browser:full