@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
@@ -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-2THX6G4C.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";
13
- import { chain, createIntent, LayoutAction } from "@dxos/app-framework";
14
- import { Obj, Ref, Type } from "@dxos/echo";
15
- import { EXPANDO_TYPENAME } from "@dxos/echo-schema";
11
+ import { Atom } from "@effect-atom/atom-react";
12
+ import * as Function from "effect/Function";
13
+ import { LayoutAction, chain, createIntent } from "@dxos/app-framework";
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 { fullyQualifiedId, getSpace, SpaceState, 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 } 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,8 +84,11 @@ var getCollectionGraphNodePartials = ({ collection, space, resolve }) => {
84
84
  };
85
85
  };
86
86
  var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
87
+ const typename = getTypenameFromQuery(collection.query);
88
+ const metadata = typename ? resolve(typename) : {};
87
89
  return {
88
- icon: collection.query.typename && resolve(collection.query.typename)?.icon,
90
+ icon: metadata.icon,
91
+ iconHue: metadata.iconHue,
89
92
  acceptPersistenceClass: /* @__PURE__ */ new Set([
90
93
  "echo"
91
94
  ]),
@@ -94,7 +97,7 @@ var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
94
97
  ]),
95
98
  role: "branch",
96
99
  canDrop: (source) => {
97
- return isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === collection.query.typename;
100
+ return isGraphNode(source.item) && Obj.isObject(source.item.data) && Obj.getTypename(source.item.data) === typename;
98
101
  },
99
102
  onTransferStart: (child, index) => {
100
103
  },
@@ -102,13 +105,36 @@ var getQueryCollectionNodePartials = ({ collection, space, resolve }) => {
102
105
  }
103
106
  };
104
107
  };
108
+ var getSchemaGraphNodePartials = () => {
109
+ return {
110
+ role: "branch",
111
+ canDrop: () => false
112
+ };
113
+ };
114
+ var getViewGraphNodePartials = ({ view, resolve }) => {
115
+ const presentation = view.presentation.target;
116
+ const typename = presentation ? Obj.getTypename(presentation) : void 0;
117
+ const metadata = typename ? resolve(typename) : {};
118
+ return {
119
+ label: view.name || [
120
+ "object name placeholder",
121
+ {
122
+ ns: typename,
123
+ default: "New view"
124
+ }
125
+ ],
126
+ icon: metadata.icon,
127
+ iconHue: metadata.iconHue,
128
+ canDrop: () => false
129
+ };
130
+ };
105
131
  var checkPendingMigration = (space) => {
106
132
  return space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION || space.state.get() === SpaceState.SPACE_READY && !!Migrations.versionProperty && space.properties[Migrations.versionProperty] !== Migrations.targetVersion;
107
133
  };
108
134
  var constructSpaceNode = ({ space, navigable = false, personal, namesCache, resolve }) => {
109
135
  const hasPendingMigration = checkPendingMigration(space);
110
- const collection = space.state.get() === SpaceState.SPACE_READY && space.properties[DataType.Collection.typename]?.target;
111
- 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({
112
138
  collection,
113
139
  space,
114
140
  resolve
@@ -131,6 +157,7 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
131
157
  description: space.state.get() === SpaceState.SPACE_READY && space.properties.description,
132
158
  hue: space.state.get() === SpaceState.SPACE_READY && space.properties.hue,
133
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,
134
161
  disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
135
162
  testId: "spacePlugin.space",
136
163
  canDrop: (source) => {
@@ -140,13 +167,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
140
167
  nodes: [
141
168
  {
142
169
  id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
143
- type: `${SPACE_PLUGIN}/settings`,
170
+ type: `${meta.id}/settings`,
144
171
  data: null,
145
172
  properties: {
146
173
  label: [
147
174
  "settings panel label",
148
175
  {
149
- ns: SPACE_PLUGIN
176
+ ns: meta.id
150
177
  }
151
178
  ],
152
179
  icon: "ph--faders--regular",
@@ -155,13 +182,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
155
182
  nodes: [
156
183
  {
157
184
  id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
158
- type: `${SPACE_PLUGIN}/properties`,
159
- data: `${SPACE_PLUGIN}/properties`,
185
+ type: `${meta.id}/properties`,
186
+ data: `${meta.id}/properties`,
160
187
  properties: {
161
188
  label: [
162
189
  "space settings properties label",
163
190
  {
164
- ns: SPACE_PLUGIN
191
+ ns: meta.id
165
192
  }
166
193
  ],
167
194
  icon: "ph--sliders--regular",
@@ -170,13 +197,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
170
197
  },
171
198
  {
172
199
  id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
173
- type: `${SPACE_PLUGIN}/members`,
174
- data: `${SPACE_PLUGIN}/members`,
200
+ type: `${meta.id}/members`,
201
+ data: `${meta.id}/members`,
175
202
  properties: {
176
203
  label: [
177
204
  "members panel label",
178
205
  {
179
- ns: SPACE_PLUGIN
206
+ ns: meta.id
180
207
  }
181
208
  ],
182
209
  icon: "ph--users--regular",
@@ -185,13 +212,13 @@ var constructSpaceNode = ({ space, navigable = false, personal, namesCache, reso
185
212
  },
186
213
  {
187
214
  id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
188
- type: `${SPACE_PLUGIN}/schema`,
189
- data: `${SPACE_PLUGIN}/schema`,
215
+ type: `${meta.id}/schema`,
216
+ data: `${meta.id}/schema`,
190
217
  properties: {
191
218
  label: [
192
219
  "space settings schema label",
193
220
  {
194
- ns: SPACE_PLUGIN
221
+ ns: meta.id
195
222
  }
196
223
  ],
197
224
  icon: "ph--shapes--regular"
@@ -220,7 +247,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
220
247
  label: [
221
248
  "migrate space label",
222
249
  {
223
- ns: SPACE_PLUGIN
250
+ ns: meta.id
224
251
  }
225
252
  ],
226
253
  icon: "ph--database--regular",
@@ -242,7 +269,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
242
269
  label: [
243
270
  "create object in space label",
244
271
  {
245
- ns: SPACE_PLUGIN
272
+ ns: meta.id
246
273
  }
247
274
  ],
248
275
  icon: "ph--plus--regular",
@@ -262,7 +289,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
262
289
  label: [
263
290
  "rename space label",
264
291
  {
265
- ns: SPACE_PLUGIN
292
+ ns: meta.id
266
293
  }
267
294
  ],
268
295
  icon: "ph--pencil-simple-line--regular",
@@ -275,26 +302,155 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
275
302
  }
276
303
  return actions;
277
304
  };
278
- var createObjectNode = ({ space, object, droppable = true, navigable = false, resolve }) => {
305
+ var createStaticSchemaNode = ({ schema, space }) => {
306
+ return {
307
+ id: `${space.id}/${Type.getTypename(schema)}`,
308
+ type: `${meta.id}/static-schema`,
309
+ data: schema,
310
+ properties: {
311
+ label: [
312
+ "typename label",
313
+ {
314
+ ns: Type.getTypename(schema),
315
+ default: Type.getTypename(schema)
316
+ }
317
+ ],
318
+ icon: "ph--database--regular",
319
+ iconHue: "green",
320
+ role: "branch",
321
+ selectable: false,
322
+ canDrop: () => false,
323
+ space
324
+ }
325
+ };
326
+ };
327
+ var createStaticSchemaActions = ({ schema, space, dispatch, deletable }) => {
328
+ const getId = (id) => `${space.id}/${Type.getTypename(schema)}/${id}`;
329
+ const actions = [
330
+ {
331
+ id: getId(SpaceAction.AddObject._tag),
332
+ type: ACTION_TYPE,
333
+ data: async () => {
334
+ await dispatch(createIntent(SpaceAction.OpenCreateObject, {
335
+ target: space,
336
+ views: true,
337
+ initialFormValues: {
338
+ typename: Type.getTypename(schema)
339
+ }
340
+ }));
341
+ },
342
+ properties: {
343
+ label: [
344
+ "add view to schema label",
345
+ {
346
+ ns: Type.getTypename(StoredSchema)
347
+ }
348
+ ],
349
+ icon: "ph--plus--regular",
350
+ disposition: "list-item-primary",
351
+ testId: "spacePlugin.addViewToSchema"
352
+ }
353
+ },
354
+ {
355
+ id: getId(SpaceAction.RenameObject._tag),
356
+ type: ACTION_TYPE,
357
+ data: async (params) => {
358
+ throw new Error("Not implemented");
359
+ },
360
+ properties: {
361
+ label: [
362
+ "rename object label",
363
+ {
364
+ ns: Type.getTypename(StoredSchema)
365
+ }
366
+ ],
367
+ icon: "ph--pencil-simple-line--regular",
368
+ disabled: true,
369
+ disposition: "list-item",
370
+ testId: "spacePlugin.renameObject"
371
+ }
372
+ },
373
+ {
374
+ id: getId(SpaceAction.RemoveObjects._tag),
375
+ type: ACTION_TYPE,
376
+ data: async () => {
377
+ const index = space.properties.staticRecords.findIndex((typename) => typename === Type.getTypename(schema));
378
+ if (index > -1) {
379
+ space.properties.staticRecords.splice(index, 1);
380
+ }
381
+ },
382
+ properties: {
383
+ label: [
384
+ "delete object label",
385
+ {
386
+ ns: Type.getTypename(StoredSchema)
387
+ }
388
+ ],
389
+ icon: "ph--trash--regular",
390
+ disposition: "list-item",
391
+ disabled: !deletable,
392
+ testId: "spacePlugin.deleteObject"
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
+ }
421
+ }
422
+ ];
423
+ return actions;
424
+ };
425
+ var createObjectNode = ({ space, object, disposition, droppable = true, navigable = false, resolve }) => {
279
426
  const type = Obj.getTypename(object);
280
427
  if (!type) {
281
- return void 0;
428
+ return null;
282
429
  }
283
430
  const metadata = resolve(type);
284
- if (Object.keys(metadata).length === 0) {
285
- return void 0;
286
- }
287
- const partials = Obj.instanceOf(DataType.Collection, object) ? getCollectionGraphNodePartials({
431
+ const partials = Obj.instanceOf(Collection.Collection, object) ? getCollectionGraphNodePartials({
288
432
  collection: object,
289
433
  space,
290
434
  resolve
291
- }) : Obj.instanceOf(DataType.QueryCollection, object) ? getQueryCollectionNodePartials({
435
+ }) : Obj.instanceOf(Collection.QueryCollection, object) ? getQueryCollectionNodePartials({
292
436
  collection: object,
293
437
  space,
294
438
  resolve
439
+ }) : Obj.instanceOf(StoredSchema, object) ? getSchemaGraphNodePartials() : Obj.instanceOf(View.View, object) ? getViewGraphNodePartials({
440
+ view: object,
441
+ resolve
295
442
  }) : metadata.graphProps;
443
+ const label = object.name || Obj.getLabel(object) || // TODO(wittjosiah): Remove metadata labels.
444
+ metadata.label?.(object) || [
445
+ "object name placeholder",
446
+ {
447
+ ns: type,
448
+ default: "New item"
449
+ }
450
+ ];
451
+ const selectable = !Obj.instanceOf(StoredSchema, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(Collection.Collection, object) || navigable && Obj.instanceOf(Collection.Collection, object);
296
452
  return {
297
- id: fullyQualifiedId(object),
453
+ id: Obj.getDXN(object).toString(),
298
454
  type,
299
455
  cacheable: [
300
456
  "label",
@@ -303,18 +459,14 @@ var createObjectNode = ({ space, object, droppable = true, navigable = false, re
303
459
  ],
304
460
  data: object,
305
461
  properties: {
306
- // TODO(burdon): Use annotation to get the name field.
307
- label: metadata.label?.(object) || object.name || [
308
- "object name placeholder",
309
- {
310
- ns: type,
311
- default: "New object"
312
- }
313
- ],
462
+ label,
314
463
  icon: metadata.icon ?? "ph--placeholder--regular",
464
+ iconHue: metadata.iconHue,
465
+ disposition,
315
466
  testId: "spacePlugin.object",
316
467
  persistenceClass: "echo",
317
468
  persistenceKey: space?.id,
469
+ selectable,
318
470
  canDrop: (source) => {
319
471
  return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
320
472
  },
@@ -322,22 +474,32 @@ var createObjectNode = ({ space, object, droppable = true, navigable = false, re
322
474
  }
323
475
  };
324
476
  };
325
- var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable = false }) => {
477
+ var constructObjectActions = ({ object, graph, dispatch, objectForms, deletable = true, navigable = false }) => {
326
478
  const space = getSpace(object);
327
479
  invariant(space, "Space not found", {
328
480
  F: __dxlog_file,
329
- L: 398,
481
+ L: 556,
330
482
  S: void 0,
331
483
  A: [
332
484
  "space",
333
485
  "'Space not found'"
334
486
  ]
335
487
  });
336
- const getId = (id) => `${id}/${fullyQualifiedId(object)}`;
337
- const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : void 0;
338
- const matchingObjectForm = queryCollection ? objectForms.find((form) => Type.getTypename(form.objectSchema) === queryCollection.query.typename) : void 0;
488
+ const typename = Obj.getTypename(object);
489
+ invariant(typename, "Object has no typename", {
490
+ F: __dxlog_file,
491
+ L: 558,
492
+ S: void 0,
493
+ A: [
494
+ "typename",
495
+ "'Object has no typename'"
496
+ ]
497
+ });
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;
339
501
  const actions = [
340
- ...Obj.instanceOf(DataType.Collection, object) ? [
502
+ ...Obj.instanceOf(Collection.Collection, object) ? [
341
503
  {
342
504
  id: getId(SpaceAction.OpenCreateObject._tag),
343
505
  type: ACTION_TYPE,
@@ -350,7 +512,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
350
512
  label: [
351
513
  "create object in collection label",
352
514
  {
353
- ns: SPACE_PLUGIN
515
+ ns: meta.id
354
516
  }
355
517
  ],
356
518
  icon: "ph--plus--regular",
@@ -359,6 +521,59 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
359
521
  }
360
522
  }
361
523
  ] : [],
524
+ ...Obj.instanceOf(StoredSchema, object) ? [
525
+ {
526
+ id: getId(SpaceAction.AddObject._tag),
527
+ type: ACTION_TYPE,
528
+ data: async () => {
529
+ await dispatch(createIntent(SpaceAction.OpenCreateObject, {
530
+ target: space,
531
+ views: true,
532
+ initialFormValues: {
533
+ typename: object.typename
534
+ }
535
+ }));
536
+ },
537
+ properties: {
538
+ label: [
539
+ "add view to schema label",
540
+ {
541
+ ns: Type.getTypename(StoredSchema)
542
+ }
543
+ ],
544
+ icon: "ph--plus--regular",
545
+ disposition: "list-item-primary",
546
+ testId: "spacePlugin.addViewToSchema"
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
+ }
575
+ }
576
+ ] : [],
362
577
  ...matchingObjectForm ? [
363
578
  {
364
579
  id: getId(SpaceAction.OpenCreateObject._tag),
@@ -367,10 +582,10 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
367
582
  if (matchingObjectForm.formSchema) {
368
583
  await dispatch(createIntent(SpaceAction.OpenCreateObject, {
369
584
  target: space,
370
- typename: queryCollection?.query.typename
585
+ typename: queryCollection ? getTypenameFromQuery(queryCollection.query) : void 0
371
586
  }));
372
587
  } else {
373
- await dispatch(pipe(matchingObjectForm.getIntent({}, {
588
+ await dispatch(Function.pipe(matchingObjectForm.getIntent({}, {
374
589
  space
375
590
  }), chain(SpaceAction.AddObject, {
376
591
  target: space,
@@ -384,7 +599,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
384
599
  label: [
385
600
  "create object in smart collection label",
386
601
  {
387
- ns: SPACE_PLUGIN
602
+ ns: meta.id
388
603
  }
389
604
  ],
390
605
  icon: "ph--plus--regular",
@@ -404,9 +619,9 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
404
619
  },
405
620
  properties: {
406
621
  label: [
407
- Obj.instanceOf(DataType.Collection, object) ? "rename collection label" : "rename object label",
622
+ "rename object label",
408
623
  {
409
- ns: SPACE_PLUGIN
624
+ ns: typename
410
625
  }
411
626
  ],
412
627
  icon: "ph--pencil-simple-line--regular",
@@ -422,7 +637,7 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
422
637
  id: getId(SpaceAction.RemoveObjects._tag),
423
638
  type: ACTION_TYPE,
424
639
  data: async () => {
425
- 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;
426
641
  await dispatch(createIntent(SpaceAction.RemoveObjects, {
427
642
  objects: [
428
643
  object
@@ -432,31 +647,32 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
432
647
  },
433
648
  properties: {
434
649
  label: [
435
- Obj.instanceOf(DataType.Collection, object) ? "delete collection label" : "delete object label",
650
+ "delete object label",
436
651
  {
437
- ns: SPACE_PLUGIN
652
+ ns: typename
438
653
  }
439
654
  ],
440
655
  icon: "ph--trash--regular",
441
656
  disposition: "list-item",
657
+ disabled: !deletable,
442
658
  // TODO(wittjosiah): This is a browser shortcut.
443
659
  // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
444
660
  testId: "spacePlugin.deleteObject"
445
661
  }
446
662
  },
447
- ...navigable || !Obj.instanceOf(DataType.Collection, object) && !Obj.instanceOf(DataType.QueryCollection, object) ? [
663
+ ...navigable || !Obj.instanceOf(Collection.Collection, object) && !Obj.instanceOf(Collection.QueryCollection, object) && !Obj.instanceOf(StoredSchema, object) ? [
448
664
  {
449
665
  id: getId("copy-link"),
450
666
  type: ACTION_TYPE,
451
667
  data: async () => {
452
- const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;
668
+ const url = `${window.location.origin}/${space.id}/${Obj.getDXN(object).toString()}`;
453
669
  await navigator.clipboard.writeText(url);
454
670
  },
455
671
  properties: {
456
672
  label: [
457
673
  "copy link label",
458
674
  {
459
- ns: SPACE_PLUGIN
675
+ ns: meta.id
460
676
  }
461
677
  ],
462
678
  icon: "ph--link--regular",
@@ -472,14 +688,14 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
472
688
  data: async () => {
473
689
  await dispatch(createIntent(LayoutAction.Expose, {
474
690
  part: "navigation",
475
- subject: fullyQualifiedId(object)
691
+ subject: Obj.getDXN(object).toString()
476
692
  }));
477
693
  },
478
694
  properties: {
479
695
  label: [
480
696
  "expose object label",
481
697
  {
482
- ns: SPACE_PLUGIN
698
+ ns: meta.id
483
699
  }
484
700
  ],
485
701
  icon: "ph--eye--regular",
@@ -490,6 +706,16 @@ var constructObjectActions = ({ object, graph, dispatch, objectForms, navigable
490
706
  ];
491
707
  return actions;
492
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
+ };
493
719
  var getNestedObjects = async (object, resolve) => {
494
720
  const type = Obj.getTypename(object);
495
721
  if (!type) {
@@ -514,7 +740,7 @@ var cloneObject = async (object, resolve, newSpace) => {
514
740
  const serializer = metadata.serializer;
515
741
  invariant(serializer, `No serializer for type: ${typename}`, {
516
742
  F: __dxlog_file,
517
- L: 570,
743
+ L: 792,
518
744
  S: void 0,
519
745
  A: [
520
746
  "serializer",
@@ -535,13 +761,15 @@ export {
535
761
  SPACES,
536
762
  COMPOSER_SPACE_LOCK,
537
763
  SHARED,
538
- rxFromQuery,
764
+ atomFromQuery,
539
765
  getSpaceDisplayName,
540
766
  constructSpaceNode,
541
767
  constructSpaceActions,
768
+ createStaticSchemaNode,
769
+ createStaticSchemaActions,
542
770
  createObjectNode,
543
771
  constructObjectActions,
544
772
  getNestedObjects,
545
773
  cloneObject
546
774
  };
547
- //# sourceMappingURL=chunk-HJJHLWKY.mjs.map
775
+ //# sourceMappingURL=chunk-OK2L7N2F.mjs.map