@dxos/plugin-space 0.8.4-main.5ea62a8 → 0.8.4-main.72ec0f3

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 (338) 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-FLF7XMQO.mjs → app-graph-builder-VQAB3GCQ.mjs} +109 -97
  10. package/dist/lib/browser/app-graph-builder-VQAB3GCQ.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-3A6KBYWT.mjs → app-graph-serializer-KSLKMEPP.mjs} +19 -19
  12. package/dist/lib/browser/app-graph-serializer-KSLKMEPP.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-DCY3W36E.mjs → chunk-ERQMHU7L.mjs} +71 -61
  14. package/dist/lib/browser/chunk-ERQMHU7L.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-J6YZG77T.mjs → chunk-J2BUK5E6.mjs} +554 -481
  16. package/dist/lib/browser/chunk-J2BUK5E6.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-RQVV4XVF.mjs → chunk-M2Z6D4ZI.mjs} +27 -21
  20. package/dist/lib/browser/chunk-M2Z6D4ZI.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-WAXS2ZVX.mjs → chunk-OLBBSOVI.mjs} +26 -13
  22. package/dist/lib/browser/chunk-OLBBSOVI.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-PU5IOFMG.mjs +167 -0
  24. package/dist/lib/browser/chunk-PU5IOFMG.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-WJXU4GKV.mjs +19 -0
  28. package/dist/lib/browser/chunk-WJXU4GKV.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 +89 -85
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-7E3IZIJS.mjs → intent-resolver-Q2XWHAVA.mjs} +78 -84
  34. package/dist/lib/browser/intent-resolver-Q2XWHAVA.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/react-root-MM4HADPE.mjs +30 -0
  37. package/dist/lib/browser/react-root-MM4HADPE.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-GL4CE2F4.mjs → react-surface-SGZC3Y4U.mjs} +71 -105
  39. package/dist/lib/browser/react-surface-SGZC3Y4U.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-B6MMHLPS.mjs → settings-WKLGKUHQ.mjs} +5 -5
  43. package/dist/lib/browser/{settings-B6MMHLPS.mjs.map → settings-WKLGKUHQ.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-QVABOCO3.mjs → spaces-ready-C5QC2UFL.mjs} +15 -14
  45. package/dist/lib/browser/spaces-ready-C5QC2UFL.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-D5YPOJS5.mjs → app-graph-builder-24JCLJPX.mjs} +109 -97
  58. package/dist/lib/node-esm/app-graph-builder-24JCLJPX.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-M45TH5LR.mjs → app-graph-serializer-R723K764.mjs} +19 -19
  60. package/dist/lib/node-esm/app-graph-serializer-R723K764.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-WKQTO37U.mjs → chunk-2PN7QNGV.mjs} +27 -21
  62. package/dist/lib/node-esm/chunk-2PN7QNGV.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  64. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-H4JILUJK.mjs +20 -0
  66. package/dist/lib/node-esm/chunk-H4JILUJK.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-ZCEH2VYE.mjs → chunk-ITQFSFQ3.mjs} +554 -481
  68. package/dist/lib/node-esm/chunk-ITQFSFQ3.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-TJPQDQNI.mjs +168 -0
  70. package/dist/lib/node-esm/chunk-TJPQDQNI.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-AUQ3SKL2.mjs → chunk-VH2EBZEV.mjs} +71 -61
  72. package/dist/lib/node-esm/chunk-VH2EBZEV.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-HYIZVPOA.mjs → chunk-WC4VBFMA.mjs} +26 -13
  74. package/dist/lib/node-esm/chunk-WC4VBFMA.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 +89 -85
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-UVO4MKWX.mjs → intent-resolver-YK4ESSET.mjs} +78 -84
  82. package/dist/lib/node-esm/intent-resolver-YK4ESSET.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/{react-root-5EKYI66P.mjs → react-root-5ANDLQMX.mjs} +13 -12
  85. package/dist/lib/node-esm/react-root-5ANDLQMX.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-IOC6YSVQ.mjs → react-surface-V7J2QB44.mjs} +71 -105
  87. package/dist/lib/node-esm/react-surface-V7J2QB44.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-IOFU6EAS.mjs → settings-RBB5633M.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-IOFU6EAS.mjs.map → settings-RBB5633M.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-MS6GHPFR.mjs → spaces-ready-SJCXV6YH.mjs} +15 -14
  93. package/dist/lib/node-esm/spaces-ready-SJCXV6YH.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 +110 -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 +1697 -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 +1530 -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/ObjectSettingsContainer.d.ts.map +1 -1
  145. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  146. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  147. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  148. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  149. package/dist/types/src/components/{MembersContainer.stories.d.ts → RecordArticle.stories.d.ts} +111 -2
  150. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  151. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  152. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  153. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  154. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
  155. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  156. package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +112 -3
  157. package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
  158. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  159. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  160. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  161. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  162. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  163. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  164. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  165. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +110 -1
  166. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  167. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  168. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +111 -2
  169. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  170. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  171. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  172. package/dist/types/src/components/index.d.ts +10 -17
  173. package/dist/types/src/components/index.d.ts.map +1 -1
  174. package/dist/types/src/events.d.ts.map +1 -1
  175. package/dist/types/src/helpers/index.d.ts +2 -0
  176. package/dist/types/src/helpers/index.d.ts.map +1 -0
  177. package/dist/types/src/helpers/query.d.ts +8 -0
  178. package/dist/types/src/helpers/query.d.ts.map +1 -0
  179. package/dist/types/src/helpers/query.test.d.ts +2 -0
  180. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  181. package/dist/types/src/hooks/index.d.ts +1 -0
  182. package/dist/types/src/hooks/index.d.ts.map +1 -1
  183. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  184. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  185. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  186. package/dist/types/src/hooks/usePath.d.ts +1 -1
  187. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  188. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  189. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  190. package/dist/types/src/index.d.ts +1 -0
  191. package/dist/types/src/index.d.ts.map +1 -1
  192. package/dist/types/src/meta.d.ts +0 -1
  193. package/dist/types/src/meta.d.ts.map +1 -1
  194. package/dist/types/src/translations.d.ts +1322 -22
  195. package/dist/types/src/translations.d.ts.map +1 -1
  196. package/dist/types/src/types/types.d.ts +59 -76
  197. package/dist/types/src/types/types.d.ts.map +1 -1
  198. package/dist/types/src/util.d.ts +10 -7
  199. package/dist/types/src/util.d.ts.map +1 -1
  200. package/dist/types/tsconfig.tsbuildinfo +1 -1
  201. package/package.json +64 -59
  202. package/src/SpacePlugin.ts +228 -212
  203. package/src/capabilities/app-graph-builder.ts +158 -123
  204. package/src/capabilities/app-graph-serializer.ts +12 -12
  205. package/src/capabilities/capabilities.ts +16 -11
  206. package/src/capabilities/identity-created.ts +2 -2
  207. package/src/capabilities/intent-resolver.ts +68 -61
  208. package/src/capabilities/react-root.tsx +4 -3
  209. package/src/capabilities/react-surface.tsx +65 -141
  210. package/src/capabilities/schema-defs.ts +1 -1
  211. package/src/capabilities/spaces-ready.ts +8 -5
  212. package/src/capabilities/state.ts +2 -2
  213. package/src/components/AwaitingObject.tsx +12 -14
  214. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
  215. package/src/components/CollectionSection.tsx +8 -6
  216. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -11
  217. package/src/components/CreateDialog/CreateObjectDialog.tsx +38 -28
  218. package/src/components/CreateDialog/CreateObjectPanel.tsx +8 -8
  219. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
  220. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  221. package/src/components/JoinDialog/index.ts +5 -0
  222. package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +7 -6
  223. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +16 -14
  224. package/src/components/MembersContainer/index.ts +5 -0
  225. package/src/components/MenuFooter.tsx +2 -2
  226. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
  227. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
  228. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  229. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +6 -6
  230. package/src/components/ObjectRenamePopover/index.ts +5 -0
  231. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -3
  232. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  233. package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
  234. package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
  235. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +4 -3
  236. package/src/components/ObjectSettings/index.ts +3 -1
  237. package/src/components/RecordArticle.stories.tsx +115 -0
  238. package/src/components/RecordArticle.tsx +114 -0
  239. package/src/components/SchemaContainer.tsx +23 -26
  240. package/src/components/SpacePluginSettings.tsx +10 -4
  241. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +23 -25
  242. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +16 -11
  243. package/src/components/SpacePresence/index.ts +5 -0
  244. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  245. package/src/components/SpaceRenamePopover/index.ts +5 -0
  246. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +9 -4
  247. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +44 -23
  248. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  249. package/src/components/SyncStatus/SyncStatus.stories.tsx +4 -5
  250. package/src/components/SyncStatus/SyncStatus.tsx +107 -11
  251. package/src/components/ViewEditor.tsx +51 -23
  252. package/src/components/index.ts +7 -8
  253. package/src/events.ts +6 -6
  254. package/src/helpers/index.ts +5 -0
  255. package/src/helpers/query.test.ts +24 -0
  256. package/src/helpers/query.ts +158 -0
  257. package/src/hooks/index.ts +1 -0
  258. package/src/hooks/useActiveSpace.ts +2 -1
  259. package/src/hooks/useInputSurfaceLookup.tsx +8 -3
  260. package/src/hooks/usePath.ts +1 -1
  261. package/src/hooks/useTypeOptions.ts +59 -0
  262. package/src/index.ts +1 -0
  263. package/src/meta.ts +6 -3
  264. package/src/translations.ts +25 -10
  265. package/src/types/types.ts +26 -22
  266. package/src/util.tsx +79 -64
  267. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  268. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs +0 -88
  269. package/dist/lib/browser/ObjectDetailsPanel-SY6FYTYC.mjs.map +0 -7
  270. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
  271. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
  272. package/dist/lib/browser/app-graph-builder-FLF7XMQO.mjs.map +0 -7
  273. package/dist/lib/browser/app-graph-serializer-3A6KBYWT.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-DCY3W36E.mjs.map +0 -7
  277. package/dist/lib/browser/chunk-ELJDGQTO.mjs +0 -94
  278. package/dist/lib/browser/chunk-ELJDGQTO.mjs.map +0 -7
  279. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  280. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  281. package/dist/lib/browser/chunk-J6YZG77T.mjs.map +0 -7
  282. package/dist/lib/browser/chunk-RQVV4XVF.mjs.map +0 -7
  283. package/dist/lib/browser/chunk-TUQZO5P4.mjs +0 -20
  284. package/dist/lib/browser/chunk-TUQZO5P4.mjs.map +0 -7
  285. package/dist/lib/browser/chunk-WAXS2ZVX.mjs.map +0 -7
  286. package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +0 -7
  287. package/dist/lib/browser/intent-resolver-7E3IZIJS.mjs.map +0 -7
  288. package/dist/lib/browser/react-root-RWMT2RCK.mjs +0 -29
  289. package/dist/lib/browser/react-root-RWMT2RCK.mjs.map +0 -7
  290. package/dist/lib/browser/react-surface-GL4CE2F4.mjs.map +0 -7
  291. package/dist/lib/browser/schema-defs-YDPFZELA.mjs.map +0 -7
  292. package/dist/lib/browser/spaces-ready-QVABOCO3.mjs.map +0 -7
  293. package/dist/lib/browser/state-2RGW7FQG.mjs.map +0 -7
  294. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  295. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs +0 -89
  296. package/dist/lib/node-esm/ObjectDetailsPanel-3MYLTMXN.mjs.map +0 -7
  297. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
  298. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
  299. package/dist/lib/node-esm/app-graph-builder-D5YPOJS5.mjs.map +0 -7
  300. package/dist/lib/node-esm/app-graph-serializer-M45TH5LR.mjs.map +0 -7
  301. package/dist/lib/node-esm/chunk-AUQ3SKL2.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs +0 -20
  303. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs.map +0 -7
  304. package/dist/lib/node-esm/chunk-HC677WUJ.mjs +0 -21
  305. package/dist/lib/node-esm/chunk-HC677WUJ.mjs.map +0 -7
  306. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  307. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-HYIZVPOA.mjs.map +0 -7
  309. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs +0 -96
  310. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs.map +0 -7
  311. package/dist/lib/node-esm/chunk-WKQTO37U.mjs.map +0 -7
  312. package/dist/lib/node-esm/chunk-ZCEH2VYE.mjs.map +0 -7
  313. package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +0 -7
  314. package/dist/lib/node-esm/intent-resolver-UVO4MKWX.mjs.map +0 -7
  315. package/dist/lib/node-esm/react-root-5EKYI66P.mjs.map +0 -7
  316. package/dist/lib/node-esm/react-surface-IOC6YSVQ.mjs.map +0 -7
  317. package/dist/lib/node-esm/schema-defs-OYBCWKAS.mjs.map +0 -7
  318. package/dist/lib/node-esm/spaces-ready-MS6GHPFR.mjs.map +0 -7
  319. package/dist/lib/node-esm/state-7VBVBGNS.mjs.map +0 -7
  320. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  321. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  322. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  323. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  324. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  325. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  326. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  327. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  328. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  329. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  330. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  331. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  332. package/dist/types/src/components/RecordMain.d.ts +0 -7
  333. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  334. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  335. package/src/components/ObjectDetailsPanel.tsx +0 -77
  336. package/src/components/PersistenceStatus.tsx +0 -83
  337. package/src/components/RecordMain.tsx +0 -43
  338. /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,
@@ -12,16 +12,19 @@ import {
12
12
  createIntent,
13
13
  createResolver,
14
14
  } from '@dxos/app-framework';
15
- import { Obj, Ref, Relation, Type } from '@dxos/echo';
15
+ import { Filter, Obj, Query, Ref, Relation, Type } from '@dxos/echo';
16
+ import { DatabaseService } from '@dxos/functions';
16
17
  import { invariant } from '@dxos/invariant';
17
18
  import { Migrations } from '@dxos/migrations';
18
19
  import { ClientCapabilities } from '@dxos/plugin-client';
19
20
  import { ObservabilityAction } from '@dxos/plugin-observability/types';
20
21
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
21
- import { SpaceState, fullyQualifiedId, getSpace, isSpace } from '@dxos/react-client/echo';
22
+ import { SpaceState, getSpace, isSpace } from '@dxos/react-client/echo';
22
23
  import { Invitation, InvitationEncoder } from '@dxos/react-client/invitations';
23
24
  import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
24
- import { DataType, ProjectionModel } from '@dxos/schema';
25
+ import { iconValues } from '@dxos/react-ui-pickers';
26
+ import { hues } from '@dxos/react-ui-theme';
27
+ import { Collection, ProjectionModel, StoredSchema, getTypenameFromQuery } from '@dxos/schema';
25
28
 
26
29
  import {
27
30
  CREATE_OBJECT_DIALOG,
@@ -29,11 +32,11 @@ import {
29
32
  type CreateObjectDialogProps,
30
33
  JOIN_DIALOG,
31
34
  type JoinDialogProps,
32
- POPOVER_RENAME_OBJECT,
33
- POPOVER_RENAME_SPACE,
35
+ OBJECT_RENAME_POPOVER,
36
+ SPACE_RENAME_POPOVER,
34
37
  } from '../components';
35
38
  import { SpaceEvents } from '../events';
36
- import { SPACE_PLUGIN } from '../meta';
39
+ import { meta } from '../meta';
37
40
  import { CollectionAction, SpaceAction } from '../types';
38
41
  import { COMPOSER_SPACE_LOCK, cloneObject, getNestedObjects } from '../util';
39
42
 
@@ -69,8 +72,10 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
69
72
  }),
70
73
  createResolver({
71
74
  intent: SpaceAction.Create,
72
- resolve: async ({ name, hue, icon, edgeReplication }) => {
75
+ resolve: async ({ name, hue: hue_, icon: icon_, edgeReplication }) => {
73
76
  const client = context.getCapability(ClientCapabilities.Client);
77
+ const hue = hue_ ?? hues[Math.floor(Math.random() * hues.length)];
78
+ const icon = icon_ ?? iconValues[Math.floor(Math.random() * iconValues.length)];
74
79
  const space = await client.spaces.create({ name, hue, icon });
75
80
  if (edgeReplication) {
76
81
  await space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED);
@@ -78,8 +83,8 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
78
83
  await space.waitUntilReady();
79
84
 
80
85
  // Create root collection.
81
- const collection = Obj.make(DataType.Collection, { objects: [] });
82
- space.properties[DataType.Collection.typename] = Ref.make(collection);
86
+ const collection = Obj.make(Collection.Collection, { objects: [] });
87
+ space.properties[Collection.Collection.typename] = Ref.make(collection);
83
88
 
84
89
  // Set current migration version.
85
90
  if (Migrations.versionProperty) {
@@ -87,16 +92,20 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
87
92
  }
88
93
 
89
94
  // Create records smart collection.
90
- const records = Obj.make(DataType.QueryCollection, {
91
- query: { typename: DataType.StoredSchema.typename },
92
- });
93
- collection.objects.push(Ref.make(records));
95
+ collection.objects.push(
96
+ Ref.make(
97
+ Obj.make(Collection.QueryCollection, {
98
+ // NOTE: This is specifically Filter.typename due to current limitations in query collection parsing.
99
+ query: Query.select(Filter.typename(StoredSchema.typename)).ast,
100
+ }),
101
+ ),
102
+ );
94
103
 
95
104
  // Allow other plugins to add default content.
96
105
  await context.activatePromise(SpaceEvents.SpaceCreated);
97
- const onSpaceCreatedCallbacks = context.getCapabilities(SpaceCapabilities.OnSpaceCreated);
98
- const spaceCreatedIntents = onSpaceCreatedCallbacks.map((onSpaceCreated) =>
99
- onSpaceCreated({ space, rootCollection: collection }),
106
+ const onCreateSpaceCallbacks = context.getCapabilities(SpaceCapabilities.onCreateSpace);
107
+ const spaceCreatedIntents = onCreateSpaceCallbacks.map((onCreateSpace) =>
108
+ onCreateSpace({ space, rootCollection: collection }),
100
109
  );
101
110
 
102
111
  return {
@@ -254,7 +263,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
254
263
  intents: [
255
264
  createIntent(LayoutAction.UpdatePopover, {
256
265
  part: 'popover',
257
- subject: POPOVER_RENAME_SPACE,
266
+ subject: SPACE_RENAME_POPOVER,
258
267
  options: {
259
268
  anchorId: `dxos.org/ui/${caller}/${space.id}`,
260
269
  props: space,
@@ -323,7 +332,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
323
332
  }),
324
333
  createResolver({
325
334
  intent: SpaceAction.UseStaticSchema,
326
- resolve: async ({ space, typename }) => {
335
+ resolve: async ({ space, typename, show }) => {
327
336
  const client = context.getCapability(ClientCapabilities.Client);
328
337
  const schema = client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename);
329
338
  invariant(schema, `Schema not found: ${typename}`);
@@ -338,7 +347,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
338
347
 
339
348
  await context.activatePromise(SpaceEvents.SchemaAdded);
340
349
  const onSchemaAdded = context.getCapabilities(SpaceCapabilities.OnSchemaAdded);
341
- const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema }));
350
+ const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema, show }));
342
351
 
343
352
  return {
344
353
  data: {},
@@ -361,7 +370,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
361
370
  }),
362
371
  createResolver({
363
372
  intent: SpaceAction.AddSchema,
364
- resolve: async ({ space, name, typename, version, schema: schemaInput }) => {
373
+ resolve: async ({ space, name, typename, version, schema: schemaInput, show }) => {
365
374
  const [schema] = await space.db.schemaRegistry.register([schemaInput]);
366
375
  if (name) {
367
376
  schema.storedSchema.name = name;
@@ -375,7 +384,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
375
384
 
376
385
  await context.activatePromise(SpaceEvents.SchemaAdded);
377
386
  const onSchemaAdded = context.getCapabilities(SpaceCapabilities.OnSchemaAdded);
378
- const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema }));
387
+ const schemaAddedIntents = onSchemaAdded.map((onSchemaAdded) => onSchemaAdded({ space, schema, show }));
379
388
 
380
389
  return {
381
390
  data: {
@@ -406,15 +415,16 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
406
415
  resolve: async ({ view, fieldId, deletionData }, undo) => {
407
416
  const space = getSpace(view);
408
417
  invariant(space);
409
- invariant(view.query.typename);
410
- const schema = await space.db.schemaRegistry.query({ typename: view.query.typename }).firstOrUndefined();
418
+ const typename = getTypenameFromQuery(view.query.ast);
419
+ invariant(typename);
420
+ const schema = await space.db.schemaRegistry.query({ typename }).firstOrUndefined();
411
421
  invariant(schema);
412
422
  const projection = new ProjectionModel(schema.jsonSchema, view.projection);
413
423
  if (!undo) {
414
424
  const { deleted, index } = projection.deleteFieldProjection(fieldId);
415
425
  return {
416
426
  undoable: {
417
- message: ['field deleted label', { ns: SPACE_PLUGIN }],
427
+ message: ['field deleted label', { ns: meta.id }],
418
428
  data: { deletionData: { ...deleted, index } },
419
429
  },
420
430
  };
@@ -444,8 +454,8 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
444
454
  onCreateObject,
445
455
  shouldNavigate: navigable
446
456
  ? (object: Obj.Any) => {
447
- const isCollection = Obj.instanceOf(DataType.Collection, object);
448
- const isQueryCollection = Obj.instanceOf(DataType.QueryCollection, object);
457
+ const isCollection = Obj.instanceOf(Collection.Collection, object);
458
+ const isQueryCollection = Obj.instanceOf(Collection.QueryCollection, object);
449
459
  return (!isCollection && !isQueryCollection) || state.navigableCollections;
450
460
  }
451
461
  : () => false,
@@ -469,13 +479,13 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
469
479
  createIntent(LayoutAction.AddToast, {
470
480
  part: 'toast',
471
481
  subject: {
472
- id: `${SPACE_PLUGIN}/space-limit`,
473
- title: ['space limit label', { ns: SPACE_PLUGIN }],
474
- description: ['space limit description', { ns: SPACE_PLUGIN }],
482
+ id: `${meta.id}/space-limit`,
483
+ title: ['space limit label', { ns: meta.id }],
484
+ description: ['space limit description', { ns: meta.id }],
475
485
  duration: 5_000,
476
486
  icon: 'ph--warning--regular',
477
- actionLabel: ['remove deleted objects label', { ns: SPACE_PLUGIN }],
478
- actionAlt: ['remove deleted objects alt', { ns: SPACE_PLUGIN }],
487
+ actionLabel: ['remove deleted objects label', { ns: meta.id }],
488
+ actionAlt: ['remove deleted objects alt', { ns: meta.id }],
479
489
  closeLabel: ['close label', { ns: 'os' }],
480
490
  onAction: () => space.db.coreDatabase.unlinkDeletedObjects(),
481
491
  },
@@ -494,25 +504,18 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
494
504
  };
495
505
  }
496
506
 
497
- if (Obj.instanceOf(DataType.Collection, target)) {
498
- target.objects.push(Ref.make(object));
499
- } else if (isSpace(target) && hidden) {
500
- space.db.add(object);
501
- } else if (isSpace(target)) {
502
- const collection = space.properties[DataType.Collection.typename]?.target;
503
- if (Obj.instanceOf(DataType.Collection, collection)) {
504
- collection.objects.push(Ref.make(object));
505
- } else {
506
- // TODO(wittjosiah): Can't add non-echo objects by including in a collection because of types.
507
- const collection = Obj.make(DataType.Collection, { objects: [Ref.make(object)] });
508
- space.properties[DataType.Collection.typename] = Ref.make(collection);
509
- }
510
- }
507
+ await Effect.gen(function* () {
508
+ yield* Collection.add({
509
+ object,
510
+ target: isSpace(target) ? undefined : target,
511
+ hidden,
512
+ });
513
+ }).pipe(Effect.provide(DatabaseService.layer(space.db)), Effect.runPromise);
511
514
 
512
515
  return {
513
516
  data: {
514
- id: fullyQualifiedId(object),
515
- subject: [fullyQualifiedId(object)],
517
+ id: Obj.getDXN(object).toString(),
518
+ subject: [Obj.getDXN(object).toString()],
516
519
  object,
517
520
  },
518
521
  intents: [
@@ -561,26 +564,26 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
561
564
  const openObjectIds = new Set<string>(layout.active);
562
565
 
563
566
  if (!undo) {
564
- const parentCollection: DataType.Collection =
565
- target ?? space.properties[DataType.Collection.typename]?.target;
567
+ const parentCollection: Collection.Collection =
568
+ target ?? space.properties[Collection.Collection.typename]?.target;
566
569
  const nestedObjectsList = await Promise.all(objects.map((obj) => getNestedObjects(obj, resolve)));
567
570
 
568
571
  const deletionData = {
569
572
  objects,
570
573
  parentCollection,
571
574
  indices: objects.map((obj) =>
572
- Obj.instanceOf(DataType.Collection, parentCollection)
575
+ Obj.instanceOf(Collection.Collection, parentCollection)
573
576
  ? parentCollection.objects.findIndex((object) => object.target === obj)
574
577
  : -1,
575
578
  ),
576
579
  nestedObjectsList,
577
580
  wasActive: objects
578
581
  .flatMap((obj, i) => [obj, ...nestedObjectsList[i]])
579
- .map((obj) => fullyQualifiedId(obj))
582
+ .map((obj) => Obj.getDXN(obj).toString())
580
583
  .filter((id) => openObjectIds.has(id)),
581
584
  } satisfies SpaceAction.DeletionData;
582
585
 
583
- if (Obj.instanceOf(DataType.Collection, deletionData.parentCollection)) {
586
+ if (Obj.instanceOf(Collection.Collection, deletionData.parentCollection)) {
584
587
  [...deletionData.indices]
585
588
  .sort((a, b) => b - a)
586
589
  .forEach((index: number) => {
@@ -595,7 +598,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
595
598
  });
596
599
  objects.forEach((obj) => space.db.remove(obj));
597
600
 
598
- const undoMessageKey = objects.some((obj) => Obj.instanceOf(DataType.Collection, obj))
601
+ const undoMessageKey = objects.some((obj) => Obj.instanceOf(Collection.Collection, obj))
599
602
  ? 'collection deleted label'
600
603
  : objects.length > 1
601
604
  ? 'objects deleted label'
@@ -604,7 +607,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
604
607
  return {
605
608
  undoable: {
606
609
  // TODO(ZaymonFC): Pluralize if more than one object.
607
- message: [undoMessageKey, { ns: SPACE_PLUGIN }],
610
+ message: [undoMessageKey, { ns: meta.id }],
608
611
  data: { deletionData },
609
612
  },
610
613
  intents:
@@ -622,7 +625,7 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
622
625
  if (
623
626
  deletionData?.objects?.length &&
624
627
  deletionData.objects.every(Obj.isObject) &&
625
- Obj.instanceOf(DataType.Collection, deletionData.parentCollection)
628
+ Obj.instanceOf(Collection.Collection, deletionData.parentCollection)
626
629
  ) {
627
630
  // Restore the object to the space.
628
631
  const restoredObjects = deletionData.objects.map((obj: Type.Expando) => space.db.add(obj));
@@ -659,9 +662,9 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
659
662
  intents: [
660
663
  createIntent(LayoutAction.UpdatePopover, {
661
664
  part: 'popover',
662
- subject: POPOVER_RENAME_OBJECT,
665
+ subject: OBJECT_RENAME_POPOVER,
663
666
  options: {
664
- anchorId: `dxos.org/ui/${caller}/${fullyQualifiedId(object)}`,
667
+ anchorId: `dxos.org/ui/${caller}/${Obj.getDXN(object).toString()}`,
665
668
  props: object,
666
669
  },
667
670
  }),
@@ -673,7 +676,6 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
673
676
  resolve: async ({ object, target }) => {
674
677
  const space = isSpace(target) ? target : getSpace(target);
675
678
  invariant(space, 'Space not found.');
676
-
677
679
  const newObject = await cloneObject(object, resolve, space);
678
680
  return {
679
681
  intents: [createIntent(SpaceAction.AddObject, { object: newObject, target })],
@@ -690,13 +692,18 @@ export default ({ context, observability, createInvitationUrl }: IntentResolverO
690
692
  createResolver({
691
693
  intent: CollectionAction.Create,
692
694
  resolve: async ({ name }) => ({
693
- data: { object: Obj.make(DataType.Collection, { name, objects: [] }) },
695
+ data: { object: Obj.make(Collection.Collection, { name, objects: [] }) },
694
696
  }),
695
697
  }),
696
698
  createResolver({
697
699
  intent: CollectionAction.CreateQueryCollection,
698
700
  resolve: async ({ name, typename }) => ({
699
- data: { object: Obj.make(DataType.QueryCollection, { name, query: { typename } }) },
701
+ data: {
702
+ object: Obj.make(Collection.QueryCollection, {
703
+ name,
704
+ query: Query.select(Filter.typename(typename)).ast,
705
+ }),
706
+ },
700
707
  }),
701
708
  }),
702
709
  ]);
@@ -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;