Skip to content

@gpuix/solid@0.10.0

Choose a tag to compare

@remorses remorses released this 23 Sep 10:16
· 72 commits to main since this release

First release of @gpuix/solid, the official Solid 1 renderer for GPUIX. Solid apps run with normal Bun commands and a preload. No Vite, no wrapper CLI.

bun add --exact @gpuix/solid @gpuix/native solid-js
{
  "compilerOptions": {
    "jsx": "preserve",
    "jsxImportSource": "@gpuix/solid"
  }
}
# bunfig.toml
preload = ["@gpuix/solid/preload"]
import { createSignal } from 'solid-js'
import { render } from '@gpuix/solid'

const [count, setCount] = createSignal(0)

render(() => (
  <div onClick={() => setCount((value) => value + 1)}>
    <text>Count: {count()}</text>
  </div>
))

What ships

  1. Native motion and AnimatePresence, with the same API as @gpuix/react
  2. Headless Select, Combobox, and Tooltip
  3. Shared testing and automation from @gpuix/native/testing and @gpuix/native/automation
  4. Solid JSX declarations for every GPUIX element
  5. @gpuix/solid/preload for bun app.tsx, and @gpuix/solid/bun-plugin for production Bun.build calls:
import solidPlugin from '@gpuix/solid/bun-plugin'

await Bun.build({ entrypoints: ['./app.tsx'], target: 'bun', plugins: [solidPlugin] })

Pin @gpuix/solid and @gpuix/native to the same exact version.

Empty text nodes now take no layout space. Solid creates an empty placeholder for every dynamic hole (<Show>, <For>, {cond && <x/>}), and those no longer stretch flex columns.

The rest of 0.10.0 (live image uploads, scrollIntoView, window controls, promptForPaths, caret and paste fixes) is in the @gpuix/react@0.10.0 release. Those native features work from Solid too.