@dxos/plugin-space 0.8.4-main.e098934 → 0.8.4-main.e8ec1fe

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 (337) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionArticle-WTHWY4YS.mjs} +10 -10
  2. package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs +141 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs +144 -0
  6. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-AFC6PNAB.mjs → app-graph-builder-DTM7BJ6D.mjs} +107 -96
  10. package/dist/lib/browser/app-graph-builder-DTM7BJ6D.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-Q7QG4EKW.mjs → app-graph-serializer-TIKXF43P.mjs} +19 -19
  12. package/dist/lib/browser/app-graph-serializer-TIKXF43P.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-AFUOMLX6.mjs +167 -0
  14. package/dist/lib/browser/chunk-AFUOMLX6.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-6GRF7NEF.mjs → chunk-CKACGS7T.mjs} +553 -475
  16. package/dist/lib/browser/chunk-CKACGS7T.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-K5J7ZB5P.mjs +20 -0
  18. package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-S33AYKSS.mjs → chunk-KFUMADZF.mjs} +135 -62
  20. package/dist/lib/browser/chunk-KFUMADZF.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-WZYRDFW7.mjs → chunk-VGKOXAPE.mjs} +26 -13
  22. package/dist/lib/browser/chunk-VGKOXAPE.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
  24. package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-WJXU4GKV.mjs +19 -0
  26. package/dist/lib/browser/chunk-WJXU4GKV.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-URST7EEN.mjs → chunk-ZQMSGD5J.mjs} +35 -19
  28. package/dist/lib/browser/chunk-ZQMSGD5J.mjs.map +7 -0
  29. package/dist/lib/browser/{identity-created-T6ZNVE7S.mjs → identity-created-NAXTPQXE.mjs} +5 -5
  30. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +88 -70
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-CO262Q44.mjs → intent-resolver-3FNTO3VW.mjs} +89 -76
  34. package/dist/lib/browser/intent-resolver-3FNTO3VW.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/react-root-Q7VBWBES.mjs +30 -0
  37. package/dist/lib/browser/react-root-Q7VBWBES.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-TPUOK2LC.mjs → react-surface-TTHS332A.mjs} +71 -105
  39. package/dist/lib/browser/react-surface-TTHS332A.mjs.map +7 -0
  40. package/dist/lib/browser/{schema-defs-YDPFZELA.mjs → schema-defs-QPI2JU3X.mjs} +6 -6
  41. package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-ZYH2JWNI.mjs → settings-45PGPO2V.mjs} +5 -5
  43. package/dist/lib/browser/{settings-ZYH2JWNI.mjs.map → settings-45PGPO2V.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-3I5LISH4.mjs → spaces-ready-QCND4DVY.mjs} +15 -14
  45. package/dist/lib/browser/spaces-ready-QCND4DVY.mjs.map +7 -0
  46. package/dist/lib/browser/{state-2RGW7FQG.mjs → state-Q7YRE5KG.mjs} +7 -7
  47. package/dist/lib/browser/state-Q7YRE5KG.mjs.map +7 -0
  48. package/dist/lib/browser/types/index.mjs +2 -2
  49. package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionArticle-KHXYT3SH.mjs} +10 -10
  50. package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
  51. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs +142 -0
  52. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs +145 -0
  54. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs.map +7 -0
  55. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs +117 -0
  56. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +7 -0
  57. package/dist/lib/node-esm/{app-graph-builder-OW2EBYRI.mjs → app-graph-builder-FBJFWI4H.mjs} +107 -96
  58. package/dist/lib/node-esm/app-graph-builder-FBJFWI4H.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-6PGC5WR5.mjs → app-graph-serializer-BESQZAYU.mjs} +19 -19
  60. package/dist/lib/node-esm/app-graph-serializer-BESQZAYU.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-RXDT5LA5.mjs → chunk-6VEONPNZ.mjs} +35 -19
  62. package/dist/lib/node-esm/chunk-6VEONPNZ.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-6ZQGZBEP.mjs +168 -0
  64. package/dist/lib/node-esm/chunk-6ZQGZBEP.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  66. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-H4JILUJK.mjs +20 -0
  68. package/dist/lib/node-esm/chunk-H4JILUJK.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-TEUN2E4F.mjs → chunk-OK2L7N2F.mjs} +135 -62
  70. package/dist/lib/node-esm/chunk-OK2L7N2F.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-LGNPMOXU.mjs → chunk-QBRPYAEL.mjs} +26 -13
  72. package/dist/lib/node-esm/chunk-QBRPYAEL.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-NMCD2PSG.mjs → chunk-XGAMJC5C.mjs} +553 -475
  74. package/dist/lib/node-esm/chunk-XGAMJC5C.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs +21 -0
  76. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +7 -0
  77. package/dist/lib/node-esm/{identity-created-AL7NNCKH.mjs → identity-created-OXLKCJE3.mjs} +5 -5
  78. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +88 -70
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-EXPK4B76.mjs → intent-resolver-6O5FSB7Z.mjs} +89 -76
  82. package/dist/lib/node-esm/intent-resolver-6O5FSB7Z.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/{react-root-4OQ7MPGW.mjs → react-root-K66W3FMA.mjs} +13 -12
  85. package/dist/lib/node-esm/react-root-K66W3FMA.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-WXEXIDB7.mjs → react-surface-Y7FTEIDF.mjs} +71 -105
  87. package/dist/lib/node-esm/react-surface-Y7FTEIDF.mjs.map +7 -0
  88. package/dist/lib/node-esm/{schema-defs-OYBCWKAS.mjs → schema-defs-ZS2D47XW.mjs} +6 -6
  89. package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-2RYFMMTP.mjs → settings-6FO65BA6.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-2RYFMMTP.mjs.map → settings-6FO65BA6.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-JAP22P57.mjs → spaces-ready-P7CKVXBE.mjs} +15 -14
  93. package/dist/lib/node-esm/spaces-ready-P7CKVXBE.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-7VBVBGNS.mjs → state-362I5BMK.mjs} +7 -7
  95. package/dist/lib/node-esm/state-362I5BMK.mjs.map +7 -0
  96. package/dist/lib/node-esm/types/index.mjs +2 -2
  97. package/dist/types/src/SpacePlugin.d.ts +1 -1
  98. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/capabilities.d.ts +6 -5
  101. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  106. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  107. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  108. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  109. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  110. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  111. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +1 -1
  112. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  113. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +120 -1
  114. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +3 -3
  116. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  117. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  118. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
  120. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  121. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  122. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  123. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  124. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1707 -0
  125. package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
  126. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  127. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  128. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  129. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  130. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  131. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  132. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  133. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  134. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  135. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  136. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  137. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  138. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  139. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  140. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1540 -0
  141. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  142. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  143. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  144. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  145. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  146. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  147. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  148. package/dist/types/src/components/{MembersContainer.stories.d.ts → RecordArticle.stories.d.ts} +121 -2
  149. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  150. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  151. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  152. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  153. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
  154. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  155. package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +122 -3
  156. package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
  157. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  158. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  159. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  160. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  161. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  162. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  163. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  164. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +120 -1
  165. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  167. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +121 -2
  168. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  169. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  170. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  171. package/dist/types/src/components/index.d.ts +10 -17
  172. package/dist/types/src/components/index.d.ts.map +1 -1
  173. package/dist/types/src/events.d.ts.map +1 -1
  174. package/dist/types/src/helpers/index.d.ts +2 -0
  175. package/dist/types/src/helpers/index.d.ts.map +1 -0
  176. package/dist/types/src/helpers/query.d.ts +8 -0
  177. package/dist/types/src/helpers/query.d.ts.map +1 -0
  178. package/dist/types/src/helpers/query.test.d.ts +2 -0
  179. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  180. package/dist/types/src/hooks/index.d.ts +1 -0
  181. package/dist/types/src/hooks/index.d.ts.map +1 -1
  182. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  183. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  184. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  185. package/dist/types/src/hooks/usePath.d.ts +1 -1
  186. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  187. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  188. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  189. package/dist/types/src/index.d.ts +1 -0
  190. package/dist/types/src/index.d.ts.map +1 -1
  191. package/dist/types/src/meta.d.ts +0 -1
  192. package/dist/types/src/meta.d.ts.map +1 -1
  193. package/dist/types/src/translations.d.ts +120 -0
  194. package/dist/types/src/translations.d.ts.map +1 -1
  195. package/dist/types/src/types/types.d.ts +70 -55
  196. package/dist/types/src/types/types.d.ts.map +1 -1
  197. package/dist/types/src/util.d.ts +10 -7
  198. package/dist/types/src/util.d.ts.map +1 -1
  199. package/dist/types/tsconfig.tsbuildinfo +1 -1
  200. package/package.json +65 -60
  201. package/src/SpacePlugin.ts +228 -200
  202. package/src/capabilities/app-graph-builder.ts +157 -121
  203. package/src/capabilities/app-graph-serializer.ts +12 -12
  204. package/src/capabilities/capabilities.ts +16 -11
  205. package/src/capabilities/identity-created.ts +2 -2
  206. package/src/capabilities/intent-resolver.ts +75 -59
  207. package/src/capabilities/react-root.tsx +4 -3
  208. package/src/capabilities/react-surface.tsx +65 -141
  209. package/src/capabilities/schema-defs.ts +1 -1
  210. package/src/capabilities/spaces-ready.ts +8 -5
  211. package/src/capabilities/state.ts +2 -2
  212. package/src/components/AwaitingObject.tsx +12 -14
  213. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
  214. package/src/components/CollectionSection.tsx +8 -6
  215. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -11
  216. package/src/components/CreateDialog/CreateObjectDialog.tsx +36 -28
  217. package/src/components/CreateDialog/CreateObjectPanel.tsx +8 -8
  218. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
  219. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  220. package/src/components/JoinDialog/index.ts +5 -0
  221. package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +7 -6
  222. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +16 -14
  223. package/src/components/MembersContainer/index.ts +5 -0
  224. package/src/components/MenuFooter.tsx +2 -2
  225. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
  226. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
  227. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  228. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +6 -6
  229. package/src/components/ObjectRenamePopover/index.ts +5 -0
  230. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -3
  231. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  232. package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
  233. package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
  234. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +1 -1
  235. package/src/components/ObjectSettings/index.ts +3 -1
  236. package/src/components/RecordArticle.stories.tsx +115 -0
  237. package/src/components/RecordArticle.tsx +114 -0
  238. package/src/components/SchemaContainer.tsx +23 -26
  239. package/src/components/SpacePluginSettings.tsx +10 -4
  240. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +23 -25
  241. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +16 -11
  242. package/src/components/SpacePresence/index.ts +5 -0
  243. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  244. package/src/components/SpaceRenamePopover/index.ts +5 -0
  245. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +9 -4
  246. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +44 -23
  247. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  248. package/src/components/SyncStatus/SyncStatus.stories.tsx +4 -5
  249. package/src/components/SyncStatus/SyncStatus.tsx +107 -11
  250. package/src/components/ViewEditor.tsx +51 -18
  251. package/src/components/index.ts +7 -8
  252. package/src/events.ts +6 -6
  253. package/src/helpers/index.ts +5 -0
  254. package/src/helpers/query.test.ts +24 -0
  255. package/src/helpers/query.ts +158 -0
  256. package/src/hooks/index.ts +1 -0
  257. package/src/hooks/useActiveSpace.ts +2 -1
  258. package/src/hooks/useInputSurfaceLookup.tsx +8 -3
  259. package/src/hooks/usePath.ts +1 -1
  260. package/src/hooks/useTypeOptions.ts +59 -0
  261. package/src/index.ts +1 -0
  262. package/src/meta.ts +6 -3
  263. package/src/translations.ts +25 -10
  264. package/src/types/types.ts +33 -18
  265. package/src/util.tsx +141 -63
  266. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  267. package/dist/lib/browser/ObjectDetailsPanel-J7KGPJJK.mjs +0 -90
  268. package/dist/lib/browser/ObjectDetailsPanel-J7KGPJJK.mjs.map +0 -7
  269. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
  270. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
  271. package/dist/lib/browser/app-graph-builder-AFC6PNAB.mjs.map +0 -7
  272. package/dist/lib/browser/app-graph-serializer-Q7QG4EKW.mjs.map +0 -7
  273. package/dist/lib/browser/chunk-6GRF7NEF.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-CBYL62HG.mjs +0 -19
  275. package/dist/lib/browser/chunk-CBYL62HG.mjs.map +0 -7
  276. package/dist/lib/browser/chunk-ELJDGQTO.mjs +0 -94
  277. package/dist/lib/browser/chunk-ELJDGQTO.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  279. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-S33AYKSS.mjs.map +0 -7
  281. package/dist/lib/browser/chunk-TUQZO5P4.mjs +0 -20
  282. package/dist/lib/browser/chunk-TUQZO5P4.mjs.map +0 -7
  283. package/dist/lib/browser/chunk-URST7EEN.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-WZYRDFW7.mjs.map +0 -7
  285. package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +0 -7
  286. package/dist/lib/browser/intent-resolver-CO262Q44.mjs.map +0 -7
  287. package/dist/lib/browser/react-root-K4IVLFYZ.mjs +0 -29
  288. package/dist/lib/browser/react-root-K4IVLFYZ.mjs.map +0 -7
  289. package/dist/lib/browser/react-surface-TPUOK2LC.mjs.map +0 -7
  290. package/dist/lib/browser/schema-defs-YDPFZELA.mjs.map +0 -7
  291. package/dist/lib/browser/spaces-ready-3I5LISH4.mjs.map +0 -7
  292. package/dist/lib/browser/state-2RGW7FQG.mjs.map +0 -7
  293. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  294. package/dist/lib/node-esm/ObjectDetailsPanel-7ADOXZ5W.mjs +0 -91
  295. package/dist/lib/node-esm/ObjectDetailsPanel-7ADOXZ5W.mjs.map +0 -7
  296. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
  297. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
  298. package/dist/lib/node-esm/app-graph-builder-OW2EBYRI.mjs.map +0 -7
  299. package/dist/lib/node-esm/app-graph-serializer-6PGC5WR5.mjs.map +0 -7
  300. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs +0 -20
  301. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-HC677WUJ.mjs +0 -21
  303. package/dist/lib/node-esm/chunk-HC677WUJ.mjs.map +0 -7
  304. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  305. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  306. package/dist/lib/node-esm/chunk-LGNPMOXU.mjs.map +0 -7
  307. package/dist/lib/node-esm/chunk-NMCD2PSG.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs +0 -96
  309. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs.map +0 -7
  310. package/dist/lib/node-esm/chunk-RXDT5LA5.mjs.map +0 -7
  311. package/dist/lib/node-esm/chunk-TEUN2E4F.mjs.map +0 -7
  312. package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +0 -7
  313. package/dist/lib/node-esm/intent-resolver-EXPK4B76.mjs.map +0 -7
  314. package/dist/lib/node-esm/react-root-4OQ7MPGW.mjs.map +0 -7
  315. package/dist/lib/node-esm/react-surface-WXEXIDB7.mjs.map +0 -7
  316. package/dist/lib/node-esm/schema-defs-OYBCWKAS.mjs.map +0 -7
  317. package/dist/lib/node-esm/spaces-ready-JAP22P57.mjs.map +0 -7
  318. package/dist/lib/node-esm/state-7VBVBGNS.mjs.map +0 -7
  319. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  320. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  321. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  322. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  323. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  324. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  325. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  326. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  327. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  328. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  329. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  330. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  331. package/dist/types/src/components/RecordMain.d.ts +0 -7
  332. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  333. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  334. package/src/components/ObjectDetailsPanel.tsx +0 -79
  335. package/src/components/PersistenceStatus.tsx +0 -83
  336. package/src/components/RecordMain.tsx +0 -43
  337. /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
@@ -4,15 +4,15 @@
4
4
 
5
5
  import { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';
6
6
  import { isSpace } from '@dxos/client/echo';
7
- import { Obj, Type } from '@dxos/echo';
8
- import { DataType } from '@dxos/schema';
7
+ import { Obj } from '@dxos/echo';
8
+ import { Collection } from '@dxos/schema';
9
9
 
10
- import { SPACE_PLUGIN } from '../meta';
10
+ import { meta } from '../meta';
11
11
  import { translations } from '../translations';
12
12
  import { SPACE_TYPE, SpaceAction } from '../types';
13
13
  import { SPACES } from '../util';
14
14
 
15
- const COLLECTION_TYPE = Type.getTypename(DataType.Collection);
15
+ const COLLECTION_TYPE = Collection.Collection.typename;
16
16
 
17
17
  // https://stackoverflow.com/a/19016910
18
18
  const DIRECTORY_TYPE = 'text/directory';
@@ -23,8 +23,8 @@ export default (context: PluginContext) =>
23
23
  inputType: SPACES,
24
24
  outputType: DIRECTORY_TYPE,
25
25
  serialize: (node) => ({
26
- name: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',
27
- data: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',
26
+ name: translations[0]['en-US'][meta.id]['spaces label'] ?? 'Spaces',
27
+ data: translations[0]['en-US'][meta.id]['spaces label'] ?? 'Spaces',
28
28
  type: DIRECTORY_TYPE,
29
29
  }),
30
30
  deserialize: () => {
@@ -35,8 +35,8 @@ export default (context: PluginContext) =>
35
35
  inputType: SPACE_TYPE,
36
36
  outputType: DIRECTORY_TYPE,
37
37
  serialize: (node) => ({
38
- name: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],
39
- data: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],
38
+ name: node.data.properties.name ?? translations[0]['en-US'][meta.id]['unnamed space label'],
39
+ data: node.data.properties.name ?? translations[0]['en-US'][meta.id]['unnamed space label'],
40
40
  type: DIRECTORY_TYPE,
41
41
  }),
42
42
  deserialize: async (data) => {
@@ -49,14 +49,14 @@ export default (context: PluginContext) =>
49
49
  inputType: COLLECTION_TYPE,
50
50
  outputType: DIRECTORY_TYPE,
51
51
  serialize: (node) => ({
52
- name: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],
53
- data: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],
52
+ name: node.data.name ?? translations[0]['en-US'][meta.id]['object name placeholder'],
53
+ data: node.data.name ?? translations[0]['en-US'][meta.id]['object name placeholder'],
54
54
  type: DIRECTORY_TYPE,
55
55
  }),
56
56
  deserialize: async (data, ancestors) => {
57
57
  const space = ancestors.find(isSpace);
58
58
  const collection =
59
- ancestors.findLast((ancestor) => Obj.instanceOf(DataType.Collection, ancestor)) ??
59
+ ancestors.findLast((ancestor) => Obj.instanceOf(Collection.Collection, ancestor)) ??
60
60
  space?.properties[COLLECTION_TYPE]?.target;
61
61
  if (!space || !collection) {
62
62
  return;
@@ -66,7 +66,7 @@ export default (context: PluginContext) =>
66
66
  const result = await dispatch(
67
67
  createIntent(SpaceAction.AddObject, {
68
68
  target: collection,
69
- object: Obj.make(DataType.Collection, { name: data.name, objects: [] }),
69
+ object: Obj.make(Collection.Collection, { name: data.name, objects: [] }),
70
70
  }),
71
71
  );
72
72
 
@@ -2,29 +2,34 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Schema } from 'effect';
5
+ import type * as Schema from 'effect/Schema';
6
6
 
7
7
  import { type AnyIntentChain, type Label, defineCapability } from '@dxos/app-framework';
8
8
  import { type Space } from '@dxos/react-client/echo';
9
- import { type DataType } from '@dxos/schema';
9
+ import { type Collection } from '@dxos/schema';
10
10
  import { type DeepReadonly, type Position } from '@dxos/util';
11
11
 
12
- import { SPACE_PLUGIN } from '../meta';
12
+ import { meta } from '../meta';
13
13
  import { type ObjectForm, type PluginState } from '../types';
14
14
 
15
15
  export namespace SpaceCapabilities {
16
- export const State = defineCapability<DeepReadonly<PluginState>>(`${SPACE_PLUGIN}/capability/state`);
17
- export const MutableState = defineCapability<PluginState>(`${SPACE_PLUGIN}/capability/state`);
16
+ export const State = defineCapability<DeepReadonly<PluginState>>(`${meta.id}/capability/state`);
17
+ export const MutableState = defineCapability<PluginState>(`${meta.id}/capability/state`);
18
18
 
19
19
  export type SettingsSection = { id: string; label: Label; position?: Position };
20
- export const SettingsSection = defineCapability<SettingsSection>(`${SPACE_PLUGIN}/capability/settings-section`);
20
+ export const SettingsSection = defineCapability<SettingsSection>(`${meta.id}/capability/settings-section`);
21
21
 
22
- export type OnSpaceCreated = (params: { space: Space; rootCollection: DataType.Collection }) => AnyIntentChain;
23
- export const OnSpaceCreated = defineCapability<OnSpaceCreated>(`${SPACE_PLUGIN}/capability/on-space-created`);
22
+ export type onCreateSpace = (params: { space: Space; rootCollection: Collection.Collection }) => AnyIntentChain;
23
+ export const onCreateSpace = defineCapability<onCreateSpace>(`${meta.id}/capability/on-space-created`);
24
24
 
25
- export type OnSchemaAdded = (params: { space: Space; schema: Schema.Schema.AnyNoContext }) => AnyIntentChain;
26
- export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${SPACE_PLUGIN}/capability/on-schema-added`);
25
+ export type OnSchemaAdded = (params: {
26
+ space: Space;
27
+ schema: Schema.Schema.AnyNoContext;
28
+ // TODO(wittjosiah): This is leaky.
29
+ show?: boolean;
30
+ }) => AnyIntentChain;
31
+ export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);
27
32
 
28
33
  // TODO(burdon): Should this be view? Forms are UI concepts? (associated with a View/schema).
29
- export const ObjectForm = defineCapability<ObjectForm<any>>(`${SPACE_PLUGIN}/capability/object-form`);
34
+ export const ObjectForm = defineCapability<ObjectForm<any>>(`${meta.id}/capability/object-form`);
30
35
  }
@@ -6,7 +6,7 @@ import { Capabilities, type PluginContext, contributes } from '@dxos/app-framewo
6
6
  import { Obj, Ref } from '@dxos/echo';
7
7
  import { Migrations } from '@dxos/migrations';
8
8
  import { ClientCapabilities } from '@dxos/plugin-client';
9
- import { DataType } from '@dxos/schema';
9
+ import { Collection } from '@dxos/schema';
10
10
 
11
11
  export default async (context: PluginContext) => {
12
12
  const client = context.getCapability(ClientCapabilities.Client);
@@ -16,7 +16,7 @@ export default async (context: PluginContext) => {
16
16
  await defaultSpace.waitUntilReady();
17
17
 
18
18
  // Create root collection structure.
19
- defaultSpace.properties[DataType.Collection.typename] = Ref.make(Obj.make(DataType.Collection, { objects: [] }));
19
+ defaultSpace.properties[Collection.Collection.typename] = Ref.make(Obj.make(Collection.Collection, { objects: [] }));
20
20
  if (Migrations.versionProperty) {
21
21
  defaultSpace.properties[Migrations.versionProperty] = Migrations.targetVersion;
22
22
  }
@@ -2,7 +2,7 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Effect } from 'effect';
5
+ import * as Effect from 'effect/Effect';
6
6
 
7
7
  import {
8
8
  Capabilities,
@@ -13,15 +13,19 @@ import {
13
13
  createResolver,
14
14
  } from '@dxos/app-framework';
15
15
  import { Filter, Obj, Query, Ref, Relation, Type } from '@dxos/echo';
16
+ import { Serializer } from '@dxos/echo-db';
17
+ import { DatabaseService } from '@dxos/functions';
16
18
  import { invariant } from '@dxos/invariant';
17
19
  import { Migrations } from '@dxos/migrations';
18
20
  import { ClientCapabilities } from '@dxos/plugin-client';
19
21
  import { ObservabilityAction } from '@dxos/plugin-observability/types';
20
22
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
21
- import { SpaceState, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';
23
+ import { SpaceState, getSpace, isSpace } from '@dxos/react-client/echo';
22
24
  import { Invitation, InvitationEncoder } from '@dxos/react-client/invitations';
23
25
  import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
24
- import { DataType, ProjectionModel, typenameFromQuery } from '@dxos/schema';
26
+ import { iconValues } from '@dxos/react-ui-pickers';
27
+ import { hues } from '@dxos/react-ui-theme';
28
+ import { Collection, ProjectionModel, StoredSchema, getTypenameFromQuery } from '@dxos/schema';
25
29
 
26
30
  import {
27
31
  CREATE_OBJECT_DIALOG,
@@ -29,11 +33,11 @@ import {
29
33
  type CreateObjectDialogProps,
30
34
  JOIN_DIALOG,
31
35
  type JoinDialogProps,
32
- POPOVER_RENAME_OBJECT,
33
- POPOVER_RENAME_SPACE,
36
+ OBJECT_RENAME_POPOVER,
37
+ SPACE_RENAME_POPOVER,
34
38
  } from '../components';
35
39
  import { SpaceEvents } from '../events';
36
- import { SPACE_PLUGIN } from '../meta';
40
+ import { meta } from '../meta';
37
41
  import { CollectionAction, SpaceAction } from '../types';
38
42
  import { COMPOSER_SPACE_LOCK, cloneObject, getNestedObjects } from '../util';
39
43
 
@@ -69,8 +73,10 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
69
73
  }),
70
74
  createResolver({
71
75
  intent: SpaceAction.Create,
72
- resolve: async ({ name, hue, icon, edgeReplication }) => {
76
+ resolve: async ({ name, hue: hue_, icon: icon_, edgeReplication }) => {
73
77
  const client = context.getCapability(ClientCapabilities.Client);
78
+ const hue = hue_ ?? hues[Math.floor(Math.random() * hues.length)];
79
+ const icon = icon_ ?? iconValues[Math.floor(Math.random() * iconValues.length)];
74
80
  const space = await client.spaces.create({ name, hue, icon });
75
81
  if (edgeReplication) {
76
82
  await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);
@@ -78,8 +84,8 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
78
84
  await space.waitUntilReady();
79
85
 
80
86
  // Create root collection.
81
- const collection = Obj.make(DataType.Collection, { objects: [] });
82
- space.properties[DataType.Collection.typename] = Ref.make(collection);
87
+ const collection = Obj.make(Collection.Collection, { objects: [] });
88
+ space.properties[Collection.Collection.typename] = Ref.make(collection);
83
89
 
84
90
  // Set current migration version.
85
91
  if (Migrations.versionProperty) {
@@ -87,16 +93,20 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
87
93
  }
88
94
 
89
95
  // Create records smart collection.
90
- const records = Obj.make(DataType.QueryCollection, {
91
- query: Query.select(Filter.typename(DataType.StoredSchema.typename)).ast,
92
- });
93
- collection.objects.push(Ref.make(records));
96
+ collection.objects.push(
97
+ Ref.make(
98
+ Obj.make(Collection.QueryCollection, {
99
+ // NOTE: This is specifically Filter.typename due to current limitations in query collection parsing.
100
+ query: Query.select(Filter.typename(StoredSchema.typename)).ast,
101
+ }),
102
+ ),
103
+ );
94
104
 
95
105
  // Allow other plugins to add default content.
96
106
  await context.activatePromise(SpaceEvents.SpaceCreated);
97
- const onSpaceCreatedCallbacks = context.getCapabilities(SpaceCapabilities.OnSpaceCreated);
98
- const spaceCreatedIntents = onSpaceCreatedCallbacks.map((onSpaceCreated) =>
99
- onSpaceCreated({ space, rootCollection: collection }),
107
+ const onCreateSpaceCallbacks = context.getCapabilities(SpaceCapabilities.onCreateSpace);
108
+ const spaceCreatedIntents = onCreateSpaceCallbacks.map((onCreateSpace) =>
109
+ onCreateSpace({ space, rootCollection: collection }),
100
110
  );
101
111
 
102
112
  return {
@@ -254,7 +264,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
254
264
  intents: [
255
265
  createIntent(LayoutAction.UpdatePopover, {
256
266
  part: 'popover',
257
- subject: POPOVER_RENAME_SPACE,
267
+ subject: SPACE_RENAME_POPOVER,
258
268
  options: {
259
269
  anchorId: `dxos.org/ui/${caller}/${space.id}`,
260
270
  props: space,
@@ -321,9 +331,20 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
321
331
  };
322
332
  },
323
333
  }),
334
+ createResolver({
335
+ intent: SpaceAction.Snapshot,
336
+ resolve: async ({ space, query }) => {
337
+ const backup = await new Serializer().export(space.db, query && Query.fromAst(query));
338
+ return {
339
+ data: {
340
+ snapshot: new Blob([JSON.stringify(backup, null, 2)], { type: 'application/json' }),
341
+ },
342
+ };
343
+ },
344
+ }),
324
345
  createResolver({
325
346
  intent: SpaceAction.UseStaticSchema,
326
- resolve: async ({ space, typename }) => {
347
+ resolve: async ({ space, typename, show }) => {
327
348
  const client = context.getCapability(ClientCapabilities.Client);
328
349
  const schema = client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename);
329
350
  invariant(schema, `Schema not found: ${typename}`);
@@ -338,7 +359,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
338
359
 
339
360
  await context.activatePromise(SpaceEvents.SchemaAdded);
340
361
  const onSchemaAdded = context.getCapabilities(SpaceCapabilities.OnSchemaAdded);
341
- const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema }));
362
+ const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema, show }));
342
363
 
343
364
  return {
344
365
  data: {},
@@ -361,7 +382,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
361
382
  }),
362
383
  createResolver({
363
384
  intent: SpaceAction.AddSchema,
364
- resolve: async ({ space, name, typename, version, schema: schemaInput }) => {
385
+ resolve: async ({ space, name, typename, version, schema: schemaInput, show }) => {
365
386
  const [schema] = await space.db.schemaRegistry.register([schemaInput]);
366
387
  if (name) {
367
388
  schema.storedSchema.name = name;
@@ -375,7 +396,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
375
396
 
376
397
  await context.activatePromise(SpaceEvents.SchemaAdded);
377
398
  const onSchemaAdded = context.getCapabilities(SpaceCapabilities.OnSchemaAdded);
378
- const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema }));
399
+ const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema, show }));
379
400
 
380
401
  return {
381
402
  data: {
@@ -406,7 +427,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
406
427
  resolve: async ({ view, fieldId, deletionData }, undo) => {
407
428
  const space = getSpace(view);
408
429
  invariant(space);
409
- const typename = typenameFromQuery(view.query);
430
+ const typename = getTypenameFromQuery(view.query.ast);
410
431
  invariant(typename);
411
432
  const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();
412
433
  invariant(schema);
@@ -415,7 +436,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
415
436
  const { deleted, index } = projection.deleteFieldProjection(fieldId);
416
437
  return {
417
438
  undoable: {
418
- message: ['field deleted label', { ns: SPACE_PLUGIN }],
439
+ message: ['field deleted label', { ns: meta.id }],
419
440
  data: { deletionData: { ...deleted, index } },
420
441
  },
421
442
  };
@@ -445,8 +466,8 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
445
466
  onCreateObject,
446
467
  shouldNavigate: navigable
447
468
  ? (object: Obj.Any) => {
448
- const isCollection = Obj.instanceOf(DataType.Collection, object);
449
- const isQueryCollection = Obj.instanceOf(DataType.QueryCollection, object);
469
+ const isCollection = Obj.instanceOf(Collection.Collection, object);
470
+ const isQueryCollection = Obj.instanceOf(Collection.QueryCollection, object);
450
471
  return (!isCollection && !isQueryCollection) || state.navigableCollections;
451
472
  }
452
473
  : () => false,
@@ -470,13 +491,13 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
470
491
  createIntent(LayoutAction.AddToast, {
471
492
  part: 'toast',
472
493
  subject: {
473
- id: `${SPACE_PLUGIN}/space-limit`,
474
- title: ['space limit label', { ns: SPACE_PLUGIN }],
475
- description: ['space limit description', { ns: SPACE_PLUGIN }],
494
+ id: `${meta.id}/space-limit`,
495
+ title: ['space limit label', { ns: meta.id }],
496
+ description: ['space limit description', { ns: meta.id }],
476
497
  duration: 5_000,
477
498
  icon: 'ph--warning--regular',
478
- actionLabel: ['remove deleted objects label', { ns: SPACE_PLUGIN }],
479
- actionAlt: ['remove deleted objects alt', { ns: SPACE_PLUGIN }],
499
+ actionLabel: ['remove deleted objects label', { ns: meta.id }],
500
+ actionAlt: ['remove deleted objects alt', { ns: meta.id }],
480
501
  closeLabel: ['close label', { ns: 'os' }],
481
502
  onAction: () => space.db.coreDatabase.unlinkDeletedObjects(),
482
503
  },
@@ -495,25 +516,18 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
495
516
  };
496
517
  }
497
518
 
498
- if (Obj.instanceOf(DataType.Collection, target)) {
499
- target.objects.push(Ref.make(object));
500
- } else if (isSpace(target) && hidden) {
501
- space.db.add(object);
502
- } else if (isSpace(target)) {
503
- const collection = space.properties[DataType.Collection.typename]?.target;
504
- if (Obj.instanceOf(DataType.Collection, collection)) {
505
- collection.objects.push(Ref.make(object));
506
- } else {
507
- // TODO(wittjosiah): Can't add non-echo objects by including in a collection because of types.
508
- const collection = Obj.make(DataType.Collection, { objects: [Ref.make(object)] });
509
- space.properties[DataType.Collection.typename] = Ref.make(collection);
510
- }
511
- }
519
+ await Effect.gen(function* () {
520
+ yield* Collection.add({
521
+ object,
522
+ target: isSpace(target) ? undefined : target,
523
+ hidden,
524
+ });
525
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.runPromise);
512
526
 
513
527
  return {
514
528
  data: {
515
- id: fullyQualifiedId(object),
516
- subject: [fullyQualifiedId(object)],
529
+ id: Obj.getDXN(object).toString(),
530
+ subject: [Obj.getDXN(object).toString()],
517
531
  object,
518
532
  },
519
533
  intents: [
@@ -562,26 +576,26 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
562
576
  const openObjectIds = new Set<string>(layout.active);
563
577
 
564
578
  if (!undo) {
565
- const parentCollection: DataType.Collection =
566
- target ?? space.properties[DataType.Collection.typename]?.target;
579
+ const parentCollection: Collection.Collection =
580
+ target ?? space.properties[Collection.Collection.typename]?.target;
567
581
  const nestedObjectsList = await Promise.all(objects.map((obj) => getNestedObjects(obj, resolve)));
568
582
 
569
583
  const deletionData = {
570
584
  objects,
571
585
  parentCollection,
572
586
  indices: objects.map((obj) =>
573
- Obj.instanceOf(DataType.Collection, parentCollection)
587
+ Obj.instanceOf(Collection.Collection, parentCollection)
574
588
  ? parentCollection.objects.findIndex((object) => object.target === obj)
575
589
  : -1,
576
590
  ),
577
591
  nestedObjectsList,
578
592
  wasActive: objects
579
593
  .flatMap((obj, i) => [obj, ...nestedObjectsList[i]])
580
- .map((obj) => fullyQualifiedId(obj))
594
+ .map((obj) => Obj.getDXN(obj).toString())
581
595
  .filter((id) => openObjectIds.has(id)),
582
596
  } satisfies SpaceAction.DeletionData;
583
597
 
584
- if (Obj.instanceOf(DataType.Collection, deletionData.parentCollection)) {
598
+ if (Obj.instanceOf(Collection.Collection, deletionData.parentCollection)) {
585
599
  [...deletionData.indices]
586
600
  .sort((a, b) => b - a)
587
601
  .forEach((index: number) => {
@@ -596,7 +610,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
596
610
  });
597
611
  objects.forEach((obj) => space.db.remove(obj));
598
612
 
599
- const undoMessageKey = objects.some((obj) => Obj.instanceOf(DataType.Collection, obj))
613
+ const undoMessageKey = objects.some((obj) => Obj.instanceOf(Collection.Collection, obj))
600
614
  ? 'collection deleted label'
601
615
  : objects.length > 1
602
616
  ? 'objects deleted label'
@@ -605,7 +619,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
605
619
  return {
606
620
  undoable: {
607
621
  // TODO(ZaymonFC): Pluralize if more than one object.
608
- message: [undoMessageKey, { ns: SPACE_PLUGIN }],
622
+ message: [undoMessageKey, { ns: meta.id }],
609
623
  data: { deletionData },
610
624
  },
611
625
  intents:
@@ -623,7 +637,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
623
637
  if (
624
638
  deletionData?.objects?.length &&
625
639
  deletionData.objects.every(Obj.isObject) &&
626
- Obj.instanceOf(DataType.Collection, deletionData.parentCollection)
640
+ Obj.instanceOf(Collection.Collection, deletionData.parentCollection)
627
641
  ) {
628
642
  // Restore the object to the space.
629
643
  const restoredObjects = deletionData.objects.map((obj: Type.Expando) => space.db.add(obj));
@@ -660,9 +674,9 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
660
674
  intents: [
661
675
  createIntent(LayoutAction.UpdatePopover, {
662
676
  part: 'popover',
663
- subject: POPOVER_RENAME_OBJECT,
677
+ subject: OBJECT_RENAME_POPOVER,
664
678
  options: {
665
- anchorId: `dxos.org/ui/${caller}/${fullyQualifiedId(object)}`,
679
+ anchorId: `dxos.org/ui/${caller}/${Obj.getDXN(object).toString()}`,
666
680
  props: object,
667
681
  },
668
682
  }),
@@ -674,7 +688,6 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
674
688
  resolve: async ({ object, target }) => {
675
689
  const space = isSpace(target) ? target : getSpace(target);
676
690
  invariant(space, 'Space not found.');
677
-
678
691
  const newObject = await cloneObject(object, resolve, space);
679
692
  return {
680
693
  intents: [createIntent(SpaceAction.AddObject, { object: newObject, target })],
@@ -691,14 +704,17 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
691
704
  createResolver({
692
705
  intent: CollectionAction.Create,
693
706
  resolve: async ({ name }) => ({
694
- data: { object: Obj.make(DataType.Collection, { name, objects: [] }) },
707
+ data: { object: Obj.make(Collection.Collection, { name, objects: [] }) },
695
708
  }),
696
709
  }),
697
710
  createResolver({
698
711
  intent: CollectionAction.CreateQueryCollection,
699
712
  resolve: async ({ name, typename }) => ({
700
713
  data: {
701
- object: Obj.make(DataType.QueryCollection, { name, query: Query.select(Filter.typename(typename)).ast }),
714
+ object: Obj.make(Collection.QueryCollection, {
715
+ name,
716
+ query: Query.select(Filter.typename(typename)).ast,
717
+ }),
702
718
  },
703
719
  }),
704
720
  }),
@@ -4,16 +4,17 @@
4
4
 
5
5
  import React from 'react';
6
6
 
7
- import { Capabilities, contributes, useCapability } from '@dxos/app-framework';
7
+ import { Capabilities, contributes } from '@dxos/app-framework';
8
+ import { useCapability } from '@dxos/app-framework/react';
8
9
 
9
10
  import { AwaitingObject } from '../components';
10
- import { SPACE_PLUGIN } from '../meta';
11
+ import { meta } from '../meta';
11
12
 
12
13
  import { SpaceCapabilities } from './capabilities';
13
14
 
14
15
  export default () =>
15
16
  contributes(Capabilities.ReactRoot, {
16
- id: SPACE_PLUGIN,
17
+ id: meta.id,
17
18
  root: () => {
18
19
  const state = useCapability(SpaceCapabilities.State);
19
20
  return state.awaiting ? <AwaitingObject id={state.awaiting} /> : null;