@xyo-network/react-powered-by-xyo 3.0.1 → 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/browser/components/ArchivistSummary.d.ts +5 -0
  2. package/dist/browser/components/ArchivistSummary.d.ts.map +1 -0
  3. package/dist/browser/components/BridgeSummary.d.ts +5 -0
  4. package/dist/browser/components/BridgeSummary.d.ts.map +1 -0
  5. package/dist/browser/components/DebugDialog.d.ts +6 -0
  6. package/dist/browser/components/DebugDialog.d.ts.map +1 -0
  7. package/dist/browser/components/DivinerSummary.d.ts +5 -0
  8. package/dist/browser/components/DivinerSummary.d.ts.map +1 -0
  9. package/dist/browser/components/JsonViewerButton.d.ts +9 -0
  10. package/dist/browser/components/JsonViewerButton.d.ts.map +1 -0
  11. package/dist/browser/components/ModuleAccordion.d.ts +8 -0
  12. package/dist/browser/components/ModuleAccordion.d.ts.map +1 -0
  13. package/dist/browser/components/ModuleDetails.d.ts +8 -0
  14. package/dist/browser/components/ModuleDetails.d.ts.map +1 -0
  15. package/dist/browser/components/ModuleSummary.d.ts +10 -0
  16. package/dist/browser/components/ModuleSummary.d.ts.map +1 -0
  17. package/dist/browser/components/NodeDetails.d.ts +7 -0
  18. package/dist/browser/components/NodeDetails.d.ts.map +1 -0
  19. package/dist/browser/components/NodeSummary.d.ts +5 -0
  20. package/dist/browser/components/NodeSummary.d.ts.map +1 -0
  21. package/dist/browser/components/PoweredByXyo.d.ts +19 -0
  22. package/dist/browser/components/PoweredByXyo.d.ts.map +1 -0
  23. package/dist/browser/components/PoweredByXyoButton.d.ts +9 -0
  24. package/dist/browser/components/PoweredByXyoButton.d.ts.map +1 -0
  25. package/dist/browser/components/SentinelSummary.d.ts +5 -0
  26. package/dist/browser/components/SentinelSummary.d.ts.map +1 -0
  27. package/dist/browser/components/TypedModuleSummary.d.ts +4 -0
  28. package/dist/browser/components/TypedModuleSummary.d.ts.map +1 -0
  29. package/dist/browser/components/WitnessSummary.d.ts +5 -0
  30. package/dist/browser/components/WitnessSummary.d.ts.map +1 -0
  31. package/dist/browser/components/XyoBusy.d.ts +9 -0
  32. package/dist/browser/components/XyoBusy.d.ts.map +1 -0
  33. package/dist/browser/components/index.d.ts +15 -0
  34. package/dist/browser/components/index.d.ts.map +1 -0
  35. package/dist/browser/img/index.d.ts +3 -0
  36. package/dist/browser/img/index.d.ts.map +1 -0
  37. package/dist/browser/index.d.ts +2 -78
  38. package/dist/browser/index.d.ts.map +1 -0
  39. package/dist/browser/index.mjs.map +1 -1
  40. package/package.json +71 -63
  41. package/src/components/ArchivistSummary.tsx +3 -2
  42. package/src/components/BridgeSummary.tsx +3 -2
  43. package/src/components/DebugDialog.tsx +4 -1
  44. package/src/components/DivinerSummary.tsx +3 -2
  45. package/src/components/JsonViewerButton.tsx +10 -4
  46. package/src/components/ModuleAccordion.tsx +5 -2
  47. package/src/components/ModuleDetails.tsx +4 -2
  48. package/src/components/ModuleSummary.tsx +8 -4
  49. package/src/components/NodeDetails.tsx +2 -2
  50. package/src/components/NodeSummary.tsx +4 -3
  51. package/src/components/PoweredByXyo.tsx +9 -6
  52. package/src/components/PoweredByXyoButton.tsx +11 -2
  53. package/src/components/SentinelSummary.tsx +3 -2
  54. package/src/components/TypedModuleSummary.tsx +2 -1
  55. package/src/components/WitnessSummary.tsx +3 -2
  56. package/src/components/XyoBusy.tsx +7 -8
  57. package/src/components/stories/PoweredByXyo.stories.tsx +10 -10
  58. package/src/components/stories/PoweredByXyoButton.stories.tsx +4 -7
  59. package/src/components/stories/XyoBusy.stories.tsx +4 -7
  60. package/xy.config.ts +2 -4
@@ -0,0 +1,5 @@
1
+ import type { ArchivistInstance } from '@xyo-network/archivist-model';
2
+ import React from 'react';
3
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx';
4
+ export declare const ArchivistSummary: React.FC<ModuleSummaryProps<ArchivistInstance>>;
5
+ //# sourceMappingURL=ArchivistSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ArchivistSummary.d.ts","sourceRoot":"","sources":["../../../src/components/ArchivistSummary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AACrE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,CAE5E,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { BridgeInstance } from '@xyo-network/bridge-model';
2
+ import React from 'react';
3
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx';
4
+ export declare const BridgeSummary: React.FC<ModuleSummaryProps<BridgeInstance>>;
5
+ //# sourceMappingURL=BridgeSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BridgeSummary.d.ts","sourceRoot":"","sources":["../../../src/components/BridgeSummary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,cAAc,CAAC,CAEtE,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { DialogProps } from '@mui/material';
2
+ import React from 'react';
3
+ export interface DebugDialogProps extends DialogProps {
4
+ }
5
+ export declare const DebugDialog: React.FC<DebugDialogProps>;
6
+ //# sourceMappingURL=DebugDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DebugDialog.d.ts","sourceRoot":"","sources":["../../../src/components/DebugDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,WAAW,gBAAiB,SAAQ,WAAW;CAAG;AAExD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CAYlD,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { DivinerInstance } from '@xyo-network/diviner-model';
2
+ import React from 'react';
3
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx';
4
+ export declare const DivinerSummary: React.FC<ModuleSummaryProps<DivinerInstance>>;
5
+ //# sourceMappingURL=DivinerSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DivinerSummary.d.ts","sourceRoot":"","sources":["../../../src/components/DivinerSummary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAExE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { ButtonExProps } from '@xylabs/react-button';
2
+ import type { JsonViewerExProps } from '@xyo-network/react-payload-raw-info';
3
+ import React from 'react';
4
+ export interface JsonViewerButtonProps extends ButtonExProps {
5
+ jsonViewProps?: Partial<JsonViewerExProps>;
6
+ src: object;
7
+ }
8
+ export declare const JsonViewerButton: React.FC<JsonViewerButtonProps>;
9
+ //# sourceMappingURL=JsonViewerButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JsonViewerButton.d.ts","sourceRoot":"","sources":["../../../src/components/JsonViewerButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAE5E,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,MAAM,WAAW,qBAAsB,SAAQ,aAAa;IAC1D,aAAa,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAA;IAC1C,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAsB5D,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { ModuleInstance } from '@xyo-network/module-model';
2
+ import React from 'react';
3
+ export interface ModuleAccordionProps<T extends ModuleInstance = ModuleInstance> extends Omit<AccordionProps, 'children'> {
4
+ mod?: T;
5
+ }
6
+ import type { AccordionProps } from '@mui/material';
7
+ export declare const ModuleAccordion: React.FC<ModuleAccordionProps>;
8
+ //# sourceMappingURL=ModuleAccordion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleAccordion.d.ts","sourceRoot":"","sources":["../../../src/components/ModuleAccordion.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAC/D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC;IACvH,GAAG,CAAC,EAAE,CAAC,CAAA;CACR;AAED,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAQnD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAW1D,CAAA"}
@@ -0,0 +1,8 @@
1
+ import type { FlexBoxProps } from '@xylabs/react-flexbox';
2
+ import type { ModuleInstance } from '@xyo-network/module-model';
3
+ import React from 'react';
4
+ export interface ModuleDetailsProps<T extends ModuleInstance = ModuleInstance> extends FlexBoxProps {
5
+ mod?: T;
6
+ }
7
+ export declare const ModuleDetails: React.FC<ModuleDetailsProps>;
8
+ //# sourceMappingURL=ModuleDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleDetails.d.ts","sourceRoot":"","sources":["../../../src/components/ModuleDetails.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGzD,OAAO,KAAK,EAA4B,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAIzF,OAAO,KAAK,MAAM,OAAO,CAAA;AAIzB,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,YAAY;IACjG,GAAG,CAAC,EAAE,CAAC,CAAA;CACR;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA0EtD,CAAA"}
@@ -0,0 +1,10 @@
1
+ import type { FlexBoxProps } from '@xylabs/react-flexbox';
2
+ import type { ModuleInstance } from '@xyo-network/module-model';
3
+ import type { ReactNode } from 'react';
4
+ import React from 'react';
5
+ export interface ModuleSummaryProps<T extends ModuleInstance = ModuleInstance> extends FlexBoxProps {
6
+ icon?: ReactNode;
7
+ mod?: T;
8
+ }
9
+ export declare const ModuleSummary: React.FC<ModuleSummaryProps>;
10
+ //# sourceMappingURL=ModuleSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModuleSummary.d.ts","sourceRoot":"","sources":["../../../src/components/ModuleSummary.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAA;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AACtC,OAAO,KAAmB,MAAM,OAAO,CAAA;AAEvC,MAAM,WAAW,kBAAkB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,CAAE,SAAQ,YAAY;IACjG,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,GAAG,CAAC,EAAE,CAAC,CAAA;CACR;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CA6BtD,CAAA"}
@@ -0,0 +1,7 @@
1
+ import type { NodeInstance } from '@xyo-network/node-model';
2
+ import React from 'react';
3
+ import type { ModuleDetailsProps } from './ModuleDetails.tsx';
4
+ export interface NodeViewerProps extends ModuleDetailsProps<NodeInstance> {
5
+ }
6
+ export declare const NodeDetails: React.FC<NodeViewerProps>;
7
+ //# sourceMappingURL=NodeDetails.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeDetails.d.ts","sourceRoot":"","sources":["../../../src/components/NodeDetails.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,KAAK,MAAM,OAAO,CAAA;AAGzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAE7D,MAAM,WAAW,eAAgB,SAAQ,kBAAkB,CAAC,YAAY,CAAC;CAAG;AAE5E,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,eAAe,CAqBjD,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { NodeInstance } from '@xyo-network/node-model';
2
+ import React from 'react';
3
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx';
4
+ export declare const NodeSummary: React.FC<ModuleSummaryProps<NodeInstance>>;
5
+ //# sourceMappingURL=NodeSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeSummary.d.ts","sourceRoot":"","sources":["../../../src/components/NodeSummary.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAoBlE,CAAA"}
@@ -0,0 +1,19 @@
1
+ import type { ButtonExProps } from '@xylabs/react-button';
2
+ import type { FlexBoxProps } from '@xylabs/react-flexbox';
3
+ import type { NodeInstance } from '@xyo-network/node-model';
4
+ import React from 'react';
5
+ import type { PoweredByXyoButtonProps } from './PoweredByXyoButton.tsx';
6
+ export interface PoweredByXyoProps extends FlexBoxProps {
7
+ autoStop?: boolean;
8
+ busy?: boolean;
9
+ buttonProps?: PoweredByXyoButtonProps;
10
+ debugDialog?: boolean;
11
+ disableAnimation?: boolean;
12
+ href?: ButtonExProps['href'];
13
+ logoHeight?: number;
14
+ logoTextSize?: number;
15
+ node?: NodeInstance;
16
+ onButtonClick?: ButtonExProps['onClick'];
17
+ }
18
+ export declare const PoweredByXyo: React.FC<PoweredByXyoProps>;
19
+ //# sourceMappingURL=PoweredByXyo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoweredByXyo.d.ts","sourceRoot":"","sources":["../../../src/components/PoweredByXyo.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAGzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAG3D,OAAO,KAA4B,MAAM,OAAO,CAAA;AAGhD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAGvE,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,WAAW,CAAC,EAAE,uBAAuB,CAAA;IACrC,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,IAAI,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAA;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,aAAa,CAAC,EAAE,aAAa,CAAC,SAAS,CAAC,CAAA;CACzC;AAED,eAAO,MAAM,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,iBAAiB,CA6FpD,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { ButtonExProps } from '@xylabs/react-button';
2
+ import React from 'react';
3
+ export interface PoweredByXyoButtonProps extends ButtonExProps {
4
+ busy?: boolean;
5
+ logoHeight?: number;
6
+ logoTextSize?: number;
7
+ }
8
+ export declare const PoweredByXyoButton: React.FC<PoweredByXyoButtonProps>;
9
+ //# sourceMappingURL=PoweredByXyoButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PoweredByXyoButton.d.ts","sourceRoot":"","sources":["../../../src/components/PoweredByXyoButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGzD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAKvC,MAAM,WAAW,uBAAwB,SAAQ,aAAa;IAC5D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,uBAAuB,CAsChE,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { SentinelInstance } from '@xyo-network/sentinel-model';
2
+ import React from 'react';
3
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx';
4
+ export declare const SentinelSummary: React.FC<ModuleSummaryProps<SentinelInstance>>;
5
+ //# sourceMappingURL=SentinelSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SentinelSummary.d.ts","sourceRoot":"","sources":["../../../src/components/SentinelSummary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AACnE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAE1E,CAAA"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx';
3
+ export declare const TypedModuleSummary: React.FC<ModuleSummaryProps>;
4
+ //# sourceMappingURL=TypedModuleSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TypedModuleSummary.d.ts","sourceRoot":"","sources":["../../../src/components/TypedModuleSummary.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,MAAM,OAAO,CAAA;AAKzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAM7D,eAAO,MAAM,kBAAkB,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAoB3D,CAAA"}
@@ -0,0 +1,5 @@
1
+ import type { WitnessInstance } from '@xyo-network/witness-model';
2
+ import React from 'react';
3
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx';
4
+ export declare const WitnessSummary: React.FC<ModuleSummaryProps<WitnessInstance>>;
5
+ //# sourceMappingURL=WitnessSummary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WitnessSummary.d.ts","sourceRoot":"","sources":["../../../src/components/WitnessSummary.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG7D,eAAO,MAAM,cAAc,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAAC,eAAe,CAAC,CAExE,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { FlexBoxProps } from '@xylabs/react-flexbox';
2
+ import React from 'react';
3
+ export type XyoBusyProps = Omit<FlexBoxProps, 'children'> & {
4
+ busy?: boolean;
5
+ spinsPerSecond?: number;
6
+ widthInPixels?: number;
7
+ };
8
+ export declare const XyoBusy: React.FC<XyoBusyProps>;
9
+ //# sourceMappingURL=XyoBusy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"XyoBusy.d.ts","sourceRoot":"","sources":["../../../src/components/XyoBusy.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AAEzD,OAAO,KAAmB,MAAM,OAAO,CAAA;AAIvC,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,eAAO,MAAM,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY,CA2B1C,CAAA"}
@@ -0,0 +1,15 @@
1
+ export * from './ArchivistSummary.tsx';
2
+ export * from './BridgeSummary.tsx';
3
+ export * from './DebugDialog.tsx';
4
+ export * from './DivinerSummary.tsx';
5
+ export * from './ModuleAccordion.tsx';
6
+ export * from './ModuleDetails.tsx';
7
+ export * from './ModuleSummary.tsx';
8
+ export * from './NodeDetails.tsx';
9
+ export * from './PoweredByXyo.tsx';
10
+ export * from './PoweredByXyoButton.tsx';
11
+ export * from './SentinelSummary.tsx';
12
+ export * from './TypedModuleSummary.tsx';
13
+ export * from './WitnessSummary.tsx';
14
+ export * from './XyoBusy.tsx';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA;AACtC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,sBAAsB,CAAA;AACpC,cAAc,uBAAuB,CAAA;AACrC,cAAc,qBAAqB,CAAA;AACnC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,oBAAoB,CAAA;AAClC,cAAc,0BAA0B,CAAA;AACxC,cAAc,uBAAuB,CAAA;AACrC,cAAc,0BAA0B,CAAA;AACxC,cAAc,sBAAsB,CAAA;AACpC,cAAc,eAAe,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { default as xyoColorLogo } from './xyo-color-logo.svg';
2
+ export { default as xyoColorLogoText } from './xyo-color-logo-text-only.svg';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/img/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gCAAgC,CAAA"}
@@ -1,78 +1,2 @@
1
- import { ArchivistInstance } from '@xyo-network/archivist-model';
2
- import React, { ReactNode } from 'react';
3
- import { FlexBoxProps } from '@xylabs/react-flexbox';
4
- import { ModuleInstance } from '@xyo-network/module-model';
5
- import { BridgeInstance } from '@xyo-network/bridge-model';
6
- import { DialogProps, AccordionProps } from '@mui/material';
7
- import { DivinerInstance } from '@xyo-network/diviner-model';
8
- import { NodeInstance } from '@xyo-network/node-model';
9
- import { ButtonExProps } from '@xylabs/react-button';
10
- import { SentinelInstance } from '@xyo-network/sentinel-model';
11
- import { WitnessInstance } from '@xyo-network/witness-model';
12
-
13
- interface ModuleSummaryProps<T extends ModuleInstance = ModuleInstance> extends FlexBoxProps {
14
- icon?: ReactNode;
15
- mod?: T;
16
- }
17
- declare const ModuleSummary: React.FC<ModuleSummaryProps>;
18
-
19
- declare const ArchivistSummary: React.FC<ModuleSummaryProps<ArchivistInstance>>;
20
-
21
- declare const BridgeSummary: React.FC<ModuleSummaryProps<BridgeInstance>>;
22
-
23
- interface DebugDialogProps extends DialogProps {
24
- }
25
- declare const DebugDialog: React.FC<DebugDialogProps>;
26
-
27
- declare const DivinerSummary: React.FC<ModuleSummaryProps<DivinerInstance>>;
28
-
29
- interface ModuleAccordionProps<T extends ModuleInstance = ModuleInstance> extends Omit<AccordionProps, 'children'> {
30
- mod?: T;
31
- }
32
-
33
- declare const ModuleAccordion: React.FC<ModuleAccordionProps>;
34
-
35
- interface ModuleDetailsProps<T extends ModuleInstance = ModuleInstance> extends FlexBoxProps {
36
- mod?: T;
37
- }
38
- declare const ModuleDetails: React.FC<ModuleDetailsProps>;
39
-
40
- interface NodeViewerProps extends ModuleDetailsProps<NodeInstance> {
41
- }
42
- declare const NodeDetails: React.FC<NodeViewerProps>;
43
-
44
- interface PoweredByXyoButtonProps extends ButtonExProps {
45
- busy?: boolean;
46
- logoHeight?: number;
47
- logoTextSize?: number;
48
- }
49
- declare const PoweredByXyoButton: React.FC<PoweredByXyoButtonProps>;
50
-
51
- interface PoweredByXyoProps extends FlexBoxProps {
52
- autoStop?: boolean;
53
- busy?: boolean;
54
- buttonProps?: PoweredByXyoButtonProps;
55
- debugDialog?: boolean;
56
- disableAnimation?: boolean;
57
- href?: ButtonExProps['href'];
58
- logoHeight?: number;
59
- logoTextSize?: number;
60
- node?: NodeInstance;
61
- onButtonClick?: ButtonExProps['onClick'];
62
- }
63
- declare const PoweredByXyo: React.FC<PoweredByXyoProps>;
64
-
65
- declare const SentinelSummary: React.FC<ModuleSummaryProps<SentinelInstance>>;
66
-
67
- declare const TypedModuleSummary: React.FC<ModuleSummaryProps>;
68
-
69
- declare const WitnessSummary: React.FC<ModuleSummaryProps<WitnessInstance>>;
70
-
71
- type XyoBusyProps = Omit<FlexBoxProps, 'children'> & {
72
- busy?: boolean;
73
- spinsPerSecond?: number;
74
- widthInPixels?: number;
75
- };
76
- declare const XyoBusy: React.FC<XyoBusyProps>;
77
-
78
- export { ArchivistSummary, BridgeSummary, DebugDialog, type DebugDialogProps, DivinerSummary, ModuleAccordion, type ModuleAccordionProps, ModuleDetails, type ModuleDetailsProps, ModuleSummary, type ModuleSummaryProps, NodeDetails, type NodeViewerProps, PoweredByXyo, PoweredByXyoButton, type PoweredByXyoButtonProps, type PoweredByXyoProps, SentinelSummary, TypedModuleSummary, WitnessSummary, XyoBusy, type XyoBusyProps };
1
+ export * from './components/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA"}
@@ -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/index.ts","../../src/components/XyoBusy.tsx"],"sourcesContent":["import { Inventory2Rounded as Inventory2RoundedIcon } from '@mui/icons-material'\nimport { ArchivistInstance } from '@xyo-network/archivist-model'\nimport React from 'react'\n\nimport { ModuleSummary, ModuleSummaryProps } 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 { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { ModuleInstance } from '@xyo-network/module-model'\nimport { useWeakModulesFromNode } from '@xyo-network/react-node'\nimport { TypographyEx } from '@xyo-network/react-shared'\nimport React, { ReactNode, 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> = ({ children, icon, mod, ...props }) => {\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 { BridgeInstance } from '@xyo-network/bridge-model'\nimport React from 'react'\n\nimport { ModuleSummary, ModuleSummaryProps } 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 { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } 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 { 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 { 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 { 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 { Accordion, AccordionDetails, AccordionProps, AccordionSummary } 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 { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport { usePromise } from '@xylabs/react-promise'\nimport { ModuleDescriptionPayload, ModuleDescriptionSchema, ModuleInstance } 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 { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'\nimport { ButtonEx, ButtonExProps } from '@xylabs/react-button'\nimport { JsonViewerEx, JsonViewerExProps } from '@xyo-network/react-payload-raw-info'\nimport React, { useState } from 'react'\n\nexport interface JsonViewerButtonProps extends ButtonExProps {\n jsonViewProps?: Partial<JsonViewerExProps>\n src: object\n}\n\nexport const JsonViewerButton: React.FC<JsonViewerButtonProps> = ({ children, jsonViewProps, src, title, ...props }) => {\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 { ModuleSummary, ModuleSummaryProps } 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 { DivinerInstance } from '@xyo-network/diviner-model'\nimport React from 'react'\n\nimport { ModuleSummary, ModuleSummaryProps } 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 { NodeManifest } from '@xyo-network/manifest'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { useWeakModulesFromNode } from '@xyo-network/react-node'\nimport React from 'react'\n\nimport { ModuleSummary, ModuleSummaryProps } 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 { SentinelInstance } from '@xyo-network/sentinel-model'\nimport React from 'react'\n\nimport { ModuleSummary, ModuleSummaryProps } 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 { WitnessInstance } from '@xyo-network/witness-model'\nimport React from 'react'\n\nimport { ModuleSummary, ModuleSummaryProps } 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 { ButtonExProps } from '@xylabs/react-button'\nimport { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'\nimport { Module } from '@xyo-network/module-model'\nimport { NodeInstance } from '@xyo-network/node-model'\nimport { useProvidedNode } from '@xyo-network/react-node'\nimport React, { KeyboardEvent, useMemo, useState } from 'react'\n\nimport { DebugDialog } from './DebugDialog.tsx'\nimport { PoweredByXyoButton, PoweredByXyoButtonProps } from './PoweredByXyoButton.tsx'\n\nexport interface PoweredByXyoProps extends FlexBoxProps {\n autoStop?: boolean\n busy?: boolean\n buttonProps?: PoweredByXyoButtonProps\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)\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 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 <PoweredByXyoButton\n onClick={activeOnButtonClick}\n href={activeHref}\n busy={activeBusy}\n logoHeight={logoHeight}\n logoTextSize={logoTextSize}\n fullWidth\n {...buttonProps}\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 { ButtonEx, ButtonExProps } from '@xylabs/react-button'\nimport { FlexCol, FlexRow } from '@xylabs/react-flexbox'\nimport React, { useState } from 'react'\n\nimport { xyoColorLogoText } from '../img/index.ts'\nimport { XyoBusy } from './XyoBusy.tsx'\n\nexport interface PoweredByXyoButtonProps extends ButtonExProps {\n busy?: boolean\n logoHeight?: number\n logoTextSize?: number\n}\n\nexport const PoweredByXyoButton: React.FC<PoweredByXyoButtonProps> = ({\n busy = false,\n href,\n logoHeight,\n logoTextSize,\n sx,\n target = '_blank',\n variant = 'text',\n ...props\n}) => {\n // preloading image to prevent shifting\n const [imageLoaded, setImageLoaded] = useState(false)\n const img = new Image()\n img.addEventListener('load', () => setImageLoaded(true))\n img.src = xyoColorLogoText\n return imageLoaded\n ? (\n <ButtonEx href={href} target={target} variant={variant} sx={{ borderRadius: 0, padding: 0, ...sx }} {...props}>\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","export { default as xyoColorLogo } from './xyo-color-logo.svg'\nexport { default as xyoColorLogoText } from './xyo-color-logo-text-only.svg'\n","import { FlexBoxProps, 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> = ({ widthInPixels, busy, spinsPerSecond = 0.5, ...props }) => {\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%': {\n transform: 'rotate(360deg)',\n },\n '100%': {\n transform: 'rotate(0deg)',\n },\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","useState","xyoColorLogo","default","xyoColorLogoText","FlexCol","React","useState","XyoBusy","widthInPixels","busy","spinsPerSecond","props","imageLoaded","setImageLoaded","useState","img","Image","addEventListener","src","xyoColorLogo","React","FlexCol","sx","transform","undefined","height","PoweredByXyoButton","busy","href","logoHeight","logoTextSize","sx","target","variant","props","imageLoaded","setImageLoaded","useState","img","Image","addEventListener","src","xyoColorLogoText","React","ButtonEx","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/index.ts","../../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 interface JsonViewerButtonProps extends 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?: PoweredByXyoButtonProps\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)\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 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 <PoweredByXyoButton\n onClick={activeOnButtonClick}\n href={activeHref}\n busy={activeBusy}\n logoHeight={logoHeight}\n logoTextSize={logoTextSize}\n fullWidth\n {...buttonProps}\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, { useState } from 'react'\n\nimport { xyoColorLogoText } from '../img/index.ts'\nimport { XyoBusy } from './XyoBusy.tsx'\n\nexport interface PoweredByXyoButtonProps extends ButtonExProps {\n busy?: boolean\n logoHeight?: number\n logoTextSize?: number\n}\n\nexport const PoweredByXyoButton: React.FC<PoweredByXyoButtonProps> = ({\n busy = false,\n href,\n logoHeight,\n logoTextSize,\n sx,\n target = '_blank',\n variant = 'text',\n ...props\n}) => {\n // preloading image to prevent shifting\n const [imageLoaded, setImageLoaded] = useState(false)\n const img = new Image()\n img.addEventListener('load', () => setImageLoaded(true))\n img.src = xyoColorLogoText\n return imageLoaded\n ? (\n <ButtonEx\n href={href}\n target={target}\n variant={variant}\n sx={{\n borderRadius: 0, padding: 0, ...sx,\n }}\n {...props}\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","export { default as xyoColorLogo } from './xyo-color-logo.svg'\nexport { default as xyoColorLogoText } from './xyo-color-logo-text-only.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","useState","xyoColorLogo","default","xyoColorLogoText","FlexCol","React","useState","XyoBusy","widthInPixels","busy","spinsPerSecond","props","imageLoaded","setImageLoaded","useState","img","Image","addEventListener","src","xyoColorLogo","React","FlexCol","sx","transform","undefined","height","PoweredByXyoButton","busy","href","logoHeight","logoTextSize","sx","target","variant","props","imageLoaded","setImageLoaded","useState","img","Image","addEventListener","src","xyoColorLogoText","React","ButtonEx","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"]}
package/package.json CHANGED
@@ -1,52 +1,30 @@
1
1
  {
2
2
  "name": "@xyo-network/react-powered-by-xyo",
3
- "author": {
4
- "email": "support@xyo.network",
5
- "name": "XYO Development Team",
6
- "url": "https://xyo.network"
7
- },
3
+ "version": "3.0.3",
4
+ "description": "Common React library for all XYO projects that use React",
5
+ "keywords": [
6
+ "xyo",
7
+ "utility",
8
+ "typescript",
9
+ "react"
10
+ ],
11
+ "homepage": "https://xyo.network",
8
12
  "bugs": {
9
- "email": "support@xyo.network",
10
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues"
13
+ "url": "git+https://github.com/XYOracleNetwork/sdk-xyo-react-js/issues",
14
+ "email": "support@xyo.network"
11
15
  },
12
- "dependencies": {
13
- "@xylabs/delay": "^4.0.1",
14
- "@xylabs/forget": "^4.0.1",
15
- "@xylabs/react-async-effect": "^4.0.1",
16
- "@xylabs/react-button": "^4.0.1",
17
- "@xylabs/react-flexbox": "^4.0.1",
18
- "@xylabs/react-promise": "^4.0.1",
19
- "@xyo-network/archivist-model": "^3.0.2",
20
- "@xyo-network/bridge-model": "^3.0.2",
21
- "@xyo-network/diviner-model": "^3.0.2",
22
- "@xyo-network/manifest": "^3.0.2",
23
- "@xyo-network/module-model": "^3.0.2",
24
- "@xyo-network/node-model": "^3.0.2",
25
- "@xyo-network/payload-model": "^3.0.2",
26
- "@xyo-network/react-node": "^3.0.1",
27
- "@xyo-network/react-payload-raw-info": "^3.0.1",
28
- "@xyo-network/react-property": "^3.0.1",
29
- "@xyo-network/react-shared": "^3.0.1",
30
- "@xyo-network/sentinel-model": "^3.0.2",
31
- "@xyo-network/witness-model": "^3.0.2"
32
- },
33
- "peerDependencies": {
34
- "@emotion/react": "^11",
35
- "@emotion/styled": "^11",
36
- "@mui/icons-material": "^5",
37
- "@mui/material": "^5",
38
- "@mui/styles": "^5",
39
- "react": "^18.2.0",
40
- "react-dom": "^18.2.0"
16
+ "repository": {
17
+ "type": "git",
18
+ "url": "git+https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
41
19
  },
42
- "devDependencies": {
43
- "@storybook/react": "^8.2.9",
44
- "@xylabs/ts-scripts-yarn3": "^4.0.0-rc.15",
45
- "@xyo-network/account": "^3.0.2",
46
- "typescript": "^5.5.4"
20
+ "license": "LGPL-3.0-only",
21
+ "author": {
22
+ "name": "XYO Development Team",
23
+ "email": "support@xyo.network",
24
+ "url": "https://xyo.network"
47
25
  },
48
- "description": "Common React library for all XYO projects that use React",
49
- "docs": "dist/docs.json",
26
+ "sideEffects": false,
27
+ "type": "module",
50
28
  "exports": {
51
29
  ".": {
52
30
  "import": {
@@ -59,27 +37,57 @@
59
37
  "./package.json": "./package.json"
60
38
  },
61
39
  "module": "dist/browser/index.mjs",
62
- "homepage": "https://xyo.network",
63
- "keywords": [
64
- "xyo",
65
- "utility",
66
- "typescript",
67
- "react"
68
- ],
69
- "license": "LGPL-3.0-only",
70
- "publishConfig": {
71
- "access": "public"
40
+ "types": "dist/browser/index.d.ts",
41
+ "scripts": {
42
+ "license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\"",
43
+ "lint-pkg": "npmPkgJsonLint ."
72
44
  },
73
- "repository": {
74
- "type": "git",
75
- "url": "https://github.com/XYOracleNetwork/sdk-xyo-react-js.git"
45
+ "dependencies": {
46
+ "@xylabs/delay": "^4.0.5",
47
+ "@xylabs/forget": "^4.0.5",
48
+ "@xylabs/react-async-effect": "^4.0.3",
49
+ "@xylabs/react-button": "^4.0.3",
50
+ "@xylabs/react-flexbox": "^4.0.3",
51
+ "@xylabs/react-promise": "^4.0.3",
52
+ "@xyo-network/archivist-model": "^3.0.15",
53
+ "@xyo-network/bridge-model": "^3.0.15",
54
+ "@xyo-network/diviner-model": "^3.0.15",
55
+ "@xyo-network/manifest": "^3.0.15",
56
+ "@xyo-network/module-model": "^3.0.15",
57
+ "@xyo-network/node-model": "^3.0.15",
58
+ "@xyo-network/payload-model": "^3.0.15",
59
+ "@xyo-network/react-node": "^3.0.3",
60
+ "@xyo-network/react-payload-raw-info": "^3.0.3",
61
+ "@xyo-network/react-property": "^3.0.3",
62
+ "@xyo-network/react-shared": "^3.0.3",
63
+ "@xyo-network/sentinel-model": "^3.0.15",
64
+ "@xyo-network/witness-model": "^3.0.15"
76
65
  },
77
- "scripts": {
78
- "lint-pkg": "npmPkgJsonLint .",
79
- "license": "yarn license-checker --exclude \"MIT, ISC, Apache-2.0, BSD, BSD-2-Clause, CC-BY-4.0, Unlicense, CC-BY-3.0, CC0-1.0\""
66
+ "devDependencies": {
67
+ "@emotion/react": "^11.13.3",
68
+ "@emotion/styled": "^11.13.0",
69
+ "@mui/icons-material": "^5.16.7",
70
+ "@mui/material": "^5.16.7",
71
+ "@mui/styles": "^5.16.7",
72
+ "@storybook/react": "^8.2.9",
73
+ "@xylabs/ts-scripts-yarn3": "^4.0.7",
74
+ "@xyo-network/account": "^3.0.15",
75
+ "react": "^18.3.1",
76
+ "react-dom": "^18.3.1",
77
+ "storybook": "^8.2.9",
78
+ "typescript": "^5.5.4"
80
79
  },
81
- "sideEffects": false,
82
- "types": "dist/browser/index.d.ts",
83
- "version": "3.0.1",
84
- "type": "module"
80
+ "peerDependencies": {
81
+ "@emotion/react": "^11",
82
+ "@emotion/styled": "^11",
83
+ "@mui/icons-material": "^5",
84
+ "@mui/material": "^5",
85
+ "@mui/styles": "^5",
86
+ "react": "^18.2.0",
87
+ "react-dom": "^18.2.0"
88
+ },
89
+ "publishConfig": {
90
+ "access": "public"
91
+ },
92
+ "docs": "dist/docs.json"
85
93
  }
@@ -1,8 +1,9 @@
1
1
  import { Inventory2Rounded as Inventory2RoundedIcon } from '@mui/icons-material'
2
- import { ArchivistInstance } from '@xyo-network/archivist-model'
2
+ import type { ArchivistInstance } from '@xyo-network/archivist-model'
3
3
  import React from 'react'
4
4
 
5
- import { ModuleSummary, ModuleSummaryProps } from './ModuleSummary.tsx'
5
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx'
6
+ import { ModuleSummary } from './ModuleSummary.tsx'
6
7
 
7
8
  export const ArchivistSummary: React.FC<ModuleSummaryProps<ArchivistInstance>> = ({ mod, ...props }) => {
8
9
  return <ModuleSummary mod={mod} icon={<Inventory2RoundedIcon />} {...props} />
@@ -1,8 +1,9 @@
1
1
  import { InsertLinkRounded as InsertLinkRoundedIcon } from '@mui/icons-material'
2
- import { BridgeInstance } from '@xyo-network/bridge-model'
2
+ import type { BridgeInstance } from '@xyo-network/bridge-model'
3
3
  import React from 'react'
4
4
 
5
- import { ModuleSummary, ModuleSummaryProps } from './ModuleSummary.tsx'
5
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx'
6
+ import { ModuleSummary } from './ModuleSummary.tsx'
6
7
 
7
8
  export const BridgeSummary: React.FC<ModuleSummaryProps<BridgeInstance>> = ({ mod, ...props }) => {
8
9
  return <ModuleSummary mod={mod} icon={<InsertLinkRoundedIcon />} {...props}></ModuleSummary>
@@ -1,4 +1,7 @@
1
- import { Button, Dialog, DialogActions, DialogContent, DialogProps, DialogTitle } from '@mui/material'
1
+ import type { DialogProps } from '@mui/material'
2
+ import {
3
+ Button, Dialog, DialogActions, DialogContent, DialogTitle,
4
+ } from '@mui/material'
2
5
  import React from 'react'
3
6
 
4
7
  import { NodeDetails } from './NodeDetails.tsx'
@@ -1,8 +1,9 @@
1
1
  import { BubbleChartRounded as BubbleChartRoundedIcon } from '@mui/icons-material'
2
- import { DivinerInstance } from '@xyo-network/diviner-model'
2
+ import type { DivinerInstance } from '@xyo-network/diviner-model'
3
3
  import React from 'react'
4
4
 
5
- import { ModuleSummary, ModuleSummaryProps } from './ModuleSummary.tsx'
5
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx'
6
+ import { ModuleSummary } from './ModuleSummary.tsx'
6
7
 
7
8
  export const DivinerSummary: React.FC<ModuleSummaryProps<DivinerInstance>> = ({ mod, ...props }) => {
8
9
  return <ModuleSummary mod={mod} icon={<BubbleChartRoundedIcon />} {...props} />
@@ -1,6 +1,10 @@
1
- import { Dialog, DialogActions, DialogContent, DialogTitle } from '@mui/material'
2
- import { ButtonEx, ButtonExProps } from '@xylabs/react-button'
3
- import { JsonViewerEx, JsonViewerExProps } from '@xyo-network/react-payload-raw-info'
1
+ import {
2
+ Dialog, DialogActions, DialogContent, DialogTitle,
3
+ } from '@mui/material'
4
+ import type { ButtonExProps } from '@xylabs/react-button'
5
+ import { ButtonEx } from '@xylabs/react-button'
6
+ import type { JsonViewerExProps } from '@xyo-network/react-payload-raw-info'
7
+ import { JsonViewerEx } from '@xyo-network/react-payload-raw-info'
4
8
  import React, { useState } from 'react'
5
9
 
6
10
  export interface JsonViewerButtonProps extends ButtonExProps {
@@ -8,7 +12,9 @@ export interface JsonViewerButtonProps extends ButtonExProps {
8
12
  src: object
9
13
  }
10
14
 
11
- export const JsonViewerButton: React.FC<JsonViewerButtonProps> = ({ children, jsonViewProps, src, title, ...props }) => {
15
+ export const JsonViewerButton: React.FC<JsonViewerButtonProps> = ({
16
+ children, jsonViewProps, src, title, ...props
17
+ }) => {
12
18
  const [open, setOpen] = useState(false)
13
19
  return (
14
20
  <>
@@ -1,12 +1,15 @@
1
1
  import { ExpandMore as ExpandMoreIcon } from '@mui/icons-material'
2
- import { ModuleInstance } from '@xyo-network/module-model'
2
+ import type { ModuleInstance } from '@xyo-network/module-model'
3
3
  import React from 'react'
4
4
 
5
5
  export interface ModuleAccordionProps<T extends ModuleInstance = ModuleInstance> extends Omit<AccordionProps, 'children'> {
6
6
  mod?: T
7
7
  }
8
8
 
9
- import { Accordion, AccordionDetails, AccordionProps, AccordionSummary } from '@mui/material'
9
+ import type { AccordionProps } from '@mui/material'
10
+ import {
11
+ Accordion, AccordionDetails, AccordionSummary,
12
+ } from '@mui/material'
10
13
 
11
14
  import { ModuleDetails } from './ModuleDetails.tsx'
12
15
  import { TypedModuleSummary } from './TypedModuleSummary.tsx'
@@ -1,8 +1,10 @@
1
1
  import { ButtonGroup } from '@mui/material'
2
2
  import { ButtonEx } from '@xylabs/react-button'
3
- import { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'
3
+ import type { FlexBoxProps } from '@xylabs/react-flexbox'
4
+ import { FlexCol, FlexRow } from '@xylabs/react-flexbox'
4
5
  import { usePromise } from '@xylabs/react-promise'
5
- import { ModuleDescriptionPayload, ModuleDescriptionSchema, ModuleInstance } from '@xyo-network/module-model'
6
+ import type { ModuleDescriptionPayload, ModuleInstance } from '@xyo-network/module-model'
7
+ import { ModuleDescriptionSchema } from '@xyo-network/module-model'
6
8
  import { isPayloadOfSchemaType } from '@xyo-network/payload-model'
7
9
  import { Property } from '@xyo-network/react-property'
8
10
  import React from 'react'
@@ -1,17 +1,21 @@
1
1
  import { Extension as ExtensionIcon } from '@mui/icons-material'
2
2
  import { delay } from '@xylabs/delay'
3
- import { FlexBoxProps, FlexCol, FlexRow } from '@xylabs/react-flexbox'
4
- import { ModuleInstance } from '@xyo-network/module-model'
3
+ import type { FlexBoxProps } from '@xylabs/react-flexbox'
4
+ import { FlexCol, FlexRow } from '@xylabs/react-flexbox'
5
+ import type { ModuleInstance } from '@xyo-network/module-model'
5
6
  import { useWeakModulesFromNode } from '@xyo-network/react-node'
6
7
  import { TypographyEx } from '@xyo-network/react-shared'
7
- import React, { ReactNode, useState } from 'react'
8
+ import type { ReactNode } from 'react'
9
+ import React, { useState } from 'react'
8
10
 
9
11
  export interface ModuleSummaryProps<T extends ModuleInstance = ModuleInstance> extends FlexBoxProps {
10
12
  icon?: ReactNode
11
13
  mod?: T
12
14
  }
13
15
 
14
- export const ModuleSummary: React.FC<ModuleSummaryProps> = ({ children, icon, mod, ...props }) => {
16
+ export const ModuleSummary: React.FC<ModuleSummaryProps> = ({
17
+ children, icon, mod, ...props
18
+ }) => {
15
19
  const [downModules] = useWeakModulesFromNode(undefined, { direction: 'down' })
16
20
  const [upModules] = useWeakModulesFromNode(undefined, { direction: 'up' })
17
21
  const [busy, setBusy] = useState(false)
@@ -1,10 +1,10 @@
1
1
  import { FlexCol } from '@xylabs/react-flexbox'
2
- import { NodeInstance } from '@xyo-network/node-model'
2
+ import type { NodeInstance } from '@xyo-network/node-model'
3
3
  import { useProvidedNode, useWeakModulesFromNode } from '@xyo-network/react-node'
4
4
  import React from 'react'
5
5
 
6
6
  import { ModuleAccordion } from './ModuleAccordion.tsx'
7
- import { ModuleDetailsProps } from './ModuleDetails.tsx'
7
+ import type { ModuleDetailsProps } from './ModuleDetails.tsx'
8
8
 
9
9
  export interface NodeViewerProps extends ModuleDetailsProps<NodeInstance> {}
10
10
 
@@ -1,11 +1,12 @@
1
1
  import { HubRounded as HubRoundedIcon } from '@mui/icons-material'
2
2
  import { usePromise } from '@xylabs/react-promise'
3
- import { NodeManifest } from '@xyo-network/manifest'
4
- import { NodeInstance } from '@xyo-network/node-model'
3
+ import type { NodeManifest } from '@xyo-network/manifest'
4
+ import type { NodeInstance } from '@xyo-network/node-model'
5
5
  import { useWeakModulesFromNode } from '@xyo-network/react-node'
6
6
  import React from 'react'
7
7
 
8
- import { ModuleSummary, ModuleSummaryProps } from './ModuleSummary.tsx'
8
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx'
9
+ import { ModuleSummary } from './ModuleSummary.tsx'
9
10
 
10
11
  export const NodeSummary: React.FC<ModuleSummaryProps<NodeInstance>> = ({ mod, ...props }) => {
11
12
  const [manifest] = usePromise(async () => {
@@ -2,15 +2,18 @@ import { Paper } from '@mui/material'
2
2
  import { delay } from '@xylabs/delay'
3
3
  import { forget } from '@xylabs/forget'
4
4
  import { useAsyncEffect } from '@xylabs/react-async-effect'
5
- import { ButtonExProps } from '@xylabs/react-button'
6
- import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
7
- import { Module } from '@xyo-network/module-model'
8
- import { NodeInstance } from '@xyo-network/node-model'
5
+ import type { ButtonExProps } from '@xylabs/react-button'
6
+ import type { FlexBoxProps } from '@xylabs/react-flexbox'
7
+ import { FlexCol } from '@xylabs/react-flexbox'
8
+ import type { Module } from '@xyo-network/module-model'
9
+ import type { NodeInstance } from '@xyo-network/node-model'
9
10
  import { useProvidedNode } from '@xyo-network/react-node'
10
- import React, { KeyboardEvent, useMemo, useState } from 'react'
11
+ import type { KeyboardEvent } from 'react'
12
+ import React, { useMemo, useState } from 'react'
11
13
 
12
14
  import { DebugDialog } from './DebugDialog.tsx'
13
- import { PoweredByXyoButton, PoweredByXyoButtonProps } from './PoweredByXyoButton.tsx'
15
+ import type { PoweredByXyoButtonProps } from './PoweredByXyoButton.tsx'
16
+ import { PoweredByXyoButton } from './PoweredByXyoButton.tsx'
14
17
 
15
18
  export interface PoweredByXyoProps extends FlexBoxProps {
16
19
  autoStop?: boolean
@@ -1,5 +1,6 @@
1
1
  import { Typography } from '@mui/material'
2
- import { ButtonEx, ButtonExProps } from '@xylabs/react-button'
2
+ import type { ButtonExProps } from '@xylabs/react-button'
3
+ import { ButtonEx } from '@xylabs/react-button'
3
4
  import { FlexCol, FlexRow } from '@xylabs/react-flexbox'
4
5
  import React, { useState } from 'react'
5
6
 
@@ -29,7 +30,15 @@ export const PoweredByXyoButton: React.FC<PoweredByXyoButtonProps> = ({
29
30
  img.src = xyoColorLogoText
30
31
  return imageLoaded
31
32
  ? (
32
- <ButtonEx href={href} target={target} variant={variant} sx={{ borderRadius: 0, padding: 0, ...sx }} {...props}>
33
+ <ButtonEx
34
+ href={href}
35
+ target={target}
36
+ variant={variant}
37
+ sx={{
38
+ borderRadius: 0, padding: 0, ...sx,
39
+ }}
40
+ {...props}
41
+ >
33
42
  <FlexCol padding={0.5}>
34
43
  <Typography style={{ fontSize: logoTextSize ?? 10 }} fontSize="small">
35
44
  Powered by
@@ -1,8 +1,9 @@
1
1
  import { TimerRounded as TimerRoundedIcon } from '@mui/icons-material'
2
- import { SentinelInstance } from '@xyo-network/sentinel-model'
2
+ import type { SentinelInstance } from '@xyo-network/sentinel-model'
3
3
  import React from 'react'
4
4
 
5
- import { ModuleSummary, ModuleSummaryProps } from './ModuleSummary.tsx'
5
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx'
6
+ import { ModuleSummary } from './ModuleSummary.tsx'
6
7
 
7
8
  export const SentinelSummary: React.FC<ModuleSummaryProps<SentinelInstance>> = ({ mod, ...props }) => {
8
9
  return <ModuleSummary mod={mod} icon={<TimerRoundedIcon />} {...props} />
@@ -9,7 +9,8 @@ import React from 'react'
9
9
  import { ArchivistSummary } from './ArchivistSummary.tsx'
10
10
  import { BridgeSummary } from './BridgeSummary.tsx'
11
11
  import { DivinerSummary } from './DivinerSummary.tsx'
12
- import { ModuleSummary, ModuleSummaryProps } from './ModuleSummary.tsx'
12
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx'
13
+ import { ModuleSummary } from './ModuleSummary.tsx'
13
14
  import { NodeSummary } from './NodeSummary.tsx'
14
15
  import { SentinelSummary } from './SentinelSummary.tsx'
15
16
  import { WitnessSummary } from './WitnessSummary.tsx'
@@ -1,8 +1,9 @@
1
1
  import { VisibilityRounded as VisibilityRoundedIcon } from '@mui/icons-material'
2
- import { WitnessInstance } from '@xyo-network/witness-model'
2
+ import type { WitnessInstance } from '@xyo-network/witness-model'
3
3
  import React from 'react'
4
4
 
5
- import { ModuleSummary, ModuleSummaryProps } from './ModuleSummary.tsx'
5
+ import type { ModuleSummaryProps } from './ModuleSummary.tsx'
6
+ import { ModuleSummary } from './ModuleSummary.tsx'
6
7
 
7
8
  export const WitnessSummary: React.FC<ModuleSummaryProps<WitnessInstance>> = ({ mod, ...props }) => {
8
9
  return <ModuleSummary mod={mod} icon={<VisibilityRoundedIcon />} {...props} />
@@ -1,4 +1,5 @@
1
- import { FlexBoxProps, FlexCol } from '@xylabs/react-flexbox'
1
+ import type { FlexBoxProps } from '@xylabs/react-flexbox'
2
+ import { FlexCol } from '@xylabs/react-flexbox'
2
3
  import React, { useState } from 'react'
3
4
 
4
5
  import { xyoColorLogo } from '../img/index.ts'
@@ -9,7 +10,9 @@ export type XyoBusyProps = Omit<FlexBoxProps, 'children'> & {
9
10
  widthInPixels?: number
10
11
  }
11
12
 
12
- export const XyoBusy: React.FC<XyoBusyProps> = ({ widthInPixels, busy, spinsPerSecond = 0.5, ...props }) => {
13
+ export const XyoBusy: React.FC<XyoBusyProps> = ({
14
+ widthInPixels, busy, spinsPerSecond = 0.5, ...props
15
+ }) => {
13
16
  // preloading image to prevent shifting
14
17
  const [imageLoaded, setImageLoaded] = useState(false)
15
18
  if (!imageLoaded) {
@@ -22,12 +25,8 @@ export const XyoBusy: React.FC<XyoBusyProps> = ({ widthInPixels, busy, spinsPerS
22
25
  <FlexCol
23
26
  sx={{
24
27
  '@keyframes spin': {
25
- '0%': {
26
- transform: 'rotate(360deg)',
27
- },
28
- '100%': {
29
- transform: 'rotate(0deg)',
30
- },
28
+ '0%': { transform: 'rotate(360deg)' },
29
+ '100%': { transform: 'rotate(0deg)' },
31
30
  },
32
31
  'animation': busy ? `spin ${1 / spinsPerSecond}s linear infinite` : undefined,
33
32
  'animationDirection': 'reverse',
@@ -1,25 +1,23 @@
1
- import { Meta, StoryFn } from '@storybook/react'
1
+ import type { Meta, StoryFn } from '@storybook/react'
2
2
  import { delay } from '@xylabs/delay'
3
3
  import { useAsyncEffect } from '@xylabs/react-async-effect'
4
4
  import { FlexCol } from '@xylabs/react-flexbox'
5
5
  import { usePromise } from '@xylabs/react-promise'
6
6
  import { HDWallet } from '@xyo-network/account'
7
7
  import { asArchivistInstance } from '@xyo-network/archivist-model'
8
- import { ManifestWrapper, PackageManifestPayload } from '@xyo-network/manifest'
9
- import { NodeInstance } from '@xyo-network/node-model'
8
+ import type { PackageManifestPayload } from '@xyo-network/manifest'
9
+ import { ManifestWrapper } from '@xyo-network/manifest'
10
+ import type { NodeInstance } from '@xyo-network/node-model'
10
11
  import { NodeProvider } from '@xyo-network/react-node'
11
12
  import React, { useState } from 'react'
12
13
 
13
- import { PoweredByXyo, PoweredByXyoProps } from '../PoweredByXyo.tsx'
14
+ import type { PoweredByXyoProps } from '../PoweredByXyo.tsx'
15
+ import { PoweredByXyo } from '../PoweredByXyo.tsx'
14
16
  import simpleNodeInlineManifest from './simple-node-inline-manifest.json'
15
17
 
16
18
  const StorybookEntry = {
17
19
  component: PoweredByXyo,
18
- parameters: {
19
- docs: {
20
- page: null,
21
- },
22
- },
20
+ parameters: { docs: { page: null } },
23
21
  title: 'Badge/PoweredByXyo',
24
22
  } as Meta<typeof PoweredByXyo>
25
23
 
@@ -74,6 +72,8 @@ const WithNode = TemplateWithNodeContainer.bind({})
74
72
  const WithNodeAndDebug = TemplateWithNodeContainer.bind({})
75
73
  WithNodeAndDebug.args = { debugDialog: true }
76
74
 
77
- export { Busy, Default, WithNode, WithNodeAndDebug }
75
+ export {
76
+ Busy, Default, WithNode, WithNodeAndDebug,
77
+ }
78
78
 
79
79
  export default StorybookEntry
@@ -1,15 +1,12 @@
1
- import { Meta, StoryFn } from '@storybook/react'
1
+ import type { Meta, StoryFn } from '@storybook/react'
2
2
  import React from 'react'
3
3
 
4
- import { PoweredByXyoButton, PoweredByXyoButtonProps } from '../PoweredByXyoButton.tsx'
4
+ import type { PoweredByXyoButtonProps } from '../PoweredByXyoButton.tsx'
5
+ import { PoweredByXyoButton } from '../PoweredByXyoButton.tsx'
5
6
 
6
7
  const StorybookEntry = {
7
8
  component: PoweredByXyoButton,
8
- parameters: {
9
- docs: {
10
- page: null,
11
- },
12
- },
9
+ parameters: { docs: { page: null } },
13
10
  title: 'Badge/PoweredByXyoButton',
14
11
  } as Meta<typeof PoweredByXyoButton>
15
12
 
@@ -1,15 +1,12 @@
1
- import { Meta, StoryFn } from '@storybook/react'
1
+ import type { Meta, StoryFn } from '@storybook/react'
2
2
  import React from 'react'
3
3
 
4
- import { XyoBusy, XyoBusyProps } from '../XyoBusy.tsx'
4
+ import type { XyoBusyProps } from '../XyoBusy.tsx'
5
+ import { XyoBusy } from '../XyoBusy.tsx'
5
6
 
6
7
  const StorybookEntry = {
7
8
  component: XyoBusy,
8
- parameters: {
9
- docs: {
10
- page: null,
11
- },
12
- },
9
+ parameters: { docs: { page: null } },
13
10
  title: 'Badge/XyoBusy',
14
11
  } as Meta<typeof XyoBusy>
15
12
 
package/xy.config.ts CHANGED
@@ -1,9 +1,7 @@
1
- import { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
1
+ import type { XyTsupConfig } from '@xylabs/ts-scripts-yarn3'
2
2
  const config: XyTsupConfig = {
3
3
  compile: {
4
- browser: {
5
- src: true,
6
- },
4
+ browser: { src: true },
7
5
  node: {},
8
6
  neutral: {},
9
7
  },