@dxos/plugin-space 0.7.5-labs.c0e040f → 0.7.5-labs.d199c0f

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 (220) hide show
  1. package/dist/lib/browser/{app-graph-builder-GSS3V7IN.mjs → app-graph-builder-MGK5HWPZ.mjs} +16 -95
  2. package/dist/lib/browser/app-graph-builder-MGK5HWPZ.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-QDXM5M6K.mjs → app-graph-serializer-FOWFLYGU.mjs} +4 -4
  4. package/dist/lib/browser/{chunk-ZL5ZFGBK.mjs → chunk-23RVI5FZ.mjs} +15 -5
  5. package/dist/lib/browser/chunk-23RVI5FZ.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-RLZQJD47.mjs → chunk-NU7WDVGN.mjs} +2 -1
  7. package/dist/lib/browser/chunk-NU7WDVGN.mjs.map +7 -0
  8. package/dist/lib/browser/{chunk-DIBLC24B.mjs → chunk-S6B7627U.mjs} +293 -213
  9. package/dist/lib/browser/chunk-S6B7627U.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-SDK7RZI3.mjs → chunk-UDWHTKB5.mjs} +6 -3
  11. package/dist/lib/browser/chunk-UDWHTKB5.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-XPZ6IIXF.mjs → chunk-ULA2UQJ4.mjs} +15 -1
  13. package/dist/lib/browser/chunk-ULA2UQJ4.mjs.map +7 -0
  14. package/dist/lib/browser/{identity-created-25TK5XNO.mjs → identity-created-FYGS6TBH.mjs} +2 -2
  15. package/dist/lib/browser/index.mjs +53 -19
  16. package/dist/lib/browser/index.mjs.map +3 -3
  17. package/dist/lib/browser/{intent-resolver-LNTCXZ57.mjs → intent-resolver-QVR4MSJV.mjs} +26 -8
  18. package/dist/lib/browser/intent-resolver-QVR4MSJV.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{react-root-Q7JJDCPB.mjs → react-root-IP2ZB245.mjs} +5 -5
  21. package/dist/lib/browser/{react-surface-BDMYLARO.mjs → react-surface-BT3EHB6V.mjs} +16 -22
  22. package/dist/lib/browser/react-surface-BT3EHB6V.mjs.map +7 -0
  23. package/dist/lib/browser/schema-5W3DSY2E.mjs +24 -0
  24. package/dist/lib/browser/schema-5W3DSY2E.mjs.map +7 -0
  25. package/dist/lib/browser/{settings-K4JPYYEM.mjs → settings-PHPCXX33.mjs} +2 -2
  26. package/dist/lib/browser/{spaces-ready-THYJEJYZ.mjs → spaces-ready-K47RR7N2.mjs} +4 -4
  27. package/dist/lib/browser/{state-6DCY5YJP.mjs → state-INJ63O57.mjs} +2 -2
  28. package/dist/lib/browser/types/index.mjs +5 -3
  29. package/dist/lib/node/{app-graph-builder-V3RCGDV7.cjs → app-graph-builder-ZIUBXRPA.cjs} +43 -122
  30. package/dist/lib/node/app-graph-builder-ZIUBXRPA.cjs.map +7 -0
  31. package/dist/lib/node/{app-graph-serializer-H4UACG57.cjs → app-graph-serializer-VQOGHKXL.cjs} +20 -20
  32. package/dist/lib/node/{chunk-4AZ2DD4G.cjs → chunk-N2FS7PRA.cjs} +354 -273
  33. package/dist/lib/node/chunk-N2FS7PRA.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-SYVPVU3K.cjs → chunk-OVGKWJOC.cjs} +50 -40
  35. package/dist/lib/node/chunk-OVGKWJOC.cjs.map +7 -0
  36. package/dist/lib/node/{chunk-D6BFKOXY.cjs → chunk-U6DYXAR3.cjs} +10 -7
  37. package/dist/lib/node/chunk-U6DYXAR3.cjs.map +7 -0
  38. package/dist/lib/node/{chunk-6MEOP3DH.cjs → chunk-WAJKBO3J.cjs} +21 -6
  39. package/dist/lib/node/chunk-WAJKBO3J.cjs.map +7 -0
  40. package/dist/lib/node/{chunk-UX3U4RU2.cjs → chunk-YZKNRFHU.cjs} +5 -4
  41. package/dist/lib/node/chunk-YZKNRFHU.cjs.map +7 -0
  42. package/dist/lib/node/{identity-created-7G5U7R36.cjs → identity-created-AXI64BLE.cjs} +6 -6
  43. package/dist/lib/node/index.cjs +106 -73
  44. package/dist/lib/node/index.cjs.map +3 -3
  45. package/dist/lib/node/{intent-resolver-CDE4M3TW.cjs → intent-resolver-MLENGECT.cjs} +76 -59
  46. package/dist/lib/node/intent-resolver-MLENGECT.cjs.map +7 -0
  47. package/dist/lib/node/meta.json +1 -1
  48. package/dist/lib/node/{react-root-JN6AIHMS.cjs → react-root-3OX5Z5CX.cjs} +10 -10
  49. package/dist/lib/node/{react-surface-XSK2QEQV.cjs → react-surface-5NYCMXSM.cjs} +49 -57
  50. package/dist/lib/node/react-surface-5NYCMXSM.cjs.map +7 -0
  51. package/dist/lib/node/schema-YN7WVFRX.cjs +40 -0
  52. package/dist/lib/node/schema-YN7WVFRX.cjs.map +7 -0
  53. package/dist/lib/node/{settings-TEELGWS4.cjs → settings-5QYFWNH7.cjs} +6 -6
  54. package/dist/lib/node/{spaces-ready-L4MJTFQ6.cjs → spaces-ready-FQNAKR7G.cjs} +13 -13
  55. package/dist/lib/node/{state-WPZC4JXB.cjs → state-57UE3DYE.cjs} +6 -6
  56. package/dist/lib/node/types/index.cjs +18 -16
  57. package/dist/lib/node/types/index.cjs.map +2 -2
  58. package/dist/lib/node-esm/{app-graph-builder-VFHK7OQI.mjs → app-graph-builder-TERVM2SL.mjs} +16 -95
  59. package/dist/lib/node-esm/app-graph-builder-TERVM2SL.mjs.map +7 -0
  60. package/dist/lib/node-esm/{app-graph-serializer-PIPJVXYZ.mjs → app-graph-serializer-GZRSWHEN.mjs} +4 -4
  61. package/dist/lib/node-esm/{chunk-4UX5WGKJ.mjs → chunk-2TQ2AJEZ.mjs} +6 -3
  62. package/dist/lib/node-esm/chunk-2TQ2AJEZ.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-LGL4A5B5.mjs → chunk-6RSVVEPS.mjs} +2 -1
  64. package/dist/lib/node-esm/chunk-6RSVVEPS.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-FTVEA5LO.mjs → chunk-DIKRH2IK.mjs} +293 -213
  66. package/dist/lib/node-esm/chunk-DIKRH2IK.mjs.map +7 -0
  67. package/dist/lib/node-esm/{chunk-RCZRYXI3.mjs → chunk-PGH5L7MV.mjs} +15 -5
  68. package/dist/lib/node-esm/chunk-PGH5L7MV.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-AAQRELDK.mjs → chunk-TRNZQEEN.mjs} +15 -1
  70. package/dist/lib/node-esm/chunk-TRNZQEEN.mjs.map +7 -0
  71. package/dist/lib/node-esm/{identity-created-7THGZ7EW.mjs → identity-created-3CGEXNPO.mjs} +2 -2
  72. package/dist/lib/node-esm/index.mjs +53 -19
  73. package/dist/lib/node-esm/index.mjs.map +3 -3
  74. package/dist/lib/node-esm/{intent-resolver-7L3GJAZE.mjs → intent-resolver-BLW4RM6X.mjs} +26 -8
  75. package/dist/lib/node-esm/intent-resolver-BLW4RM6X.mjs.map +7 -0
  76. package/dist/lib/node-esm/meta.json +1 -1
  77. package/dist/lib/node-esm/{react-root-BNA6PBFZ.mjs → react-root-7XXGP56B.mjs} +5 -5
  78. package/dist/lib/node-esm/{react-surface-FTI2LQNL.mjs → react-surface-R2ECJSFB.mjs} +16 -22
  79. package/dist/lib/node-esm/react-surface-R2ECJSFB.mjs.map +7 -0
  80. package/dist/lib/node-esm/schema-LOR2EVGY.mjs +25 -0
  81. package/dist/lib/node-esm/schema-LOR2EVGY.mjs.map +7 -0
  82. package/dist/lib/node-esm/{settings-KXYUZBLN.mjs → settings-H6MXTEQM.mjs} +2 -2
  83. package/dist/lib/node-esm/{spaces-ready-ZC2R73H3.mjs → spaces-ready-HKAQG5SA.mjs} +4 -4
  84. package/dist/lib/node-esm/{state-5GH2D5U4.mjs → state-VYA6OFHD.mjs} +2 -2
  85. package/dist/lib/node-esm/types/index.mjs +5 -3
  86. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/app-graph-builder.d.ts +88 -88
  88. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/capabilities.d.ts +2 -1
  90. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/index.d.ts +112 -111
  92. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/schema.d.ts +4 -0
  96. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  97. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts +1 -2
  98. package/dist/types/src/components/AdvancedObjectSettings/AdvancedObjectSettings.d.ts.map +1 -1
  99. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts +1 -2
  100. package/dist/types/src/components/AdvancedObjectSettings/ForeignKeys.d.ts.map +1 -1
  101. package/dist/types/src/components/AwaitingObject.d.ts +1 -2
  102. package/dist/types/src/components/AwaitingObject.d.ts.map +1 -1
  103. package/dist/types/src/components/BaseObjectSettings.d.ts +1 -2
  104. package/dist/types/src/components/BaseObjectSettings.d.ts.map +1 -1
  105. package/dist/types/src/components/CollectionMain.d.ts +1 -2
  106. package/dist/types/src/components/CollectionMain.d.ts.map +1 -1
  107. package/dist/types/src/components/CollectionSection.d.ts +1 -2
  108. package/dist/types/src/components/CollectionSection.d.ts.map +1 -1
  109. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts +2 -4
  110. package/dist/types/src/components/CreateDialog/CreateObjectDialog.d.ts.map +1 -1
  111. package/dist/types/src/components/CreateDialog/CreateObjectDialog.stories.d.ts.map +1 -1
  112. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +5 -7
  113. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  114. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts +1 -2
  115. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  116. package/dist/types/src/components/JoinDialog.d.ts +1 -2
  117. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  118. package/dist/types/src/components/MenuFooter.d.ts +1 -2
  119. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  120. package/dist/types/src/components/PersistenceStatus.d.ts +1 -2
  121. package/dist/types/src/components/PersistenceStatus.d.ts.map +1 -1
  122. package/dist/types/src/components/PopoverAddSpace.d.ts +3 -0
  123. package/dist/types/src/components/PopoverAddSpace.d.ts.map +1 -0
  124. package/dist/types/src/components/PopoverRenameObject.d.ts +1 -2
  125. package/dist/types/src/components/PopoverRenameObject.d.ts.map +1 -1
  126. package/dist/types/src/components/PopoverRenameSpace.d.ts +1 -2
  127. package/dist/types/src/components/PopoverRenameSpace.d.ts.map +1 -1
  128. package/dist/types/src/components/ShareSpaceButton.d.ts +2 -3
  129. package/dist/types/src/components/ShareSpaceButton.d.ts.map +1 -1
  130. package/dist/types/src/components/SpacePluginSettings.d.ts +1 -2
  131. package/dist/types/src/components/SpacePluginSettings.d.ts.map +1 -1
  132. package/dist/types/src/components/SpacePresence.d.ts +4 -5
  133. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  134. package/dist/types/src/components/SpacePresence.stories.d.ts +2 -3
  135. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  136. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts +1 -2
  137. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +1 -1
  138. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts +1 -2
  139. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +1 -1
  140. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts +1 -2
  141. package/dist/types/src/components/SyncStatus/InlineSyncStatus.d.ts.map +1 -1
  142. package/dist/types/src/components/SyncStatus/Space.d.ts +2 -3
  143. package/dist/types/src/components/SyncStatus/Space.d.ts.map +1 -1
  144. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +3 -4
  145. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  146. package/dist/types/src/components/index.d.ts +1 -0
  147. package/dist/types/src/components/index.d.ts.map +1 -1
  148. package/dist/types/src/events.d.ts +4 -0
  149. package/dist/types/src/events.d.ts.map +1 -1
  150. package/dist/types/src/index.d.ts +1 -1
  151. package/dist/types/src/index.d.ts.map +1 -1
  152. package/dist/types/src/translations.d.ts +9 -0
  153. package/dist/types/src/translations.d.ts.map +1 -1
  154. package/dist/types/src/types/collection.d.ts +2 -2
  155. package/dist/types/src/types/thread.d.ts +34 -34
  156. package/dist/types/src/types/types.d.ts +35 -10
  157. package/dist/types/src/types/types.d.ts.map +1 -1
  158. package/dist/types/src/util.d.ts +2 -2
  159. package/dist/types/src/util.d.ts.map +1 -1
  160. package/package.json +40 -39
  161. package/src/SpacePlugin.tsx +35 -11
  162. package/src/capabilities/app-graph-builder.ts +10 -84
  163. package/src/capabilities/capabilities.ts +3 -1
  164. package/src/capabilities/index.ts +1 -0
  165. package/src/capabilities/intent-resolver.ts +18 -0
  166. package/src/capabilities/react-surface.tsx +12 -28
  167. package/src/capabilities/schema.ts +27 -0
  168. package/src/components/CreateDialog/CreateObjectDialog.stories.tsx +1 -3
  169. package/src/components/CreateDialog/CreateObjectDialog.tsx +29 -21
  170. package/src/components/CreateDialog/CreateObjectPanel.tsx +39 -41
  171. package/src/components/PopoverAddSpace.tsx +46 -0
  172. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +22 -7
  173. package/src/components/index.ts +1 -0
  174. package/src/events.ts +6 -0
  175. package/src/index.ts +1 -1
  176. package/src/translations.ts +3 -0
  177. package/src/types/types.ts +21 -1
  178. package/src/util.tsx +7 -2
  179. package/dist/lib/browser/app-graph-builder-GSS3V7IN.mjs.map +0 -7
  180. package/dist/lib/browser/chunk-DIBLC24B.mjs.map +0 -7
  181. package/dist/lib/browser/chunk-RLZQJD47.mjs.map +0 -7
  182. package/dist/lib/browser/chunk-SDK7RZI3.mjs.map +0 -7
  183. package/dist/lib/browser/chunk-XPZ6IIXF.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-ZL5ZFGBK.mjs.map +0 -7
  185. package/dist/lib/browser/intent-resolver-LNTCXZ57.mjs.map +0 -7
  186. package/dist/lib/browser/react-surface-BDMYLARO.mjs.map +0 -7
  187. package/dist/lib/node/app-graph-builder-V3RCGDV7.cjs.map +0 -7
  188. package/dist/lib/node/chunk-4AZ2DD4G.cjs.map +0 -7
  189. package/dist/lib/node/chunk-6MEOP3DH.cjs.map +0 -7
  190. package/dist/lib/node/chunk-D6BFKOXY.cjs.map +0 -7
  191. package/dist/lib/node/chunk-SYVPVU3K.cjs.map +0 -7
  192. package/dist/lib/node/chunk-UX3U4RU2.cjs.map +0 -7
  193. package/dist/lib/node/intent-resolver-CDE4M3TW.cjs.map +0 -7
  194. package/dist/lib/node/react-surface-XSK2QEQV.cjs.map +0 -7
  195. package/dist/lib/node-esm/app-graph-builder-VFHK7OQI.mjs.map +0 -7
  196. package/dist/lib/node-esm/chunk-4UX5WGKJ.mjs.map +0 -7
  197. package/dist/lib/node-esm/chunk-AAQRELDK.mjs.map +0 -7
  198. package/dist/lib/node-esm/chunk-FTVEA5LO.mjs.map +0 -7
  199. package/dist/lib/node-esm/chunk-LGL4A5B5.mjs.map +0 -7
  200. package/dist/lib/node-esm/chunk-RCZRYXI3.mjs.map +0 -7
  201. package/dist/lib/node-esm/intent-resolver-7L3GJAZE.mjs.map +0 -7
  202. package/dist/lib/node-esm/react-surface-FTI2LQNL.mjs.map +0 -7
  203. /package/dist/lib/browser/{app-graph-serializer-QDXM5M6K.mjs.map → app-graph-serializer-FOWFLYGU.mjs.map} +0 -0
  204. /package/dist/lib/browser/{identity-created-25TK5XNO.mjs.map → identity-created-FYGS6TBH.mjs.map} +0 -0
  205. /package/dist/lib/browser/{react-root-Q7JJDCPB.mjs.map → react-root-IP2ZB245.mjs.map} +0 -0
  206. /package/dist/lib/browser/{settings-K4JPYYEM.mjs.map → settings-PHPCXX33.mjs.map} +0 -0
  207. /package/dist/lib/browser/{spaces-ready-THYJEJYZ.mjs.map → spaces-ready-K47RR7N2.mjs.map} +0 -0
  208. /package/dist/lib/browser/{state-6DCY5YJP.mjs.map → state-INJ63O57.mjs.map} +0 -0
  209. /package/dist/lib/node/{app-graph-serializer-H4UACG57.cjs.map → app-graph-serializer-VQOGHKXL.cjs.map} +0 -0
  210. /package/dist/lib/node/{identity-created-7G5U7R36.cjs.map → identity-created-AXI64BLE.cjs.map} +0 -0
  211. /package/dist/lib/node/{react-root-JN6AIHMS.cjs.map → react-root-3OX5Z5CX.cjs.map} +0 -0
  212. /package/dist/lib/node/{settings-TEELGWS4.cjs.map → settings-5QYFWNH7.cjs.map} +0 -0
  213. /package/dist/lib/node/{spaces-ready-L4MJTFQ6.cjs.map → spaces-ready-FQNAKR7G.cjs.map} +0 -0
  214. /package/dist/lib/node/{state-WPZC4JXB.cjs.map → state-57UE3DYE.cjs.map} +0 -0
  215. /package/dist/lib/node-esm/{app-graph-serializer-PIPJVXYZ.mjs.map → app-graph-serializer-GZRSWHEN.mjs.map} +0 -0
  216. /package/dist/lib/node-esm/{identity-created-7THGZ7EW.mjs.map → identity-created-3CGEXNPO.mjs.map} +0 -0
  217. /package/dist/lib/node-esm/{react-root-BNA6PBFZ.mjs.map → react-root-7XXGP56B.mjs.map} +0 -0
  218. /package/dist/lib/node-esm/{settings-KXYUZBLN.mjs.map → settings-H6MXTEQM.mjs.map} +0 -0
  219. /package/dist/lib/node-esm/{spaces-ready-ZC2R73H3.mjs.map → spaces-ready-HKAQG5SA.mjs.map} +0 -0
  220. /package/dist/lib/node-esm/{state-5GH2D5U4.mjs.map → state-VYA6OFHD.mjs.map} +0 -0
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_4AZ2DD4G_exports = {};
30
- __export(chunk_4AZ2DD4G_exports, {
29
+ var chunk_N2FS7PRA_exports = {};
30
+ __export(chunk_N2FS7PRA_exports, {
31
31
  AdvancedObjectSettings: () => AdvancedObjectSettings,
32
32
  AppGraphBuilder: () => AppGraphBuilder,
33
33
  AppGraphSerializer: () => AppGraphSerializer,
@@ -46,14 +46,17 @@ __export(chunk_4AZ2DD4G_exports, {
46
46
  JOIN_DIALOG: () => JOIN_DIALOG,
47
47
  JoinDialog: () => JoinDialog,
48
48
  MenuFooter: () => MenuFooter,
49
+ POPOVER_ADD_SPACE: () => POPOVER_ADD_SPACE,
49
50
  POPOVER_RENAME_OBJECT: () => POPOVER_RENAME_OBJECT,
50
51
  POPOVER_RENAME_SPACE: () => POPOVER_RENAME_SPACE,
51
52
  PersistenceStatus: () => PersistenceStatus,
53
+ PopoverAddSpace: () => PopoverAddSpace,
52
54
  PopoverRenameObject: () => PopoverRenameObject,
53
55
  PopoverRenameSpace: () => PopoverRenameSpace,
54
56
  ReactRoot: () => ReactRoot,
55
57
  ReactSurface: () => ReactSurface,
56
58
  SPACE_SETTINGS_DIALOG: () => SPACE_SETTINGS_DIALOG,
59
+ Schema: () => Schema,
57
60
  ShareSpaceButton: () => ShareSpaceButton,
58
61
  ShareSpaceButtonImpl: () => ShareSpaceButtonImpl,
59
62
  SmallPresence: () => SmallPresence,
@@ -69,10 +72,10 @@ __export(chunk_4AZ2DD4G_exports, {
69
72
  SyncStatusDetail: () => SyncStatusDetail,
70
73
  SyncStatusIndicator: () => SyncStatusIndicator
71
74
  });
72
- module.exports = __toCommonJS(chunk_4AZ2DD4G_exports);
73
- var import_chunk_UX3U4RU2 = require("./chunk-UX3U4RU2.cjs");
74
- var import_chunk_SYVPVU3K = require("./chunk-SYVPVU3K.cjs");
75
- var import_chunk_6MEOP3DH = require("./chunk-6MEOP3DH.cjs");
75
+ module.exports = __toCommonJS(chunk_N2FS7PRA_exports);
76
+ var import_chunk_YZKNRFHU = require("./chunk-YZKNRFHU.cjs");
77
+ var import_chunk_OVGKWJOC = require("./chunk-OVGKWJOC.cjs");
78
+ var import_chunk_WAJKBO3J = require("./chunk-WAJKBO3J.cjs");
76
79
  var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
77
80
  var import_react = __toESM(require("react"));
78
81
  var import_echo_schema = require("@dxos/echo-schema");
@@ -93,20 +96,23 @@ var import_react_ui4 = require("@dxos/react-ui");
93
96
  var import_effect = require("effect");
94
97
  var import_react6 = __toESM(require("react"));
95
98
  var import_app_framework2 = require("@dxos/app-framework");
99
+ var import_invariant = require("@dxos/invariant");
96
100
  var import_react_client2 = require("@dxos/react-client");
97
101
  var import_echo3 = require("@dxos/react-client/echo");
98
102
  var import_react_ui5 = require("@dxos/react-ui");
99
103
  var import_react7 = __toESM(require("react"));
100
104
  var import_app_framework3 = require("@dxos/app-framework");
101
105
  var import_echo_schema2 = require("@dxos/echo-schema");
106
+ var import_invariant2 = require("@dxos/invariant");
102
107
  var import_react_ui6 = require("@dxos/react-ui");
103
108
  var import_react_ui_form2 = require("@dxos/react-ui-form");
104
109
  var import_react_ui_searchlist = require("@dxos/react-ui-searchlist");
105
110
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
106
111
  var import_util = require("@dxos/util");
112
+ var import_app_framework4 = require("@dxos/app-framework");
107
113
  var import_effect2 = require("effect");
108
114
  var import_react8 = __toESM(require("react"));
109
- var import_app_framework4 = require("@dxos/app-framework");
115
+ var import_app_framework5 = require("@dxos/app-framework");
110
116
  var import_react_ui7 = require("@dxos/react-ui");
111
117
  var import_react_ui_form3 = require("@dxos/react-ui-form");
112
118
  var import_react9 = __toESM(require("react"));
@@ -115,7 +121,7 @@ var import_react_ui_theme3 = require("@dxos/react-ui-theme");
115
121
  var import_react10 = __toESM(require("react"));
116
122
  var import_react_ui9 = require("@dxos/react-ui");
117
123
  var import_react11 = __toESM(require("react"));
118
- var import_app_framework5 = require("@dxos/app-framework");
124
+ var import_app_framework6 = require("@dxos/app-framework");
119
125
  var import_log = require("@dxos/log");
120
126
  var import_types = require("@dxos/plugin-observability/types");
121
127
  var import_react_client3 = require("@dxos/react-client");
@@ -132,61 +138,63 @@ var import_async = require("@dxos/async");
132
138
  var import_react_ui12 = require("@dxos/react-ui");
133
139
  var import_react_ui_theme4 = require("@dxos/react-ui-theme");
134
140
  var import_react17 = __toESM(require("react"));
135
- var import_log2 = require("@dxos/log");
141
+ var import_app_framework7 = require("@dxos/app-framework");
136
142
  var import_react_ui13 = require("@dxos/react-ui");
137
143
  var import_react18 = __toESM(require("react"));
144
+ var import_log2 = require("@dxos/log");
138
145
  var import_react_ui14 = require("@dxos/react-ui");
139
146
  var import_react19 = __toESM(require("react"));
140
- var import_app_framework6 = require("@dxos/app-framework");
141
147
  var import_react_ui15 = require("@dxos/react-ui");
142
148
  var import_react20 = __toESM(require("react"));
143
- var import_app_framework7 = require("@dxos/app-framework");
149
+ var import_app_framework8 = require("@dxos/app-framework");
150
+ var import_react_ui16 = require("@dxos/react-ui");
151
+ var import_react21 = __toESM(require("react"));
152
+ var import_app_framework9 = require("@dxos/app-framework");
144
153
  var import_display_name = require("@dxos/display-name");
145
154
  var import_react_client5 = require("@dxos/react-client");
146
155
  var import_echo5 = require("@dxos/react-client/echo");
147
156
  var import_halo = require("@dxos/react-client/halo");
148
- var import_react_ui16 = require("@dxos/react-ui");
157
+ var import_react_ui17 = require("@dxos/react-ui");
149
158
  var import_react_ui_attention = require("@dxos/react-ui-attention");
150
159
  var import_util2 = require("@dxos/util");
151
- var import_app_framework8 = require("@dxos/app-framework");
152
- var import_react21 = require("react");
153
- var import_react22 = __toESM(require("react"));
154
- var import_react_ui17 = require("@dxos/react-ui");
155
- var import_react_ui_form4 = require("@dxos/react-ui-form");
160
+ var import_react22 = require("react");
156
161
  var import_react23 = __toESM(require("react"));
162
+ var import_react_ui18 = require("@dxos/react-ui");
163
+ var import_react_ui_form4 = require("@dxos/react-ui-form");
164
+ var import_react24 = __toESM(require("react"));
157
165
  var import_log3 = require("@dxos/log");
158
166
  var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
159
167
  var import_react_client6 = require("@dxos/react-client");
160
- var import_react_ui18 = require("@dxos/react-ui");
168
+ var import_react_ui19 = require("@dxos/react-ui");
161
169
  var import_react_ui_form5 = require("@dxos/react-ui-form");
162
170
  var import_react_ui_pickers = require("@dxos/react-ui-pickers");
163
- var import_react24 = __toESM(require("react"));
164
- var import_app_framework9 = require("@dxos/app-framework");
171
+ var import_react25 = __toESM(require("react"));
172
+ var import_app_framework10 = require("@dxos/app-framework");
165
173
  var import_react_client7 = require("@dxos/react-client");
166
- var import_react_ui19 = require("@dxos/react-ui");
174
+ var import_react_ui20 = require("@dxos/react-ui");
167
175
  var import_react_ui_tabs = require("@dxos/react-ui-tabs");
168
- var import_react25 = require("@dxos/shell/react");
169
- var import_react26 = __toESM(require("react"));
170
- var import_app_framework10 = require("@dxos/app-framework");
176
+ var import_react26 = require("@dxos/shell/react");
177
+ var import_react27 = __toESM(require("react"));
178
+ var import_app_framework11 = require("@dxos/app-framework");
171
179
  var import_services = require("@dxos/protocols/proto/dxos/client/services");
172
180
  var import_metadata2 = require("@dxos/protocols/proto/dxos/echo/metadata");
173
181
  var import_react_client8 = require("@dxos/react-client");
174
- var import_react_ui20 = require("@dxos/react-ui");
182
+ var import_react_ui21 = require("@dxos/react-ui");
175
183
  var import_react_ui_attention2 = require("@dxos/react-ui-attention");
176
- var import_react27 = require("react");
184
+ var import_react28 = require("react");
177
185
  var import_context = require("@dxos/context");
178
186
  var import_protocols = require("@dxos/protocols");
179
187
  var import_react_client9 = require("@dxos/react-client");
180
- var import_react28 = __toESM(require("react"));
188
+ var import_react29 = __toESM(require("react"));
181
189
  var import_plugin_status_bar = require("@dxos/plugin-status-bar");
182
190
  var import_react_client10 = require("@dxos/react-client");
183
- var import_react_ui21 = require("@dxos/react-ui");
191
+ var import_react_ui22 = require("@dxos/react-ui");
184
192
  var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
185
193
  var import_react_ui_theme5 = require("@dxos/react-ui-theme");
186
- var import_react29 = __toESM(require("react"));
194
+ var import_react30 = __toESM(require("react"));
187
195
  var import_react_client11 = require("@dxos/react-client");
188
196
  var import_echo6 = require("@dxos/react-client/echo");
189
- var import_react_ui22 = require("@dxos/react-ui");
197
+ var import_react_ui23 = require("@dxos/react-ui");
190
198
  var import_react_ui_theme6 = require("@dxos/react-ui-theme");
191
199
  var import_context2 = require("@dxos/context");
192
200
  var ForeignKeys = ({ keys, onDelete }) => {
@@ -304,7 +312,7 @@ var AwaitingObject = ({ id }) => {
304
312
  objects,
305
313
  layout
306
314
  ]);
307
- const handleClose = (0, import_react4.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_6MEOP3DH.SpaceAction.WaitForObject, {
315
+ const handleClose = (0, import_react4.useCallback)(async () => dispatch((0, import_app_framework.createIntent)(import_chunk_WAJKBO3J.SpaceAction.WaitForObject, {
308
316
  id: void 0
309
317
  })), [
310
318
  dispatch
@@ -374,6 +382,7 @@ var BaseObjectSettings = ({ object }) => {
374
382
  }
375
383
  })));
376
384
  };
385
+ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectPanel.tsx";
377
386
  var useInputSurfaceLookup = (baseData) => {
378
387
  const pluginManager = (0, import_app_framework3.usePluginManager)();
379
388
  return (0, import_react7.useCallback)(({ prop, schema, inputProps }) => {
@@ -398,12 +407,12 @@ var useInputSurfaceLookup = (baseData) => {
398
407
  baseData
399
408
  ]);
400
409
  };
401
- var CreateObjectPanel = ({ classNames, schemas, spaces, typename: initialTypename, target: initialTarget, name: initialName, defaultSpaceId, resolve, onCreateObject }) => {
410
+ var CreateObjectPanel = ({ classNames, forms, spaces, typename: initialTypename, target: initialTarget, name: initialName, defaultSpaceId, resolve, onCreateObject }) => {
402
411
  const { t } = (0, import_react_ui6.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
403
412
  const [typename, setTypename] = (0, import_react7.useState)(initialTypename);
404
413
  const [target, setTarget] = (0, import_react7.useState)(initialTarget);
405
- const schema = schemas.find((schema2) => (0, import_echo_schema2.getObjectAnnotation)(schema2)?.typename === typename);
406
- const options = schemas.map(import_echo_schema2.getObjectAnnotation).filter(import_util.isNonNullable).sort((a, b) => {
414
+ const form = forms.find((form2) => (0, import_echo_schema2.getObjectAnnotation)(form2.objectSchema)?.typename === typename);
415
+ const options = forms.map((form2) => (0, import_echo_schema2.getObjectAnnotation)(form2.objectSchema)).filter(import_util.isNonNullable).sort((a, b) => {
407
416
  const nameA = t("typename label", {
408
417
  ns: a.typename,
409
418
  defaultValue: a.typename
@@ -415,63 +424,68 @@ var CreateObjectPanel = ({ classNames, schemas, spaces, typename: initialTypenam
415
424
  return nameA.localeCompare(nameB);
416
425
  });
417
426
  const handleCreateObject = (0, import_react7.useCallback)(async (props) => {
418
- if (!schema || !target) {
427
+ if (!form || !target) {
419
428
  return;
420
429
  }
421
430
  await onCreateObject?.({
422
- schema,
431
+ form,
423
432
  target,
424
433
  data: props
425
434
  });
426
435
  }, [
427
436
  onCreateObject,
428
- schema,
437
+ form,
429
438
  target
430
439
  ]);
431
- const metadata = (0, import_react7.useMemo)(() => {
432
- if (!typename) {
433
- return;
440
+ const handleSetTypename = (0, import_react7.useCallback)(async (typename2) => {
441
+ (0, import_invariant2.invariant)(target, "target is required", {
442
+ F: __dxlog_file,
443
+ L: 94,
444
+ S: void 0,
445
+ A: [
446
+ "target",
447
+ "'target is required'"
448
+ ]
449
+ });
450
+ const form2 = forms.find((form3) => (0, import_echo_schema2.getObjectAnnotation)(form3.objectSchema)?.typename === typename2);
451
+ if (form2 && !form2.formSchema) {
452
+ await onCreateObject?.({
453
+ form: form2,
454
+ target
455
+ });
456
+ } else {
457
+ setTypename(typename2);
434
458
  }
435
- return resolve?.(typename);
436
459
  }, [
437
- resolve,
438
- typename
460
+ forms,
461
+ onCreateObject,
462
+ target
439
463
  ]);
440
464
  const inputSurfaceLookup = useInputSurfaceLookup({
441
465
  target
442
466
  });
443
- const form = (0, import_react7.useMemo)(() => {
444
- const schema2 = metadata?.creationSchema ?? import_echo_schema2.S.Struct({
445
- name: import_echo_schema2.S.optional(import_echo_schema2.S.String)
446
- });
447
- return /* @__PURE__ */ import_react7.default.createElement(import_react_ui_form2.Form, {
448
- classNames: "!p-0",
449
- autoFocus: true,
450
- values: {
451
- name: initialName
452
- },
453
- schema: schema2,
454
- testId: "create-object-form",
455
- onSave: handleCreateObject,
456
- lookupComponent: inputSurfaceLookup
457
- });
458
- }, [
459
- initialName,
460
- handleCreateObject,
461
- metadata
462
- ]);
463
467
  return /* @__PURE__ */ import_react7.default.createElement("div", {
464
468
  role: "form",
465
469
  className: (0, import_react_ui_theme2.mx)("flex flex-col gap-2", classNames)
466
- }, !schema ? /* @__PURE__ */ import_react7.default.createElement(SelectSchema, {
470
+ }, !form ? /* @__PURE__ */ import_react7.default.createElement(SelectSchema, {
467
471
  options,
468
472
  resolve,
469
- onChange: setTypename
473
+ onChange: handleSetTypename
470
474
  }) : !target ? /* @__PURE__ */ import_react7.default.createElement(SelectSpace, {
471
475
  spaces,
472
476
  defaultSpaceId,
473
477
  onChange: setTarget
474
- }) : form);
478
+ }) : form.formSchema ? /* @__PURE__ */ import_react7.default.createElement(import_react_ui_form2.Form, {
479
+ classNames: "!p-0",
480
+ autoFocus: true,
481
+ values: {
482
+ name: initialName
483
+ },
484
+ schema: form.formSchema,
485
+ testId: "create-object-form",
486
+ onSave: handleCreateObject,
487
+ lookupComponent: inputSurfaceLookup
488
+ }) : void 0);
475
489
  };
476
490
  var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
477
491
  const { t } = (0, import_react_ui6.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
@@ -486,23 +500,23 @@ var SelectSpace = ({ spaces, defaultSpaceId, onChange }) => {
486
500
  }), /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Content, {
487
501
  classNames: "max-bs-[24rem] overflow-auto"
488
502
  }, spaces.sort((a, b) => {
489
- const aName = (0, import_react_ui6.toLocalizedString)((0, import_chunk_SYVPVU3K.getSpaceDisplayName)(a, {
503
+ const aName = (0, import_react_ui6.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(a, {
490
504
  personal: a.id === defaultSpaceId
491
505
  }), t);
492
- const bName = (0, import_react_ui6.toLocalizedString)((0, import_chunk_SYVPVU3K.getSpaceDisplayName)(b, {
506
+ const bName = (0, import_react_ui6.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(b, {
493
507
  personal: b.id === defaultSpaceId
494
508
  }), t);
495
509
  return aName.localeCompare(bName);
496
510
  }).map((space) => /* @__PURE__ */ import_react7.default.createElement(import_react_ui_searchlist.SearchList.Item, {
497
511
  key: space.id,
498
- value: (0, import_react_ui6.toLocalizedString)((0, import_chunk_SYVPVU3K.getSpaceDisplayName)(space, {
512
+ value: (0, import_react_ui6.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
499
513
  personal: space.id === defaultSpaceId
500
514
  }), t),
501
515
  onSelect: () => onChange(space),
502
516
  classNames: "flex items-center gap-2"
503
517
  }, /* @__PURE__ */ import_react7.default.createElement("span", {
504
518
  className: "grow truncate"
505
- }, (0, import_react_ui6.toLocalizedString)((0, import_chunk_SYVPVU3K.getSpaceDisplayName)(space, {
519
+ }, (0, import_react_ui6.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
506
520
  personal: space.id === defaultSpaceId
507
521
  }), t))))));
508
522
  };
@@ -536,27 +550,51 @@ var SelectSchema = ({ options, resolve, onChange }) => {
536
550
  defaultValue: option.typename
537
551
  }))))));
538
552
  };
553
+ var AppGraphBuilder = (0, import_app_framework4.lazy)(() => import("./app-graph-builder-ZIUBXRPA.cjs"));
554
+ var AppGraphSerializer = (0, import_app_framework4.lazy)(() => import("./app-graph-serializer-VQOGHKXL.cjs"));
555
+ var IdentityCreated = (0, import_app_framework4.lazy)(() => import("./identity-created-AXI64BLE.cjs"));
556
+ var IntentResolver = (0, import_app_framework4.lazy)(() => import("./intent-resolver-MLENGECT.cjs"));
557
+ var ReactRoot = (0, import_app_framework4.lazy)(() => import("./react-root-3OX5Z5CX.cjs"));
558
+ var ReactSurface = (0, import_app_framework4.lazy)(() => import("./react-surface-5NYCMXSM.cjs"));
559
+ var Schema = (0, import_app_framework4.lazy)(() => import("./schema-YN7WVFRX.cjs"));
560
+ var SpaceSettings = (0, import_app_framework4.lazy)(() => import("./settings-5QYFWNH7.cjs"));
561
+ var SpaceState = (0, import_app_framework4.lazy)(() => import("./state-57UE3DYE.cjs"));
562
+ var SpacesReady = (0, import_app_framework4.lazy)(() => import("./spaces-ready-FQNAKR7G.cjs"));
563
+ var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/CreateDialog/CreateObjectDialog.tsx";
539
564
  var CREATE_OBJECT_DIALOG = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/CreateObjectDialog`;
540
- var CreateObjectDialog = ({ schemas, target, typename, name, shouldNavigate: _shouldNavigate, resolve }) => {
565
+ var CreateObjectDialog = ({ target, typename, name, shouldNavigate: _shouldNavigate }) => {
541
566
  const closeRef = (0, import_react6.useRef)(null);
567
+ const manager = (0, import_app_framework2.usePluginManager)();
542
568
  const { t } = (0, import_react_ui5.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
543
569
  const client = (0, import_react_client2.useClient)();
544
570
  const spaces = (0, import_echo3.useSpaces)();
545
571
  const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
546
- const handleCreateObject = (0, import_react6.useCallback)(async ({ schema, target: _target, data }) => {
547
- const target2 = (0, import_echo3.isSpace)(_target) ? _target.properties[import_chunk_6MEOP3DH.CollectionType.typename]?.target : _target;
548
- const createObjectIntent = resolve?.(schema.typename)?.createObject;
549
- if (!createObjectIntent || !target2) {
572
+ const forms = (0, import_app_framework2.useCapabilities)(import_chunk_YZKNRFHU.SpaceCapabilities.ObjectForm);
573
+ const resolve = (0, import_react6.useCallback)((typename2) => manager.context.requestCapabilities(import_app_framework2.Capabilities.Metadata).find(({ id }) => id === typename2)?.metadata ?? {}, [
574
+ manager
575
+ ]);
576
+ const handleCreateObject = (0, import_react6.useCallback)(async ({ form, target: _target, data = {} }) => {
577
+ const target2 = (0, import_echo3.isSpace)(_target) ? _target.properties[import_chunk_WAJKBO3J.CollectionType.typename]?.target : _target;
578
+ if (!target2) {
550
579
  return;
551
580
  }
552
581
  closeRef.current?.click();
553
582
  const space = (0, import_echo3.isSpace)(target2) ? target2 : (0, import_echo3.getSpace)(target2);
554
- const result = await dispatch(createObjectIntent(data, {
583
+ (0, import_invariant.invariant)(space, "Missing space", {
584
+ F: __dxlog_file2,
585
+ L: 75,
586
+ S: void 0,
587
+ A: [
588
+ "space",
589
+ "'Missing space'"
590
+ ]
591
+ });
592
+ const result = await dispatch(form.getIntent(data, {
555
593
  space
556
594
  }));
557
595
  const object = result.data?.object;
558
596
  if ((0, import_echo3.isReactiveObject)(object)) {
559
- const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_6MEOP3DH.SpaceAction.AddObject, {
597
+ const addObjectIntent = (0, import_app_framework2.createIntent)(import_chunk_WAJKBO3J.SpaceAction.AddObject, {
560
598
  target: target2,
561
599
  object
562
600
  });
@@ -593,7 +631,7 @@ var CreateObjectDialog = ({ schemas, target, typename, name, shouldNavigate: _sh
593
631
  size: 4
594
632
  })))), /* @__PURE__ */ import_react6.default.createElement(CreateObjectPanel, {
595
633
  classNames: "p-4",
596
- schemas,
634
+ forms,
597
635
  spaces,
598
636
  target,
599
637
  typename,
@@ -611,15 +649,15 @@ var initialValues2 = {
611
649
  var CreateSpaceDialog = () => {
612
650
  const closeRef = (0, import_react8.useRef)(null);
613
651
  const { t } = (0, import_react_ui7.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
614
- const { dispatch } = (0, import_app_framework4.useIntentDispatcher)();
652
+ const { dispatch } = (0, import_app_framework5.useIntentDispatcher)();
615
653
  const handleCreateSpace = (0, import_react8.useCallback)(async (data) => {
616
654
  const program = import_effect2.Effect.gen(function* () {
617
- const { space } = yield* dispatch((0, import_app_framework4.createIntent)(import_chunk_6MEOP3DH.SpaceAction.Create, data));
618
- yield* dispatch((0, import_app_framework4.createIntent)(import_app_framework4.LayoutAction.SwitchWorkspace, {
655
+ const { space } = yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WAJKBO3J.SpaceAction.Create, data));
656
+ yield* dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.SwitchWorkspace, {
619
657
  part: "workspace",
620
658
  subject: space.id
621
659
  }));
622
- yield* dispatch((0, import_app_framework4.createIntent)(import_chunk_6MEOP3DH.SpaceAction.OpenCreateObject, {
660
+ yield* dispatch((0, import_app_framework5.createIntent)(import_chunk_WAJKBO3J.SpaceAction.OpenCreateObject, {
623
661
  target: space
624
662
  }));
625
663
  });
@@ -652,7 +690,7 @@ var CreateSpaceDialog = () => {
652
690
  classNames: "!p-0",
653
691
  autoFocus: true,
654
692
  values: initialValues2,
655
- schema: import_chunk_6MEOP3DH.SpaceForm,
693
+ schema: import_chunk_WAJKBO3J.SpaceForm,
656
694
  onSave: handleCreateSpace
657
695
  })))
658
696
  );
@@ -676,16 +714,16 @@ var CollectionSection = ({ collection }) => {
676
714
  className: "truncate"
677
715
  }, collection.name ?? t("unnamed collection label")));
678
716
  };
679
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/JoinDialog.tsx";
717
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/JoinDialog.tsx";
680
718
  var JOIN_DIALOG = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/JoinDialog`;
681
719
  var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
682
- const { dispatchPromise: dispatch } = (0, import_app_framework5.useIntentDispatcher)();
720
+ const { dispatchPromise: dispatch } = (0, import_app_framework6.useIntentDispatcher)();
683
721
  const client = (0, import_react_client3.useClient)();
684
- const { graph } = (0, import_app_framework5.useAppGraph)();
722
+ const { graph } = (0, import_app_framework6.useAppGraph)();
685
723
  const handleDone = (0, import_react11.useCallback)(async (result) => {
686
724
  if (result?.spaceKey) {
687
725
  await Promise.all([
688
- dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.AddToast, {
726
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.AddToast, {
689
727
  part: "toast",
690
728
  subject: {
691
729
  id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/join-success`,
@@ -704,7 +742,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
704
742
  ]
705
743
  }
706
744
  })),
707
- dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.UpdateDialog, {
745
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.UpdateDialog, {
708
746
  part: "dialog",
709
747
  options: {
710
748
  state: false
@@ -715,14 +753,14 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
715
753
  const space = result?.spaceKey ? client.spaces.get(result.spaceKey) : void 0;
716
754
  if (!space) {
717
755
  import_log.log.warn("Space not found", result?.spaceKey, {
718
- F: __dxlog_file,
756
+ F: __dxlog_file3,
719
757
  L: 56,
720
758
  S: void 0,
721
759
  C: (f, a) => f(...a)
722
760
  });
723
761
  return;
724
762
  }
725
- await dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.SwitchWorkspace, {
763
+ await dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.SwitchWorkspace, {
726
764
  part: "workspace",
727
765
  subject: space.id
728
766
  }));
@@ -733,13 +771,13 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
733
771
  }).catch(() => {
734
772
  });
735
773
  await Promise.all([
736
- dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.Open, {
774
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.Open, {
737
775
  part: "main",
738
776
  subject: [
739
777
  target
740
778
  ]
741
779
  })),
742
- dispatch((0, import_app_framework5.createIntent)(import_app_framework5.LayoutAction.Expose, {
780
+ dispatch((0, import_app_framework6.createIntent)(import_app_framework6.LayoutAction.Expose, {
743
781
  part: "navigation",
744
782
  subject: target
745
783
  }))
@@ -747,7 +785,7 @@ var JoinDialog = ({ navigableCollections, onDone, ...props }) => {
747
785
  }
748
786
  await onDone?.(result);
749
787
  if (space) {
750
- await dispatch((0, import_app_framework5.createIntent)(import_types.ObservabilityAction.SendEvent, {
788
+ await dispatch((0, import_app_framework6.createIntent)(import_types.ObservabilityAction.SendEvent, {
751
789
  name: "space.join",
752
790
  properties: {
753
791
  spaceId: space.id
@@ -774,7 +812,7 @@ var MenuFooter = ({ object }) => {
774
812
  const { t } = (0, import_react_ui11.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
775
813
  const client = (0, import_react_client4.useClient)();
776
814
  const space = (0, import_echo4.getSpace)(object);
777
- const spaceName = space ? (0, import_chunk_SYVPVU3K.getSpaceDisplayName)(space, {
815
+ const spaceName = space ? (0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
778
816
  personal: client.spaces.default === space
779
817
  }) : "";
780
818
  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", {
@@ -840,14 +878,53 @@ var PersistenceStatus = ({ db }) => {
840
878
  }, 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))));
841
879
  }
842
880
  };
843
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
881
+ var POPOVER_ADD_SPACE = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/PopoverRenameSpace`;
882
+ var PopoverAddSpace = () => {
883
+ const { t } = (0, import_react_ui13.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
884
+ const { dispatchPromise: dispatch } = (0, import_app_framework7.useIntentDispatcher)();
885
+ return /* @__PURE__ */ import_react17.default.createElement("div", {
886
+ role: "none",
887
+ className: "grid grid-cols-1 gap-1 [&>button]:justify-start"
888
+ }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui13.IconButton, {
889
+ variant: "ghost",
890
+ label: t("create space label"),
891
+ icon: "ph--plus--regular",
892
+ onClick: () => {
893
+ void dispatch((0, import_app_framework7.createIntent)(import_chunk_WAJKBO3J.SpaceAction.OpenCreateSpace));
894
+ void dispatch((0, import_app_framework7.createIntent)(import_app_framework7.LayoutAction.UpdatePopover, {
895
+ part: "popover",
896
+ options: {
897
+ anchorId: "",
898
+ state: false
899
+ }
900
+ }));
901
+ },
902
+ "data-testid": "spacePlugin.createSpace"
903
+ }), /* @__PURE__ */ import_react17.default.createElement(import_react_ui13.IconButton, {
904
+ variant: "ghost",
905
+ label: t("join space label"),
906
+ icon: "ph--sign-in--regular",
907
+ onClick: () => {
908
+ void dispatch((0, import_app_framework7.createIntent)(import_chunk_WAJKBO3J.SpaceAction.Join));
909
+ void dispatch((0, import_app_framework7.createIntent)(import_app_framework7.LayoutAction.UpdatePopover, {
910
+ part: "popover",
911
+ options: {
912
+ anchorId: "",
913
+ state: false
914
+ }
915
+ }));
916
+ },
917
+ "data-testid": "spacePlugin.joinSpace"
918
+ }));
919
+ };
920
+ var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
844
921
  var POPOVER_RENAME_OBJECT = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/PopoverRenameObject`;
845
922
  var PopoverRenameObject = ({ object: obj }) => {
846
- const { t } = (0, import_react_ui13.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
847
- const doneButton = (0, import_react17.useRef)(null);
923
+ const { t } = (0, import_react_ui14.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
924
+ const doneButton = (0, import_react18.useRef)(null);
848
925
  const object = obj;
849
- const [name, setName] = (0, import_react17.useState)(object.name || object.title || "");
850
- const handleDone = (0, import_react17.useCallback)(() => {
926
+ const [name, setName] = (0, import_react18.useState)(object.name || object.title || "");
927
+ const handleDone = (0, import_react18.useCallback)(() => {
851
928
  try {
852
929
  object.name = name;
853
930
  } catch {
@@ -857,7 +934,7 @@ var PopoverRenameObject = ({ object: obj }) => {
857
934
  import_log2.log.error("Failed to rename object", {
858
935
  err
859
936
  }, {
860
- F: __dxlog_file2,
937
+ F: __dxlog_file4,
861
938
  L: 30,
862
939
  S: void 0,
863
940
  C: (f, a) => f(...a)
@@ -868,23 +945,23 @@ var PopoverRenameObject = ({ object: obj }) => {
868
945
  object,
869
946
  name
870
947
  ]);
871
- return /* @__PURE__ */ import_react17.default.createElement("div", {
948
+ return /* @__PURE__ */ import_react18.default.createElement("div", {
872
949
  role: "none",
873
950
  className: "p-1 flex gap-2"
874
- }, /* @__PURE__ */ import_react17.default.createElement("div", {
951
+ }, /* @__PURE__ */ import_react18.default.createElement("div", {
875
952
  role: "none",
876
953
  className: "flex-1"
877
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui13.Input.Root, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui13.Input.Label, {
954
+ }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Input.Root, null, /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Input.Label, {
878
955
  srOnly: true
879
- }, t("object name label")), /* @__PURE__ */ import_react17.default.createElement(import_react_ui13.Input.TextInput, {
956
+ }, t("object name label")), /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Input.TextInput, {
880
957
  placeholder: t("object title placeholder"),
881
958
  value: name,
882
959
  "data-testid": "spacePlugin.renameObject.input",
883
960
  onChange: ({ target: { value } }) => setName(value),
884
961
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
885
- }))), /* @__PURE__ */ import_react17.default.createElement(import_react_ui13.Popover.Close, {
962
+ }))), /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Popover.Close, {
886
963
  asChild: true
887
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui13.Button, {
964
+ }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Button, {
888
965
  ref: doneButton,
889
966
  classNames: "self-stretch",
890
967
  onClick: handleDone
@@ -894,33 +971,33 @@ var PopoverRenameObject = ({ object: obj }) => {
894
971
  };
895
972
  var POPOVER_RENAME_SPACE = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/PopoverRenameSpace`;
896
973
  var PopoverRenameSpace = ({ space }) => {
897
- const { t } = (0, import_react_ui14.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
898
- const doneButton = (0, import_react18.useRef)(null);
899
- const [name, setName] = (0, import_react18.useState)(space.properties.name ?? "");
900
- const handleDone = (0, import_react18.useCallback)(() => {
974
+ const { t } = (0, import_react_ui15.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
975
+ const doneButton = (0, import_react19.useRef)(null);
976
+ const [name, setName] = (0, import_react19.useState)(space.properties.name ?? "");
977
+ const handleDone = (0, import_react19.useCallback)(() => {
901
978
  space.properties.name = name;
902
979
  }, [
903
980
  space,
904
981
  name
905
982
  ]);
906
- return /* @__PURE__ */ import_react18.default.createElement("div", {
983
+ return /* @__PURE__ */ import_react19.default.createElement("div", {
907
984
  role: "none",
908
985
  className: "p-1 flex gap-2"
909
- }, /* @__PURE__ */ import_react18.default.createElement("div", {
986
+ }, /* @__PURE__ */ import_react19.default.createElement("div", {
910
987
  role: "none",
911
988
  className: "flex-1"
912
- }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Input.Root, null, /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Input.Label, {
989
+ }, /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Input.Root, null, /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Input.Label, {
913
990
  srOnly: true
914
- }, t("space name label")), /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Input.TextInput, {
991
+ }, t("space name label")), /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Input.TextInput, {
915
992
  defaultValue: space.properties.name ?? "",
916
993
  placeholder: t("unnamed space label"),
917
994
  onChange: ({ target: { value } }) => setName(value),
918
995
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
919
996
  // Currently this is not possible because Radix does not expose the popover context.
920
997
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
921
- }))), /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Popover.Close, {
998
+ }))), /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Popover.Close, {
922
999
  asChild: true
923
- }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui14.Button, {
1000
+ }, /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.Button, {
924
1001
  ref: doneButton,
925
1002
  classNames: "self-stretch",
926
1003
  onClick: handleDone
@@ -929,36 +1006,27 @@ var PopoverRenameSpace = ({ space }) => {
929
1006
  }))));
930
1007
  };
931
1008
  var ShareSpaceButton = ({ space }) => {
932
- const { dispatchPromise: dispatch } = (0, import_app_framework6.useIntentDispatcher)();
933
- return /* @__PURE__ */ import_react19.default.createElement(ShareSpaceButtonImpl, {
934
- onClick: () => dispatch((0, import_app_framework6.createIntent)(import_chunk_6MEOP3DH.SpaceAction.Share, {
1009
+ const { dispatchPromise: dispatch } = (0, import_app_framework8.useIntentDispatcher)();
1010
+ return /* @__PURE__ */ import_react20.default.createElement(ShareSpaceButtonImpl, {
1011
+ onClick: () => dispatch((0, import_app_framework8.createIntent)(import_chunk_WAJKBO3J.SpaceAction.Share, {
935
1012
  space
936
1013
  }))
937
1014
  });
938
1015
  };
939
1016
  var ShareSpaceButtonImpl = ({ onClick }) => {
940
- const { t } = (0, import_react_ui15.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
941
- return /* @__PURE__ */ import_react19.default.createElement(import_react_ui15.IconButton, {
1017
+ const { t } = (0, import_react_ui16.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1018
+ return /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.IconButton, {
942
1019
  "data-testid": "spacePlugin.shareSpaceButton",
943
1020
  icon: "ph--users--regular",
944
1021
  label: t("share space label"),
945
1022
  onClick
946
1023
  });
947
1024
  };
948
- var AppGraphBuilder = (0, import_app_framework8.lazy)(() => import("./app-graph-builder-V3RCGDV7.cjs"));
949
- var AppGraphSerializer = (0, import_app_framework8.lazy)(() => import("./app-graph-serializer-H4UACG57.cjs"));
950
- var IdentityCreated = (0, import_app_framework8.lazy)(() => import("./identity-created-7G5U7R36.cjs"));
951
- var IntentResolver = (0, import_app_framework8.lazy)(() => import("./intent-resolver-CDE4M3TW.cjs"));
952
- var ReactRoot = (0, import_app_framework8.lazy)(() => import("./react-root-JN6AIHMS.cjs"));
953
- var ReactSurface = (0, import_app_framework8.lazy)(() => import("./react-surface-XSK2QEQV.cjs"));
954
- var SpaceSettings = (0, import_app_framework8.lazy)(() => import("./settings-TEELGWS4.cjs"));
955
- var SpaceState = (0, import_app_framework8.lazy)(() => import("./state-WPZC4JXB.cjs"));
956
- var SpacesReady = (0, import_app_framework8.lazy)(() => import("./spaces-ready-L4MJTFQ6.cjs"));
957
1025
  var usePath = (graph, id, timeout) => {
958
- const [pathState, setPathState] = (0, import_react21.useState)(id ? graph.getPath({
1026
+ const [pathState, setPathState] = (0, import_react22.useState)(id ? graph.getPath({
959
1027
  target: id
960
1028
  }) : void 0);
961
- (0, import_react21.useEffect)(() => {
1029
+ (0, import_react22.useEffect)(() => {
962
1030
  if (!id && pathState) {
963
1031
  setPathState(void 0);
964
1032
  }
@@ -992,18 +1060,18 @@ var ACTIVITY_DURATION = 3e4;
992
1060
  var noViewers = new import_util2.ComplexMap(import_react_client5.PublicKey.hash);
993
1061
  var getName = (identity) => identity.profile?.displayName ?? (0, import_display_name.generateName)(identity.identityKey.toHex());
994
1062
  var SpacePresence = ({ object, spaceKey }) => {
995
- const spaceState = (0, import_app_framework7.useCapability)(import_chunk_UX3U4RU2.SpaceCapabilities.MutableState);
1063
+ const spaceState = (0, import_app_framework9.useCapability)(import_chunk_YZKNRFHU.SpaceCapabilities.MutableState);
996
1064
  const client = (0, import_react_client5.useClient)();
997
1065
  const identity = (0, import_halo.useIdentity)();
998
1066
  const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo5.getSpace)(object);
999
1067
  const spaceMembers = (0, import_echo5.useMembers)(space?.key);
1000
- const [_moment, setMoment] = (0, import_react20.useState)(Date.now());
1001
- (0, import_react20.useEffect)(() => {
1068
+ const [_moment, setMoment] = (0, import_react21.useState)(Date.now());
1069
+ (0, import_react21.useEffect)(() => {
1002
1070
  const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
1003
1071
  return () => clearInterval(interval);
1004
1072
  }, []);
1005
- const memberOnline = (0, import_react20.useCallback)((member) => member.presence === 1, []);
1006
- const memberIsNotSelf = (0, import_react20.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1073
+ const memberOnline = (0, import_react21.useCallback)((member) => member.presence === 1, []);
1074
+ const memberIsNotSelf = (0, import_react21.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1007
1075
  identity?.identityKey
1008
1076
  ]);
1009
1077
  if (!identity || !spaceState || !space) {
@@ -1020,61 +1088,61 @@ var SpacePresence = ({ object, spaceKey }) => {
1020
1088
  lastSeen
1021
1089
  };
1022
1090
  }).toSorted((a, b) => a.lastSeen - b.lastSeen);
1023
- return /* @__PURE__ */ import_react20.default.createElement(FullPresence, {
1091
+ return /* @__PURE__ */ import_react21.default.createElement(FullPresence, {
1024
1092
  members: membersForObject
1025
1093
  });
1026
1094
  };
1027
1095
  var FullPresence = (props) => {
1028
1096
  const { size = 9, onMemberClick } = props;
1029
- const members = (0, import_react_ui16.useDefaultValue)(props.members, () => []);
1097
+ const members = (0, import_react_ui17.useDefaultValue)(props.members, () => []);
1030
1098
  if (members.length === 0) {
1031
1099
  return null;
1032
1100
  }
1033
- return /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.AvatarGroup.Root, {
1101
+ return /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.AvatarGroup.Root, {
1034
1102
  size,
1035
1103
  classNames: "mbs-2 mie-4",
1036
1104
  "data-testid": "spacePlugin.presence"
1037
- }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Root, {
1105
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Root, {
1038
1106
  key: member.identity.identityKey.toHex()
1039
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Trigger, null, /* @__PURE__ */ import_react20.default.createElement(PrensenceAvatar, {
1107
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Trigger, null, /* @__PURE__ */ import_react21.default.createElement(PrensenceAvatar, {
1040
1108
  identity: member.identity,
1041
1109
  group: true,
1042
1110
  match: member.currentlyAttended,
1043
1111
  index: members.length - i,
1044
1112
  onClick: () => onMemberClick?.(member)
1045
- })), /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Portal, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Content, {
1113
+ })), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Content, {
1046
1114
  side: "bottom"
1047
- }, /* @__PURE__ */ import_react20.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Root, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Trigger, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.AvatarGroupItem.Root, {
1115
+ }, /* @__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, {
1048
1116
  status: "inactive"
1049
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Avatar.Frame, {
1117
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Frame, {
1050
1118
  style: {
1051
1119
  zIndex: members.length - 4
1052
1120
  }
1053
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Avatar.Fallback, {
1121
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Fallback, {
1054
1122
  text: `+${members.length - 3}`
1055
- })))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Portal, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Content, {
1123
+ })))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Content, {
1056
1124
  side: "bottom"
1057
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Arrow, null), /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.List, {
1125
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Arrow, null), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.List, {
1058
1126
  classNames: "max-h-56 overflow-y-auto"
1059
- }, members.map((member) => /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.ListItem.Root, {
1127
+ }, members.map((member) => /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.ListItem.Root, {
1060
1128
  key: member.identity.identityKey.toHex(),
1061
1129
  classNames: "flex gap-2 items-center cursor-pointer mbe-2",
1062
1130
  onClick: () => onMemberClick?.(member),
1063
1131
  "data-testid": "identity-list-item"
1064
- }, /* @__PURE__ */ import_react20.default.createElement(PrensenceAvatar, {
1132
+ }, /* @__PURE__ */ import_react21.default.createElement(PrensenceAvatar, {
1065
1133
  identity: member.identity,
1066
1134
  showName: true,
1067
1135
  match: member.currentlyAttended
1068
1136
  }))))))));
1069
1137
  };
1070
1138
  var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) => {
1071
- const Root = group ? import_react_ui16.AvatarGroupItem.Root : import_react_ui16.Avatar.Root;
1139
+ const Root = group ? import_react_ui17.AvatarGroupItem.Root : import_react_ui17.Avatar.Root;
1072
1140
  const status = match ? "current" : "active";
1073
1141
  const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
1074
- return /* @__PURE__ */ import_react20.default.createElement(Root, {
1142
+ return /* @__PURE__ */ import_react21.default.createElement(Root, {
1075
1143
  status,
1076
1144
  hue: identity.profile?.data?.hue || fallbackValue.hue
1077
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Avatar.Frame, {
1145
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Frame, {
1078
1146
  "data-testid": "spacePlugin.presence.member",
1079
1147
  "data-status": status,
1080
1148
  ...index ? {
@@ -1083,16 +1151,16 @@ var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) =>
1083
1151
  }
1084
1152
  } : {},
1085
1153
  onClick: () => onClick?.()
1086
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Avatar.Fallback, {
1154
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Fallback, {
1087
1155
  text: identity.profile?.data?.emoji || fallbackValue.emoji
1088
- })), showName && /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Avatar.Label, {
1156
+ })), showName && /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Avatar.Label, {
1089
1157
  classNames: "text-sm truncate pli-2"
1090
1158
  }, getName(identity)));
1091
1159
  };
1092
1160
  var SmallPresenceLive = ({ id, open, viewers }) => {
1093
1161
  const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention.useAttention)(id);
1094
1162
  const isAttended = hasAttention || isAncestor || isRelated;
1095
- const { graph } = (0, import_app_framework7.useAppGraph)();
1163
+ const { graph } = (0, import_app_framework9.useAppGraph)();
1096
1164
  const attended = (0, import_react_ui_attention.useAttended)();
1097
1165
  const startOfAttention = attended.at(-1);
1098
1166
  const path = usePath(graph, startOfAttention);
@@ -1101,8 +1169,8 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1101
1169
  const moment = Date.now();
1102
1170
  return Array.from(viewers2.values()).filter((viewer) => moment - viewer.lastSeen < ACTIVITY_DURATION);
1103
1171
  };
1104
- const [activeViewers, setActiveViewers] = (0, import_react20.useState)(viewers ? getActiveViewers(viewers) : []);
1105
- (0, import_react20.useEffect)(() => {
1172
+ const [activeViewers, setActiveViewers] = (0, import_react21.useState)(viewers ? getActiveViewers(viewers) : []);
1173
+ (0, import_react21.useEffect)(() => {
1106
1174
  if (viewers) {
1107
1175
  setActiveViewers(getActiveViewers(viewers));
1108
1176
  const interval = setInterval(() => {
@@ -1113,47 +1181,47 @@ var SmallPresenceLive = ({ id, open, viewers }) => {
1113
1181
  }, [
1114
1182
  viewers
1115
1183
  ]);
1116
- return /* @__PURE__ */ import_react20.default.createElement(SmallPresence, {
1184
+ return /* @__PURE__ */ import_react21.default.createElement(SmallPresence, {
1117
1185
  count: activeViewers.length,
1118
1186
  attended: isAttended,
1119
1187
  containsAttended
1120
1188
  });
1121
1189
  };
1122
1190
  var SmallPresence = ({ count = 0, attended, containsAttended }) => {
1123
- const { t } = (0, import_react_ui16.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1124
- return /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Root, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Trigger, {
1191
+ const { t } = (0, import_react_ui17.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1192
+ return /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Root, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Trigger, {
1125
1193
  asChild: true
1126
- }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui_attention.AttentionGlyph, {
1194
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui_attention.AttentionGlyph, {
1127
1195
  attended,
1128
1196
  containsAttended,
1129
1197
  presence: count > 1 ? "many" : count === 1 ? "one" : "none",
1130
1198
  classNames: "self-center mie-1"
1131
- })), /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Portal, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Content, {
1199
+ })), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Portal, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Content, {
1132
1200
  side: "bottom"
1133
- }, /* @__PURE__ */ import_react20.default.createElement("span", null, t("presence label", {
1201
+ }, /* @__PURE__ */ import_react21.default.createElement("span", null, t("presence label", {
1134
1202
  count
1135
- })), /* @__PURE__ */ import_react20.default.createElement(import_react_ui16.Tooltip.Arrow, null))));
1203
+ })), /* @__PURE__ */ import_react21.default.createElement(import_react_ui17.Tooltip.Arrow, null))));
1136
1204
  };
1137
1205
  var SpacePluginSettings = ({ settings }) => {
1138
- const { t } = (0, import_react_ui17.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1139
- return /* @__PURE__ */ import_react22.default.createElement(import_react_ui_form4.DeprecatedFormContainer, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui_form4.DeprecatedFormInput, {
1206
+ const { t } = (0, import_react_ui18.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1207
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form4.DeprecatedFormContainer, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form4.DeprecatedFormInput, {
1140
1208
  label: t("show hidden spaces label")
1141
- }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui17.Input.Switch, {
1209
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui18.Input.Switch, {
1142
1210
  checked: settings.showHidden,
1143
1211
  onCheckedChange: (checked) => settings.showHidden = !!checked
1144
1212
  })));
1145
1213
  };
1146
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsPanel.tsx";
1214
+ var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SpaceSettings/SpaceSettingsPanel.tsx";
1147
1215
  var SpaceSettingsPanel = ({ space }) => {
1148
- const { t } = (0, import_react_ui18.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1216
+ const { t } = (0, import_react_ui19.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1149
1217
  const client = (0, import_react_client6.useClient)();
1150
1218
  const edgeEnabled = Boolean(client.config.values.runtime?.client?.edgeFeatures?.echoReplicator);
1151
- const [edgeReplication, setEdgeReplication] = (0, import_react23.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
1152
- const toggleEdgeReplication = (0, import_react23.useCallback)(async (next) => {
1219
+ const [edgeReplication, setEdgeReplication] = (0, import_react24.useState)(space.internal.data.edgeReplication === import_metadata.EdgeReplicationSetting.ENABLED);
1220
+ const toggleEdgeReplication = (0, import_react24.useCallback)(async (next) => {
1153
1221
  setEdgeReplication(next);
1154
1222
  await space?.internal.setEdgeReplicationPreference(next ? import_metadata.EdgeReplicationSetting.ENABLED : import_metadata.EdgeReplicationSetting.DISABLED).catch((err) => {
1155
1223
  import_log3.log.catch(err, void 0, {
1156
- F: __dxlog_file3,
1224
+ F: __dxlog_file5,
1157
1225
  L: 36,
1158
1226
  S: void 0,
1159
1227
  C: (f, a) => f(...a)
@@ -1163,40 +1231,50 @@ var SpaceSettingsPanel = ({ space }) => {
1163
1231
  }, [
1164
1232
  space
1165
1233
  ]);
1166
- return /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form5.DeprecatedFormContainer, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1234
+ return /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormContainer, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1167
1235
  label: t("name label")
1168
- }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui18.Input.TextInput, {
1236
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Input.TextInput, {
1169
1237
  placeholder: t("unnamed space label"),
1170
1238
  value: space.properties.name ?? "",
1171
1239
  onChange: (event) => {
1172
1240
  space.properties.name = event.target.value;
1173
1241
  }
1174
- })), /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1242
+ })), /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1243
+ label: t("icon label")
1244
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Toolbar.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_pickers.IconPicker, {
1245
+ value: space.properties.icon,
1246
+ onChange: (nextIcon) => space.properties.icon = nextIcon,
1247
+ onReset: () => {
1248
+ space.properties.icon = void 0;
1249
+ }
1250
+ }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1175
1251
  label: t("hue label")
1176
- }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui_pickers.HuePickerBlock, {
1177
- hue: space.properties.hue,
1178
- onChangeHue: (nextHue) => space.properties.hue = nextHue,
1179
- onClickClear: () => space.properties.hue = void 0
1180
- })), edgeEnabled && /* @__PURE__ */ import_react23.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1252
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Toolbar.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_pickers.HuePicker, {
1253
+ value: space.properties.hue,
1254
+ onChange: (nextHue) => space.properties.hue = nextHue,
1255
+ onReset: () => {
1256
+ space.properties.hue = void 0;
1257
+ }
1258
+ }))), edgeEnabled && /* @__PURE__ */ import_react24.default.createElement(import_react_ui_form5.DeprecatedFormInput, {
1181
1259
  label: t("edge replication label")
1182
- }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui18.Input.Switch, {
1260
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Input.Switch, {
1183
1261
  checked: edgeReplication,
1184
1262
  onCheckedChange: toggleEdgeReplication
1185
1263
  })));
1186
1264
  };
1187
1265
  var SPACE_SETTINGS_DIALOG = `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/SpaceSettingsDialog`;
1188
1266
  var SpaceSettingsDialog = ({ space, target, createInvitationUrl, initialTab = "members", namesCache }) => {
1189
- const { t } = (0, import_react_ui19.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1267
+ const { t } = (0, import_react_ui20.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1190
1268
  const client = (0, import_react_client7.useClient)();
1191
- const [tabsActivePart, setTabsActivePart] = (0, import_react24.useState)("list");
1192
- const [selected, setSelected] = (0, import_react24.useState)(initialTab);
1193
- const locked = space.properties[import_chunk_SYVPVU3K.COMPOSER_SPACE_LOCK];
1194
- const name = (0, import_chunk_SYVPVU3K.getSpaceDisplayName)(space, {
1269
+ const [tabsActivePart, setTabsActivePart] = (0, import_react25.useState)("list");
1270
+ const [selected, setSelected] = (0, import_react25.useState)(initialTab);
1271
+ const locked = space.properties[import_chunk_OVGKWJOC.COMPOSER_SPACE_LOCK];
1272
+ const name = (0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
1195
1273
  personal: client.spaces.default === space,
1196
1274
  namesCache
1197
1275
  });
1198
- const panels = (0, import_app_framework9.useCapabilities)(import_chunk_UX3U4RU2.SpaceCapabilities.SettingsPanel);
1199
- const data = (0, import_react24.useMemo)(() => ({
1276
+ const panels = (0, import_app_framework10.useCapabilities)(import_chunk_YZKNRFHU.SpaceCapabilities.SettingsPanel);
1277
+ const data = (0, import_react25.useMemo)(() => ({
1200
1278
  subject: space
1201
1279
  }), [
1202
1280
  space
@@ -1204,82 +1282,82 @@ var SpaceSettingsDialog = ({ space, target, createInvitationUrl, initialTab = "m
1204
1282
  return (
1205
1283
  // TODO(wittjosiah): The tablist dialog pattern is copied from @dxos/plugin-manager.
1206
1284
  // Consider factoring it out to the tabs package.
1207
- /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Dialog.Content, {
1285
+ /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Dialog.Content, {
1208
1286
  classNames: "p-0 bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden"
1209
- }, /* @__PURE__ */ import_react24.default.createElement("div", {
1287
+ }, /* @__PURE__ */ import_react25.default.createElement("div", {
1210
1288
  role: "none",
1211
1289
  className: "flex justify-between pbs-2 pis-2 pie-2 @md:pbs-4 @md:pis-4 @md:pie-4"
1212
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Dialog.Title, {
1290
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Dialog.Title, {
1213
1291
  onClick: () => setTabsActivePart("list"),
1214
1292
  "aria-description": t("click to return to tablist description"),
1215
1293
  classNames: "flex cursor-pointer items-center group/title"
1216
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Icon, {
1294
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Icon, {
1217
1295
  icon: "ph--caret-left--regular",
1218
1296
  size: 4,
1219
1297
  classNames: [
1220
1298
  "@md:hidden",
1221
1299
  tabsActivePart === "list" && "invisible"
1222
1300
  ]
1223
- }), /* @__PURE__ */ import_react24.default.createElement("span", {
1301
+ }), /* @__PURE__ */ import_react25.default.createElement("span", {
1224
1302
  className: tabsActivePart !== "list" ? "group-hover/title:underline @md:group-hover/title:no-underline underline-offset-4 decoration-1" : ""
1225
- }, (0, import_react_ui19.toLocalizedString)(name, t))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Dialog.Close, {
1303
+ }, (0, import_react_ui20.toLocalizedString)(name, t))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Dialog.Close, {
1226
1304
  asChild: true
1227
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Button, {
1305
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Button, {
1228
1306
  density: "fine",
1229
1307
  variant: "ghost",
1230
1308
  autoFocus: true
1231
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Icon, {
1309
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Icon, {
1232
1310
  icon: "ph--x--regular",
1233
1311
  size: 4
1234
- })))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui_tabs.Tabs.Root, {
1312
+ })))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Root, {
1235
1313
  orientation: "vertical",
1236
1314
  value: selected,
1237
1315
  onValueChange: setSelected,
1238
1316
  activePart: tabsActivePart,
1239
1317
  onActivePartChange: setTabsActivePart,
1240
1318
  classNames: "flex flex-col flex-1 mbs-2"
1241
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_tabs.Tabs.Viewport, {
1319
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Viewport, {
1242
1320
  classNames: "flex-1 min-bs-0"
1243
- }, /* @__PURE__ */ import_react24.default.createElement("div", {
1321
+ }, /* @__PURE__ */ import_react25.default.createElement("div", {
1244
1322
  role: "none",
1245
1323
  className: "overflow-y-auto pli-3 @md:pis-2 @md:pie-0 mbe-4 border-r border-separator"
1246
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_tabs.Tabs.Tablist, {
1324
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tablist, {
1247
1325
  classNames: "flex flex-col max-bs-none min-is-[200px] gap-4 overflow-y-auto"
1248
- }, /* @__PURE__ */ import_react24.default.createElement("div", {
1326
+ }, /* @__PURE__ */ import_react25.default.createElement("div", {
1249
1327
  role: "none",
1250
1328
  className: "flex flex-col ml-1"
1251
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui_tabs.Tabs.Tab, {
1329
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tab, {
1252
1330
  value: "settings"
1253
- }, t("settings tab label")), /* @__PURE__ */ import_react24.default.createElement(import_react_ui_tabs.Tabs.Tab, {
1331
+ }, t("settings tab label")), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tab, {
1254
1332
  value: "members",
1255
1333
  disabled: locked
1256
- }, t("members tab label")), panels.map((panel) => /* @__PURE__ */ import_react24.default.createElement(import_react_ui_tabs.Tabs.Tab, {
1334
+ }, t("members tab label")), panels.map((panel) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tab, {
1257
1335
  key: panel.id,
1258
1336
  value: panel.id
1259
- }, (0, import_react_ui19.toLocalizedString)(panel.label, t)))))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
1337
+ }, (0, import_react_ui20.toLocalizedString)(panel.label, t)))))), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
1260
1338
  value: "settings",
1261
1339
  classNames: "pli-3 @md:pli-5 max-bs-dvh overflow-y-auto"
1262
- }, /* @__PURE__ */ import_react24.default.createElement(SpaceSettingsPanel, {
1340
+ }, /* @__PURE__ */ import_react25.default.createElement(SpaceSettingsPanel, {
1263
1341
  space
1264
- })), /* @__PURE__ */ import_react24.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
1342
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
1265
1343
  value: "members",
1266
1344
  classNames: "pli-3 @md:pli-5 max-bs-dvh overflow-y-auto"
1267
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui19.Clipboard.Provider, null, /* @__PURE__ */ import_react24.default.createElement(import_react25.SpacePanel, {
1345
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui20.Clipboard.Provider, null, /* @__PURE__ */ import_react25.default.createElement(import_react26.SpacePanel, {
1268
1346
  space,
1269
1347
  hideHeading: true,
1270
1348
  target,
1271
1349
  createInvitationUrl
1272
- }))), panels.map((panel) => /* @__PURE__ */ import_react24.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
1350
+ }))), panels.map((panel) => /* @__PURE__ */ import_react25.default.createElement(import_react_ui_tabs.Tabs.Tabpanel, {
1273
1351
  key: panel.id,
1274
1352
  value: panel.id,
1275
1353
  classNames: "pli-3 @md:pli-5 max-bs-dvh overflow-y-auto"
1276
- }, /* @__PURE__ */ import_react24.default.createElement(import_app_framework9.Surface, {
1354
+ }, /* @__PURE__ */ import_react25.default.createElement(import_app_framework10.Surface, {
1277
1355
  role: `space-settings--${panel.id}`,
1278
1356
  data
1279
1357
  }))))))
1280
1358
  );
1281
1359
  };
1282
- var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/sync-state.ts";
1360
+ var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/sync-state.ts";
1283
1361
  var createEmptyEdgeSyncState = () => ({
1284
1362
  missingOnLocal: 0,
1285
1363
  missingOnRemote: 0,
@@ -1300,10 +1378,10 @@ var getSyncSummary = (syncMap) => {
1300
1378
  var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
1301
1379
  var useSyncState = () => {
1302
1380
  const client = (0, import_react_client9.useClient)();
1303
- const [spaceState, setSpaceState] = (0, import_react27.useState)({});
1304
- (0, import_react27.useEffect)(() => {
1381
+ const [spaceState, setSpaceState] = (0, import_react28.useState)({});
1382
+ (0, import_react28.useEffect)(() => {
1305
1383
  const ctx = new import_context.Context(void 0, {
1306
- F: __dxlog_file4,
1384
+ F: __dxlog_file6,
1307
1385
  L: 48
1308
1386
  });
1309
1387
  const createSubscriptions = (spaces) => {
@@ -1335,10 +1413,10 @@ var useSyncState = () => {
1335
1413
  return spaceState;
1336
1414
  };
1337
1415
  var useSpaceSyncState = (space) => {
1338
- const [spaceState, setSpaceState] = (0, import_react27.useState)();
1339
- (0, import_react27.useEffect)(() => {
1416
+ const [spaceState, setSpaceState] = (0, import_react28.useState)();
1417
+ (0, import_react28.useEffect)(() => {
1340
1418
  const ctx = new import_context.Context(void 0, {
1341
- F: __dxlog_file4,
1419
+ F: __dxlog_file6,
1342
1420
  L: 87
1343
1421
  });
1344
1422
  space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
@@ -1356,9 +1434,9 @@ var useSpaceSyncState = (space) => {
1356
1434
  return spaceState;
1357
1435
  };
1358
1436
  var useEdgeStatus = () => {
1359
- const [status, setStatus] = (0, import_react26.useState)(import_services.QueryEdgeStatusResponse.EdgeStatus.NOT_CONNECTED);
1437
+ const [status, setStatus] = (0, import_react27.useState)(import_services.QueryEdgeStatusResponse.EdgeStatus.NOT_CONNECTED);
1360
1438
  const client = (0, import_react_client8.useClient)();
1361
- (0, import_react26.useEffect)(() => {
1439
+ (0, import_react27.useEffect)(() => {
1362
1440
  client.services.services.EdgeAgentService?.queryEdgeStatus().subscribe(({ status: status2 }) => {
1363
1441
  setStatus(status2);
1364
1442
  });
@@ -1368,11 +1446,11 @@ var useEdgeStatus = () => {
1368
1446
  return status;
1369
1447
  };
1370
1448
  var InlineSyncStatus = ({ space, open }) => {
1371
- const { t } = (0, import_react_ui20.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1449
+ const { t } = (0, import_react_ui21.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1372
1450
  const id = space.id;
1373
1451
  const { hasAttention, isAncestor, isRelated } = (0, import_react_ui_attention2.useAttention)(id);
1374
1452
  const isAttended = hasAttention || isAncestor || isRelated;
1375
- const { graph } = (0, import_app_framework10.useAppGraph)();
1453
+ const { graph } = (0, import_app_framework11.useAppGraph)();
1376
1454
  const attended = (0, import_react_ui_attention2.useAttended)();
1377
1455
  const startOfAttention = attended.at(-1);
1378
1456
  const path = usePath(graph, startOfAttention);
@@ -1381,17 +1459,17 @@ var InlineSyncStatus = ({ space, open }) => {
1381
1459
  const edgeSyncEnabled = space.internal.data.edgeReplication === import_metadata2.EdgeReplicationSetting.ENABLED;
1382
1460
  const syncState = useSpaceSyncState(space);
1383
1461
  const syncing = connectedToEdge && edgeSyncEnabled && syncState && syncState.missingOnLocal > 0;
1384
- return /* @__PURE__ */ import_react26.default.createElement(import_react_ui20.Tooltip.Root, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui20.Tooltip.Trigger, {
1462
+ return /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Root, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Trigger, {
1385
1463
  asChild: true
1386
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui_attention2.AttentionGlyph, {
1464
+ }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui_attention2.AttentionGlyph, {
1387
1465
  syncing,
1388
1466
  attended: isAttended,
1389
1467
  containsAttended,
1390
1468
  classNames: "self-center mie-1"
1391
- })), /* @__PURE__ */ import_react26.default.createElement(import_react_ui20.Tooltip.Portal, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui20.Tooltip.Content, {
1469
+ })), /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Portal, null, /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Content, {
1392
1470
  side: "bottom",
1393
1471
  classNames: "z-[70]"
1394
- }, /* @__PURE__ */ import_react26.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react26.default.createElement(import_react_ui20.Tooltip.Arrow, null))));
1472
+ }, /* @__PURE__ */ import_react27.default.createElement("span", null, t("syncing label")), /* @__PURE__ */ import_react27.default.createElement(import_react_ui21.Tooltip.Arrow, null))));
1395
1473
  };
1396
1474
  var SYNC_STALLED_TIMEOUT = 5e3;
1397
1475
  var styles = {
@@ -1400,9 +1478,9 @@ var styles = {
1400
1478
  barHover: "dark:hover:bg-green-500"
1401
1479
  };
1402
1480
  var useActive = (count) => {
1403
- const [current, setCurrent] = (0, import_react29.useState)(count);
1404
- const [active, setActive] = (0, import_react29.useState)(false);
1405
- (0, import_react29.useEffect)(() => {
1481
+ const [current, setCurrent] = (0, import_react30.useState)(count);
1482
+ const [active, setActive] = (0, import_react30.useState)(false);
1483
+ (0, import_react30.useEffect)(() => {
1406
1484
  let t;
1407
1485
  if (count !== current) {
1408
1486
  setActive(true);
@@ -1423,16 +1501,16 @@ var useActive = (count) => {
1423
1501
  return active;
1424
1502
  };
1425
1503
  var SpaceRowContainer = ({ spaceId, state }) => {
1426
- const { t } = (0, import_react_ui22.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1504
+ const { t } = (0, import_react_ui23.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1427
1505
  const client = (0, import_react_client11.useClient)();
1428
1506
  const space = (0, import_echo6.useSpace)(spaceId);
1429
1507
  if (!space) {
1430
1508
  return null;
1431
1509
  }
1432
- const spaceName = (0, import_react_ui22.toLocalizedString)((0, import_chunk_SYVPVU3K.getSpaceDisplayName)(space, {
1510
+ const spaceName = (0, import_react_ui23.toLocalizedString)((0, import_chunk_OVGKWJOC.getSpaceDisplayName)(space, {
1433
1511
  personal: space === client.spaces.default
1434
1512
  }), t);
1435
- return /* @__PURE__ */ import_react29.default.createElement(SpaceRow, {
1513
+ return /* @__PURE__ */ import_react30.default.createElement(SpaceRow, {
1436
1514
  spaceId,
1437
1515
  spaceName,
1438
1516
  state
@@ -1441,19 +1519,19 @@ var SpaceRowContainer = ({ spaceId, state }) => {
1441
1519
  var SpaceRow = ({ spaceId, spaceName, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
1442
1520
  const downActive = useActive(localDocumentCount);
1443
1521
  const upActive = useActive(remoteDocumentCount);
1444
- return /* @__PURE__ */ import_react29.default.createElement("div", {
1522
+ return /* @__PURE__ */ import_react30.default.createElement("div", {
1445
1523
  className: "flex items-center mx-0.5 gap-0.5 cursor-pointer",
1446
1524
  title: spaceId,
1447
1525
  onClick: () => {
1448
1526
  void navigator.clipboard.writeText(spaceId);
1449
1527
  }
1450
- }, /* @__PURE__ */ import_react29.default.createElement("span", {
1528
+ }, /* @__PURE__ */ import_react30.default.createElement("span", {
1451
1529
  className: "is-1/2 truncate"
1452
- }, spaceName), /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Icon, {
1530
+ }, spaceName), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Icon, {
1453
1531
  icon: "ph--arrow-fat-line-left--regular",
1454
1532
  size: 3,
1455
1533
  classNames: (0, import_react_ui_theme6.mx)(downActive && "animate-[pulse_1s_infinite]")
1456
- }), /* @__PURE__ */ import_react29.default.createElement(Candle, {
1534
+ }), /* @__PURE__ */ import_react30.default.createElement(Candle, {
1457
1535
  up: {
1458
1536
  count: remoteDocumentCount,
1459
1537
  total: remoteDocumentCount + missingOnRemote
@@ -1463,41 +1541,41 @@ var SpaceRow = ({ spaceId, spaceName, state: { localDocumentCount, remoteDocumen
1463
1541
  total: localDocumentCount + missingOnLocal
1464
1542
  },
1465
1543
  title: spaceId
1466
- }), /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Icon, {
1544
+ }), /* @__PURE__ */ import_react30.default.createElement(import_react_ui23.Icon, {
1467
1545
  icon: "ph--arrow-fat-line-right--regular",
1468
1546
  size: 3,
1469
1547
  classNames: (0, import_react_ui_theme6.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
1470
1548
  }));
1471
1549
  };
1472
1550
  var Candle = ({ classNames, up, down }) => {
1473
- return /* @__PURE__ */ import_react29.default.createElement("div", {
1551
+ return /* @__PURE__ */ import_react30.default.createElement("div", {
1474
1552
  className: (0, import_react_ui_theme6.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
1475
- }, /* @__PURE__ */ import_react29.default.createElement(Bar, {
1553
+ }, /* @__PURE__ */ import_react30.default.createElement(Bar, {
1476
1554
  classNames: "justify-end",
1477
1555
  ...up
1478
- }), /* @__PURE__ */ import_react29.default.createElement("div", {
1556
+ }), /* @__PURE__ */ import_react30.default.createElement("div", {
1479
1557
  className: "relative"
1480
- }, /* @__PURE__ */ import_react29.default.createElement("div", {
1558
+ }, /* @__PURE__ */ import_react30.default.createElement("div", {
1481
1559
  className: (0, import_react_ui_theme6.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
1482
- }, up.total)), /* @__PURE__ */ import_react29.default.createElement(Bar, down));
1560
+ }, up.total)), /* @__PURE__ */ import_react30.default.createElement(Bar, down));
1483
1561
  };
1484
1562
  var Bar = ({ classNames, count, total }) => {
1485
1563
  let p = count / total * 100;
1486
1564
  if (count < total) {
1487
1565
  p = Math.min(p, 95);
1488
1566
  }
1489
- return /* @__PURE__ */ import_react29.default.createElement("div", {
1567
+ return /* @__PURE__ */ import_react30.default.createElement("div", {
1490
1568
  className: (0, import_react_ui_theme6.mx)("relative flex w-full", styles.barBg, classNames)
1491
- }, /* @__PURE__ */ import_react29.default.createElement("div", {
1569
+ }, /* @__PURE__ */ import_react30.default.createElement("div", {
1492
1570
  className: (0, import_react_ui_theme6.mx)("shrink-0", styles.barFg),
1493
1571
  style: {
1494
1572
  width: `${p}%`
1495
1573
  }
1496
- }), count !== total && /* @__PURE__ */ import_react29.default.createElement("div", {
1574
+ }), count !== total && /* @__PURE__ */ import_react30.default.createElement("div", {
1497
1575
  className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
1498
1576
  }, count));
1499
1577
  };
1500
- var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
1578
+ var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/save-tracker.ts";
1501
1579
  var createClientSaveTracker = (client, cb) => {
1502
1580
  const unsubscribeCallbacks = {};
1503
1581
  const state = {};
@@ -1525,7 +1603,7 @@ var createClientSaveTracker = (client, cb) => {
1525
1603
  };
1526
1604
  var createSpaceSaveTracker = (space, cb) => {
1527
1605
  const ctx = new import_context2.Context(void 0, {
1528
- F: __dxlog_file5,
1606
+ F: __dxlog_file7,
1529
1607
  L: 40
1530
1608
  });
1531
1609
  void space.waitUntilReady().then(() => {
@@ -1586,19 +1664,19 @@ var getIcon = (status) => {
1586
1664
  var SyncStatus = () => {
1587
1665
  const client = (0, import_react_client10.useClient)();
1588
1666
  const state = useSyncState();
1589
- const [saved, setSaved] = (0, import_react28.useState)(true);
1590
- (0, import_react28.useEffect)(() => {
1667
+ const [saved, setSaved] = (0, import_react29.useState)(true);
1668
+ (0, import_react29.useEffect)(() => {
1591
1669
  return createClientSaveTracker(client, (state2) => {
1592
1670
  setSaved(state2 === "saved");
1593
1671
  });
1594
1672
  }, []);
1595
- return /* @__PURE__ */ import_react28.default.createElement(SyncStatusIndicator, {
1673
+ return /* @__PURE__ */ import_react29.default.createElement(SyncStatusIndicator, {
1596
1674
  state,
1597
1675
  saved
1598
1676
  });
1599
1677
  };
1600
1678
  var SyncStatusIndicator = ({ state, saved }) => {
1601
- const { t } = (0, import_react_ui21.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1679
+ const { t } = (0, import_react_ui22.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1602
1680
  const summary = getSyncSummary(state);
1603
1681
  const offline = Object.values(state).length === 0;
1604
1682
  const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
@@ -1609,8 +1687,8 @@ var SyncStatusIndicator = ({ state, saved }) => {
1609
1687
  needsToUpload,
1610
1688
  needsToDownload
1611
1689
  });
1612
- const [classNames, setClassNames] = (0, import_react28.useState)();
1613
- (0, import_react28.useEffect)(() => {
1690
+ const [classNames, setClassNames] = (0, import_react29.useState)();
1691
+ (0, import_react29.useEffect)(() => {
1614
1692
  setClassNames(void 0);
1615
1693
  if (offline || !needsToUpload && !needsToDownload) {
1616
1694
  return;
@@ -1625,58 +1703,58 @@ var SyncStatusIndicator = ({ state, saved }) => {
1625
1703
  needsToDownload
1626
1704
  ]);
1627
1705
  const title = t(`${status} label`);
1628
- const icon = /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Icon, {
1706
+ const icon = /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Icon, {
1629
1707
  icon: getIcon(status),
1630
1708
  size: 4,
1631
1709
  classNames
1632
1710
  });
1633
1711
  if (offline) {
1634
- return /* @__PURE__ */ import_react28.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1712
+ return /* @__PURE__ */ import_react29.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1635
1713
  title
1636
1714
  }, icon);
1637
1715
  } else {
1638
- return /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Popover.Root, null, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Popover.Trigger, {
1716
+ return /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Popover.Root, null, /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Popover.Trigger, {
1639
1717
  asChild: true
1640
- }, /* @__PURE__ */ import_react28.default.createElement(import_plugin_status_bar.StatusBar.Button, {
1718
+ }, /* @__PURE__ */ import_react29.default.createElement(import_plugin_status_bar.StatusBar.Button, {
1641
1719
  title
1642
- }, icon)), /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Popover.Portal, null, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Popover.Content, null, /* @__PURE__ */ import_react28.default.createElement(SyncStatusDetail, {
1720
+ }, 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, {
1643
1721
  state,
1644
1722
  summary,
1645
1723
  debug: false
1646
- }), /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Popover.Arrow, null))));
1724
+ }), /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Popover.Arrow, null))));
1647
1725
  }
1648
1726
  };
1649
1727
  var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1650
- const [showAll, setShowAll] = (0, import_react28.useState)(false);
1651
- const { t } = (0, import_react_ui21.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1728
+ const [showAll, setShowAll] = (0, import_react29.useState)(false);
1729
+ const { t } = (0, import_react_ui22.useTranslation)(import_chunk_WZR6OAN3.SPACE_PLUGIN);
1652
1730
  const entries = Object.entries(state).filter(([_, value]) => showAll || value.missingOnLocal + value.missingOnRemote > 0).toSorted(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
1653
- const handleCheckedChange = (0, import_react28.useCallback)((state2) => setShowAll(state2), [
1731
+ const handleCheckedChange = (0, import_react29.useCallback)((state2) => setShowAll(state2), [
1654
1732
  setShowAll
1655
1733
  ]);
1656
- return /* @__PURE__ */ import_react28.default.createElement("div", {
1734
+ return /* @__PURE__ */ import_react29.default.createElement("div", {
1657
1735
  className: (0, import_react_ui_theme5.mx)("flex flex-col gap-3 p-2 text-xs min-w-96", classNames)
1658
- }, /* @__PURE__ */ import_react28.default.createElement("div", {
1736
+ }, /* @__PURE__ */ import_react29.default.createElement("div", {
1659
1737
  role: "none",
1660
1738
  className: "flex items-center"
1661
- }, /* @__PURE__ */ import_react28.default.createElement("h1", {
1739
+ }, /* @__PURE__ */ import_react29.default.createElement("h1", {
1662
1740
  className: "flex-1"
1663
- }, t("sync status title")), /* @__PURE__ */ import_react28.default.createElement("div", {
1741
+ }, t("sync status title")), /* @__PURE__ */ import_react29.default.createElement("div", {
1664
1742
  className: "flex items-center gap-2"
1665
- }, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.Root, null, /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.Label, {
1743
+ }, /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Input.Root, null, /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Input.Label, {
1666
1744
  classNames: "text-xs"
1667
- }, t("show all label")), /* @__PURE__ */ import_react28.default.createElement(import_react_ui21.Input.Checkbox, {
1745
+ }, t("show all label")), /* @__PURE__ */ import_react29.default.createElement(import_react_ui22.Input.Checkbox, {
1668
1746
  checked: showAll,
1669
1747
  onCheckedChange: handleCheckedChange
1670
- })))), /* @__PURE__ */ import_react28.default.createElement("div", {
1748
+ })))), /* @__PURE__ */ import_react29.default.createElement("div", {
1671
1749
  className: "flex flex-col gap-2"
1672
- }, entries.length === 0 && /* @__PURE__ */ import_react28.default.createElement("div", {
1750
+ }, entries.length === 0 && /* @__PURE__ */ import_react29.default.createElement("div", {
1673
1751
  role: "none",
1674
1752
  className: "flex justify-center"
1675
- }, t("no sync status label")), entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react28.default.createElement(SpaceRowContainer, {
1753
+ }, t("no sync status label")), entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react29.default.createElement(SpaceRowContainer, {
1676
1754
  key: spaceId,
1677
1755
  spaceId,
1678
1756
  state: state2
1679
- }))), debug && /* @__PURE__ */ import_react28.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
1757
+ }))), debug && /* @__PURE__ */ import_react29.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
1680
1758
  language: "json"
1681
1759
  }, JSON.stringify(summary, null, 2)));
1682
1760
  };
@@ -1700,14 +1778,17 @@ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1700
1778
  JOIN_DIALOG,
1701
1779
  JoinDialog,
1702
1780
  MenuFooter,
1781
+ POPOVER_ADD_SPACE,
1703
1782
  POPOVER_RENAME_OBJECT,
1704
1783
  POPOVER_RENAME_SPACE,
1705
1784
  PersistenceStatus,
1785
+ PopoverAddSpace,
1706
1786
  PopoverRenameObject,
1707
1787
  PopoverRenameSpace,
1708
1788
  ReactRoot,
1709
1789
  ReactSurface,
1710
1790
  SPACE_SETTINGS_DIALOG,
1791
+ Schema,
1711
1792
  ShareSpaceButton,
1712
1793
  ShareSpaceButtonImpl,
1713
1794
  SmallPresence,
@@ -1723,4 +1804,4 @@ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1723
1804
  SyncStatusDetail,
1724
1805
  SyncStatusIndicator
1725
1806
  });
1726
- //# sourceMappingURL=chunk-4AZ2DD4G.cjs.map
1807
+ //# sourceMappingURL=chunk-N2FS7PRA.cjs.map