@powerhousedao/vetra 6.2.0-dev.2 → 6.2.0-dev.21

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 (54) hide show
  1. package/dist/codegen/index.d.ts +4 -4
  2. package/dist/document-models/app-module/index.d.ts +1 -1
  3. package/dist/document-models/document-editor/index.d.ts +1 -1
  4. package/dist/document-models/index.d.ts +5 -5
  5. package/dist/document-models/processor-module/index.d.ts +1 -1
  6. package/dist/document-models/subgraph-module/index.d.ts +1 -1
  7. package/dist/document-models/vetra-package/index.d.ts +1 -1
  8. package/dist/{editor-CM9tpwzR.js → editor-B560eld_.js} +15 -15
  9. package/dist/editor-B560eld_.js.map +1 -0
  10. package/dist/{editor-rYCWiter.js → editor-CAVHtR-v.js} +6 -6
  11. package/dist/editor-CAVHtR-v.js.map +1 -0
  12. package/dist/{editor-D-QqGEkw.js → editor-CVCLxUhe.js} +14 -14
  13. package/dist/editor-CVCLxUhe.js.map +1 -0
  14. package/dist/{editor-BamOOi9L.js → editor-DnG2Zzet.js} +10 -10
  15. package/dist/editor-DnG2Zzet.js.map +1 -0
  16. package/dist/{editor-Dz3cXtzn.js → editor-mor7dV6n.js} +56 -56
  17. package/dist/editor-mor7dV6n.js.map +1 -0
  18. package/dist/{editor-je4HFt2f.js → editor-xCnDas6c.js} +30 -30
  19. package/dist/editor-xCnDas6c.js.map +1 -0
  20. package/dist/editors/components/index.js +1 -1
  21. package/dist/editors/components/index.js.map +1 -1
  22. package/dist/editors/index.js +1 -1
  23. package/dist/{index-DE_s19VI.d.ts → index-DCNTOgFn.d.ts} +4 -4
  24. package/dist/index-DCNTOgFn.d.ts.map +1 -0
  25. package/dist/{index-6u5B5ORH.d.ts → index-DKH5DHrE.d.ts} +4 -4
  26. package/dist/index-DKH5DHrE.d.ts.map +1 -0
  27. package/dist/{index-BzDZOr5P.d.ts → index-DsC-4q78.d.ts} +4 -4
  28. package/dist/index-DsC-4q78.d.ts.map +1 -0
  29. package/dist/{index-BL4jGAtJ.d.ts → index-uG0ivQaR.d.ts} +4 -4
  30. package/dist/index-uG0ivQaR.d.ts.map +1 -0
  31. package/dist/index.d.ts +5 -5
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/module-1hr_ne9w.js.map +1 -1
  35. package/dist/{module-rS5YXFpM.d.ts → module-DTjIlvYU.d.ts} +4 -4
  36. package/dist/module-DTjIlvYU.d.ts.map +1 -0
  37. package/dist/{module-DvO77TZz.js → module-DySsSIQV.js} +7 -7
  38. package/dist/{module-DvO77TZz.js.map → module-DySsSIQV.js.map} +1 -1
  39. package/dist/utils-B4KdjDnp.js.map +1 -1
  40. package/dist/utils-BiV3cs9Y.js.map +1 -1
  41. package/dist/utils-CkWB3DRk.js.map +1 -1
  42. package/dist/utils-D0ejTHeY.js.map +1 -1
  43. package/package.json +9 -9
  44. package/dist/editor-BamOOi9L.js.map +0 -1
  45. package/dist/editor-CM9tpwzR.js.map +0 -1
  46. package/dist/editor-D-QqGEkw.js.map +0 -1
  47. package/dist/editor-Dz3cXtzn.js.map +0 -1
  48. package/dist/editor-je4HFt2f.js.map +0 -1
  49. package/dist/editor-rYCWiter.js.map +0 -1
  50. package/dist/index-6u5B5ORH.d.ts.map +0 -1
  51. package/dist/index-BL4jGAtJ.d.ts.map +0 -1
  52. package/dist/index-BzDZOr5P.d.ts.map +0 -1
  53. package/dist/index-DE_s19VI.d.ts.map +0 -1
  54. package/dist/module-rS5YXFpM.d.ts.map +0 -1
@@ -1,7 +1,7 @@
1
- import { tt as AppModuleDocument } from "../index-BzDZOr5P.js";
2
- import { q as DocumentEditorDocument } from "../index-6u5B5ORH.js";
3
- import { nt as ProcessorModuleDocument } from "../index-DE_s19VI.js";
4
- import { B as SubgraphModuleDocument } from "../index-BL4jGAtJ.js";
1
+ import { tt as AppModuleDocument } from "../index-DsC-4q78.js";
2
+ import { q as DocumentEditorDocument } from "../index-DKH5DHrE.js";
3
+ import { nt as ProcessorModuleDocument } from "../index-DCNTOgFn.js";
4
+ import { B as SubgraphModuleDocument } from "../index-uG0ivQaR.js";
5
5
  import { Action, DocumentModelDocument, DocumentModelGlobalState, PHDocument, Reducer } from "@powerhousedao/shared/document-model";
6
6
  import { Project } from "ts-morph";
7
7
 
@@ -1,4 +1,4 @@
1
- import { $ as SetAppStatusAction, A as assertIsAppModuleDocument, B as removeDocumentType, C as defaultGlobalState, D as AppModuleDocumentHeaderSchema, E as appModuleDocumentType, F as AppModuleDndOperationsOperations, G as AppModuleBaseOperationsOperations, H as setAppStatus, I as creators_d_exports$1, J as SetDragAndDropEnabledAction, K as AppModuleAction, L as setDragAndDropEnabled, M as isAppModuleDocument, N as isAppModuleState, O as AppModuleDocumentSchema, P as documentModel, Q as SetAppNameAction, R as addDocumentType, S as createState, T as defaultPHState, U as setDocumentTypes, V as setAppName, W as AppModuleController, X as AppModuleBaseOperationsAction, Y as AddDocumentTypeAction, Z as RemoveDocumentTypeAction, _ as useAppModuleDocumentsInSelectedDrive, _t as SetDocumentTypesInput, a as RemoveDocumentTypeInputSchema, at as AppModuleState, b as actions, c as SetDocumentTypesInputSchema, ct as InputMaybe, d as definedNonNullAnySchema, dt as MakeOptional, et as SetDocumentTypesAction, f as isDefinedNonNullAny, ft as Maybe, g as useAppModuleDocumentById, gt as SetAppStatusInput, h as AppModule, ht as SetAppNameInput, i as AppModuleStateSchema, it as AddDocumentTypeInput, j as assertIsAppModuleState, k as AppModulePHStateSchema, l as SetDragAndDropEnabledInputSchema, lt as MakeEmpty, m as utils, mt as Scalars, n as initialLocalState, nt as AppModuleLocalState, o as SetAppNameInputSchema, ot as Exact, p as reducer, pt as RemoveDocumentTypeInput, q as AppModuleDndOperationsAction, r as AddDocumentTypeInputSchema, rt as AppModulePHState, s as SetAppStatusInputSchema, st as Incremental, t as initialGlobalState, tt as AppModuleDocument, u as StatusTypeSchema, ut as MakeMaybe, v as useAppModuleDocumentsInSelectedFolder, vt as SetDragAndDropEnabledInput, w as defaultLocalState, x as createAppModuleDocument, y as useSelectedAppModuleDocument, yt as StatusType, z as creators_d_exports } from "../../index-BzDZOr5P.js";
1
+ import { $ as SetAppStatusAction, A as assertIsAppModuleDocument, B as removeDocumentType, C as defaultGlobalState, D as AppModuleDocumentHeaderSchema, E as appModuleDocumentType, F as AppModuleDndOperationsOperations, G as AppModuleBaseOperationsOperations, H as setAppStatus, I as creators_d_exports$1, J as SetDragAndDropEnabledAction, K as AppModuleAction, L as setDragAndDropEnabled, M as isAppModuleDocument, N as isAppModuleState, O as AppModuleDocumentSchema, P as documentModel, Q as SetAppNameAction, R as addDocumentType, S as createState, T as defaultPHState, U as setDocumentTypes, V as setAppName, W as AppModuleController, X as AppModuleBaseOperationsAction, Y as AddDocumentTypeAction, Z as RemoveDocumentTypeAction, _ as useAppModuleDocumentsInSelectedDrive, _t as SetDocumentTypesInput, a as RemoveDocumentTypeInputSchema, at as AppModuleState, b as actions, c as SetDocumentTypesInputSchema, ct as InputMaybe, d as definedNonNullAnySchema, dt as MakeOptional, et as SetDocumentTypesAction, f as isDefinedNonNullAny, ft as Maybe, g as useAppModuleDocumentById, gt as SetAppStatusInput, h as AppModule, ht as SetAppNameInput, i as AppModuleStateSchema, it as AddDocumentTypeInput, j as assertIsAppModuleState, k as AppModulePHStateSchema, l as SetDragAndDropEnabledInputSchema, lt as MakeEmpty, m as utils, mt as Scalars, n as initialLocalState, nt as AppModuleLocalState, o as SetAppNameInputSchema, ot as Exact, p as reducer, pt as RemoveDocumentTypeInput, q as AppModuleDndOperationsAction, r as AddDocumentTypeInputSchema, rt as AppModulePHState, s as SetAppStatusInputSchema, st as Incremental, t as initialGlobalState, tt as AppModuleDocument, u as StatusTypeSchema, ut as MakeMaybe, v as useAppModuleDocumentsInSelectedFolder, vt as SetDragAndDropEnabledInput, w as defaultLocalState, x as createAppModuleDocument, y as useSelectedAppModuleDocument, yt as StatusType, z as creators_d_exports } from "../../index-DsC-4q78.js";
2
2
  import { UpgradeManifest } from "document-model";
3
3
 
4
4
  //#region document-models/app-module/upgrades/versions.d.ts
@@ -1,4 +1,4 @@
1
- import { $ as Exact, A as assertIsDocumentEditorState, B as DocumentEditorBaseOperationsOperations, C as defaultLocalState, D as DocumentEditorDocumentSchema, E as DocumentEditorDocumentHeaderSchema, F as creators_d_exports, G as SetEditorNameAction, H as AddDocumentTypeAction, I as removeDocumentType, J as DocumentEditorLocalState, K as SetEditorStatusAction, L as setEditorName, M as isDocumentEditorState, N as documentModel, O as DocumentEditorPHStateSchema, P as addDocumentType, Q as DocumentTypeItem, R as setEditorStatus, S as defaultGlobalState, T as documentEditorDocumentType, U as DocumentEditorBaseOperationsAction, V as DocumentEditorAction, W as RemoveDocumentTypeAction, X as AddDocumentTypeInput, Y as DocumentEditorPHState, Z as DocumentEditorState, _ as useDocumentEditorDocumentsInSelectedFolder, a as DocumentTypeItemSchema, at as Maybe, b as createDocumentEditorDocument, c as SetEditorStatusInputSchema, ct as SetEditorNameInput, d as isDefinedNonNullAny, et as Incremental, f as reducer, g as useDocumentEditorDocumentsInSelectedDrive, h as useDocumentEditorDocumentById, i as DocumentEditorStateSchema, it as MakeOptional, j as isDocumentEditorDocument, k as assertIsDocumentEditorDocument, l as StatusTypeSchema, lt as SetEditorStatusInput, m as DocumentEditor, n as initialLocalState, nt as MakeEmpty, o as RemoveDocumentTypeInputSchema, ot as RemoveDocumentTypeInput, p as utils, q as DocumentEditorDocument, r as AddDocumentTypeInputSchema, rt as MakeMaybe, s as SetEditorNameInputSchema, st as Scalars, t as initialGlobalState, tt as InputMaybe, u as definedNonNullAnySchema, ut as StatusType, v as useSelectedDocumentEditorDocument, w as defaultPHState, x as createState, y as actions, z as DocumentEditorController } from "../../index-6u5B5ORH.js";
1
+ import { $ as Exact, A as assertIsDocumentEditorState, B as DocumentEditorBaseOperationsOperations, C as defaultLocalState, D as DocumentEditorDocumentSchema, E as DocumentEditorDocumentHeaderSchema, F as creators_d_exports, G as SetEditorNameAction, H as AddDocumentTypeAction, I as removeDocumentType, J as DocumentEditorLocalState, K as SetEditorStatusAction, L as setEditorName, M as isDocumentEditorState, N as documentModel, O as DocumentEditorPHStateSchema, P as addDocumentType, Q as DocumentTypeItem, R as setEditorStatus, S as defaultGlobalState, T as documentEditorDocumentType, U as DocumentEditorBaseOperationsAction, V as DocumentEditorAction, W as RemoveDocumentTypeAction, X as AddDocumentTypeInput, Y as DocumentEditorPHState, Z as DocumentEditorState, _ as useDocumentEditorDocumentsInSelectedFolder, a as DocumentTypeItemSchema, at as Maybe, b as createDocumentEditorDocument, c as SetEditorStatusInputSchema, ct as SetEditorNameInput, d as isDefinedNonNullAny, et as Incremental, f as reducer, g as useDocumentEditorDocumentsInSelectedDrive, h as useDocumentEditorDocumentById, i as DocumentEditorStateSchema, it as MakeOptional, j as isDocumentEditorDocument, k as assertIsDocumentEditorDocument, l as StatusTypeSchema, lt as SetEditorStatusInput, m as DocumentEditor, n as initialLocalState, nt as MakeEmpty, o as RemoveDocumentTypeInputSchema, ot as RemoveDocumentTypeInput, p as utils, q as DocumentEditorDocument, r as AddDocumentTypeInputSchema, rt as MakeMaybe, s as SetEditorNameInputSchema, st as Scalars, t as initialGlobalState, tt as InputMaybe, u as definedNonNullAnySchema, ut as StatusType, v as useSelectedDocumentEditorDocument, w as defaultPHState, x as createState, y as actions, z as DocumentEditorController } from "../../index-DKH5DHrE.js";
2
2
  import { UpgradeManifest } from "document-model";
3
3
 
4
4
  //#region document-models/document-editor/upgrades/versions.d.ts
@@ -1,6 +1,6 @@
1
- import { h as AppModule } from "../index-BzDZOr5P.js";
2
- import { m as DocumentEditor } from "../index-6u5B5ORH.js";
3
- import { _ as ProcessorModule } from "../index-DE_s19VI.js";
4
- import { d as SubgraphModule } from "../index-BL4jGAtJ.js";
5
- import { t as VetraPackage } from "../module-rS5YXFpM.js";
1
+ import { h as AppModule } from "../index-DsC-4q78.js";
2
+ import { m as DocumentEditor } from "../index-DKH5DHrE.js";
3
+ import { _ as ProcessorModule } from "../index-DCNTOgFn.js";
4
+ import { d as SubgraphModule } from "../index-uG0ivQaR.js";
5
+ import { t as VetraPackage } from "../module-DTjIlvYU.js";
6
6
  export { AppModule as AppModuleV1, DocumentEditor as DocumentEditorV1, ProcessorModule as ProcessorModuleV1, SubgraphModule as SubgraphModuleV1, VetraPackage as VetraPackageV1 };
@@ -1,4 +1,4 @@
1
- import { $ as SetProcessorNameAction, A as ProcessorModuleDocumentSchema, B as removeDocumentType, C as createProcessorModuleDocument, D as defaultPHState, E as defaultLocalState, F as isProcessorModuleState, G as ProcessorModuleController, H as setProcessorName, I as documentModel, J as AddDocumentTypeAction, K as ProcessorModuleBaseOperationsOperations, L as addDocumentType, M as assertIsProcessorModuleDocument, N as assertIsProcessorModuleState, O as processorModuleDocumentType, P as isProcessorModuleDocument, Q as RemoveProcessorAppAction, R as addProcessorApp, S as actions, St as StatusType, T as defaultGlobalState, U as setProcessorStatus, V as removeProcessorApp, W as setProcessorType, X as ProcessorModuleBaseOperationsAction, Y as AddProcessorAppAction, Z as RemoveDocumentTypeAction, _ as ProcessorModule, _t as RemoveProcessorAppInput, a as DocumentTypeItemSchema, at as AddDocumentTypeInput, b as useProcessorModuleDocumentsInSelectedFolder, bt as SetProcessorStatusInput, c as RemoveProcessorAppInputSchema, ct as Exact, d as SetProcessorTypeInputSchema, dt as MakeEmpty, et as SetProcessorStatusAction, f as StatusTypeSchema, ft as MakeMaybe, g as utils, gt as RemoveDocumentTypeInput, h as reducer, ht as ProcessorModuleState, i as AddProcessorAppInputSchema, it as ProcessorModulePHState, j as ProcessorModulePHStateSchema, k as ProcessorModuleDocumentHeaderSchema, l as SetProcessorNameInputSchema, lt as Incremental, m as isDefinedNonNullAny, mt as Maybe, n as initialLocalState, nt as ProcessorModuleDocument, o as ProcessorModuleStateSchema, ot as AddProcessorAppInput, p as definedNonNullAnySchema, pt as MakeOptional, q as ProcessorModuleAction, r as AddDocumentTypeInputSchema, rt as ProcessorModuleLocalState, s as RemoveDocumentTypeInputSchema, st as DocumentTypeItem, t as initialGlobalState, tt as SetProcessorTypeAction, u as SetProcessorStatusInputSchema, ut as InputMaybe, v as useProcessorModuleDocumentById, vt as Scalars, w as createState, x as useSelectedProcessorModuleDocument, xt as SetProcessorTypeInput, y as useProcessorModuleDocumentsInSelectedDrive, yt as SetProcessorNameInput, z as creators_d_exports } from "../../index-DE_s19VI.js";
1
+ import { $ as SetProcessorNameAction, A as ProcessorModuleDocumentSchema, B as removeDocumentType, C as createProcessorModuleDocument, D as defaultPHState, E as defaultLocalState, F as isProcessorModuleState, G as ProcessorModuleController, H as setProcessorName, I as documentModel, J as AddDocumentTypeAction, K as ProcessorModuleBaseOperationsOperations, L as addDocumentType, M as assertIsProcessorModuleDocument, N as assertIsProcessorModuleState, O as processorModuleDocumentType, P as isProcessorModuleDocument, Q as RemoveProcessorAppAction, R as addProcessorApp, S as actions, St as StatusType, T as defaultGlobalState, U as setProcessorStatus, V as removeProcessorApp, W as setProcessorType, X as ProcessorModuleBaseOperationsAction, Y as AddProcessorAppAction, Z as RemoveDocumentTypeAction, _ as ProcessorModule, _t as RemoveProcessorAppInput, a as DocumentTypeItemSchema, at as AddDocumentTypeInput, b as useProcessorModuleDocumentsInSelectedFolder, bt as SetProcessorStatusInput, c as RemoveProcessorAppInputSchema, ct as Exact, d as SetProcessorTypeInputSchema, dt as MakeEmpty, et as SetProcessorStatusAction, f as StatusTypeSchema, ft as MakeMaybe, g as utils, gt as RemoveDocumentTypeInput, h as reducer, ht as ProcessorModuleState, i as AddProcessorAppInputSchema, it as ProcessorModulePHState, j as ProcessorModulePHStateSchema, k as ProcessorModuleDocumentHeaderSchema, l as SetProcessorNameInputSchema, lt as Incremental, m as isDefinedNonNullAny, mt as Maybe, n as initialLocalState, nt as ProcessorModuleDocument, o as ProcessorModuleStateSchema, ot as AddProcessorAppInput, p as definedNonNullAnySchema, pt as MakeOptional, q as ProcessorModuleAction, r as AddDocumentTypeInputSchema, rt as ProcessorModuleLocalState, s as RemoveDocumentTypeInputSchema, st as DocumentTypeItem, t as initialGlobalState, tt as SetProcessorTypeAction, u as SetProcessorStatusInputSchema, ut as InputMaybe, v as useProcessorModuleDocumentById, vt as Scalars, w as createState, x as useSelectedProcessorModuleDocument, xt as SetProcessorTypeInput, y as useProcessorModuleDocumentsInSelectedDrive, yt as SetProcessorNameInput, z as creators_d_exports } from "../../index-DCNTOgFn.js";
2
2
  import { UpgradeManifest } from "document-model";
3
3
 
4
4
  //#region document-models/processor-module/upgrades/versions.d.ts
@@ -1,4 +1,4 @@
1
- import { $ as StatusType, A as documentModel, B as SubgraphModuleDocument, C as SubgraphModuleDocumentHeaderSchema, D as assertIsSubgraphModuleState, E as assertIsSubgraphModuleDocument, F as SubgraphModuleBaseOperationsOperations, G as InputMaybe, H as SubgraphModulePHState, I as SubgraphModuleAction, J as MakeOptional, K as MakeEmpty, L as SetSubgraphNameAction, M as setSubgraphName, N as setSubgraphStatus, O as isSubgraphModuleDocument, P as SubgraphModuleController, Q as SetSubgraphStatusInput, R as SetSubgraphStatusAction, S as subgraphModuleDocumentType, T as SubgraphModulePHStateSchema, U as Exact, V as SubgraphModuleLocalState, W as Incremental, X as Scalars, Y as Maybe, Z as SetSubgraphNameInput, _ as createState, a as StatusTypeSchema, b as defaultLocalState, c as isDefinedNonNullAny, d as SubgraphModule, et as SubgraphModuleState, f as useSelectedSubgraphModuleDocument, g as actions, h as useSubgraphModuleDocumentsInSelectedFolder, i as SetSubgraphStatusInputSchema, j as creators_d_exports, k as isSubgraphModuleState, l as reducer, m as useSubgraphModuleDocumentsInSelectedDrive, n as initialLocalState, o as SubgraphModuleStateSchema, p as useSubgraphModuleDocumentById, q as MakeMaybe, r as SetSubgraphNameInputSchema, s as definedNonNullAnySchema, t as initialGlobalState, u as utils, v as createSubgraphModuleDocument, w as SubgraphModuleDocumentSchema, x as defaultPHState, y as defaultGlobalState, z as SubgraphModuleBaseOperationsAction } from "../../index-BL4jGAtJ.js";
1
+ import { $ as StatusType, A as documentModel, B as SubgraphModuleDocument, C as SubgraphModuleDocumentHeaderSchema, D as assertIsSubgraphModuleState, E as assertIsSubgraphModuleDocument, F as SubgraphModuleBaseOperationsOperations, G as InputMaybe, H as SubgraphModulePHState, I as SubgraphModuleAction, J as MakeOptional, K as MakeEmpty, L as SetSubgraphNameAction, M as setSubgraphName, N as setSubgraphStatus, O as isSubgraphModuleDocument, P as SubgraphModuleController, Q as SetSubgraphStatusInput, R as SetSubgraphStatusAction, S as subgraphModuleDocumentType, T as SubgraphModulePHStateSchema, U as Exact, V as SubgraphModuleLocalState, W as Incremental, X as Scalars, Y as Maybe, Z as SetSubgraphNameInput, _ as createState, a as StatusTypeSchema, b as defaultLocalState, c as isDefinedNonNullAny, d as SubgraphModule, et as SubgraphModuleState, f as useSelectedSubgraphModuleDocument, g as actions, h as useSubgraphModuleDocumentsInSelectedFolder, i as SetSubgraphStatusInputSchema, j as creators_d_exports, k as isSubgraphModuleState, l as reducer, m as useSubgraphModuleDocumentsInSelectedDrive, n as initialLocalState, o as SubgraphModuleStateSchema, p as useSubgraphModuleDocumentById, q as MakeMaybe, r as SetSubgraphNameInputSchema, s as definedNonNullAnySchema, t as initialGlobalState, u as utils, v as createSubgraphModuleDocument, w as SubgraphModuleDocumentSchema, x as defaultPHState, y as defaultGlobalState, z as SubgraphModuleBaseOperationsAction } from "../../index-uG0ivQaR.js";
2
2
  import { UpgradeManifest } from "document-model";
3
3
 
4
4
  //#region document-models/subgraph-module/upgrades/versions.d.ts
@@ -1,4 +1,4 @@
1
- import { $ as VetraPackageDocument, A as vetraPackageDocumentType, At as SetPackageDescriptionAction, B as creators_d_exports, C as isDefinedNonNullAny, Ct as VetraPackageAction, D as defaultGlobalState, Dt as SetPackageAuthorNameAction, E as createVetraPackageDocument, Et as SetPackageAuthorAction, F as assertIsVetraPackageState, G as setPackageCategory, H as setPackageAuthor, I as isVetraPackageDocument, J as setPackageName, K as setPackageDescription, L as isVetraPackageState, M as VetraPackageDocumentSchema, Mt as SetPackageNameAction, N as VetraPackagePHStateSchema, Nt as SetPackageNpmUrlAction, O as defaultLocalState, Ot as SetPackageAuthorWebsiteAction, P as assertIsVetraPackageDocument, Pt as VetraPackageBaseOperationsAction, Q as actions, R as documentModel, S as definedNonNullAnySchema, St as VetraPackageState, T as createState, Tt as RemovePackageKeywordAction, U as setPackageAuthorName, V as removePackageKeyword, W as setPackageAuthorWebsite, X as VetraPackageController, Y as setPackageNpmUrl, Z as VetraPackageBaseOperationsOperations, _ as SetPackageDescriptionInputSchema, _t as SetPackageCategoryInput, a as useVetraPackageDocumentsInSelectedDrive, at as Incremental, b as SetPackageNpmUrlInputSchema, bt as SetPackageNameInput, c as initialLocalState, ct as MakeEmpty, d as KeywordSchema, dt as Maybe, et as VetraPackageLocalState, f as RemovePackageKeywordInputSchema, ft as RemovePackageKeywordInput, g as SetPackageCategoryInputSchema, gt as SetPackageAuthorWebsiteInput, h as SetPackageAuthorWebsiteInputSchema, ht as SetPackageAuthorNameInput, i as useVetraPackageDocumentById, it as Exact, j as VetraPackageDocumentHeaderSchema, jt as SetPackageGithubUrlAction, k as defaultPHState, kt as SetPackageCategoryAction, l as AddPackageKeywordInputSchema, lt as MakeMaybe, m as SetPackageAuthorNameInputSchema, mt as SetPackageAuthorInput, n as utils, nt as AddPackageKeywordInput, o as useVetraPackageDocumentsInSelectedFolder, ot as InputMaybe, p as SetPackageAuthorInputSchema, pt as Scalars, q as setPackageGithubUrl, r as useSelectedVetraPackageDocument, rt as Author, s as initialGlobalState, st as Keyword, t as VetraPackage, tt as VetraPackagePHState, u as AuthorSchema, ut as MakeOptional, v as SetPackageGithubUrlInputSchema, vt as SetPackageDescriptionInput, w as reducer, wt as AddPackageKeywordAction, x as VetraPackageStateSchema, xt as SetPackageNpmUrlInput, y as SetPackageNameInputSchema, yt as SetPackageGithubUrlInput, z as addPackageKeyword } from "../../module-rS5YXFpM.js";
1
+ import { $ as VetraPackageDocument, A as vetraPackageDocumentType, At as SetPackageDescriptionAction, B as creators_d_exports, C as isDefinedNonNullAny, Ct as VetraPackageAction, D as defaultGlobalState, Dt as SetPackageAuthorNameAction, E as createVetraPackageDocument, Et as SetPackageAuthorAction, F as assertIsVetraPackageState, G as setPackageCategory, H as setPackageAuthor, I as isVetraPackageDocument, J as setPackageName, K as setPackageDescription, L as isVetraPackageState, M as VetraPackageDocumentSchema, Mt as SetPackageNameAction, N as VetraPackagePHStateSchema, Nt as SetPackageNpmUrlAction, O as defaultLocalState, Ot as SetPackageAuthorWebsiteAction, P as assertIsVetraPackageDocument, Pt as VetraPackageBaseOperationsAction, Q as actions, R as documentModel, S as definedNonNullAnySchema, St as VetraPackageState, T as createState, Tt as RemovePackageKeywordAction, U as setPackageAuthorName, V as removePackageKeyword, W as setPackageAuthorWebsite, X as VetraPackageController, Y as setPackageNpmUrl, Z as VetraPackageBaseOperationsOperations, _ as SetPackageDescriptionInputSchema, _t as SetPackageCategoryInput, a as useVetraPackageDocumentsInSelectedDrive, at as Incremental, b as SetPackageNpmUrlInputSchema, bt as SetPackageNameInput, c as initialLocalState, ct as MakeEmpty, d as KeywordSchema, dt as Maybe, et as VetraPackageLocalState, f as RemovePackageKeywordInputSchema, ft as RemovePackageKeywordInput, g as SetPackageCategoryInputSchema, gt as SetPackageAuthorWebsiteInput, h as SetPackageAuthorWebsiteInputSchema, ht as SetPackageAuthorNameInput, i as useVetraPackageDocumentById, it as Exact, j as VetraPackageDocumentHeaderSchema, jt as SetPackageGithubUrlAction, k as defaultPHState, kt as SetPackageCategoryAction, l as AddPackageKeywordInputSchema, lt as MakeMaybe, m as SetPackageAuthorNameInputSchema, mt as SetPackageAuthorInput, n as utils, nt as AddPackageKeywordInput, o as useVetraPackageDocumentsInSelectedFolder, ot as InputMaybe, p as SetPackageAuthorInputSchema, pt as Scalars, q as setPackageGithubUrl, r as useSelectedVetraPackageDocument, rt as Author, s as initialGlobalState, st as Keyword, t as VetraPackage, tt as VetraPackagePHState, u as AuthorSchema, ut as MakeOptional, v as SetPackageGithubUrlInputSchema, vt as SetPackageDescriptionInput, w as reducer, wt as AddPackageKeywordAction, x as VetraPackageStateSchema, xt as SetPackageNpmUrlInput, y as SetPackageNameInputSchema, yt as SetPackageGithubUrlInput, z as addPackageKeyword } from "../../module-DTjIlvYU.js";
2
2
  import { UpgradeManifest } from "document-model";
3
3
 
4
4
  //#region document-models/vetra-package/upgrades/versions.d.ts
@@ -52,7 +52,7 @@ const ProcessorEditorForm = ({ processorName: initialProcessorName = "", process
52
52
  /* @__PURE__ */ jsxs("div", {
53
53
  className: "flex items-center justify-between",
54
54
  children: [/* @__PURE__ */ jsx("h2", {
55
- className: "text-lg font-medium text-gray-900 dark:text-slate-50",
55
+ className: "text-lg font-medium text-foreground",
56
56
  children: "Processor Configuration"
57
57
  }), /* @__PURE__ */ jsx(StatusPill, {
58
58
  status: status === "CONFIRMED" ? "confirmed" : "draft",
@@ -61,7 +61,7 @@ const ProcessorEditorForm = ({ processorName: initialProcessorName = "", process
61
61
  }),
62
62
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
63
63
  htmlFor: "processor-name",
64
- className: "mb-2 block text-sm font-medium text-gray-700 dark:text-slate-200",
64
+ className: "mb-2 block text-sm font-medium text-foreground",
65
65
  children: "Processor Name"
66
66
  }), /* @__PURE__ */ jsx("input", {
67
67
  id: "processor-name",
@@ -69,19 +69,19 @@ const ProcessorEditorForm = ({ processorName: initialProcessorName = "", process
69
69
  value: processorName,
70
70
  onChange: (e) => setProcessorName(e.target.value),
71
71
  disabled: isReadOnly,
72
- className: twMerge("w-full rounded-md border border-gray-300 px-3 py-2 placeholder:text-gray-700 focus:border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:placeholder:text-slate-200", isReadOnly ? "cursor-not-allowed bg-gray-100 dark:bg-slate-700" : ""),
72
+ className: twMerge("w-full rounded-md border border-border px-3 py-2 text-foreground placeholder:text-muted-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none disabled:disabled-effect", isReadOnly ? "cursor-not-allowed bg-muted text-muted-foreground" : ""),
73
73
  placeholder: "Enter processor name"
74
74
  })] }),
75
75
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
76
76
  htmlFor: "processor-type",
77
- className: "mb-2 block text-sm font-medium text-gray-700 dark:text-slate-200",
77
+ className: "mb-2 block text-sm font-medium text-foreground",
78
78
  children: "Type"
79
79
  }), /* @__PURE__ */ jsxs("select", {
80
80
  id: "processor-type",
81
81
  value: processorType,
82
82
  onChange: (e) => setProcessorType(e.target.value),
83
83
  disabled: isReadOnly,
84
- className: twMerge("w-full rounded-md border border-gray-300 px-3 py-2 text-gray-900 focus:border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", isReadOnly ? "cursor-not-allowed bg-gray-100 dark:bg-slate-700" : ""),
84
+ className: twMerge("w-full rounded-md border border-border px-3 py-2 text-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none", isReadOnly ? "cursor-not-allowed bg-muted" : ""),
85
85
  children: [
86
86
  /* @__PURE__ */ jsx("option", {
87
87
  value: "",
@@ -99,7 +99,7 @@ const ProcessorEditorForm = ({ processorName: initialProcessorName = "", process
99
99
  })] }),
100
100
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
101
101
  htmlFor: "document-types",
102
- className: "mb-2 block text-sm font-medium text-gray-700 dark:text-slate-200",
102
+ className: "mb-2 block text-sm font-medium text-foreground",
103
103
  children: "Document Types"
104
104
  }), /* @__PURE__ */ jsxs("div", {
105
105
  className: "space-y-2",
@@ -119,7 +119,7 @@ const ProcessorEditorForm = ({ processorName: initialProcessorName = "", process
119
119
  }
120
120
  setSelectedDocumentType("");
121
121
  },
122
- className: "w-full rounded-md border border-gray-300 px-3 py-2 text-gray-900 focus:border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
122
+ className: "w-full rounded-md border border-border px-3 py-2 text-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none",
123
123
  children: [/* @__PURE__ */ jsx("option", {
124
124
  value: "",
125
125
  children: "Select a document type to add"
@@ -132,11 +132,11 @@ const ProcessorEditorForm = ({ processorName: initialProcessorName = "", process
132
132
  children: documentTypes.map((type) => /* @__PURE__ */ jsxs("div", {
133
133
  className: "flex items-center py-1",
134
134
  children: [/* @__PURE__ */ jsx("span", {
135
- className: "text-sm text-gray-700 dark:text-slate-200",
135
+ className: "text-sm text-foreground",
136
136
  children: type.documentType
137
137
  }), !isReadOnly && /* @__PURE__ */ jsx("button", {
138
138
  onClick: () => handleRemoveDocumentType(type.id),
139
- className: "ml-2 text-gray-400 hover:text-gray-600 focus:outline-none dark:text-slate-500 dark:hover:text-slate-300",
139
+ className: "ml-2 text-muted-foreground hover:hover-effect focus:outline-none",
140
140
  children: "×"
141
141
  })]
142
142
  }, type.id))
@@ -144,7 +144,7 @@ const ProcessorEditorForm = ({ processorName: initialProcessorName = "", process
144
144
  })] }),
145
145
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
146
146
  htmlFor: "processor-apps",
147
- className: "mb-2 block text-sm font-medium text-gray-700 dark:text-slate-200",
147
+ className: "mb-2 block text-sm font-medium text-foreground",
148
148
  children: "Processor Apps"
149
149
  }), /* @__PURE__ */ jsxs("div", {
150
150
  className: "space-y-2",
@@ -166,13 +166,13 @@ const ProcessorEditorForm = ({ processorName: initialProcessorName = "", process
166
166
  }
167
167
  }), /* @__PURE__ */ jsx("label", {
168
168
  htmlFor: processorApp,
169
- className: "text-gray-700 dark:text-slate-200",
169
+ className: "text-foreground",
170
170
  children: processorApp
171
171
  })]
172
172
  }, processorApp)) }), /* @__PURE__ */ jsx("div", {
173
173
  className: "space-y-1",
174
174
  children: isReadOnly && processorApps.map((processorApp) => /* @__PURE__ */ jsx("span", {
175
- className: "text-sm text-gray-700 dark:text-slate-200",
175
+ className: "text-sm text-foreground",
176
176
  children: processorApp
177
177
  }, processorApp))
178
178
  })]
@@ -180,7 +180,7 @@ const ProcessorEditorForm = ({ processorName: initialProcessorName = "", process
180
180
  !isReadOnly && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("button", {
181
181
  onClick: handleConfirm,
182
182
  disabled: !canConfirm,
183
- className: "rounded-md bg-blue-600 px-4 py-2 text-white hover:bg-blue-700 focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:bg-gray-300 dark:bg-blue-300 dark:text-slate-900 dark:hover:bg-blue-200 dark:disabled:bg-slate-600 dark:disabled:text-slate-100",
183
+ className: "rounded-md bg-primary px-4 py-2 text-primary-foreground hover:hover-effect focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none disabled:disabled-effect",
184
184
  children: "Confirm"
185
185
  }) })
186
186
  ]
@@ -221,7 +221,7 @@ function Editor() {
221
221
  dispatch(removeProcessorApp({ processorApp }));
222
222
  }, [dispatch]);
223
223
  return /* @__PURE__ */ jsxs("div", {
224
- className: "bg-gray-50 p-6 dark:bg-slate-800",
224
+ className: "bg-background p-6",
225
225
  children: [/* @__PURE__ */ jsx(DocumentToolbar, {}), /* @__PURE__ */ jsx(ProcessorEditorForm, {
226
226
  onNameChange,
227
227
  onTypeChange,
@@ -241,4 +241,4 @@ function Editor() {
241
241
  //#endregion
242
242
  export { Editor as default };
243
243
 
244
- //# sourceMappingURL=editor-CM9tpwzR.js.map
244
+ //# sourceMappingURL=editor-B560eld_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-B560eld_.js","names":[],"sources":["../editors/processor-editor/components/ProcessorEditorForm.tsx","../editors/processor-editor/config.ts","../editors/processor-editor/editor.tsx"],"sourcesContent":["import {\n PROCESSOR_APPS,\n type ProcessorApp,\n type ProcessorApps,\n} from \"@powerhousedao/shared/processors\";\nimport { useEffect, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport type { DocumentTypeItem } from \"../../../document-models/processor-module/index.js\";\nimport { StatusPill } from \"../../components/index.js\";\nimport { useAvailableDocumentTypes, useDebounce } from \"../../hooks/index.js\";\n\nexport interface ProcessorEditorFormProps {\n processorName?: string;\n processorType?: string;\n documentTypes?: DocumentTypeItem[];\n processorApps?: ProcessorApps;\n status?: string;\n onNameChange?: (name: string) => void;\n onTypeChange?: (type: string) => void;\n onAddDocumentType?: (id: string, documentType: string) => void;\n onRemoveDocumentType?: (id: string) => void;\n onAddProcessorApp?: (processorApp: ProcessorApp) => void;\n onRemoveProcessorApp?: (processorApp: ProcessorApp) => void;\n onConfirm?: () => void;\n}\n\nexport const ProcessorEditorForm: React.FC<ProcessorEditorFormProps> = ({\n processorName: initialProcessorName = \"\",\n processorType: initialProcessorType = \"\",\n documentTypes: initialDocumentTypes = [],\n processorApps: initialProcessorApps = [],\n status = \"DRAFT\",\n onNameChange,\n onTypeChange,\n onAddDocumentType,\n onRemoveDocumentType,\n onAddProcessorApp,\n onRemoveProcessorApp,\n onConfirm,\n}) => {\n const [processorName, setProcessorName] = useState(initialProcessorName);\n const [processorType, setProcessorType] = useState(initialProcessorType);\n const [documentTypes, setDocumentTypes] =\n useState<DocumentTypeItem[]>(initialDocumentTypes);\n const [selectedDocumentType, setSelectedDocumentType] = useState(\"\");\n const [processorApps, setProcessorApps] = useState(initialProcessorApps);\n const [isConfirmed, setIsConfirmed] = useState(false);\n\n // Get available document types from the hook (combines reactor and vetra drive)\n const availableDocumentTypes = useAvailableDocumentTypes();\n\n // Use the debounce hook for name and type changes\n useDebounce(processorName, onNameChange, 300);\n useDebounce(processorType, onTypeChange, 300);\n\n // Update local state when initial values change\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setProcessorName(initialProcessorName);\n }, [initialProcessorName]);\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setProcessorType(initialProcessorType);\n }, [initialProcessorType]);\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setDocumentTypes(initialDocumentTypes);\n }, [initialDocumentTypes]);\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setProcessorApps(initialProcessorApps);\n }, [initialProcessorApps]);\n\n // Reset confirmation state if status changes back to DRAFT\n useEffect(() => {\n if (status === \"DRAFT\") {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setIsConfirmed(false);\n }\n }, [status]);\n\n // Check if form should be read-only\n const isReadOnly = isConfirmed || status === \"CONFIRMED\";\n\n const handleConfirm = () => {\n if (\n processorName.trim() &&\n processorType &&\n documentTypes.length > 0 &&\n processorApps.length > 0\n ) {\n setIsConfirmed(true); // Immediate UI update\n onConfirm?.();\n }\n };\n\n const handleRemoveDocumentType = (id: string) => {\n setDocumentTypes(documentTypes.filter((dt) => dt.id !== id));\n onRemoveDocumentType?.(id);\n };\n\n const canConfirm =\n !!processorName.trim() &&\n !!processorType &&\n documentTypes.length > 0 &&\n processorApps.length > 0;\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-lg font-medium text-foreground\">\n Processor Configuration\n </h2>\n <StatusPill\n status={status === \"CONFIRMED\" ? \"confirmed\" : \"draft\"}\n label={status === \"CONFIRMED\" ? \"Confirmed\" : \"Draft\"}\n />\n </div>\n\n {/* Processor Name Field */}\n <div>\n <label\n htmlFor=\"processor-name\"\n className=\"mb-2 block text-sm font-medium text-foreground\"\n >\n Processor Name\n </label>\n <input\n id=\"processor-name\"\n type=\"text\"\n value={processorName}\n onChange={(e) => setProcessorName(e.target.value)}\n disabled={isReadOnly}\n className={twMerge(\n \"w-full rounded-md border border-border px-3 py-2 text-foreground placeholder:text-muted-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none disabled:disabled-effect\",\n isReadOnly\n ? \"cursor-not-allowed bg-muted text-muted-foreground\"\n : \"\",\n )}\n placeholder=\"Enter processor name\"\n />\n </div>\n\n {/* Processor Type Dropdown */}\n <div>\n <label\n htmlFor=\"processor-type\"\n className=\"mb-2 block text-sm font-medium text-foreground\"\n >\n Type\n </label>\n <select\n id=\"processor-type\"\n value={processorType}\n onChange={(e) => setProcessorType(e.target.value)}\n disabled={isReadOnly}\n className={twMerge(\n \"w-full rounded-md border border-border px-3 py-2 text-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none\",\n isReadOnly ? \"cursor-not-allowed bg-muted\" : \"\",\n )}\n >\n <option value=\"\">Select type...</option>\n <option value=\"analytics\">Analytics</option>\n <option value=\"relational\">Relational Database</option>\n </select>\n </div>\n\n {/* Document Types Field */}\n <div>\n <label\n htmlFor=\"document-types\"\n className=\"mb-2 block text-sm font-medium text-foreground\"\n >\n Document Types\n </label>\n <div className=\"space-y-2\">\n {!isReadOnly && availableDocumentTypes.length > 0 && (\n <select\n id=\"document-types\"\n value={selectedDocumentType}\n onChange={(e) => {\n const selectedValue = e.target.value;\n if (\n selectedValue &&\n !documentTypes.some((dt) => dt.documentType === selectedValue)\n ) {\n const id = Date.now().toString();\n const newType: DocumentTypeItem = {\n id,\n documentType: selectedValue,\n };\n setDocumentTypes([...documentTypes, newType]);\n onAddDocumentType?.(id, selectedValue);\n }\n setSelectedDocumentType(\"\");\n }}\n className=\"w-full rounded-md border border-border px-3 py-2 text-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none\"\n >\n <option value=\"\">Select a document type to add</option>\n {availableDocumentTypes\n .filter(\n (docType) =>\n !documentTypes.some((dt) => dt.documentType === docType),\n )\n .map((docType) => (\n <option key={docType} value={docType}>\n {docType}\n </option>\n ))}\n </select>\n )}\n <div className=\"space-y-1\">\n {documentTypes.map((type) => (\n <div key={type.id} className=\"flex items-center py-1\">\n <span className=\"text-sm text-foreground\">\n {type.documentType}\n </span>\n {!isReadOnly && (\n <button\n onClick={() => handleRemoveDocumentType(type.id)}\n className=\"ml-2 text-muted-foreground hover:hover-effect focus:outline-none\"\n >\n ×\n </button>\n )}\n </div>\n ))}\n </div>\n </div>\n </div>\n {/* Processor Apps Field */}\n <div>\n <label\n htmlFor=\"processor-apps\"\n className=\"mb-2 block text-sm font-medium text-foreground\"\n >\n Processor Apps\n </label>\n <div className=\"space-y-2\">\n {!isReadOnly && (\n <>\n {PROCESSOR_APPS.map((processorApp) => (\n <div key={processorApp} className=\"flex gap-1\">\n <input\n type=\"checkbox\"\n name={processorApp}\n id={processorApp}\n checked={processorApps.includes(processorApp)}\n onChange={(event) => {\n const isChecked = event.target.checked;\n if (isChecked) {\n setProcessorApps((processorApps) => [\n ...new Set([...processorApps, processorApp]),\n ]);\n onAddProcessorApp?.(processorApp);\n } else {\n if (processorApps.length > 1) {\n setProcessorApps((processorApps) =>\n processorApps.filter((p) => p !== processorApp),\n );\n onRemoveProcessorApp?.(processorApp);\n }\n }\n }}\n />\n <label htmlFor={processorApp} className=\"text-foreground\">\n {processorApp}\n </label>\n </div>\n ))}\n </>\n )}\n <div className=\"space-y-1\">\n {isReadOnly &&\n processorApps.map((processorApp) => (\n <span key={processorApp} className=\"text-sm text-foreground\">\n {processorApp}\n </span>\n ))}\n </div>\n </div>\n </div>\n {/* Confirm Button - only show if not in read-only mode */}\n {!isReadOnly && (\n <div>\n <button\n onClick={handleConfirm}\n disabled={!canConfirm}\n className=\"rounded-md bg-primary px-4 py-2 text-primary-foreground hover:hover-effect focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none disabled:disabled-effect\"\n >\n Confirm\n </button>\n </div>\n )}\n </div>\n );\n};\n","import type { PHDocumentEditorConfig } from \"@powerhousedao/reactor-browser\";\n\nexport const editorConfig: PHDocumentEditorConfig = {\n isExternalControlsEnabled: false,\n};\n","import { DocumentToolbar } from \"@powerhousedao/design-system/connect\";\nimport { useSetPHDocumentEditorConfig } from \"@powerhousedao/reactor-browser\";\nimport type {\n ProcessorApp,\n ProcessorApps,\n} from \"@powerhousedao/shared/processors\";\nimport { useCallback } from \"react\";\nimport {\n addDocumentType,\n addProcessorApp,\n removeDocumentType,\n removeProcessorApp,\n setProcessorName,\n setProcessorStatus,\n setProcessorType,\n} from \"../../document-models/processor-module/index.js\";\nimport { useSelectedProcessorModuleDocument } from \"../hooks/useVetraDocument.js\";\nimport { ProcessorEditorForm } from \"./components/ProcessorEditorForm.js\";\nimport { editorConfig } from \"./config.js\";\n\nexport default function Editor() {\n useSetPHDocumentEditorConfig(editorConfig);\n const [document, dispatch] = useSelectedProcessorModuleDocument();\n\n const onConfirm = useCallback(() => {\n // Dispatch all actions at once\n dispatch([setProcessorStatus({ status: \"CONFIRMED\" })]);\n }, [dispatch]);\n\n const onNameChange = useCallback(\n (name: string) => {\n if (name === document.state.global.name) return;\n dispatch(setProcessorName({ name }));\n },\n [document.state.global.name, dispatch],\n );\n\n const onTypeChange = useCallback(\n (type: string) => {\n if (type === document.state.global.type) return;\n dispatch(setProcessorType({ type }));\n },\n [document.state.global.type, dispatch],\n );\n\n const onAddDocumentType = useCallback(\n (id: string, documentType: string) => {\n dispatch(addDocumentType({ id, documentType }));\n },\n [dispatch],\n );\n\n const onRemoveDocumentType = useCallback(\n (id: string) => {\n dispatch(removeDocumentType({ id }));\n },\n [dispatch],\n );\n\n const onAddProcessorApp = useCallback(\n (processorApp: ProcessorApp) => {\n dispatch(addProcessorApp({ processorApp }));\n },\n [dispatch],\n );\n\n const onRemoveProcessorApp = useCallback(\n (processorApp: ProcessorApp) => {\n dispatch(removeProcessorApp({ processorApp }));\n },\n [dispatch],\n );\n\n return (\n <div className=\"bg-background p-6\">\n <DocumentToolbar />\n <ProcessorEditorForm\n onNameChange={onNameChange}\n onTypeChange={onTypeChange}\n onAddDocumentType={onAddDocumentType}\n onRemoveDocumentType={onRemoveDocumentType}\n onAddProcessorApp={onAddProcessorApp}\n onRemoveProcessorApp={onRemoveProcessorApp}\n status={document.state.global.status}\n processorName={document.state.global.name ?? \"\"}\n processorType={document.state.global.type ?? \"\"}\n documentTypes={document.state.global.documentTypes ?? []}\n processorApps={document.state.global.processorApps as ProcessorApps}\n onConfirm={onConfirm}\n />\n </div>\n );\n}\n"],"mappings":"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"}
@@ -31,7 +31,7 @@ const SubgraphEditorForm = ({ subgraphName: initialSubgraphName = "", status = "
31
31
  /* @__PURE__ */ jsxs("div", {
32
32
  className: "flex items-center justify-between",
33
33
  children: [/* @__PURE__ */ jsx("h2", {
34
- className: "text-lg font-medium text-gray-900 dark:text-slate-50",
34
+ className: "text-lg font-medium text-foreground",
35
35
  children: "Subgraph Configuration"
36
36
  }), /* @__PURE__ */ jsx(StatusPill, {
37
37
  status: status === "CONFIRMED" ? "confirmed" : "draft",
@@ -40,7 +40,7 @@ const SubgraphEditorForm = ({ subgraphName: initialSubgraphName = "", status = "
40
40
  }),
41
41
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
42
42
  htmlFor: "subgraph-name",
43
- className: "mb-2 block text-sm font-medium text-gray-700 dark:text-slate-200",
43
+ className: "mb-2 block text-sm font-medium text-foreground",
44
44
  children: "Subgraph Name"
45
45
  }), /* @__PURE__ */ jsx("input", {
46
46
  id: "subgraph-name",
@@ -48,13 +48,13 @@ const SubgraphEditorForm = ({ subgraphName: initialSubgraphName = "", status = "
48
48
  value: subgraphName,
49
49
  onChange: (e) => setSubgraphName(e.target.value),
50
50
  disabled: isReadOnly,
51
- className: twMerge("w-full rounded-md border border-gray-300 px-3 py-2 placeholder:text-gray-700 focus:border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:placeholder:text-slate-200", isReadOnly ? "cursor-not-allowed bg-gray-100 dark:bg-slate-700" : ""),
51
+ className: twMerge("w-full rounded-md border border-border px-3 py-2 text-foreground placeholder:text-muted-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none disabled:disabled-effect", isReadOnly ? "cursor-not-allowed bg-muted" : ""),
52
52
  placeholder: "Enter subgraph name"
53
53
  })] }),
54
54
  !isReadOnly && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("button", {
55
55
  onClick: handleConfirm,
56
56
  disabled: !subgraphName.trim(),
57
- className: "rounded-md bg-blue-600 px-4 py-2 text-white hover:bg-blue-700 focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:bg-gray-300 dark:bg-blue-300 dark:text-slate-900 dark:hover:bg-blue-200 dark:disabled:bg-slate-600 dark:disabled:text-slate-100",
57
+ className: "rounded-md bg-primary px-4 py-2 text-primary-foreground hover:hover-effect focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none disabled:disabled-effect",
58
58
  children: "Confirm"
59
59
  }) })
60
60
  ]
@@ -76,7 +76,7 @@ function Editor() {
76
76
  dispatch(setSubgraphStatus({ status: "CONFIRMED" }));
77
77
  }, [dispatch]);
78
78
  return /* @__PURE__ */ jsxs("div", {
79
- className: "bg-gray-50 p-6 dark:bg-slate-800",
79
+ className: "bg-background p-6",
80
80
  children: [/* @__PURE__ */ jsx(DocumentToolbar, {}), /* @__PURE__ */ jsx(SubgraphEditorForm, {
81
81
  subgraphName: document.state.global.name ?? "",
82
82
  status: document.state.global.status,
@@ -88,4 +88,4 @@ function Editor() {
88
88
  //#endregion
89
89
  export { Editor as default };
90
90
 
91
- //# sourceMappingURL=editor-rYCWiter.js.map
91
+ //# sourceMappingURL=editor-CAVHtR-v.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-CAVHtR-v.js","names":[],"sources":["../editors/subgraph-editor/components/SubgraphEditorForm.tsx","../editors/subgraph-editor/config.ts","../editors/subgraph-editor/editor.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { StatusPill } from \"../../components/index.js\";\nimport { useDebounce } from \"../../hooks/index.js\";\n\nexport interface SubgraphEditorFormProps {\n subgraphName?: string;\n status?: string;\n onNameChange?: (name: string) => void;\n onConfirm?: () => void;\n}\n\nexport const SubgraphEditorForm: React.FC<SubgraphEditorFormProps> = ({\n subgraphName: initialSubgraphName = \"\",\n status = \"DRAFT\",\n onNameChange,\n onConfirm,\n}) => {\n const [subgraphName, setSubgraphName] = useState(initialSubgraphName);\n const [isConfirmed, setIsConfirmed] = useState(false);\n\n // Use the debounce hook for name changes\n useDebounce(subgraphName, onNameChange, 300);\n\n // Update local state when initialSubgraphName changes\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setSubgraphName(initialSubgraphName);\n }, [initialSubgraphName]);\n\n // Reset confirmation state if status changes back to DRAFT\n useEffect(() => {\n if (status === \"DRAFT\") {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setIsConfirmed(false);\n }\n }, [status]);\n\n // Check if form should be read-only\n const isReadOnly = isConfirmed || status === \"CONFIRMED\";\n\n const handleConfirm = () => {\n if (subgraphName.trim()) {\n setIsConfirmed(true); // Immediate UI update\n onConfirm?.();\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-lg font-medium text-foreground\">\n Subgraph Configuration\n </h2>\n <StatusPill\n status={status === \"CONFIRMED\" ? \"confirmed\" : \"draft\"}\n label={status === \"CONFIRMED\" ? \"Confirmed\" : \"Draft\"}\n />\n </div>\n\n {/* Subgraph Name Field */}\n <div>\n <label\n htmlFor=\"subgraph-name\"\n className=\"mb-2 block text-sm font-medium text-foreground\"\n >\n Subgraph Name\n </label>\n <input\n id=\"subgraph-name\"\n type=\"text\"\n value={subgraphName}\n onChange={(e) => setSubgraphName(e.target.value)}\n disabled={isReadOnly}\n className={twMerge(\n \"w-full rounded-md border border-border px-3 py-2 text-foreground placeholder:text-muted-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none disabled:disabled-effect\",\n isReadOnly ? \"cursor-not-allowed bg-muted\" : \"\",\n )}\n placeholder=\"Enter subgraph name\"\n />\n </div>\n\n {/* Confirm Button - only show if not in read-only mode */}\n {!isReadOnly && (\n <div>\n <button\n onClick={handleConfirm}\n disabled={!subgraphName.trim()}\n className=\"rounded-md bg-primary px-4 py-2 text-primary-foreground hover:hover-effect focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none disabled:disabled-effect\"\n >\n Confirm\n </button>\n </div>\n )}\n </div>\n );\n};\n","import type { PHDocumentEditorConfig } from \"@powerhousedao/reactor-browser\";\n\nexport const editorConfig: PHDocumentEditorConfig = {\n isExternalControlsEnabled: false,\n};\n","import { DocumentToolbar } from \"@powerhousedao/design-system/connect\";\nimport { useSetPHDocumentEditorConfig } from \"@powerhousedao/reactor-browser\";\nimport {\n setSubgraphName,\n setSubgraphStatus,\n} from \"@powerhousedao/vetra/document-models/subgraph-module\";\nimport { useCallback } from \"react\";\nimport { useSelectedSubgraphModuleDocument } from \"../hooks/useVetraDocument.js\";\nimport { SubgraphEditorForm } from \"./components/SubgraphEditorForm.js\";\nimport { editorConfig } from \"./config.js\";\n\nexport default function Editor() {\n useSetPHDocumentEditorConfig(editorConfig);\n const [document, dispatch] = useSelectedSubgraphModuleDocument();\n\n const onNameChange = useCallback(\n (name: string) => {\n if (name === document.state.global.name) return;\n dispatch(setSubgraphName({ name }));\n },\n [document.state.global.name, dispatch],\n );\n\n const onConfirm = useCallback(() => {\n dispatch(setSubgraphStatus({ status: \"CONFIRMED\" }));\n }, [dispatch]);\n\n return (\n <div className=\"bg-background p-6\">\n <DocumentToolbar />\n <SubgraphEditorForm\n subgraphName={document.state.global.name ?? \"\"}\n status={document.state.global.status}\n onNameChange={onNameChange}\n onConfirm={onConfirm}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAYA,MAAa,sBAAyD,EACpE,cAAc,sBAAsB,IACpC,SAAS,SACT,cACA,gBACI;CACJ,MAAM,CAAC,cAAc,mBAAmB,SAAS,oBAAoB;CACrE,MAAM,CAAC,aAAa,kBAAkB,SAAS,MAAM;AAGrD,aAAY,cAAc,cAAc,IAAI;AAG5C,iBAAgB;AAEd,kBAAgB,oBAAoB;IACnC,CAAC,oBAAoB,CAAC;AAGzB,iBAAgB;AACd,MAAI,WAAW,QAEb,gBAAe,MAAM;IAEtB,CAAC,OAAO,CAAC;CAGZ,MAAM,aAAa,eAAe,WAAW;CAE7C,MAAM,sBAAsB;AAC1B,MAAI,aAAa,MAAM,EAAE;AACvB,kBAAe,KAAK;AACpB,gBAAa;;;AAIjB,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf;GACE,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,MAAD;KAAI,WAAU;eAAsC;KAE/C,CAAA,EACL,oBAAC,YAAD;KACE,QAAQ,WAAW,cAAc,cAAc;KAC/C,OAAO,WAAW,cAAc,cAAc;KAC9C,CAAA,CACE;;GAGN,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,SAAD;IACE,SAAQ;IACR,WAAU;cACX;IAEO,CAAA,EACR,oBAAC,SAAD;IACE,IAAG;IACH,MAAK;IACL,OAAO;IACP,WAAW,MAAM,gBAAgB,EAAE,OAAO,MAAM;IAChD,UAAU;IACV,WAAW,QACT,wMACA,aAAa,gCAAgC,GAC9C;IACD,aAAY;IACZ,CAAA,CACE,EAAA,CAAA;GAGL,CAAC,cACA,oBAAC,OAAD,EAAA,UACE,oBAAC,UAAD;IACE,SAAS;IACT,UAAU,CAAC,aAAa,MAAM;IAC9B,WAAU;cACX;IAEQ,CAAA,EACL,CAAA;GAEJ;;;;;AC5FV,MAAa,eAAuC,EAClD,2BAA2B,OAC5B;;;ACOD,SAAwB,SAAS;AAC/B,8BAA6B,aAAa;CAC1C,MAAM,CAAC,UAAU,YAAY,mCAAmC;CAEhE,MAAM,eAAe,aAClB,SAAiB;AAChB,MAAI,SAAS,SAAS,MAAM,OAAO,KAAM;AACzC,WAAS,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAErC,CAAC,SAAS,MAAM,OAAO,MAAM,SAAS,CACvC;CAED,MAAM,YAAY,kBAAkB;AAClC,WAAS,kBAAkB,EAAE,QAAQ,aAAa,CAAC,CAAC;IACnD,CAAC,SAAS,CAAC;AAEd,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,oBAAC,iBAAD,EAAmB,CAAA,EACnB,oBAAC,oBAAD;GACE,cAAc,SAAS,MAAM,OAAO,QAAQ;GAC5C,QAAQ,SAAS,MAAM,OAAO;GAChB;GACH;GACX,CAAA,CACE"}
@@ -79,7 +79,7 @@ const AppEditorForm = () => {
79
79
  /* @__PURE__ */ jsxs("div", {
80
80
  className: "flex items-center justify-between",
81
81
  children: [/* @__PURE__ */ jsx("h2", {
82
- className: "text-lg font-medium text-gray-900 dark:text-slate-50",
82
+ className: "text-lg font-medium text-foreground",
83
83
  children: "App Configuration"
84
84
  }), /* @__PURE__ */ jsx(StatusPill, {
85
85
  status: status === "CONFIRMED" ? "confirmed" : "draft",
@@ -88,7 +88,7 @@ const AppEditorForm = () => {
88
88
  }),
89
89
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
90
90
  htmlFor: "app-name",
91
- className: "mb-2 block text-sm font-medium text-gray-700 dark:text-slate-200",
91
+ className: "mb-2 block text-sm font-medium text-foreground",
92
92
  children: "App Name"
93
93
  }), /* @__PURE__ */ jsx("input", {
94
94
  id: "app-name",
@@ -96,18 +96,18 @@ const AppEditorForm = () => {
96
96
  value: appName,
97
97
  onChange: (e) => handleSetAppName(e.target.value),
98
98
  disabled: isReadOnly,
99
- className: twMerge("w-full rounded-md border border-gray-300 px-3 py-2 text-gray-50 placeholder:text-gray-400 focus:border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:placeholder:text-slate-400", isReadOnly ? "cursor-not-allowed bg-gray-100 dark:bg-slate-700" : ""),
99
+ className: twMerge("w-full rounded-md border border-border px-3 py-2 text-foreground placeholder:text-muted-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none disabled:disabled-effect", isReadOnly ? "cursor-not-allowed bg-muted" : ""),
100
100
  placeholder: "Enter app name"
101
101
  })] }),
102
102
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
103
103
  htmlFor: "document-types",
104
- className: "mb-2 block text-sm font-medium text-gray-700 dark:text-slate-200",
104
+ className: "mb-2 block text-sm font-medium text-foreground",
105
105
  children: "Document Types"
106
106
  }), /* @__PURE__ */ jsxs("div", {
107
107
  className: "space-y-2",
108
108
  children: [!isReadOnly && /* @__PURE__ */ jsxs("select", {
109
109
  onChange: (e) => handleDocumentTypeSelection(e.target.value),
110
- className: "w-full rounded-md border border-gray-300 px-3 py-2 text-gray-900 focus:border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
110
+ className: "w-full rounded-md border border-border px-3 py-2 text-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none",
111
111
  children: [
112
112
  /* @__PURE__ */ jsx("option", { children: "Select a document type to add" }),
113
113
  /* @__PURE__ */ jsx("option", { children: "--- Vetra drive document types ---" }),
@@ -139,21 +139,21 @@ const AppEditorForm = () => {
139
139
  children: selectedDocumentTypes.length > 0 ? selectedDocumentTypes.map((type) => /* @__PURE__ */ jsxs("div", {
140
140
  className: "flex items-center py-1",
141
141
  children: [/* @__PURE__ */ jsx("span", {
142
- className: "text-sm text-gray-700 dark:text-slate-200",
142
+ className: "text-sm text-foreground",
143
143
  children: type
144
144
  }), !isReadOnly && /* @__PURE__ */ jsx("button", {
145
145
  onClick: () => handleRemoveDocumentType(type),
146
- className: "ml-2 text-gray-400 hover:text-gray-600 focus:outline-none dark:text-slate-500 dark:hover:text-slate-300",
146
+ className: "ml-2 text-muted-foreground hover:hover-effect focus:outline-none",
147
147
  children: "×"
148
148
  })]
149
149
  }, type)) : /* @__PURE__ */ jsx("span", {
150
- className: "text-sm text-gray-700 dark:text-slate-200",
150
+ className: "text-sm text-foreground",
151
151
  children: "All documents (*)"
152
152
  })
153
153
  })]
154
154
  })] }),
155
155
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("h3", {
156
- className: "mb-4 text-base font-medium text-gray-900 dark:text-slate-50",
156
+ className: "mb-4 text-base font-medium text-foreground",
157
157
  children: "Drag and Drop Settings"
158
158
  }), /* @__PURE__ */ jsx("div", {
159
159
  className: "mb-4",
@@ -166,9 +166,9 @@ const AppEditorForm = () => {
166
166
  checked: isDragAndDropEnabled,
167
167
  onChange: (e) => onDragAndDropToggle(e.target.checked),
168
168
  disabled: isReadOnly,
169
- className: twMerge("mr-2 size-4 rounded-sm border-gray-300 text-blue-600 focus:ring-blue-500 dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100", isReadOnly ? "cursor-not-allowed" : "")
169
+ className: twMerge("mr-2 size-4 rounded-sm border-border text-info focus:ring-ring", isReadOnly ? "cursor-not-allowed" : "")
170
170
  }), /* @__PURE__ */ jsx("span", {
171
- className: "text-sm font-medium text-gray-700 dark:text-slate-200",
171
+ className: "text-sm font-medium text-foreground",
172
172
  children: "Enable drag and drop"
173
173
  })]
174
174
  })
@@ -176,7 +176,7 @@ const AppEditorForm = () => {
176
176
  !isReadOnly && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("button", {
177
177
  onClick: handleConfirm,
178
178
  disabled: !appName.trim(),
179
- className: "rounded-md bg-blue-600 px-4 py-2 text-white hover:bg-blue-700 focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:bg-gray-300 dark:bg-blue-300 dark:text-slate-900 dark:hover:bg-blue-200 dark:disabled:bg-slate-600 dark:disabled:text-slate-100",
179
+ className: "rounded-md bg-primary px-4 py-2 text-primary-foreground hover:hover-effect focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none disabled:disabled-effect",
180
180
  children: "Confirm"
181
181
  }) })
182
182
  ]
@@ -190,11 +190,11 @@ const editorConfig = { isExternalControlsEnabled: false };
190
190
  function Editor() {
191
191
  useSetPHDocumentEditorConfig(editorConfig);
192
192
  return /* @__PURE__ */ jsxs("div", {
193
- className: "bg-gray-50 p-6 dark:bg-slate-800",
193
+ className: "bg-background p-6",
194
194
  children: [/* @__PURE__ */ jsx(DocumentToolbar, {}), /* @__PURE__ */ jsx(AppEditorForm, {})]
195
195
  });
196
196
  }
197
197
  //#endregion
198
198
  export { Editor as default };
199
199
 
200
- //# sourceMappingURL=editor-D-QqGEkw.js.map
200
+ //# sourceMappingURL=editor-CVCLxUhe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-CVCLxUhe.js","names":[],"sources":["../editors/app-editor/components/AppEditorForm.tsx","../editors/app-editor/config.ts","../editors/app-editor/editor.tsx"],"sourcesContent":["import {\n useDocumentTypesInSelectedDrive,\n useSupportedDocumentTypesInReactor,\n} from \"@powerhousedao/reactor-browser\";\nimport {\n addDocumentType,\n removeDocumentType,\n setAppName,\n setAppStatus,\n setDocumentTypes,\n setDragAndDropEnabled,\n} from \"@powerhousedao/vetra/document-models/app-module\";\nimport { useCallback, useEffect, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useSelectedAppModuleDocument } from \"../../../document-models/app-module/index.js\";\nimport { StatusPill } from \"../../components/index.js\";\nimport { useDebounce } from \"../../hooks/index.js\";\n\nconst ALL_IN_DRIVE = \"all-in-drive\";\nconst ALL_IN_REACTOR = \"all-in-reactor\";\nconst ALLOW_ANY = \"allow-any\";\n\nexport const AppEditorForm = () => {\n const [document, dispatch] = useSelectedAppModuleDocument();\n const documentName = document.state.global.name;\n const status = document.state.global.status;\n const isDragAndDropEnabled = document.state.global.isDragAndDropEnabled;\n const allowedDocumentTypes = document.state.global.allowedDocumentTypes;\n const [appName, handleSetAppName] = useState(documentName);\n const [isConfirmed, setIsConfirmed] = useState(status === \"CONFIRMED\");\n const documentTypesInSelectedDrive = useDocumentTypesInSelectedDrive();\n const supportedDocumentTypesInReactor = useSupportedDocumentTypesInReactor();\n const [selectedDocumentTypes, setSelectedDocumentTypes] = useState(\n allowedDocumentTypes ?? [],\n );\n\n // Use the debounce hook for name changes\n\n const onNameChange = useCallback(\n (name: string) => {\n if (name === documentName) return;\n console.log(\"onNameChange\", name);\n dispatch(setAppName({ name }));\n },\n [documentName, dispatch],\n );\n\n useDebounce(appName, onNameChange, 300);\n\n const onConfirm = () => {\n dispatch(setAppStatus({ status: \"CONFIRMED\" }));\n };\n\n const onDragAndDropToggle = (enabled: boolean) => {\n if (enabled === isDragAndDropEnabled) return;\n dispatch(setDragAndDropEnabled({ enabled }));\n };\n\n // Reset confirmation state if status changes back to DRAFT\n useEffect(() => {\n if (status === \"DRAFT\") {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setIsConfirmed(false);\n }\n }, [status]);\n\n // Check if form should be read-only\n const isReadOnly = isConfirmed || status === \"CONFIRMED\";\n\n const handleConfirm = () => {\n if (appName.trim()) {\n setIsConfirmed(true); // Immediate UI update\n onConfirm();\n }\n };\n\n const handleAddDocumentType = (documentType: string) => {\n if (!documentType || selectedDocumentTypes.includes(documentType)) return;\n setSelectedDocumentTypes([...selectedDocumentTypes, documentType]);\n dispatch(addDocumentType({ documentType }));\n };\n\n const handleRemoveDocumentType = (documentType: string) => {\n setSelectedDocumentTypes(\n selectedDocumentTypes.filter((dt) => dt !== documentType),\n );\n dispatch(removeDocumentType({ documentType }));\n };\n\n const handleAddAllDocumentTypesInDrive = () => {\n const newDocumentTypes = [\n ...new Set([\n ...selectedDocumentTypes,\n ...(documentTypesInSelectedDrive ?? []),\n ]),\n ];\n setSelectedDocumentTypes(newDocumentTypes);\n dispatch(setDocumentTypes({ documentTypes: newDocumentTypes }));\n };\n\n const handleAddAllDocumentTypesInReactor = () => {\n const newDocumentTypes = [\n ...new Set([\n ...selectedDocumentTypes,\n ...(supportedDocumentTypesInReactor ?? []),\n ]),\n ];\n setSelectedDocumentTypes(newDocumentTypes);\n dispatch(setDocumentTypes({ documentTypes: newDocumentTypes }));\n };\n\n const handleAllowAnyDocumentType = () => {\n setSelectedDocumentTypes([]);\n dispatch(setDocumentTypes({ documentTypes: [] }));\n };\n\n const handleDocumentTypeSelection = (selectedValue: string) => {\n if (selectedValue === ALL_IN_DRIVE) {\n handleAddAllDocumentTypesInDrive();\n } else if (selectedValue === ALL_IN_REACTOR) {\n handleAddAllDocumentTypesInReactor();\n } else if (selectedValue === ALLOW_ANY) {\n handleAllowAnyDocumentType();\n } else {\n handleAddDocumentType(selectedValue);\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-lg font-medium text-foreground\">\n App Configuration\n </h2>\n <StatusPill\n status={status === \"CONFIRMED\" ? \"confirmed\" : \"draft\"}\n label={status === \"CONFIRMED\" ? \"Confirmed\" : \"Draft\"}\n />\n </div>\n\n {/* App Name Field */}\n <div>\n <label\n htmlFor=\"app-name\"\n className=\"mb-2 block text-sm font-medium text-foreground\"\n >\n App Name\n </label>\n <input\n id=\"app-name\"\n type=\"text\"\n value={appName}\n onChange={(e) => handleSetAppName(e.target.value)}\n disabled={isReadOnly}\n className={twMerge(\n \"w-full rounded-md border border-border px-3 py-2 text-foreground placeholder:text-muted-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none disabled:disabled-effect\",\n isReadOnly ? \"cursor-not-allowed bg-muted\" : \"\",\n )}\n placeholder=\"Enter app name\"\n />\n </div>\n\n {/* Document Types Field */}\n <div>\n <label\n htmlFor=\"document-types\"\n className=\"mb-2 block text-sm font-medium text-foreground\"\n >\n Document Types\n </label>\n <div className=\"space-y-2\">\n {!isReadOnly && (\n <select\n onChange={(e) => handleDocumentTypeSelection(e.target.value)}\n className=\"w-full rounded-md border border-border px-3 py-2 text-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none\"\n >\n <option>Select a document type to add</option>\n <option>--- Vetra drive document types ---</option>\n <option value={ALL_IN_DRIVE}>\n Add all document types in Vetra drive\n </option>\n {documentTypesInSelectedDrive\n ?.filter((dt) => !selectedDocumentTypes.includes(dt))\n .map((docType) => (\n <option key={docType} value={docType}>\n {docType}\n </option>\n ))}\n <option>--- Reactor document types ---</option>\n <option value={ALL_IN_REACTOR}>\n Add all document types in Reactor\n </option>\n {supportedDocumentTypesInReactor\n ?.filter((dt) => !selectedDocumentTypes.includes(dt))\n .map((docType) => (\n <option key={docType} value={docType}>\n {docType}\n </option>\n ))}\n <option>--- Allow any document type ---</option>\n <option value={ALLOW_ANY}>Allow any document type</option>\n </select>\n )}\n <div className=\"space-y-1\">\n {selectedDocumentTypes.length > 0 ? (\n selectedDocumentTypes.map((type) => (\n <div key={type} className=\"flex items-center py-1\">\n <span className=\"text-sm text-foreground\">{type}</span>\n {!isReadOnly && (\n <button\n onClick={() => handleRemoveDocumentType(type)}\n className=\"ml-2 text-muted-foreground hover:hover-effect focus:outline-none\"\n >\n ×\n </button>\n )}\n </div>\n ))\n ) : (\n <span className=\"text-sm text-foreground\">All documents (*)</span>\n )}\n </div>\n </div>\n </div>\n\n {/* Drag and Drop Settings */}\n <div>\n <h3 className=\"mb-4 text-base font-medium text-foreground\">\n Drag and Drop Settings\n </h3>\n\n {/* Enable/Disable Switch */}\n <div className=\"mb-4\">\n <label htmlFor=\"drag-and-drop-enabled\" className=\"flex items-center\">\n <input\n id=\"drag-and-drop-enabled\"\n type=\"checkbox\"\n checked={isDragAndDropEnabled}\n onChange={(e) => onDragAndDropToggle(e.target.checked)}\n disabled={isReadOnly}\n className={twMerge(\n \"mr-2 size-4 rounded-sm border-border text-info focus:ring-ring\",\n isReadOnly ? \"cursor-not-allowed\" : \"\",\n )}\n />\n <span className=\"text-sm font-medium text-foreground\">\n Enable drag and drop\n </span>\n </label>\n </div>\n </div>\n\n {/* Confirm Button - only show if not in read-only mode */}\n {!isReadOnly && (\n <div>\n <button\n onClick={handleConfirm}\n disabled={!appName.trim()}\n className=\"rounded-md bg-primary px-4 py-2 text-primary-foreground hover:hover-effect focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none disabled:disabled-effect\"\n >\n Confirm\n </button>\n </div>\n )}\n </div>\n );\n};\n","import type { PHDocumentEditorConfig } from \"@powerhousedao/reactor-browser\";\n\nexport const editorConfig: PHDocumentEditorConfig = {\n isExternalControlsEnabled: false,\n};\n","import { DocumentToolbar } from \"@powerhousedao/design-system/connect\";\nimport { useSetPHDocumentEditorConfig } from \"@powerhousedao/reactor-browser\";\nimport { AppEditorForm } from \"./components/AppEditorForm.js\";\nimport { editorConfig } from \"./config.js\";\n\nexport default function Editor() {\n useSetPHDocumentEditorConfig(editorConfig);\n\n return (\n <div className=\"bg-background p-6\">\n <DocumentToolbar />\n <AppEditorForm />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;AAkBA,MAAM,eAAe;AACrB,MAAM,iBAAiB;AACvB,MAAM,YAAY;AAElB,MAAa,sBAAsB;CACjC,MAAM,CAAC,UAAU,YAAY,8BAA8B;CAC3D,MAAM,eAAe,SAAS,MAAM,OAAO;CAC3C,MAAM,SAAS,SAAS,MAAM,OAAO;CACrC,MAAM,uBAAuB,SAAS,MAAM,OAAO;CACnD,MAAM,uBAAuB,SAAS,MAAM,OAAO;CACnD,MAAM,CAAC,SAAS,oBAAoB,SAAS,aAAa;CAC1D,MAAM,CAAC,aAAa,kBAAkB,SAAS,WAAW,YAAY;CACtE,MAAM,+BAA+B,iCAAiC;CACtE,MAAM,kCAAkC,oCAAoC;CAC5E,MAAM,CAAC,uBAAuB,4BAA4B,SACxD,wBAAwB,EAAE,CAC3B;AAaD,aAAY,SATS,aAClB,SAAiB;AAChB,MAAI,SAAS,aAAc;AAC3B,UAAQ,IAAI,gBAAgB,KAAK;AACjC,WAAS,WAAW,EAAE,MAAM,CAAC,CAAC;IAEhC,CAAC,cAAc,SAAS,CACzB,EAEkC,IAAI;CAEvC,MAAM,kBAAkB;AACtB,WAAS,aAAa,EAAE,QAAQ,aAAa,CAAC,CAAC;;CAGjD,MAAM,uBAAuB,YAAqB;AAChD,MAAI,YAAY,qBAAsB;AACtC,WAAS,sBAAsB,EAAE,SAAS,CAAC,CAAC;;AAI9C,iBAAgB;AACd,MAAI,WAAW,QAEb,gBAAe,MAAM;IAEtB,CAAC,OAAO,CAAC;CAGZ,MAAM,aAAa,eAAe,WAAW;CAE7C,MAAM,sBAAsB;AAC1B,MAAI,QAAQ,MAAM,EAAE;AAClB,kBAAe,KAAK;AACpB,cAAW;;;CAIf,MAAM,yBAAyB,iBAAyB;AACtD,MAAI,CAAC,gBAAgB,sBAAsB,SAAS,aAAa,CAAE;AACnE,2BAAyB,CAAC,GAAG,uBAAuB,aAAa,CAAC;AAClE,WAAS,gBAAgB,EAAE,cAAc,CAAC,CAAC;;CAG7C,MAAM,4BAA4B,iBAAyB;AACzD,2BACE,sBAAsB,QAAQ,OAAO,OAAO,aAAa,CAC1D;AACD,WAAS,mBAAmB,EAAE,cAAc,CAAC,CAAC;;CAGhD,MAAM,yCAAyC;EAC7C,MAAM,mBAAmB,CACvB,GAAG,IAAI,IAAI,CACT,GAAG,uBACH,GAAI,gCAAgC,EAAE,CACvC,CAAC,CACH;AACD,2BAAyB,iBAAiB;AAC1C,WAAS,iBAAiB,EAAE,eAAe,kBAAkB,CAAC,CAAC;;CAGjE,MAAM,2CAA2C;EAC/C,MAAM,mBAAmB,CACvB,GAAG,IAAI,IAAI,CACT,GAAG,uBACH,GAAI,mCAAmC,EAAE,CAC1C,CAAC,CACH;AACD,2BAAyB,iBAAiB;AAC1C,WAAS,iBAAiB,EAAE,eAAe,kBAAkB,CAAC,CAAC;;CAGjE,MAAM,mCAAmC;AACvC,2BAAyB,EAAE,CAAC;AAC5B,WAAS,iBAAiB,EAAE,eAAe,EAAE,EAAE,CAAC,CAAC;;CAGnD,MAAM,+BAA+B,kBAA0B;AAC7D,MAAI,kBAAkB,aACpB,mCAAkC;WACzB,kBAAkB,eAC3B,qCAAoC;WAC3B,kBAAkB,UAC3B,6BAA4B;MAE5B,uBAAsB,cAAc;;AAIxC,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf;GACE,qBAAC,OAAD;IAAK,WAAU;cAAf,CACE,oBAAC,MAAD;KAAI,WAAU;eAAsC;KAE/C,CAAA,EACL,oBAAC,YAAD;KACE,QAAQ,WAAW,cAAc,cAAc;KAC/C,OAAO,WAAW,cAAc,cAAc;KAC9C,CAAA,CACE;;GAGN,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,SAAD;IACE,SAAQ;IACR,WAAU;cACX;IAEO,CAAA,EACR,oBAAC,SAAD;IACE,IAAG;IACH,MAAK;IACL,OAAO;IACP,WAAW,MAAM,iBAAiB,EAAE,OAAO,MAAM;IACjD,UAAU;IACV,WAAW,QACT,wMACA,aAAa,gCAAgC,GAC9C;IACD,aAAY;IACZ,CAAA,CACE,EAAA,CAAA;GAGN,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,SAAD;IACE,SAAQ;IACR,WAAU;cACX;IAEO,CAAA,EACR,qBAAC,OAAD;IAAK,WAAU;cAAf,CACG,CAAC,cACA,qBAAC,UAAD;KACE,WAAW,MAAM,4BAA4B,EAAE,OAAO,MAAM;KAC5D,WAAU;eAFZ;MAIE,oBAAC,UAAD,EAAA,UAAQ,iCAAsC,CAAA;MAC9C,oBAAC,UAAD,EAAA,UAAQ,sCAA2C,CAAA;MACnD,oBAAC,UAAD;OAAQ,OAAO;iBAAc;OAEpB,CAAA;MACR,8BACG,QAAQ,OAAO,CAAC,sBAAsB,SAAS,GAAG,CAAC,CACpD,KAAK,YACJ,oBAAC,UAAD;OAAsB,OAAO;iBAC1B;OACM,EAFI,QAEJ,CACT;MACJ,oBAAC,UAAD,EAAA,UAAQ,kCAAuC,CAAA;MAC/C,oBAAC,UAAD;OAAQ,OAAO;iBAAgB;OAEtB,CAAA;MACR,iCACG,QAAQ,OAAO,CAAC,sBAAsB,SAAS,GAAG,CAAC,CACpD,KAAK,YACJ,oBAAC,UAAD;OAAsB,OAAO;iBAC1B;OACM,EAFI,QAEJ,CACT;MACJ,oBAAC,UAAD,EAAA,UAAQ,mCAAwC,CAAA;MAChD,oBAAC,UAAD;OAAQ,OAAO;iBAAW;OAAgC,CAAA;MACnD;QAEX,oBAAC,OAAD;KAAK,WAAU;eACZ,sBAAsB,SAAS,IAC9B,sBAAsB,KAAK,SACzB,qBAAC,OAAD;MAAgB,WAAU;gBAA1B,CACE,oBAAC,QAAD;OAAM,WAAU;iBAA2B;OAAY,CAAA,EACtD,CAAC,cACA,oBAAC,UAAD;OACE,eAAe,yBAAyB,KAAK;OAC7C,WAAU;iBACX;OAEQ,CAAA,CAEP;QAVI,KAUJ,CACN,GAEF,oBAAC,QAAD;MAAM,WAAU;gBAA0B;MAAwB,CAAA;KAEhE,CAAA,CACF;MACF,EAAA,CAAA;GAGN,qBAAC,OAAD,EAAA,UAAA,CACE,oBAAC,MAAD;IAAI,WAAU;cAA6C;IAEtD,CAAA,EAGL,oBAAC,OAAD;IAAK,WAAU;cACb,qBAAC,SAAD;KAAO,SAAQ;KAAwB,WAAU;eAAjD,CACE,oBAAC,SAAD;MACE,IAAG;MACH,MAAK;MACL,SAAS;MACT,WAAW,MAAM,oBAAoB,EAAE,OAAO,QAAQ;MACtD,UAAU;MACV,WAAW,QACT,kEACA,aAAa,uBAAuB,GACrC;MACD,CAAA,EACF,oBAAC,QAAD;MAAM,WAAU;gBAAsC;MAE/C,CAAA,CACD;;IACJ,CAAA,CACF,EAAA,CAAA;GAGL,CAAC,cACA,oBAAC,OAAD,EAAA,UACE,oBAAC,UAAD;IACE,SAAS;IACT,UAAU,CAAC,QAAQ,MAAM;IACzB,WAAU;cACX;IAEQ,CAAA,EACL,CAAA;GAEJ;;;;;ACtQV,MAAa,eAAuC,EAClD,2BAA2B,OAC5B;;;ACCD,SAAwB,SAAS;AAC/B,8BAA6B,aAAa;AAE1C,QACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,oBAAC,iBAAD,EAAmB,CAAA,EACnB,oBAAC,eAAD,EAAiB,CAAA,CACb"}
@@ -11,7 +11,7 @@ import { DocumentToolbar } from "@powerhousedao/design-system/connect";
11
11
  function DocumentTypeSelectUI(props) {
12
12
  return /* @__PURE__ */ jsxs("select", {
13
13
  id: "supported-document-types",
14
- className: "w-full rounded-md border border-gray-300 px-3 py-2 text-gray-900 focus:border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100",
14
+ className: "w-full rounded-md border border-border px-3 py-2 text-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none",
15
15
  ...props,
16
16
  children: [/* @__PURE__ */ jsx("option", {
17
17
  value: "",
@@ -74,7 +74,7 @@ const DocumentEditorForm = ({ editorName: initialEditorName = "", documentTypes:
74
74
  /* @__PURE__ */ jsxs("div", {
75
75
  className: "flex items-center justify-between",
76
76
  children: [/* @__PURE__ */ jsx("h2", {
77
- className: "text-lg font-medium text-gray-900 dark:text-slate-50",
77
+ className: "text-lg font-medium text-foreground",
78
78
  children: "Editor Configuration"
79
79
  }), /* @__PURE__ */ jsx(StatusPill, {
80
80
  status: status === "CONFIRMED" ? "confirmed" : "draft",
@@ -83,7 +83,7 @@ const DocumentEditorForm = ({ editorName: initialEditorName = "", documentTypes:
83
83
  }),
84
84
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
85
85
  htmlFor: "editor-name",
86
- className: "mb-2 block text-sm font-medium text-gray-700 dark:text-slate-200",
86
+ className: "mb-2 block text-sm font-medium text-foreground",
87
87
  children: "Editor Name"
88
88
  }), /* @__PURE__ */ jsx("input", {
89
89
  id: "editor-name",
@@ -91,11 +91,11 @@ const DocumentEditorForm = ({ editorName: initialEditorName = "", documentTypes:
91
91
  value: editorName,
92
92
  onChange: (e) => setEditorName(e.target.value),
93
93
  disabled: isReadOnly,
94
- className: twMerge("w-full rounded-md border border-gray-300 px-3 py-2 placeholder:text-gray-700 focus:border-transparent focus:ring-2 focus:ring-blue-500 focus:outline-none dark:border-slate-500 dark:bg-slate-600 dark:text-slate-100 dark:placeholder:text-slate-200", isReadOnly ? "cursor-not-allowed bg-gray-100 dark:bg-slate-700" : "")
94
+ className: twMerge("w-full rounded-md border border-border px-3 py-2 text-foreground placeholder:text-muted-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none disabled:disabled-effect", isReadOnly ? "cursor-not-allowed bg-muted" : "")
95
95
  })] }),
96
96
  /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("label", {
97
97
  htmlFor: "supported-document-types",
98
- className: "mb-2 block text-sm font-medium text-gray-700 dark:text-slate-200",
98
+ className: "mb-2 block text-sm font-medium text-foreground",
99
99
  children: "Supported Document Types"
100
100
  }), /* @__PURE__ */ jsxs("div", {
101
101
  className: "space-y-2",
@@ -112,14 +112,14 @@ const DocumentEditorForm = ({ editorName: initialEditorName = "", documentTypes:
112
112
  children: documentTypes.map((type) => /* @__PURE__ */ jsxs("div", {
113
113
  className: "flex items-center py-1",
114
114
  children: [/* @__PURE__ */ jsx("span", {
115
- className: "text-sm text-gray-700 dark:text-slate-200",
115
+ className: "text-sm text-foreground",
116
116
  children: type.documentType
117
117
  }), !isReadOnly && /* @__PURE__ */ jsx("button", {
118
118
  onClick: () => {
119
119
  setDocumentTypes([]);
120
120
  onRemoveDocumentType?.({ id: type.id });
121
121
  },
122
- className: "ml-2 text-gray-400 hover:text-gray-600 focus:outline-none dark:text-slate-500 dark:hover:text-slate-300",
122
+ className: "ml-2 text-muted-foreground hover:hover-effect focus:outline-none",
123
123
  children: "×"
124
124
  })]
125
125
  }, type.id))
@@ -128,7 +128,7 @@ const DocumentEditorForm = ({ editorName: initialEditorName = "", documentTypes:
128
128
  !isReadOnly && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx("button", {
129
129
  onClick: handleConfirm,
130
130
  disabled: !editorName.trim() || documentTypes.length === 0,
131
- className: "rounded-md bg-blue-600 px-4 py-2 text-white hover:bg-blue-700 focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:bg-gray-300 dark:bg-blue-300 dark:text-slate-900 dark:hover:bg-blue-200 dark:disabled:bg-slate-600 dark:disabled:text-slate-100",
131
+ className: "rounded-md bg-primary px-4 py-2 text-primary-foreground hover:hover-effect focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none disabled:disabled-effect",
132
132
  children: "Confirm"
133
133
  }) })
134
134
  ]
@@ -157,7 +157,7 @@ function Editor() {
157
157
  dispatch(setEditorStatus({ status: "CONFIRMED" }));
158
158
  }, [dispatch]);
159
159
  return /* @__PURE__ */ jsxs("div", {
160
- className: "bg-gray-50 p-6 dark:bg-slate-800",
160
+ className: "bg-background p-6",
161
161
  children: [/* @__PURE__ */ jsx(DocumentToolbar, {}), /* @__PURE__ */ jsx(DocumentEditorForm, {
162
162
  status: document.state.global.status,
163
163
  editorName: document.state.global.name ?? "",
@@ -172,4 +172,4 @@ function Editor() {
172
172
  //#endregion
173
173
  export { Editor as default };
174
174
 
175
- //# sourceMappingURL=editor-BamOOi9L.js.map
175
+ //# sourceMappingURL=editor-DnG2Zzet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-DnG2Zzet.js","names":[],"sources":["../editors/document-editor/components/DocumentEditorForm.tsx","../editors/document-editor/config.ts","../editors/document-editor/editor.tsx"],"sourcesContent":["import { Suspense, useEffect, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport type {\n AddDocumentTypeInput,\n DocumentTypeItem,\n RemoveDocumentTypeInput,\n} from \"../../../document-models/document-editor/index.js\";\nimport { StatusPill } from \"../../components/index.js\";\nimport { useAvailableDocumentTypes, useDebounce } from \"../../hooks/index.js\";\n\nexport interface DocumentEditorFormProps {\n editorName?: string;\n documentTypes?: DocumentTypeItem[];\n status?: string;\n onEditorNameChange?: (name: string) => void;\n onAddDocumentType?: (input: AddDocumentTypeInput) => void;\n onRemoveDocumentType?: (input: RemoveDocumentTypeInput) => void;\n onConfirm?: () => void;\n}\n\nfunction DocumentTypeSelectUI(\n props: React.SelectHTMLAttributes<HTMLSelectElement>,\n) {\n return (\n <select\n id=\"supported-document-types\"\n className=\"w-full rounded-md border border-border px-3 py-2 text-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none\"\n {...props}\n >\n <option value=\"\">Select a document type</option>\n {props.children}\n </select>\n );\n}\n\nfunction DocumentTypeSelect({\n documentTypes,\n setDocumentTypes,\n onAddDocumentType,\n onRemoveDocumentType,\n}: {\n setDocumentTypes: (documentTypes: DocumentTypeItem[]) => void;\n} & Pick<\n DocumentEditorFormProps,\n \"documentTypes\" | \"onAddDocumentType\" | \"onRemoveDocumentType\"\n>) {\n // Get available document types from the hook (vetra drive only for document editor)\n const availableDocumentTypes = useAvailableDocumentTypes(true);\n const [selectedDocumentType, setSelectedDocumentType] = useState(\"\");\n\n return (\n <DocumentTypeSelectUI\n value={selectedDocumentType}\n onChange={(e) => {\n const selectedValue = e.target.value;\n if (selectedValue) {\n // Remove existing document type if any\n\n const existingType = documentTypes?.at(0);\n if (existingType) {\n onRemoveDocumentType?.({ id: existingType.id });\n }\n\n // Add the new document type\n const newTypeInput: AddDocumentTypeInput = {\n id: Date.now().toString(), // Generate a unique ID\n documentType: selectedValue,\n };\n const newType: DocumentTypeItem = {\n id: newTypeInput.id,\n documentType: newTypeInput.documentType,\n };\n setDocumentTypes([newType]); // Replace with single item array\n onAddDocumentType?.(newTypeInput);\n }\n setSelectedDocumentType(\"\");\n }}\n >\n {availableDocumentTypes.map((docType) => (\n <option key={docType} value={docType}>\n {docType}\n </option>\n ))}\n </DocumentTypeSelectUI>\n );\n}\n\nexport const DocumentEditorForm: React.FC<DocumentEditorFormProps> = ({\n editorName: initialEditorName = \"\",\n documentTypes: initialDocumentTypes = [],\n status = \"DRAFT\",\n onEditorNameChange,\n onAddDocumentType,\n onRemoveDocumentType,\n onConfirm,\n}) => {\n const [editorName, setEditorName] = useState(initialEditorName);\n const [documentTypes, setDocumentTypes] =\n useState<DocumentTypeItem[]>(initialDocumentTypes);\n const [isConfirmed, setIsConfirmed] = useState(false);\n\n // Use the debounce hook for name changes\n useDebounce(editorName, onEditorNameChange, 300);\n\n // Update local state when initial values change\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setEditorName(initialEditorName);\n }, [initialEditorName]);\n\n useEffect(() => {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setDocumentTypes(initialDocumentTypes);\n }, [initialDocumentTypes]);\n\n // Reset confirmation state if status changes back to DRAFT\n useEffect(() => {\n if (status === \"DRAFT\") {\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setIsConfirmed(false);\n }\n }, [status]);\n\n // Check if form should be read-only\n const isReadOnly = isConfirmed || status === \"CONFIRMED\";\n\n const handleConfirm = () => {\n if (editorName.trim() && documentTypes.length > 0) {\n setIsConfirmed(true); // Immediate UI update\n onConfirm?.();\n }\n };\n\n return (\n <div className=\"space-y-6 p-6\">\n <div className=\"flex items-center justify-between\">\n <h2 className=\"text-lg font-medium text-foreground\">\n Editor Configuration\n </h2>\n <StatusPill\n status={status === \"CONFIRMED\" ? \"confirmed\" : \"draft\"}\n label={status === \"CONFIRMED\" ? \"Confirmed\" : \"Draft\"}\n />\n </div>\n\n {/* Editor Name Field */}\n <div>\n <label\n htmlFor=\"editor-name\"\n className=\"mb-2 block text-sm font-medium text-foreground\"\n >\n Editor Name\n </label>\n <input\n id=\"editor-name\"\n type=\"text\"\n value={editorName}\n onChange={(e) => setEditorName(e.target.value)}\n disabled={isReadOnly}\n className={twMerge(\n \"w-full rounded-md border border-border px-3 py-2 text-foreground placeholder:text-muted-foreground focus:border-transparent focus:ring-2 focus:ring-ring focus:outline-none disabled:disabled-effect\",\n isReadOnly ? \"cursor-not-allowed bg-muted\" : \"\",\n )}\n />\n </div>\n\n {/* Supported Document Types Field */}\n <div>\n <label\n htmlFor=\"supported-document-types\"\n className=\"mb-2 block text-sm font-medium text-foreground\"\n >\n Supported Document Types\n </label>\n <div className=\"space-y-2\">\n {!isReadOnly && (\n <Suspense fallback={<DocumentTypeSelectUI />}>\n <DocumentTypeSelect\n documentTypes={documentTypes}\n setDocumentTypes={setDocumentTypes}\n onAddDocumentType={onAddDocumentType}\n onRemoveDocumentType={onRemoveDocumentType}\n />\n </Suspense>\n )}\n <div className=\"space-y-1\">\n {documentTypes.map((type) => (\n <div key={type.id} className=\"flex items-center py-1\">\n <span className=\"text-sm text-foreground\">\n {type.documentType}\n </span>\n {!isReadOnly && (\n <button\n onClick={() => {\n setDocumentTypes([]);\n onRemoveDocumentType?.({ id: type.id });\n }}\n className=\"ml-2 text-muted-foreground hover:hover-effect focus:outline-none\"\n >\n ×\n </button>\n )}\n </div>\n ))}\n </div>\n </div>\n </div>\n\n {/* Confirm Button - only show if not in read-only mode */}\n {!isReadOnly && (\n <div>\n <button\n onClick={handleConfirm}\n disabled={!editorName.trim() || documentTypes.length === 0}\n className=\"rounded-md bg-primary px-4 py-2 text-primary-foreground hover:hover-effect focus:ring-2 focus:ring-ring focus:ring-offset-2 focus:outline-none disabled:disabled-effect\"\n >\n Confirm\n </button>\n </div>\n )}\n </div>\n );\n};\n","import type { PHDocumentEditorConfig } from \"@powerhousedao/reactor-browser\";\n\nexport const editorConfig: PHDocumentEditorConfig = {\n isExternalControlsEnabled: false,\n};\n","import { DocumentToolbar } from \"@powerhousedao/design-system/connect\";\nimport { useSetPHDocumentEditorConfig } from \"@powerhousedao/reactor-browser\";\nimport { useCallback } from \"react\";\nimport { useSelectedDocumentEditorDocument } from \"../../document-models/document-editor/index.js\";\nimport {\n addDocumentType,\n removeDocumentType,\n setEditorName,\n setEditorStatus,\n type AddDocumentTypeInput,\n type RemoveDocumentTypeInput,\n} from \"../../document-models/document-editor/index.js\";\nimport { DocumentEditorForm } from \"./components/DocumentEditorForm.js\";\nimport { editorConfig } from \"./config.js\";\n\nexport default function Editor() {\n useSetPHDocumentEditorConfig(editorConfig);\n const [document, dispatch] = useSelectedDocumentEditorDocument();\n\n const onEditorNameChange = useCallback(\n (name: string) => {\n if (!document.state.global.name && !name) return;\n if (name === document.state.global.name) return;\n\n dispatch(setEditorName({ name }));\n },\n [document.state.global.name, dispatch],\n );\n\n const onAddDocumentType = useCallback(\n (input: AddDocumentTypeInput) => {\n dispatch(addDocumentType(input));\n },\n [dispatch],\n );\n\n const onRemoveDocumentType = useCallback(\n (input: RemoveDocumentTypeInput) => {\n dispatch(removeDocumentType(input));\n },\n [dispatch],\n );\n\n const onConfirm = useCallback(() => {\n dispatch(setEditorStatus({ status: \"CONFIRMED\" }));\n }, [dispatch]);\n\n return (\n <div className=\"bg-background p-6\">\n <DocumentToolbar />\n <DocumentEditorForm\n status={document.state.global.status}\n editorName={document.state.global.name ?? \"\"}\n documentTypes={document.state.global.documentTypes}\n onEditorNameChange={onEditorNameChange}\n onAddDocumentType={onAddDocumentType}\n onRemoveDocumentType={onRemoveDocumentType}\n onConfirm={onConfirm}\n />\n </div>\n );\n}\n"],"mappings":"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"}