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