@dxos/plugin-space 0.8.2-main.fbd8ed0 → 0.8.2-staging.7ac8446

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 (326) hide show
  1. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs +315 -0
  2. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-VRU57AEZ.mjs → app-graph-serializer-DSF2U3A5.mjs} +10 -10
  4. package/dist/lib/browser/app-graph-serializer-DSF2U3A5.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-UBSVH2NQ.mjs → chunk-5BDV575R.mjs} +10 -21
  6. package/dist/lib/browser/chunk-5BDV575R.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-AYW4IDRT.mjs +275 -0
  8. package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-43UQWMD3.mjs → chunk-JZXWPMLA.mjs} +740 -390
  10. package/dist/lib/browser/chunk-JZXWPMLA.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-IQFFOAWD.mjs → chunk-LO5UL6RU.mjs} +173 -78
  12. package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
  13. package/dist/lib/browser/{identity-created-ANRJHNMQ.mjs → identity-created-JR7BNXFH.mjs} +5 -5
  14. package/dist/lib/browser/identity-created-JR7BNXFH.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +47 -30
  16. package/dist/lib/browser/index.mjs.map +3 -3
  17. package/dist/lib/browser/{intent-resolver-KRINV5QI.mjs → intent-resolver-RKYILWWQ.mjs} +106 -98
  18. package/dist/lib/browser/intent-resolver-RKYILWWQ.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-root-J3SP2HVW.mjs → react-root-6H7NX2M2.mjs} +4 -5
  21. package/dist/lib/{node-esm/react-root-S2LW4FS7.mjs.map → browser/react-root-6H7NX2M2.mjs.map} +1 -1
  22. package/dist/lib/browser/{react-surface-J7T2IMH4.mjs → react-surface-7AGLOVMK.mjs} +53 -120
  23. package/dist/lib/browser/react-surface-7AGLOVMK.mjs.map +7 -0
  24. package/dist/lib/browser/schema-FHTA26SW.mjs +24 -0
  25. package/dist/lib/browser/schema-FHTA26SW.mjs.map +7 -0
  26. package/dist/lib/browser/{schema-tools-MYC4LTQD.mjs → schema-tools-YAXPRIXP.mjs} +22 -22
  27. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
  28. package/dist/lib/browser/{settings-G24447B7.mjs → settings-PJPTJUPE.mjs} +4 -4
  29. package/dist/lib/browser/settings-PJPTJUPE.mjs.map +7 -0
  30. package/dist/lib/browser/{spaces-ready-5I3RKYTT.mjs → spaces-ready-BSSP7HHG.mjs} +17 -18
  31. package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
  32. package/dist/lib/browser/{state-SI4B5GHC.mjs → state-X7VLCC6E.mjs} +4 -2
  33. package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
  34. package/dist/lib/browser/types/index.mjs +1 -7
  35. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs +318 -0
  36. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
  37. package/dist/lib/node/{app-graph-serializer-VLBCR3IX.cjs → app-graph-serializer-JELGJUAY.cjs} +22 -22
  38. package/dist/lib/node/app-graph-serializer-JELGJUAY.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-MXBE2VET.cjs → chunk-3GKCNADA.cjs} +751 -412
  40. package/dist/lib/node/chunk-3GKCNADA.cjs.map +7 -0
  41. package/dist/lib/node/{chunk-5YHUQJVB.cjs → chunk-PU2EYH4E.cjs} +14 -25
  42. package/dist/lib/node/chunk-PU2EYH4E.cjs.map +7 -0
  43. package/dist/lib/node/{chunk-SCATWJKX.cjs → chunk-TUZWEPGX.cjs} +198 -100
  44. package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
  45. package/dist/lib/node/chunk-WDEIFDTX.cjs +300 -0
  46. package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
  47. package/dist/lib/node/{identity-created-NIPYGVG3.cjs → identity-created-XU4HFV2T.cjs} +7 -7
  48. package/dist/lib/node/identity-created-XU4HFV2T.cjs.map +7 -0
  49. package/dist/lib/node/index.cjs +97 -79
  50. package/dist/lib/node/index.cjs.map +3 -3
  51. package/dist/lib/node/{intent-resolver-MJVRY6YE.cjs → intent-resolver-VJ7YV74L.cjs} +151 -144
  52. package/dist/lib/node/intent-resolver-VJ7YV74L.cjs.map +7 -0
  53. package/dist/lib/node/meta.json +1 -1
  54. package/dist/lib/node/{react-root-M4BZ6VXB.cjs → react-root-TEL5RW3N.cjs} +8 -9
  55. package/dist/lib/node/{react-root-M4BZ6VXB.cjs.map → react-root-TEL5RW3N.cjs.map} +1 -1
  56. package/dist/lib/node/{react-surface-RYKSYYKM.cjs → react-surface-2H3S5TY5.cjs} +75 -142
  57. package/dist/lib/node/react-surface-2H3S5TY5.cjs.map +7 -0
  58. package/dist/lib/node/{schema-defs-2HJLXSNK.cjs → schema-PPJ5BZ3A.cjs} +11 -13
  59. package/dist/lib/node/schema-PPJ5BZ3A.cjs.map +7 -0
  60. package/dist/lib/node/{schema-tools-OE3MFYYH.cjs → schema-tools-BLIMOZYY.cjs} +24 -24
  61. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
  62. package/dist/lib/node/{settings-AFWO4AWK.cjs → settings-WVFP2UEP.cjs} +7 -7
  63. package/dist/lib/node/settings-WVFP2UEP.cjs.map +7 -0
  64. package/dist/lib/node/{spaces-ready-BMPXSFHF.cjs → spaces-ready-7DNZSUOG.cjs} +24 -25
  65. package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
  66. package/dist/lib/node/{state-L2ZSDKLS.cjs → state-5KX6WBJH.cjs} +7 -5
  67. package/dist/lib/node/state-5KX6WBJH.cjs.map +7 -0
  68. package/dist/lib/node/types/index.cjs +12 -18
  69. package/dist/lib/node/types/index.cjs.map +2 -2
  70. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs +316 -0
  71. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
  72. package/dist/lib/node-esm/{app-graph-serializer-GEUYYXKD.mjs → app-graph-serializer-FXONFKOE.mjs} +10 -10
  73. package/dist/lib/node-esm/app-graph-serializer-FXONFKOE.mjs.map +7 -0
  74. package/dist/lib/node-esm/{chunk-5NIBYPVF.mjs → chunk-3ZOUV4DF.mjs} +10 -21
  75. package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-FI3WV22Y.mjs → chunk-BEWBZ4Q4.mjs} +740 -390
  77. package/dist/lib/node-esm/chunk-BEWBZ4Q4.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs +276 -0
  79. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
  80. package/dist/lib/node-esm/{chunk-S2W6HS4A.mjs → chunk-ZGLK25WQ.mjs} +173 -78
  81. package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
  82. package/dist/lib/node-esm/{identity-created-O5X2FFWU.mjs → identity-created-WJKAS2PV.mjs} +5 -5
  83. package/dist/lib/node-esm/identity-created-WJKAS2PV.mjs.map +7 -0
  84. package/dist/lib/node-esm/index.mjs +47 -30
  85. package/dist/lib/node-esm/index.mjs.map +3 -3
  86. package/dist/lib/node-esm/{intent-resolver-JT6EB47M.mjs → intent-resolver-ZFNSA4CM.mjs} +106 -98
  87. package/dist/lib/node-esm/intent-resolver-ZFNSA4CM.mjs.map +7 -0
  88. package/dist/lib/node-esm/meta.json +1 -1
  89. package/dist/lib/node-esm/{react-root-S2LW4FS7.mjs → react-root-PRBJMWLQ.mjs} +4 -5
  90. package/dist/lib/node-esm/{react-surface-ZNNMO7QQ.mjs → react-surface-RCZG2PNF.mjs} +53 -120
  91. package/dist/lib/node-esm/react-surface-RCZG2PNF.mjs.map +7 -0
  92. package/dist/lib/node-esm/schema-OUZKVYM5.mjs +25 -0
  93. package/dist/lib/node-esm/schema-OUZKVYM5.mjs.map +7 -0
  94. package/dist/lib/node-esm/{schema-tools-YTJLA3NQ.mjs → schema-tools-IU7EX5A5.mjs} +22 -22
  95. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
  96. package/dist/lib/node-esm/{settings-MJVSCOI4.mjs → settings-FJZPC2TV.mjs} +4 -4
  97. package/dist/lib/node-esm/settings-FJZPC2TV.mjs.map +7 -0
  98. package/dist/lib/node-esm/{spaces-ready-XKG57SL5.mjs → spaces-ready-7X5PGB2V.mjs} +17 -18
  99. package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
  100. package/dist/lib/node-esm/{state-QUDYGEU6.mjs → state-Z6E2YTNC.mjs} +4 -2
  101. package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +7 -0
  102. package/dist/lib/node-esm/types/index.mjs +1 -7
  103. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/app-graph-builder.d.ts +179 -2
  105. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/app-graph-serializer.d.ts +2 -2
  107. package/dist/types/src/capabilities/app-graph-serializer.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/identity-created.d.ts +2 -2
  109. package/dist/types/src/capabilities/identity-created.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/index.d.ts +184 -9
  111. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/intent-resolver.d.ts +3 -4
  113. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  114. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  115. package/dist/types/src/capabilities/schema-tools.d.ts +2 -2
  116. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -1
  117. package/dist/types/src/capabilities/schema.d.ts +4 -0
  118. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/spaces-ready.d.ts +2 -2
  120. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  121. package/dist/types/src/capabilities/state.d.ts +2 -2
  122. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  123. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  124. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  125. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  126. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -2
  127. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  128. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  129. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  130. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  131. package/dist/types/src/components/MembersContainer.d.ts.map +1 -1
  132. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -1
  133. package/dist/types/src/components/MenuFooter.d.ts +2 -2
  134. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  135. package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +2 -2
  136. package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
  137. package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/BaseObjectSettings.d.ts +2 -2
  138. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +1 -0
  139. package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +1 -0
  140. package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/ObjectSettingsContainer.d.ts +2 -2
  141. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
  142. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
  143. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  144. package/dist/types/src/components/PopoverAddSpace.d.ts +4 -0
  145. package/dist/types/src/components/PopoverAddSpace.d.ts.map +1 -0
  146. package/dist/types/src/components/PopoverRenameObject.d.ts +2 -2
  147. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  148. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  149. package/dist/types/src/components/ShareSpaceButton.d.ts +9 -0
  150. package/dist/types/src/components/ShareSpaceButton.d.ts.map +1 -0
  151. package/dist/types/src/components/ShareSpaceButton.stories.d.ts +10 -0
  152. package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +1 -0
  153. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  154. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  155. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  156. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +7 -0
  157. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +1 -0
  158. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +7 -0
  159. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +1 -0
  160. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +2 -0
  161. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -1
  162. package/dist/types/src/components/SpaceSettings/index.d.ts +1 -0
  163. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
  164. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  165. package/dist/types/src/components/SyncStatus/Space.d.ts +13 -0
  166. package/dist/types/src/components/SyncStatus/Space.d.ts.map +1 -0
  167. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +8 -1
  168. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  169. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts +9 -0
  170. package/dist/types/src/components/SyncStatus/SyncStatusDetail.stories.d.ts.map +1 -0
  171. package/dist/types/src/components/SyncStatus/save-tracker.d.ts.map +1 -1
  172. package/dist/types/src/components/SyncStatus/status.d.ts.map +1 -1
  173. package/dist/types/src/components/SyncStatus/sync-state.d.ts +18 -0
  174. package/dist/types/src/components/SyncStatus/sync-state.d.ts.map +1 -0
  175. package/dist/types/src/components/index.d.ts +3 -2
  176. package/dist/types/src/components/index.d.ts.map +1 -1
  177. package/dist/types/src/hooks/index.d.ts +0 -2
  178. package/dist/types/src/hooks/index.d.ts.map +1 -1
  179. package/dist/types/src/hooks/usePath.d.ts +2 -3
  180. package/dist/types/src/hooks/usePath.d.ts.map +1 -1
  181. package/dist/types/src/index.d.ts +0 -1
  182. package/dist/types/src/index.d.ts.map +1 -1
  183. package/dist/types/src/translations.d.ts +242 -17
  184. package/dist/types/src/translations.d.ts.map +1 -1
  185. package/dist/types/src/types/collection.d.ts +8 -9
  186. package/dist/types/src/types/collection.d.ts.map +1 -1
  187. package/dist/types/src/types/thread.d.ts +110 -205
  188. package/dist/types/src/types/thread.d.ts.map +1 -1
  189. package/dist/types/src/types/types.d.ts +146 -157
  190. package/dist/types/src/types/types.d.ts.map +1 -1
  191. package/dist/types/src/util.d.ts +20 -36
  192. package/dist/types/src/util.d.ts.map +1 -1
  193. package/dist/types/tsconfig.tsbuildinfo +1 -1
  194. package/package.json +44 -51
  195. package/src/SpacePlugin.tsx +20 -11
  196. package/src/capabilities/app-graph-builder.ts +230 -377
  197. package/src/capabilities/app-graph-serializer.ts +8 -8
  198. package/src/capabilities/identity-created.ts +5 -5
  199. package/src/capabilities/index.ts +2 -2
  200. package/src/capabilities/intent-resolver.ts +110 -94
  201. package/src/capabilities/react-surface.tsx +50 -111
  202. package/src/capabilities/schema-tool.test.ts +3 -2
  203. package/src/capabilities/schema-tools.ts +25 -25
  204. package/src/capabilities/schema.ts +27 -0
  205. package/src/capabilities/settings.ts +2 -2
  206. package/src/capabilities/spaces-ready.ts +14 -16
  207. package/src/capabilities/state.ts +5 -3
  208. package/src/components/AwaitingObject.tsx +1 -1
  209. package/src/components/CollectionMain.tsx +5 -2
  210. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +4 -4
  211. package/src/components/CreateDialog/CreateObjectDialog.tsx +4 -4
  212. package/src/components/CreateDialog/CreateObjectPanel.tsx +25 -3
  213. package/src/components/CreateDialog/CreateSpaceDialog.tsx +3 -6
  214. package/src/components/MembersContainer.stories.tsx +5 -1
  215. package/src/components/MembersContainer.tsx +54 -80
  216. package/src/components/MenuFooter.tsx +2 -2
  217. package/src/components/{ObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +2 -2
  218. package/src/components/{ObjectSettings → ObjectSettingsContainer}/BaseObjectSettings.tsx +2 -2
  219. package/src/components/{ObjectSettings → ObjectSettingsContainer}/ObjectSettingsContainer.tsx +4 -4
  220. package/src/components/PersistenceStatus.tsx +14 -11
  221. package/src/components/PopoverAddSpace.tsx +46 -0
  222. package/src/components/PopoverRenameObject.tsx +8 -14
  223. package/src/components/PopoverRenameSpace.tsx +0 -8
  224. package/src/components/ShareSpaceButton.stories.tsx +27 -0
  225. package/src/components/ShareSpaceButton.tsx +32 -0
  226. package/src/components/SpacePluginSettings.tsx +2 -27
  227. package/src/components/SpacePresence.stories.tsx +1 -1
  228. package/src/components/SpacePresence.tsx +65 -60
  229. package/src/components/SpaceSettings/{SpaceSettingsContainer.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
  230. package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
  231. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +39 -159
  232. package/src/components/SpaceSettings/index.ts +1 -0
  233. package/src/components/SyncStatus/InlineSyncStatus.tsx +24 -15
  234. package/src/components/SyncStatus/Space.tsx +133 -0
  235. package/src/components/SyncStatus/SyncStatus.tsx +69 -6
  236. package/src/components/SyncStatus/SyncStatusDetail.stories.tsx +89 -0
  237. package/src/components/SyncStatus/sync-state.ts +101 -0
  238. package/src/components/index.ts +3 -2
  239. package/src/hooks/index.ts +0 -2
  240. package/src/hooks/usePath.ts +6 -9
  241. package/src/index.ts +0 -1
  242. package/src/translations.ts +7 -19
  243. package/src/types/collection.ts +4 -6
  244. package/src/types/thread.ts +8 -14
  245. package/src/types/types.ts +101 -115
  246. package/src/util.tsx +172 -75
  247. package/dist/lib/browser/app-graph-builder-7X3SIPCD.mjs +0 -328
  248. package/dist/lib/browser/app-graph-builder-7X3SIPCD.mjs.map +0 -7
  249. package/dist/lib/browser/app-graph-serializer-VRU57AEZ.mjs.map +0 -7
  250. package/dist/lib/browser/chunk-43UQWMD3.mjs.map +0 -7
  251. package/dist/lib/browser/chunk-AR5R2F6B.mjs +0 -88
  252. package/dist/lib/browser/chunk-AR5R2F6B.mjs.map +0 -7
  253. package/dist/lib/browser/chunk-CY35NLWL.mjs +0 -296
  254. package/dist/lib/browser/chunk-CY35NLWL.mjs.map +0 -7
  255. package/dist/lib/browser/chunk-IQFFOAWD.mjs.map +0 -7
  256. package/dist/lib/browser/chunk-UBSVH2NQ.mjs.map +0 -7
  257. package/dist/lib/browser/identity-created-ANRJHNMQ.mjs.map +0 -7
  258. package/dist/lib/browser/intent-resolver-KRINV5QI.mjs.map +0 -7
  259. package/dist/lib/browser/react-surface-J7T2IMH4.mjs.map +0 -7
  260. package/dist/lib/browser/schema-defs-OCBY7APN.mjs +0 -26
  261. package/dist/lib/browser/schema-defs-OCBY7APN.mjs.map +0 -7
  262. package/dist/lib/browser/schema-tools-MYC4LTQD.mjs.map +0 -7
  263. package/dist/lib/browser/settings-G24447B7.mjs.map +0 -7
  264. package/dist/lib/browser/spaces-ready-5I3RKYTT.mjs.map +0 -7
  265. package/dist/lib/browser/state-SI4B5GHC.mjs.map +0 -7
  266. package/dist/lib/node/app-graph-builder-C2ISDMSL.cjs +0 -328
  267. package/dist/lib/node/app-graph-builder-C2ISDMSL.cjs.map +0 -7
  268. package/dist/lib/node/app-graph-serializer-VLBCR3IX.cjs.map +0 -7
  269. package/dist/lib/node/chunk-5YHUQJVB.cjs.map +0 -7
  270. package/dist/lib/node/chunk-DQN4ZQDW.cjs +0 -119
  271. package/dist/lib/node/chunk-DQN4ZQDW.cjs.map +0 -7
  272. package/dist/lib/node/chunk-K6ZO4WDJ.cjs +0 -324
  273. package/dist/lib/node/chunk-K6ZO4WDJ.cjs.map +0 -7
  274. package/dist/lib/node/chunk-MXBE2VET.cjs.map +0 -7
  275. package/dist/lib/node/chunk-SCATWJKX.cjs.map +0 -7
  276. package/dist/lib/node/identity-created-NIPYGVG3.cjs.map +0 -7
  277. package/dist/lib/node/intent-resolver-MJVRY6YE.cjs.map +0 -7
  278. package/dist/lib/node/react-surface-RYKSYYKM.cjs.map +0 -7
  279. package/dist/lib/node/schema-defs-2HJLXSNK.cjs.map +0 -7
  280. package/dist/lib/node/schema-tools-OE3MFYYH.cjs.map +0 -7
  281. package/dist/lib/node/settings-AFWO4AWK.cjs.map +0 -7
  282. package/dist/lib/node/spaces-ready-BMPXSFHF.cjs.map +0 -7
  283. package/dist/lib/node/state-L2ZSDKLS.cjs.map +0 -7
  284. package/dist/lib/node-esm/app-graph-builder-WVCQZ324.mjs +0 -329
  285. package/dist/lib/node-esm/app-graph-builder-WVCQZ324.mjs.map +0 -7
  286. package/dist/lib/node-esm/app-graph-serializer-GEUYYXKD.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-5NIBYPVF.mjs.map +0 -7
  288. package/dist/lib/node-esm/chunk-CLRCW6PU.mjs +0 -297
  289. package/dist/lib/node-esm/chunk-CLRCW6PU.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-FI3WV22Y.mjs.map +0 -7
  291. package/dist/lib/node-esm/chunk-HNKAG5CX.mjs +0 -90
  292. package/dist/lib/node-esm/chunk-HNKAG5CX.mjs.map +0 -7
  293. package/dist/lib/node-esm/chunk-S2W6HS4A.mjs.map +0 -7
  294. package/dist/lib/node-esm/identity-created-O5X2FFWU.mjs.map +0 -7
  295. package/dist/lib/node-esm/intent-resolver-JT6EB47M.mjs.map +0 -7
  296. package/dist/lib/node-esm/react-surface-ZNNMO7QQ.mjs.map +0 -7
  297. package/dist/lib/node-esm/schema-defs-B74N3GQ5.mjs +0 -27
  298. package/dist/lib/node-esm/schema-defs-B74N3GQ5.mjs.map +0 -7
  299. package/dist/lib/node-esm/schema-tools-YTJLA3NQ.mjs.map +0 -7
  300. package/dist/lib/node-esm/settings-MJVSCOI4.mjs.map +0 -7
  301. package/dist/lib/node-esm/spaces-ready-XKG57SL5.mjs.map +0 -7
  302. package/dist/lib/node-esm/state-QUDYGEU6.mjs.map +0 -7
  303. package/dist/types/src/capabilities/schema-defs.d.ts +0 -4
  304. package/dist/types/src/capabilities/schema-defs.d.ts.map +0 -1
  305. package/dist/types/src/components/ObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  306. package/dist/types/src/components/ObjectSettings/BaseObjectSettings.d.ts.map +0 -1
  307. package/dist/types/src/components/ObjectSettings/ForeignKeys.d.ts.map +0 -1
  308. package/dist/types/src/components/ObjectSettings/ObjectSettingsContainer.d.ts.map +0 -1
  309. package/dist/types/src/components/ObjectSettings/index.d.ts.map +0 -1
  310. package/dist/types/src/components/SchemaContainer.d.ts +0 -13
  311. package/dist/types/src/components/SchemaContainer.d.ts.map +0 -1
  312. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts +0 -7
  313. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.stories.d.ts.map +0 -1
  314. package/dist/types/src/hooks/useActiveSpace.d.ts +0 -4
  315. package/dist/types/src/hooks/useActiveSpace.d.ts.map +0 -1
  316. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts +0 -14
  317. package/dist/types/src/hooks/useInputSurfaceLookup.d.ts.map +0 -1
  318. package/src/capabilities/schema-defs.ts +0 -30
  319. package/src/components/SchemaContainer.tsx +0 -59
  320. package/src/hooks/useActiveSpace.ts +0 -20
  321. package/src/hooks/useInputSurfaceLookup.tsx +0 -31
  322. /package/dist/lib/{browser/react-root-J3SP2HVW.mjs.map → node-esm/react-root-PRBJMWLQ.mjs.map} +0 -0
  323. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
  324. /package/dist/types/src/components/{ObjectSettings → ObjectSettingsContainer}/index.d.ts +0 -0
  325. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
  326. /package/src/components/{ObjectSettings → ObjectSettingsContainer}/index.ts +0 -0
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_MXBE2VET_exports = {};
30
- __export(chunk_MXBE2VET_exports, {
29
+ var chunk_3GKCNADA_exports = {};
30
+ __export(chunk_3GKCNADA_exports, {
31
31
  AppGraphBuilder: () => AppGraphBuilder,
32
32
  AppGraphSerializer: () => AppGraphSerializer,
33
33
  AwaitingObject: () => AwaitingObject,
@@ -46,33 +46,37 @@ __export(chunk_MXBE2VET_exports, {
46
46
  MembersContainer: () => MembersContainer,
47
47
  MenuFooter: () => MenuFooter,
48
48
  ObjectSettingsContainer: () => ObjectSettingsContainer,
49
+ POPOVER_ADD_SPACE: () => POPOVER_ADD_SPACE,
49
50
  POPOVER_RENAME_OBJECT: () => POPOVER_RENAME_OBJECT,
50
51
  POPOVER_RENAME_SPACE: () => POPOVER_RENAME_SPACE,
51
52
  PersistenceStatus: () => PersistenceStatus,
53
+ PopoverAddSpace: () => PopoverAddSpace,
52
54
  PopoverRenameObject: () => PopoverRenameObject,
53
55
  PopoverRenameSpace: () => PopoverRenameSpace,
54
56
  ReactRoot: () => ReactRoot,
55
57
  ReactSurface: () => ReactSurface,
56
- SchemaContainer: () => SchemaContainer,
57
- SchemaDefs: () => SchemaDefs,
58
- SchemaTools: () => SchemaTools,
58
+ SPACE_SETTINGS_DIALOG: () => SPACE_SETTINGS_DIALOG,
59
+ Schema: () => Schema,
60
+ ShareSpaceButton: () => ShareSpaceButton,
61
+ ShareSpaceButtonImpl: () => ShareSpaceButtonImpl,
59
62
  SmallPresence: () => SmallPresence,
60
63
  SmallPresenceLive: () => SmallPresenceLive,
61
64
  SpacePluginSettings: () => SpacePluginSettings,
62
65
  SpacePresence: () => SpacePresence,
66
+ SpacePropertiesForm: () => SpacePropertiesForm,
63
67
  SpaceSettings: () => SpaceSettings,
64
68
  SpaceSettingsContainer: () => SpaceSettingsContainer,
65
69
  SpaceState: () => SpaceState,
66
70
  SpacesReady: () => SpacesReady,
67
71
  SyncStatus: () => SyncStatus,
72
+ SyncStatusDetail: () => SyncStatusDetail,
68
73
  SyncStatusIndicator: () => SyncStatusIndicator,
69
- useQuerySpaceSchemas: () => useQuerySpaceSchemas
74
+ Tools: () => Tools
70
75
  });
71
- module.exports = __toCommonJS(chunk_MXBE2VET_exports);
72
- var import_chunk_DQN4ZQDW = require("./chunk-DQN4ZQDW.cjs");
76
+ module.exports = __toCommonJS(chunk_3GKCNADA_exports);
73
77
  var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
74
- var import_chunk_SCATWJKX = require("./chunk-SCATWJKX.cjs");
75
- var import_chunk_K6ZO4WDJ = require("./chunk-K6ZO4WDJ.cjs");
78
+ var import_chunk_TUZWEPGX = require("./chunk-TUZWEPGX.cjs");
79
+ var import_chunk_WDEIFDTX = require("./chunk-WDEIFDTX.cjs");
76
80
  var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
77
81
  var import_react = require("@phosphor-icons/react");
78
82
  var import_react2 = __toESM(require("react"));
@@ -89,6 +93,7 @@ var import_react_client2 = require("@dxos/react-client");
89
93
  var import_echo2 = require("@dxos/react-client/echo");
90
94
  var import_react_ui2 = require("@dxos/react-ui");
91
95
  var import_react4 = __toESM(require("react"));
96
+ var import_app_framework3 = require("@dxos/app-framework");
92
97
  var import_echo_schema = require("@dxos/echo-schema");
93
98
  var import_invariant2 = require("@dxos/invariant");
94
99
  var import_react_ui3 = require("@dxos/react-ui");
@@ -96,10 +101,10 @@ var import_react_ui_form = require("@dxos/react-ui-form");
96
101
  var import_react_ui_searchlist = require("@dxos/react-ui-searchlist");
97
102
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
98
103
  var import_util = require("@dxos/util");
99
- var import_app_framework3 = require("@dxos/app-framework");
104
+ var import_app_framework4 = require("@dxos/app-framework");
100
105
  var import_effect2 = require("effect");
101
106
  var import_react5 = __toESM(require("react"));
102
- var import_app_framework4 = require("@dxos/app-framework");
107
+ var import_app_framework5 = require("@dxos/app-framework");
103
108
  var import_react_ui4 = require("@dxos/react-ui");
104
109
  var import_react_ui_form2 = require("@dxos/react-ui-form");
105
110
  var import_react6 = __toESM(require("react"));
@@ -108,7 +113,7 @@ var import_react_ui_theme3 = require("@dxos/react-ui-theme");
108
113
  var import_react7 = __toESM(require("react"));
109
114
  var import_react_ui6 = require("@dxos/react-ui");
110
115
  var import_react8 = __toESM(require("react"));
111
- var import_app_framework5 = require("@dxos/app-framework");
116
+ var import_app_framework6 = require("@dxos/app-framework");
112
117
  var import_async = require("@dxos/async");
113
118
  var import_types = require("@dxos/plugin-observability/types");
114
119
  var import_react_client3 = require("@dxos/react-client");
@@ -117,7 +122,6 @@ var import_react9 = require("@dxos/shell/react");
117
122
  var import_react10 = require("@phosphor-icons/react");
118
123
  var import_react11 = __toESM(require("react"));
119
124
  var import_react_qr_rounded = require("react-qr-rounded");
120
- var import_app_framework6 = require("@dxos/app-framework");
121
125
  var import_log = require("@dxos/log");
122
126
  var import_react_client4 = require("@dxos/react-client");
123
127
  var import_echo3 = require("@dxos/react-client/echo");
@@ -138,66 +142,80 @@ var import_app_framework7 = require("@dxos/app-framework");
138
142
  var import_react_ui10 = require("@dxos/react-ui");
139
143
  var import_react_ui_stack2 = require("@dxos/react-ui-stack");
140
144
  var import_react16 = __toESM(require("react"));
145
+ var import_echo_schema2 = require("@dxos/echo-schema");
146
+ var import_echo5 = require("@dxos/react-client/echo");
141
147
  var import_react_ui11 = require("@dxos/react-ui");
142
- var import_react_ui_theme5 = require("@dxos/react-ui-theme");
143
- var import_react17 = require("@phosphor-icons/react");
144
- var import_react18 = __toESM(require("react"));
145
- var import_async2 = require("@dxos/async");
148
+ var import_react_ui_form4 = require("@dxos/react-ui-form");
149
+ var import_react17 = __toESM(require("react"));
146
150
  var import_react_ui12 = require("@dxos/react-ui");
147
- var import_react_ui_theme6 = require("@dxos/react-ui-theme");
148
- var import_react19 = __toESM(require("react"));
149
- var import_app_framework8 = require("@dxos/app-framework");
150
- var import_log2 = require("@dxos/log");
151
+ var import_react18 = __toESM(require("react"));
151
152
  var import_react_ui13 = require("@dxos/react-ui");
153
+ var import_react_ui_theme5 = require("@dxos/react-ui-theme");
154
+ var import_react19 = require("@phosphor-icons/react");
152
155
  var import_react20 = __toESM(require("react"));
153
- var import_app_framework9 = require("@dxos/app-framework");
156
+ var import_async2 = require("@dxos/async");
154
157
  var import_react_ui14 = require("@dxos/react-ui");
158
+ var import_react_ui_theme6 = require("@dxos/react-ui-theme");
155
159
  var import_react21 = __toESM(require("react"));
160
+ var import_app_framework8 = require("@dxos/app-framework");
156
161
  var import_react_ui15 = require("@dxos/react-ui");
157
- var import_react_ui_form4 = require("@dxos/react-ui-form");
158
- var import_react_ui_stack3 = require("@dxos/react-ui-stack");
159
- var import_effect3 = require("effect");
160
162
  var import_react22 = __toESM(require("react"));
163
+ var import_log2 = require("@dxos/log");
164
+ var import_react_ui16 = require("@dxos/react-ui");
165
+ var import_react23 = __toESM(require("react"));
166
+ var import_react_ui17 = require("@dxos/react-ui");
167
+ var import_react24 = __toESM(require("react"));
168
+ var import_app_framework9 = require("@dxos/app-framework");
169
+ var import_react_ui18 = require("@dxos/react-ui");
170
+ var import_react25 = __toESM(require("react"));
161
171
  var import_app_framework10 = require("@dxos/app-framework");
162
172
  var import_display_name = require("@dxos/display-name");
163
173
  var import_react_client6 = require("@dxos/react-client");
164
- var import_echo5 = require("@dxos/react-client/echo");
174
+ var import_echo6 = require("@dxos/react-client/echo");
165
175
  var import_halo = require("@dxos/react-client/halo");
166
- var import_react_ui16 = require("@dxos/react-ui");
176
+ var import_react_ui19 = require("@dxos/react-ui");
167
177
  var import_react_ui_attention = require("@dxos/react-ui-attention");
168
178
  var import_util3 = require("@dxos/util");
169
- var import_react23 = __toESM(require("react"));
170
- var import_app_framework11 = require("@dxos/app-framework");
171
- var import_react_client7 = require("@dxos/react-client");
172
- var import_echo6 = require("@dxos/react-client/echo");
173
- var import_react_ui17 = require("@dxos/react-ui");
179
+ var import_react26 = require("react");
180
+ var import_react27 = __toESM(require("react"));
181
+ var import_react_ui20 = require("@dxos/react-ui");
174
182
  var import_react_ui_form5 = require("@dxos/react-ui-form");
175
- var import_effect4 = require("effect");
176
- var import_react24 = __toESM(require("react"));
177
- var import_app_framework12 = require("@dxos/app-framework");
183
+ var import_react28 = __toESM(require("react"));
178
184
  var import_log3 = require("@dxos/log");
179
185
  var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
180
- var import_react_client8 = require("@dxos/react-client");
181
- var import_echo7 = require("@dxos/react-client/echo");
182
- var import_react_ui18 = require("@dxos/react-ui");
186
+ var import_react_ui21 = require("@dxos/react-ui");
183
187
  var import_react_ui_form6 = require("@dxos/react-ui-form");
184
188
  var import_react_ui_pickers = require("@dxos/react-ui-pickers");
185
- var import_react_ui_stack4 = require("@dxos/react-ui-stack");
186
- var import_effect5 = require("effect");
187
- var import_react25 = __toESM(require("react"));
188
- var import_app_framework13 = require("@dxos/app-framework");
189
+ var import_react29 = __toESM(require("react"));
190
+ var import_app_framework11 = require("@dxos/app-framework");
191
+ var import_react_ui22 = require("@dxos/react-ui");
192
+ var import_react_ui_form7 = require("@dxos/react-ui-form");
193
+ var import_react_ui_list = require("@dxos/react-ui-list");
194
+ var import_react_ui_stack3 = require("@dxos/react-ui-stack");
195
+ var import_util4 = require("@dxos/util");
196
+ var import_react30 = __toESM(require("react"));
197
+ var import_app_framework12 = require("@dxos/app-framework");
189
198
  var import_services = require("@dxos/protocols/proto/dxos/client/services");
190
199
  var import_metadata2 = require("@dxos/protocols/proto/dxos/echo/metadata");
191
- var import_react_client9 = require("@dxos/react-client");
192
- var import_echo8 = require("@dxos/react-client/echo");
193
- var import_react_ui19 = require("@dxos/react-ui");
200
+ var import_react_client7 = require("@dxos/react-client");
201
+ var import_react_ui23 = require("@dxos/react-ui");
194
202
  var import_react_ui_attention2 = require("@dxos/react-ui-attention");
195
- var import_react26 = __toESM(require("react"));
203
+ var import_react31 = require("react");
204
+ var import_context = require("@dxos/context");
205
+ var import_protocols = require("@dxos/protocols");
206
+ var import_react_client8 = require("@dxos/react-client");
207
+ var import_react32 = __toESM(require("react"));
196
208
  var import_plugin_status_bar = require("@dxos/plugin-status-bar");
209
+ var import_react_client9 = require("@dxos/react-client");
210
+ var import_react_ui24 = require("@dxos/react-ui");
211
+ var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
212
+ var import_react_ui_theme7 = require("@dxos/react-ui-theme");
213
+ var import_react33 = __toESM(require("react"));
197
214
  var import_react_client10 = require("@dxos/react-client");
198
- var import_echo9 = require("@dxos/react-client/echo");
199
- var import_react_ui20 = require("@dxos/react-ui");
200
- var import_context = require("@dxos/context");
215
+ var import_echo7 = require("@dxos/react-client/echo");
216
+ var import_react_ui25 = require("@dxos/react-ui");
217
+ var import_react_ui_theme8 = require("@dxos/react-ui-theme");
218
+ var import_context2 = require("@dxos/context");
201
219
  var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
202
220
  var TOAST_TIMEOUT = 24e4;
203
221
  var AwaitingObject = ({ id }) => {
@@ -208,7 +226,7 @@ var AwaitingObject = ({ id }) => {
208
226
  const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
209
227
  const layout = (0, import_app_framework.useLayout)();
210
228
  const client = (0, import_react_client.useClient)();
211
- const objects = (0, import_echo.useQuery)(client.spaces, import_echo.Filter.everything());
229
+ const objects = (0, import_echo.useQuery)(client.spaces, import_echo.Filter.all());
212
230
  (0, import_react2.useEffect)(() => {
213
231
  if (!id) {
214
232
  return;
@@ -232,7 +250,7 @@ var AwaitingObject = ({ id }) => {
232
250
  objects,
233
251
  layout
234
252
  ]);
235
- const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.WaitForObject, {
253
+ const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_WDEIFDTX.SpaceAction.WaitForObject, {
236
254
  id: void 0
237
255
  })), [
238
256
  dispatch
@@ -283,6 +301,30 @@ var AwaitingObject = ({ id }) => {
283
301
  })))));
284
302
  };
285
303
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectPanel.tsx";
304
+ var useInputSurfaceLookup = (baseData) => {
305
+ const pluginManager = (0, import_app_framework3.usePluginManager)();
306
+ return (0, import_react4.useCallback)(({ prop, schema, inputProps }) => {
307
+ const composedData = {
308
+ prop,
309
+ schema,
310
+ ...baseData
311
+ };
312
+ if (!(0, import_app_framework3.isSurfaceAvailable)(pluginManager.context, {
313
+ role: "form-input",
314
+ data: composedData
315
+ })) {
316
+ return void 0;
317
+ }
318
+ return /* @__PURE__ */ import_react4.default.createElement(import_app_framework3.Surface, {
319
+ role: "form-input",
320
+ data: composedData,
321
+ ...inputProps
322
+ });
323
+ }, [
324
+ pluginManager,
325
+ baseData
326
+ ]);
327
+ };
286
328
  var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename, target: initialTarget, name: initialName, defaultSpaceId, resolve, onCreateObject }) => {
287
329
  const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
288
330
  const [typename, setTypename] = (0, import_react4.useState)(initialTypename);
@@ -316,7 +358,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
316
358
  const handleSetTypename = (0, import_react4.useCallback)(async (typename2) => {
317
359
  (0, import_invariant2.invariant)(target, "target is required", {
318
360
  F: __dxlog_file,
319
- L: 72,
361
+ L: 94,
320
362
  S: void 0,
321
363
  A: [
322
364
  "target",
@@ -337,7 +379,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
337
379
  onCreateObject,
338
380
  target
339
381
  ]);
340
- const inputSurfaceLookup = (0, import_chunk_DQN4ZQDW.useInputSurfaceLookup)({
382
+ const inputSurfaceLookup = useInputSurfaceLookup({
341
383
  target
342
384
  });
343
385
  return /* @__PURE__ */ import_react4.default.createElement("div", {
@@ -376,23 +418,23 @@ var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
376
418
  }), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Content, {
377
419
  classNames: "max-bs-[24rem] overflow-auto"
378
420
  }, spaces.sort((a, b) => {
379
- const aName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_SCATWJKX.getSpaceDisplayName)(a, {
421
+ const aName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(a, {
380
422
  personal: a.id === defaultSpaceId
381
423
  }), t);
382
- const bName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_SCATWJKX.getSpaceDisplayName)(b, {
424
+ const bName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(b, {
383
425
  personal: b.id === defaultSpaceId
384
426
  }), t);
385
427
  return aName.localeCompare(bName);
386
428
  }).map((space) => /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Item, {
387
429
  key: space.id,
388
- value: (0, import_react_ui3.toLocalizedString)((0, import_chunk_SCATWJKX.getSpaceDisplayName)(space, {
430
+ value: (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
389
431
  personal: space.id === defaultSpaceId
390
432
  }), t),
391
433
  onSelect: () => onChange(space),
392
434
  classNames: "flex items-center gap-2"
393
435
  }, /* @__PURE__ */ import_react4.default.createElement("span", {
394
436
  className: "grow truncate"
395
- }, (0, import_react_ui3.toLocalizedString)((0, import_chunk_SCATWJKX.getSpaceDisplayName)(space, {
437
+ }, (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
396
438
  personal: space.id === defaultSpaceId
397
439
  }), t))))));
398
440
  };
@@ -426,17 +468,17 @@ var SelectSchema = ({ options, resolve, onChange }) => {
426
468
  defaultValue: option.typename
427
469
  }))))));
428
470
  };
429
- var AppGraphBuilder = (0, import_app_framework3.lazy)(() => import("./app-graph-builder-C2ISDMSL.cjs"));
430
- var AppGraphSerializer = (0, import_app_framework3.lazy)(() => import("./app-graph-serializer-VLBCR3IX.cjs"));
431
- var IdentityCreated = (0, import_app_framework3.lazy)(() => import("./identity-created-NIPYGVG3.cjs"));
432
- var IntentResolver = (0, import_app_framework3.lazy)(() => import("./intent-resolver-MJVRY6YE.cjs"));
433
- var ReactRoot = (0, import_app_framework3.lazy)(() => import("./react-root-M4BZ6VXB.cjs"));
434
- var ReactSurface = (0, import_app_framework3.lazy)(() => import("./react-surface-RYKSYYKM.cjs"));
435
- var SchemaDefs = (0, import_app_framework3.lazy)(() => import("./schema-defs-2HJLXSNK.cjs"));
436
- var SchemaTools = (0, import_app_framework3.lazy)(() => import("./schema-tools-OE3MFYYH.cjs"));
437
- var SpaceSettings = (0, import_app_framework3.lazy)(() => import("./settings-AFWO4AWK.cjs"));
438
- var SpaceState = (0, import_app_framework3.lazy)(() => import("./state-L2ZSDKLS.cjs"));
439
- var SpacesReady = (0, import_app_framework3.lazy)(() => import("./spaces-ready-BMPXSFHF.cjs"));
471
+ var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-DPY7AUZE.cjs"));
472
+ var AppGraphSerializer = (0, import_app_framework4.lazy)(() => import("./app-graph-serializer-JELGJUAY.cjs"));
473
+ var IdentityCreated = (0, import_app_framework4.lazy)(() => import("./identity-created-XU4HFV2T.cjs"));
474
+ var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-VJ7YV74L.cjs"));
475
+ var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-TEL5RW3N.cjs"));
476
+ var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-2H3S5TY5.cjs"));
477
+ var Schema = (0, import_app_framework4.lazy)(() => import("./schema-PPJ5BZ3A.cjs"));
478
+ var Tools = (0, import_app_framework4.lazy)(() => import("./schema-tools-BLIMOZYY.cjs"));
479
+ var SpaceSettings = (0, import_app_framework4.lazy)(() => import("./settings-WVFP2UEP.cjs"));
480
+ var SpaceState = (0, import_app_framework4.lazy)(() => import("./state-5KX6WBJH.cjs"));
481
+ var SpacesReady = (0, import_app_framework4.lazy)(() => import("./spaces-ready-7DNZSUOG.cjs"));
440
482
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
441
483
  var CREATE_OBJECT_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/CreateObjectDialog`;
442
484
  var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavigate }) => {
@@ -447,7 +489,7 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
447
489
  const spaces = (0, import_echo2.useSpaces)();
448
490
  const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
449
491
  const forms = (0, import_app_framework2.useCapabilities)(import_chunk_IKIDS6XF.SpaceCapabilities.ObjectForm);
450
- const resolve = (0, import_react3.useCallback)((typename2) => manager.context.getCapabilities(import_app_framework2.Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
492
+ const resolve = (0, import_react3.useCallback)((typename2) => manager.context.requestCapabilities(import_app_framework2.Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
451
493
  manager
452
494
  ]);
453
495
  const handleCreateObject = (0, import_react3.useCallback)(async ({ form, target: target2, data = {} }) => {
@@ -469,8 +511,8 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
469
511
  space
470
512
  }));
471
513
  const object = result.data?.object;
472
- if ((0, import_echo2.isLiveObject)(object)) {
473
- const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.AddObject, {
514
+ if ((0, import_echo2.isReactiveObject)(object)) {
515
+ const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_WDEIFDTX.SpaceAction.AddObject, {
474
516
  target: target2,
475
517
  object,
476
518
  hidden: form.hidden
@@ -526,16 +568,15 @@ var initialValues = {
526
568
  var CreateSpaceDialog = () => {
527
569
  const closeRef = (0, import_react5.useRef)(null);
528
570
  const { t } = (0, import_react_ui4.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
529
- const { dispatch } = (0, import_app_framework4.useIntentDispatcher)();
530
- const inputSurfaceLookup = (0, import_chunk_DQN4ZQDW.useInputSurfaceLookup)();
571
+ const { dispatch } = (0, import_app_framework5.useIntentDispatcher)();
531
572
  const handleCreateSpace = (0, import_react5.useCallback)(async (data) => {
532
573
  const program = import_effect2.Effect.gen(function* () {
533
- const { space } = yield* dispatch((0, import_app_framework4.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.Create, data));
534
- yield* dispatch((0, import_app_framework4.createIntent)(import_app_framework4.LayoutAction.SwitchWorkspace, {
574
+ const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Create, data));
575
+ yield* dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.SwitchWorkspace, {
535
576
  part: "workspace",
536
577
  subject: space.id
537
578
  }));
538
- yield* dispatch((0, import_app_framework4.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.OpenCreateObject, {
579
+ yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateObject, {
539
580
  target: space
540
581
  }));
541
582
  });
@@ -568,8 +609,7 @@ var CreateSpaceDialog = () => {
568
609
  classNames: "!p-0",
569
610
  autoFocus: true,
570
611
  values: initialValues,
571
- schema: import_chunk_K6ZO4WDJ.SpaceForm,
572
- lookupComponent: inputSurfaceLookup,
612
+ schema: import_chunk_WDEIFDTX.SpaceForm,
573
613
  onSave: handleCreateSpace
574
614
  })))
575
615
  );
@@ -582,7 +622,7 @@ var CollectionMain = ({ collection }) => {
582
622
  "data-testid": "composer.firstRunMessage"
583
623
  }, /* @__PURE__ */ import_react6.default.createElement("p", {
584
624
  role: "alert",
585
- className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionMessage, "rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
625
+ className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
586
626
  }, collection.name ?? t("unnamed collection label")));
587
627
  };
588
628
  var CollectionSection = ({ collection }) => {
@@ -595,9 +635,9 @@ var CollectionSection = ({ collection }) => {
595
635
  };
596
636
  var JOIN_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/JoinDialog`;
597
637
  var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
598
- const { dispatchPromise: dispatch } = (0, import_app_framework5.useIntentDispatcher)();
638
+ const { dispatchPromise: dispatch } = (0, import_app_framework6.useIntentDispatcher)();
599
639
  const client = (0, import_react_client3.useClient)();
600
- const { graph } = (0, import_app_framework5.useAppGraph)();
640
+ const { graph } = (0, import_app_framework6.useAppGraph)();
601
641
  const { t } = (0, import_react_ui7.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
602
642
  const handleDone = (0, import_react8.useCallback)(async (result) => {
603
643
  const spaceKey = result?.spaceKey;
@@ -605,7 +645,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
605
645
  return;
606
646
  }
607
647
  await Promise.all([
608
- dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.AddToast, {
648
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.AddToast, {
609
649
  part: "toast",
610
650
  subject: {
611
651
  id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/join-success`,
@@ -624,7 +664,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
624
664
  ]
625
665
  }
626
666
  })),
627
- dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.UpdateDialog, {
667
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.UpdateDialog, {
628
668
  part: "dialog",
629
669
  options: {
630
670
  state: false
@@ -642,7 +682,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
642
682
  });
643
683
  space = await trigger.wait();
644
684
  }
645
- await dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.SwitchWorkspace, {
685
+ await dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.SwitchWorkspace, {
646
686
  part: "workspace",
647
687
  subject: space.id
648
688
  }));
@@ -653,13 +693,13 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
653
693
  }).catch(() => {
654
694
  });
655
695
  await Promise.all([
656
- dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.Open, {
696
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.Open, {
657
697
  part: "main",
658
698
  subject: [
659
699
  target
660
700
  ]
661
701
  })),
662
- dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.Expose, {
702
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.Expose, {
663
703
  part: "navigation",
664
704
  subject: target
665
705
  }))
@@ -667,7 +707,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
667
707
  }
668
708
  await onDone?.(result);
669
709
  if (space) {
670
- await dispatch((0, import_app_framework5.createIntent)(import_types.ObservabilityAction.SendEvent, {
710
+ await dispatch((0, import_app_framework6.createIntent)(import_types.ObservabilityAction.SendEvent, {
671
711
  name: "space.join",
672
712
  properties: {
673
713
  spaceId: space.id
@@ -704,7 +744,7 @@ var handleInvitationEvent = (invitation, subscription) => {
704
744
  authCode: invitation.authCode
705
745
  }), void 0, {
706
746
  F: __dxlog_file3,
707
- L: 40,
747
+ L: 38,
708
748
  S: void 0,
709
749
  C: (f, a) => f(...a)
710
750
  });
@@ -712,9 +752,8 @@ var handleInvitationEvent = (invitation, subscription) => {
712
752
  }
713
753
  };
714
754
  var MembersContainer = ({ space, createInvitationUrl }) => {
715
- const { t } = (0, import_react_ui8.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
755
+ const { t } = (0, import_react_ui8.useTranslation)("os");
716
756
  const config = (0, import_react_client4.useConfig)();
717
- const { dispatchPromise: dispatch } = (0, import_app_framework6.useIntentDispatcher)();
718
757
  const invitations = (0, import_echo3.useSpaceInvitations)(space.key);
719
758
  const visibleInvitations = invitations?.filter((invitation) => ![
720
759
  import_invitations.Invitation.State.CANCELLED
@@ -724,60 +763,43 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
724
763
  setInternalActiveAction(nextAction);
725
764
  localStorage.setItem(activeActionKey, nextAction);
726
765
  };
727
- const target = space.properties[import_chunk_K6ZO4WDJ.CollectionType.typename]?.target?.objects[0]?.target;
728
- const locked = space.properties[import_chunk_SCATWJKX.COMPOSER_SPACE_LOCK];
729
- const handleChangeLocked = (0, import_react11.useCallback)(() => {
730
- space.properties[import_chunk_SCATWJKX.COMPOSER_SPACE_LOCK] = !locked;
731
- }, [
732
- locked,
733
- space
734
- ]);
766
+ const target = space.properties[import_chunk_WDEIFDTX.CollectionType.typename]?.target?.objects[0]?.target;
735
767
  const inviteActions = (0, import_react11.useMemo)(() => ({
736
768
  inviteOne: {
737
- label: t("invite one label", {
738
- ns: "os"
739
- }),
740
- description: t("invite one description", {
741
- ns: "os"
742
- }),
769
+ label: t("invite one label"),
770
+ description: t("invite one description"),
743
771
  icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
744
772
  icon: "ph--user-plus--regular",
745
773
  size: 5
746
774
  }),
747
775
  testId: "membersContainer.inviteOne",
748
- onClick: async () => {
749
- const { data: invitation } = await dispatch((0, import_app_framework6.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.Share, {
750
- space,
776
+ onClick: () => {
777
+ const invitation = space.share?.({
751
778
  type: import_invitations.Invitation.Type.INTERACTIVE,
752
779
  authMethod: import_invitations.Invitation.AuthMethod.SHARED_SECRET,
753
780
  multiUse: false,
754
781
  target: target && (0, import_echo3.fullyQualifiedId)(target)
755
- }));
782
+ });
756
783
  if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
757
784
  const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
758
785
  }
759
786
  }
760
787
  },
761
788
  inviteMany: {
762
- label: t("invite many label", {
763
- ns: "os"
764
- }),
765
- description: t("invite many description", {
766
- ns: "os"
767
- }),
789
+ label: t("invite many label"),
790
+ description: t("invite many description"),
768
791
  icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
769
792
  icon: "ph--users-three--regular",
770
793
  size: 5
771
794
  }),
772
795
  testId: "membersContainer.inviteMany",
773
- onClick: async () => {
774
- const { data: invitation } = await dispatch((0, import_app_framework6.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.Share, {
775
- space,
796
+ onClick: () => {
797
+ const invitation = space.share?.({
776
798
  type: import_invitations.Invitation.Type.DELEGATED,
777
799
  authMethod: import_invitations.Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
778
800
  multiUse: true,
779
801
  target: target && (0, import_echo3.fullyQualifiedId)(target)
780
- }));
802
+ });
781
803
  if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
782
804
  const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
783
805
  }
@@ -796,27 +818,33 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
796
818
  setSelectedInvitation(null);
797
819
  };
798
820
  return /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Clipboard.Provider, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_stack.StackItem.Content, {
799
- classNames: "block overflow-y-auto"
800
- }, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlPage, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlSection, {
801
- title: t("members verbose label"),
802
- description: t("members description")
821
+ classNames: "p-2 block overflow-y-auto"
822
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlSection, {
823
+ title: t("members verbose label", {
824
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
825
+ }),
826
+ description: t("members description", {
827
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
828
+ })
803
829
  }, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrame, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
804
- title: t("members label")
830
+ title: t("members label", {
831
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
832
+ })
805
833
  }, /* @__PURE__ */ import_react11.default.createElement(import_react12.SpaceMemberList, {
806
834
  spaceKey: space.key,
807
835
  includeSelf: true
808
- })), locked && /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
809
- title: t("invitations label")
810
- }, /* @__PURE__ */ import_react11.default.createElement("p", {
811
- className: "text-description mbe-2"
812
- }, t("locked space description"))), !locked && /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
813
- title: t("invitations label")
836
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
837
+ title: t("invitations label", {
838
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
839
+ })
814
840
  }, selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(InvitationSection, {
815
841
  ...selectedInvitation,
816
842
  onBack: handleBack
817
843
  }), !selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
818
844
  className: "text-description mbe-2"
819
- }, t("space invitation description")), /* @__PURE__ */ import_react11.default.createElement(import_react12.InvitationList, {
845
+ }, t("space invitation description", {
846
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
847
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react12.InvitationList, {
820
848
  className: "mb-2",
821
849
  send: handleSend,
822
850
  invitations: visibleInvitations ?? [],
@@ -827,15 +855,6 @@ var MembersContainer = ({ space, createInvitationUrl }) => {
827
855
  activeAction,
828
856
  onChangeActiveAction: setActiveAction,
829
857
  "data-testid": "membersContainer.createInvitation"
830
- })))), /* @__PURE__ */ import_react11.default.createElement("div", {
831
- className: "justify-center gap-4 p-0 mbs-4 container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]"
832
- }, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlItemInput, {
833
- title: t("space locked label"),
834
- description: t("space locked description")
835
- }, /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Input.Switch, {
836
- checked: locked,
837
- onCheckedChange: handleChangeLocked,
838
- classNames: "justify-self-end"
839
858
  })))))));
840
859
  };
841
860
  var InvitationSection = ({ state = import_invitations.Invitation.State.INIT, authCode, invitationId = "never", url = "never", onBack }) => {
@@ -925,7 +944,7 @@ var MenuFooter = ({ object }) => {
925
944
  const { t } = (0, import_react_ui9.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
926
945
  const client = (0, import_react_client5.useClient)();
927
946
  const space = (0, import_echo4.getSpace)(object);
928
- const spaceName = space ? (0, import_chunk_SCATWJKX.getSpaceDisplayName)(space, {
947
+ const spaceName = space ? (0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
929
948
  personal: client.spaces.default === space
930
949
  }) : "";
931
950
  return space ? /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(import_react_ui9.DropdownMenu.Separator, null), /* @__PURE__ */ import_react14.default.createElement(import_react_ui9.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react14.default.createElement("dl", {
@@ -938,12 +957,93 @@ var MenuFooter = ({ object }) => {
938
957
  className: "inline-block mie-1"
939
958
  }), (0, import_react_ui9.toLocalizedString)(spaceName, t)))) : null;
940
959
  };
960
+ var ForeignKeys = ({ keys, onDelete }) => {
961
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.List, {
962
+ classNames: "flex flex-col gap-2"
963
+ }, keys.map((key) => /* @__PURE__ */ import_react17.default.createElement(KeyItem, {
964
+ key: key.id,
965
+ forignKey: key,
966
+ onDelete
967
+ })));
968
+ };
969
+ var KeyItem = ({ forignKey, onDelete }) => {
970
+ const { t } = (0, import_react_ui12.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
971
+ const handleDelete = (0, import_react17.useCallback)(() => {
972
+ onDelete?.(forignKey);
973
+ }, [
974
+ forignKey,
975
+ onDelete
976
+ ]);
977
+ return /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Root, {
978
+ classNames: "px-2"
979
+ }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Heading, {
980
+ classNames: "flex flex-col grow truncate"
981
+ }, /* @__PURE__ */ import_react17.default.createElement("div", null, forignKey.source), /* @__PURE__ */ import_react17.default.createElement("div", {
982
+ className: "text-description text-sm truncate"
983
+ }, forignKey.id)), /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.ListItem.Endcap, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui12.IconButton, {
984
+ iconOnly: true,
985
+ icon: "ph--x--regular",
986
+ variant: "ghost",
987
+ label: t("delete key"),
988
+ onClick: handleDelete
989
+ })));
990
+ };
991
+ var initialValues2 = {
992
+ source: "",
993
+ id: ""
994
+ };
995
+ var AdvancedObjectSettings = ({ object }) => {
996
+ const { t } = (0, import_react_ui11.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
997
+ const [adding, setAdding] = (0, import_react16.useState)(false);
998
+ const keys = (0, import_echo5.getMeta)(object).keys;
999
+ const handleNew = (0, import_react16.useCallback)(() => setAdding(true), []);
1000
+ const handleCancel = (0, import_react16.useCallback)(() => setAdding(false), []);
1001
+ const handleSave = (0, import_react16.useCallback)((key) => {
1002
+ const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
1003
+ if (index === -1) {
1004
+ keys.push(key);
1005
+ }
1006
+ setAdding(false);
1007
+ }, [
1008
+ keys
1009
+ ]);
1010
+ const handleDelete = (0, import_react16.useCallback)((key) => {
1011
+ const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
1012
+ if (index !== -1) {
1013
+ keys.splice(index, 1);
1014
+ }
1015
+ }, [
1016
+ keys
1017
+ ]);
1018
+ return /* @__PURE__ */ import_react16.default.createElement(import_react16.default.Fragment, null, /* @__PURE__ */ import_react16.default.createElement("div", {
1019
+ className: "p-2 flex flex-col gap-4"
1020
+ }, /* @__PURE__ */ import_react16.default.createElement("h2", null, t("advanced settings label")), /* @__PURE__ */ import_react16.default.createElement("div", {
1021
+ className: "flex items-center"
1022
+ }, /* @__PURE__ */ import_react16.default.createElement("h3", {
1023
+ className: "text-sm font-semibold"
1024
+ }, t("foreign keys")), /* @__PURE__ */ import_react16.default.createElement("div", {
1025
+ className: "grow"
1026
+ }), /* @__PURE__ */ import_react16.default.createElement(import_react_ui11.IconButton, {
1027
+ classNames: adding && "invisible",
1028
+ icon: "ph--plus--regular",
1029
+ label: t("add key"),
1030
+ onClick: handleNew
1031
+ })), !adding && /* @__PURE__ */ import_react16.default.createElement(ForeignKeys, {
1032
+ keys,
1033
+ onDelete: handleDelete
1034
+ })), adding && /* @__PURE__ */ import_react16.default.createElement(import_react_ui_form4.Form, {
1035
+ schema: import_echo_schema2.ForeignKeySchema,
1036
+ values: initialValues2,
1037
+ onSave: handleSave,
1038
+ onCancel: handleCancel
1039
+ }));
1040
+ };
941
1041
  var BaseObjectSettings = ({ classNames, children, object }) => {
942
- const { t } = (0, import_react_ui11.useTranslation)(import_chunk_6P2DB4QQ.meta.id);
943
- const inputRef = (0, import_react16.useRef)(null);
944
- return /* @__PURE__ */ import_react16.default.createElement("form", {
1042
+ const { t } = (0, import_react_ui13.useTranslation)(import_chunk_6P2DB4QQ.meta.id);
1043
+ const inputRef = (0, import_react18.useRef)(null);
1044
+ return /* @__PURE__ */ import_react18.default.createElement("form", {
945
1045
  className: (0, import_react_ui_theme5.mx)("flex flex-col p-2 gap-2", classNames)
946
- }, /* @__PURE__ */ import_react16.default.createElement(import_react_ui11.Input.Root, null, /* @__PURE__ */ import_react16.default.createElement(import_react_ui11.Input.Label, null, t("name label")), /* @__PURE__ */ import_react16.default.createElement(import_react_ui11.Input.TextInput, {
1046
+ }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui13.Input.Root, null, /* @__PURE__ */ import_react18.default.createElement(import_react_ui13.Input.Label, null, t("name label")), /* @__PURE__ */ import_react18.default.createElement(import_react_ui13.Input.TextInput, {
947
1047
  ref: inputRef,
948
1048
  placeholder: t("name placeholder"),
949
1049
  value: object.name ?? "",
@@ -976,6 +1076,8 @@ var ObjectSettingsContainer = ({ object, role }) => {
976
1076
  })), /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
977
1077
  role: "object-settings",
978
1078
  data
1079
+ }), /* @__PURE__ */ import_react15.default.createElement(AdvancedObjectSettings, {
1080
+ object
979
1081
  }))));
980
1082
  };
981
1083
  var Status;
@@ -985,12 +1087,12 @@ var Status;
985
1087
  Status2[Status2["ERROR"] = 2] = "ERROR";
986
1088
  })(Status || (Status = {}));
987
1089
  var PersistenceStatus = ({ db }) => {
988
- const { t } = (0, import_react_ui12.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
989
- const [displayMessage, setDisplayMessage] = (0, import_react18.useState)(false);
990
- const [status, naturalSetStatus] = (0, import_react18.useState)(0);
991
- const [prevStatus, setPrevStatus] = (0, import_react18.useState)(0);
1090
+ const { t } = (0, import_react_ui14.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1091
+ const [displayMessage, setDisplayMessage] = (0, import_react20.useState)(false);
1092
+ const [status, naturalSetStatus] = (0, import_react20.useState)(0);
1093
+ const [prevStatus, setPrevStatus] = (0, import_react20.useState)(0);
992
1094
  const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
993
- (0, import_react18.useEffect)(() => {
1095
+ (0, import_react20.useEffect)(() => {
994
1096
  setPrevStatus(status);
995
1097
  if (prevStatus !== status && status === 0) {
996
1098
  setDisplayMessage(true);
@@ -1002,44 +1104,82 @@ var PersistenceStatus = ({ db }) => {
1002
1104
  ]);
1003
1105
  switch (status) {
1004
1106
  case 2:
1005
- return /* @__PURE__ */ import_react18.default.createElement("div", {
1107
+ return /* @__PURE__ */ import_react20.default.createElement("div", {
1006
1108
  className: "flex items-center"
1007
- }, /* @__PURE__ */ import_react18.default.createElement(import_react17.Warning, {
1109
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.Warning, {
1008
1110
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1009
- }), /* @__PURE__ */ import_react18.default.createElement("span", {
1111
+ }), /* @__PURE__ */ import_react20.default.createElement("span", {
1010
1112
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.warningText)
1011
1113
  }, t("persistence error label")));
1012
1114
  case 1:
1013
- return /* @__PURE__ */ import_react18.default.createElement("div", {
1115
+ return /* @__PURE__ */ import_react20.default.createElement("div", {
1014
1116
  className: "flex items-center"
1015
- }, /* @__PURE__ */ import_react18.default.createElement(import_react17.ArrowsCounterClockwise, {
1117
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.ArrowsCounterClockwise, {
1016
1118
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1017
- }), /* @__PURE__ */ import_react18.default.createElement("span", {
1119
+ }), /* @__PURE__ */ import_react20.default.createElement("span", {
1018
1120
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
1019
1121
  }, t("persistence pending label")));
1020
1122
  case 0:
1021
1123
  default:
1022
- return /* @__PURE__ */ import_react18.default.createElement(import_react_ui12.Tooltip.Trigger, {
1023
- delayDuration: 400,
1124
+ return /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Root, {
1125
+ delayDuration: 400
1126
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Trigger, {
1024
1127
  role: "status",
1025
- content: t("persisted locally message"),
1026
1128
  className: "flex items-center"
1027
- }, /* @__PURE__ */ import_react18.default.createElement(import_react17.CheckCircle, {
1129
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.CheckCircle, {
1028
1130
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1029
- }), displayMessage && /* @__PURE__ */ import_react18.default.createElement("span", {
1131
+ }), displayMessage && /* @__PURE__ */ import_react20.default.createElement("span", {
1030
1132
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
1031
- }, t("persisted locally label")));
1133
+ }, t("persisted locally label"))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Content, null, t("persisted locally message"), /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Arrow, null))));
1032
1134
  }
1033
1135
  };
1136
+ var POPOVER_ADD_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
1137
+ var PopoverAddSpace = () => {
1138
+ const { t } = (0, import_react_ui15.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1139
+ const { dispatchPromise: dispatch } = (0, import_app_framework8.useIntentDispatcher)();
1140
+ return /* @__PURE__ */ import_react21.default.createElement("div", {
1141
+ role: "none",
1142
+ className: "grid grid-cols-1 gap-1 [&>button]:justify-start"
1143
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
1144
+ variant: "ghost",
1145
+ label: t("create space label"),
1146
+ icon: "ph--plus--regular",
1147
+ onClick: () => {
1148
+ void dispatch((0, import_app_framework8.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateSpace));
1149
+ void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
1150
+ part: "popover",
1151
+ options: {
1152
+ anchorId: "",
1153
+ state: false
1154
+ }
1155
+ }));
1156
+ },
1157
+ "data-testid": "spacePlugin.createSpace"
1158
+ }), /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
1159
+ variant: "ghost",
1160
+ label: t("join space label"),
1161
+ icon: "ph--sign-in--regular",
1162
+ onClick: () => {
1163
+ void dispatch((0, import_app_framework8.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Join));
1164
+ void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
1165
+ part: "popover",
1166
+ options: {
1167
+ anchorId: "",
1168
+ state: false
1169
+ }
1170
+ }));
1171
+ },
1172
+ "data-testid": "spacePlugin.joinSpace"
1173
+ }));
1174
+ };
1034
1175
  var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
1035
1176
  var POPOVER_RENAME_OBJECT = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameObject`;
1036
1177
  var PopoverRenameObject = ({ object: obj }) => {
1037
- const { t } = (0, import_react_ui13.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1038
- const doneButton = (0, import_react19.useRef)(null);
1178
+ const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1179
+ const doneButton = (0, import_react22.useRef)(null);
1039
1180
  const object = obj;
1040
- const [name, setName] = (0, import_react19.useState)(object.name || object.title || "");
1041
- const { dispatchPromise: dispatch } = (0, import_app_framework8.useIntentDispatcher)();
1042
- const handleDone = (0, import_react19.useCallback)(() => {
1181
+ const [name, setName] = (0, import_react22.useState)(object.name || object.title || "");
1182
+ const handleDone = (0, import_react22.useCallback)(() => {
1043
1183
  try {
1044
1184
  object.name = name;
1045
1185
  } catch {
@@ -1050,84 +1190,69 @@ var PopoverRenameObject = ({ object: obj }) => {
1050
1190
  err
1051
1191
  }, {
1052
1192
  F: __dxlog_file4,
1053
- L: 32,
1193
+ L: 30,
1054
1194
  S: void 0,
1055
1195
  C: (f, a) => f(...a)
1056
1196
  });
1057
1197
  }
1058
1198
  }
1059
- void dispatch((0, import_app_framework8.createIntent)(import_app_framework8.LayoutAction.UpdatePopover, {
1060
- part: "popover",
1061
- options: {
1062
- variant: "react",
1063
- anchorId: "",
1064
- state: false
1065
- }
1066
- }));
1067
1199
  }, [
1068
1200
  object,
1069
1201
  name
1070
1202
  ]);
1071
- return /* @__PURE__ */ import_react19.default.createElement("div", {
1203
+ return /* @__PURE__ */ import_react22.default.createElement("div", {
1072
1204
  role: "none",
1073
1205
  className: "p-1 flex gap-2"
1074
- }, /* @__PURE__ */ import_react19.default.createElement("div", {
1206
+ }, /* @__PURE__ */ import_react22.default.createElement("div", {
1075
1207
  role: "none",
1076
1208
  className: "flex-1"
1077
- }, /* @__PURE__ */ import_react19.default.createElement(import_react_ui13.Input.Root, null, /* @__PURE__ */ import_react19.default.createElement(import_react_ui13.Input.Label, {
1209
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Label, {
1078
1210
  srOnly: true
1079
- }, t("object name label")), /* @__PURE__ */ import_react19.default.createElement(import_react_ui13.Input.TextInput, {
1211
+ }, t("object name label")), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.TextInput, {
1080
1212
  placeholder: t("object placeholder"),
1081
1213
  value: name,
1082
1214
  "data-testid": "spacePlugin.renameObject.input",
1083
1215
  onChange: ({ target: { value } }) => setName(value),
1084
1216
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1085
- }))), /* @__PURE__ */ import_react19.default.createElement(import_react_ui13.Button, {
1217
+ }))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Close, {
1218
+ asChild: true
1219
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Button, {
1086
1220
  ref: doneButton,
1087
1221
  classNames: "self-stretch",
1088
1222
  onClick: handleDone
1089
1223
  }, t("done label", {
1090
1224
  ns: "os"
1091
- })));
1225
+ }))));
1092
1226
  };
1093
1227
  var POPOVER_RENAME_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
1094
1228
  var PopoverRenameSpace = ({ space }) => {
1095
- const { t } = (0, import_react_ui14.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1096
- const doneButton = (0, import_react20.useRef)(null);
1097
- const [name, setName] = (0, import_react20.useState)(space.properties.name ?? "");
1098
- const { dispatchPromise: dispatch } = (0, import_app_framework9.useIntentDispatcher)();
1099
- const handleDone = (0, import_react20.useCallback)(() => {
1229
+ const { t } = (0, import_react_ui17.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1230
+ const doneButton = (0, import_react23.useRef)(null);
1231
+ const [name, setName] = (0, import_react23.useState)(space.properties.name ?? "");
1232
+ const handleDone = (0, import_react23.useCallback)(() => {
1100
1233
  space.properties.name = name;
1101
- void dispatch((0, import_app_framework9.createIntent)(import_app_framework9.LayoutAction.UpdatePopover, {
1102
- part: "popover",
1103
- options: {
1104
- variant: "react",
1105
- anchorId: "",
1106
- state: false
1107
- }
1108
- }));
1109
1234
  }, [
1110
1235
  space,
1111
1236
  name
1112
1237
  ]);
1113
- return /* @__PURE__ */ import_react20.default.createElement("div", {
1238
+ return /* @__PURE__ */ import_react23.default.createElement("div", {
1114
1239
  role: "none",
1115
1240
  className: "p-1 flex gap-2"
1116
- }, /* @__PURE__ */ import_react20.default.createElement("div", {
1241
+ }, /* @__PURE__ */ import_react23.default.createElement("div", {
1117
1242
  role: "none",
1118
1243
  className: "flex-1"
1119
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Input.Root, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Input.Label, {
1244
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Root, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Label, {
1120
1245
  srOnly: true
1121
- }, t("space name label")), /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Input.TextInput, {
1246
+ }, t("space name label")), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.TextInput, {
1122
1247
  defaultValue: space.properties.name ?? "",
1123
1248
  placeholder: t("unnamed space label"),
1124
1249
  onChange: ({ target: { value } }) => setName(value),
1125
1250
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
1126
1251
  // Currently this is not possible because Radix does not expose the popover context.
1127
1252
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1128
- }))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Popover.Close, {
1253
+ }))), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Popover.Close, {
1129
1254
  asChild: true
1130
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Button, {
1255
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Button, {
1131
1256
  ref: doneButton,
1132
1257
  classNames: "self-stretch",
1133
1258
  onClick: handleDone
@@ -1135,35 +1260,55 @@ var PopoverRenameSpace = ({ space }) => {
1135
1260
  ns: "os"
1136
1261
  }))));
1137
1262
  };
1138
- var useQuerySpaceSchemas = (space) => {
1139
- const [schemas, setSchemas] = (0, import_react21.useState)([]);
1140
- (0, import_react21.useEffect)(() => {
1141
- const query = space.db.schemaRegistry.query();
1142
- const initialResults = query.runSync();
1143
- setSchemas(initialResults);
1144
- const unsubscribe = query.subscribe(() => setSchemas(query.results));
1145
- return () => unsubscribe();
1263
+ var ShareSpaceButton = ({ space }) => {
1264
+ const { dispatchPromise: dispatch } = (0, import_app_framework9.useIntentDispatcher)();
1265
+ return /* @__PURE__ */ import_react24.default.createElement(ShareSpaceButtonImpl, {
1266
+ onClick: () => dispatch((0, import_app_framework9.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Share, {
1267
+ space
1268
+ }))
1269
+ });
1270
+ };
1271
+ var ShareSpaceButtonImpl = ({ onClick }) => {
1272
+ const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1273
+ return /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.IconButton, {
1274
+ "data-testid": "spacePlugin.shareSpaceButton",
1275
+ icon: "ph--users--regular",
1276
+ label: t("share space label"),
1277
+ onClick
1278
+ });
1279
+ };
1280
+ var usePath = (graph, id, timeout) => {
1281
+ const [pathState, setPathState] = (0, import_react26.useState)(id ? graph.getPath({
1282
+ target: id
1283
+ }) : void 0);
1284
+ (0, import_react26.useEffect)(() => {
1285
+ if (!id && pathState) {
1286
+ setPathState(void 0);
1287
+ }
1288
+ if (pathState?.at(-1) === id || !id) {
1289
+ return;
1290
+ }
1291
+ const frame = requestAnimationFrame(async () => {
1292
+ try {
1293
+ const path = await graph.waitForPath({
1294
+ target: id
1295
+ }, {
1296
+ timeout
1297
+ });
1298
+ if (path) {
1299
+ setPathState(path);
1300
+ }
1301
+ } catch {
1302
+ }
1303
+ });
1304
+ return () => cancelAnimationFrame(frame);
1146
1305
  }, [
1147
- space
1306
+ graph,
1307
+ id,
1308
+ timeout,
1309
+ pathState
1148
1310
  ]);
1149
- return schemas;
1150
- };
1151
- var SchemaContainer = ({ space }) => {
1152
- const { t } = (0, import_react_ui15.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1153
- const schemas = useQuerySpaceSchemas(space);
1154
- return /* @__PURE__ */ import_react21.default.createElement(import_react_ui_stack3.StackItem.Content, {
1155
- classNames: "block overflow-y-auto"
1156
- }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui_form4.ControlPage, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui_form4.ControlSection, {
1157
- title: t("schema verbose label"),
1158
- description: t("schema description")
1159
- }, /* @__PURE__ */ import_react21.default.createElement("div", {
1160
- role: "none",
1161
- className: import_react_ui_form4.controlItemClasses
1162
- }, schemas.length === 0 && /* @__PURE__ */ import_react21.default.createElement("div", {
1163
- className: "text-center plb-4"
1164
- }, t("no schemas found message")), schemas.map((schema) => /* @__PURE__ */ import_react21.default.createElement("div", {
1165
- key: schema.id
1166
- }, /* @__PURE__ */ import_react21.default.createElement("div", null, schema.typename)))))));
1311
+ return pathState;
1167
1312
  };
1168
1313
  var REFRESH_INTERVAL = 5e3;
1169
1314
  var ACTIVITY_DURATION = 3e4;
@@ -1173,21 +1318,21 @@ var SpacePresence = ({ object, spaceKey }) => {
1173
1318
  const spaceState = (0, import_app_framework10.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
1174
1319
  const client = (0, import_react_client6.useClient)();
1175
1320
  const identity = (0, import_halo.useIdentity)();
1176
- const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo5.getSpace)(object);
1177
- const spaceMembers = (0, import_echo5.useMembers)(space?.key);
1178
- const [_moment, setMoment] = (0, import_react22.useState)(Date.now());
1179
- (0, import_react22.useEffect)(() => {
1321
+ const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo6.getSpace)(object);
1322
+ const spaceMembers = (0, import_echo6.useMembers)(space?.key);
1323
+ const [_moment, setMoment] = (0, import_react25.useState)(Date.now());
1324
+ (0, import_react25.useEffect)(() => {
1180
1325
  const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
1181
1326
  return () => clearInterval(interval);
1182
1327
  }, []);
1183
- const memberOnline = (0, import_react22.useCallback)((member) => member.presence === 1, []);
1184
- const memberIsNotSelf = (0, import_react22.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1328
+ const memberOnline = (0, import_react25.useCallback)((member) => member.presence === 1, []);
1329
+ const memberIsNotSelf = (0, import_react25.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1185
1330
  identity?.identityKey
1186
1331
  ]);
1187
1332
  if (!identity || !spaceState || !space) {
1188
1333
  return null;
1189
1334
  }
1190
- const currentObjectViewers = spaceState.viewersByObject[(0, import_echo5.fullyQualifiedId)(object)] ?? noViewers;
1335
+ const currentObjectViewers = spaceState.viewersByObject[(0, import_echo6.fullyQualifiedId)(object)] ?? noViewers;
1191
1336
  const membersForObject = spaceMembers.filter((member) => memberOnline(member) && memberIsNotSelf(member)).filter((member) => currentObjectViewers.has(member.identity.identityKey)).map((member) => {
1192
1337
  const objectView = currentObjectViewers.get(member.identity.identityKey);
1193
1338
  const lastSeen = objectView?.lastSeen ?? -Infinity;
@@ -1198,90 +1343,86 @@ var SpacePresence = ({ object, spaceKey }) => {
1198
1343
  lastSeen
1199
1344
  };
1200
1345
  }).toSorted((a, b) => a.lastSeen - b.lastSeen);
1201
- return /* @__PURE__ */ import_react22.default.createElement(FullPresence, {
1346
+ return /* @__PURE__ */ import_react25.default.createElement(FullPresence, {
1202
1347
  members: membersForObject
1203
1348
  });
1204
1349
  };
1205
1350
  var FullPresence = (props) => {
1206
1351
  const { size = 9, onMemberClick } = props;
1207
- const members = (0, import_react_ui16.useDefaultValue)(props.members, () => []);
1352
+ const members = (0, import_react_ui19.useDefaultValue)(props.members, () => []);
1208
1353
  if (members.length === 0) {
1209
1354
  return null;
1210
1355
  }
1211
- return /* @__PURE__ */ import_react22.default.createElement("div", {
1356
+ return /* @__PURE__ */ import_react25.default.createElement("div", {
1212
1357
  className: "dx-avatar-group",
1213
1358
  "data-testid": "spacePlugin.presence"
1214
- }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Tooltip.Trigger, {
1215
- key: member.identity.identityKey.toHex(),
1216
- side: "bottom",
1217
- content: getName(member.identity),
1218
- className: "grid focus:outline-none"
1219
- }, /* @__PURE__ */ import_react22.default.createElement(PresenceAvatar, {
1359
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, {
1360
+ key: member.identity.identityKey.toHex()
1361
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, null, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
1220
1362
  identity: member.identity,
1221
1363
  match: member.currentlyAttended,
1222
1364
  index: members.length - i,
1223
1365
  onClick: () => onMemberClick?.(member),
1224
1366
  size
1225
- }))), members.length > 3 && /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Trigger, {
1226
- className: "grid focus:outline-none"
1227
- }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Avatar.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Avatar.Content, {
1367
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
1368
+ side: "bottom"
1369
+ }, /* @__PURE__ */ import_react25.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Content, {
1228
1370
  status: "inactive",
1229
1371
  style: {
1230
1372
  zIndex: members.length - 4
1231
1373
  },
1232
- fallback: `+${members.length - 3}`,
1233
- size
1234
- }))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Content, {
1374
+ fallback: `+${members.length - 3}`
1375
+ }))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
1235
1376
  side: "bottom"
1236
- }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Arrow, null), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.List, {
1377
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.List, {
1237
1378
  classNames: "max-h-56 overflow-y-auto"
1238
- }, members.map((member) => /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.ListItem.Root, {
1379
+ }, members.map((member) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.ListItem.Root, {
1239
1380
  key: member.identity.identityKey.toHex(),
1240
1381
  classNames: "flex gap-2 items-center cursor-pointer mbe-2",
1241
1382
  onClick: () => onMemberClick?.(member),
1242
1383
  "data-testid": "identity-list-item"
1243
- }, /* @__PURE__ */ import_react22.default.createElement(PresenceAvatar, {
1384
+ }, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
1244
1385
  identity: member.identity,
1245
1386
  size,
1246
1387
  showName: true,
1247
1388
  match: member.currentlyAttended
1248
1389
  }))))))));
1249
1390
  };
1250
- var PresenceAvatar = /* @__PURE__ */ (0, import_react22.forwardRef)(({ identity, showName, match, index, onClick, size }, forwardedRef) => {
1391
+ var PrensenceAvatar = ({ identity, showName, match, index, onClick, size }) => {
1251
1392
  const status = match ? "current" : "active";
1252
1393
  const fallbackValue = (0, import_util3.keyToFallback)(identity.identityKey);
1253
- return /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Avatar.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Avatar.Content, {
1394
+ return /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Content, {
1254
1395
  status,
1255
1396
  hue: identity.profile?.data?.hue || fallbackValue.hue,
1256
1397
  "data-testid": "spacePlugin.presence.member",
1257
1398
  "data-status": status,
1258
1399
  size,
1400
+ classNames: "mbs-2 mie-4",
1259
1401
  ...index ? {
1260
1402
  style: {
1261
1403
  zIndex: index
1262
1404
  }
1263
1405
  } : {},
1264
- onClick,
1265
- fallback: identity.profile?.data?.emoji || fallbackValue.emoji,
1266
- ref: forwardedRef
1267
- }), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Avatar.Label, {
1406
+ onClick: () => onClick?.(),
1407
+ fallback: identity.profile?.data?.emoji || fallbackValue.emoji
1408
+ }), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Label, {
1268
1409
  classNames: showName ? "text-sm truncate pli-2" : "sr-only"
1269
1410
  }, getName(identity)));
1270
- });
1411
+ };
1271
1412
  var SmallPresenceLive = ({ id, open, viewers }) => {
1272
1413
  const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention.useAttention)(id);
1273
1414
  const isAttended = hasAttention || isAncestor || isRelated;
1274
1415
  const { graph } = (0, import_app_framework10.useAppGraph)();
1275
1416
  const attended = (0, import_react_ui_attention.useAttended)();
1276
1417
  const startOfAttention = attended.at(-1);
1277
- const path = (0, import_chunk_DQN4ZQDW.usePath)(graph, startOfAttention);
1278
- const containsAttended = !open && !isAttended && id && import_effect3.Option.isSome(path) ? path.value.includes(id) : false;
1418
+ const path = usePath(graph, startOfAttention);
1419
+ const containsAttended = !open && !isAttended && id && path ? path.includes(id) : false;
1279
1420
  const getActiveViewers = (viewers2) => {
1280
1421
  const moment = Date.now();
1281
1422
  return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
1282
1423
  };
1283
- const [activeViewers, setActiveViewers] = (0, import_react22.useState)(viewers ? getActiveViewers(viewers) : []);
1284
- (0, import_react22.useEffect)(() => {
1424
+ const [activeViewers, setActiveViewers] = (0, import_react25.useState)(viewers ? getActiveViewers(viewers) : []);
1425
+ (0, import_react25.useEffect)(() => {
1285
1426
  if (viewers) {
1286
1427
  setActiveViewers(getActiveViewers(viewers));
1287
1428
  const interval = setInterval(() => {
@@ -1292,75 +1433,46 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1292
1433
  }, [
1293
1434
  viewers
1294
1435
  ]);
1295
- return /* @__PURE__ */ import_react22.default.createElement(SmallPresence, {
1436
+ return /* @__PURE__ */ import_react25.default.createElement(SmallPresence, {
1296
1437
  count: activeViewers.length,
1297
1438
  attended: isAttended,
1298
1439
  containsAttended
1299
1440
  });
1300
1441
  };
1301
1442
  var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1302
- const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1303
- return /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Tooltip.Trigger, {
1304
- asChild: true,
1305
- content: t("presence label", {
1306
- count
1307
- }),
1308
- side: "bottom"
1309
- }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui_attention.AttentionGlyph, {
1443
+ const { t } = (0, import_react_ui19.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1444
+ return /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, {
1445
+ asChild: true
1446
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_attention.AttentionGlyph, {
1310
1447
  attended,
1311
1448
  containsAttended,
1312
1449
  presence: count > 1 ? "many" : count === 1 ? "one" : "none",
1313
1450
  classNames: "self-center mie-1"
1314
- }));
1451
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
1452
+ side: "bottom"
1453
+ }, /* @__PURE__ */ import_react25.default.createElement("span", null, t("presence label", {
1454
+ count
1455
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null))));
1315
1456
  };
1316
1457
  var SpacePluginSettings = ({ settings }) => {
1317
- const { t } = (0, import_react_ui17.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1318
- const { dispatchPromise: dispatch } = (0, import_app_framework11.useIntentDispatcher)();
1319
- const client = (0, import_react_client7.useClient)();
1320
- const spaces = (0, import_echo6.useSpaces)({
1321
- all: settings.showHidden
1322
- });
1323
- return /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form5.DeprecatedFormContainer, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1458
+ const { t } = (0, import_react_ui20.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1459
+ return /* @__PURE__ */ import_react27.default.createElement(import_react_ui_form5.DeprecatedFormContainer, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1324
1460
  label: t("show hidden spaces label")
1325
- }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Switch, {
1461
+ }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui20.Input.Switch, {
1326
1462
  checked: settings.showHidden,
1327
1463
  onCheckedChange: (checked) => settings.showHidden = !!checked
1328
- })), /* @__PURE__ */ import_react23.default.createElement("div", {
1329
- role: "none"
1330
- }, /* @__PURE__ */ import_react23.default.createElement("h2", {
1331
- className: "text-xl my-4"
1332
- }, "Space Settings"), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.List, {
1333
- classNames: "max-w-md mx-auto"
1334
- }, spaces.map((space) => /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.ListItem.Root, {
1335
- key: space.id
1336
- }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.ListItem.Heading, {
1337
- classNames: "flex flex-col grow truncate mbe-2"
1338
- }, (0, import_react_ui17.toLocalizedString)((0, import_chunk_SCATWJKX.getSpaceDisplayName)(space, {
1339
- personal: space === client.spaces.default
1340
- }), t)), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.ListItem.Endcap, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Button, {
1341
- onClick: () => dispatch((0, import_app_framework11.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.OpenSettings, {
1342
- space
1343
- }))
1344
- }, t("open space settings label"))))))));
1464
+ })));
1345
1465
  };
1346
- var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsContainer.tsx";
1347
- var FormSchema = import_chunk_K6ZO4WDJ.SpaceForm.pipe(import_effect4.Schema.extend(import_effect4.Schema.Struct({
1348
- archived: import_effect4.Schema.Boolean.annotations({
1349
- title: "Archive space"
1350
- })
1351
- })));
1352
- var SpaceSettingsContainer = ({ space }) => {
1353
- const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1354
- const { dispatchPromise: dispatch } = (0, import_app_framework12.useIntentDispatcher)();
1355
- const client = (0, import_react_client8.useClient)();
1356
- const archived = (0, import_react_ui18.useMulticastObservable)(space.state) === import_echo7.SpaceState.SPACE_INACTIVE;
1357
- const [edgeReplication, setEdgeReplication] = (0, import_react24.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
1358
- const toggleEdgeReplication = (0, import_react24.useCallback)(async (next) => {
1466
+ var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpacePropertiesForm.tsx";
1467
+ var SpacePropertiesForm = ({ space }) => {
1468
+ const { t } = (0, import_react_ui21.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1469
+ const [edgeReplication, setEdgeReplication] = (0, import_react28.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
1470
+ const toggleEdgeReplication = (0, import_react28.useCallback)(async (next) => {
1359
1471
  setEdgeReplication(next);
1360
1472
  await space?.internal.setEdgeReplicationPreference(next ? import_metadata.EdgeReplicationSetting.ENABLED : import_metadata.EdgeReplicationSetting.DISABLED).catch((err) => {
1361
1473
  import_log3.log.catch(err, void 0, {
1362
1474
  F: __dxlog_file5,
1363
- L: 51,
1475
+ L: 34,
1364
1476
  S: void 0,
1365
1477
  C: (f, a) => f(...a)
1366
1478
  });
@@ -1369,7 +1481,7 @@ var SpaceSettingsContainer = ({ space }) => {
1369
1481
  }, [
1370
1482
  space
1371
1483
  ]);
1372
- const handleSave = (0, import_react24.useCallback)((properties) => {
1484
+ const handleSave = (0, import_react28.useCallback)((properties) => {
1373
1485
  void toggleEdgeReplication(properties.edgeReplication);
1374
1486
  if (properties.name !== space.properties.name) {
1375
1487
  space.properties.name = properties.name;
@@ -1380,46 +1492,31 @@ var SpaceSettingsContainer = ({ space }) => {
1380
1492
  if (properties.hue !== space.properties.hue) {
1381
1493
  space.properties.hue = properties.hue;
1382
1494
  }
1383
- if (properties.archived && !archived) {
1384
- void dispatch((0, import_effect4.pipe)((0, import_app_framework12.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.Close, {
1385
- space
1386
- }), (0, import_app_framework12.chain)(import_app_framework12.LayoutAction.SwitchWorkspace, {
1387
- part: "workspace",
1388
- subject: client.spaces.default.id
1389
- })));
1390
- } else if (!properties.archived && archived) {
1391
- void dispatch((0, import_app_framework12.createIntent)(import_chunk_K6ZO4WDJ.SpaceAction.Open, {
1392
- space
1393
- }));
1394
- }
1395
1495
  }, [
1396
1496
  space,
1397
- toggleEdgeReplication,
1398
- archived
1497
+ toggleEdgeReplication
1399
1498
  ]);
1400
- const values = (0, import_react24.useMemo)(() => ({
1499
+ const values = (0, import_react28.useMemo)(() => ({
1401
1500
  name: space.properties.name,
1402
1501
  icon: space.properties.icon,
1403
1502
  hue: space.properties.hue,
1404
- edgeReplication,
1405
- archived
1503
+ edgeReplication
1406
1504
  }), [
1407
1505
  space.properties.name,
1408
1506
  space.properties.icon,
1409
1507
  space.properties.hue,
1410
- edgeReplication,
1411
- archived
1508
+ edgeReplication
1412
1509
  ]);
1413
- const customElements = (0, import_react24.useMemo)(() => ({
1510
+ const customElements = (0, import_react28.useMemo)(() => ({
1414
1511
  name: ({ type, label, getValue, onValueChange }) => {
1415
- const handleChange = (0, import_react24.useCallback)(({ target: { value } }) => onValueChange(type, value), [
1512
+ const handleChange = (0, import_react28.useCallback)(({ target: { value } }) => onValueChange(type, value), [
1416
1513
  onValueChange,
1417
1514
  type
1418
1515
  ]);
1419
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlItemInput, {
1516
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
1420
1517
  title: label,
1421
1518
  description: t("display name description")
1422
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.Input.TextInput, {
1519
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.TextInput, {
1423
1520
  value: getValue(),
1424
1521
  onChange: handleChange,
1425
1522
  placeholder: t("display name input placeholder"),
@@ -1427,18 +1524,18 @@ var SpaceSettingsContainer = ({ space }) => {
1427
1524
  }));
1428
1525
  },
1429
1526
  icon: ({ type, label, getValue, onValueChange }) => {
1430
- const handleChange = (0, import_react24.useCallback)((nextEmoji) => onValueChange(type, nextEmoji), [
1527
+ const handleChange = (0, import_react28.useCallback)((nextEmoji) => onValueChange(type, nextEmoji), [
1431
1528
  onValueChange,
1432
1529
  type
1433
1530
  ]);
1434
- const handleEmojiReset = (0, import_react24.useCallback)(() => onValueChange(type, void 0), [
1531
+ const handleEmojiReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
1435
1532
  onValueChange,
1436
1533
  type
1437
1534
  ]);
1438
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlItem, {
1535
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
1439
1536
  title: label,
1440
1537
  description: t("icon description")
1441
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_pickers.IconPicker, {
1538
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.IconPicker, {
1442
1539
  value: getValue(),
1443
1540
  onChange: handleChange,
1444
1541
  onReset: handleEmojiReset,
@@ -1447,18 +1544,18 @@ var SpaceSettingsContainer = ({ space }) => {
1447
1544
  }));
1448
1545
  },
1449
1546
  hue: ({ type, label, getValue, onValueChange }) => {
1450
- const handleChange = (0, import_react24.useCallback)((nextHue) => onValueChange(type, nextHue), [
1547
+ const handleChange = (0, import_react28.useCallback)((nextHue) => onValueChange(type, nextHue), [
1451
1548
  onValueChange,
1452
1549
  type
1453
1550
  ]);
1454
- const handleHueReset = (0, import_react24.useCallback)(() => onValueChange(type, void 0), [
1551
+ const handleHueReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
1455
1552
  onValueChange,
1456
1553
  type
1457
1554
  ]);
1458
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlItem, {
1555
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
1459
1556
  title: label,
1460
1557
  description: t("hue description")
1461
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_pickers.HuePicker, {
1558
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.HuePicker, {
1462
1559
  value: getValue(),
1463
1560
  onChange: handleChange,
1464
1561
  onReset: handleHueReset,
@@ -1466,59 +1563,146 @@ var SpaceSettingsContainer = ({ space }) => {
1466
1563
  }));
1467
1564
  },
1468
1565
  edgeReplication: ({ type, label, getValue, onValueChange }) => {
1469
- const handleChange = (0, import_react24.useCallback)((checked) => onValueChange(type, checked), [
1566
+ const handleChange = (0, import_react28.useCallback)((checked) => onValueChange(type, checked), [
1470
1567
  onValueChange,
1471
1568
  type
1472
1569
  ]);
1473
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlItemInput, {
1570
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
1474
1571
  title: label,
1475
1572
  description: t("edge replication description")
1476
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.Input.Switch, {
1573
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.Switch, {
1477
1574
  checked: getValue(),
1478
1575
  onCheckedChange: handleChange,
1479
1576
  classNames: "justify-self-end"
1480
1577
  }));
1481
- },
1482
- archived: ({ type, label, getValue, onValueChange }) => {
1483
- const handleChange = (0, import_react24.useCallback)(() => onValueChange(type, !getValue()), [
1484
- onValueChange,
1485
- type,
1486
- getValue
1487
- ]);
1488
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlItemInput, {
1489
- title: label,
1490
- description: t("archive space description")
1491
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.Button, {
1492
- disabled: space === client.spaces.default,
1493
- onClick: handleChange
1494
- }, getValue() ? t("unarchive space label") : t("archive space label")));
1495
1578
  }
1496
1579
  }), [
1497
- t,
1498
- space
1580
+ t
1499
1581
  ]);
1500
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui_stack4.StackItem.Content, {
1501
- classNames: "block overflow-y-auto pli-2"
1502
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlPage, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.ControlSection, {
1503
- title: t("space properties settings verbose label", {
1504
- ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
1505
- }),
1506
- description: t("space properties settings description", {
1507
- ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
1508
- })
1509
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form6.Form, {
1510
- schema: FormSchema,
1582
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.Form, {
1583
+ schema: import_chunk_WDEIFDTX.SpaceForm,
1511
1584
  values,
1512
1585
  autoSave: true,
1513
1586
  onSave: handleSave,
1514
1587
  Custom: customElements,
1515
1588
  classNames: 'p-0 container-max-width [&_[role="form"]]:grid [&_[role="form"]]:grid-cols-1 md:[&_[role="form"]]:grid-cols-[1fr_min-content] [&_[role="form"]]:gap-4'
1516
- }))));
1589
+ });
1590
+ };
1591
+ var SPACE_SETTINGS_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/SpaceSettingsDialog`;
1592
+ var SpaceSettingsContainer = ({ space }) => {
1593
+ const { t } = (0, import_react_ui22.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1594
+ const state = (0, import_app_framework11.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
1595
+ const items = (0, import_app_framework11.useCapabilities)(import_chunk_IKIDS6XF.SpaceCapabilities.SettingsSection).toSorted(import_util4.byPosition);
1596
+ const data = (0, import_react29.useMemo)(() => ({
1597
+ subject: space
1598
+ }), [
1599
+ space
1600
+ ]);
1601
+ const handleOpenSectionChange = (0, import_react29.useCallback)((sections) => {
1602
+ state.spaceSettingsOpenSections.splice(0, state.spaceSettingsOpenSections.length, ...sections);
1603
+ }, [
1604
+ state
1605
+ ]);
1606
+ return /* @__PURE__ */ import_react29.default.createElement(import_react_ui_stack3.StackItem.Content, {
1607
+ classNames: "p-2 block overflow-y-auto"
1608
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.Root, {
1609
+ items,
1610
+ value: state.spaceSettingsOpenSections,
1611
+ onValueChange: handleOpenSectionChange
1612
+ }, ({ items: items2 }) => /* @__PURE__ */ import_react29.default.createElement(import_react29.default.Fragment, null, items2.map((item) => /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.Item, {
1613
+ key: item.id,
1614
+ item,
1615
+ classNames: "container-max-width"
1616
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.ItemHeader, {
1617
+ classNames: "pie-6",
1618
+ asChild: true
1619
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui_form7.ControlSectionHeading, {
1620
+ title: (0, import_react_ui22.toLocalizedString)(item.label, t)
1621
+ })), /* @__PURE__ */ import_react29.default.createElement(import_react_ui_list.Accordion.ItemBody, null, /* @__PURE__ */ import_react29.default.createElement(import_app_framework11.Surface, {
1622
+ role: `space-settings--${item.id}`,
1623
+ data
1624
+ })))))));
1625
+ };
1626
+ var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/sync-state.ts";
1627
+ var createEmptyEdgeSyncState = () => ({
1628
+ missingOnLocal: 0,
1629
+ missingOnRemote: 0,
1630
+ localDocumentCount: 0,
1631
+ remoteDocumentCount: 0,
1632
+ differentDocuments: 0
1633
+ });
1634
+ var getSyncSummary = (syncMap) => {
1635
+ return Object.entries(syncMap).reduce((summary, [_spaceId, peerState]) => {
1636
+ summary.missingOnLocal += peerState.missingOnLocal;
1637
+ summary.missingOnRemote += peerState.missingOnRemote;
1638
+ summary.localDocumentCount += peerState.localDocumentCount;
1639
+ summary.remoteDocumentCount += peerState.remoteDocumentCount;
1640
+ summary.differentDocuments += peerState.differentDocuments;
1641
+ return summary;
1642
+ }, createEmptyEdgeSyncState());
1643
+ };
1644
+ var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
1645
+ var useSyncState = () => {
1646
+ const client = (0, import_react_client8.useClient)();
1647
+ const [spaceState, setSpaceState] = (0, import_react31.useState)({});
1648
+ (0, import_react31.useEffect)(() => {
1649
+ const ctx = new import_context.Context(void 0, {
1650
+ F: __dxlog_file6,
1651
+ L: 48
1652
+ });
1653
+ const createSubscriptions = (spaces) => {
1654
+ for (const space of spaces) {
1655
+ if (spaceState[space.id]) {
1656
+ continue;
1657
+ }
1658
+ ctx.onDispose(space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
1659
+ const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
1660
+ if (syncState) {
1661
+ setSpaceState((spaceState2) => ({
1662
+ ...spaceState2,
1663
+ [space.id]: syncState
1664
+ }));
1665
+ }
1666
+ }));
1667
+ }
1668
+ };
1669
+ createSubscriptions(client.spaces.get());
1670
+ client.spaces.subscribe((spaces) => {
1671
+ createSubscriptions(spaces);
1672
+ });
1673
+ return () => {
1674
+ void ctx.dispose();
1675
+ };
1676
+ }, [
1677
+ client
1678
+ ]);
1679
+ return spaceState;
1680
+ };
1681
+ var useSpaceSyncState = (space) => {
1682
+ const [spaceState, setSpaceState] = (0, import_react31.useState)();
1683
+ (0, import_react31.useEffect)(() => {
1684
+ const ctx = new import_context.Context(void 0, {
1685
+ F: __dxlog_file6,
1686
+ L: 87
1687
+ });
1688
+ space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
1689
+ const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
1690
+ if (syncState) {
1691
+ setSpaceState(syncState);
1692
+ }
1693
+ });
1694
+ return () => {
1695
+ void ctx.dispose();
1696
+ };
1697
+ }, [
1698
+ space
1699
+ ]);
1700
+ return spaceState;
1517
1701
  };
1518
1702
  var useEdgeStatus = () => {
1519
- const [status, setStatus] = (0, import_react25.useState)(import_services.EdgeStatus.NOT_CONNECTED);
1520
- const client = (0, import_react_client9.useClient)();
1521
- (0, import_react25.useEffect)(() => {
1703
+ const [status, setStatus] = (0, import_react30.useState)(import_services.QueryEdgeStatusResponse.EdgeStatus.NOT_CONNECTED);
1704
+ const client = (0, import_react_client7.useClient)();
1705
+ (0, import_react30.useEffect)(() => {
1522
1706
  client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
1523
1707
  setStatus(status2);
1524
1708
  });
@@ -1528,31 +1712,136 @@ var useEdgeStatus = () => {
1528
1712
  return status;
1529
1713
  };
1530
1714
  var InlineSyncStatus = ({ space, open }) => {
1531
- const { t } = (0, import_react_ui19.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1715
+ const { t } = (0, import_react_ui23.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1532
1716
  const id = space.id;
1533
1717
  const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention2.useAttention)(id);
1534
1718
  const isAttended = hasAttention || isAncestor || isRelated;
1535
- const { graph } = (0, import_app_framework13.useAppGraph)();
1719
+ const { graph } = (0, import_app_framework12.useAppGraph)();
1536
1720
  const attended = (0, import_react_ui_attention2.useAttended)();
1537
1721
  const startOfAttention = attended.at(-1);
1538
- const path = (0, import_chunk_DQN4ZQDW.usePath)(graph, startOfAttention);
1539
- const containsAttended = !open && !isAttended && id && import_effect5.Option.isSome(path) ? path.value.includes(id) : false;
1540
- const connectedToEdge = useEdgeStatus() === import_services.EdgeStatus.CONNECTED;
1722
+ const path = usePath(graph, startOfAttention);
1723
+ const containsAttended = !open && !isAttended && id && path ? path.includes(id) : false;
1724
+ const connectedToEdge = useEdgeStatus() === import_services.QueryEdgeStatusResponse.EdgeStatus.CONNECTED;
1541
1725
  const edgeSyncEnabled = space.internal.data.edgeReplication === import_metadata2.EdgeReplicationSetting.ENABLED;
1542
- const syncState = (0, import_echo8.useSpaceSyncState)(space);
1726
+ const syncState = useSpaceSyncState(space);
1543
1727
  const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
1544
- return /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, {
1545
- asChild: true,
1546
- content: t("syncing label"),
1547
- side: "bottom"
1548
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_attention2.AttentionGlyph, {
1728
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Root, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Trigger, {
1729
+ asChild: true
1730
+ }, /* @__PURE__ */ import_react30.default.createElement(import_react_ui_attention2.AttentionGlyph, {
1549
1731
  syncing,
1550
1732
  attended: isAttended,
1551
1733
  containsAttended,
1552
1734
  classNames: "self-center mie-1"
1735
+ })), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Portal, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Content, {
1736
+ side: "bottom",
1737
+ classNames: "z-[70]"
1738
+ }, /* @__PURE__ */ import_react30.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Arrow, null))));
1739
+ };
1740
+ var SYNC_STALLED_TIMEOUT = 5e3;
1741
+ var styles = {
1742
+ barBg: "bg-neutral-50 dark:bg-green-900 text-black",
1743
+ barFg: "bg-neutral-100 bg-green-500",
1744
+ barHover: "dark:hover:bg-green-500"
1745
+ };
1746
+ var useActive = (count) => {
1747
+ const [current, setCurrent] = (0, import_react33.useState)(count);
1748
+ const [active, setActive] = (0, import_react33.useState)(false);
1749
+ (0, import_react33.useEffect)(() => {
1750
+ let t;
1751
+ if (count !== current) {
1752
+ setActive(true);
1753
+ setCurrent(count);
1754
+ t && clearTimeout(t);
1755
+ t = setTimeout(() => {
1756
+ setActive(false);
1757
+ }, SYNC_STALLED_TIMEOUT);
1758
+ }
1759
+ return () => {
1760
+ setActive(false);
1761
+ clearTimeout(t);
1762
+ };
1763
+ }, [
1764
+ count,
1765
+ current
1766
+ ]);
1767
+ return active;
1768
+ };
1769
+ var SpaceRowContainer = ({ spaceId, state }) => {
1770
+ const { t } = (0, import_react_ui25.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1771
+ const client = (0, import_react_client10.useClient)();
1772
+ const space = (0, import_echo7.useSpace)(spaceId);
1773
+ if (!space) {
1774
+ return null;
1775
+ }
1776
+ const spaceName = (0, import_react_ui25.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
1777
+ personal: space === client.spaces.default
1778
+ }), t);
1779
+ return /* @__PURE__ */ import_react33.default.createElement(SpaceRow, {
1780
+ spaceId,
1781
+ spaceName,
1782
+ state
1783
+ });
1784
+ };
1785
+ var SpaceRow = ({ spaceId, spaceName, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
1786
+ const downActive = useActive(localDocumentCount);
1787
+ const upActive = useActive(remoteDocumentCount);
1788
+ return /* @__PURE__ */ import_react33.default.createElement("div", {
1789
+ className: "flex items-center mx-0.5 gap-0.5 cursor-pointer",
1790
+ title: spaceId,
1791
+ onClick: () => {
1792
+ void navigator.clipboard.writeText(spaceId);
1793
+ }
1794
+ }, /* @__PURE__ */ import_react33.default.createElement("span", {
1795
+ className: "is-1/2 truncate"
1796
+ }, spaceName), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
1797
+ icon: "ph--arrow-fat-line-left--regular",
1798
+ size: 3,
1799
+ classNames: (0, import_react_ui_theme8.mx)(downActive && "animate-[pulse_1s_infinite]")
1800
+ }), /* @__PURE__ */ import_react33.default.createElement(Candle, {
1801
+ up: {
1802
+ count: remoteDocumentCount,
1803
+ total: remoteDocumentCount + missingOnRemote
1804
+ },
1805
+ down: {
1806
+ count: localDocumentCount,
1807
+ total: localDocumentCount + missingOnLocal
1808
+ },
1809
+ title: spaceId
1810
+ }), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
1811
+ icon: "ph--arrow-fat-line-right--regular",
1812
+ size: 3,
1813
+ classNames: (0, import_react_ui_theme8.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
1553
1814
  }));
1554
1815
  };
1555
- var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
1816
+ var Candle = ({ classNames, up, down }) => {
1817
+ return /* @__PURE__ */ import_react33.default.createElement("div", {
1818
+ className: (0, import_react_ui_theme8.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
1819
+ }, /* @__PURE__ */ import_react33.default.createElement(Bar, {
1820
+ classNames: "justify-end",
1821
+ ...up
1822
+ }), /* @__PURE__ */ import_react33.default.createElement("div", {
1823
+ className: "relative"
1824
+ }, /* @__PURE__ */ import_react33.default.createElement("div", {
1825
+ className: (0, import_react_ui_theme8.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
1826
+ }, up.total)), /* @__PURE__ */ import_react33.default.createElement(Bar, down));
1827
+ };
1828
+ var Bar = ({ classNames, count, total }) => {
1829
+ let p = count / total * 100;
1830
+ if (count < total) {
1831
+ p = Math.min(p, 95);
1832
+ }
1833
+ return /* @__PURE__ */ import_react33.default.createElement("div", {
1834
+ className: (0, import_react_ui_theme8.mx)("relative flex w-full", styles.barBg, classNames)
1835
+ }, /* @__PURE__ */ import_react33.default.createElement("div", {
1836
+ className: (0, import_react_ui_theme8.mx)("shrink-0", styles.barFg),
1837
+ style: {
1838
+ width: `${p}%`
1839
+ }
1840
+ }), count !== total && /* @__PURE__ */ import_react33.default.createElement("div", {
1841
+ className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
1842
+ }, count));
1843
+ };
1844
+ var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
1556
1845
  var createClientSaveTracker = (client, cb) => {
1557
1846
  const CleanupFns = {};
1558
1847
  const state = {};
@@ -1579,8 +1868,8 @@ var createClientSaveTracker = (client, cb) => {
1579
1868
  };
1580
1869
  };
1581
1870
  var createSpaceSaveTracker = (space, cb) => {
1582
- const ctx = new import_context.Context(void 0, {
1583
- F: __dxlog_file6,
1871
+ const ctx = new import_context2.Context(void 0, {
1872
+ F: __dxlog_file7,
1584
1873
  L: 40
1585
1874
  });
1586
1875
  void space.waitUntilReady().then(() => {
@@ -1638,24 +1927,23 @@ var getIcon = (status) => {
1638
1927
  return "ph--cloud-check--regular";
1639
1928
  }
1640
1929
  };
1641
- var SYNC_STALLED_TIMEOUT = 5e3;
1642
1930
  var SyncStatus = () => {
1643
- const client = (0, import_react_client10.useClient)();
1644
- const state = (0, import_echo9.useSyncState)();
1645
- const [saved, setSaved] = (0, import_react26.useState)(true);
1646
- (0, import_react26.useEffect)(() => {
1931
+ const client = (0, import_react_client9.useClient)();
1932
+ const state = useSyncState();
1933
+ const [saved, setSaved] = (0, import_react32.useState)(true);
1934
+ (0, import_react32.useEffect)(() => {
1647
1935
  return createClientSaveTracker(client, (state2) => {
1648
1936
  setSaved(state2 === "saved");
1649
1937
  });
1650
1938
  }, []);
1651
- return /* @__PURE__ */ import_react26.default.createElement(SyncStatusIndicator, {
1939
+ return /* @__PURE__ */ import_react32.default.createElement(SyncStatusIndicator, {
1652
1940
  state,
1653
1941
  saved
1654
1942
  });
1655
1943
  };
1656
1944
  var SyncStatusIndicator = ({ state, saved }) => {
1657
- const { t } = (0, import_react_ui20.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1658
- const summary = (0, import_echo9.getSyncSummary)(state);
1945
+ const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1946
+ const summary = getSyncSummary(state);
1659
1947
  const offline = Object.values(state).length === 0;
1660
1948
  const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
1661
1949
  const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;
@@ -1665,8 +1953,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
1665
1953
  needsToUpload,
1666
1954
  needsToDownload
1667
1955
  });
1668
- const [classNames, setClassNames] = (0, import_react26.useState)();
1669
- (0, import_react26.useEffect)(() => {
1956
+ const [classNames, setClassNames] = (0, import_react32.useState)();
1957
+ (0, import_react32.useEffect)(() => {
1670
1958
  setClassNames(void 0);
1671
1959
  if (offline || !needsToUpload && !needsToDownload) {
1672
1960
  return;
@@ -1681,14 +1969,60 @@ var SyncStatusIndicator = ({ state, saved }) => {
1681
1969
  needsToDownload
1682
1970
  ]);
1683
1971
  const title = t(`${status} label`);
1684
- const icon = /* @__PURE__ */ import_react26.default.createElement(import_react_ui20.Icon, {
1972
+ const icon = /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Icon, {
1685
1973
  icon: getIcon(status),
1686
1974
  size: 4,
1687
1975
  classNames
1688
1976
  });
1689
- return /* @__PURE__ */ import_react26.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1690
- title
1691
- }, icon);
1977
+ if (offline) {
1978
+ return /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1979
+ title
1980
+ }, icon);
1981
+ } else {
1982
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Trigger, {
1983
+ asChild: true
1984
+ }, /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Button, {
1985
+ title
1986
+ }, icon)), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Portal, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Content, null, /* @__PURE__ */ import_react32.default.createElement(SyncStatusDetail, {
1987
+ state,
1988
+ summary,
1989
+ debug: false
1990
+ }), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Arrow, null))));
1991
+ }
1992
+ };
1993
+ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1994
+ const [showAll, setShowAll] = (0, import_react32.useState)(false);
1995
+ const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1996
+ const entries = Object.entries(state).filter(([_, value]) => showAll || value.missingOnLocal + value.missingOnRemote > 0).toSorted(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
1997
+ const handleCheckedChange = (0, import_react32.useCallback)((state2) => setShowAll(state2), [
1998
+ setShowAll
1999
+ ]);
2000
+ return /* @__PURE__ */ import_react32.default.createElement("div", {
2001
+ className: (0, import_react_ui_theme7.mx)("flex flex-col gap-3 p-2 text-xs min-w-[400px]", classNames)
2002
+ }, /* @__PURE__ */ import_react32.default.createElement("div", {
2003
+ role: "none",
2004
+ className: "flex items-center"
2005
+ }, /* @__PURE__ */ import_react32.default.createElement("h1", {
2006
+ className: "flex-1"
2007
+ }, t("sync status title")), /* @__PURE__ */ import_react32.default.createElement("div", {
2008
+ className: "flex items-center gap-2"
2009
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Label, {
2010
+ classNames: "text-xs"
2011
+ }, t("show all label")), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Checkbox, {
2012
+ checked: showAll,
2013
+ onCheckedChange: handleCheckedChange
2014
+ })))), /* @__PURE__ */ import_react32.default.createElement("div", {
2015
+ className: "flex flex-col gap-2"
2016
+ }, entries.length === 0 && /* @__PURE__ */ import_react32.default.createElement("div", {
2017
+ role: "none",
2018
+ className: "flex justify-center"
2019
+ }, t("no sync status label")), entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react32.default.createElement(SpaceRowContainer, {
2020
+ key: spaceId,
2021
+ spaceId,
2022
+ state: state2
2023
+ }))), debug && /* @__PURE__ */ import_react32.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
2024
+ language: "json"
2025
+ }, JSON.stringify(summary, null, 2)));
1692
2026
  };
1693
2027
  // Annotate the CommonJS export names for ESM import in node:
1694
2028
  0 && (module.exports = {
@@ -1710,26 +2044,31 @@ var SyncStatusIndicator = ({ state, saved }) => {
1710
2044
  MembersContainer,
1711
2045
  MenuFooter,
1712
2046
  ObjectSettingsContainer,
2047
+ POPOVER_ADD_SPACE,
1713
2048
  POPOVER_RENAME_OBJECT,
1714
2049
  POPOVER_RENAME_SPACE,
1715
2050
  PersistenceStatus,
2051
+ PopoverAddSpace,
1716
2052
  PopoverRenameObject,
1717
2053
  PopoverRenameSpace,
1718
2054
  ReactRoot,
1719
2055
  ReactSurface,
1720
- SchemaContainer,
1721
- SchemaDefs,
1722
- SchemaTools,
2056
+ SPACE_SETTINGS_DIALOG,
2057
+ Schema,
2058
+ ShareSpaceButton,
2059
+ ShareSpaceButtonImpl,
1723
2060
  SmallPresence,
1724
2061
  SmallPresenceLive,
1725
2062
  SpacePluginSettings,
1726
2063
  SpacePresence,
2064
+ SpacePropertiesForm,
1727
2065
  SpaceSettings,
1728
2066
  SpaceSettingsContainer,
1729
2067
  SpaceState,
1730
2068
  SpacesReady,
1731
2069
  SyncStatus,
2070
+ SyncStatusDetail,
1732
2071
  SyncStatusIndicator,
1733
- useQuerySpaceSchemas
2072
+ Tools
1734
2073
  });
1735
- //# sourceMappingURL=chunk-MXBE2VET.cjs.map
2074
+ //# sourceMappingURL=chunk-3GKCNADA.cjs.map