@dxos/plugin-space 0.8.4-main.1da679c → 0.8.4-main.21d9917

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