@dxos/plugin-client 0.8.4-main.84f28bd → 0.8.4-main.a4bbb77
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/browser/{app-graph-builder-3EILEBWW.mjs → app-graph-builder-VTPUWIBC.mjs} +19 -19
- package/dist/lib/browser/app-graph-builder-VTPUWIBC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-64ANQXYZ.mjs → chunk-PEZKWJ62.mjs} +47 -54
- package/dist/lib/browser/chunk-PEZKWJ62.mjs.map +7 -0
- package/dist/lib/browser/chunk-PFY3EQPI.mjs +18 -0
- package/dist/lib/browser/chunk-PFY3EQPI.mjs.map +7 -0
- package/dist/lib/browser/chunk-QB3D2P4J.mjs +10 -0
- package/dist/lib/browser/chunk-QB3D2P4J.mjs.map +7 -0
- package/dist/lib/browser/{chunk-Q7TFRFHI.mjs → chunk-V4KRRGSK.mjs} +14 -15
- package/dist/lib/browser/chunk-V4KRRGSK.mjs.map +7 -0
- package/dist/lib/browser/chunk-VTC4GIND.mjs +19 -0
- package/dist/lib/browser/chunk-VTC4GIND.mjs.map +7 -0
- package/dist/lib/browser/{client-JFNMEFOK.mjs → client-5PWEJ3U6.mjs} +14 -8
- package/dist/lib/browser/client-5PWEJ3U6.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +23 -19
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-YGAQVXI2.mjs → intent-resolver-KHLH34SU.mjs} +16 -16
- package/dist/lib/browser/intent-resolver-KHLH34SU.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{migrations-5COKGS4E.mjs → migrations-MWQCO5KY.mjs} +5 -5
- package/dist/lib/{node-esm/migrations-FE4PDX6W.mjs.map → browser/migrations-MWQCO5KY.mjs.map} +2 -2
- package/dist/lib/browser/{react-context-GBNYT5QK.mjs → react-context-S4SRYUVY.mjs} +7 -7
- package/dist/lib/browser/react-context-S4SRYUVY.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-YKQAUE2M.mjs → react-surface-R4LOX36S.mjs} +7 -7
- package/dist/lib/browser/{react-surface-YKQAUE2M.mjs.map → react-surface-R4LOX36S.mjs.map} +3 -3
- package/dist/lib/browser/{schema-defs-6L7W2RHL.mjs → schema-defs-E3USCMH3.mjs} +5 -5
- package/dist/lib/browser/schema-defs-E3USCMH3.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +10 -0
- package/dist/lib/node-esm/{app-graph-builder-GINHOE7A.mjs → app-graph-builder-AUWZ3ST2.mjs} +19 -19
- package/dist/lib/node-esm/app-graph-builder-AUWZ3ST2.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-K4PIKBQQ.mjs → chunk-4SRRA6RS.mjs} +47 -54
- package/dist/lib/node-esm/chunk-4SRRA6RS.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-K5IFPSCL.mjs +20 -0
- package/dist/lib/node-esm/chunk-K5IFPSCL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-SZLX4BVJ.mjs → chunk-QE4LPI2A.mjs} +2 -4
- package/dist/lib/node-esm/chunk-QE4LPI2A.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-GDJMDBWM.mjs → chunk-TCOCW5ON.mjs} +14 -15
- package/dist/lib/node-esm/chunk-TCOCW5ON.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-UYDFBGYA.mjs +19 -0
- package/dist/lib/node-esm/chunk-UYDFBGYA.mjs.map +7 -0
- package/dist/lib/node-esm/{client-XDYQARBL.mjs → client-ODN7EBTY.mjs} +14 -8
- package/dist/lib/node-esm/client-ODN7EBTY.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +23 -19
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-IN7YG7N7.mjs → intent-resolver-BJONA2UZ.mjs} +16 -16
- package/dist/lib/node-esm/intent-resolver-BJONA2UZ.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{migrations-FE4PDX6W.mjs → migrations-ARXHGBH5.mjs} +5 -5
- package/dist/lib/{browser/migrations-5COKGS4E.mjs.map → node-esm/migrations-ARXHGBH5.mjs.map} +2 -2
- package/dist/lib/node-esm/{react-context-UCK43H3Z.mjs → react-context-4SZYNSIS.mjs} +7 -7
- package/dist/lib/node-esm/react-context-4SZYNSIS.mjs.map +7 -0
- package/dist/lib/node-esm/{react-surface-HDHC6XHQ.mjs → react-surface-VPJTF75H.mjs} +7 -7
- package/dist/lib/node-esm/{react-surface-HDHC6XHQ.mjs.map → react-surface-VPJTF75H.mjs.map} +3 -3
- package/dist/lib/node-esm/{schema-defs-GZIVMHLW.mjs → schema-defs-ATH5YBDR.mjs} +5 -5
- package/dist/lib/node-esm/schema-defs-ATH5YBDR.mjs.map +7 -0
- package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -3
- package/dist/types/src/ClientPlugin.d.ts +1 -1
- package/dist/types/src/ClientPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +2 -3
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/client.d.ts +1 -1
- package/dist/types/src/capabilities/client.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +10 -10
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/migrations.d.ts +1 -1
- package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-context.d.ts +2 -2
- package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
- package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
- package/dist/types/src/components/DevicesContainer.d.ts.map +1 -1
- package/dist/types/src/components/DevicesContainer.stories.d.ts +224 -5
- package/dist/types/src/components/DevicesContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/JoinDialog.d.ts +1 -1
- package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
- package/dist/types/src/components/ProfileContainer.d.ts.map +1 -1
- package/dist/types/src/components/ProfileContainer.stories.d.ts +57 -5
- package/dist/types/src/components/ProfileContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/RecoveryCodeDialog.d.ts +1 -1
- package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
- package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts +59 -5
- package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/RecoveryCredentialsContainer.d.ts +1 -1
- package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +1 -1
- package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts +57 -5
- package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/ResetDialog.d.ts +1 -1
- package/dist/types/src/components/ResetDialog.d.ts.map +1 -1
- package/dist/types/src/components/ResetDialog.stories.d.ts +59 -4
- package/dist/types/src/components/ResetDialog.stories.d.ts.map +1 -1
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +3 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/types/index.d.ts +2 -0
- package/dist/types/src/types/index.d.ts.map +1 -0
- package/dist/types/src/{types.d.ts → types/schema.d.ts} +30 -24
- package/dist/types/src/types/schema.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +41 -41
- package/src/ClientPlugin.ts +57 -59
- package/src/capabilities/app-graph-builder.ts +16 -15
- package/src/capabilities/capabilities.ts +7 -6
- package/src/capabilities/client.ts +6 -4
- package/src/capabilities/intent-resolver.ts +5 -4
- package/src/capabilities/migrations.ts +1 -1
- package/src/capabilities/react-context.tsx +3 -2
- package/src/capabilities/react-surface.tsx +3 -3
- package/src/capabilities/schema-defs.ts +3 -3
- package/src/components/DevicesContainer.stories.tsx +9 -11
- package/src/components/DevicesContainer.tsx +59 -71
- package/src/components/JoinDialog.tsx +4 -4
- package/src/components/ProfileContainer.stories.tsx +8 -9
- package/src/components/ProfileContainer.tsx +22 -25
- package/src/components/RecoveryCodeDialog.stories.tsx +9 -10
- package/src/components/RecoveryCodeDialog.tsx +3 -3
- package/src/components/RecoveryCredentialsContainer.stories.tsx +9 -11
- package/src/components/RecoveryCredentialsContainer.tsx +47 -50
- package/src/components/ResetDialog.stories.tsx +10 -13
- package/src/components/ResetDialog.tsx +4 -4
- package/src/events.ts +6 -6
- package/src/index.ts +4 -3
- package/src/meta.ts +1 -3
- package/src/types/index.ts +5 -0
- package/src/{types.ts → types/schema.ts} +14 -15
- package/dist/lib/browser/app-graph-builder-3EILEBWW.mjs.map +0 -7
- package/dist/lib/browser/chunk-64ANQXYZ.mjs.map +0 -7
- package/dist/lib/browser/chunk-AWXKL4UR.mjs +0 -18
- package/dist/lib/browser/chunk-AWXKL4UR.mjs.map +0 -7
- package/dist/lib/browser/chunk-CAF2COXW.mjs +0 -19
- package/dist/lib/browser/chunk-CAF2COXW.mjs.map +0 -7
- package/dist/lib/browser/chunk-GS3LDHYD.mjs +0 -12
- package/dist/lib/browser/chunk-GS3LDHYD.mjs.map +0 -7
- package/dist/lib/browser/chunk-Q7TFRFHI.mjs.map +0 -7
- package/dist/lib/browser/client-JFNMEFOK.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-YGAQVXI2.mjs.map +0 -7
- package/dist/lib/browser/react-context-GBNYT5QK.mjs.map +0 -7
- package/dist/lib/browser/schema-defs-6L7W2RHL.mjs.map +0 -7
- package/dist/lib/browser/types.mjs +0 -10
- package/dist/lib/node-esm/app-graph-builder-GINHOE7A.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-3BUB64JB.mjs +0 -19
- package/dist/lib/node-esm/chunk-3BUB64JB.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GDJMDBWM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-K4PIKBQQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SZLX4BVJ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-UMO3ETDV.mjs +0 -20
- package/dist/lib/node-esm/chunk-UMO3ETDV.mjs.map +0 -7
- package/dist/lib/node-esm/client-XDYQARBL.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-IN7YG7N7.mjs.map +0 -7
- package/dist/lib/node-esm/react-context-UCK43H3Z.mjs.map +0 -7
- package/dist/lib/node-esm/schema-defs-GZIVMHLW.mjs.map +0 -7
- package/dist/types/src/types.d.ts.map +0 -1
- /package/dist/lib/browser/{types.mjs.map → types/index.mjs.map} +0 -0
- /package/dist/lib/node-esm/{types.mjs.map → types/index.mjs.map} +0 -0
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ClientCapabilities
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-PFY3EQPI.mjs";
|
|
4
4
|
import {
|
|
5
5
|
Account,
|
|
6
6
|
ClientAction
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-V4KRRGSK.mjs";
|
|
8
8
|
import {
|
|
9
|
-
|
|
10
|
-
} from "./chunk-
|
|
9
|
+
meta
|
|
10
|
+
} from "./chunk-QB3D2P4J.mjs";
|
|
11
11
|
|
|
12
12
|
// src/capabilities/app-graph-builder.ts
|
|
13
13
|
import { Rx } from "@effect-rx/rx-react";
|
|
14
14
|
import { Option, pipe } from "effect";
|
|
15
15
|
import { createIntent } from "@dxos/app-framework";
|
|
16
16
|
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
17
|
-
import { createExtension, rxFromObservable
|
|
17
|
+
import { ROOT_ID, createExtension, rxFromObservable } from "@dxos/plugin-graph";
|
|
18
18
|
import { ConnectionState } from "@dxos/react-client/mesh";
|
|
19
|
-
var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, createExtension({
|
|
20
|
-
id:
|
|
19
|
+
var app_graph_builder_default = ((context) => contributes(Capabilities.AppGraphBuilder, createExtension({
|
|
20
|
+
id: meta.id,
|
|
21
21
|
actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => {
|
|
22
22
|
return [
|
|
23
23
|
{
|
|
24
|
-
id: `${
|
|
24
|
+
id: `${meta.id}/open-user-account`,
|
|
25
25
|
data: async () => {
|
|
26
26
|
const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
27
27
|
await dispatch(createIntent(ClientAction.ShareIdentity));
|
|
@@ -30,7 +30,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
30
30
|
label: [
|
|
31
31
|
"open user account label",
|
|
32
32
|
{
|
|
33
|
-
ns:
|
|
33
|
+
ns: meta.id
|
|
34
34
|
}
|
|
35
35
|
],
|
|
36
36
|
icon: "ph--user--regular",
|
|
@@ -52,12 +52,12 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
52
52
|
return [
|
|
53
53
|
{
|
|
54
54
|
id: Account.id,
|
|
55
|
-
type:
|
|
55
|
+
type: meta.id,
|
|
56
56
|
properties: {
|
|
57
57
|
label: [
|
|
58
58
|
"account label",
|
|
59
59
|
{
|
|
60
|
-
ns:
|
|
60
|
+
ns: meta.id
|
|
61
61
|
}
|
|
62
62
|
],
|
|
63
63
|
icon: "ph--user--regular",
|
|
@@ -72,12 +72,12 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
72
72
|
{
|
|
73
73
|
id: Account.Profile,
|
|
74
74
|
data: Account.Profile,
|
|
75
|
-
type:
|
|
75
|
+
type: meta.id,
|
|
76
76
|
properties: {
|
|
77
77
|
label: [
|
|
78
78
|
"profile label",
|
|
79
79
|
{
|
|
80
|
-
ns:
|
|
80
|
+
ns: meta.id
|
|
81
81
|
}
|
|
82
82
|
],
|
|
83
83
|
icon: "ph--user--regular"
|
|
@@ -86,12 +86,12 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
86
86
|
{
|
|
87
87
|
id: Account.Devices,
|
|
88
88
|
data: Account.Devices,
|
|
89
|
-
type:
|
|
89
|
+
type: meta.id,
|
|
90
90
|
properties: {
|
|
91
91
|
label: [
|
|
92
92
|
"devices label",
|
|
93
93
|
{
|
|
94
|
-
ns:
|
|
94
|
+
ns: meta.id
|
|
95
95
|
}
|
|
96
96
|
],
|
|
97
97
|
icon: "ph--devices--regular",
|
|
@@ -101,12 +101,12 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
101
101
|
{
|
|
102
102
|
id: Account.Security,
|
|
103
103
|
data: Account.Security,
|
|
104
|
-
type:
|
|
104
|
+
type: meta.id,
|
|
105
105
|
properties: {
|
|
106
106
|
label: [
|
|
107
107
|
"security label",
|
|
108
108
|
{
|
|
109
|
-
ns:
|
|
109
|
+
ns: meta.id
|
|
110
110
|
}
|
|
111
111
|
],
|
|
112
112
|
icon: "ph--key--regular"
|
|
@@ -116,8 +116,8 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
116
116
|
}
|
|
117
117
|
];
|
|
118
118
|
}), Option.getOrElse(() => [])))
|
|
119
|
-
}));
|
|
119
|
+
})));
|
|
120
120
|
export {
|
|
121
121
|
app_graph_builder_default as default
|
|
122
122
|
};
|
|
123
|
-
//# sourceMappingURL=app-graph-builder-
|
|
123
|
+
//# sourceMappingURL=app-graph-builder-VTPUWIBC.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport { createIntent } from '@dxos/app-framework';\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { ROOT_ID, createExtension, rxFromObservable } from '@dxos/plugin-graph';\nimport { ConnectionState } from '@dxos/react-client/mesh';\n\nimport { meta } from '../meta';\nimport { Account, ClientAction } from '../types';\n\nimport { ClientCapabilities } from './capabilities';\n\nexport default (context: PluginContext) =>\n contributes(\n Capabilities.AppGraphBuilder,\n createExtension({\n id: meta.id,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => {\n return [\n {\n id: `${meta.id}/open-user-account`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(ClientAction.ShareIdentity));\n },\n properties: {\n label: ['open user account label', { ns: meta.id }],\n icon: 'ph--user--regular',\n disposition: 'menu',\n keyBinding: {\n macos: 'meta+shift+.',\n // TODO(wittjosiah): Test on windows to see if it behaves the same as linux.\n windows: 'alt+shift+.',\n linux: 'alt+shift+>',\n },\n },\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n connector: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => {\n const client = context.getCapability(ClientCapabilities.Client);\n const identity = get(rxFromObservable(client.halo.identity));\n const status = get(rxFromObservable(client.mesh.networkStatus));\n\n return [\n {\n id: Account.id,\n type: meta.id,\n properties: {\n label: ['account label', { ns: meta.id }],\n icon: 'ph--user--regular',\n disposition: 'user-account',\n // NOTE: This currently needs to be the identity key because the fallback is generated from hex.\n userId: identity?.identityKey.toHex(),\n hue: identity?.profile?.data?.hue,\n emoji: identity?.profile?.data?.emoji,\n status: status.swarm === ConnectionState.OFFLINE ? 'error' : 'active',\n },\n nodes: [\n {\n id: Account.Profile,\n data: Account.Profile,\n type: meta.id,\n properties: {\n label: ['profile label', { ns: meta.id }],\n icon: 'ph--user--regular',\n },\n },\n {\n id: Account.Devices,\n data: Account.Devices,\n type: meta.id,\n properties: {\n label: ['devices label', { ns: meta.id }],\n icon: 'ph--devices--regular',\n testId: 'clientPlugin.devices',\n },\n },\n {\n id: Account.Security,\n data: Account.Security,\n type: meta.id,\n properties: {\n label: ['security label', { ns: meta.id }],\n icon: 'ph--key--regular',\n },\n },\n ],\n },\n ];\n }),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n );\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;AAIA,SAASA,UAAU;AACnB,SAASC,QAAQC,YAAY;AAE7B,SAASC,oBAAoB;AAC7B,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,SAASC,iBAAiBC,wBAAwB;AAC3D,SAASC,uBAAuB;AAOhC,IAAA,6BAAe,CAACC,YACdC,YACEC,aAAaC,iBACbC,gBAAgB;EACdC,IAAIC,KAAKD;EACTE,SAAS,CAACC,SACRC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,UAAUF,OAAOG,KAAKR,KAAAA,IAAQK,OAAOI,KAAI,CAAA,GAC/EJ,OAAOK,IAAI,MAAA;AACT,WAAO;MACL;QACEb,IAAI,GAAGC,KAAKD,EAAE;QACdc,MAAM,YAAA;AACJ,gBAAM,EAAEC,iBAAiBC,SAAQ,IAAKrB,QAAQsB,cAAcpB,aAAaqB,gBAAgB;AACzF,gBAAMF,SAASG,aAAaC,aAAaC,aAAa,CAAA;QACxD;QACAC,YAAY;UACVC,OAAO;YAAC;YAA2B;cAAEC,IAAIvB,KAAKD;YAAG;;UACjDyB,MAAM;UACNC,aAAa;UACbC,YAAY;YACVC,OAAO;;YAEPC,SAAS;YACTC,OAAO;UACT;QACF;MACF;;EAEJ,CAAA,GACAtB,OAAOuB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAG/BC,WAAW,CAAC7B,SACVC,GAAGC,KAAK,CAACC,QACPC,KACED,IAAIH,IAAAA,GACJK,OAAOC,QAAQ,CAACN,UAAUA,MAAKH,OAAOU,UAAUF,OAAOG,KAAKR,KAAAA,IAAQK,OAAOI,KAAI,CAAA,GAC/EJ,OAAOK,IAAI,MAAA;AACT,UAAMoB,SAAStC,QAAQsB,cAAciB,mBAAmBC,MAAM;AAC9D,UAAMC,WAAW9B,IAAI+B,iBAAiBJ,OAAOK,KAAKF,QAAQ,CAAA;AAC1D,UAAMG,SAASjC,IAAI+B,iBAAiBJ,OAAOO,KAAKC,aAAa,CAAA;AAE7D,WAAO;MACL;QACEzC,IAAI0C,QAAQ1C;QACZ2C,MAAM1C,KAAKD;QACXsB,YAAY;UACVC,OAAO;YAAC;YAAiB;cAAEC,IAAIvB,KAAKD;YAAG;;UACvCyB,MAAM;UACNC,aAAa;;UAEbkB,QAAQR,UAAUS,YAAYC,MAAAA;UAC9BC,KAAKX,UAAUY,SAASlC,MAAMiC;UAC9BE,OAAOb,UAAUY,SAASlC,MAAMmC;UAChCV,QAAQA,OAAOW,UAAUC,gBAAgBC,UAAU,UAAU;QAC/D;QACAC,OAAO;UACL;YACErD,IAAI0C,QAAQY;YACZxC,MAAM4B,QAAQY;YACdX,MAAM1C,KAAKD;YACXsB,YAAY;cACVC,OAAO;gBAAC;gBAAiB;kBAAEC,IAAIvB,KAAKD;gBAAG;;cACvCyB,MAAM;YACR;UACF;UACA;YACEzB,IAAI0C,QAAQa;YACZzC,MAAM4B,QAAQa;YACdZ,MAAM1C,KAAKD;YACXsB,YAAY;cACVC,OAAO;gBAAC;gBAAiB;kBAAEC,IAAIvB,KAAKD;gBAAG;;cACvCyB,MAAM;cACN+B,QAAQ;YACV;UACF;UACA;YACExD,IAAI0C,QAAQe;YACZ3C,MAAM4B,QAAQe;YACdd,MAAM1C,KAAKD;YACXsB,YAAY;cACVC,OAAO;gBAAC;gBAAkB;kBAAEC,IAAIvB,KAAKD;gBAAG;;cACxCyB,MAAM;YACR;UACF;;MAEJ;;EAEJ,CAAA,GACAjB,OAAOuB,UAAU,MAAM,CAAA,CAAE,CAAA,CAAA;AAGjC,CAAA,CAAA;",
|
|
6
|
+
"names": ["Rx", "Option", "pipe", "createIntent", "Capabilities", "contributes", "ROOT_ID", "createExtension", "rxFromObservable", "ConnectionState", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "data", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "createIntent", "ClientAction", "ShareIdentity", "properties", "label", "ns", "icon", "disposition", "keyBinding", "macos", "windows", "linux", "getOrElse", "connector", "client", "ClientCapabilities", "Client", "identity", "rxFromObservable", "halo", "status", "mesh", "networkStatus", "Account", "type", "userId", "identityKey", "toHex", "hue", "profile", "emoji", "swarm", "ConnectionState", "OFFLINE", "nodes", "Profile", "Devices", "testId", "Security"]
|
|
7
|
+
}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ClientAction
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-V4KRRGSK.mjs";
|
|
4
4
|
import {
|
|
5
|
-
|
|
6
|
-
} from "./chunk-
|
|
5
|
+
meta
|
|
6
|
+
} from "./chunk-QB3D2P4J.mjs";
|
|
7
7
|
|
|
8
8
|
// src/components/DevicesContainer.tsx
|
|
9
9
|
import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
|
|
10
|
-
import { Check, X } from "@phosphor-icons/react";
|
|
11
10
|
import React, { useCallback, useEffect, useState } from "react";
|
|
12
11
|
import { QR } from "react-qr-rounded";
|
|
13
12
|
import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
|
|
@@ -16,10 +15,8 @@ import { useClient, useMulticastObservable } from "@dxos/react-client";
|
|
|
16
15
|
import { useDevices } from "@dxos/react-client/halo";
|
|
17
16
|
import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
|
|
18
17
|
import { useNetworkStatus } from "@dxos/react-client/mesh";
|
|
19
|
-
import { Button, Clipboard, IconButton, List, useId, useTranslation } from "@dxos/react-ui";
|
|
18
|
+
import { Button, Clipboard, Icon, IconButton, List, useId, useTranslation } from "@dxos/react-ui";
|
|
20
19
|
import { ControlFrame, ControlFrameItem, ControlGroup, ControlItem, ControlPage, ControlSection } from "@dxos/react-ui-form";
|
|
21
|
-
import { StackItem } from "@dxos/react-ui-stack";
|
|
22
|
-
import { getSize, mx } from "@dxos/react-ui-theme";
|
|
23
20
|
import { AuthCode, Centered, DeviceListItem, Emoji, Viewport } from "@dxos/shell/react";
|
|
24
21
|
import { hexToEmoji } from "@dxos/util";
|
|
25
22
|
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/components/DevicesContainer.tsx";
|
|
@@ -43,18 +40,16 @@ var DevicesContainer = ({ createInvitationUrl }) => {
|
|
|
43
40
|
})), [
|
|
44
41
|
dispatch
|
|
45
42
|
]);
|
|
46
|
-
return /* @__PURE__ */ React.createElement(Clipboard.Provider, null, /* @__PURE__ */ React.createElement(
|
|
47
|
-
classNames: "block overflow-y-auto"
|
|
48
|
-
}, /* @__PURE__ */ React.createElement(ControlPage, null, /* @__PURE__ */ React.createElement(ControlSection, {
|
|
43
|
+
return /* @__PURE__ */ React.createElement(Clipboard.Provider, null, /* @__PURE__ */ React.createElement(ControlPage, null, /* @__PURE__ */ React.createElement(ControlSection, {
|
|
49
44
|
title: t("devices verbose label", {
|
|
50
|
-
ns:
|
|
45
|
+
ns: meta.id
|
|
51
46
|
}),
|
|
52
47
|
description: t("devices description", {
|
|
53
|
-
ns:
|
|
48
|
+
ns: meta.id
|
|
54
49
|
})
|
|
55
50
|
}, /* @__PURE__ */ React.createElement(ControlFrame, null, /* @__PURE__ */ React.createElement(ControlFrameItem, {
|
|
56
51
|
title: t("devices label", {
|
|
57
|
-
ns:
|
|
52
|
+
ns: meta.id
|
|
58
53
|
})
|
|
59
54
|
}, /* @__PURE__ */ React.createElement(List, null, devices.map((device) => {
|
|
60
55
|
return /* @__PURE__ */ React.createElement(DeviceListItem, {
|
|
@@ -68,15 +63,15 @@ var DevicesContainer = ({ createInvitationUrl }) => {
|
|
|
68
63
|
createInvitationUrl
|
|
69
64
|
})))), /* @__PURE__ */ React.createElement(ControlSection, {
|
|
70
65
|
title: t("danger zone title", {
|
|
71
|
-
ns:
|
|
66
|
+
ns: meta.id
|
|
72
67
|
}),
|
|
73
68
|
description: t("danger zone description", {
|
|
74
|
-
ns:
|
|
69
|
+
ns: meta.id
|
|
75
70
|
})
|
|
76
71
|
}, /* @__PURE__ */ React.createElement(ControlGroup, null, /* @__PURE__ */ React.createElement(ControlItem, {
|
|
77
72
|
title: t("reset device label"),
|
|
78
73
|
description: t("reset device description", {
|
|
79
|
-
ns:
|
|
74
|
+
ns: meta.id
|
|
80
75
|
})
|
|
81
76
|
}, /* @__PURE__ */ React.createElement(Button, {
|
|
82
77
|
variant: "destructive",
|
|
@@ -85,7 +80,7 @@ var DevicesContainer = ({ createInvitationUrl }) => {
|
|
|
85
80
|
}, t("reset device label"))), /* @__PURE__ */ React.createElement(ControlItem, {
|
|
86
81
|
title: t("recover identity label"),
|
|
87
82
|
description: t("recover identity description", {
|
|
88
|
-
ns:
|
|
83
|
+
ns: meta.id
|
|
89
84
|
})
|
|
90
85
|
}, /* @__PURE__ */ React.createElement(Button, {
|
|
91
86
|
variant: "destructive",
|
|
@@ -94,13 +89,13 @@ var DevicesContainer = ({ createInvitationUrl }) => {
|
|
|
94
89
|
}, t("recover identity label"))), /* @__PURE__ */ React.createElement(ControlItem, {
|
|
95
90
|
title: t("join new identity label"),
|
|
96
91
|
description: t("join new identity description", {
|
|
97
|
-
ns:
|
|
92
|
+
ns: meta.id
|
|
98
93
|
})
|
|
99
94
|
}, /* @__PURE__ */ React.createElement(Button, {
|
|
100
95
|
variant: "destructive",
|
|
101
96
|
onClick: handleJoinNewIdentity,
|
|
102
97
|
"data-testid": "devicesContainer.joinExisting"
|
|
103
|
-
}, t("join new identity label")))))))
|
|
98
|
+
}, t("join new identity label")))))));
|
|
104
99
|
} finally {
|
|
105
100
|
_effect.f();
|
|
106
101
|
}
|
|
@@ -121,7 +116,7 @@ var DeviceInvitation = (props) => {
|
|
|
121
116
|
authCode: invitation3.authCode
|
|
122
117
|
}), void 0, {
|
|
123
118
|
F: __dxlog_file,
|
|
124
|
-
L:
|
|
119
|
+
L: 125,
|
|
125
120
|
S: void 0,
|
|
126
121
|
C: (f, a) => f(...a)
|
|
127
122
|
});
|
|
@@ -181,7 +176,7 @@ var InvitationSection = ({ state = -1, authCode, invitationId = "never", url = "
|
|
|
181
176
|
} }) => {
|
|
182
177
|
var _effect = _useSignals();
|
|
183
178
|
try {
|
|
184
|
-
const { t } = useTranslation(
|
|
179
|
+
const { t } = useTranslation(meta.id);
|
|
185
180
|
const activeView = state < 0 ? "init" : state >= Invitation.State.CANCELLED ? "complete" : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode ? "auth-code" : "qr-code";
|
|
186
181
|
return activeView === "init" ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", {
|
|
187
182
|
className: "text-description mbe-2"
|
|
@@ -226,7 +221,7 @@ var InvitationQR = ({ id, url, onCancel }) => {
|
|
|
226
221
|
return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", {
|
|
227
222
|
className: "text-description"
|
|
228
223
|
}, t("qr code description", {
|
|
229
|
-
ns:
|
|
224
|
+
ns: meta.id
|
|
230
225
|
})), /* @__PURE__ */ React.createElement("div", {
|
|
231
226
|
role: "group",
|
|
232
227
|
className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
|
|
@@ -286,10 +281,14 @@ var InvitationAuthCode = ({ id, code, onCancel }) => {
|
|
|
286
281
|
var InvitationComplete = ({ statusValue }) => {
|
|
287
282
|
var _effect = _useSignals();
|
|
288
283
|
try {
|
|
289
|
-
return statusValue > 0 ? /* @__PURE__ */ React.createElement(
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
284
|
+
return statusValue > 0 ? /* @__PURE__ */ React.createElement(Icon, {
|
|
285
|
+
icon: "ph--check--regular",
|
|
286
|
+
size: 6,
|
|
287
|
+
classNames: "m-1.5"
|
|
288
|
+
}) : /* @__PURE__ */ React.createElement(Icon, {
|
|
289
|
+
icon: "ph--x--regular",
|
|
290
|
+
size: 6,
|
|
291
|
+
classNames: "m-1.5"
|
|
293
292
|
});
|
|
294
293
|
} finally {
|
|
295
294
|
_effect.f();
|
|
@@ -299,16 +298,16 @@ var InvitationComplete = ({ statusValue }) => {
|
|
|
299
298
|
// src/components/JoinDialog.tsx
|
|
300
299
|
import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
|
|
301
300
|
import React2, { useCallback as useCallback2 } from "react";
|
|
302
|
-
import { createIntent as createIntent2,
|
|
301
|
+
import { LayoutAction, createIntent as createIntent2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
|
|
303
302
|
import { ObservabilityAction } from "@dxos/plugin-observability/types";
|
|
304
303
|
import { Dialog, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
305
304
|
import { JoinPanel } from "@dxos/shell/react";
|
|
306
|
-
var JOIN_DIALOG = `${
|
|
305
|
+
var JOIN_DIALOG = `${meta.id}/JoinDialog`;
|
|
307
306
|
var JoinDialog = (props) => {
|
|
308
307
|
var _effect = _useSignals2();
|
|
309
308
|
try {
|
|
310
309
|
const { dispatchPromise: dispatch } = useIntentDispatcher2();
|
|
311
|
-
const { t } = useTranslation2(
|
|
310
|
+
const { t } = useTranslation2(meta.id);
|
|
312
311
|
const handleCancelResetStorage = useCallback2(() => dispatch(createIntent2(ClientAction.ShareIdentity)), [
|
|
313
312
|
dispatch
|
|
314
313
|
]);
|
|
@@ -358,10 +357,9 @@ import { debounce } from "@dxos/async";
|
|
|
358
357
|
import { useClient as useClient2 } from "@dxos/react-client";
|
|
359
358
|
import { useIdentity } from "@dxos/react-client/halo";
|
|
360
359
|
import { ButtonGroup, Clipboard as Clipboard2, Input, useTranslation as useTranslation3 } from "@dxos/react-ui";
|
|
361
|
-
import {
|
|
360
|
+
import { ControlItem as ControlItem2, ControlItemInput, ControlPage as ControlPage2, ControlSection as ControlSection2, Form } from "@dxos/react-ui-form";
|
|
362
361
|
import { EmojiPickerBlock, HuePicker } from "@dxos/react-ui-pickers";
|
|
363
|
-
import {
|
|
364
|
-
import { hexToHue, hexToEmoji as hexToEmoji2 } from "@dxos/util";
|
|
362
|
+
import { hexToEmoji as hexToEmoji2, hexToHue } from "@dxos/util";
|
|
365
363
|
var getDefaultHueValue = (identity) => hexToHue(identity?.identityKey.toHex() ?? "0");
|
|
366
364
|
var getDefaultEmojiValue = (identity) => hexToEmoji2(identity?.identityKey.toHex() ?? "0");
|
|
367
365
|
var getHueValue = (identity) => identity?.profile?.data?.hue || getDefaultHueValue(identity);
|
|
@@ -369,7 +367,7 @@ var getEmojiValue = (identity) => identity?.profile?.data?.emoji || getDefaultEm
|
|
|
369
367
|
var ProfileContainer = () => {
|
|
370
368
|
var _effect = _useSignals3();
|
|
371
369
|
try {
|
|
372
|
-
const { t } = useTranslation3(
|
|
370
|
+
const { t } = useTranslation3(meta.id);
|
|
373
371
|
const client = useClient2();
|
|
374
372
|
const identity = useIdentity();
|
|
375
373
|
const [displayName, setDisplayNameDirectly] = useState2(identity?.profile?.displayName ?? "");
|
|
@@ -386,7 +384,7 @@ var ProfileContainer = () => {
|
|
|
386
384
|
setDisplayNameDirectly(profile.displayName);
|
|
387
385
|
setEmojiDirectly(profile.emoji);
|
|
388
386
|
setHueDirectly(profile.hue);
|
|
389
|
-
updateProfile(profile);
|
|
387
|
+
void updateProfile(profile);
|
|
390
388
|
}, [
|
|
391
389
|
identity
|
|
392
390
|
]);
|
|
@@ -472,9 +470,7 @@ var ProfileContainer = () => {
|
|
|
472
470
|
}), [
|
|
473
471
|
t
|
|
474
472
|
]);
|
|
475
|
-
return /* @__PURE__ */ React3.createElement(
|
|
476
|
-
classNames: "block overflow-y-auto"
|
|
477
|
-
}, /* @__PURE__ */ React3.createElement(ControlPage2, null, /* @__PURE__ */ React3.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React3.createElement(ControlSection2, {
|
|
473
|
+
return /* @__PURE__ */ React3.createElement(ControlPage2, null, /* @__PURE__ */ React3.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React3.createElement(ControlSection2, {
|
|
478
474
|
title: t("profile label"),
|
|
479
475
|
description: t("profile description")
|
|
480
476
|
}, /* @__PURE__ */ React3.createElement(Form, {
|
|
@@ -483,9 +479,9 @@ var ProfileContainer = () => {
|
|
|
483
479
|
autoSave: true,
|
|
484
480
|
onSave: handleSave,
|
|
485
481
|
Custom: customElements,
|
|
486
|
-
classNames: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]
|
|
482
|
+
classNames: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]",
|
|
487
483
|
outerSpacing: false
|
|
488
|
-
}))))
|
|
484
|
+
}))));
|
|
489
485
|
} finally {
|
|
490
486
|
_effect.f();
|
|
491
487
|
}
|
|
@@ -509,11 +505,11 @@ var ProfileSchema = Schema.Struct({
|
|
|
509
505
|
import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
|
|
510
506
|
import React4, { useCallback as useCallback4, useState as useState3 } from "react";
|
|
511
507
|
import { AlertDialog, Button as Button2, Clipboard as Clipboard3, Input as Input2, useTranslation as useTranslation4 } from "@dxos/react-ui";
|
|
512
|
-
var RECOVERY_CODE_DIALOG = `${
|
|
508
|
+
var RECOVERY_CODE_DIALOG = `${meta.id}/RecoveryCodeDialog`;
|
|
513
509
|
var RecoveryCodeDialog = ({ code }) => {
|
|
514
510
|
var _effect = _useSignals4();
|
|
515
511
|
try {
|
|
516
|
-
const { t } = useTranslation4(
|
|
512
|
+
const { t } = useTranslation4(meta.id);
|
|
517
513
|
const [confirmation, setConfirmation] = useState3(false);
|
|
518
514
|
const handleConfirmation = useCallback4((checked) => setConfirmation(checked), []);
|
|
519
515
|
return /* @__PURE__ */ React4.createElement(AlertDialog.Content, {
|
|
@@ -572,20 +568,17 @@ import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking"
|
|
|
572
568
|
import React5 from "react";
|
|
573
569
|
import { createIntent as createIntent3, useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework";
|
|
574
570
|
import { useCredentials } from "@dxos/react-client/halo";
|
|
575
|
-
import { Icon, IconButton as IconButton2, List as List2, ListItem, useTranslation as useTranslation5
|
|
571
|
+
import { Icon as Icon2, IconButton as IconButton2, List as List2, ListItem, Message, useTranslation as useTranslation5 } from "@dxos/react-ui";
|
|
576
572
|
import { ControlGroup as ControlGroup2, ControlItem as ControlItem3, ControlPage as ControlPage3, ControlSection as ControlSection3 } from "@dxos/react-ui-form";
|
|
577
|
-
|
|
578
|
-
var MANAGE_CREDENTIALS_DIALOG = `${CLIENT_PLUGIN}/ManageCredentialsDialog`;
|
|
573
|
+
var MANAGE_CREDENTIALS_DIALOG = `${meta.id}/ManageCredentialsDialog`;
|
|
579
574
|
var RecoveryCredentialsContainer = () => {
|
|
580
575
|
var _effect = _useSignals5();
|
|
581
576
|
try {
|
|
582
|
-
const { t } = useTranslation5(
|
|
577
|
+
const { t } = useTranslation5(meta.id);
|
|
583
578
|
const { dispatchPromise: dispatch } = useIntentDispatcher3();
|
|
584
579
|
const credentials = useCredentials();
|
|
585
580
|
const recoveryCredentials = credentials.filter((credential) => credential.subject.assertion["@type"] === "dxos.halo.credentials.IdentityRecovery");
|
|
586
|
-
return /* @__PURE__ */ React5.createElement(
|
|
587
|
-
classNames: "block overflow-y-auto"
|
|
588
|
-
}, /* @__PURE__ */ React5.createElement(ControlPage3, null, /* @__PURE__ */ React5.createElement(ControlSection3, {
|
|
581
|
+
return /* @__PURE__ */ React5.createElement(ControlPage3, null, /* @__PURE__ */ React5.createElement(ControlSection3, {
|
|
589
582
|
title: t("recovery setup dialog title"),
|
|
590
583
|
description: t("recovery setup dialog description")
|
|
591
584
|
}, /* @__PURE__ */ React5.createElement(ControlGroup2, null, /* @__PURE__ */ React5.createElement(ControlItem3, {
|
|
@@ -617,10 +610,10 @@ var RecoveryCredentialsContainer = () => {
|
|
|
617
610
|
classNames: "container-max-width pli-2"
|
|
618
611
|
}, recoveryCredentials.map((credential) => /* @__PURE__ */ React5.createElement(ListItem.Root, {
|
|
619
612
|
key: credential.id?.toHex()
|
|
620
|
-
}, /* @__PURE__ */ React5.createElement(ListItem.Endcap, null, /* @__PURE__ */ React5.createElement(
|
|
613
|
+
}, /* @__PURE__ */ React5.createElement(ListItem.Endcap, null, /* @__PURE__ */ React5.createElement(Icon2, {
|
|
621
614
|
icon: "ph--key--regular",
|
|
622
615
|
size: 5
|
|
623
|
-
})), /* @__PURE__ */ React5.createElement(ListItem.Heading, null, credential.issuanceDate.toLocaleString()))))))
|
|
616
|
+
})), /* @__PURE__ */ React5.createElement(ListItem.Heading, null, credential.issuanceDate.toLocaleString()))))));
|
|
624
617
|
} finally {
|
|
625
618
|
_effect.f();
|
|
626
619
|
}
|
|
@@ -629,15 +622,15 @@ var RecoveryCredentialsContainer = () => {
|
|
|
629
622
|
// src/components/ResetDialog.tsx
|
|
630
623
|
import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
|
|
631
624
|
import React6, { useCallback as useCallback5 } from "react";
|
|
632
|
-
import {
|
|
625
|
+
import { LayoutAction as LayoutAction2, createIntent as createIntent4, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework";
|
|
633
626
|
import { useClient as useClient3 } from "@dxos/react-client";
|
|
634
627
|
import { Dialog as Dialog2, useTranslation as useTranslation6 } from "@dxos/react-ui";
|
|
635
628
|
import { ConfirmReset } from "@dxos/shell/react";
|
|
636
|
-
var RESET_DIALOG = `${
|
|
629
|
+
var RESET_DIALOG = `${meta.id}/ResetDialog`;
|
|
637
630
|
var ResetDialog = ({ mode, onReset }) => {
|
|
638
631
|
var _effect = _useSignals6();
|
|
639
632
|
try {
|
|
640
|
-
const { t } = useTranslation6(
|
|
633
|
+
const { t } = useTranslation6(meta.id);
|
|
641
634
|
const { dispatchPromise: dispatch } = useIntentDispatcher4();
|
|
642
635
|
const client = useClient3();
|
|
643
636
|
const handleReset = useCallback5(async () => {
|
|
@@ -690,4 +683,4 @@ export {
|
|
|
690
683
|
RESET_DIALOG,
|
|
691
684
|
ResetDialog
|
|
692
685
|
};
|
|
693
|
-
//# sourceMappingURL=chunk-
|
|
686
|
+
//# sourceMappingURL=chunk-PEZKWJ62.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/DevicesContainer.tsx", "../../../src/components/JoinDialog.tsx", "../../../src/components/ProfileContainer.tsx", "../../../src/components/RecoveryCodeDialog.tsx", "../../../src/components/RecoveryCredentialsContainer.tsx", "../../../src/components/ResetDialog.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { QR } from 'react-qr-rounded';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { useClient, useMulticastObservable } from '@dxos/react-client';\nimport { type Device, useDevices } from '@dxos/react-client/halo';\nimport { type CancellableInvitationObservable, Invitation, InvitationEncoder } from '@dxos/react-client/invitations';\nimport { useNetworkStatus } from '@dxos/react-client/mesh';\nimport { Button, Clipboard, Icon, IconButton, List, useId, useTranslation } from '@dxos/react-ui';\nimport {\n ControlFrame,\n ControlFrameItem,\n ControlGroup,\n ControlItem,\n ControlPage,\n ControlSection,\n} from '@dxos/react-ui-form';\nimport { AuthCode, Centered, DeviceListItem, Emoji, Viewport } from '@dxos/shell/react';\nimport { hexToEmoji } from '@dxos/util';\n\nimport { meta } from '../meta';\nimport { ClientAction } from '../types';\n\nexport type DevicesContainerProps = {\n createInvitationUrl?: (invitationCode: string) => string;\n};\n\nexport const DevicesContainer = ({ createInvitationUrl }: DevicesContainerProps) => {\n const { t } = useTranslation('os');\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const devices = useDevices();\n const { swarm: connectionState } = useNetworkStatus();\n\n const handleResetStorage = useCallback(() => dispatch(createIntent(ClientAction.ResetStorage)), [dispatch]);\n\n const handleRecover = useCallback(\n () => dispatch(createIntent(ClientAction.ResetStorage, { mode: 'recover' })),\n [dispatch],\n );\n\n const handleJoinNewIdentity = useCallback(\n () => dispatch(createIntent(ClientAction.ResetStorage, { mode: 'join new identity' })),\n [dispatch],\n );\n\n return (\n <Clipboard.Provider>\n <ControlPage>\n <ControlSection\n title={t('devices verbose label', { ns: meta.id })}\n description={t('devices description', { ns: meta.id })}\n >\n <ControlFrame>\n <ControlFrameItem title={t('devices label', { ns: meta.id })}>\n <List>\n {devices.map((device: Device) => {\n return (\n <DeviceListItem key={device.deviceKey.toHex()} device={device} connectionState={connectionState} />\n );\n })}\n </List>\n </ControlFrameItem>\n {createInvitationUrl && (\n <ControlFrameItem title='Add device'>\n <DeviceInvitation createInvitationUrl={createInvitationUrl} />\n </ControlFrameItem>\n )}\n </ControlFrame>\n </ControlSection>\n <ControlSection\n title={t('danger zone title', { ns: meta.id })}\n description={t('danger zone description', { ns: meta.id })}\n >\n <ControlGroup>\n <ControlItem title={t('reset device label')} description={t('reset device description', { ns: meta.id })}>\n <Button variant='destructive' onClick={handleResetStorage} data-testid='devicesContainer.reset'>\n {t('reset device label')}\n </Button>\n </ControlItem>\n <ControlItem\n title={t('recover identity label')}\n description={t('recover identity description', { ns: meta.id })}\n >\n <Button variant='destructive' onClick={handleRecover} data-testid='devicesContainer.recover'>\n {t('recover identity label')}\n </Button>\n </ControlItem>\n <ControlItem\n title={t('join new identity label')}\n description={t('join new identity description', { ns: meta.id })}\n >\n <Button variant='destructive' onClick={handleJoinNewIdentity} data-testid='devicesContainer.joinExisting'>\n {t('join new identity label')}\n </Button>\n </ControlItem>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n </Clipboard.Provider>\n );\n};\n\ntype DeviceInvitationProps = {\n invitation?: CancellableInvitationObservable;\n createInvitationUrl: (invitationCode: string) => string;\n onInvitationDone: () => void;\n onInvitationCreate: () => void;\n};\n\nconst DeviceInvitation = (props: Pick<DeviceInvitationProps, 'createInvitationUrl'>) => {\n const client = useClient();\n const [invitation, setInvitation] = useState<CancellableInvitationObservable>();\n\n const onInvitationCreate = useCallback(() => {\n const invitation = client.halo.share();\n if (client.config.values.runtime?.app?.env?.DX_ENVIRONMENT !== 'production') {\n const subscription = invitation.subscribe((invitation: Invitation) => {\n const invitationCode = InvitationEncoder.encode(invitation);\n if (invitation.state === Invitation.State.CONNECTING) {\n log.info(JSON.stringify({ invitationCode, authCode: invitation.authCode }));\n subscription.unsubscribe();\n }\n });\n }\n setInvitation(invitation);\n }, [client]);\n\n const onInvitationDone = useCallback(() => {\n setInvitation(undefined);\n }, []);\n\n if (invitation) {\n return <DeviceInvitationImpl {...props} {...{ invitation, onInvitationCreate, onInvitationDone }} />;\n } else {\n return <InvitationSection {...props} {...{ onInvitationCreate, onInvitationDone }} />;\n }\n};\n\nconst DeviceInvitationImpl = ({\n invitation: invitationObservable,\n createInvitationUrl,\n onInvitationDone,\n onInvitationCreate,\n}: DeviceInvitationProps) => {\n const invitation = useMulticastObservable(invitationObservable!);\n const url = createInvitationUrl(InvitationEncoder.encode(invitation));\n\n useEffect(() => {\n if (invitation.state >= Invitation.State.SUCCESS) {\n onInvitationDone();\n }\n }, [invitation.state]);\n\n return <InvitationSection {...invitation} {...{ url, onInvitationDone, onInvitationCreate }} />;\n};\n\ntype InvitationComponentProps = Partial<\n Pick<Invitation, 'authCode' | 'invitationId'> &\n Pick<DeviceInvitationProps, 'onInvitationDone' | 'onInvitationCreate'> & {\n state: number;\n url: string;\n }\n>;\n\nconst InvitationSection = ({\n state = -1,\n authCode,\n invitationId = 'never',\n url = 'never',\n onInvitationDone = () => {},\n onInvitationCreate = () => {},\n}: InvitationComponentProps) => {\n const { t } = useTranslation(meta.id);\n const activeView =\n state < 0\n ? 'init'\n : state >= Invitation.State.CANCELLED\n ? 'complete'\n : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode\n ? 'auth-code'\n : 'qr-code';\n return activeView === 'init' ? (\n <>\n <p className='text-description mbe-2'>{t('add device description')}</p>\n <IconButton\n icon='ph--plus--regular'\n label={t('create device invitation label')}\n disabled={state >= 0}\n classNames='is-full'\n data-testid='devicesContainer.createInvitation'\n onClick={onInvitationCreate}\n />\n </>\n ) : (\n <Viewport.Root activeView={activeView}>\n <Viewport.Views>\n <Viewport.View id='init'>\n {/* This view intentionally left blank while conditionally rendering the viewport. */}\n </Viewport.View>\n <Viewport.View id='complete'>\n <InvitationComplete statusValue={state} />\n </Viewport.View>\n <Viewport.View id='auth-code'>\n <InvitationAuthCode id={invitationId} code={authCode ?? 'never'} onCancel={onInvitationDone} />\n </Viewport.View>\n <Viewport.View id='qr-code'>\n <InvitationQR id={invitationId} url={url} onCancel={onInvitationDone} />\n </Viewport.View>\n </Viewport.Views>\n </Viewport.Root>\n );\n};\n\nconst InvitationQR = ({ id, url, onCancel }: { id: string; url: string; onCancel: () => void }) => {\n const { t } = useTranslation('os');\n const qrLabel = useId('devices-container__qr-code');\n const emoji = hexToEmoji(id);\n return (\n <>\n <p className='text-description'>{t('qr code description', { ns: meta.id })}</p>\n <div role='group' className='grid grid-cols-[1fr_min-content] mlb-2 gap-2'>\n <div role='none' className='is-full aspect-square relative text-description'>\n <QR\n rounding={100}\n backgroundColor='transparent'\n color='currentColor'\n aria-labelledby={qrLabel}\n errorCorrectionLevel='Q'\n cutout={true}\n >\n {url ?? 'never'}\n </QR>\n <Centered>\n <Emoji text={emoji} />\n </Centered>\n </div>\n <span id={qrLabel} className='sr-only'>\n {t('qr label')}\n </span>\n </div>\n {/* TODO(burdon): Factor out button bar */}\n <div className='flex justify-center'>\n <div className='flex gap-2'>\n <Clipboard.Button value={url ?? 'never'} />\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </div>\n </div>\n </>\n );\n};\n\nconst InvitationAuthCode = ({ id, code, onCancel }: { id: string; code: string; onCancel: () => void }) => {\n const { t } = useTranslation('os');\n const emoji = hexToEmoji(id);\n\n return (\n <>\n <p className='text-description'>{t('auth other device emoji message')}</p>\n {emoji && <Emoji text={emoji} className='mli-auto mlb-2 text-center' />}\n <p className='text-description'>{t('auth code message')}</p>\n <AuthCode code={code} large classNames='mli-auto mlb-2 text-center grow' />\n <Button variant='ghost' onClick={onCancel}>\n {t('cancel label')}\n </Button>\n </>\n );\n};\n\nconst InvitationComplete = ({ statusValue }: { statusValue: number }) => {\n return statusValue > 0 ? (\n <Icon icon='ph--check--regular' size={6} classNames='m-1.5' />\n ) : (\n <Icon icon='ph--x--regular' size={6} classNames='m-1.5' />\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { type InvitationResult } from '@dxos/react-client/invitations';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';\n\nimport { meta } from '../meta';\nimport { ClientAction } from '../types';\n\nexport const JOIN_DIALOG = `${meta.id}/JoinDialog`;\n\nexport const JoinDialog = (props: JoinPanelProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const { t } = useTranslation(meta.id);\n\n const handleCancelResetStorage = useCallback(() => dispatch(createIntent(ClientAction.ShareIdentity)), [dispatch]);\n\n const handleDone = useCallback(\n async (result: InvitationResult | null) => {\n if (result?.identityKey) {\n await Promise.all([\n dispatch(createIntent(LayoutAction.UpdateDialog, { part: 'dialog', options: { state: false } })),\n dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: props.initialDisposition === 'recover-identity' ? 'identity.recover' : 'identity.join',\n }),\n ),\n ]);\n }\n },\n [dispatch],\n );\n\n return (\n <Dialog.Content>\n <Dialog.Title classNames='sr-only'>{t('join space label', { ns: 'os' })}</Dialog.Title>\n <JoinPanel\n mode='halo-only'\n {...props}\n exitActionParent={<Dialog.Close asChild />}\n doneActionParent={<Dialog.Close asChild />}\n onCancelResetStorage={handleCancelResetStorage}\n onDone={handleDone}\n />\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\nimport React, { type ChangeEvent, useCallback, useMemo, useState } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { useClient } from '@dxos/react-client';\nimport { type Identity, useIdentity } from '@dxos/react-client/halo';\nimport { ButtonGroup, Clipboard, Input, useTranslation } from '@dxos/react-ui';\nimport {\n ControlItem,\n ControlItemInput,\n ControlPage,\n ControlSection,\n Form,\n type InputComponent,\n} from '@dxos/react-ui-form';\nimport { EmojiPickerBlock, HuePicker } from '@dxos/react-ui-pickers';\nimport { hexToEmoji, hexToHue } from '@dxos/util';\n\nimport { meta } from '../meta';\n\n// TODO(thure): Factor out?\nconst getDefaultHueValue = (identity: Identity | null) => hexToHue(identity?.identityKey.toHex() ?? '0');\nconst getDefaultEmojiValue = (identity: Identity | null) => hexToEmoji(identity?.identityKey.toHex() ?? '0');\nconst getHueValue = (identity: Identity | null) => identity?.profile?.data?.hue || getDefaultHueValue(identity);\nconst getEmojiValue = (identity: Identity | null) => identity?.profile?.data?.emoji || getDefaultEmojiValue(identity);\n\nexport const ProfileContainer = () => {\n const { t } = useTranslation(meta.id);\n const client = useClient();\n const identity = useIdentity();\n const [displayName, setDisplayNameDirectly] = useState(identity?.profile?.displayName ?? '');\n const [emoji, setEmojiDirectly] = useState<string>(getEmojiValue(identity));\n const [hue, setHueDirectly] = useState<string>(getHueValue(identity));\n\n const updateProfile = useMemo(\n () =>\n debounce(\n (profile: Partial<Profile>) =>\n client.halo.updateProfile({\n displayName: profile.displayName,\n data: {\n emoji: profile.emoji,\n hue: profile.hue,\n },\n }),\n 2_000,\n ),\n [],\n );\n\n const handleSave = useCallback(\n (profile: Profile) => {\n setDisplayNameDirectly(profile.displayName);\n setEmojiDirectly(profile.emoji);\n setHueDirectly(profile.hue);\n void updateProfile(profile);\n },\n [identity],\n );\n\n const values = useMemo(\n () => ({\n displayName,\n emoji,\n hue,\n did: identity?.did,\n }),\n [identity, displayName, emoji, hue],\n );\n\n // TODO(wittjosiah): Integrate descriptions with the form schema.\n const customElements: Partial<Record<string, InputComponent>> = useMemo(\n () => ({\n displayName: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback(\n ({ target: { value } }: ChangeEvent<HTMLInputElement>) => onValueChange(type, value),\n [onValueChange, type],\n );\n return (\n <ControlItemInput title={label} description={t('display name description')}>\n <Input.TextInput\n value={getValue()}\n onChange={handleChange}\n placeholder={t('display name input placeholder')}\n classNames='min-is-64'\n />\n </ControlItemInput>\n );\n },\n emoji: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextEmoji: string) => onValueChange(type, nextEmoji), [onValueChange, type]);\n const handleEmojiReset = useCallback(\n () => onValueChange(type, getDefaultEmojiValue(identity)),\n [onValueChange, type],\n );\n return (\n <ControlItem title={label} description={t('icon description')}>\n <EmojiPickerBlock\n triggerVariant='default'\n emoji={getValue()}\n onChangeEmoji={handleChange}\n onClickClear={handleEmojiReset}\n classNames='justify-self-end'\n />\n </ControlItem>\n );\n },\n hue: ({ type, label, getValue, onValueChange }) => {\n const handleChange = useCallback((nextHue: string) => onValueChange(type, nextHue), [onValueChange, type]);\n const handleHueReset = useCallback(\n () => onValueChange(type, getDefaultHueValue(identity)),\n [onValueChange, type],\n );\n return (\n <ControlItem title={label} description={t('hue description')}>\n <HuePicker\n value={getValue()}\n onChange={handleChange}\n onReset={handleHueReset}\n classNames='[--hue-preview-size:1.5rem] justify-self-end'\n />\n </ControlItem>\n );\n },\n // TODO(wittjosiah): We need text input annotations for disabled and copyable.\n did: ({ label, getValue }) => {\n return (\n <ControlItemInput title={label} description={t('did description')}>\n <ButtonGroup>\n <Input.TextInput value={getValue()} disabled classNames='min-is-64' />\n <Clipboard.IconButton value={getValue() ?? ''} />\n </ButtonGroup>\n </ControlItemInput>\n );\n },\n }),\n [t],\n );\n\n return (\n <ControlPage>\n <Clipboard.Provider>\n <ControlSection title={t('profile label')} description={t('profile description')}>\n <Form\n schema={ProfileSchema}\n values={values}\n autoSave\n onSave={handleSave}\n Custom={customElements}\n classNames='container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]'\n outerSpacing={false}\n />\n </ControlSection>\n </Clipboard.Provider>\n </ControlPage>\n );\n};\n\n// TODO(wittjosiah): Integrate annotations with translations.\nconst ProfileSchema = Schema.Struct({\n displayName: Schema.String.annotations({ title: 'Display name' }),\n emoji: Schema.String.annotations({ title: 'Avatar' }),\n hue: Schema.String.annotations({ title: 'Color' }),\n did: Schema.String.annotations({ title: 'DID' }),\n});\ntype Profile = Schema.Schema.Type<typeof ProfileSchema>;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { AlertDialog, Button, Clipboard, Input, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../meta';\n\nexport const RECOVERY_CODE_DIALOG = `${meta.id}/RecoveryCodeDialog`;\n\nexport type RecoveryCodeDialogProps = {\n code: string;\n};\n\nexport const RecoveryCodeDialog = ({ code }: RecoveryCodeDialogProps) => {\n const { t } = useTranslation(meta.id);\n const [confirmation, setConfirmation] = useState(false);\n\n const handleConfirmation = useCallback((checked: boolean) => setConfirmation(checked), []);\n\n return (\n <AlertDialog.Content classNames='bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden'>\n <AlertDialog.Title>{t('recovery code dialog title')}</AlertDialog.Title>\n <p className='py-4'>{t('recovery code dialog description')}</p>\n <Clipboard.Provider>\n <Code code={code} />\n </Clipboard.Provider>\n <div className='flex flex-col py-4 gap-2'>\n <p>{t('recovery code dialog warning 1')}</p>\n <p>{t('recovery code dialog warning 2')}</p>\n </div>\n <div className='flex items-center gap-2 pbe-4'>\n <Input.Root>\n <Input.Checkbox\n data-testid='recoveryCode.confirm'\n checked={confirmation}\n onCheckedChange={handleConfirmation}\n />\n <Input.Label>{t('recovery code confirmation label')}</Input.Label>\n </Input.Root>\n </div>\n <div className='flex justify-end'>\n <AlertDialog.Action asChild>\n <Button data-testid='recoveryCode.continue' variant='primary' disabled={!confirmation}>\n {t('continue label')}\n </Button>\n </AlertDialog.Action>\n </div>\n </AlertDialog.Content>\n );\n};\n\nconst Code = ({ code }: { code: string }) => {\n const words = code.split(' ');\n return (\n <div className='relative p-2 border border-separator rounded group'>\n <Clipboard.IconButton value={code} classNames='absolute top-2 right-2 invisible group-hover:visible' />\n <div className='grid grid-cols-4'>\n {words.map((word, i) => (\n <div key={i} className='flex items-center p-2 gap-2'>\n <div className='w-4 text-xs text-center text-subdued'>{i + 1}</div>\n <div className='text-sm'>{word}</div>\n </div>\n ))}\n </div>\n </div>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { useCredentials } from '@dxos/react-client/halo';\nimport { Icon, IconButton, List, ListItem, Message, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItem, ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../meta';\nimport { ClientAction } from '../types';\n\nexport const MANAGE_CREDENTIALS_DIALOG = `${meta.id}/ManageCredentialsDialog`;\n\nexport const RecoveryCredentialsContainer = () => {\n const { t } = useTranslation(meta.id);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const credentials = useCredentials();\n const recoveryCredentials = credentials.filter(\n (credential) => credential.subject.assertion['@type'] === 'dxos.halo.credentials.IdentityRecovery',\n );\n\n return (\n <ControlPage>\n <ControlSection title={t('recovery setup dialog title')} description={t('recovery setup dialog description')}>\n <ControlGroup>\n <ControlItem title={t('create passkey label')} description={t('create passkey description')}>\n <IconButton\n label={t('create passkey label')}\n icon='ph--key--duotone'\n variant='primary'\n size={5}\n onClick={() => dispatch(createIntent(ClientAction.CreatePasskey))}\n />\n </ControlItem>\n <ControlItem title={t('create recovery code label')} description={t('create recovery code description')}>\n <IconButton\n label={t('create recovery code label')}\n icon='ph--receipt--duotone'\n variant='default'\n size={5}\n onClick={() => dispatch(createIntent(ClientAction.CreateRecoveryCode))}\n />\n </ControlItem>\n </ControlGroup>\n </ControlSection>\n <ControlSection title={t('credentials list label')}>\n {recoveryCredentials.length < 1 ? (\n <Message.Root valence='error' classNames='container-max-width'>\n <Message.Title icon='ph--shield-warning--duotone'>{t('no credentials title')}</Message.Title>\n <Message.Content>{t('no credentials message')}</Message.Content>\n </Message.Root>\n ) : (\n <List classNames='container-max-width pli-2'>\n {recoveryCredentials.map((credential) => (\n <ListItem.Root key={credential.id?.toHex()}>\n <ListItem.Endcap>\n <Icon icon='ph--key--regular' size={5} />\n </ListItem.Endcap>\n <ListItem.Heading>{credential.issuanceDate.toLocaleString()}</ListItem.Heading>\n </ListItem.Root>\n ))}\n </List>\n )}\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { LayoutAction, createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { useClient } from '@dxos/react-client';\nimport { Dialog, useTranslation } from '@dxos/react-ui';\nimport { ConfirmReset, type ConfirmResetProps } from '@dxos/shell/react';\n\nimport { meta } from '../meta';\nimport { type ClientPluginOptions } from '../types';\n\nexport const RESET_DIALOG = `${meta.id}/ResetDialog`;\n\nexport type ResetDialogProps = Pick<ConfirmResetProps, 'mode'> & Pick<ClientPluginOptions, 'onReset'>;\n\nexport const ResetDialog = ({ mode, onReset }: ResetDialogProps) => {\n const { t } = useTranslation(meta.id);\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n\n const handleReset = useCallback(async () => {\n await client.reset();\n const target =\n mode === 'join new identity' ? 'deviceInvitation' : mode === 'recover' ? 'recoverIdentity' : undefined;\n await onReset?.({ target });\n }, [dispatch, client, mode, onReset]);\n\n const handleCancel = useCallback(() => {\n void dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n options: { state: false },\n }),\n );\n }, [dispatch]);\n\n // TODO(wittjosiah): Add the sr-only translations.\n // TODO(wittjosiah): Add missing descriptions to other dialogs.\n return (\n <Dialog.Content classNames='bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden'>\n <Dialog.Title classNames='sr-only'>{t('reset dialog title')}</Dialog.Title>\n <Dialog.Description classNames='sr-only'>{t('reset dialog description')}</Dialog.Description>\n <ConfirmReset active mode={mode} onConfirm={handleReset} onCancel={handleCancel} />\n </Dialog.Content>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useCallback", "useEffect", "useState", "QR", "createIntent", "useIntentDispatcher", "log", "useClient", "useMulticastObservable", "useDevices", "Invitation", "InvitationEncoder", "useNetworkStatus", "Button", "Clipboard", "Icon", "IconButton", "List", "useId", "useTranslation", "ControlFrame", "ControlFrameItem", "ControlGroup", "ControlItem", "ControlPage", "ControlSection", "AuthCode", "Centered", "DeviceListItem", "Emoji", "Viewport", "hexToEmoji", "DevicesContainer", "createInvitationUrl", "t", "useTranslation", "dispatchPromise", "dispatch", "useIntentDispatcher", "devices", "useDevices", "swarm", "connectionState", "useNetworkStatus", "handleResetStorage", "useCallback", "createIntent", "ClientAction", "ResetStorage", "handleRecover", "mode", "handleJoinNewIdentity", "Clipboard", "Provider", "ControlPage", "ControlSection", "title", "ns", "meta", "id", "description", "ControlFrame", "ControlFrameItem", "List", "map", "device", "DeviceListItem", "key", "deviceKey", "toHex", "DeviceInvitation", "ControlGroup", "ControlItem", "Button", "variant", "onClick", "data-testid", "props", "client", "useClient", "invitation", "setInvitation", "useState", "onInvitationCreate", "halo", "share", "config", "values", "runtime", "app", "env", "DX_ENVIRONMENT", "subscription", "subscribe", "invitationCode", "InvitationEncoder", "encode", "state", "Invitation", "State", "CONNECTING", "log", "info", "JSON", "stringify", "authCode", "unsubscribe", "onInvitationDone", "undefined", "DeviceInvitationImpl", "InvitationSection", "invitationObservable", "useMulticastObservable", "url", "useEffect", "SUCCESS", "invitationId", "activeView", "CANCELLED", "READY_FOR_AUTHENTICATION", "p", "className", "IconButton", "icon", "label", "disabled", "classNames", "Viewport", "Root", "Views", "View", "InvitationComplete", "statusValue", "InvitationAuthCode", "code", "onCancel", "InvitationQR", "qrLabel", "useId", "emoji", "hexToEmoji", "div", "role", "QR", "rounding", "backgroundColor", "color", "aria-labelledby", "errorCorrectionLevel", "cutout", "Centered", "Emoji", "text", "span", "value", "AuthCode", "large", "Icon", "size", "React", "useCallback", "LayoutAction", "createIntent", "useIntentDispatcher", "ObservabilityAction", "Dialog", "useTranslation", "JoinPanel", "JOIN_DIALOG", "meta", "id", "JoinDialog", "props", "dispatchPromise", "dispatch", "useIntentDispatcher", "t", "useTranslation", "handleCancelResetStorage", "useCallback", "createIntent", "ClientAction", "ShareIdentity", "handleDone", "result", "identityKey", "Promise", "all", "LayoutAction", "UpdateDialog", "part", "options", "state", "ObservabilityAction", "SendEvent", "name", "initialDisposition", "React", "Dialog", "Content", "Title", "classNames", "ns", "JoinPanel", "mode", "exitActionParent", "Close", "asChild", "doneActionParent", "onCancelResetStorage", "onDone", "Schema", "React", "useCallback", "useMemo", "useState", "debounce", "useClient", "useIdentity", "ButtonGroup", "Clipboard", "Input", "useTranslation", "ControlItem", "ControlItemInput", "ControlPage", "ControlSection", "Form", "EmojiPickerBlock", "HuePicker", "hexToEmoji", "hexToHue", "getDefaultHueValue", "identity", "hexToHue", "identityKey", "toHex", "getDefaultEmojiValue", "hexToEmoji", "getHueValue", "profile", "data", "hue", "getEmojiValue", "emoji", "ProfileContainer", "t", "useTranslation", "meta", "id", "client", "useClient", "useIdentity", "displayName", "setDisplayNameDirectly", "useState", "setEmojiDirectly", "setHueDirectly", "updateProfile", "useMemo", "debounce", "halo", "handleSave", "useCallback", "values", "did", "customElements", "type", "label", "getValue", "onValueChange", "handleChange", "target", "value", "React", "ControlItemInput", "title", "description", "Input", "TextInput", "onChange", "placeholder", "classNames", "nextEmoji", "handleEmojiReset", "ControlItem", "EmojiPickerBlock", "triggerVariant", "onChangeEmoji", "onClickClear", "nextHue", "handleHueReset", "HuePicker", "onReset", "ButtonGroup", "disabled", "Clipboard", "IconButton", "ControlPage", "Provider", "ControlSection", "Form", "schema", "ProfileSchema", "autoSave", "onSave", "Custom", "outerSpacing", "Schema", "Struct", "String", "annotations", "React", "useCallback", "useState", "AlertDialog", "Button", "Clipboard", "Input", "useTranslation", "RECOVERY_CODE_DIALOG", "meta", "id", "RecoveryCodeDialog", "code", "t", "useTranslation", "confirmation", "setConfirmation", "useState", "handleConfirmation", "useCallback", "checked", "React", "AlertDialog", "Content", "classNames", "Title", "p", "className", "Clipboard", "Provider", "Code", "div", "Input", "Root", "Checkbox", "data-testid", "onCheckedChange", "Label", "Action", "asChild", "Button", "variant", "disabled", "words", "split", "IconButton", "value", "map", "word", "i", "key", "React", "createIntent", "useIntentDispatcher", "useCredentials", "Icon", "IconButton", "List", "ListItem", "Message", "useTranslation", "ControlGroup", "ControlItem", "ControlPage", "ControlSection", "MANAGE_CREDENTIALS_DIALOG", "meta", "id", "RecoveryCredentialsContainer", "t", "useTranslation", "dispatchPromise", "dispatch", "useIntentDispatcher", "credentials", "useCredentials", "recoveryCredentials", "filter", "credential", "subject", "assertion", "React", "ControlPage", "ControlSection", "title", "description", "ControlGroup", "ControlItem", "IconButton", "label", "icon", "variant", "size", "onClick", "createIntent", "ClientAction", "CreatePasskey", "CreateRecoveryCode", "length", "Message", "Root", "valence", "classNames", "Title", "Content", "List", "map", "ListItem", "key", "toHex", "Endcap", "Icon", "Heading", "issuanceDate", "toLocaleString", "React", "useCallback", "LayoutAction", "createIntent", "useIntentDispatcher", "useClient", "Dialog", "useTranslation", "ConfirmReset", "RESET_DIALOG", "meta", "id", "ResetDialog", "mode", "onReset", "t", "useTranslation", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "handleReset", "useCallback", "reset", "target", "undefined", "handleCancel", "createIntent", "LayoutAction", "UpdateDialog", "part", "options", "state", "React", "Dialog", "Content", "classNames", "Title", "Description", "ConfirmReset", "active", "onConfirm", "onCancel"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-QB3D2P4J.mjs";
|
|
4
|
+
|
|
5
|
+
// src/capabilities/capabilities.ts
|
|
6
|
+
import { defineCapability } from "@dxos/app-framework";
|
|
7
|
+
(function(ClientCapabilities2) {
|
|
8
|
+
ClientCapabilities2.Client = defineCapability(`${meta.id}/capability/client`);
|
|
9
|
+
ClientCapabilities2.Schema = defineCapability(`${meta.id}/capability/schema`);
|
|
10
|
+
ClientCapabilities2.SchemaWhiteList = defineCapability(`${meta.id}/capability/schema-whitelist`);
|
|
11
|
+
ClientCapabilities2.Migration = defineCapability(`${meta.id}/capability/migration`);
|
|
12
|
+
})(ClientCapabilities || (ClientCapabilities = {}));
|
|
13
|
+
var ClientCapabilities;
|
|
14
|
+
|
|
15
|
+
export {
|
|
16
|
+
ClientCapabilities
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=chunk-PFY3EQPI.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/capabilities.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineCapability } from '@dxos/app-framework';\nimport { type Client } from '@dxos/client';\nimport { type ObjectMigration } from '@dxos/client/echo';\nimport { type Type } from '@dxos/echo';\n\nimport { meta } from '../meta';\n\nexport namespace ClientCapabilities {\n export const Client = defineCapability<Client>(`${meta.id}/capability/client`);\n export const Schema = defineCapability<Type.Obj.Any[]>(`${meta.id}/capability/schema`);\n // TODO(wittjosiah): More descriptive name.\n export const SchemaWhiteList = defineCapability<Type.Obj.Any[]>(`${meta.id}/capability/schema-whitelist`);\n export const Migration = defineCapability<ObjectMigration[]>(`${meta.id}/capability/migration`);\n}\n"],
|
|
5
|
+
"mappings": ";;;;;AAIA,SAASA,wBAAwB;UAOhBC,qBAAAA;sBACFC,SAASC,iBAAyB,GAAGC,KAAKC,EAAE,oBAAoB;sBAChEC,SAASH,iBAAiC,GAAGC,KAAKC,EAAE,oBAAoB;sBAExEE,kBAAkBJ,iBAAiC,GAAGC,KAAKC,EAAE,8BAA8B;sBAC3FG,YAAYL,iBAAoC,GAAGC,KAAKC,EAAE,uBAAuB;AAChG,GANiBJ,uBAAAA,qBAAAA,CAAAA,EAAAA;;",
|
|
6
|
+
"names": ["defineCapability", "ClientCapabilities", "Client", "defineCapability", "meta", "id", "Schema", "SchemaWhiteList", "Migration"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/meta.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const meta: PluginMeta = {\n id: 'dxos.org/plugin/client',\n name: 'Client',\n};\n"],
|
|
5
|
+
"mappings": ";AAMO,IAAMA,OAAmB;EAC9BC,IAAI;EACJC,MAAM;AACR;",
|
|
6
|
+
"names": ["meta", "id", "name"]
|
|
7
|
+
}
|