@xyo-network/react-node 7.5.7 → 7.5.11

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.
Files changed (42) hide show
  1. package/dist/browser/components/render/ModuleDescriptionBox.d.ts.map +1 -1
  2. package/dist/browser/components/render/RenderModule.d.ts +0 -5
  3. package/dist/browser/components/render/RenderModule.d.ts.map +1 -1
  4. package/dist/browser/hooks/getModuleFilterOptions.d.ts +1 -1
  5. package/dist/browser/hooks/getWeakModuleFilterOptions.d.ts +1 -1
  6. package/dist/browser/index.mjs +156 -282
  7. package/dist/browser/index.mjs.map +1 -1
  8. package/package.json +121 -42
  9. package/src/components/Node.stories.tsx +0 -67
  10. package/src/components/Node.tsx +0 -20
  11. package/src/components/NodeDescriptionBox.tsx +0 -20
  12. package/src/components/NodeDrawer.stories.tsx +0 -45
  13. package/src/components/NodeDrawer.tsx +0 -35
  14. package/src/components/NodeModulesBox.tsx +0 -23
  15. package/src/components/TestModule.ts +0 -20
  16. package/src/components/index.ts +0 -2
  17. package/src/components/render/ModuleDescriptionBox.tsx +0 -41
  18. package/src/components/render/RenderModule.tsx +0 -64
  19. package/src/components/render/index.ts +0 -2
  20. package/src/hooks/ModuleFromNodeConfig.ts +0 -12
  21. package/src/hooks/WeakModuleFromNodeConfig.ts +0 -12
  22. package/src/hooks/getModuleFilterOptions.ts +0 -10
  23. package/src/hooks/getWeakModuleFilterOptions.ts +0 -10
  24. package/src/hooks/index.ts +0 -17
  25. package/src/hooks/provided/index.ts +0 -2
  26. package/src/hooks/provided/useProvidedNode.tsx +0 -8
  27. package/src/hooks/provided/useWeakProvidedNode.tsx +0 -9
  28. package/src/hooks/useModuleFromNode.ts +0 -51
  29. package/src/hooks/useModulesFromNode.ts +0 -39
  30. package/src/hooks/useNode.ts +0 -18
  31. package/src/hooks/useNodeConfigNodeField.ts +0 -10
  32. package/src/hooks/useNodeDescription.ts +0 -16
  33. package/src/hooks/useNodeFromNode.tsx +0 -20
  34. package/src/hooks/useNodesFromNode.tsx +0 -26
  35. package/src/hooks/useWeakModuleFromNode.ts +0 -51
  36. package/src/hooks/useWeakModulesFromNode.ts +0 -42
  37. package/src/hooks/useWeakNode.ts +0 -20
  38. package/src/hooks/useWeakNodeConfigNodeField.ts +0 -12
  39. package/src/hooks/useWeakNodeDescription.ts +0 -16
  40. package/src/hooks/useWeakNodeFromNode.tsx +0 -12
  41. package/src/hooks/useWeakNodesFromNode.tsx +0 -26
  42. package/src/index.ts +0 -4
@@ -1,60 +1,55 @@
1
- var __defProp = Object.defineProperty;
2
- var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
-
4
- // src/components/Node.tsx
5
- import React2 from "react";
6
-
7
1
  // src/components/NodeDescriptionBox.tsx
8
2
  import { FlexCol } from "@xylabs/react-flexbox";
9
- import React from "react";
10
3
 
11
4
  // src/hooks/getModuleFilterOptions.ts
12
- var getModuleFilterOptions = /* @__PURE__ */ __name((config) => {
13
- const { direction, identity, maxDepth } = config ?? {};
5
+ var getModuleFilterOptions = (config) => {
6
+ const {
7
+ direction,
8
+ identity,
9
+ maxDepth
10
+ } = config ?? {};
14
11
  return {
15
12
  direction,
16
13
  identity,
17
14
  maxDepth
18
15
  };
19
- }, "getModuleFilterOptions");
16
+ };
20
17
 
21
18
  // src/hooks/getWeakModuleFilterOptions.ts
22
- var getWeakModuleFilterOptions = /* @__PURE__ */ __name((config) => {
23
- const { direction, identity, maxDepth } = config ?? {};
19
+ var getWeakModuleFilterOptions = (config) => {
20
+ const {
21
+ direction,
22
+ identity,
23
+ maxDepth
24
+ } = config ?? {};
24
25
  return {
25
26
  direction,
26
27
  identity,
27
28
  maxDepth
28
29
  };
29
- }, "getWeakModuleFilterOptions");
30
+ };
30
31
 
31
32
  // src/hooks/ModuleFromNodeConfig.ts
32
- var getModuleFromNodeConfigLogger = /* @__PURE__ */ __name((config) => {
33
+ var getModuleFromNodeConfigLogger = (config) => {
33
34
  return config?.logger;
34
- }, "getModuleFromNodeConfigLogger");
35
+ };
35
36
 
36
37
  // src/hooks/provided/useProvidedNode.tsx
37
38
  import { NodeContext } from "@xyo-network/react-node-context";
38
39
  import { use } from "react";
39
- var useProvidedNode = /* @__PURE__ */ __name(() => {
40
+ var useProvidedNode = () => {
40
41
  const { node } = use(NodeContext);
41
- return [
42
- node
43
- ];
44
- }, "useProvidedNode");
42
+ return [node];
43
+ };
45
44
 
46
45
  // src/hooks/provided/useWeakProvidedNode.tsx
47
46
  import { NodeContext as NodeContext2 } from "@xyo-network/react-node-context";
48
47
  import { use as use2, useMemo } from "react";
49
- var useWeakProvidedNode = /* @__PURE__ */ __name(() => {
48
+ var useWeakProvidedNode = () => {
50
49
  const { node } = use2(NodeContext2);
51
- const weakNode = useMemo(() => node ? new WeakRef(node) : null, [
52
- node
53
- ]);
54
- return [
55
- weakNode
56
- ];
57
- }, "useWeakProvidedNode");
50
+ const weakNode = useMemo(() => node ? new WeakRef(node) : null, [node]);
51
+ return [weakNode];
52
+ };
58
53
 
59
54
  // src/hooks/useModuleFromNode.ts
60
55
  import { usePromise as usePromise2 } from "@xylabs/react-promise";
@@ -67,39 +62,26 @@ import { asNodeInstance } from "@xyo-network/node-model";
67
62
 
68
63
  // src/hooks/useNodeConfigNodeField.ts
69
64
  import { useMemo as useMemo2 } from "react";
70
- var useNodeConfigNodeField = /* @__PURE__ */ __name((config) => {
71
- const nodeAddress = useMemo2(() => typeof config?.node === "string" ? config?.node : void 0, [
72
- config?.node
73
- ]);
74
- const nodeInstance = useMemo2(() => typeof config?.node === "object" ? config?.node : void 0, [
75
- config?.node
76
- ]);
77
- return [
78
- nodeAddress,
79
- nodeInstance
80
- ];
81
- }, "useNodeConfigNodeField");
65
+ var useNodeConfigNodeField = (config) => {
66
+ const nodeAddress = useMemo2(() => typeof config?.node === "string" ? config?.node : void 0, [config?.node]);
67
+ const nodeInstance = useMemo2(() => typeof config?.node === "object" ? config?.node : void 0, [config?.node]);
68
+ return [nodeAddress, nodeInstance];
69
+ };
82
70
 
83
71
  // src/hooks/useNode.ts
84
- var useNode = /* @__PURE__ */ __name((config) => {
72
+ var useNode = (config) => {
85
73
  const [nodeAddress, nodeInstance] = useNodeConfigNodeField(config);
86
74
  const [providedNode] = useProvidedNode();
87
75
  const [nodeAddressNode, error] = usePromise(async () => {
88
76
  if (providedNode && nodeAddress) {
89
77
  return asNodeInstance(await providedNode.resolve(nodeAddress), "Module is not a node");
90
78
  }
91
- }, [
92
- providedNode,
93
- nodeAddress
94
- ]);
95
- return [
96
- nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0,
97
- error
98
- ];
99
- }, "useNode");
79
+ }, [providedNode, nodeAddress]);
80
+ return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
81
+ };
100
82
 
101
83
  // src/hooks/useModuleFromNode.ts
102
- var useModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = void 0, config) => {
84
+ var useModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
103
85
  const [node, nodeError] = useNode(config);
104
86
  const logger = getModuleFromNodeConfigLogger(config);
105
87
  const filterOptions = getModuleFilterOptions(config);
@@ -130,21 +112,15 @@ var useModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = void 0
130
112
  return result;
131
113
  }
132
114
  logger?.debug("Result: No Node");
133
- }, [
134
- node,
135
- nameOrAddressOrInstance
136
- ]);
137
- return [
138
- result,
139
- nodeError ?? error
140
- ];
141
- }, "useModuleFromNode");
115
+ }, [node, nameOrAddressOrInstance]);
116
+ return [result, nodeError ?? error];
117
+ };
142
118
 
143
119
  // src/hooks/useModulesFromNode.ts
144
120
  import { usePromise as usePromise3 } from "@xylabs/react-promise";
145
121
  import { exists } from "@xylabs/sdk-js";
146
122
  import { useState as useState2 } from "react";
147
- var useModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
123
+ var useModulesFromNode = (ids, config) => {
148
124
  const [node, nodeError] = useNode(config);
149
125
  const logger = config?.logger;
150
126
  const filterOptions = getModuleFilterOptions();
@@ -152,11 +128,11 @@ var useModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
152
128
  const [, error] = usePromise3(async () => {
153
129
  logger?.debug("useModuleFromNode: resolving");
154
130
  if (node) {
155
- const refreshModules = /* @__PURE__ */ __name(async () => {
131
+ const refreshModules = async () => {
156
132
  const moduleInstances = ids ? (await Promise.all(ids.map((id) => node.resolve(id, filterOptions)))).filter(exists) : await node.resolve("*", filterOptions);
157
133
  setResult(moduleInstances);
158
134
  return moduleInstances;
159
- }, "refreshModules");
135
+ };
160
136
  node.on("moduleAttached", async ({ mod }) => {
161
137
  logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
162
138
  await refreshModules();
@@ -168,62 +144,42 @@ var useModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
168
144
  return await refreshModules();
169
145
  }
170
146
  console.log("Result: No Node");
171
- }, [
172
- node,
173
- ids
174
- ]);
175
- return [
176
- result,
177
- nodeError ?? error
178
- ];
179
- }, "useModulesFromNode");
147
+ }, [node, ids]);
148
+ return [result, nodeError ?? error];
149
+ };
180
150
 
181
151
  // src/hooks/useNodeDescription.ts
182
152
  import { usePromise as usePromise4 } from "@xylabs/react-promise";
183
153
  import { ModuleDescriptionSchema } from "@xyo-network/module-model";
184
154
  import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
185
- var useNodeDescription = /* @__PURE__ */ __name((config) => {
155
+ var useNodeDescription = (config) => {
186
156
  const [activeNode, nodeError] = useNode(config);
187
157
  const [description, error] = usePromise4(async () => {
188
158
  const state = await activeNode?.state();
189
159
  return state?.find(isPayloadOfSchemaType(ModuleDescriptionSchema));
190
- }, [
191
- activeNode
192
- ]);
193
- return [
194
- description,
195
- nodeError ?? error
196
- ];
197
- }, "useNodeDescription");
160
+ }, [activeNode]);
161
+ return [description, nodeError ?? error];
162
+ };
198
163
 
199
164
  // src/hooks/useNodeFromNode.tsx
200
165
  import { asNodeInstance as asNodeInstance2 } from "@xyo-network/node-model";
201
- var useNodeFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance, config) => {
166
+ var useNodeFromNode = (nameOrAddressOrInstance, config) => {
202
167
  const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config);
203
168
  const instance = asNodeInstance2(mod);
204
169
  if (mod && !instance) {
205
170
  const error2 = new Error(`Resolved module is not a NodeInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`);
206
171
  console.error(error2.message);
207
- return [
208
- void 0,
209
- error2
210
- ];
172
+ return [void 0, error2];
211
173
  }
212
- return [
213
- instance,
214
- error
215
- ];
216
- }, "useNodeFromNode");
174
+ return [instance, error];
175
+ };
217
176
 
218
177
  // src/hooks/useNodesFromNode.tsx
219
178
  import { isNodeInstance } from "@xyo-network/node-model";
220
- var useNodesFromNode = /* @__PURE__ */ __name((ids, config) => {
179
+ var useNodesFromNode = (ids, config) => {
221
180
  const [modules, error] = useModulesFromNode(ids, config);
222
181
  if (error) {
223
- return [
224
- null,
225
- error
226
- ];
182
+ return [null, error];
227
183
  }
228
184
  return modules ? [
229
185
  // eslint-disable-next-line unicorn/no-array-reduce
@@ -234,11 +190,8 @@ var useNodesFromNode = /* @__PURE__ */ __name((ids, config) => {
234
190
  return prev;
235
191
  }, []),
236
192
  void 0
237
- ] : [
238
- modules,
239
- error
240
- ];
241
- }, "useNodesFromNode");
193
+ ] : [modules, error];
194
+ };
242
195
 
243
196
  // src/hooks/useWeakModuleFromNode.ts
244
197
  import { usePromise as usePromise6 } from "@xylabs/react-promise";
@@ -252,47 +205,32 @@ import { asNodeInstance as asNodeInstance3 } from "@xyo-network/node-model";
252
205
 
253
206
  // src/hooks/useWeakNodeConfigNodeField.ts
254
207
  import { useMemo as useMemo3 } from "react";
255
- var useWeakNodeConfigNodeField = /* @__PURE__ */ __name((config) => {
256
- const nodeAddress = useMemo3(() => typeof config?.node === "string" ? config?.node : void 0, [
257
- config?.node
258
- ]);
259
- const nodeInstance = useMemo3(() => typeof config?.node === "object" ? config?.node : void 0, [
260
- config?.node
261
- ]);
262
- return [
263
- nodeAddress,
264
- nodeInstance
265
- ];
266
- }, "useWeakNodeConfigNodeField");
208
+ var useWeakNodeConfigNodeField = (config) => {
209
+ const nodeAddress = useMemo3(() => typeof config?.node === "string" ? config?.node : void 0, [config?.node]);
210
+ const nodeInstance = useMemo3(() => typeof config?.node === "object" ? config?.node : void 0, [config?.node]);
211
+ return [nodeAddress, nodeInstance];
212
+ };
267
213
 
268
214
  // src/hooks/useWeakNode.ts
269
- var useWeakNode = /* @__PURE__ */ __name((config) => {
215
+ var useWeakNode = (config) => {
270
216
  const [nodeAddress, nodeInstance] = useWeakNodeConfigNodeField(config);
271
217
  const [providedNode] = useWeakProvidedNode();
272
218
  const [nodeAddressNode, error] = usePromise5(async () => {
273
219
  const providedNodeInstance = providedNode?.deref();
274
220
  if (providedNodeInstance && isDefined(nodeAddress)) {
275
- return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), () => "Module is not a node", {
276
- required: true
277
- }));
221
+ return new WeakRef(asNodeInstance3(await providedNodeInstance.resolve(nodeAddress), () => "Module is not a node", { required: true }));
278
222
  }
279
- }, [
280
- providedNode,
281
- nodeAddress
282
- ]);
283
- return [
284
- nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0,
285
- error
286
- ];
287
- }, "useWeakNode");
223
+ }, [providedNode, nodeAddress]);
224
+ return [nodeAddressNode ?? nodeInstance ?? providedNode ?? void 0, error];
225
+ };
288
226
 
289
227
  // src/hooks/WeakModuleFromNodeConfig.ts
290
- var getWeakModuleFromNodeConfigLogger = /* @__PURE__ */ __name((config) => {
228
+ var getWeakModuleFromNodeConfigLogger = (config) => {
291
229
  return config?.logger;
292
- }, "getWeakModuleFromNodeConfigLogger");
230
+ };
293
231
 
294
232
  // src/hooks/useWeakModuleFromNode.ts
295
- var useWeakModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = void 0, config) => {
233
+ var useWeakModuleFromNode = (nameOrAddressOrInstance = void 0, config) => {
296
234
  const [node, nodeError] = useWeakNode(config);
297
235
  const logger = getWeakModuleFromNodeConfigLogger(config);
298
236
  const filterOptions = getWeakModuleFilterOptions(config);
@@ -324,21 +262,15 @@ var useWeakModuleFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance = vo
324
262
  return result;
325
263
  }
326
264
  logger?.debug("Result: No Node");
327
- }, [
328
- node,
329
- nameOrAddressOrInstance
330
- ]);
331
- return [
332
- result,
333
- nodeError ?? error
334
- ];
335
- }, "useWeakModuleFromNode");
265
+ }, [node, nameOrAddressOrInstance]);
266
+ return [result, nodeError ?? error];
267
+ };
336
268
 
337
269
  // src/hooks/useWeakModulesFromNode.ts
338
270
  import { usePromise as usePromise7 } from "@xylabs/react-promise";
339
271
  import { exists as exists2 } from "@xylabs/sdk-js";
340
272
  import { useState as useState4 } from "react";
341
- var useWeakModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
273
+ var useWeakModulesFromNode = (ids, config) => {
342
274
  const [node, nodeError] = useNode(config);
343
275
  const logger = config?.logger;
344
276
  const filterOptions = getModuleFilterOptions();
@@ -347,11 +279,11 @@ var useWeakModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
347
279
  logger?.debug("useModuleFromNode: resolving");
348
280
  const nodeInstance = node;
349
281
  if (nodeInstance) {
350
- const refreshModules = /* @__PURE__ */ __name(async () => {
282
+ const refreshModules = async () => {
351
283
  const moduleInstances = ids ? (await Promise.all(ids.map((id) => node.resolve(id, filterOptions)))).filter(exists2) : await node.resolve("*", filterOptions);
352
284
  setResult(moduleInstances.map((mod) => new WeakRef(mod)));
353
285
  return moduleInstances;
354
- }, "refreshModules");
286
+ };
355
287
  nodeInstance.on("moduleAttached", async ({ mod }) => {
356
288
  logger?.debug(`useModuleFromNode: moduleAttached [${mod.config.name ?? mod.address}]`);
357
289
  await refreshModules();
@@ -363,197 +295,139 @@ var useWeakModulesFromNode = /* @__PURE__ */ __name((ids, config) => {
363
295
  return await refreshModules();
364
296
  }
365
297
  console.log("Result: No Node");
366
- }, [
367
- node,
368
- ids
369
- ]);
370
- return [
371
- result,
372
- nodeError ?? error
373
- ];
374
- }, "useWeakModulesFromNode");
298
+ }, [node, ids]);
299
+ return [result, nodeError ?? error];
300
+ };
375
301
 
376
302
  // src/hooks/useWeakNodeDescription.ts
377
303
  import { usePromise as usePromise8 } from "@xylabs/react-promise";
378
304
  import { ModuleDescriptionSchema as ModuleDescriptionSchema2 } from "@xyo-network/module-model";
379
305
  import { isPayloadOfSchemaType as isPayloadOfSchemaType2 } from "@xyo-network/payload-model";
380
- var useWeakNodeDescription = /* @__PURE__ */ __name((config) => {
306
+ var useWeakNodeDescription = (config) => {
381
307
  const [activeNode, nodeError] = useWeakNode(config);
382
308
  const [description, error] = usePromise8(async () => {
383
309
  const state = await activeNode?.deref()?.state();
384
310
  return state?.find(isPayloadOfSchemaType2(ModuleDescriptionSchema2));
385
- }, [
386
- activeNode
387
- ]);
388
- return [
389
- description,
390
- nodeError ?? error
391
- ];
392
- }, "useWeakNodeDescription");
311
+ }, [activeNode]);
312
+ return [description, nodeError ?? error];
313
+ };
393
314
 
394
315
  // src/hooks/useWeakNodeFromNode.tsx
395
316
  import { isNodeInstance as isNodeInstance2 } from "@xyo-network/node-model";
396
- var useWeakNodeFromNode = /* @__PURE__ */ __name((nameOrAddressOrInstance, config) => {
397
- return useWeakModuleFromNode(nameOrAddressOrInstance, {
398
- identity: isNodeInstance2,
399
- ...config
400
- });
401
- }, "useWeakNodeFromNode");
317
+ var useWeakNodeFromNode = (nameOrAddressOrInstance, config) => {
318
+ return useWeakModuleFromNode(nameOrAddressOrInstance, { identity: isNodeInstance2, ...config });
319
+ };
402
320
 
403
321
  // src/components/NodeDescriptionBox.tsx
404
- var NodeDescriptionBox = /* @__PURE__ */ __name(({ node, ...props }) => {
405
- const [description, error] = useWeakNodeDescription({
406
- node
407
- });
408
- return /* @__PURE__ */ React.createElement(FlexCol, props, /* @__PURE__ */ React.createElement("code", {
409
- color: error ? "red" : void 0
410
- }, error ? error.message : JSON.stringify(description, null, 2)));
411
- }, "NodeDescriptionBox");
322
+ import { jsx } from "react/jsx-runtime";
323
+ var NodeDescriptionBox = ({ node, ...props }) => {
324
+ const [description, error] = useWeakNodeDescription({ node });
325
+ return /* @__PURE__ */ jsx(FlexCol, { ...props, children: /* @__PURE__ */ jsx("code", { color: error ? "red" : void 0, children: error ? error.message : JSON.stringify(description, null, 2) }) });
326
+ };
412
327
 
413
328
  // src/components/Node.tsx
414
- var NodeBox = /* @__PURE__ */ __name(({ variant, ...props }) => {
329
+ import { jsx as jsx2 } from "react/jsx-runtime";
330
+ var NodeBox = ({ variant, ...props }) => {
415
331
  switch (variant) {
416
332
  // eslint-disable-next-line unicorn/no-useless-switch-case
417
333
  case "description":
418
334
  default: {
419
- return /* @__PURE__ */ React2.createElement(NodeDescriptionBox, props);
335
+ return /* @__PURE__ */ jsx2(NodeDescriptionBox, { ...props });
420
336
  }
421
337
  }
422
- }, "NodeBox");
338
+ };
423
339
 
424
340
  // src/components/NodeDrawer.tsx
425
341
  import { Close as CloseIcon } from "@mui/icons-material";
426
- import { ClickAwayListener, Drawer, IconButton } from "@mui/material";
342
+ import {
343
+ ClickAwayListener,
344
+ Drawer,
345
+ IconButton
346
+ } from "@mui/material";
427
347
  import { FlexGrowCol, FlexRow } from "@xylabs/react-flexbox";
428
348
  import { useNodeDrawer } from "@xyo-network/react-node-provider";
429
- import React5 from "react";
430
349
 
431
350
  // src/components/render/ModuleDescriptionBox.tsx
432
351
  import { ChevronRight as ChevronRightIcon, ExpandMore as ExpandMoreIcon } from "@mui/icons-material";
433
352
  import { styled as styled2, Typography } from "@mui/material";
434
353
  import { SimpleTreeView } from "@mui/x-tree-view";
435
- import React4, { useRef } from "react";
436
354
 
437
355
  // src/components/render/RenderModule.tsx
438
356
  import { styled } from "@mui/material";
439
357
  import { TreeItem } from "@mui/x-tree-view";
440
358
  import { useAsyncEffect } from "@xylabs/react-async-effect";
441
- import React3, { useState as useState5 } from "react";
442
- var RenderModule = /* @__PURE__ */ __name(({ mod, idRef }) => {
359
+ import { useState as useState5 } from "react";
360
+ import { jsx as jsx3, jsxs } from "react/jsx-runtime";
361
+ var RenderModule = ({ mod }) => {
443
362
  const [childModules, setChildModules] = useState5();
444
- useAsyncEffect(async (mounted) => {
445
- const moduleInstance2 = mod.deref();
446
- const { address: address2 } = moduleInstance2 ?? {};
447
- if (moduleInstance2) {
448
- const children = (await moduleInstance2.resolve("*")).filter((childModule) => childModule.address !== address2);
449
- if (mounted()) {
450
- setChildModules(children.map((childModule) => new WeakRef(childModule)));
363
+ useAsyncEffect(
364
+ async (mounted) => {
365
+ const moduleInstance2 = mod.deref();
366
+ const { address: address2 } = moduleInstance2 ?? {};
367
+ if (moduleInstance2) {
368
+ const children = (await moduleInstance2.resolve("*")).filter((childModule) => childModule.address !== address2);
369
+ if (mounted()) {
370
+ setChildModules(children.map((childModule) => new WeakRef(childModule)));
371
+ }
451
372
  }
452
- }
453
- }, [
454
- mod
455
- ]);
456
- const increment = /* @__PURE__ */ __name(() => {
457
- const newId = (idRef.current.idIncrementor++).toString();
458
- idRef.current.ids.push(newId);
459
- return newId;
460
- }, "increment");
373
+ },
374
+ [mod]
375
+ );
461
376
  const moduleInstance = mod.deref();
462
377
  const { queries, address } = moduleInstance ?? {};
463
- return /* @__PURE__ */ React3.createElement(StyledAddressTreeItem, {
464
- itemId: increment(),
465
- label: `address: ${address}`
466
- }, queries?.map((query, index) => {
467
- return /* @__PURE__ */ React3.createElement(TreeItem, {
468
- key: query,
469
- itemId: increment(),
470
- label: `query : ${query}`,
471
- sx: {
472
- mb: index === queries.length - 1 ? 1.5 : 0.5
473
- }
474
- });
475
- }), childModules && childModules.length > 0 ? /* @__PURE__ */ React3.createElement(TreeItem, {
476
- itemId: increment(),
477
- label: "children",
478
- sx: {
479
- mb: 0.5
480
- }
481
- }, childModules.map((childModuleRef) => {
482
- const childModule = childModuleRef.deref();
483
- return childModule ? /* @__PURE__ */ React3.createElement(RenderModule, {
484
- key: childModule?.address,
485
- mod: childModuleRef,
486
- idRef
487
- }) : null;
488
- })) : null);
489
- }, "RenderModule");
490
- var StyledAddressTreeItem = styled(TreeItem, {
491
- name: "StyledAddressTreeItem"
492
- })(({ theme }) => ({
493
- "& .MuiTreeItem-content": {
494
- marginBottom: theme.spacing(0.25)
495
- }
496
- }));
378
+ const baseId = address ?? "unknown";
379
+ return /* @__PURE__ */ jsxs(StyledAddressTreeItem, { itemId: baseId, label: `address: ${address}`, children: [
380
+ queries?.map((query, index) => {
381
+ return /* @__PURE__ */ jsx3(
382
+ TreeItem,
383
+ {
384
+ itemId: `${baseId}-query-${query}`,
385
+ label: `query : ${query}`,
386
+ sx: { mb: index === queries.length - 1 ? 1.5 : 0.5 }
387
+ },
388
+ query
389
+ );
390
+ }),
391
+ childModules && childModules.length > 0 ? /* @__PURE__ */ jsx3(TreeItem, { itemId: `${baseId}-children`, label: "children", sx: { mb: 0.5 }, children: childModules.map((childModuleRef) => {
392
+ const childModule = childModuleRef.deref();
393
+ return childModule ? /* @__PURE__ */ jsx3(RenderModule, { mod: childModuleRef }, childModule?.address) : null;
394
+ }) }) : null
395
+ ] });
396
+ };
397
+ var StyledAddressTreeItem = styled(TreeItem, { name: "StyledAddressTreeItem" })(({ theme }) => ({ "& .MuiTreeItem-content": { marginBottom: theme.spacing(0.25) } }));
497
398
 
498
399
  // src/components/render/ModuleDescriptionBox.tsx
499
- var ModuleDescriptionBox = /* @__PURE__ */ __name(({ mod }) => {
500
- const idRef = useRef({
501
- idIncrementor: 0,
502
- ids: []
503
- });
504
- return /* @__PURE__ */ React4.createElement(React4.Fragment, null, mod ? /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(Typography, {
505
- variant: "h4"
506
- }, "Node Configuration"), /* @__PURE__ */ React4.createElement(StyledTreeView, {
507
- "aria-label": "file system navigator",
508
- slots: {
509
- collapseIcon: ExpandMoreIcon,
510
- expandIcon: ChevronRightIcon
511
- },
512
- sx: {
513
- flexGrow: 1
514
- }
515
- }, /* @__PURE__ */ React4.createElement(RenderModule, {
516
- mod,
517
- idRef
518
- }))) : mod === null ? /* @__PURE__ */ React4.createElement(Typography, {
519
- variant: "h4"
520
- }, "Node loading...") : /* @__PURE__ */ React4.createElement(Typography, {
521
- variant: "h4"
522
- }, "Node not found"));
523
- }, "ModuleDescriptionBox");
524
- var StyledTreeView = styled2(SimpleTreeView, {
525
- name: "StyledTreeView"
526
- })(() => ({
400
+ import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
401
+ var ModuleDescriptionBox = ({ mod }) => {
402
+ return /* @__PURE__ */ jsx4(Fragment, { children: mod ? /* @__PURE__ */ jsxs2(Fragment, { children: [
403
+ /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node Configuration" }),
404
+ /* @__PURE__ */ jsx4(
405
+ StyledTreeView,
406
+ {
407
+ "aria-label": "file system navigator",
408
+ slots: { collapseIcon: ExpandMoreIcon, expandIcon: ChevronRightIcon },
409
+ sx: { flexGrow: 1 },
410
+ children: /* @__PURE__ */ jsx4(RenderModule, { mod })
411
+ }
412
+ )
413
+ ] }) : mod === null ? /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node loading..." }) : /* @__PURE__ */ jsx4(Typography, { variant: "h4", children: "Node not found" }) });
414
+ };
415
+ var StyledTreeView = styled2(SimpleTreeView, { name: "StyledTreeView" })(() => ({
527
416
  height: "auto",
528
417
  maxWidth: "auto"
529
418
  }));
530
419
 
531
420
  // src/components/NodeDrawer.tsx
532
- var NodeDrawer = /* @__PURE__ */ __name(({ children, ...props }) => {
421
+ import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
422
+ var NodeDrawer = ({ children, ...props }) => {
533
423
  const { open, setOpen } = useNodeDrawer();
534
424
  const [node] = useWeakProvidedNode();
535
- return /* @__PURE__ */ React5.createElement(Drawer, {
536
- open: open ?? false,
537
- anchor: "right",
538
- ...props
539
- }, /* @__PURE__ */ React5.createElement(ClickAwayListener, {
540
- onClickAway: /* @__PURE__ */ __name(() => setOpen?.(false), "onClickAway")
541
- }, /* @__PURE__ */ React5.createElement(FlexGrowCol, {
542
- role: "presentation",
543
- justifyContent: "start",
544
- p: 2,
545
- rowGap: 2,
546
- minWidth: "33vw"
547
- }, /* @__PURE__ */ React5.createElement(FlexRow, {
548
- alignContent: "start",
549
- justifyContent: "start",
550
- width: "100%"
551
- }, /* @__PURE__ */ React5.createElement(IconButton, {
552
- onClick: /* @__PURE__ */ __name(() => setOpen?.(false), "onClick")
553
- }, /* @__PURE__ */ React5.createElement(CloseIcon, null))), /* @__PURE__ */ React5.createElement(ModuleDescriptionBox, {
554
- mod: node
555
- }), children)));
556
- }, "NodeDrawer");
425
+ return /* @__PURE__ */ jsx5(Drawer, { open: open ?? false, anchor: "right", ...props, children: /* @__PURE__ */ jsx5(ClickAwayListener, { onClickAway: () => setOpen?.(false), children: /* @__PURE__ */ jsxs3(FlexGrowCol, { role: "presentation", justifyContent: "start", p: 2, rowGap: 2, minWidth: "33vw", children: [
426
+ /* @__PURE__ */ jsx5(FlexRow, { alignContent: "start", justifyContent: "start", width: "100%", children: /* @__PURE__ */ jsx5(IconButton, { onClick: () => setOpen?.(false), children: /* @__PURE__ */ jsx5(CloseIcon, {}) }) }),
427
+ /* @__PURE__ */ jsx5(ModuleDescriptionBox, { mod: node }),
428
+ children
429
+ ] }) }) });
430
+ };
557
431
 
558
432
  // src/index.ts
559
433
  export * from "@xyo-network/react-node-context";