@toon-ui/react 0.1.0-beta.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.
@@ -0,0 +1,92 @@
1
+ import React from 'react';
2
+ import type { AlertNode, BadgeNode, ButtonNode, CardNode, ConfirmNode, FieldNode, FormNode, ItemNode, ListNode, ReplyPayload, SubmitPayload, TableNode, TextNode, ToonNode, ToonNodeByType, ToonRuntime } from '@toon-ui/core';
3
+ export type ToonFieldValue = string | number | boolean;
4
+ export type ToonReplyPayload = ReplyPayload & {
5
+ node: ButtonNode;
6
+ };
7
+ export type ToonSubmitPayload = SubmitPayload & {
8
+ node: FormNode;
9
+ };
10
+ export interface ToonRenderContextValue {
11
+ sendReply: (payload: ToonReplyPayload) => void;
12
+ submitForm: (form: FormNode) => void;
13
+ getFieldValue: (form: FormNode | undefined, field: FieldNode) => ToonFieldValue | undefined;
14
+ setFieldValue: (form: FormNode | undefined, field: FieldNode, value: ToonFieldValue) => void;
15
+ formatSubmitMessage: ToonRuntime['formatSubmitMessage'];
16
+ formatReplyMessage: ToonRuntime['formatReplyMessage'];
17
+ }
18
+ type BaseProps<TNode extends ToonNode> = {
19
+ node: TNode;
20
+ children?: React.ReactNode;
21
+ context: ToonRenderContextValue;
22
+ };
23
+ export type ToonTextComponentProps = BaseProps<TextNode>;
24
+ export type ToonCardComponentProps = BaseProps<CardNode>;
25
+ export type ToonConfirmComponentProps = BaseProps<ConfirmNode>;
26
+ export type ToonListComponentProps = BaseProps<ListNode>;
27
+ export type ToonItemComponentProps = BaseProps<ItemNode>;
28
+ export type ToonBadgeComponentProps = BaseProps<BadgeNode>;
29
+ export type ToonAlertComponentProps = BaseProps<AlertNode>;
30
+ export type ToonTableComponentProps = BaseProps<TableNode>;
31
+ export type ToonButtonComponentProps = BaseProps<ButtonNode> & {
32
+ sendReply: (reply?: string) => void;
33
+ submitForm: () => void;
34
+ };
35
+ export type ToonFieldComponentProps = BaseProps<FieldNode> & {
36
+ value: ToonFieldValue | undefined;
37
+ onChange: (value: ToonFieldValue) => void;
38
+ };
39
+ export type ToonFormComponentProps = BaseProps<FormNode> & {
40
+ submitForm: () => void;
41
+ values: Record<string, ToonFieldValue>;
42
+ };
43
+ export interface ToonReactComponentPropsByType {
44
+ text: ToonTextComponentProps;
45
+ card: ToonCardComponentProps;
46
+ form: ToonFormComponentProps;
47
+ field: ToonFieldComponentProps;
48
+ button: ToonButtonComponentProps;
49
+ confirm: ToonConfirmComponentProps;
50
+ list: ToonListComponentProps;
51
+ item: ToonItemComponentProps;
52
+ badge: ToonBadgeComponentProps;
53
+ alert: ToonAlertComponentProps;
54
+ table: ToonTableComponentProps;
55
+ }
56
+ export type ToonReactComponentRegistry = Partial<{
57
+ [K in keyof ToonReactComponentPropsByType]: React.ComponentType<ToonReactComponentPropsByType[K]>;
58
+ }>;
59
+ export type ToonReactRuntime = ToonRuntime<ToonReactComponentRegistry>;
60
+ export declare function ToonProvider({ runtime, children, onReply, onSubmit, }: {
61
+ runtime: ToonReactRuntime;
62
+ children: React.ReactNode;
63
+ onReply?: (payload: ToonReplyPayload) => void;
64
+ onSubmit?: (payload: ToonSubmitPayload) => void;
65
+ }): import("react/jsx-runtime").JSX.Element;
66
+ export declare function useToonUI(): ToonReactRuntime;
67
+ export declare function useToonReply(): (payload: ToonReplyPayload) => void;
68
+ export declare function useToonSubmit(): (form: FormNode) => void;
69
+ export declare function useToonAction(): {
70
+ formatSubmitMessage: typeof import("@toon-ui/core").formatSubmitMessage;
71
+ formatReplyMessage: typeof import("@toon-ui/core").formatReplyMessage;
72
+ };
73
+ export declare function ToonRenderer({ content, runtime, onReply, onSubmit, }: {
74
+ content: string;
75
+ runtime: ToonReactRuntime;
76
+ onReply?: (payload: ToonReplyPayload) => void;
77
+ onSubmit?: (payload: ToonSubmitPayload) => void;
78
+ }): import("react/jsx-runtime").JSX.Element;
79
+ export declare function ToonMessage({ content, runtime, onReply, onSubmit, }: {
80
+ content: string;
81
+ runtime: ToonReactRuntime;
82
+ onReply?: (payload: ToonReplyPayload) => void;
83
+ onSubmit?: (payload: ToonSubmitPayload) => void;
84
+ }): import("react/jsx-runtime").JSX.Element;
85
+ export declare function ToonError({ message, details }: {
86
+ message: string;
87
+ details?: string[];
88
+ }): import("react/jsx-runtime").JSX.Element;
89
+ export type ToonTypedNode<TType extends keyof ToonNodeByType> = ToonNodeByType[TType];
90
+ export declare function basicPreset(): ToonReactComponentRegistry;
91
+ export {};
92
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,284 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { createContext, useContext, useMemo, useState } from 'react';
3
+ const ToonRuntimeContext = createContext(null);
4
+ const ToonRenderContext = createContext(null);
5
+ function createEventId(prefix) {
6
+ return `${prefix}_${Math.random().toString(36).slice(2, 10)}`;
7
+ }
8
+ function slugify(value) {
9
+ return value
10
+ .toLowerCase()
11
+ .normalize('NFD')
12
+ .replace(/[^\w\s-]/g, '')
13
+ .trim()
14
+ .replace(/\s+/g, '_');
15
+ }
16
+ function getFormKey(form) {
17
+ return `${slugify(form.title)}_${form.line}`;
18
+ }
19
+ function getDefaultFieldValue(field) {
20
+ return field.fieldType === 'checkbox' ? false : '';
21
+ }
22
+ function normalizeFieldValue(field, value) {
23
+ if (field.fieldType === 'number') {
24
+ if (typeof value === 'number')
25
+ return value;
26
+ const parsed = Number(value);
27
+ return Number.isNaN(parsed) ? value : parsed;
28
+ }
29
+ if (field.fieldType === 'checkbox') {
30
+ return Boolean(value);
31
+ }
32
+ return value;
33
+ }
34
+ export function ToonProvider({ runtime, children, onReply, onSubmit, }) {
35
+ const [formState, setFormState] = useState({});
36
+ const contextValue = useMemo(() => ({
37
+ sendReply: (payload) => {
38
+ onReply?.(payload);
39
+ },
40
+ submitForm: (form) => {
41
+ const fields = form.children.filter((child) => child.type === 'field');
42
+ const key = getFormKey(form);
43
+ const existing = formState[key] ?? {};
44
+ const values = fields.reduce((accumulator, field) => {
45
+ accumulator[field.name] = existing[field.name] ?? getDefaultFieldValue(field);
46
+ return accumulator;
47
+ }, {});
48
+ onSubmit?.({
49
+ kind: 'ui_submit',
50
+ eventId: createEventId('submit'),
51
+ source: 'form',
52
+ intent: slugify(form.title),
53
+ formTitle: form.title,
54
+ values,
55
+ line: form.line,
56
+ node: form,
57
+ });
58
+ },
59
+ getFieldValue: (form, field) => {
60
+ if (!form)
61
+ return undefined;
62
+ const key = getFormKey(form);
63
+ return formState[key]?.[field.name] ?? getDefaultFieldValue(field);
64
+ },
65
+ setFieldValue: (form, field, value) => {
66
+ if (!form)
67
+ return;
68
+ const key = getFormKey(form);
69
+ const normalized = normalizeFieldValue(field, value);
70
+ setFormState((current) => ({
71
+ ...current,
72
+ [key]: {
73
+ ...(current[key] ?? {}),
74
+ [field.name]: normalized,
75
+ },
76
+ }));
77
+ },
78
+ formatSubmitMessage: runtime.formatSubmitMessage,
79
+ formatReplyMessage: runtime.formatReplyMessage,
80
+ }), [formState, onReply, onSubmit, runtime]);
81
+ return (_jsx(ToonRuntimeContext.Provider, { value: runtime, children: _jsx(ToonRenderContext.Provider, { value: contextValue, children: children }) }));
82
+ }
83
+ export function useToonUI() {
84
+ const runtime = useContext(ToonRuntimeContext);
85
+ if (!runtime) {
86
+ throw new Error('useToonUI must be used within ToonProvider.');
87
+ }
88
+ return runtime;
89
+ }
90
+ export function useToonReply() {
91
+ const context = useContext(ToonRenderContext);
92
+ if (!context) {
93
+ throw new Error('useToonReply must be used within ToonProvider.');
94
+ }
95
+ return context.sendReply;
96
+ }
97
+ export function useToonSubmit() {
98
+ const context = useContext(ToonRenderContext);
99
+ if (!context) {
100
+ throw new Error('useToonSubmit must be used within ToonProvider.');
101
+ }
102
+ return context.submitForm;
103
+ }
104
+ export function useToonAction() {
105
+ const runtime = useToonUI();
106
+ return {
107
+ formatSubmitMessage: runtime.formatSubmitMessage,
108
+ formatReplyMessage: runtime.formatReplyMessage,
109
+ };
110
+ }
111
+ function useToonRenderContext() {
112
+ const context = useContext(ToonRenderContext);
113
+ if (!context) {
114
+ throw new Error('Toon rendering requires ToonProvider.');
115
+ }
116
+ return context;
117
+ }
118
+ function renderFallback(node, children, form, context, key) {
119
+ switch (node.type) {
120
+ case 'text':
121
+ return _jsx("p", { children: node.value }, key);
122
+ case 'badge':
123
+ return _jsx("span", { children: node.label }, key);
124
+ case 'button':
125
+ return (_jsx("button", { type: "button", onClick: () => node.action.kind === 'reply' ? context.sendReply({ kind: 'ui_reply', eventId: createEventId('reply'), source: 'button', component: 'button', value: node.action.value, line: node.line, node }) : form ? context.submitForm(form) : undefined, children: node.label }, key));
126
+ case 'field':
127
+ return (_jsxs("label", { children: [node.label, _jsx("input", { name: node.name, value: String(context.getFieldValue(form, node) ?? ''), onChange: (event) => context.setFieldValue(form, node, event.target.value) })] }, key));
128
+ case 'card':
129
+ case 'confirm':
130
+ case 'form':
131
+ case 'item':
132
+ case 'alert':
133
+ return _jsxs("section", { children: [_jsx("strong", { children: node.title }), _jsx("div", { children: children })] }, key);
134
+ case 'list':
135
+ return _jsxs("section", { children: [_jsx("strong", { children: node.title }), _jsx("div", { children: children })] }, key);
136
+ case 'table':
137
+ return _jsx("pre", { children: JSON.stringify({ columns: node.columns, rows: node.rows }, null, 2) }, key);
138
+ default:
139
+ return null;
140
+ }
141
+ }
142
+ function RegisteredNode({ node, form, nodeKey }) {
143
+ const runtime = useToonUI();
144
+ const context = useToonRenderContext();
145
+ const activeForm = node.type === 'form' ? node : form;
146
+ const children = 'children' in node ? node.children.map((child, index) => _jsx(RegisteredNode, { node: child, form: activeForm, nodeKey: `${String(nodeKey)}-${index}` }, `${String(nodeKey)}-${index}`)) : undefined;
147
+ switch (node.type) {
148
+ case 'text': {
149
+ const Component = runtime.components.text;
150
+ return Component ? _jsx(Component, { node: node, context: context }) : renderFallback(node, children, activeForm, context, nodeKey);
151
+ }
152
+ case 'badge': {
153
+ const Component = runtime.components.badge;
154
+ return Component ? _jsx(Component, { node: node, context: context }) : renderFallback(node, children, activeForm, context, nodeKey);
155
+ }
156
+ case 'button': {
157
+ const Component = runtime.components.button;
158
+ const sendReply = (reply = node.action.kind === 'reply' ? node.action.value : '') => {
159
+ if (node.action.kind === 'reply') {
160
+ context.sendReply({ kind: 'ui_reply', eventId: createEventId('reply'), source: 'button', component: 'button', value: reply, line: node.line, node });
161
+ }
162
+ };
163
+ const submitForm = () => {
164
+ if (activeForm)
165
+ context.submitForm(activeForm);
166
+ };
167
+ return Component
168
+ ? _jsx(Component, { node: node, context: context, sendReply: sendReply, submitForm: submitForm })
169
+ : renderFallback(node, children, activeForm, context, nodeKey);
170
+ }
171
+ case 'field': {
172
+ const Component = runtime.components.field;
173
+ const value = context.getFieldValue(activeForm, node);
174
+ const onChange = (nextValue) => context.setFieldValue(activeForm, node, nextValue);
175
+ return Component
176
+ ? _jsx(Component, { node: node, context: context, value: value, onChange: onChange })
177
+ : renderFallback(node, children, activeForm, context, nodeKey);
178
+ }
179
+ case 'form': {
180
+ const Component = runtime.components.form;
181
+ const fields = node.children.filter((child) => child.type === 'field');
182
+ const values = fields.reduce((accumulator, field) => {
183
+ accumulator[field.name] = context.getFieldValue(node, field) ?? getDefaultFieldValue(field);
184
+ return accumulator;
185
+ }, {});
186
+ const submitForm = () => context.submitForm(node);
187
+ return Component
188
+ ? _jsx(Component, { node: node, context: context, values: values, submitForm: submitForm, children: children })
189
+ : renderFallback(node, children, node, context, nodeKey);
190
+ }
191
+ case 'card': {
192
+ const Component = runtime.components.card;
193
+ return Component ? _jsx(Component, { node: node, context: context, children: children }) : renderFallback(node, children, activeForm, context, nodeKey);
194
+ }
195
+ case 'confirm': {
196
+ const Component = runtime.components.confirm;
197
+ return Component ? _jsx(Component, { node: node, context: context, children: children }) : renderFallback(node, children, activeForm, context, nodeKey);
198
+ }
199
+ case 'list': {
200
+ const Component = runtime.components.list;
201
+ return Component ? _jsx(Component, { node: node, context: context, children: children }) : renderFallback(node, children, activeForm, context, nodeKey);
202
+ }
203
+ case 'item': {
204
+ const Component = runtime.components.item;
205
+ return Component ? _jsx(Component, { node: node, context: context, children: children }) : renderFallback(node, children, activeForm, context, nodeKey);
206
+ }
207
+ case 'alert': {
208
+ const Component = runtime.components.alert;
209
+ return Component ? _jsx(Component, { node: node, context: context, children: children }) : renderFallback(node, children, activeForm, context, nodeKey);
210
+ }
211
+ case 'table': {
212
+ const Component = runtime.components.table;
213
+ return Component ? _jsx(Component, { node: node, context: context }) : renderFallback(node, children, activeForm, context, nodeKey);
214
+ }
215
+ default:
216
+ return null;
217
+ }
218
+ }
219
+ function ToonRendererInner({ content }) {
220
+ const runtime = useToonUI();
221
+ const blocks = runtime.extractBlocks(content);
222
+ if (blocks.length === 0)
223
+ return null;
224
+ return (_jsx("div", { "data-toon-ui-renderer": true, children: blocks.map((block, index) => {
225
+ try {
226
+ const ast = runtime.parse(block.raw);
227
+ const result = runtime.validate(ast);
228
+ if (!result.ok) {
229
+ return _jsx(ToonError, { message: "La interfaz generada no es v\u00E1lida.", details: result.errors.map((error) => error.message) }, index);
230
+ }
231
+ return (_jsx("div", { "data-toon-ui-block": true, children: ast.body.map((node, nodeIndex) => (_jsx(RegisteredNode, { node: node, nodeKey: `${index}-${nodeIndex}` }, `${index}-${nodeIndex}`))) }, index));
232
+ }
233
+ catch (error) {
234
+ return _jsx(ToonError, { message: "La interfaz generada no es v\u00E1lida.", details: [error instanceof Error ? error.message : 'Unknown ToonUI error'] }, index);
235
+ }
236
+ }) }));
237
+ }
238
+ export function ToonRenderer({ content, runtime, onReply, onSubmit, }) {
239
+ return (_jsx(ToonProvider, { runtime: runtime, onReply: onReply, onSubmit: onSubmit, children: _jsx(ToonRendererInner, { content: content }) }));
240
+ }
241
+ export function ToonMessage({ content, runtime, onReply, onSubmit, }) {
242
+ const blocks = runtime.extractBlocks(content);
243
+ const markdown = content.replace(/```toon-ui[\s\S]*?```/g, '').trim();
244
+ return (_jsxs("div", { "data-toon-ui-message": true, children: [markdown ? _jsx("div", { "data-toon-markdown": true, children: markdown }) : null, blocks.length > 0 ? _jsx(ToonRenderer, { content: content, runtime: runtime, onReply: onReply, onSubmit: onSubmit }) : null] }));
245
+ }
246
+ export function ToonError({ message, details = [] }) {
247
+ return (_jsxs("div", { role: "alert", "data-toon-error": true, children: [_jsx("strong", { children: message }), details.length > 0 ? (_jsx("ul", { children: details.map((detail) => _jsx("li", { children: detail }, detail)) })) : null] }));
248
+ }
249
+ function presetTone(variant) {
250
+ switch (variant) {
251
+ case 'primary':
252
+ case 'success':
253
+ case 'info':
254
+ return { background: '#111827', color: '#ffffff' };
255
+ case 'secondary':
256
+ case 'neutral':
257
+ return { background: '#e5e7eb', color: '#111827' };
258
+ case 'danger':
259
+ return { background: '#dc2626', color: '#ffffff' };
260
+ case 'warning':
261
+ return { background: '#f59e0b', color: '#111827' };
262
+ case 'ghost':
263
+ case 'outline':
264
+ return { background: 'transparent', color: '#111827', border: '1px solid #d1d5db' };
265
+ default:
266
+ return { background: '#f3f4f6', color: '#111827' };
267
+ }
268
+ }
269
+ export function basicPreset() {
270
+ return {
271
+ text: ({ node }) => _jsx("p", { children: node.value }),
272
+ badge: ({ node }) => _jsx("span", { style: { ...presetTone(node.variant), padding: '2px 8px', borderRadius: 999 }, children: node.label }),
273
+ button: ({ node, sendReply, submitForm }) => (_jsx("button", { type: "button", style: { ...presetTone(node.variant), padding: '8px 12px', borderRadius: 8 }, onClick: () => node.action.kind === 'reply' ? sendReply(node.action.value) : submitForm(), children: node.label })),
274
+ field: ({ node, value, onChange }) => (_jsxs("label", { style: { display: 'grid', gap: 6 }, children: [_jsx("span", { children: node.label }), _jsx("input", { name: node.name, type: node.fieldType === 'textarea' || node.fieldType === 'select' || node.fieldType === 'checkbox' ? 'text' : node.fieldType, "aria-required": node.required, value: typeof value === 'boolean' ? String(value) : (value ?? ''), onChange: (event) => onChange(node.fieldType === 'checkbox' ? event.currentTarget.checked : event.currentTarget.value) })] })),
275
+ card: ({ node, children }) => (_jsxs("section", { style: { border: '1px solid #e5e7eb', borderRadius: 12, padding: 16, display: 'grid', gap: 12 }, children: [_jsx("strong", { children: node.title }), children] })),
276
+ confirm: ({ node, children }) => (_jsxs("section", { style: { border: '1px solid #fca5a5', borderRadius: 12, padding: 16, display: 'grid', gap: 12 }, children: [_jsx("strong", { children: node.title }), children] })),
277
+ form: ({ node, children }) => (_jsxs("section", { style: { border: '1px solid #e5e7eb', borderRadius: 12, padding: 16, display: 'grid', gap: 12 }, children: [_jsx("strong", { children: node.title }), children] })),
278
+ item: ({ node, children }) => (_jsxs("section", { style: { border: '1px solid #e5e7eb', borderRadius: 12, padding: 16, display: 'grid', gap: 12 }, children: [_jsx("strong", { children: node.title }), children] })),
279
+ list: ({ node, children }) => (_jsxs("section", { style: { display: 'grid', gap: 12 }, children: [_jsx("strong", { children: node.title }), children] })),
280
+ alert: ({ node, children }) => (_jsxs("section", { style: { ...presetTone(node.variant), borderRadius: 12, padding: 16, display: 'grid', gap: 12 }, children: [_jsx("strong", { children: node.title }), children] })),
281
+ table: ({ node }) => (_jsxs("table", { children: [_jsx("thead", { children: _jsx("tr", { children: node.columns.map((column) => _jsx("th", { children: column }, column)) }) }), _jsx("tbody", { children: node.rows.map((row, rowIndex) => (_jsx("tr", { children: row.map((cell, cellIndex) => _jsx("td", { children: cell }, `${rowIndex}-${cellIndex}`)) }, rowIndex))) })] })),
282
+ };
283
+ }
284
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "@toon-ui/react",
3
+ "version": "0.1.0-beta.0",
4
+ "description": "React runtime and component registry for ToonUI.",
5
+ "keywords": ["toon-ui", "react", "ai", "chat", "ui"],
6
+ "homepage": "https://github.com/jefferson-lopez/toon-ui#readme",
7
+ "bugs": {
8
+ "url": "https://github.com/jefferson-lopez/toon-ui/issues"
9
+ },
10
+ "repository": {
11
+ "type": "git",
12
+ "url": "git+https://github.com/jefferson-lopez/toon-ui.git",
13
+ "directory": "packages/react"
14
+ },
15
+ "type": "module",
16
+ "main": "./dist/index.js",
17
+ "types": "./dist/index.d.ts",
18
+ "files": [
19
+ "dist"
20
+ ],
21
+ "publishConfig": {
22
+ "access": "public"
23
+ },
24
+ "exports": {
25
+ ".": {
26
+ "types": "./dist/index.d.ts",
27
+ "default": "./dist/index.js"
28
+ }
29
+ },
30
+ "scripts": {
31
+ "build": "tsc -p tsconfig.json",
32
+ "typecheck": "tsc -p tsconfig.json --noEmit",
33
+ "lint": "tsc -p tsconfig.json --noEmit"
34
+ },
35
+ "dependencies": {
36
+ "@toon-ui/core": "workspace:*"
37
+ },
38
+ "peerDependencies": {
39
+ "react": "^19.1.0"
40
+ }
41
+ }