@dxos/plugin-space 0.8.4-main.bc674ce → 0.8.4-main.c351d160a8

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 (544) hide show
  1. package/dist/lib/browser/CollectionArticle-XGSQDBMS.mjs +115 -0
  2. package/dist/lib/browser/CollectionArticle-XGSQDBMS.mjs.map +7 -0
  3. package/dist/lib/browser/CollectionSection-H2MBNI63.mjs +23 -0
  4. package/dist/lib/browser/CollectionSection-H2MBNI63.mjs.map +7 -0
  5. package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs +142 -0
  6. package/dist/lib/browser/CreateObjectDialog-YUBUWSEL.mjs.map +7 -0
  7. package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs +64 -0
  8. package/dist/lib/browser/CreateSpaceDialog-3M2LAWV6.mjs.map +7 -0
  9. package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs +53 -0
  10. package/dist/lib/browser/InlineSyncStatus-K5MZ3YMZ.mjs.map +7 -0
  11. package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs +115 -0
  12. package/dist/lib/browser/JoinDialog-PBK2RE5F.mjs.map +7 -0
  13. package/dist/lib/browser/MembersContainer-OGYV2L4M.mjs +257 -0
  14. package/dist/lib/browser/MembersContainer-OGYV2L4M.mjs.map +7 -0
  15. package/dist/lib/browser/MenuFooter-XCBDK7WP.mjs +37 -0
  16. package/dist/lib/browser/MenuFooter-XCBDK7WP.mjs.map +7 -0
  17. package/dist/lib/browser/ObjectCardStack-UOEHSBL5.mjs +64 -0
  18. package/dist/lib/browser/ObjectCardStack-UOEHSBL5.mjs.map +7 -0
  19. package/dist/lib/browser/ObjectDetails-ADGND237.mjs +43 -0
  20. package/dist/lib/browser/ObjectDetails-ADGND237.mjs.map +7 -0
  21. package/dist/lib/browser/ObjectRenamePopover-JNPJIFIR.mjs +70 -0
  22. package/dist/lib/browser/ObjectRenamePopover-JNPJIFIR.mjs.map +7 -0
  23. package/dist/lib/browser/{RecordArticle-W57QE7QV.mjs → RecordArticle-YXAJ23HH.mjs} +49 -34
  24. package/dist/lib/browser/RecordArticle-YXAJ23HH.mjs.map +7 -0
  25. package/dist/lib/browser/SchemaContainer-QWCSIZBS.mjs +49 -0
  26. package/dist/lib/browser/SchemaContainer-QWCSIZBS.mjs.map +7 -0
  27. package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs +9 -0
  28. package/dist/lib/browser/SmallPresenceLive-AHHLBAUP.mjs.map +7 -0
  29. package/dist/lib/browser/SpacePluginSettings-QGZKNQLK.mjs +59 -0
  30. package/dist/lib/browser/SpacePluginSettings-QGZKNQLK.mjs.map +7 -0
  31. package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs +12 -0
  32. package/dist/lib/browser/SpacePresence-JIWLBUWO.mjs.map +7 -0
  33. package/dist/lib/browser/SpaceRenamePopover-ZL6RRZ2B.mjs +62 -0
  34. package/dist/lib/browser/SpaceRenamePopover-ZL6RRZ2B.mjs.map +7 -0
  35. package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs +242 -0
  36. package/dist/lib/browser/SpaceSettingsContainer-MIOOT63N.mjs.map +7 -0
  37. package/dist/lib/browser/SyncStatus-6N7JJ7XF.mjs +141 -0
  38. package/dist/lib/browser/SyncStatus-6N7JJ7XF.mjs.map +7 -0
  39. package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs +113 -0
  40. package/dist/lib/browser/ViewEditor-3FX5HDRT.mjs.map +7 -0
  41. package/dist/lib/browser/app-graph-builder-UEOUAYZG.mjs +1201 -0
  42. package/dist/lib/browser/app-graph-builder-UEOUAYZG.mjs.map +7 -0
  43. package/dist/lib/browser/{app-graph-serializer-7AT7QMSK.mjs → app-graph-serializer-UZWWGLGY.mjs} +11 -10
  44. package/dist/lib/browser/app-graph-serializer-UZWWGLGY.mjs.map +7 -0
  45. package/dist/lib/browser/chunk-2WHUSAHE.mjs +579 -0
  46. package/dist/lib/browser/chunk-2WHUSAHE.mjs.map +7 -0
  47. package/dist/lib/browser/{chunk-CCRSHECL.mjs → chunk-6IT5IBB5.mjs} +74 -105
  48. package/dist/lib/browser/chunk-6IT5IBB5.mjs.map +7 -0
  49. package/dist/lib/browser/chunk-6OA75CWN.mjs +77 -0
  50. package/dist/lib/browser/chunk-6OA75CWN.mjs.map +7 -0
  51. package/dist/lib/browser/{chunk-ZT2VPYRM.mjs → chunk-AUX3RRLY.mjs} +37 -12
  52. package/dist/lib/browser/chunk-AUX3RRLY.mjs.map +7 -0
  53. package/dist/lib/browser/{chunk-HSMQFM57.mjs → chunk-CBWGVOJE.mjs} +2 -2
  54. package/dist/lib/browser/{chunk-HSMQFM57.mjs.map → chunk-CBWGVOJE.mjs.map} +1 -1
  55. package/dist/lib/browser/{chunk-4WZUGLQQ.mjs → chunk-ICXESMDI.mjs} +13 -12
  56. package/dist/lib/browser/chunk-ICXESMDI.mjs.map +7 -0
  57. package/dist/lib/browser/chunk-RJUOHI3B.mjs +19 -0
  58. package/dist/lib/browser/{chunk-ASV6DYFH.mjs.map → chunk-RJUOHI3B.mjs.map} +1 -1
  59. package/dist/lib/browser/chunk-SJCNERZI.mjs +115 -0
  60. package/dist/lib/browser/chunk-SJCNERZI.mjs.map +7 -0
  61. package/dist/lib/browser/{chunk-AWVAX26X.mjs → chunk-SSTUPFZ2.mjs} +3 -3
  62. package/dist/lib/browser/chunk-UYOJYBGW.mjs +168 -0
  63. package/dist/lib/browser/chunk-UYOJYBGW.mjs.map +7 -0
  64. package/dist/lib/browser/cli/index.mjs +38 -44
  65. package/dist/lib/browser/cli/index.mjs.map +3 -3
  66. package/dist/lib/browser/{identity-created-VCFYLSBB.mjs → identity-created-ETXNQYR6.mjs} +5 -5
  67. package/dist/lib/browser/identity-created-ETXNQYR6.mjs.map +7 -0
  68. package/dist/lib/browser/index.mjs +104 -159
  69. package/dist/lib/browser/index.mjs.map +3 -3
  70. package/dist/lib/browser/meta.json +1 -1
  71. package/dist/lib/browser/{operation-resolver-SIRQT36Z.mjs → operation-resolver-D4LHB4D4.mjs} +95 -115
  72. package/dist/lib/browser/operation-resolver-D4LHB4D4.mjs.map +7 -0
  73. package/dist/lib/browser/{react-root-3SPMM45V.mjs → react-root-OD2HP63B.mjs} +9 -9
  74. package/dist/lib/browser/react-root-OD2HP63B.mjs.map +7 -0
  75. package/dist/lib/browser/{react-surface-UUS7NDHS.mjs → react-surface-ANV4KTRV.mjs} +98 -115
  76. package/dist/lib/browser/react-surface-ANV4KTRV.mjs.map +7 -0
  77. package/dist/lib/browser/repair-NUVEV4AK.mjs +31 -0
  78. package/dist/lib/browser/repair-NUVEV4AK.mjs.map +7 -0
  79. package/dist/lib/browser/{settings-ZS2AQ73E.mjs → settings-RUDP2Q56.mjs} +6 -5
  80. package/dist/lib/browser/settings-RUDP2Q56.mjs.map +7 -0
  81. package/dist/lib/browser/{spaces-ready-OQDGWUOS.mjs → spaces-ready-B2GYL5IN.mjs} +15 -14
  82. package/dist/lib/browser/spaces-ready-B2GYL5IN.mjs.map +7 -0
  83. package/dist/lib/browser/{state-7YZQB2KY.mjs → state-I6JDZCDE.mjs} +8 -8
  84. package/dist/lib/browser/state-I6JDZCDE.mjs.map +7 -0
  85. package/dist/lib/browser/types/index.mjs +2 -2
  86. package/dist/lib/node-esm/{CollectionArticle-V5OOJVJJ.mjs → CollectionArticle-MNLCROOX.mjs} +49 -59
  87. package/dist/lib/node-esm/CollectionArticle-MNLCROOX.mjs.map +7 -0
  88. package/dist/lib/node-esm/CollectionSection-BI66Y34F.mjs +24 -0
  89. package/dist/lib/node-esm/CollectionSection-BI66Y34F.mjs.map +7 -0
  90. package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs +143 -0
  91. package/dist/lib/node-esm/CreateObjectDialog-B6OLP5VQ.mjs.map +7 -0
  92. package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs +65 -0
  93. package/dist/lib/node-esm/CreateSpaceDialog-J47M5FPQ.mjs.map +7 -0
  94. package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs +54 -0
  95. package/dist/lib/node-esm/InlineSyncStatus-BLD57LB5.mjs.map +7 -0
  96. package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs +116 -0
  97. package/dist/lib/node-esm/JoinDialog-XCOYKSHA.mjs.map +7 -0
  98. package/dist/lib/node-esm/MembersContainer-4PV3Z4BA.mjs +258 -0
  99. package/dist/lib/node-esm/MembersContainer-4PV3Z4BA.mjs.map +7 -0
  100. package/dist/lib/node-esm/MenuFooter-PXG2GV6A.mjs +38 -0
  101. package/dist/lib/node-esm/MenuFooter-PXG2GV6A.mjs.map +7 -0
  102. package/dist/lib/node-esm/ObjectCardStack-THP5FKDV.mjs +65 -0
  103. package/dist/lib/node-esm/ObjectCardStack-THP5FKDV.mjs.map +7 -0
  104. package/dist/lib/node-esm/ObjectDetails-2SBF3KBM.mjs +44 -0
  105. package/dist/lib/node-esm/ObjectDetails-2SBF3KBM.mjs.map +7 -0
  106. package/dist/lib/node-esm/ObjectRenamePopover-BRPKVNVF.mjs +71 -0
  107. package/dist/lib/node-esm/ObjectRenamePopover-BRPKVNVF.mjs.map +7 -0
  108. package/dist/lib/node-esm/{RecordArticle-SSV74Z46.mjs → RecordArticle-344UK7QP.mjs} +49 -34
  109. package/dist/lib/node-esm/RecordArticle-344UK7QP.mjs.map +7 -0
  110. package/dist/lib/node-esm/SchemaContainer-5G4R3Z6O.mjs +50 -0
  111. package/dist/lib/node-esm/SchemaContainer-5G4R3Z6O.mjs.map +7 -0
  112. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs +10 -0
  113. package/dist/lib/node-esm/SmallPresenceLive-4K7RJS74.mjs.map +7 -0
  114. package/dist/lib/node-esm/SpacePluginSettings-PENV4GHL.mjs +60 -0
  115. package/dist/lib/node-esm/SpacePluginSettings-PENV4GHL.mjs.map +7 -0
  116. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs +13 -0
  117. package/dist/lib/node-esm/SpacePresence-H3VZWFJV.mjs.map +7 -0
  118. package/dist/lib/node-esm/SpaceRenamePopover-XEMTI4PU.mjs +63 -0
  119. package/dist/lib/node-esm/SpaceRenamePopover-XEMTI4PU.mjs.map +7 -0
  120. package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs +243 -0
  121. package/dist/lib/node-esm/SpaceSettingsContainer-WI4D7RWA.mjs.map +7 -0
  122. package/dist/lib/node-esm/SyncStatus-YEBGTNSD.mjs +142 -0
  123. package/dist/lib/node-esm/SyncStatus-YEBGTNSD.mjs.map +7 -0
  124. package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs +114 -0
  125. package/dist/lib/node-esm/ViewEditor-CUQVNM2H.mjs.map +7 -0
  126. package/dist/lib/node-esm/app-graph-builder-W2QNDIZF.mjs +1202 -0
  127. package/dist/lib/node-esm/app-graph-builder-W2QNDIZF.mjs.map +7 -0
  128. package/dist/lib/node-esm/{app-graph-serializer-WJ2TIQG6.mjs → app-graph-serializer-RT2RQTV2.mjs} +11 -10
  129. package/dist/lib/node-esm/app-graph-serializer-RT2RQTV2.mjs.map +7 -0
  130. package/dist/lib/node-esm/{chunk-JOBIWCBC.mjs → chunk-2OLR2ZKH.mjs} +13 -12
  131. package/dist/lib/node-esm/chunk-2OLR2ZKH.mjs.map +7 -0
  132. package/dist/lib/node-esm/chunk-5KTTTTEX.mjs +20 -0
  133. package/dist/lib/node-esm/{chunk-CVXULIYC.mjs.map → chunk-5KTTTTEX.mjs.map} +1 -1
  134. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs → chunk-63N5JJXI.mjs} +2 -2
  135. package/dist/lib/node-esm/{chunk-SL4BJSUG.mjs.map → chunk-63N5JJXI.mjs.map} +1 -1
  136. package/dist/lib/node-esm/chunk-EDC2RUJU.mjs +169 -0
  137. package/dist/lib/node-esm/chunk-EDC2RUJU.mjs.map +7 -0
  138. package/dist/lib/node-esm/{chunk-MPL6NHQX.mjs → chunk-EVNSLSQS.mjs} +74 -105
  139. package/dist/lib/node-esm/chunk-EVNSLSQS.mjs.map +7 -0
  140. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs +78 -0
  141. package/dist/lib/node-esm/chunk-GEGWQVZX.mjs.map +7 -0
  142. package/dist/lib/node-esm/chunk-IV7VKVGC.mjs +117 -0
  143. package/dist/lib/node-esm/chunk-IV7VKVGC.mjs.map +7 -0
  144. package/dist/lib/node-esm/{chunk-2SW6S2BB.mjs → chunk-RYQQXNI7.mjs} +37 -12
  145. package/dist/lib/node-esm/chunk-RYQQXNI7.mjs.map +7 -0
  146. package/dist/lib/node-esm/chunk-S5BQUCL4.mjs +580 -0
  147. package/dist/lib/node-esm/chunk-S5BQUCL4.mjs.map +7 -0
  148. package/dist/lib/node-esm/{chunk-HREWB23G.mjs → chunk-XYLDAH5C.mjs} +3 -3
  149. package/dist/lib/node-esm/cli/index.mjs +38 -44
  150. package/dist/lib/node-esm/cli/index.mjs.map +3 -3
  151. package/dist/lib/node-esm/{identity-created-2SJABVJD.mjs → identity-created-U5LGULVL.mjs} +5 -5
  152. package/dist/lib/node-esm/identity-created-U5LGULVL.mjs.map +7 -0
  153. package/dist/lib/node-esm/index.mjs +104 -159
  154. package/dist/lib/node-esm/index.mjs.map +3 -3
  155. package/dist/lib/node-esm/meta.json +1 -1
  156. package/dist/lib/node-esm/{operation-resolver-ZE3XJL5J.mjs → operation-resolver-IL2AHNPN.mjs} +95 -115
  157. package/dist/lib/node-esm/operation-resolver-IL2AHNPN.mjs.map +7 -0
  158. package/dist/lib/node-esm/{react-root-Y6JTGDTW.mjs → react-root-RILC5MBD.mjs} +9 -9
  159. package/dist/lib/node-esm/react-root-RILC5MBD.mjs.map +7 -0
  160. package/dist/lib/node-esm/{react-surface-SQ4SK3OK.mjs → react-surface-TA5KEWVW.mjs} +98 -115
  161. package/dist/lib/node-esm/react-surface-TA5KEWVW.mjs.map +7 -0
  162. package/dist/lib/node-esm/{repair-G3ZW3VG3.mjs → repair-LRZHFPSJ.mjs} +6 -25
  163. package/dist/lib/node-esm/repair-LRZHFPSJ.mjs.map +7 -0
  164. package/dist/lib/node-esm/{settings-PVI2VG56.mjs → settings-3EKSEAAG.mjs} +6 -5
  165. package/dist/lib/node-esm/settings-3EKSEAAG.mjs.map +7 -0
  166. package/dist/lib/node-esm/{spaces-ready-R744OHQG.mjs → spaces-ready-QK3EHBOS.mjs} +15 -14
  167. package/dist/lib/node-esm/spaces-ready-QK3EHBOS.mjs.map +7 -0
  168. package/dist/lib/node-esm/{state-XE5YGPHM.mjs → state-W36RRYUO.mjs} +8 -8
  169. package/dist/lib/node-esm/state-W36RRYUO.mjs.map +7 -0
  170. package/dist/lib/node-esm/types/index.mjs +2 -2
  171. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  172. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +2 -2
  173. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -1
  174. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts +33 -0
  175. package/dist/types/src/capabilities/app-graph-builder/extensions/collections.d.ts.map +1 -0
  176. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts +19 -0
  177. package/dist/types/src/capabilities/app-graph-builder/extensions/companions.d.ts.map +1 -0
  178. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts +6 -0
  179. package/dist/types/src/capabilities/app-graph-builder/extensions/index.d.ts.map +1 -0
  180. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts +12 -0
  181. package/dist/types/src/capabilities/app-graph-builder/extensions/settings.d.ts.map +1 -0
  182. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts +57 -0
  183. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.d.ts.map +1 -0
  184. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts +2 -0
  185. package/dist/types/src/capabilities/app-graph-builder/extensions/shared.test.d.ts.map +1 -0
  186. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts +24 -0
  187. package/dist/types/src/capabilities/app-graph-builder/extensions/spaces.d.ts.map +1 -0
  188. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts +38 -0
  189. package/dist/types/src/capabilities/app-graph-builder/extensions/types.d.ts.map +1 -0
  190. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +1 -1
  191. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -1
  192. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts +2 -2
  193. package/dist/types/src/capabilities/app-graph-serializer/app-graph-serializer.d.ts.map +1 -1
  194. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts +1 -1
  195. package/dist/types/src/capabilities/app-graph-serializer/index.d.ts.map +1 -1
  196. package/dist/types/src/capabilities/identity-created/identity-created.d.ts +1 -1
  197. package/dist/types/src/capabilities/operation-resolver/index.d.ts +1 -1
  198. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -1
  199. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +2 -2
  200. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -1
  201. package/dist/types/src/capabilities/react-root/react-root.d.ts +1 -1
  202. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -1
  203. package/dist/types/src/capabilities/react-surface/index.d.ts +1 -1
  204. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -1
  205. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +2 -2
  206. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -1
  207. package/dist/types/src/capabilities/repair/repair.d.ts +1 -1
  208. package/dist/types/src/capabilities/repair/repair.d.ts.map +1 -1
  209. package/dist/types/src/capabilities/settings/index.d.ts +1 -1
  210. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -1
  211. package/dist/types/src/capabilities/settings/settings.d.ts +4 -3
  212. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -1
  213. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts +1 -1
  214. package/dist/types/src/capabilities/spaces-ready/spaces-ready.d.ts.map +1 -1
  215. package/dist/types/src/capabilities/state/state.d.ts +1 -1
  216. package/dist/types/src/capabilities/state/state.d.ts.map +1 -1
  217. package/dist/types/src/cli/commands/database/add.d.ts +0 -1
  218. package/dist/types/src/cli/commands/database/add.d.ts.map +1 -1
  219. package/dist/types/src/cli/plugin.d.ts.map +1 -1
  220. package/dist/types/src/components/AwaitingObject/AwaitingObject.d.ts.map +1 -0
  221. package/dist/types/src/components/AwaitingObject/index.d.ts +2 -0
  222. package/dist/types/src/components/AwaitingObject/index.d.ts.map +1 -0
  223. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +12 -5
  224. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  225. package/dist/types/src/components/CreateDialog/index.d.ts +1 -2
  226. package/dist/types/src/components/CreateDialog/index.d.ts.map +1 -1
  227. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.d.ts.map +1 -1
  228. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts +68 -14
  229. package/dist/types/src/components/ObjectDetails/BaseObjectSettings.stories.d.ts.map +1 -1
  230. package/dist/types/src/components/ObjectDetails/index.d.ts +2 -2
  231. package/dist/types/src/components/ObjectDetails/index.d.ts.map +1 -1
  232. package/dist/types/src/components/ObjectForm/ObjectForm.d.ts.map +1 -0
  233. package/dist/types/src/components/ObjectForm/index.d.ts +2 -0
  234. package/dist/types/src/components/ObjectForm/index.d.ts.map +1 -0
  235. package/dist/types/src/components/SyncStatus/index.d.ts +2 -2
  236. package/dist/types/src/components/SyncStatus/index.d.ts.map +1 -1
  237. package/dist/types/src/components/index.d.ts +2 -23
  238. package/dist/types/src/components/index.d.ts.map +1 -1
  239. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts +8 -0
  240. package/dist/types/src/containers/CollectionArticle/CollectionArticle.d.ts.map +1 -0
  241. package/dist/types/src/containers/CollectionArticle/index.d.ts +3 -0
  242. package/dist/types/src/containers/CollectionArticle/index.d.ts.map +1 -0
  243. package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts +5 -0
  244. package/dist/types/src/containers/CollectionSection/CollectionSection.d.ts.map +1 -0
  245. package/dist/types/src/containers/CollectionSection/index.d.ts +3 -0
  246. package/dist/types/src/containers/CollectionSection/index.d.ts.map +1 -0
  247. package/dist/types/src/{components/CreateDialog → containers/CreateObjectDialog}/CreateObjectDialog.d.ts +5 -3
  248. package/dist/types/src/containers/CreateObjectDialog/CreateObjectDialog.d.ts.map +1 -0
  249. package/dist/types/src/containers/CreateObjectDialog/index.d.ts +3 -0
  250. package/dist/types/src/containers/CreateObjectDialog/index.d.ts.map +1 -0
  251. package/dist/types/src/containers/CreateSpaceDialog/CreateSpaceDialog.d.ts.map +1 -0
  252. package/dist/types/src/containers/CreateSpaceDialog/index.d.ts +3 -0
  253. package/dist/types/src/containers/CreateSpaceDialog/index.d.ts.map +1 -0
  254. package/dist/types/src/containers/InlineSyncStatus/InlineSyncStatus.d.ts.map +1 -0
  255. package/dist/types/src/containers/InlineSyncStatus/index.d.ts +3 -0
  256. package/dist/types/src/containers/InlineSyncStatus/index.d.ts.map +1 -0
  257. package/dist/types/src/{components → containers}/JoinDialog/JoinDialog.d.ts.map +1 -1
  258. package/dist/types/src/containers/JoinDialog/index.d.ts +3 -0
  259. package/dist/types/src/containers/JoinDialog/index.d.ts.map +1 -0
  260. package/dist/types/src/{components → containers}/MembersContainer/MembersContainer.d.ts.map +1 -1
  261. package/dist/types/src/containers/MembersContainer/index.d.ts +3 -0
  262. package/dist/types/src/containers/MembersContainer/index.d.ts.map +1 -0
  263. package/dist/types/src/containers/MenuFooter/MenuFooter.d.ts.map +1 -0
  264. package/dist/types/src/containers/MenuFooter/index.d.ts +3 -0
  265. package/dist/types/src/containers/MenuFooter/index.d.ts.map +1 -0
  266. package/dist/types/src/{components → containers}/ObjectCardStack/ObjectCardStack.d.ts +4 -1
  267. package/dist/types/src/containers/ObjectCardStack/ObjectCardStack.d.ts.map +1 -0
  268. package/dist/types/src/{components → containers}/ObjectCardStack/index.d.ts.map +1 -1
  269. package/dist/types/src/{components → containers}/ObjectDetails/ObjectDetails.d.ts +2 -1
  270. package/dist/types/src/containers/ObjectDetails/ObjectDetails.d.ts.map +1 -0
  271. package/dist/types/src/containers/ObjectDetails/index.d.ts +3 -0
  272. package/dist/types/src/containers/ObjectDetails/index.d.ts.map +1 -0
  273. package/dist/types/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.d.ts.map +1 -1
  274. package/dist/types/src/containers/ObjectRenamePopover/index.d.ts +3 -0
  275. package/dist/types/src/containers/ObjectRenamePopover/index.d.ts.map +1 -0
  276. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts +4 -0
  277. package/dist/types/src/containers/RecordArticle/RecordArticle.d.ts.map +1 -0
  278. package/dist/types/src/containers/RecordArticle/index.d.ts +3 -0
  279. package/dist/types/src/containers/RecordArticle/index.d.ts.map +1 -0
  280. package/dist/types/src/containers/SchemaContainer/SchemaContainer.d.ts.map +1 -0
  281. package/dist/types/src/containers/SchemaContainer/index.d.ts +3 -0
  282. package/dist/types/src/containers/SchemaContainer/index.d.ts.map +1 -0
  283. package/dist/types/src/containers/SmallPresenceLive/index.d.ts +2 -0
  284. package/dist/types/src/containers/SmallPresenceLive/index.d.ts.map +1 -0
  285. package/dist/types/src/{components → containers/SpacePluginSettings}/SpacePluginSettings.d.ts +1 -1
  286. package/dist/types/src/containers/SpacePluginSettings/SpacePluginSettings.d.ts.map +1 -0
  287. package/dist/types/src/containers/SpacePluginSettings/index.d.ts +3 -0
  288. package/dist/types/src/containers/SpacePluginSettings/index.d.ts.map +1 -0
  289. package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.d.ts.map +1 -1
  290. package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.stories.d.ts +67 -13
  291. package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.stories.d.ts.map +1 -1
  292. package/dist/types/src/containers/SpacePresence/index.d.ts +3 -0
  293. package/dist/types/src/containers/SpacePresence/index.d.ts.map +1 -0
  294. package/dist/types/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.d.ts.map +1 -1
  295. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts +3 -0
  296. package/dist/types/src/containers/SpaceRenamePopover/index.d.ts.map +1 -0
  297. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts +10 -0
  298. package/dist/types/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.d.ts.map +1 -0
  299. package/dist/types/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.d.ts +71 -14
  300. package/dist/types/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.d.ts.map +1 -1
  301. package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts +3 -0
  302. package/dist/types/src/containers/SpaceSettingsContainer/index.d.ts.map +1 -0
  303. package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.d.ts.map +1 -1
  304. package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.stories.d.ts +67 -13
  305. package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.stories.d.ts.map +1 -1
  306. package/dist/types/src/containers/SyncStatus/index.d.ts +3 -0
  307. package/dist/types/src/containers/SyncStatus/index.d.ts.map +1 -0
  308. package/dist/types/src/{components → containers/ViewEditor}/ViewEditor.d.ts +1 -1
  309. package/dist/types/src/containers/ViewEditor/ViewEditor.d.ts.map +1 -0
  310. package/dist/types/src/containers/ViewEditor/index.d.ts +3 -0
  311. package/dist/types/src/containers/ViewEditor/index.d.ts.map +1 -0
  312. package/dist/types/src/containers/index.d.ts +23 -0
  313. package/dist/types/src/containers/index.d.ts.map +1 -0
  314. package/dist/types/src/helpers/query.d.ts.map +1 -1
  315. package/dist/types/src/hooks/useActiveSpace.d.ts.map +1 -1
  316. package/dist/types/src/index.d.ts +1 -1
  317. package/dist/types/src/index.d.ts.map +1 -1
  318. package/dist/types/src/translations.d.ts +67 -13
  319. package/dist/types/src/translations.d.ts.map +1 -1
  320. package/dist/types/src/types/capabilities.d.ts +1 -1
  321. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  322. package/dist/types/src/types/events.d.ts.map +1 -1
  323. package/dist/types/src/types/form.d.ts +0 -2
  324. package/dist/types/src/types/form.d.ts.map +1 -1
  325. package/dist/types/src/types/types.d.ts +63 -124
  326. package/dist/types/src/types/types.d.ts.map +1 -1
  327. package/dist/types/src/util.d.ts +6 -121
  328. package/dist/types/src/util.d.ts.map +1 -1
  329. package/dist/types/tsconfig.tsbuildinfo +1 -1
  330. package/package.json +68 -66
  331. package/src/SpacePlugin.ts +83 -70
  332. package/src/capabilities/app-graph-builder/app-graph-builder.ts +17 -602
  333. package/src/capabilities/app-graph-builder/extensions/collections.ts +351 -0
  334. package/src/capabilities/app-graph-builder/extensions/companions.ts +80 -0
  335. package/src/capabilities/app-graph-builder/extensions/index.ts +9 -0
  336. package/src/capabilities/app-graph-builder/extensions/settings.ts +60 -0
  337. package/src/capabilities/app-graph-builder/extensions/shared.test.ts +112 -0
  338. package/src/capabilities/app-graph-builder/extensions/shared.ts +171 -0
  339. package/src/capabilities/app-graph-builder/extensions/spaces.ts +338 -0
  340. package/src/capabilities/app-graph-builder/extensions/types.ts +432 -0
  341. package/src/capabilities/app-graph-serializer/app-graph-serializer.ts +6 -5
  342. package/src/capabilities/identity-created/identity-created.ts +4 -4
  343. package/src/capabilities/operation-resolver/operation-resolver.ts +97 -94
  344. package/src/capabilities/react-root/react-root.tsx +3 -3
  345. package/src/capabilities/react-surface/react-surface.tsx +79 -99
  346. package/src/capabilities/repair/repair.ts +3 -28
  347. package/src/capabilities/settings/settings.ts +3 -2
  348. package/src/capabilities/spaces-ready/spaces-ready.ts +8 -7
  349. package/src/capabilities/state/state.ts +7 -5
  350. package/src/cli/commands/database/add.ts +8 -10
  351. package/src/cli/commands/database/query/query.ts +1 -1
  352. package/src/cli/commands/database/remove.ts +2 -2
  353. package/src/cli/commands/database/stats.ts +1 -1
  354. package/src/cli/commands/space/close/close.ts +1 -1
  355. package/src/cli/commands/space/create/create.ts +1 -1
  356. package/src/cli/commands/space/join/join.ts +1 -1
  357. package/src/cli/commands/space/open/open.ts +1 -1
  358. package/src/cli/plugin.ts +34 -27
  359. package/src/components/{AwaitingObject.tsx → AwaitingObject/AwaitingObject.tsx} +6 -5
  360. package/src/components/AwaitingObject/index.ts +5 -0
  361. package/src/components/CreateDialog/CreateObjectPanel.tsx +90 -111
  362. package/src/components/CreateDialog/index.ts +1 -2
  363. package/src/components/ObjectDetails/BaseObjectSettings.stories.tsx +10 -10
  364. package/src/components/ObjectDetails/BaseObjectSettings.tsx +8 -8
  365. package/src/components/ObjectDetails/ForeignKeys.tsx +1 -1
  366. package/src/components/ObjectDetails/index.ts +2 -3
  367. package/src/components/{ObjectCardStack → ObjectForm}/ObjectForm.tsx +9 -7
  368. package/src/components/{JoinDialog → ObjectForm}/index.ts +1 -1
  369. package/src/components/SyncStatus/index.ts +2 -2
  370. package/src/components/index.ts +2 -18
  371. package/src/constants.ts +5 -5
  372. package/src/containers/CollectionArticle/CollectionArticle.tsx +139 -0
  373. package/src/containers/CollectionArticle/index.ts +7 -0
  374. package/src/{components → containers/CollectionSection}/CollectionSection.tsx +4 -4
  375. package/src/containers/CollectionSection/index.ts +7 -0
  376. package/src/{components/CreateDialog → containers/CreateObjectDialog}/CreateObjectDialog.tsx +62 -42
  377. package/src/containers/CreateObjectDialog/index.ts +6 -0
  378. package/src/{components/CreateDialog → containers/CreateSpaceDialog}/CreateSpaceDialog.tsx +6 -6
  379. package/src/containers/CreateSpaceDialog/index.ts +7 -0
  380. package/src/{components/SyncStatus → containers/InlineSyncStatus}/InlineSyncStatus.tsx +8 -19
  381. package/src/containers/InlineSyncStatus/index.ts +7 -0
  382. package/src/{components → containers}/JoinDialog/JoinDialog.tsx +10 -9
  383. package/src/containers/JoinDialog/index.ts +6 -0
  384. package/src/{components → containers}/MembersContainer/MembersContainer.tsx +50 -53
  385. package/src/containers/MembersContainer/index.ts +7 -0
  386. package/src/{components → containers/MenuFooter}/MenuFooter.tsx +5 -5
  387. package/src/containers/MenuFooter/index.ts +7 -0
  388. package/src/containers/ObjectCardStack/ObjectCardStack.tsx +82 -0
  389. package/src/containers/ObjectDetails/ObjectDetails.tsx +36 -0
  390. package/src/containers/ObjectDetails/index.ts +7 -0
  391. package/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.tsx +4 -4
  392. package/src/containers/ObjectRenamePopover/index.ts +7 -0
  393. package/src/{components → containers/RecordArticle}/RecordArticle.tsx +55 -37
  394. package/src/containers/RecordArticle/index.ts +7 -0
  395. package/src/{components → containers/SchemaContainer}/SchemaContainer.tsx +22 -18
  396. package/src/containers/SchemaContainer/index.ts +7 -0
  397. package/src/containers/SmallPresenceLive/index.ts +5 -0
  398. package/src/containers/SpacePluginSettings/SpacePluginSettings.tsx +65 -0
  399. package/src/containers/SpacePluginSettings/index.ts +7 -0
  400. package/src/{components → containers}/SpacePresence/SpacePresence.stories.tsx +2 -2
  401. package/src/{components → containers}/SpacePresence/SpacePresence.tsx +11 -22
  402. package/src/containers/SpacePresence/index.ts +6 -0
  403. package/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.tsx +4 -4
  404. package/src/containers/SpaceRenamePopover/index.ts +7 -0
  405. package/src/{components/SpaceSettings → containers/SpaceSettingsContainer}/SpaceSettingsContainer.stories.tsx +3 -3
  406. package/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx +202 -0
  407. package/src/containers/SpaceSettingsContainer/index.ts +7 -0
  408. package/src/{components → containers}/SyncStatus/SyncStatus.stories.tsx +2 -2
  409. package/src/{components → containers}/SyncStatus/SyncStatus.tsx +5 -7
  410. package/src/containers/SyncStatus/index.ts +7 -0
  411. package/src/{components → containers/ViewEditor}/ViewEditor.tsx +11 -10
  412. package/src/containers/ViewEditor/index.ts +7 -0
  413. package/src/containers/index.ts +28 -0
  414. package/src/helpers/query.test.ts +1 -1
  415. package/src/helpers/query.ts +20 -7
  416. package/src/hooks/useActiveSpace.ts +8 -7
  417. package/src/hooks/useInputSurfaceLookup.tsx +3 -3
  418. package/src/index.ts +2 -1
  419. package/src/meta.ts +1 -1
  420. package/src/translations.ts +30 -4
  421. package/src/types/capabilities.ts +8 -8
  422. package/src/types/events.ts +7 -6
  423. package/src/types/form.ts +1 -8
  424. package/src/types/types.ts +61 -76
  425. package/src/util.ts +82 -0
  426. package/dist/lib/browser/CollectionArticle-OQMUVFVV.mjs +0 -125
  427. package/dist/lib/browser/CollectionArticle-OQMUVFVV.mjs.map +0 -7
  428. package/dist/lib/browser/ObjectCardStack-TWHN6C2Y.mjs +0 -148
  429. package/dist/lib/browser/ObjectCardStack-TWHN6C2Y.mjs.map +0 -7
  430. package/dist/lib/browser/ObjectDetails-GEDIISKK.mjs +0 -142
  431. package/dist/lib/browser/ObjectDetails-GEDIISKK.mjs.map +0 -7
  432. package/dist/lib/browser/RecordArticle-W57QE7QV.mjs.map +0 -7
  433. package/dist/lib/browser/app-graph-builder-SJHTZXZF.mjs +0 -523
  434. package/dist/lib/browser/app-graph-builder-SJHTZXZF.mjs.map +0 -7
  435. package/dist/lib/browser/app-graph-serializer-7AT7QMSK.mjs.map +0 -7
  436. package/dist/lib/browser/chunk-4WZUGLQQ.mjs.map +0 -7
  437. package/dist/lib/browser/chunk-ASV6DYFH.mjs +0 -19
  438. package/dist/lib/browser/chunk-CCRSHECL.mjs.map +0 -7
  439. package/dist/lib/browser/chunk-SUI34XSA.mjs +0 -772
  440. package/dist/lib/browser/chunk-SUI34XSA.mjs.map +0 -7
  441. package/dist/lib/browser/chunk-TWUMNPG4.mjs +0 -1898
  442. package/dist/lib/browser/chunk-TWUMNPG4.mjs.map +0 -7
  443. package/dist/lib/browser/chunk-ZT2VPYRM.mjs.map +0 -7
  444. package/dist/lib/browser/identity-created-VCFYLSBB.mjs.map +0 -7
  445. package/dist/lib/browser/operation-resolver-SIRQT36Z.mjs.map +0 -7
  446. package/dist/lib/browser/react-root-3SPMM45V.mjs.map +0 -7
  447. package/dist/lib/browser/react-surface-UUS7NDHS.mjs.map +0 -7
  448. package/dist/lib/browser/repair-CJG26D52.mjs +0 -50
  449. package/dist/lib/browser/repair-CJG26D52.mjs.map +0 -7
  450. package/dist/lib/browser/settings-ZS2AQ73E.mjs.map +0 -7
  451. package/dist/lib/browser/spaces-ready-OQDGWUOS.mjs.map +0 -7
  452. package/dist/lib/browser/state-7YZQB2KY.mjs.map +0 -7
  453. package/dist/lib/node-esm/CollectionArticle-V5OOJVJJ.mjs.map +0 -7
  454. package/dist/lib/node-esm/ObjectCardStack-C5ZXRKP7.mjs +0 -149
  455. package/dist/lib/node-esm/ObjectCardStack-C5ZXRKP7.mjs.map +0 -7
  456. package/dist/lib/node-esm/ObjectDetails-6ZLDRKCO.mjs +0 -143
  457. package/dist/lib/node-esm/ObjectDetails-6ZLDRKCO.mjs.map +0 -7
  458. package/dist/lib/node-esm/RecordArticle-SSV74Z46.mjs.map +0 -7
  459. package/dist/lib/node-esm/app-graph-builder-HZ3XXDFZ.mjs +0 -524
  460. package/dist/lib/node-esm/app-graph-builder-HZ3XXDFZ.mjs.map +0 -7
  461. package/dist/lib/node-esm/app-graph-serializer-WJ2TIQG6.mjs.map +0 -7
  462. package/dist/lib/node-esm/chunk-2SW6S2BB.mjs.map +0 -7
  463. package/dist/lib/node-esm/chunk-7KMYUWSR.mjs +0 -773
  464. package/dist/lib/node-esm/chunk-7KMYUWSR.mjs.map +0 -7
  465. package/dist/lib/node-esm/chunk-CVXULIYC.mjs +0 -20
  466. package/dist/lib/node-esm/chunk-FYSBFBSD.mjs +0 -1899
  467. package/dist/lib/node-esm/chunk-FYSBFBSD.mjs.map +0 -7
  468. package/dist/lib/node-esm/chunk-JOBIWCBC.mjs.map +0 -7
  469. package/dist/lib/node-esm/chunk-MPL6NHQX.mjs.map +0 -7
  470. package/dist/lib/node-esm/identity-created-2SJABVJD.mjs.map +0 -7
  471. package/dist/lib/node-esm/operation-resolver-ZE3XJL5J.mjs.map +0 -7
  472. package/dist/lib/node-esm/react-root-Y6JTGDTW.mjs.map +0 -7
  473. package/dist/lib/node-esm/react-surface-SQ4SK3OK.mjs.map +0 -7
  474. package/dist/lib/node-esm/repair-G3ZW3VG3.mjs.map +0 -7
  475. package/dist/lib/node-esm/settings-PVI2VG56.mjs.map +0 -7
  476. package/dist/lib/node-esm/spaces-ready-R744OHQG.mjs.map +0 -7
  477. package/dist/lib/node-esm/state-XE5YGPHM.mjs.map +0 -7
  478. package/dist/types/src/components/AwaitingObject.d.ts.map +0 -1
  479. package/dist/types/src/components/CollectionArticle.d.ts +0 -9
  480. package/dist/types/src/components/CollectionArticle.d.ts.map +0 -1
  481. package/dist/types/src/components/CollectionSection.d.ts +0 -5
  482. package/dist/types/src/components/CollectionSection.d.ts.map +0 -1
  483. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +0 -1
  484. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts +0 -1604
  485. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +0 -1
  486. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +0 -1
  487. package/dist/types/src/components/JoinDialog/index.d.ts +0 -2
  488. package/dist/types/src/components/JoinDialog/index.d.ts.map +0 -1
  489. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts +0 -1600
  490. package/dist/types/src/components/MembersContainer/MembersContainer.stories.d.ts.map +0 -1
  491. package/dist/types/src/components/MembersContainer/index.d.ts +0 -2
  492. package/dist/types/src/components/MembersContainer/index.d.ts.map +0 -1
  493. package/dist/types/src/components/MenuFooter.d.ts.map +0 -1
  494. package/dist/types/src/components/ObjectCardStack/ObjectCardStack.d.ts.map +0 -1
  495. package/dist/types/src/components/ObjectCardStack/ObjectForm.d.ts.map +0 -1
  496. package/dist/types/src/components/ObjectDetails/ObjectDetails.d.ts.map +0 -1
  497. package/dist/types/src/components/ObjectRenamePopover/index.d.ts +0 -2
  498. package/dist/types/src/components/ObjectRenamePopover/index.d.ts.map +0 -1
  499. package/dist/types/src/components/RecordArticle.d.ts +0 -5
  500. package/dist/types/src/components/RecordArticle.d.ts.map +0 -1
  501. package/dist/types/src/components/RecordArticle.stories.d.ts +0 -1600
  502. package/dist/types/src/components/RecordArticle.stories.d.ts.map +0 -1
  503. package/dist/types/src/components/SchemaContainer.d.ts.map +0 -1
  504. package/dist/types/src/components/SpacePluginSettings.d.ts.map +0 -1
  505. package/dist/types/src/components/SpacePresence/index.d.ts +0 -2
  506. package/dist/types/src/components/SpacePresence/index.d.ts.map +0 -1
  507. package/dist/types/src/components/SpaceRenamePopover/index.d.ts +0 -2
  508. package/dist/types/src/components/SpaceRenamePopover/index.d.ts.map +0 -1
  509. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +0 -7
  510. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +0 -1
  511. package/dist/types/src/components/SpaceSettings/index.d.ts +0 -2
  512. package/dist/types/src/components/SpaceSettings/index.d.ts.map +0 -1
  513. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +0 -1
  514. package/dist/types/src/components/ViewEditor.d.ts.map +0 -1
  515. package/src/components/CollectionArticle.tsx +0 -153
  516. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +0 -91
  517. package/src/components/MembersContainer/MembersContainer.stories.tsx +0 -56
  518. package/src/components/MembersContainer/index.ts +0 -5
  519. package/src/components/ObjectCardStack/ObjectCardStack.tsx +0 -67
  520. package/src/components/ObjectDetails/ObjectDetails.tsx +0 -32
  521. package/src/components/ObjectRenamePopover/index.ts +0 -5
  522. package/src/components/RecordArticle.stories.tsx +0 -115
  523. package/src/components/SpacePluginSettings.tsx +0 -62
  524. package/src/components/SpacePresence/index.ts +0 -5
  525. package/src/components/SpaceRenamePopover/index.ts +0 -5
  526. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +0 -220
  527. package/src/components/SpaceSettings/index.ts +0 -5
  528. package/src/util.tsx +0 -779
  529. /package/dist/lib/browser/{chunk-AWVAX26X.mjs.map → chunk-SSTUPFZ2.mjs.map} +0 -0
  530. /package/dist/lib/node-esm/{chunk-HREWB23G.mjs.map → chunk-XYLDAH5C.mjs.map} +0 -0
  531. /package/dist/types/src/components/{AwaitingObject.d.ts → AwaitingObject/AwaitingObject.d.ts} +0 -0
  532. /package/dist/types/src/components/{ObjectCardStack → ObjectForm}/ObjectForm.d.ts +0 -0
  533. /package/dist/types/src/{components/CreateDialog → containers/CreateSpaceDialog}/CreateSpaceDialog.d.ts +0 -0
  534. /package/dist/types/src/{components/SyncStatus → containers/InlineSyncStatus}/InlineSyncStatus.d.ts +0 -0
  535. /package/dist/types/src/{components → containers}/JoinDialog/JoinDialog.d.ts +0 -0
  536. /package/dist/types/src/{components → containers}/MembersContainer/MembersContainer.d.ts +0 -0
  537. /package/dist/types/src/{components → containers/MenuFooter}/MenuFooter.d.ts +0 -0
  538. /package/dist/types/src/{components → containers}/ObjectCardStack/index.d.ts +0 -0
  539. /package/dist/types/src/{components → containers}/ObjectRenamePopover/ObjectRenamePopover.d.ts +0 -0
  540. /package/dist/types/src/{components → containers/SchemaContainer}/SchemaContainer.d.ts +0 -0
  541. /package/dist/types/src/{components → containers}/SpacePresence/SpacePresence.d.ts +0 -0
  542. /package/dist/types/src/{components → containers}/SpaceRenamePopover/SpaceRenamePopover.d.ts +0 -0
  543. /package/dist/types/src/{components → containers}/SyncStatus/SyncStatus.d.ts +0 -0
  544. /package/src/{components → containers}/ObjectCardStack/index.ts +0 -0
@@ -0,0 +1,63 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-63N5JJXI.mjs";
5
+
6
+ // src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx
7
+ import React, { useCallback, useRef, useState } from "react";
8
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
9
+ import { LayoutOperation } from "@dxos/app-toolkit";
10
+ import { Obj } from "@dxos/echo";
11
+ import { Button, Input, Popover, useTranslation } from "@dxos/react-ui";
12
+ import { osTranslations } from "@dxos/ui-theme";
13
+ var SPACE_RENAME_POPOVER = `${meta.id}.SpaceRenamePopover`;
14
+ var SpaceRenamePopover = ({ space }) => {
15
+ const { t } = useTranslation(meta.id);
16
+ const doneButton = useRef(null);
17
+ const [name, setName] = useState(space.properties.name ?? "");
18
+ const { invokePromise } = useOperationInvoker();
19
+ const handleDone = useCallback(() => {
20
+ Obj.change(space.properties, (p) => {
21
+ p.name = name;
22
+ });
23
+ void invokePromise(LayoutOperation.UpdatePopover, {
24
+ anchorId: "",
25
+ state: false
26
+ });
27
+ }, [
28
+ space,
29
+ name,
30
+ invokePromise
31
+ ]);
32
+ return /* @__PURE__ */ React.createElement("div", {
33
+ role: "none",
34
+ className: "p-2 flex gap-2"
35
+ }, /* @__PURE__ */ React.createElement("div", {
36
+ role: "none",
37
+ className: "flex-1"
38
+ }, /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.Label, {
39
+ srOnly: true
40
+ }, t("space name label")), /* @__PURE__ */ React.createElement(Input.TextInput, {
41
+ defaultValue: space.properties.name ?? "",
42
+ placeholder: t("unnamed space label"),
43
+ onChange: ({ target: { value } }) => setName(value),
44
+ // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
45
+ // Currently this is not possible because Radix does not expose the popover context.
46
+ onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
47
+ }))), /* @__PURE__ */ React.createElement(Popover.Close, {
48
+ asChild: true
49
+ }, /* @__PURE__ */ React.createElement(Button, {
50
+ ref: doneButton,
51
+ classNames: "self-stretch",
52
+ onClick: handleDone
53
+ }, t("done label", {
54
+ ns: osTranslations
55
+ }))));
56
+ };
57
+
58
+ // src/containers/SpaceRenamePopover/index.ts
59
+ var SpaceRenamePopover_default = SpaceRenamePopover;
60
+ export {
61
+ SpaceRenamePopover_default as default
62
+ };
63
+ //# sourceMappingURL=SpaceRenamePopover-XEMTI4PU.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/SpaceRenamePopover/SpaceRenamePopover.tsx", "../../../src/containers/SpaceRenamePopover/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useRef, useState } from 'react';\n\nimport { useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { type Space } from '@dxos/client/echo';\nimport { Obj } from '@dxos/echo';\nimport { Button, Input, Popover, useTranslation } from '@dxos/react-ui';\nimport { osTranslations } from '@dxos/ui-theme';\n\nimport { meta } from '../../meta';\n\nexport const SPACE_RENAME_POPOVER = `${meta.id}.SpaceRenamePopover`;\n\nexport const SpaceRenamePopover = ({ space }: { space: Space }) => {\n const { t } = useTranslation(meta.id);\n const doneButton = useRef<HTMLButtonElement>(null);\n const [name, setName] = useState(space.properties.name ?? '');\n const { invokePromise } = useOperationInvoker();\n\n const handleDone = useCallback(() => {\n Obj.change(space.properties, (p) => {\n p.name = name;\n });\n void invokePromise(LayoutOperation.UpdatePopover, { anchorId: '', state: false });\n }, [space, name, invokePromise]);\n\n // TODO(thure): Why does the input value need to be uncontrolled to work?\n return (\n <div role='none' className='p-2 flex gap-2'>\n <div role='none' className='flex-1'>\n <Input.Root>\n <Input.Label srOnly>{t('space name label')}</Input.Label>\n <Input.TextInput\n defaultValue={space.properties.name ?? ''}\n placeholder={t('unnamed space label')}\n onChange={({ target: { value } }) => setName(value)}\n // TODO(wittjosiah): Ideally this should access the popover context to close the popover.\n // Currently this is not possible because Radix does not expose the popover context.\n onKeyDown={({ key }) => key === 'Enter' && doneButton.current?.click()}\n />\n </Input.Root>\n </div>\n <Popover.Close asChild>\n <Button ref={doneButton} classNames='self-stretch' onClick={handleDone}>\n {t('done label', { ns: osTranslations })}\n </Button>\n </Popover.Close>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SpaceRenamePopover } from './SpaceRenamePopover';\n\nexport default SpaceRenamePopover;\n"],
5
+ "mappings": ";;;;;;AAIA,OAAOA,SAASC,aAAaC,QAAQC,gBAAgB;AAErD,SAASC,2BAA2B;AACpC,SAASC,uBAAuB;AAEhC,SAASC,WAAW;AACpB,SAASC,QAAQC,OAAOC,SAASC,sBAAsB;AACvD,SAASC,sBAAsB;AAIxB,IAAMC,uBAAuB,GAAGC,KAAKC,EAAE;AAEvC,IAAMC,qBAAqB,CAAC,EAAEC,MAAK,MAAoB;AAC5D,QAAM,EAAEC,EAAC,IAAKC,eAAeL,KAAKC,EAAE;AACpC,QAAMK,aAAaC,OAA0B,IAAA;AAC7C,QAAM,CAACC,MAAMC,OAAAA,IAAWC,SAASP,MAAMQ,WAAWH,QAAQ,EAAA;AAC1D,QAAM,EAAEI,cAAa,IAAKC,oBAAAA;AAE1B,QAAMC,aAAaC,YAAY,MAAA;AAC7BC,QAAIC,OAAOd,MAAMQ,YAAY,CAACO,MAAAA;AAC5BA,QAAEV,OAAOA;IACX,CAAA;AACA,SAAKI,cAAcO,gBAAgBC,eAAe;MAAEC,UAAU;MAAIC,OAAO;IAAM,CAAA;EACjF,GAAG;IAACnB;IAAOK;IAAMI;GAAc;AAG/B,SACE,sBAAA,cAACW,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACF,OAAAA;IAAIC,MAAK;IAAOC,WAAU;KACzB,sBAAA,cAACC,MAAMC,MAAI,MACT,sBAAA,cAACD,MAAME,OAAK;IAACC,QAAAA;KAAQzB,EAAE,kBAAA,CAAA,GACvB,sBAAA,cAACsB,MAAMI,WAAS;IACdC,cAAc5B,MAAMQ,WAAWH,QAAQ;IACvCwB,aAAa5B,EAAE,qBAAA;IACf6B,UAAU,CAAC,EAAEC,QAAQ,EAAEC,MAAK,EAAE,MAAO1B,QAAQ0B,KAAAA;;;IAG7CC,WAAW,CAAC,EAAEC,IAAG,MAAOA,QAAQ,WAAW/B,WAAWgC,SAASC,MAAAA;QAIrE,sBAAA,cAACC,QAAQC,OAAK;IAACC,SAAAA;KACb,sBAAA,cAACC,QAAAA;IAAOC,KAAKtC;IAAYuC,YAAW;IAAeC,SAAShC;KACzDV,EAAE,cAAc;IAAE2C,IAAIC;EAAe,CAAA,CAAA,CAAA,CAAA;AAKhD;;;AC/CA,IAAA,6BAAeC;",
6
+ "names": ["React", "useCallback", "useRef", "useState", "useOperationInvoker", "LayoutOperation", "Obj", "Button", "Input", "Popover", "useTranslation", "osTranslations", "SPACE_RENAME_POPOVER", "meta", "id", "SpaceRenamePopover", "space", "t", "useTranslation", "doneButton", "useRef", "name", "setName", "useState", "properties", "invokePromise", "useOperationInvoker", "handleDone", "useCallback", "Obj", "change", "p", "LayoutOperation", "UpdatePopover", "anchorId", "state", "div", "role", "className", "Input", "Root", "Label", "srOnly", "TextInput", "defaultValue", "placeholder", "onChange", "target", "value", "onKeyDown", "key", "current", "click", "Popover", "Close", "asChild", "Button", "ref", "classNames", "onClick", "ns", "osTranslations", "SpaceRenamePopover"]
7
+ }
@@ -0,0 +1,243 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ SpaceCapabilities,
4
+ SpaceForm,
5
+ SpaceOperation
6
+ } from "./chunk-EVNSLSQS.mjs";
7
+ import {
8
+ meta
9
+ } from "./chunk-63N5JJXI.mjs";
10
+
11
+ // src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx
12
+ import * as Schema from "effect/Schema";
13
+ import React, { useCallback, useMemo, useState } from "react";
14
+ import { useCapabilities, useOperationInvoker } from "@dxos/app-framework/ui";
15
+ import { LayoutOperation, getSpacePath } from "@dxos/app-toolkit";
16
+ import { Obj } from "@dxos/echo";
17
+ import { log } from "@dxos/log";
18
+ import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata";
19
+ import { useClient } from "@dxos/react-client";
20
+ import { SpaceState } from "@dxos/react-client/echo";
21
+ import { Button, Input, useFileDownload, useMulticastObservable, useTranslation } from "@dxos/react-ui";
22
+ import { Form, Settings } from "@dxos/react-ui-form";
23
+ import { HuePicker, IconPicker } from "@dxos/react-ui-pickers";
24
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-space/src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx";
25
+ var SpaceFormSchema = SpaceForm.pipe(Schema.extend(Schema.Struct({
26
+ archived: Schema.Boolean.annotations({
27
+ title: "Archive Space"
28
+ })
29
+ })));
30
+ var SpaceSettingsContainer = ({ space }) => {
31
+ const { t } = useTranslation(meta.id);
32
+ const { invokePromise } = useOperationInvoker();
33
+ const client = useClient();
34
+ const archived = useMulticastObservable(space.state) === SpaceState.SPACE_INACTIVE;
35
+ const [edgeReplication, setEdgeReplication] = useState(space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED);
36
+ const toggleEdgeReplication = useCallback(async (next) => {
37
+ setEdgeReplication(next);
38
+ await space?.internal.setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED).catch((err) => {
39
+ log.catch(err, void 0, {
40
+ F: __dxlog_file,
41
+ L: 49,
42
+ S: void 0,
43
+ C: (f, a) => f(...a)
44
+ });
45
+ setEdgeReplication(!next);
46
+ });
47
+ }, [
48
+ space
49
+ ]);
50
+ const handleValuesChanged = useCallback((newValues, meta2) => {
51
+ const changed = meta2.changed ?? {};
52
+ if (changed["edgeReplication"]) {
53
+ void toggleEdgeReplication(newValues.edgeReplication ?? false);
54
+ }
55
+ if (changed["name"] || changed["icon"] || changed["hue"]) {
56
+ Obj.change(space.properties, (p) => {
57
+ if (changed["name"] && newValues.name !== void 0) {
58
+ p.name = newValues.name;
59
+ }
60
+ if (changed["icon"]) {
61
+ p.icon = newValues.icon;
62
+ }
63
+ if (changed["hue"]) {
64
+ p.hue = newValues.hue;
65
+ }
66
+ });
67
+ }
68
+ if (changed["archived"]) {
69
+ if (newValues.archived && !archived) {
70
+ void invokePromise(SpaceOperation.Close, {
71
+ space
72
+ });
73
+ void invokePromise(LayoutOperation.SwitchWorkspace, {
74
+ subject: getSpacePath(client.spaces.default.id)
75
+ });
76
+ } else if (!newValues.archived && archived) {
77
+ void invokePromise(SpaceOperation.Open, {
78
+ space
79
+ });
80
+ }
81
+ }
82
+ }, [
83
+ space,
84
+ client,
85
+ archived,
86
+ invokePromise,
87
+ toggleEdgeReplication
88
+ ]);
89
+ const values = useMemo(() => ({
90
+ name: space.properties.name,
91
+ icon: space.properties.icon,
92
+ hue: space.properties.hue,
93
+ edgeReplication,
94
+ archived
95
+ }), [
96
+ space.properties.name,
97
+ space.properties.icon,
98
+ space.properties.hue,
99
+ edgeReplication,
100
+ archived
101
+ ]);
102
+ const fieldMap = useMemo(() => ({
103
+ name: ({ type, label, getValue, onValueChange }) => {
104
+ const handleChange = useCallback(({ target: { value } }) => onValueChange(type, value), [
105
+ onValueChange,
106
+ type
107
+ ]);
108
+ return /* @__PURE__ */ React.createElement(Settings.ItemInput, {
109
+ title: label,
110
+ description: t("display name description")
111
+ }, /* @__PURE__ */ React.createElement(Input.TextInput, {
112
+ value: getValue(),
113
+ onChange: handleChange,
114
+ placeholder: t("display name input placeholder"),
115
+ classNames: "min-w-64"
116
+ }));
117
+ },
118
+ icon: ({ type, label, getValue, onValueChange }) => {
119
+ const handleChange = useCallback((icon) => onValueChange(type, icon), [
120
+ onValueChange,
121
+ type
122
+ ]);
123
+ const handleReset = useCallback(() => onValueChange(type, void 0), [
124
+ onValueChange,
125
+ type
126
+ ]);
127
+ return /* @__PURE__ */ React.createElement(Settings.Item, {
128
+ title: label,
129
+ description: t("icon description")
130
+ }, /* @__PURE__ */ React.createElement(IconPicker, {
131
+ value: getValue(),
132
+ onChange: handleChange,
133
+ onReset: handleReset,
134
+ classNames: "justify-self-end"
135
+ }));
136
+ },
137
+ hue: ({ type, label, getValue, onValueChange }) => {
138
+ const handleChange = useCallback((nextHue) => onValueChange(type, nextHue), [
139
+ onValueChange,
140
+ type
141
+ ]);
142
+ const handleReset = useCallback(() => onValueChange(type, void 0), [
143
+ onValueChange,
144
+ type
145
+ ]);
146
+ return /* @__PURE__ */ React.createElement(Settings.Item, {
147
+ title: label,
148
+ description: t("hue description")
149
+ }, /* @__PURE__ */ React.createElement(HuePicker, {
150
+ value: getValue(),
151
+ onChange: handleChange,
152
+ onReset: handleReset,
153
+ classNames: "justify-self-end"
154
+ }));
155
+ },
156
+ edgeReplication: ({ type, label, getValue, onValueChange }) => {
157
+ const handleChange = useCallback((checked) => onValueChange(type, checked), [
158
+ onValueChange,
159
+ type
160
+ ]);
161
+ return /* @__PURE__ */ React.createElement(Settings.ItemInput, {
162
+ title: label,
163
+ description: t("edge replication description")
164
+ }, /* @__PURE__ */ React.createElement(Input.Switch, {
165
+ checked: getValue(),
166
+ onCheckedChange: handleChange,
167
+ classNames: "justify-self-end"
168
+ }));
169
+ },
170
+ archived: ({ type, label, getValue, onValueChange }) => {
171
+ const handleChange = useCallback(() => onValueChange(type, !getValue()), [
172
+ onValueChange,
173
+ type,
174
+ getValue
175
+ ]);
176
+ return /* @__PURE__ */ React.createElement(Settings.ItemInput, {
177
+ title: label,
178
+ description: t("archive space description")
179
+ }, /* @__PURE__ */ React.createElement(Button, {
180
+ disabled: space === client.spaces.default,
181
+ variant: getValue() ? "default" : "destructive",
182
+ onClick: handleChange
183
+ }, getValue() ? t("unarchive space label") : t("archive space label")));
184
+ }
185
+ }), [
186
+ t,
187
+ space,
188
+ client
189
+ ]);
190
+ const download = useFileDownload();
191
+ const handleBackup = useCallback(async () => {
192
+ const archive = await space.internal.export();
193
+ download(new Blob([
194
+ archive.contents
195
+ ]), archive.filename);
196
+ }, [
197
+ space,
198
+ download
199
+ ]);
200
+ const repairs = useCapabilities(SpaceCapabilities.Repair);
201
+ const handleRepair = useCallback(async () => {
202
+ await Promise.all(repairs.map((repair) => repair({
203
+ space,
204
+ isDefault: client.spaces.default === space
205
+ })));
206
+ }, [
207
+ client,
208
+ space,
209
+ repairs
210
+ ]);
211
+ return /* @__PURE__ */ React.createElement(Settings.Root, null, /* @__PURE__ */ React.createElement(Settings.Section, {
212
+ title: t("space properties settings verbose label"),
213
+ description: t("space properties settings description", {
214
+ ns: meta.id
215
+ })
216
+ }, /* @__PURE__ */ React.createElement(Form.Root, {
217
+ fieldMap,
218
+ schema: SpaceFormSchema,
219
+ values,
220
+ onValuesChanged: handleValuesChanged
221
+ }, /* @__PURE__ */ React.createElement(Form.FieldSet, null))), /* @__PURE__ */ React.createElement(Settings.Section, {
222
+ title: t("space controls title"),
223
+ description: t("space controls description")
224
+ }, /* @__PURE__ */ React.createElement(Settings.ItemInput, {
225
+ title: t("backup space title"),
226
+ description: t("backup space description")
227
+ }, /* @__PURE__ */ React.createElement(Button, {
228
+ onClick: handleBackup
229
+ }, t("download backup label"))), /* @__PURE__ */ React.createElement(Settings.ItemInput, {
230
+ title: t("repair space title"),
231
+ description: t("repair space description")
232
+ }, /* @__PURE__ */ React.createElement(Button, {
233
+ onClick: handleRepair
234
+ }, t("repair space label")))));
235
+ };
236
+ SpaceSettingsContainer.displayName = "SpaceSettingsContainer";
237
+
238
+ // src/containers/SpaceSettingsContainer/index.ts
239
+ var SpaceSettingsContainer_default = SpaceSettingsContainer;
240
+ export {
241
+ SpaceSettingsContainer_default as default
242
+ };
243
+ //# sourceMappingURL=SpaceSettingsContainer-WI4D7RWA.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/SpaceSettingsContainer/SpaceSettingsContainer.tsx", "../../../src/containers/SpaceSettingsContainer/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\nimport React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';\n\nimport { useCapabilities, useOperationInvoker } from '@dxos/app-framework/ui';\nimport { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';\nimport { Obj } from '@dxos/echo';\nimport { log } from '@dxos/log';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { useClient } from '@dxos/react-client';\nimport { type Space, SpaceState } from '@dxos/react-client/echo';\nimport { Button, Input, useFileDownload, useMulticastObservable, useTranslation } from '@dxos/react-ui';\nimport { Form, type FormFieldMap, Settings } from '@dxos/react-ui-form';\nimport { HuePicker, IconPicker } from '@dxos/react-ui-pickers';\n\nimport { meta } from '../../meta';\nimport { SpaceCapabilities, SpaceForm, SpaceOperation } from '../../types';\n\nconst SpaceFormSchema = SpaceForm.pipe(\n Schema.extend(\n Schema.Struct({\n archived: Schema.Boolean.annotations({ title: 'Archive Space' }),\n }),\n ),\n);\n\nexport type SpaceSettingsContainerProps = {\n space: Space;\n};\n\n// TODO(wittjosiah): Handle space migrations here?\nexport const SpaceSettingsContainer = ({ space }: SpaceSettingsContainerProps) => {\n const { t } = useTranslation(meta.id);\n const { invokePromise } = useOperationInvoker();\n const client = useClient();\n const archived = useMulticastObservable(space.state) === SpaceState.SPACE_INACTIVE;\n const [edgeReplication, setEdgeReplication] = useState(\n space.internal.data.edgeReplication === EdgeReplicationSetting.ENABLED,\n );\n const toggleEdgeReplication = useCallback(\n async (next: boolean) => {\n setEdgeReplication(next);\n await space?.internal\n .setEdgeReplicationPreference(next ? EdgeReplicationSetting.ENABLED : EdgeReplicationSetting.DISABLED)\n .catch((err: unknown) => {\n log.catch(err);\n setEdgeReplication(!next);\n });\n },\n [space],\n );\n\n const handleValuesChanged = useCallback(\n (newValues: Partial<Schema.Schema.Type<typeof SpaceFormSchema>>, meta: { changed?: Record<string, boolean> }) => {\n const changed = meta.changed ?? {};\n if (changed['edgeReplication']) {\n void toggleEdgeReplication(newValues.edgeReplication ?? false);\n }\n\n if (changed['name'] || changed['icon'] || changed['hue']) {\n Obj.change(space.properties, (p) => {\n if (changed['name'] && newValues.name !== undefined) {\n p.name = newValues.name;\n }\n if (changed['icon']) {\n p.icon = newValues.icon;\n }\n if (changed['hue']) {\n p.hue = newValues.hue;\n }\n });\n }\n\n if (changed['archived']) {\n if (newValues.archived && !archived) {\n void invokePromise(SpaceOperation.Close, { space });\n void invokePromise(LayoutOperation.SwitchWorkspace, {\n subject: getSpacePath(client.spaces.default.id),\n });\n } else if (!newValues.archived && archived) {\n void invokePromise(SpaceOperation.Open, { space });\n }\n }\n },\n [space, client, archived, invokePromise, toggleEdgeReplication],\n );\n\n const values = useMemo(\n () => ({\n name: space.properties.name,\n icon: space.properties.icon,\n hue: space.properties.hue,\n edgeReplication,\n archived,\n }),\n [space.properties.name, space.properties.icon, space.properties.hue, edgeReplication, archived],\n );\n\n const fieldMap = useMemo<FormFieldMap>(\n () => ({\n name: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(\n ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onValueChange(type, value),\n [onValueChange, type],\n );\n return (\n <Settings.ItemInput title={label} description={t('display name description')}>\n <Input.TextInput\n value={getValue()}\n onChange={handleChange}\n placeholder={t('display name input placeholder')}\n classNames='min-w-64'\n />\n </Settings.ItemInput>\n );\n },\n icon: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((icon: string) => onValueChange(type, icon), [onValueChange, type]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);\n return (\n <Settings.Item title={label} description={t('icon description')}>\n <IconPicker\n value={getValue()}\n onChange={handleChange}\n onReset={handleReset}\n classNames='justify-self-end'\n />\n </Settings.Item>\n );\n },\n hue: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange, type]);\n const handleReset = useCallback(() => onValueChange(type, undefined), [onValueChange, type]);\n return (\n <Settings.Item title={label} description={t('hue description')}>\n <HuePicker value={getValue()} onChange={handleChange} onReset={handleReset} classNames='justify-self-end' />\n </Settings.Item>\n );\n },\n edgeReplication: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((checked: boolean) => onValueChange(type, checked), [onValueChange, type]);\n return (\n <Settings.ItemInput title={label} description={t('edge replication description')}>\n <Input.Switch checked={getValue()} onCheckedChange={handleChange} classNames='justify-self-end' />\n </Settings.ItemInput>\n );\n },\n archived: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(() => onValueChange(type, !getValue()), [onValueChange, type, getValue]);\n return (\n <Settings.ItemInput title={label} description={t('archive space description')}>\n <Button\n disabled={space === client.spaces.default}\n variant={getValue() ? 'default' : 'destructive'}\n onClick={handleChange}\n >\n {getValue() ? t('unarchive space label') : t('archive space label')}\n </Button>\n </Settings.ItemInput>\n );\n },\n }),\n [t, space, client],\n );\n\n const download = useFileDownload();\n const handleBackup = useCallback(async () => {\n const archive = await space.internal.export();\n download(new Blob([archive.contents as Uint8Array<ArrayBuffer>]), archive.filename);\n }, [space, download]);\n\n const repairs = useCapabilities(SpaceCapabilities.Repair);\n const handleRepair = useCallback(async () => {\n await Promise.all(repairs.map((repair) => repair({ space, isDefault: client.spaces.default === space })));\n }, [client, space, repairs]);\n\n return (\n <Settings.Root>\n <Settings.Section\n title={t('space properties settings verbose label')}\n description={t('space properties settings description', { ns: meta.id })}\n >\n <Form.Root fieldMap={fieldMap} schema={SpaceFormSchema} values={values} onValuesChanged={handleValuesChanged}>\n <Form.FieldSet />\n </Form.Root>\n </Settings.Section>\n <Settings.Section title={t('space controls title')} description={t('space controls description')}>\n <Settings.ItemInput title={t('backup space title')} description={t('backup space description')}>\n <Button onClick={handleBackup}>{t('download backup label')}</Button>\n </Settings.ItemInput>\n <Settings.ItemInput title={t('repair space title')} description={t('repair space description')}>\n <Button onClick={handleRepair}>{t('repair space label')}</Button>\n </Settings.ItemInput>\n </Settings.Section>\n </Settings.Root>\n );\n};\n\nSpaceSettingsContainer.displayName = 'SpaceSettingsContainer';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SpaceSettingsContainer } from './SpaceSettingsContainer';\n\nexport default SpaceSettingsContainer;\n"],
5
+ "mappings": "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",
6
+ "names": ["Schema", "React", "useCallback", "useMemo", "useState", "useCapabilities", "useOperationInvoker", "LayoutOperation", "getSpacePath", "Obj", "log", "EdgeReplicationSetting", "useClient", "SpaceState", "Button", "Input", "useFileDownload", "useMulticastObservable", "useTranslation", "Form", "Settings", "HuePicker", "IconPicker", "SpaceFormSchema", "SpaceForm", "pipe", "extend", "Struct", "archived", "Boolean", "annotations", "title", "SpaceSettingsContainer", "space", "t", "useTranslation", "meta", "id", "invokePromise", "useOperationInvoker", "client", "useClient", "useMulticastObservable", "state", "SpaceState", "SPACE_INACTIVE", "edgeReplication", "setEdgeReplication", "useState", "internal", "data", "EdgeReplicationSetting", "ENABLED", "toggleEdgeReplication", "useCallback", "next", "setEdgeReplicationPreference", "DISABLED", "catch", "err", "log", "handleValuesChanged", "newValues", "changed", "Obj", "change", "properties", "p", "name", "undefined", "icon", "hue", "SpaceOperation", "Close", "LayoutOperation", "SwitchWorkspace", "subject", "getSpacePath", "spaces", "default", "Open", "values", "useMemo", "fieldMap", "type", "label", "getValue", "onValueChange", "handleChange", "target", "value", "Settings", "ItemInput", "description", "Input", "TextInput", "onChange", "placeholder", "classNames", "handleReset", "Item", "IconPicker", "onReset", "nextHue", "HuePicker", "checked", "Switch", "onCheckedChange", "Button", "disabled", "variant", "onClick", "download", "useFileDownload", "handleBackup", "archive", "export", "Blob", "contents", "filename", "repairs", "useCapabilities", "SpaceCapabilities", "Repair", "handleRepair", "Promise", "all", "map", "repair", "isDefault", "Root", "Section", "ns", "Form", "schema", "onValuesChanged", "FieldSet", "displayName", "SpaceSettingsContainer"]
7
+ }
@@ -0,0 +1,142 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ createClientSaveTracker,
4
+ getIcon,
5
+ getStatus
6
+ } from "./chunk-S5BQUCL4.mjs";
7
+ import "./chunk-2OLR2ZKH.mjs";
8
+ import "./chunk-GEGWQVZX.mjs";
9
+ import "./chunk-EVNSLSQS.mjs";
10
+ import {
11
+ meta
12
+ } from "./chunk-63N5JJXI.mjs";
13
+
14
+ // src/containers/SyncStatus/SyncStatus.tsx
15
+ import React, { useEffect, useState } from "react";
16
+ import { StatusBar } from "@dxos/plugin-status-bar";
17
+ import { EdgeStatus } from "@dxos/protocols/proto/dxos/client/services";
18
+ import { useClient } from "@dxos/react-client";
19
+ import { useStream } from "@dxos/react-client/devtools";
20
+ import { getSyncSummary, useSyncState } from "@dxos/react-client/echo";
21
+ import { Icon, Popover, useTranslation } from "@dxos/react-ui";
22
+ import { mx } from "@dxos/ui-theme";
23
+ import { Unit } from "@dxos/util";
24
+ var SYNC_STALLED_TIMEOUT = 5e3;
25
+ var SyncStatus = () => {
26
+ const client = useClient();
27
+ const state = useSyncState();
28
+ const [saved, setSaved] = useState(true);
29
+ useEffect(() => createClientSaveTracker(client, (state2) => setSaved(state2 === "saved")), []);
30
+ return /* @__PURE__ */ React.createElement(SyncStatusIndicator, {
31
+ state,
32
+ saved
33
+ });
34
+ };
35
+ var SyncStatusIndicator = ({ state, saved }) => {
36
+ const { t } = useTranslation(meta.id);
37
+ const summary = getSyncSummary(state);
38
+ const offline = Object.values(state).length === 0;
39
+ const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
40
+ const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;
41
+ const status = getStatus({
42
+ offline,
43
+ saved,
44
+ needsToUpload,
45
+ needsToDownload
46
+ });
47
+ const [classNames, setClassNames] = useState();
48
+ useEffect(() => {
49
+ setClassNames(void 0);
50
+ if (offline || !needsToUpload && !needsToDownload) {
51
+ return;
52
+ }
53
+ const t2 = setTimeout(() => {
54
+ setClassNames("text-orange-500");
55
+ }, SYNC_STALLED_TIMEOUT);
56
+ return () => clearTimeout(t2);
57
+ }, [
58
+ offline,
59
+ needsToUpload,
60
+ needsToDownload
61
+ ]);
62
+ const title = t(`${status} label`);
63
+ const icon = /* @__PURE__ */ React.createElement(Icon, {
64
+ icon: getIcon(status),
65
+ classNames
66
+ });
67
+ return /* @__PURE__ */ React.createElement(Popover.Root, null, /* @__PURE__ */ React.createElement(Popover.Trigger, {
68
+ asChild: true
69
+ }, /* @__PURE__ */ React.createElement(StatusBar.Item, {
70
+ title
71
+ }, icon)), /* @__PURE__ */ React.createElement(Popover.Portal, null, /* @__PURE__ */ React.createElement(Popover.Content, null, /* @__PURE__ */ React.createElement(EdgeConnectionPopover, null), /* @__PURE__ */ React.createElement(Popover.Arrow, null))));
72
+ };
73
+ var useEdgeStatus = () => {
74
+ const client = useClient();
75
+ const { status } = useStream(() => client.services.services.EdgeAgentService.queryEdgeStatus(), {});
76
+ return status;
77
+ };
78
+ var EdgeConnectionPopover = () => {
79
+ const status = useEdgeStatus();
80
+ const { t } = useTranslation(meta.id);
81
+ const isConnected = status?.state === EdgeStatus.ConnectionState.CONNECTED;
82
+ return /* @__PURE__ */ React.createElement("div", {
83
+ className: "min-w-[240px] p-2"
84
+ }, /* @__PURE__ */ React.createElement("div", {
85
+ className: "flex items-center gap-2 mb-2"
86
+ }, /* @__PURE__ */ React.createElement(Icon, {
87
+ icon: isConnected ? "ph--check-circle--regular" : "ph--warning-circle--regular",
88
+ classNames: mx(isConnected ? "text-success-text" : "text-error-text animate-pulse")
89
+ }), /* @__PURE__ */ React.createElement("span", {
90
+ className: "font-medium text-sm"
91
+ }, isConnected ? t("sync edge connected label") : t("sync edge disconnected label"))), status?.state === EdgeStatus.ConnectionState.NOT_CONNECTED && /* @__PURE__ */ React.createElement("div", {
92
+ className: "flex items-center gap-2 text-sm text-description"
93
+ }, /* @__PURE__ */ React.createElement(Icon, {
94
+ icon: "ph--cloud-x--regular"
95
+ }), /* @__PURE__ */ React.createElement("span", null, t("sync no connection label"))), status?.state === EdgeStatus.ConnectionState.CONNECTED && /* @__PURE__ */ React.createElement("div", {
96
+ className: "space-y-2"
97
+ }, /* @__PURE__ */ React.createElement("div", {
98
+ className: "flex items-center justify-between text-sm"
99
+ }, /* @__PURE__ */ React.createElement("div", {
100
+ className: "flex items-center gap-2 text-description"
101
+ }, /* @__PURE__ */ React.createElement(Icon, {
102
+ icon: "ph--timer--regular"
103
+ }), /* @__PURE__ */ React.createElement("span", null, t("sync latency label"))), /* @__PURE__ */ React.createElement(UnitValue, {
104
+ value: status.rtt,
105
+ format: Unit.Millisecond
106
+ })), /* @__PURE__ */ React.createElement("div", {
107
+ className: "flex items-center justify-between text-sm"
108
+ }, /* @__PURE__ */ React.createElement("div", {
109
+ className: "flex items-center gap-2 text-description"
110
+ }, /* @__PURE__ */ React.createElement(Icon, {
111
+ icon: "ph--arrow-up--regular"
112
+ }), /* @__PURE__ */ React.createElement("span", null, t("sync upload label"))), /* @__PURE__ */ React.createElement(UnitValue, {
113
+ value: status.rateBytesUp,
114
+ format: Unit.Kilobyte,
115
+ suffix: "/s"
116
+ })), /* @__PURE__ */ React.createElement("div", {
117
+ className: "flex items-center justify-between text-sm"
118
+ }, /* @__PURE__ */ React.createElement("div", {
119
+ className: "flex items-center gap-2 text-sm text-description"
120
+ }, /* @__PURE__ */ React.createElement(Icon, {
121
+ icon: "ph--arrow-down--regular"
122
+ }), /* @__PURE__ */ React.createElement("span", null, t("sync download label"))), /* @__PURE__ */ React.createElement(UnitValue, {
123
+ value: status.rateBytesDown,
124
+ format: Unit.Kilobyte,
125
+ suffix: "/s"
126
+ }))));
127
+ };
128
+ var UnitValue = ({ value: input, format, suffix }) => {
129
+ const { formattedValue, unit } = format(input);
130
+ return /* @__PURE__ */ React.createElement("span", {
131
+ className: "font-mono"
132
+ }, formattedValue, /* @__PURE__ */ React.createElement("span", {
133
+ className: "ms-1 text-subdued"
134
+ }, unit.symbol, suffix));
135
+ };
136
+
137
+ // src/containers/SyncStatus/index.ts
138
+ var SyncStatus_default = SyncStatus;
139
+ export {
140
+ SyncStatus_default as default
141
+ };
142
+ //# sourceMappingURL=SyncStatus-YEBGTNSD.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/SyncStatus/SyncStatus.tsx", "../../../src/containers/SyncStatus/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { StatusBar } from '@dxos/plugin-status-bar';\nimport { EdgeStatus } from '@dxos/protocols/proto/dxos/client/services';\nimport { type QueryEdgeStatusResponse } from '@dxos/protocols/proto/dxos/client/services';\nimport { useClient } from '@dxos/react-client';\nimport { useStream } from '@dxos/react-client/devtools';\nimport { type SpaceSyncStateMap, getSyncSummary, useSyncState } from '@dxos/react-client/echo';\nimport { Icon, Popover, useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/ui-theme';\nimport { Unit, type UnitFormat } from '@dxos/util';\n\nimport { createClientSaveTracker, getIcon, getStatus } from '../../components';\nimport { meta } from '../../meta';\n\nconst SYNC_STALLED_TIMEOUT = 5_000;\n\nexport const SyncStatus = () => {\n const client = useClient();\n const state = useSyncState();\n const [saved, setSaved] = useState(true);\n useEffect(() => createClientSaveTracker(client, (state) => setSaved(state === 'saved')), []);\n\n return <SyncStatusIndicator state={state} saved={saved} />;\n};\n\nexport const SyncStatusIndicator = ({ state, saved }: { state: SpaceSyncStateMap; saved: boolean }) => {\n const { t } = useTranslation(meta.id);\n const summary = getSyncSummary(state);\n const offline = Object.values(state).length === 0;\n const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;\n const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;\n const status = getStatus({ offline, saved, needsToUpload, needsToDownload });\n\n const [classNames, setClassNames] = useState<string>();\n useEffect(() => {\n setClassNames(undefined);\n if (offline || (!needsToUpload && !needsToDownload)) {\n return;\n }\n\n const t = setTimeout(() => {\n // TODO(wittjosiah): Use semantic color tokens.\n setClassNames('text-orange-500');\n }, SYNC_STALLED_TIMEOUT);\n return () => clearTimeout(t);\n }, [offline, needsToUpload, needsToDownload]);\n\n const title = t(`${status} label`);\n const icon = <Icon icon={getIcon(status)} classNames={classNames} />;\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <StatusBar.Item title={title}>{icon}</StatusBar.Item>\n </Popover.Trigger>\n <Popover.Portal>\n <Popover.Content>\n <EdgeConnectionPopover />\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n\nconst useEdgeStatus = (): EdgeStatus | undefined => {\n const client = useClient();\n const { status } = useStream(\n () => client.services.services.EdgeAgentService!.queryEdgeStatus(),\n {} as QueryEdgeStatusResponse,\n );\n return status;\n};\n\nconst EdgeConnectionPopover = () => {\n const status = useEdgeStatus();\n const { t } = useTranslation(meta.id);\n\n const isConnected = status?.state === EdgeStatus.ConnectionState.CONNECTED;\n\n return (\n <div className='min-w-[240px] p-2'>\n {/* Connection Status Header */}\n <div className='flex items-center gap-2 mb-2'>\n <Icon\n icon={isConnected ? 'ph--check-circle--regular' : 'ph--warning-circle--regular'}\n classNames={mx(isConnected ? 'text-success-text' : 'text-error-text animate-pulse')}\n />\n <span className='font-medium text-sm'>\n {isConnected ? t('sync edge connected label') : t('sync edge disconnected label')}\n </span>\n </div>\n\n {/* Connection Details */}\n {status?.state === EdgeStatus.ConnectionState.NOT_CONNECTED && (\n <div className='flex items-center gap-2 text-sm text-description'>\n <Icon icon='ph--cloud-x--regular' />\n <span>{t('sync no connection label')}</span>\n </div>\n )}\n\n {status?.state === EdgeStatus.ConnectionState.CONNECTED && (\n <div className='space-y-2'>\n {/* Latency */}\n <div className='flex items-center justify-between text-sm'>\n <div className='flex items-center gap-2 text-description'>\n <Icon icon='ph--timer--regular' />\n <span>{t('sync latency label')}</span>\n </div>\n <UnitValue value={status.rtt} format={Unit.Millisecond} />\n </div>\n\n {/* Upload Speed */}\n <div className='flex items-center justify-between text-sm'>\n <div className='flex items-center gap-2 text-description'>\n <Icon icon='ph--arrow-up--regular' />\n <span>{t('sync upload label')}</span>\n </div>\n <UnitValue value={status.rateBytesUp} format={Unit.Kilobyte} suffix='/s' />\n </div>\n\n {/* Download Speed */}\n <div className='flex items-center justify-between text-sm'>\n <div className='flex items-center gap-2 text-sm text-description'>\n <Icon icon='ph--arrow-down--regular' />\n <span>{t('sync download label')}</span>\n </div>\n <UnitValue value={status.rateBytesDown} format={Unit.Kilobyte} suffix='/s' />\n </div>\n </div>\n )}\n </div>\n );\n};\n\n// TODO(burdon): Factor out.\nconst UnitValue = ({ value: input, format, suffix }: { value: number; format: UnitFormat; suffix?: string }) => {\n const { formattedValue, unit } = format(input);\n return (\n <span className='font-mono'>\n {formattedValue}\n <span className='ms-1 text-subdued'>\n {unit.symbol}\n {suffix}\n </span>\n </span>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { SyncStatus } from './SyncStatus';\n\nexport default SyncStatus;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useEffect", "useState", "StatusBar", "EdgeStatus", "useClient", "useStream", "getSyncSummary", "useSyncState", "Icon", "Popover", "useTranslation", "mx", "Unit", "SYNC_STALLED_TIMEOUT", "SyncStatus", "client", "useClient", "state", "useSyncState", "saved", "setSaved", "useState", "useEffect", "createClientSaveTracker", "SyncStatusIndicator", "t", "useTranslation", "meta", "id", "summary", "getSyncSummary", "offline", "Object", "values", "length", "needsToUpload", "differentDocuments", "missingOnRemote", "needsToDownload", "missingOnLocal", "status", "getStatus", "classNames", "setClassNames", "undefined", "setTimeout", "clearTimeout", "title", "icon", "Icon", "getIcon", "Popover", "Root", "Trigger", "asChild", "StatusBar", "Item", "Portal", "Content", "EdgeConnectionPopover", "Arrow", "useEdgeStatus", "useStream", "services", "EdgeAgentService", "queryEdgeStatus", "isConnected", "EdgeStatus", "ConnectionState", "CONNECTED", "div", "className", "mx", "span", "NOT_CONNECTED", "UnitValue", "value", "rtt", "format", "Unit", "Millisecond", "rateBytesUp", "Kilobyte", "suffix", "rateBytesDown", "input", "formattedValue", "unit", "symbol", "SyncStatus"]
7
+ }
@@ -0,0 +1,114 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ resolveSchemaWithRegistry
4
+ } from "./chunk-IV7VKVGC.mjs";
5
+ import {
6
+ useTypeOptions
7
+ } from "./chunk-2OLR2ZKH.mjs";
8
+ import {
9
+ SpaceOperation
10
+ } from "./chunk-EVNSLSQS.mjs";
11
+ import "./chunk-63N5JJXI.mjs";
12
+
13
+ // src/containers/ViewEditor/ViewEditor.tsx
14
+ import * as Schema from "effect/Schema";
15
+ import React, { useCallback, useState } from "react";
16
+ import { useOperationInvoker } from "@dxos/app-framework/ui";
17
+ import { DXN, Filter, JsonSchema, Obj, Query, Tag, Type } from "@dxos/echo";
18
+ import { useClient } from "@dxos/react-client";
19
+ import { getSpace, useQuery } from "@dxos/react-client/echo";
20
+ import { useAsyncEffect } from "@dxos/react-ui";
21
+ import { ViewEditor as NaturalViewEditor } from "@dxos/react-ui-form";
22
+ import { ViewModel } from "@dxos/schema";
23
+ var ViewEditor = ({ view }) => {
24
+ const { invokePromise } = useOperationInvoker();
25
+ const client = useClient();
26
+ const space = getSpace(view);
27
+ const [schema, setSchema] = useState(() => Schema.Struct({}));
28
+ const tags = useQuery(space?.db, Filter.type(Tag.Tag));
29
+ const types = useTypeOptions({
30
+ space,
31
+ annotation: {
32
+ location: [
33
+ "database",
34
+ "runtime"
35
+ ],
36
+ kind: [
37
+ "user"
38
+ ]
39
+ }
40
+ });
41
+ useAsyncEffect(async () => {
42
+ if (!view?.query || !space) {
43
+ return;
44
+ }
45
+ const foundSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, view.query.ast);
46
+ if (foundSchema && foundSchema !== schema) {
47
+ setSchema(() => foundSchema);
48
+ }
49
+ }, [
50
+ client,
51
+ space,
52
+ view,
53
+ schema
54
+ ]);
55
+ const handleQueryChanged = useCallback(async (newQuery, target) => {
56
+ if (!view || !space) {
57
+ return;
58
+ }
59
+ const queue = target && DXN.tryParse(target) ? target : void 0;
60
+ const query = queue ? Query.fromAst(newQuery).from({
61
+ queues: [
62
+ queue
63
+ ]
64
+ }) : Query.fromAst(newQuery);
65
+ Obj.change(view, (v) => {
66
+ v.query.ast = query.ast;
67
+ });
68
+ const newSchema = await resolveSchemaWithRegistry(space.db.schemaRegistry, query.ast);
69
+ if (!newSchema) {
70
+ return;
71
+ }
72
+ const newView = ViewModel.make({
73
+ query,
74
+ jsonSchema: JsonSchema.toJsonSchema(newSchema)
75
+ });
76
+ Obj.change(view, (v) => {
77
+ v.projection = Obj.getSnapshot(newView).projection;
78
+ });
79
+ setSchema(() => newSchema);
80
+ }, [
81
+ view,
82
+ schema
83
+ ]);
84
+ const handleDelete = useCallback((fieldId) => {
85
+ void invokePromise(SpaceOperation.DeleteField, {
86
+ view,
87
+ fieldId
88
+ });
89
+ }, [
90
+ invokePromise,
91
+ view
92
+ ]);
93
+ if (!space || !schema) {
94
+ return null;
95
+ }
96
+ return /* @__PURE__ */ React.createElement(NaturalViewEditor, {
97
+ registry: space.db.schemaRegistry,
98
+ schema,
99
+ view,
100
+ mode: "tag",
101
+ db: space.db,
102
+ tags,
103
+ types,
104
+ onQueryChanged: handleQueryChanged,
105
+ onDelete: Type.isMutable(schema) ? handleDelete : void 0
106
+ });
107
+ };
108
+
109
+ // src/containers/ViewEditor/index.ts
110
+ var ViewEditor_default = ViewEditor;
111
+ export {
112
+ ViewEditor_default as default
113
+ };
114
+ //# sourceMappingURL=ViewEditor-CUQVNM2H.mjs.map