@xyo-network/os-react-runtime 4.2.0-rc.9 → 4.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/dist/browser/index.mjs +558 -519
  2. package/dist/browser/index.mjs.map +1 -1
  3. package/dist/browser/modules/Dapp/Container.d.ts.map +1 -1
  4. package/dist/browser/modules/Dapp/modules/Window/DappWindow.d.ts +3 -14
  5. package/dist/browser/modules/Dapp/modules/Window/DappWindow.d.ts.map +1 -1
  6. package/dist/browser/modules/Dapp/modules/Window/MetaTags.d.ts +8 -0
  7. package/dist/browser/modules/Dapp/modules/Window/MetaTags.d.ts.map +1 -0
  8. package/dist/browser/modules/Dapp/modules/Window/Rendered.d.ts +5 -0
  9. package/dist/browser/modules/Dapp/modules/Window/Rendered.d.ts.map +1 -0
  10. package/dist/browser/modules/Dapp/modules/Window/hooks/index.d.ts +1 -1
  11. package/dist/browser/modules/Dapp/modules/Window/hooks/index.d.ts.map +1 -1
  12. package/dist/browser/modules/Dapp/modules/Window/hooks/menu/useDappMenu.d.ts +2 -21
  13. package/dist/browser/modules/Dapp/modules/Window/hooks/menu/useDappMenu.d.ts.map +1 -1
  14. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappInjectableParamsFromRoute.d.ts.map +1 -1
  15. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.d.ts +1 -1
  16. package/dist/browser/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.d.ts.map +1 -1
  17. package/dist/browser/modules/Dapp/modules/Window/hooks/useDecomposeDapp.d.ts +11 -0
  18. package/dist/browser/modules/Dapp/modules/Window/hooks/useDecomposeDapp.d.ts.map +1 -0
  19. package/dist/browser/modules/Dapp/modules/Window/index.d.ts +3 -1
  20. package/dist/browser/modules/Dapp/modules/Window/index.d.ts.map +1 -1
  21. package/dist/browser/modules/Dapp/modules/Window/types/DappMenuProperties.d.ts +9 -0
  22. package/dist/browser/modules/Dapp/modules/Window/types/DappMenuProperties.d.ts.map +1 -0
  23. package/dist/browser/modules/Dapp/modules/Window/types/DappWindowProps.d.ts +13 -0
  24. package/dist/browser/modules/Dapp/modules/Window/types/DappWindowProps.d.ts.map +1 -0
  25. package/dist/browser/modules/Dapp/modules/Window/types/index.d.ts +3 -0
  26. package/dist/browser/modules/Dapp/modules/Window/types/index.d.ts.map +1 -0
  27. package/package.json +10 -11
  28. package/src/DappPathSwitcher.tsx +3 -3
  29. package/src/modules/Dapp/Container.tsx +21 -9
  30. package/src/modules/Dapp/modules/Window/DappWindow.tsx +22 -131
  31. package/src/modules/Dapp/modules/Window/MetaTags.tsx +27 -0
  32. package/src/modules/Dapp/modules/Window/Rendered.tsx +101 -0
  33. package/src/modules/Dapp/modules/Window/hooks/index.ts +1 -1
  34. package/src/modules/Dapp/modules/Window/hooks/menu/useDappMenu.tsx +3 -2
  35. package/src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappInjectableParamsFromRoute.tsx +3 -6
  36. package/src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.tsx +3 -1
  37. package/src/modules/Dapp/modules/Window/hooks/useDecomposeDapp.tsx +21 -0
  38. package/src/modules/Dapp/modules/Window/index.ts +3 -1
  39. package/src/modules/Dapp/modules/Window/types/DappMenuProperties.ts +9 -0
  40. package/src/modules/Dapp/modules/Window/types/DappWindowProps.ts +14 -0
  41. package/src/modules/Dapp/modules/Window/types/index.ts +2 -0
  42. package/dist/browser/modules/Dapp/modules/Window/hooks/useDecomposeDappSet.d.ts +0 -9
  43. package/dist/browser/modules/Dapp/modules/Window/hooks/useDecomposeDappSet.d.ts.map +0 -1
  44. package/src/modules/Dapp/modules/Window/hooks/useDecomposeDappSet.tsx +0 -19
@@ -158,16 +158,16 @@ var WidgetCard = /* @__PURE__ */ __name(({ widgetName, widgetContent, widgetPath
158
158
  // src/components/Widgets/WidgetCardExamples.tsx
159
159
  import { Stack as Stack2 } from "@mui/material";
160
160
  import { useColorSchemeEx as useColorSchemeEx4 } from "@xylabs/react-invertible-theme";
161
- import React41 from "react";
161
+ import React43 from "react";
162
162
 
163
163
  // src/DappPage.tsx
164
164
  import { Container as Container3, Typography as Typography10 } from "@mui/material";
165
165
  import { ThrownErrorBoundary } from "@xylabs/react-error";
166
166
  import { FlexCol as FlexCol13 } from "@xylabs/react-flexbox";
167
- import React33 from "react";
167
+ import React35 from "react";
168
168
 
169
169
  // src/modules/Dapp/Container.tsx
170
- import React26, { memo, useMemo as useMemo13 } from "react";
170
+ import React28, { memo, useMemo as useMemo13 } from "react";
171
171
 
172
172
  // src/hooks/access-requests/useBuildDappAccessRequestResource.ts
173
173
  import { usePromise } from "@xylabs/react-promise";
@@ -2067,64 +2067,9 @@ var DefaultComingSoon = /* @__PURE__ */ __name(({ children, desc = defaultDescri
2067
2067
  }, "DefaultComingSoon");
2068
2068
 
2069
2069
  // src/modules/Dapp/modules/Window/DappWindow.tsx
2070
+ import { Snackbar } from "@mui/material";
2070
2071
  import { ErrorBoundary, ErrorRender as ErrorRender3 } from "@xylabs/react-error";
2071
- import { FlexCol as FlexCol10 } from "@xylabs/react-flexbox";
2072
- import { NameTransforms as NameTransforms4 } from "@xyo-network/os-runtime";
2073
- import { NodeProvider as NodeProvider2 } from "@xyo-network/react-node";
2074
- import { WalletProvider } from "@xyo-network/react-wallet";
2075
- import React25, { useMemo as useMemo12 } from "react";
2076
- import { Helmet } from "react-helmet";
2077
-
2078
- // src/modules/XyOsUi/contexts/XyOsUiContext.ts
2079
- import { createContext, useContext } from "react";
2080
- var XyOsUiContext = createContext(void 0);
2081
- var useXyOsUiContext = /* @__PURE__ */ __name(() => {
2082
- return useContext(XyOsUiContext);
2083
- }, "useXyOsUiContext");
2084
- var XyOsUiContextProvider = XyOsUiContext.Provider;
2085
-
2086
- // src/modules/XyOsUi/lib/XyOsUi.ts
2087
- import { forget } from "@xylabs/forget";
2088
- import { ModuleFactoryLocator as ModuleFactoryLocator2 } from "@xyo-network/module-factory-locator";
2089
- import { dappsReadyConnection, XyOs } from "@xyo-network/os-runtime";
2090
- var XyOsUi = class extends XyOs {
2091
- static {
2092
- __name(this, "XyOsUi");
2093
- }
2094
- dappRegistrationResults = {
2095
- failed: [],
2096
- succeeded: []
2097
- };
2098
- dappsReadyConnection = dappsReadyConnection();
2099
- constructor(params) {
2100
- super(params);
2101
- this.eventBus.addConnection(this.dappsReadyConnection);
2102
- }
2103
- static get monitoring() {
2104
- return new XyOsBrowserMonitor();
2105
- }
2106
- static get xyOsUiGlobal() {
2107
- return XyOs.xyOsGlobal;
2108
- }
2109
- static hideSplash() {
2110
- this.xyOsUiGlobal.splashScreen.hideSplash();
2111
- this.xyOsUiGlobal.splashScreen.onComplete();
2112
- this.setSplashStatus("complete");
2113
- }
2114
- static setSplashStatus(status) {
2115
- const statusText = this.xyOsUiGlobal.splashScreen._LOADING_MESSAGES[status];
2116
- this.xyOsUiGlobal.splashScreen.setStatusText(statusText);
2117
- }
2118
- async boot(wallet, locator = new ModuleFactoryLocator2()) {
2119
- await super.boot(wallet, locator);
2120
- const registerLazy = /* @__PURE__ */ __name(async () => {
2121
- this.dappRegistrationResults = await this.dappRegistrationService.start();
2122
- await this.dappsReadyConnection.emit("dappsReady", {});
2123
- }, "registerLazy");
2124
- forget(registerLazy());
2125
- return this;
2126
- }
2127
- };
2072
+ import React19 from "react";
2128
2073
 
2129
2074
  // src/modules/Dapp/modules/Window/hooks/lib/DappPathHelpers.ts
2130
2075
  import { NameTransforms as NameTransforms2 } from "@xyo-network/os-runtime";
@@ -2231,7 +2176,7 @@ var useDappMenu = /* @__PURE__ */ __name((context, dappName) => {
2231
2176
  activePath,
2232
2177
  error,
2233
2178
  menuConfig: menuConfigs?.[0],
2234
- menuItemsVisible,
2179
+ menuItems: menuItemsVisible,
2235
2180
  onPathChange
2236
2181
  };
2237
2182
  }, "useDappMenu");
@@ -2242,21 +2187,19 @@ import { usePromise as usePromise11 } from "@xylabs/react-promise";
2242
2187
  import { asArchivistInstance } from "@xyo-network/archivist-model";
2243
2188
  import { isDappInjectableParams } from "@xyo-network/os-model";
2244
2189
  import { DappCaller as DappCaller2 } from "@xyo-network/os-runtime";
2245
- import { useNavigate as useNavigate5, useParams as useParams3, useSearchParams as useSearchParams2 } from "react-router-dom";
2190
+ import { useNavigate as useNavigate5, useSearchParams as useSearchParams2 } from "react-router-dom";
2246
2191
  var useManageDappInjectableParamsFromRoute = /* @__PURE__ */ __name((context) => {
2247
2192
  const [queryParams] = useSearchParams2();
2248
- const params = useParams3();
2249
2193
  const navigate = useNavigate5();
2250
2194
  const [, callerError] = usePromise11(async () => {
2251
- if (context && (params || queryParams)) {
2195
+ if (context && queryParams) {
2252
2196
  const dappCaller = new DappCaller2(context);
2253
2197
  const pathname = globalThis.location.pathname;
2254
2198
  await dappCaller.setDappInjectableRouteParams(queryParams, pathname);
2255
2199
  }
2256
2200
  }, [
2257
2201
  context,
2258
- queryParams,
2259
- params
2202
+ queryParams
2260
2203
  ]);
2261
2204
  const [, listenerError] = usePromise11(async () => {
2262
2205
  let archivist;
@@ -2355,9 +2298,9 @@ var useManageDappIntentRequest = /* @__PURE__ */ __name((context, dappId) => {
2355
2298
  // src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.tsx
2356
2299
  import { usePromise as usePromise13 } from "@xylabs/react-promise";
2357
2300
  import { useCallback as useCallback5, useEffect as useEffect14, useRef as useRef5 } from "react";
2358
- import { useNavigate as useNavigate6, useParams as useParams4 } from "react-router-dom";
2301
+ import { useNavigate as useNavigate6, useParams as useParams3 } from "react-router-dom";
2359
2302
  var useManageDappPathFromRoute = /* @__PURE__ */ __name((context, dappName) => {
2360
- const params = useParams4();
2303
+ const params = useParams3();
2361
2304
  const { path: pathParam } = params;
2362
2305
  const dappMenuCaller = useDappMenuCaller(context, {
2363
2306
  ignoreProvidedNode: true
@@ -2393,7 +2336,7 @@ var useManageDappPathFromRoute = /* @__PURE__ */ __name((context, dappName) => {
2393
2336
  defaultPath,
2394
2337
  menuSelection
2395
2338
  ]);
2396
- usePromise13(async () => {
2339
+ const [, updateErrors] = usePromise13(async () => {
2397
2340
  if (context && pathParam !== currentPathRef.current) {
2398
2341
  await updateMenuArchivist(pathParam);
2399
2342
  currentPathRef.current = pathParam;
@@ -2403,6 +2346,7 @@ var useManageDappPathFromRoute = /* @__PURE__ */ __name((context, dappName) => {
2403
2346
  pathParam,
2404
2347
  updateMenuArchivist
2405
2348
  ]);
2349
+ return updateErrors;
2406
2350
  }, "useManageDappPathFromRoute");
2407
2351
 
2408
2352
  // src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappStateFromRoute.tsx
@@ -2410,9 +2354,9 @@ import { usePromise as usePromise14 } from "@xylabs/react-promise";
2410
2354
  import { DappIntentTypes as DappIntentTypes9 } from "@xyo-network/os-model";
2411
2355
  import { DappIntentCaller as DappIntentCaller5, NameTransforms as NameTransforms3 } from "@xyo-network/os-runtime";
2412
2356
  import { useRef as useRef6 } from "react";
2413
- import { useParams as useParams5 } from "react-router-dom";
2357
+ import { useParams as useParams4 } from "react-router-dom";
2414
2358
  var useManageDappStateFromRoute = /* @__PURE__ */ __name((intentPayload) => {
2415
- const params = useParams5();
2359
+ const params = useParams4();
2416
2360
  const { dappName: dappNameParam } = params;
2417
2361
  const sendIntent = useSendDappIntent();
2418
2362
  const intentCaller = useDappIntentCaller();
@@ -2450,6 +2394,9 @@ var useManageDappStateFromRoute = /* @__PURE__ */ __name((intentPayload) => {
2450
2394
  ]);
2451
2395
  }, "useManageDappStateFromRoute");
2452
2396
 
2397
+ // src/modules/Dapp/modules/Window/hooks/useDecomposeDapp.tsx
2398
+ import { useMemo as useMemo11 } from "react";
2399
+
2453
2400
  // src/modules/Dapp/modules/Window/NodeManifest.tsx
2454
2401
  import { usePromise as usePromise15 } from "@xylabs/react-promise";
2455
2402
  import { useProvidedNode } from "@xyo-network/react-node";
@@ -2462,10 +2409,9 @@ var NodeManifest = /* @__PURE__ */ __name(() => {
2462
2409
  return /* @__PURE__ */ React17.createElement(React17.Fragment, null, node ? /* @__PURE__ */ React17.createElement("pre", null, JSON.stringify(nodeManifest, null, 2)) : null);
2463
2410
  }, "NodeManifest");
2464
2411
 
2465
- // src/modules/Dapp/modules/Window/hooks/useDecomposeDappSet.tsx
2466
- var decomposeDappSet = /* @__PURE__ */ __name((dappSet) => {
2467
- const { dapp } = dappSet ?? {};
2468
- const DappComponent = dapp?.params.modes?.window?.component ?? NodeManifest;
2412
+ // src/modules/Dapp/modules/Window/hooks/useDecomposeDapp.tsx
2413
+ var useDecomposeDapp = /* @__PURE__ */ __name((dapp) => {
2414
+ const DappComponent = useMemo11(() => dapp?.params.modes?.window?.component ?? NodeManifest, []);
2469
2415
  const name = dapp?.config.name;
2470
2416
  const version = dapp?.config.version;
2471
2417
  const scrollable = dapp?.params.modes?.window?.scrollable ?? true;
@@ -2476,10 +2422,10 @@ var decomposeDappSet = /* @__PURE__ */ __name((dappSet) => {
2476
2422
  scrollable,
2477
2423
  version
2478
2424
  };
2479
- }, "decomposeDappSet");
2425
+ }, "useDecomposeDapp");
2480
2426
 
2481
2427
  // src/modules/Dapp/modules/Window/hooks/useSkipLoadingScreen.tsx
2482
- import { useMemo as useMemo11 } from "react";
2428
+ import { useMemo as useMemo12 } from "react";
2483
2429
  import { useSearchParams as useSearchParams3 } from "react-router-dom";
2484
2430
  var PARAMS_TO_TARGET = [
2485
2431
  "username",
@@ -2488,7 +2434,7 @@ var PARAMS_TO_TARGET = [
2488
2434
  var useSkipLoadingScreen = /* @__PURE__ */ __name(() => {
2489
2435
  const [params] = useSearchParams3();
2490
2436
  const customer = detectCustomer();
2491
- return useMemo11(() => {
2437
+ return useMemo12(() => {
2492
2438
  const hasTargetParams = PARAMS_TO_TARGET.some((param) => params.has(param));
2493
2439
  const isCustomer = !!customer;
2494
2440
  return hasTargetParams || isCustomer;
@@ -2527,186 +2473,46 @@ var useSyncOsRegisteredAccessInterfaces = /* @__PURE__ */ __name((context) => {
2527
2473
  ]);
2528
2474
  }, "useSyncOsRegisteredAccessInterfaces");
2529
2475
 
2530
- // src/modules/Dapp/modules/Window/LoadingFlexbox.tsx
2531
- import { Fade, styled as styled2, Typography as Typography6 } from "@mui/material";
2532
- import { FlexCol as FlexCol7 } from "@xylabs/react-flexbox";
2533
- import React20, { useEffect as useEffect15, useState as useState14 } from "react";
2534
-
2535
- // src/modules/LoadingOsLogo/LoadingOsLogo.tsx
2536
- import { FlexCol as FlexCol6 } from "@xylabs/react-flexbox";
2537
- import React18, { useState as useState13 } from "react";
2538
-
2539
- // src/modules/LoadingOsLogo/img/index.ts
2540
- import { default as default20 } from "./xyoOS-Icon-2Q4XCUPP.svg";
2541
-
2542
- // src/modules/LoadingOsLogo/LoadingOsLogo.tsx
2543
- var LoadingOsLogo = /* @__PURE__ */ __name(({ widthInPixels, busy, spinsPerSecond = 0.5, ...props }) => {
2544
- const [imageLoaded, setImageLoaded] = useState13(false);
2545
- if (!imageLoaded) {
2546
- const img = new Image();
2547
- img.addEventListener("load", () => setImageLoaded(true));
2548
- img.src = default20;
2549
- }
2550
- return imageLoaded ? /* @__PURE__ */ React18.createElement(FlexCol6, {
2551
- sx: {
2552
- "@keyframes fadeOut": {
2553
- "0%": {
2554
- opacity: 1
2555
- },
2556
- "100%": {
2557
- opacity: 0.1
2558
- },
2559
- "35%": {
2560
- opacity: 1
2561
- }
2562
- },
2563
- "animation": busy ? "fadeOut linear" : void 0,
2564
- "animationDuration": "1500ms",
2565
- "animationFillMode": "both"
2566
- },
2567
- ...props
2568
- }, /* @__PURE__ */ React18.createElement(FlexCol6, {
2569
- sx: {
2570
- "@keyframes spin": {
2571
- "0%": {
2572
- transform: "rotate(360deg)"
2573
- },
2574
- "100%": {
2575
- transform: "rotate(0deg)"
2576
- }
2577
- },
2578
- "animation": busy ? `spin ${1 / spinsPerSecond}s linear infinite` : void 0,
2579
- "animationDirection": "reverse"
2580
- },
2581
- ...props
2582
- }, /* @__PURE__ */ React18.createElement("img", {
2583
- src: default20,
2584
- height: widthInPixels ?? 22
2585
- }))) : null;
2586
- }, "LoadingOsLogo");
2587
-
2588
- // src/modules/Dapp/modules/Window/Trail.tsx
2589
- import { a, useTrail } from "@react-spring/web";
2590
- import React19 from "react";
2591
- var TextTrail = /* @__PURE__ */ __name(({ open, children }) => {
2592
- const items = React19.Children.toArray(children);
2593
- const trail = useTrail(items.length, {
2594
- config: {
2595
- friction: 200,
2596
- mass: 5,
2597
- tension: 2e3
2598
- },
2599
- from: {
2600
- height: "auto",
2601
- opacity: 0,
2602
- y: 20
2603
- },
2604
- height: "auto",
2605
- opacity: open ? 1 : 0,
2606
- y: open ? 0 : 60
2607
- });
2608
- return /* @__PURE__ */ React19.createElement("div", null, trail.map(({ height, ...style }, index) => /* @__PURE__ */ React19.createElement(a.div, {
2609
- key: index,
2610
- style
2611
- }, /* @__PURE__ */ React19.createElement(a.div, {
2612
- style: {
2613
- height
2614
- }
2615
- }, items[index]))));
2616
- }, "TextTrail");
2476
+ // src/modules/Dapp/modules/Window/MetaTags.tsx
2477
+ import { NameTransforms as NameTransforms4 } from "@xyo-network/os-runtime";
2478
+ import React18 from "react";
2479
+ import { Helmet } from "react-helmet";
2480
+ var DappMetaTags = /* @__PURE__ */ __name(({ active, activePath, dappName }) => {
2481
+ return active ? /* @__PURE__ */ React18.createElement(Helmet, null, /* @__PURE__ */ React18.createElement("title", null, activePath ? `${new NameTransforms4(activePath).deSlug()} | ` : "", " ", dappName, " ", "dApp")) : null;
2482
+ }, "DappMetaTags");
2617
2483
 
2618
- // src/modules/Dapp/modules/Window/LoadingFlexbox.tsx
2619
- var DappLoadingFlexbox = /* @__PURE__ */ __name(({ minimize, open, name, ...props }) => {
2620
- const [fadeIn, setFadeIn] = useState14(!open);
2621
- const [trail, setTrail] = useState14(false);
2622
- const skipLoadingScreen = useSkipLoadingScreen();
2623
- useEffect15(() => {
2624
- if (open) {
2625
- if (skipLoadingScreen) {
2626
- setFadeIn(false);
2627
- return;
2628
- }
2629
- const fadeInTimeout = setTimeout(() => {
2630
- setFadeIn(false);
2631
- }, 2e3);
2632
- let trailTimeout = setTimeout(() => {
2633
- setTrail(true);
2634
- trailTimeout = setTimeout(() => {
2635
- setTrail(false);
2636
- }, 4e3);
2637
- }, 300);
2638
- return () => {
2639
- clearTimeout(fadeInTimeout);
2640
- clearTimeout(trailTimeout);
2641
- };
2642
- }
2643
- if (!minimize) {
2644
- setFadeIn(true);
2645
- }
2646
- }, [
2647
- minimize,
2648
- open,
2649
- skipLoadingScreen
2650
- ]);
2651
- return /* @__PURE__ */ React20.createElement(Fade, {
2652
- in: fadeIn,
2653
- unmountOnExit: true
2654
- }, /* @__PURE__ */ React20.createElement(StyledSplashContainer, props, /* @__PURE__ */ React20.createElement(LoadingOsLogo, {
2655
- widthInPixels: 100,
2656
- busy: true,
2657
- position: "absolute"
2658
- }), /* @__PURE__ */ React20.createElement(TextTrail, {
2659
- open: trail,
2660
- flexDirection: "row"
2661
- }, /* @__PURE__ */ React20.createElement(Typography6, {
2662
- textAlign: "center",
2663
- sx: {
2664
- fontSize: {
2665
- md: "3em",
2666
- xs: "2em"
2667
- }
2668
- }
2669
- }, "Loading"), /* @__PURE__ */ React20.createElement(Typography6, {
2670
- textAlign: "center",
2671
- sx: {
2672
- fontSize: {
2673
- md: "3em",
2674
- xs: "2em"
2675
- }
2676
- }
2677
- }, name), /* @__PURE__ */ React20.createElement(Typography6, {
2678
- textAlign: "center",
2679
- sx: {
2680
- fontSize: {
2681
- md: "3em",
2682
- xs: "2em"
2683
- }
2684
- }
2685
- }, "dApp"))));
2686
- }, "DappLoadingFlexbox");
2687
- var StyledSplashContainer = styled2(FlexCol7, {
2688
- name: "StyledSplashContainer"
2689
- })(({ theme }) => {
2690
- return {
2691
- background: theme.palette.background.default,
2692
- color: theme.palette.text.primary,
2693
- gap: theme.spacing(1),
2694
- height: "100%",
2695
- left: 0,
2696
- position: "absolute",
2697
- top: 0,
2698
- width: "100%",
2699
- zIndex: 999
2700
- };
2701
- });
2484
+ // src/modules/Dapp/modules/Window/DappWindow.tsx
2485
+ var DappWindow = /* @__PURE__ */ __name(({ children, context, dapp, dappMenuProperties, dappState }) => {
2486
+ const { name } = dapp?.config ?? {};
2487
+ const { active } = dappState ?? {};
2488
+ useSyncOsRegisteredAccessInterfaces(context);
2489
+ const routingError = useManageDappPathFromRoute(context, name);
2490
+ const injectableErrors = useManageDappInjectableParamsFromRoute(context);
2491
+ const resolvedErrors = [
2492
+ ...injectableErrors,
2493
+ routingError
2494
+ ];
2495
+ return /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(ErrorBoundary, null, /* @__PURE__ */ React19.createElement(DappMetaTags, {
2496
+ active,
2497
+ activePath: dappMenuProperties?.activePath,
2498
+ dappName: name
2499
+ }), resolvedErrors.map((error) => /* @__PURE__ */ React19.createElement(Snackbar, {
2500
+ key: error?.message,
2501
+ open: !!error,
2502
+ message: /* @__PURE__ */ React19.createElement(ErrorRender3, {
2503
+ error,
2504
+ scope: "DappWindow"
2505
+ })
2506
+ })), children));
2507
+ }, "DappWindow");
2702
2508
 
2703
2509
  // src/modules/Dapp/modules/Window/menu/BottomNavigation.tsx
2704
- import { BottomNavigation, BottomNavigationAction, Paper, styled as styled3 } from "@mui/material";
2510
+ import { BottomNavigation, BottomNavigationAction, Paper, styled as styled2 } from "@mui/material";
2705
2511
  import { useColorSchemeEx } from "@xylabs/react-invertible-theme";
2706
- import React21, { useEffect as useEffect16, useState as useState15 } from "react";
2512
+ import React20, { useEffect as useEffect15, useState as useState13 } from "react";
2707
2513
  var DappBottomNavigation = /* @__PURE__ */ __name(({ activePath, menuConfig, menuItems, onPathChange, ...props }) => {
2708
- const [activeIndex, setActiveIndex] = useState15(0);
2709
- useEffect16(() => {
2514
+ const [activeIndex, setActiveIndex] = useState13(0);
2515
+ useEffect15(() => {
2710
2516
  if (menuConfig?.defaultPath && menuItems && activePath) {
2711
2517
  setActiveIndex(menuItems.findIndex((item) => activePath === item.path));
2712
2518
  }
@@ -2715,9 +2521,9 @@ var DappBottomNavigation = /* @__PURE__ */ __name(({ activePath, menuConfig, men
2715
2521
  menuConfig,
2716
2522
  menuItems
2717
2523
  ]);
2718
- return /* @__PURE__ */ React21.createElement(Paper, {
2524
+ return /* @__PURE__ */ React20.createElement(Paper, {
2719
2525
  elevation: 3
2720
- }, /* @__PURE__ */ React21.createElement(BottomNavigation, {
2526
+ }, /* @__PURE__ */ React20.createElement(BottomNavigation, {
2721
2527
  value: activeIndex,
2722
2528
  onChange: /* @__PURE__ */ __name((_, value) => {
2723
2529
  setActiveIndex(value);
@@ -2727,11 +2533,11 @@ var DappBottomNavigation = /* @__PURE__ */ __name(({ activePath, menuConfig, men
2727
2533
  showLabels: true,
2728
2534
  ...props
2729
2535
  }, menuItems?.map(({ svgIcon: icon, primaryText }, index) => {
2730
- return /* @__PURE__ */ React21.createElement(StyledBottomNavigationAction, {
2536
+ return /* @__PURE__ */ React20.createElement(StyledBottomNavigationAction, {
2731
2537
  className: "bottom-nav-action",
2732
2538
  key: index,
2733
2539
  label: primaryText,
2734
- icon: /* @__PURE__ */ React21.createElement("span", {
2540
+ icon: /* @__PURE__ */ React20.createElement("span", {
2735
2541
  ref: /* @__PURE__ */ __name((ref) => {
2736
2542
  if (ref) {
2737
2543
  ref.innerHTML = icon ?? "";
@@ -2741,7 +2547,7 @@ var DappBottomNavigation = /* @__PURE__ */ __name(({ activePath, menuConfig, men
2741
2547
  });
2742
2548
  })));
2743
2549
  }, "DappBottomNavigation");
2744
- var StyledBottomNavigationAction = styled3(BottomNavigationAction, {
2550
+ var StyledBottomNavigationAction = styled2(BottomNavigationAction, {
2745
2551
  name: "StyledBottomNavigationAction"
2746
2552
  })(({ theme }) => {
2747
2553
  const { darkMode } = useColorSchemeEx();
@@ -2753,29 +2559,29 @@ var StyledBottomNavigationAction = styled3(BottomNavigationAction, {
2753
2559
  });
2754
2560
 
2755
2561
  // src/modules/Dapp/modules/Window/menu/Drawer.tsx
2756
- import { alpha as alpha4, darken, Drawer, List, ListItem, ListItemIcon, ListItemText, Tooltip as Tooltip4, Typography as Typography8, useTheme as useTheme7 } from "@mui/material";
2757
- import { FlexCol as FlexCol9, FlexGrowRow as FlexGrowRow5, FlexRow as FlexRow8 } from "@xylabs/react-flexbox";
2562
+ import { alpha as alpha4, darken, Drawer, List, ListItem, ListItemIcon, ListItemText, Tooltip as Tooltip4, Typography as Typography7, useTheme as useTheme7 } from "@mui/material";
2563
+ import { FlexCol as FlexCol7, FlexGrowRow as FlexGrowRow5, FlexRow as FlexRow8 } from "@xylabs/react-flexbox";
2758
2564
  import { useColorSchemeEx as useColorSchemeEx2 } from "@xylabs/react-invertible-theme";
2759
2565
  import { XyOsMonitor as XyOsMonitor3 } from "@xyo-network/os-runtime";
2760
- import React24, { useEffect as useEffect17, useState as useState17 } from "react";
2566
+ import React23, { useEffect as useEffect16, useState as useState15 } from "react";
2761
2567
 
2762
2568
  // src/modules/Dapp/modules/Window/menu/BottomMenuArea.tsx
2763
2569
  import { BugReport as BugReport2, KeyboardArrowDownRounded, KeyboardArrowUpRounded } from "@mui/icons-material";
2764
- import { Card as Card3, Collapse, Divider as Divider3, IconButton as IconButton3, Stack, Toolbar as Toolbar2, Tooltip as Tooltip3, Typography as Typography7, useTheme as useTheme6 } from "@mui/material";
2570
+ import { Card as Card3, Collapse, Divider as Divider3, IconButton as IconButton3, Stack, Toolbar as Toolbar2, Tooltip as Tooltip3, Typography as Typography6, useTheme as useTheme6 } from "@mui/material";
2765
2571
  import { RotationAnimation } from "@xylabs/react-animation";
2766
- import { FlexCol as FlexCol8, FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
2572
+ import { FlexCol as FlexCol6, FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
2767
2573
  import { DarkModeIconButtonForColorScheme as DarkModeIconButtonForColorScheme2 } from "@xylabs/react-invertible-theme";
2768
2574
  import { LinkEx as LinkEx2 } from "@xylabs/react-link";
2769
- import React23, { useState as useState16 } from "react";
2575
+ import React22, { useState as useState14 } from "react";
2770
2576
  import XyoOSLogoWhite from "./xyoOS-Icon-White-47MP66MD.svg";
2771
2577
 
2772
2578
  // src/modules/Dapp/modules/Window/menu/SocialData.tsx
2773
2579
  import { Facebook, Instagram, LinkedIn, Reddit, StorefrontRounded, Telegram, X, YouTube } from "@mui/icons-material";
2774
- import React22 from "react";
2580
+ import React21 from "react";
2775
2581
  import { FaDiscord } from "react-icons/fa";
2776
2582
  var socialLinksData = [
2777
2583
  {
2778
- icon: /* @__PURE__ */ React22.createElement(Facebook, {
2584
+ icon: /* @__PURE__ */ React21.createElement(Facebook, {
2779
2585
  style: {
2780
2586
  fontSize: "24px"
2781
2587
  }
@@ -2783,7 +2589,7 @@ var socialLinksData = [
2783
2589
  link: "https://www.facebook.com/OfficialXYO"
2784
2590
  },
2785
2591
  {
2786
- icon: /* @__PURE__ */ React22.createElement(X, {
2592
+ icon: /* @__PURE__ */ React21.createElement(X, {
2787
2593
  style: {
2788
2594
  fontSize: "24px"
2789
2595
  }
@@ -2791,7 +2597,7 @@ var socialLinksData = [
2791
2597
  link: "https://twitter.com/OfficialXYO"
2792
2598
  },
2793
2599
  {
2794
- icon: /* @__PURE__ */ React22.createElement(Instagram, {
2600
+ icon: /* @__PURE__ */ React21.createElement(Instagram, {
2795
2601
  style: {
2796
2602
  fontSize: "24px"
2797
2603
  }
@@ -2799,7 +2605,7 @@ var socialLinksData = [
2799
2605
  link: "https://www.instagram.com/officialxyo/"
2800
2606
  },
2801
2607
  {
2802
- icon: /* @__PURE__ */ React22.createElement(Telegram, {
2608
+ icon: /* @__PURE__ */ React21.createElement(Telegram, {
2803
2609
  style: {
2804
2610
  fontSize: "24px"
2805
2611
  }
@@ -2807,7 +2613,7 @@ var socialLinksData = [
2807
2613
  link: "https://t.me/xyonetwork"
2808
2614
  },
2809
2615
  {
2810
- icon: /* @__PURE__ */ React22.createElement(Reddit, {
2616
+ icon: /* @__PURE__ */ React21.createElement(Reddit, {
2811
2617
  style: {
2812
2618
  fontSize: "24px"
2813
2619
  }
@@ -2815,7 +2621,7 @@ var socialLinksData = [
2815
2621
  link: "https://www.reddit.com/r/XYONetwork/"
2816
2622
  },
2817
2623
  {
2818
- icon: /* @__PURE__ */ React22.createElement(YouTube, {
2624
+ icon: /* @__PURE__ */ React21.createElement(YouTube, {
2819
2625
  style: {
2820
2626
  fontSize: "24px"
2821
2627
  }
@@ -2823,7 +2629,7 @@ var socialLinksData = [
2823
2629
  link: "https://www.youtube.com/channel/UCyZDqb9pgntVHJVt1pxXtsw"
2824
2630
  },
2825
2631
  {
2826
- icon: /* @__PURE__ */ React22.createElement(LinkedIn, {
2632
+ icon: /* @__PURE__ */ React21.createElement(LinkedIn, {
2827
2633
  style: {
2828
2634
  fontSize: "24px"
2829
2635
  }
@@ -2831,7 +2637,7 @@ var socialLinksData = [
2831
2637
  link: "https://www.linkedin.com/company/officialxyo/"
2832
2638
  },
2833
2639
  {
2834
- icon: /* @__PURE__ */ React22.createElement(FaDiscord, {
2640
+ icon: /* @__PURE__ */ React21.createElement(FaDiscord, {
2835
2641
  style: {
2836
2642
  fontSize: "24px"
2837
2643
  }
@@ -2839,7 +2645,7 @@ var socialLinksData = [
2839
2645
  link: "https://discord.gg/officialxyo"
2840
2646
  },
2841
2647
  {
2842
- icon: /* @__PURE__ */ React22.createElement(StorefrontRounded, {
2648
+ icon: /* @__PURE__ */ React21.createElement(StorefrontRounded, {
2843
2649
  style: {
2844
2650
  fontSize: "24px"
2845
2651
  }
@@ -2851,12 +2657,12 @@ var socialLinksData = [
2851
2657
  // src/modules/Dapp/modules/Window/menu/BottomMenuArea.tsx
2852
2658
  var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) => {
2853
2659
  const theme = useTheme6();
2854
- const [expanded, setExpanded] = useState16(false);
2660
+ const [expanded, setExpanded] = useState14(false);
2855
2661
  const logo = XyoOSLogoWhite;
2856
2662
  const handleExpandClick = /* @__PURE__ */ __name(() => {
2857
2663
  setExpanded(!expanded);
2858
2664
  }, "handleExpandClick");
2859
- return /* @__PURE__ */ React23.createElement(Card3, {
2665
+ return /* @__PURE__ */ React22.createElement(Card3, {
2860
2666
  sx: {
2861
2667
  position: "relative",
2862
2668
  borderTopLeftRadius: "10px",
@@ -2867,10 +2673,10 @@ var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) =>
2867
2673
  overflow: "hidden"
2868
2674
  },
2869
2675
  elevation: 4
2870
- }, /* @__PURE__ */ React23.createElement(FlexCol8, {
2676
+ }, /* @__PURE__ */ React22.createElement(FlexCol6, {
2871
2677
  paddingY: 1,
2872
2678
  alignItems: "stretch"
2873
- }, /* @__PURE__ */ React23.createElement(Stack, {
2679
+ }, /* @__PURE__ */ React22.createElement(Stack, {
2874
2680
  paddingX: 2,
2875
2681
  justifyContent: "space-between",
2876
2682
  flexDirection: "row",
@@ -2880,17 +2686,17 @@ var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) =>
2880
2686
  textTransform: "none",
2881
2687
  cursor: "pointer"
2882
2688
  }
2883
- }, /* @__PURE__ */ React23.createElement(Typography7, {
2689
+ }, /* @__PURE__ */ React22.createElement(Typography6, {
2884
2690
  gutterBottom: false
2885
- }, "More"), expanded ? /* @__PURE__ */ React23.createElement(KeyboardArrowUpRounded, {
2691
+ }, "More"), expanded ? /* @__PURE__ */ React22.createElement(KeyboardArrowUpRounded, {
2886
2692
  sx: {
2887
2693
  color: "#fff"
2888
2694
  }
2889
- }) : /* @__PURE__ */ React23.createElement(KeyboardArrowDownRounded, {
2695
+ }) : /* @__PURE__ */ React22.createElement(KeyboardArrowDownRounded, {
2890
2696
  sx: {
2891
2697
  color: "#fff"
2892
2698
  }
2893
- }))), /* @__PURE__ */ React23.createElement(Collapse, {
2699
+ }))), /* @__PURE__ */ React22.createElement(Collapse, {
2894
2700
  in: expanded,
2895
2701
  timeout: "auto",
2896
2702
  unmountOnExit: true,
@@ -2898,44 +2704,44 @@ var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) =>
2898
2704
  paddingBottom: 3,
2899
2705
  color: "#fff"
2900
2706
  }
2901
- }, /* @__PURE__ */ React23.createElement(Divider3, {
2707
+ }, /* @__PURE__ */ React22.createElement(Divider3, {
2902
2708
  flexItem: true
2903
- }), /* @__PURE__ */ React23.createElement(FlexCol8, {
2709
+ }), /* @__PURE__ */ React22.createElement(FlexCol6, {
2904
2710
  alignItems: "center"
2905
- }, /* @__PURE__ */ React23.createElement(Toolbar2, {
2711
+ }, /* @__PURE__ */ React22.createElement(Toolbar2, {
2906
2712
  sx: {
2907
2713
  paddingX: 1.5
2908
2714
  }
2909
- }, /* @__PURE__ */ React23.createElement(Tooltip3, {
2715
+ }, /* @__PURE__ */ React22.createElement(Tooltip3, {
2910
2716
  title: "Debug Node View"
2911
- }, /* @__PURE__ */ React23.createElement(IconButton3, {
2717
+ }, /* @__PURE__ */ React22.createElement(IconButton3, {
2912
2718
  onClick: openDebug,
2913
2719
  sx: {
2914
2720
  color: "#fff"
2915
2721
  }
2916
- }, /* @__PURE__ */ React23.createElement(BugReport2, null))), /* @__PURE__ */ React23.createElement(Tooltip3, {
2722
+ }, /* @__PURE__ */ React22.createElement(BugReport2, null))), /* @__PURE__ */ React22.createElement(Tooltip3, {
2917
2723
  title: "Toggle Light/Dark Mode"
2918
- }, /* @__PURE__ */ React23.createElement("span", null, /* @__PURE__ */ React23.createElement(DarkModeIconButtonForColorScheme2, {
2724
+ }, /* @__PURE__ */ React22.createElement("span", null, /* @__PURE__ */ React22.createElement(DarkModeIconButtonForColorScheme2, {
2919
2725
  defaultLightModeColor: "warning"
2920
- })))), /* @__PURE__ */ React23.createElement(FlexRow7, {
2726
+ })))), /* @__PURE__ */ React22.createElement(FlexRow7, {
2921
2727
  flexWrap: "wrap"
2922
- }, socialLinksData.map((social) => /* @__PURE__ */ React23.createElement(RotationAnimation, {
2728
+ }, socialLinksData.map((social) => /* @__PURE__ */ React22.createElement(RotationAnimation, {
2923
2729
  key: social.link,
2924
2730
  rotation: 20
2925
- }, /* @__PURE__ */ React23.createElement(IconButton3, {
2731
+ }, /* @__PURE__ */ React22.createElement(IconButton3, {
2926
2732
  sx: {
2927
2733
  color: "#fff"
2928
2734
  },
2929
2735
  href: social.link,
2930
2736
  target: "_blank"
2931
- }, social.icon)))), /* @__PURE__ */ React23.createElement(FlexRow7, {
2737
+ }, social.icon)))), /* @__PURE__ */ React22.createElement(FlexRow7, {
2932
2738
  padding: 1,
2933
2739
  justifyContent: "center",
2934
2740
  gap: 0.5
2935
- }, /* @__PURE__ */ React23.createElement(Typography7, {
2741
+ }, /* @__PURE__ */ React22.createElement(Typography6, {
2936
2742
  variant: "body2",
2937
2743
  color: theme.palette.text.primary
2938
- }, "Powered By"), /* @__PURE__ */ React23.createElement("img", {
2744
+ }, "Powered By"), /* @__PURE__ */ React22.createElement("img", {
2939
2745
  style: {
2940
2746
  color: theme.palette.text.primary,
2941
2747
  fill: theme.palette.text.primary
@@ -2943,43 +2749,43 @@ var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) =>
2943
2749
  src: logo,
2944
2750
  width: "auto",
2945
2751
  height: "20px"
2946
- })), /* @__PURE__ */ React23.createElement(Typography7, {
2752
+ })), /* @__PURE__ */ React22.createElement(Typography6, {
2947
2753
  variant: "caption",
2948
2754
  color: theme.palette.text.primary
2949
- }, "Copyright \xA9 2024 XY Labs, Inc."), /* @__PURE__ */ React23.createElement(Stack, {
2755
+ }, "Copyright \xA9 2024 XY Labs, Inc."), /* @__PURE__ */ React22.createElement(Stack, {
2950
2756
  gap: 0.5,
2951
2757
  flexDirection: "row"
2952
- }, /* @__PURE__ */ React23.createElement(LinkEx2, {
2758
+ }, /* @__PURE__ */ React22.createElement(LinkEx2, {
2953
2759
  color: "inherit",
2954
2760
  target: "_blank",
2955
2761
  href: "https://xylabs.com/privacy/"
2956
- }, /* @__PURE__ */ React23.createElement(Typography7, {
2762
+ }, /* @__PURE__ */ React22.createElement(Typography6, {
2957
2763
  variant: "caption"
2958
- }, "Privacy")), " ", "\u2022", " ", /* @__PURE__ */ React23.createElement(LinkEx2, {
2764
+ }, "Privacy")), " ", "\u2022", " ", /* @__PURE__ */ React22.createElement(LinkEx2, {
2959
2765
  color: "inherit",
2960
2766
  target: "_blank",
2961
2767
  href: "https://xylabs.com/terms/"
2962
- }, /* @__PURE__ */ React23.createElement(Typography7, {
2768
+ }, /* @__PURE__ */ React22.createElement(Typography6, {
2963
2769
  variant: "caption"
2964
- }, "Terms")), " ", "\u2022", " ", /* @__PURE__ */ React23.createElement(LinkEx2, {
2770
+ }, "Terms")), " ", "\u2022", " ", /* @__PURE__ */ React22.createElement(LinkEx2, {
2965
2771
  color: "inherit",
2966
2772
  target: "_blank",
2967
2773
  href: "https://xyo.network/"
2968
- }, /* @__PURE__ */ React23.createElement(Typography7, {
2774
+ }, /* @__PURE__ */ React22.createElement(Typography6, {
2969
2775
  variant: "caption"
2970
2776
  }, "XYO Website"))))));
2971
2777
  }, "BottomMenuArea");
2972
2778
 
2973
2779
  // src/modules/Dapp/modules/Window/menu/StyledListItems.tsx
2974
- import { ListItemButton, styled as styled4 } from "@mui/material";
2975
- var StyledMenuIconWrapSpan = styled4("span", {
2780
+ import { ListItemButton, styled as styled3 } from "@mui/material";
2781
+ var StyledMenuIconWrapSpan = styled3("span", {
2976
2782
  name: "StyledMenuIconWrapSpan"
2977
2783
  })(() => ({
2978
2784
  alignItems: "center",
2979
2785
  display: "inline-flex",
2980
2786
  flexDirection: "column"
2981
2787
  }));
2982
- var StyledListItemButton = styled4(ListItemButton, {
2788
+ var StyledListItemButton = styled3(ListItemButton, {
2983
2789
  name: "StyledListItemButton"
2984
2790
  })(({ theme, active }) => {
2985
2791
  const activeOrHoverColor = theme.palette.primary.main;
@@ -3008,12 +2814,12 @@ var StyledListItemButton = styled4(ListItemButton, {
3008
2814
 
3009
2815
  // src/modules/Dapp/modules/Window/menu/Drawer.tsx
3010
2816
  var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, name, menuConfig, menuItems, onPathChange, version, ...props }) => {
3011
- const [path, setPath] = useState17("");
2817
+ const [path, setPath] = useState15("");
3012
2818
  const { darkMode } = useColorSchemeEx2();
3013
2819
  const theme = useTheme7();
3014
2820
  const drawerColor = darkMode ? theme.palette.background.paper : darken(theme.palette.primary.main, 0.5);
3015
2821
  const activeColor = theme.palette.primary.light;
3016
- useEffect17(() => {
2822
+ useEffect16(() => {
3017
2823
  if (menuConfig?.defaultPath && menuItems && activePath) {
3018
2824
  const newPath = menuItems.find((item) => activePath === item.path)?.path ?? "";
3019
2825
  setPath(newPath);
@@ -3031,7 +2837,7 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
3031
2837
  onPathChange?.(to2);
3032
2838
  }, "handleChange");
3033
2839
  const { closeDebug, debugOpen, openDebug } = useDebugClick();
3034
- return /* @__PURE__ */ React24.createElement(Drawer, {
2840
+ return /* @__PURE__ */ React23.createElement(Drawer, {
3035
2841
  variant: "permanent",
3036
2842
  anchor: "left",
3037
2843
  PaperProps: {
@@ -3045,18 +2851,18 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
3045
2851
  width: "280px"
3046
2852
  },
3047
2853
  ...props
3048
- }, /* @__PURE__ */ React24.createElement(FlexCol9, {
2854
+ }, /* @__PURE__ */ React23.createElement(FlexCol7, {
3049
2855
  alignItems: "stretch",
3050
2856
  justifyContent: "space-between",
3051
2857
  height: "100dvh"
3052
- }, /* @__PURE__ */ React24.createElement(FlexCol9, {
2858
+ }, /* @__PURE__ */ React23.createElement(FlexCol7, {
3053
2859
  alignItems: "stretch",
3054
2860
  justifyContent: "flex-start",
3055
2861
  flexGrow: 1,
3056
2862
  overflow: "auto"
3057
- }, /* @__PURE__ */ React24.createElement(Tooltip4, {
2863
+ }, /* @__PURE__ */ React23.createElement(Tooltip4, {
3058
2864
  title: version
3059
- }, /* @__PURE__ */ React24.createElement(FlexGrowRow5, {
2865
+ }, /* @__PURE__ */ React23.createElement(FlexGrowRow5, {
3060
2866
  id: "dapp-name-and-icon",
3061
2867
  padding: 2,
3062
2868
  justifyContent: "flex-start",
@@ -3067,31 +2873,31 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
3067
2873
  flexGrow: 0
3068
2874
  }, iconSvg ? RenderHtml({
3069
2875
  htmlString: iconSvg
3070
- }) : null, /* @__PURE__ */ React24.createElement(Typography8, {
2876
+ }) : null, /* @__PURE__ */ React23.createElement(Typography7, {
3071
2877
  noWrap: true,
3072
2878
  variant: "h6",
3073
2879
  letterSpacing: "-1px"
3074
- }, name))), /* @__PURE__ */ React24.createElement(DebugDialogWithNode, {
2880
+ }, name))), /* @__PURE__ */ React23.createElement(DebugDialogWithNode, {
3075
2881
  closeDebug,
3076
2882
  debugOpen,
3077
2883
  context
3078
- }), /* @__PURE__ */ React24.createElement(List, {
2884
+ }), /* @__PURE__ */ React23.createElement(List, {
3079
2885
  sx: {
3080
2886
  p: 0,
3081
2887
  overflow: "auto"
3082
2888
  }
3083
- }, menuItems?.map(({ svgIcon: icon, primaryText, path: pathFromPayload }) => /* @__PURE__ */ React24.createElement(ListItem, {
2889
+ }, menuItems?.map(({ svgIcon: icon, primaryText, path: pathFromPayload }) => /* @__PURE__ */ React23.createElement(ListItem, {
3084
2890
  key: primaryText,
3085
2891
  disablePadding: true,
3086
2892
  sx: {
3087
2893
  paddingBottom: 1
3088
2894
  }
3089
- }, /* @__PURE__ */ React24.createElement(StyledListItemButton, {
2895
+ }, /* @__PURE__ */ React23.createElement(StyledListItemButton, {
3090
2896
  onClick: /* @__PURE__ */ __name(() => handleChange(pathFromPayload), "onClick"),
3091
2897
  active: pathFromPayload === path,
3092
2898
  disableRipple: true,
3093
2899
  disableTouchRipple: true
3094
- }, /* @__PURE__ */ React24.createElement(FlexRow8, {
2900
+ }, /* @__PURE__ */ React23.createElement(FlexRow8, {
3095
2901
  flexGrow: 1,
3096
2902
  paddingX: 2,
3097
2903
  paddingY: 0.5,
@@ -3101,18 +2907,18 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
3101
2907
  },
3102
2908
  "borderRadius": "10px"
3103
2909
  }
3104
- }, /* @__PURE__ */ React24.createElement(ListItemIcon, {
2910
+ }, /* @__PURE__ */ React23.createElement(ListItemIcon, {
3105
2911
  sx: {
3106
2912
  color: pathFromPayload === path ? activeColor : alpha4("#fff", 0.3),
3107
2913
  justifyContent: "center"
3108
2914
  }
3109
- }, /* @__PURE__ */ React24.createElement(StyledMenuIconWrapSpan, {
2915
+ }, /* @__PURE__ */ React23.createElement(StyledMenuIconWrapSpan, {
3110
2916
  ref: /* @__PURE__ */ __name((ref) => {
3111
2917
  if (ref) {
3112
2918
  ref.innerHTML = icon ?? "";
3113
2919
  }
3114
2920
  }, "ref")
3115
- })), /* @__PURE__ */ React24.createElement(ListItemText, {
2921
+ })), /* @__PURE__ */ React23.createElement(ListItemText, {
3116
2922
  primaryTypographyProps: {
3117
2923
  fontWeight: path === pathFromPayload ? "bold" : "inherit",
3118
2924
  color: pathFromPayload === path ? "inherit" : alpha4(theme.palette.text.primary, 0.5)
@@ -3121,73 +2927,290 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
3121
2927
  style: {
3122
2928
  opacity: pathFromPayload === path ? 1 : 0.5
3123
2929
  }
3124
- }))))))), /* @__PURE__ */ React24.createElement(BottomMenuArea, {
2930
+ }))))))), /* @__PURE__ */ React23.createElement(BottomMenuArea, {
3125
2931
  openDebug,
3126
2932
  backgroundColor: theme.palette.primary.dark
3127
2933
  })));
3128
2934
  }, "DappMenuDrawer");
3129
2935
 
3130
- // src/modules/Dapp/modules/Window/DappWindow.tsx
3131
- var DappWindow = /* @__PURE__ */ __name(({ context, dappSet, dappState, dappWallet, errors, nodeCreateError }) => {
3132
- const { DappComponent, name, scrollable = true, version } = decomposeDappSet(dappSet);
2936
+ // src/modules/Dapp/modules/Window/Rendered.tsx
2937
+ import { ErrorRender as ErrorRender4 } from "@xylabs/react-error";
2938
+ import { FlexCol as FlexCol10 } from "@xylabs/react-flexbox";
2939
+ import { NameTransforms as NameTransforms5 } from "@xyo-network/os-runtime";
2940
+ import { NodeProvider as NodeProvider2 } from "@xyo-network/react-node";
2941
+ import { WalletProvider } from "@xyo-network/react-wallet";
2942
+ import React27 from "react";
2943
+
2944
+ // src/modules/XyOsUi/contexts/XyOsUiContext.ts
2945
+ import { createContext, useContext } from "react";
2946
+ var XyOsUiContext = createContext(void 0);
2947
+ var useXyOsUiContext = /* @__PURE__ */ __name(() => {
2948
+ return useContext(XyOsUiContext);
2949
+ }, "useXyOsUiContext");
2950
+ var XyOsUiContextProvider = XyOsUiContext.Provider;
2951
+
2952
+ // src/modules/XyOsUi/lib/XyOsUi.ts
2953
+ import { forget } from "@xylabs/forget";
2954
+ import { ModuleFactoryLocator as ModuleFactoryLocator2 } from "@xyo-network/module-factory-locator";
2955
+ import { dappsReadyConnection, XyOs } from "@xyo-network/os-runtime";
2956
+ var XyOsUi = class extends XyOs {
2957
+ static {
2958
+ __name(this, "XyOsUi");
2959
+ }
2960
+ dappRegistrationResults = {
2961
+ failed: [],
2962
+ succeeded: []
2963
+ };
2964
+ dappsReadyConnection = dappsReadyConnection();
2965
+ constructor(params) {
2966
+ super(params);
2967
+ this.eventBus.addConnection(this.dappsReadyConnection);
2968
+ }
2969
+ static get monitoring() {
2970
+ return new XyOsBrowserMonitor();
2971
+ }
2972
+ static get xyOsUiGlobal() {
2973
+ return XyOs.xyOsGlobal;
2974
+ }
2975
+ static hideSplash() {
2976
+ this.xyOsUiGlobal.splashScreen.hideSplash();
2977
+ this.xyOsUiGlobal.splashScreen.onComplete();
2978
+ this.setSplashStatus("complete");
2979
+ }
2980
+ static setSplashStatus(status) {
2981
+ const statusText = this.xyOsUiGlobal.splashScreen._LOADING_MESSAGES[status];
2982
+ this.xyOsUiGlobal.splashScreen.setStatusText(statusText);
2983
+ }
2984
+ async boot(wallet, locator = new ModuleFactoryLocator2()) {
2985
+ await super.boot(wallet, locator);
2986
+ const registerLazy = /* @__PURE__ */ __name(async () => {
2987
+ this.dappRegistrationResults = await this.dappRegistrationService.start();
2988
+ await this.dappsReadyConnection.emit("dappsReady", {});
2989
+ }, "registerLazy");
2990
+ forget(registerLazy());
2991
+ return this;
2992
+ }
2993
+ };
2994
+
2995
+ // src/modules/Dapp/modules/Window/LoadingFlexbox.tsx
2996
+ import { Fade, styled as styled4, Typography as Typography8 } from "@mui/material";
2997
+ import { FlexCol as FlexCol9 } from "@xylabs/react-flexbox";
2998
+ import React26, { useEffect as useEffect17, useState as useState17 } from "react";
2999
+
3000
+ // src/modules/LoadingOsLogo/LoadingOsLogo.tsx
3001
+ import { FlexCol as FlexCol8 } from "@xylabs/react-flexbox";
3002
+ import React24, { useState as useState16 } from "react";
3003
+
3004
+ // src/modules/LoadingOsLogo/img/index.ts
3005
+ import { default as default20 } from "./xyoOS-Icon-2Q4XCUPP.svg";
3006
+
3007
+ // src/modules/LoadingOsLogo/LoadingOsLogo.tsx
3008
+ var LoadingOsLogo = /* @__PURE__ */ __name(({ widthInPixels, busy, spinsPerSecond = 0.5, ...props }) => {
3009
+ const [imageLoaded, setImageLoaded] = useState16(false);
3010
+ if (!imageLoaded) {
3011
+ const img = new Image();
3012
+ img.addEventListener("load", () => setImageLoaded(true));
3013
+ img.src = default20;
3014
+ }
3015
+ return imageLoaded ? /* @__PURE__ */ React24.createElement(FlexCol8, {
3016
+ sx: {
3017
+ "@keyframes fadeOut": {
3018
+ "0%": {
3019
+ opacity: 1
3020
+ },
3021
+ "100%": {
3022
+ opacity: 0.1
3023
+ },
3024
+ "35%": {
3025
+ opacity: 1
3026
+ }
3027
+ },
3028
+ "animation": busy ? "fadeOut linear" : void 0,
3029
+ "animationDuration": "1500ms",
3030
+ "animationFillMode": "both"
3031
+ },
3032
+ ...props
3033
+ }, /* @__PURE__ */ React24.createElement(FlexCol8, {
3034
+ sx: {
3035
+ "@keyframes spin": {
3036
+ "0%": {
3037
+ transform: "rotate(360deg)"
3038
+ },
3039
+ "100%": {
3040
+ transform: "rotate(0deg)"
3041
+ }
3042
+ },
3043
+ "animation": busy ? `spin ${1 / spinsPerSecond}s linear infinite` : void 0,
3044
+ "animationDirection": "reverse"
3045
+ },
3046
+ ...props
3047
+ }, /* @__PURE__ */ React24.createElement("img", {
3048
+ src: default20,
3049
+ height: widthInPixels ?? 22
3050
+ }))) : null;
3051
+ }, "LoadingOsLogo");
3052
+
3053
+ // src/modules/Dapp/modules/Window/Trail.tsx
3054
+ import { a, useTrail } from "@react-spring/web";
3055
+ import React25 from "react";
3056
+ var TextTrail = /* @__PURE__ */ __name(({ open, children }) => {
3057
+ const items = React25.Children.toArray(children);
3058
+ const trail = useTrail(items.length, {
3059
+ config: {
3060
+ friction: 200,
3061
+ mass: 5,
3062
+ tension: 2e3
3063
+ },
3064
+ from: {
3065
+ height: "auto",
3066
+ opacity: 0,
3067
+ y: 20
3068
+ },
3069
+ height: "auto",
3070
+ opacity: open ? 1 : 0,
3071
+ y: open ? 0 : 60
3072
+ });
3073
+ return /* @__PURE__ */ React25.createElement("div", null, trail.map(({ height, ...style }, index) => /* @__PURE__ */ React25.createElement(a.div, {
3074
+ key: index,
3075
+ style
3076
+ }, /* @__PURE__ */ React25.createElement(a.div, {
3077
+ style: {
3078
+ height
3079
+ }
3080
+ }, items[index]))));
3081
+ }, "TextTrail");
3082
+
3083
+ // src/modules/Dapp/modules/Window/LoadingFlexbox.tsx
3084
+ var DappLoadingFlexbox = /* @__PURE__ */ __name(({ minimize, open, name, ...props }) => {
3085
+ const [fadeIn, setFadeIn] = useState17(!open);
3086
+ const [trail, setTrail] = useState17(false);
3087
+ const skipLoadingScreen = useSkipLoadingScreen();
3088
+ useEffect17(() => {
3089
+ if (open) {
3090
+ if (skipLoadingScreen) {
3091
+ setFadeIn(false);
3092
+ return;
3093
+ }
3094
+ const fadeInTimeout = setTimeout(() => {
3095
+ setFadeIn(false);
3096
+ }, 2e3);
3097
+ let trailTimeout = setTimeout(() => {
3098
+ setTrail(true);
3099
+ trailTimeout = setTimeout(() => {
3100
+ setTrail(false);
3101
+ }, 4e3);
3102
+ }, 300);
3103
+ return () => {
3104
+ clearTimeout(fadeInTimeout);
3105
+ clearTimeout(trailTimeout);
3106
+ };
3107
+ }
3108
+ if (!minimize) {
3109
+ setFadeIn(true);
3110
+ }
3111
+ }, [
3112
+ minimize,
3113
+ open,
3114
+ skipLoadingScreen
3115
+ ]);
3116
+ return /* @__PURE__ */ React26.createElement(Fade, {
3117
+ in: fadeIn,
3118
+ unmountOnExit: true
3119
+ }, /* @__PURE__ */ React26.createElement(StyledSplashContainer, props, /* @__PURE__ */ React26.createElement(LoadingOsLogo, {
3120
+ widthInPixels: 100,
3121
+ busy: true,
3122
+ position: "absolute"
3123
+ }), /* @__PURE__ */ React26.createElement(TextTrail, {
3124
+ open: trail,
3125
+ flexDirection: "row"
3126
+ }, /* @__PURE__ */ React26.createElement(Typography8, {
3127
+ textAlign: "center",
3128
+ sx: {
3129
+ fontSize: {
3130
+ md: "3em",
3131
+ xs: "2em"
3132
+ }
3133
+ }
3134
+ }, "Loading"), /* @__PURE__ */ React26.createElement(Typography8, {
3135
+ textAlign: "center",
3136
+ sx: {
3137
+ fontSize: {
3138
+ md: "3em",
3139
+ xs: "2em"
3140
+ }
3141
+ }
3142
+ }, name), /* @__PURE__ */ React26.createElement(Typography8, {
3143
+ textAlign: "center",
3144
+ sx: {
3145
+ fontSize: {
3146
+ md: "3em",
3147
+ xs: "2em"
3148
+ }
3149
+ }
3150
+ }, "dApp"))));
3151
+ }, "DappLoadingFlexbox");
3152
+ var StyledSplashContainer = styled4(FlexCol9, {
3153
+ name: "StyledSplashContainer"
3154
+ })(({ theme }) => {
3155
+ return {
3156
+ background: theme.palette.background.default,
3157
+ color: theme.palette.text.primary,
3158
+ gap: theme.spacing(1),
3159
+ height: "100%",
3160
+ left: 0,
3161
+ position: "absolute",
3162
+ top: 0,
3163
+ width: "100%",
3164
+ zIndex: 999
3165
+ };
3166
+ });
3167
+
3168
+ // src/modules/Dapp/modules/Window/Rendered.tsx
3169
+ var DappRendered = /* @__PURE__ */ __name(({ context, dapp, dappMenuProperties, dappState, dappWallet, errors }) => {
3170
+ const { DappComponent, name, scrollable = true, version } = useDecomposeDapp(dapp);
3133
3171
  const { active, minimized } = dappState ?? {};
3134
- const TypedDappComponent = useMemo12(() => DappComponent, []);
3135
- useSyncOsRegisteredAccessInterfaces(context);
3136
- useManageDappPathFromRoute(context, name);
3137
- useManageDappInjectableParamsFromRoute(context);
3138
- const { activePath, error: menuError, menuConfig, menuItemsVisible, onPathChange } = useDappMenu(context, name);
3139
- const resolvedErrors = [
3140
- nodeCreateError,
3141
- menuError,
3142
- ...errors ?? []
3143
- ].filter(Boolean);
3144
- const hasErrors = resolvedErrors.length > 0;
3145
- return /* @__PURE__ */ React25.createElement(React25.Fragment, null, active ? /* @__PURE__ */ React25.createElement(Helmet, null, /* @__PURE__ */ React25.createElement("title", null, activePath ? `${new NameTransforms4(activePath).deSlug()} | ` : "", " ", name, " ", "dApp")) : null, /* @__PURE__ */ React25.createElement(ErrorBoundary, null, /* @__PURE__ */ React25.createElement(DappChrome, {
3146
- appBar: /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(DappBar, {
3172
+ const hasErrors = errors && errors.length > 0;
3173
+ return /* @__PURE__ */ React27.createElement(DappChrome, {
3174
+ /* Keep DappBar outside of the Dapp's Node Provider so it can still see the intentArchivist for close and minimize */
3175
+ appBar: /* @__PURE__ */ React27.createElement(DappBar, {
3147
3176
  context,
3148
3177
  name,
3149
3178
  version,
3150
- title: activePath ? new NameTransforms4(activePath).deSlug() : ""
3151
- })),
3179
+ title: dappMenuProperties?.activePath ? new NameTransforms5(dappMenuProperties.activePath).deSlug() : ""
3180
+ }),
3152
3181
  height: "100dvh",
3153
3182
  width: "100dvw",
3154
- largeScreenMenu: active && /* @__PURE__ */ React25.createElement(DappMenuDrawer, {
3183
+ largeScreenMenu: active && /* @__PURE__ */ React27.createElement(DappMenuDrawer, {
3155
3184
  context,
3156
3185
  name,
3157
3186
  version,
3158
- activePath,
3159
- onPathChange,
3160
- menuConfig,
3161
- menuItems: menuItemsVisible
3187
+ ...dappMenuProperties
3162
3188
  }),
3163
- smallScreenMenu: active && /* @__PURE__ */ React25.createElement(DappBottomNavigation, {
3164
- activePath,
3165
- onPathChange,
3166
- menuConfig,
3167
- menuItems: menuItemsVisible,
3189
+ smallScreenMenu: active && /* @__PURE__ */ React27.createElement(DappBottomNavigation, {
3190
+ ...dappMenuProperties,
3168
3191
  sx: {
3169
- display: menuConfig ? "flex" : "none"
3192
+ display: dappMenuProperties?.menuConfig ? "flex" : "none"
3170
3193
  }
3171
3194
  }),
3172
3195
  /* Ensure that loading goes away when error occurs */
3173
- splashScreen: hasErrors ? null : /* @__PURE__ */ React25.createElement(DappLoadingFlexbox, {
3196
+ splashScreen: hasErrors ? null : /* @__PURE__ */ React27.createElement(DappLoadingFlexbox, {
3174
3197
  minimize: !!minimized,
3175
3198
  name,
3176
3199
  open: !!active
3177
3200
  })
3178
- }, hasErrors ? /* @__PURE__ */ React25.createElement(FlexCol10, {
3201
+ }, hasErrors ? /* @__PURE__ */ React27.createElement(FlexCol10, {
3179
3202
  padding: 2
3180
- }, resolvedErrors?.map((error) => /* @__PURE__ */ React25.createElement(ErrorRender3, {
3203
+ }, errors?.map((error) => /* @__PURE__ */ React27.createElement(ErrorRender4, {
3181
3204
  key: error?.message,
3182
3205
  error,
3183
3206
  scope: "DappWindow"
3184
- }))) : null, /* @__PURE__ */ React25.createElement(WalletProvider, {
3207
+ }))) : null, /* @__PURE__ */ React27.createElement(WalletProvider, {
3185
3208
  rootWallet: dappWallet
3186
- }, context === null ? null : /* @__PURE__ */ React25.createElement(XyOsUiContextProvider, {
3209
+ }, context === null ? null : /* @__PURE__ */ React27.createElement(XyOsUiContextProvider, {
3187
3210
  value: context
3188
- }, /* @__PURE__ */ React25.createElement(NodeProvider2, {
3211
+ }, /* @__PURE__ */ React27.createElement(NodeProvider2, {
3189
3212
  node: context?.root
3190
- }, active ? /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(FlexCol10, {
3213
+ }, active ? /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement(FlexCol10, {
3191
3214
  position: "absolute",
3192
3215
  top: 0,
3193
3216
  left: 0,
@@ -3198,12 +3221,12 @@ var DappWindow = /* @__PURE__ */ __name(({ context, dappSet, dappState, dappWall
3198
3221
  sx: {
3199
3222
  overflowY: scrollable ? "auto" : "hidden"
3200
3223
  }
3201
- }, /* @__PURE__ */ React25.createElement(TypedDappComponent, {
3202
- name
3203
- })), /* @__PURE__ */ React25.createElement(DappAccessFlexbox, {
3224
+ }, /* @__PURE__ */ React27.createElement(DappComponent, {
3225
+ name: dapp?.config.name
3226
+ })), /* @__PURE__ */ React27.createElement(DappAccessFlexbox, {
3204
3227
  context
3205
- })) : null))))));
3206
- }, "DappWindow");
3228
+ })) : null))));
3229
+ }, "DappRendered");
3207
3230
 
3208
3231
  // src/modules/Dapp/Container.tsx
3209
3232
  var DappContainer = /* @__PURE__ */ __name(({ currentIntent, dappSet, xnsNodeUrl, xnsNetwork }) => {
@@ -3217,28 +3240,43 @@ var DappContainer = /* @__PURE__ */ __name(({ currentIntent, dappSet, xnsNodeUrl
3217
3240
  currentIntent,
3218
3241
  dapp
3219
3242
  ]);
3220
- return /* @__PURE__ */ React26.createElement(DappIconButton, {
3243
+ const { error: menuError, ...dappMenuProperties } = useDappMenu(context, dapp?.config.name);
3244
+ const errors = useMemo13(() => [
3245
+ nodeCreateError,
3246
+ menuError
3247
+ ].filter(Boolean), [
3248
+ nodeCreateError
3249
+ ]);
3250
+ const dappWindowProps = useMemo13(() => ({
3251
+ context,
3252
+ dapp,
3253
+ dappMenuProperties,
3254
+ dappState,
3255
+ dappWallet,
3256
+ errors
3257
+ }), [
3258
+ context,
3259
+ dapp,
3260
+ dappMenuProperties,
3261
+ dappState,
3262
+ dappWallet,
3263
+ errors
3264
+ ]);
3265
+ return /* @__PURE__ */ React28.createElement(DappIconButton, {
3221
3266
  dappIcon,
3222
3267
  dappIconSvg: dapp.params.iconSvg,
3223
3268
  dappName: dapp?.config.name,
3224
3269
  dappState
3225
- }, /* @__PURE__ */ React26.createElement(DappWindow, {
3226
- context,
3227
- dappSet,
3228
- dappState,
3229
- dappWallet,
3230
- intent: currentIntent,
3231
- nodeCreateError
3232
- }));
3270
+ }, /* @__PURE__ */ React28.createElement(DappWindow, dappWindowProps, /* @__PURE__ */ React28.createElement(DappRendered, dappWindowProps)));
3233
3271
  }, "DappContainer");
3234
3272
  var DappContainerMemo = /* @__PURE__ */ memo(DappContainer);
3235
3273
 
3236
3274
  // src/modules/Dapp/ContainerFlexbox.tsx
3237
3275
  import { Container as Container2 } from "@mui/material";
3238
3276
  import { FlexCol as FlexCol11 } from "@xylabs/react-flexbox";
3239
- import React27 from "react";
3277
+ import React29 from "react";
3240
3278
  var ContainerFlexbox = /* @__PURE__ */ __name(({ children, containerProps, scrollable = true, ...props }) => {
3241
- return /* @__PURE__ */ React27.createElement(FlexCol11, {
3279
+ return /* @__PURE__ */ React29.createElement(FlexCol11, {
3242
3280
  id: "container-flexbox",
3243
3281
  alignItems: "center",
3244
3282
  justifyContent: "start",
@@ -3247,24 +3285,24 @@ var ContainerFlexbox = /* @__PURE__ */ __name(({ children, containerProps, scrol
3247
3285
  gap: 2,
3248
3286
  overflow: scrollable ? "auto" : "unset",
3249
3287
  ...props
3250
- }, /* @__PURE__ */ React27.createElement(Container2, containerProps, children));
3288
+ }, /* @__PURE__ */ React29.createElement(Container2, containerProps, children));
3251
3289
  }, "ContainerFlexbox");
3252
3290
 
3253
3291
  // src/modules/Dapp/Page/Row.tsx
3254
3292
  import { Divider as Divider4, Fade as Fade2, styled as styled5 } from "@mui/material";
3255
- import React29, { useMemo as useMemo14 } from "react";
3293
+ import React31, { useMemo as useMemo14 } from "react";
3256
3294
 
3257
3295
  // src/modules/Dapp/Page/DividerChip.tsx
3258
3296
  import { Chip as Chip2, CircularProgress } from "@mui/material";
3259
- import React28 from "react";
3297
+ import React30 from "react";
3260
3298
  var DividerChip = /* @__PURE__ */ __name(({ registeredDapps, ...props }) => {
3261
- return /* @__PURE__ */ React28.createElement(Chip2, {
3262
- avatar: registeredDapps === void 0 ? /* @__PURE__ */ React28.createElement("span", null, /* @__PURE__ */ React28.createElement(CircularProgress, {
3299
+ return /* @__PURE__ */ React30.createElement(Chip2, {
3300
+ avatar: registeredDapps === void 0 ? /* @__PURE__ */ React30.createElement("span", null, /* @__PURE__ */ React30.createElement(CircularProgress, {
3263
3301
  size: "small",
3264
3302
  sx: {
3265
3303
  display: "inline"
3266
3304
  }
3267
- })) : /* @__PURE__ */ React28.createElement(React28.Fragment, null),
3305
+ })) : /* @__PURE__ */ React30.createElement(React30.Fragment, null),
3268
3306
  label: `${registeredDapps?.length ? "" : "Loading "}Beta dApps`,
3269
3307
  size: "small",
3270
3308
  sx: {
@@ -3280,19 +3318,19 @@ var DappsRow = /* @__PURE__ */ __name(({ chipLabel, currentIntent, installType,
3280
3318
  installType,
3281
3319
  registeredDappsSet
3282
3320
  ]);
3283
- return /* @__PURE__ */ React29.createElement(React29.Fragment, null, /* @__PURE__ */ React29.createElement(Divider4, {
3321
+ return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement(Divider4, {
3284
3322
  variant: "middle",
3285
3323
  sx: {
3286
3324
  marginY: 3
3287
3325
  },
3288
3326
  flexItem: true
3289
- }, /* @__PURE__ */ React29.createElement(DividerChip, {
3327
+ }, /* @__PURE__ */ React31.createElement(DividerChip, {
3290
3328
  label: `${filteredRegisteredDappSets === void 0 ? "Loading " : ""}${chipLabel}`,
3291
3329
  registeredDapps: filteredRegisteredDappSets
3292
- })), filteredRegisteredDappSets?.length ? /* @__PURE__ */ React29.createElement(Fade2, {
3330
+ })), filteredRegisteredDappSets?.length ? /* @__PURE__ */ React31.createElement(Fade2, {
3293
3331
  in: !!filteredRegisteredDappSets?.length,
3294
3332
  timeout: 1e3
3295
- }, /* @__PURE__ */ React29.createElement(StyledGridContainer, null, filteredRegisteredDappSets?.map((dappSet) => /* @__PURE__ */ React29.createElement(DappContainerMemo, {
3333
+ }, /* @__PURE__ */ React31.createElement(StyledGridContainer, null, filteredRegisteredDappSets?.map((dappSet) => /* @__PURE__ */ React31.createElement(DappContainerMemo, {
3296
3334
  currentIntent,
3297
3335
  key: dappSet.dapp.config.name,
3298
3336
  dappSet,
@@ -3316,7 +3354,7 @@ var StyledGridContainer = styled5("div", {
3316
3354
  import { SignalCellularAltOutlined } from "@mui/icons-material";
3317
3355
  import { Tooltip as Tooltip5, useTheme as useTheme8 } from "@mui/material";
3318
3356
  import { useColorSchemeEx as useColorSchemeEx3 } from "@xylabs/react-invertible-theme";
3319
- import React30, { useMemo as useMemo17 } from "react";
3357
+ import React32, { useMemo as useMemo17 } from "react";
3320
3358
 
3321
3359
  // src/modules/network/hooks/useOsNetwork.tsx
3322
3360
  import { OsPubSubNetworkReadyEvent } from "@xyo-network/os-runtime";
@@ -3432,9 +3470,9 @@ var StyledNetworkLoadingIndicator = styled6("div", {
3432
3470
  }));
3433
3471
 
3434
3472
  // src/modules/network/components/LoadingIndicator.tsx
3435
- var WaitingForNetwork = /* @__PURE__ */ __name(() => /* @__PURE__ */ React30.createElement(Tooltip5, {
3473
+ var WaitingForNetwork = /* @__PURE__ */ __name(() => /* @__PURE__ */ React32.createElement(Tooltip5, {
3436
3474
  title: "Waiting for Network initialization"
3437
- }, /* @__PURE__ */ React30.createElement(StyledNetworkLoadingIndicator, null)), "WaitingForNetwork");
3475
+ }, /* @__PURE__ */ React32.createElement(StyledNetworkLoadingIndicator, null)), "WaitingForNetwork");
3438
3476
  var NetworkLoadingIndicator = /* @__PURE__ */ __name(({ highContrast }) => {
3439
3477
  const { darkMode } = useColorSchemeEx3();
3440
3478
  const theme = useTheme8();
@@ -3446,15 +3484,15 @@ var NetworkLoadingIndicator = /* @__PURE__ */ __name(({ highContrast }) => {
3446
3484
  const NetworkComponent = useMemo17(() => {
3447
3485
  if (networkReady) {
3448
3486
  const connectionReady = true;
3449
- return connectionReady ? () => /* @__PURE__ */ React30.createElement(Tooltip5, {
3487
+ return connectionReady ? () => /* @__PURE__ */ React32.createElement(Tooltip5, {
3450
3488
  title: "Connected to Network"
3451
- }, /* @__PURE__ */ React30.createElement(SignalCellularAltOutlined, {
3489
+ }, /* @__PURE__ */ React32.createElement(SignalCellularAltOutlined, {
3452
3490
  sx: {
3453
3491
  color: successColor
3454
3492
  }
3455
- })) : () => /* @__PURE__ */ React30.createElement(Tooltip5, {
3493
+ })) : () => /* @__PURE__ */ React32.createElement(Tooltip5, {
3456
3494
  title: "Error Connecting to Network"
3457
- }, /* @__PURE__ */ React30.createElement(SignalCellularAltOutlined, {
3495
+ }, /* @__PURE__ */ React32.createElement(SignalCellularAltOutlined, {
3458
3496
  sx: {
3459
3497
  color: errorColor
3460
3498
  }
@@ -3467,18 +3505,18 @@ var NetworkLoadingIndicator = /* @__PURE__ */ __name(({ highContrast }) => {
3467
3505
  networkReady,
3468
3506
  successColor
3469
3507
  ]);
3470
- return /* @__PURE__ */ React30.createElement(NetworkComponent, null);
3508
+ return /* @__PURE__ */ React32.createElement(NetworkComponent, null);
3471
3509
  }, "NetworkLoadingIndicator");
3472
3510
 
3473
3511
  // src/modules/network/components/NetworkButton.tsx
3474
3512
  import { NotInterested } from "@mui/icons-material";
3475
3513
  import { Button as Button2 } from "@mui/material";
3476
- import React31 from "react";
3514
+ import React33 from "react";
3477
3515
  var NetworkButton = /* @__PURE__ */ __name(({ disabled, startIcon, ...props }) => {
3478
3516
  const { networkReady } = useOsNetwork();
3479
- return /* @__PURE__ */ React31.createElement(Button2, {
3517
+ return /* @__PURE__ */ React33.createElement(Button2, {
3480
3518
  disabled: disabled || !networkReady,
3481
- startIcon: /* @__PURE__ */ React31.createElement(React31.Fragment, null, startIcon, networkReady === false ? /* @__PURE__ */ React31.createElement(NotInterested, null) : null),
3519
+ startIcon: /* @__PURE__ */ React33.createElement(React33.Fragment, null, startIcon, networkReady === false ? /* @__PURE__ */ React33.createElement(NotInterested, null) : null),
3482
3520
  ...props
3483
3521
  });
3484
3522
  }, "NetworkButton");
@@ -3486,35 +3524,35 @@ var NetworkButton = /* @__PURE__ */ __name(({ disabled, startIcon, ...props }) =
3486
3524
  // src/modules/network/components/NetworkReady.tsx
3487
3525
  import { Typography as Typography9 } from "@mui/material";
3488
3526
  import { FlexCol as FlexCol12 } from "@xylabs/react-flexbox";
3489
- import React32 from "react";
3527
+ import React34 from "react";
3490
3528
  var NetworkReadyFlexBox = /* @__PURE__ */ __name(({ children, skipCheck, ...props }) => {
3491
3529
  const { networkReady } = useOsNetwork();
3492
- return /* @__PURE__ */ React32.createElement(React32.Fragment, null, networkReady || skipCheck ? children : /* @__PURE__ */ React32.createElement(FlexCol12, {
3530
+ return /* @__PURE__ */ React34.createElement(React34.Fragment, null, networkReady || skipCheck ? children : /* @__PURE__ */ React34.createElement(FlexCol12, {
3493
3531
  height: "100%",
3494
3532
  ...props
3495
- }, /* @__PURE__ */ React32.createElement(LoadingOsLogo, {
3533
+ }, /* @__PURE__ */ React34.createElement(LoadingOsLogo, {
3496
3534
  widthInPixels: 100,
3497
3535
  busy: true
3498
- }), /* @__PURE__ */ React32.createElement(Typography9, {
3536
+ }), /* @__PURE__ */ React34.createElement(Typography9, {
3499
3537
  fontFamily: "monospace"
3500
3538
  }, "Loading XYO Name Service...")));
3501
3539
  }, "NetworkReadyFlexBox");
3502
3540
 
3503
3541
  // src/DappPage.tsx
3504
3542
  var DappTitle = /* @__PURE__ */ __name(({ subtitle, title, ...props }) => {
3505
- return title ? /* @__PURE__ */ React33.createElement(FlexCol13, {
3543
+ return title ? /* @__PURE__ */ React35.createElement(FlexCol13, {
3506
3544
  alignItems: "flex-start",
3507
3545
  gap: 1,
3508
3546
  ...props
3509
- }, /* @__PURE__ */ React33.createElement(Typography10, {
3547
+ }, /* @__PURE__ */ React35.createElement(Typography10, {
3510
3548
  variant: "h3"
3511
- }, /* @__PURE__ */ React33.createElement("b", null, title)), /* @__PURE__ */ React33.createElement(Typography10, {
3549
+ }, /* @__PURE__ */ React35.createElement("b", null, title)), /* @__PURE__ */ React35.createElement(Typography10, {
3512
3550
  gutterBottom: true,
3513
3551
  variant: "subtitle2"
3514
3552
  }, subtitle)) : null;
3515
3553
  }, "DappTitle");
3516
3554
  var InnerDappPage = /* @__PURE__ */ __name(({ noScroll, children, subtitle, title, sx, ...props }) => {
3517
- return /* @__PURE__ */ React33.createElement(FlexCol13, {
3555
+ return /* @__PURE__ */ React35.createElement(FlexCol13, {
3518
3556
  id: "innerPage",
3519
3557
  sx: {
3520
3558
  margin: 2,
@@ -3524,26 +3562,26 @@ var InnerDappPage = /* @__PURE__ */ __name(({ noScroll, children, subtitle, titl
3524
3562
  alignItems: "stretch",
3525
3563
  justifyContent: "flex-start",
3526
3564
  ...props
3527
- }, title ? /* @__PURE__ */ React33.createElement(DappTitle, {
3565
+ }, title ? /* @__PURE__ */ React35.createElement(DappTitle, {
3528
3566
  subtitle,
3529
3567
  title,
3530
3568
  marginX: 1
3531
3569
  }) : null, children);
3532
3570
  }, "InnerDappPage");
3533
3571
  var DappPage = /* @__PURE__ */ __name(({ checkNetwork, noScroll, subtitle, title, container, rollbar, ...props }) => {
3534
- return /* @__PURE__ */ React33.createElement(ThrownErrorBoundary, {
3535
- errorComponent: /* @__PURE__ */ __name((error, boundaryName) => /* @__PURE__ */ React33.createElement(ErrorRenderWithSupportDefault, {
3572
+ return /* @__PURE__ */ React35.createElement(ThrownErrorBoundary, {
3573
+ errorComponent: /* @__PURE__ */ __name((error, boundaryName) => /* @__PURE__ */ React35.createElement(ErrorRenderWithSupportDefault, {
3536
3574
  scope: boundaryName,
3537
3575
  error
3538
3576
  }), "errorComponent"),
3539
3577
  rollbar,
3540
3578
  scope: "DappPage"
3541
- }, /* @__PURE__ */ React33.createElement(NetworkReadyFlexBox, {
3579
+ }, /* @__PURE__ */ React35.createElement(NetworkReadyFlexBox, {
3542
3580
  skipCheck: !checkNetwork
3543
- }, container ? /* @__PURE__ */ React33.createElement(Container3, {
3581
+ }, container ? /* @__PURE__ */ React35.createElement(Container3, {
3544
3582
  disableGutters: true,
3545
3583
  maxWidth: container === true ? "md" : container
3546
- }, noScroll ? /* @__PURE__ */ React33.createElement(FlexCol13, {
3584
+ }, noScroll ? /* @__PURE__ */ React35.createElement(FlexCol13, {
3547
3585
  sx: {
3548
3586
  position: "absolute",
3549
3587
  top: 0,
@@ -3551,23 +3589,23 @@ var DappPage = /* @__PURE__ */ __name(({ checkNetwork, noScroll, subtitle, title
3551
3589
  right: 0,
3552
3590
  bottom: 0
3553
3591
  }
3554
- }, /* @__PURE__ */ React33.createElement(InnerDappPage, {
3592
+ }, /* @__PURE__ */ React35.createElement(InnerDappPage, {
3555
3593
  noScroll,
3556
3594
  title,
3557
3595
  subtitle,
3558
3596
  ...props,
3559
3597
  flexGrow: 1
3560
- })) : /* @__PURE__ */ React33.createElement(FlexCol13, {
3598
+ })) : /* @__PURE__ */ React35.createElement(FlexCol13, {
3561
3599
  width: "100%",
3562
3600
  height: "100%",
3563
3601
  alignItems: "stretch"
3564
- }, /* @__PURE__ */ React33.createElement(InnerDappPage, {
3602
+ }, /* @__PURE__ */ React35.createElement(InnerDappPage, {
3565
3603
  noScroll,
3566
3604
  title,
3567
3605
  subtitle,
3568
3606
  ...props,
3569
3607
  flexGrow: 1
3570
- }))) : noScroll ? /* @__PURE__ */ React33.createElement(InnerDappPage, {
3608
+ }))) : noScroll ? /* @__PURE__ */ React35.createElement(InnerDappPage, {
3571
3609
  sx: {
3572
3610
  position: "absolute",
3573
3611
  top: 0,
@@ -3580,7 +3618,7 @@ var DappPage = /* @__PURE__ */ __name(({ checkNetwork, noScroll, subtitle, title
3580
3618
  subtitle,
3581
3619
  ...props,
3582
3620
  flexGrow: 1
3583
- }) : /* @__PURE__ */ React33.createElement(InnerDappPage, {
3621
+ }) : /* @__PURE__ */ React35.createElement(InnerDappPage, {
3584
3622
  noScroll,
3585
3623
  title,
3586
3624
  subtitle,
@@ -3592,13 +3630,13 @@ var DappPage = /* @__PURE__ */ __name(({ checkNetwork, noScroll, subtitle, title
3592
3630
  // src/components/Widgets/StackOfWidgets.tsx
3593
3631
  import { alpha as alpha7, Box as Box3, useTheme as useTheme10 } from "@mui/material";
3594
3632
  import { animated as animated2, to as interpolate, useSprings } from "@react-spring/web";
3595
- import React40, { useState as useState18 } from "react";
3633
+ import React42, { useState as useState18 } from "react";
3596
3634
  import { useDrag } from "react-use-gesture";
3597
3635
 
3598
3636
  // src/components/Widgets/Types/BarGraph/HorizontalBarGraph.tsx
3599
3637
  import { Typography as Typography11 } from "@mui/material";
3600
3638
  import { FlexCol as FlexCol14, FlexGrowRow as FlexGrowRow6 } from "@xylabs/react-flexbox";
3601
- import React34 from "react";
3639
+ import React36 from "react";
3602
3640
 
3603
3641
  // src/components/Widgets/Types/BarGraph/StyledLinearProgress.tsx
3604
3642
  import { alpha as alpha5, LinearProgress, styled as styled7 } from "@mui/material";
@@ -3656,25 +3694,25 @@ var HorizontalBarGraph = /* @__PURE__ */ __name(({ items = sampleData, ...props
3656
3694
  });
3657
3695
  console.log(itemsSortedByValue);
3658
3696
  const topValue = itemsSortedByValue[0].value;
3659
- return /* @__PURE__ */ React34.createElement(FlexCol14, {
3697
+ return /* @__PURE__ */ React36.createElement(FlexCol14, {
3660
3698
  alignItems: "stretch",
3661
3699
  gap: 0.5,
3662
3700
  ...props
3663
3701
  }, items.slice(0, 5).map((item, index) => (
3664
3702
  // eslint-disable-next-line @eslint-react/no-array-index-key
3665
- /* @__PURE__ */ React34.createElement(FlexCol14, {
3703
+ /* @__PURE__ */ React36.createElement(FlexCol14, {
3666
3704
  alignItems: "stretch",
3667
3705
  key: index
3668
- }, /* @__PURE__ */ React34.createElement(FlexGrowRow6, {
3706
+ }, /* @__PURE__ */ React36.createElement(FlexGrowRow6, {
3669
3707
  justifyContent: "space-between"
3670
- }, /* @__PURE__ */ React34.createElement(Typography11, {
3708
+ }, /* @__PURE__ */ React36.createElement(Typography11, {
3671
3709
  variant: "caption",
3672
3710
  maxWidth: "50%",
3673
3711
  noWrap: true
3674
- }, item.name), /* @__PURE__ */ React34.createElement(Typography11, {
3712
+ }, item.name), /* @__PURE__ */ React36.createElement(Typography11, {
3675
3713
  variant: "caption",
3676
3714
  maxWidth: "50%"
3677
- }, item.value)), /* @__PURE__ */ React34.createElement(StyledLinearProgress, {
3715
+ }, item.value)), /* @__PURE__ */ React36.createElement(StyledLinearProgress, {
3678
3716
  color: "primary",
3679
3717
  value: item.value / (topValue * 1.25) * 100,
3680
3718
  variant: "determinate"
@@ -3685,7 +3723,7 @@ var HorizontalBarGraph = /* @__PURE__ */ __name(({ items = sampleData, ...props
3685
3723
  // src/components/Widgets/Types/DataColumns/TwoColTwoStat.tsx
3686
3724
  import { Typography as Typography12, useTheme as useTheme9 } from "@mui/material";
3687
3725
  import { FlexCol as FlexCol15, FlexGrowRow as FlexGrowRow7 } from "@xylabs/react-flexbox";
3688
- import React35, { useEffect as useEffect18 } from "react";
3726
+ import React37, { useEffect as useEffect18 } from "react";
3689
3727
  var MAX_LENGTH = 2;
3690
3728
  var validateProps = /* @__PURE__ */ __name((props) => {
3691
3729
  if (props.length > MAX_LENGTH) {
@@ -3699,29 +3737,29 @@ var TwoColTwoStat = /* @__PURE__ */ __name(({ items, ...props }) => {
3699
3737
  }, [
3700
3738
  items
3701
3739
  ]);
3702
- return /* @__PURE__ */ React35.createElement(FlexGrowRow7, {
3740
+ return /* @__PURE__ */ React37.createElement(FlexGrowRow7, {
3703
3741
  gap: 2,
3704
3742
  ...props
3705
3743
  }, items.map((item, index) => (
3706
3744
  // eslint-disable-next-line @eslint-react/no-array-index-key
3707
- /* @__PURE__ */ React35.createElement(FlexCol15, {
3745
+ /* @__PURE__ */ React37.createElement(FlexCol15, {
3708
3746
  key: `stat-${index}-${item.unit}`,
3709
3747
  flexGrow: 1,
3710
3748
  alignItems: "start"
3711
- }, /* @__PURE__ */ React35.createElement(Typography12, {
3749
+ }, /* @__PURE__ */ React37.createElement(Typography12, {
3712
3750
  variant: "h2",
3713
3751
  fontWeight: theme.typography.fontWeightMedium
3714
- }, item.rawInsightValue), /* @__PURE__ */ React35.createElement(Typography12, {
3752
+ }, item.rawInsightValue), /* @__PURE__ */ React37.createElement(Typography12, {
3715
3753
  variant: "body2"
3716
3754
  }, item.subtitle))
3717
3755
  )));
3718
3756
  }, "TwoColTwoStat");
3719
3757
 
3720
3758
  // src/components/Widgets/Types/Examples/BarGraph.tsx
3721
- import React36 from "react";
3759
+ import React38 from "react";
3722
3760
  var ExampleBarGraphWidget = /* @__PURE__ */ __name(() => {
3723
- return /* @__PURE__ */ React36.createElement(WidgetCard, {
3724
- widgetContent: /* @__PURE__ */ React36.createElement(HorizontalBarGraph, null),
3761
+ return /* @__PURE__ */ React38.createElement(WidgetCard, {
3762
+ widgetContent: /* @__PURE__ */ React38.createElement(HorizontalBarGraph, null),
3725
3763
  widgetName: "Friend Locations",
3726
3764
  timeOfData: 1715713478,
3727
3765
  widgetPath: "/profile"
@@ -3729,13 +3767,13 @@ var ExampleBarGraphWidget = /* @__PURE__ */ __name(() => {
3729
3767
  }, "ExampleBarGraphWidget");
3730
3768
 
3731
3769
  // src/components/Widgets/Types/Examples/BooleanTable.tsx
3732
- import React38 from "react";
3770
+ import React40 from "react";
3733
3771
 
3734
3772
  // src/components/Widgets/Types/Tables/BooleanTable.tsx
3735
3773
  import { CircleRounded } from "@mui/icons-material";
3736
3774
  import { alpha as alpha6, Paper as Paper2, styled as styled8, TableRow, Typography as Typography13 } from "@mui/material";
3737
3775
  import { FlexCol as FlexCol16, FlexGrowRow as FlexGrowRow8, FlexRow as FlexRow9 } from "@xylabs/react-flexbox";
3738
- import React37 from "react";
3776
+ import React39 from "react";
3739
3777
  var sampleData2 = [
3740
3778
  {
3741
3779
  name: "@arietrouw",
@@ -3783,27 +3821,27 @@ var DefaultFalseOutput = styled8(CircleRounded, {
3783
3821
  fill: alpha6(theme.palette.text.disabled, 0.5),
3784
3822
  fontSize: "10px"
3785
3823
  }));
3786
- var defaultTrueOutput = /* @__PURE__ */ React37.createElement(DefaultTrueOutput, null);
3787
- var defaultFalseOutput = /* @__PURE__ */ React37.createElement(DefaultFalseOutput, null);
3824
+ var defaultTrueOutput = /* @__PURE__ */ React39.createElement(DefaultTrueOutput, null);
3825
+ var defaultFalseOutput = /* @__PURE__ */ React39.createElement(DefaultFalseOutput, null);
3788
3826
  var BooleanTable = /* @__PURE__ */ __name(({ items = sampleData2, tableHeaders, trueOutput = defaultTrueOutput, falseOutput = defaultFalseOutput, ...props }) => {
3789
- return /* @__PURE__ */ React37.createElement(FlexCol16, {
3827
+ return /* @__PURE__ */ React39.createElement(FlexCol16, {
3790
3828
  alignItems: "stretch",
3791
3829
  ...props
3792
- }, /* @__PURE__ */ React37.createElement(FlexRow9, {
3830
+ }, /* @__PURE__ */ React39.createElement(FlexRow9, {
3793
3831
  paddingBottom: 0.5,
3794
3832
  justifyContent: "space-between"
3795
- }, tableHeaders.map((name) => /* @__PURE__ */ React37.createElement(StyledTableColumnTitle, {
3833
+ }, tableHeaders.map((name) => /* @__PURE__ */ React39.createElement(StyledTableColumnTitle, {
3796
3834
  key: name,
3797
3835
  variant: "caption"
3798
- }, name))), /* @__PURE__ */ React37.createElement(FlexCol16, {
3836
+ }, name))), /* @__PURE__ */ React39.createElement(FlexCol16, {
3799
3837
  alignItems: "stretch",
3800
3838
  gap: 0.25
3801
- }, items.slice(0, 4).map((item, index) => /* @__PURE__ */ React37.createElement(TableRow, {
3839
+ }, items.slice(0, 4).map((item, index) => /* @__PURE__ */ React39.createElement(TableRow, {
3802
3840
  key: index
3803
- }, /* @__PURE__ */ React37.createElement(FlexGrowRow8, {
3841
+ }, /* @__PURE__ */ React39.createElement(FlexGrowRow8, {
3804
3842
  flexGrow: 1,
3805
3843
  justifyContent: "space-between"
3806
- }, /* @__PURE__ */ React37.createElement(Typography13, {
3844
+ }, /* @__PURE__ */ React39.createElement(Typography13, {
3807
3845
  variant: "caption",
3808
3846
  noWrap: true,
3809
3847
  maxWidth: "70%"
@@ -3812,8 +3850,8 @@ var BooleanTable = /* @__PURE__ */ __name(({ items = sampleData2, tableHeaders,
3812
3850
 
3813
3851
  // src/components/Widgets/Types/Examples/BooleanTable.tsx
3814
3852
  var ExampleBooleanTableWidget = /* @__PURE__ */ __name(() => {
3815
- return /* @__PURE__ */ React38.createElement(WidgetCard, {
3816
- widgetContent: /* @__PURE__ */ React38.createElement(BooleanTable, {
3853
+ return /* @__PURE__ */ React40.createElement(WidgetCard, {
3854
+ widgetContent: /* @__PURE__ */ React40.createElement(BooleanTable, {
3817
3855
  items: [
3818
3856
  {
3819
3857
  name: "@arietrouw",
@@ -3848,10 +3886,10 @@ var ExampleBooleanTableWidget = /* @__PURE__ */ __name(() => {
3848
3886
  }, "ExampleBooleanTableWidget");
3849
3887
 
3850
3888
  // src/components/Widgets/Types/Examples/TwoColTwoStat.tsx
3851
- import React39 from "react";
3889
+ import React41 from "react";
3852
3890
  var ExampleTwoColTwoStatWidget = /* @__PURE__ */ __name(() => {
3853
- return /* @__PURE__ */ React39.createElement(WidgetCard, {
3854
- widgetContent: /* @__PURE__ */ React39.createElement(TwoColTwoStat, {
3891
+ return /* @__PURE__ */ React41.createElement(WidgetCard, {
3892
+ widgetContent: /* @__PURE__ */ React41.createElement(TwoColTwoStat, {
3855
3893
  items: [
3856
3894
  {
3857
3895
  rawInsightValue: 218,
@@ -3875,13 +3913,13 @@ var ExampleTwoColTwoStatWidget = /* @__PURE__ */ __name(() => {
3875
3913
 
3876
3914
  // src/components/Widgets/StackOfWidgets.tsx
3877
3915
  var cards = [
3878
- /* @__PURE__ */ React40.createElement(ExampleBarGraphWidget, {
3916
+ /* @__PURE__ */ React42.createElement(ExampleBarGraphWidget, {
3879
3917
  key: "bar-graph"
3880
3918
  }),
3881
- /* @__PURE__ */ React40.createElement(ExampleBooleanTableWidget, {
3919
+ /* @__PURE__ */ React42.createElement(ExampleBooleanTableWidget, {
3882
3920
  key: "boolean-table"
3883
3921
  }),
3884
- /* @__PURE__ */ React40.createElement(ExampleTwoColTwoStatWidget, {
3922
+ /* @__PURE__ */ React42.createElement(ExampleTwoColTwoStatWidget, {
3885
3923
  key: "two-column"
3886
3924
  })
3887
3925
  ];
@@ -3932,7 +3970,7 @@ function Deck() {
3932
3970
  api.start((i) => to(i));
3933
3971
  }, 600);
3934
3972
  });
3935
- return /* @__PURE__ */ React40.createElement(React40.Fragment, null, props.map(({ x, y, rot, scale }, i) => /* @__PURE__ */ React40.createElement(animated2.div, {
3973
+ return /* @__PURE__ */ React42.createElement(React42.Fragment, null, props.map(({ x, y, rot, scale }, i) => /* @__PURE__ */ React42.createElement(animated2.div, {
3936
3974
  // eslint-disable-next-line @eslint-react/no-array-index-key
3937
3975
  key: i,
3938
3976
  style: {
@@ -3947,7 +3985,7 @@ function Deck() {
3947
3985
  x,
3948
3986
  y
3949
3987
  }
3950
- }, /* @__PURE__ */ React40.createElement(animated2.div, {
3988
+ }, /* @__PURE__ */ React42.createElement(animated2.div, {
3951
3989
  ...bind(i),
3952
3990
  style: {
3953
3991
  // WebkitBackdropFilter: 'blur(10px)',
@@ -3972,7 +4010,7 @@ function Deck() {
3972
4010
  }
3973
4011
  __name(Deck, "Deck");
3974
4012
  var StackOfWidgets = /* @__PURE__ */ __name(() => {
3975
- return /* @__PURE__ */ React40.createElement(Box3, {
4013
+ return /* @__PURE__ */ React42.createElement(Box3, {
3976
4014
  sx: {
3977
4015
  alignItems: "center",
3978
4016
  cursor: "pointer",
@@ -3981,30 +4019,30 @@ var StackOfWidgets = /* @__PURE__ */ __name(() => {
3981
4019
  justifyContent: "center",
3982
4020
  width: "300px"
3983
4021
  }
3984
- }, /* @__PURE__ */ React40.createElement(Deck, null));
4022
+ }, /* @__PURE__ */ React42.createElement(Deck, null));
3985
4023
  }, "StackOfWidgets");
3986
4024
 
3987
4025
  // src/components/Widgets/WidgetCardExamples.tsx
3988
4026
  var WidgetCardExamples = /* @__PURE__ */ __name(() => {
3989
4027
  const { darkMode } = useColorSchemeEx4();
3990
- return /* @__PURE__ */ React41.createElement(DappPage, {
4028
+ return /* @__PURE__ */ React43.createElement(DappPage, {
3991
4029
  sx: {
3992
4030
  backgroundImage: darkMode ? `url(${default18})` : `url(${default19})`,
3993
4031
  backgroundSize: "cover"
3994
4032
  },
3995
4033
  container: "xl",
3996
4034
  title: "Example Widget Cards"
3997
- }, /* @__PURE__ */ React41.createElement(Stack2, {
4035
+ }, /* @__PURE__ */ React43.createElement(Stack2, {
3998
4036
  gap: 2,
3999
4037
  flexDirection: "row",
4000
4038
  flexWrap: "wrap"
4001
- }, /* @__PURE__ */ React41.createElement(ExampleTwoColTwoStatWidget, null), /* @__PURE__ */ React41.createElement(ExampleBarGraphWidget, null), /* @__PURE__ */ React41.createElement(ExampleBooleanTableWidget, null), /* @__PURE__ */ React41.createElement(StackOfWidgets, null)));
4039
+ }, /* @__PURE__ */ React43.createElement(ExampleTwoColTwoStatWidget, null), /* @__PURE__ */ React43.createElement(ExampleBarGraphWidget, null), /* @__PURE__ */ React43.createElement(ExampleBooleanTableWidget, null), /* @__PURE__ */ React43.createElement(StackOfWidgets, null)));
4002
4040
  }, "WidgetCardExamples");
4003
4041
 
4004
4042
  // src/DappPathSwitcher.tsx
4005
4043
  import { animated as animated3, useTransition } from "@react-spring/web";
4006
- import { ErrorRender as ErrorRender4 } from "@xylabs/react-error";
4007
- import React42 from "react";
4044
+ import { ErrorRender as ErrorRender5 } from "@xylabs/react-error";
4045
+ import React44 from "react";
4008
4046
  var DappPathSwitcher = /* @__PURE__ */ __name(({ activePath, pathToComponent }) => {
4009
4047
  const transitions = useTransition(activePath, {
4010
4048
  enter: {
@@ -4022,7 +4060,7 @@ var DappPathSwitcher = /* @__PURE__ */ __name(({ activePath, pathToComponent })
4022
4060
  });
4023
4061
  const possibleZIndex = pathToComponent?.findIndex((item) => item.path === activePath);
4024
4062
  const zIndex = possibleZIndex !== -1 && possibleZIndex !== void 0 ? possibleZIndex : 1;
4025
- return /* @__PURE__ */ React42.createElement(React42.Fragment, null, transitions((transitionProps, activePath2) => /* @__PURE__ */ React42.createElement(animated3.div, {
4063
+ return /* @__PURE__ */ React44.createElement(React44.Fragment, null, transitions((transitionProps, activePathRef) => /* @__PURE__ */ React44.createElement(animated3.div, {
4026
4064
  style: {
4027
4065
  ...transitionProps,
4028
4066
  alignItems: "stretch",
@@ -4039,10 +4077,10 @@ var DappPathSwitcher = /* @__PURE__ */ __name(({ activePath, pathToComponent })
4039
4077
  zIndex
4040
4078
  }
4041
4079
  }, (() => {
4042
- const activeIndex = pathToComponent?.findIndex(({ path: componentPath }) => activePath2 === componentPath);
4080
+ const activeIndex = pathToComponent?.findIndex(({ path: componentPath }) => activePathRef === componentPath);
4043
4081
  const activeItem = pathToComponent && activeIndex !== -1 && activeIndex !== void 0 ? pathToComponent[activeIndex] : void 0;
4044
- return activeItem ? activeItem.component : /* @__PURE__ */ React42.createElement(ErrorRender4, {
4045
- error: new Error(`No component found for path: ${activePath2}`),
4082
+ return activeItem ? activeItem.component : /* @__PURE__ */ React44.createElement(ErrorRender5, {
4083
+ error: new Error(`No component found for path: ${activePathRef}`),
4046
4084
  scope: "DappPathSwitcher"
4047
4085
  });
4048
4086
  })())));
@@ -4050,7 +4088,7 @@ var DappPathSwitcher = /* @__PURE__ */ __name(({ activePath, pathToComponent })
4050
4088
 
4051
4089
  // src/dapps/shared/accounts/components/AnimatedComponents/GenericAnimations/ShiftAnimation.tsx
4052
4090
  import { animated as animated4, useSpring as useSpring2 } from "@react-spring/web";
4053
- import React43, { useEffect as useEffect19, useState as useState19 } from "react";
4091
+ import React45, { useEffect as useEffect19, useState as useState19 } from "react";
4054
4092
  var MovementData = {
4055
4093
  down: [
4056
4094
  {
@@ -4144,7 +4182,7 @@ var ShiftAnimation = /* @__PURE__ */ __name(({ startAnimation = false, animation
4144
4182
  }, [
4145
4183
  isShifted
4146
4184
  ]);
4147
- return /* @__PURE__ */ React43.createElement(animated4.div, {
4185
+ return /* @__PURE__ */ React45.createElement(animated4.div, {
4148
4186
  style: anim
4149
4187
  }, children);
4150
4188
  }, "ShiftAnimation");
@@ -4152,10 +4190,10 @@ var ShiftAnimation = /* @__PURE__ */ __name(({ startAnimation = false, animation
4152
4190
  // src/dapps/shared/accounts/components/AnimatedComponents/IconAnimations/TwoToneBulletPoint.tsx
4153
4191
  import { FiberManualRecordRounded } from "@mui/icons-material";
4154
4192
  import { alpha as alpha8, Box as Box4, useTheme as useTheme11 } from "@mui/material";
4155
- import React44 from "react";
4193
+ import React46 from "react";
4156
4194
  var TwoToneBulletPoint = /* @__PURE__ */ __name((props) => {
4157
4195
  const theme = useTheme11();
4158
- return /* @__PURE__ */ React44.createElement(Box4, props, /* @__PURE__ */ React44.createElement(FiberManualRecordRounded, {
4196
+ return /* @__PURE__ */ React46.createElement(Box4, props, /* @__PURE__ */ React46.createElement(FiberManualRecordRounded, {
4159
4197
  fontSize: "small",
4160
4198
  sx: {
4161
4199
  "&:hover": {
@@ -4171,20 +4209,20 @@ var TwoToneBulletPoint = /* @__PURE__ */ __name((props) => {
4171
4209
 
4172
4210
  // src/dapps/shared/accounts/components/AnimatedComponents/IconAnimations/TwoToneBulletPointList.tsx
4173
4211
  import { FlexCol as FlexCol17, FlexGrowRow as FlexGrowRow9 } from "@xylabs/react-flexbox";
4174
- import React45 from "react";
4212
+ import React47 from "react";
4175
4213
  var TwoToneBulletPointList = /* @__PURE__ */ __name(({ list }) => {
4176
- return /* @__PURE__ */ React45.createElement(FlexCol17, {
4214
+ return /* @__PURE__ */ React47.createElement(FlexCol17, {
4177
4215
  alignItems: "flex-start",
4178
4216
  gap: 1
4179
4217
  }, list.map((item, index) => {
4180
4218
  return (
4181
4219
  // eslint-disable-next-line @eslint-react/no-array-index-key
4182
- /* @__PURE__ */ React45.createElement(FlexGrowRow9, {
4220
+ /* @__PURE__ */ React47.createElement(FlexGrowRow9, {
4183
4221
  key: index + "bulletPointList",
4184
4222
  alignItems: "flex-start",
4185
4223
  justifyContent: "flex-start",
4186
4224
  gap: 1
4187
- }, /* @__PURE__ */ React45.createElement(TwoToneBulletPoint, {
4225
+ }, /* @__PURE__ */ React47.createElement(TwoToneBulletPoint, {
4188
4226
  marginTop: "4px"
4189
4227
  }), item)
4190
4228
  );
@@ -4194,7 +4232,7 @@ var TwoToneBulletPointList = /* @__PURE__ */ __name(({ list }) => {
4194
4232
  // src/dapps/shared/accounts/components/InputFields/CoinbaseEmail.tsx
4195
4233
  import { FormControl, TextField } from "@mui/material";
4196
4234
  import { LabeledTextFieldWrapper } from "@xyo-network/react-shared";
4197
- import React46, { useState as useState20 } from "react";
4235
+ import React48, { useState as useState20 } from "react";
4198
4236
  var CoinbaseEmailInput = /* @__PURE__ */ __name(({ existingEmail, ...props }) => {
4199
4237
  const [email, setEmail] = useState20(existingEmail);
4200
4238
  const [valid, setValid] = useState20();
@@ -4206,11 +4244,11 @@ var CoinbaseEmailInput = /* @__PURE__ */ __name(({ existingEmail, ...props }) =>
4206
4244
  setValid(!!emailFromEvent);
4207
4245
  setEmail(emailFromEvent);
4208
4246
  }, "handleChange");
4209
- return /* @__PURE__ */ React46.createElement(FormControl, {
4247
+ return /* @__PURE__ */ React48.createElement(FormControl, {
4210
4248
  fullWidth: true
4211
- }, /* @__PURE__ */ React46.createElement(LabeledTextFieldWrapper, {
4249
+ }, /* @__PURE__ */ React48.createElement(LabeledTextFieldWrapper, {
4212
4250
  label: "Primary Cryptowallet"
4213
- }, /* @__PURE__ */ React46.createElement(TextField, {
4251
+ }, /* @__PURE__ */ React48.createElement(TextField, {
4214
4252
  fullWidth: true,
4215
4253
  variant: "filled",
4216
4254
  error: valid === false,
@@ -4226,7 +4264,7 @@ var CoinbaseEmailInput = /* @__PURE__ */ __name(({ existingEmail, ...props }) =>
4226
4264
  // src/dapps/shared/accounts/components/InputFields/PrimaryCryptowallet.tsx
4227
4265
  import { FormControl as FormControl2, TextField as TextField2 } from "@mui/material";
4228
4266
  import { LabeledTextFieldWrapper as LabeledTextFieldWrapper2 } from "@xyo-network/react-shared";
4229
- import React47, { useState as useState21 } from "react";
4267
+ import React49, { useState as useState21 } from "react";
4230
4268
  var PrimaryCryptoWalletInput = /* @__PURE__ */ __name(({ existingPrimaryCryptoWallet, ...props }) => {
4231
4269
  const [primaryWallet, setPrimaryWallet] = useState21(existingPrimaryCryptoWallet);
4232
4270
  const [valid, setValid] = useState21();
@@ -4238,11 +4276,11 @@ var PrimaryCryptoWalletInput = /* @__PURE__ */ __name(({ existingPrimaryCryptoWa
4238
4276
  setValid(!!nameFromEvent);
4239
4277
  setPrimaryWallet(nameFromEvent);
4240
4278
  }, "handleChange");
4241
- return /* @__PURE__ */ React47.createElement(FormControl2, {
4279
+ return /* @__PURE__ */ React49.createElement(FormControl2, {
4242
4280
  fullWidth: true
4243
- }, /* @__PURE__ */ React47.createElement(LabeledTextFieldWrapper2, {
4281
+ }, /* @__PURE__ */ React49.createElement(LabeledTextFieldWrapper2, {
4244
4282
  label: "Primary Cryptowallet"
4245
- }, /* @__PURE__ */ React47.createElement(TextField2, {
4283
+ }, /* @__PURE__ */ React49.createElement(TextField2, {
4246
4284
  fullWidth: true,
4247
4285
  variant: "filled",
4248
4286
  error: valid === false,
@@ -4259,7 +4297,7 @@ var PrimaryCryptoWalletInput = /* @__PURE__ */ __name(({ existingPrimaryCryptoWa
4259
4297
  // src/dapps/shared/accounts/components/InputFields/SecondaryCryptowallet.tsx
4260
4298
  import { FormControl as FormControl3, TextField as TextField3 } from "@mui/material";
4261
4299
  import { LabeledTextFieldWrapper as LabeledTextFieldWrapper3 } from "@xyo-network/react-shared";
4262
- import React48, { useState as useState22 } from "react";
4300
+ import React50, { useState as useState22 } from "react";
4263
4301
  var SecondaryCryptoWalletInput = /* @__PURE__ */ __name(({ existingSecondaryCryptoWallet, ...props }) => {
4264
4302
  const [secondaryWallet, setSecondaryWallet] = useState22(existingSecondaryCryptoWallet);
4265
4303
  const [valid, setValid] = useState22();
@@ -4271,11 +4309,11 @@ var SecondaryCryptoWalletInput = /* @__PURE__ */ __name(({ existingSecondaryCryp
4271
4309
  setValid(!!walletFromEvent);
4272
4310
  setSecondaryWallet(walletFromEvent);
4273
4311
  }, "handleChange");
4274
- return /* @__PURE__ */ React48.createElement(FormControl3, {
4312
+ return /* @__PURE__ */ React50.createElement(FormControl3, {
4275
4313
  fullWidth: true
4276
- }, /* @__PURE__ */ React48.createElement(LabeledTextFieldWrapper3, {
4314
+ }, /* @__PURE__ */ React50.createElement(LabeledTextFieldWrapper3, {
4277
4315
  label: "Secondary Cryptowallet"
4278
- }, /* @__PURE__ */ React48.createElement(TextField3, {
4316
+ }, /* @__PURE__ */ React50.createElement(TextField3, {
4279
4317
  variant: "filled",
4280
4318
  fullWidth: true,
4281
4319
  error: valid === false,
@@ -4292,25 +4330,25 @@ var SecondaryCryptoWalletInput = /* @__PURE__ */ __name(({ existingSecondaryCryp
4292
4330
  // src/dapps/shared/accounts/components/PaymentMethods.tsx
4293
4331
  import { Grid2 } from "@mui/material";
4294
4332
  import { FormGroupCreditCardProvider } from "@xyo-network/react-form-credit-card";
4295
- import React50 from "react";
4333
+ import React52 from "react";
4296
4334
 
4297
4335
  // src/dapps/shared/accounts/components/AccountCard.tsx
4298
4336
  import { Card as Card4, CardContent as CardContent4, Divider as Divider5, Typography as Typography14 } from "@mui/material";
4299
4337
  import { FlexGrowCol as FlexGrowCol4, FlexGrowRow as FlexGrowRow10 } from "@xylabs/react-flexbox";
4300
- import React49 from "react";
4338
+ import React51 from "react";
4301
4339
  var AccountCard = /* @__PURE__ */ __name(({ items, ...props }) => {
4302
- return /* @__PURE__ */ React49.createElement(Card4, props, /* @__PURE__ */ React49.createElement(CardContent4, null, /* @__PURE__ */ React49.createElement(FlexGrowCol4, {
4340
+ return /* @__PURE__ */ React51.createElement(Card4, props, /* @__PURE__ */ React51.createElement(CardContent4, null, /* @__PURE__ */ React51.createElement(FlexGrowCol4, {
4303
4341
  width: "100%",
4304
4342
  gap: 2
4305
4343
  }, items.map((item, index) => {
4306
4344
  return (
4307
4345
  // eslint-disable-next-line @eslint-react/no-array-index-key
4308
- /* @__PURE__ */ React49.createElement(FlexGrowCol4, {
4346
+ /* @__PURE__ */ React51.createElement(FlexGrowCol4, {
4309
4347
  gap: 2,
4310
4348
  key: index,
4311
4349
  width: "100%",
4312
4350
  alignItems: "stretch"
4313
- }, /* @__PURE__ */ React49.createElement(FlexGrowRow10, {
4351
+ }, /* @__PURE__ */ React51.createElement(FlexGrowRow10, {
4314
4352
  sx: {
4315
4353
  alignItems: "stretch",
4316
4354
  flexDirection: {
@@ -4320,7 +4358,7 @@ var AccountCard = /* @__PURE__ */ __name(({ items, ...props }) => {
4320
4358
  justifyContent: "space-between"
4321
4359
  },
4322
4360
  gap: 2
4323
- }, /* @__PURE__ */ React49.createElement(FlexGrowCol4, {
4361
+ }, /* @__PURE__ */ React51.createElement(FlexGrowCol4, {
4324
4362
  alignItems: "flex-start",
4325
4363
  width: "100%",
4326
4364
  sx: {
@@ -4329,13 +4367,13 @@ var AccountCard = /* @__PURE__ */ __name(({ items, ...props }) => {
4329
4367
  xs: "100%"
4330
4368
  }
4331
4369
  }
4332
- }, /* @__PURE__ */ React49.createElement(Typography14, {
4370
+ }, /* @__PURE__ */ React51.createElement(Typography14, {
4333
4371
  variant: "h5",
4334
4372
  gutterBottom: true
4335
- }, item.title), /* @__PURE__ */ React49.createElement(Typography14, {
4373
+ }, item.title), /* @__PURE__ */ React51.createElement(Typography14, {
4336
4374
  variant: "body1",
4337
4375
  gutterBottom: true
4338
- }, item.desc)), item?.component), items.length === 1 || index === items.length - 1 ? null : /* @__PURE__ */ React49.createElement(Divider5, {
4376
+ }, item.desc)), item?.component), items.length === 1 || index === items.length - 1 ? null : /* @__PURE__ */ React51.createElement(Divider5, {
4339
4377
  flexItem: true
4340
4378
  }))
4341
4379
  );
@@ -4344,38 +4382,38 @@ var AccountCard = /* @__PURE__ */ __name(({ items, ...props }) => {
4344
4382
 
4345
4383
  // src/dapps/shared/accounts/components/PaymentMethods.tsx
4346
4384
  var PaymentMethods = /* @__PURE__ */ __name(() => {
4347
- return /* @__PURE__ */ React50.createElement(DappPage, {
4385
+ return /* @__PURE__ */ React52.createElement(DappPage, {
4348
4386
  title: "Payment Methods"
4349
- }, /* @__PURE__ */ React50.createElement(Grid2, {
4387
+ }, /* @__PURE__ */ React52.createElement(Grid2, {
4350
4388
  container: true,
4351
4389
  spacing: 3
4352
- }, /* @__PURE__ */ React50.createElement(Grid2, {
4390
+ }, /* @__PURE__ */ React52.createElement(Grid2, {
4353
4391
  size: {
4354
4392
  xs: 12
4355
4393
  }
4356
- }, /* @__PURE__ */ React50.createElement(AccountCard, {
4394
+ }, /* @__PURE__ */ React52.createElement(AccountCard, {
4357
4395
  sx: {
4358
4396
  height: "100%"
4359
4397
  },
4360
4398
  items: [
4361
4399
  {
4362
4400
  // TODO - needs a default implementation
4363
- component: /* @__PURE__ */ React50.createElement(FormGroupCreditCardProvider, null, /* @__PURE__ */ React50.createElement(React50.Fragment, null)),
4401
+ component: /* @__PURE__ */ React52.createElement(FormGroupCreditCardProvider, null, /* @__PURE__ */ React52.createElement(React52.Fragment, null)),
4364
4402
  desc: "Save a credit card to your node to complete credit payments seamlessly.",
4365
4403
  title: "Credit Card"
4366
4404
  },
4367
4405
  {
4368
- component: /* @__PURE__ */ React50.createElement(CoinbaseEmailInput, null),
4406
+ component: /* @__PURE__ */ React52.createElement(CoinbaseEmailInput, null),
4369
4407
  desc: "Use your Coinbase Account receive payments easily.",
4370
4408
  title: "Coinbase Email"
4371
4409
  },
4372
4410
  {
4373
- component: /* @__PURE__ */ React50.createElement(PrimaryCryptoWalletInput, null),
4411
+ component: /* @__PURE__ */ React52.createElement(PrimaryCryptoWalletInput, null),
4374
4412
  desc: "This is the primary crypto wallet on your node.",
4375
4413
  title: "Primary Crypto Wallet"
4376
4414
  },
4377
4415
  {
4378
- component: /* @__PURE__ */ React50.createElement(SecondaryCryptoWalletInput, null),
4416
+ component: /* @__PURE__ */ React52.createElement(SecondaryCryptoWalletInput, null),
4379
4417
  desc: "This is the secondary crypto wallet on your node.",
4380
4418
  title: "Secondary Crypto Wallet"
4381
4419
  }
@@ -4390,18 +4428,18 @@ var isCreditCardInput = isPayloadOfSchemaType(CreditCardInputSchema);
4390
4428
 
4391
4429
  // src/dapps/shared/name-service/DomainIcon.tsx
4392
4430
  import { createSvgIcon } from "@mui/material";
4393
- import React51 from "react";
4394
- var XnsDomainIcon = createSvgIcon(/* @__PURE__ */ React51.createElement("svg", {
4431
+ import React53 from "react";
4432
+ var XnsDomainIcon = createSvgIcon(/* @__PURE__ */ React53.createElement("svg", {
4395
4433
  id: "Layer_1",
4396
4434
  xmlns: "http://www.w3.org/2000/svg",
4397
4435
  viewBox: "0 0 400 400"
4398
- }, /* @__PURE__ */ React51.createElement("path", {
4436
+ }, /* @__PURE__ */ React53.createElement("path", {
4399
4437
  fill: "currentColor",
4400
4438
  d: "M0,314.34V85.34h43.89l99.55,152.67V85.34h43.89v229h-43.89L43.89,161.68v152.67H0Z"
4401
- }), /* @__PURE__ */ React51.createElement("path", {
4439
+ }), /* @__PURE__ */ React53.createElement("path", {
4402
4440
  fill: "currentColor",
4403
4441
  d: "M298.99,319.12c-16.96,0-32.26-3-45.88-8.99-13.62-5.99-24.81-14.58-33.56-25.76-8.75-11.18-14.29-24.52-16.62-40l45.17-6.68c3.18,13.15,9.75,23.27,19.72,30.37,9.96,7.1,21.31,10.65,34.03,10.65,7.1,0,14-1.11,20.67-3.34,6.68-2.23,12.17-5.51,16.46-9.86,4.29-4.35,6.44-9.7,6.44-16.06,0-2.33-.35-4.59-1.03-6.76-.69-2.17-1.83-4.21-3.42-6.12-1.59-1.91-3.84-3.71-6.76-5.41-2.92-1.69-6.6-3.23-11.05-4.61l-59.48-17.49c-4.45-1.27-9.62-3.07-15.5-5.41-5.88-2.33-11.58-5.67-17.1-10.02-5.51-4.35-10.1-10.1-13.76-17.26-3.66-7.16-5.49-16.19-5.49-27.11,0-15.37,3.87-28.15,11.61-38.33,7.74-10.18,18.08-17.76,31.01-22.74,12.93-4.98,27.25-7.42,42.94-7.32,15.8.21,29.9,2.92,42.3,8.11,12.4,5.2,22.79,12.75,31.17,22.66,8.37,9.92,14.42,22.03,18.13,36.34l-46.76,7.95c-1.7-7.42-4.83-13.68-9.38-18.77-4.56-5.09-9.99-8.96-16.3-11.61-6.31-2.65-12.91-4.08-19.8-4.29-6.79-.21-13.17.72-19.16,2.78-5.99,2.07-10.87,5.06-14.63,8.99-3.76,3.92-5.65,8.59-5.65,14,0,4.98,1.54,9.04,4.61,12.17,3.07,3.13,6.94,5.65,11.61,7.55,4.66,1.91,9.44,3.5,14.31,4.77l39.76,10.81c5.94,1.59,12.51,3.68,19.72,6.28,7.21,2.6,14.13,6.2,20.75,10.81,6.62,4.61,12.09,10.68,16.38,18.21,4.29,7.53,6.44,17.07,6.44,28.63,0,12.3-2.57,23.03-7.71,32.2-5.14,9.17-12.06,16.75-20.75,22.74-8.69,5.99-18.53,10.47-29.5,13.44-10.97,2.97-22.29,4.45-33.95,4.45Z"
4404
- }), /* @__PURE__ */ React51.createElement("circle", {
4442
+ }), /* @__PURE__ */ React53.createElement("circle", {
4405
4443
  fill: "#3898e7",
4406
4444
  cx: "372.52",
4407
4445
  cy: "291.63",
@@ -4411,7 +4449,7 @@ var XnsDomainIcon = createSvgIcon(/* @__PURE__ */ React51.createElement("svg", {
4411
4449
  // src/dapps/shared/table/head/components/Head.tsx
4412
4450
  import { InfoOutlined } from "@mui/icons-material";
4413
4451
  import { TableCell, TableHead, Tooltip as Tooltip6 } from "@mui/material";
4414
- import React52 from "react";
4452
+ import React54 from "react";
4415
4453
 
4416
4454
  // src/dapps/shared/table/head/hooks/useVisibleColumns.tsx
4417
4455
  import { useMediaQuery as useMediaQuery2 } from "@mui/material";
@@ -4443,20 +4481,20 @@ var StyledTableRowHeader = styled9(TableRow2, {
4443
4481
  // src/dapps/shared/table/head/components/Head.tsx
4444
4482
  var TableHeadEx = /* @__PURE__ */ __name(({ payloads, ...props }) => {
4445
4483
  const [VisibleTableCells] = useVisibleColumns(payloads);
4446
- return /* @__PURE__ */ React52.createElement(TableHead, props, /* @__PURE__ */ React52.createElement(StyledTableRowHeader, null, VisibleTableCells.map((headCell) => /* @__PURE__ */ React52.createElement(TableCell, {
4484
+ return /* @__PURE__ */ React54.createElement(TableHead, props, /* @__PURE__ */ React54.createElement(StyledTableRowHeader, null, VisibleTableCells.map((headCell) => /* @__PURE__ */ React54.createElement(TableCell, {
4447
4485
  key: headCell.id,
4448
4486
  align: headCell.align ?? "left",
4449
4487
  padding: headCell.disablePadding ? "none" : "normal",
4450
4488
  width: headCell.width ?? "auto"
4451
- }, headCell.tooltip ? /* @__PURE__ */ React52.createElement("span", {
4489
+ }, headCell.tooltip ? /* @__PURE__ */ React54.createElement("span", {
4452
4490
  style: {
4453
4491
  alignItems: "center",
4454
4492
  display: "inline-flex",
4455
4493
  gap: "4px"
4456
4494
  }
4457
- }, headCell.label, /* @__PURE__ */ React52.createElement(Tooltip6, {
4495
+ }, headCell.label, /* @__PURE__ */ React54.createElement(Tooltip6, {
4458
4496
  title: headCell.tooltip
4459
- }, /* @__PURE__ */ React52.createElement(InfoOutlined, {
4497
+ }, /* @__PURE__ */ React54.createElement(InfoOutlined, {
4460
4498
  sx: {
4461
4499
  fontSize: "16px"
4462
4500
  }
@@ -4476,28 +4514,28 @@ var isTableHeadCell = isPayloadOfSchemaType2(TableHeadCellSchema);
4476
4514
  import { ArrowCircleLeftOutlined, ArrowCircleRightOutlined } from "@mui/icons-material";
4477
4515
  import { IconButton as IconButton4, LinearProgress as LinearProgress2 } from "@mui/material";
4478
4516
  import { FlexRow as FlexRow10 } from "@xylabs/react-flexbox";
4479
- import React53 from "react";
4517
+ import React55 from "react";
4480
4518
  var NextIteratorFlexbox = /* @__PURE__ */ __name(({ next: changePage, loading, ...props }) => {
4481
- return /* @__PURE__ */ React53.createElement(FlexRow10, {
4519
+ return /* @__PURE__ */ React55.createElement(FlexRow10, {
4482
4520
  justifyContent: "space-between",
4483
4521
  gap: 2,
4484
4522
  ...props
4485
- }, /* @__PURE__ */ React53.createElement(LinearProgress2, {
4523
+ }, /* @__PURE__ */ React55.createElement(LinearProgress2, {
4486
4524
  sx: {
4487
4525
  display: "flex",
4488
4526
  flexGrow: 1,
4489
4527
  visibility: loading ? "visible" : "hidden"
4490
4528
  }
4491
- }), /* @__PURE__ */ React53.createElement(FlexRow10, null, /* @__PURE__ */ React53.createElement(IconButton4, {
4529
+ }), /* @__PURE__ */ React55.createElement(FlexRow10, null, /* @__PURE__ */ React55.createElement(IconButton4, {
4492
4530
  onClick: /* @__PURE__ */ __name(() => changePage("asc"), "onClick")
4493
- }, /* @__PURE__ */ React53.createElement(ArrowCircleLeftOutlined, null)), /* @__PURE__ */ React53.createElement(IconButton4, {
4531
+ }, /* @__PURE__ */ React55.createElement(ArrowCircleLeftOutlined, null)), /* @__PURE__ */ React55.createElement(IconButton4, {
4494
4532
  onClick: /* @__PURE__ */ __name(() => changePage("desc"), "onClick")
4495
- }, /* @__PURE__ */ React53.createElement(ArrowCircleRightOutlined, null))));
4533
+ }, /* @__PURE__ */ React55.createElement(ArrowCircleRightOutlined, null))));
4496
4534
  }, "NextIteratorFlexbox");
4497
4535
 
4498
4536
  // src/settings/Theme/ThemeProvider.tsx
4499
4537
  import { InvertibleMuiThemeProvider } from "@xylabs/react-invertible-theme";
4500
- import React54, { useMemo as useMemo19 } from "react";
4538
+ import React56, { useMemo as useMemo19 } from "react";
4501
4539
 
4502
4540
  // src/settings/Theme/ThemeCssVars.ts
4503
4541
  import { alpha as alpha9, createTheme, darken as darken2, lighten } from "@mui/material";
@@ -4801,7 +4839,7 @@ var AppOsThemeProvider = /* @__PURE__ */ __name(({ children }) => {
4801
4839
  if (savedValue && validValues.includes(savedValue)) return savedValue;
4802
4840
  return "system";
4803
4841
  }, []);
4804
- return /* @__PURE__ */ React54.createElement(InvertibleMuiThemeProvider, {
4842
+ return /* @__PURE__ */ React56.createElement(InvertibleMuiThemeProvider, {
4805
4843
  theme: ThemeCssVars,
4806
4844
  defaultMode: initialValue
4807
4845
  }, children);
@@ -4843,6 +4881,7 @@ export {
4843
4881
  DappPage,
4844
4882
  DappPathHelpers,
4845
4883
  DappPathSwitcher,
4884
+ DappRendered,
4846
4885
  DappTitle,
4847
4886
  DappWindow,
4848
4887
  DappsRow,
@@ -4883,7 +4922,6 @@ export {
4883
4922
  XyOsUi,
4884
4923
  XyOsUiContext,
4885
4924
  XyOsUiContextProvider,
4886
- decomposeDappSet,
4887
4925
  deriveDappState,
4888
4926
  detectCustomer,
4889
4927
  getApiDomain,
@@ -4913,6 +4951,7 @@ export {
4913
4951
  useDappRegistry,
4914
4952
  useDappSeedPhraseRepository,
4915
4953
  useDebugClick,
4954
+ useDecomposeDapp,
4916
4955
  useDialogState,
4917
4956
  useExposedNode,
4918
4957
  useIntentResourceViews,