@powerhousedao/codegen 4.1.0-dev.10 → 4.1.0-dev.101

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 (280) hide show
  1. package/README.md +0 -1
  2. package/dist/index.d.ts +1 -0
  3. package/dist/index.d.ts.map +1 -1
  4. package/dist/index.js +1 -0
  5. package/dist/index.js.map +1 -1
  6. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/index.js +10 -0
  7. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/resolvers.esm.t +17 -0
  8. package/dist/src/codegen/.hygen/templates/powerhouse/generate-custom-subgraph/schema.esm.t +16 -0
  9. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/actions.esm.t +3 -3
  10. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/creators.esm.t +3 -2
  11. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/customUtils.esm.t +1 -1
  12. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-models.esm.t +14 -0
  13. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-schema.esm.t +56 -0
  14. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/document-type.esm.t +6 -0
  15. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModel.esm.t +3 -3
  16. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/documentModelTest.esm.t +110 -15
  17. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/hooks.esm.t +49 -0
  18. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.esm.t +17 -3
  19. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js +128 -54
  20. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.esm.t +4 -2
  21. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/module.esm.t +22 -0
  22. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/ph-factories.esm.t +93 -0
  23. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/reducer.esm.t +21 -9
  24. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/root-utils.esm.t +11 -0
  25. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootActions.esm.t +13 -0
  26. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/rootIndex.esm.t +6 -27
  27. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/schema.esm.t +2 -2
  28. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/src-index.esm.t +5 -0
  29. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/types.esm.t +23 -11
  30. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/utils.esm.t +44 -30
  31. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/creators.esm.t +11 -6
  32. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/customTest.esm.t +15 -20
  33. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/error.esm.t +6 -10
  34. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js +67 -27
  35. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js +33 -21
  36. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/resolvers.esm.t +76 -52
  37. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/schema.esm.t +4 -10
  38. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/CreateDocument.esm.t +42 -34
  39. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveContents.esm.t +23 -0
  40. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/DriveExplorer.esm.t +18 -224
  41. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EmptyState.esm.t +19 -0
  42. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Files.esm.t +29 -0
  43. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderTree.esm.t +95 -72
  44. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/Folders.esm.t +28 -0
  45. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/NavigationBreadcrumbs.esm.t +14 -0
  46. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/config.esm.t +11 -0
  47. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editor.esm.t +10 -71
  48. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/editors.esm.t +14 -0
  49. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.js +30 -0
  50. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.esm.t +4 -2
  51. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/module.esm.t +15 -0
  52. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/edit-name.esm.t +78 -0
  53. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editor.esm.t +9 -21
  54. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/editors.esm.t +14 -0
  55. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js +97 -15
  56. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.esm.t +4 -2
  57. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/module.esm.t +16 -0
  58. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js +8 -10
  59. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/factory.esm.t +5 -4
  60. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.esm.t +5 -9
  61. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js +11 -15
  62. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.root.inject.esm.t +12 -0
  63. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.esm.t +8 -6
  64. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_call.esm.t +1 -1
  65. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/lib.inject_import.esm.t +1 -1
  66. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/factory.esm.t +6 -5
  67. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.esm.t +6 -13
  68. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js +11 -15
  69. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.root.inject.esm.t +12 -0
  70. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.esm.t +8 -9
  71. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_call.esm.t +2 -2
  72. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/lib.inject_import.esm.t +1 -1
  73. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/migrations.esm.t +2 -2
  74. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/schema.esm.t +10 -2
  75. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.esm.t +5 -36
  76. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js +9 -11
  77. package/dist/src/codegen/.hygen/templates/powerhouse/utils.js +43 -0
  78. package/dist/src/codegen/__tests__/config.d.ts +2 -0
  79. package/dist/src/codegen/__tests__/config.d.ts.map +1 -0
  80. package/dist/src/codegen/__tests__/config.js +2 -0
  81. package/dist/src/codegen/__tests__/config.js.map +1 -0
  82. package/dist/src/codegen/__tests__/constants.d.ts +16 -0
  83. package/dist/src/codegen/__tests__/constants.d.ts.map +1 -0
  84. package/dist/src/codegen/__tests__/constants.js +16 -0
  85. package/dist/src/codegen/__tests__/constants.js.map +1 -0
  86. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts +2 -0
  87. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.d.ts.map +1 -0
  88. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js +9 -0
  89. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content-v3.js.map +1 -0
  90. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts +3 -0
  91. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.d.ts.map +1 -0
  92. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js +33 -0
  93. package/dist/src/codegen/__tests__/fixtures/expected-reducer-content.js.map +1 -0
  94. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts +2 -0
  95. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.d.ts.map +1 -0
  96. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js +23 -0
  97. package/dist/src/codegen/__tests__/fixtures/run-generated-tests.js.map +1 -0
  98. package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts +2 -0
  99. package/dist/src/codegen/__tests__/fixtures/typecheck.d.ts.map +1 -0
  100. package/dist/src/codegen/__tests__/fixtures/typecheck.js +23 -0
  101. package/dist/src/codegen/__tests__/fixtures/typecheck.js.map +1 -0
  102. package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts +2 -0
  103. package/dist/src/codegen/__tests__/generate-doc-model.test.d.ts.map +1 -0
  104. package/dist/src/codegen/__tests__/generate-doc-model.test.js +220 -0
  105. package/dist/src/codegen/__tests__/generate-doc-model.test.js.map +1 -0
  106. package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts +2 -0
  107. package/dist/src/codegen/__tests__/generate-drive-editor.test.d.ts.map +1 -0
  108. package/dist/src/codegen/__tests__/generate-drive-editor.test.js +162 -0
  109. package/dist/src/codegen/__tests__/generate-drive-editor.test.js.map +1 -0
  110. package/dist/src/codegen/__tests__/generate-editor.test.d.ts +2 -0
  111. package/dist/src/codegen/__tests__/generate-editor.test.d.ts.map +1 -0
  112. package/dist/src/codegen/__tests__/generate-editor.test.js +103 -0
  113. package/dist/src/codegen/__tests__/generate-editor.test.js.map +1 -0
  114. package/dist/src/codegen/__tests__/generate-manifest.test.d.ts +2 -0
  115. package/dist/src/codegen/__tests__/generate-manifest.test.d.ts.map +1 -0
  116. package/dist/src/codegen/__tests__/generate-manifest.test.js +206 -0
  117. package/dist/src/codegen/__tests__/generate-manifest.test.js.map +1 -0
  118. package/dist/src/codegen/__tests__/generate-schemas.test.d.ts +2 -0
  119. package/dist/src/codegen/__tests__/generate-schemas.test.d.ts.map +1 -0
  120. package/dist/src/codegen/__tests__/generate-schemas.test.js +143 -0
  121. package/dist/src/codegen/__tests__/generate-schemas.test.js.map +1 -0
  122. package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts +2 -0
  123. package/dist/src/codegen/__tests__/ts-morph-generator.test.d.ts.map +1 -0
  124. package/dist/src/codegen/__tests__/ts-morph-generator.test.js +72 -0
  125. package/dist/src/codegen/__tests__/ts-morph-generator.test.js.map +1 -0
  126. package/dist/src/codegen/__tests__/utils.d.ts +5 -0
  127. package/dist/src/codegen/__tests__/utils.d.ts.map +1 -0
  128. package/dist/src/codegen/__tests__/utils.js +31 -0
  129. package/dist/src/codegen/__tests__/utils.js.map +1 -0
  130. package/dist/src/codegen/generate.d.ts +33 -0
  131. package/dist/src/codegen/generate.d.ts.map +1 -0
  132. package/dist/src/codegen/generate.js +203 -0
  133. package/dist/src/codegen/generate.js.map +1 -0
  134. package/dist/src/codegen/graphql.d.ts +2 -2
  135. package/dist/src/codegen/graphql.d.ts.map +1 -1
  136. package/dist/src/codegen/graphql.js +1 -1
  137. package/dist/src/codegen/graphql.js.map +1 -1
  138. package/dist/src/codegen/hygen.d.ts +19 -14
  139. package/dist/src/codegen/hygen.d.ts.map +1 -1
  140. package/dist/src/codegen/hygen.js +80 -22
  141. package/dist/src/codegen/hygen.js.map +1 -1
  142. package/dist/src/codegen/index.d.ts +6 -32
  143. package/dist/src/codegen/index.d.ts.map +1 -1
  144. package/dist/src/codegen/index.js +6 -182
  145. package/dist/src/codegen/index.js.map +1 -1
  146. package/dist/src/codegen/types.d.ts +9 -0
  147. package/dist/src/codegen/types.d.ts.map +1 -0
  148. package/dist/src/codegen/types.js +2 -0
  149. package/dist/src/codegen/types.js.map +1 -0
  150. package/dist/src/codegen/utils.d.ts +5 -2
  151. package/dist/src/codegen/utils.d.ts.map +1 -1
  152. package/dist/src/codegen/utils.js +42 -4
  153. package/dist/src/codegen/utils.js.map +1 -1
  154. package/dist/src/create-lib/checkout-project.d.ts +13 -0
  155. package/dist/src/create-lib/checkout-project.d.ts.map +1 -0
  156. package/dist/src/create-lib/checkout-project.js +47 -0
  157. package/dist/src/create-lib/checkout-project.js.map +1 -0
  158. package/dist/src/create-lib/create-project.d.ts +9 -5
  159. package/dist/src/create-lib/create-project.d.ts.map +1 -1
  160. package/dist/src/create-lib/create-project.js +37 -30
  161. package/dist/src/create-lib/create-project.js.map +1 -1
  162. package/dist/src/create-lib/feature-flags.d.ts +4 -0
  163. package/dist/src/create-lib/feature-flags.d.ts.map +1 -0
  164. package/dist/src/create-lib/feature-flags.js +4 -0
  165. package/dist/src/create-lib/feature-flags.js.map +1 -0
  166. package/dist/src/create-lib/index.d.ts +1 -0
  167. package/dist/src/create-lib/index.d.ts.map +1 -1
  168. package/dist/src/create-lib/index.js +1 -0
  169. package/dist/src/create-lib/index.js.map +1 -1
  170. package/dist/src/{utils/package-manager.d.ts → create-lib/utils.d.ts} +3 -1
  171. package/dist/src/create-lib/utils.d.ts.map +1 -0
  172. package/dist/src/{utils/package-manager.js → create-lib/utils.js} +12 -1
  173. package/dist/src/create-lib/utils.js.map +1 -0
  174. package/dist/src/index.d.ts +5 -0
  175. package/dist/src/index.d.ts.map +1 -0
  176. package/dist/src/index.js +5 -0
  177. package/dist/src/index.js.map +1 -0
  178. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts +2 -0
  179. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.d.ts.map +1 -0
  180. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js +491 -0
  181. package/dist/src/ts-morph-generator/__tests__/ReducerGenerator.test.js.map +1 -0
  182. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts +5 -4
  183. package/dist/src/ts-morph-generator/core/FileGenerator.d.ts.map +1 -1
  184. package/dist/src/ts-morph-generator/core/FileGenerator.js +3 -1
  185. package/dist/src/ts-morph-generator/core/FileGenerator.js.map +1 -1
  186. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts +19 -8
  187. package/dist/src/ts-morph-generator/core/GenerationContext.d.ts.map +1 -1
  188. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts +12 -0
  189. package/dist/src/ts-morph-generator/core/ReducerGenerator.d.ts.map +1 -0
  190. package/dist/src/ts-morph-generator/core/ReducerGenerator.js +147 -0
  191. package/dist/src/ts-morph-generator/core/ReducerGenerator.js.map +1 -0
  192. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts +5 -3
  193. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.d.ts.map +1 -1
  194. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js +17 -11
  195. package/dist/src/ts-morph-generator/core/TSMorphCodeGenerator.js.map +1 -1
  196. package/dist/src/ts-morph-generator/index.d.ts +2 -2
  197. package/dist/src/ts-morph-generator/index.d.ts.map +1 -1
  198. package/dist/src/ts-morph-generator/index.js +2 -2
  199. package/dist/src/ts-morph-generator/index.js.map +1 -1
  200. package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts +5 -0
  201. package/dist/src/ts-morph-generator/utilities/DeclarationManager.d.ts.map +1 -0
  202. package/dist/src/ts-morph-generator/utilities/DeclarationManager.js +10 -0
  203. package/dist/src/ts-morph-generator/utilities/DeclarationManager.js.map +1 -0
  204. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts +2 -2
  205. package/dist/src/ts-morph-generator/utilities/DirectoryManager.d.ts.map +1 -1
  206. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts +2 -1
  207. package/dist/src/ts-morph-generator/utilities/ImportManager.d.ts.map +1 -1
  208. package/dist/src/ts-morph-generator/utilities/ImportManager.js +13 -3
  209. package/dist/src/ts-morph-generator/utilities/ImportManager.js.map +1 -1
  210. package/dist/src/ts-morph-generator/utilities/index.d.ts +1 -0
  211. package/dist/src/ts-morph-generator/utilities/index.d.ts.map +1 -1
  212. package/dist/src/ts-morph-generator/utilities/index.js +1 -0
  213. package/dist/src/ts-morph-generator/utilities/index.js.map +1 -1
  214. package/dist/src/utils/index.d.ts +0 -1
  215. package/dist/src/utils/index.d.ts.map +1 -1
  216. package/dist/src/utils/index.js +0 -1
  217. package/dist/src/utils/index.js.map +1 -1
  218. package/dist/src/utils/validation.d.ts +6 -6
  219. package/dist/src/utils/validation.d.ts.map +1 -1
  220. package/dist/src/utils/validation.js +5 -6
  221. package/dist/src/utils/validation.js.map +1 -1
  222. package/dist/tsconfig.tsbuildinfo +1 -0
  223. package/dist/vitest.config.d.ts +3 -0
  224. package/dist/vitest.config.d.ts.map +1 -0
  225. package/dist/vitest.config.js +15 -0
  226. package/dist/vitest.config.js.map +1 -0
  227. package/package.json +26 -27
  228. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts +0 -25
  229. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.d.ts.map +0 -1
  230. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/index.js.map +0 -1
  231. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/lib.inject_export.esm.t +0 -7
  232. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model/object.esm.t +0 -49
  233. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts +0 -23
  234. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.d.ts.map +0 -1
  235. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/index.js.map +0 -1
  236. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-module/object.esm.t +0 -37
  237. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts +0 -22
  238. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.d.ts.map +0 -1
  239. package/dist/src/codegen/.hygen/templates/powerhouse/generate-document-model-subgraph/index.js.map +0 -1
  240. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/EditorContainer.esm.t +0 -124
  241. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FileItemsGrid.esm.t +0 -44
  242. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/components/FolderItemsGrid.esm.t +0 -96
  243. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useSelectedFolderChildren.esm.t +0 -35
  244. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/hooks/useTransformedNodes.esm.t +0 -35
  245. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/index.esm.t +0 -20
  246. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/lib.inject_export.esm.t +0 -7
  247. package/dist/src/codegen/.hygen/templates/powerhouse/generate-drive-editor/types/css.d.esm.t +0 -8
  248. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts +0 -20
  249. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.d.ts.map +0 -1
  250. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.esm.t +0 -22
  251. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/index.js.map +0 -1
  252. package/dist/src/codegen/.hygen/templates/powerhouse/generate-editor/lib.inject_export.esm.t +0 -7
  253. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts +0 -14
  254. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.d.ts.map +0 -1
  255. package/dist/src/codegen/.hygen/templates/powerhouse/generate-import-script/index.js.map +0 -1
  256. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts +0 -20
  257. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.d.ts.map +0 -1
  258. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-analytics/index.js.map +0 -1
  259. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts +0 -20
  260. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.d.ts.map +0 -1
  261. package/dist/src/codegen/.hygen/templates/powerhouse/generate-processor-relationalDb/index.js.map +0 -1
  262. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts +0 -16
  263. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.d.ts.map +0 -1
  264. package/dist/src/codegen/.hygen/templates/powerhouse/generate-subgraph/index.js.map +0 -1
  265. package/dist/src/ts-morph-generator/core/index.d.ts +0 -4
  266. package/dist/src/ts-morph-generator/core/index.d.ts.map +0 -1
  267. package/dist/src/ts-morph-generator/core/index.js +0 -4
  268. package/dist/src/ts-morph-generator/core/index.js.map +0 -1
  269. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts +0 -9
  270. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.d.ts.map +0 -1
  271. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js +0 -69
  272. package/dist/src/ts-morph-generator/file-generators/ReducerGenerator.js.map +0 -1
  273. package/dist/src/ts-morph-generator/file-generators/index.d.ts +0 -2
  274. package/dist/src/ts-morph-generator/file-generators/index.d.ts.map +0 -1
  275. package/dist/src/ts-morph-generator/file-generators/index.js +0 -2
  276. package/dist/src/ts-morph-generator/file-generators/index.js.map +0 -1
  277. package/dist/src/utils/package-manager.d.ts.map +0 -1
  278. package/dist/src/utils/package-manager.js.map +0 -1
  279. package/dist/tsconfig.hygen.tsbuildinfo +0 -1
  280. package/dist/tsconfig.lib.tsbuildinfo +0 -1
@@ -1,22 +1,34 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const change_case_1 = require("change-case");
4
- const generateDocumentModelMutations = {
5
- params: ({ args, }) => {
6
- const documentModel = JSON.parse(args.documentModel);
7
- const latestSpec = documentModel.specifications[documentModel.specifications.length - 1];
8
- return {
9
- rootDir: args.rootDir,
10
- subgraph: args.subgraph,
11
- documentTypeId: documentModel.id,
12
- documentType: documentModel.name,
13
- schema: latestSpec.state.global.schema,
14
- modules: latestSpec.modules.map((m) => ({
15
- ...m,
16
- name: (0, change_case_1.paramCase)(m.name),
17
- })),
18
- };
19
- },
1
+ // @ts-check
2
+ const { paramCase, pascalCase, camelCase } = require("change-case");
3
+
4
+ module.exports = {
5
+ params: ({ args }) => {
6
+ const documentModel = JSON.parse(args.documentModel);
7
+ const latestSpec =
8
+ documentModel.specifications[documentModel.specifications.length - 1];
9
+ const documentType = documentModel.name;
10
+ const pascalCaseDocumentType = pascalCase(documentType);
11
+ const camelCaseDocumentType = camelCase(documentType);
12
+ const phDocumentTypeName = `${pascalCaseDocumentType}Document`;
13
+ const documentTypeVariableName = `${camelCaseDocumentType}DocumentType`;
14
+ const packageName = args.packageName;
15
+ const paramCaseDocumentType = paramCase(documentType);
16
+ const documentModelDir = `${packageName}/document-models/${paramCaseDocumentType}`;
17
+ return {
18
+ phDocumentTypeName,
19
+ documentTypeVariableName,
20
+ pascalCaseDocumentType,
21
+ camelCaseDocumentType,
22
+ documentModelDir,
23
+ rootDir: args.rootDir,
24
+ subgraph: args.subgraph,
25
+ documentTypeId: documentModel.id,
26
+ documentType: documentModel.name,
27
+ schema: latestSpec.state.global.schema,
28
+ modules: latestSpec.modules.map((m) => ({
29
+ ...m,
30
+ name: paramCase(m.name),
31
+ })),
32
+ };
33
+ },
20
34
  };
21
- exports.default = generateDocumentModelMutations;
22
- //# sourceMappingURL=index.js.map
@@ -2,102 +2,126 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(subgraph) %>/resolvers.ts"
3
3
  force: true
4
4
  ---
5
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
6
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
7
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
8
- import { type Subgraph } from "@powerhousedao/reactor-api";
5
+ import type { BaseSubgraph } from "@powerhousedao/reactor-api";
9
6
  import { addFile } from "document-drive";
10
- import { actions } from "../../document-models/<%- h.changeCase.param(documentType) %>/index.js";
11
- import { generateId } from "document-model";
7
+ import { setName } from "document-model";
8
+ import {
9
+ actions,
10
+ <%= documentTypeVariableName %>,
11
+ } from "<%= documentModelDir %>";
12
+ <% const inputTypes = modules.flatMap(m =>
13
+ m.operations.map(o => `${h.changeCase.pascalCase(o.name)}Input`)
14
+ );
15
+ %>
16
+ import type {
17
+ <%= phDocumentTypeName %>,
18
+ <%= inputTypes.join(',\n ') %>
19
+ } from "<%= documentModelDir %>";
12
20
 
13
- const DEFAULT_DRIVE_ID = "powerhouse";
14
-
15
- export const getResolvers = (subgraph: Subgraph): Record<string, any> => {
21
+ export const getResolvers = (subgraph: BaseSubgraph): Record<string, unknown> => {
16
22
  const reactor = subgraph.reactor;
17
23
 
18
24
  return ({
19
25
  Query: {
20
- <%- h.changeCase.pascal(documentType) %>: async (_: any, args: any, ctx: any) => {
26
+ <%- pascalCaseDocumentType %>: async () => {
21
27
  return {
22
- getDocument: async (args: any) => {
23
- const driveId: string = args.driveId || DEFAULT_DRIVE_ID;
24
- const docId: string = args.docId || "";
25
- const doc = await reactor.getDocument(driveId, docId);
26
- return {
28
+ getDocument: async (args: { docId: string, driveId: string }) => {
29
+ const { docId, driveId } = args;
30
+
31
+ if(!docId) {
32
+ throw new Error("Document id is required");
33
+ }
34
+
35
+ if(driveId) {
36
+ const docIds = await reactor.getDocuments(driveId);
37
+ if(!docIds.includes(docId)) {
38
+ throw new Error(`Document with id ${docId} is not part of ${driveId}`);
39
+ }
40
+ }
41
+
42
+ const doc = await reactor.getDocument<<%= phDocumentTypeName %>>(docId);
43
+ return {
27
44
  driveId: driveId,
28
45
  ...doc,
29
46
  ...doc.header,
47
+ created: doc.header.createdAtUtcIso,
48
+ lastModified: doc.header.lastModifiedAtUtcIso,
30
49
  state: doc.state.global,
31
50
  stateJSON: doc.state.global,
32
- revision: doc.header.revision["global"] ?? 0,
51
+ revision: doc.header?.revision?.global ?? 0,
33
52
  };
34
53
  },
35
- getDocuments: async (args: any) => {
36
- const driveId: string = args.driveId || DEFAULT_DRIVE_ID;
54
+ getDocuments: async (args: { driveId: string }) => {
55
+ const { driveId } = args;
37
56
  const docsIds = await reactor.getDocuments(driveId);
38
57
  const docs = await Promise.all(
39
58
  docsIds.map(async (docId) => {
40
- const doc = await reactor.getDocument(driveId, docId);
59
+ const doc = await reactor.getDocument<<%= phDocumentTypeName %>>(docId);
41
60
  return {
42
61
  driveId: driveId,
43
62
  ...doc,
44
63
  ...doc.header,
64
+ created: doc.header.createdAtUtcIso,
65
+ lastModified: doc.header.lastModifiedAtUtcIso,
45
66
  state: doc.state.global,
46
67
  stateJSON: doc.state.global,
47
- revision: doc.header.revision["global"] ?? 0,
68
+ revision: doc.header?.revision?.global ?? 0,
48
69
  };
49
70
  }),
50
71
  );
51
72
 
52
73
  return docs.filter(
53
- (doc) => doc.header.documentType === "<%- documentTypeId %>",
74
+ (doc) => doc.header.documentType === <%= documentTypeVariableName %>,
54
75
  );
55
76
  },
56
77
  };
57
78
  },
58
79
  },
59
80
  Mutation: {
60
-
61
- <%- h.changeCase.pascal(documentType) %>_createDocument: async (_: any, args: any) => {
62
- const driveId: string = args.driveId || DEFAULT_DRIVE_ID;
63
- const docId = generateId();
81
+ <%- pascalCaseDocumentType %>_createDocument: async (_: unknown, args: { name: string, driveId?: string }) => {
82
+ const { driveId, name } = args;
83
+ const document = await reactor.addDocument(<%= documentTypeVariableName %>);
64
84
 
65
- await reactor.addDriveAction(driveId, addFile({
66
- id: docId,
67
- name: args.name,
68
- documentType: "<%- documentTypeId %>",
69
- synchronizationUnits:[
70
- {
71
- branch: "main",
72
- scope: "global",
73
- syncId: generateId(),
74
- },
75
- {
76
- branch: "main",
77
- scope: "local",
78
- syncId: generateId(),
79
- }
80
- ],
81
- }));
85
+ if(driveId) {
86
+ await reactor.addAction(
87
+ driveId,
88
+ addFile({
89
+ name,
90
+ id: document.header.id,
91
+ documentType: <%= documentTypeVariableName %>,
92
+ }),
93
+ );
94
+ }
95
+
96
+ if(name) {
97
+ await reactor.addAction(
98
+ document.header.id,
99
+ setName(name),
100
+ );
101
+ }
82
102
 
83
- return docId;
103
+ return document.header.id;
84
104
  },
85
105
 
86
106
  <% modules.forEach(module => { _%>
87
107
  <% module.operations.forEach(op => { _%>
88
- <%- h.changeCase.pascal(documentType) + '_' + h.changeCase.camel(op.name)
89
- %>: async (_: any, args: any) => {
90
- const driveId: string = args.driveId || DEFAULT_DRIVE_ID;
91
- const docId: string = args.docId || "";
92
- const doc = await reactor.getDocument(driveId, docId);
108
+ <%- pascalCaseDocumentType + '_' + h.changeCase.camel(op.name) %>: async (_: unknown, args: { docId: string, input: <%- h.changeCase.pascal(op.name) %>Input}) => {
109
+ const { docId, input } = args;
110
+ const doc = await reactor.getDocument<<%- pascalCaseDocumentType %>Document>(docId);
111
+ if(!doc) {
112
+ throw new Error("Document not found");
113
+ }
93
114
 
94
- await reactor.addAction(
95
- driveId,
115
+ const result = await reactor.addAction(
96
116
  docId,
97
- actions.<%- h.changeCase.camel(op.name) %>({...args.input})
117
+ actions.<%- h.changeCase.camel(op.name) %>(input)
98
118
  );
99
119
 
100
- return (doc.header.revision["global"] ?? 0) + 1;
120
+ if(result.status !== "SUCCESS") {
121
+ throw new Error(result.error?.message ?? "Failed to <%- h.changeCase.camel(op.name) %>");
122
+ }
123
+
124
+ return true;
101
125
  },
102
126
 
103
127
  <%_ })}); %>
@@ -7,18 +7,12 @@ import type { DocumentNode } from "graphql";
7
7
 
8
8
  export const schema: DocumentNode = gql`
9
9
  """
10
- Subgraph definition for <%= h.changeCase.pascal(documentType) %> (<%- documentTypeId %>)
11
-
12
- """
13
- <%- schema %>
14
-
15
- """
16
- Queries: <%= h.changeCase.pascal(documentType) %>
10
+ Queries: <%= h.changeCase.pascal(documentType) %> Document
17
11
  """
18
12
 
19
13
  type <%- h.changeCase.pascal(documentType) %>Queries {
20
- getDocument(driveId: String, docId: PHID): <%- h.changeCase.pascal(documentType) %>
21
- getDocuments(driveId: String): [<%- h.changeCase.pascal(documentType) %>!]
14
+ getDocument(docId: PHID!, driveId: PHID): <%- h.changeCase.pascal(documentType) %>
15
+ getDocuments(driveId: String!): [<%- h.changeCase.pascal(documentType) %>!]
22
16
  }
23
17
 
24
18
  type Query {
@@ -30,7 +24,7 @@ Mutations: <%= h.changeCase.pascal(documentType) %>
30
24
  """
31
25
  type Mutation {
32
26
 
33
- <%- h.changeCase.pascal(documentType) %>_createDocument(driveId:String, name:String): String
27
+ <%- h.changeCase.pascal(documentType) %>_createDocument(name:String!, driveId:String): String
34
28
 
35
29
  <% modules.forEach(module => { _%>
36
30
  <% module.operations.forEach(op => { _%>
@@ -2,49 +2,57 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/CreateDocument.tsx"
3
3
  unless_exists: true
4
4
  ---
5
- import { Button } from "@powerhousedao/design-system";
6
- import { type DocumentModelModule } from "document-model";
5
+ import type { VetraDocumentModelModule } from "@powerhousedao/reactor-browser";
6
+ import {
7
+ showCreateDocumentModal,
8
+ useAllowedDocumentModelModules,
9
+ } from "@powerhousedao/reactor-browser";
7
10
 
8
- interface CreateDocumentProps {
9
- documentModels?: DocumentModelModule[];
10
- createDocument: (doc: DocumentModelModule) => void;
11
- }
12
-
13
- function getDocumentSpec(doc: DocumentModelModule) {
14
- if ("documentModelState" in doc) {
15
- return doc.documentModelState as DocumentModelModule["documentModel"];
16
- }
11
+ /**
12
+ * Document creation UI component.
13
+ * Displays available document types as clickable buttons.
14
+ */
15
+ export function CreateDocument() {
16
+ const allowedDocumentModelModules = useAllowedDocumentModelModules();
17
17
 
18
- return doc.documentModel;
19
- }
20
-
21
- export const CreateDocument: React.FC<CreateDocumentProps> = ({
22
- documentModels,
23
- createDocument,
24
- }) => {
25
18
  return (
26
- <div className="px-6">
19
+ <div>
20
+ {/* Customize section title here */}
27
21
  <h3 className="mb-3 mt-4 text-sm font-bold text-gray-600">
28
- New document
22
+ Create document
29
23
  </h3>
24
+ {/* Customize layout by changing flex-wrap, gap, or grid layout */}
30
25
  <div className="flex w-full flex-wrap gap-4">
31
- {documentModels?.map((doc) => {
32
- const spec = getDocumentSpec(doc);
26
+ {allowedDocumentModelModules?.map((documentModelModule) => {
33
27
  return (
34
- <Button
35
- key={spec.id}
36
- color="light"
37
- size="small"
38
- className="cursor-pointer"
39
- title={spec.name}
40
- aria-description={spec.description}
41
- onClick={() => createDocument(doc)}
42
- >
43
- <span className="text-sm">{spec.name}</span>
44
- </Button>
28
+ <CreateDocumentButton
29
+ key={documentModelModule.documentModel.global.id}
30
+ documentModelModule={documentModelModule}
31
+ />
45
32
  );
46
33
  })}
47
34
  </div>
48
35
  </div>
49
36
  );
50
- };
37
+ }
38
+
39
+ type Props = {
40
+ documentModelModule: VetraDocumentModelModule;
41
+ };
42
+ function CreateDocumentButton({ documentModelModule }: Props) {
43
+ const documentType = documentModelModule.documentModel.global.id;
44
+ const documentModelName =
45
+ documentModelModule.documentModel.global.name || documentType;
46
+ const documentModelDescription =
47
+ documentModelModule.documentModel.global.description;
48
+ return (
49
+ <button
50
+ className="cursor-pointer rounded-md bg-gray-200 py-2 px-3 hover:bg-gray-300"
51
+ title={documentModelName}
52
+ aria-description={documentModelDescription}
53
+ onClick={() => showCreateDocumentModal(documentType)}
54
+ >
55
+ {documentModelName}
56
+ </button>
57
+ );
58
+ }
@@ -0,0 +1,23 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/DriveContents.tsx"
3
+ unless_exists: true
4
+ ---
5
+ import { CreateDocument } from "./CreateDocument.js";
6
+ import { EmptyState } from "./EmptyState.js";
7
+ import { Files } from "./Files.js";
8
+ import { Folders } from "./Folders.js";
9
+ import { NavigationBreadcrumbs } from "./NavigationBreadcrumbs.js";
10
+
11
+ /** Shows the documents and folders in the selected drive */
12
+ export function DriveContents() {
13
+ return (
14
+ <div className="space-y-6 px-6">
15
+ <NavigationBreadcrumbs />
16
+ <Folders />
17
+ <Files />
18
+ <EmptyState />
19
+ <CreateDocument />
20
+ </div>
21
+ );
22
+ }
23
+
@@ -2,237 +2,31 @@
2
2
  to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/DriveExplorer.tsx"
3
3
  unless_exists: true
4
4
  ---
5
- import {
6
- type BaseUiFileNode,
7
- type BaseUiFolderNode,
8
- type BaseUiNode,
9
- type UiFileNode,
10
- type UiFolderNode,
11
- type UiNode,
12
- } from "@powerhousedao/design-system";
13
- import { useCallback, useState, useRef, useEffect } from "react";
14
- import type { FileNode, GetDocumentOptions, Node } from "document-drive";
15
- import { FileItemsGrid } from "./FileItemsGrid.js";
16
- import { FolderItemsGrid } from "./FolderItemsGrid.js";
5
+ import type { EditorProps } from "document-model";
17
6
  import { FolderTree } from "./FolderTree.js";
18
- import { useTransformedNodes } from "../hooks/useTransformedNodes.js";
19
- import { useSelectedFolderChildren } from "../hooks/useSelectedFolderChildren.js";
20
- import { EditorContainer } from "./EditorContainer.js";
21
- import type { DocumentModelModule } from "document-model";
22
- import { CreateDocumentModal } from "@powerhousedao/design-system";
23
- import { CreateDocument } from "./CreateDocument.js";
24
- import { type DriveEditorContext, useDriveContext } from "@powerhousedao/reactor-browser";
7
+ import { DriveContents } from "./DriveContents.js";
25
8
 
26
- interface DriveExplorerProps {
27
- driveId: string;
28
- nodes: Node[];
29
- onAddFolder: (name: string, parentFolder?: string) => void;
30
- onDeleteNode: (nodeId: string) => void;
31
- renameNode: (nodeId: string, name: string) => void;
32
- onCopyNode: (nodeId: string, targetName: string, parentId?: string) => void;
33
- context: DriveEditorContext;
34
- }
35
-
36
- export function DriveExplorer({
37
- driveId,
38
- nodes,
39
- onDeleteNode,
40
- renameNode,
41
- onAddFolder,
42
- onCopyNode,
43
- context,
44
- }: DriveExplorerProps) {
45
- const { getDocumentRevision } = context;
46
-
47
- const [selectedNodeId, setSelectedNodeId] = useState<string | undefined>();
48
- const [activeDocumentId, setActiveDocumentId] = useState<
49
- string | undefined
50
- >();
51
- const [openModal, setOpenModal] = useState(false);
52
- const selectedDocumentModel = useRef<DocumentModelModule | null>(null);
53
- const { addDocument, documentModels } = useDriveContext();
54
-
55
- // Dummy functions to satisfy component types
56
- const dummyDuplicateNode = useCallback((node: BaseUiNode) => {
57
- console.log("Duplicate node:", node);
58
- }, []);
59
-
60
- const dummyAddFile = useCallback(
61
- async (file: File, parentNode: BaseUiNode | null) => {
62
- console.log("Add file:", file, parentNode);
63
- },
64
- []
65
- );
66
-
67
- const dummyMoveNode = useCallback(
68
- async (uiNode: BaseUiNode, targetNode: BaseUiNode) => {
69
- console.log("Move node:", uiNode, targetNode);
70
- },
71
- []
72
- );
73
-
74
- const handleNodeSelect = useCallback((node: BaseUiFolderNode) => {
75
- console.log("Selected node:", node);
76
- setSelectedNodeId(node.id);
77
- }, []);
78
-
79
- const handleFileSelect = useCallback((node: BaseUiFileNode) => {
80
- setActiveDocumentId(node.id);
81
- }, []);
82
-
83
- const handleEditorClose = useCallback(() => {
84
- setActiveDocumentId(undefined);
85
- }, []);
86
-
87
- const onCreateDocument = useCallback(
88
- async (fileName: string) => {
89
- setOpenModal(false);
90
-
91
- const documentModel = selectedDocumentModel.current;
92
- if (!documentModel) return;
93
-
94
- const node = await addDocument(
95
- driveId,
96
- fileName,
97
- documentModel.documentModel.id,
98
- selectedNodeId,
99
- );
100
-
101
- selectedDocumentModel.current = null;
102
- setActiveDocumentId(node.id);
103
- },
104
- [addDocument, driveId, selectedNodeId]
105
- );
106
-
107
- const onSelectDocumentModel = useCallback(
108
- (documentModel: DocumentModelModule) => {
109
- selectedDocumentModel.current = documentModel;
110
- setOpenModal(true);
111
- },
112
- []
113
- );
114
-
115
- const onGetDocumentRevision = useCallback(
116
- (options?: GetDocumentOptions) => {
117
- if (!activeDocumentId) return;
118
- return getDocumentRevision?.(activeDocumentId, options);
119
- },
120
- [getDocumentRevision, activeDocumentId],
121
- );
122
-
123
- const filteredDocumentModels = documentModels;
124
-
125
- // Transform nodes using the custom hook
126
- const transformedNodes = useTransformedNodes(nodes, driveId);
127
-
128
- // Separate folders and files
129
- const folders = transformedNodes.filter(
130
- (node): node is UiFolderNode => node.kind === "FOLDER"
131
- );
132
- const files = transformedNodes.filter(
133
- (node): node is UiFileNode => node.kind === "FILE"
134
- );
135
-
136
- // Get children of selected folder using the custom hook
137
- const selectedFolderChildren = useSelectedFolderChildren(
138
- selectedNodeId,
139
- folders,
140
- files
141
- );
142
-
143
- // Get the active document info from nodes
144
- const activeDocument = activeDocumentId
145
- ? files.find((file) => file.id === activeDocumentId)
146
- : undefined;
147
-
148
- const documentModelModule = activeDocument
149
- ? context.getDocumentModelModule(activeDocument.documentType)
150
- : null;
151
-
152
- const editorModule = activeDocument
153
- ? context.getEditor(activeDocument.documentType)
154
- : null;
9
+ /**
10
+ * Main drive explorer component with sidebar navigation and content area.
11
+ * Layout: Left sidebar (folder tree) + Right content area (files/folders + document editor)
12
+ */
13
+ export function DriveExplorer({ children }: EditorProps) {
14
+ // if a document is selected then it's editor will be passed as children
15
+ const showDocumentEditor = !!children;
155
16
 
156
17
  return (
157
18
  <div className="flex h-full">
158
- {/* Sidebar */}
159
- <div className="w-64 border-r border-gray-200 p-4 overflow-y-auto">
160
- <h2 className="text-lg font-semibold mb-4">Folders</h2>
161
- <FolderTree
162
- folders={folders}
163
- selectedNodeId={selectedNodeId}
164
- onSelectNode={handleNodeSelect}
165
- />
166
- </div>
167
-
168
- {/* Main Content */}
169
- <div className="flex-1 p-4 overflow-y-auto">
170
- {activeDocument && documentModelModule && editorModule ? (
171
- <EditorContainer
172
- context={{
173
- ...context,
174
- getDocumentRevision: onGetDocumentRevision,
175
- }}
176
- documentId={activeDocumentId!}
177
- documentType={activeDocument.documentType}
178
- driveId={driveId}
179
- onClose={handleEditorClose}
180
- title={activeDocument.name}
181
- documentModelModule={documentModelModule}
182
- editorModule={editorModule}
183
- />
19
+ <FolderTree />
20
+ <div className="flex-1 overflow-y-auto p-4">
21
+ {/* Conditional rendering: Document editor or folder contents */}
22
+ {showDocumentEditor ? (
23
+ /* Document editor view */
24
+ children
184
25
  ) : (
185
- <>
186
- <h2 className="text-lg font-semibold mb-4">Contents</h2>
187
-
188
- {/* Folders Section */}
189
- <FolderItemsGrid
190
- folders={selectedFolderChildren.folders}
191
- onSelectNode={handleNodeSelect}
192
- onRenameNode={renameNode}
193
- onDuplicateNode={(uiNode) =>
194
- onCopyNode(
195
- uiNode.id,
196
- "Copy of " + uiNode.name,
197
- uiNode.parentFolder
198
- )
199
- }
200
- onDeleteNode={onDeleteNode}
201
- onAddFile={dummyAddFile}
202
- onCopyNode={async (uiNode, targetNode) =>
203
- onCopyNode(uiNode.id, "Copy of " + uiNode.name, targetNode.id)
204
- }
205
- onMoveNode={dummyMoveNode}
206
- isAllowedToCreateDocuments={true}
207
- onAddFolder={onAddFolder}
208
- parentFolderId={selectedNodeId}
209
- />
210
-
211
- {/* Files Section */}
212
- <FileItemsGrid
213
- files={selectedFolderChildren.files}
214
- onSelectNode={handleFileSelect}
215
- onRenameNode={renameNode}
216
- onDuplicateNode={dummyDuplicateNode}
217
- onDeleteNode={onDeleteNode}
218
- isAllowedToCreateDocuments={true}
219
- />
220
-
221
- {/* Create Document Section */}
222
- <CreateDocument
223
- createDocument={onSelectDocumentModel}
224
- documentModels={filteredDocumentModels}
225
- />
226
- </>
26
+ /* Folder contents view */
27
+ <DriveContents />
227
28
  )}
228
29
  </div>
229
-
230
- {/* Create Document Modal */}
231
- <CreateDocumentModal
232
- onContinue={onCreateDocument}
233
- onOpenChange={(open) => setOpenModal(open)}
234
- open={openModal}
235
- />
236
30
  </div>
237
31
  );
238
- }
32
+ }
@@ -0,0 +1,19 @@
1
+ ---
2
+ to: "<%= rootDir %>/<%= h.changeCase.param(name) %>/components/EmptyState.tsx"
3
+ unless_exists: true
4
+ ---
5
+ import { useNodesInSelectedDriveOrFolder } from "@powerhousedao/reactor-browser";
6
+
7
+ /** Shows a message when the selected drive or folder is empty */
8
+ export function EmptyState() {
9
+ const nodes = useNodesInSelectedDriveOrFolder();
10
+ const hasNodes = nodes.length > 0;
11
+ if (hasNodes) return null;
12
+
13
+ return (
14
+ <div className="py-12 text-center text-gray-500">
15
+ <p className="text-lg">This folder is empty</p>
16
+ <p className="mt-2 text-sm">Create your first document or folder below</p>
17
+ </div>
18
+ );
19
+ }