@dxos/plugin-space 0.8.4-main.2e9d522 → 0.8.4-main.3c1ae3b

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 (389) 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/ObjectCardStack-TE7AWPMH.mjs +144 -0
  4. package/dist/lib/browser/ObjectCardStack-TE7AWPMH.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectDetails-666IBRHE.mjs +144 -0
  6. package/dist/lib/browser/ObjectDetails-666IBRHE.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs +116 -0
  8. package/dist/lib/browser/RecordArticle-2PFEBPXY.mjs.map +7 -0
  9. package/dist/lib/browser/app-graph-builder-USKWFIDK.mjs +551 -0
  10. package/dist/lib/browser/app-graph-builder-USKWFIDK.mjs.map +7 -0
  11. package/dist/lib/browser/{app-graph-serializer-H6AW7KGS.mjs → app-graph-serializer-SXIQ425K.mjs} +19 -19
  12. package/dist/lib/browser/app-graph-serializer-SXIQ425K.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-VLBRSGJ2.mjs → chunk-5CSSKOWR.mjs} +42 -16
  14. package/dist/lib/browser/chunk-5CSSKOWR.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-C6DAPIFF.mjs +20 -0
  16. package/dist/lib/browser/chunk-C6DAPIFF.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-E4BEMEZ3.mjs +399 -0
  18. package/dist/lib/browser/chunk-E4BEMEZ3.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-XUYKJUU7.mjs → chunk-IJCMB5B5.mjs} +269 -145
  20. package/dist/lib/browser/chunk-IJCMB5B5.mjs.map +7 -0
  21. package/dist/lib/browser/{chunk-QACNNDOT.mjs → chunk-POFUXISV.mjs} +69 -62
  22. package/dist/lib/browser/chunk-POFUXISV.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-V7MJSSBQ.mjs → chunk-XKQCDLXX.mjs} +734 -615
  28. package/dist/lib/browser/chunk-XKQCDLXX.mjs.map +7 -0
  29. package/dist/lib/browser/{identity-created-23XJJV2N.mjs → identity-created-NAXTPQXE.mjs} +6 -6
  30. package/dist/lib/browser/identity-created-NAXTPQXE.mjs.map +7 -0
  31. package/dist/lib/browser/index.mjs +92 -139
  32. package/dist/lib/browser/index.mjs.map +3 -3
  33. package/dist/lib/browser/{intent-resolver-TIXVDYN7.mjs → intent-resolver-QEIM7NQT.mjs} +118 -109
  34. package/dist/lib/browser/intent-resolver-QEIM7NQT.mjs.map +7 -0
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/react-root-T6ZETLD2.mjs +30 -0
  37. package/dist/lib/browser/react-root-T6ZETLD2.mjs.map +7 -0
  38. package/dist/lib/browser/{react-surface-TPNLWJJH.mjs → react-surface-MLN5BZ2G.mjs} +120 -120
  39. package/dist/lib/browser/react-surface-MLN5BZ2G.mjs.map +7 -0
  40. package/dist/lib/browser/repair-CNLE35NF.mjs +44 -0
  41. package/dist/lib/browser/repair-CNLE35NF.mjs.map +7 -0
  42. package/dist/lib/browser/{settings-4IMP5RYT.mjs → settings-EGTCHS7U.mjs} +5 -5
  43. package/dist/lib/browser/{settings-4IMP5RYT.mjs.map → settings-EGTCHS7U.mjs.map} +1 -1
  44. package/dist/lib/browser/{spaces-ready-TOPG6IV4.mjs → spaces-ready-YS4BBZXW.mjs} +29 -20
  45. package/dist/lib/browser/spaces-ready-YS4BBZXW.mjs.map +7 -0
  46. package/dist/lib/browser/{state-QYZAB45H.mjs → state-C7N6EDDZ.mjs} +7 -7
  47. package/dist/lib/browser/state-C7N6EDDZ.mjs.map +7 -0
  48. package/dist/lib/browser/types/index.mjs +10 -4
  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/ObjectCardStack-AAKMAQ6T.mjs +145 -0
  52. package/dist/lib/node-esm/ObjectCardStack-AAKMAQ6T.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectDetails-TZ5YKXGN.mjs +145 -0
  54. package/dist/lib/node-esm/ObjectDetails-TZ5YKXGN.mjs.map +7 -0
  55. package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs +117 -0
  56. package/dist/lib/node-esm/RecordArticle-SSJ7PULS.mjs.map +7 -0
  57. package/dist/lib/node-esm/app-graph-builder-QRQ5EQLB.mjs +552 -0
  58. package/dist/lib/node-esm/app-graph-builder-QRQ5EQLB.mjs.map +7 -0
  59. package/dist/lib/node-esm/{app-graph-serializer-2ICUGQQT.mjs → app-graph-serializer-P2X4W7LI.mjs} +19 -19
  60. package/dist/lib/node-esm/app-graph-serializer-P2X4W7LI.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-4AOMYKDE.mjs → chunk-3D4NGZPW.mjs} +269 -145
  62. package/dist/lib/node-esm/chunk-3D4NGZPW.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-P442DOQ3.mjs → chunk-AX3UGL5D.mjs} +69 -62
  64. package/dist/lib/node-esm/chunk-AX3UGL5D.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-QQQE2ZCX.mjs +400 -0
  70. package/dist/lib/node-esm/chunk-QQQE2ZCX.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-SSLBYZEY.mjs → chunk-UMZ7G6G4.mjs} +41 -16
  72. package/dist/lib/node-esm/chunk-UMZ7G6G4.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-WWGV5FJM.mjs +21 -0
  74. package/dist/lib/node-esm/chunk-WWGV5FJM.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-6X5DLJM5.mjs → chunk-XD532BVR.mjs} +734 -615
  76. package/dist/lib/node-esm/chunk-XD532BVR.mjs.map +7 -0
  77. package/dist/lib/node-esm/{identity-created-IJQO6GCR.mjs → identity-created-OXLKCJE3.mjs} +6 -6
  78. package/dist/lib/node-esm/identity-created-OXLKCJE3.mjs.map +7 -0
  79. package/dist/lib/node-esm/index.mjs +92 -139
  80. package/dist/lib/node-esm/index.mjs.map +3 -3
  81. package/dist/lib/node-esm/{intent-resolver-MHGHRGDT.mjs → intent-resolver-ZWCBVABN.mjs} +118 -109
  82. package/dist/lib/node-esm/intent-resolver-ZWCBVABN.mjs.map +7 -0
  83. package/dist/lib/node-esm/meta.json +1 -1
  84. package/dist/lib/node-esm/{react-root-KW3TGJGY.mjs → react-root-SKB4UJ4K.mjs} +13 -12
  85. package/dist/lib/node-esm/react-root-SKB4UJ4K.mjs.map +7 -0
  86. package/dist/lib/node-esm/{react-surface-UUIUUD6P.mjs → react-surface-BVZGNSBB.mjs} +120 -120
  87. package/dist/lib/node-esm/react-surface-BVZGNSBB.mjs.map +7 -0
  88. package/dist/lib/node-esm/repair-EHZS6MFY.mjs +45 -0
  89. package/dist/lib/node-esm/repair-EHZS6MFY.mjs.map +7 -0
  90. package/dist/lib/node-esm/{settings-SAOBPND3.mjs → settings-N3F6JCIR.mjs} +5 -5
  91. package/dist/lib/node-esm/{settings-SAOBPND3.mjs.map → settings-N3F6JCIR.mjs.map} +1 -1
  92. package/dist/lib/node-esm/{spaces-ready-HIUKNDZK.mjs → spaces-ready-U2K5P4LB.mjs} +29 -20
  93. package/dist/lib/node-esm/spaces-ready-U2K5P4LB.mjs.map +7 -0
  94. package/dist/lib/node-esm/{state-ZVEHQ4BJ.mjs → state-45TXZQJ6.mjs} +7 -7
  95. package/dist/lib/node-esm/state-45TXZQJ6.mjs.map +7 -0
  96. package/dist/lib/node-esm/types/index.mjs +10 -4
  97. package/dist/types/src/SpacePlugin.d.ts +1 -1
  98. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  100. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/app-graph-serializer.d.ts +1 -1
  102. package/dist/types/src/capabilities/capabilities.d.ts +14 -8
  103. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/identity-created.d.ts +1 -1
  105. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/index.d.ts +11 -12
  107. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  109. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/react-root.d.ts +2 -2
  111. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  113. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/repair.d.ts +4 -0
  115. package/dist/types/src/capabilities/repair.d.ts.map +1 -0
  116. package/dist/types/src/capabilities/settings.d.ts +1 -1
  117. package/dist/types/src/capabilities/spaces-ready.d.ts +1 -1
  118. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  119. package/dist/types/src/capabilities/state.d.ts +1 -1
  120. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  121. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  122. package/dist/types/src/components/CollectionArticle.d.ts +6 -0
  123. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  124. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  125. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  126. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +3 -3
  127. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  128. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1588 -4
  129. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +18 -9
  131. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  132. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  133. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  134. package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
  135. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  136. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  137. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  138. package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
  139. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  140. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1591 -0
  141. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
  142. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  143. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  144. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts +8 -0
  145. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
  146. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts +9 -0
  147. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +1 -0
  148. package/dist/types/src/components/ObjectCardStack/index.d.ts +3 -0
  149. package/dist/types/src/components/ObjectCardStack/index.d.ts.map +1 -0
  150. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.d.ts +2 -2
  151. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -0
  152. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +1424 -0
  153. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -0
  154. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts +8 -0
  155. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +1 -0
  156. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts +8 -0
  157. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +1 -0
  158. package/dist/types/src/components/ObjectDetails/index.d.ts +3 -0
  159. package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -0
  160. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  161. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  162. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  163. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  164. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  165. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  166. package/dist/types/src/components/RecordArticle.stories.d.ts +1591 -0
  167. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  168. package/dist/types/src/components/SchemaContainer.d.ts +2 -2
  169. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  170. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  171. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +6 -5
  172. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  173. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1421 -0
  174. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
  175. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  176. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  177. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  178. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  179. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  180. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  181. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +1 -1
  182. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  183. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1421 -4
  184. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  185. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  186. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1422 -5
  187. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  188. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  189. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  190. package/dist/types/src/components/index.d.ts +10 -12
  191. package/dist/types/src/components/index.d.ts.map +1 -1
  192. package/dist/types/src/events.d.ts.map +1 -1
  193. package/dist/types/src/helpers/index.d.ts +2 -0
  194. package/dist/types/src/helpers/index.d.ts.map +1 -0
  195. package/dist/types/src/helpers/query.d.ts +7 -0
  196. package/dist/types/src/helpers/query.d.ts.map +1 -0
  197. package/dist/types/src/helpers/query.test.d.ts +2 -0
  198. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  199. package/dist/types/src/hooks/index.d.ts +1 -0
  200. package/dist/types/src/hooks/index.d.ts.map +1 -1
  201. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  202. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -8
  203. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  204. package/dist/types/src/hooks/usePath.d.ts +1 -1
  205. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  206. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  207. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  208. package/dist/types/src/index.d.ts +1 -0
  209. package/dist/types/src/index.d.ts.map +1 -1
  210. package/dist/types/src/meta.d.ts +0 -1
  211. package/dist/types/src/meta.d.ts.map +1 -1
  212. package/dist/types/src/translations.d.ts +1261 -67
  213. package/dist/types/src/translations.d.ts.map +1 -1
  214. package/dist/types/src/types/form.d.ts +22 -0
  215. package/dist/types/src/types/form.d.ts.map +1 -0
  216. package/dist/types/src/types/index.d.ts +1 -0
  217. package/dist/types/src/types/index.d.ts.map +1 -1
  218. package/dist/types/src/types/types.d.ts +96 -157
  219. package/dist/types/src/types/types.d.ts.map +1 -1
  220. package/dist/types/src/util.d.ts +25 -36
  221. package/dist/types/src/util.d.ts.map +1 -1
  222. package/dist/types/tsconfig.tsbuildinfo +1 -1
  223. package/package.json +70 -59
  224. package/src/SpacePlugin.ts +182 -222
  225. package/src/capabilities/app-graph-builder.ts +271 -246
  226. package/src/capabilities/app-graph-serializer.ts +12 -12
  227. package/src/capabilities/capabilities.ts +28 -17
  228. package/src/capabilities/identity-created.ts +3 -3
  229. package/src/capabilities/index.ts +1 -2
  230. package/src/capabilities/intent-resolver.ts +92 -81
  231. package/src/capabilities/react-root.tsx +6 -4
  232. package/src/capabilities/react-surface.tsx +127 -155
  233. package/src/capabilities/repair.ts +57 -0
  234. package/src/capabilities/spaces-ready.ts +38 -17
  235. package/src/capabilities/state.ts +5 -4
  236. package/src/components/AwaitingObject.tsx +12 -14
  237. package/src/components/{CollectionMain.tsx → CollectionArticle.tsx} +7 -6
  238. package/src/components/CollectionSection.tsx +8 -6
  239. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +17 -16
  240. package/src/components/CreateDialog/CreateObjectDialog.tsx +74 -46
  241. package/src/components/CreateDialog/CreateObjectPanel.tsx +65 -43
  242. package/src/components/CreateDialog/CreateSpaceDialog.tsx +45 -22
  243. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +26 -10
  244. package/src/components/JoinDialog/index.ts +5 -0
  245. package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
  246. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +22 -21
  247. package/src/components/MembersContainer/index.ts +5 -0
  248. package/src/components/MenuFooter.tsx +2 -2
  249. package/src/components/ObjectCardStack/ObjectCardStack.tsx +64 -0
  250. package/src/components/ObjectCardStack/ObjectForm.tsx +90 -0
  251. package/src/components/ObjectCardStack/index.ts +7 -0
  252. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +63 -0
  253. package/src/components/ObjectDetails/BaseObjectSettings.tsx +118 -0
  254. package/src/components/{ObjectSettings → ObjectDetails}/ForeignKeys.tsx +8 -8
  255. package/src/components/ObjectDetails/ObjectDetails.tsx +35 -0
  256. package/src/components/ObjectDetails/index.ts +7 -0
  257. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +10 -16
  258. package/src/components/ObjectRenamePopover/index.ts +5 -0
  259. package/src/components/RecordArticle.stories.tsx +115 -0
  260. package/src/components/RecordArticle.tsx +114 -0
  261. package/src/components/SchemaContainer.tsx +26 -29
  262. package/src/components/SpacePluginSettings.tsx +16 -11
  263. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +24 -23
  264. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +22 -17
  265. package/src/components/SpacePresence/index.ts +5 -0
  266. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +7 -6
  267. package/src/components/SpaceRenamePopover/index.ts +5 -0
  268. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +17 -9
  269. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +190 -155
  270. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  271. package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -9
  272. package/src/components/SyncStatus/SyncStatus.tsx +109 -12
  273. package/src/components/ViewEditor.tsx +56 -23
  274. package/src/components/index.ts +7 -7
  275. package/src/events.ts +7 -7
  276. package/src/helpers/index.ts +5 -0
  277. package/src/helpers/query.test.ts +24 -0
  278. package/src/helpers/query.ts +152 -0
  279. package/src/hooks/index.ts +1 -0
  280. package/src/hooks/useActiveSpace.ts +3 -2
  281. package/src/hooks/useInputSurfaceLookup.tsx +9 -13
  282. package/src/hooks/usePath.ts +1 -1
  283. package/src/hooks/useTypeOptions.ts +25 -0
  284. package/src/index.ts +1 -0
  285. package/src/meta.ts +6 -3
  286. package/src/translations.ts +68 -58
  287. package/src/types/form.ts +69 -0
  288. package/src/types/index.ts +1 -0
  289. package/src/types/types.ts +51 -52
  290. package/src/util.tsx +269 -147
  291. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  292. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +0 -88
  293. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
  294. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs +0 -479
  295. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +0 -7
  296. package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
  297. package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
  298. package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
  299. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  300. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  301. package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
  302. package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
  303. package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
  304. package/dist/lib/browser/chunk-SGTQ52SU.mjs +0 -338
  305. package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
  306. package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +0 -7
  307. package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
  308. package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
  309. package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +0 -7
  310. package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +0 -7
  311. package/dist/lib/browser/react-root-N2J7TDRX.mjs +0 -29
  312. package/dist/lib/browser/react-root-N2J7TDRX.mjs.map +0 -7
  313. package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +0 -7
  314. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs +0 -26
  315. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
  316. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  317. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  318. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
  319. package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
  320. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  321. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +0 -89
  322. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
  323. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs +0 -480
  324. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +0 -7
  325. package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
  326. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
  327. package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
  328. package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
  329. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
  330. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
  331. package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +0 -7
  332. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  333. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  334. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs +0 -339
  335. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
  336. package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
  337. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
  338. package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +0 -7
  339. package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +0 -7
  340. package/dist/lib/node-esm/react-root-KW3TGJGY.mjs.map +0 -7
  341. package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +0 -7
  342. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs +0 -27
  343. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
  344. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  345. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  346. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
  347. package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
  348. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  349. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  350. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  351. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  352. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  353. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  354. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  355. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  356. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  357. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  358. package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
  359. package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
  360. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  361. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  362. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +0 -7
  363. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  364. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
  365. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +0 -8
  366. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
  367. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +0 -8
  368. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
  369. package/dist/types/src/components/ObjectSettings/index.d.ts +0 -2
  370. package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
  371. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  372. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  373. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  374. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  375. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  376. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  377. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  378. package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
  379. package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
  380. package/src/capabilities/schema-defs.ts +0 -30
  381. package/src/capabilities/schema-tool.test.ts +0 -44
  382. package/src/capabilities/schema-tools.ts +0 -125
  383. package/src/components/MembersContainer.stories.tsx +0 -30
  384. package/src/components/ObjectDetailsPanel.tsx +0 -77
  385. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +0 -80
  386. package/src/components/ObjectSettings/BaseObjectSettings.tsx +0 -47
  387. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +0 -36
  388. package/src/components/ObjectSettings/index.ts +0 -5
  389. package/src/components/PersistenceStatus.tsx +0 -83
@@ -1,480 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- getActiveSpace
4
- } from "./chunk-SSLBYZEY.mjs";
5
- import {
6
- SpaceCapabilities
7
- } from "./chunk-5T3ZH23B.mjs";
8
- import {
9
- SHARED,
10
- SPACES,
11
- constructObjectActions,
12
- constructSpaceActions,
13
- constructSpaceNode,
14
- createObjectNode,
15
- createStaticSchemaActions,
16
- createStaticSchemaNode,
17
- rxFromQuery
18
- } from "./chunk-4AOMYKDE.mjs";
19
- import {
20
- SPACE_TYPE,
21
- SpaceAction
22
- } from "./chunk-JH6F4C3I.mjs";
23
- import {
24
- SPACE_PLUGIN
25
- } from "./chunk-HWNG4MEU.mjs";
26
-
27
- // src/capabilities/app-graph-builder.ts
28
- import { Rx } from "@effect-rx/rx-react";
29
- import { Array, Option, pipe, Schema } from "effect";
30
- import { Capabilities, contributes, createIntent } from "@dxos/app-framework";
31
- import { getSpace, SpaceState, isSpace } from "@dxos/client/echo";
32
- import { Filter, Obj, Query, Type } from "@dxos/echo";
33
- import { log } from "@dxos/log";
34
- import { ClientCapabilities } from "@dxos/plugin-client";
35
- import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from "@dxos/plugin-deck/types";
36
- import { createExtension, rxFromObservable, ROOT_ID, rxFromSignal } from "@dxos/plugin-graph";
37
- import { DataType } from "@dxos/schema";
38
- import { isNonNullable } from "@dxos/util";
39
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/capabilities/app-graph-builder.ts";
40
- var app_graph_builder_default = (context) => {
41
- const resolve = (typename) => context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
42
- const spacesNode = {
43
- id: SPACES,
44
- type: SPACES,
45
- cacheable: [
46
- "label",
47
- "role"
48
- ],
49
- properties: {
50
- label: [
51
- "spaces label",
52
- {
53
- ns: SPACE_PLUGIN
54
- }
55
- ],
56
- icon: "ph--planet--regular",
57
- testId: "spacePlugin.spaces",
58
- role: "branch",
59
- disposition: "collection",
60
- disabled: true,
61
- childrenPersistenceClass: "echo",
62
- onRearrangeChildren: async (nextOrder) => {
63
- const { graph } = context.getCapability(Capabilities.AppGraph);
64
- const client = context.getCapability(ClientCapabilities.Client);
65
- graph.sortEdges(SPACES, "outbound", nextOrder.map(({ id }) => id));
66
- const { objects: [spacesOrder] } = await client.spaces.default.db.query(Filter.type(Type.Expando, {
67
- key: SHARED
68
- })).run();
69
- if (spacesOrder) {
70
- spacesOrder.order = nextOrder.map(({ id }) => id);
71
- } else {
72
- log.warn("spaces order object not found", void 0, {
73
- F: __dxlog_file,
74
- L: 70,
75
- S: void 0,
76
- C: (f, a) => f(...a)
77
- });
78
- }
79
- }
80
- }
81
- };
82
- return contributes(Capabilities.AppGraphBuilder, [
83
- // Primary actions.
84
- createExtension({
85
- id: `${SPACE_PLUGIN}/primary-actions`,
86
- position: "hoist",
87
- actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
88
- {
89
- id: SpaceAction.OpenCreateSpace._tag,
90
- data: async () => {
91
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
92
- await dispatch(createIntent(SpaceAction.OpenCreateSpace));
93
- },
94
- properties: {
95
- label: [
96
- "create space label",
97
- {
98
- ns: SPACE_PLUGIN
99
- }
100
- ],
101
- icon: "ph--plus--regular",
102
- testId: "spacePlugin.createSpace",
103
- disposition: "menu"
104
- }
105
- },
106
- {
107
- id: SpaceAction.Join._tag,
108
- data: async () => {
109
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
110
- await dispatch(createIntent(SpaceAction.Join));
111
- },
112
- properties: {
113
- label: [
114
- "join space label",
115
- {
116
- ns: SPACE_PLUGIN
117
- }
118
- ],
119
- icon: "ph--sign-in--regular",
120
- testId: "spacePlugin.joinSpace",
121
- disposition: "menu"
122
- }
123
- },
124
- {
125
- id: SpaceAction.OpenMembers._tag,
126
- data: async () => {
127
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
128
- const client = context.getCapability(ClientCapabilities.Client);
129
- const space = getActiveSpace(context) ?? client.spaces.default;
130
- await dispatch(createIntent(SpaceAction.OpenMembers, {
131
- space
132
- }));
133
- },
134
- properties: {
135
- label: [
136
- "share space label",
137
- {
138
- ns: SPACE_PLUGIN
139
- }
140
- ],
141
- icon: "ph--users--regular",
142
- testId: "spacePlugin.shareSpace",
143
- keyBinding: {
144
- macos: "meta+.",
145
- windows: "alt+."
146
- }
147
- }
148
- },
149
- {
150
- id: SpaceAction.OpenSettings._tag,
151
- data: async () => {
152
- const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
153
- const client = context.getCapability(ClientCapabilities.Client);
154
- const space = getActiveSpace(context) ?? client.spaces.default;
155
- await dispatch(createIntent(SpaceAction.OpenSettings, {
156
- space
157
- }));
158
- },
159
- properties: {
160
- label: [
161
- "open current space settings label",
162
- {
163
- ns: SPACE_PLUGIN
164
- }
165
- ],
166
- icon: "ph--faders--regular",
167
- keyBinding: {
168
- macos: "meta+shift+,",
169
- windows: "ctrl+shift+,"
170
- }
171
- }
172
- }
173
- ]), Option.getOrElse(() => [])))
174
- }),
175
- // Create spaces group node.
176
- createExtension({
177
- id: `${SPACE_PLUGIN}/root`,
178
- position: "hoist",
179
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => [
180
- spacesNode
181
- ]), Option.getOrElse(() => [])))
182
- }),
183
- // Create space nodes.
184
- createExtension({
185
- id: SPACES,
186
- connector: (node) => {
187
- let query;
188
- return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === SPACES ? Option.some(node2) : Option.none()), Option.map(() => {
189
- const state = context.getCapability(SpaceCapabilities.State);
190
- const client = context.getCapability(ClientCapabilities.Client);
191
- const spacesRx = rxFromObservable(client.spaces);
192
- const isReadyRx = rxFromObservable(client.spaces.isReady);
193
- const spaces = get(spacesRx);
194
- const isReady = get(isReadyRx);
195
- if (!spaces || !isReady) {
196
- return [];
197
- }
198
- const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore(SPACE_PLUGIN)?.value;
199
- try {
200
- if (!query) {
201
- query = client.spaces.default.db.query(Filter.type(Type.Expando, {
202
- key: SHARED
203
- }));
204
- }
205
- const [spacesOrder] = get(rxFromQuery(query));
206
- return get(rxFromSignal(() => {
207
- const order = spacesOrder?.order ?? [];
208
- const orderMap = new Map(order.map((id, index) => [
209
- id,
210
- index
211
- ]));
212
- return [
213
- ...spaces.filter((space) => orderMap.has(space.id)).sort((a, b) => orderMap.get(a.id) - orderMap.get(b.id)),
214
- ...spaces.filter((space) => !orderMap.has(space.id))
215
- ].filter((space) => settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE).map((space) => constructSpaceNode({
216
- space,
217
- navigable: state.navigableCollections,
218
- personal: space === client.spaces.default,
219
- namesCache: state.spaceNames,
220
- resolve
221
- }));
222
- }));
223
- } catch {
224
- return [];
225
- }
226
- }), Option.getOrElse(() => [])));
227
- }
228
- }),
229
- // Create space actions.
230
- createExtension({
231
- id: `${SPACE_PLUGIN}/actions`,
232
- actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.type === SPACE_TYPE && isSpace(node2.data) ? Option.some(node2.data) : Option.none()), Option.flatMap((space) => {
233
- const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
234
- const [client] = get(context.capabilities(ClientCapabilities.Client));
235
- const [state] = get(context.capabilities(SpaceCapabilities.State));
236
- if (!dispatcher || !client || !state) {
237
- return Option.none();
238
- } else {
239
- return Option.some({
240
- space,
241
- dispatch: dispatcher.dispatchPromise,
242
- personal: space === client.spaces.default,
243
- migrating: state.sdkMigrationRunning[space.id]
244
- });
245
- }
246
- }), Option.map((params) => constructSpaceActions(params)), Option.getOrElse(() => [])))
247
- }),
248
- // Create nodes for objects in the root collection of a space.
249
- createExtension({
250
- id: `${SPACE_PLUGIN}/root-collection`,
251
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.type === SPACE_TYPE && isSpace(node2.data) ? Option.some(node2.data) : Option.none()), Option.map((space) => {
252
- const state = context.getCapability(SpaceCapabilities.State);
253
- const spaceState = get(rxFromObservable(space.state));
254
- if (spaceState !== SpaceState.SPACE_READY) {
255
- return [];
256
- }
257
- const collection = get(rxFromSignal(() => space.properties[DataType.Collection.typename]?.target));
258
- if (!collection) {
259
- return [];
260
- }
261
- return get(rxFromSignal(() => pipe(collection.objects, Array.map((object) => object.target), Array.filter(isNonNullable), Array.map((object) => createObjectNode({
262
- space,
263
- object,
264
- resolve,
265
- navigable: state.navigableCollections
266
- })), Array.filter(isNonNullable))));
267
- }), Option.getOrElse(() => [])))
268
- }),
269
- // Create nodes for objects in a collection or by its fully qualified id.
270
- createExtension({
271
- id: `${SPACE_PLUGIN}/objects`,
272
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.Collection, node2.data) ? Option.some(node2.data) : Option.none()), Option.map((collection) => {
273
- const state = context.getCapability(SpaceCapabilities.State);
274
- const space = getSpace(collection);
275
- return get(rxFromSignal(() => pipe(collection.objects, Array.map((object) => object.target), Array.filter(isNonNullable), Array.map((object) => space && createObjectNode({
276
- object,
277
- space,
278
- resolve,
279
- navigable: state.navigableCollections
280
- })), Array.filter(isNonNullable))));
281
- }), Option.getOrElse(() => [])))
282
- }),
283
- // Create nodes for objects in a query collection.
284
- createExtension({
285
- id: `${SPACE_PLUGIN}/query-collection-objects`,
286
- connector: (node) => {
287
- let query;
288
- return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.QueryCollection, node2.data) ? Option.some(node2.data) : Option.none()), Option.flatMap((collection) => {
289
- const space = getSpace(collection);
290
- return collection.query.typename && space ? Option.some({
291
- typename: collection.query.typename,
292
- space
293
- }) : Option.none();
294
- }), Option.map(({ typename, space }) => {
295
- const state = context.getCapability(SpaceCapabilities.State);
296
- if (!query) {
297
- query = space.db.query(Query.without(
298
- Query.select(Filter.typename(typename)),
299
- // TODO(wittjosiah): This query is broader than it should be.
300
- // It will return all objects in the collection, not just the ones of the given type.
301
- // However this works fine for now because this query is only used for exclusions.
302
- Query.select(Filter.typename(typename)).referencedBy(DataType.Collection, "objects").reference("objects")
303
- ));
304
- }
305
- return get(rxFromQuery(query)).map((object) => get(rxFromSignal(() => createObjectNode({
306
- object,
307
- space,
308
- resolve,
309
- droppable: false,
310
- navigable: state.navigableCollections
311
- })))).filter(isNonNullable);
312
- }), Option.getOrElse(() => [])));
313
- }
314
- }),
315
- // Static schema records.
316
- createExtension({
317
- id: `${SPACE_PLUGIN}/static-schemas`,
318
- connector: (node) => {
319
- const client = context.getCapability(ClientCapabilities.Client);
320
- return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.QueryCollection, node2.data) && node2.data.query.typename === DataType.StoredSchema.typename ? Option.some(node2.data) : Option.none()), Option.flatMap((collection) => {
321
- const space = getSpace(collection);
322
- return space?.properties.staticRecords ? Option.some(space) : Option.none();
323
- }), Option.map((space) => {
324
- return get(rxFromSignal(() => space.properties.staticRecords ?? [])).map((typename) => client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename)).filter(isNonNullable).map((schema) => createStaticSchemaNode({
325
- schema,
326
- space
327
- }));
328
- }), Option.getOrElse(() => [])));
329
- }
330
- }),
331
- // Create static schema actions.
332
- createExtension({
333
- id: `${SPACE_PLUGIN}/static-schema-actions`,
334
- actions: (node) => {
335
- let query;
336
- return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
337
- const space = isSpace(node2.properties.space) ? node2.properties.space : void 0;
338
- return space && Schema.isSchema(node2.data) ? Option.some({
339
- space,
340
- schema: node2.data
341
- }) : Option.none();
342
- }), Option.map(({ space, schema }) => {
343
- if (!query) {
344
- query = space.db.query(Filter.type(DataType.View));
345
- }
346
- const views = get(rxFromQuery(query));
347
- const filteredViews = get(rxFromSignal(() => (
348
- // TODO(wittjosiah): Remove cast.
349
- views.filter((view) => view.query.typename === Type.getTypename(schema))
350
- )));
351
- const deletable = filteredViews.length === 0;
352
- return createStaticSchemaActions({
353
- schema,
354
- space,
355
- deletable
356
- });
357
- }), Option.getOrElse(() => [])));
358
- }
359
- }),
360
- // Create nodes for schema views.
361
- createExtension({
362
- id: `${SPACE_PLUGIN}/schema-views`,
363
- connector: (node) => {
364
- let query;
365
- return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
366
- const space = getSpace(node2.data) ?? (isSpace(node2.properties.space) ? node2.properties.space : void 0);
367
- return space && (Obj.instanceOf(DataType.StoredSchema, node2.data) || Schema.isSchema(node2.data)) ? Option.some({
368
- space,
369
- schema: node2.data
370
- }) : Option.none();
371
- }), Option.map(({ space, schema }) => {
372
- if (!query) {
373
- query = space.db.query(Filter.type(DataType.View));
374
- }
375
- const typename = Schema.isSchema(schema) ? Type.getTypename(schema) : schema.typename;
376
- return get(rxFromQuery(query)).filter((view) => view.query.typename === typename).map((view) => get(rxFromSignal(() => createObjectNode({
377
- object: view,
378
- space,
379
- resolve,
380
- droppable: false
381
- })))).filter(isNonNullable);
382
- }), Option.getOrElse(() => [])));
383
- }
384
- }),
385
- // Create collection actions and action groups.
386
- createExtension({
387
- id: `${SPACE_PLUGIN}/object-actions`,
388
- actions: (node) => {
389
- let query;
390
- return Rx.make((get) => pipe(get(node), Option.flatMap((node2) => {
391
- const space = getSpace(node2.data);
392
- return space && Obj.isObject(node2.data) ? Option.some({
393
- space,
394
- object: node2.data
395
- }) : Option.none();
396
- }), Option.flatMap(({ space, object }) => {
397
- const isSchema = Obj.instanceOf(DataType.StoredSchema, object);
398
- if (!query && isSchema) {
399
- query = space.db.query(Filter.type(DataType.View));
400
- }
401
- let deletable = !isSchema;
402
- if (isSchema && query) {
403
- const views = get(rxFromQuery(query));
404
- const filteredViews = get(rxFromSignal(() => views.filter((view) => view.query.typename === object.typename)));
405
- deletable = filteredViews.length === 0;
406
- }
407
- const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));
408
- const [appGraph] = get(context.capabilities(Capabilities.AppGraph));
409
- const [state] = get(context.capabilities(SpaceCapabilities.State));
410
- const objectForms = get(context.capabilities(SpaceCapabilities.ObjectForm));
411
- if (!dispatcher || !appGraph || !state) {
412
- return Option.none();
413
- } else {
414
- return Option.some({
415
- object,
416
- graph: appGraph.graph,
417
- dispatch: dispatcher.dispatchPromise,
418
- objectForms,
419
- deletable,
420
- navigable: get(rxFromSignal(() => state.navigableCollections))
421
- });
422
- }
423
- }), Option.map((params) => constructObjectActions(params)), Option.getOrElse(() => [])));
424
- }
425
- }),
426
- // View selected objects.
427
- createExtension({
428
- id: `${SPACE_PLUGIN}/selected-objects`,
429
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.instanceOf(DataType.View, node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
430
- {
431
- id: [
432
- node2.id,
433
- "selected-objects"
434
- ].join(ATTENDABLE_PATH_SEPARATOR),
435
- type: PLANK_COMPANION_TYPE,
436
- data: "selected-objects",
437
- properties: {
438
- label: [
439
- "companion selected objects label",
440
- {
441
- ns: SPACE_PLUGIN
442
- }
443
- ],
444
- icon: "ph--tree-view--regular",
445
- disposition: "hidden"
446
- }
447
- }
448
- ]), Option.getOrElse(() => [])))
449
- }),
450
- // Object settings plank companion.
451
- createExtension({
452
- id: `${SPACE_PLUGIN}/settings`,
453
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => Obj.isObject(node2.data) ? Option.some(node2) : Option.none()), Option.map((node2) => [
454
- {
455
- id: [
456
- node2.id,
457
- "settings"
458
- ].join(ATTENDABLE_PATH_SEPARATOR),
459
- type: PLANK_COMPANION_TYPE,
460
- data: "settings",
461
- properties: {
462
- label: [
463
- "object settings label",
464
- {
465
- ns: SPACE_PLUGIN
466
- }
467
- ],
468
- icon: "ph--sliders--regular",
469
- disposition: "hidden",
470
- position: "fallback"
471
- }
472
- }
473
- ]), Option.getOrElse(() => [])))
474
- })
475
- ]);
476
- };
477
- export {
478
- app_graph_builder_default as default
479
- };
480
- //# sourceMappingURL=app-graph-builder-KGIGWC72.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Array, Option, pipe, Schema } from 'effect';\n\nimport { Capabilities, contributes, createIntent, type PluginContext } from '@dxos/app-framework';\nimport { getSpace, SpaceState, type Space, isSpace, type QueryResult } from '@dxos/client/echo';\nimport { Filter, Obj, Query, Type } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport { createExtension, rxFromObservable, ROOT_ID, rxFromSignal } from '@dxos/plugin-graph';\nimport { DataType } from '@dxos/schema';\nimport { isNonNullable } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { getActiveSpace } from '../hooks';\nimport { SPACE_PLUGIN } from '../meta';\nimport { SPACE_TYPE, SpaceAction, type SpaceSettingsProps } from '../types';\nimport {\n constructObjectActions,\n constructSpaceActions,\n constructSpaceNode,\n createObjectNode,\n createStaticSchemaActions,\n createStaticSchemaNode,\n rxFromQuery,\n SHARED,\n SPACES,\n} from '../util';\n\nexport default (context: PluginContext) => {\n // TODO(wittjosiah): Make reactive.\n const resolve = (typename: string) =>\n context.getCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};\n\n const spacesNode = {\n id: SPACES,\n type: SPACES,\n cacheable: ['label', 'role'],\n properties: {\n label: ['spaces label', { ns: SPACE_PLUGIN }],\n icon: 'ph--planet--regular',\n testId: 'spacePlugin.spaces',\n role: 'branch',\n disposition: 'collection',\n disabled: true,\n childrenPersistenceClass: 'echo',\n onRearrangeChildren: async (nextOrder: Space[]) => {\n const { graph } = context.getCapability(Capabilities.AppGraph);\n const client = context.getCapability(ClientCapabilities.Client);\n\n // NOTE: This is needed to ensure order is updated by next animation frame.\n // TODO(wittjosiah): Is there a better way to do this?\n // If not, graph should be passed as an argument to the extension.\n graph.sortEdges(\n SPACES,\n 'outbound',\n nextOrder.map(({ id }) => id),\n );\n\n const {\n objects: [spacesOrder],\n } = await client.spaces.default.db.query(Filter.type(Type.Expando, { key: SHARED })).run();\n if (spacesOrder) {\n spacesOrder.order = nextOrder.map(({ id }) => id);\n } else {\n log.warn('spaces order object not found');\n }\n },\n },\n };\n\n return contributes(Capabilities.AppGraphBuilder, [\n // Primary actions.\n createExtension({\n id: `${SPACE_PLUGIN}/primary-actions`,\n position: 'hoist',\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: SpaceAction.OpenCreateSpace._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.OpenCreateSpace));\n },\n properties: {\n label: ['create space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--plus--regular',\n testId: 'spacePlugin.createSpace',\n disposition: 'menu',\n },\n },\n {\n id: SpaceAction.Join._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SpaceAction.Join));\n },\n properties: {\n label: ['join space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sign-in--regular',\n testId: 'spacePlugin.joinSpace',\n disposition: 'menu',\n },\n },\n {\n id: SpaceAction.OpenMembers._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const space = getActiveSpace(context) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenMembers, { space }));\n },\n properties: {\n label: ['share space label', { ns: SPACE_PLUGIN }],\n icon: 'ph--users--regular',\n testId: 'spacePlugin.shareSpace',\n keyBinding: {\n macos: 'meta+.',\n windows: 'alt+.',\n },\n },\n },\n {\n id: SpaceAction.OpenSettings._tag,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const space = getActiveSpace(context) ?? client.spaces.default;\n await dispatch(createIntent(SpaceAction.OpenSettings, { space }));\n },\n properties: {\n label: ['open current space settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--faders--regular',\n keyBinding: {\n macos: 'meta+shift+,',\n windows: 'ctrl+shift+,',\n },\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create spaces group node.\n createExtension({\n id: `${SPACE_PLUGIN}/root`,\n position: 'hoist',\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [spacesNode]),\n Option.getOrElse(() => []),\n ),\n ),\n // resolver: ({ id }) => (id === SPACES ? spacesNode : undefined),\n }),\n\n // Create space nodes.\n createExtension({\n id: SPACES,\n connector: (node) => {\n let query: QueryResult<Type.Expando> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === SPACES ? Option.some(node) : Option.none())),\n Option.map(() => {\n const state = context.getCapability(SpaceCapabilities.State);\n const client = context.getCapability(ClientCapabilities.Client);\n const spacesRx = rxFromObservable(client.spaces);\n const isReadyRx = rxFromObservable(client.spaces.isReady);\n\n const spaces = get(spacesRx);\n const isReady = get(isReadyRx);\n\n if (!spaces || !isReady) {\n return [];\n }\n\n const settings = get(context.capabilities(Capabilities.SettingsStore))[0]?.getStore<SpaceSettingsProps>(\n SPACE_PLUGIN,\n )?.value;\n\n // TODO(wittjosiah): During client reset, accessing default space throws.\n try {\n if (!query) {\n query = client.spaces.default.db.query(Filter.type(Type.Expando, { key: SHARED }));\n }\n const [spacesOrder] = get(rxFromQuery(query));\n return get(\n rxFromSignal(() => {\n const order: string[] = spacesOrder?.order ?? [];\n const orderMap = new Map(order.map((id, index) => [id, index]));\n return [\n ...spaces\n .filter((space) => orderMap.has(space.id))\n .sort((a, b) => orderMap.get(a.id)! - orderMap.get(b.id)!),\n ...spaces.filter((space) => !orderMap.has(space.id)),\n ]\n .filter((space) =>\n settings?.showHidden ? true : space.state.get() !== SpaceState.SPACE_INACTIVE,\n )\n .map((space) =>\n constructSpaceNode({\n space,\n navigable: state.navigableCollections,\n personal: space === client.spaces.default,\n namesCache: state.spaceNames,\n resolve,\n }),\n );\n }),\n );\n } catch {\n return [];\n }\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n // resolver: ({ id }) => {\n // if (id.length !== SPACE_ID_LENGTH) {\n // return;\n // }\n\n // const client = context.requestCapability(ClientCapabilities.Client);\n // const spaces = toSignal(\n // (onChange) => client.spaces.subscribe(() => onChange()).unsubscribe,\n // () => client.spaces.get(),\n // );\n\n // const isReady = toSignal(\n // (onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe,\n // () => client.spaces.isReady.get(),\n // );\n\n // if (!spaces || !isReady) {\n // return;\n // }\n\n // const space = spaces.find((space) => space.id === id);\n // if (!space) {\n // return;\n // }\n\n // if (space.state.get() === SpaceState.SPACE_INACTIVE) {\n // return false;\n // } else if (space.state.get() !== SpaceState.SPACE_READY) {\n // return undefined;\n // } else {\n // const state = context.requestCapability(SpaceCapabilities.State);\n // return constructSpaceNode({\n // space,\n // navigable: state.navigableCollections,\n // personal: space === client.spaces.default,\n // namesCache: state.spaceNames,\n // resolve,\n // });\n // }\n // },\n }),\n\n // Create space actions.\n createExtension({\n id: `${SPACE_PLUGIN}/actions`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.flatMap((space) => {\n const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));\n const [client] = get(context.capabilities(ClientCapabilities.Client));\n const [state] = get(context.capabilities(SpaceCapabilities.State));\n\n if (!dispatcher || !client || !state) {\n return Option.none();\n } else {\n return Option.some({\n space,\n dispatch: dispatcher.dispatchPromise,\n personal: space === client.spaces.default,\n migrating: state.sdkMigrationRunning[space.id],\n });\n }\n }),\n Option.map((params) => constructSpaceActions(params)),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create nodes for objects in the root collection of a space.\n createExtension({\n id: `${SPACE_PLUGIN}/root-collection`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((space) => {\n const state = context.getCapability(SpaceCapabilities.State);\n const spaceState = get(rxFromObservable(space.state));\n if (spaceState !== SpaceState.SPACE_READY) {\n return [];\n }\n\n const collection = get(\n rxFromSignal(\n () => space.properties[DataType.Collection.typename]?.target as DataType.Collection | undefined,\n ),\n );\n if (!collection) {\n return [];\n }\n\n return get(\n rxFromSignal(() =>\n pipe(\n collection.objects,\n Array.map((object) => object.target),\n Array.filter(isNonNullable),\n Array.map((object) =>\n createObjectNode({\n space,\n object,\n resolve,\n navigable: state.navigableCollections,\n }),\n ),\n Array.filter(isNonNullable),\n ),\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Create nodes for objects in a collection or by its fully qualified id.\n createExtension({\n id: `${SPACE_PLUGIN}/objects`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(DataType.Collection, node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((collection) => {\n const state = context.getCapability(SpaceCapabilities.State);\n const space = getSpace(collection);\n\n return get(\n rxFromSignal(() =>\n pipe(\n collection.objects,\n Array.map((object) => object.target),\n Array.filter(isNonNullable),\n Array.map(\n (object) =>\n space && createObjectNode({ object, space, resolve, navigable: state.navigableCollections }),\n ),\n Array.filter(isNonNullable),\n ),\n ),\n );\n }),\n Option.getOrElse(() => []),\n ),\n ),\n // resolver: ({ id }) => {\n // if (id.length !== FQ_ID_LENGTH) {\n // return;\n // }\n\n // const [spaceId, objectId] = id.split(':');\n // if (spaceId.length !== SPACE_ID_LENGTH && objectId.length !== OBJECT_ID_LENGTH) {\n // return;\n // }\n\n // const client = context.requestCapability(ClientCapabilities.Client);\n // const space = client.spaces.get().find((space) => space.id === spaceId);\n // if (!space) {\n // return;\n // }\n\n // const spaceState = toSignal(\n // (onChange) => space.state.subscribe(() => onChange()).unsubscribe,\n // () => space.state.get(),\n // space.id,\n // );\n // if (spaceState !== SpaceState.SPACE_READY) {\n // return;\n // }\n\n // const [object] = memoizeQuery(space, Query.select(Filter.ids(objectId)));\n // if (!object) {\n // return;\n // }\n\n // if (isDeleted(object)) {\n // return false;\n // } else {\n // const state = context.requestCapability(SpaceCapabilities.State);\n // return createObjectNode({ object, space, resolve, navigable: state.navigableCollections });\n // }\n // },\n }),\n\n // Create nodes for objects in a query collection.\n createExtension({\n id: `${SPACE_PLUGIN}/query-collection-objects`,\n connector: (node) => {\n let query: QueryResult<Type.Expando> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(DataType.QueryCollection, node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.flatMap((collection) => {\n const space = getSpace(collection);\n return collection.query.typename && space\n ? Option.some({ typename: collection.query.typename, space })\n : Option.none();\n }),\n Option.map(({ typename, space }) => {\n const state = context.getCapability(SpaceCapabilities.State);\n if (!query) {\n query = space.db.query(\n Query.without(\n Query.select(Filter.typename(typename)),\n // TODO(wittjosiah): This query is broader than it should be.\n // It will return all objects in the collection, not just the ones of the given type.\n // However this works fine for now because this query is only used for exclusions.\n Query.select(Filter.typename(typename))\n .referencedBy(DataType.Collection, 'objects')\n .reference('objects'),\n ),\n );\n }\n return get(rxFromQuery(query))\n .map((object) =>\n get(\n rxFromSignal(() =>\n createObjectNode({\n object,\n space,\n resolve,\n droppable: false, // Cannot rearrange query collections.\n navigable: state.navigableCollections,\n }),\n ),\n ),\n )\n .filter(isNonNullable);\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // Static schema records.\n createExtension({\n id: `${SPACE_PLUGIN}/static-schemas`,\n connector: (node) => {\n const client = context.getCapability(ClientCapabilities.Client);\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n Obj.instanceOf(DataType.QueryCollection, node.data) &&\n node.data.query.typename === DataType.StoredSchema.typename\n ? Option.some(node.data)\n : Option.none(),\n ),\n Option.flatMap((collection) => {\n const space = getSpace(collection);\n return space?.properties.staticRecords ? Option.some(space) : Option.none();\n }),\n Option.map((space) => {\n return get(rxFromSignal(() => (space.properties.staticRecords ?? []) as string[]))\n .map((typename) =>\n client.graph.schemaRegistry.schemas.find((schema) => Type.getTypename(schema) === typename),\n )\n .filter(isNonNullable)\n .map((schema) => createStaticSchemaNode({ schema, space }));\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // Create static schema actions.\n createExtension({\n id: `${SPACE_PLUGIN}/static-schema-actions`,\n actions: (node) => {\n let query: QueryResult<DataType.View> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n const space = isSpace(node.properties.space) ? node.properties.space : undefined;\n return space && Schema.isSchema(node.data) ? Option.some({ space, schema: node.data }) : Option.none();\n }),\n Option.map(({ space, schema }) => {\n if (!query) {\n // TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).\n query = space.db.query(Filter.type(DataType.View));\n }\n\n const views = get(rxFromQuery(query));\n const filteredViews = get(\n rxFromSignal(() =>\n // TODO(wittjosiah): Remove cast.\n views.filter((view) => view.query.typename === Type.getTypename(schema as Type.Obj.Any)),\n ),\n );\n const deletable = filteredViews.length === 0;\n\n // TODO(wittjosiah): Remove cast.\n return createStaticSchemaActions({ schema: schema as Type.Obj.Any, space, deletable });\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // Create nodes for schema views.\n createExtension({\n id: `${SPACE_PLUGIN}/schema-views`,\n connector: (node) => {\n let query: QueryResult<DataType.View> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n const space = getSpace(node.data) ?? (isSpace(node.properties.space) ? node.properties.space : undefined);\n return space && (Obj.instanceOf(DataType.StoredSchema, node.data) || Schema.isSchema(node.data))\n ? Option.some({ space, schema: node.data })\n : Option.none();\n }),\n Option.map(({ space, schema }) => {\n if (!query) {\n // TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).\n query = space.db.query(Filter.type(DataType.View));\n }\n\n // TODO(wittjosiah): Remove cast.\n const typename = Schema.isSchema(schema) ? Type.getTypename(schema as Type.Obj.Any) : schema.typename;\n return get(rxFromQuery(query))\n .filter((view) => view.query.typename === typename)\n .map((view) =>\n get(\n rxFromSignal(() =>\n createObjectNode({\n object: view,\n space,\n resolve,\n droppable: false,\n }),\n ),\n ),\n )\n .filter(isNonNullable);\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // Create collection actions and action groups.\n createExtension({\n id: `${SPACE_PLUGIN}/object-actions`,\n actions: (node) => {\n let query: QueryResult<DataType.View> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => {\n const space = getSpace(node.data);\n return space && Obj.isObject(node.data) ? Option.some({ space, object: node.data }) : Option.none();\n }),\n Option.flatMap(({ space, object }) => {\n const isSchema = Obj.instanceOf(DataType.StoredSchema, object);\n if (!query && isSchema) {\n // TODO(wittjosiah): Support filtering by nested properties (e.g. `query.typename`).\n query = space.db.query(Filter.type(DataType.View));\n }\n\n let deletable = !isSchema;\n if (isSchema && query) {\n const views = get(rxFromQuery(query));\n const filteredViews = get(\n rxFromSignal(() => views.filter((view) => view.query.typename === object.typename)),\n );\n deletable = filteredViews.length === 0;\n }\n\n const [dispatcher] = get(context.capabilities(Capabilities.IntentDispatcher));\n const [appGraph] = get(context.capabilities(Capabilities.AppGraph));\n const [state] = get(context.capabilities(SpaceCapabilities.State));\n const objectForms = get(context.capabilities(SpaceCapabilities.ObjectForm));\n\n if (!dispatcher || !appGraph || !state) {\n return Option.none();\n } else {\n return Option.some({\n object,\n graph: appGraph.graph,\n dispatch: dispatcher.dispatchPromise,\n objectForms,\n deletable,\n navigable: get(rxFromSignal(() => state.navigableCollections)),\n });\n }\n }),\n Option.map((params) => constructObjectActions(params)),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n // View selected objects.\n createExtension({\n id: `${SPACE_PLUGIN}/selected-objects`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.instanceOf(DataType.View, node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'selected-objects'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'selected-objects',\n properties: {\n label: ['companion selected objects label', { ns: SPACE_PLUGIN }],\n icon: 'ph--tree-view--regular',\n disposition: 'hidden',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n // Object settings plank companion.\n createExtension({\n id: `${SPACE_PLUGIN}/settings`,\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (Obj.isObject(node.data) ? Option.some(node) : Option.none())),\n Option.map((node) => [\n {\n id: [node.id, 'settings'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'settings',\n properties: {\n label: ['object settings label', { ns: SPACE_PLUGIN }],\n icon: 'ph--sliders--regular',\n disposition: 'hidden',\n position: 'fallback',\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n ]);\n};\n"],
5
- "mappings": "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",
6
- "names": ["Rx", "Array", "Option", "pipe", "Schema", "Capabilities", "contributes", "createIntent", "getSpace", "SpaceState", "isSpace", "Filter", "Obj", "Query", "Type", "log", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "createExtension", "rxFromObservable", "ROOT_ID", "rxFromSignal", "DataType", "isNonNullable", "context", "resolve", "typename", "getCapabilities", "Capabilities", "Metadata", "find", "id", "metadata", "spacesNode", "SPACES", "type", "cacheable", "properties", "label", "ns", "SPACE_PLUGIN", "icon", "testId", "role", "disposition", "disabled", "childrenPersistenceClass", "onRearrangeChildren", "nextOrder", "graph", "getCapability", "AppGraph", "client", "ClientCapabilities", "Client", "sortEdges", "map", "objects", "spacesOrder", "spaces", "default", "db", "query", "Filter", "Type", "Expando", "key", "SHARED", "run", "order", "log", "warn", "contributes", "AppGraphBuilder", "createExtension", "position", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "SpaceAction", "OpenCreateSpace", "_tag", "data", "dispatchPromise", "dispatch", "IntentDispatcher", "createIntent", "Join", "OpenMembers", "space", "getActiveSpace", "keyBinding", "macos", "windows", "OpenSettings", "getOrElse", "connector", "state", "SpaceCapabilities", "State", "spacesRx", "rxFromObservable", "isReadyRx", "isReady", "settings", "capabilities", "SettingsStore", "getStore", "value", "rxFromQuery", "rxFromSignal", "orderMap", "Map", "index", "filter", "has", "sort", "a", "b", "showHidden", "SpaceState", "SPACE_INACTIVE", "constructSpaceNode", "navigable", "navigableCollections", "personal", "namesCache", "spaceNames", "SPACE_TYPE", "isSpace", "dispatcher", "migrating", "sdkMigrationRunning", "params", "constructSpaceActions", "spaceState", "SPACE_READY", "collection", "DataType", "Collection", "target", "Array", "object", "isNonNullable", "createObjectNode", "Obj", "instanceOf", "getSpace", "QueryCollection", "Query", "without", "select", "referencedBy", "reference", "droppable", "StoredSchema", "staticRecords", "schemaRegistry", "schemas", "schema", "getTypename", "createStaticSchemaNode", "undefined", "Schema", "isSchema", "View", "views", "filteredViews", "view", "deletable", "length", "createStaticSchemaActions", "isObject", "appGraph", "objectForms", "ObjectForm", "constructObjectActions", "join", "ATTENDABLE_PATH_SEPARATOR", "PLANK_COMPANION_TYPE"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-serializer.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, type PluginContext, contributes, createIntent } from '@dxos/app-framework';\nimport { isSpace } from '@dxos/client/echo';\nimport { Obj, Type } from '@dxos/echo';\nimport { DataType } from '@dxos/schema';\n\nimport { SPACE_PLUGIN } from '../meta';\nimport { translations } from '../translations';\nimport { SPACE_TYPE, SpaceAction } from '../types';\nimport { SPACES } from '../util';\n\nconst COLLECTION_TYPE = Type.getTypename(DataType.Collection);\n\n// https://stackoverflow.com/a/19016910\nconst DIRECTORY_TYPE = 'text/directory';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphSerializer, [\n {\n inputType: SPACES,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',\n data: translations[0]['en-US'][SPACE_PLUGIN]['spaces label'] ?? 'Spaces',\n type: DIRECTORY_TYPE,\n }),\n deserialize: () => {\n // No-op.\n },\n },\n {\n inputType: SPACE_TYPE,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n data: node.data.properties.name ?? translations[0]['en-US'][SPACE_PLUGIN]['unnamed space label'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data) => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(createIntent(SpaceAction.Create, { name: data.name, edgeReplication: true }));\n return result.data?.space;\n },\n },\n {\n inputType: COLLECTION_TYPE,\n outputType: DIRECTORY_TYPE,\n serialize: (node) => ({\n name: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],\n data: node.data.name ?? translations[0]['en-US'][SPACE_PLUGIN]['object name placeholder'],\n type: DIRECTORY_TYPE,\n }),\n deserialize: async (data, ancestors) => {\n const space = ancestors.find(isSpace);\n const collection =\n ancestors.findLast((ancestor) => Obj.instanceOf(DataType.Collection, ancestor)) ??\n space?.properties[COLLECTION_TYPE]?.target;\n if (!space || !collection) {\n return;\n }\n\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const result = await dispatch(\n createIntent(SpaceAction.AddObject, {\n target: collection,\n object: Obj.make(DataType.Collection, { name: data.name, objects: [] }),\n }),\n );\n\n return result.data?.object;\n },\n },\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;AAIA,SAASA,cAAkCC,aAAaC,oBAAoB;AAC5E,SAASC,eAAe;AACxB,SAASC,KAAKC,YAAY;AAC1B,SAASC,gBAAgB;AAOzB,IAAMC,kBAAkBC,KAAKC,YAAYC,SAASC,UAAU;AAG5D,IAAMC,iBAAiB;AAEvB,IAAA,+BAAe,CAACC,YACdC,YAAYC,aAAaC,oBAAoB;EAC3C;IACEC,WAAWC;IACXC,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA,KAAmB;MAChEC,MAAMF,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,cAAA,KAAmB;MAChEE,MAAMd;IACR;IACAe,aAAa,MAAA;IAEb;EACF;EACA;IACEV,WAAWW;IACXT,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKI,WAAWP,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EC,MAAMJ,KAAKI,KAAKI,WAAWP,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,qBAAA;MAC1EE,MAAMd;IACR;IACAe,aAAa,OAAOF,SAAAA;AAClB,YAAM,EAAEK,iBAAiBC,SAAQ,IAAKlB,QAAQmB,cAAcjB,aAAakB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SAASI,aAAaC,YAAYC,QAAQ;QAAEf,MAAMG,KAAKH;QAAMgB,iBAAiB;MAAK,CAAA,CAAA;AACxG,aAAOJ,OAAOT,MAAMc;IACtB;EACF;EACA;IACEtB,WAAWV;IACXY,YAAYP;IACZQ,WAAW,CAACC,UAAU;MACpBC,MAAMD,KAAKI,KAAKH,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,yBAAA;MAC/DC,MAAMJ,KAAKI,KAAKH,QAAQC,aAAa,CAAA,EAAG,OAAA,EAASC,YAAAA,EAAc,yBAAA;MAC/DE,MAAMd;IACR;IACAe,aAAa,OAAOF,MAAMe,cAAAA;AACxB,YAAMD,QAAQC,UAAUC,KAAKC,OAAAA;AAC7B,YAAMC,aACJH,UAAUI,SAAS,CAACC,aAAaC,IAAIC,WAAWrC,SAASC,YAAYkC,QAAAA,CAAAA,KACrEN,OAAOV,WAAWtB,eAAAA,GAAkByC;AACtC,UAAI,CAACT,SAAS,CAACI,YAAY;AACzB;MACF;AAEA,YAAM,EAAEb,iBAAiBC,SAAQ,IAAKlB,QAAQmB,cAAcjB,aAAakB,gBAAgB;AACzF,YAAMC,SAAS,MAAMH,SACnBI,aAAaC,YAAYa,WAAW;QAClCD,QAAQL;QACRO,QAAQJ,IAAIK,KAAKzC,SAASC,YAAY;UAAEW,MAAMG,KAAKH;UAAM8B,SAAS,CAAA;QAAG,CAAA;MACvE,CAAA,CAAA;AAGF,aAAOlB,OAAOT,MAAMyB;IACtB;EACF;CACD;",
6
- "names": ["Capabilities", "contributes", "createIntent", "isSpace", "Obj", "Type", "DataType", "COLLECTION_TYPE", "Type", "getTypename", "DataType", "Collection", "DIRECTORY_TYPE", "context", "contributes", "Capabilities", "AppGraphSerializer", "inputType", "SPACES", "outputType", "serialize", "node", "name", "translations", "SPACE_PLUGIN", "data", "type", "deserialize", "SPACE_TYPE", "properties", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "result", "createIntent", "SpaceAction", "Create", "edgeReplication", "space", "ancestors", "find", "isSpace", "collection", "findLast", "ancestor", "Obj", "instanceOf", "target", "AddObject", "object", "make", "objects"]
7
- }