@powerhousedao/connect 1.0.15-dev.0 → 1.0.16-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (25) hide show
  1. package/dist/assets/{app-d-RO8igP.css → app-CDOWlDp2.css} +12 -12
  2. package/dist/assets/{app-loader-CVNv9V70.js → app-loader-ByxyqGmZ.js} +32 -8
  3. package/dist/assets/{app-loader-Br74gdhw.css → app-loader-DiF8OhX3.css} +4 -0
  4. package/dist/assets/{app-DMQcv5I-.js → app-mup06TxF.js} +60 -56
  5. package/dist/assets/{ccip-DKd6n4yh.js → ccip-ASjKzegb.js} +3 -3
  6. package/dist/assets/{content-CC2JTcsV.js → content-DmxMPHbR.js} +26 -14
  7. package/dist/assets/{index-D7yvlvvL.js → index-10OwZr6e.js} +4 -4
  8. package/dist/assets/{index-D4MOTQdJ.js → index-B8rDFj5N.js} +3 -3
  9. package/dist/assets/{index-1QquWG1j.js → index-Bf_-VrwW.js} +3 -3
  10. package/dist/assets/{main.CToN1F5F.js → main.BooYX2Lr.js} +1 -1
  11. package/dist/index.html +1 -1
  12. package/dist/modules/@powerhousedao/reactor-browser/{chunk-7MMXY5VI.js → chunk-7RTGQTV5.js} +16 -4
  13. package/dist/modules/@powerhousedao/reactor-browser/{chunk-KEMIF43H.js → chunk-NPCM4GRM.js} +1 -1
  14. package/dist/modules/@powerhousedao/reactor-browser/{chunk-Y2AV245J.js → chunk-REEGAZVT.js} +1 -1
  15. package/dist/modules/@powerhousedao/reactor-browser/{chunk-SNZRCTNV.js → chunk-RUNTF5WD.js} +1 -1
  16. package/dist/modules/@powerhousedao/reactor-browser/{chunk-EB4SAP74.js → chunk-ULJSSMFA.js} +1 -1
  17. package/dist/modules/@powerhousedao/reactor-browser/context/index.js +2 -2
  18. package/dist/modules/@powerhousedao/reactor-browser/context/read-mode.js +2 -2
  19. package/dist/modules/@powerhousedao/reactor-browser/hooks/index.js +3 -3
  20. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActions.js +2 -2
  21. package/dist/modules/@powerhousedao/reactor-browser/hooks/useDriveActionsWithUiNodes.js +3 -3
  22. package/dist/modules/@powerhousedao/reactor-browser/index.js +5 -5
  23. package/dist/modules/@powerhousedao/reactor-browser/reactor.js +2 -2
  24. package/dist/vite-envs.sh +1 -1
  25. package/package.json +9 -9
@@ -1,4 +1,4 @@
1
- /*! tailwindcss v4.1.3 | MIT License | https://tailwindcss.com */
1
+ /*! tailwindcss v4.1.4 | MIT License | https://tailwindcss.com */
2
2
  @layer properties;
3
3
  @layer theme, base, components, utilities;
4
4
  @layer theme {
@@ -318,7 +318,7 @@
318
318
  flex-grow: 1;
319
319
  }
320
320
  .transform {
321
- transform: var(--tw-rotate-x) var(--tw-rotate-y) var(--tw-rotate-z) var(--tw-skew-x) var(--tw-skew-y);
321
+ transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
322
322
  }
323
323
  .flex-col {
324
324
  flex-direction: column;
@@ -4237,6 +4237,11 @@
4237
4237
  color: var(--color-gray-400);
4238
4238
  }
4239
4239
  }
4240
+ .disabled\:text-gray-500 {
4241
+ &:disabled {
4242
+ color: var(--color-gray-500);
4243
+ }
4244
+ }
4240
4245
  .disabled\:text-gray-700 {
4241
4246
  &:disabled {
4242
4247
  color: var(--color-gray-700);
@@ -5722,27 +5727,22 @@ input[type="number"] {
5722
5727
  @property --tw-rotate-x {
5723
5728
  syntax: "*";
5724
5729
  inherits: false;
5725
- initial-value: rotateX(0);
5726
5730
  }
5727
5731
  @property --tw-rotate-y {
5728
5732
  syntax: "*";
5729
5733
  inherits: false;
5730
- initial-value: rotateY(0);
5731
5734
  }
5732
5735
  @property --tw-rotate-z {
5733
5736
  syntax: "*";
5734
5737
  inherits: false;
5735
- initial-value: rotateZ(0);
5736
5738
  }
5737
5739
  @property --tw-skew-x {
5738
5740
  syntax: "*";
5739
5741
  inherits: false;
5740
- initial-value: skewX(0);
5741
5742
  }
5742
5743
  @property --tw-skew-y {
5743
5744
  syntax: "*";
5744
5745
  inherits: false;
5745
- initial-value: skewY(0);
5746
5746
  }
5747
5747
  @property --tw-border-style {
5748
5748
  syntax: "*";
@@ -5766,11 +5766,11 @@ input[type="number"] {
5766
5766
  @layer properties {
5767
5767
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
5768
5768
  *, ::before, ::after, ::backdrop {
5769
- --tw-rotate-x: rotateX(0);
5770
- --tw-rotate-y: rotateY(0);
5771
- --tw-rotate-z: rotateZ(0);
5772
- --tw-skew-x: skewX(0);
5773
- --tw-skew-y: skewY(0);
5769
+ --tw-rotate-x: initial;
5770
+ --tw-rotate-y: initial;
5771
+ --tw-rotate-z: initial;
5772
+ --tw-skew-x: initial;
5773
+ --tw-skew-y: initial;
5774
5774
  --tw-border-style: solid;
5775
5775
  --tw-font-weight: initial;
5776
5776
  --tw-translate-x: 0;
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-DMQcv5I-.js","assets/main.CToN1F5F.js","assets/app-d-RO8igP.css"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-mup06TxF.js","assets/main.BooYX2Lr.js","assets/app-CDOWlDp2.css"])))=>i.map(i=>d[i]);
2
2
  var __defProp = Object.defineProperty;
3
3
  var __typeError = (msg) => {
4
4
  throw TypeError(msg);
@@ -11,7 +11,7 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
11
11
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
12
12
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
13
13
  var _tags, _levelString, _errorHandler, _ConsoleLogger_instances, levelValue_get, _getDocumentModelModule, _drives, _ReadModeService_instances, parseGraphQLErrors_fn, fetchDrive_fn, _a, _ServiceWorkerManager_instances, handleServiceWorkerMessage_fn, handleServiceWorker_fn;
14
- import { _ as __vitePreload } from "./main.CToN1F5F.js";
14
+ import { _ as __vitePreload } from "./main.BooYX2Lr.js";
15
15
  import { jsx, jsxs } from "react/jsx-runtime";
16
16
  import { useState, useEffect, Suspense, lazy } from "react";
17
17
  function _mergeNamespaces(n, m) {
@@ -22508,6 +22508,7 @@ class DefaultDrivesManager {
22508
22508
  }
22509
22509
  const PULL_DRIVE_INTERVAL = 1500;
22510
22510
  const MAX_REVISIONS_PER_ACK = 100;
22511
+ const MAX_PULLS = 50;
22511
22512
  let _staticLogger;
22512
22513
  const staticLogger = () => {
22513
22514
  if (!_staticLogger) {
@@ -22685,6 +22686,8 @@ class PullResponderTransmitter {
22685
22686
  * All other errors are caught, logged, and passed to `onError`.
22686
22687
  *
22687
22688
  * Because of this, `onError` _may be called multiple times_.
22689
+ *
22690
+ * @returns boolean indicating whether there might be more data to pull
22688
22691
  */
22689
22692
  static async executePull(driveId, trigger, onStrandUpdate, onError, onRevisions, onAcknowledge) {
22690
22693
  var _a2, _b;
@@ -22710,7 +22713,7 @@ class PullResponderTransmitter {
22710
22713
  } catch (error2) {
22711
22714
  staticLogger().error(`Could not resolve 'Listener not found' error by registering a new pull responder for drive: ${driveId}, listenerId: ${listenerId}: ${error2}`);
22712
22715
  onError(error2);
22713
- return;
22716
+ return false;
22714
22717
  }
22715
22718
  break;
22716
22719
  }
@@ -22719,7 +22722,7 @@ class PullResponderTransmitter {
22719
22722
  if (!strands) {
22720
22723
  staticLogger().error(`Error pulling strands for drive, and could not auto-register: ${driveId}, listenerId: ${trigger.data.listenerId}: ${error}`);
22721
22724
  onError(error);
22722
- return;
22725
+ return false;
22723
22726
  }
22724
22727
  if (!strands.length) {
22725
22728
  staticLogger().verbose(`[SYNC DEBUG] No strands returned in pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
@@ -22729,7 +22732,7 @@ class PullResponderTransmitter {
22729
22732
  staticLogger().error(`Error calling onRevisions for drive: ${driveId}, listenerId: ${trigger.data.listenerId}: ${error2}`);
22730
22733
  onError(error2);
22731
22734
  }
22732
- return;
22735
+ return false;
22733
22736
  }
22734
22737
  staticLogger().verbose(`[SYNC DEBUG] Processing ${strands.length} strands in pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
22735
22738
  const listenerRevisions = [];
@@ -22794,6 +22797,7 @@ class PullResponderTransmitter {
22794
22797
  staticLogger().error(`Error calling onAcknowledge for drive: ${driveId}, listenerId: ${trigger.data.listenerId}: ${error2}`);
22795
22798
  onError(error2);
22796
22799
  }
22800
+ return strands.length > 0;
22797
22801
  }
22798
22802
  static setupPull(driveId, trigger, onStrandUpdate, onError, onRevisions, onAcknowledge) {
22799
22803
  staticLogger().verbose(`[SYNC DEBUG] PullResponderTransmitter.setupPull initiated for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
@@ -22814,7 +22818,15 @@ class PullResponderTransmitter {
22814
22818
  const executeLoop = async () => {
22815
22819
  while (!isCancelled) {
22816
22820
  staticLogger().verbose(`[SYNC DEBUG] Starting pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
22817
- await this.executePull(driveId, trigger, onStrandUpdate, onError, onRevisions, onAcknowledge);
22821
+ let counter = 0;
22822
+ let hasMore = true;
22823
+ while (hasMore && !isCancelled && counter < MAX_PULLS) {
22824
+ counter++;
22825
+ hasMore = await this.executePull(driveId, trigger, onStrandUpdate, onError, onRevisions, onAcknowledge);
22826
+ if (hasMore) {
22827
+ staticLogger().verbose(`[SYNC DEBUG] More strands available, continuing pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
22828
+ }
22829
+ }
22818
22830
  staticLogger().verbose(`[SYNC DEBUG] Completed pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}, waiting ${loopInterval}ms for next cycle`);
22819
22831
  await new Promise((resolve) => {
22820
22832
  staticLogger().verbose(`Scheduling next pull in ${loopInterval} ms`);
@@ -25199,6 +25211,9 @@ function CaretLeft(props) {
25199
25211
  function CaretRight(props) {
25200
25212
  return jsx("svg", { ...props, width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("g", { id: "Caret Right", children: jsx("path", { id: "Shape", fillRule: "evenodd", clipRule: "evenodd", d: "M7.4181 5.01821C7.62899 4.80733 7.9709 4.80733 8.18178 5.01821L11.7818 8.61821C11.883 8.71948 11.9399 8.85683 11.9399 9.00005C11.9399 9.14326 11.883 9.28061 11.7818 9.38188L8.18178 12.9819C7.9709 13.1928 7.62899 13.1928 7.4181 12.9819C7.20722 12.771 7.20722 12.4291 7.4181 12.2182L10.6363 9.00005L7.4181 5.78188C7.20722 5.571 7.20722 5.22909 7.4181 5.01821Z", fill: "currentColor" }) }) });
25201
25213
  }
25214
+ function ArrowCouterclockwise(props) {
25215
+ return jsx("svg", { ...props, width: "16", height: "16", viewBox: "0 0 16 16", fill: "currentcolor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M7.99384 0V2C11.3076 2 13.9938 4.68626 13.9938 8C13.9938 11.314 11.3076 14 7.99384 14C4.6801 14 1.99384 11.314 1.99384 8C1.99384 6.928 2.27897 5.88653 2.8063 4.9792C2.99137 4.66087 3.4047 4.565 3.72297 4.75C4.0413 4.935 4.13724 5.34833 3.95217 5.66666C3.5423 6.3718 3.32717 7.16533 3.32717 8C3.32717 10.5773 5.4165 12.6667 7.99384 12.6667C10.5712 12.6667 12.6605 10.5773 12.6605 8C12.6605 5.42266 10.5712 3.33333 7.99384 3.33333V5.33333L5.32717 2.66667L7.99384 0Z" }) });
25216
+ }
25202
25217
  function ArrowFilledRight(props) {
25203
25218
  return jsx("svg", { ...props, viewBox: "0 0 9 12", fill: "currentcolor", children: jsx("path", { d: "M8.31744 6.36794C8.56085 6.17515 8.56085 5.82482 8.31744 5.63203L1.3527 0.115704C1.01647 -0.150574 0.499999 0.072258 0.499999 0.483647L0.5 11.5163C0.5 11.9277 1.01647 12.1506 1.3527 11.8843L8.31744 6.36794Z" }) });
25204
25219
  }
@@ -25265,6 +25280,9 @@ function Circle(props) {
25265
25280
  function ClockFill(props) {
25266
25281
  return jsx("svg", { ...props, viewBox: "0 0 24 24", fill: "currentcolor", children: jsx("path", { d: "M12 3C7.02948 3 3 7.0293 3 12C3 16.9707 7.02948 21 12 21C16.9705 21 21 16.9707 21 12C21 7.0293 16.9705 3 12 3ZM12 6.6C12.4971 6.6 12.9 7.0032 12.9 7.5V11.6058L15.3469 14.0529C15.6984 14.4048 15.6984 14.9952 15.3469 15.3471C14.9954 15.6981 14.4046 15.6981 14.0531 15.3471L11.3531 12.6471C11.1843 12.4779 11.1 12.2385 11.1 12V7.5C11.1 7.0032 11.5029 6.6 12 6.6Z" }) });
25267
25282
  }
25283
+ function ClockHistory(props) {
25284
+ return jsx("svg", { ...props, width: "16", height: "16", viewBox: "0 0 16 16", fill: "currentcolor", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { d: "M8.02812 1.33264C4.33612 1.33264 1.34277 4.31663 1.34277 7.99797C1.34277 11.6793 4.33612 14.664 8.02812 14.664C9.83012 14.664 11.5248 13.9533 12.7708 12.706C13.0314 12.4446 13.0328 12.028 12.7708 11.7686C12.5094 11.5086 12.0914 11.5073 11.8308 11.7686C10.8334 12.7673 9.47078 13.3306 8.02812 13.3306C5.07478 13.3306 2.68011 10.9433 2.68011 7.99797C2.68011 5.0533 5.07478 2.66597 8.02812 2.66597C8.39745 2.66597 8.69678 2.36731 8.69678 1.99931C8.69678 1.63131 8.39745 1.33264 8.02812 1.33264ZM10.4728 1.93665C10.3108 1.98998 10.1781 2.10465 10.0968 2.26998C9.93412 2.60065 10.0581 3.00331 10.3894 3.16597C10.5674 3.25264 10.7241 3.35065 10.8908 3.45732C11.2014 3.65532 11.6321 3.55931 11.8308 3.24931C12.0294 2.93864 11.9328 2.53064 11.6221 2.33264C11.4128 2.19931 11.1968 2.0873 10.9741 1.97864C10.8088 1.8973 10.6354 1.88398 10.4728 1.93665ZM12.8334 3.58199C12.6641 3.56199 12.4774 3.61465 12.3321 3.72799C12.0421 3.95532 11.9994 4.37599 12.2281 4.66532C12.3501 4.82066 12.4781 4.97665 12.5828 5.14465C12.7774 5.45732 13.1888 5.54666 13.5021 5.35266C13.8161 5.15866 13.9054 4.76998 13.7114 4.45732C13.5808 4.24732 13.4254 4.02666 13.2721 3.83199C13.1581 3.68732 13.0034 3.60266 12.8334 3.58199ZM8.02812 3.99866C7.65945 3.99866 7.36011 4.29732 7.36011 4.66532V7.99797C7.36011 8.1753 7.44343 8.35196 7.56877 8.47729L9.5741 10.4766C9.83543 10.7373 10.2534 10.7373 10.5148 10.4766C10.7754 10.2166 10.7754 9.7793 10.5148 9.51864L8.69678 7.70662V4.66532C8.69678 4.29732 8.39745 3.99866 8.02812 3.99866ZM13.7528 6.01933C13.3921 6.09866 13.1714 6.45129 13.2514 6.81063C13.2941 7.00329 13.3354 7.19729 13.3561 7.39396C13.3948 7.75996 13.7201 8.01596 14.0874 7.97729C14.4541 7.93863 14.7114 7.61466 14.6721 7.24866C14.6461 7.00199 14.6214 6.75999 14.5674 6.51933C14.4881 6.15999 14.1134 5.93999 13.7528 6.01933ZM14.0454 8.72729C13.6868 8.64063 13.3174 8.86929 13.2308 9.22729C13.1841 9.41996 13.1101 9.60464 13.0428 9.78931C12.9161 10.1353 13.1134 10.4966 13.4608 10.6226C13.8074 10.7486 14.1701 10.594 14.2961 10.248C14.3808 10.016 14.4674 9.78064 14.5261 9.53931C14.6128 9.18197 14.4041 8.81396 14.0454 8.72729Z" }) });
25285
+ }
25268
25286
  function Clock(props) {
25269
25287
  return jsx("svg", { ...props, width: "16", height: "16", viewBox: "0 0 16 16", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8.00022 0.967133C4.11618 0.967133 0.967529 4.11578 0.967529 7.99982C0.967529 11.8838 4.11617 15.0325 8.00022 15.0325C11.8842 15.0325 15.0329 11.8838 15.0329 7.99982C15.0329 4.11578 11.8842 0.967133 8.00022 0.967133ZM1.91753 7.99982C1.91753 4.64045 4.64085 1.91713 8.00022 1.91713C11.3596 1.91713 14.0829 4.64045 14.0829 7.99982C14.0829 11.3592 11.3596 14.0825 8.00022 14.0825C4.64085 14.0825 1.91753 11.3592 1.91753 7.99982ZM8.50012 4.8C8.50012 4.52386 8.27626 4.3 8.00012 4.3C7.72398 4.3 7.50012 4.52386 7.50012 4.8V8C7.50012 8.13261 7.5528 8.25979 7.64657 8.35355L9.7799 10.4869C9.97516 10.6821 10.2917 10.6821 10.487 10.4869C10.6823 10.2916 10.6823 9.97504 10.487 9.77978L8.50012 7.79289V4.8Z", fill: "currentColor" }) });
25270
25288
  }
@@ -25484,6 +25502,9 @@ function Syncing(props) {
25484
25502
  function Tabler(props) {
25485
25503
  return jsxs("svg", { ...props, width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: [jsx("path", { d: "M4.5 9V7.5C4.5 6.30653 4.97411 5.16193 5.81802 4.31802C6.66193 3.47411 7.80653 3 9 3C10.1935 3 11.3381 3.47411 12.182 4.31802C13.0259 5.16193 13.5 6.30653 13.5 7.5V9M3 13.5C3 13.8978 3.15804 14.2794 3.43934 14.5607C3.72064 14.842 4.10218 15 4.5 15C4.89782 15 5.27936 14.842 5.56066 14.5607C5.84196 14.2794 6 13.8978 6 13.5C6 13.1022 5.84196 12.7206 5.56066 12.4393C5.27936 12.158 4.89782 12 4.5 12C4.10218 12 3.72064 12.158 3.43934 12.4393C3.15804 12.7206 3 13.1022 3 13.5ZM12 13.5C12 13.8978 12.158 14.2794 12.4393 14.5607C12.7206 14.842 13.1022 15 13.5 15C13.8978 15 14.2794 14.842 14.5607 14.5607C14.842 14.2794 15 13.8978 15 13.5C15 13.1022 14.842 12.7206 14.5607 12.4393C14.2794 12.158 13.8978 12 13.5 12C13.1022 12 12.7206 12.158 12.4393 12.4393C12.158 12.7206 12 13.1022 12 13.5Z", stroke: "currentcolor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" }), jsx("path", { d: "M11.25 6.75L13.5 9L15.75 6.75", stroke: "currentcolor", strokeWidth: "1.5", strokeLinecap: "round", strokeLinejoin: "round" })] });
25486
25504
  }
25505
+ function Timeline(props) {
25506
+ return jsxs("svg", { ...props, width: "16", height: "16", viewBox: "0 0 16 16", fill: "currentcolor", children: [jsx("rect", { width: "16", height: "16", fill: "url(#pattern0_1256_1508)" }), jsxs("defs", { children: [jsx("pattern", { id: "pattern0_1256_1508", patternContentUnits: "objectBoundingBox", width: "1", height: "1", children: jsx("use", { href: "#image0_1256_1508", transform: "scale(0.00195312)" }) }), jsx("image", { id: "image0_1256_1508", width: "512", height: "512", preserveAspectRatio: "none", href: "data:image/png;base64,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" })] })] });
25507
+ }
25487
25508
  function TrashFill(props) {
25488
25509
  return jsx("svg", { ...props, viewBox: "0 0 24 24", fill: "currentcolor", children: jsx("path", { d: "M11.9981 4.46484C11.1693 4.46484 10.4981 5.13609 10.4981 5.96484H6.74805C6.33405 5.96484 5.99805 6.30084 5.99805 6.71484C5.99805 7.12884 6.33405 7.46483 6.74805 7.46483H17.2481C17.6621 7.46483 17.9981 7.12884 17.9981 6.71484C17.9981 6.30084 17.6621 5.96484 17.2481 5.96484H13.4981C13.4981 5.13609 12.8268 4.46484 11.9981 4.46484ZM6.74805 8.96483V16.4648C6.74805 18.1073 8.1018 19.4415 9.74805 19.4415L14.2713 19.4648C15.9176 19.4648 17.2481 18.1111 17.2481 16.4648V8.96483H6.74805ZM10.4981 11.2148C10.9121 11.2148 11.2481 11.5508 11.2481 11.9648V16.4648C11.2481 16.8788 10.9121 17.2148 10.4981 17.2148C10.0841 17.2148 9.74805 16.8788 9.74805 16.4648V11.9648C9.74805 11.5508 10.0841 11.2148 10.4981 11.2148ZM13.4981 11.2148C13.9121 11.2148 14.2481 11.5508 14.2481 11.9648V16.4648C14.2481 16.8788 13.9121 17.2148 13.4981 17.2148C13.0841 17.2148 12.7481 16.8788 12.7481 16.4648V11.9648C12.7481 11.5508 13.0841 11.2148 13.4981 11.2148Z" }) });
25489
25510
  }
@@ -25524,6 +25545,7 @@ const iconComponents = {
25524
25545
  CalendarTime,
25525
25546
  CaretLeft,
25526
25547
  CaretRight,
25548
+ ArrowCouterclockwise,
25527
25549
  ArrowFilledRight,
25528
25550
  ArrowLeft,
25529
25551
  ArrowUp,
@@ -25546,6 +25568,7 @@ const iconComponents = {
25546
25568
  CircleInfo,
25547
25569
  Circle,
25548
25570
  ClockFill,
25571
+ ClockHistory,
25549
25572
  Clock,
25550
25573
  CloudSlash,
25551
25574
  Collapse,
@@ -25619,6 +25642,7 @@ const iconComponents = {
25619
25642
  Synced,
25620
25643
  Syncing,
25621
25644
  Tabler,
25645
+ Timeline,
25622
25646
  TrashFill,
25623
25647
  Trash,
25624
25648
  TreeViewSlash,
@@ -25769,7 +25793,7 @@ const nodeOptionsMap = {
25769
25793
  };
25770
25794
  const name = "@powerhousedao/connect";
25771
25795
  const productName = "Powerhouse-Connect";
25772
- const version$1 = "1.0.15-dev.0";
25796
+ const version$1 = "1.0.16-dev.1";
25773
25797
  const description = "Powerhouse Connect";
25774
25798
  const main = "./dist/index.html";
25775
25799
  const type = "module";
@@ -31374,7 +31398,7 @@ if (window.__VITE_ENVS.MODE === "development") {
31374
31398
  } else {
31375
31399
  serviceWorkerManager.registerServiceWorker(false);
31376
31400
  }
31377
- const App = lazy(() => __vitePreload(() => import("./app-DMQcv5I-.js").then((n) => n.aN), true ? __vite__mapDeps([0,1,2]) : void 0));
31401
+ const App = lazy(() => __vitePreload(() => import("./app-mup06TxF.js").then((n) => n.aQ), true ? __vite__mapDeps([0,1,2]) : void 0));
31378
31402
  const AppLoader = /* @__PURE__ */ jsx(Suspense, { children: /* @__PURE__ */ jsx(App, {}) });
31379
31403
  const appLoader = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
31380
31404
  __proto__: null,
@@ -3805,6 +3805,10 @@
3805
3805
  color: var(--color-gray-400);
3806
3806
  }
3807
3807
 
3808
+ .disabled\:text-gray-500:disabled {
3809
+ color: var(--color-gray-500);
3810
+ }
3811
+
3808
3812
  .disabled\:text-gray-700:disabled {
3809
3813
  color: var(--color-gray-700);
3810
3814
  }
@@ -1,4 +1,4 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ccip-DKd6n4yh.js","assets/main.CToN1F5F.js","assets/app-loader-CVNv9V70.js","assets/app-loader-Br74gdhw.css","assets/index-D4MOTQdJ.js","assets/style-Ce3V83BE.css","assets/index-D7yvlvvL.js","assets/content-CC2JTcsV.js"])))=>i.map(i=>d[i]);
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/ccip-ASjKzegb.js","assets/main.BooYX2Lr.js","assets/app-loader-ByxyqGmZ.js","assets/app-loader-DiF8OhX3.css","assets/index-B8rDFj5N.js","assets/style-Ce3V83BE.css","assets/index-10OwZr6e.js","assets/content-DmxMPHbR.js"])))=>i.map(i=>d[i]);
2
2
  var __defProp = Object.defineProperty;
3
3
  var __typeError = (msg) => {
4
4
  throw TypeError(msg);
@@ -19,9 +19,9 @@ var __privateWrapper = (obj, member, setter, getter) => ({
19
19
  }
20
20
  });
21
21
  var _focused, _cleanup, _setup, _a, _online, _cleanup2, _setup2, _b, _gcTimeout, _c, _initialState, _revertState, _cache, _client, _retryer, _defaultOptions, _abortSignalConsumed, _Query_instances, dispatch_fn, _d, _queries, _e2, _observers, _mutationCache, _retryer2, _Mutation_instances, dispatch_fn2, _f, _mutations, _scopes, _mutationId, _g, _queryCache, _mutationCache2, _defaultOptions2, _queryDefaults, _mutationDefaults, _mountCount, _unsubscribeFocus, _unsubscribeOnline, _h, _client2, _currentQuery, _currentQueryInitialState, _currentResult, _currentResultState, _currentResultOptions, _currentThenable, _selectError, _selectFn, _selectResult, _lastQueryWithDefinedData, _staleTimeoutId, _refetchIntervalId, _currentRefetchInterval, _trackedProps, _QueryObserver_instances, executeFetch_fn, updateStaleTimeout_fn, computeRefetchInterval_fn, updateRefetchInterval_fn, updateTimers_fn, clearStaleTimeout_fn, clearRefetchInterval_fn, updateQuery_fn, notify_fn, _i;
22
- import { _ as __vitePreload } from "./main.CToN1F5F.js";
22
+ import { _ as __vitePreload } from "./main.BooYX2Lr.js";
23
23
  import { jsx as jsx$1, Fragment, jsxs } from "react/jsx-runtime";
24
- import { c as createAction, a as createReducer, i as isDocumentAction, R as ReorderStateExamplesInputSchema, D as DeleteStateExampleInputSchema, U as UpdateStateExampleInputSchema, A as AddStateExampleInputSchema, S as SetInitialStateInputSchema, b as SetStateSchemaInputSchema, d as ReorderModuleOperationsInputSchema, e as DeleteOperationInputSchema, M as MoveOperationInputSchema, f as SetOperationReducerInputSchema, g as SetOperationTemplateInputSchema, h as SetOperationDescriptionInputSchema, j as SetOperationSchemaInputSchema, k as SetOperationScopeInputSchema, l as SetOperationNameInputSchema, m as AddOperationInputSchema, n as ReorderOperationExamplesInputSchema, o as DeleteOperationExampleInputSchema, p as UpdateOperationExampleInputSchema, q as AddOperationExampleInputSchema, r as ReorderOperationErrorsInputSchema, s as DeleteOperationErrorInputSchema, t as SetOperationErrorTemplateInputSchema, u as SetOperationErrorDescriptionInputSchema, v as SetOperationErrorNameInputSchema, w as SetOperationErrorCodeInputSchema, x as AddOperationErrorInputSchema, y as ReorderModulesInputSchema, z as DeleteModuleInputSchema, B as SetModuleDescriptionInputSchema, C as SetModuleNameInputSchema, E as AddModuleInputSchema, F as ReorderChangeLogItemsInputSchema, G as DeleteChangeLogItemInputSchema, H as UpdateChangeLogItemInputSchema, I as AddChangeLogItemInputSchema, J as SetAuthorWebsiteInputSchema, K as SetAuthorNameInputSchema, L as SetModelDescriptionInputSchema, N as SetModelExtensionInputSchema, O as SetModelIdInputSchema, P as SetModelNameInputSchema, Q as baseCreateExtendedState, T as baseCreateDocument, V as baseSaveToFile, W as baseSaveToFileHandle, X as baseLoadFromFile, Y as baseLoadFromInput, Z as pascalCase, _ as Icon, $ as getDefaultExportFromCjs, a0 as LOCAL, a1 as commonjsGlobal, a2 as PUBLIC, a3 as SWITCHBOARD, a4 as locationInfoByLocation, a5 as sharingTypeOptions, a6 as objectType, a7 as recordType, a8 as stringType, a9 as capitalCase, aa as CLOUD, ab as createZip, ac as logger$1, ad as LZString, ae as buildSignedOperation, af as getI18n, ag as getDefaults, ah as connectConfig, ai as hashDocumentStateForScope, aj as setErrorHandler, ak as driveDocumentModelModule, al as createBrowserDocumentDriveServer, am as hashKey$1, an as childLogger, ao as reducer$8, ap as isDocumentDrive, aq as generateAddNodeAction, ar as isFileNode, as as uploadDocumentOperations, at as updateFile, au as addFolder, av as isFolderNode, aw as deleteNode, ax as updateNode, ay as FILE, az as moveNode, aA as generateNodesCopy, aB as copyNode, aC as createState$1, aD as setDriveName, aE as setAvailableOffline, aF as setSharingType, aG as SynchronizationUnitNotFoundError, aH as removeTrigger, aI as generateUUID, aJ as PullResponderTransmitter, aK as addTrigger, aL as ReadDriveNotFoundError, aM as openUrl, aN as getNodeOptions, aO as DRIVE, aP as FOLDER, aQ as requestPublicDrive, aR as serviceWorkerManager, aS as packageJson, aT as t$1, aU as gql, aV as request } from "./app-loader-CVNv9V70.js";
24
+ import { c as createAction, a as createReducer, i as isDocumentAction, R as ReorderStateExamplesInputSchema, D as DeleteStateExampleInputSchema, U as UpdateStateExampleInputSchema, A as AddStateExampleInputSchema, S as SetInitialStateInputSchema, b as SetStateSchemaInputSchema, d as ReorderModuleOperationsInputSchema, e as DeleteOperationInputSchema, M as MoveOperationInputSchema, f as SetOperationReducerInputSchema, g as SetOperationTemplateInputSchema, h as SetOperationDescriptionInputSchema, j as SetOperationSchemaInputSchema, k as SetOperationScopeInputSchema, l as SetOperationNameInputSchema, m as AddOperationInputSchema, n as ReorderOperationExamplesInputSchema, o as DeleteOperationExampleInputSchema, p as UpdateOperationExampleInputSchema, q as AddOperationExampleInputSchema, r as ReorderOperationErrorsInputSchema, s as DeleteOperationErrorInputSchema, t as SetOperationErrorTemplateInputSchema, u as SetOperationErrorDescriptionInputSchema, v as SetOperationErrorNameInputSchema, w as SetOperationErrorCodeInputSchema, x as AddOperationErrorInputSchema, y as ReorderModulesInputSchema, z as DeleteModuleInputSchema, B as SetModuleDescriptionInputSchema, C as SetModuleNameInputSchema, E as AddModuleInputSchema, F as ReorderChangeLogItemsInputSchema, G as DeleteChangeLogItemInputSchema, H as UpdateChangeLogItemInputSchema, I as AddChangeLogItemInputSchema, J as SetAuthorWebsiteInputSchema, K as SetAuthorNameInputSchema, L as SetModelDescriptionInputSchema, N as SetModelExtensionInputSchema, O as SetModelIdInputSchema, P as SetModelNameInputSchema, Q as baseCreateExtendedState, T as baseCreateDocument, V as baseSaveToFile, W as baseSaveToFileHandle, X as baseLoadFromFile, Y as baseLoadFromInput, Z as pascalCase, _ as Icon, $ as getDefaultExportFromCjs, a0 as LOCAL, a1 as commonjsGlobal, a2 as PUBLIC, a3 as SWITCHBOARD, a4 as locationInfoByLocation, a5 as sharingTypeOptions, a6 as objectType, a7 as recordType, a8 as stringType, a9 as capitalCase, aa as CLOUD, ab as createZip, ac as logger$1, ad as LZString, ae as buildSignedOperation, af as getI18n, ag as getDefaults, ah as connectConfig, ai as hashDocumentStateForScope, aj as setErrorHandler, ak as driveDocumentModelModule, al as createBrowserDocumentDriveServer, am as hashKey$1, an as childLogger, ao as reducer$8, ap as isDocumentDrive, aq as generateAddNodeAction, ar as isFileNode, as as uploadDocumentOperations, at as updateFile, au as addFolder, av as isFolderNode, aw as deleteNode, ax as updateNode, ay as FILE, az as moveNode, aA as generateNodesCopy, aB as copyNode, aC as createState$1, aD as setDriveName, aE as setAvailableOffline, aF as setSharingType, aG as SynchronizationUnitNotFoundError, aH as removeTrigger, aI as generateUUID, aJ as PullResponderTransmitter, aK as addTrigger, aL as ReadDriveNotFoundError, aM as openUrl, aN as getNodeOptions, aO as DRIVE, aP as FOLDER, aQ as requestPublicDrive, aR as serviceWorkerManager, aS as packageJson, aT as t$1, aU as gql, aV as request } from "./app-loader-ByxyqGmZ.js";
25
25
  import * as React from "react";
26
26
  import React__default, { useLayoutEffect, useEffect, useState, forwardRef, useRef, useCallback, useContext, useMemo, createContext, Component, Fragment as Fragment$1, createElement, useSyncExternalStore, useId as useId$1, isValidElement, cloneElement, Children, useReducer, useDebugValue, Suspense } from "react";
27
27
  import "@powerhousedao/reactor-browser";
@@ -20574,7 +20574,7 @@ async function call(client2, args) {
20574
20574
  } catch (err) {
20575
20575
  const data2 = getRevertErrorData(err);
20576
20576
  const { offchainLookup, offchainLookupSignature } = await __vitePreload(async () => {
20577
- const { offchainLookup: offchainLookup2, offchainLookupSignature: offchainLookupSignature2 } = await import("./ccip-DKd6n4yh.js");
20577
+ const { offchainLookup: offchainLookup2, offchainLookupSignature: offchainLookupSignature2 } = await import("./ccip-ASjKzegb.js");
20578
20578
  return { offchainLookup: offchainLookup2, offchainLookupSignature: offchainLookupSignature2 };
20579
20579
  }, true ? __vite__mapDeps([0,1,2,3]) : void 0);
20580
20580
  if (client2.ccipRead !== false && (data2 == null ? void 0 : data2.slice(0, 10)) === offchainLookupSignature && to)
@@ -71667,7 +71667,7 @@ const useFilteredDocumentModels = () => {
71667
71667
  return filteredDocumentModels;
71668
71668
  };
71669
71669
  async function loadBaseEditors() {
71670
- const documentModelEditor = await __vitePreload(() => import("./index-D4MOTQdJ.js"), true ? __vite__mapDeps([4,2,1,3]) : void 0);
71670
+ const documentModelEditor = await __vitePreload(() => import("./index-B8rDFj5N.js"), true ? __vite__mapDeps([4,2,1,3]) : void 0);
71671
71671
  await __vitePreload(() => Promise.resolve({}), true ? __vite__mapDeps([5]) : void 0);
71672
71672
  const module = documentModelEditor.documentModelEditorModule;
71673
71673
  return [module];
@@ -71708,7 +71708,7 @@ async function initReactor(reactor) {
71708
71708
  }
71709
71709
  const drives = await reactor.getDrives();
71710
71710
  if (!drives.length && connectConfig.drives.sections.LOCAL.enabled) {
71711
- reactor.addDrive({
71711
+ return reactor.addDrive({
71712
71712
  global: {
71713
71713
  id: hashKey$1(),
71714
71714
  name: "My Local Drive",
@@ -71818,11 +71818,11 @@ const connectCrypto = (async () => {
71818
71818
  return window.connectCrypto;
71819
71819
  }
71820
71820
  const { ConnectCrypto } = await __vitePreload(async () => {
71821
- const { ConnectCrypto: ConnectCrypto2 } = await import("./index-D7yvlvvL.js");
71821
+ const { ConnectCrypto: ConnectCrypto2 } = await import("./index-10OwZr6e.js");
71822
71822
  return { ConnectCrypto: ConnectCrypto2 };
71823
71823
  }, true ? __vite__mapDeps([6,1,2,3]) : void 0);
71824
71824
  const { BrowserKeyStorage } = await __vitePreload(async () => {
71825
- const { BrowserKeyStorage: BrowserKeyStorage2 } = await import("./index-D7yvlvvL.js");
71825
+ const { BrowserKeyStorage: BrowserKeyStorage2 } = await import("./index-10OwZr6e.js");
71826
71826
  return { BrowserKeyStorage: BrowserKeyStorage2 };
71827
71827
  }, true ? __vite__mapDeps([6,1,2,3]) : void 0);
71828
71828
  const connectCrypto2 = new ConnectCrypto(new BrowserKeyStorage());
@@ -71871,7 +71871,7 @@ function useRenown() {
71871
71871
  return;
71872
71872
  }
71873
71873
  const { initRenownBrowser } = await __vitePreload(async () => {
71874
- const { initRenownBrowser: initRenownBrowser2 } = await import("./index-D7yvlvvL.js");
71874
+ const { initRenownBrowser: initRenownBrowser2 } = await import("./index-10OwZr6e.js");
71875
71875
  return { initRenownBrowser: initRenownBrowser2 };
71876
71876
  }, true ? __vite__mapDeps([6,1,2,3]) : void 0);
71877
71877
  const renownBrowser = initRenownBrowser(did2);
@@ -72095,7 +72095,7 @@ function useDocumentDrives() {
72095
72095
  const [status, setStatus] = useAtom(
72096
72096
  documentDrivesInitializedMapAtomFamily(reactor)
72097
72097
  );
72098
- if (status === "INITIAL") {
72098
+ if (status === "INITIAL" && reactor) {
72099
72099
  setStatus("LOADING");
72100
72100
  refreshDocumentDrives().then(() => setStatus("LOADED")).catch(() => setStatus("ERROR"));
72101
72101
  }
@@ -79416,6 +79416,7 @@ const DangerZone = ({
79416
79416
  ),
79417
79417
  onContinue: () => {
79418
79418
  clearStorage().then(() => {
79419
+ navigate("/");
79419
79420
  onRefresh();
79420
79421
  }).catch(logger$1.error);
79421
79422
  },
@@ -80231,7 +80232,7 @@ function Home() {
80231
80232
  /* @__PURE__ */ jsx$1(HomeScreenAddDriveItem, { onClick: onAddDriveClick })
80232
80233
  ] });
80233
80234
  }
80234
- const Content = React__default.lazy(() => __vitePreload(() => import("./content-CC2JTcsV.js"), true ? __vite__mapDeps([7,2,1,3]) : void 0));
80235
+ const Content = React__default.lazy(() => __vitePreload(() => import("./content-DmxMPHbR.js"), true ? __vite__mapDeps([7,2,1,3]) : void 0));
80235
80236
  async function createRouter(routes) {
80236
80237
  var _a2;
80237
80238
  const isPackaged = await ((_a2 = window.electronAPI) == null ? void 0 : _a2.isPackaged());
@@ -80359,51 +80360,54 @@ export {
80359
80360
  useFilteredDocumentModels as a2,
80360
80361
  useDriveEditor as a3,
80361
80362
  useDocumentDriveById as a4,
80362
- clsx as a5,
80363
- get as a6,
80364
- set as a7,
80365
- appendErrors as a8,
80366
- useFormContext as a9,
80367
- addOperationError as aA,
80368
- deleteOperationError as aB,
80369
- setOperationErrorName as aC,
80370
- BaseError$4 as aD,
80371
- getUrl as aE,
80372
- stringify$1 as aF,
80373
- decodeErrorResult as aG,
80374
- isAddressEqual as aH,
80375
- call as aI,
80376
- concat$1 as aJ,
80377
- encodeAbiParameters as aK,
80378
- HttpRequestError as aL,
80379
- isHex as aM,
80380
- app as aN,
80381
- Primitive as aa,
80382
- cva as ab,
80383
- FormProvider as ac,
80384
- Controller as ad,
80385
- Slot as ae,
80386
- useForm as af,
80387
- Root2 as ag,
80388
- List as ah,
80389
- Trigger as ai,
80390
- Content$2 as aj,
80391
- setModelName as ak,
80392
- setModelId as al,
80393
- setModelDescription as am,
80394
- setModelExtension as an,
80395
- setAuthorName as ao,
80396
- setAuthorWebsite as ap,
80397
- setStateSchema as aq,
80398
- setInitialState as ar,
80399
- addModule as as,
80400
- setModuleName as at,
80401
- deleteModule as au,
80402
- addOperation as av,
80403
- setOperationName as aw,
80404
- setOperationSchema as ax,
80405
- setOperationDescription as ay,
80406
- deleteOperation as az,
80363
+ useParams as a5,
80364
+ useDocumentDrives as a6,
80365
+ toast as a7,
80366
+ clsx as a8,
80367
+ get as a9,
80368
+ setOperationSchema as aA,
80369
+ setOperationDescription as aB,
80370
+ deleteOperation as aC,
80371
+ addOperationError as aD,
80372
+ deleteOperationError as aE,
80373
+ setOperationErrorName as aF,
80374
+ BaseError$4 as aG,
80375
+ getUrl as aH,
80376
+ stringify$1 as aI,
80377
+ decodeErrorResult as aJ,
80378
+ isAddressEqual as aK,
80379
+ call as aL,
80380
+ concat$1 as aM,
80381
+ encodeAbiParameters as aN,
80382
+ HttpRequestError as aO,
80383
+ isHex as aP,
80384
+ app as aQ,
80385
+ set as aa,
80386
+ appendErrors as ab,
80387
+ useFormContext as ac,
80388
+ Primitive as ad,
80389
+ cva as ae,
80390
+ FormProvider as af,
80391
+ Controller as ag,
80392
+ Slot as ah,
80393
+ useForm as ai,
80394
+ Root2 as aj,
80395
+ List as ak,
80396
+ Trigger as al,
80397
+ Content$2 as am,
80398
+ setModelName as an,
80399
+ setModelId as ao,
80400
+ setModelDescription as ap,
80401
+ setModelExtension as aq,
80402
+ setAuthorName as ar,
80403
+ setAuthorWebsite as as,
80404
+ setStateSchema as at,
80405
+ setInitialState as au,
80406
+ addModule as av,
80407
+ setModuleName as aw,
80408
+ deleteModule as ax,
80409
+ addOperation as ay,
80410
+ setOperationName as az,
80407
80411
  addExternalPackage as b,
80408
80412
  RENOWN_NETWORK_ID as c,
80409
80413
  RENOWN_CHAIN_ID as d,
@@ -1,7 +1,7 @@
1
- import { aD as BaseError, aE as getUrl, aF as stringify, aG as decodeErrorResult, aH as isAddressEqual, aI as call, aJ as concat, aK as encodeAbiParameters, aL as HttpRequestError, aM as isHex } from "./app-DMQcv5I-.js";
2
- import "./main.CToN1F5F.js";
1
+ import { aG as BaseError, aH as getUrl, aI as stringify, aJ as decodeErrorResult, aK as isAddressEqual, aL as call, aM as concat, aN as encodeAbiParameters, aO as HttpRequestError, aP as isHex } from "./app-mup06TxF.js";
2
+ import "./main.BooYX2Lr.js";
3
3
  import "react/jsx-runtime";
4
- import "./app-loader-CVNv9V70.js";
4
+ import "./app-loader-ByxyqGmZ.js";
5
5
  import "react";
6
6
  import "@powerhousedao/reactor-browser";
7
7
  import "react-dom";
@@ -1,8 +1,8 @@
1
1
  import { jsx, jsxs, Fragment as Fragment$1 } from "react/jsx-runtime";
2
- import { t as twMerge, B as Button, m as mergeClassNameProps, E as ERROR, M as MISSING, C as CONFLICT, S as SUCCESS, h as SYNCING, I as INITIAL_SYNC, i as ConnectDropdownMenu, u as useOnClickOutside, j as useEventListener, k as useCopyToClipboard, l as Select, n as ENSAvatar, P as Provider, o as Root3, T as Trigger, p as Portal, q as Content2, v as validateInitialState, w as validateStateSchemaName, x as validateModules, y as useUnwrappedReactor, z as useConnectDid, A as useConnectCrypto, D as useTranslation, F as useModal, G as useAtomValue, H as themeAtom, J as useUser, K as useUserPermissions, L as useUiNodes, N as exportFile, O as useGetDocumentModelModule, Q as addActionContext, U as signOperation, V as useDocumentDriveServer, W as useHotkeys, X as useGetEditor, Y as isSameDocument, Z as useNavigate, _ as ErrorBoundary, $ as DriveLayout, a0 as SearchBar, a1 as useAsyncReactor, a2 as useFilteredDocumentModels, a3 as useDriveEditor, a4 as useDocumentDriveById } from "./app-DMQcv5I-.js";
2
+ import { t as twMerge, B as Button, m as mergeClassNameProps, E as ERROR, M as MISSING, C as CONFLICT, S as SUCCESS, h as SYNCING, I as INITIAL_SYNC, i as ConnectDropdownMenu, u as useOnClickOutside, j as useEventListener, k as useCopyToClipboard, l as Select, n as ENSAvatar, P as Provider, o as Root3, T as Trigger, p as Portal, q as Content2, v as validateInitialState, w as validateStateSchemaName, x as validateModules, y as useUnwrappedReactor, z as useConnectDid, A as useConnectCrypto, D as useTranslation, F as useModal, G as useAtomValue, H as themeAtom, J as useUser, K as useUserPermissions, L as useUiNodes, N as exportFile, O as useGetDocumentModelModule, Q as addActionContext, U as signOperation, V as useDocumentDriveServer, W as useHotkeys, X as useGetEditor, Y as isSameDocument, Z as useNavigate, _ as ErrorBoundary, $ as DriveLayout, a0 as SearchBar, a1 as useAsyncReactor, a2 as useFilteredDocumentModels, a3 as useDriveEditor, a4 as useDocumentDriveById, a5 as useParams, a6 as useDocumentDrives, a7 as toast } from "./app-mup06TxF.js";
3
3
  import * as React from "react";
4
4
  import React__default, { useState, useCallback, useMemo, useEffect, Fragment, useRef, useLayoutEffect, memo as memo$1, createElement, useSyncExternalStore, Suspense } from "react";
5
- import { _ as Icon, aX as getDimensions, aY as READ, aZ as nodeOptionsMap, a_ as defaultFileOptions, a$ as DELETE, b0 as RENAME, b1 as WRITE, b2 as DUPLICATE, b3 as defaultFolderOptions, b4 as garbageCollect, b5 as sortOperations, b6 as UI_NODE, aO as DRIVE, ay as FILE, b7 as undo, b8 as redo, ac as logger, b9 as useDocumentDispatch, aP as FOLDER, ak as driveDocumentModelModule } from "./app-loader-CVNv9V70.js";
5
+ import { _ as Icon, aX as getDimensions, aY as READ, aZ as nodeOptionsMap, a_ as defaultFileOptions, a$ as DELETE, b0 as RENAME, b1 as WRITE, b2 as DUPLICATE, b3 as defaultFolderOptions, b4 as garbageCollect, b5 as sortOperations, b6 as UI_NODE, aO as DRIVE, ay as FILE, b7 as undo, b8 as redo, ac as logger, b9 as useDocumentDispatch, aP as FOLDER, ak as driveDocumentModelModule } from "./app-loader-ByxyqGmZ.js";
6
6
  import { useDocument, useDocumentEditorProps } from "@powerhousedao/reactor-browser";
7
7
  import { useUiNodesContext, FILE as FILE$1 } from "@powerhousedao/reactor-browser/hooks/useUiNodesContext";
8
8
  import { useDriveActionsWithUiNodes } from "@powerhousedao/reactor-browser/hooks/useDriveActionsWithUiNodes";
@@ -10,7 +10,7 @@ import { DriveContextProvider, useDriveContext } from "@powerhousedao/reactor-br
10
10
  import "@powerhousedao/reactor-browser/uiNodes/constants";
11
11
  import { makeDriveDocumentStateHook } from "@powerhousedao/reactor-browser/hooks/document-state";
12
12
  import { flushSync } from "react-dom";
13
- import "./main.CToN1F5F.js";
13
+ import "./main.BooYX2Lr.js";
14
14
  const PaginationButton = ({ active = false, ...props }) => {
15
15
  const className = twMerge("h-8 min-w-8 border border-solid border-gray-300 bg-white px-3 py-1 text-xs text-gray-900 hover:bg-gray-100", !active && "border-0");
16
16
  return jsx(Button, { color: "light", size: "small", ...mergeClassNameProps(props, className), children: props.children });
@@ -158,18 +158,15 @@ function DefaultEditorLoader(props) {
158
158
  return jsx("div", { className: "grid h-full place-items-center", ...divProps, children: jsxs("div", { className: "-mt-20 grid place-items-center", children: [jsx("h3", { className: "mb-4 text-xl", children: message2 }), jsx(AnimatedLoader, {})] }) });
159
159
  }
160
160
  const DocumentToolbar = (props) => {
161
- const { undo: undo2, canUndo, redo: redo2, canRedo, title, onClose, onExport, className, onShowRevisionHistory, onSwitchboardLinkClick } = props;
162
- return jsxs("div", { className: twMerge("flex items-center justify-between", className), children: [jsx("div", { children: undo2 && redo2 && canUndo && canRedo && jsx(EditorUndoRedoButtons, { undo: undo2, canUndo, redo: redo2, canRedo }) }), jsx("div", { children: jsx("h2", { className: "text-sm font-semibold", children: title }) }), jsx("div", { children: jsx(EditorActionButtons, { onClose, onExport, onShowRevisionHistory, onSwitchboardLinkClick }) })] });
161
+ const { undo: undo2, canUndo, redo: redo2, canRedo, title, onClose, onExport, className, onShowRevisionHistory, onSwitchboardLinkClick, onShowTimeline } = props;
162
+ const isUndoDisabled = !canUndo || !undo2;
163
+ const isRedoDisabled = !canRedo || !redo2;
164
+ const isExportDisabled = !onExport;
165
+ const isSwitchboardLinkDisabled = !onSwitchboardLinkClick;
166
+ const isRevisionHistoryDisabled = !onShowRevisionHistory;
167
+ const isTimelineDisabled = !onShowTimeline;
168
+ return jsxs("div", { className: twMerge("flex h-12 w-full items-center justify-between rounded-xl border border-gray-200 bg-slate-50 px-4", className), children: [jsxs("div", { className: "flex items-center gap-x-2", children: [jsx("button", { className: twMerge("grid size-8 place-items-center rounded-lg border border-gray-200 bg-white", isUndoDisabled ? "cursor-not-allowed" : "cursor-pointer active:opacity-70"), onClick: undo2, disabled: isUndoDisabled, children: jsx(Icon, { name: "ArrowCouterclockwise", size: 16, className: isUndoDisabled ? "text-gray-500" : "text-gray-900" }) }), jsx("button", { className: twMerge("grid size-8 place-items-center rounded-lg border border-gray-200 bg-white", isRedoDisabled ? "cursor-not-allowed" : "cursor-pointer active:opacity-70"), onClick: redo2, disabled: isRedoDisabled, children: jsx("div", { className: "-scale-x-100", children: jsx(Icon, { name: "ArrowCouterclockwise", size: 16, className: isRedoDisabled ? "text-gray-500" : "text-gray-900" }) }) }), jsx("button", { className: twMerge("flex h-8 items-center rounded-lg border border-gray-200 bg-white px-3 text-sm", isExportDisabled ? "cursor-not-allowed" : "cursor-pointer active:opacity-70"), onClick: onExport, disabled: isExportDisabled, children: jsx("span", { className: isExportDisabled ? "text-gray-500" : "text-gray-900", children: "Export" }) })] }), jsx("div", { className: "flex items-center", children: jsx("h1", { className: "text-sm font-medium text-gray-500", children: title }) }), jsxs("div", { className: "flex items-center gap-x-2", children: [jsx("button", { className: twMerge("grid size-8 place-items-center rounded-lg border border-gray-200 bg-white", isSwitchboardLinkDisabled ? "cursor-not-allowed" : "cursor-pointer active:opacity-70"), onClick: onSwitchboardLinkClick, disabled: isSwitchboardLinkDisabled, children: jsx(Icon, { name: "Drive", size: 16, className: isSwitchboardLinkDisabled ? "text-gray-500" : "text-gray-900" }) }), jsx("button", { className: twMerge("grid size-8 place-items-center rounded-lg border border-gray-200 bg-white", isRevisionHistoryDisabled ? "cursor-not-allowed" : "cursor-pointer active:opacity-70"), onClick: onShowRevisionHistory, disabled: isRevisionHistoryDisabled, children: jsx(Icon, { name: "History", size: 16, className: isRevisionHistoryDisabled ? "text-gray-500" : "text-gray-900" }) }), jsx("button", { className: twMerge("grid size-8 place-items-center rounded-lg border border-gray-200 bg-white", isTimelineDisabled ? "cursor-not-allowed" : "cursor-pointer active:opacity-70"), onClick: onShowTimeline, disabled: isTimelineDisabled, children: jsx(Icon, { name: "Timeline", size: 16, className: twMerge("text-gray-900", isTimelineDisabled && "opacity-50") }) }), jsx("button", { className: "grid size-8 cursor-pointer place-items-center rounded-lg border border-gray-200 bg-white active:opacity-70", onClick: onClose, children: jsx(Icon, { name: "XmarkLight", size: 16, className: "text-gray-900" }) })] })] });
163
169
  };
164
- function EditorActionButtons(props) {
165
- const { onSwitchboardLinkClick, onExport, onClose, onShowRevisionHistory } = props;
166
- return jsxs("div", { className: "flex gap-x-2", children: [onSwitchboardLinkClick ? jsx("button", { className: "flex h-8 items-center gap-x-2 rounded border border-gray-200 px-3 text-sm font-semibold text-gray-900 active:opacity-50", onClick: onSwitchboardLinkClick, children: jsx(Icon, { name: "Drive", size: 16 }) }) : null, jsxs("button", { className: "flex h-8 items-center gap-x-2 rounded border border-gray-200 px-3 text-sm font-semibold text-gray-900 active:opacity-50", onClick: onExport, children: ["Export ", jsx(Icon, { name: "Save", size: 16 })] }), jsxs("button", { className: "flex h-8 items-center gap-x-2 whitespace-nowrap rounded border border-gray-200 px-3 text-sm font-semibold text-gray-900 active:opacity-50", onClick: onShowRevisionHistory, children: ["Revision history ", jsx(Icon, { name: "History", size: 16 })] }), jsx("button", { className: "grid size-8 place-items-center rounded border border-gray-200 active:opacity-50", onClick: onClose, children: jsx(Icon, { name: "Xmark" }) })] });
167
- }
168
- function EditorUndoRedoButtons(props) {
169
- const { canUndo, canRedo, undo: undo2, redo: redo2 } = props;
170
- const buttonStyles = "w-8 h-8 rounded-lg flex justify-center items-center rounded border border-gray-200";
171
- return jsxs("div", { className: "flex gap-x-2 text-gray-500", children: [jsx("button", { className: buttonStyles, disabled: !canUndo, onClick: undo2, children: jsx(Icon, { className: twMerge("-scale-x-100", canUndo ? "text-gray-900 active:opacity-50" : "text-gray-500"), name: "RedoArrow", size: 18 }) }), jsx("button", { className: buttonStyles, disabled: !canRedo, onClick: redo2, children: jsx(Icon, { className: twMerge(canRedo ? "text-gray-900 active:opacity-50" : "text-gray-500"), name: "RedoArrow", size: 18 }) })] });
172
- }
173
170
  const syncIcons = {
174
171
  SYNCING: "Syncing",
175
172
  SUCCESS: "Synced",
@@ -3951,6 +3948,9 @@ function DriveEditorContainer() {
3951
3948
  );
3952
3949
  }
3953
3950
  function Content() {
3951
+ const navigate = useNavigate();
3952
+ const { driveId } = useParams();
3953
+ const [documentDrives, , , status] = useDocumentDrives();
3954
3954
  const uiNodes = useUiNodes();
3955
3955
  const { fileNodeDocument, selectedDriveNode, selectedNode, addFile } = uiNodes;
3956
3956
  useEffect(() => {
@@ -3967,6 +3967,18 @@ function Content() {
3967
3967
  );
3968
3968
  });
3969
3969
  }, [selectedDriveNode, selectedNode, addFile]);
3970
+ useEffect(() => {
3971
+ if ((status === "LOADED" || status === "ERROR") && !documentDrives.find(
3972
+ (d) => d.state.global.id === driveId || d.state.global.slug === driveId || d.state.global.name === driveId
3973
+ )) {
3974
+ toast(/* @__PURE__ */ jsxs("p", { children: [
3975
+ "Drive ",
3976
+ driveId,
3977
+ " not found"
3978
+ ] }), { type: "warning" });
3979
+ navigate("/");
3980
+ }
3981
+ }, [status, driveId, documentDrives]);
3970
3982
  return /* @__PURE__ */ jsx("div", { className: "flex h-full flex-col overflow-auto", id: "content-view", children: fileNodeDocument ? /* @__PURE__ */ jsx(DocumentEditorContainer, {}, fileNodeDocument.documentId) : selectedDriveNode ? /* @__PURE__ */ jsx(DriveEditorContainer, {}, selectedDriveNode.id) : null });
3971
3983
  }
3972
3984
  export {
@@ -10,10 +10,10 @@ var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot
10
10
  var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
11
11
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
12
12
  var _DB_NAME, _STORE_NAME, _KEY, _db, _BrowserKeyStorage_instances, useStore_fn, _subtleCrypto, _keyPair, _keyPairStorage, _did, _ConnectCrypto_instances, initCrypto_fn, initialize_fn, parseDid_fn, generateECDSAKeyPair_fn, exportKeyPair_fn, importKeyPair_fn, _sign, _verify, _store, _namespace, _BaseStorage_instances, buildKey_fn, _baseUrl, _store2, _connectId, _eventEmitter, _Renown_instances, updateUser_fn, getCredential_fn;
13
- import { _ as __vitePreload } from "./main.CToN1F5F.js";
14
- import { aW as getAugmentedNamespace, $ as getDefaultExportFromCjs, ah as connectConfig, ac as logger } from "./app-loader-CVNv9V70.js";
15
- import { e as eventsExports, R as RENOWN_URL, g as getEnsInfo } from "./app-DMQcv5I-.js";
16
- import { d, c, b, f, a, r, s } from "./app-DMQcv5I-.js";
13
+ import { _ as __vitePreload } from "./main.BooYX2Lr.js";
14
+ import { aW as getAugmentedNamespace, $ as getDefaultExportFromCjs, ah as connectConfig, ac as logger } from "./app-loader-ByxyqGmZ.js";
15
+ import { e as eventsExports, R as RENOWN_URL, g as getEnsInfo } from "./app-mup06TxF.js";
16
+ import { d, c, b, f, a, r, s } from "./app-mup06TxF.js";
17
17
  import "react/jsx-runtime";
18
18
  import "react";
19
19
  import "@powerhousedao/reactor-browser";
@@ -1,9 +1,9 @@
1
1
  import { jsx, jsxs } from "react/jsx-runtime";
2
- import { t as twMerge, a5 as clsx, a6 as get, a7 as set, a8 as appendErrors, a9 as useFormContext, aa as Primitive, ab as cva, ac as FormProvider, ad as Controller, ae as Slot, af as useForm, ag as Root2, ah as List, ai as Trigger, aj as Content, ak as setModelName, al as setModelId, am as setModelDescription, an as setModelExtension, ao as setAuthorName, ap as setAuthorWebsite, aq as setStateSchema, ar as setInitialState, as as addModule, at as setModuleName, au as deleteModule, av as addOperation, aw as setOperationName, ax as setOperationSchema, ay as setOperationDescription, az as deleteOperation, aA as addOperationError, aB as deleteOperationError, aC as setOperationErrorName } from "./app-DMQcv5I-.js";
3
- import { ba as inspect$1, bb as GraphQLError$1, bc as getNamedType, bd as invariant$2, be as isInputObjectType, bf as isScalarType, bg as isObjectType, bh as isInterfaceType, bi as isUnionType, bj as isEnumType, bk as print, bl as isPrintableAsBlockString, bm as Kind, bn as astFromValue$1, bo as DEFAULT_DEPRECATION_REASON, bp as isSpecifiedDirective, bq as isSpecifiedScalarType, br as isIntrospectionType, bs as z, bt as GraphQLScalarType, Z as pascalCase, bu as parse, bv as visit, bw as buildASTSchema, bx as extendSchema, by as getNullableType, bz as isListType, $ as getDefaultExportFromCjs, bA as snakeCase, bB as constantCase, bC as isAbstractType, bD as BREAK, bE as GraphQLInputObjectType, bF as GraphQLList, bG as GraphQLEnumType, bH as GraphQLObjectType, bI as GraphQLInterfaceType, bJ as SchemaMetaFieldDef, bK as TypeMetaFieldDef, bL as TypeNameMetaFieldDef, bM as isCompositeType, bN as isOutputType, bO as isInputType, bP as GraphQLBoolean, bQ as assertAbstractType, bR as doTypesOverlap, bS as DirectiveLocation, bT as specifiedRules$1, bU as NoUnusedFragmentsRule$1, bV as ExecutableDefinitionsRule$1, bW as validate$2, bX as validateSchema, bY as GraphQLID, bZ as GraphQLString, b_ as GraphQLFloat, b$ as GraphQLInt, c0 as GraphQLDirective, c1 as GraphQLUnionType, c2 as isNonNullType, c3 as GraphQLNonNull, c4 as isNamedType, c5 as isLeafType, c6 as GraphQLSchema, c7 as buildSchema, c8 as sentenceCase, am as hashKey } from "./app-loader-CVNv9V70.js";
2
+ import { t as twMerge, a8 as clsx, a9 as get, aa as set, ab as appendErrors, ac as useFormContext, ad as Primitive, ae as cva, af as FormProvider, ag as Controller, ah as Slot, ai as useForm, aj as Root2, ak as List, al as Trigger, am as Content, an as setModelName, ao as setModelId, ap as setModelDescription, aq as setModelExtension, ar as setAuthorName, as as setAuthorWebsite, at as setStateSchema, au as setInitialState, av as addModule, aw as setModuleName, ax as deleteModule, ay as addOperation, az as setOperationName, aA as setOperationSchema, aB as setOperationDescription, aC as deleteOperation, aD as addOperationError, aE as deleteOperationError, aF as setOperationErrorName } from "./app-mup06TxF.js";
3
+ import { ba as inspect$1, bb as GraphQLError$1, bc as getNamedType, bd as invariant$2, be as isInputObjectType, bf as isScalarType, bg as isObjectType, bh as isInterfaceType, bi as isUnionType, bj as isEnumType, bk as print, bl as isPrintableAsBlockString, bm as Kind, bn as astFromValue$1, bo as DEFAULT_DEPRECATION_REASON, bp as isSpecifiedDirective, bq as isSpecifiedScalarType, br as isIntrospectionType, bs as z, bt as GraphQLScalarType, Z as pascalCase, bu as parse, bv as visit, bw as buildASTSchema, bx as extendSchema, by as getNullableType, bz as isListType, $ as getDefaultExportFromCjs, bA as snakeCase, bB as constantCase, bC as isAbstractType, bD as BREAK, bE as GraphQLInputObjectType, bF as GraphQLList, bG as GraphQLEnumType, bH as GraphQLObjectType, bI as GraphQLInterfaceType, bJ as SchemaMetaFieldDef, bK as TypeMetaFieldDef, bL as TypeNameMetaFieldDef, bM as isCompositeType, bN as isOutputType, bO as isInputType, bP as GraphQLBoolean, bQ as assertAbstractType, bR as doTypesOverlap, bS as DirectiveLocation, bT as specifiedRules$1, bU as NoUnusedFragmentsRule$1, bV as ExecutableDefinitionsRule$1, bW as validate$2, bX as validateSchema, bY as GraphQLID, bZ as GraphQLString, b_ as GraphQLFloat, b$ as GraphQLInt, c0 as GraphQLDirective, c1 as GraphQLUnionType, c2 as isNonNullType, c3 as GraphQLNonNull, c4 as isNamedType, c5 as isLeafType, c6 as GraphQLSchema, c7 as buildSchema, c8 as sentenceCase, am as hashKey } from "./app-loader-ByxyqGmZ.js";
4
4
  import * as React from "react";
5
5
  import React__default, { forwardRef, useRef, useCallback, useImperativeHandle, useEffect, useState, createContext, useContext, memo, useId, useMemo } from "react";
6
- import "./main.CToN1F5F.js";
6
+ import "./main.BooYX2Lr.js";
7
7
  import "@powerhousedao/reactor-browser";
8
8
  import "react-dom";
9
9
  import "@powerhousedao/reactor-browser/hooks/useUiNodesContext";
@@ -1,8 +1,8 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-loader-CVNv9V70.js","assets/main.CToN1F5F.js","assets/app-loader-Br74gdhw.css"])))=>i.map(i=>d[i]);
2
- import { _ as __vitePreload } from "./main.CToN1F5F.js";
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/app-loader-ByxyqGmZ.js","assets/main.BooYX2Lr.js","assets/app-loader-DiF8OhX3.css"])))=>i.map(i=>d[i]);
2
+ import { _ as __vitePreload } from "./main.BooYX2Lr.js";
3
3
  import { createRoot } from "react-dom/client";
4
4
  async function renderApp(element) {
5
- const AppLoader = await __vitePreload(() => import("./app-loader-CVNv9V70.js").then((n) => n.c9), true ? __vite__mapDeps([0,1,2]) : void 0);
5
+ const AppLoader = await __vitePreload(() => import("./app-loader-ByxyqGmZ.js").then((n) => n.c9), true ? __vite__mapDeps([0,1,2]) : void 0);
6
6
  createRoot(element).render(AppLoader.default);
7
7
  }
8
8
  const AppElement = document.getElementById("app");
@@ -99,7 +99,7 @@ const __vitePreload = function preload(baseModule, deps, importerUrl) {
99
99
  return baseModule().catch(handlePreloadError);
100
100
  });
101
101
  };
102
- __vitePreload(() => import("./index-1QquWG1j.js"), true ? [] : void 0);
102
+ __vitePreload(() => import("./index-Bf_-VrwW.js"), true ? [] : void 0);
103
103
  export {
104
104
  __vitePreload as _
105
105
  };
package/dist/index.html CHANGED
@@ -96,4 +96,4 @@
96
96
  "@powerhousedao/reactor-browser/utils/index": "/modules/@powerhousedao/reactor-browser/utils/index.js",
97
97
  "@powerhousedao/reactor-browser/utils/signature": "/modules/@powerhousedao/reactor-browser/utils/signature.js"
98
98
  }
99
- }</script><script type="module" crossorigin="" src="/assets/main.CToN1F5F.js"></script></head><body><div id="app"></div></body></html>
99
+ }</script><script type="module" crossorigin="" src="/assets/main.BooYX2Lr.js"></script></head><body><div id="app"></div></body></html>
@@ -11860,6 +11860,7 @@ var PULL_DRIVE_INTERVAL = 1500;
11860
11860
 
11861
11861
  // ../../packages/document-drive/dist/src/server/listener/transmitter/pull-responder.js
11862
11862
  var MAX_REVISIONS_PER_ACK = 100;
11863
+ var MAX_PULLS = 50;
11863
11864
  var _staticLogger;
11864
11865
  var staticLogger = () => {
11865
11866
  if (!_staticLogger) {
@@ -12034,6 +12035,8 @@ var PullResponderTransmitter = class _PullResponderTransmitter {
12034
12035
  * All other errors are caught, logged, and passed to `onError`.
12035
12036
  *
12036
12037
  * Because of this, `onError` _may be called multiple times_.
12038
+ *
12039
+ * @returns boolean indicating whether there might be more data to pull
12037
12040
  */
12038
12041
  static async executePull(driveId, trigger, onStrandUpdate, onError, onRevisions, onAcknowledge) {
12039
12042
  staticLogger().verbose(`executePull(driveId: ${driveId}), trigger:`, trigger);
@@ -12058,7 +12061,7 @@ var PullResponderTransmitter = class _PullResponderTransmitter {
12058
12061
  } catch (error2) {
12059
12062
  staticLogger().error(`Could not resolve 'Listener not found' error by registering a new pull responder for drive: ${driveId}, listenerId: ${listenerId}: ${error2}`);
12060
12063
  onError(error2);
12061
- return;
12064
+ return false;
12062
12065
  }
12063
12066
  break;
12064
12067
  }
@@ -12067,7 +12070,7 @@ var PullResponderTransmitter = class _PullResponderTransmitter {
12067
12070
  if (!strands) {
12068
12071
  staticLogger().error(`Error pulling strands for drive, and could not auto-register: ${driveId}, listenerId: ${trigger.data.listenerId}: ${error}`);
12069
12072
  onError(error);
12070
- return;
12073
+ return false;
12071
12074
  }
12072
12075
  if (!strands.length) {
12073
12076
  staticLogger().verbose(`[SYNC DEBUG] No strands returned in pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
@@ -12077,7 +12080,7 @@ var PullResponderTransmitter = class _PullResponderTransmitter {
12077
12080
  staticLogger().error(`Error calling onRevisions for drive: ${driveId}, listenerId: ${trigger.data.listenerId}: ${error2}`);
12078
12081
  onError(error2);
12079
12082
  }
12080
- return;
12083
+ return false;
12081
12084
  }
12082
12085
  staticLogger().verbose(`[SYNC DEBUG] Processing ${strands.length} strands in pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
12083
12086
  const listenerRevisions = [];
@@ -12142,6 +12145,7 @@ var PullResponderTransmitter = class _PullResponderTransmitter {
12142
12145
  staticLogger().error(`Error calling onAcknowledge for drive: ${driveId}, listenerId: ${trigger.data.listenerId}: ${error2}`);
12143
12146
  onError(error2);
12144
12147
  }
12148
+ return strands.length > 0;
12145
12149
  }
12146
12150
  static setupPull(driveId, trigger, onStrandUpdate, onError, onRevisions, onAcknowledge) {
12147
12151
  staticLogger().verbose(`[SYNC DEBUG] PullResponderTransmitter.setupPull initiated for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
@@ -12162,7 +12166,15 @@ var PullResponderTransmitter = class _PullResponderTransmitter {
12162
12166
  const executeLoop = async () => {
12163
12167
  while (!isCancelled) {
12164
12168
  staticLogger().verbose(`[SYNC DEBUG] Starting pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
12165
- await this.executePull(driveId, trigger, onStrandUpdate, onError, onRevisions, onAcknowledge);
12169
+ let counter = 0;
12170
+ let hasMore = true;
12171
+ while (hasMore && !isCancelled && counter < MAX_PULLS) {
12172
+ counter++;
12173
+ hasMore = await this.executePull(driveId, trigger, onStrandUpdate, onError, onRevisions, onAcknowledge);
12174
+ if (hasMore) {
12175
+ staticLogger().verbose(`[SYNC DEBUG] More strands available, continuing pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}`);
12176
+ }
12177
+ }
12166
12178
  staticLogger().verbose(`[SYNC DEBUG] Completed pull cycle for drive: ${driveId}, listenerId: ${trigger.data.listenerId}, waiting ${loopInterval}ms for next cycle`);
12167
12179
  await new Promise((resolve) => {
12168
12180
  staticLogger().verbose(`Scheduling next pull in ${loopInterval} ms`);
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useDriveActions
3
- } from "./chunk-Y2AV245J.js";
3
+ } from "./chunk-REEGAZVT.js";
4
4
  import {
5
5
  useDriveContext
6
6
  } from "./chunk-XBTEGV5M.js";
@@ -8,7 +8,7 @@ import {
8
8
  isFolderNode,
9
9
  moveNode,
10
10
  updateNode
11
- } from "./chunk-7MMXY5VI.js";
11
+ } from "./chunk-7RTGQTV5.js";
12
12
  import {
13
13
  generateId
14
14
  } from "./chunk-FQF4YAVC.js";
@@ -3,7 +3,7 @@ import {
3
3
  ReactorBuilder,
4
4
  memory_default,
5
5
  mergeOperations
6
- } from "./chunk-7MMXY5VI.js";
6
+ } from "./chunk-7RTGQTV5.js";
7
7
  import {
8
8
  __commonJS,
9
9
  __require,
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-P6NJ6IAQ.js";
7
7
  import {
8
8
  ReadDriveNotFoundError
9
- } from "./chunk-7MMXY5VI.js";
9
+ } from "./chunk-7RTGQTV5.js";
10
10
 
11
11
  // ../../packages/reactor-browser/dist/src/context/read-mode.js
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -3,10 +3,10 @@ import {
3
3
  ReadModeContext,
4
4
  ReadModeContextProvider,
5
5
  useReadModeContext
6
- } from "../chunk-EB4SAP74.js";
6
+ } from "../chunk-ULJSSMFA.js";
7
7
  import "../chunk-OVGOA2P5.js";
8
8
  import "../chunk-P6NJ6IAQ.js";
9
- import "../chunk-7MMXY5VI.js";
9
+ import "../chunk-7RTGQTV5.js";
10
10
  import "../chunk-FQF4YAVC.js";
11
11
  import "../chunk-2ESYSVXG.js";
12
12
  export {
@@ -2,10 +2,10 @@ import {
2
2
  ReadModeContext,
3
3
  ReadModeContextProvider,
4
4
  useReadModeContext
5
- } from "../chunk-EB4SAP74.js";
5
+ } from "../chunk-ULJSSMFA.js";
6
6
  import "../chunk-OVGOA2P5.js";
7
7
  import "../chunk-P6NJ6IAQ.js";
8
- import "../chunk-7MMXY5VI.js";
8
+ import "../chunk-7RTGQTV5.js";
9
9
  import "../chunk-FQF4YAVC.js";
10
10
  import "../chunk-2ESYSVXG.js";
11
11
  export {
@@ -1,10 +1,10 @@
1
1
  import "../chunk-DKDARAJS.js";
2
2
  import {
3
3
  useDriveActionsWithUiNodes
4
- } from "../chunk-KEMIF43H.js";
4
+ } from "../chunk-NPCM4GRM.js";
5
5
  import {
6
6
  useDriveActions
7
- } from "../chunk-Y2AV245J.js";
7
+ } from "../chunk-REEGAZVT.js";
8
8
  import {
9
9
  DriveContextProvider,
10
10
  useDriveContext
@@ -57,7 +57,7 @@ import {
57
57
  useUserPermissions
58
58
  } from "../chunk-OVGOA2P5.js";
59
59
  import "../chunk-P6NJ6IAQ.js";
60
- import "../chunk-7MMXY5VI.js";
60
+ import "../chunk-7RTGQTV5.js";
61
61
  import "../chunk-FQF4YAVC.js";
62
62
  import "../chunk-YWKVPJNL.js";
63
63
  import "../chunk-2X2M6BYG.js";
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  useDriveActions
3
- } from "../chunk-Y2AV245J.js";
4
- import "../chunk-7MMXY5VI.js";
3
+ } from "../chunk-REEGAZVT.js";
4
+ import "../chunk-7RTGQTV5.js";
5
5
  import "../chunk-FQF4YAVC.js";
6
6
  import "../chunk-2ESYSVXG.js";
7
7
  export {
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  useDriveActionsWithUiNodes
3
- } from "../chunk-KEMIF43H.js";
4
- import "../chunk-Y2AV245J.js";
3
+ } from "../chunk-NPCM4GRM.js";
4
+ import "../chunk-REEGAZVT.js";
5
5
  import "../chunk-XBTEGV5M.js";
6
6
  import "../chunk-RGIB4DD4.js";
7
7
  import "../chunk-7OQWVUC5.js";
8
8
  import "../chunk-ZL5IPB6D.js";
9
- import "../chunk-7MMXY5VI.js";
9
+ import "../chunk-7RTGQTV5.js";
10
10
  import "../chunk-FQF4YAVC.js";
11
11
  import "../chunk-2ESYSVXG.js";
12
12
  export {
@@ -8,10 +8,10 @@ import "./chunk-LH2T6NLN.js";
8
8
  import "./chunk-DKDARAJS.js";
9
9
  import {
10
10
  useDriveActionsWithUiNodes
11
- } from "./chunk-KEMIF43H.js";
11
+ } from "./chunk-NPCM4GRM.js";
12
12
  import {
13
13
  useDriveActions
14
- } from "./chunk-Y2AV245J.js";
14
+ } from "./chunk-REEGAZVT.js";
15
15
  import {
16
16
  DriveContextProvider,
17
17
  useDriveContext
@@ -67,18 +67,18 @@ import {
67
67
  import {
68
68
  createBrowserDocumentDriveServer,
69
69
  getReactorDefaultDrivesConfig
70
- } from "./chunk-SNZRCTNV.js";
70
+ } from "./chunk-RUNTF5WD.js";
71
71
  import "./chunk-U36SV333.js";
72
72
  import {
73
73
  ReadModeContext,
74
74
  ReadModeContextProvider,
75
75
  useReadModeContext
76
- } from "./chunk-EB4SAP74.js";
76
+ } from "./chunk-ULJSSMFA.js";
77
77
  import {
78
78
  useUserPermissions
79
79
  } from "./chunk-OVGOA2P5.js";
80
80
  import "./chunk-P6NJ6IAQ.js";
81
- import "./chunk-7MMXY5VI.js";
81
+ import "./chunk-7RTGQTV5.js";
82
82
  import "./chunk-FQF4YAVC.js";
83
83
  import "./chunk-YWKVPJNL.js";
84
84
  import "./chunk-2X2M6BYG.js";
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  createBrowserDocumentDriveServer,
3
3
  getReactorDefaultDrivesConfig
4
- } from "./chunk-SNZRCTNV.js";
5
- import "./chunk-7MMXY5VI.js";
4
+ } from "./chunk-RUNTF5WD.js";
5
+ import "./chunk-7RTGQTV5.js";
6
6
  import "./chunk-FQF4YAVC.js";
7
7
  import "./chunk-2ESYSVXG.js";
8
8
  export {
package/dist/vite-envs.sh CHANGED
@@ -11,7 +11,7 @@ replaceAll() {
11
11
  }'
12
12
  }
13
13
 
14
- html=$(echo "PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0iVVRGLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj48dGl0bGU+UG93ZXJob3VzZSBDb25uZWN0PC90aXRsZT48YmFzZSBocmVmPSIvIj48bGluayByZWw9Imljb24iIGhyZWY9Ii9pY29uLmljbyI+PCEtLSB2aXRlLWVudnMgc2NyaXB0IHBsYWNlaG9sZGVyIHhLc1BtTHMzMHN3S3NkSXNWeCAtLT48c2NyaXB0IHR5cGU9ImltcG9ydG1hcCI+ewogICJpbXBvcnRzIjogewogICAgInJlYWN0IjogImh0dHBzOi8vZXNtLnNoL3JlYWN0IiwKICAgICJyZWFjdC8iOiAiaHR0cHM6Ly9lc20uc2gvcmVhY3QvIiwKICAgICJyZWFjdC1kb20iOiAiaHR0cHM6Ly9lc20uc2gvcmVhY3QtZG9tIiwKICAgICJyZWFjdC1kb20vIjogImh0dHBzOi8vZXNtLnNoL3JlYWN0LWRvbS8iLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3NlciI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaW5kZXguanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9kb2N1bWVudC1tb2RlbCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvZG9jdW1lbnQtbW9kZWwuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9pbmRleCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaW5kZXguanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9yZWFjdG9yIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9yZWFjdG9yLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvY29udGV4dC9pbmRleCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvY29udGV4dC9pbmRleC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2NvbnRleHQvcmVhZC1tb2RlIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9jb250ZXh0L3JlYWQtbW9kZS5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2NyeXB0by9icm93c2VyIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9jcnlwdG8vYnJvd3Nlci5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2NyeXB0by9pbmRleCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvY3J5cHRvL2luZGV4LmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvZG9jdW1lbnQtc3RhdGUiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL2RvY3VtZW50LXN0YXRlLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvaW5kZXgiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL2luZGV4LmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlQWRkRGVib3VuY2VkT3BlcmF0aW9ucyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlQWRkRGVib3VuY2VkT3BlcmF0aW9ucy5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZUNvbm5lY3RDcnlwdG8iOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZUNvbm5lY3RDcnlwdG8uanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEb2N1bWVudCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRG9jdW1lbnQuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEb2N1bWVudERpc3BhdGNoIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEb2N1bWVudERpc3BhdGNoLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRG9jdW1lbnREcml2ZXMiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZURvY3VtZW50RHJpdmVzLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRG9jdW1lbnRFZGl0b3IiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZURvY3VtZW50RWRpdG9yLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRHJpdmVBY3Rpb25zIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEcml2ZUFjdGlvbnMuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEcml2ZUFjdGlvbnNXaXRoVWlOb2RlcyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRHJpdmVBY3Rpb25zV2l0aFVpTm9kZXMuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEcml2ZUNvbnRleHQiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZURyaXZlQ29udGV4dC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZVVpTm9kZXNDb250ZXh0IjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VVaU5vZGVzQ29udGV4dC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZVVzZXJQZXJtaXNzaW9ucyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlVXNlclBlcm1pc3Npb25zLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvcmVub3duL2NvbnN0YW50cyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvcmVub3duL2NvbnN0YW50cy5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3Jlbm93bi90eXBlcyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvcmVub3duL3R5cGVzLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvc3RvcmFnZS9pbmRleCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvc3RvcmFnZS9pbmRleC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3N0b3JhZ2UvdHlwZXMiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3N0b3JhZ2UvdHlwZXMuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci90eXBlcy9kcml2ZS1lZGl0b3IiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3R5cGVzL2RyaXZlLWVkaXRvci5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3R5cGVzL2luZGV4IjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci90eXBlcy9pbmRleC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3VpTm9kZXMvY29uc3RhbnRzIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci91aU5vZGVzL2NvbnN0YW50cy5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3VpTm9kZXMvdHlwZXMiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3VpTm9kZXMvdHlwZXMuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci91dGlscy9leHBvcnQtZG9jdW1lbnQiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3V0aWxzL2V4cG9ydC1kb2N1bWVudC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3V0aWxzL2luZGV4IjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci91dGlscy9pbmRleC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3V0aWxzL3NpZ25hdHVyZSI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvdXRpbHMvc2lnbmF0dXJlLmpzIgogIH0KfTwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ibW9kdWxlIiBjcm9zc29yaWdpbj0iIiBzcmM9Ii9hc3NldHMvbWFpbi5DVG9OMUY1Ri5qcyI+PC9zY3JpcHQ+PC9oZWFkPjxib2R5PjxkaXYgaWQ9ImFwcCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4=" | base64 -d)
14
+ html=$(echo "PCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PG1ldGEgY2hhcnNldD0iVVRGLTgiPjxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsaW5pdGlhbC1zY2FsZT0xIj48dGl0bGU+UG93ZXJob3VzZSBDb25uZWN0PC90aXRsZT48YmFzZSBocmVmPSIvIj48bGluayByZWw9Imljb24iIGhyZWY9Ii9pY29uLmljbyI+PCEtLSB2aXRlLWVudnMgc2NyaXB0IHBsYWNlaG9sZGVyIHhLc1BtTHMzMHN3S3NkSXNWeCAtLT48c2NyaXB0IHR5cGU9ImltcG9ydG1hcCI+ewogICJpbXBvcnRzIjogewogICAgInJlYWN0IjogImh0dHBzOi8vZXNtLnNoL3JlYWN0IiwKICAgICJyZWFjdC8iOiAiaHR0cHM6Ly9lc20uc2gvcmVhY3QvIiwKICAgICJyZWFjdC1kb20iOiAiaHR0cHM6Ly9lc20uc2gvcmVhY3QtZG9tIiwKICAgICJyZWFjdC1kb20vIjogImh0dHBzOi8vZXNtLnNoL3JlYWN0LWRvbS8iLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3NlciI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaW5kZXguanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9kb2N1bWVudC1tb2RlbCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvZG9jdW1lbnQtbW9kZWwuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9pbmRleCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaW5kZXguanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9yZWFjdG9yIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9yZWFjdG9yLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvY29udGV4dC9pbmRleCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvY29udGV4dC9pbmRleC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2NvbnRleHQvcmVhZC1tb2RlIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9jb250ZXh0L3JlYWQtbW9kZS5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2NyeXB0by9icm93c2VyIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9jcnlwdG8vYnJvd3Nlci5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2NyeXB0by9pbmRleCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvY3J5cHRvL2luZGV4LmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvZG9jdW1lbnQtc3RhdGUiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL2RvY3VtZW50LXN0YXRlLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvaW5kZXgiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL2luZGV4LmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlQWRkRGVib3VuY2VkT3BlcmF0aW9ucyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlQWRkRGVib3VuY2VkT3BlcmF0aW9ucy5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZUNvbm5lY3RDcnlwdG8iOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZUNvbm5lY3RDcnlwdG8uanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEb2N1bWVudCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRG9jdW1lbnQuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEb2N1bWVudERpc3BhdGNoIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEb2N1bWVudERpc3BhdGNoLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRG9jdW1lbnREcml2ZXMiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZURvY3VtZW50RHJpdmVzLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRG9jdW1lbnRFZGl0b3IiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZURvY3VtZW50RWRpdG9yLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRHJpdmVBY3Rpb25zIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEcml2ZUFjdGlvbnMuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEcml2ZUFjdGlvbnNXaXRoVWlOb2RlcyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlRHJpdmVBY3Rpb25zV2l0aFVpTm9kZXMuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VEcml2ZUNvbnRleHQiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZURyaXZlQ29udGV4dC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZVVpTm9kZXNDb250ZXh0IjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci9ob29rcy91c2VVaU5vZGVzQ29udGV4dC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL2hvb2tzL3VzZVVzZXJQZXJtaXNzaW9ucyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvaG9va3MvdXNlVXNlclBlcm1pc3Npb25zLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvcmVub3duL2NvbnN0YW50cyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvcmVub3duL2NvbnN0YW50cy5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3Jlbm93bi90eXBlcyI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvcmVub3duL3R5cGVzLmpzIiwKICAgICJAcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvc3RvcmFnZS9pbmRleCI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvc3RvcmFnZS9pbmRleC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3N0b3JhZ2UvdHlwZXMiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3N0b3JhZ2UvdHlwZXMuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci90eXBlcy9kcml2ZS1lZGl0b3IiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3R5cGVzL2RyaXZlLWVkaXRvci5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3R5cGVzL2luZGV4IjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci90eXBlcy9pbmRleC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3VpTm9kZXMvY29uc3RhbnRzIjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci91aU5vZGVzL2NvbnN0YW50cy5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3VpTm9kZXMvdHlwZXMiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3VpTm9kZXMvdHlwZXMuanMiLAogICAgIkBwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci91dGlscy9leHBvcnQtZG9jdW1lbnQiOiAiL21vZHVsZXMvQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3V0aWxzL2V4cG9ydC1kb2N1bWVudC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3V0aWxzL2luZGV4IjogIi9tb2R1bGVzL0Bwb3dlcmhvdXNlZGFvL3JlYWN0b3ItYnJvd3Nlci91dGlscy9pbmRleC5qcyIsCiAgICAiQHBvd2VyaG91c2VkYW8vcmVhY3Rvci1icm93c2VyL3V0aWxzL3NpZ25hdHVyZSI6ICIvbW9kdWxlcy9AcG93ZXJob3VzZWRhby9yZWFjdG9yLWJyb3dzZXIvdXRpbHMvc2lnbmF0dXJlLmpzIgogIH0KfTwvc2NyaXB0PjxzY3JpcHQgdHlwZT0ibW9kdWxlIiBjcm9zc29yaWdpbj0iIiBzcmM9Ii9hc3NldHMvbWFpbi5Cb29ZWDJMci5qcyI+PC9zY3JpcHQ+PC9oZWFkPjxib2R5PjxkaXYgaWQ9ImFwcCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4=" | base64 -d)
15
15
 
16
16
  BASE_URL_base64="eEFwV2RSclg5OWtQclZnZ0UiLyIK"
17
17
  BASE_URL=$(echo "Lwo=" | base64 -d)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@powerhousedao/connect",
3
3
  "productName": "Powerhouse-Connect",
4
- "version": "1.0.15-dev.0",
4
+ "version": "1.0.16-dev.1",
5
5
  "description": "Powerhouse Connect",
6
6
  "main": "./dist/index.html",
7
7
  "type": "module",
@@ -82,14 +82,14 @@
82
82
  "vite-plugin-svgr": "^4.2.0",
83
83
  "vite-tsconfig-paths": "^4.3.2",
84
84
  "xvfb-maybe": "^0.2.1",
85
- "@powerhousedao/common": "1.10.28-dev.0",
86
- "@powerhousedao/config": "1.27.0-dev.4",
87
- "@powerhousedao/design-system": "1.39.16-dev.0",
88
- "@powerhousedao/reactor-browser": "1.22.24-dev.0",
89
- "@powerhousedao/scalars": "1.33.1-dev.3",
90
- "document-drive": "1.29.9-dev.0",
91
- "document-model": "2.28.1-dev.3",
92
- "@powerhousedao/builder-tools": "0.9.26-dev.0"
85
+ "@powerhousedao/builder-tools": "0.9.27-dev.1",
86
+ "@powerhousedao/common": "1.10.29-dev.1",
87
+ "@powerhousedao/design-system": "1.39.16-dev.2",
88
+ "@powerhousedao/reactor-browser": "1.22.24-dev.1",
89
+ "@powerhousedao/config": "1.27.0-dev.5",
90
+ "@powerhousedao/scalars": "1.33.1-dev.4",
91
+ "document-drive": "1.29.9-dev.1",
92
+ "document-model": "2.28.1-dev.4"
93
93
  },
94
94
  "optionalDependencies": {
95
95
  "@esbuild/linux-x64": "^0.21.4",