@powerhousedao/network-admin 0.0.17 → 0.0.19

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DriveExplorer.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/DriveExplorer.tsx"],"names":[],"mappings":"AA4CA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,2CAknBvC"}
1
+ {"version":3,"file":"DriveExplorer.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/DriveExplorer.tsx"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,GAAG,2CA4fvC"}
@@ -1,8 +1,7 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Button, CreateDocumentModal, useDrop, } from "@powerhousedao/design-system";
2
+ import { Button, CreateDocumentModal, } from "@powerhousedao/design-system";
3
3
  import { Sidebar, SidebarProvider, } from "@powerhousedao/document-engineering";
4
- import { addDocument, setSelectedNode, useAllFolderNodes, useDocumentModelModules, useDriveContext, useDriveSharingType, useEditorModules, useFileChildNodes, useSelectedDrive, useSelectedFolder, useSelectedNodePath, useUserPermissions, useAllDocuments, dispatchActions, useSelectedDocument, } from "@powerhousedao/reactor-browser";
5
- import { twMerge } from "tailwind-merge";
4
+ import { addDocument, setSelectedNode, useAllFolderNodes, useFileChildNodes, useSelectedDrive, useSelectedFolder, dispatchActions, useSelectedDocument, useSelectedDriveDocuments, showDeleteNodeModal, useSelectedDriveId, useNodeActions, } from "@powerhousedao/reactor-browser";
6
5
  import { useCallback, useRef, useState, useMemo, useEffect } from "react";
7
6
  import { EditorContainer } from "./EditorContainer.js";
8
7
  import { editWorkstream } from "../../../document-models/workstream/gen/creators.js";
@@ -18,20 +17,13 @@ export function DriveExplorer(props) {
18
17
  const [selectedRootNode, setSelectedRootNode] = useState("workstreams");
19
18
  const [modalDocumentType, setModalDocumentType] = useState("powerhouse/workstream");
20
19
  const selectedDocumentModel = useRef(null);
21
- const editorModules = useEditorModules();
22
- // Track the last created folder for drag and drop targeting
23
- const [lastCreatedFolder, setLastCreatedFolder] = useState(undefined);
24
- // === DRIVE CONTEXT HOOKS ===
25
- // Core drive operations and document models
26
- const { onAddFile, onAddFolder, onCopyNode, onDuplicateNode, onMoveNode, onRenameNode, showDeleteNodeModal, } = useDriveContext();
27
- const { isAllowedToCreateDocuments } = useUserPermissions();
28
20
  // === STATE MANAGEMENT HOOKS ===
29
21
  // Core state hooks for drive navigation
30
22
  const [selectedDrive] = useSelectedDrive(); // Currently selected drive
31
23
  const selectedFolder = useSelectedFolder(); // Currently selected folder
32
- const selectedNodePath = useSelectedNodePath();
33
- const sharingType = useDriveSharingType(selectedDrive?.header.id);
34
- const allDocuments = useAllDocuments();
24
+ const allDocuments = useSelectedDriveDocuments();
25
+ const selectedDriveId = useSelectedDriveId();
26
+ const { onRenameNode } = useNodeActions();
35
27
  // Listen to global selected document state (for external editors like Scope of Work)
36
28
  const [globalSelectedDocument] = useSelectedDocument();
37
29
  // All folders for the sidebar tree view
@@ -52,41 +44,6 @@ export function DriveExplorer(props) {
52
44
  // Check if current active document is a Scope of Work (should show in full view)
53
45
  const activeDoc = allDocuments?.find((doc) => doc.header.id === activeDocumentId);
54
46
  const isScopeOfWorkFullView = activeDoc?.header.documentType === "powerhouse/scopeofwork";
55
- // Find the folder containing the most recent workstream document
56
- const getMostRecentWorkstreamFolder = useCallback(() => {
57
- const workstreamFiles = fileChildren.filter((file) => file.documentType === "powerhouse/workstream");
58
- if (workstreamFiles.length === 0)
59
- return undefined;
60
- // Sort by creation time (assuming newer files have higher IDs or we can use a different method)
61
- const mostRecentWorkstream = workstreamFiles[workstreamFiles.length - 1];
62
- // Find the folder that contains this workstream
63
- if (mostRecentWorkstream.parentFolder) {
64
- return allFolders.find((folder) => folder.id === mostRecentWorkstream.parentFolder);
65
- }
66
- return undefined;
67
- }, [fileChildren, allFolders]);
68
- // === DROP HOOKS ===
69
- const mostRecentWorkstreamFolder = getMostRecentWorkstreamFolder();
70
- const dropTargetNode = lastCreatedFolder ||
71
- mostRecentWorkstreamFolder ||
72
- selectedFolder ||
73
- undefined;
74
- // Create a custom onAddFile wrapper that ensures the correct folder is used
75
- const onAddFileWithTarget = useCallback((file, targetFolder) => {
76
- console.log("onAddFileWithTarget called with:", {
77
- file,
78
- targetFolder,
79
- dropTargetNode,
80
- });
81
- // Use the dropTargetNode as the folder, not the targetFolder parameter
82
- return onAddFile(file, dropTargetNode);
83
- }, [onAddFile, dropTargetNode]);
84
- const { isDropTarget, dropProps } = useDrop({
85
- node: dropTargetNode,
86
- onAddFile: onAddFileWithTarget,
87
- onCopyNode,
88
- onMoveNode,
89
- });
90
47
  // check if workstream doc is created, set isWorkstreamCreated to true
91
48
  const isWorkstreamCreated = networkAdminDocuments?.some((doc) => doc.header.documentType === "powerhouse/workstream") || false;
92
49
  //check if network profile doc is created, set isNetworkProfileCreated to true
@@ -141,8 +98,6 @@ export function DriveExplorer(props) {
141
98
  // Handle sidebar node selection
142
99
  const handleActiveNodeChange = useCallback((nodeId) => {
143
100
  console.log("nodeId", nodeId);
144
- // Clear the last created folder when navigating to a different node
145
- setLastCreatedFolder(undefined);
146
101
  // Find the node by ID
147
102
  const findNodeById = (nodes, id) => {
148
103
  for (const node of nodes) {
@@ -225,27 +180,28 @@ export function DriveExplorer(props) {
225
180
  }, disabled: isNetworkProfileCreated, children: _jsx("span", { children: "Create Network Profile Document" }) })] })] }), networkAdminDocuments && networkAdminDocuments.length > 0 && (_jsxs("div", { className: "w-full", children: [_jsx("h3", { className: "mb-4 text-lg font-medium text-gray-700", children: "\uD83D\uDCC4 Documents" }), _jsx("div", { className: "overflow-x-auto rounded-lg border border-gray-200 shadow-sm", children: _jsxs("table", { className: "w-full bg-white", children: [_jsx("thead", { className: "bg-gray-50", children: _jsxs("tr", { children: [_jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider w-1/4", children: "Name" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider w-1/4", children: "Type" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider w-1/4", children: "Actions" })] }) }), _jsx("tbody", { className: "bg-white divide-y divide-gray-200", children: networkAdminDocuments.map((document) => {
226
181
  // Find the corresponding file node for actions
227
182
  const fileNode = fileChildren?.find((file) => file.id === document.header.id);
228
- return (_jsxs("tr", { className: "hover:bg-gray-50 transition-colors", children: [_jsx("td", { className: "px-2 py-2", children: _jsx("div", { className: "text-sm font-medium text-gray-900 truncate max-w-xs", title: document.header.name, children: document.header.name }) }), _jsx("td", { className: "px-2 py-2", children: _jsx("div", { className: "text-sm text-gray-500 truncate max-w-xs", title: document.header.documentType, children: document.header.documentType }) }), _jsx("td", { className: "px-2 py-2", children: _jsxs("div", { className: "flex gap-2 flex-wrap", children: [_jsx("button", { onClick: () => {
183
+ return (_jsxs("tr", { className: "hover:bg-gray-50 transition-colors", children: [_jsx("td", { className: "px-2 py-2", children: _jsx("div", { className: "text-sm font-medium text-gray-900 truncate max-w-xs", title: fileNode?.name || document.header.name, children: fileNode?.name || document.header.name }) }), _jsx("td", { className: "px-2 py-2", children: _jsx("div", { className: "text-sm text-gray-500 truncate max-w-xs", title: document.header.documentType, children: document.header.documentType }) }), _jsx("td", { className: "px-2 py-2", children: _jsxs("div", { className: "flex gap-2 flex-wrap", children: [_jsx("button", { onClick: () => {
229
184
  if (fileNode) {
230
185
  setSelectedNode(fileNode);
231
186
  }
232
- }, className: "px-3 py-1.5 bg-blue-500 text-white rounded text-xs font-medium hover:bg-blue-600 transition-colors whitespace-nowrap", children: "Open" }), _jsx("button", { onClick: () => {
187
+ }, className: "px-3 py-1.5 bg-blue-500 text-white rounded text-xs font-medium hover:bg-blue-600 transition-colors whitespace-nowrap", children: "Open" }), _jsx("button", { onClick: async () => {
233
188
  if (!fileNode || !fileNode.id)
234
189
  return;
235
- const newName = prompt("Enter new name:", document.header.name || "");
190
+ const currentName = fileNode.name || document.header.name;
191
+ const newName = prompt("Enter new name:", currentName);
236
192
  if (newName &&
237
193
  newName.trim() &&
238
- newName !== document.header.name) {
194
+ newName !== currentName) {
239
195
  try {
240
- onRenameNode(newName.trim(), fileNode);
196
+ await onRenameNode(newName.trim(), fileNode);
241
197
  }
242
198
  catch (error) {
243
- alert("Failed to rename document. Please try again.");
199
+ console.error("Failed to rename document", error);
244
200
  }
245
201
  }
246
202
  }, className: "px-3 py-1.5 bg-yellow-500 text-white rounded text-xs font-medium hover:bg-yellow-600 transition-colors whitespace-nowrap", children: "Edit" }), _jsx("button", { onClick: () => {
247
- if (fileNode) {
248
- showDeleteNodeModal(fileNode);
203
+ if (fileNode && fileNode.id) {
204
+ showDeleteNodeModal(fileNode.id);
249
205
  }
250
206
  }, className: "px-3 py-1.5 bg-red-500 text-white rounded text-xs font-medium hover:bg-red-600 transition-colors whitespace-nowrap", children: "Delete" })] }) })] }, document.header.id));
251
207
  }) })] }) })] }))] }) }));
@@ -253,26 +209,6 @@ export function DriveExplorer(props) {
253
209
  return _jsxs("div", { children: ["Unknown node type: ", nodeType] });
254
210
  }
255
211
  };
256
- // Handle folder creation with optional name parameter
257
- const handleCreateFolder = useCallback(async (folderName) => {
258
- let name = folderName;
259
- // If no name provided, prompt for it (for manual folder creation)
260
- if (!name) {
261
- const promptResult = prompt("Enter folder name:");
262
- name = promptResult || undefined;
263
- }
264
- if (name?.trim()) {
265
- try {
266
- const createdFolder = await onAddFolder(name.trim(), selectedFolder);
267
- // Track the created folder for drag and drop targeting
268
- console.log("Created manual folder:", createdFolder);
269
- setLastCreatedFolder(createdFolder);
270
- }
271
- catch (error) {
272
- console.error("Failed to create folder:", error);
273
- }
274
- }
275
- }, [onAddFolder, selectedFolder]);
276
212
  // Handle document creation from modal
277
213
  const onCreateDocument = useCallback(async (fileName) => {
278
214
  setOpenModal(false);
@@ -315,18 +251,6 @@ export function DriveExplorer(props) {
315
251
  selectedFolder?.id,
316
252
  modalDocumentType,
317
253
  ]);
318
- // Filter available document types here if needed
319
- const documentModelModules = useDocumentModelModules();
320
- // Get active document and its editor components
321
- const activeDocument = activeDocumentId
322
- ? fileChildren.find((file) => file.id === activeDocumentId)
323
- : undefined;
324
- const documentModelModule = activeDocument
325
- ? documentModelModules?.find((m) => m.documentModel.id === activeDocument.documentType)
326
- : null;
327
- const editorModule = activeDocument
328
- ? editorModules?.find((e) => e.documentTypes.includes(activeDocument.documentType))
329
- : null;
330
254
  // === RENDER ===
331
255
  return (_jsx(SidebarProvider, { nodes: sidebarNodes, children: isScopeOfWorkFullView && activeDocumentId ? (_jsx("div", { className: "h-full w-full", children: _jsx(EditorContainer, { handleClose: () => {
332
256
  setActiveDocumentId(undefined);
@@ -338,5 +262,5 @@ export function DriveExplorer(props) {
338
262
  `, nodes: sidebarNodes, activeNodeId: selectedFolder?.id || activeDocumentId, onActiveNodeChange: (node) => handleActiveNodeChange(node.id), sidebarTitle: "Network Admin", showSearchBar: true, allowPinning: true, resizable: true, initialWidth: 300, maxWidth: 500, enableMacros: 2, handleOnTitleClick: () => {
339
263
  setActiveDocumentId(undefined);
340
264
  setSelectedRootNode("workstreams");
341
- } }), _jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx("div", { ...dropProps, className: twMerge("rounded-md border-2 border-transparent ", isDropTarget && "border-dashed border-blue-100"), children: activeDocumentId ? (_jsx(EditorContainer, { handleClose: () => setActiveDocumentId(undefined), hideToolbar: false, activeDocumentId: activeDocumentId, setActiveDocumentId: setActiveDocumentId })) : (displayActiveNode(selectedFolder?.id || selectedRootNode)) }) }), _jsx(CreateDocumentModal, { onContinue: onCreateDocument, onOpenChange: (open) => setOpenModal(open), open: openModal })] })) }));
265
+ } }), _jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx("div", { className: "h-full", children: activeDocumentId ? (_jsx(EditorContainer, { handleClose: () => setActiveDocumentId(undefined), hideToolbar: false, activeDocumentId: activeDocumentId, setActiveDocumentId: setActiveDocumentId })) : (displayActiveNode(selectedFolder?.id || selectedRootNode)) }) }), _jsx(CreateDocumentModal, { onContinue: onCreateDocument, onOpenChange: (open) => setOpenModal(open), open: openModal })] })) }));
342
266
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EditorContainer.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/EditorContainer.tsx"],"names":[],"mappings":"AAyBA;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO;IACrC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C,4CAgMA,CAAC"}
1
+ {"version":3,"file":"EditorContainer.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/EditorContainer.tsx"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,OAAO;IACrC,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB,mBAAmB,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3C,4CAgMA,CAAC"}
@@ -1,10 +1,15 @@
1
+ import { type DriveEditorProps } from "@powerhousedao/reactor-browser";
2
+ export type IProps = DriveEditorProps & {
3
+ context?: any;
4
+ document?: any;
5
+ };
1
6
  /**
2
7
  * Base editor component that renders the drive explorer interface.
3
8
  * Customize document opening behavior and drive-level actions here.
4
9
  */
5
- export declare function BaseEditor(props: any): import("react/jsx-runtime").JSX.Element;
10
+ export declare function BaseEditor(props: IProps): import("react/jsx-runtime").JSX.Element;
6
11
  /**
7
12
  * Main editor entry point with required providers.
8
13
  */
9
- export default function Editor(props: any): import("react/jsx-runtime").JSX.Element;
14
+ export default function Editor(props: IProps): import("react/jsx-runtime").JSX.Element;
10
15
  //# sourceMappingURL=editor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/network-admin/editor.tsx"],"names":[],"mappings":"AASA;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,GAAG,2CAOpC;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,GAAG,2CAaxC"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/network-admin/editor.tsx"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,gCAAgC,CAAC;AAIxC,MAAM,MAAM,MAAM,GAAG,gBAAgB,GAAG;IACtC,OAAO,CAAC,EAAE,GAAG,CAAC;IACd,QAAQ,CAAC,EAAE,GAAG,CAAC;CAChB,CAAC;AAEF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,2CAOvC;AAKD;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAC,KAAK,EAAE,MAAM,2CAW3C"}
@@ -1,15 +1,18 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { WagmiContext } from "@powerhousedao/design-system";
3
- import { AnalyticsProvider, DriveContextProvider, useAppConfig, } from "@powerhousedao/reactor-browser";
3
+ import { AnalyticsProvider, useAppConfig, } from "@powerhousedao/reactor-browser";
4
4
  import { DriveExplorer } from "./components/DriveExplorer.js";
5
+ import { withDropZone } from "./utils/withDropZone.js";
5
6
  /**
6
7
  * Base editor component that renders the drive explorer interface.
7
8
  * Customize document opening behavior and drive-level actions here.
8
9
  */
9
10
  export function BaseEditor(props) {
10
11
  const { context, document } = props;
11
- return (_jsx("div", { className: "h-full w-full", children: _jsx(DriveExplorer, { document: document, context: context }) }));
12
+ return (_jsx("div", { style: { height: "100%" }, children: _jsx(DriveExplorer, { document: document, context: context }) }));
12
13
  }
14
+ // Wrap base editor with drop zone functionality
15
+ const BaseEditorWithDropZone = withDropZone(BaseEditor);
13
16
  /**
14
17
  * Main editor entry point with required providers.
15
18
  */
@@ -18,5 +21,5 @@ export default function Editor(props) {
18
21
  const analyticsDatabaseName = appConfig?.analyticsDatabaseName;
19
22
  return (
20
23
  // Required context providers for drive functionality
21
- _jsx(DriveContextProvider, { value: props.context, children: _jsx(WagmiContext, { children: _jsx(AnalyticsProvider, { databaseName: analyticsDatabaseName, children: _jsx(BaseEditor, { ...props }) }) }) }));
24
+ _jsx(WagmiContext, { children: _jsx(AnalyticsProvider, { databaseName: analyticsDatabaseName, children: _jsx(BaseEditorWithDropZone, { ...props }) }) }));
22
25
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../editors/network-admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,eAAO,MAAM,MAAM,EAAE,iBASpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../editors/network-admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGxE,eAAO,MAAM,MAAM,EAAE,iBAoBpB,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -7,6 +7,17 @@ export const module = {
7
7
  disableExternalControls: true,
8
8
  documentToolbarEnabled: true,
9
9
  showSwitchboardLink: true,
10
+ documentTypes: [
11
+ // List all document types that can be dropped
12
+ "powerhouse/network-profile",
13
+ "powerhouse/workstream",
14
+ "powerhouse/scopeofwork",
15
+ "powerhouse/rfp",
16
+ "payment-terms",
17
+ ],
18
+ dragAndDrop: {
19
+ enabled: true, // Enable drag-and-drop functionality
20
+ },
10
21
  },
11
22
  };
12
23
  export default module;
@@ -0,0 +1,4 @@
1
+ import type { DriveEditorProps } from "@powerhousedao/reactor-browser";
2
+ import type { ComponentType } from "react";
3
+ export declare function withDropZone<T extends DriveEditorProps>(WrappedComponent: ComponentType<T>): ComponentType<T>;
4
+ //# sourceMappingURL=withDropZone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withDropZone.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/utils/withDropZone.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,gBAAgB,EAEjB,MAAM,gCAAgC,CAAC;AAMxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE3C,wBAAgB,YAAY,CAAC,CAAC,SAAS,gBAAgB,EACrD,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,GACjC,aAAa,CAAC,CAAC,CAAC,CAqClB"}
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { DropZone } from "@powerhousedao/design-system";
3
+ import { setSelectedNode, useOnDropFile, useSelectedDriveId, } from "@powerhousedao/reactor-browser";
4
+ export function withDropZone(WrappedComponent) {
5
+ const WithDropZoneComponent = (props) => {
6
+ const driveId = useSelectedDriveId();
7
+ const onDropFile = useOnDropFile(props.editorConfig?.documentTypes);
8
+ const onAddFile = async (file, parent, onProgress, resolveConflict) => {
9
+ return await onDropFile(file, onProgress, resolveConflict);
10
+ };
11
+ // Only wrap with DropZone if enabled in config
12
+ if (props.editorConfig?.dragAndDrop?.enabled) {
13
+ return (_jsx(DropZone, { onAddFile: onAddFile, setSelectedNode: setSelectedNode, driveId: driveId, useLocalStorage: true, style: { height: "100%" }, children: _jsx(WrappedComponent, { ...props }) }));
14
+ }
15
+ return _jsx(WrappedComponent, { ...props });
16
+ };
17
+ WithDropZoneComponent.displayName = `withDropZone(${WrappedComponent.displayName || WrappedComponent.name || "Component"})`;
18
+ return WithDropZoneComponent;
19
+ }
package/dist/style.css CHANGED
@@ -372,9 +372,6 @@
372
372
  .mt-6 {
373
373
  margin-top: calc(var(--spacing) * 6);
374
374
  }
375
- .mr-1 {
376
- margin-right: calc(var(--spacing) * 1);
377
- }
378
375
  .mr-2 {
379
376
  margin-right: calc(var(--spacing) * 2);
380
377
  }
@@ -656,9 +653,6 @@
656
653
  --tw-border-style: dashed;
657
654
  border-style: dashed;
658
655
  }
659
- .border-blue-100 {
660
- border-color: var(--color-blue-100);
661
- }
662
656
  .border-blue-700 {
663
657
  border-color: var(--color-blue-700);
664
658
  }
@@ -677,9 +671,6 @@
677
671
  .border-red-700 {
678
672
  border-color: var(--color-red-700);
679
673
  }
680
- .border-transparent {
681
- border-color: transparent;
682
- }
683
674
  .bg-blue-50 {
684
675
  background-color: var(--color-blue-50);
685
676
  }
@@ -758,9 +749,6 @@
758
749
  .px-6 {
759
750
  padding-inline: calc(var(--spacing) * 6);
760
751
  }
761
- .py-1 {
762
- padding-block: calc(var(--spacing) * 1);
763
- }
764
752
  .py-1\.5 {
765
753
  padding-block: calc(var(--spacing) * 1.5);
766
754
  }
@@ -975,13 +963,6 @@
975
963
  }
976
964
  }
977
965
  }
978
- .hover\:bg-gray-100 {
979
- &:hover {
980
- @media (hover: hover) {
981
- background-color: var(--color-gray-100);
982
- }
983
- }
984
- }
985
966
  .hover\:bg-gray-200 {
986
967
  &:hover {
987
968
  @media (hover: hover) {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@powerhousedao/network-admin",
3
3
  "description": "Network Admin package for Powerhouse",
4
- "version": "0.0.17",
4
+ "version": "0.0.19",
5
5
  "license": "AGPL-3.0-only",
6
6
  "type": "module",
7
7
  "files": [
@@ -55,13 +55,13 @@
55
55
  "service-unstartup": "bash ./node_modules/@powerhousedao/ph-cli/dist/scripts/service-unstartup.sh"
56
56
  },
57
57
  "dependencies": {
58
- "@powerhousedao/builder-tools": "^5.0.0-staging.19",
59
- "@powerhousedao/common": "^5.0.0-staging.19",
60
- "@powerhousedao/design-system": "^5.0.0-staging.19",
58
+ "@powerhousedao/builder-tools": "^5.0.0-staging.21",
59
+ "@powerhousedao/common": "^5.0.0-staging.21",
60
+ "@powerhousedao/design-system": "^5.0.0-staging.21",
61
61
  "@powerhousedao/document-engineering": "^1.38.0",
62
- "@powerhousedao/project-management": "0.0.39",
62
+ "@powerhousedao/project-management": "0.0.40",
63
63
  "@uiw/react-md-editor": "^4.0.8",
64
- "document-model": "^5.0.0-staging.19",
64
+ "document-model": "^5.0.0-staging.21",
65
65
  "error": "^10.4.0",
66
66
  "graphql": "^16.10.0",
67
67
  "graphql-tag": "^2.12.6",
@@ -73,19 +73,19 @@
73
73
  "@electric-sql/pglite": "^0.2.12",
74
74
  "@eslint/js": "^9.25.0",
75
75
  "@powerhousedao/analytics-engine-core": "^0.5.0",
76
- "@powerhousedao/codegen": "^5.0.0-staging.19",
77
- "@powerhousedao/ph-cli": "^5.0.0-staging.19",
78
- "@powerhousedao/reactor-api": "^5.0.0-staging.19",
79
- "@powerhousedao/reactor-browser": "^5.0.0-staging.19",
80
- "@powerhousedao/reactor-local": "^5.0.0-staging.19",
76
+ "@powerhousedao/codegen": "^5.0.0-staging.21",
77
+ "@powerhousedao/ph-cli": "^5.0.0-staging.21",
78
+ "@powerhousedao/reactor-api": "^5.0.0-staging.21",
79
+ "@powerhousedao/reactor-browser": "^5.0.0-staging.21",
80
+ "@powerhousedao/reactor-local": "^5.0.0-staging.21",
81
81
  "@powerhousedao/scalars": "^1.33.1-staging.5",
82
- "@powerhousedao/switchboard": "^5.0.0-staging.19",
82
+ "@powerhousedao/switchboard": "^5.0.0-staging.21",
83
83
  "@tailwindcss/cli": "^4.1.4",
84
84
  "@testing-library/react": "^16.3.0",
85
85
  "@types/node": "^22.14.1",
86
86
  "@types/react": "^18.3.20",
87
87
  "@vitejs/plugin-react": "^4.4.1",
88
- "document-drive": "^5.0.0-staging.19",
88
+ "document-drive": "^5.0.0-staging.21",
89
89
  "eslint": "^9.25.0",
90
90
  "eslint-plugin-react": "^7.37.5",
91
91
  "eslint-plugin-react-hooks": "^5.2.0",