* thanks o3
* add changeset
* more
* make events work
* moreeeeeee
* prettier
* nb
* add changeset
* Update utils.py (#10773)
### Description
This pull request updates the `get_node_path` function in the `gradio/utils.py` file to handle scenarios where the `which` command is missing. The function has been improved by splitting the error handling into two separate `try` blocks for better granularity and robustness.
### Changes Made
- Split the `try` block into two separate `try` blocks for handling Windows and Unix-like systems.
- Added error handling for `FileNotFoundError` in addition to `subprocess.CalledProcessError`.
### Rationale
The original implementation did not properly handle the case when the `which` command is missing. This update ensures the function gracefully handles such scenarios and continues to check other possible locations for the `node` executable.
* fix: latex rendering of markdown (#10765)
* fix: latex rendering of markdown
* add changeset
---------
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: Dawood Khan <dawoodkhan82@gmail.com>
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
* more
* Tweak Image Editor UI (#10779)
* tweak layers ui
* upload alignment and text colour
* change check icon
* zoom tweaks
* tweak layers panel
* changes
* more
* fix image inputs
* more fix
* fix
* fix loading layer via events
* fix loading layer via events
* allow developers to control layers more granularly
* disable pan button when at min zoom
* Update image_editor.py
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
* show visual indicator for outpainting region
* ensure initial image values work
* fix cropped image placement
* fix crop intiialisation options
* demos and fix brush opacity options
* fix layer_options updates and add demo
* more
* fix webcam
* fix
* fix
* improve color swatches
* fix canvas resizing
* simplify crop
* fix crop yet again
* rework controls
* scripts
* tweaks
* tweaks
* fix things
* Add two more demos for `gr.ImageEditor` (#10946)
* changes
* sketchpad
* changes
* various fixed
* generate notebooks
* update changes
* lockfile
* format code
* notebooks
* tweaks
* fix test
* fix notebooks
* changes
* fix storybook
* changes
* interface
* remove redo/undo story
* fix pytest
* changes
* push
* fiiiiiix
* tweaks
* fix
* fix thingy
* tweaks
* changeset
* add changeset
* fix
* fix
* website build issue
* add changeset
* add layeroptions to docs
* formatting
* fix
---------
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: Hannah <hannahblair@users.noreply.github.com>
Co-authored-by: Pablo Speciale <pablospe@users.noreply.github.com>
Co-authored-by: Col0ring <47329987+Col0ring@users.noreply.github.com>
Co-authored-by: Dawood Khan <dawoodkhan82@gmail.com>
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
Co-authored-by: aliabd <ali.si3luwa@gmail.com>
* map search-filtered row indices to original data indices in SelectData events
* add changeset
* add test
* fix test
* fix test
* nb
* fix test
* display selected cell borders in search results
* fix test
* more robust focus
* nb
---------
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
* Fix#10764: Automatic sorting of labels in plots
Originally, the bug appeared to be isolated to
gr.BarPlot, but it turns out that it affects all
gr.NativePlot components, including BarPlot,
LinePlot, and ScatterPlot.
Although the data does not seem sorted in the
program's flow, it gets sorted when the Svelte
file is rendered. This issue occurs because the
reformat_sort function in index.svelte of
NativePlot returns undefined when sort is not
specified, which, during compilation, is treated
as void 0. This implicitly triggers default
sorting. To resolve this, I changed undefined to
null, ensuring that the compiled code handles it
as null, resulting in unsorted data being
displayed in the browser.
* add changeset
---------
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
* add status docs
* fix
* add changeset
* generate and use theme.css
* add to pnpm build
* save theme.css
* formatting
* add back to gitignore
---------
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
* Check if SharedWorker is available in the current runtime, e.g. Chrome for Androind, and fallback to DedicatedWorker if not available
* add changeset
* add changeset
* trigger website build
* add changeset
* formatting
---------
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: Ali Abdalla <ali.si3luwa@gmail.com>
* Fix#10268: EventData scaling more than Image in fullscreen mode
Previously, when an image smaller than the screen size was displayed
in gr.Image and the fullscreen button was pressed, the image remained
at its original size. However, the surrounding div container scaled
as if the image had expanded to fullscreen. This caused the EventData
to detect clicks outside the image but within the expanded container.
To fix this, the image container styles were removed, ensuring that
the container always matches the image size, whether scaled or not.
This guarantees that EventData accurately detects clicks within the
correct boundaries.
This fix was applied to both ImageUploader and ImagePreview to ensure
consistent behavior across the gr.Image component.
* add changeset
---------
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
Co-authored-by: Hannah <hannahblair@users.noreply.github.com>
* Fix#9967: interactive=False not disabling buttons
In the MultimodalTextbox component, when
interactive=False, the submit button remained
active allowing users to submit inputs without
being able to edit them. To fix this, I added
restrictions to disable the submit, file upload
and microphone buttons when interactive=False.
* format
* add changeset
---------
Co-authored-by: Abubakar Abid <abubakar@huggingface.co>
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
* Fix route_utils.get_api_call_path() to strip only the trailing slash
* Enhance test_get_api_call_path_queue_join
* add changeset
* Fix typo
* Fix comment
* Refactoring; use request.url's method instead of httpx's
* Fix get_api_call_path() to search the target string only in url.path because it doesn't have to match in other parts in the URL string
* Enhance test_get_api_call_path_generic_call
* add changeset
---------
Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>