@dxos/plugin-space 0.8.4-main.4a85c3132b → 0.8.4-main.51f1e5ca51

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 (782) hide show
  1. package/dist/lib/browser/SpaceSettings-EM4ANH25.mjs +47 -0
  2. package/dist/lib/browser/SpaceSettings-EM4ANH25.mjs.map +7 -0
  3. package/dist/lib/browser/add-object-GD7KRSJ4.mjs +78 -0
  4. package/dist/lib/browser/add-object-GD7KRSJ4.mjs.map +7 -0
  5. package/dist/lib/browser/add-relation-CFHQLWPO.mjs +26 -0
  6. package/dist/lib/browser/add-relation-CFHQLWPO.mjs.map +7 -0
  7. package/dist/lib/browser/add-schema-GTRLA4FD.mjs +60 -0
  8. package/dist/lib/browser/add-schema-GTRLA4FD.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-3RYTAKKI.mjs +16 -0
  10. package/dist/lib/browser/chunk-3RYTAKKI.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-C7AYQOUD.mjs +489 -0
  12. package/dist/lib/browser/chunk-C7AYQOUD.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-CQF3R5FY.mjs +98 -0
  14. package/dist/lib/browser/chunk-CQF3R5FY.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  16. package/dist/lib/browser/chunk-JHZGRYGS.mjs +8 -0
  17. package/dist/lib/browser/chunk-JHZGRYGS.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-YELP3CVT.mjs +63 -0
  19. package/dist/lib/browser/chunk-YELP3CVT.mjs.map +7 -0
  20. package/dist/lib/browser/cli/index.mjs +75 -75
  21. package/dist/lib/browser/cli/index.mjs.map +3 -3
  22. package/dist/lib/browser/close-UTZ4JU5U.mjs +17 -0
  23. package/dist/lib/browser/close-UTZ4JU5U.mjs.map +7 -0
  24. package/dist/lib/browser/create-7DZWDM22.mjs +74 -0
  25. package/dist/lib/browser/create-7DZWDM22.mjs.map +7 -0
  26. package/dist/lib/browser/delete-field-OSRHGYX5.mjs +43 -0
  27. package/dist/lib/browser/delete-field-OSRHGYX5.mjs.map +7 -0
  28. package/dist/lib/browser/duplicate-object-FXPKRGEX.mjs +34 -0
  29. package/dist/lib/browser/duplicate-object-FXPKRGEX.mjs.map +7 -0
  30. package/dist/lib/browser/get-share-link-C6WVJRBD.mjs +41 -0
  31. package/dist/lib/browser/get-share-link-C6WVJRBD.mjs.map +7 -0
  32. package/dist/lib/browser/index.mjs +470 -148
  33. package/dist/lib/browser/index.mjs.map +4 -4
  34. package/dist/lib/browser/join-DUQDFUP7.mjs +28 -0
  35. package/dist/lib/browser/join-DUQDFUP7.mjs.map +7 -0
  36. package/dist/lib/browser/meta.json +1 -1
  37. package/dist/lib/browser/{chunk-HSMQFM57.mjs → meta.mjs} +4 -3
  38. package/dist/lib/{node-esm/chunk-SL4BJSUG.mjs.map → browser/meta.mjs.map} +3 -3
  39. package/dist/lib/browser/migrate-2CCLBOB7.mjs +50 -0
  40. package/dist/lib/browser/migrate-2CCLBOB7.mjs.map +7 -0
  41. package/dist/lib/browser/open-YZMTOJKZ.mjs +17 -0
  42. package/dist/lib/browser/open-YZMTOJKZ.mjs.map +7 -0
  43. package/dist/lib/browser/open-create-object-76TERQFL.mjs +42 -0
  44. package/dist/lib/browser/open-create-object-76TERQFL.mjs.map +7 -0
  45. package/dist/lib/browser/open-create-space-YJM57655.mjs +24 -0
  46. package/dist/lib/browser/open-create-space-YJM57655.mjs.map +7 -0
  47. package/dist/lib/browser/open-members-Z62WRZXE.mjs +23 -0
  48. package/dist/lib/browser/open-members-Z62WRZXE.mjs.map +7 -0
  49. package/dist/lib/browser/open-settings-7NGQX4DC.mjs +23 -0
  50. package/dist/lib/browser/open-settings-7NGQX4DC.mjs.map +7 -0
  51. package/dist/lib/browser/operations/index.mjs +14 -0
  52. package/dist/lib/browser/operations/index.mjs.map +7 -0
  53. package/dist/lib/browser/remove-objects-U2WX4YJR.mjs +71 -0
  54. package/dist/lib/browser/remove-objects-U2WX4YJR.mjs.map +7 -0
  55. package/dist/lib/browser/rename-AT4JOBWL.mjs +25 -0
  56. package/dist/lib/browser/rename-AT4JOBWL.mjs.map +7 -0
  57. package/dist/lib/browser/rename-object-C27IY6OV.mjs +26 -0
  58. package/dist/lib/browser/rename-object-C27IY6OV.mjs.map +7 -0
  59. package/dist/lib/browser/restore-field-WXW347UU.mjs +41 -0
  60. package/dist/lib/browser/restore-field-WXW347UU.mjs.map +7 -0
  61. package/dist/lib/browser/restore-objects-AHHIZKTQ.mjs +48 -0
  62. package/dist/lib/browser/restore-objects-AHHIZKTQ.mjs.map +7 -0
  63. package/dist/lib/browser/share-HSPCUWZO.mjs +31 -0
  64. package/dist/lib/browser/share-HSPCUWZO.mjs.map +7 -0
  65. package/dist/lib/browser/snapshot-4GHO546H.mjs +30 -0
  66. package/dist/lib/browser/snapshot-4GHO546H.mjs.map +7 -0
  67. package/dist/lib/browser/translations.mjs +283 -0
  68. package/dist/lib/browser/translations.mjs.map +7 -0
  69. package/dist/lib/browser/types/index.mjs +6 -8
  70. package/dist/lib/browser/wait-for-object-SHLHIHWS.mjs +23 -0
  71. package/dist/lib/browser/wait-for-object-SHLHIHWS.mjs.map +7 -0
  72. package/dist/lib/node-esm/SpaceSettings-VS63WTFP.mjs +48 -0
  73. package/dist/lib/node-esm/SpaceSettings-VS63WTFP.mjs.map +7 -0
  74. package/dist/lib/node-esm/add-object-QLBKA7K4.mjs +79 -0
  75. package/dist/lib/node-esm/add-object-QLBKA7K4.mjs.map +7 -0
  76. package/dist/lib/node-esm/add-relation-GMXOWGR6.mjs +27 -0
  77. package/dist/lib/node-esm/add-relation-GMXOWGR6.mjs.map +7 -0
  78. package/dist/lib/node-esm/add-schema-ZRDGGJ3O.mjs +61 -0
  79. package/dist/lib/node-esm/add-schema-ZRDGGJ3O.mjs.map +7 -0
  80. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  81. package/dist/lib/node-esm/chunk-HSVHLOWA.mjs +10 -0
  82. package/dist/lib/node-esm/chunk-HSVHLOWA.mjs.map +7 -0
  83. package/dist/lib/node-esm/chunk-MZG7V6M3.mjs +99 -0
  84. package/dist/lib/node-esm/chunk-MZG7V6M3.mjs.map +7 -0
  85. package/dist/lib/node-esm/chunk-QKEPMULV.mjs +18 -0
  86. package/dist/lib/node-esm/chunk-QKEPMULV.mjs.map +7 -0
  87. package/dist/lib/node-esm/chunk-RD5NBQ4C.mjs +490 -0
  88. package/dist/lib/node-esm/chunk-RD5NBQ4C.mjs.map +7 -0
  89. package/dist/lib/node-esm/chunk-TIKBCL5D.mjs +65 -0
  90. package/dist/lib/node-esm/chunk-TIKBCL5D.mjs.map +7 -0
  91. package/dist/lib/node-esm/cli/index.mjs +75 -75
  92. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  93. package/dist/lib/node-esm/close-VPJ66WYS.mjs +18 -0
  94. package/dist/lib/node-esm/close-VPJ66WYS.mjs.map +7 -0
  95. package/dist/lib/node-esm/create-C3G7T25G.mjs +75 -0
  96. package/dist/lib/node-esm/create-C3G7T25G.mjs.map +7 -0
  97. package/dist/lib/node-esm/delete-field-I3EUV5OG.mjs +44 -0
  98. package/dist/lib/node-esm/delete-field-I3EUV5OG.mjs.map +7 -0
  99. package/dist/lib/node-esm/duplicate-object-65GM2BS7.mjs +35 -0
  100. package/dist/lib/node-esm/duplicate-object-65GM2BS7.mjs.map +7 -0
  101. package/dist/lib/node-esm/get-share-link-PGNTWGUH.mjs +42 -0
  102. package/dist/lib/node-esm/get-share-link-PGNTWGUH.mjs.map +7 -0
  103. package/dist/lib/node-esm/index.mjs +470 -148
  104. package/dist/lib/node-esm/index.mjs.map +4 -4
  105. package/dist/lib/node-esm/join-KYHTT3IE.mjs +29 -0
  106. package/dist/lib/node-esm/join-KYHTT3IE.mjs.map +7 -0
  107. package/dist/lib/node-esm/meta.json +1 -1
  108. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → meta.mjs} +3 -3
  109. package/dist/lib/{browser/chunk-HSMQFM57.mjs.map → node-esm/meta.mjs.map} +3 -3
  110. package/dist/lib/node-esm/migrate-3HCYGDJG.mjs +51 -0
  111. package/dist/lib/node-esm/migrate-3HCYGDJG.mjs.map +7 -0
  112. package/dist/lib/node-esm/open-HO4LLI3I.mjs +18 -0
  113. package/dist/lib/node-esm/open-HO4LLI3I.mjs.map +7 -0
  114. package/dist/lib/node-esm/open-create-object-QOH455FJ.mjs +43 -0
  115. package/dist/lib/node-esm/open-create-object-QOH455FJ.mjs.map +7 -0
  116. package/dist/lib/node-esm/open-create-space-CDWC7YYL.mjs +25 -0
  117. package/dist/lib/node-esm/open-create-space-CDWC7YYL.mjs.map +7 -0
  118. package/dist/lib/node-esm/open-members-5I7NDD5K.mjs +24 -0
  119. package/dist/lib/node-esm/open-members-5I7NDD5K.mjs.map +7 -0
  120. package/dist/lib/node-esm/open-settings-SQDLKQFX.mjs +24 -0
  121. package/dist/lib/node-esm/open-settings-SQDLKQFX.mjs.map +7 -0
  122. package/dist/lib/node-esm/operations/index.mjs +15 -0
  123. package/dist/lib/node-esm/operations/index.mjs.map +7 -0
  124. package/dist/lib/node-esm/remove-objects-WOXLCEEG.mjs +72 -0
  125. package/dist/lib/node-esm/remove-objects-WOXLCEEG.mjs.map +7 -0
  126. package/dist/lib/node-esm/rename-7T6W7HCV.mjs +26 -0
  127. package/dist/lib/node-esm/rename-7T6W7HCV.mjs.map +7 -0
  128. package/dist/lib/node-esm/rename-object-AJK5K6WP.mjs +27 -0
  129. package/dist/lib/node-esm/rename-object-AJK5K6WP.mjs.map +7 -0
  130. package/dist/lib/node-esm/restore-field-766F6HQS.mjs +42 -0
  131. package/dist/lib/node-esm/restore-field-766F6HQS.mjs.map +7 -0
  132. package/dist/lib/node-esm/restore-objects-VQZUFBNN.mjs +49 -0
  133. package/dist/lib/node-esm/restore-objects-VQZUFBNN.mjs.map +7 -0
  134. package/dist/lib/node-esm/share-MG762MTJ.mjs +32 -0
  135. package/dist/lib/node-esm/share-MG762MTJ.mjs.map +7 -0
  136. package/dist/lib/node-esm/snapshot-INCDC5YB.mjs +31 -0
  137. package/dist/lib/node-esm/snapshot-INCDC5YB.mjs.map +7 -0
  138. package/dist/lib/node-esm/translations.mjs +284 -0
  139. package/dist/lib/node-esm/translations.mjs.map +7 -0
  140. package/dist/lib/node-esm/types/index.mjs +6 -8
  141. package/dist/lib/node-esm/wait-for-object-4KPMASPD.mjs +24 -0
  142. package/dist/lib/node-esm/wait-for-object-4KPMASPD.mjs.map +7 -0
  143. package/dist/types/src/SpacePlugin.d.ts +1 -1
  144. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  145. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +2 -3
  146. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  147. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +57 -0
  148. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
  149. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +43 -0
  150. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
  151. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
  152. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
  153. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +25 -0
  154. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
  155. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +56 -0
  156. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
  157. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
  158. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
  159. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
  160. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
  161. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +68 -0
  162. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
  163. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -0
  164. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -0
  165. package/dist/types/src/capabilities/index.d.ts +34 -9
  166. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  167. package/dist/types/src/capabilities/migrations.d.ts +5 -0
  168. package/dist/types/src/capabilities/migrations.d.ts.map +1 -0
  169. package/dist/types/src/capabilities/navigation-handler/index.d.ts +4 -0
  170. package/dist/types/src/capabilities/navigation-handler/index.d.ts.map +1 -0
  171. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts +13 -0
  172. package/dist/types/src/capabilities/navigation-handler/navigation-handler.d.ts.map +1 -0
  173. package/dist/types/src/capabilities/navigation-resolver.d.ts +6 -0
  174. package/dist/types/src/capabilities/navigation-resolver.d.ts.map +1 -0
  175. package/dist/types/src/capabilities/node.d.ts +9 -0
  176. package/dist/types/src/capabilities/node.d.ts.map +1 -0
  177. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  178. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  179. package/dist/types/src/capabilities/react-root.d.ts.map +1 -0
  180. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  181. package/dist/types/src/capabilities/{repair/repair.d.ts → repair.d.ts} +1 -1
  182. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  183. package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +2 -5
  184. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  185. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -0
  186. package/dist/types/src/capabilities/{state/state.d.ts → state.d.ts} +1 -1
  187. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  188. package/dist/types/src/capabilities/undo-mappings.d.ts +10 -0
  189. package/dist/types/src/capabilities/undo-mappings.d.ts.map +1 -0
  190. package/dist/types/src/cli/commands/database/add.d.ts +3 -4
  191. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
  192. package/dist/types/src/cli/commands/database/query/query.d.ts +2 -2
  193. package/dist/types/src/cli/commands/database/query/query.d.ts.map +1 -1
  194. package/dist/types/src/cli/commands/database/remove.d.ts +1 -1
  195. package/dist/types/src/cli/commands/database/stats.d.ts +1 -1
  196. package/dist/types/src/cli/commands/database/util.d.ts.map +1 -1
  197. package/dist/types/src/cli/commands/queue/index.d.ts +1 -1
  198. package/dist/types/src/cli/commands/queue/query.d.ts +1 -1
  199. package/dist/types/src/cli/commands/queue/util.d.ts.map +1 -1
  200. package/dist/types/src/cli/commands/space/close/close.d.ts +2 -2
  201. package/dist/types/src/cli/commands/space/close/close.d.ts.map +1 -1
  202. package/dist/types/src/cli/commands/space/create/create.d.ts +2 -2
  203. package/dist/types/src/cli/commands/space/index.d.ts +15 -12
  204. package/dist/types/src/cli/commands/space/index.d.ts.map +1 -1
  205. package/dist/types/src/cli/commands/space/info/info.d.ts +5 -3
  206. package/dist/types/src/cli/commands/space/info/info.d.ts.map +1 -1
  207. package/dist/types/src/cli/commands/space/join/join.d.ts +2 -2
  208. package/dist/types/src/cli/commands/space/join/util.d.ts.map +1 -1
  209. package/dist/types/src/cli/commands/space/list/list.d.ts +7 -2
  210. package/dist/types/src/cli/commands/space/list/list.d.ts.map +1 -1
  211. package/dist/types/src/cli/commands/space/members/members.d.ts +2 -2
  212. package/dist/types/src/cli/commands/space/members/util.d.ts.map +1 -1
  213. package/dist/types/src/cli/commands/space/open/open.d.ts +2 -2
  214. package/dist/types/src/cli/commands/space/open/open.d.ts.map +1 -1
  215. package/dist/types/src/cli/commands/space/schema/index.d.ts +1 -1
  216. package/dist/types/src/cli/commands/space/schema/list/list.d.ts +2 -2
  217. package/dist/types/src/cli/commands/space/schema/list/util.d.ts.map +1 -1
  218. package/dist/types/src/cli/commands/space/share/share.d.ts +2 -2
  219. package/dist/types/src/cli/plugin.d.ts +1 -1
  220. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  221. package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
  222. package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
  223. package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
  224. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -6
  225. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  226. package/dist/types/src/components/ForeignKeys/ForeignKeys.d.ts.map +1 -0
  227. package/dist/types/src/components/ForeignKeys/index.d.ts +2 -0
  228. package/dist/types/src/components/ForeignKeys/index.d.ts.map +1 -0
  229. package/dist/types/src/components/SpaceSettings/SpaceSettings.d.ts +10 -0
  230. package/dist/types/src/components/SpaceSettings/SpaceSettings.d.ts.map +1 -0
  231. package/dist/types/src/components/SpaceSettings/SpaceSettings.stories.d.ts +1657 -0
  232. package/dist/types/src/components/{ObjectDetails/BaseObjectSettings.stories.d.ts.map → SpaceSettings/SpaceSettings.stories.d.ts.map} +1 -1
  233. package/dist/types/src/components/SpaceSettings/index.d.ts +2 -0
  234. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -0
  235. package/dist/types/src/components/SyncStatus/save-tracker.d.ts +1 -1
  236. package/dist/types/src/components/SyncStatus/save-tracker.d.ts.map +1 -1
  237. package/dist/types/src/components/SyncStatus/status.d.ts +2 -2
  238. package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -1
  239. package/dist/types/src/components/index.d.ts +3 -2
  240. package/dist/types/src/components/index.d.ts.map +1 -1
  241. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +2 -3
  242. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -1
  243. package/dist/types/src/containers/CollectionArticle/index.d.ts +1 -2
  244. package/dist/types/src/containers/CollectionArticle/index.d.ts.map +1 -1
  245. package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts +3 -2
  246. package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts.map +1 -1
  247. package/dist/types/src/containers/CollectionSection/index.d.ts +1 -2
  248. package/dist/types/src/containers/CollectionSection/index.d.ts.map +1 -1
  249. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts +3 -2
  250. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -1
  251. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts +1654 -0
  252. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.stories.d.ts.map +1 -0
  253. package/dist/types/src/containers/CreateObjectDialog/index.d.ts +2 -2
  254. package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -1
  255. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -1
  256. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts +1658 -0
  257. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.d.ts.map +1 -0
  258. package/dist/types/src/containers/CreateSpaceDialog/index.d.ts +1 -2
  259. package/dist/types/src/containers/CreateSpaceDialog/index.d.ts.map +1 -1
  260. package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -1
  261. package/dist/types/src/containers/InlineSyncStatus/index.d.ts +1 -2
  262. package/dist/types/src/containers/InlineSyncStatus/index.d.ts.map +1 -1
  263. package/dist/types/src/containers/JoinDialog/JoinDialog.d.ts.map +1 -1
  264. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts +1657 -0
  265. package/dist/types/src/containers/JoinDialog/JoinDialog.stories.d.ts.map +1 -0
  266. package/dist/types/src/containers/JoinDialog/index.d.ts +2 -2
  267. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -1
  268. package/dist/types/src/containers/MembersContainer/MembersContainer.d.ts +3 -4
  269. package/dist/types/src/containers/MembersContainer/MembersContainer.d.ts.map +1 -1
  270. package/dist/types/src/containers/MembersContainer/index.d.ts +1 -2
  271. package/dist/types/src/containers/MembersContainer/index.d.ts.map +1 -1
  272. package/dist/types/src/containers/MenuFooter/MenuFooter.d.ts.map +1 -1
  273. package/dist/types/src/containers/MenuFooter/index.d.ts +1 -2
  274. package/dist/types/src/containers/MenuFooter/index.d.ts.map +1 -1
  275. package/dist/types/src/containers/ObjectCardStack/index.d.ts +1 -2
  276. package/dist/types/src/containers/ObjectCardStack/index.d.ts.map +1 -1
  277. package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts +10 -0
  278. package/dist/types/src/containers/ObjectProperties/ObjectProperties.d.ts.map +1 -0
  279. package/dist/types/src/containers/ObjectProperties/index.d.ts +2 -0
  280. package/dist/types/src/containers/ObjectProperties/index.d.ts.map +1 -0
  281. package/dist/types/src/containers/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -1
  282. package/dist/types/src/containers/ObjectRenamePopover/index.d.ts +1 -2
  283. package/dist/types/src/containers/ObjectRenamePopover/index.d.ts.map +1 -1
  284. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts +2 -2
  285. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -1
  286. package/dist/types/src/containers/RecordArticle/RecordArticle.stories.d.ts +14 -0
  287. package/dist/types/src/containers/RecordArticle/RecordArticle.stories.d.ts.map +1 -0
  288. package/dist/types/src/containers/RecordArticle/index.d.ts +1 -2
  289. package/dist/types/src/containers/RecordArticle/index.d.ts.map +1 -1
  290. package/dist/types/src/containers/RelatedArticle/RelatedArticle.d.ts +6 -0
  291. package/dist/types/src/containers/RelatedArticle/RelatedArticle.d.ts.map +1 -0
  292. package/dist/types/src/containers/RelatedArticle/index.d.ts +2 -0
  293. package/dist/types/src/containers/RelatedArticle/index.d.ts.map +1 -0
  294. package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts +2 -5
  295. package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts.map +1 -1
  296. package/dist/types/src/containers/SchemaContainer/index.d.ts +1 -2
  297. package/dist/types/src/containers/SchemaContainer/index.d.ts.map +1 -1
  298. package/dist/types/src/containers/SmallPresenceLive/index.d.ts +1 -1
  299. package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -1
  300. package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts +1 -1
  301. package/dist/types/src/containers/SpacePresence/SpacePresence.d.ts.map +1 -1
  302. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts +1629 -1404
  303. package/dist/types/src/containers/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  304. package/dist/types/src/containers/SpacePresence/index.d.ts +2 -2
  305. package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -1
  306. package/dist/types/src/containers/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -1
  307. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +1 -2
  308. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +1 -1
  309. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts +5 -8
  310. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts.map +1 -1
  311. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts +1633 -1407
  312. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.d.ts.map +1 -1
  313. package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts +1 -2
  314. package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts.map +1 -1
  315. package/dist/types/src/containers/SyncStatus/SyncStatus.d.ts.map +1 -1
  316. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts +1629 -1404
  317. package/dist/types/src/containers/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  318. package/dist/types/src/containers/SyncStatus/index.d.ts +1 -2
  319. package/dist/types/src/containers/SyncStatus/index.d.ts.map +1 -1
  320. package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -1
  321. package/dist/types/src/containers/ViewEditor/index.d.ts +1 -2
  322. package/dist/types/src/containers/ViewEditor/index.d.ts.map +1 -1
  323. package/dist/types/src/containers/index.d.ts +3 -3
  324. package/dist/types/src/containers/index.d.ts.map +1 -1
  325. package/dist/types/src/hooks/index.d.ts +1 -2
  326. package/dist/types/src/hooks/index.d.ts.map +1 -1
  327. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  328. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  329. package/dist/types/src/hooks/useRelatedObjects.d.ts +10 -0
  330. package/dist/types/src/hooks/useRelatedObjects.d.ts.map +1 -0
  331. package/dist/types/src/index.d.ts +0 -3
  332. package/dist/types/src/index.d.ts.map +1 -1
  333. package/dist/types/src/operations/add-object.d.ts +5 -0
  334. package/dist/types/src/operations/add-object.d.ts.map +1 -0
  335. package/dist/types/src/operations/add-relation.d.ts +5 -0
  336. package/dist/types/src/operations/add-relation.d.ts.map +1 -0
  337. package/dist/types/src/operations/add-schema.d.ts +5 -0
  338. package/dist/types/src/operations/add-schema.d.ts.map +1 -0
  339. package/dist/types/src/operations/close.d.ts +5 -0
  340. package/dist/types/src/operations/close.d.ts.map +1 -0
  341. package/dist/types/src/operations/create.d.ts +5 -0
  342. package/dist/types/src/operations/create.d.ts.map +1 -0
  343. package/dist/types/src/operations/definitions.d.ts +217 -0
  344. package/dist/types/src/operations/definitions.d.ts.map +1 -0
  345. package/dist/types/src/operations/delete-field.d.ts +5 -0
  346. package/dist/types/src/operations/delete-field.d.ts.map +1 -0
  347. package/dist/types/src/operations/duplicate-object.d.ts +5 -0
  348. package/dist/types/src/operations/duplicate-object.d.ts.map +1 -0
  349. package/dist/types/src/operations/get-share-link.d.ts +5 -0
  350. package/dist/types/src/operations/get-share-link.d.ts.map +1 -0
  351. package/dist/types/src/operations/helpers.d.ts +7 -0
  352. package/dist/types/src/operations/helpers.d.ts.map +1 -0
  353. package/dist/types/src/operations/index.d.ts +4 -0
  354. package/dist/types/src/operations/index.d.ts.map +1 -0
  355. package/dist/types/src/operations/join.d.ts +5 -0
  356. package/dist/types/src/operations/join.d.ts.map +1 -0
  357. package/dist/types/src/operations/migrate.d.ts +5 -0
  358. package/dist/types/src/operations/migrate.d.ts.map +1 -0
  359. package/dist/types/src/operations/open-create-object.d.ts +5 -0
  360. package/dist/types/src/operations/open-create-object.d.ts.map +1 -0
  361. package/dist/types/src/operations/open-create-space.d.ts +5 -0
  362. package/dist/types/src/operations/open-create-space.d.ts.map +1 -0
  363. package/dist/types/src/operations/open-members.d.ts +5 -0
  364. package/dist/types/src/operations/open-members.d.ts.map +1 -0
  365. package/dist/types/src/operations/open-settings.d.ts +5 -0
  366. package/dist/types/src/operations/open-settings.d.ts.map +1 -0
  367. package/dist/types/src/operations/open.d.ts +5 -0
  368. package/dist/types/src/operations/open.d.ts.map +1 -0
  369. package/dist/types/src/operations/remove-objects.d.ts +5 -0
  370. package/dist/types/src/operations/remove-objects.d.ts.map +1 -0
  371. package/dist/types/src/operations/rename-object.d.ts +5 -0
  372. package/dist/types/src/operations/rename-object.d.ts.map +1 -0
  373. package/dist/types/src/operations/rename.d.ts +5 -0
  374. package/dist/types/src/operations/rename.d.ts.map +1 -0
  375. package/dist/types/src/operations/restore-field.d.ts +5 -0
  376. package/dist/types/src/operations/restore-field.d.ts.map +1 -0
  377. package/dist/types/src/operations/restore-objects.d.ts +5 -0
  378. package/dist/types/src/operations/restore-objects.d.ts.map +1 -0
  379. package/dist/types/src/operations/share.d.ts +5 -0
  380. package/dist/types/src/operations/share.d.ts.map +1 -0
  381. package/dist/types/src/operations/snapshot.d.ts +5 -0
  382. package/dist/types/src/operations/snapshot.d.ts.map +1 -0
  383. package/dist/types/src/operations/wait-for-object.d.ts +5 -0
  384. package/dist/types/src/operations/wait-for-object.d.ts.map +1 -0
  385. package/dist/types/src/translations.d.ts +1629 -1404
  386. package/dist/types/src/translations.d.ts.map +1 -1
  387. package/dist/types/src/types/Settings.d.ts +10 -0
  388. package/dist/types/src/types/Settings.d.ts.map +1 -0
  389. package/dist/types/src/types/capabilities.d.ts +4 -7
  390. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  391. package/dist/types/src/types/events.d.ts +1 -1
  392. package/dist/types/src/types/events.d.ts.map +1 -1
  393. package/dist/types/src/types/form.d.ts +1 -21
  394. package/dist/types/src/types/form.d.ts.map +1 -1
  395. package/dist/types/src/types/types.d.ts +22 -589
  396. package/dist/types/src/types/types.d.ts.map +1 -1
  397. package/dist/types/src/util.d.ts +6 -164
  398. package/dist/types/src/util.d.ts.map +1 -1
  399. package/dist/types/tsconfig.tsbuildinfo +1 -1
  400. package/package.json +94 -67
  401. package/src/SpacePlugin.ts +95 -48
  402. package/src/capabilities/app-graph-builder/app-graph-builder.ts +14 -657
  403. package/src/capabilities/app-graph-builder/extensions/collections.ts +352 -0
  404. package/src/capabilities/app-graph-builder/extensions/companions.ts +88 -0
  405. package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
  406. package/src/capabilities/app-graph-builder/extensions/settings.ts +66 -0
  407. package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
  408. package/src/capabilities/app-graph-builder/extensions/shared.ts +190 -0
  409. package/src/capabilities/app-graph-builder/extensions/spaces.ts +326 -0
  410. package/src/capabilities/app-graph-builder/extensions/types.ts +430 -0
  411. package/src/capabilities/app-graph-builder/index.ts +1 -1
  412. package/src/capabilities/{app-graph-serializer/app-graph-serializer.ts → app-graph-serializer.ts} +12 -10
  413. package/src/capabilities/identity-created.ts +34 -0
  414. package/src/capabilities/index.ts +21 -9
  415. package/src/capabilities/migrations.ts +59 -0
  416. package/src/capabilities/navigation-handler/index.ts +9 -0
  417. package/src/capabilities/navigation-handler/navigation-handler.ts +50 -0
  418. package/src/capabilities/navigation-resolver.ts +94 -0
  419. package/src/capabilities/node.ts +13 -0
  420. package/src/capabilities/operation-handler.ts +14 -0
  421. package/src/capabilities/{react-root/react-root.tsx → react-root.tsx} +3 -3
  422. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +147 -141
  423. package/src/capabilities/repair.ts +42 -0
  424. package/src/capabilities/{settings/settings.ts → settings.ts} +4 -4
  425. package/src/capabilities/{spaces-ready/spaces-ready.ts → spaces-ready.ts} +71 -30
  426. package/src/capabilities/{state/state.ts → state.ts} +6 -4
  427. package/src/capabilities/undo-mappings.ts +59 -0
  428. package/src/cli/commands/database/add.ts +6 -11
  429. package/src/cli/commands/database/query/query.test.ts +3 -5
  430. package/src/cli/commands/space/close/close.ts +1 -1
  431. package/src/cli/commands/space/create/create.ts +3 -3
  432. package/src/cli/commands/space/info/info.test.ts +1 -16
  433. package/src/cli/commands/space/info/info.ts +16 -3
  434. package/src/cli/commands/space/join/join.ts +1 -1
  435. package/src/cli/commands/space/list/list.test.ts +3 -2
  436. package/src/cli/commands/space/list/list.ts +17 -5
  437. package/src/cli/commands/space/members/members.test.ts +0 -13
  438. package/src/cli/commands/space/open/open.ts +1 -1
  439. package/src/cli/commands/space/schema/list/list.test.ts +0 -13
  440. package/src/cli/plugin.ts +21 -11
  441. package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +15 -15
  442. package/src/components/AwaitingObject/index.ts +5 -0
  443. package/src/components/CreateDialog/CreateObjectPanel.tsx +66 -64
  444. package/src/components/{ObjectDetails → ForeignKeys}/ForeignKeys.tsx +8 -2
  445. package/src/components/{ObjectDetails → ForeignKeys}/index.ts +0 -1
  446. package/src/components/SpaceSettings/SpaceSettings.stories.tsx +34 -0
  447. package/src/components/SpaceSettings/SpaceSettings.tsx +69 -0
  448. package/src/components/SpaceSettings/index.ts +5 -0
  449. package/src/components/SyncStatus/status.ts +7 -7
  450. package/src/components/index.ts +5 -2
  451. package/src/constants.ts +6 -6
  452. package/src/containers/CollectionArticle/CollectionArticle.tsx +43 -89
  453. package/src/containers/CollectionArticle/index.ts +1 -3
  454. package/src/containers/CollectionSection/CollectionSection.tsx +6 -4
  455. package/src/containers/CollectionSection/index.ts +1 -3
  456. package/src/containers/CreateObjectDialog/CreateObjectDialog.stories.tsx +81 -0
  457. package/src/containers/CreateObjectDialog/CreateObjectDialog.tsx +42 -44
  458. package/src/containers/CreateObjectDialog/index.ts +2 -3
  459. package/src/containers/CreateSpaceDialog/CreateSpaceDialog.stories.tsx +46 -0
  460. package/src/containers/CreateSpaceDialog/CreateSpaceDialog.tsx +27 -22
  461. package/src/containers/CreateSpaceDialog/index.ts +1 -3
  462. package/src/containers/InlineSyncStatus/InlineSyncStatus.tsx +9 -20
  463. package/src/containers/InlineSyncStatus/index.ts +1 -3
  464. package/src/containers/JoinDialog/JoinDialog.stories.tsx +43 -0
  465. package/src/containers/JoinDialog/JoinDialog.tsx +19 -16
  466. package/src/containers/JoinDialog/index.ts +2 -3
  467. package/src/containers/MembersContainer/MembersContainer.tsx +49 -69
  468. package/src/containers/MembersContainer/index.ts +1 -3
  469. package/src/containers/MenuFooter/MenuFooter.tsx +6 -6
  470. package/src/containers/MenuFooter/index.ts +1 -3
  471. package/src/containers/ObjectCardStack/ObjectCardStack.tsx +4 -4
  472. package/src/containers/ObjectCardStack/index.ts +1 -3
  473. package/src/containers/ObjectProperties/ObjectProperties.tsx +32 -0
  474. package/src/containers/ObjectProperties/index.ts +5 -0
  475. package/src/containers/ObjectRenamePopover/ObjectRenamePopover.tsx +6 -6
  476. package/src/containers/ObjectRenamePopover/index.ts +1 -3
  477. package/src/containers/RecordArticle/RecordArticle.stories.tsx +81 -0
  478. package/src/containers/RecordArticle/RecordArticle.tsx +36 -104
  479. package/src/containers/RecordArticle/index.ts +1 -3
  480. package/src/containers/RelatedArticle/RelatedArticle.tsx +82 -0
  481. package/src/containers/RelatedArticle/index.ts +5 -0
  482. package/src/containers/SchemaContainer/SchemaContainer.tsx +7 -8
  483. package/src/containers/SchemaContainer/index.ts +1 -3
  484. package/src/containers/SmallPresenceLive/index.ts +1 -1
  485. package/src/containers/SpacePresence/SpacePresence.stories.tsx +1 -1
  486. package/src/containers/SpacePresence/SpacePresence.tsx +7 -19
  487. package/src/containers/SpacePresence/index.ts +2 -3
  488. package/src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx +7 -7
  489. package/src/containers/SpaceRenamePopover/index.ts +1 -3
  490. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.stories.tsx +14 -12
  491. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +136 -82
  492. package/src/containers/SpaceSettingsContainer/index.ts +1 -3
  493. package/src/containers/SyncStatus/SyncStatus.stories.tsx +1 -1
  494. package/src/containers/SyncStatus/SyncStatus.tsx +35 -39
  495. package/src/containers/SyncStatus/index.ts +1 -3
  496. package/src/containers/ViewEditor/ViewEditor.tsx +7 -8
  497. package/src/containers/ViewEditor/index.ts +1 -3
  498. package/src/containers/index.ts +3 -3
  499. package/src/hooks/index.ts +1 -2
  500. package/src/hooks/useInputSurfaceLookup.tsx +9 -2
  501. package/src/hooks/useRelatedObjects.ts +79 -0
  502. package/src/index.ts +0 -3
  503. package/src/meta.ts +1 -1
  504. package/src/operations/add-object.ts +81 -0
  505. package/src/operations/add-relation.ts +25 -0
  506. package/src/operations/add-schema.ts +51 -0
  507. package/src/operations/close.ts +16 -0
  508. package/src/operations/create.ts +59 -0
  509. package/src/operations/definitions.ts +438 -0
  510. package/src/operations/delete-field.ts +42 -0
  511. package/src/operations/duplicate-object.ts +30 -0
  512. package/src/operations/get-share-link.ts +43 -0
  513. package/src/operations/helpers.ts +10 -0
  514. package/src/operations/index.ts +31 -0
  515. package/src/operations/join.ts +26 -0
  516. package/src/operations/migrate.ts +45 -0
  517. package/src/operations/open-create-object.ts +40 -0
  518. package/src/operations/open-create-space.ts +21 -0
  519. package/src/operations/open-members.ts +20 -0
  520. package/src/operations/open-settings.ts +20 -0
  521. package/src/operations/open.ts +16 -0
  522. package/src/operations/remove-objects.ts +87 -0
  523. package/src/operations/rename-object.ts +24 -0
  524. package/src/operations/rename.ts +22 -0
  525. package/src/operations/restore-field.ts +36 -0
  526. package/src/operations/restore-objects.ts +49 -0
  527. package/src/operations/share.ts +27 -0
  528. package/src/operations/snapshot.ts +24 -0
  529. package/src/operations/wait-for-object.ts +21 -0
  530. package/src/translations.ts +259 -204
  531. package/src/types/Settings.ts +18 -0
  532. package/src/types/capabilities.ts +12 -11
  533. package/src/types/events.ts +6 -6
  534. package/src/types/form.ts +6 -65
  535. package/src/types/types.ts +29 -553
  536. package/src/util.ts +79 -0
  537. package/dist/lib/browser/CollectionArticle-WASDM637.mjs +0 -142
  538. package/dist/lib/browser/CollectionArticle-WASDM637.mjs.map +0 -7
  539. package/dist/lib/browser/CollectionSection-LK4O6QDD.mjs +0 -23
  540. package/dist/lib/browser/CollectionSection-LK4O6QDD.mjs.map +0 -7
  541. package/dist/lib/browser/CreateObjectDialog-MA6DPYMD.mjs +0 -146
  542. package/dist/lib/browser/CreateObjectDialog-MA6DPYMD.mjs.map +0 -7
  543. package/dist/lib/browser/CreateSpaceDialog-WCEICWIE.mjs +0 -64
  544. package/dist/lib/browser/CreateSpaceDialog-WCEICWIE.mjs.map +0 -7
  545. package/dist/lib/browser/InlineSyncStatus-BT7BRBCO.mjs +0 -62
  546. package/dist/lib/browser/InlineSyncStatus-BT7BRBCO.mjs.map +0 -7
  547. package/dist/lib/browser/JoinDialog-PMCAIRCU.mjs +0 -117
  548. package/dist/lib/browser/JoinDialog-PMCAIRCU.mjs.map +0 -7
  549. package/dist/lib/browser/MembersContainer-MMFCXLVZ.mjs +0 -257
  550. package/dist/lib/browser/MembersContainer-MMFCXLVZ.mjs.map +0 -7
  551. package/dist/lib/browser/MenuFooter-HYBTNOBT.mjs +0 -38
  552. package/dist/lib/browser/MenuFooter-HYBTNOBT.mjs.map +0 -7
  553. package/dist/lib/browser/ObjectCardStack-CHWNLUYQ.mjs +0 -64
  554. package/dist/lib/browser/ObjectCardStack-CHWNLUYQ.mjs.map +0 -7
  555. package/dist/lib/browser/ObjectDetails-YUGVDNSA.mjs +0 -43
  556. package/dist/lib/browser/ObjectDetails-YUGVDNSA.mjs.map +0 -7
  557. package/dist/lib/browser/ObjectRenamePopover-RQUOVPFH.mjs +0 -70
  558. package/dist/lib/browser/ObjectRenamePopover-RQUOVPFH.mjs.map +0 -7
  559. package/dist/lib/browser/RecordArticle-ONWKYM3Z.mjs +0 -112
  560. package/dist/lib/browser/RecordArticle-ONWKYM3Z.mjs.map +0 -7
  561. package/dist/lib/browser/SchemaContainer-62AJXKAF.mjs +0 -49
  562. package/dist/lib/browser/SchemaContainer-62AJXKAF.mjs.map +0 -7
  563. package/dist/lib/browser/SmallPresenceLive-LZD2NGKK.mjs +0 -10
  564. package/dist/lib/browser/SpacePluginSettings-BRJTADV5.mjs +0 -59
  565. package/dist/lib/browser/SpacePluginSettings-BRJTADV5.mjs.map +0 -7
  566. package/dist/lib/browser/SpacePresence-MLU576L6.mjs +0 -13
  567. package/dist/lib/browser/SpacePresence-MLU576L6.mjs.map +0 -7
  568. package/dist/lib/browser/SpaceRenamePopover-SAKMPDLX.mjs +0 -62
  569. package/dist/lib/browser/SpaceRenamePopover-SAKMPDLX.mjs.map +0 -7
  570. package/dist/lib/browser/SpaceSettingsContainer-UBMVKUPR.mjs +0 -242
  571. package/dist/lib/browser/SpaceSettingsContainer-UBMVKUPR.mjs.map +0 -7
  572. package/dist/lib/browser/SyncStatus-5UQ7CIII.mjs +0 -141
  573. package/dist/lib/browser/SyncStatus-5UQ7CIII.mjs.map +0 -7
  574. package/dist/lib/browser/ViewEditor-F74RR542.mjs +0 -116
  575. package/dist/lib/browser/ViewEditor-F74RR542.mjs.map +0 -7
  576. package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs +0 -593
  577. package/dist/lib/browser/app-graph-builder-VFYFI7CD.mjs.map +0 -7
  578. package/dist/lib/browser/app-graph-serializer-KTQOBYUF.mjs +0 -85
  579. package/dist/lib/browser/app-graph-serializer-KTQOBYUF.mjs.map +0 -7
  580. package/dist/lib/browser/chunk-ABCDB5YC.mjs +0 -177
  581. package/dist/lib/browser/chunk-ABCDB5YC.mjs.map +0 -7
  582. package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
  583. package/dist/lib/browser/chunk-ASV6DYFH.mjs.map +0 -7
  584. package/dist/lib/browser/chunk-J5F4LUJD.mjs +0 -13
  585. package/dist/lib/browser/chunk-J5F4LUJD.mjs.map +0 -7
  586. package/dist/lib/browser/chunk-PXVKN4LU.mjs +0 -234
  587. package/dist/lib/browser/chunk-PXVKN4LU.mjs.map +0 -7
  588. package/dist/lib/browser/chunk-RWOK4F4G.mjs +0 -576
  589. package/dist/lib/browser/chunk-RWOK4F4G.mjs.map +0 -7
  590. package/dist/lib/browser/chunk-SJCNERZI.mjs +0 -115
  591. package/dist/lib/browser/chunk-SJCNERZI.mjs.map +0 -7
  592. package/dist/lib/browser/chunk-TPZUQ5DC.mjs +0 -749
  593. package/dist/lib/browser/chunk-TPZUQ5DC.mjs.map +0 -7
  594. package/dist/lib/browser/chunk-USN5QKRV.mjs +0 -715
  595. package/dist/lib/browser/chunk-USN5QKRV.mjs.map +0 -7
  596. package/dist/lib/browser/chunk-XIIYC7P5.mjs +0 -118
  597. package/dist/lib/browser/chunk-XIIYC7P5.mjs.map +0 -7
  598. package/dist/lib/browser/identity-created-VKLIZOXJ.mjs +0 -23
  599. package/dist/lib/browser/identity-created-VKLIZOXJ.mjs.map +0 -7
  600. package/dist/lib/browser/operation-resolver-Y3HYRXX7.mjs +0 -831
  601. package/dist/lib/browser/operation-resolver-Y3HYRXX7.mjs.map +0 -7
  602. package/dist/lib/browser/react-root-UYBW5RE7.mjs +0 -30
  603. package/dist/lib/browser/react-root-UYBW5RE7.mjs.map +0 -7
  604. package/dist/lib/browser/react-surface-NJ23NZFF.mjs +0 -386
  605. package/dist/lib/browser/react-surface-NJ23NZFF.mjs.map +0 -7
  606. package/dist/lib/browser/repair-N2I4DR2Z.mjs +0 -50
  607. package/dist/lib/browser/repair-N2I4DR2Z.mjs.map +0 -7
  608. package/dist/lib/browser/settings-2ELVUFDR.mjs +0 -34
  609. package/dist/lib/browser/settings-2ELVUFDR.mjs.map +0 -7
  610. package/dist/lib/browser/spaces-ready-Q6JASPT4.mjs +0 -243
  611. package/dist/lib/browser/spaces-ready-Q6JASPT4.mjs.map +0 -7
  612. package/dist/lib/browser/state-CTX4WQOM.mjs +0 -58
  613. package/dist/lib/browser/state-CTX4WQOM.mjs.map +0 -7
  614. package/dist/lib/node-esm/CollectionArticle-A6GGG73Z.mjs +0 -143
  615. package/dist/lib/node-esm/CollectionArticle-A6GGG73Z.mjs.map +0 -7
  616. package/dist/lib/node-esm/CollectionSection-WWKDOAAT.mjs +0 -24
  617. package/dist/lib/node-esm/CollectionSection-WWKDOAAT.mjs.map +0 -7
  618. package/dist/lib/node-esm/CreateObjectDialog-4WEFNDDF.mjs +0 -147
  619. package/dist/lib/node-esm/CreateObjectDialog-4WEFNDDF.mjs.map +0 -7
  620. package/dist/lib/node-esm/CreateSpaceDialog-P7QCPB5J.mjs +0 -65
  621. package/dist/lib/node-esm/CreateSpaceDialog-P7QCPB5J.mjs.map +0 -7
  622. package/dist/lib/node-esm/InlineSyncStatus-3PCXU7NX.mjs +0 -63
  623. package/dist/lib/node-esm/InlineSyncStatus-3PCXU7NX.mjs.map +0 -7
  624. package/dist/lib/node-esm/JoinDialog-XEOLJZVN.mjs +0 -118
  625. package/dist/lib/node-esm/JoinDialog-XEOLJZVN.mjs.map +0 -7
  626. package/dist/lib/node-esm/MembersContainer-UQZLW3YA.mjs +0 -258
  627. package/dist/lib/node-esm/MembersContainer-UQZLW3YA.mjs.map +0 -7
  628. package/dist/lib/node-esm/MenuFooter-2QB3453Y.mjs +0 -39
  629. package/dist/lib/node-esm/MenuFooter-2QB3453Y.mjs.map +0 -7
  630. package/dist/lib/node-esm/ObjectCardStack-UXEWG6RV.mjs +0 -65
  631. package/dist/lib/node-esm/ObjectCardStack-UXEWG6RV.mjs.map +0 -7
  632. package/dist/lib/node-esm/ObjectDetails-26PVHUQL.mjs +0 -44
  633. package/dist/lib/node-esm/ObjectDetails-26PVHUQL.mjs.map +0 -7
  634. package/dist/lib/node-esm/ObjectRenamePopover-EHTP76G7.mjs +0 -71
  635. package/dist/lib/node-esm/ObjectRenamePopover-EHTP76G7.mjs.map +0 -7
  636. package/dist/lib/node-esm/RecordArticle-APY2WKUW.mjs +0 -113
  637. package/dist/lib/node-esm/RecordArticle-APY2WKUW.mjs.map +0 -7
  638. package/dist/lib/node-esm/SchemaContainer-XR2D6MYX.mjs +0 -50
  639. package/dist/lib/node-esm/SchemaContainer-XR2D6MYX.mjs.map +0 -7
  640. package/dist/lib/node-esm/SmallPresenceLive-K4243KXR.mjs +0 -11
  641. package/dist/lib/node-esm/SpacePluginSettings-VEB5IGG7.mjs +0 -60
  642. package/dist/lib/node-esm/SpacePluginSettings-VEB5IGG7.mjs.map +0 -7
  643. package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs +0 -14
  644. package/dist/lib/node-esm/SpacePresence-HC2XGQ54.mjs.map +0 -7
  645. package/dist/lib/node-esm/SpaceRenamePopover-WHM632OT.mjs +0 -63
  646. package/dist/lib/node-esm/SpaceRenamePopover-WHM632OT.mjs.map +0 -7
  647. package/dist/lib/node-esm/SpaceSettingsContainer-Y62J2L65.mjs +0 -243
  648. package/dist/lib/node-esm/SpaceSettingsContainer-Y62J2L65.mjs.map +0 -7
  649. package/dist/lib/node-esm/SyncStatus-XTJAVHPN.mjs +0 -142
  650. package/dist/lib/node-esm/SyncStatus-XTJAVHPN.mjs.map +0 -7
  651. package/dist/lib/node-esm/ViewEditor-B2BLYF5U.mjs +0 -117
  652. package/dist/lib/node-esm/ViewEditor-B2BLYF5U.mjs.map +0 -7
  653. package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs +0 -594
  654. package/dist/lib/node-esm/app-graph-builder-N37ED6UI.mjs.map +0 -7
  655. package/dist/lib/node-esm/app-graph-serializer-GXQYSQAZ.mjs +0 -86
  656. package/dist/lib/node-esm/app-graph-serializer-GXQYSQAZ.mjs.map +0 -7
  657. package/dist/lib/node-esm/chunk-3DWZCVVQ.mjs +0 -716
  658. package/dist/lib/node-esm/chunk-3DWZCVVQ.mjs.map +0 -7
  659. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
  660. package/dist/lib/node-esm/chunk-CVXULIYC.mjs.map +0 -7
  661. package/dist/lib/node-esm/chunk-GWUPFA7J.mjs +0 -577
  662. package/dist/lib/node-esm/chunk-GWUPFA7J.mjs.map +0 -7
  663. package/dist/lib/node-esm/chunk-IV7VKVGC.mjs +0 -117
  664. package/dist/lib/node-esm/chunk-IV7VKVGC.mjs.map +0 -7
  665. package/dist/lib/node-esm/chunk-OSFH2XKO.mjs +0 -119
  666. package/dist/lib/node-esm/chunk-OSFH2XKO.mjs.map +0 -7
  667. package/dist/lib/node-esm/chunk-P2AVANDG.mjs +0 -235
  668. package/dist/lib/node-esm/chunk-P2AVANDG.mjs.map +0 -7
  669. package/dist/lib/node-esm/chunk-S2IELCDF.mjs +0 -15
  670. package/dist/lib/node-esm/chunk-S2IELCDF.mjs.map +0 -7
  671. package/dist/lib/node-esm/chunk-UJQUBDQS.mjs +0 -178
  672. package/dist/lib/node-esm/chunk-UJQUBDQS.mjs.map +0 -7
  673. package/dist/lib/node-esm/chunk-WW6YYBRG.mjs +0 -750
  674. package/dist/lib/node-esm/chunk-WW6YYBRG.mjs.map +0 -7
  675. package/dist/lib/node-esm/identity-created-EGSTETJ5.mjs +0 -25
  676. package/dist/lib/node-esm/identity-created-EGSTETJ5.mjs.map +0 -7
  677. package/dist/lib/node-esm/operation-resolver-IRQ2NVUQ.mjs +0 -832
  678. package/dist/lib/node-esm/operation-resolver-IRQ2NVUQ.mjs.map +0 -7
  679. package/dist/lib/node-esm/react-root-UEN3LLJD.mjs +0 -31
  680. package/dist/lib/node-esm/react-root-UEN3LLJD.mjs.map +0 -7
  681. package/dist/lib/node-esm/react-surface-UDO3PGH6.mjs +0 -387
  682. package/dist/lib/node-esm/react-surface-UDO3PGH6.mjs.map +0 -7
  683. package/dist/lib/node-esm/repair-P6ND7ZRU.mjs +0 -51
  684. package/dist/lib/node-esm/repair-P6ND7ZRU.mjs.map +0 -7
  685. package/dist/lib/node-esm/settings-DCTVM2BV.mjs +0 -35
  686. package/dist/lib/node-esm/settings-DCTVM2BV.mjs.map +0 -7
  687. package/dist/lib/node-esm/spaces-ready-XLGRTJV2.mjs +0 -244
  688. package/dist/lib/node-esm/spaces-ready-XLGRTJV2.mjs.map +0 -7
  689. package/dist/lib/node-esm/state-G74V3WZG.mjs +0 -59
  690. package/dist/lib/node-esm/state-G74V3WZG.mjs.map +0 -7
  691. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +0 -1
  692. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +0 -3
  693. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +0 -1
  694. package/dist/types/src/capabilities/identity-created/identity-created.d.ts.map +0 -1
  695. package/dist/types/src/capabilities/identity-created/index.d.ts +0 -3
  696. package/dist/types/src/capabilities/identity-created/index.d.ts.map +0 -1
  697. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -6
  698. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  699. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -9
  700. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  701. package/dist/types/src/capabilities/react-root/index.d.ts +0 -6
  702. package/dist/types/src/capabilities/react-root/index.d.ts.map +0 -1
  703. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +0 -1
  704. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -5
  705. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  706. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  707. package/dist/types/src/capabilities/repair/index.d.ts +0 -3
  708. package/dist/types/src/capabilities/repair/index.d.ts.map +0 -1
  709. package/dist/types/src/capabilities/repair/repair.d.ts.map +0 -1
  710. package/dist/types/src/capabilities/settings/index.d.ts +0 -7
  711. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  712. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  713. package/dist/types/src/capabilities/spaces-ready/index.d.ts +0 -3
  714. package/dist/types/src/capabilities/spaces-ready/index.d.ts.map +0 -1
  715. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts.map +0 -1
  716. package/dist/types/src/capabilities/state/index.d.ts +0 -13
  717. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  718. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  719. package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
  720. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts +0 -8
  721. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +0 -1
  722. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +0 -1433
  723. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +0 -1
  724. package/dist/types/src/components/ObjectDetails/index.d.ts +0 -3
  725. package/dist/types/src/components/ObjectDetails/index.d.ts.map +0 -1
  726. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts +0 -9
  727. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +0 -1
  728. package/dist/types/src/components/ObjectForm/index.d.ts +0 -2
  729. package/dist/types/src/components/ObjectForm/index.d.ts.map +0 -1
  730. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts +0 -9
  731. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +0 -1
  732. package/dist/types/src/containers/ObjectDetails/index.d.ts +0 -3
  733. package/dist/types/src/containers/ObjectDetails/index.d.ts.map +0 -1
  734. package/dist/types/src/containers/SpacePluginSettings/SpacePluginSettings.d.ts +0 -8
  735. package/dist/types/src/containers/SpacePluginSettings/SpacePluginSettings.d.ts.map +0 -1
  736. package/dist/types/src/containers/SpacePluginSettings/index.d.ts +0 -3
  737. package/dist/types/src/containers/SpacePluginSettings/index.d.ts.map +0 -1
  738. package/dist/types/src/helpers/index.d.ts +0 -2
  739. package/dist/types/src/helpers/index.d.ts.map +0 -1
  740. package/dist/types/src/helpers/query.d.ts +0 -7
  741. package/dist/types/src/helpers/query.d.ts.map +0 -1
  742. package/dist/types/src/helpers/query.test.d.ts +0 -2
  743. package/dist/types/src/helpers/query.test.d.ts.map +0 -1
  744. package/dist/types/src/hooks/useActiveSpace.d.ts +0 -4
  745. package/dist/types/src/hooks/useActiveSpace.d.ts.map +0 -1
  746. package/dist/types/src/hooks/useTypeOptions.d.ts +0 -10
  747. package/dist/types/src/hooks/useTypeOptions.d.ts.map +0 -1
  748. package/src/capabilities/app-graph-serializer/index.ts +0 -7
  749. package/src/capabilities/identity-created/identity-created.ts +0 -29
  750. package/src/capabilities/identity-created/index.ts +0 -7
  751. package/src/capabilities/operation-resolver/index.ts +0 -7
  752. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -771
  753. package/src/capabilities/react-root/index.ts +0 -7
  754. package/src/capabilities/react-surface/index.ts +0 -7
  755. package/src/capabilities/repair/index.ts +0 -7
  756. package/src/capabilities/repair/repair.ts +0 -71
  757. package/src/capabilities/settings/index.ts +0 -7
  758. package/src/capabilities/spaces-ready/index.ts +0 -7
  759. package/src/capabilities/state/index.ts +0 -7
  760. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +0 -63
  761. package/src/components/ObjectDetails/BaseObjectSettings.tsx +0 -122
  762. package/src/components/ObjectForm/ObjectForm.tsx +0 -97
  763. package/src/components/ObjectForm/index.ts +0 -5
  764. package/src/containers/ObjectDetails/ObjectDetails.tsx +0 -36
  765. package/src/containers/ObjectDetails/index.ts +0 -7
  766. package/src/containers/SpacePluginSettings/SpacePluginSettings.tsx +0 -65
  767. package/src/containers/SpacePluginSettings/index.ts +0 -7
  768. package/src/helpers/index.ts +0 -5
  769. package/src/helpers/query.test.ts +0 -24
  770. package/src/helpers/query.ts +0 -166
  771. package/src/hooks/useActiveSpace.ts +0 -24
  772. package/src/hooks/useTypeOptions.ts +0 -25
  773. package/src/util.tsx +0 -956
  774. /package/dist/lib/browser/{SmallPresenceLive-LZD2NGKK.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  775. /package/dist/lib/node-esm/{SmallPresenceLive-K4243KXR.mjs.map → chunk-HSLMI22Q.mjs.map} +0 -0
  776. /package/dist/types/src/capabilities/{app-graph-serializer/app-graph-serializer.d.ts → app-graph-serializer.d.ts} +0 -0
  777. /package/dist/types/src/capabilities/{identity-created/identity-created.d.ts → identity-created.d.ts} +0 -0
  778. /package/dist/types/src/capabilities/{react-root/react-root.d.ts → react-root.d.ts} +0 -0
  779. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
  780. /package/dist/types/src/capabilities/{spaces-ready/spaces-ready.d.ts → spaces-ready.d.ts} +0 -0
  781. /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
  782. /package/dist/types/src/components/{ObjectDetails → ForeignKeys}/ForeignKeys.d.ts +0 -0
package/src/util.tsx DELETED
@@ -1,956 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';
6
- import * as Effect from 'effect/Effect';
7
- import * as Match from 'effect/Match';
8
- import * as Option from 'effect/Option';
9
-
10
- import { type CapabilityManager } from '@dxos/app-framework';
11
- import { LayoutOperation } from '@dxos/app-toolkit';
12
- import { type Space, SpaceState, isSpace } from '@dxos/client/echo';
13
- import { type Database, Feed, Filter, JsonSchema, Obj, Query, Ref, Type } from '@dxos/echo';
14
- import { Collection } from '@dxos/echo';
15
- import { invariant } from '@dxos/invariant';
16
- import { Migrations } from '@dxos/migrations';
17
- import { Operation } from '@dxos/operation';
18
- import { Graph, Node } from '@dxos/plugin-graph';
19
- import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention/types';
20
- import { type TreeData } from '@dxos/react-ui-list';
21
- import { Expando, ManagedCollection } from '@dxos/schema';
22
- import { type Label } from '@dxos/ui-types';
23
- import { createFilename } from '@dxos/util';
24
-
25
- import { meta } from './meta';
26
- import { SPACE_TYPE, SpaceOperation } from './types';
27
-
28
- //
29
- // Constants
30
- //
31
-
32
- const CACHEABLE_PROPS: string[] = ['label', 'icon', 'role'];
33
- const ACCEPT_ECHO_CLASS: Set<string> = new Set(['echo']);
34
-
35
- /** Shared translation namespace descriptor. */
36
- const META_NS: { ns: string } = { ns: meta.id };
37
-
38
- /** Static label tuples (translation key + namespace). */
39
- const PERSONAL_SPACE_LABEL: Label = ['personal space label', META_NS];
40
- const UNNAMED_SPACE_LABEL: Label = ['unnamed space label', META_NS];
41
- const SETTINGS_PANEL_LABEL: Label = ['settings panel label', META_NS];
42
- const MIGRATE_SPACE_LABEL: Label = ['migrate space label', META_NS];
43
- const CREATE_OBJECT_IN_SPACE_LABEL: Label = ['create object in space label', META_NS];
44
- const RENAME_SPACE_LABEL: Label = ['rename space label', META_NS];
45
- const ADD_VIEW_TO_SCHEMA_LABEL: Label = ['add view to schema label', META_NS];
46
- const SNAPSHOT_BY_SCHEMA_LABEL: Label = ['snapshot by schema label', META_NS];
47
- const CREATE_OBJECT_IN_COLLECTION_LABEL: Label = ['create object in collection label', META_NS];
48
- const CREATE_OBJECT_IN_SYSTEM_COLLECTION_LABEL: Label = ['create object in system collection label', META_NS];
49
- const COPY_LINK_LABEL: Label = ['copy link label', META_NS];
50
- const EXPOSE_OBJECT_LABEL: Label = ['expose object label', META_NS];
51
-
52
- /** Stable callback constants (no closed-over state). */
53
- const CAN_DROP_FALSE = () => false;
54
- const CAN_DROP_SPACE = (source: TreeData) => Obj.isObject(source.item.data) || isSpace(source.item.data);
55
- const CAN_DROP_OBJECT = (source: TreeData) => Node.isGraphNode(source.item) && Obj.isObject(source.item.data);
56
-
57
- export const SPACES = `${meta.id}-spaces`;
58
- export const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
59
- // TODO(wittjosiah): Remove.
60
- export const SHARED = 'shared-spaces';
61
-
62
- const SCHEMA_GRAPH_NODE_PARTIALS = {
63
- role: 'branch',
64
- canDrop: CAN_DROP_FALSE,
65
- } as const;
66
-
67
- const getSchemaGraphNodePartials = () => SCHEMA_GRAPH_NODE_PARTIALS;
68
-
69
- //
70
- // Caching Infrastructure
71
- //
72
-
73
- /** Creates a string-keyed memoized factory. Returns the same instance for the same key. */
74
- // TODO(wittjosiah): Factor out as app-graph utility.
75
- function createFactory<T>(create: (key: string) => T): (key: string) => T;
76
- function createFactory<TArgs extends any[], T>(
77
- create: (...args: TArgs) => T,
78
- keyFn: (...args: TArgs) => string,
79
- ): (...args: TArgs) => T;
80
- function createFactory<TArgs extends any[], T>(
81
- create: (...args: TArgs) => T,
82
- keyFn?: (...args: TArgs) => string,
83
- ): (...args: TArgs) => T {
84
- const cache = new Map<string, T>();
85
- return (...args: TArgs) => {
86
- const key = keyFn ? keyFn(...args) : (args[0] as string);
87
- if (cache.has(key)) {
88
- return cache.get(key)!;
89
- }
90
- const value = create(...args);
91
- cache.set(key, value);
92
- return value;
93
- };
94
- }
95
-
96
- /** Stable Set instances keyed by spaceId. */
97
- const getAcceptPersistenceKey = createFactory((spaceId: string) => new Set([spaceId]));
98
-
99
- /** Caches for closures that capture ECHO objects, keyed by DXN/ID string. */
100
- const rearrangeCache = new Map<string, (nextOrder: unknown[]) => void>();
101
- const blockInstructionCache = new Map<string, (source: TreeData, instruction: Instruction) => boolean>();
102
- const spaceRearrangeCache = new Map<string, (nextOrder: Space[]) => void>();
103
- const collectionPartialsCache = new Map<string, ReturnType<typeof buildCollectionPartials>>();
104
- const systemCollectionPartialsCache = new Map<
105
- string,
106
- {
107
- label: Label;
108
- icon?: string;
109
- iconHue?: string;
110
- acceptPersistenceClass: Set<string>;
111
- acceptPersistenceKey: Set<string>;
112
- role: string;
113
- }
114
- >();
115
- const spaceActionsCache = new Map<
116
- string,
117
- {
118
- state: SpaceState;
119
- hasPendingMigration: boolean;
120
- migrating: boolean;
121
- actions: Node.NodeArg<Node.ActionData<Operation.Service>>[];
122
- }
123
- >();
124
-
125
- /** Dynamic label tuples keyed by composite key string. */
126
- const getDynamicLabel = createFactory(
127
- (key: string, ns: string, extra?: Record<string, any>): Label => [key, { ns, ...extra }],
128
- (key: string, ns: string, extra?: Record<string, any>) => `${key}\0${ns}${extra ? `\0${JSON.stringify(extra)}` : ''}`,
129
- );
130
-
131
- //
132
- // Node Constructors
133
- //
134
-
135
- /**
136
- * Builds an app-graph node for a space (workspace), including settings children and optional rearrange handler.
137
- *
138
- * @param space - Space to wrap as a graph node.
139
- * @param navigable - Whether the space node is navigable; affects disabled state.
140
- * @param personal - Passed to display name resolution (e.g. "Personal space" fallback).
141
- * @param namesCache - Optional cache of space id to display name.
142
- * @param resolve - Metadata resolver for typename.
143
- * @param graph - Optional expandable graph for sorting edges on rearrange.
144
- * @param spacesOrder - Optional ECHO object holding workspace order; used with graph for persist on rearrange.
145
- * @returns A graph node for the space.
146
- */
147
- export const constructSpaceNode = ({
148
- space,
149
- navigable = false,
150
- personal,
151
- namesCache,
152
- resolve,
153
- graph,
154
- spacesOrder,
155
- }: {
156
- space: Space;
157
- navigable?: boolean;
158
- personal?: boolean;
159
- namesCache?: Record<string, string>;
160
- resolve: (typename: string) => Record<string, any>;
161
- /** Graph for sorting edges on rearrange. */
162
- graph?: Graph.ExpandableGraph;
163
- // TODO(wittjosiah): Should be Type.Expando but it doesn't work with the AtomQuery result type.
164
- /** Spaces order object for persisting workspace order. */
165
- spacesOrder?: Obj.Any;
166
- }) => {
167
- const hasPendingMigration = checkPendingMigration(space);
168
- const collection =
169
- space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;
170
- const partials =
171
- space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection)
172
- ? getCollectionGraphNodePartials({ collection, db: space.db, resolve })
173
- : {};
174
-
175
- let onRearrange: ((nextOrder: Space[]) => void) | undefined;
176
- if (graph && spacesOrder) {
177
- onRearrange = spaceRearrangeCache.get(space.id);
178
- if (!onRearrange) {
179
- onRearrange = (nextOrder: Space[]) => {
180
- // NOTE: This is needed to ensure order is updated by next animation frame.
181
- Graph.sortEdges(
182
- graph,
183
- Node.RootId,
184
- 'outbound',
185
- nextOrder.map(({ id }) => id),
186
- );
187
-
188
- // Persist order to database.
189
- Obj.change(spacesOrder, (mutableOrder: any) => {
190
- mutableOrder.order = nextOrder.map(({ id }) => id);
191
- });
192
- };
193
- spaceRearrangeCache.set(space.id, onRearrange);
194
- }
195
- }
196
-
197
- return {
198
- id: space.id,
199
- type: SPACE_TYPE,
200
- cacheable: CACHEABLE_PROPS,
201
- data: space,
202
- properties: {
203
- ...partials,
204
- label: getSpaceDisplayName(space, { personal, namesCache }),
205
- description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,
206
- hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,
207
- icon:
208
- space.state.get() === SpaceState.SPACE_READY && space.properties.icon
209
- ? `ph--${space.properties.icon}--regular`
210
- : undefined,
211
- iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,
212
- disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
213
- disposition: 'workspace',
214
- testId: 'spacePlugin.space',
215
- onRearrange,
216
- // TODO(wittjosiah): Find a way to only allow space as source for rearranging.
217
- canDrop: CAN_DROP_SPACE,
218
- },
219
- nodes: [
220
- {
221
- id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
222
- type: `${meta.id}/settings`,
223
- data: null,
224
- properties: {
225
- label: SETTINGS_PANEL_LABEL,
226
- icon: 'ph--faders--regular',
227
- disposition: 'alternate-tree',
228
- },
229
- },
230
- ],
231
- };
232
- };
233
-
234
- /**
235
- * Builds an app-graph node for an ECHO object (collection, managed feed, schema, or generic object).
236
- *
237
- * @param db - Database for the object's space.
238
- * @param object - ECHO object to wrap.
239
- * @param disposition - Optional UI disposition.
240
- * @param droppable - Whether the node accepts drops.
241
- * @param navigable - Whether the node is navigable.
242
- * @param managedCollectionChild - Whether the object is a managed collection child (affects blockInstruction).
243
- * @param resolve - Metadata resolver for typename.
244
- * @param parentCollection - Parent collection for rearranging objects.
245
- * @returns A graph node or null if the object has no typename.
246
- */
247
- export const createObjectNode = ({
248
- db,
249
- object,
250
- disposition,
251
- droppable = true,
252
- navigable = false,
253
- managedCollectionChild = false,
254
- resolve,
255
- parentCollection,
256
- }: {
257
- db: Database.Database;
258
- object: Obj.Unknown;
259
- disposition?: string;
260
- droppable?: boolean;
261
- navigable?: boolean;
262
- managedCollectionChild?: boolean;
263
- resolve: (typename: string) => Record<string, any>;
264
- /** Parent collection for rearranging objects. */
265
- parentCollection?: Collection.Collection;
266
- }) => {
267
- const type = Obj.getTypename(object);
268
- if (!type) {
269
- return null;
270
- }
271
-
272
- // For feeds, use the kind property for metadata lookup instead of the generic Feed typename.
273
- const metadataKey = Obj.instanceOf(Feed.Feed, object) ? (object.kind ?? type) : type;
274
- const metadata = resolve(metadataKey);
275
- const partials = Obj.instanceOf(Collection.Collection, object)
276
- ? getCollectionGraphNodePartials({ collection: object, db, resolve })
277
- : Obj.instanceOf(ManagedCollection.ManagedCollection, object)
278
- ? getSystemCollectionNodePartials({ collection: object, db, resolve })
279
- : Obj.instanceOf(Type.PersistentType, object)
280
- ? getSchemaGraphNodePartials()
281
- : metadata.graphProps;
282
-
283
- // TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.
284
- // e.g., create new collection with no name and rename it.
285
- const label =
286
- (object as any).name ||
287
- Obj.getLabel(object) ||
288
- // TODO(wittjosiah): Remove metadata labels.
289
- metadata.label?.(object) ||
290
- getDynamicLabel('object name placeholder', metadataKey, { default: 'New item' });
291
-
292
- const selectable =
293
- (!Obj.instanceOf(Type.PersistentType, object) &&
294
- !Obj.instanceOf(ManagedCollection.ManagedCollection, object) &&
295
- !Obj.instanceOf(Collection.Collection, object)) ||
296
- (navigable && Obj.instanceOf(Collection.Collection, object));
297
-
298
- let onRearrange: ((nextOrder: unknown[]) => void) | undefined;
299
- if (parentCollection) {
300
- const collectionId = Obj.getDXN(parentCollection).toString();
301
- onRearrange = rearrangeCache.get(collectionId);
302
- if (!onRearrange) {
303
- onRearrange = (nextOrder: unknown[]) => {
304
- Obj.change(parentCollection, (c) => {
305
- c.objects = nextOrder.filter(Obj.isObject).map(Ref.make);
306
- });
307
- };
308
- rearrangeCache.set(collectionId, onRearrange);
309
- }
310
- }
311
-
312
- const objectId = Obj.getDXN(object).toString();
313
- const blockInstructionKey = `${objectId}:${managedCollectionChild}`;
314
- let blockInstruction = blockInstructionCache.get(blockInstructionKey);
315
- if (!blockInstruction) {
316
- blockInstruction = (source: TreeData, instruction: Instruction) => {
317
- if (source.item.properties.managedCollectionChild) {
318
- return true;
319
- }
320
- if (Obj.instanceOf(ManagedCollection.ManagedCollection, object)) {
321
- return !instruction.type.startsWith('reorder');
322
- }
323
- return managedCollectionChild;
324
- };
325
- blockInstructionCache.set(blockInstructionKey, blockInstruction);
326
- }
327
-
328
- const canDrop = droppable ? CAN_DROP_OBJECT : CAN_DROP_FALSE;
329
-
330
- return {
331
- id: Obj.getDXN(object).toString(),
332
- type,
333
- cacheable: CACHEABLE_PROPS,
334
- data: object,
335
- properties: {
336
- label,
337
- icon: metadata.icon ?? 'ph--placeholder--regular',
338
- iconHue: metadata.iconHue,
339
- disposition,
340
- testId: 'spacePlugin.object',
341
- persistenceClass: 'echo',
342
- persistenceKey: db.spaceId,
343
- selectable,
344
- managedCollectionChild,
345
- onRearrange,
346
- blockInstruction,
347
- canDrop,
348
- ...partials,
349
- },
350
- };
351
- };
352
-
353
- /**
354
- * Builds a static schema node for the app graph.
355
- *
356
- * @param schema - ECHO schema entity.
357
- * @param space - Space that owns the schema.
358
- * @returns A graph node for the schema.
359
- */
360
- export const createStaticSchemaNode = ({ schema, space }: { schema: Type.AnyEntity; space: Space }): Node.Node => {
361
- return {
362
- id: `${space.id}/${Type.getTypename(schema)}`,
363
- type: `${meta.id}/static-schema`,
364
- data: schema,
365
- properties: {
366
- label: getDynamicLabel('typename label', Type.getTypename(schema), {
367
- count: 2,
368
- default: Type.getTypename(schema),
369
- }),
370
- icon: 'ph--database--regular',
371
- iconHue: 'green',
372
- role: 'branch',
373
- selectable: false,
374
- canDrop: CAN_DROP_FALSE,
375
- space,
376
- },
377
- };
378
- };
379
-
380
- //
381
- // Action Constructors
382
- //
383
-
384
- /**
385
- * Builds the action list for a space node (migrate, create object, rename).
386
- * Results are cached by space id and state flags.
387
- *
388
- * @param space - Space to build actions for.
389
- * @param migrating - When true, treats the space as currently migrating (disables migrate action).
390
- * @returns Array of graph action descriptors for the space.
391
- */
392
- export const constructSpaceActions = ({ space, migrating }: { space: Space; migrating?: boolean }) => {
393
- const state = space.state.get();
394
- const hasPendingMigration = checkPendingMigration(space);
395
- const isMigrating = migrating || Migrations.running(space);
396
-
397
- const cached = spaceActionsCache.get(space.id);
398
- if (
399
- cached &&
400
- cached.state === state &&
401
- cached.hasPendingMigration === hasPendingMigration &&
402
- cached.migrating === isMigrating
403
- ) {
404
- return cached.actions;
405
- }
406
-
407
- const getId = (id: string) => `${id}/${space.id}`;
408
- const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [];
409
-
410
- if (hasPendingMigration) {
411
- actions.push({
412
- id: getId(SpaceOperation.Migrate.meta.key),
413
- type: Node.ActionGroupType,
414
- data: () => Operation.invoke(SpaceOperation.Migrate, { space }),
415
- properties: {
416
- label: MIGRATE_SPACE_LABEL,
417
- icon: 'ph--database--regular',
418
- disposition: 'list-item-primary',
419
- disabled: isMigrating,
420
- },
421
- });
422
- }
423
-
424
- if (state === SpaceState.SPACE_READY && !hasPendingMigration) {
425
- actions.push(
426
- {
427
- id: getId(SpaceOperation.OpenCreateObject.meta.key),
428
- type: Node.ActionType,
429
- data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: space.db }),
430
- properties: {
431
- label: CREATE_OBJECT_IN_SPACE_LABEL,
432
- icon: 'ph--plus--regular',
433
- disposition: 'list-item-primary',
434
- testId: 'spacePlugin.createObject',
435
- },
436
- },
437
- {
438
- id: getId(SpaceOperation.Rename.meta.key),
439
- type: Node.ActionType,
440
- data: (params?: Node.InvokeProps) => Operation.invoke(SpaceOperation.Rename, { space, caller: params?.caller }),
441
- properties: {
442
- label: RENAME_SPACE_LABEL,
443
- icon: 'ph--pencil-simple-line--regular',
444
- keyBinding: {
445
- macos: 'shift+F6',
446
- windows: 'shift+F6',
447
- },
448
- },
449
- },
450
- );
451
- }
452
-
453
- spaceActionsCache.set(space.id, { state, hasPendingMigration, migrating: isMigrating, actions });
454
- return actions;
455
- };
456
-
457
- /**
458
- * Builds the action list for a static schema node (add view, rename, delete, snapshot).
459
- *
460
- * @param schema - ECHO schema entity (e.g. static record type).
461
- * @param space - Space that owns the schema.
462
- * @param deletable - Whether the delete/snapshot actions are enabled.
463
- * @returns Array of graph action descriptors for the schema.
464
- */
465
- export const createStaticSchemaActions = ({
466
- schema,
467
- space,
468
- deletable,
469
- }: {
470
- schema: Type.AnyObj;
471
- space: Space;
472
- deletable: boolean;
473
- }) => {
474
- const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;
475
-
476
- const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [
477
- {
478
- id: getId(SpaceOperation.AddObject.meta.key),
479
- type: Node.ActionType,
480
- data: () =>
481
- Operation.invoke(SpaceOperation.OpenCreateObject, {
482
- target: space.db,
483
- views: true,
484
- initialFormValues: { typename: Type.getTypename(schema) },
485
- }),
486
- properties: {
487
- label: ADD_VIEW_TO_SCHEMA_LABEL,
488
- icon: 'ph--plus--regular',
489
- disposition: 'list-item-primary',
490
- testId: 'spacePlugin.addViewToSchema',
491
- },
492
- },
493
- {
494
- id: getId(SpaceOperation.RenameObject.meta.key),
495
- type: Node.ActionType,
496
- data: () => Effect.fail(new Error('Not implemented')),
497
- properties: {
498
- label: getDynamicLabel('rename object label', Type.getTypename(Type.PersistentType)),
499
- icon: 'ph--pencil-simple-line--regular',
500
- disabled: true,
501
- disposition: 'list-item',
502
- testId: 'spacePlugin.renameObject',
503
- },
504
- },
505
- {
506
- id: getId(SpaceOperation.RemoveObjects.meta.key),
507
- type: Node.ActionType,
508
- data: () =>
509
- Effect.sync(() => {
510
- const index = space.properties.staticRecords.findIndex(
511
- (typename: string) => typename === Type.getTypename(schema),
512
- );
513
- if (index > -1) {
514
- Obj.change(space.properties, (p) => {
515
- p.staticRecords.splice(index, 1);
516
- });
517
- }
518
- }),
519
- properties: {
520
- label: getDynamicLabel('delete object label', Type.getTypename(Type.PersistentType)),
521
- icon: 'ph--trash--regular',
522
- disposition: 'list-item',
523
- disabled: !deletable,
524
- testId: 'spacePlugin.deleteObject',
525
- },
526
- },
527
- {
528
- id: getId(SpaceOperation.Snapshot.meta.key),
529
- type: Node.ActionType,
530
- data: Effect.fnUntraced(function* () {
531
- const result = yield* Operation.invoke(SpaceOperation.Snapshot, {
532
- db: space.db,
533
- query: Query.select(Filter.type(schema)).ast,
534
- });
535
- if (result.snapshot) {
536
- yield* Effect.tryPromise(() =>
537
- downloadBlob(result.snapshot, createFilename({ parts: [space.id, Type.getTypename(schema)], ext: 'json' })),
538
- );
539
- }
540
- }),
541
- properties: {
542
- label: SNAPSHOT_BY_SCHEMA_LABEL,
543
- icon: 'ph--camera--regular',
544
- disposition: 'list-item',
545
- },
546
- },
547
- ];
548
-
549
- return actions;
550
- };
551
-
552
- /**
553
- * Builds the action list for an ECHO object node (create, rename, delete, copy link, etc.).
554
- *
555
- * @param object - ECHO object to build actions for.
556
- * @param graph - Readable app graph (used for action wiring).
557
- * @param resolve - Metadata resolver for typename.
558
- * @param capabilities - Capability manager for feature checks.
559
- * @param shareableLinkOrigin - Origin URL for shareable links.
560
- * @param deletable - Whether delete action is included. Defaults to true.
561
- * @param navigable - Whether the object is navigable (affects available actions). Defaults to false.
562
- * @returns Array of graph action descriptors for the object.
563
- */
564
- export const constructObjectActions = ({
565
- object,
566
- graph,
567
- resolve,
568
- capabilities,
569
- deletable = true,
570
- navigable = false,
571
- shareableLinkOrigin,
572
- }: {
573
- object: Obj.Unknown;
574
- graph: Graph.ReadableGraph;
575
- resolve: (typename: string) => Record<string, any>;
576
- capabilities: CapabilityManager.CapabilityManager;
577
- shareableLinkOrigin: string;
578
- deletable?: boolean;
579
- navigable?: boolean;
580
- }) => {
581
- const db = Obj.getDatabase(object);
582
- invariant(db, 'Database not found');
583
- const typename = Obj.getTypename(object);
584
- invariant(typename, 'Object has no typename');
585
-
586
- const getId = (id: string) => `${id}/${Obj.getDXN(object).toString()}`;
587
-
588
- const metadataKey = Match.value(object).pipe(
589
- Match.when(Obj.instanceOf(Feed.Feed), (feed: Feed.Feed) => feed.kind ?? Obj.getTypename(feed)!),
590
- Match.when(Obj.instanceOf(ManagedCollection.ManagedCollection), (managed) => {
591
- const [, feedKind] = managed.key.split('~') ?? [];
592
- return feedKind ?? managed.key;
593
- }),
594
- Match.orElse((obj) => Obj.getTypename(obj)!),
595
- );
596
- const managedCollection = Option.some(object).pipe(
597
- Option.filter(Obj.instanceOf(ManagedCollection.ManagedCollection)),
598
- Option.getOrUndefined,
599
- );
600
- const metadata = metadataKey ? resolve(metadataKey) : {};
601
- const createObject = metadata.createObject;
602
- const inputSchema = metadata.inputSchema;
603
-
604
- const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [
605
- ...(Obj.instanceOf(Collection.Collection, object)
606
- ? [
607
- {
608
- id: getId(SpaceOperation.OpenCreateObject.meta.key),
609
- type: Node.ActionType,
610
- data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: object }),
611
- properties: {
612
- label: CREATE_OBJECT_IN_COLLECTION_LABEL,
613
- icon: 'ph--plus--regular',
614
- disposition: 'list-item-primary',
615
- testId: 'spacePlugin.createObject',
616
- },
617
- },
618
- ]
619
- : []),
620
- ...(Obj.instanceOf(Type.PersistentType, object)
621
- ? [
622
- {
623
- id: getId(SpaceOperation.AddObject.meta.key),
624
- type: Node.ActionType,
625
- data: () =>
626
- Operation.invoke(SpaceOperation.OpenCreateObject, {
627
- target: db,
628
- views: true,
629
- initialFormValues: { typename: object.typename },
630
- }),
631
- properties: {
632
- label: ADD_VIEW_TO_SCHEMA_LABEL,
633
- icon: 'ph--plus--regular',
634
- disposition: 'list-item-primary',
635
- testId: 'spacePlugin.addViewToSchema',
636
- },
637
- },
638
- {
639
- id: getId(SpaceOperation.Snapshot.meta.key),
640
- type: Node.ActionType,
641
- data: Effect.fnUntraced(function* () {
642
- const result = yield* Operation.invoke(SpaceOperation.Snapshot, {
643
- db,
644
- query: Query.select(Filter.type(JsonSchema.toEffectSchema(object.jsonSchema))).ast,
645
- });
646
- if (result.snapshot) {
647
- yield* Effect.promise(() =>
648
- downloadBlob(result.snapshot, createFilename({ parts: [db.spaceId, object.typename], ext: 'json' })),
649
- );
650
- }
651
- }),
652
- properties: {
653
- label: SNAPSHOT_BY_SCHEMA_LABEL,
654
- icon: 'ph--camera--regular',
655
- disposition: 'list-item',
656
- },
657
- },
658
- ]
659
- : []),
660
- ...(createObject && managedCollection
661
- ? [
662
- {
663
- id: getId(SpaceOperation.OpenCreateObject.meta.key),
664
- type: Node.ActionType,
665
- data: Effect.fnUntraced(function* () {
666
- if (inputSchema) {
667
- yield* Operation.invoke(SpaceOperation.OpenCreateObject, {
668
- target: db,
669
- typename: managedCollection ? metadataKey : undefined,
670
- });
671
- } else {
672
- const createdObject = yield* createObject({}, { db, capabilities }) as Effect.Effect<
673
- Obj.Unknown,
674
- Error,
675
- never
676
- >;
677
- const addResult = yield* Operation.invoke(SpaceOperation.AddObject, {
678
- target: db,
679
- hidden: true,
680
- object: createdObject,
681
- });
682
- if (addResult.id) {
683
- yield* Operation.invoke(LayoutOperation.Open, { subject: [addResult.id] });
684
- }
685
- }
686
- }),
687
- properties: {
688
- label: CREATE_OBJECT_IN_SYSTEM_COLLECTION_LABEL,
689
- icon: 'ph--plus--regular',
690
- disposition: 'list-item-primary',
691
- testId: 'spacePlugin.createObject',
692
- },
693
- },
694
- ]
695
- : []),
696
- ...(managedCollection
697
- ? []
698
- : [
699
- {
700
- id: getId(SpaceOperation.RenameObject.meta.key),
701
- type: Node.ActionType,
702
- data: (params?: Node.InvokeProps) =>
703
- Operation.invoke(SpaceOperation.RenameObject, { object, caller: params?.caller }),
704
- properties: {
705
- label: getDynamicLabel('rename object label', metadataKey),
706
- icon: 'ph--pencil-simple-line--regular',
707
- disposition: 'list-item',
708
- // TODO(wittjosiah): Not working.
709
- // keyBinding: {
710
- // macos: 'shift+F6',
711
- // },
712
- testId: 'spacePlugin.renameObject',
713
- },
714
- },
715
- {
716
- id: getId(SpaceOperation.RemoveObjects.meta.key),
717
- type: Node.ActionType,
718
- data: Effect.fnUntraced(function* () {
719
- const collection = Graph.getConnections(
720
- graph,
721
- Obj.getDXN(object).toString(),
722
- Node.childRelation('inbound'),
723
- ).find((node: Node.Node): node is Node.Node<Collection.Collection> =>
724
- Obj.instanceOf(Collection.Collection, node.data),
725
- )?.data;
726
- yield* Operation.invoke(SpaceOperation.RemoveObjects, { objects: [object], target: collection });
727
- }),
728
- properties: {
729
- label: getDynamicLabel('delete object label', metadataKey),
730
- icon: 'ph--trash--regular',
731
- disposition: 'list-item',
732
- disabled: !deletable,
733
- // TODO(wittjosiah): This is a browser shortcut.
734
- // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
735
- testId: 'spacePlugin.deleteObject',
736
- },
737
- },
738
- ]),
739
- ...(navigable ||
740
- (!Obj.instanceOf(Collection.Collection, object) &&
741
- !Obj.instanceOf(ManagedCollection.ManagedCollection, object) &&
742
- !Obj.instanceOf(Type.PersistentType, object))
743
- ? [
744
- {
745
- id: getId('copy-link'),
746
- type: Node.ActionType,
747
- data: () =>
748
- Effect.promise(async () => {
749
- const url = `${shareableLinkOrigin}/${db.spaceId}/${Obj.getDXN(object).toString()}`;
750
- await navigator.clipboard.writeText(url);
751
- }),
752
- properties: {
753
- label: COPY_LINK_LABEL,
754
- icon: 'ph--link--regular',
755
- disposition: 'list-item',
756
- testId: 'spacePlugin.copyLink',
757
- },
758
- },
759
- ]
760
- : []),
761
- // TODO(wittjosiah): Factor out and apply to all nodes.
762
- {
763
- id: getId(LayoutOperation.Expose.meta.key),
764
- type: Node.ActionType,
765
- data: () => Operation.invoke(LayoutOperation.Expose, { subject: Obj.getDXN(object).toString() }),
766
- properties: {
767
- label: EXPOSE_OBJECT_LABEL,
768
- icon: 'ph--eye--regular',
769
- disposition: 'heading-list-item',
770
- testId: 'spacePlugin.exposeObject',
771
- },
772
- },
773
- ];
774
-
775
- return actions;
776
- };
777
-
778
- //
779
- // Helpers
780
- //
781
-
782
- const checkPendingMigration = (space: Space) => {
783
- return (
784
- space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||
785
- (space.state.get() === SpaceState.SPACE_READY &&
786
- !!Migrations.versionProperty &&
787
- space.properties[Migrations.versionProperty] !== Migrations.targetVersion)
788
- );
789
- };
790
-
791
- /**
792
- * Returns the display label for a space (name, namesCache entry, or fallback).
793
- *
794
- * @param space - Space to label.
795
- * @param options.personal - If true, use personal-space fallback when unnamed.
796
- * @param options.namesCache - Optional cache of space id to display name.
797
- * @returns Label tuple (translation key or string, and namespace).
798
- */
799
- // TODO(wittjosiah): Factor out? Exposer via capability?
800
- export const getSpaceDisplayName = (
801
- space: Space,
802
- { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},
803
- ): Label => {
804
- return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0
805
- ? space.properties.name!
806
- : namesCache[space.id]
807
- ? namesCache[space.id]
808
- : personal
809
- ? PERSONAL_SPACE_LABEL
810
- : UNNAMED_SPACE_LABEL;
811
- };
812
-
813
- // TODO(wittjosiah): Factor out.
814
- const downloadBlob = async (blob: Blob, filename: string) => {
815
- const url = URL.createObjectURL(blob);
816
- const a = document.createElement('a');
817
- a.href = url;
818
- a.download = filename;
819
-
820
- document.body.appendChild(a);
821
- a.click();
822
-
823
- document.body.removeChild(a);
824
- URL.revokeObjectURL(url);
825
- };
826
-
827
- const buildCollectionPartials = (
828
- collection: Collection.Collection,
829
- db: Database.Database,
830
- resolve: (typename: string) => Record<string, any>,
831
- ) => ({
832
- acceptPersistenceClass: ACCEPT_ECHO_CLASS,
833
- acceptPersistenceKey: getAcceptPersistenceKey(db.spaceId),
834
- role: 'branch' as const,
835
- onTransferStart: (child: Node.Node<Obj.Unknown>, index?: number) => {
836
- Obj.change(collection, (c) => {
837
- if (!c.objects.find((object) => object.target === child.data)) {
838
- if (typeof index !== 'undefined') {
839
- c.objects.splice(index, 0, Ref.make(child.data));
840
- } else {
841
- c.objects.push(Ref.make(child.data));
842
- }
843
- }
844
- });
845
- },
846
- onTransferEnd: (child: Node.Node<Obj.Unknown>, _destination: Node.Node) => {
847
- Obj.change(collection, (c) => {
848
- const index = c.objects.findIndex((object) => object.target === child.data);
849
- if (index > -1) {
850
- c.objects.splice(index, 1);
851
- }
852
- });
853
- },
854
- onCopy: async (child: Node.Node<Obj.Unknown>, index?: number) => {
855
- const newObject = await cloneObject(child.data, resolve, db);
856
- db.add(newObject);
857
- Obj.change(collection, (c) => {
858
- if (typeof index !== 'undefined') {
859
- c.objects.splice(index, 0, Ref.make(newObject));
860
- } else {
861
- c.objects.push(Ref.make(newObject));
862
- }
863
- });
864
- },
865
- });
866
-
867
- const getCollectionGraphNodePartials = ({
868
- collection,
869
- db,
870
- resolve,
871
- }: {
872
- collection: Collection.Collection;
873
- db: Database.Database;
874
- resolve: (typename: string) => Record<string, any>;
875
- }) => {
876
- const id = Obj.getDXN(collection).toString();
877
- let cached = collectionPartialsCache.get(id);
878
- if (!cached) {
879
- cached = buildCollectionPartials(collection, db, resolve);
880
- collectionPartialsCache.set(id, cached);
881
- }
882
- return cached;
883
- };
884
-
885
- const getSystemCollectionNodePartials = ({
886
- collection,
887
- db,
888
- resolve,
889
- }: {
890
- collection: ManagedCollection.ManagedCollection;
891
- db: Database.Database;
892
- resolve: (typename: string) => Record<string, any>;
893
- }) => {
894
- const cacheKey = `${db.spaceId}:${collection.key}`;
895
- let cached = systemCollectionPartialsCache.get(cacheKey);
896
- if (!cached) {
897
- const [, feedKind] = collection.key.split('~');
898
- const metadataKey = feedKind ?? collection.key;
899
- const metadata = resolve(metadataKey);
900
- cached = {
901
- label: getDynamicLabel('typename label', metadataKey, { count: 2 }),
902
- icon: metadata.icon,
903
- iconHue: metadata.iconHue,
904
- acceptPersistenceClass: ACCEPT_ECHO_CLASS,
905
- acceptPersistenceKey: getAcceptPersistenceKey(db.spaceId),
906
- role: 'branch',
907
- };
908
- systemCollectionPartialsCache.set(cacheKey, cached);
909
- }
910
- return cached;
911
- };
912
-
913
- //
914
- // Deprecated
915
- //
916
-
917
- /**
918
- * @deprecated This is a temporary solution.
919
- */
920
- export const getNestedObjects = async (
921
- object: Obj.Unknown,
922
- resolve: (typename: string) => Record<string, any>,
923
- ): Promise<Obj.Unknown[]> => {
924
- const type = Obj.getTypename(object);
925
- if (!type) {
926
- return [];
927
- }
928
-
929
- const metadata = resolve(type);
930
- const loadReferences = metadata?.loadReferences;
931
- if (typeof loadReferences !== 'function') {
932
- return [];
933
- }
934
-
935
- const objects: Obj.Unknown[] = await loadReferences(object);
936
- const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));
937
- return [...objects, ...nested.flat()];
938
- };
939
-
940
- /**
941
- * @deprecated Workaround for ECHO not supporting clone.
942
- */
943
- // TODO(burdon): Remove.
944
- export const cloneObject = async (
945
- object: Obj.Unknown,
946
- resolve: (typename: string) => Record<string, any>,
947
- newDb: Database.Database,
948
- ): Promise<Obj.Unknown> => {
949
- const schema = Obj.getSchema(object);
950
- const typename = schema ? (Type.getTypename(schema) ?? Expando.Expando.typename) : Expando.Expando.typename;
951
- const metadata = resolve(typename);
952
- const serializer = metadata.serializer;
953
- invariant(serializer, `No serializer for type: ${typename}`);
954
- const content = await serializer.serialize({ object });
955
- return serializer.deserialize({ content, db: newDb, newId: true });
956
- };