Conversation
|
@rickyraz is attempting to deploy a commit to the goodfuture's projects Team on Vercel. A member of the Team first needs to authorize it. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds native Solid 2 support to Boneyard through a new
boneyard-js/solidentrypoint and minimal Solid-aware Vite registry generation.The implementation follows the existing adapter and registry contracts while keeping the current React, Vue, Svelte, Preact, Angular, and CLI behavior unchanged.
Changes
Solid adapter
add
Skeleton,SkeletonView, andconfigureBoneyardsupport
SkeletonResultandResponsiveBonesintegrate with the existing shared
registerBonesregistry contractsupport container- and viewport-based responsive breakpoint selection
preserve fixture-based build capture behavior
preserve existing:
aria-busyaria-hiddenuse Solid 2 reactive primitives and ownership rather than React hooks or Solid 1 APIs
reuse the existing
AnimationStyletype in the Solid adapter; no core type export changes are introducedVite registry integration
add
solidtoBoneyardPluginOptions.frameworkauto-detect Solid projects using:
solid-js@solidjs/web@solidjs/vite-plugingenerate a Solid-compatible registry when Solid is selected or detected
import
registerBonesfromboneyard-jsfor Solid because the Solid entrypoint intentionally exposes only the Solid adapter APIavoid emitting React-specific
"use client"directives for SolidSolid build pipeline
Adds
scripts/build-solid.mjsusing:The build produces separate client and server artifacts:
This is necessary because the repository currently uses React's automatic JSX transform:
{ "jsx": "react-jsx" }Using the normal TypeScript output for the Solid adapter would emit React JSX helpers such as
jsxDEVandjsxs, which are not compatible with Solid 2.The dedicated Solid compiler keeps the existing TypeScript and framework build configuration unchanged.
Separate DOM and SSR artifacts are required because
@solidjs/webresolves different implementations depending on the environment. Browser consumers need the DOM runtime, while Node, Worker, Deno, and SSR consumers need the server runtime.Package exports
Adds:
with conditional exports for:
Solid dependencies added:
Tests
Adds coverage for:
ResizeObservercleanupSkeletonViewExisting adapter tests remain green.
Documentation
Adds documentation for:
boneyard-js/solidSkeletonSkeletonViewWhy not use
@solidjs/vite-plugin?@solidjs/vite-pluginis application-level Vite tooling. Boneyard needs to publish framework-compatible library artifacts, so the package build uses Solid's compiler directly.This keeps the library build independent from Vite while still allowing consumer Solid applications to configure the Solid Vite plugin normally.
Scope
This PR does not add CLI
--frameworkflags or CLI framework auto-detection.Solid detection and registry generation are limited to the Vite plugin in this PR. The existing CLI behavior remains unchanged.
The PR does not add
"use server"or"use client"handling. Boneyard only provides a universal Solid UI adapter and static skeleton artifacts; server functions and SSR application boundaries remain the responsibility of the consuming Solid application.Testing
pnpm --filter boneyard-js run build pnpm --filter boneyard-js run testVerified:
--conditions browseris required for Solid runtime tests because Bun otherwise resolves@solidjs/webto its server export.The package build runs before tests because Solid tests exercise the compiler-generated
dist/solid.jsartifact.