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