Skip to content

feat: add native Svelte runtime - #398

Draft
maxffarrell wants to merge 11 commits into
1weiho:mainfrom
maxffarrell:codex/add-svelte-support
Draft

feat: add native Svelte runtime#398
maxffarrell wants to merge 11 commits into
1weiho:mainfrom
maxffarrell:codex/add-svelte-support

Conversation

@maxffarrell

@maxffarrell maxffarrell commented Aug 8, 2026

Copy link
Copy Markdown

Summary

  • move framework-neutral config, types, discovery, filesystem helpers, editing codecs, export plumbing, and shared utilities to @open-slide/shared
  • move the existing React implementation and runtime CLI to @open-slide/react without changing its viewer, presenter, inspector, editing, export, or HMR behavior
  • keep @open-slide/core as a compatibility facade that installs React transitively and preserves the legacy root, subpath, environment, and open-slide binary contracts
  • add @open-slide/svelte with native Svelte mounting, authoring components, viewer and presenter modes, steps, transitions and morphs, HMR, source editing, comments, assets, themes, notes, and HTML/PDF/PPTX exports
  • add --framework react|svelte to @open-slide/cli; React remains the default and both templates ship in the published package
  • add a Svelte dogfood app while moving new React projects and docs to @open-slide/react

Migration

Existing React workspaces require no changes. Updating @open-slide/core automatically installs @open-slide/react and @open-slide/shared; existing imports, TypeScript environment references, Vite configuration, package scripts, and the open-slide command continue working.

Core remains on the 1.x line as a compatibility package, so current compatible installations receive the migration automatically. New React projects use @open-slide/react directly, and inspector source edits preserve existing @open-slide/core imports in legacy projects.

Verification

  • Biome: passed; only existing broken-symlink and optional-chain warnings remain
  • package typechecks: shared, core, React, Svelte, and CLI passed; Svelte reports 0 errors and 0 warnings
  • package builds: shared, core, React, Svelte, and CLI passed
  • unit suite: 321/321 passed
  • legacy-core React Playwright suite: 72/72 passed using a fixture that declares only @open-slide/core and keeps the old imports and binary
  • Svelte Playwright suite: 32/32 passed across viewer, presenter, editing, comments, assets, themes, HMR, build flags, morphs, and exports
  • packed shared, React, and core artifacts successfully ran their prepack builds; core rewrites workspace dependencies to published semver dependencies and contains the compatibility binary and all legacy subpaths
  • packed and workspace compatibility checks verified the legacy CLI and root, /vite, /locale, /files, /http, and /env contracts

The root Turbo wrapper can stall locally before starting package commands because of the checkout's pnpm/Corepack wrapper, so the underlying package gates were also run directly. The unchanged Next.js marketing build stall reproduces independently of this refactor.

Notes

The Svelte implementation targets functional workflow parity while remaining idiomatic Svelte; its internal component structure and exact inspector UI are not intended to mirror the React implementation line for line.

@vercel

vercel Bot commented Aug 8, 2026

Copy link
Copy Markdown

@maxffarrell is attempting to deploy a commit to the open-slide Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai

coderabbitai Bot commented Aug 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 66087c28-466e-45fe-8cd6-302bc47f7ed5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant