@enbox/browser 0.2.1 → 0.3.1

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.
@@ -19,7 +19,16 @@ import { DWebConnect } from './dweb-connect-client.js';
19
19
  import { showWalletSelector } from './ui/wallet-selector.js';
20
20
  /** Default wallets shown in the selector when no overrides are provided. */
21
21
  export const DEFAULT_WALLETS = [
22
- { name: 'Enbox Wallet', url: 'https://wallet.enbox.org' },
22
+ {
23
+ name: 'Enbox Wallet',
24
+ url: 'https://enbox-wallet.pages.dev',
25
+ description: 'Your digital identity wallet',
26
+ },
27
+ {
28
+ name: 'Blue Enbox Wallet',
29
+ url: 'https://blue-enbox-wallet.pages.dev',
30
+ description: 'Your digital identity wallet',
31
+ },
23
32
  ];
24
33
  /**
25
34
  * Create a browser-native connect handler using DWeb Connect
@@ -33,18 +42,19 @@ export const DEFAULT_WALLETS = [
33
42
  *
34
43
  * @example
35
44
  * ```ts
36
- * import { AuthManager } from '@enbox/auth';
37
- * import { BrowserConnectHandler } from '@enbox/browser';
45
+ * import { AuthManager, BrowserConnectHandler } from '@enbox/browser';
38
46
  *
39
47
  * const auth = await AuthManager.create({
40
- * connectHandler: BrowserConnectHandler(),
48
+ * connectHandler: BrowserConnectHandler({
49
+ * appName: 'My Dapp',
50
+ * }),
41
51
  * });
42
52
  *
43
53
  * const session = await auth.connect({ protocols: [NotesProtocol] });
44
54
  * ```
45
55
  */
46
56
  export function BrowserConnectHandler(options = {}) {
47
- const { wallets = DEFAULT_WALLETS, walletUrl: fixedWalletUrl, timeout, } = options;
57
+ const { wallets = DEFAULT_WALLETS, walletUrl: fixedWalletUrl, timeout, appName, appIcon, } = options;
48
58
  return {
49
59
  requestAccess(params) {
50
60
  return __awaiter(this, void 0, void 0, function* () {
@@ -58,6 +68,8 @@ export function BrowserConnectHandler(options = {}) {
58
68
  walletUrl,
59
69
  permissionRequests: params.permissionRequests,
60
70
  timeout,
71
+ appName,
72
+ appIcon,
61
73
  });
62
74
  });
63
75
  },
@@ -1 +1 @@
1
- {"version":3,"file":"browser-connect-handler.js","sourceRoot":"","sources":["../../src/browser-connect-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;;;;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAc7D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,0BAA0B,EAAE;CAC1D,CAAC;AAuBF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAwC,EAAE;IAE1C,MAAM,EACJ,OAAO,GAAG,eAAe,EACzB,SAAS,EAAE,cAAc,EACzB,OAAO,GACR,GAAG,OAAO,CAAC;IAEZ,OAAO;QACC,aAAa,CAAC,MAEnB;;gBACC,2BAA2B;gBAC3B,IAAI,SAAS,GAAG,cAAc,CAAC;gBAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAChD,CAAC;gBAED,sCAAsC;gBACtC,OAAO,WAAW,CAAC,UAAU,CAAC;oBAC5B,SAAS;oBACT,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;SAAA;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"browser-connect-handler.js","sourceRoot":"","sources":["../../src/browser-connect-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;;;;;;;;;;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAiB7D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C;QACE,IAAI,EAAU,cAAc;QAC5B,GAAG,EAAW,gCAAgC;QAC9C,WAAW,EAAG,8BAA8B;KAC7C;IACD;QACE,IAAI,EAAU,mBAAmB;QACjC,GAAG,EAAW,qCAAqC;QACnD,WAAW,EAAG,8BAA8B;KAC7C;CACF,CAAC;AAoCF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAAwC,EAAE;IAE1C,MAAM,EACJ,OAAO,GAAG,eAAe,EACzB,SAAS,EAAE,cAAc,EACzB,OAAO,EACP,OAAO,EACP,OAAO,GACR,GAAG,OAAO,CAAC;IAEZ,OAAO;QACC,aAAa,CAAC,MAEnB;;gBACC,2BAA2B;gBAC3B,IAAI,SAAS,GAAG,cAAc,CAAC;gBAC/B,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS,GAAG,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAC;gBAChD,CAAC;gBAED,sCAAsC;gBACtC,OAAO,WAAW,CAAC,UAAU,CAAC;oBAC5B,SAAS;oBACT,kBAAkB,EAAE,MAAM,CAAC,kBAAkB;oBAC7C,OAAO;oBACP,OAAO;oBACP,OAAO;iBACR,CAAC,CAAC;YACL,CAAC;SAAA;KACF,CAAC;AACJ,CAAC"}
@@ -23,7 +23,8 @@ import { decryptPostMessagePayload, generateEphemeralKeyPair } from './dweb-conn
23
23
  * Protocol:
24
24
  * 1. Dapp opens `${walletUrl}/dweb-connect` as a popup.
25
25
  * 2. Wallet sends `{ type: 'dweb-connect-loaded' }` when ready.
26
- * 3. Dapp sends `{ type: 'dweb-connect-authorization-request', did, permissions }`.
26
+ * 3. Dapp sends `{ type: 'dweb-connect-authorization-request', did, permissions,
27
+ * appName?, appIcon?, portableIdentity? }`.
27
28
  * 4. Wallet shows consent UI, then sends back
28
29
  * `{ type: 'dweb-connect-authorization-response', delegateDid, grants }`.
29
30
  * 5. Popup closes.
@@ -33,15 +34,15 @@ import { decryptPostMessagePayload, generateEphemeralKeyPair } from './dweb-conn
33
34
  */
34
35
  function initClient(options) {
35
36
  return __awaiter(this, void 0, void 0, function* () {
36
- const { walletUrl, did, permissionRequests, timeout = 300000, } = options;
37
+ const { walletUrl, did, permissionRequests, timeout = 300000, appName, appIcon, portableIdentity, } = options;
37
38
  if (typeof window === 'undefined') {
38
- throw new Error('[@enbox/auth] DWeb Connect is only available in browser environments.');
39
+ throw new Error('[@enbox/browser] DWeb Connect is only available in browser environments.');
39
40
  }
40
41
  // Open the wallet's DWeb Connect page as a popup.
41
42
  const popupUrl = new URL('/dweb-connect', walletUrl).toString();
42
43
  const popup = window.open(popupUrl, 'enbox-dweb-connect', 'width=500,height=700,menubar=no,toolbar=no,location=no,status=no');
43
44
  if (!popup) {
44
- throw new Error('[@enbox/auth] Popup blocked. Allow popups for this site to connect to a wallet.');
45
+ throw new Error('[@enbox/browser] Popup blocked. Allow popups for this site to connect to a wallet.');
45
46
  }
46
47
  // Generate an ephemeral ECDH keypair for this connect session.
47
48
  // The public key is sent to the wallet so it can encrypt the response
@@ -71,7 +72,7 @@ function initClient(options) {
71
72
  popup.close();
72
73
  }
73
74
  catch ( /* best effort */_a) { /* best effort */ }
74
- reject(new Error('[@enbox/auth] DWeb Connect timed out waiting for wallet response.'));
75
+ reject(new Error('[@enbox/browser] DWeb Connect timed out waiting for wallet response.'));
75
76
  }
76
77
  }, timeout);
77
78
  // Monitor popup closed without response (user closed the window).
@@ -91,12 +92,16 @@ function initClient(options) {
91
92
  }
92
93
  const { type } = (_a = event.data) !== null && _a !== void 0 ? _a : {};
93
94
  if (type === 'dweb-connect-loaded') {
94
- // Wallet is ready — send the authorization request with ephemeral public key.
95
+ // Wallet is ready — send the authorization request with
96
+ // ephemeral public key and optional app metadata.
95
97
  popup.postMessage({
96
98
  type: 'dweb-connect-authorization-request',
97
99
  did,
98
100
  permissions: permissionRequests,
99
101
  ephemeralPublicKey: dappPublicKeyBase64url,
102
+ appName,
103
+ appIcon,
104
+ portableIdentity,
100
105
  }, walletOrigin);
101
106
  return;
102
107
  }
@@ -1 +1 @@
1
- {"version":3,"file":"dweb-connect-client.js","sourceRoot":"","sources":["../../src/dweb-connect-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dweb-connect-client.js","sourceRoot":"","sources":["../../src/dweb-connect-client.ts"],"names":[],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,5 +1,45 @@
1
+ /**
2
+ * @enbox/browser — The Enbox browser SDK.
3
+ *
4
+ * For browser-based dapps, this is the only package you need to import.
5
+ * It re-exports the high-level API from `@enbox/api`, the authentication
6
+ * layer from `@enbox/auth`, and provides browser-specific connect handlers.
7
+ *
8
+ * @example Single-import dapp setup
9
+ * ```ts
10
+ * import {
11
+ * Enbox, AuthManager, BrowserConnectHandler,
12
+ * defineProtocol, repository,
13
+ * type AuthSession,
14
+ * } from '@enbox/browser';
15
+ *
16
+ * const auth = await AuthManager.create({
17
+ * connectHandler: BrowserConnectHandler({ appName: 'My App' }),
18
+ * });
19
+ *
20
+ * const session = await auth.connect({ protocols: [MyProtocol] });
21
+ * const enbox = Enbox.connect({ session });
22
+ * ```
23
+ *
24
+ * For non-browser environments (Node.js, CLI, desktop), import from
25
+ * `@enbox/api` and `@enbox/auth` directly instead.
26
+ *
27
+ * @packageDocumentation
28
+ */
29
+ // ─── Re-exports from @enbox/api ─────────────────────────────────
30
+ //
31
+ // The high-level Enbox API: DWN records, protocols, repositories.
32
+ export { Enbox, defineProtocol, repository, } from '@enbox/api';
33
+ // ─── Re-exports from @enbox/auth ────────────────────────────────
34
+ //
35
+ // Authentication lifecycle, session management, connect handlers.
36
+ export { AuthManager, AuthSession, normalizeProtocolRequests, WalletConnect, } from '@enbox/auth';
37
+ // ─── Browser-specific exports ───────────────────────────────────
38
+ //
39
+ // DWeb Connect, wallet selector, DRL polyfills.
1
40
  export * from './web-features.js';
2
41
  export { BrowserConnectHandler, DEFAULT_WALLETS } from './browser-connect-handler.js';
3
42
  export { DWebConnect } from './dweb-connect-client.js';
43
+ export { showWalletSelector } from './ui/wallet-selector.js';
4
44
  export { encryptPostMessagePayload, generateEphemeralKeyPair } from './dweb-connect-crypto.js';
5
45
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,mEAAmE;AACnE,EAAE;AACF,kEAAkE;AAElE,OAAO,EACL,KAAK,EACL,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAOpB,mEAAmE;AACnE,EAAE;AACF,kEAAkE;AAElE,OAAO,EACL,WAAW,EACX,WAAW,EACX,yBAAyB,EACzB,aAAa,GACd,MAAM,aAAa,CAAC;AAwBrB,mEAAmE;AACnE,EAAE;AACF,gDAAgD;AAEhD,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAEtF,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -9,7 +9,7 @@
9
9
  /** Shows the wallet selector modal and resolves with the chosen wallet URL. */
10
10
  export function showWalletSelector(wallets) {
11
11
  if (typeof window === 'undefined' || typeof document === 'undefined') {
12
- throw new Error('[@enbox/auth] Wallet selector is only available in browser environments.');
12
+ throw new Error('[@enbox/browser] Wallet selector is only available in browser environments.');
13
13
  }
14
14
  return new Promise((resolve, reject) => {
15
15
  var _a, _b;
@@ -44,7 +44,7 @@ export function showWalletSelector(wallets) {
44
44
  closeBtn.innerHTML = '×';
45
45
  closeBtn.addEventListener('click', () => {
46
46
  cleanup();
47
- reject(new Error('[@enbox/auth] Wallet selection cancelled.'));
47
+ reject(new Error('[@enbox/browser] Wallet selection cancelled.'));
48
48
  });
49
49
  header.appendChild(title);
50
50
  header.appendChild(closeBtn);
@@ -61,14 +61,23 @@ export function showWalletSelector(wallets) {
61
61
  icon.width = 32;
62
62
  icon.height = 32;
63
63
  icon.onerror = () => { icon.style.display = 'none'; };
64
+ const textGroup = document.createElement('div');
65
+ textGroup.className = 'wallet-text';
64
66
  const name = document.createElement('span');
65
67
  name.className = 'wallet-name';
66
68
  name.textContent = wallet.name;
69
+ textGroup.appendChild(name);
70
+ if (wallet.description) {
71
+ const desc = document.createElement('span');
72
+ desc.className = 'wallet-description';
73
+ desc.textContent = wallet.description;
74
+ textGroup.appendChild(desc);
75
+ }
67
76
  const arrow = document.createElement('span');
68
77
  arrow.className = 'arrow';
69
78
  arrow.textContent = '\u203A'; // ›
70
79
  item.appendChild(icon);
71
- item.appendChild(name);
80
+ item.appendChild(textGroup);
72
81
  item.appendChild(arrow);
73
82
  item.addEventListener('click', () => {
74
83
  cleanup();
@@ -123,7 +132,7 @@ export function showWalletSelector(wallets) {
123
132
  overlay.addEventListener('click', (e) => {
124
133
  if (e.target === overlay) {
125
134
  cleanup();
126
- reject(new Error('[@enbox/auth] Wallet selection cancelled.'));
135
+ reject(new Error('[@enbox/browser] Wallet selection cancelled.'));
127
136
  }
128
137
  });
129
138
  // Close on Escape.
@@ -131,7 +140,7 @@ export function showWalletSelector(wallets) {
131
140
  if (e.key === 'Escape') {
132
141
  document.removeEventListener('keydown', onKeydown);
133
142
  cleanup();
134
- reject(new Error('[@enbox/auth] Wallet selection cancelled.'));
143
+ reject(new Error('[@enbox/browser] Wallet selection cancelled.'));
135
144
  }
136
145
  };
137
146
  document.addEventListener('keydown', onKeydown);
@@ -257,11 +266,28 @@ function buildStyles(isDark) {
257
266
  }
258
267
  .wallet-item:hover { background: ${itemHover}; }
259
268
 
260
- .wallet-name { flex: 1; font-weight: 500; }
269
+ .wallet-text {
270
+ flex: 1;
271
+ display: flex;
272
+ flex-direction: column;
273
+ gap: 2px;
274
+ min-width: 0;
275
+ }
276
+
277
+ .wallet-name { font-weight: 500; }
278
+
279
+ .wallet-description {
280
+ font-size: 12px;
281
+ color: ${muted};
282
+ white-space: nowrap;
283
+ overflow: hidden;
284
+ text-overflow: ellipsis;
285
+ }
261
286
 
262
287
  .arrow {
263
288
  font-size: 20px;
264
289
  color: ${muted};
290
+ flex-shrink: 0;
265
291
  }
266
292
 
267
293
  .separator {
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-selector.js","sourceRoot":"","sources":["../../../src/ui/wallet-selector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wallet-selector.js","sourceRoot":"","sources":["../../../src/ui/wallet-selector.ts"],"names":[],"mappings":"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"}
@@ -11,10 +11,12 @@ import type { ConnectHandler } from '@enbox/auth';
11
11
  export interface WalletOption {
12
12
  /** Display name (e.g. "Enbox Wallet"). */
13
13
  name: string;
14
- /** Base URL of the wallet app (e.g. "https://wallet.enbox.org"). */
14
+ /** Base URL of the wallet app (e.g. "https://enbox-wallet.pages.dev"). */
15
15
  url: string;
16
16
  /** Optional icon URL. If omitted, the wallet's favicon is used. */
17
17
  icon?: string;
18
+ /** Short description shown below the wallet name in the selector. */
19
+ description?: string;
18
20
  }
19
21
  /** Default wallets shown in the selector when no overrides are provided. */
20
22
  export declare const DEFAULT_WALLETS: WalletOption[];
@@ -35,6 +37,17 @@ export interface BrowserConnectHandlerOptions {
35
37
  * @default 300_000 (5 minutes)
36
38
  */
37
39
  timeout?: number;
40
+ /**
41
+ * Display name of the requesting application.
42
+ * Shown in the wallet's permission consent screen.
43
+ */
44
+ appName?: string;
45
+ /**
46
+ * Icon URL of the requesting application.
47
+ * Shown alongside the app name in the wallet's consent screen.
48
+ * Defaults to `${window.location.origin}/favicon.ico` if omitted.
49
+ */
50
+ appIcon?: string;
38
51
  }
39
52
  /**
40
53
  * Create a browser-native connect handler using DWeb Connect
@@ -48,11 +61,12 @@ export interface BrowserConnectHandlerOptions {
48
61
  *
49
62
  * @example
50
63
  * ```ts
51
- * import { AuthManager } from '@enbox/auth';
52
- * import { BrowserConnectHandler } from '@enbox/browser';
64
+ * import { AuthManager, BrowserConnectHandler } from '@enbox/browser';
53
65
  *
54
66
  * const auth = await AuthManager.create({
55
- * connectHandler: BrowserConnectHandler(),
67
+ * connectHandler: BrowserConnectHandler({
68
+ * appName: 'My Dapp',
69
+ * }),
56
70
  * });
57
71
  *
58
72
  * const session = await auth.connect({ protocols: [NotesProtocol] });
@@ -1 +1 @@
1
- {"version":3,"file":"browser-connect-handler.d.ts","sourceRoot":"","sources":["../../src/browser-connect-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAKjE,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IAEb,oEAAoE;IACpE,GAAG,EAAE,MAAM,CAAC;IAEZ,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,4EAA4E;AAC5E,eAAO,MAAM,eAAe,EAAE,YAAY,EAEzC,CAAC;AAEF,oDAAoD;AACpD,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,4BAAiC,GACzC,cAAc,CAyBhB"}
1
+ {"version":3,"file":"browser-connect-handler.d.ts","sourceRoot":"","sources":["../../src/browser-connect-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,aAAa,CAAC;AAKjE,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,IAAI,EAAE,MAAM,CAAC;IAEb,0EAA0E;IAC1E,GAAG,EAAE,MAAM,CAAC;IAEZ,mEAAmE;IACnE,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,4EAA4E;AAC5E,eAAO,MAAM,eAAe,EAAE,YAAY,EAWzC,CAAC;AAEF,oDAAoD;AACpD,MAAM,WAAW,4BAA4B;IAC3C;;;OAGG;IACH,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IAEzB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,GAAE,4BAAiC,GACzC,cAAc,CA6BhB"}
@@ -7,11 +7,11 @@
7
7
  *
8
8
  * @module
9
9
  */
10
- import type { ConnectResult } from '@enbox/auth';
11
10
  import type { ConnectPermissionRequest } from '@enbox/agent';
11
+ import type { ConnectResult, PortableIdentity } from '@enbox/auth';
12
12
  /** Options for initiating a DWeb Connect flow via popup. */
13
13
  export interface DWebConnectClientOptions {
14
- /** Base URL of the wallet app (e.g. "https://wallet.enbox.org"). */
14
+ /** Base URL of the wallet app (e.g. "https://enbox-wallet.pages.dev"). */
15
15
  walletUrl: string;
16
16
  /** The DID to pre-select in the wallet's identity picker. */
17
17
  did?: string;
@@ -26,6 +26,24 @@ export interface DWebConnectClientOptions {
26
26
  * @default 300_000 (5 minutes)
27
27
  */
28
28
  timeout?: number;
29
+ /**
30
+ * Display name of the requesting application.
31
+ * Shown in the wallet's permission consent screen.
32
+ */
33
+ appName?: string;
34
+ /**
35
+ * Icon URL of the requesting application.
36
+ * Shown alongside the app name in the wallet's consent screen.
37
+ */
38
+ appIcon?: string;
39
+ /**
40
+ * A portable identity to transfer to the wallet for import.
41
+ *
42
+ * When provided, the wallet imports this identity and creates
43
+ * delegate grants for the dapp, allowing the dapp to transition
44
+ * from local-DID mode to delegate mode while keeping the same DID.
45
+ */
46
+ portableIdentity?: PortableIdentity;
29
47
  }
30
48
  /**
31
49
  * Open a wallet popup and run the DWeb Connect postMessage flow.
@@ -33,7 +51,8 @@ export interface DWebConnectClientOptions {
33
51
  * Protocol:
34
52
  * 1. Dapp opens `${walletUrl}/dweb-connect` as a popup.
35
53
  * 2. Wallet sends `{ type: 'dweb-connect-loaded' }` when ready.
36
- * 3. Dapp sends `{ type: 'dweb-connect-authorization-request', did, permissions }`.
54
+ * 3. Dapp sends `{ type: 'dweb-connect-authorization-request', did, permissions,
55
+ * appName?, appIcon?, portableIdentity? }`.
37
56
  * 4. Wallet shows consent UI, then sends back
38
57
  * `{ type: 'dweb-connect-authorization-response', delegateDid, grants }`.
39
58
  * 5. Popup closes.
@@ -1 +1 @@
1
- {"version":3,"file":"dweb-connect-client.d.ts","sourceRoot":"","sources":["../../src/dweb-connect-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjD,OAAO,KAAK,EAAE,wBAAwB,EAAqC,MAAM,cAAc,CAAC;AAKhG,4DAA4D;AAC5D,MAAM,WAAW,wBAAwB;IACvC,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAElB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;IAE/C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;;;;;GAaG;AACH,iBAAe,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAoJ/F;AAED;;;;;;;;;;;GAWG;AACH,iBAAe,kBAAkB,CAC/B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ,GACd,OAAO,CAAC,OAAO,CAAC,CA+ClB;AAED,eAAO,MAAM,WAAW;;;CAAqC,CAAC"}
1
+ {"version":3,"file":"dweb-connect-client.d.ts","sourceRoot":"","sources":["../../src/dweb-connect-client.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,wBAAwB,EAAqC,MAAM,cAAc,CAAC;AAChG,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAKnE,4DAA4D;AAC5D,MAAM,WAAW,wBAAwB;IACvC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,CAAC;IAElB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,kBAAkB,EAAE,wBAAwB,EAAE,CAAC;IAE/C;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC;AAED;;;;;;;;;;;;;;GAcG;AACH,iBAAe,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CA2J/F;AAED;;;;;;;;;;;GAWG;AACH,iBAAe,kBAAkB,CAC/B,SAAS,EAAE,MAAM,EACjB,GAAG,EAAE,MAAM,EACX,OAAO,SAAQ,GACd,OAAO,CAAC,OAAO,CAAC,CA+ClB;AAED,eAAO,MAAM,WAAW;;;CAAqC,CAAC"}
@@ -1,8 +1,41 @@
1
+ /**
2
+ * @enbox/browser — The Enbox browser SDK.
3
+ *
4
+ * For browser-based dapps, this is the only package you need to import.
5
+ * It re-exports the high-level API from `@enbox/api`, the authentication
6
+ * layer from `@enbox/auth`, and provides browser-specific connect handlers.
7
+ *
8
+ * @example Single-import dapp setup
9
+ * ```ts
10
+ * import {
11
+ * Enbox, AuthManager, BrowserConnectHandler,
12
+ * defineProtocol, repository,
13
+ * type AuthSession,
14
+ * } from '@enbox/browser';
15
+ *
16
+ * const auth = await AuthManager.create({
17
+ * connectHandler: BrowserConnectHandler({ appName: 'My App' }),
18
+ * });
19
+ *
20
+ * const session = await auth.connect({ protocols: [MyProtocol] });
21
+ * const enbox = Enbox.connect({ session });
22
+ * ```
23
+ *
24
+ * For non-browser environments (Node.js, CLI, desktop), import from
25
+ * `@enbox/api` and `@enbox/auth` directly instead.
26
+ *
27
+ * @packageDocumentation
28
+ */
29
+ export { Enbox, defineProtocol, repository, } from '@enbox/api';
30
+ export type { EnboxParams, EnboxAnonymousOptions, } from '@enbox/api';
31
+ export { AuthManager, AuthSession, normalizeProtocolRequests, WalletConnect, } from '@enbox/auth';
32
+ export type { AuthEvent, AuthEventHandler, AuthManagerOptions, AuthState, ConnectHandler, ConnectOptions, ConnectResult, DisconnectOptions, HandlerConnectOptions, ImportFromPhraseOptions, ImportFromPortableOptions, LocalConnectOptions, Permission, PortableIdentity, ProtocolRequest, RegistrationOptions, StorageAdapter, SyncOption, WalletConnectOptions, } from '@enbox/auth';
1
33
  export * from './web-features.js';
2
34
  export { BrowserConnectHandler, DEFAULT_WALLETS } from './browser-connect-handler.js';
3
35
  export type { BrowserConnectHandlerOptions, WalletOption } from './browser-connect-handler.js';
4
36
  export { DWebConnect } from './dweb-connect-client.js';
5
37
  export type { DWebConnectClientOptions } from './dweb-connect-client.js';
38
+ export { showWalletSelector } from './ui/wallet-selector.js';
6
39
  export { encryptPostMessagePayload, generateEphemeralKeyPair } from './dweb-connect-crypto.js';
7
40
  export type { EncryptedPostMessagePayload } from './dweb-connect-crypto.js';
8
41
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACtF,YAAY,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC/F,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAMH,OAAO,EACL,KAAK,EACL,cAAc,EACd,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,WAAW,EACX,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAMpB,OAAO,EACL,WAAW,EACX,WAAW,EACX,yBAAyB,EACzB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,cAAc,EACd,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,yBAAyB,EACzB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAMrB,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACtF,YAAY,EAAE,4BAA4B,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC/F,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAC/F,YAAY,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-selector.d.ts","sourceRoot":"","sources":["../../../src/ui/wallet-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAmK3E"}
1
+ {"version":3,"file":"wallet-selector.d.ts","sourceRoot":"","sources":["../../../src/ui/wallet-selector.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,+EAA+E;AAC/E,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CA+K3E"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@enbox/browser",
3
- "version": "0.2.1",
3
+ "version": "0.3.1",
4
4
  "description": "Enbox tools and features to use in the browser",
5
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
@@ -56,6 +56,7 @@
56
56
  },
57
57
  "dependencies": {
58
58
  "@enbox/agent": "0.6.3",
59
+ "@enbox/api": "0.6.15",
59
60
  "@enbox/auth": "0.6.23",
60
61
  "@enbox/dids": "0.1.0"
61
62
  },
@@ -18,16 +18,28 @@ export interface WalletOption {
18
18
  /** Display name (e.g. "Enbox Wallet"). */
19
19
  name: string;
20
20
 
21
- /** Base URL of the wallet app (e.g. "https://wallet.enbox.org"). */
21
+ /** Base URL of the wallet app (e.g. "https://enbox-wallet.pages.dev"). */
22
22
  url: string;
23
23
 
24
24
  /** Optional icon URL. If omitted, the wallet's favicon is used. */
25
25
  icon?: string;
26
+
27
+ /** Short description shown below the wallet name in the selector. */
28
+ description?: string;
26
29
  }
27
30
 
28
31
  /** Default wallets shown in the selector when no overrides are provided. */
29
32
  export const DEFAULT_WALLETS: WalletOption[] = [
30
- { name: 'Enbox Wallet', url: 'https://wallet.enbox.org' },
33
+ {
34
+ name : 'Enbox Wallet',
35
+ url : 'https://enbox-wallet.pages.dev',
36
+ description : 'Your digital identity wallet',
37
+ },
38
+ {
39
+ name : 'Blue Enbox Wallet',
40
+ url : 'https://blue-enbox-wallet.pages.dev',
41
+ description : 'Your digital identity wallet',
42
+ },
31
43
  ];
32
44
 
33
45
  /** Options for creating a BrowserConnectHandler. */
@@ -49,6 +61,19 @@ export interface BrowserConnectHandlerOptions {
49
61
  * @default 300_000 (5 minutes)
50
62
  */
51
63
  timeout?: number;
64
+
65
+ /**
66
+ * Display name of the requesting application.
67
+ * Shown in the wallet's permission consent screen.
68
+ */
69
+ appName?: string;
70
+
71
+ /**
72
+ * Icon URL of the requesting application.
73
+ * Shown alongside the app name in the wallet's consent screen.
74
+ * Defaults to `${window.location.origin}/favicon.ico` if omitted.
75
+ */
76
+ appIcon?: string;
52
77
  }
53
78
 
54
79
  /**
@@ -63,11 +88,12 @@ export interface BrowserConnectHandlerOptions {
63
88
  *
64
89
  * @example
65
90
  * ```ts
66
- * import { AuthManager } from '@enbox/auth';
67
- * import { BrowserConnectHandler } from '@enbox/browser';
91
+ * import { AuthManager, BrowserConnectHandler } from '@enbox/browser';
68
92
  *
69
93
  * const auth = await AuthManager.create({
70
- * connectHandler: BrowserConnectHandler(),
94
+ * connectHandler: BrowserConnectHandler({
95
+ * appName: 'My Dapp',
96
+ * }),
71
97
  * });
72
98
  *
73
99
  * const session = await auth.connect({ protocols: [NotesProtocol] });
@@ -80,6 +106,8 @@ export function BrowserConnectHandler(
80
106
  wallets = DEFAULT_WALLETS,
81
107
  walletUrl: fixedWalletUrl,
82
108
  timeout,
109
+ appName,
110
+ appIcon,
83
111
  } = options;
84
112
 
85
113
  return {
@@ -97,6 +125,8 @@ export function BrowserConnectHandler(
97
125
  walletUrl,
98
126
  permissionRequests: params.permissionRequests,
99
127
  timeout,
128
+ appName,
129
+ appIcon,
100
130
  });
101
131
  },
102
132
  };
@@ -8,16 +8,16 @@
8
8
  * @module
9
9
  */
10
10
 
11
- import type { ConnectResult } from '@enbox/auth';
12
11
  import type { PortableDid } from '@enbox/dids';
13
12
  import type { ConnectPermissionRequest, DwnDataEncodedRecordsWriteMessage } from '@enbox/agent';
13
+ import type { ConnectResult, PortableIdentity } from '@enbox/auth';
14
14
 
15
15
  import type { EncryptedPostMessagePayload } from './dweb-connect-crypto.js';
16
16
  import { decryptPostMessagePayload, generateEphemeralKeyPair } from './dweb-connect-crypto.js';
17
17
 
18
18
  /** Options for initiating a DWeb Connect flow via popup. */
19
19
  export interface DWebConnectClientOptions {
20
- /** Base URL of the wallet app (e.g. "https://wallet.enbox.org"). */
20
+ /** Base URL of the wallet app (e.g. "https://enbox-wallet.pages.dev"). */
21
21
  walletUrl: string;
22
22
 
23
23
  /** The DID to pre-select in the wallet's identity picker. */
@@ -35,6 +35,27 @@ export interface DWebConnectClientOptions {
35
35
  * @default 300_000 (5 minutes)
36
36
  */
37
37
  timeout?: number;
38
+
39
+ /**
40
+ * Display name of the requesting application.
41
+ * Shown in the wallet's permission consent screen.
42
+ */
43
+ appName?: string;
44
+
45
+ /**
46
+ * Icon URL of the requesting application.
47
+ * Shown alongside the app name in the wallet's consent screen.
48
+ */
49
+ appIcon?: string;
50
+
51
+ /**
52
+ * A portable identity to transfer to the wallet for import.
53
+ *
54
+ * When provided, the wallet imports this identity and creates
55
+ * delegate grants for the dapp, allowing the dapp to transition
56
+ * from local-DID mode to delegate mode while keeping the same DID.
57
+ */
58
+ portableIdentity?: PortableIdentity;
38
59
  }
39
60
 
40
61
  /**
@@ -43,7 +64,8 @@ export interface DWebConnectClientOptions {
43
64
  * Protocol:
44
65
  * 1. Dapp opens `${walletUrl}/dweb-connect` as a popup.
45
66
  * 2. Wallet sends `{ type: 'dweb-connect-loaded' }` when ready.
46
- * 3. Dapp sends `{ type: 'dweb-connect-authorization-request', did, permissions }`.
67
+ * 3. Dapp sends `{ type: 'dweb-connect-authorization-request', did, permissions,
68
+ * appName?, appIcon?, portableIdentity? }`.
47
69
  * 4. Wallet shows consent UI, then sends back
48
70
  * `{ type: 'dweb-connect-authorization-response', delegateDid, grants }`.
49
71
  * 5. Popup closes.
@@ -57,11 +79,14 @@ async function initClient(options: DWebConnectClientOptions): Promise<ConnectRes
57
79
  did,
58
80
  permissionRequests,
59
81
  timeout = 300_000,
82
+ appName,
83
+ appIcon,
84
+ portableIdentity,
60
85
  } = options;
61
86
 
62
87
  if (typeof window === 'undefined') {
63
88
  throw new Error(
64
- '[@enbox/auth] DWeb Connect is only available in browser environments.'
89
+ '[@enbox/browser] DWeb Connect is only available in browser environments.'
65
90
  );
66
91
  }
67
92
 
@@ -75,7 +100,7 @@ async function initClient(options: DWebConnectClientOptions): Promise<ConnectRes
75
100
 
76
101
  if (!popup) {
77
102
  throw new Error(
78
- '[@enbox/auth] Popup blocked. Allow popups for this site to connect to a wallet.'
103
+ '[@enbox/browser] Popup blocked. Allow popups for this site to connect to a wallet.'
79
104
  );
80
105
  }
81
106
 
@@ -108,7 +133,7 @@ async function initClient(options: DWebConnectClientOptions): Promise<ConnectRes
108
133
  cleanup();
109
134
  try { popup.close(); } catch { /* best effort */ }
110
135
  reject(new Error(
111
- '[@enbox/auth] DWeb Connect timed out waiting for wallet response.'
136
+ '[@enbox/browser] DWeb Connect timed out waiting for wallet response.'
112
137
  ));
113
138
  }
114
139
  }, timeout);
@@ -130,12 +155,16 @@ async function initClient(options: DWebConnectClientOptions): Promise<ConnectRes
130
155
  const { type } = event.data ?? {};
131
156
 
132
157
  if (type === 'dweb-connect-loaded') {
133
- // Wallet is ready — send the authorization request with ephemeral public key.
158
+ // Wallet is ready — send the authorization request with
159
+ // ephemeral public key and optional app metadata.
134
160
  popup.postMessage({
135
161
  type : 'dweb-connect-authorization-request',
136
162
  did,
137
163
  permissions : permissionRequests,
138
164
  ephemeralPublicKey : dappPublicKeyBase64url,
165
+ appName,
166
+ appIcon,
167
+ portableIdentity,
139
168
  }, walletOrigin);
140
169
  return;
141
170
  }
package/src/index.ts CHANGED
@@ -1,7 +1,89 @@
1
+ /**
2
+ * @enbox/browser — The Enbox browser SDK.
3
+ *
4
+ * For browser-based dapps, this is the only package you need to import.
5
+ * It re-exports the high-level API from `@enbox/api`, the authentication
6
+ * layer from `@enbox/auth`, and provides browser-specific connect handlers.
7
+ *
8
+ * @example Single-import dapp setup
9
+ * ```ts
10
+ * import {
11
+ * Enbox, AuthManager, BrowserConnectHandler,
12
+ * defineProtocol, repository,
13
+ * type AuthSession,
14
+ * } from '@enbox/browser';
15
+ *
16
+ * const auth = await AuthManager.create({
17
+ * connectHandler: BrowserConnectHandler({ appName: 'My App' }),
18
+ * });
19
+ *
20
+ * const session = await auth.connect({ protocols: [MyProtocol] });
21
+ * const enbox = Enbox.connect({ session });
22
+ * ```
23
+ *
24
+ * For non-browser environments (Node.js, CLI, desktop), import from
25
+ * `@enbox/api` and `@enbox/auth` directly instead.
26
+ *
27
+ * @packageDocumentation
28
+ */
29
+
30
+ // ─── Re-exports from @enbox/api ─────────────────────────────────
31
+ //
32
+ // The high-level Enbox API: DWN records, protocols, repositories.
33
+
34
+ export {
35
+ Enbox,
36
+ defineProtocol,
37
+ repository,
38
+ } from '@enbox/api';
39
+
40
+ export type {
41
+ EnboxParams,
42
+ EnboxAnonymousOptions,
43
+ } from '@enbox/api';
44
+
45
+ // ─── Re-exports from @enbox/auth ────────────────────────────────
46
+ //
47
+ // Authentication lifecycle, session management, connect handlers.
48
+
49
+ export {
50
+ AuthManager,
51
+ AuthSession,
52
+ normalizeProtocolRequests,
53
+ WalletConnect,
54
+ } from '@enbox/auth';
55
+
56
+ export type {
57
+ AuthEvent,
58
+ AuthEventHandler,
59
+ AuthManagerOptions,
60
+ AuthState,
61
+ ConnectHandler,
62
+ ConnectOptions,
63
+ ConnectResult,
64
+ DisconnectOptions,
65
+ HandlerConnectOptions,
66
+ ImportFromPhraseOptions,
67
+ ImportFromPortableOptions,
68
+ LocalConnectOptions,
69
+ Permission,
70
+ PortableIdentity,
71
+ ProtocolRequest,
72
+ RegistrationOptions,
73
+ StorageAdapter,
74
+ SyncOption,
75
+ WalletConnectOptions,
76
+ } from '@enbox/auth';
77
+
78
+ // ─── Browser-specific exports ───────────────────────────────────
79
+ //
80
+ // DWeb Connect, wallet selector, DRL polyfills.
81
+
1
82
  export * from './web-features.js';
2
83
  export { BrowserConnectHandler, DEFAULT_WALLETS } from './browser-connect-handler.js';
3
84
  export type { BrowserConnectHandlerOptions, WalletOption } from './browser-connect-handler.js';
4
85
  export { DWebConnect } from './dweb-connect-client.js';
5
86
  export type { DWebConnectClientOptions } from './dweb-connect-client.js';
87
+ export { showWalletSelector } from './ui/wallet-selector.js';
6
88
  export { encryptPostMessagePayload, generateEphemeralKeyPair } from './dweb-connect-crypto.js';
7
- export type { EncryptedPostMessagePayload } from './dweb-connect-crypto.js';
89
+ export type { EncryptedPostMessagePayload } from './dweb-connect-crypto.js';
@@ -12,7 +12,7 @@ import type { WalletOption } from '../browser-connect-handler.js';
12
12
  /** Shows the wallet selector modal and resolves with the chosen wallet URL. */
13
13
  export function showWalletSelector(wallets: WalletOption[]): Promise<string> {
14
14
  if (typeof window === 'undefined' || typeof document === 'undefined') {
15
- throw new Error('[@enbox/auth] Wallet selector is only available in browser environments.');
15
+ throw new Error('[@enbox/browser] Wallet selector is only available in browser environments.');
16
16
  }
17
17
 
18
18
  return new Promise<string>((resolve, reject) => {
@@ -52,7 +52,7 @@ export function showWalletSelector(wallets: WalletOption[]): Promise<string> {
52
52
  closeBtn.innerHTML = '&times;';
53
53
  closeBtn.addEventListener('click', () => {
54
54
  cleanup();
55
- reject(new Error('[@enbox/auth] Wallet selection cancelled.'));
55
+ reject(new Error('[@enbox/browser] Wallet selection cancelled.'));
56
56
  });
57
57
 
58
58
  header.appendChild(title);
@@ -74,16 +74,28 @@ export function showWalletSelector(wallets: WalletOption[]): Promise<string> {
74
74
  icon.height = 32;
75
75
  icon.onerror = (): void => { icon.style.display = 'none'; };
76
76
 
77
+ const textGroup = document.createElement('div');
78
+ textGroup.className = 'wallet-text';
79
+
77
80
  const name = document.createElement('span');
78
81
  name.className = 'wallet-name';
79
82
  name.textContent = wallet.name;
80
83
 
84
+ textGroup.appendChild(name);
85
+
86
+ if (wallet.description) {
87
+ const desc = document.createElement('span');
88
+ desc.className = 'wallet-description';
89
+ desc.textContent = wallet.description;
90
+ textGroup.appendChild(desc);
91
+ }
92
+
81
93
  const arrow = document.createElement('span');
82
94
  arrow.className = 'arrow';
83
95
  arrow.textContent = '\u203A'; // ›
84
96
 
85
97
  item.appendChild(icon);
86
- item.appendChild(name);
98
+ item.appendChild(textGroup);
87
99
  item.appendChild(arrow);
88
100
 
89
101
  item.addEventListener('click', () => {
@@ -152,7 +164,7 @@ export function showWalletSelector(wallets: WalletOption[]): Promise<string> {
152
164
  overlay.addEventListener('click', (e) => {
153
165
  if (e.target === overlay) {
154
166
  cleanup();
155
- reject(new Error('[@enbox/auth] Wallet selection cancelled.'));
167
+ reject(new Error('[@enbox/browser] Wallet selection cancelled.'));
156
168
  }
157
169
  });
158
170
 
@@ -161,7 +173,7 @@ export function showWalletSelector(wallets: WalletOption[]): Promise<string> {
161
173
  if (e.key === 'Escape') {
162
174
  document.removeEventListener('keydown', onKeydown);
163
175
  cleanup();
164
- reject(new Error('[@enbox/auth] Wallet selection cancelled.'));
176
+ reject(new Error('[@enbox/browser] Wallet selection cancelled.'));
165
177
  }
166
178
  };
167
179
  document.addEventListener('keydown', onKeydown);
@@ -294,11 +306,28 @@ function buildStyles(isDark: boolean): string {
294
306
  }
295
307
  .wallet-item:hover { background: ${itemHover}; }
296
308
 
297
- .wallet-name { flex: 1; font-weight: 500; }
309
+ .wallet-text {
310
+ flex: 1;
311
+ display: flex;
312
+ flex-direction: column;
313
+ gap: 2px;
314
+ min-width: 0;
315
+ }
316
+
317
+ .wallet-name { font-weight: 500; }
318
+
319
+ .wallet-description {
320
+ font-size: 12px;
321
+ color: ${muted};
322
+ white-space: nowrap;
323
+ overflow: hidden;
324
+ text-overflow: ellipsis;
325
+ }
298
326
 
299
327
  .arrow {
300
328
  font-size: 20px;
301
329
  color: ${muted};
330
+ flex-shrink: 0;
302
331
  }
303
332
 
304
333
  .separator {