@dxos/plugin-space 0.6.13 → 0.6.14-main.2b6a0f3

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 (94) hide show
  1. package/dist/lib/browser/{chunk-DTVUOG2C.mjs → chunk-47SVNCZM.mjs} +24 -5
  2. package/dist/lib/browser/chunk-47SVNCZM.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-LZEGRS7H.mjs → chunk-AVLRQF6L.mjs} +1 -1
  4. package/dist/lib/browser/chunk-AVLRQF6L.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +609 -250
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/meta.mjs +1 -1
  9. package/dist/lib/browser/types/index.mjs +7 -3
  10. package/dist/lib/node/{chunk-CVZPI2P3.cjs → chunk-CTYDNFGG.cjs} +30 -9
  11. package/dist/lib/node/chunk-CTYDNFGG.cjs.map +7 -0
  12. package/dist/lib/node/{chunk-6CNYF6YU.cjs → chunk-P4XUXM7Y.cjs} +4 -4
  13. package/dist/lib/node/chunk-P4XUXM7Y.cjs.map +7 -0
  14. package/dist/lib/node/index.cjs +827 -471
  15. package/dist/lib/node/index.cjs.map +4 -4
  16. package/dist/lib/node/meta.cjs +5 -5
  17. package/dist/lib/node/meta.cjs.map +1 -1
  18. package/dist/lib/node/meta.json +1 -1
  19. package/dist/lib/node/types/index.cjs +14 -10
  20. package/dist/lib/node/types/index.cjs.map +2 -2
  21. package/dist/lib/node-esm/chunk-PLPMYTLC.mjs +116 -0
  22. package/dist/lib/node-esm/chunk-PLPMYTLC.mjs.map +7 -0
  23. package/dist/lib/node-esm/chunk-YPQGKWHJ.mjs +37 -0
  24. package/dist/lib/node-esm/chunk-YPQGKWHJ.mjs.map +7 -0
  25. package/dist/lib/node-esm/index.mjs +3000 -0
  26. package/dist/lib/node-esm/index.mjs.map +7 -0
  27. package/dist/lib/node-esm/meta.json +1 -0
  28. package/dist/lib/node-esm/meta.mjs +14 -0
  29. package/dist/lib/node-esm/meta.mjs.map +7 -0
  30. package/dist/lib/node-esm/types/index.mjs +26 -0
  31. package/dist/lib/node-esm/types/index.mjs.map +7 -0
  32. package/dist/types/src/SpacePlugin.d.ts.map +1 -1
  33. package/dist/types/src/components/DefaultObjectSettings.d.ts +7 -0
  34. package/dist/types/src/components/DefaultObjectSettings.d.ts.map +1 -0
  35. package/dist/types/src/components/MenuFooter.d.ts +1 -1
  36. package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
  37. package/dist/types/src/components/SaveStatus.d.ts +3 -0
  38. package/dist/types/src/components/SaveStatus.d.ts.map +1 -0
  39. package/dist/types/src/components/ShareSpaceButton.stories.d.ts +3 -91
  40. package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +1 -1
  41. package/dist/types/src/components/SpaceMain/SpaceMain.d.ts.map +1 -1
  42. package/dist/types/src/components/SpacePresence.stories.d.ts +4 -92
  43. package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
  44. package/dist/types/src/components/SpaceSettings.d.ts.map +1 -1
  45. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +13 -0
  46. package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -0
  47. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +24 -0
  48. package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -0
  49. package/dist/types/src/components/SyncStatus/index.d.ts +2 -0
  50. package/dist/types/src/components/SyncStatus/index.d.ts.map +1 -0
  51. package/dist/types/src/components/SyncStatus/types.d.ts +14 -0
  52. package/dist/types/src/components/SyncStatus/types.d.ts.map +1 -0
  53. package/dist/types/src/components/index.d.ts +3 -2
  54. package/dist/types/src/components/index.d.ts.map +1 -1
  55. package/dist/types/src/meta.d.ts.map +1 -1
  56. package/dist/types/src/translations.d.ts +6 -0
  57. package/dist/types/src/translations.d.ts.map +1 -1
  58. package/dist/types/src/types/thread.d.ts +15 -1
  59. package/dist/types/src/types/thread.d.ts.map +1 -1
  60. package/dist/types/src/types/types.d.ts +18 -1
  61. package/dist/types/src/types/types.d.ts.map +1 -1
  62. package/dist/types/src/util.d.ts +3 -6
  63. package/dist/types/src/util.d.ts.map +1 -1
  64. package/package.json +45 -36
  65. package/src/SpacePlugin.tsx +173 -90
  66. package/src/components/DefaultObjectSettings.tsx +32 -0
  67. package/src/components/MenuFooter.tsx +2 -2
  68. package/src/components/SaveStatus.tsx +95 -0
  69. package/src/components/ShareSpaceButton.stories.tsx +11 -7
  70. package/src/components/SpaceMain/SpaceMain.tsx +1 -22
  71. package/src/components/SpacePresence.stories.tsx +11 -9
  72. package/src/components/SpacePresence.tsx +1 -1
  73. package/src/components/SpaceSettings.tsx +32 -3
  74. package/src/components/SyncStatus/SyncStatus.stories.tsx +65 -0
  75. package/src/components/SyncStatus/SyncStatus.tsx +188 -0
  76. package/src/components/SyncStatus/index.ts +5 -0
  77. package/src/components/SyncStatus/types.ts +77 -0
  78. package/src/components/index.ts +3 -2
  79. package/src/meta.ts +3 -1
  80. package/src/translations.ts +6 -0
  81. package/src/types/collection.ts +1 -1
  82. package/src/types/thread.ts +12 -2
  83. package/src/types/types.ts +25 -1
  84. package/src/util.tsx +20 -55
  85. package/dist/lib/browser/chunk-DTVUOG2C.mjs.map +0 -7
  86. package/dist/lib/browser/chunk-LZEGRS7H.mjs.map +0 -7
  87. package/dist/lib/node/chunk-6CNYF6YU.cjs.map +0 -7
  88. package/dist/lib/node/chunk-CVZPI2P3.cjs.map +0 -7
  89. package/dist/types/src/components/EmptySpace.d.ts +0 -3
  90. package/dist/types/src/components/EmptySpace.d.ts.map +0 -1
  91. package/dist/types/src/components/EmptyTree.d.ts +0 -3
  92. package/dist/types/src/components/EmptyTree.d.ts.map +0 -1
  93. package/src/components/EmptySpace.tsx +0 -25
  94. package/src/components/EmptyTree.tsx +0 -25
@@ -28,40 +28,44 @@ 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_CTYDNFGG.ActorSchema,
32
32
  AwaitingObject: () => AwaitingObject,
33
33
  COMPOSER_SPACE_LOCK: () => COMPOSER_SPACE_LOCK,
34
- ChannelType: () => import_chunk_CVZPI2P3.ChannelType,
34
+ ChannelType: () => import_chunk_CTYDNFGG.ChannelType,
35
35
  CollectionMain: () => CollectionMain,
36
36
  CollectionSection: () => CollectionSection,
37
- CollectionType: () => import_chunk_CVZPI2P3.CollectionType,
38
- ContactType: () => import_chunk_CVZPI2P3.ContactType,
39
- EmptySpace: () => EmptySpace,
40
- EmptyTree: () => EmptyTree,
37
+ CollectionType: () => import_chunk_CTYDNFGG.CollectionType,
38
+ ContactType: () => import_chunk_CTYDNFGG.ContactType,
39
+ DefaultObjectSettings: () => DefaultObjectSettings,
41
40
  FullPresence: () => FullPresence,
42
41
  MenuFooter: () => MenuFooter,
43
- MessageType: () => import_chunk_CVZPI2P3.MessageType,
42
+ MessageState: () => import_chunk_CTYDNFGG.MessageState,
43
+ MessageType: () => import_chunk_CTYDNFGG.MessageType,
44
44
  MissingObject: () => MissingObject,
45
45
  PersistenceStatus: () => PersistenceStatus,
46
46
  PopoverRenameObject: () => PopoverRenameObject,
47
47
  PopoverRenameSpace: () => PopoverRenameSpace,
48
48
  SHARED: () => SHARED,
49
49
  SPACES: () => SPACES,
50
- SPACE_DIRECTORY_HANDLE: () => import_chunk_CVZPI2P3.SPACE_DIRECTORY_HANDLE,
51
- SPACE_PLUGIN: () => import_chunk_6CNYF6YU.SPACE_PLUGIN,
52
- SPACE_PLUGIN_SHORT_ID: () => import_chunk_6CNYF6YU.SPACE_PLUGIN_SHORT_ID,
50
+ SPACE_DIRECTORY_HANDLE: () => import_chunk_CTYDNFGG.SPACE_DIRECTORY_HANDLE,
51
+ SPACE_PLUGIN: () => import_chunk_P4XUXM7Y.SPACE_PLUGIN,
52
+ SPACE_PLUGIN_SHORT_ID: () => import_chunk_P4XUXM7Y.SPACE_PLUGIN_SHORT_ID,
53
53
  SPACE_TYPE: () => SPACE_TYPE,
54
+ SaveStatus: () => SaveStatus,
54
55
  ShareSpaceButton: () => ShareSpaceButton,
55
56
  ShareSpaceButtonImpl: () => ShareSpaceButtonImpl,
56
57
  SmallPresence: () => SmallPresence,
57
58
  SmallPresenceLive: () => SmallPresenceLive,
58
- SpaceAction: () => import_chunk_6CNYF6YU.SpaceAction,
59
+ SpaceAction: () => import_chunk_P4XUXM7Y.SpaceAction,
59
60
  SpaceMain: () => SpaceMain,
60
61
  SpacePlugin: () => SpacePlugin,
61
62
  SpacePresence: () => SpacePresence,
62
63
  SpaceSettings: () => SpaceSettings,
63
- ThreadStatus: () => import_chunk_CVZPI2P3.ThreadStatus,
64
- ThreadType: () => import_chunk_CVZPI2P3.ThreadType,
64
+ SyncStatus: () => SyncStatus,
65
+ SyncStatusDetail: () => SyncStatusDetail,
66
+ SyncStatusIndicator: () => SyncStatusIndicator,
67
+ ThreadStatus: () => import_chunk_CTYDNFGG.ThreadStatus,
68
+ ThreadType: () => import_chunk_CTYDNFGG.ThreadType,
65
69
  cloneObject: () => cloneObject,
66
70
  constructObjectActionGroups: () => constructObjectActionGroups,
67
71
  constructObjectActions: () => constructObjectActions,
@@ -74,18 +78,19 @@ __export(node_exports, {
74
78
  getNestedObjects: () => getNestedObjects,
75
79
  getSpaceDisplayName: () => getSpaceDisplayName,
76
80
  memoizeQuery: () => memoizeQuery,
81
+ parseSpaceInitPlugin: () => import_chunk_CTYDNFGG.parseSpaceInitPlugin,
77
82
  parseSpacePlugin: () => parseSpacePlugin,
78
83
  translations: () => translations_default
79
84
  });
80
85
  module.exports = __toCommonJS(node_exports);
81
- var import_chunk_6CNYF6YU = require("./chunk-6CNYF6YU.cjs");
82
- var import_chunk_CVZPI2P3 = require("./chunk-CVZPI2P3.cjs");
83
- var import_react = require("@phosphor-icons/react");
86
+ var import_chunk_P4XUXM7Y = require("./chunk-P4XUXM7Y.cjs");
87
+ var import_chunk_CTYDNFGG = require("./chunk-CTYDNFGG.cjs");
84
88
  var import_signals_core = require("@preact/signals-core");
85
- var import_react2 = __toESM(require("react"));
89
+ var import_react = __toESM(require("react"));
86
90
  var import_app_framework = require("@dxos/app-framework");
87
91
  var import_async = require("@dxos/async");
88
92
  var import_echo_schema = require("@dxos/echo-schema");
93
+ var import_core = require("@dxos/echo-signals/core");
89
94
  var import_local_storage = require("@dxos/local-storage");
90
95
  var import_log = require("@dxos/log");
91
96
  var import_migrations = require("@dxos/migrations");
@@ -96,97 +101,105 @@ var import_meta = require("@dxos/plugin-observability/meta");
96
101
  var import_react_client = require("@dxos/react-client");
97
102
  var import_echo = require("@dxos/react-client/echo");
98
103
  var import_react_ui = require("@dxos/react-ui");
99
- var import_react3 = require("@dxos/shell/react");
104
+ var import_react2 = require("@dxos/shell/react");
100
105
  var import_util = require("@dxos/util");
101
- var import_react4 = require("@phosphor-icons/react");
102
- var import_react5 = __toESM(require("react"));
106
+ var import_react3 = require("@phosphor-icons/react");
107
+ var import_react4 = __toESM(require("react"));
103
108
  var import_app_framework2 = require("@dxos/app-framework");
104
109
  var import_react_client2 = require("@dxos/react-client");
105
110
  var import_echo2 = require("@dxos/react-client/echo");
106
111
  var import_react_ui2 = require("@dxos/react-ui");
107
112
  var import_react_ui_theme = require("@dxos/react-ui-theme");
108
- var import_react6 = __toESM(require("react"));
113
+ var import_react5 = __toESM(require("react"));
109
114
  var import_react_ui3 = require("@dxos/react-ui");
110
115
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
111
- var import_react7 = __toESM(require("react"));
116
+ var import_react6 = __toESM(require("react"));
112
117
  var import_react_ui4 = require("@dxos/react-ui");
113
- var import_react8 = __toESM(require("react"));
118
+ var import_react7 = __toESM(require("react"));
114
119
  var import_react_ui5 = require("@dxos/react-ui");
115
- var import_react_ui_theme3 = require("@dxos/react-ui-theme");
120
+ var import_react8 = require("@phosphor-icons/react");
116
121
  var import_react9 = __toESM(require("react"));
117
- var import_react_ui6 = require("@dxos/react-ui");
118
- var import_react_ui_theme4 = require("@dxos/react-ui-theme");
119
- var import_react10 = require("@phosphor-icons/react");
120
- var import_react11 = __toESM(require("react"));
121
122
  var import_echo3 = require("@dxos/client/echo");
122
123
  var import_react_client3 = require("@dxos/react-client");
123
- var import_react_ui7 = require("@dxos/react-ui");
124
- var import_react12 = require("@phosphor-icons/react");
125
- var import_react13 = __toESM(require("react"));
124
+ var import_react_ui6 = require("@dxos/react-ui");
126
125
  var import_app_framework3 = require("@dxos/app-framework");
127
126
  var import_echo_schema2 = require("@dxos/echo-schema");
128
127
  var import_invariant = require("@dxos/invariant");
129
128
  var import_migrations2 = require("@dxos/migrations");
130
129
  var import_plugin_graph2 = require("@dxos/plugin-graph");
131
130
  var import_echo4 = require("@dxos/react-client/echo");
132
- var import_react14 = __toESM(require("react"));
131
+ var import_react10 = __toESM(require("react"));
133
132
  var import_app_framework4 = require("@dxos/app-framework");
134
- var import_react_ui8 = require("@dxos/react-ui");
135
- var import_react_ui_theme5 = require("@dxos/react-ui-theme");
136
- var import_react15 = require("@phosphor-icons/react");
137
- var import_react16 = __toESM(require("react"));
133
+ var import_react_ui7 = require("@dxos/react-ui");
134
+ var import_react_ui_theme3 = require("@dxos/react-ui-theme");
135
+ var import_react11 = require("@phosphor-icons/react");
136
+ var import_react12 = __toESM(require("react"));
138
137
  var import_async2 = require("@dxos/async");
139
- var import_react_ui9 = require("@dxos/react-ui");
140
- var import_react_ui_theme6 = require("@dxos/react-ui-theme");
141
- var import_react17 = __toESM(require("react"));
138
+ var import_react_ui8 = require("@dxos/react-ui");
139
+ var import_react_ui_theme4 = require("@dxos/react-ui-theme");
140
+ var import_react13 = __toESM(require("react"));
142
141
  var import_log2 = require("@dxos/log");
142
+ var import_react_ui9 = require("@dxos/react-ui");
143
+ var import_react14 = __toESM(require("react"));
143
144
  var import_react_ui10 = require("@dxos/react-ui");
144
- var import_react18 = __toESM(require("react"));
145
- var import_react_ui11 = require("@dxos/react-ui");
146
- var import_react19 = __toESM(require("react"));
145
+ var import_react15 = __toESM(require("react"));
147
146
  var import_app_framework5 = require("@dxos/app-framework");
148
- var import_react_ui12 = require("@dxos/react-ui");
149
- var import_react20 = require("@phosphor-icons/react");
150
- var import_react21 = __toESM(require("react"));
147
+ var import_react_ui11 = require("@dxos/react-ui");
148
+ var import_react16 = require("@phosphor-icons/react");
149
+ var import_react17 = __toESM(require("react"));
151
150
  var import_app_framework6 = require("@dxos/app-framework");
152
151
  var import_echo5 = require("@dxos/react-client/echo");
153
- var import_react_ui13 = require("@dxos/react-ui");
154
- var import_react_ui_theme7 = require("@dxos/react-ui-theme");
155
- var import_react22 = require("@dxos/shell/react");
156
- var import_react23 = require("@phosphor-icons/react");
157
- var import_react24 = __toESM(require("react"));
152
+ var import_react_ui12 = require("@dxos/react-ui");
153
+ var import_react_ui_theme5 = require("@dxos/react-ui-theme");
154
+ var import_react18 = require("@dxos/shell/react");
155
+ var import_react19 = require("@phosphor-icons/react");
156
+ var import_react20 = __toESM(require("react"));
158
157
  var import_app_framework7 = require("@dxos/app-framework");
159
158
  var import_echo6 = require("@dxos/react-client/echo");
160
159
  var import_invitations = require("@dxos/react-client/invitations");
161
160
  var import_invitations2 = require("@dxos/react-client/invitations");
162
- var import_react_ui14 = require("@dxos/react-ui");
163
- var import_react_ui_theme8 = require("@dxos/react-ui-theme");
164
- var import_react25 = require("@dxos/shell/react");
165
- var import_react26 = __toESM(require("react"));
161
+ var import_react_ui13 = require("@dxos/react-ui");
162
+ var import_react_ui_theme6 = require("@dxos/react-ui-theme");
163
+ var import_react21 = require("@dxos/shell/react");
164
+ var import_react22 = __toESM(require("react"));
166
165
  var import_app_framework8 = require("@dxos/app-framework");
167
166
  var import_display_name = require("@dxos/display-name");
168
167
  var import_react_client4 = require("@dxos/react-client");
169
168
  var import_echo7 = require("@dxos/react-client/echo");
170
169
  var import_halo = require("@dxos/react-client/halo");
171
- var import_react_ui15 = require("@dxos/react-ui");
170
+ var import_react_ui14 = require("@dxos/react-ui");
172
171
  var import_react_ui_attention = require("@dxos/react-ui-attention");
173
172
  var import_util2 = require("@dxos/util");
174
- var import_react27 = __toESM(require("react"));
173
+ var import_react23 = __toESM(require("react"));
175
174
  var import_app_framework9 = require("@dxos/app-framework");
176
175
  var import_plugin_settings = require("@dxos/plugin-settings");
176
+ var import_react_ui15 = require("@dxos/react-ui");
177
+ var import_react24 = __toESM(require("react"));
178
+ var import_context = require("@dxos/context");
179
+ var import_plugin_status_bar = require("@dxos/plugin-status-bar");
180
+ var import_react_client5 = require("@dxos/react-client");
177
181
  var import_react_ui16 = require("@dxos/react-ui");
182
+ var import_react25 = __toESM(require("react"));
183
+ var import_plugin_status_bar2 = require("@dxos/plugin-status-bar");
184
+ var import_react_ui17 = require("@dxos/react-ui");
185
+ var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
186
+ var import_react_ui_theme7 = require("@dxos/react-ui-theme");
187
+ var import_react26 = require("react");
188
+ var import_context2 = require("@dxos/context");
189
+ var import_protocols = require("@dxos/protocols");
190
+ var import_react_client6 = require("@dxos/react-client");
178
191
  var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
179
192
  var TOAST_TIMEOUT = 24e4;
180
193
  var AwaitingObject = ({ id }) => {
181
- const [open, setOpen] = (0, import_react5.useState)(true);
182
- const [waiting, setWaiting] = (0, import_react5.useState)(true);
183
- const [found, setFound] = (0, import_react5.useState)(false);
184
- const { t } = (0, import_react_ui2.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
194
+ const [open, setOpen] = (0, import_react4.useState)(true);
195
+ const [waiting, setWaiting] = (0, import_react4.useState)(true);
196
+ const [found, setFound] = (0, import_react4.useState)(false);
197
+ const { t } = (0, import_react_ui2.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
185
198
  const intentPlugin = (0, import_app_framework2.useResolvePlugin)(import_app_framework2.parseIntentPlugin);
186
199
  const navigationPlugin = (0, import_app_framework2.useResolvePlugin)(import_app_framework2.parseNavigationPlugin);
187
200
  const client = (0, import_react_client2.useClient)();
188
201
  const objects = (0, import_echo2.useQuery)(client.spaces);
189
- (0, import_react5.useEffect)(() => {
202
+ (0, import_react4.useEffect)(() => {
190
203
  if (!id) {
191
204
  return;
192
205
  }
@@ -197,7 +210,7 @@ var AwaitingObject = ({ id }) => {
197
210
  }, [
198
211
  id
199
212
  ]);
200
- (0, import_react5.useEffect)(() => {
213
+ (0, import_react4.useEffect)(() => {
201
214
  if (objects.findIndex((object) => (0, import_echo2.fullyQualifiedId)(object) === id) > -1) {
202
215
  setFound(true);
203
216
  if (navigationPlugin?.provides.location.active === id) {
@@ -210,8 +223,8 @@ var AwaitingObject = ({ id }) => {
210
223
  intentPlugin
211
224
  ]);
212
225
  const handleClose = async () => intentPlugin?.provides.intent.dispatch({
213
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
214
- action: import_chunk_6CNYF6YU.SpaceAction.WAIT_FOR_OBJECT,
226
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
227
+ action: import_chunk_P4XUXM7Y.SpaceAction.WAIT_FOR_OBJECT,
215
228
  data: {
216
229
  id: void 0
217
230
  }
@@ -229,73 +242,72 @@ var AwaitingObject = ({ id }) => {
229
242
  });
230
243
  void handleClose();
231
244
  };
232
- return /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Root, {
245
+ return /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Root, {
233
246
  open,
234
247
  duration: TOAST_TIMEOUT,
235
248
  onOpenChange: setOpen
236
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Body, null, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Title, {
249
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Body, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Title, {
237
250
  classNames: "flex items-center gap-2"
238
- }, found ? /* @__PURE__ */ import_react5.default.createElement(import_react5.default.Fragment, null, /* @__PURE__ */ import_react5.default.createElement(import_react4.CheckCircle, {
251
+ }, found ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CheckCircle, {
239
252
  className: (0, import_react_ui_theme.getSize)(5)
240
- }), /* @__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, {
253
+ }), /* @__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, {
241
254
  className: (0, import_react_ui_theme.mx)((0, import_react_ui_theme.getSize)(5), "animate-spin")
242
- }), /* @__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, {
255
+ }), /* @__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, {
243
256
  className: (0, import_react_ui_theme.getSize)(5)
244
- }), /* @__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, {
257
+ }), /* @__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, {
245
258
  altText: t("go to object alt"),
246
259
  asChild: true
247
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Button, {
260
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
248
261
  variant: "primary",
249
262
  onClick: handleNavigate
250
- }, t("go to object label"))), /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Close, {
263
+ }, t("go to object label"))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Close, {
251
264
  asChild: true
252
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Button, {
265
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
253
266
  onClick: handleClose
254
267
  }, t("close label", {
255
268
  ns: "appkit"
256
- })))) : /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Toast.Close, {
269
+ })))) : /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Close, {
257
270
  asChild: true
258
- }, /* @__PURE__ */ import_react5.default.createElement(import_react_ui2.Button, {
271
+ }, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
259
272
  onClick: handleClose
260
273
  }, t(waiting ? "close label" : "confirm label", {
261
274
  ns: "appkit"
262
275
  })))));
263
276
  };
264
277
  var CollectionMain = ({ collection }) => {
265
- const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
266
- return /* @__PURE__ */ import_react6.default.createElement("div", {
278
+ const { t } = (0, import_react_ui3.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
279
+ return /* @__PURE__ */ import_react5.default.createElement("div", {
267
280
  role: "none",
268
281
  className: (0, import_react_ui_theme2.mx)(import_react_ui_theme2.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
269
282
  "data-testid": "composer.firstRunMessage"
270
- }, /* @__PURE__ */ import_react6.default.createElement("p", {
283
+ }, /* @__PURE__ */ import_react5.default.createElement("p", {
271
284
  role: "alert",
272
285
  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")
273
286
  }, collection.name ?? t("unnamed collection label")));
274
287
  };
275
288
  var CollectionSection = ({ collection }) => {
276
- const { t } = (0, import_react_ui4.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
277
- return /* @__PURE__ */ import_react7.default.createElement("div", {
289
+ const { t } = (0, import_react_ui4.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
290
+ return /* @__PURE__ */ import_react6.default.createElement("div", {
278
291
  className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
279
- }, /* @__PURE__ */ import_react7.default.createElement("span", {
292
+ }, /* @__PURE__ */ import_react6.default.createElement("span", {
280
293
  className: "truncate"
281
294
  }, collection.name ?? t("unnamed collection label")));
282
295
  };
283
- var EmptySpace = () => {
284
- const { t } = (0, import_react_ui5.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
285
- return /* @__PURE__ */ import_react8.default.createElement("div", {
286
- role: "none",
287
- 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)
288
- }, t("empty space message"));
289
- };
290
- var EmptyTree = () => {
291
- const { t } = (0, import_react_ui6.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
292
- return /* @__PURE__ */ import_react9.default.createElement("div", {
293
- role: "none",
294
- 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)
295
- }, t("empty tree message"));
296
+ var DefaultObjectSettings = ({ object }) => {
297
+ const { t } = (0, import_react_ui5.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
298
+ return /* @__PURE__ */ import_react7.default.createElement("div", {
299
+ role: "form",
300
+ className: "flex flex-col w-full p-2 gap-1"
301
+ }, /* @__PURE__ */ import_react7.default.createElement(import_react_ui5.Input.Root, null, /* @__PURE__ */ import_react7.default.createElement(import_react_ui5.Input.Label, null, t("name label")), /* @__PURE__ */ import_react7.default.createElement(import_react_ui5.Input.TextInput, {
302
+ placeholder: t("name placeholder"),
303
+ value: object.name,
304
+ onChange: (event) => {
305
+ object.name = event.target.value;
306
+ }
307
+ })));
296
308
  };
297
309
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/util.tsx";
298
- var SPACES = `${import_chunk_6CNYF6YU.SPACE_PLUGIN}-spaces`;
310
+ var SPACES = `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}-spaces`;
299
311
  var SPACE_TYPE = "dxos.org/type/Space";
300
312
  var COMPOSER_SPACE_LOCK = "dxos.org/plugin/space/lock";
301
313
  var SHARED = "shared-spaces";
@@ -311,12 +323,12 @@ var getSpaceDisplayName = (space, { personal, namesCache = {} } = {}) => {
311
323
  return space.state.get() === import_echo4.SpaceState.SPACE_READY && (space.properties.name?.length ?? 0) > 0 ? space.properties.name : namesCache[space.id] ? namesCache[space.id] : personal ? [
312
324
  "personal space label",
313
325
  {
314
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
326
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
315
327
  }
316
328
  ] : [
317
329
  "unnamed space label",
318
330
  {
319
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
331
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
320
332
  }
321
333
  ];
322
334
  };
@@ -363,8 +375,8 @@ var checkPendingMigration = (space) => {
363
375
  };
364
376
  var constructSpaceNode = ({ space, personal, namesCache, resolve }) => {
365
377
  const hasPendingMigration = checkPendingMigration(space);
366
- const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
367
- const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof import_chunk_CVZPI2P3.CollectionType ? getCollectionGraphNodePartials({
378
+ const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[import_chunk_CTYDNFGG.CollectionType.typename];
379
+ const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof import_chunk_CTYDNFGG.CollectionType ? getCollectionGraphNodePartials({
368
380
  collection,
369
381
  space,
370
382
  resolve
@@ -380,8 +392,7 @@ var constructSpaceNode = ({ space, personal, namesCache, resolve }) => {
380
392
  namesCache
381
393
  }),
382
394
  description: space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties.description,
383
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Planet, props),
384
- iconSymbol: "ph--planet--regular",
395
+ icon: "ph--planet--regular",
385
396
  disabled: space.state.get() !== import_echo4.SpaceState.SPACE_READY || hasPendingMigration,
386
397
  testId: "spacePlugin.space"
387
398
  }
@@ -394,21 +405,20 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
394
405
  if (state !== import_echo4.SpaceState.SPACE_READY || hasPendingMigration) {
395
406
  return [];
396
407
  }
397
- const collection = space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
408
+ const collection = space.properties[import_chunk_CTYDNFGG.CollectionType.typename];
398
409
  const actions = [
399
410
  {
400
- id: getId(import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT),
411
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT),
401
412
  type: import_plugin_graph2.ACTION_GROUP_TYPE,
402
413
  data: import_plugin_graph2.actionGroupSymbol,
403
414
  properties: {
404
415
  label: [
405
416
  "create object in space label",
406
417
  {
407
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
418
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
408
419
  }
409
420
  ],
410
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Plus, props),
411
- iconSymbol: "ph--plus--regular",
421
+ icon: "ph--plus--regular",
412
422
  disposition: "toolbar",
413
423
  // TODO(wittjosiah): This is currently a navtree feature. Address this with cmd+k integration.
414
424
  // mainAreaDisposition: 'in-flow',
@@ -417,15 +427,15 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
417
427
  },
418
428
  nodes: [
419
429
  {
420
- id: getId(import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT.replace("object", "collection")),
430
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT.replace("object", "collection")),
421
431
  type: import_plugin_graph2.ACTION_TYPE,
422
432
  data: () => dispatch([
423
433
  {
424
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
425
- action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
434
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
435
+ action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
426
436
  data: {
427
437
  target: collection,
428
- object: (0, import_echo_schema2.create)(import_chunk_CVZPI2P3.CollectionType, {
438
+ object: (0, import_echo_schema2.create)(import_chunk_CTYDNFGG.CollectionType, {
429
439
  objects: [],
430
440
  views: {}
431
441
  })
@@ -439,11 +449,10 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
439
449
  label: [
440
450
  "create collection label",
441
451
  {
442
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
452
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
443
453
  }
444
454
  ],
445
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.CardsThree, props),
446
- iconSymbol: "ph--cards-three--regular",
455
+ icon: "ph--cards-three--regular",
447
456
  testId: "spacePlugin.createCollection"
448
457
  }
449
458
  }
@@ -459,12 +468,12 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
459
468
  const actions = [];
460
469
  if (hasPendingMigration) {
461
470
  actions.push({
462
- id: getId(import_chunk_6CNYF6YU.SpaceAction.MIGRATE),
471
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.MIGRATE),
463
472
  type: import_plugin_graph2.ACTION_GROUP_TYPE,
464
473
  data: async () => {
465
474
  await dispatch({
466
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
467
- action: import_chunk_6CNYF6YU.SpaceAction.MIGRATE,
475
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
476
+ action: import_chunk_P4XUXM7Y.SpaceAction.MIGRATE,
468
477
  data: {
469
478
  space
470
479
  }
@@ -474,11 +483,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
474
483
  label: [
475
484
  "migrate space label",
476
485
  {
477
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
486
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
478
487
  }
479
488
  ],
480
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Database, props),
481
- iconSymbol: "ph--database--regular",
489
+ icon: "ph--database--regular",
482
490
  disposition: "toolbar",
483
491
  mainAreaDisposition: "in-flow",
484
492
  disabled: migrating || import_migrations2.Migrations.running(space)
@@ -488,15 +496,15 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
488
496
  if (state === import_echo4.SpaceState.SPACE_READY && !hasPendingMigration) {
489
497
  const locked = space.properties[COMPOSER_SPACE_LOCK];
490
498
  actions.push({
491
- id: getId(import_chunk_6CNYF6YU.SpaceAction.SHARE),
499
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.SHARE),
492
500
  type: import_plugin_graph2.ACTION_TYPE,
493
501
  data: async () => {
494
502
  if (locked) {
495
503
  return;
496
504
  }
497
505
  await dispatch({
498
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
499
- action: import_chunk_6CNYF6YU.SpaceAction.SHARE,
506
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
507
+ action: import_chunk_P4XUXM7Y.SpaceAction.SHARE,
500
508
  data: {
501
509
  spaceId: space.id
502
510
  }
@@ -506,11 +514,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
506
514
  label: [
507
515
  "share space label",
508
516
  {
509
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
517
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
510
518
  }
511
519
  ],
512
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Users, props),
513
- iconSymbol: "ph--users--regular",
520
+ icon: "ph--users--regular",
514
521
  disabled: locked,
515
522
  keyBinding: {
516
523
  macos: "meta+.",
@@ -519,12 +526,12 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
519
526
  mainAreaDisposition: "absent"
520
527
  }
521
528
  }, {
522
- id: locked ? getId(import_chunk_6CNYF6YU.SpaceAction.UNLOCK) : getId(import_chunk_6CNYF6YU.SpaceAction.LOCK),
529
+ id: locked ? getId(import_chunk_P4XUXM7Y.SpaceAction.UNLOCK) : getId(import_chunk_P4XUXM7Y.SpaceAction.LOCK),
523
530
  type: import_plugin_graph2.ACTION_TYPE,
524
531
  data: async () => {
525
532
  await dispatch({
526
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
527
- action: locked ? import_chunk_6CNYF6YU.SpaceAction.UNLOCK : import_chunk_6CNYF6YU.SpaceAction.LOCK,
533
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
534
+ action: locked ? import_chunk_P4XUXM7Y.SpaceAction.UNLOCK : import_chunk_P4XUXM7Y.SpaceAction.LOCK,
528
535
  data: {
529
536
  space
530
537
  }
@@ -534,19 +541,18 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
534
541
  label: [
535
542
  locked ? "unlock space label" : "lock space label",
536
543
  {
537
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
544
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
538
545
  }
539
546
  ],
540
- icon: locked ? (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.LockSimpleOpen, props) : (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.LockSimple, props),
541
- iconSymbol: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
547
+ icon: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
542
548
  }
543
549
  }, {
544
- id: getId(import_chunk_6CNYF6YU.SpaceAction.RENAME),
550
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.RENAME),
545
551
  type: import_plugin_graph2.ACTION_TYPE,
546
552
  data: async (params) => {
547
553
  await dispatch({
548
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
549
- action: import_chunk_6CNYF6YU.SpaceAction.RENAME,
554
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
555
+ action: import_chunk_P4XUXM7Y.SpaceAction.RENAME,
550
556
  data: {
551
557
  space,
552
558
  ...params
@@ -557,11 +563,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
557
563
  label: [
558
564
  "rename space label",
559
565
  {
560
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
566
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
561
567
  }
562
568
  ],
563
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.PencilSimpleLine, props),
564
- iconSymbol: "ph--pencil-simple-line--regular",
569
+ icon: "ph--pencil-simple-line--regular",
565
570
  keyBinding: {
566
571
  macos: "shift+F6",
567
572
  windows: "shift+F6"
@@ -572,12 +577,12 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
572
577
  }
573
578
  if (state !== import_echo4.SpaceState.SPACE_INACTIVE && !hasPendingMigration) {
574
579
  actions.push({
575
- id: getId(import_chunk_6CNYF6YU.SpaceAction.CLOSE),
580
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.CLOSE),
576
581
  type: import_plugin_graph2.ACTION_TYPE,
577
582
  data: async () => {
578
583
  await dispatch({
579
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
580
- action: import_chunk_6CNYF6YU.SpaceAction.CLOSE,
584
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
585
+ action: import_chunk_P4XUXM7Y.SpaceAction.CLOSE,
581
586
  data: {
582
587
  space
583
588
  }
@@ -587,11 +592,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
587
592
  label: [
588
593
  "close space label",
589
594
  {
590
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
595
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
591
596
  }
592
597
  ],
593
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.X, props),
594
- iconSymbol: "ph--x--regular",
598
+ icon: "ph--x--regular",
595
599
  mainAreaDisposition: "menu",
596
600
  disabled: personal
597
601
  }
@@ -599,12 +603,12 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
599
603
  }
600
604
  if (state === import_echo4.SpaceState.SPACE_INACTIVE) {
601
605
  actions.push({
602
- id: getId(import_chunk_6CNYF6YU.SpaceAction.OPEN),
606
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.OPEN),
603
607
  type: import_plugin_graph2.ACTION_TYPE,
604
608
  data: async () => {
605
609
  await dispatch({
606
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
607
- action: import_chunk_6CNYF6YU.SpaceAction.OPEN,
610
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
611
+ action: import_chunk_P4XUXM7Y.SpaceAction.OPEN,
608
612
  data: {
609
613
  space
610
614
  }
@@ -614,11 +618,10 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
614
618
  label: [
615
619
  "open space label",
616
620
  {
617
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
621
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
618
622
  }
619
623
  ],
620
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.ClockCounterClockwise, props),
621
- iconSymbol: "ph--clock-counter-clockwise--regular",
624
+ icon: "ph--clock-counter-clockwise--regular",
622
625
  disposition: "toolbar",
623
626
  mainAreaDisposition: "in-flow"
624
627
  }
@@ -635,7 +638,7 @@ var createObjectNode = ({ object, space, resolve }) => {
635
638
  if (Object.keys(metadata).length === 0) {
636
639
  return void 0;
637
640
  }
638
- const partials = object instanceof import_chunk_CVZPI2P3.CollectionType ? getCollectionGraphNodePartials({
641
+ const partials = object instanceof import_chunk_CTYDNFGG.CollectionType ? getCollectionGraphNodePartials({
639
642
  collection: object,
640
643
  space,
641
644
  resolve
@@ -649,11 +652,10 @@ var createObjectNode = ({ object, space, resolve }) => {
649
652
  label: metadata.label?.(object) || object.name || metadata.placeholder || [
650
653
  "unnamed object label",
651
654
  {
652
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
655
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
653
656
  }
654
657
  ],
655
- icon: metadata.icon ?? (() => /* @__PURE__ */ import_react13.default.createElement(import_react12.Placeholder, null)),
656
- iconSymbol: metadata.iconSymbol ?? "ph--placeholder--regular",
658
+ icon: metadata.icon ?? "ph--placeholder--regular",
657
659
  testId: "spacePlugin.object",
658
660
  persistenceClass: "echo",
659
661
  persistenceKey: space?.id
@@ -661,25 +663,24 @@ var createObjectNode = ({ object, space, resolve }) => {
661
663
  };
662
664
  };
663
665
  var constructObjectActionGroups = ({ object, dispatch }) => {
664
- if (!(object instanceof import_chunk_CVZPI2P3.CollectionType)) {
666
+ if (!(object instanceof import_chunk_CTYDNFGG.CollectionType)) {
665
667
  return [];
666
668
  }
667
669
  const collection = object;
668
670
  const getId = (id) => `${id}/${(0, import_echo4.fullyQualifiedId)(object)}`;
669
671
  const actions = [
670
672
  {
671
- id: getId(import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT),
673
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT),
672
674
  type: import_plugin_graph2.ACTION_GROUP_TYPE,
673
675
  data: import_plugin_graph2.actionGroupSymbol,
674
676
  properties: {
675
677
  label: [
676
678
  "create object in collection label",
677
679
  {
678
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
680
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
679
681
  }
680
682
  ],
681
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Plus, props),
682
- iconSymbol: "ph--plus--regular",
683
+ icon: "ph--plus--regular",
683
684
  disposition: "toolbar",
684
685
  // TODO(wittjosiah): This is currently a navtree feature. Address this with cmd+k integration.
685
686
  // mainAreaDisposition: 'in-flow',
@@ -688,15 +689,15 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
688
689
  },
689
690
  nodes: [
690
691
  {
691
- id: getId(import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT.replace("object", "collection")),
692
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT.replace("object", "collection")),
692
693
  type: import_plugin_graph2.ACTION_TYPE,
693
694
  data: () => dispatch([
694
695
  {
695
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
696
- action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
696
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
697
+ action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
697
698
  data: {
698
699
  target: collection,
699
- object: (0, import_echo_schema2.create)(import_chunk_CVZPI2P3.CollectionType, {
700
+ object: (0, import_echo_schema2.create)(import_chunk_CTYDNFGG.CollectionType, {
700
701
  objects: [],
701
702
  views: {}
702
703
  })
@@ -710,11 +711,10 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
710
711
  label: [
711
712
  "create collection label",
712
713
  {
713
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
714
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
714
715
  }
715
716
  ],
716
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.CardsThree, props),
717
- iconSymbol: "ph--cards-three--regular",
717
+ icon: "ph--cards-three--regular",
718
718
  testId: "spacePlugin.createCollection"
719
719
  }
720
720
  }
@@ -728,11 +728,11 @@ var constructObjectActions = ({ node, dispatch }) => {
728
728
  const getId = (id) => `${id}/${(0, import_echo4.fullyQualifiedId)(object)}`;
729
729
  const actions = [
730
730
  {
731
- id: getId(import_chunk_6CNYF6YU.SpaceAction.RENAME_OBJECT),
731
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.RENAME_OBJECT),
732
732
  type: import_plugin_graph2.ACTION_TYPE,
733
733
  data: async (params) => {
734
734
  await dispatch({
735
- action: import_chunk_6CNYF6YU.SpaceAction.RENAME_OBJECT,
735
+ action: import_chunk_P4XUXM7Y.SpaceAction.RENAME_OBJECT,
736
736
  data: {
737
737
  object,
738
738
  ...params
@@ -741,29 +741,28 @@ var constructObjectActions = ({ node, dispatch }) => {
741
741
  },
742
742
  properties: {
743
743
  label: [
744
- object instanceof import_chunk_CVZPI2P3.CollectionType ? "rename collection label" : "rename object label",
744
+ object instanceof import_chunk_CTYDNFGG.CollectionType ? "rename collection label" : "rename object label",
745
745
  {
746
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
746
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
747
747
  }
748
748
  ],
749
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.PencilSimpleLine, props),
750
- iconSymbol: "ph--pencil-simple-line--regular",
749
+ icon: "ph--pencil-simple-line--regular",
751
750
  // TODO(wittjosiah): Doesn't work.
752
751
  // keyBinding: 'shift+F6',
753
752
  testId: "spacePlugin.renameObject"
754
753
  }
755
754
  },
756
755
  {
757
- id: getId(import_chunk_6CNYF6YU.SpaceAction.REMOVE_OBJECT),
756
+ id: getId(import_chunk_P4XUXM7Y.SpaceAction.REMOVE_OBJECT),
758
757
  type: import_plugin_graph2.ACTION_TYPE,
759
758
  data: async () => {
760
759
  const graph = (0, import_plugin_graph2.getGraph)(node);
761
760
  const collection = graph.nodes(node, {
762
761
  relation: "inbound"
763
- }).find(({ data }) => data instanceof import_chunk_CVZPI2P3.CollectionType)?.data;
762
+ }).find(({ data }) => data instanceof import_chunk_CTYDNFGG.CollectionType)?.data;
764
763
  await dispatch([
765
764
  {
766
- action: import_chunk_6CNYF6YU.SpaceAction.REMOVE_OBJECT,
765
+ action: import_chunk_P4XUXM7Y.SpaceAction.REMOVE_OBJECT,
767
766
  data: {
768
767
  object,
769
768
  collection
@@ -773,14 +772,13 @@ var constructObjectActions = ({ node, dispatch }) => {
773
772
  },
774
773
  properties: {
775
774
  label: [
776
- object instanceof import_chunk_CVZPI2P3.CollectionType ? "delete collection label" : "delete object label",
775
+ object instanceof import_chunk_CTYDNFGG.CollectionType ? "delete collection label" : "delete object label",
777
776
  {
778
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
777
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
779
778
  }
780
779
  ],
781
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Trash, props),
782
- iconSymbol: "ph--trash--regular",
783
- keyBinding: object instanceof import_chunk_CVZPI2P3.CollectionType ? void 0 : "shift+meta+Backspace",
780
+ icon: "ph--trash--regular",
781
+ keyBinding: object instanceof import_chunk_CTYDNFGG.CollectionType ? void 0 : "shift+meta+Backspace",
784
782
  testId: "spacePlugin.deleteObject"
785
783
  }
786
784
  },
@@ -795,11 +793,10 @@ var constructObjectActions = ({ node, dispatch }) => {
795
793
  label: [
796
794
  "copy link label",
797
795
  {
798
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
796
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
799
797
  }
800
798
  ],
801
- icon: (props) => /* @__PURE__ */ import_react13.default.createElement(import_react12.Link, props),
802
- iconSymbol: "ph--link--regular",
799
+ icon: "ph--link--regular",
803
800
  testId: "spacePlugin.copyLink"
804
801
  }
805
802
  }
@@ -835,12 +832,12 @@ var getNestedObjects = async (object, resolve) => {
835
832
  };
836
833
  var cloneObject = async (object, resolve) => {
837
834
  const schema = (0, import_echo_schema2.getSchema)(object);
838
- const typename = schema ? (0, import_echo_schema2.getEchoObjectAnnotation)(schema)?.typename ?? import_echo_schema2.EXPANDO_TYPENAME : import_echo_schema2.EXPANDO_TYPENAME;
835
+ const typename = schema ? (0, import_echo_schema2.getObjectAnnotation)(schema)?.typename ?? import_echo_schema2.EXPANDO_TYPENAME : import_echo_schema2.EXPANDO_TYPENAME;
839
836
  const metadata = resolve(typename);
840
837
  const serializer = metadata.serializer;
841
838
  (0, import_invariant.invariant)(serializer, `No serializer for type: ${typename}`, {
842
839
  F: __dxlog_file,
843
- L: 639,
840
+ L: 604,
844
841
  S: void 0,
845
842
  A: [
846
843
  "serializer",
@@ -856,36 +853,36 @@ var cloneObject = async (object, resolve) => {
856
853
  });
857
854
  };
858
855
  var MenuFooter = ({ object }) => {
859
- const { t } = (0, import_react_ui7.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
856
+ const { t } = (0, import_react_ui6.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
860
857
  const client = (0, import_react_client3.useClient)();
861
858
  const space = (0, import_echo3.getSpace)(object);
862
859
  const spaceName = space ? getSpaceDisplayName(space, {
863
860
  personal: client.spaces.default === space
864
861
  }) : "";
865
- 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", {
862
+ return space ? /* @__PURE__ */ import_react9.default.createElement(import_react9.default.Fragment, null, /* @__PURE__ */ import_react9.default.createElement(import_react_ui6.DropdownMenu.Separator, null), /* @__PURE__ */ import_react9.default.createElement(import_react_ui6.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react9.default.createElement("dl", {
866
863
  className: "pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
867
- }, /* @__PURE__ */ import_react11.default.createElement("dt", {
864
+ }, /* @__PURE__ */ import_react9.default.createElement("dt", {
868
865
  className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
869
- }, t("location label")), /* @__PURE__ */ import_react11.default.createElement("dd", {
866
+ }, t("location label")), /* @__PURE__ */ import_react9.default.createElement("dd", {
870
867
  className: "line-clamp-3"
871
- }, /* @__PURE__ */ import_react11.default.createElement(import_react10.Planet, {
868
+ }, /* @__PURE__ */ import_react9.default.createElement(import_react8.Planet, {
872
869
  className: "inline-block mie-1"
873
- }), (0, import_react_ui7.toLocalizedString)(spaceName, t)))) : null;
870
+ }), (0, import_react_ui6.toLocalizedString)(spaceName, t)))) : null;
874
871
  };
875
872
  var WAIT_FOR_OBJECT_TIMEOUT2 = 1e3;
876
873
  var MissingObject = ({ id }) => {
877
- const { t } = (0, import_react_ui8.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
878
- const [waiting, setWaiting] = (0, import_react14.useState)(false);
874
+ const { t } = (0, import_react_ui7.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
875
+ const [waiting, setWaiting] = (0, import_react10.useState)(false);
879
876
  const intentPlugin = (0, import_app_framework4.useResolvePlugin)(import_app_framework4.parseIntentPlugin);
880
- (0, import_react14.useEffect)(() => {
877
+ (0, import_react10.useEffect)(() => {
881
878
  if (!intentPlugin) {
882
879
  return;
883
880
  }
884
881
  const timeout = setTimeout(async () => {
885
882
  setWaiting(true);
886
883
  await intentPlugin.provides.intent.dispatch({
887
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
888
- action: import_chunk_6CNYF6YU.SpaceAction.WAIT_FOR_OBJECT,
884
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
885
+ action: import_chunk_P4XUXM7Y.SpaceAction.WAIT_FOR_OBJECT,
889
886
  data: {
890
887
  id
891
888
  }
@@ -896,13 +893,13 @@ var MissingObject = ({ id }) => {
896
893
  intentPlugin,
897
894
  id
898
895
  ]);
899
- return /* @__PURE__ */ import_react14.default.createElement("div", {
896
+ return /* @__PURE__ */ import_react10.default.createElement("div", {
900
897
  role: "none",
901
- className: (0, import_react_ui_theme5.mx)(import_react_ui_theme5.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8")
902
- }, waiting ? /* @__PURE__ */ import_react14.default.createElement("p", {
898
+ className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8")
899
+ }, waiting ? /* @__PURE__ */ import_react10.default.createElement("p", {
903
900
  role: "alert",
904
- 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")
905
- }, t("missing object message")) : /* @__PURE__ */ import_react14.default.createElement(import_react_ui8.Status, {
901
+ className: (0, import_react_ui_theme3.mx)(import_react_ui_theme3.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg flex items-center justify-center p-8 font-normal text-lg")
902
+ }, t("missing object message")) : /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.Status, {
906
903
  indeterminate: true,
907
904
  "aria-label": "Initializing"
908
905
  }));
@@ -914,12 +911,12 @@ var Status2;
914
911
  Status3[Status3["ERROR"] = 2] = "ERROR";
915
912
  })(Status2 || (Status2 = {}));
916
913
  var PersistenceStatus = ({ db }) => {
917
- const { t } = (0, import_react_ui9.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
918
- const [displayMessage, setDisplayMessage] = (0, import_react16.useState)(false);
919
- const [status, naturalSetStatus] = (0, import_react16.useState)(0);
920
- const [prevStatus, setPrevStatus] = (0, import_react16.useState)(0);
914
+ const { t } = (0, import_react_ui8.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
915
+ const [displayMessage, setDisplayMessage] = (0, import_react12.useState)(false);
916
+ const [status, naturalSetStatus] = (0, import_react12.useState)(0);
917
+ const [prevStatus, setPrevStatus] = (0, import_react12.useState)(0);
921
918
  const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
922
- (0, import_react16.useEffect)(() => {
919
+ (0, import_react12.useEffect)(() => {
923
920
  setPrevStatus(status);
924
921
  if (prevStatus !== status && status === 0) {
925
922
  setDisplayMessage(true);
@@ -931,44 +928,44 @@ var PersistenceStatus = ({ db }) => {
931
928
  ]);
932
929
  switch (status) {
933
930
  case 2:
934
- return /* @__PURE__ */ import_react16.default.createElement("div", {
931
+ return /* @__PURE__ */ import_react12.default.createElement("div", {
935
932
  className: "flex items-center"
936
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.Warning, {
937
- className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
938
- }), /* @__PURE__ */ import_react16.default.createElement("span", {
939
- className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.warningText)
933
+ }, /* @__PURE__ */ import_react12.default.createElement(import_react11.Warning, {
934
+ className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(4), "me-1")
935
+ }), /* @__PURE__ */ import_react12.default.createElement("span", {
936
+ className: (0, import_react_ui_theme4.mx)("text-sm", import_react_ui_theme4.warningText)
940
937
  }, t("persistence error label")));
941
938
  case 1:
942
- return /* @__PURE__ */ import_react16.default.createElement("div", {
939
+ return /* @__PURE__ */ import_react12.default.createElement("div", {
943
940
  className: "flex items-center"
944
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.ArrowsCounterClockwise, {
945
- className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
946
- }), /* @__PURE__ */ import_react16.default.createElement("span", {
947
- className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
941
+ }, /* @__PURE__ */ import_react12.default.createElement(import_react11.ArrowsCounterClockwise, {
942
+ className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(4), "me-1")
943
+ }), /* @__PURE__ */ import_react12.default.createElement("span", {
944
+ className: (0, import_react_ui_theme4.mx)("text-sm", import_react_ui_theme4.staticPlaceholderText)
948
945
  }, t("persistence pending label")));
949
946
  case 0:
950
947
  default:
951
- return /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.Tooltip.Root, {
948
+ return /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Root, {
952
949
  delayDuration: 400
953
- }, /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.Tooltip.Trigger, {
950
+ }, /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Trigger, {
954
951
  role: "status",
955
952
  className: "flex items-center"
956
- }, /* @__PURE__ */ import_react16.default.createElement(import_react15.CheckCircle, {
957
- className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
958
- }), displayMessage && /* @__PURE__ */ import_react16.default.createElement("span", {
959
- className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
960
- }, 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, {
953
+ }, /* @__PURE__ */ import_react12.default.createElement(import_react11.CheckCircle, {
954
+ className: (0, import_react_ui_theme4.mx)((0, import_react_ui_theme4.getSize)(4), "me-1")
955
+ }), displayMessage && /* @__PURE__ */ import_react12.default.createElement("span", {
956
+ className: (0, import_react_ui_theme4.mx)("text-sm", import_react_ui_theme4.staticPlaceholderText)
957
+ }, t("persisted locally label"))), /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Portal, null, /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Content, {
961
958
  classNames: "z-10"
962
- }, t("persisted locally message"), /* @__PURE__ */ import_react16.default.createElement(import_react_ui9.Tooltip.Arrow, null))));
959
+ }, t("persisted locally message"), /* @__PURE__ */ import_react12.default.createElement(import_react_ui8.Tooltip.Arrow, null))));
963
960
  }
964
961
  };
965
962
  var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
966
963
  var PopoverRenameObject = ({ object: obj }) => {
967
- const { t } = (0, import_react_ui10.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
968
- const doneButton = (0, import_react17.useRef)(null);
964
+ const { t } = (0, import_react_ui9.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
965
+ const doneButton = (0, import_react13.useRef)(null);
969
966
  const object = obj;
970
- const [name, setName] = (0, import_react17.useState)(object.name || object.title || "");
971
- const handleDone = (0, import_react17.useCallback)(() => {
967
+ const [name, setName] = (0, import_react13.useState)(object.name || object.title || "");
968
+ const handleDone = (0, import_react13.useCallback)(() => {
972
969
  try {
973
970
  object.name = name;
974
971
  } catch {
@@ -989,23 +986,23 @@ var PopoverRenameObject = ({ object: obj }) => {
989
986
  object,
990
987
  name
991
988
  ]);
992
- return /* @__PURE__ */ import_react17.default.createElement("div", {
989
+ return /* @__PURE__ */ import_react13.default.createElement("div", {
993
990
  role: "none",
994
991
  className: "p-1 flex gap-2"
995
- }, /* @__PURE__ */ import_react17.default.createElement("div", {
992
+ }, /* @__PURE__ */ import_react13.default.createElement("div", {
996
993
  role: "none",
997
994
  className: "flex-1"
998
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Input.Root, null, /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Input.Label, {
995
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Input.Root, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Input.Label, {
999
996
  srOnly: true
1000
- }, t("object name label")), /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Input.TextInput, {
997
+ }, t("object name label")), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Input.TextInput, {
1001
998
  placeholder: t("object title placeholder"),
1002
999
  value: name,
1003
1000
  "data-testid": "spacePlugin.renameObject.input",
1004
1001
  onChange: ({ target: { value } }) => setName(value),
1005
1002
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1006
- }))), /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Popover.Close, {
1003
+ }))), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Popover.Close, {
1007
1004
  asChild: true
1008
- }, /* @__PURE__ */ import_react17.default.createElement(import_react_ui10.Button, {
1005
+ }, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Button, {
1009
1006
  ref: doneButton,
1010
1007
  classNames: "self-stretch",
1011
1008
  onClick: handleDone
@@ -1014,33 +1011,33 @@ var PopoverRenameObject = ({ object: obj }) => {
1014
1011
  }))));
1015
1012
  };
1016
1013
  var PopoverRenameSpace = ({ space }) => {
1017
- const { t } = (0, import_react_ui11.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1018
- const doneButton = (0, import_react18.useRef)(null);
1019
- const [name, setName] = (0, import_react18.useState)(space.properties.name ?? "");
1020
- const handleDone = (0, import_react18.useCallback)(() => {
1014
+ const { t } = (0, import_react_ui10.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
1015
+ const doneButton = (0, import_react14.useRef)(null);
1016
+ const [name, setName] = (0, import_react14.useState)(space.properties.name ?? "");
1017
+ const handleDone = (0, import_react14.useCallback)(() => {
1021
1018
  space.properties.name = name;
1022
1019
  }, [
1023
1020
  space,
1024
1021
  name
1025
1022
  ]);
1026
- return /* @__PURE__ */ import_react18.default.createElement("div", {
1023
+ return /* @__PURE__ */ import_react14.default.createElement("div", {
1027
1024
  role: "none",
1028
1025
  className: "p-1 flex gap-2"
1029
- }, /* @__PURE__ */ import_react18.default.createElement("div", {
1026
+ }, /* @__PURE__ */ import_react14.default.createElement("div", {
1030
1027
  role: "none",
1031
1028
  className: "flex-1"
1032
- }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Input.Root, null, /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Input.Label, {
1029
+ }, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.Root, null, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.Label, {
1033
1030
  srOnly: true
1034
- }, t("space name label")), /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Input.TextInput, {
1031
+ }, t("space name label")), /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.TextInput, {
1035
1032
  defaultValue: space.properties.name ?? "",
1036
1033
  placeholder: t("unnamed space label"),
1037
1034
  onChange: ({ target: { value } }) => setName(value),
1038
1035
  // TODO(wittjosiah): Ideally this should access the popover context to close the popover.
1039
1036
  // Currently this is not possible because Radix does not expose the popover context.
1040
1037
  onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
1041
- }))), /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Popover.Close, {
1038
+ }))), /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Popover.Close, {
1042
1039
  asChild: true
1043
- }, /* @__PURE__ */ import_react18.default.createElement(import_react_ui11.Button, {
1040
+ }, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Button, {
1044
1041
  ref: doneButton,
1045
1042
  classNames: "self-stretch",
1046
1043
  onClick: handleDone
@@ -1050,9 +1047,9 @@ var PopoverRenameSpace = ({ space }) => {
1050
1047
  };
1051
1048
  var ShareSpaceButton = ({ spaceId }) => {
1052
1049
  const dispatch = (0, import_app_framework5.useIntentDispatcher)();
1053
- return /* @__PURE__ */ import_react19.default.createElement(ShareSpaceButtonImpl, {
1050
+ return /* @__PURE__ */ import_react15.default.createElement(ShareSpaceButtonImpl, {
1054
1051
  onClick: () => dispatch({
1055
- action: import_chunk_6CNYF6YU.SpaceAction.SHARE,
1052
+ action: import_chunk_P4XUXM7Y.SpaceAction.SHARE,
1056
1053
  data: {
1057
1054
  spaceId
1058
1055
  }
@@ -1060,8 +1057,8 @@ var ShareSpaceButton = ({ spaceId }) => {
1060
1057
  });
1061
1058
  };
1062
1059
  var ShareSpaceButtonImpl = ({ onClick }) => {
1063
- const { t } = (0, import_react_ui12.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1064
- return /* @__PURE__ */ import_react19.default.createElement(import_react_ui12.Button, {
1060
+ const { t } = (0, import_react_ui11.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
1061
+ return /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Button, {
1065
1062
  "data-testid": "spacePlugin.shareSpaceButton",
1066
1063
  onClick,
1067
1064
  classNames: "mli-1"
@@ -1071,9 +1068,9 @@ var activeActionKeyStorageKey = "dxos:react-shell/space-manager/active-action";
1071
1068
  var Presence = import_echo6.SpaceMember.PresenceState;
1072
1069
  var handleCreateInvitationUrl = (invitationCode) => `${origin}?spaceInvitationCode=${invitationCode}`;
1073
1070
  var SpaceMemberList = ({ members }) => {
1074
- return members.length > 0 ? /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.List, {
1071
+ return members.length > 0 ? /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.List, {
1075
1072
  classNames: "col-start-2 col-end-5 gap-y-1 grid grid-cols-subgrid items-center"
1076
- }, members.map((member) => /* @__PURE__ */ import_react24.default.createElement(import_react25.IdentityListItem, {
1073
+ }, members.map((member) => /* @__PURE__ */ import_react20.default.createElement(import_react21.IdentityListItem, {
1077
1074
  classNames: "contents",
1078
1075
  key: member.identity.identityKey.toHex(),
1079
1076
  identity: member.identity,
@@ -1081,7 +1078,7 @@ var SpaceMemberList = ({ members }) => {
1081
1078
  }))) : null;
1082
1079
  };
1083
1080
  var SpaceMembersSection = ({ space }) => {
1084
- const { t } = (0, import_react_ui14.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1081
+ const { t } = (0, import_react_ui13.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
1085
1082
  const invitations = (0, import_echo6.useSpaceInvitations)(space.key);
1086
1083
  const { dispatch } = (0, import_app_framework7.useIntent)();
1087
1084
  const handleCloseDialog = () => dispatch({
@@ -1117,8 +1114,8 @@ var SpaceMembersSection = ({ space }) => {
1117
1114
  description: t("invite one description", {
1118
1115
  ns: "os"
1119
1116
  }),
1120
- icon: import_react23.UserPlus,
1121
- onClick: (0, import_react24.useCallback)(() => {
1117
+ icon: import_react19.UserPlus,
1118
+ onClick: (0, import_react20.useCallback)(() => {
1122
1119
  space.share?.({
1123
1120
  type: import_invitations2.Invitation.Type.INTERACTIVE,
1124
1121
  authMethod: import_invitations2.Invitation.AuthMethod.SHARED_SECRET
@@ -1134,8 +1131,8 @@ var SpaceMembersSection = ({ space }) => {
1134
1131
  description: t("invite many description", {
1135
1132
  ns: "os"
1136
1133
  }),
1137
- icon: import_react23.UsersThree,
1138
- onClick: (0, import_react24.useCallback)(() => {
1134
+ icon: import_react19.UsersThree,
1135
+ onClick: (0, import_react20.useCallback)(() => {
1139
1136
  space.share?.({
1140
1137
  type: import_invitations2.Invitation.Type.INTERACTIVE,
1141
1138
  authMethod: import_invitations2.Invitation.AuthMethod.NONE,
@@ -1146,7 +1143,7 @@ var SpaceMembersSection = ({ space }) => {
1146
1143
  ])
1147
1144
  }
1148
1145
  };
1149
- const [activeActionKey, setInternalActiveActionKey] = (0, import_react24.useState)(localStorage.getItem(activeActionKeyStorageKey) ?? "inviteOne");
1146
+ const [activeActionKey, setInternalActiveActionKey] = (0, import_react20.useState)(localStorage.getItem(activeActionKeyStorageKey) ?? "inviteOne");
1150
1147
  const setActiveActionKey = (nextKey) => {
1151
1148
  setInternalActiveActionKey(nextKey);
1152
1149
  localStorage.setItem(activeActionKeyStorageKey, nextKey);
@@ -1159,101 +1156,101 @@ var SpaceMembersSection = ({ space }) => {
1159
1156
  [Presence.ONLINE]: [],
1160
1157
  [Presence.OFFLINE]: []
1161
1158
  });
1162
- return /* @__PURE__ */ import_react24.default.createElement("section", {
1159
+ return /* @__PURE__ */ import_react20.default.createElement("section", {
1163
1160
  className: "mbe-4 col-span-3 grid gap-y-2 grid-cols-subgrid auto-rows-min"
1164
- }, /* @__PURE__ */ import_react24.default.createElement("h2", {
1161
+ }, /* @__PURE__ */ import_react20.default.createElement("h2", {
1165
1162
  className: "contents"
1166
- }, /* @__PURE__ */ import_react24.default.createElement(import_react23.UsersThree, {
1163
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.UsersThree, {
1167
1164
  weight: "duotone",
1168
- className: (0, import_react_ui_theme8.mx)((0, import_react_ui_theme8.getSize)(5), "place-self-center")
1169
- }), /* @__PURE__ */ import_react24.default.createElement("span", {
1165
+ className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(5), "place-self-center")
1166
+ }), /* @__PURE__ */ import_react20.default.createElement("span", {
1170
1167
  className: "text-lg col-span-2"
1171
- }, t("space members label"))), /* @__PURE__ */ import_react24.default.createElement("h3", {
1168
+ }, t("space members label"))), /* @__PURE__ */ import_react20.default.createElement("h3", {
1172
1169
  className: "col-start-2 col-span-3 text-sm italic text-description"
1173
- }, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.List, {
1170
+ }, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.List, {
1174
1171
  classNames: "col-start-2 col-span-2 gap-y-2 grid grid-cols-[var(--rail-size)_1fr_var(--rail-action)_var(--rail-action)]"
1175
- }, invitations.map((invitation) => /* @__PURE__ */ import_react24.default.createElement(import_react25.InvitationListItem, {
1172
+ }, invitations.map((invitation) => /* @__PURE__ */ import_react20.default.createElement(import_react21.InvitationListItem, {
1176
1173
  reverseEffects: true,
1177
1174
  classNames: "pis-0 pie-0 gap-0 col-span-4 grid grid-cols-subgrid",
1178
1175
  key: invitation.get().invitationId,
1179
1176
  invitation,
1180
1177
  send: handleInvitationSelect,
1181
1178
  createInvitationUrl: handleCreateInvitationUrl
1182
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.ButtonGroup, {
1179
+ }))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.ButtonGroup, {
1183
1180
  classNames: "col-start-2 col-end-4 grid grid-cols-[1fr_var(--rail-action)] place-self-grow gap-px"
1184
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.Button, {
1181
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Button, {
1185
1182
  classNames: "gap-2",
1186
1183
  onClick: activeAction.onClick
1187
- }, /* @__PURE__ */ import_react24.default.createElement(activeAction.icon, {
1188
- className: (0, import_react_ui_theme8.getSize)(5)
1189
- }), /* @__PURE__ */ import_react24.default.createElement("span", null, t(activeAction.label, {
1184
+ }, /* @__PURE__ */ import_react20.default.createElement(activeAction.icon, {
1185
+ className: (0, import_react_ui_theme6.getSize)(5)
1186
+ }), /* @__PURE__ */ import_react20.default.createElement("span", null, t(activeAction.label, {
1190
1187
  ns: "os"
1191
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.Root, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.Trigger, {
1188
+ }))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Root, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Trigger, {
1192
1189
  asChild: true
1193
- }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.Button, {
1190
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.Button, {
1194
1191
  classNames: "pli-0"
1195
- }, /* @__PURE__ */ import_react24.default.createElement(import_react23.CaretDown, {
1196
- className: (0, import_react_ui_theme8.getSize)(4)
1197
- }))), /* @__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]) => {
1198
- return /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.CheckboxItem, {
1192
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.CaretDown, {
1193
+ className: (0, import_react_ui_theme6.getSize)(4)
1194
+ }))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Content, null, /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Viewport, null, Object.entries(inviteActions).map(([id, action]) => {
1195
+ return /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.CheckboxItem, {
1199
1196
  key: id,
1200
1197
  "aria-labelledby": `${id}__label`,
1201
1198
  "aria-describedby": `${id}__description`,
1202
1199
  checked: activeActionKey === id,
1203
1200
  onCheckedChange: (checked) => checked && setActiveActionKey(id),
1204
1201
  classNames: "gap-2"
1205
- }, action.icon && /* @__PURE__ */ import_react24.default.createElement(action.icon, {
1206
- className: (0, import_react_ui_theme8.getSize)(5)
1207
- }), /* @__PURE__ */ import_react24.default.createElement("div", {
1202
+ }, action.icon && /* @__PURE__ */ import_react20.default.createElement(action.icon, {
1203
+ className: (0, import_react_ui_theme6.getSize)(5)
1204
+ }), /* @__PURE__ */ import_react20.default.createElement("div", {
1208
1205
  role: "none",
1209
1206
  className: "flex-1 min-is-0 space-b-1"
1210
- }, /* @__PURE__ */ import_react24.default.createElement("p", {
1207
+ }, /* @__PURE__ */ import_react20.default.createElement("p", {
1211
1208
  id: `${id}__label`
1212
1209
  }, t(action.label, {
1213
1210
  ns: "os"
1214
- })), action.description && /* @__PURE__ */ import_react24.default.createElement("p", {
1211
+ })), action.description && /* @__PURE__ */ import_react20.default.createElement("p", {
1215
1212
  id: `${id}__description`,
1216
- className: import_react_ui_theme8.descriptionText
1213
+ className: import_react_ui_theme6.descriptionText
1217
1214
  }, t(action.description, {
1218
1215
  ns: "os"
1219
- }))), /* @__PURE__ */ import_react24.default.createElement(import_react_ui14.DropdownMenu.ItemIndicator, {
1216
+ }))), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.ItemIndicator, {
1220
1217
  asChild: true
1221
- }, /* @__PURE__ */ import_react24.default.createElement(import_react23.Check, {
1222
- className: (0, import_react_ui_theme8.getSize)(4)
1218
+ }, /* @__PURE__ */ import_react20.default.createElement(import_react19.Check, {
1219
+ className: (0, import_react_ui_theme6.getSize)(4)
1223
1220
  })));
1224
- })), /* @__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", {
1225
- className: (0, import_react_ui_theme8.mx)(import_react_ui_theme8.descriptionText, "text-center is-full mlb-2")
1221
+ })), /* @__PURE__ */ import_react20.default.createElement(import_react_ui13.DropdownMenu.Arrow, null)))), members[Presence.ONLINE].length + members[Presence.OFFLINE].length < 1 ? /* @__PURE__ */ import_react20.default.createElement("p", {
1222
+ className: (0, import_react_ui_theme6.mx)(import_react_ui_theme6.descriptionText, "text-center is-full mlb-2")
1226
1223
  }, t("empty space members message", {
1227
1224
  ns: "os"
1228
- })) : /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, /* @__PURE__ */ import_react24.default.createElement("h3", {
1225
+ })) : /* @__PURE__ */ import_react20.default.createElement(import_react20.default.Fragment, null, /* @__PURE__ */ import_react20.default.createElement("h3", {
1229
1226
  className: "col-start-2 col-end-5 text-sm italic text-description"
1230
1227
  }, t("active space members heading", {
1231
1228
  count: members[Presence.ONLINE].length
1232
- })), /* @__PURE__ */ import_react24.default.createElement(SpaceMemberList, {
1229
+ })), /* @__PURE__ */ import_react20.default.createElement(SpaceMemberList, {
1233
1230
  members: members[Presence.ONLINE]
1234
- }), /* @__PURE__ */ import_react24.default.createElement("h3", {
1231
+ }), /* @__PURE__ */ import_react20.default.createElement("h3", {
1235
1232
  className: "col-start-2 col-end-5 text-sm italic text-description"
1236
1233
  }, t("inactive space members heading", {
1237
1234
  count: members[Presence.OFFLINE].length
1238
- })), /* @__PURE__ */ import_react24.default.createElement(SpaceMemberList, {
1235
+ })), /* @__PURE__ */ import_react20.default.createElement(SpaceMemberList, {
1239
1236
  members: members[Presence.OFFLINE]
1240
1237
  })));
1241
1238
  };
1242
1239
  var KeyShortcuts = () => {
1243
- const { t } = (0, import_react_ui13.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1244
- return /* @__PURE__ */ import_react21.default.createElement("section", {
1240
+ const { t } = (0, import_react_ui12.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
1241
+ return /* @__PURE__ */ import_react17.default.createElement("section", {
1245
1242
  className: "mbe-4 col-span-4 md:col-start-5 md:col-end-7 grid grid-cols-subgrid gap-y-2 auto-rows-min"
1246
- }, /* @__PURE__ */ import_react21.default.createElement("h2", {
1243
+ }, /* @__PURE__ */ import_react17.default.createElement("h2", {
1247
1244
  className: "contents"
1248
- }, /* @__PURE__ */ import_react21.default.createElement(import_react20.Command, {
1245
+ }, /* @__PURE__ */ import_react17.default.createElement(import_react16.Command, {
1249
1246
  weight: "duotone",
1250
- className: (0, import_react_ui_theme7.mx)((0, import_react_ui_theme7.getSize)(5), "place-self-center")
1251
- }), /* @__PURE__ */ import_react21.default.createElement("span", {
1247
+ className: (0, import_react_ui_theme5.mx)((0, import_react_ui_theme5.getSize)(5), "place-self-center")
1248
+ }), /* @__PURE__ */ import_react17.default.createElement("span", {
1252
1249
  className: "text-lg col-span-2 md:col-span-1"
1253
- }, t("keyshortcuts label"))), /* @__PURE__ */ import_react21.default.createElement("div", {
1250
+ }, t("keyshortcuts label"))), /* @__PURE__ */ import_react17.default.createElement("div", {
1254
1251
  role: "none",
1255
1252
  className: "col-start-2 col-end-4 md:col-end-5 pie-2"
1256
- }, /* @__PURE__ */ import_react21.default.createElement(import_app_framework6.Surface, {
1253
+ }, /* @__PURE__ */ import_react17.default.createElement(import_app_framework6.Surface, {
1257
1254
  role: "keyshortcuts"
1258
1255
  })));
1259
1256
  };
@@ -1261,42 +1258,42 @@ var spaceMainLayout = "grid gap-y-2 auto-rows-min before:bs-2 before:col-span-5
1261
1258
  var SpaceMain = ({ space, role }) => {
1262
1259
  const state = space.state.get();
1263
1260
  const ready = state === import_echo5.SpaceState.SPACE_READY;
1264
- const Root = role === "main" ? import_react_ui13.Main.Content : "div";
1265
- return /* @__PURE__ */ import_react21.default.createElement(import_react22.ClipboardProvider, null, /* @__PURE__ */ import_react21.default.createElement(Root, {
1261
+ const Root = role === "main" ? import_react_ui12.Main.Content : "div";
1262
+ return /* @__PURE__ */ import_react17.default.createElement(import_react18.ClipboardProvider, null, /* @__PURE__ */ import_react17.default.createElement(Root, {
1266
1263
  ...role === "main" ? {
1267
1264
  classNames: [
1268
- import_react_ui_theme7.topbarBlockPaddingStart,
1265
+ import_react_ui_theme5.topbarBlockPaddingStart,
1269
1266
  "min-bs-dvh",
1270
1267
  spaceMainLayout
1271
1268
  ]
1272
1269
  } : {
1273
1270
  role: "none",
1274
- className: (0, import_react_ui_theme7.mx)(import_react_ui_theme7.topbarBlockPaddingStart, "row-span-2", spaceMainLayout)
1271
+ className: (0, import_react_ui_theme5.mx)(import_react_ui_theme5.topbarBlockPaddingStart, "row-span-2", spaceMainLayout)
1275
1272
  },
1276
1273
  "data-testid": `spacePlugin.${role}`,
1277
1274
  "data-isready": ready ? "true" : "false"
1278
- }, ready && /* @__PURE__ */ import_react21.default.createElement(SpaceMembersSection, {
1275
+ }, ready && /* @__PURE__ */ import_react17.default.createElement(SpaceMembersSection, {
1279
1276
  space
1280
- }), /* @__PURE__ */ import_react21.default.createElement(KeyShortcuts, null)));
1277
+ }), /* @__PURE__ */ import_react17.default.createElement(KeyShortcuts, null)));
1281
1278
  };
1282
1279
  var REFRESH_INTERVAL = 5e3;
1283
1280
  var ACTIVITY_DURATION = 3e4;
1284
1281
  var noViewers = new import_util2.ComplexMap(import_react_client4.PublicKey.hash);
1285
1282
  var getName = (identity) => identity.profile?.displayName ?? (0, import_display_name.generateName)(identity.identityKey.toHex());
1286
1283
  var SpacePresence = ({ object, spaceKey }) => {
1287
- const density = (0, import_react_ui15.useDensityContext)();
1288
- const spacePlugin = (0, import_app_framework8.usePlugin)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1284
+ const density = (0, import_react_ui14.useDensityContext)();
1285
+ const spacePlugin = (0, import_app_framework8.usePlugin)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
1289
1286
  const client = (0, import_react_client4.useClient)();
1290
1287
  const identity = (0, import_halo.useIdentity)();
1291
1288
  const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo7.getSpace)(object);
1292
1289
  const spaceMembers = (0, import_echo7.useMembers)(space?.key);
1293
- const [_moment, setMoment] = (0, import_react26.useState)(Date.now());
1294
- (0, import_react26.useEffect)(() => {
1290
+ const [_moment, setMoment] = (0, import_react22.useState)(Date.now());
1291
+ (0, import_react22.useEffect)(() => {
1295
1292
  const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
1296
1293
  return () => clearInterval(interval);
1297
1294
  }, []);
1298
- const memberOnline = (0, import_react26.useCallback)((member) => member.presence === 1, []);
1299
- const memberIsNotSelf = (0, import_react26.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1295
+ const memberOnline = (0, import_react22.useCallback)((member) => member.presence === 1, []);
1296
+ const memberIsNotSelf = (0, import_react22.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
1300
1297
  identity?.identityKey
1301
1298
  ]);
1302
1299
  if (!identity || !spacePlugin || !space) {
@@ -1314,63 +1311,63 @@ var SpacePresence = ({ object, spaceKey }) => {
1314
1311
  lastSeen
1315
1312
  };
1316
1313
  }).toSorted((a, b) => a.lastSeen - b.lastSeen);
1317
- return density === "fine" ? /* @__PURE__ */ import_react26.default.createElement(SmallPresence, {
1314
+ return density === "fine" ? /* @__PURE__ */ import_react22.default.createElement(SmallPresence, {
1318
1315
  count: membersForObject.length
1319
- }) : /* @__PURE__ */ import_react26.default.createElement(FullPresence, {
1316
+ }) : /* @__PURE__ */ import_react22.default.createElement(FullPresence, {
1320
1317
  members: membersForObject
1321
1318
  });
1322
1319
  };
1323
1320
  var FullPresence = (props) => {
1324
1321
  const { size = 9, onMemberClick } = props;
1325
- const members = (0, import_react_ui15.useDefaultValue)(props.members, []);
1322
+ const members = (0, import_react_ui14.useDefaultValue)(props.members, () => []);
1326
1323
  if (members.length === 0) {
1327
1324
  return null;
1328
1325
  }
1329
- return /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.AvatarGroup.Root, {
1326
+ return /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.AvatarGroup.Root, {
1330
1327
  size,
1331
1328
  classNames: "mbs-2 mie-4",
1332
1329
  "data-testid": "spacePlugin.presence"
1333
- }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Root, {
1330
+ }, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Root, {
1334
1331
  key: member.identity.identityKey.toHex()
1335
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Trigger, null, /* @__PURE__ */ import_react26.default.createElement(PrensenceAvatar, {
1332
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Trigger, null, /* @__PURE__ */ import_react22.default.createElement(PrensenceAvatar, {
1336
1333
  identity: member.identity,
1337
1334
  group: true,
1338
1335
  match: member.currentlyAttended,
1339
1336
  index: members.length - i,
1340
1337
  onClick: () => onMemberClick?.(member)
1341
- })), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Content, {
1338
+ })), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Content, {
1342
1339
  side: "bottom"
1343
- }, /* @__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, {
1340
+ }, /* @__PURE__ */ import_react22.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Trigger, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.AvatarGroupItem.Root, {
1344
1341
  status: "inactive"
1345
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Frame, {
1342
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Frame, {
1346
1343
  style: {
1347
1344
  zIndex: members.length - 4
1348
1345
  }
1349
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Fallback, {
1346
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Fallback, {
1350
1347
  text: `+${members.length - 3}`
1351
- })))), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Content, {
1348
+ })))), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Content, {
1352
1349
  side: "bottom"
1353
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Arrow, null), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.List, {
1350
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Arrow, null), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.List, {
1354
1351
  classNames: "max-h-56 overflow-y-auto"
1355
- }, members.map((member) => /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.ListItem.Root, {
1352
+ }, members.map((member) => /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.ListItem.Root, {
1356
1353
  key: member.identity.identityKey.toHex(),
1357
1354
  classNames: "flex gap-2 items-center cursor-pointer mbe-2",
1358
1355
  onClick: () => onMemberClick?.(member),
1359
1356
  "data-testid": "identity-list-item"
1360
- }, /* @__PURE__ */ import_react26.default.createElement(PrensenceAvatar, {
1357
+ }, /* @__PURE__ */ import_react22.default.createElement(PrensenceAvatar, {
1361
1358
  identity: member.identity,
1362
1359
  showName: true,
1363
1360
  match: member.currentlyAttended
1364
1361
  }))))))));
1365
1362
  };
1366
1363
  var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) => {
1367
- const Root = group ? import_react_ui15.AvatarGroupItem.Root : import_react_ui15.Avatar.Root;
1364
+ const Root = group ? import_react_ui14.AvatarGroupItem.Root : import_react_ui14.Avatar.Root;
1368
1365
  const status = match ? "current" : "active";
1369
1366
  const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
1370
- return /* @__PURE__ */ import_react26.default.createElement(Root, {
1367
+ return /* @__PURE__ */ import_react22.default.createElement(Root, {
1371
1368
  status,
1372
1369
  hue: identity.profile?.data?.hue || fallbackValue.hue
1373
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Frame, {
1370
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Frame, {
1374
1371
  "data-testid": "spacePlugin.presence.member",
1375
1372
  "data-status": status,
1376
1373
  ...index ? {
@@ -1379,57 +1376,336 @@ var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) =>
1379
1376
  }
1380
1377
  } : {},
1381
1378
  onClick: () => onClick?.()
1382
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Fallback, {
1379
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Fallback, {
1383
1380
  text: identity.profile?.data?.emoji || fallbackValue.emoji
1384
- })), showName && /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Avatar.Label, {
1381
+ })), showName && /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Avatar.Label, {
1385
1382
  classNames: "text-sm truncate pli-2"
1386
1383
  }, getName(identity)));
1387
1384
  };
1388
1385
  var SmallPresenceLive = ({ viewers }) => {
1389
- const [moment, setMoment] = (0, import_react26.useState)(Date.now());
1390
- (0, import_react26.useEffect)(() => {
1386
+ const [moment, setMoment] = (0, import_react22.useState)(Date.now());
1387
+ (0, import_react22.useEffect)(() => {
1391
1388
  const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
1392
1389
  return () => clearInterval(interval);
1393
1390
  }, []);
1394
1391
  const activeViewers = viewers ? Array.from(viewers.values()).filter(({ lastSeen }) => moment - lastSeen < ACTIVITY_DURATION) : [];
1395
- return /* @__PURE__ */ import_react26.default.createElement(SmallPresence, {
1392
+ return /* @__PURE__ */ import_react22.default.createElement(SmallPresence, {
1396
1393
  count: activeViewers.length
1397
1394
  });
1398
1395
  };
1399
1396
  var SmallPresence = ({ count }) => {
1400
- const { t } = (0, import_react_ui15.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1401
- return /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Root, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Trigger, {
1397
+ const { t } = (0, import_react_ui14.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
1398
+ return /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Root, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Trigger, {
1402
1399
  asChild: true
1403
- }, /* @__PURE__ */ import_react26.default.createElement(import_react_ui_attention.AttentionGlyph, {
1400
+ }, /* @__PURE__ */ import_react22.default.createElement(import_react_ui_attention.AttentionGlyph, {
1404
1401
  presence: count > 1 ? "many" : count === 1 ? "one" : "none",
1405
1402
  classNames: "self-center mie-1"
1406
- })), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Content, {
1403
+ })), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Portal, null, /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Content, {
1407
1404
  side: "bottom",
1408
1405
  classNames: "z-[70]"
1409
- }, /* @__PURE__ */ import_react26.default.createElement("span", null, t("presence label", {
1406
+ }, /* @__PURE__ */ import_react22.default.createElement("span", null, t("presence label", {
1410
1407
  count
1411
- })), /* @__PURE__ */ import_react26.default.createElement(import_react_ui15.Tooltip.Arrow, null))));
1408
+ })), /* @__PURE__ */ import_react22.default.createElement(import_react_ui14.Tooltip.Arrow, null))));
1412
1409
  };
1413
1410
  var SpaceSettings = ({ settings }) => {
1414
- const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1411
+ const { t } = (0, import_react_ui15.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
1415
1412
  const dispatch = (0, import_app_framework9.useIntentDispatcher)();
1416
- return /* @__PURE__ */ import_react27.default.createElement(import_react27.default.Fragment, null, /* @__PURE__ */ import_react27.default.createElement(import_plugin_settings.SettingsValue, {
1413
+ const plugins = (0, import_app_framework9.useResolvePlugins)(import_chunk_CTYDNFGG.parseSpaceInitPlugin);
1414
+ return /* @__PURE__ */ import_react23.default.createElement(import_react23.default.Fragment, null, /* @__PURE__ */ import_react23.default.createElement(import_plugin_settings.SettingsValue, {
1417
1415
  label: t("show hidden spaces label")
1418
- }, /* @__PURE__ */ import_react27.default.createElement(import_react_ui16.Input.Switch, {
1416
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Input.Switch, {
1419
1417
  checked: settings.showHidden,
1420
1418
  onCheckedChange: (checked) => dispatch({
1421
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
1422
- action: import_chunk_6CNYF6YU.SpaceAction.TOGGLE_HIDDEN,
1419
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
1420
+ action: import_chunk_P4XUXM7Y.SpaceAction.TOGGLE_HIDDEN,
1423
1421
  data: {
1424
1422
  state: !!checked
1425
1423
  }
1426
1424
  })
1427
- })));
1425
+ })), /* @__PURE__ */ import_react23.default.createElement(import_plugin_settings.SettingsValue, {
1426
+ label: t("default on space create label")
1427
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Root, {
1428
+ value: settings.onSpaceCreate,
1429
+ onValueChange: (value) => {
1430
+ settings.onSpaceCreate = value;
1431
+ }
1432
+ }, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.TriggerButton, null), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Portal, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Content, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Viewport, null, plugins.map(({ provides: { space: { onSpaceCreate } } }) => /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Select.Option, {
1433
+ key: onSpaceCreate.action,
1434
+ value: onSpaceCreate.action
1435
+ }, (0, import_react_ui15.toLocalizedString)(onSpaceCreate.label, t)))))))));
1436
+ };
1437
+ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SaveStatus.tsx";
1438
+ var SaveStatus = () => {
1439
+ const { t } = (0, import_react_ui16.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
1440
+ const client = (0, import_react_client5.useClient)();
1441
+ const [state, setState] = (0, import_react24.useState)("saved");
1442
+ (0, import_react24.useEffect)(() => {
1443
+ return createClientSaveTracker(client, (state2) => {
1444
+ setState(state2);
1445
+ });
1446
+ }, []);
1447
+ return /* @__PURE__ */ import_react24.default.createElement(import_plugin_status_bar.StatusBar.Item, {
1448
+ title: state === "saving" ? t("saving label") : t("saved label")
1449
+ }, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Icon, {
1450
+ icon: state === "saving" ? "ph--arrows-clockwise--regular" : "ph--check-circle--regular",
1451
+ size: 4
1452
+ }));
1453
+ };
1454
+ var createClientSaveTracker = (client, cb) => {
1455
+ const unsubscribeCallbacks = {};
1456
+ const state = {};
1457
+ const install = (spaces) => {
1458
+ for (const space of spaces) {
1459
+ if (state[space.id]) {
1460
+ continue;
1461
+ }
1462
+ state[space.id] = "saved";
1463
+ unsubscribeCallbacks[space.id] = createSpaceSaveTracker(space, (s) => {
1464
+ state[space.id] = s;
1465
+ cb(Object.values(state).some((s2) => s2 === "saving") ? "saving" : "saved");
1466
+ });
1467
+ }
1468
+ };
1469
+ client.spaces.subscribe((spaces) => {
1470
+ install(spaces);
1471
+ });
1472
+ install(client.spaces.get());
1473
+ return () => {
1474
+ for (const unsubscribe of Object.values(unsubscribeCallbacks)) {
1475
+ unsubscribe();
1476
+ }
1477
+ };
1478
+ };
1479
+ var createSpaceSaveTracker = (space, cb) => {
1480
+ const ctx = new import_context.Context(void 0, {
1481
+ F: __dxlog_file3,
1482
+ L: 64
1483
+ });
1484
+ void space.waitUntilReady().then(() => {
1485
+ if (ctx.disposed) {
1486
+ return;
1487
+ }
1488
+ let hasUnsavedChanges = false;
1489
+ let lastFlushPromise;
1490
+ space.crud.saveStateChanged.on(ctx, ({ unsavedDocuments }) => {
1491
+ hasUnsavedChanges = unsavedDocuments.length > 0;
1492
+ });
1493
+ space.crud.saveStateChanged.debounce(500).on(ctx, () => {
1494
+ if (hasUnsavedChanges) {
1495
+ lastFlushPromise = void 0;
1496
+ cb("saving");
1497
+ } else {
1498
+ const flushPromise = space.crud.flush();
1499
+ lastFlushPromise = flushPromise;
1500
+ void flushPromise.then(() => {
1501
+ if (lastFlushPromise === flushPromise) {
1502
+ cb("saved");
1503
+ }
1504
+ });
1505
+ }
1506
+ });
1507
+ });
1508
+ return () => {
1509
+ void ctx.dispose();
1510
+ };
1511
+ };
1512
+ var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/types.ts";
1513
+ var createEmptyEdgeSyncState = () => ({
1514
+ missingOnLocal: 0,
1515
+ missingOnRemote: 0,
1516
+ localDocumentCount: 0,
1517
+ remoteDocumentCount: 0,
1518
+ differentDocuments: 0
1519
+ });
1520
+ var getSyncSummary = (syncMap) => {
1521
+ return Object.entries(syncMap).reduce((summary, [_spaceId, peerState]) => {
1522
+ summary.missingOnLocal += peerState.missingOnLocal;
1523
+ summary.missingOnRemote += peerState.missingOnRemote;
1524
+ summary.localDocumentCount += peerState.localDocumentCount;
1525
+ summary.remoteDocumentCount += peerState.remoteDocumentCount;
1526
+ summary.differentDocuments += peerState.differentDocuments;
1527
+ return summary;
1528
+ }, createEmptyEdgeSyncState());
1529
+ };
1530
+ var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
1531
+ var useSyncState = () => {
1532
+ const client = (0, import_react_client6.useClient)();
1533
+ const [spaceState, setSpaceState] = (0, import_react26.useState)({});
1534
+ (0, import_react26.useEffect)(() => {
1535
+ const ctx = new import_context2.Context(void 0, {
1536
+ F: __dxlog_file4,
1537
+ L: 48
1538
+ });
1539
+ const createSubscriptions = (spaces) => {
1540
+ for (const space of spaces) {
1541
+ if (spaceState[space.id]) {
1542
+ continue;
1543
+ }
1544
+ ctx.onDispose(space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
1545
+ const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
1546
+ if (syncState) {
1547
+ setSpaceState((spaceState2) => ({
1548
+ ...spaceState2,
1549
+ [space.id]: syncState
1550
+ }));
1551
+ }
1552
+ }));
1553
+ }
1554
+ };
1555
+ createSubscriptions(client.spaces.get());
1556
+ client.spaces.subscribe((spaces) => {
1557
+ createSubscriptions(spaces);
1558
+ });
1559
+ return () => {
1560
+ void ctx.dispose();
1561
+ };
1562
+ }, [
1563
+ client
1564
+ ]);
1565
+ return spaceState;
1566
+ };
1567
+ var SYNC_STALLED_TIMEOUT = 5e3;
1568
+ var styles = {
1569
+ barBg: "bg-neutral-50 dark:bg-green-900 text-black",
1570
+ barFg: "bg-neutral-100 bg-green-500",
1571
+ barHover: "dark:hover:bg-green-500"
1572
+ };
1573
+ var SyncStatus = () => {
1574
+ const state = useSyncState();
1575
+ return /* @__PURE__ */ import_react25.default.createElement(SyncStatusIndicator, {
1576
+ state
1577
+ });
1578
+ };
1579
+ var SyncStatusIndicator = ({ state }) => {
1580
+ const summary = getSyncSummary(state);
1581
+ const offline = false;
1582
+ const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
1583
+ const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;
1584
+ const [classNames, setClassNames] = (0, import_react25.useState)();
1585
+ (0, import_react25.useEffect)(() => {
1586
+ setClassNames(void 0);
1587
+ if (!needsToUpload && !needsToDownload) {
1588
+ return;
1589
+ }
1590
+ const t = setTimeout(() => {
1591
+ setClassNames("text-orange-500");
1592
+ }, SYNC_STALLED_TIMEOUT);
1593
+ return () => clearTimeout(t);
1594
+ }, [
1595
+ needsToUpload,
1596
+ needsToDownload
1597
+ ]);
1598
+ return /* @__PURE__ */ import_react25.default.createElement(import_plugin_status_bar2.StatusBar.Item, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Popover.Root, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Popover.Trigger, null, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Icon, {
1599
+ icon: offline ? "ph--cloud-x--regular" : needsToUpload ? "ph--cloud-arrow-up--regular" : needsToDownload ? "ph--cloud-arrow-down--regular" : "ph--cloud-check--regular",
1600
+ size: 4,
1601
+ classNames
1602
+ })), /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Popover.Content, null, /* @__PURE__ */ import_react25.default.createElement(SyncStatusDetail, {
1603
+ state,
1604
+ summary,
1605
+ debug: false
1606
+ }))));
1607
+ };
1608
+ var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
1609
+ const { t } = (0, import_react_ui17.useTranslation)(import_chunk_P4XUXM7Y.SPACE_PLUGIN);
1610
+ const entries = Object.entries(state).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
1611
+ return /* @__PURE__ */ import_react25.default.createElement("div", {
1612
+ className: (0, import_react_ui_theme7.mx)("flex flex-col text-xs min-w-[16rem]", classNames)
1613
+ }, /* @__PURE__ */ import_react25.default.createElement("h1", {
1614
+ className: "p-2"
1615
+ }, t("sync status title")), /* @__PURE__ */ import_react25.default.createElement("div", {
1616
+ className: "flex flex-col gap-[2px] my-[2px]"
1617
+ }, entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react25.default.createElement(SpaceRow, {
1618
+ key: spaceId,
1619
+ spaceId,
1620
+ state: state2
1621
+ }))), debug && /* @__PURE__ */ import_react25.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
1622
+ language: "json"
1623
+ }, JSON.stringify(summary, null, 2)));
1624
+ };
1625
+ var useActive = (count) => {
1626
+ const [current, setCurrent] = (0, import_react25.useState)(count);
1627
+ const [active, setActive] = (0, import_react25.useState)(false);
1628
+ (0, import_react25.useEffect)(() => {
1629
+ let t;
1630
+ if (count !== current) {
1631
+ setActive(true);
1632
+ setCurrent(count);
1633
+ t && clearTimeout(t);
1634
+ t = setTimeout(() => {
1635
+ setActive(false);
1636
+ }, SYNC_STALLED_TIMEOUT);
1637
+ }
1638
+ return () => {
1639
+ setActive(false);
1640
+ clearTimeout(t);
1641
+ };
1642
+ }, [
1643
+ count,
1644
+ current
1645
+ ]);
1646
+ return active;
1647
+ };
1648
+ var SpaceRow = ({ spaceId, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
1649
+ const downActive = useActive(localDocumentCount);
1650
+ const upActive = useActive(remoteDocumentCount);
1651
+ return /* @__PURE__ */ import_react25.default.createElement("div", {
1652
+ className: (0, import_react_ui_theme7.mx)("flex items-center mx-[2px] gap-[2px] cursor-pointer", styles.barHover),
1653
+ title: spaceId,
1654
+ onClick: () => {
1655
+ void navigator.clipboard.writeText(spaceId);
1656
+ }
1657
+ }, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Icon, {
1658
+ icon: "ph--arrow-fat-line-left--regular",
1659
+ size: 3,
1660
+ classNames: (0, import_react_ui_theme7.mx)(downActive && "animate-[pulse_1s_infinite]")
1661
+ }), /* @__PURE__ */ import_react25.default.createElement(Candle, {
1662
+ up: {
1663
+ count: remoteDocumentCount,
1664
+ total: remoteDocumentCount + missingOnRemote
1665
+ },
1666
+ down: {
1667
+ count: localDocumentCount,
1668
+ total: localDocumentCount + missingOnLocal
1669
+ },
1670
+ title: spaceId
1671
+ }), /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Icon, {
1672
+ icon: "ph--arrow-fat-line-right--regular",
1673
+ size: 3,
1674
+ classNames: (0, import_react_ui_theme7.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
1675
+ }));
1676
+ };
1677
+ var Candle = ({ classNames, up, down }) => {
1678
+ return /* @__PURE__ */ import_react25.default.createElement("div", {
1679
+ className: (0, import_react_ui_theme7.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
1680
+ }, /* @__PURE__ */ import_react25.default.createElement(Bar, {
1681
+ classNames: "justify-end",
1682
+ ...up
1683
+ }), /* @__PURE__ */ import_react25.default.createElement("div", {
1684
+ className: "relative"
1685
+ }, /* @__PURE__ */ import_react25.default.createElement("div", {
1686
+ className: (0, import_react_ui_theme7.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
1687
+ }, up.total)), /* @__PURE__ */ import_react25.default.createElement(Bar, down));
1688
+ };
1689
+ var Bar = ({ classNames, count, total }) => {
1690
+ let p = count / total * 100;
1691
+ if (count < total) {
1692
+ p = Math.min(p, 95);
1693
+ }
1694
+ return /* @__PURE__ */ import_react25.default.createElement("div", {
1695
+ className: (0, import_react_ui_theme7.mx)("relative flex w-full", styles.barBg, classNames)
1696
+ }, /* @__PURE__ */ import_react25.default.createElement("div", {
1697
+ className: (0, import_react_ui_theme7.mx)("shrink-0", styles.barFg),
1698
+ style: {
1699
+ width: `${p}%`
1700
+ }
1701
+ }), count !== total && /* @__PURE__ */ import_react25.default.createElement("div", {
1702
+ className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
1703
+ }, count));
1428
1704
  };
1429
1705
  var translations_default = [
1430
1706
  {
1431
1707
  "en-US": {
1432
- [import_chunk_6CNYF6YU.SPACE_PLUGIN]: {
1708
+ [import_chunk_P4XUXM7Y.SPACE_PLUGIN]: {
1433
1709
  "plugin name": "Spaces",
1434
1710
  "first run message": "Nothing selected.",
1435
1711
  "create space label": "Create a new space",
@@ -1504,20 +1780,28 @@ var translations_default = [
1504
1780
  "space limit close label": "Close",
1505
1781
  "remove deleted objects label": "Cleanup",
1506
1782
  "remove deleted objects alt": "Permanently remove deleted objects to free up space.",
1507
- "copy link label": "Copy link"
1783
+ "copy link label": "Copy link",
1784
+ "default on space create label": "On space create",
1785
+ "sync status title": "Sync status",
1786
+ "dismiss label": "Dismiss",
1787
+ "join success label": "Successfully joined space",
1788
+ "name label": "Name",
1789
+ "name placeholder": "Name"
1508
1790
  }
1509
1791
  }
1510
1792
  }
1511
1793
  ];
1512
- var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/SpacePlugin.tsx";
1794
+ var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/SpacePlugin.tsx";
1513
1795
  var ACTIVE_NODE_BROADCAST_INTERVAL = 3e4;
1514
1796
  var OBJECT_ID_LENGTH = 60;
1515
1797
  var SPACE_MAX_OBJECTS = 500;
1516
1798
  var DIRECTORY_TYPE = "text/directory";
1517
1799
  var parseSpacePlugin = (plugin) => Array.isArray(plugin?.provides.space?.enabled) ? plugin : void 0;
1518
1800
  var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1519
- const settings = new import_local_storage.LocalStorageStore(import_chunk_6CNYF6YU.SPACE_PLUGIN);
1520
- const state = new import_local_storage.LocalStorageStore(import_chunk_6CNYF6YU.SPACE_PLUGIN, {
1801
+ const settings = new import_local_storage.LocalStorageStore(import_chunk_P4XUXM7Y.SPACE_PLUGIN, {
1802
+ onSpaceCreate: "dxos.org/plugin/markdown/action/create"
1803
+ });
1804
+ const state = new import_local_storage.LocalStorageStore(import_chunk_P4XUXM7Y.SPACE_PLUGIN, {
1521
1805
  awaiting: void 0,
1522
1806
  spaceNames: {},
1523
1807
  viewersByObject: {},
@@ -1556,17 +1840,21 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1556
1840
  await defaultSpace.internal.migrate();
1557
1841
  }
1558
1842
  spaces.filter((space) => space.state.get() === import_echo.SpaceState.SPACE_READY).forEach((space) => {
1559
- subscriptions.add((0, import_signals_core.effect)(() => {
1560
- state.values.spaceNames[space.id] = space.properties.name;
1561
- }));
1843
+ subscriptions.add((0, import_core.scheduledEffect)(() => ({
1844
+ name: space.properties.name
1845
+ }), ({ name }) => state.values.spaceNames[space.id] = name));
1562
1846
  });
1563
1847
  }).unsubscribe);
1564
- subscriptions.add((0, import_signals_core.effect)(() => {
1848
+ subscriptions.add((0, import_core.scheduledEffect)(() => ({
1849
+ ids: (0, import_app_framework.openIds)(location.active),
1850
+ removed: location.closed ? [
1851
+ location.closed
1852
+ ].flat() : []
1853
+ }), ({ ids, removed }) => {
1565
1854
  const send = () => {
1566
1855
  const spaces = client.spaces.get();
1567
1856
  const identity = client.halo.identity.get();
1568
1857
  if (identity && location.active) {
1569
- const ids = (0, import_app_framework.openIds)(location.active);
1570
1858
  const idsBySpace = (0, import_util.reduceGroupBy)(ids, (id) => {
1571
1859
  const [spaceId] = id.split(":");
1572
1860
  return spaceId;
@@ -1581,9 +1869,6 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1581
1869
  if (!space) {
1582
1870
  continue;
1583
1871
  }
1584
- const removed = location.closed ? [
1585
- location.closed
1586
- ].flat() : [];
1587
1872
  void space.postMessage("viewing", {
1588
1873
  identityKey: identity.identityKey.toHex(),
1589
1874
  attended: attention.attended ? [
@@ -1596,8 +1881,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1596
1881
  import_log.log.warn("Failed to broadcast active node for presence.", {
1597
1882
  err: err.message
1598
1883
  }, {
1599
- F: __dxlog_file3,
1600
- L: 222,
1884
+ F: __dxlog_file5,
1885
+ L: 229,
1601
1886
  S: void 0,
1602
1887
  C: (f, a) => f(...a)
1603
1888
  });
@@ -1643,7 +1928,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1643
1928
  }).unsubscribe);
1644
1929
  };
1645
1930
  return {
1646
- meta: import_chunk_6CNYF6YU.meta_default,
1931
+ meta: import_chunk_P4XUXM7Y.meta_default,
1647
1932
  ready: async (plugins) => {
1648
1933
  settings.prop({
1649
1934
  key: "showHidden",
@@ -1668,7 +1953,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1668
1953
  const dispatch = intentPlugin.provides.intent.dispatch;
1669
1954
  const handleFirstRun = async () => {
1670
1955
  const defaultSpace = client.spaces.default;
1671
- defaultSpace.properties[import_chunk_CVZPI2P3.CollectionType.typename] = (0, import_echo.create)(import_chunk_CVZPI2P3.CollectionType, {
1956
+ defaultSpace.properties[import_chunk_CTYDNFGG.CollectionType.typename] = (0, import_echo.create)(import_chunk_CTYDNFGG.CollectionType, {
1672
1957
  objects: [],
1673
1958
  views: {}
1674
1959
  });
@@ -1704,22 +1989,21 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1704
1989
  settings: settings.values,
1705
1990
  translations: [
1706
1991
  ...translations_default,
1707
- import_react3.osTranslations
1992
+ import_react2.osTranslations
1708
1993
  ],
1709
- root: () => state.values.awaiting ? /* @__PURE__ */ import_react2.default.createElement(AwaitingObject, {
1994
+ root: () => state.values.awaiting ? /* @__PURE__ */ import_react.default.createElement(AwaitingObject, {
1710
1995
  id: state.values.awaiting
1711
1996
  }) : null,
1712
1997
  metadata: {
1713
1998
  records: {
1714
- [import_chunk_CVZPI2P3.CollectionType.typename]: {
1999
+ [import_chunk_CTYDNFGG.CollectionType.typename]: {
1715
2000
  placeholder: [
1716
2001
  "unnamed collection label",
1717
2002
  {
1718
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
2003
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
1719
2004
  }
1720
2005
  ],
1721
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.CardsThree, props),
1722
- iconSymbol: "ph--cards-three--regular",
2006
+ icon: "ph--cards-three--regular",
1723
2007
  // TODO(wittjosiah): Move out of metadata.
1724
2008
  loadReferences: (collection) => (0, import_echo.loadObjectReferences)(collection, (collection2) => [
1725
2009
  ...collection2.objects,
@@ -1730,7 +2014,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1730
2014
  },
1731
2015
  echo: {
1732
2016
  schema: [
1733
- import_chunk_CVZPI2P3.CollectionType
2017
+ import_chunk_CTYDNFGG.CollectionType
1734
2018
  ]
1735
2019
  },
1736
2020
  surface: {
@@ -1739,33 +2023,28 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1739
2023
  switch (role) {
1740
2024
  case "article":
1741
2025
  case "main":
1742
- 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, {
1743
2027
  data: {
1744
- active: primary.properties[import_chunk_CVZPI2P3.CollectionType.typename]
2028
+ active: primary.properties[import_chunk_CTYDNFGG.CollectionType.typename],
2029
+ id: primary.id
1745
2030
  },
1746
2031
  role,
1747
2032
  ...rest
1748
- }) : primary instanceof import_chunk_CVZPI2P3.CollectionType ? {
1749
- node: /* @__PURE__ */ import_react2.default.createElement(CollectionMain, {
2033
+ }) : primary instanceof import_chunk_CTYDNFGG.CollectionType ? {
2034
+ node: /* @__PURE__ */ import_react.default.createElement(CollectionMain, {
1750
2035
  collection: primary
1751
2036
  }),
1752
2037
  disposition: "fallback"
1753
- } : typeof primary === "string" && primary.length === OBJECT_ID_LENGTH ? /* @__PURE__ */ import_react2.default.createElement(MissingObject, {
2038
+ } : typeof primary === "string" && primary.length === OBJECT_ID_LENGTH ? /* @__PURE__ */ import_react.default.createElement(MissingObject, {
1754
2039
  id: primary
1755
2040
  }) : null;
1756
- // TODO(burdon): Add role name syntax to minimal plugin docs.
1757
- case "tree--empty":
1758
- switch (true) {
1759
- case data.plugin === import_chunk_6CNYF6YU.SPACE_PLUGIN:
1760
- return /* @__PURE__ */ import_react2.default.createElement(EmptyTree, null);
1761
- case ((0, import_plugin_graph.isGraphNode)(data.activeNode) && (0, import_echo.isSpace)(data.activeNode.data)):
1762
- return /* @__PURE__ */ import_react2.default.createElement(EmptySpace, null);
1763
- default:
1764
- return null;
1765
- }
2041
+ case "complementary--settings":
2042
+ return (0, import_echo.isEchoObject)(data.subject) ? /* @__PURE__ */ import_react.default.createElement(DefaultObjectSettings, {
2043
+ object: data.subject
2044
+ }) : null;
1766
2045
  case "dialog":
1767
2046
  if (data.component === "dxos.org/plugin/space/InvitationManagerDialog") {
1768
- 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, {
2047
+ 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, {
1769
2048
  active: true,
1770
2049
  ...data.subject
1771
2050
  })));
@@ -1774,20 +2053,21 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1774
2053
  }
1775
2054
  case "popover":
1776
2055
  if (data.component === "dxos.org/plugin/space/RenameSpacePopover" && (0, import_echo.isSpace)(data.subject)) {
1777
- return /* @__PURE__ */ import_react2.default.createElement(PopoverRenameSpace, {
2056
+ return /* @__PURE__ */ import_react.default.createElement(PopoverRenameSpace, {
1778
2057
  space: data.subject
1779
2058
  });
1780
2059
  }
1781
2060
  if (data.component === "dxos.org/plugin/space/RenameObjectPopover" && (0, import_echo_schema.isReactiveObject)(data.subject)) {
1782
- return /* @__PURE__ */ import_react2.default.createElement(PopoverRenameObject, {
2061
+ return /* @__PURE__ */ import_react.default.createElement(PopoverRenameObject, {
1783
2062
  object: data.subject
1784
2063
  });
1785
2064
  }
1786
2065
  return null;
2066
+ // TODO(burdon): Add role name syntax to minimal plugin docs.
1787
2067
  case "presence--glyph": {
1788
- return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */ import_react2.default.createElement(SmallPresenceLive, {
2068
+ return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */ import_react.default.createElement(SmallPresenceLive, {
1789
2069
  viewers: state.values.viewersByObject[(0, import_echo.fullyQualifiedId)(data.object)]
1790
- }) : /* @__PURE__ */ import_react2.default.createElement(SmallPresence, {
2070
+ }) : /* @__PURE__ */ import_react.default.createElement(SmallPresence, {
1791
2071
  count: 0
1792
2072
  });
1793
2073
  }
@@ -1799,32 +2079,35 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1799
2079
  return null;
1800
2080
  }
1801
2081
  const space = (0, import_echo.isSpace)(data.object) ? data.object : (0, import_echo.getSpace)(data.object);
1802
- 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;
2082
+ const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_CTYDNFGG.CollectionType.typename] : void 0 : data.object;
1803
2083
  return space && object ? {
1804
- node: /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement(SpacePresence, {
2084
+ node: /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SpacePresence, {
1805
2085
  object
1806
- }), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */ import_react2.default.createElement(ShareSpaceButton, {
2086
+ }), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */ import_react.default.createElement(ShareSpaceButton, {
1807
2087
  spaceId: space.id
1808
2088
  })),
1809
2089
  disposition: "hoist"
1810
2090
  } : null;
1811
2091
  }
1812
2092
  case "section":
1813
- return data.object instanceof import_chunk_CVZPI2P3.CollectionType ? /* @__PURE__ */ import_react2.default.createElement(CollectionSection, {
2093
+ return data.object instanceof import_chunk_CTYDNFGG.CollectionType ? /* @__PURE__ */ import_react.default.createElement(CollectionSection, {
1814
2094
  collection: data.object
1815
2095
  }) : null;
1816
2096
  case "settings":
1817
- return data.plugin === import_chunk_6CNYF6YU.meta_default.id ? /* @__PURE__ */ import_react2.default.createElement(SpaceSettings, {
2097
+ return data.plugin === import_chunk_P4XUXM7Y.meta_default.id ? /* @__PURE__ */ import_react.default.createElement(SpaceSettings, {
1818
2098
  settings: settings.values
1819
2099
  }) : null;
1820
2100
  case "menu-footer":
1821
2101
  if (!(0, import_echo.isEchoObject)(data.object)) {
1822
2102
  return null;
1823
2103
  } else {
1824
- return /* @__PURE__ */ import_react2.default.createElement(MenuFooter, {
2104
+ return /* @__PURE__ */ import_react.default.createElement(MenuFooter, {
1825
2105
  object: data.object
1826
2106
  });
1827
2107
  }
2108
+ case "status": {
2109
+ 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));
2110
+ }
1828
2111
  default:
1829
2112
  return null;
1830
2113
  }
@@ -1845,7 +2128,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1845
2128
  return [
1846
2129
  // Create spaces group node.
1847
2130
  (0, import_plugin_graph.createExtension)({
1848
- id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/root`,
2131
+ id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/root`,
1849
2132
  filter: (node) => node.id === "root",
1850
2133
  connector: () => {
1851
2134
  const isReady = (0, import_plugin_graph.toSignal)((onChange) => {
@@ -1868,7 +2151,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1868
2151
  label: [
1869
2152
  "spaces label",
1870
2153
  {
1871
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
2154
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
1872
2155
  }
1873
2156
  ],
1874
2157
  palette: "teal",
@@ -1884,8 +2167,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1884
2167
  spacesOrder.order = nextOrder.map(({ id }) => id);
1885
2168
  } else {
1886
2169
  import_log.log.warn("spaces order object not found", void 0, {
1887
- F: __dxlog_file3,
1888
- L: 514,
2170
+ F: __dxlog_file5,
2171
+ L: 526,
1889
2172
  S: void 0,
1890
2173
  C: (f, a) => f(...a)
1891
2174
  });
@@ -1902,12 +2185,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1902
2185
  filter: (node) => node.id === SPACES,
1903
2186
  actions: () => [
1904
2187
  {
1905
- id: import_chunk_6CNYF6YU.SpaceAction.CREATE,
2188
+ id: import_chunk_P4XUXM7Y.SpaceAction.CREATE,
1906
2189
  data: async () => {
1907
2190
  await dispatch([
1908
2191
  {
1909
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
1910
- action: import_chunk_6CNYF6YU.SpaceAction.CREATE
2192
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
2193
+ action: import_chunk_P4XUXM7Y.SpaceAction.CREATE
1911
2194
  },
1912
2195
  {
1913
2196
  action: import_app_framework.NavigationAction.OPEN
@@ -1918,22 +2201,21 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1918
2201
  label: [
1919
2202
  "create space label",
1920
2203
  {
1921
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
2204
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
1922
2205
  }
1923
2206
  ],
1924
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.Plus, props),
1925
- iconSymbol: "ph--plus--regular",
2207
+ icon: "ph--plus--regular",
1926
2208
  disposition: "toolbar",
1927
2209
  testId: "spacePlugin.createSpace"
1928
2210
  }
1929
2211
  },
1930
2212
  {
1931
- id: import_chunk_6CNYF6YU.SpaceAction.JOIN,
2213
+ id: import_chunk_P4XUXM7Y.SpaceAction.JOIN,
1932
2214
  data: async () => {
1933
2215
  await dispatch([
1934
2216
  {
1935
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
1936
- action: import_chunk_6CNYF6YU.SpaceAction.JOIN
2217
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
2218
+ action: import_chunk_P4XUXM7Y.SpaceAction.JOIN
1937
2219
  },
1938
2220
  {
1939
2221
  action: import_app_framework.NavigationAction.OPEN
@@ -1944,11 +2226,10 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1944
2226
  label: [
1945
2227
  "join space label",
1946
2228
  {
1947
- ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
2229
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
1948
2230
  }
1949
2231
  ],
1950
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.SignIn, props),
1951
- iconSymbol: "ph--sign-in--regular",
2232
+ icon: "ph--sign-in--regular",
1952
2233
  testId: "spacePlugin.joinSpace"
1953
2234
  }
1954
2235
  }
@@ -1980,7 +2261,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
1980
2261
  }),
1981
2262
  // Find an object by its fully qualified id.
1982
2263
  (0, import_plugin_graph.createExtension)({
1983
- id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/objects`,
2264
+ id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/objects`,
1984
2265
  resolver: ({ id }) => {
1985
2266
  const [spaceId, objectId] = id.split(":");
1986
2267
  const space = client.spaces.get().find((space2) => space2.id === spaceId);
@@ -2010,7 +2291,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2010
2291
  }),
2011
2292
  // Create space actions and action groups.
2012
2293
  (0, import_plugin_graph.createExtension)({
2013
- id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/actions`,
2294
+ id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/actions`,
2014
2295
  filter: (node) => (0, import_echo.isSpace)(node.data),
2015
2296
  actionGroups: ({ node }) => constructSpaceActionGroups({
2016
2297
  space: node.data,
@@ -2028,7 +2309,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2028
2309
  }),
2029
2310
  // Create nodes for objects in the root collection of a space.
2030
2311
  (0, import_plugin_graph.createExtension)({
2031
- id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/root-collection`,
2312
+ id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/root-collection`,
2032
2313
  filter: (node) => (0, import_echo.isSpace)(node.data),
2033
2314
  connector: ({ node }) => {
2034
2315
  const space = node.data;
@@ -2036,7 +2317,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2036
2317
  if (state2 !== import_echo.SpaceState.SPACE_READY) {
2037
2318
  return;
2038
2319
  }
2039
- const collection = space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
2320
+ const collection = space.properties[import_chunk_CTYDNFGG.CollectionType.typename];
2040
2321
  if (!collection) {
2041
2322
  return;
2042
2323
  }
@@ -2049,7 +2330,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2049
2330
  }),
2050
2331
  // Create collection actions and action groups.
2051
2332
  (0, import_plugin_graph.createExtension)({
2052
- id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/object-actions`,
2333
+ id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/object-actions`,
2053
2334
  filter: (node) => (0, import_echo.isEchoObject)(node.data),
2054
2335
  actionGroups: ({ node }) => constructObjectActionGroups({
2055
2336
  object: node.data,
@@ -2062,8 +2343,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2062
2343
  }),
2063
2344
  // Create nodes for objects in collections.
2064
2345
  (0, import_plugin_graph.createExtension)({
2065
- id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/collection-objects`,
2066
- filter: (node) => node.data instanceof import_chunk_CVZPI2P3.CollectionType,
2346
+ id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/collection-objects`,
2347
+ filter: (node) => node.data instanceof import_chunk_CTYDNFGG.CollectionType,
2067
2348
  connector: ({ node }) => {
2068
2349
  const collection = node.data;
2069
2350
  const space = (0, import_echo.getSpace)(collection);
@@ -2076,6 +2357,45 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2076
2357
  resolve
2077
2358
  })).filter(import_util.nonNullable);
2078
2359
  }
2360
+ }),
2361
+ // Create nodes for object settings.
2362
+ (0, import_plugin_graph.createExtension)({
2363
+ id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/settings-for-subject`,
2364
+ resolver: ({ id }) => {
2365
+ if (!id.endsWith("~settings")) {
2366
+ return;
2367
+ }
2368
+ const [subjectId] = id.split("~");
2369
+ const [spaceId, objectId] = (0, import_echo.parseFullyQualifiedId)(subjectId);
2370
+ const space = client.spaces.get().find((space2) => space2.id === spaceId);
2371
+ const object = (0, import_plugin_graph.toSignal)((onChange) => {
2372
+ const timeout = setTimeout(async () => {
2373
+ await space?.db.loadObjectById(objectId);
2374
+ onChange();
2375
+ });
2376
+ return () => clearTimeout(timeout);
2377
+ }, () => space?.db.getObjectById(objectId), subjectId);
2378
+ if (!object || !subjectId) {
2379
+ return;
2380
+ }
2381
+ const meta = resolve((0, import_echo.getTypename)(object) ?? "");
2382
+ const label = meta.label?.(object) || object.name || meta.placeholder || [
2383
+ "unnamed object settings label",
2384
+ {
2385
+ ns: import_chunk_P4XUXM7Y.SPACE_PLUGIN
2386
+ }
2387
+ ];
2388
+ return {
2389
+ id,
2390
+ type: "orphan-settings-for-subject",
2391
+ data: null,
2392
+ properties: {
2393
+ icon: "ph--gear--regular",
2394
+ label,
2395
+ object
2396
+ }
2397
+ };
2398
+ }
2079
2399
  })
2080
2400
  ];
2081
2401
  },
@@ -2089,8 +2409,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2089
2409
  inputType: SPACES,
2090
2410
  outputType: DIRECTORY_TYPE,
2091
2411
  serialize: (node) => ({
2092
- name: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["spaces label"],
2093
- data: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["spaces label"],
2412
+ name: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["spaces label"],
2413
+ data: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["spaces label"],
2094
2414
  type: DIRECTORY_TYPE
2095
2415
  }),
2096
2416
  deserialize: () => {
@@ -2100,14 +2420,14 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2100
2420
  inputType: SPACE_TYPE,
2101
2421
  outputType: DIRECTORY_TYPE,
2102
2422
  serialize: (node) => ({
2103
- name: node.data.properties.name ?? translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["unnamed space label"],
2104
- data: node.data.properties.name ?? translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["unnamed space label"],
2423
+ name: node.data.properties.name ?? translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["unnamed space label"],
2424
+ data: node.data.properties.name ?? translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["unnamed space label"],
2105
2425
  type: DIRECTORY_TYPE
2106
2426
  }),
2107
2427
  deserialize: async (data) => {
2108
2428
  const result = await dispatch({
2109
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
2110
- action: import_chunk_6CNYF6YU.SpaceAction.CREATE,
2429
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
2430
+ action: import_chunk_P4XUXM7Y.SpaceAction.CREATE,
2111
2431
  data: {
2112
2432
  name: data.name
2113
2433
  }
@@ -2116,25 +2436,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2116
2436
  }
2117
2437
  },
2118
2438
  {
2119
- inputType: import_chunk_CVZPI2P3.CollectionType.typename,
2439
+ inputType: import_chunk_CTYDNFGG.CollectionType.typename,
2120
2440
  outputType: DIRECTORY_TYPE,
2121
2441
  serialize: (node) => ({
2122
- name: node.data.name ?? translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["unnamed collection label"],
2123
- data: node.data.name ?? translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["unnamed collection label"],
2442
+ name: node.data.name ?? translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["unnamed collection label"],
2443
+ data: node.data.name ?? translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["unnamed collection label"],
2124
2444
  type: DIRECTORY_TYPE
2125
2445
  }),
2126
2446
  deserialize: async (data, ancestors) => {
2127
2447
  const space = ancestors.find(import_echo.isSpace);
2128
- const collection = ancestors.findLast((ancestor) => ancestor instanceof import_chunk_CVZPI2P3.CollectionType) ?? space?.properties[import_chunk_CVZPI2P3.CollectionType.typename];
2448
+ const collection = ancestors.findLast((ancestor) => ancestor instanceof import_chunk_CTYDNFGG.CollectionType) ?? space?.properties[import_chunk_CTYDNFGG.CollectionType.typename];
2129
2449
  if (!space || !collection) {
2130
2450
  return;
2131
2451
  }
2132
2452
  const result = await dispatch({
2133
- plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
2134
- action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
2453
+ plugin: import_chunk_P4XUXM7Y.SPACE_PLUGIN,
2454
+ action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
2135
2455
  data: {
2136
2456
  target: collection,
2137
- object: (0, import_echo.create)(import_chunk_CVZPI2P3.CollectionType, {
2457
+ object: (0, import_echo.create)(import_chunk_CTYDNFGG.CollectionType, {
2138
2458
  name: data.name,
2139
2459
  objects: [],
2140
2460
  views: {}
@@ -2152,23 +2472,23 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2152
2472
  const clientPlugin2 = (0, import_app_framework.resolvePlugin)(plugins, import_plugin_client.parseClientPlugin);
2153
2473
  const client = clientPlugin2?.provides.client;
2154
2474
  switch (intent.action) {
2155
- case import_chunk_6CNYF6YU.SpaceAction.WAIT_FOR_OBJECT: {
2475
+ case import_chunk_P4XUXM7Y.SpaceAction.WAIT_FOR_OBJECT: {
2156
2476
  state.values.awaiting = intent.data?.id;
2157
2477
  return {
2158
2478
  data: true
2159
2479
  };
2160
2480
  }
2161
- case import_chunk_6CNYF6YU.SpaceAction.CREATE: {
2481
+ case import_chunk_P4XUXM7Y.SpaceAction.CREATE: {
2162
2482
  if (!client) {
2163
2483
  return;
2164
2484
  }
2165
2485
  const space = await client.spaces.create(intent.data);
2166
2486
  await space.waitUntilReady();
2167
- const collection = (0, import_echo.create)(import_chunk_CVZPI2P3.CollectionType, {
2487
+ const collection = (0, import_echo.create)(import_chunk_CTYDNFGG.CollectionType, {
2168
2488
  objects: [],
2169
2489
  views: {}
2170
2490
  });
2171
- space.properties[import_chunk_CVZPI2P3.CollectionType.typename] = collection;
2491
+ space.properties[import_chunk_CTYDNFGG.CollectionType.typename] = collection;
2172
2492
  if (import_migrations.Migrations.versionProperty) {
2173
2493
  space.properties[import_migrations.Migrations.versionProperty] = import_migrations.Migrations.targetVersion;
2174
2494
  }
@@ -2183,6 +2503,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2183
2503
  }
2184
2504
  },
2185
2505
  intents: [
2506
+ ...settings.values.onSpaceCreate ? [
2507
+ [
2508
+ {
2509
+ action: settings.values.onSpaceCreate,
2510
+ data: {
2511
+ space
2512
+ }
2513
+ },
2514
+ {
2515
+ action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
2516
+ data: {
2517
+ target: space
2518
+ }
2519
+ },
2520
+ {
2521
+ action: import_app_framework.NavigationAction.EXPOSE
2522
+ }
2523
+ ]
2524
+ ] : [],
2186
2525
  [
2187
2526
  {
2188
2527
  action: import_meta.ObservabilityAction.SEND_EVENT,
@@ -2197,7 +2536,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2197
2536
  ]
2198
2537
  };
2199
2538
  }
2200
- case import_chunk_6CNYF6YU.SpaceAction.JOIN: {
2539
+ case import_chunk_P4XUXM7Y.SpaceAction.JOIN: {
2201
2540
  if (client) {
2202
2541
  const { space } = await client.shell.joinSpace({
2203
2542
  invitationCode: intent.data?.invitationCode
@@ -2214,6 +2553,20 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2214
2553
  }
2215
2554
  },
2216
2555
  intents: [
2556
+ [
2557
+ {
2558
+ action: import_app_framework.LayoutAction.SET_LAYOUT,
2559
+ data: {
2560
+ element: "toast",
2561
+ subject: {
2562
+ id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/join-success`,
2563
+ duration: 1e4,
2564
+ title: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["join success label"],
2565
+ closeLabel: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["dismiss label"]
2566
+ }
2567
+ }
2568
+ }
2569
+ ],
2217
2570
  [
2218
2571
  {
2219
2572
  action: import_meta.ObservabilityAction.SEND_EVENT,
@@ -2231,7 +2584,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2231
2584
  }
2232
2585
  break;
2233
2586
  }
2234
- case import_chunk_6CNYF6YU.SpaceAction.SHARE: {
2587
+ case import_chunk_P4XUXM7Y.SpaceAction.SHARE: {
2235
2588
  const spaceId = intent.data?.spaceId;
2236
2589
  if (clientPlugin2 && typeof spaceId === "string") {
2237
2590
  if (!navigationPlugin?.provides.location.active) {
@@ -2264,7 +2617,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2264
2617
  }
2265
2618
  break;
2266
2619
  }
2267
- case import_chunk_6CNYF6YU.SpaceAction.LOCK: {
2620
+ case import_chunk_P4XUXM7Y.SpaceAction.LOCK: {
2268
2621
  const space = intent.data?.space;
2269
2622
  if ((0, import_echo.isSpace)(space)) {
2270
2623
  space.properties[COMPOSER_SPACE_LOCK] = true;
@@ -2287,7 +2640,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2287
2640
  }
2288
2641
  break;
2289
2642
  }
2290
- case import_chunk_6CNYF6YU.SpaceAction.UNLOCK: {
2643
+ case import_chunk_P4XUXM7Y.SpaceAction.UNLOCK: {
2291
2644
  const space = intent.data?.space;
2292
2645
  if ((0, import_echo.isSpace)(space)) {
2293
2646
  space.properties[COMPOSER_SPACE_LOCK] = false;
@@ -2310,7 +2663,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2310
2663
  }
2311
2664
  break;
2312
2665
  }
2313
- case import_chunk_6CNYF6YU.SpaceAction.RENAME: {
2666
+ case import_chunk_P4XUXM7Y.SpaceAction.RENAME: {
2314
2667
  const { caller, space } = intent.data ?? {};
2315
2668
  if (typeof caller === "string" && (0, import_echo.isSpace)(space)) {
2316
2669
  return {
@@ -2331,7 +2684,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2331
2684
  }
2332
2685
  break;
2333
2686
  }
2334
- case import_chunk_6CNYF6YU.SpaceAction.OPEN: {
2687
+ case import_chunk_P4XUXM7Y.SpaceAction.OPEN: {
2335
2688
  const space = intent.data?.space;
2336
2689
  if ((0, import_echo.isSpace)(space)) {
2337
2690
  await space.open();
@@ -2341,7 +2694,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2341
2694
  }
2342
2695
  break;
2343
2696
  }
2344
- case import_chunk_6CNYF6YU.SpaceAction.CLOSE: {
2697
+ case import_chunk_P4XUXM7Y.SpaceAction.CLOSE: {
2345
2698
  const space = intent.data?.space;
2346
2699
  if ((0, import_echo.isSpace)(space)) {
2347
2700
  await space.close();
@@ -2351,7 +2704,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2351
2704
  }
2352
2705
  break;
2353
2706
  }
2354
- case import_chunk_6CNYF6YU.SpaceAction.MIGRATE: {
2707
+ case import_chunk_P4XUXM7Y.SpaceAction.MIGRATE: {
2355
2708
  const space = intent.data?.space;
2356
2709
  if ((0, import_echo.isSpace)(space)) {
2357
2710
  if (space.state.get() === import_echo.SpaceState.SPACE_REQUIRES_MIGRATION) {
@@ -2380,7 +2733,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2380
2733
  }
2381
2734
  break;
2382
2735
  }
2383
- case import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT: {
2736
+ case import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT: {
2384
2737
  const object = intent.data?.object ?? intent.data?.result;
2385
2738
  if (!(0, import_echo_schema.isReactiveObject)(object)) {
2386
2739
  return;
@@ -2399,16 +2752,15 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2399
2752
  data: {
2400
2753
  element: "toast",
2401
2754
  subject: {
2402
- id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/space-limit`,
2403
- title: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["space limit label"],
2404
- description: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["space limit description"],
2755
+ id: `${import_chunk_P4XUXM7Y.SPACE_PLUGIN}/space-limit`,
2756
+ title: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["space limit label"],
2757
+ description: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["space limit description"],
2405
2758
  duration: 5e3,
2406
- icon: (props) => /* @__PURE__ */ import_react2.default.createElement(import_react.Warning, props),
2407
- iconSymbol: "ph--warning--regular",
2408
- actionLabel: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["remove deleted objects label"],
2409
- actionAlt: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["remove deleted objects alt"],
2759
+ icon: "ph--warning--regular",
2760
+ actionLabel: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["remove deleted objects label"],
2761
+ actionAlt: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["remove deleted objects alt"],
2410
2762
  // TODO(wittjosiah): Use OS namespace.
2411
- closeLabel: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["space limit close label"],
2763
+ closeLabel: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN]["space limit close label"],
2412
2764
  onAction: () => space.db.coreDatabase.unlinkDeletedObjects()
2413
2765
  }
2414
2766
  }
@@ -2428,25 +2780,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2428
2780
  ]
2429
2781
  };
2430
2782
  }
2431
- if (intent.data?.target instanceof import_chunk_CVZPI2P3.CollectionType) {
2783
+ if (intent.data?.target instanceof import_chunk_CTYDNFGG.CollectionType) {
2432
2784
  intent.data?.target.objects.push(object);
2433
2785
  } else if ((0, import_echo.isSpace)(intent.data?.target)) {
2434
- const collection = space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
2435
- if (collection instanceof import_chunk_CVZPI2P3.CollectionType) {
2786
+ const collection = space.properties[import_chunk_CTYDNFGG.CollectionType.typename];
2787
+ if (collection instanceof import_chunk_CTYDNFGG.CollectionType) {
2436
2788
  collection.objects.push(object);
2437
2789
  } else {
2438
- const collection2 = (0, import_echo.create)(import_chunk_CVZPI2P3.CollectionType, {
2790
+ const collection2 = (0, import_echo.create)(import_chunk_CTYDNFGG.CollectionType, {
2439
2791
  objects: [
2440
2792
  object
2441
2793
  ],
2442
2794
  views: {}
2443
2795
  });
2444
- space.properties[import_chunk_CVZPI2P3.CollectionType.typename] = collection2;
2796
+ space.properties[import_chunk_CTYDNFGG.CollectionType.typename] = collection2;
2445
2797
  }
2446
2798
  }
2447
2799
  return {
2448
2800
  data: {
2449
- id: object.id,
2801
+ id: (0, import_echo.fullyQualifiedId)(object),
2450
2802
  object,
2451
2803
  activeParts: {
2452
2804
  main: [
@@ -2471,7 +2823,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2471
2823
  ]
2472
2824
  };
2473
2825
  }
2474
- case import_chunk_6CNYF6YU.SpaceAction.REMOVE_OBJECT: {
2826
+ case import_chunk_P4XUXM7Y.SpaceAction.REMOVE_OBJECT: {
2475
2827
  const object = intent.data?.object ?? intent.data?.result;
2476
2828
  const space = (0, import_echo.getSpace)(object);
2477
2829
  if (!((0, import_echo.isEchoObject)(object) && space)) {
@@ -2481,12 +2833,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2481
2833
  const activeParts = navigationPlugin?.provides.location.active;
2482
2834
  const openObjectIds = new Set((0, import_app_framework.openIds)(activeParts ?? {}));
2483
2835
  if (!intent.undo && resolve) {
2484
- const parentCollection = intent.data?.collection ?? space.properties[import_chunk_CVZPI2P3.CollectionType.typename];
2836
+ const parentCollection = intent.data?.collection ?? space.properties[import_chunk_CTYDNFGG.CollectionType.typename];
2485
2837
  const nestedObjects = await getNestedObjects(object, resolve);
2486
2838
  const deletionData = {
2487
2839
  object,
2488
2840
  parentCollection,
2489
- index: parentCollection instanceof import_chunk_CVZPI2P3.CollectionType ? parentCollection.objects.indexOf(object) : -1,
2841
+ index: parentCollection instanceof import_chunk_CTYDNFGG.CollectionType ? parentCollection.objects.indexOf(object) : -1,
2490
2842
  nestedObjects,
2491
2843
  wasActive: [
2492
2844
  object,
@@ -2499,13 +2851,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2499
2851
  data: {
2500
2852
  activeParts: {
2501
2853
  main: deletionData.wasActive,
2502
- sidebar: deletionData.wasActive,
2503
- complementary: deletionData.wasActive
2854
+ sidebar: deletionData.wasActive
2504
2855
  }
2505
2856
  }
2506
2857
  });
2507
2858
  }
2508
- if (parentCollection instanceof import_chunk_CVZPI2P3.CollectionType) {
2859
+ if (parentCollection instanceof import_chunk_CTYDNFGG.CollectionType) {
2509
2860
  const index = parentCollection.objects.indexOf(object);
2510
2861
  if (index !== -1) {
2511
2862
  parentCollection.objects.splice(index, 1);
@@ -2515,18 +2866,18 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2515
2866
  space.db.remove(obj);
2516
2867
  });
2517
2868
  space.db.remove(object);
2518
- const undoMessageKey = object instanceof import_chunk_CVZPI2P3.CollectionType ? "collection deleted label" : "object deleted label";
2869
+ const undoMessageKey = object instanceof import_chunk_CTYDNFGG.CollectionType ? "collection deleted label" : "object deleted label";
2519
2870
  return {
2520
2871
  data: true,
2521
2872
  undoable: {
2522
2873
  // Consider using a translation key here.
2523
- message: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN][undoMessageKey],
2874
+ message: translations_default[0]["en-US"][import_chunk_P4XUXM7Y.SPACE_PLUGIN][undoMessageKey],
2524
2875
  data: deletionData
2525
2876
  }
2526
2877
  };
2527
2878
  } else {
2528
2879
  const undoData = intent.data;
2529
- if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof import_chunk_CVZPI2P3.CollectionType) {
2880
+ if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof import_chunk_CTYDNFGG.CollectionType) {
2530
2881
  const restoredObject = space.db.add(undoData.object);
2531
2882
  undoData.nestedObjects.forEach((obj) => {
2532
2883
  space.db.add(obj);
@@ -2553,7 +2904,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2553
2904
  };
2554
2905
  }
2555
2906
  }
2556
- case import_chunk_6CNYF6YU.SpaceAction.RENAME_OBJECT: {
2907
+ case import_chunk_P4XUXM7Y.SpaceAction.RENAME_OBJECT: {
2557
2908
  const object = intent.data?.object ?? intent.data?.result;
2558
2909
  const caller = intent.data?.caller;
2559
2910
  if ((0, import_echo_schema.isReactiveObject)(object) && caller) {
@@ -2575,7 +2926,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2575
2926
  }
2576
2927
  break;
2577
2928
  }
2578
- case import_chunk_6CNYF6YU.SpaceAction.DUPLICATE_OBJECT: {
2929
+ case import_chunk_P4XUXM7Y.SpaceAction.DUPLICATE_OBJECT: {
2579
2930
  const originalObject = intent.data?.object ?? intent.data?.result;
2580
2931
  const resolve = (0, import_app_framework.resolvePlugin)(plugins, import_app_framework.parseMetadataResolverPlugin)?.provides.metadata.resolver;
2581
2932
  if (!(0, import_echo.isEchoObject)(originalObject) || !resolve) {
@@ -2586,7 +2937,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2586
2937
  intents: [
2587
2938
  [
2588
2939
  {
2589
- action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
2940
+ action: import_chunk_P4XUXM7Y.SpaceAction.ADD_OBJECT,
2590
2941
  data: {
2591
2942
  object: newObject,
2592
2943
  target: intent.data?.target
@@ -2596,7 +2947,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
2596
2947
  ]
2597
2948
  };
2598
2949
  }
2599
- case import_chunk_6CNYF6YU.SpaceAction.TOGGLE_HIDDEN: {
2950
+ case import_chunk_P4XUXM7Y.SpaceAction.TOGGLE_HIDDEN: {
2600
2951
  settings.values.showHidden = intent.data?.state ?? !settings.values.showHidden;
2601
2952
  return {
2602
2953
  data: true
@@ -2619,10 +2970,10 @@ var src_default = SpacePlugin;
2619
2970
  CollectionSection,
2620
2971
  CollectionType,
2621
2972
  ContactType,
2622
- EmptySpace,
2623
- EmptyTree,
2973
+ DefaultObjectSettings,
2624
2974
  FullPresence,
2625
2975
  MenuFooter,
2976
+ MessageState,
2626
2977
  MessageType,
2627
2978
  MissingObject,
2628
2979
  PersistenceStatus,
@@ -2634,6 +2985,7 @@ var src_default = SpacePlugin;
2634
2985
  SPACE_PLUGIN,
2635
2986
  SPACE_PLUGIN_SHORT_ID,
2636
2987
  SPACE_TYPE,
2988
+ SaveStatus,
2637
2989
  ShareSpaceButton,
2638
2990
  ShareSpaceButtonImpl,
2639
2991
  SmallPresence,
@@ -2643,6 +2995,9 @@ var src_default = SpacePlugin;
2643
2995
  SpacePlugin,
2644
2996
  SpacePresence,
2645
2997
  SpaceSettings,
2998
+ SyncStatus,
2999
+ SyncStatusDetail,
3000
+ SyncStatusIndicator,
2646
3001
  ThreadStatus,
2647
3002
  ThreadType,
2648
3003
  cloneObject,
@@ -2656,6 +3011,7 @@ var src_default = SpacePlugin;
2656
3011
  getNestedObjects,
2657
3012
  getSpaceDisplayName,
2658
3013
  memoizeQuery,
3014
+ parseSpaceInitPlugin,
2659
3015
  parseSpacePlugin,
2660
3016
  translations
2661
3017
  });