@dxos/plugin-space 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (544) hide show
  1. package/dist/lib/browser/CollectionArticle-XGSQDBMS.mjs +115 -0
  2. package/dist/lib/browser/CollectionArticle-XGSQDBMS.mjs.map +7 -0
  3. package/dist/lib/browser/CollectionSection-H2MBNI63.mjs +23 -0
  4. package/dist/lib/browser/CollectionSection-H2MBNI63.mjs.map +7 -0
  5. package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs +142 -0
  6. package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
  7. package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs +64 -0
  8. package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
  9. package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs +53 -0
  10. package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
  11. package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs +115 -0
  12. package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
  13. package/dist/lib/browser/MembersContainer-OGYV2L4M.mjs +257 -0
  14. package/dist/lib/browser/MembersContainer-OGYV2L4M.mjs.map +7 -0
  15. package/dist/lib/browser/MenuFooter-XCBDK7WP.mjs +37 -0
  16. package/dist/lib/browser/MenuFooter-XCBDK7WP.mjs.map +7 -0
  17. package/dist/lib/browser/ObjectCardStack-UOEHSBL5.mjs +64 -0
  18. package/dist/lib/browser/ObjectCardStack-UOEHSBL5.mjs.map +7 -0
  19. package/dist/lib/browser/ObjectDetails-ADGND237.mjs +43 -0
  20. package/dist/lib/browser/ObjectDetails-ADGND237.mjs.map +7 -0
  21. package/dist/lib/browser/ObjectRenamePopover-JNPJIFIR.mjs +70 -0
  22. package/dist/lib/browser/ObjectRenamePopover-JNPJIFIR.mjs.map +7 -0
  23. package/dist/lib/browser/{RecordArticle-W57QE7QV.mjs → RecordArticle-YXAJ23HH.mjs} +49 -34
  24. package/dist/lib/browser/RecordArticle-YXAJ23HH.mjs.map +7 -0
  25. package/dist/lib/browser/SchemaContainer-QWCSIZBS.mjs +49 -0
  26. package/dist/lib/browser/SchemaContainer-QWCSIZBS.mjs.map +7 -0
  27. package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
  28. package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs.map +7 -0
  29. package/dist/lib/browser/SpacePluginSettings-QGZKNQLK.mjs +59 -0
  30. package/dist/lib/browser/SpacePluginSettings-QGZKNQLK.mjs.map +7 -0
  31. package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
  32. package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs.map +7 -0
  33. package/dist/lib/browser/SpaceRenamePopover-ZL6RRZ2B.mjs +62 -0
  34. package/dist/lib/browser/SpaceRenamePopover-ZL6RRZ2B.mjs.map +7 -0
  35. package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs +242 -0
  36. package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
  37. package/dist/lib/browser/SyncStatus-6N7JJ7XF.mjs +141 -0
  38. package/dist/lib/browser/SyncStatus-6N7JJ7XF.mjs.map +7 -0
  39. package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs +113 -0
  40. package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
  41. package/dist/lib/browser/app-graph-builder-UEOUAYZG.mjs +1201 -0
  42. package/dist/lib/browser/app-graph-builder-UEOUAYZG.mjs.map +7 -0
  43. package/dist/lib/browser/{app-graph-serializer-7AT7QMSK.mjs → app-graph-serializer-UZWWGLGY.mjs} +11 -10
  44. package/dist/lib/browser/app-graph-serializer-UZWWGLGY.mjs.map +7 -0
  45. package/dist/lib/browser/chunk-2WHUSAHE.mjs +579 -0
  46. package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
  47. package/dist/lib/browser/{chunk-CCRSHECL.mjs → chunk-6IT5IBB5.mjs} +74 -105
  48. package/dist/lib/browser/chunk-6IT5IBB5.mjs.map +7 -0
  49. package/dist/lib/browser/chunk-6OA75CWN.mjs +77 -0
  50. package/dist/lib/browser/chunk-6OA75CWN.mjs.map +7 -0
  51. package/dist/lib/browser/{chunk-ZT2VPYRM.mjs → chunk-AUX3RRLY.mjs} +37 -12
  52. package/dist/lib/browser/chunk-AUX3RRLY.mjs.map +7 -0
  53. package/dist/lib/browser/{chunk-HSMQFM57.mjs → chunk-CBWGVOJE.mjs} +2 -2
  54. package/dist/lib/browser/{chunk-HSMQFM57.mjs.map → chunk-CBWGVOJE.mjs.map} +1 -1
  55. package/dist/lib/browser/{chunk-4WZUGLQQ.mjs → chunk-ICXESMDI.mjs} +13 -12
  56. package/dist/lib/browser/chunk-ICXESMDI.mjs.map +7 -0
  57. package/dist/lib/browser/chunk-RJUOHI3B.mjs +19 -0
  58. package/dist/lib/browser/{chunk-ASV6DYFH.mjs.map → chunk-RJUOHI3B.mjs.map} +1 -1
  59. package/dist/lib/browser/chunk-SJCNERZI.mjs +115 -0
  60. package/dist/lib/browser/chunk-SJCNERZI.mjs.map +7 -0
  61. package/dist/lib/browser/{chunk-AWVAX26X.mjs → chunk-SSTUPFZ2.mjs} +3 -3
  62. package/dist/lib/browser/chunk-UYOJYBGW.mjs +168 -0
  63. package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
  64. package/dist/lib/browser/cli/index.mjs +38 -44
  65. package/dist/lib/browser/cli/index.mjs.map +3 -3
  66. package/dist/lib/browser/{identity-created-VCFYLSBB.mjs → identity-created-ETXNQYR6.mjs} +5 -5
  67. package/dist/lib/browser/identity-created-ETXNQYR6.mjs.map +7 -0
  68. package/dist/lib/browser/index.mjs +104 -159
  69. package/dist/lib/browser/index.mjs.map +3 -3
  70. package/dist/lib/browser/meta.json +1 -1
  71. package/dist/lib/browser/{operation-resolver-SIRQT36Z.mjs → operation-resolver-D4LHB4D4.mjs} +95 -115
  72. package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
  73. package/dist/lib/browser/{react-root-3SPMM45V.mjs → react-root-OD2HP63B.mjs} +9 -9
  74. package/dist/lib/browser/react-root-OD2HP63B.mjs.map +7 -0
  75. package/dist/lib/browser/{react-surface-UUS7NDHS.mjs → react-surface-ANV4KTRV.mjs} +98 -115
  76. package/dist/lib/browser/react-surface-ANV4KTRV.mjs.map +7 -0
  77. package/dist/lib/browser/repair-NUVEV4AK.mjs +31 -0
  78. package/dist/lib/browser/repair-NUVEV4AK.mjs.map +7 -0
  79. package/dist/lib/browser/{settings-ZS2AQ73E.mjs → settings-RUDP2Q56.mjs} +6 -5
  80. package/dist/lib/browser/settings-RUDP2Q56.mjs.map +7 -0
  81. package/dist/lib/browser/{spaces-ready-OQDGWUOS.mjs → spaces-ready-B2GYL5IN.mjs} +15 -14
  82. package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
  83. package/dist/lib/browser/{state-7YZQB2KY.mjs → state-I6JDZCDE.mjs} +8 -8
  84. package/dist/lib/browser/state-I6JDZCDE.mjs.map +7 -0
  85. package/dist/lib/browser/types/index.mjs +2 -2
  86. package/dist/lib/node-esm/{CollectionArticle-V5OOJVJJ.mjs → CollectionArticle-MNLCROOX.mjs} +49 -59
  87. package/dist/lib/node-esm/CollectionArticle-MNLCROOX.mjs.map +7 -0
  88. package/dist/lib/node-esm/CollectionSection-BI66Y34F.mjs +24 -0
  89. package/dist/lib/node-esm/CollectionSection-BI66Y34F.mjs.map +7 -0
  90. package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs +143 -0
  91. package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
  92. package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs +65 -0
  93. package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
  94. package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs +54 -0
  95. package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
  96. package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs +116 -0
  97. package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
  98. package/dist/lib/node-esm/MembersContainer-4PV3Z4BA.mjs +258 -0
  99. package/dist/lib/node-esm/MembersContainer-4PV3Z4BA.mjs.map +7 -0
  100. package/dist/lib/node-esm/MenuFooter-PXG2GV6A.mjs +38 -0
  101. package/dist/lib/node-esm/MenuFooter-PXG2GV6A.mjs.map +7 -0
  102. package/dist/lib/node-esm/ObjectCardStack-THP5FKDV.mjs +65 -0
  103. package/dist/lib/node-esm/ObjectCardStack-THP5FKDV.mjs.map +7 -0
  104. package/dist/lib/node-esm/ObjectDetails-2SBF3KBM.mjs +44 -0
  105. package/dist/lib/node-esm/ObjectDetails-2SBF3KBM.mjs.map +7 -0
  106. package/dist/lib/node-esm/ObjectRenamePopover-BRPKVNVF.mjs +71 -0
  107. package/dist/lib/node-esm/ObjectRenamePopover-BRPKVNVF.mjs.map +7 -0
  108. package/dist/lib/node-esm/{RecordArticle-SSV74Z46.mjs → RecordArticle-344UK7QP.mjs} +49 -34
  109. package/dist/lib/node-esm/RecordArticle-344UK7QP.mjs.map +7 -0
  110. package/dist/lib/node-esm/SchemaContainer-5G4R3Z6O.mjs +50 -0
  111. package/dist/lib/node-esm/SchemaContainer-5G4R3Z6O.mjs.map +7 -0
  112. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs +10 -0
  113. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs.map +7 -0
  114. package/dist/lib/node-esm/SpacePluginSettings-PENV4GHL.mjs +60 -0
  115. package/dist/lib/node-esm/SpacePluginSettings-PENV4GHL.mjs.map +7 -0
  116. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs +13 -0
  117. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs.map +7 -0
  118. package/dist/lib/node-esm/SpaceRenamePopover-XEMTI4PU.mjs +63 -0
  119. package/dist/lib/node-esm/SpaceRenamePopover-XEMTI4PU.mjs.map +7 -0
  120. package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs +243 -0
  121. package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
  122. package/dist/lib/node-esm/SyncStatus-YEBGTNSD.mjs +142 -0
  123. package/dist/lib/node-esm/SyncStatus-YEBGTNSD.mjs.map +7 -0
  124. package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs +114 -0
  125. package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
  126. package/dist/lib/node-esm/app-graph-builder-W2QNDIZF.mjs +1202 -0
  127. package/dist/lib/node-esm/app-graph-builder-W2QNDIZF.mjs.map +7 -0
  128. package/dist/lib/node-esm/{app-graph-serializer-WJ2TIQG6.mjs → app-graph-serializer-RT2RQTV2.mjs} +11 -10
  129. package/dist/lib/node-esm/app-graph-serializer-RT2RQTV2.mjs.map +7 -0
  130. package/dist/lib/node-esm/{chunk-JOBIWCBC.mjs → chunk-2OLR2ZKH.mjs} +13 -12
  131. package/dist/lib/node-esm/chunk-2OLR2ZKH.mjs.map +7 -0
  132. package/dist/lib/node-esm/chunk-5KTTTTEX.mjs +20 -0
  133. package/dist/lib/node-esm/{chunk-CVXULIYC.mjs.map → chunk-5KTTTTEX.mjs.map} +1 -1
  134. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → chunk-63N5JJXI.mjs} +2 -2
  135. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs.map → chunk-63N5JJXI.mjs.map} +1 -1
  136. package/dist/lib/node-esm/chunk-EDC2RUJU.mjs +169 -0
  137. package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
  138. package/dist/lib/node-esm/{chunk-MPL6NHQX.mjs → chunk-EVNSLSQS.mjs} +74 -105
  139. package/dist/lib/node-esm/chunk-EVNSLSQS.mjs.map +7 -0
  140. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs +78 -0
  141. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs.map +7 -0
  142. package/dist/lib/node-esm/chunk-IV7VKVGC.mjs +117 -0
  143. package/dist/lib/node-esm/chunk-IV7VKVGC.mjs.map +7 -0
  144. package/dist/lib/node-esm/{chunk-2SW6S2BB.mjs → chunk-RYQQXNI7.mjs} +37 -12
  145. package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
  146. package/dist/lib/node-esm/chunk-S5BQUCL4.mjs +580 -0
  147. package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
  148. package/dist/lib/node-esm/{chunk-HREWB23G.mjs → chunk-XYLDAH5C.mjs} +3 -3
  149. package/dist/lib/node-esm/cli/index.mjs +38 -44
  150. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  151. package/dist/lib/node-esm/{identity-created-2SJABVJD.mjs → identity-created-U5LGULVL.mjs} +5 -5
  152. package/dist/lib/node-esm/identity-created-U5LGULVL.mjs.map +7 -0
  153. package/dist/lib/node-esm/index.mjs +104 -159
  154. package/dist/lib/node-esm/index.mjs.map +3 -3
  155. package/dist/lib/node-esm/meta.json +1 -1
  156. package/dist/lib/node-esm/{operation-resolver-ZE3XJL5J.mjs → operation-resolver-IL2AHNPN.mjs} +95 -115
  157. package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
  158. package/dist/lib/node-esm/{react-root-Y6JTGDTW.mjs → react-root-RILC5MBD.mjs} +9 -9
  159. package/dist/lib/node-esm/react-root-RILC5MBD.mjs.map +7 -0
  160. package/dist/lib/node-esm/{react-surface-SQ4SK3OK.mjs → react-surface-TA5KEWVW.mjs} +98 -115
  161. package/dist/lib/node-esm/react-surface-TA5KEWVW.mjs.map +7 -0
  162. package/dist/lib/node-esm/{repair-G3ZW3VG3.mjs → repair-LRZHFPSJ.mjs} +6 -25
  163. package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
  164. package/dist/lib/node-esm/{settings-PVI2VG56.mjs → settings-3EKSEAAG.mjs} +6 -5
  165. package/dist/lib/node-esm/settings-3EKSEAAG.mjs.map +7 -0
  166. package/dist/lib/node-esm/{spaces-ready-R744OHQG.mjs → spaces-ready-QK3EHBOS.mjs} +15 -14
  167. package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
  168. package/dist/lib/node-esm/{state-XE5YGPHM.mjs → state-W36RRYUO.mjs} +8 -8
  169. package/dist/lib/node-esm/state-W36RRYUO.mjs.map +7 -0
  170. package/dist/lib/node-esm/types/index.mjs +2 -2
  171. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  172. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +2 -2
  173. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  174. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +33 -0
  175. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
  176. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +19 -0
  177. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
  178. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
  179. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
  180. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +12 -0
  181. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
  182. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +57 -0
  183. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
  184. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
  185. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
  186. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
  187. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
  188. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +38 -0
  189. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
  190. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +1 -1
  191. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -1
  192. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +2 -2
  193. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -1
  194. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +1 -1
  195. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -1
  196. package/dist/types/src/capabilities/identity-created/identity-created.d.ts +1 -1
  197. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  198. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  199. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  200. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  201. package/dist/types/src/capabilities/react-root/react-root.d.ts +1 -1
  202. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -1
  203. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  204. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  205. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  206. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  207. package/dist/types/src/capabilities/repair/repair.d.ts +1 -1
  208. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
  209. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  210. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  211. package/dist/types/src/capabilities/settings/settings.d.ts +4 -3
  212. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  213. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts +1 -1
  214. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts.map +1 -1
  215. package/dist/types/src/capabilities/state/state.d.ts +1 -1
  216. package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
  217. package/dist/types/src/cli/commands/database/add.d.ts +0 -1
  218. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
  219. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  220. package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
  221. package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
  222. package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
  223. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +12 -5
  224. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  225. package/dist/types/src/components/CreateDialog/index.d.ts +1 -2
  226. package/dist/types/src/components/CreateDialog/index.d.ts.map +1 -1
  227. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -1
  228. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +68 -14
  229. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -1
  230. package/dist/types/src/components/ObjectDetails/index.d.ts +2 -2
  231. package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -1
  232. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -0
  233. package/dist/types/src/components/ObjectForm/index.d.ts +2 -0
  234. package/dist/types/src/components/ObjectForm/index.d.ts.map +1 -0
  235. package/dist/types/src/components/SyncStatus/index.d.ts +2 -2
  236. package/dist/types/src/components/SyncStatus/index.d.ts.map +1 -1
  237. package/dist/types/src/components/index.d.ts +2 -23
  238. package/dist/types/src/components/index.d.ts.map +1 -1
  239. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +8 -0
  240. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -0
  241. package/dist/types/src/containers/CollectionArticle/index.d.ts +3 -0
  242. package/dist/types/src/containers/CollectionArticle/index.d.ts.map +1 -0
  243. package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts +5 -0
  244. package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts.map +1 -0
  245. package/dist/types/src/containers/CollectionSection/index.d.ts +3 -0
  246. package/dist/types/src/containers/CollectionSection/index.d.ts.map +1 -0
  247. package/dist/types/src/{components/CreateDialog → containers/CreateObjectDialog}/CreateObjectDialog.d.ts +5 -3
  248. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -0
  249. package/dist/types/src/containers/CreateObjectDialog/index.d.ts +3 -0
  250. package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -0
  251. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -0
  252. package/dist/types/src/containers/CreateSpaceDialog/index.d.ts +3 -0
  253. package/dist/types/src/containers/CreateSpaceDialog/index.d.ts.map +1 -0
  254. package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -0
  255. package/dist/types/src/containers/InlineSyncStatus/index.d.ts +3 -0
  256. package/dist/types/src/containers/InlineSyncStatus/index.d.ts.map +1 -0
  257. package/dist/types/src/{components → containers}/JoinDialog/JoinDialog.d.ts.map +1 -1
  258. package/dist/types/src/containers/JoinDialog/index.d.ts +3 -0
  259. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -0
  260. package/dist/types/src/{components → containers}/MembersContainer/MembersContainer.d.ts.map +1 -1
  261. package/dist/types/src/containers/MembersContainer/index.d.ts +3 -0
  262. package/dist/types/src/containers/MembersContainer/index.d.ts.map +1 -0
  263. package/dist/types/src/containers/MenuFooter/MenuFooter.d.ts.map +1 -0
  264. package/dist/types/src/containers/MenuFooter/index.d.ts +3 -0
  265. package/dist/types/src/containers/MenuFooter/index.d.ts.map +1 -0
  266. package/dist/types/src/{components → containers}/ObjectCardStack/ObjectCardStack.d.ts +4 -1
  267. package/dist/types/src/containers/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
  268. package/dist/types/src/{components → containers}/ObjectCardStack/index.d.ts.map +1 -1
  269. package/dist/types/src/{components → containers}/ObjectDetails/ObjectDetails.d.ts +2 -1
  270. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -0
  271. package/dist/types/src/containers/ObjectDetails/index.d.ts +3 -0
  272. package/dist/types/src/containers/ObjectDetails/index.d.ts.map +1 -0
  273. package/dist/types/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -1
  274. package/dist/types/src/containers/ObjectRenamePopover/index.d.ts +3 -0
  275. package/dist/types/src/containers/ObjectRenamePopover/index.d.ts.map +1 -0
  276. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts +4 -0
  277. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -0
  278. package/dist/types/src/containers/RecordArticle/index.d.ts +3 -0
  279. package/dist/types/src/containers/RecordArticle/index.d.ts.map +1 -0
  280. package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts.map +1 -0
  281. package/dist/types/src/containers/SchemaContainer/index.d.ts +3 -0
  282. package/dist/types/src/containers/SchemaContainer/index.d.ts.map +1 -0
  283. package/dist/types/src/containers/SmallPresenceLive/index.d.ts +2 -0
  284. package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -0
  285. package/dist/types/src/{components → containers/SpacePluginSettings}/SpacePluginSettings.d.ts +1 -1
  286. package/dist/types/src/containers/SpacePluginSettings/SpacePluginSettings.d.ts.map +1 -0
  287. package/dist/types/src/containers/SpacePluginSettings/index.d.ts +3 -0
  288. package/dist/types/src/containers/SpacePluginSettings/index.d.ts.map +1 -0
  289. package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.d.ts.map +1 -1
  290. package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.stories.d.ts +67 -13
  291. package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  292. package/dist/types/src/containers/SpacePresence/index.d.ts +3 -0
  293. package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -0
  294. package/dist/types/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -1
  295. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +3 -0
  296. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +1 -0
  297. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts +10 -0
  298. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts.map +1 -0
  299. package/dist/types/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.d.ts +71 -14
  300. package/dist/types/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.d.ts.map +1 -1
  301. package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts +3 -0
  302. package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts.map +1 -0
  303. package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.d.ts.map +1 -1
  304. package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.stories.d.ts +67 -13
  305. package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  306. package/dist/types/src/containers/SyncStatus/index.d.ts +3 -0
  307. package/dist/types/src/containers/SyncStatus/index.d.ts.map +1 -0
  308. package/dist/types/src/{components → containers/ViewEditor}/ViewEditor.d.ts +1 -1
  309. package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -0
  310. package/dist/types/src/containers/ViewEditor/index.d.ts +3 -0
  311. package/dist/types/src/containers/ViewEditor/index.d.ts.map +1 -0
  312. package/dist/types/src/containers/index.d.ts +23 -0
  313. package/dist/types/src/containers/index.d.ts.map +1 -0
  314. package/dist/types/src/helpers/query.d.ts.map +1 -1
  315. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  316. package/dist/types/src/index.d.ts +1 -1
  317. package/dist/types/src/index.d.ts.map +1 -1
  318. package/dist/types/src/translations.d.ts +67 -13
  319. package/dist/types/src/translations.d.ts.map +1 -1
  320. package/dist/types/src/types/capabilities.d.ts +1 -1
  321. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  322. package/dist/types/src/types/events.d.ts.map +1 -1
  323. package/dist/types/src/types/form.d.ts +0 -2
  324. package/dist/types/src/types/form.d.ts.map +1 -1
  325. package/dist/types/src/types/types.d.ts +63 -124
  326. package/dist/types/src/types/types.d.ts.map +1 -1
  327. package/dist/types/src/util.d.ts +6 -121
  328. package/dist/types/src/util.d.ts.map +1 -1
  329. package/dist/types/tsconfig.tsbuildinfo +1 -1
  330. package/package.json +68 -66
  331. package/src/SpacePlugin.ts +83 -70
  332. package/src/capabilities/app-graph-builder/app-graph-builder.ts +17 -602
  333. package/src/capabilities/app-graph-builder/extensions/collections.ts +351 -0
  334. package/src/capabilities/app-graph-builder/extensions/companions.ts +80 -0
  335. package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
  336. package/src/capabilities/app-graph-builder/extensions/settings.ts +60 -0
  337. package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
  338. package/src/capabilities/app-graph-builder/extensions/shared.ts +171 -0
  339. package/src/capabilities/app-graph-builder/extensions/spaces.ts +338 -0
  340. package/src/capabilities/app-graph-builder/extensions/types.ts +432 -0
  341. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +6 -5
  342. package/src/capabilities/identity-created/identity-created.ts +4 -4
  343. package/src/capabilities/operation-resolver/operation-resolver.ts +97 -94
  344. package/src/capabilities/react-root/react-root.tsx +3 -3
  345. package/src/capabilities/react-surface/react-surface.tsx +79 -99
  346. package/src/capabilities/repair/repair.ts +3 -28
  347. package/src/capabilities/settings/settings.ts +3 -2
  348. package/src/capabilities/spaces-ready/spaces-ready.ts +8 -7
  349. package/src/capabilities/state/state.ts +7 -5
  350. package/src/cli/commands/database/add.ts +8 -10
  351. package/src/cli/commands/database/query/query.ts +1 -1
  352. package/src/cli/commands/database/remove.ts +2 -2
  353. package/src/cli/commands/database/stats.ts +1 -1
  354. package/src/cli/commands/space/close/close.ts +1 -1
  355. package/src/cli/commands/space/create/create.ts +1 -1
  356. package/src/cli/commands/space/join/join.ts +1 -1
  357. package/src/cli/commands/space/open/open.ts +1 -1
  358. package/src/cli/plugin.ts +34 -27
  359. package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +6 -5
  360. package/src/components/AwaitingObject/index.ts +5 -0
  361. package/src/components/CreateDialog/CreateObjectPanel.tsx +90 -111
  362. package/src/components/CreateDialog/index.ts +1 -2
  363. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +10 -10
  364. package/src/components/ObjectDetails/BaseObjectSettings.tsx +8 -8
  365. package/src/components/ObjectDetails/ForeignKeys.tsx +1 -1
  366. package/src/components/ObjectDetails/index.ts +2 -3
  367. package/src/components/{ObjectCardStack → ObjectForm}/ObjectForm.tsx +9 -7
  368. package/src/components/{JoinDialog → ObjectForm}/index.ts +1 -1
  369. package/src/components/SyncStatus/index.ts +2 -2
  370. package/src/components/index.ts +2 -18
  371. package/src/constants.ts +5 -5
  372. package/src/containers/CollectionArticle/CollectionArticle.tsx +139 -0
  373. package/src/containers/CollectionArticle/index.ts +7 -0
  374. package/src/{components → containers/CollectionSection}/CollectionSection.tsx +4 -4
  375. package/src/containers/CollectionSection/index.ts +7 -0
  376. package/src/{components/CreateDialog → containers/CreateObjectDialog}/CreateObjectDialog.tsx +62 -42
  377. package/src/containers/CreateObjectDialog/index.ts +6 -0
  378. package/src/{components/CreateDialog → containers/CreateSpaceDialog}/CreateSpaceDialog.tsx +6 -6
  379. package/src/containers/CreateSpaceDialog/index.ts +7 -0
  380. package/src/{components/SyncStatus → containers/InlineSyncStatus}/InlineSyncStatus.tsx +8 -19
  381. package/src/containers/InlineSyncStatus/index.ts +7 -0
  382. package/src/{components → containers}/JoinDialog/JoinDialog.tsx +10 -9
  383. package/src/containers/JoinDialog/index.ts +6 -0
  384. package/src/{components → containers}/MembersContainer/MembersContainer.tsx +50 -53
  385. package/src/containers/MembersContainer/index.ts +7 -0
  386. package/src/{components → containers/MenuFooter}/MenuFooter.tsx +5 -5
  387. package/src/containers/MenuFooter/index.ts +7 -0
  388. package/src/containers/ObjectCardStack/ObjectCardStack.tsx +82 -0
  389. package/src/containers/ObjectDetails/ObjectDetails.tsx +36 -0
  390. package/src/containers/ObjectDetails/index.ts +7 -0
  391. package/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.tsx +4 -4
  392. package/src/containers/ObjectRenamePopover/index.ts +7 -0
  393. package/src/{components → containers/RecordArticle}/RecordArticle.tsx +55 -37
  394. package/src/containers/RecordArticle/index.ts +7 -0
  395. package/src/{components → containers/SchemaContainer}/SchemaContainer.tsx +22 -18
  396. package/src/containers/SchemaContainer/index.ts +7 -0
  397. package/src/containers/SmallPresenceLive/index.ts +5 -0
  398. package/src/containers/SpacePluginSettings/SpacePluginSettings.tsx +65 -0
  399. package/src/containers/SpacePluginSettings/index.ts +7 -0
  400. package/src/{components → containers}/SpacePresence/SpacePresence.stories.tsx +2 -2
  401. package/src/{components → containers}/SpacePresence/SpacePresence.tsx +11 -22
  402. package/src/containers/SpacePresence/index.ts +6 -0
  403. package/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.tsx +4 -4
  404. package/src/containers/SpaceRenamePopover/index.ts +7 -0
  405. package/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.tsx +3 -3
  406. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +202 -0
  407. package/src/containers/SpaceSettingsContainer/index.ts +7 -0
  408. package/src/{components → containers}/SyncStatus/SyncStatus.stories.tsx +2 -2
  409. package/src/{components → containers}/SyncStatus/SyncStatus.tsx +5 -7
  410. package/src/containers/SyncStatus/index.ts +7 -0
  411. package/src/{components → containers/ViewEditor}/ViewEditor.tsx +11 -10
  412. package/src/containers/ViewEditor/index.ts +7 -0
  413. package/src/containers/index.ts +28 -0
  414. package/src/helpers/query.test.ts +1 -1
  415. package/src/helpers/query.ts +20 -7
  416. package/src/hooks/useActiveSpace.ts +8 -7
  417. package/src/hooks/useInputSurfaceLookup.tsx +3 -3
  418. package/src/index.ts +2 -1
  419. package/src/meta.ts +1 -1
  420. package/src/translations.ts +30 -4
  421. package/src/types/capabilities.ts +8 -8
  422. package/src/types/events.ts +7 -6
  423. package/src/types/form.ts +1 -8
  424. package/src/types/types.ts +61 -76
  425. package/src/util.ts +82 -0
  426. package/dist/lib/browser/CollectionArticle-OQMUVFVV.mjs +0 -125
  427. package/dist/lib/browser/CollectionArticle-OQMUVFVV.mjs.map +0 -7
  428. package/dist/lib/browser/ObjectCardStack-TWHN6C2Y.mjs +0 -148
  429. package/dist/lib/browser/ObjectCardStack-TWHN6C2Y.mjs.map +0 -7
  430. package/dist/lib/browser/ObjectDetails-GEDIISKK.mjs +0 -142
  431. package/dist/lib/browser/ObjectDetails-GEDIISKK.mjs.map +0 -7
  432. package/dist/lib/browser/RecordArticle-W57QE7QV.mjs.map +0 -7
  433. package/dist/lib/browser/app-graph-builder-SJHTZXZF.mjs +0 -523
  434. package/dist/lib/browser/app-graph-builder-SJHTZXZF.mjs.map +0 -7
  435. package/dist/lib/browser/app-graph-serializer-7AT7QMSK.mjs.map +0 -7
  436. package/dist/lib/browser/chunk-4WZUGLQQ.mjs.map +0 -7
  437. package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
  438. package/dist/lib/browser/chunk-CCRSHECL.mjs.map +0 -7
  439. package/dist/lib/browser/chunk-SUI34XSA.mjs +0 -772
  440. package/dist/lib/browser/chunk-SUI34XSA.mjs.map +0 -7
  441. package/dist/lib/browser/chunk-TWUMNPG4.mjs +0 -1898
  442. package/dist/lib/browser/chunk-TWUMNPG4.mjs.map +0 -7
  443. package/dist/lib/browser/chunk-ZT2VPYRM.mjs.map +0 -7
  444. package/dist/lib/browser/identity-created-VCFYLSBB.mjs.map +0 -7
  445. package/dist/lib/browser/operation-resolver-SIRQT36Z.mjs.map +0 -7
  446. package/dist/lib/browser/react-root-3SPMM45V.mjs.map +0 -7
  447. package/dist/lib/browser/react-surface-UUS7NDHS.mjs.map +0 -7
  448. package/dist/lib/browser/repair-CJG26D52.mjs +0 -50
  449. package/dist/lib/browser/repair-CJG26D52.mjs.map +0 -7
  450. package/dist/lib/browser/settings-ZS2AQ73E.mjs.map +0 -7
  451. package/dist/lib/browser/spaces-ready-OQDGWUOS.mjs.map +0 -7
  452. package/dist/lib/browser/state-7YZQB2KY.mjs.map +0 -7
  453. package/dist/lib/node-esm/CollectionArticle-V5OOJVJJ.mjs.map +0 -7
  454. package/dist/lib/node-esm/ObjectCardStack-C5ZXRKP7.mjs +0 -149
  455. package/dist/lib/node-esm/ObjectCardStack-C5ZXRKP7.mjs.map +0 -7
  456. package/dist/lib/node-esm/ObjectDetails-6ZLDRKCO.mjs +0 -143
  457. package/dist/lib/node-esm/ObjectDetails-6ZLDRKCO.mjs.map +0 -7
  458. package/dist/lib/node-esm/RecordArticle-SSV74Z46.mjs.map +0 -7
  459. package/dist/lib/node-esm/app-graph-builder-HZ3XXDFZ.mjs +0 -524
  460. package/dist/lib/node-esm/app-graph-builder-HZ3XXDFZ.mjs.map +0 -7
  461. package/dist/lib/node-esm/app-graph-serializer-WJ2TIQG6.mjs.map +0 -7
  462. package/dist/lib/node-esm/chunk-2SW6S2BB.mjs.map +0 -7
  463. package/dist/lib/node-esm/chunk-7KMYUWSR.mjs +0 -773
  464. package/dist/lib/node-esm/chunk-7KMYUWSR.mjs.map +0 -7
  465. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
  466. package/dist/lib/node-esm/chunk-FYSBFBSD.mjs +0 -1899
  467. package/dist/lib/node-esm/chunk-FYSBFBSD.mjs.map +0 -7
  468. package/dist/lib/node-esm/chunk-JOBIWCBC.mjs.map +0 -7
  469. package/dist/lib/node-esm/chunk-MPL6NHQX.mjs.map +0 -7
  470. package/dist/lib/node-esm/identity-created-2SJABVJD.mjs.map +0 -7
  471. package/dist/lib/node-esm/operation-resolver-ZE3XJL5J.mjs.map +0 -7
  472. package/dist/lib/node-esm/react-root-Y6JTGDTW.mjs.map +0 -7
  473. package/dist/lib/node-esm/react-surface-SQ4SK3OK.mjs.map +0 -7
  474. package/dist/lib/node-esm/repair-G3ZW3VG3.mjs.map +0 -7
  475. package/dist/lib/node-esm/settings-PVI2VG56.mjs.map +0 -7
  476. package/dist/lib/node-esm/spaces-ready-R744OHQG.mjs.map +0 -7
  477. package/dist/lib/node-esm/state-XE5YGPHM.mjs.map +0 -7
  478. package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
  479. package/dist/types/src/components/CollectionArticle.d.ts +0 -9
  480. package/dist/types/src/components/CollectionArticle.d.ts.map +0 -1
  481. package/dist/types/src/components/CollectionSection.d.ts +0 -5
  482. package/dist/types/src/components/CollectionSection.d.ts.map +0 -1
  483. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +0 -1
  484. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +0 -1604
  485. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +0 -1
  486. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +0 -1
  487. package/dist/types/src/components/JoinDialog/index.d.ts +0 -2
  488. package/dist/types/src/components/JoinDialog/index.d.ts.map +0 -1
  489. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +0 -1600
  490. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +0 -1
  491. package/dist/types/src/components/MembersContainer/index.d.ts +0 -2
  492. package/dist/types/src/components/MembersContainer/index.d.ts.map +0 -1
  493. package/dist/types/src/components/MenuFooter.d.ts.map +0 -1
  494. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +0 -1
  495. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +0 -1
  496. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +0 -1
  497. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +0 -2
  498. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +0 -1
  499. package/dist/types/src/components/RecordArticle.d.ts +0 -5
  500. package/dist/types/src/components/RecordArticle.d.ts.map +0 -1
  501. package/dist/types/src/components/RecordArticle.stories.d.ts +0 -1600
  502. package/dist/types/src/components/RecordArticle.stories.d.ts.map +0 -1
  503. package/dist/types/src/components/SchemaContainer.d.ts.map +0 -1
  504. package/dist/types/src/components/SpacePluginSettings.d.ts.map +0 -1
  505. package/dist/types/src/components/SpacePresence/index.d.ts +0 -2
  506. package/dist/types/src/components/SpacePresence/index.d.ts.map +0 -1
  507. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +0 -2
  508. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +0 -1
  509. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +0 -7
  510. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +0 -1
  511. package/dist/types/src/components/SpaceSettings/index.d.ts +0 -2
  512. package/dist/types/src/components/SpaceSettings/index.d.ts.map +0 -1
  513. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +0 -1
  514. package/dist/types/src/components/ViewEditor.d.ts.map +0 -1
  515. package/src/components/CollectionArticle.tsx +0 -153
  516. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +0 -91
  517. package/src/components/MembersContainer/MembersContainer.stories.tsx +0 -56
  518. package/src/components/MembersContainer/index.ts +0 -5
  519. package/src/components/ObjectCardStack/ObjectCardStack.tsx +0 -67
  520. package/src/components/ObjectDetails/ObjectDetails.tsx +0 -32
  521. package/src/components/ObjectRenamePopover/index.ts +0 -5
  522. package/src/components/RecordArticle.stories.tsx +0 -115
  523. package/src/components/SpacePluginSettings.tsx +0 -62
  524. package/src/components/SpacePresence/index.ts +0 -5
  525. package/src/components/SpaceRenamePopover/index.ts +0 -5
  526. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +0 -220
  527. package/src/components/SpaceSettings/index.ts +0 -5
  528. package/src/util.tsx +0 -779
  529. /package/dist/lib/browser/{chunk-AWVAX26X.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
  530. /package/dist/lib/node-esm/{chunk-HREWB23G.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
  531. /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
  532. /package/dist/types/src/components/{ObjectCardStack → ObjectForm}/ObjectForm.d.ts +0 -0
  533. /package/dist/types/src/{components/CreateDialog → containers/CreateSpaceDialog}/CreateSpaceDialog.d.ts +0 -0
  534. /package/dist/types/src/{components/SyncStatus → containers/InlineSyncStatus}/InlineSyncStatus.d.ts +0 -0
  535. /package/dist/types/src/{components → containers}/JoinDialog/JoinDialog.d.ts +0 -0
  536. /package/dist/types/src/{components → containers}/MembersContainer/MembersContainer.d.ts +0 -0
  537. /package/dist/types/src/{components → containers/MenuFooter}/MenuFooter.d.ts +0 -0
  538. /package/dist/types/src/{components → containers}/ObjectCardStack/index.d.ts +0 -0
  539. /package/dist/types/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.d.ts +0 -0
  540. /package/dist/types/src/{components → containers/SchemaContainer}/SchemaContainer.d.ts +0 -0
  541. /package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.d.ts +0 -0
  542. /package/dist/types/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.d.ts +0 -0
  543. /package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.d.ts +0 -0
  544. /package/src/{components → containers}/ObjectCardStack/index.ts +0 -0
package/src/util.tsx DELETED
@@ -1,779 +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
-
8
- import { type CapabilityManager, Common } from '@dxos/app-framework';
9
- import { type Space, SpaceState, isSpace } from '@dxos/client/echo';
10
- import { type Database, Filter, Obj, Query, Ref, Type } from '@dxos/echo';
11
- import { invariant } from '@dxos/invariant';
12
- import { Migrations } from '@dxos/migrations';
13
- import { Operation } from '@dxos/operation';
14
- import { Graph, Node } from '@dxos/plugin-graph';
15
- import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention/types';
16
- import { type TreeData } from '@dxos/react-ui-list';
17
- import { Collection, Expando } from '@dxos/schema';
18
- import { createFilename } from '@dxos/util';
19
-
20
- import { meta } from './meta';
21
- import { SPACE_TYPE, SpaceOperation } from './types';
22
-
23
- export const SPACES = `${meta.id}-spaces`;
24
- export const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
25
- // TODO(wittjosiah): Remove.
26
- export const SHARED = 'shared-spaces';
27
-
28
- // TODO(wittjosiah): Factor out? Expose via capability?
29
- export const getSpaceDisplayName = (
30
- space: Space,
31
- { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},
32
- ): string | [string, { ns: string }] => {
33
- return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0
34
- ? space.properties.name!
35
- : namesCache[space.id]
36
- ? namesCache[space.id]
37
- : personal
38
- ? ['personal space label', { ns: meta.id }]
39
- : ['unnamed space label', { ns: meta.id }];
40
- };
41
-
42
- const getCollectionGraphNodePartials = ({
43
- collection,
44
- db,
45
- resolve,
46
- }: {
47
- collection: Collection.Collection;
48
- db: Database.Database;
49
- resolve: (typename: string) => Record<string, any>;
50
- }) => {
51
- return {
52
- acceptPersistenceClass: new Set(['echo']),
53
- acceptPersistenceKey: new Set([db.spaceId]),
54
- role: 'branch',
55
- onTransferStart: (child: Node.Node<Obj.Unknown>, index?: number) => {
56
- // TODO(wittjosiah): Support transfer between spaces.
57
- // const childSpace = getSpace(child.data);
58
- // if (space && childSpace && !childSpace.key.equals(space.key)) {
59
- // // Create clone of child and add to destination space.
60
- // const newObject = clone(child.data, {
61
- // // TODO(wittjosiah): This needs to be generalized and not hardcoded here.
62
- // additional: [
63
- // child.data.content,
64
- // ...(child.data.objects ?? []),
65
- // ...(child.data.objects ?? []).map((object: TypedObject) => object.content),
66
- // ],
67
- // });
68
- // space.db.add(newObject);
69
- // collection.objects.push(newObject);
70
- // } else {
71
-
72
- // Add child to destination collection.
73
- // TODO(dmaretskyi): Compare by id.
74
- Obj.change(collection, (c) => {
75
- if (!c.objects.find((object) => object.target === child.data)) {
76
- if (typeof index !== 'undefined') {
77
- c.objects.splice(index, 0, Ref.make(child.data));
78
- } else {
79
- c.objects.push(Ref.make(child.data));
80
- }
81
- }
82
- });
83
-
84
- // }
85
- },
86
- onTransferEnd: (child: Node.Node<Obj.Unknown>, destination: Node.Node) => {
87
- // Remove child from origin collection.
88
- Obj.change(collection, (c) => {
89
- const index = c.objects.findIndex((object) => object.target === child.data);
90
- if (index > -1) {
91
- c.objects.splice(index, 1);
92
- }
93
- });
94
-
95
- // TODO(wittjosiah): Support transfer between spaces.
96
- // const childSpace = getSpace(child.data);
97
- // const destinationSpace =
98
- // destination.data instanceof SpaceProxy ? destination.data : getSpace(destination.data);
99
- // if (destinationSpace && childSpace && !childSpace.key.equals(destinationSpace.key)) {
100
- // // Mark child as deleted in origin space.
101
- // childSpace.db.remove(child.data);
102
- // }
103
- },
104
- onCopy: async (child: Node.Node<Obj.Unknown>, index?: number) => {
105
- // Create clone of child and add to destination space.
106
- const newObject = await cloneObject(child.data, resolve, db);
107
- db.add(newObject);
108
- Obj.change(collection, (c) => {
109
- if (typeof index !== 'undefined') {
110
- c.objects.splice(index, 0, Ref.make(newObject));
111
- } else {
112
- c.objects.push(Ref.make(newObject));
113
- }
114
- });
115
- },
116
- };
117
- };
118
-
119
- const getSystemCollectionNodePartials = ({
120
- collection,
121
- db,
122
- resolve,
123
- }: {
124
- collection: Collection.Managed;
125
- db: Database.Database;
126
- resolve: (typename: string) => Record<string, any>;
127
- }) => {
128
- const metadata = resolve(collection.key);
129
- return {
130
- label: ['typename label', { ns: collection.key, count: 2 }],
131
- icon: metadata.icon,
132
- iconHue: metadata.iconHue,
133
- acceptPersistenceClass: new Set(['echo']),
134
- acceptPersistenceKey: new Set([db.spaceId]),
135
- role: 'branch',
136
- };
137
- };
138
-
139
- const getSchemaGraphNodePartials = () => {
140
- return {
141
- role: 'branch',
142
- canDrop: () => false,
143
- };
144
- };
145
-
146
- const checkPendingMigration = (space: Space) => {
147
- return (
148
- space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||
149
- (space.state.get() === SpaceState.SPACE_READY &&
150
- !!Migrations.versionProperty &&
151
- space.properties[Migrations.versionProperty] !== Migrations.targetVersion)
152
- );
153
- };
154
-
155
- export const constructSpaceNode = ({
156
- space,
157
- navigable = false,
158
- personal,
159
- namesCache,
160
- resolve,
161
- graph,
162
- spacesOrder,
163
- }: {
164
- space: Space;
165
- navigable?: boolean;
166
- personal?: boolean;
167
- namesCache?: Record<string, string>;
168
- resolve: (typename: string) => Record<string, any>;
169
- /** Graph for sorting edges on rearrange. */
170
- graph?: Graph.ExpandableGraph;
171
- // TODO(wittjosiah): Should be Type.Expando but it doesn't work with the AtomQuery result type.
172
- /** Spaces order object for persisting workspace order. */
173
- spacesOrder?: Obj.Any;
174
- }) => {
175
- const hasPendingMigration = checkPendingMigration(space);
176
- const collection =
177
- space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;
178
- const partials =
179
- space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection)
180
- ? getCollectionGraphNodePartials({ collection, db: space.db, resolve })
181
- : {};
182
-
183
- const onRearrange =
184
- graph && spacesOrder
185
- ? (nextOrder: Space[]) => {
186
- // NOTE: This is needed to ensure order is updated by next animation frame.
187
- Graph.sortEdges(
188
- graph,
189
- Node.RootId,
190
- 'outbound',
191
- nextOrder.map(({ id }) => id),
192
- );
193
-
194
- // Persist order to database.
195
- Obj.change(spacesOrder, (mutableOrder: any) => {
196
- mutableOrder.order = nextOrder.map(({ id }) => id);
197
- });
198
- }
199
- : undefined;
200
-
201
- return {
202
- id: space.id,
203
- type: SPACE_TYPE,
204
- cacheable: ['label', 'icon', 'role'],
205
- data: space,
206
- properties: {
207
- ...partials,
208
- label: getSpaceDisplayName(space, { personal, namesCache }),
209
- description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,
210
- hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,
211
- icon:
212
- space.state.get() === SpaceState.SPACE_READY && space.properties.icon
213
- ? `ph--${space.properties.icon}--regular`
214
- : undefined,
215
- iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,
216
- disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
217
- disposition: 'workspace',
218
- testId: 'spacePlugin.space',
219
- onRearrange,
220
- canDrop: (source: TreeData) => {
221
- // TODO(wittjosiah): Find a way to only allow space as source for rearranging.
222
- return Obj.isObject(source.item.data) || isSpace(source.item.data);
223
- },
224
- },
225
- nodes: [
226
- {
227
- id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
228
- type: `${meta.id}/settings`,
229
- data: null,
230
- properties: {
231
- label: ['settings panel label', { ns: meta.id }],
232
- icon: 'ph--faders--regular',
233
- disposition: 'alternate-tree',
234
- },
235
- nodes: [
236
- {
237
- id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
238
- type: `${meta.id}/properties`,
239
- data: `${meta.id}/properties`,
240
- properties: {
241
- label: ['space settings properties label', { ns: meta.id }],
242
- icon: 'ph--sliders--regular',
243
- position: 'hoist',
244
- testId: 'spacePlugin.general',
245
- },
246
- },
247
- {
248
- id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
249
- type: `${meta.id}/members`,
250
- data: `${meta.id}/members`,
251
- properties: {
252
- label: ['members panel label', { ns: meta.id }],
253
- icon: 'ph--users--regular',
254
- position: 'hoist',
255
- testId: 'spacePlugin.members',
256
- },
257
- },
258
- {
259
- id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
260
- type: `${meta.id}/schema`,
261
- data: `${meta.id}/schema`,
262
- properties: {
263
- label: ['space settings schema label', { ns: meta.id }],
264
- icon: 'ph--shapes--regular',
265
- testId: 'spacePlugin.schema',
266
- },
267
- },
268
- ],
269
- },
270
- ],
271
- };
272
- };
273
-
274
- export const constructSpaceActions = ({
275
- space,
276
- personal,
277
- migrating,
278
- }: {
279
- space: Space;
280
- personal?: boolean;
281
- migrating?: boolean;
282
- }) => {
283
- const state = space.state.get();
284
- const hasPendingMigration = checkPendingMigration(space);
285
- const getId = (id: string) => `${id}/${space.id}`;
286
- const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [];
287
-
288
- if (hasPendingMigration) {
289
- actions.push({
290
- id: getId(SpaceOperation.Migrate.meta.key),
291
- type: Node.ActionGroupType,
292
- data: () => Operation.invoke(SpaceOperation.Migrate, { space }),
293
- properties: {
294
- label: ['migrate space label', { ns: meta.id }],
295
- icon: 'ph--database--regular',
296
- disposition: 'list-item-primary',
297
- disabled: migrating || Migrations.running(space),
298
- },
299
- });
300
- }
301
-
302
- if (state === SpaceState.SPACE_READY && !hasPendingMigration) {
303
- actions.push(
304
- {
305
- id: getId(SpaceOperation.OpenCreateObject.meta.key),
306
- type: Node.ActionType,
307
- data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: space.db }),
308
- properties: {
309
- label: ['create object in space label', { ns: meta.id }],
310
- icon: 'ph--plus--regular',
311
- disposition: 'item',
312
- testId: 'spacePlugin.createObject',
313
- },
314
- },
315
- {
316
- id: getId(SpaceOperation.Rename.meta.key),
317
- type: Node.ActionType,
318
- data: (params?: Node.InvokeProps) => Operation.invoke(SpaceOperation.Rename, { space, caller: params?.caller }),
319
- properties: {
320
- label: ['rename space label', { ns: meta.id }],
321
- icon: 'ph--pencil-simple-line--regular',
322
- keyBinding: {
323
- macos: 'shift+F6',
324
- windows: 'shift+F6',
325
- },
326
- },
327
- },
328
- );
329
- }
330
-
331
- return actions;
332
- };
333
-
334
- export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Entity.Any; space: Space }): Node.Node => {
335
- return {
336
- id: `${space.id}/${Type.getTypename(schema)}`,
337
- type: `${meta.id}/static-schema`,
338
- data: schema,
339
- properties: {
340
- label: ['typename label', { ns: Type.getTypename(schema), count: 2, default: Type.getTypename(schema) }],
341
- icon: 'ph--database--regular',
342
- iconHue: 'green',
343
- role: 'branch',
344
- selectable: false,
345
- canDrop: () => false,
346
- space,
347
- },
348
- };
349
- };
350
-
351
- export const createStaticSchemaActions = ({
352
- schema,
353
- space,
354
- deletable,
355
- }: {
356
- schema: Type.Obj.Any;
357
- space: Space;
358
- deletable: boolean;
359
- }) => {
360
- const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;
361
-
362
- const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [
363
- {
364
- id: getId(SpaceOperation.AddObject.meta.key),
365
- type: Node.ActionType,
366
- data: () =>
367
- Operation.invoke(SpaceOperation.OpenCreateObject, {
368
- target: space.db,
369
- views: true,
370
- initialFormValues: { typename: Type.getTypename(schema) },
371
- }),
372
- properties: {
373
- label: ['add view to schema label', { ns: meta.id }],
374
- icon: 'ph--plus--regular',
375
- disposition: 'list-item-primary',
376
- testId: 'spacePlugin.addViewToSchema',
377
- },
378
- },
379
- {
380
- id: getId(SpaceOperation.RenameObject.meta.key),
381
- type: Node.ActionType,
382
- data: () => Effect.fail(new Error('Not implemented')),
383
- properties: {
384
- label: ['rename object label', { ns: Type.getTypename(Type.PersistentType) }],
385
- icon: 'ph--pencil-simple-line--regular',
386
- disabled: true,
387
- disposition: 'list-item',
388
- testId: 'spacePlugin.renameObject',
389
- },
390
- },
391
- {
392
- id: getId(SpaceOperation.RemoveObjects.meta.key),
393
- type: Node.ActionType,
394
- data: () =>
395
- Effect.sync(() => {
396
- const index = space.properties.staticRecords.findIndex(
397
- (typename: string) => typename === Type.getTypename(schema),
398
- );
399
- if (index > -1) {
400
- Obj.change(space.properties, (p) => {
401
- p.staticRecords.splice(index, 1);
402
- });
403
- }
404
- }),
405
- properties: {
406
- label: ['delete object label', { ns: Type.getTypename(Type.PersistentType) }],
407
- icon: 'ph--trash--regular',
408
- disposition: 'list-item',
409
- disabled: !deletable,
410
- testId: 'spacePlugin.deleteObject',
411
- },
412
- },
413
- {
414
- id: getId(SpaceOperation.Snapshot.meta.key),
415
- type: Node.ActionType,
416
- data: Effect.fnUntraced(function* () {
417
- const result = yield* Operation.invoke(SpaceOperation.Snapshot, {
418
- db: space.db,
419
- query: Query.select(Filter.type(schema)).ast,
420
- });
421
- if (result.snapshot) {
422
- yield* Effect.tryPromise(() =>
423
- downloadBlob(result.snapshot, createFilename({ parts: [space.id, Type.getTypename(schema)], ext: 'json' })),
424
- );
425
- }
426
- }),
427
- properties: {
428
- label: ['snapshot by schema label', { ns: meta.id }],
429
- icon: 'ph--camera--regular',
430
- disposition: 'list-item',
431
- },
432
- },
433
- ];
434
-
435
- return actions;
436
- };
437
-
438
- export const createObjectNode = ({
439
- db,
440
- object,
441
- disposition,
442
- droppable = true,
443
- navigable = false,
444
- managedCollectionChild = false,
445
- resolve,
446
- parentCollection,
447
- }: {
448
- db: Database.Database;
449
- object: Obj.Unknown;
450
- disposition?: string;
451
- droppable?: boolean;
452
- navigable?: boolean;
453
- managedCollectionChild?: boolean;
454
- resolve: (typename: string) => Record<string, any>;
455
- /** Parent collection for rearranging objects. */
456
- parentCollection?: Collection.Collection;
457
- }) => {
458
- const type = Obj.getTypename(object);
459
- if (!type) {
460
- return null;
461
- }
462
-
463
- const metadata = resolve(type);
464
- const partials = Obj.instanceOf(Collection.Collection, object)
465
- ? getCollectionGraphNodePartials({ collection: object, db, resolve })
466
- : Obj.instanceOf(Collection.Managed, object)
467
- ? getSystemCollectionNodePartials({ collection: object, db, resolve })
468
- : Obj.instanceOf(Type.PersistentType, object)
469
- ? getSchemaGraphNodePartials()
470
- : metadata.graphProps;
471
-
472
- // TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.
473
- // e.g., create new collection with no name and rename it.
474
- const label = (object as any).name ||
475
- Obj.getLabel(object) ||
476
- // TODO(wittjosiah): Remove metadata labels.
477
- metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];
478
-
479
- const selectable =
480
- (!Obj.instanceOf(Type.PersistentType, object) &&
481
- !Obj.instanceOf(Collection.Managed, object) &&
482
- !Obj.instanceOf(Collection.Collection, object)) ||
483
- (navigable && Obj.instanceOf(Collection.Collection, object));
484
-
485
- return {
486
- id: Obj.getDXN(object).toString(),
487
- type,
488
- cacheable: ['label', 'icon', 'role'],
489
- data: object,
490
- properties: {
491
- label,
492
- icon: metadata.icon ?? 'ph--placeholder--regular',
493
- iconHue: metadata.iconHue,
494
- disposition,
495
- testId: 'spacePlugin.object',
496
- persistenceClass: 'echo',
497
- persistenceKey: db.spaceId,
498
- selectable,
499
- managedCollectionChild,
500
- onRearrange: parentCollection
501
- ? (nextOrder: unknown[]) => {
502
- Obj.change(parentCollection, (c) => {
503
- c.objects = nextOrder.filter(Obj.isObject).map(Ref.make);
504
- });
505
- }
506
- : undefined,
507
- blockInstruction: (source: TreeData, instruction: Instruction) => {
508
- if (source.item.properties.managedCollectionChild) {
509
- // TODO(wittjosiah): Support reordering system collections.
510
- // return !(managedCollectionChild && source.item.type === type && instruction.type.startsWith('reorder'));
511
- return true;
512
- }
513
-
514
- if (Obj.instanceOf(Collection.Managed, object)) {
515
- return !instruction.type.startsWith('reorder');
516
- }
517
-
518
- return managedCollectionChild;
519
- },
520
- canDrop: (source: TreeData) => {
521
- return droppable && Node.isGraphNode(source.item) && Obj.isObject(source.item.data);
522
- },
523
- ...partials,
524
- },
525
- };
526
- };
527
-
528
- export const constructObjectActions = ({
529
- object,
530
- graph,
531
- resolve,
532
- capabilities,
533
- deletable = true,
534
- navigable = false,
535
- }: {
536
- object: Obj.Unknown;
537
- graph: Graph.ReadableGraph;
538
- resolve: (typename: string) => Record<string, any>;
539
- capabilities: CapabilityManager.CapabilityManager;
540
- deletable?: boolean;
541
- navigable?: boolean;
542
- }) => {
543
- const db = Obj.getDatabase(object);
544
- invariant(db, 'Database not found');
545
- const typename = Obj.getTypename(object);
546
- invariant(typename, 'Object has no typename');
547
-
548
- const getId = (id: string) => `${id}/${Obj.getDXN(object).toString()}`;
549
-
550
- const managedCollection = Obj.instanceOf(Collection.Managed, object) ? object : undefined;
551
- const metadata = managedCollection ? resolve(managedCollection.key) : {};
552
- const createObject = metadata.createObject;
553
- const inputSchema = metadata.inputSchema;
554
-
555
- const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [
556
- ...(Obj.instanceOf(Collection.Collection, object)
557
- ? [
558
- {
559
- id: getId(SpaceOperation.OpenCreateObject.meta.key),
560
- type: Node.ActionType,
561
- data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: object }),
562
- properties: {
563
- label: ['create object in collection label', { ns: meta.id }],
564
- icon: 'ph--plus--regular',
565
- disposition: 'list-item-primary',
566
- testId: 'spacePlugin.createObject',
567
- },
568
- },
569
- ]
570
- : []),
571
- ...(Obj.instanceOf(Type.PersistentType, object)
572
- ? [
573
- {
574
- id: getId(SpaceOperation.AddObject.meta.key),
575
- type: Node.ActionType,
576
- data: () =>
577
- Operation.invoke(SpaceOperation.OpenCreateObject, {
578
- target: db,
579
- views: true,
580
- initialFormValues: { typename: object.typename },
581
- }),
582
- properties: {
583
- label: ['add view to schema label', { ns: meta.id }],
584
- icon: 'ph--plus--regular',
585
- disposition: 'list-item-primary',
586
- testId: 'spacePlugin.addViewToSchema',
587
- },
588
- },
589
- {
590
- id: getId(SpaceOperation.Snapshot.meta.key),
591
- type: Node.ActionType,
592
- data: Effect.fnUntraced(function* () {
593
- const result = yield* Operation.invoke(SpaceOperation.Snapshot, {
594
- db,
595
- query: Query.select(Filter.type(Type.toEffectSchema(object.jsonSchema))).ast,
596
- });
597
- if (result.snapshot) {
598
- yield* Effect.promise(() =>
599
- downloadBlob(result.snapshot, createFilename({ parts: [db.spaceId, object.typename], ext: 'json' })),
600
- );
601
- }
602
- }),
603
- properties: {
604
- label: ['snapshot by schema label', { ns: meta.id }],
605
- icon: 'ph--camera--regular',
606
- disposition: 'list-item',
607
- },
608
- },
609
- ]
610
- : []),
611
- ...(createObject
612
- ? [
613
- {
614
- id: getId(SpaceOperation.OpenCreateObject.meta.key),
615
- type: Node.ActionType,
616
- data: Effect.fnUntraced(function* () {
617
- if (inputSchema) {
618
- yield* Operation.invoke(SpaceOperation.OpenCreateObject, {
619
- target: db,
620
- typename: managedCollection ? managedCollection.key : undefined,
621
- });
622
- } else {
623
- const createdObject = yield* createObject({}, { db, capabilities }) as Effect.Effect<
624
- Obj.Unknown,
625
- Error,
626
- never
627
- >;
628
- const addResult = yield* Operation.invoke(SpaceOperation.AddObject, {
629
- target: db,
630
- hidden: true,
631
- object: createdObject,
632
- });
633
- if (addResult.id) {
634
- yield* Operation.invoke(Common.LayoutOperation.Open, { subject: [addResult.id] });
635
- }
636
- }
637
- }),
638
- properties: {
639
- label: ['create object in system collection label', { ns: meta.id }],
640
- icon: 'ph--plus--regular',
641
- disposition: 'list-item-primary',
642
- testId: 'spacePlugin.createObject',
643
- },
644
- },
645
- ]
646
- : []),
647
- ...(managedCollection
648
- ? []
649
- : [
650
- {
651
- id: getId(SpaceOperation.RenameObject.meta.key),
652
- type: Node.ActionType,
653
- data: (params?: Node.InvokeProps) =>
654
- Operation.invoke(SpaceOperation.RenameObject, { object, caller: params?.caller }),
655
- properties: {
656
- label: ['rename object label', { ns: typename }],
657
- icon: 'ph--pencil-simple-line--regular',
658
- disposition: 'list-item',
659
- // TODO(wittjosiah): Not working.
660
- // keyBinding: {
661
- // macos: 'shift+F6',
662
- // },
663
- testId: 'spacePlugin.renameObject',
664
- },
665
- },
666
- {
667
- id: getId(SpaceOperation.RemoveObjects.meta.key),
668
- type: Node.ActionType,
669
- data: Effect.fnUntraced(function* () {
670
- const collection = Graph.getConnections(graph, Obj.getDXN(object).toString(), 'inbound').find(
671
- (node: Node.Node): node is Node.Node<Collection.Collection> =>
672
- Obj.instanceOf(Collection.Collection, node.data),
673
- )?.data;
674
- yield* Operation.invoke(SpaceOperation.RemoveObjects, { objects: [object], target: collection });
675
- }),
676
- properties: {
677
- label: ['delete object label', { ns: typename }],
678
- icon: 'ph--trash--regular',
679
- disposition: 'list-item',
680
- disabled: !deletable,
681
- // TODO(wittjosiah): This is a browser shortcut.
682
- // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
683
- testId: 'spacePlugin.deleteObject',
684
- },
685
- },
686
- ]),
687
- ...(navigable ||
688
- (!Obj.instanceOf(Collection.Collection, object) &&
689
- !Obj.instanceOf(Collection.Managed, object) &&
690
- !Obj.instanceOf(Type.PersistentType, object))
691
- ? [
692
- {
693
- id: getId('copy-link'),
694
- type: Node.ActionType,
695
- data: () =>
696
- Effect.promise(async () => {
697
- const url = `${window.location.origin}/${db.spaceId}/${Obj.getDXN(object).toString()}`;
698
- await navigator.clipboard.writeText(url);
699
- }),
700
- properties: {
701
- label: ['copy link label', { ns: meta.id }],
702
- icon: 'ph--link--regular',
703
- disposition: 'list-item',
704
- testId: 'spacePlugin.copyLink',
705
- },
706
- },
707
- ]
708
- : []),
709
- // TODO(wittjosiah): Factor out and apply to all nodes.
710
- {
711
- id: getId(Common.LayoutOperation.Expose.meta.key),
712
- type: Node.ActionType,
713
- data: () => Operation.invoke(Common.LayoutOperation.Expose, { subject: Obj.getDXN(object).toString() }),
714
- properties: {
715
- label: ['expose object label', { ns: meta.id }],
716
- icon: 'ph--eye--regular',
717
- disposition: 'heading-list-item',
718
- testId: 'spacePlugin.exposeObject',
719
- },
720
- },
721
- ];
722
-
723
- return actions;
724
- };
725
-
726
- // TODO(wittjosiah): Factor out.
727
- const downloadBlob = async (blob: Blob, filename: string) => {
728
- const url = URL.createObjectURL(blob);
729
- const a = document.createElement('a');
730
- a.href = url;
731
- a.download = filename;
732
-
733
- document.body.appendChild(a);
734
- a.click();
735
-
736
- document.body.removeChild(a);
737
- URL.revokeObjectURL(url);
738
- };
739
-
740
- /**
741
- * @deprecated This is a temporary solution.
742
- */
743
- export const getNestedObjects = async (
744
- object: Obj.Unknown,
745
- resolve: (typename: string) => Record<string, any>,
746
- ): Promise<Obj.Unknown[]> => {
747
- const type = Obj.getTypename(object);
748
- if (!type) {
749
- return [];
750
- }
751
-
752
- const metadata = resolve(type);
753
- const loadReferences = metadata?.loadReferences;
754
- if (typeof loadReferences !== 'function') {
755
- return [];
756
- }
757
-
758
- const objects: Obj.Unknown[] = await loadReferences(object);
759
- const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));
760
- return [...objects, ...nested.flat()];
761
- };
762
-
763
- /**
764
- * @deprecated Workaround for ECHO not supporting clone.
765
- */
766
- // TODO(burdon): Remove.
767
- export const cloneObject = async (
768
- object: Obj.Unknown,
769
- resolve: (typename: string) => Record<string, any>,
770
- newDb: Database.Database,
771
- ): Promise<Obj.Unknown> => {
772
- const schema = Obj.getSchema(object);
773
- const typename = schema ? (Type.getTypename(schema) ?? Expando.Expando.typename) : Expando.Expando.typename;
774
- const metadata = resolve(typename);
775
- const serializer = metadata.serializer;
776
- invariant(serializer, `No serializer for type: ${typename}`);
777
- const content = await serializer.serialize({ object });
778
- return serializer.deserialize({ content, db: newDb, newId: true });
779
- };