@dxos/plugin-space 0.8.4-main.5ad4a44 → 0.8.4-main.66e292d

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 (331) hide show
  1. package/dist/lib/browser/{CollectionMain-AX7KKXWP.mjs → CollectionArticle-WTHWY4YS.mjs} +8 -8
  2. package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-ACGHWPDX.mjs +141 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-ACGHWPDX.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectSettings-U3IH7BMV.mjs +144 -0
  6. package/dist/lib/browser/ObjectSettings-U3IH7BMV.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-Y2LBZX2G.mjs → app-graph-builder-HABMCWAI.mjs} +170 -173
  10. package/dist/lib/browser/app-graph-builder-HABMCWAI.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-425OVRTW.mjs → app-graph-serializer-G3VFEGTN.mjs} +10 -10
  12. package/dist/lib/browser/app-graph-serializer-G3VFEGTN.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-6A3NWBB6.mjs +392 -0
  14. package/dist/lib/browser/chunk-6A3NWBB6.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-PUF3B7XO.mjs → chunk-C6DAPIFF.mjs} +4 -4
  16. package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-X6COEDOD.mjs → chunk-GJOZILGC.mjs} +182 -118
  18. package/dist/lib/browser/chunk-GJOZILGC.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-6KVKMOGQ.mjs → chunk-KCZ527AM.mjs} +607 -456
  20. package/dist/lib/browser/chunk-KCZ527AM.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-CVZAZRW4.mjs → chunk-P25R3AOK.mjs} +34 -4
  22. package/dist/lib/browser/chunk-P25R3AOK.mjs.map +7 -0
  23. package/dist/lib/browser/{chunk-YZJWWMNB.mjs → chunk-POFUXISV.mjs} +68 -62
  24. package/dist/lib/browser/chunk-POFUXISV.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
  26. package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-EIXZABXD.mjs → chunk-WJXU4GKV.mjs} +2 -2
  28. package/dist/lib/browser/{identity-created-PW2BA46S.mjs → identity-created-NAXTPQXE.mjs} +3 -3
  29. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  30. package/dist/lib/browser/index.mjs +83 -110
  31. package/dist/lib/browser/index.mjs.map +3 -3
  32. package/dist/lib/browser/{intent-resolver-2TBYHOBA.mjs → intent-resolver-RZEWNJ2K.mjs} +90 -82
  33. package/dist/lib/browser/intent-resolver-RZEWNJ2K.mjs.map +7 -0
  34. package/dist/lib/browser/meta.json +1 -1
  35. package/dist/lib/browser/{react-root-KMJXJ5VX.mjs → react-root-JCRD74GI.mjs} +9 -8
  36. package/dist/lib/browser/react-root-JCRD74GI.mjs.map +7 -0
  37. package/dist/lib/browser/{react-surface-YAJUAMER.mjs → react-surface-VOETEAG3.mjs} +64 -84
  38. package/dist/lib/browser/react-surface-VOETEAG3.mjs.map +7 -0
  39. package/dist/lib/browser/repair-CNLE35NF.mjs +44 -0
  40. package/dist/lib/browser/repair-CNLE35NF.mjs.map +7 -0
  41. package/dist/lib/browser/{settings-UYYJ225A.mjs → settings-TRLI52I5.mjs} +3 -3
  42. package/dist/lib/browser/{spaces-ready-YNZPWXA3.mjs → spaces-ready-OHGCWZHQ.mjs} +19 -12
  43. package/dist/lib/browser/spaces-ready-OHGCWZHQ.mjs.map +7 -0
  44. package/dist/lib/browser/{state-BPU73TYO.mjs → state-C7N6EDDZ.mjs} +3 -3
  45. package/dist/lib/browser/types/index.mjs +10 -4
  46. package/dist/lib/node-esm/{CollectionMain-EU57SRYK.mjs → CollectionArticle-KHXYT3SH.mjs} +8 -8
  47. package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
  48. package/dist/lib/node-esm/ObjectDetailsPanel-6OFTT3GG.mjs +142 -0
  49. package/dist/lib/node-esm/ObjectDetailsPanel-6OFTT3GG.mjs.map +7 -0
  50. package/dist/lib/node-esm/ObjectSettings-YXPJQMJ5.mjs +145 -0
  51. package/dist/lib/node-esm/ObjectSettings-YXPJQMJ5.mjs.map +7 -0
  52. package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs +117 -0
  53. package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs.map +7 -0
  54. package/dist/lib/node-esm/{app-graph-builder-DMNLDT7E.mjs → app-graph-builder-T6VJKIOA.mjs} +170 -173
  55. package/dist/lib/node-esm/app-graph-builder-T6VJKIOA.mjs.map +7 -0
  56. package/dist/lib/node-esm/{app-graph-serializer-ZEDSY77N.mjs → app-graph-serializer-2NLWWFUB.mjs} +10 -10
  57. package/dist/lib/node-esm/app-graph-serializer-2NLWWFUB.mjs.map +7 -0
  58. package/dist/lib/node-esm/{chunk-FLRC6XWU.mjs → chunk-7EV4SN47.mjs} +33 -4
  59. package/dist/lib/node-esm/chunk-7EV4SN47.mjs.map +7 -0
  60. package/dist/lib/node-esm/{chunk-7UIEPBQJ.mjs → chunk-AX3UGL5D.mjs} +68 -62
  61. package/dist/lib/node-esm/chunk-AX3UGL5D.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  63. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs → chunk-H4JILUJK.mjs} +2 -2
  65. package/dist/lib/node-esm/{chunk-ZFCCFELA.mjs → chunk-I6FZP42D.mjs} +182 -118
  66. package/dist/lib/node-esm/chunk-I6FZP42D.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-L26ZIGHA.mjs → chunk-JAMGJUFU.mjs} +607 -456
  68. package/dist/lib/node-esm/chunk-JAMGJUFU.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-36TAYXV7.mjs → chunk-WWGV5FJM.mjs} +4 -4
  70. package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-X34VDVMY.mjs +393 -0
  72. package/dist/lib/node-esm/chunk-X34VDVMY.mjs.map +7 -0
  73. package/dist/lib/node-esm/{identity-created-MWTLGQRU.mjs → identity-created-OXLKCJE3.mjs} +3 -3
  74. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  75. package/dist/lib/node-esm/index.mjs +83 -110
  76. package/dist/lib/node-esm/index.mjs.map +3 -3
  77. package/dist/lib/node-esm/{intent-resolver-YOG27WOG.mjs → intent-resolver-4PHJWDXW.mjs} +90 -82
  78. package/dist/lib/node-esm/intent-resolver-4PHJWDXW.mjs.map +7 -0
  79. package/dist/lib/node-esm/meta.json +1 -1
  80. package/dist/lib/node-esm/{react-root-27QMJZD2.mjs → react-root-O5I5CDJ7.mjs} +9 -8
  81. package/dist/lib/node-esm/react-root-O5I5CDJ7.mjs.map +7 -0
  82. package/dist/lib/node-esm/{react-surface-RC73GAN5.mjs → react-surface-J3XDMU2D.mjs} +64 -84
  83. package/dist/lib/node-esm/react-surface-J3XDMU2D.mjs.map +7 -0
  84. package/dist/lib/node-esm/repair-EHZS6MFY.mjs +45 -0
  85. package/dist/lib/node-esm/repair-EHZS6MFY.mjs.map +7 -0
  86. package/dist/lib/node-esm/{settings-Q736OQRP.mjs → settings-MNQTKHL7.mjs} +3 -3
  87. package/dist/lib/node-esm/{spaces-ready-XZQD7Q65.mjs → spaces-ready-ZPU24DA2.mjs} +19 -12
  88. package/dist/lib/node-esm/spaces-ready-ZPU24DA2.mjs.map +7 -0
  89. package/dist/lib/node-esm/{state-BY75TM32.mjs → state-45TXZQJ6.mjs} +3 -3
  90. package/dist/lib/node-esm/types/index.mjs +10 -4
  91. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/capabilities.d.ts +12 -6
  94. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/index.d.ts +1 -1
  96. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/repair.d.ts +4 -0
  101. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  102. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  103. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  104. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  105. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  106. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  107. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  108. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  109. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +218 -214
  110. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  111. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +16 -9
  112. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  113. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  114. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  115. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  116. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  117. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  118. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1591 -0
  119. package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
  120. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  121. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  122. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  123. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  124. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  125. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  126. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  127. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  128. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  129. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  130. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  131. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  132. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  133. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  134. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  135. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1424 -0
  136. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  137. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +3 -3
  138. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  139. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  140. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  141. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  142. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  143. package/dist/types/src/components/{MembersContainer.stories.d.ts → RecordArticle.stories.d.ts} +219 -215
  144. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  145. package/dist/types/src/components/SchemaContainer.d.ts +2 -2
  146. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  147. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  148. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +6 -5
  149. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  150. package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +218 -214
  151. package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
  152. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  153. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  154. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  155. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  156. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  157. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  158. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  159. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +218 -214
  160. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  161. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  162. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +219 -215
  163. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  164. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  165. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  166. package/dist/types/src/components/index.d.ts +10 -17
  167. package/dist/types/src/components/index.d.ts.map +1 -1
  168. package/dist/types/src/helpers/index.d.ts +2 -0
  169. package/dist/types/src/helpers/index.d.ts.map +1 -0
  170. package/dist/types/src/helpers/query.d.ts +8 -0
  171. package/dist/types/src/helpers/query.d.ts.map +1 -0
  172. package/dist/types/src/helpers/query.test.d.ts +2 -0
  173. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  174. package/dist/types/src/hooks/index.d.ts +1 -0
  175. package/dist/types/src/hooks/index.d.ts.map +1 -1
  176. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  177. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  178. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  179. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  180. package/dist/types/src/index.d.ts +1 -0
  181. package/dist/types/src/index.d.ts.map +1 -1
  182. package/dist/types/src/meta.d.ts.map +1 -1
  183. package/dist/types/src/translations.d.ts +218 -214
  184. package/dist/types/src/translations.d.ts.map +1 -1
  185. package/dist/types/src/types/form.d.ts +24 -0
  186. package/dist/types/src/types/form.d.ts.map +1 -0
  187. package/dist/types/src/types/index.d.ts +1 -0
  188. package/dist/types/src/types/index.d.ts.map +1 -1
  189. package/dist/types/src/types/types.d.ts +33 -74
  190. package/dist/types/src/types/types.d.ts.map +1 -1
  191. package/dist/types/src/util.d.ts +19 -33
  192. package/dist/types/src/util.d.ts.map +1 -1
  193. package/dist/types/tsconfig.tsbuildinfo +1 -1
  194. package/package.json +57 -48
  195. package/src/SpacePlugin.ts +64 -89
  196. package/src/capabilities/app-graph-builder.ts +165 -233
  197. package/src/capabilities/app-graph-serializer.ts +5 -5
  198. package/src/capabilities/capabilities.ts +18 -8
  199. package/src/capabilities/identity-created.ts +2 -2
  200. package/src/capabilities/index.ts +1 -1
  201. package/src/capabilities/intent-resolver.ts +66 -66
  202. package/src/capabilities/react-root.tsx +2 -1
  203. package/src/capabilities/react-surface.tsx +69 -119
  204. package/src/capabilities/repair.ts +57 -0
  205. package/src/capabilities/spaces-ready.ts +14 -5
  206. package/src/components/AwaitingObject.tsx +11 -13
  207. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +5 -4
  208. package/src/components/CollectionSection.tsx +6 -4
  209. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +6 -6
  210. package/src/components/CreateDialog/CreateObjectDialog.tsx +57 -40
  211. package/src/components/CreateDialog/CreateObjectPanel.tsx +33 -26
  212. package/src/components/CreateDialog/CreateSpaceDialog.tsx +25 -7
  213. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +21 -5
  214. package/src/components/JoinDialog/index.ts +5 -0
  215. package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +1 -1
  216. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +11 -9
  217. package/src/components/MembersContainer/index.ts +5 -0
  218. package/src/components/{ObjectDetailsPanel.tsx → ObjectDetailsPanel/ObjectDetailsPanel.tsx} +8 -36
  219. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
  220. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  221. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +5 -5
  222. package/src/components/ObjectRenamePopover/index.ts +5 -0
  223. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -5
  224. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  225. package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
  226. package/src/components/ObjectSettings/ForeignKeys.tsx +6 -6
  227. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +1 -1
  228. package/src/components/ObjectSettings/index.ts +3 -1
  229. package/src/components/RecordArticle.stories.tsx +115 -0
  230. package/src/components/RecordArticle.tsx +114 -0
  231. package/src/components/SchemaContainer.tsx +21 -24
  232. package/src/components/SpacePluginSettings.tsx +8 -2
  233. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +1 -1
  234. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +14 -9
  235. package/src/components/SpacePresence/index.ts +5 -0
  236. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +6 -5
  237. package/src/components/SpaceRenamePopover/index.ts +5 -0
  238. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +52 -13
  239. package/src/components/SyncStatus/InlineSyncStatus.tsx +5 -5
  240. package/src/components/SyncStatus/SyncStatus.stories.tsx +3 -2
  241. package/src/components/SyncStatus/SyncStatus.tsx +105 -9
  242. package/src/components/ViewEditor.tsx +57 -18
  243. package/src/components/index.ts +7 -8
  244. package/src/helpers/index.ts +5 -0
  245. package/src/helpers/query.test.ts +24 -0
  246. package/src/helpers/query.ts +158 -0
  247. package/src/hooks/index.ts +1 -0
  248. package/src/hooks/useActiveSpace.ts +2 -1
  249. package/src/hooks/useInputSurfaceLookup.tsx +7 -2
  250. package/src/hooks/useTypeOptions.ts +27 -0
  251. package/src/index.ts +1 -0
  252. package/src/meta.ts +5 -0
  253. package/src/translations.ts +67 -58
  254. package/src/types/form.ts +75 -0
  255. package/src/types/index.ts +1 -0
  256. package/src/types/types.ts +39 -44
  257. package/src/util.tsx +187 -121
  258. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +0 -7
  259. package/dist/lib/browser/ObjectDetailsPanel-SJ4XUXXX.mjs +0 -90
  260. package/dist/lib/browser/ObjectDetailsPanel-SJ4XUXXX.mjs.map +0 -7
  261. package/dist/lib/browser/RecordMain-FHPCS6GM.mjs +0 -68
  262. package/dist/lib/browser/RecordMain-FHPCS6GM.mjs.map +0 -7
  263. package/dist/lib/browser/app-graph-builder-Y2LBZX2G.mjs.map +0 -7
  264. package/dist/lib/browser/app-graph-serializer-425OVRTW.mjs.map +0 -7
  265. package/dist/lib/browser/chunk-6KVKMOGQ.mjs.map +0 -7
  266. package/dist/lib/browser/chunk-CVZAZRW4.mjs.map +0 -7
  267. package/dist/lib/browser/chunk-IRKDREHY.mjs +0 -11
  268. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +0 -7
  269. package/dist/lib/browser/chunk-OYHC63NL.mjs +0 -344
  270. package/dist/lib/browser/chunk-OYHC63NL.mjs.map +0 -7
  271. package/dist/lib/browser/chunk-PUF3B7XO.mjs.map +0 -7
  272. package/dist/lib/browser/chunk-X6COEDOD.mjs.map +0 -7
  273. package/dist/lib/browser/chunk-YZJWWMNB.mjs.map +0 -7
  274. package/dist/lib/browser/identity-created-PW2BA46S.mjs.map +0 -7
  275. package/dist/lib/browser/intent-resolver-2TBYHOBA.mjs.map +0 -7
  276. package/dist/lib/browser/react-root-KMJXJ5VX.mjs.map +0 -7
  277. package/dist/lib/browser/react-surface-YAJUAMER.mjs.map +0 -7
  278. package/dist/lib/browser/schema-defs-2OCPV7JF.mjs +0 -26
  279. package/dist/lib/browser/schema-defs-2OCPV7JF.mjs.map +0 -7
  280. package/dist/lib/browser/spaces-ready-YNZPWXA3.mjs.map +0 -7
  281. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +0 -7
  282. package/dist/lib/node-esm/ObjectDetailsPanel-P7D727OV.mjs +0 -91
  283. package/dist/lib/node-esm/ObjectDetailsPanel-P7D727OV.mjs.map +0 -7
  284. package/dist/lib/node-esm/RecordMain-V73AEB6N.mjs +0 -70
  285. package/dist/lib/node-esm/RecordMain-V73AEB6N.mjs.map +0 -7
  286. package/dist/lib/node-esm/app-graph-builder-DMNLDT7E.mjs.map +0 -7
  287. package/dist/lib/node-esm/app-graph-serializer-ZEDSY77N.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-36TAYXV7.mjs.map +0 -7
  289. package/dist/lib/node-esm/chunk-7UIEPBQJ.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-ADEZJQE3.mjs +0 -345
  291. package/dist/lib/node-esm/chunk-ADEZJQE3.mjs.map +0 -7
  292. package/dist/lib/node-esm/chunk-FLRC6XWU.mjs.map +0 -7
  293. package/dist/lib/node-esm/chunk-L26ZIGHA.mjs.map +0 -7
  294. package/dist/lib/node-esm/chunk-MWNATOXL.mjs +0 -13
  295. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +0 -7
  296. package/dist/lib/node-esm/chunk-ZFCCFELA.mjs.map +0 -7
  297. package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs.map +0 -7
  298. package/dist/lib/node-esm/intent-resolver-YOG27WOG.mjs.map +0 -7
  299. package/dist/lib/node-esm/react-root-27QMJZD2.mjs.map +0 -7
  300. package/dist/lib/node-esm/react-surface-RC73GAN5.mjs.map +0 -7
  301. package/dist/lib/node-esm/schema-defs-X2Z7F2EV.mjs +0 -27
  302. package/dist/lib/node-esm/schema-defs-X2Z7F2EV.mjs.map +0 -7
  303. package/dist/lib/node-esm/spaces-ready-XZQD7Q65.mjs.map +0 -7
  304. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  305. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  306. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  307. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  308. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  309. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  310. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  311. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  312. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  313. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  314. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  315. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  316. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  317. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  318. package/dist/types/src/components/RecordMain.d.ts +0 -7
  319. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  320. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  321. package/src/capabilities/schema-defs.ts +0 -31
  322. package/src/components/PersistenceStatus.tsx +0 -83
  323. package/src/components/RecordMain.tsx +0 -43
  324. /package/dist/lib/browser/{chunk-EIXZABXD.mjs.map → chunk-WJXU4GKV.mjs.map} +0 -0
  325. /package/dist/lib/browser/{settings-UYYJ225A.mjs.map → settings-TRLI52I5.mjs.map} +0 -0
  326. /package/dist/lib/browser/{state-BPU73TYO.mjs.map → state-C7N6EDDZ.mjs.map} +0 -0
  327. /package/dist/lib/node-esm/{chunk-SVFKU7EW.mjs.map → chunk-H4JILUJK.mjs.map} +0 -0
  328. /package/dist/lib/node-esm/{settings-Q736OQRP.mjs.map → settings-MNQTKHL7.mjs.map} +0 -0
  329. /package/dist/lib/node-esm/{state-BY75TM32.mjs.map → state-45TXZQJ6.mjs.map} +0 -0
  330. /package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +0 -0
  331. /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
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';
@@ -56,7 +56,7 @@ export default (context: PluginContext) =>
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
 
@@ -6,11 +6,11 @@ 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
12
  import { meta } from '../meta';
13
- import { type ObjectForm, type PluginState } from '../types';
13
+ import { type PluginState } from '../types';
14
14
 
15
15
  export namespace SpaceCapabilities {
16
16
  export const State = defineCapability<DeepReadonly<PluginState>>(`${meta.id}/capability/state`);
@@ -19,12 +19,22 @@ export namespace SpaceCapabilities {
19
19
  export type SettingsSection = { id: string; label: Label; position?: Position };
20
20
  export const SettingsSection = defineCapability<SettingsSection>(`${meta.id}/capability/settings-section`);
21
21
 
22
- export type onCreateSpace = (params: { space: Space; rootCollection: DataType.Collection }) => AnyIntentChain;
23
- export const onCreateSpace = defineCapability<onCreateSpace>(`${meta.id}/capability/on-space-created`);
24
-
25
- export type OnSchemaAdded = (params: { space: Space; schema: Schema.Schema.AnyNoContext }) => AnyIntentChain;
22
+ export type OnCreateSpace = (params: {
23
+ space: Space;
24
+ isDefault: boolean;
25
+ rootCollection: Collection.Collection;
26
+ }) => AnyIntentChain;
27
+ export const OnCreateSpace = defineCapability<OnCreateSpace>(`${meta.id}/capability/on-space-created`);
28
+
29
+ export type OnSchemaAdded = (params: {
30
+ space: Space;
31
+ schema: Schema.Schema.AnyNoContext;
32
+ // TODO(wittjosiah): This is leaky.
33
+ show?: boolean;
34
+ }) => AnyIntentChain;
26
35
  export const OnSchemaAdded = defineCapability<OnSchemaAdded>(`${meta.id}/capability/on-schema-added`);
27
36
 
28
- // TODO(burdon): Should this be view? Forms are UI concepts? (associated with a View/schema).
29
- export const ObjectForm = defineCapability<ObjectForm<any>>(`${meta.id}/capability/object-form`);
37
+ // TODO(wittjosiah): Replace with migrations, this is not a sustainable solution.
38
+ export type HandleRepair = (params: { space: Space; isDefault: boolean }) => Promise<void>;
39
+ export const Repair = defineCapability<HandleRepair>(`${meta.id}/capability/repair`);
30
40
  }
@@ -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
  }
@@ -10,7 +10,7 @@ export const IdentityCreated = lazy(() => import('./identity-created'));
10
10
  export const IntentResolver = lazy(() => import('./intent-resolver'));
11
11
  export const ReactRoot = lazy(() => import('./react-root'));
12
12
  export const ReactSurface = lazy(() => import('./react-surface'));
13
- export const SchemaDefs = lazy(() => import('./schema-defs'));
13
+ export const Repair = lazy(() => import('./repair'));
14
14
  export const SpaceSettings = lazy(() => import('./settings'));
15
15
  export const SpaceState = lazy(() => import('./state'));
16
16
  export const SpacesReady = lazy(() => import('./spaces-ready'));
@@ -6,22 +6,27 @@ import * as Effect from 'effect/Effect';
6
6
 
7
7
  import {
8
8
  Capabilities,
9
+ type Label,
9
10
  LayoutAction,
10
11
  type PluginContext,
11
12
  contributes,
12
13
  createIntent,
13
14
  createResolver,
14
15
  } from '@dxos/app-framework';
15
- import { Filter, Obj, Query, Ref, Relation, Type } from '@dxos/echo';
16
+ import { Obj, Query, Ref, Relation, Type } from '@dxos/echo';
17
+ import { Serializer } from '@dxos/echo-db';
18
+ import { DatabaseService } from '@dxos/functions';
16
19
  import { invariant } from '@dxos/invariant';
17
20
  import { Migrations } from '@dxos/migrations';
18
21
  import { ClientCapabilities } from '@dxos/plugin-client';
19
22
  import { ObservabilityAction } from '@dxos/plugin-observability/types';
20
23
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
21
- import { SpaceState, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';
24
+ import { SpaceState, getSpace, isSpace } from '@dxos/react-client/echo';
22
25
  import { Invitation, InvitationEncoder } from '@dxos/react-client/invitations';
23
26
  import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
24
- import { DataType, ProjectionModel, getTypenameFromQuery } from '@dxos/schema';
27
+ import { iconValues } from '@dxos/react-ui-pickers';
28
+ import { hues } from '@dxos/react-ui-theme';
29
+ import { Collection, ProjectionModel, getTypenameFromQuery } from '@dxos/schema';
25
30
 
26
31
  import {
27
32
  CREATE_OBJECT_DIALOG,
@@ -29,8 +34,8 @@ import {
29
34
  type CreateObjectDialogProps,
30
35
  JOIN_DIALOG,
31
36
  type JoinDialogProps,
32
- POPOVER_RENAME_OBJECT,
33
- POPOVER_RENAME_SPACE,
37
+ OBJECT_RENAME_POPOVER,
38
+ SPACE_RENAME_POPOVER,
34
39
  } from '../components';
35
40
  import { SpaceEvents } from '../events';
36
41
  import { meta } from '../meta';
@@ -40,7 +45,7 @@ import { COMPOSER_SPACE_LOCK, cloneObject, getNestedObjects } from '../util';
40
45
  import { SpaceCapabilities } from './capabilities';
41
46
 
42
47
  // TODO(wittjosiah): Remove.
43
- const SPACE_MAX_OBJECTS = 500;
48
+ const SPACE_MAX_OBJECTS = 750;
44
49
 
45
50
  type IntentResolverOptions = {
46
51
  context: PluginContext;
@@ -69,8 +74,10 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
69
74
  }),
70
75
  createResolver({
71
76
  intent: SpaceAction.Create,
72
- resolve: async ({ name, hue, icon, edgeReplication }) => {
77
+ resolve: async ({ name, hue: hue_, icon: icon_, edgeReplication }) => {
73
78
  const client = context.getCapability(ClientCapabilities.Client);
79
+ const hue = hue_ ?? hues[Math.floor(Math.random() * hues.length)];
80
+ const icon = icon_ ?? iconValues[Math.floor(Math.random() * iconValues.length)];
74
81
  const space = await client.spaces.create({ name, hue, icon });
75
82
  if (edgeReplication) {
76
83
  await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);
@@ -78,8 +85,8 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
78
85
  await space.waitUntilReady();
79
86
 
80
87
  // Create root collection.
81
- const collection = Obj.make(DataType.Collection, { objects: [] });
82
- space.properties[DataType.Collection.typename] = Ref.make(collection);
88
+ const collection = Obj.make(Collection.Collection, { objects: [] });
89
+ space.properties[Collection.Collection.typename] = Ref.make(collection);
83
90
 
84
91
  // Set current migration version.
85
92
  if (Migrations.versionProperty) {
@@ -87,16 +94,13 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
87
94
  }
88
95
 
89
96
  // 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));
97
+ collection.objects.push(Ref.make(Collection.makeManaged({ key: Type.getTypename(Type.PersistentType) })));
94
98
 
95
99
  // Allow other plugins to add default content.
96
100
  await context.activatePromise(SpaceEvents.SpaceCreated);
97
- const onCreateSpaceCallbacks = context.getCapabilities(SpaceCapabilities.onCreateSpace);
101
+ const onCreateSpaceCallbacks = context.getCapabilities(SpaceCapabilities.OnCreateSpace);
98
102
  const spaceCreatedIntents = onCreateSpaceCallbacks.map((onCreateSpace) =>
99
- onCreateSpace({ space, rootCollection: collection }),
103
+ onCreateSpace({ space, isDefault: false, rootCollection: collection }),
100
104
  );
101
105
 
102
106
  return {
@@ -254,7 +258,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
254
258
  intents: [
255
259
  createIntent(LayoutAction.UpdatePopover, {
256
260
  part: 'popover',
257
- subject: POPOVER_RENAME_SPACE,
261
+ subject: SPACE_RENAME_POPOVER,
258
262
  options: {
259
263
  anchorId: `dxos.org/ui/${caller}/${space.id}`,
260
264
  props: space,
@@ -321,9 +325,20 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
321
325
  };
322
326
  },
323
327
  }),
328
+ createResolver({
329
+ intent: SpaceAction.Snapshot,
330
+ resolve: async ({ space, query }) => {
331
+ const backup = await new Serializer().export(space.db, query && Query.fromAst(query));
332
+ return {
333
+ data: {
334
+ snapshot: new Blob([JSON.stringify(backup, null, 2)], { type: 'application/json' }),
335
+ },
336
+ };
337
+ },
338
+ }),
324
339
  createResolver({
325
340
  intent: SpaceAction.UseStaticSchema,
326
- resolve: async ({ space, typename }) => {
341
+ resolve: async ({ space, typename, show }) => {
327
342
  const client = context.getCapability(ClientCapabilities.Client);
328
343
  const schema = client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename);
329
344
  invariant(schema, `Schema not found: ${typename}`);
@@ -338,7 +353,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
338
353
 
339
354
  await context.activatePromise(SpaceEvents.SchemaAdded);
340
355
  const onSchemaAdded = context.getCapabilities(SpaceCapabilities.OnSchemaAdded);
341
- const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema }));
356
+ const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema, show }));
342
357
 
343
358
  return {
344
359
  data: {},
@@ -361,7 +376,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
361
376
  }),
362
377
  createResolver({
363
378
  intent: SpaceAction.AddSchema,
364
- resolve: async ({ space, name, typename, version, schema: schemaInput }) => {
379
+ resolve: async ({ space, name, typename, version, schema: schemaInput, show }) => {
365
380
  const [schema] = await space.db.schemaRegistry.register([schemaInput]);
366
381
  if (name) {
367
382
  schema.storedSchema.name = name;
@@ -375,7 +390,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
375
390
 
376
391
  await context.activatePromise(SpaceEvents.SchemaAdded);
377
392
  const onSchemaAdded = context.getCapabilities(SpaceCapabilities.OnSchemaAdded);
378
- const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema }));
393
+ const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema, show }));
379
394
 
380
395
  return {
381
396
  data: {
@@ -445,9 +460,9 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
445
460
  onCreateObject,
446
461
  shouldNavigate: navigable
447
462
  ? (object: Obj.Any) => {
448
- const isCollection = Obj.instanceOf(DataType.Collection, object);
449
- const isQueryCollection = Obj.instanceOf(DataType.QueryCollection, object);
450
- return (!isCollection && !isQueryCollection) || state.navigableCollections;
463
+ const isCollection = Obj.instanceOf(Collection.Collection, object);
464
+ const isSystemCollection = Obj.instanceOf(Collection.Managed, object);
465
+ return (!isCollection && !isSystemCollection) || state.navigableCollections;
451
466
  }
452
467
  : () => false,
453
468
  } satisfies Partial<CreateObjectDialogProps>,
@@ -495,25 +510,18 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
495
510
  };
496
511
  }
497
512
 
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
- }
513
+ await Effect.gen(function* () {
514
+ yield* Collection.add({
515
+ object,
516
+ target: isSpace(target) ? undefined : target,
517
+ hidden,
518
+ });
519
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.runPromise);
512
520
 
513
521
  return {
514
522
  data: {
515
- id: fullyQualifiedId(object),
516
- subject: [fullyQualifiedId(object)],
523
+ id: Obj.getDXN(object).toString(),
524
+ subject: [Obj.getDXN(object).toString()],
517
525
  object,
518
526
  },
519
527
  intents: [
@@ -562,26 +570,26 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
562
570
  const openObjectIds = new Set<string>(layout.active);
563
571
 
564
572
  if (!undo) {
565
- const parentCollection: DataType.Collection =
566
- target ?? space.properties[DataType.Collection.typename]?.target;
573
+ const parentCollection: Collection.Collection =
574
+ target ?? space.properties[Collection.Collection.typename]?.target;
567
575
  const nestedObjectsList = await Promise.all(objects.map((obj) => getNestedObjects(obj, resolve)));
568
576
 
569
577
  const deletionData = {
570
578
  objects,
571
579
  parentCollection,
572
580
  indices: objects.map((obj) =>
573
- Obj.instanceOf(DataType.Collection, parentCollection)
581
+ Obj.instanceOf(Collection.Collection, parentCollection)
574
582
  ? parentCollection.objects.findIndex((object) => object.target === obj)
575
583
  : -1,
576
584
  ),
577
585
  nestedObjectsList,
578
586
  wasActive: objects
579
587
  .flatMap((obj, i) => [obj, ...nestedObjectsList[i]])
580
- .map((obj) => fullyQualifiedId(obj))
588
+ .map((obj) => Obj.getDXN(obj).toString())
581
589
  .filter((id) => openObjectIds.has(id)),
582
590
  } satisfies SpaceAction.DeletionData;
583
591
 
584
- if (Obj.instanceOf(DataType.Collection, deletionData.parentCollection)) {
592
+ if (Obj.instanceOf(Collection.Collection, deletionData.parentCollection)) {
585
593
  [...deletionData.indices]
586
594
  .sort((a, b) => b - a)
587
595
  .forEach((index: number) => {
@@ -596,16 +604,17 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
596
604
  });
597
605
  objects.forEach((obj) => space.db.remove(obj));
598
606
 
599
- const undoMessageKey = objects.some((obj) => Obj.instanceOf(DataType.Collection, obj))
600
- ? 'collection deleted label'
601
- : objects.length > 1
602
- ? 'objects deleted label'
603
- : 'object deleted label';
607
+ // TODO(wittjosiah): Once we can compose translations outside of react, use count instead.
608
+ // ['deleted label', { ns: meta.id, typename: ['typename label', { ns: typename, count: objects.length }] }]
609
+ const undoMessageLabel: Label =
610
+ objects.length === 1
611
+ ? ['object deleted label', { ns: Obj.getTypename(objects[0]) ?? meta.id, defaultValue: 'Object deleted' }]
612
+ : ['objects deleted label', { ns: meta.id }];
604
613
 
605
614
  return {
606
615
  undoable: {
607
616
  // TODO(ZaymonFC): Pluralize if more than one object.
608
- message: [undoMessageKey, { ns: meta.id }],
617
+ message: undoMessageLabel,
609
618
  data: { deletionData },
610
619
  },
611
620
  intents:
@@ -623,19 +632,19 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
623
632
  if (
624
633
  deletionData?.objects?.length &&
625
634
  deletionData.objects.every(Obj.isObject) &&
626
- Obj.instanceOf(DataType.Collection, deletionData.parentCollection)
635
+ Obj.instanceOf(Collection.Collection, deletionData.parentCollection)
627
636
  ) {
628
637
  // Restore the object to the space.
629
- const restoredObjects = deletionData.objects.map((obj: Type.Expando) => space.db.add(obj));
638
+ const restoredObjects = deletionData.objects.map((obj: Obj.Any) => space.db.add(obj));
630
639
 
631
640
  // Restore nested objects to the space.
632
- deletionData.nestedObjectsList.flat().forEach((obj: Type.Expando) => {
641
+ deletionData.nestedObjectsList.flat().forEach((obj: Obj.Any) => {
633
642
  space.db.add(obj);
634
643
  });
635
644
 
636
645
  deletionData.indices.forEach((index: number, i: number) => {
637
646
  if (index !== -1) {
638
- deletionData.parentCollection.objects.splice(index, 0, Ref.make(restoredObjects[i] as Type.Expando));
647
+ deletionData.parentCollection.objects.splice(index, 0, Ref.make(restoredObjects[i] as Obj.Any));
639
648
  }
640
649
  });
641
650
 
@@ -660,9 +669,9 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
660
669
  intents: [
661
670
  createIntent(LayoutAction.UpdatePopover, {
662
671
  part: 'popover',
663
- subject: POPOVER_RENAME_OBJECT,
672
+ subject: OBJECT_RENAME_POPOVER,
664
673
  options: {
665
- anchorId: `dxos.org/ui/${caller}/${fullyQualifiedId(object)}`,
674
+ anchorId: `dxos.org/ui/${caller}/${Obj.getDXN(object).toString()}`,
666
675
  props: object,
667
676
  },
668
677
  }),
@@ -674,7 +683,6 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
674
683
  resolve: async ({ object, target }) => {
675
684
  const space = isSpace(target) ? target : getSpace(target);
676
685
  invariant(space, 'Space not found.');
677
-
678
686
  const newObject = await cloneObject(object, resolve, space);
679
687
  return {
680
688
  intents: [createIntent(SpaceAction.AddObject, { object: newObject, target })],
@@ -691,15 +699,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
691
699
  createResolver({
692
700
  intent: CollectionAction.Create,
693
701
  resolve: async ({ name }) => ({
694
- data: { object: Obj.make(DataType.Collection, { name, objects: [] }) },
695
- }),
696
- }),
697
- createResolver({
698
- intent: CollectionAction.CreateQueryCollection,
699
- resolve: async ({ name, typename }) => ({
700
- data: {
701
- object: Obj.make(DataType.QueryCollection, { name, query: Query.select(Filter.typename(typename)).ast }),
702
- },
702
+ data: { object: Obj.make(Collection.Collection, { name, objects: [] }) },
703
703
  }),
704
704
  }),
705
705
  ]);
@@ -4,7 +4,8 @@
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
11
  import { meta } from '../meta';