@dxos/plugin-space 0.8.4-main.1f223c7 → 0.8.4-main.2c6827d

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