@dxos/plugin-space 0.8.4-main.f9ba587 → 0.8.4-main.fffef41

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 (361) hide show
  1. package/dist/lib/browser/CollectionArticle-WTHWY4YS.mjs +31 -0
  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-DTM7BJ6D.mjs +528 -0
  10. package/dist/lib/browser/app-graph-builder-DTM7BJ6D.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-UKYMBX4O.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-GVTXQCIW.mjs → chunk-CKACGS7T.mjs} +714 -571
  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-WBSEOLEM.mjs → chunk-KFUMADZF.mjs} +301 -73
  20. package/dist/lib/browser/chunk-KFUMADZF.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-6VLSHG4A.mjs → chunk-VGKOXAPE.mjs} +87 -12
  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-S6NY637J.mjs → chunk-ZQMSGD5J.mjs} +95 -19
  28. package/dist/lib/browser/chunk-ZQMSGD5J.mjs.map +7 -0
  29. package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-NAXTPQXE.mjs} +6 -6
  30. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +148 -59
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-WK5WYFH3.mjs → intent-resolver-3FNTO3VW.mjs} +236 -68
  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-6C3YJNDK.mjs → react-surface-TTHS332A.mjs} +98 -100
  39. package/dist/lib/browser/react-surface-TTHS332A.mjs.map +7 -0
  40. package/dist/lib/browser/{schema-defs-K3B3OAH4.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-XNWYRWNM.mjs → settings-45PGPO2V.mjs} +5 -5
  43. package/dist/lib/browser/{settings-XNWYRWNM.mjs.map → settings-45PGPO2V.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-K7NSNBHM.mjs → spaces-ready-QCND4DVY.mjs} +21 -18
  45. package/dist/lib/browser/spaces-ready-QCND4DVY.mjs.map +7 -0
  46. package/dist/lib/browser/{state-522XTUR4.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/CollectionArticle-KHXYT3SH.mjs +32 -0
  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-FBJFWI4H.mjs +529 -0
  58. package/dist/lib/node-esm/app-graph-builder-FBJFWI4H.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-LA3IZDXJ.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-2THX6G4C.mjs → chunk-6VEONPNZ.mjs} +95 -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-HJJHLWKY.mjs → chunk-OK2L7N2F.mjs} +301 -73
  70. package/dist/lib/node-esm/chunk-OK2L7N2F.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-SXD6T2N4.mjs → chunk-QBRPYAEL.mjs} +87 -12
  72. package/dist/lib/node-esm/chunk-QBRPYAEL.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-OUBADVJE.mjs → chunk-XGAMJC5C.mjs} +714 -571
  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-IJQO6GCR.mjs → identity-created-OXLKCJE3.mjs} +6 -6
  78. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +148 -59
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-HSR27ME4.mjs → intent-resolver-6O5FSB7Z.mjs} +236 -68
  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-HUK3ANLV.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-AGAWX7DD.mjs → react-surface-Y7FTEIDF.mjs} +98 -100
  87. package/dist/lib/node-esm/react-surface-Y7FTEIDF.mjs.map +7 -0
  88. package/dist/lib/node-esm/{schema-defs-4MCDG4DV.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-YGKHGFPH.mjs → settings-6FO65BA6.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-YGKHGFPH.mjs.map → settings-6FO65BA6.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-UM2P3DCR.mjs → spaces-ready-P7CKVXBE.mjs} +21 -18
  93. package/dist/lib/node-esm/spaces-ready-P7CKVXBE.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-C4IOXPZP.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 +1 -1
  100. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  102. package/dist/types/src/capabilities/capabilities.d.ts +14 -7
  103. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/identity-created.d.ts +1 -1
  105. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/index.d.ts +11 -12
  107. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  109. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  111. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  113. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  115. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  116. package/dist/types/src/capabilities/settings.d.ts +1 -1
  117. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  118. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  119. package/dist/types/src/capabilities/state.d.ts +1 -1
  120. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  121. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  122. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  123. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  124. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  125. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  126. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +5 -4
  127. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  128. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1704 -4
  129. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +7 -5
  131. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  132. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  133. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  134. package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
  135. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  136. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  137. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  138. package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
  139. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  140. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1707 -0
  141. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
  142. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  143. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  144. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  145. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +9 -0
  146. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +1 -0
  147. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts +10 -0
  148. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +1 -0
  149. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +3 -0
  150. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +1 -0
  151. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  152. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  153. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  154. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  155. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  156. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts +2 -2
  157. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +1 -1
  158. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts +1540 -0
  159. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.stories.d.ts.map +1 -0
  160. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +1 -1
  161. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +1 -1
  162. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +1 -1
  163. package/dist/types/src/components/ObjectSettings/index.d.ts +2 -1
  164. package/dist/types/src/components/ObjectSettings/index.d.ts.map +1 -1
  165. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  166. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  167. package/dist/types/src/components/RecordArticle.stories.d.ts +1707 -0
  168. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  169. package/dist/types/src/components/SchemaContainer.d.ts +1 -1
  170. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  171. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  172. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +4 -3
  173. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  174. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1537 -0
  175. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
  176. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  177. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  178. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  179. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  180. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  181. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  182. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  183. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1537 -4
  184. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  185. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +1 -1
  186. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  187. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1538 -5
  188. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  189. package/dist/types/src/components/SyncStatus/status.d.ts +5 -5
  190. package/dist/types/src/components/ViewEditor.d.ts +7 -0
  191. package/dist/types/src/components/ViewEditor.d.ts.map +1 -0
  192. package/dist/types/src/components/index.d.ts +11 -5
  193. package/dist/types/src/components/index.d.ts.map +1 -1
  194. package/dist/types/src/events.d.ts +1 -0
  195. package/dist/types/src/events.d.ts.map +1 -1
  196. package/dist/types/src/helpers/index.d.ts +2 -0
  197. package/dist/types/src/helpers/index.d.ts.map +1 -0
  198. package/dist/types/src/helpers/query.d.ts +8 -0
  199. package/dist/types/src/helpers/query.d.ts.map +1 -0
  200. package/dist/types/src/helpers/query.test.d.ts +2 -0
  201. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  202. package/dist/types/src/hooks/index.d.ts +1 -0
  203. package/dist/types/src/hooks/index.d.ts.map +1 -1
  204. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  205. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +1 -1
  206. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  207. package/dist/types/src/hooks/usePath.d.ts +1 -1
  208. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  209. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  210. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  211. package/dist/types/src/index.d.ts +1 -0
  212. package/dist/types/src/index.d.ts.map +1 -1
  213. package/dist/types/src/meta.d.ts +0 -1
  214. package/dist/types/src/meta.d.ts.map +1 -1
  215. package/dist/types/src/translations.d.ts +1382 -11
  216. package/dist/types/src/translations.d.ts.map +1 -1
  217. package/dist/types/src/types/types.d.ts +141 -66
  218. package/dist/types/src/types/types.d.ts.map +1 -1
  219. package/dist/types/src/util.d.ts +40 -10
  220. package/dist/types/src/util.d.ts.map +1 -1
  221. package/dist/types/tsconfig.tsbuildinfo +1 -1
  222. package/package.json +67 -61
  223. package/src/SpacePlugin.ts +232 -139
  224. package/src/capabilities/app-graph-builder.ts +335 -88
  225. package/src/capabilities/app-graph-serializer.ts +12 -12
  226. package/src/capabilities/capabilities.ts +21 -10
  227. package/src/capabilities/identity-created.ts +3 -3
  228. package/src/capabilities/index.ts +0 -1
  229. package/src/capabilities/intent-resolver.ts +191 -54
  230. package/src/capabilities/react-root.tsx +6 -4
  231. package/src/capabilities/react-surface.tsx +94 -119
  232. package/src/capabilities/schema-defs.ts +4 -3
  233. package/src/capabilities/spaces-ready.ts +16 -10
  234. package/src/capabilities/state.ts +5 -4
  235. package/src/components/AwaitingObject.tsx +16 -20
  236. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +8 -5
  237. package/src/components/CollectionSection.tsx +8 -6
  238. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +17 -16
  239. package/src/components/CreateDialog/CreateObjectDialog.tsx +76 -54
  240. package/src/components/CreateDialog/CreateObjectPanel.tsx +24 -13
  241. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -11
  242. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  243. package/src/components/JoinDialog/index.ts +5 -0
  244. package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
  245. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +27 -24
  246. package/src/components/MembersContainer/index.ts +5 -0
  247. package/src/components/MenuFooter.tsx +4 -5
  248. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +51 -0
  249. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +72 -0
  250. package/src/components/ObjectDetailsPanel/index.ts +7 -0
  251. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +11 -17
  252. package/src/components/ObjectRenamePopover/index.ts +5 -0
  253. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +4 -3
  254. package/src/components/ObjectSettings/BaseObjectSettings.stories.tsx +63 -0
  255. package/src/components/ObjectSettings/BaseObjectSettings.tsx +90 -26
  256. package/src/components/ObjectSettings/ForeignKeys.tsx +4 -4
  257. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +4 -3
  258. package/src/components/ObjectSettings/index.ts +3 -1
  259. package/src/components/RecordArticle.stories.tsx +115 -0
  260. package/src/components/RecordArticle.tsx +114 -0
  261. package/src/components/SchemaContainer.tsx +25 -28
  262. package/src/components/SpacePluginSettings.tsx +16 -11
  263. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +24 -23
  264. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +22 -17
  265. package/src/components/SpacePresence/index.ts +5 -0
  266. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  267. package/src/components/SpaceRenamePopover/index.ts +5 -0
  268. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
  269. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +49 -28
  270. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  271. package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -9
  272. package/src/components/SyncStatus/SyncStatus.tsx +110 -13
  273. package/src/components/SyncStatus/status.ts +4 -4
  274. package/src/components/ViewEditor.tsx +92 -0
  275. package/src/components/index.ts +10 -5
  276. package/src/events.ts +7 -6
  277. package/src/helpers/index.ts +5 -0
  278. package/src/helpers/query.test.ts +24 -0
  279. package/src/helpers/query.ts +158 -0
  280. package/src/hooks/index.ts +1 -0
  281. package/src/hooks/useActiveSpace.ts +3 -2
  282. package/src/hooks/useInputSurfaceLookup.tsx +8 -3
  283. package/src/hooks/usePath.ts +1 -1
  284. package/src/hooks/useTypeOptions.ts +59 -0
  285. package/src/index.ts +1 -0
  286. package/src/meta.ts +6 -3
  287. package/src/translations.ts +85 -7
  288. package/src/types/types.ts +94 -22
  289. package/src/util.tsx +297 -75
  290. package/dist/lib/browser/app-graph-builder-PMDF6PJV.mjs +0 -363
  291. package/dist/lib/browser/app-graph-builder-PMDF6PJV.mjs.map +0 -7
  292. package/dist/lib/browser/app-graph-serializer-UKYMBX4O.mjs.map +0 -7
  293. package/dist/lib/browser/chunk-6VLSHG4A.mjs.map +0 -7
  294. package/dist/lib/browser/chunk-C7KGJTAL.mjs +0 -18
  295. package/dist/lib/browser/chunk-C7KGJTAL.mjs.map +0 -7
  296. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  297. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  298. package/dist/lib/browser/chunk-GVTXQCIW.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-S6NY637J.mjs.map +0 -7
  300. package/dist/lib/browser/chunk-VLBRSGJ2.mjs +0 -94
  301. package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
  302. package/dist/lib/browser/chunk-WBSEOLEM.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-XXIPJLJF.mjs +0 -19
  304. package/dist/lib/browser/chunk-XXIPJLJF.mjs.map +0 -7
  305. package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +0 -7
  306. package/dist/lib/browser/intent-resolver-WK5WYFH3.mjs.map +0 -7
  307. package/dist/lib/browser/react-root-7S6FIC5G.mjs +0 -29
  308. package/dist/lib/browser/react-root-7S6FIC5G.mjs.map +0 -7
  309. package/dist/lib/browser/react-surface-6C3YJNDK.mjs.map +0 -7
  310. package/dist/lib/browser/schema-defs-K3B3OAH4.mjs.map +0 -7
  311. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  312. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  313. package/dist/lib/browser/spaces-ready-K7NSNBHM.mjs.map +0 -7
  314. package/dist/lib/browser/state-522XTUR4.mjs.map +0 -7
  315. package/dist/lib/node-esm/app-graph-builder-TO72W6MI.mjs +0 -364
  316. package/dist/lib/node-esm/app-graph-builder-TO72W6MI.mjs.map +0 -7
  317. package/dist/lib/node-esm/app-graph-serializer-LA3IZDXJ.mjs.map +0 -7
  318. package/dist/lib/node-esm/chunk-2THX6G4C.mjs.map +0 -7
  319. package/dist/lib/node-esm/chunk-72QMMRKC.mjs +0 -19
  320. package/dist/lib/node-esm/chunk-72QMMRKC.mjs.map +0 -7
  321. package/dist/lib/node-esm/chunk-AT7LGFER.mjs +0 -20
  322. package/dist/lib/node-esm/chunk-AT7LGFER.mjs.map +0 -7
  323. package/dist/lib/node-esm/chunk-HJJHLWKY.mjs.map +0 -7
  324. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  325. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  326. package/dist/lib/node-esm/chunk-OUBADVJE.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs +0 -96
  328. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
  329. package/dist/lib/node-esm/chunk-SXD6T2N4.mjs.map +0 -7
  330. package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +0 -7
  331. package/dist/lib/node-esm/intent-resolver-HSR27ME4.mjs.map +0 -7
  332. package/dist/lib/node-esm/react-root-HUK3ANLV.mjs.map +0 -7
  333. package/dist/lib/node-esm/react-surface-AGAWX7DD.mjs.map +0 -7
  334. package/dist/lib/node-esm/schema-defs-4MCDG4DV.mjs.map +0 -7
  335. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  336. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  337. package/dist/lib/node-esm/spaces-ready-UM2P3DCR.mjs.map +0 -7
  338. package/dist/lib/node-esm/state-C4IOXPZP.mjs.map +0 -7
  339. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  340. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  341. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  342. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  343. package/dist/types/src/components/CollectionMain.d.ts +0 -6
  344. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  345. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  346. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  347. package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
  348. package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
  349. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  350. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  351. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  352. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  353. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  354. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  355. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  356. package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
  357. package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
  358. package/src/capabilities/schema-tool.test.ts +0 -44
  359. package/src/capabilities/schema-tools.ts +0 -125
  360. package/src/components/MembersContainer.stories.tsx +0 -30
  361. package/src/components/PersistenceStatus.tsx +0 -84
@@ -1,29 +1,29 @@
1
1
  import {
2
2
  SPACE_TYPE,
3
3
  SpaceAction
4
- } from "./chunk-S6NY637J.mjs";
4
+ } from "./chunk-ZQMSGD5J.mjs";
5
5
  import {
6
- SPACE_PLUGIN
7
- } from "./chunk-FBCGT5YY.mjs";
6
+ meta
7
+ } from "./chunk-VZBIIYFM.mjs";
8
8
 
9
9
  // src/util.tsx
10
- import { Rx } from "@effect-rx/rx-react";
11
- import { pipe } from "effect";
12
- import { chain, createIntent, LayoutAction } from "@dxos/app-framework";
13
- import { Obj, Ref, Type } from "@dxos/echo";
14
- import { EXPANDO_TYPENAME } from "@dxos/echo-schema";
10
+ import { Atom } from "@effect-atom/atom-react";
11
+ import * as Function from "effect/Function";
12
+ import { LayoutAction, chain, createIntent } from "@dxos/app-framework";
13
+ import { Filter, Obj, Query, Ref, Type } from "@dxos/echo";
14
+ import { EXPANDO_TYPENAME } from "@dxos/echo/internal";
15
15
  import { invariant } from "@dxos/invariant";
16
16
  import { Migrations } from "@dxos/migrations";
17
17
  import { ACTION_GROUP_TYPE, ACTION_TYPE, isGraphNode } from "@dxos/plugin-graph";
18
- import { fullyQualifiedId, getSpace, SpaceState, isSpace } from "@dxos/react-client/echo";
18
+ import { SpaceState, getSpace, isSpace } from "@dxos/react-client/echo";
19
19
  import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/react-ui-attention";
20
- import { DataType } from "@dxos/schema";
20
+ import { Collection, StoredSchema, View, getTypenameFromQuery } from "@dxos/schema";
21
21
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
22
- var SPACES = `${SPACE_PLUGIN}-spaces`;
23
- var COMPOSER_SPACE_LOCK = "dxos.org/plugin/space/lock";
22
+ var SPACES = `${meta.id}-spaces`;
23
+ var COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
24
24
  var SHARED = "shared-spaces";
25
- var rxFromQuery = (query) => {
26
- return Rx.make((get) => {
25
+ var atomFromQuery = (query) => {
26
+ return Atom.make((get) => {
27
27
  const unsubscribe = query.subscribe((result) => {
28
28
  get.setSelf(result.objects);
29
29
  });
@@ -35,12 +35,12 @@ var getSpaceDisplayName = (space, { personal, namesCache = {} } = {}) => {
35
35
  return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0 ? space.properties.name : namesCache[space.id] ? namesCache[space.id] : personal ? [
36
36
  "personal space label",
37
37
  {
38
- ns: SPACE_PLUGIN
38
+ ns: meta.id
39
39
  }
40
40
  ] : [
41
41
  "unnamed space label",
42
42
  {
43
- ns: SPACE_PLUGIN
43
+ ns: meta.id
44
44
  }
45
45
  ];
46
46
  };
@@ -83,8 +83,11 @@ var getCollectionGraphNodePartials = ({ collection, space, resolve }) => {
83
83
  };
84
84
  };
85
85
  var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
86
+ const typename = getTypenameFromQuery(collection.query);
87
+ const metadata = typename ? resolve(typename) : {};
86
88
  return {
87
- icon: collection.query.typename && resolve(collection.query.typename)?.icon,
89
+ icon: metadata.icon,
90
+ iconHue: metadata.iconHue,
88
91
  acceptPersistenceClass: /* @__PURE__ */ new Set([
89
92
  "echo"
90
93
  ]),
@@ -93,7 +96,7 @@ var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
93
96
  ]),
94
97
  role: "branch",
95
98
  canDrop: (source) => {
96
- return isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === collection.query.typename;
99
+ return isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename;
97
100
  },
98
101
  onTransferStart: (child, index) => {
99
102
  },
@@ -101,13 +104,36 @@ var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
101
104
  }
102
105
  };
103
106
  };
107
+ var getSchemaGraphNodePartials = () => {
108
+ return {
109
+ role: "branch",
110
+ canDrop: () => false
111
+ };
112
+ };
113
+ var getViewGraphNodePartials = ({ view, resolve }) => {
114
+ const presentation = view.presentation.target;
115
+ const typename = presentation ? Obj.getTypename(presentation) : void 0;
116
+ const metadata = typename ? resolve(typename) : {};
117
+ return {
118
+ label: view.name || [
119
+ "object name placeholder",
120
+ {
121
+ ns: typename,
122
+ default: "New view"
123
+ }
124
+ ],
125
+ icon: metadata.icon,
126
+ iconHue: metadata.iconHue,
127
+ canDrop: () => false
128
+ };
129
+ };
104
130
  var checkPendingMigration = (space) => {
105
131
  return space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION || space.state.get() === SpaceState.SPACE_READY && !!Migrations.versionProperty && space.properties[Migrations.versionProperty] !== Migrations.targetVersion;
106
132
  };
107
133
  var constructSpaceNode = ({ space, navigable = false, personal, namesCache, resolve }) => {
108
134
  const hasPendingMigration = checkPendingMigration(space);
109
- const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[DataType.Collection.typename]?.target;
110
- const partials = space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(DataType.Collection, collection) ? getCollectionGraphNodePartials({
135
+ const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;
136
+ const partials = space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection) ? getCollectionGraphNodePartials({
111
137
  collection,
112
138
  space,
113
139
  resolve
@@ -130,6 +156,7 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
130
156
  description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,
131
157
  hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,
132
158
  icon: space.state.get() === SpaceState.SPACE_READY && space.properties.icon ? `ph--${space.properties.icon}--regular` : void 0,
159
+ iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,
133
160
  disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
134
161
  testId: "spacePlugin.space",
135
162
  canDrop: (source) => {
@@ -139,13 +166,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
139
166
  nodes: [
140
167
  {
141
168
  id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
142
- type: `${SPACE_PLUGIN}/settings`,
169
+ type: `${meta.id}/settings`,
143
170
  data: null,
144
171
  properties: {
145
172
  label: [
146
173
  "settings panel label",
147
174
  {
148
- ns: SPACE_PLUGIN
175
+ ns: meta.id
149
176
  }
150
177
  ],
151
178
  icon: "ph--faders--regular",
@@ -154,13 +181,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
154
181
  nodes: [
155
182
  {
156
183
  id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
157
- type: `${SPACE_PLUGIN}/properties`,
158
- data: `${SPACE_PLUGIN}/properties`,
184
+ type: `${meta.id}/properties`,
185
+ data: `${meta.id}/properties`,
159
186
  properties: {
160
187
  label: [
161
188
  "space settings properties label",
162
189
  {
163
- ns: SPACE_PLUGIN
190
+ ns: meta.id
164
191
  }
165
192
  ],
166
193
  icon: "ph--sliders--regular",
@@ -169,13 +196,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
169
196
  },
170
197
  {
171
198
  id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
172
- type: `${SPACE_PLUGIN}/members`,
173
- data: `${SPACE_PLUGIN}/members`,
199
+ type: `${meta.id}/members`,
200
+ data: `${meta.id}/members`,
174
201
  properties: {
175
202
  label: [
176
203
  "members panel label",
177
204
  {
178
- ns: SPACE_PLUGIN
205
+ ns: meta.id
179
206
  }
180
207
  ],
181
208
  icon: "ph--users--regular",
@@ -184,13 +211,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
184
211
  },
185
212
  {
186
213
  id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
187
- type: `${SPACE_PLUGIN}/schema`,
188
- data: `${SPACE_PLUGIN}/schema`,
214
+ type: `${meta.id}/schema`,
215
+ data: `${meta.id}/schema`,
189
216
  properties: {
190
217
  label: [
191
218
  "space settings schema label",
192
219
  {
193
- ns: SPACE_PLUGIN
220
+ ns: meta.id
194
221
  }
195
222
  ],
196
223
  icon: "ph--shapes--regular"
@@ -219,7 +246,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
219
246
  label: [
220
247
  "migrate space label",
221
248
  {
222
- ns: SPACE_PLUGIN
249
+ ns: meta.id
223
250
  }
224
251
  ],
225
252
  icon: "ph--database--regular",
@@ -241,7 +268,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
241
268
  label: [
242
269
  "create object in space label",
243
270
  {
244
- ns: SPACE_PLUGIN
271
+ ns: meta.id
245
272
  }
246
273
  ],
247
274
  icon: "ph--plus--regular",
@@ -261,7 +288,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
261
288
  label: [
262
289
  "rename space label",
263
290
  {
264
- ns: SPACE_PLUGIN
291
+ ns: meta.id
265
292
  }
266
293
  ],
267
294
  icon: "ph--pencil-simple-line--regular",
@@ -274,26 +301,155 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
274
301
  }
275
302
  return actions;
276
303
  };
277
- var createObjectNode = ({ space, object, droppable = true, navigable = false, resolve }) => {
304
+ var createStaticSchemaNode = ({ schema, space }) => {
305
+ return {
306
+ id: `${space.id}/${Type.getTypename(schema)}`,
307
+ type: `${meta.id}/static-schema`,
308
+ data: schema,
309
+ properties: {
310
+ label: [
311
+ "typename label",
312
+ {
313
+ ns: Type.getTypename(schema),
314
+ default: Type.getTypename(schema)
315
+ }
316
+ ],
317
+ icon: "ph--database--regular",
318
+ iconHue: "green",
319
+ role: "branch",
320
+ selectable: false,
321
+ canDrop: () => false,
322
+ space
323
+ }
324
+ };
325
+ };
326
+ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
327
+ const getId = (id) => `${space.id}/${Type.getTypename(schema)}/${id}`;
328
+ const actions = [
329
+ {
330
+ id: getId(SpaceAction.AddObject._tag),
331
+ type: ACTION_TYPE,
332
+ data: async () => {
333
+ await dispatch(createIntent(SpaceAction.OpenCreateObject, {
334
+ target: space,
335
+ views: true,
336
+ initialFormValues: {
337
+ typename: Type.getTypename(schema)
338
+ }
339
+ }));
340
+ },
341
+ properties: {
342
+ label: [
343
+ "add view to schema label",
344
+ {
345
+ ns: Type.getTypename(StoredSchema)
346
+ }
347
+ ],
348
+ icon: "ph--plus--regular",
349
+ disposition: "list-item-primary",
350
+ testId: "spacePlugin.addViewToSchema"
351
+ }
352
+ },
353
+ {
354
+ id: getId(SpaceAction.RenameObject._tag),
355
+ type: ACTION_TYPE,
356
+ data: async (params) => {
357
+ throw new Error("Not implemented");
358
+ },
359
+ properties: {
360
+ label: [
361
+ "rename object label",
362
+ {
363
+ ns: Type.getTypename(StoredSchema)
364
+ }
365
+ ],
366
+ icon: "ph--pencil-simple-line--regular",
367
+ disabled: true,
368
+ disposition: "list-item",
369
+ testId: "spacePlugin.renameObject"
370
+ }
371
+ },
372
+ {
373
+ id: getId(SpaceAction.RemoveObjects._tag),
374
+ type: ACTION_TYPE,
375
+ data: async () => {
376
+ const index = space.properties.staticRecords.findIndex((typename) => typename === Type.getTypename(schema));
377
+ if (index > -1) {
378
+ space.properties.staticRecords.splice(index, 1);
379
+ }
380
+ },
381
+ properties: {
382
+ label: [
383
+ "delete object label",
384
+ {
385
+ ns: Type.getTypename(StoredSchema)
386
+ }
387
+ ],
388
+ icon: "ph--trash--regular",
389
+ disposition: "list-item",
390
+ disabled: !deletable,
391
+ testId: "spacePlugin.deleteObject"
392
+ }
393
+ },
394
+ {
395
+ id: getId(SpaceAction.Snapshot._tag),
396
+ type: ACTION_TYPE,
397
+ data: async () => {
398
+ const result = await dispatch(createIntent(SpaceAction.Snapshot, {
399
+ space,
400
+ query: Query.select(Filter.type(schema)).ast
401
+ }));
402
+ if (result.data?.snapshot) {
403
+ await downloadBlob(
404
+ result.data.snapshot,
405
+ // TODO(wittjosiah): Factor out file name construction.
406
+ `${(/* @__PURE__ */ new Date()).toISOString()}-${space.id}-${Type.getTypename(schema)}.json`
407
+ );
408
+ }
409
+ },
410
+ properties: {
411
+ label: [
412
+ "snapshot by schema label",
413
+ {
414
+ ns: meta.id
415
+ }
416
+ ],
417
+ icon: "ph--camera--regular",
418
+ disposition: "list-item"
419
+ }
420
+ }
421
+ ];
422
+ return actions;
423
+ };
424
+ var createObjectNode = ({ space, object, disposition, droppable = true, navigable = false, resolve }) => {
278
425
  const type = Obj.getTypename(object);
279
426
  if (!type) {
280
- return void 0;
427
+ return null;
281
428
  }
282
429
  const metadata = resolve(type);
283
- if (Object.keys(metadata).length === 0) {
284
- return void 0;
285
- }
286
- const partials = Obj.instanceOf(DataType.Collection, object) ? getCollectionGraphNodePartials({
430
+ const partials = Obj.instanceOf(Collection.Collection, object) ? getCollectionGraphNodePartials({
287
431
  collection: object,
288
432
  space,
289
433
  resolve
290
- }) : Obj.instanceOf(DataType.QueryCollection, object) ? getQueryCollectionNodePartials({
434
+ }) : Obj.instanceOf(Collection.QueryCollection, object) ? getQueryCollectionNodePartials({
291
435
  collection: object,
292
436
  space,
293
437
  resolve
438
+ }) : Obj.instanceOf(StoredSchema, object) ? getSchemaGraphNodePartials() : Obj.instanceOf(View.View, object) ? getViewGraphNodePartials({
439
+ view: object,
440
+ resolve
294
441
  }) : metadata.graphProps;
442
+ const label = object.name || Obj.getLabel(object) || // TODO(wittjosiah): Remove metadata labels.
443
+ metadata.label?.(object) || [
444
+ "object name placeholder",
445
+ {
446
+ ns: type,
447
+ default: "New item"
448
+ }
449
+ ];
450
+ const selectable = !Obj.instanceOf(StoredSchema, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(Collection.Collection, object) || navigable && Obj.instanceOf(Collection.Collection, object);
295
451
  return {
296
- id: fullyQualifiedId(object),
452
+ id: Obj.getDXN(object).toString(),
297
453
  type,
298
454
  cacheable: [
299
455
  "label",
@@ -302,18 +458,14 @@ var createObjectNode = ({ space, object, droppable = true, navigable = false, re
302
458
  ],
303
459
  data: object,
304
460
  properties: {
305
- // TODO(burdon): Use annotation to get the name field.
306
- label: metadata.label?.(object) || object.name || [
307
- "object name placeholder",
308
- {
309
- ns: type,
310
- default: "New object"
311
- }
312
- ],
461
+ label,
313
462
  icon: metadata.icon ?? "ph--placeholder--regular",
463
+ iconHue: metadata.iconHue,
464
+ disposition,
314
465
  testId: "spacePlugin.object",
315
466
  persistenceClass: "echo",
316
467
  persistenceKey: space?.id,
468
+ selectable,
317
469
  canDrop: (source) => {
318
470
  return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
319
471
  },
@@ -321,22 +473,32 @@ var createObjectNode = ({ space, object, droppable = true, navigable = false, re
321
473
  }
322
474
  };
323
475
  };
324
- var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable = false }) => {
476
+ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable = true, navigable = false }) => {
325
477
  const space = getSpace(object);
326
478
  invariant(space, "Space not found", {
327
479
  F: __dxlog_file,
328
- L: 398,
480
+ L: 556,
329
481
  S: void 0,
330
482
  A: [
331
483
  "space",
332
484
  "'Space not found'"
333
485
  ]
334
486
  });
335
- const getId = (id) => `${id}/${fullyQualifiedId(object)}`;
336
- const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : void 0;
337
- const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === queryCollection.query.typename) : void 0;
487
+ const typename = Obj.getTypename(object);
488
+ invariant(typename, "Object has no typename", {
489
+ F: __dxlog_file,
490
+ L: 558,
491
+ S: void 0,
492
+ A: [
493
+ "typename",
494
+ "'Object has no typename'"
495
+ ]
496
+ });
497
+ const getId = (id) => `${id}/${Obj.getDXN(object).toString()}`;
498
+ const queryCollection = Obj.instanceOf(Collection.QueryCollection, object) ? object : void 0;
499
+ const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === getTypenameFromQuery(queryCollection.query)) : void 0;
338
500
  const actions = [
339
- ...Obj.instanceOf(DataType.Collection, object) ? [
501
+ ...Obj.instanceOf(Collection.Collection, object) ? [
340
502
  {
341
503
  id: getId(SpaceAction.OpenCreateObject._tag),
342
504
  type: ACTION_TYPE,
@@ -349,7 +511,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
349
511
  label: [
350
512
  "create object in collection label",
351
513
  {
352
- ns: SPACE_PLUGIN
514
+ ns: meta.id
353
515
  }
354
516
  ],
355
517
  icon: "ph--plus--regular",
@@ -358,6 +520,59 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
358
520
  }
359
521
  }
360
522
  ] : [],
523
+ ...Obj.instanceOf(StoredSchema, object) ? [
524
+ {
525
+ id: getId(SpaceAction.AddObject._tag),
526
+ type: ACTION_TYPE,
527
+ data: async () => {
528
+ await dispatch(createIntent(SpaceAction.OpenCreateObject, {
529
+ target: space,
530
+ views: true,
531
+ initialFormValues: {
532
+ typename: object.typename
533
+ }
534
+ }));
535
+ },
536
+ properties: {
537
+ label: [
538
+ "add view to schema label",
539
+ {
540
+ ns: Type.getTypename(StoredSchema)
541
+ }
542
+ ],
543
+ icon: "ph--plus--regular",
544
+ disposition: "list-item-primary",
545
+ testId: "spacePlugin.addViewToSchema"
546
+ }
547
+ },
548
+ {
549
+ id: getId(SpaceAction.Snapshot._tag),
550
+ type: ACTION_TYPE,
551
+ data: async () => {
552
+ const result = await dispatch(createIntent(SpaceAction.Snapshot, {
553
+ space,
554
+ query: Query.select(Filter.type(Type.toEffectSchema(object.jsonSchema))).ast
555
+ }));
556
+ if (result.data?.snapshot) {
557
+ await downloadBlob(
558
+ result.data.snapshot,
559
+ // TODO(wittjosiah): Factor out file name construction.
560
+ `${(/* @__PURE__ */ new Date()).toISOString()}-${space.id}-${object.typename}.json`
561
+ );
562
+ }
563
+ },
564
+ properties: {
565
+ label: [
566
+ "snapshot by schema label",
567
+ {
568
+ ns: meta.id
569
+ }
570
+ ],
571
+ icon: "ph--camera--regular",
572
+ disposition: "list-item"
573
+ }
574
+ }
575
+ ] : [],
361
576
  ...matchingObjectForm ? [
362
577
  {
363
578
  id: getId(SpaceAction.OpenCreateObject._tag),
@@ -366,10 +581,10 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
366
581
  if (matchingObjectForm.formSchema) {
367
582
  await dispatch(createIntent(SpaceAction.OpenCreateObject, {
368
583
  target: space,
369
- typename: queryCollection?.query.typename
584
+ typename: queryCollection ? getTypenameFromQuery(queryCollection.query) : void 0
370
585
  }));
371
586
  } else {
372
- await dispatch(pipe(matchingObjectForm.getIntent({}, {
587
+ await dispatch(Function.pipe(matchingObjectForm.getIntent({}, {
373
588
  space
374
589
  }), chain(SpaceAction.AddObject, {
375
590
  target: space,
@@ -383,7 +598,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
383
598
  label: [
384
599
  "create object in smart collection label",
385
600
  {
386
- ns: SPACE_PLUGIN
601
+ ns: meta.id
387
602
  }
388
603
  ],
389
604
  icon: "ph--plus--regular",
@@ -403,9 +618,9 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
403
618
  },
404
619
  properties: {
405
620
  label: [
406
- Obj.instanceOf(DataType.Collection, object) ? "rename collection label" : "rename object label",
621
+ "rename object label",
407
622
  {
408
- ns: SPACE_PLUGIN
623
+ ns: typename
409
624
  }
410
625
  ],
411
626
  icon: "ph--pencil-simple-line--regular",
@@ -421,7 +636,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
421
636
  id: getId(SpaceAction.RemoveObjects._tag),
422
637
  type: ACTION_TYPE,
423
638
  data: async () => {
424
- const collection = graph.getConnections(fullyQualifiedId(object), "inbound").find(({ data }) => Obj.instanceOf(DataType.Collection, data))?.data;
639
+ const collection = graph.getConnections(Obj.getDXN(object).toString(), "inbound").find(({ data }) => Obj.instanceOf(Collection.Collection, data))?.data;
425
640
  await dispatch(createIntent(SpaceAction.RemoveObjects, {
426
641
  objects: [
427
642
  object
@@ -431,31 +646,32 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
431
646
  },
432
647
  properties: {
433
648
  label: [
434
- Obj.instanceOf(DataType.Collection, object) ? "delete collection label" : "delete object label",
649
+ "delete object label",
435
650
  {
436
- ns: SPACE_PLUGIN
651
+ ns: typename
437
652
  }
438
653
  ],
439
654
  icon: "ph--trash--regular",
440
655
  disposition: "list-item",
656
+ disabled: !deletable,
441
657
  // TODO(wittjosiah): This is a browser shortcut.
442
658
  // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
443
659
  testId: "spacePlugin.deleteObject"
444
660
  }
445
661
  },
446
- ...navigable || !Obj.instanceOf(DataType.Collection, object) && !Obj.instanceOf(DataType.QueryCollection, object) ? [
662
+ ...navigable || !Obj.instanceOf(Collection.Collection, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(StoredSchema, object) ? [
447
663
  {
448
664
  id: getId("copy-link"),
449
665
  type: ACTION_TYPE,
450
666
  data: async () => {
451
- const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;
667
+ const url = `${window.location.origin}/${space.id}/${Obj.getDXN(object).toString()}`;
452
668
  await navigator.clipboard.writeText(url);
453
669
  },
454
670
  properties: {
455
671
  label: [
456
672
  "copy link label",
457
673
  {
458
- ns: SPACE_PLUGIN
674
+ ns: meta.id
459
675
  }
460
676
  ],
461
677
  icon: "ph--link--regular",
@@ -471,14 +687,14 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
471
687
  data: async () => {
472
688
  await dispatch(createIntent(LayoutAction.Expose, {
473
689
  part: "navigation",
474
- subject: fullyQualifiedId(object)
690
+ subject: Obj.getDXN(object).toString()
475
691
  }));
476
692
  },
477
693
  properties: {
478
694
  label: [
479
695
  "expose object label",
480
696
  {
481
- ns: SPACE_PLUGIN
697
+ ns: meta.id
482
698
  }
483
699
  ],
484
700
  icon: "ph--eye--regular",
@@ -489,6 +705,16 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
489
705
  ];
490
706
  return actions;
491
707
  };
708
+ var downloadBlob = async (blob, filename) => {
709
+ const url = URL.createObjectURL(blob);
710
+ const a = document.createElement("a");
711
+ a.href = url;
712
+ a.download = filename;
713
+ document.body.appendChild(a);
714
+ a.click();
715
+ document.body.removeChild(a);
716
+ URL.revokeObjectURL(url);
717
+ };
492
718
  var getNestedObjects = async (object, resolve) => {
493
719
  const type = Obj.getTypename(object);
494
720
  if (!type) {
@@ -513,7 +739,7 @@ var cloneObject = async (object, resolve, newSpace) => {
513
739
  const serializer = metadata.serializer;
514
740
  invariant(serializer, `No serializer for type: ${typename}`, {
515
741
  F: __dxlog_file,
516
- L: 570,
742
+ L: 792,
517
743
  S: void 0,
518
744
  A: [
519
745
  "serializer",
@@ -534,13 +760,15 @@ export {
534
760
  SPACES,
535
761
  COMPOSER_SPACE_LOCK,
536
762
  SHARED,
537
- rxFromQuery,
763
+ atomFromQuery,
538
764
  getSpaceDisplayName,
539
765
  constructSpaceNode,
540
766
  constructSpaceActions,
767
+ createStaticSchemaNode,
768
+ createStaticSchemaActions,
541
769
  createObjectNode,
542
770
  constructObjectActions,
543
771
  getNestedObjects,
544
772
  cloneObject
545
773
  };
546
- //# sourceMappingURL=chunk-WBSEOLEM.mjs.map
774
+ //# sourceMappingURL=chunk-KFUMADZF.mjs.map