@xyo-network/react-typedoc 2.64.0 → 2.64.2

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 (58) hide show
  1. package/dist/browser/CommentViewer.js +3 -2
  2. package/dist/browser/CommentViewer.js.map +1 -1
  3. package/dist/browser/JsonViewerButton.js +4 -3
  4. package/dist/browser/JsonViewerButton.js.map +1 -1
  5. package/dist/browser/ProjectTwoPanelReflectionViewer.js +513 -5
  6. package/dist/browser/ProjectTwoPanelReflectionViewer.js.map +1 -1
  7. package/dist/browser/ReflectionViewer/Container.js +294 -7
  8. package/dist/browser/ReflectionViewer/Container.js.map +1 -1
  9. package/dist/browser/ReflectionViewer/Declaration.js +208 -7
  10. package/dist/browser/ReflectionViewer/Declaration.js.map +1 -1
  11. package/dist/browser/ReflectionViewer/DeclarationContainer.js +355 -6
  12. package/dist/browser/ReflectionViewer/DeclarationContainer.js.map +1 -1
  13. package/dist/browser/ReflectionViewer/NameViewer.js +157 -15
  14. package/dist/browser/ReflectionViewer/NameViewer.js.map +1 -1
  15. package/dist/browser/ReflectionViewer/Project.js +296 -7
  16. package/dist/browser/ReflectionViewer/Project.js.map +1 -1
  17. package/dist/browser/ReflectionViewer/ReflectionGroupViewer.js +237 -17
  18. package/dist/browser/ReflectionViewer/ReflectionGroupViewer.js.map +1 -1
  19. package/dist/browser/ReflectionViewer/ReflectionViewer.js +185 -9
  20. package/dist/browser/ReflectionViewer/ReflectionViewer.js.map +1 -1
  21. package/dist/browser/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.js +107 -5
  22. package/dist/browser/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.js.map +1 -1
  23. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildArrayString.js +2 -1
  24. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildArrayString.js.map +1 -1
  25. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildIntersectionString.js +2 -1
  26. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildIntersectionString.js.map +1 -1
  27. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildReferenceString.js +2 -1
  28. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildReferenceString.js.map +1 -1
  29. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildReflectionString.js +2 -1
  30. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildReflectionString.js.map +1 -1
  31. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildTypeString.js +63 -6
  32. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildTypeString.js.map +1 -1
  33. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildUnionString.js +2 -1
  34. package/dist/browser/ReflectionViewer/SomeTypeViewer/buildUnionString.js.map +1 -1
  35. package/dist/browser/ReflectionViewer/SomeTypeViewer/index.js +115 -1
  36. package/dist/browser/ReflectionViewer/SomeTypeViewer/index.js.map +1 -1
  37. package/dist/browser/ReflectionViewer/index.js +412 -8
  38. package/dist/browser/ReflectionViewer/index.js.map +1 -1
  39. package/dist/browser/SourceViewer.js +3 -2
  40. package/dist/browser/SourceViewer.js.map +1 -1
  41. package/dist/browser/TreeViewer/Reflection.js +3 -2
  42. package/dist/browser/TreeViewer/Reflection.js.map +1 -1
  43. package/dist/browser/TreeViewer/ReflectionGroup.js +231 -11
  44. package/dist/browser/TreeViewer/ReflectionGroup.js.map +1 -1
  45. package/dist/browser/TreeViewer/index.js +299 -2
  46. package/dist/browser/TreeViewer/index.js.map +1 -1
  47. package/dist/browser/TwoPanelReflectionViewer.js +344 -18
  48. package/dist/browser/TwoPanelReflectionViewer.js.map +1 -1
  49. package/dist/browser/createLookup.js +2 -1
  50. package/dist/browser/createLookup.js.map +1 -1
  51. package/dist/browser/index.js +611 -9
  52. package/dist/browser/index.js.map +1 -1
  53. package/dist/browser/resolveChildren.js +2 -1
  54. package/dist/browser/resolveChildren.js.map +1 -1
  55. package/dist/browser/trimFlagLabel.js +2 -1
  56. package/dist/browser/trimFlagLabel.js.map +1 -1
  57. package/dist/docs.json +72 -72
  58. package/package.json +6 -6
@@ -1,10 +1,612 @@
1
- export * from "./CommentViewer";
2
- export * from "./JsonViewerButton";
3
- export * from "./ProjectTwoPanelReflectionViewer";
4
- export * from "./ReflectionLookup";
5
- export * from "./ReflectionViewer";
6
- export * from "./SomeReflection";
7
- export * from "./SourceViewer";
8
- export * from "./TreeViewer";
9
- export * from "./TwoPanelReflectionViewer";
1
+ // src/CommentViewer.tsx
2
+ import { Typography } from "@mui/material";
3
+ import { FlexCol } from "@xylabs/react-flexbox";
4
+ import { jsx } from "react/jsx-runtime";
5
+ var CommentViewer = ({ comment, ...props }) => {
6
+ return /* @__PURE__ */ jsx(FlexCol, { alignItems: "stretch", ...props, children: /* @__PURE__ */ jsx(Typography, { variant: "body2", children: comment.summary[0]?.text }) });
7
+ };
8
+
9
+ // src/JsonViewerButton.tsx
10
+ import { Dialog, DialogActions, DialogContent, DialogTitle } from "@mui/material";
11
+ import { ButtonEx } from "@xylabs/react-button";
12
+ import { lazy, Suspense, useState } from "react";
13
+ import { Fragment, jsx as jsx2, jsxs } from "react/jsx-runtime";
14
+ var JsonView = lazy(() => import(
15
+ /* webpackChunkName: "jsonView" */
16
+ "react-json-view"
17
+ ));
18
+ var JsonViewerButton = ({ jsonViewProps, src, title, ...props }) => {
19
+ const [open, setOpen] = useState(false);
20
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
21
+ /* @__PURE__ */ jsx2(ButtonEx, { onClick: () => setOpen(!open), ...props, children: "JSON" }),
22
+ /* @__PURE__ */ jsxs(Dialog, { open, onClose: () => setOpen(false), children: [
23
+ title ? /* @__PURE__ */ jsx2(DialogTitle, { children: title }) : null,
24
+ /* @__PURE__ */ jsx2(DialogContent, { children: /* @__PURE__ */ jsx2(Suspense, { fallback: /* @__PURE__ */ jsx2("div", {}), children: /* @__PURE__ */ jsx2(JsonView, { src, ...jsonViewProps }) }) }),
25
+ /* @__PURE__ */ jsx2(DialogActions, { children: /* @__PURE__ */ jsx2(ButtonEx, { onClick: () => setOpen(false), children: "Close" }) })
26
+ ] })
27
+ ] });
28
+ };
29
+
30
+ // src/ProjectTwoPanelReflectionViewer.tsx
31
+ import { assertEx } from "@xylabs/assert";
32
+
33
+ // src/createLookup.ts
34
+ var createLookup = (reflection) => {
35
+ const lookup = {};
36
+ reflection.children?.forEach((item) => lookup[item.id] = item);
37
+ return lookup;
38
+ };
39
+
40
+ // src/ReflectionViewer/ReflectionGroupViewer.tsx
41
+ import { Typography as Typography4 } from "@mui/material";
42
+ import { FlexCol as FlexCol3, FlexRow as FlexRow2 } from "@xylabs/react-flexbox";
43
+ import { useEffect } from "react";
44
+ import { useLocation } from "react-router-dom";
45
+
46
+ // src/resolveChildren.ts
47
+ var resolveChildren = (reflection, lookup = {}) => {
48
+ return reflection.children?.map((child) => {
49
+ switch (typeof child) {
50
+ case "object":
51
+ return child;
52
+ case "number": {
53
+ const childObj = lookup[child];
54
+ if (childObj === void 0) {
55
+ throw Error(`Child Reference Not Found [${child}]`);
56
+ }
57
+ return childObj;
58
+ }
59
+ default:
60
+ throw Error(`Invalid Child Type [${typeof child}, ${child}]`);
61
+ }
62
+ }) ?? [];
63
+ };
64
+
65
+ // src/ReflectionViewer/ReflectionViewer.tsx
66
+ import { FlexCol as FlexCol2 } from "@xylabs/react-flexbox";
67
+
68
+ // src/ReflectionViewer/NameViewer.tsx
69
+ import { Chip, Stack, Typography as Typography3 } from "@mui/material";
70
+ import { FlexRow } from "@xylabs/react-flexbox";
71
+
72
+ // src/trimFlagLabel.ts
73
+ var trimFlagLabel = (label) => {
74
+ if (label.startsWith("is")) {
75
+ return label.substring(2);
76
+ }
77
+ return label;
78
+ };
79
+
80
+ // src/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.tsx
81
+ import { Typography as Typography2 } from "@mui/material";
82
+
83
+ // src/ReflectionViewer/SomeTypeViewer/buildArrayString.tsx
84
+ var buildArrayString = (typeObj, reflectionViewer, typeBuilder) => {
85
+ const parts = [];
86
+ const typeString = typeBuilder(typeObj.elementType, reflectionViewer);
87
+ if (typeof typeString === "string") {
88
+ parts.push(typeString);
89
+ }
90
+ parts.push("[]");
91
+ return parts;
92
+ };
93
+
94
+ // src/ReflectionViewer/SomeTypeViewer/buildIntersectionString.tsx
95
+ var buildIntersectionString = (typeObj, reflectionViewer, typeBuilder) => {
96
+ const parts = [];
97
+ if (typeObj.types) {
98
+ parts.push(
99
+ typeObj.types.map((arg) => {
100
+ return typeBuilder(arg, reflectionViewer);
101
+ }).join(" & ")
102
+ );
103
+ }
104
+ return parts;
105
+ };
106
+
107
+ // src/ReflectionViewer/SomeTypeViewer/buildReferenceString.ts
108
+ var buildReferenceString = (typeObj, reflectionViewer, typeBuilder) => {
109
+ const parts = [];
110
+ parts.push(typeObj.name);
111
+ if (typeObj.typeArguments) {
112
+ parts.push("<");
113
+ parts.push(
114
+ typeObj.typeArguments.map((arg) => {
115
+ return typeBuilder(arg, reflectionViewer);
116
+ }).join(", ")
117
+ );
118
+ parts.push(">");
119
+ }
120
+ return parts;
121
+ };
122
+
123
+ // src/ReflectionViewer/SomeTypeViewer/buildReflectionString.tsx
124
+ import { Fragment as Fragment2, jsx as jsx3 } from "react/jsx-runtime";
125
+ var buildRelfectionString = (typeObj, reflectionViewer) => {
126
+ if (typeObj.declaration) {
127
+ return /* @__PURE__ */ jsx3(Fragment2, { children: reflectionViewer({ reflection: typeObj.declaration }) });
128
+ }
129
+ };
130
+
131
+ // src/ReflectionViewer/SomeTypeViewer/buildUnionString.tsx
132
+ var buildUnionString = (typeObj, reflectionViewer, typeBuilder) => {
133
+ const parts = [];
134
+ if (typeObj.types) {
135
+ parts.push(
136
+ typeObj.types.map((arg) => {
137
+ return typeBuilder(arg, reflectionViewer);
138
+ }).join(" | ")
139
+ );
140
+ }
141
+ return parts;
142
+ };
143
+
144
+ // src/ReflectionViewer/SomeTypeViewer/buildTypeString.tsx
145
+ var buildTypeString = (type, reflectionViewer) => {
146
+ const someType = type;
147
+ const parts = [];
148
+ switch (someType.type) {
149
+ case "intrinsic":
150
+ parts.push(someType.name);
151
+ break;
152
+ case "intersection": {
153
+ parts.push(...buildIntersectionString(someType, reflectionViewer, buildTypeString));
154
+ break;
155
+ }
156
+ case "literal":
157
+ parts.push(JSON.stringify(someType.value));
158
+ break;
159
+ case "array": {
160
+ parts.push(...buildArrayString(someType, reflectionViewer, buildTypeString));
161
+ break;
162
+ }
163
+ case "reference": {
164
+ parts.push(...buildReferenceString(someType, reflectionViewer, buildTypeString));
165
+ break;
166
+ }
167
+ case "union": {
168
+ parts.push(...buildUnionString(someType, reflectionViewer, buildTypeString));
169
+ break;
170
+ }
171
+ case "reflection": {
172
+ return buildRelfectionString(someType, reflectionViewer);
173
+ }
174
+ default:
175
+ parts.push("#");
176
+ parts.push(someType.type);
177
+ parts.push("#");
178
+ break;
179
+ }
180
+ return parts.join("");
181
+ };
182
+
183
+ // src/ReflectionViewer/SomeTypeViewer/SomeTypeViewer.tsx
184
+ import { Fragment as Fragment3, jsx as jsx4 } from "react/jsx-runtime";
185
+ var SomeTypeViewer = ({ opacity = 0.5, reflection, reflectionViewer, ...props }) => {
186
+ const typeReactNode = reflection.type ? buildTypeString(reflection.type, reflectionViewer) : "";
187
+ if (typeof typeReactNode === "string") {
188
+ return /* @__PURE__ */ jsx4(Typography2, { title: "SomeTypeViewer", style: { opacity }, ...props, children: typeReactNode });
189
+ }
190
+ return /* @__PURE__ */ jsx4(Fragment3, { children: typeReactNode });
191
+ };
192
+
193
+ // src/ReflectionViewer/NameViewer.tsx
194
+ import { Fragment as Fragment4, jsx as jsx5, jsxs as jsxs2 } from "react/jsx-runtime";
195
+ var NameViewer = ({ reflectionViewer, variant, reflection, ...props }) => {
196
+ return /* @__PURE__ */ jsxs2(FlexRow, { justifyContent: "flex-start", ...props, children: [
197
+ /* @__PURE__ */ jsxs2(FlexRow, { marginRight: 1, children: [
198
+ /* @__PURE__ */ jsxs2(Typography3, { variant, noWrap: true, children: [
199
+ reflection.name,
200
+ reflection.type ? /* @__PURE__ */ jsx5(Fragment4, { children: ":\xA0" }) : null
201
+ ] }),
202
+ /* @__PURE__ */ jsx5(SomeTypeViewer, { reflection, reflectionViewer })
203
+ ] }),
204
+ /* @__PURE__ */ jsxs2(Stack, { direction: "row", spacing: 1, children: [
205
+ /* @__PURE__ */ jsx5(Chip, { size: "small", label: reflection.kind }),
206
+ reflection.flags ? Object.entries(reflection.flags).map(([flag, value]) => {
207
+ return value ? /* @__PURE__ */ jsx5(Chip, { size: "small", label: trimFlagLabel(flag), variant: "outlined" }, flag) : null;
208
+ }) : null
209
+ ] }),
210
+ document && document?.location.hostname === "localhost" && /* @__PURE__ */ jsx5(JsonViewerButton, { jsonViewProps: { collapsed: 1 }, size: "small", variant: "contained", padding: 0, marginX: 1, src: reflection })
211
+ ] });
212
+ };
213
+
214
+ // src/ReflectionViewer/ReflectionViewer.tsx
215
+ import { jsx as jsx6, jsxs as jsxs3 } from "react/jsx-runtime";
216
+ var hide = (flags, hiddenFlags = []) => {
217
+ let hide2 = false;
218
+ hiddenFlags.map((hiddenFlag) => {
219
+ if (flags?.[hiddenFlag]) {
220
+ hide2 = true;
221
+ }
222
+ });
223
+ return hide2;
224
+ };
225
+ var ReflectionViewer = ({ variant, nameViewer, children, reflection, hiddenFlags, ...props }) => {
226
+ const someReflection = reflection;
227
+ return hide(reflection?.flags, hiddenFlags) ? null : /* @__PURE__ */ jsxs3(FlexCol2, { title: "ReflectionViewer", alignItems: "stretch", ...props, children: [
228
+ nameViewer === void 0 ? /* @__PURE__ */ jsx6(NameViewer, { marginY: 0.25, variant, reflection: someReflection, reflectionViewer: ReflectionViewer }) : nameViewer,
229
+ reflection.comment ? /* @__PURE__ */ jsx6(CommentViewer, { comment: reflection.comment }) : null,
230
+ someReflection.parameters?.map((parameter) => {
231
+ return /* @__PURE__ */ jsx6(ReflectionViewer, { hiddenFlags, marginY: 0.25, marginX: 1, reflection: parameter }, parameter.id);
232
+ }) ?? null,
233
+ children
234
+ ] });
235
+ };
236
+
237
+ // src/ReflectionViewer/ReflectionGroupViewer.tsx
238
+ import { jsx as jsx7, jsxs as jsxs4 } from "react/jsx-runtime";
239
+ var ReflectionGroupViewer = ({
240
+ autoscroll = false,
241
+ children,
242
+ hiddenFlags,
243
+ group,
244
+ lookup,
245
+ renderer = ReflectionViewer,
246
+ variant,
247
+ ...props
248
+ }) => {
249
+ const hide2 = (flags, hiddenFlags2 = []) => {
250
+ let hide3 = false;
251
+ hiddenFlags2.map((hiddenFlag) => {
252
+ if (flags?.[hiddenFlag]) {
253
+ hide3 = true;
254
+ }
255
+ });
256
+ return hide3;
257
+ };
258
+ const resolvedChildern = resolveChildren(group, lookup) ?? [];
259
+ const visibleChildren = hiddenFlags ? resolvedChildern.reduce((acc, item) => {
260
+ return acc + (hide2(item.flags, hiddenFlags) ? 0 : 1);
261
+ }, 0) : 1;
262
+ const { hash } = useLocation();
263
+ useEffect(() => {
264
+ if (hash && autoscroll) {
265
+ document.querySelector(hash)?.scrollIntoView({ behavior: "smooth" });
266
+ }
267
+ }, [hash, autoscroll]);
268
+ return visibleChildren > 0 ? /* @__PURE__ */ jsxs4(FlexCol3, { title: "ReflectionGroupViewer", ...props, children: [
269
+ /* @__PURE__ */ jsxs4(FlexRow2, { marginY: 1, justifyContent: "flex-start", children: [
270
+ /* @__PURE__ */ jsx7(Typography4, { variant, children: group.title }),
271
+ /* @__PURE__ */ jsx7(
272
+ JsonViewerButton,
273
+ {
274
+ jsonViewProps: { collapsed: 1 },
275
+ size: "small",
276
+ variant: "contained",
277
+ padding: 0,
278
+ marginX: 1,
279
+ src: resolveChildren(group, lookup)
280
+ }
281
+ )
282
+ ] }),
283
+ resolveChildren(group, lookup).map((reflection) => {
284
+ return reflection ? (
285
+ // I wrap this in a div since React does not understand that they have keys using the Renderer
286
+ /* @__PURE__ */ jsx7("div", { id: reflection.name, children: renderer({ hiddenFlags, lookup, margin: 1, padding: 1, reflection }) }, reflection.id)
287
+ ) : null;
288
+ }),
289
+ children
290
+ ] }) : null;
291
+ };
292
+
293
+ // src/ReflectionViewer/Container.tsx
294
+ import { jsx as jsx8, jsxs as jsxs5 } from "react/jsx-runtime";
295
+ var ContainerReflectionViewer = ({
296
+ children,
297
+ reflection,
298
+ hiddenFlags,
299
+ itemRenderer = ReflectionViewer,
300
+ ...props
301
+ }) => {
302
+ const lookup = createLookup(reflection);
303
+ return /* @__PURE__ */ jsxs5(ReflectionViewer, { title: "ContainerReflectionViewer", sources: true, reflection, lookup, ...props, children: [
304
+ reflection.groups?.map((group) => {
305
+ return /* @__PURE__ */ jsx8(
306
+ ReflectionGroupViewer,
307
+ {
308
+ margin: 1,
309
+ lookup,
310
+ renderer: itemRenderer,
311
+ group,
312
+ reflection,
313
+ hiddenFlags,
314
+ alignItems: "stretch"
315
+ },
316
+ group.title
317
+ );
318
+ }),
319
+ children
320
+ ] });
321
+ };
322
+
323
+ // src/ReflectionViewer/Declaration.tsx
324
+ import { jsx as jsx9, jsxs as jsxs6 } from "react/jsx-runtime";
325
+ var DeclarationReflectionViewer = ({ reflection, hiddenFlags, ...props }) => {
326
+ const safeSignatures = (signatures) => {
327
+ return Array.isArray(signatures) ? signatures : signatures ? [signatures] : void 0;
328
+ };
329
+ return /* @__PURE__ */ jsxs6(
330
+ ReflectionViewer,
331
+ {
332
+ nameViewer: reflection.signatures || reflection.getSignature || reflection.setSignature ? null : void 0,
333
+ title: "DeclarationReflectionViewer",
334
+ hiddenFlags,
335
+ reflection,
336
+ ...props,
337
+ children: [
338
+ reflection.signatures?.map((signature) => {
339
+ return /* @__PURE__ */ jsx9(ReflectionViewer, { hiddenFlags, reflection: signature }, signature.id);
340
+ }),
341
+ safeSignatures(reflection.getSignature)?.map((signature) => {
342
+ return /* @__PURE__ */ jsx9(ReflectionViewer, { marginX: 1, hiddenFlags, reflection: signature }, signature.id);
343
+ }),
344
+ safeSignatures(reflection.setSignature)?.map((signature) => {
345
+ return /* @__PURE__ */ jsx9(ReflectionViewer, { marginX: 1, hiddenFlags, reflection: signature }, signature.id);
346
+ })
347
+ ]
348
+ }
349
+ );
350
+ };
351
+
352
+ // src/ReflectionViewer/DeclarationContainer.tsx
353
+ import { useTheme } from "@mui/material";
354
+ import { useLocation as useLocation2 } from "react-router-dom";
355
+ import { jsx as jsx10 } from "react/jsx-runtime";
356
+ var DeclarationContainerReflectionViewer = ({
357
+ reflection,
358
+ lookup,
359
+ itemRenderer = DeclarationReflectionViewer,
360
+ ...props
361
+ }) => {
362
+ const { hash } = useLocation2();
363
+ const theme = useTheme();
364
+ return /* @__PURE__ */ jsx10(
365
+ ContainerReflectionViewer,
366
+ {
367
+ title: "DeclarationContainerReflectionViewer",
368
+ paper: hash.substring(1) === reflection.name,
369
+ bgcolor: hash.substring(1) === reflection.name ? theme.palette.background.default : void 0,
370
+ lookup,
371
+ itemRenderer,
372
+ reflection,
373
+ ...props
374
+ }
375
+ );
376
+ };
377
+
378
+ // src/ReflectionViewer/Project.tsx
379
+ import { useMemo } from "react";
380
+ import { jsx as jsx11 } from "react/jsx-runtime";
381
+ var ProjectReflectionViewer = ({
382
+ reflection,
383
+ hiddenFlags,
384
+ itemRenderer = ReflectionViewer,
385
+ ...props
386
+ }) => {
387
+ const lookup = useMemo(() => createLookup(reflection), [reflection]);
388
+ return /* @__PURE__ */ jsx11(ReflectionViewer, { title: "ProjectReflectionViewer", hiddenFlags, reflection, ...props, children: useMemo(() => {
389
+ return reflection.groups?.map((group) => {
390
+ return /* @__PURE__ */ jsx11(
391
+ ReflectionGroupViewer,
392
+ {
393
+ autoscroll: true,
394
+ variant: "h6",
395
+ lookup,
396
+ renderer: itemRenderer,
397
+ group,
398
+ reflection,
399
+ alignItems: "stretch",
400
+ hiddenFlags
401
+ },
402
+ group.title
403
+ );
404
+ });
405
+ }, [lookup, reflection, hiddenFlags, itemRenderer]) });
406
+ };
407
+
408
+ // src/TwoPanelReflectionViewer.tsx
409
+ import { Search } from "@mui/icons-material";
410
+ import { TextField, useTheme as useTheme2 } from "@mui/material";
411
+ import { FlexCol as FlexCol6, FlexGrowCol, FlexRow as FlexRow4 } from "@xylabs/react-flexbox";
412
+ import { useMemo as useMemo2, useState as useState2 } from "react";
413
+
414
+ // src/TreeViewer/Reflection.tsx
415
+ import { Add, Remove } from "@mui/icons-material";
416
+ import { Typography as Typography5 } from "@mui/material";
417
+ import { TreeItem, TreeView } from "@mui/x-tree-view";
418
+ import { FlexCol as FlexCol4 } from "@xylabs/react-flexbox";
419
+ import { useNavigate } from "react-router-dom";
420
+ import { jsx as jsx12 } from "react/jsx-runtime";
421
+ var ReflectionTreeViewer = ({ lookup, reflection, searchTerm, ...props }) => {
422
+ const navigate = useNavigate();
423
+ return /* @__PURE__ */ jsx12(FlexCol4, { alignItems: "stretch", ...props, children: /* @__PURE__ */ jsx12(
424
+ TreeView,
425
+ {
426
+ "aria-label": "XYO SDK Documentation",
427
+ defaultExpandIcon: /* @__PURE__ */ jsx12(Add, {}),
428
+ defaultCollapseIcon: /* @__PURE__ */ jsx12(Remove, {}),
429
+ defaultExpanded: reflection.groups ? [reflection.groups[0].title] : [],
430
+ children: reflection.groups?.map((group, index) => /* @__PURE__ */ jsx12(TreeItem, { nodeId: group.title, label: /* @__PURE__ */ jsx12(Typography5, { variant: "h6", children: group.title }), children: group.children.map((child, jndex) => {
431
+ const searchTermTrimmed = searchTerm?.trim().toLowerCase();
432
+ const childReflection = typeof child === "number" ? lookup?.[child] : child;
433
+ return childReflection && (!searchTermTrimmed || childReflection.name.toLowerCase().indexOf(searchTermTrimmed) !== -1) ? /* @__PURE__ */ jsx12(
434
+ TreeItem,
435
+ {
436
+ nodeId: `declaration-${childReflection?.id}`,
437
+ label: childReflection.name,
438
+ onClick: () => {
439
+ const hash = `#${childReflection.name}`;
440
+ navigate({ hash });
441
+ document.querySelector(hash)?.scrollIntoView({ behavior: "smooth" });
442
+ }
443
+ },
444
+ `secondary-${index}- ${jndex}`
445
+ ) : null;
446
+ }) }, `primary-${index}`))
447
+ }
448
+ ) });
449
+ };
450
+
451
+ // src/TreeViewer/ReflectionGroup.tsx
452
+ import { Typography as Typography6 } from "@mui/material";
453
+ import { FlexCol as FlexCol5, FlexRow as FlexRow3 } from "@xylabs/react-flexbox";
454
+ import { jsx as jsx13, jsxs as jsxs7 } from "react/jsx-runtime";
455
+ var ReflectionGroupTreeViewer = ({
456
+ variant,
457
+ group,
458
+ children,
459
+ lookup,
460
+ renderer = ReflectionViewer,
461
+ ...props
462
+ }) => {
463
+ return /* @__PURE__ */ jsxs7(FlexCol5, { ...props, children: [
464
+ /* @__PURE__ */ jsxs7(FlexRow3, { marginY: 1, justifyContent: "flex-start", children: [
465
+ /* @__PURE__ */ jsx13(Typography6, { variant, children: group.title }),
466
+ /* @__PURE__ */ jsx13(
467
+ JsonViewerButton,
468
+ {
469
+ jsonViewProps: { collapsed: 1 },
470
+ size: "small",
471
+ variant: "contained",
472
+ padding: 0,
473
+ marginX: 1,
474
+ src: resolveChildren(group, lookup)
475
+ }
476
+ )
477
+ ] }),
478
+ resolveChildren(group, lookup).map((reflection) => {
479
+ return reflection ? (
480
+ // I wrap this in a div since React does not understand that they have keys using the Renderer
481
+ /* @__PURE__ */ jsx13("div", { children: renderer({ lookup, margin: 1, reflection }) }, reflection.id)
482
+ ) : null;
483
+ }),
484
+ children
485
+ ] });
486
+ };
487
+
488
+ // src/TwoPanelReflectionViewer.tsx
489
+ import { jsx as jsx14, jsxs as jsxs8 } from "react/jsx-runtime";
490
+ var TwoPanelReflectionViewer = ({
491
+ reflection,
492
+ itemRenderer = ReflectionViewer,
493
+ hiddenFlags,
494
+ ...props
495
+ }) => {
496
+ const lookup = useMemo2(() => createLookup(reflection), [reflection]);
497
+ const theme = useTheme2();
498
+ const [searchTerm, setSearchTerm] = useState2();
499
+ const onSearchTermChange = (e) => {
500
+ setSearchTerm(e.target.value);
501
+ };
502
+ const reflectionGroups = useMemo2(() => {
503
+ return reflection.groups?.map((group) => {
504
+ return /* @__PURE__ */ jsx14(
505
+ ReflectionGroupViewer,
506
+ {
507
+ autoscroll: true,
508
+ variant: "h6",
509
+ lookup,
510
+ renderer: itemRenderer,
511
+ group,
512
+ reflection,
513
+ alignItems: "stretch",
514
+ hiddenFlags
515
+ },
516
+ group.title
517
+ );
518
+ });
519
+ }, [itemRenderer, lookup, reflection, hiddenFlags]);
520
+ const NavigationCol = (props2) => {
521
+ return /* @__PURE__ */ jsxs8(FlexCol6, { ...props2, children: [
522
+ /* @__PURE__ */ jsx14(
523
+ TextField,
524
+ {
525
+ fullWidth: true,
526
+ InputProps: {
527
+ startAdornment: /* @__PURE__ */ jsx14(Search, {})
528
+ },
529
+ onChange: onSearchTermChange
530
+ }
531
+ ),
532
+ /* @__PURE__ */ jsx14(FlexGrowCol, { marginTop: 1, alignItems: "stretch", children: /* @__PURE__ */ jsx14(
533
+ ReflectionTreeViewer,
534
+ {
535
+ justifyContent: "flex-start",
536
+ position: "absolute",
537
+ top: 0,
538
+ left: 0,
539
+ right: 0,
540
+ bottom: 0,
541
+ overflow: "scroll",
542
+ searchTerm,
543
+ hiddenFlags,
544
+ reflection,
545
+ lookup,
546
+ border: `1px solid ${theme.palette.grey["300"]}`,
547
+ borderRadius: 1,
548
+ paddingY: 1
549
+ }
550
+ ) })
551
+ ] });
552
+ };
553
+ const DetailsCol = (props2) => {
554
+ return /* @__PURE__ */ jsx14(FlexGrowCol, { ...props2, children: /* @__PURE__ */ jsx14(FlexGrowCol, { alignItems: "stretch", children: /* @__PURE__ */ jsx14(
555
+ FlexCol6,
556
+ {
557
+ alignItems: "stretch",
558
+ justifyContent: "flex-start",
559
+ position: "absolute",
560
+ top: 0,
561
+ left: 0,
562
+ right: 0,
563
+ bottom: 0,
564
+ overflow: "scroll",
565
+ borderRadius: 1,
566
+ padding: 1,
567
+ border: `1px solid ${theme.palette.grey["300"]}`,
568
+ children: reflectionGroups
569
+ }
570
+ ) }) });
571
+ };
572
+ return /* @__PURE__ */ jsxs8(FlexRow4, { alignItems: "stretch", justifyContent: "start", sx: { overflowY: "scroll" }, ...props, children: [
573
+ /* @__PURE__ */ jsx14(NavigationCol, { minWidth: 320, alignItems: "stretch", justifyContent: "flex-start", overflow: "hidden" }),
574
+ /* @__PURE__ */ jsx14(DetailsCol, { marginLeft: 1, alignItems: "stretch", justifyContent: "flex-start", overflow: "hidden" })
575
+ ] });
576
+ };
577
+
578
+ // src/ProjectTwoPanelReflectionViewer.tsx
579
+ import { jsx as jsx15 } from "react/jsx-runtime";
580
+ var ProjectTwoPanelReflectionViewer = ({
581
+ reflection,
582
+ itemRenderer = DeclarationContainerReflectionViewer,
583
+ ...props
584
+ }) => {
585
+ assertEx(reflection.isProject, "Project expected to be Project");
586
+ return /* @__PURE__ */ jsx15(TwoPanelReflectionViewer, { itemRenderer, reflection, ...props });
587
+ };
588
+
589
+ // src/SourceViewer.tsx
590
+ import { Typography as Typography7 } from "@mui/material";
591
+ import { FlexCol as FlexCol7 } from "@xylabs/react-flexbox";
592
+ import { jsx as jsx16 } from "react/jsx-runtime";
593
+ var SourceViewer = ({ source, ...props }) => {
594
+ return /* @__PURE__ */ jsx16(FlexCol7, { alignItems: "stretch", ...props, children: /* @__PURE__ */ jsx16(Typography7, { style: { opacity: 0.5 }, variant: "body2", children: /* @__PURE__ */ jsx16("i", { children: source.fileName }) }) });
595
+ };
596
+ export {
597
+ CommentViewer,
598
+ ContainerReflectionViewer,
599
+ DeclarationContainerReflectionViewer,
600
+ DeclarationReflectionViewer,
601
+ JsonViewerButton,
602
+ ProjectReflectionViewer,
603
+ ProjectTwoPanelReflectionViewer,
604
+ ReflectionGroupTreeViewer,
605
+ ReflectionGroupViewer,
606
+ ReflectionTreeViewer,
607
+ ReflectionViewer,
608
+ SomeTypeViewer,
609
+ SourceViewer,
610
+ TwoPanelReflectionViewer
611
+ };
10
612
  //# sourceMappingURL=index.js.map