@dxos/plugin-space 0.8.4-main.406dc2a → 0.8.4-main.52d7546f51

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 (626) hide show
  1. package/dist/lib/browser/CollectionArticle-XXLUNK3F.mjs +127 -0
  2. package/dist/lib/browser/CollectionArticle-XXLUNK3F.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectCardStack-CXNBCSMR.mjs +148 -0
  4. package/dist/lib/browser/ObjectCardStack-CXNBCSMR.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectDetails-HXV4IQEM.mjs +143 -0
  6. package/dist/lib/browser/ObjectDetails-HXV4IQEM.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-36LDKFWF.mjs +108 -0
  8. package/dist/lib/browser/RecordArticle-36LDKFWF.mjs.map +7 -0
  9. package/dist/lib/browser/app-graph-builder-GLV46QSI.mjs +530 -0
  10. package/dist/lib/browser/app-graph-builder-GLV46QSI.mjs.map +7 -0
  11. package/dist/lib/browser/app-graph-serializer-VOLRDNVE.mjs +85 -0
  12. package/dist/lib/browser/app-graph-serializer-VOLRDNVE.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-PTGRQQ6J.mjs → chunk-7D63MVRS.mjs} +68 -63
  14. package/dist/lib/browser/chunk-7D63MVRS.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-A7ZCVQGZ.mjs +118 -0
  16. package/dist/lib/browser/chunk-A7ZCVQGZ.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-ASV6DYFH.mjs +19 -0
  18. package/dist/lib/browser/chunk-ASV6DYFH.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-CMLRMQNM.mjs +1889 -0
  20. package/dist/lib/browser/chunk-CMLRMQNM.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-HSMQFM57.mjs +16 -0
  22. package/dist/lib/browser/chunk-HSMQFM57.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-KGLWYGIF.mjs +715 -0
  24. package/dist/lib/browser/chunk-KGLWYGIF.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-NF3ZFAB4.mjs +13 -0
  26. package/dist/lib/browser/chunk-NF3ZFAB4.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-WAOJLA2S.mjs +772 -0
  28. package/dist/lib/browser/chunk-WAOJLA2S.mjs.map +7 -0
  29. package/dist/lib/browser/cli/index.mjs +851 -0
  30. package/dist/lib/browser/cli/index.mjs.map +7 -0
  31. package/dist/lib/browser/identity-created-VCFYLSBB.mjs +23 -0
  32. package/dist/lib/browser/identity-created-VCFYLSBB.mjs.map +7 -0
  33. package/dist/lib/browser/index.mjs +235 -239
  34. package/dist/lib/browser/index.mjs.map +4 -4
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/operation-resolver-PJJ3PCM7.mjs +830 -0
  37. package/dist/lib/browser/operation-resolver-PJJ3PCM7.mjs.map +7 -0
  38. package/dist/lib/browser/react-root-ITWAPZIY.mjs +30 -0
  39. package/dist/lib/browser/react-root-ITWAPZIY.mjs.map +7 -0
  40. package/dist/lib/browser/react-surface-6GD6K4I4.mjs +383 -0
  41. package/dist/lib/browser/react-surface-6GD6K4I4.mjs.map +7 -0
  42. package/dist/lib/browser/repair-DKU4TUD2.mjs +50 -0
  43. package/dist/lib/browser/repair-DKU4TUD2.mjs.map +7 -0
  44. package/dist/lib/browser/settings-M2DMD2ZA.mjs +34 -0
  45. package/dist/lib/browser/settings-M2DMD2ZA.mjs.map +7 -0
  46. package/dist/lib/browser/spaces-ready-XWJUJ43N.mjs +243 -0
  47. package/dist/lib/browser/spaces-ready-XWJUJ43N.mjs.map +7 -0
  48. package/dist/lib/browser/state-V637BLIM.mjs +58 -0
  49. package/dist/lib/browser/state-V637BLIM.mjs.map +7 -0
  50. package/dist/lib/browser/types/index.mjs +18 -10
  51. package/dist/lib/node-esm/CollectionArticle-KFFKKP37.mjs +128 -0
  52. package/dist/lib/node-esm/CollectionArticle-KFFKKP37.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectCardStack-EHXPNRQW.mjs +149 -0
  54. package/dist/lib/node-esm/ObjectCardStack-EHXPNRQW.mjs.map +7 -0
  55. package/dist/lib/node-esm/ObjectDetails-N73UI4ZL.mjs +144 -0
  56. package/dist/lib/node-esm/ObjectDetails-N73UI4ZL.mjs.map +7 -0
  57. package/dist/lib/node-esm/RecordArticle-CMEXNNOZ.mjs +109 -0
  58. package/dist/lib/node-esm/RecordArticle-CMEXNNOZ.mjs.map +7 -0
  59. package/dist/lib/node-esm/app-graph-builder-KCEHEKVS.mjs +531 -0
  60. package/dist/lib/node-esm/app-graph-builder-KCEHEKVS.mjs.map +7 -0
  61. package/dist/lib/node-esm/app-graph-serializer-7C4MV5NB.mjs +86 -0
  62. package/dist/lib/node-esm/app-graph-serializer-7C4MV5NB.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-2NM62ORP.mjs +1890 -0
  64. package/dist/lib/node-esm/chunk-2NM62ORP.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-HAKW2RFD.mjs → chunk-5N3YIAXD.mjs} +68 -63
  66. package/dist/lib/node-esm/chunk-5N3YIAXD.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-A5A7M37T.mjs +119 -0
  68. package/dist/lib/node-esm/chunk-A5A7M37T.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +20 -0
  70. package/dist/lib/node-esm/chunk-CVXULIYC.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-FB5YNROS.mjs +773 -0
  72. package/dist/lib/node-esm/chunk-FB5YNROS.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-NYSDQPNM.mjs +716 -0
  74. package/dist/lib/node-esm/chunk-NYSDQPNM.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-PG7DNOEX.mjs +15 -0
  76. package/dist/lib/node-esm/chunk-PG7DNOEX.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-SL4BJSUG.mjs +18 -0
  78. package/dist/lib/node-esm/chunk-SL4BJSUG.mjs.map +7 -0
  79. package/dist/lib/node-esm/cli/index.mjs +852 -0
  80. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  81. package/dist/lib/node-esm/identity-created-2SJABVJD.mjs +25 -0
  82. package/dist/lib/node-esm/identity-created-2SJABVJD.mjs.map +7 -0
  83. package/dist/lib/node-esm/index.mjs +235 -239
  84. package/dist/lib/node-esm/index.mjs.map +4 -4
  85. package/dist/lib/node-esm/meta.json +1 -1
  86. package/dist/lib/node-esm/operation-resolver-2K7N4KYC.mjs +831 -0
  87. package/dist/lib/node-esm/operation-resolver-2K7N4KYC.mjs.map +7 -0
  88. package/dist/lib/node-esm/react-root-GIQAKDQ2.mjs +31 -0
  89. package/dist/lib/node-esm/react-root-GIQAKDQ2.mjs.map +7 -0
  90. package/dist/lib/node-esm/react-surface-KWP2DNFG.mjs +384 -0
  91. package/dist/lib/node-esm/react-surface-KWP2DNFG.mjs.map +7 -0
  92. package/dist/lib/node-esm/repair-C2H6JQCL.mjs +51 -0
  93. package/dist/lib/node-esm/repair-C2H6JQCL.mjs.map +7 -0
  94. package/dist/lib/node-esm/settings-VCPCNBOY.mjs +35 -0
  95. package/dist/lib/node-esm/settings-VCPCNBOY.mjs.map +7 -0
  96. package/dist/lib/node-esm/spaces-ready-5JOGEWON.mjs +244 -0
  97. package/dist/lib/node-esm/spaces-ready-5JOGEWON.mjs.map +7 -0
  98. package/dist/lib/node-esm/state-5MCEPWN3.mjs +59 -0
  99. package/dist/lib/node-esm/state-5MCEPWN3.mjs.map +7 -0
  100. package/dist/lib/node-esm/types/index.mjs +18 -10
  101. package/dist/types/src/SpacePlugin.d.ts +3 -15
  102. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +7 -0
  104. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +5 -0
  108. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/identity-created/identity-created.d.ts +5 -0
  112. package/dist/types/src/capabilities/identity-created/identity-created.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/identity-created/index.d.ts +3 -0
  114. package/dist/types/src/capabilities/identity-created/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/index.d.ts +10 -20
  116. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/operation-resolver/index.d.ts +6 -0
  118. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +9 -0
  120. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
  122. package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
  124. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
  125. package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
  126. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +8 -0
  128. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/repair/index.d.ts +3 -0
  130. package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
  132. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  134. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  135. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  136. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/spaces-ready/index.d.ts +3 -0
  138. package/dist/types/src/capabilities/spaces-ready/index.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts +5 -0
  140. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/state/index.d.ts +13 -0
  142. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/state/state.d.ts +17 -0
  144. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  145. package/dist/types/src/cli/commands/database/add.d.ts +17 -0
  146. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -0
  147. package/dist/types/src/cli/commands/database/index.d.ts +3 -0
  148. package/dist/types/src/cli/commands/database/index.d.ts.map +1 -0
  149. package/dist/types/src/cli/commands/database/query/index.d.ts +2 -0
  150. package/dist/types/src/cli/commands/database/query/index.d.ts.map +1 -0
  151. package/dist/types/src/cli/commands/database/query/query.d.ts +13 -0
  152. package/dist/types/src/cli/commands/database/query/query.d.ts.map +1 -0
  153. package/dist/types/src/cli/commands/database/query/query.test.d.ts +2 -0
  154. package/dist/types/src/cli/commands/database/query/query.test.d.ts.map +1 -0
  155. package/dist/types/src/cli/commands/database/remove.d.ts +9 -0
  156. package/dist/types/src/cli/commands/database/remove.d.ts.map +1 -0
  157. package/dist/types/src/cli/commands/database/stats.d.ts +6 -0
  158. package/dist/types/src/cli/commands/database/stats.d.ts.map +1 -0
  159. package/dist/types/src/cli/commands/database/util.d.ts +14 -0
  160. package/dist/types/src/cli/commands/database/util.d.ts.map +1 -0
  161. package/dist/types/src/cli/commands/index.d.ts +4 -0
  162. package/dist/types/src/cli/commands/index.d.ts.map +1 -0
  163. package/dist/types/src/cli/commands/queue/index.d.ts +7 -0
  164. package/dist/types/src/cli/commands/queue/index.d.ts.map +1 -0
  165. package/dist/types/src/cli/commands/queue/query.d.ts +8 -0
  166. package/dist/types/src/cli/commands/queue/query.d.ts.map +1 -0
  167. package/dist/types/src/cli/commands/queue/util.d.ts +6 -0
  168. package/dist/types/src/cli/commands/queue/util.d.ts.map +1 -0
  169. package/dist/types/src/cli/commands/space/close/close.d.ts +12 -0
  170. package/dist/types/src/cli/commands/space/close/close.d.ts.map +1 -0
  171. package/dist/types/src/cli/commands/space/close/index.d.ts +2 -0
  172. package/dist/types/src/cli/commands/space/close/index.d.ts.map +1 -0
  173. package/dist/types/src/cli/commands/space/create/create.d.ts +12 -0
  174. package/dist/types/src/cli/commands/space/create/create.d.ts.map +1 -0
  175. package/dist/types/src/cli/commands/space/create/create.test.d.ts +2 -0
  176. package/dist/types/src/cli/commands/space/create/create.test.d.ts.map +1 -0
  177. package/dist/types/src/cli/commands/space/create/index.d.ts +2 -0
  178. package/dist/types/src/cli/commands/space/create/index.d.ts.map +1 -0
  179. package/dist/types/src/cli/commands/space/index.d.ts +31 -0
  180. package/dist/types/src/cli/commands/space/index.d.ts.map +1 -0
  181. package/dist/types/src/cli/commands/space/info/index.d.ts +2 -0
  182. package/dist/types/src/cli/commands/space/info/index.d.ts.map +1 -0
  183. package/dist/types/src/cli/commands/space/info/info.d.ts +13 -0
  184. package/dist/types/src/cli/commands/space/info/info.d.ts.map +1 -0
  185. package/dist/types/src/cli/commands/space/info/info.test.d.ts +2 -0
  186. package/dist/types/src/cli/commands/space/info/info.test.d.ts.map +1 -0
  187. package/dist/types/src/cli/commands/space/join/index.d.ts +2 -0
  188. package/dist/types/src/cli/commands/space/join/index.d.ts.map +1 -0
  189. package/dist/types/src/cli/commands/space/join/join.d.ts +14 -0
  190. package/dist/types/src/cli/commands/space/join/join.d.ts.map +1 -0
  191. package/dist/types/src/cli/commands/space/join/util.d.ts +17 -0
  192. package/dist/types/src/cli/commands/space/join/util.d.ts.map +1 -0
  193. package/dist/types/src/cli/commands/space/list/index.d.ts +2 -0
  194. package/dist/types/src/cli/commands/space/list/index.d.ts.map +1 -0
  195. package/dist/types/src/cli/commands/space/list/list.d.ts +7 -0
  196. package/dist/types/src/cli/commands/space/list/list.d.ts.map +1 -0
  197. package/dist/types/src/cli/commands/space/list/list.test.d.ts +2 -0
  198. package/dist/types/src/cli/commands/space/list/list.test.d.ts.map +1 -0
  199. package/dist/types/src/cli/commands/space/members/index.d.ts +2 -0
  200. package/dist/types/src/cli/commands/space/members/index.d.ts.map +1 -0
  201. package/dist/types/src/cli/commands/space/members/members.d.ts +13 -0
  202. package/dist/types/src/cli/commands/space/members/members.d.ts.map +1 -0
  203. package/dist/types/src/cli/commands/space/members/members.test.d.ts +2 -0
  204. package/dist/types/src/cli/commands/space/members/members.test.d.ts.map +1 -0
  205. package/dist/types/src/cli/commands/space/members/util.d.ts +9 -0
  206. package/dist/types/src/cli/commands/space/members/util.d.ts.map +1 -0
  207. package/dist/types/src/cli/commands/space/open/index.d.ts +2 -0
  208. package/dist/types/src/cli/commands/space/open/index.d.ts.map +1 -0
  209. package/dist/types/src/cli/commands/space/open/open.d.ts +12 -0
  210. package/dist/types/src/cli/commands/space/open/open.d.ts.map +1 -0
  211. package/dist/types/src/cli/commands/space/schema/index.d.ts +8 -0
  212. package/dist/types/src/cli/commands/space/schema/index.d.ts.map +1 -0
  213. package/dist/types/src/cli/commands/space/schema/list/index.d.ts +2 -0
  214. package/dist/types/src/cli/commands/space/schema/list/index.d.ts.map +1 -0
  215. package/dist/types/src/cli/commands/space/schema/list/list.d.ts +15 -0
  216. package/dist/types/src/cli/commands/space/schema/list/list.d.ts.map +1 -0
  217. package/dist/types/src/cli/commands/space/schema/list/list.test.d.ts +2 -0
  218. package/dist/types/src/cli/commands/space/schema/list/list.test.d.ts.map +1 -0
  219. package/dist/types/src/cli/commands/space/schema/list/util.d.ts +15 -0
  220. package/dist/types/src/cli/commands/space/schema/list/util.d.ts.map +1 -0
  221. package/dist/types/src/cli/commands/space/share/index.d.ts +2 -0
  222. package/dist/types/src/cli/commands/space/share/index.d.ts.map +1 -0
  223. package/dist/types/src/cli/commands/space/share/share.d.ts +19 -0
  224. package/dist/types/src/cli/commands/space/share/share.d.ts.map +1 -0
  225. package/dist/types/src/cli/commands/space/sync/index.d.ts +2 -0
  226. package/dist/types/src/cli/commands/space/sync/index.d.ts.map +1 -0
  227. package/dist/types/src/cli/commands/space/sync/sync.d.ts +6 -0
  228. package/dist/types/src/cli/commands/space/sync/sync.d.ts.map +1 -0
  229. package/dist/types/src/cli/commands/space/sync/sync.test.d.ts +2 -0
  230. package/dist/types/src/cli/commands/space/sync/sync.test.d.ts.map +1 -0
  231. package/dist/types/src/cli/index.d.ts +2 -0
  232. package/dist/types/src/cli/index.d.ts.map +1 -0
  233. package/dist/types/src/cli/plugin.d.ts +4 -0
  234. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  235. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  236. package/dist/types/src/components/CollectionArticle.d.ts +9 -0
  237. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  238. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  239. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  240. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  241. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  242. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +218 -224
  243. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  244. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +21 -10
  245. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  246. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  247. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  248. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  249. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  250. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  251. package/dist/types/src/components/{MembersContainer.stories.d.ts → MembersContainer/MembersContainer.stories.d.ts} +212 -219
  252. package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
  253. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  254. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  255. package/dist/types/src/components/MenuFooter.d.ts +1 -1
  256. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  257. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts +8 -0
  258. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
  259. package/dist/types/src/components/{ObjectDetailsPanel → ObjectCardStack}/ObjectForm.d.ts +2 -3
  260. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +1 -0
  261. package/dist/types/src/components/ObjectCardStack/index.d.ts +3 -0
  262. package/dist/types/src/components/ObjectCardStack/index.d.ts.map +1 -0
  263. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.d.ts +2 -2
  264. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -0
  265. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.stories.d.ts +210 -217
  266. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.stories.d.ts.map +1 -1
  267. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts +8 -0
  268. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +1 -0
  269. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts +9 -0
  270. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +1 -0
  271. package/dist/types/src/components/ObjectDetails/index.d.ts +3 -0
  272. package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -0
  273. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  274. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  275. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  276. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  277. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  278. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  279. package/dist/types/src/components/RecordArticle.stories.d.ts +1600 -0
  280. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  281. package/dist/types/src/components/SchemaContainer.d.ts +2 -2
  282. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  283. package/dist/types/src/components/SpacePluginSettings.d.ts +4 -2
  284. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  285. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +7 -6
  286. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  287. package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +210 -217
  288. package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
  289. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  290. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  291. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  292. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  293. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  294. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  295. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +4 -1
  296. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  297. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +214 -218
  298. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  299. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  300. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +211 -218
  301. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  302. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  303. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  304. package/dist/types/src/components/index.d.ts +15 -18
  305. package/dist/types/src/components/index.d.ts.map +1 -1
  306. package/dist/types/src/constants.d.ts +6 -0
  307. package/dist/types/src/constants.d.ts.map +1 -0
  308. package/dist/types/src/helpers/index.d.ts +2 -0
  309. package/dist/types/src/helpers/index.d.ts.map +1 -0
  310. package/dist/types/src/helpers/query.d.ts +7 -0
  311. package/dist/types/src/helpers/query.d.ts.map +1 -0
  312. package/dist/types/src/helpers/query.test.d.ts +2 -0
  313. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  314. package/dist/types/src/hooks/useActiveSpace.d.ts +2 -2
  315. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  316. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -8
  317. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  318. package/dist/types/src/hooks/usePath.d.ts +2 -2
  319. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  320. package/dist/types/src/hooks/useTypeOptions.d.ts +2 -2
  321. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -1
  322. package/dist/types/src/index.d.ts +2 -2
  323. package/dist/types/src/index.d.ts.map +1 -1
  324. package/dist/types/src/meta.d.ts +2 -2
  325. package/dist/types/src/meta.d.ts.map +1 -1
  326. package/dist/types/src/translations.d.ts +210 -217
  327. package/dist/types/src/translations.d.ts.map +1 -1
  328. package/dist/types/src/types/capabilities.d.ts +71 -0
  329. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  330. package/dist/types/src/types/events.d.ts +9 -0
  331. package/dist/types/src/types/events.d.ts.map +1 -0
  332. package/dist/types/src/types/form.d.ts +22 -0
  333. package/dist/types/src/types/form.d.ts.map +1 -0
  334. package/dist/types/src/types/index.d.ts +3 -0
  335. package/dist/types/src/types/index.d.ts.map +1 -1
  336. package/dist/types/src/types/types.d.ts +643 -397
  337. package/dist/types/src/types/types.d.ts.map +1 -1
  338. package/dist/types/src/util.d.ts +41 -50
  339. package/dist/types/src/util.d.ts.map +1 -1
  340. package/dist/types/tsconfig.tsbuildinfo +1 -1
  341. package/package.json +83 -63
  342. package/src/SpacePlugin.ts +189 -235
  343. package/src/capabilities/app-graph-builder/app-graph-builder.ts +621 -0
  344. package/src/capabilities/app-graph-builder/index.ts +7 -0
  345. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +83 -0
  346. package/src/capabilities/app-graph-serializer/index.ts +7 -0
  347. package/src/capabilities/identity-created/identity-created.ts +29 -0
  348. package/src/capabilities/identity-created/index.ts +7 -0
  349. package/src/capabilities/index.ts +10 -14
  350. package/src/capabilities/operation-resolver/index.ts +7 -0
  351. package/src/capabilities/operation-resolver/operation-resolver.ts +762 -0
  352. package/src/capabilities/react-root/index.ts +7 -0
  353. package/src/capabilities/react-root/react-root.tsx +25 -0
  354. package/src/capabilities/react-surface/index.ts +7 -0
  355. package/src/capabilities/react-surface/react-surface.tsx +377 -0
  356. package/src/capabilities/repair/index.ts +7 -0
  357. package/src/capabilities/repair/repair.ts +67 -0
  358. package/src/capabilities/settings/index.ts +7 -0
  359. package/src/capabilities/settings/settings.ts +33 -0
  360. package/src/capabilities/spaces-ready/index.ts +7 -0
  361. package/src/capabilities/spaces-ready/spaces-ready.ts +290 -0
  362. package/src/capabilities/state/index.ts +7 -0
  363. package/src/capabilities/state/state.ts +64 -0
  364. package/src/cli/commands/database/add.ts +115 -0
  365. package/src/cli/commands/database/index.ts +16 -0
  366. package/src/cli/commands/database/query/index.ts +5 -0
  367. package/src/cli/commands/database/query/query.test.ts +55 -0
  368. package/src/cli/commands/database/query/query.ts +44 -0
  369. package/src/cli/commands/database/remove.ts +51 -0
  370. package/src/cli/commands/database/stats.ts +44 -0
  371. package/src/cli/commands/database/util.ts +32 -0
  372. package/src/cli/commands/index.ts +7 -0
  373. package/src/cli/commands/queue/index.ts +12 -0
  374. package/src/cli/commands/queue/query.ts +45 -0
  375. package/src/cli/commands/queue/util.ts +19 -0
  376. package/src/cli/commands/space/close/close.ts +40 -0
  377. package/src/cli/commands/space/close/index.ts +5 -0
  378. package/src/cli/commands/space/create/create.test.ts +67 -0
  379. package/src/cli/commands/space/create/create.ts +61 -0
  380. package/src/cli/commands/space/create/index.ts +5 -0
  381. package/src/cli/commands/space/index.ts +21 -0
  382. package/src/cli/commands/space/info/index.ts +5 -0
  383. package/src/cli/commands/space/info/info.test.ts +47 -0
  384. package/src/cli/commands/space/info/info.ts +37 -0
  385. package/src/cli/commands/space/join/index.ts +5 -0
  386. package/src/cli/commands/space/join/join.ts +122 -0
  387. package/src/cli/commands/space/join/util.ts +82 -0
  388. package/src/cli/commands/space/list/index.ts +5 -0
  389. package/src/cli/commands/space/list/list.test.ts +36 -0
  390. package/src/cli/commands/space/list/list.ts +30 -0
  391. package/src/cli/commands/space/members/index.ts +5 -0
  392. package/src/cli/commands/space/members/members.test.ts +46 -0
  393. package/src/cli/commands/space/members/members.ts +40 -0
  394. package/src/cli/commands/space/members/util.ts +29 -0
  395. package/src/cli/commands/space/open/index.ts +5 -0
  396. package/src/cli/commands/space/open/open.ts +39 -0
  397. package/src/cli/commands/space/schema/index.ts +12 -0
  398. package/src/cli/commands/space/schema/list/index.ts +5 -0
  399. package/src/cli/commands/space/schema/list/list.test.ts +42 -0
  400. package/src/cli/commands/space/schema/list/list.ts +64 -0
  401. package/src/cli/commands/space/schema/list/util.ts +39 -0
  402. package/src/cli/commands/space/share/index.ts +5 -0
  403. package/src/cli/commands/space/share/share.ts +112 -0
  404. package/src/cli/commands/space/sync/index.ts +5 -0
  405. package/src/cli/commands/space/sync/sync.test.ts +12 -0
  406. package/src/cli/commands/space/sync/sync.ts +33 -0
  407. package/src/cli/index.ts +5 -0
  408. package/src/cli/plugin.ts +88 -0
  409. package/src/components/AwaitingObject.tsx +22 -20
  410. package/src/components/CollectionArticle.tsx +156 -0
  411. package/src/components/CollectionSection.tsx +6 -4
  412. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +31 -25
  413. package/src/components/CreateDialog/CreateObjectDialog.tsx +81 -69
  414. package/src/components/CreateDialog/CreateObjectPanel.tsx +146 -85
  415. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -25
  416. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +27 -37
  417. package/src/components/JoinDialog/index.ts +5 -0
  418. package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +4 -4
  419. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +82 -85
  420. package/src/components/MembersContainer/index.ts +5 -0
  421. package/src/components/MenuFooter.tsx +1 -1
  422. package/src/components/ObjectCardStack/ObjectCardStack.tsx +67 -0
  423. package/src/components/ObjectCardStack/ObjectForm.tsx +97 -0
  424. package/src/components/ObjectCardStack/index.ts +7 -0
  425. package/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.stories.tsx +11 -11
  426. package/src/components/ObjectDetails/BaseObjectSettings.tsx +122 -0
  427. package/src/components/{ObjectSettings → ObjectDetails}/ForeignKeys.tsx +6 -6
  428. package/src/components/ObjectDetails/ObjectDetails.tsx +33 -0
  429. package/src/components/ObjectDetails/index.ts +7 -0
  430. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +11 -15
  431. package/src/components/ObjectRenamePopover/index.ts +5 -0
  432. package/src/components/RecordArticle.stories.tsx +116 -0
  433. package/src/components/RecordArticle.tsx +124 -0
  434. package/src/components/SchemaContainer.tsx +29 -29
  435. package/src/components/SpacePluginSettings.tsx +42 -29
  436. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +2 -2
  437. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +20 -16
  438. package/src/components/SpacePresence/index.ts +5 -0
  439. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +15 -15
  440. package/src/components/SpaceRenamePopover/index.ts +5 -0
  441. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +5 -5
  442. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +91 -74
  443. package/src/components/SyncStatus/InlineSyncStatus.tsx +1 -1
  444. package/src/components/SyncStatus/SyncStatus.stories.tsx +3 -2
  445. package/src/components/SyncStatus/SyncStatus.tsx +45 -36
  446. package/src/components/SyncStatus/save-tracker.ts +2 -2
  447. package/src/components/ViewEditor.tsx +64 -21
  448. package/src/components/index.ts +7 -8
  449. package/src/constants.ts +11 -0
  450. package/src/helpers/index.ts +5 -0
  451. package/src/helpers/query.test.ts +24 -0
  452. package/src/helpers/query.ts +153 -0
  453. package/src/hooks/useActiveSpace.ts +8 -4
  454. package/src/hooks/useInputSurfaceLookup.tsx +9 -13
  455. package/src/hooks/usePath.ts +4 -4
  456. package/src/hooks/useTypeOptions.ts +3 -37
  457. package/src/index.ts +2 -2
  458. package/src/meta.ts +7 -2
  459. package/src/translations.ts +68 -59
  460. package/src/types/capabilities.ts +73 -0
  461. package/src/types/events.ts +16 -0
  462. package/src/types/form.ts +69 -0
  463. package/src/types/index.ts +3 -0
  464. package/src/types/types.ts +539 -260
  465. package/src/util.tsx +339 -282
  466. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs +0 -31
  467. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +0 -7
  468. package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs +0 -145
  469. package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs.map +0 -7
  470. package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs +0 -151
  471. package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs.map +0 -7
  472. package/dist/lib/browser/RecordMain-H4DVHICS.mjs +0 -116
  473. package/dist/lib/browser/RecordMain-H4DVHICS.mjs.map +0 -7
  474. package/dist/lib/browser/app-graph-builder-3R5GGT46.mjs +0 -520
  475. package/dist/lib/browser/app-graph-builder-3R5GGT46.mjs.map +0 -7
  476. package/dist/lib/browser/app-graph-serializer-25Z5BG22.mjs +0 -80
  477. package/dist/lib/browser/app-graph-serializer-25Z5BG22.mjs.map +0 -7
  478. package/dist/lib/browser/chunk-522KZGQF.mjs +0 -1952
  479. package/dist/lib/browser/chunk-522KZGQF.mjs.map +0 -7
  480. package/dist/lib/browser/chunk-7XOTWRZ3.mjs +0 -166
  481. package/dist/lib/browser/chunk-7XOTWRZ3.mjs.map +0 -7
  482. package/dist/lib/browser/chunk-EIXZABXD.mjs +0 -19
  483. package/dist/lib/browser/chunk-EIXZABXD.mjs.map +0 -7
  484. package/dist/lib/browser/chunk-IRKDREHY.mjs +0 -11
  485. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +0 -7
  486. package/dist/lib/browser/chunk-OV6D543A.mjs +0 -704
  487. package/dist/lib/browser/chunk-OV6D543A.mjs.map +0 -7
  488. package/dist/lib/browser/chunk-PTGRQQ6J.mjs.map +0 -7
  489. package/dist/lib/browser/chunk-RLI2IAHK.mjs +0 -20
  490. package/dist/lib/browser/chunk-RLI2IAHK.mjs.map +0 -7
  491. package/dist/lib/browser/chunk-WS2PJDES.mjs +0 -348
  492. package/dist/lib/browser/chunk-WS2PJDES.mjs.map +0 -7
  493. package/dist/lib/browser/identity-created-PW2BA46S.mjs +0 -23
  494. package/dist/lib/browser/identity-created-PW2BA46S.mjs.map +0 -7
  495. package/dist/lib/browser/intent-resolver-ICGUSVH6.mjs +0 -767
  496. package/dist/lib/browser/intent-resolver-ICGUSVH6.mjs.map +0 -7
  497. package/dist/lib/browser/react-root-H56QN474.mjs +0 -29
  498. package/dist/lib/browser/react-root-H56QN474.mjs.map +0 -7
  499. package/dist/lib/browser/react-surface-VOE2ILKO.mjs +0 -354
  500. package/dist/lib/browser/react-surface-VOE2ILKO.mjs.map +0 -7
  501. package/dist/lib/browser/schema-defs-7R7RKCAE.mjs +0 -26
  502. package/dist/lib/browser/schema-defs-7R7RKCAE.mjs.map +0 -7
  503. package/dist/lib/browser/settings-OBFJ67ZG.mjs +0 -24
  504. package/dist/lib/browser/settings-OBFJ67ZG.mjs.map +0 -7
  505. package/dist/lib/browser/spaces-ready-MFIVK6I6.mjs +0 -201
  506. package/dist/lib/browser/spaces-ready-MFIVK6I6.mjs.map +0 -7
  507. package/dist/lib/browser/state-LSPRFIRO.mjs +0 -47
  508. package/dist/lib/browser/state-LSPRFIRO.mjs.map +0 -7
  509. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs +0 -32
  510. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +0 -7
  511. package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs +0 -146
  512. package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs.map +0 -7
  513. package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs +0 -152
  514. package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs.map +0 -7
  515. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs +0 -117
  516. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs.map +0 -7
  517. package/dist/lib/node-esm/app-graph-builder-VGRMD5TP.mjs +0 -521
  518. package/dist/lib/node-esm/app-graph-builder-VGRMD5TP.mjs.map +0 -7
  519. package/dist/lib/node-esm/app-graph-serializer-U4GHXWRG.mjs +0 -81
  520. package/dist/lib/node-esm/app-graph-serializer-U4GHXWRG.mjs.map +0 -7
  521. package/dist/lib/node-esm/chunk-4F25JKVT.mjs +0 -349
  522. package/dist/lib/node-esm/chunk-4F25JKVT.mjs.map +0 -7
  523. package/dist/lib/node-esm/chunk-DG5YEEPZ.mjs +0 -1953
  524. package/dist/lib/node-esm/chunk-DG5YEEPZ.mjs.map +0 -7
  525. package/dist/lib/node-esm/chunk-H5UPFRRH.mjs +0 -21
  526. package/dist/lib/node-esm/chunk-H5UPFRRH.mjs.map +0 -7
  527. package/dist/lib/node-esm/chunk-HAKW2RFD.mjs.map +0 -7
  528. package/dist/lib/node-esm/chunk-MWNATOXL.mjs +0 -13
  529. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +0 -7
  530. package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs +0 -167
  531. package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs.map +0 -7
  532. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +0 -20
  533. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +0 -7
  534. package/dist/lib/node-esm/chunk-TNUWML33.mjs +0 -705
  535. package/dist/lib/node-esm/chunk-TNUWML33.mjs.map +0 -7
  536. package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs +0 -25
  537. package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs.map +0 -7
  538. package/dist/lib/node-esm/intent-resolver-KVB2A4YC.mjs +0 -768
  539. package/dist/lib/node-esm/intent-resolver-KVB2A4YC.mjs.map +0 -7
  540. package/dist/lib/node-esm/react-root-56PGW5PH.mjs +0 -30
  541. package/dist/lib/node-esm/react-root-56PGW5PH.mjs.map +0 -7
  542. package/dist/lib/node-esm/react-surface-NYEQ23A4.mjs +0 -355
  543. package/dist/lib/node-esm/react-surface-NYEQ23A4.mjs.map +0 -7
  544. package/dist/lib/node-esm/schema-defs-RYG5DSUE.mjs +0 -27
  545. package/dist/lib/node-esm/schema-defs-RYG5DSUE.mjs.map +0 -7
  546. package/dist/lib/node-esm/settings-QGWWNMMZ.mjs +0 -25
  547. package/dist/lib/node-esm/settings-QGWWNMMZ.mjs.map +0 -7
  548. package/dist/lib/node-esm/spaces-ready-TC27M7MP.mjs +0 -202
  549. package/dist/lib/node-esm/spaces-ready-TC27M7MP.mjs.map +0 -7
  550. package/dist/lib/node-esm/state-TCGOPLRO.mjs +0 -48
  551. package/dist/lib/node-esm/state-TCGOPLRO.mjs.map +0 -7
  552. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  553. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  554. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -4
  555. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  556. package/dist/types/src/capabilities/capabilities.d.ts +0 -29
  557. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  558. package/dist/types/src/capabilities/identity-created.d.ts +0 -4
  559. package/dist/types/src/capabilities/identity-created.d.ts.map +0 -1
  560. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -9
  561. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  562. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  563. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  564. package/dist/types/src/capabilities/react-surface.d.ts +0 -7
  565. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  566. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  567. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  568. package/dist/types/src/capabilities/settings.d.ts +0 -4
  569. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  570. package/dist/types/src/capabilities/spaces-ready.d.ts +0 -4
  571. package/dist/types/src/capabilities/spaces-ready.d.ts.map +0 -1
  572. package/dist/types/src/capabilities/state.d.ts +0 -5
  573. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  574. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  575. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  576. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  577. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  578. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +0 -9
  579. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +0 -1
  580. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +0 -1
  581. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +0 -3
  582. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +0 -1
  583. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +0 -7
  584. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  585. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
  586. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +0 -8
  587. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
  588. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +0 -8
  589. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
  590. package/dist/types/src/components/ObjectSettings/index.d.ts +0 -3
  591. package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
  592. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  593. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  594. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  595. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  596. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  597. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  598. package/dist/types/src/components/RecordMain.d.ts +0 -7
  599. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  600. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  601. package/dist/types/src/events.d.ts +0 -8
  602. package/dist/types/src/events.d.ts.map +0 -1
  603. package/src/capabilities/app-graph-builder.ts +0 -757
  604. package/src/capabilities/app-graph-serializer.ts +0 -76
  605. package/src/capabilities/capabilities.ts +0 -35
  606. package/src/capabilities/identity-created.ts +0 -25
  607. package/src/capabilities/intent-resolver.ts +0 -706
  608. package/src/capabilities/react-root.tsx +0 -21
  609. package/src/capabilities/react-surface.tsx +0 -329
  610. package/src/capabilities/schema-defs.ts +0 -31
  611. package/src/capabilities/settings.ts +0 -21
  612. package/src/capabilities/spaces-ready.ts +0 -234
  613. package/src/capabilities/state.ts +0 -46
  614. package/src/components/CollectionMain.tsx +0 -32
  615. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +0 -52
  616. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +0 -75
  617. package/src/components/ObjectDetailsPanel/index.ts +0 -7
  618. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +0 -81
  619. package/src/components/ObjectSettings/BaseObjectSettings.tsx +0 -117
  620. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +0 -37
  621. package/src/components/ObjectSettings/index.ts +0 -7
  622. package/src/components/PersistenceStatus.tsx +0 -83
  623. package/src/components/RecordMain.tsx +0 -87
  624. package/src/events.ts +0 -15
  625. /package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +0 -0
  626. /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
@@ -0,0 +1,621 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { type Atom } from '@effect-atom/atom-react';
6
+ import * as Effect from 'effect/Effect';
7
+ import * as Option from 'effect/Option';
8
+ import * as Schema from 'effect/Schema';
9
+
10
+ import { Capability } from '@dxos/app-framework';
11
+ import { AppCapabilities } from '@dxos/app-toolkit';
12
+ import { type Space, SpaceState, getSpace, isSpace, parseId } from '@dxos/client/echo';
13
+ import { DXN, Filter, Obj, type Ref, Type } from '@dxos/echo';
14
+ import { AtomObj, AtomQuery } from '@dxos/echo-atom';
15
+ import { Operation } from '@dxos/operation';
16
+ import { ClientCapabilities } from '@dxos/plugin-client';
17
+ import { ATTENDABLE_PATH_SEPARATOR, PLANK_COMPANION_TYPE } from '@dxos/plugin-deck/types';
18
+ import { CreateAtom, GraphBuilder, type Node, NodeMatcher } from '@dxos/plugin-graph';
19
+ import { Collection, Expando, ViewAnnotation, getTypenameFromQuery } from '@dxos/schema';
20
+ import { isNonNullable } from '@dxos/util';
21
+
22
+ import { getActiveSpace } from '../../hooks';
23
+ import { meta } from '../../meta';
24
+ import { SPACE_TYPE, SpaceCapabilities, SpaceOperation, type SpacePluginOptions } from '../../types';
25
+ import {
26
+ SHARED,
27
+ constructObjectActions,
28
+ constructSpaceActions,
29
+ constructSpaceNode,
30
+ createObjectNode,
31
+ createStaticSchemaActions,
32
+ createStaticSchemaNode,
33
+ } from '../../util';
34
+
35
+ /** Match space nodes and return the Space object. */
36
+ const whenSpace = (node: Node.Node): Option.Option<Space> =>
37
+ node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none();
38
+
39
+ export default Capability.makeModule(
40
+ Effect.fnUntraced(function* (props?: SpacePluginOptions) {
41
+ const { shareableLinkOrigin = window.location.origin } = props ?? {};
42
+ const capabilities = yield* Capability.Service;
43
+
44
+ // TODO(wittjosiah): Using `get` and being reactive seems to cause a bug with Atom where disposed atoms are accessed.
45
+ const resolve = (get: Atom.Context) => (typename: string) =>
46
+ capabilities.getAll(AppCapabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
47
+
48
+ const extensions = yield* Effect.all([
49
+ // Primary actions.
50
+ GraphBuilder.createExtension({
51
+ id: `${meta.id}/primary-actions`,
52
+ position: 'hoist',
53
+ match: NodeMatcher.whenRoot,
54
+ actions: () =>
55
+ Effect.succeed([
56
+ {
57
+ id: SpaceOperation.OpenCreateSpace.meta.key,
58
+ data: () => Operation.invoke(SpaceOperation.OpenCreateSpace),
59
+ properties: {
60
+ label: ['create space label', { ns: meta.id }],
61
+ icon: 'ph--plus--regular',
62
+ testId: 'spacePlugin.createSpace',
63
+ disposition: 'menu',
64
+ },
65
+ },
66
+ {
67
+ id: SpaceOperation.Join.meta.key,
68
+ data: () => Operation.invoke(SpaceOperation.Join, {}),
69
+ properties: {
70
+ label: ['join space label', { ns: meta.id }],
71
+ icon: 'ph--sign-in--regular',
72
+ testId: 'spacePlugin.joinSpace',
73
+ disposition: 'menu',
74
+ },
75
+ },
76
+ {
77
+ id: SpaceOperation.OpenMembers.meta.key,
78
+ data: Effect.fnUntraced(function* () {
79
+ const client = yield* Capability.get(ClientCapabilities.Client);
80
+ const space = getActiveSpace(capabilities) ?? client.spaces.default;
81
+ yield* Operation.invoke(SpaceOperation.OpenMembers, { space });
82
+ }),
83
+ properties: {
84
+ label: ['share space label', { ns: meta.id }],
85
+ icon: 'ph--users--regular',
86
+ testId: 'spacePlugin.shareSpace',
87
+ keyBinding: {
88
+ macos: 'meta+.',
89
+ windows: 'alt+.',
90
+ },
91
+ },
92
+ },
93
+ {
94
+ id: SpaceOperation.OpenSettings.meta.key,
95
+ data: Effect.fnUntraced(function* () {
96
+ const client = yield* Capability.get(ClientCapabilities.Client);
97
+ const space = getActiveSpace(capabilities) ?? client.spaces.default;
98
+ yield* Operation.invoke(SpaceOperation.OpenSettings, { space });
99
+ }),
100
+ properties: {
101
+ label: ['open current space settings label', { ns: meta.id }],
102
+ icon: 'ph--faders--regular',
103
+ keyBinding: {
104
+ macos: 'meta+shift+,',
105
+ windows: 'ctrl+shift+,',
106
+ },
107
+ },
108
+ },
109
+ ]),
110
+ }),
111
+
112
+ // Create space nodes.
113
+ GraphBuilder.createExtension({
114
+ id: `${meta.id}/spaces`,
115
+ match: NodeMatcher.whenRoot,
116
+ connector: (node, get) => {
117
+ const client = capabilities.get(ClientCapabilities.Client);
118
+ const stateAtom = capabilities.get(SpaceCapabilities.State);
119
+ const ephemeralAtom = capabilities.get(SpaceCapabilities.EphemeralState);
120
+ const spacesAtom = CreateAtom.fromObservable(client.spaces);
121
+ const isReadyAtom = CreateAtom.fromObservable(client.spaces.isReady);
122
+
123
+ const spaces = get(spacesAtom);
124
+ const isReady = get(isReadyAtom);
125
+
126
+ if (!spaces || !isReady) {
127
+ return Effect.succeed([]);
128
+ }
129
+
130
+ const settingsAtom = capabilities.get(SpaceCapabilities.Settings);
131
+ const settings = get(settingsAtom);
132
+ const state = get(stateAtom);
133
+ const ephemeralState = get(ephemeralAtom);
134
+
135
+ try {
136
+ const [spacesOrder] = get(
137
+ AtomQuery.make(client.spaces.default.db, Filter.type(Expando.Expando, { key: SHARED })),
138
+ );
139
+ const { graph } = capabilities.get(AppCapabilities.AppGraph);
140
+
141
+ // Get order from spacesOrder snapshot using AtomObj (cached via Atom.family).
142
+ const spacesOrderSnapshot = spacesOrder ? get(AtomObj.make(spacesOrder)) : undefined;
143
+ const order: string[] = (spacesOrderSnapshot as any)?.order ?? [];
144
+ const orderMap = new Map(order.map((id, index) => [id, index]));
145
+
146
+ // Subscribe to space states for filtering.
147
+ const spaceStates = spaces.map((space) => get(CreateAtom.fromObservable(space.state)));
148
+
149
+ // Subscribe to space properties to react when root collection is assigned.
150
+ spaces.forEach((space) => {
151
+ if (space.state.get() === SpaceState.SPACE_READY) {
152
+ get(AtomObj.make(space.properties));
153
+ }
154
+ });
155
+
156
+ return Effect.succeed(
157
+ [
158
+ ...spaces
159
+ .filter((space) => orderMap.has(space.id))
160
+ .sort((a, b) => orderMap.get(a.id)! - orderMap.get(b.id)!),
161
+ ...spaces.filter((space) => !orderMap.has(space.id)),
162
+ ]
163
+ .filter((space, i) => (settings?.showHidden ? true : spaceStates[i] !== SpaceState.SPACE_INACTIVE))
164
+ .map((space) =>
165
+ constructSpaceNode({
166
+ space,
167
+ navigable: ephemeralState.navigableCollections,
168
+ personal: space === client.spaces.default,
169
+ namesCache: state.spaceNames,
170
+ resolve: resolve(get),
171
+ graph,
172
+ spacesOrder,
173
+ }),
174
+ ),
175
+ );
176
+ } catch {
177
+ return Effect.succeed([]);
178
+ }
179
+ },
180
+ resolver: (id, get) => {
181
+ // Resolve space ID to space node.
182
+ const { spaceId } = parseId(id);
183
+ if (!spaceId) {
184
+ return Effect.succeed(null);
185
+ }
186
+
187
+ const client = capabilities.get(ClientCapabilities.Client);
188
+
189
+ // Subscribe to spaces observable to react when space becomes available.
190
+ const spaces = get(CreateAtom.fromObservable(client.spaces));
191
+ const space = spaces?.find((s) => s.id === spaceId);
192
+ if (!space) {
193
+ return Effect.succeed(null);
194
+ }
195
+
196
+ // Only subscribe to these atoms if the space exists.
197
+ const state = get(capabilities.get(SpaceCapabilities.State));
198
+ const ephemeralState = get(capabilities.get(SpaceCapabilities.EphemeralState));
199
+
200
+ const { graph } = capabilities.get(AppCapabilities.AppGraph);
201
+ const [spacesOrder] = get(
202
+ AtomQuery.make(client.spaces.default.db, Filter.type(Expando.Expando, { key: SHARED })),
203
+ );
204
+
205
+ return Effect.succeed(
206
+ constructSpaceNode({
207
+ space,
208
+ navigable: ephemeralState.navigableCollections,
209
+ personal: space === client.spaces.default,
210
+ namesCache: state.spaceNames,
211
+ resolve: resolve(get),
212
+ graph,
213
+ spacesOrder,
214
+ }),
215
+ );
216
+ },
217
+ }),
218
+
219
+ // Create space actions.
220
+ GraphBuilder.createExtension({
221
+ id: `${meta.id}/actions`,
222
+ match: whenSpace,
223
+ actions: (space, get) => {
224
+ const [client] = get(capabilities.atom(ClientCapabilities.Client));
225
+ const ephemeralAtom = capabilities.get(SpaceCapabilities.EphemeralState);
226
+ const ephemeralState = get(ephemeralAtom);
227
+
228
+ if (!client) {
229
+ return Effect.succeed([]);
230
+ }
231
+
232
+ return Effect.succeed(
233
+ constructSpaceActions({
234
+ space,
235
+ personal: space === client.spaces.default,
236
+ migrating: ephemeralState.sdkMigrationRunning[space.id],
237
+ }),
238
+ );
239
+ },
240
+ }),
241
+
242
+ // Create nodes for objects in the root collection of a space.
243
+ GraphBuilder.createExtension({
244
+ id: `${meta.id}/root-collection`,
245
+ match: whenSpace,
246
+ connector: (space, get) => {
247
+ const ephemeralAtom = capabilities.get(SpaceCapabilities.EphemeralState);
248
+ const ephemeralState = get(ephemeralAtom);
249
+ const spaceState = get(CreateAtom.fromObservable(space.state));
250
+ if (spaceState !== SpaceState.SPACE_READY) {
251
+ return Effect.succeed([]);
252
+ }
253
+
254
+ // Get the collection ref from space.properties snapshot (AtomObj cached via Atom.family).
255
+ const propertiesSnapshot = get(AtomObj.make(space.properties));
256
+ const collectionRef = propertiesSnapshot[Collection.Collection.typename] as
257
+ | Ref.Ref<Collection.Collection>
258
+ | undefined;
259
+ // Resolve the collection using AtomObj (subscribes to collection changes).
260
+ const collection = collectionRef ? get(AtomObj.make(collectionRef)) : undefined;
261
+ if (!collection) {
262
+ return Effect.succeed([]);
263
+ }
264
+
265
+ const rawRefs = collection.objects ?? [];
266
+
267
+ // TODO(wittjosiah): Workaround for Obj.getTypename not working on snapshots.
268
+ // AtomObj.make(ref) returns snapshots (plain objects without ECHO metadata),
269
+ // but createObjectNode needs live objects to access typename and other metadata.
270
+ // Once Obj.getTypename works on snapshots, we can use snapshots directly.
271
+ const objects = rawRefs
272
+ .map((ref) => {
273
+ // Subscribe to the ref for reactivity (triggers re-render when target changes).
274
+ get(AtomObj.make(ref));
275
+ // Return the live object for createObjectNode (has typename metadata).
276
+ return ref.target;
277
+ })
278
+ .filter(isNonNullable);
279
+
280
+ return Effect.succeed(
281
+ objects
282
+ .map((object) =>
283
+ createObjectNode({
284
+ db: space.db,
285
+ object,
286
+ resolve: resolve(get),
287
+ navigable: ephemeralState.navigableCollections,
288
+ parentCollection: collectionRef?.target,
289
+ }),
290
+ )
291
+ .filter(isNonNullable),
292
+ );
293
+ },
294
+ }),
295
+
296
+ // Create nodes for objects in a collection or by its DXN.
297
+ GraphBuilder.createExtension({
298
+ id: `${meta.id}/objects`,
299
+ match: (node) => (Obj.instanceOf(Collection.Collection, node.data) ? Option.some(node.data) : Option.none()),
300
+ connector: (collection, get) => {
301
+ const ephemeralAtom = capabilities.get(SpaceCapabilities.EphemeralState);
302
+ const ephemeralState = get(ephemeralAtom);
303
+ const space = getSpace(collection);
304
+
305
+ // Get collection snapshot using AtomObj (cached via Atom.family).
306
+ const collectionSnapshot = get(AtomObj.make(collection));
307
+ const refs = collectionSnapshot.objects ?? [];
308
+
309
+ // TODO(wittjosiah): Workaround for Obj.getTypename not working on snapshots.
310
+ // See root-collection connector for details.
311
+ const objects = refs
312
+ .map((ref) => {
313
+ get(AtomObj.make(ref));
314
+ return ref.target;
315
+ })
316
+ .filter(isNonNullable);
317
+
318
+ return Effect.succeed(
319
+ objects
320
+ .map(
321
+ (object) =>
322
+ space &&
323
+ createObjectNode({
324
+ object,
325
+ db: space.db,
326
+ resolve: resolve(get),
327
+ navigable: ephemeralState.navigableCollections,
328
+ parentCollection: collection,
329
+ }),
330
+ )
331
+ .filter(isNonNullable),
332
+ );
333
+ },
334
+ resolver: (id, get) => {
335
+ const client = capabilities.get(ClientCapabilities.Client);
336
+ const dxn = DXN.tryParse(id)?.asEchoDXN();
337
+ if (!dxn || !dxn.spaceId) {
338
+ return Effect.succeed(null);
339
+ }
340
+
341
+ const space = client.spaces.get(dxn.spaceId);
342
+ if (!space) {
343
+ return Effect.succeed(null);
344
+ }
345
+
346
+ const object = get(AtomQuery.make(space.db, Filter.id(dxn.echoId))).at(0);
347
+ if (!Obj.isObject(object)) {
348
+ return Effect.succeed(null);
349
+ }
350
+
351
+ return Effect.succeed(
352
+ createObjectNode({
353
+ object,
354
+ db: space.db,
355
+ resolve: resolve(get),
356
+ disposition: 'hidden',
357
+ }),
358
+ );
359
+ },
360
+ }),
361
+
362
+ // Create object nodes for schema-based system collections.
363
+ GraphBuilder.createExtension({
364
+ id: `${meta.id}/system-collections`,
365
+ match: (node) => (Obj.instanceOf(Collection.Managed, node.data) ? Option.some(node.data) : Option.none()),
366
+ connector: (collection, get) => {
367
+ const client = get(capabilities.atom(ClientCapabilities.Client)).at(0);
368
+ const space = getSpace(collection);
369
+ const schema = client?.graph.schemaRegistry
370
+ .query({ typename: collection.key, location: ['runtime'], includeSystem: true })
371
+ .runSync()[0];
372
+ if (!space || !schema) {
373
+ return Effect.succeed([]);
374
+ }
375
+
376
+ return Effect.succeed(
377
+ get(AtomQuery.make(space.db, Filter.type(schema)))
378
+ .map((object) => {
379
+ get(AtomObj.make(object));
380
+ return createObjectNode({
381
+ object,
382
+ db: space.db,
383
+ managedCollectionChild: true,
384
+ resolve: resolve(get),
385
+ });
386
+ })
387
+ .filter(isNonNullable),
388
+ );
389
+ },
390
+ }),
391
+
392
+ // Create branch nodes for static schema record types.
393
+ GraphBuilder.createExtension({
394
+ id: `${meta.id}/static-schemas`,
395
+ match: (node: Node.Node) =>
396
+ Obj.instanceOf(Collection.Managed, node.data) && node.data.key === Type.getTypename(Type.PersistentType)
397
+ ? Option.some(node.data)
398
+ : Option.none(),
399
+ connector: (collection, get) => {
400
+ const client = get(capabilities.atom(ClientCapabilities.Client)).at(0);
401
+ const space = getSpace(collection);
402
+ if (!space) {
403
+ return Effect.succeed([]);
404
+ }
405
+
406
+ // Get staticRecords from properties snapshot (AtomObj cached via Atom.family).
407
+ const propertiesSnapshot = get(AtomObj.make(space.properties));
408
+ const staticRecords = (propertiesSnapshot.staticRecords ?? []) as string[];
409
+
410
+ return Effect.succeed(
411
+ staticRecords
412
+ .map((typename) => client?.graph.schemaRegistry.query({ typename, location: ['runtime'] }).runSync()[0])
413
+ .filter(isNonNullable)
414
+ .map((schema) => createStaticSchemaNode({ schema, space })),
415
+ );
416
+ },
417
+ }),
418
+
419
+ // Create actions for static schema record types.
420
+ GraphBuilder.createExtension({
421
+ id: `${meta.id}/static-schema-actions`,
422
+ match: (node) => {
423
+ const space = isSpace(node.properties.space) ? node.properties.space : undefined;
424
+ return space && Schema.isSchema(node.data) ? Option.some({ space, schema: node.data }) : Option.none();
425
+ },
426
+ actions: ({ space, schema }, get) => {
427
+ const schemas =
428
+ get(capabilities.atom(ClientCapabilities.Client))
429
+ .at(0)
430
+ ?.graph.schemaRegistry.query({ location: ['runtime'] })
431
+ .runSync() ?? [];
432
+ const filter = Filter.or(
433
+ ...schemas
434
+ .filter((schema) => ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false)))
435
+ .map((schema) => Filter.type(schema)),
436
+ );
437
+
438
+ const objects = get(AtomQuery.make(space.db, filter));
439
+
440
+ // Filter views that match the schema typename using AtomObj and AtomRef (cached via Atom.family).
441
+ const targetTypename = Type.getTypename(schema as Type.Obj.Any);
442
+ const filteredViews = objects.filter((viewObject) => {
443
+ const viewSnapshot = get(AtomObj.make(viewObject));
444
+ const viewRef = (viewSnapshot as any).view;
445
+ const viewTarget = viewRef ? get(AtomObj.make(viewRef)) : undefined;
446
+ return getTypenameFromQuery((viewTarget as any)?.query?.ast) === targetTypename;
447
+ });
448
+ const deletable = filteredViews.length === 0;
449
+
450
+ return Effect.succeed(
451
+ createStaticSchemaActions({
452
+ schema: schema as Type.Obj.Any,
453
+ space,
454
+ deletable,
455
+ }),
456
+ );
457
+ },
458
+ }),
459
+
460
+ // Create nodes for views of record types.
461
+ GraphBuilder.createExtension({
462
+ id: `${meta.id}/schema-views`,
463
+ match: (node) => {
464
+ const space = getSpace(node.data) ?? (isSpace(node.properties.space) ? node.properties.space : undefined);
465
+ return space && (Obj.instanceOf(Type.PersistentType, node.data) || Schema.isSchema(node.data))
466
+ ? Option.some({ space, schema: node.data })
467
+ : Option.none();
468
+ },
469
+ connector: ({ space, schema }, get) => {
470
+ const schemas =
471
+ get(capabilities.atom(ClientCapabilities.Client))
472
+ .at(0)
473
+ ?.graph.schemaRegistry.query({ location: ['runtime'] })
474
+ .runSync() ?? [];
475
+ const filter = Filter.or(
476
+ ...schemas
477
+ .filter((schema) => ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false)))
478
+ .map((schema) => Filter.type(schema)),
479
+ );
480
+
481
+ const typename = Schema.isSchema(schema) ? Type.getTypename(schema as Type.Obj.Any) : schema.typename;
482
+ const objects = get(AtomQuery.make(space.db, filter));
483
+
484
+ // Filter and map using AtomObj and AtomRef (cached via Atom.family).
485
+ return Effect.succeed(
486
+ objects
487
+ .filter((object) => {
488
+ const objectSnapshot = get(AtomObj.make(object));
489
+ const viewRef = (objectSnapshot as any).view;
490
+ const viewTarget = viewRef ? get(AtomObj.make(viewRef)) : undefined;
491
+ return getTypenameFromQuery((viewTarget as any)?.query?.ast) === typename;
492
+ })
493
+ .map((object) =>
494
+ createObjectNode({
495
+ object,
496
+ db: space.db,
497
+ resolve: resolve(get),
498
+ droppable: false,
499
+ }),
500
+ )
501
+ .filter(isNonNullable),
502
+ );
503
+ },
504
+ }),
505
+
506
+ // Create collection actions and action groups.
507
+ GraphBuilder.createExtension({
508
+ id: `${meta.id}/object-actions`,
509
+ match: (node) => {
510
+ const space = getSpace(node.data);
511
+ return space && Obj.isObject(node.data) && Obj.getTypename(node.data) === node.type
512
+ ? Option.some({ space, object: node.data })
513
+ : Option.none();
514
+ },
515
+ actions: ({ space, object }, get) => {
516
+ const schemas =
517
+ get(capabilities.atom(ClientCapabilities.Client))
518
+ .at(0)
519
+ ?.graph.schemaRegistry.query({ location: ['runtime'] })
520
+ .runSync() ?? [];
521
+ const filter = Filter.or(
522
+ ...schemas
523
+ .filter((schema) => ViewAnnotation.get(schema).pipe(Option.getOrElse(() => false)))
524
+ .map((schema) => Filter.type(schema)),
525
+ );
526
+
527
+ const isSchema = Obj.instanceOf(Type.PersistentType, object);
528
+
529
+ let deletable = !isSchema && !Obj.instanceOf(Collection.Managed, object);
530
+ if (isSchema) {
531
+ const objects = get(AtomQuery.make(space.db, filter));
532
+ // Filter views using AtomObj and AtomRef (cached via Atom.family).
533
+ const filteredViews = objects.filter((viewObject) => {
534
+ const viewSnapshot = get(AtomObj.make(viewObject));
535
+ const viewRef = (viewSnapshot as any).view;
536
+ const viewTarget = viewRef ? get(AtomObj.make(viewRef)) : undefined;
537
+ return getTypenameFromQuery((viewTarget as any)?.query?.ast) === object.typename;
538
+ });
539
+ deletable = filteredViews.length === 0;
540
+ }
541
+
542
+ const [appGraph] = get(capabilities.atom(AppCapabilities.AppGraph));
543
+ const ephemeralAtom = capabilities.get(SpaceCapabilities.EphemeralState);
544
+ const ephemeralState = get(ephemeralAtom);
545
+
546
+ if (!appGraph) {
547
+ return Effect.succeed([]);
548
+ }
549
+
550
+ return Effect.succeed(
551
+ constructObjectActions({
552
+ object,
553
+ graph: appGraph.graph,
554
+ resolve: resolve(get),
555
+ capabilities,
556
+ deletable,
557
+ navigable: ephemeralState.navigableCollections,
558
+ shareableLinkOrigin,
559
+ }),
560
+ );
561
+ },
562
+ }),
563
+
564
+ // View selected objects.
565
+ GraphBuilder.createExtension({
566
+ id: `${meta.id}/selected-objects`,
567
+ match: (node) => {
568
+ if (!Obj.isObject(node.data)) {
569
+ return Option.none();
570
+ }
571
+
572
+ const schema = Obj.getSchema(node.data);
573
+ const isView = Option.fromNullable(schema).pipe(
574
+ Option.flatMap((schema) => ViewAnnotation.get(schema)),
575
+ Option.getOrElse(() => false),
576
+ );
577
+ if (!isView) {
578
+ return Option.none();
579
+ }
580
+
581
+ return Option.some(node);
582
+ },
583
+ connector: (node) =>
584
+ Effect.succeed([
585
+ {
586
+ id: [node.id, 'selected-objects'].join(ATTENDABLE_PATH_SEPARATOR),
587
+ type: PLANK_COMPANION_TYPE,
588
+ data: 'selected-objects',
589
+ properties: {
590
+ label: ['companion selected objects label', { ns: meta.id }],
591
+ icon: 'ph--tree-view--regular',
592
+ disposition: 'hidden',
593
+ },
594
+ },
595
+ ]),
596
+ }),
597
+
598
+ // Object settings plank companion.
599
+ GraphBuilder.createExtension({
600
+ id: `${meta.id}/settings`,
601
+ match: NodeMatcher.whenEchoObjectMatches,
602
+ connector: (node) =>
603
+ Effect.succeed([
604
+ {
605
+ id: [node.id, 'settings'].join(ATTENDABLE_PATH_SEPARATOR),
606
+ type: PLANK_COMPANION_TYPE,
607
+ data: 'settings',
608
+ properties: {
609
+ label: ['object settings label', { ns: meta.id }],
610
+ icon: 'ph--sliders--regular',
611
+ disposition: 'hidden',
612
+ position: 'fallback',
613
+ },
614
+ },
615
+ ]),
616
+ }),
617
+ ]);
618
+
619
+ return Capability.contributes(AppCapabilities.AppGraphBuilder, extensions);
620
+ }),
621
+ );
@@ -0,0 +1,7 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { Capability } from '@dxos/app-framework';
6
+
7
+ export const AppGraphBuilder = Capability.lazy('AppGraphBuilder', () => import('./app-graph-builder'));