@powerhousedao/connect 4.1.0-dev.106 → 4.1.0-dev.107

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 (269) hide show
  1. package/dist/assets/AddDriveModal-C2fZqOQI.js +1 -0
  2. package/dist/assets/ClearStorageModal-DjjEBXBS.js +1 -0
  3. package/dist/assets/CookiesPolicyModal-BrOPPvzy.js +1 -0
  4. package/dist/assets/CreateDocumentModal-C09c_nGK.js +1 -0
  5. package/dist/assets/DebugSettingsModal-PbDxwRkN.js +1 -0
  6. package/dist/assets/DeleteDriveModal-x5WgUnZq.js +1 -0
  7. package/dist/assets/DeleteItemModal-BBYKOKsF.js +1 -0
  8. package/dist/assets/DisclaimerModal-CteySYvG.js +1 -0
  9. package/dist/assets/DriveSettingsModal-B18X9rkK.js +1 -0
  10. package/dist/assets/ExportDocumentWithErrorsModal-B7IfIoUE.js +1 -0
  11. package/dist/assets/SettingsModal-BrdAtrxz.js +1 -0
  12. package/dist/assets/UpgradeDriveModal-fqiiEuOr.js +1 -0
  13. package/dist/assets/common-8r_LaZs4.css +1 -0
  14. package/dist/assets/common-n2B-GsjO.js +1 -0
  15. package/dist/assets/config-CU-aFfVJ.js +1 -0
  16. package/dist/assets/design_system-CZfmC8Ij.js +45 -0
  17. package/dist/assets/design_system_connect-DHQbQvgv.js +53 -0
  18. package/dist/assets/document_drive-CP6paqKN.js +305 -0
  19. package/dist/assets/document_engineering-DojqH50p.js +1 -0
  20. package/dist/assets/document_model-DLxR7ZLO.js +230 -0
  21. package/dist/assets/document_model_editor-ButtI7kP.js +2 -0
  22. package/dist/assets/drive_explorer-IB_BS5Au.js +2 -0
  23. package/dist/assets/editor-CgH7LMsL.js +105 -0
  24. package/dist/assets/editor-ClAkqmdQ.js +1 -0
  25. package/dist/assets/graphql-BS4Brs_E.js +75 -0
  26. package/dist/assets/graphql_request-9RNJ00DB.js +3 -0
  27. package/dist/assets/hmr-LMNkvzP7.js +1 -0
  28. package/dist/assets/index-BSTajiPh.js +18 -0
  29. package/dist/assets/index-Br7E7qjt.css +1 -0
  30. package/dist/assets/reactor_browser-BbZdm6Aa.js +25 -0
  31. package/dist/assets/sentry_browser-BFJlXALZ.js +498 -0
  32. package/dist/assets/sentry_react-C4W8xEsl.js +3 -0
  33. package/dist/assets/virtual_ph_external-packages-CM1tCR4L.js +1 -0
  34. package/dist/assets/zod-C6yxFxyo.js +1 -0
  35. package/dist/index.html +17 -2
  36. package/heroku/config/nginx.conf.template +7 -18
  37. package/lib/package.copy.json +27 -57
  38. package/lib/src/components/analytics.js +1 -1
  39. package/lib/src/components/analytics.js.map +1 -1
  40. package/lib/src/components/app-loader.d.ts +1 -1
  41. package/lib/src/components/app-loader.d.ts.map +1 -1
  42. package/lib/src/components/app-loader.js +2 -5
  43. package/lib/src/components/app-loader.js.map +1 -1
  44. package/lib/src/components/app-skeleton.d.ts.map +1 -1
  45. package/lib/src/components/app-skeleton.js +1 -1
  46. package/lib/src/components/app-skeleton.js.map +1 -1
  47. package/lib/src/components/app.d.ts.map +1 -1
  48. package/lib/src/components/app.js +3 -4
  49. package/lib/src/components/app.js.map +1 -1
  50. package/lib/src/components/cookie-banner.d.ts.map +1 -1
  51. package/lib/src/components/cookie-banner.js +3 -4
  52. package/lib/src/components/cookie-banner.js.map +1 -1
  53. package/lib/src/components/document-editor-container.js +2 -2
  54. package/lib/src/components/document-editor-container.js.map +1 -1
  55. package/lib/src/components/drive-editor-container.js +2 -2
  56. package/lib/src/components/drive-editor-container.js.map +1 -1
  57. package/lib/src/components/editor-loader.d.ts +1 -1
  58. package/lib/src/components/editor-loader.d.ts.map +1 -1
  59. package/lib/src/components/editor-loader.js +1 -1
  60. package/lib/src/components/editor-loader.js.map +1 -1
  61. package/lib/src/components/editors.js +2 -2
  62. package/lib/src/components/editors.js.map +1 -1
  63. package/lib/src/components/footer.js +3 -2
  64. package/lib/src/components/footer.js.map +1 -1
  65. package/lib/src/components/index.d.ts +1 -2
  66. package/lib/src/components/index.d.ts.map +1 -1
  67. package/lib/src/components/index.js +1 -2
  68. package/lib/src/components/index.js.map +1 -1
  69. package/lib/src/components/login.js +1 -1
  70. package/lib/src/components/login.js.map +1 -1
  71. package/lib/src/components/modal/index.d.ts +17 -1
  72. package/lib/src/components/modal/index.d.ts.map +1 -1
  73. package/lib/src/components/modal/index.js +17 -1
  74. package/lib/src/components/modal/index.js.map +1 -1
  75. package/lib/src/components/modal/modals/AddDriveModal.d.ts.map +1 -1
  76. package/lib/src/components/modal/modals/AddDriveModal.js +2 -1
  77. package/lib/src/components/modal/modals/AddDriveModal.js.map +1 -1
  78. package/lib/src/components/modal/modals/ClearStorageModal.js +2 -2
  79. package/lib/src/components/modal/modals/ClearStorageModal.js.map +1 -1
  80. package/lib/src/components/modal/modals/CookiesPolicyModal.js +1 -1
  81. package/lib/src/components/modal/modals/CookiesPolicyModal.js.map +1 -1
  82. package/lib/src/components/modal/modals/CreateDocumentModal.js +1 -1
  83. package/lib/src/components/modal/modals/CreateDocumentModal.js.map +1 -1
  84. package/lib/src/components/modal/modals/DebugSettingsModal.d.ts.map +1 -1
  85. package/lib/src/components/modal/modals/DebugSettingsModal.js +3 -2
  86. package/lib/src/components/modal/modals/DebugSettingsModal.js.map +1 -1
  87. package/lib/src/components/modal/modals/DeleteDriveModal.d.ts.map +1 -1
  88. package/lib/src/components/modal/modals/DeleteDriveModal.js +2 -1
  89. package/lib/src/components/modal/modals/DeleteDriveModal.js.map +1 -1
  90. package/lib/src/components/modal/modals/DeleteItemModal.d.ts.map +1 -1
  91. package/lib/src/components/modal/modals/DeleteItemModal.js +2 -1
  92. package/lib/src/components/modal/modals/DeleteItemModal.js.map +1 -1
  93. package/lib/src/components/modal/modals/DisclaimerModal.js +1 -1
  94. package/lib/src/components/modal/modals/DisclaimerModal.js.map +1 -1
  95. package/lib/src/components/modal/modals/DriveSettingsModal.js +2 -2
  96. package/lib/src/components/modal/modals/DriveSettingsModal.js.map +1 -1
  97. package/lib/src/components/modal/modals/ExportDocumentWithErrorsModal.js +1 -1
  98. package/lib/src/components/modal/modals/ExportDocumentWithErrorsModal.js.map +1 -1
  99. package/lib/src/components/modal/modals/SettingsModal.d.ts.map +1 -1
  100. package/lib/src/components/modal/modals/SettingsModal.js +4 -6
  101. package/lib/src/components/modal/modals/SettingsModal.js.map +1 -1
  102. package/lib/src/components/modal/modals/UpgradeDriveModal.js +1 -1
  103. package/lib/src/components/modal/modals/UpgradeDriveModal.js.map +1 -1
  104. package/lib/src/components/modal/modals/settings/about.js +1 -1
  105. package/lib/src/components/modal/modals/settings/about.js.map +1 -1
  106. package/lib/src/components/modal/modals/settings/danger-zone.js +1 -1
  107. package/lib/src/components/modal/modals/settings/danger-zone.js.map +1 -1
  108. package/lib/src/components/modal/modals/settings/default-editor.js +1 -1
  109. package/lib/src/components/modal/modals/settings/default-editor.js.map +1 -1
  110. package/lib/src/components/modal/modals/settings/package-manager.d.ts +1 -1
  111. package/lib/src/components/modal/modals/settings/package-manager.d.ts.map +1 -1
  112. package/lib/src/components/modal/modals/settings/package-manager.js +4 -5
  113. package/lib/src/components/modal/modals/settings/package-manager.js.map +1 -1
  114. package/lib/src/components/ph-logo.js +1 -1
  115. package/lib/src/components/ph-logo.js.map +1 -1
  116. package/lib/src/components/reload-connect-toast.d.ts.map +1 -0
  117. package/lib/src/components/reload-connect-toast.js.map +1 -0
  118. package/lib/src/components/root.js +1 -1
  119. package/lib/src/components/root.js.map +1 -1
  120. package/lib/src/components/router.js +1 -1
  121. package/lib/src/components/router.js.map +1 -1
  122. package/lib/src/components/search-bar.d.ts.map +1 -1
  123. package/lib/src/components/search-bar.js +2 -1
  124. package/lib/src/components/search-bar.js.map +1 -1
  125. package/lib/src/components/sidebar.d.ts.map +1 -1
  126. package/lib/src/components/sidebar.js +3 -2
  127. package/lib/src/components/sidebar.js.map +1 -1
  128. package/lib/src/context/sentry-provider.js +1 -1
  129. package/lib/src/context/sentry-provider.js.map +1 -1
  130. package/lib/src/feature-flags.d.ts.map +1 -0
  131. package/lib/src/feature-flags.js.map +1 -0
  132. package/lib/src/globals.d.ts +1 -1
  133. package/lib/src/globals.d.ts.map +1 -1
  134. package/lib/src/hooks/useCheckLatestVersion.js +3 -3
  135. package/lib/src/hooks/useCheckLatestVersion.js.map +1 -1
  136. package/lib/src/index.d.ts +1 -8
  137. package/lib/src/index.d.ts.map +1 -1
  138. package/lib/src/index.js +1 -8
  139. package/lib/src/index.js.map +1 -1
  140. package/lib/src/main.js +1 -1
  141. package/lib/src/main.js.map +1 -1
  142. package/lib/src/pages/content.d.ts.map +1 -1
  143. package/lib/src/pages/content.js +2 -3
  144. package/lib/src/pages/content.js.map +1 -1
  145. package/lib/src/pages/index.d.ts +2 -1
  146. package/lib/src/pages/index.d.ts.map +1 -1
  147. package/lib/src/pages/index.js +2 -1
  148. package/lib/src/pages/index.js.map +1 -1
  149. package/lib/src/services/index.d.ts +6 -2
  150. package/lib/src/services/index.d.ts.map +1 -1
  151. package/lib/src/services/index.js +5 -2
  152. package/lib/src/services/index.js.map +1 -1
  153. package/lib/src/services/toast.d.ts +2 -2
  154. package/lib/src/services/toast.d.ts.map +1 -1
  155. package/lib/src/services/toast.js +1 -1
  156. package/lib/src/services/toast.js.map +1 -1
  157. package/lib/src/store/document-model.d.ts.map +1 -1
  158. package/lib/src/store/document-model.js +3 -3
  159. package/lib/src/store/document-model.js.map +1 -1
  160. package/lib/src/store/editor.d.ts +2 -2
  161. package/lib/src/store/editor.d.ts.map +1 -1
  162. package/lib/src/store/editor.js +6 -6
  163. package/lib/src/store/editor.js.map +1 -1
  164. package/lib/src/store/reactor.d.ts.map +1 -1
  165. package/lib/src/store/reactor.js +6 -21
  166. package/lib/src/store/reactor.js.map +1 -1
  167. package/lib/src/utils/drive-sections.d.ts +1 -1
  168. package/lib/src/utils/drive-sections.d.ts.map +1 -1
  169. package/lib/src/utils/drive-sections.js +1 -1
  170. package/lib/src/utils/drive-sections.js.map +1 -1
  171. package/lib/tsconfig.tsbuildinfo +1 -1
  172. package/lib/vite.config.d.ts.map +1 -1
  173. package/lib/vite.config.js +23 -0
  174. package/lib/vite.config.js.map +1 -1
  175. package/package.copy.json +27 -57
  176. package/package.json +34 -64
  177. package/dist/assets/AddDriveModal-CtZf_obp.js +0 -248
  178. package/dist/assets/AddDriveModal-CtZf_obp.js.map +0 -1
  179. package/dist/assets/ClearStorageModal-C2hbvDkF.js +0 -46
  180. package/dist/assets/ClearStorageModal-C2hbvDkF.js.map +0 -1
  181. package/dist/assets/CookiesPolicyModal-Cd7uBIEB.js +0 -34
  182. package/dist/assets/CookiesPolicyModal-Cd7uBIEB.js.map +0 -1
  183. package/dist/assets/CreateDocumentModal-Dgkc55q6.js +0 -69
  184. package/dist/assets/CreateDocumentModal-Dgkc55q6.js.map +0 -1
  185. package/dist/assets/DebugSettingsModal-CPmyP1YW.js +0 -5134
  186. package/dist/assets/DebugSettingsModal-CPmyP1YW.js.map +0 -1
  187. package/dist/assets/DeleteDriveModal-apg0MYPC.js +0 -55
  188. package/dist/assets/DeleteDriveModal-apg0MYPC.js.map +0 -1
  189. package/dist/assets/DeleteItemModal-D-z5CndZ.js +0 -47
  190. package/dist/assets/DeleteItemModal-D-z5CndZ.js.map +0 -1
  191. package/dist/assets/DisclaimerModal-B1Jtt1cj.js +0 -21
  192. package/dist/assets/DisclaimerModal-B1Jtt1cj.js.map +0 -1
  193. package/dist/assets/DriveSettingsModal-CnXO-QWT.js +0 -103
  194. package/dist/assets/DriveSettingsModal-CnXO-QWT.js.map +0 -1
  195. package/dist/assets/ExportDocumentWithErrorsModal-HI8wR1ha.js +0 -44
  196. package/dist/assets/ExportDocumentWithErrorsModal-HI8wR1ha.js.map +0 -1
  197. package/dist/assets/SettingsModal-W6c3EI1V.js +0 -1723
  198. package/dist/assets/SettingsModal-W6c3EI1V.js.map +0 -1
  199. package/dist/assets/UpgradeDriveModal-CzMEFvzJ.js +0 -40
  200. package/dist/assets/UpgradeDriveModal-CzMEFvzJ.js.map +0 -1
  201. package/dist/assets/ccip-kd0oo78s.js +0 -168
  202. package/dist/assets/ccip-kd0oo78s.js.map +0 -1
  203. package/dist/assets/confirmation-modal-BRCSDFfA.js +0 -16
  204. package/dist/assets/confirmation-modal-BRCSDFfA.js.map +0 -1
  205. package/dist/assets/disclosure-Cdsd0yEm.js +0 -9
  206. package/dist/assets/disclosure-Cdsd0yEm.js.map +0 -1
  207. package/dist/assets/drive-by-id-Dtyl2hjB.js +0 -14
  208. package/dist/assets/drive-by-id-Dtyl2hjB.js.map +0 -1
  209. package/dist/assets/dropdown-menu-BJNDsW2h.js +0 -1026
  210. package/dist/assets/dropdown-menu-BJNDsW2h.js.map +0 -1
  211. package/dist/assets/editor-BNCF82f5.js +0 -47585
  212. package/dist/assets/editor-BNCF82f5.js.map +0 -1
  213. package/dist/assets/editor-DLJCk_iy.js +0 -416
  214. package/dist/assets/editor-DLJCk_iy.js.map +0 -1
  215. package/dist/assets/form-input-CPnbINdu.js +0 -11
  216. package/dist/assets/form-input-CPnbINdu.js.map +0 -1
  217. package/dist/assets/hmr-DO4QUuY_.js +0 -5
  218. package/dist/assets/hmr-DO4QUuY_.js.map +0 -1
  219. package/dist/assets/hoist-non-react-statics.cjs-Dz4HIRQF.js +0 -224
  220. package/dist/assets/hoist-non-react-statics.cjs-Dz4HIRQF.js.map +0 -1
  221. package/dist/assets/index-7h14d2-k.js +0 -45
  222. package/dist/assets/index-7h14d2-k.js.map +0 -1
  223. package/dist/assets/index-CtewK_c6.js +0 -183
  224. package/dist/assets/index-CtewK_c6.js.map +0 -1
  225. package/dist/assets/index-DK-Td17X.js +0 -92921
  226. package/dist/assets/index-DK-Td17X.js.map +0 -1
  227. package/dist/assets/index-DOrl22sv.css +0 -6263
  228. package/dist/assets/index-DXMjnAPx.js +0 -285
  229. package/dist/assets/index-DXMjnAPx.js.map +0 -1
  230. package/dist/assets/index-PvEUoqAt.js +0 -25570
  231. package/dist/assets/index-PvEUoqAt.js.map +0 -1
  232. package/dist/assets/index.esm-BTzn889G.js +0 -1801
  233. package/dist/assets/index.esm-BTzn889G.js.map +0 -1
  234. package/dist/assets/options-Bqnui46O.js +0 -81
  235. package/dist/assets/options-Bqnui46O.js.map +0 -1
  236. package/dist/assets/read-required-modal-DyeA1PS1.js +0 -44
  237. package/dist/assets/read-required-modal-DyeA1PS1.js.map +0 -1
  238. package/dist/assets/toggle-BeBMssLx.js +0 -33
  239. package/dist/assets/toggle-BeBMssLx.js.map +0 -1
  240. package/dist/assets/virtual_ph_external-packages-DawtJ3DU.js +0 -8
  241. package/dist/assets/virtual_ph_external-packages-DawtJ3DU.js.map +0 -1
  242. package/lib/feature-flags.d.ts.map +0 -1
  243. package/lib/feature-flags.js.map +0 -1
  244. package/lib/src/components/modal/modals/settings/index.d.ts +0 -5
  245. package/lib/src/components/modal/modals/settings/index.d.ts.map +0 -1
  246. package/lib/src/components/modal/modals/settings/index.js +0 -5
  247. package/lib/src/components/modal/modals/settings/index.js.map +0 -1
  248. package/lib/src/components/toast/index.d.ts +0 -2
  249. package/lib/src/components/toast/index.d.ts.map +0 -1
  250. package/lib/src/components/toast/index.js +0 -2
  251. package/lib/src/components/toast/index.js.map +0 -1
  252. package/lib/src/components/toast/reload-connect-toast.d.ts.map +0 -1
  253. package/lib/src/components/toast/reload-connect-toast.js.map +0 -1
  254. package/lib/src/pages/demo/index.d.ts +0 -2
  255. package/lib/src/pages/demo/index.d.ts.map +0 -1
  256. package/lib/src/pages/demo/index.js +0 -2
  257. package/lib/src/pages/demo/index.js.map +0 -1
  258. package/lib/src/services/renown/index.d.ts +0 -4
  259. package/lib/src/services/renown/index.d.ts.map +0 -1
  260. package/lib/src/services/renown/index.js +0 -4
  261. package/lib/src/services/renown/index.js.map +0 -1
  262. package/lib/src/services/storage/index.d.ts +0 -4
  263. package/lib/src/services/storage/index.d.ts.map +0 -1
  264. package/lib/src/services/storage/index.js +0 -4
  265. package/lib/src/services/storage/index.js.map +0 -1
  266. /package/lib/src/components/{toast/reload-connect-toast.d.ts → reload-connect-toast.d.ts} +0 -0
  267. /package/lib/src/components/{toast/reload-connect-toast.js → reload-connect-toast.js} +0 -0
  268. /package/lib/{feature-flags.d.ts → src/feature-flags.d.ts} +0 -0
  269. /package/lib/{feature-flags.js → src/feature-flags.js} +0 -0
@@ -1,416 +0,0 @@
1
- import { eG as useNodesInSelectedDrive, x as useSelectedFolder, eH as sortNodesByName, eI as useSelectedNode, b as useUser, eJ as useAllowList, w as useSelectedDriveSafe, Q as useSelectedDriveId, r as reactExports, j as jsxRuntimeExports, s as setSelectedDrive, p as setSelectedNode, I as Icon, eK as addFolder, at as getDriveSharingType, eL as useNodeActions, eM as getSyncStatusSync, t as twMerge, eN as showDeleteNodeModal, eO as useDrop, eP as useOnClickOutside, eQ as useEventListener, eR as useDocumentModelModules, P as PowerhouseButton, eS as showCreateDocumentModal, eT as isFileNodeKind, eU as useVirtualizer, R as React, eV as isFolderNodeKind, a5 as cn, eW as useSetPHDriveEditorConfig } from "./index-DK-Td17X.js";
2
- import { n as nodeOptionsMap, d as defaultNodeOptions } from "./options-Bqnui46O.js";
3
- import { C as ConnectDropdownMenu } from "./dropdown-menu-BJNDsW2h.js";
4
- import "./index-DXMjnAPx.js";
5
- function useNodesInSelectedDriveOrFolder() {
6
- const nodes = useNodesInSelectedDrive();
7
- const selectedFolder = useSelectedFolder();
8
- const selectedFolderId = selectedFolder?.id;
9
- if (!nodes)
10
- return [];
11
- if (!selectedFolderId)
12
- return sortNodesByName(nodes.filter((n) => !n.parentFolder));
13
- return sortNodesByName(nodes.filter((n) => n.parentFolder === selectedFolderId));
14
- }
15
- function useNodePathById(id) {
16
- const nodes = useNodesInSelectedDrive();
17
- if (!nodes)
18
- return [];
19
- const path = [];
20
- let current = nodes.find((n) => n.id === id);
21
- while (current) {
22
- path.push(current);
23
- if (!current.parentFolder)
24
- break;
25
- current = nodes.find((n) => n.id === current?.parentFolder);
26
- }
27
- return path.reverse();
28
- }
29
- function useSelectedNodePath() {
30
- const selectedNode = useSelectedNode();
31
- return useNodePathById(selectedNode?.id);
32
- }
33
- function useUserPermissions() {
34
- const user = useUser();
35
- const allowList = useAllowList();
36
- if (!allowList) {
37
- return {
38
- isAllowedToCreateDocuments: true,
39
- isAllowedToEditDocuments: true
40
- };
41
- }
42
- return {
43
- isAllowedToCreateDocuments: allowList.includes(user?.address ?? ""),
44
- isAllowedToEditDocuments: allowList.includes(user?.address ?? "")
45
- };
46
- }
47
- function Breadcrumbs() {
48
- const { isAllowedToCreateDocuments } = useUserPermissions();
49
- const [selectedDrive] = useSelectedDriveSafe();
50
- const selectedDriveId = useSelectedDriveId();
51
- const selectedNodePath = useSelectedNodePath();
52
- const [isCreating, setIsCreating] = reactExports.useState(false);
53
- function onAddNew() {
54
- setIsCreating(true);
55
- }
56
- function onSubmit(name) {
57
- if (!isAllowedToCreateDocuments || !selectedDriveId)
58
- return;
59
- addFolder(selectedDriveId, name, selectedNodePath.at(-1)?.id).then((node) => {
60
- setSelectedNode(node);
61
- }).catch((error) => {
62
- console.error(error);
63
- }).finally(() => {
64
- setIsCreating(false);
65
- });
66
- }
67
- function onCancel() {
68
- setIsCreating(false);
69
- }
70
- const hasSelectedDrive = !!selectedDrive;
71
- const hasNodePath = !!selectedNodePath.length;
72
- return jsxRuntimeExports.jsxs("div", { className: "flex h-9 flex-row items-center gap-2 p-6 text-gray-500", children: [hasSelectedDrive && jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment, { children: [jsxRuntimeExports.jsx(Breadcrumb, { name: selectedDrive.state.global.name, onClick: () => setSelectedDrive(selectedDrive) }), jsxRuntimeExports.jsx("span", { children: "/" })] }), hasNodePath && selectedNodePath.map((node) => jsxRuntimeExports.jsxs(reactExports.Fragment, { children: [jsxRuntimeExports.jsx(Breadcrumb, { name: node.name, onClick: () => setSelectedNode(node) }), jsxRuntimeExports.jsx("span", { children: "/" })] }, node.id)), isAllowedToCreateDocuments && (isCreating ? jsxRuntimeExports.jsx(NodeInput, { className: "text-gray-800", defaultValue: "New Folder", onCancel, onSubmit, placeholder: "New Folder" }) : jsxRuntimeExports.jsxs("button", { type: "button", className: "ml-1 flex items-center justify-center gap-2 rounded-md bg-gray-50 px-2 py-1.5 transition-colors hover:bg-gray-200 hover:text-gray-800", onClick: onAddNew, children: [jsxRuntimeExports.jsx(Icon, { name: "Plus", size: 14 }), "Add new"] }))] });
73
- }
74
- function Breadcrumb(props) {
75
- const { name, onClick } = props;
76
- return jsxRuntimeExports.jsx("div", { className: "transition-colors last-of-type:text-gray-800 hover:text-gray-800", onClick, role: "button", children: name });
77
- }
78
- function FileItem(props) {
79
- const { fileNode, className, customDocumentIconSrc } = props;
80
- const [mode, setMode] = reactExports.useState("READ");
81
- const [isDropdownMenuOpen, setIsDropdownMenuOpen] = reactExports.useState(false);
82
- const [selectedDrive] = useSelectedDriveSafe();
83
- const sharingType = selectedDrive ? getDriveSharingType(selectedDrive) : "LOCAL";
84
- const { dragProps } = useDrag({ node: fileNode });
85
- const { isAllowedToCreateDocuments } = useUserPermissions();
86
- const { onRenameNode, onDuplicateNode } = useNodeActions();
87
- const isReadMode = mode === "READ";
88
- const syncStatus = getSyncStatusSync(fileNode.id, sharingType);
89
- const dropdownMenuHandlers = {
90
- DUPLICATE: () => onDuplicateNode(fileNode),
91
- RENAME: () => setMode("WRITE"),
92
- DELETE: () => showDeleteNodeModal(fileNode)
93
- };
94
- const dropdownMenuOptions = Object.entries(nodeOptionsMap).map(([id, option]) => ({
95
- ...option,
96
- id
97
- })).filter((option) => defaultNodeOptions.includes(option.id));
98
- function onSubmit(name) {
99
- onRenameNode(name, fileNode).catch((error) => {
100
- console.error(error);
101
- }).finally(() => {
102
- setMode("READ");
103
- });
104
- }
105
- function onCancel() {
106
- setMode("READ");
107
- }
108
- function onDropdownMenuOptionClick(itemId) {
109
- const handler = dropdownMenuHandlers[itemId];
110
- if (!handler) {
111
- console.error(`No handler found for dropdown menu item: ${itemId}`);
112
- return;
113
- }
114
- handler();
115
- setIsDropdownMenuOpen(false);
116
- }
117
- const iconSrc = getDocumentIconSrc(fileNode.documentType, customDocumentIconSrc);
118
- const iconNode = jsxRuntimeExports.jsxs("div", { className: "relative", children: [jsxRuntimeExports.jsx("img", { alt: "file icon", className: "max-w-none", height: 34, src: iconSrc, width: 32 }), isReadMode && syncStatus && jsxRuntimeExports.jsx("div", { className: "absolute bottom-[-2px] right-0 size-3 rounded-full bg-white", children: jsxRuntimeExports.jsx("div", { className: "absolute left-[-2px] top-[-2px]", children: jsxRuntimeExports.jsx(SyncStatusIcon, { overrideSyncIcons: { SUCCESS: "CheckCircleFill" }, syncStatus }) }) })] });
119
- const containerStyles = twMerge("group flex h-12 cursor-pointer select-none items-center rounded-lg bg-gray-200 px-2 text-gray-600 hover:text-gray-800", className);
120
- const content = isReadMode ? jsxRuntimeExports.jsxs("div", { className: "flex w-52 items-center justify-between", children: [jsxRuntimeExports.jsxs("div", { className: "mr-2 truncate group-hover:mr-0", children: [jsxRuntimeExports.jsx("div", { className: "max-h-6 truncate text-sm font-medium group-hover:text-gray-800", children: fileNode.name }), jsxRuntimeExports.jsx("div", { className: "max-h-6 truncate text-xs font-medium text-gray-600 group-hover:text-gray-800", children: fileNode.documentType })] }), isAllowedToCreateDocuments ? jsxRuntimeExports.jsx(ConnectDropdownMenu, { items: dropdownMenuOptions, onItemClick: onDropdownMenuOptionClick, onOpenChange: setIsDropdownMenuOpen, open: isDropdownMenuOpen, children: jsxRuntimeExports.jsx("button", { className: twMerge("hidden group-hover:block", isDropdownMenuOpen && "block"), onClick: (e) => {
121
- e.stopPropagation();
122
- setIsDropdownMenuOpen(true);
123
- }, children: jsxRuntimeExports.jsx(Icon, { className: "text-gray-600", name: "VerticalDots" }) }) }) : null] }) : jsxRuntimeExports.jsx(NodeInput, { className: "ml-3 flex-1 font-medium", defaultValue: fileNode.name, onCancel, onSubmit });
124
- return jsxRuntimeExports.jsx("div", { className: "relative w-64", onClick: () => setSelectedNode(fileNode), children: jsxRuntimeExports.jsx("div", { ...dragProps, className: containerStyles, children: jsxRuntimeExports.jsxs("div", { className: "flex items-center", children: [jsxRuntimeExports.jsx("div", { className: "mr-1.5", children: iconNode }), content] }) }) });
125
- }
126
- function FolderItem(props) {
127
- const { folderNode, className } = props;
128
- const { isAllowedToCreateDocuments } = useUserPermissions();
129
- const [mode, setMode] = reactExports.useState("READ");
130
- const [isDropdownMenuOpen, setIsDropdownMenuOpen] = reactExports.useState(false);
131
- const [selectedDrive] = useSelectedDriveSafe();
132
- const sharingType = selectedDrive ? getDriveSharingType(selectedDrive) : "LOCAL";
133
- const { dragProps } = useDrag({ node: folderNode });
134
- const { onRenameNode, onDuplicateNode } = useNodeActions();
135
- const { isDropTarget, dropProps } = useDrop({
136
- target: folderNode
137
- });
138
- const isReadMode = mode === "READ";
139
- const syncStatus = getSyncStatusSync(folderNode.id, sharingType);
140
- function onCancel() {
141
- setMode("READ");
142
- }
143
- function onSubmit(name) {
144
- onRenameNode(name, folderNode).catch((error) => {
145
- console.error(error);
146
- }).finally(() => {
147
- setMode("READ");
148
- });
149
- }
150
- const dropdownMenuHandlers = {
151
- DUPLICATE: () => onDuplicateNode(folderNode),
152
- RENAME: () => setMode("WRITE"),
153
- DELETE: () => showDeleteNodeModal(folderNode)
154
- };
155
- const dropdownMenuOptions = Object.entries(nodeOptionsMap).map(([id, option]) => ({
156
- ...option,
157
- id
158
- })).filter((option) => defaultNodeOptions.includes(option.id));
159
- function onDropdownMenuOptionClick(itemId) {
160
- const handler = dropdownMenuHandlers[itemId];
161
- if (!handler) {
162
- console.error(`No handler found for dropdown menu item: ${itemId}`);
163
- return;
164
- }
165
- handler();
166
- setIsDropdownMenuOpen(false);
167
- }
168
- const content = isReadMode || !isAllowedToCreateDocuments ? jsxRuntimeExports.jsx("div", { className: "ml-3 max-h-6 truncate font-medium text-gray-600 group-hover:text-gray-800", children: folderNode.name }) : jsxRuntimeExports.jsx(NodeInput, { className: "ml-3 font-medium", defaultValue: folderNode.name, onCancel, onSubmit });
169
- const containerStyles = twMerge("group flex h-12 cursor-pointer select-none items-center rounded-lg bg-gray-200 px-2", className, isDropTarget && "bg-blue-100");
170
- return jsxRuntimeExports.jsx("div", { className: "relative w-64", onClick: () => setSelectedNode(folderNode), children: jsxRuntimeExports.jsxs("div", { ...dragProps, ...dropProps, className: containerStyles, children: [jsxRuntimeExports.jsxs("div", { className: "flex items-center overflow-hidden", children: [jsxRuntimeExports.jsx("div", { className: "p-1", children: jsxRuntimeExports.jsxs("div", { className: "relative", children: [jsxRuntimeExports.jsx(Icon, { name: "FolderClose", size: 24 }), isReadMode && syncStatus ? jsxRuntimeExports.jsx("div", { className: "absolute bottom-[-3px] right-[-2px] size-3 rounded-full bg-white", children: jsxRuntimeExports.jsx("div", { className: "absolute left-[-2px] top-[-2px]", children: jsxRuntimeExports.jsx(SyncStatusIcon, { overrideSyncIcons: {
171
- SUCCESS: "CheckCircleFill"
172
- }, syncStatus }) }) }) : null] }) }), content] }), isReadMode && isAllowedToCreateDocuments ? jsxRuntimeExports.jsx(ConnectDropdownMenu, { items: dropdownMenuOptions, onItemClick: onDropdownMenuOptionClick, onOpenChange: setIsDropdownMenuOpen, open: isDropdownMenuOpen, children: jsxRuntimeExports.jsx("button", { className: twMerge("ml-auto hidden group-hover:block", isDropdownMenuOpen && "block"), onClick: (e) => {
173
- e.stopPropagation();
174
- setIsDropdownMenuOpen(true);
175
- }, children: jsxRuntimeExports.jsx(Icon, { className: "text-gray-600", name: "VerticalDots" }) }) }) : null] }) });
176
- }
177
- function NodeInput(props) {
178
- const { onSubmit, onCancel, defaultValue, className, minLength = 1, ...inputProps } = props;
179
- const [value, setValue] = reactExports.useState(defaultValue ?? "");
180
- const ref = reactExports.useRef(null);
181
- useOnClickOutside(ref, handleSubmit);
182
- useEventListener("keyup", (e) => {
183
- if (e.key === "Enter") {
184
- handleSubmit();
185
- }
186
- if (e.key === "Escape") {
187
- onCancel();
188
- }
189
- });
190
- reactExports.useLayoutEffect(() => {
191
- setTimeout(() => {
192
- ref.current?.focus();
193
- ref.current?.select();
194
- ref.current?.scroll({ left: 9999 });
195
- }, 100);
196
- }, []);
197
- function handleSubmit() {
198
- if (value.length >= minLength) {
199
- onSubmit(value);
200
- }
201
- }
202
- return jsxRuntimeExports.jsx("input", { ...inputProps, autoFocus: true, className: twMerge("bg-inherit text-inherit outline-none", className), minLength, onChange: (e) => setValue(e.target.value), ref, required: true, type: "text", value });
203
- }
204
- const syncIcons = {
205
- SYNCING: "Syncing",
206
- SUCCESS: "Synced",
207
- CONFLICT: "Error",
208
- MISSING: "Circle",
209
- ERROR: "Error",
210
- INITIAL_SYNC: "Syncing"
211
- };
212
- function SyncStatusIcon(props) {
213
- const { syncStatus, className, overrideSyncIcons = {}, ...iconProps } = props;
214
- const icons = { ...syncIcons, ...overrideSyncIcons };
215
- const syncStatusIcons = {
216
- [INITIAL_SYNC]: jsxRuntimeExports.jsx(Icon, { size: 16, ...iconProps, className: twMerge("text-blue-900", className), name: icons[INITIAL_SYNC] }),
217
- [SYNCING]: jsxRuntimeExports.jsx(Icon, { size: 16, ...iconProps, className: twMerge("text-blue-900", className), name: icons[SYNCING] }),
218
- [SUCCESS]: jsxRuntimeExports.jsx(Icon, { size: 16, ...iconProps, className: twMerge("text-green-900", className), name: icons[SUCCESS] }),
219
- [CONFLICT]: jsxRuntimeExports.jsx(Icon, { size: 16, ...iconProps, className: twMerge("text-orange-900", className), name: icons[CONFLICT] }),
220
- [MISSING]: jsxRuntimeExports.jsx(Icon, { size: 16, ...iconProps, className: twMerge("text-red-900", className), name: icons[MISSING] }),
221
- [ERROR]: jsxRuntimeExports.jsx(Icon, { size: 16, ...iconProps, className: twMerge("text-red-900", className), name: icons[ERROR] })
222
- };
223
- return syncStatusIcons[syncStatus];
224
- }
225
- const BUDGET = "powerhouse/budget-statement";
226
- const DEFAULT = "powerhouse/default";
227
- const MAKERDAO_RWA_PORTFOLIO = "makerdao/rwa-portfolio";
228
- const documentTypes = [BUDGET, DEFAULT, MAKERDAO_RWA_PORTFOLIO];
229
- const BudgetStatementImg = "data:image/png;base64,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";
230
- const MakerdaoRWAPortfolioImg = "/assets/rwa-report-Bb0W5-ac.png";
231
- const DefaultImg = "data:image/png;base64,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";
232
- const iconMap = {
233
- [BUDGET]: BudgetStatementImg,
234
- [DEFAULT]: DefaultImg,
235
- [MAKERDAO_RWA_PORTFOLIO]: MakerdaoRWAPortfolioImg
236
- };
237
- const SYNCING = "SYNCING";
238
- const SUCCESS = "SUCCESS";
239
- const CONFLICT = "CONFLICT";
240
- const MISSING = "MISSING";
241
- const ERROR = "ERROR";
242
- const INITIAL_SYNC = "INITIAL_SYNC";
243
- function useDrag(props) {
244
- const { node } = props;
245
- const [isDragging, setIsDragging] = reactExports.useState(false);
246
- const onDragStart = reactExports.useCallback((event) => {
247
- event.dataTransfer.setData("UI_NODE", JSON.stringify(node));
248
- }, [node]);
249
- const onDragEnd = reactExports.useCallback(() => {
250
- setIsDragging(false);
251
- }, []);
252
- return reactExports.useMemo(() => {
253
- return {
254
- isDragging,
255
- dragProps: {
256
- draggable: true,
257
- onDragStart,
258
- onDragEnd
259
- }
260
- };
261
- }, [isDragging, onDragEnd, onDragStart]);
262
- }
263
- function getDocumentIconSrc(documentType, customDocumentIconSrc) {
264
- if (customDocumentIconSrc) {
265
- return customDocumentIconSrc;
266
- }
267
- if (documentTypes.includes(documentType)) {
268
- return iconMap[documentType];
269
- }
270
- return iconMap[DEFAULT];
271
- }
272
- const useWindowSize = () => {
273
- const [windowSize, setWindowSize] = reactExports.useState({
274
- innerWidth: window.innerWidth,
275
- innerHeight: window.innerHeight
276
- });
277
- reactExports.useEffect(() => {
278
- const windowSizeHandler = () => {
279
- setWindowSize({
280
- innerWidth: window.innerWidth,
281
- innerHeight: window.innerHeight
282
- });
283
- };
284
- window.addEventListener("resize", windowSizeHandler);
285
- return () => {
286
- window.removeEventListener("resize", windowSizeHandler);
287
- };
288
- }, []);
289
- return windowSize;
290
- };
291
- function getDocumentSpec(doc) {
292
- return doc.documentModel.global;
293
- }
294
- function CreateDocument() {
295
- const { isAllowedToCreateDocuments } = useUserPermissions();
296
- const documentModelModules = useDocumentModelModules();
297
- const nonDriveDocumentModelModules = documentModelModules?.filter((module) => module.documentModel.global.id !== "powerhouse/document-drive");
298
- if (!isAllowedToCreateDocuments)
299
- return null;
300
- return jsxRuntimeExports.jsxs("div", { className: "px-6 py-4", children: [jsxRuntimeExports.jsx("h3", { className: "mb-3 text-xl font-bold text-gray-600", children: "New document" }), jsxRuntimeExports.jsx("div", { className: "flex w-full flex-wrap gap-4", children: nonDriveDocumentModelModules?.map((doc) => {
301
- const spec = getDocumentSpec(doc);
302
- return jsxRuntimeExports.jsx(PowerhouseButton, { color: "light", title: spec.name, "aria-description": spec.description, onClick: () => showCreateDocumentModal(spec.id), children: jsxRuntimeExports.jsx("span", { className: "text-sm", children: spec.name }) }, spec.id);
303
- }) })] });
304
- }
305
- const GAP = 8;
306
- const ITEM_WIDTH = 256;
307
- const ITEM_HEIGHT = 48;
308
- const USED_SPACE = 420;
309
- function FileContentView() {
310
- const parentRef = reactExports.useRef(null);
311
- const windowSize = useWindowSize();
312
- const availableWidth = windowSize.innerWidth - USED_SPACE;
313
- const nodes = useNodesInSelectedDriveOrFolder();
314
- const fileNodes = nodes.filter((n) => isFileNodeKind(n));
315
- const columnCount = Math.floor(availableWidth / (ITEM_WIDTH + GAP)) || 1;
316
- const rowCount = Math.ceil(fileNodes.length / columnCount);
317
- const rowVirtualizer = useVirtualizer({
318
- count: rowCount,
319
- getScrollElement: () => parentRef.current,
320
- estimateSize: (index) => {
321
- if (index > 0) {
322
- return ITEM_HEIGHT + GAP;
323
- }
324
- return ITEM_HEIGHT;
325
- },
326
- overscan: 5
327
- });
328
- const columnVirtualizer = useVirtualizer({
329
- horizontal: true,
330
- count: columnCount,
331
- getScrollElement: () => parentRef.current,
332
- estimateSize: (index) => {
333
- if (index > 0) {
334
- return ITEM_WIDTH + GAP;
335
- }
336
- return ITEM_WIDTH;
337
- },
338
- overscan: 5
339
- });
340
- const getItemIndex = (rowIndex, columnIndex) => rowIndex * columnCount + columnIndex;
341
- const getItem = (rowIndex, columnIndex) => {
342
- const index = getItemIndex(rowIndex, columnIndex);
343
- return fileNodes[index] || null;
344
- };
345
- if (fileNodes.length === 0) {
346
- return jsxRuntimeExports.jsx("div", { className: "mb-8 text-sm text-gray-400", children: "No documents or files 📄" });
347
- }
348
- const renderItem = (rowIndex, columnIndex) => {
349
- const fileNode = getItem(rowIndex, columnIndex);
350
- if (!fileNode) {
351
- return null;
352
- }
353
- return jsxRuntimeExports.jsx("div", { style: {
354
- marginLeft: columnIndex === 0 ? 0 : GAP
355
- }, children: jsxRuntimeExports.jsx(FileItem, { fileNode }, fileNode.id) });
356
- };
357
- return jsxRuntimeExports.jsx("div", { ref: parentRef, style: {
358
- width: `100%`,
359
- overflow: "auto"
360
- }, children: jsxRuntimeExports.jsx("div", { style: {
361
- height: `${rowVirtualizer.getTotalSize()}px`,
362
- width: `${columnVirtualizer.getTotalSize()}px`,
363
- position: "relative"
364
- }, children: rowVirtualizer.getVirtualItems().map((virtualRow) => jsxRuntimeExports.jsx(React.Fragment, { children: columnVirtualizer.getVirtualItems().map((virtualColumn) => jsxRuntimeExports.jsx("div", { style: {
365
- position: "absolute",
366
- top: 0,
367
- left: 0,
368
- marginTop: virtualRow.index === 0 ? 0 : GAP,
369
- width: `${virtualColumn.size}px`,
370
- height: `${virtualRow.size}px`,
371
- transform: `translateX(${virtualColumn.start}px) translateY(${virtualRow.start}px)`
372
- }, children: renderItem(virtualRow.index, virtualColumn.index) }, virtualColumn.key)) }, virtualRow.key)) }) });
373
- }
374
- function FolderView(props) {
375
- const { className } = props;
376
- const nodes = useNodesInSelectedDriveOrFolder();
377
- const selectedFolder = useSelectedFolder();
378
- const folderNodes = nodes.filter((n) => isFolderNodeKind(n));
379
- const { isDropTarget, dropProps } = useDrop({
380
- target: selectedFolder
381
- });
382
- return jsxRuntimeExports.jsxs("div", { className: twMerge("rounded-md border-2 border-transparent p-2", isDropTarget && "border-dashed border-blue-100", className), ...dropProps, children: [jsxRuntimeExports.jsx(DriveLayout.ContentSection, { title: "Folders", className: "mb-4", children: folderNodes.length > 0 ? folderNodes.map((folderNode) => jsxRuntimeExports.jsx(FolderItem, { folderNode }, folderNode.id)) : jsxRuntimeExports.jsx("div", { className: "mb-8 text-sm text-gray-400", children: "No documents or files 📄" }) }), jsxRuntimeExports.jsx(DriveLayout.ContentSection, { title: "Documents and files", children: jsxRuntimeExports.jsx("div", { className: "w-full", children: jsxRuntimeExports.jsx(FileContentView, {}) }) })] });
383
- }
384
- function DriveLayout({ children, className, ...props }) {
385
- return jsxRuntimeExports.jsx(DriveLayout.Container, { className, ...props, children });
386
- }
387
- DriveLayout.Container = function DriveLayoutContainer({ children, className, containerProps, ...props }) {
388
- return jsxRuntimeExports.jsx("div", { className: cn("flex grow flex-col overflow-auto rounded-2xl bg-gray-50 p-2", className), ...containerProps, ...props, children });
389
- };
390
- DriveLayout.Header = function DriveLayoutHeader({ children, className, containerProps, ...props }) {
391
- return jsxRuntimeExports.jsx("div", { className: cn("flex-0", className), ...containerProps, ...props, children });
392
- };
393
- DriveLayout.Content = function DriveLayoutContent({ children, className, containerProps, ...props }) {
394
- return jsxRuntimeExports.jsx("div", { className: cn("mb-5 flex-1 px-4", className), ...containerProps, ...props, children });
395
- };
396
- DriveLayout.ContentSection = function DriveLayoutContentSection({ title, children, className, containerProps, ...props }) {
397
- return jsxRuntimeExports.jsxs("div", { className: cn(className), ...containerProps, ...props, children: [title && jsxRuntimeExports.jsx("div", { className: "mb-4 text-base font-semibold text-gray-600", children: title }), jsxRuntimeExports.jsx("div", { className: "flex flex-wrap gap-2", children })] });
398
- };
399
- DriveLayout.Footer = function DriveLayoutFooter({ children, className, containerProps, ...props }) {
400
- return jsxRuntimeExports.jsx("div", { className: cn("flex-0", className), ...containerProps, ...props, children });
401
- };
402
- const editorConfig = {
403
- allowedDocumentTypes: [],
404
- isDragAndDropEnabled: true
405
- };
406
- function Editor(props) {
407
- useSetPHDriveEditorConfig(editorConfig);
408
- const { className, children } = props;
409
- const { isDropTarget, dropProps } = useDrop();
410
- const showDocumentEditor = !!children;
411
- return jsxRuntimeExports.jsxs(DriveLayout, { className, children: [!showDocumentEditor && jsxRuntimeExports.jsx(DriveLayout.Header, { children: jsxRuntimeExports.jsx(Breadcrumbs, {}) }), showDocumentEditor ? children : jsxRuntimeExports.jsx(DriveLayout.Content, { ...dropProps, className: isDropTarget ? "rounded-xl bg-blue-100" : "", children: jsxRuntimeExports.jsx(FolderView, {}) }), !showDocumentEditor && jsxRuntimeExports.jsx(DriveLayout.Footer, { children: jsxRuntimeExports.jsx(CreateDocument, {}) })] });
412
- }
413
- export {
414
- Editor as default
415
- };
416
- //# sourceMappingURL=editor-DLJCk_iy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"editor-DLJCk_iy.js","sources":["../../../../packages/reactor-browser/dist/src/hooks/child-nodes.js","../../../../packages/reactor-browser/dist/src/hooks/node-path.js","../../../../packages/reactor-browser/dist/src/hooks/user-permissions.js","../../../../packages/design-system/dist/src/connect/components/breadcrumbs/breadcrumbs.js","../../../../packages/design-system/dist/src/connect/components/file-item/file-item.js","../../../../packages/design-system/dist/src/connect/components/folder-item/folder-item.js","../../../../packages/design-system/dist/src/connect/components/node-input/node-input.js","../../../../packages/design-system/dist/src/connect/components/status-icon/sync-status-icon.js","../../../../packages/design-system/dist/src/connect/constants/documents.js","../../../../packages/design-system/assets/icons/budget.png","../../../../packages/design-system/assets/icons/rwa-report.png","../../../../packages/design-system/assets/icons/template.png","../../../../packages/design-system/dist/src/connect/constants/icons.js","../../../../packages/design-system/dist/src/connect/constants/syncing.js","../../../../packages/design-system/dist/src/connect/hooks/drag-and-drop/use-drag.js","../../../../packages/design-system/dist/src/connect/utils/get-document-icon-src.js","../../../../packages/design-system/dist/src/powerhouse/hooks/useWindowSize.js","../../../../packages/common/dist/editors/generic-drive-explorer/components/create-document.js","../../../../packages/common/dist/editors/generic-drive-explorer/components/file-content-view.js","../../../../packages/common/dist/editors/generic-drive-explorer/components/folder-view.js","../../../../packages/common/dist/editors/generic-drive-explorer/components/layout.js","../../../../packages/common/dist/editors/generic-drive-explorer/config.js","../../../../packages/common/dist/editors/generic-drive-explorer/editor.js"],"sourcesContent":["import { sortNodesByName } from \"../utils/nodes.js\";\nimport { useNodesInSelectedDrive } from \"./items-in-selected-drive.js\";\nimport { useSelectedFolder } from \"./selected-folder.js\";\n/** Returns the child nodes for the selected drive or folder. */\nexport function useNodesInSelectedDriveOrFolder() {\n const nodes = useNodesInSelectedDrive();\n const selectedFolder = useSelectedFolder();\n const selectedFolderId = selectedFolder?.id;\n if (!nodes)\n return [];\n if (!selectedFolderId)\n return sortNodesByName(nodes.filter((n) => !n.parentFolder));\n return sortNodesByName(nodes.filter((n) => n.parentFolder === selectedFolderId));\n}\n//# sourceMappingURL=child-nodes.js.map","import { useNodesInSelectedDrive } from \"./items-in-selected-drive.js\";\nimport { useSelectedNode } from \"./selected-node.js\";\n/** Returns the path to a node in the selected drive */\nexport function useNodePathById(id) {\n const nodes = useNodesInSelectedDrive();\n if (!nodes)\n return [];\n const path = [];\n let current = nodes.find((n) => n.id === id);\n while (current) {\n path.push(current);\n if (!current.parentFolder)\n break;\n current = nodes.find((n) => n.id === current?.parentFolder);\n }\n return path.reverse();\n}\n/** Returns the path to the currently selected node in the selected drive. */\nexport function useSelectedNodePath() {\n const selectedNode = useSelectedNode();\n return useNodePathById(selectedNode?.id);\n}\n//# sourceMappingURL=node-path.js.map","import { useAllowList } from \"./connect.js\";\nimport { useUser } from \"./user.js\";\nexport function useUserPermissions() {\n const user = useUser();\n const allowList = useAllowList();\n if (!allowList) {\n return {\n isAllowedToCreateDocuments: true,\n isAllowedToEditDocuments: true,\n };\n }\n return {\n isAllowedToCreateDocuments: allowList.includes(user?.address ?? \"\"),\n isAllowedToEditDocuments: allowList.includes(user?.address ?? \"\"),\n };\n}\n//# sourceMappingURL=user-permissions.js.map","import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Icon, NodeInput } from \"@powerhousedao/design-system\";\nimport { addFolder, setSelectedDrive, setSelectedNode, useSelectedDriveId, useSelectedDriveSafe, useSelectedNodePath, useUserPermissions, } from \"@powerhousedao/reactor-browser\";\nimport { Fragment, useState } from \"react\";\nexport function Breadcrumbs() {\n const { isAllowedToCreateDocuments } = useUserPermissions();\n const [selectedDrive] = useSelectedDriveSafe();\n const selectedDriveId = useSelectedDriveId();\n const selectedNodePath = useSelectedNodePath();\n const [isCreating, setIsCreating] = useState(false);\n function onAddNew() {\n setIsCreating(true);\n }\n function onSubmit(name) {\n if (!isAllowedToCreateDocuments || !selectedDriveId)\n return;\n addFolder(selectedDriveId, name, selectedNodePath.at(-1)?.id)\n .then((node) => {\n setSelectedNode(node);\n })\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n setIsCreating(false);\n });\n }\n function onCancel() {\n setIsCreating(false);\n }\n const hasSelectedDrive = !!selectedDrive;\n const hasNodePath = !!selectedNodePath.length;\n return (_jsxs(\"div\", { className: \"flex h-9 flex-row items-center gap-2 p-6 text-gray-500\", children: [hasSelectedDrive && (_jsxs(_Fragment, { children: [_jsx(Breadcrumb, { name: selectedDrive.state.global.name, onClick: () => setSelectedDrive(selectedDrive) }), _jsx(\"span\", { children: \"/\" })] })), hasNodePath &&\n selectedNodePath.map((node) => (_jsxs(Fragment, { children: [_jsx(Breadcrumb, { name: node.name, onClick: () => setSelectedNode(node) }), _jsx(\"span\", { children: \"/\" })] }, node.id))), isAllowedToCreateDocuments &&\n (isCreating ? (_jsx(NodeInput, { className: \"text-gray-800\", defaultValue: \"New Folder\", onCancel: onCancel, onSubmit: onSubmit, placeholder: \"New Folder\" })) : (_jsxs(\"button\", { type: \"button\", className: \"ml-1 flex items-center justify-center gap-2 rounded-md bg-gray-50 px-2 py-1.5 transition-colors hover:bg-gray-200 hover:text-gray-800\", onClick: onAddNew, children: [_jsx(Icon, { name: \"Plus\", size: 14 }), \"Add new\"] })))] }));\n}\nexport function Breadcrumb(props) {\n const { name, onClick } = props;\n return (_jsx(\"div\", { className: \"transition-colors last-of-type:text-gray-800 hover:text-gray-800\", onClick: onClick, role: \"button\", children: name }));\n}\n//# sourceMappingURL=breadcrumbs.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ConnectDropdownMenu, defaultNodeOptions, getDocumentIconSrc, Icon, NodeInput, nodeOptionsMap, SyncStatusIcon, useDrag, } from \"@powerhousedao/design-system\";\nimport { getSyncStatusSync, setSelectedNode, showDeleteNodeModal, useNodeActions, useSelectedDriveSafe, useUserPermissions, } from \"@powerhousedao/reactor-browser\";\nimport { getDriveSharingType } from \"document-drive\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nexport function FileItem(props) {\n const { fileNode, className, customDocumentIconSrc } = props;\n const [mode, setMode] = useState(\"READ\");\n const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);\n const [selectedDrive] = useSelectedDriveSafe();\n const sharingType = selectedDrive\n ? getDriveSharingType(selectedDrive)\n : \"LOCAL\";\n const { dragProps } = useDrag({ node: fileNode });\n const { isAllowedToCreateDocuments } = useUserPermissions();\n const { onRenameNode, onDuplicateNode } = useNodeActions();\n const isReadMode = mode === \"READ\";\n const syncStatus = getSyncStatusSync(fileNode.id, sharingType);\n const dropdownMenuHandlers = {\n DUPLICATE: () => onDuplicateNode(fileNode),\n RENAME: () => setMode(\"WRITE\"),\n DELETE: () => showDeleteNodeModal(fileNode),\n };\n const dropdownMenuOptions = Object.entries(nodeOptionsMap)\n .map(([id, option]) => ({\n ...option,\n id: id,\n }))\n .filter((option) => defaultNodeOptions.includes(option.id));\n function onSubmit(name) {\n onRenameNode(name, fileNode)\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n setMode(\"READ\");\n });\n }\n function onCancel() {\n setMode(\"READ\");\n }\n function onDropdownMenuOptionClick(itemId) {\n const handler = dropdownMenuHandlers[itemId];\n if (!handler) {\n console.error(`No handler found for dropdown menu item: ${itemId}`);\n return;\n }\n handler();\n setIsDropdownMenuOpen(false);\n }\n const iconSrc = getDocumentIconSrc(fileNode.documentType, customDocumentIconSrc);\n const iconNode = (_jsxs(\"div\", { className: \"relative\", children: [_jsx(\"img\", { alt: \"file icon\", className: \"max-w-none\", height: 34, src: iconSrc, width: 32 }), isReadMode && syncStatus && (_jsx(\"div\", { className: \"absolute bottom-[-2px] right-0 size-3 rounded-full bg-white\", children: _jsx(\"div\", { className: \"absolute left-[-2px] top-[-2px]\", children: _jsx(SyncStatusIcon, { overrideSyncIcons: { SUCCESS: \"CheckCircleFill\" }, syncStatus: syncStatus }) }) }))] }));\n const containerStyles = twMerge(\"group flex h-12 cursor-pointer select-none items-center rounded-lg bg-gray-200 px-2 text-gray-600 hover:text-gray-800\", className);\n const content = isReadMode ? (_jsxs(\"div\", { className: \"flex w-52 items-center justify-between\", children: [_jsxs(\"div\", { className: \"mr-2 truncate group-hover:mr-0\", children: [_jsx(\"div\", { className: \"max-h-6 truncate text-sm font-medium group-hover:text-gray-800\", children: fileNode.name }), _jsx(\"div\", { className: \"max-h-6 truncate text-xs font-medium text-gray-600 group-hover:text-gray-800\", children: fileNode.documentType })] }), isAllowedToCreateDocuments ? (_jsx(ConnectDropdownMenu, { items: dropdownMenuOptions, onItemClick: onDropdownMenuOptionClick, onOpenChange: setIsDropdownMenuOpen, open: isDropdownMenuOpen, children: _jsx(\"button\", { className: twMerge(\"hidden group-hover:block\", isDropdownMenuOpen && \"block\"), onClick: (e) => {\n e.stopPropagation();\n setIsDropdownMenuOpen(true);\n }, children: _jsx(Icon, { className: \"text-gray-600\", name: \"VerticalDots\" }) }) })) : null] })) : (_jsx(NodeInput, { className: \"ml-3 flex-1 font-medium\", defaultValue: fileNode.name, onCancel: onCancel, onSubmit: onSubmit }));\n return (_jsx(\"div\", { className: \"relative w-64\", onClick: () => setSelectedNode(fileNode), children: _jsx(\"div\", { ...dragProps, className: containerStyles, children: _jsxs(\"div\", { className: \"flex items-center\", children: [_jsx(\"div\", { className: \"mr-1.5\", children: iconNode }), content] }) }) }));\n}\n//# sourceMappingURL=file-item.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { ConnectDropdownMenu, defaultNodeOptions, Icon, NodeInput, nodeOptionsMap, SyncStatusIcon, useDrag, useDrop, } from \"@powerhousedao/design-system\";\nimport { getSyncStatusSync, setSelectedNode, showDeleteNodeModal, useNodeActions, useSelectedDriveSafe, useUserPermissions, } from \"@powerhousedao/reactor-browser\";\nimport { getDriveSharingType } from \"document-drive\";\nimport { useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nexport function FolderItem(props) {\n const { folderNode, className } = props;\n const { isAllowedToCreateDocuments } = useUserPermissions();\n const [mode, setMode] = useState(\"READ\");\n const [isDropdownMenuOpen, setIsDropdownMenuOpen] = useState(false);\n const [selectedDrive] = useSelectedDriveSafe();\n const sharingType = selectedDrive\n ? getDriveSharingType(selectedDrive)\n : \"LOCAL\";\n const { dragProps } = useDrag({ node: folderNode });\n const { onRenameNode, onDuplicateNode } = useNodeActions();\n const { isDropTarget, dropProps } = useDrop({\n target: folderNode,\n });\n const isReadMode = mode === \"READ\";\n const syncStatus = getSyncStatusSync(folderNode.id, sharingType);\n function onCancel() {\n setMode(\"READ\");\n }\n function onSubmit(name) {\n onRenameNode(name, folderNode)\n .catch((error) => {\n console.error(error);\n })\n .finally(() => {\n setMode(\"READ\");\n });\n }\n const dropdownMenuHandlers = {\n DUPLICATE: () => onDuplicateNode(folderNode),\n RENAME: () => setMode(\"WRITE\"),\n DELETE: () => showDeleteNodeModal(folderNode),\n };\n const dropdownMenuOptions = Object.entries(nodeOptionsMap)\n .map(([id, option]) => ({\n ...option,\n id: id,\n }))\n .filter((option) => defaultNodeOptions.includes(option.id));\n function onDropdownMenuOptionClick(itemId) {\n const handler = dropdownMenuHandlers[itemId];\n if (!handler) {\n console.error(`No handler found for dropdown menu item: ${itemId}`);\n return;\n }\n handler();\n setIsDropdownMenuOpen(false);\n }\n const content = isReadMode || !isAllowedToCreateDocuments ? (_jsx(\"div\", { className: \"ml-3 max-h-6 truncate font-medium text-gray-600 group-hover:text-gray-800\", children: folderNode.name })) : (_jsx(NodeInput, { className: \"ml-3 font-medium\", defaultValue: folderNode.name, onCancel: onCancel, onSubmit: onSubmit }));\n const containerStyles = twMerge(\"group flex h-12 cursor-pointer select-none items-center rounded-lg bg-gray-200 px-2\", className, isDropTarget && \"bg-blue-100\");\n return (_jsx(\"div\", { className: \"relative w-64\", onClick: () => setSelectedNode(folderNode), children: _jsxs(\"div\", { ...dragProps, ...dropProps, className: containerStyles, children: [_jsxs(\"div\", { className: \"flex items-center overflow-hidden\", children: [_jsx(\"div\", { className: \"p-1\", children: _jsxs(\"div\", { className: \"relative\", children: [_jsx(Icon, { name: \"FolderClose\", size: 24 }), isReadMode && syncStatus ? (_jsx(\"div\", { className: \"absolute bottom-[-3px] right-[-2px] size-3 rounded-full bg-white\", children: _jsx(\"div\", { className: \"absolute left-[-2px] top-[-2px]\", children: _jsx(SyncStatusIcon, { overrideSyncIcons: {\n SUCCESS: \"CheckCircleFill\",\n }, syncStatus: syncStatus }) }) })) : null] }) }), content] }), isReadMode && isAllowedToCreateDocuments ? (_jsx(ConnectDropdownMenu, { items: dropdownMenuOptions, onItemClick: onDropdownMenuOptionClick, onOpenChange: setIsDropdownMenuOpen, open: isDropdownMenuOpen, children: _jsx(\"button\", { className: twMerge(\"ml-auto hidden group-hover:block\", isDropdownMenuOpen && \"block\"), onClick: (e) => {\n e.stopPropagation();\n setIsDropdownMenuOpen(true);\n }, children: _jsx(Icon, { className: \"text-gray-600\", name: \"VerticalDots\" }) }) })) : null] }) }));\n}\n//# sourceMappingURL=folder-item.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useLayoutEffect, useRef, useState } from \"react\";\nimport { twMerge } from \"tailwind-merge\";\nimport { useEventListener, useOnClickOutside } from \"usehooks-ts\";\nexport function NodeInput(props) {\n const { onSubmit, onCancel, defaultValue, className, minLength = 1, ...inputProps } = props;\n const [value, setValue] = useState(defaultValue ?? \"\");\n const ref = useRef(null);\n useOnClickOutside(ref, handleSubmit);\n useEventListener(\"keyup\", (e) => {\n if (e.key === \"Enter\") {\n handleSubmit();\n }\n if (e.key === \"Escape\") {\n onCancel();\n }\n });\n useLayoutEffect(() => {\n setTimeout(() => {\n ref.current?.focus();\n ref.current?.select();\n ref.current?.scroll({ left: 9999 });\n }, 100);\n }, []);\n function handleSubmit() {\n if (value.length >= minLength) {\n onSubmit(value);\n }\n }\n return (_jsx(\"input\", { ...inputProps, autoFocus: true, className: twMerge(\"bg-inherit text-inherit outline-none\", className), minLength: minLength, onChange: (e) => setValue(e.target.value), ref: ref, required: true, type: \"text\", value: value }));\n}\n//# sourceMappingURL=node-input.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { CONFLICT, ERROR, Icon, INITIAL_SYNC, MISSING, SUCCESS, SYNCING, } from \"@powerhousedao/design-system\";\nimport { twMerge } from \"tailwind-merge\";\nconst syncIcons = {\n SYNCING: \"Syncing\",\n SUCCESS: \"Synced\",\n CONFLICT: \"Error\",\n MISSING: \"Circle\",\n ERROR: \"Error\",\n INITIAL_SYNC: \"Syncing\",\n};\nexport function SyncStatusIcon(props) {\n const { syncStatus, className, overrideSyncIcons = {}, ...iconProps } = props;\n const icons = { ...syncIcons, ...overrideSyncIcons };\n const syncStatusIcons = {\n [INITIAL_SYNC]: (_jsx(Icon, { size: 16, ...iconProps, className: twMerge(\"text-blue-900\", className), name: icons[INITIAL_SYNC] })),\n [SYNCING]: (_jsx(Icon, { size: 16, ...iconProps, className: twMerge(\"text-blue-900\", className), name: icons[SYNCING] })),\n [SUCCESS]: (_jsx(Icon, { size: 16, ...iconProps, className: twMerge(\"text-green-900\", className), name: icons[SUCCESS] })),\n [CONFLICT]: (_jsx(Icon, { size: 16, ...iconProps, className: twMerge(\"text-orange-900\", className), name: icons[CONFLICT] })),\n [MISSING]: (_jsx(Icon, { size: 16, ...iconProps, className: twMerge(\"text-red-900\", className), name: icons[MISSING] })),\n [ERROR]: (_jsx(Icon, { size: 16, ...iconProps, className: twMerge(\"text-red-900\", className), name: icons[ERROR] })),\n };\n return syncStatusIcons[syncStatus];\n}\n//# sourceMappingURL=sync-status-icon.js.map","export const BUDGET = \"powerhouse/budget-statement\";\nexport const DEFAULT = \"powerhouse/default\";\nexport const MAKERDAO_RWA_PORTFOLIO = \"makerdao/rwa-portfolio\";\nexport const documentTypes = [BUDGET, DEFAULT, MAKERDAO_RWA_PORTFOLIO];\n//# sourceMappingURL=documents.js.map","export default \"data:image/png;base64,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\"","export default \"__VITE_ASSET__D4y_BsAi__\"","export default \"data:image/png;base64,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\"","import BudgetStatementImg from \"@powerhousedao/design-system/assets/icons/budget.png\";\nimport MakerdaoRWAPortfolioImg from \"@powerhousedao/design-system/assets/icons/rwa-report.png\";\nimport DefaultImg from \"@powerhousedao/design-system/assets/icons/template.png\";\nimport { BUDGET, DEFAULT, MAKERDAO_RWA_PORTFOLIO, } from \"@powerhousedao/design-system\";\nexport const iconMap = {\n [BUDGET]: BudgetStatementImg,\n [DEFAULT]: DefaultImg,\n [MAKERDAO_RWA_PORTFOLIO]: MakerdaoRWAPortfolioImg,\n};\n//# sourceMappingURL=icons.js.map","export const SYNCING = \"SYNCING\";\nexport const SUCCESS = \"SUCCESS\";\nexport const CONFLICT = \"CONFLICT\";\nexport const MISSING = \"MISSING\";\nexport const ERROR = \"ERROR\";\nexport const INITIAL_SYNC = \"INITIAL_SYNC\";\nexport const syncStatuses = [\n INITIAL_SYNC,\n SYNCING,\n SUCCESS,\n CONFLICT,\n MISSING,\n ERROR,\n];\n//# sourceMappingURL=syncing.js.map","import { useCallback, useMemo, useState } from \"react\";\nexport function useDrag(props) {\n const { node } = props;\n const [isDragging, setIsDragging] = useState(false);\n const onDragStart = useCallback((event) => {\n event.dataTransfer.setData(\"UI_NODE\", JSON.stringify(node));\n }, [node]);\n const onDragEnd = useCallback(() => {\n setIsDragging(false);\n }, []);\n return useMemo(() => {\n return {\n isDragging,\n dragProps: {\n draggable: true,\n onDragStart,\n onDragEnd,\n },\n };\n }, [isDragging, onDragEnd, onDragStart]);\n}\n//# sourceMappingURL=use-drag.js.map","import { DEFAULT, documentTypes, iconMap } from \"@powerhousedao/design-system\";\nexport function getDocumentIconSrc(documentType, customDocumentIconSrc) {\n if (customDocumentIconSrc) {\n return customDocumentIconSrc;\n }\n if (documentTypes.includes(documentType)) {\n return iconMap[documentType];\n }\n return iconMap[DEFAULT];\n}\n//# sourceMappingURL=get-document-icon-src.js.map","import { useEffect, useState } from \"react\";\nexport const useWindowSize = () => {\n const [windowSize, setWindowSize] = useState({\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n });\n useEffect(() => {\n const windowSizeHandler = () => {\n setWindowSize({\n innerWidth: window.innerWidth,\n innerHeight: window.innerHeight,\n });\n };\n window.addEventListener(\"resize\", windowSizeHandler);\n return () => {\n window.removeEventListener(\"resize\", windowSizeHandler);\n };\n }, []);\n return windowSize;\n};\n//# sourceMappingURL=useWindowSize.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { PowerhouseButton } from \"@powerhousedao/design-system\";\nimport { showCreateDocumentModal, useDocumentModelModules, useUserPermissions, } from \"@powerhousedao/reactor-browser\";\nfunction getDocumentSpec(doc) {\n return doc.documentModel.global;\n}\nexport function CreateDocument() {\n const { isAllowedToCreateDocuments } = useUserPermissions();\n const documentModelModules = useDocumentModelModules();\n const nonDriveDocumentModelModules = documentModelModules?.filter((module) => module.documentModel.global.id !== \"powerhouse/document-drive\");\n if (!isAllowedToCreateDocuments)\n return null;\n return (_jsxs(\"div\", { className: \"px-6 py-4\", children: [_jsx(\"h3\", { className: \"mb-3 text-xl font-bold text-gray-600\", children: \"New document\" }), _jsx(\"div\", { className: \"flex w-full flex-wrap gap-4\", children: nonDriveDocumentModelModules?.map((doc) => {\n const spec = getDocumentSpec(doc);\n return (_jsx(PowerhouseButton, { color: \"light\", title: spec.name, \"aria-description\": spec.description, onClick: () => showCreateDocumentModal(spec.id), children: _jsx(\"span\", { className: \"text-sm\", children: spec.name }) }, spec.id));\n }) })] }));\n}\n//# sourceMappingURL=create-document.js.map","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { FileItem, useWindowSize } from \"@powerhousedao/design-system\";\nimport { isFileNodeKind, useNodesInSelectedDriveOrFolder, } from \"@powerhousedao/reactor-browser\";\nimport { useVirtualizer } from \"@tanstack/react-virtual\";\nimport React, { useRef } from \"react\";\nconst GAP = 8;\nconst ITEM_WIDTH = 256;\nconst ITEM_HEIGHT = 48;\nconst USED_SPACE = 420;\nexport function FileContentView() {\n const parentRef = useRef(null);\n const windowSize = useWindowSize();\n const availableWidth = windowSize.innerWidth - USED_SPACE;\n const nodes = useNodesInSelectedDriveOrFolder();\n const fileNodes = nodes.filter((n) => isFileNodeKind(n));\n const columnCount = Math.floor(availableWidth / (ITEM_WIDTH + GAP)) || 1;\n const rowCount = Math.ceil(fileNodes.length / columnCount);\n const rowVirtualizer = useVirtualizer({\n count: rowCount,\n getScrollElement: () => parentRef.current,\n estimateSize: (index) => {\n if (index > 0) {\n return ITEM_HEIGHT + GAP;\n }\n return ITEM_HEIGHT;\n },\n overscan: 5,\n });\n const columnVirtualizer = useVirtualizer({\n horizontal: true,\n count: columnCount,\n getScrollElement: () => parentRef.current,\n estimateSize: (index) => {\n if (index > 0) {\n return ITEM_WIDTH + GAP;\n }\n return ITEM_WIDTH;\n },\n overscan: 5,\n });\n const getItemIndex = (rowIndex, columnIndex) => rowIndex * columnCount + columnIndex;\n const getItem = (rowIndex, columnIndex) => {\n const index = getItemIndex(rowIndex, columnIndex);\n return fileNodes[index] || null;\n };\n if (fileNodes.length === 0) {\n return (_jsx(\"div\", { className: \"mb-8 text-sm text-gray-400\", children: \"No documents or files \\uD83D\\uDCC4\" }));\n }\n const renderItem = (rowIndex, columnIndex) => {\n const fileNode = getItem(rowIndex, columnIndex);\n if (!fileNode) {\n return null;\n }\n return (_jsx(\"div\", { style: {\n marginLeft: columnIndex === 0 ? 0 : GAP,\n }, children: _jsx(FileItem, { fileNode: fileNode }, fileNode.id) }));\n };\n return (_jsx(\"div\", { ref: parentRef, style: {\n width: `100%`,\n overflow: \"auto\",\n }, children: _jsx(\"div\", { style: {\n height: `${rowVirtualizer.getTotalSize()}px`,\n width: `${columnVirtualizer.getTotalSize()}px`,\n position: \"relative\",\n }, children: rowVirtualizer.getVirtualItems().map((virtualRow) => (_jsx(React.Fragment, { children: columnVirtualizer.getVirtualItems().map((virtualColumn) => (_jsx(\"div\", { style: {\n position: \"absolute\",\n top: 0,\n left: 0,\n marginTop: virtualRow.index === 0 ? 0 : GAP,\n width: `${virtualColumn.size}px`,\n height: `${virtualRow.size}px`,\n transform: `translateX(${virtualColumn.start}px) translateY(${virtualRow.start}px)`,\n }, children: renderItem(virtualRow.index, virtualColumn.index) }, virtualColumn.key))) }, virtualRow.key))) }) }));\n}\n//# sourceMappingURL=file-content-view.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { DriveLayout, FileContentView } from \"@powerhousedao/common\";\nimport { FolderItem, useDrop } from \"@powerhousedao/design-system\";\nimport { isFolderNodeKind, useNodesInSelectedDriveOrFolder, useSelectedFolder, } from \"@powerhousedao/reactor-browser\";\nimport { twMerge } from \"tailwind-merge\";\nexport function FolderView(props) {\n const { className } = props;\n const nodes = useNodesInSelectedDriveOrFolder();\n const selectedFolder = useSelectedFolder();\n const folderNodes = nodes.filter((n) => isFolderNodeKind(n));\n const { isDropTarget, dropProps } = useDrop({\n target: selectedFolder,\n });\n return (_jsxs(\"div\", { className: twMerge(\"rounded-md border-2 border-transparent p-2\", isDropTarget && \"border-dashed border-blue-100\", className), ...dropProps, children: [_jsx(DriveLayout.ContentSection, { title: \"Folders\", className: \"mb-4\", children: folderNodes.length > 0 ? (folderNodes.map((folderNode) => (_jsx(FolderItem, { folderNode: folderNode }, folderNode.id)))) : (_jsx(\"div\", { className: \"mb-8 text-sm text-gray-400\", children: \"No documents or files \\uD83D\\uDCC4\" })) }), _jsx(DriveLayout.ContentSection, { title: \"Documents and files\", children: _jsx(\"div\", { className: \"w-full\", children: _jsx(FileContentView, {}) }) })] }));\n}\nexport default FolderView;\n//# sourceMappingURL=folder-view.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { cn } from \"@powerhousedao/design-system\";\nexport function DriveLayout({ children, className, ...props }) {\n return (_jsx(DriveLayout.Container, { className: className, ...props, children: children }));\n}\nDriveLayout.Container = function DriveLayoutContainer({ children, className, containerProps, ...props }) {\n return (_jsx(\"div\", { className: cn(\"flex grow flex-col overflow-auto rounded-2xl bg-gray-50 p-2\", className), ...containerProps, ...props, children: children }));\n};\nDriveLayout.Header = function DriveLayoutHeader({ children, className, containerProps, ...props }) {\n return (_jsx(\"div\", { className: cn(\"flex-0\", className), ...containerProps, ...props, children: children }));\n};\nDriveLayout.Content = function DriveLayoutContent({ children, className, containerProps, ...props }) {\n return (_jsx(\"div\", { className: cn(\"mb-5 flex-1 px-4\", className), ...containerProps, ...props, children: children }));\n};\nDriveLayout.ContentSection = function DriveLayoutContentSection({ title, children, className, containerProps, ...props }) {\n return (_jsxs(\"div\", { className: cn(className), ...containerProps, ...props, children: [title && (_jsx(\"div\", { className: \"mb-4 text-base font-semibold text-gray-600\", children: title })), _jsx(\"div\", { className: \"flex flex-wrap gap-2\", children: children })] }));\n};\nDriveLayout.Footer = function DriveLayoutFooter({ children, className, containerProps, ...props }) {\n return (_jsx(\"div\", { className: cn(\"flex-0\", className), ...containerProps, ...props, children: children }));\n};\n//# sourceMappingURL=layout.js.map","export const editorConfig = {\n allowedDocumentTypes: [],\n isDragAndDropEnabled: true,\n};\n//# sourceMappingURL=config.js.map","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { CreateDocument, DriveLayout, FolderView } from \"@powerhousedao/common\";\nimport { Breadcrumbs, useDrop } from \"@powerhousedao/design-system\";\nimport { useSetPHDriveEditorConfig } from \"@powerhousedao/reactor-browser\";\nimport { editorConfig } from \"./config.js\";\nexport default function Editor(props) {\n useSetPHDriveEditorConfig(editorConfig);\n const { className, children } = props;\n const { isDropTarget, dropProps } = useDrop();\n const showDocumentEditor = !!children;\n return (_jsxs(DriveLayout, { className: className, children: [!showDocumentEditor && (_jsx(DriveLayout.Header, { children: _jsx(Breadcrumbs, {}) })), showDocumentEditor ? (children) : (_jsx(DriveLayout.Content, { ...dropProps, className: isDropTarget ? \"rounded-xl bg-blue-100\" : \"\", children: _jsx(FolderView, {}) })), !showDocumentEditor && (_jsx(DriveLayout.Footer, { children: _jsx(CreateDocument, {}) }))] }));\n}\n//# sourceMappingURL=editor.js.map"],"names":["useState","_jsxs","_Fragment","_jsx","Fragment","useRef","useLayoutEffect","useCallback","useMemo","useEffect"],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { r as reactExports, j as jsxRuntimeExports, t as twMerge, a0 as twJoin } from "./index-DK-Td17X.js";
2
- const FormInput = reactExports.forwardRef(function FormInput2(props, ref) {
3
- const { icon, errorMessage, isDirty, containerClassName, inputClassName, errorMessageClassName, hideErrors = false, ...delegatedProps } = props;
4
- const type = props.type ?? "text";
5
- const isError = !!errorMessage;
6
- return jsxRuntimeExports.jsxs("div", { children: [jsxRuntimeExports.jsxs("div", { className: twMerge("mb-1 flex gap-2 rounded-md border border-gray-200 bg-gray-50 p-3 text-black placeholder:text-gray-50", isError && "border-red-900", containerClassName), children: [icon && jsxRuntimeExports.jsx("span", { className: twJoin((!isDirty || isError) && "text-slate-200"), children: icon }), jsxRuntimeExports.jsx("input", { ...delegatedProps, className: twMerge("w-full bg-transparent font-semibold outline-none", inputClassName), ref, type })] }), jsxRuntimeExports.jsx("p", { className: twMerge("hidden min-h-4 text-xs text-red-900", isError && "block", hideErrors && "hidden", errorMessageClassName), children: errorMessage })] });
7
- });
8
- export {
9
- FormInput as F
10
- };
11
- //# sourceMappingURL=form-input-CPnbINdu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"form-input-CPnbINdu.js","sources":["../../../../packages/design-system/dist/src/connect/components/form-input/form-input.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef } from \"react\";\nimport { twJoin, twMerge } from \"tailwind-merge\";\nexport const FormInput = forwardRef(function FormInput(props, ref) {\n const { icon, errorMessage, isDirty, containerClassName, inputClassName, errorMessageClassName, hideErrors = false, ...delegatedProps } = props;\n const type = props.type ?? \"text\";\n const isError = !!errorMessage;\n return (_jsxs(\"div\", { children: [_jsxs(\"div\", { className: twMerge(\"mb-1 flex gap-2 rounded-md border border-gray-200 bg-gray-50 p-3 text-black placeholder:text-gray-50\", isError && \"border-red-900\", containerClassName), children: [icon && (_jsx(\"span\", { className: twJoin((!isDirty || isError) && \"text-slate-200\"), children: icon })), _jsx(\"input\", { ...delegatedProps, className: twMerge(\"w-full bg-transparent font-semibold outline-none\", inputClassName), ref: ref, type: type })] }), _jsx(\"p\", { className: twMerge(\"hidden min-h-4 text-xs text-red-900\", isError && \"block\", hideErrors && \"hidden\", errorMessageClassName), children: errorMessage })] }));\n});\n//# sourceMappingURL=form-input.js.map"],"names":["forwardRef","FormInput","_jsxs","_jsx"],"mappings":";AAGY,MAAC,YAAYA,aAAAA,WAAW,SAASC,WAAU,OAAO,KAAK;AAC/D,QAAM,EAAE,MAAM,cAAc,SAAS,oBAAoB,gBAAgB,uBAAuB,aAAa,OAAO,GAAG,eAAc,IAAK;AAC1I,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,UAAU,CAAC,CAAC;AAClB,SAAQC,kBAAAA,KAAM,OAAO,EAAE,UAAU,CAACA,kBAAAA,KAAM,OAAO,EAAE,WAAW,QAAQ,wGAAwG,WAAW,kBAAkB,kBAAkB,GAAG,UAAU,CAAC,QAASC,kBAAAA,IAAK,QAAQ,EAAE,WAAW,QAAQ,CAAC,WAAW,YAAY,gBAAgB,GAAG,UAAU,KAAI,CAAE,GAAIA,kBAAAA,IAAK,SAAS,EAAE,GAAG,gBAAgB,WAAW,QAAQ,oDAAoD,cAAc,GAAG,KAAU,KAAU,CAAE,CAAC,EAAC,CAAE,GAAGA,kBAAAA,IAAK,KAAK,EAAE,WAAW,QAAQ,uCAAuC,WAAW,SAAS,cAAc,UAAU,qBAAqB,GAAG,UAAU,aAAY,CAAE,CAAC,EAAC,CAAE;AACrpB,CAAC;"}
@@ -1,5 +0,0 @@
1
- const hmr = void 0;
2
- export {
3
- hmr
4
- };
5
- //# sourceMappingURL=hmr-DO4QUuY_.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"hmr-DO4QUuY_.js","sources":["../../src/hmr.ts"],"sourcesContent":["import type { ViteHotContext } from \"vite/types/hot.js\";\n\nexport const hmr = import.meta.hot as ViteHotContext | undefined;\n"],"names":[],"mappings":"AAEO,MAAM,MAAM;"}