@dudousxd/nestjs-agent-react 0.26.0 → 0.28.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.
@@ -3,7 +3,6 @@ var __defProp = Object.defineProperty;
3
3
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
4
  var __getOwnPropNames = Object.getOwnPropertyNames;
5
5
  var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
6
  var __export = (target, all) => {
8
7
  for (var name in all)
9
8
  __defProp(target, name, { get: all[name], enumerable: true });
@@ -45,7 +44,6 @@ function sharedContext(key) {
45
44
  holder[symbol] = created;
46
45
  return created;
47
46
  }
48
- __name(sharedContext, "sharedContext");
49
47
  var AmbientRenderUiContext = sharedContext("@dudousxd/nestjs-agent-react:ambient-render-ui");
50
48
 
51
49
  // src/genui/use-generative-ui.ts
@@ -58,7 +56,6 @@ var GENUI_TREE_COMPONENT = "genui:tree";
58
56
  function isRecord(value) {
59
57
  return typeof value === "object" && value !== null && !Array.isArray(value);
60
58
  }
61
- __name(isRecord, "isRecord");
62
59
  function toGenerativeUIItem(part) {
63
60
  if (!isRecord(part)) return null;
64
61
  const source = part.type === "data-ui" && isRecord(part.data) ? part.data : part;
@@ -73,7 +70,6 @@ function toGenerativeUIItem(part) {
73
70
  toolCallId: typeof source.toolCallId === "string" ? source.toolCallId : null
74
71
  };
75
72
  }
76
- __name(toGenerativeUIItem, "toGenerativeUIItem");
77
73
  var resolverCaches = /* @__PURE__ */ new WeakMap();
78
74
  function resolveCached(resolve, name, version) {
79
75
  let cache = resolverCaches.get(resolve);
@@ -88,49 +84,27 @@ function resolveCached(resolve, name, version) {
88
84
  try {
89
85
  const result = resolve(name, version);
90
86
  if (result instanceof Promise) {
91
- entry = {
92
- resolution: {
93
- status: "loading"
87
+ entry = { resolution: { status: "loading" }, settled: null };
88
+ entry.settled = result.then(
89
+ (Component2) => {
90
+ entry.resolution = Component2 ? { status: "ready", Component: Component2 } : { status: "unknown" };
94
91
  },
95
- settled: null
96
- };
97
- entry.settled = result.then((Component2) => {
98
- entry.resolution = Component2 ? {
99
- status: "ready",
100
- Component: Component2
101
- } : {
102
- status: "unknown"
103
- };
104
- }, (error) => {
105
- entry.resolution = {
106
- status: "error",
107
- error
108
- };
109
- });
92
+ (error) => {
93
+ entry.resolution = { status: "error", error };
94
+ }
95
+ );
110
96
  } else {
111
97
  entry = {
112
- resolution: result ? {
113
- status: "ready",
114
- Component: result
115
- } : {
116
- status: "unknown"
117
- },
98
+ resolution: result ? { status: "ready", Component: result } : { status: "unknown" },
118
99
  settled: null
119
100
  };
120
101
  }
121
102
  } catch (error) {
122
- entry = {
123
- resolution: {
124
- status: "error",
125
- error
126
- },
127
- settled: null
128
- };
103
+ entry = { resolution: { status: "error", error }, settled: null };
129
104
  }
130
105
  cache.set(key, entry);
131
106
  return entry;
132
107
  }
133
- __name(resolveCached, "resolveCached");
134
108
  function useResolvedComponent(name, version, registry, resolve, fallbackTree) {
135
109
  const [, setTick] = (0, import_react2.useState)(0);
136
110
  const own = registry[name];
@@ -145,170 +119,101 @@ function useResolvedComponent(name, version, registry, resolve, fallbackTree) {
145
119
  return () => {
146
120
  live = false;
147
121
  };
148
- }, [
149
- pending
150
- ]);
151
- if (own !== void 0) return {
152
- status: "ready",
153
- Component: own
154
- };
122
+ }, [pending]);
123
+ if (own !== void 0) return { status: "ready", Component: own };
155
124
  if (entry !== null && entry.resolution.status !== "unknown") return entry.resolution;
156
125
  if (name === GENUI_TREE_COMPONENT && fallbackTree !== void 0) {
157
- return {
158
- status: "ready",
159
- Component: fallbackTree
160
- };
126
+ return { status: "ready", Component: fallbackTree };
161
127
  }
162
- return {
163
- status: "unknown"
164
- };
128
+ return { status: "unknown" };
165
129
  }
166
- __name(useResolvedComponent, "useResolvedComponent");
167
130
  function useValidatedProps(catalog, name, props) {
168
131
  const checked = catalog?.has(name) === true;
169
132
  const immediate = (0, import_react2.useMemo)(() => {
170
- if (!checked || catalog === void 0) return {
171
- status: "ok",
172
- props
173
- };
133
+ if (!checked || catalog === void 0) return { status: "ok", props };
174
134
  const result = catalog.validateSync?.(name, props);
175
135
  if (result === void 0) return null;
176
- return result.ok ? {
177
- status: "ok",
178
- props: result.value
179
- } : {
180
- status: "invalid",
181
- issues: result.issues
182
- };
183
- }, [
184
- checked,
185
- catalog,
186
- name,
187
- props
188
- ]);
189
- const [late, setLate] = (0, import_react2.useState)(null);
136
+ return result.ok ? { status: "ok", props: result.value } : { status: "invalid", issues: result.issues };
137
+ }, [checked, catalog, name, props]);
138
+ const [late, setLate] = (0, import_react2.useState)(
139
+ null
140
+ );
190
141
  (0, import_react2.useEffect)(() => {
191
142
  if (immediate !== null || catalog === void 0) return;
192
143
  let live = true;
193
- catalog.validate(name, props).then((result) => {
194
- if (!live) return;
195
- setLate({
196
- props,
197
- result: result.ok ? {
198
- status: "ok",
199
- props: result.value
200
- } : {
201
- status: "invalid",
202
- issues: result.issues
203
- }
204
- });
205
- }, (error) => {
206
- if (!live) return;
207
- setLate({
208
- props,
209
- result: {
210
- status: "invalid",
211
- issues: [
212
- {
213
- path: [],
214
- message: error instanceof Error ? error.message : String(error)
215
- }
216
- ]
217
- }
218
- });
219
- });
144
+ catalog.validate(name, props).then(
145
+ (result) => {
146
+ if (!live) return;
147
+ setLate({
148
+ props,
149
+ result: result.ok ? { status: "ok", props: result.value } : { status: "invalid", issues: result.issues }
150
+ });
151
+ },
152
+ (error) => {
153
+ if (!live) return;
154
+ setLate({
155
+ props,
156
+ result: {
157
+ status: "invalid",
158
+ issues: [{ path: [], message: error instanceof Error ? error.message : String(error) }]
159
+ }
160
+ });
161
+ }
162
+ );
220
163
  return () => {
221
164
  live = false;
222
165
  };
223
- }, [
224
- immediate,
225
- catalog,
226
- name,
227
- props
228
- ]);
166
+ }, [immediate, catalog, name, props]);
229
167
  if (immediate !== null) return immediate;
230
- return late !== null && late.props === props ? late.result : {
231
- status: "pending"
232
- };
168
+ return late !== null && late.props === props ? late.result : { status: "pending" };
233
169
  }
234
- __name(useValidatedProps, "useValidatedProps");
235
170
  function useGenerativeUIState(part, options, fallbackTree) {
236
- const item = (0, import_react2.useMemo)(() => toGenerativeUIItem(part), [
237
- part
238
- ]);
171
+ const item = (0, import_react2.useMemo)(() => toGenerativeUIItem(part), [part]);
239
172
  const name = item?.component ?? "";
240
- const resolution = useResolvedComponent(name, item?.version ?? null, options.registry, item === null ? void 0 : options.resolveComponent, fallbackTree);
173
+ const resolution = useResolvedComponent(
174
+ name,
175
+ item?.version ?? null,
176
+ options.registry,
177
+ item === null ? void 0 : options.resolveComponent,
178
+ fallbackTree
179
+ );
241
180
  const empty = (0, import_react2.useMemo)(() => ({}), []);
242
- const validation = useValidatedProps(item === null || name === GENUI_TREE_COMPONENT ? void 0 : options.catalog, name, item?.props ?? empty);
181
+ const validation = useValidatedProps(
182
+ item === null || name === GENUI_TREE_COMPONENT ? void 0 : options.catalog,
183
+ name,
184
+ item?.props ?? empty
185
+ );
243
186
  if (item === null) return null;
244
- if (resolution.status === "loading") return {
245
- status: "loading",
246
- item
247
- };
248
- if (resolution.status === "unknown") return {
249
- status: "problem",
250
- reason: "unknown",
251
- item
252
- };
187
+ if (resolution.status === "loading") return { status: "loading", item };
188
+ if (resolution.status === "unknown") return { status: "problem", reason: "unknown", item };
253
189
  if (resolution.status === "error") {
254
- return {
255
- status: "problem",
256
- reason: "error",
257
- item,
258
- error: resolution.error
259
- };
190
+ return { status: "problem", reason: "error", item, error: resolution.error };
260
191
  }
261
- if (validation.status === "pending") return {
262
- status: "loading",
263
- item
264
- };
192
+ if (validation.status === "pending") return { status: "loading", item };
265
193
  if (validation.status === "invalid") {
266
- return {
267
- status: "problem",
268
- reason: "invalid",
269
- item,
270
- issues: validation.issues
271
- };
194
+ return { status: "problem", reason: "invalid", item, issues: validation.issues };
272
195
  }
273
- return {
274
- status: "ready",
275
- item,
276
- Component: resolution.Component,
277
- props: validation.props
278
- };
196
+ return { status: "ready", item, Component: resolution.Component, props: validation.props };
279
197
  }
280
- __name(useGenerativeUIState, "useGenerativeUIState");
281
198
 
282
199
  // src/genui/generative-ui.tsx
283
- var TreeScopeContext = /* @__PURE__ */ (0, import_react3.createContext)(null);
200
+ var import_jsx_runtime = require("react/jsx-runtime");
201
+ var TreeScopeContext = (0, import_react3.createContext)(null);
284
202
  function renderFallback(fallback, problem) {
285
203
  if (typeof fallback === "function") return fallback(problem);
286
204
  return fallback ?? null;
287
205
  }
288
- __name(renderFallback, "renderFallback");
289
- var ItemBoundary = class ItemBoundary2 extends import_react3.Component {
290
- static {
291
- __name(this, "ItemBoundary");
292
- }
293
- state = {
294
- error: void 0,
295
- failed: false
296
- };
206
+ var ItemBoundary = class extends import_react3.Component {
207
+ state = { error: void 0, failed: false };
297
208
  static getDerivedStateFromError(error) {
298
- return {
299
- error,
300
- failed: true
301
- };
209
+ return { error, failed: true };
302
210
  }
303
211
  componentDidCatch(error, _info) {
304
212
  this.props.onError?.(error, this.props.item);
305
213
  }
306
214
  componentDidUpdate(previous) {
307
215
  if (this.state.failed && previous.item !== this.props.item) {
308
- this.setState({
309
- error: void 0,
310
- failed: false
311
- });
216
+ this.setState({ error: void 0, failed: false });
312
217
  }
313
218
  }
314
219
  render() {
@@ -323,139 +228,101 @@ var ItemBoundary = class ItemBoundary2 extends import_react3.Component {
323
228
  }
324
229
  };
325
230
  function nodeItem(node, id) {
326
- return {
327
- id,
328
- component: node.type,
329
- props: node.props ?? {},
330
- version: null,
331
- toolCallId: null
332
- };
231
+ return { id, component: node.type, props: node.props ?? {}, version: null, toolCallId: null };
333
232
  }
334
- __name(nodeItem, "nodeItem");
335
233
  function TreeNode({ node, id }) {
336
234
  const scope = (0, import_react3.useContext)(TreeScopeContext);
337
- const item = (0, import_react3.useMemo)(() => nodeItem(node, id), [
338
- node,
339
- id
340
- ]);
341
- const resolution = useResolvedComponent(node.type, null, scope?.options.registry ?? {}, scope?.options.resolveComponent);
235
+ const item = (0, import_react3.useMemo)(() => nodeItem(node, id), [node, id]);
236
+ const resolution = useResolvedComponent(
237
+ node.type,
238
+ null,
239
+ scope?.options.registry ?? {},
240
+ scope?.options.resolveComponent
241
+ );
342
242
  const validation = useValidatedProps(scope?.options.catalog, node.type, item.props);
343
243
  if (scope === null) return null;
344
244
  if (resolution.status === "loading" || validation.status === "pending") return scope.loading;
345
245
  if (resolution.status === "unknown") {
346
- return renderFallback(scope.fallback, {
347
- reason: "unknown",
348
- item
349
- });
246
+ return renderFallback(scope.fallback, { reason: "unknown", item });
350
247
  }
351
248
  if (resolution.status === "error") {
352
- return renderFallback(scope.fallback, {
353
- reason: "error",
354
- item,
355
- error: resolution.error
356
- });
249
+ return renderFallback(scope.fallback, { reason: "error", item, error: resolution.error });
357
250
  }
358
251
  if (validation.status === "invalid") {
359
- return renderFallback(scope.fallback, {
360
- reason: "invalid",
361
- item,
362
- issues: validation.issues
363
- });
252
+ return renderFallback(scope.fallback, { reason: "invalid", item, issues: validation.issues });
364
253
  }
365
254
  const Renderer2 = resolution.Component;
366
255
  const children = Array.isArray(node.children) ? node.children : [];
367
- return /* @__PURE__ */ React.createElement(Renderer2, validation.props, children.length > 0 ? children.map((child, index) => {
256
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer2, { ...validation.props, children: children.length > 0 ? children.map((child, index) => {
368
257
  const childId = `${id}.${index}`;
369
- return /* @__PURE__ */ React.createElement(ItemBoundary, {
370
- key: childId,
371
- item: nodeItem(child, childId),
372
- fallback: scope.fallback,
373
- onError: scope.onError
374
- }, /* @__PURE__ */ React.createElement(TreeNode, {
375
- node: child,
376
- id: childId
377
- }));
378
- }) : void 0);
258
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
259
+ ItemBoundary,
260
+ {
261
+ item: nodeItem(child, childId),
262
+ fallback: scope.fallback,
263
+ onError: scope.onError,
264
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TreeNode, { node: child, id: childId })
265
+ },
266
+ childId
267
+ );
268
+ }) : void 0 });
379
269
  }
380
- __name(TreeNode, "TreeNode");
381
270
  function GenuiTree({ root }) {
382
271
  if (root === void 0 || root === null || typeof root.type !== "string") return null;
383
- return /* @__PURE__ */ React.createElement(TreeNode, {
384
- node: root,
385
- id: "root"
386
- });
272
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TreeNode, { node: root, id: "root" });
387
273
  }
388
- __name(GenuiTree, "GenuiTree");
389
- function GenerativeUIScope({ registry, catalog, resolveComponent, fallback, loading = null, onError, children }) {
390
- const scope = (0, import_react3.useMemo)(() => ({
391
- options: {
392
- registry,
393
- ...catalog !== void 0 ? {
394
- catalog
395
- } : {},
396
- ...resolveComponent !== void 0 ? {
397
- resolveComponent
398
- } : {}
399
- },
400
- fallback,
401
- loading,
402
- onError
403
- }), [
404
- registry,
405
- catalog,
406
- resolveComponent,
407
- fallback,
408
- loading,
409
- onError
410
- ]);
411
- return /* @__PURE__ */ React.createElement(TreeScopeContext.Provider, {
412
- value: scope
413
- }, children);
414
- }
415
- __name(GenerativeUIScope, "GenerativeUIScope");
416
- var GenuiContext = sharedContext("@dudousxd/nestjs-agent-react:genui-provider");
417
- function GenuiProvider({ registry, catalog, resolveComponent, treeRenderer, fallback, loading, onError, children }) {
418
- const value = (0, import_react3.useMemo)(() => ({
419
- ...registry !== void 0 ? {
420
- registry
421
- } : {},
422
- ...catalog !== void 0 ? {
423
- catalog
424
- } : {},
425
- ...resolveComponent !== void 0 ? {
426
- resolveComponent
427
- } : {},
428
- ...treeRenderer !== void 0 ? {
429
- treeRenderer
430
- } : {},
431
- ...fallback !== void 0 ? {
432
- fallback
433
- } : {},
434
- ...loading !== void 0 ? {
435
- loading
436
- } : {},
437
- ...onError !== void 0 ? {
274
+ function GenerativeUIScope({
275
+ registry,
276
+ catalog,
277
+ resolveComponent,
278
+ fallback,
279
+ loading = null,
280
+ onError,
281
+ children
282
+ }) {
283
+ const scope = (0, import_react3.useMemo)(
284
+ () => ({
285
+ options: {
286
+ registry,
287
+ ...catalog !== void 0 ? { catalog } : {},
288
+ ...resolveComponent !== void 0 ? { resolveComponent } : {}
289
+ },
290
+ fallback,
291
+ loading,
438
292
  onError
439
- } : {}
440
- }), [
441
- registry,
442
- catalog,
443
- resolveComponent,
444
- treeRenderer,
445
- fallback,
446
- loading,
447
- onError
448
- ]);
449
- const renderUi = (0, import_react3.useCallback)((block) => /* @__PURE__ */ React.createElement(GenerativeUI, {
450
- part: block
451
- }), []);
452
- return /* @__PURE__ */ React.createElement(GenuiContext.Provider, {
453
- value
454
- }, /* @__PURE__ */ React.createElement(AmbientRenderUiContext.Provider, {
455
- value: renderUi
456
- }, children));
293
+ }),
294
+ [registry, catalog, resolveComponent, fallback, loading, onError]
295
+ );
296
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TreeScopeContext.Provider, { value: scope, children });
297
+ }
298
+ var GenuiContext = sharedContext(
299
+ "@dudousxd/nestjs-agent-react:genui-provider"
300
+ );
301
+ function GenuiProvider({
302
+ registry,
303
+ catalog,
304
+ resolveComponent,
305
+ treeRenderer,
306
+ fallback,
307
+ loading,
308
+ onError,
309
+ children
310
+ }) {
311
+ const value = (0, import_react3.useMemo)(
312
+ () => ({
313
+ ...registry !== void 0 ? { registry } : {},
314
+ ...catalog !== void 0 ? { catalog } : {},
315
+ ...resolveComponent !== void 0 ? { resolveComponent } : {},
316
+ ...treeRenderer !== void 0 ? { treeRenderer } : {},
317
+ ...fallback !== void 0 ? { fallback } : {},
318
+ ...loading !== void 0 ? { loading } : {},
319
+ ...onError !== void 0 ? { onError } : {}
320
+ }),
321
+ [registry, catalog, resolveComponent, treeRenderer, fallback, loading, onError]
322
+ );
323
+ const renderUi = (0, import_react3.useCallback)((block) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GenerativeUI, { part: block }), []);
324
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GenuiContext.Provider, { value, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(AmbientRenderUiContext.Provider, { value: renderUi, children }) });
457
325
  }
458
- __name(GenuiProvider, "GenuiProvider");
459
326
  var NO_REGISTRY = {};
460
327
  function useMergedOptions(own) {
461
328
  const provided = (0, import_react3.useContext)(GenuiContext);
@@ -463,45 +330,41 @@ function useMergedOptions(own) {
463
330
  const catalog = own.catalog ?? provided?.catalog;
464
331
  const resolveComponent = own.resolveComponent ?? provided?.resolveComponent;
465
332
  const treeRenderer = own.treeRenderer ?? provided?.treeRenderer;
466
- return (0, import_react3.useMemo)(() => ({
467
- registry,
468
- ...catalog !== void 0 ? {
469
- catalog
470
- } : {},
471
- ...resolveComponent !== void 0 ? {
472
- resolveComponent
473
- } : {},
474
- ...treeRenderer !== void 0 ? {
475
- treeRenderer
476
- } : {}
477
- }), [
478
- registry,
479
- catalog,
480
- resolveComponent,
481
- treeRenderer
482
- ]);
333
+ return (0, import_react3.useMemo)(
334
+ () => ({
335
+ registry,
336
+ ...catalog !== void 0 ? { catalog } : {},
337
+ ...resolveComponent !== void 0 ? { resolveComponent } : {},
338
+ ...treeRenderer !== void 0 ? { treeRenderer } : {}
339
+ }),
340
+ [registry, catalog, resolveComponent, treeRenderer]
341
+ );
483
342
  }
484
- __name(useMergedOptions, "useMergedOptions");
485
- function GenerativeUI({ part, registry, catalog, resolveComponent, treeRenderer, fallback: ownFallback, loading: ownLoading, onError: ownOnError }) {
343
+ function GenerativeUI({
344
+ part,
345
+ registry,
346
+ catalog,
347
+ resolveComponent,
348
+ treeRenderer,
349
+ fallback: ownFallback,
350
+ loading: ownLoading,
351
+ onError: ownOnError
352
+ }) {
486
353
  const provided = (0, import_react3.useContext)(GenuiContext);
487
354
  const fallback = ownFallback ?? provided?.fallback;
488
355
  const loading = ownLoading ?? provided?.loading ?? null;
489
356
  const onError = ownOnError ?? provided?.onError;
490
357
  const options = useMergedOptions({
491
- ...registry !== void 0 ? {
492
- registry
493
- } : {},
494
- ...catalog !== void 0 ? {
495
- catalog
496
- } : {},
497
- ...resolveComponent !== void 0 ? {
498
- resolveComponent
499
- } : {},
500
- ...treeRenderer !== void 0 ? {
501
- treeRenderer
502
- } : {}
358
+ ...registry !== void 0 ? { registry } : {},
359
+ ...catalog !== void 0 ? { catalog } : {},
360
+ ...resolveComponent !== void 0 ? { resolveComponent } : {},
361
+ ...treeRenderer !== void 0 ? { treeRenderer } : {}
503
362
  });
504
- const state = useGenerativeUIState(part, options, options.treeRenderer ?? GenuiTree);
363
+ const state = useGenerativeUIState(
364
+ part,
365
+ options,
366
+ options.treeRenderer ?? GenuiTree
367
+ );
505
368
  if (state === null) return null;
506
369
  if (state.status === "loading") return loading;
507
370
  if (state.status === "problem") {
@@ -509,96 +372,65 @@ function GenerativeUI({ part, registry, catalog, resolveComponent, treeRenderer,
509
372
  return renderFallback(fallback, problem);
510
373
  }
511
374
  const Renderer2 = state.Component;
512
- return /* @__PURE__ */ React.createElement(GenerativeUIScope, {
513
- ...options,
514
- fallback,
515
- loading,
516
- ...onError !== void 0 ? {
517
- onError
518
- } : {}
519
- }, /* @__PURE__ */ React.createElement(ItemBoundary, {
520
- item: state.item,
521
- fallback,
522
- onError
523
- }, /* @__PURE__ */ React.createElement(Renderer2, state.props)));
375
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
376
+ GenerativeUIScope,
377
+ {
378
+ ...options,
379
+ fallback,
380
+ loading,
381
+ ...onError !== void 0 ? { onError } : {},
382
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ItemBoundary, { item: state.item, fallback, onError, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Renderer2, { ...state.props }) })
383
+ }
384
+ );
524
385
  }
525
- __name(GenerativeUI, "GenerativeUI");
526
386
 
527
387
  // src/genui/json-render.tsx
388
+ var import_jsx_runtime2 = require("react/jsx-runtime");
528
389
  function treeToJsonRenderSpec(root) {
529
390
  const elements = {};
530
391
  let next = 0;
531
- const visit = /* @__PURE__ */ __name((node) => {
392
+ const visit = (node) => {
532
393
  const id = `el-${next++}`;
533
- const entry = {
534
- type: node.type,
535
- props: node.props ?? {},
536
- children: []
537
- };
394
+ const entry = { type: node.type, props: node.props ?? {}, children: [] };
538
395
  elements[id] = entry;
539
396
  for (const child of node.children ?? []) entry.children.push(visit(child));
540
397
  return id;
541
- }, "visit");
542
- return {
543
- root: visit(root),
544
- elements
545
398
  };
399
+ return { root: visit(root), elements };
546
400
  }
547
- __name(treeToJsonRenderSpec, "treeToJsonRenderSpec");
548
401
  function toJsonRenderRegistry(registry) {
549
- return Object.fromEntries(Object.entries(registry).map(([name, Renderer2]) => [
550
- name,
551
- ({ element, children }) => /* @__PURE__ */ React.createElement(Renderer2, element.props ?? {}, children)
552
- ]));
402
+ return Object.fromEntries(
403
+ Object.entries(registry).map(([name, Renderer2]) => [
404
+ name,
405
+ ({ element, children }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Renderer2, { ...element.props ?? {}, children })
406
+ ])
407
+ );
553
408
  }
554
- __name(toJsonRenderRegistry, "toJsonRenderRegistry");
555
409
  function JsonRenderTree({ root, registry, initialState }) {
556
- const spec = (0, import_react5.useMemo)(() => root === void 0 ? null : treeToJsonRenderSpec(root), [
557
- root
558
- ]);
410
+ const spec = (0, import_react5.useMemo)(() => root === void 0 ? null : treeToJsonRenderSpec(root), [root]);
559
411
  if (spec === null) return null;
560
- return /* @__PURE__ */ React.createElement(import_react4.JSONUIProvider, {
561
- registry,
562
- ...initialState !== void 0 ? {
563
- initialState
564
- } : {}
565
- }, /* @__PURE__ */ React.createElement(import_react4.Renderer, {
566
- spec,
567
- registry
568
- }));
412
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react4.JSONUIProvider, { registry, ...initialState !== void 0 ? { initialState } : {}, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(import_react4.Renderer, { spec, registry }) });
569
413
  }
570
- __name(JsonRenderTree, "JsonRenderTree");
571
414
  function jsonRenderTree(registry) {
572
- return /* @__PURE__ */ __name(function JsonRenderTreeFrame({ root }) {
573
- return /* @__PURE__ */ React.createElement(JsonRenderTree, {
574
- registry,
575
- ...root !== void 0 ? {
576
- root
577
- } : {}
578
- });
579
- }, "JsonRenderTreeFrame");
415
+ return function JsonRenderTreeFrame({ root }) {
416
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(JsonRenderTree, { registry, ...root !== void 0 ? { root } : {} });
417
+ };
580
418
  }
581
- __name(jsonRenderTree, "jsonRenderTree");
582
419
  function GenuiProvider2({ jsonRender, treeRenderer, registry, ...rest }) {
583
420
  const derived = (0, import_react5.useMemo)(() => {
584
421
  if (jsonRender === void 0) return void 0;
585
422
  return jsonRenderTree(jsonRender === true ? toJsonRenderRegistry(registry ?? {}) : jsonRender);
586
- }, [
587
- jsonRender,
588
- registry
589
- ]);
423
+ }, [jsonRender, registry]);
590
424
  const tree = treeRenderer ?? derived;
591
- return /* @__PURE__ */ React.createElement(GenuiProvider, {
592
- ...rest,
593
- ...registry !== void 0 ? {
594
- registry
595
- } : {},
596
- ...tree !== void 0 ? {
597
- treeRenderer: tree
598
- } : {}
599
- });
425
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
426
+ GenuiProvider,
427
+ {
428
+ ...rest,
429
+ ...registry !== void 0 ? { registry } : {},
430
+ ...tree !== void 0 ? { treeRenderer: tree } : {}
431
+ }
432
+ );
600
433
  }
601
- __name(GenuiProvider2, "GenuiProvider");
602
434
  // Annotate the CommonJS export names for ESM import in node:
603
435
  0 && (module.exports = {
604
436
  GenuiProvider,