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