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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (337) hide show
  1. package/dist/lib/browser/{CollectionMain-D2B75XBS.mjs → CollectionArticle-WTHWY4YS.mjs} +10 -10
  2. package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs +141 -0
  4. package/dist/lib/browser/ObjectDetailsPanel-2BRUBHP6.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs +144 -0
  6. package/dist/lib/browser/ObjectSettings-5LLWCVEK.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-SXDRWTTU.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-AFC6PNAB.mjs → app-graph-builder-DTM7BJ6D.mjs} +107 -96
  10. package/dist/lib/browser/app-graph-builder-DTM7BJ6D.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-Q7QG4EKW.mjs → app-graph-serializer-TIKXF43P.mjs} +19 -19
  12. package/dist/lib/browser/app-graph-serializer-TIKXF43P.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-AFUOMLX6.mjs +167 -0
  14. package/dist/lib/browser/chunk-AFUOMLX6.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-6GRF7NEF.mjs → chunk-CKACGS7T.mjs} +553 -475
  16. package/dist/lib/browser/chunk-CKACGS7T.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-K5J7ZB5P.mjs +20 -0
  18. package/dist/lib/browser/chunk-K5J7ZB5P.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-S33AYKSS.mjs → chunk-KFUMADZF.mjs} +135 -62
  20. package/dist/lib/browser/chunk-KFUMADZF.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-WZYRDFW7.mjs → chunk-VGKOXAPE.mjs} +26 -13
  22. package/dist/lib/browser/chunk-VGKOXAPE.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-VZBIIYFM.mjs +16 -0
  24. package/dist/lib/browser/chunk-VZBIIYFM.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-WJXU4GKV.mjs +19 -0
  26. package/dist/lib/browser/chunk-WJXU4GKV.mjs.map +7 -0
  27. package/dist/lib/browser/{chunk-URST7EEN.mjs → chunk-ZQMSGD5J.mjs} +35 -19
  28. package/dist/lib/browser/chunk-ZQMSGD5J.mjs.map +7 -0
  29. package/dist/lib/browser/{identity-created-T6ZNVE7S.mjs → identity-created-NAXTPQXE.mjs} +5 -5
  30. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +88 -70
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-CO262Q44.mjs → intent-resolver-3FNTO3VW.mjs} +89 -76
  34. package/dist/lib/browser/intent-resolver-3FNTO3VW.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/react-root-Q7VBWBES.mjs +30 -0
  37. package/dist/lib/browser/react-root-Q7VBWBES.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-TPUOK2LC.mjs → react-surface-TTHS332A.mjs} +71 -105
  39. package/dist/lib/browser/react-surface-TTHS332A.mjs.map +7 -0
  40. package/dist/lib/browser/{schema-defs-YDPFZELA.mjs → schema-defs-QPI2JU3X.mjs} +6 -6
  41. package/dist/lib/browser/schema-defs-QPI2JU3X.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-ZYH2JWNI.mjs → settings-45PGPO2V.mjs} +5 -5
  43. package/dist/lib/browser/{settings-ZYH2JWNI.mjs.map → settings-45PGPO2V.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-3I5LISH4.mjs → spaces-ready-QCND4DVY.mjs} +15 -14
  45. package/dist/lib/browser/spaces-ready-QCND4DVY.mjs.map +7 -0
  46. package/dist/lib/browser/{state-2RGW7FQG.mjs → state-Q7YRE5KG.mjs} +7 -7
  47. package/dist/lib/browser/state-Q7YRE5KG.mjs.map +7 -0
  48. package/dist/lib/browser/types/index.mjs +2 -2
  49. package/dist/lib/node-esm/{CollectionMain-ZJIFCWKZ.mjs → CollectionArticle-KHXYT3SH.mjs} +10 -10
  50. package/dist/lib/node-esm/CollectionArticle-KHXYT3SH.mjs.map +7 -0
  51. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs +142 -0
  52. package/dist/lib/node-esm/ObjectDetailsPanel-6PZQIQG3.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs +145 -0
  54. package/dist/lib/node-esm/ObjectSettings-OQSBOH7K.mjs.map +7 -0
  55. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs +117 -0
  56. package/dist/lib/node-esm/RecordArticle-NACBH42P.mjs.map +7 -0
  57. package/dist/lib/node-esm/{app-graph-builder-OW2EBYRI.mjs → app-graph-builder-FBJFWI4H.mjs} +107 -96
  58. package/dist/lib/node-esm/app-graph-builder-FBJFWI4H.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-6PGC5WR5.mjs → app-graph-serializer-BESQZAYU.mjs} +19 -19
  60. package/dist/lib/node-esm/app-graph-serializer-BESQZAYU.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-RXDT5LA5.mjs → chunk-6VEONPNZ.mjs} +35 -19
  62. package/dist/lib/node-esm/chunk-6VEONPNZ.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-6ZQGZBEP.mjs +168 -0
  64. package/dist/lib/node-esm/chunk-6ZQGZBEP.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs +18 -0
  66. package/dist/lib/node-esm/chunk-BDEFTL6K.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-H4JILUJK.mjs +20 -0
  68. package/dist/lib/node-esm/chunk-H4JILUJK.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-TEUN2E4F.mjs → chunk-OK2L7N2F.mjs} +135 -62
  70. package/dist/lib/node-esm/chunk-OK2L7N2F.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-LGNPMOXU.mjs → chunk-QBRPYAEL.mjs} +26 -13
  72. package/dist/lib/node-esm/chunk-QBRPYAEL.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-NMCD2PSG.mjs → chunk-XGAMJC5C.mjs} +553 -475
  74. package/dist/lib/node-esm/chunk-XGAMJC5C.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs +21 -0
  76. package/dist/lib/node-esm/chunk-Z7BB6HC2.mjs.map +7 -0
  77. package/dist/lib/node-esm/{identity-created-AL7NNCKH.mjs → identity-created-OXLKCJE3.mjs} +5 -5
  78. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +88 -70
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-EXPK4B76.mjs → intent-resolver-6O5FSB7Z.mjs} +89 -76
  82. package/dist/lib/node-esm/intent-resolver-6O5FSB7Z.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/{react-root-4OQ7MPGW.mjs → react-root-K66W3FMA.mjs} +13 -12
  85. package/dist/lib/node-esm/react-root-K66W3FMA.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-WXEXIDB7.mjs → react-surface-Y7FTEIDF.mjs} +71 -105
  87. package/dist/lib/node-esm/react-surface-Y7FTEIDF.mjs.map +7 -0
  88. package/dist/lib/node-esm/{schema-defs-OYBCWKAS.mjs → schema-defs-ZS2D47XW.mjs} +6 -6
  89. package/dist/lib/node-esm/schema-defs-ZS2D47XW.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-2RYFMMTP.mjs → settings-6FO65BA6.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-2RYFMMTP.mjs.map → settings-6FO65BA6.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-JAP22P57.mjs → spaces-ready-P7CKVXBE.mjs} +15 -14
  93. package/dist/lib/node-esm/spaces-ready-P7CKVXBE.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-7VBVBGNS.mjs → state-362I5BMK.mjs} +7 -7
  95. package/dist/lib/node-esm/state-362I5BMK.mjs.map +7 -0
  96. package/dist/lib/node-esm/types/index.mjs +2 -2
  97. package/dist/types/src/SpacePlugin.d.ts +1 -1
  98. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/capabilities.d.ts +6 -5
  101. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  106. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  107. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  108. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  109. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  110. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  111. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +1 -1
  112. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  113. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +120 -1
  114. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +3 -3
  116. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  117. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  118. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
  120. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  121. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  122. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  123. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  124. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1707 -0
  125. package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
  126. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  127. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  128. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  129. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  130. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  131. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  132. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  133. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  134. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  135. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  136. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  137. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  138. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  139. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  140. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1540 -0
  141. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  142. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  143. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  144. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  145. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  146. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  147. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  148. package/dist/types/src/components/{MembersContainer.stories.d.ts → RecordArticle.stories.d.ts} +121 -2
  149. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  150. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  151. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  152. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  153. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
  154. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  155. package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +122 -3
  156. package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
  157. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  158. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  159. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  160. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  161. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  162. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  163. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  164. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +120 -1
  165. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  166. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  167. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +121 -2
  168. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  169. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  170. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  171. package/dist/types/src/components/index.d.ts +10 -17
  172. package/dist/types/src/components/index.d.ts.map +1 -1
  173. package/dist/types/src/events.d.ts.map +1 -1
  174. package/dist/types/src/helpers/index.d.ts +2 -0
  175. package/dist/types/src/helpers/index.d.ts.map +1 -0
  176. package/dist/types/src/helpers/query.d.ts +8 -0
  177. package/dist/types/src/helpers/query.d.ts.map +1 -0
  178. package/dist/types/src/helpers/query.test.d.ts +2 -0
  179. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  180. package/dist/types/src/hooks/index.d.ts +1 -0
  181. package/dist/types/src/hooks/index.d.ts.map +1 -1
  182. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  183. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  184. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  185. package/dist/types/src/hooks/usePath.d.ts +1 -1
  186. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  187. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  188. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  189. package/dist/types/src/index.d.ts +1 -0
  190. package/dist/types/src/index.d.ts.map +1 -1
  191. package/dist/types/src/meta.d.ts +0 -1
  192. package/dist/types/src/meta.d.ts.map +1 -1
  193. package/dist/types/src/translations.d.ts +120 -0
  194. package/dist/types/src/translations.d.ts.map +1 -1
  195. package/dist/types/src/types/types.d.ts +70 -55
  196. package/dist/types/src/types/types.d.ts.map +1 -1
  197. package/dist/types/src/util.d.ts +10 -7
  198. package/dist/types/src/util.d.ts.map +1 -1
  199. package/dist/types/tsconfig.tsbuildinfo +1 -1
  200. package/package.json +65 -60
  201. package/src/SpacePlugin.ts +228 -200
  202. package/src/capabilities/app-graph-builder.ts +157 -121
  203. package/src/capabilities/app-graph-serializer.ts +12 -12
  204. package/src/capabilities/capabilities.ts +16 -11
  205. package/src/capabilities/identity-created.ts +2 -2
  206. package/src/capabilities/intent-resolver.ts +75 -59
  207. package/src/capabilities/react-root.tsx +4 -3
  208. package/src/capabilities/react-surface.tsx +65 -141
  209. package/src/capabilities/schema-defs.ts +1 -1
  210. package/src/capabilities/spaces-ready.ts +8 -5
  211. package/src/capabilities/state.ts +2 -2
  212. package/src/components/AwaitingObject.tsx +12 -14
  213. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
  214. package/src/components/CollectionSection.tsx +8 -6
  215. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +11 -11
  216. package/src/components/CreateDialog/CreateObjectDialog.tsx +36 -28
  217. package/src/components/CreateDialog/CreateObjectPanel.tsx +8 -8
  218. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
  219. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  220. package/src/components/JoinDialog/index.ts +5 -0
  221. package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +7 -6
  222. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +16 -14
  223. package/src/components/MembersContainer/index.ts +5 -0
  224. package/src/components/MenuFooter.tsx +2 -2
  225. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
  226. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
  227. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  228. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +6 -6
  229. package/src/components/ObjectRenamePopover/index.ts +5 -0
  230. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +3 -3
  231. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  232. package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
  233. package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
  234. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +1 -1
  235. package/src/components/ObjectSettings/index.ts +3 -1
  236. package/src/components/RecordArticle.stories.tsx +115 -0
  237. package/src/components/RecordArticle.tsx +114 -0
  238. package/src/components/SchemaContainer.tsx +23 -26
  239. package/src/components/SpacePluginSettings.tsx +10 -4
  240. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +23 -25
  241. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +16 -11
  242. package/src/components/SpacePresence/index.ts +5 -0
  243. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  244. package/src/components/SpaceRenamePopover/index.ts +5 -0
  245. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +9 -4
  246. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +44 -23
  247. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  248. package/src/components/SyncStatus/SyncStatus.stories.tsx +4 -5
  249. package/src/components/SyncStatus/SyncStatus.tsx +107 -11
  250. package/src/components/ViewEditor.tsx +51 -18
  251. package/src/components/index.ts +7 -8
  252. package/src/events.ts +6 -6
  253. package/src/helpers/index.ts +5 -0
  254. package/src/helpers/query.test.ts +24 -0
  255. package/src/helpers/query.ts +158 -0
  256. package/src/hooks/index.ts +1 -0
  257. package/src/hooks/useActiveSpace.ts +2 -1
  258. package/src/hooks/useInputSurfaceLookup.tsx +8 -3
  259. package/src/hooks/usePath.ts +1 -1
  260. package/src/hooks/useTypeOptions.ts +59 -0
  261. package/src/index.ts +1 -0
  262. package/src/meta.ts +6 -3
  263. package/src/translations.ts +25 -10
  264. package/src/types/types.ts +33 -18
  265. package/src/util.tsx +141 -63
  266. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  267. package/dist/lib/browser/ObjectDetailsPanel-J7KGPJJK.mjs +0 -90
  268. package/dist/lib/browser/ObjectDetailsPanel-J7KGPJJK.mjs.map +0 -7
  269. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs +0 -68
  270. package/dist/lib/browser/RecordMain-TEBGAVSL.mjs.map +0 -7
  271. package/dist/lib/browser/app-graph-builder-AFC6PNAB.mjs.map +0 -7
  272. package/dist/lib/browser/app-graph-serializer-Q7QG4EKW.mjs.map +0 -7
  273. package/dist/lib/browser/chunk-6GRF7NEF.mjs.map +0 -7
  274. package/dist/lib/browser/chunk-CBYL62HG.mjs +0 -19
  275. package/dist/lib/browser/chunk-CBYL62HG.mjs.map +0 -7
  276. package/dist/lib/browser/chunk-ELJDGQTO.mjs +0 -94
  277. package/dist/lib/browser/chunk-ELJDGQTO.mjs.map +0 -7
  278. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  279. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  280. package/dist/lib/browser/chunk-S33AYKSS.mjs.map +0 -7
  281. package/dist/lib/browser/chunk-TUQZO5P4.mjs +0 -20
  282. package/dist/lib/browser/chunk-TUQZO5P4.mjs.map +0 -7
  283. package/dist/lib/browser/chunk-URST7EEN.mjs.map +0 -7
  284. package/dist/lib/browser/chunk-WZYRDFW7.mjs.map +0 -7
  285. package/dist/lib/browser/identity-created-T6ZNVE7S.mjs.map +0 -7
  286. package/dist/lib/browser/intent-resolver-CO262Q44.mjs.map +0 -7
  287. package/dist/lib/browser/react-root-K4IVLFYZ.mjs +0 -29
  288. package/dist/lib/browser/react-root-K4IVLFYZ.mjs.map +0 -7
  289. package/dist/lib/browser/react-surface-TPUOK2LC.mjs.map +0 -7
  290. package/dist/lib/browser/schema-defs-YDPFZELA.mjs.map +0 -7
  291. package/dist/lib/browser/spaces-ready-3I5LISH4.mjs.map +0 -7
  292. package/dist/lib/browser/state-2RGW7FQG.mjs.map +0 -7
  293. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  294. package/dist/lib/node-esm/ObjectDetailsPanel-7ADOXZ5W.mjs +0 -91
  295. package/dist/lib/node-esm/ObjectDetailsPanel-7ADOXZ5W.mjs.map +0 -7
  296. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs +0 -70
  297. package/dist/lib/node-esm/RecordMain-WLYJMYER.mjs.map +0 -7
  298. package/dist/lib/node-esm/app-graph-builder-OW2EBYRI.mjs.map +0 -7
  299. package/dist/lib/node-esm/app-graph-serializer-6PGC5WR5.mjs.map +0 -7
  300. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs +0 -20
  301. package/dist/lib/node-esm/chunk-FJZNSJC4.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-HC677WUJ.mjs +0 -21
  303. package/dist/lib/node-esm/chunk-HC677WUJ.mjs.map +0 -7
  304. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  305. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  306. package/dist/lib/node-esm/chunk-LGNPMOXU.mjs.map +0 -7
  307. package/dist/lib/node-esm/chunk-NMCD2PSG.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs +0 -96
  309. package/dist/lib/node-esm/chunk-Q6AAQLQG.mjs.map +0 -7
  310. package/dist/lib/node-esm/chunk-RXDT5LA5.mjs.map +0 -7
  311. package/dist/lib/node-esm/chunk-TEUN2E4F.mjs.map +0 -7
  312. package/dist/lib/node-esm/identity-created-AL7NNCKH.mjs.map +0 -7
  313. package/dist/lib/node-esm/intent-resolver-EXPK4B76.mjs.map +0 -7
  314. package/dist/lib/node-esm/react-root-4OQ7MPGW.mjs.map +0 -7
  315. package/dist/lib/node-esm/react-surface-WXEXIDB7.mjs.map +0 -7
  316. package/dist/lib/node-esm/schema-defs-OYBCWKAS.mjs.map +0 -7
  317. package/dist/lib/node-esm/spaces-ready-JAP22P57.mjs.map +0 -7
  318. package/dist/lib/node-esm/state-7VBVBGNS.mjs.map +0 -7
  319. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  320. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  321. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  322. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  323. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  324. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  325. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  326. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  327. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  328. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  329. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  330. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  331. package/dist/types/src/components/RecordMain.d.ts +0 -7
  332. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  333. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  334. package/src/components/ObjectDetailsPanel.tsx +0 -79
  335. package/src/components/PersistenceStatus.tsx +0 -83
  336. package/src/components/RecordMain.tsx +0 -43
  337. /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
@@ -0,0 +1,18 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+
3
+ // src/meta.ts
4
+ import { trim } from "@dxos/util";
5
+ var meta = {
6
+ id: "dxos.org/plugin/space",
7
+ name: "Spaces",
8
+ description: trim`
9
+ Core workspace container system for organizing and sharing collaborative environments.
10
+ Create, manage, and share spaces with granular access control and invitation management.
11
+ `,
12
+ icon: "ph--planet--regular"
13
+ };
14
+
15
+ export {
16
+ meta
17
+ };
18
+ //# sourceMappingURL=chunk-BDEFTL6K.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/space',\n name: 'Spaces',\n description: trim`\n Core workspace container system for organizing and sharing collaborative environments.\n Create, manage, and share spaces with granular access control and invitation management.\n `,\n icon: 'ph--planet--regular',\n};\n"],
5
+ "mappings": ";;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAmB;EAC9BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,MAAM;AACR;",
6
+ "names": ["trim", "meta", "id", "name", "description", "trim", "icon"]
7
+ }
@@ -0,0 +1,20 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-BDEFTL6K.mjs";
5
+
6
+ // src/events.ts
7
+ import { Events, defineEvent } from "@dxos/app-framework";
8
+ (function(SpaceEvents2) {
9
+ SpaceEvents2.StateReady = Events.createStateEvent(`${meta.id}/event/state-ready`);
10
+ SpaceEvents2.SetupSettingsPanel = defineEvent(`${meta.id}/event/setup-settings-panel`);
11
+ SpaceEvents2.DefaultSpaceReady = defineEvent(`${meta.id}/event/default-space-ready`);
12
+ SpaceEvents2.SpaceCreated = defineEvent(`${meta.id}/event/space-created`);
13
+ SpaceEvents2.SchemaAdded = defineEvent(`${meta.id}/event/schema-added`);
14
+ })(SpaceEvents || (SpaceEvents = {}));
15
+ var SpaceEvents;
16
+
17
+ export {
18
+ SpaceEvents
19
+ };
20
+ //# sourceMappingURL=chunk-H4JILUJK.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/events.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Events, defineEvent } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace SpaceEvents {\n export const StateReady = Events.createStateEvent(`${meta.id}/event/state-ready`);\n export const SetupSettingsPanel = defineEvent(`${meta.id}/event/setup-settings-panel`);\n export const DefaultSpaceReady = defineEvent(`${meta.id}/event/default-space-ready`);\n export const SpaceCreated = defineEvent(`${meta.id}/event/space-created`);\n export const SchemaAdded = defineEvent(`${meta.id}/event/schema-added`);\n}\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,QAAQC,mBAAmB;UAInBC,cAAAA;eACFC,aAAaC,OAAOC,iBAAiB,GAAGC,KAAKC,EAAE,oBAAoB;eACnEC,qBAAqBC,YAAY,GAAGH,KAAKC,EAAE,6BAA6B;eACxEG,oBAAoBD,YAAY,GAAGH,KAAKC,EAAE,4BAA4B;eACtEI,eAAeF,YAAY,GAAGH,KAAKC,EAAE,sBAAsB;eAC3DK,cAAcH,YAAY,GAAGH,KAAKC,EAAE,qBAAqB;AACxE,GANiBL,gBAAAA,cAAAA,CAAAA,EAAAA;;",
6
+ "names": ["Events", "defineEvent", "SpaceEvents", "StateReady", "Events", "createStateEvent", "meta", "id", "SetupSettingsPanel", "defineEvent", "DefaultSpaceReady", "SpaceCreated", "SchemaAdded"]
7
+ }
@@ -2,29 +2,29 @@ import { createRequire } from 'node:module';const require = createRequire(import
2
2
  import {
3
3
  SPACE_TYPE,
4
4
  SpaceAction
5
- } from "./chunk-RXDT5LA5.mjs";
5
+ } from "./chunk-6VEONPNZ.mjs";
6
6
  import {
7
- SPACE_PLUGIN
8
- } from "./chunk-HWNG4MEU.mjs";
7
+ meta
8
+ } from "./chunk-BDEFTL6K.mjs";
9
9
 
10
10
  // src/util.tsx
11
- import { Rx } from "@effect-rx/rx-react";
12
- import { pipe } from "effect";
11
+ import { Atom } from "@effect-atom/atom-react";
12
+ import * as Function from "effect/Function";
13
13
  import { LayoutAction, chain, createIntent } from "@dxos/app-framework";
14
- import { Obj, Ref, Type } from "@dxos/echo";
15
- import { EXPANDO_TYPENAME } from "@dxos/echo-schema";
14
+ import { Filter, Obj, Query, Ref, Type } from "@dxos/echo";
15
+ import { EXPANDO_TYPENAME } from "@dxos/echo/internal";
16
16
  import { invariant } from "@dxos/invariant";
17
17
  import { Migrations } from "@dxos/migrations";
18
18
  import { ACTION_GROUP_TYPE, ACTION_TYPE, isGraphNode } from "@dxos/plugin-graph";
19
- import { SpaceState, fullyQualifiedId, getSpace, isSpace } from "@dxos/react-client/echo";
19
+ import { SpaceState, getSpace, isSpace } from "@dxos/react-client/echo";
20
20
  import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/react-ui-attention";
21
- import { DataType, typenameFromQuery } from "@dxos/schema";
21
+ import { Collection, StoredSchema, View, getTypenameFromQuery } from "@dxos/schema";
22
22
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
23
- var SPACES = `${SPACE_PLUGIN}-spaces`;
24
- var COMPOSER_SPACE_LOCK = "dxos.org/plugin/space/lock";
23
+ var SPACES = `${meta.id}-spaces`;
24
+ var COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
25
25
  var SHARED = "shared-spaces";
26
- var rxFromQuery = (query) => {
27
- return Rx.make((get) => {
26
+ var atomFromQuery = (query) => {
27
+ return Atom.make((get) => {
28
28
  const unsubscribe = query.subscribe((result) => {
29
29
  get.setSelf(result.objects);
30
30
  });
@@ -36,12 +36,12 @@ var getSpaceDisplayName = (space, { personal, namesCache = {} } = {}) => {
36
36
  return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0 ? space.properties.name : namesCache[space.id] ? namesCache[space.id] : personal ? [
37
37
  "personal space label",
38
38
  {
39
- ns: SPACE_PLUGIN
39
+ ns: meta.id
40
40
  }
41
41
  ] : [
42
42
  "unnamed space label",
43
43
  {
44
- ns: SPACE_PLUGIN
44
+ ns: meta.id
45
45
  }
46
46
  ];
47
47
  };
@@ -84,9 +84,11 @@ var getCollectionGraphNodePartials = ({ collection, space, resolve }) => {
84
84
  };
85
85
  };
86
86
  var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
87
- const typename = typenameFromQuery(collection.query);
87
+ const typename = getTypenameFromQuery(collection.query);
88
+ const metadata = typename ? resolve(typename) : {};
88
89
  return {
89
- icon: typename && resolve(typename)?.icon,
90
+ icon: metadata.icon,
91
+ iconHue: metadata.iconHue,
90
92
  acceptPersistenceClass: /* @__PURE__ */ new Set([
91
93
  "echo"
92
94
  ]),
@@ -122,6 +124,7 @@ var getViewGraphNodePartials = ({ view, resolve }) => {
122
124
  }
123
125
  ],
124
126
  icon: metadata.icon,
127
+ iconHue: metadata.iconHue,
125
128
  canDrop: () => false
126
129
  };
127
130
  };
@@ -130,8 +133,8 @@ var checkPendingMigration = (space) => {
130
133
  };
131
134
  var constructSpaceNode = ({ space, navigable = false, personal, namesCache, resolve }) => {
132
135
  const hasPendingMigration = checkPendingMigration(space);
133
- const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[DataType.Collection.typename]?.target;
134
- const partials = space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(DataType.Collection, collection) ? getCollectionGraphNodePartials({
136
+ const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;
137
+ const partials = space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection) ? getCollectionGraphNodePartials({
135
138
  collection,
136
139
  space,
137
140
  resolve
@@ -154,6 +157,7 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
154
157
  description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,
155
158
  hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,
156
159
  icon: space.state.get() === SpaceState.SPACE_READY && space.properties.icon ? `ph--${space.properties.icon}--regular` : void 0,
160
+ iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,
157
161
  disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
158
162
  testId: "spacePlugin.space",
159
163
  canDrop: (source) => {
@@ -163,13 +167,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
163
167
  nodes: [
164
168
  {
165
169
  id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
166
- type: `${SPACE_PLUGIN}/settings`,
170
+ type: `${meta.id}/settings`,
167
171
  data: null,
168
172
  properties: {
169
173
  label: [
170
174
  "settings panel label",
171
175
  {
172
- ns: SPACE_PLUGIN
176
+ ns: meta.id
173
177
  }
174
178
  ],
175
179
  icon: "ph--faders--regular",
@@ -178,13 +182,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
178
182
  nodes: [
179
183
  {
180
184
  id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
181
- type: `${SPACE_PLUGIN}/properties`,
182
- data: `${SPACE_PLUGIN}/properties`,
185
+ type: `${meta.id}/properties`,
186
+ data: `${meta.id}/properties`,
183
187
  properties: {
184
188
  label: [
185
189
  "space settings properties label",
186
190
  {
187
- ns: SPACE_PLUGIN
191
+ ns: meta.id
188
192
  }
189
193
  ],
190
194
  icon: "ph--sliders--regular",
@@ -193,13 +197,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
193
197
  },
194
198
  {
195
199
  id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
196
- type: `${SPACE_PLUGIN}/members`,
197
- data: `${SPACE_PLUGIN}/members`,
200
+ type: `${meta.id}/members`,
201
+ data: `${meta.id}/members`,
198
202
  properties: {
199
203
  label: [
200
204
  "members panel label",
201
205
  {
202
- ns: SPACE_PLUGIN
206
+ ns: meta.id
203
207
  }
204
208
  ],
205
209
  icon: "ph--users--regular",
@@ -208,13 +212,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
208
212
  },
209
213
  {
210
214
  id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
211
- type: `${SPACE_PLUGIN}/schema`,
212
- data: `${SPACE_PLUGIN}/schema`,
215
+ type: `${meta.id}/schema`,
216
+ data: `${meta.id}/schema`,
213
217
  properties: {
214
218
  label: [
215
219
  "space settings schema label",
216
220
  {
217
- ns: SPACE_PLUGIN
221
+ ns: meta.id
218
222
  }
219
223
  ],
220
224
  icon: "ph--shapes--regular"
@@ -243,7 +247,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
243
247
  label: [
244
248
  "migrate space label",
245
249
  {
246
- ns: SPACE_PLUGIN
250
+ ns: meta.id
247
251
  }
248
252
  ],
249
253
  icon: "ph--database--regular",
@@ -265,7 +269,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
265
269
  label: [
266
270
  "create object in space label",
267
271
  {
268
- ns: SPACE_PLUGIN
272
+ ns: meta.id
269
273
  }
270
274
  ],
271
275
  icon: "ph--plus--regular",
@@ -285,7 +289,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
285
289
  label: [
286
290
  "rename space label",
287
291
  {
288
- ns: SPACE_PLUGIN
292
+ ns: meta.id
289
293
  }
290
294
  ],
291
295
  icon: "ph--pencil-simple-line--regular",
@@ -301,7 +305,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
301
305
  var createStaticSchemaNode = ({ schema, space }) => {
302
306
  return {
303
307
  id: `${space.id}/${Type.getTypename(schema)}`,
304
- type: `${SPACE_PLUGIN}/static-schema`,
308
+ type: `${meta.id}/static-schema`,
305
309
  data: schema,
306
310
  properties: {
307
311
  label: [
@@ -312,7 +316,9 @@ var createStaticSchemaNode = ({ schema, space }) => {
312
316
  }
313
317
  ],
314
318
  icon: "ph--database--regular",
319
+ iconHue: "green",
315
320
  role: "branch",
321
+ selectable: false,
316
322
  canDrop: () => false,
317
323
  space
318
324
  }
@@ -337,7 +343,7 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
337
343
  label: [
338
344
  "add view to schema label",
339
345
  {
340
- ns: Type.getTypename(DataType.StoredSchema)
346
+ ns: Type.getTypename(StoredSchema)
341
347
  }
342
348
  ],
343
349
  icon: "ph--plus--regular",
@@ -355,7 +361,7 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
355
361
  label: [
356
362
  "rename object label",
357
363
  {
358
- ns: Type.getTypename(DataType.StoredSchema)
364
+ ns: Type.getTypename(StoredSchema)
359
365
  }
360
366
  ],
361
367
  icon: "ph--pencil-simple-line--regular",
@@ -377,7 +383,7 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
377
383
  label: [
378
384
  "delete object label",
379
385
  {
380
- ns: Type.getTypename(DataType.StoredSchema)
386
+ ns: Type.getTypename(StoredSchema)
381
387
  }
382
388
  ],
383
389
  icon: "ph--trash--regular",
@@ -385,6 +391,33 @@ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
385
391
  disabled: !deletable,
386
392
  testId: "spacePlugin.deleteObject"
387
393
  }
394
+ },
395
+ {
396
+ id: getId(SpaceAction.Snapshot._tag),
397
+ type: ACTION_TYPE,
398
+ data: async () => {
399
+ const result = await dispatch(createIntent(SpaceAction.Snapshot, {
400
+ space,
401
+ query: Query.select(Filter.type(schema)).ast
402
+ }));
403
+ if (result.data?.snapshot) {
404
+ await downloadBlob(
405
+ result.data.snapshot,
406
+ // TODO(wittjosiah): Factor out file name construction.
407
+ `${(/* @__PURE__ */ new Date()).toISOString()}-${space.id}-${Type.getTypename(schema)}.json`
408
+ );
409
+ }
410
+ },
411
+ properties: {
412
+ label: [
413
+ "snapshot by schema label",
414
+ {
415
+ ns: meta.id
416
+ }
417
+ ],
418
+ icon: "ph--camera--regular",
419
+ disposition: "list-item"
420
+ }
388
421
  }
389
422
  ];
390
423
  return actions;
@@ -395,15 +428,15 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
395
428
  return null;
396
429
  }
397
430
  const metadata = resolve(type);
398
- const partials = Obj.instanceOf(DataType.Collection, object) ? getCollectionGraphNodePartials({
431
+ const partials = Obj.instanceOf(Collection.Collection, object) ? getCollectionGraphNodePartials({
399
432
  collection: object,
400
433
  space,
401
434
  resolve
402
- }) : Obj.instanceOf(DataType.QueryCollection, object) ? getQueryCollectionNodePartials({
435
+ }) : Obj.instanceOf(Collection.QueryCollection, object) ? getQueryCollectionNodePartials({
403
436
  collection: object,
404
437
  space,
405
438
  resolve
406
- }) : Obj.instanceOf(DataType.StoredSchema, object) ? getSchemaGraphNodePartials() : Obj.instanceOf(DataType.View, object) ? getViewGraphNodePartials({
439
+ }) : Obj.instanceOf(StoredSchema, object) ? getSchemaGraphNodePartials() : Obj.instanceOf(View.View, object) ? getViewGraphNodePartials({
407
440
  view: object,
408
441
  resolve
409
442
  }) : metadata.graphProps;
@@ -415,8 +448,9 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
415
448
  default: "New item"
416
449
  }
417
450
  ];
451
+ const selectable = !Obj.instanceOf(StoredSchema, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(Collection.Collection, object) || navigable && Obj.instanceOf(Collection.Collection, object);
418
452
  return {
419
- id: fullyQualifiedId(object),
453
+ id: Obj.getDXN(object).toString(),
420
454
  type,
421
455
  cacheable: [
422
456
  "label",
@@ -427,10 +461,12 @@ var createObjectNode = ({ space, object, disposition, droppable = true, navigabl
427
461
  properties: {
428
462
  label,
429
463
  icon: metadata.icon ?? "ph--placeholder--regular",
464
+ iconHue: metadata.iconHue,
430
465
  disposition,
431
466
  testId: "spacePlugin.object",
432
467
  persistenceClass: "echo",
433
468
  persistenceKey: space?.id,
469
+ selectable,
434
470
  canDrop: (source) => {
435
471
  return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
436
472
  },
@@ -442,7 +478,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
442
478
  const space = getSpace(object);
443
479
  invariant(space, "Space not found", {
444
480
  F: __dxlog_file,
445
- L: 518,
481
+ L: 556,
446
482
  S: void 0,
447
483
  A: [
448
484
  "space",
@@ -452,18 +488,18 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
452
488
  const typename = Obj.getTypename(object);
453
489
  invariant(typename, "Object has no typename", {
454
490
  F: __dxlog_file,
455
- L: 520,
491
+ L: 558,
456
492
  S: void 0,
457
493
  A: [
458
494
  "typename",
459
495
  "'Object has no typename'"
460
496
  ]
461
497
  });
462
- const getId = (id) => `${id}/${fullyQualifiedId(object)}`;
463
- const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : void 0;
464
- const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === typenameFromQuery(queryCollection.query)) : void 0;
498
+ const getId = (id) => `${id}/${Obj.getDXN(object).toString()}`;
499
+ const queryCollection = Obj.instanceOf(Collection.QueryCollection, object) ? object : void 0;
500
+ const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === getTypenameFromQuery(queryCollection.query)) : void 0;
465
501
  const actions = [
466
- ...Obj.instanceOf(DataType.Collection, object) ? [
502
+ ...Obj.instanceOf(Collection.Collection, object) ? [
467
503
  {
468
504
  id: getId(SpaceAction.OpenCreateObject._tag),
469
505
  type: ACTION_TYPE,
@@ -476,7 +512,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
476
512
  label: [
477
513
  "create object in collection label",
478
514
  {
479
- ns: SPACE_PLUGIN
515
+ ns: meta.id
480
516
  }
481
517
  ],
482
518
  icon: "ph--plus--regular",
@@ -485,7 +521,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
485
521
  }
486
522
  }
487
523
  ] : [],
488
- ...Obj.instanceOf(DataType.StoredSchema, object) ? [
524
+ ...Obj.instanceOf(StoredSchema, object) ? [
489
525
  {
490
526
  id: getId(SpaceAction.AddObject._tag),
491
527
  type: ACTION_TYPE,
@@ -502,13 +538,40 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
502
538
  label: [
503
539
  "add view to schema label",
504
540
  {
505
- ns: Type.getTypename(DataType.StoredSchema)
541
+ ns: Type.getTypename(StoredSchema)
506
542
  }
507
543
  ],
508
544
  icon: "ph--plus--regular",
509
545
  disposition: "list-item-primary",
510
546
  testId: "spacePlugin.addViewToSchema"
511
547
  }
548
+ },
549
+ {
550
+ id: getId(SpaceAction.Snapshot._tag),
551
+ type: ACTION_TYPE,
552
+ data: async () => {
553
+ const result = await dispatch(createIntent(SpaceAction.Snapshot, {
554
+ space,
555
+ query: Query.select(Filter.type(Type.toEffectSchema(object.jsonSchema))).ast
556
+ }));
557
+ if (result.data?.snapshot) {
558
+ await downloadBlob(
559
+ result.data.snapshot,
560
+ // TODO(wittjosiah): Factor out file name construction.
561
+ `${(/* @__PURE__ */ new Date()).toISOString()}-${space.id}-${object.typename}.json`
562
+ );
563
+ }
564
+ },
565
+ properties: {
566
+ label: [
567
+ "snapshot by schema label",
568
+ {
569
+ ns: meta.id
570
+ }
571
+ ],
572
+ icon: "ph--camera--regular",
573
+ disposition: "list-item"
574
+ }
512
575
  }
513
576
  ] : [],
514
577
  ...matchingObjectForm ? [
@@ -519,10 +582,10 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
519
582
  if (matchingObjectForm.formSchema) {
520
583
  await dispatch(createIntent(SpaceAction.OpenCreateObject, {
521
584
  target: space,
522
- typename: queryCollection ? typenameFromQuery(queryCollection.query) : void 0
585
+ typename: queryCollection ? getTypenameFromQuery(queryCollection.query) : void 0
523
586
  }));
524
587
  } else {
525
- await dispatch(pipe(matchingObjectForm.getIntent({}, {
588
+ await dispatch(Function.pipe(matchingObjectForm.getIntent({}, {
526
589
  space
527
590
  }), chain(SpaceAction.AddObject, {
528
591
  target: space,
@@ -536,7 +599,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
536
599
  label: [
537
600
  "create object in smart collection label",
538
601
  {
539
- ns: SPACE_PLUGIN
602
+ ns: meta.id
540
603
  }
541
604
  ],
542
605
  icon: "ph--plus--regular",
@@ -574,7 +637,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
574
637
  id: getId(SpaceAction.RemoveObjects._tag),
575
638
  type: ACTION_TYPE,
576
639
  data: async () => {
577
- const collection = graph.getConnections(fullyQualifiedId(object), "inbound").find(({ data }) => Obj.instanceOf(DataType.Collection, data))?.data;
640
+ const collection = graph.getConnections(Obj.getDXN(object).toString(), "inbound").find(({ data }) => Obj.instanceOf(Collection.Collection, data))?.data;
578
641
  await dispatch(createIntent(SpaceAction.RemoveObjects, {
579
642
  objects: [
580
643
  object
@@ -597,19 +660,19 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
597
660
  testId: "spacePlugin.deleteObject"
598
661
  }
599
662
  },
600
- ...navigable || !Obj.instanceOf(DataType.Collection, object) && !Obj.instanceOf(DataType.QueryCollection, object) && !Obj.instanceOf(DataType.StoredSchema, object) ? [
663
+ ...navigable || !Obj.instanceOf(Collection.Collection, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(StoredSchema, object) ? [
601
664
  {
602
665
  id: getId("copy-link"),
603
666
  type: ACTION_TYPE,
604
667
  data: async () => {
605
- const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;
668
+ const url = `${window.location.origin}/${space.id}/${Obj.getDXN(object).toString()}`;
606
669
  await navigator.clipboard.writeText(url);
607
670
  },
608
671
  properties: {
609
672
  label: [
610
673
  "copy link label",
611
674
  {
612
- ns: SPACE_PLUGIN
675
+ ns: meta.id
613
676
  }
614
677
  ],
615
678
  icon: "ph--link--regular",
@@ -625,14 +688,14 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
625
688
  data: async () => {
626
689
  await dispatch(createIntent(LayoutAction.Expose, {
627
690
  part: "navigation",
628
- subject: fullyQualifiedId(object)
691
+ subject: Obj.getDXN(object).toString()
629
692
  }));
630
693
  },
631
694
  properties: {
632
695
  label: [
633
696
  "expose object label",
634
697
  {
635
- ns: SPACE_PLUGIN
698
+ ns: meta.id
636
699
  }
637
700
  ],
638
701
  icon: "ph--eye--regular",
@@ -643,6 +706,16 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable
643
706
  ];
644
707
  return actions;
645
708
  };
709
+ var downloadBlob = async (blob, filename) => {
710
+ const url = URL.createObjectURL(blob);
711
+ const a = document.createElement("a");
712
+ a.href = url;
713
+ a.download = filename;
714
+ document.body.appendChild(a);
715
+ a.click();
716
+ document.body.removeChild(a);
717
+ URL.revokeObjectURL(url);
718
+ };
646
719
  var getNestedObjects = async (object, resolve) => {
647
720
  const type = Obj.getTypename(object);
648
721
  if (!type) {
@@ -667,7 +740,7 @@ var cloneObject = async (object, resolve, newSpace) => {
667
740
  const serializer = metadata.serializer;
668
741
  invariant(serializer, `No serializer for type: ${typename}`, {
669
742
  F: __dxlog_file,
670
- L: 714,
743
+ L: 792,
671
744
  S: void 0,
672
745
  A: [
673
746
  "serializer",
@@ -688,7 +761,7 @@ export {
688
761
  SPACES,
689
762
  COMPOSER_SPACE_LOCK,
690
763
  SHARED,
691
- rxFromQuery,
764
+ atomFromQuery,
692
765
  getSpaceDisplayName,
693
766
  constructSpaceNode,
694
767
  constructSpaceActions,
@@ -699,4 +772,4 @@ export {
699
772
  getNestedObjects,
700
773
  cloneObject
701
774
  };
702
- //# sourceMappingURL=chunk-TEUN2E4F.mjs.map
775
+ //# sourceMappingURL=chunk-OK2L7N2F.mjs.map