@dxos/plugin-space 0.7.5-main.9d2a38b → 0.7.5-main.e9bb01b

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 (171) hide show
  1. package/dist/lib/browser/{app-graph-builder-F6XSETHX.mjs → app-graph-builder-J4NX44Y4.mjs} +10 -8
  2. package/dist/lib/browser/{app-graph-builder-F6XSETHX.mjs.map → app-graph-builder-J4NX44Y4.mjs.map} +3 -3
  3. package/dist/lib/browser/{app-graph-serializer-FYJE23GN.mjs → app-graph-serializer-QF7VVRCV.mjs} +5 -5
  4. package/dist/lib/browser/{chunk-IZ7QKQ2E.mjs → chunk-6UIFMVVI.mjs} +14 -9
  5. package/dist/lib/browser/chunk-6UIFMVVI.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-SOXNANA6.mjs → chunk-PQXZCNAU.mjs} +3 -2
  7. package/dist/lib/browser/{chunk-SOXNANA6.mjs.map → chunk-PQXZCNAU.mjs.map} +3 -3
  8. package/dist/lib/browser/{chunk-UH5P4UL3.mjs → chunk-RLZQJD47.mjs} +3 -2
  9. package/dist/lib/browser/chunk-RLZQJD47.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-T36CIHPG.mjs → chunk-SDK7RZI3.mjs} +3 -3
  11. package/dist/lib/browser/{chunk-SSJ772GK.mjs → chunk-XPZ6IIXF.mjs} +4 -5
  12. package/dist/lib/browser/chunk-XPZ6IIXF.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-XXD33C4E.mjs → chunk-XZ2NH3CP.mjs} +291 -250
  14. package/dist/lib/browser/chunk-XZ2NH3CP.mjs.map +7 -0
  15. package/dist/lib/browser/{identity-created-4Q4PFIC5.mjs → identity-created-25TK5XNO.mjs} +3 -3
  16. package/dist/lib/browser/index.mjs +11 -11
  17. package/dist/lib/browser/index.mjs.map +3 -3
  18. package/dist/lib/browser/intent-resolver-IEDVV74T.mjs +523 -0
  19. package/dist/lib/browser/intent-resolver-IEDVV74T.mjs.map +7 -0
  20. package/dist/lib/browser/meta.json +1 -1
  21. package/dist/lib/browser/{react-root-BDOPFJGJ.mjs → react-root-6VRPRLQR.mjs} +6 -6
  22. package/dist/lib/browser/{react-surface-EGOL2JBL.mjs → react-surface-DMNDXLZ7.mjs} +26 -33
  23. package/dist/lib/browser/react-surface-DMNDXLZ7.mjs.map +7 -0
  24. package/dist/lib/browser/{settings-WF67QZSD.mjs → settings-K4JPYYEM.mjs} +3 -3
  25. package/dist/lib/browser/{spaces-ready-WVU7US3C.mjs → spaces-ready-2MUWWVVO.mjs} +31 -32
  26. package/dist/lib/browser/spaces-ready-2MUWWVVO.mjs.map +7 -0
  27. package/dist/lib/browser/{state-MS4KYJWI.mjs → state-6DCY5YJP.mjs} +3 -3
  28. package/dist/lib/browser/types/index.mjs +2 -2
  29. package/dist/lib/node/{app-graph-builder-GKLVZ4PM.cjs → app-graph-builder-ZOPG4MOS.cjs} +58 -56
  30. package/dist/lib/node/{app-graph-builder-GKLVZ4PM.cjs.map → app-graph-builder-ZOPG4MOS.cjs.map} +3 -3
  31. package/dist/lib/node/{app-graph-serializer-RMTU5YSC.cjs → app-graph-serializer-QE2G4MWB.cjs} +21 -21
  32. package/dist/lib/node/{chunk-5D4RWKTV.cjs → chunk-3QWZCN6L.cjs} +65 -60
  33. package/dist/lib/node/chunk-3QWZCN6L.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-YCBBGTFD.cjs → chunk-6MEOP3DH.cjs} +8 -9
  35. package/dist/lib/node/chunk-6MEOP3DH.cjs.map +7 -0
  36. package/dist/lib/node/{chunk-UENH2YBM.cjs → chunk-D6BFKOXY.cjs} +8 -8
  37. package/dist/lib/node/{chunk-AJRP7AD6.cjs → chunk-SZEIQGQU.cjs} +292 -251
  38. package/dist/lib/node/chunk-SZEIQGQU.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-56NGXG2A.cjs → chunk-UX3U4RU2.cjs} +9 -8
  40. package/dist/lib/node/chunk-UX3U4RU2.cjs.map +7 -0
  41. package/dist/lib/node/{chunk-AO4EW2RX.cjs → chunk-WZR6OAN3.cjs} +6 -5
  42. package/dist/lib/node/{chunk-AO4EW2RX.cjs.map → chunk-WZR6OAN3.cjs.map} +3 -3
  43. package/dist/lib/node/{identity-created-QQWX7WX3.cjs → identity-created-7G5U7R36.cjs} +7 -7
  44. package/dist/lib/node/index.cjs +90 -90
  45. package/dist/lib/node/index.cjs.map +3 -3
  46. package/dist/lib/node/intent-resolver-N2W2L6OL.cjs +522 -0
  47. package/dist/lib/node/intent-resolver-N2W2L6OL.cjs.map +7 -0
  48. package/dist/lib/node/meta.json +1 -1
  49. package/dist/lib/node/{react-root-ZTR2J2I3.cjs → react-root-YD35W3VU.cjs} +12 -12
  50. package/dist/lib/node/{react-surface-75KRPQYT.cjs → react-surface-QPLXK7DT.cjs} +72 -76
  51. package/dist/lib/node/react-surface-QPLXK7DT.cjs.map +7 -0
  52. package/dist/lib/node/{settings-KOVSPA3S.cjs → settings-TEELGWS4.cjs} +8 -8
  53. package/dist/lib/node/{spaces-ready-ILVGUHJH.cjs → spaces-ready-PZZQWS6T.cjs} +39 -40
  54. package/dist/lib/node/spaces-ready-PZZQWS6T.cjs.map +7 -0
  55. package/dist/lib/node/{state-4UIOUKLJ.cjs → state-WPZC4JXB.cjs} +8 -8
  56. package/dist/lib/node/types/index.cjs +16 -16
  57. package/dist/lib/node/types/index.cjs.map +1 -1
  58. package/dist/lib/node-esm/{app-graph-builder-NEHQ5Z63.mjs → app-graph-builder-TKGLOK22.mjs} +10 -8
  59. package/dist/lib/node-esm/{app-graph-builder-NEHQ5Z63.mjs.map → app-graph-builder-TKGLOK22.mjs.map} +3 -3
  60. package/dist/lib/node-esm/{app-graph-serializer-UWWS5OVC.mjs → app-graph-serializer-HLX2JRNF.mjs} +5 -5
  61. package/dist/lib/node-esm/{chunk-E5DWIQ3N.mjs → chunk-4UX5WGKJ.mjs} +3 -3
  62. package/dist/lib/node-esm/{chunk-HTBGWQEU.mjs → chunk-AAQRELDK.mjs} +4 -5
  63. package/dist/lib/node-esm/chunk-AAQRELDK.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-7FUVU45N.mjs → chunk-ICCM4YRJ.mjs} +3 -2
  65. package/dist/lib/node-esm/{chunk-7FUVU45N.mjs.map → chunk-ICCM4YRJ.mjs.map} +3 -3
  66. package/dist/lib/node-esm/{chunk-5QMAPAZD.mjs → chunk-LA45TPAN.mjs} +14 -9
  67. package/dist/lib/node-esm/chunk-LA45TPAN.mjs.map +7 -0
  68. package/dist/lib/node-esm/{chunk-375RB3CZ.mjs → chunk-LGL4A5B5.mjs} +3 -2
  69. package/dist/lib/node-esm/chunk-LGL4A5B5.mjs.map +7 -0
  70. package/dist/lib/node-esm/{chunk-GVOPDPS2.mjs → chunk-N6EAOMIS.mjs} +291 -250
  71. package/dist/lib/node-esm/chunk-N6EAOMIS.mjs.map +7 -0
  72. package/dist/lib/node-esm/{identity-created-HMNY2MPB.mjs → identity-created-7THGZ7EW.mjs} +3 -3
  73. package/dist/lib/node-esm/index.mjs +11 -11
  74. package/dist/lib/node-esm/index.mjs.map +3 -3
  75. package/dist/lib/node-esm/intent-resolver-L2TKJU4I.mjs +524 -0
  76. package/dist/lib/node-esm/intent-resolver-L2TKJU4I.mjs.map +7 -0
  77. package/dist/lib/node-esm/meta.json +1 -1
  78. package/dist/lib/node-esm/{react-root-OUPJA4RY.mjs → react-root-Q5MFDXZE.mjs} +6 -6
  79. package/dist/lib/node-esm/{react-surface-7EVWCKIP.mjs → react-surface-RQQZ5BOG.mjs} +26 -33
  80. package/dist/lib/node-esm/react-surface-RQQZ5BOG.mjs.map +7 -0
  81. package/dist/lib/node-esm/{settings-EDK6WI3V.mjs → settings-KXYUZBLN.mjs} +3 -3
  82. package/dist/lib/node-esm/{spaces-ready-CH3W7OGN.mjs → spaces-ready-MWNP3WBX.mjs} +31 -32
  83. package/dist/lib/node-esm/spaces-ready-MWNP3WBX.mjs.map +7 -0
  84. package/dist/lib/node-esm/{state-BMISGQ2O.mjs → state-5GH2D5U4.mjs} +3 -3
  85. package/dist/lib/node-esm/types/index.mjs +2 -2
  86. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  87. package/dist/types/src/capabilities/app-graph-builder.d.ts +22 -22
  88. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  89. package/dist/types/src/capabilities/capabilities.d.ts +6 -0
  90. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  91. package/dist/types/src/capabilities/index.d.ts +33 -33
  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/spaces-ready.d.ts.map +1 -1
  96. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +4 -3
  97. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  98. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  99. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  100. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  101. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +1 -1
  102. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +1 -1
  103. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  104. package/dist/types/src/meta.d.ts +1 -0
  105. package/dist/types/src/meta.d.ts.map +1 -1
  106. package/dist/types/src/types/types.d.ts +2 -2
  107. package/dist/types/src/types/types.d.ts.map +1 -1
  108. package/dist/types/src/util.d.ts.map +1 -1
  109. package/package.json +38 -37
  110. package/src/SpacePlugin.tsx +4 -5
  111. package/src/capabilities/app-graph-builder.ts +4 -2
  112. package/src/capabilities/capabilities.ts +4 -1
  113. package/src/capabilities/intent-resolver.ts +373 -304
  114. package/src/capabilities/react-surface.tsx +22 -30
  115. package/src/capabilities/spaces-ready.ts +20 -21
  116. package/src/components/AwaitingObject.tsx +5 -5
  117. package/src/components/CreateDialog/CreateObjectDialog.tsx +15 -15
  118. package/src/components/CreateDialog/CreateObjectPanel.tsx +114 -114
  119. package/src/components/CreateDialog/CreateSpaceDialog.tsx +10 -8
  120. package/src/components/JoinDialog.tsx +27 -19
  121. package/src/components/SpacePluginSettings.tsx +3 -3
  122. package/src/components/SpacePresence.tsx +2 -3
  123. package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +16 -1
  124. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +3 -4
  125. package/src/components/SyncStatus/InlineSyncStatus.tsx +2 -2
  126. package/src/components/SyncStatus/SyncStatus.tsx +2 -1
  127. package/src/meta.ts +1 -0
  128. package/src/types/types.ts +2 -3
  129. package/src/util.tsx +8 -4
  130. package/dist/lib/browser/chunk-IZ7QKQ2E.mjs.map +0 -7
  131. package/dist/lib/browser/chunk-SSJ772GK.mjs.map +0 -7
  132. package/dist/lib/browser/chunk-UH5P4UL3.mjs.map +0 -7
  133. package/dist/lib/browser/chunk-XXD33C4E.mjs.map +0 -7
  134. package/dist/lib/browser/intent-resolver-XRZYCXXX.mjs +0 -459
  135. package/dist/lib/browser/intent-resolver-XRZYCXXX.mjs.map +0 -7
  136. package/dist/lib/browser/react-surface-EGOL2JBL.mjs.map +0 -7
  137. package/dist/lib/browser/spaces-ready-WVU7US3C.mjs.map +0 -7
  138. package/dist/lib/node/chunk-56NGXG2A.cjs.map +0 -7
  139. package/dist/lib/node/chunk-5D4RWKTV.cjs.map +0 -7
  140. package/dist/lib/node/chunk-AJRP7AD6.cjs.map +0 -7
  141. package/dist/lib/node/chunk-YCBBGTFD.cjs.map +0 -7
  142. package/dist/lib/node/intent-resolver-3NI6AUAI.cjs +0 -458
  143. package/dist/lib/node/intent-resolver-3NI6AUAI.cjs.map +0 -7
  144. package/dist/lib/node/react-surface-75KRPQYT.cjs.map +0 -7
  145. package/dist/lib/node/spaces-ready-ILVGUHJH.cjs.map +0 -7
  146. package/dist/lib/node-esm/chunk-375RB3CZ.mjs.map +0 -7
  147. package/dist/lib/node-esm/chunk-5QMAPAZD.mjs.map +0 -7
  148. package/dist/lib/node-esm/chunk-GVOPDPS2.mjs.map +0 -7
  149. package/dist/lib/node-esm/chunk-HTBGWQEU.mjs.map +0 -7
  150. package/dist/lib/node-esm/intent-resolver-P5EVBOGP.mjs +0 -460
  151. package/dist/lib/node-esm/intent-resolver-P5EVBOGP.mjs.map +0 -7
  152. package/dist/lib/node-esm/react-surface-7EVWCKIP.mjs.map +0 -7
  153. package/dist/lib/node-esm/spaces-ready-CH3W7OGN.mjs.map +0 -7
  154. /package/dist/lib/browser/{app-graph-serializer-FYJE23GN.mjs.map → app-graph-serializer-QF7VVRCV.mjs.map} +0 -0
  155. /package/dist/lib/browser/{chunk-T36CIHPG.mjs.map → chunk-SDK7RZI3.mjs.map} +0 -0
  156. /package/dist/lib/browser/{identity-created-4Q4PFIC5.mjs.map → identity-created-25TK5XNO.mjs.map} +0 -0
  157. /package/dist/lib/browser/{react-root-BDOPFJGJ.mjs.map → react-root-6VRPRLQR.mjs.map} +0 -0
  158. /package/dist/lib/browser/{settings-WF67QZSD.mjs.map → settings-K4JPYYEM.mjs.map} +0 -0
  159. /package/dist/lib/browser/{state-MS4KYJWI.mjs.map → state-6DCY5YJP.mjs.map} +0 -0
  160. /package/dist/lib/node/{app-graph-serializer-RMTU5YSC.cjs.map → app-graph-serializer-QE2G4MWB.cjs.map} +0 -0
  161. /package/dist/lib/node/{chunk-UENH2YBM.cjs.map → chunk-D6BFKOXY.cjs.map} +0 -0
  162. /package/dist/lib/node/{identity-created-QQWX7WX3.cjs.map → identity-created-7G5U7R36.cjs.map} +0 -0
  163. /package/dist/lib/node/{react-root-ZTR2J2I3.cjs.map → react-root-YD35W3VU.cjs.map} +0 -0
  164. /package/dist/lib/node/{settings-KOVSPA3S.cjs.map → settings-TEELGWS4.cjs.map} +0 -0
  165. /package/dist/lib/node/{state-4UIOUKLJ.cjs.map → state-WPZC4JXB.cjs.map} +0 -0
  166. /package/dist/lib/node-esm/{app-graph-serializer-UWWS5OVC.mjs.map → app-graph-serializer-HLX2JRNF.mjs.map} +0 -0
  167. /package/dist/lib/node-esm/{chunk-E5DWIQ3N.mjs.map → chunk-4UX5WGKJ.mjs.map} +0 -0
  168. /package/dist/lib/node-esm/{identity-created-HMNY2MPB.mjs.map → identity-created-7THGZ7EW.mjs.map} +0 -0
  169. /package/dist/lib/node-esm/{react-root-OUPJA4RY.mjs.map → react-root-Q5MFDXZE.mjs.map} +0 -0
  170. /package/dist/lib/node-esm/{settings-EDK6WI3V.mjs.map → settings-KXYUZBLN.mjs.map} +0 -0
  171. /package/dist/lib/node-esm/{state-BMISGQ2O.mjs.map → state-5GH2D5U4.mjs.map} +0 -0
@@ -26,23 +26,24 @@ 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 react_surface_75KRPQYT_exports = {};
30
- __export(react_surface_75KRPQYT_exports, {
29
+ var react_surface_QPLXK7DT_exports = {};
30
+ __export(react_surface_QPLXK7DT_exports, {
31
31
  default: () => react_surface_default
32
32
  });
33
- module.exports = __toCommonJS(react_surface_75KRPQYT_exports);
34
- var import_chunk_AJRP7AD6 = require("./chunk-AJRP7AD6.cjs");
35
- var import_chunk_56NGXG2A = require("./chunk-56NGXG2A.cjs");
36
- var import_chunk_5D4RWKTV = require("./chunk-5D4RWKTV.cjs");
37
- var import_chunk_YCBBGTFD = require("./chunk-YCBBGTFD.cjs");
38
- var import_chunk_AO4EW2RX = require("./chunk-AO4EW2RX.cjs");
33
+ module.exports = __toCommonJS(react_surface_QPLXK7DT_exports);
34
+ var import_chunk_SZEIQGQU = require("./chunk-SZEIQGQU.cjs");
35
+ var import_chunk_UX3U4RU2 = require("./chunk-UX3U4RU2.cjs");
36
+ var import_chunk_3QWZCN6L = require("./chunk-3QWZCN6L.cjs");
37
+ var import_chunk_6MEOP3DH = require("./chunk-6MEOP3DH.cjs");
38
+ var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
39
39
  var import_react = __toESM(require("react"));
40
40
  var import_app_framework = require("@dxos/app-framework");
41
+ var import_local_storage = require("@dxos/local-storage");
41
42
  var import_plugin_client = require("@dxos/plugin-client");
42
43
  var import_echo = require("@dxos/react-client/echo");
43
44
  var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.ReactSurface, [
44
45
  (0, import_app_framework.createSurface)({
45
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/article`,
46
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/article`,
46
47
  role: "article",
47
48
  filter: (data) => (
48
49
  // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.
@@ -51,73 +52,73 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
51
52
  component: ({ data, role, ...rest }) => /* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
52
53
  data: {
53
54
  id: data.subject.id,
54
- subject: data.subject.properties[import_chunk_YCBBGTFD.CollectionType.typename]?.target
55
+ subject: data.subject.properties[import_chunk_6MEOP3DH.CollectionType.typename]?.target
55
56
  },
56
57
  role,
57
58
  ...rest
58
59
  })
59
60
  }),
60
61
  (0, import_app_framework.createSurface)({
61
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/collection-fallback`,
62
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/collection-fallback`,
62
63
  role: "article",
63
- disposition: "fallback",
64
- filter: (data) => data.subject instanceof import_chunk_YCBBGTFD.CollectionType,
65
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.CollectionMain, {
64
+ position: "fallback",
65
+ filter: (data) => data.subject instanceof import_chunk_6MEOP3DH.CollectionType,
66
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.CollectionMain, {
66
67
  collection: data.subject
67
68
  })
68
69
  }),
69
70
  (0, import_app_framework.createSurface)({
70
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/settings-panel`,
71
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/settings-panel`,
71
72
  // TODO(burdon): Add role name syntax to minimal plugin docs.
72
73
  role: "complementary--settings",
73
74
  filter: (data) => (0, import_echo.isSpace)(data.subject),
74
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SpaceSettingsPanel, {
75
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.SpaceSettingsPanel, {
75
76
  space: data.subject
76
77
  })
77
78
  }),
78
79
  (0, import_app_framework.createSurface)({
79
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/object-settings-base-panel`,
80
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/object-settings-base-panel`,
80
81
  role: "complementary--settings",
81
- disposition: "hoist",
82
+ position: "hoist",
82
83
  filter: (data) => (0, import_echo.isEchoObject)(data.subject),
83
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.BaseObjectSettings, {
84
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.BaseObjectSettings, {
84
85
  object: data.subject
85
86
  })
86
87
  }),
87
88
  (0, import_app_framework.createSurface)({
88
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/object-settings-advanced-panel`,
89
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/object-settings-advanced-panel`,
89
90
  role: "complementary--settings",
90
- disposition: "fallback",
91
+ position: "fallback",
91
92
  filter: (data) => (0, import_echo.isEchoObject)(data.subject),
92
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.AdvancedObjectSettings, {
93
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.AdvancedObjectSettings, {
93
94
  object: data.subject
94
95
  })
95
96
  }),
96
97
  (0, import_app_framework.createSurface)({
97
- id: import_chunk_AJRP7AD6.SPACE_SETTINGS_DIALOG,
98
+ id: import_chunk_SZEIQGQU.SPACE_SETTINGS_DIALOG,
98
99
  role: "dialog",
99
- filter: (data) => data.component === import_chunk_AJRP7AD6.SPACE_SETTINGS_DIALOG,
100
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SpaceSettingsDialog, {
101
- ...data.subject,
100
+ filter: (data) => data.component === import_chunk_SZEIQGQU.SPACE_SETTINGS_DIALOG,
101
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.SpaceSettingsDialog, {
102
+ ...data.props,
102
103
  createInvitationUrl
103
104
  })
104
105
  }),
105
106
  (0, import_app_framework.createSurface)({
106
- id: import_chunk_AJRP7AD6.JOIN_DIALOG,
107
+ id: import_chunk_SZEIQGQU.JOIN_DIALOG,
107
108
  role: "dialog",
108
- filter: (data) => data.component === import_chunk_AJRP7AD6.JOIN_DIALOG,
109
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.JoinDialog, data.subject)
109
+ filter: (data) => data.component === import_chunk_SZEIQGQU.JOIN_DIALOG,
110
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.JoinDialog, data.props)
110
111
  }),
111
112
  (0, import_app_framework.createSurface)({
112
- id: import_chunk_AJRP7AD6.CREATE_SPACE_DIALOG,
113
+ id: import_chunk_SZEIQGQU.CREATE_SPACE_DIALOG,
113
114
  role: "dialog",
114
- filter: (data) => data.component === import_chunk_AJRP7AD6.CREATE_SPACE_DIALOG,
115
- component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.CreateSpaceDialog, null)
115
+ filter: (data) => data.component === import_chunk_SZEIQGQU.CREATE_SPACE_DIALOG,
116
+ component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.CreateSpaceDialog, null)
116
117
  }),
117
118
  (0, import_app_framework.createSurface)({
118
- id: import_chunk_AJRP7AD6.CREATE_OBJECT_DIALOG,
119
+ id: import_chunk_SZEIQGQU.CREATE_OBJECT_DIALOG,
119
120
  role: "dialog",
120
- filter: (data) => data.component === import_chunk_AJRP7AD6.CREATE_OBJECT_DIALOG,
121
+ filter: (data) => data.component === import_chunk_SZEIQGQU.CREATE_OBJECT_DIALOG,
121
122
  component: ({ data }) => {
122
123
  const schemas = (0, import_app_framework.useCapabilities)(import_plugin_client.ClientCapabilities.Schema).flat();
123
124
  const manager = (0, import_app_framework.usePluginManager)();
@@ -126,36 +127,36 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
126
127
  }, [
127
128
  manager
128
129
  ]);
129
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.CreateObjectDialog, {
130
+ return /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.CreateObjectDialog, {
130
131
  schemas,
131
132
  resolve,
132
- ...data.subject
133
+ ...data.props
133
134
  });
134
135
  }
135
136
  }),
136
137
  (0, import_app_framework.createSurface)({
137
- id: import_chunk_AJRP7AD6.POPOVER_RENAME_SPACE,
138
+ id: import_chunk_SZEIQGQU.POPOVER_RENAME_SPACE,
138
139
  role: "popover",
139
- filter: (data) => data.component === import_chunk_AJRP7AD6.POPOVER_RENAME_SPACE && (0, import_echo.isSpace)(data.subject),
140
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.PopoverRenameSpace, {
141
- space: data.subject
140
+ filter: (data) => data.component === import_chunk_SZEIQGQU.POPOVER_RENAME_SPACE && (0, import_echo.isSpace)(data.props),
141
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.PopoverRenameSpace, {
142
+ space: data.props
142
143
  })
143
144
  }),
144
145
  (0, import_app_framework.createSurface)({
145
- id: import_chunk_AJRP7AD6.POPOVER_RENAME_OBJECT,
146
+ id: import_chunk_SZEIQGQU.POPOVER_RENAME_OBJECT,
146
147
  role: "popover",
147
- filter: (data) => data.component === import_chunk_AJRP7AD6.POPOVER_RENAME_OBJECT && (0, import_echo.isReactiveObject)(data.subject),
148
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.PopoverRenameObject, {
149
- object: data.subject
148
+ filter: (data) => data.component === import_chunk_SZEIQGQU.POPOVER_RENAME_OBJECT && (0, import_echo.isReactiveObject)(data.props),
149
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.PopoverRenameObject, {
150
+ object: data.props
150
151
  })
151
152
  }),
152
153
  (0, import_app_framework.createSurface)({
153
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/navtree-presence`,
154
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-presence`,
154
155
  role: "navtree-item-end",
155
156
  filter: (data) => typeof data.id === "string" && (0, import_echo.isEchoObject)(data.subject),
156
157
  component: ({ data }) => {
157
- const state = (0, import_app_framework.useCapability)(import_chunk_56NGXG2A.SpaceCapabilities.MutableState);
158
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SmallPresenceLive, {
158
+ const state = (0, import_app_framework.useCapability)(import_chunk_UX3U4RU2.SpaceCapabilities.MutableState);
159
+ return /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.SmallPresenceLive, {
159
160
  id: data.id,
160
161
  open: data.open,
161
162
  viewers: state.viewersByObject[data.id]
@@ -164,70 +165,65 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
164
165
  }),
165
166
  (0, import_app_framework.createSurface)({
166
167
  // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
167
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/navtree-presence-fallback`,
168
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-presence-fallback`,
168
169
  role: "navtree-item-end",
169
- disposition: "fallback",
170
+ position: "fallback",
170
171
  filter: (data) => typeof data.id === "string",
171
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SmallPresenceLive, {
172
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.SmallPresenceLive, {
172
173
  id: data.id,
173
174
  open: data.open
174
175
  })
175
176
  }),
176
177
  (0, import_app_framework.createSurface)({
177
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/navtree-sync-status`,
178
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-sync-status`,
178
179
  role: "navtree-item-end",
179
180
  filter: (data) => (0, import_echo.isSpace)(data.subject),
180
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.InlineSyncStatus, {
181
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.InlineSyncStatus, {
181
182
  space: data.subject,
182
183
  open: data.open
183
184
  })
184
185
  }),
185
186
  (0, import_app_framework.createSurface)({
186
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/navbar-presence`,
187
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navbar-presence`,
187
188
  role: "navbar-end",
188
- disposition: "hoist",
189
+ position: "hoist",
189
190
  filter: (data) => (0, import_echo.isSpace)(data.subject) || (0, import_echo.isEchoObject)(data.subject),
190
191
  component: ({ data }) => {
191
192
  const space = (0, import_echo.isSpace)(data.subject) ? data.subject : (0, import_echo.getSpace)(data.subject);
192
- const object = (0, import_echo.isSpace)(data.subject) ? data.subject.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_YCBBGTFD.CollectionType.typename]?.target : void 0 : data.subject;
193
- return space && object ? /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SpacePresence, {
193
+ const object = (0, import_echo.isSpace)(data.subject) ? data.subject.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_6MEOP3DH.CollectionType.typename]?.target : void 0 : data.subject;
194
+ return object ? /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.SpacePresence, {
194
195
  object
195
- }), space.properties[import_chunk_5D4RWKTV.COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.ShareSpaceButton, {
196
- space
197
- })) : null;
196
+ }) : null;
198
197
  }
199
198
  }),
200
199
  (0, import_app_framework.createSurface)({
201
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/collection-section`,
200
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/collection-section`,
202
201
  role: "section",
203
- filter: (data) => data.subject instanceof import_chunk_YCBBGTFD.CollectionType,
204
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.CollectionSection, {
202
+ filter: (data) => data.subject instanceof import_chunk_6MEOP3DH.CollectionType,
203
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.CollectionSection, {
205
204
  collection: data.subject
206
205
  })
207
206
  }),
208
207
  (0, import_app_framework.createSurface)({
209
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/settings`,
210
- role: "settings",
211
- filter: (data) => data.subject === import_chunk_AO4EW2RX.SPACE_PLUGIN,
212
- component: () => {
213
- const settings = (0, import_app_framework.useCapability)(import_app_framework.Capabilities.SettingsStore).getStore(import_chunk_AO4EW2RX.SPACE_PLUGIN).value;
214
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SpacePluginSettings, {
215
- settings
216
- });
217
- }
208
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/settings`,
209
+ role: "article",
210
+ filter: (data) => data.subject instanceof import_local_storage.SettingsStore && data.subject.prefix === import_chunk_WZR6OAN3.SPACE_PLUGIN,
211
+ component: ({ data: { subject } }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.SpacePluginSettings, {
212
+ settings: subject.value
213
+ })
218
214
  }),
219
215
  (0, import_app_framework.createSurface)({
220
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/menu-footer`,
216
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/menu-footer`,
221
217
  role: "menu-footer",
222
218
  filter: (data) => (0, import_echo.isEchoObject)(data.subject),
223
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.MenuFooter, {
219
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.MenuFooter, {
224
220
  object: data.subject
225
221
  })
226
222
  }),
227
223
  (0, import_app_framework.createSurface)({
228
- id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/status`,
224
+ id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/status`,
229
225
  role: "status",
230
- component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SyncStatus, null)
226
+ component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_SZEIQGQU.SyncStatus, null)
231
227
  })
232
228
  ]);
233
- //# sourceMappingURL=react-surface-75KRPQYT.cjs.map
229
+ //# sourceMappingURL=react-surface-QPLXK7DT.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/react-surface.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport {\n Capabilities,\n contributes,\n createSurface,\n Surface,\n useCapability,\n useCapabilities,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport {\n getSpace,\n isEchoObject,\n isReactiveObject,\n isSpace,\n SpaceState,\n type ReactiveEchoObject,\n type Space,\n} from '@dxos/react-client/echo';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { SpaceCapabilities } from './capabilities';\nimport {\n AdvancedObjectSettings,\n BaseObjectSettings,\n CollectionMain,\n CollectionSection,\n CREATE_OBJECT_DIALOG,\n CREATE_SPACE_DIALOG,\n CreateObjectDialog,\n CreateSpaceDialog,\n InlineSyncStatus,\n JOIN_DIALOG,\n JoinDialog,\n MenuFooter,\n POPOVER_RENAME_OBJECT,\n POPOVER_RENAME_SPACE,\n PopoverRenameObject,\n PopoverRenameSpace,\n SmallPresenceLive,\n SPACE_SETTINGS_DIALOG,\n SpacePluginSettings,\n SpacePresence,\n SpaceSettingsDialog,\n SpaceSettingsPanel,\n SyncStatus,\n type CreateObjectDialogProps,\n type SpaceSettingsDialogProps,\n} from '../components';\nimport { SPACE_PLUGIN } from '../meta';\nimport { CollectionType, type SpaceSettingsProps } from '../types';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${SPACE_PLUGIN}/article`,\n role: 'article',\n filter: (data): data is { subject: Space } =>\n // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.\n isSpace(data.subject) && data.subject.state.get() === SpaceState.SPACE_READY,\n component: ({ data, role, ...rest }) => (\n <Surface\n data={{ id: data.subject.id, subject: data.subject.properties[CollectionType.typename]?.target }}\n role={role}\n {...rest}\n />\n ),\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-fallback`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is { subject: CollectionType } => data.subject instanceof CollectionType,\n component: ({ data }) => <CollectionMain collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings-panel`,\n // TODO(burdon): Add role name syntax to minimal plugin docs.\n role: 'complementary--settings',\n filter: (data): data is { subject: Space } => isSpace(data.subject),\n component: ({ data }) => <SpaceSettingsPanel space={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/object-settings-base-panel`,\n role: 'complementary--settings',\n position: 'hoist',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <BaseObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/object-settings-advanced-panel`,\n role: 'complementary--settings',\n position: 'fallback',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <AdvancedObjectSettings object={data.subject} />,\n }),\n createSurface({\n id: SPACE_SETTINGS_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: SpaceSettingsDialogProps } => data.component === SPACE_SETTINGS_DIALOG,\n component: ({ data }) => <SpaceSettingsDialog {...data.props} createInvitationUrl={createInvitationUrl} />,\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.props} />,\n }),\n createSurface({\n id: CREATE_SPACE_DIALOG,\n role: 'dialog',\n filter: (data): data is any => data.component === CREATE_SPACE_DIALOG,\n component: () => <CreateSpaceDialog />,\n }),\n createSurface({\n id: CREATE_OBJECT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: Partial<CreateObjectDialogProps> } => data.component === CREATE_OBJECT_DIALOG,\n component: ({ data }) => {\n const schemas = useCapabilities(ClientCapabilities.Schema).flat();\n const manager = usePluginManager();\n\n const resolve = useCallback(\n (typename: string) => {\n return (\n manager.context.requestCapabilities(Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ??\n {}\n );\n },\n [manager],\n );\n\n return <CreateObjectDialog schemas={schemas} resolve={resolve} {...data.props} />;\n },\n }),\n createSurface({\n id: POPOVER_RENAME_SPACE,\n role: 'popover',\n filter: (data): data is { props: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.props),\n component: ({ data }) => <PopoverRenameSpace space={data.props} />,\n }),\n createSurface({\n id: POPOVER_RENAME_OBJECT,\n role: 'popover',\n filter: (data): data is { props: ReactiveEchoObject<any> } =>\n data.component === POPOVER_RENAME_OBJECT && isReactiveObject(data.props),\n component: ({ data }) => <PopoverRenameObject object={data.props} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-presence`,\n role: 'navtree-item-end',\n filter: (data): data is { id: string; subject: ReactiveEchoObject<any>; open?: boolean } =>\n typeof data.id === 'string' && isEchoObject(data.subject),\n component: ({ data }) => {\n // TODO(wittjosiah): Doesn't need to be mutable but readonly type messes with ComplexMap.\n const state = useCapability(SpaceCapabilities.MutableState);\n return <SmallPresenceLive id={data.id} open={data.open} viewers={state.viewersByObject[data.id]} />;\n },\n }),\n createSurface({\n // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.\n id: `${SPACE_PLUGIN}/navtree-presence-fallback`,\n role: 'navtree-item-end',\n position: 'fallback',\n filter: (data): data is { id: string; open?: boolean } => typeof data.id === 'string',\n component: ({ data }) => <SmallPresenceLive id={data.id} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navtree-sync-status`,\n role: 'navtree-item-end',\n filter: (data): data is { subject: Space; open?: boolean } => isSpace(data.subject),\n component: ({ data }) => <InlineSyncStatus space={data.subject} open={data.open} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/navbar-presence`,\n role: 'navbar-end',\n position: 'hoist',\n filter: (data): data is { subject: Space | ReactiveEchoObject<any> } =>\n isSpace(data.subject) || isEchoObject(data.subject),\n component: ({ data }) => {\n const space = isSpace(data.subject) ? data.subject : getSpace(data.subject);\n const object = isSpace(data.subject)\n ? data.subject.state.get() === SpaceState.SPACE_READY\n ? (space?.properties[CollectionType.typename]?.target as CollectionType)\n : undefined\n : data.subject;\n\n return object ? <SpacePresence object={object} /> : null;\n },\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/collection-section`,\n role: 'section',\n filter: (data): data is { subject: CollectionType } => data.subject instanceof CollectionType,\n component: ({ data }) => <CollectionSection collection={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<SpaceSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === SPACE_PLUGIN,\n component: ({ data: { subject } }) => <SpacePluginSettings settings={subject.value} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/menu-footer`,\n role: 'menu-footer',\n filter: (data): data is { subject: ReactiveEchoObject<any> } => isEchoObject(data.subject),\n component: ({ data }) => <MenuFooter object={data.subject} />,\n }),\n createSurface({\n id: `${SPACE_PLUGIN}/status`,\n role: 'status',\n component: () => <SyncStatus />,\n }),\n ]);\n"],
5
+ "mappings": "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",
6
+ "names": ["createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "SPACE_PLUGIN", "role", "filter", "data", "isSpace", "subject", "state", "get", "SpaceState", "SPACE_READY", "component", "rest", "React", "Surface", "properties", "CollectionType", "typename", "target", "position", "CollectionMain", "collection", "SpaceSettingsPanel", "space", "isEchoObject", "BaseObjectSettings", "object", "AdvancedObjectSettings", "SPACE_SETTINGS_DIALOG", "SpaceSettingsDialog", "props", "JOIN_DIALOG", "JoinDialog", "CREATE_SPACE_DIALOG", "CreateSpaceDialog", "CREATE_OBJECT_DIALOG", "schemas", "useCapabilities", "ClientCapabilities", "Schema", "flat", "manager", "usePluginManager", "resolve", "useCallback", "context", "requestCapabilities", "Metadata", "find", "metadata", "CreateObjectDialog", "POPOVER_RENAME_SPACE", "PopoverRenameSpace", "POPOVER_RENAME_OBJECT", "isReactiveObject", "PopoverRenameObject", "useCapability", "SpaceCapabilities", "MutableState", "SmallPresenceLive", "open", "viewers", "viewersByObject", "InlineSyncStatus", "getSpace", "undefined", "SpacePresence", "CollectionSection", "SettingsStore", "prefix", "SpacePluginSettings", "settings", "value", "MenuFooter", "SyncStatus"]
7
+ }
@@ -16,13 +16,13 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var settings_KOVSPA3S_exports = {};
20
- __export(settings_KOVSPA3S_exports, {
19
+ var settings_TEELGWS4_exports = {};
20
+ __export(settings_TEELGWS4_exports, {
21
21
  default: () => settings_default
22
22
  });
23
- module.exports = __toCommonJS(settings_KOVSPA3S_exports);
24
- var import_chunk_YCBBGTFD = require("./chunk-YCBBGTFD.cjs");
25
- var import_chunk_AO4EW2RX = require("./chunk-AO4EW2RX.cjs");
23
+ module.exports = __toCommonJS(settings_TEELGWS4_exports);
24
+ var import_chunk_6MEOP3DH = require("./chunk-6MEOP3DH.cjs");
25
+ var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
26
26
  var import_app_framework = require("@dxos/app-framework");
27
27
  var import_live_object = require("@dxos/live-object");
28
28
  var settings_default = () => {
@@ -30,9 +30,9 @@ var settings_default = () => {
30
30
  showHidden: false
31
31
  });
32
32
  return (0, import_app_framework.contributes)(import_app_framework.Capabilities.Settings, {
33
- schema: import_chunk_YCBBGTFD.SpaceSettingsSchema,
34
- prefix: import_chunk_AO4EW2RX.SPACE_PLUGIN,
33
+ schema: import_chunk_6MEOP3DH.SpaceSettingsSchema,
34
+ prefix: import_chunk_WZR6OAN3.SPACE_PLUGIN,
35
35
  value: settings
36
36
  });
37
37
  };
38
- //# sourceMappingURL=settings-KOVSPA3S.cjs.map
38
+ //# sourceMappingURL=settings-TEELGWS4.cjs.map
@@ -16,15 +16,15 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var spaces_ready_ILVGUHJH_exports = {};
20
- __export(spaces_ready_ILVGUHJH_exports, {
19
+ var spaces_ready_PZZQWS6T_exports = {};
20
+ __export(spaces_ready_PZZQWS6T_exports, {
21
21
  default: () => spaces_ready_default
22
22
  });
23
- module.exports = __toCommonJS(spaces_ready_ILVGUHJH_exports);
24
- var import_chunk_56NGXG2A = require("./chunk-56NGXG2A.cjs");
25
- var import_chunk_5D4RWKTV = require("./chunk-5D4RWKTV.cjs");
26
- var import_chunk_YCBBGTFD = require("./chunk-YCBBGTFD.cjs");
27
- var import_chunk_AO4EW2RX = require("./chunk-AO4EW2RX.cjs");
23
+ module.exports = __toCommonJS(spaces_ready_PZZQWS6T_exports);
24
+ var import_chunk_UX3U4RU2 = require("./chunk-UX3U4RU2.cjs");
25
+ var import_chunk_3QWZCN6L = require("./chunk-3QWZCN6L.cjs");
26
+ var import_chunk_6MEOP3DH = require("./chunk-6MEOP3DH.cjs");
27
+ var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
28
28
  var import_app_framework = require("@dxos/app-framework");
29
29
  var import_async = require("@dxos/async");
30
30
  var import_echo_schema = require("@dxos/echo-schema");
@@ -33,6 +33,7 @@ var import_live_object = require("@dxos/live-object");
33
33
  var import_log = require("@dxos/log");
34
34
  var import_plugin_attention = require("@dxos/plugin-attention");
35
35
  var import_plugin_client = require("@dxos/plugin-client");
36
+ var import_plugin_deck = require("@dxos/plugin-deck");
36
37
  var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
37
38
  var import_react_client = require("@dxos/react-client");
38
39
  var import_echo = require("@dxos/react-client/echo");
@@ -46,38 +47,43 @@ var spaces_ready_default = async (context) => {
46
47
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
47
48
  const { graph } = context.requestCapability(import_app_framework.Capabilities.AppGraph);
48
49
  const layout = context.requestCapability(import_app_framework.Capabilities.Layout);
49
- const location = context.requestCapability(import_app_framework.Capabilities.Location);
50
+ const deck = context.requestCapability(import_plugin_deck.DeckCapabilities.DeckState);
50
51
  const attention = context.requestCapability(import_plugin_attention.AttentionCapabilities.Attention);
51
- const state = context.requestCapability(import_chunk_56NGXG2A.SpaceCapabilities.MutableState);
52
+ const state = context.requestCapability(import_chunk_UX3U4RU2.SpaceCapabilities.MutableState);
52
53
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
53
54
  const defaultSpace = client.spaces.default;
54
55
  await defaultSpace.waitUntilReady();
55
- if (typeof defaultSpace.properties[import_chunk_5D4RWKTV.COMPOSER_SPACE_LOCK] !== "boolean") {
56
- defaultSpace.properties[import_chunk_5D4RWKTV.COMPOSER_SPACE_LOCK] = true;
56
+ if (deck.activeDeck === "default") {
57
+ await dispatch((0, import_app_framework.createIntent)(import_app_framework.LayoutAction.SwitchWorkspace, {
58
+ part: "workspace",
59
+ subject: defaultSpace.id
60
+ }));
61
+ }
62
+ if (typeof defaultSpace.properties[import_chunk_3QWZCN6L.COMPOSER_SPACE_LOCK] !== "boolean") {
63
+ defaultSpace.properties[import_chunk_3QWZCN6L.COMPOSER_SPACE_LOCK] = true;
57
64
  }
58
65
  const { objects: [spacesOrder] } = await defaultSpace.db.query(import_echo.Filter.schema(import_echo_schema.Expando, {
59
- key: import_chunk_5D4RWKTV.SHARED
66
+ key: import_chunk_3QWZCN6L.SHARED
60
67
  })).run();
61
68
  if (!spacesOrder) {
62
69
  defaultSpace.db.add((0, import_live_object.create)({
63
- key: import_chunk_5D4RWKTV.SHARED,
70
+ key: import_chunk_3QWZCN6L.SHARED,
64
71
  order: []
65
72
  }));
66
73
  }
67
74
  subscriptions.add((0, import_core.scheduledEffect)(() => ({
68
- layoutMode: layout.layoutMode,
69
- soloPart: location.active.solo?.[0]
70
- }), ({ layoutMode, soloPart }) => {
71
- if (layoutMode !== "solo" || !soloPart) {
75
+ active: layout.active
76
+ }), ({ active }) => {
77
+ if (active.length !== 1) {
72
78
  return;
73
79
  }
74
- const node = graph.findNode(soloPart.id);
75
- if (!node && soloPart.id.length === import_echo.FQ_ID_LENGTH) {
80
+ const node = graph.findNode(active[0]);
81
+ if (!node && active[0].length === import_echo.FQ_ID_LENGTH) {
76
82
  const timeout = setTimeout(async () => {
77
- const node2 = graph.findNode(soloPart.id);
83
+ const node2 = graph.findNode(active[0]);
78
84
  if (!node2) {
79
- await dispatch((0, import_app_framework.createIntent)(import_chunk_YCBBGTFD.SpaceAction.WaitForObject, {
80
- id: soloPart.id
85
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_6MEOP3DH.SpaceAction.WaitForObject, {
86
+ id: active[0]
81
87
  }));
82
88
  }
83
89
  }, WAIT_FOR_OBJECT_TIMEOUT);
@@ -95,20 +101,15 @@ var spaces_ready_default = async (context) => {
95
101
  });
96
102
  }).unsubscribe);
97
103
  subscriptions.add((0, import_core.scheduledEffect)(() => ({
98
- open: (0, import_app_framework.openIds)(location.active, layout.layoutMode === "solo" ? [
99
- "solo"
100
- ] : [
101
- "main"
102
- ]),
103
- closed: [
104
- ...location.closed
105
- ]
106
- }), ({ open, closed }) => {
104
+ current: attention.current,
105
+ active: layout.active,
106
+ inactive: layout.inactive
107
+ }), ({ current, active, inactive }) => {
107
108
  const send = () => {
108
109
  const spaces = client.spaces.get();
109
110
  const identity = client.halo.identity.get();
110
- if (identity && location.active) {
111
- const idsBySpace = (0, import_util.reduceGroupBy)(open, (id) => {
111
+ if (identity) {
112
+ const idsBySpace = (0, import_util.reduceGroupBy)(active, (id) => {
112
113
  try {
113
114
  const [spaceId] = (0, import_echo.parseFullyQualifiedId)(id);
114
115
  return spaceId;
@@ -116,7 +117,7 @@ var spaces_ready_default = async (context) => {
116
117
  return null;
117
118
  }
118
119
  });
119
- const removedBySpace = (0, import_util.reduceGroupBy)(closed, (id) => {
120
+ const removedBySpace = (0, import_util.reduceGroupBy)(inactive, (id) => {
120
121
  try {
121
122
  const [spaceId] = (0, import_echo.parseFullyQualifiedId)(id);
122
123
  return spaceId;
@@ -137,9 +138,7 @@ var spaces_ready_default = async (context) => {
137
138
  }
138
139
  void space.postMessage("viewing", {
139
140
  identityKey: identity.identityKey.toHex(),
140
- attended: attention.current ? [
141
- ...attention.current
142
- ] : [],
141
+ attended: current,
143
142
  added,
144
143
  removed
145
144
  }).catch((err) => {
@@ -147,7 +146,7 @@ var spaces_ready_default = async (context) => {
147
146
  err: err.message
148
147
  }, {
149
148
  F: __dxlog_file,
150
- L: 156,
149
+ L: 155,
151
150
  S: void 0,
152
151
  C: (f, a) => f(...a)
153
152
  });
@@ -198,7 +197,7 @@ var spaces_ready_default = async (context) => {
198
197
  } catch (err) {
199
198
  import_log.log.catch(err, void 0, {
200
199
  F: __dxlog_file,
201
- L: 224,
200
+ L: 223,
202
201
  S: void 0,
203
202
  C: (f, a) => f(...a)
204
203
  });
@@ -208,4 +207,4 @@ var spaces_ready_default = async (context) => {
208
207
  subscriptions.clear();
209
208
  });
210
209
  };
211
- //# sourceMappingURL=spaces-ready-ILVGUHJH.cjs.map
210
+ //# sourceMappingURL=spaces-ready-PZZQWS6T.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/spaces-ready.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, createIntent, type PluginsContext, Capabilities, LayoutAction } from '@dxos/app-framework';\nimport { EventSubscriptions } from '@dxos/async';\nimport { Expando } from '@dxos/echo-schema';\nimport { scheduledEffect } from '@dxos/echo-signals/core';\nimport { create } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { EdgeReplicationSetting } from '@dxos/protocols/proto/dxos/echo/metadata';\nimport { PublicKey } from '@dxos/react-client';\nimport { Filter, FQ_ID_LENGTH, parseFullyQualifiedId, SpaceState } from '@dxos/react-client/echo';\nimport { ComplexMap, reduceGroupBy } from '@dxos/util';\n\nimport { SpaceCapabilities } from './capabilities';\nimport { SpaceAction } from '../types';\nimport { COMPOSER_SPACE_LOCK, SHARED } from '../util';\n\nconst ACTIVE_NODE_BROADCAST_INTERVAL = 30_000;\nconst WAIT_FOR_OBJECT_TIMEOUT = 1000;\n\nexport default async (context: PluginsContext) => {\n const subscriptions = new EventSubscriptions();\n const spaceSubscriptions = new EventSubscriptions();\n\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const layout = context.requestCapability(Capabilities.Layout);\n const deck = context.requestCapability(DeckCapabilities.DeckState);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const state = context.requestCapability(SpaceCapabilities.MutableState);\n const client = context.requestCapability(ClientCapabilities.Client);\n\n const defaultSpace = client.spaces.default;\n await defaultSpace.waitUntilReady();\n\n if (deck.activeDeck === 'default') {\n await dispatch(createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: defaultSpace.id }));\n }\n\n // Initialize space sharing lock in default space.\n if (typeof defaultSpace.properties[COMPOSER_SPACE_LOCK] !== 'boolean') {\n defaultSpace.properties[COMPOSER_SPACE_LOCK] = true;\n }\n\n const {\n objects: [spacesOrder],\n } = await defaultSpace.db.query(Filter.schema(Expando, { key: SHARED })).run();\n if (!spacesOrder) {\n // TODO(wittjosiah): Cannot be a Folder because Spaces are not TypedObjects so can't be saved in the database.\n // Instead, we store order as an array of space ids.\n defaultSpace.db.add(create({ key: SHARED, order: [] }));\n }\n\n // Await missing objects.\n subscriptions.add(\n scheduledEffect(\n () => ({ active: layout.active }),\n ({ active }) => {\n if (active.length !== 1) {\n return;\n }\n\n const node = graph.findNode(active[0]);\n if (!node && active[0].length === FQ_ID_LENGTH) {\n const timeout = setTimeout(async () => {\n const node = graph.findNode(active[0]);\n if (!node) {\n await dispatch(createIntent(SpaceAction.WaitForObject, { id: active[0] }));\n }\n }, WAIT_FOR_OBJECT_TIMEOUT);\n\n return () => clearTimeout(timeout);\n }\n },\n ),\n );\n\n // Cache space names.\n subscriptions.add(\n client.spaces.subscribe(async (spaces) => {\n // TODO(wittjosiah): Remove. This is a hack to be able to migrate the default space properties.\n if (defaultSpace.state.get() === SpaceState.SPACE_REQUIRES_MIGRATION) {\n await defaultSpace.internal.migrate();\n }\n\n spaces\n .filter((space) => space.state.get() === SpaceState.SPACE_READY)\n .forEach((space) => {\n subscriptions.add(\n scheduledEffect(\n () => ({ name: space.properties.name }),\n ({ name }) => (state.spaceNames[space.id] = name),\n ),\n );\n });\n }).unsubscribe,\n );\n\n // Broadcast active node to other peers in the space.\n subscriptions.add(\n scheduledEffect(\n () => ({ current: attention.current, active: layout.active, inactive: layout.inactive }),\n ({ current, active, inactive }) => {\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(active, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(inactive, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n // NOTE: Ensure all spaces are included so that we send the correct `removed` object arrays.\n for (const space of spaces) {\n if (!idsBySpace.has(space.id)) {\n idsBySpace.set(space.id, []);\n }\n }\n\n for (const [spaceId, added] of idsBySpace) {\n const removed = removedBySpace.get(spaceId) ?? [];\n const space = spaces.find((space) => space.id === spaceId);\n if (!space) {\n continue;\n }\n\n void space\n .postMessage('viewing', {\n identityKey: identity.identityKey.toHex(),\n attended: current,\n added,\n removed,\n })\n // TODO(burdon): This seems defensive; why would this fail? Backoff interval.\n .catch((err) => {\n log.warn('Failed to broadcast active node for presence.', { err: err.message });\n });\n }\n }\n };\n\n send();\n // Send at interval to allow peers to expire entries if they become disconnected.\n const interval = setInterval(() => send(), ACTIVE_NODE_BROADCAST_INTERVAL);\n return () => clearInterval(interval);\n },\n ),\n );\n\n // Listen for active nodes from other peers in the space.\n subscriptions.add(\n client.spaces.subscribe((spaces) => {\n spaceSubscriptions.clear();\n spaces.forEach((space) => {\n spaceSubscriptions.add(\n space.listen('viewing', (message) => {\n const { added, removed, attended } = message.payload;\n\n const identityKey = PublicKey.safeFrom(message.payload.identityKey);\n const currentIdentity = client.halo.identity.get();\n if (\n identityKey &&\n !currentIdentity?.identityKey.equals(identityKey) &&\n Array.isArray(added) &&\n Array.isArray(removed)\n ) {\n added.forEach((id) => {\n if (typeof id === 'string') {\n if (!(id in state.viewersByObject)) {\n state.viewersByObject[id] = new ComplexMap(PublicKey.hash);\n }\n state.viewersByObject[id]!.set(identityKey, {\n lastSeen: Date.now(),\n currentlyAttended: new Set(attended).has(id),\n });\n if (!state.viewersByIdentity.has(identityKey)) {\n state.viewersByIdentity.set(identityKey, new Set());\n }\n state.viewersByIdentity.get(identityKey)!.add(id);\n }\n });\n\n removed.forEach((id) => {\n if (typeof id === 'string') {\n state.viewersByObject[id]?.delete(identityKey);\n state.viewersByIdentity.get(identityKey)?.delete(id);\n // It’s okay for these to be empty sets/maps, reduces churn.\n }\n });\n }\n }),\n );\n });\n }).unsubscribe,\n );\n\n // Enable edge replication for all spaces.\n try {\n await Promise.all(\n client.spaces.get().map((space) => space.internal.setEdgeReplicationPreference(EdgeReplicationSetting.ENABLED)),\n );\n state.enabledEdgeReplication = true;\n } catch (err) {\n log.catch(err);\n }\n\n return contributes(Capabilities.Null, null, () => {\n spaceSubscriptions.clear();\n subscriptions.clear();\n });\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["ACTIVE_NODE_BROADCAST_INTERVAL", "WAIT_FOR_OBJECT_TIMEOUT", "context", "subscriptions", "EventSubscriptions", "spaceSubscriptions", "dispatchPromise", "dispatch", "requestCapability", "Capabilities", "IntentDispatcher", "graph", "AppGraph", "layout", "Layout", "deck", "DeckCapabilities", "DeckState", "attention", "AttentionCapabilities", "Attention", "state", "SpaceCapabilities", "MutableState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "waitUntilReady", "activeDeck", "createIntent", "LayoutAction", "SwitchWorkspace", "part", "subject", "id", "properties", "COMPOSER_SPACE_LOCK", "objects", "spacesOrder", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "add", "create", "order", "scheduledEffect", "active", "length", "node", "findNode", "FQ_ID_LENGTH", "timeout", "setTimeout", "SpaceAction", "WaitForObject", "clearTimeout", "subscribe", "get", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "name", "spaceNames", "unsubscribe", "current", "inactive", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseFullyQualifiedId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "catch", "err", "log", "warn", "message", "interval", "setInterval", "clearInterval", "clear", "listen", "payload", "PublicKey", "safeFrom", "currentIdentity", "equals", "Array", "isArray", "viewersByObject", "ComplexMap", "hash", "lastSeen", "Date", "now", "currentlyAttended", "Set", "viewersByIdentity", "delete", "Promise", "all", "map", "setEdgeReplicationPreference", "EdgeReplicationSetting", "ENABLED", "enabledEdgeReplication", "contributes", "Null"]
7
+ }
@@ -16,20 +16,20 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var state_4UIOUKLJ_exports = {};
20
- __export(state_4UIOUKLJ_exports, {
19
+ var state_WPZC4JXB_exports = {};
20
+ __export(state_WPZC4JXB_exports, {
21
21
  default: () => state_default
22
22
  });
23
- module.exports = __toCommonJS(state_4UIOUKLJ_exports);
24
- var import_chunk_56NGXG2A = require("./chunk-56NGXG2A.cjs");
25
- var import_chunk_AO4EW2RX = require("./chunk-AO4EW2RX.cjs");
23
+ module.exports = __toCommonJS(state_WPZC4JXB_exports);
24
+ var import_chunk_UX3U4RU2 = require("./chunk-UX3U4RU2.cjs");
25
+ var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
26
26
  var import_signals_core = require("@preact/signals-core");
27
27
  var import_app_framework = require("@dxos/app-framework");
28
28
  var import_keys = require("@dxos/keys");
29
29
  var import_local_storage = require("@dxos/local-storage");
30
30
  var import_util = require("@dxos/util");
31
31
  var state_default = (context) => {
32
- const state = new import_local_storage.LocalStorageStore(import_chunk_AO4EW2RX.SPACE_PLUGIN, {
32
+ const state = new import_local_storage.LocalStorageStore(import_chunk_WZR6OAN3.SPACE_PLUGIN, {
33
33
  awaiting: void 0,
34
34
  spaceNames: {},
35
35
  viewersByObject: {},
@@ -53,9 +53,9 @@ var state_default = (context) => {
53
53
  state.values.navigableCollections = enabled;
54
54
  }
55
55
  });
56
- return (0, import_app_framework.contributes)(import_chunk_56NGXG2A.SpaceCapabilities.State, state.values, () => {
56
+ return (0, import_app_framework.contributes)(import_chunk_UX3U4RU2.SpaceCapabilities.State, state.values, () => {
57
57
  unsubscribe();
58
58
  state.close();
59
59
  });
60
60
  };
61
- //# sourceMappingURL=state-4UIOUKLJ.cjs.map
61
+ //# sourceMappingURL=state-WPZC4JXB.cjs.map