@dxos/plugin-space 0.8.1-staging.391c573 → 0.8.1-staging.97aedb1

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