Skip to content

chore: merge main and solid2 (major conflicts)#696

Open
davedbase wants to merge 10 commits into
solid2from
solid2-rebased
Open

chore: merge main and solid2 (major conflicts)#696
davedbase wants to merge 10 commits into
solid2from
solid2-rebased

Conversation

@davedbase

Copy link
Copy Markdown

solid2(Solid 2.0 migration) had fallen behindmain, which picked up one large commit restructuring the docs app onto @kobalte/solidbase(new theme, filesystem-based sidebar, Tailwind v4, regenerated lockfile). Rebasing directly produced ~30 conflicts because both branches touched the same docs files and severalpackages/corefiles. Rather than rewrite the sharedsolid2branch (which other in-flight branches —v2/card, v2/steps, v2/tags-inputs, etc. — are based on and would need to force-push/rebase again), this rebase was done on a new branch, solid2-rebased, based off solid2and replayed ontoorigin/main. solid2` itself is untouched.

What changed

  • Docs app infra: removed the pre-solidbase docs files that main deleted (app.config.ts, tailwind.config.cjs, header.tsx, theme-selector.tsx, root.css, etc.) — solid2's edits to them were superseded by the new vite.config.ts/solidbase-theme/Layout.tsx. New component doc pages solid2 added (calendar, drawer, otp-field, resizable) were moved into main's new core/(1)components/ directory structure.
  • Docs example files: merged import-ordering/duplicate-import conflicts in combobox.tsx, radio-group.tsx, segmented-control.tsx, tabs.tsx, toggle-button.tsx, toggle-group.tsx, and CSS module dark-theme selector conflicts (kept [data-theme*="dark"], consistent with the rest of each file, over a stale [data-kb-theme="dark"]).
  • packages/core/src: resolved 8 files where main's pre-Solid-2.0 code (local.onChange pattern) conflicted with solid2's rewrite (mergedProps, omit(), JSX.ChangeEventHandlerUnion) — kept solid2's side throughout. One exception: kept a real bug fix from main's side in create-single-select-list-state.ts (guards against setSelectedKey(undefined) when a selection is cleared).
  • Root/package configs: merged package.json devDependencies (kept solid2's Solid-2.0-tested tooling versions — jsdom/vitest/vite/testing-library — over main's independently-bumped versions, since those weren't tested against the Solid 2.0 betas), packages/{core,tests,utils}/package.json peerDependencies (Solid 2.0 versions), pnpm-workspace.yaml overrides/allowBuilds/minimumReleaseAgeExclude (union of both, dropped main's solid-js: ">=1.9.14" override since that range excludes the 2.0.0-beta.15 prerelease), and tsconfig.json (jsxImportSource: @solidjs/web, moduleResolution: Bundler).
  • Follow-up fix commit (e57bb63a) for regressions the merge auto-resolved silently (no conflict markers, so easy to miss):
    • Root tsconfig.json had lost @testing-library/jest-dom from its types array (main's docs commit dropped it) — broke expect(...).toHaveAttribute(...) etc. across every test file in @kobalte/core.
    • apps/docs was still pinned to solid-js@1.8.15/no @solidjs/web, but now depends on @kobalte/core which requires Solid 2.0 — caused JSX.Element/RenderedElement type mismatches. Bumped both to 2.0.0-beta.15.
    • Regenerating pnpm-lock.yaml let @internationalized/date float from 3.4.0 to 3.12.2 (still satisfies the ^3.4.0 range but has breaking type changes). Pinned via pnpm-workspace.yaml override.

Verification

  • pnpm -F @kobalte/core -F @kobalte/utils -F @kobalte/tests typecheck — passes with the exact same (pre-existing, unrelated) failures as unmodified solid2 (verified by diffing error output against a baseline run on solid2 before any changes).
  • apps/docs typecheck — same, once the JSX mismatch was fixed; remaining errors are pre-existing (stale .d.ts output caused by a pre-existing number-field-input.tsx @ts-expect-error bug that also fails tsup's dts build on plain solid2).
  • pnpm -F @kobalte/core test466 passed, 112 skipped (pre-existing it.skips), 0 failing.

Notes for reviewer

  • solid2 was left untouched on purpose — branches built on it don't need to rebase yet. If this gets merged, solid2 (and anything based on it) should be rebased onto this branch's tip (or onto main after this merges) at some point.
  • The number-field-input.tsx unused-@ts-expect-error bug and the docs-app .d.ts-resolution gaps are pre-existing on solid2 and out of scope here — flagging in case they should be tracked separately.
  • No PR has been opened yet — branch is pushed to origin/solid2-rebased, waiting on a decision of whether to target solid2 or main.

jer3m01 and others added 4 commits July 18, 2026 07:04
Co-authored-by: ladybluenotes <hello@sarahgerrard.me>
Fixes issues surfaced by rebasing solid2 onto main's docs migration:
- restore @testing-library/jest-dom in tsconfig types (silently dropped
  by the docs migration, breaking test assertion types across the board)
- bump apps/docs to solid-js/@solidjs/web 2.0.0-beta.15 to match
  @kobalte/core's new peer deps, fixing JSX.Element mismatches
- pin @internationalized/date to 3.4.0 to avoid picking up an
  incompatible newer release when regenerating the lockfile
@netlify

netlify Bot commented Jul 18, 2026

Copy link
Copy Markdown

Deploy Preview for kobalte failed.

Name Link
🔨 Latest commit e57bb63
🔍 Latest deploy log https://app.netlify.com/projects/kobalte/deploys/6a5b7f347098830008db4b1c

@davedbase
davedbase changed the base branch from main to solid2 July 18, 2026 13:27
…olorFieldInput

Surfaced by combining the solid2 rebase with chore/remove-turbo:
switching @kobalte/core's @kobalte/utils dependency to workspace:*
(instead of a semver range) changed how composeEventHandlers'
generic type parameter gets inferred here, since props.onBlur keeps
the polymorphic ElementOf<T> generic while context.onBlur is
concretely typed to HTMLInputElement. Cast to any, matching the
same pattern used elsewhere in the codebase for this exact class
of generic/concrete EventHandlerUnion mismatch.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

2 participants