@dxos/plugin-space 0.6.11 → 0.6.12-main.568932b
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.
- package/dist/lib/browser/{chunk-DTVUOG2C.mjs → chunk-NMD7OZMX.mjs} +22 -4
- package/dist/lib/browser/chunk-NMD7OZMX.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +500 -187
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/types/index.mjs +7 -3
- package/dist/lib/node/{chunk-CVZPI2P3.cjs → chunk-K7CSJ7HL.cjs} +28 -8
- package/dist/lib/node/chunk-K7CSJ7HL.cjs.map +7 -0
- package/dist/lib/node/index.cjs +588 -279
- package/dist/lib/node/index.cjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/types/index.cjs +14 -10
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/chunk-GM2YUC77.mjs +37 -0
- package/dist/lib/node-esm/chunk-GM2YUC77.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-P73EVC4A.mjs +115 -0
- package/dist/lib/node-esm/chunk-P73EVC4A.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +2954 -0
- package/dist/lib/node-esm/index.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -0
- package/dist/lib/node-esm/meta.mjs +14 -0
- package/dist/lib/node-esm/meta.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +26 -0
- package/dist/lib/node-esm/types/index.mjs.map +7 -0
- package/dist/types/src/SpacePlugin.d.ts.map +1 -1
- package/dist/types/src/components/MenuFooter.d.ts.map +1 -1
- package/dist/types/src/components/SaveStatus.d.ts +3 -0
- package/dist/types/src/components/SaveStatus.d.ts.map +1 -0
- package/dist/types/src/components/ShareSpaceButton.stories.d.ts +2 -0
- package/dist/types/src/components/ShareSpaceButton.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceMain/SpaceMain.d.ts.map +1 -1
- package/dist/types/src/components/SpacePresence.stories.d.ts +2 -0
- package/dist/types/src/components/SpacePresence.stories.d.ts.map +1 -1
- package/dist/types/src/components/SpaceSettings.d.ts.map +1 -1
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts +13 -0
- package/dist/types/src/components/SyncStatus/SyncStatus.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts +115 -0
- package/dist/types/src/components/SyncStatus/SyncStatus.stories.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/index.d.ts +2 -0
- package/dist/types/src/components/SyncStatus/index.d.ts.map +1 -0
- package/dist/types/src/components/SyncStatus/types.d.ts +14 -0
- package/dist/types/src/components/SyncStatus/types.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +2 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/thread.d.ts +13 -0
- package/dist/types/src/types/thread.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +18 -1
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/dist/types/src/util.d.ts +1 -4
- package/dist/types/src/util.d.ts.map +1 -1
- package/package.json +43 -36
- package/src/SpacePlugin.tsx +43 -24
- package/src/components/MenuFooter.tsx +1 -0
- package/src/components/SaveStatus.tsx +95 -0
- package/src/components/SpaceMain/SpaceMain.tsx +1 -22
- package/src/components/SpacePresence.tsx +1 -1
- package/src/components/SpaceSettings.tsx +32 -3
- package/src/components/SyncStatus/SyncStatus.stories.tsx +62 -0
- package/src/components/SyncStatus/SyncStatus.tsx +188 -0
- package/src/components/SyncStatus/index.ts +5 -0
- package/src/components/SyncStatus/types.ts +77 -0
- package/src/components/index.ts +2 -0
- package/src/translations.ts +2 -0
- package/src/types/collection.ts +1 -1
- package/src/types/thread.ts +10 -1
- package/src/types/types.ts +25 -1
- package/src/util.tsx +15 -50
- package/dist/lib/browser/chunk-DTVUOG2C.mjs.map +0 -7
- package/dist/lib/node/chunk-CVZPI2P3.cjs.map +0 -7
package/dist/lib/node/index.cjs
CHANGED
|
@@ -28,29 +28,31 @@ 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: () =>
|
|
31
|
+
ActorSchema: () => import_chunk_K7CSJ7HL.ActorSchema,
|
|
32
32
|
AwaitingObject: () => AwaitingObject,
|
|
33
33
|
COMPOSER_SPACE_LOCK: () => COMPOSER_SPACE_LOCK,
|
|
34
|
-
ChannelType: () =>
|
|
34
|
+
ChannelType: () => import_chunk_K7CSJ7HL.ChannelType,
|
|
35
35
|
CollectionMain: () => CollectionMain,
|
|
36
36
|
CollectionSection: () => CollectionSection,
|
|
37
|
-
CollectionType: () =>
|
|
38
|
-
ContactType: () =>
|
|
37
|
+
CollectionType: () => import_chunk_K7CSJ7HL.CollectionType,
|
|
38
|
+
ContactType: () => import_chunk_K7CSJ7HL.ContactType,
|
|
39
39
|
EmptySpace: () => EmptySpace,
|
|
40
40
|
EmptyTree: () => EmptyTree,
|
|
41
41
|
FullPresence: () => FullPresence,
|
|
42
42
|
MenuFooter: () => MenuFooter,
|
|
43
|
-
|
|
43
|
+
MessageState: () => import_chunk_K7CSJ7HL.MessageState,
|
|
44
|
+
MessageType: () => import_chunk_K7CSJ7HL.MessageType,
|
|
44
45
|
MissingObject: () => MissingObject,
|
|
45
46
|
PersistenceStatus: () => PersistenceStatus,
|
|
46
47
|
PopoverRenameObject: () => PopoverRenameObject,
|
|
47
48
|
PopoverRenameSpace: () => PopoverRenameSpace,
|
|
48
49
|
SHARED: () => SHARED,
|
|
49
50
|
SPACES: () => SPACES,
|
|
50
|
-
SPACE_DIRECTORY_HANDLE: () =>
|
|
51
|
+
SPACE_DIRECTORY_HANDLE: () => import_chunk_K7CSJ7HL.SPACE_DIRECTORY_HANDLE,
|
|
51
52
|
SPACE_PLUGIN: () => import_chunk_6CNYF6YU.SPACE_PLUGIN,
|
|
52
53
|
SPACE_PLUGIN_SHORT_ID: () => import_chunk_6CNYF6YU.SPACE_PLUGIN_SHORT_ID,
|
|
53
54
|
SPACE_TYPE: () => SPACE_TYPE,
|
|
55
|
+
SaveStatus: () => SaveStatus,
|
|
54
56
|
ShareSpaceButton: () => ShareSpaceButton,
|
|
55
57
|
ShareSpaceButtonImpl: () => ShareSpaceButtonImpl,
|
|
56
58
|
SmallPresence: () => SmallPresence,
|
|
@@ -60,8 +62,11 @@ __export(node_exports, {
|
|
|
60
62
|
SpacePlugin: () => SpacePlugin,
|
|
61
63
|
SpacePresence: () => SpacePresence,
|
|
62
64
|
SpaceSettings: () => SpaceSettings,
|
|
63
|
-
|
|
64
|
-
|
|
65
|
+
SyncStatus: () => SyncStatus,
|
|
66
|
+
SyncStatusDetail: () => SyncStatusDetail,
|
|
67
|
+
SyncStatusIndicator: () => SyncStatusIndicator,
|
|
68
|
+
ThreadStatus: () => import_chunk_K7CSJ7HL.ThreadStatus,
|
|
69
|
+
ThreadType: () => import_chunk_K7CSJ7HL.ThreadType,
|
|
65
70
|
cloneObject: () => cloneObject,
|
|
66
71
|
constructObjectActionGroups: () => constructObjectActionGroups,
|
|
67
72
|
constructObjectActions: () => constructObjectActions,
|
|
@@ -74,15 +79,15 @@ __export(node_exports, {
|
|
|
74
79
|
getNestedObjects: () => getNestedObjects,
|
|
75
80
|
getSpaceDisplayName: () => getSpaceDisplayName,
|
|
76
81
|
memoizeQuery: () => memoizeQuery,
|
|
82
|
+
parseSpaceInitPlugin: () => import_chunk_K7CSJ7HL.parseSpaceInitPlugin,
|
|
77
83
|
parseSpacePlugin: () => parseSpacePlugin,
|
|
78
84
|
translations: () => translations_default
|
|
79
85
|
});
|
|
80
86
|
module.exports = __toCommonJS(node_exports);
|
|
81
87
|
var import_chunk_6CNYF6YU = require("./chunk-6CNYF6YU.cjs");
|
|
82
|
-
var
|
|
83
|
-
var import_react = require("@phosphor-icons/react");
|
|
88
|
+
var import_chunk_K7CSJ7HL = require("./chunk-K7CSJ7HL.cjs");
|
|
84
89
|
var import_signals_core = require("@preact/signals-core");
|
|
85
|
-
var
|
|
90
|
+
var import_react = __toESM(require("react"));
|
|
86
91
|
var import_app_framework = require("@dxos/app-framework");
|
|
87
92
|
var import_async = require("@dxos/async");
|
|
88
93
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
@@ -96,73 +101,71 @@ 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
|
|
104
|
+
var import_react2 = require("@dxos/shell/react");
|
|
100
105
|
var import_util = require("@dxos/util");
|
|
101
|
-
var
|
|
102
|
-
var
|
|
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
|
|
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
|
|
116
|
+
var import_react6 = __toESM(require("react"));
|
|
112
117
|
var import_react_ui4 = require("@dxos/react-ui");
|
|
113
|
-
var
|
|
118
|
+
var import_react7 = __toESM(require("react"));
|
|
114
119
|
var import_react_ui5 = require("@dxos/react-ui");
|
|
115
120
|
var import_react_ui_theme3 = require("@dxos/react-ui-theme");
|
|
116
|
-
var
|
|
121
|
+
var import_react8 = __toESM(require("react"));
|
|
117
122
|
var import_react_ui6 = require("@dxos/react-ui");
|
|
118
123
|
var import_react_ui_theme4 = require("@dxos/react-ui-theme");
|
|
119
|
-
var
|
|
120
|
-
var
|
|
124
|
+
var import_react9 = require("@phosphor-icons/react");
|
|
125
|
+
var import_react10 = __toESM(require("react"));
|
|
121
126
|
var import_echo3 = require("@dxos/client/echo");
|
|
122
127
|
var import_react_client3 = require("@dxos/react-client");
|
|
123
128
|
var import_react_ui7 = require("@dxos/react-ui");
|
|
124
|
-
var import_react12 = require("@phosphor-icons/react");
|
|
125
|
-
var import_react13 = __toESM(require("react"));
|
|
126
129
|
var import_app_framework3 = require("@dxos/app-framework");
|
|
127
130
|
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
128
131
|
var import_invariant = require("@dxos/invariant");
|
|
129
132
|
var import_migrations2 = require("@dxos/migrations");
|
|
130
133
|
var import_plugin_graph2 = require("@dxos/plugin-graph");
|
|
131
134
|
var import_echo4 = require("@dxos/react-client/echo");
|
|
132
|
-
var
|
|
135
|
+
var import_react11 = __toESM(require("react"));
|
|
133
136
|
var import_app_framework4 = require("@dxos/app-framework");
|
|
134
137
|
var import_react_ui8 = require("@dxos/react-ui");
|
|
135
138
|
var import_react_ui_theme5 = require("@dxos/react-ui-theme");
|
|
136
|
-
var
|
|
137
|
-
var
|
|
139
|
+
var import_react12 = require("@phosphor-icons/react");
|
|
140
|
+
var import_react13 = __toESM(require("react"));
|
|
138
141
|
var import_async2 = require("@dxos/async");
|
|
139
142
|
var import_react_ui9 = require("@dxos/react-ui");
|
|
140
143
|
var import_react_ui_theme6 = require("@dxos/react-ui-theme");
|
|
141
|
-
var
|
|
144
|
+
var import_react14 = __toESM(require("react"));
|
|
142
145
|
var import_log2 = require("@dxos/log");
|
|
143
146
|
var import_react_ui10 = require("@dxos/react-ui");
|
|
144
|
-
var
|
|
147
|
+
var import_react15 = __toESM(require("react"));
|
|
145
148
|
var import_react_ui11 = require("@dxos/react-ui");
|
|
146
|
-
var
|
|
149
|
+
var import_react16 = __toESM(require("react"));
|
|
147
150
|
var import_app_framework5 = require("@dxos/app-framework");
|
|
148
151
|
var import_react_ui12 = require("@dxos/react-ui");
|
|
149
|
-
var
|
|
150
|
-
var
|
|
152
|
+
var import_react17 = require("@phosphor-icons/react");
|
|
153
|
+
var import_react18 = __toESM(require("react"));
|
|
151
154
|
var import_app_framework6 = require("@dxos/app-framework");
|
|
152
155
|
var import_echo5 = require("@dxos/react-client/echo");
|
|
153
156
|
var import_react_ui13 = require("@dxos/react-ui");
|
|
154
157
|
var import_react_ui_theme7 = require("@dxos/react-ui-theme");
|
|
155
|
-
var
|
|
156
|
-
var
|
|
157
|
-
var
|
|
158
|
+
var import_react19 = require("@dxos/shell/react");
|
|
159
|
+
var import_react20 = require("@phosphor-icons/react");
|
|
160
|
+
var import_react21 = __toESM(require("react"));
|
|
158
161
|
var import_app_framework7 = require("@dxos/app-framework");
|
|
159
162
|
var import_echo6 = require("@dxos/react-client/echo");
|
|
160
163
|
var import_invitations = require("@dxos/react-client/invitations");
|
|
161
164
|
var import_invitations2 = require("@dxos/react-client/invitations");
|
|
162
165
|
var import_react_ui14 = require("@dxos/react-ui");
|
|
163
166
|
var import_react_ui_theme8 = require("@dxos/react-ui-theme");
|
|
164
|
-
var
|
|
165
|
-
var
|
|
167
|
+
var import_react22 = require("@dxos/shell/react");
|
|
168
|
+
var import_react23 = __toESM(require("react"));
|
|
166
169
|
var import_app_framework8 = require("@dxos/app-framework");
|
|
167
170
|
var import_display_name = require("@dxos/display-name");
|
|
168
171
|
var import_react_client4 = require("@dxos/react-client");
|
|
@@ -171,22 +174,36 @@ var import_halo = require("@dxos/react-client/halo");
|
|
|
171
174
|
var import_react_ui15 = require("@dxos/react-ui");
|
|
172
175
|
var import_react_ui_attention = require("@dxos/react-ui-attention");
|
|
173
176
|
var import_util2 = require("@dxos/util");
|
|
174
|
-
var
|
|
177
|
+
var import_react24 = __toESM(require("react"));
|
|
175
178
|
var import_app_framework9 = require("@dxos/app-framework");
|
|
176
179
|
var import_plugin_settings = require("@dxos/plugin-settings");
|
|
177
180
|
var import_react_ui16 = require("@dxos/react-ui");
|
|
181
|
+
var import_react25 = __toESM(require("react"));
|
|
182
|
+
var import_context = require("@dxos/context");
|
|
183
|
+
var import_plugin_status_bar = require("@dxos/plugin-status-bar");
|
|
184
|
+
var import_react_client5 = require("@dxos/react-client");
|
|
185
|
+
var import_react_ui17 = require("@dxos/react-ui");
|
|
186
|
+
var import_react26 = __toESM(require("react"));
|
|
187
|
+
var import_plugin_status_bar2 = require("@dxos/plugin-status-bar");
|
|
188
|
+
var import_react_ui18 = require("@dxos/react-ui");
|
|
189
|
+
var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
|
|
190
|
+
var import_react_ui_theme9 = require("@dxos/react-ui-theme");
|
|
191
|
+
var import_react27 = require("react");
|
|
192
|
+
var import_context2 = require("@dxos/context");
|
|
193
|
+
var import_protocols = require("@dxos/protocols");
|
|
194
|
+
var import_react_client6 = require("@dxos/react-client");
|
|
178
195
|
var WAIT_FOR_OBJECT_TIMEOUT = 18e4;
|
|
179
196
|
var TOAST_TIMEOUT = 24e4;
|
|
180
197
|
var AwaitingObject = ({ id }) => {
|
|
181
|
-
const [open, setOpen] = (0,
|
|
182
|
-
const [waiting, setWaiting] = (0,
|
|
183
|
-
const [found, setFound] = (0,
|
|
198
|
+
const [open, setOpen] = (0, import_react4.useState)(true);
|
|
199
|
+
const [waiting, setWaiting] = (0, import_react4.useState)(true);
|
|
200
|
+
const [found, setFound] = (0, import_react4.useState)(false);
|
|
184
201
|
const { t } = (0, import_react_ui2.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
185
202
|
const intentPlugin = (0, import_app_framework2.useResolvePlugin)(import_app_framework2.parseIntentPlugin);
|
|
186
203
|
const navigationPlugin = (0, import_app_framework2.useResolvePlugin)(import_app_framework2.parseNavigationPlugin);
|
|
187
204
|
const client = (0, import_react_client2.useClient)();
|
|
188
205
|
const objects = (0, import_echo2.useQuery)(client.spaces);
|
|
189
|
-
(0,
|
|
206
|
+
(0, import_react4.useEffect)(() => {
|
|
190
207
|
if (!id) {
|
|
191
208
|
return;
|
|
192
209
|
}
|
|
@@ -197,7 +214,7 @@ var AwaitingObject = ({ id }) => {
|
|
|
197
214
|
}, [
|
|
198
215
|
id
|
|
199
216
|
]);
|
|
200
|
-
(0,
|
|
217
|
+
(0, import_react4.useEffect)(() => {
|
|
201
218
|
if (objects.findIndex((object) => (0, import_echo2.fullyQualifiedId)(object) === id) > -1) {
|
|
202
219
|
setFound(true);
|
|
203
220
|
if (navigationPlugin?.provides.location.active === id) {
|
|
@@ -229,33 +246,33 @@ var AwaitingObject = ({ id }) => {
|
|
|
229
246
|
});
|
|
230
247
|
void handleClose();
|
|
231
248
|
};
|
|
232
|
-
return /* @__PURE__ */
|
|
249
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Root, {
|
|
233
250
|
open,
|
|
234
251
|
duration: TOAST_TIMEOUT,
|
|
235
252
|
onOpenChange: setOpen
|
|
236
|
-
}, /* @__PURE__ */
|
|
253
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Body, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Title, {
|
|
237
254
|
classNames: "flex items-center gap-2"
|
|
238
|
-
}, found ? /* @__PURE__ */
|
|
255
|
+
}, found ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CheckCircle, {
|
|
239
256
|
className: (0, import_react_ui_theme.getSize)(5)
|
|
240
|
-
}), /* @__PURE__ */
|
|
257
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t("found object label"))) : waiting ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CircleNotch, {
|
|
241
258
|
className: (0, import_react_ui_theme.mx)((0, import_react_ui_theme.getSize)(5), "animate-spin")
|
|
242
|
-
}), /* @__PURE__ */
|
|
259
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t("waiting for object label"))) : /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react3.CircleDashed, {
|
|
243
260
|
className: (0, import_react_ui_theme.getSize)(5)
|
|
244
|
-
}), /* @__PURE__ */
|
|
261
|
+
}), /* @__PURE__ */ import_react4.default.createElement("span", null, t("object not found label")))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Description, null, t(found ? "found object description" : waiting ? "waiting for object description" : "object not found description"))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Actions, null, found ? /* @__PURE__ */ import_react4.default.createElement(import_react4.default.Fragment, null, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Action, {
|
|
245
262
|
altText: t("go to object alt"),
|
|
246
263
|
asChild: true
|
|
247
|
-
}, /* @__PURE__ */
|
|
264
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
|
|
248
265
|
variant: "primary",
|
|
249
266
|
onClick: handleNavigate
|
|
250
|
-
}, t("go to object label"))), /* @__PURE__ */
|
|
267
|
+
}, t("go to object label"))), /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Close, {
|
|
251
268
|
asChild: true
|
|
252
|
-
}, /* @__PURE__ */
|
|
269
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
|
|
253
270
|
onClick: handleClose
|
|
254
271
|
}, t("close label", {
|
|
255
272
|
ns: "appkit"
|
|
256
|
-
})))) : /* @__PURE__ */
|
|
273
|
+
})))) : /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Toast.Close, {
|
|
257
274
|
asChild: true
|
|
258
|
-
}, /* @__PURE__ */
|
|
275
|
+
}, /* @__PURE__ */ import_react4.default.createElement(import_react_ui2.Button, {
|
|
259
276
|
onClick: handleClose
|
|
260
277
|
}, t(waiting ? "close label" : "confirm label", {
|
|
261
278
|
ns: "appkit"
|
|
@@ -263,33 +280,33 @@ var AwaitingObject = ({ id }) => {
|
|
|
263
280
|
};
|
|
264
281
|
var CollectionMain = ({ collection }) => {
|
|
265
282
|
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
266
|
-
return /* @__PURE__ */
|
|
283
|
+
return /* @__PURE__ */ import_react5.default.createElement("div", {
|
|
267
284
|
role: "none",
|
|
268
285
|
className: (0, import_react_ui_theme2.mx)(import_react_ui_theme2.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8"),
|
|
269
286
|
"data-testid": "composer.firstRunMessage"
|
|
270
|
-
}, /* @__PURE__ */
|
|
287
|
+
}, /* @__PURE__ */ import_react5.default.createElement("p", {
|
|
271
288
|
role: "alert",
|
|
272
289
|
className: (0, import_react_ui_theme2.mx)(import_react_ui_theme2.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg p-8 font-normal text-lg max-is-[24rem] break-words")
|
|
273
290
|
}, collection.name ?? t("unnamed collection label")));
|
|
274
291
|
};
|
|
275
292
|
var CollectionSection = ({ collection }) => {
|
|
276
293
|
const { t } = (0, import_react_ui4.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
277
|
-
return /* @__PURE__ */
|
|
294
|
+
return /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
278
295
|
className: "min-bs-[3.5rem] grid grid-rows-subgrid grid-cols-subgrid items-center"
|
|
279
|
-
}, /* @__PURE__ */
|
|
296
|
+
}, /* @__PURE__ */ import_react6.default.createElement("span", {
|
|
280
297
|
className: "truncate"
|
|
281
298
|
}, collection.name ?? t("unnamed collection label")));
|
|
282
299
|
};
|
|
283
300
|
var EmptySpace = () => {
|
|
284
301
|
const { t } = (0, import_react_ui5.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
285
|
-
return /* @__PURE__ */
|
|
302
|
+
return /* @__PURE__ */ import_react7.default.createElement("div", {
|
|
286
303
|
role: "none",
|
|
287
304
|
className: (0, import_react_ui_theme3.mx)("p-2 mli-2 mbe-2 text-center border border-dashed border-neutral-400/50 rounded-lg", import_react_ui_theme3.descriptionText)
|
|
288
305
|
}, t("empty space message"));
|
|
289
306
|
};
|
|
290
307
|
var EmptyTree = () => {
|
|
291
308
|
const { t } = (0, import_react_ui6.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
292
|
-
return /* @__PURE__ */
|
|
309
|
+
return /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
293
310
|
role: "none",
|
|
294
311
|
className: (0, import_react_ui_theme4.mx)("p-2 mli-2 mbe-2 text-center border border-dashed border-neutral-400/50 rounded-lg", import_react_ui_theme4.descriptionText)
|
|
295
312
|
}, t("empty tree message"));
|
|
@@ -363,8 +380,8 @@ var checkPendingMigration = (space) => {
|
|
|
363
380
|
};
|
|
364
381
|
var constructSpaceNode = ({ space, personal, namesCache, resolve }) => {
|
|
365
382
|
const hasPendingMigration = checkPendingMigration(space);
|
|
366
|
-
const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[
|
|
367
|
-
const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof
|
|
383
|
+
const collection = space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties[import_chunk_K7CSJ7HL.CollectionType.typename];
|
|
384
|
+
const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof import_chunk_K7CSJ7HL.CollectionType ? getCollectionGraphNodePartials({
|
|
368
385
|
collection,
|
|
369
386
|
space,
|
|
370
387
|
resolve
|
|
@@ -380,8 +397,7 @@ var constructSpaceNode = ({ space, personal, namesCache, resolve }) => {
|
|
|
380
397
|
namesCache
|
|
381
398
|
}),
|
|
382
399
|
description: space.state.get() === import_echo4.SpaceState.SPACE_READY && space.properties.description,
|
|
383
|
-
icon:
|
|
384
|
-
iconSymbol: "ph--planet--regular",
|
|
400
|
+
icon: "ph--planet--regular",
|
|
385
401
|
disabled: space.state.get() !== import_echo4.SpaceState.SPACE_READY || hasPendingMigration,
|
|
386
402
|
testId: "spacePlugin.space"
|
|
387
403
|
}
|
|
@@ -394,7 +410,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
|
|
|
394
410
|
if (state !== import_echo4.SpaceState.SPACE_READY || hasPendingMigration) {
|
|
395
411
|
return [];
|
|
396
412
|
}
|
|
397
|
-
const collection = space.properties[
|
|
413
|
+
const collection = space.properties[import_chunk_K7CSJ7HL.CollectionType.typename];
|
|
398
414
|
const actions = [
|
|
399
415
|
{
|
|
400
416
|
id: getId(import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT),
|
|
@@ -407,8 +423,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
|
|
|
407
423
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
408
424
|
}
|
|
409
425
|
],
|
|
410
|
-
icon:
|
|
411
|
-
iconSymbol: "ph--plus--regular",
|
|
426
|
+
icon: "ph--plus--regular",
|
|
412
427
|
disposition: "toolbar",
|
|
413
428
|
// TODO(wittjosiah): This is currently a navtree feature. Address this with cmd+k integration.
|
|
414
429
|
// mainAreaDisposition: 'in-flow',
|
|
@@ -425,7 +440,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
|
|
|
425
440
|
action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
|
|
426
441
|
data: {
|
|
427
442
|
target: collection,
|
|
428
|
-
object: (0, import_echo_schema2.create)(
|
|
443
|
+
object: (0, import_echo_schema2.create)(import_chunk_K7CSJ7HL.CollectionType, {
|
|
429
444
|
objects: [],
|
|
430
445
|
views: {}
|
|
431
446
|
})
|
|
@@ -442,8 +457,7 @@ var constructSpaceActionGroups = ({ space, dispatch }) => {
|
|
|
442
457
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
443
458
|
}
|
|
444
459
|
],
|
|
445
|
-
icon:
|
|
446
|
-
iconSymbol: "ph--cards-three--regular",
|
|
460
|
+
icon: "ph--cards-three--regular",
|
|
447
461
|
testId: "spacePlugin.createCollection"
|
|
448
462
|
}
|
|
449
463
|
}
|
|
@@ -477,8 +491,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
477
491
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
478
492
|
}
|
|
479
493
|
],
|
|
480
|
-
icon:
|
|
481
|
-
iconSymbol: "ph--database--regular",
|
|
494
|
+
icon: "ph--database--regular",
|
|
482
495
|
disposition: "toolbar",
|
|
483
496
|
mainAreaDisposition: "in-flow",
|
|
484
497
|
disabled: migrating || import_migrations2.Migrations.running(space)
|
|
@@ -509,8 +522,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
509
522
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
510
523
|
}
|
|
511
524
|
],
|
|
512
|
-
icon:
|
|
513
|
-
iconSymbol: "ph--users--regular",
|
|
525
|
+
icon: "ph--users--regular",
|
|
514
526
|
disabled: locked,
|
|
515
527
|
keyBinding: {
|
|
516
528
|
macos: "meta+.",
|
|
@@ -537,8 +549,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
537
549
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
538
550
|
}
|
|
539
551
|
],
|
|
540
|
-
icon: locked ?
|
|
541
|
-
iconSymbol: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
|
|
552
|
+
icon: locked ? "ph--lock-simple-open--regular" : "ph--lock-simple--regular"
|
|
542
553
|
}
|
|
543
554
|
}, {
|
|
544
555
|
id: getId(import_chunk_6CNYF6YU.SpaceAction.RENAME),
|
|
@@ -560,8 +571,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
560
571
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
561
572
|
}
|
|
562
573
|
],
|
|
563
|
-
icon:
|
|
564
|
-
iconSymbol: "ph--pencil-simple-line--regular",
|
|
574
|
+
icon: "ph--pencil-simple-line--regular",
|
|
565
575
|
keyBinding: {
|
|
566
576
|
macos: "shift+F6",
|
|
567
577
|
windows: "shift+F6"
|
|
@@ -590,8 +600,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
590
600
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
591
601
|
}
|
|
592
602
|
],
|
|
593
|
-
icon:
|
|
594
|
-
iconSymbol: "ph--x--regular",
|
|
603
|
+
icon: "ph--x--regular",
|
|
595
604
|
mainAreaDisposition: "menu",
|
|
596
605
|
disabled: personal
|
|
597
606
|
}
|
|
@@ -617,8 +626,7 @@ var constructSpaceActions = ({ space, dispatch, personal, migrating }) => {
|
|
|
617
626
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
618
627
|
}
|
|
619
628
|
],
|
|
620
|
-
icon:
|
|
621
|
-
iconSymbol: "ph--clock-counter-clockwise--regular",
|
|
629
|
+
icon: "ph--clock-counter-clockwise--regular",
|
|
622
630
|
disposition: "toolbar",
|
|
623
631
|
mainAreaDisposition: "in-flow"
|
|
624
632
|
}
|
|
@@ -635,7 +643,7 @@ var createObjectNode = ({ object, space, resolve }) => {
|
|
|
635
643
|
if (Object.keys(metadata).length === 0) {
|
|
636
644
|
return void 0;
|
|
637
645
|
}
|
|
638
|
-
const partials = object instanceof
|
|
646
|
+
const partials = object instanceof import_chunk_K7CSJ7HL.CollectionType ? getCollectionGraphNodePartials({
|
|
639
647
|
collection: object,
|
|
640
648
|
space,
|
|
641
649
|
resolve
|
|
@@ -652,8 +660,7 @@ var createObjectNode = ({ object, space, resolve }) => {
|
|
|
652
660
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
653
661
|
}
|
|
654
662
|
],
|
|
655
|
-
icon: metadata.icon ??
|
|
656
|
-
iconSymbol: metadata.iconSymbol ?? "ph--placeholder--regular",
|
|
663
|
+
icon: metadata.icon ?? "ph--placeholder--regular",
|
|
657
664
|
testId: "spacePlugin.object",
|
|
658
665
|
persistenceClass: "echo",
|
|
659
666
|
persistenceKey: space?.id
|
|
@@ -661,7 +668,7 @@ var createObjectNode = ({ object, space, resolve }) => {
|
|
|
661
668
|
};
|
|
662
669
|
};
|
|
663
670
|
var constructObjectActionGroups = ({ object, dispatch }) => {
|
|
664
|
-
if (!(object instanceof
|
|
671
|
+
if (!(object instanceof import_chunk_K7CSJ7HL.CollectionType)) {
|
|
665
672
|
return [];
|
|
666
673
|
}
|
|
667
674
|
const collection = object;
|
|
@@ -678,8 +685,7 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
|
|
|
678
685
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
679
686
|
}
|
|
680
687
|
],
|
|
681
|
-
icon:
|
|
682
|
-
iconSymbol: "ph--plus--regular",
|
|
688
|
+
icon: "ph--plus--regular",
|
|
683
689
|
disposition: "toolbar",
|
|
684
690
|
// TODO(wittjosiah): This is currently a navtree feature. Address this with cmd+k integration.
|
|
685
691
|
// mainAreaDisposition: 'in-flow',
|
|
@@ -696,7 +702,7 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
|
|
|
696
702
|
action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
|
|
697
703
|
data: {
|
|
698
704
|
target: collection,
|
|
699
|
-
object: (0, import_echo_schema2.create)(
|
|
705
|
+
object: (0, import_echo_schema2.create)(import_chunk_K7CSJ7HL.CollectionType, {
|
|
700
706
|
objects: [],
|
|
701
707
|
views: {}
|
|
702
708
|
})
|
|
@@ -713,8 +719,7 @@ var constructObjectActionGroups = ({ object, dispatch }) => {
|
|
|
713
719
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
714
720
|
}
|
|
715
721
|
],
|
|
716
|
-
icon:
|
|
717
|
-
iconSymbol: "ph--cards-three--regular",
|
|
722
|
+
icon: "ph--cards-three--regular",
|
|
718
723
|
testId: "spacePlugin.createCollection"
|
|
719
724
|
}
|
|
720
725
|
}
|
|
@@ -741,13 +746,12 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
741
746
|
},
|
|
742
747
|
properties: {
|
|
743
748
|
label: [
|
|
744
|
-
object instanceof
|
|
749
|
+
object instanceof import_chunk_K7CSJ7HL.CollectionType ? "rename collection label" : "rename object label",
|
|
745
750
|
{
|
|
746
751
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
747
752
|
}
|
|
748
753
|
],
|
|
749
|
-
icon:
|
|
750
|
-
iconSymbol: "ph--pencil-simple-line--regular",
|
|
754
|
+
icon: "ph--pencil-simple-line--regular",
|
|
751
755
|
// TODO(wittjosiah): Doesn't work.
|
|
752
756
|
// keyBinding: 'shift+F6',
|
|
753
757
|
testId: "spacePlugin.renameObject"
|
|
@@ -760,7 +764,7 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
760
764
|
const graph = (0, import_plugin_graph2.getGraph)(node);
|
|
761
765
|
const collection = graph.nodes(node, {
|
|
762
766
|
relation: "inbound"
|
|
763
|
-
}).find(({ data }) => data instanceof
|
|
767
|
+
}).find(({ data }) => data instanceof import_chunk_K7CSJ7HL.CollectionType)?.data;
|
|
764
768
|
await dispatch([
|
|
765
769
|
{
|
|
766
770
|
action: import_chunk_6CNYF6YU.SpaceAction.REMOVE_OBJECT,
|
|
@@ -773,14 +777,13 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
773
777
|
},
|
|
774
778
|
properties: {
|
|
775
779
|
label: [
|
|
776
|
-
object instanceof
|
|
780
|
+
object instanceof import_chunk_K7CSJ7HL.CollectionType ? "delete collection label" : "delete object label",
|
|
777
781
|
{
|
|
778
782
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
779
783
|
}
|
|
780
784
|
],
|
|
781
|
-
icon:
|
|
782
|
-
|
|
783
|
-
keyBinding: object instanceof import_chunk_CVZPI2P3.CollectionType ? void 0 : "shift+meta+Backspace",
|
|
785
|
+
icon: "ph--trash--regular",
|
|
786
|
+
keyBinding: object instanceof import_chunk_K7CSJ7HL.CollectionType ? void 0 : "shift+meta+Backspace",
|
|
784
787
|
testId: "spacePlugin.deleteObject"
|
|
785
788
|
}
|
|
786
789
|
},
|
|
@@ -798,8 +801,7 @@ var constructObjectActions = ({ node, dispatch }) => {
|
|
|
798
801
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
799
802
|
}
|
|
800
803
|
],
|
|
801
|
-
icon:
|
|
802
|
-
iconSymbol: "ph--link--regular",
|
|
804
|
+
icon: "ph--link--regular",
|
|
803
805
|
testId: "spacePlugin.copyLink"
|
|
804
806
|
}
|
|
805
807
|
}
|
|
@@ -840,7 +842,7 @@ var cloneObject = async (object, resolve) => {
|
|
|
840
842
|
const serializer = metadata.serializer;
|
|
841
843
|
(0, import_invariant.invariant)(serializer, `No serializer for type: ${typename}`, {
|
|
842
844
|
F: __dxlog_file,
|
|
843
|
-
L:
|
|
845
|
+
L: 604,
|
|
844
846
|
S: void 0,
|
|
845
847
|
A: [
|
|
846
848
|
"serializer",
|
|
@@ -862,22 +864,22 @@ var MenuFooter = ({ object }) => {
|
|
|
862
864
|
const spaceName = space ? getSpaceDisplayName(space, {
|
|
863
865
|
personal: client.spaces.default === space
|
|
864
866
|
}) : "";
|
|
865
|
-
return space ? /* @__PURE__ */
|
|
867
|
+
return space ? /* @__PURE__ */ import_react10.default.createElement(import_react10.default.Fragment, null, /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.DropdownMenu.Separator, null), /* @__PURE__ */ import_react10.default.createElement(import_react_ui7.DropdownMenu.GroupLabel, null, t("menu footer label")), /* @__PURE__ */ import_react10.default.createElement("dl", {
|
|
866
868
|
className: "pis-2 mbe-2 text-xs grid grid-cols-[max-content_1fr] gap-2"
|
|
867
|
-
}, /* @__PURE__ */
|
|
869
|
+
}, /* @__PURE__ */ import_react10.default.createElement("dt", {
|
|
868
870
|
className: "uppercase text-[.75em] tracking-wide font-medium mbs-px self-start"
|
|
869
|
-
}, t("location label")), /* @__PURE__ */
|
|
871
|
+
}, t("location label")), /* @__PURE__ */ import_react10.default.createElement("dd", {
|
|
870
872
|
className: "line-clamp-3"
|
|
871
|
-
}, /* @__PURE__ */
|
|
873
|
+
}, /* @__PURE__ */ import_react10.default.createElement(import_react9.Planet, {
|
|
872
874
|
className: "inline-block mie-1"
|
|
873
875
|
}), (0, import_react_ui7.toLocalizedString)(spaceName, t)))) : null;
|
|
874
876
|
};
|
|
875
877
|
var WAIT_FOR_OBJECT_TIMEOUT2 = 1e3;
|
|
876
878
|
var MissingObject = ({ id }) => {
|
|
877
879
|
const { t } = (0, import_react_ui8.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
878
|
-
const [waiting, setWaiting] = (0,
|
|
880
|
+
const [waiting, setWaiting] = (0, import_react11.useState)(false);
|
|
879
881
|
const intentPlugin = (0, import_app_framework4.useResolvePlugin)(import_app_framework4.parseIntentPlugin);
|
|
880
|
-
(0,
|
|
882
|
+
(0, import_react11.useEffect)(() => {
|
|
881
883
|
if (!intentPlugin) {
|
|
882
884
|
return;
|
|
883
885
|
}
|
|
@@ -896,13 +898,13 @@ var MissingObject = ({ id }) => {
|
|
|
896
898
|
intentPlugin,
|
|
897
899
|
id
|
|
898
900
|
]);
|
|
899
|
-
return /* @__PURE__ */
|
|
901
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
900
902
|
role: "none",
|
|
901
903
|
className: (0, import_react_ui_theme5.mx)(import_react_ui_theme5.baseSurface, "min-bs-screen is-full flex items-center justify-center p-8")
|
|
902
|
-
}, waiting ? /* @__PURE__ */
|
|
904
|
+
}, waiting ? /* @__PURE__ */ import_react11.default.createElement("p", {
|
|
903
905
|
role: "alert",
|
|
904
906
|
className: (0, import_react_ui_theme5.mx)(import_react_ui_theme5.descriptionText, "border border-dashed border-neutral-400/50 rounded-lg flex items-center justify-center p-8 font-normal text-lg")
|
|
905
|
-
}, t("missing object message")) : /* @__PURE__ */
|
|
907
|
+
}, t("missing object message")) : /* @__PURE__ */ import_react11.default.createElement(import_react_ui8.Status, {
|
|
906
908
|
indeterminate: true,
|
|
907
909
|
"aria-label": "Initializing"
|
|
908
910
|
}));
|
|
@@ -915,11 +917,11 @@ var Status2;
|
|
|
915
917
|
})(Status2 || (Status2 = {}));
|
|
916
918
|
var PersistenceStatus = ({ db }) => {
|
|
917
919
|
const { t } = (0, import_react_ui9.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
918
|
-
const [displayMessage, setDisplayMessage] = (0,
|
|
919
|
-
const [status, naturalSetStatus] = (0,
|
|
920
|
-
const [prevStatus, setPrevStatus] = (0,
|
|
920
|
+
const [displayMessage, setDisplayMessage] = (0, import_react13.useState)(false);
|
|
921
|
+
const [status, naturalSetStatus] = (0, import_react13.useState)(0);
|
|
922
|
+
const [prevStatus, setPrevStatus] = (0, import_react13.useState)(0);
|
|
921
923
|
const _setStatus = (0, import_async2.debounce)(naturalSetStatus, 500);
|
|
922
|
-
(0,
|
|
924
|
+
(0, import_react13.useEffect)(() => {
|
|
923
925
|
setPrevStatus(status);
|
|
924
926
|
if (prevStatus !== status && status === 0) {
|
|
925
927
|
setDisplayMessage(true);
|
|
@@ -931,44 +933,44 @@ var PersistenceStatus = ({ db }) => {
|
|
|
931
933
|
]);
|
|
932
934
|
switch (status) {
|
|
933
935
|
case 2:
|
|
934
|
-
return /* @__PURE__ */
|
|
936
|
+
return /* @__PURE__ */ import_react13.default.createElement("div", {
|
|
935
937
|
className: "flex items-center"
|
|
936
|
-
}, /* @__PURE__ */
|
|
938
|
+
}, /* @__PURE__ */ import_react13.default.createElement(import_react12.Warning, {
|
|
937
939
|
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
|
|
938
|
-
}), /* @__PURE__ */
|
|
940
|
+
}), /* @__PURE__ */ import_react13.default.createElement("span", {
|
|
939
941
|
className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.warningText)
|
|
940
942
|
}, t("persistence error label")));
|
|
941
943
|
case 1:
|
|
942
|
-
return /* @__PURE__ */
|
|
944
|
+
return /* @__PURE__ */ import_react13.default.createElement("div", {
|
|
943
945
|
className: "flex items-center"
|
|
944
|
-
}, /* @__PURE__ */
|
|
946
|
+
}, /* @__PURE__ */ import_react13.default.createElement(import_react12.ArrowsCounterClockwise, {
|
|
945
947
|
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
|
|
946
|
-
}), /* @__PURE__ */
|
|
948
|
+
}), /* @__PURE__ */ import_react13.default.createElement("span", {
|
|
947
949
|
className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
|
|
948
950
|
}, t("persistence pending label")));
|
|
949
951
|
case 0:
|
|
950
952
|
default:
|
|
951
|
-
return /* @__PURE__ */
|
|
953
|
+
return /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Root, {
|
|
952
954
|
delayDuration: 400
|
|
953
|
-
}, /* @__PURE__ */
|
|
955
|
+
}, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Trigger, {
|
|
954
956
|
role: "status",
|
|
955
957
|
className: "flex items-center"
|
|
956
|
-
}, /* @__PURE__ */
|
|
958
|
+
}, /* @__PURE__ */ import_react13.default.createElement(import_react12.CheckCircle, {
|
|
957
959
|
className: (0, import_react_ui_theme6.mx)((0, import_react_ui_theme6.getSize)(4), "me-1")
|
|
958
|
-
}), displayMessage && /* @__PURE__ */
|
|
960
|
+
}), displayMessage && /* @__PURE__ */ import_react13.default.createElement("span", {
|
|
959
961
|
className: (0, import_react_ui_theme6.mx)("text-sm", import_react_ui_theme6.staticPlaceholderText)
|
|
960
|
-
}, t("persisted locally label"))), /* @__PURE__ */
|
|
962
|
+
}, t("persisted locally label"))), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Portal, null, /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Content, {
|
|
961
963
|
classNames: "z-10"
|
|
962
|
-
}, t("persisted locally message"), /* @__PURE__ */
|
|
964
|
+
}, t("persisted locally message"), /* @__PURE__ */ import_react13.default.createElement(import_react_ui9.Tooltip.Arrow, null))));
|
|
963
965
|
}
|
|
964
966
|
};
|
|
965
967
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/PopoverRenameObject.tsx";
|
|
966
968
|
var PopoverRenameObject = ({ object: obj }) => {
|
|
967
969
|
const { t } = (0, import_react_ui10.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
968
|
-
const doneButton = (0,
|
|
970
|
+
const doneButton = (0, import_react14.useRef)(null);
|
|
969
971
|
const object = obj;
|
|
970
|
-
const [name, setName] = (0,
|
|
971
|
-
const handleDone = (0,
|
|
972
|
+
const [name, setName] = (0, import_react14.useState)(object.name || object.title || "");
|
|
973
|
+
const handleDone = (0, import_react14.useCallback)(() => {
|
|
972
974
|
try {
|
|
973
975
|
object.name = name;
|
|
974
976
|
} catch {
|
|
@@ -989,23 +991,23 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
989
991
|
object,
|
|
990
992
|
name
|
|
991
993
|
]);
|
|
992
|
-
return /* @__PURE__ */
|
|
994
|
+
return /* @__PURE__ */ import_react14.default.createElement("div", {
|
|
993
995
|
role: "none",
|
|
994
996
|
className: "p-1 flex gap-2"
|
|
995
|
-
}, /* @__PURE__ */
|
|
997
|
+
}, /* @__PURE__ */ import_react14.default.createElement("div", {
|
|
996
998
|
role: "none",
|
|
997
999
|
className: "flex-1"
|
|
998
|
-
}, /* @__PURE__ */
|
|
1000
|
+
}, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.Root, null, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.Label, {
|
|
999
1001
|
srOnly: true
|
|
1000
|
-
}, t("object name label")), /* @__PURE__ */
|
|
1002
|
+
}, t("object name label")), /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Input.TextInput, {
|
|
1001
1003
|
placeholder: t("object title placeholder"),
|
|
1002
1004
|
value: name,
|
|
1003
1005
|
"data-testid": "spacePlugin.renameObject.input",
|
|
1004
1006
|
onChange: ({ target: { value } }) => setName(value),
|
|
1005
1007
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1006
|
-
}))), /* @__PURE__ */
|
|
1008
|
+
}))), /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Popover.Close, {
|
|
1007
1009
|
asChild: true
|
|
1008
|
-
}, /* @__PURE__ */
|
|
1010
|
+
}, /* @__PURE__ */ import_react14.default.createElement(import_react_ui10.Button, {
|
|
1009
1011
|
ref: doneButton,
|
|
1010
1012
|
classNames: "self-stretch",
|
|
1011
1013
|
onClick: handleDone
|
|
@@ -1015,32 +1017,32 @@ var PopoverRenameObject = ({ object: obj }) => {
|
|
|
1015
1017
|
};
|
|
1016
1018
|
var PopoverRenameSpace = ({ space }) => {
|
|
1017
1019
|
const { t } = (0, import_react_ui11.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
1018
|
-
const doneButton = (0,
|
|
1019
|
-
const [name, setName] = (0,
|
|
1020
|
-
const handleDone = (0,
|
|
1020
|
+
const doneButton = (0, import_react15.useRef)(null);
|
|
1021
|
+
const [name, setName] = (0, import_react15.useState)(space.properties.name ?? "");
|
|
1022
|
+
const handleDone = (0, import_react15.useCallback)(() => {
|
|
1021
1023
|
space.properties.name = name;
|
|
1022
1024
|
}, [
|
|
1023
1025
|
space,
|
|
1024
1026
|
name
|
|
1025
1027
|
]);
|
|
1026
|
-
return /* @__PURE__ */
|
|
1028
|
+
return /* @__PURE__ */ import_react15.default.createElement("div", {
|
|
1027
1029
|
role: "none",
|
|
1028
1030
|
className: "p-1 flex gap-2"
|
|
1029
|
-
}, /* @__PURE__ */
|
|
1031
|
+
}, /* @__PURE__ */ import_react15.default.createElement("div", {
|
|
1030
1032
|
role: "none",
|
|
1031
1033
|
className: "flex-1"
|
|
1032
|
-
}, /* @__PURE__ */
|
|
1034
|
+
}, /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Input.Root, null, /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Input.Label, {
|
|
1033
1035
|
srOnly: true
|
|
1034
|
-
}, t("space name label")), /* @__PURE__ */
|
|
1036
|
+
}, t("space name label")), /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Input.TextInput, {
|
|
1035
1037
|
defaultValue: space.properties.name ?? "",
|
|
1036
1038
|
placeholder: t("unnamed space label"),
|
|
1037
1039
|
onChange: ({ target: { value } }) => setName(value),
|
|
1038
1040
|
// TODO(wittjosiah): Ideally this should access the popover context to close the popover.
|
|
1039
1041
|
// Currently this is not possible because Radix does not expose the popover context.
|
|
1040
1042
|
onKeyDown: ({ key }) => key === "Enter" && doneButton.current?.click()
|
|
1041
|
-
}))), /* @__PURE__ */
|
|
1043
|
+
}))), /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Popover.Close, {
|
|
1042
1044
|
asChild: true
|
|
1043
|
-
}, /* @__PURE__ */
|
|
1045
|
+
}, /* @__PURE__ */ import_react15.default.createElement(import_react_ui11.Button, {
|
|
1044
1046
|
ref: doneButton,
|
|
1045
1047
|
classNames: "self-stretch",
|
|
1046
1048
|
onClick: handleDone
|
|
@@ -1050,7 +1052,7 @@ var PopoverRenameSpace = ({ space }) => {
|
|
|
1050
1052
|
};
|
|
1051
1053
|
var ShareSpaceButton = ({ spaceId }) => {
|
|
1052
1054
|
const dispatch = (0, import_app_framework5.useIntentDispatcher)();
|
|
1053
|
-
return /* @__PURE__ */
|
|
1055
|
+
return /* @__PURE__ */ import_react16.default.createElement(ShareSpaceButtonImpl, {
|
|
1054
1056
|
onClick: () => dispatch({
|
|
1055
1057
|
action: import_chunk_6CNYF6YU.SpaceAction.SHARE,
|
|
1056
1058
|
data: {
|
|
@@ -1061,7 +1063,7 @@ var ShareSpaceButton = ({ spaceId }) => {
|
|
|
1061
1063
|
};
|
|
1062
1064
|
var ShareSpaceButtonImpl = ({ onClick }) => {
|
|
1063
1065
|
const { t } = (0, import_react_ui12.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
1064
|
-
return /* @__PURE__ */
|
|
1066
|
+
return /* @__PURE__ */ import_react16.default.createElement(import_react_ui12.Button, {
|
|
1065
1067
|
"data-testid": "spacePlugin.shareSpaceButton",
|
|
1066
1068
|
onClick,
|
|
1067
1069
|
classNames: "mli-1"
|
|
@@ -1071,9 +1073,9 @@ var activeActionKeyStorageKey = "dxos:react-shell/space-manager/active-action";
|
|
|
1071
1073
|
var Presence = import_echo6.SpaceMember.PresenceState;
|
|
1072
1074
|
var handleCreateInvitationUrl = (invitationCode) => `${origin}?spaceInvitationCode=${invitationCode}`;
|
|
1073
1075
|
var SpaceMemberList = ({ members }) => {
|
|
1074
|
-
return members.length > 0 ? /* @__PURE__ */
|
|
1076
|
+
return members.length > 0 ? /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.List, {
|
|
1075
1077
|
classNames: "col-start-2 col-end-5 gap-y-1 grid grid-cols-subgrid items-center"
|
|
1076
|
-
}, members.map((member) => /* @__PURE__ */
|
|
1078
|
+
}, members.map((member) => /* @__PURE__ */ import_react21.default.createElement(import_react22.IdentityListItem, {
|
|
1077
1079
|
classNames: "contents",
|
|
1078
1080
|
key: member.identity.identityKey.toHex(),
|
|
1079
1081
|
identity: member.identity,
|
|
@@ -1117,8 +1119,8 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1117
1119
|
description: t("invite one description", {
|
|
1118
1120
|
ns: "os"
|
|
1119
1121
|
}),
|
|
1120
|
-
icon:
|
|
1121
|
-
onClick: (0,
|
|
1122
|
+
icon: import_react20.UserPlus,
|
|
1123
|
+
onClick: (0, import_react21.useCallback)(() => {
|
|
1122
1124
|
space.share?.({
|
|
1123
1125
|
type: import_invitations2.Invitation.Type.INTERACTIVE,
|
|
1124
1126
|
authMethod: import_invitations2.Invitation.AuthMethod.SHARED_SECRET
|
|
@@ -1134,8 +1136,8 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1134
1136
|
description: t("invite many description", {
|
|
1135
1137
|
ns: "os"
|
|
1136
1138
|
}),
|
|
1137
|
-
icon:
|
|
1138
|
-
onClick: (0,
|
|
1139
|
+
icon: import_react20.UsersThree,
|
|
1140
|
+
onClick: (0, import_react21.useCallback)(() => {
|
|
1139
1141
|
space.share?.({
|
|
1140
1142
|
type: import_invitations2.Invitation.Type.INTERACTIVE,
|
|
1141
1143
|
authMethod: import_invitations2.Invitation.AuthMethod.NONE,
|
|
@@ -1146,7 +1148,7 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1146
1148
|
])
|
|
1147
1149
|
}
|
|
1148
1150
|
};
|
|
1149
|
-
const [activeActionKey, setInternalActiveActionKey] = (0,
|
|
1151
|
+
const [activeActionKey, setInternalActiveActionKey] = (0, import_react21.useState)(localStorage.getItem(activeActionKeyStorageKey) ?? "inviteOne");
|
|
1150
1152
|
const setActiveActionKey = (nextKey) => {
|
|
1151
1153
|
setInternalActiveActionKey(nextKey);
|
|
1152
1154
|
localStorage.setItem(activeActionKeyStorageKey, nextKey);
|
|
@@ -1159,101 +1161,101 @@ var SpaceMembersSection = ({ space }) => {
|
|
|
1159
1161
|
[Presence.ONLINE]: [],
|
|
1160
1162
|
[Presence.OFFLINE]: []
|
|
1161
1163
|
});
|
|
1162
|
-
return /* @__PURE__ */
|
|
1164
|
+
return /* @__PURE__ */ import_react21.default.createElement("section", {
|
|
1163
1165
|
className: "mbe-4 col-span-3 grid gap-y-2 grid-cols-subgrid auto-rows-min"
|
|
1164
|
-
}, /* @__PURE__ */
|
|
1166
|
+
}, /* @__PURE__ */ import_react21.default.createElement("h2", {
|
|
1165
1167
|
className: "contents"
|
|
1166
|
-
}, /* @__PURE__ */
|
|
1168
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react20.UsersThree, {
|
|
1167
1169
|
weight: "duotone",
|
|
1168
1170
|
className: (0, import_react_ui_theme8.mx)((0, import_react_ui_theme8.getSize)(5), "place-self-center")
|
|
1169
|
-
}), /* @__PURE__ */
|
|
1171
|
+
}), /* @__PURE__ */ import_react21.default.createElement("span", {
|
|
1170
1172
|
className: "text-lg col-span-2"
|
|
1171
|
-
}, t("space members label"))), /* @__PURE__ */
|
|
1173
|
+
}, t("space members label"))), /* @__PURE__ */ import_react21.default.createElement("h3", {
|
|
1172
1174
|
className: "col-start-2 col-span-3 text-sm italic text-description"
|
|
1173
|
-
}, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */
|
|
1175
|
+
}, t("invitations heading")), invitations.length > 0 && /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.List, {
|
|
1174
1176
|
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__ */
|
|
1177
|
+
}, invitations.map((invitation) => /* @__PURE__ */ import_react21.default.createElement(import_react22.InvitationListItem, {
|
|
1176
1178
|
reverseEffects: true,
|
|
1177
1179
|
classNames: "pis-0 pie-0 gap-0 col-span-4 grid grid-cols-subgrid",
|
|
1178
1180
|
key: invitation.get().invitationId,
|
|
1179
1181
|
invitation,
|
|
1180
1182
|
send: handleInvitationSelect,
|
|
1181
1183
|
createInvitationUrl: handleCreateInvitationUrl
|
|
1182
|
-
}))), /* @__PURE__ */
|
|
1184
|
+
}))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.ButtonGroup, {
|
|
1183
1185
|
classNames: "col-start-2 col-end-4 grid grid-cols-[1fr_var(--rail-action)] place-self-grow gap-px"
|
|
1184
|
-
}, /* @__PURE__ */
|
|
1186
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.Button, {
|
|
1185
1187
|
classNames: "gap-2",
|
|
1186
1188
|
onClick: activeAction.onClick
|
|
1187
|
-
}, /* @__PURE__ */
|
|
1189
|
+
}, /* @__PURE__ */ import_react21.default.createElement(activeAction.icon, {
|
|
1188
1190
|
className: (0, import_react_ui_theme8.getSize)(5)
|
|
1189
|
-
}), /* @__PURE__ */
|
|
1191
|
+
}), /* @__PURE__ */ import_react21.default.createElement("span", null, t(activeAction.label, {
|
|
1190
1192
|
ns: "os"
|
|
1191
|
-
}))), /* @__PURE__ */
|
|
1193
|
+
}))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Root, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Trigger, {
|
|
1192
1194
|
asChild: true
|
|
1193
|
-
}, /* @__PURE__ */
|
|
1195
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.Button, {
|
|
1194
1196
|
classNames: "pli-0"
|
|
1195
|
-
}, /* @__PURE__ */
|
|
1197
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react20.CaretDown, {
|
|
1196
1198
|
className: (0, import_react_ui_theme8.getSize)(4)
|
|
1197
|
-
}))), /* @__PURE__ */
|
|
1198
|
-
return /* @__PURE__ */
|
|
1199
|
+
}))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Content, null, /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Viewport, null, Object.entries(inviteActions).map(([id, action]) => {
|
|
1200
|
+
return /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.CheckboxItem, {
|
|
1199
1201
|
key: id,
|
|
1200
1202
|
"aria-labelledby": `${id}__label`,
|
|
1201
1203
|
"aria-describedby": `${id}__description`,
|
|
1202
1204
|
checked: activeActionKey === id,
|
|
1203
1205
|
onCheckedChange: (checked) => checked && setActiveActionKey(id),
|
|
1204
1206
|
classNames: "gap-2"
|
|
1205
|
-
}, action.icon && /* @__PURE__ */
|
|
1207
|
+
}, action.icon && /* @__PURE__ */ import_react21.default.createElement(action.icon, {
|
|
1206
1208
|
className: (0, import_react_ui_theme8.getSize)(5)
|
|
1207
|
-
}), /* @__PURE__ */
|
|
1209
|
+
}), /* @__PURE__ */ import_react21.default.createElement("div", {
|
|
1208
1210
|
role: "none",
|
|
1209
1211
|
className: "flex-1 min-is-0 space-b-1"
|
|
1210
|
-
}, /* @__PURE__ */
|
|
1212
|
+
}, /* @__PURE__ */ import_react21.default.createElement("p", {
|
|
1211
1213
|
id: `${id}__label`
|
|
1212
1214
|
}, t(action.label, {
|
|
1213
1215
|
ns: "os"
|
|
1214
|
-
})), action.description && /* @__PURE__ */
|
|
1216
|
+
})), action.description && /* @__PURE__ */ import_react21.default.createElement("p", {
|
|
1215
1217
|
id: `${id}__description`,
|
|
1216
1218
|
className: import_react_ui_theme8.descriptionText
|
|
1217
1219
|
}, t(action.description, {
|
|
1218
1220
|
ns: "os"
|
|
1219
|
-
}))), /* @__PURE__ */
|
|
1221
|
+
}))), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.ItemIndicator, {
|
|
1220
1222
|
asChild: true
|
|
1221
|
-
}, /* @__PURE__ */
|
|
1223
|
+
}, /* @__PURE__ */ import_react21.default.createElement(import_react20.Check, {
|
|
1222
1224
|
className: (0, import_react_ui_theme8.getSize)(4)
|
|
1223
1225
|
})));
|
|
1224
|
-
})), /* @__PURE__ */
|
|
1226
|
+
})), /* @__PURE__ */ import_react21.default.createElement(import_react_ui14.DropdownMenu.Arrow, null)))), members[Presence.ONLINE].length + members[Presence.OFFLINE].length < 1 ? /* @__PURE__ */ import_react21.default.createElement("p", {
|
|
1225
1227
|
className: (0, import_react_ui_theme8.mx)(import_react_ui_theme8.descriptionText, "text-center is-full mlb-2")
|
|
1226
1228
|
}, t("empty space members message", {
|
|
1227
1229
|
ns: "os"
|
|
1228
|
-
})) : /* @__PURE__ */
|
|
1230
|
+
})) : /* @__PURE__ */ import_react21.default.createElement(import_react21.default.Fragment, null, /* @__PURE__ */ import_react21.default.createElement("h3", {
|
|
1229
1231
|
className: "col-start-2 col-end-5 text-sm italic text-description"
|
|
1230
1232
|
}, t("active space members heading", {
|
|
1231
1233
|
count: members[Presence.ONLINE].length
|
|
1232
|
-
})), /* @__PURE__ */
|
|
1234
|
+
})), /* @__PURE__ */ import_react21.default.createElement(SpaceMemberList, {
|
|
1233
1235
|
members: members[Presence.ONLINE]
|
|
1234
|
-
}), /* @__PURE__ */
|
|
1236
|
+
}), /* @__PURE__ */ import_react21.default.createElement("h3", {
|
|
1235
1237
|
className: "col-start-2 col-end-5 text-sm italic text-description"
|
|
1236
1238
|
}, t("inactive space members heading", {
|
|
1237
1239
|
count: members[Presence.OFFLINE].length
|
|
1238
|
-
})), /* @__PURE__ */
|
|
1240
|
+
})), /* @__PURE__ */ import_react21.default.createElement(SpaceMemberList, {
|
|
1239
1241
|
members: members[Presence.OFFLINE]
|
|
1240
1242
|
})));
|
|
1241
1243
|
};
|
|
1242
1244
|
var KeyShortcuts = () => {
|
|
1243
1245
|
const { t } = (0, import_react_ui13.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
1244
|
-
return /* @__PURE__ */
|
|
1246
|
+
return /* @__PURE__ */ import_react18.default.createElement("section", {
|
|
1245
1247
|
className: "mbe-4 col-span-4 md:col-start-5 md:col-end-7 grid grid-cols-subgrid gap-y-2 auto-rows-min"
|
|
1246
|
-
}, /* @__PURE__ */
|
|
1248
|
+
}, /* @__PURE__ */ import_react18.default.createElement("h2", {
|
|
1247
1249
|
className: "contents"
|
|
1248
|
-
}, /* @__PURE__ */
|
|
1250
|
+
}, /* @__PURE__ */ import_react18.default.createElement(import_react17.Command, {
|
|
1249
1251
|
weight: "duotone",
|
|
1250
1252
|
className: (0, import_react_ui_theme7.mx)((0, import_react_ui_theme7.getSize)(5), "place-self-center")
|
|
1251
|
-
}), /* @__PURE__ */
|
|
1253
|
+
}), /* @__PURE__ */ import_react18.default.createElement("span", {
|
|
1252
1254
|
className: "text-lg col-span-2 md:col-span-1"
|
|
1253
|
-
}, t("keyshortcuts label"))), /* @__PURE__ */
|
|
1255
|
+
}, t("keyshortcuts label"))), /* @__PURE__ */ import_react18.default.createElement("div", {
|
|
1254
1256
|
role: "none",
|
|
1255
1257
|
className: "col-start-2 col-end-4 md:col-end-5 pie-2"
|
|
1256
|
-
}, /* @__PURE__ */
|
|
1258
|
+
}, /* @__PURE__ */ import_react18.default.createElement(import_app_framework6.Surface, {
|
|
1257
1259
|
role: "keyshortcuts"
|
|
1258
1260
|
})));
|
|
1259
1261
|
};
|
|
@@ -1262,7 +1264,7 @@ var SpaceMain = ({ space, role }) => {
|
|
|
1262
1264
|
const state = space.state.get();
|
|
1263
1265
|
const ready = state === import_echo5.SpaceState.SPACE_READY;
|
|
1264
1266
|
const Root = role === "main" ? import_react_ui13.Main.Content : "div";
|
|
1265
|
-
return /* @__PURE__ */
|
|
1267
|
+
return /* @__PURE__ */ import_react18.default.createElement(import_react19.ClipboardProvider, null, /* @__PURE__ */ import_react18.default.createElement(Root, {
|
|
1266
1268
|
...role === "main" ? {
|
|
1267
1269
|
classNames: [
|
|
1268
1270
|
import_react_ui_theme7.topbarBlockPaddingStart,
|
|
@@ -1275,9 +1277,9 @@ var SpaceMain = ({ space, role }) => {
|
|
|
1275
1277
|
},
|
|
1276
1278
|
"data-testid": `spacePlugin.${role}`,
|
|
1277
1279
|
"data-isready": ready ? "true" : "false"
|
|
1278
|
-
}, ready && /* @__PURE__ */
|
|
1280
|
+
}, ready && /* @__PURE__ */ import_react18.default.createElement(SpaceMembersSection, {
|
|
1279
1281
|
space
|
|
1280
|
-
}), /* @__PURE__ */
|
|
1282
|
+
}), /* @__PURE__ */ import_react18.default.createElement(KeyShortcuts, null)));
|
|
1281
1283
|
};
|
|
1282
1284
|
var REFRESH_INTERVAL = 5e3;
|
|
1283
1285
|
var ACTIVITY_DURATION = 3e4;
|
|
@@ -1290,13 +1292,13 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1290
1292
|
const identity = (0, import_halo.useIdentity)();
|
|
1291
1293
|
const space = spaceKey ? client.spaces.get(spaceKey) : (0, import_echo7.getSpace)(object);
|
|
1292
1294
|
const spaceMembers = (0, import_echo7.useMembers)(space?.key);
|
|
1293
|
-
const [_moment, setMoment] = (0,
|
|
1294
|
-
(0,
|
|
1295
|
+
const [_moment, setMoment] = (0, import_react23.useState)(Date.now());
|
|
1296
|
+
(0, import_react23.useEffect)(() => {
|
|
1295
1297
|
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
1296
1298
|
return () => clearInterval(interval);
|
|
1297
1299
|
}, []);
|
|
1298
|
-
const memberOnline = (0,
|
|
1299
|
-
const memberIsNotSelf = (0,
|
|
1300
|
+
const memberOnline = (0, import_react23.useCallback)((member) => member.presence === 1, []);
|
|
1301
|
+
const memberIsNotSelf = (0, import_react23.useCallback)((member) => !identity?.identityKey.equals(member.identity.identityKey), [
|
|
1300
1302
|
identity?.identityKey
|
|
1301
1303
|
]);
|
|
1302
1304
|
if (!identity || !spacePlugin || !space) {
|
|
@@ -1314,50 +1316,50 @@ var SpacePresence = ({ object, spaceKey }) => {
|
|
|
1314
1316
|
lastSeen
|
|
1315
1317
|
};
|
|
1316
1318
|
}).toSorted((a, b) => a.lastSeen - b.lastSeen);
|
|
1317
|
-
return density === "fine" ? /* @__PURE__ */
|
|
1319
|
+
return density === "fine" ? /* @__PURE__ */ import_react23.default.createElement(SmallPresence, {
|
|
1318
1320
|
count: membersForObject.length
|
|
1319
|
-
}) : /* @__PURE__ */
|
|
1321
|
+
}) : /* @__PURE__ */ import_react23.default.createElement(FullPresence, {
|
|
1320
1322
|
members: membersForObject
|
|
1321
1323
|
});
|
|
1322
1324
|
};
|
|
1323
1325
|
var FullPresence = (props) => {
|
|
1324
1326
|
const { size = 9, onMemberClick } = props;
|
|
1325
|
-
const members = (0, import_react_ui15.useDefaultValue)(props.members, []);
|
|
1327
|
+
const members = (0, import_react_ui15.useDefaultValue)(props.members, () => []);
|
|
1326
1328
|
if (members.length === 0) {
|
|
1327
1329
|
return null;
|
|
1328
1330
|
}
|
|
1329
|
-
return /* @__PURE__ */
|
|
1331
|
+
return /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.AvatarGroup.Root, {
|
|
1330
1332
|
size,
|
|
1331
1333
|
classNames: "mbs-2 mie-4",
|
|
1332
1334
|
"data-testid": "spacePlugin.presence"
|
|
1333
|
-
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */
|
|
1335
|
+
}, members.slice(0, 3).map((member, i) => /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Root, {
|
|
1334
1336
|
key: member.identity.identityKey.toHex()
|
|
1335
|
-
}, /* @__PURE__ */
|
|
1337
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Trigger, null, /* @__PURE__ */ import_react23.default.createElement(PrensenceAvatar, {
|
|
1336
1338
|
identity: member.identity,
|
|
1337
1339
|
group: true,
|
|
1338
1340
|
match: member.currentlyAttended,
|
|
1339
1341
|
index: members.length - i,
|
|
1340
1342
|
onClick: () => onMemberClick?.(member)
|
|
1341
|
-
})), /* @__PURE__ */
|
|
1343
|
+
})), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Content, {
|
|
1342
1344
|
side: "bottom"
|
|
1343
|
-
}, /* @__PURE__ */
|
|
1345
|
+
}, /* @__PURE__ */ import_react23.default.createElement("span", null, getName(member.identity)), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Arrow, null))))), members.length > 3 && /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Root, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Trigger, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.AvatarGroupItem.Root, {
|
|
1344
1346
|
status: "inactive"
|
|
1345
|
-
}, /* @__PURE__ */
|
|
1347
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Frame, {
|
|
1346
1348
|
style: {
|
|
1347
1349
|
zIndex: members.length - 4
|
|
1348
1350
|
}
|
|
1349
|
-
}, /* @__PURE__ */
|
|
1351
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Fallback, {
|
|
1350
1352
|
text: `+${members.length - 3}`
|
|
1351
|
-
})))), /* @__PURE__ */
|
|
1353
|
+
})))), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Content, {
|
|
1352
1354
|
side: "bottom"
|
|
1353
|
-
}, /* @__PURE__ */
|
|
1355
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Arrow, null), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.List, {
|
|
1354
1356
|
classNames: "max-h-56 overflow-y-auto"
|
|
1355
|
-
}, members.map((member) => /* @__PURE__ */
|
|
1357
|
+
}, members.map((member) => /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.ListItem.Root, {
|
|
1356
1358
|
key: member.identity.identityKey.toHex(),
|
|
1357
1359
|
classNames: "flex gap-2 items-center cursor-pointer mbe-2",
|
|
1358
1360
|
onClick: () => onMemberClick?.(member),
|
|
1359
1361
|
"data-testid": "identity-list-item"
|
|
1360
|
-
}, /* @__PURE__ */
|
|
1362
|
+
}, /* @__PURE__ */ import_react23.default.createElement(PrensenceAvatar, {
|
|
1361
1363
|
identity: member.identity,
|
|
1362
1364
|
showName: true,
|
|
1363
1365
|
match: member.currentlyAttended
|
|
@@ -1367,10 +1369,10 @@ var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) =>
|
|
|
1367
1369
|
const Root = group ? import_react_ui15.AvatarGroupItem.Root : import_react_ui15.Avatar.Root;
|
|
1368
1370
|
const status = match ? "current" : "active";
|
|
1369
1371
|
const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
|
|
1370
|
-
return /* @__PURE__ */
|
|
1372
|
+
return /* @__PURE__ */ import_react23.default.createElement(Root, {
|
|
1371
1373
|
status,
|
|
1372
1374
|
hue: identity.profile?.data?.hue || fallbackValue.hue
|
|
1373
|
-
}, /* @__PURE__ */
|
|
1375
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Frame, {
|
|
1374
1376
|
"data-testid": "spacePlugin.presence.member",
|
|
1375
1377
|
"data-status": status,
|
|
1376
1378
|
...index ? {
|
|
@@ -1379,43 +1381,44 @@ var PrensenceAvatar = ({ identity, showName, match, group, index, onClick }) =>
|
|
|
1379
1381
|
}
|
|
1380
1382
|
} : {},
|
|
1381
1383
|
onClick: () => onClick?.()
|
|
1382
|
-
}, /* @__PURE__ */
|
|
1384
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Fallback, {
|
|
1383
1385
|
text: identity.profile?.data?.emoji || fallbackValue.emoji
|
|
1384
|
-
})), showName && /* @__PURE__ */
|
|
1386
|
+
})), showName && /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Avatar.Label, {
|
|
1385
1387
|
classNames: "text-sm truncate pli-2"
|
|
1386
1388
|
}, getName(identity)));
|
|
1387
1389
|
};
|
|
1388
1390
|
var SmallPresenceLive = ({ viewers }) => {
|
|
1389
|
-
const [moment, setMoment] = (0,
|
|
1390
|
-
(0,
|
|
1391
|
+
const [moment, setMoment] = (0, import_react23.useState)(Date.now());
|
|
1392
|
+
(0, import_react23.useEffect)(() => {
|
|
1391
1393
|
const interval = setInterval(() => setMoment(Date.now()), REFRESH_INTERVAL);
|
|
1392
1394
|
return () => clearInterval(interval);
|
|
1393
1395
|
}, []);
|
|
1394
1396
|
const activeViewers = viewers ? Array.from(viewers.values()).filter(({ lastSeen }) => moment - lastSeen < ACTIVITY_DURATION) : [];
|
|
1395
|
-
return /* @__PURE__ */
|
|
1397
|
+
return /* @__PURE__ */ import_react23.default.createElement(SmallPresence, {
|
|
1396
1398
|
count: activeViewers.length
|
|
1397
1399
|
});
|
|
1398
1400
|
};
|
|
1399
1401
|
var SmallPresence = ({ count }) => {
|
|
1400
1402
|
const { t } = (0, import_react_ui15.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
1401
|
-
return /* @__PURE__ */
|
|
1403
|
+
return /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Root, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Trigger, {
|
|
1402
1404
|
asChild: true
|
|
1403
|
-
}, /* @__PURE__ */
|
|
1405
|
+
}, /* @__PURE__ */ import_react23.default.createElement(import_react_ui_attention.AttentionGlyph, {
|
|
1404
1406
|
presence: count > 1 ? "many" : count === 1 ? "one" : "none",
|
|
1405
1407
|
classNames: "self-center mie-1"
|
|
1406
|
-
})), /* @__PURE__ */
|
|
1408
|
+
})), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Portal, null, /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Content, {
|
|
1407
1409
|
side: "bottom",
|
|
1408
1410
|
classNames: "z-[70]"
|
|
1409
|
-
}, /* @__PURE__ */
|
|
1411
|
+
}, /* @__PURE__ */ import_react23.default.createElement("span", null, t("presence label", {
|
|
1410
1412
|
count
|
|
1411
|
-
})), /* @__PURE__ */
|
|
1413
|
+
})), /* @__PURE__ */ import_react23.default.createElement(import_react_ui15.Tooltip.Arrow, null))));
|
|
1412
1414
|
};
|
|
1413
1415
|
var SpaceSettings = ({ settings }) => {
|
|
1414
1416
|
const { t } = (0, import_react_ui16.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
1415
1417
|
const dispatch = (0, import_app_framework9.useIntentDispatcher)();
|
|
1416
|
-
|
|
1418
|
+
const plugins = (0, import_app_framework9.useResolvePlugins)(import_chunk_K7CSJ7HL.parseSpaceInitPlugin);
|
|
1419
|
+
return /* @__PURE__ */ import_react24.default.createElement(import_react24.default.Fragment, null, /* @__PURE__ */ import_react24.default.createElement(import_plugin_settings.SettingsValue, {
|
|
1417
1420
|
label: t("show hidden spaces label")
|
|
1418
|
-
}, /* @__PURE__ */
|
|
1421
|
+
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Input.Switch, {
|
|
1419
1422
|
checked: settings.showHidden,
|
|
1420
1423
|
onCheckedChange: (checked) => dispatch({
|
|
1421
1424
|
plugin: import_chunk_6CNYF6YU.SPACE_PLUGIN,
|
|
@@ -1424,7 +1427,285 @@ var SpaceSettings = ({ settings }) => {
|
|
|
1424
1427
|
state: !!checked
|
|
1425
1428
|
}
|
|
1426
1429
|
})
|
|
1427
|
-
}))
|
|
1430
|
+
})), /* @__PURE__ */ import_react24.default.createElement(import_plugin_settings.SettingsValue, {
|
|
1431
|
+
label: t("default on space create label")
|
|
1432
|
+
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Root, {
|
|
1433
|
+
value: settings.onSpaceCreate,
|
|
1434
|
+
onValueChange: (value) => {
|
|
1435
|
+
settings.onSpaceCreate = value;
|
|
1436
|
+
}
|
|
1437
|
+
}, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.TriggerButton, null), /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Portal, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Content, null, /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Viewport, null, plugins.map(({ provides: { space: { onSpaceCreate } } }) => /* @__PURE__ */ import_react24.default.createElement(import_react_ui16.Select.Option, {
|
|
1438
|
+
key: onSpaceCreate.action,
|
|
1439
|
+
value: onSpaceCreate.action
|
|
1440
|
+
}, (0, import_react_ui16.toLocalizedString)(onSpaceCreate.label, t)))))))));
|
|
1441
|
+
};
|
|
1442
|
+
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SaveStatus.tsx";
|
|
1443
|
+
var SaveStatus = () => {
|
|
1444
|
+
const { t } = (0, import_react_ui17.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
1445
|
+
const client = (0, import_react_client5.useClient)();
|
|
1446
|
+
const [state, setState] = (0, import_react25.useState)("saved");
|
|
1447
|
+
(0, import_react25.useEffect)(() => {
|
|
1448
|
+
return createClientSaveTracker(client, (state2) => {
|
|
1449
|
+
setState(state2);
|
|
1450
|
+
});
|
|
1451
|
+
}, []);
|
|
1452
|
+
return /* @__PURE__ */ import_react25.default.createElement(import_plugin_status_bar.StatusBar.Item, {
|
|
1453
|
+
title: state === "saving" ? t("saving label") : t("saved label")
|
|
1454
|
+
}, /* @__PURE__ */ import_react25.default.createElement(import_react_ui17.Icon, {
|
|
1455
|
+
icon: state === "saving" ? "ph--arrows-clockwise--regular" : "ph--check-circle--regular",
|
|
1456
|
+
size: 4
|
|
1457
|
+
}));
|
|
1458
|
+
};
|
|
1459
|
+
var createClientSaveTracker = (client, cb) => {
|
|
1460
|
+
const unsubscribeCallbacks = {};
|
|
1461
|
+
const state = {};
|
|
1462
|
+
const install = (spaces) => {
|
|
1463
|
+
for (const space of spaces) {
|
|
1464
|
+
if (state[space.id]) {
|
|
1465
|
+
continue;
|
|
1466
|
+
}
|
|
1467
|
+
state[space.id] = "saved";
|
|
1468
|
+
unsubscribeCallbacks[space.id] = createSpaceSaveTracker(space, (s) => {
|
|
1469
|
+
state[space.id] = s;
|
|
1470
|
+
cb(Object.values(state).some((s2) => s2 === "saving") ? "saving" : "saved");
|
|
1471
|
+
});
|
|
1472
|
+
}
|
|
1473
|
+
};
|
|
1474
|
+
client.spaces.subscribe((spaces) => {
|
|
1475
|
+
install(spaces);
|
|
1476
|
+
});
|
|
1477
|
+
install(client.spaces.get());
|
|
1478
|
+
return () => {
|
|
1479
|
+
for (const unsubscribe of Object.values(unsubscribeCallbacks)) {
|
|
1480
|
+
unsubscribe();
|
|
1481
|
+
}
|
|
1482
|
+
};
|
|
1483
|
+
};
|
|
1484
|
+
var createSpaceSaveTracker = (space, cb) => {
|
|
1485
|
+
const ctx = new import_context.Context(void 0, {
|
|
1486
|
+
F: __dxlog_file3,
|
|
1487
|
+
L: 64
|
|
1488
|
+
});
|
|
1489
|
+
void space.waitUntilReady().then(() => {
|
|
1490
|
+
if (ctx.disposed) {
|
|
1491
|
+
return;
|
|
1492
|
+
}
|
|
1493
|
+
let hasUnsavedChanges = false;
|
|
1494
|
+
let lastFlushPromise;
|
|
1495
|
+
space.crud.saveStateChanged.on(ctx, ({ unsavedDocuments }) => {
|
|
1496
|
+
hasUnsavedChanges = unsavedDocuments.length > 0;
|
|
1497
|
+
});
|
|
1498
|
+
space.crud.saveStateChanged.debounce(500).on(ctx, () => {
|
|
1499
|
+
if (hasUnsavedChanges) {
|
|
1500
|
+
lastFlushPromise = void 0;
|
|
1501
|
+
cb("saving");
|
|
1502
|
+
} else {
|
|
1503
|
+
const flushPromise = space.crud.flush();
|
|
1504
|
+
lastFlushPromise = flushPromise;
|
|
1505
|
+
void flushPromise.then(() => {
|
|
1506
|
+
if (lastFlushPromise === flushPromise) {
|
|
1507
|
+
cb("saved");
|
|
1508
|
+
}
|
|
1509
|
+
});
|
|
1510
|
+
}
|
|
1511
|
+
});
|
|
1512
|
+
});
|
|
1513
|
+
return () => {
|
|
1514
|
+
void ctx.dispose();
|
|
1515
|
+
};
|
|
1516
|
+
};
|
|
1517
|
+
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/components/SyncStatus/types.ts";
|
|
1518
|
+
var createEmptyEdgeSyncState = () => ({
|
|
1519
|
+
missingOnLocal: 0,
|
|
1520
|
+
missingOnRemote: 0,
|
|
1521
|
+
localDocumentCount: 0,
|
|
1522
|
+
remoteDocumentCount: 0,
|
|
1523
|
+
differentDocuments: 0
|
|
1524
|
+
});
|
|
1525
|
+
var getSyncSummary = (syncMap) => {
|
|
1526
|
+
return Object.entries(syncMap).reduce((summary, [_spaceId, peerState]) => {
|
|
1527
|
+
summary.missingOnLocal += peerState.missingOnLocal;
|
|
1528
|
+
summary.missingOnRemote += peerState.missingOnRemote;
|
|
1529
|
+
summary.localDocumentCount += peerState.localDocumentCount;
|
|
1530
|
+
summary.remoteDocumentCount += peerState.remoteDocumentCount;
|
|
1531
|
+
summary.differentDocuments += peerState.differentDocuments;
|
|
1532
|
+
return summary;
|
|
1533
|
+
}, createEmptyEdgeSyncState());
|
|
1534
|
+
};
|
|
1535
|
+
var isEdgePeerId = (peerId, spaceId) => peerId.startsWith(`${import_protocols.EdgeService.AUTOMERGE_REPLICATOR}:${spaceId}`);
|
|
1536
|
+
var useSyncState = () => {
|
|
1537
|
+
const client = (0, import_react_client6.useClient)();
|
|
1538
|
+
const [spaceState, setSpaceState] = (0, import_react27.useState)({});
|
|
1539
|
+
(0, import_react27.useEffect)(() => {
|
|
1540
|
+
const ctx = new import_context2.Context(void 0, {
|
|
1541
|
+
F: __dxlog_file4,
|
|
1542
|
+
L: 48
|
|
1543
|
+
});
|
|
1544
|
+
const createSubscriptions = (spaces) => {
|
|
1545
|
+
for (const space of spaces) {
|
|
1546
|
+
if (spaceState[space.id]) {
|
|
1547
|
+
continue;
|
|
1548
|
+
}
|
|
1549
|
+
ctx.onDispose(space.crud.subscribeToSyncState(ctx, ({ peers = [] }) => {
|
|
1550
|
+
const syncState = peers.find((state) => isEdgePeerId(state.peerId, space.id));
|
|
1551
|
+
if (syncState) {
|
|
1552
|
+
setSpaceState((spaceState2) => ({
|
|
1553
|
+
...spaceState2,
|
|
1554
|
+
[space.id]: syncState
|
|
1555
|
+
}));
|
|
1556
|
+
}
|
|
1557
|
+
}));
|
|
1558
|
+
}
|
|
1559
|
+
};
|
|
1560
|
+
createSubscriptions(client.spaces.get());
|
|
1561
|
+
client.spaces.subscribe((spaces) => {
|
|
1562
|
+
createSubscriptions(spaces);
|
|
1563
|
+
});
|
|
1564
|
+
return () => {
|
|
1565
|
+
void ctx.dispose();
|
|
1566
|
+
};
|
|
1567
|
+
}, [
|
|
1568
|
+
client
|
|
1569
|
+
]);
|
|
1570
|
+
return spaceState;
|
|
1571
|
+
};
|
|
1572
|
+
var SYNC_STALLED_TIMEOUT = 5e3;
|
|
1573
|
+
var styles = {
|
|
1574
|
+
barBg: "bg-neutral-50 dark:bg-green-900 text-black",
|
|
1575
|
+
barFg: "bg-neutral-100 bg-green-500",
|
|
1576
|
+
barHover: "dark:hover:bg-green-500"
|
|
1577
|
+
};
|
|
1578
|
+
var SyncStatus = () => {
|
|
1579
|
+
const state = useSyncState();
|
|
1580
|
+
return /* @__PURE__ */ import_react26.default.createElement(SyncStatusIndicator, {
|
|
1581
|
+
state
|
|
1582
|
+
});
|
|
1583
|
+
};
|
|
1584
|
+
var SyncStatusIndicator = ({ state }) => {
|
|
1585
|
+
const summary = getSyncSummary(state);
|
|
1586
|
+
const offline = false;
|
|
1587
|
+
const needsToUpload = summary.differentDocuments > 0 || summary.missingOnRemote > 0;
|
|
1588
|
+
const needsToDownload = summary.differentDocuments > 0 || summary.missingOnLocal > 0;
|
|
1589
|
+
const [classNames, setClassNames] = (0, import_react26.useState)();
|
|
1590
|
+
(0, import_react26.useEffect)(() => {
|
|
1591
|
+
setClassNames(void 0);
|
|
1592
|
+
if (!needsToUpload && !needsToDownload) {
|
|
1593
|
+
return;
|
|
1594
|
+
}
|
|
1595
|
+
const t = setTimeout(() => {
|
|
1596
|
+
setClassNames("text-orange-500");
|
|
1597
|
+
}, SYNC_STALLED_TIMEOUT);
|
|
1598
|
+
return () => clearTimeout(t);
|
|
1599
|
+
}, [
|
|
1600
|
+
needsToUpload,
|
|
1601
|
+
needsToDownload
|
|
1602
|
+
]);
|
|
1603
|
+
return /* @__PURE__ */ import_react26.default.createElement(import_plugin_status_bar2.StatusBar.Item, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Popover.Root, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Popover.Trigger, null, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
|
|
1604
|
+
icon: offline ? "ph--cloud-x--regular" : needsToUpload ? "ph--cloud-arrow-up--regular" : needsToDownload ? "ph--cloud-arrow-down--regular" : "ph--cloud-check--regular",
|
|
1605
|
+
size: 4,
|
|
1606
|
+
classNames
|
|
1607
|
+
})), /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Popover.Content, null, /* @__PURE__ */ import_react26.default.createElement(SyncStatusDetail, {
|
|
1608
|
+
state,
|
|
1609
|
+
summary,
|
|
1610
|
+
debug: false
|
|
1611
|
+
}))));
|
|
1612
|
+
};
|
|
1613
|
+
var SyncStatusDetail = ({ classNames, state, summary, debug }) => {
|
|
1614
|
+
const { t } = (0, import_react_ui18.useTranslation)(import_chunk_6CNYF6YU.SPACE_PLUGIN);
|
|
1615
|
+
const entries = Object.entries(state).sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0);
|
|
1616
|
+
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1617
|
+
className: (0, import_react_ui_theme9.mx)("flex flex-col text-xs min-w-[16rem]", classNames)
|
|
1618
|
+
}, /* @__PURE__ */ import_react26.default.createElement("h1", {
|
|
1619
|
+
className: "p-2"
|
|
1620
|
+
}, t("sync status title")), /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1621
|
+
className: "flex flex-col gap-[2px] my-[2px]"
|
|
1622
|
+
}, entries.map(([spaceId, state2]) => /* @__PURE__ */ import_react26.default.createElement(SpaceRow, {
|
|
1623
|
+
key: spaceId,
|
|
1624
|
+
spaceId,
|
|
1625
|
+
state: state2
|
|
1626
|
+
}))), debug && /* @__PURE__ */ import_react26.default.createElement(import_react_ui_syntax_highlighter.SyntaxHighlighter, {
|
|
1627
|
+
language: "json"
|
|
1628
|
+
}, JSON.stringify(summary, null, 2)));
|
|
1629
|
+
};
|
|
1630
|
+
var useActive = (count) => {
|
|
1631
|
+
const [current, setCurrent] = (0, import_react26.useState)(count);
|
|
1632
|
+
const [active, setActive] = (0, import_react26.useState)(false);
|
|
1633
|
+
(0, import_react26.useEffect)(() => {
|
|
1634
|
+
let t;
|
|
1635
|
+
if (count !== current) {
|
|
1636
|
+
setActive(true);
|
|
1637
|
+
setCurrent(count);
|
|
1638
|
+
t && clearTimeout(t);
|
|
1639
|
+
t = setTimeout(() => {
|
|
1640
|
+
setActive(false);
|
|
1641
|
+
}, SYNC_STALLED_TIMEOUT);
|
|
1642
|
+
}
|
|
1643
|
+
return () => {
|
|
1644
|
+
setActive(false);
|
|
1645
|
+
clearTimeout(t);
|
|
1646
|
+
};
|
|
1647
|
+
}, [
|
|
1648
|
+
count,
|
|
1649
|
+
current
|
|
1650
|
+
]);
|
|
1651
|
+
return active;
|
|
1652
|
+
};
|
|
1653
|
+
var SpaceRow = ({ spaceId, state: { localDocumentCount, remoteDocumentCount, missingOnLocal, missingOnRemote } }) => {
|
|
1654
|
+
const downActive = useActive(localDocumentCount);
|
|
1655
|
+
const upActive = useActive(remoteDocumentCount);
|
|
1656
|
+
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1657
|
+
className: (0, import_react_ui_theme9.mx)("flex items-center mx-[2px] gap-[2px] cursor-pointer", styles.barHover),
|
|
1658
|
+
title: spaceId,
|
|
1659
|
+
onClick: () => {
|
|
1660
|
+
void navigator.clipboard.writeText(spaceId);
|
|
1661
|
+
}
|
|
1662
|
+
}, /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
|
|
1663
|
+
icon: "ph--arrow-fat-line-left--regular",
|
|
1664
|
+
size: 3,
|
|
1665
|
+
classNames: (0, import_react_ui_theme9.mx)(downActive && "animate-[pulse_1s_infinite]")
|
|
1666
|
+
}), /* @__PURE__ */ import_react26.default.createElement(Candle, {
|
|
1667
|
+
up: {
|
|
1668
|
+
count: remoteDocumentCount,
|
|
1669
|
+
total: remoteDocumentCount + missingOnRemote
|
|
1670
|
+
},
|
|
1671
|
+
down: {
|
|
1672
|
+
count: localDocumentCount,
|
|
1673
|
+
total: localDocumentCount + missingOnLocal
|
|
1674
|
+
},
|
|
1675
|
+
title: spaceId
|
|
1676
|
+
}), /* @__PURE__ */ import_react26.default.createElement(import_react_ui18.Icon, {
|
|
1677
|
+
icon: "ph--arrow-fat-line-right--regular",
|
|
1678
|
+
size: 3,
|
|
1679
|
+
classNames: (0, import_react_ui_theme9.mx)(upActive && "animate-[pulse_1s_step-start_infinite]")
|
|
1680
|
+
}));
|
|
1681
|
+
};
|
|
1682
|
+
var Candle = ({ classNames, up, down }) => {
|
|
1683
|
+
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1684
|
+
className: (0, import_react_ui_theme9.mx)("grid grid-cols-[1fr_2rem_1fr] w-full h-3", classNames)
|
|
1685
|
+
}, /* @__PURE__ */ import_react26.default.createElement(Bar, {
|
|
1686
|
+
classNames: "justify-end",
|
|
1687
|
+
...up
|
|
1688
|
+
}), /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1689
|
+
className: "relative"
|
|
1690
|
+
}, /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1691
|
+
className: (0, import_react_ui_theme9.mx)("absolute inset-0 flex items-center justify-center text-xs", styles.barBg)
|
|
1692
|
+
}, up.total)), /* @__PURE__ */ import_react26.default.createElement(Bar, down));
|
|
1693
|
+
};
|
|
1694
|
+
var Bar = ({ classNames, count, total }) => {
|
|
1695
|
+
let p = count / total * 100;
|
|
1696
|
+
if (count < total) {
|
|
1697
|
+
p = Math.min(p, 95);
|
|
1698
|
+
}
|
|
1699
|
+
return /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1700
|
+
className: (0, import_react_ui_theme9.mx)("relative flex w-full", styles.barBg, classNames)
|
|
1701
|
+
}, /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1702
|
+
className: (0, import_react_ui_theme9.mx)("shrink-0", styles.barFg),
|
|
1703
|
+
style: {
|
|
1704
|
+
width: `${p}%`
|
|
1705
|
+
}
|
|
1706
|
+
}), count !== total && /* @__PURE__ */ import_react26.default.createElement("div", {
|
|
1707
|
+
className: "absolute top-0 bottom-0 flex items-center mx-0.5 text-black text-xs"
|
|
1708
|
+
}, count));
|
|
1428
1709
|
};
|
|
1429
1710
|
var translations_default = [
|
|
1430
1711
|
{
|
|
@@ -1504,19 +1785,23 @@ var translations_default = [
|
|
|
1504
1785
|
"space limit close label": "Close",
|
|
1505
1786
|
"remove deleted objects label": "Cleanup",
|
|
1506
1787
|
"remove deleted objects alt": "Permanently remove deleted objects to free up space.",
|
|
1507
|
-
"copy link label": "Copy link"
|
|
1788
|
+
"copy link label": "Copy link",
|
|
1789
|
+
"default on space create label": "On space create",
|
|
1790
|
+
"sync status title": "Sync status"
|
|
1508
1791
|
}
|
|
1509
1792
|
}
|
|
1510
1793
|
}
|
|
1511
1794
|
];
|
|
1512
|
-
var
|
|
1795
|
+
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-space/src/SpacePlugin.tsx";
|
|
1513
1796
|
var ACTIVE_NODE_BROADCAST_INTERVAL = 3e4;
|
|
1514
1797
|
var OBJECT_ID_LENGTH = 60;
|
|
1515
1798
|
var SPACE_MAX_OBJECTS = 500;
|
|
1516
1799
|
var DIRECTORY_TYPE = "text/directory";
|
|
1517
1800
|
var parseSpacePlugin = (plugin) => Array.isArray(plugin?.provides.space?.enabled) ? plugin : void 0;
|
|
1518
1801
|
var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
1519
|
-
const settings = new import_local_storage.LocalStorageStore(import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
1802
|
+
const settings = new import_local_storage.LocalStorageStore(import_chunk_6CNYF6YU.SPACE_PLUGIN, {
|
|
1803
|
+
onSpaceCreate: "dxos.org/plugin/markdown/action/create"
|
|
1804
|
+
});
|
|
1520
1805
|
const state = new import_local_storage.LocalStorageStore(import_chunk_6CNYF6YU.SPACE_PLUGIN, {
|
|
1521
1806
|
awaiting: void 0,
|
|
1522
1807
|
spaceNames: {},
|
|
@@ -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:
|
|
1600
|
-
L:
|
|
1884
|
+
F: __dxlog_file5,
|
|
1885
|
+
L: 225,
|
|
1601
1886
|
S: void 0,
|
|
1602
1887
|
C: (f, a) => f(...a)
|
|
1603
1888
|
});
|
|
@@ -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[
|
|
1956
|
+
defaultSpace.properties[import_chunk_K7CSJ7HL.CollectionType.typename] = (0, import_echo.create)(import_chunk_K7CSJ7HL.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
|
-
|
|
1992
|
+
import_react2.osTranslations
|
|
1708
1993
|
],
|
|
1709
|
-
root: () => state.values.awaiting ? /* @__PURE__ */
|
|
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
|
-
[
|
|
1999
|
+
[import_chunk_K7CSJ7HL.CollectionType.typename]: {
|
|
1715
2000
|
placeholder: [
|
|
1716
2001
|
"unnamed collection label",
|
|
1717
2002
|
{
|
|
1718
2003
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
1719
2004
|
}
|
|
1720
2005
|
],
|
|
1721
|
-
icon:
|
|
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
|
-
|
|
2017
|
+
import_chunk_K7CSJ7HL.CollectionType
|
|
1734
2018
|
]
|
|
1735
2019
|
},
|
|
1736
2020
|
surface: {
|
|
@@ -1739,33 +2023,34 @@ 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__ */
|
|
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[
|
|
2028
|
+
active: primary.properties[import_chunk_K7CSJ7HL.CollectionType.typename],
|
|
2029
|
+
id: primary.id
|
|
1745
2030
|
},
|
|
1746
2031
|
role,
|
|
1747
2032
|
...rest
|
|
1748
|
-
}) : primary instanceof
|
|
1749
|
-
node: /* @__PURE__ */
|
|
2033
|
+
}) : primary instanceof import_chunk_K7CSJ7HL.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__ */
|
|
2038
|
+
} : typeof primary === "string" && primary.length === OBJECT_ID_LENGTH ? /* @__PURE__ */ import_react.default.createElement(MissingObject, {
|
|
1754
2039
|
id: primary
|
|
1755
2040
|
}) : null;
|
|
1756
2041
|
// TODO(burdon): Add role name syntax to minimal plugin docs.
|
|
1757
2042
|
case "tree--empty":
|
|
1758
2043
|
switch (true) {
|
|
1759
2044
|
case data.plugin === import_chunk_6CNYF6YU.SPACE_PLUGIN:
|
|
1760
|
-
return /* @__PURE__ */
|
|
2045
|
+
return /* @__PURE__ */ import_react.default.createElement(EmptyTree, null);
|
|
1761
2046
|
case ((0, import_plugin_graph.isGraphNode)(data.activeNode) && (0, import_echo.isSpace)(data.activeNode.data)):
|
|
1762
|
-
return /* @__PURE__ */
|
|
2047
|
+
return /* @__PURE__ */ import_react.default.createElement(EmptySpace, null);
|
|
1763
2048
|
default:
|
|
1764
2049
|
return null;
|
|
1765
2050
|
}
|
|
1766
2051
|
case "dialog":
|
|
1767
2052
|
if (data.component === "dxos.org/plugin/space/InvitationManagerDialog") {
|
|
1768
|
-
return /* @__PURE__ */
|
|
2053
|
+
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
2054
|
active: true,
|
|
1770
2055
|
...data.subject
|
|
1771
2056
|
})));
|
|
@@ -1774,20 +2059,20 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1774
2059
|
}
|
|
1775
2060
|
case "popover":
|
|
1776
2061
|
if (data.component === "dxos.org/plugin/space/RenameSpacePopover" && (0, import_echo.isSpace)(data.subject)) {
|
|
1777
|
-
return /* @__PURE__ */
|
|
2062
|
+
return /* @__PURE__ */ import_react.default.createElement(PopoverRenameSpace, {
|
|
1778
2063
|
space: data.subject
|
|
1779
2064
|
});
|
|
1780
2065
|
}
|
|
1781
2066
|
if (data.component === "dxos.org/plugin/space/RenameObjectPopover" && (0, import_echo_schema.isReactiveObject)(data.subject)) {
|
|
1782
|
-
return /* @__PURE__ */
|
|
2067
|
+
return /* @__PURE__ */ import_react.default.createElement(PopoverRenameObject, {
|
|
1783
2068
|
object: data.subject
|
|
1784
2069
|
});
|
|
1785
2070
|
}
|
|
1786
2071
|
return null;
|
|
1787
2072
|
case "presence--glyph": {
|
|
1788
|
-
return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */
|
|
2073
|
+
return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */ import_react.default.createElement(SmallPresenceLive, {
|
|
1789
2074
|
viewers: state.values.viewersByObject[(0, import_echo.fullyQualifiedId)(data.object)]
|
|
1790
|
-
}) : /* @__PURE__ */
|
|
2075
|
+
}) : /* @__PURE__ */ import_react.default.createElement(SmallPresence, {
|
|
1791
2076
|
count: 0
|
|
1792
2077
|
});
|
|
1793
2078
|
}
|
|
@@ -1799,32 +2084,35 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1799
2084
|
return null;
|
|
1800
2085
|
}
|
|
1801
2086
|
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[
|
|
2087
|
+
const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_K7CSJ7HL.CollectionType.typename] : void 0 : data.object;
|
|
1803
2088
|
return space && object ? {
|
|
1804
|
-
node: /* @__PURE__ */
|
|
2089
|
+
node: /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SpacePresence, {
|
|
1805
2090
|
object
|
|
1806
|
-
}), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */
|
|
2091
|
+
}), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */ import_react.default.createElement(ShareSpaceButton, {
|
|
1807
2092
|
spaceId: space.id
|
|
1808
2093
|
})),
|
|
1809
2094
|
disposition: "hoist"
|
|
1810
2095
|
} : null;
|
|
1811
2096
|
}
|
|
1812
2097
|
case "section":
|
|
1813
|
-
return data.object instanceof
|
|
2098
|
+
return data.object instanceof import_chunk_K7CSJ7HL.CollectionType ? /* @__PURE__ */ import_react.default.createElement(CollectionSection, {
|
|
1814
2099
|
collection: data.object
|
|
1815
2100
|
}) : null;
|
|
1816
2101
|
case "settings":
|
|
1817
|
-
return data.plugin === import_chunk_6CNYF6YU.meta_default.id ? /* @__PURE__ */
|
|
2102
|
+
return data.plugin === import_chunk_6CNYF6YU.meta_default.id ? /* @__PURE__ */ import_react.default.createElement(SpaceSettings, {
|
|
1818
2103
|
settings: settings.values
|
|
1819
2104
|
}) : null;
|
|
1820
2105
|
case "menu-footer":
|
|
1821
2106
|
if (!(0, import_echo.isEchoObject)(data.object)) {
|
|
1822
2107
|
return null;
|
|
1823
2108
|
} else {
|
|
1824
|
-
return /* @__PURE__ */
|
|
2109
|
+
return /* @__PURE__ */ import_react.default.createElement(MenuFooter, {
|
|
1825
2110
|
object: data.object
|
|
1826
2111
|
});
|
|
1827
2112
|
}
|
|
2113
|
+
case "status": {
|
|
2114
|
+
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));
|
|
2115
|
+
}
|
|
1828
2116
|
default:
|
|
1829
2117
|
return null;
|
|
1830
2118
|
}
|
|
@@ -1884,8 +2172,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1884
2172
|
spacesOrder.order = nextOrder.map(({ id }) => id);
|
|
1885
2173
|
} else {
|
|
1886
2174
|
import_log.log.warn("spaces order object not found", void 0, {
|
|
1887
|
-
F:
|
|
1888
|
-
L:
|
|
2175
|
+
F: __dxlog_file5,
|
|
2176
|
+
L: 528,
|
|
1889
2177
|
S: void 0,
|
|
1890
2178
|
C: (f, a) => f(...a)
|
|
1891
2179
|
});
|
|
@@ -1921,8 +2209,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1921
2209
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
1922
2210
|
}
|
|
1923
2211
|
],
|
|
1924
|
-
icon:
|
|
1925
|
-
iconSymbol: "ph--plus--regular",
|
|
2212
|
+
icon: "ph--plus--regular",
|
|
1926
2213
|
disposition: "toolbar",
|
|
1927
2214
|
testId: "spacePlugin.createSpace"
|
|
1928
2215
|
}
|
|
@@ -1947,8 +2234,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1947
2234
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
1948
2235
|
}
|
|
1949
2236
|
],
|
|
1950
|
-
icon:
|
|
1951
|
-
iconSymbol: "ph--sign-in--regular",
|
|
2237
|
+
icon: "ph--sign-in--regular",
|
|
1952
2238
|
testId: "spacePlugin.joinSpace"
|
|
1953
2239
|
}
|
|
1954
2240
|
}
|
|
@@ -2036,7 +2322,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2036
2322
|
if (state2 !== import_echo.SpaceState.SPACE_READY) {
|
|
2037
2323
|
return;
|
|
2038
2324
|
}
|
|
2039
|
-
const collection = space.properties[
|
|
2325
|
+
const collection = space.properties[import_chunk_K7CSJ7HL.CollectionType.typename];
|
|
2040
2326
|
if (!collection) {
|
|
2041
2327
|
return;
|
|
2042
2328
|
}
|
|
@@ -2063,7 +2349,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2063
2349
|
// Create nodes for objects in collections.
|
|
2064
2350
|
(0, import_plugin_graph.createExtension)({
|
|
2065
2351
|
id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/collection-objects`,
|
|
2066
|
-
filter: (node) => node.data instanceof
|
|
2352
|
+
filter: (node) => node.data instanceof import_chunk_K7CSJ7HL.CollectionType,
|
|
2067
2353
|
connector: ({ node }) => {
|
|
2068
2354
|
const collection = node.data;
|
|
2069
2355
|
const space = (0, import_echo.getSpace)(collection);
|
|
@@ -2116,7 +2402,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2116
2402
|
}
|
|
2117
2403
|
},
|
|
2118
2404
|
{
|
|
2119
|
-
inputType:
|
|
2405
|
+
inputType: import_chunk_K7CSJ7HL.CollectionType.typename,
|
|
2120
2406
|
outputType: DIRECTORY_TYPE,
|
|
2121
2407
|
serialize: (node) => ({
|
|
2122
2408
|
name: node.data.name ?? translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["unnamed collection label"],
|
|
@@ -2125,7 +2411,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2125
2411
|
}),
|
|
2126
2412
|
deserialize: async (data, ancestors) => {
|
|
2127
2413
|
const space = ancestors.find(import_echo.isSpace);
|
|
2128
|
-
const collection = ancestors.findLast((ancestor) => ancestor instanceof
|
|
2414
|
+
const collection = ancestors.findLast((ancestor) => ancestor instanceof import_chunk_K7CSJ7HL.CollectionType) ?? space?.properties[import_chunk_K7CSJ7HL.CollectionType.typename];
|
|
2129
2415
|
if (!space || !collection) {
|
|
2130
2416
|
return;
|
|
2131
2417
|
}
|
|
@@ -2134,7 +2420,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2134
2420
|
action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
|
|
2135
2421
|
data: {
|
|
2136
2422
|
target: collection,
|
|
2137
|
-
object: (0, import_echo.create)(
|
|
2423
|
+
object: (0, import_echo.create)(import_chunk_K7CSJ7HL.CollectionType, {
|
|
2138
2424
|
name: data.name,
|
|
2139
2425
|
objects: [],
|
|
2140
2426
|
views: {}
|
|
@@ -2164,11 +2450,11 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2164
2450
|
}
|
|
2165
2451
|
const space = await client.spaces.create(intent.data);
|
|
2166
2452
|
await space.waitUntilReady();
|
|
2167
|
-
const collection = (0, import_echo.create)(
|
|
2453
|
+
const collection = (0, import_echo.create)(import_chunk_K7CSJ7HL.CollectionType, {
|
|
2168
2454
|
objects: [],
|
|
2169
2455
|
views: {}
|
|
2170
2456
|
});
|
|
2171
|
-
space.properties[
|
|
2457
|
+
space.properties[import_chunk_K7CSJ7HL.CollectionType.typename] = collection;
|
|
2172
2458
|
if (import_migrations.Migrations.versionProperty) {
|
|
2173
2459
|
space.properties[import_migrations.Migrations.versionProperty] = import_migrations.Migrations.targetVersion;
|
|
2174
2460
|
}
|
|
@@ -2183,6 +2469,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2183
2469
|
}
|
|
2184
2470
|
},
|
|
2185
2471
|
intents: [
|
|
2472
|
+
...settings.values.onSpaceCreate ? [
|
|
2473
|
+
[
|
|
2474
|
+
{
|
|
2475
|
+
action: settings.values.onSpaceCreate,
|
|
2476
|
+
data: {
|
|
2477
|
+
space
|
|
2478
|
+
}
|
|
2479
|
+
},
|
|
2480
|
+
{
|
|
2481
|
+
action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
|
|
2482
|
+
data: {
|
|
2483
|
+
target: space
|
|
2484
|
+
}
|
|
2485
|
+
},
|
|
2486
|
+
{
|
|
2487
|
+
action: import_app_framework.NavigationAction.EXPOSE
|
|
2488
|
+
}
|
|
2489
|
+
]
|
|
2490
|
+
] : [],
|
|
2186
2491
|
[
|
|
2187
2492
|
{
|
|
2188
2493
|
action: import_meta.ObservabilityAction.SEND_EVENT,
|
|
@@ -2403,8 +2708,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2403
2708
|
title: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["space limit label"],
|
|
2404
2709
|
description: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["space limit description"],
|
|
2405
2710
|
duration: 5e3,
|
|
2406
|
-
icon:
|
|
2407
|
-
iconSymbol: "ph--warning--regular",
|
|
2711
|
+
icon: "ph--warning--regular",
|
|
2408
2712
|
actionLabel: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["remove deleted objects label"],
|
|
2409
2713
|
actionAlt: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["remove deleted objects alt"],
|
|
2410
2714
|
// TODO(wittjosiah): Use OS namespace.
|
|
@@ -2428,25 +2732,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2428
2732
|
]
|
|
2429
2733
|
};
|
|
2430
2734
|
}
|
|
2431
|
-
if (intent.data?.target instanceof
|
|
2735
|
+
if (intent.data?.target instanceof import_chunk_K7CSJ7HL.CollectionType) {
|
|
2432
2736
|
intent.data?.target.objects.push(object);
|
|
2433
2737
|
} else if ((0, import_echo.isSpace)(intent.data?.target)) {
|
|
2434
|
-
const collection = space.properties[
|
|
2435
|
-
if (collection instanceof
|
|
2738
|
+
const collection = space.properties[import_chunk_K7CSJ7HL.CollectionType.typename];
|
|
2739
|
+
if (collection instanceof import_chunk_K7CSJ7HL.CollectionType) {
|
|
2436
2740
|
collection.objects.push(object);
|
|
2437
2741
|
} else {
|
|
2438
|
-
const collection2 = (0, import_echo.create)(
|
|
2742
|
+
const collection2 = (0, import_echo.create)(import_chunk_K7CSJ7HL.CollectionType, {
|
|
2439
2743
|
objects: [
|
|
2440
2744
|
object
|
|
2441
2745
|
],
|
|
2442
2746
|
views: {}
|
|
2443
2747
|
});
|
|
2444
|
-
space.properties[
|
|
2748
|
+
space.properties[import_chunk_K7CSJ7HL.CollectionType.typename] = collection2;
|
|
2445
2749
|
}
|
|
2446
2750
|
}
|
|
2447
2751
|
return {
|
|
2448
2752
|
data: {
|
|
2449
|
-
id: object
|
|
2753
|
+
id: (0, import_echo.fullyQualifiedId)(object),
|
|
2450
2754
|
object,
|
|
2451
2755
|
activeParts: {
|
|
2452
2756
|
main: [
|
|
@@ -2481,12 +2785,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2481
2785
|
const activeParts = navigationPlugin?.provides.location.active;
|
|
2482
2786
|
const openObjectIds = new Set((0, import_app_framework.openIds)(activeParts ?? {}));
|
|
2483
2787
|
if (!intent.undo && resolve) {
|
|
2484
|
-
const parentCollection = intent.data?.collection ?? space.properties[
|
|
2788
|
+
const parentCollection = intent.data?.collection ?? space.properties[import_chunk_K7CSJ7HL.CollectionType.typename];
|
|
2485
2789
|
const nestedObjects = await getNestedObjects(object, resolve);
|
|
2486
2790
|
const deletionData = {
|
|
2487
2791
|
object,
|
|
2488
2792
|
parentCollection,
|
|
2489
|
-
index: parentCollection instanceof
|
|
2793
|
+
index: parentCollection instanceof import_chunk_K7CSJ7HL.CollectionType ? parentCollection.objects.indexOf(object) : -1,
|
|
2490
2794
|
nestedObjects,
|
|
2491
2795
|
wasActive: [
|
|
2492
2796
|
object,
|
|
@@ -2499,13 +2803,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2499
2803
|
data: {
|
|
2500
2804
|
activeParts: {
|
|
2501
2805
|
main: deletionData.wasActive,
|
|
2502
|
-
sidebar: deletionData.wasActive
|
|
2503
|
-
complementary: deletionData.wasActive
|
|
2806
|
+
sidebar: deletionData.wasActive
|
|
2504
2807
|
}
|
|
2505
2808
|
}
|
|
2506
2809
|
});
|
|
2507
2810
|
}
|
|
2508
|
-
if (parentCollection instanceof
|
|
2811
|
+
if (parentCollection instanceof import_chunk_K7CSJ7HL.CollectionType) {
|
|
2509
2812
|
const index = parentCollection.objects.indexOf(object);
|
|
2510
2813
|
if (index !== -1) {
|
|
2511
2814
|
parentCollection.objects.splice(index, 1);
|
|
@@ -2515,7 +2818,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2515
2818
|
space.db.remove(obj);
|
|
2516
2819
|
});
|
|
2517
2820
|
space.db.remove(object);
|
|
2518
|
-
const undoMessageKey = object instanceof
|
|
2821
|
+
const undoMessageKey = object instanceof import_chunk_K7CSJ7HL.CollectionType ? "collection deleted label" : "object deleted label";
|
|
2519
2822
|
return {
|
|
2520
2823
|
data: true,
|
|
2521
2824
|
undoable: {
|
|
@@ -2526,7 +2829,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2526
2829
|
};
|
|
2527
2830
|
} else {
|
|
2528
2831
|
const undoData = intent.data;
|
|
2529
|
-
if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof
|
|
2832
|
+
if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof import_chunk_K7CSJ7HL.CollectionType) {
|
|
2530
2833
|
const restoredObject = space.db.add(undoData.object);
|
|
2531
2834
|
undoData.nestedObjects.forEach((obj) => {
|
|
2532
2835
|
space.db.add(obj);
|
|
@@ -2623,6 +2926,7 @@ var src_default = SpacePlugin;
|
|
|
2623
2926
|
EmptyTree,
|
|
2624
2927
|
FullPresence,
|
|
2625
2928
|
MenuFooter,
|
|
2929
|
+
MessageState,
|
|
2626
2930
|
MessageType,
|
|
2627
2931
|
MissingObject,
|
|
2628
2932
|
PersistenceStatus,
|
|
@@ -2634,6 +2938,7 @@ var src_default = SpacePlugin;
|
|
|
2634
2938
|
SPACE_PLUGIN,
|
|
2635
2939
|
SPACE_PLUGIN_SHORT_ID,
|
|
2636
2940
|
SPACE_TYPE,
|
|
2941
|
+
SaveStatus,
|
|
2637
2942
|
ShareSpaceButton,
|
|
2638
2943
|
ShareSpaceButtonImpl,
|
|
2639
2944
|
SmallPresence,
|
|
@@ -2643,6 +2948,9 @@ var src_default = SpacePlugin;
|
|
|
2643
2948
|
SpacePlugin,
|
|
2644
2949
|
SpacePresence,
|
|
2645
2950
|
SpaceSettings,
|
|
2951
|
+
SyncStatus,
|
|
2952
|
+
SyncStatusDetail,
|
|
2953
|
+
SyncStatusIndicator,
|
|
2646
2954
|
ThreadStatus,
|
|
2647
2955
|
ThreadType,
|
|
2648
2956
|
cloneObject,
|
|
@@ -2656,6 +2964,7 @@ var src_default = SpacePlugin;
|
|
|
2656
2964
|
getNestedObjects,
|
|
2657
2965
|
getSpaceDisplayName,
|
|
2658
2966
|
memoizeQuery,
|
|
2967
|
+
parseSpaceInitPlugin,
|
|
2659
2968
|
parseSpacePlugin,
|
|
2660
2969
|
translations
|
|
2661
2970
|
});
|