@dxos/shell 0.7.5-labs.e27f9b9 → 0.7.5-main.2567c87
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/bundle/shell.mjs +57515 -56513
- package/dist/bundle/shell.mjs.map +1 -1
- package/dist/bundle/shell.umd.js +146 -148
- package/dist/bundle/shell.umd.js.map +1 -1
- package/dist/bundle/style.css +1 -1
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react.css +7 -0
- package/dist/lib/browser/react.css.map +7 -0
- package/dist/lib/browser/react.mjs +782 -518
- package/dist/lib/browser/react.mjs.map +4 -4
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/react.cjs +879 -615
- package/dist/lib/node/react.cjs.map +4 -4
- package/dist/lib/node/react.css +7 -0
- package/dist/lib/node/react.css.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/react.css +7 -0
- package/dist/lib/node-esm/react.css.map +7 -0
- package/dist/lib/node-esm/react.mjs +782 -518
- package/dist/lib/node-esm/react.mjs.map +4 -4
- package/dist/types/src/components/AgentConfig.js +1 -1
- package/dist/types/src/components/AgentConfig.js.map +1 -1
- package/dist/types/src/components/DeviceList/DeviceList.js +1 -1
- package/dist/types/src/components/DeviceList/DeviceList.js.map +1 -1
- package/dist/types/src/components/EmojiPicker.d.ts +19 -0
- package/dist/types/src/components/EmojiPicker.d.ts.map +1 -0
- package/dist/types/src/components/EmojiPicker.js +146 -0
- package/dist/types/src/components/EmojiPicker.js.map +1 -0
- package/dist/types/src/components/HuePicker.d.ts +18 -0
- package/dist/types/src/components/HuePicker.d.ts.map +1 -0
- package/dist/types/src/components/HuePicker.js +133 -0
- package/dist/types/src/components/HuePicker.js.map +1 -0
- package/dist/types/src/components/index.d.ts +2 -0
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/index.js +2 -0
- package/dist/types/src/components/index.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.js +2 -3
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.js +0 -2
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.js +2 -3
- package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.js.map +1 -1
- package/dist/types/src/panels/JoinPanel/steps/IdentityInput.js +1 -1
- package/dist/types/src/panels/JoinPanel/steps/IdentityInput.js.map +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.stories.d.ts.map +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.stories.js +0 -5
- package/dist/types/src/panels/SpacePanel/SpacePanel.stories.js.map +1 -1
- package/dist/types/src/testing/fixtures/identities.d.ts.map +1 -1
- package/dist/types/src/testing/fixtures/identities.js +0 -2
- package/dist/types/src/testing/fixtures/identities.js.map +1 -1
- package/package.json +30 -31
- package/src/components/AgentConfig.tsx +1 -1
- package/src/components/DeviceList/DeviceList.tsx +1 -1
- package/src/components/EmojiPicker.tsx +187 -0
- package/src/components/HuePicker.tsx +182 -0
- package/src/components/emoji.css +25 -0
- package/src/components/index.ts +2 -0
- package/src/panels/IdentityPanel/IdentityPanel.stories.tsx +0 -2
- package/src/panels/IdentityPanel/IdentityPanel.tsx +1 -2
- package/src/panels/IdentityPanel/steps/ProfileForm.tsx +1 -2
- package/src/panels/JoinPanel/steps/IdentityInput.tsx +1 -1
- package/src/panels/SpacePanel/SpacePanel.stories.tsx +1 -6
- package/src/testing/fixtures/identities.ts +0 -2
|
@@ -55,7 +55,7 @@ var AgentConfig = ({ agentStatus, validationMessage, onAgentDestroy, onAgentCrea
|
|
|
55
55
|
className: mx(descriptionText, "mlb-2")
|
|
56
56
|
}, t("agent requested description"))) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(Button, {
|
|
57
57
|
variant: "ghost",
|
|
58
|
-
classNames: "mlb-2 is-full justify-start gap-2 pis-0 pie-3",
|
|
58
|
+
classNames: "mlb-2 is-full justify-start gap-2 !pis-0 !pie-3",
|
|
59
59
|
"data-testid": agentStatus === "creatable" ? "devices-panel.create-agent" : "devices-panel.agent-error",
|
|
60
60
|
onClick: agentStatus === "creatable" ? onAgentCreate : onAgentRefresh,
|
|
61
61
|
"aria-describedby": "devices-panel.create-agent.description"
|
|
@@ -135,89 +135,351 @@ var CompoundButton = ({ children, description, before, after, variant = "default
|
|
|
135
135
|
}, after));
|
|
136
136
|
};
|
|
137
137
|
|
|
138
|
+
// packages/sdk/shell/src/components/EmojiPicker.tsx
|
|
139
|
+
import emojiData from "@emoji-mart/data";
|
|
140
|
+
import EmojiMart from "@emoji-mart/react";
|
|
141
|
+
import { ArrowCounterClockwise, CaretDown, UserCircle } from "@phosphor-icons/react";
|
|
142
|
+
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
143
|
+
import React3, { useRef, useState } from "react";
|
|
144
|
+
import { Button as Button2, Popover, Toolbar, Tooltip as Tooltip2, useMediaQuery, useThemeContext as useThemeContext2, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
145
|
+
import { getSize as getSize2 } from "@dxos/react-ui-theme";
|
|
146
|
+
var EmojiPickerToolbarButton = ({ disabled, defaultEmoji, emoji, onChangeEmoji, classNames }) => {
|
|
147
|
+
const { t } = useTranslation2("os");
|
|
148
|
+
const { themeMode } = useThemeContext2();
|
|
149
|
+
const [_emojiValue, setEmojiValue] = useControllableState({
|
|
150
|
+
prop: emoji,
|
|
151
|
+
onChange: onChangeEmoji,
|
|
152
|
+
defaultProp: defaultEmoji
|
|
153
|
+
});
|
|
154
|
+
const [emojiPickerOpen, setEmojiPickerOpen] = useState(false);
|
|
155
|
+
const suppressNextTooltip = useRef(false);
|
|
156
|
+
const [triggerTooltipOpen, setTriggerTooltipOpen] = useState(false);
|
|
157
|
+
return /* @__PURE__ */ React3.createElement(Tooltip2.Root, {
|
|
158
|
+
open: triggerTooltipOpen,
|
|
159
|
+
onOpenChange: (nextOpen) => {
|
|
160
|
+
if (suppressNextTooltip.current) {
|
|
161
|
+
setTriggerTooltipOpen(false);
|
|
162
|
+
suppressNextTooltip.current = false;
|
|
163
|
+
} else {
|
|
164
|
+
setTriggerTooltipOpen(nextOpen);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}, /* @__PURE__ */ React3.createElement(Popover.Root, {
|
|
168
|
+
open: emojiPickerOpen,
|
|
169
|
+
onOpenChange: (nextOpen) => {
|
|
170
|
+
setEmojiPickerOpen(nextOpen);
|
|
171
|
+
suppressNextTooltip.current = true;
|
|
172
|
+
}
|
|
173
|
+
}, /* @__PURE__ */ React3.createElement(Tooltip2.Trigger, {
|
|
174
|
+
asChild: true
|
|
175
|
+
}, /* @__PURE__ */ React3.createElement(Popover.Trigger, {
|
|
176
|
+
asChild: true
|
|
177
|
+
}, /* @__PURE__ */ React3.createElement(Toolbar.Button, {
|
|
178
|
+
classNames: [
|
|
179
|
+
"gap-2 text-2xl plb-1",
|
|
180
|
+
classNames
|
|
181
|
+
],
|
|
182
|
+
disabled
|
|
183
|
+
}, /* @__PURE__ */ React3.createElement("span", {
|
|
184
|
+
className: "sr-only"
|
|
185
|
+
}, t("select emoji label")), /* @__PURE__ */ React3.createElement(UserCircle, {
|
|
186
|
+
className: getSize2(5)
|
|
187
|
+
})))), /* @__PURE__ */ React3.createElement(Tooltip2.Portal, null, /* @__PURE__ */ React3.createElement(Tooltip2.Content, {
|
|
188
|
+
side: "bottom"
|
|
189
|
+
}, t("select emoji label"), /* @__PURE__ */ React3.createElement(Tooltip2.Arrow, null))), /* @__PURE__ */ React3.createElement(Popover.Content, {
|
|
190
|
+
side: "bottom",
|
|
191
|
+
onKeyDownCapture: (event) => {
|
|
192
|
+
if (event.key === "Escape") {
|
|
193
|
+
event.stopPropagation();
|
|
194
|
+
setEmojiPickerOpen(false);
|
|
195
|
+
suppressNextTooltip.current = true;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}, /* @__PURE__ */ React3.createElement(EmojiMart, {
|
|
199
|
+
data: emojiData,
|
|
200
|
+
onEmojiSelect: ({ native }) => {
|
|
201
|
+
if (native) {
|
|
202
|
+
setEmojiValue(native);
|
|
203
|
+
setEmojiPickerOpen(false);
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
autoFocus: true,
|
|
207
|
+
maxFrequentRows: 0,
|
|
208
|
+
noCountryFlags: true,
|
|
209
|
+
theme: themeMode
|
|
210
|
+
}), /* @__PURE__ */ React3.createElement(Popover.Arrow, null))));
|
|
211
|
+
};
|
|
212
|
+
var EmojiPickerBlock = ({ disabled, defaultEmoji, emoji, onChangeEmoji, onClickClear }) => {
|
|
213
|
+
const { t } = useTranslation2("os");
|
|
214
|
+
const [isMd] = useMediaQuery("md", {
|
|
215
|
+
ssr: false
|
|
216
|
+
});
|
|
217
|
+
const [emojiValue, setEmojiValue] = useControllableState({
|
|
218
|
+
prop: emoji,
|
|
219
|
+
onChange: onChangeEmoji,
|
|
220
|
+
defaultProp: defaultEmoji
|
|
221
|
+
});
|
|
222
|
+
const [emojiPickerOpen, setEmojiPickerOpen] = useState(false);
|
|
223
|
+
return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(Popover.Root, {
|
|
224
|
+
open: emojiPickerOpen,
|
|
225
|
+
onOpenChange: setEmojiPickerOpen
|
|
226
|
+
}, /* @__PURE__ */ React3.createElement(Popover.Trigger, {
|
|
227
|
+
asChild: true
|
|
228
|
+
}, /* @__PURE__ */ React3.createElement(Button2, {
|
|
229
|
+
variant: "ghost",
|
|
230
|
+
classNames: "gap-2 text-2xl plb-1",
|
|
231
|
+
disabled
|
|
232
|
+
}, /* @__PURE__ */ React3.createElement("span", {
|
|
233
|
+
className: "sr-only"
|
|
234
|
+
}, t("select emoji label")), /* @__PURE__ */ React3.createElement("span", {
|
|
235
|
+
className: "grow pis-14"
|
|
236
|
+
}, emojiValue), /* @__PURE__ */ React3.createElement(CaretDown, {
|
|
237
|
+
className: getSize2(4)
|
|
238
|
+
}))), /* @__PURE__ */ React3.createElement(Popover.Content, {
|
|
239
|
+
side: "right",
|
|
240
|
+
sideOffset: isMd ? 0 : -310,
|
|
241
|
+
onKeyDownCapture: (event) => {
|
|
242
|
+
if (event.key === "Escape") {
|
|
243
|
+
event.stopPropagation();
|
|
244
|
+
setEmojiPickerOpen(false);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}, /* @__PURE__ */ React3.createElement(EmojiMart, {
|
|
248
|
+
data: emojiData,
|
|
249
|
+
onEmojiSelect: ({ native }) => {
|
|
250
|
+
if (native) {
|
|
251
|
+
setEmojiValue(native);
|
|
252
|
+
setEmojiPickerOpen(false);
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
autoFocus: true,
|
|
256
|
+
maxFrequentRows: 0,
|
|
257
|
+
noCountryFlags: true
|
|
258
|
+
}), /* @__PURE__ */ React3.createElement(Popover.Arrow, null))), /* @__PURE__ */ React3.createElement(Tooltip2.Root, null, /* @__PURE__ */ React3.createElement(Tooltip2.Trigger, {
|
|
259
|
+
asChild: true
|
|
260
|
+
}, /* @__PURE__ */ React3.createElement(Button2, {
|
|
261
|
+
variant: "ghost",
|
|
262
|
+
onClick: onClickClear,
|
|
263
|
+
disabled
|
|
264
|
+
}, /* @__PURE__ */ React3.createElement("span", {
|
|
265
|
+
className: "sr-only"
|
|
266
|
+
}, t("clear label")), /* @__PURE__ */ React3.createElement(ArrowCounterClockwise, null))), /* @__PURE__ */ React3.createElement(Tooltip2.Portal, null, /* @__PURE__ */ React3.createElement(Tooltip2.Content, {
|
|
267
|
+
side: "right"
|
|
268
|
+
}, t("clear label"), /* @__PURE__ */ React3.createElement(Tooltip2.Arrow, null)))));
|
|
269
|
+
};
|
|
270
|
+
|
|
271
|
+
// packages/sdk/shell/src/components/HuePicker.tsx
|
|
272
|
+
import { ArrowCounterClockwise as ArrowCounterClockwise2, CaretDown as CaretDown2, Check, Palette } from "@phosphor-icons/react";
|
|
273
|
+
import { useControllableState as useControllableState2 } from "@radix-ui/react-use-controllable-state";
|
|
274
|
+
import React4, { useRef as useRef2, useState as useState2 } from "react";
|
|
275
|
+
import { Button as Button3, DropdownMenu, Toolbar as Toolbar2, Tooltip as Tooltip3, useThemeContext as useThemeContext3, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
276
|
+
import { getSize as getSize3, hueTokenThemes, mx as mx3 } from "@dxos/react-ui-theme";
|
|
277
|
+
var HuePreview = ({ hue }) => {
|
|
278
|
+
const { tx } = useThemeContext3();
|
|
279
|
+
const size = 20;
|
|
280
|
+
return /* @__PURE__ */ React4.createElement("svg", {
|
|
281
|
+
width: size,
|
|
282
|
+
height: size,
|
|
283
|
+
viewBox: `0 0 ${size} ${size}`
|
|
284
|
+
}, /* @__PURE__ */ React4.createElement("rect", {
|
|
285
|
+
x: 0,
|
|
286
|
+
y: 0,
|
|
287
|
+
width: size,
|
|
288
|
+
height: size,
|
|
289
|
+
className: tx("hue.fill", "select--hue__preview", {
|
|
290
|
+
hue
|
|
291
|
+
})
|
|
292
|
+
}));
|
|
293
|
+
};
|
|
294
|
+
var hueTokens = Object.keys(hueTokenThemes).slice(0, 16);
|
|
295
|
+
var HuePickerToolbarButton = ({ disabled, hue, onChangeHue, classNames, defaultHue }) => {
|
|
296
|
+
const { t } = useTranslation3("os");
|
|
297
|
+
const [hueValue, setHueValue] = useControllableState2({
|
|
298
|
+
prop: hue,
|
|
299
|
+
onChange: onChangeHue,
|
|
300
|
+
defaultProp: defaultHue
|
|
301
|
+
});
|
|
302
|
+
const [huePickerOpen, setHuePickerOpen] = useState2(false);
|
|
303
|
+
const suppressNextTooltip = useRef2(false);
|
|
304
|
+
const [triggerTooltipOpen, setTriggerTooltipOpen] = useState2(false);
|
|
305
|
+
return /* @__PURE__ */ React4.createElement(Tooltip3.Root, {
|
|
306
|
+
open: triggerTooltipOpen,
|
|
307
|
+
onOpenChange: (nextOpen) => {
|
|
308
|
+
if (suppressNextTooltip.current) {
|
|
309
|
+
setTriggerTooltipOpen(false);
|
|
310
|
+
suppressNextTooltip.current = false;
|
|
311
|
+
} else {
|
|
312
|
+
setTriggerTooltipOpen(nextOpen);
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}, /* @__PURE__ */ React4.createElement(DropdownMenu.Root, {
|
|
316
|
+
modal: false,
|
|
317
|
+
open: huePickerOpen,
|
|
318
|
+
onOpenChange: (nextOpen) => {
|
|
319
|
+
setHuePickerOpen(nextOpen);
|
|
320
|
+
suppressNextTooltip.current = true;
|
|
321
|
+
}
|
|
322
|
+
}, /* @__PURE__ */ React4.createElement(Tooltip3.Trigger, {
|
|
323
|
+
asChild: true
|
|
324
|
+
}, /* @__PURE__ */ React4.createElement(DropdownMenu.Trigger, {
|
|
325
|
+
asChild: true
|
|
326
|
+
}, /* @__PURE__ */ React4.createElement(Toolbar2.Button, {
|
|
327
|
+
classNames: mx3("gap-2 plb-1", classNames),
|
|
328
|
+
disabled
|
|
329
|
+
}, /* @__PURE__ */ React4.createElement("span", {
|
|
330
|
+
className: "sr-only"
|
|
331
|
+
}, t("select hue label")), /* @__PURE__ */ React4.createElement(Palette, {
|
|
332
|
+
className: getSize3(5)
|
|
333
|
+
})))), /* @__PURE__ */ React4.createElement(Tooltip3.Portal, null, /* @__PURE__ */ React4.createElement(Tooltip3.Content, {
|
|
334
|
+
side: "bottom"
|
|
335
|
+
}, t("select hue label"), /* @__PURE__ */ React4.createElement(Tooltip3.Arrow, null))), /* @__PURE__ */ React4.createElement(DropdownMenu.Content, {
|
|
336
|
+
side: "bottom",
|
|
337
|
+
classNames: "!w-40"
|
|
338
|
+
}, /* @__PURE__ */ React4.createElement(DropdownMenu.Viewport, {
|
|
339
|
+
classNames: "grid grid-cols-4"
|
|
340
|
+
}, hueTokens.map((hue2) => {
|
|
341
|
+
return /* @__PURE__ */ React4.createElement(DropdownMenu.CheckboxItem, {
|
|
342
|
+
key: hue2,
|
|
343
|
+
checked: hue2 === hueValue,
|
|
344
|
+
onCheckedChange: () => setHueValue(hue2),
|
|
345
|
+
classNames: "px-0 py-2 items-center justify-center"
|
|
346
|
+
}, /* @__PURE__ */ React4.createElement(HuePreview, {
|
|
347
|
+
hue: hue2
|
|
348
|
+
}));
|
|
349
|
+
})))));
|
|
350
|
+
};
|
|
351
|
+
var HuePickerBlock = ({ disabled, hue, onChangeHue, defaultHue, onClickClear }) => {
|
|
352
|
+
const { t } = useTranslation3("os");
|
|
353
|
+
const [hueValue, setHueValue] = useControllableState2({
|
|
354
|
+
prop: hue,
|
|
355
|
+
onChange: onChangeHue,
|
|
356
|
+
defaultProp: defaultHue
|
|
357
|
+
});
|
|
358
|
+
return /* @__PURE__ */ React4.createElement(React4.Fragment, null, /* @__PURE__ */ React4.createElement(DropdownMenu.Root, {
|
|
359
|
+
modal: false
|
|
360
|
+
}, /* @__PURE__ */ React4.createElement(DropdownMenu.Trigger, {
|
|
361
|
+
asChild: true
|
|
362
|
+
}, /* @__PURE__ */ React4.createElement(Button3, {
|
|
363
|
+
variant: "ghost",
|
|
364
|
+
classNames: "gap-2 plb-1",
|
|
365
|
+
disabled
|
|
366
|
+
}, /* @__PURE__ */ React4.createElement("span", {
|
|
367
|
+
className: "sr-only"
|
|
368
|
+
}, t("select hue label")), /* @__PURE__ */ React4.createElement("div", {
|
|
369
|
+
role: "none",
|
|
370
|
+
className: "pis-14 grow flex items-center justify-center gap-2"
|
|
371
|
+
}, /* @__PURE__ */ React4.createElement(HuePreview, {
|
|
372
|
+
hue: hueValue
|
|
373
|
+
}), /* @__PURE__ */ React4.createElement("span", null, t(`${hueValue} label`))), /* @__PURE__ */ React4.createElement(CaretDown2, {
|
|
374
|
+
className: getSize3(4)
|
|
375
|
+
}))), /* @__PURE__ */ React4.createElement(DropdownMenu.Content, {
|
|
376
|
+
side: "right"
|
|
377
|
+
}, /* @__PURE__ */ React4.createElement(DropdownMenu.Viewport, null, Object.keys(hueTokenThemes).map((hue2) => {
|
|
378
|
+
return /* @__PURE__ */ React4.createElement(DropdownMenu.CheckboxItem, {
|
|
379
|
+
key: hue2,
|
|
380
|
+
checked: hue2 === hueValue,
|
|
381
|
+
onCheckedChange: () => setHueValue(hue2)
|
|
382
|
+
}, /* @__PURE__ */ React4.createElement(HuePreview, {
|
|
383
|
+
hue: hue2
|
|
384
|
+
}), /* @__PURE__ */ React4.createElement("span", {
|
|
385
|
+
className: "grow"
|
|
386
|
+
}, t(`${hue2} label`)), /* @__PURE__ */ React4.createElement(DropdownMenu.ItemIndicator, null, /* @__PURE__ */ React4.createElement(Check, null)));
|
|
387
|
+
})), /* @__PURE__ */ React4.createElement(DropdownMenu.Arrow, null))), /* @__PURE__ */ React4.createElement(Tooltip3.Root, null, /* @__PURE__ */ React4.createElement(Tooltip3.Trigger, {
|
|
388
|
+
asChild: true
|
|
389
|
+
}, /* @__PURE__ */ React4.createElement(Button3, {
|
|
390
|
+
variant: "ghost",
|
|
391
|
+
onClick: onClickClear,
|
|
392
|
+
disabled
|
|
393
|
+
}, /* @__PURE__ */ React4.createElement("span", {
|
|
394
|
+
className: "sr-only"
|
|
395
|
+
}, t("clear label")), /* @__PURE__ */ React4.createElement(ArrowCounterClockwise2, null))), /* @__PURE__ */ React4.createElement(Tooltip3.Portal, null, /* @__PURE__ */ React4.createElement(Tooltip3.Content, {
|
|
396
|
+
side: "right"
|
|
397
|
+
}, t("clear label"), /* @__PURE__ */ React4.createElement(Tooltip3.Arrow, null)))));
|
|
398
|
+
};
|
|
399
|
+
|
|
138
400
|
// packages/sdk/shell/src/components/IdentityList/IdentityListItem.tsx
|
|
139
|
-
import
|
|
401
|
+
import React5, { forwardRef } from "react";
|
|
140
402
|
import { generateName } from "@dxos/display-name";
|
|
141
403
|
import { SpaceMember } from "@dxos/react-client/echo";
|
|
142
404
|
import { ListItem, Avatar as Avatar2, useId as useId2 } from "@dxos/react-ui";
|
|
143
|
-
import { mx as
|
|
405
|
+
import { mx as mx4 } from "@dxos/react-ui-theme";
|
|
144
406
|
import { keyToFallback } from "@dxos/util";
|
|
145
407
|
var IdentityListItem = /* @__PURE__ */ forwardRef(({ identity, presence, onClick, classNames, ...props }, forwardedRef) => {
|
|
146
408
|
const fallbackValue = keyToFallback(identity.identityKey);
|
|
147
409
|
const labelId = useId2("identityListItem__label");
|
|
148
410
|
const displayName = identity.profile?.displayName ?? generateName(identity.identityKey.toHex());
|
|
149
|
-
return /* @__PURE__ */
|
|
411
|
+
return /* @__PURE__ */ React5.createElement(ListItem.Root, {
|
|
150
412
|
...props,
|
|
151
|
-
classNames:
|
|
413
|
+
classNames: mx4("flex gap-2 pis-3 pie-1 items-center", onClick && "cursor-pointer", classNames),
|
|
152
414
|
onClick: () => onClick?.(),
|
|
153
415
|
"data-testid": "identity-list-item",
|
|
154
416
|
labelId,
|
|
155
417
|
ref: forwardedRef
|
|
156
|
-
}, /* @__PURE__ */
|
|
418
|
+
}, /* @__PURE__ */ React5.createElement(Avatar2.Root, {
|
|
157
419
|
status: presence === SpaceMember.PresenceState.ONLINE ? "active" : "inactive",
|
|
158
420
|
labelId,
|
|
159
421
|
hue: identity.profile?.data?.hue || fallbackValue.hue
|
|
160
|
-
}, /* @__PURE__ */
|
|
422
|
+
}, /* @__PURE__ */ React5.createElement(Avatar2.Frame, {
|
|
161
423
|
classNames: "place-self-center"
|
|
162
|
-
}, /* @__PURE__ */
|
|
424
|
+
}, /* @__PURE__ */ React5.createElement(Avatar2.Fallback, {
|
|
163
425
|
text: identity.profile?.data?.emoji || fallbackValue.emoji
|
|
164
|
-
})), /* @__PURE__ */
|
|
426
|
+
})), /* @__PURE__ */ React5.createElement(Avatar2.Label, {
|
|
165
427
|
classNames: "text-sm truncate pli-2"
|
|
166
428
|
}, displayName)));
|
|
167
429
|
});
|
|
168
430
|
|
|
169
431
|
// packages/sdk/shell/src/components/IdentityList/SpaceMemberList.tsx
|
|
170
|
-
import
|
|
432
|
+
import React6, { useMemo } from "react";
|
|
171
433
|
import { useClient } from "@dxos/react-client";
|
|
172
434
|
import { useMembers } from "@dxos/react-client/echo";
|
|
173
|
-
import { useTranslation as
|
|
174
|
-
import { descriptionText as descriptionText3, mx as
|
|
435
|
+
import { useTranslation as useTranslation4, List } from "@dxos/react-ui";
|
|
436
|
+
import { descriptionText as descriptionText3, mx as mx5 } from "@dxos/react-ui-theme";
|
|
175
437
|
var SpaceMemberList = ({ spaceKey, includeSelf, onSelect }) => {
|
|
176
438
|
const client = useClient();
|
|
177
439
|
const allUnsortedMembers = useMembers(spaceKey);
|
|
178
440
|
const members = useMemo(() => includeSelf ? allUnsortedMembers.sort((member) => member.identity.identityKey.equals(client.halo.identity.get().identityKey) ? -1 : 1) : allUnsortedMembers.filter((member) => !member.identity.identityKey.equals(client.halo.identity.get().identityKey)), [
|
|
179
441
|
allUnsortedMembers
|
|
180
442
|
]);
|
|
181
|
-
return /* @__PURE__ */
|
|
443
|
+
return /* @__PURE__ */ React6.createElement(SpaceMemberListImpl, {
|
|
182
444
|
members,
|
|
183
445
|
onSelect
|
|
184
446
|
});
|
|
185
447
|
};
|
|
186
448
|
var SpaceMemberListImpl = ({ members, onSelect }) => {
|
|
187
|
-
const { t } =
|
|
449
|
+
const { t } = useTranslation4("os");
|
|
188
450
|
const visibleMembers = members.filter((member) => member.identity);
|
|
189
|
-
return visibleMembers.length > 0 ? /* @__PURE__ */
|
|
451
|
+
return visibleMembers.length > 0 ? /* @__PURE__ */ React6.createElement(List, {
|
|
190
452
|
classNames: "flex flex-col gap-2",
|
|
191
453
|
"data-testid": "space-members-list"
|
|
192
454
|
}, visibleMembers.map((member) => {
|
|
193
|
-
return /* @__PURE__ */
|
|
455
|
+
return /* @__PURE__ */ React6.createElement(IdentityListItem, {
|
|
194
456
|
key: member.identity.identityKey.toHex(),
|
|
195
457
|
identity: member.identity,
|
|
196
458
|
presence: member.presence,
|
|
197
459
|
onClick: onSelect && (() => onSelect(member))
|
|
198
460
|
});
|
|
199
|
-
})) : /* @__PURE__ */
|
|
461
|
+
})) : /* @__PURE__ */ React6.createElement("div", {
|
|
200
462
|
role: "none",
|
|
201
463
|
className: "grow flex items-center p-2"
|
|
202
|
-
}, /* @__PURE__ */
|
|
203
|
-
className:
|
|
464
|
+
}, /* @__PURE__ */ React6.createElement("p", {
|
|
465
|
+
className: mx5(descriptionText3, "text-center is-full mlb-2")
|
|
204
466
|
}, t("empty space members message")));
|
|
205
467
|
};
|
|
206
468
|
|
|
207
469
|
// packages/sdk/shell/src/components/DeviceList/DeviceList.tsx
|
|
208
470
|
import { CaretRight, Plus as Plus2 } from "@phosphor-icons/react";
|
|
209
|
-
import
|
|
210
|
-
import { Button as
|
|
211
|
-
import { descriptionText as descriptionText4, getSize as
|
|
471
|
+
import React8 from "react";
|
|
472
|
+
import { Button as Button5, List as List2, useTranslation as useTranslation6 } from "@dxos/react-ui";
|
|
473
|
+
import { descriptionText as descriptionText4, getSize as getSize5, mx as mx6 } from "@dxos/react-ui-theme";
|
|
212
474
|
|
|
213
475
|
// packages/sdk/shell/src/components/DeviceList/DeviceListItem.tsx
|
|
214
476
|
import { Compass, Desktop, DeviceMobile, Devices, DotsThree, ShareFat, Power as Power2, Robot, Database as Database2, FirstAidKit } from "@phosphor-icons/react";
|
|
215
|
-
import
|
|
477
|
+
import React7, { forwardRef as forwardRef2 } from "react";
|
|
216
478
|
import { generateName as generateName2 } from "@dxos/display-name";
|
|
217
479
|
import { Device, DeviceType, DeviceKind } from "@dxos/react-client/halo";
|
|
218
480
|
import { ConnectionState } from "@dxos/react-client/mesh";
|
|
219
|
-
import { ListItem as ListItem2, Avatar as Avatar3, useId as useId3, Tag, useTranslation as
|
|
220
|
-
import { getSize as
|
|
481
|
+
import { ListItem as ListItem2, Avatar as Avatar3, useId as useId3, Tag, useTranslation as useTranslation5, DropdownMenu as DropdownMenu2, Button as Button4 } from "@dxos/react-ui";
|
|
482
|
+
import { getSize as getSize4 } from "@dxos/react-ui-theme";
|
|
221
483
|
import { keyToFallback as keyToFallback2 } from "@dxos/util";
|
|
222
484
|
var iconProps = {
|
|
223
485
|
weight: "duotone",
|
|
@@ -227,7 +489,7 @@ var iconProps = {
|
|
|
227
489
|
y: 8
|
|
228
490
|
};
|
|
229
491
|
var DeviceListItem = /* @__PURE__ */ forwardRef2(({ device, onClickAdd, onClickEdit, onClickReset, onClickRecover, onClickJoinExisting, classNames, connectionState, onAgentDestroy: _, ...props }, forwardedRef) => {
|
|
230
|
-
const { t } =
|
|
492
|
+
const { t } = useTranslation5("os");
|
|
231
493
|
const fallbackValue = keyToFallback2(device.deviceKey);
|
|
232
494
|
const labelId = useId3("identityListItem__label");
|
|
233
495
|
const displayName = device.profile ? t("device name placeholder", {
|
|
@@ -235,7 +497,7 @@ var DeviceListItem = /* @__PURE__ */ forwardRef2(({ device, onClickAdd, onClickE
|
|
|
235
497
|
platform: device.profile.platform
|
|
236
498
|
}) : generateName2(device.deviceKey.toHex());
|
|
237
499
|
const isCurrent = device.kind === DeviceKind.CURRENT;
|
|
238
|
-
return /* @__PURE__ */
|
|
500
|
+
return /* @__PURE__ */ React7.createElement(ListItem2.Root, {
|
|
239
501
|
...props,
|
|
240
502
|
classNames: [
|
|
241
503
|
"flex gap-2 items-center mlb-2",
|
|
@@ -244,60 +506,60 @@ var DeviceListItem = /* @__PURE__ */ forwardRef2(({ device, onClickAdd, onClickE
|
|
|
244
506
|
"data-testid": `device-list-item${isCurrent ? "-current" : ""}`,
|
|
245
507
|
labelId,
|
|
246
508
|
ref: forwardedRef
|
|
247
|
-
}, /* @__PURE__ */
|
|
509
|
+
}, /* @__PURE__ */ React7.createElement(Avatar3.Root, {
|
|
248
510
|
status: isCurrent && connectionState === ConnectionState.OFFLINE ? "error" : device.presence === Device.PresenceState.ONLINE ? "active" : "inactive",
|
|
249
511
|
labelId,
|
|
250
512
|
hue: fallbackValue.hue,
|
|
251
513
|
variant: "square"
|
|
252
|
-
}, /* @__PURE__ */
|
|
514
|
+
}, /* @__PURE__ */ React7.createElement(Avatar3.Frame, {
|
|
253
515
|
classNames: "place-self-center"
|
|
254
|
-
}, device.profile?.type ? device.profile.type === DeviceType.AGENT_MANAGED ? /* @__PURE__ */
|
|
516
|
+
}, device.profile?.type ? device.profile.type === DeviceType.AGENT_MANAGED ? /* @__PURE__ */ React7.createElement(Database2, iconProps) : device.profile.type === DeviceType.BROWSER ? /* @__PURE__ */ React7.createElement(Compass, iconProps) : device.profile.type === DeviceType.NATIVE ? /* @__PURE__ */ React7.createElement(Desktop, iconProps) : [
|
|
255
517
|
DeviceType.AGENT,
|
|
256
518
|
DeviceType.AGENT_MANAGED
|
|
257
|
-
].includes(device.profile.type) ? /* @__PURE__ */
|
|
519
|
+
].includes(device.profile.type) ? /* @__PURE__ */ React7.createElement(Robot, iconProps) : device.profile.type === DeviceType.MOBILE ? /* @__PURE__ */ React7.createElement(DeviceMobile, iconProps) : /* @__PURE__ */ React7.createElement(Devices, iconProps) : /* @__PURE__ */ React7.createElement(Avatar3.Fallback, {
|
|
258
520
|
text: fallbackValue.emoji
|
|
259
|
-
})), /* @__PURE__ */
|
|
521
|
+
})), /* @__PURE__ */ React7.createElement(Avatar3.Label, {
|
|
260
522
|
classNames: "flex-1 text-sm truncate"
|
|
261
|
-
}, displayName), isCurrent && /* @__PURE__ */
|
|
523
|
+
}, displayName), isCurrent && /* @__PURE__ */ React7.createElement(Tag, {
|
|
262
524
|
color: "primary"
|
|
263
|
-
}, t("current device tag label")), device.kind === DeviceKind.CURRENT && /* @__PURE__ */
|
|
525
|
+
}, t("current device tag label")), device.kind === DeviceKind.CURRENT && /* @__PURE__ */ React7.createElement(DropdownMenu2.Root, null, /* @__PURE__ */ React7.createElement(DropdownMenu2.Trigger, {
|
|
264
526
|
asChild: true
|
|
265
|
-
}, /* @__PURE__ */
|
|
527
|
+
}, /* @__PURE__ */ React7.createElement(Button4, {
|
|
266
528
|
variant: "ghost",
|
|
267
529
|
classNames: "pli-0 is-[--rail-action] bs-[--rail-action]",
|
|
268
530
|
"data-testid": `device-list-item${isCurrent ? "-current" : ""}.options`
|
|
269
|
-
}, /* @__PURE__ */
|
|
531
|
+
}, /* @__PURE__ */ React7.createElement("span", {
|
|
270
532
|
className: "sr-only"
|
|
271
|
-
}, t("more options label")), /* @__PURE__ */
|
|
272
|
-
className:
|
|
273
|
-
}))), /* @__PURE__ */
|
|
533
|
+
}, t("more options label")), /* @__PURE__ */ React7.createElement(DotsThree, {
|
|
534
|
+
className: getSize4(5)
|
|
535
|
+
}))), /* @__PURE__ */ React7.createElement(DropdownMenu2.Content, null, /* @__PURE__ */ React7.createElement(DropdownMenu2.Viewport, null, /* @__PURE__ */ React7.createElement(DropdownMenu2.Item, {
|
|
274
536
|
"data-testid": "device-list-item-current.join-existing",
|
|
275
537
|
onClick: onClickJoinExisting
|
|
276
|
-
}, /* @__PURE__ */
|
|
277
|
-
className:
|
|
278
|
-
}), t("choose join new identity label")), onClickRecover && /* @__PURE__ */
|
|
538
|
+
}, /* @__PURE__ */ React7.createElement(ShareFat, {
|
|
539
|
+
className: getSize4(5)
|
|
540
|
+
}), t("choose join new identity label")), onClickRecover && /* @__PURE__ */ React7.createElement(DropdownMenu2.Item, {
|
|
279
541
|
"data-testid": "device-list-item-current.recover",
|
|
280
542
|
onClick: onClickRecover
|
|
281
|
-
}, /* @__PURE__ */
|
|
282
|
-
className:
|
|
283
|
-
}), t("choose recover identity label")), /* @__PURE__ */
|
|
543
|
+
}, /* @__PURE__ */ React7.createElement(FirstAidKit, {
|
|
544
|
+
className: getSize4(5)
|
|
545
|
+
}), t("choose recover identity label")), /* @__PURE__ */ React7.createElement(DropdownMenu2.Item, {
|
|
284
546
|
"data-testid": "device-list-item-current.reset",
|
|
285
547
|
onClick: onClickReset
|
|
286
|
-
}, /* @__PURE__ */
|
|
287
|
-
className:
|
|
548
|
+
}, /* @__PURE__ */ React7.createElement(Power2, {
|
|
549
|
+
className: getSize4(5)
|
|
288
550
|
}), t("reset device label")))))));
|
|
289
551
|
});
|
|
290
552
|
|
|
291
553
|
// packages/sdk/shell/src/components/DeviceList/DeviceList.tsx
|
|
292
554
|
var DeviceList = ({ devices, connectionState, onClickAdd, onClickEdit, onClickReset, onClickRecover, onClickJoinExisting, onAgentDestroy }) => {
|
|
293
|
-
const { t } =
|
|
294
|
-
return /* @__PURE__ */
|
|
555
|
+
const { t } = useTranslation6("os");
|
|
556
|
+
return /* @__PURE__ */ React8.createElement("div", {
|
|
295
557
|
role: "none",
|
|
296
558
|
className: "p-1"
|
|
297
|
-
}, /* @__PURE__ */
|
|
298
|
-
className:
|
|
299
|
-
}, t("devices heading")), devices.length > 0 && /* @__PURE__ */
|
|
300
|
-
return /* @__PURE__ */
|
|
559
|
+
}, /* @__PURE__ */ React8.createElement("h2", {
|
|
560
|
+
className: mx6(descriptionText4, "text-center mbs-2")
|
|
561
|
+
}, t("devices heading")), devices.length > 0 && /* @__PURE__ */ React8.createElement(List2, null, devices.map((device) => {
|
|
562
|
+
return /* @__PURE__ */ React8.createElement(DeviceListItem, {
|
|
301
563
|
key: device.deviceKey.toHex(),
|
|
302
564
|
device,
|
|
303
565
|
onClickEdit: () => onClickEdit?.(device),
|
|
@@ -307,43 +569,43 @@ var DeviceList = ({ devices, connectionState, onClickAdd, onClickEdit, onClickRe
|
|
|
307
569
|
connectionState,
|
|
308
570
|
onAgentDestroy
|
|
309
571
|
});
|
|
310
|
-
})), /* @__PURE__ */
|
|
572
|
+
})), /* @__PURE__ */ React8.createElement(Button5, {
|
|
311
573
|
variant: "ghost",
|
|
312
|
-
classNames: "justify-start gap-2 pis-0 pie-3 is-full",
|
|
574
|
+
classNames: "justify-start gap-2 !pis-0 !pie-3 is-full",
|
|
313
575
|
"data-testid": "devices-panel.create-invitation",
|
|
314
576
|
onClick: onClickAdd
|
|
315
|
-
}, /* @__PURE__ */
|
|
577
|
+
}, /* @__PURE__ */ React8.createElement("div", {
|
|
316
578
|
role: "img",
|
|
317
|
-
className:
|
|
318
|
-
}, /* @__PURE__ */
|
|
579
|
+
className: mx6(getSize5(8), "m-1 rounded-sm bg-input grid place-items-center")
|
|
580
|
+
}, /* @__PURE__ */ React8.createElement(Plus2, {
|
|
319
581
|
weight: "light",
|
|
320
|
-
className:
|
|
321
|
-
})), /* @__PURE__ */
|
|
582
|
+
className: getSize5(6)
|
|
583
|
+
})), /* @__PURE__ */ React8.createElement("span", {
|
|
322
584
|
className: "grow font-medium text-start"
|
|
323
|
-
}, t("choose add device label")), /* @__PURE__ */
|
|
585
|
+
}, t("choose add device label")), /* @__PURE__ */ React8.createElement(CaretRight, {
|
|
324
586
|
weight: "bold",
|
|
325
|
-
className:
|
|
587
|
+
className: getSize5(4)
|
|
326
588
|
})));
|
|
327
589
|
};
|
|
328
590
|
|
|
329
591
|
// packages/sdk/shell/src/components/InvitationList/InvitationListItem.tsx
|
|
330
592
|
import { X } from "@phosphor-icons/react";
|
|
331
593
|
import { formatDistanceToNow } from "date-fns";
|
|
332
|
-
import
|
|
594
|
+
import React10, { useCallback } from "react";
|
|
333
595
|
import { Invitation, useInvitationStatus } from "@dxos/react-client/invitations";
|
|
334
|
-
import { Button as
|
|
335
|
-
import { focusRing, getSize as
|
|
596
|
+
import { Button as Button6, Clipboard, ListItem as ListItem3, useTranslation as useTranslation7, Avatar as Avatar4, useThemeContext as useThemeContext4, Tooltip as Tooltip4 } from "@dxos/react-ui";
|
|
597
|
+
import { focusRing, getSize as getSize6, mx as mx8 } from "@dxos/react-ui-theme";
|
|
336
598
|
import { hexToEmoji } from "@dxos/util";
|
|
337
599
|
|
|
338
600
|
// packages/sdk/shell/src/components/AuthCode.tsx
|
|
339
|
-
import
|
|
340
|
-
import { mx as
|
|
601
|
+
import React9, { useRef as useRef3 } from "react";
|
|
602
|
+
import { mx as mx7 } from "@dxos/react-ui-theme";
|
|
341
603
|
var AuthCode = (props) => {
|
|
342
604
|
const { code, large, classNames } = props;
|
|
343
605
|
const l = code?.length ?? 0;
|
|
344
606
|
const left = code?.slice(0, l / 2);
|
|
345
607
|
const right = code?.slice(l / 2);
|
|
346
|
-
const codeRef =
|
|
608
|
+
const codeRef = useRef3(null);
|
|
347
609
|
const handleClick = () => {
|
|
348
610
|
if (codeRef.current) {
|
|
349
611
|
const selection = window.getSelection();
|
|
@@ -354,20 +616,20 @@ var AuthCode = (props) => {
|
|
|
354
616
|
}
|
|
355
617
|
void navigator.clipboard.writeText(code ?? "");
|
|
356
618
|
};
|
|
357
|
-
return /* @__PURE__ */
|
|
358
|
-
className:
|
|
619
|
+
return /* @__PURE__ */ React9.createElement("span", {
|
|
620
|
+
className: mx7(large ? "text-6xl" : "text-2xl", "font-mono pli-2.5 rounded cursor-pointer", classNames),
|
|
359
621
|
onClick: handleClick,
|
|
360
622
|
ref: codeRef
|
|
361
|
-
}, /* @__PURE__ */
|
|
623
|
+
}, /* @__PURE__ */ React9.createElement("span", {
|
|
362
624
|
className: "mie-[0.4em]"
|
|
363
|
-
}, left), /* @__PURE__ */
|
|
625
|
+
}, left), /* @__PURE__ */ React9.createElement("span", null, right));
|
|
364
626
|
};
|
|
365
627
|
|
|
366
628
|
// packages/sdk/shell/src/components/InvitationList/InvitationListItem.tsx
|
|
367
629
|
var InvitationListItem = (props) => {
|
|
368
630
|
const { invitation } = props;
|
|
369
631
|
const invitationStatus = useInvitationStatus(invitation);
|
|
370
|
-
return /* @__PURE__ */
|
|
632
|
+
return /* @__PURE__ */ React10.createElement(InvitationListItemImpl, {
|
|
371
633
|
...props,
|
|
372
634
|
invitationStatus
|
|
373
635
|
});
|
|
@@ -377,11 +639,11 @@ var avatarProps = {
|
|
|
377
639
|
variant: "circle"
|
|
378
640
|
};
|
|
379
641
|
var AvatarStackEffect = ({ animation, status, reverseEffects }) => {
|
|
380
|
-
const { tx } =
|
|
381
|
-
return /* @__PURE__ */
|
|
642
|
+
const { tx } = useThemeContext4();
|
|
643
|
+
return /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement("span", {
|
|
382
644
|
role: "none",
|
|
383
|
-
className:
|
|
384
|
-
}, /* @__PURE__ */
|
|
645
|
+
className: mx8("absolute inline-end-auto opacity-20", reverseEffects ? "inline-start-3" : "inline-start-1", getSize6(avatarProps.size))
|
|
646
|
+
}, /* @__PURE__ */ React10.createElement("span", {
|
|
385
647
|
role: "none",
|
|
386
648
|
className: tx("avatar.ring", "avatar__ring", {
|
|
387
649
|
...avatarProps,
|
|
@@ -391,10 +653,10 @@ var AvatarStackEffect = ({ animation, status, reverseEffects }) => {
|
|
|
391
653
|
style: {
|
|
392
654
|
animationDelay: "400ms"
|
|
393
655
|
}
|
|
394
|
-
})), /* @__PURE__ */
|
|
656
|
+
})), /* @__PURE__ */ React10.createElement("span", {
|
|
395
657
|
role: "none",
|
|
396
|
-
className:
|
|
397
|
-
}, /* @__PURE__ */
|
|
658
|
+
className: mx8("absolute inline-end-auto opacity-50", reverseEffects ? "inline-start-2" : "inline-start-2", getSize6(avatarProps.size))
|
|
659
|
+
}, /* @__PURE__ */ React10.createElement("span", {
|
|
398
660
|
role: "none",
|
|
399
661
|
className: tx("avatar.ring", "avatar__ring", {
|
|
400
662
|
...avatarProps,
|
|
@@ -407,7 +669,7 @@ var AvatarStackEffect = ({ animation, status, reverseEffects }) => {
|
|
|
407
669
|
})));
|
|
408
670
|
};
|
|
409
671
|
var InvitationListItemImpl = ({ invitation, invitationStatus: propsInvitationStatus, send, onClickRemove, createInvitationUrl, reverseEffects, ...props }) => {
|
|
410
|
-
const { t } =
|
|
672
|
+
const { t } = useTranslation7("os");
|
|
411
673
|
const { cancel, status: invitationStatus, invitationCode, authCode, multiUse, shareable } = propsInvitationStatus;
|
|
412
674
|
const isCancellable = !([
|
|
413
675
|
Invitation.State.ERROR,
|
|
@@ -449,38 +711,38 @@ var InvitationListItemImpl = ({ invitation, invitationStatus: propsInvitationSta
|
|
|
449
711
|
Invitation.State.SUCCESS
|
|
450
712
|
].includes(invitationStatus);
|
|
451
713
|
const avatarStatus = avatarError ? "error" : avatarGreen ? "active" : "inactive";
|
|
452
|
-
return /* @__PURE__ */
|
|
714
|
+
return /* @__PURE__ */ React10.createElement(ListItem3.Root, {
|
|
453
715
|
id: invitationCode,
|
|
454
716
|
...props,
|
|
455
717
|
classNames: [
|
|
456
718
|
"flex gap-2 pis-3 pie-1 items-center relative",
|
|
457
719
|
props.classNames
|
|
458
720
|
]
|
|
459
|
-
}, /* @__PURE__ */
|
|
721
|
+
}, /* @__PURE__ */ React10.createElement(ListItem3.Heading, {
|
|
460
722
|
classNames: "sr-only"
|
|
461
|
-
}, t(multiUse ? "invite many list item label" : "invite one list item label")), multiUse && /* @__PURE__ */
|
|
723
|
+
}, t(multiUse ? "invite many list item label" : "invite one list item label")), multiUse && /* @__PURE__ */ React10.createElement(AvatarStackEffect, {
|
|
462
724
|
status: avatarStatus,
|
|
463
725
|
animation: avatarAnimation,
|
|
464
726
|
reverseEffects
|
|
465
|
-
}), /* @__PURE__ */
|
|
727
|
+
}), /* @__PURE__ */ React10.createElement(Tooltip4.Root, null, /* @__PURE__ */ React10.createElement(Avatar4.Root, {
|
|
466
728
|
...avatarProps,
|
|
467
729
|
animation: avatarAnimation,
|
|
468
730
|
status: avatarStatus
|
|
469
|
-
}, /* @__PURE__ */
|
|
731
|
+
}, /* @__PURE__ */ React10.createElement(Tooltip4.Trigger, {
|
|
470
732
|
asChild: true
|
|
471
|
-
}, /* @__PURE__ */
|
|
733
|
+
}, /* @__PURE__ */ React10.createElement(Avatar4.Frame, {
|
|
472
734
|
tabIndex: 0,
|
|
473
735
|
classNames: [
|
|
474
736
|
focusRing,
|
|
475
737
|
"relative rounded-full place-self-center"
|
|
476
738
|
]
|
|
477
|
-
}, /* @__PURE__ */
|
|
739
|
+
}, /* @__PURE__ */ React10.createElement(Avatar4.Fallback, {
|
|
478
740
|
text: hexToEmoji(invitationId)
|
|
479
|
-
})))), /* @__PURE__ */
|
|
741
|
+
})))), /* @__PURE__ */ React10.createElement(Tooltip4.Portal, null, /* @__PURE__ */ React10.createElement(Tooltip4.Content, {
|
|
480
742
|
side: "left"
|
|
481
|
-
}, t(multiUse ? "invite many qr label" : "invite one qr label"), /* @__PURE__ */
|
|
743
|
+
}, t(multiUse ? "invite many qr label" : "invite one qr label"), /* @__PURE__ */ React10.createElement(Tooltip4.Arrow, null)))), showShare && invitationUrl ? /* @__PURE__ */ React10.createElement(Tooltip4.Root, null, /* @__PURE__ */ React10.createElement(React10.Fragment, null, /* @__PURE__ */ React10.createElement(Tooltip4.Trigger, {
|
|
482
744
|
asChild: true
|
|
483
|
-
}, /* @__PURE__ */
|
|
745
|
+
}, /* @__PURE__ */ React10.createElement(Button6, {
|
|
484
746
|
variant: "ghost",
|
|
485
747
|
classNames: "grow justify-start font-medium",
|
|
486
748
|
onClick: () => send({
|
|
@@ -488,64 +750,64 @@ var InvitationListItemImpl = ({ invitation, invitationStatus: propsInvitationSta
|
|
|
488
750
|
invitation
|
|
489
751
|
}),
|
|
490
752
|
"data-testid": "show-qrcode"
|
|
491
|
-
}, /* @__PURE__ */
|
|
753
|
+
}, /* @__PURE__ */ React10.createElement("span", null, t("open share panel label")))), /* @__PURE__ */ React10.createElement(Clipboard.IconButton, {
|
|
492
754
|
variant: "ghost",
|
|
493
755
|
value: invitationUrl
|
|
494
|
-
})), /* @__PURE__ */
|
|
756
|
+
})), /* @__PURE__ */ React10.createElement(Tooltip4.Portal, null, /* @__PURE__ */ React10.createElement(Tooltip4.Content, {
|
|
495
757
|
side: "left"
|
|
496
|
-
}, invitationHasLifetime && /* @__PURE__ */
|
|
758
|
+
}, invitationHasLifetime && /* @__PURE__ */ React10.createElement("span", null, "Expires ", invitationTimeLeft)))) : showAuthCode ? /* @__PURE__ */ React10.createElement(AuthCode, {
|
|
497
759
|
code: authCode,
|
|
498
760
|
classNames: "grow"
|
|
499
|
-
}) : invitationStatus === Invitation.State.CONNECTING ? /* @__PURE__ */
|
|
761
|
+
}) : invitationStatus === Invitation.State.CONNECTING ? /* @__PURE__ */ React10.createElement("span", {
|
|
500
762
|
className: "pli-2 grow text-neutral-500"
|
|
501
|
-
}, "Connecting...") : invitationStatus === Invitation.State.AUTHENTICATING ? /* @__PURE__ */
|
|
763
|
+
}, "Connecting...") : invitationStatus === Invitation.State.AUTHENTICATING ? /* @__PURE__ */ React10.createElement("span", {
|
|
502
764
|
className: "pli-2 grow text-neutral-500"
|
|
503
|
-
}, "Authenticating...") : invitationStatus === Invitation.State.ERROR || invitationStatus === Invitation.State.TIMEOUT ? /* @__PURE__ */
|
|
765
|
+
}, "Authenticating...") : invitationStatus === Invitation.State.ERROR || invitationStatus === Invitation.State.TIMEOUT ? /* @__PURE__ */ React10.createElement("span", {
|
|
504
766
|
className: "pli-2 grow text-neutral-500"
|
|
505
|
-
}, "Failed") : invitationStatus === Invitation.State.CANCELLED ? /* @__PURE__ */
|
|
767
|
+
}, "Failed") : invitationStatus === Invitation.State.CANCELLED ? /* @__PURE__ */ React10.createElement("span", {
|
|
506
768
|
className: "pli-2 grow text-neutral-500"
|
|
507
|
-
}, "Cancelled") : invitationStatus === Invitation.State.SUCCESS ? /* @__PURE__ */
|
|
769
|
+
}, "Cancelled") : invitationStatus === Invitation.State.SUCCESS ? /* @__PURE__ */ React10.createElement("span", {
|
|
508
770
|
className: "pli-2 grow truncate"
|
|
509
|
-
}, "User joined") : !shareable ? /* @__PURE__ */
|
|
771
|
+
}, "User joined") : !shareable ? /* @__PURE__ */ React10.createElement("span", {
|
|
510
772
|
className: "pli-2 grow text-neutral-500"
|
|
511
|
-
}, "Pending Invitation") : /* @__PURE__ */
|
|
773
|
+
}, "Pending Invitation") : /* @__PURE__ */ React10.createElement("span", {
|
|
512
774
|
className: "grow"
|
|
513
|
-
}, " "), isCancellable ? /* @__PURE__ */
|
|
775
|
+
}, " "), isCancellable ? /* @__PURE__ */ React10.createElement(Button6, {
|
|
514
776
|
variant: "ghost",
|
|
515
777
|
classNames: "flex gap-1 pli-0",
|
|
516
778
|
onClick: cancel,
|
|
517
779
|
"data-testid": "cancel-invitation"
|
|
518
|
-
}, /* @__PURE__ */
|
|
780
|
+
}, /* @__PURE__ */ React10.createElement("span", {
|
|
519
781
|
className: "sr-only"
|
|
520
|
-
}, t("cancel invitation label")), /* @__PURE__ */
|
|
521
|
-
className:
|
|
522
|
-
})) : /* @__PURE__ */
|
|
782
|
+
}, t("cancel invitation label")), /* @__PURE__ */ React10.createElement(X, {
|
|
783
|
+
className: getSize6(4)
|
|
784
|
+
})) : /* @__PURE__ */ React10.createElement(Button6, {
|
|
523
785
|
variant: "ghost",
|
|
524
786
|
classNames: "flex gap-1 pli-0",
|
|
525
787
|
onClick: handleClickRemove,
|
|
526
788
|
"data-testid": "remove-invitation"
|
|
527
|
-
}, /* @__PURE__ */
|
|
789
|
+
}, /* @__PURE__ */ React10.createElement("span", {
|
|
528
790
|
className: "sr-only"
|
|
529
|
-
}, t("remove invitation label")), /* @__PURE__ */
|
|
530
|
-
className:
|
|
791
|
+
}, t("remove invitation label")), /* @__PURE__ */ React10.createElement(X, {
|
|
792
|
+
className: getSize6(4)
|
|
531
793
|
})));
|
|
532
794
|
};
|
|
533
795
|
|
|
534
796
|
// packages/sdk/shell/src/components/InvitationList/InvitationListContainer.tsx
|
|
535
|
-
import
|
|
797
|
+
import React12, { useCallback as useCallback2 } from "react";
|
|
536
798
|
import { useSpace, useSpaceInvitations } from "@dxos/react-client/echo";
|
|
537
799
|
|
|
538
800
|
// packages/sdk/shell/src/components/InvitationList/InvitationList.tsx
|
|
539
|
-
import
|
|
801
|
+
import React11 from "react";
|
|
540
802
|
import { List as List3 } from "@dxos/react-ui";
|
|
541
|
-
import { mx as
|
|
803
|
+
import { mx as mx9 } from "@dxos/react-ui-theme";
|
|
542
804
|
var InvitationList = ({ invitations, send, ...invitationProps }) => {
|
|
543
805
|
const { className, InvitationListItem: Item = InvitationListItem } = invitationProps;
|
|
544
|
-
return /* @__PURE__ */
|
|
545
|
-
classNames:
|
|
806
|
+
return /* @__PURE__ */ React11.createElement(List3, {
|
|
807
|
+
classNames: mx9("flex flex-col gap-2", className)
|
|
546
808
|
}, invitations.map((invitation) => {
|
|
547
809
|
const value = invitation.get().invitationId;
|
|
548
|
-
return /* @__PURE__ */
|
|
810
|
+
return /* @__PURE__ */ React11.createElement(Item, {
|
|
549
811
|
key: value,
|
|
550
812
|
send,
|
|
551
813
|
invitation,
|
|
@@ -563,7 +825,7 @@ var InvitationListContainer = ({ spaceKey, createInvitationUrl, send }) => {
|
|
|
563
825
|
}, [
|
|
564
826
|
space
|
|
565
827
|
]);
|
|
566
|
-
return /* @__PURE__ */
|
|
828
|
+
return /* @__PURE__ */ React12.createElement(InvitationList, {
|
|
567
829
|
invitations,
|
|
568
830
|
onClickRemove: handleClickRemove,
|
|
569
831
|
createInvitationUrl,
|
|
@@ -572,11 +834,11 @@ var InvitationListContainer = ({ spaceKey, createInvitationUrl, send }) => {
|
|
|
572
834
|
};
|
|
573
835
|
|
|
574
836
|
// packages/sdk/shell/src/components/Panel/Action.tsx
|
|
575
|
-
import { CaretDown, Check, Placeholder } from "@phosphor-icons/react";
|
|
576
|
-
import { useControllableState } from "@radix-ui/react-use-controllable-state";
|
|
577
|
-
import
|
|
578
|
-
import { Button as
|
|
579
|
-
import { descriptionText as descriptionText5, getSize as
|
|
837
|
+
import { CaretDown as CaretDown3, Check as Check2, Placeholder } from "@phosphor-icons/react";
|
|
838
|
+
import { useControllableState as useControllableState3 } from "@radix-ui/react-use-controllable-state";
|
|
839
|
+
import React13, { forwardRef as forwardRef3 } from "react";
|
|
840
|
+
import { Button as Button7, DropdownMenu as DropdownMenu3, useTranslation as useTranslation8 } from "@dxos/react-ui";
|
|
841
|
+
import { descriptionText as descriptionText5, getSize as getSize7, mx as mx10 } from "@dxos/react-ui-theme";
|
|
580
842
|
var defaultActions = {
|
|
581
843
|
noopAction: {
|
|
582
844
|
label: "No-op",
|
|
@@ -589,17 +851,17 @@ var defaultActions = {
|
|
|
589
851
|
var BifurcatedAction = /* @__PURE__ */ forwardRef3((props, forwardedRef) => {
|
|
590
852
|
const { classNames, variant, isFull = true, actions = defaultActions, activeAction: propsActiveAction, onChangeActiveAction, defaultActiveAction, "data-testid": testId, ...rest } = props;
|
|
591
853
|
const dropdownTestId = testId && `${testId}.more`;
|
|
592
|
-
const [activeActionKey2 = Object.keys(actions)[0], setActiveAction] =
|
|
854
|
+
const [activeActionKey2 = Object.keys(actions)[0], setActiveAction] = useControllableState3({
|
|
593
855
|
prop: propsActiveAction,
|
|
594
856
|
onChange: onChangeActiveAction,
|
|
595
857
|
defaultProp: defaultActiveAction
|
|
596
858
|
});
|
|
597
859
|
const activeAction = actions[activeActionKey2] ?? {};
|
|
598
|
-
const { t } =
|
|
599
|
-
return /* @__PURE__ */
|
|
860
|
+
const { t } = useTranslation8("os");
|
|
861
|
+
return /* @__PURE__ */ React13.createElement("div", {
|
|
600
862
|
role: "none",
|
|
601
|
-
className:
|
|
602
|
-
}, /* @__PURE__ */
|
|
863
|
+
className: mx10("mbs-2 flex gap-px items-center", isFull && "is-full")
|
|
864
|
+
}, /* @__PURE__ */ React13.createElement(Button7, {
|
|
603
865
|
...rest,
|
|
604
866
|
classNames: [
|
|
605
867
|
"bs-11 flex-1 min-is-0 flex gap-2 rounded-ie-none",
|
|
@@ -609,22 +871,22 @@ var BifurcatedAction = /* @__PURE__ */ forwardRef3((props, forwardedRef) => {
|
|
|
609
871
|
variant,
|
|
610
872
|
"data-testid": testId,
|
|
611
873
|
onClick: activeAction.onClick
|
|
612
|
-
}, activeAction.icon && /* @__PURE__ */
|
|
613
|
-
className:
|
|
614
|
-
}), /* @__PURE__ */
|
|
874
|
+
}, activeAction.icon && /* @__PURE__ */ React13.createElement(activeAction.icon, {
|
|
875
|
+
className: getSize7(5)
|
|
876
|
+
}), /* @__PURE__ */ React13.createElement("span", null, activeAction.label)), /* @__PURE__ */ React13.createElement(DropdownMenu3.Root, null, /* @__PURE__ */ React13.createElement(DropdownMenu3.Trigger, {
|
|
615
877
|
asChild: true
|
|
616
|
-
}, /* @__PURE__ */
|
|
878
|
+
}, /* @__PURE__ */ React13.createElement(Button7, {
|
|
617
879
|
classNames: [
|
|
618
880
|
"bs-11 flex-none rounded-is-none",
|
|
619
881
|
classNames
|
|
620
882
|
],
|
|
621
883
|
"data-testid": dropdownTestId
|
|
622
|
-
}, /* @__PURE__ */
|
|
884
|
+
}, /* @__PURE__ */ React13.createElement("span", {
|
|
623
885
|
className: "sr-only"
|
|
624
|
-
}, t("invite options label")), /* @__PURE__ */
|
|
625
|
-
className:
|
|
626
|
-
}))), /* @__PURE__ */
|
|
627
|
-
return /* @__PURE__ */
|
|
886
|
+
}, t("invite options label")), /* @__PURE__ */ React13.createElement(CaretDown3, {
|
|
887
|
+
className: getSize7(4)
|
|
888
|
+
}))), /* @__PURE__ */ React13.createElement(DropdownMenu3.Portal, null, /* @__PURE__ */ React13.createElement(DropdownMenu3.Content, null, /* @__PURE__ */ React13.createElement(DropdownMenu3.Viewport, null, Object.entries(actions).map(([id, action]) => {
|
|
889
|
+
return /* @__PURE__ */ React13.createElement(DropdownMenu3.CheckboxItem, {
|
|
628
890
|
key: id,
|
|
629
891
|
"aria-labelledby": `${id}__label`,
|
|
630
892
|
"aria-describedby": `${id}__description`,
|
|
@@ -632,27 +894,27 @@ var BifurcatedAction = /* @__PURE__ */ forwardRef3((props, forwardedRef) => {
|
|
|
632
894
|
onCheckedChange: (checked) => checked && setActiveAction(id),
|
|
633
895
|
classNames: "gap-2",
|
|
634
896
|
"data-testid": action.testId
|
|
635
|
-
}, action.icon && /* @__PURE__ */
|
|
636
|
-
className:
|
|
637
|
-
}), /* @__PURE__ */
|
|
897
|
+
}, action.icon && /* @__PURE__ */ React13.createElement(action.icon, {
|
|
898
|
+
className: getSize7(5)
|
|
899
|
+
}), /* @__PURE__ */ React13.createElement("div", {
|
|
638
900
|
role: "none",
|
|
639
901
|
className: "flex-1 min-is-0 space-b-1"
|
|
640
|
-
}, /* @__PURE__ */
|
|
902
|
+
}, /* @__PURE__ */ React13.createElement("p", {
|
|
641
903
|
id: `${id}__label`
|
|
642
|
-
}, action.label), action.description && /* @__PURE__ */
|
|
904
|
+
}, action.label), action.description && /* @__PURE__ */ React13.createElement("p", {
|
|
643
905
|
id: `${id}__description`,
|
|
644
906
|
className: descriptionText5
|
|
645
|
-
}, action.description)), /* @__PURE__ */
|
|
907
|
+
}, action.description)), /* @__PURE__ */ React13.createElement(DropdownMenu3.ItemIndicator, {
|
|
646
908
|
asChild: true
|
|
647
|
-
}, /* @__PURE__ */
|
|
909
|
+
}, /* @__PURE__ */ React13.createElement(Check2, {
|
|
648
910
|
weight: "bold",
|
|
649
|
-
className:
|
|
911
|
+
className: getSize7(4)
|
|
650
912
|
})));
|
|
651
|
-
})), /* @__PURE__ */
|
|
913
|
+
})), /* @__PURE__ */ React13.createElement(DropdownMenu3.Arrow, null)))));
|
|
652
914
|
});
|
|
653
915
|
var Action = /* @__PURE__ */ forwardRef3((props, forwardedRef) => {
|
|
654
916
|
const { children, classNames, variant, isFull = true, ...rest } = props;
|
|
655
|
-
return /* @__PURE__ */
|
|
917
|
+
return /* @__PURE__ */ React13.createElement(Button7, {
|
|
656
918
|
...rest,
|
|
657
919
|
classNames: [
|
|
658
920
|
isFull && "is-full",
|
|
@@ -665,49 +927,49 @@ var Action = /* @__PURE__ */ forwardRef3((props, forwardedRef) => {
|
|
|
665
927
|
});
|
|
666
928
|
|
|
667
929
|
// packages/sdk/shell/src/components/Panel/Actions.tsx
|
|
668
|
-
import
|
|
669
|
-
import { mx as
|
|
930
|
+
import React14, { forwardRef as forwardRef4 } from "react";
|
|
931
|
+
import { mx as mx11 } from "@dxos/react-ui-theme";
|
|
670
932
|
var Actions = /* @__PURE__ */ forwardRef4(({ classNames, children, ...props }, forwardedRef) => {
|
|
671
|
-
return /* @__PURE__ */
|
|
933
|
+
return /* @__PURE__ */ React14.createElement("div", {
|
|
672
934
|
...props,
|
|
673
|
-
className:
|
|
935
|
+
className: mx11("flex flex-col gap-2 mbs-2", Array.isArray(children) && children.length > 1 ? "justify-between" : "justify-center", classNames),
|
|
674
936
|
ref: forwardedRef
|
|
675
937
|
}, children);
|
|
676
938
|
});
|
|
677
939
|
|
|
678
940
|
// packages/sdk/shell/src/components/Panel/CloseButton.tsx
|
|
679
941
|
import { X as X2 } from "@phosphor-icons/react";
|
|
680
|
-
import
|
|
681
|
-
import { Button as
|
|
682
|
-
import { getSize as
|
|
942
|
+
import React15 from "react";
|
|
943
|
+
import { Button as Button8, useTranslation as useTranslation9 } from "@dxos/react-ui";
|
|
944
|
+
import { getSize as getSize8, mx as mx12 } from "@dxos/react-ui-theme";
|
|
683
945
|
var CloseButton = ({ onDone, ...props }) => {
|
|
684
|
-
const { t } =
|
|
685
|
-
return /* @__PURE__ */
|
|
946
|
+
const { t } = useTranslation9("os");
|
|
947
|
+
return /* @__PURE__ */ React15.createElement(Button8, {
|
|
686
948
|
variant: "ghost",
|
|
687
|
-
classNames:
|
|
949
|
+
classNames: mx12("plb-0 pli-2 absolute block-start-0 inline-end-0 z-[1]"),
|
|
688
950
|
onClick: () => onDone?.(),
|
|
689
951
|
...props
|
|
690
|
-
}, /* @__PURE__ */
|
|
952
|
+
}, /* @__PURE__ */ React15.createElement(X2, {
|
|
691
953
|
weight: "bold",
|
|
692
|
-
className:
|
|
693
|
-
}), /* @__PURE__ */
|
|
954
|
+
className: getSize8(4)
|
|
955
|
+
}), /* @__PURE__ */ React15.createElement("span", {
|
|
694
956
|
className: "sr-only"
|
|
695
957
|
}, t("exit label")));
|
|
696
958
|
};
|
|
697
959
|
|
|
698
960
|
// packages/sdk/shell/src/components/Panel/Emoji.tsx
|
|
699
|
-
import
|
|
700
|
-
import { mx as
|
|
961
|
+
import React16 from "react";
|
|
962
|
+
import { mx as mx13, getSize as getSize9 } from "@dxos/react-ui-theme";
|
|
701
963
|
var Emoji = ({ text, className }) => {
|
|
702
964
|
const size = 14;
|
|
703
|
-
return /* @__PURE__ */
|
|
965
|
+
return /* @__PURE__ */ React16.createElement("div", {
|
|
704
966
|
role: "none",
|
|
705
|
-
className:
|
|
706
|
-
}, /* @__PURE__ */
|
|
967
|
+
className: mx13(getSize9(size), "rounded relative pointer-events-none", className)
|
|
968
|
+
}, /* @__PURE__ */ React16.createElement("svg", {
|
|
707
969
|
viewBox: `0 0 ${size * 4} ${size * 4}`,
|
|
708
970
|
width: size * 4,
|
|
709
971
|
height: size * 4
|
|
710
|
-
}, /* @__PURE__ */
|
|
972
|
+
}, /* @__PURE__ */ React16.createElement("text", {
|
|
711
973
|
x: "50%",
|
|
712
974
|
y: "50%",
|
|
713
975
|
textAnchor: "middle",
|
|
@@ -718,57 +980,57 @@ var Emoji = ({ text, className }) => {
|
|
|
718
980
|
};
|
|
719
981
|
var Centered = (props) => {
|
|
720
982
|
const { children } = props;
|
|
721
|
-
return /* @__PURE__ */
|
|
983
|
+
return /* @__PURE__ */ React16.createElement("div", {
|
|
722
984
|
role: "none",
|
|
723
985
|
className: "absolute inset-0 flex items-center justify-center"
|
|
724
986
|
}, children);
|
|
725
987
|
};
|
|
726
988
|
|
|
727
989
|
// packages/sdk/shell/src/components/Panel/Heading.tsx
|
|
728
|
-
import
|
|
729
|
-
import { descriptionText as descriptionText6, mx as
|
|
990
|
+
import React17, { forwardRef as forwardRef5 } from "react";
|
|
991
|
+
import { descriptionText as descriptionText6, mx as mx14 } from "@dxos/react-ui-theme";
|
|
730
992
|
var Heading = /* @__PURE__ */ forwardRef5(({ titleId, title, titleSrOnly, children, corner }, forwardedRef) => {
|
|
731
|
-
return /* @__PURE__ */
|
|
993
|
+
return /* @__PURE__ */ React17.createElement("div", {
|
|
732
994
|
role: "none",
|
|
733
995
|
className: "pbe-2 relative",
|
|
734
996
|
ref: forwardedRef
|
|
735
|
-
}, corner, /* @__PURE__ */
|
|
997
|
+
}, corner, /* @__PURE__ */ React17.createElement("h1", {
|
|
736
998
|
...!titleSrOnly && {
|
|
737
999
|
id: titleId
|
|
738
1000
|
},
|
|
739
|
-
className:
|
|
740
|
-
}, title), titleSrOnly && /* @__PURE__ */
|
|
1001
|
+
className: mx14(descriptionText6, "text-center mlb-2", titleSrOnly && "invisible")
|
|
1002
|
+
}, title), titleSrOnly && /* @__PURE__ */ React17.createElement("span", {
|
|
741
1003
|
id: titleId
|
|
742
1004
|
}, title), children);
|
|
743
1005
|
});
|
|
744
1006
|
|
|
745
1007
|
// packages/sdk/shell/src/components/Panel/Label.tsx
|
|
746
|
-
import
|
|
747
|
-
import { descriptionText as descriptionText7, mx as
|
|
1008
|
+
import React18 from "react";
|
|
1009
|
+
import { descriptionText as descriptionText7, mx as mx15 } from "@dxos/react-ui-theme";
|
|
748
1010
|
var Label = (props) => {
|
|
749
1011
|
const { children } = props;
|
|
750
|
-
return /* @__PURE__ */
|
|
751
|
-
className:
|
|
1012
|
+
return /* @__PURE__ */ React18.createElement("span", {
|
|
1013
|
+
className: mx15(descriptionText7, "text-center mli-6 whitespace-normal")
|
|
752
1014
|
}, children);
|
|
753
1015
|
};
|
|
754
1016
|
|
|
755
1017
|
// packages/sdk/shell/src/components/Panel/Input.tsx
|
|
756
|
-
import
|
|
1018
|
+
import React19 from "react";
|
|
757
1019
|
import { Input as UiInput } from "@dxos/react-ui";
|
|
758
1020
|
var Input = ({ validationMessage, label, ...props }) => {
|
|
759
|
-
return /* @__PURE__ */
|
|
1021
|
+
return /* @__PURE__ */ React19.createElement(UiInput.Root, null, /* @__PURE__ */ React19.createElement(UiInput.Label, null, label), /* @__PURE__ */ React19.createElement(UiInput.TextInput, {
|
|
760
1022
|
...props,
|
|
761
1023
|
classNames: "plb-3 mbs-2 text-center"
|
|
762
|
-
}), /* @__PURE__ */
|
|
1024
|
+
}), /* @__PURE__ */ React19.createElement(UiInput.DescriptionAndValidation, null, validationMessage && /* @__PURE__ */ React19.createElement(UiInput.Validation, null, validationMessage)));
|
|
763
1025
|
};
|
|
764
1026
|
|
|
765
1027
|
// packages/sdk/shell/src/components/Panel/StepHeading.tsx
|
|
766
|
-
import
|
|
767
|
-
import { mx as
|
|
1028
|
+
import React20, { forwardRef as forwardRef6 } from "react";
|
|
1029
|
+
import { mx as mx16 } from "@dxos/react-ui-theme";
|
|
768
1030
|
var StepHeading = /* @__PURE__ */ forwardRef6(({ children, className, ...props }, forwardedRef) => {
|
|
769
|
-
return /* @__PURE__ */
|
|
1031
|
+
return /* @__PURE__ */ React20.createElement("h2", {
|
|
770
1032
|
...props,
|
|
771
|
-
className:
|
|
1033
|
+
className: mx16("font-normal text-sm mbe-4 mli-1 text-center", className),
|
|
772
1034
|
ref: forwardedRef
|
|
773
1035
|
}, children);
|
|
774
1036
|
});
|
|
@@ -776,31 +1038,31 @@ var StepHeading = /* @__PURE__ */ forwardRef6(({ children, className, ...props }
|
|
|
776
1038
|
// packages/sdk/shell/src/components/Viewport/Viewport.tsx
|
|
777
1039
|
import { useFocusFinders } from "@fluentui/react-tabster";
|
|
778
1040
|
import { createContextScope } from "@radix-ui/react-context";
|
|
779
|
-
import { useControllableState as
|
|
780
|
-
import
|
|
1041
|
+
import { useControllableState as useControllableState4 } from "@radix-ui/react-use-controllable-state";
|
|
1042
|
+
import React21, { forwardRef as forwardRef7, useEffect } from "react";
|
|
781
1043
|
import { useForwardedRef } from "@dxos/react-ui";
|
|
782
|
-
import { mx as
|
|
1044
|
+
import { mx as mx17 } from "@dxos/react-ui-theme";
|
|
783
1045
|
var VIEWPORT_NAME = "Viewport";
|
|
784
1046
|
var VIEWS_NAME = "ViewportViews";
|
|
785
1047
|
var VIEW_NAME = "ViewportView";
|
|
786
1048
|
var [createViewportContext, createViewportScope] = createContextScope(VIEWPORT_NAME, []);
|
|
787
1049
|
var [ViewportProvider, useViewportContext] = createViewportContext(VIEWPORT_NAME);
|
|
788
1050
|
var ViewportRoot = ({ __viewportScope, classNames, children, defaultActiveView, activeView: propsActiveView, focusManaged = false, onActiveViewChange, ...props }) => {
|
|
789
|
-
const [activeView = "never", setActiveView] =
|
|
1051
|
+
const [activeView = "never", setActiveView] = useControllableState4({
|
|
790
1052
|
prop: propsActiveView,
|
|
791
1053
|
defaultProp: defaultActiveView,
|
|
792
1054
|
onChange: onActiveViewChange
|
|
793
1055
|
});
|
|
794
|
-
return /* @__PURE__ */
|
|
1056
|
+
return /* @__PURE__ */ React21.createElement(ViewportProvider, {
|
|
795
1057
|
focusManaged,
|
|
796
1058
|
activeView,
|
|
797
1059
|
setActiveView,
|
|
798
1060
|
scope: __viewportScope
|
|
799
|
-
}, /* @__PURE__ */
|
|
1061
|
+
}, /* @__PURE__ */ React21.createElement("div", {
|
|
800
1062
|
role: "region",
|
|
801
1063
|
"aria-live": "polite",
|
|
802
1064
|
...props,
|
|
803
|
-
className:
|
|
1065
|
+
className: mx17("is-full overflow-hidden", classNames)
|
|
804
1066
|
}, children));
|
|
805
1067
|
};
|
|
806
1068
|
ViewportRoot.displayName = VIEWPORT_NAME;
|
|
@@ -808,11 +1070,11 @@ var ViewportViews = ({ classNames, children, ...props }) => {
|
|
|
808
1070
|
const size = {
|
|
809
1071
|
inlineSize: `${Math.ceil(children.length) * 100}%`
|
|
810
1072
|
};
|
|
811
|
-
return /* @__PURE__ */
|
|
1073
|
+
return /* @__PURE__ */ React21.createElement("div", {
|
|
812
1074
|
role: "none",
|
|
813
1075
|
style: size,
|
|
814
1076
|
...props,
|
|
815
|
-
className:
|
|
1077
|
+
className: mx17("flex", classNames)
|
|
816
1078
|
}, children);
|
|
817
1079
|
};
|
|
818
1080
|
ViewportViews.displayName = VIEWS_NAME;
|
|
@@ -830,12 +1092,12 @@ var ViewportView = /* @__PURE__ */ forwardRef7(({ __viewportScope, classNames, c
|
|
|
830
1092
|
ref.current,
|
|
831
1093
|
isActive
|
|
832
1094
|
]);
|
|
833
|
-
return /* @__PURE__ */
|
|
1095
|
+
return /* @__PURE__ */ React21.createElement("section", {
|
|
834
1096
|
...props,
|
|
835
1097
|
...!isActive && {
|
|
836
1098
|
"aria-hidden": true
|
|
837
1099
|
},
|
|
838
|
-
className:
|
|
1100
|
+
className: mx17("min-is-0 flex-1 flex flex-col", isActive ? "order-2" : "order-4 invisible", classNames),
|
|
839
1101
|
ref
|
|
840
1102
|
}, children);
|
|
841
1103
|
});
|
|
@@ -847,44 +1109,43 @@ var Viewport = {
|
|
|
847
1109
|
};
|
|
848
1110
|
|
|
849
1111
|
// packages/sdk/shell/src/components/SpaceListItem.tsx
|
|
850
|
-
import
|
|
1112
|
+
import React22, { forwardRef as forwardRef8 } from "react";
|
|
851
1113
|
import { Avatar as Avatar5, useId as useId4 } from "@dxos/react-ui";
|
|
852
|
-
import { mx as
|
|
1114
|
+
import { mx as mx18 } from "@dxos/react-ui-theme";
|
|
853
1115
|
import { humanize, keyToEmoji } from "@dxos/util";
|
|
854
1116
|
var SpaceListItem = /* @__PURE__ */ forwardRef8(({ space, onClick }, ref) => {
|
|
855
1117
|
const fallbackValue = keyToEmoji(space.key);
|
|
856
1118
|
const labelId = useId4("identityListItem__label");
|
|
857
1119
|
const displayName = space.properties.name ?? humanize(space.key.toHex());
|
|
858
|
-
return /* @__PURE__ */
|
|
859
|
-
className:
|
|
1120
|
+
return /* @__PURE__ */ React22.createElement("li", {
|
|
1121
|
+
className: mx18("flex gap-2 items-center mbe-2", onClick && "cursor-pointer"),
|
|
860
1122
|
onClick: () => onClick?.(),
|
|
861
1123
|
ref,
|
|
862
1124
|
"data-testid": "space-list-item"
|
|
863
|
-
}, /* @__PURE__ */
|
|
1125
|
+
}, /* @__PURE__ */ React22.createElement(Avatar5.Root, {
|
|
864
1126
|
labelId
|
|
865
|
-
}, /* @__PURE__ */
|
|
1127
|
+
}, /* @__PURE__ */ React22.createElement(Avatar5.Frame, null, /* @__PURE__ */ React22.createElement(Avatar5.Fallback, {
|
|
866
1128
|
text: fallbackValue
|
|
867
|
-
})), /* @__PURE__ */
|
|
1129
|
+
})), /* @__PURE__ */ React22.createElement(Avatar5.Label, {
|
|
868
1130
|
classNames: "text-sm truncate"
|
|
869
1131
|
}, displayName)));
|
|
870
1132
|
});
|
|
871
1133
|
|
|
872
1134
|
// packages/sdk/shell/src/composites/IdentityDialog/IdentityDialog.tsx
|
|
873
|
-
import
|
|
1135
|
+
import React40 from "react";
|
|
874
1136
|
import { Clipboard as Clipboard3, Dialog, useId as useId10 } from "@dxos/react-ui";
|
|
875
1137
|
|
|
876
1138
|
// packages/sdk/shell/src/panels/IdentityPanel/IdentityPanel.tsx
|
|
877
1139
|
import { Key, Plugs, PlugsConnected } from "@phosphor-icons/react";
|
|
878
|
-
import
|
|
1140
|
+
import React27, { useEffect as useEffect4, useMemo as useMemo3, useState as useState7 } from "react";
|
|
879
1141
|
import { generateName as generateName3 } from "@dxos/display-name";
|
|
880
1142
|
import { log as log7 } from "@dxos/log";
|
|
881
1143
|
import { useClient as useClient6 } from "@dxos/react-client";
|
|
882
1144
|
import { useIdentity, useDevices, useHaloInvitations as useHaloInvitations2 } from "@dxos/react-client/halo";
|
|
883
1145
|
import { useInvitationStatus as useInvitationStatus2 } from "@dxos/react-client/invitations";
|
|
884
1146
|
import { useNetworkStatus, ConnectionState as ConnectionState2 } from "@dxos/react-client/mesh";
|
|
885
|
-
import { Avatar as Avatar6, Input as Input2, Toolbar, Tooltip as
|
|
886
|
-
import {
|
|
887
|
-
import { getSize as getSize10 } from "@dxos/react-ui-theme";
|
|
1147
|
+
import { Avatar as Avatar6, Input as Input2, Toolbar as Toolbar3, Tooltip as Tooltip5, useClipboard as useClipboard2, useId as useId6, useTranslation as useTranslation13 } from "@dxos/react-ui";
|
|
1148
|
+
import { getSize as getSize12 } from "@dxos/react-ui-theme";
|
|
888
1149
|
import { hexToEmoji as hexToEmoji4, hexToHue as hexToHue2, keyToFallback as keyToFallback3 } from "@dxos/util";
|
|
889
1150
|
|
|
890
1151
|
// packages/sdk/shell/src/panels/IdentityPanel/identityMachine.ts
|
|
@@ -1000,7 +1261,7 @@ var useIdentityMachine = (client, options) => {
|
|
|
1000
1261
|
};
|
|
1001
1262
|
|
|
1002
1263
|
// packages/sdk/shell/src/panels/IdentityPanel/steps/IdentityActionChooser.tsx
|
|
1003
|
-
import
|
|
1264
|
+
import React23 from "react";
|
|
1004
1265
|
import { log as log2 } from "@dxos/log";
|
|
1005
1266
|
import { useClient as useClient2 } from "@dxos/react-client";
|
|
1006
1267
|
import { useHaloInvitations, DeviceType as DeviceType2 } from "@dxos/react-client/halo";
|
|
@@ -1036,7 +1297,7 @@ var IdentityActionChooser = (props) => {
|
|
|
1036
1297
|
});
|
|
1037
1298
|
};
|
|
1038
1299
|
const isProduction = client.config.values.runtime?.app?.env?.DX_ENVIRONMENT === "production";
|
|
1039
|
-
return /* @__PURE__ */
|
|
1300
|
+
return /* @__PURE__ */ React23.createElement(IdentityActionChooserImpl, {
|
|
1040
1301
|
...props,
|
|
1041
1302
|
onClickAdd: createInvitation,
|
|
1042
1303
|
onClickJoinExisting: () => send?.({
|
|
@@ -1052,10 +1313,10 @@ var IdentityActionChooser = (props) => {
|
|
|
1052
1313
|
};
|
|
1053
1314
|
var IdentityActionChooserImpl = ({ devices, connectionState, agentHostingEnabled, onClickAdd, onClickJoinExisting, onClickRecover, onClickReset, ...agentProps }) => {
|
|
1054
1315
|
const edgeDeviceAvailable = devices.find((device) => device.profile?.type === DeviceType2.AGENT_MANAGED && device.profile?.os?.toUpperCase() === "EDGE");
|
|
1055
|
-
return /* @__PURE__ */
|
|
1316
|
+
return /* @__PURE__ */ React23.createElement("div", {
|
|
1056
1317
|
role: "none",
|
|
1057
1318
|
className: "bs-40 grow overflow-y-auto"
|
|
1058
|
-
}, /* @__PURE__ */
|
|
1319
|
+
}, /* @__PURE__ */ React23.createElement(DeviceList, {
|
|
1059
1320
|
devices,
|
|
1060
1321
|
connectionState,
|
|
1061
1322
|
onClickAdd,
|
|
@@ -1063,21 +1324,20 @@ var IdentityActionChooserImpl = ({ devices, connectionState, agentHostingEnabled
|
|
|
1063
1324
|
onClickRecover: agentProps.agentStatus === "created" ? onClickRecover : void 0,
|
|
1064
1325
|
onClickReset,
|
|
1065
1326
|
onAgentDestroy: agentProps.onAgentDestroy
|
|
1066
|
-
}), !edgeDeviceAvailable && agentHostingEnabled && /* @__PURE__ */
|
|
1327
|
+
}), !edgeDeviceAvailable && agentHostingEnabled && /* @__PURE__ */ React23.createElement(AgentConfig, agentProps));
|
|
1067
1328
|
};
|
|
1068
1329
|
|
|
1069
1330
|
// packages/sdk/shell/src/panels/IdentityPanel/steps/ProfileForm.tsx
|
|
1070
|
-
import
|
|
1331
|
+
import React24, { useState as useState3 } from "react";
|
|
1071
1332
|
import { log as log3 } from "@dxos/log";
|
|
1072
|
-
import { useClipboard, useTranslation as
|
|
1073
|
-
import { EmojiPickerBlock, HuePickerBlock } from "@dxos/react-ui-pickers";
|
|
1333
|
+
import { useClipboard, useTranslation as useTranslation10 } from "@dxos/react-ui";
|
|
1074
1334
|
import { hexToEmoji as hexToEmoji2, hexToHue } from "@dxos/util";
|
|
1075
1335
|
|
|
1076
1336
|
// packages/sdk/shell/src/panels/IdentityPanel/useAgentHandlers.ts
|
|
1077
1337
|
import { useClient as useClient5 } from "@dxos/react-client";
|
|
1078
1338
|
|
|
1079
1339
|
// packages/sdk/shell/src/panels/IdentityPanel/useEdgeAgentsHandlers.ts
|
|
1080
|
-
import { useEffect as useEffect2, useState as
|
|
1340
|
+
import { useEffect as useEffect2, useState as useState4 } from "react";
|
|
1081
1341
|
import { invariant } from "@dxos/invariant";
|
|
1082
1342
|
import { log as log4 } from "@dxos/log";
|
|
1083
1343
|
import { QueryAgentStatusResponse } from "@dxos/protocols/proto/dxos/client/services";
|
|
@@ -1085,9 +1345,9 @@ import { EdgeReplicationSetting } from "@dxos/protocols/proto/dxos/echo/metadata
|
|
|
1085
1345
|
import { useClient as useClient3 } from "@dxos/react-client";
|
|
1086
1346
|
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/IdentityPanel/useEdgeAgentsHandlers.ts";
|
|
1087
1347
|
var useEdgeAgentHandlers = ({ identity }) => {
|
|
1088
|
-
const [validationMessage, setValidationMessage] =
|
|
1089
|
-
const [lastReceivedStatus, setLastReceivedStatus] =
|
|
1090
|
-
const [agentStatus, setAgentStatus] =
|
|
1348
|
+
const [validationMessage, setValidationMessage] = useState4("");
|
|
1349
|
+
const [lastReceivedStatus, setLastReceivedStatus] = useState4(QueryAgentStatusResponse.AgentStatus.UNKNOWN);
|
|
1350
|
+
const [agentStatus, setAgentStatus] = useState4("getting");
|
|
1091
1351
|
const client = useClient3();
|
|
1092
1352
|
const agentHostingEnabled = Boolean(client.config.values.runtime?.client?.edgeFeatures?.agents);
|
|
1093
1353
|
const handleStatus = (status) => {
|
|
@@ -1173,15 +1433,15 @@ var useEdgeAgentHandlers = ({ identity }) => {
|
|
|
1173
1433
|
};
|
|
1174
1434
|
|
|
1175
1435
|
// packages/sdk/shell/src/panels/IdentityPanel/useKubeAgentHandlers.ts
|
|
1176
|
-
import { useCallback as useCallback3, useEffect as useEffect3, useState as
|
|
1436
|
+
import { useCallback as useCallback3, useEffect as useEffect3, useState as useState5 } from "react";
|
|
1177
1437
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
1178
1438
|
import { log as log5 } from "@dxos/log";
|
|
1179
1439
|
import { useClient as useClient4, useAgentHostingClient } from "@dxos/react-client";
|
|
1180
1440
|
import { Invitation as Invitation3, InvitationEncoder as InvitationEncoder2 } from "@dxos/react-client/invitations";
|
|
1181
1441
|
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/IdentityPanel/useKubeAgentHandlers.ts";
|
|
1182
1442
|
var useKubeAgentHandlers = ({ invitations, identity }) => {
|
|
1183
|
-
const [validationMessage, setValidationMessage] =
|
|
1184
|
-
const [agentStatus, setAgentStatus] =
|
|
1443
|
+
const [validationMessage, setValidationMessage] = useState5("");
|
|
1444
|
+
const [agentStatus, setAgentStatus] = useState5("getting");
|
|
1185
1445
|
const agentHostingProviderClient = useAgentHostingClient();
|
|
1186
1446
|
const client = useClient4();
|
|
1187
1447
|
const updateAgentStatus = async () => {
|
|
@@ -1310,11 +1570,11 @@ var useAgentHandlers = (params) => {
|
|
|
1310
1570
|
};
|
|
1311
1571
|
|
|
1312
1572
|
// packages/sdk/shell/src/steps/InvitationManager.tsx
|
|
1313
|
-
import { Check as
|
|
1314
|
-
import
|
|
1573
|
+
import { Check as Check3, X as X3 } from "@phosphor-icons/react";
|
|
1574
|
+
import React25, { useMemo as useMemo2 } from "react";
|
|
1315
1575
|
import { QR } from "react-qr-rounded";
|
|
1316
|
-
import { Clipboard as Clipboard2, useId as useId5, useTranslation as
|
|
1317
|
-
import { descriptionText as descriptionText8, getSize as
|
|
1576
|
+
import { Clipboard as Clipboard2, useId as useId5, useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
1577
|
+
import { descriptionText as descriptionText8, getSize as getSize10, mx as mx19 } from "@dxos/react-ui-theme";
|
|
1318
1578
|
import { hexToEmoji as hexToEmoji3 } from "@dxos/util";
|
|
1319
1579
|
|
|
1320
1580
|
// packages/sdk/shell/src/util/invitationStatusValue.ts
|
|
@@ -1360,13 +1620,13 @@ var invitationStatusValue = /* @__PURE__ */ new Map([
|
|
|
1360
1620
|
|
|
1361
1621
|
// packages/sdk/shell/src/steps/InvitationManager.tsx
|
|
1362
1622
|
var InvitationManagerView = ({ children, ...props }) => {
|
|
1363
|
-
return /* @__PURE__ */
|
|
1623
|
+
return /* @__PURE__ */ React25.createElement(Viewport.View, {
|
|
1364
1624
|
...props,
|
|
1365
1625
|
classNames: "grow flex flex-col justify-around items-center"
|
|
1366
1626
|
}, children);
|
|
1367
1627
|
};
|
|
1368
1628
|
var InvitationManager = ({ invitationUrl, active, send, status, multiUse, authCode, id = "0" }) => {
|
|
1369
|
-
const { t } =
|
|
1629
|
+
const { t } = useTranslation11("os");
|
|
1370
1630
|
const qrLabel = useId5("invitation-manager__qr-code");
|
|
1371
1631
|
const statusValue = multiUse ? 0 : invitationStatusValue.get(status) ?? 0;
|
|
1372
1632
|
const showAuthCode = statusValue === 3;
|
|
@@ -1387,50 +1647,50 @@ var InvitationManager = ({ invitationUrl, active, send, status, multiUse, authCo
|
|
|
1387
1647
|
}, [
|
|
1388
1648
|
statusValue
|
|
1389
1649
|
]);
|
|
1390
|
-
return /* @__PURE__ */
|
|
1650
|
+
return /* @__PURE__ */ React25.createElement(React25.Fragment, null, /* @__PURE__ */ React25.createElement(Viewport.Root, {
|
|
1391
1651
|
activeView,
|
|
1392
1652
|
classNames: "grow plb-1"
|
|
1393
|
-
}, /* @__PURE__ */
|
|
1653
|
+
}, /* @__PURE__ */ React25.createElement(Viewport.Views, null, /* @__PURE__ */ React25.createElement(InvitationManagerView, {
|
|
1394
1654
|
id: "showing qr",
|
|
1395
1655
|
emoji
|
|
1396
|
-
}, /* @__PURE__ */
|
|
1656
|
+
}, /* @__PURE__ */ React25.createElement("p", {
|
|
1397
1657
|
className: "text-sm mlb-1 font-normal text-center"
|
|
1398
|
-
}, t(multiUse ? "invite many qr label" : "invite one qr label")), /* @__PURE__ */
|
|
1658
|
+
}, t(multiUse ? "invite many qr label" : "invite one qr label")), /* @__PURE__ */ React25.createElement("div", {
|
|
1399
1659
|
role: "none",
|
|
1400
|
-
className:
|
|
1401
|
-
}, /* @__PURE__ */
|
|
1660
|
+
className: mx19(descriptionText8, "is-full max-is-[14rem] relative")
|
|
1661
|
+
}, /* @__PURE__ */ React25.createElement(QR, {
|
|
1402
1662
|
rounding: 100,
|
|
1403
1663
|
backgroundColor: "transparent",
|
|
1404
1664
|
color: "currentColor",
|
|
1405
|
-
className:
|
|
1665
|
+
className: mx19("is-full bs-full p-2", showAuthCode && "invisible"),
|
|
1406
1666
|
"aria-labelledby": qrLabel,
|
|
1407
1667
|
errorCorrectionLevel: "Q",
|
|
1408
1668
|
cutout: true
|
|
1409
|
-
}, invitationUrl ?? "never"), /* @__PURE__ */
|
|
1669
|
+
}, invitationUrl ?? "never"), /* @__PURE__ */ React25.createElement(Centered, null, /* @__PURE__ */ React25.createElement(Emoji, {
|
|
1410
1670
|
text: emoji
|
|
1411
|
-
}))), /* @__PURE__ */
|
|
1671
|
+
}))), /* @__PURE__ */ React25.createElement("span", {
|
|
1412
1672
|
id: qrLabel,
|
|
1413
1673
|
className: "sr-only"
|
|
1414
|
-
}, t("qr label")), /* @__PURE__ */
|
|
1674
|
+
}, t("qr label")), /* @__PURE__ */ React25.createElement(Clipboard2.Button, {
|
|
1415
1675
|
variant: "ghost",
|
|
1416
1676
|
value: invitationUrl ?? "never"
|
|
1417
|
-
})), /* @__PURE__ */
|
|
1677
|
+
})), /* @__PURE__ */ React25.createElement(InvitationManagerView, {
|
|
1418
1678
|
id: "showing auth code"
|
|
1419
|
-
}, /* @__PURE__ */
|
|
1679
|
+
}, /* @__PURE__ */ React25.createElement(Label, null, t("auth code message")), /* @__PURE__ */ React25.createElement(AuthCode, {
|
|
1420
1680
|
code: authCode,
|
|
1421
1681
|
large: true,
|
|
1422
1682
|
classNames: "text-black dark:text-white"
|
|
1423
|
-
}), /* @__PURE__ */
|
|
1683
|
+
}), /* @__PURE__ */ React25.createElement(Label, null, t("auth other device emoji message")), emoji && /* @__PURE__ */ React25.createElement(Emoji, {
|
|
1424
1684
|
text: emoji
|
|
1425
|
-
})), /* @__PURE__ */
|
|
1685
|
+
})), /* @__PURE__ */ React25.createElement(InvitationManagerView, {
|
|
1426
1686
|
id: "showing final"
|
|
1427
|
-
}, statusValue > 0 ? /* @__PURE__ */
|
|
1428
|
-
className:
|
|
1429
|
-
}) : /* @__PURE__ */
|
|
1430
|
-
className:
|
|
1431
|
-
})))), /* @__PURE__ */
|
|
1687
|
+
}, statusValue > 0 ? /* @__PURE__ */ React25.createElement(Check3, {
|
|
1688
|
+
className: mx19("m-1.5", getSize10(6))
|
|
1689
|
+
}) : /* @__PURE__ */ React25.createElement(X3, {
|
|
1690
|
+
className: mx19("m-1.5", getSize10(6))
|
|
1691
|
+
})))), /* @__PURE__ */ React25.createElement(Actions, {
|
|
1432
1692
|
classNames: "mbs-4"
|
|
1433
|
-
}, /* @__PURE__ */
|
|
1693
|
+
}, /* @__PURE__ */ React25.createElement(Action, {
|
|
1434
1694
|
disabled: !active,
|
|
1435
1695
|
onClick: () => send?.({
|
|
1436
1696
|
type: "deselectInvitation"
|
|
@@ -1440,15 +1700,15 @@ var InvitationManager = ({ invitationUrl, active, send, status, multiUse, authCo
|
|
|
1440
1700
|
|
|
1441
1701
|
// packages/sdk/shell/src/steps/ConfirmReset.tsx
|
|
1442
1702
|
import { Warning } from "@phosphor-icons/react";
|
|
1443
|
-
import
|
|
1703
|
+
import React26, { useState as useState6 } from "react";
|
|
1444
1704
|
import { log as log6 } from "@dxos/log";
|
|
1445
|
-
import { Message, useTranslation as
|
|
1446
|
-
import { getSize as
|
|
1705
|
+
import { Message, useTranslation as useTranslation12 } from "@dxos/react-ui";
|
|
1706
|
+
import { getSize as getSize11, mx as mx20 } from "@dxos/react-ui-theme";
|
|
1447
1707
|
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/steps/ConfirmReset.tsx";
|
|
1448
1708
|
var ConfirmReset = ({ active, onCancel, onConfirm, mode }) => {
|
|
1449
|
-
const { t } =
|
|
1450
|
-
const [validationMessage, setValidationMessage] =
|
|
1451
|
-
const [pending, setPending] =
|
|
1709
|
+
const { t } = useTranslation12("os");
|
|
1710
|
+
const [validationMessage, setValidationMessage] = useState6("");
|
|
1711
|
+
const [pending, setPending] = useState6(false);
|
|
1452
1712
|
const processReset = async () => {
|
|
1453
1713
|
setPending(true);
|
|
1454
1714
|
return onConfirm?.().then(() => setPending(false), (error) => {
|
|
@@ -1462,7 +1722,7 @@ var ConfirmReset = ({ active, onCancel, onConfirm, mode }) => {
|
|
|
1462
1722
|
setPending(false);
|
|
1463
1723
|
});
|
|
1464
1724
|
};
|
|
1465
|
-
return /* @__PURE__ */
|
|
1725
|
+
return /* @__PURE__ */ React26.createElement(ConfirmResetImpl, {
|
|
1466
1726
|
disabled: !active,
|
|
1467
1727
|
pending,
|
|
1468
1728
|
validationMessage,
|
|
@@ -1472,20 +1732,20 @@ var ConfirmReset = ({ active, onCancel, onConfirm, mode }) => {
|
|
|
1472
1732
|
});
|
|
1473
1733
|
};
|
|
1474
1734
|
var ConfirmResetImpl = ({ disabled, pending, validationMessage, onConfirm, onCancel, mode }) => {
|
|
1475
|
-
const { t } =
|
|
1735
|
+
const { t } = useTranslation12("os");
|
|
1476
1736
|
const confirmationValue = t("confirmation value");
|
|
1477
|
-
const [inputValue, setInputValue] =
|
|
1737
|
+
const [inputValue, setInputValue] = useState6("");
|
|
1478
1738
|
const testIdAffix = mode === "join new identity" ? "join-new-identity" : mode === "recover" ? "recover" : "reset-storage";
|
|
1479
|
-
return /* @__PURE__ */
|
|
1739
|
+
return /* @__PURE__ */ React26.createElement(React26.Fragment, null, /* @__PURE__ */ React26.createElement("div", {
|
|
1480
1740
|
role: "none",
|
|
1481
1741
|
className: "grow flex flex-col gap-2 justify-center"
|
|
1482
|
-
}, /* @__PURE__ */
|
|
1742
|
+
}, /* @__PURE__ */ React26.createElement(Message.Root, {
|
|
1483
1743
|
valence: "error"
|
|
1484
|
-
}, /* @__PURE__ */
|
|
1485
|
-
className:
|
|
1486
|
-
}), t("sign out chooser title")), /* @__PURE__ */
|
|
1744
|
+
}, /* @__PURE__ */ React26.createElement(Message.Title, null, /* @__PURE__ */ React26.createElement(Warning, {
|
|
1745
|
+
className: mx20(getSize11(6), "inline mie-2")
|
|
1746
|
+
}), t("sign out chooser title")), /* @__PURE__ */ React26.createElement(Message.Body, null, t("sign out chooser message"))), /* @__PURE__ */ React26.createElement(Input, {
|
|
1487
1747
|
validationMessage,
|
|
1488
|
-
label: /* @__PURE__ */
|
|
1748
|
+
label: /* @__PURE__ */ React26.createElement(StepHeading, {
|
|
1489
1749
|
className: "text-start mlb-2"
|
|
1490
1750
|
}, t(mode === "join new identity" ? "join new identity input label" : mode === "recover" ? "recover reset input label" : "reset storage input label", {
|
|
1491
1751
|
confirmationValue
|
|
@@ -1496,11 +1756,11 @@ var ConfirmResetImpl = ({ disabled, pending, validationMessage, onConfirm, onCan
|
|
|
1496
1756
|
confirmationValue
|
|
1497
1757
|
}),
|
|
1498
1758
|
onChange: ({ target: { value } }) => setInputValue(value)
|
|
1499
|
-
})), /* @__PURE__ */
|
|
1759
|
+
})), /* @__PURE__ */ React26.createElement(Actions, null, onCancel && /* @__PURE__ */ React26.createElement(Action, {
|
|
1500
1760
|
disabled,
|
|
1501
1761
|
onClick: onCancel,
|
|
1502
1762
|
"data-testid": `${testIdAffix}.reset-identity-cancel`
|
|
1503
|
-
}, t("cancel label")), onConfirm && /* @__PURE__ */
|
|
1763
|
+
}, t("cancel label")), onConfirm && /* @__PURE__ */ React26.createElement(Action, {
|
|
1504
1764
|
variant: "destructive",
|
|
1505
1765
|
disabled: disabled || pending || inputValue !== confirmationValue,
|
|
1506
1766
|
onClick: onConfirm,
|
|
@@ -1515,10 +1775,10 @@ var getHueValue = (identity) => identity?.profile?.data?.hue || hexToHue2(identi
|
|
|
1515
1775
|
var getEmojiValue = (identity) => identity?.profile?.data?.emoji || hexToEmoji4(identity?.identityKey.toHex() ?? "0");
|
|
1516
1776
|
var IdentityHeading = ({ titleId, title, identity, onDone, onUpdateProfile, connectionState, onChangeConnectionState }) => {
|
|
1517
1777
|
const fallbackValue = keyToFallback3(identity.identityKey);
|
|
1518
|
-
const { t } =
|
|
1519
|
-
const [displayName, setDisplayName] =
|
|
1520
|
-
const [emoji, setEmojiDirectly] =
|
|
1521
|
-
const [hue, setHueDirectly] =
|
|
1778
|
+
const { t } = useTranslation13("os");
|
|
1779
|
+
const [displayName, setDisplayName] = useState7(identity.profile?.displayName ?? "");
|
|
1780
|
+
const [emoji, setEmojiDirectly] = useState7(getEmojiValue(identity));
|
|
1781
|
+
const [hue, setHueDirectly] = useState7(getHueValue(identity));
|
|
1522
1782
|
const { textValue, setTextValue } = useClipboard2();
|
|
1523
1783
|
const identityHex = identity.identityKey.toHex();
|
|
1524
1784
|
const publicKeyCopied = textValue === identityHex;
|
|
@@ -1543,29 +1803,29 @@ var IdentityHeading = ({ titleId, title, identity, onDone, onUpdateProfile, conn
|
|
|
1543
1803
|
});
|
|
1544
1804
|
};
|
|
1545
1805
|
const isConnected = connectionState === ConnectionState2.ONLINE;
|
|
1546
|
-
return /* @__PURE__ */
|
|
1806
|
+
return /* @__PURE__ */ React27.createElement(Heading, {
|
|
1547
1807
|
titleId,
|
|
1548
1808
|
title,
|
|
1549
|
-
corner: /* @__PURE__ */
|
|
1809
|
+
corner: /* @__PURE__ */ React27.createElement(CloseButton, {
|
|
1550
1810
|
onDone
|
|
1551
1811
|
})
|
|
1552
|
-
}, /* @__PURE__ */
|
|
1812
|
+
}, /* @__PURE__ */ React27.createElement(Avatar6.Root, {
|
|
1553
1813
|
size: 16,
|
|
1554
1814
|
variant: "circle",
|
|
1555
1815
|
status: isConnected ? "active" : "error",
|
|
1556
1816
|
hue: hue || fallbackValue.hue
|
|
1557
|
-
}, /* @__PURE__ */
|
|
1817
|
+
}, /* @__PURE__ */ React27.createElement(Toolbar3.Root, {
|
|
1558
1818
|
classNames: "flex justify-center"
|
|
1559
|
-
}, /* @__PURE__ */
|
|
1819
|
+
}, /* @__PURE__ */ React27.createElement(Avatar6.Frame, {
|
|
1560
1820
|
classNames: "relative z-[2] -mli-4 chromatic-ignore"
|
|
1561
|
-
}, /* @__PURE__ */
|
|
1821
|
+
}, /* @__PURE__ */ React27.createElement(Avatar6.Fallback, {
|
|
1562
1822
|
text: emoji || fallbackValue.emoji
|
|
1563
|
-
}))), /* @__PURE__ */
|
|
1823
|
+
}))), /* @__PURE__ */ React27.createElement(Avatar6.Label, {
|
|
1564
1824
|
classNames: "sr-only",
|
|
1565
1825
|
"data-testid": "identityHeading.displayName"
|
|
1566
|
-
}, identity.profile?.displayName ?? generateName3(identity.identityKey.toHex())), /* @__PURE__ */
|
|
1826
|
+
}, identity.profile?.displayName ?? generateName3(identity.identityKey.toHex())), /* @__PURE__ */ React27.createElement(Input2.Root, null, /* @__PURE__ */ React27.createElement(Input2.Label, {
|
|
1567
1827
|
srOnly: true
|
|
1568
|
-
}, t("display name input label")), /* @__PURE__ */
|
|
1828
|
+
}, t("display name input label")), /* @__PURE__ */ React27.createElement(Input2.TextInput, {
|
|
1569
1829
|
variant: "subdued",
|
|
1570
1830
|
"data-testid": "display-name-input",
|
|
1571
1831
|
placeholder: t("display name input placeholder"),
|
|
@@ -1576,49 +1836,49 @@ var IdentityHeading = ({ titleId, title, identity, onDone, onUpdateProfile, conn
|
|
|
1576
1836
|
...identity.profile,
|
|
1577
1837
|
displayName: value
|
|
1578
1838
|
})
|
|
1579
|
-
})), /* @__PURE__ */
|
|
1839
|
+
})), /* @__PURE__ */ React27.createElement(Toolbar3.Root, {
|
|
1580
1840
|
classNames: "flex justify-center items-center gap-1 pt-3"
|
|
1581
|
-
}, /* @__PURE__ */
|
|
1841
|
+
}, /* @__PURE__ */ React27.createElement(EmojiPickerToolbarButton, {
|
|
1582
1842
|
emoji,
|
|
1583
1843
|
onChangeEmoji: setEmoji,
|
|
1584
1844
|
classNames: "bs-[--rail-action]"
|
|
1585
|
-
}), /* @__PURE__ */
|
|
1845
|
+
}), /* @__PURE__ */ React27.createElement(HuePickerToolbarButton, {
|
|
1586
1846
|
hue,
|
|
1587
1847
|
onChangeHue: setHue,
|
|
1588
1848
|
classNames: "bs-[--rail-action]"
|
|
1589
|
-
}), /* @__PURE__ */
|
|
1849
|
+
}), /* @__PURE__ */ React27.createElement(Tooltip5.Root, null, /* @__PURE__ */ React27.createElement(Tooltip5.Trigger, {
|
|
1590
1850
|
asChild: true
|
|
1591
|
-
}, /* @__PURE__ */
|
|
1851
|
+
}, /* @__PURE__ */ React27.createElement(Toolbar3.Button, {
|
|
1592
1852
|
classNames: "bs-[--rail-action]",
|
|
1593
1853
|
"data-testid": "update-profile-form-copy-key",
|
|
1594
1854
|
onClick: () => setTextValue(identityHex)
|
|
1595
|
-
}, /* @__PURE__ */
|
|
1855
|
+
}, /* @__PURE__ */ React27.createElement("span", {
|
|
1596
1856
|
className: "sr-only"
|
|
1597
|
-
}, t(publicKeyCopied ? "copy success label" : "copy self public key label")), /* @__PURE__ */
|
|
1598
|
-
className:
|
|
1599
|
-
}))), /* @__PURE__ */
|
|
1857
|
+
}, t(publicKeyCopied ? "copy success label" : "copy self public key label")), /* @__PURE__ */ React27.createElement(Key, {
|
|
1858
|
+
className: getSize12(5)
|
|
1859
|
+
}))), /* @__PURE__ */ React27.createElement(Tooltip5.Portal, null, /* @__PURE__ */ React27.createElement(Tooltip5.Content, {
|
|
1600
1860
|
side: "bottom"
|
|
1601
|
-
}, t(publicKeyCopied ? "copy success label" : "copy self public key label"), /* @__PURE__ */
|
|
1861
|
+
}, t(publicKeyCopied ? "copy success label" : "copy self public key label"), /* @__PURE__ */ React27.createElement(Tooltip5.Arrow, null)))), /* @__PURE__ */ React27.createElement(Tooltip5.Root, null, /* @__PURE__ */ React27.createElement(Tooltip5.Trigger, {
|
|
1602
1862
|
asChild: true
|
|
1603
|
-
}, /* @__PURE__ */
|
|
1863
|
+
}, /* @__PURE__ */ React27.createElement(Toolbar3.Button, {
|
|
1604
1864
|
classNames: [
|
|
1605
1865
|
"bs-[--rail-action]",
|
|
1606
1866
|
!isConnected && "text-error-500"
|
|
1607
1867
|
],
|
|
1608
1868
|
onClick: () => onChangeConnectionState?.(isConnected ? ConnectionState2.OFFLINE : ConnectionState2.ONLINE)
|
|
1609
|
-
}, /* @__PURE__ */
|
|
1869
|
+
}, /* @__PURE__ */ React27.createElement("span", {
|
|
1610
1870
|
className: "sr-only"
|
|
1611
|
-
}, t(isConnected ? "disconnect label" : "connect label")), isConnected ? /* @__PURE__ */
|
|
1612
|
-
className:
|
|
1613
|
-
}) : /* @__PURE__ */
|
|
1614
|
-
className:
|
|
1615
|
-
}))), /* @__PURE__ */
|
|
1871
|
+
}, t(isConnected ? "disconnect label" : "connect label")), isConnected ? /* @__PURE__ */ React27.createElement(PlugsConnected, {
|
|
1872
|
+
className: getSize12(5)
|
|
1873
|
+
}) : /* @__PURE__ */ React27.createElement(Plugs, {
|
|
1874
|
+
className: getSize12(5)
|
|
1875
|
+
}))), /* @__PURE__ */ React27.createElement(Tooltip5.Portal, null, /* @__PURE__ */ React27.createElement(Tooltip5.Content, {
|
|
1616
1876
|
side: "bottom"
|
|
1617
|
-
}, t(isConnected ? "disconnect label" : "connect label"), /* @__PURE__ */
|
|
1877
|
+
}, t(isConnected ? "disconnect label" : "connect label"), /* @__PURE__ */ React27.createElement(Tooltip5.Arrow, null)))))));
|
|
1618
1878
|
};
|
|
1619
1879
|
var IdentityPanelImpl = (props) => {
|
|
1620
1880
|
const { identity, titleId, activeView, onUpdateProfile, onResetStorage, onRecover, onJoinNewIdentity, IdentityActionChooser: IdentityActionChooserComponent = IdentityActionChooser, InvitationManager: InvitationManagerComponent = InvitationManager, connectionState, onChangeConnectionState, onDone, ...rest } = props;
|
|
1621
|
-
const { t } =
|
|
1881
|
+
const { t } = useTranslation13("os");
|
|
1622
1882
|
const title = useMemo3(() => {
|
|
1623
1883
|
switch (activeView) {
|
|
1624
1884
|
case "device invitation manager":
|
|
@@ -1632,7 +1892,7 @@ var IdentityPanelImpl = (props) => {
|
|
|
1632
1892
|
]);
|
|
1633
1893
|
const onCancelReset = () => rest.send?.("unchooseAction");
|
|
1634
1894
|
const hideRecover = rest.agentStatus !== "created";
|
|
1635
|
-
return /* @__PURE__ */
|
|
1895
|
+
return /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement(IdentityHeading, {
|
|
1636
1896
|
identity,
|
|
1637
1897
|
titleId,
|
|
1638
1898
|
title,
|
|
@@ -1641,44 +1901,44 @@ var IdentityPanelImpl = (props) => {
|
|
|
1641
1901
|
onUpdateProfile,
|
|
1642
1902
|
connectionState,
|
|
1643
1903
|
onChangeConnectionState
|
|
1644
|
-
}), /* @__PURE__ */
|
|
1904
|
+
}), /* @__PURE__ */ React27.createElement(Viewport.Root, {
|
|
1645
1905
|
activeView
|
|
1646
|
-
}, /* @__PURE__ */
|
|
1906
|
+
}, /* @__PURE__ */ React27.createElement(Viewport.Views, null, /* @__PURE__ */ React27.createElement(Viewport.View, {
|
|
1647
1907
|
id: "identity action chooser",
|
|
1648
1908
|
classNames: viewStyles
|
|
1649
|
-
}, /* @__PURE__ */
|
|
1909
|
+
}, /* @__PURE__ */ React27.createElement(IdentityActionChooserComponent, {
|
|
1650
1910
|
active: activeView === "identity action chooser",
|
|
1651
1911
|
...rest,
|
|
1652
1912
|
connectionState
|
|
1653
|
-
})), /* @__PURE__ */
|
|
1913
|
+
})), /* @__PURE__ */ React27.createElement(Viewport.View, {
|
|
1654
1914
|
id: "device invitation manager",
|
|
1655
1915
|
classNames: viewStyles
|
|
1656
|
-
}, /* @__PURE__ */
|
|
1916
|
+
}, /* @__PURE__ */ React27.createElement(InvitationManagerComponent, {
|
|
1657
1917
|
active: activeView === "device invitation manager",
|
|
1658
1918
|
...rest,
|
|
1659
1919
|
invitationUrl: rest.createInvitationUrl(rest.invitationCode)
|
|
1660
|
-
})), /* @__PURE__ */
|
|
1920
|
+
})), /* @__PURE__ */ React27.createElement(Viewport.View, {
|
|
1661
1921
|
classNames: viewStyles,
|
|
1662
1922
|
id: "confirm join new identity"
|
|
1663
|
-
}, /* @__PURE__ */
|
|
1923
|
+
}, /* @__PURE__ */ React27.createElement(ConfirmReset, {
|
|
1664
1924
|
active: activeView === "confirm join new identity",
|
|
1665
1925
|
...rest,
|
|
1666
1926
|
mode: "join new identity",
|
|
1667
1927
|
onConfirm: onJoinNewIdentity,
|
|
1668
1928
|
onCancel: onCancelReset
|
|
1669
|
-
})), /* @__PURE__ */
|
|
1929
|
+
})), /* @__PURE__ */ React27.createElement(Viewport.View, {
|
|
1670
1930
|
classNames: viewStyles,
|
|
1671
1931
|
id: "confirm recover"
|
|
1672
|
-
}, /* @__PURE__ */
|
|
1932
|
+
}, /* @__PURE__ */ React27.createElement(ConfirmReset, {
|
|
1673
1933
|
active: activeView === "confirm recover",
|
|
1674
1934
|
...rest,
|
|
1675
1935
|
mode: "recover",
|
|
1676
1936
|
onConfirm: onRecover,
|
|
1677
1937
|
onCancel: onCancelReset
|
|
1678
|
-
})), /* @__PURE__ */
|
|
1938
|
+
})), /* @__PURE__ */ React27.createElement(Viewport.View, {
|
|
1679
1939
|
classNames: viewStyles,
|
|
1680
1940
|
id: "confirm reset storage"
|
|
1681
|
-
}, /* @__PURE__ */
|
|
1941
|
+
}, /* @__PURE__ */ React27.createElement(ConfirmReset, {
|
|
1682
1942
|
active: activeView === "confirm reset storage",
|
|
1683
1943
|
...rest,
|
|
1684
1944
|
mode: "reset storage",
|
|
@@ -1688,7 +1948,7 @@ var IdentityPanelImpl = (props) => {
|
|
|
1688
1948
|
};
|
|
1689
1949
|
var IdentityPanelWithInvitationImpl = ({ invitation, ...props }) => {
|
|
1690
1950
|
const invitationStatus = useInvitationStatus2(invitation);
|
|
1691
|
-
return /* @__PURE__ */
|
|
1951
|
+
return /* @__PURE__ */ React27.createElement(IdentityPanelImpl, {
|
|
1692
1952
|
...props,
|
|
1693
1953
|
...invitationStatus
|
|
1694
1954
|
});
|
|
@@ -1706,7 +1966,7 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
1706
1966
|
if (!identity) {
|
|
1707
1967
|
log7.error("IdentityPanel rendered with no active identity.", void 0, {
|
|
1708
1968
|
F: __dxlog_file6,
|
|
1709
|
-
L:
|
|
1969
|
+
L: 255,
|
|
1710
1970
|
S: void 0,
|
|
1711
1971
|
C: (f, a) => f(...a)
|
|
1712
1972
|
});
|
|
@@ -1723,7 +1983,7 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
1723
1983
|
const subscription = identityService.subscribe((state) => {
|
|
1724
1984
|
log7("[state]", state, {
|
|
1725
1985
|
F: __dxlog_file6,
|
|
1726
|
-
L:
|
|
1986
|
+
L: 268,
|
|
1727
1987
|
S: void 0,
|
|
1728
1988
|
C: (f, a) => f(...a)
|
|
1729
1989
|
});
|
|
@@ -1769,40 +2029,40 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
1769
2029
|
onChangeConnectionState: handleChangeConnectionState,
|
|
1770
2030
|
...agentProps
|
|
1771
2031
|
};
|
|
1772
|
-
return identityState.context.invitation ? /* @__PURE__ */
|
|
2032
|
+
return identityState.context.invitation ? /* @__PURE__ */ React27.createElement(IdentityPanelWithInvitationImpl, {
|
|
1773
2033
|
...implProps,
|
|
1774
2034
|
invitation: identityState.context.invitation
|
|
1775
|
-
}) : /* @__PURE__ */
|
|
2035
|
+
}) : /* @__PURE__ */ React27.createElement(IdentityPanelImpl, implProps);
|
|
1776
2036
|
};
|
|
1777
2037
|
|
|
1778
2038
|
// packages/sdk/shell/src/panels/JoinPanel/JoinPanel.tsx
|
|
1779
|
-
import
|
|
2039
|
+
import React36, { useCallback as useCallback6, useEffect as useEffect6, useMemo as useMemo4 } from "react";
|
|
1780
2040
|
import { log as log11 } from "@dxos/log";
|
|
1781
2041
|
import { useClient as useClient8, useMulticastObservable } from "@dxos/react-client";
|
|
1782
2042
|
import { useIdentity as useIdentity2 } from "@dxos/react-client/halo";
|
|
1783
|
-
import { useId as useId8, useThemeContext as
|
|
2043
|
+
import { useId as useId8, useThemeContext as useThemeContext5 } from "@dxos/react-ui";
|
|
1784
2044
|
|
|
1785
2045
|
// packages/sdk/shell/src/panels/JoinPanel/JoinHeading.tsx
|
|
1786
2046
|
import { X as X4 } from "@phosphor-icons/react";
|
|
1787
|
-
import
|
|
1788
|
-
import { Button as
|
|
1789
|
-
import { descriptionText as descriptionText9, getSize as
|
|
2047
|
+
import React28, { cloneElement, forwardRef as forwardRef9 } from "react";
|
|
2048
|
+
import { Button as Button9, useTranslation as useTranslation14 } from "@dxos/react-ui";
|
|
2049
|
+
import { descriptionText as descriptionText9, getSize as getSize13, mx as mx21 } from "@dxos/react-ui-theme";
|
|
1790
2050
|
var JoinHeading = /* @__PURE__ */ forwardRef9(({ mode, titleId, exitActionParent, onExit }, forwardedRef) => {
|
|
1791
|
-
const { t } =
|
|
1792
|
-
const exitButton = /* @__PURE__ */
|
|
2051
|
+
const { t } = useTranslation14("os");
|
|
2052
|
+
const exitButton = /* @__PURE__ */ React28.createElement(Button9, {
|
|
1793
2053
|
variant: "ghost",
|
|
1794
2054
|
...onExit && {
|
|
1795
2055
|
onClick: onExit
|
|
1796
2056
|
},
|
|
1797
|
-
classNames:
|
|
2057
|
+
classNames: mx21(descriptionText9, "plb-0 pli-2 absolute block-start-0 inline-end-0 z-[1]"),
|
|
1798
2058
|
"data-testid": "join-exit"
|
|
1799
|
-
}, /* @__PURE__ */
|
|
2059
|
+
}, /* @__PURE__ */ React28.createElement(X4, {
|
|
1800
2060
|
weight: "bold",
|
|
1801
|
-
className:
|
|
1802
|
-
}), /* @__PURE__ */
|
|
2061
|
+
className: getSize13(4)
|
|
2062
|
+
}), /* @__PURE__ */ React28.createElement("span", {
|
|
1803
2063
|
className: "sr-only"
|
|
1804
2064
|
}, t("exit label")));
|
|
1805
|
-
return /* @__PURE__ */
|
|
2065
|
+
return /* @__PURE__ */ React28.createElement(Heading, {
|
|
1806
2066
|
ref: forwardedRef,
|
|
1807
2067
|
titleId,
|
|
1808
2068
|
title: t(mode === "halo-only" ? "selecting identity heading" : "joining space heading"),
|
|
@@ -2420,17 +2680,17 @@ var useJoinMachine = (client, options) => {
|
|
|
2420
2680
|
|
|
2421
2681
|
// packages/sdk/shell/src/panels/JoinPanel/steps/AdditionMethodChooser.tsx
|
|
2422
2682
|
import { CaretRight as CaretRight2, Plus as Plus3, QrCode, Textbox } from "@phosphor-icons/react";
|
|
2423
|
-
import
|
|
2424
|
-
import { useTranslation as
|
|
2425
|
-
import { getSize as
|
|
2683
|
+
import React29 from "react";
|
|
2684
|
+
import { useTranslation as useTranslation15 } from "@dxos/react-ui";
|
|
2685
|
+
import { getSize as getSize14 } from "@dxos/react-ui-theme";
|
|
2426
2686
|
var AdditionMethodChooser = (viewStateProps) => {
|
|
2427
2687
|
const disabled = !viewStateProps.active;
|
|
2428
2688
|
const { send } = viewStateProps;
|
|
2429
|
-
const { t } =
|
|
2689
|
+
const { t } = useTranslation15("os");
|
|
2430
2690
|
const sharedButtonProps = {
|
|
2431
2691
|
disabled,
|
|
2432
|
-
after: /* @__PURE__ */
|
|
2433
|
-
className:
|
|
2692
|
+
after: /* @__PURE__ */ React29.createElement(CaretRight2, {
|
|
2693
|
+
className: getSize14(4),
|
|
2434
2694
|
weight: "bold"
|
|
2435
2695
|
}),
|
|
2436
2696
|
slots: {
|
|
@@ -2439,35 +2699,35 @@ var AdditionMethodChooser = (viewStateProps) => {
|
|
|
2439
2699
|
}
|
|
2440
2700
|
}
|
|
2441
2701
|
};
|
|
2442
|
-
return /* @__PURE__ */
|
|
2702
|
+
return /* @__PURE__ */ React29.createElement(React29.Fragment, null, /* @__PURE__ */ React29.createElement(StepHeading, null, t("addition method chooser title")), /* @__PURE__ */ React29.createElement("div", {
|
|
2443
2703
|
role: "none",
|
|
2444
2704
|
className: "flex flex-col gap-1 grow"
|
|
2445
|
-
}, /* @__PURE__ */
|
|
2705
|
+
}, /* @__PURE__ */ React29.createElement(CompoundButton, {
|
|
2446
2706
|
...sharedButtonProps,
|
|
2447
2707
|
description: t("create identity description"),
|
|
2448
|
-
before: /* @__PURE__ */
|
|
2449
|
-
className:
|
|
2708
|
+
before: /* @__PURE__ */ React29.createElement(Plus3, {
|
|
2709
|
+
className: getSize14(6)
|
|
2450
2710
|
}),
|
|
2451
2711
|
onClick: () => send({
|
|
2452
2712
|
type: "createIdentity"
|
|
2453
2713
|
}),
|
|
2454
2714
|
"data-autofocus": "choosingAuthMethod",
|
|
2455
2715
|
"data-testid": "identity-chooser.create-identity"
|
|
2456
|
-
}, t("create identity label")), /* @__PURE__ */
|
|
2716
|
+
}, t("create identity label")), /* @__PURE__ */ React29.createElement(CompoundButton, {
|
|
2457
2717
|
...sharedButtonProps,
|
|
2458
2718
|
description: t("join identity description"),
|
|
2459
|
-
before: /* @__PURE__ */
|
|
2460
|
-
className:
|
|
2719
|
+
before: /* @__PURE__ */ React29.createElement(QrCode, {
|
|
2720
|
+
className: getSize14(6)
|
|
2461
2721
|
}),
|
|
2462
2722
|
onClick: () => send({
|
|
2463
2723
|
type: "acceptHaloInvitation"
|
|
2464
2724
|
}),
|
|
2465
2725
|
"data-testid": "identity-chooser.join-identity"
|
|
2466
|
-
}, t("join identity label")), /* @__PURE__ */
|
|
2726
|
+
}, t("join identity label")), /* @__PURE__ */ React29.createElement(CompoundButton, {
|
|
2467
2727
|
...sharedButtonProps,
|
|
2468
2728
|
description: t("recover identity description"),
|
|
2469
|
-
before: /* @__PURE__ */
|
|
2470
|
-
className:
|
|
2729
|
+
before: /* @__PURE__ */ React29.createElement(Textbox, {
|
|
2730
|
+
className: getSize14(6)
|
|
2471
2731
|
}),
|
|
2472
2732
|
onClick: () => send({
|
|
2473
2733
|
type: "recoverIdentity"
|
|
@@ -2477,39 +2737,39 @@ var AdditionMethodChooser = (viewStateProps) => {
|
|
|
2477
2737
|
};
|
|
2478
2738
|
|
|
2479
2739
|
// packages/sdk/shell/src/panels/JoinPanel/steps/IdentityAdded.tsx
|
|
2480
|
-
import
|
|
2740
|
+
import React30, { cloneElement as cloneElement2 } from "react";
|
|
2481
2741
|
import { generateName as generateName4 } from "@dxos/display-name";
|
|
2482
|
-
import { Avatar as Avatar7, useId as useId7, useTranslation as
|
|
2483
|
-
import { mx as
|
|
2742
|
+
import { Avatar as Avatar7, useId as useId7, useTranslation as useTranslation16 } from "@dxos/react-ui";
|
|
2743
|
+
import { mx as mx22 } from "@dxos/react-ui-theme";
|
|
2484
2744
|
import { hexToFallback } from "@dxos/util";
|
|
2485
2745
|
var IdentityAdded = (props) => {
|
|
2486
2746
|
const { mode, addedIdentity, active, send, onDone, doneActionParent } = props;
|
|
2487
2747
|
const disabled = !active;
|
|
2488
|
-
const { t } =
|
|
2748
|
+
const { t } = useTranslation16("os");
|
|
2489
2749
|
const addedIdentityHex = addedIdentity?.identityKey.toHex() ?? "0";
|
|
2490
2750
|
const fallbackValue = hexToFallback(addedIdentityHex);
|
|
2491
2751
|
const labelId = useId7("identityListItem__label");
|
|
2492
2752
|
const displayName = addedIdentity?.profile?.displayName ?? (addedIdentity && generateName4(addedIdentityHex));
|
|
2493
|
-
const doneAction = /* @__PURE__ */
|
|
2753
|
+
const doneAction = /* @__PURE__ */ React30.createElement(Action, {
|
|
2494
2754
|
...onDone && {
|
|
2495
2755
|
onClick: () => onDone(null)
|
|
2496
2756
|
},
|
|
2497
2757
|
disabled,
|
|
2498
2758
|
"data-autofocus": "confirmingAddedIdentity",
|
|
2499
2759
|
"data-testid": "identity-added-done"
|
|
2500
|
-
}, /* @__PURE__ */
|
|
2501
|
-
return /* @__PURE__ */
|
|
2760
|
+
}, /* @__PURE__ */ React30.createElement("span", null, t("done label")));
|
|
2761
|
+
return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement(StepHeading, null, t("identity added label")), /* @__PURE__ */ React30.createElement("div", {
|
|
2502
2762
|
role: "none",
|
|
2503
2763
|
className: "grow flex flex-col items-center justify-center text-center gap-2"
|
|
2504
|
-
}, /* @__PURE__ */
|
|
2764
|
+
}, /* @__PURE__ */ React30.createElement(Avatar7.Root, {
|
|
2505
2765
|
status: "active",
|
|
2506
2766
|
labelId,
|
|
2507
2767
|
hue: addedIdentity?.profile?.data?.hue || fallbackValue.hue
|
|
2508
|
-
}, /* @__PURE__ */
|
|
2768
|
+
}, /* @__PURE__ */ React30.createElement(Avatar7.Frame, null, /* @__PURE__ */ React30.createElement(Avatar7.Fallback, {
|
|
2509
2769
|
text: addedIdentity?.profile?.data?.emoji || fallbackValue.emoji
|
|
2510
|
-
})), /* @__PURE__ */
|
|
2511
|
-
classNames:
|
|
2512
|
-
}, displayName))), /* @__PURE__ */
|
|
2770
|
+
})), /* @__PURE__ */ React30.createElement(Avatar7.Label, {
|
|
2771
|
+
classNames: mx22("text-lg truncate", !addedIdentity?.profile?.displayName && "font-mono")
|
|
2772
|
+
}, displayName))), /* @__PURE__ */ React30.createElement(Actions, null, mode === "halo-only" ? doneActionParent ? /* @__PURE__ */ cloneElement2(doneActionParent, {}, doneAction) : doneAction : /* @__PURE__ */ React30.createElement(Action, {
|
|
2513
2773
|
variant: "primary",
|
|
2514
2774
|
disabled: disabled || !addedIdentity,
|
|
2515
2775
|
onClick: () => addedIdentity && send({
|
|
@@ -2521,21 +2781,21 @@ var IdentityAdded = (props) => {
|
|
|
2521
2781
|
};
|
|
2522
2782
|
|
|
2523
2783
|
// packages/sdk/shell/src/panels/JoinPanel/steps/IdentityInput.tsx
|
|
2524
|
-
import
|
|
2784
|
+
import React31, { useCallback as useCallback5, useState as useState8 } from "react";
|
|
2525
2785
|
import { log as log9 } from "@dxos/log";
|
|
2526
2786
|
import { useClient as useClient7 } from "@dxos/react-client";
|
|
2527
|
-
import { useTranslation as
|
|
2787
|
+
import { useTranslation as useTranslation17 } from "@dxos/react-ui";
|
|
2528
2788
|
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/steps/IdentityInput.tsx";
|
|
2529
2789
|
var IdentityInput = (props) => {
|
|
2530
2790
|
const { send, method } = props;
|
|
2531
2791
|
const isRecover = method === "recover identity";
|
|
2532
2792
|
const client = useClient7();
|
|
2533
|
-
const { t } =
|
|
2534
|
-
const [validationMessage, setValidationMessage] =
|
|
2793
|
+
const { t } = useTranslation17("os");
|
|
2794
|
+
const [validationMessage, setValidationMessage] = useState8("");
|
|
2535
2795
|
const handleConfirm = async (value) => {
|
|
2536
2796
|
if (isRecover) {
|
|
2537
2797
|
await client.halo.recoverIdentity({
|
|
2538
|
-
|
|
2798
|
+
seedphrase: value
|
|
2539
2799
|
}).then((identity) => {
|
|
2540
2800
|
send?.({
|
|
2541
2801
|
type: "selectIdentity",
|
|
@@ -2569,7 +2829,7 @@ var IdentityInput = (props) => {
|
|
|
2569
2829
|
});
|
|
2570
2830
|
}
|
|
2571
2831
|
};
|
|
2572
|
-
return /* @__PURE__ */
|
|
2832
|
+
return /* @__PURE__ */ React31.createElement(IdentityInputImpl, {
|
|
2573
2833
|
...props,
|
|
2574
2834
|
onConfirm: handleConfirm,
|
|
2575
2835
|
validationMessage
|
|
@@ -2577,9 +2837,9 @@ var IdentityInput = (props) => {
|
|
|
2577
2837
|
};
|
|
2578
2838
|
var IdentityInputImpl = (props) => {
|
|
2579
2839
|
const { method, active, onConfirm, validationMessage } = props;
|
|
2580
|
-
const { t } =
|
|
2581
|
-
const [inputValue, setInputValue] =
|
|
2582
|
-
const [pending, setPending] =
|
|
2840
|
+
const { t } = useTranslation17("os");
|
|
2841
|
+
const [inputValue, setInputValue] = useState8("");
|
|
2842
|
+
const [pending, setPending] = useState8(false);
|
|
2583
2843
|
const disabled = !active || pending;
|
|
2584
2844
|
const isRecover = method === "recover identity";
|
|
2585
2845
|
const handleConfirm = useCallback5(async () => {
|
|
@@ -2590,17 +2850,17 @@ var IdentityInputImpl = (props) => {
|
|
|
2590
2850
|
onConfirm,
|
|
2591
2851
|
inputValue
|
|
2592
2852
|
]);
|
|
2593
|
-
return /* @__PURE__ */
|
|
2853
|
+
return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement("div", {
|
|
2594
2854
|
role: "none",
|
|
2595
2855
|
className: "grow flex flex-col justify-center"
|
|
2596
|
-
}, /* @__PURE__ */
|
|
2856
|
+
}, /* @__PURE__ */ React31.createElement(Input, {
|
|
2597
2857
|
validationMessage,
|
|
2598
|
-
label: /* @__PURE__ */
|
|
2858
|
+
label: /* @__PURE__ */ React31.createElement(StepHeading, null, t(isRecover ? "recover identity input label" : "new identity input label")),
|
|
2599
2859
|
disabled,
|
|
2600
2860
|
"data-testid": "identity-input",
|
|
2601
2861
|
placeholder: isRecover ? t("recovery code placeholder") : t("display name placeholder"),
|
|
2602
2862
|
onChange: ({ target: { value } }) => setInputValue(value)
|
|
2603
|
-
})), /* @__PURE__ */
|
|
2863
|
+
})), /* @__PURE__ */ React31.createElement(Actions, null, /* @__PURE__ */ React31.createElement(Action, {
|
|
2604
2864
|
variant: "primary",
|
|
2605
2865
|
disabled: disabled || inputValue.trim().length === 0,
|
|
2606
2866
|
onClick: handleConfirm,
|
|
@@ -2609,13 +2869,13 @@ var IdentityInputImpl = (props) => {
|
|
|
2609
2869
|
};
|
|
2610
2870
|
|
|
2611
2871
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationAccepted.tsx
|
|
2612
|
-
import
|
|
2613
|
-
import { useTranslation as
|
|
2872
|
+
import React32, { cloneElement as cloneElement3 } from "react";
|
|
2873
|
+
import { useTranslation as useTranslation18 } from "@dxos/react-ui";
|
|
2614
2874
|
|
|
2615
2875
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationInput.tsx
|
|
2616
|
-
import
|
|
2876
|
+
import React33, { useState as useState9, useEffect as useEffect5, cloneElement as cloneElement4 } from "react";
|
|
2617
2877
|
import { log as log10 } from "@dxos/log";
|
|
2618
|
-
import { useTranslation as
|
|
2878
|
+
import { useTranslation as useTranslation19 } from "@dxos/react-ui";
|
|
2619
2879
|
var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/steps/InvitationInput.tsx";
|
|
2620
2880
|
var invitationCodeFromUrl = (text) => {
|
|
2621
2881
|
try {
|
|
@@ -2635,8 +2895,8 @@ var invitationCodeFromUrl = (text) => {
|
|
|
2635
2895
|
var InvitationInput = (props) => {
|
|
2636
2896
|
const { Kind, active, send, unredeemedCode, onExit, exitActionParent, onDone, doneActionParent, succeededKeys } = props;
|
|
2637
2897
|
const disabled = !active;
|
|
2638
|
-
const { t } =
|
|
2639
|
-
const [inputValue, setInputValue] =
|
|
2898
|
+
const { t } = useTranslation19("os");
|
|
2899
|
+
const [inputValue, setInputValue] = useState9(unredeemedCode ?? "");
|
|
2640
2900
|
useEffect5(() => {
|
|
2641
2901
|
unredeemedCode && setInputValue(unredeemedCode ?? "");
|
|
2642
2902
|
}, [
|
|
@@ -2654,7 +2914,7 @@ var InvitationInput = (props) => {
|
|
|
2654
2914
|
}
|
|
2655
2915
|
});
|
|
2656
2916
|
};
|
|
2657
|
-
const exitAction = /* @__PURE__ */
|
|
2917
|
+
const exitAction = /* @__PURE__ */ React33.createElement(Action, {
|
|
2658
2918
|
variant: "ghost",
|
|
2659
2919
|
disabled,
|
|
2660
2920
|
...onExit ? {
|
|
@@ -2664,11 +2924,11 @@ var InvitationInput = (props) => {
|
|
|
2664
2924
|
},
|
|
2665
2925
|
"data-testid": "join-exit"
|
|
2666
2926
|
}, t("cancel label"));
|
|
2667
|
-
return /* @__PURE__ */
|
|
2927
|
+
return /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement("div", {
|
|
2668
2928
|
role: "none",
|
|
2669
2929
|
className: "grow flex flex-col justify-center"
|
|
2670
|
-
}, /* @__PURE__ */
|
|
2671
|
-
label: /* @__PURE__ */
|
|
2930
|
+
}, /* @__PURE__ */ React33.createElement(Input, {
|
|
2931
|
+
label: /* @__PURE__ */ React33.createElement(StepHeading, null, t("invitation input label")),
|
|
2672
2932
|
placeholder: t("invitation input placeholder"),
|
|
2673
2933
|
disabled,
|
|
2674
2934
|
value: inputValue,
|
|
@@ -2676,7 +2936,7 @@ var InvitationInput = (props) => {
|
|
|
2676
2936
|
"data-autofocus": `inputting${Kind}InvitationCode`,
|
|
2677
2937
|
"data-testid": `${Kind.toLowerCase()}-invitation-input`,
|
|
2678
2938
|
onKeyUp: ({ key }) => key === "Enter" && handleNext()
|
|
2679
|
-
})), /* @__PURE__ */
|
|
2939
|
+
})), /* @__PURE__ */ React33.createElement(Actions, null, Kind === "Halo" ? null : exitActionParent ? /* @__PURE__ */ cloneElement4(exitActionParent, {}, exitAction) : doneActionParent ? /* @__PURE__ */ cloneElement4(doneActionParent, {}, exitAction) : exitAction, /* @__PURE__ */ React33.createElement(Action, {
|
|
2680
2940
|
variant: "primary",
|
|
2681
2941
|
disabled: disabled || inputValue.trim().length === 0,
|
|
2682
2942
|
onClick: handleNext,
|
|
@@ -2685,8 +2945,8 @@ var InvitationInput = (props) => {
|
|
|
2685
2945
|
};
|
|
2686
2946
|
|
|
2687
2947
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationRescuer.tsx
|
|
2688
|
-
import
|
|
2689
|
-
import { useTranslation as
|
|
2948
|
+
import React34 from "react";
|
|
2949
|
+
import { useTranslation as useTranslation20 } from "@dxos/react-ui";
|
|
2690
2950
|
import { descriptionText as descriptionText10 } from "@dxos/react-ui-theme";
|
|
2691
2951
|
var InvitationActions = ({
|
|
2692
2952
|
// `invitationState` does report correct state, but here we evaluate whether `failReason` is a better source of truth
|
|
@@ -2698,14 +2958,14 @@ var InvitationActions = ({
|
|
|
2698
2958
|
Kind,
|
|
2699
2959
|
failReason
|
|
2700
2960
|
}) => {
|
|
2701
|
-
const { t } =
|
|
2961
|
+
const { t } = useTranslation20("os");
|
|
2702
2962
|
if (failReason) {
|
|
2703
|
-
return /* @__PURE__ */
|
|
2963
|
+
return /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement(StepHeading, {
|
|
2704
2964
|
className: descriptionText10
|
|
2705
|
-
}, t(failReason === "timeout" ? "timeout status label" : failReason === "cancelled" ? "cancelled status label" : "error status label")), /* @__PURE__ */
|
|
2965
|
+
}, t(failReason === "timeout" ? "timeout status label" : failReason === "cancelled" ? "cancelled status label" : "error status label")), /* @__PURE__ */ React34.createElement("div", {
|
|
2706
2966
|
role: "none",
|
|
2707
2967
|
className: "grow"
|
|
2708
|
-
}), /* @__PURE__ */
|
|
2968
|
+
}), /* @__PURE__ */ React34.createElement(Actions, null, /* @__PURE__ */ React34.createElement(Action, {
|
|
2709
2969
|
disabled: !active,
|
|
2710
2970
|
onClick: () => send({
|
|
2711
2971
|
type: `reset${Kind}Invitation`
|
|
@@ -2713,16 +2973,16 @@ var InvitationActions = ({
|
|
|
2713
2973
|
"data-testid": "invitation-rescuer-reset"
|
|
2714
2974
|
}, t("reset label"))));
|
|
2715
2975
|
} else {
|
|
2716
|
-
return /* @__PURE__ */
|
|
2976
|
+
return /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement(StepHeading, {
|
|
2717
2977
|
className: descriptionText10
|
|
2718
|
-
}, t("connecting status label")), /* @__PURE__ */
|
|
2978
|
+
}, t("connecting status label")), /* @__PURE__ */ React34.createElement("div", {
|
|
2719
2979
|
role: "none",
|
|
2720
2980
|
className: "grow"
|
|
2721
|
-
}), /* @__PURE__ */
|
|
2981
|
+
}), /* @__PURE__ */ React34.createElement(Actions, null, /* @__PURE__ */ React34.createElement(Action, {
|
|
2722
2982
|
disabled: true,
|
|
2723
2983
|
classNames: "order-2",
|
|
2724
2984
|
"data-testid": "next"
|
|
2725
|
-
}, t("next label")), /* @__PURE__ */
|
|
2985
|
+
}, t("next label")), /* @__PURE__ */ React34.createElement(Action, {
|
|
2726
2986
|
disabled: !active,
|
|
2727
2987
|
onClick: onInvitationCancel,
|
|
2728
2988
|
"data-testid": "invitation-rescuer-cancel"
|
|
@@ -2731,52 +2991,52 @@ var InvitationActions = ({
|
|
|
2731
2991
|
};
|
|
2732
2992
|
var InvitationRescuer = (props) => {
|
|
2733
2993
|
const { Kind, invitationState, active, send } = props;
|
|
2734
|
-
const { t } =
|
|
2735
|
-
return /* @__PURE__ */
|
|
2994
|
+
const { t } = useTranslation20("os");
|
|
2995
|
+
return /* @__PURE__ */ React34.createElement(React34.Fragment, null, typeof invitationState === "undefined" ? /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement("div", {
|
|
2736
2996
|
role: "none",
|
|
2737
2997
|
className: "grow flex flex-col justify-center"
|
|
2738
|
-
}, /* @__PURE__ */
|
|
2998
|
+
}, /* @__PURE__ */ React34.createElement(StepHeading, {
|
|
2739
2999
|
className: descriptionText10
|
|
2740
|
-
}, "There was a problem joining the space")), /* @__PURE__ */
|
|
3000
|
+
}, "There was a problem joining the space")), /* @__PURE__ */ React34.createElement(Actions, null, /* @__PURE__ */ React34.createElement(Action, {
|
|
2741
3001
|
disabled: !active,
|
|
2742
3002
|
"data-testid": "invitation-rescuer-blank-reset",
|
|
2743
3003
|
onClick: () => send({
|
|
2744
3004
|
type: `reset${Kind}Invitation`
|
|
2745
3005
|
})
|
|
2746
|
-
}, t("reset label")))) : /* @__PURE__ */
|
|
3006
|
+
}, t("reset label")))) : /* @__PURE__ */ React34.createElement(InvitationActions, props));
|
|
2747
3007
|
};
|
|
2748
3008
|
|
|
2749
3009
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationAuthenticator.tsx
|
|
2750
|
-
import
|
|
3010
|
+
import React35, { useState as useState10 } from "react";
|
|
2751
3011
|
import { Invitation as Invitation6 } from "@dxos/react-client/invitations";
|
|
2752
|
-
import { Input as Input3, useTranslation as
|
|
3012
|
+
import { Input as Input3, useTranslation as useTranslation21 } from "@dxos/react-ui";
|
|
2753
3013
|
import { descriptionText as descriptionText11 } from "@dxos/react-ui-theme";
|
|
2754
3014
|
import { hexToEmoji as hexToEmoji5 } from "@dxos/util";
|
|
2755
3015
|
var pinLength = 6;
|
|
2756
3016
|
var InvitationAuthenticator = ({ failed, Kind, authMethod, active, pending, invitationId, onInvitationAuthenticate, onInvitationCancel }) => {
|
|
2757
3017
|
const disabled = !active || pending;
|
|
2758
|
-
const { t } =
|
|
3018
|
+
const { t } = useTranslation21("os");
|
|
2759
3019
|
const invitationType = Kind.toLowerCase();
|
|
2760
|
-
const [authCode, setAuthCode] =
|
|
3020
|
+
const [authCode, setAuthCode] = useState10("");
|
|
2761
3021
|
const onChange = ({ target: { value } }) => {
|
|
2762
3022
|
setAuthCode(value);
|
|
2763
3023
|
if (value.length === pinLength) {
|
|
2764
3024
|
document.querySelector(`[data-autofocus-pinlength="${invitationType}"]`)?.focus();
|
|
2765
3025
|
}
|
|
2766
3026
|
};
|
|
2767
|
-
return /* @__PURE__ */
|
|
3027
|
+
return /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement("div", {
|
|
2768
3028
|
role: "none",
|
|
2769
3029
|
className: "grow flex flex-col justify-center gap-4"
|
|
2770
|
-
}, /* @__PURE__ */
|
|
3030
|
+
}, /* @__PURE__ */ React35.createElement(Input3.Root, failed && {
|
|
2771
3031
|
validationValence: "error"
|
|
2772
|
-
}, /* @__PURE__ */
|
|
3032
|
+
}, /* @__PURE__ */ React35.createElement(Input3.Label, {
|
|
2773
3033
|
asChild: true
|
|
2774
|
-
}, authMethod === Invitation6.AuthMethod.SHARED_SECRET ? /* @__PURE__ */
|
|
3034
|
+
}, authMethod === Invitation6.AuthMethod.SHARED_SECRET ? /* @__PURE__ */ React35.createElement(StepHeading, null, t("auth code input label")) : /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(StepHeading, {
|
|
2775
3035
|
className: descriptionText11
|
|
2776
|
-
}, t("authenticating label")), /* @__PURE__ */
|
|
3036
|
+
}, t("authenticating label")), /* @__PURE__ */ React35.createElement("div", {
|
|
2777
3037
|
role: "none",
|
|
2778
3038
|
className: "grow"
|
|
2779
|
-
}))), authMethod === Invitation6.AuthMethod.SHARED_SECRET && /* @__PURE__ */
|
|
3039
|
+
}))), authMethod === Invitation6.AuthMethod.SHARED_SECRET && /* @__PURE__ */ React35.createElement(Input3.PinInput, {
|
|
2780
3040
|
disabled,
|
|
2781
3041
|
length: pinLength,
|
|
2782
3042
|
onChange,
|
|
@@ -2787,18 +3047,18 @@ var InvitationAuthenticator = ({ failed, Kind, authMethod, active, pending, invi
|
|
|
2787
3047
|
"data-prevent-ios-autofocus": true,
|
|
2788
3048
|
"data-testid": `${invitationType}-auth-code-input`,
|
|
2789
3049
|
"data-1p-ignore": true
|
|
2790
|
-
}), failed && /* @__PURE__ */
|
|
3050
|
+
}), failed && /* @__PURE__ */ React35.createElement(Input3.DescriptionAndValidation, {
|
|
2791
3051
|
classNames: "text-center"
|
|
2792
|
-
}, /* @__PURE__ */
|
|
3052
|
+
}, /* @__PURE__ */ React35.createElement(Input3.Validation, null, t("failed to authenticate message")))), invitationId && authMethod === Invitation6.AuthMethod.SHARED_SECRET && /* @__PURE__ */ React35.createElement(React35.Fragment, null, /* @__PURE__ */ React35.createElement(Label, null, t("auth other device emoji message")), /* @__PURE__ */ React35.createElement("div", {
|
|
2793
3053
|
className: "flex justify-center"
|
|
2794
|
-
}, /* @__PURE__ */
|
|
3054
|
+
}, /* @__PURE__ */ React35.createElement(Emoji, {
|
|
2795
3055
|
text: hexToEmoji5(invitationId)
|
|
2796
|
-
})))), /* @__PURE__ */
|
|
3056
|
+
})))), /* @__PURE__ */ React35.createElement(Actions, null, /* @__PURE__ */ React35.createElement(Action, {
|
|
2797
3057
|
variant: "ghost",
|
|
2798
3058
|
disabled,
|
|
2799
3059
|
onClick: () => onInvitationCancel?.(),
|
|
2800
3060
|
"data-testid": `${invitationType}-invitation-authenticator-cancel`
|
|
2801
|
-
}, t("cancel label")), /* @__PURE__ */
|
|
3061
|
+
}, t("cancel label")), /* @__PURE__ */ React35.createElement(Action, {
|
|
2802
3062
|
variant: "primary",
|
|
2803
3063
|
disabled,
|
|
2804
3064
|
onClick: () => onInvitationAuthenticate?.(authCode),
|
|
@@ -2860,46 +3120,46 @@ var JoinPanelImpl = (props) => {
|
|
|
2860
3120
|
IdentityInput: IdentityInputComponent = IdentityInput,
|
|
2861
3121
|
ConfirmReset: ConfirmResetComponent = ConfirmReset
|
|
2862
3122
|
} = props;
|
|
2863
|
-
return /* @__PURE__ */
|
|
3123
|
+
return /* @__PURE__ */ React36.createElement(React36.Fragment, null, mode !== "halo-only" && /* @__PURE__ */ React36.createElement(JoinHeading, {
|
|
2864
3124
|
titleId,
|
|
2865
3125
|
mode,
|
|
2866
3126
|
onExit,
|
|
2867
3127
|
exitActionParent
|
|
2868
|
-
}), /* @__PURE__ */
|
|
3128
|
+
}), /* @__PURE__ */ React36.createElement(Viewport.Root, {
|
|
2869
3129
|
focusManaged: true,
|
|
2870
3130
|
activeView
|
|
2871
|
-
}, /* @__PURE__ */
|
|
3131
|
+
}, /* @__PURE__ */ React36.createElement(Viewport.Views, null, /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2872
3132
|
classNames: stepStyles,
|
|
2873
3133
|
id: "addition method chooser"
|
|
2874
|
-
}, /* @__PURE__ */
|
|
3134
|
+
}, /* @__PURE__ */ React36.createElement(AdditionMethodChooser, {
|
|
2875
3135
|
send,
|
|
2876
3136
|
active: activeView === "addition method chooser"
|
|
2877
|
-
})), /* @__PURE__ */
|
|
3137
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2878
3138
|
classNames: stepStyles,
|
|
2879
3139
|
id: "reset storage confirmation"
|
|
2880
|
-
}, /* @__PURE__ */
|
|
3140
|
+
}, /* @__PURE__ */ React36.createElement(ConfirmResetComponent, {
|
|
2881
3141
|
send,
|
|
2882
3142
|
active: activeView === "reset storage confirmation",
|
|
2883
3143
|
onCancel: onCancelResetStorage,
|
|
2884
3144
|
onConfirm: onConfirmResetStorage
|
|
2885
|
-
})), /* @__PURE__ */
|
|
3145
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2886
3146
|
classNames: stepStyles,
|
|
2887
3147
|
id: "create identity input"
|
|
2888
|
-
}, /* @__PURE__ */
|
|
3148
|
+
}, /* @__PURE__ */ React36.createElement(IdentityInputComponent, {
|
|
2889
3149
|
send,
|
|
2890
3150
|
method: "create identity",
|
|
2891
3151
|
active: activeView === "create identity input"
|
|
2892
|
-
})), /* @__PURE__ */
|
|
3152
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2893
3153
|
classNames: stepStyles,
|
|
2894
3154
|
id: "recover identity input"
|
|
2895
|
-
}, /* @__PURE__ */
|
|
3155
|
+
}, /* @__PURE__ */ React36.createElement(IdentityInputComponent, {
|
|
2896
3156
|
send,
|
|
2897
3157
|
method: "recover identity",
|
|
2898
3158
|
active: activeView === "recover identity input"
|
|
2899
|
-
})), /* @__PURE__ */
|
|
3159
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2900
3160
|
classNames: stepStyles,
|
|
2901
3161
|
id: "halo invitation input"
|
|
2902
|
-
}, /* @__PURE__ */
|
|
3162
|
+
}, /* @__PURE__ */ React36.createElement(InvitationInput, {
|
|
2903
3163
|
send,
|
|
2904
3164
|
Kind: "Halo",
|
|
2905
3165
|
active: activeView === "halo invitation input",
|
|
@@ -2909,20 +3169,20 @@ var JoinPanelImpl = (props) => {
|
|
|
2909
3169
|
...succeededKeys?.Halo && {
|
|
2910
3170
|
succeededKeys: succeededKeys.Halo
|
|
2911
3171
|
}
|
|
2912
|
-
})), /* @__PURE__ */
|
|
3172
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2913
3173
|
classNames: stepStyles,
|
|
2914
3174
|
id: "halo invitation rescuer"
|
|
2915
|
-
}, /* @__PURE__ */
|
|
3175
|
+
}, /* @__PURE__ */ React36.createElement(InvitationRescuer, {
|
|
2916
3176
|
send,
|
|
2917
3177
|
Kind: "Halo",
|
|
2918
3178
|
active: activeView === "halo invitation rescuer",
|
|
2919
3179
|
invitationState: invitationStates?.Halo,
|
|
2920
3180
|
onInvitationCancel: onHaloInvitationCancel,
|
|
2921
3181
|
failReason: failReasons?.Halo
|
|
2922
|
-
})), /* @__PURE__ */
|
|
3182
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2923
3183
|
classNames: stepStyles,
|
|
2924
3184
|
id: "halo invitation authenticator"
|
|
2925
|
-
}, /* @__PURE__ */
|
|
3185
|
+
}, /* @__PURE__ */ React36.createElement(InvitationAuthenticator, {
|
|
2926
3186
|
send,
|
|
2927
3187
|
Kind: "Halo",
|
|
2928
3188
|
invitationId: invitationIds?.Halo,
|
|
@@ -2933,19 +3193,19 @@ var JoinPanelImpl = (props) => {
|
|
|
2933
3193
|
...failed.has("Halo") && {
|
|
2934
3194
|
failed: true
|
|
2935
3195
|
}
|
|
2936
|
-
})), /* @__PURE__ */
|
|
3196
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2937
3197
|
classNames: stepStyles,
|
|
2938
3198
|
id: "identity added"
|
|
2939
|
-
}, /* @__PURE__ */
|
|
3199
|
+
}, /* @__PURE__ */ React36.createElement(IdentityAdded, {
|
|
2940
3200
|
send,
|
|
2941
3201
|
mode,
|
|
2942
3202
|
active: activeView === "identity added",
|
|
2943
3203
|
doneActionParent,
|
|
2944
3204
|
onDone: onHaloDone
|
|
2945
|
-
})), /* @__PURE__ */
|
|
3205
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2946
3206
|
classNames: stepStyles,
|
|
2947
3207
|
id: "space invitation input"
|
|
2948
|
-
}, /* @__PURE__ */
|
|
3208
|
+
}, /* @__PURE__ */ React36.createElement(InvitationInput, {
|
|
2949
3209
|
send,
|
|
2950
3210
|
Kind: "Space",
|
|
2951
3211
|
active: activeView === "space invitation input",
|
|
@@ -2957,20 +3217,20 @@ var JoinPanelImpl = (props) => {
|
|
|
2957
3217
|
},
|
|
2958
3218
|
onExit,
|
|
2959
3219
|
exitActionParent
|
|
2960
|
-
})), /* @__PURE__ */
|
|
3220
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2961
3221
|
classNames: stepStyles,
|
|
2962
3222
|
id: "space invitation rescuer"
|
|
2963
|
-
}, /* @__PURE__ */
|
|
3223
|
+
}, /* @__PURE__ */ React36.createElement(InvitationRescuer, {
|
|
2964
3224
|
send,
|
|
2965
3225
|
Kind: "Space",
|
|
2966
3226
|
active: activeView === "space invitation rescuer",
|
|
2967
3227
|
invitationState: invitationStates?.Space,
|
|
2968
3228
|
onInvitationCancel: onSpaceInvitationCancel,
|
|
2969
3229
|
failReason: failReasons?.Space
|
|
2970
|
-
})), /* @__PURE__ */
|
|
3230
|
+
})), /* @__PURE__ */ React36.createElement(Viewport.View, {
|
|
2971
3231
|
classNames: stepStyles,
|
|
2972
3232
|
id: "space invitation authenticator"
|
|
2973
|
-
}, /* @__PURE__ */
|
|
3233
|
+
}, /* @__PURE__ */ React36.createElement(InvitationAuthenticator, {
|
|
2974
3234
|
send,
|
|
2975
3235
|
Kind: "Space",
|
|
2976
3236
|
invitationId: invitationIds?.Space,
|
|
@@ -2986,7 +3246,7 @@ var JoinPanelImpl = (props) => {
|
|
|
2986
3246
|
var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition = "default", initialInvitationCode, exitActionParent, onExit, doneActionParent, onDone: propsOnDone, onCancelResetStorage }) => {
|
|
2987
3247
|
const client = useClient8();
|
|
2988
3248
|
const identity = useIdentity2();
|
|
2989
|
-
const { hasIosKeyboard } =
|
|
3249
|
+
const { hasIosKeyboard } = useThemeContext5();
|
|
2990
3250
|
const titleId = useId8("joinPanel__heading", propsTitleId);
|
|
2991
3251
|
const [joinState, joinSend, joinService] = useJoinMachine(client, {
|
|
2992
3252
|
context: {
|
|
@@ -3248,7 +3508,7 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition =
|
|
|
3248
3508
|
client,
|
|
3249
3509
|
joinSend
|
|
3250
3510
|
]);
|
|
3251
|
-
return /* @__PURE__ */
|
|
3511
|
+
return /* @__PURE__ */ React36.createElement(JoinPanelImpl, {
|
|
3252
3512
|
titleId,
|
|
3253
3513
|
mode,
|
|
3254
3514
|
send: joinSend,
|
|
@@ -3291,10 +3551,10 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialDisposition =
|
|
|
3291
3551
|
|
|
3292
3552
|
// packages/sdk/shell/src/panels/SpacePanel/SpacePanel.tsx
|
|
3293
3553
|
import { Planet } from "@phosphor-icons/react";
|
|
3294
|
-
import
|
|
3554
|
+
import React38, { useEffect as useEffect7, useMemo as useMemo5 } from "react";
|
|
3295
3555
|
import { log as log14 } from "@dxos/log";
|
|
3296
3556
|
import { useInvitationStatus as useInvitationStatus3 } from "@dxos/react-client/invitations";
|
|
3297
|
-
import { useId as useId9, useTranslation as
|
|
3557
|
+
import { useId as useId9, useTranslation as useTranslation23 } from "@dxos/react-ui";
|
|
3298
3558
|
|
|
3299
3559
|
// packages/sdk/shell/src/panels/SpacePanel/spaceMachine.ts
|
|
3300
3560
|
import { useMachine as useMachine3 } from "@xstate/react";
|
|
@@ -3360,13 +3620,13 @@ var useSpaceMachine = (options) => {
|
|
|
3360
3620
|
|
|
3361
3621
|
// packages/sdk/shell/src/panels/SpacePanel/steps/SpaceManager.tsx
|
|
3362
3622
|
import { Placeholder as Placeholder2, UserPlus, UsersThree } from "@phosphor-icons/react";
|
|
3363
|
-
import
|
|
3623
|
+
import React37, { useCallback as useCallback7, useState as useState11 } from "react";
|
|
3364
3624
|
import { log as log13 } from "@dxos/log";
|
|
3365
3625
|
import { useConfig } from "@dxos/react-client";
|
|
3366
3626
|
import { useSpaceInvitations as useSpaceInvitations2 } from "@dxos/react-client/echo";
|
|
3367
3627
|
import { Invitation as Invitation8, InvitationEncoder as InvitationEncoder4 } from "@dxos/react-client/invitations";
|
|
3368
|
-
import { ScrollArea, useTranslation as
|
|
3369
|
-
import { descriptionText as descriptionText12, mx as
|
|
3628
|
+
import { ScrollArea, useTranslation as useTranslation22 } from "@dxos/react-ui";
|
|
3629
|
+
import { descriptionText as descriptionText12, mx as mx23 } from "@dxos/react-ui-theme";
|
|
3370
3630
|
var __dxlog_file12 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/SpacePanel/steps/SpaceManager.tsx";
|
|
3371
3631
|
var activeActionKey = "dxos:react-shell/space-manager/active-action";
|
|
3372
3632
|
var handleInvitationEvent = (invitation, subscription) => {
|
|
@@ -3386,7 +3646,7 @@ var handleInvitationEvent = (invitation, subscription) => {
|
|
|
3386
3646
|
};
|
|
3387
3647
|
var SpaceManager = (props) => {
|
|
3388
3648
|
const { space, target } = props;
|
|
3389
|
-
const { t } =
|
|
3649
|
+
const { t } = useTranslation22("os");
|
|
3390
3650
|
const config = useConfig();
|
|
3391
3651
|
const invitations = useSpaceInvitations2(space?.key);
|
|
3392
3652
|
const inviteActions = {
|
|
@@ -3431,7 +3691,7 @@ var SpaceManager = (props) => {
|
|
|
3431
3691
|
])
|
|
3432
3692
|
}
|
|
3433
3693
|
};
|
|
3434
|
-
return /* @__PURE__ */
|
|
3694
|
+
return /* @__PURE__ */ React37.createElement(SpaceManagerImpl, {
|
|
3435
3695
|
...props,
|
|
3436
3696
|
invitations,
|
|
3437
3697
|
inviteActions
|
|
@@ -3440,7 +3700,7 @@ var SpaceManager = (props) => {
|
|
|
3440
3700
|
var headingFragment = "pis-3 pie-1 plb-1 mbe-1 font-medium";
|
|
3441
3701
|
var SpaceManagerImpl = (props) => {
|
|
3442
3702
|
const { active, space, createInvitationUrl, send, inviteActions: propsInviteActions, invitations, showInactiveInvitations, SpaceMemberList: SpaceMemberListComponent = SpaceMemberList, InvitationList: InvitationListComponent = InvitationList } = props;
|
|
3443
|
-
const { t } =
|
|
3703
|
+
const { t } = useTranslation22("os");
|
|
3444
3704
|
const inviteActions = propsInviteActions ?? {
|
|
3445
3705
|
noopInvite: {
|
|
3446
3706
|
label: t("create space invitation label"),
|
|
@@ -3450,7 +3710,7 @@ var SpaceManagerImpl = (props) => {
|
|
|
3450
3710
|
}
|
|
3451
3711
|
}
|
|
3452
3712
|
};
|
|
3453
|
-
const [activeAction, setInternalActiveAction] =
|
|
3713
|
+
const [activeAction, setInternalActiveAction] = useState11(localStorage.getItem(activeActionKey) ?? "inviteMany");
|
|
3454
3714
|
const setActiveAction = (nextAction) => {
|
|
3455
3715
|
setInternalActiveAction(nextAction);
|
|
3456
3716
|
localStorage.setItem(activeActionKey, nextAction);
|
|
@@ -3458,26 +3718,26 @@ var SpaceManagerImpl = (props) => {
|
|
|
3458
3718
|
const visibleInvitations = showInactiveInvitations ? invitations : invitations?.filter((invitation) => ![
|
|
3459
3719
|
Invitation8.State.CANCELLED
|
|
3460
3720
|
].includes(invitation.get().state));
|
|
3461
|
-
return /* @__PURE__ */
|
|
3721
|
+
return /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement(ScrollArea.Root, {
|
|
3462
3722
|
classNames: "grow shrink basis-28 -mli-2"
|
|
3463
|
-
}, /* @__PURE__ */
|
|
3723
|
+
}, /* @__PURE__ */ React37.createElement(ScrollArea.Viewport, {
|
|
3464
3724
|
classNames: "is-full pie-2"
|
|
3465
|
-
}, !!visibleInvitations?.length && /* @__PURE__ */
|
|
3466
|
-
className:
|
|
3467
|
-
}, t("invitation list heading")), /* @__PURE__ */
|
|
3725
|
+
}, !!visibleInvitations?.length && /* @__PURE__ */ React37.createElement(React37.Fragment, null, /* @__PURE__ */ React37.createElement("h3", {
|
|
3726
|
+
className: mx23(headingFragment, descriptionText12)
|
|
3727
|
+
}, t("invitation list heading")), /* @__PURE__ */ React37.createElement(InvitationListComponent, {
|
|
3468
3728
|
className: "mb-2",
|
|
3469
3729
|
send,
|
|
3470
3730
|
invitations: visibleInvitations ?? [],
|
|
3471
3731
|
onClickRemove: (invitation) => invitation.cancel(),
|
|
3472
3732
|
createInvitationUrl
|
|
3473
|
-
}), /* @__PURE__ */
|
|
3474
|
-
className:
|
|
3475
|
-
}, t("space member list heading"))), /* @__PURE__ */
|
|
3733
|
+
}), /* @__PURE__ */ React37.createElement("h3", {
|
|
3734
|
+
className: mx23(headingFragment, descriptionText12, "mbs-2")
|
|
3735
|
+
}, t("space member list heading"))), /* @__PURE__ */ React37.createElement(SpaceMemberListComponent, {
|
|
3476
3736
|
spaceKey: space.key,
|
|
3477
3737
|
includeSelf: true
|
|
3478
|
-
})), /* @__PURE__ */
|
|
3738
|
+
})), /* @__PURE__ */ React37.createElement(ScrollArea.Scrollbar, {
|
|
3479
3739
|
orientation: "vertical"
|
|
3480
|
-
}, /* @__PURE__ */
|
|
3740
|
+
}, /* @__PURE__ */ React37.createElement(ScrollArea.Thumb, null))), /* @__PURE__ */ React37.createElement(Actions, null, /* @__PURE__ */ React37.createElement(BifurcatedAction, {
|
|
3481
3741
|
disabled: !active,
|
|
3482
3742
|
actions: inviteActions,
|
|
3483
3743
|
activeAction,
|
|
@@ -3489,45 +3749,45 @@ var SpaceManagerImpl = (props) => {
|
|
|
3489
3749
|
// packages/sdk/shell/src/panels/SpacePanel/SpacePanel.tsx
|
|
3490
3750
|
var __dxlog_file13 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/SpacePanel/SpacePanel.tsx";
|
|
3491
3751
|
var SpacePanelHeading = ({ titleId, space, onDone }) => {
|
|
3492
|
-
const { t } =
|
|
3752
|
+
const { t } = useTranslation23("os");
|
|
3493
3753
|
const name = space.properties.name;
|
|
3494
|
-
return /* @__PURE__ */
|
|
3754
|
+
return /* @__PURE__ */ React38.createElement(Heading, {
|
|
3495
3755
|
titleId,
|
|
3496
3756
|
title: t("space panel heading"),
|
|
3497
|
-
corner: /* @__PURE__ */
|
|
3757
|
+
corner: /* @__PURE__ */ React38.createElement(CloseButton, {
|
|
3498
3758
|
"data-testid": "identity-panel-done",
|
|
3499
3759
|
onDone
|
|
3500
3760
|
})
|
|
3501
|
-
}, /* @__PURE__ */
|
|
3761
|
+
}, /* @__PURE__ */ React38.createElement("div", {
|
|
3502
3762
|
role: "none",
|
|
3503
3763
|
className: "flex gap-4 items-center justify-center mlb-4"
|
|
3504
|
-
}, /* @__PURE__ */
|
|
3764
|
+
}, /* @__PURE__ */ React38.createElement(Planet, {
|
|
3505
3765
|
size: 32,
|
|
3506
3766
|
weight: "light"
|
|
3507
|
-
}), /* @__PURE__ */
|
|
3767
|
+
}), /* @__PURE__ */ React38.createElement("div", {
|
|
3508
3768
|
className: "block text-start font-light text-xl"
|
|
3509
3769
|
}, name ?? space.key.truncate())));
|
|
3510
3770
|
};
|
|
3511
3771
|
var SpacePanelImpl = (props) => {
|
|
3512
3772
|
const { titleId, activeView, space, hideHeading, target, SpaceManager: SpaceManagerComponent = SpaceManager, InvitationManager: InvitationManagerComponent = InvitationManager, ...rest } = props;
|
|
3513
|
-
return /* @__PURE__ */
|
|
3773
|
+
return /* @__PURE__ */ React38.createElement(React38.Fragment, null, !hideHeading && /* @__PURE__ */ React38.createElement(SpacePanelHeading, {
|
|
3514
3774
|
...rest,
|
|
3515
3775
|
titleId,
|
|
3516
3776
|
space
|
|
3517
|
-
}), /* @__PURE__ */
|
|
3777
|
+
}), /* @__PURE__ */ React38.createElement(Viewport.Root, {
|
|
3518
3778
|
activeView
|
|
3519
|
-
}, /* @__PURE__ */
|
|
3779
|
+
}, /* @__PURE__ */ React38.createElement(Viewport.Views, null, /* @__PURE__ */ React38.createElement(Viewport.View, {
|
|
3520
3780
|
id: "space manager",
|
|
3521
3781
|
classNames: stepStyles
|
|
3522
|
-
}, /* @__PURE__ */
|
|
3782
|
+
}, /* @__PURE__ */ React38.createElement(SpaceManagerComponent, {
|
|
3523
3783
|
active: activeView === "space manager",
|
|
3524
3784
|
space,
|
|
3525
3785
|
target,
|
|
3526
3786
|
...rest
|
|
3527
|
-
})), /* @__PURE__ */
|
|
3787
|
+
})), /* @__PURE__ */ React38.createElement(Viewport.View, {
|
|
3528
3788
|
id: "space invitation manager",
|
|
3529
3789
|
classNames: stepStyles
|
|
3530
|
-
}, /* @__PURE__ */
|
|
3790
|
+
}, /* @__PURE__ */ React38.createElement(InvitationManagerComponent, {
|
|
3531
3791
|
active: activeView === "space invitation manager",
|
|
3532
3792
|
...rest,
|
|
3533
3793
|
invitationUrl: props.invitationUrl
|
|
@@ -3535,7 +3795,7 @@ var SpacePanelImpl = (props) => {
|
|
|
3535
3795
|
};
|
|
3536
3796
|
var SpacePanelWithInvitationImpl = ({ invitation, ...props }) => {
|
|
3537
3797
|
const invitationStatus = useInvitationStatus3(invitation);
|
|
3538
|
-
return /* @__PURE__ */
|
|
3798
|
+
return /* @__PURE__ */ React38.createElement(SpacePanelImpl, {
|
|
3539
3799
|
...props,
|
|
3540
3800
|
...invitationStatus,
|
|
3541
3801
|
invitationUrl: props.createInvitationUrl(invitationStatus.invitationCode)
|
|
@@ -3582,24 +3842,24 @@ var SpacePanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => code,
|
|
|
3582
3842
|
};
|
|
3583
3843
|
return spaceState.context.invitation ? (
|
|
3584
3844
|
// TODO(wittjosiah): Unused? Remove?
|
|
3585
|
-
/* @__PURE__ */
|
|
3845
|
+
/* @__PURE__ */ React38.createElement(SpacePanelWithInvitationImpl, {
|
|
3586
3846
|
...implProps,
|
|
3587
3847
|
invitation: spaceState.context.invitation
|
|
3588
3848
|
})
|
|
3589
|
-
) : /* @__PURE__ */
|
|
3849
|
+
) : /* @__PURE__ */ React38.createElement(SpacePanelImpl, implProps);
|
|
3590
3850
|
};
|
|
3591
3851
|
|
|
3592
3852
|
// packages/sdk/shell/src/panels/StatusPanel/StatusPanel.tsx
|
|
3593
|
-
import
|
|
3594
|
-
import { Status, useTranslation as
|
|
3853
|
+
import React39 from "react";
|
|
3854
|
+
import { Status, useTranslation as useTranslation24 } from "@dxos/react-ui";
|
|
3595
3855
|
var StatusPanel = ({ titleId }) => {
|
|
3596
|
-
const { t } =
|
|
3597
|
-
return /* @__PURE__ */
|
|
3856
|
+
const { t } = useTranslation24("os");
|
|
3857
|
+
return /* @__PURE__ */ React39.createElement("div", {
|
|
3598
3858
|
className: "grid place-items-center p-2 gap-2"
|
|
3599
|
-
}, /* @__PURE__ */
|
|
3859
|
+
}, /* @__PURE__ */ React39.createElement("p", {
|
|
3600
3860
|
id: titleId,
|
|
3601
3861
|
className: "font-medium text-center"
|
|
3602
|
-
}, t("resetting message")), /* @__PURE__ */
|
|
3862
|
+
}, t("resetting message")), /* @__PURE__ */ React39.createElement(Status, {
|
|
3603
3863
|
indeterminate: true
|
|
3604
3864
|
}, t("resetting message")));
|
|
3605
3865
|
};
|
|
@@ -3607,96 +3867,96 @@ var StatusPanel = ({ titleId }) => {
|
|
|
3607
3867
|
// packages/sdk/shell/src/composites/IdentityDialog/IdentityDialog.tsx
|
|
3608
3868
|
var IdentityDialog = (props) => {
|
|
3609
3869
|
const titleId = useId10("identityDialog__title", props.title);
|
|
3610
|
-
return /* @__PURE__ */
|
|
3870
|
+
return /* @__PURE__ */ React40.createElement(Dialog.Root, {
|
|
3611
3871
|
defaultOpen: true,
|
|
3612
3872
|
onOpenChange: (open) => open || props.onDone?.()
|
|
3613
|
-
}, /* @__PURE__ */
|
|
3873
|
+
}, /* @__PURE__ */ React40.createElement(Dialog.Portal, null, /* @__PURE__ */ React40.createElement(Dialog.Overlay, null, /* @__PURE__ */ React40.createElement(Dialog.Content, {
|
|
3614
3874
|
"aria-labelledby": titleId,
|
|
3615
3875
|
onOpenAutoFocus: (e) => e.preventDefault()
|
|
3616
|
-
}, /* @__PURE__ */
|
|
3876
|
+
}, /* @__PURE__ */ React40.createElement(Clipboard3.Provider, null, /* @__PURE__ */ React40.createElement(IdentityPanel, {
|
|
3617
3877
|
...props,
|
|
3618
3878
|
titleId,
|
|
3619
|
-
doneActionParent: /* @__PURE__ */
|
|
3879
|
+
doneActionParent: /* @__PURE__ */ React40.createElement(Dialog.Close, {
|
|
3620
3880
|
asChild: true
|
|
3621
3881
|
})
|
|
3622
3882
|
}))))));
|
|
3623
3883
|
};
|
|
3624
3884
|
|
|
3625
3885
|
// packages/sdk/shell/src/composites/JoinDialog/JoinDialog.tsx
|
|
3626
|
-
import
|
|
3886
|
+
import React41 from "react";
|
|
3627
3887
|
import { AlertDialog, useId as useId11, useVisualViewport } from "@dxos/react-ui";
|
|
3628
3888
|
var JoinDialog = (joinPanelProps) => {
|
|
3629
3889
|
const titleId = useId11("joinDialog__title");
|
|
3630
3890
|
const { height } = useVisualViewport();
|
|
3631
|
-
return /* @__PURE__ */
|
|
3891
|
+
return /* @__PURE__ */ React41.createElement(AlertDialog.Root, {
|
|
3632
3892
|
defaultOpen: true,
|
|
3633
3893
|
onOpenChange: (open) => open || (joinPanelProps.onExit ? joinPanelProps.onExit() : joinPanelProps.onDone?.(null))
|
|
3634
|
-
}, /* @__PURE__ */
|
|
3894
|
+
}, /* @__PURE__ */ React41.createElement(AlertDialog.Portal, null, /* @__PURE__ */ React41.createElement(AlertDialog.Overlay, {
|
|
3635
3895
|
classNames: "backdrop-blur",
|
|
3636
3896
|
...height && {
|
|
3637
3897
|
style: {
|
|
3638
3898
|
blockSize: `${height}px`
|
|
3639
3899
|
}
|
|
3640
3900
|
}
|
|
3641
|
-
}, /* @__PURE__ */
|
|
3901
|
+
}, /* @__PURE__ */ React41.createElement(AlertDialog.Content, {
|
|
3642
3902
|
"aria-labelledby": titleId
|
|
3643
|
-
}, /* @__PURE__ */
|
|
3903
|
+
}, /* @__PURE__ */ React41.createElement(JoinPanel, {
|
|
3644
3904
|
...joinPanelProps,
|
|
3645
3905
|
titleId,
|
|
3646
|
-
exitActionParent: /* @__PURE__ */
|
|
3906
|
+
exitActionParent: /* @__PURE__ */ React41.createElement(AlertDialog.Cancel, {
|
|
3647
3907
|
asChild: true
|
|
3648
3908
|
}),
|
|
3649
|
-
doneActionParent: /* @__PURE__ */
|
|
3909
|
+
doneActionParent: /* @__PURE__ */ React41.createElement(AlertDialog.Action, {
|
|
3650
3910
|
asChild: true
|
|
3651
3911
|
})
|
|
3652
3912
|
})))));
|
|
3653
3913
|
};
|
|
3654
3914
|
|
|
3655
3915
|
// packages/sdk/shell/src/composites/Shell/run-shell.tsx
|
|
3656
|
-
import
|
|
3916
|
+
import React45, { StrictMode } from "react";
|
|
3657
3917
|
import { createRoot } from "react-dom/client";
|
|
3658
3918
|
import { DEFAULT_CLIENT_CHANNEL, DEFAULT_SHELL_CHANNEL } from "@dxos/client-protocol";
|
|
3659
3919
|
import { AgentHostingProvider, ClientProvider, ClientServicesProxy, Config, ShellDisplay as ShellDisplay2 } from "@dxos/react-client";
|
|
3660
|
-
import { Button as
|
|
3920
|
+
import { Button as Button10, Clipboard as Clipboard5, Dialog as Dialog3, ThemeProvider, Tooltip as Tooltip6, useTranslation as useTranslation25 } from "@dxos/react-ui";
|
|
3661
3921
|
import { defaultTx } from "@dxos/react-ui-theme";
|
|
3662
3922
|
import { createIFramePort } from "@dxos/rpc-tunnel";
|
|
3663
3923
|
|
|
3664
3924
|
// packages/sdk/shell/src/composites/Shell/Shell.tsx
|
|
3665
|
-
import
|
|
3925
|
+
import React44, { useEffect as useEffect8, useState as useState12 } from "react";
|
|
3666
3926
|
import { log as log15 } from "@dxos/log";
|
|
3667
3927
|
import { useClient as useClient9 } from "@dxos/react-client";
|
|
3668
3928
|
import { ShellDisplay, ShellLayout } from "@dxos/react-client";
|
|
3669
3929
|
import { useSpace as useSpace2 } from "@dxos/react-client/echo";
|
|
3670
3930
|
|
|
3671
3931
|
// packages/sdk/shell/src/composites/SpaceDialog/SpaceDialog.tsx
|
|
3672
|
-
import
|
|
3932
|
+
import React42 from "react";
|
|
3673
3933
|
import { Clipboard as Clipboard4, Dialog as Dialog2, useId as useId12 } from "@dxos/react-ui";
|
|
3674
3934
|
var SpaceDialog = (spacePanelProps) => {
|
|
3675
3935
|
const titleId = useId12("spaceDialog__title");
|
|
3676
|
-
return /* @__PURE__ */
|
|
3936
|
+
return /* @__PURE__ */ React42.createElement(Dialog2.Root, {
|
|
3677
3937
|
defaultOpen: true,
|
|
3678
3938
|
onOpenChange: (open) => open || spacePanelProps.onDone?.()
|
|
3679
|
-
}, /* @__PURE__ */
|
|
3939
|
+
}, /* @__PURE__ */ React42.createElement(Dialog2.Portal, null, /* @__PURE__ */ React42.createElement(Dialog2.Overlay, null, /* @__PURE__ */ React42.createElement(Dialog2.Content, {
|
|
3680
3940
|
"aria-labelledby": titleId
|
|
3681
|
-
}, /* @__PURE__ */
|
|
3941
|
+
}, /* @__PURE__ */ React42.createElement(Clipboard4.Provider, null, /* @__PURE__ */ React42.createElement(SpacePanel, {
|
|
3682
3942
|
...spacePanelProps,
|
|
3683
3943
|
titleId,
|
|
3684
|
-
doneActionParent: /* @__PURE__ */
|
|
3944
|
+
doneActionParent: /* @__PURE__ */ React42.createElement(Dialog2.Close, {
|
|
3685
3945
|
asChild: true
|
|
3686
3946
|
})
|
|
3687
3947
|
}))))));
|
|
3688
3948
|
};
|
|
3689
3949
|
|
|
3690
3950
|
// packages/sdk/shell/src/composites/StatusDialog/StatusDialog.tsx
|
|
3691
|
-
import
|
|
3951
|
+
import React43 from "react";
|
|
3692
3952
|
import { AlertDialog as AlertDialog2, useId as useId13 } from "@dxos/react-ui";
|
|
3693
3953
|
var StatusDialog = () => {
|
|
3694
3954
|
const titleId = useId13("statusDialog__title");
|
|
3695
|
-
return /* @__PURE__ */
|
|
3955
|
+
return /* @__PURE__ */ React43.createElement(AlertDialog2.Root, {
|
|
3696
3956
|
open: true
|
|
3697
|
-
}, /* @__PURE__ */
|
|
3957
|
+
}, /* @__PURE__ */ React43.createElement(AlertDialog2.Portal, null, /* @__PURE__ */ React43.createElement(AlertDialog2.Overlay, null, /* @__PURE__ */ React43.createElement(AlertDialog2.Content, {
|
|
3698
3958
|
"aria-labelledby": titleId
|
|
3699
|
-
}, /* @__PURE__ */
|
|
3959
|
+
}, /* @__PURE__ */ React43.createElement(StatusPanel, {
|
|
3700
3960
|
titleId
|
|
3701
3961
|
})))));
|
|
3702
3962
|
};
|
|
@@ -3705,14 +3965,14 @@ var StatusDialog = () => {
|
|
|
3705
3965
|
var __dxlog_file14 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/composites/Shell/Shell.tsx";
|
|
3706
3966
|
var blurActiveElement = () => document.activeElement?.blur?.();
|
|
3707
3967
|
var Shell = ({ runtime }) => {
|
|
3708
|
-
const [{ layout, invitationCode, spaceKey, spaceId, target }, setLayout] =
|
|
3968
|
+
const [{ layout, invitationCode, spaceKey, spaceId, target }, setLayout] = useState12({
|
|
3709
3969
|
layout: runtime.layout,
|
|
3710
3970
|
invitationCode: runtime.invitationCode,
|
|
3711
3971
|
spaceKey: runtime.spaceKey,
|
|
3712
3972
|
spaceId: runtime.spaceId,
|
|
3713
3973
|
target: runtime.target
|
|
3714
3974
|
});
|
|
3715
|
-
const [{ invitationUrl, deviceInvitationParam, spaceInvitationParam }, setInvitationUrl] =
|
|
3975
|
+
const [{ invitationUrl, deviceInvitationParam, spaceInvitationParam }, setInvitationUrl] = useState12({
|
|
3716
3976
|
invitationUrl: runtime.invitationUrl,
|
|
3717
3977
|
deviceInvitationParam: runtime.deviceInvitationParam,
|
|
3718
3978
|
spaceInvitationParam: runtime.spaceInvitationParam
|
|
@@ -3764,11 +4024,11 @@ var Shell = ({ runtime }) => {
|
|
|
3764
4024
|
]);
|
|
3765
4025
|
switch (layout) {
|
|
3766
4026
|
case ShellLayout.STATUS:
|
|
3767
|
-
return /* @__PURE__ */
|
|
4027
|
+
return /* @__PURE__ */ React44.createElement(StatusDialog, null);
|
|
3768
4028
|
case ShellLayout.INITIALIZE_IDENTITY:
|
|
3769
4029
|
case ShellLayout.INITIALIZE_IDENTITY_FROM_INVITATION:
|
|
3770
4030
|
case ShellLayout.INITIALIZE_IDENTITY_FROM_RECOVERY:
|
|
3771
|
-
return /* @__PURE__ */
|
|
4031
|
+
return /* @__PURE__ */ React44.createElement(JoinDialog, {
|
|
3772
4032
|
mode: "halo-only",
|
|
3773
4033
|
initialDisposition: layout === ShellLayout.INITIALIZE_IDENTITY_FROM_RECOVERY ? "recover-identity" : layout === ShellLayout.INITIALIZE_IDENTITY_FROM_INVITATION ? "accept-halo-invitation" : "default",
|
|
3774
4034
|
initialInvitationCode: invitationCode,
|
|
@@ -3788,7 +4048,7 @@ var Shell = ({ runtime }) => {
|
|
|
3788
4048
|
case ShellLayout.IDENTITY:
|
|
3789
4049
|
case ShellLayout.SHARE_IDENTITY:
|
|
3790
4050
|
case ShellLayout.EDIT_PROFILE:
|
|
3791
|
-
return /* @__PURE__ */
|
|
4051
|
+
return /* @__PURE__ */ React44.createElement(IdentityDialog, {
|
|
3792
4052
|
createInvitationUrl: createDeviceInvitationUrl,
|
|
3793
4053
|
onResetStorage: async () => {
|
|
3794
4054
|
runtime.setLayout({
|
|
@@ -3834,7 +4094,7 @@ var Shell = ({ runtime }) => {
|
|
|
3834
4094
|
initialDisposition: layout === ShellLayout.SHARE_IDENTITY ? "manage-device-invitation" : "default"
|
|
3835
4095
|
});
|
|
3836
4096
|
case ShellLayout.SPACE:
|
|
3837
|
-
return space ? /* @__PURE__ */
|
|
4097
|
+
return space ? /* @__PURE__ */ React44.createElement(SpaceDialog, {
|
|
3838
4098
|
space,
|
|
3839
4099
|
target,
|
|
3840
4100
|
createInvitationUrl: createSpaceInvitationUrl,
|
|
@@ -3849,7 +4109,7 @@ var Shell = ({ runtime }) => {
|
|
|
3849
4109
|
}
|
|
3850
4110
|
}) : null;
|
|
3851
4111
|
case ShellLayout.JOIN_SPACE:
|
|
3852
|
-
return /* @__PURE__ */
|
|
4112
|
+
return /* @__PURE__ */ React44.createElement(JoinDialog, {
|
|
3853
4113
|
initialInvitationCode: invitationCode,
|
|
3854
4114
|
onDone: async (result) => {
|
|
3855
4115
|
blurActiveElement();
|
|
@@ -4156,25 +4416,25 @@ var runShell = async (config = new Config()) => {
|
|
|
4156
4416
|
const services = new ClientServicesProxy(createIFramePort({
|
|
4157
4417
|
channel: DEFAULT_CLIENT_CHANNEL
|
|
4158
4418
|
}));
|
|
4159
|
-
createRoot(document.getElementById("root")).render(/* @__PURE__ */
|
|
4419
|
+
createRoot(document.getElementById("root")).render(/* @__PURE__ */ React45.createElement(StrictMode, null, /* @__PURE__ */ React45.createElement(ThemeProvider, {
|
|
4160
4420
|
tx: defaultTx,
|
|
4161
4421
|
resourceExtensions: [
|
|
4162
4422
|
osTranslations
|
|
4163
4423
|
]
|
|
4164
|
-
}, /* @__PURE__ */
|
|
4424
|
+
}, /* @__PURE__ */ React45.createElement(ClientProvider, {
|
|
4165
4425
|
config,
|
|
4166
4426
|
services,
|
|
4167
4427
|
noBanner: true
|
|
4168
|
-
}, /* @__PURE__ */
|
|
4428
|
+
}, /* @__PURE__ */ React45.createElement(Clipboard5.Provider, null, /* @__PURE__ */ React45.createElement(Tooltip6.Provider, null, /* @__PURE__ */ React45.createElement(AgentHostingProvider, null, /* @__PURE__ */ React45.createElement(Shell, {
|
|
4169
4429
|
runtime
|
|
4170
4430
|
}))))))));
|
|
4171
4431
|
} catch {
|
|
4172
|
-
createRoot(document.getElementById("root")).render(/* @__PURE__ */
|
|
4432
|
+
createRoot(document.getElementById("root")).render(/* @__PURE__ */ React45.createElement(StrictMode, null, /* @__PURE__ */ React45.createElement(ThemeProvider, {
|
|
4173
4433
|
tx: defaultTx,
|
|
4174
4434
|
resourceExtensions: [
|
|
4175
4435
|
osTranslations
|
|
4176
4436
|
]
|
|
4177
|
-
}, /* @__PURE__ */
|
|
4437
|
+
}, /* @__PURE__ */ React45.createElement(Fallback, {
|
|
4178
4438
|
onClose: () => runtime.setAppContext({
|
|
4179
4439
|
display: ShellDisplay2.NONE
|
|
4180
4440
|
})
|
|
@@ -4182,24 +4442,24 @@ var runShell = async (config = new Config()) => {
|
|
|
4182
4442
|
}
|
|
4183
4443
|
};
|
|
4184
4444
|
var Fallback = ({ onClose }) => {
|
|
4185
|
-
const { t } =
|
|
4186
|
-
return /* @__PURE__ */
|
|
4445
|
+
const { t } = useTranslation25("os");
|
|
4446
|
+
return /* @__PURE__ */ React45.createElement(Dialog3.Root, {
|
|
4187
4447
|
modal: true,
|
|
4188
4448
|
open: true,
|
|
4189
4449
|
onOpenChange: () => onClose?.()
|
|
4190
|
-
}, /* @__PURE__ */
|
|
4450
|
+
}, /* @__PURE__ */ React45.createElement(Dialog3.Overlay, null, /* @__PURE__ */ React45.createElement(Dialog3.Content, null, /* @__PURE__ */ React45.createElement(Dialog3.Title, null, t("shell fallback title")), /* @__PURE__ */ React45.createElement(Dialog3.Close, {
|
|
4191
4451
|
asChild: true,
|
|
4192
4452
|
onClick: () => onClose?.()
|
|
4193
|
-
}, /* @__PURE__ */
|
|
4453
|
+
}, /* @__PURE__ */ React45.createElement(Button10, {
|
|
4194
4454
|
variant: "primary"
|
|
4195
4455
|
}, t("close label"))))));
|
|
4196
4456
|
};
|
|
4197
4457
|
|
|
4198
4458
|
// packages/sdk/shell/src/composites/Shell/ShellContext.tsx
|
|
4199
|
-
import
|
|
4459
|
+
import React46, { createContext, useCallback as useCallback8, useContext, useEffect as useEffect9, useMemo as useMemo6, useState as useState13 } from "react";
|
|
4200
4460
|
import { useClient as useClient10, ShellDisplay as ShellDisplay3, ShellLayout as ShellLayout4 } from "@dxos/react-client";
|
|
4201
4461
|
import { useIdentity as useIdentity3 } from "@dxos/react-client/halo";
|
|
4202
|
-
import { mx as
|
|
4462
|
+
import { mx as mx24 } from "@dxos/react-ui-theme";
|
|
4203
4463
|
|
|
4204
4464
|
// packages/sdk/shell/src/composites/Shell/memory-shell-runtime.ts
|
|
4205
4465
|
import { Event as Event2 } from "@dxos/async";
|
|
@@ -4277,7 +4537,7 @@ var useShell = () => {
|
|
|
4277
4537
|
var ShellProvider = ({ space, deviceInvitationCode, spaceInvitationCode, onJoinedSpace, children }) => {
|
|
4278
4538
|
const client = useClient10();
|
|
4279
4539
|
const identity = useIdentity3();
|
|
4280
|
-
const [display, setDisplay] =
|
|
4540
|
+
const [display, setDisplay] = useState13(!identity || spaceInvitationCode || deviceInvitationCode ? ShellDisplay3.FULLSCREEN : ShellDisplay3.NONE);
|
|
4281
4541
|
const shellRuntime = useMemo6(() => {
|
|
4282
4542
|
if (client.config.get("runtime.app.env.DX_VAULT") !== "false") {
|
|
4283
4543
|
return;
|
|
@@ -4347,11 +4607,11 @@ var ShellProvider = ({ space, deviceInvitationCode, spaceInvitationCode, onJoine
|
|
|
4347
4607
|
}, [
|
|
4348
4608
|
shellRuntime
|
|
4349
4609
|
]);
|
|
4350
|
-
return /* @__PURE__ */
|
|
4351
|
-
className:
|
|
4352
|
-
}, /* @__PURE__ */
|
|
4610
|
+
return /* @__PURE__ */ React46.createElement(React46.Fragment, null, shellRuntime && /* @__PURE__ */ React46.createElement("div", {
|
|
4611
|
+
className: mx24(display === ShellDisplay3.NONE ? "hidden" : "")
|
|
4612
|
+
}, /* @__PURE__ */ React46.createElement(Shell, {
|
|
4353
4613
|
runtime: shellRuntime
|
|
4354
|
-
})), /* @__PURE__ */
|
|
4614
|
+
})), /* @__PURE__ */ React46.createElement(ShellContext.Provider, {
|
|
4355
4615
|
value: {
|
|
4356
4616
|
runtime: shellRuntime,
|
|
4357
4617
|
setDisplay
|
|
@@ -4371,7 +4631,11 @@ export {
|
|
|
4371
4631
|
ConfirmResetImpl,
|
|
4372
4632
|
DeviceList,
|
|
4373
4633
|
Emoji,
|
|
4634
|
+
EmojiPickerBlock,
|
|
4635
|
+
EmojiPickerToolbarButton,
|
|
4374
4636
|
Heading,
|
|
4637
|
+
HuePickerBlock,
|
|
4638
|
+
HuePickerToolbarButton,
|
|
4375
4639
|
IdentityDialog,
|
|
4376
4640
|
IdentityListItem,
|
|
4377
4641
|
IdentityPanel,
|