@powerhousedao/network-admin 0.0.35 → 0.0.36

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 (93) hide show
  1. package/dist/document-models/network-profile/src/reducers/network-profile-management.js +6 -6
  2. package/dist/document-models/request-for-proposals/gen/index.d.ts +1 -0
  3. package/dist/document-models/request-for-proposals/gen/index.d.ts.map +1 -1
  4. package/dist/document-models/request-for-proposals/gen/index.js +1 -0
  5. package/dist/document-models/request-for-proposals/gen/ph-factories.d.ts.map +1 -1
  6. package/dist/document-models/request-for-proposals/gen/ph-factories.js +5 -3
  7. package/dist/document-models/request-for-proposals/gen/utils.d.ts.map +1 -1
  8. package/dist/document-models/request-for-proposals/gen/utils.js +10 -6
  9. package/dist/editors/index.d.ts +1 -1
  10. package/dist/editors/index.d.ts.map +1 -1
  11. package/dist/editors/index.js +1 -1
  12. package/dist/editors/network-admin/components/CreateDocument.d.ts +6 -0
  13. package/dist/editors/network-admin/components/CreateDocument.d.ts.map +1 -0
  14. package/dist/editors/network-admin/components/CreateDocument.js +22 -0
  15. package/dist/editors/network-admin/components/DriveExplorer.d.ts +3 -4
  16. package/dist/editors/network-admin/components/DriveExplorer.d.ts.map +1 -1
  17. package/dist/editors/network-admin/components/DriveExplorer.js +15 -10
  18. package/dist/editors/network-admin/components/FolderTree.d.ts +6 -0
  19. package/dist/editors/network-admin/components/FolderTree.d.ts.map +1 -0
  20. package/dist/editors/network-admin/components/FolderTree.js +65 -0
  21. package/dist/editors/network-profile/editor.d.ts.map +1 -1
  22. package/dist/editors/network-profile/editor.js +8 -1
  23. package/dist/editors/payment-terms/editor.d.ts.map +1 -1
  24. package/dist/editors/payment-terms/editor.js +8 -2
  25. package/dist/editors/request-for-proposals/editor.d.ts.map +1 -1
  26. package/dist/editors/request-for-proposals/editor.js +8 -1
  27. package/dist/editors/workstream/editor.d.ts.map +1 -1
  28. package/dist/editors/workstream/editor.js +9 -3
  29. package/dist/editors/workstream/project-management-import.d.ts +3 -0
  30. package/dist/editors/workstream/project-management-import.d.ts.map +1 -0
  31. package/dist/editors/workstream/project-management-import.js +5 -0
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +0 -1
  35. package/dist/powerhouse.manifest.json +9 -83
  36. package/dist/style.css +1565 -1531
  37. package/dist/vite.config.d.ts.map +1 -1
  38. package/dist/vite.config.js +1 -59
  39. package/package.json +12 -11
  40. package/dist/document-models/network-profile/gen/network-profile-management/object.d.ts +0 -17
  41. package/dist/document-models/network-profile/gen/network-profile-management/object.d.ts.map +0 -1
  42. package/dist/document-models/network-profile/gen/network-profile-management/object.js +0 -40
  43. package/dist/document-models/network-profile/gen/object.d.ts +0 -15
  44. package/dist/document-models/network-profile/gen/object.d.ts.map +0 -1
  45. package/dist/document-models/network-profile/gen/object.js +0 -27
  46. package/dist/document-models/network-profile/ph-factories.d.ts +0 -27
  47. package/dist/document-models/network-profile/ph-factories.d.ts.map +0 -1
  48. package/dist/document-models/network-profile/ph-factories.js +0 -60
  49. package/dist/document-models/payment-terms/gen/clauses/object.d.ts +0 -12
  50. package/dist/document-models/payment-terms/gen/clauses/object.d.ts.map +0 -1
  51. package/dist/document-models/payment-terms/gen/clauses/object.js +0 -25
  52. package/dist/document-models/payment-terms/gen/milestones/object.d.ts +0 -11
  53. package/dist/document-models/payment-terms/gen/milestones/object.d.ts.map +0 -1
  54. package/dist/document-models/payment-terms/gen/milestones/object.js +0 -22
  55. package/dist/document-models/payment-terms/gen/object.d.ts +0 -19
  56. package/dist/document-models/payment-terms/gen/object.d.ts.map +0 -1
  57. package/dist/document-models/payment-terms/gen/object.js +0 -35
  58. package/dist/document-models/payment-terms/gen/terms/object.d.ts +0 -12
  59. package/dist/document-models/payment-terms/gen/terms/object.d.ts.map +0 -1
  60. package/dist/document-models/payment-terms/gen/terms/object.js +0 -25
  61. package/dist/document-models/payment-terms/ph-factories.d.ts +0 -27
  62. package/dist/document-models/payment-terms/ph-factories.d.ts.map +0 -1
  63. package/dist/document-models/payment-terms/ph-factories.js +0 -62
  64. package/dist/document-models/request-for-proposals/gen/contex-document/object.d.ts +0 -8
  65. package/dist/document-models/request-for-proposals/gen/contex-document/object.d.ts.map +0 -1
  66. package/dist/document-models/request-for-proposals/gen/contex-document/object.js +0 -13
  67. package/dist/document-models/request-for-proposals/gen/object.d.ts +0 -19
  68. package/dist/document-models/request-for-proposals/gen/object.d.ts.map +0 -1
  69. package/dist/document-models/request-for-proposals/gen/object.js +0 -35
  70. package/dist/document-models/request-for-proposals/gen/proposals/object.d.ts +0 -9
  71. package/dist/document-models/request-for-proposals/gen/proposals/object.d.ts.map +0 -1
  72. package/dist/document-models/request-for-proposals/gen/proposals/object.js +0 -16
  73. package/dist/document-models/request-for-proposals/gen/rfp-state/object.d.ts +0 -7
  74. package/dist/document-models/request-for-proposals/gen/rfp-state/object.d.ts.map +0 -1
  75. package/dist/document-models/request-for-proposals/gen/rfp-state/object.js +0 -10
  76. package/dist/document-models/request-for-proposals/ph-factories.d.ts +0 -27
  77. package/dist/document-models/request-for-proposals/ph-factories.d.ts.map +0 -1
  78. package/dist/document-models/request-for-proposals/ph-factories.js +0 -67
  79. package/dist/document-models/workstream/gen/object.d.ts +0 -17
  80. package/dist/document-models/workstream/gen/object.d.ts.map +0 -1
  81. package/dist/document-models/workstream/gen/object.js +0 -29
  82. package/dist/document-models/workstream/gen/proposals/object.d.ts +0 -10
  83. package/dist/document-models/workstream/gen/proposals/object.d.ts.map +0 -1
  84. package/dist/document-models/workstream/gen/proposals/object.js +0 -19
  85. package/dist/document-models/workstream/gen/workstream/object.d.ts +0 -11
  86. package/dist/document-models/workstream/gen/workstream/object.d.ts.map +0 -1
  87. package/dist/document-models/workstream/gen/workstream/object.js +0 -22
  88. package/dist/document-models/workstream/ph-factories.d.ts +0 -27
  89. package/dist/document-models/workstream/ph-factories.d.ts.map +0 -1
  90. package/dist/document-models/workstream/ph-factories.js +0 -59
  91. package/dist/editors/network-admin/utils/withDropZone.d.ts +0 -4
  92. package/dist/editors/network-admin/utils/withDropZone.d.ts.map +0 -1
  93. package/dist/editors/network-admin/utils/withDropZone.js +0 -19
@@ -5,19 +5,19 @@
5
5
  */
6
6
  export const reducer = {
7
7
  setIconOperation(state, action, dispatch) {
8
- state.icon = action.input.icon || "";
8
+ state.icon = action.input.icon || '';
9
9
  },
10
10
  setLogoOperation(state, action, dispatch) {
11
- state.logo = action.input.logo || "";
11
+ state.logo = action.input.logo || '';
12
12
  },
13
13
  setLogoBigOperation(state, action, dispatch) {
14
- state.logoBig = action.input.logoBig || "";
14
+ state.logoBig = action.input.logoBig || '';
15
15
  },
16
16
  setWebsiteOperation(state, action, dispatch) {
17
- state.website = action.input.website || "";
17
+ state.website = action.input.website || '';
18
18
  },
19
19
  setDescriptionOperation(state, action, dispatch) {
20
- state.description = action.input.description || "";
20
+ state.description = action.input.description || '';
21
21
  },
22
22
  setCategoryOperation(state, action, dispatch) {
23
23
  state.category = action.input.category || null;
@@ -35,6 +35,6 @@ export const reducer = {
35
35
  state.youtube = action.input.youtube || null;
36
36
  },
37
37
  setProfileNameOperation(state, action, dispatch) {
38
- state.name = action.input.name || "";
38
+ state.name = action.input.name || '';
39
39
  },
40
40
  };
@@ -2,4 +2,5 @@ export * from "./actions.js";
2
2
  export * from "./document-model.js";
3
3
  export * from "./types.js";
4
4
  export * as actions from "./creators.js";
5
+ export { createRequestForProposalsDocument, createState, defaultPHState, defaultGlobalState, defaultLocalState, } from "./ph-factories.js";
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../document-models/request-for-proposals/gen/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../document-models/request-for-proposals/gen/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,YAAY,CAAC;AAC3B,OAAO,KAAK,OAAO,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,iCAAiC,EACjC,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,mBAAmB,CAAC"}
@@ -2,3 +2,4 @@ export * from "./actions.js";
2
2
  export * from "./document-model.js";
3
3
  export * from "./types.js";
4
4
  export * as actions from "./creators.js";
5
+ export { createRequestForProposalsDocument, createState, defaultPHState, defaultGlobalState, defaultLocalState, } from "./ph-factories.js";
@@ -1 +1 @@
1
- {"version":3,"file":"ph-factories.d.ts","sourceRoot":"","sources":["../../../../document-models/request-for-proposals/gen/ph-factories.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEhF,OAAO,KAAK,EACV,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAGpB,wBAAgB,kBAAkB,IAAI,8BAA8B,CAmBnE;AAED,wBAAgB,iBAAiB,IAAI,6BAA6B,CAEjE;AAED,wBAAgB,cAAc,IAAI,0BAA0B,CAM3D;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,GAC9C,8BAA8B,CAKhC;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC7C,6BAA6B,CAK/B;AAED,wBAAgB,WAAW,CACzB,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,WAAW,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,EACrD,UAAU,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAClD,0BAA0B,CAM5B;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAChD,CAAC,GACD,2BAA2B,CAY7B"}
1
+ {"version":3,"file":"ph-factories.d.ts","sourceRoot":"","sources":["../../../../document-models/request-for-proposals/gen/ph-factories.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAEhF,OAAO,KAAK,EACV,2BAA2B,EAC3B,6BAA6B,EAC7B,8BAA8B,EAC9B,0BAA0B,EAC3B,MAAM,YAAY,CAAC;AAGpB,wBAAgB,kBAAkB,IAAI,8BAA8B,CAqBnE;AAED,wBAAgB,iBAAiB,IAAI,6BAA6B,CAEjE;AAED,wBAAgB,cAAc,IAAI,0BAA0B,CAM3D;AAED,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,GAC9C,8BAA8B,CAKhC;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAC7C,6BAA6B,CAK/B;AAED,wBAAgB,WAAW,CACzB,SAAS,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAChC,WAAW,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,EACrD,UAAU,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,GAClD,0BAA0B,CAM5B;AAED;;;;GAIG;AACH,wBAAgB,iCAAiC,CAC/C,KAAK,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAC5B,QAAQ,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC,8BAA8B,CAAC,CAAC;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAChD,CAAC,GACD,2BAA2B,CAY7B"}
@@ -3,11 +3,13 @@ import { createDocument } from "./utils.js";
3
3
  export function defaultGlobalState() {
4
4
  return {
5
5
  issuer: "placeholder-id",
6
+ code: "",
6
7
  title: "",
7
- description: "",
8
+ summary: "",
9
+ briefing: "",
8
10
  rfpCommenter: [],
9
- eligibilityCriteria: [],
10
- evaluationCriteria: [],
11
+ eligibilityCriteria: '',
12
+ evaluationCriteria: '',
11
13
  budgetRange: {
12
14
  min: null,
13
15
  max: null,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../document-models/request-for-proposals/gen/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAQzD,OAAO,KAAK,EACV,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAG7D,eAAO,MAAM,kBAAkB,EAAE,8BAehC,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAE,6BAAkC,CAAC;AAEnE,QAAA,MAAM,KAAK,EAAE,kBAAkB,CAAC,0BAA0B,CAyBzD,CAAC;AAEF,eAAO,MAAM,cAAc,qEAAuB,CAAC;AACnD,eAAO,MAAM,WAAW,kEAAoB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,2CAAyB,CAAC;AACvD,eAAO,MAAM,aAAa,oEAAsB,CAAC;AAEjD,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../document-models/request-for-proposals/gen/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAQzD,OAAO,KAAK,EACV,8BAA8B,EAC9B,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,YAAY,CAAC;AAG7D,eAAO,MAAM,kBAAkB,EAAE,8BAmBhC,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAE,6BAAkC,CAAC;AAEnE,QAAA,MAAM,KAAK,EAAE,kBAAkB,CAAC,0BAA0B,CAyBzD,CAAC;AAEF,eAAO,MAAM,cAAc,qEAAuB,CAAC;AACnD,eAAO,MAAM,WAAW,kEAAoB,CAAC;AAC7C,eAAO,MAAM,gBAAgB,2CAAyB,CAAC;AACvD,eAAO,MAAM,aAAa,oEAAsB,CAAC;AAEjD,eAAe,KAAK,CAAC"}
@@ -2,19 +2,23 @@ import { baseCreateDocument, baseSaveToFileHandle, baseLoadFromInput, defaultBas
2
2
  import { reducer } from "./reducer.js";
3
3
  export const initialGlobalState = {
4
4
  issuer: "placeholder-id",
5
+ code: "",
5
6
  title: "",
6
7
  summary: "",
7
- code: "",
8
8
  briefing: "",
9
9
  rfpCommenter: [],
10
- eligibilityCriteria: "",
11
- evaluationCriteria: "",
12
- budgetRange: { min: 0, max: 0, currency: "USD" },
10
+ eligibilityCriteria: '',
11
+ evaluationCriteria: '',
12
+ budgetRange: {
13
+ min: null,
14
+ max: null,
15
+ currency: null,
16
+ },
13
17
  contextDocuments: [],
14
18
  status: "DRAFT",
15
19
  proposals: [],
16
- deadline: new Date().toISOString(),
17
- tags: [],
20
+ deadline: null,
21
+ tags: null,
18
22
  };
19
23
  export const initialLocalState = {};
20
24
  const utils = {
@@ -1,7 +1,7 @@
1
1
  export {};
2
2
  export { module as Workstream } from "./workstream/index.js";
3
- export { module as NetworkAdminDriveExplorer } from "./network-admin/index.js";
4
3
  export { module as RequestForProposals } from "./request-for-proposals/index.js";
5
4
  export { module as PaymentTerms } from "./payment-terms/index.js";
6
5
  export { module as NetworkProfile } from "./network-profile/index.js";
6
+ export { module as NetworkAdmin } from "./network-admin/index.js";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../editors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAG,CAAC;AACX,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,MAAM,IAAI,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAC/E,OAAO,EAAE,MAAM,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../editors/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC;AACV,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,MAAM,IAAI,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,MAAM,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  export {};
2
2
  export { module as Workstream } from "./workstream/index.js";
3
- export { module as NetworkAdminDriveExplorer } from "./network-admin/index.js";
4
3
  export { module as RequestForProposals } from "./request-for-proposals/index.js";
5
4
  export { module as PaymentTerms } from "./payment-terms/index.js";
6
5
  export { module as NetworkProfile } from "./network-profile/index.js";
6
+ export { module as NetworkAdmin } from "./network-admin/index.js";
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Document creation UI component.
3
+ * Displays available document types as clickable buttons.
4
+ */
5
+ export declare function CreateDocument(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=CreateDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CreateDocument.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/CreateDocument.tsx"],"names":[],"mappings":"AASA;;;GAGG;AACH,wBAAgB,cAAc,4CA2C7B"}
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button } from "@powerhousedao/design-system";
3
+ import { showCreateDocumentModal, useAllowedDocumentModelModules, useDocumentModelModules, useSelectedDriveId, } from "@powerhousedao/reactor-browser";
4
+ /**
5
+ * Document creation UI component.
6
+ * Displays available document types as clickable buttons.
7
+ */
8
+ export function CreateDocument() {
9
+ const selectedDriveId = useSelectedDriveId();
10
+ const allowedDocumentModelModules = useAllowedDocumentModelModules();
11
+ function handleAddDocument(module) {
12
+ if (!selectedDriveId) {
13
+ return;
14
+ }
15
+ // Display the Create Document modal on the host app
16
+ showCreateDocumentModal(module.documentModel.global.id);
17
+ }
18
+ return (_jsxs("div", { children: [_jsx("h3", { className: "mb-3 mt-4 text-sm font-bold text-gray-600", children: "Create document" }), _jsx("div", { className: "flex w-full flex-wrap gap-4", children: allowedDocumentModelModules?.map((documentModelModule) => {
19
+ return (_jsx(Button, { color: "light" // Customize button appearance
20
+ , className: "cursor-pointer bg-gray-200 p-2 hover:bg-gray-300", title: documentModelModule.documentModel.global.name, "aria-description": documentModelModule.documentModel.global.description, onClick: () => handleAddDocument(documentModelModule), children: _jsx("span", { className: "text-sm", children: documentModelModule.documentModel.global.name }) }, documentModelModule.documentModel.global.id));
21
+ }) })] }));
22
+ }
@@ -1,8 +1,7 @@
1
- /**1
1
+ import type { EditorProps } from "document-model";
2
+ /**
2
3
  * Main drive explorer component with sidebar navigation and content area.
3
4
  * Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
4
5
  */
5
- export declare function DriveExplorer(props: {
6
- children?: any;
7
- }): import("react/jsx-runtime").JSX.Element;
6
+ export declare function DriveExplorer(props: EditorProps): import("react/jsx-runtime").JSX.Element;
8
7
  //# sourceMappingURL=DriveExplorer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DriveExplorer.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/DriveExplorer.tsx"],"names":[],"mappings":"AA2CA;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,2CAomBtD"}
1
+ {"version":3,"file":"DriveExplorer.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/DriveExplorer.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AA2BlD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,2CAymB/C"}
@@ -1,15 +1,16 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { CreateDocumentModal } from "@powerhousedao/design-system";
2
+ import { useState, useEffect, useMemo, useCallback, useRef } from "react";
3
3
  import { Sidebar, SidebarProvider, Button, } from "@powerhousedao/document-engineering";
4
- import { addDocument, setSelectedNode, useSelectedDrive, useSelectedFolder, useSelectedDocument, showDeleteNodeModal, useNodeActions, useFileNodesInSelectedDrive, useDocumentsInSelectedDrive, } from "@powerhousedao/reactor-browser";
5
- import {} from "document-model";
4
+ import { setSelectedNode, isFileNodeKind, isFolderNodeKind, useNodesInSelectedDriveOrFolder, useSelectedDrive, useSelectedFolder, useUserPermissions, useDocumentsInSelectedDrive, useFileNodesInSelectedDrive, useNodeActions, useSelectedDocument, showDeleteNodeModal, addDocument, showCreateDocumentModal, } from "@powerhousedao/reactor-browser";
6
5
  import {} from "document-drive";
7
- import { useCallback, useRef, useState, useMemo, useEffect } from "react";
6
+ import {} from "document-model";
8
7
  import { PaymentIcon } from "./icons/PaymentIcon.js";
9
8
  import { RfpIcon } from "./icons/RfpIcon.js";
10
9
  import { SowIcon } from "./icons/SowIcon.js";
11
10
  import { WorkstreamIcon } from "./icons/WorkstreamIcon.js";
12
11
  import { Earth } from "lucide-react";
12
+ import { CreateDocument } from "./CreateDocument.js";
13
+ import { FolderTree } from "./FolderTree.js";
13
14
  const WorkstreamStatusEnums = [
14
15
  "RFP_DRAFT",
15
16
  "PREWORK_RFC",
@@ -21,11 +22,13 @@ const WorkstreamStatusEnums = [
21
22
  "IN_PROGRESS",
22
23
  "FINISHED",
23
24
  ];
24
- /**1
25
+ /**
25
26
  * Main drive explorer component with sidebar navigation and content area.
26
27
  * Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
27
28
  */
28
29
  export function DriveExplorer(props) {
30
+ const { children } = props;
31
+ const { isAllowedToCreateDocuments } = useUserPermissions();
29
32
  // === DOCUMENT EDITOR STATE ===
30
33
  const [activeSidebarNodeId, setActiveSidebarNodeId] = useState("workstreams");
31
34
  const [openModal, setOpenModal] = useState(false);
@@ -256,12 +259,14 @@ export function DriveExplorer(props) {
256
259
  ? "bg-blue-600/30 text-blue-600 border-blue-600/70"
257
260
  : "bg-gray-500/30 text-gray-500 border-gray-500/70"}`, children: category }, category))) })] }), _jsx("p", { className: "mt-4", children: networkProfileDoc?.state.global.description })] })), _jsxs("div", { className: "flex flex-wrap gap-3 justify-center", children: [_jsx(Button, { color: "dark" // Customize button appearance
258
261
  , size: "sm", className: "cursor-pointer hover:bg-gray-600 hover:text-white", title: "Create Workstream Document", "aria-description": "Create Workstream Document", onClick: () => {
259
- setModalDocumentType("powerhouse/workstream");
260
- setOpenModal(true);
262
+ // setModalDocumentType("powerhouse/workstream");
263
+ // setOpenModal(true);
264
+ showCreateDocumentModal("powerhouse/workstream");
261
265
  }, disabled: !isNetworkProfileCreated, children: _jsxs("span", { className: "flex items-center gap-2", children: [_jsx(WorkstreamIcon, { className: "w-7 h-7 text-white" }), "Create Workstream Document"] }) }), _jsx(Button, { color: "dark" // Customize button appearance
262
266
  , size: "sm", className: "cursor-pointer hover:bg-gray-600 hover:text-white", title: "Create Network Profile Document", "aria-description": "Create Network Profile Document", onClick: () => {
263
- setModalDocumentType("powerhouse/network-profile");
264
- setOpenModal(true);
267
+ // setModalDocumentType("powerhouse/network-profile");
268
+ // setOpenModal(true);
269
+ showCreateDocumentModal("powerhouse/network-profile");
265
270
  }, disabled: isNetworkProfileCreated, children: _jsx("span", { className: "flex items-center gap-2", 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) => {
266
271
  // Find the corresponding file node for actions
267
272
  const fileNode = fileChildren?.find((file) => file.id === document.header.id);
@@ -352,5 +357,5 @@ export function DriveExplorer(props) {
352
357
  setActiveSidebarNodeId("workstreams");
353
358
  setSelectedRootNode("workstreams");
354
359
  } }), _jsx("div", { className: "flex-1 overflow-y-auto", children: _jsx("div", { className: "h-full", children: props.children ||
355
- displayActiveNode(selectedFolder?.id || selectedRootNode) }) }), _jsx(CreateDocumentModal, { onContinue: onCreateDocument, onOpenChange: (open) => setOpenModal(open), open: openModal })] })) }));
360
+ displayActiveNode(selectedFolder?.id || selectedRootNode) }) })] })) }));
356
361
  }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Hierarchical folder tree navigation component using Sidebar from document-engineering.
3
+ * Displays folders and files in a tree structure with expand/collapse functionality, search, and resize support.
4
+ */
5
+ export declare function FolderTree(): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=FolderTree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FolderTree.d.ts","sourceRoot":"","sources":["../../../../editors/network-admin/components/FolderTree.tsx"],"names":[],"mappings":"AAyDA;;;GAGG;AACH,wBAAgB,UAAU,4CA0CzB"}
@@ -0,0 +1,65 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Sidebar, SidebarProvider, } from "@powerhousedao/document-engineering";
3
+ import { setSelectedNode, useNodesInSelectedDrive, useSelectedDrive, useSelectedNode, } from "@powerhousedao/reactor-browser";
4
+ import { useMemo } from "react";
5
+ function buildSidebarNodes(nodes, parentId) {
6
+ return nodes
7
+ .filter((n) => {
8
+ if (parentId == null) {
9
+ return n.parentFolder == null;
10
+ }
11
+ return n.parentFolder === parentId;
12
+ })
13
+ .map((node) => {
14
+ if (node.kind === "folder") {
15
+ return {
16
+ id: node.id,
17
+ title: node.name,
18
+ icon: "FolderClose",
19
+ expandedIcon: "FolderOpen",
20
+ children: buildSidebarNodes(nodes, node.id),
21
+ };
22
+ }
23
+ return {
24
+ id: node.id,
25
+ title: node.name,
26
+ icon: "File",
27
+ };
28
+ });
29
+ }
30
+ function transformNodesToSidebarNodes(nodes, driveName) {
31
+ return [
32
+ {
33
+ id: "root",
34
+ title: driveName,
35
+ icon: "Drive",
36
+ children: buildSidebarNodes(nodes, null),
37
+ },
38
+ ];
39
+ }
40
+ /**
41
+ * Hierarchical folder tree navigation component using Sidebar from document-engineering.
42
+ * Displays folders and files in a tree structure with expand/collapse functionality, search, and resize support.
43
+ */
44
+ export function FolderTree() {
45
+ const [selectedDrive] = useSelectedDrive();
46
+ const nodes = useNodesInSelectedDrive();
47
+ const selectedNode = useSelectedNode();
48
+ const driveName = selectedDrive.header.name;
49
+ // Transform Node[] to hierarchical SidebarNode structure
50
+ const sidebarNodes = useMemo(() => transformNodesToSidebarNodes(nodes || [], driveName), [nodes, driveName]);
51
+ const handleActiveNodeChange = (node) => {
52
+ // If root node is selected, pass undefined to match existing behavior
53
+ if (node.id === "root") {
54
+ setSelectedNode(undefined);
55
+ }
56
+ else {
57
+ setSelectedNode(node.id);
58
+ }
59
+ };
60
+ // Map selectedNodeId to activeNodeId (use "root" when undefined)
61
+ const activeNodeId = !selectedNode || selectedNode.id === selectedDrive.header.id
62
+ ? "root"
63
+ : selectedNode.id;
64
+ return (_jsx(SidebarProvider, { nodes: sidebarNodes, children: _jsx(Sidebar, { className: "pt-1", nodes: sidebarNodes, activeNodeId: activeNodeId, onActiveNodeChange: handleActiveNodeChange, sidebarTitle: "Drive Explorer", showSearchBar: true, resizable: true, allowPinning: false, showStatusFilter: false, initialWidth: 256, defaultLevel: 2 }) }));
65
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/network-profile/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAgBlD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AA8MjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CA6O7B"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/network-profile/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAoBlD,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AA8MjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CAqP7B"}
@@ -5,6 +5,7 @@ import { actions, } from "../../document-models/network-profile/index.js";
5
5
  import { useCallback, useState, useEffect } from "react";
6
6
  import { useSelectedNetworkProfileDocument } from "../hooks/useNetworkProfileDocument.js";
7
7
  import { DocumentToolbar } from "@powerhousedao/design-system";
8
+ import { setSelectedNode, useParentFolderForSelectedNode, } from "@powerhousedao/reactor-browser";
8
9
  // Category options for the dropdown
9
10
  const categoryOptions = [
10
11
  { value: "DEFI", label: "DeFi" },
@@ -127,7 +128,13 @@ export default function Editor() {
127
128
  }
128
129
  dispatch(action);
129
130
  }, [dispatch]);
130
- return (_jsxs("div", { className: "w-full bg-gray-50 min-h-screen", children: [_jsx(DocumentToolbar, {}), _jsxs("div", { className: "p-6 max-w-4xl mx-auto", children: [_jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx("h1", { className: "text-3xl font-bold text-gray-900 mb-2", children: "Network Profile" }) }), _jsx("div", { className: "bg-white rounded-lg p-6 shadow-sm", children: _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Network Name:" }), _jsx(TextInput, { className: "w-full", defaultValue: state?.name || "", onBlur: (e) => {
131
+ // Get the parent folder node for the currently selected node
132
+ const parentFolder = useParentFolderForSelectedNode();
133
+ // Set the selected node to the parent folder node (close the editor)
134
+ function handleClose() {
135
+ setSelectedNode(parentFolder?.id);
136
+ }
137
+ return (_jsxs("div", { className: "w-full bg-gray-50 min-h-screen", children: [_jsx(DocumentToolbar, { document: doc, onClose: handleClose }), _jsxs("div", { className: "p-6 max-w-4xl mx-auto", children: [_jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx("h1", { className: "text-3xl font-bold text-gray-900 mb-2", children: "Network Profile" }) }), _jsx("div", { className: "bg-white rounded-lg p-6 shadow-sm", children: _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Network Name:" }), _jsx(TextInput, { className: "w-full", defaultValue: state?.name || "", onBlur: (e) => {
131
138
  if (e.target.value !== state?.name) {
132
139
  handleFieldChange("name", e.target.value);
133
140
  }
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/editor.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAU,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAgB1D,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CAuW7B"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/payment-terms/editor.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAU,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAgB1D,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAEjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CA+W7B"}
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useDocumentById } from "@powerhousedao/reactor-browser";
2
+ import { setSelectedNode, useDocumentById, useParentFolderForSelectedNode, } from "@powerhousedao/reactor-browser";
3
3
  import { Button, Icon, toast, ToastContainer, } from "@powerhousedao/design-system";
4
4
  import { actions, } from "../../document-models/payment-terms/index.js";
5
5
  import { BasicTermsTab } from "./basic-terms-tab.js";
@@ -46,7 +46,13 @@ export default function Editor() {
46
46
  const totalMilestones = state.milestoneSchedule?.length || 0;
47
47
  const completedMilestones = state.milestoneSchedule?.filter((m) => m.payoutStatus === "PAID").length ||
48
48
  0;
49
- return (_jsxs(_Fragment, { children: [_jsx(DocumentToolbar, {}), _jsx("div", { className: "min-h-screen bg-gray-50 dark:bg-gray-900", children: _jsxs("div", { className: "max-w-7xl mx-auto p-6", children: [_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm p-6 mb-6", children: [_jsxs("div", { className: "flex justify-between items-start", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "CalendarTime", size: 32, className: "text-blue-600 dark:text-blue-400" }), _jsxs("div", { children: [_jsx("h1", { className: "text-3xl font-bold text-gray-900 dark:text-white mb-2", children: "Payment Terms Document" }), _jsx("p", { className: "text-gray-600 dark:text-gray-300", children: "Manage payment terms, milestones, and contract clauses" })] })] }), _jsxs("div", { className: `flex items-center gap-2 px-3 py-2 rounded-full font-medium ${getStatusColor(state.status)}`, children: [_jsx(Icon, { name: getStatusIcon(state.status), size: 16 }), state.status] })] }), _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4 mt-6", children: [_jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-blue-600 dark:text-blue-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Payment Model" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.paymentModel.replace(/_/g, " ") })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-green-600 dark:text-green-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Currency" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.currency })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-yellow-600 dark:text-yellow-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Total Amount" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.totalAmount
49
+ // Get the parent folder node for the currently selected node
50
+ const parentFolder = useParentFolderForSelectedNode();
51
+ // Set the selected node to the parent folder node (close the editor)
52
+ function handleClose() {
53
+ setSelectedNode(parentFolder?.id);
54
+ }
55
+ return (_jsxs(_Fragment, { children: [_jsx(DocumentToolbar, { document: doc, onClose: handleClose }), _jsx("div", { className: "min-h-screen bg-gray-50 dark:bg-gray-900", children: _jsxs("div", { className: "max-w-7xl mx-auto p-6", children: [_jsxs("div", { className: "bg-white dark:bg-gray-800 rounded-lg shadow-sm p-6 mb-6", children: [_jsxs("div", { className: "flex justify-between items-start", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Icon, { name: "CalendarTime", size: 32, className: "text-blue-600 dark:text-blue-400" }), _jsxs("div", { children: [_jsx("h1", { className: "text-3xl font-bold text-gray-900 dark:text-white mb-2", children: "Payment Terms Document" }), _jsx("p", { className: "text-gray-600 dark:text-gray-300", children: "Manage payment terms, milestones, and contract clauses" })] })] }), _jsxs("div", { className: `flex items-center gap-2 px-3 py-2 rounded-full font-medium ${getStatusColor(state.status)}`, children: [_jsx(Icon, { name: getStatusIcon(state.status), size: 16 }), state.status] })] }), _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4 mt-6", children: [_jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-blue-600 dark:text-blue-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Payment Model" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.paymentModel.replace(/_/g, " ") })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-green-600 dark:text-green-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Currency" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.currency })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-yellow-600 dark:text-yellow-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Total Amount" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.totalAmount
50
56
  ? `${state.totalAmount.value} ${state.totalAmount.unit}`
51
57
  : "Not set" })] }), _jsxs("div", { className: "bg-gray-50 dark:bg-gray-700 p-4 rounded-lg border border-gray-200 dark:border-gray-600", children: [_jsxs("div", { className: "flex items-center gap-2 mb-2", children: [_jsx(Icon, { name: "BarChart", size: 16, className: "text-purple-600 dark:text-purple-400" }), _jsx("p", { className: "text-sm text-gray-600 dark:text-gray-300 font-medium", children: "Progress" })] }), _jsx("p", { className: "text-lg font-semibold dark:text-white", children: state.paymentModel === "MILESTONE"
52
58
  ? `${completedMilestones} / ${totalMilestones}`
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/request-for-proposals/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAkB1D,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAYjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CAqP7B"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/request-for-proposals/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAsB1D,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAYjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CA4P7B"}
@@ -5,6 +5,7 @@ import { toast, ToastContainer } from "@powerhousedao/design-system";
5
5
  import { MarkdownEditor } from "./markdown-editor.js";
6
6
  import { useSelectedRequestForProposalsDocument } from "../hooks/useRequestForProposalsDocument.js";
7
7
  import { DocumentToolbar } from "@powerhousedao/design-system";
8
+ import { setSelectedNode, useParentFolderForSelectedNode, } from "@powerhousedao/reactor-browser";
8
9
  const statusOptions = [
9
10
  { label: "DRAFT", value: "DRAFT" },
10
11
  { label: "REQUEST_FOR_COMMMENTS", value: "REQUEST_FOR_COMMMENTS" },
@@ -16,6 +17,12 @@ const statusOptions = [
16
17
  ];
17
18
  export default function Editor() {
18
19
  const [doc, dispatch] = useSelectedRequestForProposalsDocument();
20
+ // Get the parent folder node for the currently selected node
21
+ const parentFolder = useParentFolderForSelectedNode();
22
+ // Set the selected node to the parent folder node (close the editor)
23
+ function handleClose() {
24
+ setSelectedNode(parentFolder?.id);
25
+ }
19
26
  const state = doc?.state.global;
20
27
  // Validation function for budget range
21
28
  const validateBudgetRange = (min, max) => {
@@ -27,7 +34,7 @@ export default function Editor() {
27
34
  }
28
35
  return true;
29
36
  };
30
- return (_jsxs(_Fragment, { children: [_jsx(DocumentToolbar, {}), _jsxs("div", { className: "w-full bg-gray-50", children: [_jsxs("div", { className: "p-6 max-w-4xl mx-auto min-h-screen", children: [_jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx("h1", { className: "text-3xl font-bold text-gray-900 mb-2", children: "Request for Proposals" }) }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsxs("div", { className: "flex flex-row gap-6", children: [_jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Code" }), _jsx(TextInput, { className: "w-full", defaultValue: state.code || "", onBlur: (e) => {
37
+ return (_jsxs(_Fragment, { children: [_jsx(DocumentToolbar, { document: doc, onClose: handleClose }), _jsxs("div", { className: "w-full bg-gray-50", children: [_jsxs("div", { className: "p-6 max-w-4xl mx-auto min-h-screen", children: [_jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx("h1", { className: "text-3xl font-bold text-gray-900 mb-2", children: "Request for Proposals" }) }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsxs("div", { className: "flex flex-row gap-6", children: [_jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Code" }), _jsx(TextInput, { className: "w-full", defaultValue: state.code || "", onBlur: (e) => {
31
38
  if (e.target.value !== state.code) {
32
39
  dispatch(actions.editRfp({ code: e.target.value }));
33
40
  }
@@ -1 +1 @@
1
- {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/workstream/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AA4CxB,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAsBjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CAgzC7B"}
1
+ {"version":3,"file":"editor.d.ts","sourceRoot":"","sources":["../../../editors/workstream/editor.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,WAAW,EAGZ,MAAM,gBAAgB,CAAC;AA8CxB,MAAM,MAAM,MAAM,GAAG,WAAW,CAAC;AAsBjC,MAAM,CAAC,OAAO,UAAU,MAAM,4CAwzC7B"}
@@ -3,9 +3,9 @@ import { Button, toast, ToastContainer } from "@powerhousedao/design-system";
3
3
  import { TextInput, Select, OIDInput, PHIDInput, ObjectSetTable, buildEnumCellEditor, } from "@powerhousedao/document-engineering";
4
4
  import { actions, } from "../../document-models/workstream/index.js";
5
5
  import { actions as rfpActions, } from "../../document-models/request-for-proposals/index.js";
6
- import { ScopeOfWork } from "@powerhousedao/project-management/document-models";
6
+ import { ScopeOfWork } from "./project-management-import.js";
7
7
  import { generateId } from "document-model/core";
8
- import { useDocumentById, useSelectedDrive, addDocument, useDocumentsInSelectedDrive, } from "@powerhousedao/reactor-browser";
8
+ import { useDocumentById, useSelectedDrive, addDocument, useDocumentsInSelectedDrive, useParentFolderForSelectedNode, setSelectedNode, } from "@powerhousedao/reactor-browser";
9
9
  import { useEffect, useMemo, useState, useCallback } from "react";
10
10
  import { useSelectedWorkstreamDocument } from "../hooks/useWorkstreamDocument.js";
11
11
  import { DocumentToolbar } from "@powerhousedao/design-system";
@@ -40,6 +40,12 @@ export default function Editor() {
40
40
  const [newlyCreatedSowId, setNewlyCreatedSowId] = useState(null);
41
41
  const [newlyCreatedPaymentTermsId, setNewlyCreatedPaymentTermsId] = useState(null);
42
42
  const [newlyCreatedRfpId, setNewlyCreatedRfpId] = useState(null);
43
+ // Get the parent folder node for the currently selected node
44
+ const parentFolder = useParentFolderForSelectedNode();
45
+ // Set the selected node to the parent folder node (close the editor)
46
+ function handleClose() {
47
+ setSelectedNode(parentFolder?.id);
48
+ }
43
49
  // Loading states to prevent double-clicks
44
50
  const [isCreatingRfp, setIsCreatingRfp] = useState(false);
45
51
  const [isCreatingSow, setIsCreatingSow] = useState(false);
@@ -555,7 +561,7 @@ export default function Editor() {
555
561
  searchPaymentTermsDocuments,
556
562
  searchSowDocuments,
557
563
  ]);
558
- return (_jsxs("div", { className: "w-full bg-gray-50", children: [_jsx(DocumentToolbar, {}), _jsxs("div", { className: "p-6 max-w-4xl mx-auto min-h-screen", children: [_jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx("h1", { className: "text-3xl font-bold text-gray-900 mb-2", children: "Workstream" }) }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsxs("div", { className: "flex flex-row gap-6", children: [_jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Code" }), _jsx(TextInput, { className: "w-full", defaultValue: state.code || "", onBlur: (e) => {
564
+ return (_jsxs("div", { className: "w-full bg-gray-50", children: [_jsx(DocumentToolbar, { document: doc, onClose: handleClose }), _jsxs("div", { className: "p-6 max-w-4xl mx-auto min-h-screen", children: [_jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsx("h1", { className: "text-3xl font-bold text-gray-900 mb-2", children: "Workstream" }) }), _jsx("div", { className: "bg-white rounded-lg p-6 mb-6 shadow-sm", children: _jsxs("div", { className: "flex flex-row gap-6", children: [_jsxs("div", { className: "flex-1", children: [_jsx("label", { className: "block text-sm font-medium text-gray-700 mb-2", children: "Code" }), _jsx(TextInput, { className: "w-full", defaultValue: state.code || "", onBlur: (e) => {
559
565
  if (e.target.value !== state.code) {
560
566
  handleWorkstreamChange("code", e.target.value);
561
567
  }
@@ -0,0 +1,3 @@
1
+ import { module as ScopeOfWork } from "./scope-of-work-link/index.js";
2
+ export { ScopeOfWork };
3
+ //# sourceMappingURL=project-management-import.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-management-import.d.ts","sourceRoot":"","sources":["../../../editors/workstream/project-management-import.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,IAAI,WAAW,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ // Re-export ScopeOfWork to work around broken package.json exports
2
+ // The package has a "development" condition pointing to non-existent source files
3
+ // Using a symlink to the dist folder that Vite can resolve
4
+ import { module as ScopeOfWork } from "./scope-of-work-link/index.js";
5
+ export { ScopeOfWork };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type Manifest } from "document-model";
1
+ import type { Manifest } from "document-model";
2
2
  export declare const manifest: Manifest;
3
3
  export declare const documentModels: (import("document-model").DocumentModelModule<import("./document-models/workstream/index.js").WorkstreamPHState> | import("document-model").DocumentModelModule<import("./document-models/request-for-proposals/index.js").RequestForProposalsPHState> | import("document-model").DocumentModelModule<import("./document-models/payment-terms/index.js").PaymentTermsPHState> | import("document-model").DocumentModelModule<import("./document-models/network-profile/index.js").NetworkProfilePHState>)[];
4
4
  export declare const editors: import("document-model").EditorModule[];
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,eAAO,MAAM,QAAQ,EAAE,QAAuB,CAAC;AAC/C,eAAO,MAAM,cAAc,6eAAuC,CAAC;AACnE,eAAO,MAAM,OAAO,yCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAK/C,eAAO,MAAM,QAAQ,EAAE,QAAuB,CAAC;AAC/C,eAAO,MAAM,cAAc,6eAAuC,CAAC;AACnE,eAAO,MAAM,OAAO,yCAAgC,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,3 @@
1
- import {} from "document-model";
2
1
  import manifestJson from "./powerhouse.manifest.json" with { type: "json" };
3
2
  import * as documentModelsExports from './document-models/index.js';
4
3
  import * as editorsExports from './editors/index.js';