@mysten-incubation/dev-wallet 0.0.1 → 0.3.0

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 (182) hide show
  1. package/CHANGELOG.md +139 -0
  2. package/LICENSE +189 -0
  3. package/dist/_virtual/{_@oxc-project_runtime@0.107.0 → _@oxc-project_runtime@0.127.0}/helpers/decorate.mjs +2 -3
  4. package/dist/adapters/base-adapter.mjs +6 -7
  5. package/dist/adapters/base-adapter.mjs.map +1 -1
  6. package/dist/adapters/browser.d.mts +4 -1
  7. package/dist/adapters/browser.mjs +4 -2
  8. package/dist/adapters/build-managed-account.mjs +8 -10
  9. package/dist/adapters/build-managed-account.mjs.map +1 -1
  10. package/dist/adapters/devstack-adapter.d.mts +111 -0
  11. package/dist/adapters/devstack-adapter.d.mts.map +1 -0
  12. package/dist/adapters/devstack-adapter.mjs +224 -0
  13. package/dist/adapters/devstack-adapter.mjs.map +1 -0
  14. package/dist/adapters/devstack-paths.d.mts +11 -0
  15. package/dist/adapters/devstack-paths.d.mts.map +1 -0
  16. package/dist/adapters/devstack-paths.mjs +11 -0
  17. package/dist/adapters/devstack-paths.mjs.map +1 -0
  18. package/dist/adapters/fork-relay.d.mts +109 -0
  19. package/dist/adapters/fork-relay.d.mts.map +1 -0
  20. package/dist/adapters/fork-relay.mjs +208 -0
  21. package/dist/adapters/fork-relay.mjs.map +1 -0
  22. package/dist/adapters/idb-store.mjs +12 -16
  23. package/dist/adapters/idb-store.mjs.map +1 -1
  24. package/dist/adapters/in-memory-adapter.mjs +4 -10
  25. package/dist/adapters/in-memory-adapter.mjs.map +1 -1
  26. package/dist/adapters/passkey-adapter.mjs +4 -12
  27. package/dist/adapters/passkey-adapter.mjs.map +1 -1
  28. package/dist/adapters/remote-cli-adapter.mjs +37 -72
  29. package/dist/adapters/remote-cli-adapter.mjs.map +1 -1
  30. package/dist/adapters/webcrypto-adapter.mjs +2 -4
  31. package/dist/adapters/webcrypto-adapter.mjs.map +1 -1
  32. package/dist/bin/cli.mjs +9 -22
  33. package/dist/bin/cli.mjs.map +1 -1
  34. package/dist/client/dev-wallet-client.mjs +13 -28
  35. package/dist/client/dev-wallet-client.mjs.map +1 -1
  36. package/dist/client/index.mjs +1 -2
  37. package/dist/client/request-handler.mjs +36 -42
  38. package/dist/client/request-handler.mjs.map +1 -1
  39. package/dist/index.mjs +1 -2
  40. package/dist/react/components.d.mts +9 -9
  41. package/dist/react/components.d.mts.map +1 -1
  42. package/dist/react/components.mjs +2 -5
  43. package/dist/react/components.mjs.map +1 -1
  44. package/dist/react/context.d.mts +3 -3
  45. package/dist/react/context.d.mts.map +1 -1
  46. package/dist/react/context.mjs +3 -8
  47. package/dist/react/context.mjs.map +1 -1
  48. package/dist/react/index.mjs +1 -2
  49. package/dist/react/useDevWallet.d.mts +3 -0
  50. package/dist/react/useDevWallet.d.mts.map +1 -1
  51. package/dist/react/useDevWallet.mjs +9 -14
  52. package/dist/react/useDevWallet.mjs.map +1 -1
  53. package/dist/server/cli-signing-middleware.mjs +7 -20
  54. package/dist/server/cli-signing-middleware.mjs.map +1 -1
  55. package/dist/server/index.mjs +1 -2
  56. package/dist/standalone/assets/{in-memory-adapter-CBF4h2KD.js → in-memory-adapter-qRkNfj9O.js} +1 -1
  57. package/dist/standalone/assets/main-DDltQnzR.js +3954 -0
  58. package/dist/standalone/assets/{webcrypto-adapter-DysAubFb.js → webcrypto-adapter-FejcrL9x.js} +1 -1
  59. package/dist/standalone/index.html +11 -12
  60. package/dist/ui/copy-controller.mjs +3 -3
  61. package/dist/ui/copy-controller.mjs.map +1 -1
  62. package/dist/ui/dev-wallet-account-selector.d.mts +3 -4
  63. package/dist/ui/dev-wallet-account-selector.d.mts.map +1 -1
  64. package/dist/ui/dev-wallet-account-selector.mjs +48 -25
  65. package/dist/ui/dev-wallet-account-selector.mjs.map +1 -1
  66. package/dist/ui/dev-wallet-accounts.d.mts +9 -4
  67. package/dist/ui/dev-wallet-accounts.d.mts.map +1 -1
  68. package/dist/ui/dev-wallet-accounts.mjs +62 -140
  69. package/dist/ui/dev-wallet-accounts.mjs.map +1 -1
  70. package/dist/ui/dev-wallet-balances.d.mts +10 -3
  71. package/dist/ui/dev-wallet-balances.d.mts.map +1 -1
  72. package/dist/ui/dev-wallet-balances.mjs +241 -43
  73. package/dist/ui/dev-wallet-balances.mjs.map +1 -1
  74. package/dist/ui/dev-wallet-connect.d.mts +3 -3
  75. package/dist/ui/dev-wallet-connect.d.mts.map +1 -1
  76. package/dist/ui/dev-wallet-connect.mjs +24 -16
  77. package/dist/ui/dev-wallet-connect.mjs.map +1 -1
  78. package/dist/ui/dev-wallet-dropdown.d.mts +3 -3
  79. package/dist/ui/dev-wallet-dropdown.d.mts.map +1 -1
  80. package/dist/ui/dev-wallet-dropdown.mjs +37 -47
  81. package/dist/ui/dev-wallet-dropdown.mjs.map +1 -1
  82. package/dist/ui/dev-wallet-fork-panel.d.mts +43 -0
  83. package/dist/ui/dev-wallet-fork-panel.d.mts.map +1 -0
  84. package/dist/ui/dev-wallet-fork-panel.mjs +500 -0
  85. package/dist/ui/dev-wallet-fork-panel.mjs.map +1 -0
  86. package/dist/ui/dev-wallet-network-badge.d.mts +3 -4
  87. package/dist/ui/dev-wallet-network-badge.d.mts.map +1 -1
  88. package/dist/ui/dev-wallet-network-badge.mjs +52 -21
  89. package/dist/ui/dev-wallet-network-badge.mjs.map +1 -1
  90. package/dist/ui/dev-wallet-new-account.d.mts +3 -4
  91. package/dist/ui/dev-wallet-new-account.d.mts.map +1 -1
  92. package/dist/ui/dev-wallet-new-account.mjs +31 -105
  93. package/dist/ui/dev-wallet-new-account.mjs.map +1 -1
  94. package/dist/ui/dev-wallet-objects.d.mts +3 -3
  95. package/dist/ui/dev-wallet-objects.d.mts.map +1 -1
  96. package/dist/ui/dev-wallet-objects.mjs +76 -39
  97. package/dist/ui/dev-wallet-objects.mjs.map +1 -1
  98. package/dist/ui/dev-wallet-panel.d.mts +24 -4
  99. package/dist/ui/dev-wallet-panel.d.mts.map +1 -1
  100. package/dist/ui/dev-wallet-panel.mjs +247 -64
  101. package/dist/ui/dev-wallet-panel.mjs.map +1 -1
  102. package/dist/ui/dev-wallet-popup.d.mts +3 -5
  103. package/dist/ui/dev-wallet-popup.d.mts.map +1 -1
  104. package/dist/ui/dev-wallet-popup.mjs +19 -15
  105. package/dist/ui/dev-wallet-popup.mjs.map +1 -1
  106. package/dist/ui/dev-wallet-settings.d.mts +3 -4
  107. package/dist/ui/dev-wallet-settings.d.mts.map +1 -1
  108. package/dist/ui/dev-wallet-settings.mjs +149 -97
  109. package/dist/ui/dev-wallet-settings.mjs.map +1 -1
  110. package/dist/ui/dev-wallet-signing-modal.d.mts +11 -4
  111. package/dist/ui/dev-wallet-signing-modal.d.mts.map +1 -1
  112. package/dist/ui/dev-wallet-signing-modal.mjs +46 -18
  113. package/dist/ui/dev-wallet-signing-modal.mjs.map +1 -1
  114. package/dist/ui/dev-wallet-signing.d.mts +9 -3
  115. package/dist/ui/dev-wallet-signing.d.mts.map +1 -1
  116. package/dist/ui/dev-wallet-signing.mjs +119 -130
  117. package/dist/ui/dev-wallet-signing.mjs.map +1 -1
  118. package/dist/ui/dev-wallet-standalone.d.mts +8 -3
  119. package/dist/ui/dev-wallet-standalone.d.mts.map +1 -1
  120. package/dist/ui/dev-wallet-standalone.mjs +303 -38
  121. package/dist/ui/dev-wallet-standalone.mjs.map +1 -1
  122. package/dist/ui/dev-wallet-tab-bar.d.mts +13 -5
  123. package/dist/ui/dev-wallet-tab-bar.d.mts.map +1 -1
  124. package/dist/ui/dev-wallet-tab-bar.mjs +143 -82
  125. package/dist/ui/dev-wallet-tab-bar.mjs.map +1 -1
  126. package/dist/ui/index.d.mts +3 -2
  127. package/dist/ui/index.mjs +2 -2
  128. package/dist/ui/mount.d.mts +14 -1
  129. package/dist/ui/mount.d.mts.map +1 -1
  130. package/dist/ui/mount.mjs +5 -2
  131. package/dist/ui/mount.mjs.map +1 -1
  132. package/dist/ui/styles.mjs +428 -66
  133. package/dist/ui/styles.mjs.map +1 -1
  134. package/dist/ui/transaction-analyzer.mjs +19 -30
  135. package/dist/ui/transaction-analyzer.mjs.map +1 -1
  136. package/dist/ui/utils.d.mts +59 -0
  137. package/dist/ui/utils.d.mts.map +1 -0
  138. package/dist/ui/utils.mjs +42 -15
  139. package/dist/ui/utils.mjs.map +1 -1
  140. package/dist/ui/wallet-controller.mjs +89 -20
  141. package/dist/ui/wallet-controller.mjs.map +1 -1
  142. package/dist/wallet/constants.d.mts +9 -0
  143. package/dist/wallet/constants.d.mts.map +1 -0
  144. package/dist/wallet/constants.mjs +1 -1
  145. package/dist/wallet/dev-wallet.mjs +42 -99
  146. package/dist/wallet/dev-wallet.mjs.map +1 -1
  147. package/dist/wallet/initializer.d.mts +3 -0
  148. package/dist/wallet/initializer.d.mts.map +1 -1
  149. package/dist/wallet/initializer.mjs +9 -14
  150. package/dist/wallet/initializer.mjs.map +1 -1
  151. package/dist/wallet/signing.mjs +8 -21
  152. package/dist/wallet/signing.mjs.map +1 -1
  153. package/package.json +8 -6
  154. package/src/adapters/browser.ts +21 -0
  155. package/src/adapters/devstack-adapter.ts +342 -0
  156. package/src/adapters/devstack-paths.ts +15 -0
  157. package/src/adapters/fork-relay.ts +321 -0
  158. package/src/app/index.html +10 -11
  159. package/src/react/useDevWallet.ts +5 -1
  160. package/src/ui/dev-wallet-account-selector.ts +44 -17
  161. package/src/ui/dev-wallet-accounts.ts +87 -124
  162. package/src/ui/dev-wallet-balances.ts +248 -27
  163. package/src/ui/dev-wallet-connect.ts +19 -8
  164. package/src/ui/dev-wallet-dropdown.ts +7 -5
  165. package/src/ui/dev-wallet-fork-panel.ts +591 -0
  166. package/src/ui/dev-wallet-network-badge.ts +49 -10
  167. package/src/ui/dev-wallet-new-account.ts +21 -62
  168. package/src/ui/dev-wallet-objects.ts +59 -19
  169. package/src/ui/dev-wallet-panel.ts +261 -42
  170. package/src/ui/dev-wallet-popup.ts +12 -6
  171. package/src/ui/dev-wallet-settings.ts +159 -94
  172. package/src/ui/dev-wallet-signing-modal.ts +47 -7
  173. package/src/ui/dev-wallet-signing.ts +124 -97
  174. package/src/ui/dev-wallet-standalone.ts +310 -22
  175. package/src/ui/dev-wallet-tab-bar.ts +132 -70
  176. package/src/ui/index.ts +3 -0
  177. package/src/ui/mount.ts +23 -1
  178. package/src/ui/styles.ts +434 -58
  179. package/src/ui/utils.ts +66 -0
  180. package/src/ui/wallet-controller.ts +103 -5
  181. package/src/wallet/initializer.ts +7 -1
  182. package/dist/standalone/assets/main-VE4olb-Q.js +0 -2841
@@ -1,14 +1,13 @@
1
1
  import { SignerAdapter } from "../types.mjs";
2
2
  import { DevWallet } from "../wallet/dev-wallet.mjs";
3
- import "./dev-wallet-accounts.mjs";
4
3
  import { ReadonlyWalletAccount } from "@mysten/wallet-standard";
5
- import * as lit29 from "lit";
4
+ import * as _$lit from "lit";
6
5
  import { LitElement } from "lit";
7
6
 
8
7
  //#region src/ui/dev-wallet-settings.d.ts
9
8
  declare class DevWalletSettings extends LitElement {
10
9
  #private;
11
- static styles: (lit29.CSSResult | lit29.CSSResult[])[];
10
+ static styles: (_$lit.CSSResult | _$lit.CSSResult[])[];
12
11
  wallet: DevWallet | null;
13
12
  accounts: readonly ReadonlyWalletAccount[];
14
13
  adapters: SignerAdapter[];
@@ -21,7 +20,7 @@ declare class DevWalletSettings extends LitElement {
21
20
  private _editingNetwork;
22
21
  private _editingUrl;
23
22
  private _copied;
24
- render(): lit29.TemplateResult<1>;
23
+ render(): _$lit.TemplateResult<1>;
25
24
  }
26
25
  declare global {
27
26
  interface HTMLElementTagNameMap {
@@ -1 +1 @@
1
- {"version":3,"file":"dev-wallet-settings.d.mts","names":[],"sources":["../../src/ui/dev-wallet-settings.ts"],"mappings":";;;;;;;;cAca,iBAAA,SAA0B,UAAA;EAAA;SACtB,MAAA,GADc,KAAA,CACR,SAAA,GAAA,KAAA,CAAA,SAAA;EA2StB,MAAA,EAAQ,SAAA;EAGR,QAAA,WAAmB,qBAAA;EAGnB,QAAA,EAAU,aAAA;EAGV,aAAA;EAGA,iBAAA;EAAA,QAGQ,eAAA;EAAA,QAGA,YAAA;EAAA,QAGA,WAAA;EAAA,QAGA,MAAA;EAAA,QAGA,eAAA;EAAA,QAGA,WAAA;EAAA,QAGA,OAAA;EAEC,MAAA,CAAA,GA7Bc,KAAA,CA6BR,cAAA;AAAA;AAAA,QAkVR,MAAA;EAAA,UACG,qBAAA;IACT,qBAAA,EAAuB,iBAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"dev-wallet-settings.d.mts","names":[],"sources":["../../src/ui/dev-wallet-settings.ts"],"mappings":";;;;;;;cAwBa,iBAAA,SAA0B,UAAA;EAAA;SACtB,MAAA,GADc,KAAA,CACR,SAAA,GAAA,KAAA,CAAA,SAAA;EAiVtB,MAAA,EAAQ,SAAA;EAGR,QAAA,WAAmB,qBAAA;EAGnB,QAAA,EAAU,aAAA;EAGV,aAAA;EAGA,iBAAA;EAAA,QAGQ,eAAA;EAAA,QAGA,YAAA;EAAA,QAGA,WAAA;EAAA,QAGA,MAAA;EAAA,QAGA,eAAA;EAAA,QAGA,WAAA;EAAA,QAGA,OAAA;EAEC,MAAA,CAAA,GA7Bc,KAAA,CA6BR,cAAA;AAAA;AAAA,QAmWR,MAAA;EAAA,UACG,qBAAA;IACT,qBAAA,EAAuB,iBAAA;EAAA;AAAA"}
@@ -1,12 +1,11 @@
1
- import { sectionHeaderStyles, sharedStyles } from "./styles.mjs";
1
+ import { badgeStyles, cardItemStyles, formInputStyles, iconButtonStyles, inlineErrorStyles, listContainerStyles, monoTruncateStyles, sectionHeaderStyles, sharedStyles } from "./styles.mjs";
2
2
  import { NETWORK_COLORS, emitEvent, formatAddress, getErrorMessage } from "./utils.mjs";
3
- import { __decorate } from "../_virtual/_@oxc-project_runtime@0.107.0/helpers/decorate.mjs";
3
+ import { __decorate } from "../_virtual/_@oxc-project_runtime@0.127.0/helpers/decorate.mjs";
4
4
  import "./dev-wallet-accounts.mjs";
5
5
  import { LitElement, css, html, nothing } from "lit";
6
6
  import { customElement, property, state } from "lit/decorators.js";
7
-
8
7
  //#region src/ui/dev-wallet-settings.ts
9
- let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
8
+ let DevWalletSettings = class DevWalletSettings extends LitElement {
10
9
  constructor(..._args) {
11
10
  super(..._args);
12
11
  this.wallet = null;
@@ -26,37 +25,66 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
26
25
  this.styles = [
27
26
  sharedStyles,
28
27
  sectionHeaderStyles,
28
+ cardItemStyles,
29
+ listContainerStyles,
30
+ formInputStyles,
31
+ iconButtonStyles,
32
+ badgeStyles,
33
+ inlineErrorStyles,
34
+ monoTruncateStyles,
29
35
  css`
30
36
  :host {
31
37
  display: block;
38
+ padding: 14px;
32
39
  }
33
40
 
34
41
  .section {
35
- margin-bottom: 20px;
42
+ margin-bottom: 10px;
43
+ padding: 12px;
44
+ border: 1px solid var(--dev-wallet-border);
45
+ border-radius: var(--dev-wallet-radius-lg);
46
+ background: var(--dev-wallet-surface);
36
47
  }
37
48
 
38
49
  .section:last-child {
39
50
  margin-bottom: 0;
40
51
  }
41
52
 
42
- .network-list {
43
- display: flex;
44
- flex-direction: column;
45
- gap: 4px;
53
+ .settings-summary {
54
+ display: grid;
55
+ grid-template-columns: repeat(3, minmax(0, 1fr));
56
+ gap: 8px;
46
57
  }
47
58
 
48
- .network-item {
49
- display: flex;
50
- align-items: center;
51
- gap: 8px;
52
- padding: 8px 12px;
53
- border-radius: var(--dev-wallet-radius-sm);
59
+ .summary-cell {
60
+ min-width: 0;
61
+ padding: 10px;
62
+ border-radius: var(--dev-wallet-radius);
54
63
  border: 1px solid var(--dev-wallet-border);
55
- background: var(--dev-wallet-secondary);
64
+ background: var(--dev-wallet-bg-0);
56
65
  }
57
66
 
58
- .network-item.active {
59
- border-color: var(--dev-wallet-primary);
67
+ .summary-label {
68
+ font-family: var(--dev-wallet-font-mono);
69
+ font-size: 9.5px;
70
+ text-transform: uppercase;
71
+ letter-spacing: 0.12em;
72
+ color: var(--dev-wallet-text-3);
73
+ }
74
+
75
+ .summary-value {
76
+ margin-top: 5px;
77
+ font-size: 12px;
78
+ font-weight: var(--dev-wallet-font-weight-semibold);
79
+ color: var(--dev-wallet-foreground);
80
+ overflow: hidden;
81
+ text-overflow: ellipsis;
82
+ white-space: nowrap;
83
+ }
84
+
85
+ .network-item {
86
+ gap: 8px;
87
+ padding: 9px 10px;
60
88
  }
61
89
 
62
90
  .network-dot {
@@ -70,7 +98,7 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
70
98
  flex: 1;
71
99
  font-size: 13px;
72
100
  font-weight: var(--dev-wallet-font-weight-medium);
73
- color: var(--dev-wallet-foreground);
101
+ font-family: var(--dev-wallet-font-mono);
74
102
  }
75
103
 
76
104
  .network-info {
@@ -80,24 +108,15 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
80
108
 
81
109
  .network-url {
82
110
  font-size: 10px;
83
- color: var(--dev-wallet-muted-foreground);
84
- font-family: var(--dev-wallet-font-mono);
85
- overflow: hidden;
86
- text-overflow: ellipsis;
87
- white-space: nowrap;
88
111
  }
89
112
 
90
113
  .network-url-input {
91
- width: 100%;
92
114
  padding: 3px 6px;
93
115
  border-radius: var(--dev-wallet-radius-xs);
94
116
  border: 1px solid var(--dev-wallet-primary);
95
117
  background: var(--dev-wallet-background);
96
- color: var(--dev-wallet-foreground);
97
118
  font-size: 10px;
98
119
  font-family: var(--dev-wallet-font-mono);
99
- outline: none;
100
- box-sizing: border-box;
101
120
  }
102
121
 
103
122
  .network-actions {
@@ -109,17 +128,7 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
109
128
  .btn-icon {
110
129
  width: 22px;
111
130
  height: 22px;
112
- display: flex;
113
- align-items: center;
114
- justify-content: center;
115
- border-radius: var(--dev-wallet-radius-xs);
116
131
  font-size: 11px;
117
- color: var(--dev-wallet-muted-foreground);
118
- }
119
-
120
- .btn-icon:hover {
121
- background: var(--dev-wallet-border);
122
- color: var(--dev-wallet-foreground);
123
132
  }
124
133
 
125
134
  .btn-icon-danger:hover {
@@ -127,13 +136,15 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
127
136
  }
128
137
 
129
138
  .network-active-badge {
130
- font-size: 9px;
131
- padding: 1px 5px;
132
- border-radius: var(--dev-wallet-radius-2xs);
133
- background: color-mix(in oklab, var(--dev-wallet-primary) 15%, transparent);
139
+ height: 16px;
140
+ display: inline-flex;
141
+ align-items: center;
142
+ padding: 0 5px;
143
+ border-radius: 999px;
144
+ border: 1px solid var(--dev-wallet-border-strong);
145
+ background: var(--dev-wallet-accent-fade);
134
146
  color: var(--dev-wallet-primary);
135
147
  font-weight: var(--dev-wallet-font-weight-semibold);
136
- text-transform: uppercase;
137
148
  }
138
149
 
139
150
  .add-network-form {
@@ -142,30 +153,17 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
142
153
  gap: 8px;
143
154
  margin-top: 8px;
144
155
  padding: 12px;
145
- border-radius: var(--dev-wallet-radius-sm);
156
+ border-radius: var(--dev-wallet-radius-lg);
146
157
  border: 1px dashed var(--dev-wallet-border);
147
- background: var(--dev-wallet-secondary);
158
+ background: var(--dev-wallet-surface);
148
159
  }
149
160
 
150
161
  .form-input {
151
- width: 100%;
152
162
  padding: 6px 8px;
153
- border-radius: var(--dev-wallet-radius-xs);
163
+ border-radius: var(--dev-wallet-radius);
154
164
  border: 1px solid var(--dev-wallet-input);
155
- background: var(--dev-wallet-background);
156
- color: var(--dev-wallet-foreground);
165
+ background: var(--dev-wallet-bg-2);
157
166
  font-size: 12px;
158
- font-family: inherit;
159
- outline: none;
160
- box-sizing: border-box;
161
- }
162
-
163
- .form-input:focus {
164
- border-color: var(--dev-wallet-primary);
165
- }
166
-
167
- .form-input::placeholder {
168
- color: var(--dev-wallet-muted-foreground);
169
167
  }
170
168
 
171
169
  .form-actions {
@@ -198,12 +196,16 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
198
196
  .btn-toggle {
199
197
  font-size: 12px;
200
198
  color: var(--dev-wallet-primary);
201
- padding: 4px 0;
202
- margin-top: 4px;
199
+ height: 30px;
200
+ padding: 0 10px;
201
+ margin-top: 8px;
202
+ border: 1px solid var(--dev-wallet-border);
203
+ border-radius: var(--dev-wallet-radius);
203
204
  }
204
205
 
205
206
  .btn-toggle:hover {
206
- text-decoration: underline;
207
+ background: var(--dev-wallet-bg-hover);
208
+ border-color: var(--dev-wallet-border-strong);
207
209
  }
208
210
 
209
211
  .cli-section-column {
@@ -246,7 +248,6 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
246
248
 
247
249
  .error {
248
250
  font-size: 11px;
249
- color: var(--dev-wallet-destructive);
250
251
  margin-top: 4px;
251
252
  }
252
253
 
@@ -286,48 +287,103 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
286
287
  }
287
288
 
288
289
  .console-snippet {
289
- position: relative;
290
290
  margin-top: 8px;
291
- padding: 10px 12px;
292
- border-radius: var(--dev-wallet-radius-sm);
293
- background: var(--dev-wallet-secondary);
291
+ border-radius: var(--dev-wallet-radius);
292
+ background: var(--dev-wallet-bg-0);
294
293
  border: 1px solid var(--dev-wallet-border);
294
+ overflow: hidden;
295
+ }
296
+
297
+ .console-snippet-header {
298
+ display: flex;
299
+ align-items: center;
300
+ justify-content: space-between;
301
+ gap: 8px;
302
+ padding: 7px 8px 7px 10px;
303
+ border-bottom: 1px solid var(--dev-wallet-border);
304
+ background: color-mix(in srgb, var(--dev-wallet-bg-1) 72%, transparent);
305
+ }
306
+
307
+ .console-snippet-label {
308
+ font-family: var(--dev-wallet-font-mono);
309
+ font-size: 9.5px;
310
+ font-weight: var(--dev-wallet-font-weight-medium);
311
+ letter-spacing: 0.12em;
312
+ text-transform: uppercase;
313
+ color: var(--dev-wallet-text-3);
314
+ }
315
+
316
+ .console-snippet-code {
317
+ margin: 0;
318
+ max-width: 100%;
319
+ padding: 10px 12px 12px;
320
+ overflow-x: auto;
295
321
  font-family: var(--dev-wallet-font-mono);
296
322
  font-size: 11px;
297
323
  color: var(--dev-wallet-foreground);
298
324
  line-height: 1.5;
299
325
  white-space: pre-wrap;
300
- word-break: break-all;
326
+ overflow-wrap: anywhere;
301
327
  user-select: all;
302
328
  }
303
329
 
304
330
  .btn-copy {
305
- position: absolute;
306
- top: 6px;
307
- right: 6px;
308
- padding: 3px 8px;
331
+ display: inline-flex;
332
+ align-items: center;
333
+ justify-content: center;
334
+ min-width: 54px;
335
+ height: 24px;
336
+ padding: 0 8px;
309
337
  border-radius: var(--dev-wallet-radius-xs);
310
- background: var(--dev-wallet-border);
311
- color: var(--dev-wallet-muted-foreground);
338
+ border: 1px solid var(--dev-wallet-border);
339
+ background: var(--dev-wallet-bg-2);
340
+ color: var(--dev-wallet-foreground);
312
341
  font-size: 10px;
313
- font-family: inherit;
342
+ font-weight: var(--dev-wallet-font-weight-medium);
314
343
  cursor: pointer;
344
+ white-space: nowrap;
315
345
  }
316
346
 
317
347
  .btn-copy:hover {
318
- background: var(--dev-wallet-input);
348
+ background: var(--dev-wallet-bg-hover);
349
+ border-color: var(--dev-wallet-border-strong);
319
350
  color: var(--dev-wallet-foreground);
320
351
  }
352
+
353
+ @media (max-width: 420px) {
354
+ .settings-summary {
355
+ grid-template-columns: 1fr;
356
+ }
357
+ }
321
358
  `
322
359
  ];
323
360
  }
324
361
  render() {
325
362
  return html`
363
+ <div class="section">${this.#renderSummary()}</div>
326
364
  <div class="section">${this.#renderNetworks()}</div>
327
365
  ${this.#hasCliAdapter() ? html`<div class="section">${this.#renderCliSigner()}</div>` : nothing}
328
366
  <div class="section">${this.#renderAccounts()}</div>
329
- <div class="section">${this.#renderBookmarklet()}</div>
330
- <div class="section">${this.#renderAbout()}</div>
367
+ ${this.bookmarkletOrigin ? html`<div class="section">${this.#renderBookmarklet()}</div>` : nothing}
368
+ `;
369
+ }
370
+ #renderSummary() {
371
+ return html`
372
+ <h3 class="section-header">Wallet</h3>
373
+ <div class="settings-summary">
374
+ <div class="summary-cell">
375
+ <div class="summary-label">Network</div>
376
+ <div class="summary-value">${this.wallet?.activeNetwork ?? "none"}</div>
377
+ </div>
378
+ <div class="summary-cell">
379
+ <div class="summary-label">Accounts</div>
380
+ <div class="summary-value">${this.accounts.length}</div>
381
+ </div>
382
+ <div class="summary-cell">
383
+ <div class="summary-label">Adapters</div>
384
+ <div class="summary-value">${this.adapters.length}</div>
385
+ </div>
386
+ </div>
331
387
  `;
332
388
  }
333
389
  #renderNetworks() {
@@ -511,8 +567,7 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
511
567
  }
512
568
  #renderBookmarklet() {
513
569
  if (!this.bookmarkletOrigin) return nothing;
514
- const origin = this.bookmarkletOrigin;
515
- const bookmarkletJs = `${origin}/bookmarklet.js`;
570
+ const bookmarkletJs = `${this.bookmarkletOrigin}/bookmarklet.js`;
516
571
  const bookmarkletHref = `javascript:void(document.head.appendChild(Object.assign(document.createElement('script'),{src:'${bookmarkletJs}'})))`;
517
572
  const consoleSnippet = `var s=document.createElement('script');s.src='${bookmarkletJs}';document.head.appendChild(s);`;
518
573
  return html`
@@ -532,10 +587,18 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
532
587
  </div>
533
588
  <div class="about" style="margin-top: 12px">Or paste this in the browser console:</div>
534
589
  <div class="console-snippet">
535
- ${consoleSnippet}
536
- <button class="btn-copy" @click=${() => this.#copySnippet(consoleSnippet)}>
537
- ${this._copied ? "Copied!" : "Copy"}
538
- </button>
590
+ <div class="console-snippet-header">
591
+ <span class="console-snippet-label">Console</span>
592
+ <button
593
+ class="btn-copy"
594
+ type="button"
595
+ aria-label="Copy console snippet"
596
+ @click=${() => this.#copySnippet(consoleSnippet)}
597
+ >
598
+ ${this._copied ? "Copied" : "Copy"}
599
+ </button>
600
+ </div>
601
+ <pre class="console-snippet-code"><code>${consoleSnippet}</code></pre>
539
602
  </div>
540
603
  <div class="about" style="margin-top: 8px">
541
604
  Or add this script to your page:<br />
@@ -551,17 +614,6 @@ let DevWalletSettings = class DevWalletSettings$1 extends LitElement {
551
614
  }, 2e3);
552
615
  });
553
616
  }
554
- #renderAbout() {
555
- return html`
556
- <h3 class="section-header">About</h3>
557
- <div class="about">
558
- <strong>${this.wallet?.name ?? "Dev Wallet"}</strong><br />
559
- A development wallet for testing Sui dApps.<br />
560
- ${this.wallet ? html`${this.wallet.accounts.length} account(s) across ${this.wallet.adapters.length}
561
- adapter(s)` : nothing}
562
- </div>
563
- `;
564
- }
565
617
  #addNetwork() {
566
618
  if (!this.wallet) return;
567
619
  const name = this._networkName.trim();
@@ -629,7 +681,7 @@ __decorate([state()], DevWalletSettings.prototype, "_editingNetwork", void 0);
629
681
  __decorate([state()], DevWalletSettings.prototype, "_editingUrl", void 0);
630
682
  __decorate([state()], DevWalletSettings.prototype, "_copied", void 0);
631
683
  DevWalletSettings = __decorate([customElement("dev-wallet-settings")], DevWalletSettings);
632
-
633
684
  //#endregion
634
685
  export { DevWalletSettings };
686
+
635
687
  //# sourceMappingURL=dev-wallet-settings.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"dev-wallet-settings.mjs","names":["DevWalletSettings","#renderNetworks","#hasCliAdapter","#renderCliSigner","#renderAccounts","#renderBookmarklet","#renderAbout","#saveNetworkUrl","#cancelEditNetwork","#startEditNetwork","#removeNetwork","#renderAddNetworkForm","#addNetwork","#cancelAddNetwork","#copySnippet"],"sources":["../../src/ui/dev-wallet-settings.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReadonlyWalletAccount } from '@mysten/wallet-standard';\nimport { css, html, LitElement, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport type { DevWallet } from '../wallet/dev-wallet.js';\nimport type { SignerAdapter } from '../types.js';\nimport { sectionHeaderStyles, sharedStyles } from './styles.js';\nimport { emitEvent, formatAddress, getErrorMessage, NETWORK_COLORS } from './utils.js';\nimport './dev-wallet-accounts.js';\n\n@customElement('dev-wallet-settings')\nexport class DevWalletSettings extends LitElement {\n\tstatic override styles = [\n\t\tsharedStyles,\n\t\tsectionHeaderStyles,\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t}\n\n\t\t\t.section {\n\t\t\t\tmargin-bottom: 20px;\n\t\t\t}\n\n\t\t\t.section:last-child {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\n\t\t\t.network-list {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 4px;\n\t\t\t}\n\n\t\t\t.network-item {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 8px;\n\t\t\t\tpadding: 8px 12px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-sm);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\tbackground: var(--dev-wallet-secondary);\n\t\t\t}\n\n\t\t\t.network-item.active {\n\t\t\t\tborder-color: var(--dev-wallet-primary);\n\t\t\t}\n\n\t\t\t.network-dot {\n\t\t\t\twidth: 8px;\n\t\t\t\theight: 8px;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tflex-shrink: 0;\n\t\t\t}\n\n\t\t\t.network-name {\n\t\t\t\tflex: 1;\n\t\t\t\tfont-size: 13px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-medium);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t}\n\n\t\t\t.network-info {\n\t\t\t\tflex: 1;\n\t\t\t\tmin-width: 0;\n\t\t\t}\n\n\t\t\t.network-url {\n\t\t\t\tfont-size: 10px;\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t\t.network-url-input {\n\t\t\t\twidth: 100%;\n\t\t\t\tpadding: 3px 6px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xs);\n\t\t\t\tborder: 1px solid var(--dev-wallet-primary);\n\t\t\t\tbackground: var(--dev-wallet-background);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tfont-size: 10px;\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\toutline: none;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\n\t\t\t.network-actions {\n\t\t\t\tdisplay: flex;\n\t\t\t\tgap: 2px;\n\t\t\t\tflex-shrink: 0;\n\t\t\t}\n\n\t\t\t.btn-icon {\n\t\t\t\twidth: 22px;\n\t\t\t\theight: 22px;\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xs);\n\t\t\t\tfont-size: 11px;\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t}\n\n\t\t\t.btn-icon:hover {\n\t\t\t\tbackground: var(--dev-wallet-border);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t}\n\n\t\t\t.btn-icon-danger:hover {\n\t\t\t\tcolor: var(--dev-wallet-destructive);\n\t\t\t}\n\n\t\t\t.network-active-badge {\n\t\t\t\tfont-size: 9px;\n\t\t\t\tpadding: 1px 5px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-2xs);\n\t\t\t\tbackground: color-mix(in oklab, var(--dev-wallet-primary) 15%, transparent);\n\t\t\t\tcolor: var(--dev-wallet-primary);\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-semibold);\n\t\t\t\ttext-transform: uppercase;\n\t\t\t}\n\n\t\t\t.add-network-form {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 8px;\n\t\t\t\tmargin-top: 8px;\n\t\t\t\tpadding: 12px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-sm);\n\t\t\t\tborder: 1px dashed var(--dev-wallet-border);\n\t\t\t\tbackground: var(--dev-wallet-secondary);\n\t\t\t}\n\n\t\t\t.form-input {\n\t\t\t\twidth: 100%;\n\t\t\t\tpadding: 6px 8px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xs);\n\t\t\t\tborder: 1px solid var(--dev-wallet-input);\n\t\t\t\tbackground: var(--dev-wallet-background);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tfont-size: 12px;\n\t\t\t\tfont-family: inherit;\n\t\t\t\toutline: none;\n\t\t\t\tbox-sizing: border-box;\n\t\t\t}\n\n\t\t\t.form-input:focus {\n\t\t\t\tborder-color: var(--dev-wallet-primary);\n\t\t\t}\n\n\t\t\t.form-input::placeholder {\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t}\n\n\t\t\t.form-actions {\n\t\t\t\tdisplay: flex;\n\t\t\t\tgap: 6px;\n\t\t\t}\n\n\t\t\t.btn-sm {\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xs);\n\t\t\t\tfont-size: 11px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-medium);\n\t\t\t}\n\n\t\t\t.btn-add {\n\t\t\t\tbackground: var(--dev-wallet-primary);\n\t\t\t\tcolor: var(--dev-wallet-primary-foreground);\n\t\t\t}\n\n\t\t\t.btn-add:disabled {\n\t\t\t\topacity: 0.5;\n\t\t\t}\n\n\t\t\t.btn-cancel {\n\t\t\t\tbackground: var(--dev-wallet-secondary);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t}\n\n\t\t\t.btn-toggle {\n\t\t\t\tfont-size: 12px;\n\t\t\t\tcolor: var(--dev-wallet-primary);\n\t\t\t\tpadding: 4px 0;\n\t\t\t\tmargin-top: 4px;\n\t\t\t}\n\n\t\t\t.btn-toggle:hover {\n\t\t\t\ttext-decoration: underline;\n\t\t\t}\n\n\t\t\t.cli-section-column {\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: flex-start;\n\t\t\t\tgap: 6px;\n\t\t\t}\n\n\t\t\t.cli-header-row {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 8px;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.cli-accounts-list {\n\t\t\t\twidth: 100%;\n\t\t\t\tpadding-left: 16px;\n\t\t\t}\n\n\t\t\t.cli-accounts-list .network-url {\n\t\t\t\tpadding: 2px 0;\n\t\t\t}\n\n\t\t\t.cli-hint {\n\t\t\t\tpadding-left: 16px;\n\t\t\t\tmargin-top: 0;\n\t\t\t\tfont-size: 12px;\n\t\t\t}\n\n\t\t\t.cli-unpaired-hint {\n\t\t\t\tmargin-top: 8px;\n\t\t\t}\n\n\t\t\t.about {\n\t\t\t\tfont-size: 12px;\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t\tline-height: 1.5;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tfont-size: 11px;\n\t\t\t\tcolor: var(--dev-wallet-destructive);\n\t\t\t\tmargin-top: 4px;\n\t\t\t}\n\n\t\t\t.bookmarklet-link-wrapper {\n\t\t\t\tmargin-top: 8px;\n\t\t\t}\n\n\t\t\t.bookmarklet-link {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 6px;\n\t\t\t\tpadding: 8px 14px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-sm);\n\t\t\t\tbackground: var(--dev-wallet-primary);\n\t\t\t\tcolor: var(--dev-wallet-primary-foreground);\n\t\t\t\tfont-size: 13px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-semibold);\n\t\t\t\ttext-decoration: none;\n\t\t\t\tcursor: grab;\n\t\t\t\tuser-select: none;\n\t\t\t}\n\n\t\t\t.bookmarklet-link:hover {\n\t\t\t\topacity: 0.9;\n\t\t\t}\n\n\t\t\t.bookmarklet-link:active {\n\t\t\t\tcursor: grabbing;\n\t\t\t}\n\n\t\t\t.bookmarklet-url {\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 10px;\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t\tword-break: break-all;\n\t\t\t\tuser-select: all;\n\t\t\t}\n\n\t\t\t.console-snippet {\n\t\t\t\tposition: relative;\n\t\t\t\tmargin-top: 8px;\n\t\t\t\tpadding: 10px 12px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-sm);\n\t\t\t\tbackground: var(--dev-wallet-secondary);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 11px;\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tline-height: 1.5;\n\t\t\t\twhite-space: pre-wrap;\n\t\t\t\tword-break: break-all;\n\t\t\t\tuser-select: all;\n\t\t\t}\n\n\t\t\t.btn-copy {\n\t\t\t\tposition: absolute;\n\t\t\t\ttop: 6px;\n\t\t\t\tright: 6px;\n\t\t\t\tpadding: 3px 8px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xs);\n\t\t\t\tbackground: var(--dev-wallet-border);\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t\tfont-size: 10px;\n\t\t\t\tfont-family: inherit;\n\t\t\t\tcursor: pointer;\n\t\t\t}\n\n\t\t\t.btn-copy:hover {\n\t\t\t\tbackground: var(--dev-wallet-input);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t}\n\t\t`,\n\t];\n\n\t@property({ attribute: false })\n\twallet: DevWallet | null = null;\n\n\t@property({ attribute: false })\n\taccounts: readonly ReadonlyWalletAccount[] = [];\n\n\t@property({ attribute: false })\n\tadapters: SignerAdapter[] = [];\n\n\t@property({ type: String })\n\tactiveAddress = '';\n\n\t@property({ type: String })\n\tbookmarkletOrigin = '';\n\n\t@state()\n\tprivate _showAddNetwork = false;\n\n\t@state()\n\tprivate _networkName = '';\n\n\t@state()\n\tprivate _networkUrl = '';\n\n\t@state()\n\tprivate _error: string | null = null;\n\n\t@state()\n\tprivate _editingNetwork: string | null = null;\n\n\t@state()\n\tprivate _editingUrl = '';\n\n\t@state()\n\tprivate _copied = false;\n\n\toverride render() {\n\t\treturn html`\n\t\t\t<div class=\"section\">${this.#renderNetworks()}</div>\n\t\t\t${this.#hasCliAdapter()\n\t\t\t\t? html`<div class=\"section\">${this.#renderCliSigner()}</div>`\n\t\t\t\t: nothing}\n\t\t\t<div class=\"section\">${this.#renderAccounts()}</div>\n\t\t\t<div class=\"section\">${this.#renderBookmarklet()}</div>\n\t\t\t<div class=\"section\">${this.#renderAbout()}</div>\n\t\t`;\n\t}\n\n\t#renderNetworks() {\n\t\tif (!this.wallet) return nothing;\n\n\t\tconst networks = this.wallet.availableNetworks;\n\t\tconst activeNetwork = this.wallet.activeNetwork;\n\t\tconst urls = this.wallet.networkUrls;\n\n\t\treturn html`\n\t\t\t<h3 class=\"section-header\">Networks</h3>\n\t\t\t<div class=\"network-list\">\n\t\t\t\t${networks.map((name) => {\n\t\t\t\t\tconst color = NETWORK_COLORS[name] ?? '#6b7280';\n\t\t\t\t\tconst isActive = name === activeNetwork;\n\t\t\t\t\tconst isEditing = this._editingNetwork === name;\n\t\t\t\t\treturn html`\n\t\t\t\t\t\t<div class=\"network-item ${isActive ? 'active' : ''}\">\n\t\t\t\t\t\t\t<span class=\"network-dot\" style=\"background: ${color}\"></span>\n\t\t\t\t\t\t\t<div class=\"network-info\">\n\t\t\t\t\t\t\t\t<span class=\"network-name\">${name}</span>\n\t\t\t\t\t\t\t\t${isEditing\n\t\t\t\t\t\t\t\t\t? html`<input\n\t\t\t\t\t\t\t\t\t\t\tclass=\"network-url-input\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t.value=${this._editingUrl}\n\t\t\t\t\t\t\t\t\t\t\t@input=${(e: InputEvent) => {\n\t\t\t\t\t\t\t\t\t\t\t\tthis._editingUrl = (e.target as HTMLInputElement).value;\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t@keydown=${(e: KeyboardEvent) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') this.#saveNetworkUrl(name);\n\t\t\t\t\t\t\t\t\t\t\t\tif (e.key === 'Escape') this.#cancelEditNetwork();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>`\n\t\t\t\t\t\t\t\t\t: html`<span class=\"network-url\" title=${urls[name] ?? ''}\n\t\t\t\t\t\t\t\t\t\t\t>${urls[name] ?? ''}</span\n\t\t\t\t\t\t\t\t\t\t>`}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"network-actions\">\n\t\t\t\t\t\t\t\t${isEditing\n\t\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"btn-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Save\"\n\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Save URL\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${() => this.#saveNetworkUrl(name)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t&#10003;\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"btn-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Cancel\"\n\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Cancel editing\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${this.#cancelEditNetwork}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t&#10005;\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t: html`\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"btn-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Edit URL\"\n\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Edit network URL\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${() => this.#startEditNetwork(name, urls[name] ?? '')}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t&#9998;\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t${!isActive\n\t\t\t\t\t\t\t\t\t\t\t\t? html`<button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"btn-icon btn-icon-danger\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Remove\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Remove network\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t@click=${() => this.#removeNetwork(name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#10005;\n\t\t\t\t\t\t\t\t\t\t\t\t\t</button>`\n\t\t\t\t\t\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t\t\t\t\t\t`}\n\t\t\t\t\t\t\t\t${isActive ? html`<span class=\"network-active-badge\">Active</span>` : nothing}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`;\n\t\t\t\t})}\n\t\t\t</div>\n\t\t\t${this._showAddNetwork\n\t\t\t\t? this.#renderAddNetworkForm()\n\t\t\t\t: html`\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass=\"btn-toggle\"\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis._showAddNetwork = true;\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t+ Add Network\n\t\t\t\t\t\t</button>\n\t\t\t\t\t`}\n\t\t`;\n\t}\n\n\t#renderAddNetworkForm() {\n\t\treturn html`\n\t\t\t<div class=\"add-network-form\">\n\t\t\t\t<input\n\t\t\t\t\tclass=\"form-input\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tplaceholder=\"Network name (e.g. custom)\"\n\t\t\t\t\t.value=${this._networkName}\n\t\t\t\t\t@input=${(e: InputEvent) => {\n\t\t\t\t\t\tthis._networkName = (e.target as HTMLInputElement).value;\n\t\t\t\t\t\tthis._error = null;\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<input\n\t\t\t\t\tclass=\"form-input\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tplaceholder=\"gRPC URL (e.g. http://localhost:9000)\"\n\t\t\t\t\t.value=${this._networkUrl}\n\t\t\t\t\t@input=${(e: InputEvent) => {\n\t\t\t\t\t\tthis._networkUrl = (e.target as HTMLInputElement).value;\n\t\t\t\t\t\tthis._error = null;\n\t\t\t\t\t}}\n\t\t\t\t\t@keydown=${(e: KeyboardEvent) => {\n\t\t\t\t\t\tif (e.key === 'Enter') this.#addNetwork();\n\t\t\t\t\t\tif (e.key === 'Escape') this.#cancelAddNetwork();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t${this._error ? html`<div class=\"error\">${this._error}</div>` : nothing}\n\t\t\t\t<div class=\"form-actions\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"btn-sm btn-add\"\n\t\t\t\t\t\t?disabled=${!this._networkName.trim() || !this._networkUrl.trim()}\n\t\t\t\t\t\t@click=${this.#addNetwork}\n\t\t\t\t\t>\n\t\t\t\t\t\tAdd\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class=\"btn-sm btn-cancel\" @click=${this.#cancelAddNetwork}>Cancel</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#hasCliAdapter(): boolean {\n\t\treturn this.adapters.some((a) => a.id === 'remote-cli');\n\t}\n\n\t#renderCliSigner() {\n\t\tconst cliAdapter = this.adapters.find((a) => a.id === 'remote-cli');\n\t\tif (!cliAdapter) return nothing;\n\n\t\tconst isPaired = 'isPaired' in cliAdapter && (cliAdapter as { isPaired: boolean }).isPaired;\n\t\tconst cliAccounts = cliAdapter.getAccounts();\n\n\t\treturn html`\n\t\t\t<h3 class=\"section-header\">CLI Signer</h3>\n\t\t\t${isPaired\n\t\t\t\t? html`\n\t\t\t\t\t\t<div class=\"network-item active cli-section-column\">\n\t\t\t\t\t\t\t<div class=\"cli-header-row\">\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"network-dot\"\n\t\t\t\t\t\t\t\t\tstyle=\"background: var(--dev-wallet-status-connected)\"\n\t\t\t\t\t\t\t\t></span>\n\t\t\t\t\t\t\t\t<span class=\"network-name\">Connected</span>\n\t\t\t\t\t\t\t\t${cliAccounts.length > 0\n\t\t\t\t\t\t\t\t\t? html`<span class=\"network-active-badge\">${cliAccounts.length} imported</span>`\n\t\t\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t${cliAccounts.length > 0\n\t\t\t\t\t\t\t\t? html`<div class=\"cli-accounts-list\">\n\t\t\t\t\t\t\t\t\t\t${cliAccounts.map(\n\t\t\t\t\t\t\t\t\t\t\t(acc) => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"network-url\">${acc.label} (${formatAddress(acc.address)})</div>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>`\n\t\t\t\t\t\t\t\t: html`<div class=\"about cli-hint\">Use + Add above to import CLI accounts.</div>`}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`\n\t\t\t\t: html`\n\t\t\t\t\t\t<div class=\"network-item\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclass=\"network-dot\"\n\t\t\t\t\t\t\t\tstyle=\"background: var(--dev-wallet-status-disconnected)\"\n\t\t\t\t\t\t\t></span>\n\t\t\t\t\t\t\t<span class=\"network-name\" style=\"color: var(--dev-wallet-muted-foreground)\"\n\t\t\t\t\t\t\t\t>Not connected</span\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"about cli-unpaired-hint\">\n\t\t\t\t\t\t\tOpen the token URL from your terminal to connect CLI accounts.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`}\n\t\t`;\n\t}\n\n\t#renderAccounts() {\n\t\treturn html`\n\t\t\t<dev-wallet-accounts\n\t\t\t\texportparts=\"account-list: accounts-account-list, add-button: accounts-add-button, empty-state: accounts-empty-state\"\n\t\t\t\t.accounts=${this.accounts}\n\t\t\t\t.adapters=${this.adapters}\n\t\t\t\t.activeAddress=${this.activeAddress}\n\t\t\t></dev-wallet-accounts>\n\t\t`;\n\t}\n\n\t#renderBookmarklet() {\n\t\tif (!this.bookmarkletOrigin) return nothing;\n\t\tconst origin = this.bookmarkletOrigin;\n\n\t\tconst bookmarkletJs = `${origin}/bookmarklet.js`;\n\t\tconst bookmarkletHref = `javascript:void(document.head.appendChild(Object.assign(document.createElement('script'),{src:'${bookmarkletJs}'})))`;\n\t\tconst consoleSnippet = `var s=document.createElement('script');s.src='${bookmarkletJs}';document.head.appendChild(s);`;\n\n\t\treturn html`\n\t\t\t<h3 class=\"section-header\">Bookmarklet</h3>\n\t\t\t<div class=\"about\">\n\t\t\t\tDrag this link to your bookmarks bar, then click it on any dApp to inject the wallet:\n\t\t\t</div>\n\t\t\t<div class=\"bookmarklet-link-wrapper\">\n\t\t\t\t<a\n\t\t\t\t\tclass=\"bookmarklet-link\"\n\t\t\t\t\thref=${bookmarkletHref}\n\t\t\t\t\ttitle=\"Drag to bookmarks bar\"\n\t\t\t\t\t@click=${(e: MouseEvent) => e.preventDefault()}\n\t\t\t\t>\n\t\t\t\t\tDev Wallet\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t\t<div class=\"about\" style=\"margin-top: 12px\">Or paste this in the browser console:</div>\n\t\t\t<div class=\"console-snippet\">\n\t\t\t\t${consoleSnippet}\n\t\t\t\t<button class=\"btn-copy\" @click=${() => this.#copySnippet(consoleSnippet)}>\n\t\t\t\t\t${this._copied ? 'Copied!' : 'Copy'}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t\t<div class=\"about\" style=\"margin-top: 8px\">\n\t\t\t\tOr add this script to your page:<br />\n\t\t\t\t<code class=\"bookmarklet-url\">${bookmarkletJs}</code>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#copySnippet(text: string) {\n\t\tnavigator.clipboard.writeText(text).then(() => {\n\t\t\tthis._copied = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._copied = false;\n\t\t\t}, 2000);\n\t\t});\n\t}\n\n\t#renderAbout() {\n\t\treturn html`\n\t\t\t<h3 class=\"section-header\">About</h3>\n\t\t\t<div class=\"about\">\n\t\t\t\t<strong>${this.wallet?.name ?? 'Dev Wallet'}</strong><br />\n\t\t\t\tA development wallet for testing Sui dApps.<br />\n\t\t\t\t${this.wallet\n\t\t\t\t\t? html`${this.wallet.accounts.length} account(s) across ${this.wallet.adapters.length}\n\t\t\t\t\t\tadapter(s)`\n\t\t\t\t\t: nothing}\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#addNetwork() {\n\t\tif (!this.wallet) return;\n\n\t\tconst name = this._networkName.trim();\n\t\tconst url = this._networkUrl.trim();\n\n\t\tif (!name || !url) return;\n\n\t\tif (this.wallet.availableNetworks.includes(name)) {\n\t\t\tthis._error = `Network \"${name}\" already exists`;\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tthis.wallet.addNetwork(name, url);\n\t\t\tthis._networkName = '';\n\t\t\tthis._networkUrl = '';\n\t\t\tthis._showAddNetwork = false;\n\t\t\tthis._error = null;\n\t\t\temitEvent(this, 'network-added', { name, url });\n\t\t} catch (err) {\n\t\t\tthis._error = getErrorMessage(err, 'Failed to add network');\n\t\t}\n\t}\n\n\t#cancelAddNetwork() {\n\t\tthis._showAddNetwork = false;\n\t\tthis._networkName = '';\n\t\tthis._networkUrl = '';\n\t\tthis._error = null;\n\t}\n\n\t#startEditNetwork(name: string, url: string) {\n\t\tthis._editingNetwork = name;\n\t\tthis._editingUrl = url;\n\t}\n\n\t#saveNetworkUrl(name: string) {\n\t\tif (!this.wallet) return;\n\t\tconst url = this._editingUrl.trim();\n\t\tif (!url) return;\n\n\t\ttry {\n\t\t\tthis.wallet.addNetwork(name, url);\n\t\t\tthis._editingNetwork = null;\n\t\t\tthis._editingUrl = '';\n\t\t} catch (error) {\n\t\t\tthis._error = error instanceof Error ? error.message : 'Invalid URL';\n\t\t}\n\t}\n\n\t#cancelEditNetwork() {\n\t\tthis._editingNetwork = null;\n\t\tthis._editingUrl = '';\n\t}\n\n\t#removeNetwork(name: string) {\n\t\tif (!this.wallet) return;\n\t\tthis.wallet.removeNetwork(name);\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'dev-wallet-settings': DevWalletSettings;\n\t}\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"dev-wallet-settings.mjs","names":["#renderSummary","#renderNetworks","#hasCliAdapter","#renderCliSigner","#renderAccounts","#renderBookmarklet","#saveNetworkUrl","#cancelEditNetwork","#startEditNetwork","#removeNetwork","#renderAddNetworkForm","#addNetwork","#cancelAddNetwork","#copySnippet"],"sources":["../../src/ui/dev-wallet-settings.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ReadonlyWalletAccount } from '@mysten/wallet-standard';\nimport { css, html, LitElement, nothing } from 'lit';\nimport { customElement, property, state } from 'lit/decorators.js';\n\nimport type { DevWallet } from '../wallet/dev-wallet.js';\nimport type { SignerAdapter } from '../types.js';\nimport {\n\tbadgeStyles,\n\tcardItemStyles,\n\tformInputStyles,\n\ticonButtonStyles,\n\tinlineErrorStyles,\n\tlistContainerStyles,\n\tmonoTruncateStyles,\n\tsectionHeaderStyles,\n\tsharedStyles,\n} from './styles.js';\nimport { emitEvent, formatAddress, getErrorMessage, NETWORK_COLORS } from './utils.js';\nimport './dev-wallet-accounts.js';\n\n@customElement('dev-wallet-settings')\nexport class DevWalletSettings extends LitElement {\n\tstatic override styles = [\n\t\tsharedStyles,\n\t\tsectionHeaderStyles,\n\t\tcardItemStyles,\n\t\tlistContainerStyles,\n\t\tformInputStyles,\n\t\ticonButtonStyles,\n\t\tbadgeStyles,\n\t\tinlineErrorStyles,\n\t\tmonoTruncateStyles,\n\t\tcss`\n\t\t\t:host {\n\t\t\t\tdisplay: block;\n\t\t\t\tpadding: 14px;\n\t\t\t}\n\n\t\t\t.section {\n\t\t\t\tmargin-bottom: 10px;\n\t\t\t\tpadding: 12px;\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\tborder-radius: var(--dev-wallet-radius-lg);\n\t\t\t\tbackground: var(--dev-wallet-surface);\n\t\t\t}\n\n\t\t\t.section:last-child {\n\t\t\t\tmargin-bottom: 0;\n\t\t\t}\n\n\t\t\t.settings-summary {\n\t\t\t\tdisplay: grid;\n\t\t\t\tgrid-template-columns: repeat(3, minmax(0, 1fr));\n\t\t\t\tgap: 8px;\n\t\t\t}\n\n\t\t\t.summary-cell {\n\t\t\t\tmin-width: 0;\n\t\t\t\tpadding: 10px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\tbackground: var(--dev-wallet-bg-0);\n\t\t\t}\n\n\t\t\t.summary-label {\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 9.5px;\n\t\t\t\ttext-transform: uppercase;\n\t\t\t\tletter-spacing: 0.12em;\n\t\t\t\tcolor: var(--dev-wallet-text-3);\n\t\t\t}\n\n\t\t\t.summary-value {\n\t\t\t\tmargin-top: 5px;\n\t\t\t\tfont-size: 12px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-semibold);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\toverflow: hidden;\n\t\t\t\ttext-overflow: ellipsis;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t\t.network-item {\n\t\t\t\tgap: 8px;\n\t\t\t\tpadding: 9px 10px;\n\t\t\t}\n\n\t\t\t.network-dot {\n\t\t\t\twidth: 8px;\n\t\t\t\theight: 8px;\n\t\t\t\tborder-radius: 50%;\n\t\t\t\tflex-shrink: 0;\n\t\t\t}\n\n\t\t\t.network-name {\n\t\t\t\tflex: 1;\n\t\t\t\tfont-size: 13px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-medium);\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t}\n\n\t\t\t.network-info {\n\t\t\t\tflex: 1;\n\t\t\t\tmin-width: 0;\n\t\t\t}\n\n\t\t\t.network-url {\n\t\t\t\tfont-size: 10px;\n\t\t\t}\n\n\t\t\t.network-url-input {\n\t\t\t\tpadding: 3px 6px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xs);\n\t\t\t\tborder: 1px solid var(--dev-wallet-primary);\n\t\t\t\tbackground: var(--dev-wallet-background);\n\t\t\t\tfont-size: 10px;\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t}\n\n\t\t\t.network-actions {\n\t\t\t\tdisplay: flex;\n\t\t\t\tgap: 2px;\n\t\t\t\tflex-shrink: 0;\n\t\t\t}\n\n\t\t\t.btn-icon {\n\t\t\t\twidth: 22px;\n\t\t\t\theight: 22px;\n\t\t\t\tfont-size: 11px;\n\t\t\t}\n\n\t\t\t.btn-icon-danger:hover {\n\t\t\t\tcolor: var(--dev-wallet-destructive);\n\t\t\t}\n\n\t\t\t.network-active-badge {\n\t\t\t\theight: 16px;\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tpadding: 0 5px;\n\t\t\t\tborder-radius: 999px;\n\t\t\t\tborder: 1px solid var(--dev-wallet-border-strong);\n\t\t\t\tbackground: var(--dev-wallet-accent-fade);\n\t\t\t\tcolor: var(--dev-wallet-primary);\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-semibold);\n\t\t\t}\n\n\t\t\t.add-network-form {\n\t\t\t\tdisplay: flex;\n\t\t\t\tflex-direction: column;\n\t\t\t\tgap: 8px;\n\t\t\t\tmargin-top: 8px;\n\t\t\t\tpadding: 12px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-lg);\n\t\t\t\tborder: 1px dashed var(--dev-wallet-border);\n\t\t\t\tbackground: var(--dev-wallet-surface);\n\t\t\t}\n\n\t\t\t.form-input {\n\t\t\t\tpadding: 6px 8px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius);\n\t\t\t\tborder: 1px solid var(--dev-wallet-input);\n\t\t\t\tbackground: var(--dev-wallet-bg-2);\n\t\t\t\tfont-size: 12px;\n\t\t\t}\n\n\t\t\t.form-actions {\n\t\t\t\tdisplay: flex;\n\t\t\t\tgap: 6px;\n\t\t\t}\n\n\t\t\t.btn-sm {\n\t\t\t\tpadding: 5px 10px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xs);\n\t\t\t\tfont-size: 11px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-medium);\n\t\t\t}\n\n\t\t\t.btn-add {\n\t\t\t\tbackground: var(--dev-wallet-primary);\n\t\t\t\tcolor: var(--dev-wallet-primary-foreground);\n\t\t\t}\n\n\t\t\t.btn-add:disabled {\n\t\t\t\topacity: 0.5;\n\t\t\t}\n\n\t\t\t.btn-cancel {\n\t\t\t\tbackground: var(--dev-wallet-secondary);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t}\n\n\t\t\t.btn-toggle {\n\t\t\t\tfont-size: 12px;\n\t\t\t\tcolor: var(--dev-wallet-primary);\n\t\t\t\theight: 30px;\n\t\t\t\tpadding: 0 10px;\n\t\t\t\tmargin-top: 8px;\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\tborder-radius: var(--dev-wallet-radius);\n\t\t\t}\n\n\t\t\t.btn-toggle:hover {\n\t\t\t\tbackground: var(--dev-wallet-bg-hover);\n\t\t\t\tborder-color: var(--dev-wallet-border-strong);\n\t\t\t}\n\n\t\t\t.cli-section-column {\n\t\t\t\tflex-direction: column;\n\t\t\t\talign-items: flex-start;\n\t\t\t\tgap: 6px;\n\t\t\t}\n\n\t\t\t.cli-header-row {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 8px;\n\t\t\t\twidth: 100%;\n\t\t\t}\n\n\t\t\t.cli-accounts-list {\n\t\t\t\twidth: 100%;\n\t\t\t\tpadding-left: 16px;\n\t\t\t}\n\n\t\t\t.cli-accounts-list .network-url {\n\t\t\t\tpadding: 2px 0;\n\t\t\t}\n\n\t\t\t.cli-hint {\n\t\t\t\tpadding-left: 16px;\n\t\t\t\tmargin-top: 0;\n\t\t\t\tfont-size: 12px;\n\t\t\t}\n\n\t\t\t.cli-unpaired-hint {\n\t\t\t\tmargin-top: 8px;\n\t\t\t}\n\n\t\t\t.about {\n\t\t\t\tfont-size: 12px;\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t\tline-height: 1.5;\n\t\t\t}\n\n\t\t\t.error {\n\t\t\t\tfont-size: 11px;\n\t\t\t\tmargin-top: 4px;\n\t\t\t}\n\n\t\t\t.bookmarklet-link-wrapper {\n\t\t\t\tmargin-top: 8px;\n\t\t\t}\n\n\t\t\t.bookmarklet-link {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tgap: 6px;\n\t\t\t\tpadding: 8px 14px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-sm);\n\t\t\t\tbackground: var(--dev-wallet-primary);\n\t\t\t\tcolor: var(--dev-wallet-primary-foreground);\n\t\t\t\tfont-size: 13px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-semibold);\n\t\t\t\ttext-decoration: none;\n\t\t\t\tcursor: grab;\n\t\t\t\tuser-select: none;\n\t\t\t}\n\n\t\t\t.bookmarklet-link:hover {\n\t\t\t\topacity: 0.9;\n\t\t\t}\n\n\t\t\t.bookmarklet-link:active {\n\t\t\t\tcursor: grabbing;\n\t\t\t}\n\n\t\t\t.bookmarklet-url {\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 10px;\n\t\t\t\tcolor: var(--dev-wallet-muted-foreground);\n\t\t\t\tword-break: break-all;\n\t\t\t\tuser-select: all;\n\t\t\t}\n\n\t\t\t.console-snippet {\n\t\t\t\tmargin-top: 8px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius);\n\t\t\t\tbackground: var(--dev-wallet-bg-0);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\toverflow: hidden;\n\t\t\t}\n\n\t\t\t.console-snippet-header {\n\t\t\t\tdisplay: flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: space-between;\n\t\t\t\tgap: 8px;\n\t\t\t\tpadding: 7px 8px 7px 10px;\n\t\t\t\tborder-bottom: 1px solid var(--dev-wallet-border);\n\t\t\t\tbackground: color-mix(in srgb, var(--dev-wallet-bg-1) 72%, transparent);\n\t\t\t}\n\n\t\t\t.console-snippet-label {\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 9.5px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-medium);\n\t\t\t\tletter-spacing: 0.12em;\n\t\t\t\ttext-transform: uppercase;\n\t\t\t\tcolor: var(--dev-wallet-text-3);\n\t\t\t}\n\n\t\t\t.console-snippet-code {\n\t\t\t\tmargin: 0;\n\t\t\t\tmax-width: 100%;\n\t\t\t\tpadding: 10px 12px 12px;\n\t\t\t\toverflow-x: auto;\n\t\t\t\tfont-family: var(--dev-wallet-font-mono);\n\t\t\t\tfont-size: 11px;\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tline-height: 1.5;\n\t\t\t\twhite-space: pre-wrap;\n\t\t\t\toverflow-wrap: anywhere;\n\t\t\t\tuser-select: all;\n\t\t\t}\n\n\t\t\t.btn-copy {\n\t\t\t\tdisplay: inline-flex;\n\t\t\t\talign-items: center;\n\t\t\t\tjustify-content: center;\n\t\t\t\tmin-width: 54px;\n\t\t\t\theight: 24px;\n\t\t\t\tpadding: 0 8px;\n\t\t\t\tborder-radius: var(--dev-wallet-radius-xs);\n\t\t\t\tborder: 1px solid var(--dev-wallet-border);\n\t\t\t\tbackground: var(--dev-wallet-bg-2);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t\tfont-size: 10px;\n\t\t\t\tfont-weight: var(--dev-wallet-font-weight-medium);\n\t\t\t\tcursor: pointer;\n\t\t\t\twhite-space: nowrap;\n\t\t\t}\n\n\t\t\t.btn-copy:hover {\n\t\t\t\tbackground: var(--dev-wallet-bg-hover);\n\t\t\t\tborder-color: var(--dev-wallet-border-strong);\n\t\t\t\tcolor: var(--dev-wallet-foreground);\n\t\t\t}\n\n\t\t\t@media (max-width: 420px) {\n\t\t\t\t.settings-summary {\n\t\t\t\t\tgrid-template-columns: 1fr;\n\t\t\t\t}\n\t\t\t}\n\t\t`,\n\t];\n\n\t@property({ attribute: false })\n\twallet: DevWallet | null = null;\n\n\t@property({ attribute: false })\n\taccounts: readonly ReadonlyWalletAccount[] = [];\n\n\t@property({ attribute: false })\n\tadapters: SignerAdapter[] = [];\n\n\t@property({ type: String })\n\tactiveAddress = '';\n\n\t@property({ type: String })\n\tbookmarkletOrigin = '';\n\n\t@state()\n\tprivate _showAddNetwork = false;\n\n\t@state()\n\tprivate _networkName = '';\n\n\t@state()\n\tprivate _networkUrl = '';\n\n\t@state()\n\tprivate _error: string | null = null;\n\n\t@state()\n\tprivate _editingNetwork: string | null = null;\n\n\t@state()\n\tprivate _editingUrl = '';\n\n\t@state()\n\tprivate _copied = false;\n\n\toverride render() {\n\t\treturn html`\n\t\t\t<div class=\"section\">${this.#renderSummary()}</div>\n\t\t\t<div class=\"section\">${this.#renderNetworks()}</div>\n\t\t\t${this.#hasCliAdapter()\n\t\t\t\t? html`<div class=\"section\">${this.#renderCliSigner()}</div>`\n\t\t\t\t: nothing}\n\t\t\t<div class=\"section\">${this.#renderAccounts()}</div>\n\t\t\t${this.bookmarkletOrigin\n\t\t\t\t? html`<div class=\"section\">${this.#renderBookmarklet()}</div>`\n\t\t\t\t: nothing}\n\t\t`;\n\t}\n\n\t#renderSummary() {\n\t\tconst activeNetwork = this.wallet?.activeNetwork ?? 'none';\n\t\treturn html`\n\t\t\t<h3 class=\"section-header\">Wallet</h3>\n\t\t\t<div class=\"settings-summary\">\n\t\t\t\t<div class=\"summary-cell\">\n\t\t\t\t\t<div class=\"summary-label\">Network</div>\n\t\t\t\t\t<div class=\"summary-value\">${activeNetwork}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"summary-cell\">\n\t\t\t\t\t<div class=\"summary-label\">Accounts</div>\n\t\t\t\t\t<div class=\"summary-value\">${this.accounts.length}</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"summary-cell\">\n\t\t\t\t\t<div class=\"summary-label\">Adapters</div>\n\t\t\t\t\t<div class=\"summary-value\">${this.adapters.length}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#renderNetworks() {\n\t\tif (!this.wallet) return nothing;\n\n\t\tconst networks = this.wallet.availableNetworks;\n\t\tconst activeNetwork = this.wallet.activeNetwork;\n\t\tconst urls = this.wallet.networkUrls;\n\n\t\treturn html`\n\t\t\t<h3 class=\"section-header\">Networks</h3>\n\t\t\t<div class=\"network-list\">\n\t\t\t\t${networks.map((name) => {\n\t\t\t\t\tconst color = NETWORK_COLORS[name] ?? '#6b7280';\n\t\t\t\t\tconst isActive = name === activeNetwork;\n\t\t\t\t\tconst isEditing = this._editingNetwork === name;\n\t\t\t\t\treturn html`\n\t\t\t\t\t\t<div class=\"network-item ${isActive ? 'active' : ''}\">\n\t\t\t\t\t\t\t<span class=\"network-dot\" style=\"background: ${color}\"></span>\n\t\t\t\t\t\t\t<div class=\"network-info\">\n\t\t\t\t\t\t\t\t<span class=\"network-name\">${name}</span>\n\t\t\t\t\t\t\t\t${isEditing\n\t\t\t\t\t\t\t\t\t? html`<input\n\t\t\t\t\t\t\t\t\t\t\tclass=\"network-url-input\"\n\t\t\t\t\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\t\t\t\t\t.value=${this._editingUrl}\n\t\t\t\t\t\t\t\t\t\t\t@input=${(e: InputEvent) => {\n\t\t\t\t\t\t\t\t\t\t\t\tthis._editingUrl = (e.target as HTMLInputElement).value;\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t\t@keydown=${(e: KeyboardEvent) => {\n\t\t\t\t\t\t\t\t\t\t\t\tif (e.key === 'Enter') this.#saveNetworkUrl(name);\n\t\t\t\t\t\t\t\t\t\t\t\tif (e.key === 'Escape') this.#cancelEditNetwork();\n\t\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\t/>`\n\t\t\t\t\t\t\t\t\t: html`<span class=\"network-url\" title=${urls[name] ?? ''}\n\t\t\t\t\t\t\t\t\t\t\t>${urls[name] ?? ''}</span\n\t\t\t\t\t\t\t\t\t\t>`}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div class=\"network-actions\">\n\t\t\t\t\t\t\t\t${isEditing\n\t\t\t\t\t\t\t\t\t? html`\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"btn-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Save\"\n\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Save URL\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${() => this.#saveNetworkUrl(name)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t&#10003;\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"btn-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Cancel\"\n\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Cancel editing\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${this.#cancelEditNetwork}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t&#10005;\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t\t: html`\n\t\t\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\t\t\tclass=\"btn-icon\"\n\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Edit URL\"\n\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Edit network URL\"\n\t\t\t\t\t\t\t\t\t\t\t\t@click=${() => this.#startEditNetwork(name, urls[name] ?? '')}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t&#9998;\n\t\t\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t\t\t\t${!isActive\n\t\t\t\t\t\t\t\t\t\t\t\t? html`<button\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclass=\"btn-icon btn-icon-danger\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\ttitle=\"Remove\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Remove network\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t@click=${() => this.#removeNetwork(name)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t&#10005;\n\t\t\t\t\t\t\t\t\t\t\t\t\t</button>`\n\t\t\t\t\t\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t\t\t\t\t\t`}\n\t\t\t\t\t\t\t\t${isActive ? html`<span class=\"network-active-badge\">Active</span>` : nothing}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`;\n\t\t\t\t})}\n\t\t\t</div>\n\t\t\t${this._showAddNetwork\n\t\t\t\t? this.#renderAddNetworkForm()\n\t\t\t\t: html`\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclass=\"btn-toggle\"\n\t\t\t\t\t\t\t@click=${() => {\n\t\t\t\t\t\t\t\tthis._showAddNetwork = true;\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t+ Add Network\n\t\t\t\t\t\t</button>\n\t\t\t\t\t`}\n\t\t`;\n\t}\n\n\t#renderAddNetworkForm() {\n\t\treturn html`\n\t\t\t<div class=\"add-network-form\">\n\t\t\t\t<input\n\t\t\t\t\tclass=\"form-input\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tplaceholder=\"Network name (e.g. custom)\"\n\t\t\t\t\t.value=${this._networkName}\n\t\t\t\t\t@input=${(e: InputEvent) => {\n\t\t\t\t\t\tthis._networkName = (e.target as HTMLInputElement).value;\n\t\t\t\t\t\tthis._error = null;\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t<input\n\t\t\t\t\tclass=\"form-input\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tplaceholder=\"gRPC URL (e.g. http://localhost:9000)\"\n\t\t\t\t\t.value=${this._networkUrl}\n\t\t\t\t\t@input=${(e: InputEvent) => {\n\t\t\t\t\t\tthis._networkUrl = (e.target as HTMLInputElement).value;\n\t\t\t\t\t\tthis._error = null;\n\t\t\t\t\t}}\n\t\t\t\t\t@keydown=${(e: KeyboardEvent) => {\n\t\t\t\t\t\tif (e.key === 'Enter') this.#addNetwork();\n\t\t\t\t\t\tif (e.key === 'Escape') this.#cancelAddNetwork();\n\t\t\t\t\t}}\n\t\t\t\t/>\n\t\t\t\t${this._error ? html`<div class=\"error\">${this._error}</div>` : nothing}\n\t\t\t\t<div class=\"form-actions\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"btn-sm btn-add\"\n\t\t\t\t\t\t?disabled=${!this._networkName.trim() || !this._networkUrl.trim()}\n\t\t\t\t\t\t@click=${this.#addNetwork}\n\t\t\t\t\t>\n\t\t\t\t\t\tAdd\n\t\t\t\t\t</button>\n\t\t\t\t\t<button class=\"btn-sm btn-cancel\" @click=${this.#cancelAddNetwork}>Cancel</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#hasCliAdapter(): boolean {\n\t\treturn this.adapters.some((a) => a.id === 'remote-cli');\n\t}\n\n\t#renderCliSigner() {\n\t\tconst cliAdapter = this.adapters.find((a) => a.id === 'remote-cli');\n\t\tif (!cliAdapter) return nothing;\n\n\t\tconst isPaired = 'isPaired' in cliAdapter && (cliAdapter as { isPaired: boolean }).isPaired;\n\t\tconst cliAccounts = cliAdapter.getAccounts();\n\n\t\treturn html`\n\t\t\t<h3 class=\"section-header\">CLI Signer</h3>\n\t\t\t${isPaired\n\t\t\t\t? html`\n\t\t\t\t\t\t<div class=\"network-item active cli-section-column\">\n\t\t\t\t\t\t\t<div class=\"cli-header-row\">\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass=\"network-dot\"\n\t\t\t\t\t\t\t\t\tstyle=\"background: var(--dev-wallet-status-connected)\"\n\t\t\t\t\t\t\t\t></span>\n\t\t\t\t\t\t\t\t<span class=\"network-name\">Connected</span>\n\t\t\t\t\t\t\t\t${cliAccounts.length > 0\n\t\t\t\t\t\t\t\t\t? html`<span class=\"network-active-badge\">${cliAccounts.length} imported</span>`\n\t\t\t\t\t\t\t\t\t: nothing}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t${cliAccounts.length > 0\n\t\t\t\t\t\t\t\t? html`<div class=\"cli-accounts-list\">\n\t\t\t\t\t\t\t\t\t\t${cliAccounts.map(\n\t\t\t\t\t\t\t\t\t\t\t(acc) => html`\n\t\t\t\t\t\t\t\t\t\t\t\t<div class=\"network-url\">${acc.label} (${formatAddress(acc.address)})</div>\n\t\t\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t</div>`\n\t\t\t\t\t\t\t\t: html`<div class=\"about cli-hint\">Use + Add above to import CLI accounts.</div>`}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`\n\t\t\t\t: html`\n\t\t\t\t\t\t<div class=\"network-item\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\tclass=\"network-dot\"\n\t\t\t\t\t\t\t\tstyle=\"background: var(--dev-wallet-status-disconnected)\"\n\t\t\t\t\t\t\t></span>\n\t\t\t\t\t\t\t<span class=\"network-name\" style=\"color: var(--dev-wallet-muted-foreground)\"\n\t\t\t\t\t\t\t\t>Not connected</span\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"about cli-unpaired-hint\">\n\t\t\t\t\t\t\tOpen the token URL from your terminal to connect CLI accounts.\n\t\t\t\t\t\t</div>\n\t\t\t\t\t`}\n\t\t`;\n\t}\n\n\t#renderAccounts() {\n\t\treturn html`\n\t\t\t<dev-wallet-accounts\n\t\t\t\texportparts=\"account-list: accounts-account-list, add-button: accounts-add-button, empty-state: accounts-empty-state\"\n\t\t\t\t.accounts=${this.accounts}\n\t\t\t\t.adapters=${this.adapters}\n\t\t\t\t.activeAddress=${this.activeAddress}\n\t\t\t></dev-wallet-accounts>\n\t\t`;\n\t}\n\n\t#renderBookmarklet() {\n\t\tif (!this.bookmarkletOrigin) return nothing;\n\t\tconst origin = this.bookmarkletOrigin;\n\n\t\tconst bookmarkletJs = `${origin}/bookmarklet.js`;\n\t\tconst bookmarkletHref = `javascript:void(document.head.appendChild(Object.assign(document.createElement('script'),{src:'${bookmarkletJs}'})))`;\n\t\tconst consoleSnippet = `var s=document.createElement('script');s.src='${bookmarkletJs}';document.head.appendChild(s);`;\n\n\t\treturn html`\n\t\t\t<h3 class=\"section-header\">Bookmarklet</h3>\n\t\t\t<div class=\"about\">\n\t\t\t\tDrag this link to your bookmarks bar, then click it on any dApp to inject the wallet:\n\t\t\t</div>\n\t\t\t<div class=\"bookmarklet-link-wrapper\">\n\t\t\t\t<a\n\t\t\t\t\tclass=\"bookmarklet-link\"\n\t\t\t\t\thref=${bookmarkletHref}\n\t\t\t\t\ttitle=\"Drag to bookmarks bar\"\n\t\t\t\t\t@click=${(e: MouseEvent) => e.preventDefault()}\n\t\t\t\t>\n\t\t\t\t\tDev Wallet\n\t\t\t\t</a>\n\t\t\t</div>\n\t\t\t<div class=\"about\" style=\"margin-top: 12px\">Or paste this in the browser console:</div>\n\t\t\t<div class=\"console-snippet\">\n\t\t\t\t<div class=\"console-snippet-header\">\n\t\t\t\t\t<span class=\"console-snippet-label\">Console</span>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclass=\"btn-copy\"\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Copy console snippet\"\n\t\t\t\t\t\t@click=${() => this.#copySnippet(consoleSnippet)}\n\t\t\t\t\t>\n\t\t\t\t\t\t${this._copied ? 'Copied' : 'Copy'}\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t\t<pre class=\"console-snippet-code\"><code>${consoleSnippet}</code></pre>\n\t\t\t</div>\n\t\t\t<div class=\"about\" style=\"margin-top: 8px\">\n\t\t\t\tOr add this script to your page:<br />\n\t\t\t\t<code class=\"bookmarklet-url\">${bookmarkletJs}</code>\n\t\t\t</div>\n\t\t`;\n\t}\n\n\t#copySnippet(text: string) {\n\t\tnavigator.clipboard.writeText(text).then(() => {\n\t\t\tthis._copied = true;\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis._copied = false;\n\t\t\t}, 2000);\n\t\t});\n\t}\n\n\t#addNetwork() {\n\t\tif (!this.wallet) return;\n\n\t\tconst name = this._networkName.trim();\n\t\tconst url = this._networkUrl.trim();\n\n\t\tif (!name || !url) return;\n\n\t\tif (this.wallet.availableNetworks.includes(name)) {\n\t\t\tthis._error = `Network \"${name}\" already exists`;\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tthis.wallet.addNetwork(name, url);\n\t\t\tthis._networkName = '';\n\t\t\tthis._networkUrl = '';\n\t\t\tthis._showAddNetwork = false;\n\t\t\tthis._error = null;\n\t\t\temitEvent(this, 'network-added', { name, url });\n\t\t} catch (err) {\n\t\t\tthis._error = getErrorMessage(err, 'Failed to add network');\n\t\t}\n\t}\n\n\t#cancelAddNetwork() {\n\t\tthis._showAddNetwork = false;\n\t\tthis._networkName = '';\n\t\tthis._networkUrl = '';\n\t\tthis._error = null;\n\t}\n\n\t#startEditNetwork(name: string, url: string) {\n\t\tthis._editingNetwork = name;\n\t\tthis._editingUrl = url;\n\t}\n\n\t#saveNetworkUrl(name: string) {\n\t\tif (!this.wallet) return;\n\t\tconst url = this._editingUrl.trim();\n\t\tif (!url) return;\n\n\t\ttry {\n\t\t\tthis.wallet.addNetwork(name, url);\n\t\t\tthis._editingNetwork = null;\n\t\t\tthis._editingUrl = '';\n\t\t} catch (error) {\n\t\t\tthis._error = error instanceof Error ? error.message : 'Invalid URL';\n\t\t}\n\t}\n\n\t#cancelEditNetwork() {\n\t\tthis._editingNetwork = null;\n\t\tthis._editingUrl = '';\n\t}\n\n\t#removeNetwork(name: string) {\n\t\tif (!this.wallet) return;\n\t\tthis.wallet.removeNetwork(name);\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'dev-wallet-settings': DevWalletSettings;\n\t}\n}\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { PendingSigningRequest } from "../wallet/dev-wallet.mjs";
2
- import "./dev-wallet-signing.mjs";
3
- import * as lit17 from "lit";
2
+ import { CoinRecord } from "./utils.mjs";
3
+ import * as _$lit from "lit";
4
4
  import { LitElement, nothing } from "lit";
5
5
  import { ClientWithCoreApi } from "@mysten/sui/client";
6
6
 
@@ -14,13 +14,20 @@ import { ClientWithCoreApi } from "@mysten/sui/client";
14
14
  */
15
15
  declare class DevWalletSigningModal extends LitElement {
16
16
  #private;
17
- static styles: (lit17.CSSResult | lit17.CSSResult[])[];
17
+ static styles: (_$lit.CSSResult | _$lit.CSSResult[])[];
18
18
  request: PendingSigningRequest | null;
19
19
  client: ClientWithCoreApi | null;
20
+ /** Pre-seeded coin metadata forwarded to `<dev-wallet-signing>`. See
21
+ * the matching property on `DevWalletSigning` for details. */
22
+ coins: CoinRecord | null;
20
23
  walletName: string;
24
+ /** Phase 4 P4.19 — when the active account's `source === 'impersonate'`,
25
+ * the parent flips this on and the modal renders a footnote
26
+ * explaining no real signature will be produced. */
27
+ impersonation: boolean;
21
28
  firstUpdated(): void;
22
29
  disconnectedCallback(): void;
23
- render(): typeof nothing | lit17.TemplateResult<1>;
30
+ render(): _$lit.TemplateResult<1> | typeof nothing;
24
31
  }
25
32
  declare global {
26
33
  interface HTMLElementTagNameMap {
@@ -1 +1 @@
1
- {"version":3,"file":"dev-wallet-signing-modal.d.mts","names":[],"sources":["../../src/ui/dev-wallet-signing-modal.ts"],"mappings":";;;;;;;;;;AAmBA;;;;cACa,qBAAA,SAA8B,UAAA;EAAA;SAC1B,MAAA,GADkB,KAAA,CACZ,SAAA,GAAA,KAAA,CAAA,SAAA;EAkDtB,OAAA,EAAS,qBAAA;EAGT,MAAA,EAAQ,iBAAA;EAGR,UAAA;EAOS,YAAA,CAAA;EAQA,oBAAA,CAAA;EAOA,MAAA,CAAA,UAAM,OAAA,GAAA,KAAA,CAAA,cAAA;AAAA;AAAA,QAiCR,MAAA;EAAA,UACG,qBAAA;IACT,0BAAA,EAA4B,qBAAA;EAAA;AAAA"}
1
+ {"version":3,"file":"dev-wallet-signing-modal.d.mts","names":[],"sources":["../../src/ui/dev-wallet-signing-modal.ts"],"mappings":";;;;;;;;;;AAoBA;;;;cACa,qBAAA,SAA8B,UAAA;EAAA;SAC1B,MAAA,GADkB,KAAA,CACZ,SAAA,GAAA,KAAA,CAAA,SAAA;EAsEtB,OAAA,EAAS,qBAAA;EAGT,MAAA,EAAQ,iBAAA;EAoCO;;EA/Bf,KAAA,EAAO,UAAA;EAGP,UAAA;EAlF0C;;;EAwF1C,aAAA;EAOS,YAAA,CAAA;EAQA,oBAAA,CAAA;EAOA,MAAA,CAAA,GA/BQ,KAAA,CA+BF,cAAA,aAAA,OAAA;AAAA;AAAA,QAyCR,MAAA;EAAA,UACG,qBAAA;IACT,0BAAA,EAA4B,qBAAA;EAAA;AAAA"}