@xyo-network/os-react-runtime 5.0.6 → 5.0.8

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.
@@ -478,14 +478,54 @@ var useKernel = /* @__PURE__ */ __name((locator, params) => {
478
478
  return kernelExternalInterface;
479
479
  }, "useKernel");
480
480
 
481
+ // src/modules/Dapp/Alert/RenderErrorWithSupportLink.tsx
482
+ import { ButtonEx } from "@xylabs/react-button";
483
+ import { ErrorAlert } from "@xylabs/react-error";
484
+ import React2, { useEffect as useEffect4 } from "react";
485
+ import { useLocation } from "react-router-dom";
486
+ var ErrorRenderWithSupport = /* @__PURE__ */ __name(({ supportHref = "", supportTo, supportLinkText = "Support", error, onCancel, ...props }) => {
487
+ const location2 = useLocation();
488
+ useEffect4(() => {
489
+ location2.state = {
490
+ from: {
491
+ pathname: globalThis.location.pathname
492
+ }
493
+ };
494
+ }, [
495
+ location2
496
+ ]);
497
+ return /* @__PURE__ */ React2.createElement(ErrorAlert, {
498
+ action: supportTo ? /* @__PURE__ */ React2.createElement(ButtonEx, {
499
+ target: "_blank",
500
+ to: supportTo,
501
+ color: "inherit",
502
+ size: "small"
503
+ }, supportLinkText) : /* @__PURE__ */ React2.createElement(ButtonEx, {
504
+ target: "_blank",
505
+ href: supportHref,
506
+ color: "inherit",
507
+ size: "small"
508
+ }, supportLinkText),
509
+ error,
510
+ onCancel,
511
+ ...props
512
+ });
513
+ }, "ErrorRenderWithSupport");
514
+ var ErrorRenderWithSupportDefault = /* @__PURE__ */ __name((props) => {
515
+ return /* @__PURE__ */ React2.createElement(ErrorRenderWithSupport, {
516
+ supportHref: "https://discord.com/channels/935586624392298547/1228436997375393885",
517
+ ...props
518
+ });
519
+ }, "ErrorRenderWithSupportDefault");
520
+
481
521
  // src/modules/Dapp/Container.tsx
482
- import React25, { memo, useMemo as useMemo14 } from "react";
522
+ import React26, { memo, useMemo as useMemo14 } from "react";
483
523
 
484
524
  // src/modules/os/hooks/useDappContextCreator.ts
485
525
  import { useAsyncEffect } from "@xylabs/react-async-effect";
486
526
  import { DappIntentTypes } from "@xyo-network/os-model";
487
527
  import { DappContextCreator, RunningDappCache } from "@xyo-network/os-runtime";
488
- import { useCallback, useEffect as useEffect4, useRef, useState } from "react";
528
+ import { useCallback, useEffect as useEffect5, useRef, useState } from "react";
489
529
  var useDappContextCreator = /* @__PURE__ */ __name((xnsNodeUrl, xnsNetwork, dapp, currentIntent, allowedNames, createOnMount = false) => {
490
530
  const context = useXyOsUiContext();
491
531
  const [windowDappNodeSet, setWindowDappNodeSet] = useState({
@@ -495,7 +535,7 @@ var useDappContextCreator = /* @__PURE__ */ __name((xnsNodeUrl, xnsNetwork, dapp
495
535
  const [dappWindowNodeError, setDappWindowNodeError] = useState();
496
536
  const targetedDapp = !!(dapp && context && currentIntent?.targetDappId === dapp?.config.name);
497
537
  const windowDappNodeSetRef = useRef(windowDappNodeSet);
498
- useEffect4(() => {
538
+ useEffect5(() => {
499
539
  windowDappNodeSetRef.current = windowDappNodeSet;
500
540
  }, [
501
541
  windowDappNodeSet
@@ -515,7 +555,7 @@ var useDappContextCreator = /* @__PURE__ */ __name((xnsNodeUrl, xnsNetwork, dapp
515
555
  context,
516
556
  allowedNames
517
557
  ]);
518
- useEffect4(() => {
558
+ useEffect5(() => {
519
559
  if (createOnMount) {
520
560
  void (async () => {
521
561
  await createNode();
@@ -557,11 +597,11 @@ var useDappContextCreator = /* @__PURE__ */ __name((xnsNodeUrl, xnsNetwork, dapp
557
597
 
558
598
  // src/modules/os/hooks/useDappRegistrationResults.ts
559
599
  import { EventBusPubSubConnection } from "@xyo-network/os-runtime";
560
- import { useEffect as useEffect5, useState as useState2 } from "react";
600
+ import { useEffect as useEffect6, useState as useState2 } from "react";
561
601
  var useDappRegistrationResults = /* @__PURE__ */ __name(() => {
562
602
  const context = useXyOsUiContext();
563
603
  const [registeredDappSetResults, setRegisteredDappSetResults] = useState2();
564
- useEffect5(() => {
604
+ useEffect6(() => {
565
605
  const listener = /* @__PURE__ */ __name(() => {
566
606
  setRegisteredDappSetResults(context?.dappRegistrationResults);
567
607
  }, "listener");
@@ -632,13 +672,13 @@ import { useMemo as useMemo4 } from "react";
632
672
  // src/modules/stack/useStackReady.ts
633
673
  import { assertEx as assertEx3 } from "@xylabs/assert";
634
674
  import { EventBusPubSubConnection as EventBusPubSubConnection2 } from "@xyo-network/os-runtime";
635
- import { useEffect as useEffect6, useState as useState3 } from "react";
675
+ import { useEffect as useEffect7, useState as useState3 } from "react";
636
676
  var useStackReady = /* @__PURE__ */ __name((stackReadyEvent, stackName, context) => {
637
677
  const providedContext = useXyOsUiContext();
638
678
  const [stackReady, setStackReady] = useState3({
639
679
  ready: false
640
680
  });
641
- useEffect6(() => {
681
+ useEffect7(() => {
642
682
  const derivedContext = context ?? providedContext;
643
683
  const listener = /* @__PURE__ */ __name(() => {
644
684
  if (!derivedContext) throw new Error("no context found");
@@ -737,9 +777,9 @@ var usePhraseFile = /* @__PURE__ */ __name((phrase) => {
737
777
  }, "usePhraseFile");
738
778
 
739
779
  // src/modules/os/hooks/useTabs.ts
740
- import { useLocation, useNavigate } from "react-router-dom";
780
+ import { useLocation as useLocation2, useNavigate } from "react-router-dom";
741
781
  var useTabs = /* @__PURE__ */ __name(() => {
742
- const location2 = useLocation();
782
+ const location2 = useLocation2();
743
783
  const navigate = useNavigate();
744
784
  const rootFolder = location2.pathname.split("/")[1];
745
785
  const tab = rootFolder?.length > 0 ? rootFolder : "node";
@@ -800,10 +840,10 @@ var getApiDomain = /* @__PURE__ */ __name((localHost, apiDomain) => {
800
840
  }, "getApiDomain");
801
841
 
802
842
  // src/utils/useOnWindowResize.tsx
803
- import { useEffect as useEffect7, useState as useState4 } from "react";
843
+ import { useEffect as useEffect8, useState as useState4 } from "react";
804
844
  var useOnWindowResize = /* @__PURE__ */ __name(() => {
805
845
  const [resized, setResized] = useState4();
806
- useEffect7(() => {
846
+ useEffect8(() => {
807
847
  const onResize = /* @__PURE__ */ __name((event) => {
808
848
  setResized(event);
809
849
  }, "onResize");
@@ -843,7 +883,7 @@ import { Circle } from "@mui/icons-material";
843
883
  import { FlexCol } from "@xylabs/react-flexbox";
844
884
  import { DappIntentTypes as DappIntentTypes6 } from "@xyo-network/os-model";
845
885
  import { DappIntentCaller as DappIntentCaller2, XyOsMonitor as XyOsMonitor2 } from "@xyo-network/os-runtime";
846
- import React4, { useRef as useRef2 } from "react";
886
+ import React5, { useRef as useRef2 } from "react";
847
887
 
848
888
  // src/modules/intent/DappIntentResourceHooks.ts
849
889
  import { usePromise as usePromise7 } from "@xylabs/react-promise";
@@ -906,12 +946,12 @@ var useDappIntentCaller = /* @__PURE__ */ __name((xyOsContext) => {
906
946
  import { filterAs } from "@xylabs/array";
907
947
  import { asOptionalDappIntent, DappIntentTypes as DappIntentTypes2, DappMode } from "@xyo-network/os-model";
908
948
  import { useWeakArchivistFromNode as useWeakArchivistFromNode2 } from "@xyo-network/react-archivist";
909
- import { useEffect as useEffect8, useState as useState6 } from "react";
949
+ import { useEffect as useEffect9, useState as useState6 } from "react";
910
950
  var useDappIntentListener = /* @__PURE__ */ __name((dappName, targetMode = DappMode.Window) => {
911
951
  const [dappIntentType, setDappIntentType] = useState6(DappIntentTypes2.Close);
912
952
  const [intentPayload, setIntentPayload] = useState6();
913
953
  const [intentArchivist] = useWeakArchivistFromNode2("IntentArchivist");
914
- useEffect8(() => {
954
+ useEffect9(() => {
915
955
  const listener = /* @__PURE__ */ __name(({ payloads }) => {
916
956
  const filteredPayloads = filterAs(payloads, asOptionalDappIntent);
917
957
  for (const payload of filteredPayloads) {
@@ -956,11 +996,11 @@ var useDappIntentListener = /* @__PURE__ */ __name((dappName, targetMode = DappM
956
996
 
957
997
  // src/modules/intent/useDappIntentListener2.ts
958
998
  import { DappIntentTypes as DappIntentTypes3, DappMode as DappMode2 } from "@xyo-network/os-model";
959
- import { useEffect as useEffect9, useState as useState7 } from "react";
999
+ import { useEffect as useEffect10, useState as useState7 } from "react";
960
1000
  var useDappIntentListener2 = /* @__PURE__ */ __name((dappName, sourceMode = DappMode2.Window) => {
961
1001
  const { latestDappIntent } = DappIntentResourceHooks.useResourceViewsFromProvidedNode();
962
1002
  const [dappIntentType, setDappIntentType] = useState7(DappIntentTypes3.Close);
963
- useEffect9(() => {
1003
+ useEffect10(() => {
964
1004
  if (sourceMode === DappMode2.Window) {
965
1005
  for (const payload of latestDappIntent ?? []) {
966
1006
  if (payload.targetDappId === dappName) {
@@ -1084,9 +1124,9 @@ var deriveDappState = /* @__PURE__ */ __name((intent) => {
1084
1124
  }, "deriveDappState");
1085
1125
 
1086
1126
  // src/modules/Dapp/RenderHtml.tsx
1087
- import React2 from "react";
1127
+ import React3 from "react";
1088
1128
  var RenderHtml = /* @__PURE__ */ __name(({ htmlString }) => {
1089
- return /* @__PURE__ */ React2.createElement("div", {
1129
+ return /* @__PURE__ */ React3.createElement("div", {
1090
1130
  style: {
1091
1131
  height: 64,
1092
1132
  width: 64
@@ -1101,7 +1141,7 @@ var RenderHtml = /* @__PURE__ */ __name(({ htmlString }) => {
1101
1141
  // src/modules/Dapp/Button/LaunchFrame.tsx
1102
1142
  import { useTheme } from "@mui/material";
1103
1143
  import { animated, config, useSpring } from "@react-spring/web";
1104
- import React3, { useMemo as useMemo7 } from "react";
1144
+ import React4, { useMemo as useMemo7 } from "react";
1105
1145
  var DappLaunchFrame = /* @__PURE__ */ __name(({ bgColor, children, id, launchLeft, open, launchTop, ref }) => {
1106
1146
  const theme = useTheme();
1107
1147
  const frameOpenSpringConfig = useMemo7(() => ({
@@ -1131,10 +1171,10 @@ var DappLaunchFrame = /* @__PURE__ */ __name(({ bgColor, children, id, launchLef
1131
1171
  transform: open ? "scale(1)" : "scale(0)"
1132
1172
  }
1133
1173
  });
1134
- return /* @__PURE__ */ React3.createElement("div", {
1174
+ return /* @__PURE__ */ React4.createElement("div", {
1135
1175
  id,
1136
1176
  ref
1137
- }, /* @__PURE__ */ React3.createElement(animated.div, {
1177
+ }, /* @__PURE__ */ React4.createElement(animated.div, {
1138
1178
  id: "dapp-launch-frame-transition-width-height",
1139
1179
  style: {
1140
1180
  ...frameProps,
@@ -1145,7 +1185,7 @@ var DappLaunchFrame = /* @__PURE__ */ __name(({ bgColor, children, id, launchLef
1145
1185
  // Set to one above the mui app bar
1146
1186
  zIndex: 1101
1147
1187
  }
1148
- }, /* @__PURE__ */ React3.createElement(animated.div, {
1188
+ }, /* @__PURE__ */ React4.createElement(animated.div, {
1149
1189
  id: "dapp-launch-frame-transition-scale",
1150
1190
  style: {
1151
1191
  ...scaleProps,
@@ -1176,10 +1216,10 @@ var decomposeProps = /* @__PURE__ */ __name((dappIcon, props) => {
1176
1216
 
1177
1217
  // src/modules/Dapp/Button/StyledComponents.tsx
1178
1218
  import { alpha, styled } from "@mui/material";
1179
- import { ButtonEx } from "@xylabs/react-button";
1219
+ import { ButtonEx as ButtonEx2 } from "@xylabs/react-button";
1180
1220
  import { TypographyEx } from "@xyo-network/react-shared";
1181
1221
  var borderRadiusFactor = 1.5;
1182
- var StyledDappIconButtonEx = styled(ButtonEx, {
1222
+ var StyledDappIconButtonEx = styled(ButtonEx2, {
1183
1223
  name: "DappIconButton",
1184
1224
  shouldForwardProp: /* @__PURE__ */ __name((prop) => ![
1185
1225
  "iconBgBaseColor"
@@ -1256,20 +1296,20 @@ var DappIconButton = /* @__PURE__ */ __name(({ children, dappIcon, dappIconSvg,
1256
1296
  });
1257
1297
  await sendIntent?.(DappIntentCaller2.buildIntent(DappIntentCaller2.OsDappName, DappIntentTypes6.Launch, dappName));
1258
1298
  }, "onClickIcon");
1259
- return /* @__PURE__ */ React4.createElement(FlexCol, {
1299
+ return /* @__PURE__ */ React5.createElement(FlexCol, {
1260
1300
  alignItems: "stretch",
1261
1301
  justifyContent: "stretch"
1262
- }, /* @__PURE__ */ React4.createElement(DappLaunchFrame, {
1302
+ }, /* @__PURE__ */ React5.createElement(DappLaunchFrame, {
1263
1303
  id: "dapp-launch-frame",
1264
1304
  open: !!active,
1265
1305
  launchLeft,
1266
1306
  launchTop
1267
- }, children), /* @__PURE__ */ React4.createElement("span", {
1307
+ }, children), /* @__PURE__ */ React5.createElement("span", {
1268
1308
  style: {
1269
1309
  cursor: "pointer"
1270
1310
  },
1271
1311
  onClick: onClickIcon
1272
- }, /* @__PURE__ */ React4.createElement(StyledDappIconButtonEx, {
1312
+ }, /* @__PURE__ */ React5.createElement(StyledDappIconButtonEx, {
1273
1313
  iconBgBaseColor: color,
1274
1314
  ref: iconButtonRef,
1275
1315
  sx: {
@@ -1279,16 +1319,16 @@ var DappIconButton = /* @__PURE__ */ __name(({ children, dappIcon, dappIconSvg,
1279
1319
  ...sx
1280
1320
  },
1281
1321
  ...nonSxProps
1282
- }, dappIconSvg ? /* @__PURE__ */ React4.createElement(RenderHtml, {
1322
+ }, dappIconSvg ? /* @__PURE__ */ React5.createElement(RenderHtml, {
1283
1323
  htmlString: dappIconSvg
1284
- }) : /* @__PURE__ */ React4.createElement(StyledDefaultDappIcon, {
1324
+ }) : /* @__PURE__ */ React5.createElement(StyledDefaultDappIcon, {
1285
1325
  fontSize: DappIconSize
1286
- }, dappIcon?.name.at(0))), /* @__PURE__ */ React4.createElement(FlexCol, {
1326
+ }, dappIcon?.name.at(0))), /* @__PURE__ */ React5.createElement(FlexCol, {
1287
1327
  gap: 0.25
1288
- }, /* @__PURE__ */ React4.createElement(StyledDappName, {
1328
+ }, /* @__PURE__ */ React5.createElement(StyledDappName, {
1289
1329
  variant: "body2",
1290
1330
  maxWidth: iconSize
1291
- }, MiddleEllipsisFunction(dappIcon?.name)), /* @__PURE__ */ React4.createElement(Circle, {
1331
+ }, MiddleEllipsisFunction(dappIcon?.name)), /* @__PURE__ */ React5.createElement(Circle, {
1292
1332
  sx: {
1293
1333
  height: 8,
1294
1334
  opacity: minimized ? 1 : 0,
@@ -1304,7 +1344,7 @@ import { ErrorRender } from "@xylabs/react-error";
1304
1344
  import { FlexCol as FlexCol2, FlexRow } from "@xylabs/react-flexbox";
1305
1345
  import { RegisteredNames } from "@xyo-network/os-model";
1306
1346
  import { AccessNodeQueries } from "@xyo-network/os-runtime";
1307
- import React5, { useState as useState8 } from "react";
1347
+ import React6, { useState as useState8 } from "react";
1308
1348
  var DappAccessDialog = /* @__PURE__ */ __name(({ accessRequest, children, dappNode, registeredDappAccess, ...props }) => {
1309
1349
  const [error, setError] = useState8();
1310
1350
  const [noPayloadsInserted, setNoPayloadsInserted] = useState8(false);
@@ -1343,43 +1383,43 @@ var DappAccessDialog = /* @__PURE__ */ __name(({ accessRequest, children, dappNo
1343
1383
  setError(new Error("No registered dapp access or dappNode found"));
1344
1384
  }
1345
1385
  }, "handleAllow");
1346
- return /* @__PURE__ */ React5.createElement(Dialog, props, /* @__PURE__ */ React5.createElement(DialogTitle, null, "Message from XYO OS"), /* @__PURE__ */ React5.createElement(DialogContent, {
1386
+ return /* @__PURE__ */ React6.createElement(Dialog, props, /* @__PURE__ */ React6.createElement(DialogTitle, null, "Message from XYO OS"), /* @__PURE__ */ React6.createElement(DialogContent, {
1347
1387
  dividers: true,
1348
1388
  sx: {
1349
1389
  display: "flex",
1350
1390
  flexDirection: "column",
1351
1391
  gap: 3
1352
1392
  }
1353
- }, /* @__PURE__ */ React5.createElement(ErrorRender, {
1393
+ }, /* @__PURE__ */ React6.createElement(ErrorRender, {
1354
1394
  error,
1355
1395
  scope: "DappAccessDialog"
1356
- }), /* @__PURE__ */ React5.createElement(FlexCol2, {
1396
+ }), /* @__PURE__ */ React6.createElement(FlexCol2, {
1357
1397
  gap: 1
1358
- }, /* @__PURE__ */ React5.createElement(Typography, {
1398
+ }, /* @__PURE__ */ React6.createElement(Typography, {
1359
1399
  variant: "subtitle2"
1360
- }, "dApp to dApp Access Request"), /* @__PURE__ */ React5.createElement(FlexRow, {
1400
+ }, "dApp to dApp Access Request"), /* @__PURE__ */ React6.createElement(FlexRow, {
1361
1401
  gap: 1
1362
- }, /* @__PURE__ */ React5.createElement(Typography, {
1402
+ }, /* @__PURE__ */ React6.createElement(Typography, {
1363
1403
  fontSize: 16
1364
- }, /* @__PURE__ */ React5.createElement("strong", null, accessRequest?.requestingDappId), "\xA0"), /* @__PURE__ */ React5.createElement(ArrowForward, null), /* @__PURE__ */ React5.createElement(Typography, {
1404
+ }, /* @__PURE__ */ React6.createElement("strong", null, accessRequest?.requestingDappId), "\xA0"), /* @__PURE__ */ React6.createElement(ArrowForward, null), /* @__PURE__ */ React6.createElement(Typography, {
1365
1405
  fontSize: 16
1366
- }, /* @__PURE__ */ React5.createElement("strong", null, registeredDappAccess?.registeringDappId))))), /* @__PURE__ */ React5.createElement(DialogContent, {
1406
+ }, /* @__PURE__ */ React6.createElement("strong", null, registeredDappAccess?.registeringDappId))))), /* @__PURE__ */ React6.createElement(DialogContent, {
1367
1407
  dividers: true,
1368
1408
  sx: {
1369
1409
  display: "flex",
1370
1410
  flexDirection: "column",
1371
1411
  gap: 3
1372
1412
  }
1373
- }, /* @__PURE__ */ React5.createElement(FlexCol2, {
1413
+ }, /* @__PURE__ */ React6.createElement(FlexCol2, {
1374
1414
  gap: 1
1375
- }, /* @__PURE__ */ React5.createElement(Typography, null, /* @__PURE__ */ React5.createElement("strong", null, accessRequest?.requestingDappId), " ", "dApp would like to access your", /* @__PURE__ */ React5.createElement("strong", null, registeredDappAccess?.name), " ", "from", " ", /* @__PURE__ */ React5.createElement("strong", null, registeredDappAccess?.registeringDappId), " ", "dApp")), noPayloadsInserted ? /* @__PURE__ */ React5.createElement(Alert, {
1415
+ }, /* @__PURE__ */ React6.createElement(Typography, null, /* @__PURE__ */ React6.createElement("strong", null, accessRequest?.requestingDappId), " ", "dApp would like to access your", /* @__PURE__ */ React6.createElement("strong", null, registeredDappAccess?.name), " ", "from", " ", /* @__PURE__ */ React6.createElement("strong", null, registeredDappAccess?.registeringDappId), " ", "dApp")), noPayloadsInserted ? /* @__PURE__ */ React6.createElement(Alert, {
1376
1416
  severity: "warning"
1377
- }, registeredDappAccess?.name, " ", "Access Request did not find payloads to insert") : null), children ? /* @__PURE__ */ React5.createElement(DialogContent, {
1417
+ }, registeredDappAccess?.name, " ", "Access Request did not find payloads to insert") : null), children ? /* @__PURE__ */ React6.createElement(DialogContent, {
1378
1418
  dividers: true
1379
- }, children) : null, /* @__PURE__ */ React5.createElement(DialogActions, null, /* @__PURE__ */ React5.createElement(Button, {
1419
+ }, children) : null, /* @__PURE__ */ React6.createElement(DialogActions, null, /* @__PURE__ */ React6.createElement(Button, {
1380
1420
  variant: "outlined",
1381
1421
  onClick: onClose
1382
- }, "Cancel"), /* @__PURE__ */ React5.createElement(Button, {
1422
+ }, "Cancel"), /* @__PURE__ */ React6.createElement(Button, {
1383
1423
  variant: "contained",
1384
1424
  onClick: handleAllow
1385
1425
  }, "Allow")));
@@ -1387,7 +1427,7 @@ var DappAccessDialog = /* @__PURE__ */ __name(({ accessRequest, children, dappNo
1387
1427
 
1388
1428
  // src/modules/Dapp/modules/access-interface/components/Flexbox.tsx
1389
1429
  import { ErrorRender as ErrorRender2 } from "@xylabs/react-error";
1390
- import React6 from "react";
1430
+ import React7 from "react";
1391
1431
 
1392
1432
  // src/modules/Dapp/modules/access-interface/hooks/useDialogState.tsx
1393
1433
  import { usePromise as usePromise8 } from "@xylabs/react-promise";
@@ -1440,13 +1480,13 @@ var useDialogState = /* @__PURE__ */ __name((context) => {
1440
1480
  // src/modules/Dapp/modules/access-interface/components/Flexbox.tsx
1441
1481
  var DappAccessFlexbox = /* @__PURE__ */ __name(({ context }) => {
1442
1482
  const { accessRequests, allowAccessDialogError, openAccessDialog, registeredInterface, setOpenAccessDialog } = useDialogState(context);
1443
- return /* @__PURE__ */ React6.createElement(DappAccessDialog, {
1483
+ return /* @__PURE__ */ React7.createElement(DappAccessDialog, {
1444
1484
  accessRequest: accessRequests?.[0],
1445
1485
  dappNode: context,
1446
1486
  open: openAccessDialog,
1447
1487
  onClose: /* @__PURE__ */ __name(() => setOpenAccessDialog(false), "onClose"),
1448
1488
  registeredDappAccess: registeredInterface
1449
- }, allowAccessDialogError ? /* @__PURE__ */ React6.createElement(ErrorRender2, {
1489
+ }, allowAccessDialogError ? /* @__PURE__ */ React7.createElement(ErrorRender2, {
1450
1490
  error: allowAccessDialogError,
1451
1491
  scope: "DappAccessFlexbox"
1452
1492
  }) : null);
@@ -1459,38 +1499,38 @@ import { FlexGrowRow } from "@xylabs/react-flexbox";
1459
1499
  import { ColorSchemeButton } from "@xylabs/react-theme";
1460
1500
  import { DappIntentTypes as DappIntentTypes9 } from "@xyo-network/os-model";
1461
1501
  import { DappIntentCaller as DappIntentCaller5 } from "@xyo-network/os-runtime";
1462
- import React9 from "react";
1502
+ import React10 from "react";
1463
1503
 
1464
1504
  // src/modules/Dapp/Debug/Dialog.tsx
1465
1505
  import { Dialog as Dialog2, DialogActions as DialogActions2, DialogContent as DialogContent2 } from "@mui/material";
1466
- import { ButtonEx as ButtonEx2 } from "@xylabs/react-button";
1506
+ import { ButtonEx as ButtonEx3 } from "@xylabs/react-button";
1467
1507
  import { FlexCol as FlexCol3 } from "@xylabs/react-flexbox";
1468
1508
  import { NodeProvider } from "@xyo-network/react-node";
1469
- import React7, { lazy, Suspense } from "react";
1509
+ import React8, { lazy, Suspense } from "react";
1470
1510
  var Debug = /* @__PURE__ */ lazy(() => import(
1471
1511
  /* webpackChunkName: "Debug" */
1472
1512
  "@xyo-network/os-react-debug"
1473
1513
  ));
1474
- var LazyDebug = /* @__PURE__ */ __name(() => /* @__PURE__ */ React7.createElement(Suspense, {
1475
- fallback: /* @__PURE__ */ React7.createElement(FlexCol3, null)
1476
- }, /* @__PURE__ */ React7.createElement(FlexCol3, null), /* @__PURE__ */ React7.createElement(Debug, {
1514
+ var LazyDebug = /* @__PURE__ */ __name(() => /* @__PURE__ */ React8.createElement(Suspense, {
1515
+ fallback: /* @__PURE__ */ React8.createElement(FlexCol3, null)
1516
+ }, /* @__PURE__ */ React8.createElement(FlexCol3, null), /* @__PURE__ */ React8.createElement(Debug, {
1477
1517
  height: "100%"
1478
1518
  })), "LazyDebug");
1479
1519
  var DebugDialog = /* @__PURE__ */ __name(({ closeDebug, debugOpen, ...props }) => {
1480
- return /* @__PURE__ */ React7.createElement(Dialog2, {
1520
+ return /* @__PURE__ */ React8.createElement(Dialog2, {
1481
1521
  open: debugOpen,
1482
1522
  onClose: closeDebug,
1483
1523
  fullScreen: true,
1484
1524
  ...props
1485
- }, /* @__PURE__ */ React7.createElement(DialogContent2, null, /* @__PURE__ */ React7.createElement(LazyDebug, null)), /* @__PURE__ */ React7.createElement(DialogActions2, null, /* @__PURE__ */ React7.createElement(ButtonEx2, {
1525
+ }, /* @__PURE__ */ React8.createElement(DialogContent2, null, /* @__PURE__ */ React8.createElement(LazyDebug, null)), /* @__PURE__ */ React8.createElement(DialogActions2, null, /* @__PURE__ */ React8.createElement(ButtonEx3, {
1486
1526
  variant: "outlined",
1487
1527
  onClick: closeDebug
1488
1528
  }, "Close")));
1489
1529
  }, "DebugDialog");
1490
1530
  var DebugDialogWithNode = /* @__PURE__ */ __name(({ closeDebug, debugOpen, context, ...props }) => {
1491
- return /* @__PURE__ */ React7.createElement(NodeProvider, {
1531
+ return /* @__PURE__ */ React8.createElement(NodeProvider, {
1492
1532
  node: context?.root
1493
- }, /* @__PURE__ */ React7.createElement(DebugDialog, {
1533
+ }, /* @__PURE__ */ React8.createElement(DebugDialog, {
1494
1534
  closeDebug,
1495
1535
  debugOpen,
1496
1536
  ...props
@@ -1621,7 +1661,7 @@ var useAddDappMenuItems = /* @__PURE__ */ __name((payloads) => {
1621
1661
  }, "useAddDappMenuItems");
1622
1662
 
1623
1663
  // src/modules/Dapp/modules/Window/hooks/menu/useDappMenu.ts
1624
- import { useEffect as useEffect10, useRef as useRef3, useState as useState10 } from "react";
1664
+ import { useEffect as useEffect11, useRef as useRef3, useState as useState10 } from "react";
1625
1665
  import { useNavigate as useNavigate3, useParams as useParams2 } from "react-router-dom";
1626
1666
 
1627
1667
  // src/modules/Dapp/modules/Window/hooks/menu/useDappMenuDependencies.ts
@@ -1649,26 +1689,26 @@ var useDappMenu = /* @__PURE__ */ __name((context, dappName) => {
1649
1689
  const { defaultPath, menuConfigs, menuItemsVisible, menuSelection, resourceError } = useDappMenuDependencies(context);
1650
1690
  const activePath = menuSelection ?? defaultPath;
1651
1691
  const currentPathRef = useRef3(void 0);
1652
- useEffect10(() => {
1692
+ useEffect11(() => {
1653
1693
  if (params && currentPathRef.current === void 0) {
1654
1694
  currentPathRef.current = params.path ?? "";
1655
1695
  }
1656
1696
  }, []);
1657
- useEffect10(() => {
1697
+ useEffect11(() => {
1658
1698
  if (context === null) {
1659
1699
  currentPathRef.current = void 0;
1660
1700
  }
1661
1701
  }, [
1662
1702
  context
1663
1703
  ]);
1664
- useEffect10(() => {
1704
+ useEffect11(() => {
1665
1705
  if (menuSelection) {
1666
1706
  currentPathRef.current = menuSelection;
1667
1707
  }
1668
1708
  }, [
1669
1709
  menuSelection
1670
1710
  ]);
1671
- useEffect10(() => {
1711
+ useEffect11(() => {
1672
1712
  if (resourceError) setError(resourceError);
1673
1713
  }, [
1674
1714
  resourceError
@@ -1748,7 +1788,7 @@ import { findAs as findAs2 } from "@xylabs/array";
1748
1788
  import { useAtomicPromise, usePromise as usePromise12 } from "@xylabs/react-promise";
1749
1789
  import { asOptionalDappIntent as asOptionalDappIntent2, DappIntentTypes as DappIntentTypes7 } from "@xyo-network/os-model";
1750
1790
  import { DappIntentCaller as DappIntentCaller3 } from "@xyo-network/os-runtime";
1751
- import { useEffect as useEffect11, useState as useState11 } from "react";
1791
+ import { useEffect as useEffect12, useState as useState11 } from "react";
1752
1792
  var useManageDappIntentRequest = /* @__PURE__ */ __name((context, dappId) => {
1753
1793
  const dappCaller = useDappCaller(context);
1754
1794
  const sendIntent = useSendDappIntent();
@@ -1782,7 +1822,7 @@ var useManageDappIntentRequest = /* @__PURE__ */ __name((context, dappId) => {
1782
1822
  intentPayload,
1783
1823
  sendIntent
1784
1824
  ]);
1785
- useEffect11(() => {
1825
+ useEffect12(() => {
1786
1826
  const listener = /* @__PURE__ */ __name(({ payloads }) => {
1787
1827
  if (context) {
1788
1828
  const intentPayload2 = findAs2(payloads, asOptionalDappIntent2);
@@ -1807,7 +1847,7 @@ var useManageDappIntentRequest = /* @__PURE__ */ __name((context, dappId) => {
1807
1847
 
1808
1848
  // src/modules/Dapp/modules/Window/hooks/route/helpers/useManageDappPathFromRoute.tsx
1809
1849
  import { usePromise as usePromise13 } from "@xylabs/react-promise";
1810
- import { useCallback as useCallback4, useEffect as useEffect12, useRef as useRef4 } from "react";
1850
+ import { useCallback as useCallback4, useEffect as useEffect13, useRef as useRef4 } from "react";
1811
1851
  import { useNavigate as useNavigate5, useParams as useParams3 } from "react-router-dom";
1812
1852
  var useManageDappPathFromRoute = /* @__PURE__ */ __name((context, dappName) => {
1813
1853
  const params = useParams3();
@@ -1832,7 +1872,7 @@ var useManageDappPathFromRoute = /* @__PURE__ */ __name((context, dappName) => {
1832
1872
  context,
1833
1873
  defaultPath
1834
1874
  ]);
1835
- useEffect12(() => {
1875
+ useEffect13(() => {
1836
1876
  if (context && menuSelection) {
1837
1877
  const pathIsInUnchanged = DappPathHelpers.detectDuplicateSelections(currentPathRef.current ?? "", menuSelection, defaultPath);
1838
1878
  if (pathIsInUnchanged) return;
@@ -1905,7 +1945,7 @@ var useManageDappStateFromRoute = /* @__PURE__ */ __name((intentPayload) => {
1905
1945
  }, "useManageDappStateFromRoute");
1906
1946
 
1907
1947
  // src/modules/Dapp/modules/Window/hooks/useDebugClick.ts
1908
- import { useCallback as useCallback5, useEffect as useEffect13, useRef as useRef6, useState as useState12 } from "react";
1948
+ import { useCallback as useCallback5, useEffect as useEffect14, useRef as useRef6, useState as useState12 } from "react";
1909
1949
  import { useNavigate as useNavigate6, useSearchParams as useSearchParams2 } from "react-router-dom";
1910
1950
  var useDebugClick = /* @__PURE__ */ __name(() => {
1911
1951
  const [params, setParams] = useSearchParams2();
@@ -1934,7 +1974,7 @@ var useDebugClick = /* @__PURE__ */ __name(() => {
1934
1974
  }, [
1935
1975
  navigate
1936
1976
  ]);
1937
- useEffect13(() => {
1977
+ useEffect14(() => {
1938
1978
  const initialOpen = openFromClick.current && !closeFromClick.current && params.has("debug");
1939
1979
  const backButtonClicked = openFromClick.current && !closeFromClick.current && !params.has("debug");
1940
1980
  if (initialOpen) {
@@ -1962,13 +2002,13 @@ import { useMemo as useMemo11 } from "react";
1962
2002
  // src/modules/Dapp/modules/Window/NodeManifest.tsx
1963
2003
  import { usePromise as usePromise15 } from "@xylabs/react-promise";
1964
2004
  import { useProvidedNode } from "@xyo-network/react-node";
1965
- import React8 from "react";
2005
+ import React9 from "react";
1966
2006
  var NodeManifest = /* @__PURE__ */ __name(() => {
1967
2007
  const [node] = useProvidedNode();
1968
2008
  const [nodeManifest] = usePromise15(async () => await node?.manifest(3), [
1969
2009
  node
1970
2010
  ]);
1971
- return /* @__PURE__ */ React8.createElement(React8.Fragment, null, node ? /* @__PURE__ */ React8.createElement("pre", null, JSON.stringify(nodeManifest, null, 2)) : null);
2011
+ return /* @__PURE__ */ React9.createElement(React9.Fragment, null, node ? /* @__PURE__ */ React9.createElement("pre", null, JSON.stringify(nodeManifest, null, 2)) : null);
1972
2012
  }, "NodeManifest");
1973
2013
 
1974
2014
  // src/modules/Dapp/modules/Window/hooks/useDecomposeDapp.tsx
@@ -2043,7 +2083,7 @@ var useSyncOsRegisteredAccessInterfaces = /* @__PURE__ */ __name((context) => {
2043
2083
 
2044
2084
  // src/modules/Dapp/modules/Window/AppBar.tsx
2045
2085
  var EmptyDappBarForPadding = /* @__PURE__ */ __name((props) => {
2046
- return /* @__PURE__ */ React9.createElement(AppBar, {
2086
+ return /* @__PURE__ */ React10.createElement(AppBar, {
2047
2087
  color: "primary",
2048
2088
  sx: {
2049
2089
  flexDirection: "row"
@@ -2056,7 +2096,7 @@ var EmptyDappBarForPadding = /* @__PURE__ */ __name((props) => {
2056
2096
  var DappBar = /* @__PURE__ */ __name(({ title, context, name, ...props }) => {
2057
2097
  const sendIntent = useSendDappIntent();
2058
2098
  const { closeDebug, debugOpen, openDebug } = useDebugClick();
2059
- return /* @__PURE__ */ React9.createElement(AppBar, {
2099
+ return /* @__PURE__ */ React10.createElement(AppBar, {
2060
2100
  elevation: 0,
2061
2101
  color: "transparent",
2062
2102
  sx: {
@@ -2066,21 +2106,21 @@ var DappBar = /* @__PURE__ */ __name(({ title, context, name, ...props }) => {
2066
2106
  component: "div",
2067
2107
  position: "sticky",
2068
2108
  ...props
2069
- }, /* @__PURE__ */ React9.createElement(Toolbar, {
2109
+ }, /* @__PURE__ */ React10.createElement(Toolbar, {
2070
2110
  disableGutters: true,
2071
2111
  sx: {
2072
2112
  paddingX: 2
2073
2113
  }
2074
- }, /* @__PURE__ */ React9.createElement(Typography2, {
2114
+ }, /* @__PURE__ */ React10.createElement(Typography2, {
2075
2115
  noWrap: true,
2076
2116
  variant: "h6",
2077
2117
  letterSpacing: "-1px"
2078
- }, title)), /* @__PURE__ */ React9.createElement(FlexGrowRow, null), /* @__PURE__ */ React9.createElement(Toolbar, {
2118
+ }, title)), /* @__PURE__ */ React10.createElement(FlexGrowRow, null), /* @__PURE__ */ React10.createElement(Toolbar, {
2079
2119
  disableGutters: true,
2080
2120
  sx: {
2081
2121
  paddingX: 2
2082
2122
  }
2083
- }, /* @__PURE__ */ React9.createElement(IconButton, {
2123
+ }, /* @__PURE__ */ React10.createElement(IconButton, {
2084
2124
  onClick: openDebug,
2085
2125
  sx: {
2086
2126
  display: {
@@ -2088,7 +2128,7 @@ var DappBar = /* @__PURE__ */ __name(({ title, context, name, ...props }) => {
2088
2128
  xs: "flex"
2089
2129
  }
2090
2130
  }
2091
- }, /* @__PURE__ */ React9.createElement(BugReport, null)), /* @__PURE__ */ React9.createElement(Tooltip, {
2131
+ }, /* @__PURE__ */ React10.createElement(BugReport, null)), /* @__PURE__ */ React10.createElement(Tooltip, {
2092
2132
  title: "Toggle Light/Dark Mode",
2093
2133
  sx: {
2094
2134
  display: {
@@ -2096,7 +2136,7 @@ var DappBar = /* @__PURE__ */ __name(({ title, context, name, ...props }) => {
2096
2136
  xs: "flex"
2097
2137
  }
2098
2138
  }
2099
- }, /* @__PURE__ */ React9.createElement(Box, null, /* @__PURE__ */ React9.createElement(ColorSchemeButton, null))), /* @__PURE__ */ React9.createElement(Divider, {
2139
+ }, /* @__PURE__ */ React10.createElement(Box, null, /* @__PURE__ */ React10.createElement(ColorSchemeButton, null))), /* @__PURE__ */ React10.createElement(Divider, {
2100
2140
  orientation: "vertical",
2101
2141
  flexItem: true,
2102
2142
  sx: {
@@ -2106,19 +2146,19 @@ var DappBar = /* @__PURE__ */ __name(({ title, context, name, ...props }) => {
2106
2146
  },
2107
2147
  m: 1
2108
2148
  }
2109
- }), /* @__PURE__ */ React9.createElement(Tooltip, {
2149
+ }), /* @__PURE__ */ React10.createElement(Tooltip, {
2110
2150
  title: "Minimize"
2111
- }, /* @__PURE__ */ React9.createElement(IconButton, {
2151
+ }, /* @__PURE__ */ React10.createElement(IconButton, {
2112
2152
  onClick: /* @__PURE__ */ __name(async () => await sendIntent?.(DappIntentCaller5.buildIntent(DappIntentCaller5.OsDappName, DappIntentTypes9.Minimize, name)), "onClick")
2113
- }, /* @__PURE__ */ React9.createElement(RemoveRounded, {
2153
+ }, /* @__PURE__ */ React10.createElement(RemoveRounded, {
2114
2154
  htmlColor: "inherit"
2115
- }))), /* @__PURE__ */ React9.createElement(Tooltip, {
2155
+ }))), /* @__PURE__ */ React10.createElement(Tooltip, {
2116
2156
  title: "Close"
2117
- }, /* @__PURE__ */ React9.createElement(IconButton, {
2157
+ }, /* @__PURE__ */ React10.createElement(IconButton, {
2118
2158
  onClick: /* @__PURE__ */ __name(async () => await sendIntent?.(DappIntentCaller5.buildIntent(DappIntentCaller5.OsDappName, DappIntentTypes9.Close, name)), "onClick")
2119
- }, /* @__PURE__ */ React9.createElement(CloseRounded, {
2159
+ }, /* @__PURE__ */ React10.createElement(CloseRounded, {
2120
2160
  htmlColor: "inherit"
2121
- })))), /* @__PURE__ */ React9.createElement(DebugDialogWithNode, {
2161
+ })))), /* @__PURE__ */ React10.createElement(DebugDialogWithNode, {
2122
2162
  closeDebug,
2123
2163
  debugOpen,
2124
2164
  context
@@ -2128,20 +2168,20 @@ var DappBar = /* @__PURE__ */ __name(({ title, context, name, ...props }) => {
2128
2168
  // src/modules/Dapp/modules/Window/Chrome.tsx
2129
2169
  import { useMediaQuery } from "@mui/material";
2130
2170
  import { FlexCol as FlexCol4, FlexGrowCol, FlexRow as FlexRow2 } from "@xylabs/react-flexbox";
2131
- import React10 from "react";
2171
+ import React11 from "react";
2132
2172
  var DappChromeSmall = /* @__PURE__ */ __name(({ appBar, children, screenMenu, splashScreen, ...props }) => {
2133
- return /* @__PURE__ */ React10.createElement(FlexCol4, {
2173
+ return /* @__PURE__ */ React11.createElement(FlexCol4, {
2134
2174
  alignItems: "stretch",
2135
2175
  id: "dapp-chrome-container-small",
2136
2176
  ...props
2137
- }, splashScreen, /* @__PURE__ */ React10.createElement(FlexGrowCol, {
2177
+ }, splashScreen, /* @__PURE__ */ React11.createElement(FlexGrowCol, {
2138
2178
  alignItems: "stretch",
2139
2179
  id: "dapp-chrome-small",
2140
2180
  justifyContent: "start",
2141
2181
  sx: {
2142
2182
  background: /* @__PURE__ */ __name((theme) => theme.palette.background.default, "background")
2143
2183
  }
2144
- }, appBar, /* @__PURE__ */ React10.createElement(FlexGrowCol, {
2184
+ }, appBar, /* @__PURE__ */ React11.createElement(FlexGrowCol, {
2145
2185
  sx: {
2146
2186
  overflowY: "auto"
2147
2187
  },
@@ -2149,18 +2189,18 @@ var DappChromeSmall = /* @__PURE__ */ __name(({ appBar, children, screenMenu, sp
2149
2189
  }, children), screenMenu));
2150
2190
  }, "DappChromeSmall");
2151
2191
  var DappChromeLarge = /* @__PURE__ */ __name(({ appBar, children, screenMenu, splashScreen, ...props }) => {
2152
- return /* @__PURE__ */ React10.createElement(FlexRow2, {
2192
+ return /* @__PURE__ */ React11.createElement(FlexRow2, {
2153
2193
  alignItems: "stretch",
2154
2194
  id: "dapp-chrome-container-large",
2155
2195
  ...props
2156
- }, splashScreen, screenMenu, /* @__PURE__ */ React10.createElement(FlexGrowCol, {
2196
+ }, splashScreen, screenMenu, /* @__PURE__ */ React11.createElement(FlexGrowCol, {
2157
2197
  alignItems: "stretch",
2158
2198
  id: "dapp-chrome-large",
2159
2199
  justifyContent: "start",
2160
2200
  sx: {
2161
2201
  background: /* @__PURE__ */ __name((theme) => theme.palette.background.default, "background")
2162
2202
  }
2163
- }, appBar, /* @__PURE__ */ React10.createElement(FlexGrowCol, {
2203
+ }, appBar, /* @__PURE__ */ React11.createElement(FlexGrowCol, {
2164
2204
  sx: {
2165
2205
  overflowY: "auto"
2166
2206
  },
@@ -2170,10 +2210,10 @@ var DappChromeLarge = /* @__PURE__ */ __name(({ appBar, children, screenMenu, sp
2170
2210
  }, "DappChromeLarge");
2171
2211
  var DappChrome = /* @__PURE__ */ __name(({ largeScreenMenu, smallScreenMenu, ...props }) => {
2172
2212
  const isMedium = useMediaQuery((theme) => theme.breakpoints.up("md"));
2173
- return isMedium ? /* @__PURE__ */ React10.createElement(DappChromeLarge, {
2213
+ return isMedium ? /* @__PURE__ */ React11.createElement(DappChromeLarge, {
2174
2214
  screenMenu: largeScreenMenu,
2175
2215
  ...props
2176
- }) : /* @__PURE__ */ React10.createElement(DappChromeSmall, {
2216
+ }) : /* @__PURE__ */ React11.createElement(DappChromeSmall, {
2177
2217
  screenMenu: smallScreenMenu,
2178
2218
  ...props
2179
2219
  });
@@ -2182,14 +2222,14 @@ var DappChrome = /* @__PURE__ */ __name(({ largeScreenMenu, smallScreenMenu, ...
2182
2222
  // src/modules/Dapp/modules/Window/components/DefaultComingSoon/DefaultComingSoon.tsx
2183
2223
  import { alpha as alpha2, Card as Card2, CardContent as CardContent2, Chip, Container, Divider as Divider2, Typography as Typography4, useTheme as useTheme4 } from "@mui/material";
2184
2224
  import { FlexGrowCol as FlexGrowCol3, FlexRow as FlexRow5 } from "@xylabs/react-flexbox";
2185
- import React14 from "react";
2225
+ import React15 from "react";
2186
2226
 
2187
2227
  // src/modules/Dapp/modules/Window/components/DefaultComingSoon/InstallButtonSection.tsx
2188
- import { ButtonEx as ButtonEx3 } from "@xylabs/react-button";
2228
+ import { ButtonEx as ButtonEx4 } from "@xylabs/react-button";
2189
2229
  import { FlexRow as FlexRow3 } from "@xylabs/react-flexbox";
2190
- import React11 from "react";
2230
+ import React12 from "react";
2191
2231
  var InstallButtonSection = /* @__PURE__ */ __name(({ installLink = "", notificationLink = "https://xyo.network/newsletter", ...props }) => {
2192
- return /* @__PURE__ */ React11.createElement(FlexRow3, {
2232
+ return /* @__PURE__ */ React12.createElement(FlexRow3, {
2193
2233
  width: "100%",
2194
2234
  gap: 1,
2195
2235
  sx: {
@@ -2200,12 +2240,12 @@ var InstallButtonSection = /* @__PURE__ */ __name(({ installLink = "", notificat
2200
2240
  }
2201
2241
  },
2202
2242
  ...props
2203
- }, /* @__PURE__ */ React11.createElement(ButtonEx3, {
2243
+ }, /* @__PURE__ */ React12.createElement(ButtonEx4, {
2204
2244
  fullWidth: true,
2205
2245
  variant: "contained",
2206
2246
  disabled: true,
2207
2247
  href: installLink
2208
- }, "Install"), /* @__PURE__ */ React11.createElement(ButtonEx3, {
2248
+ }, "Install"), /* @__PURE__ */ React12.createElement(ButtonEx4, {
2209
2249
  fullWidth: true,
2210
2250
  variant: "outlined",
2211
2251
  href: notificationLink,
@@ -2217,16 +2257,16 @@ var InstallButtonSection = /* @__PURE__ */ __name(({ installLink = "", notificat
2217
2257
  import { VerifiedRounded } from "@mui/icons-material";
2218
2258
  import { Card, CardContent, Typography as Typography3, useTheme as useTheme3 } from "@mui/material";
2219
2259
  import { FlexGrowCol as FlexGrowCol2, FlexGrowRow as FlexGrowRow3, FlexRow as FlexRow4 } from "@xylabs/react-flexbox";
2220
- import React13 from "react";
2260
+ import React14 from "react";
2221
2261
 
2222
2262
  // src/modules/Dapp/modules/Window/components/DefaultComingSoon/DeveloperLinkSection.tsx
2223
2263
  import { useTheme as useTheme2 } from "@mui/material";
2224
2264
  import { FlexGrowRow as FlexGrowRow2 } from "@xylabs/react-flexbox";
2225
2265
  import { LinkEx } from "@xylabs/react-link";
2226
- import React12 from "react";
2266
+ import React13 from "react";
2227
2267
  var DeveloperLinkSection = /* @__PURE__ */ __name(({ developerLink = "https://xylabs.com", ...props }) => {
2228
2268
  const theme = useTheme2();
2229
- return /* @__PURE__ */ React12.createElement(FlexGrowRow2, {
2269
+ return /* @__PURE__ */ React13.createElement(FlexGrowRow2, {
2230
2270
  gap: 1,
2231
2271
  sx: {
2232
2272
  alignItems: "flex-start",
@@ -2236,7 +2276,7 @@ var DeveloperLinkSection = /* @__PURE__ */ __name(({ developerLink = "https://xy
2236
2276
  }
2237
2277
  },
2238
2278
  ...props
2239
- }, /* @__PURE__ */ React12.createElement(LinkEx, {
2279
+ }, /* @__PURE__ */ React13.createElement(LinkEx, {
2240
2280
  color: theme.palette.info.main,
2241
2281
  href: developerLink,
2242
2282
  target: "_blank"
@@ -2246,18 +2286,18 @@ var DeveloperLinkSection = /* @__PURE__ */ __name(({ developerLink = "https://xy
2246
2286
  // src/modules/Dapp/modules/Window/components/DefaultComingSoon/SummarySection.tsx
2247
2287
  var SummarySection = /* @__PURE__ */ __name(({ name, dappIconSvg, version = "1.0", developerLink = "https://xylabs.com" }) => {
2248
2288
  const theme = useTheme3();
2249
- return /* @__PURE__ */ React13.createElement(Card, {
2289
+ return /* @__PURE__ */ React14.createElement(Card, {
2250
2290
  sx: {
2251
2291
  width: "100%"
2252
2292
  }
2253
- }, /* @__PURE__ */ React13.createElement(CardContent, null, /* @__PURE__ */ React13.createElement(FlexRow4, {
2293
+ }, /* @__PURE__ */ React14.createElement(CardContent, null, /* @__PURE__ */ React14.createElement(FlexRow4, {
2254
2294
  gap: 3,
2255
2295
  alignItems: "flex-start",
2256
2296
  sx: {
2257
2297
  flexDirection: "column",
2258
2298
  width: "100%"
2259
2299
  }
2260
- }, /* @__PURE__ */ React13.createElement(FlexGrowRow3, {
2300
+ }, /* @__PURE__ */ React14.createElement(FlexGrowRow3, {
2261
2301
  sx: {
2262
2302
  gap: {
2263
2303
  md: 2,
@@ -2265,16 +2305,16 @@ var SummarySection = /* @__PURE__ */ __name(({ name, dappIconSvg, version = "1.0
2265
2305
  }
2266
2306
  },
2267
2307
  alignItems: "flex-start"
2268
- }, /* @__PURE__ */ React13.createElement(Card, {
2308
+ }, /* @__PURE__ */ React14.createElement(Card, {
2269
2309
  elevation: 0,
2270
2310
  variant: "outlined"
2271
- }, /* @__PURE__ */ React13.createElement(CardContent, null, dappIconSvg ? /* @__PURE__ */ React13.createElement(RenderHtml, {
2311
+ }, /* @__PURE__ */ React14.createElement(CardContent, null, dappIconSvg ? /* @__PURE__ */ React14.createElement(RenderHtml, {
2272
2312
  htmlString: dappIconSvg
2273
- }) : null)), /* @__PURE__ */ React13.createElement(FlexGrowCol2, {
2313
+ }) : null)), /* @__PURE__ */ React14.createElement(FlexGrowCol2, {
2274
2314
  alignItems: "flex-start"
2275
- }, /* @__PURE__ */ React13.createElement(FlexGrowCol2, {
2315
+ }, /* @__PURE__ */ React14.createElement(FlexGrowCol2, {
2276
2316
  alignItems: "flex-start"
2277
- }, /* @__PURE__ */ React13.createElement(Typography3, {
2317
+ }, /* @__PURE__ */ React14.createElement(Typography3, {
2278
2318
  sx: {
2279
2319
  fontSize: {
2280
2320
  md: theme.typography.h1.fontSize,
@@ -2282,20 +2322,20 @@ var SummarySection = /* @__PURE__ */ __name(({ name, dappIconSvg, version = "1.0
2282
2322
  }
2283
2323
  },
2284
2324
  fontWeight: theme.typography.fontWeightBold
2285
- }, name), /* @__PURE__ */ React13.createElement(Typography3, {
2325
+ }, name), /* @__PURE__ */ React14.createElement(Typography3, {
2286
2326
  gutterBottom: true,
2287
2327
  variant: "subtitle2"
2288
- }, "Version:", " ", version)), /* @__PURE__ */ React13.createElement(FlexGrowRow3, {
2328
+ }, "Version:", " ", version)), /* @__PURE__ */ React14.createElement(FlexGrowRow3, {
2289
2329
  gap: 0.5,
2290
2330
  alignItems: "center",
2291
2331
  justifyContent: "center"
2292
- }, /* @__PURE__ */ React13.createElement(VerifiedRounded, {
2332
+ }, /* @__PURE__ */ React14.createElement(VerifiedRounded, {
2293
2333
  color: "success",
2294
2334
  fontSize: "small"
2295
- }), /* @__PURE__ */ React13.createElement(Typography3, {
2335
+ }), /* @__PURE__ */ React14.createElement(Typography3, {
2296
2336
  variant: "body1",
2297
2337
  color: theme.palette.success.main
2298
- }, "XY Labs")), developerLink ? /* @__PURE__ */ React13.createElement(DeveloperLinkSection, {
2338
+ }, "XY Labs")), developerLink ? /* @__PURE__ */ React14.createElement(DeveloperLinkSection, {
2299
2339
  developerLink
2300
2340
  }) : null)))));
2301
2341
  }, "SummarySection");
@@ -2306,7 +2346,7 @@ var defaultDescription = [
2306
2346
  ];
2307
2347
  var DefaultComingSoon = /* @__PURE__ */ __name(({ children, desc = defaultDescription, developerLink = "https://xylabs.com", name, dappIconSvg, version }) => {
2308
2348
  const theme = useTheme4();
2309
- return /* @__PURE__ */ React14.createElement(Container, {
2349
+ return /* @__PURE__ */ React15.createElement(Container, {
2310
2350
  maxWidth: "md",
2311
2351
  sx: {
2312
2352
  minHeight: "100%",
@@ -2314,40 +2354,40 @@ var DefaultComingSoon = /* @__PURE__ */ __name(({ children, desc = defaultDescri
2314
2354
  paddingTop: 2,
2315
2355
  width: "100%"
2316
2356
  }
2317
- }, version ? null : /* @__PURE__ */ React14.createElement(FlexRow5, {
2357
+ }, version ? null : /* @__PURE__ */ React15.createElement(FlexRow5, {
2318
2358
  width: "100%",
2319
2359
  paddingBottom: 2
2320
- }, /* @__PURE__ */ React14.createElement(Chip, {
2360
+ }, /* @__PURE__ */ React15.createElement(Chip, {
2321
2361
  label: "This app is not yet publicly available on xyOS",
2322
2362
  sx: {
2323
2363
  backgroundColor: alpha2(theme.palette.info.main, 0.2),
2324
2364
  color: theme.palette.info.main,
2325
2365
  width: "100%"
2326
2366
  }
2327
- })), /* @__PURE__ */ React14.createElement(FlexGrowCol3, {
2367
+ })), /* @__PURE__ */ React15.createElement(FlexGrowCol3, {
2328
2368
  width: "100%",
2329
2369
  alignItems: "flex-start",
2330
2370
  minHeight: "100%"
2331
- }, /* @__PURE__ */ React14.createElement(FlexGrowCol3, {
2371
+ }, /* @__PURE__ */ React15.createElement(FlexGrowCol3, {
2332
2372
  width: "100%",
2333
2373
  alignItems: "stretch",
2334
2374
  justifyContent: "flex-start",
2335
2375
  gap: 2
2336
- }, /* @__PURE__ */ React14.createElement(SummarySection, {
2376
+ }, /* @__PURE__ */ React15.createElement(SummarySection, {
2337
2377
  dappIconSvg,
2338
2378
  name,
2339
2379
  version,
2340
2380
  developerLink
2341
- }), /* @__PURE__ */ React14.createElement(InstallButtonSection, null), /* @__PURE__ */ React14.createElement(Divider2, {
2381
+ }), /* @__PURE__ */ React15.createElement(InstallButtonSection, null), /* @__PURE__ */ React15.createElement(Divider2, {
2342
2382
  flexItem: true
2343
- }), /* @__PURE__ */ React14.createElement(Card2, null, /* @__PURE__ */ React14.createElement(CardContent2, null, /* @__PURE__ */ React14.createElement(FlexGrowCol3, {
2383
+ }), /* @__PURE__ */ React15.createElement(Card2, null, /* @__PURE__ */ React15.createElement(CardContent2, null, /* @__PURE__ */ React15.createElement(FlexGrowCol3, {
2344
2384
  justifyContent: "flex-start",
2345
2385
  alignItems: "flex-start"
2346
- }, /* @__PURE__ */ React14.createElement(Typography4, {
2386
+ }, /* @__PURE__ */ React15.createElement(Typography4, {
2347
2387
  variant: "h6",
2348
2388
  gutterBottom: true
2349
2389
  }, "Learn more about", " ", name), desc?.map((paragraph, index) => {
2350
- return /* @__PURE__ */ React14.createElement(Typography4, {
2390
+ return /* @__PURE__ */ React15.createElement(Typography4, {
2351
2391
  gutterBottom: true,
2352
2392
  paddingBottom: 1,
2353
2393
  key: index,
@@ -2359,10 +2399,10 @@ var DefaultComingSoon = /* @__PURE__ */ __name(({ children, desc = defaultDescri
2359
2399
  // src/modules/Dapp/modules/Window/components/menu/BottomNavigation.tsx
2360
2400
  import { BottomNavigation, BottomNavigationAction, Paper, styled as styled2 } from "@mui/material";
2361
2401
  import { useIsDark } from "@xylabs/react-theme";
2362
- import React15, { useEffect as useEffect14, useState as useState13 } from "react";
2402
+ import React16, { useEffect as useEffect15, useState as useState13 } from "react";
2363
2403
  var DappBottomNavigation = /* @__PURE__ */ __name(({ activePath, menuConfig, menuItems, onPathChange, ...props }) => {
2364
2404
  const [activeIndex, setActiveIndex] = useState13(0);
2365
- useEffect14(() => {
2405
+ useEffect15(() => {
2366
2406
  if (menuConfig?.defaultPath && menuItems && activePath) {
2367
2407
  setActiveIndex(menuItems.findIndex((item) => activePath === item.path));
2368
2408
  }
@@ -2371,23 +2411,23 @@ var DappBottomNavigation = /* @__PURE__ */ __name(({ activePath, menuConfig, men
2371
2411
  menuConfig,
2372
2412
  menuItems
2373
2413
  ]);
2374
- return /* @__PURE__ */ React15.createElement(Paper, {
2414
+ return /* @__PURE__ */ React16.createElement(Paper, {
2375
2415
  elevation: 3
2376
- }, /* @__PURE__ */ React15.createElement(BottomNavigation, {
2416
+ }, /* @__PURE__ */ React16.createElement(BottomNavigation, {
2377
2417
  value: activeIndex,
2378
2418
  onChange: /* @__PURE__ */ __name((_, value) => {
2379
2419
  setActiveIndex(value);
2380
- const to = menuItems?.[value].path;
2381
- if (to) onPathChange?.(to);
2420
+ const to2 = menuItems?.[value].path;
2421
+ if (to2) onPathChange?.(to2);
2382
2422
  }, "onChange"),
2383
2423
  showLabels: true,
2384
2424
  ...props
2385
2425
  }, menuItems?.map(({ svgIcon: icon, primaryText }, index) => {
2386
- return /* @__PURE__ */ React15.createElement(StyledBottomNavigationAction, {
2426
+ return /* @__PURE__ */ React16.createElement(StyledBottomNavigationAction, {
2387
2427
  className: "bottom-nav-action",
2388
2428
  key: index,
2389
2429
  label: primaryText,
2390
- icon: /* @__PURE__ */ React15.createElement("span", {
2430
+ icon: /* @__PURE__ */ React16.createElement("span", {
2391
2431
  ref: /* @__PURE__ */ __name((ref) => {
2392
2432
  if (ref) {
2393
2433
  ref.innerHTML = icon ?? "";
@@ -2413,7 +2453,7 @@ import { alpha as alpha3, darken, Drawer, List, ListItem, ListItemIcon, ListItem
2413
2453
  import { FlexCol as FlexCol6, FlexGrowRow as FlexGrowRow4, FlexRow as FlexRow7 } from "@xylabs/react-flexbox";
2414
2454
  import { useIsDark as useIsDark2 } from "@xylabs/react-theme";
2415
2455
  import { XyOsMonitor as XyOsMonitor3 } from "@xyo-network/os-runtime";
2416
- import React18, { useEffect as useEffect15, useState as useState15 } from "react";
2456
+ import React19, { useEffect as useEffect16, useState as useState15 } from "react";
2417
2457
 
2418
2458
  // src/modules/Dapp/modules/Window/components/menu/BottomMenuArea.tsx
2419
2459
  import { BugReport as BugReport2, KeyboardArrowDownRounded, KeyboardArrowUpRounded } from "@mui/icons-material";
@@ -2422,7 +2462,7 @@ import { RotationAnimation } from "@xylabs/react-animation";
2422
2462
  import { FlexCol as FlexCol5, FlexRow as FlexRow6 } from "@xylabs/react-flexbox";
2423
2463
  import { LinkEx as LinkEx2 } from "@xylabs/react-link";
2424
2464
  import { ColorSchemeButton as ColorSchemeButton2 } from "@xylabs/react-theme";
2425
- import React17, { useState as useState14 } from "react";
2465
+ import React18, { useState as useState14 } from "react";
2426
2466
 
2427
2467
  // src/modules/Dapp/modules/Window/components/menu/img/index.ts
2428
2468
  import { default as default20 } from "./xyoOS-Icon-Black-ACSS4SEQ.svg";
@@ -2430,11 +2470,11 @@ import { default as default21 } from "./xyoOS-Icon-White-47MP66MD.svg";
2430
2470
 
2431
2471
  // src/modules/Dapp/modules/Window/components/menu/SocialData.tsx
2432
2472
  import { Facebook, Instagram, LinkedIn, Reddit, StorefrontRounded, Telegram, X, YouTube } from "@mui/icons-material";
2433
- import React16 from "react";
2473
+ import React17 from "react";
2434
2474
  import { FaDiscord } from "react-icons/fa";
2435
2475
  var socialLinksData = [
2436
2476
  {
2437
- icon: /* @__PURE__ */ React16.createElement(Facebook, {
2477
+ icon: /* @__PURE__ */ React17.createElement(Facebook, {
2438
2478
  style: {
2439
2479
  fontSize: "24px"
2440
2480
  }
@@ -2442,7 +2482,7 @@ var socialLinksData = [
2442
2482
  link: "https://www.facebook.com/OfficialXYO"
2443
2483
  },
2444
2484
  {
2445
- icon: /* @__PURE__ */ React16.createElement(X, {
2485
+ icon: /* @__PURE__ */ React17.createElement(X, {
2446
2486
  style: {
2447
2487
  fontSize: "24px"
2448
2488
  }
@@ -2450,7 +2490,7 @@ var socialLinksData = [
2450
2490
  link: "https://twitter.com/OfficialXYO"
2451
2491
  },
2452
2492
  {
2453
- icon: /* @__PURE__ */ React16.createElement(Instagram, {
2493
+ icon: /* @__PURE__ */ React17.createElement(Instagram, {
2454
2494
  style: {
2455
2495
  fontSize: "24px"
2456
2496
  }
@@ -2458,7 +2498,7 @@ var socialLinksData = [
2458
2498
  link: "https://www.instagram.com/officialxyo/"
2459
2499
  },
2460
2500
  {
2461
- icon: /* @__PURE__ */ React16.createElement(Telegram, {
2501
+ icon: /* @__PURE__ */ React17.createElement(Telegram, {
2462
2502
  style: {
2463
2503
  fontSize: "24px"
2464
2504
  }
@@ -2466,7 +2506,7 @@ var socialLinksData = [
2466
2506
  link: "https://t.me/xyonetwork"
2467
2507
  },
2468
2508
  {
2469
- icon: /* @__PURE__ */ React16.createElement(Reddit, {
2509
+ icon: /* @__PURE__ */ React17.createElement(Reddit, {
2470
2510
  style: {
2471
2511
  fontSize: "24px"
2472
2512
  }
@@ -2474,7 +2514,7 @@ var socialLinksData = [
2474
2514
  link: "https://www.reddit.com/r/XYONetwork/"
2475
2515
  },
2476
2516
  {
2477
- icon: /* @__PURE__ */ React16.createElement(YouTube, {
2517
+ icon: /* @__PURE__ */ React17.createElement(YouTube, {
2478
2518
  style: {
2479
2519
  fontSize: "24px"
2480
2520
  }
@@ -2482,7 +2522,7 @@ var socialLinksData = [
2482
2522
  link: "https://www.youtube.com/channel/UCyZDqb9pgntVHJVt1pxXtsw"
2483
2523
  },
2484
2524
  {
2485
- icon: /* @__PURE__ */ React16.createElement(LinkedIn, {
2525
+ icon: /* @__PURE__ */ React17.createElement(LinkedIn, {
2486
2526
  style: {
2487
2527
  fontSize: "24px"
2488
2528
  }
@@ -2490,7 +2530,7 @@ var socialLinksData = [
2490
2530
  link: "https://www.linkedin.com/company/officialxyo/"
2491
2531
  },
2492
2532
  {
2493
- icon: /* @__PURE__ */ React16.createElement(FaDiscord, {
2533
+ icon: /* @__PURE__ */ React17.createElement(FaDiscord, {
2494
2534
  style: {
2495
2535
  fontSize: "24px"
2496
2536
  }
@@ -2498,7 +2538,7 @@ var socialLinksData = [
2498
2538
  link: "https://discord.gg/officialxyo"
2499
2539
  },
2500
2540
  {
2501
- icon: /* @__PURE__ */ React16.createElement(StorefrontRounded, {
2541
+ icon: /* @__PURE__ */ React17.createElement(StorefrontRounded, {
2502
2542
  style: {
2503
2543
  fontSize: "24px"
2504
2544
  }
@@ -2514,7 +2554,7 @@ var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) =>
2514
2554
  const handleExpandClick = /* @__PURE__ */ __name(() => {
2515
2555
  setExpanded(!expanded);
2516
2556
  }, "handleExpandClick");
2517
- return /* @__PURE__ */ React17.createElement(Card3, {
2557
+ return /* @__PURE__ */ React18.createElement(Card3, {
2518
2558
  sx: {
2519
2559
  position: "relative",
2520
2560
  borderTopLeftRadius: "10px",
@@ -2525,10 +2565,10 @@ var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) =>
2525
2565
  overflow: "hidden"
2526
2566
  },
2527
2567
  elevation: 4
2528
- }, /* @__PURE__ */ React17.createElement(FlexCol5, {
2568
+ }, /* @__PURE__ */ React18.createElement(FlexCol5, {
2529
2569
  paddingY: 1,
2530
2570
  alignItems: "stretch"
2531
- }, /* @__PURE__ */ React17.createElement(Stack, {
2571
+ }, /* @__PURE__ */ React18.createElement(Stack, {
2532
2572
  paddingX: 2,
2533
2573
  justifyContent: "space-between",
2534
2574
  flexDirection: "row",
@@ -2538,17 +2578,17 @@ var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) =>
2538
2578
  textTransform: "none",
2539
2579
  cursor: "pointer"
2540
2580
  }
2541
- }, /* @__PURE__ */ React17.createElement(Typography5, {
2581
+ }, /* @__PURE__ */ React18.createElement(Typography5, {
2542
2582
  gutterBottom: false
2543
- }, "More"), expanded ? /* @__PURE__ */ React17.createElement(KeyboardArrowUpRounded, {
2583
+ }, "More"), expanded ? /* @__PURE__ */ React18.createElement(KeyboardArrowUpRounded, {
2544
2584
  sx: {
2545
2585
  color: "#fff"
2546
2586
  }
2547
- }) : /* @__PURE__ */ React17.createElement(KeyboardArrowDownRounded, {
2587
+ }) : /* @__PURE__ */ React18.createElement(KeyboardArrowDownRounded, {
2548
2588
  sx: {
2549
2589
  color: "#fff"
2550
2590
  }
2551
- }))), /* @__PURE__ */ React17.createElement(Collapse, {
2591
+ }))), /* @__PURE__ */ React18.createElement(Collapse, {
2552
2592
  in: expanded,
2553
2593
  timeout: "auto",
2554
2594
  unmountOnExit: true,
@@ -2556,42 +2596,42 @@ var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) =>
2556
2596
  paddingBottom: 3,
2557
2597
  color: "#fff"
2558
2598
  }
2559
- }, /* @__PURE__ */ React17.createElement(Divider3, {
2599
+ }, /* @__PURE__ */ React18.createElement(Divider3, {
2560
2600
  flexItem: true
2561
- }), /* @__PURE__ */ React17.createElement(FlexCol5, {
2601
+ }), /* @__PURE__ */ React18.createElement(FlexCol5, {
2562
2602
  alignItems: "center"
2563
- }, /* @__PURE__ */ React17.createElement(Toolbar2, {
2603
+ }, /* @__PURE__ */ React18.createElement(Toolbar2, {
2564
2604
  sx: {
2565
2605
  paddingX: 1.5
2566
2606
  }
2567
- }, /* @__PURE__ */ React17.createElement(Tooltip2, {
2607
+ }, /* @__PURE__ */ React18.createElement(Tooltip2, {
2568
2608
  title: "Debug Node View"
2569
- }, /* @__PURE__ */ React17.createElement(IconButton2, {
2609
+ }, /* @__PURE__ */ React18.createElement(IconButton2, {
2570
2610
  onClick: openDebug,
2571
2611
  sx: {
2572
2612
  color: "#fff"
2573
2613
  }
2574
- }, /* @__PURE__ */ React17.createElement(BugReport2, null))), /* @__PURE__ */ React17.createElement(Tooltip2, {
2614
+ }, /* @__PURE__ */ React18.createElement(BugReport2, null))), /* @__PURE__ */ React18.createElement(Tooltip2, {
2575
2615
  title: "Toggle Light/Dark Mode"
2576
- }, /* @__PURE__ */ React17.createElement("span", null, /* @__PURE__ */ React17.createElement(ColorSchemeButton2, null)))), /* @__PURE__ */ React17.createElement(FlexRow6, {
2616
+ }, /* @__PURE__ */ React18.createElement("span", null, /* @__PURE__ */ React18.createElement(ColorSchemeButton2, null)))), /* @__PURE__ */ React18.createElement(FlexRow6, {
2577
2617
  flexWrap: "wrap"
2578
- }, socialLinksData.map((social) => /* @__PURE__ */ React17.createElement(RotationAnimation, {
2618
+ }, socialLinksData.map((social) => /* @__PURE__ */ React18.createElement(RotationAnimation, {
2579
2619
  key: social.link,
2580
2620
  rotation: 20
2581
- }, /* @__PURE__ */ React17.createElement(IconButton2, {
2621
+ }, /* @__PURE__ */ React18.createElement(IconButton2, {
2582
2622
  sx: {
2583
2623
  color: "#fff"
2584
2624
  },
2585
2625
  href: social.link,
2586
2626
  target: "_blank"
2587
- }, social.icon)))), /* @__PURE__ */ React17.createElement(FlexRow6, {
2627
+ }, social.icon)))), /* @__PURE__ */ React18.createElement(FlexRow6, {
2588
2628
  padding: 1,
2589
2629
  justifyContent: "center",
2590
2630
  gap: 0.5
2591
- }, /* @__PURE__ */ React17.createElement(Typography5, {
2631
+ }, /* @__PURE__ */ React18.createElement(Typography5, {
2592
2632
  variant: "body2",
2593
2633
  color: theme.palette.text.primary
2594
- }, "Powered By"), /* @__PURE__ */ React17.createElement("img", {
2634
+ }, "Powered By"), /* @__PURE__ */ React18.createElement("img", {
2595
2635
  style: {
2596
2636
  color: theme.palette.text.primary,
2597
2637
  fill: theme.palette.text.primary
@@ -2599,29 +2639,29 @@ var BottomMenuArea = /* @__PURE__ */ __name(({ openDebug, backgroundColor }) =>
2599
2639
  src: default21,
2600
2640
  width: "auto",
2601
2641
  height: "20px"
2602
- })), /* @__PURE__ */ React17.createElement(Typography5, {
2642
+ })), /* @__PURE__ */ React18.createElement(Typography5, {
2603
2643
  variant: "caption",
2604
2644
  color: theme.palette.text.primary
2605
- }, "Copyright \xA9 2024 XY Labs, Inc."), /* @__PURE__ */ React17.createElement(Stack, {
2645
+ }, "Copyright \xA9 2024 XY Labs, Inc."), /* @__PURE__ */ React18.createElement(Stack, {
2606
2646
  gap: 0.5,
2607
2647
  flexDirection: "row"
2608
- }, /* @__PURE__ */ React17.createElement(LinkEx2, {
2648
+ }, /* @__PURE__ */ React18.createElement(LinkEx2, {
2609
2649
  color: "inherit",
2610
2650
  target: "_blank",
2611
2651
  href: "https://xylabs.com/privacy/"
2612
- }, /* @__PURE__ */ React17.createElement(Typography5, {
2652
+ }, /* @__PURE__ */ React18.createElement(Typography5, {
2613
2653
  variant: "caption"
2614
- }, "Privacy")), " ", "\u2022", " ", /* @__PURE__ */ React17.createElement(LinkEx2, {
2654
+ }, "Privacy")), " ", "\u2022", " ", /* @__PURE__ */ React18.createElement(LinkEx2, {
2615
2655
  color: "inherit",
2616
2656
  target: "_blank",
2617
2657
  href: "https://xylabs.com/terms/"
2618
- }, /* @__PURE__ */ React17.createElement(Typography5, {
2658
+ }, /* @__PURE__ */ React18.createElement(Typography5, {
2619
2659
  variant: "caption"
2620
- }, "Terms")), " ", "\u2022", " ", /* @__PURE__ */ React17.createElement(LinkEx2, {
2660
+ }, "Terms")), " ", "\u2022", " ", /* @__PURE__ */ React18.createElement(LinkEx2, {
2621
2661
  color: "inherit",
2622
2662
  target: "_blank",
2623
2663
  href: "https://xyo.network/"
2624
- }, /* @__PURE__ */ React17.createElement(Typography5, {
2664
+ }, /* @__PURE__ */ React18.createElement(Typography5, {
2625
2665
  variant: "caption"
2626
2666
  }, "XYO Website"))))));
2627
2667
  }, "BottomMenuArea");
@@ -2670,7 +2710,7 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
2670
2710
  const theme = useTheme6();
2671
2711
  const drawerColor = darkMode ? theme.palette.background.paper : darken(theme.palette.primary.main, 0.5);
2672
2712
  const activeColor = theme.palette.primary.light;
2673
- useEffect15(() => {
2713
+ useEffect16(() => {
2674
2714
  if (menuConfig?.defaultPath && menuItems && activePath) {
2675
2715
  const newPath = menuItems.find((item) => activePath === item.path)?.path ?? "";
2676
2716
  setPath(newPath);
@@ -2680,15 +2720,15 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
2680
2720
  menuConfig,
2681
2721
  menuItems
2682
2722
  ]);
2683
- const handleChange = /* @__PURE__ */ __name((to) => {
2723
+ const handleChange = /* @__PURE__ */ __name((to2) => {
2684
2724
  XyOsMonitor3.trackEvent("Visit dApp Page", {
2685
- Page: to
2725
+ Page: to2
2686
2726
  });
2687
- setPath(to);
2688
- onPathChange?.(to);
2727
+ setPath(to2);
2728
+ onPathChange?.(to2);
2689
2729
  }, "handleChange");
2690
2730
  const { closeDebug, debugOpen, openDebug } = useDebugClick();
2691
- return /* @__PURE__ */ React18.createElement(Drawer, {
2731
+ return /* @__PURE__ */ React19.createElement(Drawer, {
2692
2732
  variant: "permanent",
2693
2733
  anchor: "left",
2694
2734
  PaperProps: {
@@ -2702,18 +2742,18 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
2702
2742
  width: "280px"
2703
2743
  },
2704
2744
  ...props
2705
- }, /* @__PURE__ */ React18.createElement(FlexCol6, {
2745
+ }, /* @__PURE__ */ React19.createElement(FlexCol6, {
2706
2746
  alignItems: "stretch",
2707
2747
  justifyContent: "space-between",
2708
2748
  height: "100dvh"
2709
- }, /* @__PURE__ */ React18.createElement(FlexCol6, {
2749
+ }, /* @__PURE__ */ React19.createElement(FlexCol6, {
2710
2750
  alignItems: "stretch",
2711
2751
  justifyContent: "flex-start",
2712
2752
  flexGrow: 1,
2713
2753
  overflow: "auto"
2714
- }, /* @__PURE__ */ React18.createElement(Tooltip3, {
2754
+ }, /* @__PURE__ */ React19.createElement(Tooltip3, {
2715
2755
  title: version
2716
- }, /* @__PURE__ */ React18.createElement(FlexGrowRow4, {
2756
+ }, /* @__PURE__ */ React19.createElement(FlexGrowRow4, {
2717
2757
  id: "dapp-name-and-icon",
2718
2758
  padding: 2,
2719
2759
  justifyContent: "flex-start",
@@ -2724,31 +2764,31 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
2724
2764
  flexGrow: 0
2725
2765
  }, iconSvg ? RenderHtml({
2726
2766
  htmlString: iconSvg
2727
- }) : null, /* @__PURE__ */ React18.createElement(Typography6, {
2767
+ }) : null, /* @__PURE__ */ React19.createElement(Typography6, {
2728
2768
  noWrap: true,
2729
2769
  variant: "h6",
2730
2770
  letterSpacing: "-1px"
2731
- }, name))), /* @__PURE__ */ React18.createElement(DebugDialogWithNode, {
2771
+ }, name))), /* @__PURE__ */ React19.createElement(DebugDialogWithNode, {
2732
2772
  closeDebug,
2733
2773
  debugOpen,
2734
2774
  context
2735
- }), /* @__PURE__ */ React18.createElement(List, {
2775
+ }), /* @__PURE__ */ React19.createElement(List, {
2736
2776
  sx: {
2737
2777
  p: 0,
2738
2778
  overflow: "auto"
2739
2779
  }
2740
- }, menuItems?.map(({ svgIcon: icon, primaryText, path: pathFromPayload }) => /* @__PURE__ */ React18.createElement(ListItem, {
2780
+ }, menuItems?.map(({ svgIcon: icon, primaryText, path: pathFromPayload }) => /* @__PURE__ */ React19.createElement(ListItem, {
2741
2781
  key: primaryText,
2742
2782
  disablePadding: true,
2743
2783
  sx: {
2744
2784
  paddingBottom: 1
2745
2785
  }
2746
- }, /* @__PURE__ */ React18.createElement(StyledListItemButton, {
2786
+ }, /* @__PURE__ */ React19.createElement(StyledListItemButton, {
2747
2787
  onClick: /* @__PURE__ */ __name(() => handleChange(pathFromPayload), "onClick"),
2748
2788
  active: pathFromPayload === path,
2749
2789
  disableRipple: true,
2750
2790
  disableTouchRipple: true
2751
- }, /* @__PURE__ */ React18.createElement(FlexRow7, {
2791
+ }, /* @__PURE__ */ React19.createElement(FlexRow7, {
2752
2792
  flexGrow: 1,
2753
2793
  paddingX: 2,
2754
2794
  paddingY: 0.5,
@@ -2758,18 +2798,18 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
2758
2798
  },
2759
2799
  "borderRadius": "10px"
2760
2800
  }
2761
- }, /* @__PURE__ */ React18.createElement(ListItemIcon, {
2801
+ }, /* @__PURE__ */ React19.createElement(ListItemIcon, {
2762
2802
  sx: {
2763
2803
  color: pathFromPayload === path ? activeColor : alpha3("#fff", 0.3),
2764
2804
  justifyContent: "center"
2765
2805
  }
2766
- }, /* @__PURE__ */ React18.createElement(StyledMenuIconWrapSpan, {
2806
+ }, /* @__PURE__ */ React19.createElement(StyledMenuIconWrapSpan, {
2767
2807
  ref: /* @__PURE__ */ __name((ref) => {
2768
2808
  if (ref) {
2769
2809
  ref.innerHTML = icon ?? "";
2770
2810
  }
2771
2811
  }, "ref")
2772
- })), /* @__PURE__ */ React18.createElement(ListItemText, {
2812
+ })), /* @__PURE__ */ React19.createElement(ListItemText, {
2773
2813
  primaryTypographyProps: {
2774
2814
  fontWeight: path === pathFromPayload ? "bold" : "inherit",
2775
2815
  color: pathFromPayload === path ? "inherit" : alpha3(theme.palette.text.primary, 0.5)
@@ -2778,7 +2818,7 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
2778
2818
  style: {
2779
2819
  opacity: pathFromPayload === path ? 1 : 0.5
2780
2820
  }
2781
- }))))))), /* @__PURE__ */ React18.createElement(BottomMenuArea, {
2821
+ }))))))), /* @__PURE__ */ React19.createElement(BottomMenuArea, {
2782
2822
  openDebug,
2783
2823
  backgroundColor: theme.palette.primary.dark
2784
2824
  })));
@@ -2787,14 +2827,14 @@ var DappMenuDrawer = /* @__PURE__ */ __name(({ activePath, context, iconSvg, nam
2787
2827
  // src/modules/Dapp/modules/Window/DappWindow.tsx
2788
2828
  import { Snackbar } from "@mui/material";
2789
2829
  import { ErrorBoundary, ErrorRender as ErrorRender3 } from "@xylabs/react-error";
2790
- import React20, { useMemo as useMemo13 } from "react";
2830
+ import React21, { useMemo as useMemo13 } from "react";
2791
2831
 
2792
2832
  // src/modules/Dapp/modules/Window/MetaTags.tsx
2793
2833
  import { NameTransforms as NameTransforms4 } from "@xyo-network/os-runtime";
2794
- import React19 from "react";
2834
+ import React20 from "react";
2795
2835
  import { Helmet } from "react-helmet";
2796
2836
  var DappMetaTags = /* @__PURE__ */ __name(({ active, activePath, dappName }) => {
2797
- return active ? /* @__PURE__ */ React19.createElement(Helmet, null, /* @__PURE__ */ React19.createElement("title", null, activePath ? `${new NameTransforms4(activePath).deSlug()} | ` : "", " ", dappName, " ", "dApp")) : null;
2837
+ return active ? /* @__PURE__ */ React20.createElement(Helmet, null, /* @__PURE__ */ React20.createElement("title", null, activePath ? `${new NameTransforms4(activePath).deSlug()} | ` : "", " ", dappName, " ", "dApp")) : null;
2798
2838
  }, "DappMetaTags");
2799
2839
 
2800
2840
  // src/modules/Dapp/modules/Window/DappWindow.tsx
@@ -2811,14 +2851,14 @@ var DappWindow = /* @__PURE__ */ __name(({ children, context, dapp, dappMenuProp
2811
2851
  injectableErrors,
2812
2852
  routingError
2813
2853
  ]);
2814
- return /* @__PURE__ */ React20.createElement(ErrorBoundary, null, /* @__PURE__ */ React20.createElement(DappMetaTags, {
2854
+ return /* @__PURE__ */ React21.createElement(ErrorBoundary, null, /* @__PURE__ */ React21.createElement(DappMetaTags, {
2815
2855
  active,
2816
2856
  activePath: dappMenuProperties?.activePath,
2817
2857
  dappName: name
2818
- }), resolvedErrors.map((error) => /* @__PURE__ */ React20.createElement(Snackbar, {
2858
+ }), resolvedErrors.map((error) => /* @__PURE__ */ React21.createElement(Snackbar, {
2819
2859
  key: error?.message,
2820
2860
  open: !!error,
2821
- message: /* @__PURE__ */ React20.createElement(ErrorRender3, {
2861
+ message: /* @__PURE__ */ React21.createElement(ErrorRender3, {
2822
2862
  error,
2823
2863
  scope: "DappWindow"
2824
2864
  })
@@ -2831,16 +2871,16 @@ import { FlexCol as FlexCol9 } from "@xylabs/react-flexbox";
2831
2871
  import { NameTransforms as NameTransforms5 } from "@xyo-network/os-runtime";
2832
2872
  import { NodeProvider as NodeProvider2 } from "@xyo-network/react-node";
2833
2873
  import { WalletProvider } from "@xyo-network/react-wallet";
2834
- import React24 from "react";
2874
+ import React25 from "react";
2835
2875
 
2836
2876
  // src/modules/Dapp/modules/Window/LoadingFlexbox.tsx
2837
2877
  import { Fade, styled as styled4, Typography as Typography7 } from "@mui/material";
2838
2878
  import { FlexCol as FlexCol8 } from "@xylabs/react-flexbox";
2839
- import React23, { useEffect as useEffect16, useState as useState17 } from "react";
2879
+ import React24, { useEffect as useEffect17, useState as useState17 } from "react";
2840
2880
 
2841
2881
  // src/modules/LoadingOsLogo/LoadingOsLogo.tsx
2842
2882
  import { FlexCol as FlexCol7 } from "@xylabs/react-flexbox";
2843
- import React21, { useState as useState16 } from "react";
2883
+ import React22, { useState as useState16 } from "react";
2844
2884
 
2845
2885
  // src/modules/LoadingOsLogo/img/index.ts
2846
2886
  import { default as default22 } from "./xyoOS-Icon-2Q4XCUPP.svg";
@@ -2853,7 +2893,7 @@ var LoadingOsLogo = /* @__PURE__ */ __name(({ widthInPixels, busy, spinsPerSecon
2853
2893
  img.addEventListener("load", () => setImageLoaded(true));
2854
2894
  img.src = default22;
2855
2895
  }
2856
- return imageLoaded ? /* @__PURE__ */ React21.createElement(FlexCol7, {
2896
+ return imageLoaded ? /* @__PURE__ */ React22.createElement(FlexCol7, {
2857
2897
  sx: {
2858
2898
  "@keyframes fadeOut": {
2859
2899
  "0%": {
@@ -2871,7 +2911,7 @@ var LoadingOsLogo = /* @__PURE__ */ __name(({ widthInPixels, busy, spinsPerSecon
2871
2911
  "animationFillMode": "both"
2872
2912
  },
2873
2913
  ...props
2874
- }, /* @__PURE__ */ React21.createElement(FlexCol7, {
2914
+ }, /* @__PURE__ */ React22.createElement(FlexCol7, {
2875
2915
  sx: {
2876
2916
  "@keyframes spin": {
2877
2917
  "0%": {
@@ -2885,7 +2925,7 @@ var LoadingOsLogo = /* @__PURE__ */ __name(({ widthInPixels, busy, spinsPerSecon
2885
2925
  "animationDirection": "reverse"
2886
2926
  },
2887
2927
  ...props
2888
- }, /* @__PURE__ */ React21.createElement("img", {
2928
+ }, /* @__PURE__ */ React22.createElement("img", {
2889
2929
  src: default22,
2890
2930
  height: widthInPixels ?? 22
2891
2931
  }))) : null;
@@ -2893,9 +2933,9 @@ var LoadingOsLogo = /* @__PURE__ */ __name(({ widthInPixels, busy, spinsPerSecon
2893
2933
 
2894
2934
  // src/modules/Dapp/modules/Window/Trail.tsx
2895
2935
  import { a, useTrail } from "@react-spring/web";
2896
- import React22 from "react";
2936
+ import React23 from "react";
2897
2937
  var TextTrail = /* @__PURE__ */ __name(({ open, children }) => {
2898
- const items = React22.Children.toArray(children);
2938
+ const items = React23.Children.toArray(children);
2899
2939
  const trail = useTrail(items.length, {
2900
2940
  config: {
2901
2941
  friction: 200,
@@ -2911,10 +2951,10 @@ var TextTrail = /* @__PURE__ */ __name(({ open, children }) => {
2911
2951
  opacity: open ? 1 : 0,
2912
2952
  y: open ? 0 : 60
2913
2953
  });
2914
- return /* @__PURE__ */ React22.createElement("div", null, trail.map(({ height, ...style }, index) => /* @__PURE__ */ React22.createElement(a.div, {
2954
+ return /* @__PURE__ */ React23.createElement("div", null, trail.map(({ height, ...style }, index) => /* @__PURE__ */ React23.createElement(a.div, {
2915
2955
  key: index,
2916
2956
  style
2917
- }, /* @__PURE__ */ React22.createElement(a.div, {
2957
+ }, /* @__PURE__ */ React23.createElement(a.div, {
2918
2958
  style: {
2919
2959
  height
2920
2960
  }
@@ -2926,7 +2966,7 @@ var DappLoadingFlexbox = /* @__PURE__ */ __name(({ minimize, open, name, ...prop
2926
2966
  const [fadeIn, setFadeIn] = useState17(!open);
2927
2967
  const [trail, setTrail] = useState17(false);
2928
2968
  const skipLoadingScreen = useSkipLoadingScreen();
2929
- useEffect16(() => {
2969
+ useEffect17(() => {
2930
2970
  if (open) {
2931
2971
  if (skipLoadingScreen) {
2932
2972
  setFadeIn(false);
@@ -2954,17 +2994,17 @@ var DappLoadingFlexbox = /* @__PURE__ */ __name(({ minimize, open, name, ...prop
2954
2994
  open,
2955
2995
  skipLoadingScreen
2956
2996
  ]);
2957
- return /* @__PURE__ */ React23.createElement(Fade, {
2997
+ return /* @__PURE__ */ React24.createElement(Fade, {
2958
2998
  in: fadeIn,
2959
2999
  unmountOnExit: true
2960
- }, /* @__PURE__ */ React23.createElement(StyledSplashContainer, props, /* @__PURE__ */ React23.createElement(LoadingOsLogo, {
3000
+ }, /* @__PURE__ */ React24.createElement(StyledSplashContainer, props, /* @__PURE__ */ React24.createElement(LoadingOsLogo, {
2961
3001
  widthInPixels: 100,
2962
3002
  busy: true,
2963
3003
  position: "absolute"
2964
- }), /* @__PURE__ */ React23.createElement(TextTrail, {
3004
+ }), /* @__PURE__ */ React24.createElement(TextTrail, {
2965
3005
  open: trail,
2966
3006
  flexDirection: "row"
2967
- }, /* @__PURE__ */ React23.createElement(Typography7, {
3007
+ }, /* @__PURE__ */ React24.createElement(Typography7, {
2968
3008
  textAlign: "center",
2969
3009
  sx: {
2970
3010
  fontSize: {
@@ -2972,7 +3012,7 @@ var DappLoadingFlexbox = /* @__PURE__ */ __name(({ minimize, open, name, ...prop
2972
3012
  xs: "2em"
2973
3013
  }
2974
3014
  }
2975
- }, "Loading"), /* @__PURE__ */ React23.createElement(Typography7, {
3015
+ }, "Loading"), /* @__PURE__ */ React24.createElement(Typography7, {
2976
3016
  textAlign: "center",
2977
3017
  sx: {
2978
3018
  fontSize: {
@@ -2980,7 +3020,7 @@ var DappLoadingFlexbox = /* @__PURE__ */ __name(({ minimize, open, name, ...prop
2980
3020
  xs: "2em"
2981
3021
  }
2982
3022
  }
2983
- }, name), /* @__PURE__ */ React23.createElement(Typography7, {
3023
+ }, name), /* @__PURE__ */ React24.createElement(Typography7, {
2984
3024
  textAlign: "center",
2985
3025
  sx: {
2986
3026
  fontSize: {
@@ -3011,9 +3051,9 @@ var DappRendered = /* @__PURE__ */ __name(({ context, dapp, dappMenuProperties,
3011
3051
  const { DappComponent, name, scrollable = true, version } = useDecomposeDapp(dapp);
3012
3052
  const { active, minimized } = dappState ?? {};
3013
3053
  const hasErrors = errors && errors.length > 0;
3014
- return /* @__PURE__ */ React24.createElement(DappChrome, {
3054
+ return /* @__PURE__ */ React25.createElement(DappChrome, {
3015
3055
  /* Keep DappBar outside of the Dapp's Node Provider so it can still see the intentArchivist for close and minimize */
3016
- appBar: /* @__PURE__ */ React24.createElement(DappBar, {
3056
+ appBar: /* @__PURE__ */ React25.createElement(DappBar, {
3017
3057
  context,
3018
3058
  name,
3019
3059
  version,
@@ -3021,37 +3061,37 @@ var DappRendered = /* @__PURE__ */ __name(({ context, dapp, dappMenuProperties,
3021
3061
  }),
3022
3062
  height: "100dvh",
3023
3063
  width: "100dvw",
3024
- largeScreenMenu: active && /* @__PURE__ */ React24.createElement(DappMenuDrawer, {
3064
+ largeScreenMenu: active && /* @__PURE__ */ React25.createElement(DappMenuDrawer, {
3025
3065
  context,
3026
3066
  name,
3027
3067
  version,
3028
3068
  ...dappMenuProperties
3029
3069
  }),
3030
- smallScreenMenu: active && /* @__PURE__ */ React24.createElement(DappBottomNavigation, {
3070
+ smallScreenMenu: active && /* @__PURE__ */ React25.createElement(DappBottomNavigation, {
3031
3071
  ...dappMenuProperties,
3032
3072
  sx: {
3033
3073
  display: dappMenuProperties?.menuConfig ? "flex" : "none"
3034
3074
  }
3035
3075
  }),
3036
3076
  /* Ensure that loading goes away when error occurs */
3037
- splashScreen: hasErrors ? null : /* @__PURE__ */ React24.createElement(DappLoadingFlexbox, {
3077
+ splashScreen: hasErrors ? null : /* @__PURE__ */ React25.createElement(DappLoadingFlexbox, {
3038
3078
  minimize: !!minimized,
3039
3079
  name,
3040
3080
  open: !!active
3041
3081
  })
3042
- }, hasErrors ? /* @__PURE__ */ React24.createElement(FlexCol9, {
3082
+ }, hasErrors ? /* @__PURE__ */ React25.createElement(FlexCol9, {
3043
3083
  padding: 2
3044
- }, errors?.map((error) => /* @__PURE__ */ React24.createElement(ErrorRender4, {
3084
+ }, errors?.map((error) => /* @__PURE__ */ React25.createElement(ErrorRender4, {
3045
3085
  key: error?.message,
3046
3086
  error,
3047
3087
  scope: "DappWindow"
3048
- }))) : null, /* @__PURE__ */ React24.createElement(WalletProvider, {
3088
+ }))) : null, /* @__PURE__ */ React25.createElement(WalletProvider, {
3049
3089
  rootWallet: dappWallet
3050
- }, context === null ? null : /* @__PURE__ */ React24.createElement(XyOsUiContextProvider, {
3090
+ }, context === null ? null : /* @__PURE__ */ React25.createElement(XyOsUiContextProvider, {
3051
3091
  value: context
3052
- }, /* @__PURE__ */ React24.createElement(NodeProvider2, {
3092
+ }, /* @__PURE__ */ React25.createElement(NodeProvider2, {
3053
3093
  node: context?.root
3054
- }, active ? /* @__PURE__ */ React24.createElement(React24.Fragment, null, /* @__PURE__ */ React24.createElement(FlexCol9, {
3094
+ }, active ? /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(FlexCol9, {
3055
3095
  position: "absolute",
3056
3096
  top: 0,
3057
3097
  left: 0,
@@ -3062,9 +3102,9 @@ var DappRendered = /* @__PURE__ */ __name(({ context, dapp, dappMenuProperties,
3062
3102
  sx: {
3063
3103
  overflowY: scrollable ? "auto" : "hidden"
3064
3104
  }
3065
- }, /* @__PURE__ */ React24.createElement(DappComponent, {
3105
+ }, /* @__PURE__ */ React25.createElement(DappComponent, {
3066
3106
  name: dapp?.config.name
3067
- })), /* @__PURE__ */ React24.createElement(DappAccessFlexbox, {
3107
+ })), /* @__PURE__ */ React25.createElement(DappAccessFlexbox, {
3068
3108
  context
3069
3109
  })) : null))));
3070
3110
  }, "DappRendered");
@@ -3103,21 +3143,21 @@ var DappContainer = /* @__PURE__ */ __name(({ currentIntent, dappSet, xnsNodeUrl
3103
3143
  dappWallet,
3104
3144
  errors
3105
3145
  ]);
3106
- return /* @__PURE__ */ React25.createElement(DappIconButton, {
3146
+ return /* @__PURE__ */ React26.createElement(DappIconButton, {
3107
3147
  dappIcon,
3108
3148
  dappIconSvg: dapp.params.iconSvg,
3109
3149
  dappName: dapp?.config.name,
3110
3150
  dappState
3111
- }, /* @__PURE__ */ React25.createElement(DappWindow, dappWindowProps, /* @__PURE__ */ React25.createElement(DappRendered, dappWindowProps)));
3151
+ }, /* @__PURE__ */ React26.createElement(DappWindow, dappWindowProps, /* @__PURE__ */ React26.createElement(DappRendered, dappWindowProps)));
3112
3152
  }, "DappContainer");
3113
3153
  var DappContainerMemo = /* @__PURE__ */ memo(DappContainer);
3114
3154
 
3115
3155
  // src/modules/Dapp/ContainerFlexbox.tsx
3116
3156
  import { Container as Container2 } from "@mui/material";
3117
3157
  import { FlexCol as FlexCol10 } from "@xylabs/react-flexbox";
3118
- import React26 from "react";
3158
+ import React27 from "react";
3119
3159
  var ContainerFlexbox = /* @__PURE__ */ __name(({ children, containerProps, scrollable = true, ...props }) => {
3120
- return /* @__PURE__ */ React26.createElement(FlexCol10, {
3160
+ return /* @__PURE__ */ React27.createElement(FlexCol10, {
3121
3161
  id: "container-flexbox",
3122
3162
  alignItems: "center",
3123
3163
  justifyContent: "start",
@@ -3126,7 +3166,7 @@ var ContainerFlexbox = /* @__PURE__ */ __name(({ children, containerProps, scrol
3126
3166
  gap: 2,
3127
3167
  overflow: scrollable ? "auto" : "unset",
3128
3168
  ...props
3129
- }, /* @__PURE__ */ React26.createElement(Container2, containerProps, children));
3169
+ }, /* @__PURE__ */ React27.createElement(Container2, containerProps, children));
3130
3170
  }, "ContainerFlexbox");
3131
3171
 
3132
3172
  // src/modules/Dapp/Page/DappPage.tsx
@@ -3139,7 +3179,7 @@ import React31 from "react";
3139
3179
  import { SignalCellularAltOutlined } from "@mui/icons-material";
3140
3180
  import { Tooltip as Tooltip4, useTheme as useTheme7 } from "@mui/material";
3141
3181
  import { useIsDark as useIsDark3 } from "@xylabs/react-theme";
3142
- import React27, { useMemo as useMemo17 } from "react";
3182
+ import React28, { useMemo as useMemo17 } from "react";
3143
3183
 
3144
3184
  // src/modules/network/hooks/useOsNetwork.tsx
3145
3185
  import { OsPubSubNetworkReadyEvent } from "@xyo-network/os-runtime";
@@ -3255,9 +3295,9 @@ var StyledNetworkLoadingIndicator = styled5("div", {
3255
3295
  }));
3256
3296
 
3257
3297
  // src/modules/network/components/LoadingIndicator.tsx
3258
- var WaitingForNetwork = /* @__PURE__ */ __name(() => /* @__PURE__ */ React27.createElement(Tooltip4, {
3298
+ var WaitingForNetwork = /* @__PURE__ */ __name(() => /* @__PURE__ */ React28.createElement(Tooltip4, {
3259
3299
  title: "Waiting for Network initialization"
3260
- }, /* @__PURE__ */ React27.createElement(StyledNetworkLoadingIndicator, null)), "WaitingForNetwork");
3300
+ }, /* @__PURE__ */ React28.createElement(StyledNetworkLoadingIndicator, null)), "WaitingForNetwork");
3261
3301
  var NetworkLoadingIndicator = /* @__PURE__ */ __name(({ highContrast }) => {
3262
3302
  const darkMode = useIsDark3();
3263
3303
  const theme = useTheme7();
@@ -3269,15 +3309,15 @@ var NetworkLoadingIndicator = /* @__PURE__ */ __name(({ highContrast }) => {
3269
3309
  const NetworkComponent = useMemo17(() => {
3270
3310
  if (networkReady) {
3271
3311
  const connectionReady = true;
3272
- return connectionReady ? () => /* @__PURE__ */ React27.createElement(Tooltip4, {
3312
+ return connectionReady ? () => /* @__PURE__ */ React28.createElement(Tooltip4, {
3273
3313
  title: "Connected to Network"
3274
- }, /* @__PURE__ */ React27.createElement(SignalCellularAltOutlined, {
3314
+ }, /* @__PURE__ */ React28.createElement(SignalCellularAltOutlined, {
3275
3315
  sx: {
3276
3316
  color: successColor
3277
3317
  }
3278
- })) : () => /* @__PURE__ */ React27.createElement(Tooltip4, {
3318
+ })) : () => /* @__PURE__ */ React28.createElement(Tooltip4, {
3279
3319
  title: "Error Connecting to Network"
3280
- }, /* @__PURE__ */ React27.createElement(SignalCellularAltOutlined, {
3320
+ }, /* @__PURE__ */ React28.createElement(SignalCellularAltOutlined, {
3281
3321
  sx: {
3282
3322
  color: errorColor
3283
3323
  }
@@ -3290,18 +3330,18 @@ var NetworkLoadingIndicator = /* @__PURE__ */ __name(({ highContrast }) => {
3290
3330
  networkReady,
3291
3331
  successColor
3292
3332
  ]);
3293
- return /* @__PURE__ */ React27.createElement(NetworkComponent, null);
3333
+ return /* @__PURE__ */ React28.createElement(NetworkComponent, null);
3294
3334
  }, "NetworkLoadingIndicator");
3295
3335
 
3296
3336
  // src/modules/network/components/NetworkButton.tsx
3297
3337
  import { NotInterested } from "@mui/icons-material";
3298
3338
  import { Button as Button2 } from "@mui/material";
3299
- import React28 from "react";
3339
+ import React29 from "react";
3300
3340
  var NetworkButton = /* @__PURE__ */ __name(({ disabled, startIcon, ...props }) => {
3301
3341
  const { networkReady } = useOsNetwork();
3302
- return /* @__PURE__ */ React28.createElement(Button2, {
3342
+ return /* @__PURE__ */ React29.createElement(Button2, {
3303
3343
  disabled: disabled || !networkReady,
3304
- startIcon: /* @__PURE__ */ React28.createElement(React28.Fragment, null, startIcon, networkReady === false ? /* @__PURE__ */ React28.createElement(NotInterested, null) : null),
3344
+ startIcon: /* @__PURE__ */ React29.createElement(React29.Fragment, null, startIcon, networkReady === false ? /* @__PURE__ */ React29.createElement(NotInterested, null) : null),
3305
3345
  ...props
3306
3346
  });
3307
3347
  }, "NetworkButton");
@@ -3309,60 +3349,20 @@ var NetworkButton = /* @__PURE__ */ __name(({ disabled, startIcon, ...props }) =
3309
3349
  // src/modules/network/components/NetworkReady.tsx
3310
3350
  import { Typography as Typography8 } from "@mui/material";
3311
3351
  import { FlexCol as FlexCol11 } from "@xylabs/react-flexbox";
3312
- import React29 from "react";
3352
+ import React30 from "react";
3313
3353
  var NetworkReadyFlexBox = /* @__PURE__ */ __name(({ children, skipCheck, ...props }) => {
3314
3354
  const { networkReady } = useOsNetwork();
3315
- return /* @__PURE__ */ React29.createElement(React29.Fragment, null, networkReady || skipCheck ? children : /* @__PURE__ */ React29.createElement(FlexCol11, {
3355
+ return /* @__PURE__ */ React30.createElement(React30.Fragment, null, networkReady || skipCheck ? children : /* @__PURE__ */ React30.createElement(FlexCol11, {
3316
3356
  height: "100%",
3317
3357
  ...props
3318
- }, /* @__PURE__ */ React29.createElement(LoadingOsLogo, {
3358
+ }, /* @__PURE__ */ React30.createElement(LoadingOsLogo, {
3319
3359
  widthInPixels: 100,
3320
3360
  busy: true
3321
- }), /* @__PURE__ */ React29.createElement(Typography8, {
3361
+ }), /* @__PURE__ */ React30.createElement(Typography8, {
3322
3362
  fontFamily: "monospace"
3323
3363
  }, "Loading XYO Name Service...")));
3324
3364
  }, "NetworkReadyFlexBox");
3325
3365
 
3326
- // src/modules/Dapp/Alert/RenderErrorWithSupportLink.tsx
3327
- import { ButtonEx as ButtonEx4 } from "@xylabs/react-button";
3328
- import { ErrorAlert } from "@xylabs/react-error";
3329
- import React30, { useEffect as useEffect17 } from "react";
3330
- import { useLocation as useLocation2 } from "react-router-dom";
3331
- var ErrorRenderWithSupport = /* @__PURE__ */ __name(({ supportHref = "", supportTo, supportLinkText = "Support", error, onCancel, ...props }) => {
3332
- const location2 = useLocation2();
3333
- useEffect17(() => {
3334
- location2.state = {
3335
- from: {
3336
- pathname: globalThis.location.pathname
3337
- }
3338
- };
3339
- }, [
3340
- location2
3341
- ]);
3342
- return /* @__PURE__ */ React30.createElement(ErrorAlert, {
3343
- action: supportTo ? /* @__PURE__ */ React30.createElement(ButtonEx4, {
3344
- target: "_blank",
3345
- to: supportTo,
3346
- color: "inherit",
3347
- size: "small"
3348
- }, supportLinkText) : /* @__PURE__ */ React30.createElement(ButtonEx4, {
3349
- target: "_blank",
3350
- href: supportHref,
3351
- color: "inherit",
3352
- size: "small"
3353
- }, supportLinkText),
3354
- error,
3355
- onCancel,
3356
- ...props
3357
- });
3358
- }, "ErrorRenderWithSupport");
3359
- var ErrorRenderWithSupportDefault = /* @__PURE__ */ __name((props) => {
3360
- return /* @__PURE__ */ React30.createElement(ErrorRenderWithSupport, {
3361
- supportHref: "https://discord.com/channels/935586624392298547/1228436997375393885",
3362
- ...props
3363
- });
3364
- }, "ErrorRenderWithSupportDefault");
3365
-
3366
3366
  // src/modules/Dapp/Page/DappPage.tsx
3367
3367
  var DappTitle = /* @__PURE__ */ __name(({ subtitle, title, ...props }) => {
3368
3368
  return title ? /* @__PURE__ */ React31.createElement(FlexCol12, {
@@ -4014,12 +4014,526 @@ var NextIteratorFlexbox = /* @__PURE__ */ __name(({ next: changePage, loading, .
4014
4014
  }, /* @__PURE__ */ React45.createElement(ArrowCircleRightOutlined, null))));
4015
4015
  }, "NextIteratorFlexbox");
4016
4016
 
4017
+ // src/modules/widgets/WidgetCard.tsx
4018
+ import { ArrowForwardRounded, HistoryRounded, RefreshRounded } from "@mui/icons-material";
4019
+ import { alpha as alpha5, Box as Box3, CardContent as CardContent4, IconButton as IconButton4, Tooltip as Tooltip6, Typography as Typography11, useTheme as useTheme9 } from "@mui/material";
4020
+ import { ButtonEx as ButtonEx5 } from "@xylabs/react-button";
4021
+ import { FlexCol as FlexCol14, FlexGrowRow as FlexGrowRow7, FlexRow as FlexRow9 } from "@xylabs/react-flexbox";
4022
+ import { CardEx } from "@xyo-network/react-card";
4023
+ import { DateTime } from "luxon";
4024
+ import React46 from "react";
4025
+ var WidgetCard = /* @__PURE__ */ __name(({ widgetName, widgetContent, widgetPath, timeOfData = 1715875087, ...props }) => {
4026
+ const theme = useTheme9();
4027
+ const formatTimeOfData = /* @__PURE__ */ __name(() => {
4028
+ const timeNow = DateTime.now().toSeconds();
4029
+ const secondsSinceDataRefreshed = timeNow - timeOfData;
4030
+ const getYearsAndMonths = /* @__PURE__ */ __name(() => {
4031
+ const years = Math.floor(secondsSinceDataRefreshed / 31536e3);
4032
+ const months = Math.ceil((secondsSinceDataRefreshed - years * 31536e3) / 2628288);
4033
+ if (months === 12) {
4034
+ return `${years + 1} Years Ago`;
4035
+ } else if (years > 1 && months > 1) {
4036
+ return `${years} Years, ${months} Months Ago`;
4037
+ } else if (years === 1 && months > 1) {
4038
+ return `${years} Year, ${months} Months Ago`;
4039
+ } else if (years > 1 && months === 1) {
4040
+ return `${years} Years, ${months} Month Ago`;
4041
+ } else if (years === 1 && months === 1) {
4042
+ return `${years} Year, ${months} Month Ago`;
4043
+ } else {
4044
+ return `About ${years} Years Ago`;
4045
+ }
4046
+ }, "getYearsAndMonths");
4047
+ if (secondsSinceDataRefreshed < 60) {
4048
+ return "Less than 1 Minute Ago";
4049
+ } else if (secondsSinceDataRefreshed < 3600) {
4050
+ return `${DateTime.fromSeconds(secondsSinceDataRefreshed).toFormat("m")} Minutes Ago`;
4051
+ } else if (secondsSinceDataRefreshed < 86400) {
4052
+ return `${Math.ceil(secondsSinceDataRefreshed / 3600)} Hours Ago`;
4053
+ } else if (secondsSinceDataRefreshed < 2628288) {
4054
+ return `${Math.ceil(secondsSinceDataRefreshed / 86400)} Days Ago`;
4055
+ } else if (secondsSinceDataRefreshed < 31536e3) {
4056
+ return `${Math.ceil(secondsSinceDataRefreshed / 2628288)} Months Ago`;
4057
+ } else {
4058
+ return getYearsAndMonths();
4059
+ }
4060
+ }, "formatTimeOfData");
4061
+ return /* @__PURE__ */ React46.createElement(CardEx, {
4062
+ ...props,
4063
+ sx: {
4064
+ backgroundColor: alpha5(theme.palette.background.paper, 0.4),
4065
+ display: "flex",
4066
+ height: "300px",
4067
+ width: "300px"
4068
+ }
4069
+ }, /* @__PURE__ */ React46.createElement(CardContent4, {
4070
+ sx: {
4071
+ height: "100%",
4072
+ padding: 1
4073
+ }
4074
+ }, /* @__PURE__ */ React46.createElement(FlexCol14, {
4075
+ sx: {
4076
+ alignItems: "stretch",
4077
+ height: "100%",
4078
+ justifyContent: "space-between"
4079
+ }
4080
+ }, /* @__PURE__ */ React46.createElement(FlexCol14, {
4081
+ alignItems: "stretch"
4082
+ }, /* @__PURE__ */ React46.createElement(FlexGrowRow7, {
4083
+ justifyContent: "space-between",
4084
+ alignItems: "center"
4085
+ }, /* @__PURE__ */ React46.createElement(Typography11, {
4086
+ color: theme.palette.text.primary,
4087
+ fontWeight: theme.typography.fontWeightMedium,
4088
+ variant: "h6"
4089
+ }, widgetName), /* @__PURE__ */ React46.createElement(IconButton4, null, /* @__PURE__ */ React46.createElement(RefreshRounded, null))), /* @__PURE__ */ React46.createElement(Box3, {
4090
+ paddingY: 2
4091
+ }, widgetContent)), /* @__PURE__ */ React46.createElement(FlexRow9, {
4092
+ justifyContent: "space-between",
4093
+ alignItems: "center"
4094
+ }, /* @__PURE__ */ React46.createElement(Tooltip6, {
4095
+ title: DateTime.fromSeconds(timeOfData).toFormat("DD ttt")
4096
+ }, /* @__PURE__ */ React46.createElement(FlexRow9, {
4097
+ gap: 0.5,
4098
+ sx: {
4099
+ opacity: 0.5
4100
+ }
4101
+ }, /* @__PURE__ */ React46.createElement(HistoryRounded, {
4102
+ fontSize: "small",
4103
+ color: "inherit"
4104
+ }), /* @__PURE__ */ React46.createElement(Typography11, {
4105
+ variant: "body2"
4106
+ }, formatTimeOfData()))), /* @__PURE__ */ React46.createElement(ButtonEx5, {
4107
+ size: "small",
4108
+ to: widgetPath
4109
+ }, /* @__PURE__ */ React46.createElement(ArrowForwardRounded, {
4110
+ fontSize: "small"
4111
+ }))))));
4112
+ }, "WidgetCard");
4113
+
4114
+ // src/modules/widgets/WidgetCardExamples.tsx
4115
+ import { Stack as Stack2 } from "@mui/material";
4116
+ import { useIsDark as useIsDark4 } from "@xylabs/react-theme";
4117
+ import React54 from "react";
4118
+
4119
+ // src/modules/widgets/StackOfWidgets.tsx
4120
+ import { alpha as alpha8, Box as Box4, useTheme as useTheme11 } from "@mui/material";
4121
+ import { animated as animated4, to as interpolate, useSprings } from "@react-spring/web";
4122
+ import React53, { useState as useState22 } from "react";
4123
+ import { useDrag } from "react-use-gesture";
4124
+
4125
+ // src/modules/widgets/Types/BarGraph/HorizontalBarGraph.tsx
4126
+ import { Typography as Typography12 } from "@mui/material";
4127
+ import { FlexCol as FlexCol15, FlexGrowRow as FlexGrowRow8 } from "@xylabs/react-flexbox";
4128
+ import React47 from "react";
4129
+
4130
+ // src/modules/widgets/Types/BarGraph/StyledLinearProgress.tsx
4131
+ import { alpha as alpha6, LinearProgress as LinearProgress2, styled as styled8 } from "@mui/material";
4132
+ var StyledLinearProgress = styled8(LinearProgress2, {
4133
+ name: "StyledLinearProgress"
4134
+ })(({ theme }) => ({
4135
+ "& .MuiLinearProgress-bar": {
4136
+ borderRadius: theme.shape.borderRadius
4137
+ },
4138
+ "MozBoxSizing": "border-box",
4139
+ "WebkitBoxSizing": "border-box",
4140
+ "background": "transparent",
4141
+ "borderBottom": `1px solid ${alpha6(theme.palette.text.secondary, 0.3)}`,
4142
+ "boxSizing": "border-box",
4143
+ "height": theme.spacing(0.25)
4144
+ }));
4145
+
4146
+ // src/modules/widgets/Types/BarGraph/HorizontalBarGraph.tsx
4147
+ var sampleData = [
4148
+ {
4149
+ name: "United States",
4150
+ value: 134
4151
+ },
4152
+ {
4153
+ name: "South Africa",
4154
+ value: 400
4155
+ },
4156
+ {
4157
+ name: "Canada",
4158
+ value: 382
4159
+ },
4160
+ {
4161
+ name: "Philippines",
4162
+ value: 423
4163
+ },
4164
+ {
4165
+ name: "Denmark",
4166
+ value: 123
4167
+ },
4168
+ {
4169
+ name: "Greece",
4170
+ value: 321
4171
+ },
4172
+ {
4173
+ name: "Japan",
4174
+ value: 421
4175
+ }
4176
+ ];
4177
+ var HorizontalBarGraph = /* @__PURE__ */ __name(({ items = sampleData, ...props }) => {
4178
+ const itemsSortedByValue = items.sort(function(a2, b) {
4179
+ const keyA = a2.value, keyB = b.value;
4180
+ if (keyA > keyB) return -1;
4181
+ if (keyA < keyB) return 1;
4182
+ return 0;
4183
+ });
4184
+ console.log(itemsSortedByValue);
4185
+ const topValue = itemsSortedByValue[0].value;
4186
+ return /* @__PURE__ */ React47.createElement(FlexCol15, {
4187
+ alignItems: "stretch",
4188
+ gap: 0.5,
4189
+ ...props
4190
+ }, items.slice(0, 5).map((item, index) => (
4191
+ // eslint-disable-next-line @eslint-react/no-array-index-key
4192
+ /* @__PURE__ */ React47.createElement(FlexCol15, {
4193
+ alignItems: "stretch",
4194
+ key: index
4195
+ }, /* @__PURE__ */ React47.createElement(FlexGrowRow8, {
4196
+ justifyContent: "space-between"
4197
+ }, /* @__PURE__ */ React47.createElement(Typography12, {
4198
+ variant: "caption",
4199
+ maxWidth: "50%",
4200
+ noWrap: true
4201
+ }, item.name), /* @__PURE__ */ React47.createElement(Typography12, {
4202
+ variant: "caption",
4203
+ maxWidth: "50%"
4204
+ }, item.value)), /* @__PURE__ */ React47.createElement(StyledLinearProgress, {
4205
+ color: "primary",
4206
+ value: item.value / (topValue * 1.25) * 100,
4207
+ variant: "determinate"
4208
+ }))
4209
+ )));
4210
+ }, "HorizontalBarGraph");
4211
+
4212
+ // src/modules/widgets/Types/DataColumns/TwoColTwoStat.tsx
4213
+ import { Typography as Typography13, useTheme as useTheme10 } from "@mui/material";
4214
+ import { FlexCol as FlexCol16, FlexGrowRow as FlexGrowRow9 } from "@xylabs/react-flexbox";
4215
+ import React48, { useEffect as useEffect19 } from "react";
4216
+ var MAX_LENGTH = 2;
4217
+ var validateProps = /* @__PURE__ */ __name((props) => {
4218
+ if (props.length > MAX_LENGTH) {
4219
+ throw new Error(`The length of items for the Two Column Two Stat widget should not exceed ${MAX_LENGTH}`);
4220
+ }
4221
+ }, "validateProps");
4222
+ var TwoColTwoStat = /* @__PURE__ */ __name(({ items, ...props }) => {
4223
+ const theme = useTheme10();
4224
+ useEffect19(() => {
4225
+ validateProps(items);
4226
+ }, [
4227
+ items
4228
+ ]);
4229
+ return /* @__PURE__ */ React48.createElement(FlexGrowRow9, {
4230
+ gap: 2,
4231
+ ...props
4232
+ }, items.map((item, index) => (
4233
+ // eslint-disable-next-line @eslint-react/no-array-index-key
4234
+ /* @__PURE__ */ React48.createElement(FlexCol16, {
4235
+ key: `stat-${index}-${item.unit}`,
4236
+ flexGrow: 1,
4237
+ alignItems: "start"
4238
+ }, /* @__PURE__ */ React48.createElement(Typography13, {
4239
+ variant: "h2",
4240
+ fontWeight: theme.typography.fontWeightMedium
4241
+ }, item.rawInsightValue), /* @__PURE__ */ React48.createElement(Typography13, {
4242
+ variant: "body2"
4243
+ }, item.subtitle))
4244
+ )));
4245
+ }, "TwoColTwoStat");
4246
+
4247
+ // src/modules/widgets/Types/Examples/BarGraph.tsx
4248
+ import React49 from "react";
4249
+ var ExampleBarGraphWidget = /* @__PURE__ */ __name(() => {
4250
+ return /* @__PURE__ */ React49.createElement(WidgetCard, {
4251
+ widgetContent: /* @__PURE__ */ React49.createElement(HorizontalBarGraph, null),
4252
+ widgetName: "Friend Locations",
4253
+ timeOfData: 1715713478,
4254
+ widgetPath: "/profile"
4255
+ });
4256
+ }, "ExampleBarGraphWidget");
4257
+
4258
+ // src/modules/widgets/Types/Examples/BooleanTable.tsx
4259
+ import React51 from "react";
4260
+
4261
+ // src/modules/widgets/Types/Tables/BooleanTable.tsx
4262
+ import { CircleRounded } from "@mui/icons-material";
4263
+ import { alpha as alpha7, Paper as Paper2, styled as styled9, TableRow as TableRow2, Typography as Typography14 } from "@mui/material";
4264
+ import { FlexCol as FlexCol17, FlexGrowRow as FlexGrowRow10, FlexRow as FlexRow10 } from "@xylabs/react-flexbox";
4265
+ import React50 from "react";
4266
+ var sampleData2 = [
4267
+ {
4268
+ name: "@arietrouw",
4269
+ value: true
4270
+ },
4271
+ {
4272
+ name: "@officialxyo",
4273
+ value: false
4274
+ },
4275
+ {
4276
+ name: "0x187623121928634124",
4277
+ value: true
4278
+ },
4279
+ {
4280
+ name: "@coinwithus",
4281
+ value: true
4282
+ },
4283
+ {
4284
+ name: "0x871218376123894321",
4285
+ value: true
4286
+ }
4287
+ ];
4288
+ var StyledLightTableRow = styled9(Paper2, {
4289
+ name: "StyledLightTableRow"
4290
+ })(({ theme }) => ({
4291
+ backgroundColor: "transparent",
4292
+ padding: theme.spacing(0.75)
4293
+ }));
4294
+ var StyledTableColumnTitle = styled9(Typography14, {
4295
+ name: "StyledTableColumnTitle"
4296
+ })(({ theme }) => ({
4297
+ color: theme.palette.text.secondary,
4298
+ fontWeight: theme.typography.fontWeightBold,
4299
+ textTransform: "uppercase"
4300
+ }));
4301
+ var DefaultTrueOutput = styled9(CircleRounded, {
4302
+ name: "DefaultTrueOutput"
4303
+ })(({ theme }) => ({
4304
+ fill: theme.palette.success.main,
4305
+ fontSize: "10px"
4306
+ }));
4307
+ var DefaultFalseOutput = styled9(CircleRounded, {
4308
+ name: "DefaultFalseOutput"
4309
+ })(({ theme }) => ({
4310
+ fill: alpha7(theme.palette.text.disabled, 0.5),
4311
+ fontSize: "10px"
4312
+ }));
4313
+ var defaultTrueOutput = /* @__PURE__ */ React50.createElement(DefaultTrueOutput, null);
4314
+ var defaultFalseOutput = /* @__PURE__ */ React50.createElement(DefaultFalseOutput, null);
4315
+ var BooleanTable = /* @__PURE__ */ __name(({ items = sampleData2, tableHeaders, trueOutput = defaultTrueOutput, falseOutput = defaultFalseOutput, ...props }) => {
4316
+ return /* @__PURE__ */ React50.createElement(FlexCol17, {
4317
+ alignItems: "stretch",
4318
+ ...props
4319
+ }, /* @__PURE__ */ React50.createElement(FlexRow10, {
4320
+ paddingBottom: 0.5,
4321
+ justifyContent: "space-between"
4322
+ }, tableHeaders.map((name) => /* @__PURE__ */ React50.createElement(StyledTableColumnTitle, {
4323
+ key: name,
4324
+ variant: "caption"
4325
+ }, name))), /* @__PURE__ */ React50.createElement(FlexCol17, {
4326
+ alignItems: "stretch",
4327
+ gap: 0.25
4328
+ }, items.slice(0, 4).map((item, index) => /* @__PURE__ */ React50.createElement(TableRow2, {
4329
+ key: index
4330
+ }, /* @__PURE__ */ React50.createElement(FlexGrowRow10, {
4331
+ flexGrow: 1,
4332
+ justifyContent: "space-between"
4333
+ }, /* @__PURE__ */ React50.createElement(Typography14, {
4334
+ variant: "caption",
4335
+ noWrap: true,
4336
+ maxWidth: "70%"
4337
+ }, item.name), item.value ? trueOutput : falseOutput)))));
4338
+ }, "BooleanTable");
4339
+
4340
+ // src/modules/widgets/Types/Examples/BooleanTable.tsx
4341
+ var ExampleBooleanTableWidget = /* @__PURE__ */ __name(() => {
4342
+ return /* @__PURE__ */ React51.createElement(WidgetCard, {
4343
+ widgetContent: /* @__PURE__ */ React51.createElement(BooleanTable, {
4344
+ items: [
4345
+ {
4346
+ name: "@arietrouw",
4347
+ value: true
4348
+ },
4349
+ {
4350
+ name: "@officialxyo",
4351
+ value: false
4352
+ },
4353
+ {
4354
+ name: "0x187623121928634124",
4355
+ value: true
4356
+ },
4357
+ {
4358
+ name: "@coinwithus",
4359
+ value: true
4360
+ },
4361
+ {
4362
+ name: "0x871218376123894321",
4363
+ value: true
4364
+ }
4365
+ ],
4366
+ tableHeaders: [
4367
+ "Id",
4368
+ "Online"
4369
+ ]
4370
+ }),
4371
+ widgetName: "Friends",
4372
+ timeOfData: 1715875797,
4373
+ widgetPath: "/profile"
4374
+ });
4375
+ }, "ExampleBooleanTableWidget");
4376
+
4377
+ // src/modules/widgets/Types/Examples/TwoColTwoStat.tsx
4378
+ import React52 from "react";
4379
+ var ExampleTwoColTwoStatWidget = /* @__PURE__ */ __name(() => {
4380
+ return /* @__PURE__ */ React52.createElement(WidgetCard, {
4381
+ widgetContent: /* @__PURE__ */ React52.createElement(TwoColTwoStat, {
4382
+ items: [
4383
+ {
4384
+ rawInsightValue: 218,
4385
+ subtitle: "Inbound Access Requests",
4386
+ uiInsightValue: 218,
4387
+ unit: "requests"
4388
+ },
4389
+ {
4390
+ rawInsightValue: 18,
4391
+ subtitle: "Outbound Access Requests",
4392
+ uiInsightValue: 18,
4393
+ unit: "requests"
4394
+ }
4395
+ ]
4396
+ }),
4397
+ widgetName: "Network Activity",
4398
+ timeOfData: 1642637397,
4399
+ widgetPath: "/network"
4400
+ });
4401
+ }, "ExampleTwoColTwoStatWidget");
4402
+
4403
+ // src/modules/widgets/StackOfWidgets.tsx
4404
+ var cards = [
4405
+ /* @__PURE__ */ React53.createElement(ExampleBarGraphWidget, {
4406
+ key: "bar-graph"
4407
+ }),
4408
+ /* @__PURE__ */ React53.createElement(ExampleBooleanTableWidget, {
4409
+ key: "boolean-table"
4410
+ }),
4411
+ /* @__PURE__ */ React53.createElement(ExampleTwoColTwoStatWidget, {
4412
+ key: "two-column"
4413
+ })
4414
+ ];
4415
+ var to = /* @__PURE__ */ __name((i) => ({
4416
+ delay: i * 100,
4417
+ rot: -10 + Math.random() * 15,
4418
+ scale: 1,
4419
+ x: 0,
4420
+ y: i * -4
4421
+ }), "to");
4422
+ var from = /* @__PURE__ */ __name((_i) => ({
4423
+ rot: 0,
4424
+ scale: 1.5,
4425
+ x: 0,
4426
+ y: -1e3
4427
+ }), "from");
4428
+ var trans = /* @__PURE__ */ __name((r, s) => `perspective(1500px) rotateY(${r / 10}deg) scale(${s})`, "trans");
4429
+ function Deck() {
4430
+ const [gone] = useState22(() => /* @__PURE__ */ new Set());
4431
+ const theme = useTheme11();
4432
+ const [props, api] = useSprings(cards.length, (i) => ({
4433
+ ...to(i),
4434
+ from: from(i)
4435
+ }));
4436
+ const bind = useDrag(({ args: [index], down, movement: [mx], direction: [xDir], velocity }) => {
4437
+ const trigger = velocity > 0.2;
4438
+ const dir = xDir < 0 ? -1 : 1;
4439
+ if (!down && trigger) gone.add(index);
4440
+ api.start((i) => {
4441
+ if (index !== i) return;
4442
+ const isGone = gone.has(index);
4443
+ const x = isGone ? (200 + globalThis.innerWidth) * dir : down ? mx : 0;
4444
+ const rot = mx / 100 + (isGone ? dir * 10 * velocity : 0);
4445
+ const scale = down ? 1.1 : 1;
4446
+ return {
4447
+ config: {
4448
+ friction: 50,
4449
+ tension: down ? 800 : isGone ? 200 : 500
4450
+ },
4451
+ delay: void 0,
4452
+ rot,
4453
+ scale,
4454
+ x
4455
+ };
4456
+ });
4457
+ if (!down && gone.size === cards.length) setTimeout(() => {
4458
+ gone.clear();
4459
+ api.start((i) => to(i));
4460
+ }, 600);
4461
+ });
4462
+ return /* @__PURE__ */ React53.createElement(React53.Fragment, null, props.map(({ x, y, rot, scale }, i) => /* @__PURE__ */ React53.createElement(animated4.div, {
4463
+ // eslint-disable-next-line @eslint-react/no-array-index-key
4464
+ key: i,
4465
+ style: {
4466
+ alignItems: "center",
4467
+ display: "flex",
4468
+ height: "300px",
4469
+ justifyContent: "center",
4470
+ position: "absolute",
4471
+ touchAction: "none",
4472
+ width: "300px",
4473
+ willChange: "transform",
4474
+ x,
4475
+ y
4476
+ }
4477
+ }, /* @__PURE__ */ React53.createElement(animated4.div, {
4478
+ ...bind(i),
4479
+ style: {
4480
+ // WebkitBackdropFilter: 'blur(10px)',
4481
+ // backdropFilter: 'blur(10px)',
4482
+ backgroundColor: alpha8(theme.palette.background.paper, 0.2),
4483
+ backgroundPosition: "center center",
4484
+ backgroundRepeat: "no-repeat",
4485
+ backgroundSize: "auto 85%",
4486
+ borderRadius: " 10px",
4487
+ boxShadow: theme.shadows[7],
4488
+ height: "85vh",
4489
+ maxHeight: "300px",
4490
+ maxWidth: "300px",
4491
+ transform: interpolate([
4492
+ rot,
4493
+ scale
4494
+ ], trans),
4495
+ width: "45vh",
4496
+ willChange: "transform"
4497
+ }
4498
+ }, cards[i]))));
4499
+ }
4500
+ __name(Deck, "Deck");
4501
+ var StackOfWidgets = /* @__PURE__ */ __name(() => {
4502
+ return /* @__PURE__ */ React53.createElement(Box4, {
4503
+ sx: {
4504
+ alignItems: "center",
4505
+ cursor: "pointer",
4506
+ display: "flex",
4507
+ height: "300px",
4508
+ justifyContent: "center",
4509
+ width: "300px"
4510
+ }
4511
+ }, /* @__PURE__ */ React53.createElement(Deck, null));
4512
+ }, "StackOfWidgets");
4513
+
4514
+ // src/modules/widgets/WidgetCardExamples.tsx
4515
+ var WidgetCardExamples = /* @__PURE__ */ __name(() => {
4516
+ const darkMode = useIsDark4();
4517
+ return /* @__PURE__ */ React54.createElement(DappPage, {
4518
+ sx: {
4519
+ backgroundImage: darkMode ? `url(${default18})` : `url(${default19})`,
4520
+ backgroundSize: "cover"
4521
+ },
4522
+ container: "xl",
4523
+ title: "Example Widget Cards"
4524
+ }, /* @__PURE__ */ React54.createElement(Stack2, {
4525
+ gap: 2,
4526
+ flexDirection: "row",
4527
+ flexWrap: "wrap"
4528
+ }, /* @__PURE__ */ React54.createElement(ExampleTwoColTwoStatWidget, null), /* @__PURE__ */ React54.createElement(ExampleBarGraphWidget, null), /* @__PURE__ */ React54.createElement(ExampleBooleanTableWidget, null), /* @__PURE__ */ React54.createElement(StackOfWidgets, null)));
4529
+ }, "WidgetCardExamples");
4530
+
4017
4531
  // src/settings/Theme/ThemeProvider.tsx
4018
4532
  import { ThemeProvider } from "@mui/material";
4019
- import React46, { useMemo as useMemo20 } from "react";
4533
+ import React55, { useMemo as useMemo20 } from "react";
4020
4534
 
4021
4535
  // src/settings/Theme/ThemeCssVars.ts
4022
- import { alpha as alpha5, createTheme, darken as darken2, lighten } from "@mui/material";
4536
+ import { alpha as alpha9, createTheme, darken as darken2, lighten } from "@mui/material";
4023
4537
  var defaultIconBackground = "#A060E0";
4024
4538
  var defaultIconBackgroundHover = "#bdade8";
4025
4539
  var DynamicIconBgGradientBuilder = {
@@ -4128,7 +4642,7 @@ var ThemeCssVars = createTheme({
4128
4642
  root: /* @__PURE__ */ __name(({ theme }) => ({
4129
4643
  WebkitBackdropFilter: "blur(20px)",
4130
4644
  backdropFilter: "blur(20px)",
4131
- backgroundColor: alpha5(theme.palette.background.paper, 0.2),
4645
+ backgroundColor: alpha9(theme.palette.background.paper, 0.2),
4132
4646
  boxShadow: "none",
4133
4647
  color: "#16163D",
4134
4648
  ...theme.applyStyles("dark", {
@@ -4145,7 +4659,7 @@ var ThemeCssVars = createTheme({
4145
4659
  root: /* @__PURE__ */ __name(({ theme }) => ({
4146
4660
  WebkitBackdropFilter: "blur(20px)",
4147
4661
  backdropFilter: "blur(20px)",
4148
- backgroundColor: alpha5(theme.palette.background.paper, 0.7),
4662
+ backgroundColor: alpha9(theme.palette.background.paper, 0.7),
4149
4663
  display: "flex",
4150
4664
  flexDirection: "column",
4151
4665
  justifyContent: "space-between"
@@ -4320,7 +4834,7 @@ var AppOsThemeProvider = /* @__PURE__ */ __name(({ children }) => {
4320
4834
  if (savedValue && validValues.includes(savedValue)) return savedValue;
4321
4835
  return "system";
4322
4836
  }, []);
4323
- return /* @__PURE__ */ React46.createElement(ThemeProvider, {
4837
+ return /* @__PURE__ */ React55.createElement(ThemeProvider, {
4324
4838
  theme: ThemeCssVars,
4325
4839
  defaultMode: initialValue
4326
4840
  }, children);
@@ -4357,6 +4871,8 @@ export {
4357
4871
  DebugDialogWithNode,
4358
4872
  DefaultComingSoon,
4359
4873
  EmptyDappBarForPadding,
4874
+ ErrorRenderWithSupport,
4875
+ ErrorRenderWithSupportDefault,
4360
4876
  GenericPayloadDivinerTags,
4361
4877
  LazyDebug,
4362
4878
  LoadingOsLogo,
@@ -4368,6 +4884,7 @@ export {
4368
4884
  OsPalettes,
4369
4885
  PaymentMethods,
4370
4886
  PrimaryCryptoWalletInput,
4887
+ RenderHtml,
4371
4888
  ResourceHooks,
4372
4889
  SecondaryCryptoWalletInput,
4373
4890
  ShiftAnimation,
@@ -4379,6 +4896,8 @@ export {
4379
4896
  TwoToneBulletPoint,
4380
4897
  TwoToneBulletPointList,
4381
4898
  WidgetCaller,
4899
+ WidgetCard,
4900
+ WidgetCardExamples,
4382
4901
  XnsDomainIcon,
4383
4902
  XyOsBrowserMonitor,
4384
4903
  XyOsUi,
@@ -4400,6 +4919,7 @@ export {
4400
4919
  useCleanUpResource,
4401
4920
  useClearIntents,
4402
4921
  useDappAccessRequestResourceViews,
4922
+ useDappCaller,
4403
4923
  useDappContextCreator,
4404
4924
  useDappIntentCaller,
4405
4925
  useDappIntentListener,