@powerhousedao/common 3.2.0-dev.8 → 3.2.0-staging.0

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 (118) hide show
  1. package/dist/drive-analytics/index.d.ts +0 -1
  2. package/dist/drive-analytics/index.d.ts.map +1 -1
  3. package/dist/drive-analytics/index.js +0 -1
  4. package/dist/drive-analytics/index.js.map +1 -1
  5. package/dist/drive-analytics/processor/document-processor.js +3 -3
  6. package/dist/drive-analytics/processor/document-processor.js.map +1 -1
  7. package/dist/drive-analytics/processor/drive-processor.js +4 -4
  8. package/dist/drive-analytics/processor/drive-processor.js.map +1 -1
  9. package/dist/drive-analytics/useDriveAnalytics.js +5 -5
  10. package/dist/drive-analytics/useDriveAnalytics.js.map +1 -1
  11. package/dist/editors/generic-drive-explorer/components/file-content-view.d.ts.map +1 -1
  12. package/dist/editors/generic-drive-explorer/components/file-content-view.js.map +1 -1
  13. package/dist/editors/generic-drive-explorer/editor.d.ts.map +1 -1
  14. package/dist/editors/generic-drive-explorer/editor.js +1 -19
  15. package/dist/editors/generic-drive-explorer/editor.js.map +1 -1
  16. package/dist/editors/styles.css +1 -1
  17. package/dist/editors/utils/storybook.d.ts.map +1 -1
  18. package/dist/editors/utils/storybook.js +14 -13
  19. package/dist/editors/utils/storybook.js.map +1 -1
  20. package/dist/editors/utils/uiNodes.d.ts +2 -2
  21. package/dist/editors/utils/uiNodes.d.ts.map +1 -1
  22. package/dist/editors/utils/uiNodes.js +3 -2
  23. package/dist/editors/utils/uiNodes.js.map +1 -1
  24. package/dist/index.d.ts +0 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +0 -1
  27. package/dist/index.js.map +1 -1
  28. package/dist/package.json +2 -3
  29. package/dist/state/apps.d.ts +5 -0
  30. package/dist/state/apps.d.ts.map +1 -0
  31. package/dist/state/apps.js +56 -0
  32. package/dist/state/apps.js.map +1 -0
  33. package/dist/state/atoms.d.ts +93 -99
  34. package/dist/state/atoms.d.ts.map +1 -1
  35. package/dist/state/atoms.js +52 -123
  36. package/dist/state/atoms.js.map +1 -1
  37. package/dist/state/config.d.ts +5 -0
  38. package/dist/state/config.d.ts.map +1 -0
  39. package/dist/state/config.js +20 -0
  40. package/dist/state/config.js.map +1 -0
  41. package/dist/state/cookies.d.ts +21 -0
  42. package/dist/state/cookies.d.ts.map +1 -0
  43. package/dist/state/cookies.js +7 -0
  44. package/dist/state/cookies.js.map +1 -0
  45. package/dist/state/document-model-modules.d.ts +1 -1
  46. package/dist/state/document-model-modules.d.ts.map +1 -1
  47. package/dist/state/document-model-modules.js.map +1 -1
  48. package/dist/state/documents.d.ts +35 -14
  49. package/dist/state/documents.d.ts.map +1 -1
  50. package/dist/state/documents.js +7 -14
  51. package/dist/state/documents.js.map +1 -1
  52. package/dist/state/drives.d.ts +6 -25
  53. package/dist/state/drives.d.ts.map +1 -1
  54. package/dist/state/drives.js +9 -29
  55. package/dist/state/drives.js.map +1 -1
  56. package/dist/state/editor-modules.d.ts +4 -1
  57. package/dist/state/editor-modules.d.ts.map +1 -1
  58. package/dist/state/editor-modules.js +10 -2
  59. package/dist/state/editor-modules.js.map +1 -1
  60. package/dist/state/folders.d.ts +0 -2
  61. package/dist/state/folders.d.ts.map +1 -1
  62. package/dist/state/folders.js +0 -2
  63. package/dist/state/folders.js.map +1 -1
  64. package/dist/state/index.d.ts +6 -0
  65. package/dist/state/index.d.ts.map +1 -1
  66. package/dist/state/index.js +6 -0
  67. package/dist/state/index.js.map +1 -1
  68. package/dist/state/modals.d.ts.map +1 -1
  69. package/dist/state/modals.js.map +1 -1
  70. package/dist/state/nodes.d.ts +4 -18
  71. package/dist/state/nodes.d.ts.map +1 -1
  72. package/dist/state/nodes.js +17 -31
  73. package/dist/state/nodes.js.map +1 -1
  74. package/dist/state/permissions.d.ts +17 -0
  75. package/dist/state/permissions.d.ts.map +1 -0
  76. package/dist/state/permissions.js +18 -0
  77. package/dist/state/permissions.js.map +1 -0
  78. package/dist/state/ph-packages.d.ts +2 -1
  79. package/dist/state/ph-packages.d.ts.map +1 -1
  80. package/dist/state/ph-packages.js.map +1 -1
  81. package/dist/state/processors.js +1 -1
  82. package/dist/state/processors.js.map +1 -1
  83. package/dist/state/reactor.d.ts +1 -10
  84. package/dist/state/reactor.d.ts.map +1 -1
  85. package/dist/state/reactor.js +17 -24
  86. package/dist/state/reactor.js.map +1 -1
  87. package/dist/state/storage.d.ts +2 -0
  88. package/dist/state/storage.d.ts.map +1 -0
  89. package/dist/state/storage.js +37 -0
  90. package/dist/state/storage.js.map +1 -0
  91. package/dist/state/store-provider.d.ts +0 -11
  92. package/dist/state/store-provider.d.ts.map +1 -1
  93. package/dist/state/store-provider.js +0 -11
  94. package/dist/state/store-provider.js.map +1 -1
  95. package/dist/state/store.d.ts +0 -4
  96. package/dist/state/store.d.ts.map +1 -1
  97. package/dist/state/store.js +0 -4
  98. package/dist/state/store.js.map +1 -1
  99. package/dist/state/syncing.d.ts +0 -1
  100. package/dist/state/syncing.d.ts.map +1 -1
  101. package/dist/state/syncing.js +0 -1
  102. package/dist/state/syncing.js.map +1 -1
  103. package/dist/state/theme.d.ts +3 -0
  104. package/dist/state/theme.d.ts.map +1 -0
  105. package/dist/state/theme.js +5 -0
  106. package/dist/state/theme.js.map +1 -0
  107. package/dist/state/types.d.ts +1 -13
  108. package/dist/state/types.d.ts.map +1 -1
  109. package/dist/state/utils.d.ts +20 -24
  110. package/dist/state/utils.d.ts.map +1 -1
  111. package/dist/state/utils.js +54 -65
  112. package/dist/state/utils.js.map +1 -1
  113. package/dist/tsconfig.tsbuildinfo +1 -1
  114. package/package.json +9 -10
  115. package/dist/drive-analytics/useDocumentAnalytics.d.ts +0 -22
  116. package/dist/drive-analytics/useDocumentAnalytics.d.ts.map +0 -1
  117. package/dist/drive-analytics/useDocumentAnalytics.js +0 -59
  118. package/dist/drive-analytics/useDocumentAnalytics.js.map +0 -1
@@ -1,29 +1,15 @@
1
1
  import { type FileNode, type FolderNode, type Node } from "document-drive";
2
- import { type Loadable, type NodeKind } from "./types.js";
3
- /** Returns a loadable of the nodes for a reactor. */
2
+ import { type Loadable } from "jotai/vanilla/utils/loadable";
3
+ import { type NodeKind } from "./types.js";
4
4
  export declare function useNodes(): Loadable<Node[] | undefined>;
5
- /** Returns a function that sets the selected node with a node id.
6
- *
7
- * If `shouldNavigate` is true, the URL will be updated to the new node.
8
- * `shouldNavigate` can be overridden by passing a different value to the callback.
9
- */
10
- export declare function useSetSelectedNode(shouldNavigate?: boolean): (nodeId: string | undefined, _shouldNavigate?: boolean) => void;
11
- /** Returns a resolved promise of the nodes for a reactor. */
5
+ export declare function useSetSelectedNode(): (nodeId: string | undefined, shouldNavigate?: boolean) => void;
12
6
  export declare function useUnwrappedNodes(): Node[] | undefined;
13
- /** Returns a resolved promise of a node for a reactor by id. */
14
- export declare function useNodeById(id: string | null | undefined): Node | undefined;
15
- /** Returns a resolved promise of the parent folder for a node. */
7
+ export declare function useNodeById(id: string | null | undefined): FolderNode | undefined;
16
8
  export declare function useParentFolder(id: string | null | undefined): string | undefined;
17
- /** Returns a loadable of the path to a node. */
18
9
  export declare function useNodePath(id: string | null | undefined): Loadable<Node[] | undefined>;
19
- /** Returns a loadable of the child nodes for the selected drive or folder. */
20
10
  export declare function useChildNodes(): Loadable<Node[] | undefined>;
21
- /** Returns the kind of a node. */
22
11
  export declare function useNodeKind(id: string | null | undefined): NodeKind | undefined;
23
- /** Sorts nodes by name. */
24
12
  export declare function sortNodesByName<TNode extends Node>(nodes: TNode[]): TNode[];
25
- /** Returns whether a node is a file. */
26
13
  export declare function isFileNodeKind(node: Node | null | undefined): node is FileNode;
27
- /** Returns whether a node is a folder. */
28
14
  export declare function isFolderNodeKind(node: Node | null | undefined): node is FolderNode;
29
15
  //# sourceMappingURL=nodes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../state/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAU3E,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG1D,qDAAqD;AACrD,wBAAgB,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAEvD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,cAAc,UAAO,YAK3C,MAAM,GAAG,SAAS,qCAsB9B;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,uBAEhC;AAED,gEAAgE;AAChE,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,oBAGxD;AAED,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAG5D;AAED,gDAAgD;AAChD,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC5B,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAyB9B;AAED,8EAA8E;AAC9E,wBAAgB,aAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAiB5D;AAED,kCAAkC;AAClC,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,wBAMxD;AAED,2BAA2B;AAC3B,wBAAgB,eAAe,CAAC,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAE3E;AAED,wCAAwC;AACxC,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAC5B,IAAI,IAAI,QAAQ,CAGlB;AAED,0CAA0C;AAC1C,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAC5B,IAAI,IAAI,UAAU,CAGpB"}
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../state/nodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,UAAU,EAAE,KAAK,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAS7D,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,wBAAgB,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAEvD;AAED,wBAAgB,kBAAkB,aAKrB,MAAM,GAAG,SAAS,oCAsB9B;AAED,wBAAgB,iBAAiB,uBAEhC;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,0BAIxD;AAED,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,sBAI5D;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAC5B,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAwB9B;AAED,wBAAgB,aAAa,IAAI,QAAQ,CAAC,IAAI,EAAE,GAAG,SAAS,CAAC,CAiB5D;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,wBAMxD;AACD,wBAAgB,eAAe,CAAC,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,CAE3E;AACD,wBAAgB,cAAc,CAC5B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAC5B,IAAI,IAAI,QAAQ,CAGlB;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,SAAS,GAC5B,IAAI,IAAI,UAAU,CAGpB"}
@@ -1,24 +1,18 @@
1
1
  import { useAtomValue, useSetAtom } from "jotai";
2
2
  import { useCallback } from "react";
3
3
  import { loadableNodesAtom, setSelectedNodeAtom, unwrappedNodesAtom, } from "./atoms.js";
4
- import { useSelectedDrive } from "./drives.js";
4
+ import { useUnwrappedSelectedDrive } from "./drives.js";
5
5
  import { useSelectedFolder } from "./folders.js";
6
6
  import { extractDriveFromPath, makeNodeUrlComponent } from "./utils.js";
7
- /** Returns a loadable of the nodes for a reactor. */
8
7
  export function useNodes() {
9
8
  return useAtomValue(loadableNodesAtom);
10
9
  }
11
- /** Returns a function that sets the selected node with a node id.
12
- *
13
- * If `shouldNavigate` is true, the URL will be updated to the new node.
14
- * `shouldNavigate` can be overridden by passing a different value to the callback.
15
- */
16
- export function useSetSelectedNode(shouldNavigate = true) {
10
+ export function useSetSelectedNode() {
17
11
  const nodes = useUnwrappedNodes();
18
12
  const setSelectedNode = useSetAtom(setSelectedNodeAtom);
19
- return useCallback((nodeId, _shouldNavigate = shouldNavigate) => {
13
+ return useCallback((nodeId, shouldNavigate = true) => {
20
14
  setSelectedNode(nodeId);
21
- if (typeof window !== "undefined" && _shouldNavigate) {
15
+ if (typeof window !== "undefined" && shouldNavigate) {
22
16
  const driveSlugFromPath = extractDriveFromPath(window.location.pathname);
23
17
  const node = nodes?.find((n) => n.id === nodeId);
24
18
  if (!node) {
@@ -31,39 +25,36 @@ export function useSetSelectedNode(shouldNavigate = true) {
31
25
  }
32
26
  }, [setSelectedNode, nodes]);
33
27
  }
34
- /** Returns a resolved promise of the nodes for a reactor. */
35
28
  export function useUnwrappedNodes() {
36
29
  return useAtomValue(unwrappedNodesAtom);
37
30
  }
38
- /** Returns a resolved promise of a node for a reactor by id. */
39
31
  export function useNodeById(id) {
40
32
  const unwrappedNodes = useUnwrappedNodes();
41
- return unwrappedNodes?.find((n) => n.id === id);
33
+ if (!unwrappedNodes)
34
+ return undefined;
35
+ return unwrappedNodes.find((n) => n.id === id);
42
36
  }
43
- /** Returns a resolved promise of the parent folder for a node. */
44
37
  export function useParentFolder(id) {
45
38
  const node = useNodeById(id);
46
- return node?.parentFolder ?? undefined;
39
+ if (!node)
40
+ return undefined;
41
+ return node.parentFolder ?? undefined;
47
42
  }
48
- /** Returns a loadable of the path to a node. */
49
43
  export function useNodePath(id) {
50
- const loadableNodes = useNodes();
51
- const loadableSelectedDrive = useSelectedDrive();
52
- if (loadableSelectedDrive.state !== "hasData")
53
- return loadableSelectedDrive;
54
- if (loadableNodes.state !== "hasData")
55
- return loadableNodes;
56
- const nodes = loadableNodes.data;
57
- const selectedDrive = loadableSelectedDrive.data;
44
+ const nodes = useUnwrappedNodes();
45
+ const selectedDrive = useUnwrappedSelectedDrive();
58
46
  if (!nodes || !selectedDrive)
59
47
  return { state: "hasData", data: undefined };
60
48
  const driveFolderNode = {
61
- id: selectedDrive.header.id,
49
+ id: selectedDrive.id,
62
50
  name: selectedDrive.state.global.name,
63
51
  kind: "FOLDER",
64
52
  parentFolder: null,
65
53
  };
66
- const path = [driveFolderNode];
54
+ const path = [];
55
+ if (driveFolderNode) {
56
+ path.push(driveFolderNode);
57
+ }
67
58
  let current = nodes.find((n) => n.id === id);
68
59
  while (current) {
69
60
  path.unshift(current);
@@ -73,7 +64,6 @@ export function useNodePath(id) {
73
64
  }
74
65
  return { state: "hasData", data: path.reverse() };
75
66
  }
76
- /** Returns a loadable of the child nodes for the selected drive or folder. */
77
67
  export function useChildNodes() {
78
68
  const nodes = useNodes();
79
69
  const selectedFolder = useSelectedFolder();
@@ -92,7 +82,6 @@ export function useChildNodes() {
92
82
  data: sortNodesByName(nodes.data?.filter((n) => n.parentFolder === selectedFolderId) ?? []),
93
83
  };
94
84
  }
95
- /** Returns the kind of a node. */
96
85
  export function useNodeKind(id) {
97
86
  const unwrappedNodes = useUnwrappedNodes();
98
87
  if (!unwrappedNodes)
@@ -102,17 +91,14 @@ export function useNodeKind(id) {
102
91
  return undefined;
103
92
  return node.kind.toUpperCase();
104
93
  }
105
- /** Sorts nodes by name. */
106
94
  export function sortNodesByName(nodes) {
107
95
  return nodes.toSorted((a, b) => a.name.localeCompare(b.name));
108
96
  }
109
- /** Returns whether a node is a file. */
110
97
  export function isFileNodeKind(node) {
111
98
  if (!node)
112
99
  return false;
113
100
  return node.kind.toUpperCase() === "FILE";
114
101
  }
115
- /** Returns whether a node is a folder. */
116
102
  export function isFolderNodeKind(node) {
117
103
  if (!node)
118
104
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../state/nodes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodes.js","sourceRoot":"","sources":["../../state/nodes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export declare function usePermissions(): {
2
+ isAllowedToCreateDocuments: boolean;
3
+ isAllowedToEditDocuments: boolean;
4
+ };
5
+ export declare function useIsAllowedToCreateDocuments(): boolean;
6
+ export declare function useIsAllowedToEditDocuments(): boolean;
7
+ export declare function useSetPermissions(): (args_0: {
8
+ isAllowedToCreateDocuments: boolean;
9
+ isAllowedToEditDocuments: boolean;
10
+ } | ((prev: {
11
+ isAllowedToCreateDocuments: boolean;
12
+ isAllowedToEditDocuments: boolean;
13
+ }) => {
14
+ isAllowedToCreateDocuments: boolean;
15
+ isAllowedToEditDocuments: boolean;
16
+ })) => void;
17
+ //# sourceMappingURL=permissions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../state/permissions.ts"],"names":[],"mappings":"AAGA,wBAAgB,cAAc;;;EAE7B;AAED,wBAAgB,6BAA6B,YAG5C;AAED,wBAAgB,2BAA2B,YAG1C;AAED,wBAAgB,iBAAiB;;;;;;;;;YAGhC"}
@@ -0,0 +1,18 @@
1
+ import { useAtomValue, useSetAtom } from "jotai";
2
+ import { permissionsAtom } from "./atoms.js";
3
+ export function usePermissions() {
4
+ return useAtomValue(permissionsAtom);
5
+ }
6
+ export function useIsAllowedToCreateDocuments() {
7
+ const permissions = usePermissions();
8
+ return permissions.isAllowedToCreateDocuments;
9
+ }
10
+ export function useIsAllowedToEditDocuments() {
11
+ const permissions = usePermissions();
12
+ return permissions.isAllowedToEditDocuments;
13
+ }
14
+ export function useSetPermissions() {
15
+ const setPermissions = useSetAtom(permissionsAtom);
16
+ return setPermissions;
17
+ }
18
+ //# sourceMappingURL=permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../state/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,UAAU,cAAc;IAC5B,OAAO,YAAY,CAAC,eAAe,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,WAAW,CAAC,0BAA0B,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,2BAA2B;IACzC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,OAAO,WAAW,CAAC,wBAAwB,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,MAAM,cAAc,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IACnD,OAAO,cAAc,CAAC;AACxB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { type DocumentModelLib } from "document-model";
2
- import { type DriveEditorModule, type Loadable } from "./types.js";
2
+ import { type Loadable } from "jotai/vanilla/utils/loadable";
3
+ import { type DriveEditorModule } from "./types.js";
3
4
  export type PHPackage = DocumentModelLib & {
4
5
  id: string;
5
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ph-packages.d.ts","sourceRoot":"","sources":["../../state/ph-packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAQvD,OAAO,EAAE,KAAK,iBAAiB,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEnE,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,wBAAgB,uBAAuB,CACrC,oBAAoB,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,QAMjD;AAED,wBAAgB,aAAa,+CAE5B;AAED,wBAAgB,sBAAsB,4BAErC;AAED,wBAAgB,cAAc,CAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,QAAQ,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAWzC"}
1
+ {"version":3,"file":"ph-packages.d.ts","sourceRoot":"","sources":["../../state/ph-packages.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAO7D,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEpD,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,wBAAgB,uBAAuB,CACrC,oBAAoB,EAAE,MAAM,OAAO,CAAC,SAAS,EAAE,CAAC,QAMjD;AAED,wBAAgB,aAAa,+CAE5B;AAED,wBAAgB,sBAAsB,4BAErC;AAED,wBAAgB,cAAc,CAC5B,QAAQ,CAAC,EAAE,MAAM,GAChB,QAAQ,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAWzC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ph-packages.js","sourceRoot":"","sources":["../../state/ph-packages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAKpB,MAAM,UAAU,uBAAuB,CACrC,oBAAgD;IAEhD,MAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,YAAY,CAAC,sBAAsB,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAiB;IAEjB,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACnC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAC/D,CAAC;IACF,MAAM,iBAAiB,GAAG,GAAG,EAAE,OAAO,CAAC,IAAI,CACzC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAC1C,CAAC;IACF,IAAI,CAAC,iBAAiB;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACrE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAsC,EAAE,CAAC;AAC5E,CAAC"}
1
+ {"version":3,"file":"ph-packages.js","sourceRoot":"","sources":["../../state/ph-packages.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAEjD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,uBAAuB,GACxB,MAAM,YAAY,CAAC;AAKpB,MAAM,UAAU,uBAAuB,CACrC,oBAAgD;IAEhD,MAAM,aAAa,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IACjD,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,YAAY,CAAC,sBAAsB,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,sBAAsB;IACpC,OAAO,YAAY,CAAC,uBAAuB,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,QAAiB;IAEjB,MAAM,UAAU,GAAG,sBAAsB,EAAE,CAAC;IAC5C,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC5D,MAAM,GAAG,GAAG,UAAU,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CACnC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,KAAK,QAAQ,CAAC,CAC/D,CAAC;IACF,MAAM,iBAAiB,GAAG,GAAG,EAAE,OAAO,CAAC,IAAI,CACzC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,QAAQ,CAC1C,CAAC;IACF,IAAI,CAAC,iBAAiB;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IACrE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,iBAAsC,EAAE,CAAC;AAC5E,CAAC"}
@@ -18,7 +18,7 @@ export function useInitializeProcessorManager() {
18
18
  return;
19
19
  const initializedProcessManager = new ProcessorManager(reactor.listeners, reactor);
20
20
  reactor.on("driveAdded", async (drive) => {
21
- await initializedProcessManager.registerDrive(drive.header.id);
21
+ await initializedProcessManager.registerDrive(drive.id);
22
22
  });
23
23
  setProcessorManager(initializedProcessManager);
24
24
  }, [processorManager, reactor, setProcessorManager]);
@@ -1 +1 @@
1
- {"version":3,"file":"processors.js","sourceRoot":"","sources":["../../state/processors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9E,SAAS,CAAC,GAAG,EAAE;QACb,qCAAqC;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,gCAAgC;QAChC,IAAI,gBAAgB;YAAE,OAAO;QAE7B,MAAM,yBAAyB,GAAG,IAAI,gBAAgB,CACpD,OAAO,CAAC,SAAS,EACjB,OAAO,CACR,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,KAA4B,EAAE,EAAE;YAC9D,MAAM,yBAAyB,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;QACH,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"processors.js","sourceRoot":"","sources":["../../state/processors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,6CAA6C,CAAC;AAC/E,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC,oBAAoB,CAAC,CAAC;AAC5C,CAAC;AAED,MAAM,UAAU,6BAA6B;IAC3C,MAAM,OAAO,GAAG,mBAAmB,EAAE,CAAC;IACtC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE9E,SAAS,CAAC,GAAG,EAAE;QACb,qCAAqC;QACrC,IAAI,CAAC,OAAO;YAAE,OAAO;QACrB,gCAAgC;QAChC,IAAI,gBAAgB;YAAE,OAAO;QAE7B,MAAM,yBAAyB,GAAG,IAAI,gBAAgB,CACpD,OAAO,CAAC,SAAS,EACjB,OAAO,CACR,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,EAAE,KAA4B,EAAE,EAAE;YAC9D,MAAM,yBAAyB,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QACH,mBAAmB,CAAC,yBAAyB,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,gBAAgB,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC;AACvD,CAAC"}
@@ -1,16 +1,7 @@
1
1
  import { type SyncStatus } from "document-drive";
2
2
  import { type Reactor, type SharingType } from "./types.js";
3
- /** Returns a loadable of the reactor. */
4
3
  export declare function useReactor(): import("jotai/vanilla/utils/loadable").Loadable<Promise<import("document-drive").IDocumentDriveServer | undefined>>;
5
- /** Returns the unwrapped reactor. */
6
4
  export declare function useUnwrappedReactor(): import("document-drive").IDocumentDriveServer | undefined;
7
- /** Initializes the reactor.
8
- *
9
- * Creates the reactor and sets the selected drive and node from the URL if `shouldNavigate` is true.
10
- * Subscribes to the reactor's events and refreshes the drives and documents when they change.
11
- *
12
- * If the reactor is already initialized, does nothing.
13
- */
14
- export declare function useInitializeReactor(createReactor: () => Promise<Reactor>, shouldNavigate?: boolean): void;
5
+ export declare function useInitializeReactor(createReactor: () => Promise<Reactor>): void;
15
6
  export declare function useGetSyncStatusSync(): (syncId: string, sharingType: SharingType) => SyncStatus | undefined;
16
7
  //# sourceMappingURL=reactor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../state/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAWxB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAG5D,yCAAyC;AACzC,wBAAgB,UAAU,wHAEzB;AAED,qCAAqC;AACrC,wBAAgB,mBAAmB,8DAElC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,EACrC,cAAc,UAAO,QA4CtB;AAED,wBAAgB,oBAAoB,aAIvB,MAAM,eAAe,WAAW,KAAG,UAAU,GAAG,SAAS,CAmBrE"}
1
+ {"version":3,"file":"reactor.d.ts","sourceRoot":"","sources":["../../state/reactor.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AAUxB,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAG5D,wBAAgB,UAAU,wHAEzB;AAED,wBAAgB,mBAAmB,8DAElC;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,QAyCzE;AAED,wBAAgB,oBAAoB,aAIvB,MAAM,eAAe,WAAW,KAAG,UAAU,GAAG,SAAS,CAmBrE"}
@@ -1,38 +1,34 @@
1
1
  import { SynchronizationUnitNotFoundError, } from "document-drive";
2
2
  import { useAtomValue, useSetAtom } from "jotai";
3
3
  import { useCallback, useEffect } from "react";
4
- import { initializeReactorAtom, loadableReactorAtom, selectedDriveAtom, setSelectedNodeAtom, unwrappedReactorAtom, } from "./atoms.js";
4
+ import { loadableReactorAtom, selectedDriveAtom, setReactorAtom, unwrappedReactorAtom, } from "./atoms.js";
5
5
  import { useSyncDrivesAndDocumentsWithReactor } from "./syncing.js";
6
- import { setSelectedDriveAndNodeFromUrl } from "./utils.js";
7
- /** Returns a loadable of the reactor. */
6
+ import { extractDriveFromPath } from "./utils.js";
8
7
  export function useReactor() {
9
8
  return useAtomValue(loadableReactorAtom);
10
9
  }
11
- /** Returns the unwrapped reactor. */
12
10
  export function useUnwrappedReactor() {
13
11
  return useAtomValue(unwrappedReactorAtom);
14
12
  }
15
- /** Initializes the reactor.
16
- *
17
- * Creates the reactor and sets the selected drive and node from the URL if `shouldNavigate` is true.
18
- * Subscribes to the reactor's events and refreshes the drives and documents when they change.
19
- *
20
- * If the reactor is already initialized, does nothing.
21
- */
22
- export function useInitializeReactor(createReactor, shouldNavigate = true) {
23
- const unwrappedReactor = useUnwrappedReactor();
24
- const setReactor = useSetAtom(initializeReactorAtom);
13
+ export function useInitializeReactor(createReactor) {
25
14
  const setSelectedDrive = useSetAtom(selectedDriveAtom);
26
- const setSelectedNode = useSetAtom(setSelectedNodeAtom);
15
+ const setReactor = useSetAtom(setReactorAtom);
27
16
  const refresh = useSyncDrivesAndDocumentsWithReactor();
28
17
  useEffect(() => {
29
- // If the reactor is already initialized, do nothing.
30
- if (unwrappedReactor)
31
- return;
32
18
  async function initializeReactor() {
33
- // Create the reactor instance.
34
19
  const reactor = await createReactor();
35
- // Subscribe to the reactor's events.
20
+ if (typeof window !== "undefined") {
21
+ const path = window.location.pathname;
22
+ const driveSlug = extractDriveFromPath(path);
23
+ if (driveSlug) {
24
+ const driveIds = await reactor.getDrives();
25
+ const drives = await Promise.all(driveIds.map((id) => reactor.getDrive(id)));
26
+ const drive = drives.find((d) => d.slug === driveSlug);
27
+ if (drive) {
28
+ setSelectedDrive(drive.id);
29
+ }
30
+ }
31
+ }
36
32
  reactor.on("syncStatus", (event, status, error) => {
37
33
  console.log("syncStatus", event, status, error);
38
34
  refresh();
@@ -45,13 +41,10 @@ export function useInitializeReactor(createReactor, shouldNavigate = true) {
45
41
  console.log("defaultRemoteDrive");
46
42
  refresh();
47
43
  });
48
- // Set the reactor instance atom.
49
44
  setReactor(reactor);
50
- // Set the selected drive and node from the URL if `shouldNavigate` is true.
51
- await setSelectedDriveAndNodeFromUrl(reactor, setSelectedDrive, setSelectedNode, shouldNavigate);
52
45
  }
53
46
  initializeReactor().catch(console.error);
54
- }, [setReactor, createReactor, refresh, shouldNavigate]);
47
+ }, [setReactor, createReactor, refresh]);
55
48
  }
56
49
  export function useGetSyncStatusSync() {
57
50
  const reactor = useUnwrappedReactor();
@@ -1 +1 @@
1
- {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../state/reactor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactor.js","sourceRoot":"","sources":["../../state/reactor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function useNamespacedStorageAtom<T>(key: string, initial: T): [Awaited<T>, (args_0: typeof import("jotai/utils").RESET | T | ((prev: T) => typeof import("jotai/utils").RESET | T)) => void];
2
+ //# sourceMappingURL=storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../state/storage.ts"],"names":[],"mappings":"AAKA,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,kIAQlE"}
@@ -0,0 +1,37 @@
1
+ import { useAtom } from "jotai";
2
+ import { atomWithStorage } from "jotai/utils";
3
+ import { useMemo } from "react";
4
+ import { useConfig } from "./config.js";
5
+ export function useNamespacedStorageAtom(key, initial) {
6
+ const { routerBasename } = useConfig();
7
+ const storageAtom = useMemo(() => atomWithStorage(`${routerBasename}:${key}`, initial), [routerBasename, key, initial]);
8
+ storageAtom.debugLabel = `storageAtom:${key}`;
9
+ return useAtom(storageAtom);
10
+ }
11
+ const namespace = "TODO REPLACE IF NEEDED";
12
+ const atomWithStorageCallback = (key, initialValue, callback) => atomWithStorage(key, initialValue, {
13
+ getItem(key, initialValue) {
14
+ const value = localStorage.getItem(`${namespace}:${key}`);
15
+ return value ? JSON.parse(value) : initialValue;
16
+ },
17
+ setItem(key, value) {
18
+ localStorage.setItem(`${namespace}:${key}`, JSON.stringify(value));
19
+ callback(value);
20
+ },
21
+ removeItem(key) {
22
+ localStorage.removeItem(`${namespace}:${key}`);
23
+ },
24
+ subscribe(key, callback) {
25
+ if (typeof window.addEventListener === "undefined") {
26
+ return () => null;
27
+ }
28
+ function listener(e) {
29
+ if (e.storageArea === localStorage && e.key === `${namespace}:${key}`) {
30
+ callback((e.newValue ?? ""));
31
+ }
32
+ }
33
+ window.addEventListener("storage", listener);
34
+ return () => window.removeEventListener("storage", listener);
35
+ },
36
+ });
37
+ //# sourceMappingURL=storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage.js","sourceRoot":"","sources":["../../state/storage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,UAAU,wBAAwB,CAAI,GAAW,EAAE,OAAU;IACjE,MAAM,EAAE,cAAc,EAAE,GAAG,SAAS,EAAE,CAAC;IACvC,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EAAE,CAAC,eAAe,CAAI,GAAG,cAAc,IAAI,GAAG,EAAE,EAAE,OAAO,CAAC,EAC7D,CAAC,cAAc,EAAE,GAAG,EAAE,OAAO,CAAC,CAC/B,CAAC;IACF,WAAW,CAAC,UAAU,GAAG,eAAe,GAAG,EAAE,CAAC;IAC9C,OAAO,OAAO,CAAC,WAAW,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,SAAS,GAAG,wBAAwB,CAAC;AAE3C,MAAM,uBAAuB,GAAG,CAC9B,GAAW,EACX,YAAe,EACf,QAA4B,EAC5B,EAAE,CACF,eAAe,CAAI,GAAG,EAAE,YAAY,EAAE;IACpC,OAAO,CAAC,GAAG,EAAE,YAAY;QACvB,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;QAC1D,OAAO,KAAK,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAO,CAAC,CAAC,CAAC,YAAY,CAAC;IACzD,CAAC;IACD,OAAO,CAAC,GAAG,EAAE,KAAK;QAChB,YAAY,CAAC,OAAO,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACnE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IACD,UAAU,CAAC,GAAG;QACZ,YAAY,CAAC,UAAU,CAAC,GAAG,SAAS,IAAI,GAAG,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,SAAS,CAAC,GAAG,EAAE,QAAQ;QACrB,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,WAAW,EAAE,CAAC;YACnD,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC;QACpB,CAAC;QAED,SAAS,QAAQ,CAAC,CAAe;YAC/B,IAAI,CAAC,CAAC,WAAW,KAAK,YAAY,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,SAAS,IAAI,GAAG,EAAE,EAAE,CAAC;gBACtE,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,CAAM,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QACD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QAE7C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;CACF,CAAC,CAAC"}
@@ -1,15 +1,4 @@
1
- import "jotai-devtools/styles.css";
2
1
  import { type ReactNode } from "react";
3
- /** Provides the atom store to the app.
4
- *
5
- * This is the top-level provider for the atom store.
6
- *
7
- * It is used to provide the atom store to the app.
8
- *
9
- * It should only be used once in the app and must appear before any `<Suspense>` boundaries.
10
- *
11
- * Includes the Jotai DevTools for debugging.
12
- */
13
2
  export declare function AtomStoreProvider({ children }: {
14
3
  children: ReactNode;
15
4
  }): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"store-provider.d.ts","sourceRoot":"","sources":["../../state/store-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAOtE"}
1
+ {"version":3,"file":"store-provider.d.ts","sourceRoot":"","sources":["../../state/store-provider.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,wBAAgB,iBAAiB,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAOtE"}
@@ -1,18 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { Provider } from "jotai";
3
3
  import { DevTools } from "jotai-devtools";
4
- import "jotai-devtools/styles.css";
5
4
  import { atomStore } from "./store.js";
6
- /** Provides the atom store to the app.
7
- *
8
- * This is the top-level provider for the atom store.
9
- *
10
- * It is used to provide the atom store to the app.
11
- *
12
- * It should only be used once in the app and must appear before any `<Suspense>` boundaries.
13
- *
14
- * Includes the Jotai DevTools for debugging.
15
- */
16
5
  export function AtomStoreProvider({ children }) {
17
6
  return (_jsxs(Provider, { store: atomStore, children: [_jsx(DevTools, { store: atomStore }), children] }));
18
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"store-provider.js","sourceRoot":"","sources":["../../state/store-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,2BAA2B,CAAC;AAEnC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAA2B;IACrE,OAAO,CACL,MAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,aACxB,KAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,GAAI,EAC7B,QAAQ,IACA,CACZ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"store-provider.js","sourceRoot":"","sources":["../../state/store-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAA2B;IACrE,OAAO,CACL,MAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,aACxB,KAAC,QAAQ,IAAC,KAAK,EAAE,SAAS,GAAI,EAC7B,QAAQ,IACA,CACZ,CAAC;AACJ,CAAC"}
@@ -1,7 +1,3 @@
1
- /** The atom store for the app.
2
- *
3
- * All derived hooks should use this store.
4
- */
5
1
  export declare const atomStore: {
6
2
  get: <Value>(atom: import("jotai").Atom<Value>) => Value;
7
3
  set: <Value, Args extends unknown[], Result>(atom: import("jotai").WritableAtom<Value, Args, Result>, ...args: Args) => Result;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../state/store.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,SAAS;;0GACmhH,GAAI;;;;0GAAJ,GAAI;;wDADvgH,CAAC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../state/store.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS;;0GACsmH,GAAI;;;;0GAAJ,GAAI;;wDAD1lH,CAAC"}
@@ -1,7 +1,3 @@
1
1
  import { createStore } from "jotai";
2
- /** The atom store for the app.
3
- *
4
- * All derived hooks should use this store.
5
- */
6
2
  export const atomStore = createStore();
7
3
  //# sourceMappingURL=store.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"store.js","sourceRoot":"","sources":["../../state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC;;;GAGG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../state/store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC"}
@@ -1,3 +1,2 @@
1
- /** Returns a function that refreshes the drives and documents for a reactor. */
2
1
  export declare function useSyncDrivesAndDocumentsWithReactor(): () => void;
3
2
  //# sourceMappingURL=syncing.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"syncing.d.ts","sourceRoot":"","sources":["../../state/syncing.ts"],"names":[],"mappings":"AAIA,gFAAgF;AAChF,wBAAgB,oCAAoC,eAQnD"}
1
+ {"version":3,"file":"syncing.d.ts","sourceRoot":"","sources":["../../state/syncing.ts"],"names":[],"mappings":"AAIA,wBAAgB,oCAAoC,eAQnD"}
@@ -1,7 +1,6 @@
1
1
  import { useCallback } from "react";
2
2
  import { useRefreshDocuments } from "./documents.js";
3
3
  import { useRefreshDrives } from "./drives.js";
4
- /** Returns a function that refreshes the drives and documents for a reactor. */
5
4
  export function useSyncDrivesAndDocumentsWithReactor() {
6
5
  const refreshDrives = useRefreshDrives();
7
6
  const refreshDocuments = useRefreshDocuments();
@@ -1 +1 @@
1
- {"version":3,"file":"syncing.js","sourceRoot":"","sources":["../../state/syncing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,gFAAgF;AAChF,MAAM,UAAU,oCAAoC;IAClD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAE/C,OAAO,WAAW,CAAC,GAAG,EAAE;QACtB,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACxC,CAAC"}
1
+ {"version":3,"file":"syncing.js","sourceRoot":"","sources":["../../state/syncing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,MAAM,UAAU,oCAAoC;IAClD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,gBAAgB,GAAG,mBAAmB,EAAE,CAAC;IAE/C,OAAO,WAAW,CAAC,GAAG,EAAE;QACtB,aAAa,EAAE,CAAC;QAChB,gBAAgB,EAAE,CAAC;IACrB,CAAC,EAAE,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC,CAAC;AACxC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const useTheme: () => import("./types.js").Theme;
2
+ export declare const useSetTheme: () => (args_0: import("./types.js").Theme | typeof import("jotai/utils").RESET | ((prev: import("./types.js").Theme) => import("./types.js").Theme | typeof import("jotai/utils").RESET)) => void;
3
+ //# sourceMappingURL=theme.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.d.ts","sourceRoot":"","sources":["../../state/theme.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ,kCAAgC,CAAC;AACtD,eAAO,MAAM,WAAW,mMAA8B,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { useAtomValue, useSetAtom } from "jotai";
2
+ import { themeAtom } from "./atoms.js";
3
+ export const useTheme = () => useAtomValue(themeAtom);
4
+ export const useSetTheme = () => useSetAtom(themeAtom);
5
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","sourceRoot":"","sources":["../../state/theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAEvC,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;AACtD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC"}
@@ -1,19 +1,7 @@
1
1
  import type { DocumentDriveDocument, FileNode, IDocumentDriveServer } from "document-drive";
2
2
  import { type EditorProps } from "document-model";
3
3
  import { type FC } from "react";
4
- import { type NOT_SET } from "./utils.js";
5
- /** The type for the reactor instance.
6
- * Alias for the legacy IDocumentDriveServer type.
7
- */
8
4
  export type Reactor = IDocumentDriveServer;
9
- /** The type for the unset atom (sentinel) value. */
10
- export type UnsetAtomValue = typeof NOT_SET;
11
- /** Alias for the Loadable type from Jotai. */
12
- export { type Loadable } from "jotai/vanilla/utils/loadable";
13
- /** The type for the drive editor props.
14
- *
15
- * TODO: update so that these props are the same as any other editor and the `addFile` prop is removed.
16
- */
17
5
  export type DriveEditorProps = EditorProps<DocumentDriveDocument> & {
18
6
  addFile: (file: string | File, driveId: string, name?: string, parentFolderId?: string) => Promise<FileNode>;
19
7
  className?: string;
@@ -30,7 +18,7 @@ export type DriveEditorModule = {
30
18
  };
31
19
  };
32
20
  export type SharingType = "LOCAL" | "CLOUD" | "PUBLIC";
33
- export type NodeKind = "FOLDER" | "FILE";
21
+ export type NodeKind = "DRIVE" | "FOLDER" | "FILE";
34
22
  export type Theme = "light" | "dark";
35
23
  export type ConnectConfig = {
36
24
  appVersion: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,QAAQ,EACR,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,oBAAoB,CAAC;AAE3C,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG,OAAO,OAAO,CAAC;AAE5C,8CAA8C;AAC9C,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,qBAAqB,CAAC,GAAG;IAClE,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEzC,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,OAAO,EAAE;QACP,aAAa,EAAE,OAAO,CAAC;QACvB,iCAAiC,EAAE,OAAO,CAAC;KAC5C,CAAC;IACF,MAAM,EAAE;QACN,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE;YACR,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC;gBACjB,QAAQ,EAAE,OAAO,CAAC;gBAClB,WAAW,EAAE,OAAO,CAAC;aACtB,CAAC;YACF,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC;gBACjB,QAAQ,EAAE,OAAO,CAAC;gBAClB,WAAW,EAAE,OAAO,CAAC;aACtB,CAAC;YACF,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO,CAAC;gBACjB,QAAQ,EAAE,OAAO,CAAC;gBAClB,WAAW,EAAE,OAAO,CAAC;aACtB,CAAC;SACH,CAAC;KACH,CAAC;IACF,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../state/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,qBAAqB,EACrB,QAAQ,EACR,oBAAoB,EACrB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,MAAM,MAAM,OAAO,GAAG,oBAAoB,CAAC;AAE3C,MAAM,MAAM,gBAAgB,GAAG,WAAW,CAAC,qBAAqB,CAAC,GAAG;IAClE,OAAO,EAAE,CACP,IAAI,EAAE,MAAM,GAAG,IAAI,EACnB,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,KACpB,OAAO,CAAC,QAAQ,CAAC,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AACF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAChC,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE;QACN,EAAE,EAAE,MAAM,CAAC;QACX,uBAAuB,CAAC,EAAE,OAAO,CAAC;QAClC,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,mBAAmB,CAAC,EAAE,OAAO,CAAC;KAC/B,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEvD,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG;IAC1B,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,OAAO,EAAE;QACP,aAAa,EAAE,OAAO,CAAC;QACvB,iCAAiC,EAAE,OAAO,CAAC;KAC5C,CAAC;IACF,MAAM,EAAE;QACN,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE;YACR,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC;gBACjB,QAAQ,EAAE,OAAO,CAAC;gBAClB,WAAW,EAAE,OAAO,CAAC;aACtB,CAAC;YACF,KAAK,EAAE;gBACL,OAAO,EAAE,OAAO,CAAC;gBACjB,QAAQ,EAAE,OAAO,CAAC;gBAClB,WAAW,EAAE,OAAO,CAAC;aACtB,CAAC;YACF,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO,CAAC;gBACjB,QAAQ,EAAE,OAAO,CAAC;gBAClB,WAAW,EAAE,OAAO,CAAC;aACtB,CAAC;SACH,CAAC;KACH,CAAC;IACF,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;CAClC,CAAC"}