Skip to content

Svelte 5 migration – complete remaining components and tests #12947

@dataCenter430

Description

@dataCenter430
  • I have searched to see if a similar issue already exists.
    Hey @freddyaboulton 👋
    I’d really love to contribute to Gradio, I’ve been following it and it’s awesome to see how competitive and fast-moving it’s become.
    If this needs to be implemented, I’d be happy to take it on. Thanks!

Summary

Migrate the remaining Gradio frontend (Svelte) components and tests to Svelte 5 so the whole UI stack uses the new reactivity and runes APIs and we can remove temporary Python workarounds.

Context

  • Most js/ components are already on Svelte 5 (e.g. Video, Audio, Upload, Textbox, Button, Gallery, Dataset, FileExplorer, JSON, Label, Markdown, Model3D, Sidebar, StatusTracker, etc.).
  • Dataframe is still on the pre–Svelte 5 version. The Python gr.Dataframe component uses a temporary fix (__process_counts) for row_count/column_count until the dataframe JS component is migrated; see gradio/components/dataframe.py (TODO around lines 178–180).
  • Some component tests still use the deprecated $set pattern and need to be updated for Svelte 5 (e.g. js/video/Video.test.ts, js/gallery/Gallery.test.ts, js/dropdown/dropdown.test.ts).

Scope

  1. Migrate js/dataframe to Svelte 5 – update syntax (runes, $state, etc.), then remove __process_counts and the col_count fallback from gradio/components/dataframe.py.
  2. Fix tests that rely on deprecated $set – update any remaining tests that use $set to the Svelte 5–compatible approach so CI stays green.
  3. (Optional) Audit other js/ packages for any remaining non–Svelte 5 code or TODOs referencing the migration.

Success criteria

  • All Gradio JS components run on Svelte 5.
  • No temporary Python workarounds in dataframe.py for the old dataframe JS component.
  • No test failures or skipped tests due to Svelte 5 / $set deprecation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions