@dxos/plugin-client 0.8.4-main.f9ba587 → 0.8.4-main.fffef41

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 (164) hide show
  1. package/dist/lib/browser/{app-graph-builder-3EILEBWW.mjs → app-graph-builder-ARY4H3VC.mjs} +26 -25
  2. package/dist/lib/browser/app-graph-builder-ARY4H3VC.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-64ANQXYZ.mjs → chunk-4G4YWIUQ.mjs} +59 -66
  4. package/dist/lib/browser/chunk-4G4YWIUQ.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-4LRO3Y2O.mjs +19 -0
  6. package/dist/lib/browser/chunk-4LRO3Y2O.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-N5UR2HOE.mjs +18 -0
  8. package/dist/lib/browser/chunk-N5UR2HOE.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-Q7TFRFHI.mjs → chunk-RDIG75CA.mjs} +15 -16
  10. package/dist/lib/browser/chunk-RDIG75CA.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-ZRVMXLDR.mjs +15 -0
  12. package/dist/lib/browser/chunk-ZRVMXLDR.mjs.map +7 -0
  13. package/dist/lib/browser/{client-JFNMEFOK.mjs → client-O7U3MQ6J.mjs} +14 -8
  14. package/dist/lib/browser/client-O7U3MQ6J.mjs.map +7 -0
  15. package/dist/lib/browser/index.mjs +23 -19
  16. package/dist/lib/browser/index.mjs.map +4 -4
  17. package/dist/lib/browser/{intent-resolver-YGAQVXI2.mjs → intent-resolver-KLK7PJZK.mjs} +18 -18
  18. package/dist/lib/browser/intent-resolver-KLK7PJZK.mjs.map +7 -0
  19. package/dist/lib/browser/meta.json +1 -1
  20. package/dist/lib/browser/{migrations-5COKGS4E.mjs → migrations-RUAKBBTF.mjs} +6 -6
  21. package/dist/lib/browser/migrations-RUAKBBTF.mjs.map +7 -0
  22. package/dist/lib/browser/{react-context-GBNYT5QK.mjs → react-context-PCT5C3BN.mjs} +9 -8
  23. package/dist/lib/browser/react-context-PCT5C3BN.mjs.map +7 -0
  24. package/dist/lib/browser/{react-surface-YKQAUE2M.mjs → react-surface-RCXEA65V.mjs} +7 -7
  25. package/dist/lib/browser/{react-surface-YKQAUE2M.mjs.map → react-surface-RCXEA65V.mjs.map} +3 -3
  26. package/dist/lib/browser/{schema-defs-6L7W2RHL.mjs → schema-defs-UNNBAEFW.mjs} +6 -6
  27. package/dist/lib/browser/schema-defs-UNNBAEFW.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +10 -0
  29. package/dist/lib/node-esm/{app-graph-builder-GINHOE7A.mjs → app-graph-builder-LLM25DRR.mjs} +26 -25
  30. package/dist/lib/node-esm/app-graph-builder-LLM25DRR.mjs.map +7 -0
  31. package/dist/lib/node-esm/chunk-6ANOJ7ZM.mjs +19 -0
  32. package/dist/lib/node-esm/chunk-6ANOJ7ZM.mjs.map +7 -0
  33. package/dist/lib/node-esm/chunk-7M7VWQJW.mjs +20 -0
  34. package/dist/lib/node-esm/chunk-7M7VWQJW.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-K4PIKBQQ.mjs → chunk-DJ6XKSE4.mjs} +59 -66
  36. package/dist/lib/node-esm/chunk-DJ6XKSE4.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-QT3EQXDU.mjs +17 -0
  38. package/dist/lib/node-esm/chunk-QT3EQXDU.mjs.map +7 -0
  39. package/dist/lib/node-esm/{chunk-GDJMDBWM.mjs → chunk-VENKFPBC.mjs} +15 -16
  40. package/dist/lib/node-esm/chunk-VENKFPBC.mjs.map +7 -0
  41. package/dist/lib/node-esm/{client-XDYQARBL.mjs → client-6MTNT7M6.mjs} +14 -8
  42. package/dist/lib/node-esm/client-6MTNT7M6.mjs.map +7 -0
  43. package/dist/lib/node-esm/index.mjs +23 -19
  44. package/dist/lib/node-esm/index.mjs.map +4 -4
  45. package/dist/lib/node-esm/{intent-resolver-IN7YG7N7.mjs → intent-resolver-YR2C224X.mjs} +18 -18
  46. package/dist/lib/node-esm/intent-resolver-YR2C224X.mjs.map +7 -0
  47. package/dist/lib/node-esm/meta.json +1 -1
  48. package/dist/lib/node-esm/{migrations-FE4PDX6W.mjs → migrations-ASF2SAUR.mjs} +6 -6
  49. package/dist/lib/node-esm/migrations-ASF2SAUR.mjs.map +7 -0
  50. package/dist/lib/node-esm/{react-context-UCK43H3Z.mjs → react-context-F4QOBWSP.mjs} +9 -8
  51. package/dist/lib/node-esm/react-context-F4QOBWSP.mjs.map +7 -0
  52. package/dist/lib/node-esm/{react-surface-HDHC6XHQ.mjs → react-surface-SQBRXVMZ.mjs} +7 -7
  53. package/dist/lib/node-esm/{react-surface-HDHC6XHQ.mjs.map → react-surface-SQBRXVMZ.mjs.map} +3 -3
  54. package/dist/lib/node-esm/{schema-defs-GZIVMHLW.mjs → schema-defs-MSIT2KK2.mjs} +6 -6
  55. package/dist/lib/node-esm/schema-defs-MSIT2KK2.mjs.map +7 -0
  56. package/dist/lib/node-esm/{types.mjs → types/index.mjs} +3 -3
  57. package/dist/types/src/ClientPlugin.d.ts +1 -1
  58. package/dist/types/src/ClientPlugin.d.ts.map +1 -1
  59. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  60. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  61. package/dist/types/src/capabilities/capabilities.d.ts +2 -3
  62. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/client.d.ts +1 -1
  64. package/dist/types/src/capabilities/client.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/index.d.ts +10 -10
  66. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  67. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  68. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  69. package/dist/types/src/capabilities/migrations.d.ts +1 -1
  70. package/dist/types/src/capabilities/migrations.d.ts.map +1 -1
  71. package/dist/types/src/capabilities/react-context.d.ts +2 -2
  72. package/dist/types/src/capabilities/react-context.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  74. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/schema-defs.d.ts +1 -1
  76. package/dist/types/src/capabilities/schema-defs.d.ts.map +1 -1
  77. package/dist/types/src/components/DevicesContainer.d.ts.map +1 -1
  78. package/dist/types/src/components/DevicesContainer.stories.d.ts +224 -5
  79. package/dist/types/src/components/DevicesContainer.stories.d.ts.map +1 -1
  80. package/dist/types/src/components/JoinDialog.d.ts +1 -1
  81. package/dist/types/src/components/JoinDialog.d.ts.map +1 -1
  82. package/dist/types/src/components/ProfileContainer.d.ts.map +1 -1
  83. package/dist/types/src/components/ProfileContainer.stories.d.ts +57 -5
  84. package/dist/types/src/components/ProfileContainer.stories.d.ts.map +1 -1
  85. package/dist/types/src/components/RecoveryCodeDialog.d.ts +1 -1
  86. package/dist/types/src/components/RecoveryCodeDialog.d.ts.map +1 -1
  87. package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts +59 -5
  88. package/dist/types/src/components/RecoveryCodeDialog.stories.d.ts.map +1 -1
  89. package/dist/types/src/components/RecoveryCredentialsContainer.d.ts +1 -1
  90. package/dist/types/src/components/RecoveryCredentialsContainer.d.ts.map +1 -1
  91. package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts +57 -5
  92. package/dist/types/src/components/RecoveryCredentialsContainer.stories.d.ts.map +1 -1
  93. package/dist/types/src/components/ResetDialog.d.ts +1 -1
  94. package/dist/types/src/components/ResetDialog.d.ts.map +1 -1
  95. package/dist/types/src/components/ResetDialog.stories.d.ts +59 -4
  96. package/dist/types/src/components/ResetDialog.stories.d.ts.map +1 -1
  97. package/dist/types/src/events.d.ts.map +1 -1
  98. package/dist/types/src/index.d.ts +3 -2
  99. package/dist/types/src/index.d.ts.map +1 -1
  100. package/dist/types/src/meta.d.ts +0 -1
  101. package/dist/types/src/meta.d.ts.map +1 -1
  102. package/dist/types/src/types/index.d.ts +2 -0
  103. package/dist/types/src/types/index.d.ts.map +1 -0
  104. package/dist/types/src/{types.d.ts → types/schema.d.ts} +31 -25
  105. package/dist/types/src/types/schema.d.ts.map +1 -0
  106. package/dist/types/tsconfig.tsbuildinfo +1 -1
  107. package/package.json +41 -42
  108. package/src/ClientPlugin.ts +57 -59
  109. package/src/capabilities/app-graph-builder.ts +25 -23
  110. package/src/capabilities/capabilities.ts +7 -6
  111. package/src/capabilities/client.ts +6 -4
  112. package/src/capabilities/intent-resolver.ts +7 -6
  113. package/src/capabilities/migrations.ts +2 -2
  114. package/src/capabilities/react-context.tsx +5 -3
  115. package/src/capabilities/react-surface.tsx +3 -3
  116. package/src/capabilities/schema-defs.ts +4 -4
  117. package/src/components/DevicesContainer.stories.tsx +9 -11
  118. package/src/components/DevicesContainer.tsx +61 -72
  119. package/src/components/JoinDialog.tsx +5 -4
  120. package/src/components/ProfileContainer.stories.tsx +8 -9
  121. package/src/components/ProfileContainer.tsx +24 -32
  122. package/src/components/RecoveryCodeDialog.stories.tsx +9 -10
  123. package/src/components/RecoveryCodeDialog.tsx +6 -6
  124. package/src/components/RecoveryCredentialsContainer.stories.tsx +9 -11
  125. package/src/components/RecoveryCredentialsContainer.tsx +47 -51
  126. package/src/components/ResetDialog.stories.tsx +10 -11
  127. package/src/components/ResetDialog.tsx +5 -4
  128. package/src/events.ts +6 -6
  129. package/src/index.ts +4 -3
  130. package/src/meta.ts +6 -3
  131. package/src/types/index.ts +5 -0
  132. package/src/{types.ts → types/schema.ts} +15 -16
  133. package/dist/lib/browser/app-graph-builder-3EILEBWW.mjs.map +0 -7
  134. package/dist/lib/browser/chunk-64ANQXYZ.mjs.map +0 -7
  135. package/dist/lib/browser/chunk-AWXKL4UR.mjs +0 -18
  136. package/dist/lib/browser/chunk-AWXKL4UR.mjs.map +0 -7
  137. package/dist/lib/browser/chunk-CAF2COXW.mjs +0 -19
  138. package/dist/lib/browser/chunk-CAF2COXW.mjs.map +0 -7
  139. package/dist/lib/browser/chunk-GS3LDHYD.mjs +0 -12
  140. package/dist/lib/browser/chunk-GS3LDHYD.mjs.map +0 -7
  141. package/dist/lib/browser/chunk-Q7TFRFHI.mjs.map +0 -7
  142. package/dist/lib/browser/client-JFNMEFOK.mjs.map +0 -7
  143. package/dist/lib/browser/intent-resolver-YGAQVXI2.mjs.map +0 -7
  144. package/dist/lib/browser/migrations-5COKGS4E.mjs.map +0 -7
  145. package/dist/lib/browser/react-context-GBNYT5QK.mjs.map +0 -7
  146. package/dist/lib/browser/schema-defs-6L7W2RHL.mjs.map +0 -7
  147. package/dist/lib/browser/types.mjs +0 -10
  148. package/dist/lib/node-esm/app-graph-builder-GINHOE7A.mjs.map +0 -7
  149. package/dist/lib/node-esm/chunk-3BUB64JB.mjs +0 -19
  150. package/dist/lib/node-esm/chunk-3BUB64JB.mjs.map +0 -7
  151. package/dist/lib/node-esm/chunk-GDJMDBWM.mjs.map +0 -7
  152. package/dist/lib/node-esm/chunk-K4PIKBQQ.mjs.map +0 -7
  153. package/dist/lib/node-esm/chunk-SZLX4BVJ.mjs +0 -14
  154. package/dist/lib/node-esm/chunk-SZLX4BVJ.mjs.map +0 -7
  155. package/dist/lib/node-esm/chunk-UMO3ETDV.mjs +0 -20
  156. package/dist/lib/node-esm/chunk-UMO3ETDV.mjs.map +0 -7
  157. package/dist/lib/node-esm/client-XDYQARBL.mjs.map +0 -7
  158. package/dist/lib/node-esm/intent-resolver-IN7YG7N7.mjs.map +0 -7
  159. package/dist/lib/node-esm/migrations-FE4PDX6W.mjs.map +0 -7
  160. package/dist/lib/node-esm/react-context-UCK43H3Z.mjs.map +0 -7
  161. package/dist/lib/node-esm/schema-defs-GZIVMHLW.mjs.map +0 -7
  162. package/dist/types/src/types.d.ts.map +0 -1
  163. /package/dist/lib/browser/{types.mjs.map → types/index.mjs.map} +0 -0
  164. /package/dist/lib/node-esm/{types.mjs.map → types/index.mjs.map} +0 -0
@@ -1,28 +1,29 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ClientCapabilities
4
- } from "./chunk-3BUB64JB.mjs";
4
+ } from "./chunk-6ANOJ7ZM.mjs";
5
5
  import {
6
6
  Account,
7
7
  ClientAction
8
- } from "./chunk-GDJMDBWM.mjs";
8
+ } from "./chunk-VENKFPBC.mjs";
9
9
  import {
10
- CLIENT_PLUGIN
11
- } from "./chunk-SZLX4BVJ.mjs";
10
+ meta
11
+ } from "./chunk-QT3EQXDU.mjs";
12
12
 
13
13
  // src/capabilities/app-graph-builder.ts
14
- import { Rx } from "@effect-rx/rx-react";
15
- import { Option, pipe } from "effect";
14
+ import { Atom } from "@effect-atom/atom-react";
15
+ import * as Function from "effect/Function";
16
+ import * as Option from "effect/Option";
16
17
  import { createIntent } from "@dxos/app-framework";
17
18
  import { Capabilities, contributes } from "@dxos/app-framework";
18
- import { createExtension, rxFromObservable, ROOT_ID } from "@dxos/plugin-graph";
19
+ import { ROOT_ID, atomFromObservable, createExtension } from "@dxos/plugin-graph";
19
20
  import { ConnectionState } from "@dxos/react-client/mesh";
20
- var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, createExtension({
21
- id: CLIENT_PLUGIN,
22
- actions: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => {
21
+ var app_graph_builder_default = ((context) => contributes(Capabilities.AppGraphBuilder, createExtension({
22
+ id: meta.id,
23
+ actions: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => {
23
24
  return [
24
25
  {
25
- id: `${CLIENT_PLUGIN}/open-user-account`,
26
+ id: `${meta.id}/open-user-account`,
26
27
  data: async () => {
27
28
  const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
28
29
  await dispatch(createIntent(ClientAction.ShareIdentity));
@@ -31,7 +32,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
31
32
  label: [
32
33
  "open user account label",
33
34
  {
34
- ns: CLIENT_PLUGIN
35
+ ns: meta.id
35
36
  }
36
37
  ],
37
38
  icon: "ph--user--regular",
@@ -46,19 +47,19 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
46
47
  }
47
48
  ];
48
49
  }), Option.getOrElse(() => []))),
49
- connector: (node) => Rx.make((get) => pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => {
50
+ connector: (node) => Atom.make((get) => Function.pipe(get(node), Option.flatMap((node2) => node2.id === ROOT_ID ? Option.some(node2) : Option.none()), Option.map(() => {
50
51
  const client = context.getCapability(ClientCapabilities.Client);
51
- const identity = get(rxFromObservable(client.halo.identity));
52
- const status = get(rxFromObservable(client.mesh.networkStatus));
52
+ const identity = get(atomFromObservable(client.halo.identity));
53
+ const status = get(atomFromObservable(client.mesh.networkStatus));
53
54
  return [
54
55
  {
55
56
  id: Account.id,
56
- type: CLIENT_PLUGIN,
57
+ type: meta.id,
57
58
  properties: {
58
59
  label: [
59
60
  "account label",
60
61
  {
61
- ns: CLIENT_PLUGIN
62
+ ns: meta.id
62
63
  }
63
64
  ],
64
65
  icon: "ph--user--regular",
@@ -73,12 +74,12 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
73
74
  {
74
75
  id: Account.Profile,
75
76
  data: Account.Profile,
76
- type: CLIENT_PLUGIN,
77
+ type: meta.id,
77
78
  properties: {
78
79
  label: [
79
80
  "profile label",
80
81
  {
81
- ns: CLIENT_PLUGIN
82
+ ns: meta.id
82
83
  }
83
84
  ],
84
85
  icon: "ph--user--regular"
@@ -87,12 +88,12 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
87
88
  {
88
89
  id: Account.Devices,
89
90
  data: Account.Devices,
90
- type: CLIENT_PLUGIN,
91
+ type: meta.id,
91
92
  properties: {
92
93
  label: [
93
94
  "devices label",
94
95
  {
95
- ns: CLIENT_PLUGIN
96
+ ns: meta.id
96
97
  }
97
98
  ],
98
99
  icon: "ph--devices--regular",
@@ -102,12 +103,12 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
102
103
  {
103
104
  id: Account.Security,
104
105
  data: Account.Security,
105
- type: CLIENT_PLUGIN,
106
+ type: meta.id,
106
107
  properties: {
107
108
  label: [
108
109
  "security label",
109
110
  {
110
- ns: CLIENT_PLUGIN
111
+ ns: meta.id
111
112
  }
112
113
  ],
113
114
  icon: "ph--key--regular"
@@ -117,8 +118,8 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
117
118
  }
118
119
  ];
119
120
  }), Option.getOrElse(() => [])))
120
- }));
121
+ })));
121
122
  export {
122
123
  app_graph_builder_default as default
123
124
  };
124
- //# sourceMappingURL=app-graph-builder-GINHOE7A.mjs.map
125
+ //# sourceMappingURL=app-graph-builder-LLM25DRR.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 { Atom } from '@effect-atom/atom-react';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { createIntent } from '@dxos/app-framework';\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { ROOT_ID, atomFromObservable, createExtension } 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 Atom.make((get) =>\n Function.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 Atom.make((get) =>\n Function.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(atomFromObservable(client.halo.identity));\n const status = get(atomFromObservable(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,YAAY;AACrB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,oBAAoB;AAC7B,SAASC,cAAkCC,mBAAmB;AAC9D,SAASC,SAASC,oBAAoBC,uBAAuB;AAC7D,SAASC,uBAAuB;AAOhC,IAAA,6BAAe,CAACC,YACdC,YACEC,aAAaC,iBACbC,gBAAgB;EACdC,IAAIC,KAAKD;EACTE,SAAS,CAACC,SACRC,KAAKC,KAAK,CAACC,QACAC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUA,MAAKH,OAAOS,UAAiBC,YAAKP,KAAAA,IAAeQ,YAAI,CAAA,GACxEC,WAAI,MAAA;AACT,WAAO;MACL;QACEZ,IAAI,GAAGC,KAAKD,EAAE;QACda,MAAM,YAAA;AACJ,gBAAM,EAAEC,iBAAiBC,SAAQ,IAAKpB,QAAQqB,cAAcnB,aAAaoB,gBAAgB;AACzF,gBAAMF,SAASG,aAAaC,aAAaC,aAAa,CAAA;QACxD;QACAC,YAAY;UACVC,OAAO;YAAC;YAA2B;cAAEC,IAAItB,KAAKD;YAAG;;UACjDwB,MAAM;UACNC,aAAa;UACbC,YAAY;YACVC,OAAO;;YAEPC,SAAS;YACTC,OAAO;UACT;QACF;MACF;;EAEJ,CAAA,GACOC,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;EAG/BC,WAAW,CAAC5B,SACVC,KAAKC,KAAK,CAACC,QACAC,cACPD,IAAIH,IAAAA,GACGK,eAAQ,CAACL,UAAUA,MAAKH,OAAOS,UAAiBC,YAAKP,KAAAA,IAAeQ,YAAI,CAAA,GACxEC,WAAI,MAAA;AACT,UAAMoB,SAASrC,QAAQqB,cAAciB,mBAAmBC,MAAM;AAC9D,UAAMC,WAAW7B,IAAI8B,mBAAmBJ,OAAOK,KAAKF,QAAQ,CAAA;AAC5D,UAAMG,SAAShC,IAAI8B,mBAAmBJ,OAAOO,KAAKC,aAAa,CAAA;AAE/D,WAAO;MACL;QACExC,IAAIyC,QAAQzC;QACZ0C,MAAMzC,KAAKD;QACXqB,YAAY;UACVC,OAAO;YAAC;YAAiB;cAAEC,IAAItB,KAAKD;YAAG;;UACvCwB,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;YACEpD,IAAIyC,QAAQY;YACZxC,MAAM4B,QAAQY;YACdX,MAAMzC,KAAKD;YACXqB,YAAY;cACVC,OAAO;gBAAC;gBAAiB;kBAAEC,IAAItB,KAAKD;gBAAG;;cACvCwB,MAAM;YACR;UACF;UACA;YACExB,IAAIyC,QAAQa;YACZzC,MAAM4B,QAAQa;YACdZ,MAAMzC,KAAKD;YACXqB,YAAY;cACVC,OAAO;gBAAC;gBAAiB;kBAAEC,IAAItB,KAAKD;gBAAG;;cACvCwB,MAAM;cACN+B,QAAQ;YACV;UACF;UACA;YACEvD,IAAIyC,QAAQe;YACZ3C,MAAM4B,QAAQe;YACdd,MAAMzC,KAAKD;YACXqB,YAAY;cACVC,OAAO;gBAAC;gBAAkB;kBAAEC,IAAItB,KAAKD;gBAAG;;cACxCwB,MAAM;YACR;UACF;;MAEJ;;EAEJ,CAAA,GACOM,iBAAU,MAAM,CAAA,CAAE,CAAA,CAAA;AAGjC,CAAA,CAAA;",
6
+ "names": ["Atom", "Function", "Option", "createIntent", "Capabilities", "contributes", "ROOT_ID", "atomFromObservable", "createExtension", "ConnectionState", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "meta", "actions", "node", "Atom", "make", "get", "pipe", "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", "atomFromObservable", "halo", "status", "mesh", "networkStatus", "Account", "type", "userId", "identityKey", "toHex", "hue", "profile", "emoji", "swarm", "ConnectionState", "OFFLINE", "nodes", "Profile", "Devices", "testId", "Security"]
7
+ }
@@ -0,0 +1,19 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-QT3EQXDU.mjs";
5
+
6
+ // src/capabilities/capabilities.ts
7
+ import { defineCapability } from "@dxos/app-framework";
8
+ (function(ClientCapabilities2) {
9
+ ClientCapabilities2.Client = defineCapability(`${meta.id}/capability/client`);
10
+ ClientCapabilities2.Schema = defineCapability(`${meta.id}/capability/schema`);
11
+ ClientCapabilities2.SchemaWhiteList = defineCapability(`${meta.id}/capability/schema-whitelist`);
12
+ ClientCapabilities2.Migration = defineCapability(`${meta.id}/capability/migration`);
13
+ })(ClientCapabilities || (ClientCapabilities = {}));
14
+ var ClientCapabilities;
15
+
16
+ export {
17
+ ClientCapabilities
18
+ };
19
+ //# sourceMappingURL=chunk-6ANOJ7ZM.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,20 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ meta
4
+ } from "./chunk-QT3EQXDU.mjs";
5
+
6
+ // src/events.ts
7
+ import { defineEvent } from "@dxos/app-framework";
8
+ (function(ClientEvents2) {
9
+ ClientEvents2.ClientReady = defineEvent(`${meta.id}/event/client-ready`);
10
+ ClientEvents2.SetupSchema = defineEvent(`${meta.id}/event/setup-schema`);
11
+ ClientEvents2.SetupMigration = defineEvent(`${meta.id}/event/setup-migration`);
12
+ ClientEvents2.IdentityCreated = defineEvent(`${meta.id}/event/identity-created`);
13
+ ClientEvents2.SpacesReady = defineEvent(`${meta.id}/event/spaces-ready`);
14
+ })(ClientEvents || (ClientEvents = {}));
15
+ var ClientEvents;
16
+
17
+ export {
18
+ ClientEvents
19
+ };
20
+ //# sourceMappingURL=chunk-7M7VWQJW.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/events.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace ClientEvents {\n export const ClientReady = defineEvent(`${meta.id}/event/client-ready`);\n export const SetupSchema = defineEvent(`${meta.id}/event/setup-schema`);\n export const SetupMigration = defineEvent(`${meta.id}/event/setup-migration`);\n export const IdentityCreated = defineEvent(`${meta.id}/event/identity-created`);\n export const SpacesReady = defineEvent(`${meta.id}/event/spaces-ready`);\n}\n"],
5
+ "mappings": ";;;;;;AAIA,SAASA,mBAAmB;UAIXC,eAAAA;gBACFC,cAAcC,YAAY,GAAGC,KAAKC,EAAE,qBAAqB;gBACzDC,cAAcH,YAAY,GAAGC,KAAKC,EAAE,qBAAqB;gBACzDE,iBAAiBJ,YAAY,GAAGC,KAAKC,EAAE,wBAAwB;gBAC/DG,kBAAkBL,YAAY,GAAGC,KAAKC,EAAE,yBAAyB;gBACjEI,cAAcN,YAAY,GAAGC,KAAKC,EAAE,qBAAqB;AACxE,GANiBJ,iBAAAA,eAAAA,CAAAA,EAAAA;;",
6
+ "names": ["defineEvent", "ClientEvents", "ClientReady", "defineEvent", "meta", "id", "SetupSchema", "SetupMigration", "IdentityCreated", "SpacesReady"]
7
+ }
@@ -1,26 +1,24 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
3
  ClientAction
4
- } from "./chunk-GDJMDBWM.mjs";
4
+ } from "./chunk-VENKFPBC.mjs";
5
5
  import {
6
- CLIENT_PLUGIN
7
- } from "./chunk-SZLX4BVJ.mjs";
6
+ meta
7
+ } from "./chunk-QT3EQXDU.mjs";
8
8
 
9
9
  // src/components/DevicesContainer.tsx
10
10
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
11
- import { Check, X } from "@phosphor-icons/react";
12
11
  import React, { useCallback, useEffect, useState } from "react";
13
12
  import { QR } from "react-qr-rounded";
14
- import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
13
+ import { createIntent } from "@dxos/app-framework";
14
+ import { useIntentDispatcher } from "@dxos/app-framework/react";
15
15
  import { log } from "@dxos/log";
16
16
  import { useClient, useMulticastObservable } from "@dxos/react-client";
17
17
  import { useDevices } from "@dxos/react-client/halo";
18
18
  import { Invitation, InvitationEncoder } from "@dxos/react-client/invitations";
19
19
  import { useNetworkStatus } from "@dxos/react-client/mesh";
20
- import { Button, Clipboard, IconButton, List, useId, useTranslation } from "@dxos/react-ui";
20
+ import { Button, Clipboard, Icon, IconButton, List, useId, useTranslation } from "@dxos/react-ui";
21
21
  import { ControlFrame, ControlFrameItem, ControlGroup, ControlItem, ControlPage, ControlSection } from "@dxos/react-ui-form";
22
- import { StackItem } from "@dxos/react-ui-stack";
23
- import { getSize, mx } from "@dxos/react-ui-theme";
24
22
  import { AuthCode, Centered, DeviceListItem, Emoji, Viewport } from "@dxos/shell/react";
25
23
  import { hexToEmoji } from "@dxos/util";
26
24
  var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-client/src/components/DevicesContainer.tsx";
@@ -44,18 +42,16 @@ var DevicesContainer = ({ createInvitationUrl }) => {
44
42
  })), [
45
43
  dispatch
46
44
  ]);
47
- return /* @__PURE__ */ React.createElement(Clipboard.Provider, null, /* @__PURE__ */ React.createElement(StackItem.Content, {
48
- classNames: "block overflow-y-auto"
49
- }, /* @__PURE__ */ React.createElement(ControlPage, null, /* @__PURE__ */ React.createElement(ControlSection, {
45
+ return /* @__PURE__ */ React.createElement(Clipboard.Provider, null, /* @__PURE__ */ React.createElement(ControlPage, null, /* @__PURE__ */ React.createElement(ControlSection, {
50
46
  title: t("devices verbose label", {
51
- ns: CLIENT_PLUGIN
47
+ ns: meta.id
52
48
  }),
53
49
  description: t("devices description", {
54
- ns: CLIENT_PLUGIN
50
+ ns: meta.id
55
51
  })
56
52
  }, /* @__PURE__ */ React.createElement(ControlFrame, null, /* @__PURE__ */ React.createElement(ControlFrameItem, {
57
53
  title: t("devices label", {
58
- ns: CLIENT_PLUGIN
54
+ ns: meta.id
59
55
  })
60
56
  }, /* @__PURE__ */ React.createElement(List, null, devices.map((device) => {
61
57
  return /* @__PURE__ */ React.createElement(DeviceListItem, {
@@ -69,15 +65,15 @@ var DevicesContainer = ({ createInvitationUrl }) => {
69
65
  createInvitationUrl
70
66
  })))), /* @__PURE__ */ React.createElement(ControlSection, {
71
67
  title: t("danger zone title", {
72
- ns: CLIENT_PLUGIN
68
+ ns: meta.id
73
69
  }),
74
70
  description: t("danger zone description", {
75
- ns: CLIENT_PLUGIN
71
+ ns: meta.id
76
72
  })
77
73
  }, /* @__PURE__ */ React.createElement(ControlGroup, null, /* @__PURE__ */ React.createElement(ControlItem, {
78
74
  title: t("reset device label"),
79
75
  description: t("reset device description", {
80
- ns: CLIENT_PLUGIN
76
+ ns: meta.id
81
77
  })
82
78
  }, /* @__PURE__ */ React.createElement(Button, {
83
79
  variant: "destructive",
@@ -86,7 +82,7 @@ var DevicesContainer = ({ createInvitationUrl }) => {
86
82
  }, t("reset device label"))), /* @__PURE__ */ React.createElement(ControlItem, {
87
83
  title: t("recover identity label"),
88
84
  description: t("recover identity description", {
89
- ns: CLIENT_PLUGIN
85
+ ns: meta.id
90
86
  })
91
87
  }, /* @__PURE__ */ React.createElement(Button, {
92
88
  variant: "destructive",
@@ -95,13 +91,13 @@ var DevicesContainer = ({ createInvitationUrl }) => {
95
91
  }, t("recover identity label"))), /* @__PURE__ */ React.createElement(ControlItem, {
96
92
  title: t("join new identity label"),
97
93
  description: t("join new identity description", {
98
- ns: CLIENT_PLUGIN
94
+ ns: meta.id
99
95
  })
100
96
  }, /* @__PURE__ */ React.createElement(Button, {
101
97
  variant: "destructive",
102
98
  onClick: handleJoinNewIdentity,
103
99
  "data-testid": "devicesContainer.joinExisting"
104
- }, t("join new identity label"))))))));
100
+ }, t("join new identity label")))))));
105
101
  } finally {
106
102
  _effect.f();
107
103
  }
@@ -122,7 +118,7 @@ var DeviceInvitation = (props) => {
122
118
  authCode: invitation3.authCode
123
119
  }), void 0, {
124
120
  F: __dxlog_file,
125
- L: 141,
121
+ L: 126,
126
122
  S: void 0,
127
123
  C: (f, a) => f(...a)
128
124
  });
@@ -182,7 +178,7 @@ var InvitationSection = ({ state = -1, authCode, invitationId = "never", url = "
182
178
  } }) => {
183
179
  var _effect = _useSignals();
184
180
  try {
185
- const { t } = useTranslation(CLIENT_PLUGIN);
181
+ const { t } = useTranslation(meta.id);
186
182
  const activeView = state < 0 ? "init" : state >= Invitation.State.CANCELLED ? "complete" : state >= Invitation.State.READY_FOR_AUTHENTICATION && authCode ? "auth-code" : "qr-code";
187
183
  return activeView === "init" ? /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", {
188
184
  className: "text-description mbe-2"
@@ -227,7 +223,7 @@ var InvitationQR = ({ id, url, onCancel }) => {
227
223
  return /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("p", {
228
224
  className: "text-description"
229
225
  }, t("qr code description", {
230
- ns: CLIENT_PLUGIN
226
+ ns: meta.id
231
227
  })), /* @__PURE__ */ React.createElement("div", {
232
228
  role: "group",
233
229
  className: "grid grid-cols-[1fr_min-content] mlb-2 gap-2"
@@ -287,10 +283,14 @@ var InvitationAuthCode = ({ id, code, onCancel }) => {
287
283
  var InvitationComplete = ({ statusValue }) => {
288
284
  var _effect = _useSignals();
289
285
  try {
290
- return statusValue > 0 ? /* @__PURE__ */ React.createElement(Check, {
291
- className: mx("m-1.5", getSize(6))
292
- }) : /* @__PURE__ */ React.createElement(X, {
293
- className: mx("m-1.5", getSize(6))
286
+ return statusValue > 0 ? /* @__PURE__ */ React.createElement(Icon, {
287
+ icon: "ph--check--regular",
288
+ size: 6,
289
+ classNames: "m-1.5"
290
+ }) : /* @__PURE__ */ React.createElement(Icon, {
291
+ icon: "ph--x--regular",
292
+ size: 6,
293
+ classNames: "m-1.5"
294
294
  });
295
295
  } finally {
296
296
  _effect.f();
@@ -300,16 +300,17 @@ var InvitationComplete = ({ statusValue }) => {
300
300
  // src/components/JoinDialog.tsx
301
301
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
302
302
  import React2, { useCallback as useCallback2 } from "react";
303
- import { createIntent as createIntent2, LayoutAction, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
303
+ import { LayoutAction, createIntent as createIntent2 } from "@dxos/app-framework";
304
+ import { useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework/react";
304
305
  import { ObservabilityAction } from "@dxos/plugin-observability/types";
305
306
  import { Dialog, useTranslation as useTranslation2 } from "@dxos/react-ui";
306
307
  import { JoinPanel } from "@dxos/shell/react";
307
- var JOIN_DIALOG = `${CLIENT_PLUGIN}/JoinDialog`;
308
+ var JOIN_DIALOG = `${meta.id}/JoinDialog`;
308
309
  var JoinDialog = (props) => {
309
310
  var _effect = _useSignals2();
310
311
  try {
311
312
  const { dispatchPromise: dispatch } = useIntentDispatcher2();
312
- const { t } = useTranslation2(CLIENT_PLUGIN);
313
+ const { t } = useTranslation2(meta.id);
313
314
  const handleCancelResetStorage = useCallback2(() => dispatch(createIntent2(ClientAction.ShareIdentity)), [
314
315
  dispatch
315
316
  ]);
@@ -353,16 +354,15 @@ var JoinDialog = (props) => {
353
354
 
354
355
  // src/components/ProfileContainer.tsx
355
356
  import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
356
- import { Schema } from "effect";
357
+ import * as Schema from "effect/Schema";
357
358
  import React3, { useCallback as useCallback3, useMemo, useState as useState2 } from "react";
358
359
  import { debounce } from "@dxos/async";
359
360
  import { useClient as useClient2 } from "@dxos/react-client";
360
361
  import { useIdentity } from "@dxos/react-client/halo";
361
362
  import { ButtonGroup, Clipboard as Clipboard2, Input, useTranslation as useTranslation3 } from "@dxos/react-ui";
362
- import { Form, ControlItem as ControlItem2, ControlItemInput, ControlSection as ControlSection2, ControlPage as ControlPage2 } from "@dxos/react-ui-form";
363
+ import { ControlItem as ControlItem2, ControlItemInput, ControlPage as ControlPage2, ControlSection as ControlSection2, Form } from "@dxos/react-ui-form";
363
364
  import { EmojiPickerBlock, HuePicker } from "@dxos/react-ui-pickers";
364
- import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
365
- import { hexToHue, hexToEmoji as hexToEmoji2 } from "@dxos/util";
365
+ import { hexToEmoji as hexToEmoji2, hexToHue } from "@dxos/util";
366
366
  var getDefaultHueValue = (identity) => hexToHue(identity?.identityKey.toHex() ?? "0");
367
367
  var getDefaultEmojiValue = (identity) => hexToEmoji2(identity?.identityKey.toHex() ?? "0");
368
368
  var getHueValue = (identity) => identity?.profile?.data?.hue || getDefaultHueValue(identity);
@@ -370,7 +370,7 @@ var getEmojiValue = (identity) => identity?.profile?.data?.emoji || getDefaultEm
370
370
  var ProfileContainer = () => {
371
371
  var _effect = _useSignals3();
372
372
  try {
373
- const { t } = useTranslation3(CLIENT_PLUGIN);
373
+ const { t } = useTranslation3(meta.id);
374
374
  const client = useClient2();
375
375
  const identity = useIdentity();
376
376
  const [displayName, setDisplayNameDirectly] = useState2(identity?.profile?.displayName ?? "");
@@ -387,7 +387,7 @@ var ProfileContainer = () => {
387
387
  setDisplayNameDirectly(profile.displayName);
388
388
  setEmojiDirectly(profile.emoji);
389
389
  setHueDirectly(profile.hue);
390
- updateProfile(profile);
390
+ void updateProfile(profile);
391
391
  }, [
392
392
  identity
393
393
  ]);
@@ -453,8 +453,7 @@ var ProfileContainer = () => {
453
453
  }, /* @__PURE__ */ React3.createElement(HuePicker, {
454
454
  value: getValue(),
455
455
  onChange: handleChange,
456
- onReset: handleHueReset,
457
- classNames: "[--hue-preview-size:1.5rem] justify-self-end"
456
+ onReset: handleHueReset
458
457
  }));
459
458
  },
460
459
  // TODO(wittjosiah): We need text input annotations for disabled and copyable.
@@ -473,9 +472,7 @@ var ProfileContainer = () => {
473
472
  }), [
474
473
  t
475
474
  ]);
476
- return /* @__PURE__ */ React3.createElement(StackItem2.Content, {
477
- classNames: "block overflow-y-auto"
478
- }, /* @__PURE__ */ React3.createElement(ControlPage2, null, /* @__PURE__ */ React3.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React3.createElement(ControlSection2, {
475
+ return /* @__PURE__ */ React3.createElement(ControlPage2, null, /* @__PURE__ */ React3.createElement(Clipboard2.Provider, null, /* @__PURE__ */ React3.createElement(ControlSection2, {
479
476
  title: t("profile label"),
480
477
  description: t("profile description")
481
478
  }, /* @__PURE__ */ React3.createElement(Form, {
@@ -484,9 +481,9 @@ var ProfileContainer = () => {
484
481
  autoSave: true,
485
482
  onSave: handleSave,
486
483
  Custom: customElements,
487
- classNames: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content] gap-4",
484
+ classNames: "container-max-width grid grid-cols-1 md:grid-cols-[1fr_min-content]",
488
485
  outerSpacing: false
489
- })))));
486
+ }))));
490
487
  } finally {
491
488
  _effect.f();
492
489
  }
@@ -510,21 +507,21 @@ var ProfileSchema = Schema.Struct({
510
507
  import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
511
508
  import React4, { useCallback as useCallback4, useState as useState3 } from "react";
512
509
  import { AlertDialog, Button as Button2, Clipboard as Clipboard3, Input as Input2, useTranslation as useTranslation4 } from "@dxos/react-ui";
513
- var RECOVERY_CODE_DIALOG = `${CLIENT_PLUGIN}/RecoveryCodeDialog`;
510
+ var RECOVERY_CODE_DIALOG = `${meta.id}/RecoveryCodeDialog`;
514
511
  var RecoveryCodeDialog = ({ code }) => {
515
512
  var _effect = _useSignals4();
516
513
  try {
517
- const { t } = useTranslation4(CLIENT_PLUGIN);
514
+ const { t } = useTranslation4(meta.id);
518
515
  const [confirmation, setConfirmation] = useState3(false);
519
516
  const handleConfirmation = useCallback4((checked) => setConfirmation(checked), []);
520
517
  return /* @__PURE__ */ React4.createElement(AlertDialog.Content, {
521
518
  classNames: "bs-content min-bs-[15rem] max-bs-full md:max-is-[40rem] overflow-hidden"
522
519
  }, /* @__PURE__ */ React4.createElement(AlertDialog.Title, null, t("recovery code dialog title")), /* @__PURE__ */ React4.createElement("p", {
523
- className: "py-4"
520
+ className: "plb-4"
524
521
  }, t("recovery code dialog description")), /* @__PURE__ */ React4.createElement(Clipboard3.Provider, null, /* @__PURE__ */ React4.createElement(Code, {
525
522
  code
526
523
  })), /* @__PURE__ */ React4.createElement("div", {
527
- className: "flex flex-col py-4 gap-2"
524
+ className: "flex flex-col plb-4 gap-2"
528
525
  }, /* @__PURE__ */ React4.createElement("p", null, t("recovery code dialog warning 1")), /* @__PURE__ */ React4.createElement("p", null, t("recovery code dialog warning 2"))), /* @__PURE__ */ React4.createElement("div", {
529
526
  className: "flex items-center gap-2 pbe-4"
530
527
  }, /* @__PURE__ */ React4.createElement(Input2.Root, null, /* @__PURE__ */ React4.createElement(Input2.Checkbox, {
@@ -559,7 +556,7 @@ var Code = ({ code }) => {
559
556
  key: i,
560
557
  className: "flex items-center p-2 gap-2"
561
558
  }, /* @__PURE__ */ React4.createElement("div", {
562
- className: "w-4 text-xs text-center text-subdued"
559
+ className: "is-4 text-xs text-center text-subdued"
563
560
  }, i + 1), /* @__PURE__ */ React4.createElement("div", {
564
561
  className: "text-sm"
565
562
  }, word)))));
@@ -571,22 +568,20 @@ var Code = ({ code }) => {
571
568
  // src/components/RecoveryCredentialsContainer.tsx
572
569
  import { useSignals as _useSignals5 } from "@preact-signals/safe-react/tracking";
573
570
  import React5 from "react";
574
- import { createIntent as createIntent3, useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework";
571
+ import { createIntent as createIntent3 } from "@dxos/app-framework";
572
+ import { useIntentDispatcher as useIntentDispatcher3 } from "@dxos/app-framework/react";
575
573
  import { useCredentials } from "@dxos/react-client/halo";
576
- import { Icon, IconButton as IconButton2, List as List2, ListItem, useTranslation as useTranslation5, Message } from "@dxos/react-ui";
574
+ import { Icon as Icon2, IconButton as IconButton2, List as List2, ListItem, Message, useTranslation as useTranslation5 } from "@dxos/react-ui";
577
575
  import { ControlGroup as ControlGroup2, ControlItem as ControlItem3, ControlPage as ControlPage3, ControlSection as ControlSection3 } from "@dxos/react-ui-form";
578
- import { StackItem as StackItem3 } from "@dxos/react-ui-stack";
579
- var MANAGE_CREDENTIALS_DIALOG = `${CLIENT_PLUGIN}/ManageCredentialsDialog`;
576
+ var MANAGE_CREDENTIALS_DIALOG = `${meta.id}/ManageCredentialsDialog`;
580
577
  var RecoveryCredentialsContainer = () => {
581
578
  var _effect = _useSignals5();
582
579
  try {
583
- const { t } = useTranslation5(CLIENT_PLUGIN);
580
+ const { t } = useTranslation5(meta.id);
584
581
  const { dispatchPromise: dispatch } = useIntentDispatcher3();
585
582
  const credentials = useCredentials();
586
583
  const recoveryCredentials = credentials.filter((credential) => credential.subject.assertion["@type"] === "dxos.halo.credentials.IdentityRecovery");
587
- return /* @__PURE__ */ React5.createElement(StackItem3.Content, {
588
- classNames: "block overflow-y-auto"
589
- }, /* @__PURE__ */ React5.createElement(ControlPage3, null, /* @__PURE__ */ React5.createElement(ControlSection3, {
584
+ return /* @__PURE__ */ React5.createElement(ControlPage3, null, /* @__PURE__ */ React5.createElement(ControlSection3, {
590
585
  title: t("recovery setup dialog title"),
591
586
  description: t("recovery setup dialog description")
592
587
  }, /* @__PURE__ */ React5.createElement(ControlGroup2, null, /* @__PURE__ */ React5.createElement(ControlItem3, {
@@ -596,7 +591,6 @@ var RecoveryCredentialsContainer = () => {
596
591
  label: t("create passkey label"),
597
592
  icon: "ph--key--duotone",
598
593
  variant: "primary",
599
- size: 5,
600
594
  onClick: () => dispatch(createIntent3(ClientAction.CreatePasskey))
601
595
  })), /* @__PURE__ */ React5.createElement(ControlItem3, {
602
596
  title: t("create recovery code label"),
@@ -605,7 +599,6 @@ var RecoveryCredentialsContainer = () => {
605
599
  label: t("create recovery code label"),
606
600
  icon: "ph--receipt--duotone",
607
601
  variant: "default",
608
- size: 5,
609
602
  onClick: () => dispatch(createIntent3(ClientAction.CreateRecoveryCode))
610
603
  })))), /* @__PURE__ */ React5.createElement(ControlSection3, {
611
604
  title: t("credentials list label")
@@ -618,10 +611,9 @@ var RecoveryCredentialsContainer = () => {
618
611
  classNames: "container-max-width pli-2"
619
612
  }, recoveryCredentials.map((credential) => /* @__PURE__ */ React5.createElement(ListItem.Root, {
620
613
  key: credential.id?.toHex()
621
- }, /* @__PURE__ */ React5.createElement(ListItem.Endcap, null, /* @__PURE__ */ React5.createElement(Icon, {
622
- icon: "ph--key--regular",
623
- size: 5
624
- })), /* @__PURE__ */ React5.createElement(ListItem.Heading, null, credential.issuanceDate.toLocaleString())))))));
614
+ }, /* @__PURE__ */ React5.createElement(ListItem.Endcap, null, /* @__PURE__ */ React5.createElement(Icon2, {
615
+ icon: "ph--key--regular"
616
+ })), /* @__PURE__ */ React5.createElement(ListItem.Heading, null, credential.issuanceDate.toLocaleString()))))));
625
617
  } finally {
626
618
  _effect.f();
627
619
  }
@@ -630,15 +622,16 @@ var RecoveryCredentialsContainer = () => {
630
622
  // src/components/ResetDialog.tsx
631
623
  import { useSignals as _useSignals6 } from "@preact-signals/safe-react/tracking";
632
624
  import React6, { useCallback as useCallback5 } from "react";
633
- import { createIntent as createIntent4, LayoutAction as LayoutAction2, useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework";
625
+ import { LayoutAction as LayoutAction2, createIntent as createIntent4 } from "@dxos/app-framework";
626
+ import { useIntentDispatcher as useIntentDispatcher4 } from "@dxos/app-framework/react";
634
627
  import { useClient as useClient3 } from "@dxos/react-client";
635
628
  import { Dialog as Dialog2, useTranslation as useTranslation6 } from "@dxos/react-ui";
636
629
  import { ConfirmReset } from "@dxos/shell/react";
637
- var RESET_DIALOG = `${CLIENT_PLUGIN}/ResetDialog`;
630
+ var RESET_DIALOG = `${meta.id}/ResetDialog`;
638
631
  var ResetDialog = ({ mode, onReset }) => {
639
632
  var _effect = _useSignals6();
640
633
  try {
641
- const { t } = useTranslation6(CLIENT_PLUGIN);
634
+ const { t } = useTranslation6(meta.id);
642
635
  const { dispatchPromise: dispatch } = useIntentDispatcher4();
643
636
  const client = useClient3();
644
637
  const handleReset = useCallback5(async () => {
@@ -691,4 +684,4 @@ export {
691
684
  RESET_DIALOG,
692
685
  ResetDialog
693
686
  };
694
- //# sourceMappingURL=chunk-K4PIKBQQ.mjs.map
687
+ //# sourceMappingURL=chunk-DJ6XKSE4.mjs.map