@dxos/plugin-space 0.7.5-labs.e27f9b9 → 0.7.5-main.2567c87

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 (177) hide show
  1. package/dist/lib/browser/{app-graph-builder-TTM2YZVS.mjs → app-graph-builder-F6XSETHX.mjs} +8 -10
  2. package/dist/lib/browser/app-graph-builder-F6XSETHX.mjs.map +7 -0
  3. package/dist/lib/browser/{app-graph-serializer-ZGM5NDXE.mjs → app-graph-serializer-FYJE23GN.mjs} +5 -5
  4. package/dist/lib/browser/{chunk-S5IGZNXJ.mjs → chunk-IZ7QKQ2E.mjs} +9 -14
  5. package/dist/lib/browser/chunk-IZ7QKQ2E.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-PQXZCNAU.mjs → chunk-SOXNANA6.mjs} +2 -3
  7. package/dist/lib/browser/{chunk-PQXZCNAU.mjs.map → chunk-SOXNANA6.mjs.map} +3 -3
  8. package/dist/lib/browser/{chunk-H2AR4OLP.mjs → chunk-SSJ772GK.mjs} +5 -9
  9. package/dist/lib/browser/chunk-SSJ772GK.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-ENRYFGYE.mjs → chunk-T36CIHPG.mjs} +3 -3
  11. package/dist/lib/browser/{chunk-RLZQJD47.mjs → chunk-UH5P4UL3.mjs} +2 -3
  12. package/dist/lib/browser/chunk-UH5P4UL3.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-YB3JWCPY.mjs → chunk-XXD33C4E.mjs} +250 -291
  14. package/dist/lib/browser/chunk-XXD33C4E.mjs.map +7 -0
  15. package/dist/lib/browser/{identity-created-VICTPQX7.mjs → identity-created-4Q4PFIC5.mjs} +3 -3
  16. package/dist/lib/browser/index.mjs +13 -14
  17. package/dist/lib/browser/index.mjs.map +3 -3
  18. package/dist/lib/browser/intent-resolver-XRZYCXXX.mjs +459 -0
  19. package/dist/lib/browser/intent-resolver-XRZYCXXX.mjs.map +7 -0
  20. package/dist/lib/browser/meta.json +1 -1
  21. package/dist/lib/browser/{react-root-YUF4IL5W.mjs → react-root-BDOPFJGJ.mjs} +6 -6
  22. package/dist/lib/browser/{react-surface-YIPKS26R.mjs → react-surface-EGOL2JBL.mjs} +33 -26
  23. package/dist/lib/browser/react-surface-EGOL2JBL.mjs.map +7 -0
  24. package/dist/lib/browser/{settings-HN5UIYQO.mjs → settings-WF67QZSD.mjs} +3 -3
  25. package/dist/lib/browser/{spaces-ready-F57ITJDR.mjs → spaces-ready-WVU7US3C.mjs} +32 -31
  26. package/dist/lib/browser/spaces-ready-WVU7US3C.mjs.map +7 -0
  27. package/dist/lib/browser/{state-6DCY5YJP.mjs → state-MS4KYJWI.mjs} +3 -3
  28. package/dist/lib/browser/types/index.mjs +2 -4
  29. package/dist/lib/node/{app-graph-builder-6N4TEVHH.cjs → app-graph-builder-GKLVZ4PM.cjs} +56 -58
  30. package/dist/lib/node/app-graph-builder-GKLVZ4PM.cjs.map +7 -0
  31. package/dist/lib/node/{app-graph-serializer-AWKVTYAB.cjs → app-graph-serializer-RMTU5YSC.cjs} +21 -21
  32. package/dist/lib/node/{chunk-UX3U4RU2.cjs → chunk-56NGXG2A.cjs} +8 -9
  33. package/dist/lib/node/chunk-56NGXG2A.cjs.map +7 -0
  34. package/dist/lib/node/{chunk-MMXP2NHE.cjs → chunk-5D4RWKTV.cjs} +60 -65
  35. package/dist/lib/node/chunk-5D4RWKTV.cjs.map +7 -0
  36. package/dist/lib/node/{chunk-HFBC3X66.cjs → chunk-AJRP7AD6.cjs} +251 -292
  37. package/dist/lib/node/chunk-AJRP7AD6.cjs.map +7 -0
  38. package/dist/lib/node/{chunk-WZR6OAN3.cjs → chunk-AO4EW2RX.cjs} +5 -6
  39. package/dist/lib/node/{chunk-WZR6OAN3.cjs.map → chunk-AO4EW2RX.cjs.map} +3 -3
  40. package/dist/lib/node/{chunk-I2LRRRMV.cjs → chunk-UENH2YBM.cjs} +8 -8
  41. package/dist/lib/node/{chunk-SPCSJ2CY.cjs → chunk-YCBBGTFD.cjs} +9 -14
  42. package/dist/lib/node/chunk-YCBBGTFD.cjs.map +7 -0
  43. package/dist/lib/node/{identity-created-JNDKMFKI.cjs → identity-created-QQWX7WX3.cjs} +7 -7
  44. package/dist/lib/node/index.cjs +92 -93
  45. package/dist/lib/node/index.cjs.map +3 -3
  46. package/dist/lib/node/intent-resolver-3NI6AUAI.cjs +458 -0
  47. package/dist/lib/node/intent-resolver-3NI6AUAI.cjs.map +7 -0
  48. package/dist/lib/node/meta.json +1 -1
  49. package/dist/lib/node/{react-root-2WARZU2P.cjs → react-root-ZTR2J2I3.cjs} +12 -12
  50. package/dist/lib/node/{react-surface-QUY7D43M.cjs → react-surface-75KRPQYT.cjs} +76 -72
  51. package/dist/lib/node/react-surface-75KRPQYT.cjs.map +7 -0
  52. package/dist/lib/node/{settings-RBBL22DJ.cjs → settings-KOVSPA3S.cjs} +8 -8
  53. package/dist/lib/node/{spaces-ready-WHU4J6E5.cjs → spaces-ready-ILVGUHJH.cjs} +40 -39
  54. package/dist/lib/node/spaces-ready-ILVGUHJH.cjs.map +7 -0
  55. package/dist/lib/node/{state-WPZC4JXB.cjs → state-4UIOUKLJ.cjs} +8 -8
  56. package/dist/lib/node/types/index.cjs +16 -18
  57. package/dist/lib/node/types/index.cjs.map +2 -2
  58. package/dist/lib/node-esm/{app-graph-builder-MS6BI5EW.mjs → app-graph-builder-NEHQ5Z63.mjs} +8 -10
  59. package/dist/lib/node-esm/app-graph-builder-NEHQ5Z63.mjs.map +7 -0
  60. package/dist/lib/node-esm/{app-graph-serializer-AWAWDSCM.mjs → app-graph-serializer-UWWS5OVC.mjs} +5 -5
  61. package/dist/lib/node-esm/{chunk-LGL4A5B5.mjs → chunk-375RB3CZ.mjs} +2 -3
  62. package/dist/lib/node-esm/chunk-375RB3CZ.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-77RE7Y5J.mjs → chunk-5QMAPAZD.mjs} +9 -14
  64. package/dist/lib/node-esm/chunk-5QMAPAZD.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-ICCM4YRJ.mjs → chunk-7FUVU45N.mjs} +2 -3
  66. package/dist/lib/node-esm/{chunk-ICCM4YRJ.mjs.map → chunk-7FUVU45N.mjs.map} +3 -3
  67. package/dist/lib/node-esm/{chunk-ESWV7ICX.mjs → chunk-E5DWIQ3N.mjs} +3 -3
  68. package/dist/lib/node-esm/{chunk-TIFAXTJ5.mjs → chunk-GVOPDPS2.mjs} +250 -291
  69. package/dist/lib/node-esm/chunk-GVOPDPS2.mjs.map +7 -0
  70. package/dist/lib/node-esm/{chunk-S6VAU6VJ.mjs → chunk-HTBGWQEU.mjs} +5 -9
  71. package/dist/lib/node-esm/chunk-HTBGWQEU.mjs.map +7 -0
  72. package/dist/lib/node-esm/{identity-created-3AUSSVEK.mjs → identity-created-HMNY2MPB.mjs} +3 -3
  73. package/dist/lib/node-esm/index.mjs +13 -14
  74. package/dist/lib/node-esm/index.mjs.map +3 -3
  75. package/dist/lib/node-esm/intent-resolver-P5EVBOGP.mjs +460 -0
  76. package/dist/lib/node-esm/intent-resolver-P5EVBOGP.mjs.map +7 -0
  77. package/dist/lib/node-esm/meta.json +1 -1
  78. package/dist/lib/node-esm/{react-root-R3FZKA2B.mjs → react-root-OUPJA4RY.mjs} +6 -6
  79. package/dist/lib/node-esm/{react-surface-RH57RBYI.mjs → react-surface-7EVWCKIP.mjs} +33 -26
  80. package/dist/lib/node-esm/react-surface-7EVWCKIP.mjs.map +7 -0
  81. package/dist/lib/node-esm/{settings-VBAUB37B.mjs → settings-EDK6WI3V.mjs} +3 -3
  82. package/dist/lib/node-esm/{spaces-ready-ABADUX2P.mjs → spaces-ready-CH3W7OGN.mjs} +32 -31
  83. package/dist/lib/node-esm/spaces-ready-CH3W7OGN.mjs.map +7 -0
  84. package/dist/lib/node-esm/{state-5GH2D5U4.mjs → state-BMISGQ2O.mjs} +3 -3
  85. package/dist/lib/node-esm/types/index.mjs +2 -4
  86. package/dist/types/src/SpacePlugin.d.ts +1 -5
  87. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  88. package/dist/types/src/capabilities/app-graph-builder.d.ts +22 -22
  89. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/capabilities.d.ts +0 -6
  91. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/index.d.ts +33 -34
  93. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  94. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -2
  95. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  96. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/spaces-ready.d.ts.map +1 -1
  98. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts +3 -4
  99. package/dist/types/src/components/CreateDialog/CreateObjectPanel.d.ts.map +1 -1
  100. package/dist/types/src/components/CreateDialog/CreateSpaceDialog.d.ts.map +1 -1
  101. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  102. package/dist/types/src/components/SpacePresence.d.ts.map +1 -1
  103. package/dist/types/src/components/SpaceSettings/SpaceSettingsDialog.d.ts.map +1 -1
  104. package/dist/types/src/components/SpaceSettings/SpaceSettingsPanel.d.ts.map +1 -1
  105. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -1
  106. package/dist/types/src/meta.d.ts +0 -1
  107. package/dist/types/src/meta.d.ts.map +1 -1
  108. package/dist/types/src/types/types.d.ts +2 -5
  109. package/dist/types/src/types/types.d.ts.map +1 -1
  110. package/dist/types/src/util.d.ts.map +1 -1
  111. package/package.json +38 -39
  112. package/src/SpacePlugin.tsx +6 -11
  113. package/src/capabilities/app-graph-builder.ts +3 -4
  114. package/src/capabilities/capabilities.ts +1 -4
  115. package/src/capabilities/intent-resolver.ts +312 -410
  116. package/src/capabilities/react-surface.tsx +30 -22
  117. package/src/capabilities/spaces-ready.ts +21 -20
  118. package/src/components/AwaitingObject.tsx +5 -5
  119. package/src/components/CreateDialog/CreateObjectDialog.tsx +15 -15
  120. package/src/components/CreateDialog/CreateObjectPanel.tsx +114 -114
  121. package/src/components/CreateDialog/CreateSpaceDialog.tsx +8 -10
  122. package/src/components/JoinDialog.tsx +19 -27
  123. package/src/components/SpacePluginSettings.tsx +3 -3
  124. package/src/components/SpacePresence.stories.tsx +2 -2
  125. package/src/components/SpacePresence.tsx +3 -2
  126. package/src/components/SpaceSettings/SpaceSettingsDialog.tsx +1 -16
  127. package/src/components/SpaceSettings/SpaceSettingsPanel.tsx +4 -3
  128. package/src/components/SyncStatus/InlineSyncStatus.tsx +2 -2
  129. package/src/components/SyncStatus/SyncStatus.tsx +1 -2
  130. package/src/meta.ts +0 -1
  131. package/src/types/types.ts +3 -7
  132. package/src/util.tsx +4 -8
  133. package/dist/lib/browser/app-graph-builder-TTM2YZVS.mjs.map +0 -7
  134. package/dist/lib/browser/chunk-H2AR4OLP.mjs.map +0 -7
  135. package/dist/lib/browser/chunk-RLZQJD47.mjs.map +0 -7
  136. package/dist/lib/browser/chunk-S5IGZNXJ.mjs.map +0 -7
  137. package/dist/lib/browser/chunk-YB3JWCPY.mjs.map +0 -7
  138. package/dist/lib/browser/intent-resolver-SYYO26PR.mjs +0 -537
  139. package/dist/lib/browser/intent-resolver-SYYO26PR.mjs.map +0 -7
  140. package/dist/lib/browser/react-surface-YIPKS26R.mjs.map +0 -7
  141. package/dist/lib/browser/spaces-ready-F57ITJDR.mjs.map +0 -7
  142. package/dist/lib/node/app-graph-builder-6N4TEVHH.cjs.map +0 -7
  143. package/dist/lib/node/chunk-HFBC3X66.cjs.map +0 -7
  144. package/dist/lib/node/chunk-MMXP2NHE.cjs.map +0 -7
  145. package/dist/lib/node/chunk-SPCSJ2CY.cjs.map +0 -7
  146. package/dist/lib/node/chunk-UX3U4RU2.cjs.map +0 -7
  147. package/dist/lib/node/intent-resolver-2MFJV5A7.cjs +0 -536
  148. package/dist/lib/node/intent-resolver-2MFJV5A7.cjs.map +0 -7
  149. package/dist/lib/node/react-surface-QUY7D43M.cjs.map +0 -7
  150. package/dist/lib/node/spaces-ready-WHU4J6E5.cjs.map +0 -7
  151. package/dist/lib/node-esm/app-graph-builder-MS6BI5EW.mjs.map +0 -7
  152. package/dist/lib/node-esm/chunk-77RE7Y5J.mjs.map +0 -7
  153. package/dist/lib/node-esm/chunk-LGL4A5B5.mjs.map +0 -7
  154. package/dist/lib/node-esm/chunk-S6VAU6VJ.mjs.map +0 -7
  155. package/dist/lib/node-esm/chunk-TIFAXTJ5.mjs.map +0 -7
  156. package/dist/lib/node-esm/intent-resolver-UKXKZN2V.mjs +0 -538
  157. package/dist/lib/node-esm/intent-resolver-UKXKZN2V.mjs.map +0 -7
  158. package/dist/lib/node-esm/react-surface-RH57RBYI.mjs.map +0 -7
  159. package/dist/lib/node-esm/spaces-ready-ABADUX2P.mjs.map +0 -7
  160. /package/dist/lib/browser/{app-graph-serializer-ZGM5NDXE.mjs.map → app-graph-serializer-FYJE23GN.mjs.map} +0 -0
  161. /package/dist/lib/browser/{chunk-ENRYFGYE.mjs.map → chunk-T36CIHPG.mjs.map} +0 -0
  162. /package/dist/lib/browser/{identity-created-VICTPQX7.mjs.map → identity-created-4Q4PFIC5.mjs.map} +0 -0
  163. /package/dist/lib/browser/{react-root-YUF4IL5W.mjs.map → react-root-BDOPFJGJ.mjs.map} +0 -0
  164. /package/dist/lib/browser/{settings-HN5UIYQO.mjs.map → settings-WF67QZSD.mjs.map} +0 -0
  165. /package/dist/lib/browser/{state-6DCY5YJP.mjs.map → state-MS4KYJWI.mjs.map} +0 -0
  166. /package/dist/lib/node/{app-graph-serializer-AWKVTYAB.cjs.map → app-graph-serializer-RMTU5YSC.cjs.map} +0 -0
  167. /package/dist/lib/node/{chunk-I2LRRRMV.cjs.map → chunk-UENH2YBM.cjs.map} +0 -0
  168. /package/dist/lib/node/{identity-created-JNDKMFKI.cjs.map → identity-created-QQWX7WX3.cjs.map} +0 -0
  169. /package/dist/lib/node/{react-root-2WARZU2P.cjs.map → react-root-ZTR2J2I3.cjs.map} +0 -0
  170. /package/dist/lib/node/{settings-RBBL22DJ.cjs.map → settings-KOVSPA3S.cjs.map} +0 -0
  171. /package/dist/lib/node/{state-WPZC4JXB.cjs.map → state-4UIOUKLJ.cjs.map} +0 -0
  172. /package/dist/lib/node-esm/{app-graph-serializer-AWAWDSCM.mjs.map → app-graph-serializer-UWWS5OVC.mjs.map} +0 -0
  173. /package/dist/lib/node-esm/{chunk-ESWV7ICX.mjs.map → chunk-E5DWIQ3N.mjs.map} +0 -0
  174. /package/dist/lib/node-esm/{identity-created-3AUSSVEK.mjs.map → identity-created-HMNY2MPB.mjs.map} +0 -0
  175. /package/dist/lib/node-esm/{react-root-R3FZKA2B.mjs.map → react-root-OUPJA4RY.mjs.map} +0 -0
  176. /package/dist/lib/node-esm/{settings-VBAUB37B.mjs.map → settings-EDK6WI3V.mjs.map} +0 -0
  177. /package/dist/lib/node-esm/{state-5GH2D5U4.mjs.map → state-BMISGQ2O.mjs.map} +0 -0
@@ -26,24 +26,23 @@ 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_QUY7D43M_exports = {};
30
- __export(react_surface_QUY7D43M_exports, {
29
+ var react_surface_75KRPQYT_exports = {};
30
+ __export(react_surface_75KRPQYT_exports, {
31
31
  default: () => react_surface_default
32
32
  });
33
- module.exports = __toCommonJS(react_surface_QUY7D43M_exports);
34
- var import_chunk_HFBC3X66 = require("./chunk-HFBC3X66.cjs");
35
- var import_chunk_UX3U4RU2 = require("./chunk-UX3U4RU2.cjs");
36
- var import_chunk_MMXP2NHE = require("./chunk-MMXP2NHE.cjs");
37
- var import_chunk_SPCSJ2CY = require("./chunk-SPCSJ2CY.cjs");
38
- var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
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");
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");
42
41
  var import_plugin_client = require("@dxos/plugin-client");
43
42
  var import_echo = require("@dxos/react-client/echo");
44
43
  var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.ReactSurface, [
45
44
  (0, import_app_framework.createSurface)({
46
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/article`,
45
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/article`,
47
46
  role: "article",
48
47
  filter: (data) => (
49
48
  // TODO(wittjosiah): Need to avoid shotgun parsing space state everywhere.
@@ -52,73 +51,73 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
52
51
  component: ({ data, role, ...rest }) => /* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
53
52
  data: {
54
53
  id: data.subject.id,
55
- subject: data.subject.properties[import_chunk_SPCSJ2CY.CollectionType.typename]?.target
54
+ subject: data.subject.properties[import_chunk_YCBBGTFD.CollectionType.typename]?.target
56
55
  },
57
56
  role,
58
57
  ...rest
59
58
  })
60
59
  }),
61
60
  (0, import_app_framework.createSurface)({
62
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/collection-fallback`,
61
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/collection-fallback`,
63
62
  role: "article",
64
- position: "fallback",
65
- filter: (data) => data.subject instanceof import_chunk_SPCSJ2CY.CollectionType,
66
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.CollectionMain, {
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, {
67
66
  collection: data.subject
68
67
  })
69
68
  }),
70
69
  (0, import_app_framework.createSurface)({
71
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/settings-panel`,
70
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/settings-panel`,
72
71
  // TODO(burdon): Add role name syntax to minimal plugin docs.
73
72
  role: "complementary--settings",
74
73
  filter: (data) => (0, import_echo.isSpace)(data.subject),
75
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.SpaceSettingsPanel, {
74
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SpaceSettingsPanel, {
76
75
  space: data.subject
77
76
  })
78
77
  }),
79
78
  (0, import_app_framework.createSurface)({
80
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/object-settings-base-panel`,
79
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/object-settings-base-panel`,
81
80
  role: "complementary--settings",
82
- position: "hoist",
81
+ disposition: "hoist",
83
82
  filter: (data) => (0, import_echo.isEchoObject)(data.subject),
84
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.BaseObjectSettings, {
83
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.BaseObjectSettings, {
85
84
  object: data.subject
86
85
  })
87
86
  }),
88
87
  (0, import_app_framework.createSurface)({
89
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/object-settings-advanced-panel`,
88
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/object-settings-advanced-panel`,
90
89
  role: "complementary--settings",
91
- position: "fallback",
90
+ disposition: "fallback",
92
91
  filter: (data) => (0, import_echo.isEchoObject)(data.subject),
93
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.AdvancedObjectSettings, {
92
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.AdvancedObjectSettings, {
94
93
  object: data.subject
95
94
  })
96
95
  }),
97
96
  (0, import_app_framework.createSurface)({
98
- id: import_chunk_HFBC3X66.SPACE_SETTINGS_DIALOG,
97
+ id: import_chunk_AJRP7AD6.SPACE_SETTINGS_DIALOG,
99
98
  role: "dialog",
100
- filter: (data) => data.component === import_chunk_HFBC3X66.SPACE_SETTINGS_DIALOG,
101
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.SpaceSettingsDialog, {
102
- ...data.props,
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,
103
102
  createInvitationUrl
104
103
  })
105
104
  }),
106
105
  (0, import_app_framework.createSurface)({
107
- id: import_chunk_HFBC3X66.JOIN_DIALOG,
106
+ id: import_chunk_AJRP7AD6.JOIN_DIALOG,
108
107
  role: "dialog",
109
- filter: (data) => data.component === import_chunk_HFBC3X66.JOIN_DIALOG,
110
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.JoinDialog, data.props)
108
+ filter: (data) => data.component === import_chunk_AJRP7AD6.JOIN_DIALOG,
109
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.JoinDialog, data.subject)
111
110
  }),
112
111
  (0, import_app_framework.createSurface)({
113
- id: import_chunk_HFBC3X66.CREATE_SPACE_DIALOG,
112
+ id: import_chunk_AJRP7AD6.CREATE_SPACE_DIALOG,
114
113
  role: "dialog",
115
- filter: (data) => data.component === import_chunk_HFBC3X66.CREATE_SPACE_DIALOG,
116
- component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.CreateSpaceDialog, null)
114
+ filter: (data) => data.component === import_chunk_AJRP7AD6.CREATE_SPACE_DIALOG,
115
+ component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.CreateSpaceDialog, null)
117
116
  }),
118
117
  (0, import_app_framework.createSurface)({
119
- id: import_chunk_HFBC3X66.CREATE_OBJECT_DIALOG,
118
+ id: import_chunk_AJRP7AD6.CREATE_OBJECT_DIALOG,
120
119
  role: "dialog",
121
- filter: (data) => data.component === import_chunk_HFBC3X66.CREATE_OBJECT_DIALOG,
120
+ filter: (data) => data.component === import_chunk_AJRP7AD6.CREATE_OBJECT_DIALOG,
122
121
  component: ({ data }) => {
123
122
  const schemas = (0, import_app_framework.useCapabilities)(import_plugin_client.ClientCapabilities.Schema).flat();
124
123
  const manager = (0, import_app_framework.usePluginManager)();
@@ -127,36 +126,36 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
127
126
  }, [
128
127
  manager
129
128
  ]);
130
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.CreateObjectDialog, {
129
+ return /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.CreateObjectDialog, {
131
130
  schemas,
132
131
  resolve,
133
- ...data.props
132
+ ...data.subject
134
133
  });
135
134
  }
136
135
  }),
137
136
  (0, import_app_framework.createSurface)({
138
- id: import_chunk_HFBC3X66.POPOVER_RENAME_SPACE,
137
+ id: import_chunk_AJRP7AD6.POPOVER_RENAME_SPACE,
139
138
  role: "popover",
140
- filter: (data) => data.component === import_chunk_HFBC3X66.POPOVER_RENAME_SPACE && (0, import_echo.isSpace)(data.props),
141
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.PopoverRenameSpace, {
142
- space: data.props
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
143
142
  })
144
143
  }),
145
144
  (0, import_app_framework.createSurface)({
146
- id: import_chunk_HFBC3X66.POPOVER_RENAME_OBJECT,
145
+ id: import_chunk_AJRP7AD6.POPOVER_RENAME_OBJECT,
147
146
  role: "popover",
148
- filter: (data) => data.component === import_chunk_HFBC3X66.POPOVER_RENAME_OBJECT && (0, import_echo.isReactiveObject)(data.props),
149
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.PopoverRenameObject, {
150
- object: data.props
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
151
150
  })
152
151
  }),
153
152
  (0, import_app_framework.createSurface)({
154
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-presence`,
153
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/navtree-presence`,
155
154
  role: "navtree-item-end",
156
155
  filter: (data) => typeof data.id === "string" && (0, import_echo.isEchoObject)(data.subject),
157
156
  component: ({ data }) => {
158
- const state = (0, import_app_framework.useCapability)(import_chunk_UX3U4RU2.SpaceCapabilities.MutableState);
159
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.SmallPresenceLive, {
157
+ const state = (0, import_app_framework.useCapability)(import_chunk_56NGXG2A.SpaceCapabilities.MutableState);
158
+ return /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SmallPresenceLive, {
160
159
  id: data.id,
161
160
  open: data.open,
162
161
  viewers: state.viewersByObject[data.id]
@@ -165,65 +164,70 @@ var react_surface_default = ({ createInvitationUrl }) => (0, import_app_framewor
165
164
  }),
166
165
  (0, import_app_framework.createSurface)({
167
166
  // TODO(wittjosiah): Attention glyph for non-echo items should be handled elsewhere.
168
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-presence-fallback`,
167
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/navtree-presence-fallback`,
169
168
  role: "navtree-item-end",
170
- position: "fallback",
169
+ disposition: "fallback",
171
170
  filter: (data) => typeof data.id === "string",
172
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.SmallPresenceLive, {
171
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SmallPresenceLive, {
173
172
  id: data.id,
174
173
  open: data.open
175
174
  })
176
175
  }),
177
176
  (0, import_app_framework.createSurface)({
178
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navtree-sync-status`,
177
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/navtree-sync-status`,
179
178
  role: "navtree-item-end",
180
179
  filter: (data) => (0, import_echo.isSpace)(data.subject),
181
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.InlineSyncStatus, {
180
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.InlineSyncStatus, {
182
181
  space: data.subject,
183
182
  open: data.open
184
183
  })
185
184
  }),
186
185
  (0, import_app_framework.createSurface)({
187
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/navbar-presence`,
186
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/navbar-presence`,
188
187
  role: "navbar-end",
189
- position: "hoist",
188
+ disposition: "hoist",
190
189
  filter: (data) => (0, import_echo.isSpace)(data.subject) || (0, import_echo.isEchoObject)(data.subject),
191
190
  component: ({ data }) => {
192
191
  const space = (0, import_echo.isSpace)(data.subject) ? data.subject : (0, import_echo.getSpace)(data.subject);
193
- const object = (0, import_echo.isSpace)(data.subject) ? data.subject.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_SPCSJ2CY.CollectionType.typename]?.target : void 0 : data.subject;
194
- return object ? /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.SpacePresence, {
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, {
195
194
  object
196
- }) : null;
195
+ }), space.properties[import_chunk_5D4RWKTV.COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.ShareSpaceButton, {
196
+ space
197
+ })) : null;
197
198
  }
198
199
  }),
199
200
  (0, import_app_framework.createSurface)({
200
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/collection-section`,
201
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/collection-section`,
201
202
  role: "section",
202
- filter: (data) => data.subject instanceof import_chunk_SPCSJ2CY.CollectionType,
203
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.CollectionSection, {
203
+ filter: (data) => data.subject instanceof import_chunk_YCBBGTFD.CollectionType,
204
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.CollectionSection, {
204
205
  collection: data.subject
205
206
  })
206
207
  }),
207
208
  (0, import_app_framework.createSurface)({
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_HFBC3X66.SpacePluginSettings, {
212
- settings: subject.value
213
- })
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
+ }
214
218
  }),
215
219
  (0, import_app_framework.createSurface)({
216
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/menu-footer`,
220
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/menu-footer`,
217
221
  role: "menu-footer",
218
222
  filter: (data) => (0, import_echo.isEchoObject)(data.subject),
219
- component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.MenuFooter, {
223
+ component: ({ data }) => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.MenuFooter, {
220
224
  object: data.subject
221
225
  })
222
226
  }),
223
227
  (0, import_app_framework.createSurface)({
224
- id: `${import_chunk_WZR6OAN3.SPACE_PLUGIN}/status`,
228
+ id: `${import_chunk_AO4EW2RX.SPACE_PLUGIN}/status`,
225
229
  role: "status",
226
- component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_HFBC3X66.SyncStatus, null)
230
+ component: () => /* @__PURE__ */ import_react.default.createElement(import_chunk_AJRP7AD6.SyncStatus, null)
227
231
  })
228
232
  ]);
229
- //# sourceMappingURL=react-surface-QUY7D43M.cjs.map
233
+ //# sourceMappingURL=react-surface-75KRPQYT.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 { 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 ShareSpaceButton,\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';\nimport { COMPOSER_SPACE_LOCK } from '../util';\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 disposition: '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 disposition: '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 disposition: '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 { subject: SpaceSettingsDialogProps } => data.component === SPACE_SETTINGS_DIALOG,\n component: ({ data }) => <SpaceSettingsDialog {...data.subject} createInvitationUrl={createInvitationUrl} />,\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { subject: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.subject} />,\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 { subject: 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.subject} />;\n },\n }),\n createSurface({\n id: POPOVER_RENAME_SPACE,\n role: 'popover',\n filter: (data): data is { subject: Space } => data.component === POPOVER_RENAME_SPACE && isSpace(data.subject),\n component: ({ data }) => <PopoverRenameSpace space={data.subject} />,\n }),\n createSurface({\n id: POPOVER_RENAME_OBJECT,\n role: 'popover',\n filter: (data): data is { subject: ReactiveEchoObject<any> } =>\n data.component === POPOVER_RENAME_OBJECT && isReactiveObject(data.subject),\n component: ({ data }) => <PopoverRenameObject object={data.subject} />,\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 disposition: '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 disposition: '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 space && object ? (\n <>\n <SpacePresence object={object} />\n {space.properties[COMPOSER_SPACE_LOCK] ? null : <ShareSpaceButton space={space} />}\n </>\n ) : 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: 'settings',\n filter: (data): data is any => data.subject === SPACE_PLUGIN,\n component: () => {\n const settings = useCapability(Capabilities.SettingsStore).getStore<SpaceSettingsProps>(SPACE_PLUGIN)!.value;\n return <SpacePluginSettings settings={settings} />;\n },\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", "disposition", "CollectionMain", "collection", "SpaceSettingsPanel", "space", "isEchoObject", "BaseObjectSettings", "object", "AdvancedObjectSettings", "SPACE_SETTINGS_DIALOG", "SpaceSettingsDialog", "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", "COMPOSER_SPACE_LOCK", "ShareSpaceButton", "CollectionSection", "settings", "SettingsStore", "getStore", "value", "SpacePluginSettings", "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_RBBL22DJ_exports = {};
20
- __export(settings_RBBL22DJ_exports, {
19
+ var settings_KOVSPA3S_exports = {};
20
+ __export(settings_KOVSPA3S_exports, {
21
21
  default: () => settings_default
22
22
  });
23
- module.exports = __toCommonJS(settings_RBBL22DJ_exports);
24
- var import_chunk_SPCSJ2CY = require("./chunk-SPCSJ2CY.cjs");
25
- var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
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");
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_SPCSJ2CY.SpaceSettingsSchema,
34
- prefix: import_chunk_WZR6OAN3.SPACE_PLUGIN,
33
+ schema: import_chunk_YCBBGTFD.SpaceSettingsSchema,
34
+ prefix: import_chunk_AO4EW2RX.SPACE_PLUGIN,
35
35
  value: settings
36
36
  });
37
37
  };
38
- //# sourceMappingURL=settings-RBBL22DJ.cjs.map
38
+ //# sourceMappingURL=settings-KOVSPA3S.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_WHU4J6E5_exports = {};
20
- __export(spaces_ready_WHU4J6E5_exports, {
19
+ var spaces_ready_ILVGUHJH_exports = {};
20
+ __export(spaces_ready_ILVGUHJH_exports, {
21
21
  default: () => spaces_ready_default
22
22
  });
23
- module.exports = __toCommonJS(spaces_ready_WHU4J6E5_exports);
24
- var import_chunk_UX3U4RU2 = require("./chunk-UX3U4RU2.cjs");
25
- var import_chunk_MMXP2NHE = require("./chunk-MMXP2NHE.cjs");
26
- var import_chunk_SPCSJ2CY = require("./chunk-SPCSJ2CY.cjs");
27
- var import_chunk_WZR6OAN3 = require("./chunk-WZR6OAN3.cjs");
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");
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,7 +33,6 @@ 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");
37
36
  var import_metadata = require("@dxos/protocols/proto/dxos/echo/metadata");
38
37
  var import_react_client = require("@dxos/react-client");
39
38
  var import_echo = require("@dxos/react-client/echo");
@@ -47,43 +46,38 @@ var spaces_ready_default = async (context) => {
47
46
  const { dispatchPromise: dispatch } = context.requestCapability(import_app_framework.Capabilities.IntentDispatcher);
48
47
  const { graph } = context.requestCapability(import_app_framework.Capabilities.AppGraph);
49
48
  const layout = context.requestCapability(import_app_framework.Capabilities.Layout);
50
- const deck = context.requestCapability(import_plugin_deck.DeckCapabilities.DeckState);
49
+ const location = context.requestCapability(import_app_framework.Capabilities.Location);
51
50
  const attention = context.requestCapability(import_plugin_attention.AttentionCapabilities.Attention);
52
- const state = context.requestCapability(import_chunk_UX3U4RU2.SpaceCapabilities.MutableState);
51
+ const state = context.requestCapability(import_chunk_56NGXG2A.SpaceCapabilities.MutableState);
53
52
  const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
54
53
  const defaultSpace = client.spaces.default;
55
54
  await defaultSpace.waitUntilReady();
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_MMXP2NHE.COMPOSER_SPACE_LOCK] !== "boolean") {
63
- defaultSpace.properties[import_chunk_MMXP2NHE.COMPOSER_SPACE_LOCK] = true;
55
+ if (typeof defaultSpace.properties[import_chunk_5D4RWKTV.COMPOSER_SPACE_LOCK] !== "boolean") {
56
+ defaultSpace.properties[import_chunk_5D4RWKTV.COMPOSER_SPACE_LOCK] = true;
64
57
  }
65
58
  const { objects: [spacesOrder] } = await defaultSpace.db.query(import_echo.Filter.schema(import_echo_schema.Expando, {
66
- key: import_chunk_MMXP2NHE.SHARED
59
+ key: import_chunk_5D4RWKTV.SHARED
67
60
  })).run();
68
61
  if (!spacesOrder) {
69
62
  defaultSpace.db.add((0, import_live_object.create)({
70
- key: import_chunk_MMXP2NHE.SHARED,
63
+ key: import_chunk_5D4RWKTV.SHARED,
71
64
  order: []
72
65
  }));
73
66
  }
74
67
  subscriptions.add((0, import_core.scheduledEffect)(() => ({
75
- active: layout.active
76
- }), ({ active }) => {
77
- if (active.length !== 1) {
68
+ layoutMode: layout.layoutMode,
69
+ soloPart: location.active.solo?.[0]
70
+ }), ({ layoutMode, soloPart }) => {
71
+ if (layoutMode !== "solo" || !soloPart) {
78
72
  return;
79
73
  }
80
- const node = graph.findNode(active[0]);
81
- if (!node && active[0].length === import_echo.FQ_ID_LENGTH) {
74
+ const node = graph.findNode(soloPart.id);
75
+ if (!node && soloPart.id.length === import_echo.FQ_ID_LENGTH) {
82
76
  const timeout = setTimeout(async () => {
83
- const node2 = graph.findNode(active[0]);
77
+ const node2 = graph.findNode(soloPart.id);
84
78
  if (!node2) {
85
- await dispatch((0, import_app_framework.createIntent)(import_chunk_SPCSJ2CY.SpaceAction.WaitForObject, {
86
- id: active[0]
79
+ await dispatch((0, import_app_framework.createIntent)(import_chunk_YCBBGTFD.SpaceAction.WaitForObject, {
80
+ id: soloPart.id
87
81
  }));
88
82
  }
89
83
  }, WAIT_FOR_OBJECT_TIMEOUT);
@@ -101,15 +95,20 @@ var spaces_ready_default = async (context) => {
101
95
  });
102
96
  }).unsubscribe);
103
97
  subscriptions.add((0, import_core.scheduledEffect)(() => ({
104
- current: attention.current,
105
- active: layout.active,
106
- inactive: layout.inactive
107
- }), ({ current, active, inactive }) => {
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 }) => {
108
107
  const send = () => {
109
108
  const spaces = client.spaces.get();
110
109
  const identity = client.halo.identity.get();
111
- if (identity) {
112
- const idsBySpace = (0, import_util.reduceGroupBy)(active, (id) => {
110
+ if (identity && location.active) {
111
+ const idsBySpace = (0, import_util.reduceGroupBy)(open, (id) => {
113
112
  try {
114
113
  const [spaceId] = (0, import_echo.parseFullyQualifiedId)(id);
115
114
  return spaceId;
@@ -117,7 +116,7 @@ var spaces_ready_default = async (context) => {
117
116
  return null;
118
117
  }
119
118
  });
120
- const removedBySpace = (0, import_util.reduceGroupBy)(inactive, (id) => {
119
+ const removedBySpace = (0, import_util.reduceGroupBy)(closed, (id) => {
121
120
  try {
122
121
  const [spaceId] = (0, import_echo.parseFullyQualifiedId)(id);
123
122
  return spaceId;
@@ -138,7 +137,9 @@ var spaces_ready_default = async (context) => {
138
137
  }
139
138
  void space.postMessage("viewing", {
140
139
  identityKey: identity.identityKey.toHex(),
141
- attended: current,
140
+ attended: attention.current ? [
141
+ ...attention.current
142
+ ] : [],
142
143
  added,
143
144
  removed
144
145
  }).catch((err) => {
@@ -146,7 +147,7 @@ var spaces_ready_default = async (context) => {
146
147
  err: err.message
147
148
  }, {
148
149
  F: __dxlog_file,
149
- L: 155,
150
+ L: 156,
150
151
  S: void 0,
151
152
  C: (f, a) => f(...a)
152
153
  });
@@ -197,7 +198,7 @@ var spaces_ready_default = async (context) => {
197
198
  } catch (err) {
198
199
  import_log.log.catch(err, void 0, {
199
200
  F: __dxlog_file,
200
- L: 223,
201
+ L: 224,
201
202
  S: void 0,
202
203
  C: (f, a) => f(...a)
203
204
  });
@@ -207,4 +208,4 @@ var spaces_ready_default = async (context) => {
207
208
  subscriptions.clear();
208
209
  });
209
210
  };
210
- //# sourceMappingURL=spaces-ready-WHU4J6E5.cjs.map
211
+ //# sourceMappingURL=spaces-ready-ILVGUHJH.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, openIds, type PluginsContext, Capabilities } 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 { 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 location = context.requestCapability(Capabilities.Location);\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 // 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 () => ({\n layoutMode: layout.layoutMode,\n soloPart: location.active.solo?.[0],\n }),\n ({ layoutMode, soloPart }) => {\n if (layoutMode !== 'solo' || !soloPart) {\n return;\n }\n\n const node = graph.findNode(soloPart.id);\n if (!node && soloPart.id.length === FQ_ID_LENGTH) {\n const timeout = setTimeout(async () => {\n const node = graph.findNode(soloPart.id);\n if (!node) {\n await dispatch(createIntent(SpaceAction.WaitForObject, { id: soloPart.id }));\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 () => ({\n open: openIds(location.active, layout.layoutMode === 'solo' ? ['solo'] : ['main']),\n closed: [...location.closed],\n }),\n ({ open, closed }) => {\n const send = () => {\n const spaces = client.spaces.get();\n const identity = client.halo.identity.get();\n if (identity && location.active) {\n // Group parts by space for efficient messaging.\n const idsBySpace = reduceGroupBy(open, (id) => {\n try {\n const [spaceId] = parseFullyQualifiedId(id);\n return spaceId;\n } catch {\n return null;\n }\n });\n\n const removedBySpace = reduceGroupBy(closed, (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: attention.current ? [...attention.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", "location", "Location", "attention", "AttentionCapabilities", "Attention", "state", "SpaceCapabilities", "MutableState", "client", "ClientCapabilities", "Client", "defaultSpace", "spaces", "default", "waitUntilReady", "properties", "COMPOSER_SPACE_LOCK", "objects", "spacesOrder", "db", "query", "Filter", "schema", "Expando", "key", "SHARED", "run", "add", "create", "order", "scheduledEffect", "layoutMode", "soloPart", "active", "solo", "node", "findNode", "id", "length", "FQ_ID_LENGTH", "timeout", "setTimeout", "createIntent", "SpaceAction", "WaitForObject", "clearTimeout", "subscribe", "get", "SpaceState", "SPACE_REQUIRES_MIGRATION", "internal", "migrate", "filter", "space", "SPACE_READY", "forEach", "name", "spaceNames", "unsubscribe", "open", "openIds", "closed", "send", "identity", "halo", "idsBySpace", "reduceGroupBy", "spaceId", "parseFullyQualifiedId", "removedBySpace", "has", "set", "added", "removed", "find", "postMessage", "identityKey", "toHex", "attended", "current", "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_WPZC4JXB_exports = {};
20
- __export(state_WPZC4JXB_exports, {
19
+ var state_4UIOUKLJ_exports = {};
20
+ __export(state_4UIOUKLJ_exports, {
21
21
  default: () => state_default
22
22
  });
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");
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");
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_WZR6OAN3.SPACE_PLUGIN, {
32
+ const state = new import_local_storage.LocalStorageStore(import_chunk_AO4EW2RX.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_UX3U4RU2.SpaceCapabilities.State, state.values, () => {
56
+ return (0, import_app_framework.contributes)(import_chunk_56NGXG2A.SpaceCapabilities.State, state.values, () => {
57
57
  unsubscribe();
58
58
  state.close();
59
59
  });
60
60
  };
61
- //# sourceMappingURL=state-WPZC4JXB.cjs.map
61
+ //# sourceMappingURL=state-4UIOUKLJ.cjs.map