@dxos/plugin-space 0.8.4-main.3a94e84 → 0.8.4-main.3eb6e50203

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 (630) 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-QACNNDOT.mjs → chunk-7D63MVRS.mjs} +70 -62
  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 +241 -262
  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-P442DOQ3.mjs → chunk-5N3YIAXD.mjs} +70 -62
  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 +241 -262
  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 -21
  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 +5 -5
  241. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  242. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +1602 -8
  243. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  244. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +23 -10
  245. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  246. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -1
  247. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  248. package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +1 -1
  249. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  250. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  251. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  252. package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +3 -2
  253. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  254. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +1600 -0
  255. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +1 -0
  256. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  257. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  258. package/dist/types/src/components/MenuFooter.d.ts +1 -1
  259. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  260. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts +8 -0
  261. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
  262. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts +9 -0
  263. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +1 -0
  264. package/dist/types/src/components/ObjectCardStack/index.d.ts +3 -0
  265. package/dist/types/src/components/ObjectCardStack/index.d.ts.map +1 -0
  266. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.d.ts +3 -3
  267. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -0
  268. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +1433 -0
  269. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -0
  270. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts +8 -0
  271. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +1 -0
  272. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts +9 -0
  273. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +1 -0
  274. package/dist/types/src/components/ObjectDetails/index.d.ts +3 -0
  275. package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -0
  276. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  277. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  278. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  279. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  280. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  281. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  282. package/dist/types/src/components/RecordArticle.stories.d.ts +1600 -0
  283. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  284. package/dist/types/src/components/SchemaContainer.d.ts +2 -2
  285. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  286. package/dist/types/src/components/SpacePluginSettings.d.ts +4 -2
  287. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  288. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +7 -6
  289. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  290. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts +1430 -0
  291. package/dist/types/src/components/SpacePresence/SpacePresence.stories.d.ts.map +1 -0
  292. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  293. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  294. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  295. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  296. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  297. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  298. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +4 -1
  299. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  300. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +1433 -4
  301. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  302. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  303. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +1431 -5
  304. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  305. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  306. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  307. package/dist/types/src/components/index.d.ts +15 -12
  308. package/dist/types/src/components/index.d.ts.map +1 -1
  309. package/dist/types/src/constants.d.ts +6 -0
  310. package/dist/types/src/constants.d.ts.map +1 -0
  311. package/dist/types/src/helpers/index.d.ts +2 -0
  312. package/dist/types/src/helpers/index.d.ts.map +1 -0
  313. package/dist/types/src/helpers/query.d.ts +7 -0
  314. package/dist/types/src/helpers/query.d.ts.map +1 -0
  315. package/dist/types/src/helpers/query.test.d.ts +2 -0
  316. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  317. package/dist/types/src/hooks/index.d.ts +1 -0
  318. package/dist/types/src/hooks/index.d.ts.map +1 -1
  319. package/dist/types/src/hooks/useActiveSpace.d.ts +2 -2
  320. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  321. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -8
  322. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  323. package/dist/types/src/hooks/usePath.d.ts +3 -3
  324. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  325. package/dist/types/src/hooks/useTypeOptions.d.ts +10 -0
  326. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -0
  327. package/dist/types/src/index.d.ts +2 -2
  328. package/dist/types/src/index.d.ts.map +1 -1
  329. package/dist/types/src/meta.d.ts +2 -3
  330. package/dist/types/src/meta.d.ts.map +1 -1
  331. package/dist/types/src/translations.d.ts +1270 -67
  332. package/dist/types/src/translations.d.ts.map +1 -1
  333. package/dist/types/src/types/capabilities.d.ts +71 -0
  334. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  335. package/dist/types/src/types/events.d.ts +9 -0
  336. package/dist/types/src/types/events.d.ts.map +1 -0
  337. package/dist/types/src/types/form.d.ts +22 -0
  338. package/dist/types/src/types/form.d.ts.map +1 -0
  339. package/dist/types/src/types/index.d.ts +3 -0
  340. package/dist/types/src/types/index.d.ts.map +1 -1
  341. package/dist/types/src/types/types.d.ts +645 -417
  342. package/dist/types/src/types/types.d.ts.map +1 -1
  343. package/dist/types/src/util.d.ts +44 -50
  344. package/dist/types/src/util.d.ts.map +1 -1
  345. package/dist/types/tsconfig.tsbuildinfo +1 -1
  346. package/package.json +87 -62
  347. package/src/SpacePlugin.ts +195 -255
  348. package/src/capabilities/app-graph-builder/app-graph-builder.ts +621 -0
  349. package/src/capabilities/app-graph-builder/index.ts +7 -0
  350. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +83 -0
  351. package/src/capabilities/app-graph-serializer/index.ts +7 -0
  352. package/src/capabilities/identity-created/identity-created.ts +29 -0
  353. package/src/capabilities/identity-created/index.ts +7 -0
  354. package/src/capabilities/index.ts +10 -15
  355. package/src/capabilities/operation-resolver/index.ts +7 -0
  356. package/src/capabilities/operation-resolver/operation-resolver.ts +762 -0
  357. package/src/capabilities/react-root/index.ts +7 -0
  358. package/src/capabilities/react-root/react-root.tsx +25 -0
  359. package/src/capabilities/react-surface/index.ts +7 -0
  360. package/src/capabilities/react-surface/react-surface.tsx +377 -0
  361. package/src/capabilities/repair/index.ts +7 -0
  362. package/src/capabilities/repair/repair.ts +67 -0
  363. package/src/capabilities/settings/index.ts +7 -0
  364. package/src/capabilities/settings/settings.ts +33 -0
  365. package/src/capabilities/spaces-ready/index.ts +7 -0
  366. package/src/capabilities/spaces-ready/spaces-ready.ts +290 -0
  367. package/src/capabilities/state/index.ts +7 -0
  368. package/src/capabilities/state/state.ts +64 -0
  369. package/src/cli/commands/database/add.ts +115 -0
  370. package/src/cli/commands/database/index.ts +16 -0
  371. package/src/cli/commands/database/query/index.ts +5 -0
  372. package/src/cli/commands/database/query/query.test.ts +55 -0
  373. package/src/cli/commands/database/query/query.ts +44 -0
  374. package/src/cli/commands/database/remove.ts +51 -0
  375. package/src/cli/commands/database/stats.ts +44 -0
  376. package/src/cli/commands/database/util.ts +32 -0
  377. package/src/cli/commands/index.ts +7 -0
  378. package/src/cli/commands/queue/index.ts +12 -0
  379. package/src/cli/commands/queue/query.ts +45 -0
  380. package/src/cli/commands/queue/util.ts +19 -0
  381. package/src/cli/commands/space/close/close.ts +40 -0
  382. package/src/cli/commands/space/close/index.ts +5 -0
  383. package/src/cli/commands/space/create/create.test.ts +67 -0
  384. package/src/cli/commands/space/create/create.ts +61 -0
  385. package/src/cli/commands/space/create/index.ts +5 -0
  386. package/src/cli/commands/space/index.ts +21 -0
  387. package/src/cli/commands/space/info/index.ts +5 -0
  388. package/src/cli/commands/space/info/info.test.ts +47 -0
  389. package/src/cli/commands/space/info/info.ts +37 -0
  390. package/src/cli/commands/space/join/index.ts +5 -0
  391. package/src/cli/commands/space/join/join.ts +122 -0
  392. package/src/cli/commands/space/join/util.ts +82 -0
  393. package/src/cli/commands/space/list/index.ts +5 -0
  394. package/src/cli/commands/space/list/list.test.ts +36 -0
  395. package/src/cli/commands/space/list/list.ts +30 -0
  396. package/src/cli/commands/space/members/index.ts +5 -0
  397. package/src/cli/commands/space/members/members.test.ts +46 -0
  398. package/src/cli/commands/space/members/members.ts +40 -0
  399. package/src/cli/commands/space/members/util.ts +29 -0
  400. package/src/cli/commands/space/open/index.ts +5 -0
  401. package/src/cli/commands/space/open/open.ts +39 -0
  402. package/src/cli/commands/space/schema/index.ts +12 -0
  403. package/src/cli/commands/space/schema/list/index.ts +5 -0
  404. package/src/cli/commands/space/schema/list/list.test.ts +42 -0
  405. package/src/cli/commands/space/schema/list/list.ts +64 -0
  406. package/src/cli/commands/space/schema/list/util.ts +39 -0
  407. package/src/cli/commands/space/share/index.ts +5 -0
  408. package/src/cli/commands/space/share/share.ts +112 -0
  409. package/src/cli/commands/space/sync/index.ts +5 -0
  410. package/src/cli/commands/space/sync/sync.test.ts +12 -0
  411. package/src/cli/commands/space/sync/sync.ts +33 -0
  412. package/src/cli/index.ts +5 -0
  413. package/src/cli/plugin.ts +88 -0
  414. package/src/components/AwaitingObject.tsx +23 -21
  415. package/src/components/CollectionArticle.tsx +156 -0
  416. package/src/components/CollectionSection.tsx +8 -6
  417. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +37 -30
  418. package/src/components/CreateDialog/CreateObjectDialog.tsx +94 -71
  419. package/src/components/CreateDialog/CreateObjectPanel.tsx +163 -91
  420. package/src/components/CreateDialog/CreateSpaceDialog.tsx +35 -29
  421. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +29 -39
  422. package/src/components/JoinDialog/index.ts +5 -0
  423. package/src/components/MembersContainer/MembersContainer.stories.tsx +56 -0
  424. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +90 -94
  425. package/src/components/MembersContainer/index.ts +5 -0
  426. package/src/components/MenuFooter.tsx +3 -3
  427. package/src/components/ObjectCardStack/ObjectCardStack.tsx +67 -0
  428. package/src/components/ObjectCardStack/ObjectForm.tsx +97 -0
  429. package/src/components/ObjectCardStack/index.ts +7 -0
  430. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +63 -0
  431. package/src/components/ObjectDetails/BaseObjectSettings.tsx +122 -0
  432. package/src/components/{ObjectSettings → ObjectDetails}/ForeignKeys.tsx +8 -8
  433. package/src/components/ObjectDetails/ObjectDetails.tsx +33 -0
  434. package/src/components/ObjectDetails/index.ts +7 -0
  435. package/src/components/ObjectRenamePopover/ObjectRenamePopover.tsx +52 -0
  436. package/src/components/ObjectRenamePopover/index.ts +5 -0
  437. package/src/components/RecordArticle.stories.tsx +116 -0
  438. package/src/components/RecordArticle.tsx +124 -0
  439. package/src/components/SchemaContainer.tsx +31 -31
  440. package/src/components/SpacePluginSettings.tsx +45 -33
  441. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +24 -23
  442. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +28 -24
  443. package/src/components/SpacePresence/index.ts +5 -0
  444. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +16 -16
  445. package/src/components/SpaceRenamePopover/index.ts +5 -0
  446. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +19 -11
  447. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +99 -81
  448. package/src/components/SyncStatus/InlineSyncStatus.tsx +8 -8
  449. package/src/components/SyncStatus/SyncStatus.stories.tsx +9 -9
  450. package/src/components/SyncStatus/SyncStatus.tsx +109 -12
  451. package/src/components/SyncStatus/save-tracker.ts +2 -2
  452. package/src/components/ViewEditor.tsx +64 -27
  453. package/src/components/index.ts +7 -7
  454. package/src/constants.ts +11 -0
  455. package/src/helpers/index.ts +5 -0
  456. package/src/helpers/query.test.ts +24 -0
  457. package/src/helpers/query.ts +153 -0
  458. package/src/hooks/index.ts +1 -0
  459. package/src/hooks/useActiveSpace.ts +8 -4
  460. package/src/hooks/useInputSurfaceLookup.tsx +9 -13
  461. package/src/hooks/usePath.ts +5 -5
  462. package/src/hooks/useTypeOptions.ts +25 -0
  463. package/src/index.ts +2 -2
  464. package/src/meta.ts +8 -5
  465. package/src/translations.ts +70 -58
  466. package/src/types/capabilities.ts +73 -0
  467. package/src/types/events.ts +16 -0
  468. package/src/types/form.ts +69 -0
  469. package/src/types/index.ts +3 -0
  470. package/src/types/types.ts +541 -254
  471. package/src/util.tsx +389 -275
  472. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs +0 -31
  473. package/dist/lib/browser/CollectionMain-D2B75XBS.mjs.map +0 -7
  474. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs +0 -88
  475. package/dist/lib/browser/ObjectDetailsPanel-YPTDQKMG.mjs.map +0 -7
  476. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs +0 -479
  477. package/dist/lib/browser/app-graph-builder-7CZZJS3S.mjs.map +0 -7
  478. package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs +0 -80
  479. package/dist/lib/browser/app-graph-serializer-H6AW7KGS.mjs.map +0 -7
  480. package/dist/lib/browser/chunk-CEFHNVU7.mjs +0 -20
  481. package/dist/lib/browser/chunk-CEFHNVU7.mjs.map +0 -7
  482. package/dist/lib/browser/chunk-FBCGT5YY.mjs +0 -13
  483. package/dist/lib/browser/chunk-FBCGT5YY.mjs.map +0 -7
  484. package/dist/lib/browser/chunk-JS3MMC42.mjs +0 -19
  485. package/dist/lib/browser/chunk-JS3MMC42.mjs.map +0 -7
  486. package/dist/lib/browser/chunk-QACNNDOT.mjs.map +0 -7
  487. package/dist/lib/browser/chunk-SGTQ52SU.mjs +0 -338
  488. package/dist/lib/browser/chunk-SGTQ52SU.mjs.map +0 -7
  489. package/dist/lib/browser/chunk-V7MJSSBQ.mjs +0 -1984
  490. package/dist/lib/browser/chunk-V7MJSSBQ.mjs.map +0 -7
  491. package/dist/lib/browser/chunk-VLBRSGJ2.mjs +0 -94
  492. package/dist/lib/browser/chunk-VLBRSGJ2.mjs.map +0 -7
  493. package/dist/lib/browser/chunk-XUYKJUU7.mjs +0 -649
  494. package/dist/lib/browser/chunk-XUYKJUU7.mjs.map +0 -7
  495. package/dist/lib/browser/identity-created-23XJJV2N.mjs +0 -23
  496. package/dist/lib/browser/identity-created-23XJJV2N.mjs.map +0 -7
  497. package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs +0 -760
  498. package/dist/lib/browser/intent-resolver-TIXVDYN7.mjs.map +0 -7
  499. package/dist/lib/browser/react-root-N2J7TDRX.mjs +0 -29
  500. package/dist/lib/browser/react-root-N2J7TDRX.mjs.map +0 -7
  501. package/dist/lib/browser/react-surface-TPNLWJJH.mjs +0 -374
  502. package/dist/lib/browser/react-surface-TPNLWJJH.mjs.map +0 -7
  503. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs +0 -26
  504. package/dist/lib/browser/schema-defs-Z6FC4AHC.mjs.map +0 -7
  505. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs +0 -124
  506. package/dist/lib/browser/schema-tools-BNP4JTD7.mjs.map +0 -7
  507. package/dist/lib/browser/settings-4IMP5RYT.mjs +0 -24
  508. package/dist/lib/browser/settings-4IMP5RYT.mjs.map +0 -7
  509. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs +0 -199
  510. package/dist/lib/browser/spaces-ready-TOPG6IV4.mjs.map +0 -7
  511. package/dist/lib/browser/state-QYZAB45H.mjs +0 -47
  512. package/dist/lib/browser/state-QYZAB45H.mjs.map +0 -7
  513. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs +0 -32
  514. package/dist/lib/node-esm/CollectionMain-ZJIFCWKZ.mjs.map +0 -7
  515. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs +0 -89
  516. package/dist/lib/node-esm/ObjectDetailsPanel-QKZEDSZK.mjs.map +0 -7
  517. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs +0 -480
  518. package/dist/lib/node-esm/app-graph-builder-KGIGWC72.mjs.map +0 -7
  519. package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs +0 -81
  520. package/dist/lib/node-esm/app-graph-serializer-2ICUGQQT.mjs.map +0 -7
  521. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs +0 -650
  522. package/dist/lib/node-esm/chunk-4AOMYKDE.mjs.map +0 -7
  523. package/dist/lib/node-esm/chunk-5HHYE264.mjs +0 -20
  524. package/dist/lib/node-esm/chunk-5HHYE264.mjs.map +0 -7
  525. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs +0 -21
  526. package/dist/lib/node-esm/chunk-5T3ZH23B.mjs.map +0 -7
  527. package/dist/lib/node-esm/chunk-6X5DLJM5.mjs +0 -1985
  528. package/dist/lib/node-esm/chunk-6X5DLJM5.mjs.map +0 -7
  529. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs +0 -15
  530. package/dist/lib/node-esm/chunk-HWNG4MEU.mjs.map +0 -7
  531. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs +0 -339
  532. package/dist/lib/node-esm/chunk-JH6F4C3I.mjs.map +0 -7
  533. package/dist/lib/node-esm/chunk-P442DOQ3.mjs.map +0 -7
  534. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs +0 -96
  535. package/dist/lib/node-esm/chunk-SSLBYZEY.mjs.map +0 -7
  536. package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs +0 -25
  537. package/dist/lib/node-esm/identity-created-IJQO6GCR.mjs.map +0 -7
  538. package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs +0 -761
  539. package/dist/lib/node-esm/intent-resolver-MHGHRGDT.mjs.map +0 -7
  540. package/dist/lib/node-esm/react-root-KW3TGJGY.mjs +0 -30
  541. package/dist/lib/node-esm/react-root-KW3TGJGY.mjs.map +0 -7
  542. package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs +0 -375
  543. package/dist/lib/node-esm/react-surface-UUIUUD6P.mjs.map +0 -7
  544. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs +0 -27
  545. package/dist/lib/node-esm/schema-defs-WHJM7UZE.mjs.map +0 -7
  546. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs +0 -126
  547. package/dist/lib/node-esm/schema-tools-KWW5PTML.mjs.map +0 -7
  548. package/dist/lib/node-esm/settings-SAOBPND3.mjs +0 -25
  549. package/dist/lib/node-esm/settings-SAOBPND3.mjs.map +0 -7
  550. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs +0 -200
  551. package/dist/lib/node-esm/spaces-ready-HIUKNDZK.mjs.map +0 -7
  552. package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs +0 -48
  553. package/dist/lib/node-esm/state-ZVEHQ4BJ.mjs.map +0 -7
  554. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  555. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  556. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -4
  557. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  558. package/dist/types/src/capabilities/capabilities.d.ts +0 -28
  559. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  560. package/dist/types/src/capabilities/identity-created.d.ts +0 -4
  561. package/dist/types/src/capabilities/identity-created.d.ts.map +0 -1
  562. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -9
  563. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  564. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  565. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  566. package/dist/types/src/capabilities/react-surface.d.ts +0 -7
  567. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  568. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  569. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  570. package/dist/types/src/capabilities/schema-tool.test.d.ts +0 -2
  571. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +0 -1
  572. package/dist/types/src/capabilities/schema-tools.d.ts +0 -13
  573. package/dist/types/src/capabilities/schema-tools.d.ts.map +0 -1
  574. package/dist/types/src/capabilities/settings.d.ts +0 -4
  575. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  576. package/dist/types/src/capabilities/spaces-ready.d.ts +0 -4
  577. package/dist/types/src/capabilities/spaces-ready.d.ts.map +0 -1
  578. package/dist/types/src/capabilities/state.d.ts +0 -5
  579. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  580. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  581. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  582. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  583. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  584. package/dist/types/src/components/MembersContainer.stories.d.ts +0 -8
  585. package/dist/types/src/components/MembersContainer.stories.d.ts.map +0 -1
  586. package/dist/types/src/components/ObjectDetailsPanel.d.ts +0 -9
  587. package/dist/types/src/components/ObjectDetailsPanel.d.ts.map +0 -1
  588. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +0 -7
  589. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  590. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
  591. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +0 -8
  592. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
  593. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +0 -8
  594. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
  595. package/dist/types/src/components/ObjectSettings/index.d.ts +0 -2
  596. package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
  597. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  598. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  599. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  600. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  601. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  602. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  603. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  604. package/dist/types/src/components/SpacePresence.stories.d.ts +0 -9
  605. package/dist/types/src/components/SpacePresence.stories.d.ts.map +0 -1
  606. package/dist/types/src/events.d.ts +0 -8
  607. package/dist/types/src/events.d.ts.map +0 -1
  608. package/src/capabilities/app-graph-builder.ts +0 -699
  609. package/src/capabilities/app-graph-serializer.ts +0 -76
  610. package/src/capabilities/capabilities.ts +0 -29
  611. package/src/capabilities/identity-created.ts +0 -25
  612. package/src/capabilities/intent-resolver.ts +0 -694
  613. package/src/capabilities/react-root.tsx +0 -20
  614. package/src/capabilities/react-surface.tsx +0 -386
  615. package/src/capabilities/schema-defs.ts +0 -30
  616. package/src/capabilities/schema-tool.test.ts +0 -44
  617. package/src/capabilities/schema-tools.ts +0 -125
  618. package/src/capabilities/settings.ts +0 -21
  619. package/src/capabilities/spaces-ready.ts +0 -231
  620. package/src/capabilities/state.ts +0 -45
  621. package/src/components/CollectionMain.tsx +0 -32
  622. package/src/components/MembersContainer.stories.tsx +0 -30
  623. package/src/components/ObjectDetailsPanel.tsx +0 -77
  624. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +0 -80
  625. package/src/components/ObjectSettings/BaseObjectSettings.tsx +0 -47
  626. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +0 -36
  627. package/src/components/ObjectSettings/index.ts +0 -5
  628. package/src/components/PersistenceStatus.tsx +0 -83
  629. package/src/components/PopoverRenameObject.tsx +0 -62
  630. package/src/events.ts +0 -15
package/src/util.tsx CHANGED
@@ -2,83 +2,58 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Rx } from '@effect-rx/rx-react';
6
- import { pipe } from 'effect';
5
+ import { type Instruction } from '@atlaskit/pragmatic-drag-and-drop-hitbox/tree-item';
6
+ import * as Effect from 'effect/Effect';
7
7
 
8
- import { chain, createIntent, LayoutAction, type PromiseIntentDispatcher } from '@dxos/app-framework';
9
- import { Obj, Ref, Type } from '@dxos/echo';
10
- import { type AnyEchoObject, EXPANDO_TYPENAME } from '@dxos/echo-schema';
8
+ import { type CapabilityManager } from '@dxos/app-framework';
9
+ import { LayoutOperation } from '@dxos/app-toolkit';
10
+ import { type Space, SpaceState, isSpace } from '@dxos/client/echo';
11
+ import { type Database, Filter, Obj, Query, Ref, Type } from '@dxos/echo';
11
12
  import { invariant } from '@dxos/invariant';
12
13
  import { Migrations } from '@dxos/migrations';
13
- import {
14
- ACTION_GROUP_TYPE,
15
- ACTION_TYPE,
16
- type ReadableGraph,
17
- type ActionData,
18
- type InvokeParams,
19
- type Node,
20
- type NodeArg,
21
- isGraphNode,
22
- } from '@dxos/plugin-graph';
23
- import { fullyQualifiedId, getSpace, type QueryResult, SpaceState, type Space, isSpace } from '@dxos/react-client/echo';
24
- import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';
14
+ import { Operation } from '@dxos/operation';
15
+ import { Graph, Node } from '@dxos/plugin-graph';
16
+ import { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention/types';
25
17
  import { type TreeData } from '@dxos/react-ui-list';
26
- import { DataType } from '@dxos/schema';
18
+ import { Collection, Expando } from '@dxos/schema';
19
+ import { createFilename } from '@dxos/util';
27
20
 
28
- import { SPACE_PLUGIN } from './meta';
29
- import { SpaceAction, SPACE_TYPE, type ObjectForm } from './types';
21
+ import { meta } from './meta';
22
+ import { SPACE_TYPE, SpaceOperation } from './types';
30
23
 
31
- export const SPACES = `${SPACE_PLUGIN}-spaces`;
32
- export const COMPOSER_SPACE_LOCK = 'dxos.org/plugin/space/lock';
24
+ export const SPACES = `${meta.id}-spaces`;
25
+ export const COMPOSER_SPACE_LOCK = `${meta.id}/lock`;
33
26
  // TODO(wittjosiah): Remove.
34
27
  export const SHARED = 'shared-spaces';
35
28
 
36
- /**
37
- * Convert a query result to an Rx value of the objects.
38
- */
39
- export const rxFromQuery = <T extends AnyEchoObject>(query: QueryResult<T>): Rx.Rx<T[]> => {
40
- return Rx.make((get) => {
41
- const unsubscribe = query.subscribe((result) => {
42
- get.setSelf(result.objects);
43
- });
44
-
45
- get.addFinalizer(() => unsubscribe());
46
- return query.objects;
47
- });
48
- };
49
-
50
29
  // TODO(wittjosiah): Factor out? Expose via capability?
51
30
  export const getSpaceDisplayName = (
52
31
  space: Space,
53
32
  { personal, namesCache = {} }: { personal?: boolean; namesCache?: Record<string, string> } = {},
54
33
  ): string | [string, { ns: string }] => {
55
34
  return space.state.get() === SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0
56
- ? space.properties.name
35
+ ? space.properties.name!
57
36
  : namesCache[space.id]
58
37
  ? namesCache[space.id]
59
38
  : personal
60
- ? ['personal space label', { ns: SPACE_PLUGIN }]
61
- : ['unnamed space label', { ns: SPACE_PLUGIN }];
39
+ ? ['personal space label', { ns: meta.id }]
40
+ : ['unnamed space label', { ns: meta.id }];
62
41
  };
63
42
 
64
43
  const getCollectionGraphNodePartials = ({
65
44
  collection,
66
- space,
45
+ db,
67
46
  resolve,
68
47
  }: {
69
- collection: DataType.Collection;
70
- space: Space;
48
+ collection: Collection.Collection;
49
+ db: Database.Database;
71
50
  resolve: (typename: string) => Record<string, any>;
72
51
  }) => {
73
52
  return {
74
53
  acceptPersistenceClass: new Set(['echo']),
75
- acceptPersistenceKey: new Set([space.id]),
54
+ acceptPersistenceKey: new Set([db.spaceId]),
76
55
  role: 'branch',
77
- onRearrangeChildren: (nextOrder: unknown[]) => {
78
- // Change on disk.
79
- collection.objects = nextOrder.filter(Obj.isObject).map(Ref.make);
80
- },
81
- onTransferStart: (child: Node<Obj.Any>, index?: number) => {
56
+ onTransferStart: (child: Node.Node<Obj.Unknown>, index?: number) => {
82
57
  // TODO(wittjosiah): Support transfer between spaces.
83
58
  // const childSpace = getSpace(child.data);
84
59
  // if (space && childSpace && !childSpace.key.equals(space.key)) {
@@ -97,22 +72,26 @@ const getCollectionGraphNodePartials = ({
97
72
 
98
73
  // Add child to destination collection.
99
74
  // TODO(dmaretskyi): Compare by id.
100
- if (!collection.objects.find((object) => object.target === child.data)) {
101
- if (typeof index !== 'undefined') {
102
- collection.objects.splice(index, 0, Ref.make(child.data));
103
- } else {
104
- collection.objects.push(Ref.make(child.data));
75
+ Obj.change(collection, (c) => {
76
+ if (!c.objects.find((object) => object.target === child.data)) {
77
+ if (typeof index !== 'undefined') {
78
+ c.objects.splice(index, 0, Ref.make(child.data));
79
+ } else {
80
+ c.objects.push(Ref.make(child.data));
81
+ }
105
82
  }
106
- }
83
+ });
107
84
 
108
85
  // }
109
86
  },
110
- onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {
87
+ onTransferEnd: (child: Node.Node<Obj.Unknown>, destination: Node.Node) => {
111
88
  // Remove child from origin collection.
112
- const index = collection.objects.findIndex((object) => object.target === child.data);
113
- if (index > -1) {
114
- collection.objects.splice(index, 1);
115
- }
89
+ Obj.change(collection, (c) => {
90
+ const index = c.objects.findIndex((object) => object.target === child.data);
91
+ if (index > -1) {
92
+ c.objects.splice(index, 1);
93
+ }
94
+ });
116
95
 
117
96
  // TODO(wittjosiah): Support transfer between spaces.
118
97
  // const childSpace = getSpace(child.data);
@@ -123,46 +102,38 @@ const getCollectionGraphNodePartials = ({
123
102
  // childSpace.db.remove(child.data);
124
103
  // }
125
104
  },
126
- onCopy: async (child: Node<Obj.Any>, index?: number) => {
105
+ onCopy: async (child: Node.Node<Obj.Unknown>, index?: number) => {
127
106
  // Create clone of child and add to destination space.
128
- const newObject = await cloneObject(child.data, resolve, space);
129
- space.db.add(newObject);
130
- if (typeof index !== 'undefined') {
131
- collection.objects.splice(index, 0, Ref.make(newObject));
132
- } else {
133
- collection.objects.push(Ref.make(newObject));
134
- }
107
+ const newObject = await cloneObject(child.data, resolve, db);
108
+ db.add(newObject);
109
+ Obj.change(collection, (c) => {
110
+ if (typeof index !== 'undefined') {
111
+ c.objects.splice(index, 0, Ref.make(newObject));
112
+ } else {
113
+ c.objects.push(Ref.make(newObject));
114
+ }
115
+ });
135
116
  },
136
117
  };
137
118
  };
138
119
 
139
- const getQueryCollectionNodePartials = ({
120
+ const getSystemCollectionNodePartials = ({
140
121
  collection,
141
- space,
122
+ db,
142
123
  resolve,
143
124
  }: {
144
- collection: DataType.QueryCollection;
145
- space: Space;
125
+ collection: Collection.Managed;
126
+ db: Database.Database;
146
127
  resolve: (typename: string) => Record<string, any>;
147
128
  }) => {
129
+ const metadata = resolve(collection.key);
148
130
  return {
149
- icon: collection.query.typename && resolve(collection.query.typename)?.icon,
131
+ label: ['typename label', { ns: collection.key, count: 2 }],
132
+ icon: metadata.icon,
133
+ iconHue: metadata.iconHue,
150
134
  acceptPersistenceClass: new Set(['echo']),
151
- acceptPersistenceKey: new Set([space.id]),
135
+ acceptPersistenceKey: new Set([db.spaceId]),
152
136
  role: 'branch',
153
- canDrop: (source: TreeData) => {
154
- return (
155
- isGraphNode(source.item) &&
156
- Obj.isObject(source.item.data) &&
157
- Obj.getTypename(source.item.data) === collection.query.typename
158
- );
159
- },
160
- onTransferStart: (child: Node<Obj.Any>, index?: number) => {
161
- // No-op. Objects are moved into query collections by being removed from their original collection.
162
- },
163
- onTransferEnd: (child: Node<Obj.Any>, destination: Node) => {
164
- // No-op. Objects are moved out of query collections by being added to another collection.
165
- },
166
137
  };
167
138
  };
168
139
 
@@ -173,24 +144,6 @@ const getSchemaGraphNodePartials = () => {
173
144
  };
174
145
  };
175
146
 
176
- const getViewGraphNodePartials = ({
177
- view,
178
- resolve,
179
- }: {
180
- view: DataType.View;
181
- resolve: (typename: string) => Record<string, any>;
182
- }) => {
183
- const presentation = view.presentation.target;
184
- const typename = presentation ? Obj.getTypename(presentation) : undefined;
185
- const metadata = typename ? resolve(typename) : {};
186
-
187
- return {
188
- label: view.name || ['object name placeholder', { ns: typename, default: 'New view' }],
189
- icon: metadata.icon,
190
- canDrop: () => false,
191
- };
192
- };
193
-
194
147
  const checkPendingMigration = (space: Space) => {
195
148
  return (
196
149
  space.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION ||
@@ -206,21 +159,46 @@ export const constructSpaceNode = ({
206
159
  personal,
207
160
  namesCache,
208
161
  resolve,
162
+ graph,
163
+ spacesOrder,
209
164
  }: {
210
165
  space: Space;
211
166
  navigable?: boolean;
212
167
  personal?: boolean;
213
168
  namesCache?: Record<string, string>;
214
169
  resolve: (typename: string) => Record<string, any>;
170
+ /** Graph for sorting edges on rearrange. */
171
+ graph?: Graph.ExpandableGraph;
172
+ // TODO(wittjosiah): Should be Type.Expando but it doesn't work with the AtomQuery result type.
173
+ /** Spaces order object for persisting workspace order. */
174
+ spacesOrder?: Obj.Any;
215
175
  }) => {
216
176
  const hasPendingMigration = checkPendingMigration(space);
217
177
  const collection =
218
- space.state.get() === SpaceState.SPACE_READY && space.properties[DataType.Collection.typename]?.target;
178
+ space.state.get() === SpaceState.SPACE_READY && space.properties[Collection.Collection.typename]?.target;
219
179
  const partials =
220
- space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(DataType.Collection, collection)
221
- ? getCollectionGraphNodePartials({ collection, space, resolve })
180
+ space.state.get() === SpaceState.SPACE_READY && Obj.instanceOf(Collection.Collection, collection)
181
+ ? getCollectionGraphNodePartials({ collection, db: space.db, resolve })
222
182
  : {};
223
183
 
184
+ const onRearrange =
185
+ graph && spacesOrder
186
+ ? (nextOrder: Space[]) => {
187
+ // NOTE: This is needed to ensure order is updated by next animation frame.
188
+ Graph.sortEdges(
189
+ graph,
190
+ Node.RootId,
191
+ 'outbound',
192
+ nextOrder.map(({ id }) => id),
193
+ );
194
+
195
+ // Persist order to database.
196
+ Obj.change(spacesOrder, (mutableOrder: any) => {
197
+ mutableOrder.order = nextOrder.map(({ id }) => id);
198
+ });
199
+ }
200
+ : undefined;
201
+
224
202
  return {
225
203
  id: space.id,
226
204
  type: SPACE_TYPE,
@@ -235,8 +213,11 @@ export const constructSpaceNode = ({
235
213
  space.state.get() === SpaceState.SPACE_READY && space.properties.icon
236
214
  ? `ph--${space.properties.icon}--regular`
237
215
  : undefined,
216
+ iconHue: space.state.get() === SpaceState.SPACE_READY && space.properties.iconHue,
238
217
  disabled: !navigable || space.state.get() !== SpaceState.SPACE_READY || hasPendingMigration,
218
+ disposition: 'workspace',
239
219
  testId: 'spacePlugin.space',
220
+ onRearrange,
240
221
  canDrop: (source: TreeData) => {
241
222
  // TODO(wittjosiah): Find a way to only allow space as source for rearranging.
242
223
  return Obj.isObject(source.item.data) || isSpace(source.item.data);
@@ -245,41 +226,44 @@ export const constructSpaceNode = ({
245
226
  nodes: [
246
227
  {
247
228
  id: `settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
248
- type: `${SPACE_PLUGIN}/settings`,
229
+ type: `${meta.id}/settings`,
249
230
  data: null,
250
231
  properties: {
251
- label: ['settings panel label', { ns: SPACE_PLUGIN }],
232
+ label: ['settings panel label', { ns: meta.id }],
252
233
  icon: 'ph--faders--regular',
253
234
  disposition: 'alternate-tree',
254
235
  },
255
236
  nodes: [
256
237
  {
257
238
  id: `properties-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
258
- type: `${SPACE_PLUGIN}/properties`,
259
- data: `${SPACE_PLUGIN}/properties`,
239
+ type: `${meta.id}/properties`,
240
+ data: `${meta.id}/properties`,
260
241
  properties: {
261
- label: ['space settings properties label', { ns: SPACE_PLUGIN }],
242
+ label: ['space settings properties label', { ns: meta.id }],
262
243
  icon: 'ph--sliders--regular',
263
244
  position: 'hoist',
245
+ testId: 'spacePlugin.general',
264
246
  },
265
247
  },
266
248
  {
267
249
  id: `members-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
268
- type: `${SPACE_PLUGIN}/members`,
269
- data: `${SPACE_PLUGIN}/members`,
250
+ type: `${meta.id}/members`,
251
+ data: `${meta.id}/members`,
270
252
  properties: {
271
- label: ['members panel label', { ns: SPACE_PLUGIN }],
253
+ label: ['members panel label', { ns: meta.id }],
272
254
  icon: 'ph--users--regular',
273
255
  position: 'hoist',
256
+ testId: 'spacePlugin.members',
274
257
  },
275
258
  },
276
259
  {
277
260
  id: `schema-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`,
278
- type: `${SPACE_PLUGIN}/schema`,
279
- data: `${SPACE_PLUGIN}/schema`,
261
+ type: `${meta.id}/schema`,
262
+ data: `${meta.id}/schema`,
280
263
  properties: {
281
- label: ['space settings schema label', { ns: SPACE_PLUGIN }],
264
+ label: ['space settings schema label', { ns: meta.id }],
282
265
  icon: 'ph--shapes--regular',
266
+ testId: 'spacePlugin.schema',
283
267
  },
284
268
  },
285
269
  ],
@@ -290,29 +274,25 @@ export const constructSpaceNode = ({
290
274
 
291
275
  export const constructSpaceActions = ({
292
276
  space,
293
- dispatch,
294
277
  personal,
295
278
  migrating,
296
279
  }: {
297
280
  space: Space;
298
- dispatch: PromiseIntentDispatcher;
299
281
  personal?: boolean;
300
282
  migrating?: boolean;
301
283
  }) => {
302
284
  const state = space.state.get();
303
285
  const hasPendingMigration = checkPendingMigration(space);
304
286
  const getId = (id: string) => `${id}/${space.id}`;
305
- const actions: NodeArg<ActionData>[] = [];
287
+ const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [];
306
288
 
307
289
  if (hasPendingMigration) {
308
290
  actions.push({
309
- id: getId(SpaceAction.Migrate._tag),
310
- type: ACTION_GROUP_TYPE,
311
- data: async () => {
312
- await dispatch(createIntent(SpaceAction.Migrate, { space }));
313
- },
291
+ id: getId(SpaceOperation.Migrate.meta.key),
292
+ type: Node.ActionGroupType,
293
+ data: () => Operation.invoke(SpaceOperation.Migrate, { space }),
314
294
  properties: {
315
- label: ['migrate space label', { ns: SPACE_PLUGIN }],
295
+ label: ['migrate space label', { ns: meta.id }],
316
296
  icon: 'ph--database--regular',
317
297
  disposition: 'list-item-primary',
318
298
  disabled: migrating || Migrations.running(space),
@@ -323,26 +303,22 @@ export const constructSpaceActions = ({
323
303
  if (state === SpaceState.SPACE_READY && !hasPendingMigration) {
324
304
  actions.push(
325
305
  {
326
- id: getId(SpaceAction.OpenCreateObject._tag),
327
- type: ACTION_TYPE,
328
- data: async () => {
329
- await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: space }));
330
- },
306
+ id: getId(SpaceOperation.OpenCreateObject.meta.key),
307
+ type: Node.ActionType,
308
+ data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: space.db }),
331
309
  properties: {
332
- label: ['create object in space label', { ns: SPACE_PLUGIN }],
310
+ label: ['create object in space label', { ns: meta.id }],
333
311
  icon: 'ph--plus--regular',
334
- disposition: 'item',
312
+ disposition: 'list-item-primary',
335
313
  testId: 'spacePlugin.createObject',
336
314
  },
337
315
  },
338
316
  {
339
- id: getId(SpaceAction.Rename._tag),
340
- type: ACTION_TYPE,
341
- data: async (params?: InvokeParams) => {
342
- await dispatch(createIntent(SpaceAction.Rename, { space, caller: params?.caller }));
343
- },
317
+ id: getId(SpaceOperation.Rename.meta.key),
318
+ type: Node.ActionType,
319
+ data: (params?: Node.InvokeProps) => Operation.invoke(SpaceOperation.Rename, { space, caller: params?.caller }),
344
320
  properties: {
345
- label: ['rename space label', { ns: SPACE_PLUGIN }],
321
+ label: ['rename space label', { ns: meta.id }],
346
322
  icon: 'ph--pencil-simple-line--regular',
347
323
  keyBinding: {
348
324
  macos: 'shift+F6',
@@ -356,15 +332,17 @@ export const constructSpaceActions = ({
356
332
  return actions;
357
333
  };
358
334
 
359
- export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Obj.Any; space: Space }) => {
335
+ export const createStaticSchemaNode = ({ schema, space }: { schema: Type.Entity.Any; space: Space }): Node.Node => {
360
336
  return {
361
337
  id: `${space.id}/${Type.getTypename(schema)}`,
362
- type: `${SPACE_PLUGIN}/static-schema`,
338
+ type: `${meta.id}/static-schema`,
363
339
  data: schema,
364
340
  properties: {
365
- label: ['typename label', { ns: Type.getTypename(schema), default: Type.getTypename(schema) }],
341
+ label: ['typename label', { ns: Type.getTypename(schema), count: 2, default: Type.getTypename(schema) }],
366
342
  icon: 'ph--database--regular',
343
+ iconHue: 'green',
367
344
  role: 'branch',
345
+ selectable: false,
368
346
  canDrop: () => false,
369
347
  space,
370
348
  },
@@ -382,15 +360,29 @@ export const createStaticSchemaActions = ({
382
360
  }) => {
383
361
  const getId = (id: string) => `${space.id}/${Type.getTypename(schema)}/${id}`;
384
362
 
385
- const actions: NodeArg<ActionData>[] = [
363
+ const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [
386
364
  {
387
- id: getId(SpaceAction.RenameObject._tag),
388
- type: ACTION_TYPE,
389
- data: async (params?: InvokeParams) => {
390
- throw new Error('Not implemented');
365
+ id: getId(SpaceOperation.AddObject.meta.key),
366
+ type: Node.ActionType,
367
+ data: () =>
368
+ Operation.invoke(SpaceOperation.OpenCreateObject, {
369
+ target: space.db,
370
+ views: true,
371
+ initialFormValues: { typename: Type.getTypename(schema) },
372
+ }),
373
+ properties: {
374
+ label: ['add view to schema label', { ns: meta.id }],
375
+ icon: 'ph--plus--regular',
376
+ disposition: 'list-item-primary',
377
+ testId: 'spacePlugin.addViewToSchema',
391
378
  },
379
+ },
380
+ {
381
+ id: getId(SpaceOperation.RenameObject.meta.key),
382
+ type: Node.ActionType,
383
+ data: () => Effect.fail(new Error('Not implemented')),
392
384
  properties: {
393
- label: ['rename object label', { ns: Type.getTypename(DataType.StoredSchema) }],
385
+ label: ['rename object label', { ns: Type.getTypename(Type.PersistentType) }],
394
386
  icon: 'ph--pencil-simple-line--regular',
395
387
  disabled: true,
396
388
  disposition: 'list-item',
@@ -398,75 +390,136 @@ export const createStaticSchemaActions = ({
398
390
  },
399
391
  },
400
392
  {
401
- id: getId(SpaceAction.RemoveObjects._tag),
402
- type: ACTION_TYPE,
403
- data: async () => {
404
- const index = space.properties.staticRecords.findIndex(
405
- (typename: string) => typename === Type.getTypename(schema),
406
- );
407
- if (index > -1) {
408
- space.properties.staticRecords.splice(index, 1);
409
- }
410
- },
393
+ id: getId(SpaceOperation.RemoveObjects.meta.key),
394
+ type: Node.ActionType,
395
+ data: () =>
396
+ Effect.sync(() => {
397
+ const index = space.properties.staticRecords.findIndex(
398
+ (typename: string) => typename === Type.getTypename(schema),
399
+ );
400
+ if (index > -1) {
401
+ Obj.change(space.properties, (p) => {
402
+ p.staticRecords.splice(index, 1);
403
+ });
404
+ }
405
+ }),
411
406
  properties: {
412
- label: ['delete object label', { ns: Type.getTypename(DataType.StoredSchema) }],
407
+ label: ['delete object label', { ns: Type.getTypename(Type.PersistentType) }],
413
408
  icon: 'ph--trash--regular',
414
409
  disposition: 'list-item',
415
410
  disabled: !deletable,
416
411
  testId: 'spacePlugin.deleteObject',
417
412
  },
418
413
  },
414
+ {
415
+ id: getId(SpaceOperation.Snapshot.meta.key),
416
+ type: Node.ActionType,
417
+ data: Effect.fnUntraced(function* () {
418
+ const result = yield* Operation.invoke(SpaceOperation.Snapshot, {
419
+ db: space.db,
420
+ query: Query.select(Filter.type(schema)).ast,
421
+ });
422
+ if (result.snapshot) {
423
+ yield* Effect.tryPromise(() =>
424
+ downloadBlob(result.snapshot, createFilename({ parts: [space.id, Type.getTypename(schema)], ext: 'json' })),
425
+ );
426
+ }
427
+ }),
428
+ properties: {
429
+ label: ['snapshot by schema label', { ns: meta.id }],
430
+ icon: 'ph--camera--regular',
431
+ disposition: 'list-item',
432
+ },
433
+ },
419
434
  ];
420
435
 
421
436
  return actions;
422
437
  };
423
438
 
424
439
  export const createObjectNode = ({
425
- space,
440
+ db,
426
441
  object,
442
+ disposition,
427
443
  droppable = true,
428
444
  navigable = false,
445
+ managedCollectionChild = false,
429
446
  resolve,
447
+ parentCollection,
430
448
  }: {
431
- space: Space;
432
- object: Obj.Any;
449
+ db: Database.Database;
450
+ object: Obj.Unknown;
451
+ disposition?: string;
433
452
  droppable?: boolean;
434
453
  navigable?: boolean;
454
+ managedCollectionChild?: boolean;
435
455
  resolve: (typename: string) => Record<string, any>;
456
+ /** Parent collection for rearranging objects. */
457
+ parentCollection?: Collection.Collection;
436
458
  }) => {
437
459
  const type = Obj.getTypename(object);
438
460
  if (!type) {
439
- return undefined;
461
+ return null;
440
462
  }
441
463
 
442
464
  const metadata = resolve(type);
443
- const partials = Obj.instanceOf(DataType.Collection, object)
444
- ? getCollectionGraphNodePartials({ collection: object, space, resolve })
445
- : Obj.instanceOf(DataType.QueryCollection, object)
446
- ? getQueryCollectionNodePartials({ collection: object, space, resolve })
447
- : Obj.instanceOf(DataType.StoredSchema, object)
465
+ const partials = Obj.instanceOf(Collection.Collection, object)
466
+ ? getCollectionGraphNodePartials({ collection: object, db, resolve })
467
+ : Obj.instanceOf(Collection.Managed, object)
468
+ ? getSystemCollectionNodePartials({ collection: object, db, resolve })
469
+ : Obj.instanceOf(Type.PersistentType, object)
448
470
  ? getSchemaGraphNodePartials()
449
- : Obj.instanceOf(DataType.View, object)
450
- ? getViewGraphNodePartials({ view: object, resolve })
451
- : metadata.graphProps;
471
+ : metadata.graphProps;
452
472
 
453
- const label = Obj.getLabel(object) ||
473
+ // TODO(wittjosiah): Obj.getLabel isn't triggering reactivity in some cases.
474
+ // e.g., create new collection with no name and rename it.
475
+ const label = (object as any).name ||
476
+ Obj.getLabel(object) ||
454
477
  // TODO(wittjosiah): Remove metadata labels.
455
478
  metadata.label?.(object) || ['object name placeholder', { ns: type, default: 'New item' }];
456
479
 
480
+ const selectable =
481
+ (!Obj.instanceOf(Type.PersistentType, object) &&
482
+ !Obj.instanceOf(Collection.Managed, object) &&
483
+ !Obj.instanceOf(Collection.Collection, object)) ||
484
+ (navigable && Obj.instanceOf(Collection.Collection, object));
485
+
457
486
  return {
458
- id: fullyQualifiedId(object),
487
+ id: Obj.getDXN(object).toString(),
459
488
  type,
460
489
  cacheable: ['label', 'icon', 'role'],
461
490
  data: object,
462
491
  properties: {
463
492
  label,
464
493
  icon: metadata.icon ?? 'ph--placeholder--regular',
494
+ iconHue: metadata.iconHue,
495
+ disposition,
465
496
  testId: 'spacePlugin.object',
466
497
  persistenceClass: 'echo',
467
- persistenceKey: space?.id,
498
+ persistenceKey: db.spaceId,
499
+ selectable,
500
+ managedCollectionChild,
501
+ onRearrange: parentCollection
502
+ ? (nextOrder: unknown[]) => {
503
+ Obj.change(parentCollection, (c) => {
504
+ c.objects = nextOrder.filter(Obj.isObject).map(Ref.make);
505
+ });
506
+ }
507
+ : undefined,
508
+ blockInstruction: (source: TreeData, instruction: Instruction) => {
509
+ if (source.item.properties.managedCollectionChild) {
510
+ // TODO(wittjosiah): Support reordering system collections.
511
+ // return !(managedCollectionChild && source.item.type === type && instruction.type.startsWith('reorder'));
512
+ return true;
513
+ }
514
+
515
+ if (Obj.instanceOf(Collection.Managed, object)) {
516
+ return !instruction.type.startsWith('reorder');
517
+ }
518
+
519
+ return managedCollectionChild;
520
+ },
468
521
  canDrop: (source: TreeData) => {
469
- return droppable && isGraphNode(source.item) && Obj.isObject(source.item.data);
522
+ return droppable && Node.isGraphNode(source.item) && Obj.isObject(source.item.data);
470
523
  },
471
524
  ...partials,
472
525
  },
@@ -476,41 +529,41 @@ export const createObjectNode = ({
476
529
  export const constructObjectActions = ({
477
530
  object,
478
531
  graph,
479
- dispatch,
480
- objectForms,
532
+ resolve,
533
+ capabilities,
481
534
  deletable = true,
482
535
  navigable = false,
536
+ shareableLinkOrigin,
483
537
  }: {
484
- object: Obj.Any;
485
- graph: ReadableGraph;
486
- dispatch: PromiseIntentDispatcher;
487
- objectForms: ObjectForm<any>[];
538
+ object: Obj.Unknown;
539
+ graph: Graph.ReadableGraph;
540
+ resolve: (typename: string) => Record<string, any>;
541
+ capabilities: CapabilityManager.CapabilityManager;
542
+ shareableLinkOrigin: string;
488
543
  deletable?: boolean;
489
544
  navigable?: boolean;
490
545
  }) => {
491
- const space = getSpace(object);
492
- invariant(space, 'Space not found');
546
+ const db = Obj.getDatabase(object);
547
+ invariant(db, 'Database not found');
493
548
  const typename = Obj.getTypename(object);
494
549
  invariant(typename, 'Object has no typename');
495
550
 
496
- const getId = (id: string) => `${id}/${fullyQualifiedId(object)}`;
551
+ const getId = (id: string) => `${id}/${Obj.getDXN(object).toString()}`;
497
552
 
498
- const queryCollection = Obj.instanceOf(DataType.QueryCollection, object) ? object : undefined;
499
- const matchingObjectForm = queryCollection
500
- ? objectForms.find((form) => Type.getTypename(form.objectSchema) === queryCollection.query.typename)
501
- : undefined;
553
+ const managedCollection = Obj.instanceOf(Collection.Managed, object) ? object : undefined;
554
+ const metadata = managedCollection ? resolve(managedCollection.key) : {};
555
+ const createObject = metadata.createObject;
556
+ const inputSchema = metadata.inputSchema;
502
557
 
503
- const actions: NodeArg<ActionData>[] = [
504
- ...(Obj.instanceOf(DataType.Collection, object)
558
+ const actions: Node.NodeArg<Node.ActionData<Operation.Service>>[] = [
559
+ ...(Obj.instanceOf(Collection.Collection, object)
505
560
  ? [
506
561
  {
507
- id: getId(SpaceAction.OpenCreateObject._tag),
508
- type: ACTION_TYPE,
509
- data: async () => {
510
- await dispatch(createIntent(SpaceAction.OpenCreateObject, { target: object }));
511
- },
562
+ id: getId(SpaceOperation.OpenCreateObject.meta.key),
563
+ type: Node.ActionType,
564
+ data: () => Operation.invoke(SpaceOperation.OpenCreateObject, { target: object }),
512
565
  properties: {
513
- label: ['create object in collection label', { ns: SPACE_PLUGIN }],
566
+ label: ['create object in collection label', { ns: meta.id }],
514
567
  icon: 'ph--plus--regular',
515
568
  disposition: 'list-item-primary',
516
569
  testId: 'spacePlugin.createObject',
@@ -518,31 +571,75 @@ export const constructObjectActions = ({
518
571
  },
519
572
  ]
520
573
  : []),
521
- ...(matchingObjectForm
574
+ ...(Obj.instanceOf(Type.PersistentType, object)
522
575
  ? [
523
576
  {
524
- id: getId(SpaceAction.OpenCreateObject._tag),
525
- type: ACTION_TYPE,
526
- data: async () => {
527
- if (matchingObjectForm.formSchema) {
528
- await dispatch(
529
- createIntent(SpaceAction.OpenCreateObject, {
530
- target: space,
531
- typename: queryCollection?.query.typename,
532
- }),
533
- );
534
- } else {
535
- await dispatch(
536
- pipe(
537
- matchingObjectForm.getIntent({}, { space }),
538
- chain(SpaceAction.AddObject, { target: space, hidden: true }),
539
- chain(LayoutAction.Open, { part: 'main' }),
540
- ),
577
+ id: getId(SpaceOperation.AddObject.meta.key),
578
+ type: Node.ActionType,
579
+ data: () =>
580
+ Operation.invoke(SpaceOperation.OpenCreateObject, {
581
+ target: db,
582
+ views: true,
583
+ initialFormValues: { typename: object.typename },
584
+ }),
585
+ properties: {
586
+ label: ['add view to schema label', { ns: meta.id }],
587
+ icon: 'ph--plus--regular',
588
+ disposition: 'list-item-primary',
589
+ testId: 'spacePlugin.addViewToSchema',
590
+ },
591
+ },
592
+ {
593
+ id: getId(SpaceOperation.Snapshot.meta.key),
594
+ type: Node.ActionType,
595
+ data: Effect.fnUntraced(function* () {
596
+ const result = yield* Operation.invoke(SpaceOperation.Snapshot, {
597
+ db,
598
+ query: Query.select(Filter.type(Type.toEffectSchema(object.jsonSchema))).ast,
599
+ });
600
+ if (result.snapshot) {
601
+ yield* Effect.promise(() =>
602
+ downloadBlob(result.snapshot, createFilename({ parts: [db.spaceId, object.typename], ext: 'json' })),
541
603
  );
542
604
  }
605
+ }),
606
+ properties: {
607
+ label: ['snapshot by schema label', { ns: meta.id }],
608
+ icon: 'ph--camera--regular',
609
+ disposition: 'list-item',
543
610
  },
611
+ },
612
+ ]
613
+ : []),
614
+ ...(createObject
615
+ ? [
616
+ {
617
+ id: getId(SpaceOperation.OpenCreateObject.meta.key),
618
+ type: Node.ActionType,
619
+ data: Effect.fnUntraced(function* () {
620
+ if (inputSchema) {
621
+ yield* Operation.invoke(SpaceOperation.OpenCreateObject, {
622
+ target: db,
623
+ typename: managedCollection ? managedCollection.key : undefined,
624
+ });
625
+ } else {
626
+ const createdObject = yield* createObject({}, { db, capabilities }) as Effect.Effect<
627
+ Obj.Unknown,
628
+ Error,
629
+ never
630
+ >;
631
+ const addResult = yield* Operation.invoke(SpaceOperation.AddObject, {
632
+ target: db,
633
+ hidden: true,
634
+ object: createdObject,
635
+ });
636
+ if (addResult.id) {
637
+ yield* Operation.invoke(LayoutOperation.Open, { subject: [addResult.id] });
638
+ }
639
+ }
640
+ }),
544
641
  properties: {
545
- label: ['create object in smart collection label', { ns: SPACE_PLUGIN }],
642
+ label: ['create object in system collection label', { ns: meta.id }],
546
643
  icon: 'ph--plus--regular',
547
644
  disposition: 'list-item-primary',
548
645
  testId: 'spacePlugin.createObject',
@@ -550,56 +647,61 @@ export const constructObjectActions = ({
550
647
  },
551
648
  ]
552
649
  : []),
553
- {
554
- id: getId(SpaceAction.RenameObject._tag),
555
- type: ACTION_TYPE,
556
- data: async (params?: InvokeParams) => {
557
- await dispatch(createIntent(SpaceAction.RenameObject, { object, caller: params?.caller }));
558
- },
559
- properties: {
560
- label: ['rename object label', { ns: typename }],
561
- icon: 'ph--pencil-simple-line--regular',
562
- disposition: 'list-item',
563
- // TODO(wittjosiah): Not working.
564
- // keyBinding: {
565
- // macos: 'shift+F6',
566
- // },
567
- testId: 'spacePlugin.renameObject',
568
- },
569
- },
570
- {
571
- id: getId(SpaceAction.RemoveObjects._tag),
572
- type: ACTION_TYPE,
573
- data: async () => {
574
- const collection = graph
575
- .getConnections(fullyQualifiedId(object), 'inbound')
576
- .find(({ data }) => Obj.instanceOf(DataType.Collection, data))?.data;
577
- await dispatch(createIntent(SpaceAction.RemoveObjects, { objects: [object], target: collection }));
578
- },
579
- properties: {
580
- label: ['delete object label', { ns: typename }],
581
- icon: 'ph--trash--regular',
582
- disposition: 'list-item',
583
- disabled: !deletable,
584
- // TODO(wittjosiah): This is a browser shortcut.
585
- // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
586
- testId: 'spacePlugin.deleteObject',
587
- },
588
- },
650
+ ...(managedCollection
651
+ ? []
652
+ : [
653
+ {
654
+ id: getId(SpaceOperation.RenameObject.meta.key),
655
+ type: Node.ActionType,
656
+ data: (params?: Node.InvokeProps) =>
657
+ Operation.invoke(SpaceOperation.RenameObject, { object, caller: params?.caller }),
658
+ properties: {
659
+ label: ['rename object label', { ns: typename }],
660
+ icon: 'ph--pencil-simple-line--regular',
661
+ disposition: 'list-item',
662
+ // TODO(wittjosiah): Not working.
663
+ // keyBinding: {
664
+ // macos: 'shift+F6',
665
+ // },
666
+ testId: 'spacePlugin.renameObject',
667
+ },
668
+ },
669
+ {
670
+ id: getId(SpaceOperation.RemoveObjects.meta.key),
671
+ type: Node.ActionType,
672
+ data: Effect.fnUntraced(function* () {
673
+ const collection = Graph.getConnections(graph, Obj.getDXN(object).toString(), 'inbound').find(
674
+ (node: Node.Node): node is Node.Node<Collection.Collection> =>
675
+ Obj.instanceOf(Collection.Collection, node.data),
676
+ )?.data;
677
+ yield* Operation.invoke(SpaceOperation.RemoveObjects, { objects: [object], target: collection });
678
+ }),
679
+ properties: {
680
+ label: ['delete object label', { ns: typename }],
681
+ icon: 'ph--trash--regular',
682
+ disposition: 'list-item',
683
+ disabled: !deletable,
684
+ // TODO(wittjosiah): This is a browser shortcut.
685
+ // keyBinding: object instanceof CollectionType ? undefined : 'shift+meta+Backspace',
686
+ testId: 'spacePlugin.deleteObject',
687
+ },
688
+ },
689
+ ]),
589
690
  ...(navigable ||
590
- (!Obj.instanceOf(DataType.Collection, object) &&
591
- !Obj.instanceOf(DataType.QueryCollection, object) &&
592
- !Obj.instanceOf(DataType.StoredSchema, object))
691
+ (!Obj.instanceOf(Collection.Collection, object) &&
692
+ !Obj.instanceOf(Collection.Managed, object) &&
693
+ !Obj.instanceOf(Type.PersistentType, object))
593
694
  ? [
594
695
  {
595
696
  id: getId('copy-link'),
596
- type: ACTION_TYPE,
597
- data: async () => {
598
- const url = `${window.location.origin}/${space.id}/${fullyQualifiedId(object)}`;
599
- await navigator.clipboard.writeText(url);
600
- },
697
+ type: Node.ActionType,
698
+ data: () =>
699
+ Effect.promise(async () => {
700
+ const url = `${shareableLinkOrigin}/${db.spaceId}/${Obj.getDXN(object).toString()}`;
701
+ await navigator.clipboard.writeText(url);
702
+ }),
601
703
  properties: {
602
- label: ['copy link label', { ns: SPACE_PLUGIN }],
704
+ label: ['copy link label', { ns: meta.id }],
603
705
  icon: 'ph--link--regular',
604
706
  disposition: 'list-item',
605
707
  testId: 'spacePlugin.copyLink',
@@ -609,13 +711,11 @@ export const constructObjectActions = ({
609
711
  : []),
610
712
  // TODO(wittjosiah): Factor out and apply to all nodes.
611
713
  {
612
- id: getId(LayoutAction.Expose._tag),
613
- type: ACTION_TYPE,
614
- data: async () => {
615
- await dispatch(createIntent(LayoutAction.Expose, { part: 'navigation', subject: fullyQualifiedId(object) }));
616
- },
714
+ id: getId(LayoutOperation.Expose.meta.key),
715
+ type: Node.ActionType,
716
+ data: () => Operation.invoke(LayoutOperation.Expose, { subject: Obj.getDXN(object).toString() }),
617
717
  properties: {
618
- label: ['expose object label', { ns: SPACE_PLUGIN }],
718
+ label: ['expose object label', { ns: meta.id }],
619
719
  icon: 'ph--eye--regular',
620
720
  disposition: 'heading-list-item',
621
721
  testId: 'spacePlugin.exposeObject',
@@ -626,13 +726,27 @@ export const constructObjectActions = ({
626
726
  return actions;
627
727
  };
628
728
 
729
+ // TODO(wittjosiah): Factor out.
730
+ const downloadBlob = async (blob: Blob, filename: string) => {
731
+ const url = URL.createObjectURL(blob);
732
+ const a = document.createElement('a');
733
+ a.href = url;
734
+ a.download = filename;
735
+
736
+ document.body.appendChild(a);
737
+ a.click();
738
+
739
+ document.body.removeChild(a);
740
+ URL.revokeObjectURL(url);
741
+ };
742
+
629
743
  /**
630
744
  * @deprecated This is a temporary solution.
631
745
  */
632
746
  export const getNestedObjects = async (
633
- object: Obj.Any,
747
+ object: Obj.Unknown,
634
748
  resolve: (typename: string) => Record<string, any>,
635
- ): Promise<Obj.Any[]> => {
749
+ ): Promise<Obj.Unknown[]> => {
636
750
  const type = Obj.getTypename(object);
637
751
  if (!type) {
638
752
  return [];
@@ -644,7 +758,7 @@ export const getNestedObjects = async (
644
758
  return [];
645
759
  }
646
760
 
647
- const objects: Obj.Any[] = await loadReferences(object);
761
+ const objects: Obj.Unknown[] = await loadReferences(object);
648
762
  const nested = await Promise.all(objects.map((object) => getNestedObjects(object, resolve)));
649
763
  return [...objects, ...nested.flat()];
650
764
  };
@@ -654,15 +768,15 @@ export const getNestedObjects = async (
654
768
  */
655
769
  // TODO(burdon): Remove.
656
770
  export const cloneObject = async (
657
- object: Type.Expando,
771
+ object: Obj.Unknown,
658
772
  resolve: (typename: string) => Record<string, any>,
659
- newSpace: Space,
660
- ): Promise<Type.Expando> => {
773
+ newDb: Database.Database,
774
+ ): Promise<Obj.Unknown> => {
661
775
  const schema = Obj.getSchema(object);
662
- const typename = schema ? (Type.getTypename(schema) ?? EXPANDO_TYPENAME) : EXPANDO_TYPENAME;
776
+ const typename = schema ? (Type.getTypename(schema) ?? Expando.Expando.typename) : Expando.Expando.typename;
663
777
  const metadata = resolve(typename);
664
778
  const serializer = metadata.serializer;
665
779
  invariant(serializer, `No serializer for type: ${typename}`);
666
780
  const content = await serializer.serialize({ object });
667
- return serializer.deserialize({ content, space: newSpace, newId: true });
781
+ return serializer.deserialize({ content, db: newDb, newId: true });
668
782
  };