@dxos/plugin-space 0.6.12-main.5cc132e → 0.6.12-main.78ddbdf

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 (65) hide show
  1. package/dist/lib/browser/{chunk-DTVUOG2C.mjs → chunk-WBMH5WIP.mjs} +14 -2
  2. package/dist/lib/browser/chunk-WBMH5WIP.mjs.map +7 -0
  3. package/dist/lib/browser/index.mjs +400 -177
  4. package/dist/lib/browser/index.mjs.map +4 -4
  5. package/dist/lib/browser/meta.json +1 -1
  6. package/dist/lib/browser/types/index.mjs +7 -3
  7. package/dist/lib/node/{chunk-CVZPI2P3.cjs → chunk-GF3SRAQM.cjs} +20 -6
  8. package/dist/lib/node/chunk-GF3SRAQM.cjs.map +7 -0
  9. package/dist/lib/node/index.cjs +509 -289
  10. package/dist/lib/node/index.cjs.map +4 -4
  11. package/dist/lib/node/meta.json +1 -1
  12. package/dist/lib/node/types/index.cjs +14 -10
  13. package/dist/lib/node/types/index.cjs.map +2 -2
  14. package/dist/lib/node-esm/{chunk-LZEGRS7H.mjs → chunk-GM2YUC77.mjs} +3 -1
  15. package/dist/lib/node-esm/{chunk-LZEGRS7H.mjs.map → chunk-GM2YUC77.mjs.map} +1 -1
  16. package/dist/lib/node-esm/{chunk-DTVUOG2C.mjs → chunk-N5VC55UM.mjs} +16 -2
  17. package/dist/lib/node-esm/chunk-N5VC55UM.mjs.map +7 -0
  18. package/dist/lib/node-esm/index.mjs +402 -178
  19. package/dist/lib/node-esm/index.mjs.map +4 -4
  20. package/dist/lib/node-esm/meta.json +1 -1
  21. package/dist/lib/node-esm/meta.mjs +2 -1
  22. package/dist/lib/node-esm/types/index.mjs +8 -3
  23. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  24. package/dist/types/src/components/SaveStatus.d.ts.map +1 -1
  25. package/dist/types/src/components/ShareSpaceButton.stories.d.ts +2 -0
  26. package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +1 -1
  27. package/dist/types/src/components/SpaceMain/SpaceMain.d.ts.map +1 -1
  28. package/dist/types/src/components/SpacePresence.stories.d.ts +2 -0
  29. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  30. package/dist/types/src/components/SpaceSettings.d.ts.map +1 -1
  31. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +13 -0
  32. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -0
  33. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +115 -0
  34. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -0
  35. package/dist/types/src/components/SyncStatus/index.d.ts +2 -0
  36. package/dist/types/src/components/SyncStatus/index.d.ts.map +1 -0
  37. package/dist/types/src/components/SyncStatus/types.d.ts +14 -0
  38. package/dist/types/src/components/SyncStatus/types.d.ts.map +1 -0
  39. package/dist/types/src/components/index.d.ts +1 -0
  40. package/dist/types/src/components/index.d.ts.map +1 -1
  41. package/dist/types/src/translations.d.ts +2 -0
  42. package/dist/types/src/translations.d.ts.map +1 -1
  43. package/dist/types/src/types/thread.d.ts +13 -0
  44. package/dist/types/src/types/thread.d.ts.map +1 -1
  45. package/dist/types/src/types/types.d.ts +18 -1
  46. package/dist/types/src/types/types.d.ts.map +1 -1
  47. package/dist/types/src/util.d.ts +1 -4
  48. package/dist/types/src/util.d.ts.map +1 -1
  49. package/package.json +34 -32
  50. package/src/SpacePlugin.tsx +24 -13
  51. package/src/components/SaveStatus.tsx +6 -9
  52. package/src/components/SpaceMain/SpaceMain.tsx +1 -22
  53. package/src/components/SpaceSettings.tsx +32 -3
  54. package/src/components/SyncStatus/SyncStatus.stories.tsx +62 -0
  55. package/src/components/SyncStatus/SyncStatus.tsx +188 -0
  56. package/src/components/SyncStatus/index.ts +5 -0
  57. package/src/components/SyncStatus/types.ts +77 -0
  58. package/src/components/index.ts +1 -0
  59. package/src/translations.ts +2 -0
  60. package/src/types/thread.ts +9 -0
  61. package/src/types/types.ts +25 -1
  62. package/src/util.tsx +15 -50
  63. package/dist/lib/browser/chunk-DTVUOG2C.mjs.map +0 -7
  64. package/dist/lib/node/chunk-CVZPI2P3.cjs.map +0 -7
  65. package/dist/lib/node-esm/chunk-DTVUOG2C.mjs.map +0 -7
@@ -28,26 +28,27 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var node_exports = {};
30
30
  __export(node_exports, {
31
- ActorSchema: () => import_chunk_CVZPI2P3.ActorSchema,
31
+ ActorSchema: () => import_chunk_GF3SRAQM.ActorSchema,
32
32
  AwaitingObject: () => AwaitingObject,
33
33
  COMPOSER_SPACE_LOCK: () => COMPOSER_SPACE_LOCK,
34
- ChannelType: () => import_chunk_CVZPI2P3.ChannelType,
34
+ ChannelType: () => import_chunk_GF3SRAQM.ChannelType,
35
35
  CollectionMain: () => CollectionMain,
36
36
  CollectionSection: () => CollectionSection,
37
- CollectionType: () => import_chunk_CVZPI2P3.CollectionType,
38
- ContactType: () => import_chunk_CVZPI2P3.ContactType,
37
+ CollectionType: () => import_chunk_GF3SRAQM.CollectionType,
38
+ ContactType: () => import_chunk_GF3SRAQM.ContactType,
39
39
  EmptySpace: () => EmptySpace,
40
40
  EmptyTree: () => EmptyTree,
41
41
  FullPresence: () => FullPresence,
42
42
  MenuFooter: () => MenuFooter,
43
- MessageType: () => import_chunk_CVZPI2P3.MessageType,
43
+ MessageState: () => import_chunk_GF3SRAQM.MessageState,
44
+ MessageType: () => import_chunk_GF3SRAQM.MessageType,
44
45
  MissingObject: () => MissingObject,
45
46
  PersistenceStatus: () => PersistenceStatus,
46
47
  PopoverRenameObject: () => PopoverRenameObject,
47
48
  PopoverRenameSpace: () => PopoverRenameSpace,
48
49
  SHARED: () => SHARED,
49
50
  SPACES: () => SPACES,
50
- SPACE_DIRECTORY_HANDLE: () => import_chunk_CVZPI2P3.SPACE_DIRECTORY_HANDLE,
51
+ SPACE_DIRECTORY_HANDLE: () => import_chunk_GF3SRAQM.SPACE_DIRECTORY_HANDLE,
51
52
  SPACE_PLUGIN: () => import_chunk_6CNYF6YU.SPACE_PLUGIN,
52
53
  SPACE_PLUGIN_SHORT_ID: () => import_chunk_6CNYF6YU.SPACE_PLUGIN_SHORT_ID,
53
54
  SPACE_TYPE: () => SPACE_TYPE,
@@ -61,8 +62,11 @@ __export(node_exports, {
61
62
  SpacePlugin: () => SpacePlugin,
62
63
  SpacePresence: () => SpacePresence,
63
64
  SpaceSettings: () => SpaceSettings,
64
- ThreadStatus: () => import_chunk_CVZPI2P3.ThreadStatus,
65
- ThreadType: () => import_chunk_CVZPI2P3.ThreadType,
65
+ SyncStatus: () => SyncStatus,
66
+ SyncStatusDetail: () => SyncStatusDetail,
67
+ SyncStatusIndicator: () => SyncStatusIndicator,
68
+ ThreadStatus: () => import_chunk_GF3SRAQM.ThreadStatus,
69
+ ThreadType: () => import_chunk_GF3SRAQM.ThreadType,
66
70
  cloneObject: () => cloneObject,
67
71
  constructObjectActionGroups: () => constructObjectActionGroups,
68
72
  constructObjectActions: () => constructObjectActions,
@@ -75,15 +79,15 @@ __export(node_exports, {
75
79
  getNestedObjects: () => getNestedObjects,
76
80
  getSpaceDisplayName: () => getSpaceDisplayName,
77
81
  memoizeQuery: () => memoizeQuery,
82
+ parseSpaceInitPlugin: () => import_chunk_GF3SRAQM.parseSpaceInitPlugin,
78
83
  parseSpacePlugin: () => parseSpacePlugin,
79
84
  translations: () => translations_default
80
85
  });
81
86
  module.exports = __toCommonJS(node_exports);
82
87
  var import_chunk_6CNYF6YU = require("./chunk-6CNYF6YU.cjs");
83
- var import_chunk_CVZPI2P3 = require("./chunk-CVZPI2P3.cjs");
84
- var import_react = require("@phosphor-icons/react");
88
+ var import_chunk_GF3SRAQM = require("./chunk-GF3SRAQM.cjs");
85
89
  var import_signals_core = require("@preact/signals-core");
86
- var import_react2 = __toESM(require("react"));
90
+ var import_react = __toESM(require("react"));
87
91
  var import_app_framework = require("@dxos/app-framework");
88
92
  var import_async = require("@dxos/async");
89
93
  var import_echo_schema = require("@dxos/echo-schema");
@@ -97,73 +101,71 @@ var import_meta = require("@dxos/plugin-observability/meta");
97
101
  var import_react_client = require("@dxos/react-client");
98
102
  var import_echo = require("@dxos/react-client/echo");
99
103
  var import_react_ui = require("@dxos/react-ui");
100
- var import_react3 = require("@dxos/shell/react");
104
+ var import_react2 = require("@dxos/shell/react");
101
105
  var import_util = require("@dxos/util");
102
- var import_react4 = require("@phosphor-icons/react");
103
- var import_react5 = __toESM(require("react"));
106
+ var import_react3 = require("@phosphor-icons/react");
107
+ var import_react4 = __toESM(require("react"));
104
108
  var import_app_framework2 = require("@dxos/app-framework");
105
109
  var import_react_client2 = require("@dxos/react-client");
106
110
  var import_echo2 = require("@dxos/react-client/echo");
107
111
  var import_react_ui2 = require("@dxos/react-ui");
108
112
  var import_react_ui_theme = require("@dxos/react-ui-theme");
109
- var import_react6 = __toESM(require("react"));
113
+ var import_react5 = __toESM(require("react"));
110
114
  var import_react_ui3 = require("@dxos/react-ui");
111
115
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
112
- var import_react7 = __toESM(require("react"));
116
+ var import_react6 = __toESM(require("react"));
113
117
  var import_react_ui4 = require("@dxos/react-ui");
114
- var import_react8 = __toESM(require("react"));
118
+ var import_react7 = __toESM(require("react"));
115
119
  var import_react_ui5 = require("@dxos/react-ui");
116
120
  var import_react_ui_theme3 = require("@dxos/react-ui-theme");
117
- var import_react9 = __toESM(require("react"));
121
+ var import_react8 = __toESM(require("react"));
118
122
  var import_react_ui6 = require("@dxos/react-ui");
119
123
  var import_react_ui_theme4 = require("@dxos/react-ui-theme");
120
- var import_react10 = require("@phosphor-icons/react");
121
- var import_react11 = __toESM(require("react"));
124
+ var import_react9 = require("@phosphor-icons/react");
125
+ var import_react10 = __toESM(require("react"));
122
126
  var import_echo3 = require("@dxos/client/echo");
123
127
  var import_react_client3 = require("@dxos/react-client");
124
128
  var import_react_ui7 = require("@dxos/react-ui");
125
- var import_react12 = require("@phosphor-icons/react");
126
- var import_react13 = __toESM(require("react"));
127
129
  var import_app_framework3 = require("@dxos/app-framework");
128
130
  var import_echo_schema2 = require("@dxos/echo-schema");
129
131
  var import_invariant = require("@dxos/invariant");
130
132
  var import_migrations2 = require("@dxos/migrations");
131
133
  var import_plugin_graph2 = require("@dxos/plugin-graph");
132
134
  var import_echo4 = require("@dxos/react-client/echo");
133
- var import_react14 = __toESM(require("react"));
135
+ var import_react11 = __toESM(require("react"));
134
136
  var import_app_framework4 = require("@dxos/app-framework");
135
137
  var import_react_ui8 = require("@dxos/react-ui");
136
138
  var import_react_ui_theme5 = require("@dxos/react-ui-theme");
137
- var import_react15 = require("@phosphor-icons/react");
138
- var import_react16 = __toESM(require("react"));
139
+ var import_react12 = require("@phosphor-icons/react");
140
+ var import_react13 = __toESM(require("react"));
139
141
  var import_async2 = require("@dxos/async");
140
142
  var import_react_ui9 = require("@dxos/react-ui");
141
143
  var import_react_ui_theme6 = require("@dxos/react-ui-theme");
142
- var import_react17 = __toESM(require("react"));
144
+ var import_react14 = __toESM(require("react"));
143
145
  var import_log2 = require("@dxos/log");
144
146
  var import_react_ui10 = require("@dxos/react-ui");
145
- var import_react18 = __toESM(require("react"));
147
+ var import_react15 = __toESM(require("react"));
146
148
  var import_react_ui11 = require("@dxos/react-ui");
147
- var import_react19 = __toESM(require("react"));
149
+ var import_react16 = __toESM(require("react"));
148
150
  var import_app_framework5 = require("@dxos/app-framework");
149
151
  var import_react_ui12 = require("@dxos/react-ui");
150
- var import_react20 = require("@phosphor-icons/react");
151
- var import_react21 = __toESM(require("react"));
152
+ var import_react17 = require("@phosphor-icons/react");
153
+ var import_react18 = __toESM(require("react"));
152
154
  var import_app_framework6 = require("@dxos/app-framework");
153
155
  var import_echo5 = require("@dxos/react-client/echo");
154
156
  var import_react_ui13 = require("@dxos/react-ui");
155
157
  var import_react_ui_theme7 = require("@dxos/react-ui-theme");
156
- var import_react22 = require("@dxos/shell/react");
157
- var import_react23 = require("@phosphor-icons/react");
158
- var import_react24 = __toESM(require("react"));
158
+ var import_react19 = require("@dxos/shell/react");
159
+ var import_react20 = require("@phosphor-icons/react");
160
+ var import_react21 = __toESM(require("react"));
159
161
  var import_app_framework7 = require("@dxos/app-framework");
160
162
  var import_echo6 = require("@dxos/react-client/echo");
161
163
  var import_invitations = require("@dxos/react-client/invitations");
162
164
  var import_invitations2 = require("@dxos/react-client/invitations");
163
165
  var import_react_ui14 = require("@dxos/react-ui");
164
166
  var import_react_ui_theme8 = require("@dxos/react-ui-theme");
165
- var import_react25 = require("@dxos/shell/react");
166
- var import_react26 = __toESM(require("react"));
167
+ var import_react22 = require("@dxos/shell/react");
168
+ var import_react23 = __toESM(require("react"));
167
169
  var import_app_framework8 = require("@dxos/app-framework");
168
170
  var import_display_name = require("@dxos/display-name");
169
171
  var import_react_client4 = require("@dxos/react-client");
@@ -172,29 +174,36 @@ var import_halo = require("@dxos/react-client/halo");
172
174
  var import_react_ui15 = require("@dxos/react-ui");
173
175
  var import_react_ui_attention = require("@dxos/react-ui-attention");
174
176
  var import_util2 = require("@dxos/util");
175
- var import_react27 = __toESM(require("react"));
177
+ var import_react24 = __toESM(require("react"));
176
178
  var import_app_framework9 = require("@dxos/app-framework");
177
179
  var import_plugin_settings = require("@dxos/plugin-settings");
178
180
  var import_react_ui16 = require("@dxos/react-ui");
179
- var import_react28 = require("@phosphor-icons/react");
180
- var import_react29 = __toESM(require("react"));
181
+ var import_react25 = __toESM(require("react"));
181
182
  var import_context = require("@dxos/context");
182
183
  var import_plugin_status_bar = require("@dxos/plugin-status-bar");
183
184
  var import_react_client5 = require("@dxos/react-client");
184
185
  var import_react_ui17 = require("@dxos/react-ui");
186
+ var import_react26 = __toESM(require("react"));
187
+ var import_plugin_status_bar2 = require("@dxos/plugin-status-bar");
188
+ var import_react_ui18 = require("@dxos/react-ui");
189
+ var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
185
190
  var import_react_ui_theme9 = require("@dxos/react-ui-theme");
191
+ var import_react27 = require("react");
192
+ var import_context2 = require("@dxos/context");
193
+ var import_protocols = require("@dxos/protocols");
194
+ var import_react_client6 = require("@dxos/react-client");
186
195
  var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
187
196
  var TOAST_TIMEOUT = 24e4;
188
197
  var AwaitingObject = ({ id }) => {
189
- const [open, setOpen] = (0, import_react5.useState)(true);
190
- const [waiting, setWaiting] = (0, import_react5.useState)(true);
191
- const [found, setFound] = (0, import_react5.useState)(false);
198
+ const [open, setOpen] = (0, import_react4.useState)(true);
199
+ const [waiting, setWaiting] = (0, import_react4.useState)(true);
200
+ const [found, setFound] = (0, import_react4.useState)(false);
192
201
  const { t } = (0, import_react_ui2.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
193
202
  const intentPlugin = (0, import_app_framework2.useResolvePlugin)(import_app_framework2.parseIntentPlugin);
194
203
  const navigationPlugin = (0, import_app_framework2.useResolvePlugin)(import_app_framework2.parseNavigationPlugin);
195
204
  const client = (0, import_react_client2.useClient)();
196
205
  const objects = (0, import_echo2.useQuery)(client.spaces);
197
- (0, import_react5.useEffect)(() => {
206
+ (0, import_react4.useEffect)(() => {
198
207
  if (!id) {
199
208
  return;
200
209
  }
@@ -205,7 +214,7 @@ var AwaitingObject = ({ id }) => {
205
214
  }, [
206
215
  id
207
216
  ]);
208
- (0, import_react5.useEffect)(() => {
217
+ (0, import_react4.useEffect)(() => {
209
218
  if (objects.findIndex((object) => (0, import_echo2.fullyQualifiedId)(object) === id) > -1) {
210
219
  setFound(true);
211
220
  if (navigationPlugin?.provides.location.active === id) {
@@ -237,33 +246,33 @@ var AwaitingObject = ({ id }) => {
237
246
  });
238
247
  void handleClose();
239
248
  };
240
- return /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Root, {
249
+ return /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Root, {
241
250
  open,
242
251
  duration: TOAST_TIMEOUT,
243
252
  onOpenChange: setOpen
244
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Body, null, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Title, {
253
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Body, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Title, {
245
254
  classNames: "flex items-center gap-2"
246
- }, found ? /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, /* @__PURE__ */ import_react5.default.createElement(import_react4.CheckCircle, {
255
+ }, found ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CheckCircle, {
247
256
  className: (0, import_react_ui_theme.getSize)(5)
248
- }), /* @__PURE__ */ import_react5.default.createElement("span", null, t("found object label"))) : waiting ? /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, /* @__PURE__ */ import_react5.default.createElement(import_react4.CircleNotch, {
257
+ }), /* @__PURE__ */ import_react4.default.createElement("span", null, t("found object label"))) : waiting ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CircleNotch, {
249
258
  className: (0, import_react_ui_theme.mx)((0, import_react_ui_theme.getSize)(5), "animate-spin")
250
- }), /* @__PURE__ */ import_react5.default.createElement("span", null, t("waiting for object label"))) : /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, /* @__PURE__ */ import_react5.default.createElement(import_react4.CircleDashed, {
259
+ }), /* @__PURE__ */ import_react4.default.createElement("span", null, t("waiting for object label"))) : /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CircleDashed, {
251
260
  className: (0, import_react_ui_theme.getSize)(5)
252
- }), /* @__PURE__ */ import_react5.default.createElement("span", null, t("object not found label")))), /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Description, null, t(found ? "found object description" : waiting ? "waiting for object description" : "object not found description"))), /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Actions, null, found ? /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Action, {
261
+ }), /* @__PURE__ */ import_react4.default.createElement("span", null, t("object not found label")))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Description, null, t(found ? "found object description" : waiting ? "waiting for object description" : "object not found description"))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Actions, null, found ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Action, {
253
262
  altText: t("go to object alt"),
254
263
  asChild: true
255
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Button, {
264
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
256
265
  variant: "primary",
257
266
  onClick: handleNavigate
258
- }, t("go to object label"))), /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Close, {
267
+ }, t("go to object label"))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Close, {
259
268
  asChild: true
260
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Button, {
269
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
261
270
  onClick: handleClose
262
271
  }, t("close label", {
263
272
  ns: "appkit"
264
- })))) : /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Close, {
273
+ })))) : /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Close, {
265
274
  asChild: true
266
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Button, {
275
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
267
276
  onClick: handleClose
268
277
  }, t(waiting ? "close label" : "confirm label", {
269
278
  ns: "appkit"
@@ -271,33 +280,33 @@ var AwaitingObject = ({ id }) => {
271
280
  };
272
281
  var CollectionMain = ({ collection }) => {
273
282
  const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
274
- return /* @__PURE__ */ import_react6.default.createElement("div", {
283
+ return /* @__PURE__ */ import_react5.default.createElement("div", {
275
284
  role: "none",
276
285
  className: (0, import_react_ui_theme2.mx)(import_react_ui_theme2.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
277
286
  "data-testid": "composer.firstRunMessage"
278
- }, /* @__PURE__ */ import_react6.default.createElement("p", {
287
+ }, /* @__PURE__ */ import_react5.default.createElement("p", {
279
288
  role: "alert",
280
289
  className: (0, import_react_ui_theme2.mx)(import_react_ui_theme2.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
281
290
  }, collection.name ?? t("unnamed collection label")));
282
291
  };
283
292
  var CollectionSection = ({ collection }) => {
284
293
  const { t } = (0, import_react_ui4.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
285
- return /* @__PURE__ */ import_react7.default.createElement("div", {
294
+ return /* @__PURE__ */ import_react6.default.createElement("div", {
286
295
  className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
287
- }, /* @__PURE__ */ import_react7.default.createElement("span", {
296
+ }, /* @__PURE__ */ import_react6.default.createElement("span", {
288
297
  className: "truncate"
289
298
  }, collection.name ?? t("unnamed collection label")));
290
299
  };
291
300
  var EmptySpace = () => {
292
301
  const { t } = (0, import_react_ui5.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
293
- return /* @__PURE__ */ import_react8.default.createElement("div", {
302
+ return /* @__PURE__ */ import_react7.default.createElement("div", {
294
303
  role: "none",
295
304
  className: (0, import_react_ui_theme3.mx)("p-2 mli-2 mbe-2 text-center border border-dashed border-neutral-400/50 rounded-lg", import_react_ui_theme3.descriptionText)
296
305
  }, t("empty space message"));
297
306
  };
298
307
  var EmptyTree = () => {
299
308
  const { t } = (0, import_react_ui6.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
300
- return /* @__PURE__ */ import_react9.default.createElement("div", {
309
+ return /* @__PURE__ */ import_react8.default.createElement("div", {
301
310
  role: "none",
302
311
  className: (0, import_react_ui_theme4.mx)("p-2 mli-2 mbe-2 text-center border border-dashed border-neutral-400/50 rounded-lg", import_react_ui_theme4.descriptionText)
303
312
  }, t("empty tree message"));
@@ -371,8 +380,8 @@ var checkPendingMigration = (space) => {
371
380
  };
372
381
  var constructSpaceNode = ({ space, personal, namesCache, resolve }) => {
373
382
  const hasPendingMigration = checkPendingMigration(space);
374
- const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
375
- const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof import_chunk_CVZPI2P3.CollectionType ? getCollectionGraphNodePartials({
383
+ const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[import_chunk_GF3SRAQM.CollectionType.typename];
384
+ const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof import_chunk_GF3SRAQM.CollectionType ? getCollectionGraphNodePartials({
376
385
  collection,
377
386
  space,
378
387
  resolve
@@ -388,8 +397,7 @@ var constructSpaceNode = ({ space, personal, namesCache, resolve }) => {
388
397
  namesCache
389
398
  }),
390
399
  description: space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties.description,
391
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Planet, props),
392
- iconSymbol: "ph--planet--regular",
400
+ icon: "ph--planet--regular",
393
401
  disabled: space.state.get() !== import_echo4.SpaceState.SPACE_READY || hasPendingMigration,
394
402
  testId: "spacePlugin.space"
395
403
  }
@@ -402,7 +410,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
402
410
  if (state !== import_echo4.SpaceState.SPACE_READY || hasPendingMigration) {
403
411
  return [];
404
412
  }
405
- const collection = space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
413
+ const collection = space.properties[import_chunk_GF3SRAQM.CollectionType.typename];
406
414
  const actions = [
407
415
  {
408
416
  id: getId(import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT),
@@ -415,8 +423,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
415
423
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
416
424
  }
417
425
  ],
418
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Plus, props),
419
- iconSymbol: "ph--plus--regular",
426
+ icon: "ph--plus--regular",
420
427
  disposition: "toolbar",
421
428
  // TODO(wittjosiah): This is currently a navtree feature. Address this with cmd+k integration.
422
429
  // mainAreaDisposition: 'in-flow',
@@ -433,7 +440,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
433
440
  action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
434
441
  data: {
435
442
  target: collection,
436
- object: (0, import_echo_schema2.create)(import_chunk_CVZPI2P3.CollectionType, {
443
+ object: (0, import_echo_schema2.create)(import_chunk_GF3SRAQM.CollectionType, {
437
444
  objects: [],
438
445
  views: {}
439
446
  })
@@ -450,8 +457,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
450
457
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
451
458
  }
452
459
  ],
453
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.CardsThree, props),
454
- iconSymbol: "ph--cards-three--regular",
460
+ icon: "ph--cards-three--regular",
455
461
  testId: "spacePlugin.createCollection"
456
462
  }
457
463
  }
@@ -485,8 +491,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
485
491
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
486
492
  }
487
493
  ],
488
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Database, props),
489
- iconSymbol: "ph--database--regular",
494
+ icon: "ph--database--regular",
490
495
  disposition: "toolbar",
491
496
  mainAreaDisposition: "in-flow",
492
497
  disabled: migrating || import_migrations2.Migrations.running(space)
@@ -517,8 +522,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
517
522
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
518
523
  }
519
524
  ],
520
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Users, props),
521
- iconSymbol: "ph--users--regular",
525
+ icon: "ph--users--regular",
522
526
  disabled: locked,
523
527
  keyBinding: {
524
528
  macos: "meta+.",
@@ -545,8 +549,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
545
549
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
546
550
  }
547
551
  ],
548
- icon: locked ? (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.LockSimpleOpen, props) : (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.LockSimple, props),
549
- iconSymbol: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
552
+ icon: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
550
553
  }
551
554
  }, {
552
555
  id: getId(import_chunk_6CNYF6YU.SpaceAction.RENAME),
@@ -568,8 +571,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
568
571
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
569
572
  }
570
573
  ],
571
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.PencilSimpleLine, props),
572
- iconSymbol: "ph--pencil-simple-line--regular",
574
+ icon: "ph--pencil-simple-line--regular",
573
575
  keyBinding: {
574
576
  macos: "shift+F6",
575
577
  windows: "shift+F6"
@@ -598,8 +600,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
598
600
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
599
601
  }
600
602
  ],
601
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.X, props),
602
- iconSymbol: "ph--x--regular",
603
+ icon: "ph--x--regular",
603
604
  mainAreaDisposition: "menu",
604
605
  disabled: personal
605
606
  }
@@ -625,8 +626,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
625
626
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
626
627
  }
627
628
  ],
628
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.ClockCounterClockwise, props),
629
- iconSymbol: "ph--clock-counter-clockwise--regular",
629
+ icon: "ph--clock-counter-clockwise--regular",
630
630
  disposition: "toolbar",
631
631
  mainAreaDisposition: "in-flow"
632
632
  }
@@ -643,7 +643,7 @@ var createObjectNode = ({ object, space, resolve }) => {
643
643
  if (Object.keys(metadata).length === 0) {
644
644
  return void 0;
645
645
  }
646
- const partials = object instanceof import_chunk_CVZPI2P3.CollectionType ? getCollectionGraphNodePartials({
646
+ const partials = object instanceof import_chunk_GF3SRAQM.CollectionType ? getCollectionGraphNodePartials({
647
647
  collection: object,
648
648
  space,
649
649
  resolve
@@ -660,8 +660,7 @@ var createObjectNode = ({ object, space, resolve }) => {
660
660
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
661
661
  }
662
662
  ],
663
- icon: metadata.icon ?? (() => /* @__PURE__ */ import_react13.default.createElement(import_react12.Placeholder, null)),
664
- iconSymbol: metadata.iconSymbol ?? "ph--placeholder--regular",
663
+ icon: metadata.icon ?? "ph--placeholder--regular",
665
664
  testId: "spacePlugin.object",
666
665
  persistenceClass: "echo",
667
666
  persistenceKey: space?.id
@@ -669,7 +668,7 @@ var createObjectNode = ({ object, space, resolve }) => {
669
668
  };
670
669
  };
671
670
  var constructObjectActionGroups = ({ object, dispatch }) => {
672
- if (!(object instanceof import_chunk_CVZPI2P3.CollectionType)) {
671
+ if (!(object instanceof import_chunk_GF3SRAQM.CollectionType)) {
673
672
  return [];
674
673
  }
675
674
  const collection = object;
@@ -686,8 +685,7 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
686
685
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
687
686
  }
688
687
  ],
689
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Plus, props),
690
- iconSymbol: "ph--plus--regular",
688
+ icon: "ph--plus--regular",
691
689
  disposition: "toolbar",
692
690
  // TODO(wittjosiah): This is currently a navtree feature. Address this with cmd+k integration.
693
691
  // mainAreaDisposition: 'in-flow',
@@ -704,7 +702,7 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
704
702
  action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
705
703
  data: {
706
704
  target: collection,
707
- object: (0, import_echo_schema2.create)(import_chunk_CVZPI2P3.CollectionType, {
705
+ object: (0, import_echo_schema2.create)(import_chunk_GF3SRAQM.CollectionType, {
708
706
  objects: [],
709
707
  views: {}
710
708
  })
@@ -721,8 +719,7 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
721
719
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
722
720
  }
723
721
  ],
724
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.CardsThree, props),
725
- iconSymbol: "ph--cards-three--regular",
722
+ icon: "ph--cards-three--regular",
726
723
  testId: "spacePlugin.createCollection"
727
724
  }
728
725
  }
@@ -749,13 +746,12 @@ var constructObjectActions = ({ node, dispatch }) => {
749
746
  },
750
747
  properties: {
751
748
  label: [
752
- object instanceof import_chunk_CVZPI2P3.CollectionType ? "rename collection label" : "rename object label",
749
+ object instanceof import_chunk_GF3SRAQM.CollectionType ? "rename collection label" : "rename object label",
753
750
  {
754
751
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
755
752
  }
756
753
  ],
757
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.PencilSimpleLine, props),
758
- iconSymbol: "ph--pencil-simple-line--regular",
754
+ icon: "ph--pencil-simple-line--regular",
759
755
  // TODO(wittjosiah): Doesn't work.
760
756
  // keyBinding: 'shift+F6',
761
757
  testId: "spacePlugin.renameObject"
@@ -768,7 +764,7 @@ var constructObjectActions = ({ node, dispatch }) => {
768
764
  const graph = (0, import_plugin_graph2.getGraph)(node);
769
765
  const collection = graph.nodes(node, {
770
766
  relation: "inbound"
771
- }).find(({ data }) => data instanceof import_chunk_CVZPI2P3.CollectionType)?.data;
767
+ }).find(({ data }) => data instanceof import_chunk_GF3SRAQM.CollectionType)?.data;
772
768
  await dispatch([
773
769
  {
774
770
  action: import_chunk_6CNYF6YU.SpaceAction.REMOVE_OBJECT,
@@ -781,14 +777,13 @@ var constructObjectActions = ({ node, dispatch }) => {
781
777
  },
782
778
  properties: {
783
779
  label: [
784
- object instanceof import_chunk_CVZPI2P3.CollectionType ? "delete collection label" : "delete object label",
780
+ object instanceof import_chunk_GF3SRAQM.CollectionType ? "delete collection label" : "delete object label",
785
781
  {
786
782
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
787
783
  }
788
784
  ],
789
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Trash, props),
790
- iconSymbol: "ph--trash--regular",
791
- keyBinding: object instanceof import_chunk_CVZPI2P3.CollectionType ? void 0 : "shift+meta+Backspace",
785
+ icon: "ph--trash--regular",
786
+ keyBinding: object instanceof import_chunk_GF3SRAQM.CollectionType ? void 0 : "shift+meta+Backspace",
792
787
  testId: "spacePlugin.deleteObject"
793
788
  }
794
789
  },
@@ -806,8 +801,7 @@ var constructObjectActions = ({ node, dispatch }) => {
806
801
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
807
802
  }
808
803
  ],
809
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Link, props),
810
- iconSymbol: "ph--link--regular",
804
+ icon: "ph--link--regular",
811
805
  testId: "spacePlugin.copyLink"
812
806
  }
813
807
  }
@@ -848,7 +842,7 @@ var cloneObject = async (object, resolve) => {
848
842
  const serializer = metadata.serializer;
849
843
  (0, import_invariant.invariant)(serializer, `No serializer for type: ${typename}`, {
850
844
  F: __dxlog_file,
851
- L: 639,
845
+ L: 604,
852
846
  S: void 0,
853
847
  A: [
854
848
  "serializer",
@@ -870,22 +864,22 @@ var MenuFooter = ({ object }) => {
870
864
  const spaceName = space ? getSpaceDisplayName(space, {
871
865
  personal: client.spaces.default === space
872
866
  }) : "";
873
- return space ? /* @__PURE__ */ import_react11.default.createElement(import_react11.default.Fragment, null, /* @__PURE__ */ import_react11.default.createElement(import_react_ui7.DropdownMenu.Separator, null), /* @__PURE__ */ import_react11.default.createElement(import_react_ui7.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react11.default.createElement("dl", {
867
+ return space ? /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, null, /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.DropdownMenu.Separator, null), /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react10.default.createElement("dl", {
874
868
  className: "pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
875
- }, /* @__PURE__ */ import_react11.default.createElement("dt", {
869
+ }, /* @__PURE__ */ import_react10.default.createElement("dt", {
876
870
  className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
877
- }, t("location label")), /* @__PURE__ */ import_react11.default.createElement("dd", {
871
+ }, t("location label")), /* @__PURE__ */ import_react10.default.createElement("dd", {
878
872
  className: "line-clamp-3"
879
- }, /* @__PURE__ */ import_react11.default.createElement(import_react10.Planet, {
873
+ }, /* @__PURE__ */ import_react10.default.createElement(import_react9.Planet, {
880
874
  className: "inline-block mie-1"
881
875
  }), (0, import_react_ui7.toLocalizedString)(spaceName, t)))) : null;
882
876
  };
883
877
  var WAIT_FOR_OBJECT_TIMEOUT2 = 1e3;
884
878
  var MissingObject = ({ id }) => {
885
879
  const { t } = (0, import_react_ui8.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
886
- const [waiting, setWaiting] = (0, import_react14.useState)(false);
880
+ const [waiting, setWaiting] = (0, import_react11.useState)(false);
887
881
  const intentPlugin = (0, import_app_framework4.useResolvePlugin)(import_app_framework4.parseIntentPlugin);
888
- (0, import_react14.useEffect)(() => {
882
+ (0, import_react11.useEffect)(() => {
889
883
  if (!intentPlugin) {
890
884
  return;
891
885
  }
@@ -904,13 +898,13 @@ var MissingObject = ({ id }) => {
904
898
  intentPlugin,
905
899
  id
906
900
  ]);
907
- return /* @__PURE__ */ import_react14.default.createElement("div", {
901
+ return /* @__PURE__ */ import_react11.default.createElement("div", {
908
902
  role: "none",
909
903
  className: (0, import_react_ui_theme5.mx)(import_react_ui_theme5.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8")
910
- }, waiting ? /* @__PURE__ */ import_react14.default.createElement("p", {
904
+ }, waiting ? /* @__PURE__ */ import_react11.default.createElement("p", {
911
905
  role: "alert",
912
906
  className: (0, import_react_ui_theme5.mx)(import_react_ui_theme5.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg flex items-center justify-center p-8 font-normal text-lg")
913
- }, t("missing object message")) : /* @__PURE__ */ import_react14.default.createElement(import_react_ui8.Status, {
907
+ }, t("missing object message")) : /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Status, {
914
908
  indeterminate: true,
915
909
  "aria-label": "Initializing"
916
910
  }));
@@ -923,11 +917,11 @@ var Status2;
923
917
  })(Status2 || (Status2 = {}));
924
918
  var PersistenceStatus = ({ db }) => {
925
919
  const { t } = (0, import_react_ui9.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
926
- const [displayMessage, setDisplayMessage] = (0, import_react16.useState)(false);
927
- const [status, naturalSetStatus] = (0, import_react16.useState)(0);
928
- const [prevStatus, setPrevStatus] = (0, import_react16.useState)(0);
920
+ const [displayMessage, setDisplayMessage] = (0, import_react13.useState)(false);
921
+ const [status, naturalSetStatus] = (0, import_react13.useState)(0);
922
+ const [prevStatus, setPrevStatus] = (0, import_react13.useState)(0);
929
923
  const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
930
- (0, import_react16.useEffect)(() => {
924
+ (0, import_react13.useEffect)(() => {
931
925
  setPrevStatus(status);
932
926
  if (prevStatus !== status && status === 0) {
933
927
  setDisplayMessage(true);
@@ -939,44 +933,44 @@ var PersistenceStatus = ({ db }) => {
939
933
  ]);
940
934
  switch (status) {
941
935
  case 2:
942
- return /* @__PURE__ */ import_react16.default.createElement("div", {
936
+ return /* @__PURE__ */ import_react13.default.createElement("div", {
943
937
  className: "flex items-center"
944
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.Warning, {
938
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react12.Warning, {
945
939
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
946
- }), /* @__PURE__ */ import_react16.default.createElement("span", {
940
+ }), /* @__PURE__ */ import_react13.default.createElement("span", {
947
941
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.warningText)
948
942
  }, t("persistence error label")));
949
943
  case 1:
950
- return /* @__PURE__ */ import_react16.default.createElement("div", {
944
+ return /* @__PURE__ */ import_react13.default.createElement("div", {
951
945
  className: "flex items-center"
952
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.ArrowsCounterClockwise, {
946
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react12.ArrowsCounterClockwise, {
953
947
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
954
- }), /* @__PURE__ */ import_react16.default.createElement("span", {
948
+ }), /* @__PURE__ */ import_react13.default.createElement("span", {
955
949
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
956
950
  }, t("persistence pending label")));
957
951
  case 0:
958
952
  default:
959
- return /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.Tooltip.Root, {
953
+ return /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Root, {
960
954
  delayDuration: 400
961
- }, /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.Tooltip.Trigger, {
955
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Trigger, {
962
956
  role: "status",
963
957
  className: "flex items-center"
964
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.CheckCircle, {
958
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react12.CheckCircle, {
965
959
  className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
966
- }), displayMessage && /* @__PURE__ */ import_react16.default.createElement("span", {
960
+ }), displayMessage && /* @__PURE__ */ import_react13.default.createElement("span", {
967
961
  className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
968
- }, t("persisted locally label"))), /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.Tooltip.Portal, null, /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.Tooltip.Content, {
962
+ }, t("persisted locally label"))), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Portal, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Content, {
969
963
  classNames: "z-10"
970
- }, t("persisted locally message"), /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.Tooltip.Arrow, null))));
964
+ }, t("persisted locally message"), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Arrow, null))));
971
965
  }
972
966
  };
973
967
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
974
968
  var PopoverRenameObject = ({ object: obj }) => {
975
969
  const { t } = (0, import_react_ui10.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
976
- const doneButton = (0, import_react17.useRef)(null);
970
+ const doneButton = (0, import_react14.useRef)(null);
977
971
  const object = obj;
978
- const [name, setName] = (0, import_react17.useState)(object.name || object.title || "");
979
- const handleDone = (0, import_react17.useCallback)(() => {
972
+ const [name, setName] = (0, import_react14.useState)(object.name || object.title || "");
973
+ const handleDone = (0, import_react14.useCallback)(() => {
980
974
  try {
981
975
  object.name = name;
982
976
  } catch {
@@ -997,23 +991,23 @@ var PopoverRenameObject = ({ object: obj }) => {
997
991
  object,
998
992
  name
999
993
  ]);
1000
- return /* @__PURE__ */ import_react17.default.createElement("div", {
994
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
1001
995
  role: "none",
1002
996
  className: "p-1 flex gap-2"
1003
- }, /* @__PURE__ */ import_react17.default.createElement("div", {
997
+ }, /* @__PURE__ */ import_react14.default.createElement("div", {
1004
998
  role: "none",
1005
999
  className: "flex-1"
1006
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Input.Root, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Input.Label, {
1000
+ }, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.Root, null, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.Label, {
1007
1001
  srOnly: true
1008
- }, t("object name label")), /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Input.TextInput, {
1002
+ }, t("object name label")), /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.TextInput, {
1009
1003
  placeholder: t("object title placeholder"),
1010
1004
  value: name,
1011
1005
  "data-testid": "spacePlugin.renameObject.input",
1012
1006
  onChange: ({ target: { value } }) => setName(value),
1013
1007
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1014
- }))), /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Popover.Close, {
1008
+ }))), /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Popover.Close, {
1015
1009
  asChild: true
1016
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Button, {
1010
+ }, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Button, {
1017
1011
  ref: doneButton,
1018
1012
  classNames: "self-stretch",
1019
1013
  onClick: handleDone
@@ -1023,32 +1017,32 @@ var PopoverRenameObject = ({ object: obj }) => {
1023
1017
  };
1024
1018
  var PopoverRenameSpace = ({ space }) => {
1025
1019
  const { t } = (0, import_react_ui11.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1026
- const doneButton = (0, import_react18.useRef)(null);
1027
- const [name, setName] = (0, import_react18.useState)(space.properties.name ?? "");
1028
- const handleDone = (0, import_react18.useCallback)(() => {
1020
+ const doneButton = (0, import_react15.useRef)(null);
1021
+ const [name, setName] = (0, import_react15.useState)(space.properties.name ?? "");
1022
+ const handleDone = (0, import_react15.useCallback)(() => {
1029
1023
  space.properties.name = name;
1030
1024
  }, [
1031
1025
  space,
1032
1026
  name
1033
1027
  ]);
1034
- return /* @__PURE__ */ import_react18.default.createElement("div", {
1028
+ return /* @__PURE__ */ import_react15.default.createElement("div", {
1035
1029
  role: "none",
1036
1030
  className: "p-1 flex gap-2"
1037
- }, /* @__PURE__ */ import_react18.default.createElement("div", {
1031
+ }, /* @__PURE__ */ import_react15.default.createElement("div", {
1038
1032
  role: "none",
1039
1033
  className: "flex-1"
1040
- }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Input.Root, null, /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Input.Label, {
1034
+ }, /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Input.Root, null, /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Input.Label, {
1041
1035
  srOnly: true
1042
- }, t("space name label")), /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Input.TextInput, {
1036
+ }, t("space name label")), /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Input.TextInput, {
1043
1037
  defaultValue: space.properties.name ?? "",
1044
1038
  placeholder: t("unnamed space label"),
1045
1039
  onChange: ({ target: { value } }) => setName(value),
1046
1040
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
1047
1041
  // Currently this is not possible because Radix does not expose the popover context.
1048
1042
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1049
- }))), /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Popover.Close, {
1043
+ }))), /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Popover.Close, {
1050
1044
  asChild: true
1051
- }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Button, {
1045
+ }, /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Button, {
1052
1046
  ref: doneButton,
1053
1047
  classNames: "self-stretch",
1054
1048
  onClick: handleDone
@@ -1058,7 +1052,7 @@ var PopoverRenameSpace = ({ space }) => {
1058
1052
  };
1059
1053
  var ShareSpaceButton = ({ spaceId }) => {
1060
1054
  const dispatch = (0, import_app_framework5.useIntentDispatcher)();
1061
- return /* @__PURE__ */ import_react19.default.createElement(ShareSpaceButtonImpl, {
1055
+ return /* @__PURE__ */ import_react16.default.createElement(ShareSpaceButtonImpl, {
1062
1056
  onClick: () => dispatch({
1063
1057
  action: import_chunk_6CNYF6YU.SpaceAction.SHARE,
1064
1058
  data: {
@@ -1069,7 +1063,7 @@ var ShareSpaceButton = ({ spaceId }) => {
1069
1063
  };
1070
1064
  var ShareSpaceButtonImpl = ({ onClick }) => {
1071
1065
  const { t } = (0, import_react_ui12.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1072
- return /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.Button, {
1066
+ return /* @__PURE__ */ import_react16.default.createElement(import_react_ui12.Button, {
1073
1067
  "data-testid": "spacePlugin.shareSpaceButton",
1074
1068
  onClick,
1075
1069
  classNames: "mli-1"
@@ -1079,9 +1073,9 @@ var activeActionKeyStorageKey = "dxos:react-shell/space-manager/active-action";
1079
1073
  var Presence = import_echo6.SpaceMember.PresenceState;
1080
1074
  var handleCreateInvitationUrl = (invitationCode) => `${origin}?spaceInvitationCode=${invitationCode}`;
1081
1075
  var SpaceMemberList = ({ members }) => {
1082
- return members.length > 0 ? /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.List, {
1076
+ return members.length > 0 ? /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.List, {
1083
1077
  classNames: "col-start-2 col-end-5 gap-y-1 grid grid-cols-subgrid items-center"
1084
- }, members.map((member) => /* @__PURE__ */ import_react24.default.createElement(import_react25.IdentityListItem, {
1078
+ }, members.map((member) => /* @__PURE__ */ import_react21.default.createElement(import_react22.IdentityListItem, {
1085
1079
  classNames: "contents",
1086
1080
  key: member.identity.identityKey.toHex(),
1087
1081
  identity: member.identity,
@@ -1125,8 +1119,8 @@ var SpaceMembersSection = ({ space }) => {
1125
1119
  description: t("invite one description", {
1126
1120
  ns: "os"
1127
1121
  }),
1128
- icon: import_react23.UserPlus,
1129
- onClick: (0, import_react24.useCallback)(() => {
1122
+ icon: import_react20.UserPlus,
1123
+ onClick: (0, import_react21.useCallback)(() => {
1130
1124
  space.share?.({
1131
1125
  type: import_invitations2.Invitation.Type.INTERACTIVE,
1132
1126
  authMethod: import_invitations2.Invitation.AuthMethod.SHARED_SECRET
@@ -1142,8 +1136,8 @@ var SpaceMembersSection = ({ space }) => {
1142
1136
  description: t("invite many description", {
1143
1137
  ns: "os"
1144
1138
  }),
1145
- icon: import_react23.UsersThree,
1146
- onClick: (0, import_react24.useCallback)(() => {
1139
+ icon: import_react20.UsersThree,
1140
+ onClick: (0, import_react21.useCallback)(() => {
1147
1141
  space.share?.({
1148
1142
  type: import_invitations2.Invitation.Type.INTERACTIVE,
1149
1143
  authMethod: import_invitations2.Invitation.AuthMethod.NONE,
@@ -1154,7 +1148,7 @@ var SpaceMembersSection = ({ space }) => {
1154
1148
  ])
1155
1149
  }
1156
1150
  };
1157
- const [activeActionKey, setInternalActiveActionKey] = (0, import_react24.useState)(localStorage.getItem(activeActionKeyStorageKey) ?? "inviteOne");
1151
+ const [activeActionKey, setInternalActiveActionKey] = (0, import_react21.useState)(localStorage.getItem(activeActionKeyStorageKey) ?? "inviteOne");
1158
1152
  const setActiveActionKey = (nextKey) => {
1159
1153
  setInternalActiveActionKey(nextKey);
1160
1154
  localStorage.setItem(activeActionKeyStorageKey, nextKey);
@@ -1167,101 +1161,101 @@ var SpaceMembersSection = ({ space }) => {
1167
1161
  [Presence.ONLINE]: [],
1168
1162
  [Presence.OFFLINE]: []
1169
1163
  });
1170
- return /* @__PURE__ */ import_react24.default.createElement("section", {
1164
+ return /* @__PURE__ */ import_react21.default.createElement("section", {
1171
1165
  className: "mbe-4 col-span-3 grid gap-y-2 grid-cols-subgrid auto-rows-min"
1172
- }, /* @__PURE__ */ import_react24.default.createElement("h2", {
1166
+ }, /* @__PURE__ */ import_react21.default.createElement("h2", {
1173
1167
  className: "contents"
1174
- }, /* @__PURE__ */ import_react24.default.createElement(import_react23.UsersThree, {
1168
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react20.UsersThree, {
1175
1169
  weight: "duotone",
1176
1170
  className: (0, import_react_ui_theme8.mx)((0, import_react_ui_theme8.getSize)(5), "place-self-center")
1177
- }), /* @__PURE__ */ import_react24.default.createElement("span", {
1171
+ }), /* @__PURE__ */ import_react21.default.createElement("span", {
1178
1172
  className: "text-lg col-span-2"
1179
- }, t("space members label"))), /* @__PURE__ */ import_react24.default.createElement("h3", {
1173
+ }, t("space members label"))), /* @__PURE__ */ import_react21.default.createElement("h3", {
1180
1174
  className: "col-start-2 col-span-3 text-sm italic text-description"
1181
- }, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.List, {
1175
+ }, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.List, {
1182
1176
  classNames: "col-start-2 col-span-2 gap-y-2 grid grid-cols-[var(--rail-size)_1fr_var(--rail-action)_var(--rail-action)]"
1183
- }, invitations.map((invitation) => /* @__PURE__ */ import_react24.default.createElement(import_react25.InvitationListItem, {
1177
+ }, invitations.map((invitation) => /* @__PURE__ */ import_react21.default.createElement(import_react22.InvitationListItem, {
1184
1178
  reverseEffects: true,
1185
1179
  classNames: "pis-0 pie-0 gap-0 col-span-4 grid grid-cols-subgrid",
1186
1180
  key: invitation.get().invitationId,
1187
1181
  invitation,
1188
1182
  send: handleInvitationSelect,
1189
1183
  createInvitationUrl: handleCreateInvitationUrl
1190
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.ButtonGroup, {
1184
+ }))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.ButtonGroup, {
1191
1185
  classNames: "col-start-2 col-end-4 grid grid-cols-[1fr_var(--rail-action)] place-self-grow gap-px"
1192
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.Button, {
1186
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.Button, {
1193
1187
  classNames: "gap-2",
1194
1188
  onClick: activeAction.onClick
1195
- }, /* @__PURE__ */ import_react24.default.createElement(activeAction.icon, {
1189
+ }, /* @__PURE__ */ import_react21.default.createElement(activeAction.icon, {
1196
1190
  className: (0, import_react_ui_theme8.getSize)(5)
1197
- }), /* @__PURE__ */ import_react24.default.createElement("span", null, t(activeAction.label, {
1191
+ }), /* @__PURE__ */ import_react21.default.createElement("span", null, t(activeAction.label, {
1198
1192
  ns: "os"
1199
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.Trigger, {
1193
+ }))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Root, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Trigger, {
1200
1194
  asChild: true
1201
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.Button, {
1195
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.Button, {
1202
1196
  classNames: "pli-0"
1203
- }, /* @__PURE__ */ import_react24.default.createElement(import_react23.CaretDown, {
1197
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react20.CaretDown, {
1204
1198
  className: (0, import_react_ui_theme8.getSize)(4)
1205
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.Content, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.Viewport, null, Object.entries(inviteActions).map(([id, action]) => {
1206
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.CheckboxItem, {
1199
+ }))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Content, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Viewport, null, Object.entries(inviteActions).map(([id, action]) => {
1200
+ return /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.CheckboxItem, {
1207
1201
  key: id,
1208
1202
  "aria-labelledby": `${id}__label`,
1209
1203
  "aria-describedby": `${id}__description`,
1210
1204
  checked: activeActionKey === id,
1211
1205
  onCheckedChange: (checked) => checked && setActiveActionKey(id),
1212
1206
  classNames: "gap-2"
1213
- }, action.icon && /* @__PURE__ */ import_react24.default.createElement(action.icon, {
1207
+ }, action.icon && /* @__PURE__ */ import_react21.default.createElement(action.icon, {
1214
1208
  className: (0, import_react_ui_theme8.getSize)(5)
1215
- }), /* @__PURE__ */ import_react24.default.createElement("div", {
1209
+ }), /* @__PURE__ */ import_react21.default.createElement("div", {
1216
1210
  role: "none",
1217
1211
  className: "flex-1 min-is-0 space-b-1"
1218
- }, /* @__PURE__ */ import_react24.default.createElement("p", {
1212
+ }, /* @__PURE__ */ import_react21.default.createElement("p", {
1219
1213
  id: `${id}__label`
1220
1214
  }, t(action.label, {
1221
1215
  ns: "os"
1222
- })), action.description && /* @__PURE__ */ import_react24.default.createElement("p", {
1216
+ })), action.description && /* @__PURE__ */ import_react21.default.createElement("p", {
1223
1217
  id: `${id}__description`,
1224
1218
  className: import_react_ui_theme8.descriptionText
1225
1219
  }, t(action.description, {
1226
1220
  ns: "os"
1227
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.ItemIndicator, {
1221
+ }))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.ItemIndicator, {
1228
1222
  asChild: true
1229
- }, /* @__PURE__ */ import_react24.default.createElement(import_react23.Check, {
1223
+ }, /* @__PURE__ */ import_react21.default.createElement(import_react20.Check, {
1230
1224
  className: (0, import_react_ui_theme8.getSize)(4)
1231
1225
  })));
1232
- })), /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.Arrow, null)))), members[Presence.ONLINE].length + members[Presence.OFFLINE].length < 1 ? /* @__PURE__ */ import_react24.default.createElement("p", {
1226
+ })), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Arrow, null)))), members[Presence.ONLINE].length + members[Presence.OFFLINE].length < 1 ? /* @__PURE__ */ import_react21.default.createElement("p", {
1233
1227
  className: (0, import_react_ui_theme8.mx)(import_react_ui_theme8.descriptionText, "text-center is-full mlb-2")
1234
1228
  }, t("empty space members message", {
1235
1229
  ns: "os"
1236
- })) : /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, /* @__PURE__ */ import_react24.default.createElement("h3", {
1230
+ })) : /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement("h3", {
1237
1231
  className: "col-start-2 col-end-5 text-sm italic text-description"
1238
1232
  }, t("active space members heading", {
1239
1233
  count: members[Presence.ONLINE].length
1240
- })), /* @__PURE__ */ import_react24.default.createElement(SpaceMemberList, {
1234
+ })), /* @__PURE__ */ import_react21.default.createElement(SpaceMemberList, {
1241
1235
  members: members[Presence.ONLINE]
1242
- }), /* @__PURE__ */ import_react24.default.createElement("h3", {
1236
+ }), /* @__PURE__ */ import_react21.default.createElement("h3", {
1243
1237
  className: "col-start-2 col-end-5 text-sm italic text-description"
1244
1238
  }, t("inactive space members heading", {
1245
1239
  count: members[Presence.OFFLINE].length
1246
- })), /* @__PURE__ */ import_react24.default.createElement(SpaceMemberList, {
1240
+ })), /* @__PURE__ */ import_react21.default.createElement(SpaceMemberList, {
1247
1241
  members: members[Presence.OFFLINE]
1248
1242
  })));
1249
1243
  };
1250
1244
  var KeyShortcuts = () => {
1251
1245
  const { t } = (0, import_react_ui13.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1252
- return /* @__PURE__ */ import_react21.default.createElement("section", {
1246
+ return /* @__PURE__ */ import_react18.default.createElement("section", {
1253
1247
  className: "mbe-4 col-span-4 md:col-start-5 md:col-end-7 grid grid-cols-subgrid gap-y-2 auto-rows-min"
1254
- }, /* @__PURE__ */ import_react21.default.createElement("h2", {
1248
+ }, /* @__PURE__ */ import_react18.default.createElement("h2", {
1255
1249
  className: "contents"
1256
- }, /* @__PURE__ */ import_react21.default.createElement(import_react20.Command, {
1250
+ }, /* @__PURE__ */ import_react18.default.createElement(import_react17.Command, {
1257
1251
  weight: "duotone",
1258
1252
  className: (0, import_react_ui_theme7.mx)((0, import_react_ui_theme7.getSize)(5), "place-self-center")
1259
- }), /* @__PURE__ */ import_react21.default.createElement("span", {
1253
+ }), /* @__PURE__ */ import_react18.default.createElement("span", {
1260
1254
  className: "text-lg col-span-2 md:col-span-1"
1261
- }, t("keyshortcuts label"))), /* @__PURE__ */ import_react21.default.createElement("div", {
1255
+ }, t("keyshortcuts label"))), /* @__PURE__ */ import_react18.default.createElement("div", {
1262
1256
  role: "none",
1263
1257
  className: "col-start-2 col-end-4 md:col-end-5 pie-2"
1264
- }, /* @__PURE__ */ import_react21.default.createElement(import_app_framework6.Surface, {
1258
+ }, /* @__PURE__ */ import_react18.default.createElement(import_app_framework6.Surface, {
1265
1259
  role: "keyshortcuts"
1266
1260
  })));
1267
1261
  };
@@ -1270,7 +1264,7 @@ var SpaceMain = ({ space, role }) => {
1270
1264
  const state = space.state.get();
1271
1265
  const ready = state === import_echo5.SpaceState.SPACE_READY;
1272
1266
  const Root = role === "main" ? import_react_ui13.Main.Content : "div";
1273
- return /* @__PURE__ */ import_react21.default.createElement(import_react22.ClipboardProvider, null, /* @__PURE__ */ import_react21.default.createElement(Root, {
1267
+ return /* @__PURE__ */ import_react18.default.createElement(import_react19.ClipboardProvider, null, /* @__PURE__ */ import_react18.default.createElement(Root, {
1274
1268
  ...role === "main" ? {
1275
1269
  classNames: [
1276
1270
  import_react_ui_theme7.topbarBlockPaddingStart,
@@ -1283,9 +1277,9 @@ var SpaceMain = ({ space, role }) => {
1283
1277
  },
1284
1278
  "data-testid": `spacePlugin.${role}`,
1285
1279
  "data-isready": ready ? "true" : "false"
1286
- }, ready && /* @__PURE__ */ import_react21.default.createElement(SpaceMembersSection, {
1280
+ }, ready && /* @__PURE__ */ import_react18.default.createElement(SpaceMembersSection, {
1287
1281
  space
1288
- }), /* @__PURE__ */ import_react21.default.createElement(KeyShortcuts, null)));
1282
+ }), /* @__PURE__ */ import_react18.default.createElement(KeyShortcuts, null)));
1289
1283
  };
1290
1284
  var REFRESH_INTERVAL = 5e3;
1291
1285
  var ACTIVITY_DURATION = 3e4;
@@ -1298,13 +1292,13 @@ var SpacePresence = ({ object, spaceKey }) => {
1298
1292
  const identity = (0, import_halo.useIdentity)();
1299
1293
  const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo7.getSpace)(object);
1300
1294
  const spaceMembers = (0, import_echo7.useMembers)(space?.key);
1301
- const [_moment, setMoment] = (0, import_react26.useState)(Date.now());
1302
- (0, import_react26.useEffect)(() => {
1295
+ const [_moment, setMoment] = (0, import_react23.useState)(Date.now());
1296
+ (0, import_react23.useEffect)(() => {
1303
1297
  const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
1304
1298
  return () => clearInterval(interval);
1305
1299
  }, []);
1306
- const memberOnline = (0, import_react26.useCallback)((member) => member.presence === 1, []);
1307
- const memberIsNotSelf = (0, import_react26.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1300
+ const memberOnline = (0, import_react23.useCallback)((member) => member.presence === 1, []);
1301
+ const memberIsNotSelf = (0, import_react23.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1308
1302
  identity?.identityKey
1309
1303
  ]);
1310
1304
  if (!identity || !spacePlugin || !space) {
@@ -1322,9 +1316,9 @@ var SpacePresence = ({ object, spaceKey }) => {
1322
1316
  lastSeen
1323
1317
  };
1324
1318
  }).toSorted((a, b) => a.lastSeen - b.lastSeen);
1325
- return density === "fine" ? /* @__PURE__ */ import_react26.default.createElement(SmallPresence, {
1319
+ return density === "fine" ? /* @__PURE__ */ import_react23.default.createElement(SmallPresence, {
1326
1320
  count: membersForObject.length
1327
- }) : /* @__PURE__ */ import_react26.default.createElement(FullPresence, {
1321
+ }) : /* @__PURE__ */ import_react23.default.createElement(FullPresence, {
1328
1322
  members: membersForObject
1329
1323
  });
1330
1324
  };
@@ -1334,38 +1328,38 @@ var FullPresence = (props) => {
1334
1328
  if (members.length === 0) {
1335
1329
  return null;
1336
1330
  }
1337
- return /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.AvatarGroup.Root, {
1331
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.AvatarGroup.Root, {
1338
1332
  size,
1339
1333
  classNames: "mbs-2 mie-4",
1340
1334
  "data-testid": "spacePlugin.presence"
1341
- }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Root, {
1335
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Root, {
1342
1336
  key: member.identity.identityKey.toHex()
1343
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Trigger, null, /* @__PURE__ */ import_react26.default.createElement(PrensenceAvatar, {
1337
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Trigger, null, /* @__PURE__ */ import_react23.default.createElement(PrensenceAvatar, {
1344
1338
  identity: member.identity,
1345
1339
  group: true,
1346
1340
  match: member.currentlyAttended,
1347
1341
  index: members.length - i,
1348
1342
  onClick: () => onMemberClick?.(member)
1349
- })), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Content, {
1343
+ })), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Content, {
1350
1344
  side: "bottom"
1351
- }, /* @__PURE__ */ import_react26.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Root, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Trigger, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.AvatarGroupItem.Root, {
1345
+ }, /* @__PURE__ */ import_react23.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Root, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Trigger, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.AvatarGroupItem.Root, {
1352
1346
  status: "inactive"
1353
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Frame, {
1347
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Frame, {
1354
1348
  style: {
1355
1349
  zIndex: members.length - 4
1356
1350
  }
1357
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Fallback, {
1351
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Fallback, {
1358
1352
  text: `+${members.length - 3}`
1359
- })))), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Content, {
1353
+ })))), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Content, {
1360
1354
  side: "bottom"
1361
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Arrow, null), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.List, {
1355
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Arrow, null), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.List, {
1362
1356
  classNames: "max-h-56 overflow-y-auto"
1363
- }, members.map((member) => /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.ListItem.Root, {
1357
+ }, members.map((member) => /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.ListItem.Root, {
1364
1358
  key: member.identity.identityKey.toHex(),
1365
1359
  classNames: "flex gap-2 items-center cursor-pointer mbe-2",
1366
1360
  onClick: () => onMemberClick?.(member),
1367
1361
  "data-testid": "identity-list-item"
1368
- }, /* @__PURE__ */ import_react26.default.createElement(PrensenceAvatar, {
1362
+ }, /* @__PURE__ */ import_react23.default.createElement(PrensenceAvatar, {
1369
1363
  identity: member.identity,
1370
1364
  showName: true,
1371
1365
  match: member.currentlyAttended
@@ -1375,10 +1369,10 @@ var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) =>
1375
1369
  const Root = group ? import_react_ui15.AvatarGroupItem.Root : import_react_ui15.Avatar.Root;
1376
1370
  const status = match ? "current" : "active";
1377
1371
  const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
1378
- return /* @__PURE__ */ import_react26.default.createElement(Root, {
1372
+ return /* @__PURE__ */ import_react23.default.createElement(Root, {
1379
1373
  status,
1380
1374
  hue: identity.profile?.data?.hue || fallbackValue.hue
1381
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Frame, {
1375
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Frame, {
1382
1376
  "data-testid": "spacePlugin.presence.member",
1383
1377
  "data-status": status,
1384
1378
  ...index ? {
@@ -1387,43 +1381,44 @@ var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) =>
1387
1381
  }
1388
1382
  } : {},
1389
1383
  onClick: () => onClick?.()
1390
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Fallback, {
1384
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Fallback, {
1391
1385
  text: identity.profile?.data?.emoji || fallbackValue.emoji
1392
- })), showName && /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Label, {
1386
+ })), showName && /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Label, {
1393
1387
  classNames: "text-sm truncate pli-2"
1394
1388
  }, getName(identity)));
1395
1389
  };
1396
1390
  var SmallPresenceLive = ({ viewers }) => {
1397
- const [moment, setMoment] = (0, import_react26.useState)(Date.now());
1398
- (0, import_react26.useEffect)(() => {
1391
+ const [moment, setMoment] = (0, import_react23.useState)(Date.now());
1392
+ (0, import_react23.useEffect)(() => {
1399
1393
  const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
1400
1394
  return () => clearInterval(interval);
1401
1395
  }, []);
1402
1396
  const activeViewers = viewers ? Array.from(viewers.values()).filter(({ lastSeen }) => moment - lastSeen < ACTIVITY_DURATION) : [];
1403
- return /* @__PURE__ */ import_react26.default.createElement(SmallPresence, {
1397
+ return /* @__PURE__ */ import_react23.default.createElement(SmallPresence, {
1404
1398
  count: activeViewers.length
1405
1399
  });
1406
1400
  };
1407
1401
  var SmallPresence = ({ count }) => {
1408
1402
  const { t } = (0, import_react_ui15.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1409
- return /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Root, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Trigger, {
1403
+ return /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Root, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Trigger, {
1410
1404
  asChild: true
1411
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui_attention.AttentionGlyph, {
1405
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui_attention.AttentionGlyph, {
1412
1406
  presence: count > 1 ? "many" : count === 1 ? "one" : "none",
1413
1407
  classNames: "self-center mie-1"
1414
- })), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Content, {
1408
+ })), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Content, {
1415
1409
  side: "bottom",
1416
1410
  classNames: "z-[70]"
1417
- }, /* @__PURE__ */ import_react26.default.createElement("span", null, t("presence label", {
1411
+ }, /* @__PURE__ */ import_react23.default.createElement("span", null, t("presence label", {
1418
1412
  count
1419
- })), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Arrow, null))));
1413
+ })), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Arrow, null))));
1420
1414
  };
1421
1415
  var SpaceSettings = ({ settings }) => {
1422
1416
  const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1423
1417
  const dispatch = (0, import_app_framework9.useIntentDispatcher)();
1424
- return /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, /* @__PURE__ */ import_react27.default.createElement(import_plugin_settings.SettingsValue, {
1418
+ const plugins = (0, import_app_framework9.useResolvePlugins)(import_chunk_GF3SRAQM.parseSpaceInitPlugin);
1419
+ return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, /* @__PURE__ */ import_react24.default.createElement(import_plugin_settings.SettingsValue, {
1425
1420
  label: t("show hidden spaces label")
1426
- }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui16.Input.Switch, {
1421
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Switch, {
1427
1422
  checked: settings.showHidden,
1428
1423
  onCheckedChange: (checked) => dispatch({
1429
1424
  plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
@@ -1432,24 +1427,33 @@ var SpaceSettings = ({ settings }) => {
1432
1427
  state: !!checked
1433
1428
  }
1434
1429
  })
1435
- })));
1430
+ })), /* @__PURE__ */ import_react24.default.createElement(import_plugin_settings.SettingsValue, {
1431
+ label: t("default on space create label")
1432
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Root, {
1433
+ value: settings.onSpaceCreate,
1434
+ onValueChange: (value) => {
1435
+ settings.onSpaceCreate = value;
1436
+ }
1437
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.TriggerButton, null), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Portal, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Content, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Viewport, null, plugins.map(({ provides: { space: { onSpaceCreate } } }) => /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Option, {
1438
+ key: onSpaceCreate.action,
1439
+ value: onSpaceCreate.action
1440
+ }, (0, import_react_ui16.toLocalizedString)(onSpaceCreate.label, t)))))))));
1436
1441
  };
1437
1442
  var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SaveStatus.tsx";
1438
1443
  var SaveStatus = () => {
1439
1444
  const { t } = (0, import_react_ui17.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1440
1445
  const client = (0, import_react_client5.useClient)();
1441
- const [state, setState] = import_react29.default.useState("saved");
1442
- (0, import_react29.useEffect)(() => {
1446
+ const [state, setState] = (0, import_react25.useState)("saved");
1447
+ (0, import_react25.useEffect)(() => {
1443
1448
  return createClientSaveTracker(client, (state2) => {
1444
1449
  setState(state2);
1445
1450
  });
1446
1451
  }, []);
1447
- return /* @__PURE__ */ import_react29.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1452
+ return /* @__PURE__ */ import_react25.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1448
1453
  title: state === "saving" ? t("saving label") : t("saved label")
1449
- }, state === "saving" ? /* @__PURE__ */ import_react29.default.createElement(import_react28.ArrowsClockwise, {
1450
- className: (0, import_react_ui_theme9.getSize)(3)
1451
- }) : /* @__PURE__ */ import_react29.default.createElement(import_react28.CheckCircle, {
1452
- className: (0, import_react_ui_theme9.getSize)(3)
1454
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Icon, {
1455
+ icon: state === "saving" ? "ph--arrows-clockwise--regular" : "ph--check-circle--regular",
1456
+ size: 4
1453
1457
  }));
1454
1458
  };
1455
1459
  var createClientSaveTracker = (client, cb) => {
@@ -1480,7 +1484,7 @@ var createClientSaveTracker = (client, cb) => {
1480
1484
  var createSpaceSaveTracker = (space, cb) => {
1481
1485
  const ctx = new import_context.Context(void 0, {
1482
1486
  F: __dxlog_file3,
1483
- L: 67
1487
+ L: 64
1484
1488
  });
1485
1489
  void space.waitUntilReady().then(() => {
1486
1490
  if (ctx.disposed) {
@@ -1510,6 +1514,199 @@ var createSpaceSaveTracker = (space, cb) => {
1510
1514
  void ctx.dispose();
1511
1515
  };
1512
1516
  };
1517
+ var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/types.ts";
1518
+ var createEmptyEdgeSyncState = () => ({
1519
+ missingOnLocal: 0,
1520
+ missingOnRemote: 0,
1521
+ localDocumentCount: 0,
1522
+ remoteDocumentCount: 0,
1523
+ differentDocuments: 0
1524
+ });
1525
+ var getSyncSummary = (syncMap) => {
1526
+ return Object.entries(syncMap).reduce((summary, [_spaceId, peerState]) => {
1527
+ summary.missingOnLocal += peerState.missingOnLocal;
1528
+ summary.missingOnRemote += peerState.missingOnRemote;
1529
+ summary.localDocumentCount += peerState.localDocumentCount;
1530
+ summary.remoteDocumentCount += peerState.remoteDocumentCount;
1531
+ summary.differentDocuments += peerState.differentDocuments;
1532
+ return summary;
1533
+ }, createEmptyEdgeSyncState());
1534
+ };
1535
+ var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
1536
+ var useSyncState = () => {
1537
+ const client = (0, import_react_client6.useClient)();
1538
+ const [spaceState, setSpaceState] = (0, import_react27.useState)({});
1539
+ (0, import_react27.useEffect)(() => {
1540
+ const ctx = new import_context2.Context(void 0, {
1541
+ F: __dxlog_file4,
1542
+ L: 48
1543
+ });
1544
+ const createSubscriptions = (spaces) => {
1545
+ for (const space of spaces) {
1546
+ if (spaceState[space.id]) {
1547
+ continue;
1548
+ }
1549
+ ctx.onDispose(space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
1550
+ const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
1551
+ if (syncState) {
1552
+ setSpaceState((spaceState2) => ({
1553
+ ...spaceState2,
1554
+ [space.id]: syncState
1555
+ }));
1556
+ }
1557
+ }));
1558
+ }
1559
+ };
1560
+ createSubscriptions(client.spaces.get());
1561
+ client.spaces.subscribe((spaces) => {
1562
+ createSubscriptions(spaces);
1563
+ });
1564
+ return () => {
1565
+ void ctx.dispose();
1566
+ };
1567
+ }, [
1568
+ client
1569
+ ]);
1570
+ return spaceState;
1571
+ };
1572
+ var SYNC_STALLED_TIMEOUT = 5e3;
1573
+ var styles = {
1574
+ barBg: "bg-neutral-50 dark:bg-green-900 text-black",
1575
+ barFg: "bg-neutral-100 bg-green-500",
1576
+ barHover: "dark:hover:bg-green-500"
1577
+ };
1578
+ var SyncStatus = () => {
1579
+ const state = useSyncState();
1580
+ return /* @__PURE__ */ import_react26.default.createElement(SyncStatusIndicator, {
1581
+ state
1582
+ });
1583
+ };
1584
+ var SyncStatusIndicator = ({ state }) => {
1585
+ const summary = getSyncSummary(state);
1586
+ const offline = false;
1587
+ const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
1588
+ const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;
1589
+ const [classNames, setClassNames] = (0, import_react26.useState)();
1590
+ (0, import_react26.useEffect)(() => {
1591
+ setClassNames(void 0);
1592
+ if (!needsToUpload && !needsToDownload) {
1593
+ return;
1594
+ }
1595
+ const t = setTimeout(() => {
1596
+ setClassNames("text-orange-500");
1597
+ }, SYNC_STALLED_TIMEOUT);
1598
+ return () => clearTimeout(t);
1599
+ }, [
1600
+ needsToUpload,
1601
+ needsToDownload
1602
+ ]);
1603
+ return /* @__PURE__ */ import_react26.default.createElement(import_plugin_status_bar2.StatusBar.Item, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Popover.Root, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Popover.Trigger, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
1604
+ icon: offline ? "ph--cloud-x--regular" : needsToUpload ? "ph--cloud-arrow-up--regular" : needsToDownload ? "ph--cloud-arrow-down--regular" : "ph--cloud-check--regular",
1605
+ size: 4,
1606
+ classNames
1607
+ })), /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Popover.Content, null, /* @__PURE__ */ import_react26.default.createElement(SyncStatusDetail, {
1608
+ state,
1609
+ summary,
1610
+ debug: false
1611
+ }))));
1612
+ };
1613
+ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1614
+ const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1615
+ const entries = Object.entries(state).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
1616
+ return /* @__PURE__ */ import_react26.default.createElement("div", {
1617
+ className: (0, import_react_ui_theme9.mx)("flex flex-col text-xs min-w-[16rem]", classNames)
1618
+ }, /* @__PURE__ */ import_react26.default.createElement("h1", {
1619
+ className: "p-2"
1620
+ }, t("sync status title")), /* @__PURE__ */ import_react26.default.createElement("div", {
1621
+ className: "flex flex-col gap-[2px] my-[2px]"
1622
+ }, entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react26.default.createElement(SpaceRow, {
1623
+ key: spaceId,
1624
+ spaceId,
1625
+ state: state2
1626
+ }))), debug && /* @__PURE__ */ import_react26.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
1627
+ language: "json"
1628
+ }, JSON.stringify(summary, null, 2)));
1629
+ };
1630
+ var useActive = (count) => {
1631
+ const [current, setCurrent] = (0, import_react26.useState)(count);
1632
+ const [active, setActive] = (0, import_react26.useState)(false);
1633
+ (0, import_react26.useEffect)(() => {
1634
+ let t;
1635
+ if (count !== current) {
1636
+ setActive(true);
1637
+ setCurrent(count);
1638
+ t && clearTimeout(t);
1639
+ t = setTimeout(() => {
1640
+ setActive(false);
1641
+ }, SYNC_STALLED_TIMEOUT);
1642
+ }
1643
+ return () => {
1644
+ setActive(false);
1645
+ clearTimeout(t);
1646
+ };
1647
+ }, [
1648
+ count,
1649
+ current
1650
+ ]);
1651
+ return active;
1652
+ };
1653
+ var SpaceRow = ({ spaceId, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
1654
+ const downActive = useActive(localDocumentCount);
1655
+ const upActive = useActive(remoteDocumentCount);
1656
+ return /* @__PURE__ */ import_react26.default.createElement("div", {
1657
+ className: (0, import_react_ui_theme9.mx)("flex items-center mx-[2px] gap-[2px] cursor-pointer", styles.barHover),
1658
+ title: spaceId,
1659
+ onClick: () => {
1660
+ void navigator.clipboard.writeText(spaceId);
1661
+ }
1662
+ }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
1663
+ icon: "ph--arrow-fat-line-left--regular",
1664
+ size: 3,
1665
+ classNames: (0, import_react_ui_theme9.mx)(downActive && "animate-[pulse_1s_infinite]")
1666
+ }), /* @__PURE__ */ import_react26.default.createElement(Candle, {
1667
+ up: {
1668
+ count: remoteDocumentCount,
1669
+ total: remoteDocumentCount + missingOnRemote
1670
+ },
1671
+ down: {
1672
+ count: localDocumentCount,
1673
+ total: localDocumentCount + missingOnLocal
1674
+ },
1675
+ title: spaceId
1676
+ }), /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
1677
+ icon: "ph--arrow-fat-line-right--regular",
1678
+ size: 3,
1679
+ classNames: (0, import_react_ui_theme9.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
1680
+ }));
1681
+ };
1682
+ var Candle = ({ classNames, up, down }) => {
1683
+ return /* @__PURE__ */ import_react26.default.createElement("div", {
1684
+ className: (0, import_react_ui_theme9.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
1685
+ }, /* @__PURE__ */ import_react26.default.createElement(Bar, {
1686
+ classNames: "justify-end",
1687
+ ...up
1688
+ }), /* @__PURE__ */ import_react26.default.createElement("div", {
1689
+ className: "relative"
1690
+ }, /* @__PURE__ */ import_react26.default.createElement("div", {
1691
+ className: (0, import_react_ui_theme9.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
1692
+ }, up.total)), /* @__PURE__ */ import_react26.default.createElement(Bar, down));
1693
+ };
1694
+ var Bar = ({ classNames, count, total }) => {
1695
+ let p = count / total * 100;
1696
+ if (count < total) {
1697
+ p = Math.min(p, 95);
1698
+ }
1699
+ return /* @__PURE__ */ import_react26.default.createElement("div", {
1700
+ className: (0, import_react_ui_theme9.mx)("relative flex w-full", styles.barBg, classNames)
1701
+ }, /* @__PURE__ */ import_react26.default.createElement("div", {
1702
+ className: (0, import_react_ui_theme9.mx)("shrink-0", styles.barFg),
1703
+ style: {
1704
+ width: `${p}%`
1705
+ }
1706
+ }), count !== total && /* @__PURE__ */ import_react26.default.createElement("div", {
1707
+ className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
1708
+ }, count));
1709
+ };
1513
1710
  var translations_default = [
1514
1711
  {
1515
1712
  "en-US": {
@@ -1588,19 +1785,23 @@ var translations_default = [
1588
1785
  "space limit close label": "Close",
1589
1786
  "remove deleted objects label": "Cleanup",
1590
1787
  "remove deleted objects alt": "Permanently remove deleted objects to free up space.",
1591
- "copy link label": "Copy link"
1788
+ "copy link label": "Copy link",
1789
+ "default on space create label": "On space create",
1790
+ "sync status title": "Sync status"
1592
1791
  }
1593
1792
  }
1594
1793
  }
1595
1794
  ];
1596
- var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/SpacePlugin.tsx";
1795
+ var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/SpacePlugin.tsx";
1597
1796
  var ACTIVE_NODE_BROADCAST_INTERVAL = 3e4;
1598
1797
  var OBJECT_ID_LENGTH = 60;
1599
1798
  var SPACE_MAX_OBJECTS = 500;
1600
1799
  var DIRECTORY_TYPE = "text/directory";
1601
1800
  var parseSpacePlugin = (plugin) => Array.isArray(plugin?.provides.space?.enabled) ? plugin : void 0;
1602
1801
  var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1603
- const settings = new import_local_storage.LocalStorageStore(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1802
+ const settings = new import_local_storage.LocalStorageStore(import_chunk_6CNYF6YU.SPACE_PLUGIN, {
1803
+ onSpaceCreate: "dxos.org/plugin/markdown/action/create"
1804
+ });
1604
1805
  const state = new import_local_storage.LocalStorageStore(import_chunk_6CNYF6YU.SPACE_PLUGIN, {
1605
1806
  awaiting: void 0,
1606
1807
  spaceNames: {},
@@ -1680,8 +1881,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1680
1881
  import_log.log.warn("Failed to broadcast active node for presence.", {
1681
1882
  err: err.message
1682
1883
  }, {
1683
- F: __dxlog_file4,
1684
- L: 223,
1884
+ F: __dxlog_file5,
1885
+ L: 225,
1685
1886
  S: void 0,
1686
1887
  C: (f, a) => f(...a)
1687
1888
  });
@@ -1752,7 +1953,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1752
1953
  const dispatch = intentPlugin.provides.intent.dispatch;
1753
1954
  const handleFirstRun = async () => {
1754
1955
  const defaultSpace = client.spaces.default;
1755
- defaultSpace.properties[import_chunk_CVZPI2P3.CollectionType.typename] = (0, import_echo.create)(import_chunk_CVZPI2P3.CollectionType, {
1956
+ defaultSpace.properties[import_chunk_GF3SRAQM.CollectionType.typename] = (0, import_echo.create)(import_chunk_GF3SRAQM.CollectionType, {
1756
1957
  objects: [],
1757
1958
  views: {}
1758
1959
  });
@@ -1788,22 +1989,21 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1788
1989
  settings: settings.values,
1789
1990
  translations: [
1790
1991
  ...translations_default,
1791
- import_react3.osTranslations
1992
+ import_react2.osTranslations
1792
1993
  ],
1793
- root: () => state.values.awaiting ? /* @__PURE__ */ import_react2.default.createElement(AwaitingObject, {
1994
+ root: () => state.values.awaiting ? /* @__PURE__ */ import_react.default.createElement(AwaitingObject, {
1794
1995
  id: state.values.awaiting
1795
1996
  }) : null,
1796
1997
  metadata: {
1797
1998
  records: {
1798
- [import_chunk_CVZPI2P3.CollectionType.typename]: {
1999
+ [import_chunk_GF3SRAQM.CollectionType.typename]: {
1799
2000
  placeholder: [
1800
2001
  "unnamed collection label",
1801
2002
  {
1802
2003
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
1803
2004
  }
1804
2005
  ],
1805
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.CardsThree, props),
1806
- iconSymbol: "ph--cards-three--regular",
2006
+ icon: "ph--cards-three--regular",
1807
2007
  // TODO(wittjosiah): Move out of metadata.
1808
2008
  loadReferences: (collection) => (0, import_echo.loadObjectReferences)(collection, (collection2) => [
1809
2009
  ...collection2.objects,
@@ -1814,7 +2014,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1814
2014
  },
1815
2015
  echo: {
1816
2016
  schema: [
1817
- import_chunk_CVZPI2P3.CollectionType
2017
+ import_chunk_GF3SRAQM.CollectionType
1818
2018
  ]
1819
2019
  },
1820
2020
  surface: {
@@ -1823,33 +2023,33 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1823
2023
  switch (role) {
1824
2024
  case "article":
1825
2025
  case "main":
1826
- return (0, import_echo.isSpace)(primary) && primary.state.get() === import_echo.SpaceState.SPACE_READY ? /* @__PURE__ */ import_react2.default.createElement(import_app_framework.Surface, {
2026
+ return (0, import_echo.isSpace)(primary) && primary.state.get() === import_echo.SpaceState.SPACE_READY ? /* @__PURE__ */ import_react.default.createElement(import_app_framework.Surface, {
1827
2027
  data: {
1828
- active: primary.properties[import_chunk_CVZPI2P3.CollectionType.typename]
2028
+ active: primary.properties[import_chunk_GF3SRAQM.CollectionType.typename]
1829
2029
  },
1830
2030
  role,
1831
2031
  ...rest
1832
- }) : primary instanceof import_chunk_CVZPI2P3.CollectionType ? {
1833
- node: /* @__PURE__ */ import_react2.default.createElement(CollectionMain, {
2032
+ }) : primary instanceof import_chunk_GF3SRAQM.CollectionType ? {
2033
+ node: /* @__PURE__ */ import_react.default.createElement(CollectionMain, {
1834
2034
  collection: primary
1835
2035
  }),
1836
2036
  disposition: "fallback"
1837
- } : typeof primary === "string" && primary.length === OBJECT_ID_LENGTH ? /* @__PURE__ */ import_react2.default.createElement(MissingObject, {
2037
+ } : typeof primary === "string" && primary.length === OBJECT_ID_LENGTH ? /* @__PURE__ */ import_react.default.createElement(MissingObject, {
1838
2038
  id: primary
1839
2039
  }) : null;
1840
2040
  // TODO(burdon): Add role name syntax to minimal plugin docs.
1841
2041
  case "tree--empty":
1842
2042
  switch (true) {
1843
2043
  case data.plugin === import_chunk_6CNYF6YU.SPACE_PLUGIN:
1844
- return /* @__PURE__ */ import_react2.default.createElement(EmptyTree, null);
2044
+ return /* @__PURE__ */ import_react.default.createElement(EmptyTree, null);
1845
2045
  case ((0, import_plugin_graph.isGraphNode)(data.activeNode) && (0, import_echo.isSpace)(data.activeNode.data)):
1846
- return /* @__PURE__ */ import_react2.default.createElement(EmptySpace, null);
2046
+ return /* @__PURE__ */ import_react.default.createElement(EmptySpace, null);
1847
2047
  default:
1848
2048
  return null;
1849
2049
  }
1850
2050
  case "dialog":
1851
2051
  if (data.component === "dxos.org/plugin/space/InvitationManagerDialog") {
1852
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui.Dialog.Content, null, /* @__PURE__ */ import_react2.default.createElement(import_react3.ClipboardProvider, null, /* @__PURE__ */ import_react2.default.createElement(import_react3.InvitationManager, {
2052
+ return /* @__PURE__ */ import_react.default.createElement(import_react_ui.Dialog.Content, null, /* @__PURE__ */ import_react.default.createElement(import_react2.ClipboardProvider, null, /* @__PURE__ */ import_react.default.createElement(import_react2.InvitationManager, {
1853
2053
  active: true,
1854
2054
  ...data.subject
1855
2055
  })));
@@ -1858,20 +2058,20 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1858
2058
  }
1859
2059
  case "popover":
1860
2060
  if (data.component === "dxos.org/plugin/space/RenameSpacePopover" && (0, import_echo.isSpace)(data.subject)) {
1861
- return /* @__PURE__ */ import_react2.default.createElement(PopoverRenameSpace, {
2061
+ return /* @__PURE__ */ import_react.default.createElement(PopoverRenameSpace, {
1862
2062
  space: data.subject
1863
2063
  });
1864
2064
  }
1865
2065
  if (data.component === "dxos.org/plugin/space/RenameObjectPopover" && (0, import_echo_schema.isReactiveObject)(data.subject)) {
1866
- return /* @__PURE__ */ import_react2.default.createElement(PopoverRenameObject, {
2066
+ return /* @__PURE__ */ import_react.default.createElement(PopoverRenameObject, {
1867
2067
  object: data.subject
1868
2068
  });
1869
2069
  }
1870
2070
  return null;
1871
2071
  case "presence--glyph": {
1872
- return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */ import_react2.default.createElement(SmallPresenceLive, {
2072
+ return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */ import_react.default.createElement(SmallPresenceLive, {
1873
2073
  viewers: state.values.viewersByObject[(0, import_echo.fullyQualifiedId)(data.object)]
1874
- }) : /* @__PURE__ */ import_react2.default.createElement(SmallPresence, {
2074
+ }) : /* @__PURE__ */ import_react.default.createElement(SmallPresence, {
1875
2075
  count: 0
1876
2076
  });
1877
2077
  }
@@ -1883,34 +2083,34 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1883
2083
  return null;
1884
2084
  }
1885
2085
  const space = (0, import_echo.isSpace)(data.object) ? data.object : (0, import_echo.getSpace)(data.object);
1886
- const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_CVZPI2P3.CollectionType.typename] : void 0 : data.object;
2086
+ const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_GF3SRAQM.CollectionType.typename] : void 0 : data.object;
1887
2087
  return space && object ? {
1888
- node: /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(SpacePresence, {
2088
+ node: /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SpacePresence, {
1889
2089
  object
1890
- }), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */ import_react2.default.createElement(ShareSpaceButton, {
2090
+ }), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */ import_react.default.createElement(ShareSpaceButton, {
1891
2091
  spaceId: space.id
1892
2092
  })),
1893
2093
  disposition: "hoist"
1894
2094
  } : null;
1895
2095
  }
1896
2096
  case "section":
1897
- return data.object instanceof import_chunk_CVZPI2P3.CollectionType ? /* @__PURE__ */ import_react2.default.createElement(CollectionSection, {
2097
+ return data.object instanceof import_chunk_GF3SRAQM.CollectionType ? /* @__PURE__ */ import_react.default.createElement(CollectionSection, {
1898
2098
  collection: data.object
1899
2099
  }) : null;
1900
2100
  case "settings":
1901
- return data.plugin === import_chunk_6CNYF6YU.meta_default.id ? /* @__PURE__ */ import_react2.default.createElement(SpaceSettings, {
2101
+ return data.plugin === import_chunk_6CNYF6YU.meta_default.id ? /* @__PURE__ */ import_react.default.createElement(SpaceSettings, {
1902
2102
  settings: settings.values
1903
2103
  }) : null;
1904
2104
  case "menu-footer":
1905
2105
  if (!(0, import_echo.isEchoObject)(data.object)) {
1906
2106
  return null;
1907
2107
  } else {
1908
- return /* @__PURE__ */ import_react2.default.createElement(MenuFooter, {
2108
+ return /* @__PURE__ */ import_react.default.createElement(MenuFooter, {
1909
2109
  object: data.object
1910
2110
  });
1911
2111
  }
1912
2112
  case "status": {
1913
- return /* @__PURE__ */ import_react2.default.createElement(SaveStatus, null);
2113
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SyncStatus, null), /* @__PURE__ */ import_react.default.createElement(SaveStatus, null));
1914
2114
  }
1915
2115
  default:
1916
2116
  return null;
@@ -1971,8 +2171,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1971
2171
  spacesOrder.order = nextOrder.map(({ id }) => id);
1972
2172
  } else {
1973
2173
  import_log.log.warn("spaces order object not found", void 0, {
1974
- F: __dxlog_file4,
1975
- L: 518,
2174
+ F: __dxlog_file5,
2175
+ L: 524,
1976
2176
  S: void 0,
1977
2177
  C: (f, a) => f(...a)
1978
2178
  });
@@ -2008,8 +2208,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2008
2208
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
2009
2209
  }
2010
2210
  ],
2011
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.Plus, props),
2012
- iconSymbol: "ph--plus--regular",
2211
+ icon: "ph--plus--regular",
2013
2212
  disposition: "toolbar",
2014
2213
  testId: "spacePlugin.createSpace"
2015
2214
  }
@@ -2034,8 +2233,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2034
2233
  ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
2035
2234
  }
2036
2235
  ],
2037
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.SignIn, props),
2038
- iconSymbol: "ph--sign-in--regular",
2236
+ icon: "ph--sign-in--regular",
2039
2237
  testId: "spacePlugin.joinSpace"
2040
2238
  }
2041
2239
  }
@@ -2123,7 +2321,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2123
2321
  if (state2 !== import_echo.SpaceState.SPACE_READY) {
2124
2322
  return;
2125
2323
  }
2126
- const collection = space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
2324
+ const collection = space.properties[import_chunk_GF3SRAQM.CollectionType.typename];
2127
2325
  if (!collection) {
2128
2326
  return;
2129
2327
  }
@@ -2150,7 +2348,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2150
2348
  // Create nodes for objects in collections.
2151
2349
  (0, import_plugin_graph.createExtension)({
2152
2350
  id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/collection-objects`,
2153
- filter: (node) => node.data instanceof import_chunk_CVZPI2P3.CollectionType,
2351
+ filter: (node) => node.data instanceof import_chunk_GF3SRAQM.CollectionType,
2154
2352
  connector: ({ node }) => {
2155
2353
  const collection = node.data;
2156
2354
  const space = (0, import_echo.getSpace)(collection);
@@ -2203,7 +2401,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2203
2401
  }
2204
2402
  },
2205
2403
  {
2206
- inputType: import_chunk_CVZPI2P3.CollectionType.typename,
2404
+ inputType: import_chunk_GF3SRAQM.CollectionType.typename,
2207
2405
  outputType: DIRECTORY_TYPE,
2208
2406
  serialize: (node) => ({
2209
2407
  name: node.data.name ?? translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["unnamed collection label"],
@@ -2212,7 +2410,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2212
2410
  }),
2213
2411
  deserialize: async (data, ancestors) => {
2214
2412
  const space = ancestors.find(import_echo.isSpace);
2215
- const collection = ancestors.findLast((ancestor) => ancestor instanceof import_chunk_CVZPI2P3.CollectionType) ?? space?.properties[import_chunk_CVZPI2P3.CollectionType.typename];
2413
+ const collection = ancestors.findLast((ancestor) => ancestor instanceof import_chunk_GF3SRAQM.CollectionType) ?? space?.properties[import_chunk_GF3SRAQM.CollectionType.typename];
2216
2414
  if (!space || !collection) {
2217
2415
  return;
2218
2416
  }
@@ -2221,7 +2419,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2221
2419
  action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
2222
2420
  data: {
2223
2421
  target: collection,
2224
- object: (0, import_echo.create)(import_chunk_CVZPI2P3.CollectionType, {
2422
+ object: (0, import_echo.create)(import_chunk_GF3SRAQM.CollectionType, {
2225
2423
  name: data.name,
2226
2424
  objects: [],
2227
2425
  views: {}
@@ -2251,11 +2449,11 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2251
2449
  }
2252
2450
  const space = await client.spaces.create(intent.data);
2253
2451
  await space.waitUntilReady();
2254
- const collection = (0, import_echo.create)(import_chunk_CVZPI2P3.CollectionType, {
2452
+ const collection = (0, import_echo.create)(import_chunk_GF3SRAQM.CollectionType, {
2255
2453
  objects: [],
2256
2454
  views: {}
2257
2455
  });
2258
- space.properties[import_chunk_CVZPI2P3.CollectionType.typename] = collection;
2456
+ space.properties[import_chunk_GF3SRAQM.CollectionType.typename] = collection;
2259
2457
  if (import_migrations.Migrations.versionProperty) {
2260
2458
  space.properties[import_migrations.Migrations.versionProperty] = import_migrations.Migrations.targetVersion;
2261
2459
  }
@@ -2270,6 +2468,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2270
2468
  }
2271
2469
  },
2272
2470
  intents: [
2471
+ ...settings.values.onSpaceCreate ? [
2472
+ [
2473
+ {
2474
+ action: settings.values.onSpaceCreate,
2475
+ data: {
2476
+ space
2477
+ }
2478
+ },
2479
+ {
2480
+ action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
2481
+ data: {
2482
+ target: space
2483
+ }
2484
+ },
2485
+ {
2486
+ action: import_app_framework.NavigationAction.EXPOSE
2487
+ }
2488
+ ]
2489
+ ] : [],
2273
2490
  [
2274
2491
  {
2275
2492
  action: import_meta.ObservabilityAction.SEND_EVENT,
@@ -2490,8 +2707,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2490
2707
  title: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["space limit label"],
2491
2708
  description: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["space limit description"],
2492
2709
  duration: 5e3,
2493
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.Warning, props),
2494
- iconSymbol: "ph--warning--regular",
2710
+ icon: "ph--warning--regular",
2495
2711
  actionLabel: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["remove deleted objects label"],
2496
2712
  actionAlt: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["remove deleted objects alt"],
2497
2713
  // TODO(wittjosiah): Use OS namespace.
@@ -2515,25 +2731,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2515
2731
  ]
2516
2732
  };
2517
2733
  }
2518
- if (intent.data?.target instanceof import_chunk_CVZPI2P3.CollectionType) {
2734
+ if (intent.data?.target instanceof import_chunk_GF3SRAQM.CollectionType) {
2519
2735
  intent.data?.target.objects.push(object);
2520
2736
  } else if ((0, import_echo.isSpace)(intent.data?.target)) {
2521
- const collection = space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
2522
- if (collection instanceof import_chunk_CVZPI2P3.CollectionType) {
2737
+ const collection = space.properties[import_chunk_GF3SRAQM.CollectionType.typename];
2738
+ if (collection instanceof import_chunk_GF3SRAQM.CollectionType) {
2523
2739
  collection.objects.push(object);
2524
2740
  } else {
2525
- const collection2 = (0, import_echo.create)(import_chunk_CVZPI2P3.CollectionType, {
2741
+ const collection2 = (0, import_echo.create)(import_chunk_GF3SRAQM.CollectionType, {
2526
2742
  objects: [
2527
2743
  object
2528
2744
  ],
2529
2745
  views: {}
2530
2746
  });
2531
- space.properties[import_chunk_CVZPI2P3.CollectionType.typename] = collection2;
2747
+ space.properties[import_chunk_GF3SRAQM.CollectionType.typename] = collection2;
2532
2748
  }
2533
2749
  }
2534
2750
  return {
2535
2751
  data: {
2536
- id: object.id,
2752
+ id: (0, import_echo.fullyQualifiedId)(object),
2537
2753
  object,
2538
2754
  activeParts: {
2539
2755
  main: [
@@ -2568,12 +2784,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2568
2784
  const activeParts = navigationPlugin?.provides.location.active;
2569
2785
  const openObjectIds = new Set((0, import_app_framework.openIds)(activeParts ?? {}));
2570
2786
  if (!intent.undo && resolve) {
2571
- const parentCollection = intent.data?.collection ?? space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
2787
+ const parentCollection = intent.data?.collection ?? space.properties[import_chunk_GF3SRAQM.CollectionType.typename];
2572
2788
  const nestedObjects = await getNestedObjects(object, resolve);
2573
2789
  const deletionData = {
2574
2790
  object,
2575
2791
  parentCollection,
2576
- index: parentCollection instanceof import_chunk_CVZPI2P3.CollectionType ? parentCollection.objects.indexOf(object) : -1,
2792
+ index: parentCollection instanceof import_chunk_GF3SRAQM.CollectionType ? parentCollection.objects.indexOf(object) : -1,
2577
2793
  nestedObjects,
2578
2794
  wasActive: [
2579
2795
  object,
@@ -2586,13 +2802,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2586
2802
  data: {
2587
2803
  activeParts: {
2588
2804
  main: deletionData.wasActive,
2589
- sidebar: deletionData.wasActive,
2590
- complementary: deletionData.wasActive
2805
+ sidebar: deletionData.wasActive
2591
2806
  }
2592
2807
  }
2593
2808
  });
2594
2809
  }
2595
- if (parentCollection instanceof import_chunk_CVZPI2P3.CollectionType) {
2810
+ if (parentCollection instanceof import_chunk_GF3SRAQM.CollectionType) {
2596
2811
  const index = parentCollection.objects.indexOf(object);
2597
2812
  if (index !== -1) {
2598
2813
  parentCollection.objects.splice(index, 1);
@@ -2602,7 +2817,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2602
2817
  space.db.remove(obj);
2603
2818
  });
2604
2819
  space.db.remove(object);
2605
- const undoMessageKey = object instanceof import_chunk_CVZPI2P3.CollectionType ? "collection deleted label" : "object deleted label";
2820
+ const undoMessageKey = object instanceof import_chunk_GF3SRAQM.CollectionType ? "collection deleted label" : "object deleted label";
2606
2821
  return {
2607
2822
  data: true,
2608
2823
  undoable: {
@@ -2613,7 +2828,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2613
2828
  };
2614
2829
  } else {
2615
2830
  const undoData = intent.data;
2616
- if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof import_chunk_CVZPI2P3.CollectionType) {
2831
+ if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof import_chunk_GF3SRAQM.CollectionType) {
2617
2832
  const restoredObject = space.db.add(undoData.object);
2618
2833
  undoData.nestedObjects.forEach((obj) => {
2619
2834
  space.db.add(obj);
@@ -2710,6 +2925,7 @@ var src_default = SpacePlugin;
2710
2925
  EmptyTree,
2711
2926
  FullPresence,
2712
2927
  MenuFooter,
2928
+ MessageState,
2713
2929
  MessageType,
2714
2930
  MissingObject,
2715
2931
  PersistenceStatus,
@@ -2731,6 +2947,9 @@ var src_default = SpacePlugin;
2731
2947
  SpacePlugin,
2732
2948
  SpacePresence,
2733
2949
  SpaceSettings,
2950
+ SyncStatus,
2951
+ SyncStatusDetail,
2952
+ SyncStatusIndicator,
2734
2953
  ThreadStatus,
2735
2954
  ThreadType,
2736
2955
  cloneObject,
@@ -2744,6 +2963,7 @@ var src_default = SpacePlugin;
2744
2963
  getNestedObjects,
2745
2964
  getSpaceDisplayName,
2746
2965
  memoizeQuery,
2966
+ parseSpaceInitPlugin,
2747
2967
  parseSpacePlugin,
2748
2968
  translations
2749
2969
  });