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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (626) hide show
  1. package/dist/lib/browser/CollectionArticle-XXLUNK3F.mjs +127 -0
  2. package/dist/lib/browser/CollectionArticle-XXLUNK3F.mjs.map +7 -0
  3. package/dist/lib/browser/ObjectCardStack-CXNBCSMR.mjs +148 -0
  4. package/dist/lib/browser/ObjectCardStack-CXNBCSMR.mjs.map +7 -0
  5. package/dist/lib/browser/ObjectDetails-HXV4IQEM.mjs +143 -0
  6. package/dist/lib/browser/ObjectDetails-HXV4IQEM.mjs.map +7 -0
  7. package/dist/lib/browser/RecordArticle-36LDKFWF.mjs +108 -0
  8. package/dist/lib/browser/RecordArticle-36LDKFWF.mjs.map +7 -0
  9. package/dist/lib/browser/app-graph-builder-GLV46QSI.mjs +530 -0
  10. package/dist/lib/browser/app-graph-builder-GLV46QSI.mjs.map +7 -0
  11. package/dist/lib/browser/app-graph-serializer-VOLRDNVE.mjs +85 -0
  12. package/dist/lib/browser/app-graph-serializer-VOLRDNVE.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-PTGRQQ6J.mjs → chunk-7D63MVRS.mjs} +68 -63
  14. package/dist/lib/browser/chunk-7D63MVRS.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-A7ZCVQGZ.mjs +118 -0
  16. package/dist/lib/browser/chunk-A7ZCVQGZ.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-ASV6DYFH.mjs +19 -0
  18. package/dist/lib/browser/chunk-ASV6DYFH.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-CMLRMQNM.mjs +1889 -0
  20. package/dist/lib/browser/chunk-CMLRMQNM.mjs.map +7 -0
  21. package/dist/lib/browser/chunk-HSMQFM57.mjs +16 -0
  22. package/dist/lib/browser/chunk-HSMQFM57.mjs.map +7 -0
  23. package/dist/lib/browser/chunk-KGLWYGIF.mjs +715 -0
  24. package/dist/lib/browser/chunk-KGLWYGIF.mjs.map +7 -0
  25. package/dist/lib/browser/chunk-NF3ZFAB4.mjs +13 -0
  26. package/dist/lib/browser/chunk-NF3ZFAB4.mjs.map +7 -0
  27. package/dist/lib/browser/chunk-WAOJLA2S.mjs +772 -0
  28. package/dist/lib/browser/chunk-WAOJLA2S.mjs.map +7 -0
  29. package/dist/lib/browser/cli/index.mjs +851 -0
  30. package/dist/lib/browser/cli/index.mjs.map +7 -0
  31. package/dist/lib/browser/identity-created-VCFYLSBB.mjs +23 -0
  32. package/dist/lib/browser/identity-created-VCFYLSBB.mjs.map +7 -0
  33. package/dist/lib/browser/index.mjs +235 -239
  34. package/dist/lib/browser/index.mjs.map +4 -4
  35. package/dist/lib/browser/meta.json +1 -1
  36. package/dist/lib/browser/operation-resolver-PJJ3PCM7.mjs +830 -0
  37. package/dist/lib/browser/operation-resolver-PJJ3PCM7.mjs.map +7 -0
  38. package/dist/lib/browser/react-root-ITWAPZIY.mjs +30 -0
  39. package/dist/lib/browser/react-root-ITWAPZIY.mjs.map +7 -0
  40. package/dist/lib/browser/react-surface-6GD6K4I4.mjs +383 -0
  41. package/dist/lib/browser/react-surface-6GD6K4I4.mjs.map +7 -0
  42. package/dist/lib/browser/repair-DKU4TUD2.mjs +50 -0
  43. package/dist/lib/browser/repair-DKU4TUD2.mjs.map +7 -0
  44. package/dist/lib/browser/settings-M2DMD2ZA.mjs +34 -0
  45. package/dist/lib/browser/settings-M2DMD2ZA.mjs.map +7 -0
  46. package/dist/lib/browser/spaces-ready-XWJUJ43N.mjs +243 -0
  47. package/dist/lib/browser/spaces-ready-XWJUJ43N.mjs.map +7 -0
  48. package/dist/lib/browser/state-V637BLIM.mjs +58 -0
  49. package/dist/lib/browser/state-V637BLIM.mjs.map +7 -0
  50. package/dist/lib/browser/types/index.mjs +18 -10
  51. package/dist/lib/node-esm/CollectionArticle-KFFKKP37.mjs +128 -0
  52. package/dist/lib/node-esm/CollectionArticle-KFFKKP37.mjs.map +7 -0
  53. package/dist/lib/node-esm/ObjectCardStack-EHXPNRQW.mjs +149 -0
  54. package/dist/lib/node-esm/ObjectCardStack-EHXPNRQW.mjs.map +7 -0
  55. package/dist/lib/node-esm/ObjectDetails-N73UI4ZL.mjs +144 -0
  56. package/dist/lib/node-esm/ObjectDetails-N73UI4ZL.mjs.map +7 -0
  57. package/dist/lib/node-esm/RecordArticle-CMEXNNOZ.mjs +109 -0
  58. package/dist/lib/node-esm/RecordArticle-CMEXNNOZ.mjs.map +7 -0
  59. package/dist/lib/node-esm/app-graph-builder-KCEHEKVS.mjs +531 -0
  60. package/dist/lib/node-esm/app-graph-builder-KCEHEKVS.mjs.map +7 -0
  61. package/dist/lib/node-esm/app-graph-serializer-7C4MV5NB.mjs +86 -0
  62. package/dist/lib/node-esm/app-graph-serializer-7C4MV5NB.mjs.map +7 -0
  63. package/dist/lib/node-esm/chunk-2NM62ORP.mjs +1890 -0
  64. package/dist/lib/node-esm/chunk-2NM62ORP.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-HAKW2RFD.mjs → chunk-5N3YIAXD.mjs} +68 -63
  66. package/dist/lib/node-esm/chunk-5N3YIAXD.mjs.map +7 -0
  67. package/dist/lib/node-esm/chunk-A5A7M37T.mjs +119 -0
  68. package/dist/lib/node-esm/chunk-A5A7M37T.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +20 -0
  70. package/dist/lib/node-esm/chunk-CVXULIYC.mjs.map +7 -0
  71. package/dist/lib/node-esm/chunk-FB5YNROS.mjs +773 -0
  72. package/dist/lib/node-esm/chunk-FB5YNROS.mjs.map +7 -0
  73. package/dist/lib/node-esm/chunk-NYSDQPNM.mjs +716 -0
  74. package/dist/lib/node-esm/chunk-NYSDQPNM.mjs.map +7 -0
  75. package/dist/lib/node-esm/chunk-PG7DNOEX.mjs +15 -0
  76. package/dist/lib/node-esm/chunk-PG7DNOEX.mjs.map +7 -0
  77. package/dist/lib/node-esm/chunk-SL4BJSUG.mjs +18 -0
  78. package/dist/lib/node-esm/chunk-SL4BJSUG.mjs.map +7 -0
  79. package/dist/lib/node-esm/cli/index.mjs +852 -0
  80. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  81. package/dist/lib/node-esm/identity-created-2SJABVJD.mjs +25 -0
  82. package/dist/lib/node-esm/identity-created-2SJABVJD.mjs.map +7 -0
  83. package/dist/lib/node-esm/index.mjs +235 -239
  84. package/dist/lib/node-esm/index.mjs.map +4 -4
  85. package/dist/lib/node-esm/meta.json +1 -1
  86. package/dist/lib/node-esm/operation-resolver-2K7N4KYC.mjs +831 -0
  87. package/dist/lib/node-esm/operation-resolver-2K7N4KYC.mjs.map +7 -0
  88. package/dist/lib/node-esm/react-root-GIQAKDQ2.mjs +31 -0
  89. package/dist/lib/node-esm/react-root-GIQAKDQ2.mjs.map +7 -0
  90. package/dist/lib/node-esm/react-surface-KWP2DNFG.mjs +384 -0
  91. package/dist/lib/node-esm/react-surface-KWP2DNFG.mjs.map +7 -0
  92. package/dist/lib/node-esm/repair-C2H6JQCL.mjs +51 -0
  93. package/dist/lib/node-esm/repair-C2H6JQCL.mjs.map +7 -0
  94. package/dist/lib/node-esm/settings-VCPCNBOY.mjs +35 -0
  95. package/dist/lib/node-esm/settings-VCPCNBOY.mjs.map +7 -0
  96. package/dist/lib/node-esm/spaces-ready-5JOGEWON.mjs +244 -0
  97. package/dist/lib/node-esm/spaces-ready-5JOGEWON.mjs.map +7 -0
  98. package/dist/lib/node-esm/state-5MCEPWN3.mjs +59 -0
  99. package/dist/lib/node-esm/state-5MCEPWN3.mjs.map +7 -0
  100. package/dist/lib/node-esm/types/index.mjs +18 -10
  101. package/dist/types/src/SpacePlugin.d.ts +3 -15
  102. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  103. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +7 -0
  104. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  105. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  106. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  107. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +5 -0
  108. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -0
  109. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +3 -0
  110. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/identity-created/identity-created.d.ts +5 -0
  112. package/dist/types/src/capabilities/identity-created/identity-created.d.ts.map +1 -0
  113. package/dist/types/src/capabilities/identity-created/index.d.ts +3 -0
  114. package/dist/types/src/capabilities/identity-created/index.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/index.d.ts +10 -20
  116. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/operation-resolver/index.d.ts +6 -0
  118. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +9 -0
  120. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
  122. package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
  123. package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
  124. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
  125. package/dist/types/src/capabilities/react-surface/index.d.ts +5 -0
  126. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +8 -0
  128. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  129. package/dist/types/src/capabilities/repair/index.d.ts +3 -0
  130. package/dist/types/src/capabilities/repair/index.d.ts.map +1 -0
  131. package/dist/types/src/capabilities/repair/repair.d.ts +6 -0
  132. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -0
  133. package/dist/types/src/capabilities/settings/index.d.ts +7 -0
  134. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  135. package/dist/types/src/capabilities/settings/settings.d.ts +10 -0
  136. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  137. package/dist/types/src/capabilities/spaces-ready/index.d.ts +3 -0
  138. package/dist/types/src/capabilities/spaces-ready/index.d.ts.map +1 -0
  139. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts +5 -0
  140. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts.map +1 -0
  141. package/dist/types/src/capabilities/state/index.d.ts +13 -0
  142. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  143. package/dist/types/src/capabilities/state/state.d.ts +17 -0
  144. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  145. package/dist/types/src/cli/commands/database/add.d.ts +17 -0
  146. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -0
  147. package/dist/types/src/cli/commands/database/index.d.ts +3 -0
  148. package/dist/types/src/cli/commands/database/index.d.ts.map +1 -0
  149. package/dist/types/src/cli/commands/database/query/index.d.ts +2 -0
  150. package/dist/types/src/cli/commands/database/query/index.d.ts.map +1 -0
  151. package/dist/types/src/cli/commands/database/query/query.d.ts +13 -0
  152. package/dist/types/src/cli/commands/database/query/query.d.ts.map +1 -0
  153. package/dist/types/src/cli/commands/database/query/query.test.d.ts +2 -0
  154. package/dist/types/src/cli/commands/database/query/query.test.d.ts.map +1 -0
  155. package/dist/types/src/cli/commands/database/remove.d.ts +9 -0
  156. package/dist/types/src/cli/commands/database/remove.d.ts.map +1 -0
  157. package/dist/types/src/cli/commands/database/stats.d.ts +6 -0
  158. package/dist/types/src/cli/commands/database/stats.d.ts.map +1 -0
  159. package/dist/types/src/cli/commands/database/util.d.ts +14 -0
  160. package/dist/types/src/cli/commands/database/util.d.ts.map +1 -0
  161. package/dist/types/src/cli/commands/index.d.ts +4 -0
  162. package/dist/types/src/cli/commands/index.d.ts.map +1 -0
  163. package/dist/types/src/cli/commands/queue/index.d.ts +7 -0
  164. package/dist/types/src/cli/commands/queue/index.d.ts.map +1 -0
  165. package/dist/types/src/cli/commands/queue/query.d.ts +8 -0
  166. package/dist/types/src/cli/commands/queue/query.d.ts.map +1 -0
  167. package/dist/types/src/cli/commands/queue/util.d.ts +6 -0
  168. package/dist/types/src/cli/commands/queue/util.d.ts.map +1 -0
  169. package/dist/types/src/cli/commands/space/close/close.d.ts +12 -0
  170. package/dist/types/src/cli/commands/space/close/close.d.ts.map +1 -0
  171. package/dist/types/src/cli/commands/space/close/index.d.ts +2 -0
  172. package/dist/types/src/cli/commands/space/close/index.d.ts.map +1 -0
  173. package/dist/types/src/cli/commands/space/create/create.d.ts +12 -0
  174. package/dist/types/src/cli/commands/space/create/create.d.ts.map +1 -0
  175. package/dist/types/src/cli/commands/space/create/create.test.d.ts +2 -0
  176. package/dist/types/src/cli/commands/space/create/create.test.d.ts.map +1 -0
  177. package/dist/types/src/cli/commands/space/create/index.d.ts +2 -0
  178. package/dist/types/src/cli/commands/space/create/index.d.ts.map +1 -0
  179. package/dist/types/src/cli/commands/space/index.d.ts +31 -0
  180. package/dist/types/src/cli/commands/space/index.d.ts.map +1 -0
  181. package/dist/types/src/cli/commands/space/info/index.d.ts +2 -0
  182. package/dist/types/src/cli/commands/space/info/index.d.ts.map +1 -0
  183. package/dist/types/src/cli/commands/space/info/info.d.ts +13 -0
  184. package/dist/types/src/cli/commands/space/info/info.d.ts.map +1 -0
  185. package/dist/types/src/cli/commands/space/info/info.test.d.ts +2 -0
  186. package/dist/types/src/cli/commands/space/info/info.test.d.ts.map +1 -0
  187. package/dist/types/src/cli/commands/space/join/index.d.ts +2 -0
  188. package/dist/types/src/cli/commands/space/join/index.d.ts.map +1 -0
  189. package/dist/types/src/cli/commands/space/join/join.d.ts +14 -0
  190. package/dist/types/src/cli/commands/space/join/join.d.ts.map +1 -0
  191. package/dist/types/src/cli/commands/space/join/util.d.ts +17 -0
  192. package/dist/types/src/cli/commands/space/join/util.d.ts.map +1 -0
  193. package/dist/types/src/cli/commands/space/list/index.d.ts +2 -0
  194. package/dist/types/src/cli/commands/space/list/index.d.ts.map +1 -0
  195. package/dist/types/src/cli/commands/space/list/list.d.ts +7 -0
  196. package/dist/types/src/cli/commands/space/list/list.d.ts.map +1 -0
  197. package/dist/types/src/cli/commands/space/list/list.test.d.ts +2 -0
  198. package/dist/types/src/cli/commands/space/list/list.test.d.ts.map +1 -0
  199. package/dist/types/src/cli/commands/space/members/index.d.ts +2 -0
  200. package/dist/types/src/cli/commands/space/members/index.d.ts.map +1 -0
  201. package/dist/types/src/cli/commands/space/members/members.d.ts +13 -0
  202. package/dist/types/src/cli/commands/space/members/members.d.ts.map +1 -0
  203. package/dist/types/src/cli/commands/space/members/members.test.d.ts +2 -0
  204. package/dist/types/src/cli/commands/space/members/members.test.d.ts.map +1 -0
  205. package/dist/types/src/cli/commands/space/members/util.d.ts +9 -0
  206. package/dist/types/src/cli/commands/space/members/util.d.ts.map +1 -0
  207. package/dist/types/src/cli/commands/space/open/index.d.ts +2 -0
  208. package/dist/types/src/cli/commands/space/open/index.d.ts.map +1 -0
  209. package/dist/types/src/cli/commands/space/open/open.d.ts +12 -0
  210. package/dist/types/src/cli/commands/space/open/open.d.ts.map +1 -0
  211. package/dist/types/src/cli/commands/space/schema/index.d.ts +8 -0
  212. package/dist/types/src/cli/commands/space/schema/index.d.ts.map +1 -0
  213. package/dist/types/src/cli/commands/space/schema/list/index.d.ts +2 -0
  214. package/dist/types/src/cli/commands/space/schema/list/index.d.ts.map +1 -0
  215. package/dist/types/src/cli/commands/space/schema/list/list.d.ts +15 -0
  216. package/dist/types/src/cli/commands/space/schema/list/list.d.ts.map +1 -0
  217. package/dist/types/src/cli/commands/space/schema/list/list.test.d.ts +2 -0
  218. package/dist/types/src/cli/commands/space/schema/list/list.test.d.ts.map +1 -0
  219. package/dist/types/src/cli/commands/space/schema/list/util.d.ts +15 -0
  220. package/dist/types/src/cli/commands/space/schema/list/util.d.ts.map +1 -0
  221. package/dist/types/src/cli/commands/space/share/index.d.ts +2 -0
  222. package/dist/types/src/cli/commands/space/share/index.d.ts.map +1 -0
  223. package/dist/types/src/cli/commands/space/share/share.d.ts +19 -0
  224. package/dist/types/src/cli/commands/space/share/share.d.ts.map +1 -0
  225. package/dist/types/src/cli/commands/space/sync/index.d.ts +2 -0
  226. package/dist/types/src/cli/commands/space/sync/index.d.ts.map +1 -0
  227. package/dist/types/src/cli/commands/space/sync/sync.d.ts +6 -0
  228. package/dist/types/src/cli/commands/space/sync/sync.d.ts.map +1 -0
  229. package/dist/types/src/cli/commands/space/sync/sync.test.d.ts +2 -0
  230. package/dist/types/src/cli/commands/space/sync/sync.test.d.ts.map +1 -0
  231. package/dist/types/src/cli/index.d.ts +2 -0
  232. package/dist/types/src/cli/index.d.ts.map +1 -0
  233. package/dist/types/src/cli/plugin.d.ts +4 -0
  234. package/dist/types/src/cli/plugin.d.ts.map +1 -0
  235. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  236. package/dist/types/src/components/CollectionArticle.d.ts +9 -0
  237. package/dist/types/src/components/CollectionArticle.d.ts.map +1 -0
  238. package/dist/types/src/components/CollectionSection.d.ts +3 -4
  239. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  240. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  241. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  242. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +218 -224
  243. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  244. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +21 -10
  245. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  246. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  247. package/dist/types/src/components/JoinDialog/JoinDialog.d.ts.map +1 -0
  248. package/dist/types/src/components/JoinDialog/index.d.ts +2 -0
  249. package/dist/types/src/components/JoinDialog/index.d.ts.map +1 -0
  250. package/dist/types/src/components/MembersContainer/MembersContainer.d.ts.map +1 -0
  251. package/dist/types/src/components/{MembersContainer.stories.d.ts → MembersContainer/MembersContainer.stories.d.ts} +212 -219
  252. package/dist/types/src/components/{MembersContainer.stories.d.ts.map → MembersContainer/MembersContainer.stories.d.ts.map} +1 -1
  253. package/dist/types/src/components/MembersContainer/index.d.ts +2 -0
  254. package/dist/types/src/components/MembersContainer/index.d.ts.map +1 -0
  255. package/dist/types/src/components/MenuFooter.d.ts +1 -1
  256. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  257. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts +8 -0
  258. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
  259. package/dist/types/src/components/{ObjectDetailsPanel → ObjectCardStack}/ObjectForm.d.ts +2 -3
  260. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +1 -0
  261. package/dist/types/src/components/ObjectCardStack/index.d.ts +3 -0
  262. package/dist/types/src/components/ObjectCardStack/index.d.ts.map +1 -0
  263. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.d.ts +2 -2
  264. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -0
  265. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.stories.d.ts +210 -217
  266. package/dist/types/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.stories.d.ts.map +1 -1
  267. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts +8 -0
  268. package/dist/types/src/components/ObjectDetails/ForeignKeys.d.ts.map +1 -0
  269. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts +9 -0
  270. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +1 -0
  271. package/dist/types/src/components/ObjectDetails/index.d.ts +3 -0
  272. package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -0
  273. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts +7 -0
  274. package/dist/types/src/components/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -0
  275. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +2 -0
  276. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +1 -0
  277. package/dist/types/src/components/RecordArticle.d.ts +5 -0
  278. package/dist/types/src/components/RecordArticle.d.ts.map +1 -0
  279. package/dist/types/src/components/RecordArticle.stories.d.ts +1600 -0
  280. package/dist/types/src/components/RecordArticle.stories.d.ts.map +1 -0
  281. package/dist/types/src/components/SchemaContainer.d.ts +2 -2
  282. package/dist/types/src/components/SchemaContainer.d.ts.map +1 -1
  283. package/dist/types/src/components/SpacePluginSettings.d.ts +4 -2
  284. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  285. package/dist/types/src/components/{SpacePresence.d.ts → SpacePresence/SpacePresence.d.ts} +7 -6
  286. package/dist/types/src/components/SpacePresence/SpacePresence.d.ts.map +1 -0
  287. package/dist/types/src/components/{SpacePresence.stories.d.ts → SpacePresence/SpacePresence.stories.d.ts} +210 -217
  288. package/dist/types/src/components/{SpacePresence.stories.d.ts.map → SpacePresence/SpacePresence.stories.d.ts.map} +1 -1
  289. package/dist/types/src/components/SpacePresence/index.d.ts +2 -0
  290. package/dist/types/src/components/SpacePresence/index.d.ts.map +1 -0
  291. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts +7 -0
  292. package/dist/types/src/components/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -0
  293. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +2 -0
  294. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +1 -0
  295. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +4 -1
  296. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  297. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +214 -218
  298. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +1 -1
  299. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  300. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +211 -218
  301. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  302. package/dist/types/src/components/ViewEditor.d.ts +3 -4
  303. package/dist/types/src/components/ViewEditor.d.ts.map +1 -1
  304. package/dist/types/src/components/index.d.ts +15 -18
  305. package/dist/types/src/components/index.d.ts.map +1 -1
  306. package/dist/types/src/constants.d.ts +6 -0
  307. package/dist/types/src/constants.d.ts.map +1 -0
  308. package/dist/types/src/helpers/index.d.ts +2 -0
  309. package/dist/types/src/helpers/index.d.ts.map +1 -0
  310. package/dist/types/src/helpers/query.d.ts +7 -0
  311. package/dist/types/src/helpers/query.d.ts.map +1 -0
  312. package/dist/types/src/helpers/query.test.d.ts +2 -0
  313. package/dist/types/src/helpers/query.test.d.ts.map +1 -0
  314. package/dist/types/src/hooks/useActiveSpace.d.ts +2 -2
  315. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  316. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +2 -8
  317. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +1 -1
  318. package/dist/types/src/hooks/usePath.d.ts +2 -2
  319. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  320. package/dist/types/src/hooks/useTypeOptions.d.ts +2 -2
  321. package/dist/types/src/hooks/useTypeOptions.d.ts.map +1 -1
  322. package/dist/types/src/index.d.ts +2 -2
  323. package/dist/types/src/index.d.ts.map +1 -1
  324. package/dist/types/src/meta.d.ts +2 -2
  325. package/dist/types/src/meta.d.ts.map +1 -1
  326. package/dist/types/src/translations.d.ts +210 -217
  327. package/dist/types/src/translations.d.ts.map +1 -1
  328. package/dist/types/src/types/capabilities.d.ts +71 -0
  329. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  330. package/dist/types/src/types/events.d.ts +9 -0
  331. package/dist/types/src/types/events.d.ts.map +1 -0
  332. package/dist/types/src/types/form.d.ts +22 -0
  333. package/dist/types/src/types/form.d.ts.map +1 -0
  334. package/dist/types/src/types/index.d.ts +3 -0
  335. package/dist/types/src/types/index.d.ts.map +1 -1
  336. package/dist/types/src/types/types.d.ts +643 -397
  337. package/dist/types/src/types/types.d.ts.map +1 -1
  338. package/dist/types/src/util.d.ts +41 -50
  339. package/dist/types/src/util.d.ts.map +1 -1
  340. package/dist/types/tsconfig.tsbuildinfo +1 -1
  341. package/package.json +83 -63
  342. package/src/SpacePlugin.ts +189 -235
  343. package/src/capabilities/app-graph-builder/app-graph-builder.ts +621 -0
  344. package/src/capabilities/app-graph-builder/index.ts +7 -0
  345. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +83 -0
  346. package/src/capabilities/app-graph-serializer/index.ts +7 -0
  347. package/src/capabilities/identity-created/identity-created.ts +29 -0
  348. package/src/capabilities/identity-created/index.ts +7 -0
  349. package/src/capabilities/index.ts +10 -14
  350. package/src/capabilities/operation-resolver/index.ts +7 -0
  351. package/src/capabilities/operation-resolver/operation-resolver.ts +762 -0
  352. package/src/capabilities/react-root/index.ts +7 -0
  353. package/src/capabilities/react-root/react-root.tsx +25 -0
  354. package/src/capabilities/react-surface/index.ts +7 -0
  355. package/src/capabilities/react-surface/react-surface.tsx +377 -0
  356. package/src/capabilities/repair/index.ts +7 -0
  357. package/src/capabilities/repair/repair.ts +67 -0
  358. package/src/capabilities/settings/index.ts +7 -0
  359. package/src/capabilities/settings/settings.ts +33 -0
  360. package/src/capabilities/spaces-ready/index.ts +7 -0
  361. package/src/capabilities/spaces-ready/spaces-ready.ts +290 -0
  362. package/src/capabilities/state/index.ts +7 -0
  363. package/src/capabilities/state/state.ts +64 -0
  364. package/src/cli/commands/database/add.ts +115 -0
  365. package/src/cli/commands/database/index.ts +16 -0
  366. package/src/cli/commands/database/query/index.ts +5 -0
  367. package/src/cli/commands/database/query/query.test.ts +55 -0
  368. package/src/cli/commands/database/query/query.ts +44 -0
  369. package/src/cli/commands/database/remove.ts +51 -0
  370. package/src/cli/commands/database/stats.ts +44 -0
  371. package/src/cli/commands/database/util.ts +32 -0
  372. package/src/cli/commands/index.ts +7 -0
  373. package/src/cli/commands/queue/index.ts +12 -0
  374. package/src/cli/commands/queue/query.ts +45 -0
  375. package/src/cli/commands/queue/util.ts +19 -0
  376. package/src/cli/commands/space/close/close.ts +40 -0
  377. package/src/cli/commands/space/close/index.ts +5 -0
  378. package/src/cli/commands/space/create/create.test.ts +67 -0
  379. package/src/cli/commands/space/create/create.ts +61 -0
  380. package/src/cli/commands/space/create/index.ts +5 -0
  381. package/src/cli/commands/space/index.ts +21 -0
  382. package/src/cli/commands/space/info/index.ts +5 -0
  383. package/src/cli/commands/space/info/info.test.ts +47 -0
  384. package/src/cli/commands/space/info/info.ts +37 -0
  385. package/src/cli/commands/space/join/index.ts +5 -0
  386. package/src/cli/commands/space/join/join.ts +122 -0
  387. package/src/cli/commands/space/join/util.ts +82 -0
  388. package/src/cli/commands/space/list/index.ts +5 -0
  389. package/src/cli/commands/space/list/list.test.ts +36 -0
  390. package/src/cli/commands/space/list/list.ts +30 -0
  391. package/src/cli/commands/space/members/index.ts +5 -0
  392. package/src/cli/commands/space/members/members.test.ts +46 -0
  393. package/src/cli/commands/space/members/members.ts +40 -0
  394. package/src/cli/commands/space/members/util.ts +29 -0
  395. package/src/cli/commands/space/open/index.ts +5 -0
  396. package/src/cli/commands/space/open/open.ts +39 -0
  397. package/src/cli/commands/space/schema/index.ts +12 -0
  398. package/src/cli/commands/space/schema/list/index.ts +5 -0
  399. package/src/cli/commands/space/schema/list/list.test.ts +42 -0
  400. package/src/cli/commands/space/schema/list/list.ts +64 -0
  401. package/src/cli/commands/space/schema/list/util.ts +39 -0
  402. package/src/cli/commands/space/share/index.ts +5 -0
  403. package/src/cli/commands/space/share/share.ts +112 -0
  404. package/src/cli/commands/space/sync/index.ts +5 -0
  405. package/src/cli/commands/space/sync/sync.test.ts +12 -0
  406. package/src/cli/commands/space/sync/sync.ts +33 -0
  407. package/src/cli/index.ts +5 -0
  408. package/src/cli/plugin.ts +88 -0
  409. package/src/components/AwaitingObject.tsx +22 -20
  410. package/src/components/CollectionArticle.tsx +156 -0
  411. package/src/components/CollectionSection.tsx +6 -4
  412. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +31 -25
  413. package/src/components/CreateDialog/CreateObjectDialog.tsx +81 -69
  414. package/src/components/CreateDialog/CreateObjectPanel.tsx +146 -85
  415. package/src/components/CreateDialog/CreateSpaceDialog.tsx +30 -25
  416. package/src/components/{JoinDialog.tsx → JoinDialog/JoinDialog.tsx} +27 -37
  417. package/src/components/JoinDialog/index.ts +5 -0
  418. package/src/components/{MembersContainer.stories.tsx → MembersContainer/MembersContainer.stories.tsx} +4 -4
  419. package/src/components/{MembersContainer.tsx → MembersContainer/MembersContainer.tsx} +82 -85
  420. package/src/components/MembersContainer/index.ts +5 -0
  421. package/src/components/MenuFooter.tsx +1 -1
  422. package/src/components/ObjectCardStack/ObjectCardStack.tsx +67 -0
  423. package/src/components/ObjectCardStack/ObjectForm.tsx +97 -0
  424. package/src/components/ObjectCardStack/index.ts +7 -0
  425. package/src/components/{ObjectSettings → ObjectDetails}/BaseObjectSettings.stories.tsx +11 -11
  426. package/src/components/ObjectDetails/BaseObjectSettings.tsx +122 -0
  427. package/src/components/{ObjectSettings → ObjectDetails}/ForeignKeys.tsx +6 -6
  428. package/src/components/ObjectDetails/ObjectDetails.tsx +33 -0
  429. package/src/components/ObjectDetails/index.ts +7 -0
  430. package/src/components/{PopoverRenameObject.tsx → ObjectRenamePopover/ObjectRenamePopover.tsx} +11 -15
  431. package/src/components/ObjectRenamePopover/index.ts +5 -0
  432. package/src/components/RecordArticle.stories.tsx +116 -0
  433. package/src/components/RecordArticle.tsx +124 -0
  434. package/src/components/SchemaContainer.tsx +29 -29
  435. package/src/components/SpacePluginSettings.tsx +42 -29
  436. package/src/components/{SpacePresence.stories.tsx → SpacePresence/SpacePresence.stories.tsx} +2 -2
  437. package/src/components/{SpacePresence.tsx → SpacePresence/SpacePresence.tsx} +20 -16
  438. package/src/components/SpacePresence/index.ts +5 -0
  439. package/src/components/{PopoverRenameSpace.tsx → SpaceRenamePopover/SpaceRenamePopover.tsx} +15 -15
  440. package/src/components/SpaceRenamePopover/index.ts +5 -0
  441. package/src/components/SpaceSettings/SpaceSettingsContainer.stories.tsx +5 -5
  442. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +91 -74
  443. package/src/components/SyncStatus/InlineSyncStatus.tsx +1 -1
  444. package/src/components/SyncStatus/SyncStatus.stories.tsx +3 -2
  445. package/src/components/SyncStatus/SyncStatus.tsx +45 -36
  446. package/src/components/SyncStatus/save-tracker.ts +2 -2
  447. package/src/components/ViewEditor.tsx +64 -21
  448. package/src/components/index.ts +7 -8
  449. package/src/constants.ts +11 -0
  450. package/src/helpers/index.ts +5 -0
  451. package/src/helpers/query.test.ts +24 -0
  452. package/src/helpers/query.ts +153 -0
  453. package/src/hooks/useActiveSpace.ts +8 -4
  454. package/src/hooks/useInputSurfaceLookup.tsx +9 -13
  455. package/src/hooks/usePath.ts +4 -4
  456. package/src/hooks/useTypeOptions.ts +3 -37
  457. package/src/index.ts +2 -2
  458. package/src/meta.ts +7 -2
  459. package/src/translations.ts +68 -59
  460. package/src/types/capabilities.ts +73 -0
  461. package/src/types/events.ts +16 -0
  462. package/src/types/form.ts +69 -0
  463. package/src/types/index.ts +3 -0
  464. package/src/types/types.ts +539 -260
  465. package/src/util.tsx +339 -282
  466. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs +0 -31
  467. package/dist/lib/browser/CollectionMain-AX7KKXWP.mjs.map +0 -7
  468. package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs +0 -145
  469. package/dist/lib/browser/ObjectDetailsPanel-MQBHG666.mjs.map +0 -7
  470. package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs +0 -151
  471. package/dist/lib/browser/ObjectSettings-KNUZFCGS.mjs.map +0 -7
  472. package/dist/lib/browser/RecordMain-H4DVHICS.mjs +0 -116
  473. package/dist/lib/browser/RecordMain-H4DVHICS.mjs.map +0 -7
  474. package/dist/lib/browser/app-graph-builder-3R5GGT46.mjs +0 -520
  475. package/dist/lib/browser/app-graph-builder-3R5GGT46.mjs.map +0 -7
  476. package/dist/lib/browser/app-graph-serializer-25Z5BG22.mjs +0 -80
  477. package/dist/lib/browser/app-graph-serializer-25Z5BG22.mjs.map +0 -7
  478. package/dist/lib/browser/chunk-522KZGQF.mjs +0 -1952
  479. package/dist/lib/browser/chunk-522KZGQF.mjs.map +0 -7
  480. package/dist/lib/browser/chunk-7XOTWRZ3.mjs +0 -166
  481. package/dist/lib/browser/chunk-7XOTWRZ3.mjs.map +0 -7
  482. package/dist/lib/browser/chunk-EIXZABXD.mjs +0 -19
  483. package/dist/lib/browser/chunk-EIXZABXD.mjs.map +0 -7
  484. package/dist/lib/browser/chunk-IRKDREHY.mjs +0 -11
  485. package/dist/lib/browser/chunk-IRKDREHY.mjs.map +0 -7
  486. package/dist/lib/browser/chunk-OV6D543A.mjs +0 -704
  487. package/dist/lib/browser/chunk-OV6D543A.mjs.map +0 -7
  488. package/dist/lib/browser/chunk-PTGRQQ6J.mjs.map +0 -7
  489. package/dist/lib/browser/chunk-RLI2IAHK.mjs +0 -20
  490. package/dist/lib/browser/chunk-RLI2IAHK.mjs.map +0 -7
  491. package/dist/lib/browser/chunk-WS2PJDES.mjs +0 -348
  492. package/dist/lib/browser/chunk-WS2PJDES.mjs.map +0 -7
  493. package/dist/lib/browser/identity-created-PW2BA46S.mjs +0 -23
  494. package/dist/lib/browser/identity-created-PW2BA46S.mjs.map +0 -7
  495. package/dist/lib/browser/intent-resolver-ICGUSVH6.mjs +0 -767
  496. package/dist/lib/browser/intent-resolver-ICGUSVH6.mjs.map +0 -7
  497. package/dist/lib/browser/react-root-H56QN474.mjs +0 -29
  498. package/dist/lib/browser/react-root-H56QN474.mjs.map +0 -7
  499. package/dist/lib/browser/react-surface-VOE2ILKO.mjs +0 -354
  500. package/dist/lib/browser/react-surface-VOE2ILKO.mjs.map +0 -7
  501. package/dist/lib/browser/schema-defs-7R7RKCAE.mjs +0 -26
  502. package/dist/lib/browser/schema-defs-7R7RKCAE.mjs.map +0 -7
  503. package/dist/lib/browser/settings-OBFJ67ZG.mjs +0 -24
  504. package/dist/lib/browser/settings-OBFJ67ZG.mjs.map +0 -7
  505. package/dist/lib/browser/spaces-ready-MFIVK6I6.mjs +0 -201
  506. package/dist/lib/browser/spaces-ready-MFIVK6I6.mjs.map +0 -7
  507. package/dist/lib/browser/state-LSPRFIRO.mjs +0 -47
  508. package/dist/lib/browser/state-LSPRFIRO.mjs.map +0 -7
  509. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs +0 -32
  510. package/dist/lib/node-esm/CollectionMain-EU57SRYK.mjs.map +0 -7
  511. package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs +0 -146
  512. package/dist/lib/node-esm/ObjectDetailsPanel-NABA2S56.mjs.map +0 -7
  513. package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs +0 -152
  514. package/dist/lib/node-esm/ObjectSettings-GXGTITF5.mjs.map +0 -7
  515. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs +0 -117
  516. package/dist/lib/node-esm/RecordMain-MYFTAQ2U.mjs.map +0 -7
  517. package/dist/lib/node-esm/app-graph-builder-VGRMD5TP.mjs +0 -521
  518. package/dist/lib/node-esm/app-graph-builder-VGRMD5TP.mjs.map +0 -7
  519. package/dist/lib/node-esm/app-graph-serializer-U4GHXWRG.mjs +0 -81
  520. package/dist/lib/node-esm/app-graph-serializer-U4GHXWRG.mjs.map +0 -7
  521. package/dist/lib/node-esm/chunk-4F25JKVT.mjs +0 -349
  522. package/dist/lib/node-esm/chunk-4F25JKVT.mjs.map +0 -7
  523. package/dist/lib/node-esm/chunk-DG5YEEPZ.mjs +0 -1953
  524. package/dist/lib/node-esm/chunk-DG5YEEPZ.mjs.map +0 -7
  525. package/dist/lib/node-esm/chunk-H5UPFRRH.mjs +0 -21
  526. package/dist/lib/node-esm/chunk-H5UPFRRH.mjs.map +0 -7
  527. package/dist/lib/node-esm/chunk-HAKW2RFD.mjs.map +0 -7
  528. package/dist/lib/node-esm/chunk-MWNATOXL.mjs +0 -13
  529. package/dist/lib/node-esm/chunk-MWNATOXL.mjs.map +0 -7
  530. package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs +0 -167
  531. package/dist/lib/node-esm/chunk-PAAWJ4RE.mjs.map +0 -7
  532. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs +0 -20
  533. package/dist/lib/node-esm/chunk-SVFKU7EW.mjs.map +0 -7
  534. package/dist/lib/node-esm/chunk-TNUWML33.mjs +0 -705
  535. package/dist/lib/node-esm/chunk-TNUWML33.mjs.map +0 -7
  536. package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs +0 -25
  537. package/dist/lib/node-esm/identity-created-MWTLGQRU.mjs.map +0 -7
  538. package/dist/lib/node-esm/intent-resolver-KVB2A4YC.mjs +0 -768
  539. package/dist/lib/node-esm/intent-resolver-KVB2A4YC.mjs.map +0 -7
  540. package/dist/lib/node-esm/react-root-56PGW5PH.mjs +0 -30
  541. package/dist/lib/node-esm/react-root-56PGW5PH.mjs.map +0 -7
  542. package/dist/lib/node-esm/react-surface-NYEQ23A4.mjs +0 -355
  543. package/dist/lib/node-esm/react-surface-NYEQ23A4.mjs.map +0 -7
  544. package/dist/lib/node-esm/schema-defs-RYG5DSUE.mjs +0 -27
  545. package/dist/lib/node-esm/schema-defs-RYG5DSUE.mjs.map +0 -7
  546. package/dist/lib/node-esm/settings-QGWWNMMZ.mjs +0 -25
  547. package/dist/lib/node-esm/settings-QGWWNMMZ.mjs.map +0 -7
  548. package/dist/lib/node-esm/spaces-ready-TC27M7MP.mjs +0 -202
  549. package/dist/lib/node-esm/spaces-ready-TC27M7MP.mjs.map +0 -7
  550. package/dist/lib/node-esm/state-TCGOPLRO.mjs +0 -48
  551. package/dist/lib/node-esm/state-TCGOPLRO.mjs.map +0 -7
  552. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  553. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  554. package/dist/types/src/capabilities/app-graph-serializer.d.ts +0 -4
  555. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +0 -1
  556. package/dist/types/src/capabilities/capabilities.d.ts +0 -29
  557. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  558. package/dist/types/src/capabilities/identity-created.d.ts +0 -4
  559. package/dist/types/src/capabilities/identity-created.d.ts.map +0 -1
  560. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -9
  561. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  562. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  563. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  564. package/dist/types/src/capabilities/react-surface.d.ts +0 -7
  565. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  566. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  567. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  568. package/dist/types/src/capabilities/settings.d.ts +0 -4
  569. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  570. package/dist/types/src/capabilities/spaces-ready.d.ts +0 -4
  571. package/dist/types/src/capabilities/spaces-ready.d.ts.map +0 -1
  572. package/dist/types/src/capabilities/state.d.ts +0 -5
  573. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  574. package/dist/types/src/components/CollectionMain.d.ts +0 -7
  575. package/dist/types/src/components/CollectionMain.d.ts.map +0 -1
  576. package/dist/types/src/components/JoinDialog.d.ts.map +0 -1
  577. package/dist/types/src/components/MembersContainer.d.ts.map +0 -1
  578. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts +0 -9
  579. package/dist/types/src/components/ObjectDetailsPanel/ObjectDetailsPanel.d.ts.map +0 -1
  580. package/dist/types/src/components/ObjectDetailsPanel/ObjectForm.d.ts.map +0 -1
  581. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts +0 -3
  582. package/dist/types/src/components/ObjectDetailsPanel/index.d.ts.map +0 -1
  583. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts +0 -7
  584. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  585. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
  586. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts +0 -8
  587. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
  588. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts +0 -8
  589. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
  590. package/dist/types/src/components/ObjectSettings/index.d.ts +0 -3
  591. package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
  592. package/dist/types/src/components/PersistenceStatus.d.ts +0 -6
  593. package/dist/types/src/components/PersistenceStatus.d.ts.map +0 -1
  594. package/dist/types/src/components/PopoverRenameObject.d.ts +0 -7
  595. package/dist/types/src/components/PopoverRenameObject.d.ts.map +0 -1
  596. package/dist/types/src/components/PopoverRenameSpace.d.ts +0 -7
  597. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +0 -1
  598. package/dist/types/src/components/RecordMain.d.ts +0 -7
  599. package/dist/types/src/components/RecordMain.d.ts.map +0 -1
  600. package/dist/types/src/components/SpacePresence.d.ts.map +0 -1
  601. package/dist/types/src/events.d.ts +0 -8
  602. package/dist/types/src/events.d.ts.map +0 -1
  603. package/src/capabilities/app-graph-builder.ts +0 -757
  604. package/src/capabilities/app-graph-serializer.ts +0 -76
  605. package/src/capabilities/capabilities.ts +0 -35
  606. package/src/capabilities/identity-created.ts +0 -25
  607. package/src/capabilities/intent-resolver.ts +0 -706
  608. package/src/capabilities/react-root.tsx +0 -21
  609. package/src/capabilities/react-surface.tsx +0 -329
  610. package/src/capabilities/schema-defs.ts +0 -31
  611. package/src/capabilities/settings.ts +0 -21
  612. package/src/capabilities/spaces-ready.ts +0 -234
  613. package/src/capabilities/state.ts +0 -46
  614. package/src/components/CollectionMain.tsx +0 -32
  615. package/src/components/ObjectDetailsPanel/ObjectDetailsPanel.tsx +0 -52
  616. package/src/components/ObjectDetailsPanel/ObjectForm.tsx +0 -75
  617. package/src/components/ObjectDetailsPanel/index.ts +0 -7
  618. package/src/components/ObjectSettings/AdvancedObjectSettings.tsx +0 -81
  619. package/src/components/ObjectSettings/BaseObjectSettings.tsx +0 -117
  620. package/src/components/ObjectSettings/ObjectSettingsContainer.tsx +0 -37
  621. package/src/components/ObjectSettings/index.ts +0 -7
  622. package/src/components/PersistenceStatus.tsx +0 -83
  623. package/src/components/RecordMain.tsx +0 -87
  624. package/src/events.ts +0 -15
  625. /package/dist/types/src/components/{JoinDialog.d.ts → JoinDialog/JoinDialog.d.ts} +0 -0
  626. /package/dist/types/src/components/{MembersContainer.d.ts → MembersContainer/MembersContainer.d.ts} +0 -0
@@ -9,7 +9,7 @@ import { IdentityDid, PublicKey } from '@dxos/keys';
9
9
  import { HaloSpaceMember, SpaceMember } from '@dxos/react-client/echo';
10
10
  import { withTheme } from '@dxos/react-ui/testing';
11
11
 
12
- import { translations } from '../translations';
12
+ import { translations } from '../../translations';
13
13
 
14
14
  import { FullPresence, type Member, type MemberPresenceProps, SmallPresence } from './SpacePresence';
15
15
 
@@ -24,7 +24,7 @@ const viewers = (n: number, currentlyAttended = true): Member[] =>
24
24
 
25
25
  const meta = {
26
26
  title: 'plugins/plugin-space/SpacePresence',
27
- decorators: [withTheme],
27
+ decorators: [withTheme()],
28
28
  parameters: {
29
29
  translations,
30
30
  },
@@ -5,11 +5,12 @@
5
5
  import * as Option from 'effect/Option';
6
6
  import React, { forwardRef, useCallback, useEffect, useState } from 'react';
7
7
 
8
- import { useAppGraph, useCapability } from '@dxos/app-framework';
8
+ import { useAtomCapability } from '@dxos/app-framework/ui';
9
+ import { useAppGraph } from '@dxos/app-toolkit/ui';
9
10
  import { generateName } from '@dxos/display-name';
10
- import { type Type } from '@dxos/echo';
11
- import { PublicKey, useClient } from '@dxos/react-client';
12
- import { type SpaceMember, fullyQualifiedId, getSpace, useMembers } from '@dxos/react-client/echo';
11
+ import { type Key, Obj } from '@dxos/echo';
12
+ import { PublicKey } from '@dxos/react-client';
13
+ import { type SpaceMember, useMembers, useSpace } from '@dxos/react-client/echo';
13
14
  import { type Identity, useIdentity } from '@dxos/react-client/halo';
14
15
  import {
15
16
  Avatar,
@@ -27,10 +28,9 @@ import {
27
28
  import { AttentionGlyph, type AttentionGlyphProps, useAttended, useAttention } from '@dxos/react-ui-attention';
28
29
  import { ComplexMap, keyToFallback } from '@dxos/util';
29
30
 
30
- import { SpaceCapabilities } from '../capabilities';
31
- import { usePath } from '../hooks';
32
- import { meta } from '../meta';
33
- import type { ObjectViewerProps } from '../types';
31
+ import { usePath } from '../../hooks';
32
+ import { meta } from '../../meta';
33
+ import { type ObjectViewerProps, SpaceCapabilities } from '../../types';
34
34
 
35
35
  // TODO(thure): Get/derive these values from protocol
36
36
  const REFRESH_INTERVAL = 5000;
@@ -42,13 +42,17 @@ const noViewers = new ComplexMap<PublicKey, ObjectViewerProps>(PublicKey.hash);
42
42
  // TODO(wittjosiah): Factor out?
43
43
  const getName = (identity: Identity) => identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
44
44
 
45
- export const SpacePresence = ({ object, spaceKey }: { object: Type.Expando; spaceKey?: PublicKey }) => {
46
- // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.
47
- const spaceState = useCapability(SpaceCapabilities.MutableState);
48
- const client = useClient();
45
+ export type SpacePresenceProps = {
46
+ object: Obj.Unknown;
47
+ spaceId?: Key.SpaceId;
48
+ };
49
+
50
+ export const SpacePresence = ({ object, spaceId }: SpacePresenceProps) => {
51
+ const ephemeral = useAtomCapability(SpaceCapabilities.EphemeralState);
49
52
  const identity = useIdentity();
50
- const space = spaceKey ? client.spaces.get(spaceKey) : getSpace(object);
51
- const spaceMembers = useMembers(space?.key);
53
+ const db = Obj.getDatabase(object);
54
+ const space = useSpace(spaceId ?? db?.spaceId);
55
+ const spaceMembers = useMembers(spaceId ?? db?.spaceId);
52
56
 
53
57
  const [_moment, setMoment] = useState(Date.now());
54
58
 
@@ -66,11 +70,11 @@ export const SpacePresence = ({ object, spaceKey }: { object: Type.Expando; spac
66
70
 
67
71
  // TODO(thure): Could it be a smell to return early when there are interactions with `deepSignal` later, since it
68
72
  // prevents reactivity?
69
- if (!identity || !spaceState || !space) {
73
+ if (!identity || !ephemeral || !space) {
70
74
  return null;
71
75
  }
72
76
 
73
- const currentObjectViewers = spaceState.viewersByObject[fullyQualifiedId(object)] ?? noViewers;
77
+ const currentObjectViewers = ephemeral.viewersByObject[Obj.getDXN(object).toString()] ?? noViewers;
74
78
 
75
79
  const membersForObject = spaceMembers
76
80
  .filter((member) => memberOnline(member) && memberIsNotSelf(member))
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './SpacePresence';
@@ -4,29 +4,29 @@
4
4
 
5
5
  import React, { useCallback, useRef, useState } from 'react';
6
6
 
7
- import { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';
8
- import { type Space } from '@dxos/react-client/echo';
7
+ import { useOperationInvoker } from '@dxos/app-framework/ui';
8
+ import { LayoutOperation } from '@dxos/app-toolkit';
9
+ import { type Space } from '@dxos/client/echo';
10
+ import { Obj } from '@dxos/echo';
9
11
  import { Button, Input, Popover, useTranslation } from '@dxos/react-ui';
12
+ import { osTranslations } from '@dxos/ui-theme';
10
13
 
11
- import { meta } from '../meta';
14
+ import { meta } from '../../meta';
12
15
 
13
- export const POPOVER_RENAME_SPACE = `${meta.id}/PopoverRenameSpace`;
16
+ export const SPACE_RENAME_POPOVER = `${meta.id}/SpaceRenamePopover`;
14
17
 
15
- export const PopoverRenameSpace = ({ space }: { space: Space }) => {
18
+ export const SpaceRenamePopover = ({ space }: { space: Space }) => {
16
19
  const { t } = useTranslation(meta.id);
17
20
  const doneButton = useRef<HTMLButtonElement>(null);
18
21
  const [name, setName] = useState(space.properties.name ?? '');
19
- const { dispatchPromise: dispatch } = useIntentDispatcher();
22
+ const { invokePromise } = useOperationInvoker();
20
23
 
21
24
  const handleDone = useCallback(() => {
22
- space.properties.name = name;
23
- void dispatch(
24
- createIntent(LayoutAction.UpdatePopover, {
25
- part: 'popover',
26
- options: { variant: 'react', anchorId: '', state: false },
27
- }),
28
- );
29
- }, [space, name]);
25
+ Obj.change(space.properties, (p) => {
26
+ p.name = name;
27
+ });
28
+ void invokePromise(LayoutOperation.UpdatePopover, { anchorId: '', state: false });
29
+ }, [space, name, invokePromise]);
30
30
 
31
31
  // TODO(thure): Why does the input value need to be uncontrolled to work?
32
32
  return (
@@ -46,7 +46,7 @@ export const PopoverRenameSpace = ({ space }: { space: Space }) => {
46
46
  </div>
47
47
  <Popover.Close asChild>
48
48
  <Button ref={doneButton} classNames='self-stretch' onClick={handleDone}>
49
- {t('done label', { ns: 'os' })}
49
+ {t('done label', { ns: osTranslations })}
50
50
  </Button>
51
51
  </Popover.Close>
52
52
  </div>
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ export * from './SpaceRenamePopover';
@@ -5,9 +5,9 @@
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
  import React from 'react';
7
7
 
8
- import { IntentPlugin } from '@dxos/app-framework';
8
+ import { OperationPlugin } from '@dxos/app-framework';
9
9
  import { withPluginManager } from '@dxos/app-framework/testing';
10
- import { useClientProvider, withClientProvider } from '@dxos/react-client/testing';
10
+ import { useClientStory, withClientProvider } from '@dxos/react-client/testing';
11
11
  import { withTheme } from '@dxos/react-ui/testing';
12
12
 
13
13
  import { translations } from '../../translations';
@@ -15,7 +15,7 @@ import { translations } from '../../translations';
15
15
  import { SpaceSettingsContainer, type SpaceSettingsContainerProps } from './SpaceSettingsContainer';
16
16
 
17
17
  const Story = (props: Partial<SpaceSettingsContainerProps>) => {
18
- const { space } = useClientProvider();
18
+ const { space } = useClientStory();
19
19
  return (
20
20
  <div role='none' className='p-2 border border-primary-500 rounded'>
21
21
  <SpaceSettingsContainer {...props} space={space!} />
@@ -28,10 +28,10 @@ const meta = {
28
28
  component: SpaceSettingsContainer,
29
29
  render: Story,
30
30
  decorators: [
31
- withTheme,
31
+ withTheme(),
32
32
  withClientProvider({ createIdentity: true, createSpace: true }),
33
33
  // TODO(wittjosiah): Try to write story which does not depend on plugin manager.
34
- withPluginManager({ plugins: [IntentPlugin()] }),
34
+ withPluginManager({ plugins: [OperationPlugin()] }),
35
35
  ],
36
36
  parameters: {
37
37
  translations,
@@ -2,32 +2,29 @@
2
2
  // Copyright 2024 DXOS.org
3
3
  //
4
4
 
5
- import * as Function from 'effect/Function';
6
5
  import * as Schema from 'effect/Schema';
7
6
  import React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';
8
7
 
9
- import { LayoutAction, chain, createIntent, useIntentDispatcher } from '@dxos/app-framework';
8
+ import { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';
9
+ import { LayoutOperation } from '@dxos/app-toolkit';
10
+ import { Obj } from '@dxos/echo';
10
11
  import { log } from '@dxos/log';
11
12
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
12
13
  import { useClient } from '@dxos/react-client';
13
14
  import { type Space, SpaceState } from '@dxos/react-client/echo';
14
- import { Button, Input, useMulticastObservable, useTranslation } from '@dxos/react-ui';
15
- import {
16
- ControlItem,
17
- ControlItemInput,
18
- ControlPage,
19
- ControlSection,
20
- Form,
21
- type InputComponent,
22
- } from '@dxos/react-ui-form';
15
+ import { Button, Input, useFileDownload, useMulticastObservable, useTranslation } from '@dxos/react-ui';
16
+ import { Form, type FormFieldMap, Settings } from '@dxos/react-ui-form';
23
17
  import { HuePicker, IconPicker } from '@dxos/react-ui-pickers';
24
- import { StackItem } from '@dxos/react-ui-stack';
25
18
 
26
19
  import { meta } from '../../meta';
27
- import { SpaceAction, SpaceForm } from '../../types';
20
+ import { SpaceCapabilities, SpaceForm, SpaceOperation } from '../../types';
28
21
 
29
- const FormSchema = SpaceForm.pipe(
30
- Schema.extend(Schema.Struct({ archived: Schema.Boolean.annotations({ title: 'Archive space' }) })),
22
+ const SpaceFormSchema = SpaceForm.pipe(
23
+ Schema.extend(
24
+ Schema.Struct({
25
+ archived: Schema.Boolean.annotations({ title: 'Archive Space' }),
26
+ }),
27
+ ),
31
28
  );
32
29
 
33
30
  export type SpaceSettingsContainerProps = {
@@ -37,7 +34,7 @@ export type SpaceSettingsContainerProps = {
37
34
  // TODO(wittjosiah): Handle space migrations here?
38
35
  export const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) => {
39
36
  const { t } = useTranslation(meta.id);
40
- const { dispatchPromise: dispatch } = useIntentDispatcher();
37
+ const { invokePromise } = useOperationInvoker();
41
38
  const client = useClient();
42
39
  const archived = useMulticastObservable(space.state) === SpaceState.SPACE_INACTIVE;
43
40
  const [edgeReplication, setEdgeReplication] = useState(
@@ -56,30 +53,39 @@ export const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) =
56
53
  [space],
57
54
  );
58
55
 
59
- const handleSave = useCallback(
60
- (properties: Schema.Schema.Type<typeof FormSchema>) => {
61
- void toggleEdgeReplication(properties.edgeReplication);
62
- if (properties.name !== space.properties.name) {
63
- space.properties.name = properties.name;
64
- }
65
- if (properties.icon !== space.properties.icon) {
66
- space.properties.icon = properties.icon;
56
+ const handleValuesChanged = useCallback(
57
+ (newValues: Partial<Schema.Schema.Type<typeof SpaceFormSchema>>, meta: { changed?: Record<string, boolean> }) => {
58
+ const changed = meta.changed ?? {};
59
+ if (changed['edgeReplication']) {
60
+ void toggleEdgeReplication(newValues.edgeReplication ?? false);
67
61
  }
68
- if (properties.hue !== space.properties.hue) {
69
- space.properties.hue = properties.hue;
62
+
63
+ if (changed['name'] || changed['icon'] || changed['hue']) {
64
+ Obj.change(space.properties, (p) => {
65
+ if (changed['name'] && newValues.name !== undefined) {
66
+ p.name = newValues.name;
67
+ }
68
+ if (changed['icon']) {
69
+ p.icon = newValues.icon;
70
+ }
71
+ if (changed['hue']) {
72
+ p.hue = newValues.hue;
73
+ }
74
+ });
70
75
  }
71
- if (properties.archived && !archived) {
72
- void dispatch(
73
- Function.pipe(
74
- createIntent(SpaceAction.Close, { space }),
75
- chain(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: client.spaces.default.id }),
76
- ),
77
- );
78
- } else if (!properties.archived && archived) {
79
- void dispatch(createIntent(SpaceAction.Open, { space }));
76
+
77
+ if (changed['archived']) {
78
+ if (newValues.archived && !archived) {
79
+ void invokePromise(SpaceOperation.Close, { space });
80
+ void invokePromise(LayoutOperation.SwitchWorkspace, {
81
+ subject: client.spaces.default.id,
82
+ });
83
+ } else if (!newValues.archived && archived) {
84
+ void invokePromise(SpaceOperation.Open, { space });
85
+ }
80
86
  }
81
87
  },
82
- [space, toggleEdgeReplication, archived],
88
+ [space, client, archived, invokePromise, toggleEdgeReplication],
83
89
  );
84
90
 
85
91
  const values = useMemo(
@@ -93,7 +99,7 @@ export const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) =
93
99
  [space.properties.name, space.properties.icon, space.properties.hue, edgeReplication, archived],
94
100
  );
95
101
 
96
- const customElements: Partial<Record<string, InputComponent>> = useMemo(
102
+ const fieldMap = useMemo<FormFieldMap>(
97
103
  () => ({
98
104
  name: ({ type, label, getValue, onValueChange }) => {
99
105
  const handleChange = useCallback(
@@ -101,85 +107,96 @@ export const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) =
101
107
  [onValueChange, type],
102
108
  );
103
109
  return (
104
- <ControlItemInput title={label} description={t('display name description')}>
110
+ <Settings.ItemInput title={label} description={t('display name description')}>
105
111
  <Input.TextInput
106
112
  value={getValue()}
107
113
  onChange={handleChange}
108
114
  placeholder={t('display name input placeholder')}
109
115
  classNames='min-is-64'
110
116
  />
111
- </ControlItemInput>
117
+ </Settings.ItemInput>
112
118
  );
113
119
  },
114
120
  icon: ({ type, label, getValue, onValueChange }) => {
115
121
  const handleChange = useCallback((icon: string) => onValueChange(type, icon), [onValueChange, type]);
116
122
  const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);
117
123
  return (
118
- <ControlItem title={label} description={t('icon description')}>
124
+ <Settings.Item title={label} description={t('icon description')}>
119
125
  <IconPicker
120
126
  value={getValue()}
121
127
  onChange={handleChange}
122
128
  onReset={handleReset}
123
129
  classNames='justify-self-end'
124
- iconSize={5}
125
130
  />
126
- </ControlItem>
131
+ </Settings.Item>
127
132
  );
128
133
  },
129
134
  hue: ({ type, label, getValue, onValueChange }) => {
130
135
  const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange, type]);
131
136
  const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);
132
137
  return (
133
- <ControlItem title={label} description={t('hue description')}>
134
- <HuePicker
135
- value={getValue()}
136
- onChange={handleChange}
137
- onReset={handleReset}
138
- classNames='[--hue-preview-size:1.25rem] justify-self-end'
139
- />
140
- </ControlItem>
138
+ <Settings.Item title={label} description={t('hue description')}>
139
+ <HuePicker value={getValue()} onChange={handleChange} onReset={handleReset} classNames='justify-self-end' />
140
+ </Settings.Item>
141
141
  );
142
142
  },
143
143
  edgeReplication: ({ type, label, getValue, onValueChange }) => {
144
144
  const handleChange = useCallback((checked: boolean) => onValueChange(type, checked), [onValueChange, type]);
145
145
  return (
146
- <ControlItemInput title={label} description={t('edge replication description')}>
146
+ <Settings.ItemInput title={label} description={t('edge replication description')}>
147
147
  <Input.Switch checked={getValue()} onCheckedChange={handleChange} classNames='justify-self-end' />
148
- </ControlItemInput>
148
+ </Settings.ItemInput>
149
149
  );
150
150
  },
151
151
  archived: ({ type, label, getValue, onValueChange }) => {
152
152
  const handleChange = useCallback(() => onValueChange(type, !getValue()), [onValueChange, type, getValue]);
153
153
  return (
154
- <ControlItemInput title={label} description={t('archive space description')}>
155
- <Button disabled={space === client.spaces.default} onClick={handleChange}>
154
+ <Settings.ItemInput title={label} description={t('archive space description')}>
155
+ <Button
156
+ disabled={space === client.spaces.default}
157
+ variant={getValue() ? 'default' : 'destructive'}
158
+ onClick={handleChange}
159
+ >
156
160
  {getValue() ? t('unarchive space label') : t('archive space label')}
157
161
  </Button>
158
- </ControlItemInput>
162
+ </Settings.ItemInput>
159
163
  );
160
164
  },
161
165
  }),
162
- [t, space],
166
+ [t, space, client],
163
167
  );
164
168
 
169
+ const download = useFileDownload();
170
+ const handleBackup = useCallback(async () => {
171
+ const archive = await space.internal.export();
172
+ download(new Blob([archive.contents as Uint8Array<ArrayBuffer>]), archive.filename);
173
+ }, [space, download]);
174
+
175
+ const repairs = useCapabilities(SpaceCapabilities.Repair);
176
+ const handleRepair = useCallback(async () => {
177
+ await Promise.all(repairs.map((repair) => repair({ space, isDefault: client.spaces.default === space })));
178
+ }, [client, space, repairs]);
179
+
165
180
  return (
166
- <StackItem.Content scrollable>
167
- <ControlPage>
168
- <ControlSection
169
- title={t('space properties settings verbose label', { ns: meta.id })}
170
- description={t('space properties settings description', { ns: meta.id })}
171
- >
172
- <Form
173
- schema={FormSchema}
174
- values={values}
175
- autoSave
176
- onSave={handleSave}
177
- Custom={customElements}
178
- outerSpacing={false}
179
- classNames='container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]'
180
- />
181
- </ControlSection>
182
- </ControlPage>
183
- </StackItem.Content>
181
+ <Settings.Root>
182
+ <Settings.Section
183
+ title={t('space properties settings verbose label')}
184
+ description={t('space properties settings description', { ns: meta.id })}
185
+ >
186
+ <Form.Root fieldMap={fieldMap} schema={SpaceFormSchema} values={values} onValuesChanged={handleValuesChanged}>
187
+ <Form.FieldSet classNames='space-y-trimMd' />
188
+ </Form.Root>
189
+ </Settings.Section>
190
+ <Settings.Section title={t('space controls title')} description={t('space controls description')}>
191
+ <Settings.ItemInput title={t('backup space title')} description={t('backup space description')}>
192
+ <Button onClick={handleBackup}>{t('download backup label')}</Button>
193
+ </Settings.ItemInput>
194
+ <Settings.ItemInput title={t('repair space title')} description={t('repair space description')}>
195
+ <Button onClick={handleRepair}>{t('repair space label')}</Button>
196
+ </Settings.ItemInput>
197
+ </Settings.Section>
198
+ </Settings.Root>
184
199
  );
185
200
  };
201
+
202
+ SpaceSettingsContainer.displayName = 'SpaceSettingsContainer';
@@ -5,7 +5,7 @@
5
5
  import * as Option from 'effect/Option';
6
6
  import React, { useEffect, useState } from 'react';
7
7
 
8
- import { useAppGraph } from '@dxos/app-framework';
8
+ import { useAppGraph } from '@dxos/app-toolkit/ui';
9
9
  import { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';
10
10
  import { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';
11
11
  import { useClient } from '@dxos/react-client';
@@ -4,6 +4,7 @@
4
4
 
5
5
  import { type Meta, type StoryObj } from '@storybook/react-vite';
6
6
 
7
+ import { withClientProvider } from '@dxos/react-client/testing';
7
8
  import { withTheme } from '@dxos/react-ui/testing';
8
9
 
9
10
  import { translations } from '../../translations';
@@ -13,10 +14,10 @@ import { SyncStatusIndicator } from './SyncStatus';
13
14
  const meta = {
14
15
  title: 'plugins/plugin-space/SyncStatusIndicator',
15
16
  component: SyncStatusIndicator,
16
- decorators: [withTheme],
17
+ decorators: [withTheme(), withClientProvider({ createIdentity: true })],
17
18
  parameters: {
18
- translations,
19
19
  layout: 'centered',
20
+ translations,
20
21
  },
21
22
  } satisfies Meta<typeof SyncStatusIndicator>;
22
23
 
@@ -6,12 +6,13 @@ import React, { useEffect, useState } from 'react';
6
6
 
7
7
  import { StatusBar } from '@dxos/plugin-status-bar';
8
8
  import { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';
9
- import type { QueryEdgeStatusResponse } from '@dxos/protocols/proto/dxos/client/services';
9
+ import { type QueryEdgeStatusResponse } from '@dxos/protocols/proto/dxos/client/services';
10
10
  import { useClient } from '@dxos/react-client';
11
11
  import { useStream } from '@dxos/react-client/devtools';
12
12
  import { type SpaceSyncStateMap, getSyncSummary, useSyncState } from '@dxos/react-client/echo';
13
13
  import { Icon, Popover, useTranslation } from '@dxos/react-ui';
14
- import { Unit } from '@dxos/util';
14
+ import { mx } from '@dxos/ui-theme';
15
+ import { Unit, type UnitFormat } from '@dxos/util';
15
16
 
16
17
  import { meta } from '../../meta';
17
18
 
@@ -24,12 +25,7 @@ export const SyncStatus = () => {
24
25
  const client = useClient();
25
26
  const state = useSyncState();
26
27
  const [saved, setSaved] = useState(true);
27
-
28
- useEffect(() => {
29
- return createClientSaveTracker(client, (state) => {
30
- setSaved(state === 'saved');
31
- });
32
- }, []);
28
+ useEffect(() => createClientSaveTracker(client, (state) => setSaved(state === 'saved')), []);
33
29
 
34
30
  return <SyncStatusIndicator state={state} saved={saved} />;
35
31
  };
@@ -57,7 +53,7 @@ export const SyncStatusIndicator = ({ state, saved }: { state: SpaceSyncStateMap
57
53
  }, [offline, needsToUpload, needsToDownload]);
58
54
 
59
55
  const title = t(`${status} label`);
60
- const icon = <Icon icon={getIcon(status)} size={4} classNames={classNames} />;
56
+ const icon = <Icon icon={getIcon(status)} classNames={classNames} />;
61
57
 
62
58
  return (
63
59
  <Popover.Root>
@@ -90,57 +86,70 @@ const EdgeConnectionPopover = () => {
90
86
  const isConnected = status?.state === EdgeStatus.ConnectionState.CONNECTED;
91
87
 
92
88
  return (
93
- <div className='p-3 min-w-[240px]'>
89
+ <div className='min-is-[240px] p-2'>
94
90
  {/* Connection Status Header */}
95
- <div className='flex items-center gap-2 mb-3 pb-2 border-b border-neutral-100 dark:border-neutral-800'>
96
- <div className={`w-2 h-2 rounded-full ${isConnected ? 'bg-success-500 animate-pulse' : 'bg-error-500'}`} />
97
- <span className='font-medium text-sm text-neutral-900 dark:text-neutral-100'>
98
- {isConnected ? t('Edge connected') : t('Edge disconnected')}
91
+ <div className='flex items-center gap-2 mbe-2'>
92
+ <Icon
93
+ icon={isConnected ? 'ph--check-circle--regular' : 'ph--warning-circle--regular'}
94
+ classNames={mx(isConnected ? 'text-successText' : 'text-errorText animate-pulse')}
95
+ />
96
+ <span className='font-medium text-sm'>
97
+ {isConnected ? t('sync edge connected label') : t('sync edge disconnected label')}
99
98
  </span>
100
99
  </div>
101
100
 
102
101
  {/* Connection Details */}
103
102
  {status?.state === EdgeStatus.ConnectionState.NOT_CONNECTED && (
104
- <div className='flex items-center gap-2 text-sm text-neutral-600 dark:text-neutral-400'>
105
- <Icon icon='ph--cloud-x--regular' size={4} />
106
- <span>{t('No connection to edge service')}</span>
103
+ <div className='flex items-center gap-2 text-sm text-description'>
104
+ <Icon icon='ph--cloud-x--regular' />
105
+ <span>{t('sync no connection label')}</span>
107
106
  </div>
108
107
  )}
109
108
 
110
109
  {status?.state === EdgeStatus.ConnectionState.CONNECTED && (
111
110
  <div className='space-y-2'>
112
111
  {/* Latency */}
113
- <div className='flex items-center justify-between'>
114
- <div className='flex items-center gap-2 text-sm text-neutral-600 dark:text-neutral-400'>
115
- <Icon icon='ph--timer--regular' size={4} />
116
- <span>{t('Latency')}</span>
112
+ <div className='flex items-center justify-between text-sm'>
113
+ <div className='flex items-center gap-2 text-description'>
114
+ <Icon icon='ph--timer--regular' />
115
+ <span>{t('sync latency label')}</span>
117
116
  </div>
118
- <span className='text-sm font-mono text-neutral-900 dark:text-neutral-100'>{status.rtt.toFixed(0)} ms</span>
117
+ <UnitValue value={status.rtt} format={Unit.Millisecond} />
119
118
  </div>
120
119
 
121
120
  {/* Upload Speed */}
122
- <div className='flex items-center justify-between'>
123
- <div className='flex items-center gap-2 text-sm text-neutral-600 dark:text-neutral-400'>
124
- <Icon icon='ph--arrow-up--regular' size={4} />
125
- <span>{t('Upload')}</span>
121
+ <div className='flex items-center justify-between text-sm'>
122
+ <div className='flex items-center gap-2 text-description'>
123
+ <Icon icon='ph--arrow-up--regular' />
124
+ <span>{t('sync upload label')}</span>
126
125
  </div>
127
- <span className='text-sm font-mono text-neutral-900 dark:text-neutral-100'>
128
- {Unit.Kilobyte(status.rateBytesUp, 0)}/s
129
- </span>
126
+ <UnitValue value={status.rateBytesUp} format={Unit.Kilobyte} suffix='/s' />
130
127
  </div>
131
128
 
132
129
  {/* Download Speed */}
133
- <div className='flex items-center justify-between'>
134
- <div className='flex items-center gap-2 text-sm text-neutral-600 dark:text-neutral-400'>
135
- <Icon icon='ph--arrow-down--regular' size={4} />
136
- <span>{t('Download')}</span>
130
+ <div className='flex items-center justify-between text-sm'>
131
+ <div className='flex items-center gap-2 text-sm text-description'>
132
+ <Icon icon='ph--arrow-down--regular' />
133
+ <span>{t('sync download label')}</span>
137
134
  </div>
138
- <span className='text-sm font-mono text-neutral-900 dark:text-neutral-100'>
139
- {Unit.Kilobyte(status.rateBytesDown, 0)}/s
140
- </span>
135
+ <UnitValue value={status.rateBytesDown} format={Unit.Kilobyte} suffix='/s' />
141
136
  </div>
142
137
  </div>
143
138
  )}
144
139
  </div>
145
140
  );
146
141
  };
142
+
143
+ // TODO(burdon): Factor out.
144
+ const UnitValue = ({ value: input, format, suffix }: { value: number; format: UnitFormat; suffix?: string }) => {
145
+ const { formattedValue, unit } = format(input);
146
+ return (
147
+ <span className='font-mono'>
148
+ {formattedValue}
149
+ <span className='mis-1 text-subdued'>
150
+ {unit.symbol}
151
+ {suffix}
152
+ </span>
153
+ </span>
154
+ );
155
+ };
@@ -46,10 +46,10 @@ const createSpaceSaveTracker = (space: Space, cb: (state: 'saved' | 'saving') =>
46
46
 
47
47
  let hasUnsavedChanges = false;
48
48
  let lastFlushPromise: Promise<void> | undefined;
49
- space.db.saveStateChanged.on(ctx, ({ unsavedDocuments }) => {
49
+ space.internal.db.saveStateChanged.on(ctx, ({ unsavedDocuments }) => {
50
50
  hasUnsavedChanges = unsavedDocuments.length > 0;
51
51
  });
52
- space.db.saveStateChanged.debounce(500).on(ctx, () => {
52
+ space.internal.db.saveStateChanged.debounce(500).on(ctx, () => {
53
53
  if (hasUnsavedChanges) {
54
54
  lastFlushPromise = undefined;
55
55
  cb('saving');