From a25fa8809eaa64e5e8d02ffce8a9498c263eeb7b Mon Sep 17 00:00:00 2001 From: David Di Biase <1168397+davedbase@users.noreply.github.com> Date: Mon, 20 Apr 2026 17:00:40 -0400 Subject: [PATCH 1/7] First test of migrating to 2.0 --- .changeset/fullscreen-solid-2-migration.md | 28 +++++++ packages/fullscreen/README.md | 68 +++++++++++------ packages/fullscreen/package.json | 8 +- packages/fullscreen/src/index.ts | 68 +++++++++-------- packages/fullscreen/test/index.test.ts | 63 +++++++++------- packages/fullscreen/test/setup.ts | 15 ++-- packages/utils/package.json | 6 +- packages/utils/src/index.ts | 2 +- pnpm-lock.yaml | 88 +++++++++++++++++----- 9 files changed, 237 insertions(+), 109 deletions(-) create mode 100644 .changeset/fullscreen-solid-2-migration.md diff --git a/.changeset/fullscreen-solid-2-migration.md b/.changeset/fullscreen-solid-2-migration.md new file mode 100644 index 000000000..65658d07b --- /dev/null +++ b/.changeset/fullscreen-solid-2-migration.md @@ -0,0 +1,28 @@ +--- +"@solid-primitives/fullscreen": major +--- + +Migrate `@solid-primitives/fullscreen` to Solid.js 2.0 (beta.7). + +**Breaking changes:** + +- Peer dependency updated from `solid-js ^1.6.12` to `solid-js ^2.0.0-beta.7` and `@solidjs/web ^2.0.0-beta.7`. +- The `use:createFullscreen` JSX directive (Solid 1.x `use:` namespace) is removed. Use the new `fullscreen()` ref directive factory instead: + + ```tsx + // Before (Solid 1.x) +
+ + // After (Solid 2.0) + + ``` + +**New exports:** + +- `fullscreen(active?, options?)` — ref directive factory that wraps `createFullscreen` for direct use on JSX elements via the `ref` prop. + +**Internal changes:** + +- `isServer` now imported from `@solidjs/web` (was `solid-js/web`). +- `createEffect` updated to Solid 2.0 split compute/effect signature. +- Test mock fixed: `document.fullscreenElement` is now a dynamic getter reflecting current fullscreen state; `document.exitFullscreen` now dispatches `fullscreenchange` matching browser behaviour. diff --git a/packages/fullscreen/README.md b/packages/fullscreen/README.md index c224fb7b8..e368c16a7 100644 --- a/packages/fullscreen/README.md +++ b/packages/fullscreen/README.md @@ -8,56 +8,78 @@ [](https://www.npmjs.com/package/@solid-primitives/fullscreen) [](https://github.com/solidjs-community/solid-primitives#contribution-process) -Creates a primitive wrapper around the Fullscreen API that can either be used as a directive or a primitive. +Reactive wrapper around the [Fullscreen API](https://developer.mozilla.org/en-US/docs/Web/API/Fullscreen_API) that integrates with Solid's reactive system. ## Installation -``` +```bash npm install @solid-primitives/fullscreen # or -yarn add @solid-primitives/fullscreen +pnpm add @solid-primitives/fullscreen ``` ## How to use it -### createFullScreen +### `createFullscreen` + +Reactively toggles fullscreen on a target element. Returns an `Accessor