From d00b10721d0899d8318d3d1455bdd549bbe048ba Mon Sep 17 00:00:00 2001 From: akin01 Date: Fri, 2 Oct 2026 21:16:28 +0700 Subject: [PATCH 1/6] feat: migrate core workspace to SolidJS v2.0 - Bump catalog dependencies to SolidJS v2.0 (`solid-js@^2.0.0-rc.0`, `@solidjs/web@^2.0.0-rc.0`, `@solidjs/vite-plugin@^2.0.0-rc.0`). - Update JSX namespace resolution to `@solidjs/web` across tsconfig presets and build configs. - Migrate component prop utilities from `splitProps` to `omit` and replace `attr:` namespace prefixes with standard HTML attributes. - Align client preview entrypoint with Solid 2.0 DOM rendering. --- packages/render/src/entrypoints.spec.tsx | 2 +- packages/render/src/shared/compile.spec.tsx | 2 +- packages/render/src/shared/render.spec.tsx | 27 +- .../src/shared/solid-js-web-server.d.ts | 8 - packages/render/tsdown.config.ts | 16 +- packages/render/vitest.config.ts | 3 +- packages/render/vitest.e2e.config.ts | 3 +- packages/solid-email/src/client/index.ts | 19 +- .../solid-email/src/components/body/body.tsx | 10 +- .../src/components/body/margin-properties.ts | 2 +- .../src/components/button/button.tsx | 18 +- packages/solid-email/src/components/client.ts | 18 - .../src/components/code-block/code-block.tsx | 28 +- .../components/code-inline/code-inline.tsx | 22 +- .../src/components/column/column.spec.tsx | 4 +- .../src/components/container/container.tsx | 10 +- .../src/components/heading/heading.client.tsx | 45 - .../src/components/heading/heading.tsx | 23 +- .../solid-email/src/components/html/html.tsx | 2 +- .../src/components/img/img.spec.tsx | 2 +- .../src/components/markdown/markdown.tsx | 16 +- .../src/components/preview/preview.tsx | 15 +- .../solid-email/src/components/row/row.tsx | 10 +- .../src/components/section/section.tsx | 10 +- .../src/components/shared.spec.tsx | 7 +- .../solid-email/src/components/shared.tsx | 21 +- packages/solid-email/src/render-shim.d.ts | 15 +- packages/solid-email/tsdown.config.ts | 17 +- packages/solid-email/vitest.config.ts | 7 +- packages/tsconfig/package.json | 3 + packages/tsconfig/solid-library.json | 2 +- pnpm-lock.yaml | 4800 +++++++++++------ pnpm-workspace.yaml | 54 +- 33 files changed, 3312 insertions(+), 1929 deletions(-) delete mode 100644 packages/render/src/shared/solid-js-web-server.d.ts delete mode 100644 packages/solid-email/src/components/client.ts delete mode 100644 packages/solid-email/src/components/heading/heading.client.tsx diff --git a/packages/render/src/entrypoints.spec.tsx b/packages/render/src/entrypoints.spec.tsx index ede4f4e..240dd75 100644 --- a/packages/render/src/entrypoints.spec.tsx +++ b/packages/render/src/entrypoints.spec.tsx @@ -1,4 +1,4 @@ -import type { JSX } from 'solid-js'; +import type { JSX } from '@solidjs/web'; import { describe, expect, it } from 'vitest'; import { render as browserRender, diff --git a/packages/render/src/shared/compile.spec.tsx b/packages/render/src/shared/compile.spec.tsx index d968483..1931cc7 100644 --- a/packages/render/src/shared/compile.spec.tsx +++ b/packages/render/src/shared/compile.spec.tsx @@ -1,5 +1,5 @@ import type { FormatCallback } from '@solid-email/html-to-text'; -import type { JSX } from 'solid-js'; +import type { JSX } from '@solidjs/web'; import { describe, expect, it, vi } from 'vitest'; import { compile, compileSync } from './compile'; import { Slot, slot } from './slots'; diff --git a/packages/render/src/shared/render.spec.tsx b/packages/render/src/shared/render.spec.tsx index 2c42c40..6950a3a 100644 --- a/packages/render/src/shared/render.spec.tsx +++ b/packages/render/src/shared/render.spec.tsx @@ -1,4 +1,5 @@ -import { createResource, type JSX, Suspense } from 'solid-js'; +import type { JSX } from '@solidjs/web'; +import { createMemo, Loading } from 'solid-js'; import { describe, expect, it } from 'vitest'; import { render, renderSync } from './render'; import { pretty } from './utils/pretty'; @@ -12,7 +13,7 @@ function Throwing(): JSX.Element { } function AsyncGreeting() { - const [greeting] = createResource(() => wait('Hello async')); + const greeting = createMemo(() => wait('Hello async')); return {greeting()}; } @@ -143,13 +144,13 @@ describe('render', () => { it('awaits async Solid SSR content', async () => { const html = await render(() => ( - loading}> + loading}> - + )); expect(html).toContain('Hello async'); expect(html).not.toContain('loading'); - expect(html).not.toContain('