@dxos/plugin-client 0.7.5-main.9d2a38b → 0.7.5-main.e94eead

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.
Files changed (148) hide show
  1. package/dist/lib/browser/{app-graph-builder-6LOTDB4T.mjs → app-graph-builder-ON64R7SO.mjs} +2 -2
  2. package/dist/lib/browser/{chunk-E3OUNOEL.mjs → chunk-7DPLXOMO.mjs} +14 -2
  3. package/dist/lib/browser/chunk-7DPLXOMO.mjs.map +7 -0
  4. package/dist/lib/browser/chunk-EYBZZHSM.mjs +271 -0
  5. package/dist/lib/browser/chunk-EYBZZHSM.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-SVBQRT7I.mjs → chunk-GHEQL2E6.mjs} +1 -2
  7. package/dist/lib/browser/{chunk-SVBQRT7I.mjs.map → chunk-GHEQL2E6.mjs.map} +3 -3
  8. package/dist/lib/browser/{chunk-R4Q6H7RD.mjs → chunk-RGMLBYIF.mjs} +2 -2
  9. package/dist/lib/browser/{chunk-R4Q6H7RD.mjs.map → chunk-RGMLBYIF.mjs.map} +2 -2
  10. package/dist/lib/browser/{client-25GYH6TN.mjs → client-A7YSVURS.mjs} +4 -13
  11. package/dist/lib/browser/client-A7YSVURS.mjs.map +7 -0
  12. package/dist/lib/browser/index.mjs +28 -15
  13. package/dist/lib/browser/index.mjs.map +3 -3
  14. package/dist/lib/browser/intent-resolver-A6SKE7WJ.mjs +267 -0
  15. package/dist/lib/browser/intent-resolver-A6SKE7WJ.mjs.map +7 -0
  16. package/dist/lib/browser/meta.json +1 -1
  17. package/dist/lib/browser/{react-context-M3RT6SSG.mjs → react-context-R3SG55F5.mjs} +2 -2
  18. package/dist/lib/browser/{react-surface-XXONPG5T.mjs → react-surface-XGOUHVIH.mjs} +23 -7
  19. package/dist/lib/browser/react-surface-XGOUHVIH.mjs.map +7 -0
  20. package/dist/lib/browser/schema-J4MJIXRP.mjs +23 -0
  21. package/dist/lib/browser/schema-J4MJIXRP.mjs.map +7 -0
  22. package/dist/lib/browser/types.mjs +1 -1
  23. package/dist/lib/node/{app-graph-builder-JCND3P6G.cjs → app-graph-builder-RW7ESEX3.cjs} +6 -6
  24. package/dist/lib/node/chunk-7LVBFGKQ.cjs +299 -0
  25. package/dist/lib/node/chunk-7LVBFGKQ.cjs.map +7 -0
  26. package/dist/lib/node/{chunk-NVYWMDF3.cjs → chunk-TREVKZCJ.cjs} +17 -5
  27. package/dist/lib/node/chunk-TREVKZCJ.cjs.map +7 -0
  28. package/dist/lib/node/{chunk-3OB25QN2.cjs → chunk-UHIGZJQL.cjs} +4 -5
  29. package/dist/lib/node/{chunk-3OB25QN2.cjs.map → chunk-UHIGZJQL.cjs.map} +3 -3
  30. package/dist/lib/node/{chunk-IXVWJCYB.cjs → chunk-XPC4JOPP.cjs} +5 -5
  31. package/dist/lib/node/{chunk-IXVWJCYB.cjs.map → chunk-XPC4JOPP.cjs.map} +2 -2
  32. package/dist/lib/node/{client-52L4TUYU.cjs → client-2RQATBB6.cjs} +9 -18
  33. package/dist/lib/node/client-2RQATBB6.cjs.map +7 -0
  34. package/dist/lib/node/index.cjs +30 -17
  35. package/dist/lib/node/index.cjs.map +3 -3
  36. package/dist/lib/node/intent-resolver-DKQHARC2.cjs +275 -0
  37. package/dist/lib/node/intent-resolver-DKQHARC2.cjs.map +7 -0
  38. package/dist/lib/node/meta.json +1 -1
  39. package/dist/lib/node/{react-context-B2DNULH4.cjs → react-context-TD6VGBVA.cjs} +6 -6
  40. package/dist/lib/node/{react-surface-7USN5NOO.cjs → react-surface-IY7GXEGU.cjs} +28 -16
  41. package/dist/lib/node/react-surface-IY7GXEGU.cjs.map +7 -0
  42. package/dist/lib/node/schema-JXJS75HQ.cjs +39 -0
  43. package/dist/lib/node/schema-JXJS75HQ.cjs.map +7 -0
  44. package/dist/lib/node/types.cjs +2 -2
  45. package/dist/lib/node/types.cjs.map +1 -1
  46. package/dist/lib/node-esm/{app-graph-builder-ZLGKFBLY.mjs → app-graph-builder-TDYRWNI7.mjs} +2 -2
  47. package/dist/lib/node-esm/chunk-CRF22MJJ.mjs +272 -0
  48. package/dist/lib/node-esm/chunk-CRF22MJJ.mjs.map +7 -0
  49. package/dist/lib/node-esm/{chunk-74T33KTB.mjs → chunk-QJMF2MWP.mjs} +14 -2
  50. package/dist/lib/node-esm/chunk-QJMF2MWP.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-73M5MK5Q.mjs → chunk-QR72BXJK.mjs} +2 -2
  52. package/dist/lib/node-esm/{chunk-73M5MK5Q.mjs.map → chunk-QR72BXJK.mjs.map} +2 -2
  53. package/dist/lib/node-esm/{chunk-OBGRL3DF.mjs → chunk-T35SFKK3.mjs} +1 -2
  54. package/dist/lib/node-esm/{chunk-OBGRL3DF.mjs.map → chunk-T35SFKK3.mjs.map} +3 -3
  55. package/dist/lib/node-esm/{client-K52NWOUN.mjs → client-36DKBSB7.mjs} +4 -13
  56. package/dist/lib/node-esm/client-36DKBSB7.mjs.map +7 -0
  57. package/dist/lib/node-esm/index.mjs +28 -15
  58. package/dist/lib/node-esm/index.mjs.map +3 -3
  59. package/dist/lib/node-esm/intent-resolver-HFYRSXUG.mjs +268 -0
  60. package/dist/lib/node-esm/intent-resolver-HFYRSXUG.mjs.map +7 -0
  61. package/dist/lib/node-esm/meta.json +1 -1
  62. package/dist/lib/node-esm/{react-context-IGEHJQK5.mjs → react-context-ZOGDOWJ2.mjs} +2 -2
  63. package/dist/lib/node-esm/{react-surface-CXLBCMPN.mjs → react-surface-F3PDFJMV.mjs} +23 -7
  64. package/dist/lib/node-esm/react-surface-F3PDFJMV.mjs.map +7 -0
  65. package/dist/lib/node-esm/schema-XM4HBLIX.mjs +24 -0
  66. package/dist/lib/node-esm/schema-XM4HBLIX.mjs.map +7 -0
  67. package/dist/lib/node-esm/types.mjs +1 -1
  68. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/app-graph-builder.d.ts +110 -110
  70. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/capabilities.d.ts +0 -1
  72. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/client.d.ts.map +1 -1
  74. package/dist/types/src/capabilities/index.d.ts +119 -117
  75. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  76. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -1
  77. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/schema.d.ts +4 -0
  80. package/dist/types/src/capabilities/schema.d.ts.map +1 -0
  81. package/dist/types/src/components/IdentityDialog.d.ts +1 -2
  82. package/dist/types/src/components/IdentityDialog.d.ts.map +1 -1
  83. package/dist/types/src/components/JoinDialog.d.ts +1 -2
  84. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  85. package/dist/types/src/components/ManageCredentialsDialog.d.ts +3 -0
  86. package/dist/types/src/components/ManageCredentialsDialog.d.ts.map +1 -0
  87. package/dist/types/src/components/ManageCredentialsDialog.stories.d.ts +8 -0
  88. package/dist/types/src/components/ManageCredentialsDialog.stories.d.ts.map +1 -0
  89. package/dist/types/src/components/RecoveryCodeDialog.d.ts +1 -2
  90. package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
  91. package/dist/types/src/components/RecoverySetupDialog.d.ts +3 -0
  92. package/dist/types/src/components/RecoverySetupDialog.d.ts.map +1 -0
  93. package/dist/types/src/components/RecoverySetupDialog.stories.d.ts +8 -0
  94. package/dist/types/src/components/RecoverySetupDialog.stories.d.ts.map +1 -0
  95. package/dist/types/src/components/index.d.ts +1 -0
  96. package/dist/types/src/components/index.d.ts.map +1 -1
  97. package/dist/types/src/events.d.ts +1 -1
  98. package/dist/types/src/translations.d.ts +7 -0
  99. package/dist/types/src/translations.d.ts.map +1 -1
  100. package/dist/types/src/types.d.ts +17 -1
  101. package/dist/types/src/types.d.ts.map +1 -1
  102. package/package.json +23 -17
  103. package/src/ClientPlugin.ts +11 -6
  104. package/src/capabilities/capabilities.ts +0 -1
  105. package/src/capabilities/client.ts +1 -9
  106. package/src/capabilities/index.ts +1 -0
  107. package/src/capabilities/intent-resolver.ts +171 -67
  108. package/src/capabilities/react-surface.tsx +21 -6
  109. package/src/capabilities/schema.ts +26 -0
  110. package/src/components/IdentityDialog.tsx +15 -3
  111. package/src/components/JoinDialog.tsx +1 -1
  112. package/src/components/ManageCredentialsDialog.stories.tsx +57 -0
  113. package/src/components/ManageCredentialsDialog.tsx +64 -0
  114. package/src/components/RecoveryCodeDialog.stories.tsx +5 -5
  115. package/src/components/RecoveryCodeDialog.tsx +2 -1
  116. package/src/components/RecoverySetupDialog.stories.tsx +77 -0
  117. package/src/components/RecoverySetupDialog.tsx +52 -0
  118. package/src/components/index.ts +1 -0
  119. package/src/events.ts +1 -1
  120. package/src/translations.ts +10 -1
  121. package/src/types.ts +11 -1
  122. package/dist/lib/browser/chunk-6IF6PREG.mjs +0 -158
  123. package/dist/lib/browser/chunk-6IF6PREG.mjs.map +0 -7
  124. package/dist/lib/browser/chunk-E3OUNOEL.mjs.map +0 -7
  125. package/dist/lib/browser/client-25GYH6TN.mjs.map +0 -7
  126. package/dist/lib/browser/intent-resolver-IWWLWOZD.mjs +0 -132
  127. package/dist/lib/browser/intent-resolver-IWWLWOZD.mjs.map +0 -7
  128. package/dist/lib/browser/react-surface-XXONPG5T.mjs.map +0 -7
  129. package/dist/lib/node/chunk-N3U7KVO3.cjs +0 -186
  130. package/dist/lib/node/chunk-N3U7KVO3.cjs.map +0 -7
  131. package/dist/lib/node/chunk-NVYWMDF3.cjs.map +0 -7
  132. package/dist/lib/node/client-52L4TUYU.cjs.map +0 -7
  133. package/dist/lib/node/intent-resolver-H3Y64MIP.cjs +0 -140
  134. package/dist/lib/node/intent-resolver-H3Y64MIP.cjs.map +0 -7
  135. package/dist/lib/node/react-surface-7USN5NOO.cjs.map +0 -7
  136. package/dist/lib/node-esm/chunk-74T33KTB.mjs.map +0 -7
  137. package/dist/lib/node-esm/chunk-EHGD3UJH.mjs +0 -159
  138. package/dist/lib/node-esm/chunk-EHGD3UJH.mjs.map +0 -7
  139. package/dist/lib/node-esm/client-K52NWOUN.mjs.map +0 -7
  140. package/dist/lib/node-esm/intent-resolver-JCKD6R6L.mjs +0 -133
  141. package/dist/lib/node-esm/intent-resolver-JCKD6R6L.mjs.map +0 -7
  142. package/dist/lib/node-esm/react-surface-CXLBCMPN.mjs.map +0 -7
  143. /package/dist/lib/browser/{app-graph-builder-6LOTDB4T.mjs.map → app-graph-builder-ON64R7SO.mjs.map} +0 -0
  144. /package/dist/lib/browser/{react-context-M3RT6SSG.mjs.map → react-context-R3SG55F5.mjs.map} +0 -0
  145. /package/dist/lib/node/{app-graph-builder-JCND3P6G.cjs.map → app-graph-builder-RW7ESEX3.cjs.map} +0 -0
  146. /package/dist/lib/node/{react-context-B2DNULH4.cjs.map → react-context-TD6VGBVA.cjs.map} +0 -0
  147. /package/dist/lib/node-esm/{app-graph-builder-ZLGKFBLY.mjs.map → app-graph-builder-TDYRWNI7.mjs.map} +0 -0
  148. /package/dist/lib/node-esm/{react-context-IGEHJQK5.mjs.map → react-context-ZOGDOWJ2.mjs.map} +0 -0
@@ -1,159 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- ClientAction
4
- } from "./chunk-74T33KTB.mjs";
5
- import {
6
- CLIENT_PLUGIN
7
- } from "./chunk-HO7WDE7C.mjs";
8
-
9
- // packages/plugins/plugin-client/src/components/IdentityDialog.tsx
10
- import React, { useCallback } from "react";
11
- import { createIntent, LayoutAction, useIntentDispatcher } from "@dxos/app-framework";
12
- import { useClient } from "@dxos/react-client";
13
- import { Clipboard, Dialog } from "@dxos/react-ui";
14
- import { IdentityPanel } from "@dxos/shell/react";
15
- var IDENTITY_DIALOG = `${CLIENT_PLUGIN}/IdentityDialog`;
16
- var IdentityDialog = (props) => {
17
- const { dispatchPromise: dispatch } = useIntentDispatcher();
18
- const client = useClient();
19
- const handleDone = useCallback(() => dispatch(createIntent(LayoutAction.SetLayout, {
20
- element: "dialog",
21
- state: false
22
- })), [
23
- dispatch
24
- ]);
25
- const handleResetStorage = useCallback(async () => {
26
- await client.reset();
27
- await dispatch(createIntent(ClientAction.ResetStorage));
28
- }, [
29
- dispatch
30
- ]);
31
- const handleRecover = useCallback(async () => {
32
- await client.reset();
33
- await dispatch(createIntent(ClientAction.ResetStorage, {
34
- target: "recoverIdentity"
35
- }));
36
- }, [
37
- dispatch
38
- ]);
39
- const handleJoinNewIdentity = useCallback(async () => {
40
- await client.reset();
41
- await dispatch(createIntent(ClientAction.ResetStorage, {
42
- target: "deviceInvitation"
43
- }));
44
- }, [
45
- dispatch
46
- ]);
47
- return /* @__PURE__ */ React.createElement(Dialog.Content, null, /* @__PURE__ */ React.createElement(Clipboard.Provider, null, /* @__PURE__ */ React.createElement(IdentityPanel, {
48
- ...props,
49
- doneActionParent: /* @__PURE__ */ React.createElement(Dialog.Close, {
50
- asChild: true
51
- }),
52
- onDone: handleDone,
53
- onResetStorage: handleResetStorage,
54
- onRecover: handleRecover,
55
- onJoinNewIdentity: handleJoinNewIdentity
56
- })));
57
- };
58
-
59
- // packages/plugins/plugin-client/src/components/JoinDialog.tsx
60
- import React2, { useCallback as useCallback2 } from "react";
61
- import { createIntent as createIntent2, LayoutAction as LayoutAction2, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
62
- import { ObservabilityAction } from "@dxos/plugin-observability/types";
63
- import { Dialog as Dialog2 } from "@dxos/react-ui";
64
- import { JoinPanel } from "@dxos/shell/react";
65
- var JOIN_DIALOG = `${CLIENT_PLUGIN}/JoinDialog`;
66
- var JoinDialog = (props) => {
67
- const { dispatchPromise: dispatch } = useIntentDispatcher2();
68
- const handleCancelResetStorage = useCallback2(() => dispatch(createIntent2(ClientAction.ShareIdentity)), [
69
- dispatch
70
- ]);
71
- const handleDone = useCallback2(async (result) => {
72
- if (result?.identityKey) {
73
- await Promise.all([
74
- dispatch(createIntent2(LayoutAction2.SetLayout, {
75
- element: "dialog",
76
- state: false
77
- })),
78
- dispatch(createIntent2(ObservabilityAction.SendEvent, {
79
- name: props.initialDisposition === "recover-identity" ? "identity.recover" : "identity.join"
80
- }))
81
- ]);
82
- }
83
- }, [
84
- dispatch
85
- ]);
86
- return /* @__PURE__ */ React2.createElement(Dialog2.Content, null, /* @__PURE__ */ React2.createElement(JoinPanel, {
87
- mode: "halo-only",
88
- ...props,
89
- exitActionParent: /* @__PURE__ */ React2.createElement(Dialog2.Close, {
90
- asChild: true
91
- }),
92
- doneActionParent: /* @__PURE__ */ React2.createElement(Dialog2.Close, {
93
- asChild: true
94
- }),
95
- onCancelResetStorage: handleCancelResetStorage,
96
- onDone: handleDone
97
- }));
98
- };
99
-
100
- // packages/plugins/plugin-client/src/components/RecoveryCodeDialog.tsx
101
- import React3, { useCallback as useCallback3, useState } from "react";
102
- import { AlertDialog, Button, Clipboard as Clipboard2, Input, useTranslation } from "@dxos/react-ui";
103
- var RECOVER_CODE_DIALOG = `${CLIENT_PLUGIN}/RecoveryCodeDialog`;
104
- var RecoveryCodeDialog = ({ code }) => {
105
- const { t } = useTranslation(CLIENT_PLUGIN);
106
- const [confirmation, setConfirmation] = useState(false);
107
- const handleConfirmation = useCallback3((checked) => setConfirmation(checked), []);
108
- return /* @__PURE__ */ React3.createElement(AlertDialog.Content, {
109
- classNames: "bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden"
110
- }, /* @__PURE__ */ React3.createElement(AlertDialog.Title, null, t("recovery code dialog title")), /* @__PURE__ */ React3.createElement("p", {
111
- className: "py-4"
112
- }, t("recovery code dialog description")), /* @__PURE__ */ React3.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React3.createElement(Code, {
113
- code
114
- })), /* @__PURE__ */ React3.createElement("div", {
115
- className: "flex flex-col py-4 gap-2"
116
- }, /* @__PURE__ */ React3.createElement("p", null, t("recovery code dialog warning 1")), /* @__PURE__ */ React3.createElement("p", null, t("recovery code dialog warning 2"))), /* @__PURE__ */ React3.createElement("div", {
117
- className: "flex items-center gap-2 pbe-4"
118
- }, /* @__PURE__ */ React3.createElement(Input.Root, null, /* @__PURE__ */ React3.createElement(Input.Checkbox, {
119
- "data-testid": "recoveryCode.confirm",
120
- checked: confirmation,
121
- onCheckedChange: handleConfirmation
122
- }), /* @__PURE__ */ React3.createElement(Input.Label, null, t("recovery code confirmation label")))), /* @__PURE__ */ React3.createElement("div", {
123
- className: "flex justify-end"
124
- }, /* @__PURE__ */ React3.createElement(AlertDialog.Action, {
125
- asChild: true
126
- }, /* @__PURE__ */ React3.createElement(Button, {
127
- "data-testid": "recoveryCode.continue",
128
- variant: "primary",
129
- disabled: !confirmation
130
- }, t("continue label")))));
131
- };
132
- var Code = ({ code }) => {
133
- const words = code.split(" ");
134
- return /* @__PURE__ */ React3.createElement("div", {
135
- className: "relative p-2 border border-separator rounded group"
136
- }, /* @__PURE__ */ React3.createElement(Clipboard2.IconButton, {
137
- value: code,
138
- classNames: "absolute top-2 right-2 invisible group-hover:visible"
139
- }), /* @__PURE__ */ React3.createElement("div", {
140
- className: "grid grid-cols-4"
141
- }, words.map((word, i) => /* @__PURE__ */ React3.createElement("div", {
142
- key: i,
143
- className: "flex items-center p-2 gap-2 items-center"
144
- }, /* @__PURE__ */ React3.createElement("div", {
145
- className: "w-4 text-xs text-center text-subdued"
146
- }, i + 1), /* @__PURE__ */ React3.createElement("div", {
147
- className: "text-sm"
148
- }, word)))));
149
- };
150
-
151
- export {
152
- IDENTITY_DIALOG,
153
- IdentityDialog,
154
- JOIN_DIALOG,
155
- JoinDialog,
156
- RECOVER_CODE_DIALOG,
157
- RecoveryCodeDialog
158
- };
159
- //# sourceMappingURL=chunk-EHGD3UJH.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/IdentityDialog.tsx", "../../../src/components/JoinDialog.tsx", "../../../src/components/RecoveryCodeDialog.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { useClient } from '@dxos/react-client';\nimport { Clipboard, Dialog } from '@dxos/react-ui';\nimport { IdentityPanel, type IdentityPanelProps } from '@dxos/shell/react';\n\nimport { CLIENT_PLUGIN } from '../meta';\nimport { ClientAction } from '../types';\n\nexport const IDENTITY_DIALOG = `${CLIENT_PLUGIN}/IdentityDialog`;\n\nexport const IdentityDialog = (props: IdentityPanelProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const client = useClient();\n\n const handleDone = useCallback(\n () =>\n dispatch(\n createIntent(LayoutAction.SetLayout, {\n element: 'dialog',\n state: false,\n }),\n ),\n [dispatch],\n );\n\n const handleResetStorage = useCallback(async () => {\n await client.reset();\n await dispatch(createIntent(ClientAction.ResetStorage));\n }, [dispatch]);\n\n const handleRecover = useCallback(async () => {\n await client.reset();\n await dispatch(createIntent(ClientAction.ResetStorage, { target: 'recoverIdentity' }));\n }, [dispatch]);\n\n const handleJoinNewIdentity = useCallback(async () => {\n await client.reset();\n await dispatch(createIntent(ClientAction.ResetStorage, { target: 'deviceInvitation' }));\n }, [dispatch]);\n\n return (\n <Dialog.Content>\n <Clipboard.Provider>\n <IdentityPanel\n {...props}\n doneActionParent={<Dialog.Close asChild />}\n onDone={handleDone}\n onResetStorage={handleResetStorage}\n onRecover={handleRecover}\n onJoinNewIdentity={handleJoinNewIdentity}\n />\n </Clipboard.Provider>\n </Dialog.Content>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { createIntent, LayoutAction, useIntentDispatcher } from '@dxos/app-framework';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { type InvitationResult } from '@dxos/react-client/invitations';\nimport { Dialog } from '@dxos/react-ui';\nimport { JoinPanel, type JoinPanelProps } from '@dxos/shell/react';\n\nimport { CLIENT_PLUGIN } from '../meta';\nimport { ClientAction } from '../types';\n\nexport const JOIN_DIALOG = `${CLIENT_PLUGIN}/JoinDialog`;\n\nexport const JoinDialog = (props: JoinPanelProps) => {\n const { dispatchPromise: dispatch } = useIntentDispatcher();\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.SetLayout, { element: 'dialog', 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 <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 2024 DXOS.org\n//\n\nimport React, { useCallback, useState } from 'react';\n\nimport { AlertDialog, Button, Clipboard, Input, useTranslation } from '@dxos/react-ui';\n\nimport { CLIENT_PLUGIN } from '../meta';\n\nexport const RECOVER_CODE_DIALOG = `${CLIENT_PLUGIN}/RecoveryCodeDialog`;\n\nexport type RecoveryCodeDialogProps = {\n code: string;\n};\n\nexport const RecoveryCodeDialog = ({ code }: RecoveryCodeDialogProps) => {\n const { t } = useTranslation(CLIENT_PLUGIN);\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 items-center'>\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"],
5
- "mappings": "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",
6
- "names": ["React", "useCallback", "createIntent", "LayoutAction", "useIntentDispatcher", "useClient", "Clipboard", "Dialog", "IdentityPanel", "IDENTITY_DIALOG", "CLIENT_PLUGIN", "IdentityDialog", "props", "dispatchPromise", "dispatch", "useIntentDispatcher", "client", "useClient", "handleDone", "useCallback", "createIntent", "LayoutAction", "SetLayout", "element", "state", "handleResetStorage", "reset", "ClientAction", "ResetStorage", "handleRecover", "target", "handleJoinNewIdentity", "Dialog", "Content", "Clipboard", "Provider", "IdentityPanel", "doneActionParent", "Close", "asChild", "onDone", "onResetStorage", "onRecover", "onJoinNewIdentity", "React", "useCallback", "createIntent", "LayoutAction", "useIntentDispatcher", "ObservabilityAction", "Dialog", "JoinPanel", "JOIN_DIALOG", "CLIENT_PLUGIN", "JoinDialog", "props", "dispatchPromise", "dispatch", "useIntentDispatcher", "handleCancelResetStorage", "useCallback", "createIntent", "ClientAction", "ShareIdentity", "handleDone", "result", "identityKey", "Promise", "all", "LayoutAction", "SetLayout", "element", "state", "ObservabilityAction", "SendEvent", "name", "initialDisposition", "React", "Dialog", "Content", "JoinPanel", "mode", "exitActionParent", "Close", "asChild", "doneActionParent", "onCancelResetStorage", "onDone", "React", "useCallback", "useState", "AlertDialog", "Button", "Clipboard", "Input", "useTranslation", "RECOVER_CODE_DIALOG", "CLIENT_PLUGIN", "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"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/client.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes, type PluginsContext } from '@dxos/app-framework';\nimport { Config, Defaults, Envs, Local, Storage } from '@dxos/config';\nimport { Client } from '@dxos/react-client';\n\nimport { ClientCapabilities } from './capabilities';\nimport { ClientEvents } from '../events';\nimport { type ClientPluginOptions } from '../types';\n\ntype ClientCapabilityOptions = Omit<ClientPluginOptions, 'appKey' | 'invitationUrl' | 'invitationParam' | 'onReset'> & {\n context: PluginsContext;\n};\n\nexport default async ({ context, onClientInitialized, ...options }: ClientCapabilityOptions) => {\n const config = new Config(await Storage(), Envs(), Local(), Defaults());\n const client = new Client({ config, ...options });\n\n await client.initialize();\n await onClientInitialized?.(context, client);\n\n const systemSchemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.SystemSchema).flat()));\n const schemas = Array.from(new Set(context.requestCapabilities(ClientCapabilities.Schema).flat()));\n client.addTypes(systemSchemas);\n client.addTypes(schemas);\n\n // TODO(wittjosiah): Remove. This is a hack to get the app to boot with the new identity after a reset.\n client.reloaded.on(() => {\n client.halo.identity.subscribe(async (identity) => {\n if (identity) {\n window.location.href = window.location.origin;\n }\n });\n });\n\n const subscription = client.spaces.isReady.subscribe(async (ready) => {\n if (ready) {\n await context.activate(ClientEvents.SpacesReady);\n }\n });\n\n return contributes(ClientCapabilities.Client, client, async () => {\n subscription.unsubscribe();\n await client.destroy();\n });\n};\n"],
5
- "mappings": ";;;;;;;;;;AAIA,SAASA,mBAAwC;AACjD,SAASC,QAAQC,UAAUC,MAAMC,OAAOC,eAAe;AACvD,SAASC,cAAc;AAUvB,IAAA,iBAAe,OAAO,EAAEC,SAASC,qBAAqB,GAAGC,QAAAA,MAAkC;AACzF,QAAMC,SAAS,IAAIC,OAAO,MAAMC,QAAAA,GAAWC,KAAAA,GAAQC,MAAAA,GAASC,SAAAA,CAAAA;AAC5D,QAAMC,SAAS,IAAIC,OAAO;IAAEP;IAAQ,GAAGD;EAAQ,CAAA;AAE/C,QAAMO,OAAOE,WAAU;AACvB,QAAMV,sBAAsBD,SAASS,MAAAA;AAErC,QAAMG,gBAAgBC,MAAMC,KAAK,IAAIC,IAAIf,QAAQgB,oBAAoBC,mBAAmBC,YAAY,EAAEC,KAAI,CAAA,CAAA;AAC1G,QAAMC,UAAUP,MAAMC,KAAK,IAAIC,IAAIf,QAAQgB,oBAAoBC,mBAAmBI,MAAM,EAAEF,KAAI,CAAA,CAAA;AAC9FV,SAAOa,SAASV,aAAAA;AAChBH,SAAOa,SAASF,OAAAA;AAGhBX,SAAOc,SAASC,GAAG,MAAA;AACjBf,WAAOgB,KAAKC,SAASC,UAAU,OAAOD,aAAAA;AACpC,UAAIA,UAAU;AACZE,eAAOC,SAASC,OAAOF,OAAOC,SAASE;MACzC;IACF,CAAA;EACF,CAAA;AAEA,QAAMC,eAAevB,OAAOwB,OAAOC,QAAQP,UAAU,OAAOQ,UAAAA;AAC1D,QAAIA,OAAO;AACT,YAAMnC,QAAQoC,SAASC,aAAaC,WAAW;IACjD;EACF,CAAA;AAEA,SAAOC,YAAYtB,mBAAmBP,QAAQD,QAAQ,YAAA;AACpDuB,iBAAaQ,YAAW;AACxB,UAAM/B,OAAOgC,QAAO;EACtB,CAAA;AACF;",
6
- "names": ["contributes", "Config", "Defaults", "Envs", "Local", "Storage", "Client", "context", "onClientInitialized", "options", "config", "Config", "Storage", "Envs", "Local", "Defaults", "client", "Client", "initialize", "systemSchemas", "Array", "from", "Set", "requestCapabilities", "ClientCapabilities", "SystemSchema", "flat", "schemas", "Schema", "addTypes", "reloaded", "on", "halo", "identity", "subscribe", "window", "location", "href", "origin", "subscription", "spaces", "isReady", "ready", "activate", "ClientEvents", "SpacesReady", "contributes", "unsubscribe", "destroy"]
7
- }
@@ -1,133 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- ClientEvents
4
- } from "./chunk-73M5MK5Q.mjs";
5
- import {
6
- ClientCapabilities
7
- } from "./chunk-OBGRL3DF.mjs";
8
- import {
9
- IDENTITY_DIALOG,
10
- JOIN_DIALOG,
11
- RECOVER_CODE_DIALOG
12
- } from "./chunk-EHGD3UJH.mjs";
13
- import {
14
- ClientAction
15
- } from "./chunk-74T33KTB.mjs";
16
- import "./chunk-HO7WDE7C.mjs";
17
-
18
- // packages/plugins/plugin-client/src/capabilities/intent-resolver.ts
19
- import { Capabilities, contributes, createIntent, createResolver, LayoutAction } from "@dxos/app-framework";
20
- import { invariant } from "@dxos/invariant";
21
- import { ObservabilityAction } from "@dxos/plugin-observability/types";
22
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-client/src/capabilities/intent-resolver.ts";
23
- var intent_resolver_default = ({ context, onReset }) => contributes(Capabilities.IntentResolver, [
24
- createResolver(ClientAction.CreateIdentity, async () => {
25
- const manager = context.requestCapability(Capabilities.PluginManager);
26
- const client = context.requestCapability(ClientCapabilities.Client);
27
- const data = await client.halo.createIdentity();
28
- await manager.activate(ClientEvents.IdentityCreated);
29
- return {
30
- data,
31
- intents: [
32
- createIntent(ObservabilityAction.SendEvent, {
33
- name: "identity.create"
34
- })
35
- ]
36
- };
37
- }),
38
- createResolver(ClientAction.JoinIdentity, async (data) => {
39
- return {
40
- intents: [
41
- createIntent(LayoutAction.SetLayout, {
42
- element: "dialog",
43
- component: JOIN_DIALOG,
44
- dialogBlockAlign: "start",
45
- subject: {
46
- initialInvitationCode: data.invitationCode,
47
- initialDisposition: "accept-halo-invitation"
48
- }
49
- })
50
- ]
51
- };
52
- }),
53
- createResolver(ClientAction.ShareIdentity, async () => {
54
- return {
55
- intents: [
56
- createIntent(LayoutAction.SetLayout, {
57
- element: "dialog",
58
- component: IDENTITY_DIALOG,
59
- dialogBlockAlign: "start"
60
- }),
61
- createIntent(ObservabilityAction.SendEvent, {
62
- name: "identity.share"
63
- })
64
- ]
65
- };
66
- }),
67
- createResolver(ClientAction.RecoverIdentity, async () => {
68
- return {
69
- intents: [
70
- createIntent(LayoutAction.SetLayout, {
71
- element: "dialog",
72
- component: JOIN_DIALOG,
73
- dialogBlockAlign: "start",
74
- subject: {
75
- initialDisposition: "recover-identity"
76
- }
77
- })
78
- ]
79
- };
80
- }),
81
- createResolver(ClientAction.ResetStorage, async (data) => {
82
- await onReset?.({
83
- target: data.target
84
- });
85
- return {};
86
- }),
87
- createResolver(ClientAction.CreateAgent, async () => {
88
- const client = context.requestCapability(ClientCapabilities.Client);
89
- invariant(client.services.services.EdgeAgentService, "Missing EdgeAgentService", {
90
- F: __dxlog_file,
91
- L: 80,
92
- S: void 0,
93
- A: [
94
- "client.services.services.EdgeAgentService",
95
- "'Missing EdgeAgentService'"
96
- ]
97
- });
98
- await client.services.services.EdgeAgentService.createAgent(null, {
99
- timeout: 1e4
100
- });
101
- }),
102
- createResolver(ClientAction.CreateRecoveryCode, async () => {
103
- const client = context.requestCapability(ClientCapabilities.Client);
104
- invariant(client.services.services.IdentityService, "IdentityService not available", {
105
- F: __dxlog_file,
106
- L: 85,
107
- S: void 0,
108
- A: [
109
- "client.services.services.IdentityService",
110
- "'IdentityService not available'"
111
- ]
112
- });
113
- const { seedphrase } = await client.services.services.IdentityService.createRecoveryPhrase();
114
- return {
115
- intents: [
116
- createIntent(LayoutAction.SetLayout, {
117
- element: "dialog",
118
- dialogBlockAlign: "start",
119
- dialogType: "alert",
120
- state: true,
121
- component: RECOVER_CODE_DIALOG,
122
- subject: {
123
- code: seedphrase
124
- }
125
- })
126
- ]
127
- };
128
- })
129
- ]);
130
- export {
131
- intent_resolver_default as default
132
- };
133
- //# sourceMappingURL=intent-resolver-JCKD6R6L.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { type JoinPanelProps } from '@dxos/shell/react';\n\nimport { ClientCapabilities } from './capabilities';\nimport { IDENTITY_DIALOG, JOIN_DIALOG, RECOVER_CODE_DIALOG } from '../components';\nimport { ClientEvents } from '../events';\nimport { ClientAction, type ClientPluginOptions } from '../types';\n\ntype IntentResolverOptions = Pick<ClientPluginOptions, 'onReset'> & {\n context: PluginsContext;\n};\n\nexport default ({ context, onReset }: IntentResolverOptions) =>\n contributes(Capabilities.IntentResolver, [\n createResolver(ClientAction.CreateIdentity, async () => {\n const manager = context.requestCapability(Capabilities.PluginManager);\n const client = context.requestCapability(ClientCapabilities.Client);\n const data = await client.halo.createIdentity();\n await manager.activate(ClientEvents.IdentityCreated);\n return { data, intents: [createIntent(ObservabilityAction.SendEvent, { name: 'identity.create' })] };\n }),\n createResolver(ClientAction.JoinIdentity, async (data) => {\n return {\n intents: [\n createIntent(LayoutAction.SetLayout, {\n element: 'dialog',\n component: JOIN_DIALOG,\n dialogBlockAlign: 'start',\n subject: {\n initialInvitationCode: data.invitationCode,\n initialDisposition: 'accept-halo-invitation',\n } satisfies Partial<JoinPanelProps>,\n }),\n ],\n };\n }),\n createResolver(ClientAction.ShareIdentity, async () => {\n return {\n intents: [\n createIntent(LayoutAction.SetLayout, {\n element: 'dialog',\n component: IDENTITY_DIALOG,\n dialogBlockAlign: 'start',\n }),\n createIntent(ObservabilityAction.SendEvent, { name: 'identity.share' }),\n ],\n };\n }),\n createResolver(ClientAction.RecoverIdentity, async () => {\n return {\n intents: [\n createIntent(LayoutAction.SetLayout, {\n element: 'dialog',\n component: JOIN_DIALOG,\n dialogBlockAlign: 'start',\n subject: { initialDisposition: 'recover-identity' } satisfies Partial<JoinPanelProps>,\n }),\n ],\n };\n }),\n createResolver(ClientAction.ResetStorage, async (data) => {\n await onReset?.({ target: data.target });\n return {};\n }),\n createResolver(ClientAction.CreateAgent, async () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n invariant(client.services.services.EdgeAgentService, 'Missing EdgeAgentService');\n await client.services.services.EdgeAgentService.createAgent(null as any, { timeout: 10_000 });\n }),\n createResolver(ClientAction.CreateRecoveryCode, async () => {\n const client = context.requestCapability(ClientCapabilities.Client);\n invariant(client.services.services.IdentityService, 'IdentityService not available');\n // TODO(wittjosiah): This needs a proper api. Rename property.\n const { seedphrase } = await client.services.services.IdentityService.createRecoveryPhrase();\n return {\n intents: [\n createIntent(LayoutAction.SetLayout, {\n element: 'dialog',\n dialogBlockAlign: 'start',\n dialogType: 'alert',\n state: true,\n component: RECOVER_CODE_DIALOG,\n subject: { code: seedphrase },\n }),\n ],\n };\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAIA,SACEA,cACAC,aACAC,cACAC,gBACAC,oBAEK;AACP,SAASC,iBAAiB;AAC1B,SAASC,2BAA2B;;AAYpC,IAAA,0BAAe,CAAC,EAAEC,SAASC,QAAO,MAChCC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAeC,aAAaC,gBAAgB,YAAA;AAC1C,UAAMC,UAAUR,QAAQS,kBAAkBN,aAAaO,aAAa;AACpE,UAAMC,SAASX,QAAQS,kBAAkBG,mBAAmBC,MAAM;AAClE,UAAMC,OAAO,MAAMH,OAAOI,KAAKC,eAAc;AAC7C,UAAMR,QAAQS,SAASC,aAAaC,eAAe;AACnD,WAAO;MAAEL;MAAMM,SAAS;QAACC,aAAaC,oBAAoBC,WAAW;UAAEC,MAAM;QAAkB,CAAA;;IAAI;EACrG,CAAA;EACAnB,eAAeC,aAAamB,cAAc,OAAOX,SAAAA;AAC/C,WAAO;MACLM,SAAS;QACPC,aAAaK,aAAaC,WAAW;UACnCC,SAAS;UACTC,WAAWC;UACXC,kBAAkB;UAClBC,SAAS;YACPC,uBAAuBnB,KAAKoB;YAC5BC,oBAAoB;UACtB;QACF,CAAA;;IAEJ;EACF,CAAA;EACA9B,eAAeC,aAAa8B,eAAe,YAAA;AACzC,WAAO;MACLhB,SAAS;QACPC,aAAaK,aAAaC,WAAW;UACnCC,SAAS;UACTC,WAAWQ;UACXN,kBAAkB;QACpB,CAAA;QACAV,aAAaC,oBAAoBC,WAAW;UAAEC,MAAM;QAAiB,CAAA;;IAEzE;EACF,CAAA;EACAnB,eAAeC,aAAagC,iBAAiB,YAAA;AAC3C,WAAO;MACLlB,SAAS;QACPC,aAAaK,aAAaC,WAAW;UACnCC,SAAS;UACTC,WAAWC;UACXC,kBAAkB;UAClBC,SAAS;YAAEG,oBAAoB;UAAmB;QACpD,CAAA;;IAEJ;EACF,CAAA;EACA9B,eAAeC,aAAaiC,cAAc,OAAOzB,SAAAA;AAC/C,UAAMb,UAAU;MAAEuC,QAAQ1B,KAAK0B;IAAO,CAAA;AACtC,WAAO,CAAC;EACV,CAAA;EACAnC,eAAeC,aAAamC,aAAa,YAAA;AACvC,UAAM9B,SAASX,QAAQS,kBAAkBG,mBAAmBC,MAAM;AAClE6B,cAAU/B,OAAOgC,SAASA,SAASC,kBAAkB,4BAAA;;;;;;;;;AACrD,UAAMjC,OAAOgC,SAASA,SAASC,iBAAiBC,YAAY,MAAa;MAAEC,SAAS;IAAO,CAAA;EAC7F,CAAA;EACAzC,eAAeC,aAAayC,oBAAoB,YAAA;AAC9C,UAAMpC,SAASX,QAAQS,kBAAkBG,mBAAmBC,MAAM;AAClE6B,cAAU/B,OAAOgC,SAASA,SAASK,iBAAiB,iCAAA;;;;;;;;;AAEpD,UAAM,EAAEC,WAAU,IAAK,MAAMtC,OAAOgC,SAASA,SAASK,gBAAgBE,qBAAoB;AAC1F,WAAO;MACL9B,SAAS;QACPC,aAAaK,aAAaC,WAAW;UACnCC,SAAS;UACTG,kBAAkB;UAClBoB,YAAY;UACZC,OAAO;UACPvB,WAAWwB;UACXrB,SAAS;YAAEsB,MAAML;UAAW;QAC9B,CAAA;;IAEJ;EACF,CAAA;CACD;",
6
- "names": ["Capabilities", "contributes", "createIntent", "createResolver", "LayoutAction", "invariant", "ObservabilityAction", "context", "onReset", "contributes", "Capabilities", "IntentResolver", "createResolver", "ClientAction", "CreateIdentity", "manager", "requestCapability", "PluginManager", "client", "ClientCapabilities", "Client", "data", "halo", "createIdentity", "activate", "ClientEvents", "IdentityCreated", "intents", "createIntent", "ObservabilityAction", "SendEvent", "name", "JoinIdentity", "LayoutAction", "SetLayout", "element", "component", "JOIN_DIALOG", "dialogBlockAlign", "subject", "initialInvitationCode", "invitationCode", "initialDisposition", "ShareIdentity", "IDENTITY_DIALOG", "RecoverIdentity", "ResetStorage", "target", "CreateAgent", "invariant", "services", "EdgeAgentService", "createAgent", "timeout", "CreateRecoveryCode", "IdentityService", "seedphrase", "createRecoveryPhrase", "dialogType", "state", "RECOVER_CODE_DIALOG", "code"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { createSurface, Capabilities, contributes } from '@dxos/app-framework';\nimport { type IdentityPanelProps, type JoinPanelProps } from '@dxos/shell/react';\n\nimport {\n IDENTITY_DIALOG,\n IdentityDialog,\n JOIN_DIALOG,\n JoinDialog,\n RECOVER_CODE_DIALOG,\n RecoveryCodeDialog,\n type RecoveryCodeDialogProps,\n} from '../components';\n\ntype ReactSurfaceOptions = {\n createInvitationUrl: (invitationCode: string) => string;\n};\n\nexport default ({ createInvitationUrl }: ReactSurfaceOptions) =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: IDENTITY_DIALOG,\n role: 'dialog',\n filter: (data): data is { subject: IdentityPanelProps } => data.component === IDENTITY_DIALOG,\n component: ({ data }) => <IdentityDialog {...data.subject} createInvitationUrl={createInvitationUrl} />,\n }),\n createSurface({\n id: JOIN_DIALOG,\n role: 'dialog',\n filter: (data): data is { subject: JoinPanelProps } => data.component === JOIN_DIALOG,\n component: ({ data }) => <JoinDialog {...data.subject} />,\n }),\n createSurface({\n id: RECOVER_CODE_DIALOG,\n role: 'dialog',\n filter: (data): data is { subject: RecoveryCodeDialogProps } => data.component === RECOVER_CODE_DIALOG,\n component: ({ data }) => <RecoveryCodeDialog {...data.subject} />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,eAAeC,cAAcC,mBAAmB;AAiBzD,IAAA,wBAAe,CAAC,EAAEC,oBAAmB,MACnCC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAIC;IACJC,MAAM;IACNC,QAAQ,CAACC,SAAkDA,KAAKC,cAAcJ;IAC9EI,WAAW,CAAC,EAAED,KAAI,MAAO,sBAAA,cAACE,gBAAAA;MAAgB,GAAGF,KAAKG;MAASZ;;EAC7D,CAAA;EACAI,cAAc;IACZC,IAAIQ;IACJN,MAAM;IACNC,QAAQ,CAACC,SAA8CA,KAAKC,cAAcG;IAC1EH,WAAW,CAAC,EAAED,KAAI,MAAO,sBAAA,cAACK,YAAeL,KAAKG,OAAO;EACvD,CAAA;EACAR,cAAc;IACZC,IAAIU;IACJR,MAAM;IACNC,QAAQ,CAACC,SAAuDA,KAAKC,cAAcK;IACnFL,WAAW,CAAC,EAAED,KAAI,MAAO,sBAAA,cAACO,oBAAuBP,KAAKG,OAAO;EAC/D,CAAA;CACD;",
6
- "names": ["React", "createSurface", "Capabilities", "contributes", "createInvitationUrl", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "IDENTITY_DIALOG", "role", "filter", "data", "component", "IdentityDialog", "subject", "JOIN_DIALOG", "JoinDialog", "RECOVER_CODE_DIALOG", "RecoveryCodeDialog"]
7
- }