@dxos/shell 0.3.11-main.2e39ec4 → 0.3.11-main.338d9a5
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 +36433 -0
- package/dist/bundle/shell.mjs.map +1 -0
- package/dist/bundle/shell.umd.js +210 -0
- package/dist/bundle/shell.umd.js.map +1 -0
- package/dist/bundle/style.css +1 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/react.mjs +344 -282
- package/dist/lib/browser/react.mjs.map +4 -4
- package/dist/types/src/components/IdentityList/DeviceList.d.ts.map +1 -1
- package/dist/types/src/components/IdentityList/DeviceList.js +5 -3
- package/dist/types/src/components/IdentityList/DeviceList.js.map +1 -1
- package/dist/types/src/composites/Shell/Shell.d.ts.map +1 -1
- package/dist/types/src/composites/Shell/Shell.js +10 -4
- package/dist/types/src/composites/Shell/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 +10 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.d.ts +6 -0
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.js +26 -3
- package/dist/types/src/panels/IdentityPanel/IdentityPanel.stories.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/IdentityPanelProps.d.ts +7 -6
- package/dist/types/src/panels/IdentityPanel/IdentityPanelProps.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/identityMachine.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/identityMachine.js +2 -1
- package/dist/types/src/panels/IdentityPanel/identityMachine.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/DeviceManager.d.ts +10 -0
- package/dist/types/src/panels/IdentityPanel/steps/DeviceManager.d.ts.map +1 -0
- package/dist/types/src/panels/IdentityPanel/steps/DeviceManager.js +23 -0
- package/dist/types/src/panels/IdentityPanel/steps/DeviceManager.js.map +1 -0
- package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.js +4 -0
- package/dist/types/src/panels/IdentityPanel/steps/IdentityActionChooser.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.d.ts +0 -1
- package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.js +2 -3
- package/dist/types/src/panels/IdentityPanel/steps/ProfileForm.js.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/index.d.ts +1 -0
- package/dist/types/src/panels/IdentityPanel/steps/index.d.ts.map +1 -1
- package/dist/types/src/panels/IdentityPanel/steps/index.js +1 -0
- package/dist/types/src/panels/IdentityPanel/steps/index.js.map +1 -1
- package/dist/types/src/panels/JoinPanel/JoinPanel.js +4 -3
- package/dist/types/src/panels/JoinPanel/JoinPanel.js.map +1 -1
- package/dist/types/src/panels/JoinPanel/joinMachine.js +1 -1
- package/dist/types/src/panels/JoinPanel/joinMachine.js.map +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.d.ts.map +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanel.js +5 -3
- 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 +2 -2
- package/dist/types/src/panels/SpacePanel/SpacePanel.stories.js.map +1 -1
- package/dist/types/src/panels/SpacePanel/SpacePanelProps.d.ts +1 -0
- package/dist/types/src/panels/SpacePanel/SpacePanelProps.d.ts.map +1 -1
- package/dist/types/src/panels/SpacePanel/steps/SpaceManager.d.ts +1 -0
- package/dist/types/src/panels/SpacePanel/steps/SpaceManager.d.ts.map +1 -1
- package/dist/types/src/panels/SpacePanel/steps/SpaceManager.js +3 -1
- package/dist/types/src/panels/SpacePanel/steps/SpaceManager.js.map +1 -1
- package/dist/types/src/translations/locales/en-US.d.ts +1 -0
- package/dist/types/src/translations/locales/en-US.d.ts.map +1 -1
- package/dist/types/src/translations/locales/en-US.js +2 -1
- package/dist/types/src/translations/locales/en-US.js.map +1 -1
- package/package.json +17 -17
- package/src/components/IdentityList/DeviceList.tsx +7 -5
- package/src/composites/Shell/Shell.tsx +9 -2
- package/src/panels/IdentityPanel/IdentityPanel.stories.tsx +44 -2
- package/src/panels/IdentityPanel/IdentityPanel.tsx +14 -3
- package/src/panels/IdentityPanel/IdentityPanelProps.ts +7 -6
- package/src/panels/IdentityPanel/identityMachine.ts +2 -1
- package/src/panels/IdentityPanel/steps/DeviceManager.tsx +41 -0
- package/src/panels/IdentityPanel/steps/IdentityActionChooser.tsx +6 -1
- package/src/panels/IdentityPanel/steps/ProfileForm.tsx +1 -1
- package/src/panels/IdentityPanel/steps/index.ts +1 -0
- package/src/panels/JoinPanel/JoinPanel.tsx +2 -2
- package/src/panels/JoinPanel/joinMachine.ts +1 -1
- package/src/panels/SpacePanel/SpacePanel.stories.tsx +2 -1
- package/src/panels/SpacePanel/SpacePanel.tsx +4 -1
- package/src/panels/SpacePanel/SpacePanelProps.ts +1 -0
- package/src/panels/SpacePanel/steps/SpaceManager.tsx +4 -1
- package/src/translations/locales/en-US.ts +2 -1
|
@@ -182,9 +182,9 @@ var DeviceList = ({ devices, onSelect }) => {
|
|
|
182
182
|
}, devices.map((device) => {
|
|
183
183
|
const identity = {
|
|
184
184
|
identityKey: device.deviceKey,
|
|
185
|
-
profile: {
|
|
185
|
+
profile: device.profile ? {
|
|
186
186
|
displayName: `${device.profile?.platform} (${device.profile?.platformVersion}) on ${device.profile?.os} (${device.profile?.osVersion}) ${device.profile?.architecture ?? "Unknown"}-bit`
|
|
187
|
-
}
|
|
187
|
+
} : void 0
|
|
188
188
|
};
|
|
189
189
|
return /* @__PURE__ */ React5.createElement(IdentityListItem, {
|
|
190
190
|
key: device.deviceKey.toHex(),
|
|
@@ -813,17 +813,17 @@ var SpaceListItem = /* @__PURE__ */ forwardRef7(({ space, onClick }, ref) => {
|
|
|
813
813
|
});
|
|
814
814
|
|
|
815
815
|
// packages/sdk/shell/src/composites/IdentityDialog/IdentityDialog.tsx
|
|
816
|
-
import
|
|
816
|
+
import React38 from "react";
|
|
817
817
|
import { Dialog, useId as useId9 } from "@dxos/react-ui";
|
|
818
818
|
|
|
819
819
|
// packages/sdk/shell/src/panels/IdentityPanel/IdentityPanel.tsx
|
|
820
|
-
import
|
|
820
|
+
import React25, { useEffect as useEffect2, useMemo as useMemo3 } from "react";
|
|
821
821
|
import { generateName as generateName2 } from "@dxos/display-name";
|
|
822
822
|
import { log as log3 } from "@dxos/log";
|
|
823
823
|
import { useClient as useClient3 } from "@dxos/react-client";
|
|
824
|
-
import { useIdentity } from "@dxos/react-client/halo";
|
|
824
|
+
import { useIdentity, useDevices } from "@dxos/react-client/halo";
|
|
825
825
|
import { useInvitationStatus as useInvitationStatus2 } from "@dxos/react-client/invitations";
|
|
826
|
-
import { Avatar as Avatar4, DensityProvider as DensityProvider2, useId as useId5, useJdenticonHref as useJdenticonHref3, useTranslation as
|
|
826
|
+
import { Avatar as Avatar4, DensityProvider as DensityProvider2, useId as useId5, useJdenticonHref as useJdenticonHref3, useTranslation as useTranslation11 } from "@dxos/react-ui";
|
|
827
827
|
|
|
828
828
|
// packages/sdk/shell/src/panels/IdentityPanel/identityMachine.ts
|
|
829
829
|
import { useMachine } from "@xstate/react";
|
|
@@ -844,6 +844,7 @@ var identityMachine = createMachine({
|
|
|
844
844
|
states: {
|
|
845
845
|
choosingAction: {},
|
|
846
846
|
managingDeviceInvitation: {},
|
|
847
|
+
managingDevices: {},
|
|
847
848
|
managingProfile: {
|
|
848
849
|
initial: "idle",
|
|
849
850
|
states: {
|
|
@@ -873,13 +874,6 @@ var identityMachine = createMachine({
|
|
|
873
874
|
"log"
|
|
874
875
|
]
|
|
875
876
|
},
|
|
876
|
-
chooseDevices: {
|
|
877
|
-
target: ".managingDeviceInvitation",
|
|
878
|
-
actions: [
|
|
879
|
-
"unsetInvitation",
|
|
880
|
-
"log"
|
|
881
|
-
]
|
|
882
|
-
},
|
|
883
877
|
deselectInvitation: {
|
|
884
878
|
target: ".choosingAction",
|
|
885
879
|
actions: [
|
|
@@ -894,6 +888,10 @@ var identityMachine = createMachine({
|
|
|
894
888
|
"log"
|
|
895
889
|
]
|
|
896
890
|
},
|
|
891
|
+
chooseDevices: {
|
|
892
|
+
target: ".managingDevices",
|
|
893
|
+
actions: "log"
|
|
894
|
+
},
|
|
897
895
|
chooseProfile: {
|
|
898
896
|
target: ".managingProfile",
|
|
899
897
|
actions: "log"
|
|
@@ -916,7 +914,7 @@ var identityMachine = createMachine({
|
|
|
916
914
|
context
|
|
917
915
|
}, {
|
|
918
916
|
F: __dxlog_file,
|
|
919
|
-
L:
|
|
917
|
+
L: 96,
|
|
920
918
|
S: void 0,
|
|
921
919
|
C: (f, a) => f(...a)
|
|
922
920
|
});
|
|
@@ -937,13 +935,34 @@ var useIdentityMachine = (client, options) => {
|
|
|
937
935
|
});
|
|
938
936
|
};
|
|
939
937
|
|
|
938
|
+
// packages/sdk/shell/src/panels/IdentityPanel/steps/DeviceManager.tsx
|
|
939
|
+
import React21 from "react";
|
|
940
|
+
import { useTranslation as useTranslation7 } from "@dxos/react-ui";
|
|
941
|
+
var DeviceManager = ({ devices, active, send }) => {
|
|
942
|
+
const { t } = useTranslation7("os");
|
|
943
|
+
const disabled = !active;
|
|
944
|
+
return /* @__PURE__ */ React21.createElement(React21.Fragment, null, /* @__PURE__ */ React21.createElement("div", {
|
|
945
|
+
role: "none",
|
|
946
|
+
className: "grow"
|
|
947
|
+
}, /* @__PURE__ */ React21.createElement(DeviceList, {
|
|
948
|
+
devices
|
|
949
|
+
})), /* @__PURE__ */ React21.createElement(Actions, null, /* @__PURE__ */ React21.createElement(Action, {
|
|
950
|
+
variant: "ghost",
|
|
951
|
+
disabled,
|
|
952
|
+
onClick: () => send?.({
|
|
953
|
+
type: "unchooseAction"
|
|
954
|
+
}),
|
|
955
|
+
"data-testid": "manage-devices-back"
|
|
956
|
+
}, t("back label"))));
|
|
957
|
+
};
|
|
958
|
+
|
|
940
959
|
// packages/sdk/shell/src/panels/IdentityPanel/steps/IdentityActionChooser.tsx
|
|
941
|
-
import { CaretRight, Plus, Power, UserGear } from "@phosphor-icons/react";
|
|
942
|
-
import
|
|
960
|
+
import { CaretRight, Devices, Plus, Power, UserGear } from "@phosphor-icons/react";
|
|
961
|
+
import React22, { useCallback as useCallback4 } from "react";
|
|
943
962
|
import { useClient as useClient2 } from "@dxos/react-client";
|
|
944
963
|
import { useHaloInvitations } from "@dxos/react-client/halo";
|
|
945
964
|
import { Invitation as Invitation3, InvitationEncoder } from "@dxos/react-client/invitations";
|
|
946
|
-
import { DensityProvider, useTranslation as
|
|
965
|
+
import { DensityProvider, useTranslation as useTranslation8 } from "@dxos/react-ui";
|
|
947
966
|
import { getSize as getSize6 } from "@dxos/react-ui-theme";
|
|
948
967
|
var IdentityActionChooser = (props) => {
|
|
949
968
|
const { send } = props;
|
|
@@ -973,69 +992,82 @@ var IdentityActionChooser = (props) => {
|
|
|
973
992
|
invitation
|
|
974
993
|
});
|
|
975
994
|
};
|
|
976
|
-
return /* @__PURE__ */
|
|
995
|
+
return /* @__PURE__ */ React22.createElement(IdentityActionChooserImpl, {
|
|
977
996
|
...props,
|
|
978
997
|
onCreateInvitationClick: (e) => createInvitation(e)
|
|
979
998
|
});
|
|
980
999
|
};
|
|
981
1000
|
var IdentityActionChooserImpl = ({ onCreateInvitationClick, active, send, onDone, doneActionParent }) => {
|
|
982
|
-
const { t } =
|
|
983
|
-
return /* @__PURE__ */
|
|
1001
|
+
const { t } = useTranslation8("os");
|
|
1002
|
+
return /* @__PURE__ */ React22.createElement("div", {
|
|
984
1003
|
role: "none",
|
|
985
1004
|
className: "grow flex flex-col gap-1"
|
|
986
|
-
}, /* @__PURE__ */
|
|
1005
|
+
}, /* @__PURE__ */ React22.createElement(DensityProvider, {
|
|
987
1006
|
density: "coarse"
|
|
988
|
-
}, /* @__PURE__ */
|
|
1007
|
+
}, /* @__PURE__ */ React22.createElement("div", {
|
|
989
1008
|
className: "grow justify-center flex flex-col gap-1"
|
|
990
|
-
}, /* @__PURE__ */
|
|
1009
|
+
}, /* @__PURE__ */ React22.createElement(Action, {
|
|
991
1010
|
disabled: !active,
|
|
992
1011
|
"data-testid": "devices-panel.create-invitation",
|
|
993
1012
|
onClick: onCreateInvitationClick,
|
|
994
1013
|
classNames: "plb-4"
|
|
995
|
-
}, /* @__PURE__ */
|
|
1014
|
+
}, /* @__PURE__ */ React22.createElement(Plus, {
|
|
1015
|
+
className: getSize6(6)
|
|
1016
|
+
}), /* @__PURE__ */ React22.createElement("span", {
|
|
1017
|
+
className: "grow mli-3"
|
|
1018
|
+
}, t("choose add device label")), /* @__PURE__ */ React22.createElement(CaretRight, {
|
|
1019
|
+
weight: "bold",
|
|
1020
|
+
className: getSize6(4)
|
|
1021
|
+
})), /* @__PURE__ */ React22.createElement(Action, {
|
|
1022
|
+
"data-testid": "manage-devices",
|
|
1023
|
+
onClick: () => send?.({
|
|
1024
|
+
type: "chooseDevices"
|
|
1025
|
+
}),
|
|
1026
|
+
classNames: "plb-4"
|
|
1027
|
+
}, /* @__PURE__ */ React22.createElement(Devices, {
|
|
996
1028
|
className: getSize6(6)
|
|
997
|
-
}), /* @__PURE__ */
|
|
1029
|
+
}), /* @__PURE__ */ React22.createElement("span", {
|
|
998
1030
|
className: "grow mli-3"
|
|
999
|
-
}, t("choose devices label")), /* @__PURE__ */
|
|
1031
|
+
}, t("choose devices label")), /* @__PURE__ */ React22.createElement(CaretRight, {
|
|
1000
1032
|
weight: "bold",
|
|
1001
1033
|
className: getSize6(4)
|
|
1002
|
-
})), /* @__PURE__ */
|
|
1034
|
+
})), /* @__PURE__ */ React22.createElement(Action, {
|
|
1003
1035
|
"data-testid": "manage-profile",
|
|
1004
1036
|
onClick: () => send?.({
|
|
1005
1037
|
type: "chooseProfile"
|
|
1006
1038
|
}),
|
|
1007
1039
|
classNames: "plb-4"
|
|
1008
|
-
}, /* @__PURE__ */
|
|
1040
|
+
}, /* @__PURE__ */ React22.createElement(UserGear, {
|
|
1009
1041
|
className: getSize6(6)
|
|
1010
|
-
}), /* @__PURE__ */
|
|
1042
|
+
}), /* @__PURE__ */ React22.createElement("span", {
|
|
1011
1043
|
className: "grow mli-3"
|
|
1012
|
-
}, t("choose profile label")), /* @__PURE__ */
|
|
1044
|
+
}, t("choose profile label")), /* @__PURE__ */ React22.createElement(CaretRight, {
|
|
1013
1045
|
weight: "bold",
|
|
1014
1046
|
className: getSize6(4)
|
|
1015
|
-
})), /* @__PURE__ */
|
|
1047
|
+
})), /* @__PURE__ */ React22.createElement(Action, {
|
|
1016
1048
|
disabled: true,
|
|
1017
1049
|
"data-testid": "sign-out",
|
|
1018
1050
|
onClick: () => {
|
|
1019
1051
|
},
|
|
1020
1052
|
classNames: "plb-4"
|
|
1021
|
-
}, /* @__PURE__ */
|
|
1053
|
+
}, /* @__PURE__ */ React22.createElement(Power, {
|
|
1022
1054
|
className: getSize6(6)
|
|
1023
|
-
}), /* @__PURE__ */
|
|
1055
|
+
}), /* @__PURE__ */ React22.createElement("span", {
|
|
1024
1056
|
className: "grow mli-3"
|
|
1025
|
-
}, t("choose sign out label")), /* @__PURE__ */
|
|
1057
|
+
}, t("choose sign out label")), /* @__PURE__ */ React22.createElement(CaretRight, {
|
|
1026
1058
|
weight: "bold",
|
|
1027
1059
|
className: getSize6(4)
|
|
1028
1060
|
})))));
|
|
1029
1061
|
};
|
|
1030
1062
|
|
|
1031
1063
|
// packages/sdk/shell/src/panels/IdentityPanel/steps/ProfileForm.tsx
|
|
1032
|
-
import
|
|
1064
|
+
import React23, { useState as useState3 } from "react";
|
|
1033
1065
|
import { log as log2 } from "@dxos/log";
|
|
1034
|
-
import { useTranslation as
|
|
1066
|
+
import { useTranslation as useTranslation9 } from "@dxos/react-ui";
|
|
1035
1067
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/IdentityPanel/steps/ProfileForm.tsx";
|
|
1036
1068
|
var ProfileForm = (props) => {
|
|
1037
1069
|
const { onUpdateProfile } = props;
|
|
1038
|
-
const { t } =
|
|
1070
|
+
const { t } = useTranslation9("os");
|
|
1039
1071
|
const [validationMessage, setValidationMessage] = useState3("");
|
|
1040
1072
|
const handleUpdateProfile = async (profile) => {
|
|
1041
1073
|
await onUpdateProfile?.(profile).catch((error) => {
|
|
@@ -1048,7 +1080,7 @@ var ProfileForm = (props) => {
|
|
|
1048
1080
|
setValidationMessage(t("failed to update profile message"));
|
|
1049
1081
|
});
|
|
1050
1082
|
};
|
|
1051
|
-
return /* @__PURE__ */
|
|
1083
|
+
return /* @__PURE__ */ React23.createElement(ProfileFormImpl, {
|
|
1052
1084
|
...props,
|
|
1053
1085
|
onUpdateProfile: handleUpdateProfile,
|
|
1054
1086
|
validationMessage
|
|
@@ -1057,14 +1089,14 @@ var ProfileForm = (props) => {
|
|
|
1057
1089
|
var ProfileFormImpl = (props) => {
|
|
1058
1090
|
const { active, profile, send, onUpdateProfile, validationMessage } = props;
|
|
1059
1091
|
const disabled = !active;
|
|
1060
|
-
const { t } =
|
|
1092
|
+
const { t } = useTranslation9("os");
|
|
1061
1093
|
const [inputValue, setInputValue] = useState3(profile?.displayName ?? "");
|
|
1062
|
-
return /* @__PURE__ */
|
|
1094
|
+
return /* @__PURE__ */ React23.createElement(React23.Fragment, null, /* @__PURE__ */ React23.createElement("div", {
|
|
1063
1095
|
role: "none",
|
|
1064
1096
|
className: "grow flex flex-col justify-center"
|
|
1065
|
-
}, /* @__PURE__ */
|
|
1097
|
+
}, /* @__PURE__ */ React23.createElement(Input, {
|
|
1066
1098
|
validationMessage,
|
|
1067
|
-
label: /* @__PURE__ */
|
|
1099
|
+
label: /* @__PURE__ */ React23.createElement(StepHeading, null, t("display name input label")),
|
|
1068
1100
|
disabled,
|
|
1069
1101
|
"data-testid": "display-name-input",
|
|
1070
1102
|
placeholder: t("display name input placeholder"),
|
|
@@ -1073,14 +1105,14 @@ var ProfileFormImpl = (props) => {
|
|
|
1073
1105
|
onKeyDown: ({ key }) => key === "Enter" && onUpdateProfile?.({
|
|
1074
1106
|
displayName: inputValue
|
|
1075
1107
|
})
|
|
1076
|
-
})), /* @__PURE__ */
|
|
1108
|
+
})), /* @__PURE__ */ React23.createElement(Actions, null, /* @__PURE__ */ React23.createElement(Action, {
|
|
1077
1109
|
variant: "ghost",
|
|
1078
1110
|
disabled,
|
|
1079
1111
|
onClick: () => send?.({
|
|
1080
1112
|
type: "unchooseAction"
|
|
1081
1113
|
}),
|
|
1082
1114
|
"data-testid": "update-profile-form-back"
|
|
1083
|
-
}, t("back label")), /* @__PURE__ */
|
|
1115
|
+
}, t("back label")), /* @__PURE__ */ React23.createElement(Action, {
|
|
1084
1116
|
variant: "primary",
|
|
1085
1117
|
disabled,
|
|
1086
1118
|
onClick: () => onUpdateProfile?.({
|
|
@@ -1092,19 +1124,19 @@ var ProfileFormImpl = (props) => {
|
|
|
1092
1124
|
|
|
1093
1125
|
// packages/sdk/shell/src/steps/InvitationManager.tsx
|
|
1094
1126
|
import { Check as Check3, X as X3 } from "@phosphor-icons/react";
|
|
1095
|
-
import
|
|
1127
|
+
import React24, { useMemo as useMemo2 } from "react";
|
|
1096
1128
|
import { QR } from "react-qr-rounded";
|
|
1097
1129
|
import { Invitation as Invitation4 } from "@dxos/react-client/invitations";
|
|
1098
|
-
import { useId as useId4, useTranslation as
|
|
1130
|
+
import { useId as useId4, useTranslation as useTranslation10 } from "@dxos/react-ui";
|
|
1099
1131
|
import { descriptionText as descriptionText7, getSize as getSize7, mx as mx18 } from "@dxos/react-ui-theme";
|
|
1100
1132
|
var InvitationManagerView = ({ children, ...props }) => {
|
|
1101
|
-
return /* @__PURE__ */
|
|
1133
|
+
return /* @__PURE__ */ React24.createElement(Viewport.View, {
|
|
1102
1134
|
...props,
|
|
1103
1135
|
classNames: "grow flex flex-col justify-around items-center"
|
|
1104
1136
|
}, children);
|
|
1105
1137
|
};
|
|
1106
1138
|
var InvitationManager = ({ invitationUrl, active, send, status, type, authCode, id }) => {
|
|
1107
|
-
const { t } =
|
|
1139
|
+
const { t } = useTranslation10("os");
|
|
1108
1140
|
const qrLabel = useId4("invitation-manager__qr-code");
|
|
1109
1141
|
const statusValue = type === Invitation4.Type.MULTIUSE ? 0 : invitationStatusValue.get(status) ?? 0;
|
|
1110
1142
|
const showAuthCode = statusValue === 3;
|
|
@@ -1122,18 +1154,18 @@ var InvitationManager = ({ invitationUrl, active, send, status, type, authCode,
|
|
|
1122
1154
|
}, [
|
|
1123
1155
|
statusValue
|
|
1124
1156
|
]);
|
|
1125
|
-
return /* @__PURE__ */
|
|
1157
|
+
return /* @__PURE__ */ React24.createElement(React24.Fragment, null, /* @__PURE__ */ React24.createElement(Viewport.Root, {
|
|
1126
1158
|
activeView,
|
|
1127
1159
|
classNames: "grow plb-1"
|
|
1128
|
-
}, /* @__PURE__ */
|
|
1160
|
+
}, /* @__PURE__ */ React24.createElement(Viewport.Views, null, /* @__PURE__ */ React24.createElement(InvitationManagerView, {
|
|
1129
1161
|
id: "showing qr",
|
|
1130
1162
|
emoji: emoji2
|
|
1131
|
-
}, /* @__PURE__ */
|
|
1163
|
+
}, /* @__PURE__ */ React24.createElement("p", {
|
|
1132
1164
|
className: "text-sm mlb-1 font-normal text-center"
|
|
1133
|
-
}, t(type === Invitation4.Type.MULTIUSE ? "invite many qr label" : "invite one qr label")), /* @__PURE__ */
|
|
1165
|
+
}, t(type === Invitation4.Type.MULTIUSE ? "invite many qr label" : "invite one qr label")), /* @__PURE__ */ React24.createElement("div", {
|
|
1134
1166
|
role: "none",
|
|
1135
1167
|
className: mx18(descriptionText7, "is-full max-is-[14rem] relative")
|
|
1136
|
-
}, /* @__PURE__ */
|
|
1168
|
+
}, /* @__PURE__ */ React24.createElement(QR, {
|
|
1137
1169
|
rounding: 100,
|
|
1138
1170
|
backgroundColor: "transparent",
|
|
1139
1171
|
color: "currentColor",
|
|
@@ -1141,31 +1173,31 @@ var InvitationManager = ({ invitationUrl, active, send, status, type, authCode,
|
|
|
1141
1173
|
"aria-labelledby": qrLabel,
|
|
1142
1174
|
errorCorrectionLevel: "Q",
|
|
1143
1175
|
cutout: true
|
|
1144
|
-
}, invitationUrl ?? "never"), /* @__PURE__ */
|
|
1176
|
+
}, invitationUrl ?? "never"), /* @__PURE__ */ React24.createElement(Centered, null, /* @__PURE__ */ React24.createElement(Emoji, {
|
|
1145
1177
|
text: emoji2
|
|
1146
|
-
}))), /* @__PURE__ */
|
|
1178
|
+
}))), /* @__PURE__ */ React24.createElement("span", {
|
|
1147
1179
|
id: qrLabel,
|
|
1148
1180
|
className: "sr-only"
|
|
1149
|
-
}, t("qr label")), /* @__PURE__ */
|
|
1181
|
+
}, t("qr label")), /* @__PURE__ */ React24.createElement(CopyButton, {
|
|
1150
1182
|
variant: "ghost",
|
|
1151
1183
|
value: invitationUrl ?? "never"
|
|
1152
|
-
})), /* @__PURE__ */
|
|
1184
|
+
})), /* @__PURE__ */ React24.createElement(InvitationManagerView, {
|
|
1153
1185
|
id: "showing auth code"
|
|
1154
|
-
}, /* @__PURE__ */
|
|
1186
|
+
}, /* @__PURE__ */ React24.createElement(Label, null, t("auth code message")), /* @__PURE__ */ React24.createElement(AuthCode, {
|
|
1155
1187
|
code: authCode,
|
|
1156
1188
|
large: true,
|
|
1157
1189
|
classNames: "text-black dark:text-white"
|
|
1158
|
-
}), /* @__PURE__ */
|
|
1190
|
+
}), /* @__PURE__ */ React24.createElement(Label, null, "Be sure the other device is showing this symbol:"), emoji2 && /* @__PURE__ */ React24.createElement(Emoji, {
|
|
1159
1191
|
text: emoji2
|
|
1160
|
-
})), /* @__PURE__ */
|
|
1192
|
+
})), /* @__PURE__ */ React24.createElement(InvitationManagerView, {
|
|
1161
1193
|
id: "showing final"
|
|
1162
|
-
}, statusValue > 0 ? /* @__PURE__ */
|
|
1194
|
+
}, statusValue > 0 ? /* @__PURE__ */ React24.createElement(Check3, {
|
|
1163
1195
|
className: mx18("m-1.5", getSize7(6))
|
|
1164
|
-
}) : /* @__PURE__ */
|
|
1196
|
+
}) : /* @__PURE__ */ React24.createElement(X3, {
|
|
1165
1197
|
className: mx18("m-1.5", getSize7(6))
|
|
1166
|
-
})))), /* @__PURE__ */
|
|
1198
|
+
})))), /* @__PURE__ */ React24.createElement(Actions, {
|
|
1167
1199
|
classNames: "mbs-4"
|
|
1168
|
-
}, /* @__PURE__ */
|
|
1200
|
+
}, /* @__PURE__ */ React24.createElement(Action, {
|
|
1169
1201
|
disabled: !active,
|
|
1170
1202
|
onClick: () => send?.({
|
|
1171
1203
|
type: "deselectInvitation"
|
|
@@ -1178,32 +1210,33 @@ var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/I
|
|
|
1178
1210
|
var viewStyles = "pbs-1 pbe-3 pli-3";
|
|
1179
1211
|
var IdentityHeading = ({ titleId, title, identity, onDone }) => {
|
|
1180
1212
|
const fallbackHref = useJdenticonHref3(identity.identityKey.toHex(), 12);
|
|
1181
|
-
return /* @__PURE__ */
|
|
1213
|
+
return /* @__PURE__ */ React25.createElement(Heading, {
|
|
1182
1214
|
titleId,
|
|
1183
1215
|
title,
|
|
1184
|
-
corner: /* @__PURE__ */
|
|
1216
|
+
corner: /* @__PURE__ */ React25.createElement(CloseButton, {
|
|
1185
1217
|
onDone
|
|
1186
1218
|
})
|
|
1187
|
-
}, /* @__PURE__ */
|
|
1219
|
+
}, /* @__PURE__ */ React25.createElement(Avatar4.Root, {
|
|
1188
1220
|
size: 12,
|
|
1189
1221
|
variant: "circle",
|
|
1190
1222
|
status: "active"
|
|
1191
|
-
}, /* @__PURE__ */
|
|
1223
|
+
}, /* @__PURE__ */ React25.createElement(Avatar4.Frame, {
|
|
1192
1224
|
classNames: "block mbs-4 mbe-2 mli-auto chromatic-ignore"
|
|
1193
|
-
}, /* @__PURE__ */
|
|
1225
|
+
}, /* @__PURE__ */ React25.createElement(Avatar4.Fallback, {
|
|
1194
1226
|
href: fallbackHref
|
|
1195
|
-
})), /* @__PURE__ */
|
|
1227
|
+
})), /* @__PURE__ */ React25.createElement(Avatar4.Label, {
|
|
1196
1228
|
classNames: "block text-center font-light text-xl"
|
|
1197
1229
|
}, identity.profile?.displayName ?? generateName2(identity.identityKey.toHex()))));
|
|
1198
1230
|
};
|
|
1199
1231
|
var IdentityPanelImpl = (props) => {
|
|
1200
1232
|
const { identity, titleId, activeView, onUpdateProfile, IdentityActionChooser: IdentityActionChooserComponent = IdentityActionChooser, InvitationManager: InvitationManagerComponent = InvitationManager, onDone, ...rest } = props;
|
|
1201
|
-
const { t } =
|
|
1233
|
+
const { t } = useTranslation11("os");
|
|
1202
1234
|
const title = useMemo3(() => {
|
|
1203
1235
|
switch (activeView) {
|
|
1204
1236
|
case "device manager":
|
|
1205
|
-
case "device invitation manager":
|
|
1206
1237
|
return t("choose devices label");
|
|
1238
|
+
case "device invitation manager":
|
|
1239
|
+
return t("choose add device label");
|
|
1207
1240
|
default:
|
|
1208
1241
|
return t("identity heading");
|
|
1209
1242
|
}
|
|
@@ -1211,32 +1244,41 @@ var IdentityPanelImpl = (props) => {
|
|
|
1211
1244
|
activeView,
|
|
1212
1245
|
t
|
|
1213
1246
|
]);
|
|
1214
|
-
|
|
1247
|
+
console.log("[IdentityPanelImpl]", {
|
|
1248
|
+
activeView
|
|
1249
|
+
});
|
|
1250
|
+
return /* @__PURE__ */ React25.createElement(DensityProvider2, {
|
|
1215
1251
|
density: "fine"
|
|
1216
|
-
}, /* @__PURE__ */
|
|
1252
|
+
}, /* @__PURE__ */ React25.createElement(IdentityHeading, {
|
|
1217
1253
|
identity,
|
|
1218
1254
|
titleId,
|
|
1219
1255
|
title,
|
|
1220
1256
|
onDone
|
|
1221
|
-
}), /* @__PURE__ */
|
|
1257
|
+
}), /* @__PURE__ */ React25.createElement(Viewport.Root, {
|
|
1222
1258
|
activeView
|
|
1223
|
-
}, /* @__PURE__ */
|
|
1259
|
+
}, /* @__PURE__ */ React25.createElement(Viewport.Views, null, /* @__PURE__ */ React25.createElement(Viewport.View, {
|
|
1224
1260
|
id: "identity action chooser",
|
|
1225
1261
|
classNames: viewStyles
|
|
1226
|
-
}, /* @__PURE__ */
|
|
1262
|
+
}, /* @__PURE__ */ React25.createElement(IdentityActionChooserComponent, {
|
|
1227
1263
|
active: activeView === "identity action chooser",
|
|
1228
1264
|
...rest
|
|
1229
|
-
})), /* @__PURE__ */
|
|
1265
|
+
})), /* @__PURE__ */ React25.createElement(Viewport.View, {
|
|
1230
1266
|
id: "device invitation manager",
|
|
1231
1267
|
classNames: viewStyles
|
|
1232
|
-
}, /* @__PURE__ */
|
|
1268
|
+
}, /* @__PURE__ */ React25.createElement(InvitationManagerComponent, {
|
|
1233
1269
|
active: activeView === "device invitation manager",
|
|
1234
1270
|
...rest,
|
|
1235
1271
|
invitationUrl: rest.createInvitationUrl(rest.invitationCode)
|
|
1236
|
-
})), /* @__PURE__ */
|
|
1272
|
+
})), /* @__PURE__ */ React25.createElement(Viewport.View, {
|
|
1273
|
+
id: "device manager",
|
|
1274
|
+
classNames: viewStyles
|
|
1275
|
+
}, /* @__PURE__ */ React25.createElement(DeviceManager, {
|
|
1276
|
+
active: activeView === "device manager",
|
|
1277
|
+
...rest
|
|
1278
|
+
})), /* @__PURE__ */ React25.createElement(Viewport.View, {
|
|
1237
1279
|
classNames: viewStyles,
|
|
1238
1280
|
id: "update profile form"
|
|
1239
|
-
}, /* @__PURE__ */
|
|
1281
|
+
}, /* @__PURE__ */ React25.createElement(ProfileForm, {
|
|
1240
1282
|
send: rest.send,
|
|
1241
1283
|
active: activeView === "update profile form",
|
|
1242
1284
|
profile: identity.profile,
|
|
@@ -1245,7 +1287,7 @@ var IdentityPanelImpl = (props) => {
|
|
|
1245
1287
|
};
|
|
1246
1288
|
var IdentityPanelWithInvitationImpl = ({ invitation, ...props }) => {
|
|
1247
1289
|
const invitationStatus = useInvitationStatus2(invitation);
|
|
1248
|
-
return /* @__PURE__ */
|
|
1290
|
+
return /* @__PURE__ */ React25.createElement(IdentityPanelImpl, {
|
|
1249
1291
|
...props,
|
|
1250
1292
|
...invitationStatus
|
|
1251
1293
|
});
|
|
@@ -1253,6 +1295,7 @@ var IdentityPanelWithInvitationImpl = ({ invitation, ...props }) => {
|
|
|
1253
1295
|
var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => code, ...props }) => {
|
|
1254
1296
|
const titleId = useId5("identityPanel__heading", propsTitleId);
|
|
1255
1297
|
const client = useClient3();
|
|
1298
|
+
const devices = useDevices();
|
|
1256
1299
|
const identity = useIdentity();
|
|
1257
1300
|
if (!identity) {
|
|
1258
1301
|
console.error("IdentityPanel rendered with no active identity.");
|
|
@@ -1263,7 +1306,7 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
1263
1306
|
const subscription = identityService.subscribe((state) => {
|
|
1264
1307
|
log3("[state]", state, {
|
|
1265
1308
|
F: __dxlog_file3,
|
|
1266
|
-
L:
|
|
1309
|
+
L: 123,
|
|
1267
1310
|
S: void 0,
|
|
1268
1311
|
C: (f, a) => f(...a)
|
|
1269
1312
|
});
|
|
@@ -1278,6 +1321,8 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
1278
1321
|
return "identity action chooser";
|
|
1279
1322
|
case identityState.matches("managingDeviceInvitation"):
|
|
1280
1323
|
return "device invitation manager";
|
|
1324
|
+
case identityState.matches("managingDevices"):
|
|
1325
|
+
return "device manager";
|
|
1281
1326
|
case [
|
|
1282
1327
|
{
|
|
1283
1328
|
managingProfile: "idle"
|
|
@@ -1293,6 +1338,10 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
1293
1338
|
}, [
|
|
1294
1339
|
identityState
|
|
1295
1340
|
]);
|
|
1341
|
+
console.log({
|
|
1342
|
+
activeView,
|
|
1343
|
+
identityState
|
|
1344
|
+
});
|
|
1296
1345
|
const onUpdateProfile = async (profile) => {
|
|
1297
1346
|
identitySend({
|
|
1298
1347
|
type: "updateProfile"
|
|
@@ -1302,20 +1351,21 @@ var IdentityPanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => co
|
|
|
1302
1351
|
const implProps = {
|
|
1303
1352
|
...props,
|
|
1304
1353
|
identity,
|
|
1354
|
+
devices,
|
|
1305
1355
|
activeView,
|
|
1306
1356
|
send: identitySend,
|
|
1307
1357
|
titleId,
|
|
1308
1358
|
createInvitationUrl,
|
|
1309
1359
|
onUpdateProfile
|
|
1310
1360
|
};
|
|
1311
|
-
return identityState.context.invitation ? /* @__PURE__ */
|
|
1361
|
+
return identityState.context.invitation ? /* @__PURE__ */ React25.createElement(IdentityPanelWithInvitationImpl, {
|
|
1312
1362
|
...implProps,
|
|
1313
1363
|
invitation: identityState.context.invitation
|
|
1314
|
-
}) : /* @__PURE__ */
|
|
1364
|
+
}) : /* @__PURE__ */ React25.createElement(IdentityPanelImpl, implProps);
|
|
1315
1365
|
};
|
|
1316
1366
|
|
|
1317
1367
|
// packages/sdk/shell/src/panels/JoinPanel/JoinPanel.tsx
|
|
1318
|
-
import
|
|
1368
|
+
import React35, { useCallback as useCallback6, useEffect as useEffect4, useMemo as useMemo4 } from "react";
|
|
1319
1369
|
import { log as log8 } from "@dxos/log";
|
|
1320
1370
|
import { useClient as useClient6, useMulticastObservable } from "@dxos/react-client";
|
|
1321
1371
|
import { useIdentity as useIdentity2 } from "@dxos/react-client/halo";
|
|
@@ -1323,25 +1373,25 @@ import { DensityProvider as DensityProvider3, useId as useId7, useThemeContext a
|
|
|
1323
1373
|
|
|
1324
1374
|
// packages/sdk/shell/src/panels/JoinPanel/JoinHeading.tsx
|
|
1325
1375
|
import { X as X4 } from "@phosphor-icons/react";
|
|
1326
|
-
import
|
|
1327
|
-
import { Button as Button5, useTranslation as
|
|
1376
|
+
import React26, { cloneElement, forwardRef as forwardRef8 } from "react";
|
|
1377
|
+
import { Button as Button5, useTranslation as useTranslation12 } from "@dxos/react-ui";
|
|
1328
1378
|
import { descriptionText as descriptionText8, getSize as getSize8, mx as mx19 } from "@dxos/react-ui-theme";
|
|
1329
1379
|
var JoinHeading = /* @__PURE__ */ forwardRef8(({ mode, titleId, onExit, exitActionParent }, forwardedRef) => {
|
|
1330
|
-
const { t } =
|
|
1331
|
-
const exitButton = /* @__PURE__ */
|
|
1380
|
+
const { t } = useTranslation12("os");
|
|
1381
|
+
const exitButton = /* @__PURE__ */ React26.createElement(Button5, {
|
|
1332
1382
|
variant: "ghost",
|
|
1333
1383
|
...onExit && {
|
|
1334
1384
|
onClick: onExit
|
|
1335
1385
|
},
|
|
1336
1386
|
classNames: mx19(descriptionText8, "plb-0 pli-2 absolute block-start-0 inline-end-0 z-[1]"),
|
|
1337
1387
|
"data-testid": "join-exit"
|
|
1338
|
-
}, /* @__PURE__ */
|
|
1388
|
+
}, /* @__PURE__ */ React26.createElement(X4, {
|
|
1339
1389
|
weight: "bold",
|
|
1340
1390
|
className: getSize8(4)
|
|
1341
|
-
}), /* @__PURE__ */
|
|
1391
|
+
}), /* @__PURE__ */ React26.createElement("span", {
|
|
1342
1392
|
className: "sr-only"
|
|
1343
1393
|
}, t("exit label")));
|
|
1344
|
-
return /* @__PURE__ */
|
|
1394
|
+
return /* @__PURE__ */ React26.createElement(Heading, {
|
|
1345
1395
|
ref: forwardedRef,
|
|
1346
1396
|
titleId,
|
|
1347
1397
|
title: t(mode === "halo-only" ? "selecting identity heading" : "joining space heading"),
|
|
@@ -1801,7 +1851,7 @@ var joinMachine = createMachine2({
|
|
|
1801
1851
|
} : context.space
|
|
1802
1852
|
}),
|
|
1803
1853
|
log: (context, event) => {
|
|
1804
|
-
log4
|
|
1854
|
+
log4("[transition]", {
|
|
1805
1855
|
event,
|
|
1806
1856
|
haloInvitation: context.halo.invitation,
|
|
1807
1857
|
spaceInvitation: context.space.invitation
|
|
@@ -1933,16 +1983,16 @@ var useJoinMachine = (client, options) => {
|
|
|
1933
1983
|
|
|
1934
1984
|
// packages/sdk/shell/src/panels/JoinPanel/steps/AdditionMethodChooser.tsx
|
|
1935
1985
|
import { CaretRight as CaretRight2, Plus as Plus2, QrCode, Textbox } from "@phosphor-icons/react";
|
|
1936
|
-
import
|
|
1937
|
-
import { useTranslation as
|
|
1986
|
+
import React27 from "react";
|
|
1987
|
+
import { useTranslation as useTranslation13 } from "@dxos/react-ui";
|
|
1938
1988
|
import { getSize as getSize9 } from "@dxos/react-ui-theme";
|
|
1939
1989
|
var AdditionMethodChooser = (viewStateProps) => {
|
|
1940
1990
|
const disabled = !viewStateProps.active;
|
|
1941
1991
|
const { send } = viewStateProps;
|
|
1942
|
-
const { t } =
|
|
1992
|
+
const { t } = useTranslation13("os");
|
|
1943
1993
|
const sharedButtonProps = {
|
|
1944
1994
|
disabled,
|
|
1945
|
-
after: /* @__PURE__ */
|
|
1995
|
+
after: /* @__PURE__ */ React27.createElement(CaretRight2, {
|
|
1946
1996
|
className: getSize9(4),
|
|
1947
1997
|
weight: "bold"
|
|
1948
1998
|
}),
|
|
@@ -1952,13 +2002,13 @@ var AdditionMethodChooser = (viewStateProps) => {
|
|
|
1952
2002
|
}
|
|
1953
2003
|
}
|
|
1954
2004
|
};
|
|
1955
|
-
return /* @__PURE__ */
|
|
2005
|
+
return /* @__PURE__ */ React27.createElement(React27.Fragment, null, /* @__PURE__ */ React27.createElement(StepHeading, null, t("addition method chooser title")), /* @__PURE__ */ React27.createElement("div", {
|
|
1956
2006
|
role: "none",
|
|
1957
2007
|
className: "flex flex-col gap-1 grow"
|
|
1958
|
-
}, /* @__PURE__ */
|
|
2008
|
+
}, /* @__PURE__ */ React27.createElement(CompoundButton, {
|
|
1959
2009
|
...sharedButtonProps,
|
|
1960
2010
|
description: t("create identity description"),
|
|
1961
|
-
before: /* @__PURE__ */
|
|
2011
|
+
before: /* @__PURE__ */ React27.createElement(Plus2, {
|
|
1962
2012
|
className: getSize9(6)
|
|
1963
2013
|
}),
|
|
1964
2014
|
onClick: () => send({
|
|
@@ -1966,22 +2016,22 @@ var AdditionMethodChooser = (viewStateProps) => {
|
|
|
1966
2016
|
}),
|
|
1967
2017
|
"data-autofocus": "choosingAuthMethod",
|
|
1968
2018
|
"data-testid": "create-identity"
|
|
1969
|
-
}, t("create identity label")), /* @__PURE__ */
|
|
2019
|
+
}, t("create identity label")), /* @__PURE__ */ React27.createElement(CompoundButton, {
|
|
1970
2020
|
...sharedButtonProps,
|
|
1971
2021
|
description: t("join identity description"),
|
|
1972
|
-
before: /* @__PURE__ */
|
|
2022
|
+
before: /* @__PURE__ */ React27.createElement(QrCode, {
|
|
1973
2023
|
className: getSize9(6)
|
|
1974
2024
|
}),
|
|
1975
2025
|
onClick: () => send({
|
|
1976
2026
|
type: "acceptHaloInvitation"
|
|
1977
2027
|
}),
|
|
1978
2028
|
"data-testid": "join-identity"
|
|
1979
|
-
}, t("join identity label")), /* @__PURE__ */
|
|
2029
|
+
}, t("join identity label")), /* @__PURE__ */ React27.createElement(CompoundButton, {
|
|
1980
2030
|
...sharedButtonProps,
|
|
1981
2031
|
// TODO(mykola): Implement recover.
|
|
1982
2032
|
disabled: true,
|
|
1983
2033
|
description: t("recover identity description"),
|
|
1984
|
-
before: /* @__PURE__ */
|
|
2034
|
+
before: /* @__PURE__ */ React27.createElement(Textbox, {
|
|
1985
2035
|
className: getSize9(6)
|
|
1986
2036
|
}),
|
|
1987
2037
|
onClick: () => send({
|
|
@@ -1992,37 +2042,37 @@ var AdditionMethodChooser = (viewStateProps) => {
|
|
|
1992
2042
|
};
|
|
1993
2043
|
|
|
1994
2044
|
// packages/sdk/shell/src/panels/JoinPanel/steps/IdentityAdded.tsx
|
|
1995
|
-
import
|
|
2045
|
+
import React28, { cloneElement as cloneElement2 } from "react";
|
|
1996
2046
|
import { generateName as generateName3 } from "@dxos/display-name";
|
|
1997
|
-
import { Avatar as Avatar5, useId as useId6, useJdenticonHref as useJdenticonHref4, useTranslation as
|
|
2047
|
+
import { Avatar as Avatar5, useId as useId6, useJdenticonHref as useJdenticonHref4, useTranslation as useTranslation14 } from "@dxos/react-ui";
|
|
1998
2048
|
import { mx as mx20 } from "@dxos/react-ui-theme";
|
|
1999
2049
|
var IdentityAdded = (props) => {
|
|
2000
2050
|
const { mode, addedIdentity, active, send, onDone, doneActionParent } = props;
|
|
2001
2051
|
const disabled = !active;
|
|
2002
|
-
const { t } =
|
|
2052
|
+
const { t } = useTranslation14("os");
|
|
2003
2053
|
const fallbackValue = addedIdentity?.identityKey.toHex();
|
|
2004
2054
|
const labelId = useId6("identityListItem__label");
|
|
2005
2055
|
const jdenticon = useJdenticonHref4(fallbackValue ?? "", 12);
|
|
2006
2056
|
const displayName = addedIdentity?.profile?.displayName ?? (addedIdentity && generateName3(addedIdentity?.identityKey.toHex()));
|
|
2007
|
-
const doneAction = /* @__PURE__ */
|
|
2057
|
+
const doneAction = /* @__PURE__ */ React28.createElement(Action, {
|
|
2008
2058
|
...onDone && {
|
|
2009
2059
|
onClick: () => onDone(null)
|
|
2010
2060
|
},
|
|
2011
2061
|
disabled,
|
|
2012
2062
|
"data-autofocus": "confirmingAddedIdentity",
|
|
2013
2063
|
"data-testid": "identity-added-done"
|
|
2014
|
-
}, /* @__PURE__ */
|
|
2015
|
-
return /* @__PURE__ */
|
|
2064
|
+
}, /* @__PURE__ */ React28.createElement("span", null, t("done label")));
|
|
2065
|
+
return /* @__PURE__ */ React28.createElement(React28.Fragment, null, /* @__PURE__ */ React28.createElement(StepHeading, null, t("identity added label")), /* @__PURE__ */ React28.createElement("div", {
|
|
2016
2066
|
role: "none",
|
|
2017
2067
|
className: "grow flex flex-col items-center justify-center text-center gap-2"
|
|
2018
|
-
}, /* @__PURE__ */
|
|
2068
|
+
}, /* @__PURE__ */ React28.createElement(Avatar5.Root, {
|
|
2019
2069
|
status: "active",
|
|
2020
2070
|
labelId
|
|
2021
|
-
}, /* @__PURE__ */
|
|
2071
|
+
}, /* @__PURE__ */ React28.createElement(Avatar5.Frame, null, /* @__PURE__ */ React28.createElement(Avatar5.Fallback, {
|
|
2022
2072
|
href: jdenticon
|
|
2023
|
-
})), /* @__PURE__ */
|
|
2073
|
+
})), /* @__PURE__ */ React28.createElement(Avatar5.Label, {
|
|
2024
2074
|
classNames: mx20("text-lg truncate", !addedIdentity?.profile?.displayName && "font-mono")
|
|
2025
|
-
}, displayName))), /* @__PURE__ */
|
|
2075
|
+
}, displayName))), /* @__PURE__ */ React28.createElement(Actions, null, mode === "halo-only" ? doneActionParent ? /* @__PURE__ */ cloneElement2(doneActionParent, {}, doneAction) : doneAction : /* @__PURE__ */ React28.createElement(Action, {
|
|
2026
2076
|
variant: "primary",
|
|
2027
2077
|
disabled: disabled || !addedIdentity,
|
|
2028
2078
|
onClick: () => addedIdentity && send({
|
|
@@ -2034,16 +2084,16 @@ var IdentityAdded = (props) => {
|
|
|
2034
2084
|
};
|
|
2035
2085
|
|
|
2036
2086
|
// packages/sdk/shell/src/panels/JoinPanel/steps/IdentityInput.tsx
|
|
2037
|
-
import
|
|
2087
|
+
import React29, { useState as useState4 } from "react";
|
|
2038
2088
|
import { log as log5 } from "@dxos/log";
|
|
2039
2089
|
import { useClient as useClient4 } from "@dxos/react-client";
|
|
2040
|
-
import { useTranslation as
|
|
2090
|
+
import { useTranslation as useTranslation15 } from "@dxos/react-ui";
|
|
2041
2091
|
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/steps/IdentityInput.tsx";
|
|
2042
2092
|
var IdentityInput = (props) => {
|
|
2043
2093
|
const { send, method } = props;
|
|
2044
2094
|
const isRecover = method === "recover identity";
|
|
2045
2095
|
const client = useClient4();
|
|
2046
|
-
const { t } =
|
|
2096
|
+
const { t } = useTranslation15("os");
|
|
2047
2097
|
const [validationMessage, setValidationMessage] = useState4("");
|
|
2048
2098
|
const createIdentity = (displayName) => {
|
|
2049
2099
|
void client.halo.createIdentity({
|
|
@@ -2063,7 +2113,7 @@ var IdentityInput = (props) => {
|
|
|
2063
2113
|
setValidationMessage(t(isRecover ? "failed to recover identity message" : "failed to create identity message"));
|
|
2064
2114
|
});
|
|
2065
2115
|
};
|
|
2066
|
-
return /* @__PURE__ */
|
|
2116
|
+
return /* @__PURE__ */ React29.createElement(IdentityInputImpl, {
|
|
2067
2117
|
...props,
|
|
2068
2118
|
onDisplayNameConfirm: createIdentity,
|
|
2069
2119
|
validationMessage
|
|
@@ -2072,27 +2122,27 @@ var IdentityInput = (props) => {
|
|
|
2072
2122
|
var IdentityInputImpl = (props) => {
|
|
2073
2123
|
const { method, send, active, onDisplayNameConfirm, validationMessage } = props;
|
|
2074
2124
|
const disabled = !active;
|
|
2075
|
-
const { t } =
|
|
2125
|
+
const { t } = useTranslation15("os");
|
|
2076
2126
|
const [inputValue, setInputValue] = useState4("");
|
|
2077
2127
|
const isRecover = method === "recover identity";
|
|
2078
|
-
return /* @__PURE__ */
|
|
2128
|
+
return /* @__PURE__ */ React29.createElement(React29.Fragment, null, /* @__PURE__ */ React29.createElement("div", {
|
|
2079
2129
|
role: "none",
|
|
2080
2130
|
className: "grow flex flex-col justify-center"
|
|
2081
|
-
}, /* @__PURE__ */
|
|
2131
|
+
}, /* @__PURE__ */ React29.createElement(Input, {
|
|
2082
2132
|
validationMessage,
|
|
2083
|
-
label: /* @__PURE__ */
|
|
2133
|
+
label: /* @__PURE__ */ React29.createElement(StepHeading, null, t(isRecover ? "recover identity input label" : "new identity input label")),
|
|
2084
2134
|
disabled,
|
|
2085
2135
|
"data-testid": "identity-input",
|
|
2086
2136
|
placeholder: isRecover ? "Type your recovery phrase" : "Type a display name",
|
|
2087
2137
|
onChange: ({ target: { value } }) => setInputValue(value)
|
|
2088
|
-
})), /* @__PURE__ */
|
|
2138
|
+
})), /* @__PURE__ */ React29.createElement(Actions, null, /* @__PURE__ */ React29.createElement(Action, {
|
|
2089
2139
|
variant: "ghost",
|
|
2090
2140
|
disabled,
|
|
2091
2141
|
onClick: () => send?.({
|
|
2092
2142
|
type: "deselectAuthMethod"
|
|
2093
2143
|
}),
|
|
2094
2144
|
"data-testid": `${method === "recover identity" ? "recover" : "create"}-identity-input-back`
|
|
2095
|
-
}, t("back label")), /* @__PURE__ */
|
|
2145
|
+
}, t("back label")), /* @__PURE__ */ React29.createElement(Action, {
|
|
2096
2146
|
variant: "primary",
|
|
2097
2147
|
disabled,
|
|
2098
2148
|
onClick: () => onDisplayNameConfirm?.(inputValue),
|
|
@@ -2101,31 +2151,31 @@ var IdentityInputImpl = (props) => {
|
|
|
2101
2151
|
};
|
|
2102
2152
|
|
|
2103
2153
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationAccepted.tsx
|
|
2104
|
-
import
|
|
2105
|
-
import { useTranslation as
|
|
2154
|
+
import React30, { cloneElement as cloneElement3 } from "react";
|
|
2155
|
+
import { useTranslation as useTranslation16 } from "@dxos/react-ui";
|
|
2106
2156
|
var InvitationAccepted = (props) => {
|
|
2107
2157
|
const { active, Kind, doneActionParent, onDone } = props;
|
|
2108
2158
|
const disabled = !active;
|
|
2109
|
-
const { t } =
|
|
2110
|
-
const doneAction = /* @__PURE__ */
|
|
2159
|
+
const { t } = useTranslation16("os");
|
|
2160
|
+
const doneAction = /* @__PURE__ */ React30.createElement(Action, {
|
|
2111
2161
|
variant: "primary",
|
|
2112
2162
|
onClick: onDone,
|
|
2113
2163
|
disabled,
|
|
2114
2164
|
"data-autofocus": `success${Kind}Invitation finishingJoining${Kind}`,
|
|
2115
2165
|
"data-testid": `${Kind.toLowerCase()}-invitation-accepted-done`
|
|
2116
2166
|
}, t("done label"));
|
|
2117
|
-
return /* @__PURE__ */
|
|
2167
|
+
return /* @__PURE__ */ React30.createElement(React30.Fragment, null, /* @__PURE__ */ React30.createElement("div", {
|
|
2118
2168
|
role: "none",
|
|
2119
2169
|
className: "grow flex flex-col justify-center"
|
|
2120
|
-
}, /* @__PURE__ */
|
|
2170
|
+
}, /* @__PURE__ */ React30.createElement("p", {
|
|
2121
2171
|
className: "text-center text-sm font-normal"
|
|
2122
|
-
}, t("welcome message"))), /* @__PURE__ */
|
|
2172
|
+
}, t("welcome message"))), /* @__PURE__ */ React30.createElement(Actions, null, doneActionParent ? /* @__PURE__ */ cloneElement3(doneActionParent, {}, doneAction) : doneAction));
|
|
2123
2173
|
};
|
|
2124
2174
|
|
|
2125
2175
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationInput.tsx
|
|
2126
|
-
import
|
|
2176
|
+
import React31, { useState as useState5, useEffect as useEffect3, cloneElement as cloneElement4 } from "react";
|
|
2127
2177
|
import { log as log6 } from "@dxos/log";
|
|
2128
|
-
import { useTranslation as
|
|
2178
|
+
import { useTranslation as useTranslation17 } from "@dxos/react-ui";
|
|
2129
2179
|
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/steps/InvitationInput.tsx";
|
|
2130
2180
|
var invitationCodeFromUrl = (text) => {
|
|
2131
2181
|
try {
|
|
@@ -2145,7 +2195,7 @@ var invitationCodeFromUrl = (text) => {
|
|
|
2145
2195
|
var InvitationInput = (props) => {
|
|
2146
2196
|
const { Kind, active, send, unredeemedCode, onExit, exitActionParent, onDone, doneActionParent, succeededKeys } = props;
|
|
2147
2197
|
const disabled = !active;
|
|
2148
|
-
const { t } =
|
|
2198
|
+
const { t } = useTranslation17("os");
|
|
2149
2199
|
const [inputValue, setInputValue] = useState5(unredeemedCode ?? "");
|
|
2150
2200
|
useEffect3(() => {
|
|
2151
2201
|
unredeemedCode && setInputValue(unredeemedCode ?? "");
|
|
@@ -2159,7 +2209,7 @@ var InvitationInput = (props) => {
|
|
|
2159
2209
|
succeededKeys
|
|
2160
2210
|
}
|
|
2161
2211
|
});
|
|
2162
|
-
const exitAction = /* @__PURE__ */
|
|
2212
|
+
const exitAction = /* @__PURE__ */ React31.createElement(Action, {
|
|
2163
2213
|
variant: "ghost",
|
|
2164
2214
|
disabled,
|
|
2165
2215
|
...onExit ? {
|
|
@@ -2169,11 +2219,11 @@ var InvitationInput = (props) => {
|
|
|
2169
2219
|
},
|
|
2170
2220
|
"data-testid": "join-exit"
|
|
2171
2221
|
}, t("cancel label"));
|
|
2172
|
-
return /* @__PURE__ */
|
|
2222
|
+
return /* @__PURE__ */ React31.createElement(React31.Fragment, null, /* @__PURE__ */ React31.createElement("div", {
|
|
2173
2223
|
role: "none",
|
|
2174
2224
|
className: "grow flex flex-col justify-center"
|
|
2175
|
-
}, /* @__PURE__ */
|
|
2176
|
-
label: /* @__PURE__ */
|
|
2225
|
+
}, /* @__PURE__ */ React31.createElement(Input, {
|
|
2226
|
+
label: /* @__PURE__ */ React31.createElement(StepHeading, null, t("invitation input label")),
|
|
2177
2227
|
placeholder: "Type an invitation code",
|
|
2178
2228
|
disabled,
|
|
2179
2229
|
value: inputValue,
|
|
@@ -2181,14 +2231,14 @@ var InvitationInput = (props) => {
|
|
|
2181
2231
|
"data-autofocus": `inputting${Kind}InvitationCode`,
|
|
2182
2232
|
"data-testid": `${Kind.toLowerCase()}-invitation-input`,
|
|
2183
2233
|
onKeyUp: ({ key }) => key === "Enter" && handleNext()
|
|
2184
|
-
})), /* @__PURE__ */
|
|
2234
|
+
})), /* @__PURE__ */ React31.createElement(Actions, null, Kind === "Halo" ? /* @__PURE__ */ React31.createElement(Action, {
|
|
2185
2235
|
variant: "ghost",
|
|
2186
2236
|
disabled,
|
|
2187
2237
|
onClick: () => send({
|
|
2188
2238
|
type: "deselectAuthMethod"
|
|
2189
2239
|
}),
|
|
2190
2240
|
"data-testid": `${Kind.toLowerCase()}-invitation-input-back`
|
|
2191
|
-
}, t("back label")) : exitActionParent ? /* @__PURE__ */ cloneElement4(exitActionParent, {}, exitAction) : doneActionParent ? /* @__PURE__ */ cloneElement4(doneActionParent, {}, exitAction) : exitAction, /* @__PURE__ */
|
|
2241
|
+
}, t("back label")) : exitActionParent ? /* @__PURE__ */ cloneElement4(exitActionParent, {}, exitAction) : doneActionParent ? /* @__PURE__ */ cloneElement4(doneActionParent, {}, exitAction) : exitAction, /* @__PURE__ */ React31.createElement(Action, {
|
|
2192
2242
|
variant: "primary",
|
|
2193
2243
|
disabled,
|
|
2194
2244
|
onClick: handleNext,
|
|
@@ -2197,8 +2247,8 @@ var InvitationInput = (props) => {
|
|
|
2197
2247
|
};
|
|
2198
2248
|
|
|
2199
2249
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationRescuer.tsx
|
|
2200
|
-
import
|
|
2201
|
-
import { useTranslation as
|
|
2250
|
+
import React32 from "react";
|
|
2251
|
+
import { useTranslation as useTranslation18 } from "@dxos/react-ui";
|
|
2202
2252
|
import { descriptionText as descriptionText9 } from "@dxos/react-ui-theme";
|
|
2203
2253
|
var InvitationActions = ({
|
|
2204
2254
|
// `invitationState` does report correct state, but here we evaluate whether `failReason` is a better source of truth
|
|
@@ -2210,14 +2260,14 @@ var InvitationActions = ({
|
|
|
2210
2260
|
Kind,
|
|
2211
2261
|
failReason
|
|
2212
2262
|
}) => {
|
|
2213
|
-
const { t } =
|
|
2263
|
+
const { t } = useTranslation18("os");
|
|
2214
2264
|
if (failReason) {
|
|
2215
|
-
return /* @__PURE__ */
|
|
2265
|
+
return /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(StepHeading, {
|
|
2216
2266
|
className: descriptionText9
|
|
2217
|
-
}, t(failReason === "timeout" ? "timeout status label" : failReason === "cancelled" ? "cancelled status label" : "error status label")), /* @__PURE__ */
|
|
2267
|
+
}, t(failReason === "timeout" ? "timeout status label" : failReason === "cancelled" ? "cancelled status label" : "error status label")), /* @__PURE__ */ React32.createElement("div", {
|
|
2218
2268
|
role: "none",
|
|
2219
2269
|
className: "grow"
|
|
2220
|
-
}), /* @__PURE__ */
|
|
2270
|
+
}), /* @__PURE__ */ React32.createElement(Actions, null, /* @__PURE__ */ React32.createElement(Action, {
|
|
2221
2271
|
disabled: !active,
|
|
2222
2272
|
onClick: () => send({
|
|
2223
2273
|
type: `reset${Kind}Invitation`
|
|
@@ -2225,16 +2275,16 @@ var InvitationActions = ({
|
|
|
2225
2275
|
"data-testid": "invitation-rescuer-reset"
|
|
2226
2276
|
}, t("reset label"))));
|
|
2227
2277
|
} else {
|
|
2228
|
-
return /* @__PURE__ */
|
|
2278
|
+
return /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement(StepHeading, {
|
|
2229
2279
|
className: descriptionText9
|
|
2230
|
-
}, t("connecting status label")), /* @__PURE__ */
|
|
2280
|
+
}, t("connecting status label")), /* @__PURE__ */ React32.createElement("div", {
|
|
2231
2281
|
role: "none",
|
|
2232
2282
|
className: "grow"
|
|
2233
|
-
}), /* @__PURE__ */
|
|
2283
|
+
}), /* @__PURE__ */ React32.createElement(Actions, null, /* @__PURE__ */ React32.createElement(Action, {
|
|
2234
2284
|
disabled: true,
|
|
2235
2285
|
classNames: "order-2",
|
|
2236
2286
|
"data-testid": "next"
|
|
2237
|
-
}, t("next label")), /* @__PURE__ */
|
|
2287
|
+
}, t("next label")), /* @__PURE__ */ React32.createElement(Action, {
|
|
2238
2288
|
disabled: !active,
|
|
2239
2289
|
onClick: onInvitationCancel,
|
|
2240
2290
|
"data-testid": "invitation-rescuer-cancel"
|
|
@@ -2243,28 +2293,28 @@ var InvitationActions = ({
|
|
|
2243
2293
|
};
|
|
2244
2294
|
var InvitationRescuer = (props) => {
|
|
2245
2295
|
const { Kind, invitationState, active, send } = props;
|
|
2246
|
-
const { t } =
|
|
2247
|
-
return /* @__PURE__ */
|
|
2296
|
+
const { t } = useTranslation18("os");
|
|
2297
|
+
return /* @__PURE__ */ React32.createElement(React32.Fragment, null, typeof invitationState === "undefined" ? /* @__PURE__ */ React32.createElement(React32.Fragment, null, /* @__PURE__ */ React32.createElement("div", {
|
|
2248
2298
|
role: "none",
|
|
2249
2299
|
className: "grow flex flex-col justify-center"
|
|
2250
|
-
}, /* @__PURE__ */
|
|
2300
|
+
}, /* @__PURE__ */ React32.createElement(StepHeading, {
|
|
2251
2301
|
className: descriptionText9
|
|
2252
|
-
}, "There was a problem joining the space")), /* @__PURE__ */
|
|
2302
|
+
}, "There was a problem joining the space")), /* @__PURE__ */ React32.createElement(Actions, null, /* @__PURE__ */ React32.createElement(Action, {
|
|
2253
2303
|
disabled: !active,
|
|
2254
2304
|
"data-testid": "invitation-rescuer-blank-reset",
|
|
2255
2305
|
onClick: () => send({
|
|
2256
2306
|
type: `reset${Kind}Invitation`
|
|
2257
2307
|
})
|
|
2258
|
-
}, t("reset label")))) : /* @__PURE__ */
|
|
2308
|
+
}, t("reset label")))) : /* @__PURE__ */ React32.createElement(InvitationActions, props));
|
|
2259
2309
|
};
|
|
2260
2310
|
|
|
2261
2311
|
// packages/sdk/shell/src/panels/JoinPanel/steps/InvitationAuthenticator.tsx
|
|
2262
|
-
import
|
|
2263
|
-
import { Input as Input2, useTranslation as
|
|
2312
|
+
import React33, { useState as useState6 } from "react";
|
|
2313
|
+
import { Input as Input2, useTranslation as useTranslation19 } from "@dxos/react-ui";
|
|
2264
2314
|
var pinLength = 6;
|
|
2265
2315
|
var InvitationAuthenticator = ({ failed, Kind, active, pending, invitationId, onInvitationAuthenticate, onInvitationCancel }) => {
|
|
2266
2316
|
const disabled = !active || pending;
|
|
2267
|
-
const { t } =
|
|
2317
|
+
const { t } = useTranslation19("os");
|
|
2268
2318
|
const invitationType = Kind.toLowerCase();
|
|
2269
2319
|
const [authCode, setAuthCode] = useState6("");
|
|
2270
2320
|
const onChange = ({ target: { value } }) => {
|
|
@@ -2273,16 +2323,16 @@ var InvitationAuthenticator = ({ failed, Kind, active, pending, invitationId, on
|
|
|
2273
2323
|
document.querySelector(`[data-autofocus-pinlength="${invitationType}"]`)?.focus();
|
|
2274
2324
|
}
|
|
2275
2325
|
};
|
|
2276
|
-
return /* @__PURE__ */
|
|
2326
|
+
return /* @__PURE__ */ React33.createElement(React33.Fragment, null, /* @__PURE__ */ React33.createElement("div", {
|
|
2277
2327
|
role: "none",
|
|
2278
2328
|
className: "grow flex flex-col justify-center"
|
|
2279
|
-
}, invitationId && /* @__PURE__ */
|
|
2329
|
+
}, invitationId && /* @__PURE__ */ React33.createElement(Emoji, {
|
|
2280
2330
|
text: toEmoji(invitationId)
|
|
2281
|
-
}), /* @__PURE__ */
|
|
2331
|
+
}), /* @__PURE__ */ React33.createElement(Input2.Root, failed && {
|
|
2282
2332
|
validationValence: "error"
|
|
2283
|
-
}, /* @__PURE__ */
|
|
2333
|
+
}, /* @__PURE__ */ React33.createElement(Input2.Label, {
|
|
2284
2334
|
asChild: true
|
|
2285
|
-
}, /* @__PURE__ */
|
|
2335
|
+
}, /* @__PURE__ */ React33.createElement(StepHeading, null, t("auth code input label"))), /* @__PURE__ */ React33.createElement(Input2.PinInput, {
|
|
2286
2336
|
disabled,
|
|
2287
2337
|
length: pinLength,
|
|
2288
2338
|
onChange,
|
|
@@ -2293,14 +2343,14 @@ var InvitationAuthenticator = ({ failed, Kind, active, pending, invitationId, on
|
|
|
2293
2343
|
"data-prevent-ios-autofocus": true,
|
|
2294
2344
|
"data-testid": `${invitationType}-auth-code-input`,
|
|
2295
2345
|
"data-1p-ignore": true
|
|
2296
|
-
}), failed && /* @__PURE__ */
|
|
2346
|
+
}), failed && /* @__PURE__ */ React33.createElement(Input2.DescriptionAndValidation, {
|
|
2297
2347
|
classNames: "text-center"
|
|
2298
|
-
}, /* @__PURE__ */
|
|
2348
|
+
}, /* @__PURE__ */ React33.createElement(Input2.Validation, null, t("failed to authenticate message"))))), /* @__PURE__ */ React33.createElement(Actions, null, /* @__PURE__ */ React33.createElement(Action, {
|
|
2299
2349
|
variant: "ghost",
|
|
2300
2350
|
disabled,
|
|
2301
2351
|
onClick: () => onInvitationCancel?.(),
|
|
2302
2352
|
"data-testid": `${invitationType}-invitation-authenticator-cancel`
|
|
2303
|
-
}, t("cancel label")), /* @__PURE__ */
|
|
2353
|
+
}, t("cancel label")), /* @__PURE__ */ React33.createElement(Action, {
|
|
2304
2354
|
variant: "primary",
|
|
2305
2355
|
disabled,
|
|
2306
2356
|
onClick: () => onInvitationAuthenticate?.(authCode),
|
|
@@ -2310,14 +2360,14 @@ var InvitationAuthenticator = ({ failed, Kind, active, pending, invitationId, on
|
|
|
2310
2360
|
};
|
|
2311
2361
|
|
|
2312
2362
|
// packages/sdk/shell/src/panels/JoinPanel/steps/ResetIdentity.tsx
|
|
2313
|
-
import
|
|
2363
|
+
import React34, { useState as useState7 } from "react";
|
|
2314
2364
|
import { log as log7 } from "@dxos/log";
|
|
2315
2365
|
import { useClient as useClient5 } from "@dxos/react-client";
|
|
2316
|
-
import { useTranslation as
|
|
2366
|
+
import { useTranslation as useTranslation20 } from "@dxos/react-ui";
|
|
2317
2367
|
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/steps/ResetIdentity.tsx";
|
|
2318
2368
|
var ResetIdentity = ({ send, active }) => {
|
|
2319
2369
|
const client = useClient5();
|
|
2320
|
-
const { t } =
|
|
2370
|
+
const { t } = useTranslation20("os");
|
|
2321
2371
|
const [validationMessage, setValidationMessage] = useState7("");
|
|
2322
2372
|
const resetIdentity = () => {
|
|
2323
2373
|
void client.reset().then(() => send?.({
|
|
@@ -2332,29 +2382,29 @@ var ResetIdentity = ({ send, active }) => {
|
|
|
2332
2382
|
setValidationMessage(t("failed to reset identity message"));
|
|
2333
2383
|
});
|
|
2334
2384
|
};
|
|
2335
|
-
return /* @__PURE__ */
|
|
2385
|
+
return /* @__PURE__ */ React34.createElement(ResetIdentityImpl, {
|
|
2336
2386
|
disabled: !active,
|
|
2337
2387
|
validationMessage,
|
|
2338
2388
|
onConfirm: () => resetIdentity()
|
|
2339
2389
|
});
|
|
2340
2390
|
};
|
|
2341
2391
|
var ResetIdentityImpl = ({ disabled, validationMessage, onConfirm }) => {
|
|
2342
|
-
const { t } =
|
|
2392
|
+
const { t } = useTranslation20("os");
|
|
2343
2393
|
const confirmationValue = t("confirmation value");
|
|
2344
2394
|
const [inputValue, setInputValue] = useState7("");
|
|
2345
|
-
return /* @__PURE__ */
|
|
2395
|
+
return /* @__PURE__ */ React34.createElement(React34.Fragment, null, /* @__PURE__ */ React34.createElement("div", {
|
|
2346
2396
|
role: "none",
|
|
2347
2397
|
className: "grow flex flex-col justify-center"
|
|
2348
|
-
}, /* @__PURE__ */
|
|
2398
|
+
}, /* @__PURE__ */ React34.createElement(Input, {
|
|
2349
2399
|
validationMessage,
|
|
2350
|
-
label: /* @__PURE__ */
|
|
2400
|
+
label: /* @__PURE__ */ React34.createElement(StepHeading, null, t("reset identity input label", {
|
|
2351
2401
|
confirmationValue
|
|
2352
2402
|
})),
|
|
2353
2403
|
disabled,
|
|
2354
2404
|
"data-testid": "identity-input",
|
|
2355
2405
|
placeholder: confirmationValue,
|
|
2356
2406
|
onChange: ({ target: { value } }) => setInputValue(value)
|
|
2357
|
-
})), /* @__PURE__ */
|
|
2407
|
+
})), /* @__PURE__ */ React34.createElement(Actions, null, /* @__PURE__ */ React34.createElement(Action, {
|
|
2358
2408
|
// TODO(wittjosiah): Probably make this red?
|
|
2359
2409
|
variant: "primary",
|
|
2360
2410
|
disabled: disabled || inputValue !== confirmationValue,
|
|
@@ -2391,47 +2441,47 @@ var resolvedTextColor = (status) => status === Invitation6.State.ERROR ? errorTe
|
|
|
2391
2441
|
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/JoinPanel/JoinPanel.tsx";
|
|
2392
2442
|
var JoinPanelImpl = (props) => {
|
|
2393
2443
|
const { titleId, send, activeView, failed, mode, unredeemedCodes, invitationStates, succeededKeys, failReasons, onExit, onHaloDone, onSpaceDone, exitActionParent, doneActionParent, onHaloInvitationCancel, onSpaceInvitationCancel, onHaloInvitationAuthenticate, onSpaceInvitationAuthenticate, IdentityInput: IdentityInputComponent = IdentityInput, ResetIdentity: ResetIdentityComponent = ResetIdentity } = props;
|
|
2394
|
-
return /* @__PURE__ */
|
|
2444
|
+
return /* @__PURE__ */ React35.createElement(DensityProvider3, {
|
|
2395
2445
|
density: "fine"
|
|
2396
|
-
}, mode !== "halo-only" && /* @__PURE__ */
|
|
2446
|
+
}, mode !== "halo-only" && /* @__PURE__ */ React35.createElement(JoinHeading, {
|
|
2397
2447
|
titleId,
|
|
2398
2448
|
mode,
|
|
2399
2449
|
onExit,
|
|
2400
2450
|
exitActionParent
|
|
2401
|
-
}), /* @__PURE__ */
|
|
2451
|
+
}), /* @__PURE__ */ React35.createElement(Viewport.Root, {
|
|
2402
2452
|
focusManaged: true,
|
|
2403
2453
|
activeView
|
|
2404
|
-
}, /* @__PURE__ */
|
|
2454
|
+
}, /* @__PURE__ */ React35.createElement(Viewport.Views, null, /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2405
2455
|
classNames: stepStyles,
|
|
2406
2456
|
id: "addition method chooser"
|
|
2407
|
-
}, /* @__PURE__ */
|
|
2457
|
+
}, /* @__PURE__ */ React35.createElement(AdditionMethodChooser, {
|
|
2408
2458
|
send,
|
|
2409
2459
|
active: activeView === "addition method chooser"
|
|
2410
|
-
})), /* @__PURE__ */
|
|
2460
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2411
2461
|
classNames: stepStyles,
|
|
2412
2462
|
id: "reset identity confirmation"
|
|
2413
|
-
}, /* @__PURE__ */
|
|
2463
|
+
}, /* @__PURE__ */ React35.createElement(ResetIdentityComponent, {
|
|
2414
2464
|
send,
|
|
2415
2465
|
method: "reset identity",
|
|
2416
2466
|
active: activeView === "reset identity confirmation"
|
|
2417
|
-
})), /* @__PURE__ */
|
|
2467
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2418
2468
|
classNames: stepStyles,
|
|
2419
2469
|
id: "create identity input"
|
|
2420
|
-
}, /* @__PURE__ */
|
|
2470
|
+
}, /* @__PURE__ */ React35.createElement(IdentityInputComponent, {
|
|
2421
2471
|
send,
|
|
2422
2472
|
method: "create identity",
|
|
2423
2473
|
active: activeView === "create identity input"
|
|
2424
|
-
})), /* @__PURE__ */
|
|
2474
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2425
2475
|
classNames: stepStyles,
|
|
2426
2476
|
id: "recover identity input"
|
|
2427
|
-
}, /* @__PURE__ */
|
|
2477
|
+
}, /* @__PURE__ */ React35.createElement(IdentityInputComponent, {
|
|
2428
2478
|
send,
|
|
2429
2479
|
method: "recover identity",
|
|
2430
2480
|
active: activeView === "recover identity input"
|
|
2431
|
-
})), /* @__PURE__ */
|
|
2481
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2432
2482
|
classNames: stepStyles,
|
|
2433
2483
|
id: "halo invitation input"
|
|
2434
|
-
}, /* @__PURE__ */
|
|
2484
|
+
}, /* @__PURE__ */ React35.createElement(InvitationInput, {
|
|
2435
2485
|
send,
|
|
2436
2486
|
Kind: "Halo",
|
|
2437
2487
|
active: activeView === "halo invitation input",
|
|
@@ -2441,20 +2491,20 @@ var JoinPanelImpl = (props) => {
|
|
|
2441
2491
|
...succeededKeys?.Halo && {
|
|
2442
2492
|
succeededKeys: succeededKeys.Halo
|
|
2443
2493
|
}
|
|
2444
|
-
})), /* @__PURE__ */
|
|
2494
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2445
2495
|
classNames: stepStyles,
|
|
2446
2496
|
id: "halo invitation rescuer"
|
|
2447
|
-
}, /* @__PURE__ */
|
|
2497
|
+
}, /* @__PURE__ */ React35.createElement(InvitationRescuer, {
|
|
2448
2498
|
send,
|
|
2449
2499
|
Kind: "Halo",
|
|
2450
2500
|
active: activeView === "halo invitation rescuer",
|
|
2451
2501
|
invitationState: invitationStates?.Halo,
|
|
2452
2502
|
onInvitationCancel: onHaloInvitationCancel,
|
|
2453
2503
|
failReason: failReasons?.Halo
|
|
2454
|
-
})), /* @__PURE__ */
|
|
2504
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2455
2505
|
classNames: stepStyles,
|
|
2456
2506
|
id: "halo invitation authenticator"
|
|
2457
|
-
}, /* @__PURE__ */
|
|
2507
|
+
}, /* @__PURE__ */ React35.createElement(InvitationAuthenticator, {
|
|
2458
2508
|
send,
|
|
2459
2509
|
Kind: "Halo",
|
|
2460
2510
|
active: activeView === "halo invitation authenticator",
|
|
@@ -2463,28 +2513,28 @@ var JoinPanelImpl = (props) => {
|
|
|
2463
2513
|
...failed.has("Halo") && {
|
|
2464
2514
|
failed: true
|
|
2465
2515
|
}
|
|
2466
|
-
})), /* @__PURE__ */
|
|
2516
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2467
2517
|
classNames: stepStyles,
|
|
2468
2518
|
id: "halo invitation accepted"
|
|
2469
|
-
}, /* @__PURE__ */
|
|
2519
|
+
}, /* @__PURE__ */ React35.createElement(InvitationAccepted, {
|
|
2470
2520
|
send,
|
|
2471
2521
|
Kind: "Halo",
|
|
2472
2522
|
active: activeView === "halo invitation accepted",
|
|
2473
2523
|
doneActionParent,
|
|
2474
2524
|
onDone: onHaloDone
|
|
2475
|
-
})), /* @__PURE__ */
|
|
2525
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2476
2526
|
classNames: stepStyles,
|
|
2477
2527
|
id: "identity added"
|
|
2478
|
-
}, /* @__PURE__ */
|
|
2528
|
+
}, /* @__PURE__ */ React35.createElement(IdentityAdded, {
|
|
2479
2529
|
send,
|
|
2480
2530
|
mode,
|
|
2481
2531
|
active: activeView === "identity added",
|
|
2482
2532
|
doneActionParent,
|
|
2483
2533
|
onDone: onHaloDone
|
|
2484
|
-
})), /* @__PURE__ */
|
|
2534
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2485
2535
|
classNames: stepStyles,
|
|
2486
2536
|
id: "space invitation input"
|
|
2487
|
-
}, /* @__PURE__ */
|
|
2537
|
+
}, /* @__PURE__ */ React35.createElement(InvitationInput, {
|
|
2488
2538
|
send,
|
|
2489
2539
|
Kind: "Space",
|
|
2490
2540
|
active: activeView === "space invitation input",
|
|
@@ -2496,20 +2546,20 @@ var JoinPanelImpl = (props) => {
|
|
|
2496
2546
|
},
|
|
2497
2547
|
onExit,
|
|
2498
2548
|
exitActionParent
|
|
2499
|
-
})), /* @__PURE__ */
|
|
2549
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2500
2550
|
classNames: stepStyles,
|
|
2501
2551
|
id: "space invitation rescuer"
|
|
2502
|
-
}, /* @__PURE__ */
|
|
2552
|
+
}, /* @__PURE__ */ React35.createElement(InvitationRescuer, {
|
|
2503
2553
|
send,
|
|
2504
2554
|
Kind: "Space",
|
|
2505
2555
|
active: activeView === "space invitation rescuer",
|
|
2506
2556
|
invitationState: invitationStates?.Space,
|
|
2507
2557
|
onInvitationCancel: onSpaceInvitationCancel,
|
|
2508
2558
|
failReason: failReasons?.Space
|
|
2509
|
-
})), /* @__PURE__ */
|
|
2559
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2510
2560
|
classNames: stepStyles,
|
|
2511
2561
|
id: "space invitation authenticator"
|
|
2512
|
-
}, /* @__PURE__ */
|
|
2562
|
+
}, /* @__PURE__ */ React35.createElement(InvitationAuthenticator, {
|
|
2513
2563
|
send,
|
|
2514
2564
|
Kind: "Space",
|
|
2515
2565
|
active: activeView === "space invitation authenticator",
|
|
@@ -2518,10 +2568,10 @@ var JoinPanelImpl = (props) => {
|
|
|
2518
2568
|
...failed.has("Space") && {
|
|
2519
2569
|
failed: true
|
|
2520
2570
|
}
|
|
2521
|
-
})), /* @__PURE__ */
|
|
2571
|
+
})), /* @__PURE__ */ React35.createElement(Viewport.View, {
|
|
2522
2572
|
classNames: stepStyles,
|
|
2523
2573
|
id: "space invitation accepted"
|
|
2524
|
-
}, /* @__PURE__ */
|
|
2574
|
+
}, /* @__PURE__ */ React35.createElement(InvitationAccepted, {
|
|
2525
2575
|
send,
|
|
2526
2576
|
Kind: "Space",
|
|
2527
2577
|
active: activeView === "space invitation accepted",
|
|
@@ -2545,12 +2595,11 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialInvitationCod
|
|
|
2545
2595
|
}
|
|
2546
2596
|
}
|
|
2547
2597
|
});
|
|
2548
|
-
console.log("[joinState]", joinState);
|
|
2549
2598
|
useEffect4(() => {
|
|
2550
2599
|
const subscription = joinService.subscribe((state) => {
|
|
2551
2600
|
log8("[state]", state, {
|
|
2552
2601
|
F: __dxlog_file8,
|
|
2553
|
-
L:
|
|
2602
|
+
L: 198,
|
|
2554
2603
|
S: void 0,
|
|
2555
2604
|
C: (f, a) => f(...a)
|
|
2556
2605
|
});
|
|
@@ -2744,7 +2793,8 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialInvitationCod
|
|
|
2744
2793
|
propsOnDone?.({
|
|
2745
2794
|
identityKey: joinState.context.halo.invitation?.identityKey ?? null,
|
|
2746
2795
|
swarmKey: joinState.context.halo.invitation?.swarmKey ?? null,
|
|
2747
|
-
spaceKey: joinState.context.halo.invitation?.spaceKey ?? null
|
|
2796
|
+
spaceKey: joinState.context.halo.invitation?.spaceKey ?? null,
|
|
2797
|
+
target: joinState.context.halo.invitation?.target ?? null
|
|
2748
2798
|
});
|
|
2749
2799
|
}, [
|
|
2750
2800
|
joinState,
|
|
@@ -2754,13 +2804,14 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialInvitationCod
|
|
|
2754
2804
|
propsOnDone?.({
|
|
2755
2805
|
identityKey: joinState.context.space.invitation?.identityKey ?? null,
|
|
2756
2806
|
swarmKey: joinState.context.space.invitation?.swarmKey ?? null,
|
|
2757
|
-
spaceKey: joinState.context.space.invitation?.spaceKey ?? null
|
|
2807
|
+
spaceKey: joinState.context.space.invitation?.spaceKey ?? null,
|
|
2808
|
+
target: joinState.context.space.invitation?.target ?? null
|
|
2758
2809
|
});
|
|
2759
2810
|
}, [
|
|
2760
2811
|
joinState,
|
|
2761
2812
|
propsOnDone
|
|
2762
2813
|
]);
|
|
2763
|
-
return /* @__PURE__ */
|
|
2814
|
+
return /* @__PURE__ */ React35.createElement(JoinPanelImpl, {
|
|
2764
2815
|
titleId,
|
|
2765
2816
|
mode,
|
|
2766
2817
|
send: joinSend,
|
|
@@ -2799,10 +2850,10 @@ var JoinPanel = ({ titleId: propsTitleId, mode = "default", initialInvitationCod
|
|
|
2799
2850
|
|
|
2800
2851
|
// packages/sdk/shell/src/panels/SpacePanel/SpacePanel.tsx
|
|
2801
2852
|
import { Planet } from "@phosphor-icons/react";
|
|
2802
|
-
import
|
|
2853
|
+
import React37, { useEffect as useEffect5, useMemo as useMemo5 } from "react";
|
|
2803
2854
|
import { log as log10 } from "@dxos/log";
|
|
2804
2855
|
import { useInvitationStatus as useInvitationStatus3 } from "@dxos/react-client/invitations";
|
|
2805
|
-
import { DensityProvider as DensityProvider4, useId as useId8, useTranslation as
|
|
2856
|
+
import { DensityProvider as DensityProvider4, useId as useId8, useTranslation as useTranslation22 } from "@dxos/react-ui";
|
|
2806
2857
|
|
|
2807
2858
|
// packages/sdk/shell/src/panels/SpacePanel/spaceMachine.ts
|
|
2808
2859
|
import { useMachine as useMachine3 } from "@xstate/react";
|
|
@@ -2868,16 +2919,16 @@ var useSpaceMachine = (options) => {
|
|
|
2868
2919
|
|
|
2869
2920
|
// packages/sdk/shell/src/panels/SpacePanel/steps/SpaceManager.tsx
|
|
2870
2921
|
import { Placeholder as Placeholder2, UserPlus, UsersThree } from "@phosphor-icons/react";
|
|
2871
|
-
import
|
|
2922
|
+
import React36, { useCallback as useCallback7, useState as useState8 } from "react";
|
|
2872
2923
|
import { useConfig } from "@dxos/react-client";
|
|
2873
2924
|
import { useSpaceInvitations as useSpaceInvitations2 } from "@dxos/react-client/echo";
|
|
2874
2925
|
import { Invitation as Invitation7, InvitationEncoder as InvitationEncoder3 } from "@dxos/react-client/invitations";
|
|
2875
|
-
import { ScrollArea, useTranslation as
|
|
2926
|
+
import { ScrollArea, useTranslation as useTranslation21 } from "@dxos/react-ui";
|
|
2876
2927
|
import { descriptionText as descriptionText10, mx as mx21 } from "@dxos/react-ui-theme";
|
|
2877
2928
|
var activeActionKey = "dxos:react-shell/space-manager/active-action";
|
|
2878
2929
|
var SpaceManager = (props) => {
|
|
2879
|
-
const { space } = props;
|
|
2880
|
-
const { t } =
|
|
2930
|
+
const { space, target } = props;
|
|
2931
|
+
const { t } = useTranslation21("os");
|
|
2881
2932
|
const config = useConfig();
|
|
2882
2933
|
const invitations = useSpaceInvitations2(space?.key);
|
|
2883
2934
|
const onInvitationEvent = useCallback7((invitation) => {
|
|
@@ -2897,7 +2948,8 @@ var SpaceManager = (props) => {
|
|
|
2897
2948
|
onClick: useCallback7(() => {
|
|
2898
2949
|
const invitation = space.share?.({
|
|
2899
2950
|
type: Invitation7.Type.INTERACTIVE,
|
|
2900
|
-
authMethod: Invitation7.AuthMethod.SHARED_SECRET
|
|
2951
|
+
authMethod: Invitation7.AuthMethod.SHARED_SECRET,
|
|
2952
|
+
target
|
|
2901
2953
|
});
|
|
2902
2954
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
2903
2955
|
invitation.subscribe(onInvitationEvent);
|
|
@@ -2913,7 +2965,8 @@ var SpaceManager = (props) => {
|
|
|
2913
2965
|
onClick: useCallback7(() => {
|
|
2914
2966
|
const invitation = space.share?.({
|
|
2915
2967
|
type: Invitation7.Type.MULTIUSE,
|
|
2916
|
-
authMethod: Invitation7.AuthMethod.NONE
|
|
2968
|
+
authMethod: Invitation7.AuthMethod.NONE,
|
|
2969
|
+
target
|
|
2917
2970
|
});
|
|
2918
2971
|
if (invitation && config.values.runtime?.app?.env?.DX_ENVIRONMENT !== "production") {
|
|
2919
2972
|
invitation.subscribe(onInvitationEvent);
|
|
@@ -2923,7 +2976,7 @@ var SpaceManager = (props) => {
|
|
|
2923
2976
|
])
|
|
2924
2977
|
}
|
|
2925
2978
|
};
|
|
2926
|
-
return /* @__PURE__ */
|
|
2979
|
+
return /* @__PURE__ */ React36.createElement(SpaceManagerImpl, {
|
|
2927
2980
|
...props,
|
|
2928
2981
|
invitations,
|
|
2929
2982
|
inviteActions
|
|
@@ -2932,7 +2985,7 @@ var SpaceManager = (props) => {
|
|
|
2932
2985
|
var headingFragment = "pis-3 pie-1 plb-1 mbe-1 font-medium";
|
|
2933
2986
|
var SpaceManagerImpl = (props) => {
|
|
2934
2987
|
const { active, space, createInvitationUrl, send, inviteActions: propsInviteActions, invitations, showInactiveInvitations, SpaceMemberList: SpaceMemberListComponent = SpaceMemberList, InvitationList: InvitationListComponent = InvitationList } = props;
|
|
2935
|
-
const { t } =
|
|
2988
|
+
const { t } = useTranslation21("os");
|
|
2936
2989
|
const inviteActions = propsInviteActions ?? {
|
|
2937
2990
|
noopInvite: {
|
|
2938
2991
|
label: t("create space invitation label"),
|
|
@@ -2950,26 +3003,26 @@ var SpaceManagerImpl = (props) => {
|
|
|
2950
3003
|
const visibleInvitations = showInactiveInvitations ? invitations : invitations?.filter((invitation) => ![
|
|
2951
3004
|
Invitation7.State.CANCELLED
|
|
2952
3005
|
].includes(invitation.get().state));
|
|
2953
|
-
return /* @__PURE__ */
|
|
3006
|
+
return /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement(ScrollArea.Root, {
|
|
2954
3007
|
classNames: "grow shrink basis-28 -mli-2"
|
|
2955
|
-
}, /* @__PURE__ */
|
|
3008
|
+
}, /* @__PURE__ */ React36.createElement(ScrollArea.Viewport, {
|
|
2956
3009
|
classNames: "is-full pie-2"
|
|
2957
|
-
}, !!visibleInvitations?.length && /* @__PURE__ */
|
|
3010
|
+
}, !!visibleInvitations?.length && /* @__PURE__ */ React36.createElement(React36.Fragment, null, /* @__PURE__ */ React36.createElement("h3", {
|
|
2958
3011
|
className: mx21(headingFragment, descriptionText10)
|
|
2959
|
-
}, t("invitation list heading")), /* @__PURE__ */
|
|
3012
|
+
}, t("invitation list heading")), /* @__PURE__ */ React36.createElement(InvitationListComponent, {
|
|
2960
3013
|
className: "mb-2",
|
|
2961
3014
|
send,
|
|
2962
3015
|
invitations: visibleInvitations ?? [],
|
|
2963
3016
|
onClickRemove: (invitation) => invitation.cancel(),
|
|
2964
3017
|
createInvitationUrl
|
|
2965
|
-
}), /* @__PURE__ */
|
|
3018
|
+
}), /* @__PURE__ */ React36.createElement("h3", {
|
|
2966
3019
|
className: mx21(headingFragment, descriptionText10, "mbs-2")
|
|
2967
|
-
}, t("space member list heading"))), /* @__PURE__ */
|
|
3020
|
+
}, t("space member list heading"))), /* @__PURE__ */ React36.createElement(SpaceMemberListComponent, {
|
|
2968
3021
|
spaceKey: space.key,
|
|
2969
3022
|
includeSelf: true
|
|
2970
|
-
})), /* @__PURE__ */
|
|
3023
|
+
})), /* @__PURE__ */ React36.createElement(ScrollArea.Scrollbar, {
|
|
2971
3024
|
orientation: "vertical"
|
|
2972
|
-
}, /* @__PURE__ */
|
|
3025
|
+
}, /* @__PURE__ */ React36.createElement(ScrollArea.Thumb, null))), /* @__PURE__ */ React36.createElement(Actions, null, /* @__PURE__ */ React36.createElement(BifurcatedAction, {
|
|
2973
3026
|
disabled: !active,
|
|
2974
3027
|
actions: inviteActions,
|
|
2975
3028
|
activeAction,
|
|
@@ -2981,45 +3034,46 @@ var SpaceManagerImpl = (props) => {
|
|
|
2981
3034
|
// packages/sdk/shell/src/panels/SpacePanel/SpacePanel.tsx
|
|
2982
3035
|
var __dxlog_file10 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/panels/SpacePanel/SpacePanel.tsx";
|
|
2983
3036
|
var SpacePanelHeading = ({ titleId, space, onDone }) => {
|
|
2984
|
-
const { t } =
|
|
3037
|
+
const { t } = useTranslation22("os");
|
|
2985
3038
|
const name = space.properties.name;
|
|
2986
|
-
return /* @__PURE__ */
|
|
3039
|
+
return /* @__PURE__ */ React37.createElement(Heading, {
|
|
2987
3040
|
titleId,
|
|
2988
3041
|
title: t("space panel heading"),
|
|
2989
|
-
corner: /* @__PURE__ */
|
|
3042
|
+
corner: /* @__PURE__ */ React37.createElement(CloseButton, {
|
|
2990
3043
|
"data-testid": "identity-panel-done",
|
|
2991
3044
|
onDone
|
|
2992
3045
|
})
|
|
2993
|
-
}, /* @__PURE__ */
|
|
3046
|
+
}, /* @__PURE__ */ React37.createElement("div", {
|
|
2994
3047
|
role: "none",
|
|
2995
3048
|
className: "flex gap-4 items-center justify-center mlb-4"
|
|
2996
|
-
}, /* @__PURE__ */
|
|
3049
|
+
}, /* @__PURE__ */ React37.createElement(Planet, {
|
|
2997
3050
|
size: 32
|
|
2998
|
-
}), /* @__PURE__ */
|
|
3051
|
+
}), /* @__PURE__ */ React37.createElement("div", {
|
|
2999
3052
|
className: "block text-start font-light text-xl"
|
|
3000
3053
|
}, name ?? space.key.truncate())));
|
|
3001
3054
|
};
|
|
3002
3055
|
var SpacePanelImpl = (props) => {
|
|
3003
|
-
const { titleId, activeView, space, SpaceManager: SpaceManagerComponent = SpaceManager, InvitationManager: InvitationManagerComponent = InvitationManager, ...rest } = props;
|
|
3004
|
-
return /* @__PURE__ */
|
|
3056
|
+
const { titleId, activeView, space, target, SpaceManager: SpaceManagerComponent = SpaceManager, InvitationManager: InvitationManagerComponent = InvitationManager, ...rest } = props;
|
|
3057
|
+
return /* @__PURE__ */ React37.createElement(DensityProvider4, {
|
|
3005
3058
|
density: "fine"
|
|
3006
|
-
}, /* @__PURE__ */
|
|
3059
|
+
}, /* @__PURE__ */ React37.createElement(SpacePanelHeading, {
|
|
3007
3060
|
...rest,
|
|
3008
3061
|
titleId,
|
|
3009
3062
|
space
|
|
3010
|
-
}), /* @__PURE__ */
|
|
3063
|
+
}), /* @__PURE__ */ React37.createElement(Viewport.Root, {
|
|
3011
3064
|
activeView
|
|
3012
|
-
}, /* @__PURE__ */
|
|
3065
|
+
}, /* @__PURE__ */ React37.createElement(Viewport.Views, null, /* @__PURE__ */ React37.createElement(Viewport.View, {
|
|
3013
3066
|
id: "space manager",
|
|
3014
3067
|
classNames: stepStyles
|
|
3015
|
-
}, /* @__PURE__ */
|
|
3068
|
+
}, /* @__PURE__ */ React37.createElement(SpaceManagerComponent, {
|
|
3016
3069
|
active: activeView === "space manager",
|
|
3017
3070
|
space,
|
|
3071
|
+
target,
|
|
3018
3072
|
...rest
|
|
3019
|
-
})), /* @__PURE__ */
|
|
3073
|
+
})), /* @__PURE__ */ React37.createElement(Viewport.View, {
|
|
3020
3074
|
id: "space invitation manager",
|
|
3021
3075
|
classNames: stepStyles
|
|
3022
|
-
}, /* @__PURE__ */
|
|
3076
|
+
}, /* @__PURE__ */ React37.createElement(InvitationManagerComponent, {
|
|
3023
3077
|
active: activeView === "space invitation manager",
|
|
3024
3078
|
...rest,
|
|
3025
3079
|
invitationUrl: props.invitationUrl
|
|
@@ -3027,7 +3081,7 @@ var SpacePanelImpl = (props) => {
|
|
|
3027
3081
|
};
|
|
3028
3082
|
var SpacePanelWithInvitationImpl = ({ invitation, ...props }) => {
|
|
3029
3083
|
const invitationStatus = useInvitationStatus3(invitation);
|
|
3030
|
-
return /* @__PURE__ */
|
|
3084
|
+
return /* @__PURE__ */ React37.createElement(SpacePanelImpl, {
|
|
3031
3085
|
...props,
|
|
3032
3086
|
...invitationStatus,
|
|
3033
3087
|
invitationUrl: props.createInvitationUrl(invitationStatus.invitationCode)
|
|
@@ -3044,7 +3098,7 @@ var SpacePanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => code,
|
|
|
3044
3098
|
const subscription = spaceService.subscribe((state) => {
|
|
3045
3099
|
log10("[state]", state, {
|
|
3046
3100
|
F: __dxlog_file10,
|
|
3047
|
-
L:
|
|
3101
|
+
L: 94,
|
|
3048
3102
|
S: void 0,
|
|
3049
3103
|
C: (f, a) => f(...a)
|
|
3050
3104
|
});
|
|
@@ -3072,62 +3126,65 @@ var SpacePanel = ({ titleId: propsTitleId, createInvitationUrl = (code) => code,
|
|
|
3072
3126
|
titleId,
|
|
3073
3127
|
createInvitationUrl
|
|
3074
3128
|
};
|
|
3075
|
-
return spaceState.context.invitation ?
|
|
3076
|
-
|
|
3077
|
-
|
|
3078
|
-
|
|
3129
|
+
return spaceState.context.invitation ? (
|
|
3130
|
+
// TODO(wittjosiah): Unused? Remove?
|
|
3131
|
+
/* @__PURE__ */ React37.createElement(SpacePanelWithInvitationImpl, {
|
|
3132
|
+
...implProps,
|
|
3133
|
+
invitation: spaceState.context.invitation
|
|
3134
|
+
})
|
|
3135
|
+
) : /* @__PURE__ */ React37.createElement(SpacePanelImpl, implProps);
|
|
3079
3136
|
};
|
|
3080
3137
|
|
|
3081
3138
|
// packages/sdk/shell/src/composites/IdentityDialog/IdentityDialog.tsx
|
|
3082
3139
|
var IdentityDialog = (props) => {
|
|
3083
3140
|
const titleId = useId9("spaceDialog__title");
|
|
3084
|
-
return /* @__PURE__ */
|
|
3141
|
+
return /* @__PURE__ */ React38.createElement(Dialog.Root, {
|
|
3085
3142
|
defaultOpen: true,
|
|
3086
3143
|
onOpenChange: (open) => open || props.onDone?.()
|
|
3087
|
-
}, /* @__PURE__ */
|
|
3144
|
+
}, /* @__PURE__ */ React38.createElement(Dialog.Portal, null, /* @__PURE__ */ React38.createElement(Dialog.Overlay, null, /* @__PURE__ */ React38.createElement(Dialog.Content, {
|
|
3088
3145
|
"aria-labelledby": titleId,
|
|
3089
3146
|
onOpenAutoFocus: (e) => e.preventDefault()
|
|
3090
|
-
}, /* @__PURE__ */
|
|
3147
|
+
}, /* @__PURE__ */ React38.createElement(ClipboardProvider, null, /* @__PURE__ */ React38.createElement(IdentityPanel, {
|
|
3091
3148
|
...props,
|
|
3092
3149
|
titleId,
|
|
3093
|
-
doneActionParent: /* @__PURE__ */
|
|
3150
|
+
doneActionParent: /* @__PURE__ */ React38.createElement(Dialog.Close, {
|
|
3094
3151
|
asChild: true
|
|
3095
3152
|
})
|
|
3096
3153
|
}))))));
|
|
3097
3154
|
};
|
|
3098
3155
|
|
|
3099
3156
|
// packages/sdk/shell/src/composites/JoinDialog/JoinDialog.tsx
|
|
3100
|
-
import
|
|
3157
|
+
import React39 from "react";
|
|
3101
3158
|
import { AlertDialog, useId as useId10, useVisualViewport } from "@dxos/react-ui";
|
|
3102
3159
|
var JoinDialog = (joinPanelProps) => {
|
|
3103
3160
|
const titleId = useId10("joinDialog__title");
|
|
3104
3161
|
const { height } = useVisualViewport();
|
|
3105
|
-
return /* @__PURE__ */
|
|
3162
|
+
return /* @__PURE__ */ React39.createElement(AlertDialog.Root, {
|
|
3106
3163
|
defaultOpen: true,
|
|
3107
3164
|
onOpenChange: (open) => open || (joinPanelProps.onExit ? joinPanelProps.onExit() : joinPanelProps.onDone?.(null))
|
|
3108
|
-
}, /* @__PURE__ */
|
|
3165
|
+
}, /* @__PURE__ */ React39.createElement(AlertDialog.Portal, null, /* @__PURE__ */ React39.createElement(AlertDialog.Overlay, {
|
|
3109
3166
|
classNames: "backdrop-blur",
|
|
3110
3167
|
...height && {
|
|
3111
3168
|
style: {
|
|
3112
3169
|
blockSize: `${height}px`
|
|
3113
3170
|
}
|
|
3114
3171
|
}
|
|
3115
|
-
}, /* @__PURE__ */
|
|
3172
|
+
}, /* @__PURE__ */ React39.createElement(AlertDialog.Content, {
|
|
3116
3173
|
"aria-labelledby": titleId
|
|
3117
|
-
}, /* @__PURE__ */
|
|
3174
|
+
}, /* @__PURE__ */ React39.createElement(JoinPanel, {
|
|
3118
3175
|
...joinPanelProps,
|
|
3119
3176
|
titleId,
|
|
3120
|
-
exitActionParent: /* @__PURE__ */
|
|
3177
|
+
exitActionParent: /* @__PURE__ */ React39.createElement(AlertDialog.Cancel, {
|
|
3121
3178
|
asChild: true
|
|
3122
3179
|
}),
|
|
3123
|
-
doneActionParent: /* @__PURE__ */
|
|
3180
|
+
doneActionParent: /* @__PURE__ */ React39.createElement(AlertDialog.Action, {
|
|
3124
3181
|
asChild: true
|
|
3125
3182
|
})
|
|
3126
3183
|
})))));
|
|
3127
3184
|
};
|
|
3128
3185
|
|
|
3129
3186
|
// packages/sdk/shell/src/composites/Shell/run-shell.tsx
|
|
3130
|
-
import
|
|
3187
|
+
import React42, { StrictMode } from "react";
|
|
3131
3188
|
import { createRoot } from "react-dom/client";
|
|
3132
3189
|
import { DEFAULT_CLIENT_CHANNEL, DEFAULT_SHELL_CHANNEL } from "@dxos/client-protocol";
|
|
3133
3190
|
import { ShellRuntimeImpl } from "@dxos/client-services";
|
|
@@ -3137,25 +3194,25 @@ import { defaultTx } from "@dxos/react-ui-theme";
|
|
|
3137
3194
|
import { createIFramePort } from "@dxos/rpc-tunnel";
|
|
3138
3195
|
|
|
3139
3196
|
// packages/sdk/shell/src/composites/Shell/Shell.tsx
|
|
3140
|
-
import
|
|
3197
|
+
import React41, { useEffect as useEffect6, useState as useState9 } from "react";
|
|
3141
3198
|
import { log as log11 } from "@dxos/log";
|
|
3142
3199
|
import { ShellDisplay, ShellLayout } from "@dxos/react-client";
|
|
3143
3200
|
import { useSpace as useSpace2 } from "@dxos/react-client/echo";
|
|
3144
3201
|
|
|
3145
3202
|
// packages/sdk/shell/src/composites/SpaceDialog/SpaceDialog.tsx
|
|
3146
|
-
import
|
|
3203
|
+
import React40 from "react";
|
|
3147
3204
|
import { Dialog as Dialog2, useId as useId11 } from "@dxos/react-ui";
|
|
3148
3205
|
var SpaceDialog = (spacePanelProps) => {
|
|
3149
3206
|
const titleId = useId11("spaceDialog__title");
|
|
3150
|
-
return /* @__PURE__ */
|
|
3207
|
+
return /* @__PURE__ */ React40.createElement(Dialog2.Root, {
|
|
3151
3208
|
defaultOpen: true,
|
|
3152
3209
|
onOpenChange: (open) => open || spacePanelProps.onDone?.()
|
|
3153
|
-
}, /* @__PURE__ */
|
|
3210
|
+
}, /* @__PURE__ */ React40.createElement(Dialog2.Portal, null, /* @__PURE__ */ React40.createElement(Dialog2.Overlay, null, /* @__PURE__ */ React40.createElement(Dialog2.Content, {
|
|
3154
3211
|
"aria-labelledby": titleId
|
|
3155
|
-
}, /* @__PURE__ */
|
|
3212
|
+
}, /* @__PURE__ */ React40.createElement(ClipboardProvider, null, /* @__PURE__ */ React40.createElement(SpacePanel, {
|
|
3156
3213
|
...spacePanelProps,
|
|
3157
3214
|
titleId,
|
|
3158
|
-
doneActionParent: /* @__PURE__ */
|
|
3215
|
+
doneActionParent: /* @__PURE__ */ React40.createElement(Dialog2.Close, {
|
|
3159
3216
|
asChild: true
|
|
3160
3217
|
})
|
|
3161
3218
|
}))))));
|
|
@@ -3164,10 +3221,11 @@ var SpaceDialog = (spacePanelProps) => {
|
|
|
3164
3221
|
// packages/sdk/shell/src/composites/Shell/Shell.tsx
|
|
3165
3222
|
var __dxlog_file11 = "/home/runner/work/dxos/dxos/packages/sdk/shell/src/composites/Shell/Shell.tsx";
|
|
3166
3223
|
var Shell = ({ runtime, origin }) => {
|
|
3167
|
-
const [{ layout, invitationCode, spaceKey }, setLayout] = useState9({
|
|
3224
|
+
const [{ layout, invitationCode, spaceKey, target }, setLayout] = useState9({
|
|
3168
3225
|
layout: runtime.layout,
|
|
3169
3226
|
invitationCode: runtime.invitationCode,
|
|
3170
|
-
spaceKey: runtime.spaceKey
|
|
3227
|
+
spaceKey: runtime.spaceKey,
|
|
3228
|
+
target: runtime.target
|
|
3171
3229
|
});
|
|
3172
3230
|
const space = useSpace2(spaceKey);
|
|
3173
3231
|
useEffect6(() => {
|
|
@@ -3179,7 +3237,7 @@ var Shell = ({ runtime, origin }) => {
|
|
|
3179
3237
|
if (layout === ShellLayout.SPACE && !space) {
|
|
3180
3238
|
log11.warn("No space found for shell space invitations.", void 0, {
|
|
3181
3239
|
F: __dxlog_file11,
|
|
3182
|
-
L:
|
|
3240
|
+
L: 31,
|
|
3183
3241
|
S: void 0,
|
|
3184
3242
|
C: (f, a) => f(...a)
|
|
3185
3243
|
});
|
|
@@ -3200,7 +3258,7 @@ var Shell = ({ runtime, origin }) => {
|
|
|
3200
3258
|
]);
|
|
3201
3259
|
switch (layout) {
|
|
3202
3260
|
case ShellLayout.INITIALIZE_IDENTITY:
|
|
3203
|
-
return /* @__PURE__ */
|
|
3261
|
+
return /* @__PURE__ */ React41.createElement(JoinDialog, {
|
|
3204
3262
|
mode: "halo-only",
|
|
3205
3263
|
initialInvitationCode: invitationCode,
|
|
3206
3264
|
onDone: () => {
|
|
@@ -3215,7 +3273,7 @@ var Shell = ({ runtime, origin }) => {
|
|
|
3215
3273
|
case ShellLayout.IDENTITY:
|
|
3216
3274
|
case ShellLayout.SHARE_IDENTITY:
|
|
3217
3275
|
case ShellLayout.EDIT_PROFILE:
|
|
3218
|
-
return /* @__PURE__ */
|
|
3276
|
+
return /* @__PURE__ */ React41.createElement(IdentityDialog, {
|
|
3219
3277
|
createInvitationUrl: (invitationCode2) => `${origin}?deviceInvitationCode=${invitationCode2}`,
|
|
3220
3278
|
onDone: async () => {
|
|
3221
3279
|
await runtime.setAppContext({
|
|
@@ -3227,8 +3285,9 @@ var Shell = ({ runtime, origin }) => {
|
|
|
3227
3285
|
}
|
|
3228
3286
|
});
|
|
3229
3287
|
case ShellLayout.SPACE:
|
|
3230
|
-
return space ? /* @__PURE__ */
|
|
3288
|
+
return space ? /* @__PURE__ */ React41.createElement(SpaceDialog, {
|
|
3231
3289
|
space,
|
|
3290
|
+
target,
|
|
3232
3291
|
createInvitationUrl: (invitationCode2) => `${origin}?spaceInvitationCode=${invitationCode2}`,
|
|
3233
3292
|
onDone: async () => {
|
|
3234
3293
|
await runtime.setAppContext({
|
|
@@ -3240,12 +3299,14 @@ var Shell = ({ runtime, origin }) => {
|
|
|
3240
3299
|
}
|
|
3241
3300
|
}) : null;
|
|
3242
3301
|
case ShellLayout.JOIN_SPACE:
|
|
3243
|
-
return /* @__PURE__ */
|
|
3302
|
+
return /* @__PURE__ */ React41.createElement(JoinDialog, {
|
|
3244
3303
|
initialInvitationCode: invitationCode,
|
|
3245
3304
|
onDone: async (result) => {
|
|
3305
|
+
const target2 = result?.target ?? void 0;
|
|
3246
3306
|
await runtime.setAppContext({
|
|
3247
3307
|
display: ShellDisplay.NONE,
|
|
3248
|
-
spaceKey: result?.spaceKey ?? void 0
|
|
3308
|
+
spaceKey: result?.spaceKey ?? void 0,
|
|
3309
|
+
target: target2
|
|
3249
3310
|
});
|
|
3250
3311
|
runtime.setLayout({
|
|
3251
3312
|
layout: ShellLayout.DEFAULT
|
|
@@ -3337,7 +3398,8 @@ var os = {
|
|
|
3337
3398
|
"selecting identity heading": "Selecting identity",
|
|
3338
3399
|
"devices heading": "Devices",
|
|
3339
3400
|
"identity heading": "Profile settings",
|
|
3340
|
-
"choose
|
|
3401
|
+
"choose add device label": "Add device",
|
|
3402
|
+
"choose devices label": "Manage devices",
|
|
3341
3403
|
"choose profile label": "Edit profile",
|
|
3342
3404
|
"choose sign out label": "Sign out",
|
|
3343
3405
|
"empty space members message": "There is nobody in this space yet.",
|
|
@@ -3388,24 +3450,24 @@ var runShell = async (config = new Config()) => {
|
|
|
3388
3450
|
runtime.open(),
|
|
3389
3451
|
client.initialize()
|
|
3390
3452
|
]);
|
|
3391
|
-
createRoot(document.getElementById("root")).render(/* @__PURE__ */
|
|
3453
|
+
createRoot(document.getElementById("root")).render(/* @__PURE__ */ React42.createElement(StrictMode, null, /* @__PURE__ */ React42.createElement(ThemeProvider, {
|
|
3392
3454
|
tx: defaultTx,
|
|
3393
3455
|
resourceExtensions: [
|
|
3394
3456
|
osTranslations
|
|
3395
3457
|
]
|
|
3396
|
-
}, /* @__PURE__ */
|
|
3458
|
+
}, /* @__PURE__ */ React42.createElement(ClientContext.Provider, {
|
|
3397
3459
|
value: {
|
|
3398
3460
|
client,
|
|
3399
3461
|
status: SystemStatus.ACTIVE
|
|
3400
3462
|
}
|
|
3401
|
-
}, /* @__PURE__ */
|
|
3463
|
+
}, /* @__PURE__ */ React42.createElement(ClipboardProvider, null, /* @__PURE__ */ React42.createElement(Tooltip3.Provider, null, /* @__PURE__ */ React42.createElement(Shell, {
|
|
3402
3464
|
runtime,
|
|
3403
3465
|
origin: location.origin
|
|
3404
3466
|
})))))));
|
|
3405
3467
|
};
|
|
3406
3468
|
|
|
3407
3469
|
// packages/sdk/shell/src/composites/Shell/ShellContext.tsx
|
|
3408
|
-
import
|
|
3470
|
+
import React43, { createContext as createContext2, useCallback as useCallback8, useContext as useContext2, useEffect as useEffect7, useMemo as useMemo6, useState as useState10 } from "react";
|
|
3409
3471
|
import { ShellDisplay as ShellDisplay2, ShellLayout as ShellLayout3, useClient as useClient7 } from "@dxos/react-client";
|
|
3410
3472
|
import { useIdentity as useIdentity3 } from "@dxos/react-client/halo";
|
|
3411
3473
|
import { mx as mx22 } from "@dxos/react-ui-theme";
|
|
@@ -3537,12 +3599,12 @@ var ShellProvider = ({ space, deviceInvitationCode, spaceInvitationCode, onJoine
|
|
|
3537
3599
|
}, [
|
|
3538
3600
|
shellRuntime
|
|
3539
3601
|
]);
|
|
3540
|
-
return /* @__PURE__ */
|
|
3602
|
+
return /* @__PURE__ */ React43.createElement(React43.Fragment, null, shellRuntime && /* @__PURE__ */ React43.createElement("div", {
|
|
3541
3603
|
className: mx22(display === ShellDisplay2.NONE ? "hidden" : "")
|
|
3542
|
-
}, /* @__PURE__ */
|
|
3604
|
+
}, /* @__PURE__ */ React43.createElement(Shell, {
|
|
3543
3605
|
runtime: shellRuntime,
|
|
3544
3606
|
origin: window.location.origin
|
|
3545
|
-
})), /* @__PURE__ */
|
|
3607
|
+
})), /* @__PURE__ */ React43.createElement(ShellContext.Provider, {
|
|
3546
3608
|
value: {
|
|
3547
3609
|
runtime: shellRuntime,
|
|
3548
3610
|
setDisplay
|