feat: support ipyvuetify 1 and 3 - #1193
Merged
Merged
Conversation
maartenbreddels
force-pushed
the
codex/ipyvuetify3-button
branch
from
July 28, 2026 17:51
725125d to
5535328
Compare
maartenbreddels
marked this pull request as ready for review
July 28, 2026 19:32
--- updated-dependencies: - dependency-name: shogo82148/actions-setup-redis dependency-version: 1.51.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Vuetify 3 matches group items by value and falls back to the item index when a button has none, so the value-based v_model never selected anything and clicking wrote an index into the user's reactive. Vuetify 2 keeps using the index, so the buttons are built unchanged there. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The unit matrix has no ipyvuetify dimension and every lock pins 1.x, so the IPYVUETIFY_V3 branches were never executed in CI - the toggle button regression sat in a unit test that could not turn red. Starts with the plain unit run; doctests and solara 2.0 mode can follow. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The alert was gated on vue3, but on vuetify 2 it is the only indicator left once the refresh dialog is dismissed (that sets needsRefresh=false, cancelAutoRefresh=true), so a disconnected app showed nothing at all. Vuetify 2 wants border=left, vuetify 3 border=start. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The vue3 job covered one of the thirty integration files, so almost nothing was verified in a browser on vuetify 3. Adds the router, error, menu and date input suites; the list grows as they stay green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The vue3 job covered one of the thirty integration files, so almost nothing was verified in a browser on vuetify 3. Adds the error, menu and router suites, which pass; the date input suite and the docs router test stay out until the vuetify 3 gaps behind them are fixed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The restored alert used the vue3 wording, which duplicates the text of the vuetify 2 refresh dialog - two elements with the same message, which also breaks the strict locator in the reconnect integration test. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…on vuetify 3 The options trait went from Any to Dict, so options=None raised and the vuetify 2 default page size changed from its own 10 to 20; only vuetify 3 needs the shaped object. The pivot table settings dialog kept the vuetify 2 activator binding on vuetify 3, where the wrapper needs v_bind=x.props like the dataframe card already does. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Probed the full suite on ipyvuetify 3: only nine tests fail (the date picker, four api docs pages, the docs router/routes listings and the reconnect dialog), so run everything except those instead of the four files picked by hand. The vue3 lock also still had ipyreact 0.6.0, which loses module hot reload after a kernel restart. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Running the whole suite there needs -n 2, which the job cannot parse without xdist. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Running the whole suite on ipyvuetify 3 leaves 109 passing tests and two failures that pass on ipyvuetify 1: the auth0 login flow and ipyreact module hot reload (with ipyreact 0.6.1, so not the stale module bug). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Vuetify 3 registers list groups and list items in one id namespace and
rejects duplicates ('Multiple nodes with the same ID'), which broke the
docs navigation: a section's overview child has the same path as its
group. Prefix the group ids, which also re-enables the six documentation
integration tests on ipyvuetify 3.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The duplicate list ids are fixed, but the documentation pages still fail there for a reason that is not diagnosed yet, so put them back on the list instead of leaving the job red. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
first_day_of_week is a vuetify 3 date picker prop too and style_ is a base trait, so dropping both there silently ignored two documented arguments. Only type= is gone in vuetify 3; view_mode is the closest thing and stays. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Vuetify 3 does not set role=menu on the overlay content, so the assertions could never match there even when the menu opens. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Vuetify 3 labels each day button with the full date, so its accessible name is never the day number the test looks for. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The vuetify 3 picker covers the point the outside-click used, and its menu has no scrim, so dismiss it with the keyboard there. Vuetify 3 also renders a second, aria-hidden label, which made the text assertion ambiguous. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The single date picker passes there now; the range variant still fails because selecting the second date does not clear the 'select two dates' label, which needs a look at how the vuetify 3 picker reports multiple values. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Lists the behavior changes that are not visible from the title, so they do not surprise anyone on ipyvuetify 1. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Review follow-ups: both vuetify 2 readers now guard the global like the vuetify 3 bundle already does, the date test keeps its strict label locator on vuetify 2, and the changelog covers the theme colors fix, the solara.Style cleanup and the vaex alert restyle. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
maartenbreddels
force-pushed
the
codex/ipyvuetify3-button
branch
from
August 4, 2026 11:52
fc317fb to
867fe5d
Compare
maartenbreddels
temporarily deployed
to
codex/ipyvuetify3-button - solara-stable PR #1193
August 4, 2026 11:52 — with
Render
Destroyed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
PR #1163 moves Solara wholesale to Vuetify 3 and a 2.x release. This branch keeps Solara 1.x compatible with both ipyvuetify 1.x and 3.x so the migration can be shipped and tested incrementally.
Validation
Notes
Strict component argument checking uses the companion Reacton typing branch
codex/fix-implements-mypy-signature. Runtime compatibility does not depend on that branch, but merging/releasing it is needed for clean CI to enforce the restored signatures.Packaging/version bumps, v3-only dependency minimums, integration selector rewrites, and v3 snapshots from #1163 are intentionally not included in this first 1.x-compatible pass.