@xyo-network/react-powered-by-xyo 7.0.0 → 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browser/components/stories/PoweredByXyo.stories.d.ts +4 -4
- package/dist/browser/components/stories/PoweredByXyo.stories.d.ts.map +1 -1
- package/dist/browser/components/stories/PoweredByXyoButton.stories.d.ts +2 -2
- package/dist/browser/components/stories/PoweredByXyoButton.stories.d.ts.map +1 -1
- package/dist/browser/components/stories/XyoBusy.stories.d.ts +2 -2
- package/dist/browser/index.mjs +264 -330
- package/dist/browser/index.mjs.map +1 -1
- package/package.json +38 -37
|
@@ -2,10 +2,10 @@ import type { Meta } from '@storybook/react-vite';
|
|
|
2
2
|
import type { PoweredByXyoProps } from '../PoweredByXyo.tsx';
|
|
3
3
|
import { PoweredByXyo } from '../PoweredByXyo.tsx';
|
|
4
4
|
declare const StorybookEntry: Meta<typeof PoweredByXyo>;
|
|
5
|
-
declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoProps>;
|
|
6
|
-
declare const Busy: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoProps>;
|
|
7
|
-
declare const WithNode: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoProps>;
|
|
8
|
-
declare const WithNodeAndDebug: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoProps>;
|
|
5
|
+
declare const Default: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoProps>;
|
|
6
|
+
declare const Busy: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoProps>;
|
|
7
|
+
declare const WithNode: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoProps>;
|
|
8
|
+
declare const WithNodeAndDebug: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoProps>;
|
|
9
9
|
export { Busy, Default, WithNode, WithNodeAndDebug, };
|
|
10
10
|
export default StorybookEntry;
|
|
11
11
|
//# sourceMappingURL=PoweredByXyo.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoweredByXyo.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/stories/PoweredByXyo.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,uBAAuB,CAAA;AAe1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,QAAA,MAAM,cAAc,EAIf,IAAI,CAAC,OAAO,YAAY,CAAC,CAAA;AA2C9B,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"PoweredByXyo.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/stories/PoweredByXyo.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,uBAAuB,CAAA;AAe1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAGlD,QAAA,MAAM,cAAc,EAIf,IAAI,CAAC,OAAO,YAAY,CAAC,CAAA;AA2C9B,QAAA,MAAM,OAAO,uJAA6B,CAAA;AAE1C,QAAA,MAAM,IAAI,uJAA6B,CAAA;AAGvC,QAAA,MAAM,QAAQ,uJAAqC,CAAA;AAEnD,QAAA,MAAM,gBAAgB,uJAAqC,CAAA;AAG3D,OAAO,EACL,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,gBAAgB,GAC1C,CAAA;AAED,eAAe,cAAc,CAAA"}
|
|
@@ -2,8 +2,8 @@ import type { Meta } from '@storybook/react-vite';
|
|
|
2
2
|
import type { PoweredByXyoButtonProps } from '../PoweredByXyoButton.tsx';
|
|
3
3
|
import { PoweredByXyoButton } from '../PoweredByXyoButton.tsx';
|
|
4
4
|
declare const StorybookEntry: Meta<typeof PoweredByXyoButton>;
|
|
5
|
-
declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoButtonProps>;
|
|
6
|
-
declare const Busy: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoButtonProps>;
|
|
5
|
+
declare const Default: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoButtonProps>;
|
|
6
|
+
declare const Busy: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, PoweredByXyoButtonProps>;
|
|
7
7
|
export { Busy, Default };
|
|
8
8
|
export default StorybookEntry;
|
|
9
9
|
//# sourceMappingURL=PoweredByXyoButton.stories.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoweredByXyoButton.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/stories/PoweredByXyoButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,uBAAuB,CAAA;AAG1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,QAAA,MAAM,cAAc,EAIf,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAIpC,QAAA,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"PoweredByXyoButton.stories.d.ts","sourceRoot":"","sources":["../../../../src/components/stories/PoweredByXyoButton.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAW,MAAM,uBAAuB,CAAA;AAG1D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAA;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAE9D,QAAA,MAAM,cAAc,EAIf,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAIpC,QAAA,MAAM,OAAO,6JAA6B,CAAA;AAC1C,QAAA,MAAM,IAAI,6JAA6B,CAAA;AAGvC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;AAExB,eAAe,cAAc,CAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { Meta } from '@storybook/react-vite';
|
|
2
2
|
import { XyoBusy } from '../XyoBusy.tsx';
|
|
3
3
|
declare const StorybookEntry: Meta<typeof XyoBusy>;
|
|
4
|
-
declare const Default: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, Omit<import("@xylabs/react-flexbox").BusyBoxProps, "children"> & {
|
|
4
|
+
declare const Default: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, Omit<import("@xylabs/react-flexbox").BusyBoxProps, "children"> & {
|
|
5
5
|
busy?: boolean;
|
|
6
6
|
spinsPerSecond?: number;
|
|
7
7
|
widthInPixels?: number;
|
|
8
8
|
}>;
|
|
9
|
-
declare const Busy: import("storybook/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, Omit<import("@xylabs/react-flexbox").BusyBoxProps, "children"> & {
|
|
9
|
+
declare const Busy: import(".store/storybook-virtual-997ab3c959/package/internal/csf").AnnotatedStoryFn<import("@storybook/react-vite").ReactRenderer, Omit<import("@xylabs/react-flexbox").BusyBoxProps, "children"> & {
|
|
10
10
|
busy?: boolean;
|
|
11
11
|
spinsPerSecond?: number;
|
|
12
12
|
widthInPixels?: number;
|
package/dist/browser/index.mjs
CHANGED
|
@@ -1,9 +1,5 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
1
|
// src/components/ArchivistSummary.tsx
|
|
5
2
|
import { Inventory2Rounded as Inventory2RoundedIcon } from "@mui/icons-material";
|
|
6
|
-
import React2 from "react";
|
|
7
3
|
|
|
8
4
|
// src/components/ModuleSummary.tsx
|
|
9
5
|
import { Extension as ExtensionIcon } from "@mui/icons-material";
|
|
@@ -11,14 +7,16 @@ import { delay } from "@xylabs/delay";
|
|
|
11
7
|
import { FlexCol, FlexRow } from "@xylabs/react-flexbox";
|
|
12
8
|
import { useWeakModulesFromNode } from "@xyo-network/react-node";
|
|
13
9
|
import { TypographyEx } from "@xyo-network/react-shared";
|
|
14
|
-
import
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
10
|
+
import { useState } from "react";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
var ModuleSummary = ({
|
|
13
|
+
children,
|
|
14
|
+
icon,
|
|
15
|
+
mod,
|
|
16
|
+
...props
|
|
17
|
+
}) => {
|
|
18
|
+
const [downModules] = useWeakModulesFromNode(void 0, { direction: "down" });
|
|
19
|
+
const [upModules] = useWeakModulesFromNode(void 0, { direction: "up" });
|
|
22
20
|
const [busy, setBusy] = useState(false);
|
|
23
21
|
const downModulesFromResolve = downModules?.length;
|
|
24
22
|
const upModulesFromResolve = upModules?.length;
|
|
@@ -27,52 +25,48 @@ var ModuleSummary = /* @__PURE__ */ __name(({ children, icon, mod, ...props }) =
|
|
|
27
25
|
await delay(2e3);
|
|
28
26
|
setBusy(false);
|
|
29
27
|
});
|
|
30
|
-
return /* @__PURE__ */
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
}, icon ?? /* @__PURE__ */ React.createElement(ExtensionIcon, null)), /* @__PURE__ */ React.createElement(TypographyEx, {
|
|
39
|
-
marginX: 1
|
|
40
|
-
}, mod?.config?.name ?? "<Unknown>")), children ?? (downModulesFromResolve !== void 0 && upModulesFromResolve !== void 0) ? `[${downModulesFromResolve}\u2193/${upModulesFromResolve}\u2191]` : null));
|
|
41
|
-
}, "ModuleSummary");
|
|
28
|
+
return /* @__PURE__ */ jsx(FlexCol, { alignItems: "stretch", width: "100%", ...props, children: /* @__PURE__ */ jsxs(FlexRow, { justifyContent: "flex-start", children: [
|
|
29
|
+
/* @__PURE__ */ jsxs(FlexRow, { children: [
|
|
30
|
+
/* @__PURE__ */ jsx(TypographyEx, { color: busy ? "gray" : void 0, children: icon ?? /* @__PURE__ */ jsx(ExtensionIcon, {}) }),
|
|
31
|
+
/* @__PURE__ */ jsx(TypographyEx, { marginX: 1, children: mod?.config?.name ?? "<Unknown>" })
|
|
32
|
+
] }),
|
|
33
|
+
children ?? (downModulesFromResolve !== void 0 && upModulesFromResolve !== void 0) ? `[${downModulesFromResolve}\u2193/${upModulesFromResolve}\u2191]` : null
|
|
34
|
+
] }) });
|
|
35
|
+
};
|
|
42
36
|
|
|
43
37
|
// src/components/ArchivistSummary.tsx
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
...props
|
|
49
|
-
});
|
|
50
|
-
}, "ArchivistSummary");
|
|
38
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
39
|
+
var ArchivistSummary = ({ mod, ...props }) => {
|
|
40
|
+
return /* @__PURE__ */ jsx2(ModuleSummary, { mod, icon: /* @__PURE__ */ jsx2(Inventory2RoundedIcon, {}), ...props });
|
|
41
|
+
};
|
|
51
42
|
|
|
52
43
|
// src/components/BridgeSummary.tsx
|
|
53
44
|
import { InsertLinkRounded as InsertLinkRoundedIcon } from "@mui/icons-material";
|
|
54
|
-
import
|
|
55
|
-
var BridgeSummary =
|
|
56
|
-
return /* @__PURE__ */
|
|
57
|
-
|
|
58
|
-
icon: /* @__PURE__ */ React3.createElement(InsertLinkRoundedIcon, null),
|
|
59
|
-
...props
|
|
60
|
-
});
|
|
61
|
-
}, "BridgeSummary");
|
|
45
|
+
import { jsx as jsx3 } from "react/jsx-runtime";
|
|
46
|
+
var BridgeSummary = ({ mod, ...props }) => {
|
|
47
|
+
return /* @__PURE__ */ jsx3(ModuleSummary, { mod, icon: /* @__PURE__ */ jsx3(InsertLinkRoundedIcon, {}), ...props });
|
|
48
|
+
};
|
|
62
49
|
|
|
63
50
|
// src/components/DebugDialog.tsx
|
|
64
|
-
import {
|
|
65
|
-
|
|
51
|
+
import {
|
|
52
|
+
Button,
|
|
53
|
+
Dialog as Dialog2,
|
|
54
|
+
DialogActions as DialogActions2,
|
|
55
|
+
DialogContent as DialogContent2,
|
|
56
|
+
DialogTitle as DialogTitle2
|
|
57
|
+
} from "@mui/material";
|
|
66
58
|
|
|
67
59
|
// src/components/NodeDetails.tsx
|
|
68
60
|
import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
|
|
69
61
|
import { useProvidedNode, useWeakModulesFromNode as useWeakModulesFromNode3 } from "@xyo-network/react-node";
|
|
70
|
-
import React12 from "react";
|
|
71
62
|
|
|
72
63
|
// src/components/ModuleAccordion.tsx
|
|
73
64
|
import { ExpandMore as ExpandMoreIcon } from "@mui/icons-material";
|
|
74
|
-
import
|
|
75
|
-
|
|
65
|
+
import {
|
|
66
|
+
Accordion,
|
|
67
|
+
AccordionDetails,
|
|
68
|
+
AccordionSummary
|
|
69
|
+
} from "@mui/material";
|
|
76
70
|
|
|
77
71
|
// src/components/ModuleDetails.tsx
|
|
78
72
|
import { ButtonGroup } from "@mui/material";
|
|
@@ -82,87 +76,69 @@ import { usePromise } from "@xylabs/react-promise";
|
|
|
82
76
|
import { ModuleDescriptionSchema } from "@xyo-network/module-model";
|
|
83
77
|
import { isPayloadOfSchemaType } from "@xyo-network/payload-model";
|
|
84
78
|
import { Property } from "@xyo-network/react-property";
|
|
85
|
-
import React5 from "react";
|
|
86
79
|
|
|
87
80
|
// src/components/JsonViewerButton.tsx
|
|
88
|
-
import {
|
|
81
|
+
import {
|
|
82
|
+
Dialog,
|
|
83
|
+
DialogActions,
|
|
84
|
+
DialogContent,
|
|
85
|
+
DialogTitle
|
|
86
|
+
} from "@mui/material";
|
|
89
87
|
import { ButtonEx } from "@xylabs/react-button";
|
|
90
88
|
import { JsonViewerEx } from "@xyo-network/react-payload-raw-info";
|
|
91
|
-
import
|
|
92
|
-
|
|
89
|
+
import { useState as useState2 } from "react";
|
|
90
|
+
import { Fragment, jsx as jsx4, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
91
|
+
var JsonViewerButton = ({
|
|
92
|
+
children,
|
|
93
|
+
jsonViewProps,
|
|
94
|
+
src,
|
|
95
|
+
title,
|
|
96
|
+
...props
|
|
97
|
+
}) => {
|
|
93
98
|
const [open, setOpen] = useState2(false);
|
|
94
|
-
return /* @__PURE__ */
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
})), /* @__PURE__ */ React4.createElement(DialogActions, null, /* @__PURE__ */ React4.createElement(ButtonEx, {
|
|
104
|
-
onClick: /* @__PURE__ */ __name(() => setOpen(false), "onClick")
|
|
105
|
-
}, "Close"))));
|
|
106
|
-
}, "JsonViewerButton");
|
|
99
|
+
return /* @__PURE__ */ jsxs2(Fragment, { children: [
|
|
100
|
+
/* @__PURE__ */ jsx4(ButtonEx, { onClick: () => setOpen(!open), ...props, children: children ?? "JSON" }),
|
|
101
|
+
/* @__PURE__ */ jsxs2(Dialog, { open, onClose: () => setOpen(false), children: [
|
|
102
|
+
title ? /* @__PURE__ */ jsx4(DialogTitle, { children: title }) : null,
|
|
103
|
+
/* @__PURE__ */ jsx4(DialogContent, { children: /* @__PURE__ */ jsx4(JsonViewerEx, { value: src, ...jsonViewProps }) }),
|
|
104
|
+
/* @__PURE__ */ jsx4(DialogActions, { children: /* @__PURE__ */ jsx4(ButtonEx, { onClick: () => setOpen(false), children: "Close" }) })
|
|
105
|
+
] })
|
|
106
|
+
] });
|
|
107
|
+
};
|
|
107
108
|
|
|
108
109
|
// src/components/ModuleDetails.tsx
|
|
109
|
-
|
|
110
|
+
import { jsx as jsx5, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
111
|
+
var ModuleDetails = ({ mod, ...props }) => {
|
|
110
112
|
const [manifest] = usePromise(async () => {
|
|
111
113
|
return await mod?.manifest();
|
|
112
|
-
}, [
|
|
113
|
-
mod
|
|
114
|
-
]);
|
|
114
|
+
}, [mod]);
|
|
115
115
|
const [discover] = usePromise(async () => {
|
|
116
116
|
return await mod?.state();
|
|
117
|
-
}, [
|
|
118
|
-
mod
|
|
119
|
-
]);
|
|
117
|
+
}, [mod]);
|
|
120
118
|
const [describe] = usePromise(async () => {
|
|
121
119
|
const state = await mod?.state();
|
|
122
120
|
return state?.find(isPayloadOfSchemaType(ModuleDescriptionSchema));
|
|
123
|
-
}, [
|
|
124
|
-
mod
|
|
125
|
-
]);
|
|
121
|
+
}, [mod]);
|
|
126
122
|
const queries = mod?.queries;
|
|
127
123
|
const config = mod?.config;
|
|
128
|
-
return /* @__PURE__ */
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
}, "Discover") : null, describe ? /* @__PURE__ */ React5.createElement(JsonViewerButton, {
|
|
147
|
-
variant: "contained",
|
|
148
|
-
src: describe
|
|
149
|
-
}, "Describe") : null, queries ? /* @__PURE__ */ React5.createElement(JsonViewerButton, {
|
|
150
|
-
variant: "contained",
|
|
151
|
-
src: queries
|
|
152
|
-
}, "Queries") : null), /* @__PURE__ */ React5.createElement(ButtonGroup, null, /* @__PURE__ */ React5.createElement(ButtonEx2, {
|
|
153
|
-
target: "_blank",
|
|
154
|
-
href: `https://explore.xyo.network/block?network=main&address=${mod?.address}`,
|
|
155
|
-
variant: "outlined"
|
|
156
|
-
}, "Main"), /* @__PURE__ */ React5.createElement(ButtonEx2, {
|
|
157
|
-
target: "_blank",
|
|
158
|
-
href: `https://beta.explore.xyo.network/block?network=kerplunk&address=${mod?.address}`,
|
|
159
|
-
variant: "outlined"
|
|
160
|
-
}, "Kerplunk"), /* @__PURE__ */ React5.createElement(ButtonEx2, {
|
|
161
|
-
target: "_blank",
|
|
162
|
-
href: `https://beta.explore.xyo.network/block?network=local&address=${mod?.address}`,
|
|
163
|
-
variant: "outlined"
|
|
164
|
-
}, "Local"))));
|
|
165
|
-
}, "ModuleDetails");
|
|
124
|
+
return /* @__PURE__ */ jsxs3(FlexCol2, { alignItems: "stretch", ...props, children: [
|
|
125
|
+
/* @__PURE__ */ jsx5(Property, { title: "Address", value: mod?.address }),
|
|
126
|
+
/* @__PURE__ */ jsxs3(FlexRow2, { gap: 1, justifyContent: "space-between", children: [
|
|
127
|
+
/* @__PURE__ */ jsxs3(ButtonGroup, { children: [
|
|
128
|
+
manifest ? /* @__PURE__ */ jsx5(JsonViewerButton, { variant: "contained", src: manifest, children: "Manifest" }) : null,
|
|
129
|
+
config ? /* @__PURE__ */ jsx5(JsonViewerButton, { variant: "contained", src: config, children: "Config" }) : null,
|
|
130
|
+
discover ? /* @__PURE__ */ jsx5(JsonViewerButton, { variant: "contained", src: discover, children: "Discover" }) : null,
|
|
131
|
+
describe ? /* @__PURE__ */ jsx5(JsonViewerButton, { variant: "contained", src: describe, children: "Describe" }) : null,
|
|
132
|
+
queries ? /* @__PURE__ */ jsx5(JsonViewerButton, { variant: "contained", src: queries, children: "Queries" }) : null
|
|
133
|
+
] }),
|
|
134
|
+
/* @__PURE__ */ jsxs3(ButtonGroup, { children: [
|
|
135
|
+
/* @__PURE__ */ jsx5(ButtonEx2, { target: "_blank", href: `https://explore.xyo.network/block?network=main&address=${mod?.address}`, variant: "outlined", children: "Main" }),
|
|
136
|
+
/* @__PURE__ */ jsx5(ButtonEx2, { target: "_blank", href: `https://beta.explore.xyo.network/block?network=kerplunk&address=${mod?.address}`, variant: "outlined", children: "Kerplunk" }),
|
|
137
|
+
/* @__PURE__ */ jsx5(ButtonEx2, { target: "_blank", href: `https://beta.explore.xyo.network/block?network=local&address=${mod?.address}`, variant: "outlined", children: "Local" })
|
|
138
|
+
] })
|
|
139
|
+
] })
|
|
140
|
+
] });
|
|
141
|
+
};
|
|
166
142
|
|
|
167
143
|
// src/components/TypedModuleSummary.tsx
|
|
168
144
|
import { isArchivistInstance } from "@xyo-network/archivist-model";
|
|
@@ -171,152 +147,98 @@ import { isDivinerInstance } from "@xyo-network/diviner-model";
|
|
|
171
147
|
import { isNodeInstance } from "@xyo-network/node-model";
|
|
172
148
|
import { isSentinelInstance } from "@xyo-network/sentinel-model";
|
|
173
149
|
import { isWitnessInstance } from "@xyo-network/witness-model";
|
|
174
|
-
import React10 from "react";
|
|
175
150
|
|
|
176
151
|
// src/components/DivinerSummary.tsx
|
|
177
152
|
import { BubbleChartRounded as BubbleChartRoundedIcon } from "@mui/icons-material";
|
|
178
|
-
import
|
|
179
|
-
var DivinerSummary =
|
|
180
|
-
return /* @__PURE__ */
|
|
181
|
-
|
|
182
|
-
icon: /* @__PURE__ */ React6.createElement(BubbleChartRoundedIcon, null),
|
|
183
|
-
...props
|
|
184
|
-
});
|
|
185
|
-
}, "DivinerSummary");
|
|
153
|
+
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
154
|
+
var DivinerSummary = ({ mod, ...props }) => {
|
|
155
|
+
return /* @__PURE__ */ jsx6(ModuleSummary, { mod, icon: /* @__PURE__ */ jsx6(BubbleChartRoundedIcon, {}), ...props });
|
|
156
|
+
};
|
|
186
157
|
|
|
187
158
|
// src/components/NodeSummary.tsx
|
|
188
159
|
import { HubRounded as HubRoundedIcon } from "@mui/icons-material";
|
|
189
160
|
import { usePromise as usePromise2 } from "@xylabs/react-promise";
|
|
190
161
|
import { useWeakModulesFromNode as useWeakModulesFromNode2 } from "@xyo-network/react-node";
|
|
191
|
-
import
|
|
192
|
-
var NodeSummary =
|
|
162
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
163
|
+
var NodeSummary = ({ mod, ...props }) => {
|
|
193
164
|
const [manifest] = usePromise2(async () => {
|
|
194
165
|
return await mod?.manifest();
|
|
195
|
-
}, [
|
|
196
|
-
|
|
197
|
-
]);
|
|
198
|
-
const [downModules] = useWeakModulesFromNode2(void 0, {
|
|
199
|
-
direction: "down"
|
|
200
|
-
});
|
|
201
|
-
const [upModules] = useWeakModulesFromNode2(void 0, {
|
|
202
|
-
direction: "up"
|
|
203
|
-
});
|
|
166
|
+
}, [mod]);
|
|
167
|
+
const [downModules] = useWeakModulesFromNode2(void 0, { direction: "down" });
|
|
168
|
+
const [upModules] = useWeakModulesFromNode2(void 0, { direction: "up" });
|
|
204
169
|
const downModulesFromResolve = downModules?.length;
|
|
205
170
|
const upModulesFromResolve = upModules?.length;
|
|
206
171
|
const manifestPublicModules = manifest?.modules?.public?.length;
|
|
207
|
-
return /* @__PURE__ */
|
|
208
|
-
|
|
209
|
-
icon: /* @__PURE__ */ React7.createElement(HubRoundedIcon, null),
|
|
210
|
-
...props
|
|
211
|
-
}, manifestPublicModules !== void 0 && downModulesFromResolve !== void 0 && upModulesFromResolve !== void 0 ? `[${manifestPublicModules}m/${downModulesFromResolve}\u2193/${upModulesFromResolve}\u2191]` : null);
|
|
212
|
-
}, "NodeSummary");
|
|
172
|
+
return /* @__PURE__ */ jsx7(ModuleSummary, { mod, icon: /* @__PURE__ */ jsx7(HubRoundedIcon, {}), ...props, children: manifestPublicModules !== void 0 && downModulesFromResolve !== void 0 && upModulesFromResolve !== void 0 ? `[${manifestPublicModules}m/${downModulesFromResolve}\u2193/${upModulesFromResolve}\u2191]` : null });
|
|
173
|
+
};
|
|
213
174
|
|
|
214
175
|
// src/components/SentinelSummary.tsx
|
|
215
176
|
import { TimerRounded as TimerRoundedIcon } from "@mui/icons-material";
|
|
216
|
-
import
|
|
217
|
-
var SentinelSummary =
|
|
218
|
-
return /* @__PURE__ */
|
|
219
|
-
|
|
220
|
-
icon: /* @__PURE__ */ React8.createElement(TimerRoundedIcon, null),
|
|
221
|
-
...props
|
|
222
|
-
});
|
|
223
|
-
}, "SentinelSummary");
|
|
177
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
178
|
+
var SentinelSummary = ({ mod, ...props }) => {
|
|
179
|
+
return /* @__PURE__ */ jsx8(ModuleSummary, { mod, icon: /* @__PURE__ */ jsx8(TimerRoundedIcon, {}), ...props });
|
|
180
|
+
};
|
|
224
181
|
|
|
225
182
|
// src/components/WitnessSummary.tsx
|
|
226
183
|
import { VisibilityRounded as VisibilityRoundedIcon } from "@mui/icons-material";
|
|
227
|
-
import
|
|
228
|
-
var WitnessSummary =
|
|
229
|
-
return /* @__PURE__ */
|
|
230
|
-
|
|
231
|
-
icon: /* @__PURE__ */ React9.createElement(VisibilityRoundedIcon, null),
|
|
232
|
-
...props
|
|
233
|
-
});
|
|
234
|
-
}, "WitnessSummary");
|
|
184
|
+
import { jsx as jsx9 } from "react/jsx-runtime";
|
|
185
|
+
var WitnessSummary = ({ mod, ...props }) => {
|
|
186
|
+
return /* @__PURE__ */ jsx9(ModuleSummary, { mod, icon: /* @__PURE__ */ jsx9(VisibilityRoundedIcon, {}), ...props });
|
|
187
|
+
};
|
|
235
188
|
|
|
236
189
|
// src/components/TypedModuleSummary.tsx
|
|
237
|
-
|
|
190
|
+
import { jsx as jsx10 } from "react/jsx-runtime";
|
|
191
|
+
var TypedModuleSummary = ({ mod, ...props }) => {
|
|
238
192
|
if (isArchivistInstance(mod)) {
|
|
239
|
-
return /* @__PURE__ */
|
|
240
|
-
mod,
|
|
241
|
-
...props
|
|
242
|
-
});
|
|
193
|
+
return /* @__PURE__ */ jsx10(ArchivistSummary, { mod, ...props });
|
|
243
194
|
}
|
|
244
195
|
if (isDivinerInstance(mod)) {
|
|
245
|
-
return /* @__PURE__ */
|
|
246
|
-
mod,
|
|
247
|
-
...props
|
|
248
|
-
});
|
|
196
|
+
return /* @__PURE__ */ jsx10(DivinerSummary, { mod, ...props });
|
|
249
197
|
}
|
|
250
198
|
if (isNodeInstance(mod)) {
|
|
251
|
-
return /* @__PURE__ */
|
|
252
|
-
mod,
|
|
253
|
-
...props
|
|
254
|
-
});
|
|
199
|
+
return /* @__PURE__ */ jsx10(NodeSummary, { mod, ...props });
|
|
255
200
|
}
|
|
256
201
|
if (isWitnessInstance(mod)) {
|
|
257
|
-
return /* @__PURE__ */
|
|
258
|
-
mod,
|
|
259
|
-
...props
|
|
260
|
-
});
|
|
202
|
+
return /* @__PURE__ */ jsx10(WitnessSummary, { mod, ...props });
|
|
261
203
|
}
|
|
262
204
|
if (isBridgeInstance(mod)) {
|
|
263
|
-
return /* @__PURE__ */
|
|
264
|
-
mod,
|
|
265
|
-
...props
|
|
266
|
-
});
|
|
205
|
+
return /* @__PURE__ */ jsx10(BridgeSummary, { mod, ...props });
|
|
267
206
|
}
|
|
268
207
|
if (isSentinelInstance(mod)) {
|
|
269
|
-
return /* @__PURE__ */
|
|
270
|
-
mod,
|
|
271
|
-
...props
|
|
272
|
-
});
|
|
208
|
+
return /* @__PURE__ */ jsx10(SentinelSummary, { mod, ...props });
|
|
273
209
|
}
|
|
274
|
-
return /* @__PURE__ */
|
|
275
|
-
|
|
276
|
-
...props
|
|
277
|
-
});
|
|
278
|
-
}, "TypedModuleSummary");
|
|
210
|
+
return /* @__PURE__ */ jsx10(ModuleSummary, { mod, ...props });
|
|
211
|
+
};
|
|
279
212
|
|
|
280
213
|
// src/components/ModuleAccordion.tsx
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
mod
|
|
286
|
-
})
|
|
287
|
-
|
|
288
|
-
})));
|
|
289
|
-
}, "ModuleAccordion");
|
|
214
|
+
import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
215
|
+
var ModuleAccordion = ({ mod, ...props }) => {
|
|
216
|
+
return /* @__PURE__ */ jsxs4(Accordion, { ...props, children: [
|
|
217
|
+
/* @__PURE__ */ jsx11(AccordionSummary, { expandIcon: /* @__PURE__ */ jsx11(ExpandMoreIcon, {}), children: /* @__PURE__ */ jsx11(TypedModuleSummary, { mod }) }),
|
|
218
|
+
/* @__PURE__ */ jsx11(AccordionDetails, { children: /* @__PURE__ */ jsx11(ModuleDetails, { mod }) })
|
|
219
|
+
] });
|
|
220
|
+
};
|
|
290
221
|
|
|
291
222
|
// src/components/NodeDetails.tsx
|
|
292
|
-
|
|
223
|
+
import { Fragment as Fragment2, jsx as jsx12 } from "react/jsx-runtime";
|
|
224
|
+
var NodeDetails = ({ mod, ...props }) => {
|
|
293
225
|
const [node = mod] = useProvidedNode();
|
|
294
|
-
const [children] = useWeakModulesFromNode3(void 0, {
|
|
295
|
-
|
|
296
|
-
});
|
|
297
|
-
return /* @__PURE__ */ React12.createElement(FlexCol3, {
|
|
298
|
-
alignItems: "stretch",
|
|
299
|
-
...props
|
|
300
|
-
}, children ? /* @__PURE__ */ React12.createElement(React12.Fragment, null, /* @__PURE__ */ React12.createElement(FlexCol3, {
|
|
301
|
-
alignItems: "stretch",
|
|
302
|
-
marginY: 1
|
|
303
|
-
}, children?.map((child) => {
|
|
226
|
+
const [children] = useWeakModulesFromNode3(void 0, { node: node ?? void 0 });
|
|
227
|
+
return /* @__PURE__ */ jsx12(FlexCol3, { alignItems: "stretch", ...props, children: children ? /* @__PURE__ */ jsx12(Fragment2, { children: /* @__PURE__ */ jsx12(FlexCol3, { alignItems: "stretch", marginY: 1, children: children?.map((child) => {
|
|
304
228
|
const instance = child.deref();
|
|
305
|
-
return instance ? /* @__PURE__ */
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
}) : null;
|
|
309
|
-
}))) : null);
|
|
310
|
-
}, "NodeDetails");
|
|
229
|
+
return instance ? /* @__PURE__ */ jsx12(ModuleAccordion, { mod: instance }, instance.address) : null;
|
|
230
|
+
}) }) }) : null });
|
|
231
|
+
};
|
|
311
232
|
|
|
312
233
|
// src/components/DebugDialog.tsx
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
}
|
|
234
|
+
import { jsx as jsx13, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
235
|
+
var DebugDialog = ({ onClose, ...props }) => {
|
|
236
|
+
return /* @__PURE__ */ jsxs5(Dialog2, { ...props, children: [
|
|
237
|
+
/* @__PURE__ */ jsx13(DialogTitle2, { children: "Xyo Module Viewer" }),
|
|
238
|
+
/* @__PURE__ */ jsx13(DialogContent2, { children: /* @__PURE__ */ jsx13(NodeDetails, { width: "100%" }) }),
|
|
239
|
+
/* @__PURE__ */ jsx13(DialogActions2, { children: /* @__PURE__ */ jsx13(Button, { onClick: (event) => onClose?.(event, "backdropClick"), children: "Close" }) })
|
|
240
|
+
] });
|
|
241
|
+
};
|
|
320
242
|
|
|
321
243
|
// src/components/PoweredByXyo.tsx
|
|
322
244
|
import { Paper } from "@mui/material";
|
|
@@ -325,13 +247,13 @@ import { forget } from "@xylabs/forget";
|
|
|
325
247
|
import { useAsyncEffect } from "@xylabs/react-async-effect";
|
|
326
248
|
import { FlexCol as FlexCol6 } from "@xylabs/react-flexbox";
|
|
327
249
|
import { useProvidedNode as useProvidedNode2 } from "@xyo-network/react-node";
|
|
328
|
-
import
|
|
250
|
+
import { useMemo, useState as useState5 } from "react";
|
|
329
251
|
|
|
330
252
|
// src/components/PoweredByXyoButton.tsx
|
|
331
253
|
import { Typography } from "@mui/material";
|
|
332
254
|
import { ButtonEx as ButtonEx3 } from "@xylabs/react-button";
|
|
333
255
|
import { FlexCol as FlexCol5, FlexRow as FlexRow3 } from "@xylabs/react-flexbox";
|
|
334
|
-
import
|
|
256
|
+
import { useEffect, useState as useState4 } from "react";
|
|
335
257
|
|
|
336
258
|
// src/img/xyo-color-logo.svg
|
|
337
259
|
var xyo_color_logo_default = '<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 238"><defs><style>.cls-1{fill:#8d8fc6;}.cls-2{fill:#579fd6;}.cls-3{fill:#f27046;}.cls-4{fill:#eb407a;}</style></defs><path class="cls-1" d="M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z"/><path class="cls-2" d="M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z"/><path class="cls-3" d="M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z"/><path class="cls-4" d="M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z"/></svg>';
|
|
@@ -341,79 +263,96 @@ var xyo_color_logo_text_only_default = '<svg id="Layer_1" data-name="Layer 1" xm
|
|
|
341
263
|
|
|
342
264
|
// src/components/XyoBusy.tsx
|
|
343
265
|
import { FlexCol as FlexCol4 } from "@xylabs/react-flexbox";
|
|
344
|
-
import
|
|
345
|
-
|
|
266
|
+
import { useState as useState3 } from "react";
|
|
267
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
268
|
+
var XyoBusy = ({
|
|
269
|
+
widthInPixels,
|
|
270
|
+
busy,
|
|
271
|
+
spinsPerSecond = 0.5,
|
|
272
|
+
...props
|
|
273
|
+
}) => {
|
|
346
274
|
const [imageLoaded, setImageLoaded] = useState3(false);
|
|
347
275
|
if (!imageLoaded) {
|
|
348
276
|
const img = new Image();
|
|
349
277
|
img.addEventListener("load", () => setImageLoaded(true));
|
|
350
278
|
img.src = xyo_color_logo_default;
|
|
351
279
|
}
|
|
352
|
-
return imageLoaded ? /* @__PURE__ */
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
280
|
+
return imageLoaded ? /* @__PURE__ */ jsx14(
|
|
281
|
+
FlexCol4,
|
|
282
|
+
{
|
|
283
|
+
sx: {
|
|
284
|
+
"@keyframes spin": {
|
|
285
|
+
"0%": { transform: "rotate(360deg)" },
|
|
286
|
+
"100%": { transform: "rotate(0deg)" }
|
|
357
287
|
},
|
|
358
|
-
"
|
|
359
|
-
|
|
360
|
-
}
|
|
288
|
+
"animation": busy ? `spin ${1 / spinsPerSecond}s linear infinite` : void 0,
|
|
289
|
+
"animationDirection": "reverse"
|
|
361
290
|
},
|
|
362
|
-
|
|
363
|
-
"
|
|
364
|
-
}
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
src: xyo_color_logo_default,
|
|
368
|
-
height: widthInPixels ?? 22
|
|
369
|
-
})) : null;
|
|
370
|
-
}, "XyoBusy");
|
|
291
|
+
...props,
|
|
292
|
+
children: /* @__PURE__ */ jsx14("img", { src: xyo_color_logo_default, height: widthInPixels ?? 22 })
|
|
293
|
+
}
|
|
294
|
+
) : null;
|
|
295
|
+
};
|
|
371
296
|
|
|
372
297
|
// src/components/PoweredByXyoButton.tsx
|
|
373
|
-
|
|
298
|
+
import { jsx as jsx15, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
299
|
+
var PoweredByXyoButton = ({
|
|
300
|
+
busy = false,
|
|
301
|
+
logoHeight,
|
|
302
|
+
logoTextSize,
|
|
303
|
+
...props
|
|
304
|
+
}) => {
|
|
374
305
|
const [imageLoaded, setImageLoaded] = useState4(false);
|
|
375
306
|
useEffect(() => {
|
|
376
307
|
const img = new Image();
|
|
377
|
-
const onImageLoaded =
|
|
308
|
+
const onImageLoaded = () => setImageLoaded(true);
|
|
378
309
|
img.addEventListener("load", onImageLoaded);
|
|
379
310
|
img.src = xyo_color_logo_text_only_default;
|
|
380
311
|
return () => {
|
|
381
312
|
img.removeEventListener("load", onImageLoaded);
|
|
382
313
|
};
|
|
383
314
|
}, []);
|
|
384
|
-
return imageLoaded ? /* @__PURE__ */
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
315
|
+
return imageLoaded ? /* @__PURE__ */ jsx15(
|
|
316
|
+
ButtonEx3,
|
|
317
|
+
{
|
|
318
|
+
...props,
|
|
319
|
+
target: props.target ?? "_blank",
|
|
320
|
+
variant: props.variant ?? "text",
|
|
321
|
+
sx: {
|
|
322
|
+
textDecoration: "none",
|
|
323
|
+
borderRadius: 0,
|
|
324
|
+
padding: 0,
|
|
325
|
+
...props.sx
|
|
326
|
+
},
|
|
327
|
+
children: /* @__PURE__ */ jsxs6(FlexCol5, { padding: 0.5, children: [
|
|
328
|
+
/* @__PURE__ */ jsx15(Typography, { style: { fontSize: logoTextSize ?? 10 }, fontSize: "small", children: "Powered by" }),
|
|
329
|
+
/* @__PURE__ */ jsxs6(FlexRow3, { children: [
|
|
330
|
+
/* @__PURE__ */ jsx15(XyoBusy, { busy }),
|
|
331
|
+
/* @__PURE__ */ jsx15("img", { src: xyo_color_logo_text_only_default, height: logoHeight ?? 24, width: 45 })
|
|
332
|
+
] })
|
|
333
|
+
] })
|
|
393
334
|
}
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
}, /* @__PURE__ */ React15.createElement(Typography, {
|
|
397
|
-
style: {
|
|
398
|
-
fontSize: logoTextSize ?? 10
|
|
399
|
-
},
|
|
400
|
-
fontSize: "small"
|
|
401
|
-
}, "Powered by"), /* @__PURE__ */ React15.createElement(FlexRow3, null, /* @__PURE__ */ React15.createElement(XyoBusy, {
|
|
402
|
-
busy
|
|
403
|
-
}), /* @__PURE__ */ React15.createElement("img", {
|
|
404
|
-
src: xyo_color_logo_text_only_default,
|
|
405
|
-
height: logoHeight ?? 24,
|
|
406
|
-
width: 45
|
|
407
|
-
})))) : null;
|
|
408
|
-
}, "PoweredByXyoButton");
|
|
335
|
+
) : null;
|
|
336
|
+
};
|
|
409
337
|
|
|
410
338
|
// src/components/PoweredByXyo.tsx
|
|
411
|
-
|
|
339
|
+
import { jsx as jsx16, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
340
|
+
var PoweredByXyo = ({
|
|
341
|
+
autoStop,
|
|
342
|
+
busy,
|
|
343
|
+
buttonProps,
|
|
344
|
+
debugDialog = false,
|
|
345
|
+
disableAnimation = false,
|
|
346
|
+
href = "https://xyo.network",
|
|
347
|
+
logoHeight,
|
|
348
|
+
logoTextSize,
|
|
349
|
+
onButtonClick,
|
|
350
|
+
node: propNode,
|
|
351
|
+
...props
|
|
352
|
+
}) => {
|
|
412
353
|
const [node] = useProvidedNode2();
|
|
413
354
|
const [debugDialogOpen, setDebugDialogOpen] = useState5(false);
|
|
414
|
-
const busyMap = useMemo(() => ({}), [
|
|
415
|
-
node
|
|
416
|
-
]);
|
|
355
|
+
const busyMap = useMemo(() => ({}), [node]);
|
|
417
356
|
const activeBusy = busy ?? Object.values(busyMap).includes(true);
|
|
418
357
|
const activeOnButtonClick = (debugDialog ? (event) => {
|
|
419
358
|
if (event.shiftKey && event.altKey) {
|
|
@@ -423,77 +362,72 @@ var PoweredByXyo = /* @__PURE__ */ __name(({ autoStop, busy, buttonProps, debugD
|
|
|
423
362
|
}
|
|
424
363
|
} : void 0) ?? onButtonClick;
|
|
425
364
|
const activeHref = activeOnButtonClick ? void 0 : href;
|
|
426
|
-
const onKeyDownEscListener =
|
|
365
|
+
const onKeyDownEscListener = (event) => {
|
|
427
366
|
if (event.key === "Escape" && debugDialogOpen) {
|
|
428
367
|
setDebugDialogOpen(false);
|
|
429
368
|
}
|
|
430
|
-
}
|
|
431
|
-
useAsyncEffect(
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
369
|
+
};
|
|
370
|
+
useAsyncEffect(
|
|
371
|
+
async () => {
|
|
372
|
+
const activeNode = propNode ?? node;
|
|
373
|
+
if (disableAnimation) {
|
|
374
|
+
return;
|
|
375
|
+
} else if (activeNode) {
|
|
376
|
+
const mods = await activeNode?.resolve("*");
|
|
377
|
+
mods?.map((mod) => {
|
|
378
|
+
return mod.on("moduleBusy", ({ mod: mod2, busy: busy2 }) => {
|
|
379
|
+
busyMap[mod2.address] = busy2;
|
|
380
|
+
if (autoStop) {
|
|
381
|
+
forget(
|
|
382
|
+
(async () => {
|
|
383
|
+
await delay2(1e3);
|
|
384
|
+
busyMap[mod2.address] = false;
|
|
385
|
+
})()
|
|
386
|
+
);
|
|
387
|
+
}
|
|
388
|
+
});
|
|
389
|
+
});
|
|
390
|
+
activeNode?.on("moduleBusy", ({ mod, busy: busy2 }) => {
|
|
391
|
+
busyMap[mod.address] = busy2;
|
|
440
392
|
if (autoStop) {
|
|
441
|
-
forget(
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
393
|
+
forget(
|
|
394
|
+
(async () => {
|
|
395
|
+
await delay2(1e3);
|
|
396
|
+
busyMap[mod.address] = false;
|
|
397
|
+
})()
|
|
398
|
+
);
|
|
445
399
|
}
|
|
446
400
|
});
|
|
447
|
-
}
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
}
|
|
475
|
-
}
|
|
476
|
-
|
|
477
|
-
href: activeHref,
|
|
478
|
-
busy: activeBusy,
|
|
479
|
-
logoHeight,
|
|
480
|
-
logoTextSize,
|
|
481
|
-
fullWidth: true,
|
|
482
|
-
...buttonProps
|
|
483
|
-
}) : /* @__PURE__ */ React16.createElement(PoweredByXyoButton, {
|
|
484
|
-
onClick: activeOnButtonClick,
|
|
485
|
-
busy: activeBusy,
|
|
486
|
-
logoHeight,
|
|
487
|
-
logoTextSize,
|
|
488
|
-
fullWidth: true,
|
|
489
|
-
...buttonProps
|
|
490
|
-
})), debugDialog && debugDialogOpen ? /* @__PURE__ */ React16.createElement(DebugDialog, {
|
|
491
|
-
fullScreen: true,
|
|
492
|
-
open: debugDialogOpen,
|
|
493
|
-
onClose: /* @__PURE__ */ __name(() => setDebugDialogOpen(false), "onClose"),
|
|
494
|
-
onKeyDown: onKeyDownEscListener
|
|
495
|
-
}) : null);
|
|
496
|
-
}, "PoweredByXyo");
|
|
401
|
+
}
|
|
402
|
+
},
|
|
403
|
+
[disableAnimation, propNode, node, busyMap, autoStop]
|
|
404
|
+
);
|
|
405
|
+
return /* @__PURE__ */ jsxs7(FlexCol6, { alignItems: "stretch", position: "absolute", bottom: "0", left: "0", ...props, children: [
|
|
406
|
+
/* @__PURE__ */ jsx16(Paper, { sx: { borderRadius: 0 }, children: activeHref ? /* @__PURE__ */ jsx16(
|
|
407
|
+
PoweredByXyoButton,
|
|
408
|
+
{
|
|
409
|
+
onClick: activeOnButtonClick,
|
|
410
|
+
href: activeHref,
|
|
411
|
+
busy: activeBusy,
|
|
412
|
+
logoHeight,
|
|
413
|
+
logoTextSize,
|
|
414
|
+
fullWidth: true,
|
|
415
|
+
...buttonProps
|
|
416
|
+
}
|
|
417
|
+
) : /* @__PURE__ */ jsx16(
|
|
418
|
+
PoweredByXyoButton,
|
|
419
|
+
{
|
|
420
|
+
onClick: activeOnButtonClick,
|
|
421
|
+
busy: activeBusy,
|
|
422
|
+
logoHeight,
|
|
423
|
+
logoTextSize,
|
|
424
|
+
fullWidth: true,
|
|
425
|
+
...buttonProps
|
|
426
|
+
}
|
|
427
|
+
) }),
|
|
428
|
+
debugDialog && debugDialogOpen ? /* @__PURE__ */ jsx16(DebugDialog, { fullScreen: true, open: debugDialogOpen, onClose: () => setDebugDialogOpen(false), onKeyDown: onKeyDownEscListener }) : null
|
|
429
|
+
] });
|
|
430
|
+
};
|
|
497
431
|
export {
|
|
498
432
|
ArchivistSummary,
|
|
499
433
|
BridgeSummary,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/components/ArchivistSummary.tsx","../../src/components/ModuleSummary.tsx","../../src/components/BridgeSummary.tsx","../../src/components/DebugDialog.tsx","../../src/components/NodeDetails.tsx","../../src/components/ModuleAccordion.tsx","../../src/components/ModuleDetails.tsx","../../src/components/JsonViewerButton.tsx","../../src/components/TypedModuleSummary.tsx","../../src/components/DivinerSummary.tsx","../../src/components/NodeSummary.tsx","../../src/components/SentinelSummary.tsx","../../src/components/WitnessSummary.tsx","../../src/components/PoweredByXyo.tsx","../../src/components/PoweredByXyoButton.tsx","../../src/img/xyo-color-logo.svg","../../src/img/xyo-color-logo-text-only.svg","../../src/components/XyoBusy.tsx"],"sourcesContent":["import { Inventory2Rounded as Inventory2RoundedIcon } from '@mui/icons-material'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const ArchivistSummary: React.FC<ModuleSummaryProps<ArchivistInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<Inventory2RoundedIcon />} {...props} />\n}\n","import { Extension as ExtensionIcon } from '@mui/icons-material'\nimport { delay } from '@xylabs/delay'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { useWeakModulesFromNode } from '@xyo-network/react-node'\nimport { TypographyEx } from '@xyo-network/react-shared'\nimport type { ReactNode } from 'react'\nimport React, { useState } from 'react'\n\nexport interface ModuleSummaryProps<T extends ModuleInstance = ModuleInstance> extends FlexBoxProps {\n icon?: ReactNode\n mod?: T\n}\n\nexport const ModuleSummary: React.FC<ModuleSummaryProps> = ({\n children, icon, mod, ...props\n}) => {\n const [downModules] = useWeakModulesFromNode(undefined, { direction: 'down' })\n const [upModules] = useWeakModulesFromNode(undefined, { direction: 'up' })\n const [busy, setBusy] = useState(false)\n\n const downModulesFromResolve = downModules?.length\n const upModulesFromResolve = upModules?.length\n\n mod?.on('moduleBusy', async ({ busy }) => {\n setBusy(busy)\n await delay(2000)\n setBusy(false)\n })\n\n return (\n <FlexCol alignItems=\"stretch\" width=\"100%\" {...props}>\n <FlexRow justifyContent=\"flex-start\">\n <FlexRow>\n <TypographyEx color={busy ? 'gray' : undefined}>{icon ?? <ExtensionIcon />}</TypographyEx>\n <TypographyEx marginX={1}>{mod?.config?.name ?? '<Unknown>'}</TypographyEx>\n </FlexRow>\n {(children ?? (downModulesFromResolve !== undefined && upModulesFromResolve !== undefined))\n ? `[${downModulesFromResolve}↓/${upModulesFromResolve}↑]`\n : null}\n </FlexRow>\n </FlexCol>\n )\n}\n","import { InsertLinkRounded as InsertLinkRoundedIcon } from '@mui/icons-material'\nimport type { BridgeInstance } from '@xyo-network/bridge-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const BridgeSummary: React.FC<ModuleSummaryProps<BridgeInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<InsertLinkRoundedIcon />} {...props}></ModuleSummary>\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Button, Dialog, DialogActions, DialogContent, DialogTitle,\n} from '@mui/material'\nimport React from 'react'\n\nimport { NodeDetails } from './NodeDetails.tsx'\n\nexport interface DebugDialogProps extends DialogProps {}\n\nexport const DebugDialog: React.FC<DebugDialogProps> = ({ onClose, ...props }) => {\n return (\n <Dialog {...props}>\n <DialogTitle>Xyo Module Viewer</DialogTitle>\n <DialogContent>\n <NodeDetails width=\"100%\" />\n </DialogContent>\n <DialogActions>\n <Button onClick={event => onClose?.(event, 'backdropClick')}>Close</Button>\n </DialogActions>\n </Dialog>\n )\n}\n","import { FlexCol } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { useProvidedNode, useWeakModulesFromNode } from '@xyo-network/react-node'\nimport React from 'react'\n\nimport { ModuleAccordion } from './ModuleAccordion.tsx'\nimport type { ModuleDetailsProps } from './ModuleDetails.tsx'\n\nexport interface NodeViewerProps extends ModuleDetailsProps<NodeInstance> {}\n\nexport const NodeDetails: React.FC<NodeViewerProps> = ({ mod, ...props }) => {\n const [node = mod] = useProvidedNode()\n\n const [children] = useWeakModulesFromNode(undefined, { node: node ?? undefined })\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {children\n ? (\n <>\n <FlexCol alignItems=\"stretch\" marginY={1}>\n {children?.map((child) => {\n const instance = child.deref()\n return instance ? <ModuleAccordion key={instance.address} mod={instance} /> : null\n })}\n </FlexCol>\n </>\n )\n : null}\n </FlexCol>\n )\n}\n","import { ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport React from 'react'\n\nexport interface ModuleAccordionProps<T extends ModuleInstance = ModuleInstance> extends Omit<AccordionProps, 'children'> {\n mod?: T\n}\n\nimport type { AccordionProps } from '@mui/material'\nimport {\n Accordion, AccordionDetails, AccordionSummary,\n} from '@mui/material'\n\nimport { ModuleDetails } from './ModuleDetails.tsx'\nimport { TypedModuleSummary } from './TypedModuleSummary.tsx'\n\nexport const ModuleAccordion: React.FC<ModuleAccordionProps> = ({ mod, ...props }) => {\n return (\n <Accordion {...props}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <TypedModuleSummary mod={mod} />\n </AccordionSummary>\n <AccordionDetails>\n <ModuleDetails mod={mod} />\n </AccordionDetails>\n </Accordion>\n )\n}\n","import { ButtonGroup } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescriptionPayload, ModuleInstance } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { Property } from '@xyo-network/react-property'\nimport React from 'react'\n\nimport { JsonViewerButton } from './JsonViewerButton.tsx'\n\nexport interface ModuleDetailsProps<T extends ModuleInstance = ModuleInstance> extends FlexBoxProps {\n mod?: T\n}\n\nexport const ModuleDetails: React.FC<ModuleDetailsProps> = ({ mod, ...props }) => {\n const [manifest] = usePromise(async () => {\n return await mod?.manifest()\n }, [mod])\n\n const [discover] = usePromise(async () => {\n return await mod?.state()\n }, [mod])\n\n const [describe] = usePromise(async () => {\n const state = await mod?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [mod])\n\n const queries = mod?.queries\n\n const config = mod?.config\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n <Property title=\"Address\" value={mod?.address} />\n\n <FlexRow gap={1} justifyContent=\"space-between\">\n <ButtonGroup>\n {manifest\n ? (\n <JsonViewerButton variant=\"contained\" src={manifest}>\n Manifest\n </JsonViewerButton>\n )\n : null}\n {config\n ? (\n <JsonViewerButton variant=\"contained\" src={config}>\n Config\n </JsonViewerButton>\n )\n : null}\n {discover\n ? (\n <JsonViewerButton variant=\"contained\" src={discover}>\n Discover\n </JsonViewerButton>\n )\n : null}\n {describe\n ? (\n <JsonViewerButton variant=\"contained\" src={describe}>\n Describe\n </JsonViewerButton>\n )\n : null}\n {queries\n ? (\n <JsonViewerButton variant=\"contained\" src={queries}>\n Queries\n </JsonViewerButton>\n )\n : null}\n </ButtonGroup>\n <ButtonGroup>\n <ButtonEx target=\"_blank\" href={`https://explore.xyo.network/block?network=main&address=${mod?.address}`} variant=\"outlined\">\n Main\n </ButtonEx>\n <ButtonEx target=\"_blank\" href={`https://beta.explore.xyo.network/block?network=kerplunk&address=${mod?.address}`} variant=\"outlined\">\n Kerplunk\n </ButtonEx>\n <ButtonEx target=\"_blank\" href={`https://beta.explore.xyo.network/block?network=local&address=${mod?.address}`} variant=\"outlined\">\n Local\n </ButtonEx>\n </ButtonGroup>\n </FlexRow>\n </FlexCol>\n )\n}\n","import {\n Dialog, DialogActions, DialogContent, DialogTitle,\n} from '@mui/material'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { JsonViewerExProps } from '@xyo-network/react-payload-raw-info'\nimport { JsonViewerEx } from '@xyo-network/react-payload-raw-info'\nimport React, { useState } from 'react'\n\nexport type JsonViewerButtonProps = ButtonExProps & {\n jsonViewProps?: Partial<JsonViewerExProps>\n src: object\n}\n\nexport const JsonViewerButton: React.FC<JsonViewerButtonProps> = ({\n children, jsonViewProps, src, title, ...props\n}) => {\n const [open, setOpen] = useState(false)\n return (\n <>\n <ButtonEx onClick={() => setOpen(!open)} {...props}>\n {children ?? 'JSON'}\n </ButtonEx>\n <Dialog open={open} onClose={() => setOpen(false)}>\n {title\n ? <DialogTitle>{title}</DialogTitle>\n : null}\n <DialogContent>\n <JsonViewerEx value={src} {...jsonViewProps} />\n </DialogContent>\n <DialogActions>\n <ButtonEx onClick={() => setOpen(false)}>Close</ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import { isArchivistInstance } from '@xyo-network/archivist-model'\nimport { isBridgeInstance } from '@xyo-network/bridge-model'\nimport { isDivinerInstance } from '@xyo-network/diviner-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\nimport { isSentinelInstance } from '@xyo-network/sentinel-model'\nimport { isWitnessInstance } from '@xyo-network/witness-model'\nimport React from 'react'\n\nimport { ArchivistSummary } from './ArchivistSummary.tsx'\nimport { BridgeSummary } from './BridgeSummary.tsx'\nimport { DivinerSummary } from './DivinerSummary.tsx'\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\nimport { NodeSummary } from './NodeSummary.tsx'\nimport { SentinelSummary } from './SentinelSummary.tsx'\nimport { WitnessSummary } from './WitnessSummary.tsx'\n\nexport const TypedModuleSummary: React.FC<ModuleSummaryProps> = ({ mod, ...props }) => {\n if (isArchivistInstance(mod)) {\n return <ArchivistSummary mod={mod} {...props} />\n }\n if (isDivinerInstance(mod)) {\n return <DivinerSummary mod={mod} {...props} />\n }\n if (isNodeInstance(mod)) {\n return <NodeSummary mod={mod} {...props} />\n }\n if (isWitnessInstance(mod)) {\n return <WitnessSummary mod={mod} {...props} />\n }\n if (isBridgeInstance(mod)) {\n return <BridgeSummary mod={mod} {...props} />\n }\n if (isSentinelInstance(mod)) {\n return <SentinelSummary mod={mod} {...props} />\n }\n return <ModuleSummary mod={mod} {...props} />\n}\n","import { BubbleChartRounded as BubbleChartRoundedIcon } from '@mui/icons-material'\nimport type { DivinerInstance } from '@xyo-network/diviner-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const DivinerSummary: React.FC<ModuleSummaryProps<DivinerInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<BubbleChartRoundedIcon />} {...props} />\n}\n","import { HubRounded as HubRoundedIcon } from '@mui/icons-material'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { NodeManifest } from '@xyo-network/manifest'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { useWeakModulesFromNode } from '@xyo-network/react-node'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const NodeSummary: React.FC<ModuleSummaryProps<NodeInstance>> = ({ mod, ...props }) => {\n const [manifest] = usePromise(async () => {\n return (await mod?.manifest()) as NodeManifest\n }, [mod])\n\n const [downModules] = useWeakModulesFromNode(undefined, { direction: 'down' })\n const [upModules] = useWeakModulesFromNode(undefined, { direction: 'up' })\n\n const downModulesFromResolve = downModules?.length\n const upModulesFromResolve = upModules?.length\n\n const manifestPublicModules = manifest?.modules?.public?.length\n\n return (\n <ModuleSummary mod={mod} icon={<HubRoundedIcon />} {...props}>\n {manifestPublicModules !== undefined && downModulesFromResolve !== undefined && upModulesFromResolve !== undefined\n ? `[${manifestPublicModules}m/${downModulesFromResolve}↓/${upModulesFromResolve}↑]`\n : null}\n </ModuleSummary>\n )\n}\n","import { TimerRounded as TimerRoundedIcon } from '@mui/icons-material'\nimport type { SentinelInstance } from '@xyo-network/sentinel-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const SentinelSummary: React.FC<ModuleSummaryProps<SentinelInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<TimerRoundedIcon />} {...props} />\n}\n","import { VisibilityRounded as VisibilityRoundedIcon } from '@mui/icons-material'\nimport type { WitnessInstance } from '@xyo-network/witness-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const WitnessSummary: React.FC<ModuleSummaryProps<WitnessInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<VisibilityRoundedIcon />} {...props} />\n}\n","import { Paper } from '@mui/material'\nimport { delay } from '@xylabs/delay'\nimport { forget } from '@xylabs/forget'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { Module } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { useProvidedNode } from '@xyo-network/react-node'\nimport type { KeyboardEvent } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport { DebugDialog } from './DebugDialog.tsx'\nimport type { PoweredByXyoButtonProps } from './PoweredByXyoButton.tsx'\nimport { PoweredByXyoButton } from './PoweredByXyoButton.tsx'\n\nexport interface PoweredByXyoProps extends FlexBoxProps {\n autoStop?: boolean\n busy?: boolean\n buttonProps?: Omit<PoweredByXyoButtonProps, 'href' | 'to' | 'toOptions'>\n debugDialog?: boolean\n disableAnimation?: boolean\n href?: ButtonExProps['href']\n logoHeight?: number\n logoTextSize?: number\n node?: NodeInstance\n onButtonClick?: ButtonExProps['onClick']\n}\n\nexport const PoweredByXyo: React.FC<PoweredByXyoProps> = ({\n autoStop,\n busy,\n buttonProps,\n debugDialog = false,\n disableAnimation = false,\n href = 'https://xyo.network',\n logoHeight,\n logoTextSize,\n onButtonClick,\n node: propNode,\n ...props\n}) => {\n const [node] = useProvidedNode()\n const [debugDialogOpen, setDebugDialogOpen] = useState(false)\n\n const busyMap: Record<string, boolean> = useMemo(() => ({}), [node])\n\n const activeBusy = busy ?? Object.values(busyMap).includes(true)\n\n const activeOnButtonClick: PoweredByXyoProps['onButtonClick']\n = (debugDialog\n ? (event) => {\n if (event.shiftKey && event.altKey) {\n setDebugDialogOpen(true)\n } else if (href) {\n window.open(href, undefined, 'noopener,noreferrer')\n }\n }\n : undefined) ?? onButtonClick\n\n const activeHref = activeOnButtonClick ? undefined : href\n\n const onKeyDownEscListener = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Escape' && debugDialogOpen) {\n setDebugDialogOpen(false)\n }\n }\n\n useAsyncEffect(\n async () => {\n const activeNode = propNode ?? node\n if (disableAnimation) {\n return\n } else if (activeNode) {\n const mods = await activeNode?.resolve('*')\n mods?.map((mod) => {\n return mod.on('moduleBusy', ({ mod, busy }) => {\n busyMap[(mod as Module).address] = busy\n if (autoStop) {\n forget(\n (async () => {\n await delay(1000)\n busyMap[(mod as Module).address] = false\n })(),\n )\n }\n })\n })\n activeNode?.on('moduleBusy', ({ mod, busy }) => {\n busyMap[(mod as Module).address] = busy\n if (autoStop) {\n forget(\n (async () => {\n await delay(1000)\n busyMap[(mod as Module).address] = false\n })(),\n )\n }\n })\n }\n },\n [disableAnimation, propNode, node, busyMap, autoStop],\n )\n\n return (\n <FlexCol alignItems=\"stretch\" position=\"absolute\" bottom=\"0\" left=\"0\" {...props}>\n <Paper sx={{ borderRadius: 0 }}>\n {activeHref\n ? (\n <PoweredByXyoButton\n onClick={activeOnButtonClick}\n href={activeHref}\n busy={activeBusy}\n logoHeight={logoHeight}\n logoTextSize={logoTextSize}\n fullWidth\n {...buttonProps}\n />\n )\n : (\n <PoweredByXyoButton\n onClick={activeOnButtonClick}\n busy={activeBusy}\n logoHeight={logoHeight}\n logoTextSize={logoTextSize}\n fullWidth\n {...buttonProps}\n />\n )}\n </Paper>\n {debugDialog && debugDialogOpen\n ? <DebugDialog fullScreen open={debugDialogOpen} onClose={() => setDebugDialogOpen(false)} onKeyDown={onKeyDownEscListener} />\n : null}\n </FlexCol>\n )\n}\n","import { Typography } from '@mui/material'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport React, { useEffect, useState } from 'react'\n\nimport { xyoColorLogoText } from '../img/index.ts'\nimport { XyoBusy } from './XyoBusy.tsx'\n\nexport type PoweredByXyoButtonProps = ButtonExProps & {\n busy?: boolean\n logoHeight?: number\n logoTextSize?: number\n}\n\nexport const PoweredByXyoButton: React.FC<PoweredByXyoButtonProps> = ({\n busy = false,\n logoHeight,\n logoTextSize,\n ...props\n}) => {\n // preloading image to prevent shifting\n const [imageLoaded, setImageLoaded] = useState(false)\n useEffect(() => {\n const img = new Image()\n const onImageLoaded = () => setImageLoaded(true)\n img.addEventListener('load', onImageLoaded)\n img.src = xyoColorLogoText\n return () => {\n img.removeEventListener('load', onImageLoaded)\n }\n }, [])\n return imageLoaded\n ? (\n <ButtonEx\n {...props}\n target={props.target ?? '_blank'}\n variant={props.variant ?? 'text'}\n sx={{\n textDecoration: 'none', borderRadius: 0, padding: 0, ...props.sx,\n }}\n >\n <FlexCol padding={0.5}>\n <Typography style={{ fontSize: logoTextSize ?? 10 }} fontSize=\"small\">\n Powered by\n </Typography>\n <FlexRow>\n <XyoBusy busy={busy} />\n <img src={xyoColorLogoText} height={logoHeight ?? 24} width={45} />\n </FlexRow>\n </FlexCol>\n </ButtonEx>\n )\n : null\n}\n","<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 238\"><defs><style>.cls-1{fill:#8d8fc6;}.cls-2{fill:#579fd6;}.cls-3{fill:#f27046;}.cls-4{fill:#eb407a;}</style></defs><path class=\"cls-1\" d=\"M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z\"/><path class=\"cls-2\" d=\"M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z\"/><path class=\"cls-3\" d=\"M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z\"/><path class=\"cls-4\" d=\"M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z\"/></svg>","<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"250 0 451 238\"><defs><style>.cls-1{fill:#8d8fc6;}.cls-2{fill:#579fd6;}.cls-3{fill:#f27046;}.cls-4{fill:#eb407a;}</style></defs><path class=\"cls-1\" d=\"M570,55.35a61.13,61.13,0,1,0,61.11,61.1A61.21,61.21,0,0,0,570,55.35Zm-266.4.1-8.2,8.14,53,52.91-53,52.91,8.2,8.2,52.91-53,44.77,44.77,8.14,8.2,114-114-8.14-8.14-52.91,52.91-53-52.91-8.14,8.14-44.77,44.77ZM570,66.84a49.61,49.61,0,1,1-49.61,49.61A49.54,49.54,0,0,1,570,66.84ZM409.45,71.73l44.77,44.77-44.77,44.77L364.68,116.5Z\"/></svg>\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React, { useState } from 'react'\n\nimport { xyoColorLogo } from '../img/index.ts'\n\nexport type XyoBusyProps = Omit<FlexBoxProps, 'children'> & {\n busy?: boolean\n spinsPerSecond?: number\n widthInPixels?: number\n}\n\nexport const XyoBusy: React.FC<XyoBusyProps> = ({\n widthInPixels, busy, spinsPerSecond = 0.5, ...props\n}) => {\n // preloading image to prevent shifting\n const [imageLoaded, setImageLoaded] = useState(false)\n if (!imageLoaded) {\n const img = new Image()\n img.addEventListener('load', () => setImageLoaded(true))\n img.src = xyoColorLogo\n }\n return imageLoaded\n ? (\n <FlexCol\n sx={{\n '@keyframes spin': {\n '0%': { transform: 'rotate(360deg)' },\n '100%': { transform: 'rotate(0deg)' },\n },\n 'animation': busy ? `spin ${1 / spinsPerSecond}s linear infinite` : undefined,\n 'animationDirection': 'reverse',\n }}\n {...props}\n >\n <img src={xyoColorLogo} height={widthInPixels ?? 22} />\n </FlexCol>\n )\n : null\n}\n"],"mappings":"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","names":["Inventory2Rounded","Inventory2RoundedIcon","React","Extension","ExtensionIcon","delay","FlexCol","FlexRow","useWeakModulesFromNode","TypographyEx","React","useState","ModuleSummary","children","icon","mod","props","downModules","useWeakModulesFromNode","undefined","direction","upModules","busy","setBusy","useState","downModulesFromResolve","length","upModulesFromResolve","on","delay","FlexCol","alignItems","width","FlexRow","justifyContent","TypographyEx","color","ExtensionIcon","marginX","config","name","ArchivistSummary","mod","props","React","ModuleSummary","icon","Inventory2RoundedIcon","InsertLinkRounded","InsertLinkRoundedIcon","React","BridgeSummary","mod","props","React","ModuleSummary","icon","InsertLinkRoundedIcon","Button","Dialog","DialogActions","DialogContent","DialogTitle","React","FlexCol","useProvidedNode","useWeakModulesFromNode","React","ExpandMore","ExpandMoreIcon","React","Accordion","AccordionDetails","AccordionSummary","ButtonGroup","ButtonEx","FlexCol","FlexRow","usePromise","ModuleDescriptionSchema","isPayloadOfSchemaType","Property","React","Dialog","DialogActions","DialogContent","DialogTitle","ButtonEx","JsonViewerEx","React","useState","JsonViewerButton","children","jsonViewProps","src","title","props","open","setOpen","useState","React","ButtonEx","onClick","Dialog","onClose","DialogTitle","DialogContent","JsonViewerEx","value","DialogActions","ModuleDetails","mod","props","manifest","usePromise","discover","state","describe","find","isPayloadOfSchemaType","ModuleDescriptionSchema","queries","config","React","FlexCol","alignItems","Property","title","value","address","FlexRow","gap","justifyContent","ButtonGroup","JsonViewerButton","variant","src","ButtonEx","target","href","isArchivistInstance","isBridgeInstance","isDivinerInstance","isNodeInstance","isSentinelInstance","isWitnessInstance","React","BubbleChartRounded","BubbleChartRoundedIcon","React","DivinerSummary","mod","props","React","ModuleSummary","icon","BubbleChartRoundedIcon","HubRounded","HubRoundedIcon","usePromise","useWeakModulesFromNode","React","NodeSummary","mod","props","manifest","usePromise","downModules","useWeakModulesFromNode","undefined","direction","upModules","downModulesFromResolve","length","upModulesFromResolve","manifestPublicModules","modules","public","React","ModuleSummary","icon","HubRoundedIcon","TimerRounded","TimerRoundedIcon","React","SentinelSummary","mod","props","React","ModuleSummary","icon","TimerRoundedIcon","VisibilityRounded","VisibilityRoundedIcon","React","WitnessSummary","mod","props","React","ModuleSummary","icon","VisibilityRoundedIcon","TypedModuleSummary","mod","props","isArchivistInstance","React","ArchivistSummary","isDivinerInstance","DivinerSummary","isNodeInstance","NodeSummary","isWitnessInstance","WitnessSummary","isBridgeInstance","BridgeSummary","isSentinelInstance","SentinelSummary","ModuleSummary","ModuleAccordion","mod","props","React","Accordion","AccordionSummary","expandIcon","ExpandMoreIcon","TypedModuleSummary","AccordionDetails","ModuleDetails","NodeDetails","mod","props","node","useProvidedNode","children","useWeakModulesFromNode","undefined","React","FlexCol","alignItems","marginY","map","child","instance","deref","ModuleAccordion","key","address","DebugDialog","onClose","props","React","Dialog","DialogTitle","DialogContent","NodeDetails","width","DialogActions","Button","onClick","event","Paper","delay","forget","useAsyncEffect","FlexCol","useProvidedNode","React","useMemo","useState","Typography","ButtonEx","FlexCol","FlexRow","React","useEffect","useState","FlexCol","React","useState","XyoBusy","widthInPixels","busy","spinsPerSecond","props","imageLoaded","setImageLoaded","useState","img","Image","addEventListener","src","xyoColorLogo","React","FlexCol","sx","transform","undefined","height","PoweredByXyoButton","busy","logoHeight","logoTextSize","props","imageLoaded","setImageLoaded","useState","useEffect","img","Image","onImageLoaded","addEventListener","src","xyoColorLogoText","removeEventListener","React","ButtonEx","target","variant","sx","textDecoration","borderRadius","padding","FlexCol","Typography","style","fontSize","FlexRow","XyoBusy","height","width","PoweredByXyo","autoStop","busy","buttonProps","debugDialog","disableAnimation","href","logoHeight","logoTextSize","onButtonClick","node","propNode","props","useProvidedNode","debugDialogOpen","setDebugDialogOpen","useState","busyMap","useMemo","activeBusy","Object","values","includes","activeOnButtonClick","event","shiftKey","altKey","window","open","undefined","activeHref","onKeyDownEscListener","key","useAsyncEffect","activeNode","mods","resolve","map","mod","on","address","forget","delay","React","FlexCol","alignItems","position","bottom","left","Paper","sx","borderRadius","PoweredByXyoButton","onClick","fullWidth","DebugDialog","fullScreen","onClose","onKeyDown"]}
|
|
1
|
+
{"version":3,"sources":["../../src/components/ArchivistSummary.tsx","../../src/components/ModuleSummary.tsx","../../src/components/BridgeSummary.tsx","../../src/components/DebugDialog.tsx","../../src/components/NodeDetails.tsx","../../src/components/ModuleAccordion.tsx","../../src/components/ModuleDetails.tsx","../../src/components/JsonViewerButton.tsx","../../src/components/TypedModuleSummary.tsx","../../src/components/DivinerSummary.tsx","../../src/components/NodeSummary.tsx","../../src/components/SentinelSummary.tsx","../../src/components/WitnessSummary.tsx","../../src/components/PoweredByXyo.tsx","../../src/components/PoweredByXyoButton.tsx","../../src/img/xyo-color-logo.svg","../../src/img/xyo-color-logo-text-only.svg","../../src/components/XyoBusy.tsx"],"sourcesContent":["import { Inventory2Rounded as Inventory2RoundedIcon } from '@mui/icons-material'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const ArchivistSummary: React.FC<ModuleSummaryProps<ArchivistInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<Inventory2RoundedIcon />} {...props} />\n}\n","import { Extension as ExtensionIcon } from '@mui/icons-material'\nimport { delay } from '@xylabs/delay'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport { useWeakModulesFromNode } from '@xyo-network/react-node'\nimport { TypographyEx } from '@xyo-network/react-shared'\nimport type { ReactNode } from 'react'\nimport React, { useState } from 'react'\n\nexport interface ModuleSummaryProps<T extends ModuleInstance = ModuleInstance> extends FlexBoxProps {\n icon?: ReactNode\n mod?: T\n}\n\nexport const ModuleSummary: React.FC<ModuleSummaryProps> = ({\n children, icon, mod, ...props\n}) => {\n const [downModules] = useWeakModulesFromNode(undefined, { direction: 'down' })\n const [upModules] = useWeakModulesFromNode(undefined, { direction: 'up' })\n const [busy, setBusy] = useState(false)\n\n const downModulesFromResolve = downModules?.length\n const upModulesFromResolve = upModules?.length\n\n mod?.on('moduleBusy', async ({ busy }) => {\n setBusy(busy)\n await delay(2000)\n setBusy(false)\n })\n\n return (\n <FlexCol alignItems=\"stretch\" width=\"100%\" {...props}>\n <FlexRow justifyContent=\"flex-start\">\n <FlexRow>\n <TypographyEx color={busy ? 'gray' : undefined}>{icon ?? <ExtensionIcon />}</TypographyEx>\n <TypographyEx marginX={1}>{mod?.config?.name ?? '<Unknown>'}</TypographyEx>\n </FlexRow>\n {(children ?? (downModulesFromResolve !== undefined && upModulesFromResolve !== undefined))\n ? `[${downModulesFromResolve}↓/${upModulesFromResolve}↑]`\n : null}\n </FlexRow>\n </FlexCol>\n )\n}\n","import { InsertLinkRounded as InsertLinkRoundedIcon } from '@mui/icons-material'\nimport type { BridgeInstance } from '@xyo-network/bridge-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const BridgeSummary: React.FC<ModuleSummaryProps<BridgeInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<InsertLinkRoundedIcon />} {...props}></ModuleSummary>\n}\n","import type { DialogProps } from '@mui/material'\nimport {\n Button, Dialog, DialogActions, DialogContent, DialogTitle,\n} from '@mui/material'\nimport React from 'react'\n\nimport { NodeDetails } from './NodeDetails.tsx'\n\nexport interface DebugDialogProps extends DialogProps {}\n\nexport const DebugDialog: React.FC<DebugDialogProps> = ({ onClose, ...props }) => {\n return (\n <Dialog {...props}>\n <DialogTitle>Xyo Module Viewer</DialogTitle>\n <DialogContent>\n <NodeDetails width=\"100%\" />\n </DialogContent>\n <DialogActions>\n <Button onClick={event => onClose?.(event, 'backdropClick')}>Close</Button>\n </DialogActions>\n </Dialog>\n )\n}\n","import { FlexCol } from '@xylabs/react-flexbox'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { useProvidedNode, useWeakModulesFromNode } from '@xyo-network/react-node'\nimport React from 'react'\n\nimport { ModuleAccordion } from './ModuleAccordion.tsx'\nimport type { ModuleDetailsProps } from './ModuleDetails.tsx'\n\nexport interface NodeViewerProps extends ModuleDetailsProps<NodeInstance> {}\n\nexport const NodeDetails: React.FC<NodeViewerProps> = ({ mod, ...props }) => {\n const [node = mod] = useProvidedNode()\n\n const [children] = useWeakModulesFromNode(undefined, { node: node ?? undefined })\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n {children\n ? (\n <>\n <FlexCol alignItems=\"stretch\" marginY={1}>\n {children?.map((child) => {\n const instance = child.deref()\n return instance ? <ModuleAccordion key={instance.address} mod={instance} /> : null\n })}\n </FlexCol>\n </>\n )\n : null}\n </FlexCol>\n )\n}\n","import { ExpandMore as ExpandMoreIcon } from '@mui/icons-material'\nimport type { ModuleInstance } from '@xyo-network/module-model'\nimport React from 'react'\n\nexport interface ModuleAccordionProps<T extends ModuleInstance = ModuleInstance> extends Omit<AccordionProps, 'children'> {\n mod?: T\n}\n\nimport type { AccordionProps } from '@mui/material'\nimport {\n Accordion, AccordionDetails, AccordionSummary,\n} from '@mui/material'\n\nimport { ModuleDetails } from './ModuleDetails.tsx'\nimport { TypedModuleSummary } from './TypedModuleSummary.tsx'\n\nexport const ModuleAccordion: React.FC<ModuleAccordionProps> = ({ mod, ...props }) => {\n return (\n <Accordion {...props}>\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <TypedModuleSummary mod={mod} />\n </AccordionSummary>\n <AccordionDetails>\n <ModuleDetails mod={mod} />\n </AccordionDetails>\n </Accordion>\n )\n}\n","import { ButtonGroup } from '@mui/material'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { ModuleDescriptionPayload, ModuleInstance } from '@xyo-network/module-model'\nimport { ModuleDescriptionSchema } from '@xyo-network/module-model'\nimport { isPayloadOfSchemaType } from '@xyo-network/payload-model'\nimport { Property } from '@xyo-network/react-property'\nimport React from 'react'\n\nimport { JsonViewerButton } from './JsonViewerButton.tsx'\n\nexport interface ModuleDetailsProps<T extends ModuleInstance = ModuleInstance> extends FlexBoxProps {\n mod?: T\n}\n\nexport const ModuleDetails: React.FC<ModuleDetailsProps> = ({ mod, ...props }) => {\n const [manifest] = usePromise(async () => {\n return await mod?.manifest()\n }, [mod])\n\n const [discover] = usePromise(async () => {\n return await mod?.state()\n }, [mod])\n\n const [describe] = usePromise(async () => {\n const state = await mod?.state()\n return state?.find<ModuleDescriptionPayload>(isPayloadOfSchemaType(ModuleDescriptionSchema))\n }, [mod])\n\n const queries = mod?.queries\n\n const config = mod?.config\n\n return (\n <FlexCol alignItems=\"stretch\" {...props}>\n <Property title=\"Address\" value={mod?.address} />\n\n <FlexRow gap={1} justifyContent=\"space-between\">\n <ButtonGroup>\n {manifest\n ? (\n <JsonViewerButton variant=\"contained\" src={manifest}>\n Manifest\n </JsonViewerButton>\n )\n : null}\n {config\n ? (\n <JsonViewerButton variant=\"contained\" src={config}>\n Config\n </JsonViewerButton>\n )\n : null}\n {discover\n ? (\n <JsonViewerButton variant=\"contained\" src={discover}>\n Discover\n </JsonViewerButton>\n )\n : null}\n {describe\n ? (\n <JsonViewerButton variant=\"contained\" src={describe}>\n Describe\n </JsonViewerButton>\n )\n : null}\n {queries\n ? (\n <JsonViewerButton variant=\"contained\" src={queries}>\n Queries\n </JsonViewerButton>\n )\n : null}\n </ButtonGroup>\n <ButtonGroup>\n <ButtonEx target=\"_blank\" href={`https://explore.xyo.network/block?network=main&address=${mod?.address}`} variant=\"outlined\">\n Main\n </ButtonEx>\n <ButtonEx target=\"_blank\" href={`https://beta.explore.xyo.network/block?network=kerplunk&address=${mod?.address}`} variant=\"outlined\">\n Kerplunk\n </ButtonEx>\n <ButtonEx target=\"_blank\" href={`https://beta.explore.xyo.network/block?network=local&address=${mod?.address}`} variant=\"outlined\">\n Local\n </ButtonEx>\n </ButtonGroup>\n </FlexRow>\n </FlexCol>\n )\n}\n","import {\n Dialog, DialogActions, DialogContent, DialogTitle,\n} from '@mui/material'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport type { JsonViewerExProps } from '@xyo-network/react-payload-raw-info'\nimport { JsonViewerEx } from '@xyo-network/react-payload-raw-info'\nimport React, { useState } from 'react'\n\nexport type JsonViewerButtonProps = ButtonExProps & {\n jsonViewProps?: Partial<JsonViewerExProps>\n src: object\n}\n\nexport const JsonViewerButton: React.FC<JsonViewerButtonProps> = ({\n children, jsonViewProps, src, title, ...props\n}) => {\n const [open, setOpen] = useState(false)\n return (\n <>\n <ButtonEx onClick={() => setOpen(!open)} {...props}>\n {children ?? 'JSON'}\n </ButtonEx>\n <Dialog open={open} onClose={() => setOpen(false)}>\n {title\n ? <DialogTitle>{title}</DialogTitle>\n : null}\n <DialogContent>\n <JsonViewerEx value={src} {...jsonViewProps} />\n </DialogContent>\n <DialogActions>\n <ButtonEx onClick={() => setOpen(false)}>Close</ButtonEx>\n </DialogActions>\n </Dialog>\n </>\n )\n}\n","import { isArchivistInstance } from '@xyo-network/archivist-model'\nimport { isBridgeInstance } from '@xyo-network/bridge-model'\nimport { isDivinerInstance } from '@xyo-network/diviner-model'\nimport { isNodeInstance } from '@xyo-network/node-model'\nimport { isSentinelInstance } from '@xyo-network/sentinel-model'\nimport { isWitnessInstance } from '@xyo-network/witness-model'\nimport React from 'react'\n\nimport { ArchivistSummary } from './ArchivistSummary.tsx'\nimport { BridgeSummary } from './BridgeSummary.tsx'\nimport { DivinerSummary } from './DivinerSummary.tsx'\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\nimport { NodeSummary } from './NodeSummary.tsx'\nimport { SentinelSummary } from './SentinelSummary.tsx'\nimport { WitnessSummary } from './WitnessSummary.tsx'\n\nexport const TypedModuleSummary: React.FC<ModuleSummaryProps> = ({ mod, ...props }) => {\n if (isArchivistInstance(mod)) {\n return <ArchivistSummary mod={mod} {...props} />\n }\n if (isDivinerInstance(mod)) {\n return <DivinerSummary mod={mod} {...props} />\n }\n if (isNodeInstance(mod)) {\n return <NodeSummary mod={mod} {...props} />\n }\n if (isWitnessInstance(mod)) {\n return <WitnessSummary mod={mod} {...props} />\n }\n if (isBridgeInstance(mod)) {\n return <BridgeSummary mod={mod} {...props} />\n }\n if (isSentinelInstance(mod)) {\n return <SentinelSummary mod={mod} {...props} />\n }\n return <ModuleSummary mod={mod} {...props} />\n}\n","import { BubbleChartRounded as BubbleChartRoundedIcon } from '@mui/icons-material'\nimport type { DivinerInstance } from '@xyo-network/diviner-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const DivinerSummary: React.FC<ModuleSummaryProps<DivinerInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<BubbleChartRoundedIcon />} {...props} />\n}\n","import { HubRounded as HubRoundedIcon } from '@mui/icons-material'\nimport { usePromise } from '@xylabs/react-promise'\nimport type { NodeManifest } from '@xyo-network/manifest'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { useWeakModulesFromNode } from '@xyo-network/react-node'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const NodeSummary: React.FC<ModuleSummaryProps<NodeInstance>> = ({ mod, ...props }) => {\n const [manifest] = usePromise(async () => {\n return (await mod?.manifest()) as NodeManifest\n }, [mod])\n\n const [downModules] = useWeakModulesFromNode(undefined, { direction: 'down' })\n const [upModules] = useWeakModulesFromNode(undefined, { direction: 'up' })\n\n const downModulesFromResolve = downModules?.length\n const upModulesFromResolve = upModules?.length\n\n const manifestPublicModules = manifest?.modules?.public?.length\n\n return (\n <ModuleSummary mod={mod} icon={<HubRoundedIcon />} {...props}>\n {manifestPublicModules !== undefined && downModulesFromResolve !== undefined && upModulesFromResolve !== undefined\n ? `[${manifestPublicModules}m/${downModulesFromResolve}↓/${upModulesFromResolve}↑]`\n : null}\n </ModuleSummary>\n )\n}\n","import { TimerRounded as TimerRoundedIcon } from '@mui/icons-material'\nimport type { SentinelInstance } from '@xyo-network/sentinel-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const SentinelSummary: React.FC<ModuleSummaryProps<SentinelInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<TimerRoundedIcon />} {...props} />\n}\n","import { VisibilityRounded as VisibilityRoundedIcon } from '@mui/icons-material'\nimport type { WitnessInstance } from '@xyo-network/witness-model'\nimport React from 'react'\n\nimport type { ModuleSummaryProps } from './ModuleSummary.tsx'\nimport { ModuleSummary } from './ModuleSummary.tsx'\n\nexport const WitnessSummary: React.FC<ModuleSummaryProps<WitnessInstance>> = ({ mod, ...props }) => {\n return <ModuleSummary mod={mod} icon={<VisibilityRoundedIcon />} {...props} />\n}\n","import { Paper } from '@mui/material'\nimport { delay } from '@xylabs/delay'\nimport { forget } from '@xylabs/forget'\nimport { useAsyncEffect } from '@xylabs/react-async-effect'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport type { Module } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { useProvidedNode } from '@xyo-network/react-node'\nimport type { KeyboardEvent } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport { DebugDialog } from './DebugDialog.tsx'\nimport type { PoweredByXyoButtonProps } from './PoweredByXyoButton.tsx'\nimport { PoweredByXyoButton } from './PoweredByXyoButton.tsx'\n\nexport interface PoweredByXyoProps extends FlexBoxProps {\n autoStop?: boolean\n busy?: boolean\n buttonProps?: Omit<PoweredByXyoButtonProps, 'href' | 'to' | 'toOptions'>\n debugDialog?: boolean\n disableAnimation?: boolean\n href?: ButtonExProps['href']\n logoHeight?: number\n logoTextSize?: number\n node?: NodeInstance\n onButtonClick?: ButtonExProps['onClick']\n}\n\nexport const PoweredByXyo: React.FC<PoweredByXyoProps> = ({\n autoStop,\n busy,\n buttonProps,\n debugDialog = false,\n disableAnimation = false,\n href = 'https://xyo.network',\n logoHeight,\n logoTextSize,\n onButtonClick,\n node: propNode,\n ...props\n}) => {\n const [node] = useProvidedNode()\n const [debugDialogOpen, setDebugDialogOpen] = useState(false)\n\n const busyMap: Record<string, boolean> = useMemo(() => ({}), [node])\n\n const activeBusy = busy ?? Object.values(busyMap).includes(true)\n\n const activeOnButtonClick: PoweredByXyoProps['onButtonClick']\n = (debugDialog\n ? (event) => {\n if (event.shiftKey && event.altKey) {\n setDebugDialogOpen(true)\n } else if (href) {\n window.open(href, undefined, 'noopener,noreferrer')\n }\n }\n : undefined) ?? onButtonClick\n\n const activeHref = activeOnButtonClick ? undefined : href\n\n const onKeyDownEscListener = (event: KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Escape' && debugDialogOpen) {\n setDebugDialogOpen(false)\n }\n }\n\n useAsyncEffect(\n async () => {\n const activeNode = propNode ?? node\n if (disableAnimation) {\n return\n } else if (activeNode) {\n const mods = await activeNode?.resolve('*')\n mods?.map((mod) => {\n return mod.on('moduleBusy', ({ mod, busy }) => {\n busyMap[(mod as Module).address] = busy\n if (autoStop) {\n forget(\n (async () => {\n await delay(1000)\n busyMap[(mod as Module).address] = false\n })(),\n )\n }\n })\n })\n activeNode?.on('moduleBusy', ({ mod, busy }) => {\n busyMap[(mod as Module).address] = busy\n if (autoStop) {\n forget(\n (async () => {\n await delay(1000)\n busyMap[(mod as Module).address] = false\n })(),\n )\n }\n })\n }\n },\n [disableAnimation, propNode, node, busyMap, autoStop],\n )\n\n return (\n <FlexCol alignItems=\"stretch\" position=\"absolute\" bottom=\"0\" left=\"0\" {...props}>\n <Paper sx={{ borderRadius: 0 }}>\n {activeHref\n ? (\n <PoweredByXyoButton\n onClick={activeOnButtonClick}\n href={activeHref}\n busy={activeBusy}\n logoHeight={logoHeight}\n logoTextSize={logoTextSize}\n fullWidth\n {...buttonProps}\n />\n )\n : (\n <PoweredByXyoButton\n onClick={activeOnButtonClick}\n busy={activeBusy}\n logoHeight={logoHeight}\n logoTextSize={logoTextSize}\n fullWidth\n {...buttonProps}\n />\n )}\n </Paper>\n {debugDialog && debugDialogOpen\n ? <DebugDialog fullScreen open={debugDialogOpen} onClose={() => setDebugDialogOpen(false)} onKeyDown={onKeyDownEscListener} />\n : null}\n </FlexCol>\n )\n}\n","import { Typography } from '@mui/material'\nimport type { ButtonExProps } from '@xylabs/react-button'\nimport { ButtonEx } from '@xylabs/react-button'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport React, { useEffect, useState } from 'react'\n\nimport { xyoColorLogoText } from '../img/index.ts'\nimport { XyoBusy } from './XyoBusy.tsx'\n\nexport type PoweredByXyoButtonProps = ButtonExProps & {\n busy?: boolean\n logoHeight?: number\n logoTextSize?: number\n}\n\nexport const PoweredByXyoButton: React.FC<PoweredByXyoButtonProps> = ({\n busy = false,\n logoHeight,\n logoTextSize,\n ...props\n}) => {\n // preloading image to prevent shifting\n const [imageLoaded, setImageLoaded] = useState(false)\n useEffect(() => {\n const img = new Image()\n const onImageLoaded = () => setImageLoaded(true)\n img.addEventListener('load', onImageLoaded)\n img.src = xyoColorLogoText\n return () => {\n img.removeEventListener('load', onImageLoaded)\n }\n }, [])\n return imageLoaded\n ? (\n <ButtonEx\n {...props}\n target={props.target ?? '_blank'}\n variant={props.variant ?? 'text'}\n sx={{\n textDecoration: 'none', borderRadius: 0, padding: 0, ...props.sx,\n }}\n >\n <FlexCol padding={0.5}>\n <Typography style={{ fontSize: logoTextSize ?? 10 }} fontSize=\"small\">\n Powered by\n </Typography>\n <FlexRow>\n <XyoBusy busy={busy} />\n <img src={xyoColorLogoText} height={logoHeight ?? 24} width={45} />\n </FlexRow>\n </FlexCol>\n </ButtonEx>\n )\n : null\n}\n","<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 238\"><defs><style>.cls-1{fill:#8d8fc6;}.cls-2{fill:#579fd6;}.cls-3{fill:#f27046;}.cls-4{fill:#eb407a;}</style></defs><path class=\"cls-1\" d=\"M74.5,28.33,21.29,120.5,74.5,212.67H180.94l1.76-3,51.46-89.13L180.94,28.33ZM84.65,40.54h78.83L111.65,56.93a15.85,15.85,0,0,1,2,5l59.66-18.81L185.22,101a20.12,20.12,0,0,1,5.36-.78l-10-47.91,37.87,65.53h-7.62a24.21,24.21,0,0,1,.15,2.68,23.29,23.29,0,0,1-.15,2.68h7.62l-39.1,67.75,10.92-50.13A20.57,20.57,0,0,1,185,140l-12.88,59-58.37-19.53a17.61,17.61,0,0,1-1.7,5l47.5,15.92H84.65l4-6.85A20.17,20.17,0,0,1,83.93,191L80,197.78,42.67,133.13l37,32.66a20.52,20.52,0,0,1,3.6-4L36.69,120.66,85,77.79a17.45,17.45,0,0,1-3.19-4.32l-39.46,35L80,43.22l5.56,9.69A17.51,17.51,0,0,1,90.12,50Zm28.24,31.17a16.15,16.15,0,0,1-2.68,4.64l62,35.81a19.74,19.74,0,0,1,2.83-4.54Zm-20,10.51v75.33a18,18,0,0,1,2.47-.16,17.18,17.18,0,0,1,2.89.21v-75a11.21,11.21,0,0,1-1.29,0,17.57,17.57,0,0,1-4.07-.47Zm79.34,46.63-62.08,35.81a18.45,18.45,0,0,1,2.68,4.68l62.23-36a19.68,19.68,0,0,1-2.83-4.53Z\"/><path class=\"cls-2\" d=\"M97,48.58a17.06,17.06,0,1,0,17,17,17.08,17.08,0,0,0-17-17Zm0,5.36a11.7,11.7,0,1,1-11.7,11.69A11.65,11.65,0,0,1,97,53.94Z\"/><path class=\"cls-3\" d=\"M95.37,157.39a18.73,18.73,0,1,0,18.7,18.7,18.74,18.74,0,0,0-18.7-18.7Zm0,5.31A13.4,13.4,0,1,1,82,176.09a13.37,13.37,0,0,1,13.4-13.39Z\"/><path class=\"cls-4\" d=\"M190.73,100.2A20.3,20.3,0,1,0,211,120.5a20.34,20.34,0,0,0-20.3-20.3Zm0,5.36a14.94,14.94,0,1,1-14.94,14.94,14.88,14.88,0,0,1,14.94-14.94Z\"/></svg>","<svg id=\"Layer_1\" data-name=\"Layer 1\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"250 0 451 238\"><defs><style>.cls-1{fill:#8d8fc6;}.cls-2{fill:#579fd6;}.cls-3{fill:#f27046;}.cls-4{fill:#eb407a;}</style></defs><path class=\"cls-1\" d=\"M570,55.35a61.13,61.13,0,1,0,61.11,61.1A61.21,61.21,0,0,0,570,55.35Zm-266.4.1-8.2,8.14,53,52.91-53,52.91,8.2,8.2,52.91-53,44.77,44.77,8.14,8.2,114-114-8.14-8.14-52.91,52.91-53-52.91-8.14,8.14-44.77,44.77ZM570,66.84a49.61,49.61,0,1,1-49.61,49.61A49.54,49.54,0,0,1,570,66.84ZM409.45,71.73l44.77,44.77-44.77,44.77L364.68,116.5Z\"/></svg>\n","import type { FlexBoxProps } from '@xylabs/react-flexbox'\nimport { FlexCol } from '@xylabs/react-flexbox'\nimport React, { useState } from 'react'\n\nimport { xyoColorLogo } from '../img/index.ts'\n\nexport type XyoBusyProps = Omit<FlexBoxProps, 'children'> & {\n busy?: boolean\n spinsPerSecond?: number\n widthInPixels?: number\n}\n\nexport const XyoBusy: React.FC<XyoBusyProps> = ({\n widthInPixels, busy, spinsPerSecond = 0.5, ...props\n}) => {\n // preloading image to prevent shifting\n const [imageLoaded, setImageLoaded] = useState(false)\n if (!imageLoaded) {\n const img = new Image()\n img.addEventListener('load', () => setImageLoaded(true))\n img.src = xyoColorLogo\n }\n return imageLoaded\n ? (\n <FlexCol\n sx={{\n '@keyframes spin': {\n '0%': { transform: 'rotate(360deg)' },\n '100%': { transform: 'rotate(0deg)' },\n },\n 'animation': busy ? `spin ${1 / spinsPerSecond}s linear infinite` : undefined,\n 'animationDirection': 'reverse',\n }}\n {...props}\n >\n <img src={xyoColorLogo} height={widthInPixels ?? 22} />\n </FlexCol>\n )\n : null\n}\n"],"mappings":"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","names":["busy","jsx","jsx","Dialog","DialogActions","DialogContent","DialogTitle","FlexCol","useWeakModulesFromNode","ButtonEx","FlexCol","FlexRow","useState","jsx","jsxs","jsx","jsxs","FlexCol","FlexRow","ButtonEx","jsx","usePromise","useWeakModulesFromNode","jsx","usePromise","useWeakModulesFromNode","jsx","jsx","jsx","jsx","jsxs","Fragment","jsx","useWeakModulesFromNode","FlexCol","jsx","jsxs","Dialog","DialogTitle","DialogContent","DialogActions","delay","FlexCol","useProvidedNode","useState","ButtonEx","FlexCol","FlexRow","useState","FlexCol","useState","jsx","useState","FlexCol","jsx","jsxs","useState","ButtonEx","FlexCol","FlexRow","jsx","jsxs","useProvidedNode","useState","mod","busy","delay","FlexCol"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xyo-network/react-powered-by-xyo",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.1",
|
|
4
4
|
"description": "Common React library for all XYO projects that use React",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"xyo",
|
|
@@ -43,48 +43,49 @@
|
|
|
43
43
|
"src"
|
|
44
44
|
],
|
|
45
45
|
"dependencies": {
|
|
46
|
-
"@xylabs/delay": "
|
|
47
|
-
"@xylabs/forget": "
|
|
48
|
-
"@xylabs/react-async-effect": "
|
|
49
|
-
"@xylabs/react-button": "
|
|
50
|
-
"@xylabs/react-flexbox": "
|
|
51
|
-
"@xylabs/react-promise": "
|
|
52
|
-
"@xyo-network/archivist-model": "
|
|
53
|
-
"@xyo-network/bridge-model": "
|
|
54
|
-
"@xyo-network/diviner-model": "
|
|
55
|
-
"@xyo-network/module-model": "
|
|
56
|
-
"@xyo-network/node-model": "
|
|
57
|
-
"@xyo-network/payload-model": "
|
|
58
|
-
"@xyo-network/react-node": "^7.0.
|
|
59
|
-
"@xyo-network/react-payload-raw-info": "^7.0.
|
|
60
|
-
"@xyo-network/react-property": "^7.0.
|
|
61
|
-
"@xyo-network/react-shared": "^7.0.
|
|
62
|
-
"@xyo-network/sentinel-model": "
|
|
63
|
-
"@xyo-network/witness-model": "
|
|
46
|
+
"@xylabs/delay": "~5.0.8",
|
|
47
|
+
"@xylabs/forget": "~5.0.8",
|
|
48
|
+
"@xylabs/react-async-effect": "~7.0.1",
|
|
49
|
+
"@xylabs/react-button": "~7.0.1",
|
|
50
|
+
"@xylabs/react-flexbox": "~7.0.1",
|
|
51
|
+
"@xylabs/react-promise": "~7.0.1",
|
|
52
|
+
"@xyo-network/archivist-model": "~5.0.5",
|
|
53
|
+
"@xyo-network/bridge-model": "~5.0.5",
|
|
54
|
+
"@xyo-network/diviner-model": "~5.0.5",
|
|
55
|
+
"@xyo-network/module-model": "~5.0.5",
|
|
56
|
+
"@xyo-network/node-model": "~5.0.5",
|
|
57
|
+
"@xyo-network/payload-model": "~5.0.5",
|
|
58
|
+
"@xyo-network/react-node": "^7.0.1",
|
|
59
|
+
"@xyo-network/react-payload-raw-info": "^7.0.1",
|
|
60
|
+
"@xyo-network/react-property": "^7.0.1",
|
|
61
|
+
"@xyo-network/react-shared": "^7.0.1",
|
|
62
|
+
"@xyo-network/sentinel-model": "~5.0.5",
|
|
63
|
+
"@xyo-network/witness-model": "~5.0.5"
|
|
64
64
|
},
|
|
65
65
|
"devDependencies": {
|
|
66
|
-
"@emotion/react": "
|
|
67
|
-
"@emotion/styled": "
|
|
68
|
-
"@mui/icons-material": "
|
|
69
|
-
"@mui/material": "
|
|
70
|
-
"@storybook/react-vite": "
|
|
71
|
-
"@types/react": "
|
|
72
|
-
"@xylabs/hex": "
|
|
73
|
-
"@xylabs/ts-scripts-yarn3": "
|
|
74
|
-
"@xyo-network/account": "
|
|
75
|
-
"@xyo-network/manifest": "
|
|
76
|
-
"@xyo-network/module-factory-locator": "
|
|
77
|
-
"@xyo-network/wallet": "
|
|
78
|
-
"react": "
|
|
79
|
-
"react-dom": "
|
|
80
|
-
"storybook": "
|
|
81
|
-
"typescript": "
|
|
66
|
+
"@emotion/react": "~11.14.0",
|
|
67
|
+
"@emotion/styled": "~11.14.1",
|
|
68
|
+
"@mui/icons-material": "~7.3.1",
|
|
69
|
+
"@mui/material": "~7.3.1",
|
|
70
|
+
"@storybook/react-vite": "~9.1.2",
|
|
71
|
+
"@types/react": "~19.1.10",
|
|
72
|
+
"@xylabs/hex": "~5.0.8",
|
|
73
|
+
"@xylabs/ts-scripts-yarn3": "~7.1.1",
|
|
74
|
+
"@xyo-network/account": "~5.0.5",
|
|
75
|
+
"@xyo-network/manifest": "~5.0.5",
|
|
76
|
+
"@xyo-network/module-factory-locator": "~5.0.5",
|
|
77
|
+
"@xyo-network/wallet": "~5.0.5",
|
|
78
|
+
"react": "~19.1.1",
|
|
79
|
+
"react-dom": "~19.1.1",
|
|
80
|
+
"storybook": "~9.1.2",
|
|
81
|
+
"typescript": "~5.9.2",
|
|
82
|
+
"vite": "~7.1.2"
|
|
82
83
|
},
|
|
83
84
|
"peerDependencies": {
|
|
84
85
|
"@mui/icons-material": ">=6 <8",
|
|
85
86
|
"@mui/material": ">=6 <8",
|
|
86
|
-
"react": "
|
|
87
|
-
"react-dom": "
|
|
87
|
+
"react": "~19",
|
|
88
|
+
"react-dom": "~19"
|
|
88
89
|
},
|
|
89
90
|
"publishConfig": {
|
|
90
91
|
"access": "public"
|