Compare commits

..
Author SHA1 Message Date
Chris Tate 6490039bce Merge remote-tracking branch 'origin/main' into ctate/pdf 2026-02-20 02:03:32 -06:00
Chris Tate ef63277b9b fix 2026-02-20 01:56:15 -06:00
Chris Tate 1c958b61da fix CI 2026-02-20 01:44:43 -06:00
Chris Tate 1b301ff6cc fixes 2026-02-20 01:29:10 -06:00
Chris Tate 29bcab378a fixes 2026-02-20 01:18:43 -06:00
Chris Tate 70179b0051 fixes 2026-02-20 01:12:12 -06:00
Chris Tate 2821456642 fixes 2026-02-20 01:06:39 -06:00
Chris Tate 170a03c304 3 panes 2026-02-20 01:01:50 -06:00
Chris Tate 9ce88b8646 shadcn 2026-02-20 00:58:46 -06:00
Chris Tate f6855f1283 fixes 2026-02-20 00:41:44 -06:00
Chris Tate 094708c0b7 fixes 2026-02-20 00:22:59 -06:00
Chris Tate 826c37af5a fixes 2026-02-19 22:12:46 -06:00
Chris Tate b676c11f8f ai gateway 2026-02-19 21:40:44 -06:00
Chris Tate 69526126f4 fixes 2026-02-19 21:29:02 -06:00
Chris Tate 4db0994d14 pdf example 2026-02-19 21:01:04 -06:00
Chris Tate 2e83a4e005 pdf 2026-02-19 20:51:00 -06:00
Chris Tate cbb7ca1f5e no-ai 2026-02-19 19:48:16 -06:00
16 changed files with 7 additions and 166 deletions
-1
View File
@@ -6,7 +6,6 @@
[
"@json-render/core",
"@json-render/react",
"@json-render/react-pdf",
"@json-render/shadcn",
"@json-render/react-native",
"@json-render/remotion",
@@ -4,68 +4,6 @@ export const metadata = { title: "Changelog" }
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
February 2026
-7
View File
@@ -1,12 +1,5 @@
# @json-render/codegen
## 0.8.0
### Patch Changes
- Updated dependencies [09376db]
- @json-render/core@0.8.0
## 0.7.0
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@json-render/codegen",
"version": "0.8.0",
"version": "0.7.0",
"license": "Apache-2.0",
"description": "Utilities for generating code from json-render UI trees",
"keywords": [
-27
View File
@@ -1,32 +1,5 @@
# @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
### Minor Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@json-render/core",
"version": "0.8.0",
"version": "0.7.0",
"license": "Apache-2.0",
"description": "JSON becomes real things. Define your catalog, register your components, let AI generate.",
"keywords": [
-7
View File
@@ -1,12 +1,5 @@
# @json-render/react-native
## 0.8.0
### Patch Changes
- Updated dependencies [09376db]
- @json-render/core@0.8.0
## 0.7.0
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@json-render/react-native",
"version": "0.8.0",
"version": "0.7.0",
"license": "Apache-2.0",
"description": "React Native renderer for @json-render/core. JSON becomes React Native components.",
"keywords": [
-33
View File
@@ -1,33 +0,0 @@
# @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 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@json-render/react-pdf",
"version": "0.8.0",
"version": "0.7.0",
"license": "Apache-2.0",
"description": "React PDF renderer for @json-render/core. JSON becomes PDF documents.",
"keywords": [
-7
View File
@@ -1,12 +1,5 @@
# @json-render/react
## 0.8.0
### Patch Changes
- Updated dependencies [09376db]
- @json-render/core@0.8.0
## 0.7.0
### Minor Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@json-render/react",
"version": "0.8.0",
"version": "0.7.0",
"license": "Apache-2.0",
"description": "React renderer for @json-render/core. JSON becomes React components.",
"keywords": [
-7
View File
@@ -1,12 +1,5 @@
# @json-render/remotion
## 0.8.0
### Patch Changes
- Updated dependencies [09376db]
- @json-render/core@0.8.0
## 0.7.0
### Patch Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@json-render/remotion",
"version": "0.8.0",
"version": "0.7.0",
"license": "Apache-2.0",
"description": "Remotion renderer for @json-render/core. JSON becomes video compositions.",
"keywords": [
-8
View File
@@ -1,13 +1,5 @@
# @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
### Minor Changes
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@json-render/shadcn",
"version": "0.8.0",
"version": "0.7.0",
"license": "Apache-2.0",
"description": "shadcn/ui component library for @json-render/core. JSON becomes beautiful Tailwind-styled React components.",
"keywords": [