@dxos/plugin-space 0.6.11-staging.e6894a4 → 0.6.12-main.15a606f
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-WBMH5WIP.mjs} +14 -2
- package/dist/lib/browser/chunk-WBMH5WIP.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +500 -186
- 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-GF3SRAQM.cjs} +20 -6
- package/dist/lib/node/chunk-GF3SRAQM.cjs.map +7 -0
- package/dist/lib/node/index.cjs +589 -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-N5VC55UM.mjs +109 -0
- package/dist/lib/node-esm/chunk-N5VC55UM.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +2953 -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 +41 -34
- package/src/SpacePlugin.tsx +44 -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.stories.tsx +49 -54
- 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/thread.ts +9 -0
- 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_GF3SRAQM.ActorSchema,
|
|
32
32
|
AwaitingObject: () => AwaitingObject,
|
|
33
33
|
COMPOSER_SPACE_LOCK: () => COMPOSER_SPACE_LOCK,
|
|
34
|
-
ChannelType: () =>
|
|
34
|
+
ChannelType: () => import_chunk_GF3SRAQM.ChannelType,
|
|
35
35
|
CollectionMain: () => CollectionMain,
|
|
36
36
|
CollectionSection: () => CollectionSection,
|
|
37
|
-
CollectionType: () =>
|
|
38
|
-
ContactType: () =>
|
|
37
|
+
CollectionType: () => import_chunk_GF3SRAQM.CollectionType,
|
|
38
|
+
ContactType: () => import_chunk_GF3SRAQM.ContactType,
|
|
39
39
|
EmptySpace: () => EmptySpace,
|
|
40
40
|
EmptyTree: () => EmptyTree,
|
|
41
41
|
FullPresence: () => FullPresence,
|
|
42
42
|
MenuFooter: () => MenuFooter,
|
|
43
|
-
|
|
43
|
+
MessageState: () => import_chunk_GF3SRAQM.MessageState,
|
|
44
|
+
MessageType: () => import_chunk_GF3SRAQM.MessageType,
|
|
44
45
|
MissingObject: () => MissingObject,
|
|
45
46
|
PersistenceStatus: () => PersistenceStatus,
|
|
46
47
|
PopoverRenameObject: () => PopoverRenameObject,
|
|
47
48
|
PopoverRenameSpace: () => PopoverRenameSpace,
|
|
48
49
|
SHARED: () => SHARED,
|
|
49
50
|
SPACES: () => SPACES,
|
|
50
|
-
SPACE_DIRECTORY_HANDLE: () =>
|
|
51
|
+
SPACE_DIRECTORY_HANDLE: () => import_chunk_GF3SRAQM.SPACE_DIRECTORY_HANDLE,
|
|
51
52
|
SPACE_PLUGIN: () => import_chunk_6CNYF6YU.SPACE_PLUGIN,
|
|
52
53
|
SPACE_PLUGIN_SHORT_ID: () => import_chunk_6CNYF6YU.SPACE_PLUGIN_SHORT_ID,
|
|
53
54
|
SPACE_TYPE: () => SPACE_TYPE,
|
|
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_GF3SRAQM.ThreadStatus,
|
|
69
|
+
ThreadType: () => import_chunk_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM = require("./chunk-GF3SRAQM.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_GF3SRAQM.CollectionType.typename];
|
|
384
|
+
const partials = space.state.get() === import_echo4.SpaceState.SPACE_READY && collection instanceof import_chunk_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM.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,9 +1316,9 @@ 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
|
};
|
|
@@ -1326,38 +1328,38 @@ var FullPresence = (props) => {
|
|
|
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_GF3SRAQM.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_GF3SRAQM.CollectionType.typename] = (0, import_echo.create)(import_chunk_GF3SRAQM.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_GF3SRAQM.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_GF3SRAQM.CollectionType
|
|
1734
2018
|
]
|
|
1735
2019
|
},
|
|
1736
2020
|
surface: {
|
|
@@ -1739,32 +2023,33 @@ 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_GF3SRAQM.CollectionType.typename]
|
|
1745
2029
|
},
|
|
1746
2030
|
role,
|
|
1747
2031
|
...rest
|
|
1748
|
-
}) : primary instanceof
|
|
1749
|
-
node: /* @__PURE__ */
|
|
2032
|
+
}) : primary instanceof import_chunk_GF3SRAQM.CollectionType ? {
|
|
2033
|
+
node: /* @__PURE__ */ import_react.default.createElement(CollectionMain, {
|
|
1750
2034
|
collection: primary
|
|
1751
2035
|
}),
|
|
1752
2036
|
disposition: "fallback"
|
|
1753
|
-
} : typeof primary === "string" && primary.length === OBJECT_ID_LENGTH ? /* @__PURE__ */
|
|
2037
|
+
} : typeof primary === "string" && primary.length === OBJECT_ID_LENGTH ? /* @__PURE__ */ import_react.default.createElement(MissingObject, {
|
|
1754
2038
|
id: primary
|
|
1755
2039
|
}) : null;
|
|
2040
|
+
// TODO(burdon): Add role name syntax to minimal plugin docs.
|
|
1756
2041
|
case "tree--empty":
|
|
1757
2042
|
switch (true) {
|
|
1758
2043
|
case data.plugin === import_chunk_6CNYF6YU.SPACE_PLUGIN:
|
|
1759
|
-
return /* @__PURE__ */
|
|
2044
|
+
return /* @__PURE__ */ import_react.default.createElement(EmptyTree, null);
|
|
1760
2045
|
case ((0, import_plugin_graph.isGraphNode)(data.activeNode) && (0, import_echo.isSpace)(data.activeNode.data)):
|
|
1761
|
-
return /* @__PURE__ */
|
|
2046
|
+
return /* @__PURE__ */ import_react.default.createElement(EmptySpace, null);
|
|
1762
2047
|
default:
|
|
1763
2048
|
return null;
|
|
1764
2049
|
}
|
|
1765
2050
|
case "dialog":
|
|
1766
2051
|
if (data.component === "dxos.org/plugin/space/InvitationManagerDialog") {
|
|
1767
|
-
return /* @__PURE__ */
|
|
2052
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react_ui.Dialog.Content, null, /* @__PURE__ */ import_react.default.createElement(import_react2.ClipboardProvider, null, /* @__PURE__ */ import_react.default.createElement(import_react2.InvitationManager, {
|
|
1768
2053
|
active: true,
|
|
1769
2054
|
...data.subject
|
|
1770
2055
|
})));
|
|
@@ -1773,20 +2058,20 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1773
2058
|
}
|
|
1774
2059
|
case "popover":
|
|
1775
2060
|
if (data.component === "dxos.org/plugin/space/RenameSpacePopover" && (0, import_echo.isSpace)(data.subject)) {
|
|
1776
|
-
return /* @__PURE__ */
|
|
2061
|
+
return /* @__PURE__ */ import_react.default.createElement(PopoverRenameSpace, {
|
|
1777
2062
|
space: data.subject
|
|
1778
2063
|
});
|
|
1779
2064
|
}
|
|
1780
2065
|
if (data.component === "dxos.org/plugin/space/RenameObjectPopover" && (0, import_echo_schema.isReactiveObject)(data.subject)) {
|
|
1781
|
-
return /* @__PURE__ */
|
|
2066
|
+
return /* @__PURE__ */ import_react.default.createElement(PopoverRenameObject, {
|
|
1782
2067
|
object: data.subject
|
|
1783
2068
|
});
|
|
1784
2069
|
}
|
|
1785
2070
|
return null;
|
|
1786
2071
|
case "presence--glyph": {
|
|
1787
|
-
return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */
|
|
2072
|
+
return (0, import_echo_schema.isReactiveObject)(data.object) ? /* @__PURE__ */ import_react.default.createElement(SmallPresenceLive, {
|
|
1788
2073
|
viewers: state.values.viewersByObject[(0, import_echo.fullyQualifiedId)(data.object)]
|
|
1789
|
-
}) : /* @__PURE__ */
|
|
2074
|
+
}) : /* @__PURE__ */ import_react.default.createElement(SmallPresence, {
|
|
1790
2075
|
count: 0
|
|
1791
2076
|
});
|
|
1792
2077
|
}
|
|
@@ -1798,32 +2083,35 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1798
2083
|
return null;
|
|
1799
2084
|
}
|
|
1800
2085
|
const space = (0, import_echo.isSpace)(data.object) ? data.object : (0, import_echo.getSpace)(data.object);
|
|
1801
|
-
const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[
|
|
2086
|
+
const object = (0, import_echo.isSpace)(data.object) ? data.object.state.get() === import_echo.SpaceState.SPACE_READY ? space?.properties[import_chunk_GF3SRAQM.CollectionType.typename] : void 0 : data.object;
|
|
1802
2087
|
return space && object ? {
|
|
1803
|
-
node: /* @__PURE__ */
|
|
2088
|
+
node: /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SpacePresence, {
|
|
1804
2089
|
object
|
|
1805
|
-
}), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */
|
|
2090
|
+
}), space.properties[COMPOSER_SPACE_LOCK] ? null : /* @__PURE__ */ import_react.default.createElement(ShareSpaceButton, {
|
|
1806
2091
|
spaceId: space.id
|
|
1807
2092
|
})),
|
|
1808
2093
|
disposition: "hoist"
|
|
1809
2094
|
} : null;
|
|
1810
2095
|
}
|
|
1811
2096
|
case "section":
|
|
1812
|
-
return data.object instanceof
|
|
2097
|
+
return data.object instanceof import_chunk_GF3SRAQM.CollectionType ? /* @__PURE__ */ import_react.default.createElement(CollectionSection, {
|
|
1813
2098
|
collection: data.object
|
|
1814
2099
|
}) : null;
|
|
1815
2100
|
case "settings":
|
|
1816
|
-
return data.plugin === import_chunk_6CNYF6YU.meta_default.id ? /* @__PURE__ */
|
|
2101
|
+
return data.plugin === import_chunk_6CNYF6YU.meta_default.id ? /* @__PURE__ */ import_react.default.createElement(SpaceSettings, {
|
|
1817
2102
|
settings: settings.values
|
|
1818
2103
|
}) : null;
|
|
1819
2104
|
case "menu-footer":
|
|
1820
2105
|
if (!(0, import_echo.isEchoObject)(data.object)) {
|
|
1821
2106
|
return null;
|
|
1822
2107
|
} else {
|
|
1823
|
-
return /* @__PURE__ */
|
|
2108
|
+
return /* @__PURE__ */ import_react.default.createElement(MenuFooter, {
|
|
1824
2109
|
object: data.object
|
|
1825
2110
|
});
|
|
1826
2111
|
}
|
|
2112
|
+
case "status": {
|
|
2113
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, /* @__PURE__ */ import_react.default.createElement(SyncStatus, null), /* @__PURE__ */ import_react.default.createElement(SaveStatus, null));
|
|
2114
|
+
}
|
|
1827
2115
|
default:
|
|
1828
2116
|
return null;
|
|
1829
2117
|
}
|
|
@@ -1883,8 +2171,8 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1883
2171
|
spacesOrder.order = nextOrder.map(({ id }) => id);
|
|
1884
2172
|
} else {
|
|
1885
2173
|
import_log.log.warn("spaces order object not found", void 0, {
|
|
1886
|
-
F:
|
|
1887
|
-
L:
|
|
2174
|
+
F: __dxlog_file5,
|
|
2175
|
+
L: 524,
|
|
1888
2176
|
S: void 0,
|
|
1889
2177
|
C: (f, a) => f(...a)
|
|
1890
2178
|
});
|
|
@@ -1920,8 +2208,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1920
2208
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
1921
2209
|
}
|
|
1922
2210
|
],
|
|
1923
|
-
icon:
|
|
1924
|
-
iconSymbol: "ph--plus--regular",
|
|
2211
|
+
icon: "ph--plus--regular",
|
|
1925
2212
|
disposition: "toolbar",
|
|
1926
2213
|
testId: "spacePlugin.createSpace"
|
|
1927
2214
|
}
|
|
@@ -1946,15 +2233,15 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
1946
2233
|
ns: import_chunk_6CNYF6YU.SPACE_PLUGIN
|
|
1947
2234
|
}
|
|
1948
2235
|
],
|
|
1949
|
-
icon:
|
|
1950
|
-
iconSymbol: "ph--sign-in--regular",
|
|
2236
|
+
icon: "ph--sign-in--regular",
|
|
1951
2237
|
testId: "spacePlugin.joinSpace"
|
|
1952
2238
|
}
|
|
1953
2239
|
}
|
|
1954
2240
|
],
|
|
1955
2241
|
connector: () => {
|
|
1956
2242
|
const spaces = (0, import_plugin_graph.toSignal)((onChange) => client.spaces.subscribe(() => onChange()).unsubscribe, () => client.spaces.get());
|
|
1957
|
-
|
|
2243
|
+
const isReady = (0, import_plugin_graph.toSignal)((onChange) => client.spaces.isReady.subscribe(() => onChange()).unsubscribe, () => client.spaces.isReady.get());
|
|
2244
|
+
if (!spaces || !isReady) {
|
|
1958
2245
|
return;
|
|
1959
2246
|
}
|
|
1960
2247
|
const [spacesOrder] = memoizeQuery(client.spaces.default, import_echo.Filter.schema(import_echo.Expando, {
|
|
@@ -2034,7 +2321,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2034
2321
|
if (state2 !== import_echo.SpaceState.SPACE_READY) {
|
|
2035
2322
|
return;
|
|
2036
2323
|
}
|
|
2037
|
-
const collection = space.properties[
|
|
2324
|
+
const collection = space.properties[import_chunk_GF3SRAQM.CollectionType.typename];
|
|
2038
2325
|
if (!collection) {
|
|
2039
2326
|
return;
|
|
2040
2327
|
}
|
|
@@ -2061,7 +2348,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2061
2348
|
// Create nodes for objects in collections.
|
|
2062
2349
|
(0, import_plugin_graph.createExtension)({
|
|
2063
2350
|
id: `${import_chunk_6CNYF6YU.SPACE_PLUGIN}/collection-objects`,
|
|
2064
|
-
filter: (node) => node.data instanceof
|
|
2351
|
+
filter: (node) => node.data instanceof import_chunk_GF3SRAQM.CollectionType,
|
|
2065
2352
|
connector: ({ node }) => {
|
|
2066
2353
|
const collection = node.data;
|
|
2067
2354
|
const space = (0, import_echo.getSpace)(collection);
|
|
@@ -2114,7 +2401,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2114
2401
|
}
|
|
2115
2402
|
},
|
|
2116
2403
|
{
|
|
2117
|
-
inputType:
|
|
2404
|
+
inputType: import_chunk_GF3SRAQM.CollectionType.typename,
|
|
2118
2405
|
outputType: DIRECTORY_TYPE,
|
|
2119
2406
|
serialize: (node) => ({
|
|
2120
2407
|
name: node.data.name ?? translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["unnamed collection label"],
|
|
@@ -2123,7 +2410,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2123
2410
|
}),
|
|
2124
2411
|
deserialize: async (data, ancestors) => {
|
|
2125
2412
|
const space = ancestors.find(import_echo.isSpace);
|
|
2126
|
-
const collection = ancestors.findLast((ancestor) => ancestor instanceof
|
|
2413
|
+
const collection = ancestors.findLast((ancestor) => ancestor instanceof import_chunk_GF3SRAQM.CollectionType) ?? space?.properties[import_chunk_GF3SRAQM.CollectionType.typename];
|
|
2127
2414
|
if (!space || !collection) {
|
|
2128
2415
|
return;
|
|
2129
2416
|
}
|
|
@@ -2132,7 +2419,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2132
2419
|
action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
|
|
2133
2420
|
data: {
|
|
2134
2421
|
target: collection,
|
|
2135
|
-
object: (0, import_echo.create)(
|
|
2422
|
+
object: (0, import_echo.create)(import_chunk_GF3SRAQM.CollectionType, {
|
|
2136
2423
|
name: data.name,
|
|
2137
2424
|
objects: [],
|
|
2138
2425
|
views: {}
|
|
@@ -2162,11 +2449,11 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2162
2449
|
}
|
|
2163
2450
|
const space = await client.spaces.create(intent.data);
|
|
2164
2451
|
await space.waitUntilReady();
|
|
2165
|
-
const collection = (0, import_echo.create)(
|
|
2452
|
+
const collection = (0, import_echo.create)(import_chunk_GF3SRAQM.CollectionType, {
|
|
2166
2453
|
objects: [],
|
|
2167
2454
|
views: {}
|
|
2168
2455
|
});
|
|
2169
|
-
space.properties[
|
|
2456
|
+
space.properties[import_chunk_GF3SRAQM.CollectionType.typename] = collection;
|
|
2170
2457
|
if (import_migrations.Migrations.versionProperty) {
|
|
2171
2458
|
space.properties[import_migrations.Migrations.versionProperty] = import_migrations.Migrations.targetVersion;
|
|
2172
2459
|
}
|
|
@@ -2181,6 +2468,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2181
2468
|
}
|
|
2182
2469
|
},
|
|
2183
2470
|
intents: [
|
|
2471
|
+
...settings.values.onSpaceCreate ? [
|
|
2472
|
+
[
|
|
2473
|
+
{
|
|
2474
|
+
action: settings.values.onSpaceCreate,
|
|
2475
|
+
data: {
|
|
2476
|
+
space
|
|
2477
|
+
}
|
|
2478
|
+
},
|
|
2479
|
+
{
|
|
2480
|
+
action: import_chunk_6CNYF6YU.SpaceAction.ADD_OBJECT,
|
|
2481
|
+
data: {
|
|
2482
|
+
target: space
|
|
2483
|
+
}
|
|
2484
|
+
},
|
|
2485
|
+
{
|
|
2486
|
+
action: import_app_framework.NavigationAction.EXPOSE
|
|
2487
|
+
}
|
|
2488
|
+
]
|
|
2489
|
+
] : [],
|
|
2184
2490
|
[
|
|
2185
2491
|
{
|
|
2186
2492
|
action: import_meta.ObservabilityAction.SEND_EVENT,
|
|
@@ -2401,8 +2707,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2401
2707
|
title: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["space limit label"],
|
|
2402
2708
|
description: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["space limit description"],
|
|
2403
2709
|
duration: 5e3,
|
|
2404
|
-
icon:
|
|
2405
|
-
iconSymbol: "ph--warning--regular",
|
|
2710
|
+
icon: "ph--warning--regular",
|
|
2406
2711
|
actionLabel: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["remove deleted objects label"],
|
|
2407
2712
|
actionAlt: translations_default[0]["en-US"][import_chunk_6CNYF6YU.SPACE_PLUGIN]["remove deleted objects alt"],
|
|
2408
2713
|
// TODO(wittjosiah): Use OS namespace.
|
|
@@ -2426,25 +2731,25 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2426
2731
|
]
|
|
2427
2732
|
};
|
|
2428
2733
|
}
|
|
2429
|
-
if (intent.data?.target instanceof
|
|
2734
|
+
if (intent.data?.target instanceof import_chunk_GF3SRAQM.CollectionType) {
|
|
2430
2735
|
intent.data?.target.objects.push(object);
|
|
2431
2736
|
} else if ((0, import_echo.isSpace)(intent.data?.target)) {
|
|
2432
|
-
const collection = space.properties[
|
|
2433
|
-
if (collection instanceof
|
|
2737
|
+
const collection = space.properties[import_chunk_GF3SRAQM.CollectionType.typename];
|
|
2738
|
+
if (collection instanceof import_chunk_GF3SRAQM.CollectionType) {
|
|
2434
2739
|
collection.objects.push(object);
|
|
2435
2740
|
} else {
|
|
2436
|
-
const collection2 = (0, import_echo.create)(
|
|
2741
|
+
const collection2 = (0, import_echo.create)(import_chunk_GF3SRAQM.CollectionType, {
|
|
2437
2742
|
objects: [
|
|
2438
2743
|
object
|
|
2439
2744
|
],
|
|
2440
2745
|
views: {}
|
|
2441
2746
|
});
|
|
2442
|
-
space.properties[
|
|
2747
|
+
space.properties[import_chunk_GF3SRAQM.CollectionType.typename] = collection2;
|
|
2443
2748
|
}
|
|
2444
2749
|
}
|
|
2445
2750
|
return {
|
|
2446
2751
|
data: {
|
|
2447
|
-
id: object
|
|
2752
|
+
id: (0, import_echo.fullyQualifiedId)(object),
|
|
2448
2753
|
object,
|
|
2449
2754
|
activeParts: {
|
|
2450
2755
|
main: [
|
|
@@ -2479,12 +2784,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2479
2784
|
const activeParts = navigationPlugin?.provides.location.active;
|
|
2480
2785
|
const openObjectIds = new Set((0, import_app_framework.openIds)(activeParts ?? {}));
|
|
2481
2786
|
if (!intent.undo && resolve) {
|
|
2482
|
-
const parentCollection = intent.data?.collection ?? space.properties[
|
|
2787
|
+
const parentCollection = intent.data?.collection ?? space.properties[import_chunk_GF3SRAQM.CollectionType.typename];
|
|
2483
2788
|
const nestedObjects = await getNestedObjects(object, resolve);
|
|
2484
2789
|
const deletionData = {
|
|
2485
2790
|
object,
|
|
2486
2791
|
parentCollection,
|
|
2487
|
-
index: parentCollection instanceof
|
|
2792
|
+
index: parentCollection instanceof import_chunk_GF3SRAQM.CollectionType ? parentCollection.objects.indexOf(object) : -1,
|
|
2488
2793
|
nestedObjects,
|
|
2489
2794
|
wasActive: [
|
|
2490
2795
|
object,
|
|
@@ -2497,13 +2802,12 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2497
2802
|
data: {
|
|
2498
2803
|
activeParts: {
|
|
2499
2804
|
main: deletionData.wasActive,
|
|
2500
|
-
sidebar: deletionData.wasActive
|
|
2501
|
-
complementary: deletionData.wasActive
|
|
2805
|
+
sidebar: deletionData.wasActive
|
|
2502
2806
|
}
|
|
2503
2807
|
}
|
|
2504
2808
|
});
|
|
2505
2809
|
}
|
|
2506
|
-
if (parentCollection instanceof
|
|
2810
|
+
if (parentCollection instanceof import_chunk_GF3SRAQM.CollectionType) {
|
|
2507
2811
|
const index = parentCollection.objects.indexOf(object);
|
|
2508
2812
|
if (index !== -1) {
|
|
2509
2813
|
parentCollection.objects.splice(index, 1);
|
|
@@ -2513,7 +2817,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2513
2817
|
space.db.remove(obj);
|
|
2514
2818
|
});
|
|
2515
2819
|
space.db.remove(object);
|
|
2516
|
-
const undoMessageKey = object instanceof
|
|
2820
|
+
const undoMessageKey = object instanceof import_chunk_GF3SRAQM.CollectionType ? "collection deleted label" : "object deleted label";
|
|
2517
2821
|
return {
|
|
2518
2822
|
data: true,
|
|
2519
2823
|
undoable: {
|
|
@@ -2524,7 +2828,7 @@ var SpacePlugin = ({ firstRun, onFirstRun } = {}) => {
|
|
|
2524
2828
|
};
|
|
2525
2829
|
} else {
|
|
2526
2830
|
const undoData = intent.data;
|
|
2527
|
-
if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof
|
|
2831
|
+
if (undoData && (0, import_echo.isEchoObject)(undoData.object) && undoData.parentCollection instanceof import_chunk_GF3SRAQM.CollectionType) {
|
|
2528
2832
|
const restoredObject = space.db.add(undoData.object);
|
|
2529
2833
|
undoData.nestedObjects.forEach((obj) => {
|
|
2530
2834
|
space.db.add(obj);
|
|
@@ -2621,6 +2925,7 @@ var src_default = SpacePlugin;
|
|
|
2621
2925
|
EmptyTree,
|
|
2622
2926
|
FullPresence,
|
|
2623
2927
|
MenuFooter,
|
|
2928
|
+
MessageState,
|
|
2624
2929
|
MessageType,
|
|
2625
2930
|
MissingObject,
|
|
2626
2931
|
PersistenceStatus,
|
|
@@ -2632,6 +2937,7 @@ var src_default = SpacePlugin;
|
|
|
2632
2937
|
SPACE_PLUGIN,
|
|
2633
2938
|
SPACE_PLUGIN_SHORT_ID,
|
|
2634
2939
|
SPACE_TYPE,
|
|
2940
|
+
SaveStatus,
|
|
2635
2941
|
ShareSpaceButton,
|
|
2636
2942
|
ShareSpaceButtonImpl,
|
|
2637
2943
|
SmallPresence,
|
|
@@ -2641,6 +2947,9 @@ var src_default = SpacePlugin;
|
|
|
2641
2947
|
SpacePlugin,
|
|
2642
2948
|
SpacePresence,
|
|
2643
2949
|
SpaceSettings,
|
|
2950
|
+
SyncStatus,
|
|
2951
|
+
SyncStatusDetail,
|
|
2952
|
+
SyncStatusIndicator,
|
|
2644
2953
|
ThreadStatus,
|
|
2645
2954
|
ThreadType,
|
|
2646
2955
|
cloneObject,
|
|
@@ -2654,6 +2963,7 @@ var src_default = SpacePlugin;
|
|
|
2654
2963
|
getNestedObjects,
|
|
2655
2964
|
getSpaceDisplayName,
|
|
2656
2965
|
memoizeQuery,
|
|
2966
|
+
parseSpaceInitPlugin,
|
|
2657
2967
|
parseSpacePlugin,
|
|
2658
2968
|
translations
|
|
2659
2969
|
});
|