@json-render/react 0.2.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +253 -175
- package/dist/chunk-IGPI5WNB.mjs +52 -0
- package/dist/chunk-IGPI5WNB.mjs.map +1 -0
- package/dist/index.d.mts +138 -16
- package/dist/index.d.ts +138 -16
- package/dist/index.js +150 -36
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +109 -38
- package/dist/index.mjs.map +1 -1
- package/dist/schema.d.mts +106 -0
- package/dist/schema.d.ts +106 -0
- package/dist/schema.js +77 -0
- package/dist/schema.js.map +1 -0
- package/dist/schema.mjs +9 -0
- package/dist/schema.mjs.map +1 -0
- package/package.json +7 -2
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as _json_render_core from '@json-render/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The schema for @json-render/react
|
|
5
|
+
*
|
|
6
|
+
* Defines:
|
|
7
|
+
* - Spec: A flat tree of elements with keys, types, props, and children references
|
|
8
|
+
* - Catalog: Components with props schemas, and optional actions
|
|
9
|
+
*/
|
|
10
|
+
declare const schema: _json_render_core.Schema<{
|
|
11
|
+
spec: _json_render_core.SchemaType<"object", {
|
|
12
|
+
/** Root element key */
|
|
13
|
+
root: _json_render_core.SchemaType<"string", unknown>;
|
|
14
|
+
/** Flat map of elements by key */
|
|
15
|
+
elements: _json_render_core.SchemaType<"record", _json_render_core.SchemaType<"object", {
|
|
16
|
+
/** Unique key for this element */
|
|
17
|
+
key: _json_render_core.SchemaType<"string", unknown>;
|
|
18
|
+
/** Component type from catalog */
|
|
19
|
+
type: _json_render_core.SchemaType<"ref", string>;
|
|
20
|
+
/** Component props */
|
|
21
|
+
props: _json_render_core.SchemaType<"propsOf", string>;
|
|
22
|
+
/** Child element keys (flat reference) */
|
|
23
|
+
children: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
24
|
+
/** Parent element key (null for root) */
|
|
25
|
+
parentKey: _json_render_core.SchemaType<"string", unknown>;
|
|
26
|
+
/** Visibility condition */
|
|
27
|
+
visible: _json_render_core.SchemaType<"any", unknown>;
|
|
28
|
+
}>>;
|
|
29
|
+
}>;
|
|
30
|
+
catalog: _json_render_core.SchemaType<"object", {
|
|
31
|
+
/** Component definitions */
|
|
32
|
+
components: _json_render_core.SchemaType<"map", {
|
|
33
|
+
/** Zod schema for component props */
|
|
34
|
+
props: _json_render_core.SchemaType<"zod", unknown>;
|
|
35
|
+
/** Slots for this component. Use ['default'] for children, or named slots like ['header', 'footer'] */
|
|
36
|
+
slots: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
37
|
+
/** Description for AI generation hints */
|
|
38
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
39
|
+
}>;
|
|
40
|
+
/** Action definitions (optional) */
|
|
41
|
+
actions: _json_render_core.SchemaType<"map", {
|
|
42
|
+
/** Zod schema for action params */
|
|
43
|
+
params: _json_render_core.SchemaType<"zod", unknown>;
|
|
44
|
+
/** Description for AI generation hints */
|
|
45
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
46
|
+
}>;
|
|
47
|
+
}>;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Type for the React schema
|
|
51
|
+
*/
|
|
52
|
+
type ReactSchema = typeof schema;
|
|
53
|
+
/**
|
|
54
|
+
* Infer the spec type from a catalog
|
|
55
|
+
*/
|
|
56
|
+
type ReactSpec<TCatalog> = typeof schema extends {
|
|
57
|
+
createCatalog: (catalog: TCatalog) => {
|
|
58
|
+
_specType: infer S;
|
|
59
|
+
};
|
|
60
|
+
} ? S : never;
|
|
61
|
+
/** @deprecated Use `schema` instead */
|
|
62
|
+
declare const elementTreeSchema: _json_render_core.Schema<{
|
|
63
|
+
spec: _json_render_core.SchemaType<"object", {
|
|
64
|
+
/** Root element key */
|
|
65
|
+
root: _json_render_core.SchemaType<"string", unknown>;
|
|
66
|
+
/** Flat map of elements by key */
|
|
67
|
+
elements: _json_render_core.SchemaType<"record", _json_render_core.SchemaType<"object", {
|
|
68
|
+
/** Unique key for this element */
|
|
69
|
+
key: _json_render_core.SchemaType<"string", unknown>;
|
|
70
|
+
/** Component type from catalog */
|
|
71
|
+
type: _json_render_core.SchemaType<"ref", string>;
|
|
72
|
+
/** Component props */
|
|
73
|
+
props: _json_render_core.SchemaType<"propsOf", string>;
|
|
74
|
+
/** Child element keys (flat reference) */
|
|
75
|
+
children: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
76
|
+
/** Parent element key (null for root) */
|
|
77
|
+
parentKey: _json_render_core.SchemaType<"string", unknown>;
|
|
78
|
+
/** Visibility condition */
|
|
79
|
+
visible: _json_render_core.SchemaType<"any", unknown>;
|
|
80
|
+
}>>;
|
|
81
|
+
}>;
|
|
82
|
+
catalog: _json_render_core.SchemaType<"object", {
|
|
83
|
+
/** Component definitions */
|
|
84
|
+
components: _json_render_core.SchemaType<"map", {
|
|
85
|
+
/** Zod schema for component props */
|
|
86
|
+
props: _json_render_core.SchemaType<"zod", unknown>;
|
|
87
|
+
/** Slots for this component. Use ['default'] for children, or named slots like ['header', 'footer'] */
|
|
88
|
+
slots: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
89
|
+
/** Description for AI generation hints */
|
|
90
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
91
|
+
}>;
|
|
92
|
+
/** Action definitions (optional) */
|
|
93
|
+
actions: _json_render_core.SchemaType<"map", {
|
|
94
|
+
/** Zod schema for action params */
|
|
95
|
+
params: _json_render_core.SchemaType<"zod", unknown>;
|
|
96
|
+
/** Description for AI generation hints */
|
|
97
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
98
|
+
}>;
|
|
99
|
+
}>;
|
|
100
|
+
}>;
|
|
101
|
+
/** @deprecated Use `ReactSchema` instead */
|
|
102
|
+
type ElementTreeSchema = ReactSchema;
|
|
103
|
+
/** @deprecated Use `ReactSpec` instead */
|
|
104
|
+
type ElementTreeSpec<T> = ReactSpec<T>;
|
|
105
|
+
|
|
106
|
+
export { type ElementTreeSchema, type ElementTreeSpec, type ReactSchema, type ReactSpec, elementTreeSchema, schema };
|
package/dist/schema.d.ts
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import * as _json_render_core from '@json-render/core';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* The schema for @json-render/react
|
|
5
|
+
*
|
|
6
|
+
* Defines:
|
|
7
|
+
* - Spec: A flat tree of elements with keys, types, props, and children references
|
|
8
|
+
* - Catalog: Components with props schemas, and optional actions
|
|
9
|
+
*/
|
|
10
|
+
declare const schema: _json_render_core.Schema<{
|
|
11
|
+
spec: _json_render_core.SchemaType<"object", {
|
|
12
|
+
/** Root element key */
|
|
13
|
+
root: _json_render_core.SchemaType<"string", unknown>;
|
|
14
|
+
/** Flat map of elements by key */
|
|
15
|
+
elements: _json_render_core.SchemaType<"record", _json_render_core.SchemaType<"object", {
|
|
16
|
+
/** Unique key for this element */
|
|
17
|
+
key: _json_render_core.SchemaType<"string", unknown>;
|
|
18
|
+
/** Component type from catalog */
|
|
19
|
+
type: _json_render_core.SchemaType<"ref", string>;
|
|
20
|
+
/** Component props */
|
|
21
|
+
props: _json_render_core.SchemaType<"propsOf", string>;
|
|
22
|
+
/** Child element keys (flat reference) */
|
|
23
|
+
children: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
24
|
+
/** Parent element key (null for root) */
|
|
25
|
+
parentKey: _json_render_core.SchemaType<"string", unknown>;
|
|
26
|
+
/** Visibility condition */
|
|
27
|
+
visible: _json_render_core.SchemaType<"any", unknown>;
|
|
28
|
+
}>>;
|
|
29
|
+
}>;
|
|
30
|
+
catalog: _json_render_core.SchemaType<"object", {
|
|
31
|
+
/** Component definitions */
|
|
32
|
+
components: _json_render_core.SchemaType<"map", {
|
|
33
|
+
/** Zod schema for component props */
|
|
34
|
+
props: _json_render_core.SchemaType<"zod", unknown>;
|
|
35
|
+
/** Slots for this component. Use ['default'] for children, or named slots like ['header', 'footer'] */
|
|
36
|
+
slots: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
37
|
+
/** Description for AI generation hints */
|
|
38
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
39
|
+
}>;
|
|
40
|
+
/** Action definitions (optional) */
|
|
41
|
+
actions: _json_render_core.SchemaType<"map", {
|
|
42
|
+
/** Zod schema for action params */
|
|
43
|
+
params: _json_render_core.SchemaType<"zod", unknown>;
|
|
44
|
+
/** Description for AI generation hints */
|
|
45
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
46
|
+
}>;
|
|
47
|
+
}>;
|
|
48
|
+
}>;
|
|
49
|
+
/**
|
|
50
|
+
* Type for the React schema
|
|
51
|
+
*/
|
|
52
|
+
type ReactSchema = typeof schema;
|
|
53
|
+
/**
|
|
54
|
+
* Infer the spec type from a catalog
|
|
55
|
+
*/
|
|
56
|
+
type ReactSpec<TCatalog> = typeof schema extends {
|
|
57
|
+
createCatalog: (catalog: TCatalog) => {
|
|
58
|
+
_specType: infer S;
|
|
59
|
+
};
|
|
60
|
+
} ? S : never;
|
|
61
|
+
/** @deprecated Use `schema` instead */
|
|
62
|
+
declare const elementTreeSchema: _json_render_core.Schema<{
|
|
63
|
+
spec: _json_render_core.SchemaType<"object", {
|
|
64
|
+
/** Root element key */
|
|
65
|
+
root: _json_render_core.SchemaType<"string", unknown>;
|
|
66
|
+
/** Flat map of elements by key */
|
|
67
|
+
elements: _json_render_core.SchemaType<"record", _json_render_core.SchemaType<"object", {
|
|
68
|
+
/** Unique key for this element */
|
|
69
|
+
key: _json_render_core.SchemaType<"string", unknown>;
|
|
70
|
+
/** Component type from catalog */
|
|
71
|
+
type: _json_render_core.SchemaType<"ref", string>;
|
|
72
|
+
/** Component props */
|
|
73
|
+
props: _json_render_core.SchemaType<"propsOf", string>;
|
|
74
|
+
/** Child element keys (flat reference) */
|
|
75
|
+
children: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
76
|
+
/** Parent element key (null for root) */
|
|
77
|
+
parentKey: _json_render_core.SchemaType<"string", unknown>;
|
|
78
|
+
/** Visibility condition */
|
|
79
|
+
visible: _json_render_core.SchemaType<"any", unknown>;
|
|
80
|
+
}>>;
|
|
81
|
+
}>;
|
|
82
|
+
catalog: _json_render_core.SchemaType<"object", {
|
|
83
|
+
/** Component definitions */
|
|
84
|
+
components: _json_render_core.SchemaType<"map", {
|
|
85
|
+
/** Zod schema for component props */
|
|
86
|
+
props: _json_render_core.SchemaType<"zod", unknown>;
|
|
87
|
+
/** Slots for this component. Use ['default'] for children, or named slots like ['header', 'footer'] */
|
|
88
|
+
slots: _json_render_core.SchemaType<"array", _json_render_core.SchemaType<"string", unknown>>;
|
|
89
|
+
/** Description for AI generation hints */
|
|
90
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
91
|
+
}>;
|
|
92
|
+
/** Action definitions (optional) */
|
|
93
|
+
actions: _json_render_core.SchemaType<"map", {
|
|
94
|
+
/** Zod schema for action params */
|
|
95
|
+
params: _json_render_core.SchemaType<"zod", unknown>;
|
|
96
|
+
/** Description for AI generation hints */
|
|
97
|
+
description: _json_render_core.SchemaType<"string", unknown>;
|
|
98
|
+
}>;
|
|
99
|
+
}>;
|
|
100
|
+
}>;
|
|
101
|
+
/** @deprecated Use `ReactSchema` instead */
|
|
102
|
+
type ElementTreeSchema = ReactSchema;
|
|
103
|
+
/** @deprecated Use `ReactSpec` instead */
|
|
104
|
+
type ElementTreeSpec<T> = ReactSpec<T>;
|
|
105
|
+
|
|
106
|
+
export { type ElementTreeSchema, type ElementTreeSpec, type ReactSchema, type ReactSpec, elementTreeSchema, schema };
|
package/dist/schema.js
ADDED
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
|
|
20
|
+
// src/schema.ts
|
|
21
|
+
var schema_exports = {};
|
|
22
|
+
__export(schema_exports, {
|
|
23
|
+
elementTreeSchema: () => elementTreeSchema,
|
|
24
|
+
schema: () => schema
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(schema_exports);
|
|
27
|
+
var import_core = require("@json-render/core");
|
|
28
|
+
var schema = (0, import_core.defineSchema)((s) => ({
|
|
29
|
+
// What the AI-generated SPEC looks like
|
|
30
|
+
spec: s.object({
|
|
31
|
+
/** Root element key */
|
|
32
|
+
root: s.string(),
|
|
33
|
+
/** Flat map of elements by key */
|
|
34
|
+
elements: s.record(
|
|
35
|
+
s.object({
|
|
36
|
+
/** Unique key for this element */
|
|
37
|
+
key: s.string(),
|
|
38
|
+
/** Component type from catalog */
|
|
39
|
+
type: s.ref("catalog.components"),
|
|
40
|
+
/** Component props */
|
|
41
|
+
props: s.propsOf("catalog.components"),
|
|
42
|
+
/** Child element keys (flat reference) */
|
|
43
|
+
children: s.array(s.string()),
|
|
44
|
+
/** Parent element key (null for root) */
|
|
45
|
+
parentKey: s.string(),
|
|
46
|
+
/** Visibility condition */
|
|
47
|
+
visible: s.any()
|
|
48
|
+
})
|
|
49
|
+
)
|
|
50
|
+
}),
|
|
51
|
+
// What the CATALOG must provide
|
|
52
|
+
catalog: s.object({
|
|
53
|
+
/** Component definitions */
|
|
54
|
+
components: s.map({
|
|
55
|
+
/** Zod schema for component props */
|
|
56
|
+
props: s.zod(),
|
|
57
|
+
/** Slots for this component. Use ['default'] for children, or named slots like ['header', 'footer'] */
|
|
58
|
+
slots: s.array(s.string()),
|
|
59
|
+
/** Description for AI generation hints */
|
|
60
|
+
description: s.string()
|
|
61
|
+
}),
|
|
62
|
+
/** Action definitions (optional) */
|
|
63
|
+
actions: s.map({
|
|
64
|
+
/** Zod schema for action params */
|
|
65
|
+
params: s.zod(),
|
|
66
|
+
/** Description for AI generation hints */
|
|
67
|
+
description: s.string()
|
|
68
|
+
})
|
|
69
|
+
})
|
|
70
|
+
}));
|
|
71
|
+
var elementTreeSchema = schema;
|
|
72
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
73
|
+
0 && (module.exports = {
|
|
74
|
+
elementTreeSchema,
|
|
75
|
+
schema
|
|
76
|
+
});
|
|
77
|
+
//# sourceMappingURL=schema.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/schema.ts"],"sourcesContent":["import { defineSchema } from \"@json-render/core\";\n\n/**\n * The schema for @json-render/react\n *\n * Defines:\n * - Spec: A flat tree of elements with keys, types, props, and children references\n * - Catalog: Components with props schemas, and optional actions\n */\nexport const schema = defineSchema((s) => ({\n // What the AI-generated SPEC looks like\n spec: s.object({\n /** Root element key */\n root: s.string(),\n /** Flat map of elements by key */\n elements: s.record(\n s.object({\n /** Unique key for this element */\n key: s.string(),\n /** Component type from catalog */\n type: s.ref(\"catalog.components\"),\n /** Component props */\n props: s.propsOf(\"catalog.components\"),\n /** Child element keys (flat reference) */\n children: s.array(s.string()),\n /** Parent element key (null for root) */\n parentKey: s.string(),\n /** Visibility condition */\n visible: s.any(),\n }),\n ),\n }),\n\n // What the CATALOG must provide\n catalog: s.object({\n /** Component definitions */\n components: s.map({\n /** Zod schema for component props */\n props: s.zod(),\n /** Slots for this component. Use ['default'] for children, or named slots like ['header', 'footer'] */\n slots: s.array(s.string()),\n /** Description for AI generation hints */\n description: s.string(),\n }),\n /** Action definitions (optional) */\n actions: s.map({\n /** Zod schema for action params */\n params: s.zod(),\n /** Description for AI generation hints */\n description: s.string(),\n }),\n }),\n}));\n\n/**\n * Type for the React schema\n */\nexport type ReactSchema = typeof schema;\n\n/**\n * Infer the spec type from a catalog\n */\nexport type ReactSpec<TCatalog> = typeof schema extends {\n createCatalog: (catalog: TCatalog) => { _specType: infer S };\n}\n ? S\n : never;\n\n// Backward compatibility aliases\n/** @deprecated Use `schema` instead */\nexport const elementTreeSchema = schema;\n/** @deprecated Use `ReactSchema` instead */\nexport type ElementTreeSchema = ReactSchema;\n/** @deprecated Use `ReactSpec` instead */\nexport type ElementTreeSpec<T> = ReactSpec<T>;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA6B;AAStB,IAAM,aAAS,0BAAa,CAAC,OAAO;AAAA;AAAA,EAEzC,MAAM,EAAE,OAAO;AAAA;AAAA,IAEb,MAAM,EAAE,OAAO;AAAA;AAAA,IAEf,UAAU,EAAE;AAAA,MACV,EAAE,OAAO;AAAA;AAAA,QAEP,KAAK,EAAE,OAAO;AAAA;AAAA,QAEd,MAAM,EAAE,IAAI,oBAAoB;AAAA;AAAA,QAEhC,OAAO,EAAE,QAAQ,oBAAoB;AAAA;AAAA,QAErC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA;AAAA,QAE5B,WAAW,EAAE,OAAO;AAAA;AAAA,QAEpB,SAAS,EAAE,IAAI;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AAAA;AAAA,EAGD,SAAS,EAAE,OAAO;AAAA;AAAA,IAEhB,YAAY,EAAE,IAAI;AAAA;AAAA,MAEhB,OAAO,EAAE,IAAI;AAAA;AAAA,MAEb,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC;AAAA;AAAA,MAEzB,aAAa,EAAE,OAAO;AAAA,IACxB,CAAC;AAAA;AAAA,IAED,SAAS,EAAE,IAAI;AAAA;AAAA,MAEb,QAAQ,EAAE,IAAI;AAAA;AAAA,MAEd,aAAa,EAAE,OAAO;AAAA,IACxB,CAAC;AAAA,EACH,CAAC;AACH,EAAE;AAkBK,IAAM,oBAAoB;","names":[]}
|
package/dist/schema.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@json-render/react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "React renderer for @json-render/core. JSON becomes React components.",
|
|
6
6
|
"keywords": [
|
|
@@ -34,13 +34,18 @@
|
|
|
34
34
|
"types": "./dist/index.d.ts",
|
|
35
35
|
"import": "./dist/index.mjs",
|
|
36
36
|
"require": "./dist/index.js"
|
|
37
|
+
},
|
|
38
|
+
"./schema": {
|
|
39
|
+
"types": "./dist/schema.d.ts",
|
|
40
|
+
"import": "./dist/schema.mjs",
|
|
41
|
+
"require": "./dist/schema.js"
|
|
37
42
|
}
|
|
38
43
|
},
|
|
39
44
|
"files": [
|
|
40
45
|
"dist"
|
|
41
46
|
],
|
|
42
47
|
"dependencies": {
|
|
43
|
-
"@json-render/core": "0.
|
|
48
|
+
"@json-render/core": "0.4.0"
|
|
44
49
|
},
|
|
45
50
|
"devDependencies": {
|
|
46
51
|
"@types/react": "19.2.3",
|