GitHub's `ubuntu-latest` runners now resolve to Ubuntu 26.04, and `playwright install --with-deps chromium` fails there on Playwright 1.58.2: Cannot install dependencies for ubuntu26.04-x64 with Playwright 1.58.2! Error: ERROR: Playwright does not support chromium on ubuntu26.04-x64 Ubuntu 26.04 support was added in Playwright 1.61, so bump the pinned version in all integration packages to the latest stable (1.64.1). This fixes the `integration` job in the react, vue, svelte, solid and solid-2 workflows. Claude-Session: https://claude.ai/code/session_01G9u8FfWcVzm87hKho1ZQcc Co-authored-by: Claude <noreply@anthropic.com>
Lucide Solid 2 integrations
These fixtures exercise the built @lucide/solid package in a real Solid 2 (release candidate) consumer app.
The vite fixture was scaffolded with the Solid 2.0 basic template:
npm create solid@latest -- --solid -t basic --ts
It keeps the template's turnkey client mode (@solidjs/vite-plugin with start: true, filesystem-routing and @solidjs/router), with the demo pages replaced by the icon showcase. The template's tooling versions are aligned with the workspace: TypeScript 6 and the workspace's pinned Vitest 4.
There is no SolidStart fixture yet, because SolidStart still targets Solid 1. The Solid 1 fixtures for lucide-solid live in ../lucide-solid.
Every fixture runs three checks:
- a framework production build;
- TypeScript with
noEmit; - Vitest Browser Mode in Chromium.
From the repository root, install Chromium once and run the complete suite:
pnpm --filter @lucide/integration-solid-2-vite exec playwright install chromium
pnpm test:integrations:solid-2
The fixtures depend on @lucide/solid through workspace:*, but import only its public package entry points. The root command builds @lucide/solid before running any consumer checks.
Two TypeScript projects per fixture
tsconfig.json typechecks the fixture's own sources with skipLibCheck: true.
tsconfig.declarations.json compiles only src/IconShowcase.tsx (the file that imports the public entry points) with skipLibCheck: false and no ambient types. This makes tsc read the declarations shipped in dist/types, so a .d.ts that points at a file the build never emitted fails the check. Both run under pnpm typecheck.
file-routes.d.ts is generated by filesystem-routing on every build and is committed so tsc can resolve virtual:file-routes before a build has run.