@dxos/plugin-space 0.8.1-main.ba2dec9 → 0.8.1-staging.31c3ee1

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 (256) hide show
  1. package/dist/lib/browser/{app-graph-builder-MGK5HWPZ.mjs → app-graph-builder-GMFCSOLG.mjs} +33 -6
  2. package/dist/lib/browser/app-graph-builder-GMFCSOLG.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs → app-graph-serializer-DSF2U3A5.mjs} +7 -7
  4. package/dist/lib/browser/{app-graph-serializer-FOWFLYGU.mjs.map → app-graph-serializer-DSF2U3A5.mjs.map} +2 -2
  5. package/dist/lib/browser/{chunk-UDWHTKB5.mjs → chunk-5BDV575R.mjs} +22 -16
  6. package/dist/lib/browser/chunk-5BDV575R.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-ULA2UQJ4.mjs → chunk-AYW4IDRT.mjs} +15 -65
  8. package/dist/lib/browser/chunk-AYW4IDRT.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-PCEP3KQY.mjs → chunk-DVZEJGCK.mjs} +854 -587
  10. package/dist/lib/browser/chunk-DVZEJGCK.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-NU7WDVGN.mjs → chunk-KVRYWFZU.mjs} +3 -3
  12. package/dist/lib/browser/chunk-KVRYWFZU.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-23RVI5FZ.mjs → chunk-LO5UL6RU.mjs} +49 -16
  14. package/dist/lib/browser/chunk-LO5UL6RU.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-PQXZCNAU.mjs → chunk-PTKYMZWO.mjs} +1 -1
  16. package/dist/lib/browser/chunk-PTKYMZWO.mjs.map +7 -0
  17. package/dist/lib/browser/{identity-created-FYGS6TBH.mjs → identity-created-JR7BNXFH.mjs} +3 -3
  18. package/dist/lib/browser/index.mjs +40 -45
  19. package/dist/lib/browser/index.mjs.map +3 -3
  20. package/dist/lib/browser/{intent-resolver-GPNAQ2SG.mjs → intent-resolver-OG62I5IL.mjs} +69 -44
  21. package/dist/lib/browser/intent-resolver-OG62I5IL.mjs.map +7 -0
  22. package/dist/lib/browser/meta.json +1 -1
  23. package/dist/lib/browser/{react-root-4CCSD7TZ.mjs → react-root-VPSIJ6EU.mjs} +6 -6
  24. package/dist/lib/browser/{react-surface-FKMRI3WV.mjs → react-surface-KOSYP574.mjs} +39 -38
  25. package/dist/lib/browser/react-surface-KOSYP574.mjs.map +7 -0
  26. package/dist/lib/browser/{schema-5W3DSY2E.mjs → schema-FHTA26SW.mjs} +3 -3
  27. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs +123 -0
  28. package/dist/lib/browser/schema-tools-YAXPRIXP.mjs.map +7 -0
  29. package/dist/lib/browser/{settings-PHPCXX33.mjs → settings-PJPTJUPE.mjs} +3 -3
  30. package/dist/lib/browser/{spaces-ready-K47RR7N2.mjs → spaces-ready-BSSP7HHG.mjs} +8 -8
  31. package/dist/lib/browser/spaces-ready-BSSP7HHG.mjs.map +7 -0
  32. package/dist/lib/browser/{state-INJ63O57.mjs → state-X7VLCC6E.mjs} +5 -3
  33. package/dist/lib/browser/state-X7VLCC6E.mjs.map +7 -0
  34. package/dist/lib/browser/types/index.mjs +2 -10
  35. package/dist/lib/node/{app-graph-builder-ZIUBXRPA.cjs → app-graph-builder-DPY7AUZE.cjs} +73 -46
  36. package/dist/lib/node/app-graph-builder-DPY7AUZE.cjs.map +7 -0
  37. package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs → app-graph-serializer-JELGJUAY.cjs} +21 -21
  38. package/dist/lib/node/{app-graph-serializer-VQOGHKXL.cjs.map → app-graph-serializer-JELGJUAY.cjs.map} +2 -2
  39. package/dist/lib/node/{chunk-WZR6OAN3.cjs → chunk-6P2DB4QQ.cjs} +4 -4
  40. package/dist/lib/node/{chunk-WZR6OAN3.cjs.map → chunk-6P2DB4QQ.cjs.map} +2 -2
  41. package/dist/lib/node/{chunk-QE4GVR6C.cjs → chunk-APYLLIMY.cjs} +919 -657
  42. package/dist/lib/node/chunk-APYLLIMY.cjs.map +7 -0
  43. package/dist/lib/node/{chunk-YZKNRFHU.cjs → chunk-IKIDS6XF.cjs} +10 -10
  44. package/dist/lib/node/chunk-IKIDS6XF.cjs.map +7 -0
  45. package/dist/lib/node/{chunk-U6DYXAR3.cjs → chunk-PU2EYH4E.cjs} +27 -21
  46. package/dist/lib/node/chunk-PU2EYH4E.cjs.map +7 -0
  47. package/dist/lib/node/{chunk-OVGKWJOC.cjs → chunk-TUZWEPGX.cjs} +99 -66
  48. package/dist/lib/node/chunk-TUZWEPGX.cjs.map +7 -0
  49. package/dist/lib/node/{chunk-WAJKBO3J.cjs → chunk-WDEIFDTX.cjs} +19 -73
  50. package/dist/lib/node/chunk-WDEIFDTX.cjs.map +7 -0
  51. package/dist/lib/node/{identity-created-AXI64BLE.cjs → identity-created-XU4HFV2T.cjs} +7 -7
  52. package/dist/lib/node/index.cjs +105 -111
  53. package/dist/lib/node/index.cjs.map +3 -3
  54. package/dist/lib/node/{intent-resolver-ICHHI6I6.cjs → intent-resolver-UMF6MLOH.cjs} +133 -107
  55. package/dist/lib/node/intent-resolver-UMF6MLOH.cjs.map +7 -0
  56. package/dist/lib/node/meta.json +1 -1
  57. package/dist/lib/node/{react-root-TCBTUOOJ.cjs → react-root-ZRFHMM7R.cjs} +12 -12
  58. package/dist/lib/node/{react-surface-JSCCIZS5.cjs → react-surface-72U57CIU.cjs} +78 -76
  59. package/dist/lib/node/react-surface-72U57CIU.cjs.map +7 -0
  60. package/dist/lib/node/{schema-YN7WVFRX.cjs → schema-PPJ5BZ3A.cjs} +7 -7
  61. package/dist/lib/node/schema-tools-BLIMOZYY.cjs +146 -0
  62. package/dist/lib/node/schema-tools-BLIMOZYY.cjs.map +7 -0
  63. package/dist/lib/node/{settings-5QYFWNH7.cjs → settings-WVFP2UEP.cjs} +8 -8
  64. package/dist/lib/node/{spaces-ready-FQNAKR7G.cjs → spaces-ready-7DNZSUOG.cjs} +16 -16
  65. package/dist/lib/node/spaces-ready-7DNZSUOG.cjs.map +7 -0
  66. package/dist/lib/node/{state-57UE3DYE.cjs → state-5KX6WBJH.cjs} +10 -8
  67. package/dist/lib/node/state-5KX6WBJH.cjs.map +7 -0
  68. package/dist/lib/node/types/index.cjs +13 -21
  69. package/dist/lib/node/types/index.cjs.map +2 -2
  70. package/dist/lib/node-esm/{app-graph-builder-TERVM2SL.mjs → app-graph-builder-42IGWRPL.mjs} +33 -6
  71. package/dist/lib/node-esm/app-graph-builder-42IGWRPL.mjs.map +7 -0
  72. package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs → app-graph-serializer-FXONFKOE.mjs} +7 -7
  73. package/dist/lib/node-esm/{app-graph-serializer-GZRSWHEN.mjs.map → app-graph-serializer-FXONFKOE.mjs.map} +2 -2
  74. package/dist/lib/node-esm/{chunk-2TQ2AJEZ.mjs → chunk-3ZOUV4DF.mjs} +22 -16
  75. package/dist/lib/node-esm/chunk-3ZOUV4DF.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-TRNZQEEN.mjs → chunk-FC4UHDPL.mjs} +15 -65
  77. package/dist/lib/node-esm/chunk-FC4UHDPL.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-HJCEJNW3.mjs → chunk-HMCIZ7G7.mjs} +854 -587
  79. package/dist/lib/node-esm/chunk-HMCIZ7G7.mjs.map +7 -0
  80. package/dist/lib/node-esm/{chunk-ICCM4YRJ.mjs → chunk-MSWEFAPD.mjs} +1 -1
  81. package/dist/lib/node-esm/chunk-MSWEFAPD.mjs.map +7 -0
  82. package/dist/lib/node-esm/{chunk-6RSVVEPS.mjs → chunk-PIYAWT5N.mjs} +3 -3
  83. package/dist/lib/node-esm/chunk-PIYAWT5N.mjs.map +7 -0
  84. package/dist/lib/node-esm/{chunk-PGH5L7MV.mjs → chunk-ZGLK25WQ.mjs} +49 -16
  85. package/dist/lib/node-esm/chunk-ZGLK25WQ.mjs.map +7 -0
  86. package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs → identity-created-WJKAS2PV.mjs} +3 -3
  87. package/dist/lib/node-esm/index.mjs +40 -45
  88. package/dist/lib/node-esm/index.mjs.map +3 -3
  89. package/dist/lib/node-esm/{intent-resolver-VR42K5GE.mjs → intent-resolver-67C5MOIE.mjs} +69 -44
  90. package/dist/lib/node-esm/intent-resolver-67C5MOIE.mjs.map +7 -0
  91. package/dist/lib/node-esm/meta.json +1 -1
  92. package/dist/lib/node-esm/{react-root-THJBSTQS.mjs → react-root-XPRWMZGT.mjs} +6 -6
  93. package/dist/lib/node-esm/{react-surface-Z3BBQ5HX.mjs → react-surface-MUE6M34Y.mjs} +39 -38
  94. package/dist/lib/node-esm/react-surface-MUE6M34Y.mjs.map +7 -0
  95. package/dist/lib/node-esm/{schema-LOR2EVGY.mjs → schema-OUZKVYM5.mjs} +3 -3
  96. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs +125 -0
  97. package/dist/lib/node-esm/schema-tools-IU7EX5A5.mjs.map +7 -0
  98. package/dist/lib/node-esm/{settings-H6MXTEQM.mjs → settings-FJZPC2TV.mjs} +3 -3
  99. package/dist/lib/node-esm/{spaces-ready-HKAQG5SA.mjs → spaces-ready-7X5PGB2V.mjs} +8 -8
  100. package/dist/lib/node-esm/spaces-ready-7X5PGB2V.mjs.map +7 -0
  101. package/dist/lib/node-esm/{state-VYA6OFHD.mjs → state-Z6E2YTNC.mjs} +5 -3
  102. package/dist/lib/node-esm/state-Z6E2YTNC.mjs.map +7 -0
  103. package/dist/lib/node-esm/types/index.mjs +2 -10
  104. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/capabilities.d.ts +4 -3
  107. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  108. package/dist/types/src/capabilities/index.d.ts +1 -1
  109. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -2
  111. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  112. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/schema-tool.test.d.ts +2 -0
  114. package/dist/types/src/capabilities/schema-tool.test.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/schema-tools.d.ts +13 -0
  116. package/dist/types/src/capabilities/schema-tools.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  118. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  119. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  120. package/dist/types/src/components/MembersContainer.d.ts +7 -0
  121. package/dist/types/src/components/MembersContainer.d.ts.map +1 -0
  122. package/dist/types/src/components/MembersContainer.stories.d.ts +8 -0
  123. package/dist/types/src/components/MembersContainer.stories.d.ts.map +1 -0
  124. package/dist/types/src/components/ObjectSettingsContainer/AdvancedObjectSettings.d.ts.map +1 -0
  125. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts +8 -0
  126. package/dist/types/src/components/ObjectSettingsContainer/BaseObjectSettings.d.ts.map +1 -0
  127. package/dist/types/src/components/ObjectSettingsContainer/ForeignKeys.d.ts.map +1 -0
  128. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts +8 -0
  129. package/dist/types/src/components/ObjectSettingsContainer/ObjectSettingsContainer.d.ts.map +1 -0
  130. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts +2 -0
  131. package/dist/types/src/components/ObjectSettingsContainer/index.d.ts.map +1 -0
  132. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  133. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts +7 -0
  134. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.d.ts.map +1 -0
  135. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts +7 -0
  136. package/dist/types/src/components/SpaceSettings/SpacePropertiesForm.stories.d.ts.map +1 -0
  137. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts +9 -0
  138. package/dist/types/src/components/SpaceSettings/SpaceSettingsContainer.d.ts.map +1 -0
  139. package/dist/types/src/components/SpaceSettings/index.d.ts +2 -2
  140. package/dist/types/src/components/SpaceSettings/index.d.ts.map +1 -1
  141. package/dist/types/src/components/index.d.ts +2 -2
  142. package/dist/types/src/components/index.d.ts.map +1 -1
  143. package/dist/types/src/events.d.ts +1 -1
  144. package/dist/types/src/events.d.ts.map +1 -1
  145. package/dist/types/src/meta.d.ts +2 -5
  146. package/dist/types/src/meta.d.ts.map +1 -1
  147. package/dist/types/src/translations.d.ts +53 -36
  148. package/dist/types/src/translations.d.ts.map +1 -1
  149. package/dist/types/src/types/thread.d.ts +92 -197
  150. package/dist/types/src/types/thread.d.ts.map +1 -1
  151. package/dist/types/src/types/types.d.ts +10 -0
  152. package/dist/types/src/types/types.d.ts.map +1 -1
  153. package/dist/types/src/util.d.ts +12 -0
  154. package/dist/types/src/util.d.ts.map +1 -1
  155. package/package.json +44 -39
  156. package/src/SpacePlugin.tsx +12 -11
  157. package/src/capabilities/app-graph-builder.ts +20 -0
  158. package/src/capabilities/app-graph-serializer.ts +2 -2
  159. package/src/capabilities/capabilities.ts +3 -3
  160. package/src/capabilities/index.ts +1 -0
  161. package/src/capabilities/intent-resolver.ts +66 -38
  162. package/src/capabilities/react-surface.tsx +30 -28
  163. package/src/capabilities/schema-tool.test.ts +45 -0
  164. package/src/capabilities/schema-tools.ts +124 -0
  165. package/src/capabilities/spaces-ready.ts +3 -3
  166. package/src/capabilities/state.ts +2 -0
  167. package/src/components/CreateDialog/CreateObjectDialog.tsx +3 -6
  168. package/src/components/CreateDialog/CreateObjectPanel.tsx +6 -6
  169. package/src/components/JoinDialog.tsx +43 -27
  170. package/src/components/MembersContainer.stories.tsx +34 -0
  171. package/src/components/MembersContainer.tsx +255 -0
  172. package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.tsx +2 -2
  173. package/src/components/ObjectSettingsContainer/BaseObjectSettings.tsx +47 -0
  174. package/src/components/ObjectSettingsContainer/ObjectSettingsContainer.tsx +36 -0
  175. package/src/components/ObjectSettingsContainer/index.ts +5 -0
  176. package/src/components/PopoverRenameObject.tsx +1 -1
  177. package/src/components/SpacePresence.tsx +25 -23
  178. package/src/components/SpaceSettings/{SpaceSettingsPanel.stories.tsx → SpacePropertiesForm.stories.tsx} +6 -6
  179. package/src/components/SpaceSettings/SpacePropertiesForm.tsx +136 -0
  180. package/src/components/SpaceSettings/SpaceSettingsContainer.tsx +63 -0
  181. package/src/components/SpaceSettings/index.ts +2 -2
  182. package/src/components/SyncStatus/SyncStatus.tsx +1 -1
  183. package/src/components/SyncStatus/save-tracker.ts +5 -5
  184. package/src/components/index.ts +2 -2
  185. package/src/events.ts +2 -2
  186. package/src/meta.ts +2 -2
  187. package/src/translations.ts +21 -12
  188. package/src/types/thread.ts +2 -56
  189. package/src/types/types.ts +15 -6
  190. package/src/util.tsx +30 -9
  191. package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs.map +0 -7
  192. package/dist/lib/browser/chunk-23RVI5FZ.mjs.map +0 -7
  193. package/dist/lib/browser/chunk-NU7WDVGN.mjs.map +0 -7
  194. package/dist/lib/browser/chunk-PCEP3KQY.mjs.map +0 -7
  195. package/dist/lib/browser/chunk-PQXZCNAU.mjs.map +0 -7
  196. package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +0 -7
  197. package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +0 -7
  198. package/dist/lib/browser/intent-resolver-GPNAQ2SG.mjs.map +0 -7
  199. package/dist/lib/browser/react-surface-FKMRI3WV.mjs.map +0 -7
  200. package/dist/lib/browser/spaces-ready-K47RR7N2.mjs.map +0 -7
  201. package/dist/lib/browser/state-INJ63O57.mjs.map +0 -7
  202. package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs.map +0 -7
  203. package/dist/lib/node/chunk-OVGKWJOC.cjs.map +0 -7
  204. package/dist/lib/node/chunk-QE4GVR6C.cjs.map +0 -7
  205. package/dist/lib/node/chunk-U6DYXAR3.cjs.map +0 -7
  206. package/dist/lib/node/chunk-WAJKBO3J.cjs.map +0 -7
  207. package/dist/lib/node/chunk-YZKNRFHU.cjs.map +0 -7
  208. package/dist/lib/node/intent-resolver-ICHHI6I6.cjs.map +0 -7
  209. package/dist/lib/node/react-surface-JSCCIZS5.cjs.map +0 -7
  210. package/dist/lib/node/spaces-ready-FQNAKR7G.cjs.map +0 -7
  211. package/dist/lib/node/state-57UE3DYE.cjs.map +0 -7
  212. package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs.map +0 -7
  213. package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +0 -7
  214. package/dist/lib/node-esm/chunk-6RSVVEPS.mjs.map +0 -7
  215. package/dist/lib/node-esm/chunk-HJCEJNW3.mjs.map +0 -7
  216. package/dist/lib/node-esm/chunk-ICCM4YRJ.mjs.map +0 -7
  217. package/dist/lib/node-esm/chunk-PGH5L7MV.mjs.map +0 -7
  218. package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +0 -7
  219. package/dist/lib/node-esm/intent-resolver-VR42K5GE.mjs.map +0 -7
  220. package/dist/lib/node-esm/react-surface-Z3BBQ5HX.mjs.map +0 -7
  221. package/dist/lib/node-esm/spaces-ready-HKAQG5SA.mjs.map +0 -7
  222. package/dist/lib/node-esm/state-VYA6OFHD.mjs.map +0 -7
  223. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +0 -1
  224. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +0 -1
  225. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts +0 -2
  226. package/dist/types/src/components/AdvancedObjectSettings/index.d.ts.map +0 -1
  227. package/dist/types/src/components/BaseObjectSettings.d.ts +0 -7
  228. package/dist/types/src/components/BaseObjectSettings.d.ts.map +0 -1
  229. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +0 -11
  230. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +0 -1
  231. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts +0 -7
  232. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.stories.d.ts.map +0 -1
  233. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +0 -7
  234. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +0 -1
  235. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts +0 -7
  236. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.stories.d.ts.map +0 -1
  237. package/src/components/AdvancedObjectSettings/index.ts +0 -5
  238. package/src/components/BaseObjectSettings.tsx +0 -40
  239. package/src/components/SpaceSettings/SpaceSettingsDialog.stories.tsx +0 -43
  240. package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +0 -120
  241. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +0 -83
  242. /package/dist/lib/browser/{identity-created-FYGS6TBH.mjs.map → identity-created-JR7BNXFH.mjs.map} +0 -0
  243. /package/dist/lib/browser/{react-root-4CCSD7TZ.mjs.map → react-root-VPSIJ6EU.mjs.map} +0 -0
  244. /package/dist/lib/browser/{schema-5W3DSY2E.mjs.map → schema-FHTA26SW.mjs.map} +0 -0
  245. /package/dist/lib/browser/{settings-PHPCXX33.mjs.map → settings-PJPTJUPE.mjs.map} +0 -0
  246. /package/dist/lib/node/{identity-created-AXI64BLE.cjs.map → identity-created-XU4HFV2T.cjs.map} +0 -0
  247. /package/dist/lib/node/{react-root-TCBTUOOJ.cjs.map → react-root-ZRFHMM7R.cjs.map} +0 -0
  248. /package/dist/lib/node/{schema-YN7WVFRX.cjs.map → schema-PPJ5BZ3A.cjs.map} +0 -0
  249. /package/dist/lib/node/{settings-5QYFWNH7.cjs.map → settings-WVFP2UEP.cjs.map} +0 -0
  250. /package/dist/lib/node-esm/{identity-created-3CGEXNPO.mjs.map → identity-created-WJKAS2PV.mjs.map} +0 -0
  251. /package/dist/lib/node-esm/{react-root-THJBSTQS.mjs.map → react-root-XPRWMZGT.mjs.map} +0 -0
  252. /package/dist/lib/node-esm/{schema-LOR2EVGY.mjs.map → schema-OUZKVYM5.mjs.map} +0 -0
  253. /package/dist/lib/node-esm/{settings-H6MXTEQM.mjs.map → settings-FJZPC2TV.mjs.map} +0 -0
  254. /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/AdvancedObjectSettings.d.ts +0 -0
  255. /package/dist/types/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.d.ts +0 -0
  256. /package/src/components/{AdvancedObjectSettings → ObjectSettingsContainer}/ForeignKeys.tsx +0 -0
@@ -26,13 +26,11 @@ 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_QE4GVR6C_exports = {};
30
- __export(chunk_QE4GVR6C_exports, {
31
- AdvancedObjectSettings: () => AdvancedObjectSettings,
29
+ var chunk_APYLLIMY_exports = {};
30
+ __export(chunk_APYLLIMY_exports, {
32
31
  AppGraphBuilder: () => AppGraphBuilder,
33
32
  AppGraphSerializer: () => AppGraphSerializer,
34
33
  AwaitingObject: () => AwaitingObject,
35
- BaseObjectSettings: () => BaseObjectSettings,
36
34
  CREATE_OBJECT_DIALOG: () => CREATE_OBJECT_DIALOG,
37
35
  CREATE_SPACE_DIALOG: () => CREATE_SPACE_DIALOG,
38
36
  CollectionMain: () => CollectionMain,
@@ -45,7 +43,9 @@ __export(chunk_QE4GVR6C_exports, {
45
43
  IntentResolver: () => IntentResolver,
46
44
  JOIN_DIALOG: () => JOIN_DIALOG,
47
45
  JoinDialog: () => JoinDialog,
46
+ MembersContainer: () => MembersContainer,
48
47
  MenuFooter: () => MenuFooter,
48
+ ObjectSettingsContainer: () => ObjectSettingsContainer,
49
49
  POPOVER_ADD_SPACE: () => POPOVER_ADD_SPACE,
50
50
  POPOVER_RENAME_OBJECT: () => POPOVER_RENAME_OBJECT,
51
51
  POPOVER_RENAME_SPACE: () => POPOVER_RENAME_SPACE,
@@ -63,233 +63,171 @@ __export(chunk_QE4GVR6C_exports, {
63
63
  SmallPresenceLive: () => SmallPresenceLive,
64
64
  SpacePluginSettings: () => SpacePluginSettings,
65
65
  SpacePresence: () => SpacePresence,
66
+ SpacePropertiesForm: () => SpacePropertiesForm,
66
67
  SpaceSettings: () => SpaceSettings,
67
- SpaceSettingsDialog: () => SpaceSettingsDialog,
68
- SpaceSettingsPanel: () => SpaceSettingsPanel,
68
+ SpaceSettingsContainer: () => SpaceSettingsContainer,
69
69
  SpaceState: () => SpaceState,
70
70
  SpacesReady: () => SpacesReady,
71
71
  SyncStatus: () => SyncStatus,
72
72
  SyncStatusDetail: () => SyncStatusDetail,
73
- SyncStatusIndicator: () => SyncStatusIndicator
73
+ SyncStatusIndicator: () => SyncStatusIndicator,
74
+ Tools: () => Tools
74
75
  });
75
- module.exports = __toCommonJS(chunk_QE4GVR6C_exports);
76
- var import_chunk_YZKNRFHU = require("./chunk-YZKNRFHU.cjs");
77
- var import_chunk_OVGKWJOC = require("./chunk-OVGKWJOC.cjs");
78
- var import_chunk_WAJKBO3J = require("./chunk-WAJKBO3J.cjs");
79
- var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
80
- var import_react = __toESM(require("react"));
81
- var import_echo_schema = require("@dxos/echo-schema");
82
- var import_echo = require("@dxos/react-client/echo");
83
- var import_react_ui = require("@dxos/react-ui");
84
- var import_react_ui_form = require("@dxos/react-ui-form");
76
+ module.exports = __toCommonJS(chunk_APYLLIMY_exports);
77
+ var import_chunk_IKIDS6XF = require("./chunk-IKIDS6XF.cjs");
78
+ var import_chunk_TUZWEPGX = require("./chunk-TUZWEPGX.cjs");
79
+ var import_chunk_WDEIFDTX = require("./chunk-WDEIFDTX.cjs");
80
+ var import_chunk_6P2DB4QQ = require("./chunk-6P2DB4QQ.cjs");
81
+ var import_react = require("@phosphor-icons/react");
85
82
  var import_react2 = __toESM(require("react"));
86
- var import_react_ui2 = require("@dxos/react-ui");
87
- var import_react3 = require("@phosphor-icons/react");
88
- var import_react4 = __toESM(require("react"));
89
83
  var import_app_framework = require("@dxos/app-framework");
90
84
  var import_react_client = require("@dxos/react-client");
91
- var import_echo2 = require("@dxos/react-client/echo");
92
- var import_react_ui3 = require("@dxos/react-ui");
85
+ var import_echo = require("@dxos/react-client/echo");
86
+ var import_react_ui = require("@dxos/react-ui");
93
87
  var import_react_ui_theme = require("@dxos/react-ui-theme");
94
- var import_react5 = __toESM(require("react"));
95
- var import_react_ui4 = require("@dxos/react-ui");
96
88
  var import_effect = require("effect");
97
- var import_react6 = __toESM(require("react"));
89
+ var import_react3 = __toESM(require("react"));
98
90
  var import_app_framework2 = require("@dxos/app-framework");
99
91
  var import_invariant = require("@dxos/invariant");
100
92
  var import_react_client2 = require("@dxos/react-client");
101
- var import_echo3 = require("@dxos/react-client/echo");
102
- var import_react_ui5 = require("@dxos/react-ui");
103
- var import_react7 = __toESM(require("react"));
93
+ var import_echo2 = require("@dxos/react-client/echo");
94
+ var import_react_ui2 = require("@dxos/react-ui");
95
+ var import_react4 = __toESM(require("react"));
104
96
  var import_app_framework3 = require("@dxos/app-framework");
105
- var import_echo_schema2 = require("@dxos/echo-schema");
97
+ var import_echo_schema = require("@dxos/echo-schema");
106
98
  var import_invariant2 = require("@dxos/invariant");
107
- var import_react_ui6 = require("@dxos/react-ui");
108
- var import_react_ui_form2 = require("@dxos/react-ui-form");
99
+ var import_react_ui3 = require("@dxos/react-ui");
100
+ var import_react_ui_form = require("@dxos/react-ui-form");
109
101
  var import_react_ui_searchlist = require("@dxos/react-ui-searchlist");
110
102
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
111
103
  var import_util = require("@dxos/util");
112
104
  var import_app_framework4 = require("@dxos/app-framework");
113
105
  var import_effect2 = require("effect");
114
- var import_react8 = __toESM(require("react"));
106
+ var import_react5 = __toESM(require("react"));
115
107
  var import_app_framework5 = require("@dxos/app-framework");
116
- var import_react_ui7 = require("@dxos/react-ui");
117
- var import_react_ui_form3 = require("@dxos/react-ui-form");
118
- var import_react9 = __toESM(require("react"));
119
- var import_react_ui8 = require("@dxos/react-ui");
108
+ var import_react_ui4 = require("@dxos/react-ui");
109
+ var import_react_ui_form2 = require("@dxos/react-ui-form");
110
+ var import_react6 = __toESM(require("react"));
111
+ var import_react_ui5 = require("@dxos/react-ui");
120
112
  var import_react_ui_theme3 = require("@dxos/react-ui-theme");
121
- var import_react10 = __toESM(require("react"));
122
- var import_react_ui9 = require("@dxos/react-ui");
123
- var import_react11 = __toESM(require("react"));
113
+ var import_react7 = __toESM(require("react"));
114
+ var import_react_ui6 = require("@dxos/react-ui");
115
+ var import_react8 = __toESM(require("react"));
124
116
  var import_app_framework6 = require("@dxos/app-framework");
125
- var import_log = require("@dxos/log");
117
+ var import_async = require("@dxos/async");
126
118
  var import_types = require("@dxos/plugin-observability/types");
127
119
  var import_react_client3 = require("@dxos/react-client");
128
- var import_react_ui10 = require("@dxos/react-ui");
120
+ var import_react_ui7 = require("@dxos/react-ui");
121
+ var import_react9 = require("@dxos/shell/react");
122
+ var import_react10 = require("@phosphor-icons/react");
123
+ var import_react11 = __toESM(require("react"));
124
+ var import_react_qr_rounded = require("react-qr-rounded");
125
+ var import_log = require("@dxos/log");
126
+ var import_react_client4 = require("@dxos/react-client");
127
+ var import_echo3 = require("@dxos/react-client/echo");
128
+ var import_invitations = require("@dxos/react-client/invitations");
129
+ var import_react_ui8 = require("@dxos/react-ui");
130
+ var import_react_ui_form3 = require("@dxos/react-ui-form");
131
+ var import_react_ui_stack = require("@dxos/react-ui-stack");
132
+ var import_react_ui_theme4 = require("@dxos/react-ui-theme");
129
133
  var import_react12 = require("@dxos/shell/react");
134
+ var import_util2 = require("@dxos/util");
130
135
  var import_react13 = require("@phosphor-icons/react");
131
136
  var import_react14 = __toESM(require("react"));
132
137
  var import_echo4 = require("@dxos/client/echo");
133
- var import_react_client4 = require("@dxos/react-client");
134
- var import_react_ui11 = require("@dxos/react-ui");
135
- var import_react15 = require("@phosphor-icons/react");
138
+ var import_react_client5 = require("@dxos/react-client");
139
+ var import_react_ui9 = require("@dxos/react-ui");
140
+ var import_react15 = __toESM(require("react"));
141
+ var import_app_framework7 = require("@dxos/app-framework");
142
+ var import_react_ui10 = require("@dxos/react-ui");
143
+ var import_react_ui_stack2 = require("@dxos/react-ui-stack");
136
144
  var import_react16 = __toESM(require("react"));
137
- var import_async = require("@dxos/async");
138
- var import_react_ui12 = require("@dxos/react-ui");
139
- var import_react_ui_theme4 = require("@dxos/react-ui-theme");
145
+ var import_echo_schema2 = require("@dxos/echo-schema");
146
+ var import_echo5 = require("@dxos/react-client/echo");
147
+ var import_react_ui11 = require("@dxos/react-ui");
148
+ var import_react_ui_form4 = require("@dxos/react-ui-form");
140
149
  var import_react17 = __toESM(require("react"));
141
- var import_app_framework7 = require("@dxos/app-framework");
142
- var import_react_ui13 = require("@dxos/react-ui");
150
+ var import_react_ui12 = require("@dxos/react-ui");
143
151
  var import_react18 = __toESM(require("react"));
144
- var import_log2 = require("@dxos/log");
145
- var import_react_ui14 = require("@dxos/react-ui");
146
- var import_react19 = __toESM(require("react"));
147
- var import_react_ui15 = require("@dxos/react-ui");
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");
148
155
  var import_react20 = __toESM(require("react"));
156
+ var import_async2 = require("@dxos/async");
157
+ var import_react_ui14 = require("@dxos/react-ui");
158
+ var import_react_ui_theme6 = require("@dxos/react-ui-theme");
159
+ var import_react21 = __toESM(require("react"));
149
160
  var import_app_framework8 = require("@dxos/app-framework");
161
+ var import_react_ui15 = require("@dxos/react-ui");
162
+ var import_react22 = __toESM(require("react"));
163
+ var import_log2 = require("@dxos/log");
150
164
  var import_react_ui16 = require("@dxos/react-ui");
151
- var import_react21 = __toESM(require("react"));
165
+ var import_react23 = __toESM(require("react"));
166
+ var import_react_ui17 = require("@dxos/react-ui");
167
+ var import_react24 = __toESM(require("react"));
152
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"));
171
+ var import_app_framework10 = require("@dxos/app-framework");
153
172
  var import_display_name = require("@dxos/display-name");
154
- var import_react_client5 = require("@dxos/react-client");
155
- var import_echo5 = require("@dxos/react-client/echo");
173
+ var import_react_client6 = require("@dxos/react-client");
174
+ var import_echo6 = require("@dxos/react-client/echo");
156
175
  var import_halo = require("@dxos/react-client/halo");
157
- var import_react_ui17 = require("@dxos/react-ui");
176
+ var import_react_ui19 = require("@dxos/react-ui");
158
177
  var import_react_ui_attention = require("@dxos/react-ui-attention");
159
- var import_util2 = require("@dxos/util");
160
- var import_react22 = require("react");
161
- var import_react23 = __toESM(require("react"));
162
- var import_react_ui18 = require("@dxos/react-ui");
163
- var import_react_ui_form4 = require("@dxos/react-ui-form");
164
- var import_react24 = __toESM(require("react"));
178
+ var import_util3 = require("@dxos/util");
179
+ var import_react26 = require("react");
180
+ var import_react27 = __toESM(require("react"));
181
+ var import_react_ui20 = require("@dxos/react-ui");
182
+ var import_react_ui_form5 = require("@dxos/react-ui-form");
183
+ var import_react28 = __toESM(require("react"));
165
184
  var import_log3 = require("@dxos/log");
166
185
  var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
167
- var import_react_client6 = require("@dxos/react-client");
168
- var import_react_ui19 = require("@dxos/react-ui");
169
- var import_react_ui_form5 = require("@dxos/react-ui-form");
186
+ var import_react_ui21 = require("@dxos/react-ui");
187
+ var import_react_ui_form6 = require("@dxos/react-ui-form");
170
188
  var import_react_ui_pickers = require("@dxos/react-ui-pickers");
171
- var import_react25 = __toESM(require("react"));
172
- var import_app_framework10 = require("@dxos/app-framework");
173
- var import_react_client7 = require("@dxos/react-client");
174
- var import_react_ui20 = require("@dxos/react-ui");
175
- var import_react_ui_tabs = require("@dxos/react-ui-tabs");
176
- var import_react26 = require("@dxos/shell/react");
177
- var import_react27 = __toESM(require("react"));
189
+ var import_react29 = __toESM(require("react"));
178
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");
179
198
  var import_services = require("@dxos/protocols/proto/dxos/client/services");
180
199
  var import_metadata2 = require("@dxos/protocols/proto/dxos/echo/metadata");
181
- var import_react_client8 = require("@dxos/react-client");
182
- var import_react_ui21 = require("@dxos/react-ui");
200
+ var import_react_client7 = require("@dxos/react-client");
201
+ var import_react_ui23 = require("@dxos/react-ui");
183
202
  var import_react_ui_attention2 = require("@dxos/react-ui-attention");
184
- var import_react28 = require("react");
203
+ var import_react31 = require("react");
185
204
  var import_context = require("@dxos/context");
186
205
  var import_protocols = require("@dxos/protocols");
187
- var import_react_client9 = require("@dxos/react-client");
188
- var import_react29 = __toESM(require("react"));
206
+ var import_react_client8 = require("@dxos/react-client");
207
+ var import_react32 = __toESM(require("react"));
189
208
  var import_plugin_status_bar = require("@dxos/plugin-status-bar");
190
- var import_react_client10 = require("@dxos/react-client");
191
- var import_react_ui22 = require("@dxos/react-ui");
209
+ var import_react_client9 = require("@dxos/react-client");
210
+ var import_react_ui24 = require("@dxos/react-ui");
192
211
  var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
193
- var import_react_ui_theme5 = require("@dxos/react-ui-theme");
194
- var import_react30 = __toESM(require("react"));
195
- var import_react_client11 = require("@dxos/react-client");
196
- var import_echo6 = require("@dxos/react-client/echo");
197
- var import_react_ui23 = require("@dxos/react-ui");
198
- var import_react_ui_theme6 = require("@dxos/react-ui-theme");
212
+ var import_react_ui_theme7 = require("@dxos/react-ui-theme");
213
+ var import_react33 = __toESM(require("react"));
214
+ var import_react_client10 = require("@dxos/react-client");
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");
199
218
  var import_context2 = require("@dxos/context");
200
- var ForeignKeys = ({ keys, onDelete }) => {
201
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.List, {
202
- classNames: "flex flex-col gap-2"
203
- }, keys.map((key) => /* @__PURE__ */ import_react2.default.createElement(KeyItem, {
204
- key: key.id,
205
- forignKey: key,
206
- onDelete
207
- })));
208
- };
209
- var KeyItem = ({ forignKey, onDelete }) => {
210
- const { t } = (0, import_react_ui2.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
211
- const handleDelete = (0, import_react2.useCallback)(() => {
212
- onDelete?.(forignKey);
213
- }, [
214
- forignKey,
215
- onDelete
216
- ]);
217
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.ListItem.Root, {
218
- classNames: "px-2"
219
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.ListItem.Heading, {
220
- classNames: "flex flex-col grow truncate"
221
- }, /* @__PURE__ */ import_react2.default.createElement("div", null, forignKey.source), /* @__PURE__ */ import_react2.default.createElement("div", {
222
- className: "text-description text-sm truncate"
223
- }, forignKey.id)), /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.ListItem.Endcap, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.IconButton, {
224
- iconOnly: true,
225
- icon: "ph--x--regular",
226
- variant: "ghost",
227
- label: t("delete key"),
228
- onClick: handleDelete
229
- })));
230
- };
231
- var initialValues = {
232
- source: "",
233
- id: ""
234
- };
235
- var AdvancedObjectSettings = ({ object }) => {
236
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
237
- const [adding, setAdding] = (0, import_react.useState)(false);
238
- const keys = (0, import_echo.getMeta)(object).keys;
239
- const handleNew = (0, import_react.useCallback)(() => setAdding(true), []);
240
- const handleCancel = (0, import_react.useCallback)(() => setAdding(false), []);
241
- const handleSave = (0, import_react.useCallback)((key) => {
242
- const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
243
- if (index === -1) {
244
- keys.push(key);
245
- }
246
- setAdding(false);
247
- }, [
248
- keys
249
- ]);
250
- const handleDelete = (0, import_react.useCallback)((key) => {
251
- const index = keys.findIndex(({ source, id }) => source === key.source && id === key.id);
252
- if (index !== -1) {
253
- keys.splice(index, 1);
254
- }
255
- }, [
256
- keys
257
- ]);
258
- return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Separator, null), /* @__PURE__ */ import_react.default.createElement("div", {
259
- className: "p-2 flex flex-col gap-4"
260
- }, /* @__PURE__ */ import_react.default.createElement("h2", null, t("advanced settings label")), /* @__PURE__ */ import_react.default.createElement("div", {
261
- className: "flex items-center"
262
- }, /* @__PURE__ */ import_react.default.createElement("h3", {
263
- className: "text-sm font-semibold"
264
- }, t("foreign keys")), /* @__PURE__ */ import_react.default.createElement("div", {
265
- className: "grow"
266
- }), /* @__PURE__ */ import_react.default.createElement(import_react_ui.IconButton, {
267
- classNames: adding && "invisible",
268
- icon: "ph--plus--regular",
269
- label: t("add key"),
270
- onClick: handleNew
271
- })), !adding && /* @__PURE__ */ import_react.default.createElement(ForeignKeys, {
272
- keys,
273
- onDelete: handleDelete
274
- })), adding && /* @__PURE__ */ import_react.default.createElement(import_react_ui_form.Form, {
275
- schema: import_echo_schema.ForeignKeySchema,
276
- values: initialValues,
277
- onSave: handleSave,
278
- onCancel: handleCancel
279
- }));
280
- };
281
219
  var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
282
220
  var TOAST_TIMEOUT = 24e4;
283
221
  var AwaitingObject = ({ id }) => {
284
- const [open, setOpen] = (0, import_react4.useState)(true);
285
- const [waiting, setWaiting] = (0, import_react4.useState)(true);
286
- const [found, setFound] = (0, import_react4.useState)(false);
287
- const { t } = (0, import_react_ui3.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
222
+ const [open, setOpen] = (0, import_react2.useState)(true);
223
+ const [waiting, setWaiting] = (0, import_react2.useState)(true);
224
+ const [found, setFound] = (0, import_react2.useState)(false);
225
+ const { t } = (0, import_react_ui.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
288
226
  const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
289
227
  const layout = (0, import_app_framework.useLayout)();
290
228
  const client = (0, import_react_client.useClient)();
291
- const objects = (0, import_echo2.useQuery)(client.spaces, import_echo2.Filter.all());
292
- (0, import_react4.useEffect)(() => {
229
+ const objects = (0, import_echo.useQuery)(client.spaces, import_echo.Filter.all());
230
+ (0, import_react2.useEffect)(() => {
293
231
  if (!id) {
294
232
  return;
295
233
  }
@@ -300,8 +238,8 @@ var AwaitingObject = ({ id }) => {
300
238
  }, [
301
239
  id
302
240
  ]);
303
- (0, import_react4.useEffect)(() => {
304
- if (objects.findIndex((object) => (0, import_echo2.fullyQualifiedId)(object) === id) > -1) {
241
+ (0, import_react2.useEffect)(() => {
242
+ if (objects.findIndex((object) => (0, import_echo.fullyQualifiedId)(object) === id) > -1) {
305
243
  setFound(true);
306
244
  if (layout.active.includes(id)) {
307
245
  setOpen(false);
@@ -312,12 +250,12 @@ var AwaitingObject = ({ id }) => {
312
250
  objects,
313
251
  layout
314
252
  ]);
315
- const handleClose = (0, import_react4.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_WAJKBO3J.SpaceAction.WaitForObject, {
253
+ const handleClose = (0, import_react2.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_WDEIFDTX.SpaceAction.WaitForObject, {
316
254
  id: void 0
317
255
  })), [
318
256
  dispatch
319
257
  ]);
320
- const handleNavigate = (0, import_react4.useCallback)(() => {
258
+ const handleNavigate = (0, import_react2.useCallback)(() => {
321
259
  void dispatch((0, import_app_framework.createIntent)(import_app_framework.LayoutAction.Open, {
322
260
  part: "main",
323
261
  subject: [
@@ -330,62 +268,42 @@ var AwaitingObject = ({ id }) => {
330
268
  handleClose,
331
269
  dispatch
332
270
  ]);
333
- return /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Toast.Root, {
271
+ return /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Root, {
334
272
  open,
335
273
  duration: TOAST_TIMEOUT,
336
274
  onOpenChange: setOpen
337
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Toast.Body, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Toast.Title, {
275
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Body, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Title, {
338
276
  classNames: "flex items-center gap-2"
339
- }, found ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CheckCircle, {
277
+ }, found ? /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react.CheckCircle, {
340
278
  className: (0, import_react_ui_theme.getSize)(5)
341
- }), /* @__PURE__ */ import_react4.default.createElement("span", null, t("found object label"))) : waiting ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CircleNotch, {
279
+ }), /* @__PURE__ */ import_react2.default.createElement("span", null, t("found object label"))) : waiting ? /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react.CircleNotch, {
342
280
  className: (0, import_react_ui_theme.mx)((0, import_react_ui_theme.getSize)(5), "animate-spin")
343
- }), /* @__PURE__ */ import_react4.default.createElement("span", null, t("waiting for object label"))) : /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CircleDashed, {
281
+ }), /* @__PURE__ */ import_react2.default.createElement("span", null, t("waiting for object label"))) : /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react.CircleDashed, {
344
282
  className: (0, import_react_ui_theme.getSize)(5)
345
- }), /* @__PURE__ */ import_react4.default.createElement("span", null, t("object not found label")))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Toast.Description, null, t(found ? "found object description" : waiting ? "waiting for object description" : "object not found description"))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Toast.Actions, null, found ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Toast.Action, {
283
+ }), /* @__PURE__ */ import_react2.default.createElement("span", null, t("object not found label")))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Description, null, t(found ? "found object description" : waiting ? "waiting for object description" : "object not found description"))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Actions, null, found ? /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Action, {
346
284
  altText: t("go to object alt"),
347
285
  asChild: true
348
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Button, {
286
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
349
287
  variant: "primary",
350
288
  onClick: handleNavigate
351
- }, t("go to object label"))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Toast.Close, {
289
+ }, t("go to object label"))), /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Close, {
352
290
  asChild: true
353
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Button, {
291
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
354
292
  onClick: handleClose
355
293
  }, t("close label", {
356
294
  ns: "appkit"
357
- })))) : /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Toast.Close, {
295
+ })))) : /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Toast.Close, {
358
296
  asChild: true
359
- }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Button, {
297
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Button, {
360
298
  onClick: handleClose
361
299
  }, t(waiting ? "close label" : "confirm label", {
362
300
  ns: "appkit"
363
301
  })))));
364
302
  };
365
- var BaseObjectSettings = ({ object }) => {
366
- const { t } = (0, import_react_ui4.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
367
- const inputRef = import_react5.default.useRef(null);
368
- return /* @__PURE__ */ import_react5.default.createElement("div", {
369
- role: "form",
370
- className: "flex flex-col w-full p-2 gap-1"
371
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Input.Root, null, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Input.Label, null, t("name label")), /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Input.TextInput, {
372
- ref: inputRef,
373
- placeholder: t("name placeholder"),
374
- value: object.name ?? "",
375
- onChange: (event) => {
376
- object.name = event.target.value;
377
- },
378
- onKeyDown: (event) => {
379
- if (event.key === "Enter") {
380
- inputRef.current?.blur();
381
- }
382
- }
383
- })));
384
- };
385
303
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectPanel.tsx";
386
304
  var useInputSurfaceLookup = (baseData) => {
387
305
  const pluginManager = (0, import_app_framework3.usePluginManager)();
388
- return (0, import_react7.useCallback)(({ prop, schema, inputProps }) => {
306
+ return (0, import_react4.useCallback)(({ prop, schema, inputProps }) => {
389
307
  const composedData = {
390
308
  prop,
391
309
  schema,
@@ -397,7 +315,7 @@ var useInputSurfaceLookup = (baseData) => {
397
315
  })) {
398
316
  return void 0;
399
317
  }
400
- return /* @__PURE__ */ import_react7.default.createElement(import_app_framework3.Surface, {
318
+ return /* @__PURE__ */ import_react4.default.createElement(import_app_framework3.Surface, {
401
319
  role: "form-input",
402
320
  data: composedData,
403
321
  ...inputProps
@@ -408,11 +326,11 @@ var useInputSurfaceLookup = (baseData) => {
408
326
  ]);
409
327
  };
410
328
  var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename, target: initialTarget, name: initialName, defaultSpaceId, resolve, onCreateObject }) => {
411
- const { t } = (0, import_react_ui6.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
412
- const [typename, setTypename] = (0, import_react7.useState)(initialTypename);
413
- const [target, setTarget] = (0, import_react7.useState)(initialTarget);
414
- const form = forms.find((form2) => (0, import_echo_schema2.getObjectAnnotation)(form2.objectSchema)?.typename === typename);
415
- const options = forms.map((form2) => (0, import_echo_schema2.getObjectAnnotation)(form2.objectSchema)).filter(import_util.isNonNullable).sort((a, b) => {
329
+ const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
330
+ const [typename, setTypename] = (0, import_react4.useState)(initialTypename);
331
+ const [target, setTarget] = (0, import_react4.useState)(initialTarget);
332
+ const form = forms.find((form2) => (0, import_echo_schema.getTypeAnnotation)(form2.objectSchema)?.typename === typename);
333
+ const options = forms.map((form2) => (0, import_echo_schema.getTypeAnnotation)(form2.objectSchema)).filter(import_util.isNonNullable).sort((a, b) => {
416
334
  const nameA = t("typename label", {
417
335
  ns: a.typename,
418
336
  defaultValue: a.typename
@@ -423,7 +341,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
423
341
  });
424
342
  return nameA.localeCompare(nameB);
425
343
  });
426
- const handleCreateObject = (0, import_react7.useCallback)(async (props) => {
344
+ const handleCreateObject = (0, import_react4.useCallback)(async (props) => {
427
345
  if (!form || !target) {
428
346
  return;
429
347
  }
@@ -437,7 +355,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
437
355
  form,
438
356
  target
439
357
  ]);
440
- const handleSetTypename = (0, import_react7.useCallback)(async (typename2) => {
358
+ const handleSetTypename = (0, import_react4.useCallback)(async (typename2) => {
441
359
  (0, import_invariant2.invariant)(target, "target is required", {
442
360
  F: __dxlog_file,
443
361
  L: 94,
@@ -447,7 +365,7 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
447
365
  "'target is required'"
448
366
  ]
449
367
  });
450
- const form2 = forms.find((form3) => (0, import_echo_schema2.getObjectAnnotation)(form3.objectSchema)?.typename === typename2);
368
+ const form2 = forms.find((form3) => (0, import_echo_schema.getTypeAnnotation)(form3.objectSchema)?.typename === typename2);
451
369
  if (form2 && !form2.formSchema) {
452
370
  await onCreateObject?.({
453
371
  form: form2,
@@ -464,18 +382,18 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
464
382
  const inputSurfaceLookup = useInputSurfaceLookup({
465
383
  target
466
384
  });
467
- return /* @__PURE__ */ import_react7.default.createElement("div", {
385
+ return /* @__PURE__ */ import_react4.default.createElement("div", {
468
386
  role: "form",
469
387
  className: (0, import_react_ui_theme2.mx)("flex flex-col gap-2", classNames)
470
- }, !form ? /* @__PURE__ */ import_react7.default.createElement(SelectSchema, {
388
+ }, !form ? /* @__PURE__ */ import_react4.default.createElement(SelectSchema, {
471
389
  options,
472
390
  resolve,
473
391
  onChange: handleSetTypename
474
- }) : !target ? /* @__PURE__ */ import_react7.default.createElement(SelectSpace, {
392
+ }) : !target ? /* @__PURE__ */ import_react4.default.createElement(SelectSpace, {
475
393
  spaces,
476
394
  defaultSpaceId,
477
395
  onChange: setTarget
478
- }) : form.formSchema ? /* @__PURE__ */ import_react7.default.createElement(import_react_ui_form2.Form, {
396
+ }) : form.formSchema ? /* @__PURE__ */ import_react4.default.createElement(import_react_ui_form.Form, {
479
397
  classNames: "!p-0",
480
398
  autoFocus: true,
481
399
  values: {
@@ -488,51 +406,51 @@ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename,
488
406
  }) : void 0);
489
407
  };
490
408
  var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
491
- const { t } = (0, import_react_ui6.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
492
- return /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Root, {
409
+ const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
410
+ return /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Root, {
493
411
  label: t("space input label"),
494
412
  classNames: "flex flex-col grow overflow-hidden"
495
- }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Input, {
413
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Input, {
496
414
  autoFocus: true,
497
415
  "data-testid": "create-object-form.space-input",
498
416
  placeholder: t("space input placeholder"),
499
417
  classNames: "px-1 my-2"
500
- }), /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Content, {
418
+ }), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Content, {
501
419
  classNames: "max-bs-[24rem] overflow-auto"
502
420
  }, spaces.sort((a, b) => {
503
- const aName = (0, import_react_ui6.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(a, {
421
+ const aName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(a, {
504
422
  personal: a.id === defaultSpaceId
505
423
  }), t);
506
- const bName = (0, import_react_ui6.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(b, {
424
+ const bName = (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(b, {
507
425
  personal: b.id === defaultSpaceId
508
426
  }), t);
509
427
  return aName.localeCompare(bName);
510
- }).map((space) => /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Item, {
428
+ }).map((space) => /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Item, {
511
429
  key: space.id,
512
- value: (0, import_react_ui6.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
430
+ value: (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
513
431
  personal: space.id === defaultSpaceId
514
432
  }), t),
515
433
  onSelect: () => onChange(space),
516
434
  classNames: "flex items-center gap-2"
517
- }, /* @__PURE__ */ import_react7.default.createElement("span", {
435
+ }, /* @__PURE__ */ import_react4.default.createElement("span", {
518
436
  className: "grow truncate"
519
- }, (0, import_react_ui6.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
437
+ }, (0, import_react_ui3.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
520
438
  personal: space.id === defaultSpaceId
521
439
  }), t))))));
522
440
  };
523
441
  var SelectSchema = ({ options, resolve, onChange }) => {
524
- const { t } = (0, import_react_ui6.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
525
- return /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Root, {
442
+ const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
443
+ return /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Root, {
526
444
  label: t("schema input label"),
527
445
  classNames: "flex flex-col grow overflow-hidden"
528
- }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Input, {
446
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Input, {
529
447
  autoFocus: true,
530
448
  "data-testid": "create-object-form.schema-input",
531
449
  placeholder: t("schema input placeholder"),
532
450
  classNames: "px-1 my-2"
533
- }), /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Content, {
451
+ }), /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Content, {
534
452
  classNames: "max-bs-[24rem] overflow-auto"
535
- }, options.map((option) => /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Item, {
453
+ }, options.map((option) => /* @__PURE__ */ import_react4.default.createElement(import_react_ui_searchlist.SearchList.Item, {
536
454
  key: option.typename,
537
455
  value: t("typename label", {
538
456
  ns: option.typename,
@@ -540,9 +458,9 @@ var SelectSchema = ({ options, resolve, onChange }) => {
540
458
  }),
541
459
  onSelect: () => onChange(option.typename),
542
460
  classNames: "flex items-center gap-2"
543
- }, /* @__PURE__ */ import_react7.default.createElement("span", {
461
+ }, /* @__PURE__ */ import_react4.default.createElement("span", {
544
462
  className: "flex gap-2 items-center grow truncate"
545
- }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui6.Icon, {
463
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui3.Icon, {
546
464
  icon: resolve?.(option.typename).icon ?? "ph--placeholder--regular",
547
465
  size: 5
548
466
  }), t("typename label", {
@@ -550,39 +468,39 @@ var SelectSchema = ({ options, resolve, onChange }) => {
550
468
  defaultValue: option.typename
551
469
  }))))));
552
470
  };
553
- var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-ZIUBXRPA.cjs"));
554
- var AppGraphSerializer = (0, import_app_framework4.lazy)(() => import("./app-graph-serializer-VQOGHKXL.cjs"));
555
- var IdentityCreated = (0, import_app_framework4.lazy)(() => import("./identity-created-AXI64BLE.cjs"));
556
- var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-ICHHI6I6.cjs"));
557
- var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-TCBTUOOJ.cjs"));
558
- var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-JSCCIZS5.cjs"));
559
- var Schema = (0, import_app_framework4.lazy)(() => import("./schema-YN7WVFRX.cjs"));
560
- var SpaceSettings = (0, import_app_framework4.lazy)(() => import("./settings-5QYFWNH7.cjs"));
561
- var SpaceState = (0, import_app_framework4.lazy)(() => import("./state-57UE3DYE.cjs"));
562
- var SpacesReady = (0, import_app_framework4.lazy)(() => import("./spaces-ready-FQNAKR7G.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-UMF6MLOH.cjs"));
475
+ var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-ZRFHMM7R.cjs"));
476
+ var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-72U57CIU.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"));
563
482
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
564
- var CREATE_OBJECT_DIALOG = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/CreateObjectDialog`;
483
+ var CREATE_OBJECT_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/CreateObjectDialog`;
565
484
  var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavigate }) => {
566
- const closeRef = (0, import_react6.useRef)(null);
485
+ const closeRef = (0, import_react3.useRef)(null);
567
486
  const manager = (0, import_app_framework2.usePluginManager)();
568
- const { t } = (0, import_react_ui5.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
487
+ const { t } = (0, import_react_ui2.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
569
488
  const client = (0, import_react_client2.useClient)();
570
- const spaces = (0, import_echo3.useSpaces)();
489
+ const spaces = (0, import_echo2.useSpaces)();
571
490
  const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
572
- const forms = (0, import_app_framework2.useCapabilities)(import_chunk_YZKNRFHU.SpaceCapabilities.ObjectForm);
573
- const resolve = (0, import_react6.useCallback)((typename2) => manager.context.requestCapabilities(import_app_framework2.Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
491
+ const forms = (0, import_app_framework2.useCapabilities)(import_chunk_IKIDS6XF.SpaceCapabilities.ObjectForm);
492
+ const resolve = (0, import_react3.useCallback)((typename2) => manager.context.requestCapabilities(import_app_framework2.Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
574
493
  manager
575
494
  ]);
576
- const handleCreateObject = (0, import_react6.useCallback)(async ({ form, target: _target, data = {} }) => {
577
- const target2 = (0, import_echo3.isSpace)(_target) ? _target.properties[import_chunk_WAJKBO3J.CollectionType.typename]?.target : _target;
495
+ const handleCreateObject = (0, import_react3.useCallback)(async ({ form, target: target2, data = {} }) => {
578
496
  if (!target2) {
579
497
  return;
580
498
  }
581
499
  closeRef.current?.click();
582
- const space = (0, import_echo3.isSpace)(target2) ? target2 : (0, import_echo3.getSpace)(target2);
500
+ const space = (0, import_echo2.isSpace)(target2) ? target2 : (0, import_echo2.getSpace)(target2);
583
501
  (0, import_invariant.invariant)(space, "Missing space", {
584
502
  F: __dxlog_file2,
585
- L: 75,
503
+ L: 72,
586
504
  S: void 0,
587
505
  A: [
588
506
  "space",
@@ -593,10 +511,11 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
593
511
  space
594
512
  }));
595
513
  const object = result.data?.object;
596
- if ((0, import_echo3.isReactiveObject)(object)) {
597
- const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_WAJKBO3J.SpaceAction.AddObject, {
514
+ if ((0, import_echo2.isReactiveObject)(object)) {
515
+ const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_WDEIFDTX.SpaceAction.AddObject, {
598
516
  target: target2,
599
- object
517
+ object,
518
+ hidden: form.hidden
600
519
  });
601
520
  const shouldNavigate = _shouldNavigate ?? (() => true);
602
521
  if (shouldNavigate(object)) {
@@ -614,22 +533,22 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
614
533
  return (
615
534
  // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.
616
535
  // Consider factoring it out to the tabs package.
617
- /* @__PURE__ */ import_react6.default.createElement(import_react_ui5.Dialog.Content, {
536
+ /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Dialog.Content, {
618
537
  classNames: "p-0 bs-content max-bs-full md:max-is-[40rem] overflow-hidden"
619
- }, /* @__PURE__ */ import_react6.default.createElement("div", {
538
+ }, /* @__PURE__ */ import_react3.default.createElement("div", {
620
539
  role: "none",
621
540
  className: "flex justify-between pbs-2 pis-2 pie-2 @md:pbs-4 @md:pis-4 @md:pie-4"
622
- }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui5.Dialog.Title, null, t("create object dialog title")), /* @__PURE__ */ import_react6.default.createElement(import_react_ui5.Dialog.Close, {
541
+ }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Dialog.Title, null, t("create object dialog title")), /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Dialog.Close, {
623
542
  asChild: true
624
- }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui5.Button, {
543
+ }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Button, {
625
544
  ref: closeRef,
626
545
  density: "fine",
627
546
  variant: "ghost",
628
547
  autoFocus: true
629
- }, /* @__PURE__ */ import_react6.default.createElement(import_react_ui5.Icon, {
548
+ }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui2.Icon, {
630
549
  icon: "ph--x--regular",
631
550
  size: 4
632
- })))), /* @__PURE__ */ import_react6.default.createElement(CreateObjectPanel, {
551
+ })))), /* @__PURE__ */ import_react3.default.createElement(CreateObjectPanel, {
633
552
  classNames: "p-4",
634
553
  forms,
635
554
  spaces,
@@ -642,22 +561,22 @@ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavig
642
561
  }))
643
562
  );
644
563
  };
645
- var CREATE_SPACE_DIALOG = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/CreateSpaceDialog`;
646
- var initialValues2 = {
564
+ var CREATE_SPACE_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/CreateSpaceDialog`;
565
+ var initialValues = {
647
566
  edgeReplication: true
648
567
  };
649
568
  var CreateSpaceDialog = () => {
650
- const closeRef = (0, import_react8.useRef)(null);
651
- const { t } = (0, import_react_ui7.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
569
+ const closeRef = (0, import_react5.useRef)(null);
570
+ const { t } = (0, import_react_ui4.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
652
571
  const { dispatch } = (0, import_app_framework5.useIntentDispatcher)();
653
- const handleCreateSpace = (0, import_react8.useCallback)(async (data) => {
572
+ const handleCreateSpace = (0, import_react5.useCallback)(async (data) => {
654
573
  const program = import_effect2.Effect.gen(function* () {
655
- const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WAJKBO3J.SpaceAction.Create, data));
574
+ const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.Create, data));
656
575
  yield* dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.SwitchWorkspace, {
657
576
  part: "workspace",
658
577
  subject: space.id
659
578
  }));
660
- yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WAJKBO3J.SpaceAction.OpenCreateObject, {
579
+ yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WDEIFDTX.SpaceAction.OpenCreateObject, {
661
580
  target: space
662
581
  }));
663
582
  });
@@ -668,98 +587,100 @@ var CreateSpaceDialog = () => {
668
587
  return (
669
588
  // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.
670
589
  // Consider factoring it out to the tabs package.
671
- /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Content, {
590
+ /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Content, {
672
591
  classNames: "p-0 bs-content min-bs-[16rem] max-bs-full md:max-is-[32rem] overflow-hidden"
673
- }, /* @__PURE__ */ import_react8.default.createElement("div", {
592
+ }, /* @__PURE__ */ import_react5.default.createElement("div", {
674
593
  role: "none",
675
594
  className: "flex justify-between pbs-2 pis-2 pie-2 @md:pbs-4 @md:pis-4 @md:pie-4"
676
- }, /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Title, null, t("create space dialog title")), /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Close, {
595
+ }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Title, null, t("create space dialog title")), /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Dialog.Close, {
677
596
  asChild: true
678
- }, /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Button, {
597
+ }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Button, {
679
598
  ref: closeRef,
680
599
  density: "fine",
681
600
  variant: "ghost",
682
601
  autoFocus: true
683
- }, /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Icon, {
602
+ }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui4.Icon, {
684
603
  icon: "ph--x--regular",
685
604
  size: 4
686
- })))), /* @__PURE__ */ import_react8.default.createElement("div", {
605
+ })))), /* @__PURE__ */ import_react5.default.createElement("div", {
687
606
  className: "p-4"
688
- }, /* @__PURE__ */ import_react8.default.createElement(import_react_ui_form3.Form, {
607
+ }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui_form2.Form, {
689
608
  testId: "create-space-form",
690
609
  classNames: "!p-0",
691
610
  autoFocus: true,
692
- values: initialValues2,
693
- schema: import_chunk_WAJKBO3J.SpaceForm,
611
+ values: initialValues,
612
+ schema: import_chunk_WDEIFDTX.SpaceForm,
694
613
  onSave: handleCreateSpace
695
614
  })))
696
615
  );
697
616
  };
698
617
  var CollectionMain = ({ collection }) => {
699
- const { t } = (0, import_react_ui8.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
700
- return /* @__PURE__ */ import_react9.default.createElement("div", {
618
+ const { t } = (0, import_react_ui5.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
619
+ return /* @__PURE__ */ import_react6.default.createElement("div", {
701
620
  role: "none",
702
621
  className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
703
622
  "data-testid": "composer.firstRunMessage"
704
- }, /* @__PURE__ */ import_react9.default.createElement("p", {
623
+ }, /* @__PURE__ */ import_react6.default.createElement("p", {
705
624
  role: "alert",
706
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")
707
626
  }, collection.name ?? t("unnamed collection label")));
708
627
  };
709
628
  var CollectionSection = ({ collection }) => {
710
- const { t } = (0, import_react_ui9.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
711
- return /* @__PURE__ */ import_react10.default.createElement("div", {
629
+ const { t } = (0, import_react_ui6.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
630
+ return /* @__PURE__ */ import_react7.default.createElement("div", {
712
631
  className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
713
- }, /* @__PURE__ */ import_react10.default.createElement("span", {
632
+ }, /* @__PURE__ */ import_react7.default.createElement("span", {
714
633
  className: "truncate"
715
634
  }, collection.name ?? t("unnamed collection label")));
716
635
  };
717
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/JoinDialog.tsx";
718
- var JOIN_DIALOG = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/JoinDialog`;
636
+ var JOIN_DIALOG = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/JoinDialog`;
719
637
  var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
720
638
  const { dispatchPromise: dispatch } = (0, import_app_framework6.useIntentDispatcher)();
721
639
  const client = (0, import_react_client3.useClient)();
722
640
  const { graph } = (0, import_app_framework6.useAppGraph)();
723
- const { t } = (0, import_react_ui10.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
724
- const handleDone = (0, import_react11.useCallback)(async (result) => {
725
- if (result?.spaceKey) {
726
- await Promise.all([
727
- dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.AddToast, {
728
- part: "toast",
729
- subject: {
730
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/join-success`,
731
- duration: 5e3,
732
- title: [
733
- "join success label",
734
- {
735
- ns: import_chunk_WZR6OAN3.SPACE_PLUGIN
736
- }
737
- ],
738
- closeLabel: [
739
- "dismiss label",
740
- {
741
- ns: import_chunk_WZR6OAN3.SPACE_PLUGIN
742
- }
743
- ]
744
- }
745
- })),
746
- dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.UpdateDialog, {
747
- part: "dialog",
748
- options: {
749
- state: false
750
- }
751
- }))
752
- ]);
641
+ const { t } = (0, import_react_ui7.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
642
+ const handleDone = (0, import_react8.useCallback)(async (result) => {
643
+ const spaceKey = result?.spaceKey;
644
+ if (!spaceKey) {
645
+ return;
753
646
  }
754
- const space = result?.spaceKey ? client.spaces.get(result.spaceKey) : void 0;
647
+ await Promise.all([
648
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.AddToast, {
649
+ part: "toast",
650
+ subject: {
651
+ id: `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/join-success`,
652
+ duration: 5e3,
653
+ title: [
654
+ "join success label",
655
+ {
656
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
657
+ }
658
+ ],
659
+ closeLabel: [
660
+ "dismiss label",
661
+ {
662
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
663
+ }
664
+ ]
665
+ }
666
+ })),
667
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.UpdateDialog, {
668
+ part: "dialog",
669
+ options: {
670
+ state: false
671
+ }
672
+ }))
673
+ ]);
674
+ let space = client.spaces.get(spaceKey);
755
675
  if (!space) {
756
- import_log.log.warn("Space not found", result?.spaceKey, {
757
- F: __dxlog_file3,
758
- L: 57,
759
- S: void 0,
760
- C: (f, a) => f(...a)
676
+ const trigger = new import_async.Trigger();
677
+ client.spaces.subscribe(() => {
678
+ const space2 = client.spaces.get(spaceKey);
679
+ if (space2) {
680
+ trigger.wake(space2);
681
+ }
761
682
  });
762
- return;
683
+ space = await trigger.wait();
763
684
  }
764
685
  await dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.SwitchWorkspace, {
765
686
  part: "workspace",
@@ -798,29 +719,235 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
798
719
  client,
799
720
  graph
800
721
  ]);
801
- return /* @__PURE__ */ import_react11.default.createElement(import_react_ui10.Dialog.Content, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui10.Dialog.Title, {
722
+ return /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Content, null, /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Title, {
802
723
  classNames: "sr-only"
803
724
  }, t("join space label", {
804
725
  ns: "os"
805
- })), /* @__PURE__ */ import_react11.default.createElement(import_react12.JoinPanel, {
726
+ })), /* @__PURE__ */ import_react8.default.createElement(import_react9.JoinPanel, {
806
727
  ...props,
807
- exitActionParent: /* @__PURE__ */ import_react11.default.createElement(import_react_ui10.Dialog.Close, {
728
+ exitActionParent: /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Close, {
808
729
  asChild: true
809
730
  }),
810
- doneActionParent: /* @__PURE__ */ import_react11.default.createElement(import_react_ui10.Dialog.Close, {
731
+ doneActionParent: /* @__PURE__ */ import_react8.default.createElement(import_react_ui7.Dialog.Close, {
811
732
  asChild: true
812
733
  }),
813
734
  onDone: handleDone
814
735
  }));
815
736
  };
737
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/MembersContainer.tsx";
738
+ var activeActionKey = "dxos:react-shell/space-manager/active-action";
739
+ var handleInvitationEvent = (invitation, subscription) => {
740
+ const invitationCode = import_invitations.InvitationEncoder.encode(invitation);
741
+ if (invitation.state === import_invitations.Invitation.State.CONNECTING) {
742
+ import_log.log.info(JSON.stringify({
743
+ invitationCode,
744
+ authCode: invitation.authCode
745
+ }), void 0, {
746
+ F: __dxlog_file3,
747
+ L: 38,
748
+ S: void 0,
749
+ C: (f, a) => f(...a)
750
+ });
751
+ subscription.unsubscribe();
752
+ }
753
+ };
754
+ var MembersContainer = ({ space, createInvitationUrl }) => {
755
+ const { t } = (0, import_react_ui8.useTranslation)("os");
756
+ const config = (0, import_react_client4.useConfig)();
757
+ const invitations = (0, import_echo3.useSpaceInvitations)(space.key);
758
+ const visibleInvitations = invitations?.filter((invitation) => ![
759
+ import_invitations.Invitation.State.CANCELLED
760
+ ].includes(invitation.get().state));
761
+ const [activeAction, setInternalActiveAction] = (0, import_react11.useState)(localStorage.getItem(activeActionKey) ?? "inviteMany");
762
+ const setActiveAction = (nextAction) => {
763
+ setInternalActiveAction(nextAction);
764
+ localStorage.setItem(activeActionKey, nextAction);
765
+ };
766
+ const target = space.properties[import_chunk_WDEIFDTX.CollectionType.typename]?.target?.objects[0]?.target;
767
+ const inviteActions = (0, import_react11.useMemo)(() => ({
768
+ inviteOne: {
769
+ label: t("invite one label"),
770
+ description: t("invite one description"),
771
+ icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
772
+ icon: "ph--user-plus--regular",
773
+ size: 5
774
+ }),
775
+ testId: "membersContainer.inviteOne",
776
+ onClick: () => {
777
+ const invitation = space.share?.({
778
+ type: import_invitations.Invitation.Type.INTERACTIVE,
779
+ authMethod: import_invitations.Invitation.AuthMethod.SHARED_SECRET,
780
+ multiUse: false,
781
+ target: target && (0, import_echo3.fullyQualifiedId)(target)
782
+ });
783
+ if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
784
+ const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
785
+ }
786
+ }
787
+ },
788
+ inviteMany: {
789
+ label: t("invite many label"),
790
+ description: t("invite many description"),
791
+ icon: () => /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Icon, {
792
+ icon: "ph--users-three--regular",
793
+ size: 5
794
+ }),
795
+ testId: "membersContainer.inviteMany",
796
+ onClick: () => {
797
+ const invitation = space.share?.({
798
+ type: import_invitations.Invitation.Type.DELEGATED,
799
+ authMethod: import_invitations.Invitation.AuthMethod.KNOWN_PUBLIC_KEY,
800
+ multiUse: true,
801
+ target: target && (0, import_echo3.fullyQualifiedId)(target)
802
+ });
803
+ if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
804
+ const subscription = invitation.subscribe((invitation2) => handleInvitationEvent(invitation2, subscription));
805
+ }
806
+ }
807
+ }
808
+ }), [
809
+ t,
810
+ space,
811
+ target
812
+ ]);
813
+ const [selectedInvitation, setSelectedInvitation] = (0, import_react11.useState)(null);
814
+ const handleSend = (event) => {
815
+ setSelectedInvitation(event.invitation);
816
+ };
817
+ const handleBack = () => {
818
+ setSelectedInvitation(null);
819
+ };
820
+ return /* @__PURE__ */ import_react11.default.createElement(import_react_ui_stack.StackItem.Content, {
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
+ })
829
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrame, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
830
+ title: t("members label", {
831
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
832
+ })
833
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react12.SpaceMemberList, {
834
+ spaceKey: space.key,
835
+ includeSelf: true
836
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react_ui_form3.ControlFrameItem, {
837
+ title: t("invitations label", {
838
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
839
+ })
840
+ }, selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(InvitationSection, {
841
+ ...selectedInvitation,
842
+ onBack: handleBack
843
+ }), !selectedInvitation && /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
844
+ className: "text-description mbe-2"
845
+ }, t("space invitation description", {
846
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
847
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react12.InvitationList, {
848
+ className: "mb-2",
849
+ send: handleSend,
850
+ invitations: visibleInvitations ?? [],
851
+ onClickRemove: (invitation) => invitation.cancel(),
852
+ createInvitationUrl
853
+ }), /* @__PURE__ */ import_react11.default.createElement(import_react12.BifurcatedAction, {
854
+ actions: inviteActions,
855
+ activeAction,
856
+ onChangeActiveAction: setActiveAction,
857
+ "data-testid": "membersContainer.createInvitation"
858
+ }))))));
859
+ };
860
+ var InvitationSection = ({ state = import_invitations.Invitation.State.INIT, authCode, invitationId = "never", url = "never", onBack }) => {
861
+ const activeView = state < 0 ? "init" : state >= import_invitations.Invitation.State.CANCELLED ? "complete" : state >= import_invitations.Invitation.State.READY_FOR_AUTHENTICATION && authCode ? "auth-code" : "qr-code";
862
+ return /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.Root, {
863
+ activeView
864
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.Views, null, /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
865
+ id: "init"
866
+ }), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
867
+ id: "complete"
868
+ }, /* @__PURE__ */ import_react11.default.createElement(InvitationComplete, {
869
+ statusValue: state
870
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
871
+ id: "auth-code"
872
+ }, /* @__PURE__ */ import_react11.default.createElement(InvitationAuthCode, {
873
+ id: invitationId,
874
+ code: authCode ?? "never",
875
+ onCancel: onBack
876
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react12.Viewport.View, {
877
+ id: "qr-code"
878
+ }, /* @__PURE__ */ import_react11.default.createElement(InvitationQR, {
879
+ id: invitationId,
880
+ url,
881
+ onCancel: onBack
882
+ }))));
883
+ };
884
+ var InvitationQR = ({ id, url, onCancel }) => {
885
+ const { t } = (0, import_react_ui8.useTranslation)("os");
886
+ const qrLabel = (0, import_react_ui8.useId)("members-container__qr-code");
887
+ const emoji = (0, import_util2.hexToEmoji)(id);
888
+ return /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Clipboard.Provider, null, /* @__PURE__ */ import_react11.default.createElement("p", {
889
+ className: "text-description"
890
+ }, t("qr code description", {
891
+ ns: import_chunk_6P2DB4QQ.SPACE_PLUGIN
892
+ })), /* @__PURE__ */ import_react11.default.createElement("div", {
893
+ role: "group",
894
+ className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
895
+ }, /* @__PURE__ */ import_react11.default.createElement("div", {
896
+ role: "none",
897
+ className: "is-full aspect-square relative text-description"
898
+ }, /* @__PURE__ */ import_react11.default.createElement(import_react_qr_rounded.QR, {
899
+ rounding: 100,
900
+ backgroundColor: "transparent",
901
+ color: "currentColor",
902
+ "aria-labelledby": qrLabel,
903
+ errorCorrectionLevel: "Q",
904
+ cutout: true
905
+ }, url ?? "never"), /* @__PURE__ */ import_react11.default.createElement(import_react12.Centered, null, /* @__PURE__ */ import_react11.default.createElement(import_react12.Emoji, {
906
+ text: emoji
907
+ }))), /* @__PURE__ */ import_react11.default.createElement("span", {
908
+ id: qrLabel,
909
+ className: "sr-only"
910
+ }, t("qr label")), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Clipboard.Button, {
911
+ value: url ?? "never"
912
+ })), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Button, {
913
+ variant: "ghost",
914
+ onClick: onCancel
915
+ }, t("cancel label")));
916
+ };
917
+ var InvitationAuthCode = ({ id, code, onCancel }) => {
918
+ const { t } = (0, import_react_ui8.useTranslation)("os");
919
+ const emoji = (0, import_util2.hexToEmoji)(id);
920
+ return /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement("p", {
921
+ className: "text-description"
922
+ }, t("auth other device emoji message")), emoji && /* @__PURE__ */ import_react11.default.createElement(import_react12.Emoji, {
923
+ text: emoji,
924
+ className: "mli-auto mlb-2 text-center"
925
+ }), /* @__PURE__ */ import_react11.default.createElement("p", {
926
+ className: "text-description"
927
+ }, t("auth code message")), /* @__PURE__ */ import_react11.default.createElement(import_react12.AuthCode, {
928
+ code,
929
+ large: true,
930
+ classNames: "mli-auto mlb-2 text-center grow"
931
+ }), /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Button, {
932
+ variant: "ghost",
933
+ onClick: onCancel
934
+ }, t("cancel label")));
935
+ };
936
+ var InvitationComplete = ({ statusValue }) => {
937
+ return statusValue > 0 ? /* @__PURE__ */ import_react11.default.createElement(import_react10.Check, {
938
+ className: (0, import_react_ui_theme4.mx)("m-1.5", (0, import_react_ui_theme4.getSize)(6))
939
+ }) : /* @__PURE__ */ import_react11.default.createElement(import_react10.X, {
940
+ className: (0, import_react_ui_theme4.mx)("m-1.5", (0, import_react_ui_theme4.getSize)(6))
941
+ });
942
+ };
816
943
  var MenuFooter = ({ object }) => {
817
- const { t } = (0, import_react_ui11.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
818
- const client = (0, import_react_client4.useClient)();
944
+ const { t } = (0, import_react_ui9.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
945
+ const client = (0, import_react_client5.useClient)();
819
946
  const space = (0, import_echo4.getSpace)(object);
820
- const spaceName = space ? (0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
947
+ const spaceName = space ? (0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
821
948
  personal: client.spaces.default === space
822
949
  }) : "";
823
- return space ? /* @__PURE__ */ import_react14.default.createElement(import_react14.default.Fragment, null, /* @__PURE__ */ import_react14.default.createElement(import_react_ui11.DropdownMenu.Separator, null), /* @__PURE__ */ import_react14.default.createElement(import_react_ui11.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react14.default.createElement("dl", {
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", {
824
951
  className: "pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
825
952
  }, /* @__PURE__ */ import_react14.default.createElement("dt", {
826
953
  className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
@@ -828,7 +955,130 @@ var MenuFooter = ({ object }) => {
828
955
  className: "line-clamp-3"
829
956
  }, /* @__PURE__ */ import_react14.default.createElement(import_react13.Planet, {
830
957
  className: "inline-block mie-1"
831
- }), (0, import_react_ui11.toLocalizedString)(spaceName, t)))) : null;
958
+ }), (0, import_react_ui9.toLocalizedString)(spaceName, t)))) : null;
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
+ };
1041
+ var BaseObjectSettings = ({ classNames, children, object }) => {
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", {
1045
+ className: (0, import_react_ui_theme5.mx)("flex flex-col p-2 gap-2", classNames)
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, {
1047
+ ref: inputRef,
1048
+ placeholder: t("name placeholder"),
1049
+ value: object.name ?? "",
1050
+ onChange: (event) => {
1051
+ object.name = event.target.value;
1052
+ },
1053
+ onKeyDown: (event) => {
1054
+ if (event.key === "Enter") {
1055
+ inputRef.current?.blur();
1056
+ }
1057
+ }
1058
+ })), children);
1059
+ };
1060
+ var ObjectSettingsContainer = ({ object, role }) => {
1061
+ const data = (0, import_react15.useMemo)(() => ({
1062
+ subject: object
1063
+ }), [
1064
+ object
1065
+ ]);
1066
+ return /* @__PURE__ */ import_react15.default.createElement(import_react_ui10.Clipboard.Provider, null, /* @__PURE__ */ import_react15.default.createElement(import_react_ui_stack2.StackItem.Content, {
1067
+ toolbar: false,
1068
+ role
1069
+ }, /* @__PURE__ */ import_react15.default.createElement("div", {
1070
+ className: "flex flex-col overflow-y-auto divide-y divide-separator"
1071
+ }, /* @__PURE__ */ import_react15.default.createElement(BaseObjectSettings, {
1072
+ object
1073
+ }, /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
1074
+ role: "base-object-settings",
1075
+ data
1076
+ })), /* @__PURE__ */ import_react15.default.createElement(import_app_framework7.Surface, {
1077
+ role: "object-settings",
1078
+ data
1079
+ }), /* @__PURE__ */ import_react15.default.createElement(AdvancedObjectSettings, {
1080
+ object
1081
+ }))));
832
1082
  };
833
1083
  var Status;
834
1084
  (function(Status2) {
@@ -837,12 +1087,12 @@ var Status;
837
1087
  Status2[Status2["ERROR"] = 2] = "ERROR";
838
1088
  })(Status || (Status = {}));
839
1089
  var PersistenceStatus = ({ db }) => {
840
- const { t } = (0, import_react_ui12.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
841
- const [displayMessage, setDisplayMessage] = (0, import_react16.useState)(false);
842
- const [status, naturalSetStatus] = (0, import_react16.useState)(0);
843
- const [prevStatus, setPrevStatus] = (0, import_react16.useState)(0);
844
- const _setStatus = (0, import_async.debounce)(naturalSetStatus, 500);
845
- (0, import_react16.useEffect)(() => {
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);
1094
+ const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
1095
+ (0, import_react20.useEffect)(() => {
846
1096
  setPrevStatus(status);
847
1097
  if (prevStatus !== status && status === 0) {
848
1098
  setDisplayMessage(true);
@@ -854,49 +1104,49 @@ var PersistenceStatus = ({ db }) => {
854
1104
  ]);
855
1105
  switch (status) {
856
1106
  case 2:
857
- return /* @__PURE__ */ import_react16.default.createElement("div", {
1107
+ return /* @__PURE__ */ import_react20.default.createElement("div", {
858
1108
  className: "flex items-center"
859
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.Warning, {
860
- className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(4), "me-1")
861
- }), /* @__PURE__ */ import_react16.default.createElement("span", {
862
- className: (0, import_react_ui_theme4.mx)("text-sm", import_react_ui_theme4.warningText)
1109
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.Warning, {
1110
+ className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1111
+ }), /* @__PURE__ */ import_react20.default.createElement("span", {
1112
+ className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.warningText)
863
1113
  }, t("persistence error label")));
864
1114
  case 1:
865
- return /* @__PURE__ */ import_react16.default.createElement("div", {
1115
+ return /* @__PURE__ */ import_react20.default.createElement("div", {
866
1116
  className: "flex items-center"
867
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.ArrowsCounterClockwise, {
868
- className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(4), "me-1")
869
- }), /* @__PURE__ */ import_react16.default.createElement("span", {
870
- className: (0, import_react_ui_theme4.mx)("text-sm", import_react_ui_theme4.staticPlaceholderText)
1117
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.ArrowsCounterClockwise, {
1118
+ className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1119
+ }), /* @__PURE__ */ import_react20.default.createElement("span", {
1120
+ className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
871
1121
  }, t("persistence pending label")));
872
1122
  case 0:
873
1123
  default:
874
- return /* @__PURE__ */ import_react16.default.createElement(import_react_ui12.Tooltip.Root, {
1124
+ return /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Root, {
875
1125
  delayDuration: 400
876
- }, /* @__PURE__ */ import_react16.default.createElement(import_react_ui12.Tooltip.Trigger, {
1126
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui14.Tooltip.Trigger, {
877
1127
  role: "status",
878
1128
  className: "flex items-center"
879
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.CheckCircle, {
880
- className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(4), "me-1")
881
- }), displayMessage && /* @__PURE__ */ import_react16.default.createElement("span", {
882
- className: (0, import_react_ui_theme4.mx)("text-sm", import_react_ui_theme4.staticPlaceholderText)
883
- }, t("persisted locally label"))), /* @__PURE__ */ import_react16.default.createElement(import_react_ui12.Tooltip.Portal, null, /* @__PURE__ */ import_react16.default.createElement(import_react_ui12.Tooltip.Content, null, t("persisted locally message"), /* @__PURE__ */ import_react16.default.createElement(import_react_ui12.Tooltip.Arrow, null))));
1129
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.CheckCircle, {
1130
+ className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
1131
+ }), displayMessage && /* @__PURE__ */ import_react20.default.createElement("span", {
1132
+ className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
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))));
884
1134
  }
885
1135
  };
886
- var POPOVER_ADD_SPACE = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/PopoverRenameSpace`;
1136
+ var POPOVER_ADD_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
887
1137
  var PopoverAddSpace = () => {
888
- const { t } = (0, import_react_ui13.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
889
- const { dispatchPromise: dispatch } = (0, import_app_framework7.useIntentDispatcher)();
890
- return /* @__PURE__ */ import_react17.default.createElement("div", {
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", {
891
1141
  role: "none",
892
1142
  className: "grid grid-cols-1 gap-1 [&>button]:justify-start"
893
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui13.IconButton, {
1143
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
894
1144
  variant: "ghost",
895
1145
  label: t("create space label"),
896
1146
  icon: "ph--plus--regular",
897
1147
  onClick: () => {
898
- void dispatch((0, import_app_framework7.createIntent)(import_chunk_WAJKBO3J.SpaceAction.OpenCreateSpace));
899
- void dispatch((0, import_app_framework7.createIntent)(import_app_framework7.LayoutAction.UpdatePopover, {
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, {
900
1150
  part: "popover",
901
1151
  options: {
902
1152
  anchorId: "",
@@ -905,13 +1155,13 @@ var PopoverAddSpace = () => {
905
1155
  }));
906
1156
  },
907
1157
  "data-testid": "spacePlugin.createSpace"
908
- }), /* @__PURE__ */ import_react17.default.createElement(import_react_ui13.IconButton, {
1158
+ }), /* @__PURE__ */ import_react21.default.createElement(import_react_ui15.IconButton, {
909
1159
  variant: "ghost",
910
1160
  label: t("join space label"),
911
1161
  icon: "ph--sign-in--regular",
912
1162
  onClick: () => {
913
- void dispatch((0, import_app_framework7.createIntent)(import_chunk_WAJKBO3J.SpaceAction.Join));
914
- void dispatch((0, import_app_framework7.createIntent)(import_app_framework7.LayoutAction.UpdatePopover, {
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, {
915
1165
  part: "popover",
916
1166
  options: {
917
1167
  anchorId: "",
@@ -923,13 +1173,13 @@ var PopoverAddSpace = () => {
923
1173
  }));
924
1174
  };
925
1175
  var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
926
- var POPOVER_RENAME_OBJECT = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/PopoverRenameObject`;
1176
+ var POPOVER_RENAME_OBJECT = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameObject`;
927
1177
  var PopoverRenameObject = ({ object: obj }) => {
928
- const { t } = (0, import_react_ui14.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
929
- const doneButton = (0, import_react18.useRef)(null);
1178
+ const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1179
+ const doneButton = (0, import_react22.useRef)(null);
930
1180
  const object = obj;
931
- const [name, setName] = (0, import_react18.useState)(object.name || object.title || "");
932
- const handleDone = (0, import_react18.useCallback)(() => {
1181
+ const [name, setName] = (0, import_react22.useState)(object.name || object.title || "");
1182
+ const handleDone = (0, import_react22.useCallback)(() => {
933
1183
  try {
934
1184
  object.name = name;
935
1185
  } catch {
@@ -950,23 +1200,23 @@ var PopoverRenameObject = ({ object: obj }) => {
950
1200
  object,
951
1201
  name
952
1202
  ]);
953
- return /* @__PURE__ */ import_react18.default.createElement("div", {
1203
+ return /* @__PURE__ */ import_react22.default.createElement("div", {
954
1204
  role: "none",
955
1205
  className: "p-1 flex gap-2"
956
- }, /* @__PURE__ */ import_react18.default.createElement("div", {
1206
+ }, /* @__PURE__ */ import_react22.default.createElement("div", {
957
1207
  role: "none",
958
1208
  className: "flex-1"
959
- }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Input.Root, null, /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Input.Label, {
1209
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.Label, {
960
1210
  srOnly: true
961
- }, t("object name label")), /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Input.TextInput, {
962
- placeholder: t("object title placeholder"),
1211
+ }, t("object name label")), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Input.TextInput, {
1212
+ placeholder: t("object placeholder"),
963
1213
  value: name,
964
1214
  "data-testid": "spacePlugin.renameObject.input",
965
1215
  onChange: ({ target: { value } }) => setName(value),
966
1216
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
967
- }))), /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Popover.Close, {
1217
+ }))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Popover.Close, {
968
1218
  asChild: true
969
- }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Button, {
1219
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui16.Button, {
970
1220
  ref: doneButton,
971
1221
  classNames: "self-stretch",
972
1222
  onClick: handleDone
@@ -974,35 +1224,35 @@ var PopoverRenameObject = ({ object: obj }) => {
974
1224
  ns: "os"
975
1225
  }))));
976
1226
  };
977
- var POPOVER_RENAME_SPACE = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/PopoverRenameSpace`;
1227
+ var POPOVER_RENAME_SPACE = `${import_chunk_6P2DB4QQ.SPACE_PLUGIN}/PopoverRenameSpace`;
978
1228
  var PopoverRenameSpace = ({ space }) => {
979
- const { t } = (0, import_react_ui15.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
980
- const doneButton = (0, import_react19.useRef)(null);
981
- const [name, setName] = (0, import_react19.useState)(space.properties.name ?? "");
982
- const handleDone = (0, import_react19.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)(() => {
983
1233
  space.properties.name = name;
984
1234
  }, [
985
1235
  space,
986
1236
  name
987
1237
  ]);
988
- return /* @__PURE__ */ import_react19.default.createElement("div", {
1238
+ return /* @__PURE__ */ import_react23.default.createElement("div", {
989
1239
  role: "none",
990
1240
  className: "p-1 flex gap-2"
991
- }, /* @__PURE__ */ import_react19.default.createElement("div", {
1241
+ }, /* @__PURE__ */ import_react23.default.createElement("div", {
992
1242
  role: "none",
993
1243
  className: "flex-1"
994
- }, /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Input.Root, null, /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Input.Label, {
1244
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Root, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.Label, {
995
1245
  srOnly: true
996
- }, t("space name label")), /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Input.TextInput, {
1246
+ }, t("space name label")), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Input.TextInput, {
997
1247
  defaultValue: space.properties.name ?? "",
998
1248
  placeholder: t("unnamed space label"),
999
1249
  onChange: ({ target: { value } }) => setName(value),
1000
1250
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
1001
1251
  // Currently this is not possible because Radix does not expose the popover context.
1002
1252
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1003
- }))), /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Popover.Close, {
1253
+ }))), /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Popover.Close, {
1004
1254
  asChild: true
1005
- }, /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Button, {
1255
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui17.Button, {
1006
1256
  ref: doneButton,
1007
1257
  classNames: "self-stretch",
1008
1258
  onClick: handleDone
@@ -1011,16 +1261,16 @@ var PopoverRenameSpace = ({ space }) => {
1011
1261
  }))));
1012
1262
  };
1013
1263
  var ShareSpaceButton = ({ space }) => {
1014
- const { dispatchPromise: dispatch } = (0, import_app_framework8.useIntentDispatcher)();
1015
- return /* @__PURE__ */ import_react20.default.createElement(ShareSpaceButtonImpl, {
1016
- onClick: () => dispatch((0, import_app_framework8.createIntent)(import_chunk_WAJKBO3J.SpaceAction.Share, {
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, {
1017
1267
  space
1018
1268
  }))
1019
1269
  });
1020
1270
  };
1021
1271
  var ShareSpaceButtonImpl = ({ onClick }) => {
1022
- const { t } = (0, import_react_ui16.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1023
- return /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.IconButton, {
1272
+ const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1273
+ return /* @__PURE__ */ import_react24.default.createElement(import_react_ui18.IconButton, {
1024
1274
  "data-testid": "spacePlugin.shareSpaceButton",
1025
1275
  icon: "ph--users--regular",
1026
1276
  label: t("share space label"),
@@ -1028,10 +1278,10 @@ var ShareSpaceButtonImpl = ({ onClick }) => {
1028
1278
  });
1029
1279
  };
1030
1280
  var usePath = (graph, id, timeout) => {
1031
- const [pathState, setPathState] = (0, import_react22.useState)(id ? graph.getPath({
1281
+ const [pathState, setPathState] = (0, import_react26.useState)(id ? graph.getPath({
1032
1282
  target: id
1033
1283
  }) : void 0);
1034
- (0, import_react22.useEffect)(() => {
1284
+ (0, import_react26.useEffect)(() => {
1035
1285
  if (!id && pathState) {
1036
1286
  setPathState(void 0);
1037
1287
  }
@@ -1062,27 +1312,27 @@ var usePath = (graph, id, timeout) => {
1062
1312
  };
1063
1313
  var REFRESH_INTERVAL = 5e3;
1064
1314
  var ACTIVITY_DURATION = 3e4;
1065
- var noViewers = new import_util2.ComplexMap(import_react_client5.PublicKey.hash);
1315
+ var noViewers = new import_util3.ComplexMap(import_react_client6.PublicKey.hash);
1066
1316
  var getName = (identity) => identity.profile?.displayName ?? (0, import_display_name.generateName)(identity.identityKey.toHex());
1067
1317
  var SpacePresence = ({ object, spaceKey }) => {
1068
- const spaceState = (0, import_app_framework9.useCapability)(import_chunk_YZKNRFHU.SpaceCapabilities.MutableState);
1069
- const client = (0, import_react_client5.useClient)();
1318
+ const spaceState = (0, import_app_framework10.useCapability)(import_chunk_IKIDS6XF.SpaceCapabilities.MutableState);
1319
+ const client = (0, import_react_client6.useClient)();
1070
1320
  const identity = (0, import_halo.useIdentity)();
1071
- const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo5.getSpace)(object);
1072
- const spaceMembers = (0, import_echo5.useMembers)(space?.key);
1073
- const [_moment, setMoment] = (0, import_react21.useState)(Date.now());
1074
- (0, import_react21.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)(() => {
1075
1325
  const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
1076
1326
  return () => clearInterval(interval);
1077
1327
  }, []);
1078
- const memberOnline = (0, import_react21.useCallback)((member) => member.presence === 1, []);
1079
- const memberIsNotSelf = (0, import_react21.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), [
1080
1330
  identity?.identityKey
1081
1331
  ]);
1082
1332
  if (!identity || !spaceState || !space) {
1083
1333
  return null;
1084
1334
  }
1085
- const currentObjectViewers = spaceState.viewersByObject[(0, import_echo5.fullyQualifiedId)(object)] ?? noViewers;
1335
+ const currentObjectViewers = spaceState.viewersByObject[(0, import_echo6.fullyQualifiedId)(object)] ?? noViewers;
1086
1336
  const membersForObject = spaceMembers.filter((member) => memberOnline(member) && memberIsNotSelf(member)).filter((member) => currentObjectViewers.has(member.identity.identityKey)).map((member) => {
1087
1337
  const objectView = currentObjectViewers.get(member.identity.identityKey);
1088
1338
  const lastSeen = objectView?.lastSeen ?? -Infinity;
@@ -1093,79 +1343,76 @@ var SpacePresence = ({ object, spaceKey }) => {
1093
1343
  lastSeen
1094
1344
  };
1095
1345
  }).toSorted((a, b) => a.lastSeen - b.lastSeen);
1096
- return /* @__PURE__ */ import_react21.default.createElement(FullPresence, {
1346
+ return /* @__PURE__ */ import_react25.default.createElement(FullPresence, {
1097
1347
  members: membersForObject
1098
1348
  });
1099
1349
  };
1100
1350
  var FullPresence = (props) => {
1101
1351
  const { size = 9, onMemberClick } = props;
1102
- const members = (0, import_react_ui17.useDefaultValue)(props.members, () => []);
1352
+ const members = (0, import_react_ui19.useDefaultValue)(props.members, () => []);
1103
1353
  if (members.length === 0) {
1104
1354
  return null;
1105
1355
  }
1106
- return /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.AvatarGroup.Root, {
1107
- size,
1108
- classNames: "mbs-2 mie-4",
1356
+ return /* @__PURE__ */ import_react25.default.createElement("div", {
1357
+ className: "dx-avatar-group",
1109
1358
  "data-testid": "spacePlugin.presence"
1110
- }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Root, {
1359
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Root, {
1111
1360
  key: member.identity.identityKey.toHex()
1112
- }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Trigger, null, /* @__PURE__ */ import_react21.default.createElement(PrensenceAvatar, {
1361
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Trigger, null, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
1113
1362
  identity: member.identity,
1114
- group: true,
1115
1363
  match: member.currentlyAttended,
1116
1364
  index: members.length - i,
1117
- onClick: () => onMemberClick?.(member)
1118
- })), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Content, {
1365
+ onClick: () => onMemberClick?.(member),
1366
+ size
1367
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
1119
1368
  side: "bottom"
1120
- }, /* @__PURE__ */ import_react21.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Root, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Trigger, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.AvatarGroupItem.Root, {
1121
- status: "inactive"
1122
- }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Frame, {
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, {
1370
+ status: "inactive",
1123
1371
  style: {
1124
1372
  zIndex: members.length - 4
1125
- }
1126
- }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Fallback, {
1127
- text: `+${members.length - 3}`
1128
- })))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Content, {
1373
+ },
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, {
1129
1376
  side: "bottom"
1130
- }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Arrow, null), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.List, {
1377
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.List, {
1131
1378
  classNames: "max-h-56 overflow-y-auto"
1132
- }, members.map((member) => /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.ListItem.Root, {
1379
+ }, members.map((member) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.ListItem.Root, {
1133
1380
  key: member.identity.identityKey.toHex(),
1134
1381
  classNames: "flex gap-2 items-center cursor-pointer mbe-2",
1135
1382
  onClick: () => onMemberClick?.(member),
1136
1383
  "data-testid": "identity-list-item"
1137
- }, /* @__PURE__ */ import_react21.default.createElement(PrensenceAvatar, {
1384
+ }, /* @__PURE__ */ import_react25.default.createElement(PrensenceAvatar, {
1138
1385
  identity: member.identity,
1386
+ size,
1139
1387
  showName: true,
1140
1388
  match: member.currentlyAttended
1141
1389
  }))))))));
1142
1390
  };
1143
- var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) => {
1144
- const Root = group ? import_react_ui17.AvatarGroupItem.Root : import_react_ui17.Avatar.Root;
1391
+ var PrensenceAvatar = ({ identity, showName, match, index, onClick, size }) => {
1145
1392
  const status = match ? "current" : "active";
1146
- const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
1147
- return /* @__PURE__ */ import_react21.default.createElement(Root, {
1393
+ const fallbackValue = (0, import_util3.keyToFallback)(identity.identityKey);
1394
+ return /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Content, {
1148
1395
  status,
1149
- hue: identity.profile?.data?.hue || fallbackValue.hue
1150
- }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Frame, {
1396
+ hue: identity.profile?.data?.hue || fallbackValue.hue,
1151
1397
  "data-testid": "spacePlugin.presence.member",
1152
1398
  "data-status": status,
1399
+ size,
1400
+ classNames: "mbs-2 mie-4",
1153
1401
  ...index ? {
1154
1402
  style: {
1155
1403
  zIndex: index
1156
1404
  }
1157
1405
  } : {},
1158
- onClick: () => onClick?.()
1159
- }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Fallback, {
1160
- text: identity.profile?.data?.emoji || fallbackValue.emoji
1161
- })), showName && /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Label, {
1162
- classNames: "text-sm truncate pli-2"
1406
+ onClick: () => onClick?.(),
1407
+ fallback: identity.profile?.data?.emoji || fallbackValue.emoji
1408
+ }), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Avatar.Label, {
1409
+ classNames: showName ? "text-sm truncate pli-2" : "sr-only"
1163
1410
  }, getName(identity)));
1164
1411
  };
1165
1412
  var SmallPresenceLive = ({ id, open, viewers }) => {
1166
1413
  const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention.useAttention)(id);
1167
1414
  const isAttended = hasAttention || isAncestor || isRelated;
1168
- const { graph } = (0, import_app_framework9.useAppGraph)();
1415
+ const { graph } = (0, import_app_framework10.useAppGraph)();
1169
1416
  const attended = (0, import_react_ui_attention.useAttended)();
1170
1417
  const startOfAttention = attended.at(-1);
1171
1418
  const path = usePath(graph, startOfAttention);
@@ -1174,8 +1421,8 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1174
1421
  const moment = Date.now();
1175
1422
  return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
1176
1423
  };
1177
- const [activeViewers, setActiveViewers] = (0, import_react21.useState)(viewers ? getActiveViewers(viewers) : []);
1178
- (0, import_react21.useEffect)(() => {
1424
+ const [activeViewers, setActiveViewers] = (0, import_react25.useState)(viewers ? getActiveViewers(viewers) : []);
1425
+ (0, import_react25.useEffect)(() => {
1179
1426
  if (viewers) {
1180
1427
  setActiveViewers(getActiveViewers(viewers));
1181
1428
  const interval = setInterval(() => {
@@ -1186,48 +1433,46 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1186
1433
  }, [
1187
1434
  viewers
1188
1435
  ]);
1189
- return /* @__PURE__ */ import_react21.default.createElement(SmallPresence, {
1436
+ return /* @__PURE__ */ import_react25.default.createElement(SmallPresence, {
1190
1437
  count: activeViewers.length,
1191
1438
  attended: isAttended,
1192
1439
  containsAttended
1193
1440
  });
1194
1441
  };
1195
1442
  var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1196
- const { t } = (0, import_react_ui17.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1197
- return /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Root, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Trigger, {
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, {
1198
1445
  asChild: true
1199
- }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui_attention.AttentionGlyph, {
1446
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_attention.AttentionGlyph, {
1200
1447
  attended,
1201
1448
  containsAttended,
1202
1449
  presence: count > 1 ? "many" : count === 1 ? "one" : "none",
1203
1450
  classNames: "self-center mie-1"
1204
- })), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Content, {
1451
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Portal, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Content, {
1205
1452
  side: "bottom"
1206
- }, /* @__PURE__ */ import_react21.default.createElement("span", null, t("presence label", {
1453
+ }, /* @__PURE__ */ import_react25.default.createElement("span", null, t("presence label", {
1207
1454
  count
1208
- })), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Arrow, null))));
1455
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui19.Tooltip.Arrow, null))));
1209
1456
  };
1210
1457
  var SpacePluginSettings = ({ settings }) => {
1211
- const { t } = (0, import_react_ui18.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1212
- return /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form4.DeprecatedFormContainer, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form4.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, {
1213
1460
  label: t("show hidden spaces label")
1214
- }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui18.Input.Switch, {
1461
+ }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui20.Input.Switch, {
1215
1462
  checked: settings.showHidden,
1216
1463
  onCheckedChange: (checked) => settings.showHidden = !!checked
1217
1464
  })));
1218
1465
  };
1219
- var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsPanel.tsx";
1220
- var SpaceSettingsPanel = ({ space }) => {
1221
- const { t } = (0, import_react_ui19.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1222
- const client = (0, import_react_client6.useClient)();
1223
- const edgeEnabled = Boolean(client.config.values.runtime?.client?.edgeFeatures?.echoReplicator);
1224
- const [edgeReplication, setEdgeReplication] = (0, import_react24.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
1225
- 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) => {
1226
1471
  setEdgeReplication(next);
1227
1472
  await space?.internal.setEdgeReplicationPreference(next ? import_metadata.EdgeReplicationSetting.ENABLED : import_metadata.EdgeReplicationSetting.DISABLED).catch((err) => {
1228
1473
  import_log3.log.catch(err, void 0, {
1229
1474
  F: __dxlog_file5,
1230
- L: 36,
1475
+ L: 34,
1231
1476
  S: void 0,
1232
1477
  C: (f, a) => f(...a)
1233
1478
  });
@@ -1236,131 +1481,147 @@ var SpaceSettingsPanel = ({ space }) => {
1236
1481
  }, [
1237
1482
  space
1238
1483
  ]);
1239
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormContainer, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1240
- label: t("name label")
1241
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Input.TextInput, {
1242
- placeholder: t("unnamed space label"),
1243
- value: space.properties.name ?? "",
1244
- onChange: (event) => {
1245
- space.properties.name = event.target.value;
1484
+ const handleSave = (0, import_react28.useCallback)((properties) => {
1485
+ void toggleEdgeReplication(properties.edgeReplication);
1486
+ if (properties.name !== space.properties.name) {
1487
+ space.properties.name = properties.name;
1246
1488
  }
1247
- })), /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1248
- label: t("icon label")
1249
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Toolbar.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_pickers.IconPicker, {
1250
- value: space.properties.icon,
1251
- onChange: (nextIcon) => space.properties.icon = nextIcon,
1252
- onReset: () => {
1253
- space.properties.icon = void 0;
1489
+ if (properties.icon !== space.properties.icon) {
1490
+ space.properties.icon = properties.icon;
1254
1491
  }
1255
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1256
- label: t("hue label")
1257
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Toolbar.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_pickers.HuePicker, {
1258
- value: space.properties.hue,
1259
- onChange: (nextHue) => space.properties.hue = nextHue,
1260
- onReset: () => {
1261
- space.properties.hue = void 0;
1492
+ if (properties.hue !== space.properties.hue) {
1493
+ space.properties.hue = properties.hue;
1262
1494
  }
1263
- }))), edgeEnabled && /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1264
- label: t("edge replication label")
1265
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Input.Switch, {
1266
- checked: edgeReplication,
1267
- onCheckedChange: toggleEdgeReplication
1268
- })));
1269
- };
1270
- var SPACE_SETTINGS_DIALOG = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/SpaceSettingsDialog`;
1271
- var SpaceSettingsDialog = ({ space, target, createInvitationUrl, initialTab = "members", namesCache }) => {
1272
- const { t } = (0, import_react_ui20.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1273
- const client = (0, import_react_client7.useClient)();
1274
- const [tabsActivePart, setTabsActivePart] = (0, import_react25.useState)("list");
1275
- const [selected, setSelected] = (0, import_react25.useState)(initialTab);
1276
- const locked = space.properties[import_chunk_OVGKWJOC.COMPOSER_SPACE_LOCK];
1277
- const name = (0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
1278
- personal: client.spaces.default === space,
1279
- namesCache
1495
+ }, [
1496
+ space,
1497
+ toggleEdgeReplication
1498
+ ]);
1499
+ const values = (0, import_react28.useMemo)(() => ({
1500
+ name: space.properties.name,
1501
+ icon: space.properties.icon,
1502
+ hue: space.properties.hue,
1503
+ edgeReplication
1504
+ }), [
1505
+ space.properties.name,
1506
+ space.properties.icon,
1507
+ space.properties.hue,
1508
+ edgeReplication
1509
+ ]);
1510
+ const customElements = (0, import_react28.useMemo)(() => ({
1511
+ name: ({ type, label, getValue, onValueChange }) => {
1512
+ const handleChange = (0, import_react28.useCallback)(({ target: { value } }) => onValueChange(type, value), [
1513
+ onValueChange,
1514
+ type
1515
+ ]);
1516
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
1517
+ title: label,
1518
+ description: t("display name description")
1519
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.TextInput, {
1520
+ value: getValue(),
1521
+ onChange: handleChange,
1522
+ placeholder: t("display name input placeholder"),
1523
+ classNames: "min-is-64"
1524
+ }));
1525
+ },
1526
+ icon: ({ type, label, getValue, onValueChange }) => {
1527
+ const handleChange = (0, import_react28.useCallback)((nextEmoji) => onValueChange(type, nextEmoji), [
1528
+ onValueChange,
1529
+ type
1530
+ ]);
1531
+ const handleEmojiReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
1532
+ onValueChange,
1533
+ type
1534
+ ]);
1535
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
1536
+ title: label,
1537
+ description: t("icon description")
1538
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.IconPicker, {
1539
+ value: getValue(),
1540
+ onChange: handleChange,
1541
+ onReset: handleEmojiReset,
1542
+ classNames: "justify-self-end",
1543
+ iconSize: 5
1544
+ }));
1545
+ },
1546
+ hue: ({ type, label, getValue, onValueChange }) => {
1547
+ const handleChange = (0, import_react28.useCallback)((nextHue) => onValueChange(type, nextHue), [
1548
+ onValueChange,
1549
+ type
1550
+ ]);
1551
+ const handleHueReset = (0, import_react28.useCallback)(() => onValueChange(type, void 0), [
1552
+ onValueChange,
1553
+ type
1554
+ ]);
1555
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItem, {
1556
+ title: label,
1557
+ description: t("hue description")
1558
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui_pickers.HuePicker, {
1559
+ value: getValue(),
1560
+ onChange: handleChange,
1561
+ onReset: handleHueReset,
1562
+ classNames: "[--hue-preview-size:1.25rem] justify-self-end"
1563
+ }));
1564
+ },
1565
+ edgeReplication: ({ type, label, getValue, onValueChange }) => {
1566
+ const handleChange = (0, import_react28.useCallback)((checked) => onValueChange(type, checked), [
1567
+ onValueChange,
1568
+ type
1569
+ ]);
1570
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.ControlItemInput, {
1571
+ title: label,
1572
+ description: t("edge replication description")
1573
+ }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.Switch, {
1574
+ checked: getValue(),
1575
+ onCheckedChange: handleChange,
1576
+ classNames: "justify-self-end"
1577
+ }));
1578
+ }
1579
+ }), [
1580
+ t
1581
+ ]);
1582
+ return /* @__PURE__ */ import_react28.default.createElement(import_react_ui_form6.Form, {
1583
+ schema: import_chunk_WDEIFDTX.SpaceForm,
1584
+ values,
1585
+ autoSave: true,
1586
+ onSave: handleSave,
1587
+ Custom: customElements,
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'
1280
1589
  });
1281
- const panels = (0, import_app_framework10.useCapabilities)(import_chunk_YZKNRFHU.SpaceCapabilities.SettingsPanel);
1282
- const data = (0, import_react25.useMemo)(() => ({
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)(() => ({
1283
1597
  subject: space
1284
1598
  }), [
1285
1599
  space
1286
1600
  ]);
1287
- return (
1288
- // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.
1289
- // Consider factoring it out to the tabs package.
1290
- /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Dialog.Content, {
1291
- classNames: "p-0 bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden"
1292
- }, /* @__PURE__ */ import_react25.default.createElement("div", {
1293
- role: "none",
1294
- className: "flex justify-between pbs-2 pis-2 pie-2 @md:pbs-4 @md:pis-4 @md:pie-4"
1295
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Dialog.Title, {
1296
- onClick: () => setTabsActivePart("list"),
1297
- "aria-description": t("click to return to tablist description"),
1298
- classNames: "flex cursor-pointer items-center group/title"
1299
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Icon, {
1300
- icon: "ph--caret-left--regular",
1301
- size: 4,
1302
- classNames: [
1303
- "@md:hidden",
1304
- tabsActivePart === "list" && "invisible"
1305
- ]
1306
- }), /* @__PURE__ */ import_react25.default.createElement("span", {
1307
- className: tabsActivePart !== "list" ? "group-hover/title:underline @md:group-hover/title:no-underline underline-offset-4 decoration-1" : ""
1308
- }, (0, import_react_ui20.toLocalizedString)(name, t))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Dialog.Close, {
1309
- asChild: true
1310
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Button, {
1311
- density: "fine",
1312
- variant: "ghost",
1313
- autoFocus: true
1314
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Icon, {
1315
- icon: "ph--x--regular",
1316
- size: 4
1317
- })))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Root, {
1318
- orientation: "vertical",
1319
- value: selected,
1320
- onValueChange: setSelected,
1321
- activePart: tabsActivePart,
1322
- onActivePartChange: setTabsActivePart,
1323
- classNames: "flex flex-col flex-1 mbs-2"
1324
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Viewport, {
1325
- classNames: "flex-1 min-bs-0"
1326
- }, /* @__PURE__ */ import_react25.default.createElement("div", {
1327
- role: "none",
1328
- className: "overflow-y-auto pli-3 @md:pis-2 @md:pie-0 mbe-4 border-r border-separator"
1329
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tablist, {
1330
- classNames: "flex flex-col max-bs-none min-is-[200px] gap-4 overflow-y-auto"
1331
- }, /* @__PURE__ */ import_react25.default.createElement("div", {
1332
- role: "none",
1333
- className: "flex flex-col ml-1"
1334
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tab, {
1335
- value: "settings"
1336
- }, t("settings tab label")), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tab, {
1337
- value: "members",
1338
- disabled: locked
1339
- }, t("members tab label")), panels.map((panel) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tab, {
1340
- key: panel.id,
1341
- value: panel.id
1342
- }, (0, import_react_ui20.toLocalizedString)(panel.label, t)))))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
1343
- value: "settings",
1344
- classNames: "pli-3 @md:pli-5 max-bs-dvh overflow-y-auto"
1345
- }, /* @__PURE__ */ import_react25.default.createElement(SpaceSettingsPanel, {
1346
- space
1347
- })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
1348
- value: "members",
1349
- classNames: "pli-3 @md:pli-5 max-bs-dvh overflow-y-auto"
1350
- }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Clipboard.Provider, null, /* @__PURE__ */ import_react25.default.createElement(import_react26.SpacePanel, {
1351
- space,
1352
- hideHeading: true,
1353
- target,
1354
- createInvitationUrl
1355
- }))), panels.map((panel) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
1356
- key: panel.id,
1357
- value: panel.id,
1358
- classNames: "pli-3 @md:pli-5 max-bs-dvh overflow-y-auto"
1359
- }, /* @__PURE__ */ import_react25.default.createElement(import_app_framework10.Surface, {
1360
- role: `space-settings--${panel.id}`,
1361
- data
1362
- }))))))
1363
- );
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
+ })))))));
1364
1625
  };
1365
1626
  var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/sync-state.ts";
1366
1627
  var createEmptyEdgeSyncState = () => ({
@@ -1382,9 +1643,9 @@ var getSyncSummary = (syncMap) => {
1382
1643
  };
1383
1644
  var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
1384
1645
  var useSyncState = () => {
1385
- const client = (0, import_react_client9.useClient)();
1386
- const [spaceState, setSpaceState] = (0, import_react28.useState)({});
1387
- (0, import_react28.useEffect)(() => {
1646
+ const client = (0, import_react_client8.useClient)();
1647
+ const [spaceState, setSpaceState] = (0, import_react31.useState)({});
1648
+ (0, import_react31.useEffect)(() => {
1388
1649
  const ctx = new import_context.Context(void 0, {
1389
1650
  F: __dxlog_file6,
1390
1651
  L: 48
@@ -1418,8 +1679,8 @@ var useSyncState = () => {
1418
1679
  return spaceState;
1419
1680
  };
1420
1681
  var useSpaceSyncState = (space) => {
1421
- const [spaceState, setSpaceState] = (0, import_react28.useState)();
1422
- (0, import_react28.useEffect)(() => {
1682
+ const [spaceState, setSpaceState] = (0, import_react31.useState)();
1683
+ (0, import_react31.useEffect)(() => {
1423
1684
  const ctx = new import_context.Context(void 0, {
1424
1685
  F: __dxlog_file6,
1425
1686
  L: 87
@@ -1439,9 +1700,9 @@ var useSpaceSyncState = (space) => {
1439
1700
  return spaceState;
1440
1701
  };
1441
1702
  var useEdgeStatus = () => {
1442
- const [status, setStatus] = (0, import_react27.useState)(import_services.QueryEdgeStatusResponse.EdgeStatus.NOT_CONNECTED);
1443
- const client = (0, import_react_client8.useClient)();
1444
- (0, import_react27.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)(() => {
1445
1706
  client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
1446
1707
  setStatus(status2);
1447
1708
  });
@@ -1451,11 +1712,11 @@ var useEdgeStatus = () => {
1451
1712
  return status;
1452
1713
  };
1453
1714
  var InlineSyncStatus = ({ space, open }) => {
1454
- const { t } = (0, import_react_ui21.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1715
+ const { t } = (0, import_react_ui23.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1455
1716
  const id = space.id;
1456
1717
  const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention2.useAttention)(id);
1457
1718
  const isAttended = hasAttention || isAncestor || isRelated;
1458
- const { graph } = (0, import_app_framework11.useAppGraph)();
1719
+ const { graph } = (0, import_app_framework12.useAppGraph)();
1459
1720
  const attended = (0, import_react_ui_attention2.useAttended)();
1460
1721
  const startOfAttention = attended.at(-1);
1461
1722
  const path = usePath(graph, startOfAttention);
@@ -1464,17 +1725,17 @@ var InlineSyncStatus = ({ space, open }) => {
1464
1725
  const edgeSyncEnabled = space.internal.data.edgeReplication === import_metadata2.EdgeReplicationSetting.ENABLED;
1465
1726
  const syncState = useSpaceSyncState(space);
1466
1727
  const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
1467
- return /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Trigger, {
1728
+ return /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Root, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Trigger, {
1468
1729
  asChild: true
1469
- }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui_attention2.AttentionGlyph, {
1730
+ }, /* @__PURE__ */ import_react30.default.createElement(import_react_ui_attention2.AttentionGlyph, {
1470
1731
  syncing,
1471
1732
  attended: isAttended,
1472
1733
  containsAttended,
1473
1734
  classNames: "self-center mie-1"
1474
- })), /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Portal, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Content, {
1735
+ })), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Portal, null, /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Content, {
1475
1736
  side: "bottom",
1476
1737
  classNames: "z-[70]"
1477
- }, /* @__PURE__ */ import_react27.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Arrow, null))));
1738
+ }, /* @__PURE__ */ import_react30.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Tooltip.Arrow, null))));
1478
1739
  };
1479
1740
  var SYNC_STALLED_TIMEOUT = 5e3;
1480
1741
  var styles = {
@@ -1483,9 +1744,9 @@ var styles = {
1483
1744
  barHover: "dark:hover:bg-green-500"
1484
1745
  };
1485
1746
  var useActive = (count) => {
1486
- const [current, setCurrent] = (0, import_react30.useState)(count);
1487
- const [active, setActive] = (0, import_react30.useState)(false);
1488
- (0, import_react30.useEffect)(() => {
1747
+ const [current, setCurrent] = (0, import_react33.useState)(count);
1748
+ const [active, setActive] = (0, import_react33.useState)(false);
1749
+ (0, import_react33.useEffect)(() => {
1489
1750
  let t;
1490
1751
  if (count !== current) {
1491
1752
  setActive(true);
@@ -1506,16 +1767,16 @@ var useActive = (count) => {
1506
1767
  return active;
1507
1768
  };
1508
1769
  var SpaceRowContainer = ({ spaceId, state }) => {
1509
- const { t } = (0, import_react_ui23.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1510
- const client = (0, import_react_client11.useClient)();
1511
- const space = (0, import_echo6.useSpace)(spaceId);
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);
1512
1773
  if (!space) {
1513
1774
  return null;
1514
1775
  }
1515
- const spaceName = (0, import_react_ui23.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
1776
+ const spaceName = (0, import_react_ui25.toLocalizedString)((0, import_chunk_TUZWEPGX.getSpaceDisplayName)(space, {
1516
1777
  personal: space === client.spaces.default
1517
1778
  }), t);
1518
- return /* @__PURE__ */ import_react30.default.createElement(SpaceRow, {
1779
+ return /* @__PURE__ */ import_react33.default.createElement(SpaceRow, {
1519
1780
  spaceId,
1520
1781
  spaceName,
1521
1782
  state
@@ -1524,19 +1785,19 @@ var SpaceRowContainer = ({ spaceId, state }) => {
1524
1785
  var SpaceRow = ({ spaceId, spaceName, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
1525
1786
  const downActive = useActive(localDocumentCount);
1526
1787
  const upActive = useActive(remoteDocumentCount);
1527
- return /* @__PURE__ */ import_react30.default.createElement("div", {
1788
+ return /* @__PURE__ */ import_react33.default.createElement("div", {
1528
1789
  className: "flex items-center mx-0.5 gap-0.5 cursor-pointer",
1529
1790
  title: spaceId,
1530
1791
  onClick: () => {
1531
1792
  void navigator.clipboard.writeText(spaceId);
1532
1793
  }
1533
- }, /* @__PURE__ */ import_react30.default.createElement("span", {
1794
+ }, /* @__PURE__ */ import_react33.default.createElement("span", {
1534
1795
  className: "is-1/2 truncate"
1535
- }, spaceName), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Icon, {
1796
+ }, spaceName), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
1536
1797
  icon: "ph--arrow-fat-line-left--regular",
1537
1798
  size: 3,
1538
- classNames: (0, import_react_ui_theme6.mx)(downActive && "animate-[pulse_1s_infinite]")
1539
- }), /* @__PURE__ */ import_react30.default.createElement(Candle, {
1799
+ classNames: (0, import_react_ui_theme8.mx)(downActive && "animate-[pulse_1s_infinite]")
1800
+ }), /* @__PURE__ */ import_react33.default.createElement(Candle, {
1540
1801
  up: {
1541
1802
  count: remoteDocumentCount,
1542
1803
  total: remoteDocumentCount + missingOnRemote
@@ -1546,43 +1807,43 @@ var SpaceRow = ({ spaceId, spaceName, state: { localDocumentCount, remoteDocumen
1546
1807
  total: localDocumentCount + missingOnLocal
1547
1808
  },
1548
1809
  title: spaceId
1549
- }), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Icon, {
1810
+ }), /* @__PURE__ */ import_react33.default.createElement(import_react_ui25.Icon, {
1550
1811
  icon: "ph--arrow-fat-line-right--regular",
1551
1812
  size: 3,
1552
- classNames: (0, import_react_ui_theme6.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
1813
+ classNames: (0, import_react_ui_theme8.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
1553
1814
  }));
1554
1815
  };
1555
1816
  var Candle = ({ classNames, up, down }) => {
1556
- return /* @__PURE__ */ import_react30.default.createElement("div", {
1557
- className: (0, import_react_ui_theme6.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
1558
- }, /* @__PURE__ */ import_react30.default.createElement(Bar, {
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, {
1559
1820
  classNames: "justify-end",
1560
1821
  ...up
1561
- }), /* @__PURE__ */ import_react30.default.createElement("div", {
1822
+ }), /* @__PURE__ */ import_react33.default.createElement("div", {
1562
1823
  className: "relative"
1563
- }, /* @__PURE__ */ import_react30.default.createElement("div", {
1564
- className: (0, import_react_ui_theme6.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
1565
- }, up.total)), /* @__PURE__ */ import_react30.default.createElement(Bar, down));
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));
1566
1827
  };
1567
1828
  var Bar = ({ classNames, count, total }) => {
1568
1829
  let p = count / total * 100;
1569
1830
  if (count < total) {
1570
1831
  p = Math.min(p, 95);
1571
1832
  }
1572
- return /* @__PURE__ */ import_react30.default.createElement("div", {
1573
- className: (0, import_react_ui_theme6.mx)("relative flex w-full", styles.barBg, classNames)
1574
- }, /* @__PURE__ */ import_react30.default.createElement("div", {
1575
- className: (0, import_react_ui_theme6.mx)("shrink-0", styles.barFg),
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),
1576
1837
  style: {
1577
1838
  width: `${p}%`
1578
1839
  }
1579
- }), count !== total && /* @__PURE__ */ import_react30.default.createElement("div", {
1840
+ }), count !== total && /* @__PURE__ */ import_react33.default.createElement("div", {
1580
1841
  className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
1581
1842
  }, count));
1582
1843
  };
1583
1844
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
1584
1845
  var createClientSaveTracker = (client, cb) => {
1585
- const unsubscribeCallbacks = {};
1846
+ const CleanupFns = {};
1586
1847
  const state = {};
1587
1848
  const install = (spaces) => {
1588
1849
  for (const space of spaces) {
@@ -1590,7 +1851,7 @@ var createClientSaveTracker = (client, cb) => {
1590
1851
  continue;
1591
1852
  }
1592
1853
  state[space.id] = "saved";
1593
- unsubscribeCallbacks[space.id] = createSpaceSaveTracker(space, (s) => {
1854
+ CleanupFns[space.id] = createSpaceSaveTracker(space, (s) => {
1594
1855
  state[space.id] = s;
1595
1856
  cb(Object.values(state).some((s2) => s2 === "saving") ? "saving" : "saved");
1596
1857
  });
@@ -1601,7 +1862,7 @@ var createClientSaveTracker = (client, cb) => {
1601
1862
  });
1602
1863
  install(client.spaces.get());
1603
1864
  return () => {
1604
- for (const unsubscribe of Object.values(unsubscribeCallbacks)) {
1865
+ for (const unsubscribe of Object.values(CleanupFns)) {
1605
1866
  unsubscribe();
1606
1867
  }
1607
1868
  };
@@ -1667,21 +1928,21 @@ var getIcon = (status) => {
1667
1928
  }
1668
1929
  };
1669
1930
  var SyncStatus = () => {
1670
- const client = (0, import_react_client10.useClient)();
1931
+ const client = (0, import_react_client9.useClient)();
1671
1932
  const state = useSyncState();
1672
- const [saved, setSaved] = (0, import_react29.useState)(true);
1673
- (0, import_react29.useEffect)(() => {
1933
+ const [saved, setSaved] = (0, import_react32.useState)(true);
1934
+ (0, import_react32.useEffect)(() => {
1674
1935
  return createClientSaveTracker(client, (state2) => {
1675
1936
  setSaved(state2 === "saved");
1676
1937
  });
1677
1938
  }, []);
1678
- return /* @__PURE__ */ import_react29.default.createElement(SyncStatusIndicator, {
1939
+ return /* @__PURE__ */ import_react32.default.createElement(SyncStatusIndicator, {
1679
1940
  state,
1680
1941
  saved
1681
1942
  });
1682
1943
  };
1683
1944
  var SyncStatusIndicator = ({ state, saved }) => {
1684
- const { t } = (0, import_react_ui22.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1945
+ const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1685
1946
  const summary = getSyncSummary(state);
1686
1947
  const offline = Object.values(state).length === 0;
1687
1948
  const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
@@ -1692,8 +1953,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
1692
1953
  needsToUpload,
1693
1954
  needsToDownload
1694
1955
  });
1695
- const [classNames, setClassNames] = (0, import_react29.useState)();
1696
- (0, import_react29.useEffect)(() => {
1956
+ const [classNames, setClassNames] = (0, import_react32.useState)();
1957
+ (0, import_react32.useEffect)(() => {
1697
1958
  setClassNames(void 0);
1698
1959
  if (offline || !needsToUpload && !needsToDownload) {
1699
1960
  return;
@@ -1708,68 +1969,66 @@ var SyncStatusIndicator = ({ state, saved }) => {
1708
1969
  needsToDownload
1709
1970
  ]);
1710
1971
  const title = t(`${status} label`);
1711
- const icon = /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Icon, {
1972
+ const icon = /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Icon, {
1712
1973
  icon: getIcon(status),
1713
1974
  size: 4,
1714
1975
  classNames
1715
1976
  });
1716
1977
  if (offline) {
1717
- return /* @__PURE__ */ import_react29.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1978
+ return /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1718
1979
  title
1719
1980
  }, icon);
1720
1981
  } else {
1721
- return /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Popover.Root, null, /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Popover.Trigger, {
1982
+ return /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Trigger, {
1722
1983
  asChild: true
1723
- }, /* @__PURE__ */ import_react29.default.createElement(import_plugin_status_bar.StatusBar.Button, {
1984
+ }, /* @__PURE__ */ import_react32.default.createElement(import_plugin_status_bar.StatusBar.Button, {
1724
1985
  title
1725
- }, icon)), /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Popover.Portal, null, /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Popover.Content, null, /* @__PURE__ */ import_react29.default.createElement(SyncStatusDetail, {
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, {
1726
1987
  state,
1727
1988
  summary,
1728
1989
  debug: false
1729
- }), /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Popover.Arrow, null))));
1990
+ }), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Popover.Arrow, null))));
1730
1991
  }
1731
1992
  };
1732
1993
  var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1733
- const [showAll, setShowAll] = (0, import_react29.useState)(false);
1734
- const { t } = (0, import_react_ui22.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1994
+ const [showAll, setShowAll] = (0, import_react32.useState)(false);
1995
+ const { t } = (0, import_react_ui24.useTranslation)(import_chunk_6P2DB4QQ.SPACE_PLUGIN);
1735
1996
  const entries = Object.entries(state).filter(([_, value]) => showAll || value.missingOnLocal + value.missingOnRemote > 0).toSorted(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
1736
- const handleCheckedChange = (0, import_react29.useCallback)((state2) => setShowAll(state2), [
1997
+ const handleCheckedChange = (0, import_react32.useCallback)((state2) => setShowAll(state2), [
1737
1998
  setShowAll
1738
1999
  ]);
1739
- return /* @__PURE__ */ import_react29.default.createElement("div", {
1740
- className: (0, import_react_ui_theme5.mx)("flex flex-col gap-3 p-2 text-xs min-w-96", classNames)
1741
- }, /* @__PURE__ */ import_react29.default.createElement("div", {
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", {
1742
2003
  role: "none",
1743
2004
  className: "flex items-center"
1744
- }, /* @__PURE__ */ import_react29.default.createElement("h1", {
2005
+ }, /* @__PURE__ */ import_react32.default.createElement("h1", {
1745
2006
  className: "flex-1"
1746
- }, t("sync status title")), /* @__PURE__ */ import_react29.default.createElement("div", {
2007
+ }, t("sync status title")), /* @__PURE__ */ import_react32.default.createElement("div", {
1747
2008
  className: "flex items-center gap-2"
1748
- }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Input.Root, null, /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Input.Label, {
2009
+ }, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Root, null, /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Label, {
1749
2010
  classNames: "text-xs"
1750
- }, t("show all label")), /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Input.Checkbox, {
2011
+ }, t("show all label")), /* @__PURE__ */ import_react32.default.createElement(import_react_ui24.Input.Checkbox, {
1751
2012
  checked: showAll,
1752
2013
  onCheckedChange: handleCheckedChange
1753
- })))), /* @__PURE__ */ import_react29.default.createElement("div", {
2014
+ })))), /* @__PURE__ */ import_react32.default.createElement("div", {
1754
2015
  className: "flex flex-col gap-2"
1755
- }, entries.length === 0 && /* @__PURE__ */ import_react29.default.createElement("div", {
2016
+ }, entries.length === 0 && /* @__PURE__ */ import_react32.default.createElement("div", {
1756
2017
  role: "none",
1757
2018
  className: "flex justify-center"
1758
- }, t("no sync status label")), entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react29.default.createElement(SpaceRowContainer, {
2019
+ }, t("no sync status label")), entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react32.default.createElement(SpaceRowContainer, {
1759
2020
  key: spaceId,
1760
2021
  spaceId,
1761
2022
  state: state2
1762
- }))), debug && /* @__PURE__ */ import_react29.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
2023
+ }))), debug && /* @__PURE__ */ import_react32.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
1763
2024
  language: "json"
1764
2025
  }, JSON.stringify(summary, null, 2)));
1765
2026
  };
1766
2027
  // Annotate the CommonJS export names for ESM import in node:
1767
2028
  0 && (module.exports = {
1768
- AdvancedObjectSettings,
1769
2029
  AppGraphBuilder,
1770
2030
  AppGraphSerializer,
1771
2031
  AwaitingObject,
1772
- BaseObjectSettings,
1773
2032
  CREATE_OBJECT_DIALOG,
1774
2033
  CREATE_SPACE_DIALOG,
1775
2034
  CollectionMain,
@@ -1782,7 +2041,9 @@ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1782
2041
  IntentResolver,
1783
2042
  JOIN_DIALOG,
1784
2043
  JoinDialog,
2044
+ MembersContainer,
1785
2045
  MenuFooter,
2046
+ ObjectSettingsContainer,
1786
2047
  POPOVER_ADD_SPACE,
1787
2048
  POPOVER_RENAME_OBJECT,
1788
2049
  POPOVER_RENAME_SPACE,
@@ -1800,13 +2061,14 @@ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1800
2061
  SmallPresenceLive,
1801
2062
  SpacePluginSettings,
1802
2063
  SpacePresence,
2064
+ SpacePropertiesForm,
1803
2065
  SpaceSettings,
1804
- SpaceSettingsDialog,
1805
- SpaceSettingsPanel,
2066
+ SpaceSettingsContainer,
1806
2067
  SpaceState,
1807
2068
  SpacesReady,
1808
2069
  SyncStatus,
1809
2070
  SyncStatusDetail,
1810
- SyncStatusIndicator
2071
+ SyncStatusIndicator,
2072
+ Tools
1811
2073
  });
1812
- //# sourceMappingURL=chunk-QE4GVR6C.cjs.map
2074
+ //# sourceMappingURL=chunk-APYLLIMY.cjs.map