mirror of
https://github.com/vercel-labs/json-render.git
synced 2026-10-02 12:00:58 +08:00
Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0a404302ef | ||
|
|
09376db2f6 |
@@ -6,6 +6,7 @@
|
|||||||
[
|
[
|
||||||
"@json-render/core",
|
"@json-render/core",
|
||||||
"@json-render/react",
|
"@json-render/react",
|
||||||
|
"@json-render/react-pdf",
|
||||||
"@json-render/shadcn",
|
"@json-render/shadcn",
|
||||||
"@json-render/react-native",
|
"@json-render/react-native",
|
||||||
"@json-render/remotion",
|
"@json-render/remotion",
|
||||||
|
|||||||
@@ -4,6 +4,68 @@ export const metadata = { title: "Changelog" }
|
|||||||
|
|
||||||
Notable changes and updates to json-render.
|
Notable changes and updates to json-render.
|
||||||
|
|
||||||
|
## v0.8.0
|
||||||
|
|
||||||
|
February 2026
|
||||||
|
|
||||||
|
### New: `@json-render/react-pdf`
|
||||||
|
|
||||||
|
PDF renderer for json-render, powered by [`@react-pdf/renderer`](https://react-pdf.org/). Define catalogs and registries the same way as `@json-render/react`, but output PDF documents instead of web UI.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install @json-render/core @json-render/react-pdf
|
||||||
|
```
|
||||||
|
|
||||||
|
```typescript
|
||||||
|
import { renderToBuffer } from "@json-render/react-pdf";
|
||||||
|
import type { Spec } from "@json-render/core";
|
||||||
|
|
||||||
|
const spec: Spec = {
|
||||||
|
root: "doc",
|
||||||
|
elements: {
|
||||||
|
doc: { type: "Document", props: { title: "Invoice" }, children: ["page"] },
|
||||||
|
page: {
|
||||||
|
type: "Page",
|
||||||
|
props: { size: "A4" },
|
||||||
|
children: ["heading", "table"],
|
||||||
|
},
|
||||||
|
heading: {
|
||||||
|
type: "Heading",
|
||||||
|
props: { text: "Invoice #1234", level: "h1" },
|
||||||
|
children: [],
|
||||||
|
},
|
||||||
|
table: {
|
||||||
|
type: "Table",
|
||||||
|
props: {
|
||||||
|
columns: [
|
||||||
|
{ header: "Item", width: "60%" },
|
||||||
|
{ header: "Price", width: "40%", align: "right" },
|
||||||
|
],
|
||||||
|
rows: [
|
||||||
|
["Widget A", "$10.00"],
|
||||||
|
["Widget B", "$25.00"],
|
||||||
|
],
|
||||||
|
},
|
||||||
|
children: [],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const buffer = await renderToBuffer(spec);
|
||||||
|
```
|
||||||
|
|
||||||
|
Server-side rendering APIs:
|
||||||
|
|
||||||
|
- `renderToBuffer(spec)` -- render to an in-memory PDF buffer
|
||||||
|
- `renderToStream(spec)` -- render to a readable stream (pipe to HTTP response)
|
||||||
|
- `renderToFile(spec, path)` -- render directly to a file
|
||||||
|
|
||||||
|
15 standard components covering document structure (Document, Page), layout (View, Row, Column), content (Heading, Text, Image, Link), data (Table, List), decorative (Divider, Spacer), and page-level (PageNumber).
|
||||||
|
|
||||||
|
Supports custom catalogs with `defineRegistry`, server-safe imports via `@json-render/react-pdf/server`, and full context support (state, visibility, actions, validation, repeat scopes).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## v0.7.0
|
## v0.7.0
|
||||||
|
|
||||||
February 2026
|
February 2026
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @json-render/codegen
|
# @json-render/codegen
|
||||||
|
|
||||||
|
## 0.8.0
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [09376db]
|
||||||
|
- @json-render/core@0.8.0
|
||||||
|
|
||||||
## 0.7.0
|
## 0.7.0
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@json-render/codegen",
|
"name": "@json-render/codegen",
|
||||||
"version": "0.7.0",
|
"version": "0.8.0",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"description": "Utilities for generating code from json-render UI trees",
|
"description": "Utilities for generating code from json-render UI trees",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
@@ -1,5 +1,32 @@
|
|||||||
# @json-render/core
|
# @json-render/core
|
||||||
|
|
||||||
|
## 0.8.0
|
||||||
|
|
||||||
|
### Minor Changes
|
||||||
|
|
||||||
|
- 09376db: New `@json-render/react-pdf` package for generating PDF documents from JSON specs.
|
||||||
|
|
||||||
|
### New: `@json-render/react-pdf`
|
||||||
|
|
||||||
|
PDF renderer for json-render, powered by `@react-pdf/renderer`. Define catalogs and registries the same way as `@json-render/react`, but output PDF documents instead of web UI.
|
||||||
|
- `renderToBuffer(spec)` — render a spec to an in-memory PDF buffer
|
||||||
|
- `renderToStream(spec)` — render to a readable stream (pipe to HTTP response)
|
||||||
|
- `renderToFile(spec, path)` — render directly to a file on disk
|
||||||
|
- `defineRegistry` / `createRenderer` — same API as `@json-render/react` for custom components
|
||||||
|
- `standardComponentDefinitions` — Zod-based catalog definitions (server-safe via `@json-render/react-pdf/catalog`)
|
||||||
|
- `standardComponents` — React PDF implementations for all standard components
|
||||||
|
- Server-safe import via `@json-render/react-pdf/server`
|
||||||
|
|
||||||
|
Standard components:
|
||||||
|
- **Document structure**: Document, Page
|
||||||
|
- **Layout**: View, Row, Column
|
||||||
|
- **Content**: Heading, Text, Image, Link
|
||||||
|
- **Data**: Table, List
|
||||||
|
- **Decorative**: Divider, Spacer
|
||||||
|
- **Page-level**: PageNumber
|
||||||
|
|
||||||
|
Includes full context support: state management, visibility conditions, actions, validation, and repeat scopes — matching the capabilities of `@json-render/react`.
|
||||||
|
|
||||||
## 0.7.0
|
## 0.7.0
|
||||||
|
|
||||||
### Minor Changes
|
### Minor Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@json-render/core",
|
"name": "@json-render/core",
|
||||||
"version": "0.7.0",
|
"version": "0.8.0",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"description": "JSON becomes real things. Define your catalog, register your components, let AI generate.",
|
"description": "JSON becomes real things. Define your catalog, register your components, let AI generate.",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @json-render/react-native
|
# @json-render/react-native
|
||||||
|
|
||||||
|
## 0.8.0
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [09376db]
|
||||||
|
- @json-render/core@0.8.0
|
||||||
|
|
||||||
## 0.7.0
|
## 0.7.0
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@json-render/react-native",
|
"name": "@json-render/react-native",
|
||||||
"version": "0.7.0",
|
"version": "0.8.0",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"description": "React Native renderer for @json-render/core. JSON becomes React Native components.",
|
"description": "React Native renderer for @json-render/core. JSON becomes React Native components.",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
@@ -0,0 +1,33 @@
|
|||||||
|
# @json-render/react-pdf
|
||||||
|
|
||||||
|
## 0.8.0
|
||||||
|
|
||||||
|
### Minor Changes
|
||||||
|
|
||||||
|
- 09376db: New `@json-render/react-pdf` package for generating PDF documents from JSON specs.
|
||||||
|
|
||||||
|
### New: `@json-render/react-pdf`
|
||||||
|
|
||||||
|
PDF renderer for json-render, powered by `@react-pdf/renderer`. Define catalogs and registries the same way as `@json-render/react`, but output PDF documents instead of web UI.
|
||||||
|
- `renderToBuffer(spec)` — render a spec to an in-memory PDF buffer
|
||||||
|
- `renderToStream(spec)` — render to a readable stream (pipe to HTTP response)
|
||||||
|
- `renderToFile(spec, path)` — render directly to a file on disk
|
||||||
|
- `defineRegistry` / `createRenderer` — same API as `@json-render/react` for custom components
|
||||||
|
- `standardComponentDefinitions` — Zod-based catalog definitions (server-safe via `@json-render/react-pdf/catalog`)
|
||||||
|
- `standardComponents` — React PDF implementations for all standard components
|
||||||
|
- Server-safe import via `@json-render/react-pdf/server`
|
||||||
|
|
||||||
|
Standard components:
|
||||||
|
- **Document structure**: Document, Page
|
||||||
|
- **Layout**: View, Row, Column
|
||||||
|
- **Content**: Heading, Text, Image, Link
|
||||||
|
- **Data**: Table, List
|
||||||
|
- **Decorative**: Divider, Spacer
|
||||||
|
- **Page-level**: PageNumber
|
||||||
|
|
||||||
|
Includes full context support: state management, visibility conditions, actions, validation, and repeat scopes — matching the capabilities of `@json-render/react`.
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [09376db]
|
||||||
|
- @json-render/core@0.8.0
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@json-render/react-pdf",
|
"name": "@json-render/react-pdf",
|
||||||
"version": "0.7.0",
|
"version": "0.8.0",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"description": "React PDF renderer for @json-render/core. JSON becomes PDF documents.",
|
"description": "React PDF renderer for @json-render/core. JSON becomes PDF documents.",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @json-render/react
|
# @json-render/react
|
||||||
|
|
||||||
|
## 0.8.0
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [09376db]
|
||||||
|
- @json-render/core@0.8.0
|
||||||
|
|
||||||
## 0.7.0
|
## 0.7.0
|
||||||
|
|
||||||
### Minor Changes
|
### Minor Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@json-render/react",
|
"name": "@json-render/react",
|
||||||
"version": "0.7.0",
|
"version": "0.8.0",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"description": "React renderer for @json-render/core. JSON becomes React components.",
|
"description": "React renderer for @json-render/core. JSON becomes React components.",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
@@ -1,5 +1,12 @@
|
|||||||
# @json-render/remotion
|
# @json-render/remotion
|
||||||
|
|
||||||
|
## 0.8.0
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [09376db]
|
||||||
|
- @json-render/core@0.8.0
|
||||||
|
|
||||||
## 0.7.0
|
## 0.7.0
|
||||||
|
|
||||||
### Patch Changes
|
### Patch Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@json-render/remotion",
|
"name": "@json-render/remotion",
|
||||||
"version": "0.7.0",
|
"version": "0.8.0",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"description": "Remotion renderer for @json-render/core. JSON becomes video compositions.",
|
"description": "Remotion renderer for @json-render/core. JSON becomes video compositions.",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
# @json-render/shadcn
|
# @json-render/shadcn
|
||||||
|
|
||||||
|
## 0.8.0
|
||||||
|
|
||||||
|
### Patch Changes
|
||||||
|
|
||||||
|
- Updated dependencies [09376db]
|
||||||
|
- @json-render/core@0.8.0
|
||||||
|
- @json-render/react@0.8.0
|
||||||
|
|
||||||
## 0.7.0
|
## 0.7.0
|
||||||
|
|
||||||
### Minor Changes
|
### Minor Changes
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@json-render/shadcn",
|
"name": "@json-render/shadcn",
|
||||||
"version": "0.7.0",
|
"version": "0.8.0",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"description": "shadcn/ui component library for @json-render/core. JSON becomes beautiful Tailwind-styled React components.",
|
"description": "shadcn/ui component library for @json-render/core. JSON becomes beautiful Tailwind-styled React components.",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
|||||||
Reference in New Issue
Block a user